odd-flow 1.0.0 → 1.2.0

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 (377) hide show
  1. package/README.md +126 -7475
  2. package/bin/cli.js +2 -2
  3. package/package.json +12 -12
  4. package/v3/{@claude-flow → @odd-flow}/cli/README.md +118 -4
  5. package/v3/{@claude-flow → @odd-flow}/cli/bin/cli.js +4 -4
  6. package/v3/{@claude-flow → @odd-flow}/cli/bin/mcp-server.js +2 -2
  7. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/appliance/gguf-engine.d.ts +1 -1
  8. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/appliance/gguf-engine.js +1 -1
  9. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/appliance/ruvllm-bridge.d.ts +1 -1
  10. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/appliance/ruvllm-bridge.js +1 -1
  11. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/appliance/rvfa-runner.d.ts +1 -1
  12. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/appliance/rvfa-runner.js +1 -1
  13. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/appliance/rvfa-signing.d.ts +1 -1
  14. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/appliance/rvfa-signing.js +1 -1
  15. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/autopilot-state.d.ts +3 -3
  16. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/autopilot-state.js +3 -3
  17. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/agent-wasm.js +7 -7
  18. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/agent.js +15 -15
  19. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/analyze.js +52 -52
  20. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/appliance.js +1 -1
  21. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/autopilot.js +4 -4
  22. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/benchmark.js +16 -16
  23. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/claims.js +21 -21
  24. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/cleanup.d.ts +1 -1
  25. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/cleanup.js +9 -9
  26. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/completions.js +41 -41
  27. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/config.js +9 -9
  28. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/daemon.js +27 -27
  29. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/deployment.js +20 -20
  30. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/doctor.js +24 -24
  31. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/embeddings.js +58 -58
  32. package/v3/@odd-flow/cli/dist/src/commands/escalation.d.ts +7 -0
  33. package/v3/@odd-flow/cli/dist/src/commands/escalation.js +115 -0
  34. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/guidance.js +30 -30
  35. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/hive-mind.js +20 -20
  36. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/hooks.js +103 -103
  37. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/index.d.ts +3 -0
  38. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/index.js +20 -0
  39. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/init.js +49 -48
  40. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/issues.js +6 -6
  41. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/mcp.d.ts +1 -1
  42. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/mcp.js +14 -14
  43. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/memory.js +33 -33
  44. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/migrate.js +28 -28
  45. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/neural.js +35 -35
  46. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/performance.js +13 -13
  47. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/plugins.js +33 -33
  48. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/process.js +36 -36
  49. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/progress.d.ts +1 -1
  50. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/progress.js +7 -7
  51. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/providers.js +13 -13
  52. package/v3/@odd-flow/cli/dist/src/commands/refinery.d.ts +7 -0
  53. package/v3/@odd-flow/cli/dist/src/commands/refinery.js +64 -0
  54. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/route.js +26 -26
  55. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/ruvector/backup.js +9 -9
  56. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/ruvector/benchmark.js +4 -4
  57. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/ruvector/import.d.ts +3 -3
  58. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/ruvector/import.js +11 -11
  59. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/ruvector/index.js +9 -9
  60. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/ruvector/init.js +7 -7
  61. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/ruvector/migrate.js +5 -5
  62. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/ruvector/optimize.js +7 -7
  63. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/ruvector/setup.d.ts +3 -3
  64. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/ruvector/setup.js +14 -14
  65. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/ruvector/status.js +4 -4
  66. package/v3/@odd-flow/cli/dist/src/commands/scheduler.d.ts +7 -0
  67. package/v3/@odd-flow/cli/dist/src/commands/scheduler.js +86 -0
  68. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/security.js +22 -22
  69. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/session.js +13 -13
  70. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/start.js +16 -16
  71. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/status.js +9 -9
  72. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/swarm.js +10 -10
  73. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/task.js +9 -9
  74. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/transfer-store.js +17 -17
  75. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/update.d.ts +1 -1
  76. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/update.js +8 -8
  77. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/workflow.js +13 -13
  78. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/config-adapter.d.ts +1 -1
  79. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/config-adapter.js +1 -1
  80. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/index.js +2 -2
  81. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/infrastructure/in-memory-repositories.d.ts +4 -4
  82. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/init/claudemd-generator.js +31 -31
  83. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/init/executor.js +63 -63
  84. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/init/helpers-generator.d.ts +1 -1
  85. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/init/helpers-generator.js +19 -19
  86. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/init/mcp-generator.js +1 -1
  87. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/init/settings-generator.js +6 -6
  88. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/init/statusline-generator.js +16 -16
  89. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/init/types.d.ts +3 -3
  90. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-server.d.ts +2 -2
  91. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-server.js +15 -15
  92. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/agent-tools.js +36 -1
  93. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/agentdb-tools.js +1 -1
  94. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/claims-tools.d.ts +1 -1
  95. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/claims-tools.js +2 -2
  96. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/config-tools.js +12 -1
  97. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/coordination-tools.js +1 -1
  98. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/embeddings-tools.js +1 -1
  99. package/v3/@odd-flow/cli/dist/src/mcp-tools/escalation-tools.d.ts +15 -0
  100. package/v3/@odd-flow/cli/dist/src/mcp-tools/escalation-tools.js +153 -0
  101. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/hive-mind-tools.js +4 -4
  102. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/hooks-tools.js +3 -3
  103. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/index.d.ts +3 -0
  104. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/index.js +4 -0
  105. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/memory-tools.js +1 -1
  106. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/neural-tools.d.ts +3 -3
  107. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/neural-tools.js +8 -8
  108. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/performance-tools.js +1 -1
  109. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/progress-tools.d.ts +1 -1
  110. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/progress-tools.js +8 -8
  111. package/v3/@odd-flow/cli/dist/src/mcp-tools/refinery-tools.d.ts +16 -0
  112. package/v3/@odd-flow/cli/dist/src/mcp-tools/refinery-tools.js +223 -0
  113. package/v3/@odd-flow/cli/dist/src/mcp-tools/scheduler-tools.d.ts +16 -0
  114. package/v3/@odd-flow/cli/dist/src/mcp-tools/scheduler-tools.js +72 -0
  115. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/security-tools.js +3 -3
  116. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/session-tools.js +1 -1
  117. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/swarm-tools.js +123 -1
  118. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/system-tools.js +2 -2
  119. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/task-tools.js +1 -1
  120. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/workflow-tools.js +1 -1
  121. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/memory/intelligence.js +5 -5
  122. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/memory/memory-bridge.js +2 -2
  123. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/memory/memory-initializer.js +3 -3
  124. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/plugins/manager.js +10 -10
  125. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/plugins/store/discovery.js +99 -99
  126. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/plugins/tests/demo-plugin-store.js +6 -6
  127. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/plugins/tests/standalone-test.js +6 -6
  128. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/plugins/tests/test-plugin-store.js +2 -2
  129. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/production/circuit-breaker.d.ts +1 -1
  130. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/production/circuit-breaker.js +1 -1
  131. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/production/error-handler.d.ts +1 -1
  132. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/production/error-handler.js +1 -1
  133. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/production/index.d.ts +1 -1
  134. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/production/index.js +1 -1
  135. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/production/monitoring.d.ts +1 -1
  136. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/production/monitoring.js +1 -1
  137. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/production/rate-limiter.d.ts +1 -1
  138. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/production/rate-limiter.js +1 -1
  139. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/production/retry.d.ts +1 -1
  140. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/production/retry.js +1 -1
  141. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/runtime/headless.d.ts +3 -3
  142. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/runtime/headless.js +3 -3
  143. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/agent-wasm.d.ts +1 -1
  144. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/agent-wasm.js +1 -1
  145. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/graph-analyzer.d.ts +1 -1
  146. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/graph-analyzer.js +1 -1
  147. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/index.d.ts +1 -1
  148. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/index.js +1 -1
  149. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/ruvllm-wasm.d.ts +1 -1
  150. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/ruvllm-wasm.js +1 -1
  151. package/v3/@odd-flow/cli/dist/src/services/checkpoint-manager.d.ts +46 -0
  152. package/v3/@odd-flow/cli/dist/src/services/checkpoint-manager.js +114 -0
  153. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/services/claim-service.js +1 -1
  154. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/services/config-file-manager.js +2 -2
  155. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/services/container-worker-pool.js +6 -6
  156. package/v3/@odd-flow/cli/dist/src/services/escalation-router.d.ts +46 -0
  157. package/v3/@odd-flow/cli/dist/src/services/escalation-router.js +138 -0
  158. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/services/headless-worker-executor.js +2 -2
  159. package/v3/@odd-flow/cli/dist/src/services/refinery.d.ts +66 -0
  160. package/v3/@odd-flow/cli/dist/src/services/refinery.js +165 -0
  161. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/services/registry-api.js +1 -1
  162. package/v3/@odd-flow/cli/dist/src/services/scheduler.d.ts +66 -0
  163. package/v3/@odd-flow/cli/dist/src/services/scheduler.js +228 -0
  164. package/v3/@odd-flow/cli/dist/src/services/watchdog-deacon.d.ts +20 -0
  165. package/v3/@odd-flow/cli/dist/src/services/watchdog-deacon.js +52 -0
  166. package/v3/@odd-flow/cli/dist/src/services/watchdog-dogs.d.ts +42 -0
  167. package/v3/@odd-flow/cli/dist/src/services/watchdog-dogs.js +81 -0
  168. package/v3/@odd-flow/cli/dist/src/services/watchdog-witness.d.ts +38 -0
  169. package/v3/@odd-flow/cli/dist/src/services/watchdog-witness.js +57 -0
  170. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/services/worker-daemon.d.ts +1 -1
  171. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/services/worker-daemon.js +18 -18
  172. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/services/worker-queue.js +1 -1
  173. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/suggest.js +1 -1
  174. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/ipfs/upload.d.ts +1 -1
  175. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/ipfs/upload.js +1 -1
  176. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/models/seraphine.js +2 -2
  177. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/serialization/cfp.js +1 -1
  178. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/storage/gcs.d.ts +1 -1
  179. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/storage/gcs.js +4 -4
  180. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/store/discovery.js +7 -7
  181. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/store/registry.js +4 -4
  182. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/store/tests/standalone-test.js +4 -4
  183. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/test-seraphine.js +1 -1
  184. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/update/checker.d.ts +1 -1
  185. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/update/checker.js +11 -11
  186. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/update/executor.js +1 -1
  187. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/update/index.d.ts +1 -1
  188. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/update/index.js +1 -1
  189. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/update/rate-limiter.js +1 -1
  190. package/v3/{@claude-flow → @odd-flow}/cli/dist/src/update/validator.js +11 -11
  191. package/v3/{@claude-flow → @odd-flow}/cli/package.json +5 -5
  192. package/v3/{@claude-flow → @odd-flow}/shared/README.md +35 -35
  193. package/v3/{@claude-flow → @odd-flow}/shared/package.json +1 -1
  194. package/v3/README.md +55 -55
  195. /package/v3/{@claude-flow → @odd-flow}/cli/bin/preinstall.cjs +0 -0
  196. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/appliance/rvfa-builder.d.ts +0 -0
  197. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/appliance/rvfa-builder.js +0 -0
  198. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/appliance/rvfa-distribution.d.ts +0 -0
  199. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/appliance/rvfa-distribution.js +0 -0
  200. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/appliance/rvfa-format.d.ts +0 -0
  201. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/appliance/rvfa-format.js +0 -0
  202. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/benchmarks/pretrain/index.d.ts +0 -0
  203. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/benchmarks/pretrain/index.js +0 -0
  204. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/agent-wasm.d.ts +0 -0
  205. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/agent.d.ts +0 -0
  206. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/analyze.d.ts +0 -0
  207. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/appliance-advanced.d.ts +0 -0
  208. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/appliance-advanced.js +0 -0
  209. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/appliance.d.ts +0 -0
  210. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/autopilot.d.ts +0 -0
  211. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/benchmark.d.ts +0 -0
  212. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/claims.d.ts +0 -0
  213. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/completions.d.ts +0 -0
  214. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/config.d.ts +0 -0
  215. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/daemon.d.ts +0 -0
  216. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/deployment.d.ts +0 -0
  217. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/doctor.d.ts +0 -0
  218. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/embeddings.d.ts +0 -0
  219. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/guidance.d.ts +0 -0
  220. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/hive-mind.d.ts +0 -0
  221. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/hooks.d.ts +0 -0
  222. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/init.d.ts +0 -0
  223. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/issues.d.ts +0 -0
  224. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/memory.d.ts +0 -0
  225. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/migrate.d.ts +0 -0
  226. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/neural.d.ts +0 -0
  227. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/performance.d.ts +0 -0
  228. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/plugins.d.ts +0 -0
  229. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/process.d.ts +0 -0
  230. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/providers.d.ts +0 -0
  231. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/route.d.ts +0 -0
  232. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/ruvector/backup.d.ts +0 -0
  233. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/ruvector/benchmark.d.ts +0 -0
  234. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/ruvector/index.d.ts +0 -0
  235. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/ruvector/init.d.ts +0 -0
  236. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/ruvector/migrate.d.ts +0 -0
  237. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/ruvector/optimize.d.ts +0 -0
  238. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/ruvector/status.d.ts +0 -0
  239. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/security.d.ts +0 -0
  240. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/session.d.ts +0 -0
  241. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/start.d.ts +0 -0
  242. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/status.d.ts +0 -0
  243. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/swarm.d.ts +0 -0
  244. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/task.d.ts +0 -0
  245. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/transfer-store.d.ts +0 -0
  246. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/workflow.d.ts +0 -0
  247. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/index.d.ts +0 -0
  248. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/infrastructure/in-memory-repositories.js +0 -0
  249. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/init/claudemd-generator.d.ts +0 -0
  250. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/init/executor.d.ts +0 -0
  251. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/init/index.d.ts +0 -0
  252. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/init/index.js +0 -0
  253. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/init/mcp-generator.d.ts +0 -0
  254. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/init/settings-generator.d.ts +0 -0
  255. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/init/statusline-generator.d.ts +0 -0
  256. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/init/types.js +0 -0
  257. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-client.d.ts +0 -0
  258. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-client.js +0 -0
  259. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/agent-tools.d.ts +0 -0
  260. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/agentdb-tools.d.ts +0 -0
  261. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/analyze-tools.d.ts +0 -0
  262. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/analyze-tools.js +0 -0
  263. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/config-tools.d.ts +0 -0
  264. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/coordination-tools.d.ts +0 -0
  265. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/embeddings-tools.d.ts +0 -0
  266. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/hive-mind-tools.d.ts +0 -0
  267. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/hooks-tools.d.ts +0 -0
  268. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/memory-tools.d.ts +0 -0
  269. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/performance-tools.d.ts +0 -0
  270. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/security-tools.d.ts +0 -0
  271. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/session-tools.d.ts +0 -0
  272. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/swarm-tools.d.ts +0 -0
  273. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/system-tools.d.ts +0 -0
  274. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/task-tools.d.ts +0 -0
  275. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/types.d.ts +0 -0
  276. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/types.js +0 -0
  277. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/workflow-tools.d.ts +0 -0
  278. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/memory/ewc-consolidation.d.ts +0 -0
  279. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/memory/ewc-consolidation.js +0 -0
  280. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/memory/intelligence.d.ts +0 -0
  281. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/memory/memory-bridge.d.ts +0 -0
  282. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/memory/memory-initializer.d.ts +0 -0
  283. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/memory/sona-optimizer.d.ts +0 -0
  284. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/memory/sona-optimizer.js +0 -0
  285. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/output.d.ts +0 -0
  286. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/output.js +0 -0
  287. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/parser.d.ts +0 -0
  288. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/parser.js +0 -0
  289. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/plugins/manager.d.ts +0 -0
  290. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/plugins/store/discovery.d.ts +0 -0
  291. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/plugins/store/index.d.ts +0 -0
  292. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/plugins/store/index.js +0 -0
  293. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/plugins/store/search.d.ts +0 -0
  294. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/plugins/store/search.js +0 -0
  295. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/plugins/store/types.d.ts +0 -0
  296. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/plugins/store/types.js +0 -0
  297. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/plugins/tests/demo-plugin-store.d.ts +0 -0
  298. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/plugins/tests/standalone-test.d.ts +0 -0
  299. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/plugins/tests/test-plugin-store.d.ts +0 -0
  300. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/prompt.d.ts +0 -0
  301. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/prompt.js +0 -0
  302. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/ast-analyzer.d.ts +0 -0
  303. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/ast-analyzer.js +0 -0
  304. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/coverage-router.d.ts +0 -0
  305. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/coverage-router.js +0 -0
  306. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/coverage-tools.d.ts +0 -0
  307. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/coverage-tools.js +0 -0
  308. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/diff-classifier.d.ts +0 -0
  309. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/diff-classifier.js +0 -0
  310. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/enhanced-model-router.d.ts +0 -0
  311. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/enhanced-model-router.js +0 -0
  312. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/flash-attention.d.ts +0 -0
  313. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/flash-attention.js +0 -0
  314. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/lora-adapter.d.ts +0 -0
  315. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/lora-adapter.js +0 -0
  316. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/model-router.d.ts +0 -0
  317. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/model-router.js +0 -0
  318. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/moe-router.d.ts +0 -0
  319. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/moe-router.js +0 -0
  320. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/q-learning-router.d.ts +0 -0
  321. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/q-learning-router.js +0 -0
  322. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/semantic-router.d.ts +0 -0
  323. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/semantic-router.js +0 -0
  324. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/vector-db.d.ts +0 -0
  325. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/vector-db.js +0 -0
  326. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/services/agentic-flow-bridge.d.ts +0 -0
  327. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/services/agentic-flow-bridge.js +0 -0
  328. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/services/claim-service.d.ts +0 -0
  329. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/services/config-file-manager.d.ts +0 -0
  330. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/services/container-worker-pool.d.ts +0 -0
  331. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/services/headless-worker-executor.d.ts +0 -0
  332. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/services/index.d.ts +0 -0
  333. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/services/index.js +0 -0
  334. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/services/registry-api.d.ts +0 -0
  335. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/services/ruvector-training.d.ts +0 -0
  336. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/services/ruvector-training.js +0 -0
  337. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/services/worker-queue.d.ts +0 -0
  338. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/suggest.d.ts +0 -0
  339. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/anonymization/index.d.ts +0 -0
  340. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/anonymization/index.js +0 -0
  341. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/deploy-seraphine.d.ts +0 -0
  342. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/deploy-seraphine.js +0 -0
  343. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/export.d.ts +0 -0
  344. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/export.js +0 -0
  345. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/index.d.ts +0 -0
  346. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/index.js +0 -0
  347. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/ipfs/client.d.ts +0 -0
  348. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/ipfs/client.js +0 -0
  349. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/models/seraphine.d.ts +0 -0
  350. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/serialization/cfp.d.ts +0 -0
  351. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/storage/index.d.ts +0 -0
  352. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/storage/index.js +0 -0
  353. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/store/discovery.d.ts +0 -0
  354. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/store/download.d.ts +0 -0
  355. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/store/download.js +0 -0
  356. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/store/index.d.ts +0 -0
  357. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/store/index.js +0 -0
  358. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/store/publish.d.ts +0 -0
  359. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/store/publish.js +0 -0
  360. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/store/registry.d.ts +0 -0
  361. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/store/search.d.ts +0 -0
  362. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/store/search.js +0 -0
  363. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/store/tests/standalone-test.d.ts +0 -0
  364. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/store/types.d.ts +0 -0
  365. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/store/types.js +0 -0
  366. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/test-seraphine.d.ts +0 -0
  367. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/tests/test-store.d.ts +0 -0
  368. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/tests/test-store.js +0 -0
  369. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/types.d.ts +0 -0
  370. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/types.js +0 -0
  371. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/types.d.ts +0 -0
  372. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/types.js +0 -0
  373. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/update/executor.d.ts +0 -0
  374. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/update/rate-limiter.d.ts +0 -0
  375. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/update/validator.d.ts +0 -0
  376. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/utils/path-validation.d.ts +0 -0
  377. /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/utils/path-validation.js +0 -0
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Watchdog Dogs — Intervention Layer
3
+ * Listens for terminate events from the Deacon and carries out
4
+ * agent termination + orphan task recovery.
5
+ */
6
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
7
+ import { dirname, join } from 'node:path';
8
+ import { EventEmitter } from 'node:events';
9
+ export class WatchdogDogs extends EventEmitter {
10
+ projectRoot;
11
+ agentStorePath;
12
+ taskStorePath;
13
+ eventsPath;
14
+ constructor(deacon, projectRoot = process.cwd()) {
15
+ super();
16
+ this.projectRoot = projectRoot;
17
+ const base = join(projectRoot, '.odd-flow');
18
+ this.agentStorePath = join(base, 'agents', 'store.json');
19
+ this.taskStorePath = join(base, 'tasks', 'store.json');
20
+ this.eventsPath = join(base, 'watchdog', 'events.json');
21
+ deacon.on('agent:terminate', (p) => {
22
+ this.handleTerminate(p.agentId, p.reason);
23
+ });
24
+ deacon.on('swarm:stalled', (p) => {
25
+ this.appendEvent({ type: 'swarm-stalled', reason: p.reason, timestamp: new Date().toISOString() });
26
+ });
27
+ }
28
+ handleTerminate(agentId, reason) {
29
+ const now = new Date().toISOString();
30
+ const agentStore = this.readJson(this.agentStorePath, { agents: {}, version: '1' });
31
+ const agent = agentStore.agents[agentId];
32
+ if (agent) {
33
+ agent.status = 'terminated';
34
+ agent.terminatedBy = 'watchdog';
35
+ agent.terminatedAt = now;
36
+ }
37
+ const taskStore = this.readJson(this.taskStorePath, { tasks: {}, version: '1' });
38
+ const orphanedTaskIds = [];
39
+ for (const task of Object.values(taskStore.tasks)) {
40
+ if (task.assignedAgent === agentId && task.status === 'in_progress') {
41
+ const rid = `${task.taskId}-recovery-${Date.now()}`;
42
+ taskStore.tasks[rid] = {
43
+ taskId: rid, name: task.name, description: task.description,
44
+ status: 'ready', createdAt: now,
45
+ metadata: { orphanedFrom: agentId, orphanedAt: now },
46
+ };
47
+ orphanedTaskIds.push(rid);
48
+ }
49
+ }
50
+ this.writeJson(this.agentStorePath, agentStore);
51
+ this.writeJson(this.taskStorePath, taskStore);
52
+ const event = { type: 'agent-terminated', agentId, reason, timestamp: now, orphanedTasks: orphanedTaskIds };
53
+ this.appendEvent(event);
54
+ this.emit('watchdog:action-taken', event);
55
+ }
56
+ getEvents() {
57
+ return this.readJson(this.eventsPath, []);
58
+ }
59
+ appendEvent(event) {
60
+ const events = this.getEvents();
61
+ events.push(event);
62
+ this.writeJson(this.eventsPath, events);
63
+ }
64
+ readJson(filePath, fallback) {
65
+ if (!existsSync(filePath))
66
+ return fallback;
67
+ try {
68
+ return JSON.parse(readFileSync(filePath, 'utf-8'));
69
+ }
70
+ catch {
71
+ return fallback;
72
+ }
73
+ }
74
+ writeJson(filePath, data) {
75
+ const dir = dirname(filePath);
76
+ if (!existsSync(dir))
77
+ mkdirSync(dir, { recursive: true, mode: 0o700 });
78
+ writeFileSync(filePath, JSON.stringify(data, null, 2) + '\n', { mode: 0o600 });
79
+ }
80
+ }
81
+ //# sourceMappingURL=watchdog-dogs.js.map
@@ -0,0 +1,38 @@
1
+ /** Watchdog Witness — heartbeat monitoring layer for the three-tier watchdog system. */
2
+ import { EventEmitter } from 'node:events';
3
+ export interface AgentRecord {
4
+ agentId: string;
5
+ agentType: string;
6
+ status: 'idle' | 'busy' | 'terminated' | 'unresponsive';
7
+ health: number;
8
+ taskCount: number;
9
+ config: Record<string, unknown>;
10
+ createdAt: string;
11
+ lastHeartbeat?: number;
12
+ }
13
+ export interface WitnessConfig {
14
+ checkInterval: number;
15
+ heartbeatThreshold: number;
16
+ enabled: boolean;
17
+ }
18
+ export declare const DEFAULT_WITNESS_CONFIG: WitnessConfig;
19
+ export interface UnresponsiveEvent {
20
+ agentId: string;
21
+ missedBeats: number;
22
+ lastHeartbeat: number | undefined;
23
+ }
24
+ export interface SwarmStalledEvent {
25
+ agentIds: string[];
26
+ timestamp: number;
27
+ }
28
+ export declare class WatchdogWitness extends EventEmitter {
29
+ private readonly config;
30
+ private readonly loadAgents;
31
+ private timer;
32
+ constructor(config: Partial<WitnessConfig>, loadAgents: () => Record<string, AgentRecord>);
33
+ start(): void;
34
+ stop(): void;
35
+ isRunning(): boolean;
36
+ private check;
37
+ }
38
+ //# sourceMappingURL=watchdog-witness.d.ts.map
@@ -0,0 +1,57 @@
1
+ /** Watchdog Witness — heartbeat monitoring layer for the three-tier watchdog system. */
2
+ import { EventEmitter } from 'node:events';
3
+ export const DEFAULT_WITNESS_CONFIG = {
4
+ checkInterval: 15000,
5
+ heartbeatThreshold: 60000,
6
+ enabled: true,
7
+ };
8
+ export class WatchdogWitness extends EventEmitter {
9
+ config;
10
+ loadAgents;
11
+ timer = null;
12
+ constructor(config, loadAgents) {
13
+ super();
14
+ this.config = { ...DEFAULT_WITNESS_CONFIG, ...config };
15
+ this.loadAgents = loadAgents;
16
+ }
17
+ start() {
18
+ if (this.timer || !this.config.enabled)
19
+ return;
20
+ this.timer = setInterval(() => this.check(), this.config.checkInterval);
21
+ }
22
+ stop() {
23
+ if (!this.timer)
24
+ return;
25
+ clearInterval(this.timer);
26
+ this.timer = null;
27
+ }
28
+ isRunning() { return this.timer !== null; }
29
+ check() {
30
+ const agents = this.loadAgents();
31
+ const now = Date.now();
32
+ const activeIds = [];
33
+ const unresponsiveIds = [];
34
+ for (const agent of Object.values(agents)) {
35
+ if (agent.status !== 'idle' && agent.status !== 'busy')
36
+ continue;
37
+ activeIds.push(agent.agentId);
38
+ const last = agent.lastHeartbeat ?? 0;
39
+ const delta = now - last;
40
+ if (delta > this.config.heartbeatThreshold) {
41
+ unresponsiveIds.push(agent.agentId);
42
+ this.emit('agent:unresponsive', {
43
+ agentId: agent.agentId,
44
+ missedBeats: Math.floor(delta / this.config.heartbeatThreshold),
45
+ lastHeartbeat: agent.lastHeartbeat,
46
+ });
47
+ }
48
+ }
49
+ if (activeIds.length > 0 && activeIds.length === unresponsiveIds.length) {
50
+ this.emit('swarm:stalled', {
51
+ agentIds: unresponsiveIds,
52
+ timestamp: now,
53
+ });
54
+ }
55
+ }
56
+ }
57
+ //# sourceMappingURL=watchdog-witness.js.map
@@ -94,7 +94,7 @@ export declare class WorkerDaemon extends EventEmitter {
94
94
  */
95
95
  static getEffectiveCpuCount(): number;
96
96
  /**
97
- * Read daemon-specific config from .claude-flow/config.json
97
+ * Read daemon-specific config from .odd-flow/config.json
98
98
  * Supports dot-notation keys like 'daemon.resourceThresholds.maxCpuLoad'
99
99
  */
100
100
  private readDaemonConfigFromFile;
@@ -49,8 +49,8 @@ export class WorkerDaemon extends EventEmitter {
49
49
  super();
50
50
  this.projectRoot = projectRoot;
51
51
  this.originalConfig = config;
52
- const claudeFlowDir = join(projectRoot, '.claude-flow');
53
- // Read daemon config from .claude-flow/config.json (Layer B)
52
+ const claudeFlowDir = join(projectRoot, '.odd-flow');
53
+ // Read daemon config from .odd-flow/config.json (Layer B)
54
54
  const fileConfig = this.readDaemonConfigFromFile(claudeFlowDir);
55
55
  // CPU-proportional smart default instead of hardcoded 2.0
56
56
  const cpuCount = WorkerDaemon.getEffectiveCpuCount();
@@ -169,7 +169,7 @@ export class WorkerDaemon extends EventEmitter {
169
169
  return cpus().length || 1;
170
170
  }
171
171
  /**
172
- * Read daemon-specific config from .claude-flow/config.json
172
+ * Read daemon-specific config from .odd-flow/config.json
173
173
  * Supports dot-notation keys like 'daemon.resourceThresholds.maxCpuLoad'
174
174
  */
175
175
  readDaemonConfigFromFile(claudeFlowDir) {
@@ -332,7 +332,7 @@ export class WorkerDaemon extends EventEmitter {
332
332
  * Get the PID file path for singleton enforcement (#1395 Bug 3).
333
333
  */
334
334
  get pidFile() {
335
- return join(this.projectRoot, '.claude-flow', 'daemon.pid');
335
+ return join(this.projectRoot, '.odd-flow', 'daemon.pid');
336
336
  }
337
337
  /**
338
338
  * Check if another daemon instance is already running.
@@ -362,7 +362,7 @@ export class WorkerDaemon extends EventEmitter {
362
362
  * Write PID file for singleton enforcement.
363
363
  */
364
364
  writePidFile() {
365
- const dir = join(this.projectRoot, '.claude-flow');
365
+ const dir = join(this.projectRoot, '.odd-flow');
366
366
  if (!existsSync(dir))
367
367
  mkdirSync(dir, { recursive: true });
368
368
  writeFileSync(this.pidFile, String(process.pid), 'utf-8');
@@ -654,8 +654,8 @@ export class WorkerDaemon extends EventEmitter {
654
654
  // Worker implementations
655
655
  async runMapWorker() {
656
656
  // Scan project structure and update metrics
657
- const metricsFile = join(this.projectRoot, '.claude-flow', 'metrics', 'codebase-map.json');
658
- const metricsDir = join(this.projectRoot, '.claude-flow', 'metrics');
657
+ const metricsFile = join(this.projectRoot, '.odd-flow', 'metrics', 'codebase-map.json');
658
+ const metricsDir = join(this.projectRoot, '.odd-flow', 'metrics');
659
659
  if (!existsSync(metricsDir)) {
660
660
  mkdirSync(metricsDir, { recursive: true });
661
661
  }
@@ -666,7 +666,7 @@ export class WorkerDaemon extends EventEmitter {
666
666
  hasPackageJson: existsSync(join(this.projectRoot, 'package.json')),
667
667
  hasTsConfig: existsSync(join(this.projectRoot, 'tsconfig.json')),
668
668
  hasClaudeConfig: existsSync(join(this.projectRoot, '.claude')),
669
- hasClaudeFlow: existsSync(join(this.projectRoot, '.claude-flow')),
669
+ hasClaudeFlow: existsSync(join(this.projectRoot, '.odd-flow')),
670
670
  },
671
671
  scannedAt: Date.now(),
672
672
  };
@@ -678,8 +678,8 @@ export class WorkerDaemon extends EventEmitter {
678
678
  */
679
679
  async runAuditWorkerLocal() {
680
680
  // Basic security checks
681
- const auditFile = join(this.projectRoot, '.claude-flow', 'metrics', 'security-audit.json');
682
- const metricsDir = join(this.projectRoot, '.claude-flow', 'metrics');
681
+ const auditFile = join(this.projectRoot, '.odd-flow', 'metrics', 'security-audit.json');
682
+ const metricsDir = join(this.projectRoot, '.odd-flow', 'metrics');
683
683
  if (!existsSync(metricsDir)) {
684
684
  mkdirSync(metricsDir, { recursive: true });
685
685
  }
@@ -703,8 +703,8 @@ export class WorkerDaemon extends EventEmitter {
703
703
  */
704
704
  async runOptimizeWorkerLocal() {
705
705
  // Update performance metrics
706
- const optimizeFile = join(this.projectRoot, '.claude-flow', 'metrics', 'performance.json');
707
- const metricsDir = join(this.projectRoot, '.claude-flow', 'metrics');
706
+ const optimizeFile = join(this.projectRoot, '.odd-flow', 'metrics', 'performance.json');
707
+ const metricsDir = join(this.projectRoot, '.odd-flow', 'metrics');
708
708
  if (!existsSync(metricsDir)) {
709
709
  mkdirSync(metricsDir, { recursive: true });
710
710
  }
@@ -724,8 +724,8 @@ export class WorkerDaemon extends EventEmitter {
724
724
  }
725
725
  async runConsolidateWorker() {
726
726
  // Memory consolidation - clean up old patterns
727
- const consolidateFile = join(this.projectRoot, '.claude-flow', 'metrics', 'consolidation.json');
728
- const metricsDir = join(this.projectRoot, '.claude-flow', 'metrics');
727
+ const consolidateFile = join(this.projectRoot, '.odd-flow', 'metrics', 'consolidation.json');
728
+ const metricsDir = join(this.projectRoot, '.odd-flow', 'metrics');
729
729
  if (!existsSync(metricsDir)) {
730
730
  mkdirSync(metricsDir, { recursive: true });
731
731
  }
@@ -743,8 +743,8 @@ export class WorkerDaemon extends EventEmitter {
743
743
  */
744
744
  async runTestGapsWorkerLocal() {
745
745
  // Check for test coverage gaps
746
- const testGapsFile = join(this.projectRoot, '.claude-flow', 'metrics', 'test-gaps.json');
747
- const metricsDir = join(this.projectRoot, '.claude-flow', 'metrics');
746
+ const testGapsFile = join(this.projectRoot, '.odd-flow', 'metrics', 'test-gaps.json');
747
+ const metricsDir = join(this.projectRoot, '.odd-flow', 'metrics');
748
748
  if (!existsSync(metricsDir)) {
749
749
  mkdirSync(metricsDir, { recursive: true });
750
750
  }
@@ -823,8 +823,8 @@ export class WorkerDaemon extends EventEmitter {
823
823
  * Local benchmark worker
824
824
  */
825
825
  async runBenchmarkWorkerLocal() {
826
- const benchmarkFile = join(this.projectRoot, '.claude-flow', 'metrics', 'benchmark.json');
827
- const metricsDir = join(this.projectRoot, '.claude-flow', 'metrics');
826
+ const benchmarkFile = join(this.projectRoot, '.odd-flow', 'metrics', 'benchmark.json');
827
+ const metricsDir = join(this.projectRoot, '.odd-flow', 'metrics');
828
828
  if (!existsSync(metricsDir)) {
829
829
  mkdirSync(metricsDir, { recursive: true });
830
830
  }
@@ -23,7 +23,7 @@ import { randomUUID } from 'crypto';
23
23
  // ============================================
24
24
  const DEFAULT_CONFIG = {
25
25
  redisUrl: 'redis://localhost:6379',
26
- queuePrefix: 'claude-flow:queue',
26
+ queuePrefix: 'odd-flow:queue',
27
27
  defaultTimeoutMs: 300000, // 5 minutes
28
28
  maxRetries: 3,
29
29
  resultTtlSeconds: 86400, // 24 hours
@@ -172,7 +172,7 @@ export function suggestCommand(unknownCommand, availableCommands) {
172
172
  if (suggestions.length === 0) {
173
173
  return {
174
174
  suggestions: [],
175
- message: 'Run "claude-flow --help" to see available commands.'
175
+ message: 'Run "odd-flow --help" to see available commands.'
176
176
  };
177
177
  }
178
178
  if (suggestions.length === 1) {
@@ -2,7 +2,7 @@
2
2
  * IPFS Upload Module
3
3
  * Real upload support via web3.storage, Pinata, or local IPFS
4
4
  *
5
- * @module @claude-flow/cli/transfer/ipfs/upload
5
+ * @module @odd-flow/cli/transfer/ipfs/upload
6
6
  * @version 3.0.0
7
7
  */
8
8
  import type { PinningService } from '../types.js';
@@ -2,7 +2,7 @@
2
2
  * IPFS Upload Module
3
3
  * Real upload support via web3.storage, Pinata, or local IPFS
4
4
  *
5
- * @module @claude-flow/cli/transfer/ipfs/upload
5
+ * @module @odd-flow/cli/transfer/ipfs/upload
6
6
  * @version 3.0.0
7
7
  */
8
8
  import * as crypto from 'crypto';
@@ -19,7 +19,7 @@ export const SERAPHINE_METADATA = {
19
19
  displayName: 'Seraphine Genesis',
20
20
  description: 'The foundational Claude Flow pattern model. Contains core routing patterns, complexity heuristics, and coordination trajectories for multi-agent swarms.',
21
21
  author: {
22
- id: 'claude-flow-team',
22
+ id: 'odd-flow-team',
23
23
  displayName: 'Claude Flow Team',
24
24
  },
25
25
  license: 'MIT',
@@ -33,7 +33,7 @@ export const SERAPHINE_METADATA = {
33
33
  'hello-world',
34
34
  ],
35
35
  language: 'typescript',
36
- framework: 'claude-flow',
36
+ framework: 'odd-flow',
37
37
  };
38
38
  /**
39
39
  * Core routing patterns for Seraphine
@@ -5,7 +5,7 @@
5
5
  import * as crypto from 'crypto';
6
6
  // Version info
7
7
  const CFP_VERSION = '1.0.0';
8
- const GENERATOR = 'claude-flow@3.0.0-alpha';
8
+ const GENERATOR = 'odd-flow@3.0.0-alpha';
9
9
  /**
10
10
  * Create a new CFP document
11
11
  */
@@ -2,7 +2,7 @@
2
2
  * Google Cloud Storage Backend
3
3
  * Real storage implementation using gcloud CLI or GCS APIs
4
4
  *
5
- * @module @claude-flow/cli/transfer/storage/gcs
5
+ * @module @odd-flow/cli/transfer/storage/gcs
6
6
  * @version 3.0.0
7
7
  */
8
8
  /**
@@ -2,7 +2,7 @@
2
2
  * Google Cloud Storage Backend
3
3
  * Real storage implementation using gcloud CLI or GCS APIs
4
4
  *
5
- * @module @claude-flow/cli/transfer/storage/gcs
5
+ * @module @odd-flow/cli/transfer/storage/gcs
6
6
  * @version 3.0.0
7
7
  */
8
8
  import * as crypto from 'crypto';
@@ -20,7 +20,7 @@ export function getGCSConfig() {
20
20
  bucket,
21
21
  projectId: process.env.GCS_PROJECT_ID || process.env.GOOGLE_CLOUD_PROJECT,
22
22
  keyFile: process.env.GOOGLE_APPLICATION_CREDENTIALS,
23
- prefix: process.env.GCS_PREFIX || 'claude-flow-patterns',
23
+ prefix: process.env.GCS_PREFIX || 'odd-flow-patterns',
24
24
  };
25
25
  }
26
26
  /**
@@ -93,7 +93,7 @@ export async function uploadToGCS(content, options = {}) {
93
93
  console.log(`[GCS] Uploading to gs://${config.bucket}/${objectPath}...`);
94
94
  // Write content to temp file
95
95
  const tempDir = process.env.TMPDIR || '/tmp';
96
- const tempFile = path.join(tempDir, `claude-flow-upload-${Date.now()}.json`);
96
+ const tempFile = path.join(tempDir, `odd-flow-upload-${Date.now()}.json`);
97
97
  fs.writeFileSync(tempFile, content);
98
98
  try {
99
99
  // Build gcloud args (array form prevents shell injection)
@@ -152,7 +152,7 @@ export async function downloadFromGCS(uri, config) {
152
152
  console.log(`[GCS] Downloading from ${uri}...`);
153
153
  // Write to temp file first
154
154
  const tempDir = process.env.TMPDIR || '/tmp';
155
- const tempFile = path.join(tempDir, `claude-flow-download-${Date.now()}.json`);
155
+ const tempFile = path.join(tempDir, `odd-flow-download-${Date.now()}.json`);
156
156
  try {
157
157
  // Download using gcloud storage cp (array form prevents shell injection)
158
158
  const downloadArgs = ['storage', 'cp', uri, tempFile];
@@ -230,7 +230,7 @@ export class PatternDiscovery {
230
230
  try {
231
231
  const { hasGCSCredentials, downloadFromGCS } = await import('../storage/gcs.js');
232
232
  if (hasGCSCredentials()) {
233
- const gcsUri = `gs://claude-flow-patterns/registry/${cid}.json`;
233
+ const gcsUri = `gs://odd-flow-patterns/registry/${cid}.json`;
234
234
  console.log(`[Discovery] Trying GCS: ${gcsUri}`);
235
235
  const buffer = await downloadFromGCS(gcsUri);
236
236
  if (buffer) {
@@ -267,7 +267,7 @@ export class PatternDiscovery {
267
267
  size: 8808,
268
268
  checksum: '8df766b89d044815c84796e7f33ba30d7806bff7eb2a75e2a0b7d26b64c45231',
269
269
  author: {
270
- id: 'claude-flow-team',
270
+ id: 'odd-flow-team',
271
271
  displayName: 'Claude Flow Team',
272
272
  verified: true,
273
273
  patterns: 1,
@@ -277,7 +277,7 @@ export class PatternDiscovery {
277
277
  categories: ['routing', 'coordination'],
278
278
  tags: ['genesis', 'foundational', 'routing', 'swarm', 'coordination', 'multi-agent', 'hello-world'],
279
279
  language: 'typescript',
280
- framework: 'claude-flow',
280
+ framework: 'odd-flow',
281
281
  downloads: 1000,
282
282
  rating: 5.0,
283
283
  ratingCount: 42,
@@ -287,7 +287,7 @@ export class PatternDiscovery {
287
287
  verified: true,
288
288
  trustLevel: 'verified',
289
289
  signature: 'ed25519:genesis-pattern-signature',
290
- publicKey: 'ed25519:claude-flow-team-key',
290
+ publicKey: 'ed25519:odd-flow-team-key',
291
291
  },
292
292
  ],
293
293
  categories: [
@@ -299,9 +299,9 @@ export class PatternDiscovery {
299
299
  ],
300
300
  authors: [
301
301
  {
302
- id: 'claude-flow-team',
302
+ id: 'odd-flow-team',
303
303
  displayName: 'Claude Flow Team',
304
- publicKey: 'ed25519:claude-flow-team-key',
304
+ publicKey: 'ed25519:odd-flow-team-key',
305
305
  verified: true,
306
306
  patterns: 1,
307
307
  totalDownloads: 1000,
@@ -314,7 +314,7 @@ export class PatternDiscovery {
314
314
  trending: ['seraphine-genesis-v1'],
315
315
  newest: ['seraphine-genesis-v1'],
316
316
  registrySignature: crypto.randomBytes(32).toString('hex'),
317
- registryPublicKey: 'ed25519:claude-flow-registry-key',
317
+ registryPublicKey: 'ed25519:odd-flow-registry-key',
318
318
  };
319
319
  }
320
320
  /**
@@ -12,11 +12,11 @@ export const REGISTRY_VERSION = '1.0.0';
12
12
  */
13
13
  export const BOOTSTRAP_REGISTRIES = [
14
14
  {
15
- name: 'claude-flow-official',
15
+ name: 'odd-flow-official',
16
16
  description: 'Official Claude Flow pattern registry',
17
17
  ipnsName: 'k51qzi5uqu5dj0w8q1xvqn8ql2g4p7x8qpk9vz3xm1y2n3o4p5q6r7s8t9u0v',
18
18
  gateway: 'https://w3s.link',
19
- publicKey: 'ed25519:claude-flow-registry-key',
19
+ publicKey: 'ed25519:odd-flow-registry-key',
20
20
  trusted: true,
21
21
  },
22
22
  {
@@ -33,10 +33,10 @@ export const BOOTSTRAP_REGISTRIES = [
33
33
  */
34
34
  export const DEFAULT_STORE_CONFIG = {
35
35
  registries: BOOTSTRAP_REGISTRIES,
36
- defaultRegistry: 'claude-flow-official',
36
+ defaultRegistry: 'odd-flow-official',
37
37
  gateway: 'https://w3s.link',
38
38
  timeout: 30000,
39
- cacheDir: '.claude-flow/patterns/cache',
39
+ cacheDir: '.odd-flow/patterns/cache',
40
40
  cacheExpiry: 3600000, // 1 hour
41
41
  requireVerification: false,
42
42
  minTrustLevel: 'unverified',
@@ -175,10 +175,10 @@ async function main() {
175
175
  console.log(' 🎉 All tests passed! Pattern Store is working correctly.');
176
176
  console.log('');
177
177
  console.log(' Available CLI Commands:');
178
- console.log(' npx @claude-flow/cli patterns list');
179
- console.log(' npx @claude-flow/cli patterns list --featured');
180
- console.log(' npx @claude-flow/cli patterns search -q "agent"');
181
- console.log(' npx @claude-flow/cli patterns info -n <pattern-id>');
178
+ console.log(' npx @odd-flow/cli patterns list');
179
+ console.log(' npx @odd-flow/cli patterns list --featured');
180
+ console.log(' npx @odd-flow/cli patterns search -q "agent"');
181
+ console.log(' npx @odd-flow/cli patterns info -n <pattern-id>');
182
182
  console.log('');
183
183
  }
184
184
  process.exit(failed > 0 ? 1 : 0);
@@ -95,7 +95,7 @@ async function test() {
95
95
  console.log('🎉 All module tests passed!');
96
96
  console.log('');
97
97
  console.log('Next steps:');
98
- console.log(' 1. Compile TypeScript: cd v3/@claude-flow/cli && npm run build');
98
+ console.log(' 1. Compile TypeScript: cd v3/@odd-flow/cli && npm run build');
99
99
  console.log(' 2. Run deployment: npx ts-node src/transfer/deploy-seraphine.ts --to-ipfs');
100
100
  console.log('');
101
101
  }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Update checker for @claude-flow packages
2
+ * Update checker for @odd-flow packages
3
3
  * Queries npm registry and compares versions
4
4
  */
5
5
  export interface UpdateCheckResult {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Update checker for @claude-flow packages
2
+ * Update checker for @odd-flow packages
3
3
  * Queries npm registry and compares versions
4
4
  */
5
5
  import * as semver from 'semver';
@@ -13,21 +13,21 @@ const DEFAULT_CONFIG = {
13
13
  major: false,
14
14
  },
15
15
  priority: {
16
- '@claude-flow/security': 'critical',
17
- '@claude-flow/cli': 'high',
18
- '@claude-flow/embeddings': 'normal',
19
- '@claude-flow/integration': 'normal',
20
- '@claude-flow/testing': 'low',
16
+ '@odd-flow/security': 'critical',
17
+ '@odd-flow/cli': 'high',
18
+ '@odd-flow/embeddings': 'normal',
19
+ '@odd-flow/integration': 'normal',
20
+ '@odd-flow/testing': 'low',
21
21
  },
22
22
  exclude: [],
23
23
  };
24
24
  // Packages to check for updates
25
25
  const CLAUDE_FLOW_PACKAGES = [
26
- '@claude-flow/cli',
27
- '@claude-flow/embeddings',
28
- '@claude-flow/security',
29
- '@claude-flow/integration',
30
- '@claude-flow/testing',
26
+ '@odd-flow/cli',
27
+ '@odd-flow/embeddings',
28
+ '@odd-flow/security',
29
+ '@odd-flow/integration',
30
+ '@odd-flow/testing',
31
31
  ];
32
32
  async function fetchPackageInfo(packageName) {
33
33
  try {
@@ -7,7 +7,7 @@ import * as fs from 'fs';
7
7
  import * as path from 'path';
8
8
  import * as os from 'os';
9
9
  import { validateUpdate } from './validator.js';
10
- const HISTORY_FILE = path.join(os.homedir(), '.claude-flow', 'update-history.json');
10
+ const HISTORY_FILE = path.join(os.homedir(), '.odd-flow', 'update-history.json');
11
11
  const MAX_HISTORY_ENTRIES = 100;
12
12
  function ensureDir() {
13
13
  const dir = path.dirname(HISTORY_FILE);
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Auto-update system for @claude-flow packages
2
+ * Auto-update system for odd-flow packages
3
3
  *
4
4
  * Features:
5
5
  * - Rate-limited update checks (24h default)
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Auto-update system for @claude-flow packages
2
+ * Auto-update system for odd-flow packages
3
3
  *
4
4
  * Features:
5
5
  * - Rate-limited update checks (24h default)
@@ -5,7 +5,7 @@
5
5
  import * as fs from 'fs';
6
6
  import * as path from 'path';
7
7
  import * as os from 'os';
8
- const STATE_FILE = path.join(os.homedir(), '.claude-flow', 'update-state.json');
8
+ const STATE_FILE = path.join(os.homedir(), '.odd-flow', 'update-state.json');
9
9
  const DEFAULT_INTERVAL_HOURS = 24;
10
10
  const MAX_CHECKS_PER_DAY = 10;
11
11
  function ensureDir() {
@@ -3,31 +3,31 @@
3
3
  * Ensures updates don't break the ecosystem
4
4
  */
5
5
  import * as semver from 'semver';
6
- // Known compatibility matrix between @claude-flow packages
6
+ // Known compatibility matrix between @odd-flow packages
7
7
  const COMPATIBILITY_MATRIX = {
8
- '@claude-flow/cli': {
9
- '@claude-flow/embeddings': { minVersion: '3.0.0-alpha.1' },
10
- '@claude-flow/security': { minVersion: '3.0.0-alpha.1' },
11
- '@claude-flow/integration': { minVersion: '3.0.0-alpha.1' },
8
+ '@odd-flow/cli': {
9
+ '@odd-flow/embeddings': { minVersion: '3.0.0-alpha.1' },
10
+ '@odd-flow/security': { minVersion: '3.0.0-alpha.1' },
11
+ '@odd-flow/integration': { minVersion: '3.0.0-alpha.1' },
12
12
  },
13
- '@claude-flow/embeddings': {
14
- '@claude-flow/cli': { minVersion: '3.0.0-alpha.50' },
13
+ '@odd-flow/embeddings': {
14
+ '@odd-flow/cli': { minVersion: '3.0.0-alpha.50' },
15
15
  },
16
- '@claude-flow/integration': {
17
- '@claude-flow/cli': { minVersion: '3.0.0-alpha.70' },
16
+ '@odd-flow/integration': {
17
+ '@odd-flow/cli': { minVersion: '3.0.0-alpha.70' },
18
18
  'agentic-flow': { minVersion: '3.0.0-alpha.1' },
19
19
  },
20
20
  };
21
21
  // Known breaking changes by version
22
22
  const BREAKING_CHANGES = {
23
- '@claude-flow/cli': {
23
+ '@odd-flow/cli': {
24
24
  '3.0.0': [
25
25
  'Memory API changed from key-value to vector-based',
26
26
  'Hooks system completely redesigned',
27
27
  'Agent spawning now requires type parameter',
28
28
  ],
29
29
  },
30
- '@claude-flow/embeddings': {
30
+ '@odd-flow/embeddings': {
31
31
  '3.0.0': [
32
32
  'Switched from better-sqlite3 to sql.js',
33
33
  'New initialization required with initEmbeddings()',