@synergenius/flow-weaver-pack-weaver 0.8.3 → 0.9.3
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/dist/bot/ai-client.d.ts +22 -2
- package/dist/bot/ai-client.d.ts.map +1 -1
- package/dist/bot/ai-client.js +168 -20
- package/dist/bot/ai-client.js.map +1 -1
- package/dist/bot/assistant-core.d.ts +25 -0
- package/dist/bot/assistant-core.d.ts.map +1 -0
- package/dist/bot/assistant-core.js +265 -0
- package/dist/bot/assistant-core.js.map +1 -0
- package/dist/bot/assistant-tools.d.ts +9 -0
- package/dist/bot/assistant-tools.d.ts.map +1 -0
- package/dist/bot/assistant-tools.js +602 -0
- package/dist/bot/assistant-tools.js.map +1 -0
- package/dist/bot/audit-logger.d.ts.map +1 -1
- package/dist/bot/audit-logger.js +9 -5
- package/dist/bot/audit-logger.js.map +1 -1
- package/dist/bot/audit-store.d.ts.map +1 -1
- package/dist/bot/audit-store.js +3 -11
- package/dist/bot/audit-store.js.map +1 -1
- package/dist/bot/bot-manager.d.ts +49 -0
- package/dist/bot/bot-manager.d.ts.map +1 -0
- package/dist/bot/bot-manager.js +279 -0
- package/dist/bot/bot-manager.js.map +1 -0
- package/dist/bot/child-process-tracker.d.ts +6 -0
- package/dist/bot/child-process-tracker.d.ts.map +1 -0
- package/dist/bot/child-process-tracker.js +35 -0
- package/dist/bot/child-process-tracker.js.map +1 -0
- package/dist/bot/cli-provider.d.ts.map +1 -1
- package/dist/bot/cli-provider.js +13 -8
- package/dist/bot/cli-provider.js.map +1 -1
- package/dist/bot/conversation-store.d.ts +40 -0
- package/dist/bot/conversation-store.d.ts.map +1 -0
- package/dist/bot/conversation-store.js +182 -0
- package/dist/bot/conversation-store.js.map +1 -0
- package/dist/bot/cost-store.d.ts.map +1 -1
- package/dist/bot/cost-store.js +10 -14
- package/dist/bot/cost-store.js.map +1 -1
- package/dist/bot/error-guide.d.ts +10 -0
- package/dist/bot/error-guide.d.ts.map +1 -0
- package/dist/bot/error-guide.js +34 -0
- package/dist/bot/error-guide.js.map +1 -0
- package/dist/bot/genesis-store.d.ts.map +1 -1
- package/dist/bot/genesis-store.js +11 -20
- package/dist/bot/genesis-store.js.map +1 -1
- package/dist/bot/index.d.ts +3 -0
- package/dist/bot/index.d.ts.map +1 -1
- package/dist/bot/index.js +3 -0
- package/dist/bot/index.js.map +1 -1
- package/dist/bot/knowledge-store.d.ts +17 -0
- package/dist/bot/knowledge-store.d.ts.map +1 -0
- package/dist/bot/knowledge-store.js +53 -0
- package/dist/bot/knowledge-store.js.map +1 -0
- package/dist/bot/pipeline-runner.d.ts.map +1 -1
- package/dist/bot/pipeline-runner.js +8 -1
- package/dist/bot/pipeline-runner.js.map +1 -1
- package/dist/bot/retry-utils.d.ts +19 -0
- package/dist/bot/retry-utils.d.ts.map +1 -0
- package/dist/bot/retry-utils.js +64 -0
- package/dist/bot/retry-utils.js.map +1 -0
- package/dist/bot/run-store.d.ts.map +1 -1
- package/dist/bot/run-store.js +2 -10
- package/dist/bot/run-store.js.map +1 -1
- package/dist/bot/runner.d.ts.map +1 -1
- package/dist/bot/runner.js +24 -3
- package/dist/bot/runner.js.map +1 -1
- package/dist/bot/safe-json.d.ts +32 -0
- package/dist/bot/safe-json.d.ts.map +1 -0
- package/dist/bot/safe-json.js +56 -0
- package/dist/bot/safe-json.js.map +1 -0
- package/dist/bot/safe-path.d.ts +18 -0
- package/dist/bot/safe-path.d.ts.map +1 -0
- package/dist/bot/safe-path.js +40 -0
- package/dist/bot/safe-path.js.map +1 -0
- package/dist/bot/session-state.d.ts.map +1 -1
- package/dist/bot/session-state.js +3 -1
- package/dist/bot/session-state.js.map +1 -1
- package/dist/bot/steering.js +1 -1
- package/dist/bot/steering.js.map +1 -1
- package/dist/bot/step-executor.d.ts +10 -5
- package/dist/bot/step-executor.d.ts.map +1 -1
- package/dist/bot/step-executor.js +252 -3
- package/dist/bot/step-executor.js.map +1 -1
- package/dist/bot/system-prompt.d.ts +1 -1
- package/dist/bot/system-prompt.d.ts.map +1 -1
- package/dist/bot/system-prompt.js +69 -43
- package/dist/bot/system-prompt.js.map +1 -1
- package/dist/bot/task-decomposer.d.ts +24 -0
- package/dist/bot/task-decomposer.d.ts.map +1 -0
- package/dist/bot/task-decomposer.js +75 -0
- package/dist/bot/task-decomposer.js.map +1 -0
- package/dist/bot/task-queue.d.ts +17 -4
- package/dist/bot/task-queue.d.ts.map +1 -1
- package/dist/bot/task-queue.js +102 -14
- package/dist/bot/task-queue.js.map +1 -1
- package/dist/bot/terminal-renderer.d.ts +60 -0
- package/dist/bot/terminal-renderer.d.ts.map +1 -0
- package/dist/bot/terminal-renderer.js +205 -0
- package/dist/bot/terminal-renderer.js.map +1 -0
- package/dist/bot/types.d.ts +7 -0
- package/dist/bot/types.d.ts.map +1 -1
- package/dist/bot/weaver-tools.d.ts +18 -0
- package/dist/bot/weaver-tools.d.ts.map +1 -0
- package/dist/bot/weaver-tools.js +215 -0
- package/dist/bot/weaver-tools.js.map +1 -0
- package/dist/cli-bridge.d.ts.map +1 -1
- package/dist/cli-bridge.js +10 -3
- package/dist/cli-bridge.js.map +1 -1
- package/dist/cli-handlers.d.ts +15 -1
- package/dist/cli-handlers.d.ts.map +1 -1
- package/dist/cli-handlers.js +742 -28
- package/dist/cli-handlers.js.map +1 -1
- package/dist/handlers/on-bot-completed.d.ts +21 -0
- package/dist/handlers/on-bot-completed.d.ts.map +1 -0
- package/dist/handlers/on-bot-completed.js +28 -0
- package/dist/handlers/on-bot-completed.js.map +1 -0
- package/dist/handlers/on-execution-failure.d.ts +23 -0
- package/dist/handlers/on-execution-failure.d.ts.map +1 -0
- package/dist/handlers/on-execution-failure.js +28 -0
- package/dist/handlers/on-execution-failure.js.map +1 -0
- package/dist/handlers/scheduled-run.d.ts +24 -0
- package/dist/handlers/scheduled-run.d.ts.map +1 -0
- package/dist/handlers/scheduled-run.js +25 -0
- package/dist/handlers/scheduled-run.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp-tools.js +2 -2
- package/dist/mcp-tools.js.map +1 -1
- package/dist/node-types/abort-task.d.ts.map +1 -1
- package/dist/node-types/abort-task.js +4 -3
- package/dist/node-types/abort-task.js.map +1 -1
- package/dist/node-types/agent-execute.d.ts +38 -0
- package/dist/node-types/agent-execute.d.ts.map +1 -0
- package/dist/node-types/agent-execute.js +256 -0
- package/dist/node-types/agent-execute.js.map +1 -0
- package/dist/node-types/bot-report.d.ts +5 -3
- package/dist/node-types/bot-report.d.ts.map +1 -1
- package/dist/node-types/bot-report.js +39 -7
- package/dist/node-types/bot-report.js.map +1 -1
- package/dist/node-types/build-context.d.ts +3 -3
- package/dist/node-types/build-context.d.ts.map +1 -1
- package/dist/node-types/build-context.js +108 -24
- package/dist/node-types/build-context.js.map +1 -1
- package/dist/node-types/detect-provider.d.ts +2 -2
- package/dist/node-types/detect-provider.d.ts.map +1 -1
- package/dist/node-types/detect-provider.js +3 -1
- package/dist/node-types/detect-provider.js.map +1 -1
- package/dist/node-types/exec-validate-retry.d.ts.map +1 -1
- package/dist/node-types/exec-validate-retry.js +43 -6
- package/dist/node-types/exec-validate-retry.js.map +1 -1
- package/dist/node-types/execute-plan.d.ts.map +1 -1
- package/dist/node-types/execute-plan.js +31 -8
- package/dist/node-types/execute-plan.js.map +1 -1
- package/dist/node-types/execute-target.d.ts.map +1 -1
- package/dist/node-types/execute-target.js +3 -1
- package/dist/node-types/execute-target.js.map +1 -1
- package/dist/node-types/fix-errors.d.ts.map +1 -1
- package/dist/node-types/fix-errors.js +21 -5
- package/dist/node-types/fix-errors.js.map +1 -1
- package/dist/node-types/genesis-observe.d.ts.map +1 -1
- package/dist/node-types/genesis-observe.js +3 -1
- package/dist/node-types/genesis-observe.js.map +1 -1
- package/dist/node-types/genesis-report.js +4 -1
- package/dist/node-types/genesis-report.js.map +1 -1
- package/dist/node-types/git-ops.d.ts.map +1 -1
- package/dist/node-types/git-ops.js +98 -4
- package/dist/node-types/git-ops.js.map +1 -1
- package/dist/node-types/index.d.ts +2 -0
- package/dist/node-types/index.d.ts.map +1 -1
- package/dist/node-types/index.js +2 -0
- package/dist/node-types/index.js.map +1 -1
- package/dist/node-types/load-config.d.ts +2 -2
- package/dist/node-types/load-config.d.ts.map +1 -1
- package/dist/node-types/load-config.js.map +1 -1
- package/dist/node-types/plan-task.d.ts.map +1 -1
- package/dist/node-types/plan-task.js +14 -2
- package/dist/node-types/plan-task.js.map +1 -1
- package/dist/node-types/read-workflow.js +8 -2
- package/dist/node-types/read-workflow.js.map +1 -1
- package/dist/node-types/receive-task.d.ts.map +1 -1
- package/dist/node-types/receive-task.js +35 -26
- package/dist/node-types/receive-task.js.map +1 -1
- package/dist/node-types/send-notify.js +2 -1
- package/dist/node-types/send-notify.js.map +1 -1
- package/dist/node-types/validate-gate.d.ts +18 -0
- package/dist/node-types/validate-gate.d.ts.map +1 -0
- package/dist/node-types/validate-gate.js +96 -0
- package/dist/node-types/validate-gate.js.map +1 -0
- package/dist/workflows/genesis-task.d.ts +20 -12
- package/dist/workflows/genesis-task.d.ts.map +1 -1
- package/dist/workflows/genesis-task.js +20 -12
- package/dist/workflows/genesis-task.js.map +1 -1
- package/dist/workflows/weaver-agent.d.ts +35 -0
- package/dist/workflows/weaver-agent.d.ts.map +1 -0
- package/dist/workflows/weaver-agent.js +777 -0
- package/dist/workflows/weaver-agent.js.map +1 -0
- package/dist/workflows/weaver-bot-batch.d.ts +19 -26
- package/dist/workflows/weaver-bot-batch.d.ts.map +1 -1
- package/dist/workflows/weaver-bot-batch.js +1043 -27
- package/dist/workflows/weaver-bot-batch.js.map +1 -1
- package/dist/workflows/weaver-bot.d.ts +21 -35
- package/dist/workflows/weaver-bot.d.ts.map +1 -1
- package/dist/workflows/weaver-bot.js +1119 -36
- package/dist/workflows/weaver-bot.js.map +1 -1
- package/flowweaver.manifest.json +113 -2
- package/package.json +5 -2
- package/src/bot/ai-client.ts +180 -19
- package/src/bot/assistant-core.ts +306 -0
- package/src/bot/assistant-tools.ts +605 -0
- package/src/bot/audit-logger.ts +6 -5
- package/src/bot/audit-store.ts +3 -12
- package/src/bot/bot-manager.ts +293 -0
- package/src/bot/child-process-tracker.ts +40 -0
- package/src/bot/cli-provider.ts +13 -8
- package/src/bot/conversation-store.ts +222 -0
- package/src/bot/cost-store.ts +11 -12
- package/src/bot/error-guide.ts +34 -0
- package/src/bot/genesis-store.ts +11 -17
- package/src/bot/index.ts +5 -0
- package/src/bot/knowledge-store.ts +59 -0
- package/src/bot/pipeline-runner.ts +7 -1
- package/src/bot/retry-utils.ts +76 -0
- package/src/bot/run-store.ts +2 -11
- package/src/bot/runner.ts +26 -3
- package/src/bot/safe-json.ts +76 -0
- package/src/bot/safe-path.ts +44 -0
- package/src/bot/session-state.ts +2 -1
- package/src/bot/steering.ts +1 -1
- package/src/bot/step-executor.ts +313 -5
- package/src/bot/system-prompt.ts +70 -47
- package/src/bot/task-decomposer.ts +100 -0
- package/src/bot/task-queue.ts +119 -15
- package/src/bot/terminal-renderer.ts +241 -0
- package/src/bot/types.ts +8 -0
- package/src/bot/weaver-tools.ts +225 -0
- package/src/cli-bridge.ts +14 -3
- package/src/cli-handlers.ts +760 -29
- package/src/handlers/on-bot-completed.ts +48 -0
- package/src/handlers/on-execution-failure.ts +42 -0
- package/src/handlers/scheduled-run.ts +42 -0
- package/src/index.ts +5 -0
- package/src/mcp-tools.ts +2 -2
- package/src/node-types/abort-task.ts +5 -4
- package/src/node-types/agent-execute.ts +306 -0
- package/src/node-types/bot-report.ts +40 -9
- package/src/node-types/build-context.ts +112 -25
- package/src/node-types/detect-provider.ts +4 -3
- package/src/node-types/exec-validate-retry.ts +47 -8
- package/src/node-types/execute-plan.ts +32 -8
- package/src/node-types/execute-target.ts +2 -1
- package/src/node-types/fix-errors.ts +20 -5
- package/src/node-types/genesis-observe.ts +2 -1
- package/src/node-types/genesis-report.ts +1 -1
- package/src/node-types/git-ops.ts +93 -4
- package/src/node-types/index.ts +2 -0
- package/src/node-types/load-config.ts +3 -3
- package/src/node-types/plan-task.ts +15 -3
- package/src/node-types/read-workflow.ts +2 -2
- package/src/node-types/receive-task.ts +31 -26
- package/src/node-types/send-notify.ts +1 -1
- package/src/node-types/validate-gate.ts +112 -0
- package/src/workflows/genesis-task.ts +20 -12
- package/src/workflows/weaver-agent.ts +799 -0
- package/src/workflows/weaver-bot-batch.ts +1049 -27
- package/src/workflows/weaver-bot.ts +1123 -36
|
@@ -2,9 +2,9 @@ import { execFileSync } from 'node:child_process';
|
|
|
2
2
|
import * as fs from 'node:fs';
|
|
3
3
|
import * as path from 'node:path';
|
|
4
4
|
/**
|
|
5
|
-
* Builds the knowledge bundle the AI needs for planning.
|
|
6
|
-
*
|
|
7
|
-
*
|
|
5
|
+
* Builds the knowledge bundle the AI needs for planning.
|
|
6
|
+
* Adaptive: for modify tasks, includes only grammar + referenced node types.
|
|
7
|
+
* For create tasks, includes full authoring context + templates.
|
|
8
8
|
*
|
|
9
9
|
* @flowWeaver nodeType
|
|
10
10
|
* @expression
|
|
@@ -18,32 +18,76 @@ export function weaverBuildContext(ctx) {
|
|
|
18
18
|
const { projectDir } = context.env;
|
|
19
19
|
const task = JSON.parse(context.taskJson);
|
|
20
20
|
const sections = [];
|
|
21
|
+
if (task.mode === 'modify' && task.targets?.length) {
|
|
22
|
+
// Adaptive context: minimal grammar + target files + referenced node types
|
|
23
|
+
sections.push(...buildModifyContext(projectDir, task.targets));
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
// Full context for create tasks or unknown modes
|
|
27
|
+
sections.push(...buildFullContext(projectDir, task.mode));
|
|
28
|
+
}
|
|
29
|
+
const bundle = sections.join('\n\n---\n\n');
|
|
30
|
+
// Output handled by session renderer; keep a dim line for debugging
|
|
31
|
+
if (process.env.WEAVER_VERBOSE)
|
|
32
|
+
process.stderr.write(`\x1b[2m Context: ${bundle.length} chars\x1b[0m\n`);
|
|
33
|
+
context.contextBundle = bundle;
|
|
34
|
+
return { ctx: JSON.stringify(context) };
|
|
35
|
+
}
|
|
36
|
+
/** Minimal context for modify tasks: grammar + annotations + target sources + referenced node types. */
|
|
37
|
+
function buildModifyContext(projectDir, targets) {
|
|
38
|
+
const sections = [];
|
|
39
|
+
// Minimal grammar (jsdoc-grammar + advanced-annotations only — skip concepts/scaffold/patterns)
|
|
21
40
|
try {
|
|
22
|
-
const ctxOutput = execFileSync('flow-weaver', ['context', '
|
|
23
|
-
encoding: 'utf-8',
|
|
24
|
-
stdio: ['pipe', 'pipe', 'pipe'],
|
|
25
|
-
timeout: 30_000,
|
|
26
|
-
cwd: projectDir,
|
|
27
|
-
}).trim();
|
|
41
|
+
const ctxOutput = execFileSync('flow-weaver', ['context', '--topics', 'jsdoc-grammar,advanced-annotations', '--profile', 'assistant'], { encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'], timeout: 30_000, cwd: projectDir }).trim();
|
|
28
42
|
if (ctxOutput)
|
|
29
43
|
sections.push(ctxOutput);
|
|
30
44
|
}
|
|
31
|
-
catch {
|
|
45
|
+
catch (err) {
|
|
46
|
+
if (process.env.WEAVER_VERBOSE)
|
|
47
|
+
console.error('[build-context] modify context unavailable:', err);
|
|
32
48
|
sections.push('(flow-weaver context not available)');
|
|
33
49
|
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
50
|
+
// Target file sources + referenced node type sources
|
|
51
|
+
const includedFiles = new Set();
|
|
52
|
+
for (const target of targets) {
|
|
53
|
+
const filePath = path.isAbsolute(target) ? target : path.resolve(projectDir, target);
|
|
54
|
+
try {
|
|
55
|
+
if (!fs.existsSync(filePath))
|
|
56
|
+
continue;
|
|
57
|
+
const source = fs.readFileSync(filePath, 'utf-8');
|
|
58
|
+
sections.push(`## Target: ${target}\n\n\`\`\`typescript\n${source}\n\`\`\``);
|
|
59
|
+
includedFiles.add(filePath);
|
|
60
|
+
// Extract import paths to find referenced node type files
|
|
61
|
+
const nodeTypeSources = extractReferencedNodeTypes(filePath, source, projectDir);
|
|
62
|
+
for (const [relPath, ntSource] of nodeTypeSources) {
|
|
63
|
+
const absPath = path.resolve(projectDir, relPath);
|
|
64
|
+
if (!includedFiles.has(absPath)) {
|
|
65
|
+
includedFiles.add(absPath);
|
|
66
|
+
sections.push(`## Node Type: ${relPath}\n\n\`\`\`typescript\n${ntSource}\n\`\`\``);
|
|
41
67
|
}
|
|
42
68
|
}
|
|
43
|
-
catch { /* skip unreadable files */ }
|
|
44
69
|
}
|
|
70
|
+
catch (err) {
|
|
71
|
+
if (process.env.WEAVER_VERBOSE)
|
|
72
|
+
console.error('[build-context] unreadable file:', err);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return sections;
|
|
76
|
+
}
|
|
77
|
+
/** Full context for create tasks: full authoring preset + templates. */
|
|
78
|
+
function buildFullContext(projectDir, mode) {
|
|
79
|
+
const sections = [];
|
|
80
|
+
try {
|
|
81
|
+
const ctxOutput = execFileSync('flow-weaver', ['context', 'authoring', '--profile', 'assistant'], { encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'], timeout: 30_000, cwd: projectDir }).trim();
|
|
82
|
+
if (ctxOutput)
|
|
83
|
+
sections.push(ctxOutput);
|
|
45
84
|
}
|
|
46
|
-
|
|
85
|
+
catch (err) {
|
|
86
|
+
if (process.env.WEAVER_VERBOSE)
|
|
87
|
+
console.error('[build-context] full context unavailable:', err);
|
|
88
|
+
sections.push('(flow-weaver context not available)');
|
|
89
|
+
}
|
|
90
|
+
if (mode === 'create') {
|
|
47
91
|
try {
|
|
48
92
|
const templates = execFileSync('flow-weaver', ['list', 'templates'], {
|
|
49
93
|
encoding: 'utf-8',
|
|
@@ -54,11 +98,51 @@ export function weaverBuildContext(ctx) {
|
|
|
54
98
|
if (templates)
|
|
55
99
|
sections.push(`## Available Templates\n\n${templates}`);
|
|
56
100
|
}
|
|
57
|
-
catch {
|
|
101
|
+
catch (err) {
|
|
102
|
+
if (process.env.WEAVER_VERBOSE)
|
|
103
|
+
console.error('[build-context] templates not available:', err);
|
|
104
|
+
}
|
|
58
105
|
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
106
|
+
return sections;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Extract node type file sources referenced by a workflow file's imports.
|
|
110
|
+
* Parses import statements to find relative imports from node-types directories.
|
|
111
|
+
*/
|
|
112
|
+
function extractReferencedNodeTypes(filePath, source, projectDir) {
|
|
113
|
+
const results = [];
|
|
114
|
+
const dir = path.dirname(filePath);
|
|
115
|
+
// Match: import { ... } from '../node-types/foo.js' or './node-types/bar'
|
|
116
|
+
const importRegex = /import\s+(?:type\s+)?{[^}]+}\s+from\s+['"]([^'"]+)['"]/g;
|
|
117
|
+
let match;
|
|
118
|
+
while ((match = importRegex.exec(source)) !== null) {
|
|
119
|
+
const importPath = match[1];
|
|
120
|
+
// Only include relative imports that look like node type files
|
|
121
|
+
if (!importPath.startsWith('.') && !importPath.startsWith('/'))
|
|
122
|
+
continue;
|
|
123
|
+
if (!importPath.includes('node-type') && !importPath.includes('node_type'))
|
|
124
|
+
continue;
|
|
125
|
+
// Resolve the import to an absolute path
|
|
126
|
+
let resolved = path.resolve(dir, importPath);
|
|
127
|
+
// Try with .ts extension if no extension
|
|
128
|
+
if (!fs.existsSync(resolved)) {
|
|
129
|
+
if (fs.existsSync(resolved + '.ts'))
|
|
130
|
+
resolved = resolved + '.ts';
|
|
131
|
+
else if (fs.existsSync(resolved.replace(/\.js$/, '.ts')))
|
|
132
|
+
resolved = resolved.replace(/\.js$/, '.ts');
|
|
133
|
+
else
|
|
134
|
+
continue;
|
|
135
|
+
}
|
|
136
|
+
try {
|
|
137
|
+
const ntSource = fs.readFileSync(resolved, 'utf-8');
|
|
138
|
+
const relPath = path.relative(projectDir, resolved);
|
|
139
|
+
results.push([relPath, ntSource]);
|
|
140
|
+
}
|
|
141
|
+
catch (err) {
|
|
142
|
+
if (process.env.WEAVER_VERBOSE)
|
|
143
|
+
console.error('[build-context] unreadable node type:', err);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
return results;
|
|
63
147
|
}
|
|
64
148
|
//# sourceMappingURL=build-context.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-context.js","sourceRoot":"","sources":["../../src/node-types/build-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAGlC;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAW;IAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAkB,CAAC;IACjD,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IACnC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAS,CAA0C,CAAC;IACpF,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,YAAY,
|
|
1
|
+
{"version":3,"file":"build-context.js","sourceRoot":"","sources":["../../src/node-types/build-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { BotConfig, WeaverEnv } from '../bot/types.js';
|
|
2
2
|
/**
|
|
3
3
|
* Auto-detect or resolve the configured AI provider.
|
|
4
4
|
* Assembles the WeaverEnv bundle from projectDir, config, and detected provider.
|
|
@@ -11,7 +11,7 @@ import type { WeaverConfig, WeaverEnv } from '../bot/types.js';
|
|
|
11
11
|
* @output env [order:0] - Weaver environment bundle
|
|
12
12
|
* @output onFailure [hidden]
|
|
13
13
|
*/
|
|
14
|
-
export declare function weaverDetectProvider(projectDir: string, config:
|
|
14
|
+
export declare function weaverDetectProvider(projectDir: string, config: BotConfig): {
|
|
15
15
|
env: WeaverEnv;
|
|
16
16
|
};
|
|
17
17
|
//# sourceMappingURL=detect-provider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detect-provider.d.ts","sourceRoot":"","sources":["../../src/node-types/detect-provider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"detect-provider.d.ts","sourceRoot":"","sources":["../../src/node-types/detect-provider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAgB,MAAM,iBAAiB,CAAC;AAY1E;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG;IAC3E,GAAG,EAAE,SAAS,CAAC;CAChB,CAkDA"}
|
|
@@ -63,7 +63,9 @@ export function weaverDetectProvider(projectDir, config) {
|
|
|
63
63
|
throw new Error('Provider is "anthropic" but ANTHROPIC_API_KEY is not set');
|
|
64
64
|
}
|
|
65
65
|
const label = providerInfo.model ? `${type} (${providerInfo.model})` : type;
|
|
66
|
-
|
|
66
|
+
// Provider info now shown by session renderer; keep for verbose/debug
|
|
67
|
+
if (process.env.WEAVER_VERBOSE)
|
|
68
|
+
process.stderr.write(`\x1b[2m Provider: ${label}\x1b[0m\n`);
|
|
67
69
|
return {
|
|
68
70
|
env: { projectDir, config, providerType: type, providerInfo },
|
|
69
71
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detect-provider.js","sourceRoot":"","sources":["../../src/node-types/detect-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;AAEnE,SAAS,SAAS,CAAC,GAAW,EAAE,GAAW;IACzC,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1F,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,oBAAoB,CAAC,UAAkB,EAAE,
|
|
1
|
+
{"version":3,"file":"detect-provider.js","sourceRoot":"","sources":["../../src/node-types/detect-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exec-validate-retry.d.ts","sourceRoot":"","sources":["../../src/node-types/exec-validate-retry.ts"],"names":[],"mappings":"AASA;;;;;;;;;;GAUG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC;IACT,SAAS,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IACvC,GAAG,EAAE,MAAM,CAAC;CACb,CAAC,
|
|
1
|
+
{"version":3,"file":"exec-validate-retry.d.ts","sourceRoot":"","sources":["../../src/node-types/exec-validate-retry.ts"],"names":[],"mappings":"AASA;;;;;;;;;;GAUG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC;IACT,SAAS,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IACvC,GAAG,EAAE,MAAM,CAAC;CACb,CAAC,CA0HD"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as fs from 'node:fs';
|
|
2
2
|
import * as path from 'node:path';
|
|
3
3
|
import * as os from 'node:os';
|
|
4
|
-
import { callAI, parseJsonResponse } from '../bot/ai-client.js';
|
|
4
|
+
import { callAI, parseJsonResponse, normalizePlan } from '../bot/ai-client.js';
|
|
5
5
|
import { executeStep } from '../bot/step-executor.js';
|
|
6
6
|
import { validateFiles } from '../bot/file-validator.js';
|
|
7
7
|
import { auditEmit } from '../bot/audit-logger.js';
|
|
@@ -28,23 +28,38 @@ export async function weaverExecValidateRetry(execute, ctx) {
|
|
|
28
28
|
}
|
|
29
29
|
const { providerInfo: pInfo, projectDir } = env;
|
|
30
30
|
const maxAttempts = 3;
|
|
31
|
+
const taskDeadline = Date.now() + 180_000; // 3 minute max per task
|
|
31
32
|
let currentPlan = JSON.parse(context.planJson);
|
|
32
33
|
let allFilesModified = [];
|
|
34
|
+
let allStepLog = [];
|
|
33
35
|
let lastExecResult = {};
|
|
34
36
|
let lastValidation = [];
|
|
35
37
|
let allValid = false;
|
|
38
|
+
let prevErrorCount = Infinity;
|
|
36
39
|
for (let attempt = 1; attempt <= maxAttempts; attempt++) {
|
|
40
|
+
// Task timeout — stop if we've exceeded the deadline
|
|
41
|
+
if (Date.now() > taskDeadline) {
|
|
42
|
+
console.error('\x1b[33m→ Task timeout (3 min), moving on\x1b[0m');
|
|
43
|
+
break;
|
|
44
|
+
}
|
|
37
45
|
console.log(`\x1b[36m→ Attempt ${attempt}/${maxAttempts}\x1b[0m`);
|
|
38
46
|
auditEmit('step-start', { attempt, stepCount: currentPlan.steps?.length });
|
|
39
47
|
const execResult = await executePlanSteps(currentPlan, projectDir);
|
|
40
48
|
lastExecResult = execResult;
|
|
41
49
|
allFilesModified = [...new Set([...allFilesModified, ...execResult.filesModified])];
|
|
50
|
+
allStepLog.push(...execResult.stepLog);
|
|
42
51
|
auditEmit('step-complete', { attempt, filesModified: execResult.filesModified, errors: execResult.errors });
|
|
43
52
|
const validation = await validateFiles(execResult.filesModified, projectDir);
|
|
44
53
|
lastValidation = validation;
|
|
45
54
|
allValid = validation.every(v => v.valid);
|
|
46
55
|
const errorCount = validation.filter(v => !v.valid).length;
|
|
47
56
|
auditEmit('validation-run', { attempt, allValid, errorCount });
|
|
57
|
+
// Stop retrying if errors didn't decrease — AI is stuck
|
|
58
|
+
if (attempt > 1 && errorCount >= prevErrorCount) {
|
|
59
|
+
console.error(`\x1b[33m→ Errors not decreasing (${errorCount} >= ${prevErrorCount}), stopping retry\x1b[0m`);
|
|
60
|
+
break;
|
|
61
|
+
}
|
|
62
|
+
prevErrorCount = errorCount;
|
|
48
63
|
// Collect design warnings from valid files
|
|
49
64
|
const designWarnings = validation
|
|
50
65
|
.filter(v => v.valid && v.warnings.length > 0)
|
|
@@ -79,13 +94,20 @@ export async function weaverExecValidateRetry(execute, ctx) {
|
|
|
79
94
|
const mod = await import('../bot/system-prompt.js');
|
|
80
95
|
systemPrompt = await mod.buildSystemPrompt();
|
|
81
96
|
}
|
|
82
|
-
catch {
|
|
97
|
+
catch (err) {
|
|
98
|
+
if (process.env.WEAVER_VERBOSE)
|
|
99
|
+
console.error('[exec-validate-retry] system prompt build failed:', err);
|
|
83
100
|
systemPrompt = 'You are Weaver. Return ONLY valid JSON.';
|
|
84
101
|
}
|
|
85
|
-
|
|
102
|
+
// Include step outputs so the AI has context from discovery steps
|
|
103
|
+
const outputContext = Object.entries(execResult.stepOutputs)
|
|
104
|
+
.map(([id, out]) => `--- Output of ${id} ---\n${out}`)
|
|
105
|
+
.join('\n\n');
|
|
106
|
+
const fixPrompt = `The following validation errors occurred:\n${errors}\n\n${outputContext ? `Discovery step outputs:\n${outputContext}\n\n` : ''}Provide a CONCRETE fix plan. Every patch-file step MUST include "file" (absolute path from the outputs above) and "patches" array with exact "find"/"replace" strings. Do NOT use placeholders.`;
|
|
86
107
|
const text = await callAI(pInfo, systemPrompt, fixPrompt, 8192);
|
|
87
|
-
|
|
88
|
-
|
|
108
|
+
const parsed = parseJsonResponse(text);
|
|
109
|
+
currentPlan = normalizePlan(parsed);
|
|
110
|
+
console.log(`\x1b[36m→ Fix plan: ${currentPlan.summary} (${currentPlan.steps.length} steps)\x1b[0m`);
|
|
89
111
|
}
|
|
90
112
|
catch (err) {
|
|
91
113
|
const msg = err instanceof Error ? err.message : String(err);
|
|
@@ -97,36 +119,51 @@ export async function weaverExecValidateRetry(execute, ctx) {
|
|
|
97
119
|
context.resultJson = JSON.stringify(lastExecResult);
|
|
98
120
|
context.validationResultJson = JSON.stringify(lastValidation);
|
|
99
121
|
context.filesModified = JSON.stringify(allFilesModified);
|
|
122
|
+
context.stepLogJson = JSON.stringify(allStepLog);
|
|
100
123
|
context.allValid = allValid;
|
|
101
124
|
return { onSuccess: allValid, onFailure: !allValid, ctx: JSON.stringify(context) };
|
|
102
125
|
}
|
|
103
126
|
async function executePlanSteps(plan, projectDir) {
|
|
104
127
|
const filesModified = [];
|
|
105
128
|
const errors = [];
|
|
129
|
+
const stepLog = [];
|
|
130
|
+
const stepOutputs = {};
|
|
106
131
|
let completed = 0;
|
|
107
132
|
const steps = plan.steps ?? [];
|
|
108
133
|
for (const step of steps) {
|
|
109
134
|
const steering = checkSteeringSignal();
|
|
110
135
|
if (steering === 'cancel') {
|
|
111
136
|
errors.push(`Cancelled at step ${step.id}`);
|
|
137
|
+
stepLog.push({ step: step.id, status: 'error', detail: 'Cancelled by steering signal' });
|
|
112
138
|
break;
|
|
113
139
|
}
|
|
114
140
|
try {
|
|
115
141
|
const result = await executeStep(step, projectDir);
|
|
142
|
+
if (result.blocked) {
|
|
143
|
+
console.error(`\x1b[33m ⚠ ${step.id}: ${result.blockReason}\x1b[0m`);
|
|
144
|
+
stepLog.push({ step: step.id, status: 'blocked', detail: result.blockReason });
|
|
145
|
+
continue;
|
|
146
|
+
}
|
|
116
147
|
if (result.file)
|
|
117
148
|
filesModified.push(result.file);
|
|
118
149
|
if (result.files)
|
|
119
150
|
filesModified.push(...result.files);
|
|
151
|
+
// Capture step output for feeding into fix prompts
|
|
152
|
+
if (result.output) {
|
|
153
|
+
stepOutputs[step.id] = result.output.slice(0, 4000); // cap at 4k to fit in prompt
|
|
154
|
+
}
|
|
120
155
|
completed++;
|
|
121
156
|
console.log(`\x1b[32m + ${step.id}: ${step.description}\x1b[0m`);
|
|
157
|
+
stepLog.push({ step: step.id, status: 'ok', detail: step.description });
|
|
122
158
|
}
|
|
123
159
|
catch (err) {
|
|
124
160
|
const msg = err instanceof Error ? err.message : String(err);
|
|
125
161
|
errors.push(`${step.id}: ${msg}`);
|
|
126
162
|
console.error(`\x1b[31m x ${step.id}: ${msg}\x1b[0m`);
|
|
163
|
+
stepLog.push({ step: step.id, status: 'error', detail: msg });
|
|
127
164
|
}
|
|
128
165
|
}
|
|
129
|
-
return { success: errors.length === 0, filesModified: [...new Set(filesModified)], errors, stepsCompleted: completed, stepsTotal: steps.length };
|
|
166
|
+
return { success: errors.length === 0, filesModified: [...new Set(filesModified)], errors, stepsCompleted: completed, stepsTotal: steps.length, stepLog, stepOutputs };
|
|
130
167
|
}
|
|
131
168
|
function checkSteeringSignal() {
|
|
132
169
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exec-validate-retry.js","sourceRoot":"","sources":["../../src/node-types/exec-validate-retry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"exec-validate-retry.js","sourceRoot":"","sources":["../../src/node-types/exec-validate-retry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute-plan.d.ts","sourceRoot":"","sources":["../../src/node-types/execute-plan.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,SAAS,EACd,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;IACT,SAAS,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IACvC,GAAG,EAAE,SAAS,CAAC;IACf,mBAAmB,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;CACtE,CAAC,
|
|
1
|
+
{"version":3,"file":"execute-plan.d.ts","sourceRoot":"","sources":["../../src/node-types/execute-plan.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,SAAS,EACd,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;IACT,SAAS,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IACvC,GAAG,EAAE,SAAS,CAAC;IACf,mBAAmB,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;CACtE,CAAC,CAyFD"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as fs from 'node:fs';
|
|
2
2
|
import * as path from 'node:path';
|
|
3
3
|
import * as os from 'node:os';
|
|
4
|
-
import { executeStep } from '../bot/step-executor.js';
|
|
4
|
+
import { executeStep, resetPlanFileCounter } from '../bot/step-executor.js';
|
|
5
5
|
/**
|
|
6
6
|
* Executes plan steps via the flow-weaver CLI. Checks steering
|
|
7
7
|
* between steps.
|
|
@@ -27,6 +27,7 @@ export async function weaverExecutePlan(execute, env, planJson, taskJson) {
|
|
|
27
27
|
};
|
|
28
28
|
}
|
|
29
29
|
const { projectDir } = env;
|
|
30
|
+
resetPlanFileCounter(); // Reset per-plan write counter for safety guards
|
|
30
31
|
const plan = JSON.parse(planJson);
|
|
31
32
|
const filesModified = [];
|
|
32
33
|
const filesCreated = [];
|
|
@@ -41,10 +42,26 @@ export async function weaverExecutePlan(execute, env, planJson, taskJson) {
|
|
|
41
42
|
filesModified: '[]',
|
|
42
43
|
};
|
|
43
44
|
}
|
|
44
|
-
for (
|
|
45
|
+
for (let i = 0; i < plan.steps.length; i++) {
|
|
46
|
+
const step = plan.steps[i];
|
|
47
|
+
// Defensive: ensure step has required fields
|
|
48
|
+
if (!step || typeof step !== 'object') {
|
|
49
|
+
errors.push(`step-${i + 1}: Malformed step (not an object)`);
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
const stepId = step.id ?? `step-${i + 1}`;
|
|
53
|
+
const stepDesc = step.description ?? step.operation ?? 'unknown';
|
|
54
|
+
if (!step.operation) {
|
|
55
|
+
errors.push(`${stepId}: Missing "operation" field`);
|
|
56
|
+
console.error(`\x1b[31m x ${stepId}: Missing operation\x1b[0m`);
|
|
57
|
+
continue;
|
|
58
|
+
}
|
|
59
|
+
if (!step.args) {
|
|
60
|
+
step.args = {};
|
|
61
|
+
}
|
|
45
62
|
const steering = checkSteering();
|
|
46
63
|
if (steering === 'cancel') {
|
|
47
|
-
output.push(`Cancelled at
|
|
64
|
+
output.push(`Cancelled at ${stepId}`);
|
|
48
65
|
break;
|
|
49
66
|
}
|
|
50
67
|
if (steering === 'pause') {
|
|
@@ -53,6 +70,12 @@ export async function weaverExecutePlan(execute, env, planJson, taskJson) {
|
|
|
53
70
|
}
|
|
54
71
|
try {
|
|
55
72
|
const result = await executeStep(step, projectDir);
|
|
73
|
+
if (result.blocked) {
|
|
74
|
+
errors.push(`${stepId}: BLOCKED - ${result.blockReason}`);
|
|
75
|
+
output.push(`${stepId}: BLOCKED - ${result.blockReason}`);
|
|
76
|
+
console.error(`\x1b[33m ⚠ ${stepId}: ${result.blockReason}\x1b[0m`);
|
|
77
|
+
continue;
|
|
78
|
+
}
|
|
56
79
|
if (result.file) {
|
|
57
80
|
if (result.created)
|
|
58
81
|
filesCreated.push(result.file);
|
|
@@ -60,14 +83,14 @@ export async function weaverExecutePlan(execute, env, planJson, taskJson) {
|
|
|
60
83
|
filesModified.push(result.file);
|
|
61
84
|
}
|
|
62
85
|
completed++;
|
|
63
|
-
output.push(`${
|
|
64
|
-
console.log(`\x1b[32m + ${
|
|
86
|
+
output.push(`${stepId}: ${stepDesc} - done`);
|
|
87
|
+
console.log(`\x1b[32m + ${stepId}: ${stepDesc}\x1b[0m`);
|
|
65
88
|
}
|
|
66
89
|
catch (err) {
|
|
67
90
|
const msg = err instanceof Error ? err.message : String(err);
|
|
68
|
-
errors.push(`${
|
|
69
|
-
output.push(`${
|
|
70
|
-
console.error(`\x1b[31m x ${
|
|
91
|
+
errors.push(`${stepId}: ${msg}`);
|
|
92
|
+
output.push(`${stepId}: FAILED - ${msg}`);
|
|
93
|
+
console.error(`\x1b[31m x ${stepId}: ${msg}\x1b[0m`);
|
|
71
94
|
}
|
|
72
95
|
}
|
|
73
96
|
const allFiles = [...new Set([...filesModified, ...filesCreated])];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute-plan.js","sourceRoot":"","sources":["../../src/node-types/execute-plan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"execute-plan.js","sourceRoot":"","sources":["../../src/node-types/execute-plan.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute-target.d.ts","sourceRoot":"","sources":["../../src/node-types/execute-target.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"execute-target.d.ts","sourceRoot":"","sources":["../../src/node-types/execute-target.ts"],"names":[],"mappings":"AAiJA;;;;;;;;;GASG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC;IACT,SAAS,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IACvC,GAAG,EAAE,MAAM,CAAC;CACb,CAAC,CA+FD"}
|
|
@@ -133,7 +133,9 @@ When stabilize mode is active, only fix-up operations are allowed: removeNode, r
|
|
|
133
133
|
|
|
134
134
|
Return ONLY valid JSON. No markdown, no code fences, no explanation outside the JSON structure.`;
|
|
135
135
|
}
|
|
136
|
-
catch {
|
|
136
|
+
catch (err) {
|
|
137
|
+
if (process.env.WEAVER_VERBOSE)
|
|
138
|
+
console.error('[execute-target] prompt build failed:', err);
|
|
137
139
|
return FALLBACK;
|
|
138
140
|
}
|
|
139
141
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute-target.js","sourceRoot":"","sources":["../../src/node-types/execute-target.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"execute-target.js","sourceRoot":"","sources":["../../src/node-types/execute-target.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fix-errors.d.ts","sourceRoot":"","sources":["../../src/node-types/fix-errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,SAAS,EACd,oBAAoB,EAAE,MAAM,EAC5B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;IACT,SAAS,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IACvC,GAAG,EAAE,SAAS,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;CACvC,CAAC,
|
|
1
|
+
{"version":3,"file":"fix-errors.d.ts","sourceRoot":"","sources":["../../src/node-types/fix-errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,SAAS,EACd,oBAAoB,EAAE,MAAM,EAC5B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;IACT,SAAS,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IACvC,GAAG,EAAE,SAAS,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;CACvC,CAAC,CAkDD"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { callAI, parseJsonResponse } from '../bot/ai-client.js';
|
|
1
|
+
import { callAI, parseJsonResponse, normalizePlan } from '../bot/ai-client.js';
|
|
2
2
|
/**
|
|
3
3
|
* When validation fails, sends errors + context to the AI and
|
|
4
4
|
* asks it to produce a repair plan.
|
|
@@ -29,15 +29,31 @@ export async function weaverFixErrors(execute, env, validationResultJson, taskJs
|
|
|
29
29
|
const mod = await import('../bot/system-prompt.js');
|
|
30
30
|
systemPrompt = await mod.buildSystemPrompt();
|
|
31
31
|
}
|
|
32
|
-
catch {
|
|
32
|
+
catch (err) {
|
|
33
|
+
if (process.env.WEAVER_VERBOSE)
|
|
34
|
+
console.error('[fix-errors] system prompt build failed:', err);
|
|
33
35
|
systemPrompt = 'You are Weaver. Return ONLY valid JSON.';
|
|
34
36
|
}
|
|
35
37
|
const errorSummary = errors.map(e => `${e.file}: ${e.errors.join(', ')}`).join('\n');
|
|
36
|
-
const userPrompt = `The following validation errors occurred
|
|
38
|
+
const userPrompt = `The following validation errors occurred:
|
|
39
|
+
${errorSummary}
|
|
40
|
+
|
|
41
|
+
Provide a fix plan as JSON: {"steps": [...], "summary": "..."}
|
|
42
|
+
|
|
43
|
+
Each step MUST have: "id" (string), "operation" (string), "description" (string), "args" (object).
|
|
44
|
+
|
|
45
|
+
Available operations for fixes:
|
|
46
|
+
- patch-file: Surgical find-and-replace. args: { "file": "path", "patches": [{ "find": "old text", "replace": "new text" }] }
|
|
47
|
+
PREFERRED for fixing @input annotations. Example: { "find": "@input portName", "replace": "@input [portName]" }
|
|
48
|
+
- run-shell: Execute a command. args: { "command": "..." }
|
|
49
|
+
- read-file: Read file content. args: { "file": "path" }
|
|
50
|
+
|
|
51
|
+
Return ONLY valid JSON. No explanation outside the JSON.`;
|
|
37
52
|
try {
|
|
38
53
|
const text = await callAI(pInfo, systemPrompt, userPrompt, 8192);
|
|
39
|
-
const
|
|
40
|
-
|
|
54
|
+
const parsed = parseJsonResponse(text);
|
|
55
|
+
const plan = normalizePlan(parsed);
|
|
56
|
+
console.log(`\x1b[36m→ Fix plan: ${plan.summary} (${plan.steps.length} steps)\x1b[0m`);
|
|
41
57
|
return { onSuccess: true, onFailure: false, env, taskJson, fixPlanJson: JSON.stringify(plan) };
|
|
42
58
|
}
|
|
43
59
|
catch (err) {
|