@synergenius/flowweaver-pack-weaver 0.5.0 → 0.5.2

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 (243) hide show
  1. package/README.md +167 -0
  2. package/dist/bot/agent-provider.d.ts +15 -1
  3. package/dist/bot/agent-provider.d.ts.map +1 -1
  4. package/dist/bot/agent-provider.js +78 -2
  5. package/dist/bot/agent-provider.js.map +1 -1
  6. package/dist/bot/ai-client.d.ts +4 -0
  7. package/dist/bot/ai-client.d.ts.map +1 -0
  8. package/dist/bot/ai-client.js +46 -0
  9. package/dist/bot/ai-client.js.map +1 -0
  10. package/dist/bot/bot-agent-channel.d.ts +14 -1
  11. package/dist/bot/bot-agent-channel.d.ts.map +1 -1
  12. package/dist/bot/bot-agent-channel.js +16 -0
  13. package/dist/bot/bot-agent-channel.js.map +1 -1
  14. package/dist/bot/cli-provider.d.ts +16 -1
  15. package/dist/bot/cli-provider.d.ts.map +1 -1
  16. package/dist/bot/cli-provider.js +10 -0
  17. package/dist/bot/cli-provider.js.map +1 -1
  18. package/dist/bot/dashboard.d.ts.map +1 -1
  19. package/dist/bot/dashboard.js +2 -2
  20. package/dist/bot/dashboard.js.map +1 -1
  21. package/dist/bot/file-lock.d.ts +7 -0
  22. package/dist/bot/file-lock.d.ts.map +1 -0
  23. package/dist/bot/file-lock.js +64 -0
  24. package/dist/bot/file-lock.js.map +1 -0
  25. package/dist/bot/file-validator.d.ts +7 -0
  26. package/dist/bot/file-validator.d.ts.map +1 -0
  27. package/dist/bot/file-validator.js +20 -0
  28. package/dist/bot/file-validator.js.map +1 -0
  29. package/dist/bot/genesis-store.d.ts +18 -0
  30. package/dist/bot/genesis-store.d.ts.map +1 -0
  31. package/dist/bot/genesis-store.js +89 -0
  32. package/dist/bot/genesis-store.js.map +1 -0
  33. package/dist/bot/index.d.ts +7 -1
  34. package/dist/bot/index.d.ts.map +1 -1
  35. package/dist/bot/index.js +8 -0
  36. package/dist/bot/index.js.map +1 -1
  37. package/dist/bot/runner.d.ts.map +1 -1
  38. package/dist/bot/runner.js +2 -4
  39. package/dist/bot/runner.js.map +1 -1
  40. package/dist/bot/session-state.d.ts +3 -3
  41. package/dist/bot/session-state.d.ts.map +1 -1
  42. package/dist/bot/session-state.js +24 -15
  43. package/dist/bot/session-state.js.map +1 -1
  44. package/dist/bot/steering.d.ts +2 -2
  45. package/dist/bot/steering.d.ts.map +1 -1
  46. package/dist/bot/steering.js +20 -15
  47. package/dist/bot/steering.js.map +1 -1
  48. package/dist/bot/step-executor.d.ts +9 -0
  49. package/dist/bot/step-executor.d.ts.map +1 -0
  50. package/dist/bot/step-executor.js +51 -0
  51. package/dist/bot/step-executor.js.map +1 -0
  52. package/dist/bot/task-queue.d.ts +8 -8
  53. package/dist/bot/task-queue.d.ts.map +1 -1
  54. package/dist/bot/task-queue.js +58 -47
  55. package/dist/bot/task-queue.js.map +1 -1
  56. package/dist/bot/types.d.ts +131 -0
  57. package/dist/bot/types.d.ts.map +1 -1
  58. package/dist/cli-bridge.d.ts.map +1 -1
  59. package/dist/cli-bridge.js +2 -4
  60. package/dist/cli-bridge.js.map +1 -1
  61. package/dist/cli-handlers.d.ts +4 -1
  62. package/dist/cli-handlers.d.ts.map +1 -1
  63. package/dist/cli-handlers.js +84 -8
  64. package/dist/cli-handlers.js.map +1 -1
  65. package/dist/index.d.ts +4 -3
  66. package/dist/index.d.ts.map +1 -1
  67. package/dist/index.js +3 -1
  68. package/dist/index.js.map +1 -1
  69. package/dist/mcp-tools.d.ts.map +1 -1
  70. package/dist/mcp-tools.js +27 -5
  71. package/dist/mcp-tools.js.map +1 -1
  72. package/dist/node-types/abort-task.d.ts +5 -12
  73. package/dist/node-types/abort-task.d.ts.map +1 -1
  74. package/dist/node-types/abort-task.js +11 -16
  75. package/dist/node-types/abort-task.js.map +1 -1
  76. package/dist/node-types/approval-gate.d.ts +4 -21
  77. package/dist/node-types/approval-gate.d.ts.map +1 -1
  78. package/dist/node-types/approval-gate.js +17 -23
  79. package/dist/node-types/approval-gate.js.map +1 -1
  80. package/dist/node-types/bot-report.d.ts +8 -10
  81. package/dist/node-types/bot-report.d.ts.map +1 -1
  82. package/dist/node-types/bot-report.js +28 -24
  83. package/dist/node-types/bot-report.js.map +1 -1
  84. package/dist/node-types/build-context.d.ts +5 -18
  85. package/dist/node-types/build-context.d.ts.map +1 -1
  86. package/dist/node-types/build-context.js +14 -23
  87. package/dist/node-types/build-context.js.map +1 -1
  88. package/dist/node-types/detect-provider.d.ts +7 -10
  89. package/dist/node-types/detect-provider.d.ts.map +1 -1
  90. package/dist/node-types/detect-provider.js +8 -12
  91. package/dist/node-types/detect-provider.js.map +1 -1
  92. package/dist/node-types/exec-validate-retry.d.ts +5 -26
  93. package/dist/node-types/exec-validate-retry.d.ts.map +1 -1
  94. package/dist/node-types/exec-validate-retry.js +21 -144
  95. package/dist/node-types/exec-validate-retry.js.map +1 -1
  96. package/dist/node-types/execute-plan.d.ts +10 -18
  97. package/dist/node-types/execute-plan.d.ts.map +1 -1
  98. package/dist/node-types/execute-plan.js +13 -68
  99. package/dist/node-types/execute-plan.js.map +1 -1
  100. package/dist/node-types/execute-target.d.ts +5 -15
  101. package/dist/node-types/execute-target.d.ts.map +1 -1
  102. package/dist/node-types/execute-target.js +17 -85
  103. package/dist/node-types/execute-target.js.map +1 -1
  104. package/dist/node-types/fix-errors.d.ts +9 -17
  105. package/dist/node-types/fix-errors.d.ts.map +1 -1
  106. package/dist/node-types/fix-errors.js +13 -64
  107. package/dist/node-types/fix-errors.js.map +1 -1
  108. package/dist/node-types/genesis-apply-retry.d.ts +24 -0
  109. package/dist/node-types/genesis-apply-retry.d.ts.map +1 -0
  110. package/dist/node-types/genesis-apply-retry.js +95 -0
  111. package/dist/node-types/genesis-apply-retry.js.map +1 -0
  112. package/dist/node-types/genesis-apply.d.ts +29 -0
  113. package/dist/node-types/genesis-apply.d.ts.map +1 -0
  114. package/dist/node-types/genesis-apply.js +76 -0
  115. package/dist/node-types/genesis-apply.js.map +1 -0
  116. package/dist/node-types/genesis-approve.d.ts +19 -0
  117. package/dist/node-types/genesis-approve.d.ts.map +1 -0
  118. package/dist/node-types/genesis-approve.js +54 -0
  119. package/dist/node-types/genesis-approve.js.map +1 -0
  120. package/dist/node-types/genesis-check-stabilize.d.ts +16 -0
  121. package/dist/node-types/genesis-check-stabilize.d.ts.map +1 -0
  122. package/dist/node-types/genesis-check-stabilize.js +32 -0
  123. package/dist/node-types/genesis-check-stabilize.js.map +1 -0
  124. package/dist/node-types/genesis-check-threshold.d.ts +15 -0
  125. package/dist/node-types/genesis-check-threshold.d.ts.map +1 -0
  126. package/dist/node-types/genesis-check-threshold.js +29 -0
  127. package/dist/node-types/genesis-check-threshold.js.map +1 -0
  128. package/dist/node-types/genesis-commit.d.ts +17 -0
  129. package/dist/node-types/genesis-commit.d.ts.map +1 -0
  130. package/dist/node-types/genesis-commit.js +59 -0
  131. package/dist/node-types/genesis-commit.js.map +1 -0
  132. package/dist/node-types/genesis-compile-validate.d.ts +26 -0
  133. package/dist/node-types/genesis-compile-validate.d.ts.map +1 -0
  134. package/dist/node-types/genesis-compile-validate.js +60 -0
  135. package/dist/node-types/genesis-compile-validate.js.map +1 -0
  136. package/dist/node-types/genesis-diff-fingerprint.d.ts +15 -0
  137. package/dist/node-types/genesis-diff-fingerprint.d.ts.map +1 -0
  138. package/dist/node-types/genesis-diff-fingerprint.js +59 -0
  139. package/dist/node-types/genesis-diff-fingerprint.js.map +1 -0
  140. package/dist/node-types/genesis-diff-workflow.d.ts +15 -0
  141. package/dist/node-types/genesis-diff-workflow.d.ts.map +1 -0
  142. package/dist/node-types/genesis-diff-workflow.js +39 -0
  143. package/dist/node-types/genesis-diff-workflow.js.map +1 -0
  144. package/dist/node-types/genesis-load-config.d.ts +17 -0
  145. package/dist/node-types/genesis-load-config.d.ts.map +1 -0
  146. package/dist/node-types/genesis-load-config.js +35 -0
  147. package/dist/node-types/genesis-load-config.js.map +1 -0
  148. package/dist/node-types/genesis-observe.d.ts +18 -0
  149. package/dist/node-types/genesis-observe.d.ts.map +1 -0
  150. package/dist/node-types/genesis-observe.js +101 -0
  151. package/dist/node-types/genesis-observe.js.map +1 -0
  152. package/dist/node-types/genesis-propose.d.ts +17 -0
  153. package/dist/node-types/genesis-propose.d.ts.map +1 -0
  154. package/dist/node-types/genesis-propose.js +67 -0
  155. package/dist/node-types/genesis-propose.js.map +1 -0
  156. package/dist/node-types/genesis-report.d.ts +18 -0
  157. package/dist/node-types/genesis-report.d.ts.map +1 -0
  158. package/dist/node-types/genesis-report.js +61 -0
  159. package/dist/node-types/genesis-report.js.map +1 -0
  160. package/dist/node-types/genesis-snapshot.d.ts +15 -0
  161. package/dist/node-types/genesis-snapshot.d.ts.map +1 -0
  162. package/dist/node-types/genesis-snapshot.js +26 -0
  163. package/dist/node-types/genesis-snapshot.js.map +1 -0
  164. package/dist/node-types/genesis-try-apply.d.ts +18 -0
  165. package/dist/node-types/genesis-try-apply.d.ts.map +1 -0
  166. package/dist/node-types/genesis-try-apply.js +109 -0
  167. package/dist/node-types/genesis-try-apply.js.map +1 -0
  168. package/dist/node-types/genesis-update-history.d.ts +15 -0
  169. package/dist/node-types/genesis-update-history.d.ts.map +1 -0
  170. package/dist/node-types/genesis-update-history.js +57 -0
  171. package/dist/node-types/genesis-update-history.js.map +1 -0
  172. package/dist/node-types/genesis-validate-proposal.d.ts +16 -0
  173. package/dist/node-types/genesis-validate-proposal.d.ts.map +1 -0
  174. package/dist/node-types/genesis-validate-proposal.js +52 -0
  175. package/dist/node-types/genesis-validate-proposal.js.map +1 -0
  176. package/dist/node-types/git-ops.d.ts +5 -8
  177. package/dist/node-types/git-ops.d.ts.map +1 -1
  178. package/dist/node-types/git-ops.js +16 -14
  179. package/dist/node-types/git-ops.js.map +1 -1
  180. package/dist/node-types/index.d.ts +17 -0
  181. package/dist/node-types/index.d.ts.map +1 -1
  182. package/dist/node-types/index.js +17 -0
  183. package/dist/node-types/index.js.map +1 -1
  184. package/dist/node-types/load-config.d.ts +4 -2
  185. package/dist/node-types/load-config.d.ts.map +1 -1
  186. package/dist/node-types/load-config.js +3 -2
  187. package/dist/node-types/load-config.js.map +1 -1
  188. package/dist/node-types/plan-task.d.ts +5 -20
  189. package/dist/node-types/plan-task.d.ts.map +1 -1
  190. package/dist/node-types/plan-task.js +16 -85
  191. package/dist/node-types/plan-task.js.map +1 -1
  192. package/dist/node-types/read-workflow.d.ts +5 -20
  193. package/dist/node-types/read-workflow.d.ts.map +1 -1
  194. package/dist/node-types/read-workflow.js +16 -28
  195. package/dist/node-types/read-workflow.js.map +1 -1
  196. package/dist/node-types/receive-task.d.ts +9 -20
  197. package/dist/node-types/receive-task.d.ts.map +1 -1
  198. package/dist/node-types/receive-task.js +16 -19
  199. package/dist/node-types/receive-task.js.map +1 -1
  200. package/dist/node-types/report.d.ts +3 -4
  201. package/dist/node-types/report.d.ts.map +1 -1
  202. package/dist/node-types/report.js +6 -6
  203. package/dist/node-types/report.js.map +1 -1
  204. package/dist/node-types/resolve-target.d.ts +7 -15
  205. package/dist/node-types/resolve-target.d.ts.map +1 -1
  206. package/dist/node-types/resolve-target.js +47 -47
  207. package/dist/node-types/resolve-target.js.map +1 -1
  208. package/dist/node-types/route-task.d.ts +4 -16
  209. package/dist/node-types/route-task.d.ts.map +1 -1
  210. package/dist/node-types/route-task.js +6 -13
  211. package/dist/node-types/route-task.js.map +1 -1
  212. package/dist/node-types/send-notify.d.ts +5 -11
  213. package/dist/node-types/send-notify.d.ts.map +1 -1
  214. package/dist/node-types/send-notify.js +17 -24
  215. package/dist/node-types/send-notify.js.map +1 -1
  216. package/dist/node-types/validate-result.d.ts +11 -19
  217. package/dist/node-types/validate-result.d.ts.map +1 -1
  218. package/dist/node-types/validate-result.js +18 -33
  219. package/dist/node-types/validate-result.js.map +1 -1
  220. package/dist/workflows/genesis-task.d.ts +52 -0
  221. package/dist/workflows/genesis-task.d.ts.map +1 -0
  222. package/dist/workflows/genesis-task.js +56 -0
  223. package/dist/workflows/genesis-task.js.map +1 -0
  224. package/dist/workflows/index.d.ts +1 -1
  225. package/dist/workflows/index.d.ts.map +1 -1
  226. package/dist/workflows/index.js +1 -1
  227. package/dist/workflows/index.js.map +1 -1
  228. package/dist/workflows/weaver-bot-batch.d.ts +15 -26
  229. package/dist/workflows/weaver-bot-batch.d.ts.map +1 -1
  230. package/dist/workflows/weaver-bot-batch.js +15 -26
  231. package/dist/workflows/weaver-bot-batch.js.map +1 -1
  232. package/dist/workflows/weaver-bot.d.ts +18 -32
  233. package/dist/workflows/weaver-bot.d.ts.map +1 -1
  234. package/dist/workflows/weaver-bot.js +18 -32
  235. package/dist/workflows/weaver-bot.js.map +1 -1
  236. package/dist/workflows/weaver.d.ts +9 -9
  237. package/dist/workflows/weaver.js +9 -9
  238. package/flowweaver.manifest.json +494 -558
  239. package/package.json +3 -3
  240. package/dist/workflows/weaver-bot-session.d.ts +0 -65
  241. package/dist/workflows/weaver-bot-session.d.ts.map +0 -1
  242. package/dist/workflows/weaver-bot-session.js +0 -68
  243. package/dist/workflows/weaver-bot-session.js.map +0 -1
@@ -1,98 +1,42 @@
1
- import { execSync } from 'node:child_process';
2
1
  import * as fs from 'node:fs';
3
2
  import * as path from 'node:path';
4
3
  import * as os from 'node:os';
5
- function callCli(provider, prompt) {
6
- if (provider === 'claude-cli') {
7
- return execSync('claude -p --output-format text', {
8
- input: prompt, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'], timeout: 120_000,
9
- }).trim();
10
- }
11
- if (provider === 'copilot-cli') {
12
- return execSync('copilot -p --silent --allow-all-tools', {
13
- input: prompt, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'], timeout: 120_000,
14
- }).trim();
15
- }
16
- throw new Error(`Unknown CLI provider: ${provider}`);
17
- }
18
- async function callApi(apiKey, model, maxTokens, systemPrompt, userPrompt) {
19
- const body = JSON.stringify({
20
- model, max_tokens: maxTokens, system: systemPrompt,
21
- messages: [{ role: 'user', content: userPrompt }],
22
- });
23
- const response = await fetch('https://api.anthropic.com/v1/messages', {
24
- method: 'POST',
25
- headers: { 'x-api-key': apiKey, 'anthropic-version': '2023-06-01', 'content-type': 'application/json' },
26
- body,
27
- });
28
- if (!response.ok) {
29
- const text = await response.text();
30
- throw new Error(`Anthropic API error ${response.status}: ${text.slice(0, 200)}`);
31
- }
32
- const json = await response.json();
33
- return json.content[0]?.text ?? '';
34
- }
35
- function parseJsonResponse(text) {
36
- let cleaned = text.trim();
37
- if (cleaned.startsWith('```')) {
38
- cleaned = cleaned.replace(/^```(?:json)?\s*\n?/, '').replace(/\n?```\s*$/, '');
39
- }
40
- try {
41
- return JSON.parse(cleaned);
42
- }
43
- catch { /* fallthrough */ }
44
- const match = cleaned.match(/\{[\s\S]*\}/);
45
- if (match)
46
- return JSON.parse(match[0]);
47
- throw new Error(`Failed to parse AI response as JSON: ${text.slice(0, 200)}`);
48
- }
4
+ import { callCli, callApi, parseJsonResponse } from '../bot/ai-client.js';
5
+ import { executeStep } from '../bot/step-executor.js';
6
+ import { validateFiles } from '../bot/file-validator.js';
49
7
  /**
50
8
  * Execute-validate-fix retry loop. Runs the plan, validates results,
51
9
  * and if validation fails, asks the AI for fixes. Up to 3 attempts.
52
10
  *
53
11
  * @flowWeaver nodeType
54
12
  * @label Execute & Validate
55
- * @input projectDir [order:0] - Project root directory
56
- * @input config [order:1] - Config (JSON)
57
- * @input providerType [order:2] - Provider type
58
- * @input providerInfo [order:3] - Provider info (JSON)
59
- * @input planJson [order:4] - Execution plan (JSON)
60
- * @input taskJson [order:5] - Task (JSON)
61
- * @output projectDir [order:0] - Project root directory (pass-through)
62
- * @output config [order:1] - Config (pass-through)
63
- * @output providerType [order:2] - Provider type (pass-through)
64
- * @output providerInfo [order:3] - Provider info (pass-through)
65
- * @output resultJson [order:4] - Final execution result (JSON)
66
- * @output validationResultJson [order:5] - Final validation result (JSON)
67
- * @output filesModified [order:6] - All modified files (JSON array)
68
- * @output taskJson [order:7] - Task (pass-through)
69
- * @output allValid [order:8] - Whether all files are valid
13
+ * @input ctx [order:0] - Weaver context (JSON)
14
+ * @output ctx [order:0] - Weaver context with results (JSON)
70
15
  * @output onSuccess [order:-2] - On Success
71
- * @output onFailure [order:-1] - On Failure
16
+ * @output onFailure [order:-1] [hidden] - On Failure
72
17
  */
73
- export async function weaverExecValidateRetry(execute, projectDir, config, providerType, providerInfo, planJson, taskJson) {
74
- const passthrough = { projectDir, config, providerType, providerInfo, taskJson };
18
+ export async function weaverExecValidateRetry(execute, ctx) {
19
+ const context = JSON.parse(ctx);
20
+ const { env } = context;
75
21
  if (!execute) {
76
- return {
77
- onSuccess: true, onFailure: false, ...passthrough,
78
- resultJson: JSON.stringify({ success: true, stepsCompleted: 0, stepsTotal: 0 }),
79
- validationResultJson: '[]', filesModified: '[]', allValid: true,
80
- };
22
+ context.resultJson = JSON.stringify({ success: true, stepsCompleted: 0, stepsTotal: 0 });
23
+ context.validationResultJson = '[]';
24
+ context.filesModified = '[]';
25
+ context.allValid = true;
26
+ return { onSuccess: true, onFailure: false, ctx: JSON.stringify(context) };
81
27
  }
82
- const pInfo = JSON.parse(providerInfo);
28
+ const { providerInfo: pInfo, projectDir } = env;
83
29
  const maxAttempts = 3;
84
- let currentPlan = JSON.parse(planJson);
30
+ let currentPlan = JSON.parse(context.planJson);
85
31
  let allFilesModified = [];
86
32
  let lastExecResult = {};
87
33
  let lastValidation = [];
88
34
  let allValid = false;
89
35
  for (let attempt = 1; attempt <= maxAttempts; attempt++) {
90
36
  console.log(`\x1b[36m→ Attempt ${attempt}/${maxAttempts}\x1b[0m`);
91
- // Execute plan steps
92
37
  const execResult = executePlanSteps(currentPlan, projectDir);
93
38
  lastExecResult = execResult;
94
39
  allFilesModified = [...new Set([...allFilesModified, ...execResult.filesModified])];
95
- // Validate results
96
40
  const validation = validateFiles(execResult.filesModified, projectDir);
97
41
  lastValidation = validation;
98
42
  allValid = validation.every(v => v.valid);
@@ -130,13 +74,11 @@ export async function weaverExecValidateRetry(execute, projectDir, config, provi
130
74
  }
131
75
  }
132
76
  }
133
- return {
134
- onSuccess: allValid, onFailure: !allValid, ...passthrough,
135
- resultJson: JSON.stringify(lastExecResult),
136
- validationResultJson: JSON.stringify(lastValidation),
137
- filesModified: JSON.stringify(allFilesModified),
138
- allValid,
139
- };
77
+ context.resultJson = JSON.stringify(lastExecResult);
78
+ context.validationResultJson = JSON.stringify(lastValidation);
79
+ context.filesModified = JSON.stringify(allFilesModified);
80
+ context.allValid = allValid;
81
+ return { onSuccess: allValid, onFailure: !allValid, ctx: JSON.stringify(context) };
140
82
  }
141
83
  function executePlanSteps(plan, projectDir) {
142
84
  const filesModified = [];
@@ -144,7 +86,6 @@ function executePlanSteps(plan, projectDir) {
144
86
  let completed = 0;
145
87
  const steps = plan.steps ?? [];
146
88
  for (const step of steps) {
147
- // Check steering between steps
148
89
  const steering = checkSteeringSignal();
149
90
  if (steering === 'cancel') {
150
91
  errors.push(`Cancelled at step ${step.id}`);
@@ -167,70 +108,6 @@ function executePlanSteps(plan, projectDir) {
167
108
  }
168
109
  return { success: errors.length === 0, filesModified: [...new Set(filesModified)], errors, stepsCompleted: completed, stepsTotal: steps.length };
169
110
  }
170
- function executeStep(step, projectDir) {
171
- const args = step.args;
172
- const file = args.file;
173
- switch (step.operation) {
174
- case 'write-file':
175
- case 'create-workflow':
176
- case 'modify-source':
177
- case 'implement-node': {
178
- const filePath = path.resolve(projectDir, file);
179
- fs.mkdirSync(path.dirname(filePath), { recursive: true });
180
- fs.writeFileSync(filePath, args.content ?? args.body ?? '', 'utf-8');
181
- return { file: filePath };
182
- }
183
- case 'compile':
184
- execSync(`flow-weaver compile "${file}"`, { cwd: projectDir, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'], timeout: 30_000 });
185
- return { file: file };
186
- case 'validate':
187
- execSync(`flow-weaver validate "${file}"`, { cwd: projectDir, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'], timeout: 30_000 });
188
- return {};
189
- case 'add-node':
190
- execSync(`flow-weaver modify addNode --file "${file}" --nodeId "${args.nodeId}" --nodeType "${args.nodeType}"`, { cwd: projectDir, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'], timeout: 30_000 });
191
- return { file: file };
192
- case 'remove-node':
193
- execSync(`flow-weaver modify removeNode --file "${file}" --nodeId "${args.nodeId}"`, { cwd: projectDir, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'], timeout: 30_000 });
194
- return { file: file };
195
- case 'add-connection':
196
- execSync(`flow-weaver modify addConnection --file "${file}" --from "${args.from}" --to "${args.to}"`, { cwd: projectDir, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'], timeout: 30_000 });
197
- return { file: file };
198
- case 'remove-connection':
199
- execSync(`flow-weaver modify removeConnection --file "${file}" --from "${args.from}" --to "${args.to}"`, { cwd: projectDir, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'], timeout: 30_000 });
200
- return { file: file };
201
- case 'scaffold':
202
- execSync(`flow-weaver create workflow "${args.template}" "${file}"`, { cwd: projectDir, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'], timeout: 30_000 });
203
- return { file: file };
204
- case 'read-file':
205
- return {};
206
- case 'run-cli': {
207
- const cmd = args.command;
208
- const cliArgs = args.args?.join(' ') ?? '';
209
- execSync(`flow-weaver ${cmd} ${cliArgs}`, { cwd: projectDir, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'], timeout: 30_000 });
210
- return {};
211
- }
212
- default:
213
- throw new Error(`Unknown operation: ${step.operation}`);
214
- }
215
- }
216
- function validateFiles(files, projectDir) {
217
- const results = [];
218
- for (const file of files) {
219
- if (!file.endsWith('.ts'))
220
- continue;
221
- try {
222
- execSync(`flow-weaver validate "${file}"`, {
223
- cwd: projectDir, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'], timeout: 30_000,
224
- });
225
- results.push({ file, valid: true, errors: [], warnings: [] });
226
- }
227
- catch (err) {
228
- const msg = err instanceof Error ? err.stderr ?? err.message : String(err);
229
- results.push({ file, valid: false, errors: [msg], warnings: [] });
230
- }
231
- }
232
- return results;
233
- }
234
111
  function checkSteeringSignal() {
235
112
  try {
236
113
  const controlPath = path.join(os.homedir(), '.weaver', 'control.json');
@@ -1 +1 @@
1
- {"version":3,"file":"exec-validate-retry.js","sourceRoot":"","sources":["../../src/node-types/exec-validate-retry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"exec-validate-retry.js","sourceRoot":"","sources":["../../src/node-types/exec-validate-retry.ts"],"names":[],"mappings":"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"}
@@ -1,32 +1,24 @@
1
+ import type { WeaverEnv } from '../bot/types.js';
1
2
  /**
2
3
  * Executes plan steps via the flow-weaver CLI. Checks steering
3
4
  * between steps.
4
5
  *
5
6
  * @flowWeaver nodeType
6
7
  * @label Execute Plan
7
- * @input projectDir [order:0] - Project root directory
8
- * @input config [order:1] - Config (JSON, pass-through)
9
- * @input providerType [order:2] - Provider type (pass-through)
10
- * @input providerInfo [order:3] - Provider info (pass-through)
11
- * @input planJson [order:4] - Plan (JSON)
12
- * @input taskJson [order:5] - Task (JSON)
13
- * @output projectDir [order:0] - Project root directory (pass-through)
14
- * @output config [order:1] - Config (pass-through)
15
- * @output providerType [order:2] - Provider type (pass-through)
16
- * @output providerInfo [order:3] - Provider info (pass-through)
17
- * @output executionResultJson [order:4] - Execution result (JSON)
18
- * @output taskJson [order:5] - Task (pass-through)
19
- * @output filesModified [order:6] - Files modified (JSON array)
8
+ * @input env [order:0] - Weaver environment bundle
9
+ * @input planJson [order:1] - Plan (JSON)
10
+ * @input taskJson [order:2] - Task (JSON)
11
+ * @output env [order:0] - Weaver environment bundle (pass-through)
12
+ * @output executionResultJson [order:1] - Execution result (JSON)
13
+ * @output taskJson [order:2] - Task (pass-through)
14
+ * @output filesModified [order:3] - Files modified (JSON array)
20
15
  * @output onSuccess [order:-2] - On Success
21
16
  * @output onFailure [order:-1] - On Failure
22
17
  */
23
- export declare function weaverExecutePlan(execute: boolean, projectDir: string, config: string, providerType: string, providerInfo: string, planJson: string, taskJson: string): Promise<{
18
+ export declare function weaverExecutePlan(execute: boolean, env: WeaverEnv, planJson: string, taskJson: string): Promise<{
24
19
  onSuccess: boolean;
25
20
  onFailure: boolean;
26
- projectDir: string;
27
- config: string;
28
- providerType: string;
29
- providerInfo: string;
21
+ env: WeaverEnv;
30
22
  executionResultJson: string;
31
23
  taskJson: string;
32
24
  filesModified: string;
@@ -1 +1 @@
1
- {"version":3,"file":"execute-plan.d.ts","sourceRoot":"","sources":["../../src/node-types/execute-plan.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;IACT,SAAS,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IACvC,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAC/E,mBAAmB,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;CACtE,CAAC,CAoED"}
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,CAiED"}
@@ -1,55 +1,47 @@
1
- import { execSync } from 'node:child_process';
2
1
  import * as fs from 'node:fs';
3
2
  import * as path from 'node:path';
4
3
  import * as os from 'node:os';
4
+ import { executeStep } from '../bot/step-executor.js';
5
5
  /**
6
6
  * Executes plan steps via the flow-weaver CLI. Checks steering
7
7
  * between steps.
8
8
  *
9
9
  * @flowWeaver nodeType
10
10
  * @label Execute Plan
11
- * @input projectDir [order:0] - Project root directory
12
- * @input config [order:1] - Config (JSON, pass-through)
13
- * @input providerType [order:2] - Provider type (pass-through)
14
- * @input providerInfo [order:3] - Provider info (pass-through)
15
- * @input planJson [order:4] - Plan (JSON)
16
- * @input taskJson [order:5] - Task (JSON)
17
- * @output projectDir [order:0] - Project root directory (pass-through)
18
- * @output config [order:1] - Config (pass-through)
19
- * @output providerType [order:2] - Provider type (pass-through)
20
- * @output providerInfo [order:3] - Provider info (pass-through)
21
- * @output executionResultJson [order:4] - Execution result (JSON)
22
- * @output taskJson [order:5] - Task (pass-through)
23
- * @output filesModified [order:6] - Files modified (JSON array)
11
+ * @input env [order:0] - Weaver environment bundle
12
+ * @input planJson [order:1] - Plan (JSON)
13
+ * @input taskJson [order:2] - Task (JSON)
14
+ * @output env [order:0] - Weaver environment bundle (pass-through)
15
+ * @output executionResultJson [order:1] - Execution result (JSON)
16
+ * @output taskJson [order:2] - Task (pass-through)
17
+ * @output filesModified [order:3] - Files modified (JSON array)
24
18
  * @output onSuccess [order:-2] - On Success
25
19
  * @output onFailure [order:-1] - On Failure
26
20
  */
27
- export async function weaverExecutePlan(execute, projectDir, config, providerType, providerInfo, planJson, taskJson) {
28
- const passthrough = { projectDir, config, providerType, providerInfo, taskJson };
21
+ export async function weaverExecutePlan(execute, env, planJson, taskJson) {
29
22
  if (!execute) {
30
23
  return {
31
- onSuccess: true, onFailure: false, ...passthrough,
24
+ onSuccess: true, onFailure: false, env, taskJson,
32
25
  executionResultJson: JSON.stringify({ success: true, stepsCompleted: 0, stepsTotal: 0, filesModified: [], filesCreated: [], errors: [], output: 'dry run' }),
33
26
  filesModified: '[]',
34
27
  };
35
28
  }
29
+ const { projectDir } = env;
36
30
  const plan = JSON.parse(planJson);
37
31
  const filesModified = [];
38
32
  const filesCreated = [];
39
33
  const errors = [];
40
34
  const output = [];
41
35
  let completed = 0;
42
- // Check steering before starting
43
36
  const steeringCheck = checkSteering();
44
37
  if (steeringCheck === 'cancel') {
45
38
  return {
46
- onSuccess: false, onFailure: true, ...passthrough,
39
+ onSuccess: false, onFailure: true, env, taskJson,
47
40
  executionResultJson: JSON.stringify({ success: false, stepsCompleted: 0, stepsTotal: plan.steps.length, filesModified: [], filesCreated: [], errors: ['Cancelled via steering'], output: '' }),
48
41
  filesModified: '[]',
49
42
  };
50
43
  }
51
44
  for (const step of plan.steps) {
52
- // Check steering between steps
53
45
  const steering = checkSteering();
54
46
  if (steering === 'cancel') {
55
47
  output.push(`Cancelled at step ${step.id}`);
@@ -81,7 +73,7 @@ export async function weaverExecutePlan(execute, projectDir, config, providerTyp
81
73
  const allFiles = [...new Set([...filesModified, ...filesCreated])];
82
74
  const success = errors.length === 0;
83
75
  return {
84
- onSuccess: success, onFailure: !success, ...passthrough,
76
+ onSuccess: success, onFailure: !success, env, taskJson,
85
77
  executionResultJson: JSON.stringify({
86
78
  success, stepsCompleted: completed, stepsTotal: plan.steps.length,
87
79
  filesModified, filesCreated, errors, output: output.join('\n'),
@@ -89,53 +81,6 @@ export async function weaverExecutePlan(execute, projectDir, config, providerTyp
89
81
  filesModified: JSON.stringify(allFiles),
90
82
  };
91
83
  }
92
- function executeStep(step, projectDir) {
93
- const args = step.args;
94
- const file = args.file;
95
- switch (step.operation) {
96
- case 'write-file':
97
- case 'create-workflow':
98
- case 'modify-source':
99
- case 'implement-node': {
100
- const filePath = path.resolve(projectDir, file);
101
- fs.mkdirSync(path.dirname(filePath), { recursive: true });
102
- const existed = fs.existsSync(filePath);
103
- fs.writeFileSync(filePath, args.content ?? args.body ?? '', 'utf-8');
104
- return { file: filePath, created: !existed };
105
- }
106
- case 'compile':
107
- execSync(`flow-weaver compile "${file}"`, { cwd: projectDir, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'], timeout: 30_000 });
108
- return { file: file };
109
- case 'validate':
110
- execSync(`flow-weaver validate "${file}"`, { cwd: projectDir, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'], timeout: 30_000 });
111
- return {};
112
- case 'add-node':
113
- execSync(`flow-weaver modify addNode --file "${file}" --nodeId "${args.nodeId}" --nodeType "${args.nodeType}"`, { cwd: projectDir, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'], timeout: 30_000 });
114
- return { file: file };
115
- case 'remove-node':
116
- execSync(`flow-weaver modify removeNode --file "${file}" --nodeId "${args.nodeId}"`, { cwd: projectDir, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'], timeout: 30_000 });
117
- return { file: file };
118
- case 'add-connection':
119
- execSync(`flow-weaver modify addConnection --file "${file}" --from "${args.from}" --to "${args.to}"`, { cwd: projectDir, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'], timeout: 30_000 });
120
- return { file: file };
121
- case 'remove-connection':
122
- execSync(`flow-weaver modify removeConnection --file "${file}" --from "${args.from}" --to "${args.to}"`, { cwd: projectDir, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'], timeout: 30_000 });
123
- return { file: file };
124
- case 'scaffold':
125
- execSync(`flow-weaver create workflow "${args.template}" "${file}"`, { cwd: projectDir, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'], timeout: 30_000 });
126
- return { file: file, created: true };
127
- case 'read-file':
128
- return {};
129
- case 'run-cli': {
130
- const cmd = args.command;
131
- const cliArgs = args.args?.join(' ') ?? '';
132
- execSync(`flow-weaver ${cmd} ${cliArgs}`, { cwd: projectDir, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'], timeout: 30_000 });
133
- return {};
134
- }
135
- default:
136
- throw new Error(`Unknown operation: ${step.operation}`);
137
- }
138
- }
139
84
  function checkSteering() {
140
85
  try {
141
86
  const controlPath = path.join(os.homedir(), '.weaver', 'control.json');
@@ -1 +1 @@
1
- {"version":3,"file":"execute-plan.js","sourceRoot":"","sources":["../../src/node-types/execute-plan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"execute-plan.js","sourceRoot":"","sources":["../../src/node-types/execute-plan.ts"],"names":[],"mappings":"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"}
@@ -3,24 +3,14 @@
3
3
  *
4
4
  * @flowWeaver nodeType
5
5
  * @label Execute Target
6
- * @input projectDir [order:0] - Project root directory
7
- * @input config [order:1] - Config (JSON)
8
- * @input providerType [order:2] - Provider type
9
- * @input providerInfo [order:3] - Provider info (JSON)
10
- * @input targetPath [order:4] - Absolute path to target workflow
11
- * @output projectDir [order:0] - Project root directory (pass-through)
12
- * @output config [order:1] - Config (pass-through)
13
- * @output targetPath [order:2] - Target path (pass-through)
14
- * @output resultJson [order:3] - Workflow execution result (JSON)
6
+ * @input ctx [order:0] - Weaver context (JSON)
7
+ * @output ctx [order:0] - Weaver context with resultJson (JSON)
15
8
  * @output onSuccess [order:-2] - On Success
16
- * @output onFailure [order:-1] - On Failure
9
+ * @output onFailure [order:-1] [hidden] - On Failure
17
10
  */
18
- export declare function weaverExecuteTarget(execute: boolean, projectDir: string, config: string, providerType: string, providerInfo: string, targetPath: string): Promise<{
11
+ export declare function weaverExecuteTarget(execute: boolean, ctx: string): Promise<{
19
12
  onSuccess: boolean;
20
13
  onFailure: boolean;
21
- projectDir: string;
22
- config: string;
23
- targetPath: string;
24
- resultJson: string;
14
+ ctx: string;
25
15
  }>;
26
16
  //# sourceMappingURL=execute-target.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"execute-target.d.ts","sourceRoot":"","sources":["../../src/node-types/execute-target.ts"],"names":[],"mappings":"AA+MA;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;IACT,SAAS,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IACvC,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;CAC5E,CAAC,CAgHD"}
1
+ {"version":3,"file":"execute-target.d.ts","sourceRoot":"","sources":["../../src/node-types/execute-target.ts"],"names":[],"mappings":"AAgJA;;;;;;;;;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,CA0GD"}
@@ -1,58 +1,4 @@
1
- import { execSync } from 'node:child_process';
2
- function callCli(provider, prompt) {
3
- if (provider === 'claude-cli') {
4
- return execSync('claude -p --output-format text', {
5
- input: prompt,
6
- encoding: 'utf-8',
7
- stdio: ['pipe', 'pipe', 'pipe'],
8
- timeout: 120_000,
9
- }).trim();
10
- }
11
- if (provider === 'copilot-cli') {
12
- return execSync('copilot -p --silent --allow-all-tools', {
13
- input: prompt,
14
- encoding: 'utf-8',
15
- stdio: ['pipe', 'pipe', 'pipe'],
16
- timeout: 120_000,
17
- }).trim();
18
- }
19
- throw new Error(`Unknown CLI provider: ${provider}`);
20
- }
21
- async function callApiAsync(apiKey, model, maxTokens, systemPrompt, userPrompt) {
22
- const body = JSON.stringify({
23
- model, max_tokens: maxTokens, system: systemPrompt,
24
- messages: [{ role: 'user', content: userPrompt }],
25
- });
26
- const response = await fetch('https://api.anthropic.com/v1/messages', {
27
- method: 'POST',
28
- headers: {
29
- 'x-api-key': apiKey,
30
- 'anthropic-version': '2023-06-01',
31
- 'content-type': 'application/json',
32
- },
33
- body,
34
- });
35
- if (!response.ok) {
36
- const text = await response.text();
37
- throw new Error(`Anthropic API error ${response.status}: ${text.slice(0, 200)}`);
38
- }
39
- const json = await response.json();
40
- return json.content[0]?.text ?? '';
41
- }
42
- function parseJsonResponse(text) {
43
- let cleaned = text.trim();
44
- if (cleaned.startsWith('```')) {
45
- cleaned = cleaned.replace(/^```(?:json)?\s*\n?/, '').replace(/\n?```\s*$/, '');
46
- }
47
- try {
48
- return JSON.parse(cleaned);
49
- }
50
- catch { /* fallthrough */ }
51
- const match = cleaned.match(/\{[\s\S]*\}/);
52
- if (match)
53
- return JSON.parse(match[0]);
54
- throw new Error(`Failed to parse AI response as JSON: ${text.slice(0, 200)}`);
55
- }
1
+ import { callCli, callApi, parseJsonResponse } from '../bot/ai-client.js';
56
2
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
57
3
  async function buildWeaverPrompt() {
58
4
  const FALLBACK = 'You are Weaver, an expert AI companion for Flow Weaver workflows. Respond ONLY with valid JSON. No markdown, no code fences, no explanation outside the JSON structure.';
@@ -196,30 +142,22 @@ Return ONLY valid JSON. No markdown, no code fences, no explanation outside the
196
142
  *
197
143
  * @flowWeaver nodeType
198
144
  * @label Execute Target
199
- * @input projectDir [order:0] - Project root directory
200
- * @input config [order:1] - Config (JSON)
201
- * @input providerType [order:2] - Provider type
202
- * @input providerInfo [order:3] - Provider info (JSON)
203
- * @input targetPath [order:4] - Absolute path to target workflow
204
- * @output projectDir [order:0] - Project root directory (pass-through)
205
- * @output config [order:1] - Config (pass-through)
206
- * @output targetPath [order:2] - Target path (pass-through)
207
- * @output resultJson [order:3] - Workflow execution result (JSON)
145
+ * @input ctx [order:0] - Weaver context (JSON)
146
+ * @output ctx [order:0] - Weaver context with resultJson (JSON)
208
147
  * @output onSuccess [order:-2] - On Success
209
- * @output onFailure [order:-1] - On Failure
148
+ * @output onFailure [order:-1] [hidden] - On Failure
210
149
  */
211
- export async function weaverExecuteTarget(execute, projectDir, config, providerType, providerInfo, targetPath) {
150
+ export async function weaverExecuteTarget(execute, ctx) {
151
+ const context = JSON.parse(ctx);
152
+ const { env } = context;
153
+ const targetPath = context.targetPath;
212
154
  if (!execute) {
213
- return {
214
- onSuccess: true, onFailure: false,
215
- projectDir, config, targetPath,
216
- resultJson: JSON.stringify({ success: true, summary: 'Dry run', outcome: 'skipped' }),
217
- };
155
+ context.resultJson = JSON.stringify({ success: true, summary: 'Dry run', outcome: 'skipped' });
156
+ return { onSuccess: true, onFailure: false, ctx: JSON.stringify(context) };
218
157
  }
219
- const pInfo = JSON.parse(providerInfo);
220
- const cfg = JSON.parse(config);
158
+ const { config, providerInfo: pInfo } = env;
221
159
  const systemPrompt = await buildWeaverPrompt();
222
- const approvalSetting = cfg.approval ?? 'auto';
160
+ const approvalSetting = config.approval ?? 'auto';
223
161
  const approvalMode = typeof approvalSetting === 'string' ? approvalSetting : approvalSetting.mode;
224
162
  const agentChannel = {
225
163
  request: async (req) => {
@@ -242,7 +180,7 @@ export async function weaverExecuteTarget(execute, projectDir, config, providerT
242
180
  const userPrompt = `Context:\n${contextStr}\n\nInstructions:\n${req.prompt}`;
243
181
  let text;
244
182
  if (pInfo.type === 'anthropic') {
245
- text = await callApiAsync(pInfo.apiKey, pInfo.model ?? 'claude-sonnet-4-6', pInfo.maxTokens ?? 4096, systemPrompt, userPrompt);
183
+ text = await callApi(pInfo.apiKey, pInfo.model ?? 'claude-sonnet-4-6', pInfo.maxTokens ?? 4096, systemPrompt, userPrompt);
246
184
  }
247
185
  else {
248
186
  text = callCli(pInfo.type, systemPrompt + '\n\n' + userPrompt);
@@ -293,20 +231,14 @@ export async function weaverExecuteTarget(execute, projectDir, config, providerT
293
231
  functionName: execResult.functionName,
294
232
  executionTime: Number(elapsed),
295
233
  };
296
- return {
297
- onSuccess: ok, onFailure: !ok,
298
- projectDir, config, targetPath,
299
- resultJson: JSON.stringify(resultObj),
300
- };
234
+ context.resultJson = JSON.stringify(resultObj);
235
+ return { onSuccess: ok, onFailure: !ok, ctx: JSON.stringify(context) };
301
236
  }
302
237
  catch (err) {
303
238
  const msg = err instanceof Error ? err.message : String(err);
304
239
  console.log(`\x1b[33m! Error: ${msg}\x1b[0m`);
305
- return {
306
- onSuccess: false, onFailure: true,
307
- projectDir, config, targetPath,
308
- resultJson: JSON.stringify({ success: false, summary: msg, outcome: 'error' }),
309
- };
240
+ context.resultJson = JSON.stringify({ success: false, summary: msg, outcome: 'error' });
241
+ return { onSuccess: false, onFailure: true, ctx: JSON.stringify(context) };
310
242
  }
311
243
  }
312
244
  //# sourceMappingURL=execute-target.js.map