@synergenius/flow-weaver-pack-weaver 0.9.129 → 0.9.131

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.
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Single source of truth for plan step operation names.
3
+ *
4
+ * ALL operation names use underscore convention (e.g. write_file, not write-file).
5
+ * The step executor normalizes hyphens to underscores for backward compatibility.
6
+ *
7
+ * Import from here instead of hardcoding strings.
8
+ */
9
+ export declare const OP_WRITE_FILE = "write_file";
10
+ export declare const OP_READ_FILE = "read_file";
11
+ export declare const OP_PATCH_FILE = "patch_file";
12
+ export declare const OP_LIST_FILES = "list_files";
13
+ export declare const OP_CREATE_WORKFLOW = "create_workflow";
14
+ export declare const OP_MODIFY_SOURCE = "modify_source";
15
+ export declare const OP_IMPLEMENT_NODE = "implement_node";
16
+ export declare const OP_RUN_SHELL = "run_shell";
17
+ export declare const OP_VALIDATE = "validate";
18
+ export declare const OP_TSC_CHECK = "tsc_check";
19
+ export declare const OP_RUN_TESTS = "run_tests";
20
+ export declare const OP_TASK_CREATE = "task_create";
21
+ export declare const OP_RESPOND = "respond";
22
+ export declare const OP_NO_OP = "no_op";
23
+ export declare const OP_NOOP = "noop";
24
+ export declare const OP_DONE = "done";
25
+ export declare const OP_COMPLETE = "complete";
26
+ /** Operations that the create_plan tool can use. Listed in tool descriptions. */
27
+ export declare const PLAN_OPERATIONS: readonly ["write_file", "read_file", "patch_file", "list_files", "run_shell", "validate", "task_create", "respond"];
28
+ /** Operations that skip execution (text-only responses). */
29
+ export declare const PASSTHROUGH_OPERATIONS: Set<string>;
30
+ /** All file operation names for the system prompt. */
31
+ export declare const FILE_OPERATIONS: readonly ["read_file", "write_file", "patch_file", "list_files", "run_shell", "validate", "tsc_check", "run_tests"];
32
+ /** Normalize operation name: convert hyphens to underscores for backward compat. */
33
+ export declare function normalizeOperation(op: string): string;
34
+ //# sourceMappingURL=operations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../../src/bot/operations.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,eAAO,MAAM,aAAa,eAAe,CAAC;AAC1C,eAAO,MAAM,YAAY,cAAc,CAAC;AACxC,eAAO,MAAM,aAAa,eAAe,CAAC;AAC1C,eAAO,MAAM,aAAa,eAAe,CAAC;AAC1C,eAAO,MAAM,kBAAkB,oBAAoB,CAAC;AACpD,eAAO,MAAM,gBAAgB,kBAAkB,CAAC;AAChD,eAAO,MAAM,iBAAiB,mBAAmB,CAAC;AAMlD,eAAO,MAAM,YAAY,cAAc,CAAC;AACxC,eAAO,MAAM,WAAW,aAAa,CAAC;AACtC,eAAO,MAAM,YAAY,cAAc,CAAC;AACxC,eAAO,MAAM,YAAY,cAAc,CAAC;AAMxC,eAAO,MAAM,cAAc,gBAAgB,CAAC;AAM5C,eAAO,MAAM,UAAU,YAAY,CAAC;AACpC,eAAO,MAAM,QAAQ,UAAU,CAAC;AAChC,eAAO,MAAM,OAAO,SAAS,CAAC;AAC9B,eAAO,MAAM,OAAO,SAAS,CAAC;AAC9B,eAAO,MAAM,WAAW,aAAa,CAAC;AAMtC,iFAAiF;AACjF,eAAO,MAAM,eAAe,qHASlB,CAAC;AAEX,4DAA4D;AAC5D,eAAO,MAAM,sBAAsB,aAMjC,CAAC;AAEH,sDAAsD;AACtD,eAAO,MAAM,eAAe,qHASlB,CAAC;AAEX,oFAAoF;AACpF,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAErD"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Single source of truth for plan step operation names.
3
+ *
4
+ * ALL operation names use underscore convention (e.g. write_file, not write-file).
5
+ * The step executor normalizes hyphens to underscores for backward compatibility.
6
+ *
7
+ * Import from here instead of hardcoding strings.
8
+ */
9
+ // ---------------------------------------------------------------------------
10
+ // File operations
11
+ // ---------------------------------------------------------------------------
12
+ export const OP_WRITE_FILE = 'write_file';
13
+ export const OP_READ_FILE = 'read_file';
14
+ export const OP_PATCH_FILE = 'patch_file';
15
+ export const OP_LIST_FILES = 'list_files';
16
+ export const OP_CREATE_WORKFLOW = 'create_workflow';
17
+ export const OP_MODIFY_SOURCE = 'modify_source';
18
+ export const OP_IMPLEMENT_NODE = 'implement_node';
19
+ // ---------------------------------------------------------------------------
20
+ // Shell & validation
21
+ // ---------------------------------------------------------------------------
22
+ export const OP_RUN_SHELL = 'run_shell';
23
+ export const OP_VALIDATE = 'validate';
24
+ export const OP_TSC_CHECK = 'tsc_check';
25
+ export const OP_RUN_TESTS = 'run_tests';
26
+ // ---------------------------------------------------------------------------
27
+ // Task management
28
+ // ---------------------------------------------------------------------------
29
+ export const OP_TASK_CREATE = 'task_create';
30
+ // ---------------------------------------------------------------------------
31
+ // Passthrough (no execution needed)
32
+ // ---------------------------------------------------------------------------
33
+ export const OP_RESPOND = 'respond';
34
+ export const OP_NO_OP = 'no_op';
35
+ export const OP_NOOP = 'noop';
36
+ export const OP_DONE = 'done';
37
+ export const OP_COMPLETE = 'complete';
38
+ // ---------------------------------------------------------------------------
39
+ // Grouped exports for consumers
40
+ // ---------------------------------------------------------------------------
41
+ /** Operations that the create_plan tool can use. Listed in tool descriptions. */
42
+ export const PLAN_OPERATIONS = [
43
+ OP_WRITE_FILE,
44
+ OP_READ_FILE,
45
+ OP_PATCH_FILE,
46
+ OP_LIST_FILES,
47
+ OP_RUN_SHELL,
48
+ OP_VALIDATE,
49
+ OP_TASK_CREATE,
50
+ OP_RESPOND,
51
+ ];
52
+ /** Operations that skip execution (text-only responses). */
53
+ export const PASSTHROUGH_OPERATIONS = new Set([
54
+ OP_RESPOND,
55
+ OP_NO_OP,
56
+ OP_NOOP,
57
+ OP_DONE,
58
+ OP_COMPLETE,
59
+ ]);
60
+ /** All file operation names for the system prompt. */
61
+ export const FILE_OPERATIONS = [
62
+ OP_READ_FILE,
63
+ OP_WRITE_FILE,
64
+ OP_PATCH_FILE,
65
+ OP_LIST_FILES,
66
+ OP_RUN_SHELL,
67
+ OP_VALIDATE,
68
+ OP_TSC_CHECK,
69
+ OP_RUN_TESTS,
70
+ ];
71
+ /** Normalize operation name: convert hyphens to underscores for backward compat. */
72
+ export function normalizeOperation(op) {
73
+ return op.replace(/-/g, '_');
74
+ }
75
+ //# sourceMappingURL=operations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations.js","sourceRoot":"","sources":["../../src/bot/operations.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E,MAAM,CAAC,MAAM,aAAa,GAAG,YAAY,CAAC;AAC1C,MAAM,CAAC,MAAM,YAAY,GAAG,WAAW,CAAC;AACxC,MAAM,CAAC,MAAM,aAAa,GAAG,YAAY,CAAC;AAC1C,MAAM,CAAC,MAAM,aAAa,GAAG,YAAY,CAAC;AAC1C,MAAM,CAAC,MAAM,kBAAkB,GAAG,iBAAiB,CAAC;AACpD,MAAM,CAAC,MAAM,gBAAgB,GAAG,eAAe,CAAC;AAChD,MAAM,CAAC,MAAM,iBAAiB,GAAG,gBAAgB,CAAC;AAElD,8EAA8E;AAC9E,qBAAqB;AACrB,8EAA8E;AAE9E,MAAM,CAAC,MAAM,YAAY,GAAG,WAAW,CAAC;AACxC,MAAM,CAAC,MAAM,WAAW,GAAG,UAAU,CAAC;AACtC,MAAM,CAAC,MAAM,YAAY,GAAG,WAAW,CAAC;AACxC,MAAM,CAAC,MAAM,YAAY,GAAG,WAAW,CAAC;AAExC,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E,MAAM,CAAC,MAAM,cAAc,GAAG,aAAa,CAAC;AAE5C,8EAA8E;AAC9E,oCAAoC;AACpC,8EAA8E;AAE9E,MAAM,CAAC,MAAM,UAAU,GAAG,SAAS,CAAC;AACpC,MAAM,CAAC,MAAM,QAAQ,GAAG,OAAO,CAAC;AAChC,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAAC;AAC9B,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAAC;AAC9B,MAAM,CAAC,MAAM,WAAW,GAAG,UAAU,CAAC;AAEtC,8EAA8E;AAC9E,gCAAgC;AAChC,8EAA8E;AAE9E,iFAAiF;AACjF,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,aAAa;IACb,YAAY;IACZ,aAAa;IACb,aAAa;IACb,YAAY;IACZ,WAAW;IACX,cAAc;IACd,UAAU;CACF,CAAC;AAEX,4DAA4D;AAC5D,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC;IAC5C,UAAU;IACV,QAAQ;IACR,OAAO;IACP,OAAO;IACP,WAAW;CACZ,CAAC,CAAC;AAEH,sDAAsD;AACtD,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,YAAY;IACZ,aAAa;IACb,aAAa;IACb,aAAa;IACb,YAAY;IACZ,WAAW;IACX,YAAY;IACZ,YAAY;CACJ,CAAC;AAEX,oFAAoF;AACpF,MAAM,UAAU,kBAAkB,CAAC,EAAU;IAC3C,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAC/B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"step-executor.d.ts","sourceRoot":"","sources":["../../src/bot/step-executor.ts"],"names":[],"mappings":"AAyCA,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,GACjB,OAAO,CAAC,UAAU,CAAC,CAgPrB"}
1
+ {"version":3,"file":"step-executor.d.ts","sourceRoot":"","sources":["../../src/bot/step-executor.ts"],"names":[],"mappings":"AA4CA,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,GACjB,OAAO,CAAC,UAAU,CAAC,CAqRrB"}
@@ -4,6 +4,8 @@ import * as os from 'node:os';
4
4
  import { execSync } from 'node:child_process';
5
5
  import { runCommand } from '@synergenius/flow-weaver';
6
6
  import { BLOCKED_SHELL_PATTERNS } from './safety.js';
7
+ import { OP_WRITE_FILE, OP_READ_FILE, OP_PATCH_FILE, OP_LIST_FILES, OP_RUN_SHELL, OP_TASK_CREATE, OP_RESPOND, OP_NO_OP, OP_NOOP, OP_DONE, OP_COMPLETE, OP_CREATE_WORKFLOW, OP_MODIFY_SOURCE, OP_IMPLEMENT_NODE, normalizeOperation } from './operations.js';
8
+ import { TaskStore } from './task-store.js';
7
9
  // Use the user's login shell (same as terminal panel) so profile-managed
8
10
  // tools like nvm/npm, pyenv, rbenv etc. are available.
9
11
  const LOGIN_SHELL = os.platform() === 'win32'
@@ -22,7 +24,7 @@ const MAX_FILES_PER_PLAN = 50;
22
24
  const SHELL_TIMEOUT = 60_000;
23
25
  /** Maximum file size for read/patch operations (1MB). */
24
26
  const MAX_READ_SIZE = 1_048_576;
25
- /** Maximum files returned by list-files. */
27
+ /** Maximum files returned by list_files. */
26
28
  const MAX_LIST_FILES = 1000;
27
29
  // Shell blocklist imported from safety.ts — single source of truth.
28
30
  // Do NOT add patterns here; add them in safety.ts instead.
@@ -70,7 +72,7 @@ function checkWriteSafety(filePath, content) {
70
72
  return {
71
73
  allowed: false,
72
74
  reason: `Refusing to write empty content to ${path.basename(filePath)}. ` +
73
- `Use read-file first, then write the complete modified file back.`,
75
+ `Use read_file first, then write the complete modified file back.`,
74
76
  };
75
77
  }
76
78
  // Guard 2: Per-plan file cap
@@ -90,7 +92,7 @@ function checkWriteSafety(filePath, content) {
90
92
  allowed: false,
91
93
  reason: `Refusing to write ${path.basename(filePath)}: new content (${newSize}B) ` +
92
94
  `is ${shrinkPct}% smaller than existing (${existingSize}B). ` +
93
- `Use read-file first, make targeted changes, write complete file back.`,
95
+ `Use read_file first, make targeted changes, write complete file back.`,
94
96
  };
95
97
  }
96
98
  }
@@ -113,14 +115,16 @@ function checkShellSafety(command) {
113
115
  export async function executeStep(step, projectDir) {
114
116
  const args = step.args;
115
117
  const file = args.file;
116
- switch (step.operation) {
118
+ // Normalize operation names: accept both hyphens and underscores
119
+ const operation = normalizeOperation(step.operation);
120
+ switch (operation) {
117
121
  // -----------------------------------------------------------------
118
122
  // File write operations (with safety guards)
119
123
  // -----------------------------------------------------------------
120
- case 'write-file':
121
- case 'create-workflow':
122
- case 'modify-source':
123
- case 'implement-node': {
124
+ case OP_WRITE_FILE:
125
+ case OP_CREATE_WORKFLOW:
126
+ case OP_MODIFY_SOURCE:
127
+ case OP_IMPLEMENT_NODE: {
124
128
  if (!file) {
125
129
  return { blocked: true, blockReason: `${step.operation} requires a "file" argument.` };
126
130
  }
@@ -140,9 +144,9 @@ export async function executeStep(step, projectDir) {
140
144
  // -----------------------------------------------------------------
141
145
  // Patch file: surgical find-and-replace (no full rewrite needed)
142
146
  // -----------------------------------------------------------------
143
- case 'patch-file': {
147
+ case OP_PATCH_FILE: {
144
148
  if (!file) {
145
- return { blocked: true, blockReason: 'patch-file requires a "file" argument.' };
149
+ return { blocked: true, blockReason: 'patch_file requires a "file" argument.' };
146
150
  }
147
151
  assertSafePath(file, projectDir);
148
152
  const filePath = path.resolve(projectDir, file);
@@ -152,7 +156,7 @@ export async function executeStep(step, projectDir) {
152
156
  // File size guard
153
157
  const fileSize = fs.statSync(filePath).size;
154
158
  if (fileSize > MAX_READ_SIZE) {
155
- return { blocked: true, blockReason: `File too large for patch-file (${fileSize} bytes, max ${MAX_READ_SIZE}).` };
159
+ return { blocked: true, blockReason: `File too large for patch_file (${fileSize} bytes, max ${MAX_READ_SIZE}).` };
156
160
  }
157
161
  let content = fs.readFileSync(filePath, 'utf-8');
158
162
  const patches = args.patches ?? [];
@@ -160,7 +164,7 @@ export async function executeStep(step, projectDir) {
160
164
  patches.push({ find: args.find, replace: args.replace });
161
165
  }
162
166
  if (!patches.length) {
163
- return { blocked: true, blockReason: 'patch-file requires "patches" array or "find"+"replace" args.' };
167
+ return { blocked: true, blockReason: 'patch_file requires "patches" array or "find"+"replace" args.' };
164
168
  }
165
169
  let applied = 0;
166
170
  const notFound = [];
@@ -201,7 +205,7 @@ export async function executeStep(step, projectDir) {
201
205
  // -----------------------------------------------------------------
202
206
  // Read file: return content for AI context
203
207
  // -----------------------------------------------------------------
204
- case 'read-file': {
208
+ case OP_READ_FILE: {
205
209
  if (!file) {
206
210
  return { output: '' };
207
211
  }
@@ -217,7 +221,7 @@ export async function executeStep(step, projectDir) {
217
221
  return { output: `"${file}" is a directory. Contents:\n${entries.join('\n')}` };
218
222
  }
219
223
  if (stat.size > MAX_READ_SIZE) {
220
- return { output: `File too large to read (${stat.size} bytes, max ${MAX_READ_SIZE}). Use run-shell with head/tail instead.` };
224
+ return { output: `File too large to read (${stat.size} bytes, max ${MAX_READ_SIZE}). Use run_shell with head/tail instead.` };
221
225
  }
222
226
  const content = fs.readFileSync(filePath, 'utf-8');
223
227
  return { file: filePath, output: content };
@@ -230,10 +234,10 @@ export async function executeStep(step, projectDir) {
230
234
  // -----------------------------------------------------------------
231
235
  // Shell command: run arbitrary command with safety guards
232
236
  // -----------------------------------------------------------------
233
- case 'run-shell': {
237
+ case OP_RUN_SHELL: {
234
238
  const command = args.command ?? '';
235
239
  if (!command.trim()) {
236
- return { blocked: true, blockReason: 'run-shell requires a "command" argument.' };
240
+ return { blocked: true, blockReason: 'run_shell requires a "command" argument.' };
237
241
  }
238
242
  const shellGuard = checkShellSafety(command);
239
243
  if (!shellGuard.allowed) {
@@ -268,7 +272,7 @@ export async function executeStep(step, projectDir) {
268
272
  // -----------------------------------------------------------------
269
273
  // List files: glob-like directory listing
270
274
  // -----------------------------------------------------------------
271
- case 'list-files': {
275
+ case OP_LIST_FILES: {
272
276
  const dir = args.directory ?? args.dir ?? '.';
273
277
  const pattern = args.pattern ?? '';
274
278
  assertSafePath(dir, projectDir);
@@ -312,20 +316,51 @@ export async function executeStep(step, projectDir) {
312
316
  return { files: files.map(f => path.join(dir, f)), output: files.join('\n') };
313
317
  }
314
318
  // -----------------------------------------------------------------
315
- // Flow-weaver CLI commands (via programmatic API)
319
+ // Task management create subtasks for recursive swarm execution
316
320
  // -----------------------------------------------------------------
317
- case 'respond':
318
- case 'no-op':
319
- case 'noop':
320
- case 'done':
321
- case 'complete': {
321
+ case OP_TASK_CREATE: {
322
+ const title = args.title ?? '';
323
+ if (!title)
324
+ return { blocked: true, blockReason: 'task_create requires a "title" argument.' };
325
+ const store = new TaskStore(projectDir);
326
+ const input = {
327
+ title,
328
+ description: args.description ?? title,
329
+ complexity: args.complexity ?? 'simple',
330
+ priority: args.priority ?? 0,
331
+ parentId: args.parentId,
332
+ dependsOn: args.dependsOn ?? [],
333
+ };
334
+ // Support inline subtasks
335
+ const subtasksArg = args.subtasks;
336
+ if (subtasksArg?.length) {
337
+ input.subtasks = subtasksArg.map((s) => ({
338
+ title: s.title ?? '',
339
+ description: s.description ?? '',
340
+ complexity: s.complexity ?? 'simple',
341
+ priority: s.priority ?? 0,
342
+ }));
343
+ }
344
+ const task = await store.create(input);
345
+ const subtasks = task.isParent ? await store.getSubtasks(task.id) : [];
346
+ const ids = [task.id, ...subtasks.map(s => s.id)];
347
+ return { output: `Created task "${title}" (${task.id})${subtasks.length ? ` with ${subtasks.length} subtasks` : ''}. IDs: ${ids.join(', ')}` };
348
+ }
349
+ // -----------------------------------------------------------------
350
+ // Passthrough operations
351
+ // -----------------------------------------------------------------
352
+ case OP_RESPOND:
353
+ case OP_NO_OP:
354
+ case OP_NOOP:
355
+ case OP_DONE:
356
+ case OP_COMPLETE: {
322
357
  // Passthrough operations — the plan already contains the answer or
323
358
  // there's nothing to execute. Return the response text as output.
324
359
  const response = args.response ?? args.text ?? args.description ?? '';
325
360
  return { output: response || undefined };
326
361
  }
327
362
  default: {
328
- const result = await runCommand(step.operation, { ...args, cwd: projectDir });
363
+ const result = await runCommand(operation, { ...args, cwd: projectDir });
329
364
  return {
330
365
  file: result.files?.[0],
331
366
  files: result.files,
@@ -1 +1 @@
1
- {"version":3,"file":"step-executor.js","sourceRoot":"","sources":["../../src/bot/step-executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAErD,yEAAyE;AACzE,uDAAuD;AACvD,MAAM,WAAW,GAAG,EAAE,CAAC,QAAQ,EAAE,KAAK,OAAO;IAC3C,CAAC,CAAC,SAAS;IACX,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,WAAW,CAAC;AAErC,8EAA8E;AAC9E,oBAAoB;AACpB,8EAA8E;AAE9E,gFAAgF;AAChF,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAE7B,8DAA8D;AAC9D,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAElC,oEAAoE;AACpE,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAE9B,iDAAiD;AACjD,MAAM,aAAa,GAAG,MAAM,CAAC;AAE7B,yDAAyD;AACzD,MAAM,aAAa,GAAG,SAAS,CAAC;AAEhC,4CAA4C;AAC5C,MAAM,cAAc,GAAG,IAAI,CAAC;AAE5B,oEAAoE;AACpE,2DAA2D;AAE3D,uEAAuE;AACvE,IAAI,oBAAoB,GAAG,CAAC,CAAC;AAE7B,gDAAgD;AAChD,MAAM,UAAU,oBAAoB;IAClC,oBAAoB,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED,8EAA8E;AAC9E,cAAc;AACd,8EAA8E;AAE9E,SAAS,cAAc,CAAC,QAAgB,EAAE,UAAkB;IAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACpD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC9C,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;QAC/E,MAAM,IAAI,KAAK,CACb,4BAA4B,QAAQ,uCAAuC,CAC5E,CAAC;IACJ,CAAC;IAED,oEAAoE;IACpE,wEAAwE;IACxE,mEAAmE;IACnE,IAAI,SAAS,GAAG,QAAQ,CAAC;IACzB,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,SAAS,KAAK,YAAY,EAAE,CAAC;QAC/D,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;YAC5C,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;YAC/C,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBACvE,MAAM,IAAI,KAAK,CACb,4BAA4B,QAAQ,mDAAmD,CACxF,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;gBAAE,MAAM,GAAG,CAAC;YAC9E,mDAAmD;YACnD,MAAM,IAAI,KAAK,CACb,4BAA4B,QAAQ,iCAAiC,CACtE,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAWD,SAAS,gBAAgB,CAAC,QAAgB,EAAE,OAAe;IACzD,yBAAyB;IACzB,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5C,OAAO;YACL,OAAO,EAAE,KAAK;YACd,MAAM,EACJ,sCAAsC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI;gBACjE,kEAAkE;SACrE,CAAC;IACJ,CAAC;IAED,6BAA6B;IAC7B,IAAI,oBAAoB,IAAI,kBAAkB,EAAE,CAAC;QAC/C,OAAO;YACL,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,6BAA6B,kBAAkB,mBAAmB;SAC3E,CAAC;IACJ,CAAC;IAED,4BAA4B;IAC5B,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,MAAM,YAAY,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;QAChD,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACpD,IAAI,YAAY,GAAG,qBAAqB,IAAI,OAAO,GAAG,YAAY,GAAG,gBAAgB,EAAE,CAAC;YACtF,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,YAAY,CAAC,GAAG,GAAG,CAAC,CAAC;YACjE,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,MAAM,EACJ,qBAAqB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,kBAAkB,OAAO,KAAK;oBAC1E,MAAM,SAAS,4BAA4B,YAAY,MAAM;oBAC7D,uEAAuE;aAC1E,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC3B,CAAC;AAED,8EAA8E;AAC9E,eAAe;AACf,8EAA8E;AAE9E,SAAS,gBAAgB,CAAC,OAAe;IACvC,KAAK,MAAM,OAAO,IAAI,sBAAsB,EAAE,CAAC;QAC7C,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1B,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,oDAAoD,OAAO,CAAC,MAAM,GAAG;aAC9E,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC3B,CAAC;AAeD,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,IAA0D,EAC1D,UAAkB;IAElB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACvB,MAAM,IAAI,GAAG,IAAI,CAAC,IAA0B,CAAC;IAE7C,QAAQ,IAAI,CAAC,SAAS,EAAE,CAAC;QACvB,oEAAoE;QACpE,6CAA6C;QAC7C,oEAAoE;QACpE,KAAK,YAAY,CAAC;QAClB,KAAK,iBAAiB,CAAC;QACvB,KAAK,eAAe,CAAC;QACrB,KAAK,gBAAgB,CAAC,CAAC,CAAC;YACtB,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,SAAS,8BAA8B,EAAE,CAAC;YACzF,CAAC;YACD,cAAc,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YAChD,MAAM,OAAO,GAAI,IAAI,CAAC,OAAkB,IAAK,IAAI,CAAC,IAAe,IAAI,EAAE,CAAC;YAExE,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAClD,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;gBACnB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;YACtE,CAAC;YAED,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1D,MAAM,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACxC,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YAC7C,oBAAoB,EAAE,CAAC;YACvB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC;QAC/C,CAAC;QAED,oEAAoE;QACpE,iEAAiE;QACjE,oEAAoE;QACpE,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,wCAAwC,EAAE,CAAC;YAClF,CAAC;YACD,cAAc,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YAEhD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC7B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,mBAAmB,IAAI,EAAE,EAAE,CAAC;YACnE,CAAC;YAED,kBAAkB;YAClB,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;YAC5C,IAAI,QAAQ,GAAG,aAAa,EAAE,CAAC;gBAC7B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,kCAAkC,QAAQ,eAAe,aAAa,IAAI,EAAE,CAAC;YACpH,CAAC;YAED,IAAI,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACjD,MAAM,OAAO,GAAI,IAAI,CAAC,OAAoD,IAAI,EAAE,CAAC;YAEjF,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC/D,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAc,EAAE,OAAO,EAAE,IAAI,CAAC,OAAiB,EAAE,CAAC,CAAC;YAC/E,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBACpB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,+DAA+D,EAAE,CAAC;YACzG,CAAC;YAED,IAAI,OAAO,GAAG,CAAC,CAAC;YAChB,MAAM,QAAQ,GAAa,EAAE,CAAC;YAE9B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;oBACjC,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,2BAA2B;oBACpF,OAAO,EAAE,CAAC;gBACZ,CAAC;qBAAM,CAAC;oBACN,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;gBAC7C,CAAC;YACH,CAAC;YAED,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;gBAClB,OAAO;oBACL,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE,iDAAiD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;iBAC/E,CAAC;YACJ,CAAC;YAED,kEAAkE;YAClE,MAAM,YAAY,GAAG,QAAQ,CAAC;YAC9B,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACpD,IAAI,YAAY,GAAG,qBAAqB,IAAI,OAAO,GAAG,YAAY,GAAG,gBAAgB,EAAE,CAAC;gBACtF,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,YAAY,CAAC,GAAG,GAAG,CAAC,CAAC;gBACjE,OAAO;oBACL,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,IAAI;oBACb,WAAW,EACT,qBAAqB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,OAAO,KAAK;wBACrE,MAAM,SAAS,4BAA4B,YAAY,MAAM;wBAC7D,uEAAuE;iBAC1E,CAAC;YACJ,CAAC;YAED,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YAC7C,oBAAoB,EAAE,CAAC;YAEvB,MAAM,OAAO,GAAG,WAAW,OAAO,IAAI,OAAO,CAAC,MAAM,UAAU;gBAC5D,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,gBAAgB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACjE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;QAC7C,CAAC;QAED,oEAAoE;QACpE,2CAA2C;QAC3C,oEAAoE;QACpE,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;YACxB,CAAC;YACD,cAAc,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YAChD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC7B,OAAO,EAAE,MAAM,EAAE,mBAAmB,IAAI,EAAE,EAAE,CAAC;YAC/C,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBACnC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;oBACvB,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;oBAChE,OAAO,EAAE,MAAM,EAAE,IAAI,IAAI,gCAAgC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gBAClF,CAAC;gBACD,IAAI,IAAI,CAAC,IAAI,GAAG,aAAa,EAAE,CAAC;oBAC9B,OAAO,EAAE,MAAM,EAAE,2BAA2B,IAAI,CAAC,IAAI,eAAe,aAAa,0CAA0C,EAAE,CAAC;gBAChI,CAAC;gBACD,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBACnD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;YAC7C,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7D,OAAO,EAAE,MAAM,EAAE,uBAAuB,IAAI,MAAM,GAAG,EAAE,EAAE,CAAC;YAC5D,CAAC;QACH,CAAC;QAED,oEAAoE;QACpE,0DAA0D;QAC1D,oEAAoE;QACpE,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,MAAM,OAAO,GAAI,IAAI,CAAC,OAAkB,IAAI,EAAE,CAAC;YAC/C,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;gBACpB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,0CAA0C,EAAE,CAAC;YACpF,CAAC;YAED,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAC7C,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;gBACxB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC;YAC3D,CAAC;YAED,IAAI,CAAC;gBACH,yFAAyF;gBACzF,kEAAkE;gBAClE,MAAM,cAAc,GAAG,EAAE,CAAC,QAAQ,EAAE,KAAK,OAAO;oBAC9C,CAAC,CAAC,OAAO;oBACT,CAAC,CAAC,GAAG,WAAW,UAAU,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;gBACtD,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,EAAE;oBACtC,GAAG,EAAE,UAAU;oBACf,QAAQ,EAAE,OAAO;oBACjB,OAAO,EAAE,aAAa;oBACtB,SAAS,EAAE,IAAI,GAAG,IAAI,EAAE,iBAAiB;oBACzC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;iBAChC,CAAC,CAAC;gBACH,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;YACnC,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,+DAA+D;gBAC/D,MAAM,OAAO,GAAG,GAA4D,CAAC;gBAC7E,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC7C,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC7C,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC7D,OAAO;oBACL,MAAM,EAAE,QAAQ,IAAI,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;iBACvE,CAAC;YACJ,CAAC;QACH,CAAC;QAED,oEAAoE;QACpE,0CAA0C;QAC1C,oEAAoE;QACpE,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,MAAM,GAAG,GAAI,IAAI,CAAC,SAAoB,IAAK,IAAI,CAAC,GAAc,IAAI,GAAG,CAAC;YACtE,MAAM,OAAO,GAAI,IAAI,CAAC,OAAkB,IAAI,EAAE,CAAC;YAC/C,cAAc,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;YAChC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;YAEhD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC9B,OAAO,EAAE,MAAM,EAAE,wBAAwB,GAAG,EAAE,EAAE,CAAC;YACnD,CAAC;YAED,IAAI,OAAiB,CAAC;YACtB,IAAI,CAAC;gBACH,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAa,CAAC;YAC1F,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7D,OAAO,EAAE,MAAM,EAAE,4BAA4B,GAAG,MAAM,GAAG,EAAE,EAAE,CAAC;YAChE,CAAC;YACD,IAAI,KAAK,GAAG,OAAO;iBAChB,MAAM,CAAC,CAAC,CAAC,EAAE;gBACV,IAAI,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;oBAAE,OAAO,KAAK,CAAC;gBACnE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;gBACrC,IAAI,CAAC;oBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC;oBAAC,OAAO,KAAK,CAAC;gBAAC,CAAC;YACpE,CAAC,CAAC;iBACD,IAAI,EAAE,CAAC;YAEV,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC;oBACH,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC;oBAClC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3C,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,EAAE,MAAM,EAAE,0BAA0B,OAAO,EAAE,EAAE,CAAC;gBACzD,CAAC;YACH,CAAC;YAED,IAAI,KAAK,CAAC,MAAM,GAAG,cAAc,EAAE,CAAC;gBAClC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;YACzC,CAAC;YAED,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAChF,CAAC;QAED,oEAAoE;QACpE,kDAAkD;QAClD,oEAAoE;QACpE,KAAK,SAAS,CAAC;QACf,KAAK,OAAO,CAAC;QACb,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM,CAAC;QACZ,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,mEAAmE;YACnE,kEAAkE;YAClE,MAAM,QAAQ,GAAI,IAAI,CAAC,QAAmB,IAAK,IAAI,CAAC,IAAe,IAAK,IAAI,CAAC,WAAsB,IAAI,EAAE,CAAC;YAC1G,OAAO,EAAE,MAAM,EAAE,QAAQ,IAAI,SAAS,EAAE,CAAC;QAC3C,CAAC;QAED,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC;YAC9E,OAAO;gBACL,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBACvB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;aAC1F,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"step-executor.js","sourceRoot":"","sources":["../../src/bot/step-executor.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"system-prompt.d.ts","sourceRoot":"","sources":["../../src/bot/system-prompt.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAuBH,UAAU,aAAa;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAClE;AAsDD,qFAAqF;AACrF,eAAO,MAAM,eAAe,2EAA4E,CAAC;AACzG,MAAM,MAAM,aAAa,GAAG,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;AAE3D,qDAAqD;AACrD,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;CACvC;AAmID,wBAAsB,iBAAiB,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAyBtF;AA0CD,wBAAgB,oBAAoB,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,aAAa,EAAE,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,GAAG,CAAC,aAAa,CAAC,GAAG,MAAM,CA8BvJ"}
1
+ {"version":3,"file":"system-prompt.d.ts","sourceRoot":"","sources":["../../src/bot/system-prompt.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAyBH,UAAU,aAAa;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAClE;AAsDD,qFAAqF;AACrF,eAAO,MAAM,eAAe,2EAA4E,CAAC;AACzG,MAAM,MAAM,aAAa,GAAG,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;AAE3D,qDAAqD;AACrD,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;CACvC;AAoID,wBAAsB,iBAAiB,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAyBtF;AA0CD,wBAAgB,oBAAoB,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,aAAa,EAAE,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,GAAG,CAAC,aAAa,CAAC,GAAG,MAAM,CA8BvJ"}
@@ -2,6 +2,7 @@
2
2
  * Builds the Weaver expert system prompt from flow-weaver's doc-metadata.
3
3
  * This ensures Weaver's knowledge stays in sync with the installed flow-weaver version.
4
4
  */
5
+ import { FILE_OPERATIONS, OP_TASK_CREATE, OP_PATCH_FILE, OP_WRITE_FILE } from './operations.js';
5
6
  let cachedPrompt = null;
6
7
  function formatAnnotations(annotations) {
7
8
  // Group by category, show syntax + description
@@ -139,10 +140,11 @@ When stabilize mode is active, only fix-up operations are allowed.`);
139
140
  USE TOOLS to complete tasks. Do NOT describe what you would do — actually do it by calling tools.
140
141
 
141
142
  ### File tools
142
- - read-file, write-file, patch-file, list-files, run-shell, validate, tsc-check, run-tests
143
+ - ${FILE_OPERATIONS.join(', ')}
143
144
 
144
145
  ### Task management tools
145
- - task_create, task_list, task_get, task_update
146
+ - ${OP_TASK_CREATE} (args: title, description, complexity, subtasks[]) — create swarm subtasks for parallel execution
147
+ - task_list, task_get, task_update — query and update existing tasks
146
148
 
147
149
  ### Knowledge tools
148
150
  - learn(key, value), recall(query)
@@ -153,7 +155,7 @@ USE TOOLS to complete tasks. Do NOT describe what you would do — actually do i
153
155
  ### Rules
154
156
  - Always validate BEFORE and AFTER patching
155
157
  - Always read a file before patching it
156
- - Use patch-file for modifications, write-file only for new files
158
+ - Use ${OP_PATCH_FILE} for modifications, ${OP_WRITE_FILE} only for new files
157
159
  - Be concise — let tool results speak`);
158
160
  }
159
161
  parts.push(`## Teaching
@@ -185,23 +187,23 @@ export async function buildSystemPrompt(sections) {
185
187
  function formatBotOperations(cliCommands) {
186
188
  const packOps = [
187
189
  '## File Operations',
188
- '- create-workflow: Create a new workflow file. args: { file, content }',
189
- '- implement-node: Write a node type implementation. args: { file, content }',
190
- '- write-file: Write a file. args: { file, content }. Content must be the COMPLETE file.',
191
- '- read-file: Read a file and return its content. args: { file }',
192
- '- patch-file: Surgical find-and-replace edits. args: { file, patches: [{ find: "old text", replace: "new text" }] }. PREFERRED for modifying existing files — no need to rewrite the entire file.',
193
- '- list-files: List files in a directory. args: { directory, pattern? } (pattern is regex)',
190
+ '- create_workflow: Create a new workflow file. args: { file, content }',
191
+ '- implement_node: Write a node type implementation. args: { file, content }',
192
+ '- write_file: Write a file. args: { file, content }. Content must be the COMPLETE file.',
193
+ '- read_file: Read a file and return its content. args: { file }',
194
+ '- patch_file: Surgical find-and-replace edits. args: { file, patches: [{ find: "old text", replace: "new text" }] }. PREFERRED for modifying existing files — no need to rewrite the entire file.',
195
+ '- list_files: List files in a directory. args: { directory, pattern? } (pattern is regex)',
194
196
  '',
195
197
  '## Shell Commands',
196
- '- run-shell: Execute a shell command and return output. args: { command }. Use for: npx vitest, git status, grep, find, etc.',
198
+ '- run_shell: Execute a shell command and return output. args: { command }. Use for: npx vitest, git status, grep, find, etc.',
197
199
  ' Examples: { "command": "npx vitest run --reporter verbose" }, { "command": "npx flow-weaver validate src/workflow.ts --json" }',
198
200
  ' Blocked: rm -rf, git push, npm publish, sudo, curl|sh (safety policy).',
199
201
  '',
200
202
  '## Best Practices',
201
- 'PREFER patch-file over write-file for modifying existing files (surgical edits, no truncation risk).',
202
- 'Use run-shell for running tests (npx vitest), validation (flow-weaver validate), and inspecting output.',
203
- 'Use read-file to understand a file before modifying it.',
204
- 'Use list-files to discover project structure.',
203
+ 'PREFER patch_file over write_file for modifying existing files (surgical edits, no truncation risk).',
204
+ 'Use run_shell for running tests (npx vitest), validation (flow-weaver validate), and inspecting output.',
205
+ 'Use read_file to understand a file before modifying it.',
206
+ 'Use list_files to discover project structure.',
205
207
  'Writes that shrink a file by >50% or write empty content are automatically BLOCKED.',
206
208
  ];
207
209
  const fwOps = cliCommands
@@ -1 +1 @@
1
- {"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../../src/bot/system-prompt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../../src/bot/system-prompt.ts"],"names":[],"mappings":"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"}
@@ -12,12 +12,12 @@ import { isBlockedUrl } from './safety.js';
12
12
  export { WEAVER_TOOLS };
13
13
  /** Map tool names to step-executor operations. */
14
14
  const OPERATION_MAP = {
15
- validate: 'run-shell',
16
- read_file: 'read-file',
17
- patch_file: 'patch-file',
18
- run_shell: 'run-shell',
19
- list_files: 'list-files',
20
- write_file: 'write-file',
15
+ validate: 'run_shell',
16
+ read_file: 'read_file',
17
+ patch_file: 'patch_file',
18
+ run_shell: 'run_shell',
19
+ list_files: 'list_files',
20
+ write_file: 'write_file',
21
21
  };
22
22
  /**
23
23
  * Execute a weaver tool call. Delegates to step-executor with safety guards.
@@ -174,7 +174,7 @@ export function createWeaverExecutor(projectDir) {
174
174
  if (!operation) {
175
175
  return { result: `Unknown tool: ${name}`, isError: true };
176
176
  }
177
- // Transform validate tool to run-shell with flow-weaver validate command
177
+ // Transform validate tool to run_shell with flow-weaver validate command
178
178
  let stepArgs = { ...args };
179
179
  if (name === 'validate') {
180
180
  stepArgs = { command: `npx flow-weaver validate ${args.file} --json` };
@@ -20,7 +20,7 @@ declare class CliSessionProvider implements AgentProvider {
20
20
  export { CliSessionProvider };
21
21
  /**
22
22
  * Tool-use agent execution. Claude drives the entire task via tool calls
23
- * (validate, read-file, patch-file, run-shell, etc.) in a single continuous
23
+ * (validate, read_file, patch_file, run_shell, etc.) in a single continuous
24
24
  * conversation. No separate plan or retry loop needed.
25
25
  *
26
26
  * @flowWeaver nodeType
@@ -64,7 +64,7 @@ class CliSessionProvider {
64
64
  export { CliSessionProvider };
65
65
  /**
66
66
  * Tool-use agent execution. Claude drives the entire task via tool calls
67
- * (validate, read-file, patch-file, run-shell, etc.) in a single continuous
67
+ * (validate, read_file, patch_file, run_shell, etc.) in a single continuous
68
68
  * conversation. No separate plan or retry loop needed.
69
69
  *
70
70
  * @flowWeaver nodeType
@@ -1 +1 @@
1
- {"version":3,"file":"exec-validate-retry.d.ts","sourceRoot":"","sources":["../../src/node-types/exec-validate-retry.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;;;GAaG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,MAAM,EACX,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC;IACT,SAAS,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IACvC,GAAG,EAAE,MAAM,CAAC;CACb,CAAC,CA2ID"}
1
+ {"version":3,"file":"exec-validate-retry.d.ts","sourceRoot":"","sources":["../../src/node-types/exec-validate-retry.ts"],"names":[],"mappings":"AAUA;;;;;;;;;;;;;GAaG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,MAAM,EACX,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC;IACT,SAAS,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IACvC,GAAG,EAAE,MAAM,CAAC;CACb,CAAC,CA2ID"}
@@ -5,6 +5,7 @@ import { callAI, parseJsonResponse, normalizePlan } from '../bot/ai-client.js';
5
5
  import { executeStep } from '../bot/step-executor.js';
6
6
  import { validateFiles } from '../bot/file-validator.js';
7
7
  import { auditEmit } from '../bot/audit-logger.js';
8
+ import { PASSTHROUGH_OPERATIONS } from '../bot/operations.js';
8
9
  /**
9
10
  * Execute-validate-fix retry loop. Runs the plan, validates results,
10
11
  * and if validation fails, asks the AI for fixes. Up to 3 attempts.
@@ -36,7 +37,7 @@ export async function weaverExecValidateRetry(execute, ctx, modelOverride) {
36
37
  let currentPlan = JSON.parse(context.planJson);
37
38
  // Short-circuit: if ALL steps are passthrough operations (respond, no-op, etc.),
38
39
  // skip the execute→validate→fix loop entirely. The plan already has the answer.
39
- const PASSTHROUGH_OPS = new Set(['respond', 'no-op', 'noop', 'done', 'complete']);
40
+ const PASSTHROUGH_OPS = PASSTHROUGH_OPERATIONS;
40
41
  const steps = currentPlan.steps ?? [];
41
42
  if (steps.length > 0 && steps.every((s) => PASSTHROUGH_OPS.has(s.operation))) {
42
43
  console.log(`\x1b[36m→ Text-only plan (${steps.length} passthrough steps), skipping execution loop\x1b[0m`);
@@ -121,7 +122,7 @@ export async function weaverExecValidateRetry(execute, ctx, modelOverride) {
121
122
  const outputContext = Object.entries(execResult.stepOutputs)
122
123
  .map(([id, out]) => `--- Output of ${id} ---\n${out}`)
123
124
  .join('\n\n');
124
- const fixPrompt = `The following validation errors occurred:\n${errors}\n\n${outputContext ? `Discovery step outputs:\n${outputContext}\n\n` : ''}Provide a CONCRETE fix plan. Every patch-file step MUST include "file" (absolute path from the outputs above) and "patches" array with exact "find"/"replace" strings. Do NOT use placeholders.`;
125
+ const fixPrompt = `The following validation errors occurred:\n${errors}\n\n${outputContext ? `Discovery step outputs:\n${outputContext}\n\n` : ''}Provide a CONCRETE fix plan. Every patch_file step MUST include "file" (absolute path from the outputs above) and "patches" array with exact "find"/"replace" strings. Do NOT use placeholders.`;
125
126
  const text = await callAI(pInfo, systemPrompt, fixPrompt, 8192);
126
127
  const parsed = parseJsonResponse(text);
127
128
  currentPlan = normalizePlan(parsed);
@@ -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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"}
@@ -45,10 +45,10 @@ Provide a fix plan as JSON: {"steps": [...], "summary": "..."}
45
45
  Each step MUST have: "id" (string), "operation" (string), "description" (string), "args" (object).
46
46
 
47
47
  Available operations for fixes:
48
- - patch-file: Surgical find-and-replace. args: { "file": "path", "patches": [{ "find": "old text", "replace": "new text" }] }
48
+ - patch_file: Surgical find-and-replace. args: { "file": "path", "patches": [{ "find": "old text", "replace": "new text" }] }
49
49
  PREFERRED for fixing @input annotations. Example: { "find": "@input portName", "replace": "@input [portName]" }
50
- - run-shell: Execute a command. args: { "command": "..." }
51
- - read-file: Read file content. args: { "file": "path" }
50
+ - run_shell: Execute a command. args: { "command": "..." }
51
+ - read_file: Read file content. args: { "file": "path" }
52
52
 
53
53
  Return ONLY valid JSON. No explanation outside the JSON.`;
54
54
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"plan-task.d.ts","sourceRoot":"","sources":["../../src/node-types/plan-task.ts"],"names":[],"mappings":"AA0CA;;;;;;;;;;;;;GAaG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,MAAM,EACX,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC;IACT,SAAS,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IACvC,GAAG,EAAE,MAAM,CAAC;CACb,CAAC,CA8FD"}
1
+ {"version":3,"file":"plan-task.d.ts","sourceRoot":"","sources":["../../src/node-types/plan-task.ts"],"names":[],"mappings":"AA2CA;;;;;;;;;;;;;GAaG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,MAAM,EACX,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC;IACT,SAAS,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IACvC,GAAG,EAAE,MAAM,CAAC;CACb,CAAC,CA8FD"}
@@ -1,5 +1,6 @@
1
1
  import { callAIWithTools, callTriage, parseJsonResponse, normalizePlan } from '../bot/ai-client.js';
2
2
  import { auditEmit } from '../bot/audit-logger.js';
3
+ import { PLAN_OPERATIONS } from '../bot/operations.js';
3
4
  // ---------------------------------------------------------------------------
4
5
  // Plan tool definition — passed via native tool_use so the AI returns
5
6
  // structured JSON arguments instead of prose. Works across Anthropic and OpenAI.
@@ -19,7 +20,7 @@ const PLAN_TOOL = {
19
20
  properties: {
20
21
  operation: {
21
22
  type: 'string',
22
- description: 'Tool to invoke: write-file, read-file, patch-file, list-files, run-shell, validate, respond',
23
+ description: `Tool to invoke: ${PLAN_OPERATIONS.join(', ')}`,
23
24
  },
24
25
  description: { type: 'string', description: 'What this step does' },
25
26
  args: {
@@ -98,9 +99,9 @@ export async function weaverPlanTask(execute, ctx, modelOverride) {
98
99
  Plan this task by calling the create_plan tool with concrete steps.
99
100
  Rules:
100
101
  1. Every step MUST have complete, concrete args — no empty patches, no placeholders.
101
- 2. For file creation tasks, use write-file with full file content in args.
102
- 3. If you need to discover file contents first, plan ONLY discovery steps (read-file, list-files).
103
- 4. Do NOT plan patch-file unless you know the exact find/replace strings.`;
102
+ 2. For file creation tasks, use write_file with full file content in args.
103
+ 3. If you need to discover file contents first, plan ONLY discovery steps (read_file, list_files).
104
+ 4. Do NOT plan patch_file unless you know the exact find/replace strings.`;
104
105
  try {
105
106
  // Use native tool_use when available (Anthropic, OpenAI).
106
107
  // The AI calls create_plan with structured args instead of returning prose.
@@ -1 +1 @@
1
- {"version":3,"file":"plan-task.js","sourceRoot":"","sources":["../../src/node-types/plan-task.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plan-task.js","sourceRoot":"","sources":["../../src/node-types/plan-task.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "manifestVersion": 2,
3
3
  "name": "@synergenius/flow-weaver-pack-weaver",
4
- "version": "0.9.129",
4
+ "version": "0.9.131",
5
5
  "description": "AI bot for Flow Weaver. Execute tasks, run workflows, evolve autonomously.",
6
6
  "engineVersion": ">=0.22.10",
7
7
  "categories": [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@synergenius/flow-weaver-pack-weaver",
3
- "version": "0.9.129",
3
+ "version": "0.9.131",
4
4
  "description": "AI bot for Flow Weaver. Execute tasks, run workflows, evolve autonomously.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -0,0 +1,87 @@
1
+ /**
2
+ * Single source of truth for plan step operation names.
3
+ *
4
+ * ALL operation names use underscore convention (e.g. write_file, not write-file).
5
+ * The step executor normalizes hyphens to underscores for backward compatibility.
6
+ *
7
+ * Import from here instead of hardcoding strings.
8
+ */
9
+
10
+ // ---------------------------------------------------------------------------
11
+ // File operations
12
+ // ---------------------------------------------------------------------------
13
+
14
+ export const OP_WRITE_FILE = 'write_file';
15
+ export const OP_READ_FILE = 'read_file';
16
+ export const OP_PATCH_FILE = 'patch_file';
17
+ export const OP_LIST_FILES = 'list_files';
18
+ export const OP_CREATE_WORKFLOW = 'create_workflow';
19
+ export const OP_MODIFY_SOURCE = 'modify_source';
20
+ export const OP_IMPLEMENT_NODE = 'implement_node';
21
+
22
+ // ---------------------------------------------------------------------------
23
+ // Shell & validation
24
+ // ---------------------------------------------------------------------------
25
+
26
+ export const OP_RUN_SHELL = 'run_shell';
27
+ export const OP_VALIDATE = 'validate';
28
+ export const OP_TSC_CHECK = 'tsc_check';
29
+ export const OP_RUN_TESTS = 'run_tests';
30
+
31
+ // ---------------------------------------------------------------------------
32
+ // Task management
33
+ // ---------------------------------------------------------------------------
34
+
35
+ export const OP_TASK_CREATE = 'task_create';
36
+
37
+ // ---------------------------------------------------------------------------
38
+ // Passthrough (no execution needed)
39
+ // ---------------------------------------------------------------------------
40
+
41
+ export const OP_RESPOND = 'respond';
42
+ export const OP_NO_OP = 'no_op';
43
+ export const OP_NOOP = 'noop';
44
+ export const OP_DONE = 'done';
45
+ export const OP_COMPLETE = 'complete';
46
+
47
+ // ---------------------------------------------------------------------------
48
+ // Grouped exports for consumers
49
+ // ---------------------------------------------------------------------------
50
+
51
+ /** Operations that the create_plan tool can use. Listed in tool descriptions. */
52
+ export const PLAN_OPERATIONS = [
53
+ OP_WRITE_FILE,
54
+ OP_READ_FILE,
55
+ OP_PATCH_FILE,
56
+ OP_LIST_FILES,
57
+ OP_RUN_SHELL,
58
+ OP_VALIDATE,
59
+ OP_TASK_CREATE,
60
+ OP_RESPOND,
61
+ ] as const;
62
+
63
+ /** Operations that skip execution (text-only responses). */
64
+ export const PASSTHROUGH_OPERATIONS = new Set([
65
+ OP_RESPOND,
66
+ OP_NO_OP,
67
+ OP_NOOP,
68
+ OP_DONE,
69
+ OP_COMPLETE,
70
+ ]);
71
+
72
+ /** All file operation names for the system prompt. */
73
+ export const FILE_OPERATIONS = [
74
+ OP_READ_FILE,
75
+ OP_WRITE_FILE,
76
+ OP_PATCH_FILE,
77
+ OP_LIST_FILES,
78
+ OP_RUN_SHELL,
79
+ OP_VALIDATE,
80
+ OP_TSC_CHECK,
81
+ OP_RUN_TESTS,
82
+ ] as const;
83
+
84
+ /** Normalize operation name: convert hyphens to underscores for backward compat. */
85
+ export function normalizeOperation(op: string): string {
86
+ return op.replace(/-/g, '_');
87
+ }
@@ -4,6 +4,9 @@ import * as os from 'node:os';
4
4
  import { execSync } from 'node:child_process';
5
5
  import { runCommand } from '@synergenius/flow-weaver';
6
6
  import { BLOCKED_SHELL_PATTERNS } from './safety.js';
7
+ import { OP_WRITE_FILE, OP_READ_FILE, OP_PATCH_FILE, OP_LIST_FILES, OP_RUN_SHELL, OP_TASK_CREATE, OP_RESPOND, OP_NO_OP, OP_NOOP, OP_DONE, OP_COMPLETE, OP_CREATE_WORKFLOW, OP_MODIFY_SOURCE, OP_IMPLEMENT_NODE, normalizeOperation } from './operations.js';
8
+ import { TaskStore } from './task-store.js';
9
+ import type { CreateTaskInput } from './task-types.js';
7
10
 
8
11
  // Use the user's login shell (same as terminal panel) so profile-managed
9
12
  // tools like nvm/npm, pyenv, rbenv etc. are available.
@@ -30,7 +33,7 @@ const SHELL_TIMEOUT = 60_000;
30
33
  /** Maximum file size for read/patch operations (1MB). */
31
34
  const MAX_READ_SIZE = 1_048_576;
32
35
 
33
- /** Maximum files returned by list-files. */
36
+ /** Maximum files returned by list_files. */
34
37
  const MAX_LIST_FILES = 1000;
35
38
 
36
39
  // Shell blocklist imported from safety.ts — single source of truth.
@@ -99,7 +102,7 @@ function checkWriteSafety(filePath: string, content: string): WriteGuardResult {
99
102
  allowed: false,
100
103
  reason:
101
104
  `Refusing to write empty content to ${path.basename(filePath)}. ` +
102
- `Use read-file first, then write the complete modified file back.`,
105
+ `Use read_file first, then write the complete modified file back.`,
103
106
  };
104
107
  }
105
108
 
@@ -122,7 +125,7 @@ function checkWriteSafety(filePath: string, content: string): WriteGuardResult {
122
125
  reason:
123
126
  `Refusing to write ${path.basename(filePath)}: new content (${newSize}B) ` +
124
127
  `is ${shrinkPct}% smaller than existing (${existingSize}B). ` +
125
- `Use read-file first, make targeted changes, write complete file back.`,
128
+ `Use read_file first, make targeted changes, write complete file back.`,
126
129
  };
127
130
  }
128
131
  }
@@ -166,14 +169,17 @@ export async function executeStep(
166
169
  const args = step.args;
167
170
  const file = args.file as string | undefined;
168
171
 
169
- switch (step.operation) {
172
+ // Normalize operation names: accept both hyphens and underscores
173
+ const operation = normalizeOperation(step.operation);
174
+
175
+ switch (operation) {
170
176
  // -----------------------------------------------------------------
171
177
  // File write operations (with safety guards)
172
178
  // -----------------------------------------------------------------
173
- case 'write-file':
174
- case 'create-workflow':
175
- case 'modify-source':
176
- case 'implement-node': {
179
+ case OP_WRITE_FILE:
180
+ case OP_CREATE_WORKFLOW:
181
+ case OP_MODIFY_SOURCE:
182
+ case OP_IMPLEMENT_NODE: {
177
183
  if (!file) {
178
184
  return { blocked: true, blockReason: `${step.operation} requires a "file" argument.` };
179
185
  }
@@ -196,9 +202,9 @@ export async function executeStep(
196
202
  // -----------------------------------------------------------------
197
203
  // Patch file: surgical find-and-replace (no full rewrite needed)
198
204
  // -----------------------------------------------------------------
199
- case 'patch-file': {
205
+ case OP_PATCH_FILE: {
200
206
  if (!file) {
201
- return { blocked: true, blockReason: 'patch-file requires a "file" argument.' };
207
+ return { blocked: true, blockReason: 'patch_file requires a "file" argument.' };
202
208
  }
203
209
  assertSafePath(file, projectDir);
204
210
  const filePath = path.resolve(projectDir, file);
@@ -210,7 +216,7 @@ export async function executeStep(
210
216
  // File size guard
211
217
  const fileSize = fs.statSync(filePath).size;
212
218
  if (fileSize > MAX_READ_SIZE) {
213
- return { blocked: true, blockReason: `File too large for patch-file (${fileSize} bytes, max ${MAX_READ_SIZE}).` };
219
+ return { blocked: true, blockReason: `File too large for patch_file (${fileSize} bytes, max ${MAX_READ_SIZE}).` };
214
220
  }
215
221
 
216
222
  let content = fs.readFileSync(filePath, 'utf-8');
@@ -221,7 +227,7 @@ export async function executeStep(
221
227
  }
222
228
 
223
229
  if (!patches.length) {
224
- return { blocked: true, blockReason: 'patch-file requires "patches" array or "find"+"replace" args.' };
230
+ return { blocked: true, blockReason: 'patch_file requires "patches" array or "find"+"replace" args.' };
225
231
  }
226
232
 
227
233
  let applied = 0;
@@ -269,7 +275,7 @@ export async function executeStep(
269
275
  // -----------------------------------------------------------------
270
276
  // Read file: return content for AI context
271
277
  // -----------------------------------------------------------------
272
- case 'read-file': {
278
+ case OP_READ_FILE: {
273
279
  if (!file) {
274
280
  return { output: '' };
275
281
  }
@@ -285,7 +291,7 @@ export async function executeStep(
285
291
  return { output: `"${file}" is a directory. Contents:\n${entries.join('\n')}` };
286
292
  }
287
293
  if (stat.size > MAX_READ_SIZE) {
288
- return { output: `File too large to read (${stat.size} bytes, max ${MAX_READ_SIZE}). Use run-shell with head/tail instead.` };
294
+ return { output: `File too large to read (${stat.size} bytes, max ${MAX_READ_SIZE}). Use run_shell with head/tail instead.` };
289
295
  }
290
296
  const content = fs.readFileSync(filePath, 'utf-8');
291
297
  return { file: filePath, output: content };
@@ -298,10 +304,10 @@ export async function executeStep(
298
304
  // -----------------------------------------------------------------
299
305
  // Shell command: run arbitrary command with safety guards
300
306
  // -----------------------------------------------------------------
301
- case 'run-shell': {
307
+ case OP_RUN_SHELL: {
302
308
  const command = (args.command as string) ?? '';
303
309
  if (!command.trim()) {
304
- return { blocked: true, blockReason: 'run-shell requires a "command" argument.' };
310
+ return { blocked: true, blockReason: 'run_shell requires a "command" argument.' };
305
311
  }
306
312
 
307
313
  const shellGuard = checkShellSafety(command);
@@ -338,7 +344,7 @@ export async function executeStep(
338
344
  // -----------------------------------------------------------------
339
345
  // List files: glob-like directory listing
340
346
  // -----------------------------------------------------------------
341
- case 'list-files': {
347
+ case OP_LIST_FILES: {
342
348
  const dir = (args.directory as string) ?? (args.dir as string) ?? '.';
343
349
  const pattern = (args.pattern as string) ?? '';
344
350
  assertSafePath(dir, projectDir);
@@ -380,13 +386,47 @@ export async function executeStep(
380
386
  }
381
387
 
382
388
  // -----------------------------------------------------------------
383
- // Flow-weaver CLI commands (via programmatic API)
389
+ // Task management create subtasks for recursive swarm execution
390
+ // -----------------------------------------------------------------
391
+ case OP_TASK_CREATE: {
392
+ const title = (args.title as string) ?? '';
393
+ if (!title) return { blocked: true, blockReason: 'task_create requires a "title" argument.' };
394
+
395
+ const store = new TaskStore(projectDir);
396
+ const input: CreateTaskInput = {
397
+ title,
398
+ description: (args.description as string) ?? title,
399
+ complexity: (args.complexity as 'trivial' | 'simple' | 'moderate' | 'complex') ?? 'simple',
400
+ priority: (args.priority as number) ?? 0,
401
+ parentId: args.parentId as string | undefined,
402
+ dependsOn: (args.dependsOn as string[]) ?? [],
403
+ };
404
+
405
+ // Support inline subtasks
406
+ const subtasksArg = args.subtasks as Array<Record<string, unknown>> | undefined;
407
+ if (subtasksArg?.length) {
408
+ input.subtasks = subtasksArg.map((s) => ({
409
+ title: (s.title as string) ?? '',
410
+ description: (s.description as string) ?? '',
411
+ complexity: (s.complexity as 'trivial' | 'simple' | 'moderate' | 'complex') ?? 'simple',
412
+ priority: (s.priority as number) ?? 0,
413
+ }));
414
+ }
415
+
416
+ const task = await store.create(input);
417
+ const subtasks = task.isParent ? await store.getSubtasks(task.id) : [];
418
+ const ids = [task.id, ...subtasks.map(s => s.id)];
419
+ return { output: `Created task "${title}" (${task.id})${subtasks.length ? ` with ${subtasks.length} subtasks` : ''}. IDs: ${ids.join(', ')}` };
420
+ }
421
+
422
+ // -----------------------------------------------------------------
423
+ // Passthrough operations
384
424
  // -----------------------------------------------------------------
385
- case 'respond':
386
- case 'no-op':
387
- case 'noop':
388
- case 'done':
389
- case 'complete': {
425
+ case OP_RESPOND:
426
+ case OP_NO_OP:
427
+ case OP_NOOP:
428
+ case OP_DONE:
429
+ case OP_COMPLETE: {
390
430
  // Passthrough operations — the plan already contains the answer or
391
431
  // there's nothing to execute. Return the response text as output.
392
432
  const response = (args.response as string) ?? (args.text as string) ?? (args.description as string) ?? '';
@@ -394,7 +434,7 @@ export async function executeStep(
394
434
  }
395
435
 
396
436
  default: {
397
- const result = await runCommand(step.operation, { ...args, cwd: projectDir });
437
+ const result = await runCommand(operation, { ...args, cwd: projectDir });
398
438
  return {
399
439
  file: result.files?.[0],
400
440
  files: result.files,
@@ -3,6 +3,8 @@
3
3
  * This ensures Weaver's knowledge stays in sync with the installed flow-weaver version.
4
4
  */
5
5
 
6
+ import { FILE_OPERATIONS, OP_TASK_CREATE, OP_PATCH_FILE, OP_WRITE_FILE } from './operations.js';
7
+
6
8
  interface AnnotationDoc {
7
9
  name: string;
8
10
  syntax: string;
@@ -197,10 +199,11 @@ When stabilize mode is active, only fix-up operations are allowed.`);
197
199
  USE TOOLS to complete tasks. Do NOT describe what you would do — actually do it by calling tools.
198
200
 
199
201
  ### File tools
200
- - read-file, write-file, patch-file, list-files, run-shell, validate, tsc-check, run-tests
202
+ - ${FILE_OPERATIONS.join(', ')}
201
203
 
202
204
  ### Task management tools
203
- - task_create, task_list, task_get, task_update
205
+ - ${OP_TASK_CREATE} (args: title, description, complexity, subtasks[]) — create swarm subtasks for parallel execution
206
+ - task_list, task_get, task_update — query and update existing tasks
204
207
 
205
208
  ### Knowledge tools
206
209
  - learn(key, value), recall(query)
@@ -211,7 +214,7 @@ USE TOOLS to complete tasks. Do NOT describe what you would do — actually do i
211
214
  ### Rules
212
215
  - Always validate BEFORE and AFTER patching
213
216
  - Always read a file before patching it
214
- - Use patch-file for modifications, write-file only for new files
217
+ - Use ${OP_PATCH_FILE} for modifications, ${OP_WRITE_FILE} only for new files
215
218
  - Be concise — let tool results speak`);
216
219
  }
217
220
 
@@ -252,23 +255,23 @@ export async function buildSystemPrompt(sections?: Set<PromptSection>): Promise<
252
255
  function formatBotOperations(cliCommands: CliCommandDoc[]): string {
253
256
  const packOps = [
254
257
  '## File Operations',
255
- '- create-workflow: Create a new workflow file. args: { file, content }',
256
- '- implement-node: Write a node type implementation. args: { file, content }',
257
- '- write-file: Write a file. args: { file, content }. Content must be the COMPLETE file.',
258
- '- read-file: Read a file and return its content. args: { file }',
259
- '- patch-file: Surgical find-and-replace edits. args: { file, patches: [{ find: "old text", replace: "new text" }] }. PREFERRED for modifying existing files — no need to rewrite the entire file.',
260
- '- list-files: List files in a directory. args: { directory, pattern? } (pattern is regex)',
258
+ '- create_workflow: Create a new workflow file. args: { file, content }',
259
+ '- implement_node: Write a node type implementation. args: { file, content }',
260
+ '- write_file: Write a file. args: { file, content }. Content must be the COMPLETE file.',
261
+ '- read_file: Read a file and return its content. args: { file }',
262
+ '- patch_file: Surgical find-and-replace edits. args: { file, patches: [{ find: "old text", replace: "new text" }] }. PREFERRED for modifying existing files — no need to rewrite the entire file.',
263
+ '- list_files: List files in a directory. args: { directory, pattern? } (pattern is regex)',
261
264
  '',
262
265
  '## Shell Commands',
263
- '- run-shell: Execute a shell command and return output. args: { command }. Use for: npx vitest, git status, grep, find, etc.',
266
+ '- run_shell: Execute a shell command and return output. args: { command }. Use for: npx vitest, git status, grep, find, etc.',
264
267
  ' Examples: { "command": "npx vitest run --reporter verbose" }, { "command": "npx flow-weaver validate src/workflow.ts --json" }',
265
268
  ' Blocked: rm -rf, git push, npm publish, sudo, curl|sh (safety policy).',
266
269
  '',
267
270
  '## Best Practices',
268
- 'PREFER patch-file over write-file for modifying existing files (surgical edits, no truncation risk).',
269
- 'Use run-shell for running tests (npx vitest), validation (flow-weaver validate), and inspecting output.',
270
- 'Use read-file to understand a file before modifying it.',
271
- 'Use list-files to discover project structure.',
271
+ 'PREFER patch_file over write_file for modifying existing files (surgical edits, no truncation risk).',
272
+ 'Use run_shell for running tests (npx vitest), validation (flow-weaver validate), and inspecting output.',
273
+ 'Use read_file to understand a file before modifying it.',
274
+ 'Use list_files to discover project structure.',
272
275
  'Writes that shrink a file by >50% or write empty content are automatically BLOCKED.',
273
276
  ];
274
277
 
@@ -16,12 +16,12 @@ export { WEAVER_TOOLS };
16
16
 
17
17
  /** Map tool names to step-executor operations. */
18
18
  const OPERATION_MAP: Record<string, string> = {
19
- validate: 'run-shell',
20
- read_file: 'read-file',
21
- patch_file: 'patch-file',
22
- run_shell: 'run-shell',
23
- list_files: 'list-files',
24
- write_file: 'write-file',
19
+ validate: 'run_shell',
20
+ read_file: 'read_file',
21
+ patch_file: 'patch_file',
22
+ run_shell: 'run_shell',
23
+ list_files: 'list_files',
24
+ write_file: 'write_file',
25
25
  };
26
26
 
27
27
  /**
@@ -185,7 +185,7 @@ export function createWeaverExecutor(projectDir: string) {
185
185
  return { result: `Unknown tool: ${name}`, isError: true };
186
186
  }
187
187
 
188
- // Transform validate tool to run-shell with flow-weaver validate command
188
+ // Transform validate tool to run_shell with flow-weaver validate command
189
189
  let stepArgs = { ...args };
190
190
  if (name === 'validate') {
191
191
  stepArgs = { command: `npx flow-weaver validate ${args.file} --json` };
@@ -82,7 +82,7 @@ type LocalStepLogEntry = { step: string; status: string; detail: string };
82
82
 
83
83
  /**
84
84
  * Tool-use agent execution. Claude drives the entire task via tool calls
85
- * (validate, read-file, patch-file, run-shell, etc.) in a single continuous
85
+ * (validate, read_file, patch_file, run_shell, etc.) in a single continuous
86
86
  * conversation. No separate plan or retry loop needed.
87
87
  *
88
88
  * @flowWeaver nodeType
@@ -6,6 +6,7 @@ import { callAI, parseJsonResponse, normalizePlan } from '../bot/ai-client.js';
6
6
  import { executeStep } from '../bot/step-executor.js';
7
7
  import { validateFiles } from '../bot/file-validator.js';
8
8
  import { auditEmit } from '../bot/audit-logger.js';
9
+ import { PASSTHROUGH_OPERATIONS } from '../bot/operations.js';
9
10
 
10
11
  /**
11
12
  * Execute-validate-fix retry loop. Runs the plan, validates results,
@@ -48,7 +49,7 @@ export async function weaverExecValidateRetry(
48
49
 
49
50
  // Short-circuit: if ALL steps are passthrough operations (respond, no-op, etc.),
50
51
  // skip the execute→validate→fix loop entirely. The plan already has the answer.
51
- const PASSTHROUGH_OPS = new Set(['respond', 'no-op', 'noop', 'done', 'complete']);
52
+ const PASSTHROUGH_OPS = PASSTHROUGH_OPERATIONS;
52
53
  const steps = currentPlan.steps ?? [];
53
54
  if (steps.length > 0 && steps.every((s: { operation: string }) => PASSTHROUGH_OPS.has(s.operation))) {
54
55
  console.log(`\x1b[36m→ Text-only plan (${steps.length} passthrough steps), skipping execution loop\x1b[0m`);
@@ -145,7 +146,7 @@ export async function weaverExecValidateRetry(
145
146
  .map(([id, out]) => `--- Output of ${id} ---\n${out}`)
146
147
  .join('\n\n');
147
148
 
148
- const fixPrompt = `The following validation errors occurred:\n${errors}\n\n${outputContext ? `Discovery step outputs:\n${outputContext}\n\n` : ''}Provide a CONCRETE fix plan. Every patch-file step MUST include "file" (absolute path from the outputs above) and "patches" array with exact "find"/"replace" strings. Do NOT use placeholders.`;
149
+ const fixPrompt = `The following validation errors occurred:\n${errors}\n\n${outputContext ? `Discovery step outputs:\n${outputContext}\n\n` : ''}Provide a CONCRETE fix plan. Every patch_file step MUST include "file" (absolute path from the outputs above) and "patches" array with exact "find"/"replace" strings. Do NOT use placeholders.`;
149
150
 
150
151
  const text = await callAI(pInfo, systemPrompt, fixPrompt, 8192);
151
152
 
@@ -58,10 +58,10 @@ Provide a fix plan as JSON: {"steps": [...], "summary": "..."}
58
58
  Each step MUST have: "id" (string), "operation" (string), "description" (string), "args" (object).
59
59
 
60
60
  Available operations for fixes:
61
- - patch-file: Surgical find-and-replace. args: { "file": "path", "patches": [{ "find": "old text", "replace": "new text" }] }
61
+ - patch_file: Surgical find-and-replace. args: { "file": "path", "patches": [{ "find": "old text", "replace": "new text" }] }
62
62
  PREFERRED for fixing @input annotations. Example: { "find": "@input portName", "replace": "@input [portName]" }
63
- - run-shell: Execute a command. args: { "command": "..." }
64
- - read-file: Read file content. args: { "file": "path" }
63
+ - run_shell: Execute a command. args: { "command": "..." }
64
+ - read_file: Read file content. args: { "file": "path" }
65
65
 
66
66
  Return ONLY valid JSON. No explanation outside the JSON.`;
67
67
 
@@ -3,6 +3,7 @@ import { callAI, callAIWithTools, callTriage, parseJsonResponse, normalizePlan }
3
3
  import type { AiTool } from '../bot/ai-client.js';
4
4
  import { auditEmit } from '../bot/audit-logger.js';
5
5
  import type { PromptSection } from '../bot/system-prompt.js';
6
+ import { PLAN_OPERATIONS } from '../bot/operations.js';
6
7
 
7
8
  // ---------------------------------------------------------------------------
8
9
  // Plan tool definition — passed via native tool_use so the AI returns
@@ -24,7 +25,7 @@ const PLAN_TOOL: AiTool = {
24
25
  properties: {
25
26
  operation: {
26
27
  type: 'string',
27
- description: 'Tool to invoke: write-file, read-file, patch-file, list-files, run-shell, validate, respond',
28
+ description: `Tool to invoke: ${PLAN_OPERATIONS.join(', ')}`,
28
29
  },
29
30
  description: { type: 'string', description: 'What this step does' },
30
31
  args: {
@@ -113,9 +114,9 @@ export async function weaverPlanTask(
113
114
  Plan this task by calling the create_plan tool with concrete steps.
114
115
  Rules:
115
116
  1. Every step MUST have complete, concrete args — no empty patches, no placeholders.
116
- 2. For file creation tasks, use write-file with full file content in args.
117
- 3. If you need to discover file contents first, plan ONLY discovery steps (read-file, list-files).
118
- 4. Do NOT plan patch-file unless you know the exact find/replace strings.`;
117
+ 2. For file creation tasks, use write_file with full file content in args.
118
+ 3. If you need to discover file contents first, plan ONLY discovery steps (read_file, list_files).
119
+ 4. Do NOT plan patch_file unless you know the exact find/replace strings.`;
119
120
 
120
121
  try {
121
122
  // Use native tool_use when available (Anthropic, OpenAI).