@monoes/monomindcli 2.9.23 → 2.9.24

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 (857) hide show
  1. package/dist/src/agents/registry-builder.d.ts.map +1 -1
  2. package/dist/src/agents/registry-builder.js +8 -9
  3. package/dist/src/agents/registry-builder.js.map +1 -1
  4. package/dist/src/autopilot-state.js +6 -6
  5. package/dist/src/autopilot-state.js.map +1 -1
  6. package/dist/src/browser/action-builder/analyzer.d.ts.map +1 -1
  7. package/dist/src/browser/action-builder/analyzer.js +6 -6
  8. package/dist/src/browser/action-builder/analyzer.js.map +1 -1
  9. package/dist/src/browser/action-builder/types.d.ts.map +1 -1
  10. package/dist/src/browser/adapters/gemini.d.ts.map +1 -1
  11. package/dist/src/browser/adapters/index.d.ts.map +1 -1
  12. package/dist/src/browser/adapters/index.js +2 -2
  13. package/dist/src/browser/adapters/index.js.map +1 -1
  14. package/dist/src/browser/adapters/instagram.d.ts.map +1 -1
  15. package/dist/src/browser/adapters/linkedin.d.ts.map +1 -1
  16. package/dist/src/browser/adapters/linkedin.js +9 -1
  17. package/dist/src/browser/adapters/linkedin.js.map +1 -1
  18. package/dist/src/browser/adapters/x.d.ts.map +1 -1
  19. package/dist/src/browser/adapters/x.js +14 -2
  20. package/dist/src/browser/adapters/x.js.map +1 -1
  21. package/dist/src/browser/dashboard/server.d.ts.map +1 -1
  22. package/dist/src/browser/dashboard/server.js +22 -12
  23. package/dist/src/browser/dashboard/server.js.map +1 -1
  24. package/dist/src/browser/dashboard/ui.html +3 -3
  25. package/dist/src/browser/workflow/engine.d.ts +1 -1
  26. package/dist/src/browser/workflow/engine.d.ts.map +1 -1
  27. package/dist/src/browser/workflow/engine.js +74 -25
  28. package/dist/src/browser/workflow/engine.js.map +1 -1
  29. package/dist/src/browser/workflow/store.d.ts +1 -1
  30. package/dist/src/browser/workflow/store.d.ts.map +1 -1
  31. package/dist/src/browser/workflow/store.js +54 -26
  32. package/dist/src/browser/workflow/store.js.map +1 -1
  33. package/dist/src/browser/workflow/types.d.ts.map +1 -1
  34. package/dist/src/capabilities/cap-code.d.ts.map +1 -1
  35. package/dist/src/capabilities/cap-code.js.map +1 -1
  36. package/dist/src/capabilities/cap-data.d.ts.map +1 -1
  37. package/dist/src/capabilities/cap-data.js +28 -8
  38. package/dist/src/capabilities/cap-data.js.map +1 -1
  39. package/dist/src/capabilities/cap-documents.d.ts.map +1 -1
  40. package/dist/src/capabilities/cap-documents.js +93 -22
  41. package/dist/src/capabilities/cap-documents.js.map +1 -1
  42. package/dist/src/capabilities/cap-graph.d.ts.map +1 -1
  43. package/dist/src/capabilities/cap-graph.js +3 -3
  44. package/dist/src/capabilities/cap-graph.js.map +1 -1
  45. package/dist/src/capabilities/cap-media.d.ts.map +1 -1
  46. package/dist/src/capabilities/cap-media.js +1 -1
  47. package/dist/src/capabilities/cap-media.js.map +1 -1
  48. package/dist/src/capabilities/cap-timeline.d.ts.map +1 -1
  49. package/dist/src/capabilities/cap-timeline.js +33 -7
  50. package/dist/src/capabilities/cap-timeline.js.map +1 -1
  51. package/dist/src/capabilities/index.d.ts +5 -5
  52. package/dist/src/capabilities/index.d.ts.map +1 -1
  53. package/dist/src/capabilities/index.js +5 -5
  54. package/dist/src/capabilities/index.js.map +1 -1
  55. package/dist/src/capabilities/manager.d.ts.map +1 -1
  56. package/dist/src/capabilities/manager.js +6 -6
  57. package/dist/src/capabilities/manager.js.map +1 -1
  58. package/dist/src/capabilities/scanner.d.ts.map +1 -1
  59. package/dist/src/capabilities/scanner.js +103 -14
  60. package/dist/src/capabilities/scanner.js.map +1 -1
  61. package/dist/src/commands/agent-lifecycle.d.ts.map +1 -1
  62. package/dist/src/commands/agent-lifecycle.js +116 -32
  63. package/dist/src/commands/agent-lifecycle.js.map +1 -1
  64. package/dist/src/commands/agent-ops.d.ts.map +1 -1
  65. package/dist/src/commands/agent-ops.js +72 -19
  66. package/dist/src/commands/agent-ops.js.map +1 -1
  67. package/dist/src/commands/agent.d.ts.map +1 -1
  68. package/dist/src/commands/agent.js +11 -3
  69. package/dist/src/commands/agent.js.map +1 -1
  70. package/dist/src/commands/analyze-ast.d.ts.map +1 -1
  71. package/dist/src/commands/analyze-ast.js +41 -16
  72. package/dist/src/commands/analyze-ast.js.map +1 -1
  73. package/dist/src/commands/analyze-diff.d.ts.map +1 -1
  74. package/dist/src/commands/analyze-diff.js +147 -35
  75. package/dist/src/commands/analyze-diff.js.map +1 -1
  76. package/dist/src/commands/analyze-imports.d.ts.map +1 -1
  77. package/dist/src/commands/analyze-imports.js +59 -16
  78. package/dist/src/commands/analyze-imports.js.map +1 -1
  79. package/dist/src/commands/analyze-symbols.d.ts.map +1 -1
  80. package/dist/src/commands/analyze-symbols.js +48 -20
  81. package/dist/src/commands/analyze-symbols.js.map +1 -1
  82. package/dist/src/commands/analyze.d.ts.map +1 -1
  83. package/dist/src/commands/analyze.js +30 -14
  84. package/dist/src/commands/analyze.js.map +1 -1
  85. package/dist/src/commands/autopilot.d.ts.map +1 -1
  86. package/dist/src/commands/autopilot.js +2 -2
  87. package/dist/src/commands/autopilot.js.map +1 -1
  88. package/dist/src/commands/browse-action.d.ts.map +1 -1
  89. package/dist/src/commands/browse-action.js +65 -17
  90. package/dist/src/commands/browse-action.js.map +1 -1
  91. package/dist/src/commands/browse-platform.d.ts.map +1 -1
  92. package/dist/src/commands/browse-platform.js +13 -10
  93. package/dist/src/commands/browse-platform.js.map +1 -1
  94. package/dist/src/commands/browse-workflow.d.ts.map +1 -1
  95. package/dist/src/commands/browse-workflow.js +54 -20
  96. package/dist/src/commands/browse-workflow.js.map +1 -1
  97. package/dist/src/commands/browse.js +2 -2
  98. package/dist/src/commands/browse.js.map +1 -1
  99. package/dist/src/commands/cleanup.d.ts.map +1 -1
  100. package/dist/src/commands/cleanup.js +111 -47
  101. package/dist/src/commands/cleanup.js.map +1 -1
  102. package/dist/src/commands/completions.d.ts.map +1 -1
  103. package/dist/src/commands/completions.js +34 -20
  104. package/dist/src/commands/completions.js.map +1 -1
  105. package/dist/src/commands/config.d.ts.map +1 -1
  106. package/dist/src/commands/config.js +90 -49
  107. package/dist/src/commands/config.js.map +1 -1
  108. package/dist/src/commands/crash-reporting.d.ts.map +1 -1
  109. package/dist/src/commands/crash-reporting.js +10 -4
  110. package/dist/src/commands/crash-reporting.js.map +1 -1
  111. package/dist/src/commands/design-detect.d.ts.map +1 -1
  112. package/dist/src/commands/design-detect.js +33 -12
  113. package/dist/src/commands/design-detect.js.map +1 -1
  114. package/dist/src/commands/design-palette.d.ts.map +1 -1
  115. package/dist/src/commands/design-palette.js +770 -380
  116. package/dist/src/commands/design-palette.js.map +1 -1
  117. package/dist/src/commands/doc.d.ts.map +1 -1
  118. package/dist/src/commands/doc.js +272 -60
  119. package/dist/src/commands/doc.js.map +1 -1
  120. package/dist/src/commands/doctor-env-checks.d.ts.map +1 -1
  121. package/dist/src/commands/doctor-env-checks.js +130 -31
  122. package/dist/src/commands/doctor-env-checks.js.map +1 -1
  123. package/dist/src/commands/doctor-monoes-checks.d.ts.map +1 -1
  124. package/dist/src/commands/doctor-monoes-checks.js +20 -7
  125. package/dist/src/commands/doctor-monoes-checks.js.map +1 -1
  126. package/dist/src/commands/doctor-project-checks.d.ts.map +1 -1
  127. package/dist/src/commands/doctor-project-checks.js +442 -112
  128. package/dist/src/commands/doctor-project-checks.js.map +1 -1
  129. package/dist/src/commands/doctor.d.ts.map +1 -1
  130. package/dist/src/commands/doctor.js +132 -59
  131. package/dist/src/commands/doctor.js.map +1 -1
  132. package/dist/src/commands/download-embeddings.d.ts.map +1 -1
  133. package/dist/src/commands/download-embeddings.js +1 -1
  134. package/dist/src/commands/download-embeddings.js.map +1 -1
  135. package/dist/src/commands/events.d.ts.map +1 -1
  136. package/dist/src/commands/events.js +5 -2
  137. package/dist/src/commands/events.js.map +1 -1
  138. package/dist/src/commands/guidance.d.ts.map +1 -1
  139. package/dist/src/commands/guidance.js +38 -14
  140. package/dist/src/commands/guidance.js.map +1 -1
  141. package/dist/src/commands/hooks-core-commands.d.ts.map +1 -1
  142. package/dist/src/commands/hooks-core-commands.js +71 -44
  143. package/dist/src/commands/hooks-core-commands.js.map +1 -1
  144. package/dist/src/commands/hooks-coverage-commands.d.ts +1 -2
  145. package/dist/src/commands/hooks-coverage-commands.d.ts.map +1 -1
  146. package/dist/src/commands/hooks-coverage-commands.js +140 -58
  147. package/dist/src/commands/hooks-coverage-commands.js.map +1 -1
  148. package/dist/src/commands/hooks-coverage-gaps.d.ts.map +1 -1
  149. package/dist/src/commands/hooks-coverage-gaps.js +74 -36
  150. package/dist/src/commands/hooks-coverage-gaps.js.map +1 -1
  151. package/dist/src/commands/hooks-coverage-routing.d.ts.map +1 -1
  152. package/dist/src/commands/hooks-coverage-routing.js +139 -66
  153. package/dist/src/commands/hooks-coverage-routing.js.map +1 -1
  154. package/dist/src/commands/hooks-coverage-utils.d.ts.map +1 -1
  155. package/dist/src/commands/hooks-coverage-utils.js +27 -8
  156. package/dist/src/commands/hooks-coverage-utils.js.map +1 -1
  157. package/dist/src/commands/hooks-extended-commands.d.ts.map +1 -1
  158. package/dist/src/commands/hooks-extended-commands.js +86 -21
  159. package/dist/src/commands/hooks-extended-commands.js.map +1 -1
  160. package/dist/src/commands/hooks-routing-commands.d.ts.map +1 -1
  161. package/dist/src/commands/hooks-routing-commands.js +174 -82
  162. package/dist/src/commands/hooks-routing-commands.js.map +1 -1
  163. package/dist/src/commands/hooks-workers.d.ts.map +1 -1
  164. package/dist/src/commands/hooks-workers.js +96 -61
  165. package/dist/src/commands/hooks-workers.js.map +1 -1
  166. package/dist/src/commands/hooks.d.ts.map +1 -1
  167. package/dist/src/commands/hooks.js +6 -6
  168. package/dist/src/commands/hooks.js.map +1 -1
  169. package/dist/src/commands/init-subcommands.d.ts.map +1 -1
  170. package/dist/src/commands/init-subcommands.js +12 -5
  171. package/dist/src/commands/init-subcommands.js.map +1 -1
  172. package/dist/src/commands/init-upgrade.d.ts.map +1 -1
  173. package/dist/src/commands/init-upgrade.js +46 -23
  174. package/dist/src/commands/init-upgrade.js.map +1 -1
  175. package/dist/src/commands/init-wizard.d.ts.map +1 -1
  176. package/dist/src/commands/init-wizard.js +161 -36
  177. package/dist/src/commands/init-wizard.js.map +1 -1
  178. package/dist/src/commands/init.d.ts.map +1 -1
  179. package/dist/src/commands/init.js +132 -47
  180. package/dist/src/commands/init.js.map +1 -1
  181. package/dist/src/commands/mcp.d.ts.map +1 -1
  182. package/dist/src/commands/mcp.js +128 -84
  183. package/dist/src/commands/mcp.js.map +1 -1
  184. package/dist/src/commands/memory-admin.d.ts.map +1 -1
  185. package/dist/src/commands/memory-admin.js +67 -48
  186. package/dist/src/commands/memory-admin.js.map +1 -1
  187. package/dist/src/commands/memory-crud.d.ts.map +1 -1
  188. package/dist/src/commands/memory-crud.js +65 -41
  189. package/dist/src/commands/memory-crud.js.map +1 -1
  190. package/dist/src/commands/memory-list.d.ts.map +1 -1
  191. package/dist/src/commands/memory-list.js +6 -6
  192. package/dist/src/commands/memory-list.js.map +1 -1
  193. package/dist/src/commands/memory-transfer.d.ts.map +1 -1
  194. package/dist/src/commands/memory-transfer.js +46 -23
  195. package/dist/src/commands/memory-transfer.js.map +1 -1
  196. package/dist/src/commands/memory.d.ts.map +1 -1
  197. package/dist/src/commands/memory.js +63 -35
  198. package/dist/src/commands/memory.js.map +1 -1
  199. package/dist/src/commands/monograph.d.ts.map +1 -1
  200. package/dist/src/commands/monograph.js +170 -57
  201. package/dist/src/commands/monograph.js.map +1 -1
  202. package/dist/src/commands/monoswarm.d.ts.map +1 -1
  203. package/dist/src/commands/monoswarm.js +11 -19
  204. package/dist/src/commands/monoswarm.js.map +1 -1
  205. package/dist/src/commands/neural-core.d.ts.map +1 -1
  206. package/dist/src/commands/neural-core.js +114 -31
  207. package/dist/src/commands/neural-core.js.map +1 -1
  208. package/dist/src/commands/neural-optimize.d.ts.map +1 -1
  209. package/dist/src/commands/neural-optimize.js +67 -22
  210. package/dist/src/commands/neural-optimize.js.map +1 -1
  211. package/dist/src/commands/neural-registry.d.ts.map +1 -1
  212. package/dist/src/commands/neural-registry.js +50 -14
  213. package/dist/src/commands/neural-registry.js.map +1 -1
  214. package/dist/src/commands/org-observe.d.ts.map +1 -1
  215. package/dist/src/commands/org-observe.js +180 -92
  216. package/dist/src/commands/org-observe.js.map +1 -1
  217. package/dist/src/commands/org-visualize.d.ts.map +1 -1
  218. package/dist/src/commands/org-visualize.js +10 -5
  219. package/dist/src/commands/org-visualize.js.map +1 -1
  220. package/dist/src/commands/org.d.ts +1 -1
  221. package/dist/src/commands/org.d.ts.map +1 -1
  222. package/dist/src/commands/org.js +580 -188
  223. package/dist/src/commands/org.js.map +1 -1
  224. package/dist/src/commands/performance.d.ts.map +1 -1
  225. package/dist/src/commands/performance.js +200 -54
  226. package/dist/src/commands/performance.js.map +1 -1
  227. package/dist/src/commands/platforms.d.ts +1 -1
  228. package/dist/src/commands/platforms.d.ts.map +1 -1
  229. package/dist/src/commands/platforms.js +89 -49
  230. package/dist/src/commands/platforms.js.map +1 -1
  231. package/dist/src/commands/providers.d.ts.map +1 -1
  232. package/dist/src/commands/providers.js +31 -18
  233. package/dist/src/commands/providers.js.map +1 -1
  234. package/dist/src/commands/report-crash.d.ts.map +1 -1
  235. package/dist/src/commands/report-crash.js +17 -5
  236. package/dist/src/commands/report-crash.js.map +1 -1
  237. package/dist/src/commands/route.d.ts.map +1 -1
  238. package/dist/src/commands/route.js +123 -41
  239. package/dist/src/commands/route.js.map +1 -1
  240. package/dist/src/commands/search-universal.d.ts +1 -1
  241. package/dist/src/commands/search-universal.d.ts.map +1 -1
  242. package/dist/src/commands/search-universal.js +29 -14
  243. package/dist/src/commands/search-universal.js.map +1 -1
  244. package/dist/src/commands/security-cve.d.ts.map +1 -1
  245. package/dist/src/commands/security-cve.js +75 -34
  246. package/dist/src/commands/security-cve.js.map +1 -1
  247. package/dist/src/commands/security-misc.d.ts.map +1 -1
  248. package/dist/src/commands/security-misc.js +173 -43
  249. package/dist/src/commands/security-misc.js.map +1 -1
  250. package/dist/src/commands/security-scan.d.ts +1 -1
  251. package/dist/src/commands/security-scan.d.ts.map +1 -1
  252. package/dist/src/commands/security-scan.js +135 -39
  253. package/dist/src/commands/security-scan.js.map +1 -1
  254. package/dist/src/commands/security.d.ts.map +1 -1
  255. package/dist/src/commands/security.js +9 -2
  256. package/dist/src/commands/security.js.map +1 -1
  257. package/dist/src/commands/session.d.ts.map +1 -1
  258. package/dist/src/commands/session.js +81 -75
  259. package/dist/src/commands/session.js.map +1 -1
  260. package/dist/src/commands/start.d.ts.map +1 -1
  261. package/dist/src/commands/start.js +43 -34
  262. package/dist/src/commands/start.js.map +1 -1
  263. package/dist/src/commands/status.d.ts.map +1 -1
  264. package/dist/src/commands/status.js +88 -75
  265. package/dist/src/commands/status.js.map +1 -1
  266. package/dist/src/commands/task.d.ts.map +1 -1
  267. package/dist/src/commands/task.js +115 -84
  268. package/dist/src/commands/task.js.map +1 -1
  269. package/dist/src/commands/tokens.d.ts.map +1 -1
  270. package/dist/src/commands/tokens.js +64 -28
  271. package/dist/src/commands/tokens.js.map +1 -1
  272. package/dist/src/commands/update.d.ts.map +1 -1
  273. package/dist/src/commands/update.js +3 -5
  274. package/dist/src/commands/update.js.map +1 -1
  275. package/dist/src/consensus/audit-writer.d.ts +5 -0
  276. package/dist/src/consensus/audit-writer.d.ts.map +1 -1
  277. package/dist/src/consensus/audit-writer.js +18 -10
  278. package/dist/src/consensus/audit-writer.js.map +1 -1
  279. package/dist/src/consensus/tally.d.ts.map +1 -1
  280. package/dist/src/consensus/tally.js +2 -2
  281. package/dist/src/consensus/tally.js.map +1 -1
  282. package/dist/src/index.d.ts +6 -6
  283. package/dist/src/index.d.ts.map +1 -1
  284. package/dist/src/index.js +41 -35
  285. package/dist/src/index.js.map +1 -1
  286. package/dist/src/init/claudemd-generator.d.ts +1 -1
  287. package/dist/src/init/claudemd-generator.d.ts.map +1 -1
  288. package/dist/src/init/claudemd-generator.js +22 -7
  289. package/dist/src/init/claudemd-generator.js.map +1 -1
  290. package/dist/src/init/codex-generator.d.ts +7 -1
  291. package/dist/src/init/codex-generator.d.ts.map +1 -1
  292. package/dist/src/init/codex-generator.js +114 -1
  293. package/dist/src/init/codex-generator.js.map +1 -1
  294. package/dist/src/init/copy-assets.d.ts.map +1 -1
  295. package/dist/src/init/copy-assets.js +13 -12
  296. package/dist/src/init/copy-assets.js.map +1 -1
  297. package/dist/src/init/executor.d.ts +1 -1
  298. package/dist/src/init/executor.d.ts.map +1 -1
  299. package/dist/src/init/executor.js +49 -29
  300. package/dist/src/init/executor.js.map +1 -1
  301. package/dist/src/init/geminimd-generator.d.ts +1 -1
  302. package/dist/src/init/geminimd-generator.d.ts.map +1 -1
  303. package/dist/src/init/geminimd-generator.js +2 -2
  304. package/dist/src/init/geminimd-generator.js.map +1 -1
  305. package/dist/src/init/helpers-generator.d.ts.map +1 -1
  306. package/dist/src/init/helpers-generator.js +6 -6
  307. package/dist/src/init/helpers-generator.js.map +1 -1
  308. package/dist/src/init/index.d.ts +8 -8
  309. package/dist/src/init/index.d.ts.map +1 -1
  310. package/dist/src/init/index.js +9 -9
  311. package/dist/src/init/index.js.map +1 -1
  312. package/dist/src/init/kimi-generator.d.ts +1 -1
  313. package/dist/src/init/kimi-generator.d.ts.map +1 -1
  314. package/dist/src/init/kimi-generator.js +34 -28
  315. package/dist/src/init/kimi-generator.js.map +1 -1
  316. package/dist/src/init/mcp-generator.d.ts.map +1 -1
  317. package/dist/src/init/mcp-generator.js +3 -11
  318. package/dist/src/init/mcp-generator.js.map +1 -1
  319. package/dist/src/init/opencode-generator.d.ts.map +1 -1
  320. package/dist/src/init/opencode-generator.js +33 -20
  321. package/dist/src/init/opencode-generator.js.map +1 -1
  322. package/dist/src/init/settings-generator.d.ts.map +1 -1
  323. package/dist/src/init/settings-generator.js +2 -5
  324. package/dist/src/init/settings-generator.js.map +1 -1
  325. package/dist/src/init/shared-instructions-generator.d.ts.map +1 -1
  326. package/dist/src/init/shared-instructions-generator.js +124 -76
  327. package/dist/src/init/shared-instructions-generator.js.map +1 -1
  328. package/dist/src/init/shared.d.ts.map +1 -1
  329. package/dist/src/init/shared.js +23 -18
  330. package/dist/src/init/shared.js.map +1 -1
  331. package/dist/src/init/types.js +2 -2
  332. package/dist/src/init/types.js.map +1 -1
  333. package/dist/src/init/upgrade.d.ts.map +1 -1
  334. package/dist/src/init/upgrade.js +19 -17
  335. package/dist/src/init/upgrade.js.map +1 -1
  336. package/dist/src/init/write-antigravity.d.ts.map +1 -1
  337. package/dist/src/init/write-antigravity.js +15 -7
  338. package/dist/src/init/write-antigravity.js.map +1 -1
  339. package/dist/src/init/write-capabilities.d.ts.map +1 -1
  340. package/dist/src/init/write-capabilities.js +3 -3
  341. package/dist/src/init/write-capabilities.js.map +1 -1
  342. package/dist/src/init/write-claude.d.ts.map +1 -1
  343. package/dist/src/init/write-claude.js +18 -14
  344. package/dist/src/init/write-claude.js.map +1 -1
  345. package/dist/src/init/write-codex.d.ts.map +1 -1
  346. package/dist/src/init/write-codex.js +72 -7
  347. package/dist/src/init/write-codex.js.map +1 -1
  348. package/dist/src/init/write-kimicode.d.ts.map +1 -1
  349. package/dist/src/init/write-kimicode.js +10 -6
  350. package/dist/src/init/write-kimicode.js.map +1 -1
  351. package/dist/src/init/write-opencode.d.ts.map +1 -1
  352. package/dist/src/init/write-opencode.js +4 -4
  353. package/dist/src/init/write-opencode.js.map +1 -1
  354. package/dist/src/init/write-runtime-config.d.ts.map +1 -1
  355. package/dist/src/init/write-runtime-config.js +20 -19
  356. package/dist/src/init/write-runtime-config.js.map +1 -1
  357. package/dist/src/init/write-sample-org.js +1 -1
  358. package/dist/src/init/write-sample-org.js.map +1 -1
  359. package/dist/src/knowledge/document-pipeline.d.ts.map +1 -1
  360. package/dist/src/knowledge/document-pipeline.js +144 -48
  361. package/dist/src/knowledge/document-pipeline.js.map +1 -1
  362. package/dist/src/knowledge/eval/corpus.d.ts.map +1 -1
  363. package/dist/src/knowledge/eval/corpus.js +18 -9
  364. package/dist/src/knowledge/eval/corpus.js.map +1 -1
  365. package/dist/src/knowledge/eval/golden-set.d.ts.map +1 -1
  366. package/dist/src/knowledge/eval/golden-set.js +4286 -136
  367. package/dist/src/knowledge/eval/golden-set.js.map +1 -1
  368. package/dist/src/knowledge/eval/harness.d.ts +2 -2
  369. package/dist/src/knowledge/eval/harness.d.ts.map +1 -1
  370. package/dist/src/knowledge/eval/harness.js +163 -70
  371. package/dist/src/knowledge/eval/harness.js.map +1 -1
  372. package/dist/src/knowledge/eval/metrics.d.ts.map +1 -1
  373. package/dist/src/knowledge/eval/metrics.js +25 -18
  374. package/dist/src/knowledge/eval/metrics.js.map +1 -1
  375. package/dist/src/knowledge/eval/model-presence.d.ts.map +1 -1
  376. package/dist/src/knowledge/eval/model-presence.js +40 -14
  377. package/dist/src/knowledge/eval/model-presence.js.map +1 -1
  378. package/dist/src/knowledge/eval/network-guard.d.ts.map +1 -1
  379. package/dist/src/knowledge/eval/network-guard.js +22 -10
  380. package/dist/src/knowledge/eval/network-guard.js.map +1 -1
  381. package/dist/src/knowledge/eval/retrievers.d.ts.map +1 -1
  382. package/dist/src/knowledge/eval/retrievers.js +14 -10
  383. package/dist/src/knowledge/eval/retrievers.js.map +1 -1
  384. package/dist/src/knowledge/eval/signals.d.ts.map +1 -1
  385. package/dist/src/knowledge/eval/signals.js +54 -18
  386. package/dist/src/knowledge/eval/signals.js.map +1 -1
  387. package/dist/src/mcp-client.d.ts.map +1 -1
  388. package/dist/src/mcp-client.js +69 -33
  389. package/dist/src/mcp-client.js.map +1 -1
  390. package/dist/src/mcp-server.d.ts +1 -9
  391. package/dist/src/mcp-server.d.ts.map +1 -1
  392. package/dist/src/mcp-server.js +19 -42
  393. package/dist/src/mcp-server.js.map +1 -1
  394. package/dist/src/mcp-tools/agent-tools.d.ts.map +1 -1
  395. package/dist/src/mcp-tools/agent-tools.js +84 -49
  396. package/dist/src/mcp-tools/agent-tools.js.map +1 -1
  397. package/dist/src/mcp-tools/analyze-tools.d.ts.map +1 -1
  398. package/dist/src/mcp-tools/analyze-tools.js +34 -17
  399. package/dist/src/mcp-tools/analyze-tools.js.map +1 -1
  400. package/dist/src/mcp-tools/auto-install.d.ts.map +1 -1
  401. package/dist/src/mcp-tools/auto-install.js +3 -3
  402. package/dist/src/mcp-tools/auto-install.js.map +1 -1
  403. package/dist/src/mcp-tools/autopilot-tools.d.ts.map +1 -1
  404. package/dist/src/mcp-tools/autopilot-tools.js +29 -9
  405. package/dist/src/mcp-tools/autopilot-tools.js.map +1 -1
  406. package/dist/src/mcp-tools/browser-tools.d.ts.map +1 -1
  407. package/dist/src/mcp-tools/browser-tools.js +119 -37
  408. package/dist/src/mcp-tools/browser-tools.js.map +1 -1
  409. package/dist/src/mcp-tools/claims-tools.d.ts.map +1 -1
  410. package/dist/src/mcp-tools/claims-tools.js +100 -44
  411. package/dist/src/mcp-tools/claims-tools.js.map +1 -1
  412. package/dist/src/mcp-tools/config-tools.d.ts.map +1 -1
  413. package/dist/src/mcp-tools/config-tools.js +36 -15
  414. package/dist/src/mcp-tools/config-tools.js.map +1 -1
  415. package/dist/src/mcp-tools/embeddings-tools.d.ts.map +1 -1
  416. package/dist/src/mcp-tools/embeddings-tools.js +34 -23
  417. package/dist/src/mcp-tools/embeddings-tools.js.map +1 -1
  418. package/dist/src/mcp-tools/github-tools.d.ts.map +1 -1
  419. package/dist/src/mcp-tools/github-tools.js +200 -43
  420. package/dist/src/mcp-tools/github-tools.js.map +1 -1
  421. package/dist/src/mcp-tools/graphify-tools.d.ts.map +1 -1
  422. package/dist/src/mcp-tools/graphify-tools.js +2 -2
  423. package/dist/src/mcp-tools/graphify-tools.js.map +1 -1
  424. package/dist/src/mcp-tools/guidance-tools.d.ts.map +1 -1
  425. package/dist/src/mcp-tools/guidance-tools.js +449 -93
  426. package/dist/src/mcp-tools/guidance-tools.js.map +1 -1
  427. package/dist/src/mcp-tools/hooks-embedding.d.ts +0 -6
  428. package/dist/src/mcp-tools/hooks-embedding.d.ts.map +1 -1
  429. package/dist/src/mcp-tools/hooks-embedding.js +170 -59
  430. package/dist/src/mcp-tools/hooks-embedding.js.map +1 -1
  431. package/dist/src/mcp-tools/hooks-intelligence.d.ts +0 -8
  432. package/dist/src/mcp-tools/hooks-intelligence.d.ts.map +1 -1
  433. package/dist/src/mcp-tools/hooks-intelligence.js +9 -17
  434. package/dist/src/mcp-tools/hooks-intelligence.js.map +1 -1
  435. package/dist/src/mcp-tools/hooks-routing.d.ts.map +1 -1
  436. package/dist/src/mcp-tools/hooks-routing.js +16 -15
  437. package/dist/src/mcp-tools/hooks-routing.js.map +1 -1
  438. package/dist/src/mcp-tools/hooks-tools.d.ts +1 -1
  439. package/dist/src/mcp-tools/hooks-tools.d.ts.map +1 -1
  440. package/dist/src/mcp-tools/hooks-tools.js +2 -2
  441. package/dist/src/mcp-tools/hooks-tools.js.map +1 -1
  442. package/dist/src/mcp-tools/index.d.ts +18 -18
  443. package/dist/src/mcp-tools/index.d.ts.map +1 -1
  444. package/dist/src/mcp-tools/index.js +18 -18
  445. package/dist/src/mcp-tools/index.js.map +1 -1
  446. package/dist/src/mcp-tools/knowledge-tools.d.ts.map +1 -1
  447. package/dist/src/mcp-tools/knowledge-tools.js +88 -28
  448. package/dist/src/mcp-tools/knowledge-tools.js.map +1 -1
  449. package/dist/src/mcp-tools/memory-tools.d.ts.map +1 -1
  450. package/dist/src/mcp-tools/memory-tools.js +156 -39
  451. package/dist/src/mcp-tools/memory-tools.js.map +1 -1
  452. package/dist/src/mcp-tools/monodesign-tools.d.ts.map +1 -1
  453. package/dist/src/mcp-tools/monodesign-tools.js +63 -22
  454. package/dist/src/mcp-tools/monodesign-tools.js.map +1 -1
  455. package/dist/src/mcp-tools/monograph/agent-history-tools.d.ts.map +1 -1
  456. package/dist/src/mcp-tools/monograph/agent-history-tools.js +22 -9
  457. package/dist/src/mcp-tools/monograph/agent-history-tools.js.map +1 -1
  458. package/dist/src/mcp-tools/monograph/build-tools.d.ts.map +1 -1
  459. package/dist/src/mcp-tools/monograph/build-tools.js +37 -16
  460. package/dist/src/mcp-tools/monograph/build-tools.js.map +1 -1
  461. package/dist/src/mcp-tools/monograph/group-tools.d.ts.map +1 -1
  462. package/dist/src/mcp-tools/monograph/group-tools.js +57 -20
  463. package/dist/src/mcp-tools/monograph/group-tools.js.map +1 -1
  464. package/dist/src/mcp-tools/monograph/health-tools.d.ts.map +1 -1
  465. package/dist/src/mcp-tools/monograph/health-tools.js +13 -7
  466. package/dist/src/mcp-tools/monograph/health-tools.js.map +1 -1
  467. package/dist/src/mcp-tools/monograph/impact-tools.js +6 -6
  468. package/dist/src/mcp-tools/monograph/impact-tools.js.map +1 -1
  469. package/dist/src/mcp-tools/monograph/index.d.ts.map +1 -1
  470. package/dist/src/mcp-tools/monograph/index.js +8 -8
  471. package/dist/src/mcp-tools/monograph/index.js.map +1 -1
  472. package/dist/src/mcp-tools/monograph/query-tools.d.ts.map +1 -1
  473. package/dist/src/mcp-tools/monograph/query-tools.js +131 -56
  474. package/dist/src/mcp-tools/monograph/query-tools.js.map +1 -1
  475. package/dist/src/mcp-tools/monograph/shared.d.ts.map +1 -1
  476. package/dist/src/mcp-tools/monograph/shared.js +42 -22
  477. package/dist/src/mcp-tools/monograph/shared.js.map +1 -1
  478. package/dist/src/mcp-tools/monograph/visualize-tools.d.ts.map +1 -1
  479. package/dist/src/mcp-tools/monograph/visualize-tools.js +87 -36
  480. package/dist/src/mcp-tools/monograph/visualize-tools.js.map +1 -1
  481. package/dist/src/mcp-tools/monograph-compat.d.ts.map +1 -1
  482. package/dist/src/mcp-tools/monograph-compat.js +25 -14
  483. package/dist/src/mcp-tools/monograph-compat.js.map +1 -1
  484. package/dist/src/mcp-tools/monograph-tools.d.ts +1 -1
  485. package/dist/src/mcp-tools/monograph-tools.d.ts.map +1 -1
  486. package/dist/src/mcp-tools/monograph-tools.js +1 -1
  487. package/dist/src/mcp-tools/monograph-tools.js.map +1 -1
  488. package/dist/src/mcp-tools/monomind-tools.d.ts.map +1 -1
  489. package/dist/src/mcp-tools/monomind-tools.js +1 -1
  490. package/dist/src/mcp-tools/monomind-tools.js.map +1 -1
  491. package/dist/src/mcp-tools/monoswarm-tools.d.ts.map +1 -1
  492. package/dist/src/mcp-tools/monoswarm-tools.js +217 -81
  493. package/dist/src/mcp-tools/monoswarm-tools.js.map +1 -1
  494. package/dist/src/mcp-tools/performance-tools.d.ts.map +1 -1
  495. package/dist/src/mcp-tools/performance-tools.js +280 -83
  496. package/dist/src/mcp-tools/performance-tools.js.map +1 -1
  497. package/dist/src/mcp-tools/quality/coverage-analysis/prioritize-gaps.d.ts.map +1 -1
  498. package/dist/src/mcp-tools/quality/coverage-analysis/prioritize-gaps.js +9 -4
  499. package/dist/src/mcp-tools/quality/coverage-analysis/prioritize-gaps.js.map +1 -1
  500. package/dist/src/mcp-tools/quality/security-compliance/detect-secrets.d.ts +1 -1
  501. package/dist/src/mcp-tools/quality/security-compliance/detect-secrets.d.ts.map +1 -1
  502. package/dist/src/mcp-tools/quality/security-compliance/detect-secrets.js +36 -14
  503. package/dist/src/mcp-tools/quality/security-compliance/detect-secrets.js.map +1 -1
  504. package/dist/src/mcp-tools/quality-tools.d.ts.map +1 -1
  505. package/dist/src/mcp-tools/quality-tools.js.map +1 -1
  506. package/dist/src/mcp-tools/request-tracker.d.ts.map +1 -1
  507. package/dist/src/mcp-tools/request-tracker.js +2 -1
  508. package/dist/src/mcp-tools/request-tracker.js.map +1 -1
  509. package/dist/src/mcp-tools/security-tools.d.ts.map +1 -1
  510. package/dist/src/mcp-tools/security-tools.js +117 -53
  511. package/dist/src/mcp-tools/security-tools.js.map +1 -1
  512. package/dist/src/mcp-tools/session-tools.d.ts.map +1 -1
  513. package/dist/src/mcp-tools/session-tools.js +22 -13
  514. package/dist/src/mcp-tools/session-tools.js.map +1 -1
  515. package/dist/src/mcp-tools/system-tools.d.ts.map +1 -1
  516. package/dist/src/mcp-tools/system-tools.js +7 -7
  517. package/dist/src/mcp-tools/system-tools.js.map +1 -1
  518. package/dist/src/mcp-tools/task-tools.d.ts.map +1 -1
  519. package/dist/src/mcp-tools/task-tools.js +59 -22
  520. package/dist/src/mcp-tools/task-tools.js.map +1 -1
  521. package/dist/src/mcp-tools/terminal-tools.d.ts.map +1 -1
  522. package/dist/src/mcp-tools/terminal-tools.js +43 -16
  523. package/dist/src/mcp-tools/terminal-tools.js.map +1 -1
  524. package/dist/src/mcp-tools/transfer-tools.d.ts.map +1 -1
  525. package/dist/src/mcp-tools/transfer-tools.js +2 -1
  526. package/dist/src/mcp-tools/transfer-tools.js.map +1 -1
  527. package/dist/src/mcp-tools/types.d.ts +1 -1
  528. package/dist/src/mcp-tools/types.d.ts.map +1 -1
  529. package/dist/src/mcp-tools/types.js +1 -1
  530. package/dist/src/mcp-tools/types.js.map +1 -1
  531. package/dist/src/memory/bm25-index.d.ts.map +1 -1
  532. package/dist/src/memory/bm25-index.js.map +1 -1
  533. package/dist/src/memory/embedding-operations.d.ts.map +1 -1
  534. package/dist/src/memory/embedding-operations.js +23 -19
  535. package/dist/src/memory/embedding-operations.js.map +1 -1
  536. package/dist/src/memory/ewc-consolidation.d.ts.map +1 -1
  537. package/dist/src/memory/ewc-consolidation.js +31 -27
  538. package/dist/src/memory/ewc-consolidation.js.map +1 -1
  539. package/dist/src/memory/hnsw-operations.d.ts +1 -1
  540. package/dist/src/memory/hnsw-operations.d.ts.map +1 -1
  541. package/dist/src/memory/hnsw-operations.js +5 -6
  542. package/dist/src/memory/hnsw-operations.js.map +1 -1
  543. package/dist/src/memory/intelligence.d.ts.map +1 -1
  544. package/dist/src/memory/intelligence.js +122 -84
  545. package/dist/src/memory/intelligence.js.map +1 -1
  546. package/dist/src/memory/memory-bridge.d.ts.map +1 -1
  547. package/dist/src/memory/memory-bridge.js +7 -7
  548. package/dist/src/memory/memory-bridge.js.map +1 -1
  549. package/dist/src/memory/memory-crud.d.ts +1 -1
  550. package/dist/src/memory/memory-crud.d.ts.map +1 -1
  551. package/dist/src/memory/memory-crud.js +82 -47
  552. package/dist/src/memory/memory-crud.js.map +1 -1
  553. package/dist/src/memory/memory-initializer.d.ts +7 -7
  554. package/dist/src/memory/memory-initializer.d.ts.map +1 -1
  555. package/dist/src/memory/memory-initializer.js +38 -34
  556. package/dist/src/memory/memory-initializer.js.map +1 -1
  557. package/dist/src/memory/memory-kg.d.ts.map +1 -1
  558. package/dist/src/memory/memory-kg.js +173 -41
  559. package/dist/src/memory/memory-kg.js.map +1 -1
  560. package/dist/src/memory/memory-migrations.d.ts.map +1 -1
  561. package/dist/src/memory/memory-migrations.js +11 -7
  562. package/dist/src/memory/memory-migrations.js.map +1 -1
  563. package/dist/src/memory/memory-read.d.ts.map +1 -1
  564. package/dist/src/memory/memory-read.js +45 -21
  565. package/dist/src/memory/memory-read.js.map +1 -1
  566. package/dist/src/memory/query-router.d.ts.map +1 -1
  567. package/dist/src/memory/query-router.js +29 -12
  568. package/dist/src/memory/query-router.js.map +1 -1
  569. package/dist/src/memory/sona-optimizer.d.ts.map +1 -1
  570. package/dist/src/memory/sona-optimizer.js +163 -41
  571. package/dist/src/memory/sona-optimizer.js.map +1 -1
  572. package/dist/src/memory/text-tokens.d.ts.map +1 -1
  573. package/dist/src/memory/text-tokens.js +78 -8
  574. package/dist/src/memory/text-tokens.js.map +1 -1
  575. package/dist/src/monovector/command-outcomes.d.ts.map +1 -1
  576. package/dist/src/monovector/command-outcomes.js +23 -8
  577. package/dist/src/monovector/command-outcomes.js.map +1 -1
  578. package/dist/src/monovector/coverage-router.d.ts.map +1 -1
  579. package/dist/src/monovector/coverage-router.js +29 -14
  580. package/dist/src/monovector/coverage-router.js.map +1 -1
  581. package/dist/src/monovector/coverage-tools.d.ts.map +1 -1
  582. package/dist/src/monovector/coverage-tools.js +21 -6
  583. package/dist/src/monovector/coverage-tools.js.map +1 -1
  584. package/dist/src/monovector/diff-classifier.d.ts +1 -1
  585. package/dist/src/monovector/diff-classifier.d.ts.map +1 -1
  586. package/dist/src/monovector/diff-classifier.js +100 -45
  587. package/dist/src/monovector/diff-classifier.js.map +1 -1
  588. package/dist/src/monovector/index.d.ts +3 -4
  589. package/dist/src/monovector/index.d.ts.map +1 -1
  590. package/dist/src/monovector/index.js +18 -6
  591. package/dist/src/monovector/index.js.map +1 -1
  592. package/dist/src/monovector/init-state.d.ts.map +1 -1
  593. package/dist/src/monovector/init-state.js +15 -5
  594. package/dist/src/monovector/init-state.js.map +1 -1
  595. package/dist/src/monovector/model-outcomes.js +2 -2
  596. package/dist/src/monovector/model-outcomes.js.map +1 -1
  597. package/dist/src/monovector/route-outcomes.d.ts.map +1 -1
  598. package/dist/src/monovector/route-outcomes.js +40 -21
  599. package/dist/src/monovector/route-outcomes.js.map +1 -1
  600. package/dist/src/observability/replay-reader.d.ts.map +1 -1
  601. package/dist/src/observability/replay-reader.js +6 -8
  602. package/dist/src/observability/replay-reader.js.map +1 -1
  603. package/dist/src/orgrt/agent-runner.d.ts +1 -1
  604. package/dist/src/orgrt/agent-runner.d.ts.map +1 -1
  605. package/dist/src/orgrt/agent-runner.js +1 -1
  606. package/dist/src/orgrt/agent-runner.js.map +1 -1
  607. package/dist/src/orgrt/antigravity-runner.d.ts +1 -1
  608. package/dist/src/orgrt/antigravity-runner.d.ts.map +1 -1
  609. package/dist/src/orgrt/antigravity-runner.js +46 -17
  610. package/dist/src/orgrt/antigravity-runner.js.map +1 -1
  611. package/dist/src/orgrt/approvals.d.ts.map +1 -1
  612. package/dist/src/orgrt/approvals.js +24 -8
  613. package/dist/src/orgrt/approvals.js.map +1 -1
  614. package/dist/src/orgrt/broker.d.ts.map +1 -1
  615. package/dist/src/orgrt/broker.js +11 -4
  616. package/dist/src/orgrt/broker.js.map +1 -1
  617. package/dist/src/orgrt/bus.d.ts.map +1 -1
  618. package/dist/src/orgrt/bus.js +28 -15
  619. package/dist/src/orgrt/bus.js.map +1 -1
  620. package/dist/src/orgrt/checkpoint-ops.d.ts +1 -1
  621. package/dist/src/orgrt/checkpoint-ops.d.ts.map +1 -1
  622. package/dist/src/orgrt/checkpoint-ops.js +36 -19
  623. package/dist/src/orgrt/checkpoint-ops.js.map +1 -1
  624. package/dist/src/orgrt/checkpoint.d.ts.map +1 -1
  625. package/dist/src/orgrt/checkpoint.js +3 -1
  626. package/dist/src/orgrt/checkpoint.js.map +1 -1
  627. package/dist/src/orgrt/codex-runner.d.ts +1 -1
  628. package/dist/src/orgrt/codex-runner.d.ts.map +1 -1
  629. package/dist/src/orgrt/codex-runner.js +45 -18
  630. package/dist/src/orgrt/codex-runner.js.map +1 -1
  631. package/dist/src/orgrt/copilot-runner.d.ts +1 -1
  632. package/dist/src/orgrt/copilot-runner.d.ts.map +1 -1
  633. package/dist/src/orgrt/copilot-runner.js +48 -16
  634. package/dist/src/orgrt/copilot-runner.js.map +1 -1
  635. package/dist/src/orgrt/cross-org.d.ts.map +1 -1
  636. package/dist/src/orgrt/cross-org.js +213 -41
  637. package/dist/src/orgrt/cross-org.js.map +1 -1
  638. package/dist/src/orgrt/crush-runner.d.ts +1 -1
  639. package/dist/src/orgrt/crush-runner.d.ts.map +1 -1
  640. package/dist/src/orgrt/crush-runner.js +51 -17
  641. package/dist/src/orgrt/crush-runner.js.map +1 -1
  642. package/dist/src/orgrt/daemon.d.ts +5 -6
  643. package/dist/src/orgrt/daemon.d.ts.map +1 -1
  644. package/dist/src/orgrt/daemon.js +55 -47
  645. package/dist/src/orgrt/daemon.js.map +1 -1
  646. package/dist/src/orgrt/decisions.d.ts +2 -2
  647. package/dist/src/orgrt/decisions.d.ts.map +1 -1
  648. package/dist/src/orgrt/decisions.js +83 -34
  649. package/dist/src/orgrt/decisions.js.map +1 -1
  650. package/dist/src/orgrt/fence.d.ts +2 -2
  651. package/dist/src/orgrt/fence.d.ts.map +1 -1
  652. package/dist/src/orgrt/fence.js +13 -5
  653. package/dist/src/orgrt/fence.js.map +1 -1
  654. package/dist/src/orgrt/forwarder.js +1 -1
  655. package/dist/src/orgrt/forwarder.js.map +1 -1
  656. package/dist/src/orgrt/grok-runner.d.ts +1 -1
  657. package/dist/src/orgrt/grok-runner.d.ts.map +1 -1
  658. package/dist/src/orgrt/grok-runner.js +36 -16
  659. package/dist/src/orgrt/grok-runner.js.map +1 -1
  660. package/dist/src/orgrt/inbox.d.ts.map +1 -1
  661. package/dist/src/orgrt/inbox.js +5 -3
  662. package/dist/src/orgrt/inbox.js.map +1 -1
  663. package/dist/src/orgrt/kimicode-runner.d.ts +1 -1
  664. package/dist/src/orgrt/kimicode-runner.d.ts.map +1 -1
  665. package/dist/src/orgrt/kimicode-runner.js +40 -15
  666. package/dist/src/orgrt/kimicode-runner.js.map +1 -1
  667. package/dist/src/orgrt/mailbox.d.ts.map +1 -1
  668. package/dist/src/orgrt/mailbox.js +15 -5
  669. package/dist/src/orgrt/mailbox.js.map +1 -1
  670. package/dist/src/orgrt/migrate.d.ts.map +1 -1
  671. package/dist/src/orgrt/migrate.js +38 -25
  672. package/dist/src/orgrt/migrate.js.map +1 -1
  673. package/dist/src/orgrt/opencode-runner.d.ts +1 -1
  674. package/dist/src/orgrt/opencode-runner.d.ts.map +1 -1
  675. package/dist/src/orgrt/opencode-runner.js +16 -5
  676. package/dist/src/orgrt/opencode-runner.js.map +1 -1
  677. package/dist/src/orgrt/org-memory.d.ts +2 -2
  678. package/dist/src/orgrt/org-memory.d.ts.map +1 -1
  679. package/dist/src/orgrt/org-memory.js +66 -26
  680. package/dist/src/orgrt/org-memory.js.map +1 -1
  681. package/dist/src/orgrt/pi-rpc-runner.d.ts +1 -1
  682. package/dist/src/orgrt/pi-rpc-runner.d.ts.map +1 -1
  683. package/dist/src/orgrt/pi-rpc-runner.js +60 -25
  684. package/dist/src/orgrt/pi-rpc-runner.js.map +1 -1
  685. package/dist/src/orgrt/pi-runner.d.ts +1 -1
  686. package/dist/src/orgrt/pi-runner.d.ts.map +1 -1
  687. package/dist/src/orgrt/pi-runner.js +35 -16
  688. package/dist/src/orgrt/pi-runner.js.map +1 -1
  689. package/dist/src/orgrt/policy.d.ts.map +1 -1
  690. package/dist/src/orgrt/policy.js +65 -20
  691. package/dist/src/orgrt/policy.js.map +1 -1
  692. package/dist/src/orgrt/prechecks.d.ts.map +1 -1
  693. package/dist/src/orgrt/prechecks.js +9 -4
  694. package/dist/src/orgrt/prechecks.js.map +1 -1
  695. package/dist/src/orgrt/provider.d.ts +1 -1
  696. package/dist/src/orgrt/provider.d.ts.map +1 -1
  697. package/dist/src/orgrt/provider.js.map +1 -1
  698. package/dist/src/orgrt/questions.d.ts.map +1 -1
  699. package/dist/src/orgrt/questions.js +34 -10
  700. package/dist/src/orgrt/questions.js.map +1 -1
  701. package/dist/src/orgrt/qwen-rpc-runner.d.ts +1 -1
  702. package/dist/src/orgrt/qwen-rpc-runner.d.ts.map +1 -1
  703. package/dist/src/orgrt/qwen-rpc-runner.js +61 -26
  704. package/dist/src/orgrt/qwen-rpc-runner.js.map +1 -1
  705. package/dist/src/orgrt/qwen-runner.d.ts +1 -1
  706. package/dist/src/orgrt/qwen-runner.d.ts.map +1 -1
  707. package/dist/src/orgrt/qwen-runner.js +31 -15
  708. package/dist/src/orgrt/qwen-runner.js.map +1 -1
  709. package/dist/src/orgrt/remote.js +1 -1
  710. package/dist/src/orgrt/remote.js.map +1 -1
  711. package/dist/src/orgrt/reporting.d.ts.map +1 -1
  712. package/dist/src/orgrt/reporting.js +61 -27
  713. package/dist/src/orgrt/reporting.js.map +1 -1
  714. package/dist/src/orgrt/scheduler-integration.d.ts.map +1 -1
  715. package/dist/src/orgrt/scheduler-integration.js +57 -20
  716. package/dist/src/orgrt/scheduler-integration.js.map +1 -1
  717. package/dist/src/orgrt/scheduler.d.ts.map +1 -1
  718. package/dist/src/orgrt/scheduler.js +7 -3
  719. package/dist/src/orgrt/scheduler.js.map +1 -1
  720. package/dist/src/orgrt/server.js +1 -1
  721. package/dist/src/orgrt/server.js.map +1 -1
  722. package/dist/src/orgrt/session.d.ts +3 -3
  723. package/dist/src/orgrt/session.d.ts.map +1 -1
  724. package/dist/src/orgrt/session.js +165 -66
  725. package/dist/src/orgrt/session.js.map +1 -1
  726. package/dist/src/orgrt/state-detector.d.ts.map +1 -1
  727. package/dist/src/orgrt/state-detector.js +6 -2
  728. package/dist/src/orgrt/state-detector.js.map +1 -1
  729. package/dist/src/orgrt/task-dag.d.ts.map +1 -1
  730. package/dist/src/orgrt/task-dag.js +22 -12
  731. package/dist/src/orgrt/task-dag.js.map +1 -1
  732. package/dist/src/orgrt/templates.d.ts.map +1 -1
  733. package/dist/src/orgrt/templates.js +198 -36
  734. package/dist/src/orgrt/templates.js.map +1 -1
  735. package/dist/src/orgrt/test-loop.d.ts.map +1 -1
  736. package/dist/src/orgrt/test-loop.js +61 -34
  737. package/dist/src/orgrt/test-loop.js.map +1 -1
  738. package/dist/src/orgrt/tool-fence.d.ts.map +1 -1
  739. package/dist/src/orgrt/tool-fence.js +6 -3
  740. package/dist/src/orgrt/tool-fence.js.map +1 -1
  741. package/dist/src/orgrt/types.d.ts.map +1 -1
  742. package/dist/src/orgrt/types.js +148 -38
  743. package/dist/src/orgrt/types.js.map +1 -1
  744. package/dist/src/orgrt/usage-proxy.d.ts +20 -0
  745. package/dist/src/orgrt/usage-proxy.d.ts.map +1 -1
  746. package/dist/src/orgrt/usage-proxy.js +25 -15
  747. package/dist/src/orgrt/usage-proxy.js.map +1 -1
  748. package/dist/src/orgrt/vercel-providers.d.ts.map +1 -1
  749. package/dist/src/orgrt/vercel-providers.js +11 -1
  750. package/dist/src/orgrt/vercel-providers.js.map +1 -1
  751. package/dist/src/orgrt/vercel-runner.d.ts +1 -1
  752. package/dist/src/orgrt/vercel-runner.d.ts.map +1 -1
  753. package/dist/src/orgrt/vercel-runner.js +3 -5
  754. package/dist/src/orgrt/vercel-runner.js.map +1 -1
  755. package/dist/src/orgrt/vercel-session-store.d.ts +14 -0
  756. package/dist/src/orgrt/vercel-session-store.d.ts.map +1 -1
  757. package/dist/src/orgrt/vercel-session-store.js +3 -3
  758. package/dist/src/orgrt/vercel-session-store.js.map +1 -1
  759. package/dist/src/orgrt/visualization.js +3 -4
  760. package/dist/src/orgrt/visualization.js.map +1 -1
  761. package/dist/src/output.d.ts +1 -1
  762. package/dist/src/output.d.ts.map +1 -1
  763. package/dist/src/output.js +68 -39
  764. package/dist/src/output.js.map +1 -1
  765. package/dist/src/parser.d.ts.map +1 -1
  766. package/dist/src/parser.js +35 -24
  767. package/dist/src/parser.js.map +1 -1
  768. package/dist/src/pricing/model-pricing.d.ts.map +1 -1
  769. package/dist/src/pricing/model-pricing.js +3 -3
  770. package/dist/src/pricing/model-pricing.js.map +1 -1
  771. package/dist/src/prompt.d.ts +2 -2
  772. package/dist/src/prompt.d.ts.map +1 -1
  773. package/dist/src/prompt.js +49 -41
  774. package/dist/src/prompt.js.map +1 -1
  775. package/dist/src/routing/embedder.d.ts.map +1 -1
  776. package/dist/src/routing/embedder.js +0 -0
  777. package/dist/src/routing/embedder.js.map +1 -1
  778. package/dist/src/routing/llm-caller.d.ts.map +1 -1
  779. package/dist/src/routing/llm-caller.js +27 -8
  780. package/dist/src/routing/llm-caller.js.map +1 -1
  781. package/dist/src/routing/model-download.d.ts.map +1 -1
  782. package/dist/src/routing/model-download.js +3 -3
  783. package/dist/src/routing/model-download.js.map +1 -1
  784. package/dist/src/routing/route-layer-factory.d.ts.map +1 -1
  785. package/dist/src/routing/route-layer-factory.js +22 -14
  786. package/dist/src/routing/route-layer-factory.js.map +1 -1
  787. package/dist/src/security/audit-log.d.ts.map +1 -1
  788. package/dist/src/security/audit-log.js +9 -5
  789. package/dist/src/security/audit-log.js.map +1 -1
  790. package/dist/src/services/config-file-manager.d.ts.map +1 -1
  791. package/dist/src/services/config-file-manager.js +40 -15
  792. package/dist/src/services/config-file-manager.js.map +1 -1
  793. package/dist/src/services/crash-reporter.d.ts.map +1 -1
  794. package/dist/src/services/crash-reporter.js +44 -16
  795. package/dist/src/services/crash-reporter.js.map +1 -1
  796. package/dist/src/suggest.d.ts +1 -1
  797. package/dist/src/suggest.d.ts.map +1 -1
  798. package/dist/src/suggest.js +57 -56
  799. package/dist/src/suggest.js.map +1 -1
  800. package/dist/src/sync/checker.d.ts.map +1 -1
  801. package/dist/src/sync/checker.js +7 -8
  802. package/dist/src/sync/checker.js.map +1 -1
  803. package/dist/src/transfer/anonymization/index.js +2 -2
  804. package/dist/src/transfer/anonymization/index.js.map +1 -1
  805. package/dist/src/types.d.ts +1 -1
  806. package/dist/src/types.d.ts.map +1 -1
  807. package/dist/src/ui/collector.mjs +270 -150
  808. package/dist/src/ui/dashboard.html +731 -732
  809. package/dist/src/ui/data/agent-avatars.html +3 -3
  810. package/dist/src/ui/data/agent-avatars.json +1 -1
  811. package/dist/src/ui/markdown.js +243 -62
  812. package/dist/src/ui/mastermind-diagram-fallback.html +29 -29
  813. package/dist/src/ui/orgs-files.js +99 -46
  814. package/dist/src/ui/orgs.html +54 -54
  815. package/dist/src/ui/routes-monograph.mjs +918 -246
  816. package/dist/src/ui/routes-org.mjs +4237 -2415
  817. package/dist/src/ui/server.mjs +103 -94
  818. package/dist/src/update/checker.d.ts.map +1 -1
  819. package/dist/src/update/checker.js +17 -12
  820. package/dist/src/update/checker.js.map +1 -1
  821. package/dist/src/update/executor.d.ts +2 -2
  822. package/dist/src/update/executor.d.ts.map +1 -1
  823. package/dist/src/update/executor.js +21 -11
  824. package/dist/src/update/executor.js.map +1 -1
  825. package/dist/src/update/index.d.ts +6 -6
  826. package/dist/src/update/index.d.ts.map +1 -1
  827. package/dist/src/update/index.js +9 -9
  828. package/dist/src/update/index.js.map +1 -1
  829. package/dist/src/update/rate-limiter.d.ts.map +1 -1
  830. package/dist/src/update/rate-limiter.js +11 -7
  831. package/dist/src/update/rate-limiter.js.map +1 -1
  832. package/dist/src/update/validator.d.ts.map +1 -1
  833. package/dist/src/update/validator.js +8 -12
  834. package/dist/src/update/validator.js.map +1 -1
  835. package/dist/src/utils/cosine-similarity.d.ts.map +1 -1
  836. package/dist/src/utils/cosine-similarity.js.map +1 -1
  837. package/dist/src/utils/input-guards.d.ts +1 -1
  838. package/dist/src/utils/input-guards.d.ts.map +1 -1
  839. package/dist/src/utils/input-guards.js +24 -9
  840. package/dist/src/utils/input-guards.js.map +1 -1
  841. package/dist/src/utils/json-file.d.ts.map +1 -1
  842. package/dist/src/utils/json-file.js +3 -3
  843. package/dist/src/utils/json-file.js.map +1 -1
  844. package/dist/src/utils/parse-jsonl.d.ts.map +1 -1
  845. package/dist/src/utils/parse-jsonl.js +1 -3
  846. package/dist/src/utils/parse-jsonl.js.map +1 -1
  847. package/dist/src/utils/paths.d.ts.map +1 -1
  848. package/dist/src/utils/paths.js +2 -2
  849. package/dist/src/utils/paths.js.map +1 -1
  850. package/dist/src/utils/redaction.d.ts.map +1 -1
  851. package/dist/src/utils/redaction.js +1 -1
  852. package/dist/src/utils/redaction.js.map +1 -1
  853. package/dist/src/utils/resource-governor.d.ts.map +1 -1
  854. package/dist/src/utils/resource-governor.js +38 -14
  855. package/dist/src/utils/resource-governor.js.map +1 -1
  856. package/dist/tsconfig.tsbuildinfo +1 -1
  857. package/package.json +5 -5
@@ -1,17 +1,19 @@
1
1
  // packages/@monomind/cli/src/commands/org.ts
2
- import { readFileSync, writeFileSync, existsSync, unlinkSync, rmSync, readdirSync, mkdirSync } from 'node:fs';
3
- import { join, resolve, dirname } from 'node:path';
4
- import { homedir } from 'node:os';
5
2
  import { createHash } from 'node:crypto';
6
- import { output } from '../output.js';
3
+ import { existsSync, mkdirSync, readdirSync, readFileSync, rmSync, unlinkSync, writeFileSync, } from 'node:fs';
4
+ import { homedir } from 'node:os';
5
+ import { dirname, join, resolve } from 'node:path';
7
6
  import { OrgDaemon } from '../orgrt/daemon.js';
8
- import { resolveModel } from '../orgrt/session.js';
9
- import { startOrgServer } from '../orgrt/server.js';
10
- import { ORG_DIR, OrgDefSchema } from '../orgrt/types.js';
11
7
  import { migrateOrgFile } from '../orgrt/migrate.js';
12
8
  import { readHistory, readRunEvents, summarizeRun } from '../orgrt/reporting.js';
9
+ import { startOrgServer } from '../orgrt/server.js';
10
+ import { resolveModel } from '../orgrt/session.js';
11
+ import { ORG_DIR, OrgDefSchema } from '../orgrt/types.js';
12
+ import { output } from '../output.js';
13
13
  import { MODEL_PRICING } from '../pricing/model-pricing.js';
14
- const log = (text) => { console.log(text); };
14
+ const log = (text) => {
15
+ console.log(text);
16
+ };
15
17
  /** Org names are used to build filesystem paths under .monomind/orgs — reject
16
18
  * anything that isn't a plain identifier to prevent path traversal (e.g.
17
19
  * `monomind org stop '../../../../tmp/x'`). */
@@ -31,19 +33,37 @@ export function validateOrgName(name) {
31
33
  * exclude them when discovering real org configs) and deleteAction (which
32
34
  * must remove all of them when deleting an org). */
33
35
  const ORG_ARTIFACT_SUFFIXES = [
34
- '-state', '-goals', '-threads', '-activity', '-approvals', '-members', '-secrets', '-budgets',
35
- '-routines', '-issues', '-projects', '-workspaces', '-worktrees', '-environments',
36
- '-plugins', '-adapters', '-join-requests', '-bootstrap', '-project-workspaces',
37
- '-approval-comments', '-skills',
36
+ '-state',
37
+ '-goals',
38
+ '-threads',
39
+ '-activity',
40
+ '-approvals',
41
+ '-members',
42
+ '-secrets',
43
+ '-budgets',
44
+ '-routines',
45
+ '-issues',
46
+ '-projects',
47
+ '-workspaces',
48
+ '-worktrees',
49
+ '-environments',
50
+ '-plugins',
51
+ '-adapters',
52
+ '-join-requests',
53
+ '-bootstrap',
54
+ '-project-workspaces',
55
+ '-approval-comments',
56
+ '-skills',
38
57
  ];
39
58
  export function listOrgConfigFiles(orgsDir) {
40
59
  // endsWith, not includes: substring matching hid legitimate orgs whose NAME
41
60
  // merely contains an artifact suffix anywhere (e.g. "state-machine.json",
42
61
  // "issues-triage.json") — and anything hidden here is also invisible to
43
62
  // run/list/serve while `org delete <sibling>` would still remove its files.
44
- return readdirSync(orgsDir)
45
- .filter(f => f.endsWith('.json') && !f.startsWith('._') && !f.endsWith('.v1.json')
46
- && !ORG_ARTIFACT_SUFFIXES.some(suf => f.endsWith(`${suf}.json`)));
63
+ return readdirSync(orgsDir).filter((f) => f.endsWith('.json') &&
64
+ !f.startsWith('._') &&
65
+ !f.endsWith('.v1.json') &&
66
+ !ORG_ARTIFACT_SUFFIXES.some((suf) => f.endsWith(`${suf}.json`)));
47
67
  }
48
68
  /** Remove a lingering stopfile so a fresh `org run` doesn't self-terminate. */
49
69
  export const clearStopfile = (cwd, name) => {
@@ -91,22 +111,24 @@ const runAction = async (ctx) => {
91
111
  // plain `as string` cast would let that array flow straight into the org's
92
112
  // goal and get stringified as "a,b" with no warning. Checked before any
93
113
  // side effects (starting the xdeliver listener) run.
94
- const taskFlag = ctx.flags['task'];
114
+ const taskFlag = ctx.flags.task;
95
115
  if (Array.isArray(taskFlag))
96
116
  return { success: false, message: '--task was passed more than once — pass it exactly once' };
97
117
  // Fail before any side effects (inbox server) when the org doesn't exist.
98
118
  const orgsDir = join(ctx.cwd, ORG_DIR);
99
119
  if (!existsSync(join(orgsDir, `${name}.json`))) {
100
- const known = existsSync(orgsDir) ? listOrgConfigFiles(orgsDir).map(f => f.replace(/\.json$/, '')) : [];
120
+ const known = existsSync(orgsDir)
121
+ ? listOrgConfigFiles(orgsDir).map((f) => f.replace(/\.json$/, ''))
122
+ : [];
101
123
  log(output.error(`Org not found: ${name}${known.length ? ` — available: ${known.join(', ')}` : ' — create one with /mastermind:createorg'}`));
102
124
  return { success: false, message: 'org not found' };
103
125
  }
104
- if (ctx.flags['dryRun'] === true) {
126
+ if (ctx.flags.dryRun === true) {
105
127
  // Validate + preview each role's actual briefing without spawning sessions.
106
128
  try {
107
129
  const def = OrgDefSchema.parse(JSON.parse(readFileSync(join(orgsDir, `${name}.json`), 'utf8')));
108
130
  const { buildRolePrompt } = await import('../orgrt/session.js');
109
- const roster = def.roles.map(r => r.id);
131
+ const roster = def.roles.map((r) => r.id);
110
132
  const perRole = Math.floor((def.run_config.budget_tokens ?? 1_000_000) / def.roles.length);
111
133
  // Same KG entity glossary the live daemon injects — the preview must
112
134
  // match what sessions actually receive.
@@ -161,14 +183,23 @@ const runAction = async (ctx) => {
161
183
  log(output.dim(` watch it with: monomind org logs ${name} --follow`));
162
184
  return { success: true, message: 'start requested' };
163
185
  }
164
- const crossProcess = ctx.flags['crossProcess'] !== false;
186
+ const crossProcess = ctx.flags.crossProcess !== false;
165
187
  // P1-1: v1 deprecation warning. Detect v1-shaped configs and warn.
166
188
  // Gate on MONOMIND_V1_LEGACY=off to refuse v1 orgs entirely (patch-versioning-
167
189
  // compliant mechanism — no minor bump needed).
168
- const V1_ORG_KEYS = ['topology', 'consensus', 'strategy', 'board_id', 'todo_col_id', 'doing_col_id', 'done_col_id', 'loop'];
190
+ const V1_ORG_KEYS = [
191
+ 'topology',
192
+ 'consensus',
193
+ 'strategy',
194
+ 'board_id',
195
+ 'todo_col_id',
196
+ 'doing_col_id',
197
+ 'done_col_id',
198
+ 'loop',
199
+ ];
169
200
  try {
170
201
  const rawCfg = JSON.parse(readFileSync(join(orgsDir, `${name}.json`), 'utf8'));
171
- const isV1 = V1_ORG_KEYS.some(k => k in rawCfg);
202
+ const isV1 = V1_ORG_KEYS.some((k) => k in rawCfg);
172
203
  if (isV1) {
173
204
  const v1Legacy = process.env.MONOMIND_V1_LEGACY;
174
205
  if (v1Legacy === 'off') {
@@ -180,7 +211,9 @@ const runAction = async (ctx) => {
180
211
  log(output.dim(` To silence: run "monomind org migrate ${name}". To block v1 orgs: set MONOMIND_V1_LEGACY=off.`));
181
212
  }
182
213
  }
183
- catch { /* config parse errors surface below in cost estimate or daemon.startOrg */ }
214
+ catch {
215
+ /* config parse errors surface below in cost estimate or daemon.startOrg */
216
+ }
184
217
  // P0-17: Upfront cost estimate. `org run` and `/mastermind:autodev` spend real
185
218
  // provider tokens. Print an estimate before sessions start; honor --budget-usd
186
219
  // as a hard stop and --yes to skip the confirmation prompt. Rates are defaults
@@ -200,20 +233,29 @@ const runAction = async (ctx) => {
200
233
  // Models absent from MODEL_PRICING (not yet in the canonical pricing table).
201
234
  const EXTRA_MODEL_RATE_PER_1M = {
202
235
  'gpt-4': 10,
203
- 'glm-5.2': 2, 'glm-4': 2,
204
- 'kimi-latest': 3, 'kimi-k2': 3, 'kimi-code/k3': 3, 'kimi-code/k3-256k': 3,
205
- 'gemini-3.1-pro': 8, 'gemini-3.6-flash-high': 1,
206
- 'gpt-5.6-terra': 10, 'gpt-5.5': 10,
236
+ 'glm-5.2': 2,
237
+ 'glm-4': 2,
238
+ 'kimi-latest': 3,
239
+ 'kimi-k2': 3,
240
+ 'kimi-code/k3': 3,
241
+ 'kimi-code/k3-256k': 3,
242
+ 'gemini-3.1-pro': 8,
243
+ 'gemini-3.6-flash-high': 1,
244
+ 'gpt-5.6-terra': 10,
245
+ 'gpt-5.5': 10,
246
+ };
247
+ const MODEL_RATE_PER_1M = {
248
+ ...EXTRA_MODEL_RATE_PER_1M,
249
+ ...DERIVED_RATE_PER_1M,
207
250
  };
208
- const MODEL_RATE_PER_1M = { ...EXTRA_MODEL_RATE_PER_1M, ...DERIVED_RATE_PER_1M };
209
251
  const DEFAULT_RATE_PER_1M = 10;
210
252
  const AVG_TOKENS_PER_TURN = 2000;
211
- const budgetUsd = ctx.flags['budgetUsd'];
212
- const skipConfirm = ctx.flags['yes'] === true;
253
+ const budgetUsd = ctx.flags.budgetUsd;
254
+ const skipConfirm = ctx.flags.yes === true;
213
255
  // User-editable rate overrides: ~/.monomind/rates.json, e.g.
214
256
  // { "claude-opus-5": 90, "my-custom-model": 5 }
215
257
  const ratesPath = join(homedir(), '.monomind', 'rates.json');
216
- let userRates = {};
258
+ const userRates = {};
217
259
  let ratesFileUsed = false;
218
260
  try {
219
261
  const parsed = JSON.parse(readFileSync(ratesPath, 'utf8'));
@@ -225,7 +267,9 @@ const runAction = async (ctx) => {
225
267
  ratesFileUsed = Object.keys(userRates).length > 0;
226
268
  }
227
269
  }
228
- catch { /* no rates.json (or invalid) — hardcoded defaults only */ }
270
+ catch {
271
+ /* no rates.json (or invalid) — hardcoded defaults only */
272
+ }
229
273
  try {
230
274
  const def = OrgDefSchema.parse(JSON.parse(readFileSync(join(orgsDir, `${name}.json`), 'utf8')));
231
275
  const defaultMaxTurns = def.run_config.max_turns_per_message ?? 30;
@@ -233,7 +277,7 @@ const runAction = async (ctx) => {
233
277
  // the schema default is effectively unlimited (DEFAULT_MAX_TURNS_PER_MESSAGE),
234
278
  // which would balloon the upfront figure into meaninglessness.
235
279
  const ESTIMATE_TURNS_CAP = 30;
236
- let totalTokens = 0;
280
+ let _totalTokens = 0;
237
281
  const perRoleRows = def.roles.map((r) => {
238
282
  // Mirror the actual runtime's model resolution (session.ts resolveModel)
239
283
  // instead of a hardcoded 'claude-sonnet-5' fallback — otherwise every
@@ -243,7 +287,7 @@ const runAction = async (ctx) => {
243
287
  const rate = userRates[model] ?? MODEL_RATE_PER_1M[model] ?? DEFAULT_RATE_PER_1M;
244
288
  const roleTurns = Math.min(r.max_turns_per_message ?? defaultMaxTurns, ESTIMATE_TURNS_CAP);
245
289
  const tokens = roleTurns * AVG_TOKENS_PER_TURN;
246
- totalTokens += tokens;
290
+ _totalTokens += tokens;
247
291
  return { id: r.id, model, tokens, cost: (tokens * rate) / 1_000_000 };
248
292
  });
249
293
  const estimate = perRoleRows.reduce((s, r) => s + r.cost, 0);
@@ -260,7 +304,10 @@ const runAction = async (ctx) => {
260
304
  }
261
305
  if (!skipConfirm && process.stdin.isTTY) {
262
306
  const { confirm } = await import('../prompt.js');
263
- const ok = await confirm({ message: `Start ${def.roles.length}-role org? This will spend real provider tokens.`, default: true });
307
+ const ok = await confirm({
308
+ message: `Start ${def.roles.length}-role org? This will spend real provider tokens.`,
309
+ default: true,
310
+ });
264
311
  if (!ok) {
265
312
  log(output.dim('Aborted — no tokens spent.'));
266
313
  return { success: false, message: 'user declined cost-estimate prompt' };
@@ -274,7 +321,7 @@ const runAction = async (ctx) => {
274
321
  log(output.dim(`(cost estimate skipped: ${err instanceof Error ? err.message : String(err)})`));
275
322
  }
276
323
  }
277
- const resumeFlag = ctx.flags['resume'] === true;
324
+ const resumeFlag = ctx.flags.resume === true;
278
325
  const daemon = new OrgDaemon(ctx.cwd, { crossProcess });
279
326
  let srv;
280
327
  if (crossProcess) {
@@ -288,10 +335,13 @@ const runAction = async (ctx) => {
288
335
  catch (err) {
289
336
  // Don't leave the inbox server holding the event loop open on a failed start.
290
337
  srv?.close();
291
- await daemon.stopAll().catch(() => { });
338
+ await daemon.stopAll().catch(() => {
339
+ /* nothing started */
340
+ });
292
341
  const detail = err instanceof Error ? err.message : String(err);
293
342
  const hint = err instanceof Error && err.name === 'ZodError'
294
- ? ` — run "monomind org validate ${name}" for details` : '';
343
+ ? ` — run "monomind org validate ${name}" for details`
344
+ : '';
295
345
  log(output.error(`Could not start org ${name}: ${detail}${hint}`));
296
346
  return { success: false, message: 'org start failed' };
297
347
  }
@@ -308,7 +358,9 @@ const runAction = async (ctx) => {
308
358
  try {
309
359
  console.error('[org run] uncaughtException:', err);
310
360
  }
311
- catch { /* stderr gone */ }
361
+ catch {
362
+ /* stderr gone */
363
+ }
312
364
  daemon.persistCrashStateAll(`uncaughtException: ${err instanceof Error ? err.message : String(err)}`);
313
365
  process.exit(1);
314
366
  });
@@ -316,7 +368,9 @@ const runAction = async (ctx) => {
316
368
  try {
317
369
  console.error('[org run] unhandledRejection:', err);
318
370
  }
319
- catch { /* stderr gone */ }
371
+ catch {
372
+ /* stderr gone */
373
+ }
320
374
  daemon.persistCrashStateAll(`unhandledRejection: ${err instanceof Error ? err.message : String(err)}`);
321
375
  process.exit(1);
322
376
  });
@@ -345,7 +399,9 @@ const runAction = async (ctx) => {
345
399
  stdio: 'ignore',
346
400
  });
347
401
  }
348
- catch { /* best-effort — fall through to whatever control.json already has */ }
402
+ catch {
403
+ /* best-effort — fall through to whatever control.json already has */
404
+ }
349
405
  }
350
406
  if (existsSync(controlPath)) {
351
407
  try {
@@ -353,7 +409,9 @@ const runAction = async (ctx) => {
353
409
  const dashUrl = ctl.url || (ctl.port ? `http://localhost:${ctl.port}` : 'http://localhost:4242');
354
410
  log(output.dim(` Dashboard: ${dashUrl}`));
355
411
  }
356
- catch { /* non-critical */ }
412
+ catch {
413
+ /* non-critical */
414
+ }
357
415
  }
358
416
  else if (existsSync(controlStartPath)) {
359
417
  // control-start.cjs ran above (spawnSync'd synchronously with a 5s cap)
@@ -377,7 +435,7 @@ const runAction = async (ctx) => {
377
435
  // successful action regardless of how the run itself ended — capture that
378
436
  // BEFORE clearStopfile() below wipes the file, so it isn't lost.
379
437
  let stoppedManually = false;
380
- await new Promise(resolvePromise => {
438
+ await new Promise((resolvePromise) => {
381
439
  const iv = setInterval(() => {
382
440
  if (existsSync(stopfile)) {
383
441
  stoppedManually = true;
@@ -389,8 +447,14 @@ const runAction = async (ctx) => {
389
447
  resolvePromise();
390
448
  }
391
449
  }, 2000);
392
- process.once('SIGINT', () => { clearInterval(iv); resolvePromise(); });
393
- process.once('SIGTERM', () => { clearInterval(iv); resolvePromise(); });
450
+ process.once('SIGINT', () => {
451
+ clearInterval(iv);
452
+ resolvePromise();
453
+ });
454
+ process.once('SIGTERM', () => {
455
+ clearInterval(iv);
456
+ resolvePromise();
457
+ });
394
458
  });
395
459
  clearStopfile(ctx.cwd, name);
396
460
  await daemon.stopAll();
@@ -407,7 +471,9 @@ const runAction = async (ctx) => {
407
471
  try {
408
472
  final = JSON.parse(readFileSync(join(ctx.cwd, ORG_DIR, name, 'runtime.json'), 'utf8'));
409
473
  }
410
- catch { /* best-effort — falls through to the non-clean-stop case below */ }
474
+ catch {
475
+ /* best-effort — falls through to the non-clean-stop case below */
476
+ }
411
477
  return runOutcomeResult(name, final);
412
478
  };
413
479
  /** Decides `org run`'s exit-code-bearing CommandResult from the run's final
@@ -422,7 +488,11 @@ export function runOutcomeResult(name, final) {
422
488
  return { success: true, message: `org ${name} completed` };
423
489
  }
424
490
  if (final.status === 'crashed') {
425
- return { success: false, message: `org ${name} crashed: ${final.error ?? 'unknown error'}`, exitCode: 1 };
491
+ return {
492
+ success: false,
493
+ message: `org ${name} crashed: ${final.error ?? 'unknown error'}`,
494
+ exitCode: 1,
495
+ };
426
496
  }
427
497
  return {
428
498
  success: false,
@@ -459,7 +529,9 @@ const stopAction = async (ctx) => {
459
529
  try {
460
530
  rt = JSON.parse(readFileSync(join(ctx.cwd, ORG_DIR, name, 'runtime.json'), 'utf8'));
461
531
  }
462
- catch { /* never run */ }
532
+ catch {
533
+ /* never run */
534
+ }
463
535
  if (rt?.status !== 'running') {
464
536
  log(output.warning(`Org "${name}" is not running (runtime state: ${rt?.status ?? 'never run'}) — nothing to stop.`));
465
537
  return { success: false, message: 'org not running' };
@@ -539,12 +611,16 @@ const statusAction = async (ctx) => {
539
611
  }
540
612
  }
541
613
  const orgDir = join(ctx.cwd, ORG_DIR);
542
- const targets = name ? [name] : (existsSync(orgDir)
543
- ? listOrgConfigFiles(orgDir).map(f => f.replace(/\.json$/, ''))
544
- : []);
614
+ const targets = name
615
+ ? [name]
616
+ : existsSync(orgDir)
617
+ ? listOrgConfigFiles(orgDir).map((f) => f.replace(/\.json$/, ''))
618
+ : [];
545
619
  for (const t of targets) {
546
620
  const rt = join(orgDir, t, 'runtime.json');
547
- let state = { status: 'never run' };
621
+ let state = {
622
+ status: 'never run',
623
+ };
548
624
  if (existsSync(rt)) {
549
625
  try {
550
626
  state = JSON.parse(readFileSync(rt, 'utf8'));
@@ -557,24 +633,29 @@ const statusAction = async (ctx) => {
557
633
  // A "running" record whose pid is gone means the daemon died without its
558
634
  // stopOrg cleanup — surface that instead of reporting it as still running.
559
635
  if ((state.status === 'running' || state.status === 'crashed') && state.pid) {
560
- const pidGone = state.status === 'crashed' || (() => {
561
- try {
562
- process.kill(state.pid, 0);
563
- return false;
564
- }
565
- catch {
566
- return true;
567
- }
568
- })();
636
+ const pidGone = state.status === 'crashed' ||
637
+ (() => {
638
+ try {
639
+ process.kill(state.pid, 0);
640
+ return false;
641
+ }
642
+ catch {
643
+ return true;
644
+ }
645
+ })();
569
646
  if (pidGone) {
570
647
  let heartbeatHint = '';
571
648
  try {
572
649
  const hb = JSON.parse(readFileSync(join(ctx.cwd, '.monomind', 'serve-heartbeat.json'), 'utf8'));
573
650
  heartbeatHint = ` (last heartbeat: ${hb.updatedAt})`;
574
651
  }
575
- catch { /* no heartbeat file — daemon predates this change or was already cleaned up */ }
652
+ catch {
653
+ /* no heartbeat file — daemon predates this change or was already cleaned up */
654
+ }
576
655
  const closedBy = state.closedBy;
577
- const label = closedBy === 'crash-handler' ? 'crashed (caught by crash handler)' : `crashed (runtime.json says ${state.status} but pid ${state.pid} is gone)`;
656
+ const label = closedBy === 'crash-handler'
657
+ ? 'crashed (caught by crash handler)'
658
+ : `crashed (runtime.json says ${state.status} but pid ${state.pid} is gone)`;
578
659
  log(output.warning(`${t}: ${label}${heartbeatHint}${state.run ? ` — run ${state.run}` : ''} — close it out with "monomind org mark-complete ${t}"`));
579
660
  continue;
580
661
  }
@@ -601,7 +682,7 @@ const statusAction = async (ctx) => {
601
682
  const quietMs = Date.now() - lastTs;
602
683
  const quietStr = fmtDuration(quietMs);
603
684
  const toolCalls = Object.values(summary.roles).reduce((a, r) => a + r.toolsAllowed + r.toolsDenied, 0);
604
- const rolesUp = Object.keys(summary.roles).filter(r => r !== '(system)').length;
685
+ const rolesUp = Object.keys(summary.roles).filter((r) => r !== '(system)').length;
605
686
  log(` elapsed: ${elapsedStr} | events: ${summary.events} | messages: ${summary.messages} | tools: ${toolCalls}`);
606
687
  log(` roles active: ${rolesUp} | tokens: ${fmtNum(summary.totalTokens)} | cost: $${summary.totalCostUsd.toFixed(2)}`);
607
688
  log(` quiet since: ${new Date(lastTs).toISOString().slice(11, 19)} (${quietStr} ago)`);
@@ -610,7 +691,7 @@ const statusAction = async (ctx) => {
610
691
  }
611
692
  // Previous cycle comparison from history
612
693
  const history = readHistory(ctx.cwd, t);
613
- const prev = history.filter(h => h.run !== state.run).at(-1);
694
+ const prev = history.filter((h) => h.run !== state.run).at(-1);
614
695
  if (prev) {
615
696
  const dur = prev.durationMs !== null ? fmtDuration(prev.durationMs) : '?';
616
697
  const outcome = prev.outcome?.status ?? (prev.crashes.length ? 'crashed' : 'completed');
@@ -674,7 +755,9 @@ export const pollReloadfiles = async (cwd, daemon) => {
674
755
  try {
675
756
  unlinkSync(reloadFile);
676
757
  }
677
- catch { /* already gone */ }
758
+ catch {
759
+ /* already gone */
760
+ }
678
761
  try {
679
762
  const result = daemon.reloadOrgDef(name);
680
763
  const parts = [];
@@ -726,11 +809,15 @@ export const pollRunfiles = async (cwd, daemon) => {
726
809
  if (typeof body.task === 'string' && body.task.trim())
727
810
  task = body.task;
728
811
  }
729
- catch { /* bare/empty runfile — start with the org's own goal */ }
812
+ catch {
813
+ /* bare/empty runfile — start with the org's own goal */
814
+ }
730
815
  try {
731
816
  unlinkSync(runfile);
732
817
  }
733
- catch { /* already gone */ }
818
+ catch {
819
+ /* already gone */
820
+ }
734
821
  if (daemon.listRunning().includes(name))
735
822
  continue; // already running — request satisfied
736
823
  log(output.info(`org ${name}: run requested — starting now${task ? ' (with task)' : ''}`));
@@ -761,7 +848,9 @@ export const pollRunfiles = async (cwd, daemon) => {
761
848
  */
762
849
  const supervisorAction = async (ctx) => {
763
850
  const cwd = resolve(ctx.cwd || process.cwd());
764
- const requested = String(ctx.flags.format ?? '').trim().toLowerCase();
851
+ const requested = String(ctx.flags.format ?? '')
852
+ .trim()
853
+ .toLowerCase();
765
854
  const format = requested || (process.platform === 'darwin' ? 'launchd' : 'systemd');
766
855
  if (format !== 'launchd' && format !== 'systemd') {
767
856
  log(output.error(`Unknown --format "${requested}" — expected launchd or systemd.`));
@@ -849,7 +938,7 @@ WantedBy=default.target
849
938
  return { success: true, message: `${format} unit emitted` };
850
939
  };
851
940
  const serveAction = async (ctx) => {
852
- const crossProcess = ctx.flags['crossProcess'] !== false;
941
+ const crossProcess = ctx.flags.crossProcess !== false;
853
942
  const daemon = new OrgDaemon(ctx.cwd, { crossProcess });
854
943
  let srv;
855
944
  if (crossProcess) {
@@ -862,13 +951,21 @@ const serveAction = async (ctx) => {
862
951
  try {
863
952
  console.error(`[org serve] ${label}:`, err);
864
953
  }
865
- catch { /* stderr gone */ }
954
+ catch {
955
+ /* stderr gone */
956
+ }
866
957
  daemon.persistCrashStateAll(`${label}: ${err instanceof Error ? err.message : String(err)}`);
867
958
  daemon.clearHeartbeat();
868
959
  process.exitCode = 1;
869
960
  };
870
- process.on('uncaughtException', (err) => { crashExit('uncaughtException', err); process.exit(1); });
871
- process.on('unhandledRejection', (err) => { crashExit('unhandledRejection', err); process.exit(1); });
961
+ process.on('uncaughtException', (err) => {
962
+ crashExit('uncaughtException', err);
963
+ process.exit(1);
964
+ });
965
+ process.on('unhandledRejection', (err) => {
966
+ crashExit('unhandledRejection', err);
967
+ process.exit(1);
968
+ });
872
969
  // Termination diagnostics (#45). The two handlers above only cover errors
873
970
  // raised *inside* the daemon. A report of the daemon vanishing after hours
874
971
  // had a log holding nothing but its startup lines, because the ways a daemon
@@ -892,7 +989,9 @@ const serveAction = async (ctx) => {
892
989
  try {
893
990
  console.error(`[org serve] shutting down: ${reason}`);
894
991
  }
895
- catch { /* stderr gone */ }
992
+ catch {
993
+ /* stderr gone */
994
+ }
896
995
  };
897
996
  for (const sig of ['SIGTERM', 'SIGINT', 'SIGHUP']) {
898
997
  process.on(sig, () => {
@@ -901,7 +1000,9 @@ const serveAction = async (ctx) => {
901
1000
  daemon.persistCrashStateAll();
902
1001
  daemon.clearHeartbeat();
903
1002
  }
904
- catch { /* best effort */ }
1003
+ catch {
1004
+ /* best effort */
1005
+ }
905
1006
  // A daemon holds ref'd timers, so it will not drain on its own; an
906
1007
  // explicit exit is required here and is the intended signal semantics.
907
1008
  process.exit(sig === 'SIGTERM' || sig === 'SIGINT' ? 0 : 1);
@@ -915,7 +1016,9 @@ const serveAction = async (ctx) => {
915
1016
  // Heartbeat: write every 30s so `org status` can tell "alive but busy" from
916
1017
  // "daemon gone" without relying on pid liveness alone.
917
1018
  daemon.writeHeartbeat();
918
- const heartbeatInterval = setInterval(() => { daemon.writeHeartbeat(); }, 30_000);
1019
+ const heartbeatInterval = setInterval(() => {
1020
+ daemon.writeHeartbeat();
1021
+ }, 30_000);
919
1022
  heartbeatInterval.unref?.();
920
1023
  log(output.info('org daemon serving — Ctrl-C to stop'));
921
1024
  // schedule orgs whose definition declares an interval (e.g. "15m", "2h")
@@ -933,7 +1036,7 @@ const serveAction = async (ctx) => {
933
1036
  const { runPrechecks } = await import('../orgrt/prechecks.js');
934
1037
  const { ok, results } = await runPrechecks(checks, ctx.cwd);
935
1038
  if (!ok) {
936
- const failed = results.find(r => !r.passed);
1039
+ const failed = results.find((r) => !r.passed);
937
1040
  log(output.warning(`org ${name}: precheck "${failed?.name}" failed — skipping scheduled run`));
938
1041
  if (failed?.output)
939
1042
  log(output.warning(` ${failed.output.slice(0, 200)}`));
@@ -960,9 +1063,10 @@ const serveAction = async (ctx) => {
960
1063
  // (idempotent — it resolves `done` and flushes).
961
1064
  const org = daemon.getOrg(name);
962
1065
  const allDone = org
963
- ? Promise.allSettled([...org.agents.values()].map(a => a.done))
1066
+ ? Promise.allSettled([...org.agents.values()].map((a) => a.done))
964
1067
  : Promise.resolve([]);
965
- const maxRun = org?.def?.run_config?.max_run;
1068
+ const maxRun = org?.def
1069
+ ?.run_config?.max_run;
966
1070
  // Default to the full interval. The old `min(interval, 10min)` clamp
967
1071
  // silently guillotined every org that didn't set max_run: real cycles
968
1072
  // here run 75-93 minutes, so a 2h-scheduled org was being force-stopped
@@ -974,10 +1078,13 @@ const serveAction = async (ctx) => {
974
1078
  // Set run_config.max_run to bound it tighter — or looser.
975
1079
  const maxMs = parseSchedule(maxRun) ?? intervalMs;
976
1080
  let timer;
977
- await Promise.race([allDone, new Promise(r => {
1081
+ await Promise.race([
1082
+ allDone,
1083
+ new Promise((r) => {
978
1084
  timer = setTimeout(r, maxMs);
979
1085
  timer.unref?.();
980
- })]);
1086
+ }),
1087
+ ]);
981
1088
  if (timer)
982
1089
  clearTimeout(timer);
983
1090
  }
@@ -989,7 +1096,9 @@ const serveAction = async (ctx) => {
989
1096
  // bound threw that work away; a minute is enough to finish an edit or a
990
1097
  // test run and flush, and still well inside any sane interval.
991
1098
  if (startedHere) {
992
- await daemon.stopOrg(name, { drainMs: 60_000 }).catch(err => console.error(`org ${name}: stop failed:`, err));
1099
+ await daemon
1100
+ .stopOrg(name, { drainMs: 60_000 })
1101
+ .catch((err) => console.error(`org ${name}: stop failed:`, err));
993
1102
  }
994
1103
  }
995
1104
  });
@@ -1021,13 +1130,22 @@ const serveAction = async (ctx) => {
1021
1130
  }
1022
1131
  }
1023
1132
  }
1024
- const stopPoll = setInterval(() => { void pollStopfiles(ctx.cwd, daemon); }, 2000);
1133
+ const stopPoll = setInterval(() => {
1134
+ void pollStopfiles(ctx.cwd, daemon);
1135
+ }, 2000);
1025
1136
  stopPoll.unref?.();
1026
- const runPoll = setInterval(() => { void pollRunfiles(ctx.cwd, daemon); }, 2000);
1137
+ const runPoll = setInterval(() => {
1138
+ void pollRunfiles(ctx.cwd, daemon);
1139
+ }, 2000);
1027
1140
  runPoll.unref?.();
1028
- const reloadPoll = setInterval(() => { void pollReloadfiles(ctx.cwd, daemon); }, 2000);
1141
+ const reloadPoll = setInterval(() => {
1142
+ void pollReloadfiles(ctx.cwd, daemon);
1143
+ }, 2000);
1029
1144
  reloadPoll.unref?.();
1030
- await new Promise(r => { process.once('SIGINT', () => r()); process.once('SIGTERM', () => r()); });
1145
+ await new Promise((r) => {
1146
+ process.once('SIGINT', () => r());
1147
+ process.once('SIGTERM', () => r());
1148
+ });
1031
1149
  clearInterval(stopPoll);
1032
1150
  clearInterval(runPoll);
1033
1151
  clearInterval(reloadPoll);
@@ -1041,9 +1159,9 @@ const serveAction = async (ctx) => {
1041
1159
  const testLoopAction = async (ctx) => {
1042
1160
  // non-literal specifier: test-loop.ts lands in a later task; keeps tsc clean until then
1043
1161
  const testLoopModule = '../orgrt/test-loop.js';
1044
- const { runTestLoop } = await import(testLoopModule);
1045
- const n = Number(ctx.flags['times'] ?? ctx.flags['n'] ?? 5);
1046
- const scenario = typeof ctx.flags['scenario'] === 'string' ? ctx.flags['scenario'] : undefined;
1162
+ const { runTestLoop } = (await import(testLoopModule));
1163
+ const n = Number(ctx.flags.times ?? ctx.flags.n ?? 5);
1164
+ const scenario = typeof ctx.flags.scenario === 'string' ? ctx.flags.scenario : undefined;
1047
1165
  const report = await runTestLoop(ctx.cwd, n, scenario);
1048
1166
  log(output.info(report.summary));
1049
1167
  return { success: report.failed === 0, message: report.summary };
@@ -1083,9 +1201,12 @@ const listAction = async (ctx) => {
1083
1201
  }
1084
1202
  }
1085
1203
  }
1086
- catch { /* no runtime state yet */ }
1204
+ catch {
1205
+ /* no runtime state yet */
1206
+ }
1087
1207
  const goal = typeof def.goal === 'string' && def.goal
1088
- ? ` — ${def.goal.length > 60 ? `${def.goal.slice(0, 57)}...` : def.goal}` : '';
1208
+ ? ` — ${def.goal.length > 60 ? `${def.goal.slice(0, 57)}...` : def.goal}`
1209
+ : '';
1089
1210
  detail = ` (${roles} role${roles === 1 ? '' : 's'}, ${sched}, ${status})${goal}`;
1090
1211
  }
1091
1212
  catch {
@@ -1105,7 +1226,7 @@ const deleteAction = async (ctx) => {
1105
1226
  log(output.error(`Invalid org name: ${orgName}`));
1106
1227
  return { success: false, message: 'invalid org name' };
1107
1228
  }
1108
- const confirmed = ctx.flags['yes'] === true || ctx.args.includes('--yes') || ctx.args.includes('-y');
1229
+ const confirmed = ctx.flags.yes === true || ctx.args.includes('--yes') || ctx.args.includes('-y');
1109
1230
  if (!confirmed) {
1110
1231
  log(output.warning(`This will permanently delete org "${orgName}" and all its data.`));
1111
1232
  log(output.warning('Pass --yes to confirm.'));
@@ -1118,7 +1239,7 @@ const deleteAction = async (ctx) => {
1118
1239
  log(output.error(`Org not found: ${orgName}`));
1119
1240
  return { success: false, message: 'org not found' };
1120
1241
  }
1121
- if (isOrgRunning(cwd, orgName) && ctx.flags['force'] !== true) {
1242
+ if (isOrgRunning(cwd, orgName) && ctx.flags.force !== true) {
1122
1243
  log(output.error(`Org "${orgName}" is currently running — stop it first (monomind org stop ${orgName}) or pass --force.`));
1123
1244
  return { success: false, message: 'org is running' };
1124
1245
  }
@@ -1132,27 +1253,37 @@ const deleteAction = async (ctx) => {
1132
1253
  removed++;
1133
1254
  }
1134
1255
  }
1135
- catch { /* ignore */ }
1256
+ catch {
1257
+ /* ignore */
1258
+ }
1136
1259
  }
1137
1260
  }
1138
1261
  try {
1139
1262
  unlinkSync(join(orgsDir, '.stops', `${orgName}.stop`));
1140
1263
  }
1141
- catch { /* ignore */ }
1264
+ catch {
1265
+ /* ignore */
1266
+ }
1142
1267
  const orgSubDir = join(orgsDir, orgName);
1143
1268
  try {
1144
1269
  if (existsSync(orgSubDir))
1145
1270
  rmSync(orgSubDir, { recursive: true, force: true });
1146
1271
  }
1147
- catch { /* ignore */ }
1272
+ catch {
1273
+ /* ignore */
1274
+ }
1148
1275
  try {
1149
1276
  unlinkSync(join(cwd, '.monomind', 'loops', `${orgName}.md`));
1150
1277
  }
1151
- catch { /* ignore */ }
1278
+ catch {
1279
+ /* ignore */
1280
+ }
1152
1281
  try {
1153
1282
  unlinkSync(join(orgsDir, `${orgName}-run.md`));
1154
1283
  }
1155
- catch { /* ignore */ }
1284
+ catch {
1285
+ /* ignore */
1286
+ }
1156
1287
  log(output.success(`Org "${orgName}" deleted (${removed} file(s) removed).`));
1157
1288
  return { success: true };
1158
1289
  };
@@ -1170,7 +1301,11 @@ const clearStaleRuntime = (cwd, name) => {
1170
1301
  rt = JSON.parse(readFileSync(rtPath, 'utf8'));
1171
1302
  }
1172
1303
  catch (err) {
1173
- return { cleared: false, reason: 'unreadable', detail: err instanceof Error ? err.message : String(err) };
1304
+ return {
1305
+ cleared: false,
1306
+ reason: 'unreadable',
1307
+ detail: err instanceof Error ? err.message : String(err),
1308
+ };
1174
1309
  }
1175
1310
  if (rt.status !== 'running' && rt.status !== 'crashed')
1176
1311
  return { cleared: false, reason: 'not-running' };
@@ -1179,11 +1314,19 @@ const clearStaleRuntime = (cwd, name) => {
1179
1314
  process.kill(rt.pid, 0);
1180
1315
  return { cleared: false, reason: 'alive', detail: String(rt.pid) };
1181
1316
  }
1182
- catch { /* pid is gone — this is exactly the stale case mark-complete exists for */ }
1317
+ catch {
1318
+ /* pid is gone — this is exactly the stale case mark-complete exists for */
1319
+ }
1183
1320
  }
1184
1321
  // Same shape stopOrg's persistState() writes, so every reader (org status,
1185
1322
  // isOrgRunning, the mastermind-org* skills' jq checks) sees a stopped org.
1186
- writeFileSync(rtPath, JSON.stringify({ status: 'stopped', run: rt.run, pid: rt.pid, updated: new Date().toISOString(), closedBy: 'mark-complete' }, null, 2));
1323
+ writeFileSync(rtPath, JSON.stringify({
1324
+ status: 'stopped',
1325
+ run: rt.run,
1326
+ pid: rt.pid,
1327
+ updated: new Date().toISOString(),
1328
+ closedBy: 'mark-complete',
1329
+ }, null, 2));
1187
1330
  return { cleared: true, run: rt.run };
1188
1331
  };
1189
1332
  const markCompleteAction = async (ctx) => {
@@ -1198,7 +1341,9 @@ const markCompleteAction = async (ctx) => {
1198
1341
  // 0 — a typo looked like a successful cleanup.
1199
1342
  const orgsDir = join(cwd, ORG_DIR);
1200
1343
  if (!existsSync(join(orgsDir, `${orgName}.json`))) {
1201
- const known = existsSync(orgsDir) ? listOrgConfigFiles(orgsDir).map(f => f.replace(/\.json$/, '')) : [];
1344
+ const known = existsSync(orgsDir)
1345
+ ? listOrgConfigFiles(orgsDir).map((f) => f.replace(/\.json$/, ''))
1346
+ : [];
1202
1347
  log(output.error(`Org not found: ${orgName}${known.length ? ` — available: ${known.join(', ')}` : ''}`));
1203
1348
  return { success: false, message: 'org not found' };
1204
1349
  }
@@ -1223,14 +1368,18 @@ const markCompleteAction = async (ctx) => {
1223
1368
  if (ctl.url)
1224
1369
  ctrlUrl = ctl.url;
1225
1370
  }
1226
- catch { /* default */ }
1371
+ catch {
1372
+ /* default */
1373
+ }
1227
1374
  try {
1228
1375
  // All dashboard /api routes are auth-gated — attach the local session token.
1229
1376
  let auth = '';
1230
1377
  try {
1231
1378
  auth = readFileSync(join(cwd, '.monomind', 'dashboard-token'), 'utf8').trim();
1232
1379
  }
1233
- catch { /* server may be pre-auth */ }
1380
+ catch {
1381
+ /* server may be pre-auth */
1382
+ }
1234
1383
  // Bounded. Updating the dashboard is best-effort — the local state has
1235
1384
  // already been cleared by this point — but the fetch had no timeout, so a
1236
1385
  // dashboard that holds the port without answering (a wedged build from an
@@ -1296,27 +1445,69 @@ export const orgCommand = {
1296
1445
  description: 'SDK-based org runtime — run agent organizations as a controlled daemon',
1297
1446
  subcommands: [
1298
1447
  {
1299
- name: 'run', description: 'Start an org (foreground daemon)',
1448
+ name: 'run',
1449
+ description: 'Start an org (foreground daemon)',
1300
1450
  options: [
1301
1451
  { name: 'task', description: 'Override the org goal for this run', type: 'string' },
1302
- { name: 'resume', description: 'Resume an org run from its persisted checkpoint instead of starting fresh', type: 'boolean' },
1303
- { name: 'cross-process', description: 'Discover and message orgs hosted by other monomind processes on this machine (default true)', type: 'boolean', default: true },
1304
- { name: 'dry-run', description: 'Validate and print each role\'s briefing without starting any agent sessions', type: 'boolean' },
1305
- { name: 'budget-usd', description: 'Hard-stop the run if the upfront cost estimate exceeds this USD value (e.g. --budget-usd 5)', type: 'number' },
1306
- { name: 'yes', short: 'y', description: 'Skip the interactive cost-estimate confirmation prompt', type: 'boolean' },
1452
+ {
1453
+ name: 'resume',
1454
+ description: 'Resume an org run from its persisted checkpoint instead of starting fresh',
1455
+ type: 'boolean',
1456
+ },
1457
+ {
1458
+ name: 'cross-process',
1459
+ description: 'Discover and message orgs hosted by other monomind processes on this machine (default true)',
1460
+ type: 'boolean',
1461
+ default: true,
1462
+ },
1463
+ {
1464
+ name: 'dry-run',
1465
+ description: "Validate and print each role's briefing without starting any agent sessions",
1466
+ type: 'boolean',
1467
+ },
1468
+ {
1469
+ name: 'budget-usd',
1470
+ description: 'Hard-stop the run if the upfront cost estimate exceeds this USD value (e.g. --budget-usd 5)',
1471
+ type: 'number',
1472
+ },
1473
+ {
1474
+ name: 'yes',
1475
+ short: 'y',
1476
+ description: 'Skip the interactive cost-estimate confirmation prompt',
1477
+ type: 'boolean',
1478
+ },
1479
+ ],
1480
+ examples: [
1481
+ {
1482
+ command: 'monomind org run growth --task "weekly report"',
1483
+ description: 'Run the growth org once with a task',
1484
+ },
1307
1485
  ],
1308
- examples: [{ command: 'monomind org run growth --task "weekly report"', description: 'Run the growth org once with a task' }],
1309
1486
  action: runAction,
1310
1487
  },
1311
1488
  { name: 'stop', description: 'Request a running org daemon to stop', action: stopAction },
1312
- { name: 'pause', description: 'Pause an org — current turns finish, no new cycles start', action: pauseAction },
1489
+ {
1490
+ name: 'pause',
1491
+ description: 'Pause an org — current turns finish, no new cycles start',
1492
+ action: pauseAction,
1493
+ },
1313
1494
  { name: 'resume', description: 'Resume a paused org', action: resumeAction },
1314
- { name: 'reload', description: 'Hot-reload an org definition without stopping sessions', action: reloadAction },
1495
+ {
1496
+ name: 'reload',
1497
+ description: 'Hot-reload an org definition without stopping sessions',
1498
+ action: reloadAction,
1499
+ },
1315
1500
  { name: 'status', description: 'Show runtime state of orgs', action: statusAction },
1316
1501
  {
1317
- name: 'serve', description: 'Start the daemon server only (hosts scheduled orgs)',
1502
+ name: 'serve',
1503
+ description: 'Start the daemon server only (hosts scheduled orgs)',
1318
1504
  options: [
1319
- { name: 'cross-process', description: 'Discover and message orgs hosted by other monomind processes on this machine (default true)', type: 'boolean', default: true },
1505
+ {
1506
+ name: 'cross-process',
1507
+ description: 'Discover and message orgs hosted by other monomind processes on this machine (default true)',
1508
+ type: 'boolean',
1509
+ default: true,
1510
+ },
1320
1511
  ],
1321
1512
  action: serveAction,
1322
1513
  },
@@ -1325,32 +1516,57 @@ export const orgCommand = {
1325
1516
  description: 'Print (or --install) a launchd/systemd unit that keeps `org serve` running',
1326
1517
  options: [
1327
1518
  { name: 'format', description: 'launchd or systemd (default: platform)', type: 'string' },
1328
- { name: 'install', description: 'Write the unit into the per-user location', type: 'boolean' },
1519
+ {
1520
+ name: 'install',
1521
+ description: 'Write the unit into the per-user location',
1522
+ type: 'boolean',
1523
+ },
1329
1524
  ],
1330
1525
  action: supervisorAction,
1331
1526
  },
1332
1527
  {
1333
- name: 'test-loop', description: 'Run the org e2e verification loop N times',
1528
+ name: 'test-loop',
1529
+ description: 'Run the org e2e verification loop N times',
1334
1530
  options: [
1335
1531
  { name: 'times', short: 'n', description: 'Iterations', type: 'number', default: 5 },
1336
- { name: 'scenario', description: 'Run a declarative scenario file (.monomind/scenarios/<file>) instead of the built-in fixture — structural dry-run only', type: 'string' },
1532
+ {
1533
+ name: 'scenario',
1534
+ description: 'Run a declarative scenario file (.monomind/scenarios/<file>) instead of the built-in fixture — structural dry-run only',
1535
+ type: 'string',
1536
+ },
1337
1537
  ],
1338
1538
  action: testLoopAction,
1339
1539
  },
1340
1540
  {
1341
- name: 'logs', description: 'Show (or follow) the formatted event log of an org run',
1541
+ name: 'logs',
1542
+ description: 'Show (or follow) the formatted event log of an org run',
1342
1543
  options: [
1343
1544
  { name: 'run', description: 'Run id (default: latest)', type: 'string' },
1344
1545
  { name: 'role', description: 'Only events from/to this role', type: 'string' },
1345
- { name: 'filter-tool', description: 'Filter events by tool name (e.g., Write, Edit)', type: 'string' },
1546
+ {
1547
+ name: 'filter-tool',
1548
+ description: 'Filter events by tool name (e.g., Write, Edit)',
1549
+ type: 'string',
1550
+ },
1346
1551
  { name: 'filter-role', description: 'Filter events by role ID', type: 'string' },
1347
- { name: 'tools-only', description: 'Show only tool events (exclude messages/status/audit)', type: 'boolean' },
1348
- { name: 'audit-filter', description: 'Filter audit events by decision (allow|deny)', type: 'string' },
1552
+ {
1553
+ name: 'tools-only',
1554
+ description: 'Show only tool events (exclude messages/status/audit)',
1555
+ type: 'boolean',
1556
+ },
1557
+ {
1558
+ name: 'audit-filter',
1559
+ description: 'Filter audit events by decision (allow|deny)',
1560
+ type: 'string',
1561
+ },
1349
1562
  { name: 'follow', short: 'f', description: 'Keep tailing until Ctrl-C', type: 'boolean' },
1350
1563
  ],
1351
1564
  examples: [
1352
1565
  { command: 'monomind org logs growth --follow', description: 'Live-tail the latest run' },
1353
- { command: 'monomind org logs growth --tools-only', description: 'Show only tool call events' },
1566
+ {
1567
+ command: 'monomind org logs growth --tools-only',
1568
+ description: 'Show only tool call events',
1569
+ },
1354
1570
  ],
1355
1571
  action: async (ctx) => {
1356
1572
  const v = validateOrgName(ctx.args[0]);
@@ -1361,16 +1577,36 @@ export const orgCommand = {
1361
1577
  },
1362
1578
  },
1363
1579
  {
1364
- name: 'watch', description: 'Live-tail one role\'s assistant chat text (any runtime) — a filtered, friendlier `logs --follow`',
1580
+ name: 'watch',
1581
+ description: "Live-tail one role's assistant chat text (any runtime) — a filtered, friendlier `logs --follow`",
1365
1582
  options: [
1366
1583
  { name: 'run', description: 'Run id (default: latest)', type: 'string' },
1367
- { name: 'follow', description: 'Set --follow=false to print current output once and exit instead of live-tailing', type: 'boolean', default: true },
1368
- { name: 'verbose', description: 'Also interleave status events (restart/crash/state-change) into the transcript', type: 'boolean' },
1369
- { name: 'stats', description: 'Print a running token/cost line as usage events arrive', type: 'boolean' },
1584
+ {
1585
+ name: 'follow',
1586
+ description: 'Set --follow=false to print current output once and exit instead of live-tailing',
1587
+ type: 'boolean',
1588
+ default: true,
1589
+ },
1590
+ {
1591
+ name: 'verbose',
1592
+ description: 'Also interleave status events (restart/crash/state-change) into the transcript',
1593
+ type: 'boolean',
1594
+ },
1595
+ {
1596
+ name: 'stats',
1597
+ description: 'Print a running token/cost line as usage events arrive',
1598
+ type: 'boolean',
1599
+ },
1370
1600
  ],
1371
1601
  examples: [
1372
- { command: 'monomind org watch growth researcher', description: 'Watch the researcher role\'s live output' },
1373
- { command: 'monomind org watch growth researcher --verbose --stats', description: 'Also show restarts/crashes and a running token/cost total' },
1602
+ {
1603
+ command: 'monomind org watch growth researcher',
1604
+ description: "Watch the researcher role's live output",
1605
+ },
1606
+ {
1607
+ command: 'monomind org watch growth researcher --verbose --stats',
1608
+ description: 'Also show restarts/crashes and a running token/cost total',
1609
+ },
1374
1610
  ],
1375
1611
  action: async (ctx) => {
1376
1612
  const v = validateOrgName(ctx.args[0]);
@@ -1381,16 +1617,23 @@ export const orgCommand = {
1381
1617
  },
1382
1618
  },
1383
1619
  {
1384
- name: 'report', description: 'Summarize an org run: outcome, per-role activity, tokens, assets, crashes',
1620
+ name: 'report',
1621
+ description: 'Summarize an org run: outcome, per-role activity, tokens, assets, crashes',
1385
1622
  options: [
1386
1623
  { name: 'run', description: 'Run id (default: latest)', type: 'string' },
1387
1624
  { name: 'all', description: 'List all recorded runs from history', type: 'boolean' },
1388
1625
  { name: 'by-role', description: 'Show per-role cost breakdown', type: 'boolean' },
1389
1626
  { name: 'audit', description: 'Show tool audit trail', type: 'boolean' },
1390
- { name: 'tool', description: 'Filter tool audit by tool name (with --audit)', type: 'string' },
1627
+ {
1628
+ name: 'tool',
1629
+ description: 'Filter tool audit by tool name (with --audit)',
1630
+ type: 'string',
1631
+ },
1391
1632
  { name: 'format', description: 'Output format (mermaid for flowchart)', type: 'string' },
1392
1633
  ],
1393
- examples: [{ command: 'monomind org report growth', description: 'Report on the latest run' }],
1634
+ examples: [
1635
+ { command: 'monomind org report growth', description: 'Report on the latest run' },
1636
+ ],
1394
1637
  action: async (ctx) => {
1395
1638
  const v = validateOrgName(ctx.args[0]);
1396
1639
  if (!v.ok)
@@ -1400,11 +1643,18 @@ export const orgCommand = {
1400
1643
  },
1401
1644
  },
1402
1645
  {
1403
- name: 'memory', description: 'Inspect an org\'s cross-run memory and knowledge graph (stats | search <query> | rules | rollback <run-ref>)',
1646
+ name: 'memory',
1647
+ description: "Inspect an org's cross-run memory and knowledge graph (stats | search <query> | rules | rollback <run-ref>)",
1404
1648
  examples: [
1405
1649
  { command: 'monomind org memory growth stats', description: 'KG size and namespaces' },
1406
- { command: 'monomind org memory growth search "launch checklist"', description: 'Search org memory + KG' },
1407
- { command: 'monomind org memory growth rollback run:m4x2', description: 'Delete everything one run wrote to the KG' },
1650
+ {
1651
+ command: 'monomind org memory growth search "launch checklist"',
1652
+ description: 'Search org memory + KG',
1653
+ },
1654
+ {
1655
+ command: 'monomind org memory growth rollback run:m4x2',
1656
+ description: 'Delete everything one run wrote to the KG',
1657
+ },
1408
1658
  ],
1409
1659
  action: async (ctx) => {
1410
1660
  const v = validateOrgName(ctx.args[0]);
@@ -1418,7 +1668,9 @@ export const orgCommand = {
1418
1668
  try {
1419
1669
  if (sub === 'stats') {
1420
1670
  const [stats, glossary, backend] = await Promise.all([
1421
- kg.kgStats({ dbPath }), kg.kgGlossary({ dbPath, limit: 15 }), bridge.bridgeGetBackendStats(dbPath),
1671
+ kg.kgStats({ dbPath }),
1672
+ kg.kgGlossary({ dbPath, limit: 15 }),
1673
+ bridge.bridgeGetBackendStats(dbPath),
1422
1674
  ]);
1423
1675
  log(output.info(`Knowledge graph: ${stats.nodes} entities, ${stats.edges} relations, ${stats.rules} rules`));
1424
1676
  if (glossary.length)
@@ -1426,21 +1678,33 @@ export const orgCommand = {
1426
1678
  const byNs = backend?.entriesByNamespace ?? {};
1427
1679
  for (const [ns, count] of Object.entries(byNs))
1428
1680
  log(output.info(` ${ns}: ${count} entries`));
1429
- return { success: true, message: 'org memory stats', data: { ...stats, namespaces: byNs } };
1681
+ return {
1682
+ success: true,
1683
+ message: 'org memory stats',
1684
+ data: { ...stats, namespaces: byNs },
1685
+ };
1430
1686
  }
1431
1687
  if (sub === 'search') {
1432
1688
  const q = ctx.args.slice(2).join(' ');
1433
1689
  if (!q)
1434
1690
  return { success: false, message: 'usage: org memory <org> search <query>' };
1435
1691
  const [mem, graph] = await Promise.all([
1436
- bridge.bridgeSearchEntries({ query: q, namespace: `org:${v.name}`, limit: 5, dbPath }),
1692
+ bridge.bridgeSearchEntries({
1693
+ query: q,
1694
+ namespace: `org:${v.name}`,
1695
+ limit: 5,
1696
+ dbPath,
1697
+ }),
1437
1698
  kg.kgSearch({ query: q, dbPath, limit: 8 }),
1438
1699
  ]);
1439
1700
  for (const r of mem?.results ?? [])
1440
1701
  log(output.info(`[${r.score.toFixed(2)}] ${r.key}: ${r.content.slice(0, 160)}`));
1441
1702
  if (graph.context)
1442
1703
  log(output.info(`\nKnowledge graph:\n${graph.context}`));
1443
- return { success: true, message: `${(mem?.results ?? []).length} memories, ${graph.triplets.length} triplets` };
1704
+ return {
1705
+ success: true,
1706
+ message: `${(mem?.results ?? []).length} memories, ${graph.triplets.length} triplets`,
1707
+ };
1444
1708
  }
1445
1709
  if (sub === 'rules') {
1446
1710
  const rules = await kg.kgListRules({ dbPath, limit: 50 });
@@ -1451,26 +1715,36 @@ export const orgCommand = {
1451
1715
  if (sub === 'rollback') {
1452
1716
  const ref = ctx.args[2];
1453
1717
  if (!ref)
1454
- return { success: false, message: 'usage: org memory <org> rollback <origin-ref> (e.g. run:m4x2)' };
1718
+ return {
1719
+ success: false,
1720
+ message: 'usage: org memory <org> rollback <origin-ref> (e.g. run:m4x2)',
1721
+ };
1455
1722
  const res = await kg.kgRollback({ originRef: ref, dbPath });
1456
1723
  log(output.info(`Rolled back ${ref}: ${res.deleted} deleted, ${res.retained} retained (shared with other origins)`));
1457
1724
  return { success: res.success, message: `rollback ${ref}`, data: res };
1458
1725
  }
1459
- return { success: false, message: `unknown subcommand "${sub}" — use stats | search | rules | rollback` };
1726
+ return {
1727
+ success: false,
1728
+ message: `unknown subcommand "${sub}" — use stats | search | rules | rollback`,
1729
+ };
1460
1730
  }
1461
1731
  finally {
1462
- await bridge.shutdownBridge().catch(() => { });
1732
+ await bridge.shutdownBridge().catch(() => {
1733
+ /* best effort */
1734
+ });
1463
1735
  }
1464
1736
  },
1465
1737
  },
1466
1738
  {
1467
- name: 'costs', description: 'Show per-role cost tracking from runtime.json',
1468
- options: [
1469
- { name: 'run', description: 'Run ID (defaults to latest)', type: 'string' },
1470
- ],
1739
+ name: 'costs',
1740
+ description: 'Show per-role cost tracking from runtime.json',
1741
+ options: [{ name: 'run', description: 'Run ID (defaults to latest)', type: 'string' }],
1471
1742
  examples: [
1472
1743
  { command: 'monomind org costs growth', description: 'Show cost breakdown for latest run' },
1473
- { command: 'monomind org costs growth --run run-20240130-123456', description: 'Show cost breakdown for specific run' },
1744
+ {
1745
+ command: 'monomind org costs growth --run run-20240130-123456',
1746
+ description: 'Show cost breakdown for specific run',
1747
+ },
1474
1748
  ],
1475
1749
  action: async (ctx) => {
1476
1750
  const v = validateOrgName(ctx.args[0]);
@@ -1481,15 +1755,29 @@ export const orgCommand = {
1481
1755
  },
1482
1756
  },
1483
1757
  {
1484
- name: 'inbox', description: 'Deliver an inbound cross-org message (live to a running org, queued to inbox.jsonl otherwise) — remote.ts shells out to this over SSH',
1758
+ name: 'inbox',
1759
+ description: 'Deliver an inbound cross-org message (live to a running org, queued to inbox.jsonl otherwise) — remote.ts shells out to this over SSH',
1485
1760
  options: [
1486
- { name: 'json', description: 'JSON payload: {"from":"orgA:role","subject":"...","body":"..."}', type: 'string' },
1487
- { name: 'to', description: 'Target role (default: the org\'s coordinator)', type: 'string' },
1488
- { name: 'from', description: 'Sender, qualified "org:role" (alternative to --json)', type: 'string' },
1761
+ {
1762
+ name: 'json',
1763
+ description: 'JSON payload: {"from":"orgA:role","subject":"...","body":"..."}',
1764
+ type: 'string',
1765
+ },
1766
+ { name: 'to', description: "Target role (default: the org's coordinator)", type: 'string' },
1767
+ {
1768
+ name: 'from',
1769
+ description: 'Sender, qualified "org:role" (alternative to --json)',
1770
+ type: 'string',
1771
+ },
1489
1772
  { name: 'subject', description: 'Subject (alternative to --json)', type: 'string' },
1490
1773
  { name: 'body', description: 'Body (alternative to --json)', type: 'string' },
1491
1774
  ],
1492
- examples: [{ command: 'monomind org inbox growth --json \'{"from":"sales:boss","subject":"leads","body":"..."}\'', description: 'Deliver a message to the growth org' }],
1775
+ examples: [
1776
+ {
1777
+ command: 'monomind org inbox growth --json \'{"from":"sales:boss","subject":"leads","body":"..."}\'',
1778
+ description: 'Deliver a message to the growth org',
1779
+ },
1780
+ ],
1493
1781
  action: async (ctx) => {
1494
1782
  const v = validateOrgName(ctx.args[0]);
1495
1783
  if (!v.ok)
@@ -1499,9 +1787,15 @@ export const orgCommand = {
1499
1787
  },
1500
1788
  },
1501
1789
  {
1502
- name: 'flow', description: 'Export org flow as Mermaid diagram',
1790
+ name: 'flow',
1791
+ description: 'Export org flow as Mermaid diagram',
1503
1792
  options: [{ name: 'run', description: 'Run ID (defaults to latest)', type: 'string' }],
1504
- examples: [{ command: 'monomind org flow growth --run run-20250130120000', description: 'Export Mermaid flowchart' }],
1793
+ examples: [
1794
+ {
1795
+ command: 'monomind org flow growth --run run-20250130120000',
1796
+ description: 'Export Mermaid flowchart',
1797
+ },
1798
+ ],
1505
1799
  action: async (ctx) => {
1506
1800
  const v = validateOrgName(ctx.args[0]);
1507
1801
  if (!v.ok)
@@ -1511,9 +1805,12 @@ export const orgCommand = {
1511
1805
  },
1512
1806
  },
1513
1807
  {
1514
- name: 'questions', description: 'List pending ask_human questions from an org\'s agents',
1808
+ name: 'questions',
1809
+ description: "List pending ask_human questions from an org's agents",
1515
1810
  options: [{ name: 'all', description: 'Include answered questions', type: 'boolean' }],
1516
- examples: [{ command: 'monomind org questions growth', description: 'Show unanswered questions' }],
1811
+ examples: [
1812
+ { command: 'monomind org questions growth', description: 'Show unanswered questions' },
1813
+ ],
1517
1814
  action: async (ctx) => {
1518
1815
  const v = validateOrgName(ctx.args[0]);
1519
1816
  if (!v.ok)
@@ -1523,8 +1820,14 @@ export const orgCommand = {
1523
1820
  },
1524
1821
  },
1525
1822
  {
1526
- name: 'answer', description: 'Answer a pending ask_human question (live if the org is running, queued otherwise)',
1527
- examples: [{ command: 'monomind org answer growth q-123-ab "yes, ship it"', description: 'Answer question q-123-ab' }],
1823
+ name: 'answer',
1824
+ description: 'Answer a pending ask_human question (live if the org is running, queued otherwise)',
1825
+ examples: [
1826
+ {
1827
+ command: 'monomind org answer growth q-123-ab "yes, ship it"',
1828
+ description: 'Answer question q-123-ab',
1829
+ },
1830
+ ],
1528
1831
  action: async (ctx) => {
1529
1832
  const v = validateOrgName(ctx.args[0]);
1530
1833
  if (!v.ok)
@@ -1534,8 +1837,14 @@ export const orgCommand = {
1534
1837
  },
1535
1838
  },
1536
1839
  {
1537
- name: 'approve', description: 'Approve a pending tool/action approval',
1538
- examples: [{ command: 'monomind org approve growth coder "Bash"', description: 'Approve Bash tool for coder role' }],
1840
+ name: 'approve',
1841
+ description: 'Approve a pending tool/action approval',
1842
+ examples: [
1843
+ {
1844
+ command: 'monomind org approve growth coder "Bash"',
1845
+ description: 'Approve Bash tool for coder role',
1846
+ },
1847
+ ],
1539
1848
  action: async (ctx) => {
1540
1849
  const v = validateOrgName(ctx.args[0]);
1541
1850
  if (!v.ok)
@@ -1545,8 +1854,14 @@ export const orgCommand = {
1545
1854
  },
1546
1855
  },
1547
1856
  {
1548
- name: 'deny', description: 'Deny a pending tool/action approval',
1549
- examples: [{ command: 'monomind org deny growth coder "Bash"', description: 'Deny Bash tool for coder role' }],
1857
+ name: 'deny',
1858
+ description: 'Deny a pending tool/action approval',
1859
+ examples: [
1860
+ {
1861
+ command: 'monomind org deny growth coder "Bash"',
1862
+ description: 'Deny Bash tool for coder role',
1863
+ },
1864
+ ],
1550
1865
  action: async (ctx) => {
1551
1866
  const v = validateOrgName(ctx.args[0]);
1552
1867
  if (!v.ok)
@@ -1556,7 +1871,8 @@ export const orgCommand = {
1556
1871
  },
1557
1872
  },
1558
1873
  {
1559
- name: 'gates', description: 'List decision gates from an org\'s agents',
1874
+ name: 'gates',
1875
+ description: "List decision gates from an org's agents",
1560
1876
  options: [{ name: 'all', description: 'Include resolved gates', type: 'boolean' }],
1561
1877
  examples: [
1562
1878
  { command: 'monomind org gates growth', description: 'Show pending gates' },
@@ -1571,8 +1887,14 @@ export const orgCommand = {
1571
1887
  },
1572
1888
  },
1573
1889
  {
1574
- name: 'gate-approve', description: 'Approve a pending decision gate',
1575
- examples: [{ command: 'monomind org gate-approve growth gate-123-ab "ship it"', description: 'Approve gate with resolution' }],
1890
+ name: 'gate-approve',
1891
+ description: 'Approve a pending decision gate',
1892
+ examples: [
1893
+ {
1894
+ command: 'monomind org gate-approve growth gate-123-ab "ship it"',
1895
+ description: 'Approve gate with resolution',
1896
+ },
1897
+ ],
1576
1898
  action: async (ctx) => {
1577
1899
  const v = validateOrgName(ctx.args[0]);
1578
1900
  if (!v.ok)
@@ -1582,8 +1904,14 @@ export const orgCommand = {
1582
1904
  },
1583
1905
  },
1584
1906
  {
1585
- name: 'gate-reject', description: 'Reject a pending decision gate',
1586
- examples: [{ command: 'monomind org gate-reject growth gate-123-ab "not ready"', description: 'Reject gate with reason' }],
1907
+ name: 'gate-reject',
1908
+ description: 'Reject a pending decision gate',
1909
+ examples: [
1910
+ {
1911
+ command: 'monomind org gate-reject growth gate-123-ab "not ready"',
1912
+ description: 'Reject gate with reason',
1913
+ },
1914
+ ],
1587
1915
  action: async (ctx) => {
1588
1916
  const v = validateOrgName(ctx.args[0]);
1589
1917
  if (!v.ok)
@@ -1593,8 +1921,14 @@ export const orgCommand = {
1593
1921
  },
1594
1922
  },
1595
1923
  {
1596
- name: 'replay', description: 'Time-travel debugging: replay a run\'s bus events (does not resume live execution — use "org run --resume" for that)',
1597
- examples: [{ command: 'monomind org replay growth run-20250130120000-abc', description: 'Replay a checkpoint\'s events for inspection' }],
1924
+ name: 'replay',
1925
+ description: 'Time-travel debugging: replay a run\'s bus events (does not resume live execution — use "org run --resume" for that)',
1926
+ examples: [
1927
+ {
1928
+ command: 'monomind org replay growth run-20250130120000-abc',
1929
+ description: "Replay a checkpoint's events for inspection",
1930
+ },
1931
+ ],
1598
1932
  action: async (ctx) => {
1599
1933
  const v = validateOrgName(ctx.args[0]);
1600
1934
  if (!v.ok)
@@ -1604,8 +1938,14 @@ export const orgCommand = {
1604
1938
  },
1605
1939
  },
1606
1940
  {
1607
- name: 'resume-from', description: 'Resume live execution from the org\'s persisted checkpoint (restores mailbox/policy/session state; subject to TTL and checksum validation)',
1608
- examples: [{ command: 'monomind org resume-from growth', description: 'Resume growth from its last checkpoint' }],
1941
+ name: 'resume-from',
1942
+ description: "Resume live execution from the org's persisted checkpoint (restores mailbox/policy/session state; subject to TTL and checksum validation)",
1943
+ examples: [
1944
+ {
1945
+ command: 'monomind org resume-from growth',
1946
+ description: 'Resume growth from its last checkpoint',
1947
+ },
1948
+ ],
1609
1949
  action: async (ctx) => {
1610
1950
  const v = validateOrgName(ctx.args[0]);
1611
1951
  if (!v.ok)
@@ -1615,8 +1955,14 @@ export const orgCommand = {
1615
1955
  },
1616
1956
  },
1617
1957
  {
1618
- name: 'branch', description: "Snapshot a run's event log for replay",
1619
- examples: [{ command: 'monomind org branch growth run-20250130 abc-branch', description: "Snapshot a run's checkpoint into a new run for replay" }],
1958
+ name: 'branch',
1959
+ description: "Snapshot a run's event log for replay",
1960
+ examples: [
1961
+ {
1962
+ command: 'monomind org branch growth run-20250130 abc-branch',
1963
+ description: "Snapshot a run's checkpoint into a new run for replay",
1964
+ },
1965
+ ],
1620
1966
  action: async (ctx) => {
1621
1967
  const v = validateOrgName(ctx.args[0]);
1622
1968
  if (!v.ok)
@@ -1626,8 +1972,14 @@ export const orgCommand = {
1626
1972
  },
1627
1973
  },
1628
1974
  {
1629
- name: 'decisions', description: 'Show Rifft-style decision traces',
1630
- examples: [{ command: 'monomind org decisions growth --run run-20250130', description: 'Show decision traces' }],
1975
+ name: 'decisions',
1976
+ description: 'Show Rifft-style decision traces',
1977
+ examples: [
1978
+ {
1979
+ command: 'monomind org decisions growth --run run-20250130',
1980
+ description: 'Show decision traces',
1981
+ },
1982
+ ],
1631
1983
  action: async (ctx) => {
1632
1984
  const v = validateOrgName(ctx.args[0]);
1633
1985
  if (!v.ok)
@@ -1637,15 +1989,34 @@ export const orgCommand = {
1637
1989
  },
1638
1990
  },
1639
1991
  {
1640
- name: 'create', description: 'Scaffold an org config from a starter template',
1992
+ name: 'create',
1993
+ description: 'Scaffold an org config from a starter template',
1641
1994
  options: [
1642
- { name: 'template', description: 'content-team | dev-team | research-pod | kg-extraction | advisor-orchestrator', type: 'string' },
1643
- { name: 'goal', description: 'Org goal (defaults to the template\'s placeholder)', type: 'string' },
1995
+ {
1996
+ name: 'template',
1997
+ description: 'content-team | dev-team | research-pod | kg-extraction | advisor-orchestrator',
1998
+ type: 'string',
1999
+ },
2000
+ {
2001
+ name: 'goal',
2002
+ description: "Org goal (defaults to the template's placeholder)",
2003
+ type: 'string',
2004
+ },
1644
2005
  { name: 'schedule', description: 'Daemon schedule, e.g. 30m or 2h', type: 'string' },
1645
2006
  { name: 'force', description: 'Overwrite an existing org config', type: 'boolean' },
1646
- { name: 'yes', short: 'y', description: 'Skip the per-role model confirmation prompt (TTY only)', type: 'boolean' },
2007
+ {
2008
+ name: 'yes',
2009
+ short: 'y',
2010
+ description: 'Skip the per-role model confirmation prompt (TTY only)',
2011
+ type: 'boolean',
2012
+ },
2013
+ ],
2014
+ examples: [
2015
+ {
2016
+ command: 'monomind org create blog --template content-team --goal "3 posts/week"',
2017
+ description: 'Create a content org',
2018
+ },
1647
2019
  ],
1648
- examples: [{ command: 'monomind org create blog --template content-team --goal "3 posts/week"', description: 'Create a content org' }],
1649
2020
  action: async (ctx) => {
1650
2021
  const v = validateOrgName(ctx.args[0]);
1651
2022
  if (!v.ok)
@@ -1655,10 +2026,14 @@ export const orgCommand = {
1655
2026
  },
1656
2027
  },
1657
2028
  {
1658
- name: 'validate', description: 'Validate org config(s) against the runtime schema and structural invariants',
2029
+ name: 'validate',
2030
+ description: 'Validate org config(s) against the runtime schema and structural invariants',
1659
2031
  examples: [
1660
2032
  { command: 'monomind org validate growth', description: 'Validate one org config' },
1661
- { command: 'monomind org validate', description: 'Validate every org config in the project' },
2033
+ {
2034
+ command: 'monomind org validate',
2035
+ description: 'Validate every org config in the project',
2036
+ },
1662
2037
  ],
1663
2038
  action: async (ctx) => {
1664
2039
  const { validateAction } = await import('./org-observe.js');
@@ -1666,22 +2041,39 @@ export const orgCommand = {
1666
2041
  },
1667
2042
  },
1668
2043
  {
1669
- name: 'migrate', description: 'Convert a v1 org config (topology/board/loop) to the v2 daemon shape',
1670
- examples: [{ command: 'monomind org migrate growth', description: 'Migrate one org; original saved as growth.v1.json' }],
2044
+ name: 'migrate',
2045
+ description: 'Convert a v1 org config (topology/board/loop) to the v2 daemon shape',
2046
+ examples: [
2047
+ {
2048
+ command: 'monomind org migrate growth',
2049
+ description: 'Migrate one org; original saved as growth.v1.json',
2050
+ },
2051
+ ],
1671
2052
  action: migrateAction,
1672
2053
  },
1673
2054
  { name: 'list', description: 'List all orgs in the current project', action: listAction },
1674
2055
  {
1675
- name: 'delete', description: 'Delete an org and all its data',
2056
+ name: 'delete',
2057
+ description: 'Delete an org and all its data',
1676
2058
  options: [
1677
2059
  { name: 'yes', short: 'y', description: 'Skip confirmation', type: 'boolean' },
1678
- { name: 'force', description: 'Delete even if the org appears to be running', type: 'boolean' },
2060
+ {
2061
+ name: 'force',
2062
+ description: 'Delete even if the org appears to be running',
2063
+ type: 'boolean',
2064
+ },
1679
2065
  ],
1680
2066
  action: deleteAction,
1681
2067
  },
1682
- { name: 'mark-complete', description: 'Manually close a stale/crashed run', action: markCompleteAction },
2068
+ {
2069
+ name: 'mark-complete',
2070
+ description: 'Manually close a stale/crashed run',
2071
+ action: markCompleteAction,
2072
+ },
2073
+ ],
2074
+ examples: [
2075
+ { command: 'monomind org run my-org', description: 'Run an org under full daemon control' },
1683
2076
  ],
1684
- examples: [{ command: 'monomind org run my-org', description: 'Run an org under full daemon control' }],
1685
2077
  action: async () => {
1686
2078
  // index.ts's dispatcher never prints result.message on a failed action —
1687
2079
  // it only exits with result.exitCode — so this must log itself or bare