@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.
Files changed (93) hide show
  1. package/dist/ai-chat-provider.js +4 -4
  2. package/dist/ai-chat-provider.js.map +1 -1
  3. package/dist/bot/ai-client.d.ts +30 -0
  4. package/dist/bot/ai-client.d.ts.map +1 -1
  5. package/dist/bot/ai-client.js +37 -0
  6. package/dist/bot/ai-client.js.map +1 -1
  7. package/dist/bot/behavior-defaults.d.ts.map +1 -1
  8. package/dist/bot/behavior-defaults.js +7 -2
  9. package/dist/bot/behavior-defaults.js.map +1 -1
  10. package/dist/bot/capability-registry.d.ts.map +1 -1
  11. package/dist/bot/capability-registry.js +48 -30
  12. package/dist/bot/capability-registry.js.map +1 -1
  13. package/dist/bot/file-validator.d.ts +7 -0
  14. package/dist/bot/file-validator.d.ts.map +1 -1
  15. package/dist/bot/file-validator.js +76 -0
  16. package/dist/bot/file-validator.js.map +1 -1
  17. package/dist/bot/instance-manager.d.ts +22 -7
  18. package/dist/bot/instance-manager.d.ts.map +1 -1
  19. package/dist/bot/instance-manager.js +69 -7
  20. package/dist/bot/instance-manager.js.map +1 -1
  21. package/dist/bot/orchestrator.d.ts +11 -9
  22. package/dist/bot/orchestrator.d.ts.map +1 -1
  23. package/dist/bot/orchestrator.js +56 -107
  24. package/dist/bot/orchestrator.js.map +1 -1
  25. package/dist/bot/runner.d.ts +29 -0
  26. package/dist/bot/runner.d.ts.map +1 -1
  27. package/dist/bot/runner.js +114 -73
  28. package/dist/bot/runner.js.map +1 -1
  29. package/dist/bot/step-executor.d.ts.map +1 -1
  30. package/dist/bot/step-executor.js +106 -25
  31. package/dist/bot/step-executor.js.map +1 -1
  32. package/dist/bot/swarm-controller.d.ts +7 -6
  33. package/dist/bot/swarm-controller.d.ts.map +1 -1
  34. package/dist/bot/swarm-controller.js +64 -74
  35. package/dist/bot/swarm-controller.js.map +1 -1
  36. package/dist/bot/task-types.d.ts +1 -0
  37. package/dist/bot/task-types.d.ts.map +1 -1
  38. package/dist/bot/weaver-tools.d.ts +1 -1
  39. package/dist/bot/weaver-tools.d.ts.map +1 -1
  40. package/dist/bot/weaver-tools.js +6 -1
  41. package/dist/bot/weaver-tools.js.map +1 -1
  42. package/dist/node-types/agent-execute.js +2 -2
  43. package/dist/node-types/agent-execute.js.map +1 -1
  44. package/dist/node-types/bot-report.d.ts.map +1 -1
  45. package/dist/node-types/bot-report.js +5 -2
  46. package/dist/node-types/bot-report.js.map +1 -1
  47. package/dist/node-types/build-context.js +2 -1
  48. package/dist/node-types/build-context.js.map +1 -1
  49. package/dist/node-types/exec-validate-retry.d.ts +3 -3
  50. package/dist/node-types/exec-validate-retry.d.ts.map +1 -1
  51. package/dist/node-types/exec-validate-retry.js +13 -184
  52. package/dist/node-types/exec-validate-retry.js.map +1 -1
  53. package/dist/node-types/load-config.d.ts +1 -0
  54. package/dist/node-types/load-config.d.ts.map +1 -1
  55. package/dist/node-types/load-config.js +1 -0
  56. package/dist/node-types/load-config.js.map +1 -1
  57. package/dist/node-types/plan-task.d.ts +7 -5
  58. package/dist/node-types/plan-task.d.ts.map +1 -1
  59. package/dist/node-types/plan-task.js +282 -83
  60. package/dist/node-types/plan-task.js.map +1 -1
  61. package/dist/ui/bot-panel.js +1 -1
  62. package/dist/ui/capability-editor.js +48 -30
  63. package/dist/ui/profile-editor.js +46 -28
  64. package/dist/ui/swarm-dashboard.js +71 -33
  65. package/dist/ui/task-detail-view.js +22 -2
  66. package/dist/workflows/weaver-bot.d.ts +2 -2
  67. package/dist/workflows/weaver-bot.d.ts.map +1 -1
  68. package/dist/workflows/weaver-bot.js +5 -4
  69. package/dist/workflows/weaver-bot.js.map +1 -1
  70. package/flowweaver.manifest.json +1 -1
  71. package/package.json +1 -1
  72. package/src/ai-chat-provider.ts +4 -4
  73. package/src/bot/ai-client.ts +65 -0
  74. package/src/bot/behavior-defaults.ts +5 -2
  75. package/src/bot/capability-registry.ts +48 -30
  76. package/src/bot/file-validator.ts +97 -0
  77. package/src/bot/instance-manager.ts +77 -7
  78. package/src/bot/orchestrator.ts +63 -126
  79. package/src/bot/runner.ts +124 -70
  80. package/src/bot/step-executor.ts +115 -25
  81. package/src/bot/swarm-controller.ts +65 -76
  82. package/src/bot/task-types.ts +1 -0
  83. package/src/bot/weaver-tools.ts +7 -1
  84. package/src/node-types/agent-execute.ts +2 -2
  85. package/src/node-types/bot-report.ts +5 -2
  86. package/src/node-types/build-context.ts +2 -1
  87. package/src/node-types/exec-validate-retry.ts +14 -203
  88. package/src/node-types/load-config.ts +1 -0
  89. package/src/node-types/plan-task.ts +313 -88
  90. package/src/ui/bot-panel.tsx +1 -1
  91. package/src/ui/swarm-dashboard.tsx +3 -3
  92. package/src/ui/task-detail-view.tsx +25 -2
  93. package/src/workflows/weaver-bot.ts +5 -4
@@ -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;AA+EnE,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,CAubzB"}
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"}
@@ -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
- let stepLog;
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
- try {
380
- const ctxStr = result?.ctx;
381
- if (ctxStr) {
382
- const ctx = JSON.parse(ctxStr);
383
- const md = [];
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,
@@ -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,CA0UrB"}
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
- const content = args.content ?? args.body ?? '';
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: filePath, blocked: true, blockReason: guard.reason };
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: filePath, created: !existed };
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: filePath,
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: filePath,
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: filePath, output: summary };
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 { output: '' };
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: filePath, output: content };
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: combined || (err instanceof Error ? err.message : String(err)),
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
- const assignedProfile = args.assignedProfile;
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: args.complexity ?? 'simple',
340
- priority: args.priority ?? 0,
341
- parentId: args.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
- input.subtasks = subtasksArg.map((s) => ({
349
- title: s.title ?? '',
350
- description: s.description ?? '',
351
- complexity: s.complexity ?? 'simple',
352
- priority: s.priority ?? 0,
353
- assignedProfile: s.assignedProfile ?? assignedProfile ?? 'developer',
354
- dependsOn: symbolicIdMap
355
- ? (s.dependsOn ?? []).map(dep => symbolicIdMap[dep] ?? dep)
356
- : s.dependsOn ?? [],
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.