@synergenius/flow-weaver-pack-weaver 0.9.8 → 0.9.10

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 (228) hide show
  1. package/dist/bot/agent-loop.d.ts +20 -0
  2. package/dist/bot/agent-loop.d.ts.map +1 -0
  3. package/dist/bot/agent-loop.js +331 -0
  4. package/dist/bot/agent-loop.js.map +1 -0
  5. package/dist/bot/agent-provider.d.ts.map +1 -1
  6. package/dist/bot/agent-provider.js +3 -2
  7. package/dist/bot/agent-provider.js.map +1 -1
  8. package/dist/bot/approvals.js +17 -8
  9. package/dist/bot/approvals.js.map +1 -1
  10. package/dist/bot/assistant-core.d.ts +17 -0
  11. package/dist/bot/assistant-core.d.ts.map +1 -1
  12. package/dist/bot/assistant-core.js +366 -45
  13. package/dist/bot/assistant-core.js.map +1 -1
  14. package/dist/bot/assistant-tools.d.ts +1 -1
  15. package/dist/bot/assistant-tools.d.ts.map +1 -1
  16. package/dist/bot/assistant-tools.js +283 -9
  17. package/dist/bot/assistant-tools.js.map +1 -1
  18. package/dist/bot/bot-agent-channel.d.ts.map +1 -1
  19. package/dist/bot/bot-agent-channel.js +2 -0
  20. package/dist/bot/bot-agent-channel.js.map +1 -1
  21. package/dist/bot/bot-manager.d.ts +4 -0
  22. package/dist/bot/bot-manager.d.ts.map +1 -1
  23. package/dist/bot/bot-manager.js +72 -27
  24. package/dist/bot/bot-manager.js.map +1 -1
  25. package/dist/bot/conversation-store.d.ts +6 -5
  26. package/dist/bot/conversation-store.d.ts.map +1 -1
  27. package/dist/bot/conversation-store.js +98 -42
  28. package/dist/bot/conversation-store.js.map +1 -1
  29. package/dist/bot/cost-store.d.ts +3 -0
  30. package/dist/bot/cost-store.d.ts.map +1 -1
  31. package/dist/bot/cost-store.js +21 -10
  32. package/dist/bot/cost-store.js.map +1 -1
  33. package/dist/bot/cost-tracker.d.ts.map +1 -1
  34. package/dist/bot/cost-tracker.js +14 -1
  35. package/dist/bot/cost-tracker.js.map +1 -1
  36. package/dist/bot/cron-parser.d.ts.map +1 -1
  37. package/dist/bot/cron-parser.js +2 -0
  38. package/dist/bot/cron-parser.js.map +1 -1
  39. package/dist/bot/cron-scheduler.d.ts.map +1 -1
  40. package/dist/bot/cron-scheduler.js +1 -0
  41. package/dist/bot/cron-scheduler.js.map +1 -1
  42. package/dist/bot/device-connection.d.ts +13 -0
  43. package/dist/bot/device-connection.d.ts.map +1 -0
  44. package/dist/bot/device-connection.js +102 -0
  45. package/dist/bot/device-connection.js.map +1 -0
  46. package/dist/bot/error-classifier.d.ts.map +1 -1
  47. package/dist/bot/error-classifier.js +5 -0
  48. package/dist/bot/error-classifier.js.map +1 -1
  49. package/dist/bot/file-lock.d.ts.map +1 -1
  50. package/dist/bot/file-lock.js +13 -3
  51. package/dist/bot/file-lock.js.map +1 -1
  52. package/dist/bot/file-watcher.d.ts.map +1 -1
  53. package/dist/bot/file-watcher.js +1 -0
  54. package/dist/bot/file-watcher.js.map +1 -1
  55. package/dist/bot/genesis-prompt-context.d.ts +5 -0
  56. package/dist/bot/genesis-prompt-context.d.ts.map +1 -1
  57. package/dist/bot/genesis-prompt-context.js +55 -0
  58. package/dist/bot/genesis-prompt-context.js.map +1 -1
  59. package/dist/bot/genesis-store.d.ts +4 -0
  60. package/dist/bot/genesis-store.d.ts.map +1 -1
  61. package/dist/bot/genesis-store.js +79 -12
  62. package/dist/bot/genesis-store.js.map +1 -1
  63. package/dist/bot/improve-loop.d.ts +46 -0
  64. package/dist/bot/improve-loop.d.ts.map +1 -0
  65. package/dist/bot/improve-loop.js +592 -0
  66. package/dist/bot/improve-loop.js.map +1 -0
  67. package/dist/bot/index.d.ts +1 -0
  68. package/dist/bot/index.d.ts.map +1 -1
  69. package/dist/bot/index.js +2 -0
  70. package/dist/bot/index.js.map +1 -1
  71. package/dist/bot/insight-engine.d.ts +12 -0
  72. package/dist/bot/insight-engine.d.ts.map +1 -0
  73. package/dist/bot/insight-engine.js +256 -0
  74. package/dist/bot/insight-engine.js.map +1 -0
  75. package/dist/bot/knowledge-store.d.ts.map +1 -1
  76. package/dist/bot/knowledge-store.js +4 -1
  77. package/dist/bot/knowledge-store.js.map +1 -1
  78. package/dist/bot/pipeline-runner.d.ts.map +1 -1
  79. package/dist/bot/pipeline-runner.js +12 -4
  80. package/dist/bot/pipeline-runner.js.map +1 -1
  81. package/dist/bot/project-model.d.ts +25 -0
  82. package/dist/bot/project-model.d.ts.map +1 -0
  83. package/dist/bot/project-model.js +372 -0
  84. package/dist/bot/project-model.js.map +1 -0
  85. package/dist/bot/response-formatter.js +2 -3
  86. package/dist/bot/response-formatter.js.map +1 -1
  87. package/dist/bot/run-store.d.ts.map +1 -1
  88. package/dist/bot/run-store.js +10 -2
  89. package/dist/bot/run-store.js.map +1 -1
  90. package/dist/bot/safe-path.d.ts +1 -1
  91. package/dist/bot/safe-path.d.ts.map +1 -1
  92. package/dist/bot/safe-path.js +20 -1
  93. package/dist/bot/safe-path.js.map +1 -1
  94. package/dist/bot/safety.d.ts +10 -2
  95. package/dist/bot/safety.d.ts.map +1 -1
  96. package/dist/bot/safety.js +45 -2
  97. package/dist/bot/safety.js.map +1 -1
  98. package/dist/bot/session-state.d.ts +4 -0
  99. package/dist/bot/session-state.d.ts.map +1 -1
  100. package/dist/bot/session-state.js +52 -9
  101. package/dist/bot/session-state.js.map +1 -1
  102. package/dist/bot/slash-commands.d.ts.map +1 -1
  103. package/dist/bot/slash-commands.js +100 -5
  104. package/dist/bot/slash-commands.js.map +1 -1
  105. package/dist/bot/steering-engine.d.ts +67 -0
  106. package/dist/bot/steering-engine.d.ts.map +1 -0
  107. package/dist/bot/steering-engine.js +198 -0
  108. package/dist/bot/steering-engine.js.map +1 -0
  109. package/dist/bot/step-executor.d.ts.map +1 -1
  110. package/dist/bot/step-executor.js +62 -25
  111. package/dist/bot/step-executor.js.map +1 -1
  112. package/dist/bot/system-prompt.d.ts.map +1 -1
  113. package/dist/bot/system-prompt.js +5 -2
  114. package/dist/bot/system-prompt.js.map +1 -1
  115. package/dist/bot/task-queue.d.ts +6 -1
  116. package/dist/bot/task-queue.d.ts.map +1 -1
  117. package/dist/bot/task-queue.js +43 -4
  118. package/dist/bot/task-queue.js.map +1 -1
  119. package/dist/bot/tool-registry.d.ts +1 -1
  120. package/dist/bot/tool-registry.d.ts.map +1 -1
  121. package/dist/bot/tool-registry.js +65 -4
  122. package/dist/bot/tool-registry.js.map +1 -1
  123. package/dist/bot/trust-calculator.d.ts +34 -0
  124. package/dist/bot/trust-calculator.d.ts.map +1 -0
  125. package/dist/bot/trust-calculator.js +67 -0
  126. package/dist/bot/trust-calculator.js.map +1 -0
  127. package/dist/bot/types.d.ts +97 -0
  128. package/dist/bot/types.d.ts.map +1 -1
  129. package/dist/bot/update-checker.d.ts +21 -0
  130. package/dist/bot/update-checker.d.ts.map +1 -0
  131. package/dist/bot/update-checker.js +129 -0
  132. package/dist/bot/update-checker.js.map +1 -0
  133. package/dist/bot/weaver-tools.d.ts.map +1 -1
  134. package/dist/bot/weaver-tools.js +11 -4
  135. package/dist/bot/weaver-tools.js.map +1 -1
  136. package/dist/cli-bridge.d.ts.map +1 -1
  137. package/dist/cli-bridge.js +2 -1
  138. package/dist/cli-bridge.js.map +1 -1
  139. package/dist/cli-handlers.d.ts +9 -1
  140. package/dist/cli-handlers.d.ts.map +1 -1
  141. package/dist/cli-handlers.js +77 -8
  142. package/dist/cli-handlers.js.map +1 -1
  143. package/dist/cli.d.ts +3 -0
  144. package/dist/cli.d.ts.map +1 -0
  145. package/dist/cli.js +749 -0
  146. package/dist/cli.js.map +1 -0
  147. package/dist/docs/weaver-config.md +15 -9
  148. package/dist/handlers/on-execution-completed.d.ts +11 -0
  149. package/dist/handlers/on-execution-completed.d.ts.map +1 -0
  150. package/dist/handlers/on-execution-completed.js +25 -0
  151. package/dist/handlers/on-execution-completed.js.map +1 -0
  152. package/dist/mcp-tools.d.ts.map +1 -1
  153. package/dist/mcp-tools.js +33 -0
  154. package/dist/mcp-tools.js.map +1 -1
  155. package/dist/node-types/genesis-approve.d.ts.map +1 -1
  156. package/dist/node-types/genesis-approve.js +28 -3
  157. package/dist/node-types/genesis-approve.js.map +1 -1
  158. package/dist/node-types/genesis-observe.d.ts.map +1 -1
  159. package/dist/node-types/genesis-observe.js +23 -13
  160. package/dist/node-types/genesis-observe.js.map +1 -1
  161. package/dist/node-types/genesis-propose.d.ts.map +1 -1
  162. package/dist/node-types/genesis-propose.js +8 -0
  163. package/dist/node-types/genesis-propose.js.map +1 -1
  164. package/dist/node-types/genesis-update-history.d.ts.map +1 -1
  165. package/dist/node-types/genesis-update-history.js +13 -0
  166. package/dist/node-types/genesis-update-history.js.map +1 -1
  167. package/dist/templates/weaver-template.d.ts +11 -0
  168. package/dist/templates/weaver-template.d.ts.map +1 -0
  169. package/dist/templates/weaver-template.js +53 -0
  170. package/dist/templates/weaver-template.js.map +1 -0
  171. package/dist/workflows/weaver-bot-session.d.ts +65 -0
  172. package/dist/workflows/weaver-bot-session.d.ts.map +1 -0
  173. package/dist/workflows/weaver-bot-session.js +68 -0
  174. package/dist/workflows/weaver-bot-session.js.map +1 -0
  175. package/dist/workflows/weaver.d.ts +24 -0
  176. package/dist/workflows/weaver.d.ts.map +1 -0
  177. package/dist/workflows/weaver.js +28 -0
  178. package/dist/workflows/weaver.js.map +1 -0
  179. package/flowweaver.manifest.json +27 -0
  180. package/package.json +5 -2
  181. package/src/bot/agent-provider.ts +3 -2
  182. package/src/bot/approvals.ts +16 -8
  183. package/src/bot/assistant-core.ts +366 -44
  184. package/src/bot/assistant-tools.ts +291 -9
  185. package/src/bot/bot-agent-channel.ts +2 -0
  186. package/src/bot/bot-manager.ts +70 -29
  187. package/src/bot/conversation-store.ts +87 -42
  188. package/src/bot/cost-store.ts +20 -9
  189. package/src/bot/cost-tracker.ts +13 -1
  190. package/src/bot/cron-parser.ts +1 -0
  191. package/src/bot/cron-scheduler.ts +1 -0
  192. package/src/bot/device-connection.ts +102 -0
  193. package/src/bot/error-classifier.ts +5 -0
  194. package/src/bot/file-lock.ts +12 -2
  195. package/src/bot/file-watcher.ts +1 -0
  196. package/src/bot/genesis-prompt-context.ts +61 -0
  197. package/src/bot/genesis-store.ts +68 -16
  198. package/src/bot/improve-loop.ts +651 -0
  199. package/src/bot/index.ts +3 -0
  200. package/src/bot/insight-engine.ts +273 -0
  201. package/src/bot/knowledge-store.ts +4 -1
  202. package/src/bot/pipeline-runner.ts +11 -6
  203. package/src/bot/project-model.ts +404 -0
  204. package/src/bot/response-formatter.ts +2 -3
  205. package/src/bot/run-store.ts +5 -2
  206. package/src/bot/safe-path.ts +20 -1
  207. package/src/bot/safety.ts +57 -3
  208. package/src/bot/session-state.ts +47 -7
  209. package/src/bot/slash-commands.ts +103 -5
  210. package/src/bot/steering-engine.ts +233 -0
  211. package/src/bot/step-executor.ts +66 -26
  212. package/src/bot/system-prompt.ts +5 -2
  213. package/src/bot/task-queue.ts +40 -4
  214. package/src/bot/tool-registry.ts +67 -5
  215. package/src/bot/trust-calculator.ts +87 -0
  216. package/src/bot/types.ts +104 -0
  217. package/src/bot/update-checker.ts +138 -0
  218. package/src/bot/weaver-tools.ts +10 -4
  219. package/src/cli-bridge.ts +2 -1
  220. package/src/cli-handlers.ts +84 -9
  221. package/src/handlers/on-execution-completed.ts +30 -0
  222. package/src/mcp-tools.ts +38 -0
  223. package/src/node-types/genesis-approve.ts +28 -3
  224. package/src/node-types/genesis-observe.ts +23 -12
  225. package/src/node-types/genesis-propose.ts +8 -0
  226. package/src/node-types/genesis-update-history.ts +12 -0
  227. package/src/ui/evolution-panel.tsx +96 -0
  228. package/src/ui/insights-widget.tsx +77 -0
@@ -26,7 +26,20 @@ export class CostTracker {
26
26
  });
27
27
  }
28
28
  static estimateCost(model, usage) {
29
- const pricing = MODEL_PRICING[model];
29
+ let pricing = MODEL_PRICING[model];
30
+ if (!pricing) {
31
+ // Fallback: prefix match for model variants with date suffixes
32
+ // e.g., 'claude-sonnet-4-6-20260301' matches 'claude-sonnet-4-6'
33
+ // Use longest matching prefix to avoid ambiguity.
34
+ let bestKey = '';
35
+ for (const key of Object.keys(MODEL_PRICING)) {
36
+ if (model.startsWith(key) && key.length > bestKey.length) {
37
+ bestKey = key;
38
+ }
39
+ }
40
+ if (bestKey)
41
+ pricing = MODEL_PRICING[bestKey];
42
+ }
30
43
  if (!pricing)
31
44
  return 0;
32
45
  return ((usage.inputTokens * pricing.inputPer1M +
@@ -1 +1 @@
1
- {"version":3,"file":"cost-tracker.js","sourceRoot":"","sources":["../../src/bot/cost-tracker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cost-tracker.js","sourceRoot":"","sources":["../../src/bot/cost-tracker.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cron-parser.d.ts","sourceRoot":"","sources":["../../src/bot/cron-parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAa,MAAM,YAAY,CAAC;AAExD,wBAAgB,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,CAgBxD;AA2DD,wBAAgB,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAuB/D;AAOD,wBAAgB,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,GAAG,IAAI,CA6C/D"}
1
+ {"version":3,"file":"cron-parser.d.ts","sourceRoot":"","sources":["../../src/bot/cron-parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAa,MAAM,YAAY,CAAC;AAExD,wBAAgB,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,CAgBxD;AA4DD,wBAAgB,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAuB/D;AAOD,wBAAgB,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,GAAG,IAAI,CA6C/D"}
@@ -31,6 +31,8 @@ function parseField(token, min, max) {
31
31
  }
32
32
  else if (rangeStr.includes('-')) {
33
33
  [start, end] = rangeStr.split('-').map(Number);
34
+ if (isNaN(start) || isNaN(end))
35
+ throw new Error(`Invalid range in "${part}"`);
34
36
  }
35
37
  else {
36
38
  start = parseInt(rangeStr, 10);
@@ -1 +1 @@
1
- {"version":3,"file":"cron-parser.js","sourceRoot":"","sources":["../../src/bot/cron-parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cron-parser.js","sourceRoot":"","sources":["../../src/bot/cron-parser.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cron-scheduler.d.ts","sourceRoot":"","sources":["../../src/bot/cron-scheduler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAK7C,qBAAa,aAAc,SAAQ,YAAY;IAC7C,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,KAAK,CAA8C;IAC3D,OAAO,CAAC,OAAO,CAAS;gBAEZ,MAAM,EAAE,UAAU;IAK9B,KAAK,IAAI,IAAI;IAKb,IAAI,IAAI,IAAI;IAQZ,OAAO,CAAC,YAAY;CAkBrB"}
1
+ {"version":3,"file":"cron-scheduler.d.ts","sourceRoot":"","sources":["../../src/bot/cron-scheduler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAK7C,qBAAa,aAAc,SAAQ,YAAY;IAC7C,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,KAAK,CAA8C;IAC3D,OAAO,CAAC,OAAO,CAAS;gBAEZ,MAAM,EAAE,UAAU;IAK9B,KAAK,IAAI,IAAI;IAMb,IAAI,IAAI,IAAI;IAQZ,OAAO,CAAC,YAAY;CAkBrB"}
@@ -10,6 +10,7 @@ export class CronScheduler extends EventEmitter {
10
10
  this.parsed = parsed;
11
11
  }
12
12
  start() {
13
+ this.stop();
13
14
  this.stopped = false;
14
15
  this.scheduleNext();
15
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cron-scheduler.js","sourceRoot":"","sources":["../../src/bot/cron-scheduler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,MAAM,WAAW,GAAG,aAAa,CAAC,CAAC,wBAAwB;AAE3D,MAAM,OAAO,aAAc,SAAQ,YAAY;IACrC,MAAM,CAAa;IACnB,KAAK,GAAyC,IAAI,CAAC;IACnD,OAAO,GAAG,KAAK,CAAC;IAExB,YAAY,MAAkB;QAC5B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED,IAAI;QACF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QACpB,CAAC;IACH,CAAC;IAEO,YAAY;QAClB,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QAEzB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE5C,IAAI,OAAO,GAAG,WAAW,EAAE,CAAC;YAC1B,mDAAmD;YACnD,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,WAAW,CAAC,CAAC;QAClE,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC3B,IAAI,IAAI,CAAC,OAAO;oBAAE,OAAO;gBACzB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAClB,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"cron-scheduler.js","sourceRoot":"","sources":["../../src/bot/cron-scheduler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,MAAM,WAAW,GAAG,aAAa,CAAC,CAAC,wBAAwB;AAE3D,MAAM,OAAO,aAAc,SAAQ,YAAY;IACrC,MAAM,CAAa;IACnB,KAAK,GAAyC,IAAI,CAAC;IACnD,OAAO,GAAG,KAAK,CAAC;IAExB,YAAY,MAAkB;QAC5B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED,IAAI;QACF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QACpB,CAAC;IACH,CAAC;IAEO,YAAY;QAClB,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QAEzB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE5C,IAAI,OAAO,GAAG,WAAW,EAAE,CAAC;YAC1B,mDAAmD;YACnD,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,WAAW,CAAC,CAAC;QAClE,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC3B,IAAI,IAAI,CAAC,OAAO;oBAAE,OAAO;gBACzB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAClB,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Device Connection — Weaver-specific handlers for the core DeviceConnection.
3
+ *
4
+ * The transport (WebSocket, heartbeat, reconnect) lives in @synergenius/flow-weaver/agent.
5
+ * This module registers handlers for file operations, health, insights, improve status.
6
+ */
7
+ export { DeviceConnection } from '@synergenius/flow-weaver/agent';
8
+ export type { DeviceConnectionOptions, DeviceInfo, DeviceEvent } from '@synergenius/flow-weaver/agent';
9
+ /**
10
+ * Register weaver-specific request handlers on a DeviceConnection.
11
+ */
12
+ export declare function registerWeaverHandlers(conn: import('@synergenius/flow-weaver/agent').DeviceConnection, projectDir: string): void;
13
+ //# sourceMappingURL=device-connection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device-connection.d.ts","sourceRoot":"","sources":["../../src/bot/device-connection.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,YAAY,EAAE,uBAAuB,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAEvG;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,OAAO,gCAAgC,EAAE,gBAAgB,EAC/D,UAAU,EAAE,MAAM,GACjB,IAAI,CAgFN"}
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Device Connection — Weaver-specific handlers for the core DeviceConnection.
3
+ *
4
+ * The transport (WebSocket, heartbeat, reconnect) lives in @synergenius/flow-weaver/agent.
5
+ * This module registers handlers for file operations, health, insights, improve status.
6
+ */
7
+ import * as fs from 'node:fs';
8
+ import * as path from 'node:path';
9
+ import * as os from 'node:os';
10
+ // Re-export the core DeviceConnection for convenience
11
+ export { DeviceConnection } from '@synergenius/flow-weaver/agent';
12
+ /**
13
+ * Register weaver-specific request handlers on a DeviceConnection.
14
+ */
15
+ export function registerWeaverHandlers(conn, projectDir) {
16
+ // Advertise weaver capabilities
17
+ conn.addCapability('file_read');
18
+ conn.addCapability('file_list');
19
+ conn.addCapability('health');
20
+ conn.addCapability('insights');
21
+ conn.addCapability('improve');
22
+ conn.addCapability('assistant');
23
+ // File read
24
+ conn.onRequest('file:read', async (_method, params) => {
25
+ const filePath = path.resolve(projectDir, String(params.path ?? ''));
26
+ if (!filePath.startsWith(projectDir))
27
+ throw new Error('Path outside project directory');
28
+ if (!fs.existsSync(filePath))
29
+ throw new Error('File not found');
30
+ const stat = fs.statSync(filePath);
31
+ if (stat.isDirectory()) {
32
+ return { type: 'directory', entries: fs.readdirSync(filePath) };
33
+ }
34
+ if (stat.size > 1_048_576)
35
+ throw new Error('File too large (>1MB)');
36
+ return { type: 'file', content: fs.readFileSync(filePath, 'utf-8') };
37
+ });
38
+ // File list
39
+ conn.onRequest('file:list', async (_method, params) => {
40
+ const dirPath = path.resolve(projectDir, String(params.path ?? '.'));
41
+ if (!dirPath.startsWith(projectDir))
42
+ throw new Error('Path outside project directory');
43
+ if (!fs.existsSync(dirPath))
44
+ throw new Error('Directory not found');
45
+ const entries = fs.readdirSync(dirPath, { withFileTypes: true });
46
+ return entries
47
+ .filter(e => !e.name.startsWith('.') && e.name !== 'node_modules' && e.name !== 'dist')
48
+ .map(e => ({
49
+ name: e.name,
50
+ type: e.isDirectory() ? 'directory' : 'file',
51
+ path: path.relative(projectDir, path.join(dirPath, e.name)),
52
+ }));
53
+ });
54
+ // Project health
55
+ conn.onRequest('health', async () => {
56
+ try {
57
+ const { ProjectModelStore } = await import('./project-model.js');
58
+ const pms = new ProjectModelStore(projectDir);
59
+ const model = await pms.getOrBuild();
60
+ return { health: model.health, trust: model.trust, cost: model.cost, bots: model.bots };
61
+ }
62
+ catch {
63
+ return { error: 'Project model not available' };
64
+ }
65
+ });
66
+ // Insights
67
+ conn.onRequest('insights', async () => {
68
+ try {
69
+ const { ProjectModelStore } = await import('./project-model.js');
70
+ const { InsightEngine } = await import('./insight-engine.js');
71
+ const model = await new ProjectModelStore(projectDir).getOrBuild();
72
+ return new InsightEngine().analyze(model);
73
+ }
74
+ catch {
75
+ return [];
76
+ }
77
+ });
78
+ // Improve status
79
+ conn.onRequest('improve:status', async () => {
80
+ try {
81
+ const summaryDir = path.join(os.homedir(), '.weaver', 'improve');
82
+ if (!fs.existsSync(summaryDir))
83
+ return { running: false, lastRun: null };
84
+ const files = fs.readdirSync(summaryDir).filter(f => f.endsWith('.json')).sort().reverse();
85
+ if (files.length === 0)
86
+ return { running: false, lastRun: null };
87
+ const latest = JSON.parse(fs.readFileSync(path.join(summaryDir, files[0]), 'utf-8'));
88
+ let running = false;
89
+ try {
90
+ const { execFileSync } = await import('node:child_process');
91
+ const worktrees = execFileSync('git', ['worktree', 'list'], { encoding: 'utf-8', cwd: projectDir });
92
+ running = worktrees.includes('weaver-improve');
93
+ }
94
+ catch { /* git not available */ }
95
+ return { running, lastRun: latest };
96
+ }
97
+ catch {
98
+ return { running: false, lastRun: null };
99
+ }
100
+ });
101
+ }
102
+ //# sourceMappingURL=device-connection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device-connection.js","sourceRoot":"","sources":["../../src/bot/device-connection.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"error-classifier.d.ts","sourceRoot":"","sources":["../../src/bot/error-classifier.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;CAC1F;AAuBD;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,mBAAmB,CAY/D;AAED,+DAA+D;AAC/D,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAEtD;AAED,iEAAiE;AACjE,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAE3D;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAC/B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,OAAO,CAAC,EAAE;IACR,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;CAChE,GACA,OAAO,CAAC,CAAC,CAAC,CAmBZ"}
1
+ {"version":3,"file":"error-classifier.d.ts","sourceRoot":"","sources":["../../src/bot/error-classifier.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;CAC1F;AA4BD;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,mBAAmB,CAY/D;AAED,+DAA+D;AAC/D,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAEtD;AAED,iEAAiE;AACjE,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAE3D;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAC/B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,OAAO,CAAC,EAAE;IACR,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;CAChE,GACA,OAAO,CAAC,CAAC,CAAC,CAmBZ"}
@@ -9,7 +9,12 @@ const PATTERNS = [
9
9
  { pattern: /EPIPE|ENOTFOUND/i, isTransient: true, guidance: 'Network error.', category: 'network' },
10
10
  { pattern: /401|authentication|invalid.*key/i, isTransient: false, guidance: 'Authentication failed. Check API key or run "weaver init".', category: 'auth' },
11
11
  { pattern: /403|forbidden/i, isTransient: false, guidance: 'Access denied. API key may lack permissions.', category: 'auth' },
12
+ { pattern: /400|bad request/i, isTransient: false, guidance: 'Bad request (400). Check input payload or parameters.', category: 'parse' },
13
+ { pattern: /404|not found/i, isTransient: false, guidance: 'Resource not found (404). Check URL or resource ID.', category: 'network' },
14
+ { pattern: /408|request timeout/i, isTransient: true, guidance: 'Request timeout (408). Will auto-retry.', category: 'timeout' },
15
+ { pattern: /422|unprocessable/i, isTransient: false, guidance: 'Unprocessable entity (422). Input is well-formed but semantically invalid.', category: 'parse' },
12
16
  { pattern: /429|rate.?limit|too many requests/i, isTransient: true, guidance: 'Rate limited. Wait a few minutes or reduce --parallel.', category: 'rate-limit' },
17
+ { pattern: /500|internal server error/i, isTransient: true, guidance: 'Internal server error (500). Will auto-retry.', category: 'network' },
13
18
  { pattern: /502|bad gateway/i, isTransient: true, guidance: 'Server error (502). Will auto-retry.', category: 'network' },
14
19
  { pattern: /503|service unavailable|overloaded/i, isTransient: true, guidance: 'Service overloaded. Will auto-retry.', category: 'network' },
15
20
  { pattern: /504|gateway timeout/i, isTransient: true, guidance: 'Gateway timeout (504). Will auto-retry.', category: 'timeout' },
@@ -1 +1 @@
1
- {"version":3,"file":"error-classifier.js","sourceRoot":"","sources":["../../src/bot/error-classifier.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"error-classifier.js","sourceRoot":"","sources":["../../src/bot/error-classifier.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,MAAM,QAAQ,GAAkH;IAC9H,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,sDAAsD,EAAE,QAAQ,EAAE,SAAS,EAAE;IACnI,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,2CAA2C,EAAE,QAAQ,EAAE,SAAS,EAAE;IACzH,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,6CAA6C,EAAE,QAAQ,EAAE,SAAS,EAAE;IAC7H,EAAE,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,SAAS,EAAE;IACnG,EAAE,OAAO,EAAE,kCAAkC,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,4DAA4D,EAAE,QAAQ,EAAE,MAAM,EAAE;IAC7J,EAAE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,8CAA8C,EAAE,QAAQ,EAAE,MAAM,EAAE;IAC7H,EAAE,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,uDAAuD,EAAE,QAAQ,EAAE,OAAO,EAAE;IACzI,EAAE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,qDAAqD,EAAE,QAAQ,EAAE,SAAS,EAAE;IACvI,EAAE,OAAO,EAAE,sBAAsB,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,yCAAyC,EAAE,QAAQ,EAAE,SAAS,EAAE;IAChI,EAAE,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,4EAA4E,EAAE,QAAQ,EAAE,OAAO,EAAE;IAChK,EAAE,OAAO,EAAE,oCAAoC,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,wDAAwD,EAAE,QAAQ,EAAE,YAAY,EAAE;IAChK,EAAE,OAAO,EAAE,4BAA4B,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,+CAA+C,EAAE,QAAQ,EAAE,SAAS,EAAE;IAC5I,EAAE,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,sCAAsC,EAAE,QAAQ,EAAE,SAAS,EAAE;IACzH,EAAE,OAAO,EAAE,qCAAqC,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,sCAAsC,EAAE,QAAQ,EAAE,SAAS,EAAE;IAC5I,EAAE,OAAO,EAAE,sBAAsB,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,yCAAyC,EAAE,QAAQ,EAAE,SAAS,EAAE;IAChI,EAAE,OAAO,EAAE,4BAA4B,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,qDAAqD,EAAE,QAAQ,EAAE,SAAS,EAAE;IAClJ,EAAE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,oDAAoD,EAAE,QAAQ,EAAE,QAAQ,EAAE;IACrI,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAE;IAC1F,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE;IACtF,EAAE,OAAO,EAAE,wCAAwC,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,8DAA8D,EAAE,QAAQ,EAAE,QAAQ,EAAE;IACtK,EAAE,OAAO,EAAE,gCAAgC,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,mEAAmE,EAAE,QAAQ,EAAE,OAAO,EAAE;IACnK,EAAE,OAAO,EAAE,+BAA+B,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,0DAA0D,EAAE,QAAQ,EAAE,OAAO,EAAE;IACzJ,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,2DAA2D,EAAE,QAAQ,EAAE,QAAQ,EAAE;CAC1I,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,GAAY;IACxC,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC7D,iCAAiC;IACjC,MAAM,IAAI,GAAG,GAAG,YAAY,KAAK,IAAI,MAAM,IAAI,GAAG,CAAC,CAAC,CAAE,GAA6B,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IACrG,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IAE9C,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;QACpF,CAAC;IACH,CAAC;IACD,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;AACrE,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,gBAAgB,CAAC,GAAY;IAC3C,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC;AACxC,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,OAAO,aAAa,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;AAChD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,EAAoB,EACpB,OAKC;IAED,MAAM,UAAU,GAAG,OAAO,EAAE,UAAU,IAAI,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,OAAO,EAAE,WAAW,IAAI,KAAK,CAAC;IAChD,MAAM,UAAU,GAAG,OAAO,EAAE,UAAU,IAAI,CAAC,CAAC;IAE5C,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;QACvD,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,EAAE,CAAC;QACpB,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,MAAM,GAAG,OAAO,IAAI,UAAU,CAAC;YACrC,IAAI,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC;gBAAE,MAAM,GAAG,CAAC;YAChD,MAAM,KAAK,GAAG,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACxD,OAAO,EAAE,OAAO,EAAE,CAAC,OAAO,GAAG,CAAC,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC5F,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED,uCAAuC;IACvC,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;AAClD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"file-lock.d.ts","sourceRoot":"","sources":["../../src/bot/file-lock.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAgBD,wBAAsB,YAAY,CAAC,CAAC,EAClC,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EACxB,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,CAAC,CAAC,CA6CZ"}
1
+ {"version":3,"file":"file-lock.d.ts","sourceRoot":"","sources":["../../src/bot/file-lock.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAgBD,wBAAsB,YAAY,CAAC,CAAC,EAClC,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EACxB,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,CAAC,CAAC,CAuDZ"}
@@ -47,11 +47,21 @@ export async function withFileLock(lockPath, fn, options) {
47
47
  }
48
48
  }
49
49
  catch {
50
- // Can't read lock info, try to clean up
50
+ // Can't read lock info lock holder may still be writing it.
51
+ // Only clean up if the lock directory itself is stale.
51
52
  try {
52
- fs.rmSync(lockDir, { recursive: true });
53
+ const stat = fs.statSync(lockDir);
54
+ if (Date.now() - stat.mtimeMs > staleMs) {
55
+ try {
56
+ fs.rmSync(lockDir, { recursive: true });
57
+ }
58
+ catch { /* ignore */ }
59
+ }
60
+ }
61
+ catch { /* lockDir gone, will retry */ }
62
+ if (attempt < retries) {
63
+ await new Promise(r => setTimeout(r, retryWait));
53
64
  }
54
- catch { /* ignore */ }
55
65
  continue;
56
66
  }
57
67
  if (attempt < retries) {
@@ -1 +1 @@
1
- {"version":3,"file":"file-lock.js","sourceRoot":"","sources":["../../src/bot/file-lock.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file-lock.js","sourceRoot":"","sources":["../../src/bot/file-lock.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"file-watcher.d.ts","sourceRoot":"","sources":["../../src/bot/file-watcher.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,qBAAa,WAAY,SAAQ,YAAY;IAC3C,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,SAAS,CAA+C;IAChE,OAAO,CAAC,aAAa,CAA8C;IACnE,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,EAAE,kBAAkB;IAOvC,KAAK,IAAI,IAAI;IAMb,IAAI,IAAI,IAAI;IAUZ,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,eAAe;IAgCvB,OAAO,CAAC,SAAS;IAYjB,OAAO,CAAC,QAAQ;CAOjB"}
1
+ {"version":3,"file":"file-watcher.d.ts","sourceRoot":"","sources":["../../src/bot/file-watcher.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,qBAAa,WAAY,SAAQ,YAAY;IAC3C,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,SAAS,CAA+C;IAChE,OAAO,CAAC,aAAa,CAA8C;IACnE,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,EAAE,kBAAkB;IAOvC,KAAK,IAAI,IAAI;IAOb,IAAI,IAAI,IAAI;IAUZ,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,eAAe;IAgCvB,OAAO,CAAC,SAAS;IAYjB,OAAO,CAAC,QAAQ;CAOjB"}
@@ -16,6 +16,7 @@ export class FileWatcher extends EventEmitter {
16
16
  this.pollingIntervalMs = options.pollingIntervalMs ?? 2000;
17
17
  }
18
18
  start() {
19
+ this.stop();
19
20
  this.stopped = false;
20
21
  this.lastMtime = this.getMtime();
21
22
  this.attachFsWatch();
@@ -1 +1 @@
1
- {"version":3,"file":"file-watcher.js","sourceRoot":"","sources":["../../src/bot/file-watcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file-watcher.js","sourceRoot":"","sources":["../../src/bot/file-watcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAQ3C,MAAM,OAAO,WAAY,SAAQ,YAAY;IACnC,QAAQ,CAAS;IACjB,UAAU,CAAS;IACnB,iBAAiB,CAAS;IAC1B,OAAO,GAAwB,IAAI,CAAC;IACpC,SAAS,GAA0C,IAAI,CAAC;IACxD,aAAa,GAAyC,IAAI,CAAC;IAC3D,SAAS,GAAW,CAAC,CAAC;IACtB,OAAO,GAAG,KAAK,CAAC;IAExB,YAAY,OAA2B;QACrC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,GAAG,CAAC;QAC5C,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,IAAI,IAAI,CAAC;IAC7D,CAAC;IAED,KAAK;QACH,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QACjC,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED,IAAI;QACF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,IAAI,CAAC,aAAa;YAAE,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACzD,IAAI,IAAI,CAAC,SAAS;YAAE,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACrB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,CAAC;IACH,CAAC;IAEO,aAAa;QACnB,IAAI,CAAC;YACH,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;YAC/D,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;QACzD,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;IAEO,eAAe;QACrB,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QACzB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACrB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,CAAC;QACD,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO;QAE3B,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE;YAChC,IAAI,IAAI,CAAC,OAAO;gBAAE,OAAO;YACzB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC9B,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;gBAC3B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACtB,CAAC;YAED,4BAA4B;YAC5B,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAClD,IAAI,CAAC;oBACH,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;oBAC/D,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;oBACvD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;wBACnB,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;wBAC9B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;oBACxB,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,uBAAuB;gBACzB,CAAC;YACH,CAAC;QACH,CAAC,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC7B,CAAC;IAEO,SAAS;QACf,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QACzB,IAAI,IAAI,CAAC,aAAa;YAAE,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACzD,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE;YACnC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC9B,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;gBAC3B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACtB,CAAC;QACH,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACtB,CAAC;IAEO,QAAQ;QACd,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC;QAC5C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;CACF"}
@@ -28,4 +28,9 @@ export declare function getOpsContext(): Promise<string>;
28
28
  * Falls back to reading the raw file if describe isn't available.
29
29
  */
30
30
  export declare function getWorkflowDescription(filePath: string): Promise<string>;
31
+ /**
32
+ * Builds intelligence context from the project model for Genesis proposals.
33
+ * Includes health scores, insights, operation effectiveness, and user preferences.
34
+ */
35
+ export declare function getGenesisInsightContext(projectDir: string): Promise<string>;
31
36
  //# sourceMappingURL=genesis-prompt-context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"genesis-prompt-context.d.ts","sourceRoot":"","sources":["../../src/bot/genesis-prompt-context.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAIhD;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,aAAa,EACrB,UAAU,EAAE,OAAO,EACnB,OAAO,CAAC,EAAE;IAAE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,GAChE,OAAO,CAAC,MAAM,CAAC,CAoCjB;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAqC/D;AAED;;;GAGG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAYrD;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAW9E"}
1
+ {"version":3,"file":"genesis-prompt-context.d.ts","sourceRoot":"","sources":["../../src/bot/genesis-prompt-context.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAIhD;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,aAAa,EACrB,UAAU,EAAE,OAAO,EACnB,OAAO,CAAC,EAAE;IAAE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,GAChE,OAAO,CAAC,MAAM,CAAC,CAoCjB;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAqC/D;AAED;;;GAGG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAYrD;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAW9E;AAED;;;GAGG;AACH,wBAAsB,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAuDlF"}
@@ -118,4 +118,59 @@ export async function getWorkflowDescription(filePath) {
118
118
  return '(workflow description unavailable)';
119
119
  }
120
120
  }
121
+ /**
122
+ * Builds intelligence context from the project model for Genesis proposals.
123
+ * Includes health scores, insights, operation effectiveness, and user preferences.
124
+ */
125
+ export async function getGenesisInsightContext(projectDir) {
126
+ try {
127
+ const { ProjectModelStore } = await import('./project-model.js');
128
+ const pms = new ProjectModelStore(projectDir);
129
+ const model = await pms.getOrBuild();
130
+ const lines = ['## Project Intelligence', ''];
131
+ lines.push(`Health: ${model.health.overall}/100`);
132
+ lines.push(`Trust Phase: ${model.trust.phase}`);
133
+ lines.push('');
134
+ // Top failure patterns as genesis candidates
135
+ const candidates = model.failurePatterns
136
+ .filter(f => !f.transient && f.occurrences >= 3)
137
+ .slice(0, 3);
138
+ if (candidates.length > 0) {
139
+ lines.push('### Top Issues (Genesis Candidates)');
140
+ for (const c of candidates) {
141
+ lines.push(`- [${c.occurrences}x] ${c.pattern} (${c.category})`);
142
+ }
143
+ lines.push('');
144
+ }
145
+ // Operation effectiveness
146
+ const ops = Object.entries(model.evolution.byOperationType);
147
+ if (ops.length > 0) {
148
+ lines.push('### Operation Effectiveness');
149
+ for (const [op, stats] of ops) {
150
+ lines.push(`- ${op}: ${Math.round(stats.effectiveness * 100)}% effective (${stats.applied}/${stats.proposed})`);
151
+ }
152
+ lines.push('');
153
+ }
154
+ // User preferences
155
+ if (model.userPreferences.autoApprovePatterns.length > 0) {
156
+ lines.push(`Auto-approve patterns: ${model.userPreferences.autoApprovePatterns.join(', ')}`);
157
+ }
158
+ if (model.userPreferences.neverApprovePatterns.length > 0) {
159
+ lines.push(`Never-approve patterns: ${model.userPreferences.neverApprovePatterns.join(', ')}`);
160
+ }
161
+ // Bot performance
162
+ const weakBots = model.bots.filter(b => b.successRate < 0.5 && b.totalTasksRun > 3);
163
+ if (weakBots.length > 0) {
164
+ lines.push('');
165
+ lines.push('### Underperforming Bots');
166
+ for (const b of weakBots) {
167
+ lines.push(`- ${b.name}: ${Math.round(b.successRate * 100)}% success (${b.totalTasksRun} tasks)`);
168
+ }
169
+ }
170
+ return lines.join('\n');
171
+ }
172
+ catch {
173
+ return '';
174
+ }
175
+ }
121
176
  //# sourceMappingURL=genesis-prompt-context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"genesis-prompt-context.js","sourceRoot":"","sources":["../../src/bot/genesis-prompt-context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"genesis-prompt-context.js","sourceRoot":"","sources":["../../src/bot/genesis-prompt-context.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,10 @@ export declare class GenesisStore {
23
23
  loadSelfHistory(): GenesisSelfMigrationRecord[];
24
24
  appendSelfMigration(record: GenesisSelfMigrationRecord): void;
25
25
  getSelfFailureCount(): number;
26
+ /** Atomic write: serialize to temp file, backup existing, rename into place. */
27
+ private writeJsonAtomic;
28
+ /** Read from .bak file when primary is corrupt. */
29
+ private readJsonBackup;
26
30
  static hashFile(filePath: string): string;
27
31
  }
28
32
  //# sourceMappingURL=genesis-store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"genesis-store.d.ts","sourceRoot":"","sources":["../../src/bot/genesis-store.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,WAAW,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAcjJ,qBAAa,YAAY;IACvB,OAAO,CAAC,UAAU,CAAS;gBAEf,UAAU,EAAE,MAAM;IAI9B,UAAU,IAAI,IAAI;IAIlB,UAAU,IAAI,aAAa;IAY3B,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAKvC,WAAW,IAAI,cAAc;IAS7B,WAAW,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI;IAO5C,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM;IAOtD,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAQjD,eAAe,CAAC,WAAW,EAAE,kBAAkB,GAAG,IAAI;IAKtD,kBAAkB,IAAI,kBAAkB,GAAG,IAAI;IAO/C,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;IAK1C,MAAM,CAAC,UAAU,IAAI,MAAM;IAI3B,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM;IAMhD,gBAAgB,IAAI,IAAI;IAKxB,eAAe,IAAI,WAAW,GAAG,IAAI;IAOrC,eAAe,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IASzC,WAAW,IAAI,IAAI;IAOnB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAIjD,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAMjD,eAAe,IAAI,0BAA0B,EAAE;IAO/C,mBAAmB,CAAC,MAAM,EAAE,0BAA0B,GAAG,IAAI;IAW7D,mBAAmB,IAAI,MAAM;IAU7B,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;CAI1C"}
1
+ {"version":3,"file":"genesis-store.d.ts","sourceRoot":"","sources":["../../src/bot/genesis-store.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,WAAW,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAcjJ,qBAAa,YAAY;IACvB,OAAO,CAAC,UAAU,CAAS;gBAEf,UAAU,EAAE,MAAM;IAI9B,UAAU,IAAI,IAAI;IAIlB,UAAU,IAAI,aAAa;IAgB3B,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAKvC,WAAW,IAAI,cAAc;IAiB7B,WAAW,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI;IAO5C,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM;IAOtD,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAQjD,eAAe,CAAC,WAAW,EAAE,kBAAkB,GAAG,IAAI;IAKtD,kBAAkB,IAAI,kBAAkB,GAAG,IAAI;IAW/C,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;IAK1C,MAAM,CAAC,UAAU,IAAI,MAAM;IAI3B,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM;IAMhD,gBAAgB,IAAI,IAAI;IAKxB,eAAe,IAAI,WAAW,GAAG,IAAI;IAOrC,eAAe,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IASzC,WAAW,IAAI,IAAI;IAOnB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAIjD,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAMjD,eAAe,IAAI,0BAA0B,EAAE;IAa/C,mBAAmB,CAAC,MAAM,EAAE,0BAA0B,GAAG,IAAI;IAO7D,mBAAmB,IAAI,MAAM;IAU7B,gFAAgF;IAChF,OAAO,CAAC,eAAe;IAkBvB,mDAAmD;IACnD,OAAO,CAAC,cAAc;IActB,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;CAI1C"}
@@ -27,9 +27,14 @@ export class GenesisStore {
27
27
  fs.writeFileSync(configPath, JSON.stringify(DEFAULT_CONFIG, null, 2), 'utf-8');
28
28
  return { ...DEFAULT_CONFIG };
29
29
  }
30
- const content = fs.readFileSync(configPath, 'utf-8');
31
- const raw = jsonParseOr(content, {}, 'genesis config');
32
- return { ...DEFAULT_CONFIG, ...raw };
30
+ try {
31
+ const content = fs.readFileSync(configPath, 'utf-8');
32
+ const raw = jsonParseOr(content, {}, 'genesis config');
33
+ return { ...DEFAULT_CONFIG, ...raw };
34
+ }
35
+ catch {
36
+ return { ...DEFAULT_CONFIG };
37
+ }
33
38
  }
34
39
  saveConfig(config) {
35
40
  this.ensureDirs();
@@ -37,17 +42,27 @@ export class GenesisStore {
37
42
  }
38
43
  loadHistory() {
39
44
  const historyPath = path.join(this.genesisDir, 'history.json');
45
+ const fallback = { configHash: '', cycles: [] };
40
46
  if (!fs.existsSync(historyPath)) {
41
- return { configHash: '', cycles: [] };
47
+ return fallback;
48
+ }
49
+ try {
50
+ const content = fs.readFileSync(historyPath, 'utf-8');
51
+ const parsed = jsonParseOr(content, null, 'genesis history');
52
+ if (parsed && Array.isArray(parsed.cycles))
53
+ return parsed;
54
+ // Primary file corrupt — try backup
55
+ return this.readJsonBackup(historyPath, fallback);
56
+ }
57
+ catch {
58
+ return this.readJsonBackup(historyPath, fallback);
42
59
  }
43
- const content = fs.readFileSync(historyPath, 'utf-8');
44
- return jsonParseOr(content, { configHash: '', cycles: [] }, 'genesis history');
45
60
  }
46
61
  appendCycle(cycle) {
47
62
  const history = this.loadHistory();
48
63
  history.cycles.push(cycle);
49
64
  this.ensureDirs();
50
- fs.writeFileSync(path.join(this.genesisDir, 'history.json'), JSON.stringify(history, null, 2), 'utf-8');
65
+ this.writeJsonAtomic(path.join(this.genesisDir, 'history.json'), history);
51
66
  }
52
67
  saveSnapshot(cycleId, content) {
53
68
  this.ensureDirs();
@@ -71,8 +86,13 @@ export class GenesisStore {
71
86
  const fpPath = path.join(this.genesisDir, 'fingerprint.json');
72
87
  if (!fs.existsSync(fpPath))
73
88
  return null;
74
- const content = fs.readFileSync(fpPath, 'utf-8');
75
- return jsonParseOr(content, null, 'genesis fingerprint');
89
+ try {
90
+ const content = fs.readFileSync(fpPath, 'utf-8');
91
+ return jsonParseOr(content, null, 'genesis fingerprint');
92
+ }
93
+ catch {
94
+ return null;
95
+ }
76
96
  }
77
97
  getRecentOutcomes(count) {
78
98
  const history = this.loadHistory();
@@ -117,14 +137,22 @@ export class GenesisStore {
117
137
  const histPath = path.join(this.genesisDir, 'self-history.json');
118
138
  if (!fs.existsSync(histPath))
119
139
  return [];
120
- const content = fs.readFileSync(histPath, 'utf-8');
121
- return jsonParseOr(content, [], 'genesis self-history');
140
+ try {
141
+ const content = fs.readFileSync(histPath, 'utf-8');
142
+ const parsed = jsonParseOr(content, null, 'genesis self-history');
143
+ if (Array.isArray(parsed))
144
+ return parsed;
145
+ return this.readJsonBackup(histPath, []);
146
+ }
147
+ catch {
148
+ return this.readJsonBackup(histPath, []);
149
+ }
122
150
  }
123
151
  appendSelfMigration(record) {
124
152
  const records = this.loadSelfHistory();
125
153
  records.push(record);
126
154
  this.ensureDirs();
127
- fs.writeFileSync(path.join(this.genesisDir, 'self-history.json'), JSON.stringify(records, null, 2), 'utf-8');
155
+ this.writeJsonAtomic(path.join(this.genesisDir, 'self-history.json'), records);
128
156
  }
129
157
  getSelfFailureCount() {
130
158
  const records = this.loadSelfHistory();
@@ -137,6 +165,45 @@ export class GenesisStore {
137
165
  }
138
166
  return count;
139
167
  }
168
+ /** Atomic write: serialize to temp file, backup existing, rename into place. */
169
+ writeJsonAtomic(filePath, data) {
170
+ const tmpPath = filePath + `.tmp.${process.pid}`;
171
+ const backupPath = filePath + '.bak';
172
+ const content = JSON.stringify(data, null, 2);
173
+ fs.writeFileSync(tmpPath, content, 'utf-8');
174
+ // Backup current file before overwriting
175
+ if (fs.existsSync(filePath)) {
176
+ try {
177
+ fs.copyFileSync(filePath, backupPath);
178
+ }
179
+ catch { /* best effort */ }
180
+ }
181
+ fs.renameSync(tmpPath, filePath);
182
+ // Update backup after successful write
183
+ try {
184
+ fs.copyFileSync(filePath, backupPath);
185
+ }
186
+ catch { /* best effort */ }
187
+ }
188
+ /** Read from .bak file when primary is corrupt. */
189
+ readJsonBackup(filePath, fallback) {
190
+ const backupPath = filePath + '.bak';
191
+ if (!fs.existsSync(backupPath))
192
+ return fallback;
193
+ try {
194
+ const content = fs.readFileSync(backupPath, 'utf-8');
195
+ const data = JSON.parse(content);
196
+ // Restore backup to primary
197
+ try {
198
+ this.writeJsonAtomic(filePath, data);
199
+ }
200
+ catch { /* best effort */ }
201
+ return data;
202
+ }
203
+ catch {
204
+ return fallback;
205
+ }
206
+ }
140
207
  static hashFile(filePath) {
141
208
  const content = fs.readFileSync(filePath);
142
209
  return crypto.createHash('sha256').update(content).digest('hex');