linguclaw 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (168) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +161 -0
  3. package/dist/agent-system.d.ts +196 -0
  4. package/dist/agent-system.d.ts.map +1 -0
  5. package/dist/agent-system.js +738 -0
  6. package/dist/agent-system.js.map +1 -0
  7. package/dist/alphabeta.d.ts +54 -0
  8. package/dist/alphabeta.d.ts.map +1 -0
  9. package/dist/alphabeta.js +193 -0
  10. package/dist/alphabeta.js.map +1 -0
  11. package/dist/browser.d.ts +62 -0
  12. package/dist/browser.d.ts.map +1 -0
  13. package/dist/browser.js +224 -0
  14. package/dist/browser.js.map +1 -0
  15. package/dist/cli.d.ts +7 -0
  16. package/dist/cli.d.ts.map +1 -0
  17. package/dist/cli.js +565 -0
  18. package/dist/cli.js.map +1 -0
  19. package/dist/code-parser.d.ts +39 -0
  20. package/dist/code-parser.d.ts.map +1 -0
  21. package/dist/code-parser.js +385 -0
  22. package/dist/code-parser.js.map +1 -0
  23. package/dist/config.d.ts +66 -0
  24. package/dist/config.d.ts.map +1 -0
  25. package/dist/config.js +232 -0
  26. package/dist/config.js.map +1 -0
  27. package/dist/core/engine.d.ts +359 -0
  28. package/dist/core/engine.d.ts.map +1 -0
  29. package/dist/core/engine.js +127 -0
  30. package/dist/core/engine.js.map +1 -0
  31. package/dist/daemon.d.ts +29 -0
  32. package/dist/daemon.d.ts.map +1 -0
  33. package/dist/daemon.js +212 -0
  34. package/dist/daemon.js.map +1 -0
  35. package/dist/email-receiver.d.ts +63 -0
  36. package/dist/email-receiver.d.ts.map +1 -0
  37. package/dist/email-receiver.js +553 -0
  38. package/dist/email-receiver.js.map +1 -0
  39. package/dist/git-integration.d.ts +180 -0
  40. package/dist/git-integration.d.ts.map +1 -0
  41. package/dist/git-integration.js +850 -0
  42. package/dist/git-integration.js.map +1 -0
  43. package/dist/inbox.d.ts +84 -0
  44. package/dist/inbox.d.ts.map +1 -0
  45. package/dist/inbox.js +198 -0
  46. package/dist/inbox.js.map +1 -0
  47. package/dist/index.d.ts +6 -0
  48. package/dist/index.d.ts.map +1 -0
  49. package/dist/index.js +41 -0
  50. package/dist/index.js.map +1 -0
  51. package/dist/languages/cpp.d.ts +51 -0
  52. package/dist/languages/cpp.d.ts.map +1 -0
  53. package/dist/languages/cpp.js +930 -0
  54. package/dist/languages/cpp.js.map +1 -0
  55. package/dist/languages/csharp.d.ts +79 -0
  56. package/dist/languages/csharp.d.ts.map +1 -0
  57. package/dist/languages/csharp.js +1776 -0
  58. package/dist/languages/csharp.js.map +1 -0
  59. package/dist/languages/go.d.ts +50 -0
  60. package/dist/languages/go.d.ts.map +1 -0
  61. package/dist/languages/go.js +882 -0
  62. package/dist/languages/go.js.map +1 -0
  63. package/dist/languages/java.d.ts +47 -0
  64. package/dist/languages/java.d.ts.map +1 -0
  65. package/dist/languages/java.js +649 -0
  66. package/dist/languages/java.js.map +1 -0
  67. package/dist/languages/python.d.ts +47 -0
  68. package/dist/languages/python.d.ts.map +1 -0
  69. package/dist/languages/python.js +655 -0
  70. package/dist/languages/python.js.map +1 -0
  71. package/dist/languages/rust.d.ts +61 -0
  72. package/dist/languages/rust.d.ts.map +1 -0
  73. package/dist/languages/rust.js +1064 -0
  74. package/dist/languages/rust.js.map +1 -0
  75. package/dist/logger.d.ts +20 -0
  76. package/dist/logger.d.ts.map +1 -0
  77. package/dist/logger.js +133 -0
  78. package/dist/logger.js.map +1 -0
  79. package/dist/longterm-memory.d.ts +47 -0
  80. package/dist/longterm-memory.d.ts.map +1 -0
  81. package/dist/longterm-memory.js +300 -0
  82. package/dist/longterm-memory.js.map +1 -0
  83. package/dist/memory.d.ts +42 -0
  84. package/dist/memory.d.ts.map +1 -0
  85. package/dist/memory.js +274 -0
  86. package/dist/memory.js.map +1 -0
  87. package/dist/messaging.d.ts +103 -0
  88. package/dist/messaging.d.ts.map +1 -0
  89. package/dist/messaging.js +645 -0
  90. package/dist/messaging.js.map +1 -0
  91. package/dist/multi-provider.d.ts +69 -0
  92. package/dist/multi-provider.d.ts.map +1 -0
  93. package/dist/multi-provider.js +484 -0
  94. package/dist/multi-provider.js.map +1 -0
  95. package/dist/orchestrator.d.ts +65 -0
  96. package/dist/orchestrator.d.ts.map +1 -0
  97. package/dist/orchestrator.js +441 -0
  98. package/dist/orchestrator.js.map +1 -0
  99. package/dist/plugins.d.ts +52 -0
  100. package/dist/plugins.d.ts.map +1 -0
  101. package/dist/plugins.js +215 -0
  102. package/dist/plugins.js.map +1 -0
  103. package/dist/prism-orchestrator.d.ts +26 -0
  104. package/dist/prism-orchestrator.d.ts.map +1 -0
  105. package/dist/prism-orchestrator.js +191 -0
  106. package/dist/prism-orchestrator.js.map +1 -0
  107. package/dist/prism.d.ts +46 -0
  108. package/dist/prism.d.ts.map +1 -0
  109. package/dist/prism.js +188 -0
  110. package/dist/prism.js.map +1 -0
  111. package/dist/privacy.d.ts +23 -0
  112. package/dist/privacy.d.ts.map +1 -0
  113. package/dist/privacy.js +220 -0
  114. package/dist/privacy.js.map +1 -0
  115. package/dist/proactive.d.ts +30 -0
  116. package/dist/proactive.d.ts.map +1 -0
  117. package/dist/proactive.js +260 -0
  118. package/dist/proactive.js.map +1 -0
  119. package/dist/refactoring-engine.d.ts +100 -0
  120. package/dist/refactoring-engine.d.ts.map +1 -0
  121. package/dist/refactoring-engine.js +717 -0
  122. package/dist/refactoring-engine.js.map +1 -0
  123. package/dist/resilience.d.ts +43 -0
  124. package/dist/resilience.d.ts.map +1 -0
  125. package/dist/resilience.js +200 -0
  126. package/dist/resilience.js.map +1 -0
  127. package/dist/safety.d.ts +40 -0
  128. package/dist/safety.d.ts.map +1 -0
  129. package/dist/safety.js +133 -0
  130. package/dist/safety.js.map +1 -0
  131. package/dist/sandbox.d.ts +33 -0
  132. package/dist/sandbox.d.ts.map +1 -0
  133. package/dist/sandbox.js +173 -0
  134. package/dist/sandbox.js.map +1 -0
  135. package/dist/scheduler.d.ts +72 -0
  136. package/dist/scheduler.d.ts.map +1 -0
  137. package/dist/scheduler.js +374 -0
  138. package/dist/scheduler.js.map +1 -0
  139. package/dist/semantic-memory.d.ts +70 -0
  140. package/dist/semantic-memory.d.ts.map +1 -0
  141. package/dist/semantic-memory.js +430 -0
  142. package/dist/semantic-memory.js.map +1 -0
  143. package/dist/skills.d.ts +97 -0
  144. package/dist/skills.d.ts.map +1 -0
  145. package/dist/skills.js +575 -0
  146. package/dist/skills.js.map +1 -0
  147. package/dist/static/dashboard.html +853 -0
  148. package/dist/static/hub.html +772 -0
  149. package/dist/static/index.html +818 -0
  150. package/dist/static/logo.svg +24 -0
  151. package/dist/static/workflow-editor.html +913 -0
  152. package/dist/tools.d.ts +67 -0
  153. package/dist/tools.d.ts.map +1 -0
  154. package/dist/tools.js +303 -0
  155. package/dist/tools.js.map +1 -0
  156. package/dist/types.d.ts +295 -0
  157. package/dist/types.d.ts.map +1 -0
  158. package/dist/types.js +90 -0
  159. package/dist/types.js.map +1 -0
  160. package/dist/web.d.ts +76 -0
  161. package/dist/web.d.ts.map +1 -0
  162. package/dist/web.js +2139 -0
  163. package/dist/web.js.map +1 -0
  164. package/dist/workflow-engine.d.ts +114 -0
  165. package/dist/workflow-engine.d.ts.map +1 -0
  166. package/dist/workflow-engine.js +855 -0
  167. package/dist/workflow-engine.js.map +1 -0
  168. package/package.json +77 -0
@@ -0,0 +1,215 @@
1
+ "use strict";
2
+ /**
3
+ * Plugin System - OpenClaw Architecture
4
+ * TypeScript equivalent of Python plugins.py
5
+ */
6
+ var __importDefault = (this && this.__importDefault) || function (mod) {
7
+ return (mod && mod.__esModule) ? mod : { "default": mod };
8
+ };
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.PluginManager = exports.WorkflowPlugin = exports.AgentPlugin = exports.ToolPlugin = exports.BasePlugin = void 0;
11
+ exports.getPluginManager = getPluginManager;
12
+ const logger_1 = require("./logger");
13
+ const path_1 = __importDefault(require("path"));
14
+ const logger = (0, logger_1.getLogger)();
15
+ // Plugin base class
16
+ class BasePlugin {
17
+ NAME;
18
+ VERSION;
19
+ DESCRIPTION;
20
+ AUTHOR;
21
+ DEPENDENCIES;
22
+ context;
23
+ initialized;
24
+ constructor() {
25
+ this.NAME = 'base_plugin';
26
+ this.VERSION = '1.0.0';
27
+ this.DESCRIPTION = 'Base plugin class';
28
+ this.AUTHOR = 'Unknown';
29
+ this.DEPENDENCIES = [];
30
+ this.initialized = false;
31
+ }
32
+ async initialize(context) {
33
+ this.context = context;
34
+ // Check dependencies
35
+ for (const dep of this.DEPENDENCIES) {
36
+ if (!this.context.config.settings.allowed_plugins?.includes(dep)) {
37
+ logger.warn(`${this.NAME} requires plugin: ${dep}`);
38
+ }
39
+ }
40
+ this.initialized = true;
41
+ logger.info(`Plugin ${this.NAME} v${this.VERSION} initialized`);
42
+ return true;
43
+ }
44
+ async shutdown() {
45
+ this.initialized = false;
46
+ logger.info(`Plugin ${this.NAME} shutdown`);
47
+ }
48
+ getInfo() {
49
+ return {
50
+ name: this.NAME,
51
+ version: this.VERSION,
52
+ description: this.DESCRIPTION,
53
+ author: this.AUTHOR,
54
+ dependencies: this.DEPENDENCIES
55
+ };
56
+ }
57
+ }
58
+ exports.BasePlugin = BasePlugin;
59
+ // Tool plugin - adds shell commands
60
+ class ToolPlugin extends BasePlugin {
61
+ getTools() {
62
+ if (!this.initialized) {
63
+ logger.warn(`Plugin ${this.NAME} not initialized`);
64
+ return {};
65
+ }
66
+ return this._defineTools();
67
+ }
68
+ }
69
+ exports.ToolPlugin = ToolPlugin;
70
+ // Agent plugin - modifies agent behavior
71
+ class AgentPlugin extends BasePlugin {
72
+ _onInit() { }
73
+ _onStep(step) { }
74
+ _onComplete(result) { }
75
+ _modifySystemPromptSafe(basePrompt, context) {
76
+ return basePrompt;
77
+ }
78
+ }
79
+ exports.AgentPlugin = AgentPlugin;
80
+ // Workflow plugin - modifies workflow execution
81
+ class WorkflowPlugin extends BasePlugin {
82
+ _beforeWorkflow(workflowId, params) {
83
+ return params;
84
+ }
85
+ _afterWorkflow(workflowId, result) {
86
+ return result;
87
+ }
88
+ _onError(workflowId, error) {
89
+ logger.error(`Workflow ${workflowId} error: ${error.message}`);
90
+ }
91
+ }
92
+ exports.WorkflowPlugin = WorkflowPlugin;
93
+ // Plugin manager
94
+ class PluginManager {
95
+ plugins;
96
+ toolPlugins;
97
+ agentPlugins;
98
+ workflowPlugins;
99
+ pluginDir;
100
+ constructor(pluginDir = '~/.linguclaw/plugins') {
101
+ this.plugins = new Map();
102
+ this.toolPlugins = new Map();
103
+ this.agentPlugins = new Map();
104
+ this.workflowPlugins = new Map();
105
+ this.pluginDir = pluginDir.replace('~', process.env.HOME || '~');
106
+ }
107
+ async discoverPlugins() {
108
+ const path = require('path');
109
+ const fs = require('fs');
110
+ const discovered = [];
111
+ try {
112
+ if (!fs.existsSync(this.pluginDir)) {
113
+ fs.mkdirSync(this.pluginDir, { recursive: true });
114
+ return discovered;
115
+ }
116
+ const files = fs.readdirSync(this.pluginDir);
117
+ for (const file of files) {
118
+ if (file.endsWith('.js') || file.endsWith('.ts')) {
119
+ discovered.push(path.join(this.pluginDir, file));
120
+ }
121
+ }
122
+ }
123
+ catch (error) {
124
+ logger.error(`Failed to discover plugins: ${error}`);
125
+ }
126
+ return discovered;
127
+ }
128
+ async loadPlugin(pluginPath, context) {
129
+ try {
130
+ // Validate plugin path is within plugin directory
131
+ const resolvedPath = path_1.default.resolve(pluginPath);
132
+ const resolvedPluginDir = path_1.default.resolve(this.pluginDir);
133
+ if (!resolvedPath.startsWith(resolvedPluginDir)) {
134
+ logger.error(`Plugin path ${pluginPath} is outside plugin directory ${this.pluginDir}`);
135
+ return false;
136
+ }
137
+ const pluginModule = require(resolvedPath);
138
+ const PluginClass = pluginModule.default || Object.values(pluginModule)[0];
139
+ if (!PluginClass || typeof PluginClass !== 'function') {
140
+ logger.error(`No plugin class found in ${pluginPath}`);
141
+ return false;
142
+ }
143
+ const plugin = new PluginClass();
144
+ if (plugin instanceof ToolPlugin) {
145
+ this.toolPlugins.set(plugin.NAME, plugin);
146
+ }
147
+ else if (plugin instanceof AgentPlugin) {
148
+ this.agentPlugins.set(plugin.NAME, plugin);
149
+ }
150
+ else if (plugin instanceof WorkflowPlugin) {
151
+ this.workflowPlugins.set(plugin.NAME, plugin);
152
+ }
153
+ this.plugins.set(plugin.NAME, plugin);
154
+ await plugin.initialize(context);
155
+ logger.info(`Loaded plugin: ${plugin.NAME} v${plugin.VERSION}`);
156
+ return true;
157
+ }
158
+ catch (error) {
159
+ logger.error(`Failed to load plugin ${pluginPath}: ${error}`);
160
+ return false;
161
+ }
162
+ }
163
+ async loadAllPlugins(context) {
164
+ const pluginPaths = await this.discoverPlugins();
165
+ let loaded = 0;
166
+ for (const path of pluginPaths) {
167
+ if (await this.loadPlugin(path, context)) {
168
+ loaded++;
169
+ }
170
+ }
171
+ logger.info(`Loaded ${loaded}/${pluginPaths.length} plugins`);
172
+ return loaded;
173
+ }
174
+ getPlugin(name) {
175
+ return this.plugins.get(name);
176
+ }
177
+ getToolPlugins() {
178
+ return this.toolPlugins;
179
+ }
180
+ getAgentPlugins() {
181
+ return this.agentPlugins;
182
+ }
183
+ getWorkflowPlugins() {
184
+ return this.workflowPlugins;
185
+ }
186
+ getAllTools() {
187
+ const tools = {};
188
+ for (const [name, plugin] of this.toolPlugins) {
189
+ const pluginTools = plugin.getTools();
190
+ for (const [toolName, toolFn] of Object.entries(pluginTools)) {
191
+ tools[`${name}.${toolName}`] = toolFn;
192
+ }
193
+ }
194
+ return tools;
195
+ }
196
+ async shutdown() {
197
+ for (const plugin of this.plugins.values()) {
198
+ await plugin.shutdown();
199
+ }
200
+ this.plugins.clear();
201
+ this.toolPlugins.clear();
202
+ this.agentPlugins.clear();
203
+ this.workflowPlugins.clear();
204
+ }
205
+ }
206
+ exports.PluginManager = PluginManager;
207
+ // Global instance
208
+ let pluginManagerInstance = null;
209
+ function getPluginManager(pluginDir) {
210
+ if (!pluginManagerInstance) {
211
+ pluginManagerInstance = new PluginManager(pluginDir);
212
+ }
213
+ return pluginManagerInstance;
214
+ }
215
+ //# sourceMappingURL=plugins.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugins.js","sourceRoot":"","sources":["../src/plugins.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Prism-Orchestrator Integration
3
+ * TypeScript equivalent of Python prism_orchestrator.py
4
+ */
5
+ import { Prism, PrismConfig, Facet } from './prism';
6
+ import { Orchestrator } from './orchestrator';
7
+ export declare class PrismOrchestrator {
8
+ prism: Prism;
9
+ orchestrator: Orchestrator;
10
+ config: PrismConfig;
11
+ constructor(orchestrator: Orchestrator, config?: Partial<PrismConfig>);
12
+ executeTask(task: string): Promise<{
13
+ result: any;
14
+ facets: string[];
15
+ confidence: number;
16
+ }>;
17
+ private executeBranch;
18
+ private selectBestResult;
19
+ private scoreResult;
20
+ addCustomFacet(facet: Omit<Facet, 'complete' | 'confidence'>): void;
21
+ getState(): {
22
+ prism: ReturnType<Prism['getState']>;
23
+ orchestratorRunning: boolean;
24
+ };
25
+ }
26
+ //# sourceMappingURL=prism-orchestrator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prism-orchestrator.d.ts","sourceRoot":"","sources":["../src/prism-orchestrator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AA2D9C,qBAAa,iBAAiB;IAC5B,KAAK,EAAE,KAAK,CAAC;IACb,YAAY,EAAE,YAAY,CAAC;IAC3B,MAAM,EAAE,WAAW,CAAC;gBAER,YAAY,EAAE,YAAY,EAAE,MAAM,GAAE,OAAO,CAAC,WAAW,CAAM;IAkBnE,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QACvC,MAAM,EAAE,GAAG,CAAC;QACZ,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;YAmFY,aAAa;IAY3B,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,WAAW;IAYnB,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG,YAAY,CAAC,GAAG,IAAI;IAMnE,QAAQ,IAAI;QACV,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;QACrC,mBAAmB,EAAE,OAAO,CAAC;KAC9B;CAMF"}
@@ -0,0 +1,191 @@
1
+ "use strict";
2
+ /**
3
+ * Prism-Orchestrator Integration
4
+ * TypeScript equivalent of Python prism_orchestrator.py
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.PrismOrchestrator = void 0;
8
+ const prism_1 = require("./prism");
9
+ const logger_1 = require("./logger");
10
+ const logger = (0, logger_1.getLogger)();
11
+ // Facet definitions for different tasks
12
+ const DEFAULT_FACETS = [
13
+ {
14
+ id: 'analyze',
15
+ name: 'Analyze Requirements',
16
+ prompt: 'Analyze the following task and identify key requirements, constraints, and success criteria.',
17
+ weight: 1.0,
18
+ next: ['design', 'research']
19
+ },
20
+ {
21
+ id: 'design',
22
+ name: 'Design Solution',
23
+ prompt: 'Based on the analysis, design a solution approach. Consider multiple options and their trade-offs.',
24
+ weight: 1.5,
25
+ next: ['implement']
26
+ },
27
+ {
28
+ id: 'research',
29
+ name: 'Research Context',
30
+ prompt: 'Research relevant information, patterns, and best practices for this type of task.',
31
+ weight: 0.8,
32
+ next: ['design']
33
+ },
34
+ {
35
+ id: 'implement',
36
+ name: 'Implement Solution',
37
+ prompt: 'Implement the solution based on the design. Provide code, configuration, or concrete outputs.',
38
+ weight: 2.0,
39
+ next: ['review', 'test']
40
+ },
41
+ {
42
+ id: 'review',
43
+ name: 'Review Implementation',
44
+ prompt: 'Review the implementation for correctness, quality, and adherence to requirements.',
45
+ weight: 1.0,
46
+ next: ['refine']
47
+ },
48
+ {
49
+ id: 'test',
50
+ name: 'Test Solution',
51
+ prompt: 'Identify test cases and verify the solution handles edge cases correctly.',
52
+ weight: 1.0,
53
+ next: ['refine']
54
+ },
55
+ {
56
+ id: 'refine',
57
+ name: 'Refine and Optimize',
58
+ prompt: 'Based on review and test results, refine and optimize the solution.',
59
+ weight: 1.0
60
+ }
61
+ ];
62
+ // PrismOrchestrator - integrates Prism with Orchestrator
63
+ class PrismOrchestrator {
64
+ prism;
65
+ orchestrator;
66
+ config;
67
+ constructor(orchestrator, config = {}) {
68
+ this.orchestrator = orchestrator;
69
+ this.config = {
70
+ max_facets: 5,
71
+ confidence_threshold: 0.7,
72
+ auto_branch: true,
73
+ reflection_depth: 2,
74
+ ...config
75
+ };
76
+ this.prism = new prism_1.Prism(this.config);
77
+ // Add default facets
78
+ for (const facet of DEFAULT_FACETS) {
79
+ this.prism.addFacet(facet);
80
+ }
81
+ }
82
+ // Execute task with Prism + Orchestrator
83
+ async executeTask(task) {
84
+ logger.info(`Starting Prism+Orchestrator execution for: ${task}`);
85
+ const executedFacets = [];
86
+ let currentFacetId = 'analyze';
87
+ let lastResult = '';
88
+ let finalConfidence = 0;
89
+ // Execute facets until complete
90
+ while (currentFacetId && executedFacets.length < this.config.max_facets) {
91
+ const context = {
92
+ task,
93
+ previous: lastResult,
94
+ goals: [task]
95
+ };
96
+ try {
97
+ // Execute facet with LLM
98
+ const result = await this.prism.executeFacet(currentFacetId, context, async (prompt) => {
99
+ // Use orchestrator's provider for completion
100
+ const response = await this.orchestrator.provider.complete([
101
+ { role: 'system', content: 'You are a helpful assistant.' },
102
+ { role: 'user', content: prompt }
103
+ ]);
104
+ return response.content;
105
+ });
106
+ executedFacets.push(currentFacetId);
107
+ lastResult = result.output;
108
+ finalConfidence = result.confidence;
109
+ logger.info(`Facet ${currentFacetId} complete (confidence: ${finalConfidence.toFixed(2)})`);
110
+ // Determine next facet
111
+ if (result.complete) {
112
+ break;
113
+ }
114
+ currentFacetId = result.next_facet || null;
115
+ }
116
+ catch (error) {
117
+ logger.error(`Facet ${currentFacetId} failed: ${error}`);
118
+ break;
119
+ }
120
+ }
121
+ // If confidence is low, create branches and try alternative approaches
122
+ if (finalConfidence < this.config.confidence_threshold && this.config.auto_branch) {
123
+ logger.info('Confidence low, creating branches for alternative approaches');
124
+ const conservativeBranch = this.prism.createBranch('conservative');
125
+ const experimentalBranch = this.prism.createBranch('experimental');
126
+ // Execute both branches
127
+ const branchResults = await Promise.all([
128
+ this.executeBranch(conservativeBranch, task, 'safe'),
129
+ this.executeBranch(experimentalBranch, task, 'creative')
130
+ ]);
131
+ // Merge results
132
+ const bestResult = this.selectBestResult(branchResults);
133
+ return {
134
+ result: bestResult,
135
+ facets: executedFacets,
136
+ confidence: finalConfidence
137
+ };
138
+ }
139
+ // Use orchestrator for final execution
140
+ const finalResult = await this.orchestrator.run(task);
141
+ return {
142
+ result: finalResult,
143
+ facets: executedFacets,
144
+ confidence: finalConfidence
145
+ };
146
+ }
147
+ // Execute a branch with specific strategy
148
+ async executeBranch(branch, task, strategy) {
149
+ logger.info(`Executing ${strategy} branch: ${branch.id}`);
150
+ // Modify task based on strategy
151
+ const modifiedTask = strategy === 'safe'
152
+ ? `${task} (Focus on safety, minimal changes, backwards compatibility)`
153
+ : `${task} (Be creative, consider novel approaches, optimize for performance)`;
154
+ return this.orchestrator.run(modifiedTask);
155
+ }
156
+ // Select best result from branches
157
+ selectBestResult(results) {
158
+ // Simple selection - could be more sophisticated
159
+ return results.reduce((best, current) => {
160
+ const bestScore = this.scoreResult(best);
161
+ const currentScore = this.scoreResult(current);
162
+ return currentScore > bestScore ? current : best;
163
+ });
164
+ }
165
+ // Score a result (placeholder)
166
+ scoreResult(result) {
167
+ if (!result)
168
+ return 0;
169
+ // Factors: success, output length, no errors
170
+ let score = result.success ? 1 : 0;
171
+ if (result.output)
172
+ score += Math.min(result.output.length / 1000, 0.5);
173
+ if (!result.error)
174
+ score += 0.5;
175
+ return score;
176
+ }
177
+ // Add custom facet
178
+ addCustomFacet(facet) {
179
+ this.prism.addFacet(facet);
180
+ logger.info(`Added custom facet: ${facet.name}`);
181
+ }
182
+ // Get execution state
183
+ getState() {
184
+ return {
185
+ prism: this.prism.getState(),
186
+ orchestratorRunning: true
187
+ };
188
+ }
189
+ }
190
+ exports.PrismOrchestrator = PrismOrchestrator;
191
+ //# sourceMappingURL=prism-orchestrator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prism-orchestrator.js","sourceRoot":"","sources":["../src/prism-orchestrator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Prism - Multi-Faceted Architecture
3
+ * TypeScript equivalent of Python prism.py
4
+ */
5
+ import { FacetResult, Branch } from './types';
6
+ export interface Facet {
7
+ id: string;
8
+ name: string;
9
+ prompt: string;
10
+ weight: number;
11
+ next?: string[];
12
+ complete: boolean;
13
+ result?: string;
14
+ confidence: number;
15
+ }
16
+ export interface PrismConfig {
17
+ max_facets: number;
18
+ confidence_threshold: number;
19
+ auto_branch: boolean;
20
+ reflection_depth: number;
21
+ }
22
+ export declare class Prism {
23
+ facets: Map<string, Facet>;
24
+ currentFacet: string | null;
25
+ branches: Map<string, Branch>;
26
+ config: PrismConfig;
27
+ private reflectionCount;
28
+ constructor(config?: Partial<PrismConfig>);
29
+ addFacet(facet: Omit<Facet, 'complete' | 'confidence'>): void;
30
+ executeFacet(facetId: string, context: any, llmComplete: (prompt: string) => Promise<string>): Promise<FacetResult>;
31
+ private buildPrompt;
32
+ private calculateConfidence;
33
+ private determineNextFacet;
34
+ createBranch(strategy: 'conservative' | 'experimental' | 'custom'): Branch;
35
+ mergeBranches(branchIds: string[]): Branch;
36
+ reflect(output: string, context: any, llmComplete: (prompt: string) => Promise<string>): Promise<string>;
37
+ reset(): void;
38
+ getState(): {
39
+ facets: Facet[];
40
+ branches: Branch[];
41
+ currentFacet: string | null;
42
+ reflectionCount: number;
43
+ };
44
+ }
45
+ export declare function getPrism(config?: Partial<PrismConfig>): Prism;
46
+ //# sourceMappingURL=prism.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prism.d.ts","sourceRoot":"","sources":["../src/prism.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAK9C,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAGD,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,WAAW,EAAE,OAAO,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAWD,qBAAa,KAAK;IAChB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC3B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,eAAe,CAAS;gBAEpB,MAAM,GAAE,OAAO,CAAC,WAAW,CAAM;IAS7C,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG,YAAY,CAAC,GAAG,IAAI;IAUvD,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;IA0CzH,OAAO,CAAC,WAAW;IAgBnB,OAAO,CAAC,mBAAmB;IAgB3B,OAAO,CAAC,kBAAkB;IAmB1B,YAAY,CAAC,QAAQ,EAAE,cAAc,GAAG,cAAc,GAAG,QAAQ,GAAG,MAAM;IAgB1E,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM;IAiBpC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAoB9G,KAAK,IAAI,IAAI;IASb,QAAQ,IAAI;QACV,MAAM,EAAE,KAAK,EAAE,CAAC;QAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,eAAe,EAAE,MAAM,CAAC;KACzB;CAQF;AAKD,wBAAgB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,KAAK,CAK7D"}