@monoes/monomindcli 2.8.3 → 2.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (377) hide show
  1. package/.claude/helpers/auto-memory-hook.mjs +0 -0
  2. package/.claude/helpers/handlers/route-handler.cjs +12 -0
  3. package/.claude/helpers/handlers/session-restore-handler.cjs +28 -7
  4. package/.claude/helpers/hook-handler.cjs +0 -0
  5. package/.claude/helpers/utils/micro-agents.cjs +22 -0
  6. package/.claude/skills/monodesign/scripts/live/sveltekit-adapter.mjs +11 -6
  7. package/.claude/skills/monodesign/scripts/live-inject.mjs +20 -7
  8. package/.claude/skills/monodesign/scripts/live-server.mjs +38 -2
  9. package/LICENSE +191 -0
  10. package/README.md +8 -6
  11. package/dist/src/browser/dashboard/server.d.ts +5 -0
  12. package/dist/src/browser/dashboard/server.d.ts.map +1 -1
  13. package/dist/src/browser/dashboard/server.js +59 -4
  14. package/dist/src/browser/dashboard/server.js.map +1 -1
  15. package/dist/src/browser/dashboard/ui.html +18 -8
  16. package/dist/src/browser/workflow/store.d.ts.map +1 -1
  17. package/dist/src/browser/workflow/store.js +3 -2
  18. package/dist/src/browser/workflow/store.js.map +1 -1
  19. package/dist/src/capabilities/cap-documents.d.ts.map +1 -1
  20. package/dist/src/capabilities/cap-documents.js +14 -9
  21. package/dist/src/capabilities/cap-documents.js.map +1 -1
  22. package/dist/src/commands/design-palette.d.ts +5 -0
  23. package/dist/src/commands/design-palette.d.ts.map +1 -1
  24. package/dist/src/commands/design-palette.js +8 -5
  25. package/dist/src/commands/design-palette.js.map +1 -1
  26. package/dist/src/commands/doctor.d.ts.map +1 -1
  27. package/dist/src/commands/doctor.js +22 -18
  28. package/dist/src/commands/doctor.js.map +1 -1
  29. package/dist/src/commands/download-embeddings.d.ts +8 -0
  30. package/dist/src/commands/download-embeddings.d.ts.map +1 -0
  31. package/dist/src/commands/download-embeddings.js +34 -0
  32. package/dist/src/commands/download-embeddings.js.map +1 -0
  33. package/dist/src/commands/hooks.d.ts.map +1 -1
  34. package/dist/src/commands/hooks.js +14 -0
  35. package/dist/src/commands/hooks.js.map +1 -1
  36. package/dist/src/commands/index.d.ts.map +1 -1
  37. package/dist/src/commands/index.js +4 -0
  38. package/dist/src/commands/index.js.map +1 -1
  39. package/dist/src/commands/init-wizard.js +1 -1
  40. package/dist/src/commands/init-wizard.js.map +1 -1
  41. package/dist/src/commands/init.d.ts.map +1 -1
  42. package/dist/src/commands/init.js +48 -1
  43. package/dist/src/commands/init.js.map +1 -1
  44. package/dist/src/commands/monograph.d.ts.map +1 -1
  45. package/dist/src/commands/monograph.js +35 -1
  46. package/dist/src/commands/monograph.js.map +1 -1
  47. package/dist/src/commands/org-observe.d.ts +10 -0
  48. package/dist/src/commands/org-observe.d.ts.map +1 -1
  49. package/dist/src/commands/org-observe.js +195 -31
  50. package/dist/src/commands/org-observe.js.map +1 -1
  51. package/dist/src/commands/org.d.ts +1 -0
  52. package/dist/src/commands/org.d.ts.map +1 -1
  53. package/dist/src/commands/org.js +139 -3
  54. package/dist/src/commands/org.js.map +1 -1
  55. package/dist/src/commands/route.d.ts +1 -9
  56. package/dist/src/commands/route.d.ts.map +1 -1
  57. package/dist/src/commands/route.js +42 -65
  58. package/dist/src/commands/route.js.map +1 -1
  59. package/dist/src/commands/security-cve.d.ts.map +1 -1
  60. package/dist/src/commands/security-cve.js +2 -1
  61. package/dist/src/commands/security-cve.js.map +1 -1
  62. package/dist/src/index.d.ts +0 -10
  63. package/dist/src/index.d.ts.map +1 -1
  64. package/dist/src/index.js +4 -15
  65. package/dist/src/index.js.map +1 -1
  66. package/dist/src/init/copy-assets.d.ts +17 -0
  67. package/dist/src/init/copy-assets.d.ts.map +1 -0
  68. package/dist/src/init/copy-assets.js +271 -0
  69. package/dist/src/init/copy-assets.js.map +1 -0
  70. package/dist/src/init/executor.d.ts +2 -30
  71. package/dist/src/init/executor.d.ts.map +1 -1
  72. package/dist/src/init/executor.js +56 -2493
  73. package/dist/src/init/executor.js.map +1 -1
  74. package/dist/src/init/geminimd-generator.js +2 -2
  75. package/dist/src/init/helpers-generator.d.ts.map +1 -1
  76. package/dist/src/init/helpers-generator.js +9 -0
  77. package/dist/src/init/helpers-generator.js.map +1 -1
  78. package/dist/src/init/kimi-generator.js +3 -3
  79. package/dist/src/init/kimi-generator.js.map +1 -1
  80. package/dist/src/init/settings-generator.d.ts.map +1 -1
  81. package/dist/src/init/settings-generator.js +0 -4
  82. package/dist/src/init/settings-generator.js.map +1 -1
  83. package/dist/src/init/shared.d.ts +112 -0
  84. package/dist/src/init/shared.d.ts.map +1 -0
  85. package/dist/src/init/shared.js +475 -0
  86. package/dist/src/init/shared.js.map +1 -0
  87. package/dist/src/init/statusline-generator.d.ts.map +1 -1
  88. package/dist/src/init/statusline-generator.js +37 -0
  89. package/dist/src/init/statusline-generator.js.map +1 -1
  90. package/dist/src/init/types.d.ts +1 -1
  91. package/dist/src/init/types.d.ts.map +1 -1
  92. package/dist/src/init/upgrade.d.ts +34 -0
  93. package/dist/src/init/upgrade.d.ts.map +1 -0
  94. package/dist/src/init/upgrade.js +477 -0
  95. package/dist/src/init/upgrade.js.map +1 -0
  96. package/dist/src/init/write-antigravity.d.ts +13 -0
  97. package/dist/src/init/write-antigravity.d.ts.map +1 -0
  98. package/dist/src/init/write-antigravity.js +117 -0
  99. package/dist/src/init/write-antigravity.js.map +1 -0
  100. package/dist/src/init/write-capabilities.d.ts +9 -0
  101. package/dist/src/init/write-capabilities.d.ts.map +1 -0
  102. package/dist/src/init/write-capabilities.js +392 -0
  103. package/dist/src/init/write-capabilities.js.map +1 -0
  104. package/dist/src/init/write-claude.d.ts +25 -0
  105. package/dist/src/init/write-claude.d.ts.map +1 -0
  106. package/dist/src/init/write-claude.js +279 -0
  107. package/dist/src/init/write-claude.js.map +1 -0
  108. package/dist/src/init/write-kimicode.d.ts +19 -0
  109. package/dist/src/init/write-kimicode.d.ts.map +1 -0
  110. package/dist/src/init/write-kimicode.js +223 -0
  111. package/dist/src/init/write-kimicode.js.map +1 -0
  112. package/dist/src/init/write-opencode.d.ts +14 -0
  113. package/dist/src/init/write-opencode.d.ts.map +1 -0
  114. package/dist/src/init/write-opencode.js +130 -0
  115. package/dist/src/init/write-opencode.js.map +1 -0
  116. package/dist/src/init/write-runtime-config.d.ts +14 -0
  117. package/dist/src/init/write-runtime-config.d.ts.map +1 -0
  118. package/dist/src/init/write-runtime-config.js +214 -0
  119. package/dist/src/init/write-runtime-config.js.map +1 -0
  120. package/dist/src/init/write-sample-org.d.ts +9 -0
  121. package/dist/src/init/write-sample-org.d.ts.map +1 -0
  122. package/dist/src/init/write-sample-org.js +39 -0
  123. package/dist/src/init/write-sample-org.js.map +1 -0
  124. package/dist/src/knowledge/eval/golden-set.js +1 -1
  125. package/dist/src/knowledge/eval/golden-set.js.map +1 -1
  126. package/dist/src/mcp-client.d.ts.map +1 -1
  127. package/dist/src/mcp-client.js +7 -3
  128. package/dist/src/mcp-client.js.map +1 -1
  129. package/dist/src/mcp-tools/analyze-tools.d.ts.map +1 -1
  130. package/dist/src/mcp-tools/analyze-tools.js +2 -25
  131. package/dist/src/mcp-tools/analyze-tools.js.map +1 -1
  132. package/dist/src/mcp-tools/auto-install.d.ts.map +1 -1
  133. package/dist/src/mcp-tools/auto-install.js +2 -1
  134. package/dist/src/mcp-tools/auto-install.js.map +1 -1
  135. package/dist/src/mcp-tools/hooks-routing.d.ts.map +1 -1
  136. package/dist/src/mcp-tools/hooks-routing.js +26 -0
  137. package/dist/src/mcp-tools/hooks-routing.js.map +1 -1
  138. package/dist/src/mcp-tools/memory-tools.d.ts.map +1 -1
  139. package/dist/src/mcp-tools/memory-tools.js +2 -37
  140. package/dist/src/mcp-tools/memory-tools.js.map +1 -1
  141. package/dist/src/mcp-tools/monodesign-tools.d.ts +19 -0
  142. package/dist/src/mcp-tools/monodesign-tools.d.ts.map +1 -0
  143. package/dist/src/mcp-tools/monodesign-tools.js +233 -0
  144. package/dist/src/mcp-tools/monodesign-tools.js.map +1 -0
  145. package/dist/src/mcp-tools/monograph/agent-history-tools.d.ts +5 -0
  146. package/dist/src/mcp-tools/monograph/agent-history-tools.d.ts.map +1 -0
  147. package/dist/src/mcp-tools/monograph/agent-history-tools.js +177 -0
  148. package/dist/src/mcp-tools/monograph/agent-history-tools.js.map +1 -0
  149. package/dist/src/mcp-tools/monograph/build-tools.d.ts +9 -0
  150. package/dist/src/mcp-tools/monograph/build-tools.d.ts.map +1 -0
  151. package/dist/src/mcp-tools/monograph/build-tools.js +299 -0
  152. package/dist/src/mcp-tools/monograph/build-tools.js.map +1 -0
  153. package/dist/src/mcp-tools/monograph/group-tools.d.ts +10 -0
  154. package/dist/src/mcp-tools/monograph/group-tools.d.ts.map +1 -0
  155. package/dist/src/mcp-tools/monograph/group-tools.js +225 -0
  156. package/dist/src/mcp-tools/monograph/group-tools.js.map +1 -0
  157. package/dist/src/mcp-tools/monograph/health-tools.d.ts +6 -0
  158. package/dist/src/mcp-tools/monograph/health-tools.d.ts.map +1 -0
  159. package/dist/src/mcp-tools/monograph/health-tools.js +113 -0
  160. package/dist/src/mcp-tools/monograph/health-tools.js.map +1 -0
  161. package/dist/src/mcp-tools/monograph/impact-tools.d.ts +9 -0
  162. package/dist/src/mcp-tools/monograph/impact-tools.d.ts.map +1 -0
  163. package/dist/src/mcp-tools/monograph/impact-tools.js +532 -0
  164. package/dist/src/mcp-tools/monograph/impact-tools.js.map +1 -0
  165. package/dist/src/mcp-tools/monograph/index.d.ts +10 -0
  166. package/dist/src/mcp-tools/monograph/index.d.ts.map +1 -0
  167. package/dist/src/mcp-tools/monograph/index.js +73 -0
  168. package/dist/src/mcp-tools/monograph/index.js.map +1 -0
  169. package/dist/src/mcp-tools/monograph/query-tools.d.ts +11 -0
  170. package/dist/src/mcp-tools/monograph/query-tools.d.ts.map +1 -0
  171. package/dist/src/mcp-tools/monograph/query-tools.js +500 -0
  172. package/dist/src/mcp-tools/monograph/query-tools.js.map +1 -0
  173. package/dist/src/mcp-tools/monograph/shared.d.ts +64 -0
  174. package/dist/src/mcp-tools/monograph/shared.d.ts.map +1 -0
  175. package/dist/src/mcp-tools/monograph/shared.js +215 -0
  176. package/dist/src/mcp-tools/monograph/shared.js.map +1 -0
  177. package/dist/src/mcp-tools/monograph/visualize-tools.d.ts +10 -0
  178. package/dist/src/mcp-tools/monograph/visualize-tools.d.ts.map +1 -0
  179. package/dist/src/mcp-tools/monograph/visualize-tools.js +382 -0
  180. package/dist/src/mcp-tools/monograph/visualize-tools.js.map +1 -0
  181. package/dist/src/mcp-tools/monograph-tools.d.ts +4 -23
  182. package/dist/src/mcp-tools/monograph-tools.d.ts.map +1 -1
  183. package/dist/src/mcp-tools/monograph-tools.js +4 -2439
  184. package/dist/src/mcp-tools/monograph-tools.js.map +1 -1
  185. package/dist/src/mcp-tools/monomind-tools.d.ts +8 -0
  186. package/dist/src/mcp-tools/monomind-tools.d.ts.map +1 -1
  187. package/dist/src/mcp-tools/monomind-tools.js +13 -1
  188. package/dist/src/mcp-tools/monomind-tools.js.map +1 -1
  189. package/dist/src/mcp-tools/quality/security-compliance/detect-secrets.d.ts.map +1 -1
  190. package/dist/src/mcp-tools/quality/security-compliance/detect-secrets.js +31 -2
  191. package/dist/src/mcp-tools/quality/security-compliance/detect-secrets.js.map +1 -1
  192. package/dist/src/mcp-tools/terminal-tools.d.ts.map +1 -1
  193. package/dist/src/mcp-tools/terminal-tools.js +31 -1
  194. package/dist/src/mcp-tools/terminal-tools.js.map +1 -1
  195. package/dist/src/mcp-tools/types.d.ts +8 -27
  196. package/dist/src/mcp-tools/types.d.ts.map +1 -1
  197. package/dist/src/mcp-tools/types.js +9 -91
  198. package/dist/src/mcp-tools/types.js.map +1 -1
  199. package/dist/src/memory/file-permissions.d.ts +15 -0
  200. package/dist/src/memory/file-permissions.d.ts.map +1 -0
  201. package/dist/src/memory/file-permissions.js +25 -0
  202. package/dist/src/memory/file-permissions.js.map +1 -0
  203. package/dist/src/memory/memory-bridge.d.ts.map +1 -1
  204. package/dist/src/memory/memory-bridge.js +94 -34
  205. package/dist/src/memory/memory-bridge.js.map +1 -1
  206. package/dist/src/memory/memory-crud.d.ts.map +1 -1
  207. package/dist/src/memory/memory-crud.js +298 -275
  208. package/dist/src/memory/memory-crud.js.map +1 -1
  209. package/dist/src/memory/memory-initializer.d.ts +2 -4
  210. package/dist/src/memory/memory-initializer.d.ts.map +1 -1
  211. package/dist/src/memory/memory-initializer.js +53 -76
  212. package/dist/src/memory/memory-initializer.js.map +1 -1
  213. package/dist/src/memory/memory-migrations.d.ts +1 -14
  214. package/dist/src/memory/memory-migrations.d.ts.map +1 -1
  215. package/dist/src/memory/memory-migrations.js +52 -105
  216. package/dist/src/memory/memory-migrations.js.map +1 -1
  217. package/dist/src/memory/sona-optimizer.d.ts +1 -1
  218. package/dist/src/memory/sona-optimizer.js +1 -1
  219. package/dist/src/monovector/index.d.ts +16 -19
  220. package/dist/src/monovector/index.d.ts.map +1 -1
  221. package/dist/src/monovector/index.js +50 -8
  222. package/dist/src/monovector/index.js.map +1 -1
  223. package/dist/src/orgrt/approvals.d.ts +16 -0
  224. package/dist/src/orgrt/approvals.d.ts.map +1 -0
  225. package/dist/src/orgrt/approvals.js +72 -0
  226. package/dist/src/orgrt/approvals.js.map +1 -0
  227. package/dist/src/orgrt/bus.d.ts.map +1 -1
  228. package/dist/src/orgrt/bus.js +21 -0
  229. package/dist/src/orgrt/bus.js.map +1 -1
  230. package/dist/src/orgrt/checkpoint-ops.d.ts +19 -0
  231. package/dist/src/orgrt/checkpoint-ops.d.ts.map +1 -0
  232. package/dist/src/orgrt/checkpoint-ops.js +219 -0
  233. package/dist/src/orgrt/checkpoint-ops.js.map +1 -0
  234. package/dist/src/orgrt/checkpoint.d.ts +33 -1
  235. package/dist/src/orgrt/checkpoint.d.ts.map +1 -1
  236. package/dist/src/orgrt/checkpoint.js +50 -6
  237. package/dist/src/orgrt/checkpoint.js.map +1 -1
  238. package/dist/src/orgrt/cross-org.d.ts +32 -0
  239. package/dist/src/orgrt/cross-org.d.ts.map +1 -0
  240. package/dist/src/orgrt/cross-org.js +256 -0
  241. package/dist/src/orgrt/cross-org.js.map +1 -0
  242. package/dist/src/orgrt/daemon.d.ts +131 -157
  243. package/dist/src/orgrt/daemon.d.ts.map +1 -1
  244. package/dist/src/orgrt/daemon.js +356 -966
  245. package/dist/src/orgrt/daemon.js.map +1 -1
  246. package/dist/src/orgrt/decisions.d.ts +33 -0
  247. package/dist/src/orgrt/decisions.d.ts.map +1 -0
  248. package/dist/src/orgrt/decisions.js +169 -0
  249. package/dist/src/orgrt/decisions.js.map +1 -0
  250. package/dist/src/orgrt/kimicode-runner.d.ts.map +1 -1
  251. package/dist/src/orgrt/kimicode-runner.js +5 -1
  252. package/dist/src/orgrt/kimicode-runner.js.map +1 -1
  253. package/dist/src/orgrt/opencode-runner.d.ts.map +1 -1
  254. package/dist/src/orgrt/opencode-runner.js +10 -2
  255. package/dist/src/orgrt/opencode-runner.js.map +1 -1
  256. package/dist/src/orgrt/org-memory.d.ts +45 -0
  257. package/dist/src/orgrt/org-memory.d.ts.map +1 -0
  258. package/dist/src/orgrt/org-memory.js +220 -0
  259. package/dist/src/orgrt/org-memory.js.map +1 -0
  260. package/dist/src/orgrt/policy.d.ts +4 -0
  261. package/dist/src/orgrt/policy.d.ts.map +1 -1
  262. package/dist/src/orgrt/policy.js +13 -1
  263. package/dist/src/orgrt/policy.js.map +1 -1
  264. package/dist/src/orgrt/prechecks.d.ts +15 -0
  265. package/dist/src/orgrt/prechecks.d.ts.map +1 -0
  266. package/dist/src/orgrt/prechecks.js +21 -0
  267. package/dist/src/orgrt/prechecks.js.map +1 -0
  268. package/dist/src/orgrt/questions.d.ts +39 -0
  269. package/dist/src/orgrt/questions.d.ts.map +1 -0
  270. package/dist/src/orgrt/questions.js +135 -0
  271. package/dist/src/orgrt/questions.js.map +1 -0
  272. package/dist/src/orgrt/remote.d.ts +25 -0
  273. package/dist/src/orgrt/remote.d.ts.map +1 -0
  274. package/dist/src/orgrt/remote.js +73 -0
  275. package/dist/src/orgrt/remote.js.map +1 -0
  276. package/dist/src/orgrt/scheduler-integration.d.ts +19 -0
  277. package/dist/src/orgrt/scheduler-integration.d.ts.map +1 -0
  278. package/dist/src/orgrt/scheduler-integration.js +90 -0
  279. package/dist/src/orgrt/scheduler-integration.js.map +1 -0
  280. package/dist/src/orgrt/server.d.ts.map +1 -1
  281. package/dist/src/orgrt/server.js +70 -2
  282. package/dist/src/orgrt/server.js.map +1 -1
  283. package/dist/src/orgrt/session.d.ts +30 -1
  284. package/dist/src/orgrt/session.d.ts.map +1 -1
  285. package/dist/src/orgrt/session.js +184 -53
  286. package/dist/src/orgrt/session.js.map +1 -1
  287. package/dist/src/orgrt/state-detector.d.ts +19 -0
  288. package/dist/src/orgrt/state-detector.d.ts.map +1 -0
  289. package/dist/src/orgrt/state-detector.js +59 -0
  290. package/dist/src/orgrt/state-detector.js.map +1 -0
  291. package/dist/src/orgrt/task-dag.d.ts +27 -0
  292. package/dist/src/orgrt/task-dag.d.ts.map +1 -0
  293. package/dist/src/orgrt/task-dag.js +100 -0
  294. package/dist/src/orgrt/task-dag.js.map +1 -0
  295. package/dist/src/orgrt/tool-fence.d.ts +7 -4
  296. package/dist/src/orgrt/tool-fence.d.ts.map +1 -1
  297. package/dist/src/orgrt/tool-fence.js +47 -6
  298. package/dist/src/orgrt/tool-fence.js.map +1 -1
  299. package/dist/src/orgrt/types.d.ts +57 -2
  300. package/dist/src/orgrt/types.d.ts.map +1 -1
  301. package/dist/src/orgrt/types.js +34 -3
  302. package/dist/src/orgrt/types.js.map +1 -1
  303. package/dist/src/routing/model-download.d.ts +49 -0
  304. package/dist/src/routing/model-download.d.ts.map +1 -0
  305. package/dist/src/routing/model-download.js +106 -0
  306. package/dist/src/routing/model-download.js.map +1 -0
  307. package/dist/src/services/crash-reporter.d.ts +5 -0
  308. package/dist/src/services/crash-reporter.d.ts.map +1 -1
  309. package/dist/src/services/crash-reporter.js +49 -0
  310. package/dist/src/services/crash-reporter.js.map +1 -1
  311. package/dist/src/transfer/anonymization/index.d.ts +18 -15
  312. package/dist/src/transfer/anonymization/index.d.ts.map +1 -1
  313. package/dist/src/transfer/anonymization/index.js +7 -119
  314. package/dist/src/transfer/anonymization/index.js.map +1 -1
  315. package/dist/src/ui/dashboard.html +606 -7
  316. package/dist/src/ui/orgs.html +7 -1
  317. package/dist/src/ui/routes-monograph.mjs +6 -0
  318. package/dist/src/ui/server.mjs +327 -7
  319. package/dist/src/update/checker.d.ts.map +1 -1
  320. package/dist/src/update/checker.js +2 -1
  321. package/dist/src/update/checker.js.map +1 -1
  322. package/dist/src/update/executor.d.ts.map +1 -1
  323. package/dist/src/update/executor.js +7 -3
  324. package/dist/src/update/executor.js.map +1 -1
  325. package/dist/src/update/index.d.ts +0 -1
  326. package/dist/src/update/index.d.ts.map +1 -1
  327. package/dist/src/update/index.js +5 -24
  328. package/dist/src/update/index.js.map +1 -1
  329. package/dist/src/utils/db-mutex.d.ts +11 -0
  330. package/dist/src/utils/db-mutex.d.ts.map +1 -0
  331. package/dist/src/utils/db-mutex.js +23 -0
  332. package/dist/src/utils/db-mutex.js.map +1 -0
  333. package/dist/src/utils/input-guards.d.ts +23 -0
  334. package/dist/src/utils/input-guards.d.ts.map +1 -1
  335. package/dist/src/utils/input-guards.js +72 -0
  336. package/dist/src/utils/input-guards.js.map +1 -1
  337. package/dist/src/utils/npm-command.d.ts +10 -0
  338. package/dist/src/utils/npm-command.d.ts.map +1 -0
  339. package/dist/src/utils/npm-command.js +12 -0
  340. package/dist/src/utils/npm-command.js.map +1 -0
  341. package/dist/src/utils/paths.d.ts +28 -0
  342. package/dist/src/utils/paths.d.ts.map +1 -0
  343. package/dist/src/utils/paths.js +108 -0
  344. package/dist/src/utils/paths.js.map +1 -0
  345. package/dist/tsconfig.tsbuildinfo +1 -1
  346. package/package.json +17 -17
  347. package/scripts/download-embedding-model.mjs +97 -0
  348. package/scripts/publish.sh +0 -0
  349. package/scripts/sync-claude-assets.sh +0 -0
  350. package/dist/src/production/circuit-breaker.d.ts +0 -121
  351. package/dist/src/production/circuit-breaker.d.ts.map +0 -1
  352. package/dist/src/production/circuit-breaker.js +0 -262
  353. package/dist/src/production/circuit-breaker.js.map +0 -1
  354. package/dist/src/production/error-handler.d.ts +0 -119
  355. package/dist/src/production/error-handler.d.ts.map +0 -1
  356. package/dist/src/production/error-handler.js +0 -324
  357. package/dist/src/production/error-handler.js.map +0 -1
  358. package/dist/src/production/index.d.ts +0 -6
  359. package/dist/src/production/index.d.ts.map +0 -1
  360. package/dist/src/production/index.js +0 -6
  361. package/dist/src/production/index.js.map +0 -1
  362. package/dist/src/production/monitoring.d.ts +0 -181
  363. package/dist/src/production/monitoring.d.ts.map +0 -1
  364. package/dist/src/production/monitoring.js +0 -375
  365. package/dist/src/production/monitoring.js.map +0 -1
  366. package/dist/src/production/rate-limiter.d.ts +0 -125
  367. package/dist/src/production/rate-limiter.d.ts.map +0 -1
  368. package/dist/src/production/rate-limiter.js +0 -218
  369. package/dist/src/production/rate-limiter.js.map +0 -1
  370. package/dist/src/production/retry.d.ts +0 -48
  371. package/dist/src/production/retry.d.ts.map +0 -1
  372. package/dist/src/production/retry.js +0 -189
  373. package/dist/src/production/retry.js.map +0 -1
  374. package/dist/src/transfer/types.d.ts +0 -245
  375. package/dist/src/transfer/types.d.ts.map +0 -1
  376. package/dist/src/transfer/types.js +0 -6
  377. package/dist/src/transfer/types.js.map +0 -1
@@ -2,12 +2,35 @@
2
2
  import { z } from 'zod';
3
3
  import { Mailbox } from './mailbox.js';
4
4
  import { ClaudeAgentRunner, defaultClaudeRunner } from './agent-runner.js';
5
+ import { StateDetector } from './state-detector.js';
5
6
  /** How long an SDK stream may stay open with zero messages before we say so.
6
7
  * Comfortably longer than a slow first turn, shorter than the idle watchdog's
7
8
  * 10-minute window so the specific cause is reported before the generic
8
9
  * "boss appears hung". */
9
10
  const SILENT_SESSION_MS = 4 * 60_000;
11
+ const CONTEXT_LIMIT_RE = /context.window.limit|context.length.exceeded|maximum.context/i;
10
12
  import { resolveProviderEnv } from './provider.js';
13
+ /** The SDK's `canUseTool` gate, composed from two independent layers: PolicyEngine's
14
+ * static config checks (deny/allow lists, path scoping, git level, web allowlist,
15
+ * budget), then — only for calls policy would allow — the human-approval guardrail
16
+ * (`beforeTool`, i.e. daemon.checkApproval) for whatever action names it treats as
17
+ * sensitive (Bash/WebFetch/WebSearch/org_complete). Exported standalone so this
18
+ * composition is unit-testable without spinning up a real SDK session: previously
19
+ * `beforeTool` was wired into SessionOpts but never actually called from here, so
20
+ * none of those sensitive actions ever paused for a human. */
21
+ export function gatedCanUseTool(policy, beforeTool, roleId) {
22
+ return async (toolName, input) => {
23
+ const decision = await policy.decide(toolName, input);
24
+ if (decision.behavior === 'deny' || !beforeTool)
25
+ return decision;
26
+ const approved = await beforeTool(roleId, toolName);
27
+ if (approved === false)
28
+ return { behavior: 'deny', message: `Tool "${toolName}" was denied by guardrail approval` };
29
+ if (approved === null)
30
+ return { behavior: 'deny', message: `Tool "${toolName}" is pending human approval — it will be available once approved or denied via 'monomind org approve/deny'.` };
31
+ return decision;
32
+ };
33
+ }
11
34
  /** Role briefing given to each agent session (SDK systemPrompt option). */
12
35
  export function buildRolePrompt(role, def, roster, glossary) {
13
36
  const isCoordinator = role.reports_to == null;
@@ -19,8 +42,12 @@ export function buildRolePrompt(role, def, roster, glossary) {
19
42
  `## Communication protocol`,
20
43
  `The ONLY way to communicate with other agents is the org_send tool.`,
21
44
  `Roster: ${roster.join(', ')}. Address another org's agent as "<org-name>:<role-id>".`,
22
- `When you receive a message, act on it, then org_send your result to the requester.`,
23
45
  `If you need a human decision, call ask_human with your question, then end your turn - you'll receive the human's answer as a new message when it arrives. Do not call ask_human for anything you can resolve yourself.`,
46
+ `For irreversible or high-risk actions (deployments, deletions, external communications), call org_gate to create a decision gate — a hard-blocking approval checkpoint. End your turn and wait for the human's approval or rejection before proceeding.`,
47
+ `You can structure work as a task DAG: use org_task to create tasks with dependencies, org_task_done to mark them complete, and org_tasks to see the full DAG. Tasks with satisfied dependencies are automatically dispatched to their assignee.`,
48
+ `Before starting substantial work, call org_recall to check what previous runs already learned or delivered - do not redo finished work.`,
49
+ `The user's documents (notes, handbooks, specs) are searchable with knowledge_search - ground your work in them instead of guessing; results labeled [global] come from the user's personal cross-project brain.`,
50
+ `When you receive a message, act on it, then org_send your result to the requester.`,
24
51
  isCoordinator
25
52
  ? `When the org's goal for this run is achieved (or clearly can't be): first call org_learn ONCE with the durable knowledge this run produced, then call org_complete exactly once with the outcome and a concise summary. Then end your turn.`
26
53
  : `When your current work is complete and no reply is needed, end your turn without further tool calls.`,
@@ -53,13 +80,23 @@ export async function runAgentSession(opts) {
53
80
  // watchdog re-engage — so a stuck role can't burn tokens forever.
54
81
  const MAX_CONTINUATIONS = 3;
55
82
  let consecutiveSpin = 0;
83
+ // The SDK's result message reports total_cost_usd CUMULATIVELY for the whole
84
+ // SDK session: one query() call stays open across every mailbox message
85
+ // (streaming-input mode) and emits one result per message, and the running
86
+ // total even survives a resume after a maxTurns restart. daemon.ts and
87
+ // reporting.ts both SUM the cost_usd of usage events, so forwarding the raw
88
+ // value charged every previous turn again on each new message - observed as
89
+ // ~10-20x cost inflation on long org runs. Track the last-seen total per
90
+ // SDK session id here (it must outlive individual runOneSession calls,
91
+ // since resume continues the same billing session) and emit only deltas.
92
+ const sessionCostTotals = new Map();
56
93
  // Always run at least once: a mailbox can be closed with queued items still
57
94
  // pending (stream() drains the queue before honoring `closed`), which is a
58
95
  // normal, valid starting state - checking isClosed before the first run
59
96
  // would skip that drain entirely.
60
97
  while (true) {
61
98
  const realBefore = mailbox.consumedRealCount;
62
- const { sessionId, hitTurnLimit } = await runOneSession(opts, resumeSessionId);
99
+ const { sessionId, hitTurnLimit } = await runOneSession(opts, resumeSessionId, sessionCostTotals);
63
100
  resumeSessionId = sessionId;
64
101
  // The dead session's generator may still hold the waker - drop it so a
65
102
  // push() before the next stream() starts only queues instead of being
@@ -93,7 +130,7 @@ export async function runAgentSession(opts) {
93
130
  * resuming on restart) and whether it ended by hitting the turn limit (so the
94
131
  * caller can push a continuation) when the stream ends (mailbox closed or
95
132
  * maxTurns reached). */
96
- async function runOneSession(opts, resume) {
133
+ async function runOneSession(opts, resume, costTotals) {
97
134
  const { org, role, bus, policy, mailbox, cwd } = opts;
98
135
  // Read lastMessageId live from opts instead of capturing at session start
99
136
  // This ensures chat responses link to the most recent message delivered
@@ -106,6 +143,7 @@ async function runOneSession(opts, resume) {
106
143
  bus.emit({ type: 'status', from: role.id, msg: 'session starting' });
107
144
  let sessionId = resume;
108
145
  let hitTurnLimit = false;
146
+ let contextLimitFired = false;
109
147
  try {
110
148
  const stream = runner.run({
111
149
  tools,
@@ -127,7 +165,7 @@ async function runOneSession(opts, resume) {
127
165
  },
128
166
  maxTurns: opts.maxTurns ?? 30,
129
167
  resume,
130
- canUseTool: async (toolName, input) => policy.decide(toolName, input),
168
+ canUseTool: gatedCanUseTool(policy, opts.beforeTool, role.id),
131
169
  // test seam forwarded through extras: lets the scripted fake SDK
132
170
  // (test-loop.ts) drive org_send and tool calls through the real
133
171
  // deliver/policy paths; the real SDK ignores it.
@@ -143,65 +181,130 @@ async function runOneSession(opts, resume) {
143
181
  // and yielded NOTHING - no assistant message, no result, no error, and no
144
182
  // stream end. The only symptom was the idle watchdog reporting the boss
145
183
  // "appears hung" twenty minutes later, which described neither the scope
146
- // (every role) nor the cause. Name the condition at the one place that can
147
- // see it: the stream itself. Cleared as soon as any message arrives, so a
148
- // healthy session never emits it.
184
+ // (every role) nor the cause.
185
+ //
186
+ // Naming it used to be all this did: log an audit event at 4 minutes and
187
+ // then keep waiting on the same stuck `for await`, so recovery still
188
+ // depended on the org-wide idle watchdog (10m nudge + 10m stop = 20m of
189
+ // dead time per cycle - and it kills the WHOLE run, not just the stuck
190
+ // session). Only the FIRST pull from the stream is raced against the
191
+ // timeout: once any message has arrived the session is demonstrably
192
+ // alive, so a slow-but-working tool call is never mistaken for a stall.
193
+ // On silence, abandon this attempt (best-effort iterator.return() to
194
+ // signal the SDK) and throw - the caller's crash-retry-with-backoff loop
195
+ // (daemon.ts's `runtime.done`) already knows how to retry a failed
196
+ // session with a fresh query() call and, for the boss, escalate to a
197
+ // whole-org restart if it keeps failing. That gives the SDK several
198
+ // fresh attempts within a single cycle instead of one silent attempt
199
+ // followed by twenty minutes of nothing.
149
200
  const openedAt = Date.now();
150
- let sawAnyMessage = false;
151
- const silentAlarm = setTimeout(() => {
152
- if (sawAnyMessage)
153
- return;
201
+ const detector = new StateDetector();
202
+ const iterator = stream[Symbol.asyncIterator]();
203
+ const SILENT = Symbol('silent');
204
+ let silentTimer;
205
+ const firstPull = await Promise.race([
206
+ iterator.next(),
207
+ new Promise(resolve => {
208
+ silentTimer = setTimeout(() => resolve(SILENT), SILENT_SESSION_MS);
209
+ silentTimer.unref?.();
210
+ }),
211
+ ]);
212
+ clearTimeout(silentTimer);
213
+ if (firstPull === SILENT) {
154
214
  bus.emit({
155
215
  type: 'audit', from: role.id, reason: 'session-silent',
156
- msg: `SDK stream open ${Math.round((Date.now() - openedAt) / 1000)}s with zero messages - not an error, not an end, nothing. Set MONOMIND_DEBUG=1 to log raw message types.`,
216
+ msg: `SDK stream open ${Math.round((Date.now() - openedAt) / 1000)}s with zero messages - aborting this attempt and retrying. Set MONOMIND_DEBUG=1 to log raw message types.`,
157
217
  });
158
- }, SILENT_SESSION_MS);
159
- silentAlarm.unref?.();
160
- try {
161
- for await (const m of stream) {
162
- if (!sawAnyMessage) {
163
- sawAnyMessage = true;
164
- clearTimeout(silentAlarm);
165
- }
166
- if (process.env.MONOMIND_DEBUG) {
167
- console.error(`[orgrt:${org}/${role.id}] runner message type=${m.type} subtype=${String(m.subtype ?? '-')}`);
218
+ try {
219
+ await Promise.race([
220
+ iterator.return?.(undefined) ?? Promise.resolve(),
221
+ new Promise(r => { const t = setTimeout(() => r(), 2_000); t.unref?.(); }),
222
+ ]);
223
+ }
224
+ catch { /* best-effort */ }
225
+ throw new Error(`org "${org}" role "${role.id}": SDK stream silent for ${Math.round(SILENT_SESSION_MS / 1000)}s with zero messages`);
226
+ }
227
+ const first = firstPull;
228
+ // Replay the first pulled message, then continue draining normally.
229
+ async function* rest() {
230
+ if (!first.done)
231
+ yield first.value;
232
+ while (true) {
233
+ const r = await iterator.next();
234
+ if (r.done)
235
+ return;
236
+ yield r.value;
237
+ }
238
+ }
239
+ for await (const m of rest()) {
240
+ if (process.env.MONOMIND_DEBUG) {
241
+ console.error(`[orgrt:${org}/${role.id}] runner message type=${m.type} subtype=${String(m.subtype ?? '-')}`);
242
+ }
243
+ if (m.session_id)
244
+ sessionId = m.session_id;
245
+ const prevState = detector.current();
246
+ const textForDetect = m.type === 'assistant' ? (m.text || '') : undefined;
247
+ const newState = detector.onMessage(m.type, m.subtype, textForDetect);
248
+ if (newState !== prevState) {
249
+ bus.emit({ type: 'status', from: role.id, reason: 'state-change', msg: `${prevState} → ${newState}`, data: { from: prevState, to: newState } });
250
+ }
251
+ if (m.type === 'assistant') {
252
+ const text = m.text || '';
253
+ if (text.trim()) {
254
+ opts.onOutput?.(text);
255
+ bus.emit({ type: 'chat', from: role.id, msg: text, parentId: getLastMessageId() });
256
+ if (opts.onContextLimit && !contextLimitFired && CONTEXT_LIMIT_RE.test(text)) {
257
+ contextLimitFired = true;
258
+ bus.emit({ type: 'audit', from: role.id, reason: 'boss-context-limit', msg: 'coordinator context window exhausted — requesting whole-org restart with fresh sessions' });
259
+ opts.onContextLimit();
260
+ }
168
261
  }
169
- if (m.session_id)
170
- sessionId = m.session_id;
171
- if (m.type === 'assistant') {
172
- const text = m.text || '';
173
- if (text.trim())
174
- bus.emit({ type: 'chat', from: role.id, msg: text, parentId: getLastMessageId() });
262
+ }
263
+ else if (m.type === 'result') {
264
+ const tokens = (m.input_tokens ?? 0) + (m.output_tokens ?? 0);
265
+ policy.addUsage(tokens);
266
+ // Convert the SDK's cumulative-per-session total_cost_usd into a
267
+ // per-result delta before emitting - downstream sums usage events.
268
+ // A value below the stored total means the billing session restarted
269
+ // (fresh session id), in which case the full value is the delta.
270
+ let costDelta = m.cost_usd;
271
+ if (costTotals && typeof m.cost_usd === 'number' && Number.isFinite(m.cost_usd)) {
272
+ const sid = m.session_id ?? sessionId ?? '';
273
+ const prev = costTotals.get(sid);
274
+ costDelta = prev === undefined || m.cost_usd < prev ? m.cost_usd : m.cost_usd - prev;
275
+ costTotals.set(sid, m.cost_usd);
175
276
  }
176
- else if (m.type === 'result') {
177
- const tokens = (m.input_tokens ?? 0) + (m.output_tokens ?? 0);
178
- policy.addUsage(tokens);
179
- bus.emit({ type: 'usage', from: role.id, data: { tokens, cost_usd: m.cost_usd, subtype: m.subtype } });
180
- // A result whose subtype is anything but `success` is the runner
181
- // reporting a failed turn - hit max_turns, refused, rate/usage
182
- // limited, errored mid-execution. Recording it only as a usage event
183
- // made those indistinguishable from a healthy turn.
184
- if (m.subtype && m.subtype !== 'success') {
185
- // max_turns means the role was actively working and got capped - the
186
- // caller pushes a continuation so the restarted session resumes work
187
- // instead of blocking on an empty mailbox.
188
- if (m.subtype === 'error_max_turns')
189
- hitTurnLimit = true;
190
- bus.emit({
191
- type: 'audit', from: role.id, reason: 'session-result-error',
192
- msg: `turn ended with subtype "${m.subtype}"${m.is_error ? ' (is_error)' : ''} - the role produced no usable output`,
193
- });
194
- }
195
- if (policy.overBudget) {
196
- bus.emit({ type: 'status', from: role.id, msg: 'token budget exhausted - closing session' });
197
- mailbox.close();
277
+ bus.emit({ type: 'usage', from: role.id, data: { tokens, cost_usd: costDelta, subtype: m.subtype } });
278
+ if (m.subtype && m.subtype !== 'success') {
279
+ if (m.subtype === 'error_max_turns')
280
+ hitTurnLimit = true;
281
+ bus.emit({
282
+ type: 'audit', from: role.id, reason: 'session-result-error',
283
+ msg: `turn ended with subtype "${m.subtype}"${m.is_error ? ' (is_error)' : ''} - the role produced no usable output`,
284
+ });
285
+ if (opts.circuitBreaker && m.subtype !== 'error_max_turns') {
286
+ const cb = opts.circuitBreaker;
287
+ cb.state.failures++;
288
+ if (cb.state.failures >= cb.threshold) {
289
+ cb.state.tripped = true;
290
+ bus.emit({
291
+ type: 'audit', from: role.id, reason: 'circuit-breaker-tripped',
292
+ msg: `circuit breaker tripped after ${cb.state.failures} consecutive failures — closing role`,
293
+ data: { failures: cb.state.failures, threshold: cb.threshold },
294
+ });
295
+ mailbox.close();
296
+ }
198
297
  }
199
298
  }
299
+ else if (m.subtype === 'success' && opts.circuitBreaker) {
300
+ opts.circuitBreaker.state.failures = 0;
301
+ }
302
+ if (policy.overBudget) {
303
+ bus.emit({ type: 'status', from: role.id, msg: 'token budget exhausted - closing session' });
304
+ mailbox.close();
305
+ }
200
306
  }
201
307
  }
202
- finally {
203
- clearTimeout(silentAlarm);
204
- }
205
308
  bus.emit({ type: 'status', from: role.id, msg: 'session ended' });
206
309
  return { sessionId, hitTurnLimit };
207
310
  }
@@ -271,6 +374,34 @@ function buildOrgTools(opts) {
271
374
  },
272
375
  });
273
376
  }
377
+ if (opts.onGate) {
378
+ tools.push({
379
+ name: 'org_gate',
380
+ description: 'Create a decision gate — a hard-blocking human-approval checkpoint. Use before irreversible actions (deployments, deletions, external comms). The gate pauses your work until a human approves or rejects it. End your turn after calling this; you will receive the resolution as a new message.',
381
+ schema: { name: z.string(), description: z.string() },
382
+ handler: async (args) => text(await opts.onGate(role.id, args.name, args.description)),
383
+ });
384
+ }
385
+ if (opts.createTask) {
386
+ tools.push({
387
+ name: 'org_task',
388
+ description: 'Create a task in the DAG with optional dependencies. Dependencies must be existing task IDs. Tasks become ready when all deps are done, then get dispatched to the assignee.',
389
+ schema: { title: z.string(), assignee: z.string(), deps: z.array(z.string()).default([]) },
390
+ handler: async (args) => text(opts.createTask(role.id, args.title, args.assignee, args.deps ?? [])),
391
+ });
392
+ tools.push({
393
+ name: 'org_task_done',
394
+ description: 'Mark a task as completed and optionally provide a result summary. Any downstream tasks whose deps are now all done will become ready and be dispatched.',
395
+ schema: { taskId: z.string(), result: z.string().optional() },
396
+ handler: async (args) => text(opts.completeTask(role.id, args.taskId, args.result)),
397
+ });
398
+ tools.push({
399
+ name: 'org_tasks',
400
+ description: 'List all tasks in the DAG with their current status and dependencies.',
401
+ schema: {},
402
+ handler: async () => text(opts.listTasks()),
403
+ });
404
+ }
274
405
  tools.push({
275
406
  name: 'org_send',
276
407
  description: 'Send a message to another agent (role id) or another org ("org:role"). This is the only inter-agent channel.',
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/orgrt/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/orgrt/session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ export type AgentState = 'idle' | 'working' | 'tool-call' | 'blocked' | 'error' | 'completed';
2
+ export interface StatePattern {
3
+ pattern: RegExp;
4
+ state: AgentState;
5
+ }
6
+ export declare class StateDetector {
7
+ private state;
8
+ private lastActivity;
9
+ private patterns;
10
+ private idleThresholdMs;
11
+ constructor(customPatterns?: StatePattern[], idleThresholdMs?: number);
12
+ /** Process an SDK message and infer the agent's state. */
13
+ onMessage(type: string, subtype?: string, text?: string): AgentState;
14
+ /** Check if agent has gone idle based on time since last activity. */
15
+ checkIdle(): AgentState;
16
+ current(): AgentState;
17
+ lastActiveAt(): number;
18
+ }
19
+ //# sourceMappingURL=state-detector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state-detector.d.ts","sourceRoot":"","sources":["../../../src/orgrt/state-detector.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,OAAO,GAAG,WAAW,CAAC;AAE9F,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,UAAU,CAAC;CACnB;AASD,qBAAa,aAAa;IACxB,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,YAAY,CAAc;IAClC,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,eAAe,CAAS;IAEhC,YAAY,cAAc,CAAC,EAAE,YAAY,EAAE,EAAE,eAAe,SAAS,EAGpE;IAED,0DAA0D;IAC1D,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,CAuBnE;IAED,sEAAsE;IACtE,SAAS,IAAI,UAAU,CAOtB;IAED,OAAO,IAAI,UAAU,CAAuB;IAC5C,YAAY,IAAI,MAAM,CAA8B;CACrD"}
@@ -0,0 +1,59 @@
1
+ // packages/@monomind/cli/src/orgrt/state-detector.ts
2
+ const DEFAULT_PATTERNS = [
3
+ { pattern: /\berror\b.*\b(failed|crash|exception|traceback)\b/i, state: 'error' },
4
+ { pattern: /\b(waiting|blocked|pending)\b.*\b(approval|gate|human|input)\b/i, state: 'blocked' },
5
+ { pattern: /\b(calling|invoking|running|executing)\b.*\btool\b/i, state: 'tool-call' },
6
+ { pattern: /\b(completed?|finished|done|achieved)\b/i, state: 'completed' },
7
+ ];
8
+ export class StateDetector {
9
+ state = 'idle';
10
+ lastActivity = Date.now();
11
+ patterns;
12
+ idleThresholdMs;
13
+ constructor(customPatterns, idleThresholdMs = 30_000) {
14
+ this.patterns = customPatterns ?? DEFAULT_PATTERNS;
15
+ this.idleThresholdMs = idleThresholdMs;
16
+ }
17
+ /** Process an SDK message and infer the agent's state. */
18
+ onMessage(type, subtype, text) {
19
+ this.lastActivity = Date.now();
20
+ if (type === 'result') {
21
+ if (subtype === 'success') {
22
+ this.state = 'idle';
23
+ return this.state;
24
+ }
25
+ if (subtype === 'error_max_turns') {
26
+ this.state = 'idle';
27
+ return this.state;
28
+ }
29
+ this.state = 'error';
30
+ return this.state;
31
+ }
32
+ if (type === 'tool_use') {
33
+ this.state = 'tool-call';
34
+ return this.state;
35
+ }
36
+ if (type === 'assistant' && text) {
37
+ for (const { pattern, state } of this.patterns) {
38
+ if (pattern.test(text)) {
39
+ this.state = state;
40
+ return this.state;
41
+ }
42
+ }
43
+ this.state = 'working';
44
+ }
45
+ return this.state;
46
+ }
47
+ /** Check if agent has gone idle based on time since last activity. */
48
+ checkIdle() {
49
+ if (this.state === 'working' || this.state === 'tool-call') {
50
+ if (Date.now() - this.lastActivity > this.idleThresholdMs) {
51
+ this.state = 'idle';
52
+ }
53
+ }
54
+ return this.state;
55
+ }
56
+ current() { return this.state; }
57
+ lastActiveAt() { return this.lastActivity; }
58
+ }
59
+ //# sourceMappingURL=state-detector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state-detector.js","sourceRoot":"","sources":["../../../src/orgrt/state-detector.ts"],"names":[],"mappings":"AAAA,qDAAqD;AASrD,MAAM,gBAAgB,GAAmB;IACvC,EAAE,OAAO,EAAE,oDAAoD,EAAE,KAAK,EAAE,OAAO,EAAE;IACjF,EAAE,OAAO,EAAE,iEAAiE,EAAE,KAAK,EAAE,SAAS,EAAE;IAChG,EAAE,OAAO,EAAE,qDAAqD,EAAE,KAAK,EAAE,WAAW,EAAE;IACtF,EAAE,OAAO,EAAE,0CAA0C,EAAE,KAAK,EAAE,WAAW,EAAE;CAC5E,CAAC;AAEF,MAAM,OAAO,aAAa;IAChB,KAAK,GAAe,MAAM,CAAC;IAC3B,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC1B,QAAQ,CAAiB;IACzB,eAAe,CAAS;IAEhC,YAAY,cAA+B,EAAE,eAAe,GAAG,MAAM;QACnE,IAAI,CAAC,QAAQ,GAAG,cAAc,IAAI,gBAAgB,CAAC;QACnD,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;IACzC,CAAC;IAED,0DAA0D;IAC1D,SAAS,CAAC,IAAY,EAAE,OAAgB,EAAE,IAAa;QACrD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE/B,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAAC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;gBAAC,OAAO,IAAI,CAAC,KAAK,CAAC;YAAC,CAAC;YACtE,IAAI,OAAO,KAAK,iBAAiB,EAAE,CAAC;gBAAC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;gBAAC,OAAO,IAAI,CAAC,KAAK,CAAC;YAAC,CAAC;YAC9E,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC;YACrB,OAAO,IAAI,CAAC,KAAK,CAAC;QACpB,CAAC;QAED,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YACxB,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC;YACzB,OAAO,IAAI,CAAC,KAAK,CAAC;QACpB,CAAC;QAED,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,EAAE,CAAC;YACjC,KAAK,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC/C,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;oBAAC,OAAO,IAAI,CAAC,KAAK,CAAC;gBAAC,CAAC;YACpE,CAAC;YACD,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACzB,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,sEAAsE;IACtE,SAAS;QACP,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;YAC3D,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;gBAC1D,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;YACtB,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,OAAO,KAAiB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5C,YAAY,KAAa,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;CACrD"}
@@ -0,0 +1,27 @@
1
+ export interface OrgTask {
2
+ id: string;
3
+ title: string;
4
+ assignee: string;
5
+ deps: string[];
6
+ status: 'pending' | 'ready' | 'running' | 'done' | 'failed';
7
+ result?: string;
8
+ createdAt: number;
9
+ startedAt?: number;
10
+ completedAt?: number;
11
+ }
12
+ export declare class TaskDag {
13
+ private tasks;
14
+ private counter;
15
+ add(title: string, assignee: string, deps?: string[]): OrgTask;
16
+ complete(id: string, result?: string): OrgTask[];
17
+ fail(id: string, reason?: string): void;
18
+ markRunning(id: string): void;
19
+ ready(): OrgTask[];
20
+ get(id: string): OrgTask | undefined;
21
+ all(): OrgTask[];
22
+ toJSON(): OrgTask[];
23
+ static fromJSON(data: OrgTask[]): TaskDag;
24
+ private promoteReady;
25
+ private hasCycle;
26
+ }
27
+ //# sourceMappingURL=task-dag.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-dag.d.ts","sourceRoot":"","sources":["../../../src/orgrt/task-dag.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,MAAM,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,OAAO;IAClB,OAAO,CAAC,KAAK,CAA8B;IAC3C,OAAO,CAAC,OAAO,CAAK;IAEpB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,EAAO,GAAG,OAAO,CAejE;IAED,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,EAAE,CAO/C;IAED,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAMtC;IAED,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAM5B;IAED,KAAK,IAAI,OAAO,EAAE,CAEjB;IAED,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAA+B;IAEnE,GAAG,IAAI,OAAO,EAAE,CAAqC;IAErD,MAAM,IAAI,OAAO,EAAE,CAAuB;IAE1C,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAQxC;IAED,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,QAAQ;CAgBjB"}
@@ -0,0 +1,100 @@
1
+ // packages/@monomind/cli/src/orgrt/task-dag.ts
2
+ export class TaskDag {
3
+ tasks = new Map();
4
+ counter = 0;
5
+ add(title, assignee, deps = []) {
6
+ const id = `task-${++this.counter}`;
7
+ for (const d of deps) {
8
+ if (!this.tasks.has(d))
9
+ throw new Error(`dependency "${d}" does not exist`);
10
+ }
11
+ const task = { id, title, assignee, deps, status: 'pending', createdAt: Date.now() };
12
+ this.tasks.set(id, task);
13
+ if (this.hasCycle()) {
14
+ this.tasks.delete(id);
15
+ throw new Error(`adding "${id}" would create a cycle`);
16
+ }
17
+ if (deps.length === 0 || deps.every(d => this.tasks.get(d).status === 'done')) {
18
+ task.status = 'ready';
19
+ }
20
+ return task;
21
+ }
22
+ complete(id, result) {
23
+ const t = this.tasks.get(id);
24
+ if (!t)
25
+ throw new Error(`task "${id}" not found`);
26
+ t.status = 'done';
27
+ t.result = result;
28
+ t.completedAt = Date.now();
29
+ return this.promoteReady();
30
+ }
31
+ fail(id, reason) {
32
+ const t = this.tasks.get(id);
33
+ if (!t)
34
+ throw new Error(`task "${id}" not found`);
35
+ t.status = 'failed';
36
+ t.result = reason;
37
+ t.completedAt = Date.now();
38
+ }
39
+ markRunning(id) {
40
+ const t = this.tasks.get(id);
41
+ if (t && t.status === 'ready') {
42
+ t.status = 'running';
43
+ t.startedAt = Date.now();
44
+ }
45
+ }
46
+ ready() {
47
+ return [...this.tasks.values()].filter(t => t.status === 'ready');
48
+ }
49
+ get(id) { return this.tasks.get(id); }
50
+ all() { return [...this.tasks.values()]; }
51
+ toJSON() { return this.all(); }
52
+ static fromJSON(data) {
53
+ const dag = new TaskDag();
54
+ for (const t of data) {
55
+ dag.tasks.set(t.id, { ...t });
56
+ const num = parseInt(t.id.replace('task-', ''), 10);
57
+ if (!isNaN(num) && num > dag.counter)
58
+ dag.counter = num;
59
+ }
60
+ return dag;
61
+ }
62
+ promoteReady() {
63
+ const promoted = [];
64
+ for (const t of this.tasks.values()) {
65
+ if (t.status !== 'pending')
66
+ continue;
67
+ if (t.deps.every(d => this.tasks.get(d)?.status === 'done')) {
68
+ t.status = 'ready';
69
+ promoted.push(t);
70
+ }
71
+ }
72
+ return promoted;
73
+ }
74
+ hasCycle() {
75
+ const visited = new Set();
76
+ const stack = new Set();
77
+ const dfs = (id) => {
78
+ if (stack.has(id))
79
+ return true;
80
+ if (visited.has(id))
81
+ return false;
82
+ visited.add(id);
83
+ stack.add(id);
84
+ const t = this.tasks.get(id);
85
+ if (t)
86
+ for (const d of t.deps) {
87
+ if (dfs(d))
88
+ return true;
89
+ }
90
+ stack.delete(id);
91
+ return false;
92
+ };
93
+ for (const id of this.tasks.keys()) {
94
+ if (dfs(id))
95
+ return true;
96
+ }
97
+ return false;
98
+ }
99
+ }
100
+ //# sourceMappingURL=task-dag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-dag.js","sourceRoot":"","sources":["../../../src/orgrt/task-dag.ts"],"names":[],"mappings":"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"}
@@ -40,10 +40,13 @@ export interface ToolCall {
40
40
  * protocol must name the distinction explicitly.
41
41
  */
42
42
  export declare function buildToolProtocol(tools: OrgToolDef[]): string;
43
- /** Extract tool_call fences from raw assistant texts. Invalid JSON or a
44
- * missing name is skipped (reported back as an error result is impossible
45
- * without a name — so it's silently ignored, matching lenient parsing). */
46
- export declare function parseToolCalls(rawTexts: string[]): ToolCall[];
43
+ /** Extract tool_call fences from raw assistant texts. A fence whose JSON
44
+ * cannot be parsed at all is skipped — but NOT silently: `onMalformed` (when
45
+ * given) is invoked with the raw fence body and the parse error so callers
46
+ * can surface it (runners emit it as an assistant note, which session.ts
47
+ * routes to the org bus and scrollback). A parsed object without a string
48
+ * `name` is skipped quietly — there is nothing actionable to report. */
49
+ export declare function parseToolCalls(rawTexts: string[], onMalformed?: (raw: string, error: string) => void): ToolCall[];
47
50
  /** Execute one tool call against the OrgToolDef handlers, validating args
48
51
  * against the tool's zod shape. Handler errors come back as text so the
49
52
  * model sees the failure instead of the turn dying. */