Squashed 'vendor/ruvector/' content from commit b64c2172

git-subtree-dir: vendor/ruvector
git-subtree-split: b64c21726f2bb37286d9ee36a7869fef60cc6900
This commit is contained in:
ruv
2026-02-28 14:39:40 -05:00
commit d803bfe2b1
7854 changed files with 3522914 additions and 0 deletions

View File

@@ -0,0 +1 @@
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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"}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,364 @@
/**
* Test Factories
*
* Factory functions for creating test data with customizable overrides
*/
import { v4 as uuidv4 } from 'uuid';
// Types
export interface Agent {
id: string;
name: string;
type: 'coder' | 'researcher' | 'tester' | 'reviewer' | 'planner';
status: 'idle' | 'busy' | 'error' | 'terminated';
capabilities: string[];
config: AgentConfig;
metadata: EntityMetadata;
}
export interface AgentConfig {
model: string;
temperature: number;
maxTokens: number;
systemPrompt?: string;
}
export interface Session {
id: string;
tenantId: string;
userId: string;
channelId: string;
threadTs: string;
status: 'active' | 'paused' | 'completed' | 'error';
context: SessionContext;
metadata: SessionMetadata;
}
export interface SessionContext {
conversationHistory: ConversationMessage[];
workingDirectory: string;
activeAgents: string[];
variables?: Record<string, unknown>;
}
export interface ConversationMessage {
role: 'user' | 'assistant' | 'system';
content: string;
timestamp: Date;
agentId?: string;
}
export interface SessionMetadata {
createdAt: Date;
lastActiveAt: Date;
messageCount: number;
}
export interface Memory {
id: string;
sessionId: string | null;
tenantId: string;
type: 'short-term' | 'long-term' | 'vector' | 'episodic';
key: string;
value: unknown;
embedding: Float32Array | null;
metadata: MemoryMetadata;
}
export interface MemoryMetadata {
createdAt: Date;
expiresAt: Date | null;
accessCount: number;
importance?: number;
}
export interface Skill {
id: string;
name: string;
version: string;
description: string;
inputSchema: Record<string, unknown>;
outputSchema: Record<string, unknown>;
executor: string;
timeout: number;
metadata?: Record<string, unknown>;
}
export interface Tenant {
id: string;
name: string;
slackTeamId: string;
status: 'active' | 'suspended' | 'trial';
plan: 'free' | 'pro' | 'enterprise';
config: TenantConfig;
metadata: EntityMetadata;
}
export interface TenantConfig {
maxAgents: number;
maxSessions: number;
features: string[];
customSkills?: string[];
}
export interface EntityMetadata {
createdAt: Date;
updatedAt: Date;
version?: string;
}
// Factory Functions
/**
* Create an Agent with optional overrides
*/
export function createAgent(overrides: Partial<Agent> = {}): Agent {
const defaults: Agent = {
id: `agent-${uuidv4().slice(0, 8)}`,
name: 'Test Agent',
type: 'coder',
status: 'idle',
capabilities: ['code-generation'],
config: {
model: 'claude-sonnet-4',
temperature: 0.7,
maxTokens: 4096
},
metadata: {
createdAt: new Date(),
updatedAt: new Date(),
version: '1.0.0'
}
};
return {
...defaults,
...overrides,
config: { ...defaults.config, ...overrides.config },
metadata: { ...defaults.metadata, ...overrides.metadata }
};
}
/**
* Create multiple agents
*/
export function createAgents(count: number, overrides: Partial<Agent> = {}): Agent[] {
return Array.from({ length: count }, (_, i) =>
createAgent({
...overrides,
name: `Agent ${i + 1}`,
id: `agent-${i + 1}`
})
);
}
/**
* Create a Session with optional overrides
*/
export function createSession(overrides: Partial<Session> = {}): Session {
const defaults: Session = {
id: `session-${uuidv4().slice(0, 8)}`,
tenantId: 'tenant-001',
userId: 'U12345678',
channelId: 'C12345678',
threadTs: `${Date.now()}.000000`,
status: 'active',
context: {
conversationHistory: [],
workingDirectory: '/workspace',
activeAgents: []
},
metadata: {
createdAt: new Date(),
lastActiveAt: new Date(),
messageCount: 0
}
};
return {
...defaults,
...overrides,
context: { ...defaults.context, ...overrides.context },
metadata: { ...defaults.metadata, ...overrides.metadata }
};
}
/**
* Create a Session with conversation history
*/
export function createSessionWithHistory(
messageCount: number,
overrides: Partial<Session> = {}
): Session {
const history: ConversationMessage[] = [];
for (let i = 0; i < messageCount; i++) {
history.push({
role: i % 2 === 0 ? 'user' : 'assistant',
content: `Message ${i + 1}`,
timestamp: new Date(Date.now() - (messageCount - i) * 60000)
});
}
return createSession({
...overrides,
context: {
...overrides.context,
conversationHistory: history
},
metadata: {
...overrides.metadata,
messageCount
}
});
}
/**
* Create a Memory entry with optional overrides
*/
export function createMemory(overrides: Partial<Memory> = {}): Memory {
const defaults: Memory = {
id: `mem-${uuidv4().slice(0, 8)}`,
sessionId: null,
tenantId: 'tenant-001',
type: 'short-term',
key: `key-${Date.now()}`,
value: { data: 'test' },
embedding: null,
metadata: {
createdAt: new Date(),
expiresAt: null,
accessCount: 0
}
};
return {
...defaults,
...overrides,
metadata: { ...defaults.metadata, ...overrides.metadata }
};
}
/**
* Create a Memory entry with vector embedding
*/
export function createVectorMemory(
dimension: number = 384,
overrides: Partial<Memory> = {}
): Memory {
return createMemory({
type: 'vector',
embedding: new Float32Array(dimension).map(() => Math.random() - 0.5),
...overrides
});
}
/**
* Create a Skill with optional overrides
*/
export function createSkill(overrides: Partial<Skill> = {}): Skill {
const defaults: Skill = {
id: `skill-${uuidv4().slice(0, 8)}`,
name: 'test-skill',
version: '1.0.0',
description: 'A test skill',
inputSchema: {
type: 'object',
properties: {
input: { type: 'string' }
},
required: ['input']
},
outputSchema: {
type: 'object',
properties: {
output: { type: 'string' }
}
},
executor: 'native://test',
timeout: 30000
};
return { ...defaults, ...overrides };
}
/**
* Create a Tenant with optional overrides
*/
export function createTenant(overrides: Partial<Tenant> = {}): Tenant {
const defaults: Tenant = {
id: `tenant-${uuidv4().slice(0, 8)}`,
name: 'Test Tenant',
slackTeamId: `T${uuidv4().slice(0, 8).toUpperCase()}`,
status: 'active',
plan: 'pro',
config: {
maxAgents: 10,
maxSessions: 100,
features: ['code-generation', 'vector-search']
},
metadata: {
createdAt: new Date(),
updatedAt: new Date()
}
};
return {
...defaults,
...overrides,
config: { ...defaults.config, ...overrides.config },
metadata: { ...defaults.metadata, ...overrides.metadata }
};
}
/**
* Create a Slack message event
*/
export function createSlackMessageEvent(overrides: Record<string, unknown> = {}): Record<string, unknown> {
return {
type: 'message',
channel: 'C12345678',
user: 'U12345678',
text: 'Test message',
ts: `${Date.now()}.000000`,
team: 'T12345678',
event_ts: `${Date.now()}.000000`,
...overrides
};
}
/**
* Create a Slack app_mention event
*/
export function createSlackMentionEvent(overrides: Record<string, unknown> = {}): Record<string, unknown> {
return {
type: 'app_mention',
channel: 'C12345678',
user: 'U12345678',
text: '<@U_BOT> test mention',
ts: `${Date.now()}.000000`,
team: 'T12345678',
event_ts: `${Date.now()}.000000`,
...overrides
};
}
/**
* Batch factory - create multiple related entities
*/
export function createTestScenario() {
const tenant = createTenant();
const session = createSession({ tenantId: tenant.id });
const agents = createAgents(3, { type: 'coder' });
const memory = createVectorMemory(384, { tenantId: tenant.id, sessionId: session.id });
const skill = createSkill();
return {
tenant,
session,
agents,
memory,
skill
};
}