@synergenius/flow-weaver-pack-weaver 0.9.181 → 0.9.182
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bot/capability-registry.d.ts.map +1 -1
- package/dist/bot/capability-registry.js +107 -364
- package/dist/bot/capability-registry.js.map +1 -1
- package/dist/bot/system-prompt.d.ts.map +1 -1
- package/dist/bot/system-prompt.js +1 -8
- package/dist/bot/system-prompt.js.map +1 -1
- package/dist/node-types/plan-task.d.ts.map +1 -1
- package/dist/node-types/plan-task.js +11 -7
- package/dist/node-types/plan-task.js.map +1 -1
- package/dist/ui/capability-editor.js +105 -363
- package/dist/ui/profile-editor.js +105 -363
- package/dist/ui/swarm-dashboard.js +101 -359
- package/flowweaver.manifest.json +1 -1
- package/package.json +1 -1
- package/src/bot/capability-registry.ts +108 -365
- package/src/bot/system-prompt.ts +1 -8
- package/src/node-types/plan-task.ts +11 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capability-registry.d.ts","sourceRoot":"","sources":["../../src/bot/capability-registry.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"capability-registry.d.ts","sourceRoot":"","sources":["../../src/bot/capability-registry.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AA+SlE,2CAA2C;AAC3C,eAAO,MAAM,qBAAqB,EAAE,SAAS,oBAAoB,EA0BhE,CAAC;AAMF,6EAA6E;AAC7E,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAMzD,CAAC;AAMF,uCAAuC;AACvC,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS,CAE5E;AAED,uCAAuC;AACvC,wBAAgB,gBAAgB,IAAI,oBAAoB,EAAE,CAEzD;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,oBAAoB,EAAE,CAI9E"}
|
|
@@ -11,264 +11,105 @@ import { OP_WRITE_FILE, OP_READ_FILE, OP_PATCH_FILE, OP_LIST_FILES, OP_RUN_SHELL
|
|
|
11
11
|
// ---------------------------------------------------------------------------
|
|
12
12
|
const CAP_CORE = {
|
|
13
13
|
name: 'core',
|
|
14
|
-
description: 'Bot identity
|
|
15
|
-
prompt: `You are Weaver
|
|
14
|
+
description: 'Bot identity and system constraints. Always loaded.',
|
|
15
|
+
prompt: `You are Weaver. Execute tasks by calling tools — do not describe what you would do.
|
|
16
16
|
|
|
17
|
-
##
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
## Safety Rules
|
|
23
|
-
- Writes that shrink a file by >50% or write empty content are automatically BLOCKED.
|
|
24
|
-
- NEVER write empty or placeholder files. Every write_file call MUST contain complete, meaningful content.
|
|
25
|
-
- Blocked shell commands: rm -rf, git push, npm publish, sudo, curl|sh.
|
|
26
|
-
- Always validate BEFORE and AFTER patching.
|
|
27
|
-
- Always read a file before patching it (you need exact strings for find/replace).
|
|
28
|
-
- Use patch_file for modifications, write_file only for new files.
|
|
29
|
-
- Be concise — let tool results speak.
|
|
30
|
-
|
|
31
|
-
## File Paths
|
|
32
|
-
All file operations (read_file, write_file, list_files, etc.) resolve paths relative to the WORKSPACE ROOT.
|
|
33
|
-
Use paths like "url-shortener/src/server.ts" or "my-project/package.json".
|
|
34
|
-
NEVER use "../" prefixes — they will be blocked by the path traversal guard.`,
|
|
17
|
+
## System Constraints
|
|
18
|
+
- All file paths are relative to the workspace root. "../" is blocked.
|
|
19
|
+
- Writes that shrink a file >50% or write empty content are BLOCKED by the system.
|
|
20
|
+
- Blocked shell commands: rm -rf, git push, npm publish, sudo, curl|sh.`,
|
|
35
21
|
};
|
|
36
22
|
// ---------------------------------------------------------------------------
|
|
37
23
|
// Role capabilities — define bot identity and primary directive
|
|
38
24
|
// ---------------------------------------------------------------------------
|
|
39
25
|
const CAP_ROLE_ORCHESTRATOR = {
|
|
40
26
|
name: 'role-orchestrator',
|
|
41
|
-
description: 'Orchestrator role: decomposes objectives into
|
|
27
|
+
description: 'Orchestrator role: decomposes objectives into subtask DAGs.',
|
|
42
28
|
tools: [OP_TASK_CREATE, OP_LIST_FILES, OP_READ_FILE],
|
|
43
29
|
prompt: `## YOUR ROLE: Orchestrator
|
|
44
|
-
You
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
1. Analyze the objective
|
|
48
|
-
2.
|
|
49
|
-
3.
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
-
|
|
60
|
-
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
### Subtask Quality
|
|
65
|
-
Each subtask: focused (one concern), self-contained, properly routed, ordered by dependsOn.
|
|
66
|
-
- If an implementation task covers more than 2 files, SPLIT IT. Each task should produce 1-2 files max.
|
|
67
|
-
- Design/architecture tasks → assignedProfile: "developer" (not ops). Ops is for infra only.
|
|
68
|
-
- Add scope boundaries: "You may ONLY create/modify these files: [list]."
|
|
69
|
-
|
|
70
|
-
### Maximize Parallelism
|
|
71
|
-
- Minimize dependencies. Tasks that don't share files should NOT depend on each other.
|
|
72
|
-
- Design and Setup can often run in parallel (setup doesn't need .design.md to create boilerplate).
|
|
73
|
-
- Aim for at least 2 tasks that can run in parallel. If all tasks are serial, reconsider.
|
|
74
|
-
- BAD: A → B → C → D (serial, slow)
|
|
75
|
-
- GOOD: A → [B + C + D] → E (A blocks all, B/C/D run in parallel, E waits for all)
|
|
76
|
-
|
|
77
|
-
### Build Verification Gate
|
|
78
|
-
After implementation tasks, create a verification task (ops profile) that runs \`tsc --noEmit\`.
|
|
79
|
-
This catches compilation errors before tests run, saving time and token spend.
|
|
80
|
-
|
|
81
|
-
### Review & Steer (Convergence Loop)
|
|
82
|
-
Your LAST subtask MUST be a "Review & Steer" task assigned to yourself (orchestrator):
|
|
83
|
-
- dependsOn: ALL other subtasks
|
|
84
|
-
- acceptance: include the objective's acceptance criteria
|
|
85
|
-
|
|
86
|
-
When this task runs, you are in STEERING MODE. Read your context carefully:
|
|
87
|
-
- Sibling tasks show their status, acceptance check results, and stagnation counts
|
|
88
|
-
- Your job is to decide: are we done, or do we need more work?
|
|
89
|
-
|
|
90
|
-
STEERING DECISIONS:
|
|
91
|
-
1. ALL DONE: Every subtask has passing acceptance checks → call done
|
|
92
|
-
2. PROGRESS: Tasks are open with recent changes → create another "Review & Steer" depending on open tasks, call done
|
|
93
|
-
3. STAGNANT (stagnationCount >= 3): A task keeps failing the same way → INTERVENE:
|
|
94
|
-
- REASSIGN: Change the task description to suggest a different profile ("This might need ops help")
|
|
95
|
-
- REDEFINE: Create a new task with smaller scope or different approach, cancel the stuck one
|
|
96
|
-
- DROP: Cancel a non-essential task that's blocking progress
|
|
97
|
-
4. FIX: Acceptance checks failing with specific errors → create targeted fix tasks
|
|
98
|
-
|
|
99
|
-
After creating fix tasks, ALWAYS create another "Review & Steer" task depending on those fixes.
|
|
100
|
-
This creates the convergence loop: decompose → execute → review → fix → review → done.
|
|
101
|
-
|
|
102
|
-
### Existing Subtasks (Retries)
|
|
103
|
-
If your context shows "Parent Context" with existing sibling tasks, those are subtasks from a previous run. Do NOT create duplicates. Check what exists and only create MISSING tasks. If all subtasks already exist and look correct, just call done.
|
|
104
|
-
|
|
105
|
-
### Acceptance Criteria (Shell Scripts)
|
|
106
|
-
Every task MUST have acceptance.checks — an array of shell commands that verify "done".
|
|
107
|
-
Each command must exit 0 to pass. The system runs them AUTOMATICALLY after each completed run.
|
|
108
|
-
If any check fails, the task stays open for another run.
|
|
109
|
-
|
|
110
|
-
Write commands relative to the workspace root. Examples:
|
|
111
|
-
- File exists: test -f url-shortener/src/server.ts
|
|
112
|
-
- Compiles: cd url-shortener && npx tsc --noEmit
|
|
113
|
-
- Tests pass: cd url-shortener && npx vitest run
|
|
114
|
-
- Export exists: grep -r "export.*startServer" url-shortener/src/
|
|
115
|
-
- No console.log: ! grep -r "console.log" url-shortener/src/
|
|
116
|
-
|
|
117
|
-
### Example
|
|
118
|
-
{ operation: "task_create", args: { title: "Design: Create project contract", parentId: "@self", assignedProfile: "developer", description: "Create .design.md", acceptance: { checks: [{ name: "design exists", command: "test -f url-shortener/.design.md" }] }, dependsOn: [] } }
|
|
119
|
-
{ operation: "task_create", args: { title: "Implement storage", parentId: "@self", assignedProfile: "developer", dependsOn: ["Design: Create project contract"], description: "You may ONLY create: src/types.ts, src/storage.ts", acceptance: { checks: [{ name: "files exist", command: "test -f url-shortener/src/types.ts && test -f url-shortener/src/storage.ts" }, { name: "compiles", command: "cd url-shortener && npx tsc --noEmit" }] } } }
|
|
120
|
-
{ operation: "task_create", args: { title: "Review & Steer", parentId: "@self", assignedProfile: "orchestrator", dependsOn: ["Implement storage"], description: "Review subtask results. If all acceptance checks pass, signal done. If issues, create fix tasks + another Review & Steer." } }`,
|
|
30
|
+
You decompose objectives into subtasks. You never write code or create files directly.
|
|
31
|
+
Your only output is task_create calls + done.
|
|
32
|
+
|
|
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.
|
|
40
|
+
|
|
41
|
+
### Steering Mode (when running a Review & Steer task)
|
|
42
|
+
Read sibling task statuses and acceptance results from your context, then decide:
|
|
43
|
+
- All checks pass → done.
|
|
44
|
+
- Tasks still open → create another Review & Steer depending on them, then done.
|
|
45
|
+
- Task stagnant (3+ failed runs) → redefine with smaller scope or reassign to different profile.
|
|
46
|
+
- Checks failing → create targeted fix tasks + another Review & Steer.
|
|
47
|
+
|
|
48
|
+
### Retries
|
|
49
|
+
If sibling tasks already exist from a previous run, do NOT duplicate. Only create missing tasks.`,
|
|
121
50
|
};
|
|
122
51
|
const CAP_ROLE_DEVELOPER = {
|
|
123
52
|
name: 'role-developer',
|
|
124
|
-
description: 'Developer role: writes code, creates files, runs commands.
|
|
53
|
+
description: 'Developer role: writes code, creates files, runs commands.',
|
|
125
54
|
prompt: `## YOUR ROLE: Developer
|
|
126
|
-
You
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
If the task seems too large, do your best — the orchestrator already decomposed it for you.
|
|
135
|
-
|
|
136
|
-
### File Paths
|
|
137
|
-
All paths in write_file/patch_file are RELATIVE TO THE WORKSPACE ROOT. If the task says "inside todo-app/", your paths MUST start with todo-app/ (e.g., todo-app/src/cli.ts, NOT src/cli.ts).
|
|
138
|
-
|
|
139
|
-
### Write Protocol
|
|
140
|
-
Before writing ANY file:
|
|
141
|
-
1. list_files to check if the file already exists
|
|
142
|
-
2. If it exists → read_file, then patch_file with targeted changes
|
|
143
|
-
3. If it does NOT exist → write_file with COMPLETE content
|
|
144
|
-
Never call write_file on a file that already exists — the shrink guard will block you and waste a tool call.
|
|
145
|
-
|
|
146
|
-
### Sibling Awareness
|
|
147
|
-
Your context may include files modified by sibling tasks. Before writing a file:
|
|
148
|
-
- Check "Previous Task Completions" → if a sibling already created it, READ it first, then patch_file
|
|
149
|
-
- Never blindly overwrite files your siblings created
|
|
150
|
-
|
|
151
|
-
### Code Quality
|
|
152
|
-
- Write COMPLETE, WORKING code. No TODOs, no placeholders, no empty function bodies, no "// implement later".
|
|
153
|
-
- Every function must be fully implemented with real logic.
|
|
154
|
-
- Use proper TypeScript types. Use strict mode patterns.
|
|
155
|
-
- Export everything that other files will import.
|
|
156
|
-
- HTTP servers MUST be wrapped in an exported \`startServer(port?: number)\` function returning the server handle. NEVER start a server as a top-level side-effect. Tests need lifecycle control.
|
|
157
|
-
- Handle edge cases (empty input, file not found, invalid args).
|
|
158
|
-
- Use ESM-compatible patterns: import.meta.url instead of __dirname, import.meta.filename instead of __filename. Use fileURLToPath(import.meta.url) for path resolution.
|
|
159
|
-
|
|
160
|
-
### Test Quality (when writing tests)
|
|
161
|
-
- NEVER duplicate production code in tests. If the source lacks exports needed for testing, report NEEDS_CONTEXT.
|
|
162
|
-
- Tests MUST use dynamic ports (port 0) to avoid conflicts. Never hardcode a port number.
|
|
163
|
-
- Tests MUST import the module under test — not rewrite its logic inline.
|
|
164
|
-
- Reset state between tests. Server handles MUST be closed in afterEach.
|
|
165
|
-
|
|
166
|
-
### Output Requirements
|
|
167
|
-
Your plan MUST include at least one write_file, patch_file, or run_shell step.
|
|
168
|
-
A plan with only read_file, list_files, or respond steps is a FAILURE — you must produce artifacts.`,
|
|
55
|
+
You write code and produce files. Execute the task directly — do not delegate.
|
|
56
|
+
|
|
57
|
+
1. Read existing files before modifying them (you need exact content for patches).
|
|
58
|
+
2. Use write_file for new files, patch_file for edits to existing files.
|
|
59
|
+
3. Write complete, working code. No TODOs, no placeholders, no empty bodies.
|
|
60
|
+
4. If a .design.md exists, follow its interfaces and contracts.
|
|
61
|
+
5. If sibling tasks modified files (shown in context), read them before editing.
|
|
62
|
+
6. You must produce at least one file or shell output. Read-only plans are failures.`,
|
|
169
63
|
};
|
|
170
64
|
const CAP_ROLE_REVIEWER = {
|
|
171
65
|
name: 'role-reviewer',
|
|
172
|
-
description: 'Reviewer role:
|
|
66
|
+
description: 'Reviewer role: evaluates code quality and correctness.',
|
|
173
67
|
prompt: `## YOUR ROLE: Reviewer
|
|
174
|
-
You
|
|
175
|
-
|
|
176
|
-
Your job:
|
|
177
|
-
1. Read the files that were created/modified
|
|
178
|
-
2. Check against the task description and project conventions
|
|
179
|
-
3. Report findings with file:line and severity
|
|
180
|
-
4. Use patch_file to fix minor issues directly
|
|
181
|
-
5. For major issues, document them clearly in your report
|
|
182
|
-
|
|
183
|
-
You can read files and apply targeted patches.`,
|
|
68
|
+
You read and evaluate code. Fix minor issues directly with patch_file. Report major issues.
|
|
69
|
+
Report format: FILE:LINE | SEVERITY (critical/high/medium/low) | ISSUE → Fix suggestion.`,
|
|
184
70
|
};
|
|
185
71
|
const CAP_ROLE_OPS = {
|
|
186
72
|
name: 'role-ops',
|
|
187
|
-
description: 'Ops role:
|
|
73
|
+
description: 'Ops role: project setup, infrastructure, configs.',
|
|
188
74
|
prompt: `## YOUR ROLE: Ops
|
|
189
|
-
You
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
1. Create the project directory first: run_shell with mkdir -p <project>/src
|
|
193
|
-
2. Write config files (package.json, tsconfig.json) using write_file
|
|
194
|
-
3. Install dependencies with run_shell (npm install)
|
|
195
|
-
4. Ensure the project structure is ready for developers
|
|
196
|
-
|
|
197
|
-
### File Paths
|
|
198
|
-
All paths are RELATIVE TO THE WORKSPACE ROOT. If the project is in a subfolder (e.g., todo-app/), ALL your paths must include that prefix: todo-app/package.json, todo-app/tsconfig.json, todo-app/src/.
|
|
199
|
-
|
|
200
|
-
### Design Tasks
|
|
201
|
-
When the task is a Design task, create a .design.md file with detailed TypeScript interfaces, module exports, and dependency graph. This file must contain copy-paste ready interface definitions that developers will implement exactly.
|
|
202
|
-
|
|
203
|
-
### Output Requirements
|
|
204
|
-
Your plan MUST include write_file and/or run_shell steps that create real files.
|
|
205
|
-
You execute infrastructure tasks directly.`,
|
|
75
|
+
You set up project infrastructure — directories, configs, dependencies.
|
|
76
|
+
For design tasks, create .design.md with TypeScript interfaces and export contracts.
|
|
77
|
+
You must produce files or shell output. Execute directly — do not delegate.`,
|
|
206
78
|
};
|
|
207
79
|
const CAP_FILE_OPS = {
|
|
208
80
|
name: 'file-ops',
|
|
209
|
-
description: 'File read/write/patch operations
|
|
81
|
+
description: 'File read/write/patch operations.',
|
|
210
82
|
tools: [OP_READ_FILE, OP_WRITE_FILE, OP_PATCH_FILE, OP_LIST_FILES],
|
|
211
83
|
prompt: `## File Operations
|
|
212
|
-
- read_file:
|
|
213
|
-
- write_file:
|
|
214
|
-
- patch_file: Surgical find-and-replace
|
|
215
|
-
- list_files:
|
|
216
|
-
|
|
217
|
-
## Best Practices
|
|
218
|
-
PREFER patch_file over write_file for modifying existing files (surgical edits, no truncation risk).
|
|
219
|
-
Use read_file to understand a file before modifying it.
|
|
220
|
-
Use list_files to discover project structure.
|
|
221
|
-
|
|
222
|
-
## Write Protocol
|
|
223
|
-
Before writing ANY file:
|
|
224
|
-
1. Use list_files to check if the file already exists
|
|
225
|
-
2. If it EXISTS → read_file first, then patch_file with targeted changes
|
|
226
|
-
3. If it does NOT exist → write_file with COMPLETE content
|
|
227
|
-
NEVER call write_file on a file that already exists — use patch_file instead.
|
|
228
|
-
Empty content and writes that shrink an existing file by >50% are automatically BLOCKED and waste a tool call.`,
|
|
84
|
+
- read_file(file): Returns file content as string. Paths are relative to workspace root.
|
|
85
|
+
- write_file(file, content): Creates or overwrites a file. Content must be the COMPLETE file. Writes that shrink an existing file by >50% or write empty content are BLOCKED.
|
|
86
|
+
- patch_file(file, patches): Surgical find-and-replace. patches: [{ find: "exact old text", replace: "new text" }]. Requires exact string match.
|
|
87
|
+
- list_files(directory, pattern?): Lists files. pattern is regex filter. Returns newline-separated paths.`,
|
|
229
88
|
};
|
|
230
89
|
const CAP_SHELL = {
|
|
231
90
|
name: 'shell',
|
|
232
|
-
description: 'Shell command execution
|
|
91
|
+
description: 'Shell command execution.',
|
|
233
92
|
tools: [OP_RUN_SHELL, OP_VALIDATE, OP_TSC_CHECK, OP_RUN_TESTS],
|
|
234
93
|
prompt: `## Shell Commands
|
|
235
|
-
- run_shell:
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
Use run_shell for running tests (npx vitest), validation (flow-weaver validate), and inspecting output.`,
|
|
94
|
+
- run_shell(command): Executes a shell command, returns stdout+stderr. Blocked commands: rm -rf, git push, npm publish, sudo, curl|sh.
|
|
95
|
+
- validate(file): Runs flow-weaver validate on a workflow file. Returns JSON diagnostics.
|
|
96
|
+
- tsc_check(): Runs npx tsc --noEmit. Returns compiler errors or empty on success.
|
|
97
|
+
- run_tests(): Runs npx vitest run. Returns test results.`,
|
|
240
98
|
};
|
|
241
99
|
const CAP_TASK_MGMT = {
|
|
242
100
|
name: 'task-mgmt',
|
|
243
|
-
description: 'Create
|
|
101
|
+
description: 'Create swarm subtasks.',
|
|
244
102
|
tools: [OP_TASK_CREATE],
|
|
245
|
-
prompt: `## Task Management
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
- If the task is bigger than a single file change, create subtasks instead of doing it all yourself.
|
|
256
|
-
- Minimize dependencies between subtasks to maximize parallel execution.
|
|
257
|
-
- Set complexity per subtask: trivial | simple | moderate | complex.
|
|
258
|
-
- Use dependsOn to express blocking relationships (e.g., setup before code, code before tests).
|
|
259
|
-
|
|
260
|
-
### Review Task Creation
|
|
261
|
-
After creating or modifying multiple files, create a review task:
|
|
262
|
-
- title: "Review: [what was changed]"
|
|
263
|
-
- description: List the files modified and what to check
|
|
264
|
-
- assignedProfile: "reviewer"
|
|
265
|
-
- complexity: "simple"
|
|
266
|
-
Skip review for trivial single-file tasks.
|
|
267
|
-
|
|
268
|
-
### Dependency Guidelines
|
|
269
|
-
- BAD: A → B → C → D (serial, slow)
|
|
270
|
-
- GOOD: A → [B + C + D] (A blocks all, but B/C/D run in parallel)
|
|
271
|
-
Structure as: setup → independent implementations → integration/testing.`,
|
|
103
|
+
prompt: `## Task Management
|
|
104
|
+
- task_create(title, description?, assignedProfile?, parentId?, dependsOn?, complexity?, acceptance?):
|
|
105
|
+
Creates a subtask in the swarm task pool. Returns task ID.
|
|
106
|
+
- title (required): Short task name.
|
|
107
|
+
- description: What the task should accomplish.
|
|
108
|
+
- assignedProfile: "developer" | "reviewer" | "ops" | "orchestrator". Omit for auto-routing.
|
|
109
|
+
- parentId: "@self" to nest under current task. Omit for top-level.
|
|
110
|
+
- dependsOn: Array of task titles. Resolved to IDs automatically.
|
|
111
|
+
- complexity: "trivial" | "simple" | "moderate" | "complex".
|
|
112
|
+
- acceptance: { checks: [{ name: string, command: string }] } — shell commands that exit 0 on success.`,
|
|
272
113
|
};
|
|
273
114
|
const CAP_FW_GRAMMAR = {
|
|
274
115
|
name: 'fw-grammar',
|
|
@@ -346,190 +187,91 @@ Note: compile, validate, modify, diff, diagram, and describe operations are avai
|
|
|
346
187
|
};
|
|
347
188
|
const CAP_CODE_REVIEW = {
|
|
348
189
|
name: 'code-review',
|
|
349
|
-
description: '
|
|
190
|
+
description: 'Code review tools and report format.',
|
|
350
191
|
tools: [OP_READ_FILE, OP_PATCH_FILE, OP_RUN_SHELL],
|
|
351
|
-
prompt: `## Code Review
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
- If .design.md exists, verify: exported functions match contracts, interface shapes match, error behavior matches spec
|
|
356
|
-
- Edge cases handled (empty input, null, invalid types)?
|
|
357
|
-
- Error paths covered (try/catch, validation)?
|
|
358
|
-
- Return types match function signature?
|
|
359
|
-
|
|
360
|
-
### 2. Security
|
|
361
|
-
- NO hardcoded API keys, passwords, or tokens (use env vars)
|
|
362
|
-
- NO shell: true in child_process (command injection risk)
|
|
363
|
-
- NO eval() or Function() with untrusted input
|
|
364
|
-
- User input validated and sanitized before use
|
|
365
|
-
- File paths validated (no ../ traversal)
|
|
366
|
-
|
|
367
|
-
### 3. Style & Dead Code
|
|
368
|
-
- Naming is clear and consistent with project conventions
|
|
369
|
-
- No dead code (unused variables, unreachable branches, duplicated functions across files)
|
|
370
|
-
- No duplicated logic — if two files define the same function, flag it
|
|
371
|
-
- No debug statements left in (console.log, debugger)
|
|
372
|
-
- Imports organized, no duplicates, no unused imports
|
|
373
|
-
|
|
374
|
-
### 4. Testing
|
|
375
|
-
- Unit tests exist for new/changed functions
|
|
376
|
-
- Tests cover happy path AND edge cases
|
|
377
|
-
- Error cases have tests
|
|
378
|
-
- Test isolation: state reset between tests, server handles returned and closed in afterEach
|
|
379
|
-
- No order-dependent tests (each test must pass in isolation)
|
|
380
|
-
- Tests MUST import the actual module under test — duplicated server/handler code in tests is a CRITICAL finding (HIGH severity)
|
|
381
|
-
- Tests MUST use dynamic ports (port 0 or random) — hardcoded ports cause ECONNRESET cascades
|
|
382
|
-
- If server.ts lacks an exported startServer(), flag as HIGH severity testability defect
|
|
383
|
-
- Code coverage adequate (aim for 80%+ of changed code)
|
|
384
|
-
|
|
385
|
-
### 5. Performance
|
|
386
|
-
- No O(n²) loops where O(n) is possible
|
|
387
|
-
- No blocking I/O in async code
|
|
388
|
-
- No memory leaks (listeners removed, timers cleared)
|
|
389
|
-
|
|
390
|
-
Report findings as: FILE:LINE | SEVERITY (critical/high/medium/low) | ISSUE → Fix suggestion`,
|
|
192
|
+
prompt: `## Code Review
|
|
193
|
+
Review categories: correctness, security, style, testing, performance.
|
|
194
|
+
Finding format: FILE:LINE | SEVERITY (critical/high/medium/low) | ISSUE → Fix suggestion.
|
|
195
|
+
Use read_file to inspect code, patch_file to fix minor issues, run_shell to run linters/tests.`,
|
|
391
196
|
};
|
|
392
197
|
const CAP_WEB = {
|
|
393
198
|
name: 'web',
|
|
394
|
-
description: 'Web fetch
|
|
199
|
+
description: 'Web fetch.',
|
|
395
200
|
tools: ['web_fetch'],
|
|
396
201
|
prompt: `## Web
|
|
397
|
-
- web_fetch(url):
|
|
202
|
+
- web_fetch(url): Fetches a URL. Returns response body as text.`,
|
|
398
203
|
};
|
|
399
204
|
const CAP_CONTEXT = {
|
|
400
205
|
name: 'context',
|
|
401
|
-
description: 'Project
|
|
206
|
+
description: 'Project context and sibling task awareness.',
|
|
402
207
|
prompt: `## Project Context
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
The context bundle (when available) provides a snapshot of the workspace.
|
|
406
|
-
|
|
407
|
-
## Sibling Awareness
|
|
408
|
-
Your context includes files modified by sibling tasks (in "Previous Task Completions").
|
|
409
|
-
Before writing a file:
|
|
410
|
-
- Check if it appears in previous task completions → if yes, read_file first, then patch_file
|
|
411
|
-
- NEVER blindly overwrite files your siblings created
|
|
412
|
-
- If you need to extend a sibling's work, READ their output first and build on it`,
|
|
208
|
+
The context bundle (when provided) contains workspace file listings and sibling task completions.
|
|
209
|
+
Sibling completions list files created/modified by other tasks in the same hierarchy.`,
|
|
413
210
|
};
|
|
414
211
|
// ---------------------------------------------------------------------------
|
|
415
212
|
// New capabilities — swarm improvements
|
|
416
213
|
// ---------------------------------------------------------------------------
|
|
417
214
|
const CAP_VERIFICATION = {
|
|
418
215
|
name: 'verification',
|
|
419
|
-
description: '
|
|
216
|
+
description: 'TypeScript compilation and test runner verification.',
|
|
420
217
|
tools: [OP_RUN_SHELL],
|
|
421
218
|
prompt: `## Verification
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
1. Run \`npx tsc --noEmit\` in the project root to catch TypeScript errors
|
|
425
|
-
2. If package.json has a "test" script, run \`npm test\` to validate functionality
|
|
426
|
-
3. If verification fails, read the errors, fix the code, and re-verify
|
|
427
|
-
|
|
428
|
-
Include verification as explicit steps in your plan. Verification is NOT optional.
|
|
429
|
-
Do NOT deliver code that hasn't been verified.`,
|
|
219
|
+
- tsc_check: npx tsc --noEmit — returns TypeScript compilation errors or empty on success.
|
|
220
|
+
- test_run: npx vitest run — returns test results with pass/fail counts.`,
|
|
430
221
|
};
|
|
431
222
|
const CAP_CROSS_FILE_CHECK = {
|
|
432
223
|
name: 'cross-file-check',
|
|
433
|
-
description: '
|
|
224
|
+
description: 'Cross-file dependency verification.',
|
|
434
225
|
tools: [OP_READ_FILE, OP_LIST_FILES, OP_RUN_SHELL],
|
|
435
|
-
prompt: `## Cross-File
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
1. If you rename an export, grep for all imports of it and update them
|
|
439
|
-
2. Verify relative import paths resolve correctly (../types vs ./types)
|
|
440
|
-
3. Check for circular dependencies (A imports B imports A)
|
|
441
|
-
4. If you change a function signature, update all callers
|
|
442
|
-
5. Use \`run_shell\` with grep to search: grep -r "functionName" src/
|
|
443
|
-
|
|
444
|
-
Do NOT move or rename exports without verifying all dependents.`,
|
|
226
|
+
prompt: `## Cross-File Checks
|
|
227
|
+
Use grep (via run_shell) to find all import/export references across files.
|
|
228
|
+
Use read_file to verify import paths resolve to actual exports.`,
|
|
445
229
|
};
|
|
446
230
|
const CAP_PROJECT_SETUP = {
|
|
447
231
|
name: 'project-setup',
|
|
448
|
-
description: '
|
|
232
|
+
description: 'Project initialization tools.',
|
|
449
233
|
tools: [OP_WRITE_FILE, OP_RUN_SHELL],
|
|
450
234
|
prompt: `## Project Setup
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
1. Create package.json with name, type: "module", main, scripts (build, test)
|
|
454
|
-
2. Create tsconfig.json with strict: true, module: "esnext", target: "ES2020"
|
|
455
|
-
3. Create standard directories: src/, tests/
|
|
456
|
-
4. Install dependencies with run_shell: npm install <deps>
|
|
457
|
-
5. Create .gitignore excluding node_modules/, dist/
|
|
458
|
-
6. Verify setup: run tsc --noEmit to ensure TypeScript compiles`,
|
|
235
|
+
Use write_file for config files (package.json, tsconfig.json, .gitignore).
|
|
236
|
+
Use run_shell for directory creation (mkdir -p) and dependency installation (npm install).`,
|
|
459
237
|
};
|
|
460
238
|
const CAP_SECURITY = {
|
|
461
239
|
name: 'security',
|
|
462
|
-
description: '
|
|
240
|
+
description: 'Security audit tools.',
|
|
463
241
|
tools: [OP_READ_FILE, OP_LIST_FILES, OP_RUN_SHELL],
|
|
464
|
-
prompt: `## Security
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
grep -r "password\\|secret\\|apiKey\\|token" src/ to find leaks.
|
|
469
|
-
2. **Injection**: NO string concatenation in SQL. NO shell: true in child_process. NO eval().
|
|
470
|
-
3. **Dependencies**: Run npm audit to check for known CVEs.
|
|
471
|
-
4. **File paths**: Validate paths to prevent ../ traversal attacks.
|
|
472
|
-
5. **Data handling**: Validate user input (type, length, format). Sanitize before logging.
|
|
473
|
-
|
|
474
|
-
Report findings with severity: critical | high | medium | low.`,
|
|
242
|
+
prompt: `## Security
|
|
243
|
+
Use grep (via run_shell) to scan for hardcoded secrets, eval(), shell injection patterns.
|
|
244
|
+
Use npm audit (via run_shell) for dependency vulnerabilities.
|
|
245
|
+
Finding format: FILE:LINE | SEVERITY (critical/high/medium/low) | ISSUE.`,
|
|
475
246
|
};
|
|
476
247
|
const CAP_DECOMPOSITION = {
|
|
477
248
|
name: 'decomposition',
|
|
478
|
-
description: '
|
|
249
|
+
description: 'Task decomposition via task_create.',
|
|
479
250
|
tools: [OP_TASK_CREATE],
|
|
480
|
-
prompt: `##
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
2. Group by dependency: what must happen first?
|
|
485
|
-
3. Create subtasks with task_create, each focused on one responsibility
|
|
486
|
-
4. Set dependencies with dependsOn to model blocking relationships
|
|
487
|
-
5. Minimize dependencies to maximize parallel execution
|
|
488
|
-
6. Estimate complexity per subtask: trivial | simple | moderate | complex
|
|
489
|
-
|
|
490
|
-
Example: "Implement auth module"
|
|
491
|
-
- Task A: Extract shared auth types (simple)
|
|
492
|
-
- Task B: Rewrite login endpoint (moderate, depends on A)
|
|
493
|
-
- Task C: Add login tests (moderate, depends on B)
|
|
494
|
-
- Task D: Update auth docs (simple, independent — runs in parallel with B)
|
|
495
|
-
|
|
496
|
-
Assign profiles: code tasks → developer, review tasks → reviewer, infra → ops.`,
|
|
251
|
+
prompt: `## Decomposition
|
|
252
|
+
task_create can be used to break work into subtasks with dependency ordering.
|
|
253
|
+
dependsOn accepts task titles — resolved to IDs automatically.
|
|
254
|
+
Subtasks with no shared dependencies can execute in parallel.`,
|
|
497
255
|
};
|
|
498
256
|
const CAP_ROUTING = {
|
|
499
257
|
name: 'routing',
|
|
500
|
-
description: '
|
|
258
|
+
description: 'Profile routing reference for task_create assignedProfile.',
|
|
501
259
|
tools: [OP_TASK_CREATE],
|
|
502
|
-
prompt: `##
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
-
|
|
506
|
-
-
|
|
507
|
-
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
Match complexity to profile capabilities:
|
|
511
|
-
- trivial/simple tasks: any profile (prefer cheapest)
|
|
512
|
-
- moderate tasks: specialist profiles
|
|
513
|
-
- complex tasks: profiles with full capability sets`,
|
|
260
|
+
prompt: `## Profile Routing
|
|
261
|
+
Available profiles for assignedProfile in task_create:
|
|
262
|
+
- "developer": code writing, file creation, bug fixes.
|
|
263
|
+
- "reviewer": code review, quality checks.
|
|
264
|
+
- "ops": shell commands, project setup, infrastructure.
|
|
265
|
+
- "orchestrator": task decomposition and steering.
|
|
266
|
+
Omit assignedProfile for auto-routing.`,
|
|
514
267
|
};
|
|
515
268
|
const CAP_MEMORY = {
|
|
516
269
|
name: 'memory',
|
|
517
|
-
description: '
|
|
270
|
+
description: 'Project memory persistence.',
|
|
518
271
|
tools: [OP_REMEMBER, OP_RECALL],
|
|
519
272
|
prompt: `## Project Memory
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
- remember: Save a convention. args: { key: "naming", value: "kebab-case for files" }
|
|
523
|
-
- recall: Load all saved conventions. args: {} — returns project memory.
|
|
524
|
-
|
|
525
|
-
What to remember:
|
|
526
|
-
- Naming conventions (file names, variable names)
|
|
527
|
-
- Architecture decisions (Result pattern, Zod for validation)
|
|
528
|
-
- Test patterns (where tests go, what framework)
|
|
529
|
-
- Common dependencies and their usage
|
|
530
|
-
|
|
531
|
-
Before planning, recall project memory to follow established patterns.
|
|
532
|
-
When you discover a new convention, remember it for future bots.`,
|
|
273
|
+
- remember(key, value): Persists a key-value pair to .weaver/project-memory.json.
|
|
274
|
+
- recall(): Returns all saved key-value pairs from project memory.`,
|
|
533
275
|
};
|
|
534
276
|
// ---------------------------------------------------------------------------
|
|
535
277
|
// Registry
|
|
@@ -568,7 +310,8 @@ export const BUILT_IN_CAPABILITIES = [
|
|
|
568
310
|
/** Capability pools per profile role. Triage selects from these per task. */
|
|
569
311
|
export const PROFILE_CAPABILITIES = {
|
|
570
312
|
orchestrator: ['core', 'role-orchestrator', 'decomposition', 'routing', 'task-mgmt', 'context'],
|
|
571
|
-
developer: ['core', 'role-developer', 'file-ops', 'shell', 'verification', 'cross-file-check', '
|
|
313
|
+
developer: ['core', 'role-developer', 'file-ops', 'shell', 'verification', 'cross-file-check', 'context'],
|
|
314
|
+
'fw-developer': ['core', 'role-developer', 'file-ops', 'shell', 'verification', 'cross-file-check', 'fw-grammar', 'fw-validate', 'fw-cli', 'context'],
|
|
572
315
|
reviewer: ['core', 'role-reviewer', 'code-review', 'security', 'context'],
|
|
573
316
|
ops: ['core', 'role-ops', 'file-ops', 'shell', 'project-setup', 'verification', 'context'],
|
|
574
317
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capability-registry.js","sourceRoot":"","sources":["../../src/bot/capability-registry.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EACL,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EACzD,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EACrD,cAAc,EAAE,WAAW,EAAE,SAAS,GACvC,MAAM,iBAAiB,CAAC;AAEzB,8EAA8E;AAC9E,wBAAwB;AACxB,8EAA8E;AAE9E,MAAM,QAAQ,GAAyB;IACrC,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE
|
|
1
|
+
{"version":3,"file":"capability-registry.js","sourceRoot":"","sources":["../../src/bot/capability-registry.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;AAKH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAuBlE,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;AAsID,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,
|
|
1
|
+
{"version":3,"file":"system-prompt.d.ts","sourceRoot":"","sources":["../../src/bot/system-prompt.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAuBlE,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;AAsID,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,CAqBvJ;AAMD;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,YAAY,EAAE,oBAAoB,EAAE,GAAG,MAAM,CAGxF;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,YAAY,EAAE,oBAAoB,EAAE,GAAG,MAAM,EAAE,CAa3F"}
|