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.
- package/LICENSE +21 -0
- package/README.md +161 -0
- package/dist/agent-system.d.ts +196 -0
- package/dist/agent-system.d.ts.map +1 -0
- package/dist/agent-system.js +738 -0
- package/dist/agent-system.js.map +1 -0
- package/dist/alphabeta.d.ts +54 -0
- package/dist/alphabeta.d.ts.map +1 -0
- package/dist/alphabeta.js +193 -0
- package/dist/alphabeta.js.map +1 -0
- package/dist/browser.d.ts +62 -0
- package/dist/browser.d.ts.map +1 -0
- package/dist/browser.js +224 -0
- package/dist/browser.js.map +1 -0
- package/dist/cli.d.ts +7 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +565 -0
- package/dist/cli.js.map +1 -0
- package/dist/code-parser.d.ts +39 -0
- package/dist/code-parser.d.ts.map +1 -0
- package/dist/code-parser.js +385 -0
- package/dist/code-parser.js.map +1 -0
- package/dist/config.d.ts +66 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +232 -0
- package/dist/config.js.map +1 -0
- package/dist/core/engine.d.ts +359 -0
- package/dist/core/engine.d.ts.map +1 -0
- package/dist/core/engine.js +127 -0
- package/dist/core/engine.js.map +1 -0
- package/dist/daemon.d.ts +29 -0
- package/dist/daemon.d.ts.map +1 -0
- package/dist/daemon.js +212 -0
- package/dist/daemon.js.map +1 -0
- package/dist/email-receiver.d.ts +63 -0
- package/dist/email-receiver.d.ts.map +1 -0
- package/dist/email-receiver.js +553 -0
- package/dist/email-receiver.js.map +1 -0
- package/dist/git-integration.d.ts +180 -0
- package/dist/git-integration.d.ts.map +1 -0
- package/dist/git-integration.js +850 -0
- package/dist/git-integration.js.map +1 -0
- package/dist/inbox.d.ts +84 -0
- package/dist/inbox.d.ts.map +1 -0
- package/dist/inbox.js +198 -0
- package/dist/inbox.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +41 -0
- package/dist/index.js.map +1 -0
- package/dist/languages/cpp.d.ts +51 -0
- package/dist/languages/cpp.d.ts.map +1 -0
- package/dist/languages/cpp.js +930 -0
- package/dist/languages/cpp.js.map +1 -0
- package/dist/languages/csharp.d.ts +79 -0
- package/dist/languages/csharp.d.ts.map +1 -0
- package/dist/languages/csharp.js +1776 -0
- package/dist/languages/csharp.js.map +1 -0
- package/dist/languages/go.d.ts +50 -0
- package/dist/languages/go.d.ts.map +1 -0
- package/dist/languages/go.js +882 -0
- package/dist/languages/go.js.map +1 -0
- package/dist/languages/java.d.ts +47 -0
- package/dist/languages/java.d.ts.map +1 -0
- package/dist/languages/java.js +649 -0
- package/dist/languages/java.js.map +1 -0
- package/dist/languages/python.d.ts +47 -0
- package/dist/languages/python.d.ts.map +1 -0
- package/dist/languages/python.js +655 -0
- package/dist/languages/python.js.map +1 -0
- package/dist/languages/rust.d.ts +61 -0
- package/dist/languages/rust.d.ts.map +1 -0
- package/dist/languages/rust.js +1064 -0
- package/dist/languages/rust.js.map +1 -0
- package/dist/logger.d.ts +20 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +133 -0
- package/dist/logger.js.map +1 -0
- package/dist/longterm-memory.d.ts +47 -0
- package/dist/longterm-memory.d.ts.map +1 -0
- package/dist/longterm-memory.js +300 -0
- package/dist/longterm-memory.js.map +1 -0
- package/dist/memory.d.ts +42 -0
- package/dist/memory.d.ts.map +1 -0
- package/dist/memory.js +274 -0
- package/dist/memory.js.map +1 -0
- package/dist/messaging.d.ts +103 -0
- package/dist/messaging.d.ts.map +1 -0
- package/dist/messaging.js +645 -0
- package/dist/messaging.js.map +1 -0
- package/dist/multi-provider.d.ts +69 -0
- package/dist/multi-provider.d.ts.map +1 -0
- package/dist/multi-provider.js +484 -0
- package/dist/multi-provider.js.map +1 -0
- package/dist/orchestrator.d.ts +65 -0
- package/dist/orchestrator.d.ts.map +1 -0
- package/dist/orchestrator.js +441 -0
- package/dist/orchestrator.js.map +1 -0
- package/dist/plugins.d.ts +52 -0
- package/dist/plugins.d.ts.map +1 -0
- package/dist/plugins.js +215 -0
- package/dist/plugins.js.map +1 -0
- package/dist/prism-orchestrator.d.ts +26 -0
- package/dist/prism-orchestrator.d.ts.map +1 -0
- package/dist/prism-orchestrator.js +191 -0
- package/dist/prism-orchestrator.js.map +1 -0
- package/dist/prism.d.ts +46 -0
- package/dist/prism.d.ts.map +1 -0
- package/dist/prism.js +188 -0
- package/dist/prism.js.map +1 -0
- package/dist/privacy.d.ts +23 -0
- package/dist/privacy.d.ts.map +1 -0
- package/dist/privacy.js +220 -0
- package/dist/privacy.js.map +1 -0
- package/dist/proactive.d.ts +30 -0
- package/dist/proactive.d.ts.map +1 -0
- package/dist/proactive.js +260 -0
- package/dist/proactive.js.map +1 -0
- package/dist/refactoring-engine.d.ts +100 -0
- package/dist/refactoring-engine.d.ts.map +1 -0
- package/dist/refactoring-engine.js +717 -0
- package/dist/refactoring-engine.js.map +1 -0
- package/dist/resilience.d.ts +43 -0
- package/dist/resilience.d.ts.map +1 -0
- package/dist/resilience.js +200 -0
- package/dist/resilience.js.map +1 -0
- package/dist/safety.d.ts +40 -0
- package/dist/safety.d.ts.map +1 -0
- package/dist/safety.js +133 -0
- package/dist/safety.js.map +1 -0
- package/dist/sandbox.d.ts +33 -0
- package/dist/sandbox.d.ts.map +1 -0
- package/dist/sandbox.js +173 -0
- package/dist/sandbox.js.map +1 -0
- package/dist/scheduler.d.ts +72 -0
- package/dist/scheduler.d.ts.map +1 -0
- package/dist/scheduler.js +374 -0
- package/dist/scheduler.js.map +1 -0
- package/dist/semantic-memory.d.ts +70 -0
- package/dist/semantic-memory.d.ts.map +1 -0
- package/dist/semantic-memory.js +430 -0
- package/dist/semantic-memory.js.map +1 -0
- package/dist/skills.d.ts +97 -0
- package/dist/skills.d.ts.map +1 -0
- package/dist/skills.js +575 -0
- package/dist/skills.js.map +1 -0
- package/dist/static/dashboard.html +853 -0
- package/dist/static/hub.html +772 -0
- package/dist/static/index.html +818 -0
- package/dist/static/logo.svg +24 -0
- package/dist/static/workflow-editor.html +913 -0
- package/dist/tools.d.ts +67 -0
- package/dist/tools.d.ts.map +1 -0
- package/dist/tools.js +303 -0
- package/dist/tools.js.map +1 -0
- package/dist/types.d.ts +295 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +90 -0
- package/dist/types.js.map +1 -0
- package/dist/web.d.ts +76 -0
- package/dist/web.d.ts.map +1 -0
- package/dist/web.js +2139 -0
- package/dist/web.js.map +1 -0
- package/dist/workflow-engine.d.ts +114 -0
- package/dist/workflow-engine.d.ts.map +1 -0
- package/dist/workflow-engine.js +855 -0
- package/dist/workflow-engine.js.map +1 -0
- package/package.json +77 -0
package/dist/plugins.js
ADDED
|
@@ -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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"}
|
package/dist/prism.d.ts
ADDED
|
@@ -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"}
|