@synergenius/flow-weaver-pack-weaver 0.9.151 → 0.9.153
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/ai-chat-provider.js +4 -4
- package/dist/ai-chat-provider.js.map +1 -1
- package/dist/bot/ai-client.d.ts +30 -0
- package/dist/bot/ai-client.d.ts.map +1 -1
- package/dist/bot/ai-client.js +37 -0
- package/dist/bot/ai-client.js.map +1 -1
- package/dist/bot/behavior-defaults.d.ts.map +1 -1
- package/dist/bot/behavior-defaults.js +7 -2
- package/dist/bot/behavior-defaults.js.map +1 -1
- package/dist/bot/capability-registry.d.ts.map +1 -1
- package/dist/bot/capability-registry.js +48 -30
- package/dist/bot/capability-registry.js.map +1 -1
- package/dist/bot/file-validator.d.ts +7 -0
- package/dist/bot/file-validator.d.ts.map +1 -1
- package/dist/bot/file-validator.js +76 -0
- package/dist/bot/file-validator.js.map +1 -1
- package/dist/bot/instance-manager.d.ts +22 -7
- package/dist/bot/instance-manager.d.ts.map +1 -1
- package/dist/bot/instance-manager.js +69 -7
- package/dist/bot/instance-manager.js.map +1 -1
- package/dist/bot/orchestrator.d.ts +11 -9
- package/dist/bot/orchestrator.d.ts.map +1 -1
- package/dist/bot/orchestrator.js +56 -107
- package/dist/bot/orchestrator.js.map +1 -1
- package/dist/bot/runner.d.ts +29 -0
- package/dist/bot/runner.d.ts.map +1 -1
- package/dist/bot/runner.js +114 -73
- package/dist/bot/runner.js.map +1 -1
- package/dist/bot/step-executor.d.ts.map +1 -1
- package/dist/bot/step-executor.js +106 -25
- package/dist/bot/step-executor.js.map +1 -1
- package/dist/bot/swarm-controller.d.ts +7 -6
- package/dist/bot/swarm-controller.d.ts.map +1 -1
- package/dist/bot/swarm-controller.js +64 -74
- package/dist/bot/swarm-controller.js.map +1 -1
- package/dist/bot/task-types.d.ts +1 -0
- package/dist/bot/task-types.d.ts.map +1 -1
- package/dist/bot/weaver-tools.d.ts +1 -1
- package/dist/bot/weaver-tools.d.ts.map +1 -1
- package/dist/bot/weaver-tools.js +6 -1
- package/dist/bot/weaver-tools.js.map +1 -1
- package/dist/node-types/agent-execute.js +2 -2
- package/dist/node-types/agent-execute.js.map +1 -1
- package/dist/node-types/bot-report.d.ts.map +1 -1
- package/dist/node-types/bot-report.js +5 -2
- package/dist/node-types/bot-report.js.map +1 -1
- package/dist/node-types/build-context.js +2 -1
- package/dist/node-types/build-context.js.map +1 -1
- package/dist/node-types/exec-validate-retry.d.ts +3 -3
- package/dist/node-types/exec-validate-retry.d.ts.map +1 -1
- package/dist/node-types/exec-validate-retry.js +13 -184
- package/dist/node-types/exec-validate-retry.js.map +1 -1
- package/dist/node-types/load-config.d.ts +1 -0
- package/dist/node-types/load-config.d.ts.map +1 -1
- package/dist/node-types/load-config.js +1 -0
- package/dist/node-types/load-config.js.map +1 -1
- package/dist/node-types/plan-task.d.ts +7 -5
- package/dist/node-types/plan-task.d.ts.map +1 -1
- package/dist/node-types/plan-task.js +282 -83
- package/dist/node-types/plan-task.js.map +1 -1
- package/dist/ui/bot-panel.js +1 -1
- package/dist/ui/capability-editor.js +48 -30
- package/dist/ui/profile-editor.js +46 -28
- package/dist/ui/swarm-dashboard.js +71 -33
- package/dist/ui/task-detail-view.js +22 -2
- package/dist/workflows/weaver-bot.d.ts +2 -2
- package/dist/workflows/weaver-bot.d.ts.map +1 -1
- package/dist/workflows/weaver-bot.js +5 -4
- package/dist/workflows/weaver-bot.js.map +1 -1
- package/flowweaver.manifest.json +1 -1
- package/package.json +1 -1
- package/src/ai-chat-provider.ts +4 -4
- package/src/bot/ai-client.ts +65 -0
- package/src/bot/behavior-defaults.ts +5 -2
- package/src/bot/capability-registry.ts +48 -30
- package/src/bot/file-validator.ts +97 -0
- package/src/bot/instance-manager.ts +77 -7
- package/src/bot/orchestrator.ts +63 -126
- package/src/bot/runner.ts +124 -70
- package/src/bot/step-executor.ts +115 -25
- package/src/bot/swarm-controller.ts +65 -76
- package/src/bot/task-types.ts +1 -0
- package/src/bot/weaver-tools.ts +7 -1
- package/src/node-types/agent-execute.ts +2 -2
- package/src/node-types/bot-report.ts +5 -2
- package/src/node-types/build-context.ts +2 -1
- package/src/node-types/exec-validate-retry.ts +14 -203
- package/src/node-types/load-config.ts +1 -0
- package/src/node-types/plan-task.ts +313 -88
- package/src/ui/bot-panel.tsx +1 -1
- package/src/ui/swarm-dashboard.tsx +3 -3
- package/src/ui/task-detail-view.tsx +25 -2
- package/src/workflows/weaver-bot.ts +5 -4
package/dist/bot/runner.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/bot/runner.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAGV,kBAAkB,EAGlB,cAAc,EAGd,YAAY,EACZ,cAAc,EACf,MAAM,YAAY,CAAC;AAWpB,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/bot/runner.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAGV,kBAAkB,EAGlB,cAAc,EAGd,YAAY,EACZ,cAAc,EACf,MAAM,YAAY,CAAC;AAWpB,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AA8DnE,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAepD;AAED;;;GAGG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,EACtC,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,OAAO,YAAY,EAAE,YAAY,EAAE,GAC5C,MAAM,GAAG,SAAS,CA+CpB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG;IACtE,OAAO,CAAC,EAAE,OAAO,YAAY,EAAE,YAAY,EAAE,CAAC;IAC9C,IAAI,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAC;YAAC,WAAW,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC;CAClI,CA2BA;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAA;CAAE,CAAC,GAClD,MAAM,GAAG,SAAS,CAcpB;AAED,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;IACR,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IAC1C,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,mBAAmB,CAAC,EAAE,wBAAwB,CAAC;IAC/C,eAAe,CAAC,EAAE,OAAO,gBAAgB,EAAE,eAAe,CAAC;IAC3D,QAAQ,CAAC,EAAE,OAAO,gBAAgB,EAAE,QAAQ,CAAC;IAC7C,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uCAAuC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GACA,OAAO,CAAC,cAAc,CAAC,CA2XzB"}
|
package/dist/bot/runner.js
CHANGED
|
@@ -51,7 +51,7 @@ function parseConfigFile(configPath) {
|
|
|
51
51
|
` Fix the file or delete it to use defaults.`);
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
|
-
function buildSummary(result) {
|
|
54
|
+
export function buildSummary(result) {
|
|
55
55
|
if (!result || typeof result !== 'object')
|
|
56
56
|
return String(result);
|
|
57
57
|
const r = result;
|
|
@@ -69,6 +69,111 @@ function buildSummary(result) {
|
|
|
69
69
|
}
|
|
70
70
|
return parts.length > 0 ? parts.join(', ') : 'completed';
|
|
71
71
|
}
|
|
72
|
+
/**
|
|
73
|
+
* Build a markdown report from the workflow result's ctx field.
|
|
74
|
+
* Extracted for testability — same logic used inside runWorkflow.
|
|
75
|
+
*/
|
|
76
|
+
export function buildReport(result, success, stepLog) {
|
|
77
|
+
try {
|
|
78
|
+
const ctxStr = result?.ctx;
|
|
79
|
+
if (!ctxStr)
|
|
80
|
+
return undefined;
|
|
81
|
+
const ctx = JSON.parse(ctxStr);
|
|
82
|
+
const md = [];
|
|
83
|
+
md.push(`## ${success ? 'Task Completed' : 'Task Failed'}`);
|
|
84
|
+
md.push('');
|
|
85
|
+
// Steps
|
|
86
|
+
if (stepLog && stepLog.length > 0) {
|
|
87
|
+
md.push('### Steps');
|
|
88
|
+
md.push('');
|
|
89
|
+
for (const s of stepLog) {
|
|
90
|
+
const icon = s.status === 'ok' ? '**ok**' : s.status === 'error' ? '**error**' : '**blocked**';
|
|
91
|
+
md.push(`- ${s.step} (${icon})${s.detail ? `: ${s.detail}` : ''}`);
|
|
92
|
+
}
|
|
93
|
+
md.push('');
|
|
94
|
+
}
|
|
95
|
+
// Files
|
|
96
|
+
const files = ctx.filesModified ? JSON.parse(ctx.filesModified) : [];
|
|
97
|
+
if (files.length > 0) {
|
|
98
|
+
md.push('### Files Modified');
|
|
99
|
+
md.push('');
|
|
100
|
+
for (const f of files)
|
|
101
|
+
md.push(`- \`${f}\``);
|
|
102
|
+
md.push('');
|
|
103
|
+
}
|
|
104
|
+
// Review
|
|
105
|
+
if (ctx.reviewJson) {
|
|
106
|
+
const review = JSON.parse(ctx.reviewJson);
|
|
107
|
+
if (review.intent || review.execution || review.result || review.completeness) {
|
|
108
|
+
md.push('### Review');
|
|
109
|
+
md.push('');
|
|
110
|
+
for (const key of ['intent', 'execution', 'result', 'completeness']) {
|
|
111
|
+
if (review[key])
|
|
112
|
+
md.push(`- **${key}:** ${review[key]}`);
|
|
113
|
+
}
|
|
114
|
+
if (review.reason)
|
|
115
|
+
md.push(`\n${review.reason}`);
|
|
116
|
+
md.push('');
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
return md.length > 2 ? md.join('\n') : undefined;
|
|
120
|
+
}
|
|
121
|
+
catch {
|
|
122
|
+
return undefined;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Extract stepLog and plan from the result's ctx field.
|
|
127
|
+
* Extracted for testability — same logic used inside runWorkflow.
|
|
128
|
+
*/
|
|
129
|
+
export function extractCtxData(result) {
|
|
130
|
+
try {
|
|
131
|
+
const ctxStr = result?.ctx;
|
|
132
|
+
if (!ctxStr)
|
|
133
|
+
return {};
|
|
134
|
+
const ctx = JSON.parse(ctxStr);
|
|
135
|
+
let stepLog;
|
|
136
|
+
let plan;
|
|
137
|
+
if (ctx.stepLogJson)
|
|
138
|
+
stepLog = JSON.parse(ctx.stepLogJson);
|
|
139
|
+
if (ctx.planJson) {
|
|
140
|
+
const parsed = JSON.parse(ctx.planJson);
|
|
141
|
+
if (parsed?.steps) {
|
|
142
|
+
plan = {
|
|
143
|
+
summary: parsed.summary ?? '',
|
|
144
|
+
steps: parsed.steps.map((s) => ({
|
|
145
|
+
id: String(s.id ?? ''),
|
|
146
|
+
operation: String(s.operation ?? ''),
|
|
147
|
+
description: String(s.description ?? ''),
|
|
148
|
+
...(s.args ? { args: s.args } : {}),
|
|
149
|
+
})),
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
return { stepLog, plan };
|
|
154
|
+
}
|
|
155
|
+
catch {
|
|
156
|
+
return {};
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Fallback: extract report from trace outputs (bot-report node's "Markdown report" port).
|
|
161
|
+
*/
|
|
162
|
+
export function extractReportFromTrace(trace) {
|
|
163
|
+
for (const te of trace) {
|
|
164
|
+
if (te.type === 'node-complete' && te.outputs) {
|
|
165
|
+
for (const o of te.outputs) {
|
|
166
|
+
if (typeof o === 'object' && o && 'portLabel' in o) {
|
|
167
|
+
const po = o;
|
|
168
|
+
if (po.portLabel === 'Markdown report' && typeof po.value === 'string' && po.value.length > 0) {
|
|
169
|
+
return po.value;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
return undefined;
|
|
176
|
+
}
|
|
72
177
|
export async function runWorkflow(filePath, options) {
|
|
73
178
|
const absPath = path.resolve(filePath);
|
|
74
179
|
const verbose = options?.verbose ?? false;
|
|
@@ -206,7 +311,7 @@ export async function runWorkflow(filePath, options) {
|
|
|
206
311
|
}
|
|
207
312
|
}
|
|
208
313
|
}
|
|
209
|
-
for (const inst of parseResult?.workflow?.instances ?? []) {
|
|
314
|
+
for (const inst of (parseResult?.workflows?.[0]?.instances ?? parseResult?.workflow?.instances ?? [])) {
|
|
210
315
|
const label = inst.config?.label ?? nodeLabels.get(inst.nodeType);
|
|
211
316
|
if (label)
|
|
212
317
|
nodeLabels.set(inst.id, label);
|
|
@@ -349,79 +454,15 @@ export async function runWorkflow(filePath, options) {
|
|
|
349
454
|
nodeMeta = meta;
|
|
350
455
|
}
|
|
351
456
|
// Extract stepLog and plan from WeaverContext if available
|
|
352
|
-
|
|
353
|
-
let plan;
|
|
354
|
-
try {
|
|
355
|
-
const ctxStr = result?.ctx;
|
|
356
|
-
if (ctxStr) {
|
|
357
|
-
const ctx = JSON.parse(ctxStr);
|
|
358
|
-
if (ctx.stepLogJson)
|
|
359
|
-
stepLog = JSON.parse(ctx.stepLogJson);
|
|
360
|
-
if (ctx.planJson) {
|
|
361
|
-
const parsed = JSON.parse(ctx.planJson);
|
|
362
|
-
if (parsed?.steps) {
|
|
363
|
-
plan = {
|
|
364
|
-
summary: parsed.summary ?? '',
|
|
365
|
-
steps: parsed.steps.map((s) => ({
|
|
366
|
-
id: String(s.id ?? ''),
|
|
367
|
-
operation: String(s.operation ?? ''),
|
|
368
|
-
description: String(s.description ?? ''),
|
|
369
|
-
...(s.args ? { args: s.args } : {}),
|
|
370
|
-
})),
|
|
371
|
-
};
|
|
372
|
-
}
|
|
373
|
-
}
|
|
374
|
-
}
|
|
375
|
-
}
|
|
376
|
-
catch { /* extraction is best-effort */ }
|
|
457
|
+
const { stepLog, plan } = extractCtxData(result);
|
|
377
458
|
// Build markdown report from the extracted context data
|
|
378
|
-
let report;
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
md.push(`## ${success ? 'Task Completed' : 'Task Failed'}`);
|
|
385
|
-
md.push('');
|
|
386
|
-
// Steps
|
|
387
|
-
if (stepLog && stepLog.length > 0) {
|
|
388
|
-
md.push('### Steps');
|
|
389
|
-
md.push('');
|
|
390
|
-
for (const s of stepLog) {
|
|
391
|
-
const icon = s.status === 'ok' ? '**ok**' : s.status === 'error' ? '**error**' : '**blocked**';
|
|
392
|
-
md.push(`- ${s.step} (${icon})${s.detail ? `: ${s.detail}` : ''}`);
|
|
393
|
-
}
|
|
394
|
-
md.push('');
|
|
395
|
-
}
|
|
396
|
-
// Files
|
|
397
|
-
const files = ctx.filesModified ? JSON.parse(ctx.filesModified) : [];
|
|
398
|
-
if (files.length > 0) {
|
|
399
|
-
md.push('### Files Modified');
|
|
400
|
-
md.push('');
|
|
401
|
-
for (const f of files)
|
|
402
|
-
md.push(`- \`${f}\``);
|
|
403
|
-
md.push('');
|
|
404
|
-
}
|
|
405
|
-
// Review
|
|
406
|
-
if (ctx.reviewJson) {
|
|
407
|
-
const review = JSON.parse(ctx.reviewJson);
|
|
408
|
-
if (review.intent || review.execution || review.result || review.completeness) {
|
|
409
|
-
md.push('### Review');
|
|
410
|
-
md.push('');
|
|
411
|
-
for (const key of ['intent', 'execution', 'result', 'completeness']) {
|
|
412
|
-
if (review[key])
|
|
413
|
-
md.push(`- **${key}:** ${review[key]}`);
|
|
414
|
-
}
|
|
415
|
-
if (review.reason)
|
|
416
|
-
md.push(`\n${review.reason}`);
|
|
417
|
-
md.push('');
|
|
418
|
-
}
|
|
419
|
-
}
|
|
420
|
-
if (md.length > 2)
|
|
421
|
-
report = md.join('\n');
|
|
422
|
-
}
|
|
459
|
+
let report = buildReport(result, success, stepLog);
|
|
460
|
+
// Fallback: extract report from the bot-report node's trace output.
|
|
461
|
+
// The FW compiled workflow doesn't wire bot-report's report port to END,
|
|
462
|
+
// so result.report is undefined. But the trace captured all node outputs.
|
|
463
|
+
if (!report) {
|
|
464
|
+
report = extractReportFromTrace(collectedTrace);
|
|
423
465
|
}
|
|
424
|
-
catch { /* report generation is best-effort */ }
|
|
425
466
|
await notifier({
|
|
426
467
|
type: 'workflow-complete',
|
|
427
468
|
workflowFile: absPath,
|
package/dist/bot/runner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/bot/runner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/bot/runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step-executor.d.ts","sourceRoot":"","sources":["../../src/bot/step-executor.ts"],"names":[],"mappings":"AA+CA,gDAAgD;AAChD,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C;AA4GD,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAsB,WAAW,CAC/B,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,EAC1D,UAAU,EAAE,MAAM,EAClB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACrC,OAAO,CAAC,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"step-executor.d.ts","sourceRoot":"","sources":["../../src/bot/step-executor.ts"],"names":[],"mappings":"AA+CA,gDAAgD;AAChD,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C;AA4GD,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAsB,WAAW,CAC/B,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,EAC1D,UAAU,EAAE,MAAM,EAClB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACrC,OAAO,CAAC,UAAU,CAAC,CAoarB"}
|
|
@@ -132,16 +132,22 @@ export async function executeStep(step, projectDir, symbolicIdMap) {
|
|
|
132
132
|
}
|
|
133
133
|
assertSafePath(file, projectDir);
|
|
134
134
|
const filePath = path.resolve(projectDir, file);
|
|
135
|
-
|
|
135
|
+
// Use the relative path for reporting — never leak absolute server paths
|
|
136
|
+
const relPath = path.relative(projectDir, filePath);
|
|
137
|
+
const rawContent = args.content ?? args.body ?? '';
|
|
138
|
+
if (typeof rawContent !== 'string') {
|
|
139
|
+
return { blocked: true, blockReason: `${step.operation}: "content" must be a string, got ${typeof rawContent}.` };
|
|
140
|
+
}
|
|
141
|
+
const content = rawContent;
|
|
136
142
|
const guard = checkWriteSafety(filePath, content);
|
|
137
143
|
if (!guard.allowed) {
|
|
138
|
-
return { file:
|
|
144
|
+
return { file: relPath, blocked: true, blockReason: guard.reason };
|
|
139
145
|
}
|
|
140
146
|
fs.mkdirSync(path.dirname(filePath), { recursive: true });
|
|
141
147
|
const existed = fs.existsSync(filePath);
|
|
142
148
|
fs.writeFileSync(filePath, content, 'utf-8');
|
|
143
149
|
filesWrittenThisPlan++;
|
|
144
|
-
return { file:
|
|
150
|
+
return { file: relPath, created: !existed };
|
|
145
151
|
}
|
|
146
152
|
// -----------------------------------------------------------------
|
|
147
153
|
// Patch file: surgical find-and-replace (no full rewrite needed)
|
|
@@ -152,6 +158,7 @@ export async function executeStep(step, projectDir, symbolicIdMap) {
|
|
|
152
158
|
}
|
|
153
159
|
assertSafePath(file, projectDir);
|
|
154
160
|
const filePath = path.resolve(projectDir, file);
|
|
161
|
+
const relPath = path.relative(projectDir, filePath);
|
|
155
162
|
if (!fs.existsSync(filePath)) {
|
|
156
163
|
return { blocked: true, blockReason: `File not found: ${file}` };
|
|
157
164
|
}
|
|
@@ -168,6 +175,16 @@ export async function executeStep(step, projectDir, symbolicIdMap) {
|
|
|
168
175
|
if (!patches.length) {
|
|
169
176
|
return { blocked: true, blockReason: 'patch_file requires "patches" array or "find"+"replace" args.' };
|
|
170
177
|
}
|
|
178
|
+
// Validate each patch entry has string find and replace
|
|
179
|
+
for (let i = 0; i < patches.length; i++) {
|
|
180
|
+
const p = patches[i];
|
|
181
|
+
if (typeof p.find !== 'string') {
|
|
182
|
+
return { blocked: true, blockReason: `patch_file: patch[${i}].find must be a string, got ${typeof p.find}.` };
|
|
183
|
+
}
|
|
184
|
+
if (typeof p.replace !== 'string') {
|
|
185
|
+
return { blocked: true, blockReason: `patch_file: patch[${i}].replace must be a string, got ${typeof p.replace}.` };
|
|
186
|
+
}
|
|
187
|
+
}
|
|
171
188
|
let applied = 0;
|
|
172
189
|
const notFound = [];
|
|
173
190
|
for (const patch of patches) {
|
|
@@ -181,7 +198,7 @@ export async function executeStep(step, projectDir, symbolicIdMap) {
|
|
|
181
198
|
}
|
|
182
199
|
if (applied === 0) {
|
|
183
200
|
return {
|
|
184
|
-
file:
|
|
201
|
+
file: relPath,
|
|
185
202
|
output: `No patches applied. Search strings not found: ${notFound.join('; ')}`,
|
|
186
203
|
};
|
|
187
204
|
}
|
|
@@ -191,7 +208,7 @@ export async function executeStep(step, projectDir, symbolicIdMap) {
|
|
|
191
208
|
if (originalSize > SHRINK_GUARD_MIN_SIZE && newSize < originalSize * MAX_SHRINK_RATIO) {
|
|
192
209
|
const shrinkPct = Math.round((1 - newSize / originalSize) * 100);
|
|
193
210
|
return {
|
|
194
|
-
file:
|
|
211
|
+
file: relPath,
|
|
195
212
|
blocked: true,
|
|
196
213
|
blockReason: `Refusing to patch ${path.basename(filePath)}: result (${newSize}B) ` +
|
|
197
214
|
`is ${shrinkPct}% smaller than original (${originalSize}B). ` +
|
|
@@ -202,17 +219,18 @@ export async function executeStep(step, projectDir, symbolicIdMap) {
|
|
|
202
219
|
filesWrittenThisPlan++;
|
|
203
220
|
const summary = `Applied ${applied}/${patches.length} patches` +
|
|
204
221
|
(notFound.length ? `. Not found: ${notFound.join('; ')}` : '');
|
|
205
|
-
return { file:
|
|
222
|
+
return { file: relPath, output: summary };
|
|
206
223
|
}
|
|
207
224
|
// -----------------------------------------------------------------
|
|
208
225
|
// Read file: return content for AI context
|
|
209
226
|
// -----------------------------------------------------------------
|
|
210
227
|
case OP_READ_FILE: {
|
|
211
228
|
if (!file) {
|
|
212
|
-
return {
|
|
229
|
+
return { blocked: true, blockReason: 'read_file requires a "file" argument.' };
|
|
213
230
|
}
|
|
214
231
|
assertSafePath(file, projectDir);
|
|
215
232
|
const filePath = path.resolve(projectDir, file);
|
|
233
|
+
const relPath = path.relative(projectDir, filePath);
|
|
216
234
|
if (!fs.existsSync(filePath)) {
|
|
217
235
|
return { output: `File not found: ${file}` };
|
|
218
236
|
}
|
|
@@ -226,10 +244,10 @@ export async function executeStep(step, projectDir, symbolicIdMap) {
|
|
|
226
244
|
return { output: `File too large to read (${stat.size} bytes, max ${MAX_READ_SIZE}). Use run_shell with head/tail instead.` };
|
|
227
245
|
}
|
|
228
246
|
const content = fs.readFileSync(filePath, 'utf-8');
|
|
229
|
-
return { file:
|
|
247
|
+
return { file: relPath, output: content };
|
|
230
248
|
}
|
|
231
249
|
catch (err) {
|
|
232
|
-
const msg = err instanceof Error ? err.message : String(err);
|
|
250
|
+
const msg = (err instanceof Error ? err.message : String(err)).replaceAll(projectDir + '/', '');
|
|
233
251
|
return { output: `Error reading file "${file}": ${msg}` };
|
|
234
252
|
}
|
|
235
253
|
}
|
|
@@ -268,8 +286,9 @@ export async function executeStep(step, projectDir, symbolicIdMap) {
|
|
|
268
286
|
const stdout = (execErr.stdout ?? '').trim();
|
|
269
287
|
const stderr = (execErr.stderr ?? '').trim();
|
|
270
288
|
const combined = [stdout, stderr].filter(Boolean).join('\n');
|
|
289
|
+
const raw = combined || (err instanceof Error ? err.message : String(err));
|
|
271
290
|
return {
|
|
272
|
-
output:
|
|
291
|
+
output: raw.replaceAll(projectDir + '/', ''),
|
|
273
292
|
};
|
|
274
293
|
}
|
|
275
294
|
}
|
|
@@ -289,7 +308,7 @@ export async function executeStep(step, projectDir, symbolicIdMap) {
|
|
|
289
308
|
entries = fs.readdirSync(targetDir, { recursive: true, encoding: 'utf-8' });
|
|
290
309
|
}
|
|
291
310
|
catch (err) {
|
|
292
|
-
const msg = err instanceof Error ? err.message : String(err);
|
|
311
|
+
const msg = (err instanceof Error ? err.message : String(err)).replaceAll(projectDir + '/', '');
|
|
293
312
|
return { output: `Error listing directory "${dir}": ${msg}` };
|
|
294
313
|
}
|
|
295
314
|
let files = entries
|
|
@@ -306,6 +325,9 @@ export async function executeStep(step, projectDir, symbolicIdMap) {
|
|
|
306
325
|
})
|
|
307
326
|
.sort();
|
|
308
327
|
if (pattern) {
|
|
328
|
+
if (pattern.length > 200) {
|
|
329
|
+
return { blocked: true, blockReason: `list_files: regex pattern too long (${pattern.length} chars, max 200).` };
|
|
330
|
+
}
|
|
309
331
|
try {
|
|
310
332
|
const regex = new RegExp(pattern);
|
|
311
333
|
files = files.filter(f => regex.test(f));
|
|
@@ -327,7 +349,53 @@ export async function executeStep(step, projectDir, symbolicIdMap) {
|
|
|
327
349
|
if (!title)
|
|
328
350
|
return { blocked: true, blockReason: 'task_create requires a "title" argument.' };
|
|
329
351
|
const store = new TaskStore(projectDir);
|
|
330
|
-
|
|
352
|
+
// Validate assignedProfile: must be a valid slug (lowercase alphanumeric + hyphens)
|
|
353
|
+
const rawProfile = args.assignedProfile;
|
|
354
|
+
let assignedProfile;
|
|
355
|
+
if (rawProfile !== undefined && rawProfile !== null) {
|
|
356
|
+
if (typeof rawProfile !== 'string' || !rawProfile.trim()) {
|
|
357
|
+
return { blocked: true, blockReason: 'task_create: assignedProfile must be a non-empty string.' };
|
|
358
|
+
}
|
|
359
|
+
if (!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(rawProfile)) {
|
|
360
|
+
return { blocked: true, blockReason: `task_create: assignedProfile "${rawProfile}" is not a valid slug (use lowercase alphanumeric with hyphens).` };
|
|
361
|
+
}
|
|
362
|
+
assignedProfile = rawProfile;
|
|
363
|
+
}
|
|
364
|
+
// Validate complexity against enum, default to 'simple' if invalid
|
|
365
|
+
const VALID_COMPLEXITIES = new Set(['trivial', 'simple', 'moderate', 'complex']);
|
|
366
|
+
const rawComplexity = args.complexity;
|
|
367
|
+
const complexity = rawComplexity && VALID_COMPLEXITIES.has(rawComplexity)
|
|
368
|
+
? rawComplexity
|
|
369
|
+
: 'simple';
|
|
370
|
+
// Validate priority: coerce to number, default to 0 if NaN
|
|
371
|
+
const rawPriority = Number(args.priority);
|
|
372
|
+
const priority = Number.isFinite(rawPriority) ? rawPriority : 0;
|
|
373
|
+
// Validate parentId — must reference an existing task
|
|
374
|
+
const rawParentId = args.parentId;
|
|
375
|
+
let parentId;
|
|
376
|
+
if (rawParentId) {
|
|
377
|
+
// Resolve through symbolicIdMap first (in case it's a title or symbolic ref)
|
|
378
|
+
const resolved = symbolicIdMap?.[rawParentId] ?? rawParentId;
|
|
379
|
+
const parentTask = await store.get(resolved);
|
|
380
|
+
if (!parentTask) {
|
|
381
|
+
return { blocked: true, blockReason: `task_create: parentId "${rawParentId}" does not match any existing task. Use the exact Task ID from the prompt.` };
|
|
382
|
+
}
|
|
383
|
+
parentId = resolved;
|
|
384
|
+
}
|
|
385
|
+
// Idempotent: if a task with the same title and parentId already exists, return it
|
|
386
|
+
// instead of creating a duplicate. This prevents retry loops from producing duplicates.
|
|
387
|
+
if (parentId) {
|
|
388
|
+
const existing = (await store.list()).find(t => t.parentId === parentId && t.title.toLowerCase() === title.toLowerCase());
|
|
389
|
+
if (existing) {
|
|
390
|
+
if (symbolicIdMap) {
|
|
391
|
+
const symbolicKey = args.symbolicId ?? args.id;
|
|
392
|
+
if (symbolicKey)
|
|
393
|
+
symbolicIdMap[symbolicKey] = existing.id;
|
|
394
|
+
symbolicIdMap[title] = existing.id;
|
|
395
|
+
}
|
|
396
|
+
return { output: `Task "${title}" already exists (${existing.id}), skipped duplicate.` };
|
|
397
|
+
}
|
|
398
|
+
}
|
|
331
399
|
// Resolve symbolic IDs in dependsOn through the map
|
|
332
400
|
const rawDeps = args.dependsOn ?? [];
|
|
333
401
|
const resolvedDeps = symbolicIdMap
|
|
@@ -336,25 +404,38 @@ export async function executeStep(step, projectDir, symbolicIdMap) {
|
|
|
336
404
|
const input = {
|
|
337
405
|
title,
|
|
338
406
|
description: args.description ?? title,
|
|
339
|
-
complexity
|
|
340
|
-
priority
|
|
341
|
-
parentId
|
|
407
|
+
complexity,
|
|
408
|
+
priority,
|
|
409
|
+
parentId,
|
|
342
410
|
dependsOn: resolvedDeps,
|
|
343
411
|
assignedProfile,
|
|
344
412
|
};
|
|
345
413
|
// Support inline subtasks
|
|
346
414
|
const subtasksArg = args.subtasks;
|
|
347
415
|
if (subtasksArg?.length) {
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
416
|
+
// Validate subtask titles are non-empty
|
|
417
|
+
for (let i = 0; i < subtasksArg.length; i++) {
|
|
418
|
+
const subTitle = subtasksArg[i].title ?? '';
|
|
419
|
+
if (!subTitle.trim()) {
|
|
420
|
+
return { blocked: true, blockReason: `task_create: subtask[${i}] has an empty title. All subtasks must have non-empty titles.` };
|
|
421
|
+
}
|
|
422
|
+
}
|
|
423
|
+
input.subtasks = subtasksArg.map((s) => {
|
|
424
|
+
const subComplexity = s.complexity;
|
|
425
|
+
const subPriority = Number(s.priority);
|
|
426
|
+
return {
|
|
427
|
+
title: s.title ?? '',
|
|
428
|
+
description: s.description ?? '',
|
|
429
|
+
complexity: subComplexity && VALID_COMPLEXITIES.has(subComplexity)
|
|
430
|
+
? subComplexity
|
|
431
|
+
: 'simple',
|
|
432
|
+
priority: Number.isFinite(subPriority) ? subPriority : 0,
|
|
433
|
+
assignedProfile: s.assignedProfile ?? assignedProfile ?? 'developer',
|
|
434
|
+
dependsOn: symbolicIdMap
|
|
435
|
+
? (s.dependsOn ?? []).map(dep => symbolicIdMap[dep] ?? dep)
|
|
436
|
+
: s.dependsOn ?? [],
|
|
437
|
+
};
|
|
438
|
+
});
|
|
358
439
|
}
|
|
359
440
|
const task = await store.create(input);
|
|
360
441
|
// Register symbolic ID → real ID mapping.
|