@synergenius/flow-weaver-pack-weaver 0.8.1

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 (459) hide show
  1. package/LICENSE +204 -0
  2. package/README.md +167 -0
  3. package/dist/bot/agent-provider.d.ts +34 -0
  4. package/dist/bot/agent-provider.d.ts.map +1 -0
  5. package/dist/bot/agent-provider.js +218 -0
  6. package/dist/bot/agent-provider.js.map +1 -0
  7. package/dist/bot/ai-client.d.ts +15 -0
  8. package/dist/bot/ai-client.d.ts.map +1 -0
  9. package/dist/bot/ai-client.js +128 -0
  10. package/dist/bot/ai-client.js.map +1 -0
  11. package/dist/bot/approvals.d.ts +22 -0
  12. package/dist/bot/approvals.d.ts.map +1 -0
  13. package/dist/bot/approvals.js +187 -0
  14. package/dist/bot/approvals.js.map +1 -0
  15. package/dist/bot/audit-logger.d.ts +5 -0
  16. package/dist/bot/audit-logger.d.ts.map +1 -0
  17. package/dist/bot/audit-logger.js +42 -0
  18. package/dist/bot/audit-logger.js.map +1 -0
  19. package/dist/bot/audit-store.d.ts +13 -0
  20. package/dist/bot/audit-store.d.ts.map +1 -0
  21. package/dist/bot/audit-store.js +59 -0
  22. package/dist/bot/audit-store.js.map +1 -0
  23. package/dist/bot/bot-agent-channel.d.ts +46 -0
  24. package/dist/bot/bot-agent-channel.d.ts.map +1 -0
  25. package/dist/bot/bot-agent-channel.js +58 -0
  26. package/dist/bot/bot-agent-channel.js.map +1 -0
  27. package/dist/bot/cli-provider.d.ts +29 -0
  28. package/dist/bot/cli-provider.d.ts.map +1 -0
  29. package/dist/bot/cli-provider.js +132 -0
  30. package/dist/bot/cli-provider.js.map +1 -0
  31. package/dist/bot/cli-stream-parser.d.ts +11 -0
  32. package/dist/bot/cli-stream-parser.d.ts.map +1 -0
  33. package/dist/bot/cli-stream-parser.js +53 -0
  34. package/dist/bot/cli-stream-parser.js.map +1 -0
  35. package/dist/bot/cost-store.d.ts +18 -0
  36. package/dist/bot/cost-store.d.ts.map +1 -0
  37. package/dist/bot/cost-store.js +81 -0
  38. package/dist/bot/cost-store.js.map +1 -0
  39. package/dist/bot/cost-tracker.d.ts +18 -0
  40. package/dist/bot/cost-tracker.d.ts.map +1 -0
  41. package/dist/bot/cost-tracker.js +60 -0
  42. package/dist/bot/cost-tracker.js.map +1 -0
  43. package/dist/bot/cron-parser.d.ts +5 -0
  44. package/dist/bot/cron-parser.d.ts.map +1 -0
  45. package/dist/bot/cron-parser.js +141 -0
  46. package/dist/bot/cron-parser.js.map +1 -0
  47. package/dist/bot/cron-scheduler.d.ts +12 -0
  48. package/dist/bot/cron-scheduler.d.ts.map +1 -0
  49. package/dist/bot/cron-scheduler.js +43 -0
  50. package/dist/bot/cron-scheduler.js.map +1 -0
  51. package/dist/bot/dashboard.d.ts +34 -0
  52. package/dist/bot/dashboard.d.ts.map +1 -0
  53. package/dist/bot/dashboard.js +602 -0
  54. package/dist/bot/dashboard.js.map +1 -0
  55. package/dist/bot/design-checker.d.ts +24 -0
  56. package/dist/bot/design-checker.d.ts.map +1 -0
  57. package/dist/bot/design-checker.js +269 -0
  58. package/dist/bot/design-checker.js.map +1 -0
  59. package/dist/bot/file-lock.d.ts +7 -0
  60. package/dist/bot/file-lock.d.ts.map +1 -0
  61. package/dist/bot/file-lock.js +64 -0
  62. package/dist/bot/file-lock.js.map +1 -0
  63. package/dist/bot/file-validator.d.ts +10 -0
  64. package/dist/bot/file-validator.d.ts.map +1 -0
  65. package/dist/bot/file-validator.js +27 -0
  66. package/dist/bot/file-validator.js.map +1 -0
  67. package/dist/bot/file-watcher.d.ts +24 -0
  68. package/dist/bot/file-watcher.d.ts.map +1 -0
  69. package/dist/bot/file-watcher.js +98 -0
  70. package/dist/bot/file-watcher.js.map +1 -0
  71. package/dist/bot/fw-api.d.ts +8 -0
  72. package/dist/bot/fw-api.d.ts.map +1 -0
  73. package/dist/bot/fw-api.js +12 -0
  74. package/dist/bot/fw-api.js.map +1 -0
  75. package/dist/bot/genesis-prompt-context.d.ts +31 -0
  76. package/dist/bot/genesis-prompt-context.d.ts.map +1 -0
  77. package/dist/bot/genesis-prompt-context.js +121 -0
  78. package/dist/bot/genesis-prompt-context.js.map +1 -0
  79. package/dist/bot/genesis-store.d.ts +28 -0
  80. package/dist/bot/genesis-store.d.ts.map +1 -0
  81. package/dist/bot/genesis-store.js +154 -0
  82. package/dist/bot/genesis-store.js.map +1 -0
  83. package/dist/bot/index.d.ts +38 -0
  84. package/dist/bot/index.d.ts.map +1 -0
  85. package/dist/bot/index.js +37 -0
  86. package/dist/bot/index.js.map +1 -0
  87. package/dist/bot/notifications.d.ts +20 -0
  88. package/dist/bot/notifications.d.ts.map +1 -0
  89. package/dist/bot/notifications.js +215 -0
  90. package/dist/bot/notifications.js.map +1 -0
  91. package/dist/bot/pipeline-runner.d.ts +22 -0
  92. package/dist/bot/pipeline-runner.d.ts.map +1 -0
  93. package/dist/bot/pipeline-runner.js +263 -0
  94. package/dist/bot/pipeline-runner.js.map +1 -0
  95. package/dist/bot/provider-registry.d.ts +26 -0
  96. package/dist/bot/provider-registry.d.ts.map +1 -0
  97. package/dist/bot/provider-registry.js +175 -0
  98. package/dist/bot/provider-registry.js.map +1 -0
  99. package/dist/bot/run-store.d.ts +25 -0
  100. package/dist/bot/run-store.d.ts.map +1 -0
  101. package/dist/bot/run-store.js +156 -0
  102. package/dist/bot/run-store.js.map +1 -0
  103. package/dist/bot/runner.d.ts +13 -0
  104. package/dist/bot/runner.d.ts.map +1 -0
  105. package/dist/bot/runner.js +244 -0
  106. package/dist/bot/runner.js.map +1 -0
  107. package/dist/bot/session-state.d.ts +19 -0
  108. package/dist/bot/session-state.d.ts.map +1 -0
  109. package/dist/bot/session-state.js +65 -0
  110. package/dist/bot/session-state.js.map +1 -0
  111. package/dist/bot/steering.d.ts +13 -0
  112. package/dist/bot/steering.d.ts.map +1 -0
  113. package/dist/bot/steering.js +40 -0
  114. package/dist/bot/steering.js.map +1 -0
  115. package/dist/bot/step-executor.d.ts +10 -0
  116. package/dist/bot/step-executor.d.ts.map +1 -0
  117. package/dist/bot/step-executor.js +30 -0
  118. package/dist/bot/step-executor.js.map +1 -0
  119. package/dist/bot/system-prompt.d.ts +19 -0
  120. package/dist/bot/system-prompt.d.ts.map +1 -0
  121. package/dist/bot/system-prompt.js +222 -0
  122. package/dist/bot/system-prompt.js.map +1 -0
  123. package/dist/bot/task-queue.d.ts +26 -0
  124. package/dist/bot/task-queue.d.ts.map +1 -0
  125. package/dist/bot/task-queue.js +98 -0
  126. package/dist/bot/task-queue.js.map +1 -0
  127. package/dist/bot/types.d.ts +478 -0
  128. package/dist/bot/types.d.ts.map +1 -0
  129. package/dist/bot/types.js +2 -0
  130. package/dist/bot/types.js.map +1 -0
  131. package/dist/bot/utils.d.ts +2 -0
  132. package/dist/bot/utils.d.ts.map +1 -0
  133. package/dist/bot/utils.js +20 -0
  134. package/dist/bot/utils.js.map +1 -0
  135. package/dist/bot/watch-daemon.d.ts +19 -0
  136. package/dist/bot/watch-daemon.d.ts.map +1 -0
  137. package/dist/bot/watch-daemon.js +178 -0
  138. package/dist/bot/watch-daemon.js.map +1 -0
  139. package/dist/bot/web-approval.d.ts +19 -0
  140. package/dist/bot/web-approval.d.ts.map +1 -0
  141. package/dist/bot/web-approval.js +207 -0
  142. package/dist/bot/web-approval.js.map +1 -0
  143. package/dist/cli-bridge.d.ts +2 -0
  144. package/dist/cli-bridge.d.ts.map +1 -0
  145. package/dist/cli-bridge.js +30 -0
  146. package/dist/cli-bridge.js.map +1 -0
  147. package/dist/cli-handlers.d.ts +79 -0
  148. package/dist/cli-handlers.d.ts.map +1 -0
  149. package/dist/cli-handlers.js +1335 -0
  150. package/dist/cli-handlers.js.map +1 -0
  151. package/dist/cli.d.ts +3 -0
  152. package/dist/cli.d.ts.map +1 -0
  153. package/dist/cli.js +749 -0
  154. package/dist/cli.js.map +1 -0
  155. package/dist/docs/docs/weaver-config.md +135 -0
  156. package/dist/docs/weaver-config.md +141 -0
  157. package/dist/index.d.ts +30 -0
  158. package/dist/index.d.ts.map +1 -0
  159. package/dist/index.js +37 -0
  160. package/dist/index.js.map +1 -0
  161. package/dist/mcp-tools.d.ts +13 -0
  162. package/dist/mcp-tools.d.ts.map +1 -0
  163. package/dist/mcp-tools.js +197 -0
  164. package/dist/mcp-tools.js.map +1 -0
  165. package/dist/node-types/abort-task.d.ts +15 -0
  166. package/dist/node-types/abort-task.d.ts.map +1 -0
  167. package/dist/node-types/abort-task.js +28 -0
  168. package/dist/node-types/abort-task.js.map +1 -0
  169. package/dist/node-types/approval-gate.d.ts +18 -0
  170. package/dist/node-types/approval-gate.d.ts.map +1 -0
  171. package/dist/node-types/approval-gate.js +80 -0
  172. package/dist/node-types/approval-gate.js.map +1 -0
  173. package/dist/node-types/bot-report.d.ts +20 -0
  174. package/dist/node-types/bot-report.d.ts.map +1 -0
  175. package/dist/node-types/bot-report.js +67 -0
  176. package/dist/node-types/bot-report.js.map +1 -0
  177. package/dist/node-types/build-context.d.ts +16 -0
  178. package/dist/node-types/build-context.d.ts.map +1 -0
  179. package/dist/node-types/build-context.js +64 -0
  180. package/dist/node-types/build-context.js.map +1 -0
  181. package/dist/node-types/detect-provider.d.ts +17 -0
  182. package/dist/node-types/detect-provider.d.ts.map +1 -0
  183. package/dist/node-types/detect-provider.js +71 -0
  184. package/dist/node-types/detect-provider.js.map +1 -0
  185. package/dist/node-types/exec-validate-retry.d.ts +17 -0
  186. package/dist/node-types/exec-validate-retry.d.ts.map +1 -0
  187. package/dist/node-types/exec-validate-retry.js +147 -0
  188. package/dist/node-types/exec-validate-retry.js.map +1 -0
  189. package/dist/node-types/execute-plan.d.ts +26 -0
  190. package/dist/node-types/execute-plan.d.ts.map +1 -0
  191. package/dist/node-types/execute-plan.js +120 -0
  192. package/dist/node-types/execute-plan.js.map +1 -0
  193. package/dist/node-types/execute-target.d.ts +16 -0
  194. package/dist/node-types/execute-target.d.ts.map +1 -0
  195. package/dist/node-types/execute-target.js +238 -0
  196. package/dist/node-types/execute-target.js.map +1 -0
  197. package/dist/node-types/fix-errors.d.ts +24 -0
  198. package/dist/node-types/fix-errors.d.ts.map +1 -0
  199. package/dist/node-types/fix-errors.js +49 -0
  200. package/dist/node-types/fix-errors.js.map +1 -0
  201. package/dist/node-types/genesis-apply-retry.d.ts +27 -0
  202. package/dist/node-types/genesis-apply-retry.d.ts.map +1 -0
  203. package/dist/node-types/genesis-apply-retry.js +97 -0
  204. package/dist/node-types/genesis-apply-retry.js.map +1 -0
  205. package/dist/node-types/genesis-apply.d.ts +29 -0
  206. package/dist/node-types/genesis-apply.d.ts.map +1 -0
  207. package/dist/node-types/genesis-apply.js +76 -0
  208. package/dist/node-types/genesis-apply.js.map +1 -0
  209. package/dist/node-types/genesis-approve.d.ts +19 -0
  210. package/dist/node-types/genesis-approve.d.ts.map +1 -0
  211. package/dist/node-types/genesis-approve.js +59 -0
  212. package/dist/node-types/genesis-approve.js.map +1 -0
  213. package/dist/node-types/genesis-check-stabilize.d.ts +16 -0
  214. package/dist/node-types/genesis-check-stabilize.d.ts.map +1 -0
  215. package/dist/node-types/genesis-check-stabilize.js +32 -0
  216. package/dist/node-types/genesis-check-stabilize.js.map +1 -0
  217. package/dist/node-types/genesis-check-threshold.d.ts +15 -0
  218. package/dist/node-types/genesis-check-threshold.d.ts.map +1 -0
  219. package/dist/node-types/genesis-check-threshold.js +29 -0
  220. package/dist/node-types/genesis-check-threshold.js.map +1 -0
  221. package/dist/node-types/genesis-commit.d.ts +17 -0
  222. package/dist/node-types/genesis-commit.d.ts.map +1 -0
  223. package/dist/node-types/genesis-commit.js +59 -0
  224. package/dist/node-types/genesis-commit.js.map +1 -0
  225. package/dist/node-types/genesis-compile-validate.d.ts +26 -0
  226. package/dist/node-types/genesis-compile-validate.d.ts.map +1 -0
  227. package/dist/node-types/genesis-compile-validate.js +60 -0
  228. package/dist/node-types/genesis-compile-validate.js.map +1 -0
  229. package/dist/node-types/genesis-diff-fingerprint.d.ts +15 -0
  230. package/dist/node-types/genesis-diff-fingerprint.d.ts.map +1 -0
  231. package/dist/node-types/genesis-diff-fingerprint.js +59 -0
  232. package/dist/node-types/genesis-diff-fingerprint.js.map +1 -0
  233. package/dist/node-types/genesis-diff-workflow.d.ts +15 -0
  234. package/dist/node-types/genesis-diff-workflow.d.ts.map +1 -0
  235. package/dist/node-types/genesis-diff-workflow.js +67 -0
  236. package/dist/node-types/genesis-diff-workflow.js.map +1 -0
  237. package/dist/node-types/genesis-escrow-grace.d.ts +15 -0
  238. package/dist/node-types/genesis-escrow-grace.d.ts.map +1 -0
  239. package/dist/node-types/genesis-escrow-grace.js +52 -0
  240. package/dist/node-types/genesis-escrow-grace.js.map +1 -0
  241. package/dist/node-types/genesis-escrow-migrate.d.ts +21 -0
  242. package/dist/node-types/genesis-escrow-migrate.d.ts.map +1 -0
  243. package/dist/node-types/genesis-escrow-migrate.js +116 -0
  244. package/dist/node-types/genesis-escrow-migrate.js.map +1 -0
  245. package/dist/node-types/genesis-escrow-recover.d.ts +15 -0
  246. package/dist/node-types/genesis-escrow-recover.d.ts.map +1 -0
  247. package/dist/node-types/genesis-escrow-recover.js +90 -0
  248. package/dist/node-types/genesis-escrow-recover.js.map +1 -0
  249. package/dist/node-types/genesis-escrow-stage.d.ts +17 -0
  250. package/dist/node-types/genesis-escrow-stage.d.ts.map +1 -0
  251. package/dist/node-types/genesis-escrow-stage.js +86 -0
  252. package/dist/node-types/genesis-escrow-stage.js.map +1 -0
  253. package/dist/node-types/genesis-escrow-validate.d.ts +17 -0
  254. package/dist/node-types/genesis-escrow-validate.d.ts.map +1 -0
  255. package/dist/node-types/genesis-escrow-validate.js +110 -0
  256. package/dist/node-types/genesis-escrow-validate.js.map +1 -0
  257. package/dist/node-types/genesis-load-config.d.ts +17 -0
  258. package/dist/node-types/genesis-load-config.d.ts.map +1 -0
  259. package/dist/node-types/genesis-load-config.js +36 -0
  260. package/dist/node-types/genesis-load-config.js.map +1 -0
  261. package/dist/node-types/genesis-observe.d.ts +18 -0
  262. package/dist/node-types/genesis-observe.d.ts.map +1 -0
  263. package/dist/node-types/genesis-observe.js +103 -0
  264. package/dist/node-types/genesis-observe.js.map +1 -0
  265. package/dist/node-types/genesis-propose.d.ts +17 -0
  266. package/dist/node-types/genesis-propose.d.ts.map +1 -0
  267. package/dist/node-types/genesis-propose.js +69 -0
  268. package/dist/node-types/genesis-propose.js.map +1 -0
  269. package/dist/node-types/genesis-report.d.ts +20 -0
  270. package/dist/node-types/genesis-report.d.ts.map +1 -0
  271. package/dist/node-types/genesis-report.js +87 -0
  272. package/dist/node-types/genesis-report.js.map +1 -0
  273. package/dist/node-types/genesis-snapshot.d.ts +15 -0
  274. package/dist/node-types/genesis-snapshot.d.ts.map +1 -0
  275. package/dist/node-types/genesis-snapshot.js +26 -0
  276. package/dist/node-types/genesis-snapshot.js.map +1 -0
  277. package/dist/node-types/genesis-try-apply.d.ts +18 -0
  278. package/dist/node-types/genesis-try-apply.d.ts.map +1 -0
  279. package/dist/node-types/genesis-try-apply.js +142 -0
  280. package/dist/node-types/genesis-try-apply.js.map +1 -0
  281. package/dist/node-types/genesis-update-history.d.ts +15 -0
  282. package/dist/node-types/genesis-update-history.d.ts.map +1 -0
  283. package/dist/node-types/genesis-update-history.js +70 -0
  284. package/dist/node-types/genesis-update-history.js.map +1 -0
  285. package/dist/node-types/genesis-validate-proposal.d.ts +16 -0
  286. package/dist/node-types/genesis-validate-proposal.d.ts.map +1 -0
  287. package/dist/node-types/genesis-validate-proposal.js +109 -0
  288. package/dist/node-types/genesis-validate-proposal.js.map +1 -0
  289. package/dist/node-types/git-ops.d.ts +15 -0
  290. package/dist/node-types/git-ops.d.ts.map +1 -0
  291. package/dist/node-types/git-ops.js +69 -0
  292. package/dist/node-types/git-ops.js.map +1 -0
  293. package/dist/node-types/index.d.ts +37 -0
  294. package/dist/node-types/index.d.ts.map +1 -0
  295. package/dist/node-types/index.js +37 -0
  296. package/dist/node-types/index.js.map +1 -0
  297. package/dist/node-types/load-config.d.ts +17 -0
  298. package/dist/node-types/load-config.d.ts.map +1 -0
  299. package/dist/node-types/load-config.js +27 -0
  300. package/dist/node-types/load-config.js.map +1 -0
  301. package/dist/node-types/plan-task.d.ts +17 -0
  302. package/dist/node-types/plan-task.d.ts.map +1 -0
  303. package/dist/node-types/plan-task.js +55 -0
  304. package/dist/node-types/plan-task.js.map +1 -0
  305. package/dist/node-types/read-workflow.d.ts +15 -0
  306. package/dist/node-types/read-workflow.d.ts.map +1 -0
  307. package/dist/node-types/read-workflow.js +60 -0
  308. package/dist/node-types/read-workflow.js.map +1 -0
  309. package/dist/node-types/receive-task.d.ts +20 -0
  310. package/dist/node-types/receive-task.d.ts.map +1 -0
  311. package/dist/node-types/receive-task.js +69 -0
  312. package/dist/node-types/receive-task.js.map +1 -0
  313. package/dist/node-types/report.d.ts +14 -0
  314. package/dist/node-types/report.d.ts.map +1 -0
  315. package/dist/node-types/report.js +25 -0
  316. package/dist/node-types/report.js.map +1 -0
  317. package/dist/node-types/resolve-target.d.ts +16 -0
  318. package/dist/node-types/resolve-target.d.ts.map +1 -0
  319. package/dist/node-types/resolve-target.js +67 -0
  320. package/dist/node-types/resolve-target.js.map +1 -0
  321. package/dist/node-types/route-task.d.ts +14 -0
  322. package/dist/node-types/route-task.d.ts.map +1 -0
  323. package/dist/node-types/route-task.js +22 -0
  324. package/dist/node-types/route-task.js.map +1 -0
  325. package/dist/node-types/send-notify.d.ts +14 -0
  326. package/dist/node-types/send-notify.d.ts.map +1 -0
  327. package/dist/node-types/send-notify.js +71 -0
  328. package/dist/node-types/send-notify.js.map +1 -0
  329. package/dist/node-types/validate-result.d.ts +24 -0
  330. package/dist/node-types/validate-result.d.ts.map +1 -0
  331. package/dist/node-types/validate-result.js +38 -0
  332. package/dist/node-types/validate-result.js.map +1 -0
  333. package/dist/templates/index.d.ts +5 -0
  334. package/dist/templates/index.d.ts.map +1 -0
  335. package/dist/templates/index.js +4 -0
  336. package/dist/templates/index.js.map +1 -0
  337. package/dist/templates/weaver-bot-template.d.ts +11 -0
  338. package/dist/templates/weaver-bot-template.d.ts.map +1 -0
  339. package/dist/templates/weaver-bot-template.js +99 -0
  340. package/dist/templates/weaver-bot-template.js.map +1 -0
  341. package/dist/templates/weaver-template.d.ts +11 -0
  342. package/dist/templates/weaver-template.d.ts.map +1 -0
  343. package/dist/templates/weaver-template.js +53 -0
  344. package/dist/templates/weaver-template.js.map +1 -0
  345. package/dist/workflows/genesis-task.d.ts +62 -0
  346. package/dist/workflows/genesis-task.d.ts.map +1 -0
  347. package/dist/workflows/genesis-task.js +64 -0
  348. package/dist/workflows/genesis-task.js.map +1 -0
  349. package/dist/workflows/index.d.ts +4 -0
  350. package/dist/workflows/index.d.ts.map +1 -0
  351. package/dist/workflows/index.js +4 -0
  352. package/dist/workflows/index.js.map +1 -0
  353. package/dist/workflows/weaver-bot-batch.d.ts +49 -0
  354. package/dist/workflows/weaver-bot-batch.d.ts.map +1 -0
  355. package/dist/workflows/weaver-bot-batch.js +49 -0
  356. package/dist/workflows/weaver-bot-batch.js.map +1 -0
  357. package/dist/workflows/weaver-bot-session.d.ts +65 -0
  358. package/dist/workflows/weaver-bot-session.d.ts.map +1 -0
  359. package/dist/workflows/weaver-bot-session.js +68 -0
  360. package/dist/workflows/weaver-bot-session.js.map +1 -0
  361. package/dist/workflows/weaver-bot.d.ts +61 -0
  362. package/dist/workflows/weaver-bot.d.ts.map +1 -0
  363. package/dist/workflows/weaver-bot.js +61 -0
  364. package/dist/workflows/weaver-bot.js.map +1 -0
  365. package/dist/workflows/weaver.d.ts +24 -0
  366. package/dist/workflows/weaver.d.ts.map +1 -0
  367. package/dist/workflows/weaver.js +28 -0
  368. package/dist/workflows/weaver.js.map +1 -0
  369. package/flowweaver.manifest.json +1001 -0
  370. package/package.json +78 -0
  371. package/src/bot/agent-provider.ts +273 -0
  372. package/src/bot/ai-client.ts +153 -0
  373. package/src/bot/approvals.ts +273 -0
  374. package/src/bot/audit-logger.ts +45 -0
  375. package/src/bot/audit-store.ts +69 -0
  376. package/src/bot/bot-agent-channel.ts +99 -0
  377. package/src/bot/cli-provider.ts +169 -0
  378. package/src/bot/cli-stream-parser.ts +59 -0
  379. package/src/bot/cost-store.ts +92 -0
  380. package/src/bot/cost-tracker.ts +72 -0
  381. package/src/bot/cron-parser.ts +153 -0
  382. package/src/bot/cron-scheduler.ts +48 -0
  383. package/src/bot/dashboard.ts +658 -0
  384. package/src/bot/design-checker.ts +327 -0
  385. package/src/bot/file-lock.ts +73 -0
  386. package/src/bot/file-validator.ts +41 -0
  387. package/src/bot/file-watcher.ts +103 -0
  388. package/src/bot/fw-api.ts +18 -0
  389. package/src/bot/genesis-prompt-context.ts +135 -0
  390. package/src/bot/genesis-store.ts +180 -0
  391. package/src/bot/index.ts +127 -0
  392. package/src/bot/notifications.ts +263 -0
  393. package/src/bot/pipeline-runner.ts +324 -0
  394. package/src/bot/provider-registry.ts +236 -0
  395. package/src/bot/run-store.ts +169 -0
  396. package/src/bot/runner.ts +311 -0
  397. package/src/bot/session-state.ts +73 -0
  398. package/src/bot/steering.ts +44 -0
  399. package/src/bot/step-executor.ts +34 -0
  400. package/src/bot/system-prompt.ts +280 -0
  401. package/src/bot/task-queue.ts +111 -0
  402. package/src/bot/types.ts +571 -0
  403. package/src/bot/utils.ts +17 -0
  404. package/src/bot/watch-daemon.ts +203 -0
  405. package/src/bot/web-approval.ts +240 -0
  406. package/src/cli-bridge.ts +41 -0
  407. package/src/cli-handlers.ts +1445 -0
  408. package/src/docs/weaver-config.md +135 -0
  409. package/src/index.ts +177 -0
  410. package/src/mcp-tools.ts +274 -0
  411. package/src/node-types/abort-task.ts +31 -0
  412. package/src/node-types/approval-gate.ts +95 -0
  413. package/src/node-types/bot-report.ts +82 -0
  414. package/src/node-types/build-context.ts +65 -0
  415. package/src/node-types/detect-provider.ts +77 -0
  416. package/src/node-types/exec-validate-retry.ts +170 -0
  417. package/src/node-types/execute-plan.ts +130 -0
  418. package/src/node-types/execute-target.ts +256 -0
  419. package/src/node-types/fix-errors.ts +63 -0
  420. package/src/node-types/genesis-apply-retry.ts +133 -0
  421. package/src/node-types/genesis-apply.ts +96 -0
  422. package/src/node-types/genesis-approve.ts +73 -0
  423. package/src/node-types/genesis-check-stabilize.ts +37 -0
  424. package/src/node-types/genesis-check-threshold.ts +34 -0
  425. package/src/node-types/genesis-commit.ts +71 -0
  426. package/src/node-types/genesis-compile-validate.ts +77 -0
  427. package/src/node-types/genesis-diff-fingerprint.ts +67 -0
  428. package/src/node-types/genesis-diff-workflow.ts +71 -0
  429. package/src/node-types/genesis-escrow-grace.ts +62 -0
  430. package/src/node-types/genesis-escrow-migrate.ts +138 -0
  431. package/src/node-types/genesis-escrow-recover.ts +99 -0
  432. package/src/node-types/genesis-escrow-stage.ts +104 -0
  433. package/src/node-types/genesis-escrow-validate.ts +120 -0
  434. package/src/node-types/genesis-load-config.ts +44 -0
  435. package/src/node-types/genesis-observe.ts +119 -0
  436. package/src/node-types/genesis-propose.ts +86 -0
  437. package/src/node-types/genesis-report.ts +95 -0
  438. package/src/node-types/genesis-snapshot.ts +30 -0
  439. package/src/node-types/genesis-try-apply.ts +165 -0
  440. package/src/node-types/genesis-update-history.ts +72 -0
  441. package/src/node-types/genesis-validate-proposal.ts +124 -0
  442. package/src/node-types/git-ops.ts +72 -0
  443. package/src/node-types/index.ts +36 -0
  444. package/src/node-types/load-config.ts +27 -0
  445. package/src/node-types/plan-task.ts +66 -0
  446. package/src/node-types/read-workflow.ts +68 -0
  447. package/src/node-types/receive-task.ts +92 -0
  448. package/src/node-types/report.ts +25 -0
  449. package/src/node-types/resolve-target.ts +64 -0
  450. package/src/node-types/route-task.ts +25 -0
  451. package/src/node-types/send-notify.ts +75 -0
  452. package/src/node-types/validate-result.ts +49 -0
  453. package/src/templates/index.ts +5 -0
  454. package/src/templates/weaver-bot-template.ts +106 -0
  455. package/src/workflows/genesis-task.ts +91 -0
  456. package/src/workflows/index.ts +3 -0
  457. package/src/workflows/weaver-bot-batch.ts +65 -0
  458. package/src/workflows/weaver-bot.ts +79 -0
  459. package/templates.js +1 -0
@@ -0,0 +1,280 @@
1
+ /**
2
+ * Builds the Weaver expert system prompt from flow-weaver's doc-metadata.
3
+ * This ensures Weaver's knowledge stays in sync with the installed flow-weaver version.
4
+ */
5
+
6
+ interface AnnotationDoc {
7
+ name: string;
8
+ syntax: string;
9
+ description: string;
10
+ category: string;
11
+ }
12
+
13
+ interface ModifierDoc {
14
+ name: string;
15
+ syntax: string;
16
+ description: string;
17
+ }
18
+
19
+ interface ValidationCodeDoc {
20
+ code: string;
21
+ severity: string;
22
+ title: string;
23
+ description: string;
24
+ category: string;
25
+ }
26
+
27
+ interface CliCommandDoc {
28
+ name: string;
29
+ description: string;
30
+ group?: string;
31
+ botCompatible?: boolean;
32
+ options?: { flags: string; arg?: string; description: string }[];
33
+ }
34
+
35
+ let cachedPrompt: string | null = null;
36
+
37
+ function formatAnnotations(annotations: AnnotationDoc[]): string {
38
+ // Group by category, show syntax + description
39
+ const groups = new Map<string, AnnotationDoc[]>();
40
+ for (const a of annotations) {
41
+ const list = groups.get(a.category) ?? [];
42
+ list.push(a);
43
+ groups.set(a.category, list);
44
+ }
45
+
46
+ const lines: string[] = [];
47
+ for (const [category, items] of groups) {
48
+ lines.push(`[${category}]`);
49
+ for (const item of items) {
50
+ lines.push(` ${item.syntax} -- ${item.description}`);
51
+ }
52
+ }
53
+ return lines.join('\n');
54
+ }
55
+
56
+ function formatModifiers(portMods: ModifierDoc[], nodeMods: ModifierDoc[]): string {
57
+ const lines: string[] = [];
58
+ if (portMods.length > 0) {
59
+ lines.push('Port modifiers (after port name):');
60
+ for (const m of portMods) {
61
+ lines.push(` ${m.syntax} -- ${m.description}`);
62
+ }
63
+ }
64
+ if (nodeMods.length > 0) {
65
+ lines.push('Node instance modifiers (in @node declaration):');
66
+ for (const m of nodeMods) {
67
+ lines.push(` ${m.syntax} -- ${m.description}`);
68
+ }
69
+ }
70
+ return lines.join('\n');
71
+ }
72
+
73
+ function formatErrors(codes: ValidationCodeDoc[]): string {
74
+ const errors = codes.filter((c) => c.severity === 'error').slice(0, 15);
75
+ return errors
76
+ .map((c) => ` ${c.code}: ${c.title} -- ${c.description}`)
77
+ .join('\n');
78
+ }
79
+
80
+ function formatCliCommands(commands: CliCommandDoc[]): string {
81
+ const top = commands.filter((c) => !c.group);
82
+ return top
83
+ .map((c) => ` flow-weaver ${c.name} -- ${c.description}`)
84
+ .join('\n');
85
+ }
86
+
87
+ function buildPromptFromMetadata(
88
+ annotations: AnnotationDoc[],
89
+ portModifiers: ModifierDoc[],
90
+ nodeModifiers: ModifierDoc[],
91
+ validationCodes: ValidationCodeDoc[],
92
+ cliCommands: CliCommandDoc[],
93
+ ): string {
94
+ return `You are Weaver, an expert AI companion for Flow Weaver workflows. You have deep knowledge of the entire Flow Weaver ecosystem: annotation grammar, compilation, CLI tools, node patterns, error diagnosis, and the Genesis self-evolution protocol.
95
+
96
+ ## Core Mental Model
97
+
98
+ The code IS the workflow. Flow Weaver workflows are plain TypeScript files with JSDoc annotations above functions. The compiler reads annotations and generates deterministic execution code between @flow-weaver-body-start/end markers. Compiled code is standalone with no runtime dependency on flow-weaver.
99
+
100
+ Three block types:
101
+ - @flowWeaver nodeType: A reusable function (node) with typed inputs/outputs
102
+ - @flowWeaver workflow: A DAG orchestration that wires node instances together
103
+ - @flowWeaver pattern: A reusable fragment with boundary ports (IN/OUT instead of Start/Exit)
104
+
105
+ ## Annotation Grammar
106
+
107
+ ${formatAnnotations(annotations)}
108
+
109
+ ${formatModifiers(portModifiers, nodeModifiers)}
110
+
111
+ ## Node Execution Model
112
+
113
+ Expression nodes (@expression):
114
+ - No execute/onSuccess/onFailure params. Just inputs and return value.
115
+ - throw = failure path, return = success path
116
+ - Synchronous. Use execSync for shell commands.
117
+ - Preferred for deterministic operations.
118
+
119
+ Standard nodes:
120
+ - execute: boolean param gates execution
121
+ - Return { onSuccess: boolean, onFailure: boolean, ...outputs }
122
+ - Can be async for I/O operations
123
+
124
+ Async agent nodes:
125
+ - Use (globalThis as any).__fw_agent_channel__ to pause workflow
126
+ - Call channel.request({ agentId, context, prompt }) which returns a Promise
127
+ - Workflow suspends until agent responds
128
+ - NOT @expression (must be async)
129
+
130
+ Pass-through pattern:
131
+ - FW auto-connects ports by matching names on adjacent nodes
132
+ - To forward data through intermediate nodes, declare it as both @input and @output with the same name
133
+ - For non-adjacent wiring, use @connect sourceNode.port -> targetNode.port
134
+
135
+ Data flow:
136
+ - @path A -> B -> C: Linear execution path (sugar for multiple @connect)
137
+ - @autoConnect: Auto-wire all nodes in declaration order
138
+ - @connect: Explicit port-to-port wiring
139
+ - Merge strategies for fan-in: FIRST, LAST, COLLECT, MERGE, CONCAT
140
+
141
+ ## CLI Commands
142
+
143
+ ${formatCliCommands(cliCommands)}
144
+
145
+ Note: compile, validate, modify, diff, diagram, and describe operations are available as direct plan steps (no CLI needed). The run-cli operation is an escape hatch for other CLI commands.
146
+
147
+ ## Validation Errors
148
+
149
+ ${formatErrors(validationCodes)}
150
+
151
+ When you encounter validation errors, suggest the specific fix. Common resolutions:
152
+ - UNKNOWN_NODE_TYPE: Ensure the referenced function has @flowWeaver nodeType annotation
153
+ - MISSING_REQUIRED_INPUT: Add a @connect from a source port or make the input optional with [brackets]
154
+ - UNKNOWN_SOURCE_PORT / UNKNOWN_TARGET_PORT: Check port name spelling in @connect
155
+ - CYCLE_DETECTED: Break the cycle; use scoped iteration (@scope, @map) instead of circular dependencies
156
+
157
+ ## Genesis Protocol
158
+
159
+ Genesis is a 17-step self-evolving workflow engine:
160
+ 1. Load config (.genesis/config.json with intent, focus, constraints, approval thresholds)
161
+ 2. Observe project (fingerprint: files, package.json, git, CI, tests, existing FW workflows)
162
+ 3. Load task workflow (genesis-task.ts)
163
+ 4. Diff fingerprint against last cycle
164
+ 5. Check stabilize mode (3+ rollbacks/rejections = read-only, or explicit flag)
165
+ 6. Wait for agent (YOU decide what evolutions to propose)
166
+ 7. Propose evolution (map your decisions to FwModifyOperation[])
167
+ 8. Validate proposal (budget: max 3 cost units per cycle. addNode=1, removeNode=1, addConnection=1, removeConnection=1, implementNode=2)
168
+ 9. Snapshot current task workflow for rollback
169
+ 10. Apply changes via flow-weaver CLI
170
+ 11. Compile and validate (auto-rollback on failure)
171
+ 12. Diff workflow (semantic diff)
172
+ 13. Check approval threshold (CRITICAL > BREAKING > MINOR > COSMETIC)
173
+ 14. Wait for approval (if impact >= threshold)
174
+ 15. Commit or rollback based on approval
175
+ 16. Update history (.genesis/history.json)
176
+ 17. Report summary
177
+
178
+ When stabilize mode is active, only fix-up operations are allowed: removeNode, removeConnection, implementNode. No new nodes or connections.
179
+
180
+ ## Response Format
181
+
182
+ Return ONLY valid JSON. No markdown, no code fences, no explanation outside the JSON structure. Your response must parse with JSON.parse() directly.`;
183
+ }
184
+
185
+ export async function buildSystemPrompt(): Promise<string> {
186
+ if (cachedPrompt) return cachedPrompt;
187
+
188
+ try {
189
+ const docMeta = await import('@synergenius/flow-weaver/doc-metadata');
190
+
191
+ cachedPrompt = buildPromptFromMetadata(
192
+ docMeta.ALL_ANNOTATIONS ?? [],
193
+ docMeta.PORT_MODIFIERS ?? [],
194
+ docMeta.NODE_MODIFIERS ?? [],
195
+ docMeta.VALIDATION_CODES ?? [],
196
+ docMeta.CLI_COMMANDS ?? [],
197
+ );
198
+ } catch {
199
+ // Fallback if doc-metadata not available (e.g., older flow-weaver version)
200
+ cachedPrompt = buildPromptFromMetadata([], [], [], [], []);
201
+ }
202
+
203
+ return cachedPrompt;
204
+ }
205
+
206
+ function formatBotOperations(cliCommands: CliCommandDoc[]): string {
207
+ const packOps = [
208
+ '- create-workflow: Create a new workflow file. args: { file, content }',
209
+ '- implement-node: Write a node type implementation. args: { file, content }',
210
+ '- modify-source: Direct source file modification. args: { file, content }',
211
+ '- read-file: Read a file for context. args: { file }',
212
+ '- write-file: Write a file. args: { file, content }',
213
+ ];
214
+
215
+ const fwOps = cliCommands
216
+ .filter(cmd => cmd.botCompatible)
217
+ .map(cmd => {
218
+ const argNames = (cmd.options ?? [])
219
+ .filter(o => !o.flags.includes('--verbose') && !o.flags.includes('--quiet') && !o.flags.includes('--json') && o.arg)
220
+ .map(o => {
221
+ const match = o.flags.match(/--(\S+)/);
222
+ return match ? match[1] : null;
223
+ })
224
+ .filter(Boolean);
225
+ const argsStr = argNames.length ? `file, ${argNames.join(', ')}` : 'file';
226
+ return `- ${cmd.name}: ${cmd.description}. args: { ${argsStr} }`;
227
+ });
228
+
229
+ return [...packOps, ...fwOps].join('\n');
230
+ }
231
+
232
+ export function buildBotSystemPrompt(contextBundle?: string, cliCommands?: CliCommandDoc[]): string {
233
+ const operationsList = formatBotOperations(cliCommands ?? []);
234
+
235
+ const planSchema = `## Bot Plan Schema
236
+
237
+ When asked to plan a task, return a JSON object with this structure:
238
+ {
239
+ "steps": [
240
+ {
241
+ "id": "step-1",
242
+ "operation": "<operation>",
243
+ "description": "What this step does",
244
+ "args": { ... operation-specific arguments ... }
245
+ }
246
+ ],
247
+ "summary": "Brief description of the overall plan"
248
+ }
249
+
250
+ Available operations:
251
+ ${operationsList}`;
252
+
253
+ const botInstructions = `## Bot Mode Instructions
254
+
255
+ You are operating in autonomous bot mode. Your job is to plan and execute workflow creation or modification tasks.
256
+
257
+ When planning:
258
+ 1. Break the task into concrete, ordered steps using the plan schema above
259
+ 2. For new workflows, plan: scaffold/create -> implement nodes -> compile -> validate
260
+ 3. For modifications, plan: read current state -> modify -> compile -> validate
261
+ 4. Each step is executed via the flow-weaver programmatic API
262
+ 5. Use templates when they match the task
263
+ 6. Prefer @expression nodes for deterministic operations
264
+ 7. Use proper JSDoc annotations on all node types and workflows
265
+ 8. Include visualization metadata (colors, icons, positions) on workflow nodes
266
+
267
+ When fixing validation errors:
268
+ 1. Read the error messages carefully
269
+ 2. Map each error to a specific fix operation
270
+ 3. Common fixes: add missing connections, fix port names, resolve type mismatches
271
+ 4. Return a new plan with only the fix steps`;
272
+
273
+ let prompt = planSchema + '\n\n' + botInstructions;
274
+
275
+ if (contextBundle) {
276
+ prompt += '\n\n## Project Context\n\n' + contextBundle;
277
+ }
278
+
279
+ return prompt;
280
+ }
@@ -0,0 +1,111 @@
1
+ import * as fs from 'node:fs';
2
+ import * as path from 'node:path';
3
+ import * as os from 'node:os';
4
+ import * as crypto from 'node:crypto';
5
+ import { withFileLock } from './file-lock.js';
6
+
7
+ export interface QueuedTask {
8
+ id: string;
9
+ instruction: string;
10
+ mode?: 'create' | 'modify' | 'read' | 'batch';
11
+ targets?: string[];
12
+ options?: Record<string, unknown>;
13
+ priority: number;
14
+ addedAt: number;
15
+ status: 'pending' | 'running' | 'completed' | 'failed' | 'cancelled';
16
+ }
17
+
18
+ export class TaskQueue {
19
+ private filePath: string;
20
+
21
+ constructor(dir?: string) {
22
+ const base = dir ?? path.join(os.homedir(), '.weaver');
23
+ this.filePath = path.join(base, 'task-queue.ndjson');
24
+ }
25
+
26
+ async add(task: Omit<QueuedTask, 'id' | 'addedAt' | 'status'>): Promise<string> {
27
+ return withFileLock(this.filePath, () => {
28
+ const entry: QueuedTask = {
29
+ ...task,
30
+ id: crypto.randomUUID().slice(0, 8),
31
+ addedAt: Date.now(),
32
+ status: 'pending',
33
+ };
34
+ const dir = path.dirname(this.filePath);
35
+ if (!fs.existsSync(dir)) fs.mkdirSync(dir, { recursive: true });
36
+ fs.appendFileSync(this.filePath, JSON.stringify(entry) + '\n', 'utf-8');
37
+ return entry.id;
38
+ });
39
+ }
40
+
41
+ async next(): Promise<QueuedTask | null> {
42
+ return withFileLock(this.filePath, () => {
43
+ const tasks = this.readAll().filter(t => t.status === 'pending');
44
+ tasks.sort((a, b) => b.priority - a.priority || a.addedAt - b.addedAt);
45
+ return tasks[0] ?? null;
46
+ });
47
+ }
48
+
49
+ async list(): Promise<QueuedTask[]> {
50
+ return withFileLock(this.filePath, () => this.readAll());
51
+ }
52
+
53
+ async remove(id: string): Promise<boolean> {
54
+ return withFileLock(this.filePath, () => {
55
+ const tasks = this.readAll();
56
+ const filtered = tasks.filter(t => t.id !== id);
57
+ if (filtered.length === tasks.length) return false;
58
+ this.writeAll(filtered);
59
+ return true;
60
+ });
61
+ }
62
+
63
+ async clear(): Promise<number> {
64
+ return withFileLock(this.filePath, () => {
65
+ const tasks = this.readAll();
66
+ if (tasks.length === 0) return 0;
67
+ try { fs.unlinkSync(this.filePath); } catch { /* ignore */ }
68
+ return tasks.length;
69
+ });
70
+ }
71
+
72
+ async markRunning(id: string): Promise<void> {
73
+ await this.updateStatus(id, 'running');
74
+ }
75
+
76
+ async markComplete(id: string): Promise<void> {
77
+ await this.updateStatus(id, 'completed');
78
+ }
79
+
80
+ async markFailed(id: string): Promise<void> {
81
+ await this.updateStatus(id, 'failed');
82
+ }
83
+
84
+ private async updateStatus(id: string, status: QueuedTask['status']): Promise<void> {
85
+ return withFileLock(this.filePath, () => {
86
+ const tasks = this.readAll();
87
+ const task = tasks.find(t => t.id === id);
88
+ if (task) {
89
+ task.status = status;
90
+ this.writeAll(tasks);
91
+ }
92
+ });
93
+ }
94
+
95
+ private readAll(): QueuedTask[] {
96
+ try {
97
+ if (!fs.existsSync(this.filePath)) return [];
98
+ const content = fs.readFileSync(this.filePath, 'utf-8').trim();
99
+ if (!content) return [];
100
+ return content.split('\n').map(line => JSON.parse(line) as QueuedTask);
101
+ } catch {
102
+ return [];
103
+ }
104
+ }
105
+
106
+ private writeAll(tasks: QueuedTask[]): void {
107
+ const dir = path.dirname(this.filePath);
108
+ if (!fs.existsSync(dir)) fs.mkdirSync(dir, { recursive: true });
109
+ fs.writeFileSync(this.filePath, tasks.map(t => JSON.stringify(t)).join('\n') + (tasks.length > 0 ? '\n' : ''), 'utf-8');
110
+ }
111
+ }