@synergenius/flow-weaver-pack-weaver 0.9.0 → 0.9.3

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 (210) hide show
  1. package/dist/bot/ai-client.d.ts +22 -2
  2. package/dist/bot/ai-client.d.ts.map +1 -1
  3. package/dist/bot/ai-client.js +168 -20
  4. package/dist/bot/ai-client.js.map +1 -1
  5. package/dist/bot/assistant-core.d.ts +25 -0
  6. package/dist/bot/assistant-core.d.ts.map +1 -0
  7. package/dist/bot/assistant-core.js +265 -0
  8. package/dist/bot/assistant-core.js.map +1 -0
  9. package/dist/bot/assistant-tools.d.ts +9 -0
  10. package/dist/bot/assistant-tools.d.ts.map +1 -0
  11. package/dist/bot/assistant-tools.js +602 -0
  12. package/dist/bot/assistant-tools.js.map +1 -0
  13. package/dist/bot/audit-logger.d.ts.map +1 -1
  14. package/dist/bot/audit-logger.js +9 -5
  15. package/dist/bot/audit-logger.js.map +1 -1
  16. package/dist/bot/bot-manager.d.ts +49 -0
  17. package/dist/bot/bot-manager.d.ts.map +1 -0
  18. package/dist/bot/bot-manager.js +279 -0
  19. package/dist/bot/bot-manager.js.map +1 -0
  20. package/dist/bot/child-process-tracker.d.ts +6 -0
  21. package/dist/bot/child-process-tracker.d.ts.map +1 -0
  22. package/dist/bot/child-process-tracker.js +35 -0
  23. package/dist/bot/child-process-tracker.js.map +1 -0
  24. package/dist/bot/cli-provider.d.ts.map +1 -1
  25. package/dist/bot/cli-provider.js +13 -8
  26. package/dist/bot/cli-provider.js.map +1 -1
  27. package/dist/bot/conversation-store.d.ts +40 -0
  28. package/dist/bot/conversation-store.d.ts.map +1 -0
  29. package/dist/bot/conversation-store.js +182 -0
  30. package/dist/bot/conversation-store.js.map +1 -0
  31. package/dist/bot/error-guide.d.ts +10 -0
  32. package/dist/bot/error-guide.d.ts.map +1 -0
  33. package/dist/bot/error-guide.js +34 -0
  34. package/dist/bot/error-guide.js.map +1 -0
  35. package/dist/bot/knowledge-store.d.ts +17 -0
  36. package/dist/bot/knowledge-store.d.ts.map +1 -0
  37. package/dist/bot/knowledge-store.js +53 -0
  38. package/dist/bot/knowledge-store.js.map +1 -0
  39. package/dist/bot/retry-utils.d.ts +19 -0
  40. package/dist/bot/retry-utils.d.ts.map +1 -0
  41. package/dist/bot/retry-utils.js +64 -0
  42. package/dist/bot/retry-utils.js.map +1 -0
  43. package/dist/bot/runner.d.ts.map +1 -1
  44. package/dist/bot/runner.js +12 -1
  45. package/dist/bot/runner.js.map +1 -1
  46. package/dist/bot/session-state.d.ts.map +1 -1
  47. package/dist/bot/session-state.js +3 -1
  48. package/dist/bot/session-state.js.map +1 -1
  49. package/dist/bot/steering.js +1 -1
  50. package/dist/bot/steering.js.map +1 -1
  51. package/dist/bot/step-executor.d.ts +10 -5
  52. package/dist/bot/step-executor.d.ts.map +1 -1
  53. package/dist/bot/step-executor.js +252 -3
  54. package/dist/bot/step-executor.js.map +1 -1
  55. package/dist/bot/system-prompt.d.ts +1 -1
  56. package/dist/bot/system-prompt.d.ts.map +1 -1
  57. package/dist/bot/system-prompt.js +69 -43
  58. package/dist/bot/system-prompt.js.map +1 -1
  59. package/dist/bot/task-decomposer.d.ts +24 -0
  60. package/dist/bot/task-decomposer.d.ts.map +1 -0
  61. package/dist/bot/task-decomposer.js +75 -0
  62. package/dist/bot/task-decomposer.js.map +1 -0
  63. package/dist/bot/task-queue.d.ts +17 -4
  64. package/dist/bot/task-queue.d.ts.map +1 -1
  65. package/dist/bot/task-queue.js +95 -4
  66. package/dist/bot/task-queue.js.map +1 -1
  67. package/dist/bot/terminal-renderer.d.ts +60 -0
  68. package/dist/bot/terminal-renderer.d.ts.map +1 -0
  69. package/dist/bot/terminal-renderer.js +205 -0
  70. package/dist/bot/terminal-renderer.js.map +1 -0
  71. package/dist/bot/types.d.ts +7 -0
  72. package/dist/bot/types.d.ts.map +1 -1
  73. package/dist/bot/weaver-tools.d.ts +18 -0
  74. package/dist/bot/weaver-tools.d.ts.map +1 -0
  75. package/dist/bot/weaver-tools.js +215 -0
  76. package/dist/bot/weaver-tools.js.map +1 -0
  77. package/dist/cli-bridge.d.ts.map +1 -1
  78. package/dist/cli-bridge.js +5 -1
  79. package/dist/cli-bridge.js.map +1 -1
  80. package/dist/cli-handlers.d.ts +13 -1
  81. package/dist/cli-handlers.d.ts.map +1 -1
  82. package/dist/cli-handlers.js +616 -48
  83. package/dist/cli-handlers.js.map +1 -1
  84. package/dist/mcp-tools.js +2 -2
  85. package/dist/mcp-tools.js.map +1 -1
  86. package/dist/node-types/abort-task.d.ts.map +1 -1
  87. package/dist/node-types/abort-task.js +4 -3
  88. package/dist/node-types/abort-task.js.map +1 -1
  89. package/dist/node-types/agent-execute.d.ts +38 -0
  90. package/dist/node-types/agent-execute.d.ts.map +1 -0
  91. package/dist/node-types/agent-execute.js +256 -0
  92. package/dist/node-types/agent-execute.js.map +1 -0
  93. package/dist/node-types/bot-report.d.ts +5 -3
  94. package/dist/node-types/bot-report.d.ts.map +1 -1
  95. package/dist/node-types/bot-report.js +39 -7
  96. package/dist/node-types/bot-report.js.map +1 -1
  97. package/dist/node-types/build-context.d.ts +3 -3
  98. package/dist/node-types/build-context.d.ts.map +1 -1
  99. package/dist/node-types/build-context.js +108 -24
  100. package/dist/node-types/build-context.js.map +1 -1
  101. package/dist/node-types/detect-provider.d.ts +2 -2
  102. package/dist/node-types/detect-provider.d.ts.map +1 -1
  103. package/dist/node-types/detect-provider.js +3 -1
  104. package/dist/node-types/detect-provider.js.map +1 -1
  105. package/dist/node-types/exec-validate-retry.d.ts.map +1 -1
  106. package/dist/node-types/exec-validate-retry.js +43 -6
  107. package/dist/node-types/exec-validate-retry.js.map +1 -1
  108. package/dist/node-types/execute-plan.d.ts.map +1 -1
  109. package/dist/node-types/execute-plan.js +31 -8
  110. package/dist/node-types/execute-plan.js.map +1 -1
  111. package/dist/node-types/execute-target.d.ts.map +1 -1
  112. package/dist/node-types/execute-target.js +3 -1
  113. package/dist/node-types/execute-target.js.map +1 -1
  114. package/dist/node-types/fix-errors.d.ts.map +1 -1
  115. package/dist/node-types/fix-errors.js +21 -5
  116. package/dist/node-types/fix-errors.js.map +1 -1
  117. package/dist/node-types/genesis-observe.d.ts.map +1 -1
  118. package/dist/node-types/genesis-observe.js +3 -1
  119. package/dist/node-types/genesis-observe.js.map +1 -1
  120. package/dist/node-types/genesis-report.js +4 -1
  121. package/dist/node-types/genesis-report.js.map +1 -1
  122. package/dist/node-types/git-ops.d.ts.map +1 -1
  123. package/dist/node-types/git-ops.js +98 -4
  124. package/dist/node-types/git-ops.js.map +1 -1
  125. package/dist/node-types/index.d.ts +2 -0
  126. package/dist/node-types/index.d.ts.map +1 -1
  127. package/dist/node-types/index.js +2 -0
  128. package/dist/node-types/index.js.map +1 -1
  129. package/dist/node-types/load-config.d.ts +2 -2
  130. package/dist/node-types/load-config.d.ts.map +1 -1
  131. package/dist/node-types/load-config.js.map +1 -1
  132. package/dist/node-types/plan-task.d.ts.map +1 -1
  133. package/dist/node-types/plan-task.js +14 -2
  134. package/dist/node-types/plan-task.js.map +1 -1
  135. package/dist/node-types/read-workflow.js +8 -2
  136. package/dist/node-types/read-workflow.js.map +1 -1
  137. package/dist/node-types/receive-task.d.ts.map +1 -1
  138. package/dist/node-types/receive-task.js +35 -26
  139. package/dist/node-types/receive-task.js.map +1 -1
  140. package/dist/node-types/send-notify.js +2 -1
  141. package/dist/node-types/send-notify.js.map +1 -1
  142. package/dist/node-types/validate-gate.d.ts +18 -0
  143. package/dist/node-types/validate-gate.d.ts.map +1 -0
  144. package/dist/node-types/validate-gate.js +96 -0
  145. package/dist/node-types/validate-gate.js.map +1 -0
  146. package/dist/workflows/genesis-task.d.ts +20 -12
  147. package/dist/workflows/genesis-task.d.ts.map +1 -1
  148. package/dist/workflows/genesis-task.js +20 -12
  149. package/dist/workflows/genesis-task.js.map +1 -1
  150. package/dist/workflows/weaver-agent.d.ts +35 -0
  151. package/dist/workflows/weaver-agent.d.ts.map +1 -0
  152. package/dist/workflows/weaver-agent.js +777 -0
  153. package/dist/workflows/weaver-agent.js.map +1 -0
  154. package/dist/workflows/weaver-bot-batch.d.ts +19 -26
  155. package/dist/workflows/weaver-bot-batch.d.ts.map +1 -1
  156. package/dist/workflows/weaver-bot-batch.js +1043 -27
  157. package/dist/workflows/weaver-bot-batch.js.map +1 -1
  158. package/dist/workflows/weaver-bot.d.ts +21 -35
  159. package/dist/workflows/weaver-bot.d.ts.map +1 -1
  160. package/dist/workflows/weaver-bot.js +1119 -36
  161. package/dist/workflows/weaver-bot.js.map +1 -1
  162. package/flowweaver.manifest.json +21 -1
  163. package/package.json +5 -2
  164. package/src/bot/ai-client.ts +180 -19
  165. package/src/bot/assistant-core.ts +306 -0
  166. package/src/bot/assistant-tools.ts +605 -0
  167. package/src/bot/audit-logger.ts +6 -5
  168. package/src/bot/bot-manager.ts +293 -0
  169. package/src/bot/child-process-tracker.ts +40 -0
  170. package/src/bot/cli-provider.ts +13 -8
  171. package/src/bot/conversation-store.ts +222 -0
  172. package/src/bot/error-guide.ts +34 -0
  173. package/src/bot/knowledge-store.ts +59 -0
  174. package/src/bot/retry-utils.ts +76 -0
  175. package/src/bot/runner.ts +12 -1
  176. package/src/bot/session-state.ts +2 -1
  177. package/src/bot/steering.ts +1 -1
  178. package/src/bot/step-executor.ts +313 -5
  179. package/src/bot/system-prompt.ts +70 -47
  180. package/src/bot/task-decomposer.ts +100 -0
  181. package/src/bot/task-queue.ts +113 -7
  182. package/src/bot/terminal-renderer.ts +241 -0
  183. package/src/bot/types.ts +8 -0
  184. package/src/bot/weaver-tools.ts +225 -0
  185. package/src/cli-bridge.ts +7 -1
  186. package/src/cli-handlers.ts +625 -48
  187. package/src/mcp-tools.ts +2 -2
  188. package/src/node-types/abort-task.ts +5 -4
  189. package/src/node-types/agent-execute.ts +306 -0
  190. package/src/node-types/bot-report.ts +40 -9
  191. package/src/node-types/build-context.ts +112 -25
  192. package/src/node-types/detect-provider.ts +4 -3
  193. package/src/node-types/exec-validate-retry.ts +47 -8
  194. package/src/node-types/execute-plan.ts +32 -8
  195. package/src/node-types/execute-target.ts +2 -1
  196. package/src/node-types/fix-errors.ts +20 -5
  197. package/src/node-types/genesis-observe.ts +2 -1
  198. package/src/node-types/genesis-report.ts +1 -1
  199. package/src/node-types/git-ops.ts +93 -4
  200. package/src/node-types/index.ts +2 -0
  201. package/src/node-types/load-config.ts +3 -3
  202. package/src/node-types/plan-task.ts +15 -3
  203. package/src/node-types/read-workflow.ts +2 -2
  204. package/src/node-types/receive-task.ts +31 -26
  205. package/src/node-types/send-notify.ts +1 -1
  206. package/src/node-types/validate-gate.ts +112 -0
  207. package/src/workflows/genesis-task.ts +20 -12
  208. package/src/workflows/weaver-agent.ts +799 -0
  209. package/src/workflows/weaver-bot-batch.ts +1049 -27
  210. package/src/workflows/weaver-bot.ts +1123 -36
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assistant-tools.d.ts","sourceRoot":"","sources":["../../src/bot/assistant-tools.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAcnF,eAAO,MAAM,eAAe,EAAE,cAAc,EAgS3C,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,YAAY,CAsSxE"}
@@ -0,0 +1,602 @@
1
+ /**
2
+ * Assistant tool definitions and executor.
3
+ * These are the tools the AI assistant uses to manage bots,
4
+ * queues, and the flow-weaver ecosystem.
5
+ */
6
+ import { BotManager } from './bot-manager.js';
7
+ import { execFileSync } from 'node:child_process';
8
+ import * as fs from 'node:fs';
9
+ import * as os from 'node:os';
10
+ import * as path from 'node:path';
11
+ // Shared bot manager instance
12
+ let manager = null;
13
+ function getManager() {
14
+ if (!manager)
15
+ manager = new BotManager();
16
+ return manager;
17
+ }
18
+ export const ASSISTANT_TOOLS = [
19
+ // Bot management
20
+ {
21
+ name: 'bot_spawn',
22
+ description: 'Start a new bot session. Returns the bot name and status.',
23
+ inputSchema: {
24
+ type: 'object',
25
+ properties: {
26
+ name: { type: 'string', description: 'Unique name for this bot (e.g. "fix-templates")' },
27
+ project_dir: { type: 'string', description: 'Project directory for the bot to work in' },
28
+ parallel: { type: 'number', description: 'Number of parallel tasks (1-5, default 1)' },
29
+ deadline: { type: 'string', description: 'Stop time in HH:MM format (optional)' },
30
+ branch: { type: 'string', description: 'Git branch for commits (keeps main clean, good for overnight runs)' },
31
+ },
32
+ required: ['name'],
33
+ },
34
+ },
35
+ {
36
+ name: 'bot_list',
37
+ description: 'List all bot sessions with their status, task counts, and cost.',
38
+ inputSchema: { type: 'object', properties: {}, required: [] },
39
+ },
40
+ {
41
+ name: 'bot_status',
42
+ description: 'Get detailed status of a specific bot including queue and recent activity.',
43
+ inputSchema: {
44
+ type: 'object',
45
+ properties: { name: { type: 'string', description: 'Bot name' } },
46
+ required: ['name'],
47
+ },
48
+ },
49
+ {
50
+ name: 'bot_pause',
51
+ description: 'Pause a running bot. It will finish its current task then wait.',
52
+ inputSchema: {
53
+ type: 'object',
54
+ properties: { name: { type: 'string', description: 'Bot name' } },
55
+ required: ['name'],
56
+ },
57
+ },
58
+ {
59
+ name: 'bot_resume',
60
+ description: 'Resume a paused bot.',
61
+ inputSchema: {
62
+ type: 'object',
63
+ properties: { name: { type: 'string', description: 'Bot name' } },
64
+ required: ['name'],
65
+ },
66
+ },
67
+ {
68
+ name: 'bot_stop',
69
+ description: 'Gracefully stop a bot (finishes current task, then exits).',
70
+ inputSchema: {
71
+ type: 'object',
72
+ properties: { name: { type: 'string', description: 'Bot name' } },
73
+ required: ['name'],
74
+ },
75
+ },
76
+ {
77
+ name: 'bot_logs',
78
+ description: 'Get recent output log from a bot.',
79
+ inputSchema: {
80
+ type: 'object',
81
+ properties: {
82
+ name: { type: 'string', description: 'Bot name' },
83
+ lines: { type: 'number', description: 'Number of lines to return (default 30)' },
84
+ },
85
+ required: ['name'],
86
+ },
87
+ },
88
+ // Queue management
89
+ {
90
+ name: 'queue_add',
91
+ description: 'Add a task to a bot\'s queue.',
92
+ inputSchema: {
93
+ type: 'object',
94
+ properties: {
95
+ bot: { type: 'string', description: 'Bot name' },
96
+ instruction: { type: 'string', description: 'Task instruction' },
97
+ targets: { type: 'array', items: { type: 'string' }, description: 'Target files (optional)' },
98
+ },
99
+ required: ['bot', 'instruction'],
100
+ },
101
+ },
102
+ {
103
+ name: 'queue_add_batch',
104
+ description: 'Add multiple tasks to a bot\'s queue at once.',
105
+ inputSchema: {
106
+ type: 'object',
107
+ properties: {
108
+ bot: { type: 'string', description: 'Bot name' },
109
+ tasks: {
110
+ type: 'array',
111
+ items: {
112
+ type: 'object',
113
+ properties: {
114
+ instruction: { type: 'string' },
115
+ targets: { type: 'array', items: { type: 'string' } },
116
+ },
117
+ required: ['instruction'],
118
+ },
119
+ description: 'Array of tasks to add',
120
+ },
121
+ },
122
+ required: ['bot', 'tasks'],
123
+ },
124
+ },
125
+ {
126
+ name: 'queue_list',
127
+ description: 'List all tasks in a bot\'s queue with their status.',
128
+ inputSchema: {
129
+ type: 'object',
130
+ properties: { bot: { type: 'string', description: 'Bot name' } },
131
+ required: ['bot'],
132
+ },
133
+ },
134
+ {
135
+ name: 'queue_retry',
136
+ description: 'Reset all failed tasks in a bot\'s queue to pending.',
137
+ inputSchema: {
138
+ type: 'object',
139
+ properties: { bot: { type: 'string', description: 'Bot name' } },
140
+ required: ['bot'],
141
+ },
142
+ },
143
+ // Flow-weaver tools
144
+ {
145
+ name: 'fw_validate',
146
+ description: 'Validate a workflow or directory of workflows. Returns errors and warnings.',
147
+ inputSchema: {
148
+ type: 'object',
149
+ properties: { path: { type: 'string', description: 'File or directory path' } },
150
+ required: ['path'],
151
+ },
152
+ },
153
+ {
154
+ name: 'fw_diagram',
155
+ description: 'Generate a text diagram of a workflow.',
156
+ inputSchema: {
157
+ type: 'object',
158
+ properties: { file: { type: 'string', description: 'Workflow file path' } },
159
+ required: ['file'],
160
+ },
161
+ },
162
+ {
163
+ name: 'fw_describe',
164
+ description: 'Get a natural language description of a workflow.',
165
+ inputSchema: {
166
+ type: 'object',
167
+ properties: { file: { type: 'string', description: 'Workflow file path' } },
168
+ required: ['file'],
169
+ },
170
+ },
171
+ {
172
+ name: 'fw_docs',
173
+ description: 'Look up Flow Weaver documentation by topic. Topics: concepts, jsdoc-grammar, advanced-annotations, built-in-nodes, scaffold, node-conversion, patterns, error-codes, debugging, export-interface.',
174
+ inputSchema: {
175
+ type: 'object',
176
+ properties: { topic: { type: 'string', description: 'Documentation topic slug' } },
177
+ required: ['topic'],
178
+ },
179
+ },
180
+ // Project tools
181
+ {
182
+ name: 'read_file',
183
+ description: 'Read a file and return its contents.',
184
+ inputSchema: {
185
+ type: 'object',
186
+ properties: { file: { type: 'string', description: 'File path' } },
187
+ required: ['file'],
188
+ },
189
+ },
190
+ {
191
+ name: 'list_files',
192
+ description: 'List files in a directory.',
193
+ inputSchema: {
194
+ type: 'object',
195
+ properties: {
196
+ directory: { type: 'string', description: 'Directory path' },
197
+ pattern: { type: 'string', description: 'Filter pattern (regex, optional)' },
198
+ },
199
+ required: ['directory'],
200
+ },
201
+ },
202
+ {
203
+ name: 'run_shell',
204
+ description: 'Run a shell command (read-only operations recommended).',
205
+ inputSchema: {
206
+ type: 'object',
207
+ properties: { command: { type: 'string', description: 'Shell command to execute' } },
208
+ required: ['command'],
209
+ },
210
+ },
211
+ // Conversation management
212
+ {
213
+ name: 'conversation_list',
214
+ description: 'List saved assistant conversations with message counts and timestamps.',
215
+ inputSchema: { type: 'object', properties: {}, required: [] },
216
+ },
217
+ {
218
+ name: 'conversation_delete',
219
+ description: 'Delete a saved conversation by ID.',
220
+ inputSchema: {
221
+ type: 'object',
222
+ properties: { id: { type: 'string', description: 'Conversation ID to delete' } },
223
+ required: ['id'],
224
+ },
225
+ },
226
+ {
227
+ name: 'conversation_summary',
228
+ description: 'Get a summary of the current conversation (message count, tokens, bots spawned).',
229
+ inputSchema: { type: 'object', properties: {}, required: [] },
230
+ },
231
+ // Web access
232
+ {
233
+ name: 'web_fetch',
234
+ description: 'Fetch HTTP content from a URL. Returns text body (max 10KB).',
235
+ inputSchema: {
236
+ type: 'object',
237
+ properties: {
238
+ url: { type: 'string', description: 'URL to fetch' },
239
+ method: { type: 'string', description: 'HTTP method (default GET)', enum: ['GET', 'POST'] },
240
+ },
241
+ required: ['url'],
242
+ },
243
+ },
244
+ // CI/CD
245
+ {
246
+ name: 'github_status',
247
+ description: 'Check GitHub Actions status for a branch or PR. Requires gh CLI installed.',
248
+ inputSchema: {
249
+ type: 'object',
250
+ properties: {
251
+ branch: { type: 'string', description: 'Branch name (optional, defaults to current)' },
252
+ pr: { type: 'number', description: 'PR number (optional, checks PR status instead of branch)' },
253
+ },
254
+ required: [],
255
+ },
256
+ },
257
+ // Cross-repo
258
+ {
259
+ name: 'project_list',
260
+ description: 'List known project directories that have been used with weaver.',
261
+ inputSchema: { type: 'object', properties: {}, required: [] },
262
+ },
263
+ {
264
+ name: 'project_context',
265
+ description: 'Read package.json and .weaver-plan.md from a project directory to understand its context.',
266
+ inputSchema: {
267
+ type: 'object',
268
+ properties: { directory: { type: 'string', description: 'Absolute path to project directory' } },
269
+ required: ['directory'],
270
+ },
271
+ },
272
+ // Diagrams
273
+ {
274
+ name: 'fw_diagram_mermaid',
275
+ description: 'Generate a Mermaid diagram of a workflow (can be rendered in any Mermaid viewer).',
276
+ inputSchema: {
277
+ type: 'object',
278
+ properties: { file: { type: 'string', description: 'Workflow file path' } },
279
+ required: ['file'],
280
+ },
281
+ },
282
+ // Knowledge
283
+ {
284
+ name: 'knowledge_list',
285
+ description: 'List all stored knowledge entries for the current project.',
286
+ inputSchema: { type: 'object', properties: {}, required: [] },
287
+ },
288
+ {
289
+ name: 'knowledge_search',
290
+ description: 'Search stored knowledge by keyword.',
291
+ inputSchema: {
292
+ type: 'object',
293
+ properties: { query: { type: 'string', description: 'Search query' } },
294
+ required: ['query'],
295
+ },
296
+ },
297
+ ];
298
+ export function createAssistantExecutor(projectDir) {
299
+ const mgr = getManager();
300
+ return async (name, args) => {
301
+ try {
302
+ switch (name) {
303
+ // Bot management
304
+ case 'bot_spawn': {
305
+ const botName = String(args.name ?? `bot-${Date.now()}`);
306
+ const dir = String(args.project_dir ?? projectDir);
307
+ const bot = mgr.spawn(botName, {
308
+ projectDir: dir,
309
+ parallel: args.parallel,
310
+ deadline: args.deadline,
311
+ branch: args.branch,
312
+ });
313
+ return { result: JSON.stringify(bot), isError: false };
314
+ }
315
+ case 'bot_list': {
316
+ const bots = mgr.list();
317
+ if (bots.length === 0)
318
+ return { result: 'No bots running.', isError: false };
319
+ const lines = bots.map(b => {
320
+ const uptime = Math.round((Date.now() - b.startedAt) / 1000);
321
+ return `${b.name}: ${b.status} (pid ${b.pid}, ${uptime}s uptime)`;
322
+ });
323
+ return { result: lines.join('\n'), isError: false };
324
+ }
325
+ case 'bot_status': {
326
+ const botName = String(args.name);
327
+ const bot = mgr.get(botName);
328
+ if (!bot)
329
+ return { result: `Bot "${botName}" not found.`, isError: true };
330
+ const queue = mgr.getQueue(botName);
331
+ const tasks = await queue.list();
332
+ const pending = tasks.filter(t => t.status === 'pending').length;
333
+ const running = tasks.filter(t => t.status === 'running').length;
334
+ const completed = tasks.filter(t => t.status === 'completed').length;
335
+ const failed = tasks.filter(t => t.status === 'failed').length;
336
+ const failedTasks = tasks.filter(t => t.status === 'failed');
337
+ let result = `Bot "${botName}": ${bot.status}\n`;
338
+ result += `Tasks: ${completed} completed, ${failed} failed, ${running} running, ${pending} pending\n`;
339
+ if (failedTasks.length > 0) {
340
+ result += `\nFailed tasks:\n`;
341
+ for (const t of failedTasks) {
342
+ result += ` - ${t.instruction.slice(0, 80)}\n`;
343
+ }
344
+ }
345
+ return { result, isError: false };
346
+ }
347
+ case 'bot_pause': {
348
+ await mgr.steer(String(args.name), 'pause');
349
+ return { result: `Paused bot "${args.name}".`, isError: false };
350
+ }
351
+ case 'bot_resume': {
352
+ await mgr.steer(String(args.name), 'resume');
353
+ return { result: `Resumed bot "${args.name}".`, isError: false };
354
+ }
355
+ case 'bot_stop': {
356
+ mgr.stop(String(args.name));
357
+ return { result: `Stopping bot "${args.name}" (will finish current task).`, isError: false };
358
+ }
359
+ case 'bot_logs': {
360
+ const logs = mgr.logs(String(args.name), args.lines ?? 30);
361
+ return { result: logs || '(no output yet)', isError: false };
362
+ }
363
+ // Queue management
364
+ case 'queue_add': {
365
+ const queue = mgr.getQueue(String(args.bot));
366
+ const { id, duplicate } = await queue.add({
367
+ instruction: String(args.instruction),
368
+ targets: args.targets,
369
+ priority: 0,
370
+ });
371
+ if (duplicate)
372
+ return { result: `Task already queued (${id}).`, isError: false };
373
+ return { result: `Added task ${id} to "${args.bot}" queue.`, isError: false };
374
+ }
375
+ case 'queue_add_batch': {
376
+ const queue = mgr.getQueue(String(args.bot));
377
+ const tasks = args.tasks;
378
+ let added = 0, skipped = 0;
379
+ for (const t of tasks) {
380
+ const { duplicate } = await queue.add({ instruction: t.instruction, targets: t.targets, priority: 0 });
381
+ if (duplicate)
382
+ skipped++;
383
+ else
384
+ added++;
385
+ }
386
+ const msg = skipped > 0 ? `Added ${added} tasks, ${skipped} duplicates skipped.` : `Added ${added} tasks to "${args.bot}" queue.`;
387
+ return { result: msg, isError: false };
388
+ }
389
+ case 'queue_list': {
390
+ const queue = mgr.getQueue(String(args.bot));
391
+ const tasks = await queue.list();
392
+ if (tasks.length === 0)
393
+ return { result: 'Queue is empty.', isError: false };
394
+ const lines = tasks.map(t => `[${t.status}] ${t.instruction.slice(0, 70)}`);
395
+ return { result: lines.join('\n'), isError: false };
396
+ }
397
+ case 'queue_retry': {
398
+ const queue = mgr.getQueue(String(args.bot));
399
+ const count = await queue.retryAll();
400
+ return { result: `Reset ${count} failed task(s) to pending.`, isError: false };
401
+ }
402
+ // Flow-weaver tools
403
+ case 'fw_validate': {
404
+ const output = execFileSync('npx', ['flow-weaver', 'validate', String(args.path)], {
405
+ encoding: 'utf-8', cwd: projectDir, timeout: 30_000, stdio: ['pipe', 'pipe', 'pipe'],
406
+ });
407
+ return { result: output.trim() || 'Validation complete.', isError: false };
408
+ }
409
+ case 'fw_diagram': {
410
+ const output = execFileSync('npx', ['flow-weaver', 'diagram', String(args.file)], {
411
+ encoding: 'utf-8', cwd: projectDir, timeout: 15_000, stdio: ['pipe', 'pipe', 'pipe'],
412
+ });
413
+ return { result: output.trim(), isError: false };
414
+ }
415
+ case 'fw_describe': {
416
+ const output = execFileSync('npx', ['flow-weaver', 'describe', String(args.file)], {
417
+ encoding: 'utf-8', cwd: projectDir, timeout: 15_000, stdio: ['pipe', 'pipe', 'pipe'],
418
+ });
419
+ return { result: output.trim(), isError: false };
420
+ }
421
+ case 'fw_docs': {
422
+ const output = execFileSync('npx', ['flow-weaver', 'docs', String(args.topic), '--compact'], {
423
+ encoding: 'utf-8', cwd: projectDir, timeout: 15_000, stdio: ['pipe', 'pipe', 'pipe'],
424
+ });
425
+ return { result: output.trim().slice(0, 5000), isError: false };
426
+ }
427
+ // Project tools
428
+ case 'read_file': {
429
+ const filePath = path.isAbsolute(String(args.file)) ? String(args.file) : path.resolve(projectDir, String(args.file));
430
+ const stat = fs.statSync(filePath);
431
+ if (stat.isDirectory()) {
432
+ const entries = fs.readdirSync(filePath).slice(0, 100);
433
+ return { result: `Directory listing (${entries.length} entries):\n${entries.join('\n')}`, isError: false };
434
+ }
435
+ if (stat.size > 1_048_576)
436
+ return { result: 'File too large (>1MB).', isError: true };
437
+ return { result: fs.readFileSync(filePath, 'utf-8'), isError: false };
438
+ }
439
+ case 'list_files': {
440
+ const dir = path.isAbsolute(String(args.directory)) ? String(args.directory) : path.resolve(projectDir, String(args.directory));
441
+ if (!fs.existsSync(dir))
442
+ return { result: `Directory not found: ${dir}`, isError: true };
443
+ let entries = fs.readdirSync(dir, { recursive: false });
444
+ if (args.pattern) {
445
+ const re = new RegExp(String(args.pattern));
446
+ entries = entries.filter(e => re.test(e));
447
+ }
448
+ return { result: entries.slice(0, 200).join('\n') || '(empty)', isError: false };
449
+ }
450
+ case 'run_shell': {
451
+ const cmd = String(args.command);
452
+ // Safety: block destructive commands
453
+ const blocked = ['rm -rf', 'git push', 'npm publish', 'sudo', 'curl|sh', 'wget|sh'];
454
+ if (blocked.some(b => cmd.includes(b))) {
455
+ return { result: `Blocked: "${cmd}" is not allowed.`, isError: true };
456
+ }
457
+ const output = execFileSync('sh', ['-c', cmd], {
458
+ encoding: 'utf-8', cwd: projectDir, timeout: 30_000, stdio: ['pipe', 'pipe', 'pipe'],
459
+ });
460
+ return { result: output.trim().slice(0, 5000) || '(no output)', isError: false };
461
+ }
462
+ // Conversation management
463
+ case 'conversation_list': {
464
+ const { ConversationStore } = await import('./conversation-store.js');
465
+ const cStore = new ConversationStore();
466
+ const convos = cStore.list();
467
+ if (convos.length === 0)
468
+ return { result: 'No saved conversations.', isError: false };
469
+ const lines = convos.map(cv => {
470
+ const ago = Math.round((Date.now() - cv.lastMessageAt) / 60_000);
471
+ const agoStr = ago < 60 ? `${ago}m ago` : ago < 1440 ? `${Math.round(ago / 60)}h ago` : `${Math.round(ago / 1440)}d ago`;
472
+ const title = cv.title || '(untitled)';
473
+ return `${cv.id} "${title}" ${cv.messageCount} msgs ${agoStr}`;
474
+ });
475
+ return { result: `Conversations (${convos.length}):\n${lines.join('\n')}`, isError: false };
476
+ }
477
+ case 'conversation_delete': {
478
+ const { ConversationStore } = await import('./conversation-store.js');
479
+ const cStore = new ConversationStore();
480
+ const existing = cStore.get(String(args.id));
481
+ if (!existing)
482
+ return { result: `Conversation "${args.id}" not found.`, isError: true };
483
+ cStore.delete(String(args.id));
484
+ return { result: `Deleted conversation "${args.id}" (${existing.title || 'untitled'}).`, isError: false };
485
+ }
486
+ case 'conversation_summary': {
487
+ const { ConversationStore } = await import('./conversation-store.js');
488
+ const cStore = new ConversationStore();
489
+ const recent = cStore.getMostRecent();
490
+ if (!recent)
491
+ return { result: 'No active conversation.', isError: false };
492
+ const elapsed = Math.round((Date.now() - recent.createdAt) / 60_000);
493
+ return {
494
+ result: `Current conversation: ${recent.id}\n Title: ${recent.title || '(untitled)'}\n Messages: ${recent.messageCount}\n Tokens: ${recent.totalTokens}\n Bots: ${recent.botIds.length > 0 ? recent.botIds.join(', ') : 'none'}\n Duration: ${elapsed}m`,
495
+ isError: false,
496
+ };
497
+ }
498
+ case 'web_fetch': {
499
+ const url = String(args.url);
500
+ if (/localhost|127\.0\.0\.1|0\.0\.0\.0|10\.\d|172\.(1[6-9]|2\d|3[01])\.|192\.168\./i.test(url)) {
501
+ return { result: 'Blocked: cannot fetch internal/localhost URLs.', isError: true };
502
+ }
503
+ const resp = await fetch(url, { method: args.method ?? 'GET', signal: AbortSignal.timeout(15_000) });
504
+ const text = await resp.text();
505
+ return { result: text.slice(0, 10_000), isError: !resp.ok };
506
+ }
507
+ case 'github_status': {
508
+ const ghArgs = args.pr
509
+ ? ['pr', 'checks', String(args.pr), '--json', 'name,state,conclusion']
510
+ : ['run', 'list', '--branch', String(args.branch ?? ''), '--json', 'status,conclusion,name,headBranch', '--limit', '5'];
511
+ try {
512
+ const output = execFileSync('gh', ghArgs, { encoding: 'utf-8', cwd: projectDir, timeout: 15_000, stdio: ['pipe', 'pipe', 'pipe'] });
513
+ return { result: output.trim(), isError: false };
514
+ }
515
+ catch (err) {
516
+ return { result: `gh CLI error: ${(err.message ?? '').slice(0, 300)}`, isError: true };
517
+ }
518
+ }
519
+ case 'project_list': {
520
+ const projectsDir = path.join(os.homedir(), '.weaver', 'projects');
521
+ if (!fs.existsSync(projectsDir))
522
+ return { result: 'No projects found.', isError: false };
523
+ const dirs = fs.readdirSync(projectsDir);
524
+ // Each dir is a hash — try to find meta or queue files
525
+ const projects = dirs.map(d => {
526
+ const queuePath = path.join(projectsDir, d, 'task-queue.ndjson');
527
+ const exists = fs.existsSync(queuePath);
528
+ return `${d}: ${exists ? 'has queue' : 'empty'}`;
529
+ });
530
+ return { result: projects.join('\n') || 'No projects found.', isError: false };
531
+ }
532
+ case 'project_context': {
533
+ const dir = String(args.directory);
534
+ const parts = [];
535
+ const pkgPath = path.join(dir, 'package.json');
536
+ if (fs.existsSync(pkgPath)) {
537
+ try {
538
+ const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf-8'));
539
+ parts.push(`Package: ${pkg.name}@${pkg.version}`);
540
+ parts.push(`Description: ${pkg.description ?? 'none'}`);
541
+ }
542
+ catch {
543
+ parts.push('package.json: parse error');
544
+ }
545
+ }
546
+ const planPath = path.join(dir, '.weaver-plan.md');
547
+ if (fs.existsSync(planPath)) {
548
+ parts.push(`Plan:\n${fs.readFileSync(planPath, 'utf-8').slice(0, 2000)}`);
549
+ }
550
+ const configPath = path.join(dir, '.weaver.json');
551
+ if (fs.existsSync(configPath)) {
552
+ parts.push(`Weaver config: ${fs.readFileSync(configPath, 'utf-8').trim()}`);
553
+ }
554
+ return { result: parts.join('\n') || `No context found in ${dir}`, isError: false };
555
+ }
556
+ case 'fw_diagram_mermaid': {
557
+ try {
558
+ // Try mermaid format first, fall back to text
559
+ let output;
560
+ try {
561
+ output = execFileSync('npx', ['flow-weaver', 'diagram', String(args.file), '--format', 'mermaid'], {
562
+ encoding: 'utf-8', cwd: projectDir, timeout: 15_000, stdio: ['pipe', 'pipe', 'pipe'],
563
+ }).trim();
564
+ }
565
+ catch {
566
+ output = execFileSync('npx', ['flow-weaver', 'diagram', String(args.file)], {
567
+ encoding: 'utf-8', cwd: projectDir, timeout: 15_000, stdio: ['pipe', 'pipe', 'pipe'],
568
+ }).trim();
569
+ }
570
+ return { result: output, isError: false };
571
+ }
572
+ catch (err) {
573
+ return { result: (err.message ?? '').slice(0, 500), isError: true };
574
+ }
575
+ }
576
+ case 'knowledge_list': {
577
+ const { KnowledgeStore } = await import('./knowledge-store.js');
578
+ const kStore = new KnowledgeStore(projectDir);
579
+ const entries = kStore.list();
580
+ if (entries.length === 0)
581
+ return { result: 'No stored knowledge.', isError: false };
582
+ return { result: entries.map(e => `${e.key}: ${e.value}`).join('\n'), isError: false };
583
+ }
584
+ case 'knowledge_search': {
585
+ const { KnowledgeStore } = await import('./knowledge-store.js');
586
+ const kStore = new KnowledgeStore(projectDir);
587
+ const entries = kStore.recall(String(args.query));
588
+ if (entries.length === 0)
589
+ return { result: 'No matching knowledge found.', isError: false };
590
+ return { result: entries.map(e => `${e.key}: ${e.value}`).join('\n'), isError: false };
591
+ }
592
+ default:
593
+ return { result: `Unknown tool: ${name}`, isError: true };
594
+ }
595
+ }
596
+ catch (err) {
597
+ const msg = err instanceof Error ? err.message : String(err);
598
+ return { result: msg.slice(0, 500), isError: true };
599
+ }
600
+ };
601
+ }
602
+ //# sourceMappingURL=assistant-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assistant-tools.js","sourceRoot":"","sources":["../../src/bot/assistant-tools.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"audit-logger.d.ts","sourceRoot":"","sources":["../../src/bot/audit-logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAOrE,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAQlF;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAqBpF;AAED,wBAAgB,mBAAmB,IAAI,IAAI,CAI1C"}
1
+ {"version":3,"file":"audit-logger.d.ts","sourceRoot":"","sources":["../../src/bot/audit-logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAOrE,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,kBAAkB,GAAG,IAAI,CASlF;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAqBpF;AAED,wBAAgB,mBAAmB,IAAI,IAAI,CAI1C"}