| |
| |
| |
| |
| |
| |
| |
|
|
| |
| 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}`); |
| } |
| } |
| } |
|
|
| |
| |
| |