@monoes/monomindcli 2.9.22 → 2.9.23

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 (486) hide show
  1. package/.claude/agents/consensus/quorum-manager.md +35 -54
  2. package/.claude/agents/core/coordinator.md +14 -18
  3. package/.claude/agents/core/researcher.md +1 -1
  4. package/.claude/agents/github/issue-tracker.md +3 -3
  5. package/.claude/agents/github/{code-review-swarm.md → monoswarm-code-review.md} +1 -1
  6. package/.claude/agents/github/{swarm-issue.md → monoswarm-issue.md} +1 -1
  7. package/.claude/agents/github/{multi-repo-swarm.md → monoswarm-multi-repo.md} +1 -1
  8. package/.claude/agents/github/{swarm-pr.md → monoswarm-pr.md} +1 -1
  9. package/.claude/agents/github/pr-manager.md +1 -1
  10. package/.claude/agents/github/release-manager.md +1 -1
  11. package/.claude/agents/github/repo-architect.md +1 -1
  12. package/.claude/agents/github/sync-coordinator.md +4 -4
  13. package/.claude/agents/{hive-mind → monoswarm}/collective-intelligence-coordinator.md +9 -16
  14. package/.claude/agents/{swarm → monoswarm}/mesh-coordinator.md +19 -24
  15. package/.claude/agents/{hive-mind/swarm-memory-manager.md → monoswarm/monoswarm-memory-manager.md} +1 -1
  16. package/.claude/agents/templates/{coordinator-swarm-init.md → coordinator-monoswarm-init.md} +1 -1
  17. package/.claude/agents/testing/{tdd-london-swarm.md → tdd-london-monoswarm.md} +2 -2
  18. package/.claude/commands/agents/agent-coordination.md +3 -3
  19. package/.claude/commands/agents/agent-types.md +1 -1
  20. package/.claude/commands/automation/self-healing.md +1 -1
  21. package/.claude/commands/automation/smart-spawn.md +1 -1
  22. package/.claude/commands/coordination/README.md +1 -1
  23. package/.claude/commands/coordination/{swarm-init.md → monoswarm-init.md} +2 -2
  24. package/.claude/commands/coordination/task-orchestrate.md +4 -4
  25. package/.claude/commands/github/README.md +1 -1
  26. package/.claude/commands/github/issue-tracker.md +2 -2
  27. package/.claude/commands/github/pr-manager.md +1 -1
  28. package/.claude/commands/github/release-manager.md +1 -1
  29. package/.claude/commands/github/repo-architect.md +1 -1
  30. package/.claude/commands/github/sync-coordinator.md +2 -2
  31. package/.claude/commands/hooks/README.md +1 -2
  32. package/.claude/commands/hooks/overview.md +1 -2
  33. package/.claude/commands/hooks/setup.md +0 -3
  34. package/.claude/commands/mastermind/createtask.md +2 -2
  35. package/.claude/commands/mastermind/do.md +3 -3
  36. package/.claude/commands/mastermind/help.md +2 -2
  37. package/.claude/commands/mastermind/ideate.md +1 -1
  38. package/.claude/commands/mastermind/improve.md +1 -1
  39. package/.claude/commands/mastermind/memory.md +2 -2
  40. package/.claude/commands/mastermind/{swarm.md → monoswarm.md} +13 -26
  41. package/.claude/commands/mastermind/topology.md +1 -1
  42. package/.claude/commands/memory/README.md +2 -2
  43. package/.claude/commands/memory/memory-search.md +1 -1
  44. package/.claude/commands/monoswarm/README.md +59 -0
  45. package/.claude/commands/monoswarm/consensus.md +61 -0
  46. package/.claude/commands/monoswarm/init.md +68 -0
  47. package/.claude/commands/monoswarm/memory.md +55 -0
  48. package/.claude/commands/monoswarm/monoswarm.md +139 -0
  49. package/.claude/commands/{swarm → monoswarm}/research.md +2 -2
  50. package/.claude/commands/monoswarm/spawn.md +49 -0
  51. package/.claude/commands/monoswarm/status.md +48 -0
  52. package/.claude/commands/monoswarm/stop.md +46 -0
  53. package/.claude/commands/optimization/auto-topology.md +9 -9
  54. package/.claude/commands/stream-chain/run.md +1 -1
  55. package/.claude/commands/workflows/development.md +1 -1
  56. package/.claude/commands/workflows/research.md +2 -2
  57. package/.claude/helpers/audit-log-writer.cjs +72 -0
  58. package/.claude/helpers/control-start.cjs +84 -26
  59. package/.claude/helpers/handlers/agent-start-handler.cjs +5 -5
  60. package/.claude/helpers/handlers/gates-handler.cjs +31 -10
  61. package/.claude/helpers/handlers/session-restore-handler.cjs +1 -1
  62. package/.claude/helpers/handlers/task-handler.cjs +4 -4
  63. package/.claude/helpers/skill-registry.json +4718 -3669
  64. package/.claude/helpers/statusline.cjs +21 -21
  65. package/.claude/helpers/token-tracker.cjs +0 -6
  66. package/.claude/settings.json +2 -3
  67. package/.claude/skills/hooks-automation/SKILL.md +5 -5
  68. package/.claude/skills/mastermind-protocol/SKILL.md +3 -3
  69. package/.claude/skills/memory-toolkit/SKILL.md +2 -2
  70. package/.claude/skills/{swarm-orchestration → monoswarm}/SKILL.md +106 -42
  71. package/.claude/skills/specialagent/SKILL.md +1 -1
  72. package/README.md +31 -12
  73. package/dist/src/autopilot-state.d.ts +0 -16
  74. package/dist/src/autopilot-state.d.ts.map +1 -1
  75. package/dist/src/autopilot-state.js +0 -15
  76. package/dist/src/autopilot-state.js.map +1 -1
  77. package/dist/src/browser/dashboard/server.js +3 -3
  78. package/dist/src/browser/dashboard/server.js.map +1 -1
  79. package/dist/src/browser/dashboard/ui.html +2 -2
  80. package/dist/src/capabilities/cap-documents.d.ts.map +1 -1
  81. package/dist/src/capabilities/cap-documents.js +49 -38
  82. package/dist/src/capabilities/cap-documents.js.map +1 -1
  83. package/dist/src/commands/agent-lifecycle.d.ts.map +1 -1
  84. package/dist/src/commands/agent-lifecycle.js +4 -9
  85. package/dist/src/commands/agent-lifecycle.js.map +1 -1
  86. package/dist/src/commands/agent-ops.d.ts.map +1 -1
  87. package/dist/src/commands/agent-ops.js +37 -24
  88. package/dist/src/commands/agent-ops.js.map +1 -1
  89. package/dist/src/commands/analyze-ast.d.ts +1 -1
  90. package/dist/src/commands/analyze-ast.d.ts.map +1 -1
  91. package/dist/src/commands/analyze-ast.js +8 -27
  92. package/dist/src/commands/analyze-ast.js.map +1 -1
  93. package/dist/src/commands/analyze-imports.d.ts.map +1 -1
  94. package/dist/src/commands/analyze-imports.js +18 -17
  95. package/dist/src/commands/analyze-imports.js.map +1 -1
  96. package/dist/src/commands/analyze-symbols.d.ts.map +1 -1
  97. package/dist/src/commands/analyze-symbols.js +10 -24
  98. package/dist/src/commands/analyze-symbols.js.map +1 -1
  99. package/dist/src/commands/analyze.d.ts +19 -6
  100. package/dist/src/commands/analyze.d.ts.map +1 -1
  101. package/dist/src/commands/analyze.js +61 -15
  102. package/dist/src/commands/analyze.js.map +1 -1
  103. package/dist/src/commands/autopilot.d.ts.map +1 -1
  104. package/dist/src/commands/autopilot.js +4 -89
  105. package/dist/src/commands/autopilot.js.map +1 -1
  106. package/dist/src/commands/browse.d.ts +1 -1
  107. package/dist/src/commands/cleanup.d.ts.map +1 -1
  108. package/dist/src/commands/cleanup.js +4 -2
  109. package/dist/src/commands/cleanup.js.map +1 -1
  110. package/dist/src/commands/completions.d.ts.map +1 -1
  111. package/dist/src/commands/completions.js +0 -1
  112. package/dist/src/commands/completions.js.map +1 -1
  113. package/dist/src/commands/config.js +7 -7
  114. package/dist/src/commands/config.js.map +1 -1
  115. package/dist/src/commands/doctor-project-checks.d.ts +7 -0
  116. package/dist/src/commands/doctor-project-checks.d.ts.map +1 -1
  117. package/dist/src/commands/doctor-project-checks.js +37 -5
  118. package/dist/src/commands/doctor-project-checks.js.map +1 -1
  119. package/dist/src/commands/doctor.d.ts.map +1 -1
  120. package/dist/src/commands/doctor.js +9 -3
  121. package/dist/src/commands/doctor.js.map +1 -1
  122. package/dist/src/commands/hooks-routing-commands.d.ts +1 -2
  123. package/dist/src/commands/hooks-routing-commands.d.ts.map +1 -1
  124. package/dist/src/commands/hooks-routing-commands.js +1 -101
  125. package/dist/src/commands/hooks-routing-commands.js.map +1 -1
  126. package/dist/src/commands/hooks-workers.d.ts.map +1 -1
  127. package/dist/src/commands/hooks-workers.js +19 -71
  128. package/dist/src/commands/hooks-workers.js.map +1 -1
  129. package/dist/src/commands/hooks.d.ts +1 -1
  130. package/dist/src/commands/hooks.d.ts.map +1 -1
  131. package/dist/src/commands/hooks.js +4 -7
  132. package/dist/src/commands/hooks.js.map +1 -1
  133. package/dist/src/commands/index.d.ts +1 -1
  134. package/dist/src/commands/index.d.ts.map +1 -1
  135. package/dist/src/commands/index.js +2 -2
  136. package/dist/src/commands/index.js.map +1 -1
  137. package/dist/src/commands/init-subcommands.d.ts.map +1 -1
  138. package/dist/src/commands/init-subcommands.js +4 -0
  139. package/dist/src/commands/init-subcommands.js.map +1 -1
  140. package/dist/src/commands/init-wizard.d.ts.map +1 -1
  141. package/dist/src/commands/init-wizard.js +0 -8
  142. package/dist/src/commands/init-wizard.js.map +1 -1
  143. package/dist/src/commands/init.d.ts.map +1 -1
  144. package/dist/src/commands/init.js +53 -23
  145. package/dist/src/commands/init.js.map +1 -1
  146. package/dist/src/commands/mcp.d.ts +1 -0
  147. package/dist/src/commands/mcp.d.ts.map +1 -1
  148. package/dist/src/commands/mcp.js +111 -60
  149. package/dist/src/commands/mcp.js.map +1 -1
  150. package/dist/src/commands/memory-crud.d.ts.map +1 -1
  151. package/dist/src/commands/memory-crud.js +33 -20
  152. package/dist/src/commands/memory-crud.js.map +1 -1
  153. package/dist/src/commands/monoswarm.d.ts +8 -0
  154. package/dist/src/commands/monoswarm.d.ts.map +1 -0
  155. package/dist/src/commands/{swarm.js → monoswarm.js} +83 -297
  156. package/dist/src/commands/monoswarm.js.map +1 -0
  157. package/dist/src/commands/neural-core.d.ts.map +1 -1
  158. package/dist/src/commands/neural-core.js +9 -1
  159. package/dist/src/commands/neural-core.js.map +1 -1
  160. package/dist/src/commands/neural-optimize.d.ts.map +1 -1
  161. package/dist/src/commands/neural-optimize.js +30 -110
  162. package/dist/src/commands/neural-optimize.js.map +1 -1
  163. package/dist/src/commands/neural-registry.d.ts +1 -2
  164. package/dist/src/commands/neural-registry.d.ts.map +1 -1
  165. package/dist/src/commands/neural-registry.js +21 -168
  166. package/dist/src/commands/neural-registry.js.map +1 -1
  167. package/dist/src/commands/org-observe.d.ts +13 -3
  168. package/dist/src/commands/org-observe.d.ts.map +1 -1
  169. package/dist/src/commands/org-observe.js +134 -45
  170. package/dist/src/commands/org-observe.js.map +1 -1
  171. package/dist/src/commands/org.d.ts +14 -0
  172. package/dist/src/commands/org.d.ts.map +1 -1
  173. package/dist/src/commands/org.js +98 -20
  174. package/dist/src/commands/org.js.map +1 -1
  175. package/dist/src/commands/performance.d.ts.map +1 -1
  176. package/dist/src/commands/performance.js +38 -31
  177. package/dist/src/commands/performance.js.map +1 -1
  178. package/dist/src/commands/security-misc.d.ts.map +1 -1
  179. package/dist/src/commands/security-misc.js +220 -90
  180. package/dist/src/commands/security-misc.js.map +1 -1
  181. package/dist/src/commands/security-scan.d.ts +13 -0
  182. package/dist/src/commands/security-scan.d.ts.map +1 -1
  183. package/dist/src/commands/security-scan.js +96 -27
  184. package/dist/src/commands/security-scan.js.map +1 -1
  185. package/dist/src/commands/security.js +1 -1
  186. package/dist/src/commands/security.js.map +1 -1
  187. package/dist/src/commands/start.d.ts.map +1 -1
  188. package/dist/src/commands/start.js +17 -96
  189. package/dist/src/commands/start.js.map +1 -1
  190. package/dist/src/commands/status.d.ts.map +1 -1
  191. package/dist/src/commands/status.js +72 -64
  192. package/dist/src/commands/status.js.map +1 -1
  193. package/dist/src/commands/tokens.d.ts.map +1 -1
  194. package/dist/src/commands/tokens.js +4 -5
  195. package/dist/src/commands/tokens.js.map +1 -1
  196. package/dist/src/consensus/audit-writer.d.ts +2 -2
  197. package/dist/src/consensus/audit-writer.d.ts.map +1 -1
  198. package/dist/src/consensus/audit-writer.js +1 -1
  199. package/dist/src/index.d.ts +2 -2
  200. package/dist/src/index.d.ts.map +1 -1
  201. package/dist/src/index.js +12 -10
  202. package/dist/src/index.js.map +1 -1
  203. package/dist/src/init/claudemd-generator.d.ts.map +1 -1
  204. package/dist/src/init/claudemd-generator.js +32 -31
  205. package/dist/src/init/claudemd-generator.js.map +1 -1
  206. package/dist/src/init/codex-generator.d.ts +10 -0
  207. package/dist/src/init/codex-generator.d.ts.map +1 -0
  208. package/dist/src/init/codex-generator.js +67 -0
  209. package/dist/src/init/codex-generator.js.map +1 -0
  210. package/dist/src/init/copy-assets.d.ts.map +1 -1
  211. package/dist/src/init/copy-assets.js +4 -8
  212. package/dist/src/init/copy-assets.js.map +1 -1
  213. package/dist/src/init/executor.d.ts.map +1 -1
  214. package/dist/src/init/executor.js +9 -2
  215. package/dist/src/init/executor.js.map +1 -1
  216. package/dist/src/init/helpers-generator.js +1 -1
  217. package/dist/src/init/index.d.ts +1 -0
  218. package/dist/src/init/index.d.ts.map +1 -1
  219. package/dist/src/init/index.js +1 -0
  220. package/dist/src/init/index.js.map +1 -1
  221. package/dist/src/init/opencode-generator.js +2 -2
  222. package/dist/src/init/opencode-generator.js.map +1 -1
  223. package/dist/src/init/settings-generator.d.ts.map +1 -1
  224. package/dist/src/init/settings-generator.js +1 -2
  225. package/dist/src/init/settings-generator.js.map +1 -1
  226. package/dist/src/init/shared.d.ts.map +1 -1
  227. package/dist/src/init/shared.js +3 -7
  228. package/dist/src/init/shared.js.map +1 -1
  229. package/dist/src/init/statusline-generator.js +19 -19
  230. package/dist/src/init/types.d.ts +9 -10
  231. package/dist/src/init/types.d.ts.map +1 -1
  232. package/dist/src/init/types.js +8 -6
  233. package/dist/src/init/types.js.map +1 -1
  234. package/dist/src/init/upgrade.js +5 -5
  235. package/dist/src/init/upgrade.js.map +1 -1
  236. package/dist/src/init/write-capabilities.d.ts.map +1 -1
  237. package/dist/src/init/write-capabilities.js +36 -49
  238. package/dist/src/init/write-capabilities.js.map +1 -1
  239. package/dist/src/init/write-claude.js +1 -1
  240. package/dist/src/init/write-claude.js.map +1 -1
  241. package/dist/src/init/write-codex.d.ts +4 -0
  242. package/dist/src/init/write-codex.d.ts.map +1 -0
  243. package/dist/src/init/write-codex.js +57 -0
  244. package/dist/src/init/write-codex.js.map +1 -0
  245. package/dist/src/init/write-runtime-config.d.ts.map +1 -1
  246. package/dist/src/init/write-runtime-config.js +4 -5
  247. package/dist/src/init/write-runtime-config.js.map +1 -1
  248. package/dist/src/knowledge/eval/golden-set.js +15 -15
  249. package/dist/src/knowledge/eval/golden-set.js.map +1 -1
  250. package/dist/src/mcp-client.d.ts.map +1 -1
  251. package/dist/src/mcp-client.js +1 -2
  252. package/dist/src/mcp-client.js.map +1 -1
  253. package/dist/src/mcp-server.js +1 -1
  254. package/dist/src/mcp-server.js.map +1 -1
  255. package/dist/src/mcp-tools/agent-tools.d.ts +1 -1
  256. package/dist/src/mcp-tools/agent-tools.d.ts.map +1 -1
  257. package/dist/src/mcp-tools/agent-tools.js +3 -3
  258. package/dist/src/mcp-tools/agent-tools.js.map +1 -1
  259. package/dist/src/mcp-tools/autopilot-tools.d.ts +1 -1
  260. package/dist/src/mcp-tools/autopilot-tools.d.ts.map +1 -1
  261. package/dist/src/mcp-tools/autopilot-tools.js +4 -62
  262. package/dist/src/mcp-tools/autopilot-tools.js.map +1 -1
  263. package/dist/src/mcp-tools/guidance-tools.d.ts.map +1 -1
  264. package/dist/src/mcp-tools/guidance-tools.js +21 -31
  265. package/dist/src/mcp-tools/guidance-tools.js.map +1 -1
  266. package/dist/src/mcp-tools/hooks-intelligence.d.ts +0 -1
  267. package/dist/src/mcp-tools/hooks-intelligence.d.ts.map +1 -1
  268. package/dist/src/mcp-tools/hooks-intelligence.js +56 -103
  269. package/dist/src/mcp-tools/hooks-intelligence.js.map +1 -1
  270. package/dist/src/mcp-tools/hooks-routing.d.ts +1 -2
  271. package/dist/src/mcp-tools/hooks-routing.d.ts.map +1 -1
  272. package/dist/src/mcp-tools/hooks-routing.js +78 -152
  273. package/dist/src/mcp-tools/hooks-routing.js.map +1 -1
  274. package/dist/src/mcp-tools/hooks-tools.d.ts.map +1 -1
  275. package/dist/src/mcp-tools/hooks-tools.js +2 -4
  276. package/dist/src/mcp-tools/hooks-tools.js.map +1 -1
  277. package/dist/src/mcp-tools/index.d.ts +1 -2
  278. package/dist/src/mcp-tools/index.d.ts.map +1 -1
  279. package/dist/src/mcp-tools/index.js +1 -2
  280. package/dist/src/mcp-tools/index.js.map +1 -1
  281. package/dist/src/mcp-tools/memory-tools.js +10 -10
  282. package/dist/src/mcp-tools/memory-tools.js.map +1 -1
  283. package/dist/src/mcp-tools/monograph/query-tools.js +9 -9
  284. package/dist/src/mcp-tools/monograph/query-tools.js.map +1 -1
  285. package/dist/src/mcp-tools/monoswarm-tools.d.ts +17 -0
  286. package/dist/src/mcp-tools/monoswarm-tools.d.ts.map +1 -0
  287. package/dist/src/mcp-tools/monoswarm-tools.js +1153 -0
  288. package/dist/src/mcp-tools/monoswarm-tools.js.map +1 -0
  289. package/dist/src/mcp-tools/performance-tools.d.ts.map +1 -1
  290. package/dist/src/mcp-tools/performance-tools.js +32 -25
  291. package/dist/src/mcp-tools/performance-tools.js.map +1 -1
  292. package/dist/src/mcp-tools/system-tools.d.ts.map +1 -1
  293. package/dist/src/mcp-tools/system-tools.js +30 -13
  294. package/dist/src/mcp-tools/system-tools.js.map +1 -1
  295. package/dist/src/mcp-tools/transfer-tools.d.ts +8 -12
  296. package/dist/src/mcp-tools/transfer-tools.d.ts.map +1 -1
  297. package/dist/src/mcp-tools/transfer-tools.js +9 -13
  298. package/dist/src/mcp-tools/transfer-tools.js.map +1 -1
  299. package/dist/src/memory/embedding-operations.d.ts.map +1 -1
  300. package/dist/src/memory/embedding-operations.js +0 -37
  301. package/dist/src/memory/embedding-operations.js.map +1 -1
  302. package/dist/src/memory/hnsw-operations.d.ts +14 -74
  303. package/dist/src/memory/hnsw-operations.d.ts.map +1 -1
  304. package/dist/src/memory/hnsw-operations.js +22 -262
  305. package/dist/src/memory/hnsw-operations.js.map +1 -1
  306. package/dist/src/memory/intelligence.d.ts +2 -2
  307. package/dist/src/memory/intelligence.d.ts.map +1 -1
  308. package/dist/src/memory/intelligence.js +8 -7
  309. package/dist/src/memory/intelligence.js.map +1 -1
  310. package/dist/src/memory/memory-bridge.d.ts +24 -24
  311. package/dist/src/memory/memory-bridge.d.ts.map +1 -1
  312. package/dist/src/memory/memory-bridge.js +33 -34
  313. package/dist/src/memory/memory-bridge.js.map +1 -1
  314. package/dist/src/memory/memory-crud.d.ts.map +1 -1
  315. package/dist/src/memory/memory-crud.js +0 -20
  316. package/dist/src/memory/memory-crud.js.map +1 -1
  317. package/dist/src/memory/memory-initializer.d.ts +2 -3
  318. package/dist/src/memory/memory-initializer.d.ts.map +1 -1
  319. package/dist/src/memory/memory-initializer.js +2 -3
  320. package/dist/src/memory/memory-initializer.js.map +1 -1
  321. package/dist/src/memory/memory-read.d.ts.map +1 -1
  322. package/dist/src/memory/memory-read.js +5 -14
  323. package/dist/src/memory/memory-read.js.map +1 -1
  324. package/dist/src/memory/sona-optimizer.d.ts +1 -1
  325. package/dist/src/memory/sona-optimizer.js +1 -1
  326. package/dist/src/monovector/model-outcomes.d.ts +25 -0
  327. package/dist/src/monovector/model-outcomes.d.ts.map +1 -0
  328. package/dist/src/monovector/model-outcomes.js +113 -0
  329. package/dist/src/monovector/model-outcomes.js.map +1 -0
  330. package/dist/src/orgrt/agent-runner.d.ts +8 -2
  331. package/dist/src/orgrt/agent-runner.d.ts.map +1 -1
  332. package/dist/src/orgrt/agent-runner.js.map +1 -1
  333. package/dist/src/orgrt/antigravity-runner.d.ts +25 -2
  334. package/dist/src/orgrt/antigravity-runner.d.ts.map +1 -1
  335. package/dist/src/orgrt/antigravity-runner.js +265 -124
  336. package/dist/src/orgrt/antigravity-runner.js.map +1 -1
  337. package/dist/src/orgrt/approvals.d.ts.map +1 -1
  338. package/dist/src/orgrt/approvals.js +8 -0
  339. package/dist/src/orgrt/approvals.js.map +1 -1
  340. package/dist/src/orgrt/checkpoint-ops.d.ts +10 -16
  341. package/dist/src/orgrt/checkpoint-ops.d.ts.map +1 -1
  342. package/dist/src/orgrt/checkpoint-ops.js +12 -18
  343. package/dist/src/orgrt/checkpoint-ops.js.map +1 -1
  344. package/dist/src/orgrt/checkpoint.d.ts +12 -1
  345. package/dist/src/orgrt/checkpoint.d.ts.map +1 -1
  346. package/dist/src/orgrt/checkpoint.js +19 -3
  347. package/dist/src/orgrt/checkpoint.js.map +1 -1
  348. package/dist/src/orgrt/codex-runner.d.ts +26 -2
  349. package/dist/src/orgrt/codex-runner.d.ts.map +1 -1
  350. package/dist/src/orgrt/codex-runner.js +359 -128
  351. package/dist/src/orgrt/codex-runner.js.map +1 -1
  352. package/dist/src/orgrt/copilot-runner.d.ts.map +1 -1
  353. package/dist/src/orgrt/copilot-runner.js +12 -2
  354. package/dist/src/orgrt/copilot-runner.js.map +1 -1
  355. package/dist/src/orgrt/cross-org.d.ts.map +1 -1
  356. package/dist/src/orgrt/cross-org.js +11 -0
  357. package/dist/src/orgrt/cross-org.js.map +1 -1
  358. package/dist/src/orgrt/crush-runner.d.ts +4 -1
  359. package/dist/src/orgrt/crush-runner.d.ts.map +1 -1
  360. package/dist/src/orgrt/crush-runner.js +42 -30
  361. package/dist/src/orgrt/crush-runner.js.map +1 -1
  362. package/dist/src/orgrt/daemon.d.ts +38 -25
  363. package/dist/src/orgrt/daemon.d.ts.map +1 -1
  364. package/dist/src/orgrt/daemon.js +150 -28
  365. package/dist/src/orgrt/daemon.js.map +1 -1
  366. package/dist/src/orgrt/decisions.d.ts +1 -0
  367. package/dist/src/orgrt/decisions.d.ts.map +1 -1
  368. package/dist/src/orgrt/decisions.js +20 -0
  369. package/dist/src/orgrt/decisions.js.map +1 -1
  370. package/dist/src/orgrt/grok-runner.d.ts.map +1 -1
  371. package/dist/src/orgrt/grok-runner.js +39 -14
  372. package/dist/src/orgrt/grok-runner.js.map +1 -1
  373. package/dist/src/orgrt/kimicode-runner.d.ts +53 -7
  374. package/dist/src/orgrt/kimicode-runner.d.ts.map +1 -1
  375. package/dist/src/orgrt/kimicode-runner.js +246 -144
  376. package/dist/src/orgrt/kimicode-runner.js.map +1 -1
  377. package/dist/src/orgrt/mailbox.d.ts +26 -1
  378. package/dist/src/orgrt/mailbox.d.ts.map +1 -1
  379. package/dist/src/orgrt/mailbox.js +74 -2
  380. package/dist/src/orgrt/mailbox.js.map +1 -1
  381. package/dist/src/orgrt/pi-rpc-runner.d.ts.map +1 -1
  382. package/dist/src/orgrt/pi-rpc-runner.js +76 -91
  383. package/dist/src/orgrt/pi-rpc-runner.js.map +1 -1
  384. package/dist/src/orgrt/policy.d.ts +11 -0
  385. package/dist/src/orgrt/policy.d.ts.map +1 -1
  386. package/dist/src/orgrt/policy.js +25 -2
  387. package/dist/src/orgrt/policy.js.map +1 -1
  388. package/dist/src/orgrt/provider.d.ts +29 -1
  389. package/dist/src/orgrt/provider.d.ts.map +1 -1
  390. package/dist/src/orgrt/provider.js +62 -2
  391. package/dist/src/orgrt/provider.js.map +1 -1
  392. package/dist/src/orgrt/qwen-rpc-runner.d.ts +56 -0
  393. package/dist/src/orgrt/qwen-rpc-runner.d.ts.map +1 -0
  394. package/dist/src/orgrt/qwen-rpc-runner.js +346 -0
  395. package/dist/src/orgrt/qwen-rpc-runner.js.map +1 -0
  396. package/dist/src/orgrt/qwen-runner.d.ts.map +1 -1
  397. package/dist/src/orgrt/qwen-runner.js +11 -8
  398. package/dist/src/orgrt/qwen-runner.js.map +1 -1
  399. package/dist/src/orgrt/scheduler-integration.d.ts.map +1 -1
  400. package/dist/src/orgrt/scheduler-integration.js +7 -0
  401. package/dist/src/orgrt/scheduler-integration.js.map +1 -1
  402. package/dist/src/orgrt/session.d.ts +29 -1
  403. package/dist/src/orgrt/session.d.ts.map +1 -1
  404. package/dist/src/orgrt/session.js +87 -18
  405. package/dist/src/orgrt/session.js.map +1 -1
  406. package/dist/src/orgrt/task-dag.d.ts +29 -1
  407. package/dist/src/orgrt/task-dag.d.ts.map +1 -1
  408. package/dist/src/orgrt/task-dag.js +54 -0
  409. package/dist/src/orgrt/task-dag.js.map +1 -1
  410. package/dist/src/orgrt/test-loop.d.ts.map +1 -1
  411. package/dist/src/orgrt/test-loop.js +86 -9
  412. package/dist/src/orgrt/test-loop.js.map +1 -1
  413. package/dist/src/orgrt/tool-fence.d.ts.map +1 -1
  414. package/dist/src/orgrt/tool-fence.js +15 -0
  415. package/dist/src/orgrt/tool-fence.js.map +1 -1
  416. package/dist/src/orgrt/types.d.ts +32 -1
  417. package/dist/src/orgrt/types.d.ts.map +1 -1
  418. package/dist/src/orgrt/types.js +47 -4
  419. package/dist/src/orgrt/types.js.map +1 -1
  420. package/dist/src/pricing/model-pricing.d.ts.map +1 -1
  421. package/dist/src/pricing/model-pricing.js +0 -4
  422. package/dist/src/pricing/model-pricing.js.map +1 -1
  423. package/dist/src/security/audit-log.d.ts +47 -0
  424. package/dist/src/security/audit-log.d.ts.map +1 -0
  425. package/dist/src/security/audit-log.js +84 -0
  426. package/dist/src/security/audit-log.js.map +1 -0
  427. package/dist/src/services/config-file-manager.d.ts +2 -2
  428. package/dist/src/services/config-file-manager.d.ts.map +1 -1
  429. package/dist/src/services/config-file-manager.js +6 -7
  430. package/dist/src/services/config-file-manager.js.map +1 -1
  431. package/dist/src/suggest.d.ts.map +1 -1
  432. package/dist/src/suggest.js +4 -5
  433. package/dist/src/suggest.js.map +1 -1
  434. package/dist/src/transfer/anonymization/index.d.ts +1 -1
  435. package/dist/src/transfer/anonymization/index.js +1 -1
  436. package/dist/src/types.d.ts +3 -3
  437. package/dist/src/types.d.ts.map +1 -1
  438. package/dist/src/ui/collector.mjs +9 -13
  439. package/dist/src/ui/dashboard.html +30 -10
  440. package/dist/src/ui/data/agent-avatars.html +0 -12
  441. package/dist/src/ui/data/agent-avatars.json +10 -26
  442. package/dist/src/ui/routes-org.mjs +59 -16
  443. package/dist/src/ui/server.mjs +50 -23
  444. package/dist/src/utils/json-file.d.ts +12 -0
  445. package/dist/src/utils/json-file.d.ts.map +1 -1
  446. package/dist/src/utils/json-file.js +11 -0
  447. package/dist/src/utils/json-file.js.map +1 -1
  448. package/dist/tsconfig.tsbuildinfo +1 -1
  449. package/package.json +4 -4
  450. package/.claude/agents/consensus/crdt-synchronizer.md +0 -977
  451. package/.claude/commands/hive-mind/README.md +0 -42
  452. package/.claude/commands/hive-mind/hive-mind-consensus.md +0 -72
  453. package/.claude/commands/hive-mind/hive-mind-init.md +0 -68
  454. package/.claude/commands/hive-mind/hive-mind-memory.md +0 -73
  455. package/.claude/commands/hive-mind/hive-mind-spawn.md +0 -82
  456. package/.claude/commands/hive-mind/hive-mind-status.md +0 -56
  457. package/.claude/commands/hive-mind/hive-mind-stop.md +0 -55
  458. package/.claude/commands/hive-mind/hive-mind.md +0 -87
  459. package/.claude/commands/swarm/README.md +0 -40
  460. package/.claude/commands/swarm/swarm.md +0 -79
  461. package/.claude/skills/hive-mind-advanced/SKILL.md +0 -347
  462. package/.claude/skills/swarm-advanced/SKILL.md +0 -936
  463. package/dist/src/commands/swarm.d.ts +0 -8
  464. package/dist/src/commands/swarm.d.ts.map +0 -1
  465. package/dist/src/commands/swarm.js.map +0 -1
  466. package/dist/src/mcp-tools/hive-mind-tools.d.ts +0 -17
  467. package/dist/src/mcp-tools/hive-mind-tools.d.ts.map +0 -1
  468. package/dist/src/mcp-tools/hive-mind-tools.js +0 -1239
  469. package/dist/src/mcp-tools/hive-mind-tools.js.map +0 -1
  470. package/dist/src/mcp-tools/swarm-tools.d.ts +0 -9
  471. package/dist/src/mcp-tools/swarm-tools.d.ts.map +0 -1
  472. package/dist/src/mcp-tools/swarm-tools.js +0 -411
  473. package/dist/src/mcp-tools/swarm-tools.js.map +0 -1
  474. package/dist/src/ui/data/avatars/crdt-synchronizer.svg +0 -53
  475. package/dist/src/ui/data/avatars/gossip-coordinator.svg +0 -54
  476. package/scripts/deploy-ipfs-node.sh +0 -153
  477. package/scripts/setup-ipfs-registry.md +0 -365
  478. /package/.claude/agents/{hive-mind → monoswarm}/scout-explorer.md +0 -0
  479. /package/.claude/agents/{hive-mind → monoswarm}/worker-specialist.md +0 -0
  480. /package/.claude/commands/{swarm → monoswarm}/analysis.md +0 -0
  481. /package/.claude/commands/{swarm → monoswarm}/development.md +0 -0
  482. /package/.claude/commands/{swarm → monoswarm}/examples.md +0 -0
  483. /package/.claude/commands/{swarm → monoswarm}/maintenance.md +0 -0
  484. /package/.claude/commands/{swarm → monoswarm}/optimization.md +0 -0
  485. /package/.claude/commands/{swarm → monoswarm}/testing.md +0 -0
  486. /package/dist/src/ui/data/avatars/{code-review-swarm.svg → monoswarm-code-review.svg} +0 -0
@@ -1,197 +1,51 @@
1
1
  /**
2
- * Neural registry commands — list and import pattern sets from IPFS
2
+ * Neural registry commands — import pattern sets from a local file
3
3
  */
4
4
  import { output } from '../output.js';
5
- // ─── list subcommand ─────────────────────────────────────────────────────────
6
- export const listCommand = {
7
- name: 'list',
8
- description: 'List available pattern sets from the official registry',
9
- options: [
10
- { name: 'category', type: 'string', description: 'Filter by category (security, quality, performance, etc.)' },
11
- { name: 'format', short: 'f', type: 'string', description: 'Output format: table, json, simple', default: 'table' },
12
- { name: 'cid', type: 'string', description: 'Custom registry CID (default: official registry)' },
13
- ],
14
- examples: [
15
- { command: 'monomind hooks intelligence list', description: 'List all available models' },
16
- { command: 'monomind hooks intelligence list --category security', description: 'List only security models' },
17
- { command: 'monomind hooks intelligence list -f json', description: 'Output as JSON' },
18
- ],
19
- action: async (ctx) => {
20
- const category = ctx.flags.category;
21
- const format = ctx.flags.format || 'table';
22
- const customCid = ctx.flags.cid;
23
- const registryCid = customCid || 'QmNr1yYMKi7YBaL8JSztQyuB5ZUaTdRMLxJC1pBpGbjsTc';
24
- output.writeln();
25
- output.writeln(output.bold('Pre-trained Model Registry'));
26
- output.writeln(output.dim('─'.repeat(60)));
27
- const spinner = output.createSpinner({ text: 'Fetching model registry...', spinner: 'dots' });
28
- spinner.start();
29
- try {
30
- const gateways = ['https://gateway.pinata.cloud', 'https://ipfs.io', 'https://dweb.link'];
31
- let registry = null;
32
- for (const gateway of gateways) {
33
- try {
34
- const response = await fetch(`${gateway}/ipfs/${registryCid}`, {
35
- signal: AbortSignal.timeout(15000),
36
- headers: { 'Accept': 'application/json' },
37
- });
38
- if (response.ok) {
39
- const MAX_REGISTRY_BYTES = 50 * 1024 * 1024;
40
- const buf = await response.arrayBuffer();
41
- if (buf.byteLength > MAX_REGISTRY_BYTES)
42
- throw new Error(`Registry response too large: ${buf.byteLength} bytes`);
43
- registry = JSON.parse(new TextDecoder().decode(buf));
44
- break;
45
- }
46
- }
47
- catch {
48
- continue;
49
- }
50
- }
51
- if (!registry || !registry.models) {
52
- spinner.fail('Could not fetch model registry');
53
- return { success: false, exitCode: 1 };
54
- }
55
- let models = registry.models;
56
- if (category) {
57
- models = models.filter(m => m.category === category ||
58
- m.id.includes(category) ||
59
- m.name.toLowerCase().includes(category.toLowerCase()));
60
- spinner.succeed(`Found ${models.length} models matching "${category}"`);
61
- }
62
- else {
63
- spinner.succeed(`Found ${registry.models.length} models`);
64
- }
65
- if (models.length === 0) {
66
- output.writeln(output.warning(`No models found for category: ${category}`));
67
- output.writeln(output.dim('Available categories: security, quality, performance, testing, api, debugging, refactoring, documentation'));
68
- return { success: false, exitCode: 1 };
69
- }
70
- output.writeln();
71
- if (format === 'json') {
72
- output.writeln(JSON.stringify(models, null, 2));
73
- }
74
- else if (format === 'simple') {
75
- for (const model of models) {
76
- output.writeln(`${model.id} (${model.category}) - ${model.patterns.length} patterns, ${(model.metadata.accuracy * 100).toFixed(0)}% accuracy`);
77
- }
78
- }
79
- else {
80
- output.printTable({
81
- columns: [
82
- { key: 'id', header: 'Model ID', width: 35 },
83
- { key: 'category', header: 'Category', width: 14 },
84
- { key: 'patterns', header: 'Patterns', width: 10 },
85
- { key: 'accuracy', header: 'Accuracy', width: 10 },
86
- { key: 'usage', header: 'Usage', width: 10 },
87
- ],
88
- data: models.map(m => ({
89
- id: m.id, category: m.category,
90
- patterns: String(m.patterns.length),
91
- accuracy: `${(m.metadata.accuracy * 100).toFixed(0)}%`,
92
- usage: m.metadata.totalUsage.toLocaleString(),
93
- })),
94
- });
95
- output.writeln();
96
- output.writeln(output.dim('Registry CID: ' + registryCid));
97
- output.writeln();
98
- output.writeln(output.bold('Import Commands:'));
99
- output.writeln(output.dim(' All models: ') + `monomind hooks intelligence import --cid ${registryCid}`);
100
- if (category) {
101
- output.writeln(output.dim(` ${category} only: `) + `monomind hooks intelligence import --cid ${registryCid} --category ${category}`);
102
- }
103
- else {
104
- output.writeln(output.dim(' By category: ') + `monomind hooks intelligence import --cid ${registryCid} --category <category>`);
105
- }
106
- }
107
- return { success: true };
108
- }
109
- catch (error) {
110
- spinner.fail(`Failed to list models: ${error instanceof Error ? error.message : String(error)}`);
111
- return { success: false, exitCode: 1 };
112
- }
113
- },
114
- };
5
+ import { mergeRecordsById } from '../utils/json-file.js';
115
6
  // ─── import subcommand ───────────────────────────────────────────────────────
116
7
  export const importCommand = {
117
8
  name: 'import',
118
- description: 'Import pattern sets from IPFS with signature verification',
9
+ description: 'Import pattern sets from a local file, with signature verification',
119
10
  options: [
120
- { name: 'cid', short: 'c', type: 'string', description: 'IPFS CID to import from' },
121
11
  { name: 'file', short: 'f', type: 'string', description: 'Local file to import' },
122
12
  { name: 'verify', short: 'v', type: 'boolean', description: 'Verify Ed25519 signature', default: 'true' },
123
13
  { name: 'merge', type: 'boolean', description: 'Merge with existing patterns (vs replace)', default: 'true' },
124
14
  { name: 'category', type: 'string', description: 'Only import patterns from specific category' },
125
15
  ],
126
16
  examples: [
127
- { command: 'monomind hooks intelligence import --cid QmXxx...', description: 'Import from IPFS' },
128
17
  { command: 'monomind hooks intelligence import -f ./patterns.json --verify', description: 'Import from file' },
129
- { command: 'monomind hooks intelligence import --cid QmNr1yYMK... --category security', description: 'Import only security patterns' },
18
+ { command: 'monomind hooks intelligence import -f ./patterns.json --category security', description: 'Import only security patterns' },
130
19
  ],
131
20
  action: async (ctx) => {
132
- const cid = ctx.flags.cid;
133
21
  const file = ctx.flags.file;
134
22
  const verifySignature = ctx.flags.verify !== false;
135
23
  const merge = ctx.flags.merge !== false;
136
24
  const categoryFilter = ctx.flags.category;
137
- if (!cid && !file) {
138
- output.writeln(output.error('Either --cid or --file is required'));
25
+ if (!file) {
26
+ output.writeln(output.error('--file is required'));
139
27
  return { success: false, exitCode: 1 };
140
28
  }
141
29
  output.writeln();
142
30
  output.writeln(output.bold('Secure Pattern Import'));
143
31
  output.writeln(output.dim('─'.repeat(50)));
144
- const spinner = output.createSpinner({ text: 'Fetching model...', spinner: 'dots' });
32
+ const spinner = output.createSpinner({ text: 'Reading import file...', spinner: 'dots' });
145
33
  spinner.start();
146
34
  try {
147
35
  const fs = await import('fs');
148
36
  const path = await import('path');
149
37
  const crypto = await import('crypto');
150
- let importData = null;
151
- if (cid) {
152
- const gateways = ['https://gateway.pinata.cloud', 'https://ipfs.io', 'https://dweb.link'];
153
- for (const gateway of gateways) {
154
- try {
155
- spinner.setText(`Fetching from ${gateway}...`);
156
- const response = await fetch(`${gateway}/ipfs/${cid}`, {
157
- signal: AbortSignal.timeout(30000),
158
- headers: { 'Accept': 'application/json' },
159
- });
160
- if (response.ok) {
161
- const MAX_IMPORT_BYTES = 50 * 1024 * 1024;
162
- const importBuf = await response.arrayBuffer();
163
- if (importBuf.byteLength > MAX_IMPORT_BYTES)
164
- throw new Error(`Import response too large: ${importBuf.byteLength} bytes`);
165
- importData = JSON.parse(new TextDecoder().decode(importBuf));
166
- break;
167
- }
168
- }
169
- catch {
170
- continue;
171
- }
172
- }
173
- if (!importData) {
174
- spinner.fail('Could not fetch from any IPFS gateway');
175
- return { success: false, exitCode: 1 };
176
- }
177
- }
178
- else {
179
- if (!fs.existsSync(file)) {
180
- spinner.fail(`File not found: ${file}`);
181
- return { success: false, exitCode: 1 };
182
- }
183
- const stat = fs.statSync(file);
184
- const MAX_IMPORT_BYTES = 50 * 1024 * 1024;
185
- if (stat.size > MAX_IMPORT_BYTES) {
186
- spinner.fail(`Import file too large: ${stat.size} bytes (max ${MAX_IMPORT_BYTES})`);
187
- return { success: false, exitCode: 1 };
188
- }
189
- importData = JSON.parse(fs.readFileSync(file, 'utf8'));
38
+ if (!fs.existsSync(file)) {
39
+ spinner.fail(`File not found: ${file}`);
40
+ return { success: false, exitCode: 1 };
190
41
  }
191
- if (!importData) {
192
- spinner.fail('No import data available');
42
+ const stat = fs.statSync(file);
43
+ const MAX_IMPORT_BYTES = 50 * 1024 * 1024;
44
+ if (stat.size > MAX_IMPORT_BYTES) {
45
+ spinner.fail(`Import file too large: ${stat.size} bytes (max ${MAX_IMPORT_BYTES})`);
193
46
  return { success: false, exitCode: 1 };
194
47
  }
48
+ const importData = JSON.parse(fs.readFileSync(file, 'utf8'));
195
49
  // SECURITY: Verify signature — fail-CLOSED (no bypass if missing or malformed)
196
50
  if (verifySignature) {
197
51
  if (!importData.signature || !importData.publicKey) {
@@ -205,7 +59,8 @@ export const importCommand = {
205
59
  const publicKeyBytes = Buffer.from(publicKeyHex, 'hex');
206
60
  const signatureBytes = Buffer.from(importData.signature, 'hex');
207
61
  const publicKey = await webcrypto.subtle.importKey('raw', publicKeyBytes, { name: 'Ed25519' }, false, ['verify']);
208
- const dataBytes = new TextEncoder().encode(JSON.stringify(importData.pinataContent));
62
+ const { signature: _sig, publicKey: _pk, ...signedContent } = importData;
63
+ const dataBytes = new TextEncoder().encode(JSON.stringify(signedContent));
209
64
  const valid = await webcrypto.subtle.verify('Ed25519', publicKey, signatureBytes, dataBytes);
210
65
  if (!valid) {
211
66
  spinner.fail('Signature verification FAILED - data may be tampered');
@@ -220,9 +75,8 @@ export const importCommand = {
220
75
  }
221
76
  }
222
77
  spinner.setText('Importing patterns...');
223
- const content = importData.pinataContent || importData;
224
78
  let patterns = [];
225
- const registry = content;
79
+ const registry = importData;
226
80
  if (registry.models && Array.isArray(registry.models)) {
227
81
  for (const model of registry.models) {
228
82
  if (!categoryFilter || model.category === categoryFilter || model.id.includes(categoryFilter)) {
@@ -233,7 +87,7 @@ export const importCommand = {
233
87
  }
234
88
  }
235
89
  else {
236
- patterns = content.patterns || [];
90
+ patterns = importData.patterns || [];
237
91
  }
238
92
  if (categoryFilter && patterns.length > 0) {
239
93
  patterns = patterns.filter(p => p.category === categoryFilter || p.trigger.includes(categoryFilter));
@@ -255,9 +109,8 @@ export const importCommand = {
255
109
  if (merge && fs.existsSync(patternsFile) && fs.statSync(patternsFile).size <= 50 * 1024 * 1024) {
256
110
  existingPatterns = JSON.parse(fs.readFileSync(patternsFile, 'utf8'));
257
111
  }
258
- const existingIds = new Set(existingPatterns.map(p => p.id));
259
- const newPatterns = validPatterns.filter(p => !existingIds.has(p.id));
260
- const finalPatterns = merge ? [...existingPatterns, ...newPatterns] : validPatterns;
112
+ const { merged: mergedPatterns, added: newPatterns } = mergeRecordsById(existingPatterns, validPatterns);
113
+ const finalPatterns = merge ? mergedPatterns : validPatterns;
261
114
  const tmpPatterns = `${patternsFile}.${process.pid}.${Date.now()}.tmp`;
262
115
  fs.writeFileSync(tmpPatterns, JSON.stringify(finalPatterns, null, 2), { flag: 'wx' });
263
116
  fs.renameSync(tmpPatterns, patternsFile);
@@ -1 +1 @@
1
- {"version":3,"file":"neural-registry.js","sourceRoot":"","sources":["../../../src/commands/neural-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"neural-registry.js","sourceRoot":"","sources":["../../../src/commands/neural-registry.ts"],"names":[],"mappings":"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"}
@@ -52,11 +52,21 @@ export declare const flowAction: (ctx: CommandContext, name: string) => Promise<
52
52
  export declare const approveAction: (ctx: CommandContext, name: string) => Promise<CommandResult>;
53
53
  /** `org deny <org> <role> <action>` — deny a pending tool/action approval */
54
54
  export declare const denyAction: (ctx: CommandContext, name: string) => Promise<CommandResult>;
55
- /** `org replay <org> <run-id>` — time-travel debugging: resume from checkpoint */
55
+ /** `org replay <org> <run-id>` — time-travel debugging: re-emit a past run's bus
56
+ * events into a fresh replay run for inspection. This is event-log replay only —
57
+ * it does not restart agent execution or restore live sessions. To actually
58
+ * resume an org's execution from where it left off, use `org run --resume`. */
56
59
  export declare const replayAction: (ctx: CommandContext, name: string) => Promise<CommandResult>;
57
- /** `org resume-from <org> <run-id>` — resume from checkpoint (alias for replay) */
60
+ /** `org resume-from <org>` — resume live execution from the org's persisted
61
+ * checkpoint (runtime.json): restores mailbox queues, policy/token counters,
62
+ * and session state, subject to checkpoint TTL and checksum validation. Unlike
63
+ * `replay`, this restarts real agent execution via `startOrg(..., { resume: true })`. */
58
64
  export declare const resumeFromAction: (ctx: CommandContext, name: string) => Promise<CommandResult>;
59
- /** `org branch <org> <run-id> <branch-name>` — create a branch from checkpoint for what-if experiments */
65
+ /** `org branch <org> <run-id> <branch-name>` — snapshot a run's event log for replay.
66
+ * This is NOT an executable what-if scenario: it copies bus.jsonl into a new
67
+ * run directory tagged with a `.branch-source` marker so it can be inspected
68
+ * or replayed later; it does not fork or re-run agent execution.
69
+ * Delegates to the shared, atomic (tmp+rename) implementation in checkpoint-ops.ts. */
60
70
  export declare const branchAction: (ctx: CommandContext, name: string) => Promise<CommandResult>;
61
71
  /** `org decisions <org> [--run id]` — show Rifft-style decision traces */
62
72
  export declare const decisionsAction: (ctx: CommandContext, name: string) => Promise<CommandResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"org-observe.d.ts","sourceRoot":"","sources":["../../../src/commands/org-observe.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAUjE;;wFAEwF;AACxF,eAAO,MAAM,cAAc,QAAe,cAAc,KAAG,OAAO,CAAC,aAAa,CAyC/E,CAAC;AAWF,oKAAoK;AACpK,eAAO,MAAM,UAAU,QAAe,cAAc,QAAQ,MAAM,KAAG,OAAO,CAAC,aAAa,CA0CzF,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,WAAW,QAAe,cAAc,QAAQ,MAAM,KAAG,OAAO,CAAC,aAAa,CAmD1F,CAAC;AAEF,qHAAqH;AACrH,eAAO,MAAM,YAAY,QAAe,cAAc,QAAQ,MAAM,KAAG,OAAO,CAAC,aAAa,CAoJ3F,CAAC;AA4BF,kFAAkF;AAClF,eAAO,MAAM,eAAe,QAAe,cAAc,QAAQ,MAAM,KAAG,OAAO,CAAC,aAAa,CAqB9F,CAAC;AAEF;;oFAEoF;AACpF,eAAO,MAAM,YAAY,QAAe,cAAc,QAAQ,MAAM,KAAG,OAAO,CAAC,aAAa,CAqF3F,CAAC;AAEF;;;;;;0CAM0C;AAC1C,eAAO,MAAM,WAAW,QAAe,cAAc,QAAQ,MAAM,KAAG,OAAO,CAAC,aAAa,CA8E1F,CAAC;AAEF,wGAAwG;AACxG,eAAO,MAAM,YAAY,QAAe,cAAc,QAAQ,MAAM,KAAG,OAAO,CAAC,aAAa,CAyB3F,CAAC;AAEF,oFAAoF;AACpF,eAAO,MAAM,WAAW,QAAe,cAAc,QAAQ,MAAM,KAAG,OAAO,CAAC,aAAa,CA+E1F,CAAC;AAEF,wEAAwE;AACxE,eAAO,MAAM,UAAU,QAAe,cAAc,QAAQ,MAAM,KAAG,OAAO,CAAC,aAAa,CAgDzF,CAAC;AAoDF,mFAAmF;AACnF,eAAO,MAAM,aAAa,QAAe,cAAc,QAAQ,MAAM,KAAG,OAAO,CAAC,aAAa,CAO5F,CAAC;AAEF,6EAA6E;AAC7E,eAAO,MAAM,UAAU,QAAe,cAAc,QAAQ,MAAM,KAAG,OAAO,CAAC,aAAa,CAOzF,CAAC;AAEF,kFAAkF;AAClF,eAAO,MAAM,YAAY,QAAe,cAAc,QAAQ,MAAM,KAAG,OAAO,CAAC,aAAa,CAgC3F,CAAC;AAEF,mFAAmF;AACnF,eAAO,MAAM,gBAAgB,QAAe,cAAc,QAAQ,MAAM,KAAG,OAAO,CAAC,aAAa,CAQ/F,CAAC;AAEF,0GAA0G;AAC1G,eAAO,MAAM,YAAY,QAAe,cAAc,QAAQ,MAAM,KAAG,OAAO,CAAC,aAAa,CAmC3F,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,eAAe,QAAe,cAAc,QAAQ,MAAM,KAAG,OAAO,CAAC,aAAa,CAuC9F,CAAC;AAQF,eAAO,MAAM,WAAW,QAAe,cAAc,QAAQ,MAAM,KAAG,OAAO,CAAC,aAAa,CAoB1F,CAAC;AAEF,eAAO,MAAM,iBAAiB,QAAe,cAAc,QAAQ,MAAM,YAAY,OAAO,KAAG,OAAO,CAAC,aAAa,CAkCnH,CAAC"}
1
+ {"version":3,"file":"org-observe.d.ts","sourceRoot":"","sources":["../../../src/commands/org-observe.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAYjE;;wFAEwF;AACxF,eAAO,MAAM,cAAc,QAAe,cAAc,KAAG,OAAO,CAAC,aAAa,CAyC/E,CAAC;AAWF,oKAAoK;AACpK,eAAO,MAAM,UAAU,QAAe,cAAc,QAAQ,MAAM,KAAG,OAAO,CAAC,aAAa,CA0CzF,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,WAAW,QAAe,cAAc,QAAQ,MAAM,KAAG,OAAO,CAAC,aAAa,CAmD1F,CAAC;AAEF,qHAAqH;AACrH,eAAO,MAAM,YAAY,QAAe,cAAc,QAAQ,MAAM,KAAG,OAAO,CAAC,aAAa,CAoJ3F,CAAC;AA4BF,kFAAkF;AAClF,eAAO,MAAM,eAAe,QAAe,cAAc,QAAQ,MAAM,KAAG,OAAO,CAAC,aAAa,CAqB9F,CAAC;AAEF;;oFAEoF;AACpF,eAAO,MAAM,YAAY,QAAe,cAAc,QAAQ,MAAM,KAAG,OAAO,CAAC,aAAa,CAqF3F,CAAC;AAEF;;;;;;0CAM0C;AAC1C,eAAO,MAAM,WAAW,QAAe,cAAc,QAAQ,MAAM,KAAG,OAAO,CAAC,aAAa,CA8E1F,CAAC;AAEF,wGAAwG;AACxG,eAAO,MAAM,YAAY,QAAe,cAAc,QAAQ,MAAM,KAAG,OAAO,CAAC,aAAa,CAwD3F,CAAC;AAEF,oFAAoF;AACpF,eAAO,MAAM,WAAW,QAAe,cAAc,QAAQ,MAAM,KAAG,OAAO,CAAC,aAAa,CA+E1F,CAAC;AAEF,wEAAwE;AACxE,eAAO,MAAM,UAAU,QAAe,cAAc,QAAQ,MAAM,KAAG,OAAO,CAAC,aAAa,CAgDzF,CAAC;AAoDF,mFAAmF;AACnF,eAAO,MAAM,aAAa,QAAe,cAAc,QAAQ,MAAM,KAAG,OAAO,CAAC,aAAa,CAO5F,CAAC;AAEF,6EAA6E;AAC7E,eAAO,MAAM,UAAU,QAAe,cAAc,QAAQ,MAAM,KAAG,OAAO,CAAC,aAAa,CAOzF,CAAC;AAEF;;;gFAGgF;AAChF,eAAO,MAAM,YAAY,QAAe,cAAc,QAAQ,MAAM,KAAG,OAAO,CAAC,aAAa,CAgC3F,CAAC;AAEF;;;0FAG0F;AAC1F,eAAO,MAAM,gBAAgB,QAAe,cAAc,QAAQ,MAAM,KAAG,OAAO,CAAC,aAAa,CAe/F,CAAC;AAEF;;;;wFAIwF;AACxF,eAAO,MAAM,YAAY,QAAe,cAAc,QAAQ,MAAM,KAAG,OAAO,CAAC,aAAa,CAc3F,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,eAAe,QAAe,cAAc,QAAQ,MAAM,KAAG,OAAO,CAAC,aAAa,CAuC9F,CAAC;AAiCF,eAAO,MAAM,WAAW,QAAe,cAAc,QAAQ,MAAM,KAAG,OAAO,CAAC,aAAa,CAoB1F,CAAC;AAEF,eAAO,MAAM,iBAAiB,QAAe,cAAc,QAAQ,MAAM,YAAY,OAAO,KAAG,OAAO,CAAC,aAAa,CAmEnH,CAAC"}
@@ -1,13 +1,15 @@
1
1
  // packages/@monomind/cli/src/commands/org-observe.ts
2
2
  // Read-side org subcommands (logs / report) + template scaffolding (create).
3
3
  // Kept out of org.ts to respect the 500-line file ceiling.
4
- import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
4
+ import { existsSync, readFileSync, writeFileSync } from 'node:fs';
5
5
  import { join } from 'node:path';
6
6
  import { output } from '../output.js';
7
7
  import { ORG_DIR, OrgDefSchema } from '../orgrt/types.js';
8
8
  import { formatEvent, listRunDirs, readHistory, readRunEvents, summarizeRun } from '../orgrt/reporting.js';
9
9
  import { ORG_TEMPLATES, buildFromTemplate } from '../orgrt/templates.js';
10
10
  import { checkOrgStructure } from '../orgrt/migrate.js';
11
+ import { resolveModel } from '../orgrt/session.js';
12
+ import { branchCheckpoint } from '../orgrt/checkpoint-ops.js';
11
13
  import { listOrgConfigFiles, validateOrgName } from './org.js';
12
14
  const log = (text) => { console.log(text); };
13
15
  /** Validate org config(s) against OrgDefSchema — the exact parse `org run`/`org serve`
@@ -612,11 +614,40 @@ export const createAction = async (ctx, name) => {
612
614
  return { success: false, message: 'org exists' };
613
615
  }
614
616
  OrgDefSchema.parse(def); // templates must always produce a runnable config
617
+ // Per-role model — the single most consequential setting the template picked on
618
+ // the user's behalf. Mirror resolveModel() (same helper `org run`'s cost estimate
619
+ // uses) so a role relying on its runtime/vendor default isn't mislabeled here.
620
+ const modelRows = def.roles.map((r) => {
621
+ const explicit = r.adapter_config?.model;
622
+ return {
623
+ id: r.id,
624
+ model: String(explicit ?? resolveModel(r, r.runtime ?? def.runtime, r.provider?.vendor)),
625
+ explicit: !!explicit,
626
+ };
627
+ });
628
+ const printModels = () => {
629
+ log(output.bold(' Models:'));
630
+ for (const r of modelRows) {
631
+ log(` ${r.id.padEnd(20)} ${r.model}${r.explicit ? '' : ' (default)'}`);
632
+ }
633
+ };
634
+ if (ctx.interactive && ctx.flags['yes'] !== true) {
635
+ log(output.bold(`\nAbout to create org "${name}" from template "${templateName}" (${def.roles.length} roles):`));
636
+ printModels();
637
+ const { confirm } = await import('../prompt.js');
638
+ const proceed = await confirm({ message: 'Create this org?', default: true });
639
+ if (!proceed) {
640
+ log(output.info('Cancelled — no file written. Adjust --template/--goal, or edit the template, then retry (pass --yes to skip this prompt).'));
641
+ return { success: false, message: 'cancelled by user' };
642
+ }
643
+ }
615
644
  const { mkdirSync } = await import('node:fs');
616
645
  mkdirSync(join(ctx.cwd, ORG_DIR), { recursive: true });
617
646
  writeFileSync(file, JSON.stringify(def, null, 2) + '\n', 'utf8');
618
647
  log(output.success(`Org "${name}" created from template "${templateName}" (${def.roles.length} roles).`));
619
648
  log(output.info(` Budget: ${def.run_config.budget_tokens} tokens · Turn limit: ${def.run_config.max_turns_per_message} per message (effectively unlimited by default — set run_config.max_turns_per_message, or a role's own max_turns_per_message, to cap it).`));
649
+ if (!ctx.interactive || ctx.flags['yes'] === true)
650
+ printModels();
620
651
  log(output.info(` Edit the goal/roles in ${file}, then: monomind org run ${name}`));
621
652
  return { success: true };
622
653
  };
@@ -795,7 +826,10 @@ export const denyAction = async (ctx, name) => {
795
826
  }
796
827
  return resolveApproval(ctx, name, role, action, false);
797
828
  };
798
- /** `org replay <org> <run-id>` — time-travel debugging: resume from checkpoint */
829
+ /** `org replay <org> <run-id>` — time-travel debugging: re-emit a past run's bus
830
+ * events into a fresh replay run for inspection. This is event-log replay only —
831
+ * it does not restart agent execution or restore live sessions. To actually
832
+ * resume an org's execution from where it left off, use `org run --resume`. */
799
833
  export const replayAction = async (ctx, name) => {
800
834
  const run = ctx.args[1];
801
835
  if (!run) {
@@ -809,61 +843,52 @@ export const replayAction = async (ctx, name) => {
809
843
  if (!existsSync(busFile)) {
810
844
  return { success: false, message: `no bus events found for run ${run}` };
811
845
  }
812
- log(output.info(`Resuming org ${name} from checkpoint ${run}...`));
813
- // Create daemon and resume from checkpoint
846
+ log(output.info(`Replaying org ${name} events from checkpoint ${run}...`));
847
+ // Create daemon and replay the bus events for debugging/inspection
814
848
  const { OrgDaemon } = await import('../orgrt/daemon.js');
815
849
  const daemon = new OrgDaemon(ctx.cwd, { forward: false });
816
850
  const resumed = await daemon.replayFrom(name, run);
817
851
  if (!resumed) {
818
852
  return { success: false, message: `replay failed - check bus.jsonl and org config for ${name} are valid` };
819
853
  }
820
- log(output.success(`Org ${name} resumed from ${run} - ${resumed.agents.size} role(s) restored`));
854
+ log(output.success(`Org ${name} events replayed from ${run} as run ${resumed.run}`));
821
855
  log(output.info(`Use: monomind org logs ${name} --run ${resumed.run} to inspect events.`));
822
- log(output.info(`Stop with: monomind org stop ${name}`));
823
- return { success: true, message: `resumed from checkpoint ${run} as ${resumed.run}` };
856
+ log(output.info(`This is debug replay only — it does not restart agent execution. To resume live execution, use: monomind org run ${name} --resume`));
857
+ return { success: true, message: `replayed events from checkpoint ${run} as ${resumed.run}` };
824
858
  };
825
- /** `org resume-from <org> <run-id>` — resume from checkpoint (alias for replay) */
859
+ /** `org resume-from <org>` — resume live execution from the org's persisted
860
+ * checkpoint (runtime.json): restores mailbox queues, policy/token counters,
861
+ * and session state, subject to checkpoint TTL and checksum validation. Unlike
862
+ * `replay`, this restarts real agent execution via `startOrg(..., { resume: true })`. */
826
863
  export const resumeFromAction = async (ctx, name) => {
827
- const run = ctx.args[1];
828
- if (!run) {
829
- return { success: false, message: 'usage: org resume-from <org> <run-id>' };
864
+ log(output.info(`Resuming org ${name} from checkpoint...`));
865
+ const { OrgDaemon } = await import('../orgrt/daemon.js');
866
+ const daemon = new OrgDaemon(ctx.cwd, { forward: false });
867
+ const resumed = await daemon.resumeOrg(name);
868
+ if (!resumed) {
869
+ return { success: false, message: `resume failed for ${name} - check runtime.json checkpoint is present, unexpired, and valid` };
830
870
  }
831
- // Reuse replay logic
832
- return replayAction(ctx, name);
871
+ log(output.success(`Org ${name} resumed - ${resumed.agents.size} role(s) restored`));
872
+ log(output.info(`Stop with: monomind org stop ${name}`));
873
+ return { success: true, message: `resumed ${name} - ${resumed.agents.size} role(s) restored` };
833
874
  };
834
- /** `org branch <org> <run-id> <branch-name>` — create a branch from checkpoint for what-if experiments */
875
+ /** `org branch <org> <run-id> <branch-name>` — snapshot a run's event log for replay.
876
+ * This is NOT an executable what-if scenario: it copies bus.jsonl into a new
877
+ * run directory tagged with a `.branch-source` marker so it can be inspected
878
+ * or replayed later; it does not fork or re-run agent execution.
879
+ * Delegates to the shared, atomic (tmp+rename) implementation in checkpoint-ops.ts. */
835
880
  export const branchAction = async (ctx, name) => {
836
881
  const run = ctx.args[1];
837
882
  const branchName = ctx.args[2];
838
883
  if (!run || !branchName) {
839
884
  return { success: false, message: 'usage: org branch <org> <run-id> <branch-name>' };
840
885
  }
841
- const runDir = join(ctx.cwd, ORG_DIR, name, run);
842
- if (!existsSync(runDir)) {
843
- return { success: false, message: `run ${run} not found for org ${name}` };
844
- }
845
- const branchRun = `branch-${new Date().toISOString().replace(/[-:T]/g, '').slice(0, 14)}-${Math.random().toString(36).slice(2, 6)}`;
846
- const branchDir = join(ctx.cwd, ORG_DIR, name, branchRun);
847
- try {
848
- mkdirSync(branchDir, { recursive: true });
849
- // Copy bus.jsonl to branch
850
- const busFile = join(runDir, 'bus.jsonl');
851
- if (existsSync(busFile)) {
852
- const busContent = readFileSync(busFile, 'utf8');
853
- writeFileSync(join(branchDir, 'bus.jsonl'), busContent);
854
- }
855
- // Create branch marker file
856
- writeFileSync(join(branchDir, '.branch-source'), JSON.stringify({
857
- from: run,
858
- branchedAt: new Date().toISOString(),
859
- name: branchName
860
- }, null, 2));
861
- log(output.success(`Created branch "${branchName}" from ${run} as ${branchRun}`));
862
- return { success: true, message: `branch ${branchName} created as ${branchRun}` };
863
- }
864
- catch (err) {
865
- return { success: false, message: `failed to create branch: ${err instanceof Error ? err.message : String(err)}` };
886
+ const result = branchCheckpoint(ctx.cwd, name, run, branchName);
887
+ if (!result.ok) {
888
+ return { success: false, message: result.error };
866
889
  }
890
+ log(output.success(`Created branch "${branchName}" from ${run} as ${result.branchRun}`));
891
+ return { success: true, message: `branch ${branchName} created as ${result.branchRun}` };
867
892
  };
868
893
  /** `org decisions <org> [--run id]` — show Rifft-style decision traces */
869
894
  export const decisionsAction = async (ctx, name) => {
@@ -906,6 +931,35 @@ function readGatesFile(cwd, org) {
906
931
  return { gates: [] };
907
932
  }
908
933
  }
934
+ /** Read gates.json for a write path. A MISSING file legitimately means "no gates" → [].
935
+ * Any other failure (unreadable, malformed — e.g. a partial daemon write) THROWS:
936
+ * gateResolveAction rewrites this file from what this returns, so silently coercing a
937
+ * failed read to [] would surface a real I/O error as "gate not found" and a
938
+ * subsequent write would replace every recorded gate with just this one. */
939
+ function readGatesFileStrict(cwd, org) {
940
+ const path = join(cwd, ORG_DIR, org, 'gates.json');
941
+ let raw;
942
+ try {
943
+ raw = readFileSync(path, 'utf8');
944
+ }
945
+ catch (err) {
946
+ if (err.code === 'ENOENT')
947
+ return { gates: [] };
948
+ throw new Error(`cannot read ${path}: ${err instanceof Error ? err.message : String(err)}`);
949
+ }
950
+ let parsed;
951
+ try {
952
+ parsed = JSON.parse(raw);
953
+ }
954
+ catch (err) {
955
+ throw new Error(`${path} is not valid JSON (${err instanceof Error ? err.message : String(err)})`);
956
+ }
957
+ if (parsed?.gates === undefined || parsed.gates === null)
958
+ return { gates: [] };
959
+ if (!Array.isArray(parsed.gates))
960
+ throw new Error(`${path}: "gates" is not an array`);
961
+ return { gates: parsed.gates };
962
+ }
909
963
  export const gatesAction = async (ctx, name) => {
910
964
  const data = readGatesFile(ctx.cwd, name);
911
965
  const showAll = ctx.flags['all'] === true;
@@ -931,7 +985,14 @@ export const gateResolveAction = async (ctx, name, approved) => {
931
985
  const resolution = ctx.args.slice(2).join(' ') || undefined;
932
986
  if (!gateId)
933
987
  return { success: false, message: `usage: monomind org gate-${approved ? 'approve' : 'reject'} ${name} <gate-id> [resolution]` };
934
- const data = readGatesFile(ctx.cwd, name);
988
+ let data;
989
+ try {
990
+ data = readGatesFileStrict(ctx.cwd, name);
991
+ }
992
+ catch (err) {
993
+ log(output.error(`Cannot read gates for org ${name}: ${err instanceof Error ? err.message : String(err)}`));
994
+ return { success: false, message: 'gates.json unreadable — gate not resolved' };
995
+ }
935
996
  const gate = data.gates.find(g => g.id === gateId);
936
997
  if (!gate)
937
998
  return { success: false, message: `gate "${gateId}" not found for org "${name}"` };
@@ -952,14 +1013,42 @@ export const gateResolveAction = async (ctx, name, approved) => {
952
1013
  log(output.success(`Gate ${gateId} ${approved ? 'approved' : 'rejected'} (live).`));
953
1014
  return { success: true, message: `gate ${approved ? 'approved' : 'rejected'}` };
954
1015
  }
955
- log(output.error(`Live resolution rejected: ${d.error ?? res.status}`));
956
- return { success: false, message: d.error ?? `HTTP ${res.status}` };
1016
+ log(output.warning(`Live resolution rejected (${d.error ?? res.status}) — falling back to offline queue.`));
957
1017
  }
958
1018
  catch (err) {
959
- log(output.error(`Hosting daemon unreachable: ${err instanceof Error ? err.message : 'error'}`));
960
- return { success: false, message: 'daemon unreachable — gate can only be resolved while the org is running' };
1019
+ log(output.warning(`Hosting daemon unreachable (${err instanceof Error ? err.message : 'error'}) — falling back to offline queue.`));
961
1020
  }
962
1021
  }
963
- return { success: false, message: `org "${name}" is not running — gates can only be resolved on a live org` };
1022
+ // Offline path: no live daemon hosts this org (or the live call failed) —
1023
+ // resolve gates.json directly, same as resolveApproval's offline branch.
1024
+ // Re-read fresh (mirrors answerAction/resolveApproval) in case a live
1025
+ // daemon resolved this gate concurrently while the live call above was
1026
+ // in flight or timing out.
1027
+ const { writeGates } = await import('../orgrt/decisions.js');
1028
+ let fresh;
1029
+ try {
1030
+ fresh = readGatesFileStrict(ctx.cwd, name);
1031
+ }
1032
+ catch (err) {
1033
+ log(output.error(`Refusing to rewrite gates.json — ${err instanceof Error ? err.message : String(err)}`));
1034
+ log(output.warning(`The gate was NOT resolved. Fix or restore ${join(ctx.cwd, ORG_DIR, name, 'gates.json')}, then retry.`));
1035
+ return { success: false, message: 'gates.json unreadable — gate not resolved' };
1036
+ }
1037
+ const idx = fresh.gates.findIndex(g => g.id === gateId);
1038
+ if (idx === -1)
1039
+ return { success: false, message: `gate "${gateId}" not found for org "${name}"` };
1040
+ if (fresh.gates[idx].status !== 'pending') {
1041
+ return { success: false, message: `gate "${gateId}" already resolved (${fresh.gates[idx].status})` };
1042
+ }
1043
+ fresh.gates[idx] = {
1044
+ ...fresh.gates[idx],
1045
+ status: approved ? 'approved' : 'rejected',
1046
+ resolvedAt: Date.now(),
1047
+ resolvedBy: 'human',
1048
+ resolution,
1049
+ };
1050
+ writeGates(ctx.cwd, name, fresh);
1051
+ log(output.success(`Gate ${gateId} ${approved ? 'approved' : 'rejected'} — ${name} picks it up on its next cycle.`));
1052
+ return { success: true, message: `gate ${approved ? 'approved' : 'rejected'} (queued)` };
964
1053
  };
965
1054
  //# sourceMappingURL=org-observe.js.map