@monoes/monomindcli 2.16.12 → 2.16.14

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 (386) hide show
  1. package/.claude/agents/core/coder.md +1 -1
  2. package/.claude/agents/engineering/engineering-devops-automator.md +1 -1
  3. package/.claude/agents/github/repo-architect.md +1 -1
  4. package/.claude/agents/testing/production-validator.md +1 -1
  5. package/.claude/agents/testing/testing-tool-evaluator.md +1 -1
  6. package/.claude/commands/github/pr-manager.md +1 -1
  7. package/.claude/helpers/pick-rank.cjs +34 -4
  8. package/.claude/skills/monolean-audit/SKILL.md +1 -1
  9. package/README.md +1 -1
  10. package/dist/src/commands/cleanup-data.d.ts +30 -0
  11. package/dist/src/commands/cleanup-data.d.ts.map +1 -0
  12. package/dist/src/commands/cleanup-data.js +138 -0
  13. package/dist/src/commands/cleanup-data.js.map +1 -0
  14. package/dist/src/commands/cleanup-scratch.d.ts +43 -0
  15. package/dist/src/commands/cleanup-scratch.d.ts.map +1 -0
  16. package/dist/src/commands/cleanup-scratch.js +125 -0
  17. package/dist/src/commands/cleanup-scratch.js.map +1 -0
  18. package/dist/src/commands/cleanup.d.ts +2 -39
  19. package/dist/src/commands/cleanup.d.ts.map +1 -1
  20. package/dist/src/commands/cleanup.js +5 -247
  21. package/dist/src/commands/cleanup.js.map +1 -1
  22. package/dist/src/commands/doctor-gitignore-checks.d.ts +10 -0
  23. package/dist/src/commands/doctor-gitignore-checks.d.ts.map +1 -0
  24. package/dist/src/commands/doctor-gitignore-checks.js +141 -0
  25. package/dist/src/commands/doctor-gitignore-checks.js.map +1 -0
  26. package/dist/src/commands/doctor-helpers-checks.d.ts +10 -0
  27. package/dist/src/commands/doctor-helpers-checks.d.ts.map +1 -0
  28. package/dist/src/commands/doctor-helpers-checks.js +292 -0
  29. package/dist/src/commands/doctor-helpers-checks.js.map +1 -0
  30. package/dist/src/commands/doctor-memory-checks.d.ts +47 -0
  31. package/dist/src/commands/doctor-memory-checks.d.ts.map +1 -0
  32. package/dist/src/commands/doctor-memory-checks.js +298 -0
  33. package/dist/src/commands/doctor-memory-checks.js.map +1 -0
  34. package/dist/src/commands/doctor-monograph-checks.d.ts +9 -0
  35. package/dist/src/commands/doctor-monograph-checks.d.ts.map +1 -0
  36. package/dist/src/commands/doctor-monograph-checks.js +331 -0
  37. package/dist/src/commands/doctor-monograph-checks.js.map +1 -0
  38. package/dist/src/commands/doctor-project-checks.d.ts +7 -66
  39. package/dist/src/commands/doctor-project-checks.d.ts.map +1 -1
  40. package/dist/src/commands/doctor-project-checks.js +10 -1331
  41. package/dist/src/commands/doctor-project-checks.js.map +1 -1
  42. package/dist/src/commands/doctor-routing-checks.d.ts +10 -0
  43. package/dist/src/commands/doctor-routing-checks.d.ts.map +1 -0
  44. package/dist/src/commands/doctor-routing-checks.js +194 -0
  45. package/dist/src/commands/doctor-routing-checks.js.map +1 -0
  46. package/dist/src/commands/doctor-worker-checks.d.ts +17 -0
  47. package/dist/src/commands/doctor-worker-checks.d.ts.map +1 -0
  48. package/dist/src/commands/doctor-worker-checks.js +122 -0
  49. package/dist/src/commands/doctor-worker-checks.js.map +1 -0
  50. package/dist/src/commands/hooks-routing-commands.js +1 -1
  51. package/dist/src/commands/hooks-routing-commands.js.map +1 -1
  52. package/dist/src/commands/init.d.ts.map +1 -1
  53. package/dist/src/commands/init.js +6 -15
  54. package/dist/src/commands/init.js.map +1 -1
  55. package/dist/src/commands/org-control.d.ts +117 -0
  56. package/dist/src/commands/org-control.d.ts.map +1 -0
  57. package/dist/src/commands/org-control.js +274 -0
  58. package/dist/src/commands/org-control.js.map +1 -0
  59. package/dist/src/commands/org-lifecycle.d.ts +7 -0
  60. package/dist/src/commands/org-lifecycle.d.ts.map +1 -0
  61. package/dist/src/commands/org-lifecycle.js +298 -0
  62. package/dist/src/commands/org-lifecycle.js.map +1 -0
  63. package/dist/src/commands/org-manage.d.ts +7 -0
  64. package/dist/src/commands/org-manage.d.ts.map +1 -0
  65. package/dist/src/commands/org-manage.js +357 -0
  66. package/dist/src/commands/org-manage.js.map +1 -0
  67. package/dist/src/commands/org-memory-command.d.ts +3 -0
  68. package/dist/src/commands/org-memory-command.d.ts.map +1 -0
  69. package/dist/src/commands/org-memory-command.js +178 -0
  70. package/dist/src/commands/org-memory-command.js.map +1 -0
  71. package/dist/src/commands/org-observe-approvals.d.ts +8 -0
  72. package/dist/src/commands/org-observe-approvals.d.ts.map +1 -0
  73. package/dist/src/commands/org-observe-approvals.js +211 -0
  74. package/dist/src/commands/org-observe-approvals.js.map +1 -0
  75. package/dist/src/commands/org-observe-checkpoint.d.ts +26 -0
  76. package/dist/src/commands/org-observe-checkpoint.d.ts.map +1 -0
  77. package/dist/src/commands/org-observe-checkpoint.js +180 -0
  78. package/dist/src/commands/org-observe-checkpoint.js.map +1 -0
  79. package/dist/src/commands/org-observe-config.d.ts +8 -0
  80. package/dist/src/commands/org-observe-config.d.ts.map +1 -0
  81. package/dist/src/commands/org-observe-config.js +160 -0
  82. package/dist/src/commands/org-observe-config.js.map +1 -0
  83. package/dist/src/commands/org-observe-gates.d.ts +4 -0
  84. package/dist/src/commands/org-observe-gates.d.ts.map +1 -0
  85. package/dist/src/commands/org-observe-gates.js +182 -0
  86. package/dist/src/commands/org-observe-gates.js.map +1 -0
  87. package/dist/src/commands/org-observe-inbox.d.ts +18 -0
  88. package/dist/src/commands/org-observe-inbox.d.ts.map +1 -0
  89. package/dist/src/commands/org-observe-inbox.js +154 -0
  90. package/dist/src/commands/org-observe-inbox.js.map +1 -0
  91. package/dist/src/commands/org-observe-logs.d.ts +31 -0
  92. package/dist/src/commands/org-observe-logs.d.ts.map +1 -0
  93. package/dist/src/commands/org-observe-logs.js +272 -0
  94. package/dist/src/commands/org-observe-logs.js.map +1 -0
  95. package/dist/src/commands/org-observe-questions.d.ts +8 -0
  96. package/dist/src/commands/org-observe-questions.d.ts.map +1 -0
  97. package/dist/src/commands/org-observe-questions.js +201 -0
  98. package/dist/src/commands/org-observe-questions.js.map +1 -0
  99. package/dist/src/commands/org-observe-report.d.ts +8 -0
  100. package/dist/src/commands/org-observe-report.d.ts.map +1 -0
  101. package/dist/src/commands/org-observe-report.js +366 -0
  102. package/dist/src/commands/org-observe-report.js.map +1 -0
  103. package/dist/src/commands/org-observe-shared.d.ts +20 -0
  104. package/dist/src/commands/org-observe-shared.d.ts.map +1 -0
  105. package/dist/src/commands/org-observe-shared.js +55 -0
  106. package/dist/src/commands/org-observe-shared.js.map +1 -0
  107. package/dist/src/commands/org-observe.d.ts +9 -101
  108. package/dist/src/commands/org-observe.d.ts.map +1 -1
  109. package/dist/src/commands/org-observe.js +12 -1675
  110. package/dist/src/commands/org-observe.js.map +1 -1
  111. package/dist/src/commands/org-poll.d.ts +57 -0
  112. package/dist/src/commands/org-poll.d.ts.map +1 -0
  113. package/dist/src/commands/org-poll.js +194 -0
  114. package/dist/src/commands/org-poll.js.map +1 -0
  115. package/dist/src/commands/org-run.d.ts +3 -0
  116. package/dist/src/commands/org-run.d.ts.map +1 -0
  117. package/dist/src/commands/org-run.js +449 -0
  118. package/dist/src/commands/org-run.js.map +1 -0
  119. package/dist/src/commands/org-serve.d.ts +19 -0
  120. package/dist/src/commands/org-serve.d.ts.map +1 -0
  121. package/dist/src/commands/org-serve.js +395 -0
  122. package/dist/src/commands/org-serve.js.map +1 -0
  123. package/dist/src/commands/org-subcommands-config.d.ts +8 -0
  124. package/dist/src/commands/org-subcommands-config.d.ts.map +1 -0
  125. package/dist/src/commands/org-subcommands-config.js +93 -0
  126. package/dist/src/commands/org-subcommands-config.js.map +1 -0
  127. package/dist/src/commands/org-subcommands-hil.d.ts +11 -0
  128. package/dist/src/commands/org-subcommands-hil.d.ts.map +1 -0
  129. package/dist/src/commands/org-subcommands-hil.js +216 -0
  130. package/dist/src/commands/org-subcommands-hil.js.map +1 -0
  131. package/dist/src/commands/org-subcommands-observe.d.ts +12 -0
  132. package/dist/src/commands/org-subcommands-observe.d.ts.map +1 -0
  133. package/dist/src/commands/org-subcommands-observe.js +249 -0
  134. package/dist/src/commands/org-subcommands-observe.js.map +1 -0
  135. package/dist/src/commands/org-subcommands-runtime.d.ts +12 -0
  136. package/dist/src/commands/org-subcommands-runtime.d.ts.map +1 -0
  137. package/dist/src/commands/org-subcommands-runtime.js +163 -0
  138. package/dist/src/commands/org-subcommands-runtime.js.map +1 -0
  139. package/dist/src/commands/org.d.ts +3 -151
  140. package/dist/src/commands/org.d.ts.map +1 -1
  141. package/dist/src/commands/org.js +43 -2735
  142. package/dist/src/commands/org.js.map +1 -1
  143. package/dist/src/index.js +2 -2
  144. package/dist/src/index.js.map +1 -1
  145. package/dist/src/init/never-commit.d.ts +3 -3
  146. package/dist/src/init/types.d.ts +1 -1
  147. package/dist/src/init/types.js +1 -1
  148. package/dist/src/knowledge/document-store.js +1 -1
  149. package/dist/src/knowledge/document-store.js.map +1 -1
  150. package/dist/src/mcp-tools/hooks-edit-command.d.ts +10 -0
  151. package/dist/src/mcp-tools/hooks-edit-command.d.ts.map +1 -0
  152. package/dist/src/mcp-tools/hooks-edit-command.js +247 -0
  153. package/dist/src/mcp-tools/hooks-edit-command.js.map +1 -0
  154. package/dist/src/mcp-tools/hooks-learning.d.ts +9 -0
  155. package/dist/src/mcp-tools/hooks-learning.d.ts.map +1 -0
  156. package/dist/src/mcp-tools/hooks-learning.js +408 -0
  157. package/dist/src/mcp-tools/hooks-learning.js.map +1 -0
  158. package/dist/src/mcp-tools/hooks-metrics-list.d.ts +8 -0
  159. package/dist/src/mcp-tools/hooks-metrics-list.d.ts.map +1 -0
  160. package/dist/src/mcp-tools/hooks-metrics-list.js +205 -0
  161. package/dist/src/mcp-tools/hooks-metrics-list.js.map +1 -0
  162. package/dist/src/mcp-tools/hooks-route.d.ts +12 -0
  163. package/dist/src/mcp-tools/hooks-route.d.ts.map +1 -0
  164. package/dist/src/mcp-tools/hooks-route.js +251 -0
  165. package/dist/src/mcp-tools/hooks-route.js.map +1 -0
  166. package/dist/src/mcp-tools/hooks-routing.d.ts +6 -27
  167. package/dist/src/mcp-tools/hooks-routing.d.ts.map +1 -1
  168. package/dist/src/mcp-tools/hooks-routing.js +6 -1727
  169. package/dist/src/mcp-tools/hooks-routing.js.map +1 -1
  170. package/dist/src/mcp-tools/hooks-session.d.ts +9 -0
  171. package/dist/src/mcp-tools/hooks-session.d.ts.map +1 -0
  172. package/dist/src/mcp-tools/hooks-session.js +243 -0
  173. package/dist/src/mcp-tools/hooks-session.js.map +1 -0
  174. package/dist/src/mcp-tools/hooks-task.d.ts +17 -0
  175. package/dist/src/mcp-tools/hooks-task.d.ts.map +1 -0
  176. package/dist/src/mcp-tools/hooks-task.js +427 -0
  177. package/dist/src/mcp-tools/hooks-task.js.map +1 -0
  178. package/dist/src/mcp-tools/hooks-tools.d.ts +2 -1
  179. package/dist/src/mcp-tools/hooks-tools.d.ts.map +1 -1
  180. package/dist/src/mcp-tools/hooks-tools.js +2 -1
  181. package/dist/src/mcp-tools/hooks-tools.js.map +1 -1
  182. package/dist/src/mcp-tools/memory-tools.js +1 -1
  183. package/dist/src/mcp-tools/memory-tools.js.map +1 -1
  184. package/dist/src/memory/bm25-index.d.ts +2 -2
  185. package/dist/src/memory/bm25-index.js +2 -2
  186. package/dist/src/memory/embedding-operations.js +2 -2
  187. package/dist/src/memory/embedding-operations.js.map +1 -1
  188. package/dist/src/memory/entity-name-key.d.ts +1 -1
  189. package/dist/src/memory/entity-name-key.js +1 -1
  190. package/dist/src/memory/hnsw-operations.d.ts +1 -1
  191. package/dist/src/memory/hnsw-operations.js +1 -1
  192. package/dist/src/memory/memory-bridge-backend.d.ts +43 -0
  193. package/dist/src/memory/memory-bridge-backend.d.ts.map +1 -0
  194. package/dist/src/memory/memory-bridge-backend.js +363 -0
  195. package/dist/src/memory/memory-bridge-backend.js.map +1 -0
  196. package/dist/src/memory/memory-bridge-core.d.ts +42 -0
  197. package/dist/src/memory/memory-bridge-core.d.ts.map +1 -0
  198. package/dist/src/memory/memory-bridge-core.js +126 -0
  199. package/dist/src/memory/memory-bridge-core.js.map +1 -0
  200. package/dist/src/memory/memory-bridge-entries.d.ts +131 -0
  201. package/dist/src/memory/memory-bridge-entries.d.ts.map +1 -0
  202. package/dist/src/memory/memory-bridge-entries.js +227 -0
  203. package/dist/src/memory/memory-bridge-entries.js.map +1 -0
  204. package/dist/src/memory/memory-bridge-feedback.d.ts +60 -0
  205. package/dist/src/memory/memory-bridge-feedback.d.ts.map +1 -0
  206. package/dist/src/memory/memory-bridge-feedback.js +118 -0
  207. package/dist/src/memory/memory-bridge-feedback.js.map +1 -0
  208. package/dist/src/memory/memory-bridge-paths.d.ts +123 -0
  209. package/dist/src/memory/memory-bridge-paths.d.ts.map +1 -0
  210. package/dist/src/memory/memory-bridge-paths.js +335 -0
  211. package/dist/src/memory/memory-bridge-paths.js.map +1 -0
  212. package/dist/src/memory/memory-bridge-search.d.ts +48 -0
  213. package/dist/src/memory/memory-bridge-search.d.ts.map +1 -0
  214. package/dist/src/memory/memory-bridge-search.js +383 -0
  215. package/dist/src/memory/memory-bridge-search.js.map +1 -0
  216. package/dist/src/memory/memory-bridge-sessions.d.ts +38 -0
  217. package/dist/src/memory/memory-bridge-sessions.d.ts.map +1 -0
  218. package/dist/src/memory/memory-bridge-sessions.js +109 -0
  219. package/dist/src/memory/memory-bridge-sessions.js.map +1 -0
  220. package/dist/src/memory/memory-bridge-store.d.ts +58 -0
  221. package/dist/src/memory/memory-bridge-store.d.ts.map +1 -0
  222. package/dist/src/memory/memory-bridge-store.js +201 -0
  223. package/dist/src/memory/memory-bridge-store.js.map +1 -0
  224. package/dist/src/memory/memory-bridge.d.ts +10 -438
  225. package/dist/src/memory/memory-bridge.d.ts.map +1 -1
  226. package/dist/src/memory/memory-bridge.js +14 -1787
  227. package/dist/src/memory/memory-bridge.js.map +1 -1
  228. package/dist/src/memory/memory-kg-claims.d.ts +52 -0
  229. package/dist/src/memory/memory-kg-claims.d.ts.map +1 -0
  230. package/dist/src/memory/memory-kg-claims.js +99 -0
  231. package/dist/src/memory/memory-kg-claims.js.map +1 -0
  232. package/dist/src/memory/memory-kg-index.d.ts +86 -0
  233. package/dist/src/memory/memory-kg-index.d.ts.map +1 -0
  234. package/dist/src/memory/memory-kg-index.js +256 -0
  235. package/dist/src/memory/memory-kg-index.js.map +1 -0
  236. package/dist/src/memory/memory-kg-ingest.d.ts +44 -0
  237. package/dist/src/memory/memory-kg-ingest.d.ts.map +1 -0
  238. package/dist/src/memory/memory-kg-ingest.js +361 -0
  239. package/dist/src/memory/memory-kg-ingest.js.map +1 -0
  240. package/dist/src/memory/memory-kg-model.d.ts +168 -0
  241. package/dist/src/memory/memory-kg-model.d.ts.map +1 -0
  242. package/dist/src/memory/memory-kg-model.js +158 -0
  243. package/dist/src/memory/memory-kg-model.js.map +1 -0
  244. package/dist/src/memory/memory-kg-names.d.ts +64 -0
  245. package/dist/src/memory/memory-kg-names.d.ts.map +1 -0
  246. package/dist/src/memory/memory-kg-names.js +187 -0
  247. package/dist/src/memory/memory-kg-names.js.map +1 -0
  248. package/dist/src/memory/memory-kg-promote.d.ts +79 -0
  249. package/dist/src/memory/memory-kg-promote.d.ts.map +1 -0
  250. package/dist/src/memory/memory-kg-promote.js +248 -0
  251. package/dist/src/memory/memory-kg-promote.js.map +1 -0
  252. package/dist/src/memory/memory-kg-rebuild.d.ts +77 -0
  253. package/dist/src/memory/memory-kg-rebuild.d.ts.map +1 -0
  254. package/dist/src/memory/memory-kg-rebuild.js +299 -0
  255. package/dist/src/memory/memory-kg-rebuild.js.map +1 -0
  256. package/dist/src/memory/memory-kg-rollback.d.ts +47 -0
  257. package/dist/src/memory/memory-kg-rollback.d.ts.map +1 -0
  258. package/dist/src/memory/memory-kg-rollback.js +193 -0
  259. package/dist/src/memory/memory-kg-rollback.js.map +1 -0
  260. package/dist/src/memory/memory-kg-rules.d.ts +64 -0
  261. package/dist/src/memory/memory-kg-rules.d.ts.map +1 -0
  262. package/dist/src/memory/memory-kg-rules.js +251 -0
  263. package/dist/src/memory/memory-kg-rules.js.map +1 -0
  264. package/dist/src/memory/memory-kg-scan.d.ts +118 -0
  265. package/dist/src/memory/memory-kg-scan.d.ts.map +1 -0
  266. package/dist/src/memory/memory-kg-scan.js +209 -0
  267. package/dist/src/memory/memory-kg-scan.js.map +1 -0
  268. package/dist/src/memory/memory-kg-search.d.ts +80 -0
  269. package/dist/src/memory/memory-kg-search.d.ts.map +1 -0
  270. package/dist/src/memory/memory-kg-search.js +239 -0
  271. package/dist/src/memory/memory-kg-search.js.map +1 -0
  272. package/dist/src/memory/memory-kg.d.ts +19 -547
  273. package/dist/src/memory/memory-kg.d.ts.map +1 -1
  274. package/dist/src/memory/memory-kg.js +10 -2389
  275. package/dist/src/memory/memory-kg.js.map +1 -1
  276. package/dist/src/orgrt/daemon-types.d.ts +196 -0
  277. package/dist/src/orgrt/daemon-types.d.ts.map +1 -0
  278. package/dist/src/orgrt/daemon-types.js +38 -0
  279. package/dist/src/orgrt/daemon-types.js.map +1 -0
  280. package/dist/src/orgrt/daemon.d.ts +70 -300
  281. package/dist/src/orgrt/daemon.d.ts.map +1 -1
  282. package/dist/src/orgrt/daemon.js +41 -2536
  283. package/dist/src/orgrt/daemon.js.map +1 -1
  284. package/dist/src/orgrt/idle-watchdog.d.ts +39 -0
  285. package/dist/src/orgrt/idle-watchdog.d.ts.map +1 -0
  286. package/dist/src/orgrt/idle-watchdog.js +289 -0
  287. package/dist/src/orgrt/idle-watchdog.js.map +1 -0
  288. package/dist/src/orgrt/org-reload.d.ts +7 -0
  289. package/dist/src/orgrt/org-reload.d.ts.map +1 -0
  290. package/dist/src/orgrt/org-reload.js +111 -0
  291. package/dist/src/orgrt/org-reload.js.map +1 -0
  292. package/dist/src/orgrt/org-start-steps.d.ts +21 -0
  293. package/dist/src/orgrt/org-start-steps.d.ts.map +1 -0
  294. package/dist/src/orgrt/org-start-steps.js +305 -0
  295. package/dist/src/orgrt/org-start-steps.js.map +1 -0
  296. package/dist/src/orgrt/org-start.d.ts +7 -0
  297. package/dist/src/orgrt/org-start.d.ts.map +1 -0
  298. package/dist/src/orgrt/org-start.js +435 -0
  299. package/dist/src/orgrt/org-start.js.map +1 -0
  300. package/dist/src/orgrt/org-state-file.d.ts +8 -0
  301. package/dist/src/orgrt/org-state-file.d.ts.map +1 -0
  302. package/dist/src/orgrt/org-state-file.js +116 -0
  303. package/dist/src/orgrt/org-state-file.js.map +1 -0
  304. package/dist/src/orgrt/org-stop.d.ts +6 -0
  305. package/dist/src/orgrt/org-stop.d.ts.map +1 -0
  306. package/dist/src/orgrt/org-stop.js +332 -0
  307. package/dist/src/orgrt/org-stop.js.map +1 -0
  308. package/dist/src/orgrt/org-tools.d.ts +11 -0
  309. package/dist/src/orgrt/org-tools.d.ts.map +1 -0
  310. package/dist/src/orgrt/org-tools.js +305 -0
  311. package/dist/src/orgrt/org-tools.js.map +1 -0
  312. package/dist/src/orgrt/role-incarnation.d.ts +18 -0
  313. package/dist/src/orgrt/role-incarnation.d.ts.map +1 -0
  314. package/dist/src/orgrt/role-incarnation.js +374 -0
  315. package/dist/src/orgrt/role-incarnation.js.map +1 -0
  316. package/dist/src/orgrt/role-respawn.d.ts +7 -0
  317. package/dist/src/orgrt/role-respawn.d.ts.map +1 -0
  318. package/dist/src/orgrt/role-respawn.js +318 -0
  319. package/dist/src/orgrt/role-respawn.js.map +1 -0
  320. package/dist/src/orgrt/role-session-opts.d.ts +389 -0
  321. package/dist/src/orgrt/role-session-opts.d.ts.map +1 -0
  322. package/dist/src/orgrt/role-session-opts.js +289 -0
  323. package/dist/src/orgrt/role-session-opts.js.map +1 -0
  324. package/dist/src/orgrt/runner-resolve.d.ts +43 -0
  325. package/dist/src/orgrt/runner-resolve.d.ts.map +1 -0
  326. package/dist/src/orgrt/runner-resolve.js +77 -0
  327. package/dist/src/orgrt/runner-resolve.js.map +1 -0
  328. package/dist/src/orgrt/session-gate.d.ts +34 -0
  329. package/dist/src/orgrt/session-gate.d.ts.map +1 -0
  330. package/dist/src/orgrt/session-gate.js +74 -0
  331. package/dist/src/orgrt/session-gate.js.map +1 -0
  332. package/dist/src/orgrt/session-prompt.d.ts +31 -0
  333. package/dist/src/orgrt/session-prompt.d.ts.map +1 -0
  334. package/dist/src/orgrt/session-prompt.js +115 -0
  335. package/dist/src/orgrt/session-prompt.js.map +1 -0
  336. package/dist/src/orgrt/session-run.d.ts +18 -0
  337. package/dist/src/orgrt/session-run.d.ts.map +1 -0
  338. package/dist/src/orgrt/session-run.js +429 -0
  339. package/dist/src/orgrt/session-run.js.map +1 -0
  340. package/dist/src/orgrt/session-stream.d.ts +21 -0
  341. package/dist/src/orgrt/session-stream.d.ts.map +1 -0
  342. package/dist/src/orgrt/session-stream.js +173 -0
  343. package/dist/src/orgrt/session-stream.js.map +1 -0
  344. package/dist/src/orgrt/session-types.d.ts +219 -0
  345. package/dist/src/orgrt/session-types.d.ts.map +1 -0
  346. package/dist/src/orgrt/session-types.js +2 -0
  347. package/dist/src/orgrt/session-types.js.map +1 -0
  348. package/dist/src/orgrt/session-usage.d.ts +29 -0
  349. package/dist/src/orgrt/session-usage.d.ts.map +1 -0
  350. package/dist/src/orgrt/session-usage.js +64 -0
  351. package/dist/src/orgrt/session-usage.js.map +1 -0
  352. package/dist/src/orgrt/session.d.ts +5 -281
  353. package/dist/src/orgrt/session.d.ts.map +1 -1
  354. package/dist/src/orgrt/session.js +8 -1117
  355. package/dist/src/orgrt/session.js.map +1 -1
  356. package/dist/src/ui/org-hil.mjs +1 -1
  357. package/dist/src/ui/routes-org-agents.mjs +318 -0
  358. package/dist/src/ui/routes-org-approvals.mjs +133 -0
  359. package/dist/src/ui/routes-org-config.mjs +459 -0
  360. package/dist/src/ui/routes-org-control.mjs +300 -0
  361. package/dist/src/ui/routes-org-files.mjs +172 -0
  362. package/dist/src/ui/routes-org-helpers.mjs +84 -0
  363. package/dist/src/ui/routes-org-knowledge.mjs +262 -0
  364. package/dist/src/ui/routes-org-lifecycle.mjs +224 -0
  365. package/dist/src/ui/routes-org-live.mjs +278 -0
  366. package/dist/src/ui/routes-org-mastermind.mjs +346 -0
  367. package/dist/src/ui/routes-org-planning.mjs +398 -0
  368. package/dist/src/ui/routes-org-runs.mjs +430 -0
  369. package/dist/src/ui/routes-org-status.mjs +342 -0
  370. package/dist/src/ui/routes-org-workflows.mjs +212 -0
  371. package/dist/src/ui/routes-org.mjs +26 -3847
  372. package/dist/src/ui/server.mjs +1 -1
  373. package/dist/src/utils/native-error.d.ts +1 -1
  374. package/dist/src/utils/native-error.js +1 -1
  375. package/dist/src/utils/paths.d.ts +2 -1
  376. package/dist/src/utils/paths.d.ts.map +1 -1
  377. package/dist/src/utils/paths.js +2 -1
  378. package/dist/src/utils/paths.js.map +1 -1
  379. package/dist/tsconfig.tsbuildinfo +1 -1
  380. package/org-skills/adversarial-reviewer/SKILL.md +1 -1
  381. package/org-skills/board-deck-builder/SKILL.md +1 -1
  382. package/org-skills/code-reviewer/SKILL.md +1 -1
  383. package/org-skills/debugging-wizard/SKILL.md +1 -1
  384. package/org-skills/scientific-thinking-literature-review/SKILL.md +1 -1
  385. package/org-skills/scientific-thinking-scholar-evaluation/SKILL.md +1 -1
  386. package/package.json +5 -5
@@ -0,0 +1,115 @@
1
+ // packages/@monomind/cli/src/orgrt/session-prompt.ts
2
+ // Extracted from session.ts — a role session's system prompt and model.
3
+ import { readFileSync } from 'node:fs';
4
+ import { endpointBriefingLines } from './endpoint-roles.js';
5
+ import { expandRolePromptVars, promptVarsFor } from './prompt-vars.js';
6
+ import { roleSkillGuidance } from './skill-library.js';
7
+ import { DEFAULT_CLAUDE_MODEL, VERCEL_PROVIDERS } from './vercel-providers.js';
8
+ /**
9
+ * Resolves the extra system-prompt block for a role: its pinned library
10
+ * skills and on-demand skill catalog (skill-library.ts) plus the role's own
11
+ * `instructions_file`, if any — all optional and independent. A missing or
12
+ * unreadable `instructions_file` is skipped (not an error): a role shouldn't
13
+ * fail to start a session over a stale/typo'd custom-file path.
14
+ */
15
+ export function resolveRoleExtraGuidance(role, projectRoot) {
16
+ const parts = [];
17
+ const skills = roleSkillGuidance(role, projectRoot);
18
+ if (skills)
19
+ parts.push(skills);
20
+ if (role.instructions_file) {
21
+ try {
22
+ const custom = readFileSync(role.instructions_file, 'utf-8').trim();
23
+ if (custom)
24
+ parts.push(custom);
25
+ }
26
+ catch {
27
+ // missing/unreadable custom instructions file — skip, don't crash session start
28
+ }
29
+ }
30
+ return parts.length ? parts.join('\n\n') : undefined;
31
+ }
32
+ /** Resolve the model string for a role: explicit adapter_config.model wins;
33
+ * otherwise fall back to the vendor/runtime default.
34
+ *
35
+ * Vendor defaults are read straight off VERCEL_PROVIDERS, which already
36
+ * carries a defaultModel per vendor. A second hand-kept table lived here and
37
+ * restated all sixteen of them — two lists of per-vendor defaults that would
38
+ * eventually disagree, which is precisely the drift #252 was. An empty
39
+ * registry default (openai-compatible, which serves arbitrary endpoints) is
40
+ * falsy and so falls through to the runtime switch, as it always did. */
41
+ export function resolveModel(role, runtime, vendor) {
42
+ const explicit = role.adapter_config?.model;
43
+ if (explicit)
44
+ return explicit;
45
+ const vendorDefault = vendor ? VERCEL_PROVIDERS[vendor]?.defaultModel : undefined;
46
+ if (vendorDefault)
47
+ return vendorDefault;
48
+ switch (runtime) {
49
+ case 'claude':
50
+ return DEFAULT_CLAUDE_MODEL;
51
+ // Kimi Code CLI namespaces model ids as <provider>/<model> (its own
52
+ // default_model is "kimi-code/kimi-for-coding-highspeed") — a bare "k3"
53
+ // 404s with "Model \"k3\" is not configured in config.toml".
54
+ case 'kimicode':
55
+ return 'kimi-code/k3';
56
+ case 'opencode':
57
+ return 'glm-5.2'; // opencode is typically paired with a vendor; this is the bare-runtime fallback
58
+ case 'codex':
59
+ return 'gpt-5.6-terra';
60
+ case 'antigravity':
61
+ return 'gemini-3.6-flash-high';
62
+ case 'vercel':
63
+ return 'gpt-5.5';
64
+ default:
65
+ return DEFAULT_CLAUDE_MODEL;
66
+ }
67
+ }
68
+ /** Role briefing given to each agent session (SDK systemPrompt option).
69
+ * `extraGuidance` carries pre-resolved text the caller already loaded from
70
+ * disk — the role's library skills and/or its own `instructions_file`,
71
+ * if either resolved to something. Kept as a plain string param (not read here)
72
+ * so this function stays synchronous/pure and trivially testable. */
73
+ export function buildRolePrompt(role, def, roster, glossary, extraGuidance,
74
+ /** M2: one line per endpoint role (endpointBriefingLines) — boss only. */
75
+ endpointBriefing) {
76
+ const isCoordinator = role.reports_to == null;
77
+ return [
78
+ `You are agent "${role.id}" (${role.title || role.type}) in the org "${def.name}".`,
79
+ `Org goal: ${def.goal}`,
80
+ isCoordinator ? `You are the coordinator of this org.` : `You report to "${role.reports_to}".`,
81
+ role.responsibilities?.length
82
+ ? `Your responsibilities:\n- ${role.responsibilities.join('\n- ')}`
83
+ : '',
84
+ extraGuidance || '',
85
+ `## Communication protocol`,
86
+ `The ONLY way to communicate with other agents is the org_send tool.`,
87
+ `Roster: ${roster.join(', ')}. Address another org's agent as "<org-name>:<role-id>".`,
88
+ endpointBriefing?.length ? `Automations in this org:\n${endpointBriefing.join('\n')}` : '',
89
+ `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.`,
90
+ `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.`,
91
+ `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.`,
92
+ `The work graph is dynamic: call org_task_split when scope expands, org_task_merge when parallel branches converge early, or org_task_cancel when evidence makes a planned task moot. Use org_plan_graph to propose a full work graph in one call when you know the plan upfront. If a task genuinely can't proceed until a specific real-world time — a scheduled long-running process, a deadline someone gave you, anything with a known future unblock time — call org_task_block instead of leaving it idle: it stops the idle watchdog from nudging you about it and automatically resumes the task when the time arrives, instead of you repeatedly re-confirming "still waiting" every idle cycle.`,
93
+ `Before starting substantial work, call org_recall to check what previous runs already learned or delivered - do not redo finished work.`,
94
+ `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.`,
95
+ `When you receive a message, act on it, then org_send your result to the requester.`,
96
+ isCoordinator
97
+ ? `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.`
98
+ : `When your current work is complete and no reply is needed, end your turn without further tool calls.`,
99
+ isCoordinator && glossary?.length
100
+ ? `Known entities (reuse these EXACT names in org_learn instead of near-duplicates): ${glossary.slice(0, 40).join(', ')}`
101
+ : '',
102
+ ]
103
+ .filter(Boolean)
104
+ .join('\n\n');
105
+ }
106
+ /** The system prompt one session of this role is built with. */
107
+ export function rolePromptFor(opts) {
108
+ return buildRolePrompt(expandRolePromptVars(opts.role, promptVarsFor(opts.orgRoot ?? opts.cwd)), (opts.def ?? { name: opts.org, goal: '' }), opts.def?.roles.map((r) => r.id) ?? [opts.role.id], opts.glossary,
109
+ // D7: the loadout's text follows the role's own guidance. With no
110
+ // loadout this is exactly resolveRoleExtraGuidance(role), as before.
111
+ [resolveRoleExtraGuidance(opts.role, opts.orgRoot ?? opts.cwd), opts.loadout?.guidance]
112
+ .filter(Boolean)
113
+ .join('\n\n') || undefined, opts.onComplete ? endpointBriefingLines(opts.def) : undefined);
114
+ }
115
+ //# sourceMappingURL=session-prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-prompt.js","sourceRoot":"","sources":["../../../src/orgrt/session-prompt.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { CumulativeMeter } from './cumulative-meter.js';
2
+ import type { StreamOptions } from './mailbox.js';
3
+ import type { TokenUsage } from './policy.js';
4
+ import { type FaultRestarts } from './sandbox-fault.js';
5
+ import type { SessionOpts } from './session-types.js';
6
+ /** One bounded SDK session for a role; resolves with the SDK's session_id (for
7
+ * resuming on restart) and whether it ended by hitting the turn limit (so the
8
+ * caller can push a continuation) when the stream ends (mailbox closed or
9
+ * maxTurns reached). */
10
+ export declare function runOneSession(opts: SessionOpts, resume?: string, costTotals?: CumulativeMeter<{
11
+ usd: number;
12
+ }>, progress?: {
13
+ replied: boolean;
14
+ }, tokenTotals?: CumulativeMeter<TokenUsage>, streamOpts?: StreamOptions, faultWatch?: ReturnType<FaultRestarts['watch']>, cancelled?: AbortSignal): Promise<{
15
+ sessionId?: string;
16
+ hitTurnLimit?: boolean;
17
+ }>;
18
+ //# sourceMappingURL=session-run.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-run.d.ts","sourceRoot":"","sources":["../../../src/orgrt/session-run.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAI9C,OAAO,EAAE,KAAK,aAAa,EAAqB,MAAM,oBAAoB,CAAC;AAI3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAQtD;;;yBAGyB;AACzB,wBAAsB,aAAa,CACjC,IAAI,EAAE,WAAW,EACjB,MAAM,CAAC,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,eAAe,CAAC;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,EAC7C,QAAQ,CAAC,EAAE;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,EAC/B,WAAW,CAAC,EAAE,eAAe,CAAC,UAAU,CAAC,EACzC,UAAU,CAAC,EAAE,aAAa,EAC1B,UAAU,CAAC,EAAE,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,EAC/C,SAAS,CAAC,EAAE,WAAW,GACtB,OAAO,CAAC;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAqZzD"}
@@ -0,0 +1,429 @@
1
+ // packages/@monomind/cli/src/orgrt/session-run.ts
2
+ // Extracted from session.ts — one bounded runner session for a role (runOneSession).
3
+ import { homedir } from 'node:os';
4
+ import { ClaudeAgentRunner, defaultClaudeRunner } from './agent-runner.js';
5
+ import { ensureAuthorityDirs } from './authority-mask.js';
6
+ import { resolveRoleCostTier } from './cost-tier.js';
7
+ import { buildOrgTools } from './org-tools.js';
8
+ import { summarizeToolOutput } from './policy.js';
9
+ import { resolveRoleProvider } from './provider.js';
10
+ import { resolveRoleGitEnforcement, roleAuthorityMask } from './role-sandbox.js';
11
+ import { ProcessFaultError } from './sandbox-fault.js';
12
+ import { sandboxStubPaths, sandboxStubs } from './sandbox-stubs.js';
13
+ import { resolveModel } from './session-prompt.js';
14
+ import { openSessionStream, sessionRunArgs } from './session-stream.js';
15
+ import { addTo, emitUsage, resultBreakdown, totalTokens, turnBreakdown } from './session-usage.js';
16
+ import { StateDetector } from './state-detector.js';
17
+ import { linkAbort } from './task-cancel.js';
18
+ const CONTEXT_LIMIT_RE = /context.window.limit|context.length.exceeded|maximum.context/i;
19
+ /** One bounded SDK session for a role; resolves with the SDK's session_id (for
20
+ * resuming on restart) and whether it ended by hitting the turn limit (so the
21
+ * caller can push a continuation) when the stream ends (mailbox closed or
22
+ * maxTurns reached). */
23
+ export async function runOneSession(opts, resume, costTotals, progress, tokenTotals, streamOpts, faultWatch, cancelled) {
24
+ const { org, role, bus, policy, mailbox, cwd } = opts;
25
+ // Each call starts a new runner process, whose cumulative totals may or may
26
+ // not continue the previous one's (cumulative-meter.ts).
27
+ costTotals?.newProcess();
28
+ tokenTotals?.newProcess();
29
+ // Read lastMessageId live from opts instead of capturing at session start
30
+ // This ensures chat responses link to the most recent message delivered
31
+ const getLastMessageId = () => (opts.lastMessageId ? opts.lastMessageId() : undefined);
32
+ // Resolve runner. Precedence: explicit runner > queryFn-wrapped > default.
33
+ // queryFn stays supported so daemon.ts / test-loop.ts need no changes.
34
+ const runner = opts.runner ?? (opts.queryFn ? new ClaudeAgentRunner(opts.queryFn) : defaultClaudeRunner);
35
+ const tools = buildOrgTools(opts);
36
+ // M1: provider tools are listed per session start, so a hot-reloaded
37
+ // tool_providers block takes effect at the role's next session.
38
+ const providerSet = opts.buildProviderTools ? await opts.buildProviderTools() : undefined;
39
+ if (providerSet)
40
+ tools.push(...providerSet.tools);
41
+ // Named-provider resolution (`adapter_config.provider`): explicit role
42
+ // provider wins, else the named entry from `monomind providers configure`.
43
+ // The named provider's default model fills in adapter_config.model when the
44
+ // role didn't pin one.
45
+ const prov = resolveRoleProvider(role, opts.orgRoot ?? opts.cwd);
46
+ // ADR-O001 D8: the role's cost tier, when the org declares one. Resolved
47
+ // here — the single choke point where a role's model is decided — so the
48
+ // documented precedence holds in exactly one place:
49
+ // explicit adapter_config.model > tier > named-provider default > runtime
50
+ // The tier's EFFORT is applied even when the model came from an explicit
51
+ // pin: which model to run and how hard to think are separate axes, and
52
+ // silently dropping the effort because a model was pinned would be the
53
+ // "silent downgrade" this decision exists to prevent.
54
+ // Throws (fails the session) rather than guessing when the tier has no
55
+ // entry for this role's provider — daemon.ts validates the whole roster
56
+ // up front so that is normally caught before any token is spent.
57
+ const tier = resolveRoleCostTier({
58
+ role,
59
+ def: opts.def,
60
+ vendor: role.provider?.vendor ?? prov.cfg?.vendor,
61
+ });
62
+ const model = role.adapter_config?.model ??
63
+ tier?.model ??
64
+ prov.defaultModel ??
65
+ resolveModel(role, role.runtime, role.provider?.vendor ?? prov.cfg?.vendor);
66
+ bus.emit({ type: 'status', from: role.id, msg: 'session starting' });
67
+ let sessionId = resume;
68
+ let hitTurnLimit = false;
69
+ let contextLimitFired = false;
70
+ // #budget-realtime: real tokens already accounted for the message CURRENTLY
71
+ // in flight, via the per-assistant-turn accounting below — reset to 0 each
72
+ // time a 'result' message ends one mailbox message and the next one starts.
73
+ // Exists purely so the 'result' branch never re-adds what this branch
74
+ // already added (see there for why it can't just always add).
75
+ let messageTurnTokens = { input: 0, output: 0, cacheRead: 0, cacheCreation: 0 };
76
+ // Abort hook for the runner (AgentRunArgs.signal): the silent-stream
77
+ // abort below used to call iterator.return() only, which queues behind a
78
+ // subprocess runner blocked in `for await (child.stdout)` — the child was
79
+ // never killed, so every supervisor retry stacked another live CLI.
80
+ //
81
+ // Per attempt, linked one way to the caller's externalAbort (#256): the
82
+ // silent-stream abort used to fire the daemon's slot controller itself,
83
+ // permanently. Every retry then started on an already-aborted signal (a
84
+ // runner honoring it kills its child at once) and the daemon's crash
85
+ // backoff, which races that controller to notice an org stop, resolved
86
+ // immediately - the role burned its retries and crashed. An org stop still
87
+ // aborts the attempt; the attempt's own abort stays its own.
88
+ const abort = new AbortController();
89
+ const external = opts.externalAbort?.signal;
90
+ const onExternalAbort = () => abort.abort(external?.reason);
91
+ if (external?.aborted)
92
+ onExternalAbort();
93
+ else
94
+ external?.addEventListener('abort', onExternalAbort, { once: true });
95
+ // org_task_cancel for this process's task: end it the same way (task-cancel.ts).
96
+ // Already aborted when it landed during the setup awaits above.
97
+ const unlinkCancelled = linkAbort(cancelled, abort);
98
+ try {
99
+ // #258: policy.git enforced where git runs, not only by Bash text
100
+ // classification — guard env for every runtime, OS sandbox + file-tool
101
+ // deny rules for Claude. Throws (session fails) when the role requires
102
+ // the sandbox and it can't start.
103
+ // Before the sandbox is built: it can only mask directories that exist.
104
+ ensureAuthorityDirs(homedir(), process.env);
105
+ const gitEnforcement = resolveRoleGitEnforcement({
106
+ org,
107
+ role,
108
+ cwd,
109
+ orgRoot: opts.orgRoot,
110
+ orgDir: opts.orgDir,
111
+ bus,
112
+ claudeRuntime: runner instanceof ClaudeAgentRunner,
113
+ runtime: role.runtime ?? opts.def?.runtime,
114
+ // The sandbox's mount-point stubs, created once and kept until the run
115
+ // ends, so no other role's process deletes one mid-bind (sandbox-stubs.ts).
116
+ // Held before the deny list is built, which keeps a denied cwd read-only
117
+ // when all of them are in place (sandbox-deny-write.ts).
118
+ holdStubs: (writableRoots) => {
119
+ const paths = sandboxStubPaths({ cwd, home: homedir(), writableRoots, env: process.env });
120
+ sandboxStubs.hold(`${org}:${opts.run ?? ''}`, paths);
121
+ return sandboxStubs.missing(paths);
122
+ },
123
+ });
124
+ // What this session really got, not what the config asked for (policy-git.ts).
125
+ policy.setOsSandboxed(!!gitEnforcement.claudeRestrictions?.sandbox);
126
+ const authorityMask = roleAuthorityMask({
127
+ bus,
128
+ roleId: role.id,
129
+ inSdkSandbox: !!gitEnforcement.claudeRestrictions?.sandbox,
130
+ // vercel runs in-process with no shell; its file tools go through the policy engine.
131
+ inProcess: (role.runtime ?? opts.def?.runtime) === 'vercel',
132
+ cwd,
133
+ orgRoot: opts.orgRoot,
134
+ });
135
+ const stream = runner.run(sessionRunArgs(opts, {
136
+ runner,
137
+ tools,
138
+ streamOpts,
139
+ gitEnforcement,
140
+ model,
141
+ tier,
142
+ prov,
143
+ resume,
144
+ authorityMask,
145
+ abort,
146
+ }));
147
+ const detector = new StateDetector();
148
+ const rest = await openSessionStream(opts, stream, abort);
149
+ for await (const m of rest) {
150
+ if (process.env.MONOMIND_DEBUG) {
151
+ console.error(`[orgrt:${org}/${role.id}] runner message type=${m.type} subtype=${String(m.subtype ?? '-')}`);
152
+ }
153
+ if (cancelled?.aborted)
154
+ throw cancelled.reason;
155
+ mailbox.observeTurn(m.type); // the prompt stream outlives a live turn (#331)
156
+ if (m.session_id) {
157
+ sessionId = m.session_id;
158
+ // P2-13: propagate the session ID back to the daemon so checkpoints
159
+ // can resume the SDK session after a crash/restart.
160
+ opts.onSessionId?.(sessionId);
161
+ }
162
+ const prevState = detector.current();
163
+ const textForDetect = m.type === 'assistant' ? m.text || '' : undefined;
164
+ const newState = detector.onMessage(m.type, m.subtype, textForDetect);
165
+ if (newState !== prevState) {
166
+ bus.emit({
167
+ type: 'status',
168
+ from: role.id,
169
+ reason: 'state-change',
170
+ msg: `${prevState} → ${newState}`,
171
+ data: { from: prevState, to: newState },
172
+ });
173
+ }
174
+ if (m.type === 'assistant') {
175
+ if (progress)
176
+ progress.replied = true;
177
+ const text = m.text || '';
178
+ if (text.trim()) {
179
+ opts.onOutput?.(text);
180
+ bus.emit({ type: 'chat', from: role.id, msg: text, parentId: getLastMessageId() });
181
+ if (opts.onContextLimit && !contextLimitFired && CONTEXT_LIMIT_RE.test(text)) {
182
+ contextLimitFired = true;
183
+ bus.emit({
184
+ type: 'audit',
185
+ from: role.id,
186
+ reason: 'boss-context-limit',
187
+ msg: 'coordinator context window exhausted — requesting whole-org restart with fresh sessions',
188
+ });
189
+ opts.onContextLimit();
190
+ }
191
+ }
192
+ // #budget-realtime (HIGH): the SDK's 'result' message arrives once per
193
+ // WHOLE mailbox message in streaming-input mode — with
194
+ // max_turns_per_message defaulting to 100,000, a single message can
195
+ // internally loop through hundreds/thousands of tool-use turns before
196
+ // that 'result' ever arrives, during which policy.used never moved and
197
+ // policy.decide() allowed every one of those turns' tool calls
198
+ // regardless of real spend (the overspend was already done by the time
199
+ // overBudget could ever trip). Each 'assistant' SDK message DOES carry
200
+ // that ONE model turn's real usage (agent-runner.ts reads it off
201
+ // BetaMessage.usage) — accumulate it as turns actually happen and
202
+ // enforce the budget immediately, so overBudget can close the mailbox
203
+ // DURING a runaway message instead of only once it finally completes.
204
+ // (USD budget can't get the same real-time treatment: the SDK only
205
+ // exposes cost as a cumulative total on 'result', not per-turn on
206
+ // 'assistant' — verified against this project's Claude Agent SDK
207
+ // .d.ts, which puts `usage`/token counts on BetaMessage but cost only
208
+ // on SDKResultSuccess.total_cost_usd/modelUsage. overBudgetUsd is
209
+ // still checked below, once per message, same as before this fix.)
210
+ //
211
+ // ADR-O001 D1: the sum must include BOTH cache fields. They are
212
+ // siblings of input_tokens in the Anthropic API, not subsets of it —
213
+ // `input_tokens` is the uncached remainder — and both are billable
214
+ // (~0.1x and ~1.25x input). Omitting them meant the better the cache
215
+ // worked the less the meter saw: on one measured run, 2,765M tokens
216
+ // billed against 8.1M recorded, with input_tokens at 0.0M.
217
+ const turn = turnBreakdown(m);
218
+ const turnTokens = totalTokens(turn);
219
+ if (turnTokens > 0) {
220
+ addTo(messageTurnTokens, turn);
221
+ policy.addTokenUsage(turn);
222
+ if (policy.overBudget) {
223
+ bus.emit({
224
+ type: 'status',
225
+ from: role.id,
226
+ reason: 'budget-exhausted',
227
+ msg: 'token budget exhausted - closing session',
228
+ });
229
+ mailbox.close('token-budget');
230
+ }
231
+ }
232
+ }
233
+ else if (m.type === 'tool_result') {
234
+ // #289: the tool call's outcome. Until this event existed, a Bash
235
+ // running a test suite looked identical on the bus whether the suite
236
+ // passed, failed, or the binary was missing — one 'allow' at the moment
237
+ // it started — so every consumer inferred success from the agent's own
238
+ // narration. `call_id` joins this back to that invocation event; the
239
+ // body is redacted and capped (policy.ts) so a megabyte of output, or a
240
+ // credential echoed by a command, never lands in bus.jsonl.
241
+ const body = summarizeToolOutput(m.text ?? '');
242
+ const data = {
243
+ ...(m.tool_use_id ? { call_id: m.tool_use_id } : {}),
244
+ ok: m.is_error !== true,
245
+ ...(typeof m.duration_ms === 'number' ? { duration_ms: m.duration_ms } : {}),
246
+ output: body.output,
247
+ ...(body.truncated ? { truncated: true } : {}),
248
+ output_chars: body.output_chars,
249
+ };
250
+ bus.emit({
251
+ type: 'tool_result',
252
+ from: role.id,
253
+ ...(m.tool ? { tool: m.tool } : {}),
254
+ data: data,
255
+ });
256
+ faultWatch?.observe(m, sessionId);
257
+ }
258
+ else if (m.type === 'result') {
259
+ // ADR-O001 D1: prefer the SDK's `modelUsage` over `usage`. The SDK
260
+ // documents `usage` as "MAIN AGENT LOOP ONLY — excludes Task
261
+ // subagent, sidechain, and auxiliary model calls ... Prefer
262
+ // modelUsage for token/cost accounting"; the measured run made 46
263
+ // subagent calls this counter never saw. modelUsage is CUMULATIVE per
264
+ // session (same lifecycle as total_cost_usd, per its own type doc),
265
+ // so it is converted to a delta here rather than added, exactly as
266
+ // cost is below. A runner that reports no modelUsage falls back to
267
+ // the per-turn `usage` fields, which keep their old semantics.
268
+ const resultTokens = resultBreakdown(m, tokenTotals, m.session_id ?? sessionId ?? '');
269
+ // Per the SDK's own type docs, a 'result' message's usage is that
270
+ // message's own (effectively last-turn) usage in streaming-input mode,
271
+ // NOT a cumulative total across every turn of the mailbox message —
272
+ // and that last turn was already counted above via its own 'assistant'
273
+ // message, specifically so overBudget could trip mid-message. Adding
274
+ // the result's own usage again unconditionally would double-count it.
275
+ // (A modelUsage-derived delta is per-session-cumulative, so the same
276
+ // subtraction is exactly right there too: it removes what the
277
+ // assistant turns of THIS message already contributed and leaves the
278
+ // subagent/auxiliary volume the main loop never reported.) Only make
279
+ // up the shortfall (never negative) so a turn whose usage somehow
280
+ // never reached the 'assistant' branch (e.g. a runner/test double that
281
+ // doesn't emit per-turn usage) still gets counted at least once.
282
+ const shortfall = {
283
+ input: Math.max(0, resultTokens.input - messageTurnTokens.input),
284
+ output: Math.max(0, resultTokens.output - messageTurnTokens.output),
285
+ cacheRead: Math.max(0, resultTokens.cacheRead - messageTurnTokens.cacheRead),
286
+ cacheCreation: Math.max(0, resultTokens.cacheCreation - messageTurnTokens.cacheCreation),
287
+ };
288
+ if (totalTokens(shortfall) > 0)
289
+ policy.addTokenUsage(shortfall);
290
+ // What this whole mailbox message actually added to the meter: the
291
+ // per-turn accounting above plus whatever the result topped up. This
292
+ // is what the 'usage' event reports, so a consumer summing events
293
+ // lands on the same number as policy.usage.
294
+ const messageTokens = {
295
+ input: messageTurnTokens.input + shortfall.input,
296
+ output: messageTurnTokens.output + shortfall.output,
297
+ cacheRead: messageTurnTokens.cacheRead + shortfall.cacheRead,
298
+ cacheCreation: messageTurnTokens.cacheCreation + shortfall.cacheCreation,
299
+ };
300
+ messageTurnTokens = { input: 0, output: 0, cacheRead: 0, cacheCreation: 0 };
301
+ // Convert the SDK's cumulative total_cost_usd into a per-result
302
+ // delta before emitting - downstream sums usage events. A new session
303
+ // id counts in full; a same-process dip (rounding, a provider-side
304
+ // correction) floors at 0 rather than re-adding the cumulative cost,
305
+ // which feeds USD budget enforcement (ORG-7). A resume in a new
306
+ // process is judged by the meter (cumulative-meter.ts).
307
+ let costDelta = m.cost_usd;
308
+ if (costTotals && typeof m.cost_usd === 'number' && Number.isFinite(m.cost_usd)) {
309
+ const sid = m.session_id ?? sessionId ?? '';
310
+ costDelta = costTotals.delta(sid, { usd: m.cost_usd }).usd;
311
+ }
312
+ // ORG-7: accumulate real USD cost so policy.overBudgetUsd (role.budget_usd) is enforceable.
313
+ if (typeof costDelta === 'number' && Number.isFinite(costDelta))
314
+ policy.addUsageUsd(costDelta);
315
+ emitUsage(bus, role.id, messageTokens, costDelta, m.subtype);
316
+ if (m.subtype && m.subtype !== 'success') {
317
+ if (m.subtype === 'error_max_turns')
318
+ hitTurnLimit = true;
319
+ bus.emit({
320
+ type: 'audit',
321
+ from: role.id,
322
+ reason: 'session-result-error',
323
+ msg: `turn ended with subtype "${m.subtype}"${m.is_error ? ' (is_error)' : ''} - the role produced no usable output`,
324
+ });
325
+ if (opts.circuitBreaker && m.subtype !== 'error_max_turns') {
326
+ const cb = opts.circuitBreaker;
327
+ cb.state.failures++;
328
+ if (cb.state.failures >= cb.threshold) {
329
+ cb.state.tripped = true;
330
+ bus.emit({
331
+ type: 'audit',
332
+ from: role.id,
333
+ reason: 'circuit-breaker-tripped',
334
+ msg: `circuit breaker tripped after ${cb.state.failures} consecutive failures — closing role`,
335
+ data: { failures: cb.state.failures, threshold: cb.threshold },
336
+ });
337
+ mailbox.close();
338
+ }
339
+ }
340
+ }
341
+ else if (m.subtype === 'success' && opts.circuitBreaker) {
342
+ opts.circuitBreaker.state.failures = 0;
343
+ }
344
+ if (policy.overBudget) {
345
+ bus.emit({
346
+ type: 'status',
347
+ from: role.id,
348
+ reason: 'budget-exhausted',
349
+ msg: 'token budget exhausted - closing session',
350
+ });
351
+ // #205: tag WHY the mailbox closed. A budget-exhausted boss is
352
+ // recoverable (raise the budget, resume) — the idle watchdog reads
353
+ // this to stop reporting it as generic "unreachable" (crash-like).
354
+ mailbox.close('token-budget');
355
+ }
356
+ // ORG-7: parallel USD-budget enforcement, same pattern as the token check above.
357
+ if (policy.overBudgetUsd) {
358
+ bus.emit({
359
+ type: 'status',
360
+ from: role.id,
361
+ reason: 'budget-exhausted',
362
+ msg: 'USD budget exhausted - closing session',
363
+ });
364
+ mailbox.close('usd-budget');
365
+ }
366
+ // The turn is over: whatever tool calls it was going to make, it has
367
+ // made. What the role left open is knowable here (decisions.ts's
368
+ // nudgeOpenTasksAtTurnEnd) instead of only to the idle watchdog.
369
+ opts.onTurnEnd?.();
370
+ }
371
+ }
372
+ if (cancelled?.aborted)
373
+ throw cancelled.reason;
374
+ bus.emit({ type: 'status', from: role.id, msg: 'session ended' });
375
+ return { sessionId, hitTurnLimit };
376
+ }
377
+ catch (err) {
378
+ // The turn in flight never got its 'result', so its metered turns (already
379
+ // in policy) have no usage event yet. Cost is only on 'result': unknown.
380
+ if (totalTokens(messageTurnTokens) > 0)
381
+ emitUsage(bus, role.id, messageTurnTokens, undefined, 'aborted');
382
+ // Ending the process was the point; sandbox-fault.ts already audited it.
383
+ if (err instanceof ProcessFaultError)
384
+ throw err;
385
+ if (cancelled?.aborted)
386
+ throw cancelled.reason;
387
+ // org_complete / org stop close the mailbox and abort every session: a
388
+ // normal stop, not a failure. The daemon still classifies it.
389
+ const message = err instanceof Error ? err.message : String(err);
390
+ if ((mailbox.isClosed || (external?.aborted ?? false)) &&
391
+ (err?.name === 'AbortError' || /\baborted\b/i.test(message))) {
392
+ bus.emit({
393
+ type: 'status',
394
+ from: role.id,
395
+ reason: 'session-stopped',
396
+ msg: 'session stopped',
397
+ });
398
+ throw err;
399
+ }
400
+ // #304: the daemon's role loop catches this same error one step later and
401
+ // emits the authoritative CLASSIFIED status — crashed / stopped with the
402
+ // org / terminated by stop — carrying the real error text when it is a
403
+ // genuine crash (daemon.ts's 'agent-session-crash' audit). This
404
+ // breadcrumb must not pre-empt that with the raw SDK string: on a
405
+ // planned stop it announced "Claude Code process aborted by user" about
406
+ // a stop nobody requested. It deliberately does NOT classify —
407
+ // session.ts relays, the daemon decides — and it carries a `reason` so
408
+ // it is filterable; its absence is why every #304/#251 test was
409
+ // structurally unable to see this event.
410
+ bus.emit({
411
+ type: 'status',
412
+ from: role.id,
413
+ reason: 'session-error',
414
+ msg: 'session ended with an error — see the classified status that follows',
415
+ });
416
+ throw err;
417
+ }
418
+ finally {
419
+ // Unlink so a long-lived role doesn't pile a listener per attempt onto the
420
+ // slot controller. Aborting the finished attempt keeps a runner abandoned
421
+ // mid-stream by a throw from outliving it now that an org stop can no
422
+ // longer reach it.
423
+ external?.removeEventListener('abort', onExternalAbort);
424
+ unlinkCancelled();
425
+ abort.abort();
426
+ providerSet?.close();
427
+ }
428
+ }
429
+ //# sourceMappingURL=session-run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-run.js","sourceRoot":"","sources":["../../../src/orgrt/session-run.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { AgentMessage, AgentRunner, OrgToolDef } from './agent-runner.js';
2
+ import type { resolveRoleCostTier } from './cost-tier.js';
3
+ import type { StreamOptions } from './mailbox.js';
4
+ import { type resolveRoleProvider } from './provider.js';
5
+ import type { resolveRoleGitEnforcement, roleAuthorityMask } from './role-sandbox.js';
6
+ import type { SessionOpts } from './session-types.js';
7
+ /** The AgentRunner.run() arguments for one session, built by runOneSession. */
8
+ export declare function sessionRunArgs(opts: SessionOpts, s: {
9
+ runner: AgentRunner;
10
+ tools: OrgToolDef[];
11
+ streamOpts: StreamOptions | undefined;
12
+ gitEnforcement: ReturnType<typeof resolveRoleGitEnforcement>;
13
+ model: string;
14
+ tier: ReturnType<typeof resolveRoleCostTier>;
15
+ prov: ReturnType<typeof resolveRoleProvider>;
16
+ resume: string | undefined;
17
+ authorityMask: ReturnType<typeof roleAuthorityMask>;
18
+ abort: AbortController;
19
+ }): Parameters<AgentRunner['run']>[0];
20
+ export declare function openSessionStream(opts: SessionOpts, stream: AsyncIterable<AgentMessage>, abort: AbortController): Promise<AsyncGenerator<AgentMessage>>;
21
+ //# sourceMappingURL=session-stream.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-stream.d.ts","sourceRoot":"","sources":["../../../src/orgrt/session-stream.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAO/E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAsB,KAAK,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAC7E,OAAO,KAAK,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAGtF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAQtD,+EAA+E;AAC/E,wBAAgB,cAAc,CAC5B,IAAI,EAAE,WAAW,EACjB,CAAC,EAAE;IACD,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,UAAU,EAAE,aAAa,GAAG,SAAS,CAAC;IACtC,cAAc,EAAE,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAC;IAC7D,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC;IAC7C,IAAI,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC;IAC7C,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,aAAa,EAAE,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC;IACpD,KAAK,EAAE,eAAe,CAAC;CACxB,GACA,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAyGnC;AAuBD,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,aAAa,CAAC,YAAY,CAAC,EACnC,KAAK,EAAE,eAAe,GACrB,OAAO,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAqDvC"}