@synergenius/flow-weaver-pack-weaver 0.9.199 → 0.9.201

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 (181) hide show
  1. package/dist/ai-chat-provider.js +5 -5
  2. package/dist/ai-chat-provider.js.map +1 -1
  3. package/dist/bot/acceptance-merge.d.ts +21 -0
  4. package/dist/bot/acceptance-merge.d.ts.map +1 -0
  5. package/dist/bot/acceptance-merge.js +46 -0
  6. package/dist/bot/acceptance-merge.js.map +1 -0
  7. package/dist/bot/ai-client.d.ts +14 -2
  8. package/dist/bot/ai-client.d.ts.map +1 -1
  9. package/dist/bot/ai-client.js +71 -24
  10. package/dist/bot/ai-client.js.map +1 -1
  11. package/dist/bot/assistant-tools.js +3 -3
  12. package/dist/bot/assistant-tools.js.map +1 -1
  13. package/dist/bot/audit-logger.d.ts.map +1 -1
  14. package/dist/bot/audit-logger.js +34 -14
  15. package/dist/bot/audit-logger.js.map +1 -1
  16. package/dist/bot/audit-trail.d.ts +67 -0
  17. package/dist/bot/audit-trail.d.ts.map +1 -0
  18. package/dist/bot/audit-trail.js +153 -0
  19. package/dist/bot/audit-trail.js.map +1 -0
  20. package/dist/bot/behavior-defaults.d.ts +1 -1
  21. package/dist/bot/behavior-defaults.d.ts.map +1 -1
  22. package/dist/bot/behavior-defaults.js +7 -3
  23. package/dist/bot/behavior-defaults.js.map +1 -1
  24. package/dist/bot/capability-registry.d.ts +9 -0
  25. package/dist/bot/capability-registry.d.ts.map +1 -1
  26. package/dist/bot/capability-registry.js +81 -27
  27. package/dist/bot/capability-registry.js.map +1 -1
  28. package/dist/bot/capability-types.d.ts +10 -0
  29. package/dist/bot/capability-types.d.ts.map +1 -1
  30. package/dist/bot/cli-provider.d.ts.map +1 -1
  31. package/dist/bot/cli-provider.js +8 -7
  32. package/dist/bot/cli-provider.js.map +1 -1
  33. package/dist/bot/preflight.d.ts +48 -0
  34. package/dist/bot/preflight.d.ts.map +1 -0
  35. package/dist/bot/preflight.js +247 -0
  36. package/dist/bot/preflight.js.map +1 -0
  37. package/dist/bot/provider-shim.d.ts +74 -0
  38. package/dist/bot/provider-shim.d.ts.map +1 -0
  39. package/dist/bot/provider-shim.js +176 -0
  40. package/dist/bot/provider-shim.js.map +1 -0
  41. package/dist/bot/runner.d.ts +2 -0
  42. package/dist/bot/runner.d.ts.map +1 -1
  43. package/dist/bot/runner.js +60 -17
  44. package/dist/bot/runner.js.map +1 -1
  45. package/dist/bot/step-executor.d.ts.map +1 -1
  46. package/dist/bot/step-executor.js +72 -115
  47. package/dist/bot/step-executor.js.map +1 -1
  48. package/dist/bot/swarm-controller.d.ts +2 -0
  49. package/dist/bot/swarm-controller.d.ts.map +1 -1
  50. package/dist/bot/swarm-controller.js +92 -20
  51. package/dist/bot/swarm-controller.js.map +1 -1
  52. package/dist/bot/task-create-handler.d.ts +37 -0
  53. package/dist/bot/task-create-handler.d.ts.map +1 -0
  54. package/dist/bot/task-create-handler.js +124 -0
  55. package/dist/bot/task-create-handler.js.map +1 -0
  56. package/dist/bot/task-store.d.ts +1 -0
  57. package/dist/bot/task-store.d.ts.map +1 -1
  58. package/dist/bot/task-store.js +67 -0
  59. package/dist/bot/task-store.js.map +1 -1
  60. package/dist/bot/types.d.ts +1 -1
  61. package/dist/bot/types.d.ts.map +1 -1
  62. package/dist/bot/weaver-tools.d.ts.map +1 -1
  63. package/dist/bot/weaver-tools.js +7 -39
  64. package/dist/bot/weaver-tools.js.map +1 -1
  65. package/dist/node-types/agent-execute.d.ts +25 -8
  66. package/dist/node-types/agent-execute.d.ts.map +1 -1
  67. package/dist/node-types/agent-execute.js +89 -23
  68. package/dist/node-types/agent-execute.js.map +1 -1
  69. package/dist/node-types/bot-report.d.ts.map +1 -1
  70. package/dist/node-types/bot-report.js +24 -3
  71. package/dist/node-types/bot-report.js.map +1 -1
  72. package/dist/node-types/plan-task.d.ts +8 -17
  73. package/dist/node-types/plan-task.d.ts.map +1 -1
  74. package/dist/node-types/plan-task.js +217 -256
  75. package/dist/node-types/plan-task.js.map +1 -1
  76. package/dist/node-types/review-result.js +8 -6
  77. package/dist/node-types/review-result.js.map +1 -1
  78. package/dist/palindrome.d.ts +9 -0
  79. package/dist/palindrome.d.ts.map +1 -0
  80. package/dist/palindrome.js +14 -0
  81. package/dist/palindrome.js.map +1 -0
  82. package/dist/ui/approval-card.js +91 -82
  83. package/dist/ui/bot-activity.js +73 -56
  84. package/dist/ui/bot-config.js +48 -31
  85. package/dist/ui/bot-dashboard.js +52 -36
  86. package/dist/ui/bot-panel.js +230 -228
  87. package/dist/ui/bot-slot-card.js +100 -90
  88. package/dist/ui/bot-status.js +37 -15
  89. package/dist/ui/budget-bar.js +57 -31
  90. package/dist/ui/capability-editor.js +447 -378
  91. package/dist/ui/chat-task-result.js +78 -71
  92. package/dist/ui/decision-log.js +68 -81
  93. package/dist/ui/genesis-block.js +86 -95
  94. package/dist/ui/instance-stream-view.js +722 -0
  95. package/dist/ui/profile-card.js +96 -221
  96. package/dist/ui/profile-editor.js +532 -575
  97. package/dist/ui/settings-section.js +41 -45
  98. package/dist/ui/swarm-controls.js +212 -135
  99. package/dist/ui/swarm-dashboard.js +3992 -2715
  100. package/dist/ui/task-detail-view.js +415 -521
  101. package/dist/ui/task-editor.js +339 -390
  102. package/dist/ui/task-pool-list.js +60 -55
  103. package/dist/workflows/src/palindrome.d.ts +11 -0
  104. package/dist/workflows/src/palindrome.d.ts.map +1 -0
  105. package/dist/workflows/src/palindrome.js +16 -0
  106. package/dist/workflows/src/palindrome.js.map +1 -0
  107. package/dist/workflows/tests/palindrome.test.d.ts +2 -0
  108. package/dist/workflows/tests/palindrome.test.d.ts.map +1 -0
  109. package/dist/workflows/tests/palindrome.test.js +41 -0
  110. package/dist/workflows/tests/palindrome.test.js.map +1 -0
  111. package/dist/workflows/weaver-bot-batch.js +1 -1
  112. package/dist/workflows/weaver-bot-batch.js.map +1 -1
  113. package/dist/workflows/weaver-bot.js +1 -1
  114. package/dist/workflows/weaver-bot.js.map +1 -1
  115. package/flowweaver.manifest.json +1 -1
  116. package/package.json +8 -2
  117. package/src/ai-chat-provider.ts +5 -5
  118. package/src/bot/acceptance-merge.ts +62 -0
  119. package/src/bot/ai-client.ts +77 -21
  120. package/src/bot/assistant-tools.ts +3 -3
  121. package/src/bot/audit-logger.ts +42 -14
  122. package/src/bot/audit-trail.ts +211 -0
  123. package/src/bot/behavior-defaults.ts +7 -2
  124. package/src/bot/capability-registry.ts +84 -28
  125. package/src/bot/capability-types.ts +11 -0
  126. package/src/bot/cli-provider.ts +8 -7
  127. package/src/bot/preflight.ts +285 -0
  128. package/src/bot/provider-shim.ts +218 -0
  129. package/src/bot/runner.ts +68 -20
  130. package/src/bot/step-executor.ts +69 -127
  131. package/src/bot/swarm-controller.ts +94 -20
  132. package/src/bot/task-create-handler.ts +164 -0
  133. package/src/bot/task-store.ts +83 -0
  134. package/src/bot/types.ts +4 -1
  135. package/src/bot/weaver-tools.ts +7 -45
  136. package/src/node-types/agent-execute.ts +102 -16
  137. package/src/node-types/bot-report.ts +24 -3
  138. package/src/node-types/plan-task.ts +238 -280
  139. package/src/node-types/review-result.ts +8 -6
  140. package/src/palindrome.ts +14 -0
  141. package/src/ui/approval-card.tsx +78 -62
  142. package/src/ui/bot-activity.tsx +12 -10
  143. package/src/ui/bot-config.tsx +12 -10
  144. package/src/ui/bot-dashboard.tsx +13 -11
  145. package/src/ui/bot-panel.tsx +189 -171
  146. package/src/ui/bot-slot-card.tsx +125 -70
  147. package/src/ui/bot-status.tsx +4 -4
  148. package/src/ui/budget-bar.tsx +86 -25
  149. package/src/ui/capability-editor.tsx +392 -257
  150. package/src/ui/chat-task-result.tsx +81 -78
  151. package/src/ui/decision-log.tsx +76 -73
  152. package/src/ui/genesis-block.tsx +91 -61
  153. package/src/ui/instance-stream-view.tsx +861 -0
  154. package/src/ui/profile-card.tsx +195 -168
  155. package/src/ui/profile-editor.tsx +453 -370
  156. package/src/ui/settings-section.tsx +46 -39
  157. package/src/ui/swarm-controls.tsx +252 -123
  158. package/src/ui/swarm-dashboard.tsx +999 -466
  159. package/src/ui/task-detail-view.tsx +485 -428
  160. package/src/ui/task-editor.tsx +329 -271
  161. package/src/ui/task-pool-list.tsx +68 -62
  162. package/src/workflows/src/palindrome.ts +16 -0
  163. package/src/workflows/tests/palindrome.test.ts +49 -0
  164. package/src/workflows/weaver-bot-batch.ts +1 -1
  165. package/src/workflows/weaver-bot.ts +1 -1
  166. package/dist/ui/bot-constants.d.ts +0 -14
  167. package/dist/ui/bot-constants.d.ts.map +0 -1
  168. package/dist/ui/bot-constants.js +0 -189
  169. package/dist/ui/bot-constants.js.map +0 -1
  170. package/dist/ui/steer-api.d.ts +0 -7
  171. package/dist/ui/steer-api.d.ts.map +0 -1
  172. package/dist/ui/steer-api.js +0 -11
  173. package/dist/ui/steer-api.js.map +0 -1
  174. package/dist/ui/trace-to-timeline.d.ts +0 -91
  175. package/dist/ui/trace-to-timeline.d.ts.map +0 -1
  176. package/dist/ui/trace-to-timeline.js +0 -116
  177. package/dist/ui/trace-to-timeline.js.map +0 -1
  178. package/dist/ui/use-stream-timeline.d.ts +0 -50
  179. package/dist/ui/use-stream-timeline.d.ts.map +0 -1
  180. package/dist/ui/use-stream-timeline.js +0 -245
  181. package/dist/ui/use-stream-timeline.js.map +0 -1
@@ -15,7 +15,7 @@ const CAP_CORE = {
15
15
  prompt: `You are Weaver. Execute tasks by calling tools — do not describe what you would do.
16
16
 
17
17
  ## System Constraints
18
- - All file paths are relative to the workspace root. "../" is blocked.
18
+ - All file paths MUST be relative to the workspace root (e.g. "src/index.ts", not "/home/user/project/src/index.ts"). NEVER use absolute paths. "../" is blocked.
19
19
  - Writes that shrink a file >50% or write empty content are BLOCKED by the system.
20
20
  - Blocked shell commands: rm -rf, git push, npm publish, sudo, curl|sh.`,
21
21
  };
@@ -26,45 +26,68 @@ const CAP_ROLE_ORCHESTRATOR = {
26
26
  name: 'role-orchestrator',
27
27
  description: 'Orchestrator role: decomposes objectives into subtask DAGs.',
28
28
  tools: [OP_TASK_CREATE, OP_LIST_FILES, OP_READ_FILE],
29
+ acceptance: [
30
+ { name: 'subtasks-created', command: 'python3 -c "import json; tasks=json.load(open(\'.weaver/tasks.json\')); exit(0 if len(tasks)>=3 else 1)"' },
31
+ { name: 'deps-defined', command: 'python3 -c "import json; tasks=json.load(open(\'.weaver/tasks.json\')); exit(0 if any(t.get(\'dependsOn\') for t in tasks) else 1)"' },
32
+ ],
29
33
  prompt: `## YOUR ROLE: Orchestrator
30
34
  You decompose objectives into subtasks. You never write code or create files directly.
31
35
  Your only output is task_create calls + done.
32
36
 
33
- 1. Analyze the objective and list_files to understand the workspace.
34
- 2. Create subtasks via task_create with parentId: "@self".
35
- 3. Assign profiles: developer (code), reviewer (review), ops (infra/setup).
36
- 4. Set dependsOn using task titles (resolved to IDs automatically).
37
- 5. Add acceptance.checks shell commands that exit 0 on success. The system runs them after each run.
38
- 6. Maximize parallelism: tasks with no shared files should not depend on each other.
39
- 7. Your LAST subtask: "Review & Steer" assigned to orchestrator, dependsOn all others.
37
+ ### Execution Planning Protocol
38
+ Before creating subtasks, you MUST:
39
+ 1. Use list_files and read_file to read every source file. Map the dependency graph (which files import which).
40
+ 2. IDENTIFY the critical path the longest sequential chain. This is your bottleneck.
41
+ 3. GROUP tasks to match worker count (shown in context as maxConcurrent=N).
42
+ - Each dependency level should have at most N parallel tasks.
43
+ - Combine small independent files into single tasks to reduce overhead.
44
+ - Separate high-risk files (many bugs/complexity) from clean ones.
45
+ - Never create more sequential levels than necessary.
46
+ 4. SHOW YOUR REASONING in the first task_create description:
47
+ - Dependency graph you found
48
+ - Critical path identified
49
+ - Why you grouped tasks this way
40
50
 
41
- ### Design First
42
- For multi-file projects, your FIRST subtask should create a .design.md with:
43
- - Module map: which files, what each exports (function signatures with types)
44
- - Conventions: naming, error handling, patterns (e.g., factory functions for servers)
45
- All subsequent developer tasks must read .design.md before writing code.
51
+ ### Task Creation Rules
52
+ - Create subtasks via task_create with parentId: "@self".
53
+ - Assign profiles: developer (code), reviewer (review), ops (infra/setup).
54
+ - Set dependsOn using task titles (resolved to IDs automatically).
55
+ - Fewer tasks with more work each > many tiny serial tasks.
56
+ - A file and its only dependent CAN be in the same task.
57
+ - Tests can be combined with the last implementation task.
58
+ - Your LAST subtask: "Review & Steer" assigned to orchestrator, dependsOn all others.
46
59
 
47
60
  ### Acceptance Criteria
48
61
  Every subtask MUST have acceptance.checks — shell commands that verify "done" (exit 0 = pass).
62
+ Checks must test BEHAVIOR (run the code, import the module), not string patterns (grep for text).
49
63
  The system runs them automatically after each run. If any fail, the task stays open.
50
64
  Examples:
51
- - File exists: test -f url-shortener/src/store.ts
52
- - Compiles: cd url-shortener && npx tsc --noEmit
53
- - Tests pass: cd url-shortener && npx vitest run
54
- - Export exists: grep -q "export.*startServer" url-shortener/src/server.ts
65
+ - Compiles: npx tsc --noEmit
66
+ - Tests pass: npx vitest run
67
+ - Module works: node -e "import('./src/db.js').then(m => process.exit(m.getById ? 0 : 1))"
68
+ - File exists: test -f src/types.ts
69
+
70
+ ### Design First
71
+ For multi-file projects, your FIRST subtask should create a .design.md with:
72
+ - Module map: which files, what each exports (function signatures with types)
73
+ - Conventions: naming, error handling, patterns
74
+ All subsequent developer tasks must read .design.md before writing code.
55
75
 
56
76
  ### Steering Mode (when running a Review & Steer task)
57
77
  Read the sibling task list in your context — it shows status, run count, and check failures with error details.
58
78
  - All checks pass → done.
59
79
  - Tasks with 0 runs still open → they will be picked up, do not recreate them.
60
- - Checks failing → read the specific error in the check detail, then create a targeted fix task addressing that exact error. Do not create broad "fix everything" tasks.
80
+ - Checks failing → read the specific error in the check detail, then create a targeted fix task addressing that exact error.
61
81
  - Task stagnant (3+ failed runs) → redefine with smaller scope or reassign to different profile.
62
- - Before creating ANY task, check if an existing open sibling already covers the same work. If yes, do not create a duplicate — the existing task will be retried.
82
+ - Before creating ANY task, check if an existing open sibling already covers the same work.
63
83
  - After creating fix tasks, create one more Review & Steer depending on them, then done.`,
64
84
  };
65
85
  const CAP_ROLE_DEVELOPER = {
66
86
  name: 'role-developer',
67
87
  description: 'Developer role: writes code, creates files, runs commands.',
88
+ acceptance: [
89
+ { name: 'file-changes-produced', command: 'test $(find src tests -name "*.ts" -newer .weaver/swarm.json 2>/dev/null | wc -l) -gt 0 || test $(find src tests -name "*.js" -newer .weaver/swarm.json 2>/dev/null | wc -l) -gt 0', condition: 'src' },
90
+ ],
68
91
  prompt: `## YOUR ROLE: Developer
69
92
  You write code and produce files. Execute the task directly — do not delegate.
70
93
 
@@ -112,8 +135,8 @@ const CAP_SHELL = {
112
135
  };
113
136
  const CAP_TASK_MGMT = {
114
137
  name: 'task-mgmt',
115
- description: 'Create swarm subtasks.',
116
- tools: [OP_TASK_CREATE],
138
+ description: 'Create and inspect swarm subtasks.',
139
+ tools: [OP_TASK_CREATE, 'task_list', 'task_get', 'task_update'],
117
140
  prompt: `## Task Management
118
141
  - task_create(title, description?, assignedProfile?, parentId?, dependsOn?, complexity?, acceptance?):
119
142
  Creates a subtask in the swarm task pool. Returns task ID.
@@ -122,6 +145,9 @@ const CAP_TASK_MGMT = {
122
145
  - assignedProfile: "developer" | "reviewer" | "ops" | "orchestrator". Omit for auto-routing.
123
146
  - parentId: "@self" to nest under current task. Omit for top-level.
124
147
  - dependsOn: Array of task titles. Resolved to IDs automatically.
148
+ - task_list(status?): List tasks in the swarm. Optionally filter by status (pending, in-progress, done, failed).
149
+ - task_get(id): Get full details of a specific task.
150
+ - task_update(id, notes?, files?, description?): Update a task's notes, files list, or description.
125
151
  - complexity: "trivial" | "simple" | "moderate" | "complex".
126
152
  - acceptance: { checks: [{ name: string, command: string }] } — shell commands that exit 0 on success.`,
127
153
  };
@@ -229,17 +255,22 @@ const CAP_VERIFICATION = {
229
255
  name: 'verification',
230
256
  description: 'TypeScript compilation and test runner verification.',
231
257
  tools: [OP_RUN_SHELL],
258
+ acceptance: [
259
+ { name: 'tsc-compiles', command: 'npx tsc --noEmit', condition: "find src -name '*.ts' | head -1 | grep -q ." },
260
+ ],
232
261
  prompt: `## Verification
233
- - tsc_check: npx tsc --noEmit — returns TypeScript compilation errors or empty on success.
234
- - test_run: npx vitest run — returns test results with pass/fail counts.`,
262
+ Use run_shell for compilation and test verification:
263
+ - npx tsc --noEmit — returns TypeScript compilation errors or empty on success.
264
+ - npx vitest run — returns test results with pass/fail counts.`,
235
265
  };
236
266
  const CAP_CROSS_FILE_CHECK = {
237
267
  name: 'cross-file-check',
238
268
  description: 'Cross-file dependency verification.',
239
269
  tools: [OP_READ_FILE, OP_LIST_FILES, OP_RUN_SHELL],
240
270
  prompt: `## Cross-File Checks
241
- Use grep (via run_shell) to find all import/export references across files.
242
- Use read_file to verify import paths resolve to actual exports.`,
271
+ Use list_files to find relevant files, read_file to inspect them,
272
+ and run_shell with grep to find all import/export references across files.
273
+ Verify import paths resolve to actual exports.`,
243
274
  };
244
275
  const CAP_PROJECT_SETUP = {
245
276
  name: 'project-setup',
@@ -254,7 +285,7 @@ const CAP_SECURITY = {
254
285
  description: 'Security audit tools.',
255
286
  tools: [OP_READ_FILE, OP_LIST_FILES, OP_RUN_SHELL],
256
287
  prompt: `## Security
257
- Use grep (via run_shell) to scan for hardcoded secrets, eval(), shell injection patterns.
288
+ Use list_files to discover files, read_file to inspect them, and run_shell with grep to scan for hardcoded secrets, eval(), shell injection patterns.
258
289
  Use npm audit (via run_shell) for dependency vulnerabilities.
259
290
  Finding format: FILE:LINE | SEVERITY (critical/high/medium/low) | ISSUE.`,
260
291
  };
@@ -323,7 +354,7 @@ export const BUILT_IN_CAPABILITIES = [
323
354
  // ---------------------------------------------------------------------------
324
355
  /** Capability pools per profile role. Triage selects from these per task. */
325
356
  export const PROFILE_CAPABILITIES = {
326
- orchestrator: ['core', 'role-orchestrator', 'decomposition', 'routing', 'task-mgmt', 'context'],
357
+ orchestrator: ['core', 'role-orchestrator', 'decomposition', 'routing', 'task-mgmt', 'shell', 'context'],
327
358
  developer: ['core', 'role-developer', 'file-ops', 'shell', 'verification', 'cross-file-check', 'context'],
328
359
  'fw-developer': ['core', 'role-developer', 'file-ops', 'shell', 'verification', 'cross-file-check', 'fw-grammar', 'fw-validate', 'fw-cli', 'context'],
329
360
  reviewer: ['core', 'role-reviewer', 'code-review', 'security', 'context'],
@@ -334,6 +365,29 @@ const capabilityMap = new Map(BUILT_IN_CAPABILITIES.map(c => [c.name, c]));
334
365
  export function getCapability(name) {
335
366
  return capabilityMap.get(name);
336
367
  }
368
+ /**
369
+ * Collect all acceptance checks from a profile's capabilities.
370
+ * Deduplicates by check name — first occurrence wins.
371
+ */
372
+ export function getCapabilityAcceptanceChecks(profileId) {
373
+ const capNames = PROFILE_CAPABILITIES[profileId];
374
+ if (!capNames)
375
+ return [];
376
+ const seen = new Set();
377
+ const checks = [];
378
+ for (const capName of capNames) {
379
+ const cap = capabilityMap.get(capName);
380
+ if (!cap?.acceptance)
381
+ continue;
382
+ for (const check of cap.acceptance) {
383
+ if (!seen.has(check.name)) {
384
+ seen.add(check.name);
385
+ checks.push(check);
386
+ }
387
+ }
388
+ }
389
+ return checks;
390
+ }
337
391
  /** List all available capabilities. */
338
392
  export function listCapabilities() {
339
393
  return [...BUILT_IN_CAPABILITIES];
@@ -1 +1 @@
1
- {"version":3,"file":"capability-registry.js","sourceRoot":"","sources":["../../src/bot/capability-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"capability-registry.js","sourceRoot":"","sources":["../../src/bot/capability-registry.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,14 @@
10
10
  * Built-in capabilities ship with the pack. Custom capabilities can be
11
11
  * added per-workspace via .weaver/capabilities/.
12
12
  */
13
+ export interface CapabilityAcceptanceCheck {
14
+ /** Human-readable check name (e.g. 'compiles', 'tests-pass'). */
15
+ name: string;
16
+ /** Shell command that exits 0 on success. */
17
+ command: string;
18
+ /** Only run if this file exists in the workspace (e.g. 'tsconfig.json'). */
19
+ condition?: string;
20
+ }
13
21
  export interface CapabilityDefinition {
14
22
  /** Unique identifier (e.g. 'typescript', 'fw-grammar'). */
15
23
  name: string;
@@ -19,5 +27,7 @@ export interface CapabilityDefinition {
19
27
  prompt: string;
20
28
  /** Tool operation names this capability grants (e.g. ['write_file', 'patch_file']). */
21
29
  tools?: string[];
30
+ /** Deterministic acceptance checks auto-merged into every task using this capability. */
31
+ acceptance?: CapabilityAcceptanceCheck[];
22
32
  }
23
33
  //# sourceMappingURL=capability-types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"capability-types.d.ts","sourceRoot":"","sources":["../../src/bot/capability-types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,2DAA2D;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,+DAA+D;IAC/D,WAAW,EAAE,MAAM,CAAC;IACpB,oEAAoE;IACpE,MAAM,EAAE,MAAM,CAAC;IACf,uFAAuF;IACvF,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB"}
1
+ {"version":3,"file":"capability-types.d.ts","sourceRoot":"","sources":["../../src/bot/capability-types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;GAIG;AACH,MAAM,WAAW,yBAAyB;IACxC,iEAAiE;IACjE,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,2DAA2D;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,+DAA+D;IAC/D,WAAW,EAAE,MAAM,CAAC;IACpB,oEAAoE;IACpE,MAAM,EAAE,MAAM,CAAC;IACf,uFAAuF;IACvF,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,yFAAyF;IACzF,UAAU,CAAC,EAAE,yBAAyB,EAAE,CAAC;CAC1C"}
@@ -1 +1 @@
1
- {"version":3,"file":"cli-provider.d.ts","sourceRoot":"","sources":["../../src/bot/cli-provider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAUhH,qBAAa,gBAAiB,YAAW,gBAAgB;IACvD,OAAO,CAAC,GAAG,CAA+B;IAC1C,OAAO,CAAC,KAAK,CAAC,CAAS;IACvB,OAAO,CAAC,EAAE,eAAe,CAAC;gBAEd,GAAG,EAAE,YAAY,GAAG,aAAa,EAAE,KAAK,CAAC,EAAE,MAAM;IAKvD,MAAM,CAAC,OAAO,EAAE;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACjC,MAAM,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IA+B7B,MAAM,CAAC,OAAO,EAAE;QACrB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACjC,MAAM,EAAE,MAAM,CAAC;KAChB,GAAG,aAAa,CAAC,WAAW,CAAC;IAmBxB,eAAe,CAAC,OAAO,EAAE;QAC7B,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACjC,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,cAAc,EAAE,CAAC;KACzB,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,SAAS,CAAC,EAAE,aAAa,EAAE,CAAA;KAAE,CAAC;YAK9D,SAAS;IAqExB,OAAO,CAAC,SAAS;CAgBlB"}
1
+ {"version":3,"file":"cli-provider.d.ts","sourceRoot":"","sources":["../../src/bot/cli-provider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAUhH,qBAAa,gBAAiB,YAAW,gBAAgB;IACvD,OAAO,CAAC,GAAG,CAA+B;IAC1C,OAAO,CAAC,KAAK,CAAC,CAAS;IACvB,OAAO,CAAC,EAAE,eAAe,CAAC;gBAEd,GAAG,EAAE,YAAY,GAAG,aAAa,EAAE,KAAK,CAAC,EAAE,MAAM;IAKvD,MAAM,CAAC,OAAO,EAAE;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACjC,MAAM,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IA+B7B,MAAM,CAAC,OAAO,EAAE;QACrB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACjC,MAAM,EAAE,MAAM,CAAC;KAChB,GAAG,aAAa,CAAC,WAAW,CAAC;IAmBxB,eAAe,CAAC,OAAO,EAAE;QAC7B,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACjC,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,cAAc,EAAE,CAAC;KACzB,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,SAAS,CAAC,EAAE,aAAa,EAAE,CAAA;KAAE,CAAC;YAK9D,SAAS;IAsExB,OAAO,CAAC,SAAS;CAgBlB"}
@@ -58,13 +58,14 @@ export class CliAgentProvider {
58
58
  return { result };
59
59
  }
60
60
  async *streamRaw(userPrompt, systemPrompt) {
61
- const args = ['-p', '--output-format', 'stream-json', '--include-partial-messages'];
62
- if (this.model) {
63
- args.push('--model', this.model);
64
- }
65
- if (systemPrompt) {
66
- args.push('--system-prompt', systemPrompt);
67
- }
61
+ // Use centralized CLI config — enforces --tools "" and --strict-mcp-config
62
+ const { getCliBaseArgs } = await import('@synergenius/flow-weaver/agent');
63
+ const args = getCliBaseArgs({
64
+ model: this.model,
65
+ systemPrompt,
66
+ outputFormat: 'stream-json',
67
+ includePartialMessages: true,
68
+ });
68
69
  const child = spawn('claude', args, {
69
70
  stdio: ['pipe', 'pipe', 'pipe'],
70
71
  env: childEnv,
@@ -1 +1 @@
1
- {"version":3,"file":"cli-provider.js","sourceRoot":"","sources":["../../src/bot/cli-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli-provider.js","sourceRoot":"","sources":["../../src/bot/cli-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAChF,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpD,yEAAyE;AACzE,MAAM,QAAQ,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AACpC,OAAO,QAAQ,CAAC,UAAU,CAAC;AAE3B,MAAM,OAAO,gBAAgB;IACnB,GAAG,CAA+B;IAClC,KAAK,CAAU;IACvB,OAAO,CAAmB;IAE1B,YAAY,GAAiC,EAAE,KAAc;QAC3D,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAIZ;QACC,MAAM,YAAY,GAAG,MAAM,iBAAiB,EAAE,CAAC;QAE/C,MAAM,UAAU,GACd,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ;YACjC,CAAC,CAAC,OAAO,CAAC,OAAO;YACjB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAE/C,MAAM,UAAU,GAAG,aAAa,UAAU,sBAAsB,OAAO,CAAC,MAAM,EAAE,CAAC;QAEjF,IAAI,IAAI,CAAC,GAAG,KAAK,YAAY,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAkB,EAAE,CAAC;YACjC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE,CAAC;gBACnE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrB,CAAC;YACD,MAAM,GAAG,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;QAED,6DAA6D;QAC7D,MAAM,GAAG,GAAG,QAAQ,CAAC,uCAAuC,EAAE;YAC5D,KAAK,EAAE,YAAY,GAAG,MAAM,GAAG,UAAU;YACzC,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC/B,OAAO,EAAE,kBAAkB;YAC3B,GAAG,EAAE,QAAQ;SACd,CAAC,CAAC,IAAI,EAAE,CAAC;QAEV,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,CAAC,MAAM,CAAC,OAIb;QACC,MAAM,YAAY,GAAG,MAAM,iBAAiB,EAAE,CAAC;QAE/C,MAAM,UAAU,GACd,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ;YACjC,CAAC,CAAC,OAAO,CAAC,OAAO;YACjB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAE/C,MAAM,UAAU,GAAG,aAAa,UAAU,sBAAsB,OAAO,CAAC,MAAM,EAAE,CAAC;QAEjF,IAAI,IAAI,CAAC,GAAG,KAAK,YAAY,EAAE,CAAC;YAC9B,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QAClD,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC1C,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YACrD,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,OAKrB;QACC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC1C,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;IAEO,KAAK,CAAC,CAAC,SAAS,CAAC,UAAkB,EAAE,YAAqB;QAChE,2EAA2E;QAC3E,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,gCAAgC,CAAC,CAAC;QAC1E,MAAM,IAAI,GAAG,cAAc,CAAC;YAC1B,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,YAAY;YACZ,YAAY,EAAE,aAAa;YAC3B,sBAAsB,EAAE,IAAI;SAC7B,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE;YAClC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC/B,GAAG,EAAE,QAAQ;SACd,CAAC,CAAC;QACH,UAAU,CAAC,KAAK,CAAC,CAAC;QAElB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC9B,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QAElB,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YAC9B,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxB,CAAC,EAAE,kBAAkB,CAAC,CAAC;QAEvB,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,IAAI,CAAC;YACH,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBACtC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC1B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACjC,MAAM,GAAG,KAAK,CAAC,GAAG,EAAG,CAAC;gBAEtB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;oBACpC,IAAI,CAAC,KAAK;wBAAE,SAAS;oBAErB,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;wBAC1D,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,IAAI,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;oBAC/D,CAAC;oBAED,MAAM,KAAK,CAAC;gBACd,CAAC;YACH,CAAC;YAED,2BAA2B;YAC3B,IAAI,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;gBAClB,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;gBACtC,IAAI,KAAK,EAAE,CAAC;oBACV,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;wBAC1D,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,IAAI,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;oBAC/D,CAAC;oBACD,MAAM,KAAK,CAAC;gBACd,CAAC;YACH,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC;QAED,wBAAwB;QACxB,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1C,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;gBACzB,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;oBACvB,MAAM,CAAC,IAAI,KAAK,CAAC,+BAA+B,IAAI,EAAE,CAAC,CAAC,CAAC;gBAC3D,CAAC;qBAAM,CAAC;oBACN,OAAO,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC,CAAC,CAAC;YACH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,SAAS,CAAC,IAAY;QAC5B,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC1B,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QACjF,CAAC;QAED,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAC3C,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9B,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,yCAAyC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Pre-flight validator — runs before the swarm starts to catch config bugs.
3
+ *
4
+ * Validates that the tool pipeline is intact:
5
+ * 1. Every BOT_TOOLS entry has a TOOL_SCHEMAS entry (schema completeness)
6
+ * 2. Every schema'd tool has an execution handler (handler completeness)
7
+ * 3. Every mode's resolveToolsForTask produces only schema'd tools
8
+ * 4. Capability-granted tools are all schema'd
9
+ * 5. MCP bridge round-trip (create bridge, call tool via socket, verify result)
10
+ *
11
+ * Fails fast with clear error messages before any AI calls are made.
12
+ */
13
+ export interface PreflightError {
14
+ check: string;
15
+ tool: string;
16
+ message: string;
17
+ }
18
+ export interface PreflightResult {
19
+ passed: boolean;
20
+ errors: PreflightError[];
21
+ warnings: PreflightError[];
22
+ checks: {
23
+ name: string;
24
+ passed: boolean;
25
+ count: number;
26
+ }[];
27
+ }
28
+ /**
29
+ * Run all pre-flight checks. Returns a result with errors and warnings.
30
+ * Call this before starting the swarm — if errors exist, abort.
31
+ */
32
+ export declare function runPreflight(options?: {
33
+ capabilities?: string[];
34
+ mode?: string;
35
+ }): PreflightResult;
36
+ /**
37
+ * Runtime check: create a real MCP bridge, send a test tool call through the
38
+ * Unix socket, verify the round-trip. Catches MCP tool server startup failures,
39
+ * socket connectivity issues, and executor wiring bugs.
40
+ *
41
+ * Returns a PreflightResult that can be merged with the static checks.
42
+ */
43
+ export declare function runBridgePreflight(): Promise<PreflightResult>;
44
+ /**
45
+ * Format preflight result for console output.
46
+ */
47
+ export declare function formatPreflightResult(result: PreflightResult): string;
48
+ //# sourceMappingURL=preflight.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preflight.d.ts","sourceRoot":"","sources":["../../src/bot/preflight.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAiBH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC5D;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,CAAC,EAAE;IACrC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GAAG,eAAe,CAyFlB;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,eAAe,CAAC,CAoGnE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAiCrE"}
@@ -0,0 +1,247 @@
1
+ /**
2
+ * Pre-flight validator — runs before the swarm starts to catch config bugs.
3
+ *
4
+ * Validates that the tool pipeline is intact:
5
+ * 1. Every BOT_TOOLS entry has a TOOL_SCHEMAS entry (schema completeness)
6
+ * 2. Every schema'd tool has an execution handler (handler completeness)
7
+ * 3. Every mode's resolveToolsForTask produces only schema'd tools
8
+ * 4. Capability-granted tools are all schema'd
9
+ * 5. MCP bridge round-trip (create bridge, call tool via socket, verify result)
10
+ *
11
+ * Fails fast with clear error messages before any AI calls are made.
12
+ */
13
+ import * as net from 'node:net';
14
+ import * as fs from 'node:fs';
15
+ import { ALL_TOOLS, BOT_TOOLS, resolveToolsForTask } from './tool-registry.js';
16
+ import { TOOL_SCHEMAS } from '../node-types/plan-task.js';
17
+ // Known execution handlers — tools handled by weaver-tools.ts (bot context)
18
+ // and assistant-tools.ts (assistant context). Maintained manually because
19
+ // the handlers are switch/case statements, not a registry.
20
+ const WEAVER_TOOL_HANDLERS = new Set([
21
+ 'read_file', 'write_file', 'patch_file', 'list_files', 'run_shell',
22
+ 'validate', 'tsc_check', 'run_tests', 'learn', 'recall', 'remember',
23
+ 'web_fetch', 'task_create', 'task_list', 'task_get', 'task_update',
24
+ 'ask_user', 'done', 'complete', 'respond',
25
+ ]);
26
+ /**
27
+ * Run all pre-flight checks. Returns a result with errors and warnings.
28
+ * Call this before starting the swarm — if errors exist, abort.
29
+ */
30
+ export function runPreflight(options) {
31
+ const errors = [];
32
+ const warnings = [];
33
+ const checks = [];
34
+ // 1. Schema completeness — every BOT_TOOLS entry has a TOOL_SCHEMAS entry
35
+ {
36
+ const missing = BOT_TOOLS
37
+ .map(t => t.name)
38
+ .filter(name => !TOOL_SCHEMAS[name]);
39
+ checks.push({
40
+ name: 'schema-completeness',
41
+ passed: missing.length === 0,
42
+ count: BOT_TOOLS.length - missing.length,
43
+ });
44
+ for (const name of missing) {
45
+ errors.push({
46
+ check: 'schema-completeness',
47
+ tool: name,
48
+ message: `Tool '${name}' is in BOT_TOOLS (described in system prompt) but has no TOOL_SCHEMAS entry. The model will see it but cannot call it.`,
49
+ });
50
+ }
51
+ }
52
+ // 2. Handler completeness — every TOOL_SCHEMAS entry has an execution handler
53
+ {
54
+ const schemaNames = Object.keys(TOOL_SCHEMAS);
55
+ const missing = schemaNames.filter(name => !WEAVER_TOOL_HANDLERS.has(name));
56
+ checks.push({
57
+ name: 'handler-completeness',
58
+ passed: missing.length === 0,
59
+ count: schemaNames.length - missing.length,
60
+ });
61
+ for (const name of missing) {
62
+ errors.push({
63
+ check: 'handler-completeness',
64
+ tool: name,
65
+ message: `Tool '${name}' has a TOOL_SCHEMAS entry but no execution handler in weaver-tools.ts or assistant-tools.ts. Calls will return "Unknown tool".`,
66
+ });
67
+ }
68
+ }
69
+ // 3. Mode consistency — every mode produces only schema'd tools
70
+ {
71
+ let modeErrors = 0;
72
+ for (const mode of ['create', 'modify', 'read', 'batch']) {
73
+ const modeTools = resolveToolsForTask({ mode });
74
+ for (const name of modeTools) {
75
+ if (!TOOL_SCHEMAS[name]) {
76
+ modeErrors++;
77
+ errors.push({
78
+ check: 'mode-consistency',
79
+ tool: name,
80
+ message: `Mode '${mode}' grants tool '${name}' via resolveToolsForTask but it has no TOOL_SCHEMAS entry.`,
81
+ });
82
+ }
83
+ }
84
+ }
85
+ checks.push({
86
+ name: 'mode-consistency',
87
+ passed: modeErrors === 0,
88
+ count: 4 - (modeErrors > 0 ? 1 : 0),
89
+ });
90
+ }
91
+ // 4. Registry-schema alignment — every ALL_TOOLS entry should have a schema
92
+ {
93
+ const allNames = ALL_TOOLS.map(t => t.name);
94
+ const missing = allNames.filter(name => !TOOL_SCHEMAS[name]);
95
+ checks.push({
96
+ name: 'registry-schema-alignment',
97
+ passed: true, // warnings only — not a blocker
98
+ count: allNames.length - missing.length,
99
+ });
100
+ for (const name of missing) {
101
+ warnings.push({
102
+ check: 'registry-schema-alignment',
103
+ tool: name,
104
+ message: `Tool '${name}' is in ALL_TOOLS but has no TOOL_SCHEMAS entry. If it's a bot-only or assistant-only tool, this may be intentional.`,
105
+ });
106
+ }
107
+ }
108
+ return {
109
+ passed: errors.length === 0,
110
+ errors,
111
+ warnings,
112
+ checks,
113
+ };
114
+ }
115
+ /**
116
+ * Runtime check: create a real MCP bridge, send a test tool call through the
117
+ * Unix socket, verify the round-trip. Catches MCP tool server startup failures,
118
+ * socket connectivity issues, and executor wiring bugs.
119
+ *
120
+ * Returns a PreflightResult that can be merged with the static checks.
121
+ */
122
+ export async function runBridgePreflight() {
123
+ const errors = [];
124
+ const checks = [];
125
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
126
+ let bridge = null;
127
+ try {
128
+ const { createMcpBridge } = await import('@synergenius/flow-weaver/agent');
129
+ const { WEAVER_TOOLS } = await import('./weaver-tools.js');
130
+ // Create a bridge with a test executor
131
+ let testCallReceived = false;
132
+ bridge = await createMcpBridge(WEAVER_TOOLS.slice(0, 1), // one tool is enough
133
+ async (name) => {
134
+ testCallReceived = true;
135
+ return { result: `preflight-ok:${name}`, isError: false };
136
+ });
137
+ // 5a. Config file exists and is valid JSON
138
+ const configExists = fs.existsSync(bridge.configPath);
139
+ if (!configExists) {
140
+ errors.push({ check: 'bridge-config', tool: '', message: 'MCP bridge config file not created' });
141
+ checks.push({ name: 'bridge-config', passed: false, count: 0 });
142
+ return { passed: false, errors, warnings: [], checks };
143
+ }
144
+ const config = JSON.parse(fs.readFileSync(bridge.configPath, 'utf-8'));
145
+ const serverConfig = config?.mcpServers?.['fw-agent'];
146
+ if (!serverConfig) {
147
+ errors.push({ check: 'bridge-config', tool: '', message: 'MCP config missing fw-agent server entry' });
148
+ checks.push({ name: 'bridge-config', passed: false, count: 0 });
149
+ return { passed: false, errors, warnings: [], checks };
150
+ }
151
+ checks.push({ name: 'bridge-config', passed: true, count: 1 });
152
+ // 5b. Socket is listening and accepts connections
153
+ const socketPath = serverConfig.env?.FW_TOOL_SOCKET;
154
+ if (!socketPath || !fs.existsSync(socketPath)) {
155
+ errors.push({ check: 'bridge-socket', tool: '', message: `Bridge socket not found: ${socketPath}` });
156
+ checks.push({ name: 'bridge-socket', passed: false, count: 0 });
157
+ return { passed: false, errors, warnings: [], checks };
158
+ }
159
+ checks.push({ name: 'bridge-socket', passed: true, count: 1 });
160
+ // 5c. Round-trip: send a tool call, get a result
161
+ const toolName = WEAVER_TOOLS[0]?.name ?? 'test';
162
+ const roundTripResult = await new Promise((resolve, reject) => {
163
+ const client = net.createConnection(socketPath, () => {
164
+ client.write(JSON.stringify({ name: toolName, args: {} }) + '\n');
165
+ });
166
+ let buf = '';
167
+ client.on('data', (chunk) => { buf += chunk.toString(); });
168
+ client.on('end', () => {
169
+ try {
170
+ resolve(JSON.parse(buf.trim()));
171
+ }
172
+ catch {
173
+ reject(new Error(`Invalid bridge response: ${buf.slice(0, 200)}`));
174
+ }
175
+ });
176
+ client.on('error', (err) => reject(err));
177
+ setTimeout(() => { client.destroy(); reject(new Error('Bridge socket round-trip timed out (5s)')); }, 5000);
178
+ });
179
+ const roundTripOk = roundTripResult.result.startsWith('preflight-ok:') && testCallReceived;
180
+ if (!roundTripOk) {
181
+ errors.push({
182
+ check: 'bridge-roundtrip',
183
+ tool: toolName,
184
+ message: `Bridge round-trip failed: received=${JSON.stringify(roundTripResult).slice(0, 200)}, callReceived=${testCallReceived}`,
185
+ });
186
+ }
187
+ checks.push({ name: 'bridge-roundtrip', passed: roundTripOk, count: roundTripOk ? 1 : 0 });
188
+ // 5d. Tool server script exists
189
+ const scriptArgs = serverConfig.args ?? [];
190
+ const scriptPath = scriptArgs[scriptArgs.length - 1];
191
+ const scriptExists = scriptPath && (fs.existsSync(scriptPath) ||
192
+ fs.existsSync(scriptPath.replace(/\.ts$/, '.js')) ||
193
+ fs.existsSync(scriptPath.replace(/\.js$/, '.ts')));
194
+ if (!scriptExists) {
195
+ errors.push({ check: 'bridge-script', tool: '', message: `MCP tool server script not found: ${scriptPath}` });
196
+ }
197
+ checks.push({ name: 'bridge-script', passed: !!scriptExists, count: scriptExists ? 1 : 0 });
198
+ }
199
+ catch (err) {
200
+ const msg = err instanceof Error ? err.message : String(err);
201
+ errors.push({ check: 'bridge-runtime', tool: '', message: `MCP bridge preflight failed: ${msg}` });
202
+ checks.push({ name: 'bridge-runtime', passed: false, count: 0 });
203
+ }
204
+ finally {
205
+ bridge?.cleanup();
206
+ }
207
+ return {
208
+ passed: errors.length === 0,
209
+ errors,
210
+ warnings: [],
211
+ checks,
212
+ };
213
+ }
214
+ /**
215
+ * Format preflight result for console output.
216
+ */
217
+ export function formatPreflightResult(result) {
218
+ const lines = ['[swarm-preflight] Validating tool pipeline...'];
219
+ for (const check of result.checks) {
220
+ const icon = check.passed ? '✓' : '✗';
221
+ lines.push(` ${icon} ${check.name} (${check.count} passed)`);
222
+ }
223
+ if (result.errors.length > 0) {
224
+ lines.push('');
225
+ lines.push(`Errors (${result.errors.length}):`);
226
+ for (const err of result.errors) {
227
+ lines.push(` ✗ [${err.check}] ${err.tool}: ${err.message}`);
228
+ }
229
+ }
230
+ if (result.warnings.length > 0) {
231
+ lines.push('');
232
+ lines.push(`Warnings (${result.warnings.length}):`);
233
+ for (const warn of result.warnings) {
234
+ lines.push(` ⚠ [${warn.check}] ${warn.tool}: ${warn.message}`);
235
+ }
236
+ }
237
+ if (result.passed) {
238
+ lines.push('');
239
+ lines.push('Preflight passed. Tool pipeline is intact.');
240
+ }
241
+ else {
242
+ lines.push('');
243
+ lines.push(`Preflight FAILED: ${result.errors.length} error(s). Fix before starting swarm.`);
244
+ }
245
+ return lines.join('\n');
246
+ }
247
+ //# sourceMappingURL=preflight.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preflight.js","sourceRoot":"","sources":["../../src/bot/preflight.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,4EAA4E;AAC5E,0EAA0E;AAC1E,2DAA2D;AAC3D,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC;IACnC,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW;IAClE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU;IACnE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa;IAClE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS;CAC1C,CAAC,CAAC;AAeH;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,OAG5B;IACC,MAAM,MAAM,GAAqB,EAAE,CAAC;IACpC,MAAM,QAAQ,GAAqB,EAAE,CAAC;IACtC,MAAM,MAAM,GAAuD,EAAE,CAAC;IAEtE,0EAA0E;IAC1E,CAAC;QACC,MAAM,OAAO,GAAG,SAAS;aACtB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;aAChB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;QACvC,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,qBAAqB;YAC3B,MAAM,EAAE,OAAO,CAAC,MAAM,KAAK,CAAC;YAC5B,KAAK,EAAE,SAAS,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM;SACzC,CAAC,CAAC;QACH,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,qBAAqB;gBAC5B,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,SAAS,IAAI,yHAAyH;aAChJ,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,CAAC;QACC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5E,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,sBAAsB;YAC5B,MAAM,EAAE,OAAO,CAAC,MAAM,KAAK,CAAC;YAC5B,KAAK,EAAE,WAAW,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM;SAC3C,CAAC,CAAC;QACH,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,sBAAsB;gBAC7B,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,SAAS,IAAI,iIAAiI;aACxJ,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,gEAAgE;IAChE,CAAC;QACC,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,KAAK,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;YACzD,MAAM,SAAS,GAAG,mBAAmB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;YAChD,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;gBAC7B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;oBACxB,UAAU,EAAE,CAAC;oBACb,MAAM,CAAC,IAAI,CAAC;wBACV,KAAK,EAAE,kBAAkB;wBACzB,IAAI,EAAE,IAAI;wBACV,OAAO,EAAE,SAAS,IAAI,kBAAkB,IAAI,6DAA6D;qBAC1G,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QACD,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,kBAAkB;YACxB,MAAM,EAAE,UAAU,KAAK,CAAC;YACxB,KAAK,EAAE,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACpC,CAAC,CAAC;IACL,CAAC;IAED,4EAA4E;IAC5E,CAAC;QACC,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7D,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,2BAA2B;YACjC,MAAM,EAAE,IAAI,EAAE,gCAAgC;YAC9C,KAAK,EAAE,QAAQ,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM;SACxC,CAAC,CAAC;QACH,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YAC3B,QAAQ,CAAC,IAAI,CAAC;gBACZ,KAAK,EAAE,2BAA2B;gBAClC,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,SAAS,IAAI,sHAAsH;aAC7I,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;QAC3B,MAAM;QACN,QAAQ;QACR,MAAM;KACP,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACtC,MAAM,MAAM,GAAqB,EAAE,CAAC;IACpC,MAAM,MAAM,GAAuD,EAAE,CAAC;IAEtE,8DAA8D;IAC9D,IAAI,MAAM,GAAQ,IAAI,CAAC;IAEvB,IAAI,CAAC;QACH,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,gCAAgC,CAAC,CAAC;QAC3E,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;QAE3D,uCAAuC;QACvC,IAAI,gBAAgB,GAAG,KAAK,CAAC;QAC7B,MAAM,GAAG,MAAM,eAAe,CAC5B,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,qBAAqB;QAC/C,KAAK,EAAE,IAAY,EAAE,EAAE;YACrB,gBAAgB,GAAG,IAAI,CAAC;YACxB,OAAO,EAAE,MAAM,EAAE,gBAAgB,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAC5D,CAAC,CACF,CAAC;QAEF,2CAA2C;QAC3C,MAAM,YAAY,GAAG,EAAE,CAAC,UAAU,CAAC,MAAO,CAAC,UAAU,CAAC,CAAC;QACvD,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,oCAAoC,EAAE,CAAC,CAAC;YACjG,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YAChE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;QACzD,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,MAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;QACxE,MAAM,YAAY,GAAG,MAAM,EAAE,UAAU,EAAE,CAAC,UAAU,CAAC,CAAC;QACtD,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,0CAA0C,EAAE,CAAC,CAAC;YACvG,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YAChE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;QACzD,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAE/D,kDAAkD;QAClD,MAAM,UAAU,GAAG,YAAY,CAAC,GAAG,EAAE,cAAc,CAAC;QACpD,IAAI,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9C,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,4BAA4B,UAAU,EAAE,EAAE,CAAC,CAAC;YACrG,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YAChE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;QACzD,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAE/D,iDAAiD;QACjD,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,MAAM,CAAC;QACjD,MAAM,eAAe,GAAG,MAAM,IAAI,OAAO,CAAuC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAClG,MAAM,MAAM,GAAG,GAAG,CAAC,gBAAgB,CAAC,UAAU,EAAE,GAAG,EAAE;gBACnD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;YACpE,CAAC,CAAC,CAAC;YACH,IAAI,GAAG,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3D,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;gBACpB,IAAI,CAAC;oBAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC;gBACxC,MAAM,CAAC;oBAAC,MAAM,CAAC,IAAI,KAAK,CAAC,4BAA4B,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC;YAC/E,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YACzC,UAAU,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAC9G,CAAC,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,gBAAgB,CAAC;QAC3F,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,kBAAkB;gBACzB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,sCAAsC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,kBAAkB,gBAAgB,EAAE;aACjI,CAAC,CAAC;QACL,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAE3F,gCAAgC;QAChC,MAAM,UAAU,GAAa,YAAY,CAAC,IAAI,IAAI,EAAE,CAAC;QACrD,MAAM,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACrD,MAAM,YAAY,GAAG,UAAU,IAAI,CACjC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;YACzB,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACjD,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAClD,CAAC;QACF,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,qCAAqC,UAAU,EAAE,EAAE,CAAC,CAAC;QAChH,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,CAAC,YAAY,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAE9F,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,gCAAgC,GAAG,EAAE,EAAE,CAAC,CAAC;QACnG,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IACnE,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,OAAO,EAAE,CAAC;IACpB,CAAC;IAED,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;QAC3B,MAAM;QACN,QAAQ,EAAE,EAAE;QACZ,MAAM;KACP,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAuB;IAC3D,MAAM,KAAK,GAAa,CAAC,+CAA+C,CAAC,CAAC;IAE1E,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QACtC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,KAAK,UAAU,CAAC,CAAC;IAChE,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC;QAChD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAChC,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,aAAa,MAAM,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC;QACpD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACnC,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;IAC3D,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,qBAAqB,MAAM,CAAC,MAAM,CAAC,MAAM,uCAAuC,CAAC,CAAC;IAC/F,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}