|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
export type SymbolicOperation = |
|
| ThinkOperation |
|
| ReflectOperation |
|
| ForkOperation |
|
| CollapseOperation |
|
| AttentionOperation |
|
| ToolOperation |
|
| SystemOperation; |
|
|
|
|
|
export interface ThinkOperation { |
|
type: 'think'; |
|
content?: string; |
|
trace?: boolean; |
|
depth?: number; |
|
} |
|
|
|
export interface ReflectOperation { |
|
type: 'reflect'; |
|
target: string; |
|
depth?: number; |
|
} |
|
|
|
export interface ForkOperation { |
|
type: 'fork'; |
|
paths: string[]; |
|
weights?: number[]; |
|
} |
|
|
|
export interface CollapseOperation { |
|
type: 'collapse'; |
|
trigger?: string; |
|
threshold?: number; |
|
} |
|
|
|
export interface AttentionOperation { |
|
type: 'attention'; |
|
focus: string; |
|
weight?: number; |
|
} |
|
|
|
export interface ToolOperation { |
|
type: 'tool'; |
|
name: string; |
|
params?: Record<string, any>; |
|
} |
|
|
|
export interface SystemOperation { |
|
type: 'system'; |
|
directive: string; |
|
} |
|
|
|
|
|
export type ModelVendor = 'claude' | 'openai' | 'qwen' | 'gemini' | 'deepseek' | 'local'; |
|
|
|
|
|
|
|
|
|
|
|
export class UniversalSymbolics { |
|
private vendor: ModelVendor; |
|
private adapter: SymbolicAdapter; |
|
private telemetry: SymbolicTelemetry; |
|
|
|
constructor(options: { |
|
vendor?: ModelVendor; |
|
apiKey?: string; |
|
endpoint?: string; |
|
enableTelemetry?: boolean; |
|
}) { |
|
this.vendor = options.vendor || 'claude'; |
|
this.adapter = SymbolicAdapterFactory.create(this.vendor, { |
|
apiKey: options.apiKey, |
|
endpoint: options.endpoint |
|
}); |
|
this.telemetry = new SymbolicTelemetry({ |
|
enabled: options.enableTelemetry || false |
|
}); |
|
} |
|
|
|
|
|
|
|
|
|
|
|
async think(content?: string): Promise<ThinkResult> { |
|
const operation: ThinkOperation = { |
|
type: 'think', |
|
content, |
|
trace: true |
|
}; |
|
|
|
this.telemetry.trackOperation('think', this.vendor); |
|
return this.adapter.executeOperation(operation) as Promise<ThinkResult>; |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
async reflect(target: string, depth?: number): Promise<ReflectResult> { |
|
const operation: ReflectOperation = { |
|
type: 'reflect', |
|
target, |
|
depth |
|
}; |
|
|
|
this.telemetry.trackOperation('reflect', this.vendor); |
|
return this.adapter.executeOperation(operation) as Promise<ReflectResult>; |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
async fork(paths: string[], weights?: number[]): Promise<ForkResult> { |
|
const operation: ForkOperation = { |
|
type: 'fork', |
|
paths, |
|
weights |
|
}; |
|
|
|
this.telemetry.trackOperation('fork', this.vendor); |
|
return this.adapter.executeOperation(operation) as Promise<ForkResult>; |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
async collapse(trigger?: string, threshold?: number): Promise<CollapseResult> { |
|
const operation: CollapseOperation = { |
|
type: 'collapse', |
|
trigger, |
|
threshold |
|
}; |
|
|
|
this.telemetry.trackOperation('collapse', this.vendor); |
|
return this.adapter.executeOperation(operation) as Promise<CollapseResult>; |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
async attention(focus: string, weight?: number): Promise<AttentionResult> { |
|
const operation: AttentionOperation = { |
|
type: 'attention', |
|
focus, |
|
weight |
|
}; |
|
|
|
this.telemetry.trackOperation('attention', this.vendor); |
|
return this.adapter.executeOperation(operation) as Promise<AttentionResult>; |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
async tool(name: string, params?: Record<string, any>): Promise<ToolResult> { |
|
const operation: ToolOperation = { |
|
type: 'tool', |
|
name, |
|
params |
|
}; |
|
|
|
this.telemetry.trackOperation('tool', this.vendor); |
|
return this.adapter.executeOperation(operation) as Promise<ToolResult>; |
|
} |
|
|
|
|
|
|
|
|
|
|
|
async system(directive: string): Promise<SystemResult> { |
|
const operation: SystemOperation = { |
|
type: 'system', |
|
directive |
|
}; |
|
|
|
this.telemetry.trackOperation('system', this.vendor); |
|
return this.adapter.executeOperation(operation) as Promise<SystemResult>; |
|
} |
|
|
|
|
|
|
|
|
|
|
|
setVendor(vendor: ModelVendor) { |
|
this.vendor = vendor; |
|
this.adapter = SymbolicAdapterFactory.create(this.vendor, { |
|
apiKey: this.adapter.getApiKey(), |
|
endpoint: this.adapter.getEndpoint() |
|
}); |
|
} |
|
|
|
|
|
|
|
|
|
getTelemetry() { |
|
return this.telemetry.getData(); |
|
} |
|
} |
|
|
|
|
|
|
|
|
|
class SymbolicAdapterFactory { |
|
static create(vendor: ModelVendor, options: { apiKey?: string; endpoint?: string }): SymbolicAdapter { |
|
switch (vendor) { |
|
case 'claude': |
|
return new ClaudeSymbolicAdapter(options); |
|
case 'openai': |
|
return new OpenAISymbolicAdapter(options); |
|
case 'qwen': |
|
return new QwenSymbolicAdapter(options); |
|
case 'gemini': |
|
return new GeminiSymbolicAdapter(options); |
|
case 'deepseek': |
|
return new DeepSeekSymbolicAdapter(options); |
|
case 'local': |
|
return new LocalSymbolicAdapter(options); |
|
default: |
|
throw new Error(`Unsupported vendor: ${vendor}`); |
|
} |
|
} |
|
} |
|
|
|
|
|
|
|
|