@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,86 @@
1
+ import * as fs from 'node:fs';
2
+ import * as path from 'node:path';
3
+ import * as crypto from 'node:crypto';
4
+ import { GenesisStore } from '../bot/genesis-store.js';
5
+ /**
6
+ * Separates self-modify operations from the proposal, copies current files
7
+ * to backup, writes new content to staged, and creates the escrow token.
8
+ *
9
+ * @flowWeaver nodeType
10
+ * @label Genesis Escrow Stage
11
+ * @input ctx [order:0] - Genesis context (JSON)
12
+ * @output ctx [order:0] - Genesis context with escrow staging result (JSON)
13
+ * @output onSuccess [order:-2] - On Success
14
+ * @output onFailure [order:-1] [hidden] - On Failure
15
+ */
16
+ export function genesisEscrowStage(ctx) {
17
+ const context = JSON.parse(ctx);
18
+ const { env } = context;
19
+ const config = JSON.parse(context.genesisConfigJson);
20
+ const proposal = JSON.parse(context.proposalJson);
21
+ const selfModifyTypes = new Set(['selfModifyWorkflow', 'selfModifyNodeType', 'selfModifyModule']);
22
+ const selfOps = proposal.operations.filter(op => selfModifyTypes.has(op.type));
23
+ if (selfOps.length === 0) {
24
+ context.hasSelfModifyOps = false;
25
+ return { onSuccess: true, onFailure: false, ctx: JSON.stringify(context) };
26
+ }
27
+ // Resolve the pack root (parent of src/)
28
+ const packRoot = path.resolve(path.dirname(new URL(import.meta.url).pathname), '..', '..');
29
+ const store = new GenesisStore(env.projectDir);
30
+ store.ensureEscrowDirs();
31
+ const affectedFiles = [];
32
+ const stagedHashes = {};
33
+ const backupHashes = {};
34
+ try {
35
+ for (const op of selfOps) {
36
+ const relFile = op.args.file;
37
+ // Path traversal protection
38
+ const normalized = path.normalize(relFile);
39
+ if (normalized.startsWith('..') || path.isAbsolute(normalized)) {
40
+ console.error(`\x1b[31m→ Rejected unsafe file path: ${relFile}\x1b[0m`);
41
+ continue;
42
+ }
43
+ const absFile = path.resolve(packRoot, relFile);
44
+ affectedFiles.push(relFile);
45
+ // Backup current file
46
+ if (fs.existsSync(absFile)) {
47
+ const backupDest = store.getEscrowBackupPath(relFile);
48
+ fs.mkdirSync(path.dirname(backupDest), { recursive: true });
49
+ fs.copyFileSync(absFile, backupDest);
50
+ backupHashes[relFile] = GenesisStore.hashFile(absFile);
51
+ }
52
+ // Write staged content then hash the file (consistent with GenesisStore.hashFile)
53
+ const stagedDest = store.getEscrowStagedPath(relFile);
54
+ fs.mkdirSync(path.dirname(stagedDest), { recursive: true });
55
+ fs.writeFileSync(stagedDest, op.args.content, 'utf-8');
56
+ stagedHashes[relFile] = GenesisStore.hashFile(stagedDest);
57
+ }
58
+ const gracePeriod = config.selfEvolveGracePeriod ?? 3;
59
+ const token = {
60
+ migrationId: crypto.randomUUID().slice(0, 12),
61
+ cycleId: context.cycleId,
62
+ stagedAt: new Date().toISOString(),
63
+ phase: 'staged',
64
+ affectedFiles,
65
+ stagedFileHashes: stagedHashes,
66
+ backupFileHashes: backupHashes,
67
+ ownerPid: process.pid,
68
+ graceRemaining: gracePeriod,
69
+ graceCycleIds: [],
70
+ };
71
+ store.saveEscrowToken(token);
72
+ context.hasSelfModifyOps = true;
73
+ context.selfModifyOpsJson = JSON.stringify(selfOps);
74
+ context.escrowResultJson = JSON.stringify({ staged: true, migrationId: token.migrationId, files: affectedFiles });
75
+ console.log(`\x1b[36m→ Escrow staged: ${affectedFiles.length} file(s), migration ${token.migrationId}\x1b[0m`);
76
+ return { onSuccess: true, onFailure: false, ctx: JSON.stringify(context) };
77
+ }
78
+ catch (err) {
79
+ const msg = err instanceof Error ? err.message : String(err);
80
+ console.error(`\x1b[31m→ Escrow staging failed: ${msg}\x1b[0m`);
81
+ store.clearEscrow();
82
+ context.error = `Escrow staging failed: ${msg}`;
83
+ return { onSuccess: false, onFailure: true, ctx: JSON.stringify(context) };
84
+ }
85
+ }
86
+ //# sourceMappingURL=genesis-escrow-stage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"genesis-escrow-stage.js","sourceRoot":"","sources":["../../src/node-types/genesis-escrow-stage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Validates staged escrow files. For workflows, runs flow-weaver compile+validate
3
+ * on a temp copy. For TypeScript modules, runs a transpile check.
4
+ *
5
+ * @flowWeaver nodeType
6
+ * @label Genesis Escrow Validate
7
+ * @input ctx [order:0] - Genesis context (JSON)
8
+ * @output ctx [order:0] - Genesis context with escrow validation result (JSON)
9
+ * @output onSuccess [order:-2] - On Success
10
+ * @output onFailure [order:-1] [hidden] - On Failure
11
+ */
12
+ export declare function genesisEscrowValidate(ctx: string): {
13
+ onSuccess: boolean;
14
+ onFailure: boolean;
15
+ ctx: string;
16
+ };
17
+ //# sourceMappingURL=genesis-escrow-validate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"genesis-escrow-validate.d.ts","sourceRoot":"","sources":["../../src/node-types/genesis-escrow-validate.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG;IAClD,SAAS,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IACvC,GAAG,EAAE,MAAM,CAAC;CACb,CAkGA"}
@@ -0,0 +1,110 @@
1
+ import * as fs from 'node:fs';
2
+ import * as path from 'node:path';
3
+ import * as os from 'node:os';
4
+ import { execFileSync } from 'node:child_process';
5
+ import { GenesisStore } from '../bot/genesis-store.js';
6
+ /**
7
+ * Validates staged escrow files. For workflows, runs flow-weaver compile+validate
8
+ * on a temp copy. For TypeScript modules, runs a transpile check.
9
+ *
10
+ * @flowWeaver nodeType
11
+ * @label Genesis Escrow Validate
12
+ * @input ctx [order:0] - Genesis context (JSON)
13
+ * @output ctx [order:0] - Genesis context with escrow validation result (JSON)
14
+ * @output onSuccess [order:-2] - On Success
15
+ * @output onFailure [order:-1] [hidden] - On Failure
16
+ */
17
+ export function genesisEscrowValidate(ctx) {
18
+ const context = JSON.parse(ctx);
19
+ const { env } = context;
20
+ const store = new GenesisStore(env.projectDir);
21
+ const token = store.loadEscrowToken();
22
+ if (!token || token.phase !== 'staged') {
23
+ // No staged escrow: pass through (not an error, just nothing to validate)
24
+ return { onSuccess: true, onFailure: false, ctx: JSON.stringify(context) };
25
+ }
26
+ const packRoot = path.resolve(path.dirname(new URL(import.meta.url).pathname), '..', '..');
27
+ try {
28
+ for (const relFile of token.affectedFiles) {
29
+ const stagedPath = store.getEscrowStagedPath(relFile);
30
+ const content = fs.readFileSync(stagedPath, 'utf-8');
31
+ if (relFile.includes('workflows/')) {
32
+ // Workflow file: write to temp, run compile+validate
33
+ const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'escrow-validate-'));
34
+ const tmpFile = path.join(tmpDir, path.basename(relFile));
35
+ fs.writeFileSync(tmpFile, content, 'utf-8');
36
+ try {
37
+ execFileSync('flow-weaver', ['compile', tmpFile], {
38
+ cwd: packRoot,
39
+ encoding: 'utf-8',
40
+ stdio: ['pipe', 'pipe', 'pipe'],
41
+ timeout: 30_000,
42
+ });
43
+ execFileSync('flow-weaver', ['validate', tmpFile], {
44
+ cwd: packRoot,
45
+ encoding: 'utf-8',
46
+ stdio: ['pipe', 'pipe', 'pipe'],
47
+ timeout: 30_000,
48
+ });
49
+ }
50
+ finally {
51
+ fs.rmSync(tmpDir, { recursive: true, force: true });
52
+ }
53
+ }
54
+ else {
55
+ // TypeScript module: transpile check using tsc --noEmit on a temp file
56
+ const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'escrow-tsc-'));
57
+ const tmpFile = path.join(tmpDir, path.basename(relFile));
58
+ fs.writeFileSync(tmpFile, content, 'utf-8');
59
+ // Write a minimal tsconfig for the check
60
+ const tsconfig = {
61
+ compilerOptions: {
62
+ target: 'ES2022',
63
+ module: 'Node16',
64
+ moduleResolution: 'Node16',
65
+ noEmit: true,
66
+ strict: true,
67
+ skipLibCheck: true,
68
+ esModuleInterop: true,
69
+ },
70
+ include: [path.basename(relFile)],
71
+ };
72
+ fs.writeFileSync(path.join(tmpDir, 'tsconfig.json'), JSON.stringify(tsconfig), 'utf-8');
73
+ try {
74
+ execFileSync('npx', ['tsc', '--project', path.join(tmpDir, 'tsconfig.json')], {
75
+ cwd: tmpDir,
76
+ encoding: 'utf-8',
77
+ stdio: ['pipe', 'pipe', 'pipe'],
78
+ timeout: 30_000,
79
+ });
80
+ }
81
+ finally {
82
+ fs.rmSync(tmpDir, { recursive: true, force: true });
83
+ }
84
+ }
85
+ }
86
+ token.phase = 'validated';
87
+ token.validationResult = { compiled: true, validated: true };
88
+ store.saveEscrowToken(token);
89
+ console.log('\x1b[32m→ Escrow validation passed\x1b[0m');
90
+ return { onSuccess: true, onFailure: false, ctx: JSON.stringify(context) };
91
+ }
92
+ catch (err) {
93
+ const msg = err instanceof Error ? err.message : String(err);
94
+ token.phase = 'rolled-back';
95
+ token.rollbackReason = `Validation failed: ${msg.slice(0, 500)}`;
96
+ token.validationResult = { compiled: false, validated: false, error: msg.slice(0, 500) };
97
+ store.saveEscrowToken(token);
98
+ // Clean up staged files
99
+ for (const relFile of token.affectedFiles) {
100
+ try {
101
+ fs.unlinkSync(store.getEscrowStagedPath(relFile));
102
+ }
103
+ catch { /* ignore */ }
104
+ }
105
+ console.error(`\x1b[31m→ Escrow validation failed: ${msg.slice(0, 200)}\x1b[0m`);
106
+ context.error = `Escrow validation failed: ${msg.slice(0, 200)}`;
107
+ return { onSuccess: false, onFailure: true, ctx: JSON.stringify(context) };
108
+ }
109
+ }
110
+ //# sourceMappingURL=genesis-escrow-validate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"genesis-escrow-validate.js","sourceRoot":"","sources":["../../src/node-types/genesis-escrow-validate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type { WeaverEnv } from '../bot/types.js';
2
+ /**
3
+ * Loads genesis configuration from the project .genesis directory,
4
+ * validates the target workflow exists, and generates a new cycle ID.
5
+ * Creates the initial GenesisContext that threads through the pipeline.
6
+ *
7
+ * @flowWeaver nodeType
8
+ * @expression
9
+ * @label Genesis Load Config
10
+ * @input env [order:0] - Weaver environment bundle
11
+ * @output ctx [order:0] - Genesis context (JSON)
12
+ * @output onFailure [hidden]
13
+ */
14
+ export declare function genesisLoadConfig(env: WeaverEnv): {
15
+ ctx: string;
16
+ };
17
+ //# sourceMappingURL=genesis-load-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"genesis-load-config.d.ts","sourceRoot":"","sources":["../../src/node-types/genesis-load-config.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAiC,MAAM,iBAAiB,CAAC;AAGhF;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,SAAS,GAAG;IACjD,GAAG,EAAE,MAAM,CAAC;CACb,CAwBA"}
@@ -0,0 +1,36 @@
1
+ import * as fs from 'node:fs';
2
+ import * as path from 'node:path';
3
+ import { GenesisStore } from '../bot/genesis-store.js';
4
+ /**
5
+ * Loads genesis configuration from the project .genesis directory,
6
+ * validates the target workflow exists, and generates a new cycle ID.
7
+ * Creates the initial GenesisContext that threads through the pipeline.
8
+ *
9
+ * @flowWeaver nodeType
10
+ * @expression
11
+ * @label Genesis Load Config
12
+ * @input env [order:0] - Weaver environment bundle
13
+ * @output ctx [order:0] - Genesis context (JSON)
14
+ * @output onFailure [hidden]
15
+ */
16
+ export function genesisLoadConfig(env) {
17
+ const store = new GenesisStore(env.projectDir);
18
+ const config = store.loadConfig();
19
+ if (!config.targetWorkflow) {
20
+ throw new Error('Genesis config has no targetWorkflow set. Run "weaver genesis --init" and set it in .genesis/config.json');
21
+ }
22
+ const targetPath = path.resolve(env.projectDir, config.targetWorkflow);
23
+ if (!fs.existsSync(targetPath) || !fs.statSync(targetPath).isFile()) {
24
+ throw new Error(`Target workflow not found: ${targetPath}`);
25
+ }
26
+ const cycleId = GenesisStore.newCycleId();
27
+ console.log(`\x1b[36m→ Genesis config loaded, cycle ${cycleId}\x1b[0m`);
28
+ const ctx = {
29
+ env,
30
+ genesisConfigJson: JSON.stringify(config),
31
+ cycleId,
32
+ startTimeMs: Date.now(),
33
+ };
34
+ return { ctx: JSON.stringify(ctx) };
35
+ }
36
+ //# sourceMappingURL=genesis-load-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"genesis-load-config.js","sourceRoot":"","sources":["../../src/node-types/genesis-load-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAc;IAG9C,MAAM,KAAK,GAAG,IAAI,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;IAElC,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,0GAA0G,CAAC,CAAC;IAC9H,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;IACvE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;QACpE,MAAM,IAAI,KAAK,CAAC,8BAA8B,UAAU,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,0CAA0C,OAAO,SAAS,CAAC,CAAC;IAExE,MAAM,GAAG,GAAmB;QAC1B,GAAG;QACH,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;QACzC,OAAO;QACP,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE;KACxB,CAAC;IAEF,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;AACtC,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Fingerprints the project state: hashes .ts files, reads package.json,
3
+ * captures git branch/commit, scans for workflow files, and hashes the
4
+ * target workflow content.
5
+ *
6
+ * @flowWeaver nodeType
7
+ * @label Genesis Observe
8
+ * @input ctx [order:0] - Genesis context (JSON)
9
+ * @output ctx [order:0] - Genesis context with fingerprintJson (JSON)
10
+ * @output onSuccess [order:-2] - On Success
11
+ * @output onFailure [order:-1] [hidden] - On Failure
12
+ */
13
+ export declare function genesisObserve(execute: boolean, ctx: string): Promise<{
14
+ onSuccess: boolean;
15
+ onFailure: boolean;
16
+ ctx: string;
17
+ }>;
18
+ //# sourceMappingURL=genesis-observe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"genesis-observe.d.ts","sourceRoot":"","sources":["../../src/node-types/genesis-observe.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;GAWG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC;IACT,SAAS,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IACvC,GAAG,EAAE,MAAM,CAAC;CACb,CAAC,CA6FD"}
@@ -0,0 +1,103 @@
1
+ import * as fs from 'node:fs';
2
+ import * as path from 'node:path';
3
+ import * as crypto from 'node:crypto';
4
+ import { execFileSync } from 'node:child_process';
5
+ import { getWorkflowDescription } from '../bot/genesis-prompt-context.js';
6
+ /**
7
+ * Fingerprints the project state: hashes .ts files, reads package.json,
8
+ * captures git branch/commit, scans for workflow files, and hashes the
9
+ * target workflow content.
10
+ *
11
+ * @flowWeaver nodeType
12
+ * @label Genesis Observe
13
+ * @input ctx [order:0] - Genesis context (JSON)
14
+ * @output ctx [order:0] - Genesis context with fingerprintJson (JSON)
15
+ * @output onSuccess [order:-2] - On Success
16
+ * @output onFailure [order:-1] [hidden] - On Failure
17
+ */
18
+ export async function genesisObserve(execute, ctx) {
19
+ const context = JSON.parse(ctx);
20
+ const { env } = context;
21
+ const config = JSON.parse(context.genesisConfigJson);
22
+ if (!execute) {
23
+ const empty = {
24
+ timestamp: new Date().toISOString(),
25
+ files: {},
26
+ packageJson: null,
27
+ gitBranch: null,
28
+ gitCommit: null,
29
+ workflowHash: '',
30
+ existingWorkflows: [],
31
+ };
32
+ context.fingerprintJson = JSON.stringify(empty);
33
+ return { onSuccess: true, onFailure: false, ctx: JSON.stringify(context) };
34
+ }
35
+ const projectDir = env.projectDir;
36
+ try {
37
+ const files = {};
38
+ const dirsToScan = [projectDir];
39
+ const srcDir = path.join(projectDir, 'src');
40
+ if (fs.existsSync(srcDir) && fs.statSync(srcDir).isDirectory())
41
+ dirsToScan.push(srcDir);
42
+ for (const dir of dirsToScan) {
43
+ const entries = fs.readdirSync(dir, { withFileTypes: true });
44
+ for (const entry of entries) {
45
+ if (entry.isFile() && entry.name.endsWith('.ts')) {
46
+ const filePath = path.join(dir, entry.name);
47
+ const relPath = path.relative(projectDir, filePath);
48
+ const content = fs.readFileSync(filePath, 'utf-8');
49
+ files[relPath] = crypto.createHash('sha256').update(content).digest('hex');
50
+ }
51
+ }
52
+ }
53
+ let packageJson = null;
54
+ const pkgPath = path.join(projectDir, 'package.json');
55
+ if (fs.existsSync(pkgPath)) {
56
+ packageJson = JSON.parse(fs.readFileSync(pkgPath, 'utf-8'));
57
+ }
58
+ let gitBranch = null;
59
+ let gitCommit = null;
60
+ try {
61
+ gitBranch = execFileSync('git', ['rev-parse', '--abbrev-ref', 'HEAD'], {
62
+ cwd: projectDir, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'],
63
+ }).trim();
64
+ gitCommit = execFileSync('git', ['rev-parse', 'HEAD'], {
65
+ cwd: projectDir, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'],
66
+ }).trim();
67
+ }
68
+ catch {
69
+ // Not a git repo or git unavailable
70
+ }
71
+ const existingWorkflows = [];
72
+ for (const [relPath, _hash] of Object.entries(files)) {
73
+ const filePath = path.join(projectDir, relPath);
74
+ const content = fs.readFileSync(filePath, 'utf-8');
75
+ if (content.includes('@flowWeaver workflow')) {
76
+ existingWorkflows.push(relPath);
77
+ }
78
+ }
79
+ const targetPath = path.resolve(projectDir, config.targetWorkflow);
80
+ const targetContent = fs.readFileSync(targetPath, 'utf-8');
81
+ const workflowHash = crypto.createHash('sha256').update(targetContent).digest('hex');
82
+ const fingerprint = {
83
+ timestamp: new Date().toISOString(),
84
+ files,
85
+ packageJson,
86
+ gitBranch,
87
+ gitCommit,
88
+ workflowHash,
89
+ existingWorkflows,
90
+ };
91
+ console.log(`\x1b[36m→ Fingerprint: ${Object.keys(files).length} files, ${existingWorkflows.length} workflows\x1b[0m`);
92
+ context.fingerprintJson = JSON.stringify(fingerprint);
93
+ context.workflowDescription = await getWorkflowDescription(targetPath);
94
+ return { onSuccess: true, onFailure: false, ctx: JSON.stringify(context) };
95
+ }
96
+ catch (err) {
97
+ const msg = err instanceof Error ? err.message : String(err);
98
+ console.error(`\x1b[31m→ Observe failed: ${msg}\x1b[0m`);
99
+ context.fingerprintJson = '{}';
100
+ return { onSuccess: false, onFailure: true, ctx: JSON.stringify(context) };
101
+ }
102
+ }
103
+ //# sourceMappingURL=genesis-observe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"genesis-observe.js","sourceRoot":"","sources":["../../src/node-types/genesis-observe.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAE1E;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAAgB,EAChB,GAAW;IAKX,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAmB,CAAC;IAClD,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IACxB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAErD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,KAAK,GAAuB;YAChC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,KAAK,EAAE,EAAE;YACT,WAAW,EAAE,IAAI;YACjB,SAAS,EAAE,IAAI;YACf,SAAS,EAAE,IAAI;YACf,YAAY,EAAE,EAAE;YAChB,iBAAiB,EAAE,EAAE;SACtB,CAAC;QACF,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAChD,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;IAC7E,CAAC;IAED,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC;IAElC,IAAI,CAAC;QACH,MAAM,KAAK,GAA2B,EAAE,CAAC;QACzC,MAAM,UAAU,GAAG,CAAC,UAAU,CAAC,CAAC;QAChC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAC5C,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE;YAAE,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAExF,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;oBACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;oBACpD,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;oBACnD,KAAK,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC7E,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,WAAW,GAAmC,IAAI,CAAC;QACvD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QACtD,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QAC9D,CAAC;QAED,IAAI,SAAS,GAAkB,IAAI,CAAC;QACpC,IAAI,SAAS,GAAkB,IAAI,CAAC;QACpC,IAAI,CAAC;YACH,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE;gBACrE,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;aACpE,CAAC,CAAC,IAAI,EAAE,CAAC;YACV,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE;gBACrD,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;aACpE,CAAC,CAAC,IAAI,EAAE,CAAC;QACZ,CAAC;QAAC,MAAM,CAAC;YACP,oCAAoC;QACtC,CAAC;QAED,MAAM,iBAAiB,GAAa,EAAE,CAAC;QACvC,KAAK,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAChD,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACnD,IAAI,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC;gBAC7C,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;QACnE,MAAM,aAAa,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC3D,MAAM,YAAY,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAErF,MAAM,WAAW,GAAuB;YACtC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,KAAK;YACL,WAAW;YACX,SAAS;YACT,SAAS;YACT,YAAY;YACZ,iBAAiB;SAClB,CAAC;QAEF,OAAO,CAAC,GAAG,CAAC,0BAA0B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,WAAW,iBAAiB,CAAC,MAAM,mBAAmB,CAAC,CAAC;QAEvH,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACtD,OAAO,CAAC,mBAAmB,GAAG,MAAM,sBAAsB,CAAC,UAAU,CAAC,CAAC;QAEvE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;IAC7E,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,OAAO,CAAC,KAAK,CAAC,6BAA6B,GAAG,SAAS,CAAC,CAAC;QACzD,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;QAC/B,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;IAC7E,CAAC;AACH,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Sends project context and diff information to the AI provider, which
3
+ * returns a structured proposal of workflow operations to apply.
4
+ *
5
+ * @flowWeaver nodeType
6
+ * @label Genesis Propose
7
+ * @input ctx [order:0] - Genesis context (JSON)
8
+ * @output ctx [order:0] - Genesis context with proposalJson (JSON)
9
+ * @output onSuccess [order:-2] - On Success
10
+ * @output onFailure [order:-1] [hidden] - On Failure
11
+ */
12
+ export declare function genesisPropose(execute: boolean, ctx: string): Promise<{
13
+ onSuccess: boolean;
14
+ onFailure: boolean;
15
+ ctx: string;
16
+ }>;
17
+ //# sourceMappingURL=genesis-propose.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"genesis-propose.d.ts","sourceRoot":"","sources":["../../src/node-types/genesis-propose.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;GAUG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC;IACT,SAAS,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IACvC,GAAG,EAAE,MAAM,CAAC;CACb,CAAC,CA+DD"}
@@ -0,0 +1,69 @@
1
+ import * as path from 'node:path';
2
+ import { callAI, parseJsonResponse } from '../bot/ai-client.js';
3
+ import { getGenesisSystemPrompt, getOperationExamples } from '../bot/genesis-prompt-context.js';
4
+ /**
5
+ * Sends project context and diff information to the AI provider, which
6
+ * returns a structured proposal of workflow operations to apply.
7
+ *
8
+ * @flowWeaver nodeType
9
+ * @label Genesis Propose
10
+ * @input ctx [order:0] - Genesis context (JSON)
11
+ * @output ctx [order:0] - Genesis context with proposalJson (JSON)
12
+ * @output onSuccess [order:-2] - On Success
13
+ * @output onFailure [order:-1] [hidden] - On Failure
14
+ */
15
+ export async function genesisPropose(execute, ctx) {
16
+ const context = JSON.parse(ctx);
17
+ const { env } = context;
18
+ if (!execute) {
19
+ const empty = { operations: [], totalCost: 0, impactLevel: 'COSMETIC', summary: 'dry run', rationale: '' };
20
+ context.proposalJson = JSON.stringify(empty);
21
+ return { onSuccess: true, onFailure: false, ctx: JSON.stringify(context) };
22
+ }
23
+ const { providerInfo: pInfo } = env;
24
+ const config = JSON.parse(context.genesisConfigJson);
25
+ const diff = JSON.parse(context.diffJson);
26
+ const targetPath = path.resolve(env.projectDir, config.targetWorkflow);
27
+ const systemPrompt = await getGenesisSystemPrompt(config, !!context.stabilized, {
28
+ selfEvolveLocked: !!context.escrowGraceLocked,
29
+ graceRemaining: context.escrowGraceRemaining ?? 0,
30
+ });
31
+ const userPrompt = [
32
+ '## Current Workflow Structure',
33
+ context.workflowDescription || '(no description available)',
34
+ '',
35
+ '## Project Diff Since Last Cycle',
36
+ JSON.stringify(diff, null, 2),
37
+ '',
38
+ '## Current Fingerprint',
39
+ context.fingerprintJson,
40
+ '',
41
+ getOperationExamples(targetPath),
42
+ '',
43
+ 'Propose workflow evolution operations within the budget. Use node IDs and port names that exist in the workflow structure above.',
44
+ ].join('\n');
45
+ const maxAttempts = 2;
46
+ let lastError = '';
47
+ for (let attempt = 1; attempt <= maxAttempts; attempt++) {
48
+ try {
49
+ const text = await callAI(pInfo, systemPrompt, userPrompt, 8192);
50
+ const proposal = parseJsonResponse(text);
51
+ console.log(`\x1b[36m→ Proposal: ${proposal.summary} (${proposal.operations.length} ops, impact=${proposal.impactLevel})\x1b[0m`);
52
+ context.proposalJson = JSON.stringify(proposal);
53
+ return { onSuccess: true, onFailure: false, ctx: JSON.stringify(context) };
54
+ }
55
+ catch (err) {
56
+ lastError = err instanceof Error ? err.message : String(err);
57
+ const isTransient = /ETIMEDOUT|ECONNRESET|ECONNREFUSED|EPIPE|socket hang up/i.test(lastError);
58
+ if (isTransient && attempt < maxAttempts) {
59
+ console.log(`\x1b[33m→ Proposal attempt ${attempt} failed (transient): ${lastError.slice(0, 100)}. Retrying...\x1b[0m`);
60
+ continue;
61
+ }
62
+ console.error(`\x1b[31m→ Proposal failed: ${lastError}\x1b[0m`);
63
+ }
64
+ }
65
+ context.error = `Proposal failed: ${lastError}`;
66
+ context.proposalJson = JSON.stringify({ operations: [], totalCost: 0, impactLevel: 'COSMETIC', summary: `Failed: ${lastError}`, rationale: '' });
67
+ return { onSuccess: false, onFailure: true, ctx: JSON.stringify(context) };
68
+ }
69
+ //# sourceMappingURL=genesis-propose.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"genesis-propose.js","sourceRoot":"","sources":["../../src/node-types/genesis-propose.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Formats a genesis cycle summary for console output. Receives context
3
+ * from either the success path or the fail path. Fires from any
4
+ * incoming path.
5
+ *
6
+ * @flowWeaver nodeType
7
+ * @expression
8
+ * @label Genesis Report
9
+ * @executeWhen DISJUNCTION
10
+ * @input [successCtx] [order:0] - Genesis context from success path (JSON)
11
+ * @input [failCtx] [order:1] - Genesis context from apply-retry fail path (JSON)
12
+ * @input [proposeFailCtx] [order:2] - Genesis context from propose failure (JSON)
13
+ * @input [commitFailCtx] [order:3] - Genesis context from commit failure (JSON)
14
+ * @output summary [order:1] - Formatted summary text
15
+ * @output onFailure [hidden]
16
+ */
17
+ export declare function genesisReport(successCtx?: string, failCtx?: string, proposeFailCtx?: string, commitFailCtx?: string): {
18
+ summary: string;
19
+ };
20
+ //# sourceMappingURL=genesis-report.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"genesis-report.d.ts","sourceRoot":"","sources":["../../src/node-types/genesis-report.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,aAAa,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CA0DzI"}