sensorium-mcp 3.1.2 → 3.1.3-board.10

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 (625) hide show
  1. package/Install-Sensorium.ps1 +257 -43
  2. package/README.md +2 -0
  3. package/dist/board/api/api.js +84 -0
  4. package/dist/board/api/api.test.ts +23 -0
  5. package/dist/board/api/client.js +113 -0
  6. package/dist/board/components/BottomNav.js +32 -0
  7. package/dist/board/components/Card.js +78 -0
  8. package/dist/board/components/Combobox.js +79 -0
  9. package/dist/board/components/CommentComposer.js +29 -0
  10. package/dist/board/components/CommentList.js +42 -0
  11. package/dist/board/components/DirTreePicker.js +128 -0
  12. package/dist/board/components/Dropdown.js +67 -0
  13. package/dist/board/components/Lane.js +47 -0
  14. package/dist/board/components/PriorityChip.js +20 -0
  15. package/dist/board/components/ProfileSummary.js +89 -0
  16. package/dist/board/components/StateBanner.js +24 -0
  17. package/dist/board/components/StatusChip.js +26 -0
  18. package/dist/board/components/rateLimit.js +32 -0
  19. package/dist/board/components/rateLimit.test.ts +16 -0
  20. package/dist/board/components/time.js +14 -0
  21. package/dist/board/config.js +56 -0
  22. package/dist/board/index.html +18 -0
  23. package/dist/board/main.js +37 -0
  24. package/dist/board/mock/api.mock.js +491 -0
  25. package/dist/board/mock/api.mock.test.ts +460 -0
  26. package/dist/board/mock/fixtures.js +512 -0
  27. package/dist/board/schema/policy.js +261 -0
  28. package/dist/board/state/recur.js +24 -0
  29. package/dist/board/state/recur.test.ts +24 -0
  30. package/dist/board/state/useBoard.js +161 -0
  31. package/dist/board/state/useBuilder.js +357 -0
  32. package/dist/board/state/useBuilder.test.ts +468 -0
  33. package/dist/board/state/useCard.js +193 -0
  34. package/dist/board/state/useCard.test.ts +435 -0
  35. package/dist/board/state/useDirBrowser.js +23 -0
  36. package/dist/board/styles/board.css +2885 -0
  37. package/dist/board/styles/tokens.css +72 -0
  38. package/dist/board/vendor/vue.esm-browser.js +9 -0
  39. package/dist/board/views/App.js +61 -0
  40. package/dist/board/views/BoardView.js +153 -0
  41. package/dist/board/views/BuilderView.js +582 -0
  42. package/dist/board/views/CardView.js +382 -0
  43. package/dist/board/views/SettingsView.js +152 -0
  44. package/dist/config/agent-settings.d.ts +11 -0
  45. package/dist/config/agent-settings.d.ts.map +1 -1
  46. package/dist/config/agent-settings.js +79 -0
  47. package/dist/config/agent-settings.js.map +1 -1
  48. package/dist/config/detail-grant.d.ts +7 -16
  49. package/dist/config/detail-grant.d.ts.map +1 -1
  50. package/dist/config/detail-grant.js +12 -35
  51. package/dist/config/detail-grant.js.map +1 -1
  52. package/dist/config/index.d.ts +2 -0
  53. package/dist/config/index.d.ts.map +1 -1
  54. package/dist/config/index.js +17 -0
  55. package/dist/config/index.js.map +1 -1
  56. package/dist/config/mcp-settings.d.ts +7 -1
  57. package/dist/config/mcp-settings.d.ts.map +1 -1
  58. package/dist/config/mcp-settings.js +9 -0
  59. package/dist/config/mcp-settings.js.map +1 -1
  60. package/dist/config/misc-settings.d.ts +22 -1
  61. package/dist/config/misc-settings.d.ts.map +1 -1
  62. package/dist/config/misc-settings.js +93 -3
  63. package/dist/config/misc-settings.js.map +1 -1
  64. package/dist/config/operator-grant.d.ts +9 -0
  65. package/dist/config/operator-grant.d.ts.map +1 -0
  66. package/dist/config/operator-grant.js +24 -0
  67. package/dist/config/operator-grant.js.map +1 -0
  68. package/dist/config/voice-grant.d.ts +10 -0
  69. package/dist/config/voice-grant.d.ts.map +1 -0
  70. package/dist/config/voice-grant.js +18 -0
  71. package/dist/config/voice-grant.js.map +1 -0
  72. package/dist/dashboard/board-static.d.ts +22 -0
  73. package/dist/dashboard/board-static.d.ts.map +1 -0
  74. package/dist/dashboard/board-static.js +130 -0
  75. package/dist/dashboard/board-static.js.map +1 -0
  76. package/dist/dashboard/presets.d.ts +1 -1
  77. package/dist/dashboard/presets.d.ts.map +1 -1
  78. package/dist/dashboard/presets.js +1 -1
  79. package/dist/dashboard/presets.js.map +1 -1
  80. package/dist/dashboard/routes/agent-templates.d.ts.map +1 -1
  81. package/dist/dashboard/routes/agent-templates.js +6 -9
  82. package/dist/dashboard/routes/agent-templates.js.map +1 -1
  83. package/dist/dashboard/routes/board-body.d.ts +8 -0
  84. package/dist/dashboard/routes/board-body.d.ts.map +1 -0
  85. package/dist/dashboard/routes/board-body.js +20 -0
  86. package/dist/dashboard/routes/board-body.js.map +1 -0
  87. package/dist/dashboard/routes/board-dir-listing.d.ts +70 -0
  88. package/dist/dashboard/routes/board-dir-listing.d.ts.map +1 -0
  89. package/dist/dashboard/routes/board-dir-listing.js +192 -0
  90. package/dist/dashboard/routes/board-dir-listing.js.map +1 -0
  91. package/dist/dashboard/routes/board-lane-groups.d.ts +6 -0
  92. package/dist/dashboard/routes/board-lane-groups.d.ts.map +1 -0
  93. package/dist/dashboard/routes/board-lane-groups.js +52 -0
  94. package/dist/dashboard/routes/board-lane-groups.js.map +1 -0
  95. package/dist/dashboard/routes/board-policy.d.ts +224 -0
  96. package/dist/dashboard/routes/board-policy.d.ts.map +1 -0
  97. package/dist/dashboard/routes/board-policy.js +214 -0
  98. package/dist/dashboard/routes/board-policy.js.map +1 -0
  99. package/dist/dashboard/routes/board-profile-parse.d.ts +32 -0
  100. package/dist/dashboard/routes/board-profile-parse.d.ts.map +1 -0
  101. package/dist/dashboard/routes/board-profile-parse.js +338 -0
  102. package/dist/dashboard/routes/board-profile-parse.js.map +1 -0
  103. package/dist/dashboard/routes/board.d.ts +90 -0
  104. package/dist/dashboard/routes/board.d.ts.map +1 -0
  105. package/dist/dashboard/routes/board.js +721 -0
  106. package/dist/dashboard/routes/board.js.map +1 -0
  107. package/dist/dashboard/routes/codex.d.ts +14 -0
  108. package/dist/dashboard/routes/codex.d.ts.map +1 -0
  109. package/dist/dashboard/routes/codex.js +92 -0
  110. package/dist/dashboard/routes/codex.js.map +1 -0
  111. package/dist/dashboard/routes/prompts.d.ts +2 -2
  112. package/dist/dashboard/routes/prompts.d.ts.map +1 -1
  113. package/dist/dashboard/routes/prompts.js +2 -2
  114. package/dist/dashboard/routes/prompts.js.map +1 -1
  115. package/dist/dashboard/routes/settings.d.ts +2 -0
  116. package/dist/dashboard/routes/settings.d.ts.map +1 -1
  117. package/dist/dashboard/routes/settings.js +24 -1
  118. package/dist/dashboard/routes/settings.js.map +1 -1
  119. package/dist/dashboard/routes/skills.d.ts +7 -1
  120. package/dist/dashboard/routes/skills.d.ts.map +1 -1
  121. package/dist/dashboard/routes/skills.js +6 -6
  122. package/dist/dashboard/routes/skills.js.map +1 -1
  123. package/dist/dashboard/routes/snapshots.d.ts +2 -1
  124. package/dist/dashboard/routes/snapshots.d.ts.map +1 -1
  125. package/dist/dashboard/routes/snapshots.js +24 -18
  126. package/dist/dashboard/routes/snapshots.js.map +1 -1
  127. package/dist/dashboard/routes/templates.js +5 -5
  128. package/dist/dashboard/routes/templates.js.map +1 -1
  129. package/dist/dashboard/routes/threads-create.d.ts +17 -0
  130. package/dist/dashboard/routes/threads-create.d.ts.map +1 -1
  131. package/dist/dashboard/routes/threads-create.js +32 -10
  132. package/dist/dashboard/routes/threads-create.js.map +1 -1
  133. package/dist/dashboard/routes/threads-helpers.d.ts +11 -2
  134. package/dist/dashboard/routes/threads-helpers.d.ts.map +1 -1
  135. package/dist/dashboard/routes/threads-helpers.js +20 -3
  136. package/dist/dashboard/routes/threads-helpers.js.map +1 -1
  137. package/dist/dashboard/routes/threads-read.d.ts +16 -4
  138. package/dist/dashboard/routes/threads-read.d.ts.map +1 -1
  139. package/dist/dashboard/routes/threads-read.js +61 -55
  140. package/dist/dashboard/routes/threads-read.js.map +1 -1
  141. package/dist/dashboard/routes/threads.d.ts +2 -2
  142. package/dist/dashboard/routes/threads.d.ts.map +1 -1
  143. package/dist/dashboard/routes/threads.js +143 -29
  144. package/dist/dashboard/routes/threads.js.map +1 -1
  145. package/dist/dashboard/routes/types.d.ts +6 -0
  146. package/dist/dashboard/routes/types.d.ts.map +1 -1
  147. package/dist/dashboard/routes/types.js.map +1 -1
  148. package/dist/dashboard/routes.d.ts +2 -2
  149. package/dist/dashboard/routes.d.ts.map +1 -1
  150. package/dist/dashboard/routes.js +85 -7
  151. package/dist/dashboard/routes.js.map +1 -1
  152. package/dist/dashboard/spa.html +15 -12
  153. package/dist/data/board/board-schema.d.ts +29 -0
  154. package/dist/data/board/board-schema.d.ts.map +1 -0
  155. package/dist/data/board/board-schema.js +202 -0
  156. package/dist/data/board/board-schema.js.map +1 -0
  157. package/dist/data/board/board-types.d.ts +175 -0
  158. package/dist/data/board/board-types.d.ts.map +1 -0
  159. package/dist/data/board/board-types.js +9 -0
  160. package/dist/data/board/board-types.js.map +1 -0
  161. package/dist/data/board/card.repository.d.ts +137 -0
  162. package/dist/data/board/card.repository.d.ts.map +1 -0
  163. package/dist/data/board/card.repository.js +470 -0
  164. package/dist/data/board/card.repository.js.map +1 -0
  165. package/dist/data/board/comment.repository.d.ts +14 -0
  166. package/dist/data/board/comment.repository.d.ts.map +1 -0
  167. package/dist/data/board/comment.repository.js +42 -0
  168. package/dist/data/board/comment.repository.js.map +1 -0
  169. package/dist/data/board/lane-group.repository.d.ts +19 -0
  170. package/dist/data/board/lane-group.repository.d.ts.map +1 -0
  171. package/dist/data/board/lane-group.repository.js +66 -0
  172. package/dist/data/board/lane-group.repository.js.map +1 -0
  173. package/dist/data/board/profile-defaults.d.ts +17 -0
  174. package/dist/data/board/profile-defaults.d.ts.map +1 -0
  175. package/dist/data/board/profile-defaults.js +107 -0
  176. package/dist/data/board/profile-defaults.js.map +1 -0
  177. package/dist/data/interfaces.d.ts +1 -0
  178. package/dist/data/interfaces.d.ts.map +1 -1
  179. package/dist/data/memory/bootstrap.d.ts +1 -8
  180. package/dist/data/memory/bootstrap.d.ts.map +1 -1
  181. package/dist/data/memory/bootstrap.js +27 -37
  182. package/dist/data/memory/bootstrap.js.map +1 -1
  183. package/dist/data/memory/consolidation.d.ts +9 -31
  184. package/dist/data/memory/consolidation.d.ts.map +1 -1
  185. package/dist/data/memory/consolidation.js +22 -32
  186. package/dist/data/memory/consolidation.js.map +1 -1
  187. package/dist/data/memory/db-maintenance.d.ts +54 -0
  188. package/dist/data/memory/db-maintenance.d.ts.map +1 -0
  189. package/dist/data/memory/db-maintenance.js +81 -0
  190. package/dist/data/memory/db-maintenance.js.map +1 -0
  191. package/dist/data/memory/episodes.d.ts +2 -1
  192. package/dist/data/memory/episodes.d.ts.map +1 -1
  193. package/dist/data/memory/episodes.js +5 -1
  194. package/dist/data/memory/episodes.js.map +1 -1
  195. package/dist/data/memory/index.d.ts +0 -4
  196. package/dist/data/memory/index.d.ts.map +1 -1
  197. package/dist/data/memory/index.js +0 -4
  198. package/dist/data/memory/index.js.map +1 -1
  199. package/dist/data/memory/key-knowledge.d.ts +51 -0
  200. package/dist/data/memory/key-knowledge.d.ts.map +1 -0
  201. package/dist/data/memory/key-knowledge.js +128 -0
  202. package/dist/data/memory/key-knowledge.js.map +1 -0
  203. package/dist/data/memory/migration-runner.d.ts +1 -1
  204. package/dist/data/memory/migration-runner.d.ts.map +1 -1
  205. package/dist/data/memory/migration-runner.js +407 -1
  206. package/dist/data/memory/migration-runner.js.map +1 -1
  207. package/dist/data/memory/narrative-lint.d.ts +2 -2
  208. package/dist/data/memory/narrative-lint.d.ts.map +1 -1
  209. package/dist/data/memory/narrative-lint.js +23 -13
  210. package/dist/data/memory/narrative-lint.js.map +1 -1
  211. package/dist/data/memory/narrative-resolutions.d.ts +9 -2
  212. package/dist/data/memory/narrative-resolutions.d.ts.map +1 -1
  213. package/dist/data/memory/narrative-resolutions.js +9 -8
  214. package/dist/data/memory/narrative-resolutions.js.map +1 -1
  215. package/dist/data/memory/narrative-sources.d.ts +1 -1
  216. package/dist/data/memory/narrative-sources.d.ts.map +1 -1
  217. package/dist/data/memory/narrative-sources.js +8 -3
  218. package/dist/data/memory/narrative-sources.js.map +1 -1
  219. package/dist/data/memory/narrative-store.d.ts +24 -0
  220. package/dist/data/memory/narrative-store.d.ts.map +1 -1
  221. package/dist/data/memory/narrative-store.js +73 -35
  222. package/dist/data/memory/narrative-store.js.map +1 -1
  223. package/dist/data/memory/narrative.d.ts.map +1 -1
  224. package/dist/data/memory/narrative.js +47 -29
  225. package/dist/data/memory/narrative.js.map +1 -1
  226. package/dist/data/memory/note-archival.d.ts +1 -1
  227. package/dist/data/memory/note-archival.d.ts.map +1 -1
  228. package/dist/data/memory/note-archival.js +7 -3
  229. package/dist/data/memory/note-archival.js.map +1 -1
  230. package/dist/data/memory/note-embeddings.d.ts +7 -0
  231. package/dist/data/memory/note-embeddings.d.ts.map +1 -1
  232. package/dist/data/memory/note-embeddings.js +6 -2
  233. package/dist/data/memory/note-embeddings.js.map +1 -1
  234. package/dist/data/memory/passive-notice.repository.d.ts +70 -0
  235. package/dist/data/memory/passive-notice.repository.d.ts.map +1 -0
  236. package/dist/data/memory/passive-notice.repository.js +85 -0
  237. package/dist/data/memory/passive-notice.repository.js.map +1 -0
  238. package/dist/data/memory/schema-ddl.d.ts +120 -1
  239. package/dist/data/memory/schema-ddl.d.ts.map +1 -1
  240. package/dist/data/memory/schema-ddl.js +171 -4
  241. package/dist/data/memory/schema-ddl.js.map +1 -1
  242. package/dist/data/memory/schema-guard.d.ts.map +1 -1
  243. package/dist/data/memory/schema-guard.js +5 -41
  244. package/dist/data/memory/schema-guard.js.map +1 -1
  245. package/dist/data/memory/schema.d.ts.map +1 -1
  246. package/dist/data/memory/schema.js +10 -34
  247. package/dist/data/memory/schema.js.map +1 -1
  248. package/dist/data/memory/semantic-notes.d.ts +13 -8
  249. package/dist/data/memory/semantic-notes.d.ts.map +1 -1
  250. package/dist/data/memory/semantic-notes.js +12 -17
  251. package/dist/data/memory/semantic-notes.js.map +1 -1
  252. package/dist/data/memory/thread-registry.d.ts +330 -15
  253. package/dist/data/memory/thread-registry.d.ts.map +1 -1
  254. package/dist/data/memory/thread-registry.js +523 -67
  255. package/dist/data/memory/thread-registry.js.map +1 -1
  256. package/dist/data/memory/utils.d.ts +6 -0
  257. package/dist/data/memory/utils.d.ts.map +1 -1
  258. package/dist/data/memory/utils.js +13 -0
  259. package/dist/data/memory/utils.js.map +1 -1
  260. package/dist/data/memory/worker-lifecycle.repository.d.ts +308 -0
  261. package/dist/data/memory/worker-lifecycle.repository.d.ts.map +1 -0
  262. package/dist/data/memory/worker-lifecycle.repository.js +428 -0
  263. package/dist/data/memory/worker-lifecycle.repository.js.map +1 -0
  264. package/dist/data/optional.d.ts +16 -0
  265. package/dist/data/optional.d.ts.map +1 -0
  266. package/dist/data/optional.js +47 -0
  267. package/dist/data/optional.js.map +1 -0
  268. package/dist/index.js +156 -24
  269. package/dist/index.js.map +1 -1
  270. package/dist/integrations/openai/speech.d.ts.map +1 -1
  271. package/dist/integrations/openai/speech.js +52 -19
  272. package/dist/integrations/openai/speech.js.map +1 -1
  273. package/dist/integrations/openai/video.d.ts +1 -1
  274. package/dist/integrations/openai/video.d.ts.map +1 -1
  275. package/dist/integrations/openai/video.js +13 -8
  276. package/dist/integrations/openai/video.js.map +1 -1
  277. package/dist/integrations/telegram/types.d.ts +11 -0
  278. package/dist/integrations/telegram/types.d.ts.map +1 -1
  279. package/dist/lib/http-retry.d.ts +91 -0
  280. package/dist/lib/http-retry.d.ts.map +1 -0
  281. package/dist/lib/http-retry.js +177 -0
  282. package/dist/lib/http-retry.js.map +1 -0
  283. package/dist/lib/mcp-http-port.d.ts +12 -0
  284. package/dist/lib/mcp-http-port.d.ts.map +1 -0
  285. package/dist/lib/mcp-http-port.js +19 -0
  286. package/dist/lib/mcp-http-port.js.map +1 -0
  287. package/dist/lib/paths.d.ts +29 -4
  288. package/dist/lib/paths.d.ts.map +1 -1
  289. package/dist/lib/paths.js +31 -4
  290. package/dist/lib/paths.js.map +1 -1
  291. package/dist/lib/types.d.ts +2 -0
  292. package/dist/lib/types.d.ts.map +1 -1
  293. package/dist/lib/usage-metering/pricing.js +1 -1
  294. package/dist/lib/usage-metering/pricing.js.map +1 -1
  295. package/dist/lib/usage-metering/sink.d.ts +4 -0
  296. package/dist/lib/usage-metering/sink.d.ts.map +1 -1
  297. package/dist/lib/usage-metering/sink.js +6 -4
  298. package/dist/lib/usage-metering/sink.js.map +1 -1
  299. package/dist/lib/utils.d.ts +31 -0
  300. package/dist/lib/utils.d.ts.map +1 -1
  301. package/dist/lib/utils.js +49 -0
  302. package/dist/lib/utils.js.map +1 -1
  303. package/dist/llm/prompts/narrative.d.ts.map +1 -1
  304. package/dist/llm/prompts/narrative.js +27 -86
  305. package/dist/llm/prompts/narrative.js.map +1 -1
  306. package/dist/log-parsing/log-events.d.ts +38 -0
  307. package/dist/log-parsing/log-events.d.ts.map +1 -0
  308. package/dist/log-parsing/log-events.js +2 -0
  309. package/dist/log-parsing/log-events.js.map +1 -0
  310. package/dist/log-parsing/parser-registry.d.ts +4 -0
  311. package/dist/log-parsing/parser-registry.d.ts.map +1 -0
  312. package/dist/log-parsing/parser-registry.js +18 -0
  313. package/dist/log-parsing/parser-registry.js.map +1 -0
  314. package/dist/log-parsing/parsers/claude.d.ts +6 -0
  315. package/dist/log-parsing/parsers/claude.d.ts.map +1 -0
  316. package/dist/log-parsing/parsers/claude.js +100 -0
  317. package/dist/log-parsing/parsers/claude.js.map +1 -0
  318. package/dist/log-parsing/parsers/codex.d.ts +6 -0
  319. package/dist/log-parsing/parsers/codex.d.ts.map +1 -0
  320. package/dist/log-parsing/parsers/codex.js +116 -0
  321. package/dist/log-parsing/parsers/codex.js.map +1 -0
  322. package/dist/log-parsing/parsers/copilot.d.ts +6 -0
  323. package/dist/log-parsing/parsers/copilot.d.ts.map +1 -0
  324. package/dist/log-parsing/parsers/copilot.js +65 -0
  325. package/dist/log-parsing/parsers/copilot.js.map +1 -0
  326. package/dist/log-parsing/parsers/json-lines.d.ts +9 -0
  327. package/dist/log-parsing/parsers/json-lines.d.ts.map +1 -0
  328. package/dist/log-parsing/parsers/json-lines.js +25 -0
  329. package/dist/log-parsing/parsers/json-lines.js.map +1 -0
  330. package/dist/log-parsing/render.d.ts +33 -0
  331. package/dist/log-parsing/render.d.ts.map +1 -0
  332. package/dist/log-parsing/render.js +113 -0
  333. package/dist/log-parsing/render.js.map +1 -0
  334. package/dist/log-parsing/text.d.ts +8 -0
  335. package/dist/log-parsing/text.d.ts.map +1 -0
  336. package/dist/log-parsing/text.js +20 -0
  337. package/dist/log-parsing/text.js.map +1 -0
  338. package/dist/server/http-server.d.ts +8 -1
  339. package/dist/server/http-server.d.ts.map +1 -1
  340. package/dist/server/http-server.js +41 -19
  341. package/dist/server/http-server.js.map +1 -1
  342. package/dist/server/port-holder.d.ts +94 -0
  343. package/dist/server/port-holder.d.ts.map +1 -0
  344. package/dist/server/port-holder.js +122 -0
  345. package/dist/server/port-holder.js.map +1 -0
  346. package/dist/services/agent-spawn.service.d.ts +50 -5
  347. package/dist/services/agent-spawn.service.d.ts.map +1 -1
  348. package/dist/services/agent-spawn.service.js +59 -66
  349. package/dist/services/agent-spawn.service.js.map +1 -1
  350. package/dist/services/background-runner.d.ts +0 -1
  351. package/dist/services/background-runner.d.ts.map +1 -1
  352. package/dist/services/background-runner.js +0 -58
  353. package/dist/services/background-runner.js.map +1 -1
  354. package/dist/services/board/board-signals.d.ts +45 -0
  355. package/dist/services/board/board-signals.d.ts.map +1 -0
  356. package/dist/services/board/board-signals.js +170 -0
  357. package/dist/services/board/board-signals.js.map +1 -0
  358. package/dist/services/board/card-briefing.d.ts +24 -0
  359. package/dist/services/board/card-briefing.d.ts.map +1 -0
  360. package/dist/services/board/card-briefing.js +132 -0
  361. package/dist/services/board/card-briefing.js.map +1 -0
  362. package/dist/services/board/card-diagnostics.d.ts +25 -0
  363. package/dist/services/board/card-diagnostics.d.ts.map +1 -0
  364. package/dist/services/board/card-diagnostics.js +50 -0
  365. package/dist/services/board/card-diagnostics.js.map +1 -0
  366. package/dist/services/board/live-root-thread.d.ts +8 -0
  367. package/dist/services/board/live-root-thread.d.ts.map +1 -0
  368. package/dist/services/board/live-root-thread.js +2 -0
  369. package/dist/services/board/live-root-thread.js.map +1 -0
  370. package/dist/services/board/orchestrator.service.d.ts +119 -0
  371. package/dist/services/board/orchestrator.service.d.ts.map +1 -0
  372. package/dist/services/board/orchestrator.service.js +387 -0
  373. package/dist/services/board/orchestrator.service.js.map +1 -0
  374. package/dist/services/board/release-worker.d.ts +43 -0
  375. package/dist/services/board/release-worker.d.ts.map +1 -0
  376. package/dist/services/board/release-worker.js +96 -0
  377. package/dist/services/board/release-worker.js.map +1 -0
  378. package/dist/services/board/report-capture.d.ts +94 -0
  379. package/dist/services/board/report-capture.d.ts.map +1 -0
  380. package/dist/services/board/report-capture.js +398 -0
  381. package/dist/services/board/report-capture.js.map +1 -0
  382. package/dist/services/board/worker-spawn.d.ts +89 -0
  383. package/dist/services/board/worker-spawn.d.ts.map +1 -0
  384. package/dist/services/board/worker-spawn.js +177 -0
  385. package/dist/services/board/worker-spawn.js.map +1 -0
  386. package/dist/services/board/worktree.d.ts +45 -0
  387. package/dist/services/board/worktree.d.ts.map +1 -0
  388. package/dist/services/board/worktree.js +183 -0
  389. package/dist/services/board/worktree.js.map +1 -0
  390. package/dist/services/broker-client.d.ts +84 -2
  391. package/dist/services/broker-client.d.ts.map +1 -1
  392. package/dist/services/broker-client.js +72 -6
  393. package/dist/services/broker-client.js.map +1 -1
  394. package/dist/services/claude-spawn.service.d.ts +5 -0
  395. package/dist/services/claude-spawn.service.d.ts.map +1 -1
  396. package/dist/services/claude-spawn.service.js +37 -21
  397. package/dist/services/claude-spawn.service.js.map +1 -1
  398. package/dist/services/codex-spawn.service.d.ts +8 -3
  399. package/dist/services/codex-spawn.service.d.ts.map +1 -1
  400. package/dist/services/codex-spawn.service.js +84 -67
  401. package/dist/services/codex-spawn.service.js.map +1 -1
  402. package/dist/services/consolidation.service.d.ts.map +1 -1
  403. package/dist/services/consolidation.service.js +5 -49
  404. package/dist/services/consolidation.service.js.map +1 -1
  405. package/dist/services/copilot-spawn.service.d.ts +1 -1
  406. package/dist/services/copilot-spawn.service.d.ts.map +1 -1
  407. package/dist/services/copilot-spawn.service.js +10 -5
  408. package/dist/services/copilot-spawn.service.js.map +1 -1
  409. package/dist/services/daily-session.d.ts +24 -11
  410. package/dist/services/daily-session.d.ts.map +1 -1
  411. package/dist/services/daily-session.js +113 -33
  412. package/dist/services/daily-session.js.map +1 -1
  413. package/dist/services/death-alert.service.d.ts +55 -0
  414. package/dist/services/death-alert.service.d.ts.map +1 -0
  415. package/dist/services/death-alert.service.js +64 -0
  416. package/dist/services/death-alert.service.js.map +1 -0
  417. package/dist/services/dispatcher/broker.d.ts +66 -0
  418. package/dist/services/dispatcher/broker.d.ts.map +1 -1
  419. package/dist/services/dispatcher/broker.js +60 -52
  420. package/dist/services/dispatcher/broker.js.map +1 -1
  421. package/dist/services/dispatcher/poller.d.ts.map +1 -1
  422. package/dist/services/dispatcher/poller.js +31 -24
  423. package/dist/services/dispatcher/poller.js.map +1 -1
  424. package/dist/services/http-retry.d.ts +1 -90
  425. package/dist/services/http-retry.d.ts.map +1 -1
  426. package/dist/services/http-retry.js +1 -176
  427. package/dist/services/http-retry.js.map +1 -1
  428. package/dist/services/intent.d.ts +15 -1
  429. package/dist/services/intent.d.ts.map +1 -1
  430. package/dist/services/intent.js +39 -27
  431. package/dist/services/intent.js.map +1 -1
  432. package/dist/services/keeper.service.d.ts +76 -3
  433. package/dist/services/keeper.service.d.ts.map +1 -1
  434. package/dist/services/keeper.service.js +112 -35
  435. package/dist/services/keeper.service.js.map +1 -1
  436. package/dist/services/mcp-config.service.d.ts.map +1 -1
  437. package/dist/services/mcp-config.service.js +14 -1
  438. package/dist/services/mcp-config.service.js.map +1 -1
  439. package/dist/services/memory-briefing.service.d.ts +1 -1
  440. package/dist/services/memory-briefing.service.d.ts.map +1 -1
  441. package/dist/services/memory-briefing.service.js +28 -73
  442. package/dist/services/memory-briefing.service.js.map +1 -1
  443. package/dist/services/passive-notice.service.d.ts +56 -0
  444. package/dist/services/passive-notice.service.d.ts.map +1 -0
  445. package/dist/services/passive-notice.service.js +92 -0
  446. package/dist/services/passive-notice.service.js.map +1 -0
  447. package/dist/services/predefined-prompts.d.ts +11 -0
  448. package/dist/services/predefined-prompts.d.ts.map +1 -0
  449. package/dist/services/predefined-prompts.js +25 -0
  450. package/dist/services/predefined-prompts.js.map +1 -0
  451. package/dist/services/process.service.d.ts +111 -27
  452. package/dist/services/process.service.d.ts.map +1 -1
  453. package/dist/services/process.service.js +245 -173
  454. package/dist/services/process.service.js.map +1 -1
  455. package/dist/services/spawn-common.d.ts +281 -5
  456. package/dist/services/spawn-common.d.ts.map +1 -1
  457. package/dist/services/spawn-common.js +884 -188
  458. package/dist/services/spawn-common.js.map +1 -1
  459. package/dist/services/spawn-exit-watcher.d.ts +45 -35
  460. package/dist/services/spawn-exit-watcher.d.ts.map +1 -1
  461. package/dist/services/spawn-exit-watcher.js +120 -100
  462. package/dist/services/spawn-exit-watcher.js.map +1 -1
  463. package/dist/services/telegram.d.ts +31 -8
  464. package/dist/services/telegram.d.ts.map +1 -1
  465. package/dist/services/telegram.js +58 -26
  466. package/dist/services/telegram.js.map +1 -1
  467. package/dist/services/thread-health.service.d.ts +8 -0
  468. package/dist/services/thread-health.service.d.ts.map +1 -1
  469. package/dist/services/thread-health.service.js +14 -10
  470. package/dist/services/thread-health.service.js.map +1 -1
  471. package/dist/services/thread-lifecycle.service.d.ts +17 -1
  472. package/dist/services/thread-lifecycle.service.d.ts.map +1 -1
  473. package/dist/services/thread-lifecycle.service.js +47 -6
  474. package/dist/services/thread-lifecycle.service.js.map +1 -1
  475. package/dist/services/thread-log-reader.d.ts +81 -0
  476. package/dist/services/thread-log-reader.d.ts.map +1 -0
  477. package/dist/services/thread-log-reader.js +141 -0
  478. package/dist/services/thread-log-reader.js.map +1 -0
  479. package/dist/services/thread-purge.service.d.ts +200 -0
  480. package/dist/services/thread-purge.service.d.ts.map +1 -0
  481. package/dist/services/thread-purge.service.js +644 -0
  482. package/dist/services/thread-purge.service.js.map +1 -0
  483. package/dist/services/topic.service.d.ts +44 -2
  484. package/dist/services/topic.service.d.ts.map +1 -1
  485. package/dist/services/topic.service.js +74 -13
  486. package/dist/services/topic.service.js.map +1 -1
  487. package/dist/services/usage/usage-inbox-notifier.d.ts +50 -0
  488. package/dist/services/usage/usage-inbox-notifier.d.ts.map +1 -0
  489. package/dist/services/usage/usage-inbox-notifier.js +118 -0
  490. package/dist/services/usage/usage-inbox-notifier.js.map +1 -0
  491. package/dist/services/usage/usage-poller.service.d.ts +41 -0
  492. package/dist/services/usage/usage-poller.service.d.ts.map +1 -0
  493. package/dist/services/usage/usage-poller.service.js +67 -0
  494. package/dist/services/usage/usage-poller.service.js.map +1 -0
  495. package/dist/services/usage/usage-snapshot-provider.d.ts +40 -0
  496. package/dist/services/usage/usage-snapshot-provider.d.ts.map +1 -0
  497. package/dist/services/usage/usage-snapshot-provider.js +89 -0
  498. package/dist/services/usage/usage-snapshot-provider.js.map +1 -0
  499. package/dist/services/usage/usage-types.d.ts +28 -0
  500. package/dist/services/usage/usage-types.d.ts.map +1 -0
  501. package/dist/services/usage/usage-types.js +14 -0
  502. package/dist/services/usage/usage-types.js.map +1 -0
  503. package/dist/services/worker-birth.d.ts +154 -0
  504. package/dist/services/worker-birth.d.ts.map +1 -0
  505. package/dist/services/worker-birth.js +274 -0
  506. package/dist/services/worker-birth.js.map +1 -0
  507. package/dist/services/worker-cleanup.service.d.ts +242 -19
  508. package/dist/services/worker-cleanup.service.d.ts.map +1 -1
  509. package/dist/services/worker-cleanup.service.js +893 -355
  510. package/dist/services/worker-cleanup.service.js.map +1 -1
  511. package/dist/services/worker-lifecycle-executor.d.ts +42 -0
  512. package/dist/services/worker-lifecycle-executor.d.ts.map +1 -0
  513. package/dist/services/worker-lifecycle-executor.js +63 -0
  514. package/dist/services/worker-lifecycle-executor.js.map +1 -0
  515. package/dist/services/worker-single-use.d.ts +92 -0
  516. package/dist/services/worker-single-use.d.ts.map +1 -0
  517. package/dist/services/worker-single-use.js +155 -0
  518. package/dist/services/worker-single-use.js.map +1 -0
  519. package/dist/sessions/mcp-registry.d.ts +33 -2
  520. package/dist/sessions/mcp-registry.d.ts.map +1 -1
  521. package/dist/sessions/mcp-registry.js +153 -30
  522. package/dist/sessions/mcp-registry.js.map +1 -1
  523. package/dist/test-bootstrap.d.ts +19 -12
  524. package/dist/test-bootstrap.d.ts.map +1 -1
  525. package/dist/test-bootstrap.js +69 -21
  526. package/dist/test-bootstrap.js.map +1 -1
  527. package/dist/test-tripwire.test-support.d.ts +75 -0
  528. package/dist/test-tripwire.test-support.d.ts.map +1 -0
  529. package/dist/test-tripwire.test-support.js +353 -0
  530. package/dist/test-tripwire.test-support.js.map +1 -0
  531. package/dist/tools/defs/memory-defs.d.ts.map +1 -1
  532. package/dist/tools/defs/memory-defs.js +12 -4
  533. package/dist/tools/defs/memory-defs.js.map +1 -1
  534. package/dist/tools/defs/session-defs.d.ts.map +1 -1
  535. package/dist/tools/defs/session-defs.js +26 -10
  536. package/dist/tools/defs/session-defs.js.map +1 -1
  537. package/dist/tools/defs/utility-defs.js +1 -1
  538. package/dist/tools/defs/utility-defs.js.map +1 -1
  539. package/dist/tools/delegate-tool.d.ts +81 -1
  540. package/dist/tools/delegate-tool.d.ts.map +1 -1
  541. package/dist/tools/delegate-tool.js +840 -219
  542. package/dist/tools/delegate-tool.js.map +1 -1
  543. package/dist/tools/memory-tools.d.ts.map +1 -1
  544. package/dist/tools/memory-tools.js +66 -9
  545. package/dist/tools/memory-tools.js.map +1 -1
  546. package/dist/tools/response-builders.d.ts.map +1 -1
  547. package/dist/tools/response-builders.js +12 -8
  548. package/dist/tools/response-builders.js.map +1 -1
  549. package/dist/tools/session-tools.d.ts.map +1 -1
  550. package/dist/tools/session-tools.js +3 -32
  551. package/dist/tools/session-tools.js.map +1 -1
  552. package/dist/tools/skill-tools.js +1 -1
  553. package/dist/tools/skill-tools.js.map +1 -1
  554. package/dist/tools/start-session-tool.d.ts.map +1 -1
  555. package/dist/tools/start-session-tool.js +66 -20
  556. package/dist/tools/start-session-tool.js.map +1 -1
  557. package/dist/tools/utility-tools.d.ts.map +1 -1
  558. package/dist/tools/utility-tools.js +38 -3
  559. package/dist/tools/utility-tools.js.map +1 -1
  560. package/dist/tools/wait/auto-forward.d.ts.map +1 -1
  561. package/dist/tools/wait/auto-forward.js +8 -3
  562. package/dist/tools/wait/auto-forward.js.map +1 -1
  563. package/dist/tools/wait/consolidation-strategy.d.ts +42 -0
  564. package/dist/tools/wait/consolidation-strategy.d.ts.map +1 -0
  565. package/dist/tools/wait/consolidation-strategy.js +50 -0
  566. package/dist/tools/wait/consolidation-strategy.js.map +1 -0
  567. package/dist/tools/wait/drive-handler.d.ts +5 -7
  568. package/dist/tools/wait/drive-handler.d.ts.map +1 -1
  569. package/dist/tools/wait/drive-handler.js +45 -59
  570. package/dist/tools/wait/drive-handler.js.map +1 -1
  571. package/dist/tools/wait/media-processor.d.ts.map +1 -1
  572. package/dist/tools/wait/media-processor.js +8 -4
  573. package/dist/tools/wait/media-processor.js.map +1 -1
  574. package/dist/tools/wait/message-delivery.d.ts +9 -6
  575. package/dist/tools/wait/message-delivery.d.ts.map +1 -1
  576. package/dist/tools/wait/message-delivery.js +77 -58
  577. package/dist/tools/wait/message-delivery.js.map +1 -1
  578. package/dist/tools/wait/message-processing.d.ts.map +1 -1
  579. package/dist/tools/wait/message-processing.js +2 -1
  580. package/dist/tools/wait/message-processing.js.map +1 -1
  581. package/dist/tools/wait/poll-loop.d.ts.map +1 -1
  582. package/dist/tools/wait/poll-loop.js +339 -239
  583. package/dist/tools/wait/poll-loop.js.map +1 -1
  584. package/package.json +4 -3
  585. package/templates/azure-devops-securevault.default.md +20 -6
  586. package/templates/board-quality-checklist.default.md +121 -0
  587. package/templates/buildless-vue-preview.default.md +47 -0
  588. package/templates/expert-code-review.default.md +12 -0
  589. package/templates/handoff.default.md +41 -18
  590. package/templates/increment-pr-pipeline.default.md +79 -0
  591. package/templates/swarm.default.md +1 -0
  592. package/templates/worker-autonomous.default.md +1 -0
  593. package/templates/worker-delegate.default.md +1 -0
  594. package/dist/dashboard/log-parser.d.ts +0 -65
  595. package/dist/dashboard/log-parser.d.ts.map +0 -1
  596. package/dist/dashboard/log-parser.js +0 -219
  597. package/dist/dashboard/log-parser.js.map +0 -1
  598. package/dist/data/memory/reflection-dedup.d.ts +0 -17
  599. package/dist/data/memory/reflection-dedup.d.ts.map +0 -1
  600. package/dist/data/memory/reflection-dedup.js +0 -55
  601. package/dist/data/memory/reflection-dedup.js.map +0 -1
  602. package/dist/data/memory/reflection-gates.d.ts +0 -40
  603. package/dist/data/memory/reflection-gates.d.ts.map +0 -1
  604. package/dist/data/memory/reflection-gates.js +0 -220
  605. package/dist/data/memory/reflection-gates.js.map +0 -1
  606. package/dist/data/memory/reflection-sources.d.ts +0 -13
  607. package/dist/data/memory/reflection-sources.d.ts.map +0 -1
  608. package/dist/data/memory/reflection-sources.js +0 -115
  609. package/dist/data/memory/reflection-sources.js.map +0 -1
  610. package/dist/data/memory/reflection.d.ts +0 -43
  611. package/dist/data/memory/reflection.d.ts.map +0 -1
  612. package/dist/data/memory/reflection.js +0 -329
  613. package/dist/data/memory/reflection.js.map +0 -1
  614. package/dist/llm/prompts/reflection.d.ts +0 -6
  615. package/dist/llm/prompts/reflection.d.ts.map +0 -1
  616. package/dist/llm/prompts/reflection.js +0 -77
  617. package/dist/llm/prompts/reflection.js.map +0 -1
  618. package/dist/services/memory-pruning.service.d.ts +0 -12
  619. package/dist/services/memory-pruning.service.d.ts.map +0 -1
  620. package/dist/services/memory-pruning.service.js +0 -179
  621. package/dist/services/memory-pruning.service.js.map +0 -1
  622. package/templates/daily-review.default.md +0 -26
  623. package/templates/fire-and-forget.default.md +0 -76
  624. package/templates/offload.default.md +0 -33
  625. package/templates/sensorium-repair.default.md +0 -114
@@ -6,12 +6,14 @@
6
6
  */
7
7
  import type { Database } from "./schema.js";
8
8
  import type { IThreadRepository } from "../interfaces.js";
9
+ import { Optional } from "../optional.js";
9
10
  export interface ThreadRegistryEntry {
10
11
  id: number;
11
12
  threadId: number;
12
13
  name: string;
13
14
  type: "root" | "daily" | "branch" | "worker";
14
15
  rootThreadId: number | null;
16
+ notifyThreadId: number | null;
15
17
  badge: string;
16
18
  client: string;
17
19
  maxRetries: number;
@@ -26,7 +28,9 @@ export interface ThreadRegistryEntry {
26
28
  lastActiveAt: string | null;
27
29
  sessionResetAt: string | null;
28
30
  cleanShutdown: boolean;
29
- status: "active" | "archived" | "expired" | "exited";
31
+ /** Mirrors the persisted thread_registry status CHECK (schema-ddl.ts / migration 23).
32
+ * Narrower than the CHECK would make reads an unchecked cast. */
33
+ status: "created" | "spawning" | "active" | "stuck" | "exiting" | "exited" | "archived" | "expired";
30
34
  archivedAt: string | null;
31
35
  summary: string | null;
32
36
  }
@@ -35,6 +39,7 @@ type RegisterThreadEntry = {
35
39
  name: string;
36
40
  type: ThreadRegistryEntry["type"];
37
41
  rootThreadId?: number;
42
+ notifyThreadId?: number;
38
43
  badge?: string;
39
44
  client?: string;
40
45
  maxRetries?: number;
@@ -53,37 +58,238 @@ export declare class ThreadRepository implements IThreadRepository {
53
58
  getRootThreads(db: Database): ThreadRegistryEntry[];
54
59
  }
55
60
  export declare const threadRepository: ThreadRepository;
61
+ /**
62
+ * The row seam, and the one place the minted-id rule is stated for `thread_registry`.
63
+ *
64
+ * A worker's identity is MINTED ({@link mintThreadId}, called from `birthWorker`), so a
65
+ * `type = 'worker'` row below {@link MINTED_THREAD_ID_FLOOR} is not a worker anything
66
+ * mints — it is a Telegram topic number wearing a worker's type, and every id-reuse
67
+ * failure this line has chased (a worker inheriting an earlier occupant's lifecycle, a
68
+ * sweep deleting a live thread's forum topic because the id IS the topic) starts there.
69
+ *
70
+ * It is refused HERE because this statement is where `type` enters the table: the INSERT
71
+ * writes `entry.type`, and the ON CONFLICT arm below either PRESERVES the stored type
72
+ * (while `keep_alive = 1`) or writes `excluded.type`, which is this same `entry.type`.
73
+ * No other writer introduces one — `UpdateThreadPatch` has no `type` field, and
74
+ * `handleConvertToRoot`'s direct UPDATE writes the literal 'root'. A preserved type was
75
+ * therefore introduced by an earlier call through this guard, or predates migration 39,
76
+ * which purged what did.
77
+ *
78
+ * It THROWS where the entrances above it answer in prose. `handleCreateThread` and
79
+ * `handleStartThread` refuse their own callers with a sentence naming the one way to get
80
+ * a worker, because those callers are an agent or an HTTP client that can act on it;
81
+ * an entry arriving here already carries the contradiction, and there is no row this
82
+ * function could write instead that the caller asked for.
83
+ */
56
84
  export declare function registerThread(db: Database, entry: RegisterThreadEntry): ThreadRegistryEntry;
85
+ /**
86
+ * Allocate a thread id that no thread has ever held and none ever will again —
87
+ * GIVEN the allocating INSERT autocommits, which is what the first guard enforces.
88
+ * Inside an enclosing `db.transaction`, SQLite's AUTOINCREMENT mark rolls back with
89
+ * everything else and the next mint is handed the same number (measured), so the
90
+ * promise is not available mid-transaction and is refused rather than weakened.
91
+ *
92
+ * That refusal breaks no correct caller, because the sound order is mint, commit,
93
+ * then register: the id has to be durable before any row, file, process or wire
94
+ * message names it. A caller wanting mint-and-register atomically still mints first
95
+ * and tolerates the gap on a crash — a minted-never-used id is this design's native
96
+ * waste product, and never reusing one is exactly what makes those gaps free.
97
+ *
98
+ * Why the sequence is shaped the way it is — and why the mark survives a hard
99
+ * `deleteThread` and the 180-day purge — is argued on THREAD_ID_SEQUENCE_DDL. The
100
+ * trim that keeps the table at one row carries a WHERE and so cannot lower it.
101
+ *
102
+ * The floor is asserted rather than assumed. An id below it is a Telegram topic
103
+ * number as far as every reader of `thread_registry.thread_id` is concerned, and the
104
+ * two states that produce one — an unseeded sequence, or a lowered floor — are
105
+ * both silent. Refusing to mint is the only answer a caller cannot paper over.
106
+ */
107
+ export declare function mintThreadId(db: Database): number;
57
108
  export declare function getThread(db: Database, threadId: number): ThreadRegistryEntry | null;
109
+ /** Registry badge marking an ephemeral task-board card worker. */
110
+ export declare const BOARD_WORKER_BADGE = "board-worker";
111
+ /**
112
+ * Whether a thread's own episodic memory writes are suppressed. Currently true
113
+ * for ephemeral board-card workers, whose state lives in card comments rather
114
+ * than Sensorium episodes. Named for the memory concern so the episode layer
115
+ * asks a memory-domain question and never learns the board badge value.
116
+ */
117
+ export declare function suppressesEpisodicMemory(db: Database, threadId: number): boolean;
58
118
  export declare function getThreadByName(db: Database, name: string): ThreadRegistryEntry | null;
59
119
  export declare function getThreadsByRoot(db: Database, rootThreadId: number): ThreadRegistryEntry[];
60
120
  export declare function getRootThreads(db: Database): ThreadRegistryEntry[];
61
- export declare function getDailyRotationThreads(db: Database): ThreadRegistryEntry[];
121
+ /**
122
+ * All non-worker, non-archived threads. The nightly memory pass (consolidation,
123
+ * reflection, narrative) runs for every one of these — memory integrity is
124
+ * required by all threads, not just those opted into session rotation. Workers
125
+ * are excluded because their memory is no-persist (discarded on decommission).
126
+ */
127
+ export declare function getConsolidationThreads(db: Database): ThreadRegistryEntry[];
62
128
  export declare function getKeepAliveThreads(db: Database): ThreadRegistryEntry[];
63
129
  export declare function getAllThreads(db: Database): ThreadRegistryEntry[];
64
130
  export declare function getActiveThreads(db: Database): ThreadRegistryEntry[];
65
131
  /** All non-archived threads — for dashboard display. */
66
132
  export declare function getDashboardThreads(db: Database): ThreadRegistryEntry[];
67
133
  export declare function updateThread(db: Database, threadId: number, updates: UpdateThreadPatch): boolean;
134
+ /** Archive a row. False when there is no row, a start holds it ('spawning'), or a
135
+ * purge has marked it — re-stamping archived_at under a purge would be a false 200. */
68
136
  export declare function archiveThread(db: Database, threadId: number): boolean;
69
137
  export declare function unarchiveThread(db: Database, threadId: number): boolean;
70
- export declare function getArchivedThreads(db: Database): ThreadRegistryEntry[];
138
+ /**
139
+ * Archived threads, workers EXCLUDED by default.
140
+ *
141
+ * The exclusion is right for the overview this feed was written for — a swarm
142
+ * run leaves dozens of decommissioned workers that would bury the handful of
143
+ * roots and branches an operator actually recognises. It was wrong as the ONLY
144
+ * answer: this is the single feed behind the archived-threads tab, which is the
145
+ * single place the permanent delete can be invoked from, and 220 of the 225
146
+ * per-thread config dirs on the live host (230 of its 320 MB) belong to exactly
147
+ * the archived workers it hid. The delete API itself never had a type filter —
148
+ * only the list did — so the bytes were unreachable rather than protected.
149
+ *
150
+ * `includeWorkers` is opt-in so every existing caller keeps the behaviour it
151
+ * was written against.
152
+ */
153
+ export declare function getArchivedThreads(db: Database, opts?: {
154
+ includeWorkers?: boolean;
155
+ }): ThreadRegistryEntry[];
156
+ /**
157
+ * Drop ONLY the registry row. Not a purge, and not reachable from the operator's
158
+ * delete any more — that goes through `purgeThread`, which takes every dependent
159
+ * table with it.
160
+ *
161
+ * It stays because worker-birth's PRE-SPAWN teardown wants exactly this: a row it
162
+ * registered moments ago, for a worker no process has run as, so nothing has been
163
+ * written against the id yet and there is nothing for a purge to find.
164
+ * `purgeThread` would refuse that row (no purge marked it: it is active, not
165
+ * archived). Do not reach for this to retire a thread that has ever run.
166
+ */
71
167
  export declare function deleteThread(db: Database, threadId: number): boolean;
72
168
  /**
73
- * Purge archived threads older than `maxAgeMs` (default 180 days).
74
- * Deletes the thread's associated data and registry entry.
75
- * Returns the number of threads purged.
169
+ * How long an archived thread survives before the daily sweep purges it.
170
+ *
171
+ * Was 180 days. The sweep is a floor, not the only way out — an archived thread
172
+ * now also has an explicit, operator-driven permanent delete (purgeThread +
173
+ * purgeThreadFiles, surfaced as `DELETE /api/threads/:id?hard=true`). With a
174
+ * deliberate path available, the automatic one no longer has to be the thing
175
+ * that reclaims disk, so the window is long enough that nothing is ever lost to
176
+ * a timer the operator forgot about. Exported so operator-facing text states
177
+ * the real number instead of a stale literal.
178
+ */
179
+ export declare const ARCHIVED_THREAD_PURGE_DAYS = 730;
180
+ /**
181
+ * Mark an archived row as being purged, answering the stamp written: the fence
182
+ * a finisher must still see to act. Empty means the purge lost: the row is not
183
+ * archived any more (a start claimed it), already marked, gone, or — when
184
+ * `archivedAt` is given — re-archived with a newer stamp than the one judged.
76
185
  */
77
- export declare function purgeOldArchivedThreads(db: Database, maxAgeMs?: number): number;
186
+ export declare function markThreadPurging(db: Database, threadId: number, archivedAt?: string): Optional<string>;
187
+ /** True while a purge owns the row (markThreadPurging): every door refuses it. */
188
+ export declare function isThreadMarkedForPurge(db: Database, threadId: number): boolean;
189
+ /** The mark a purge holds on the row now, or empty when none does. */
190
+ export declare function threadPurgeMark(db: Database, threadId: number): Optional<string>;
191
+ /**
192
+ * What a start's claim on a thread row found:
193
+ * - "claimed": the row was resting (`previous`) and is now `claimedAs`, so the
194
+ * start owns it and must hand it back (releaseThreadStart) if it does not go
195
+ * ahead;
196
+ * - "free": nothing to take — no row yet, or a row a process is already on;
197
+ * - "starting": the row is 'spawning' — another start holds it between its
198
+ * claim and its spawn's answer. A spawning start (start_thread, dashboard
199
+ * /start) must refuse ("already starting") rather than write the same id's
200
+ * files beside it (inc66 M3); start_session attaches instead, taking nothing;
201
+ * - "purging": a purge owns the row, and the start must refuse.
202
+ */
203
+ export type ThreadStartClaim = {
204
+ kind: "claimed";
205
+ previous: string;
206
+ claimedAs: "spawning" | "active";
207
+ } | {
208
+ kind: "free";
209
+ } | {
210
+ kind: "starting";
211
+ } | {
212
+ kind: "purging";
213
+ };
214
+ /**
215
+ * Every start of an existing id calls this BEFORE its first file write. It flips
216
+ * a resting row to `status` ('spawning' for a spawn, 'active' for a session that
217
+ * revives its thread), which is a state a purge refuses to mark. Synchronous and
218
+ * in one transaction, so the read, the flip and the note restore see the same row.
219
+ * A revived ARCHIVED row gets its archived notes back, exactly as unarchiveThread.
220
+ */
221
+ export declare function claimThreadStart(db: Database, threadId: number, status: "spawning" | "active"): ThreadStartClaim;
222
+ /** Hand a claimed row back to the status it was taken from when its start failed. */
223
+ export declare function releaseThreadStart(db: Database, threadId: number, claim: ThreadStartClaim): void;
224
+ /**
225
+ * Delete ONE thread's entire DB footprint — the registry row, then every table in
226
+ * THREAD_DEPENDENT_DELETES — in a single transaction. This is the LAST step of a
227
+ * purge: only a row still carrying the exact mark `purgingAt` this purge holds is
228
+ * deleted, so a row nobody marked, one a start took first, or a successor's row
229
+ * marked again matches nothing and the purge touches no dependent row. A row
230
+ * already gone means another purge finished it, and anything still keyed to the
231
+ * id is an orphan, which this cleans up. Returns true when this call deleted the
232
+ * registry row.
233
+ *
234
+ * DB only. On-disk per-thread artifacts are purgeThreadFiles' job
235
+ * (src/services/thread-purge.service.ts), and they are removed BEFORE this runs.
236
+ */
237
+ export declare function purgeThread(db: Database, threadId: number, purgingAt: string): boolean;
238
+ /** Rows a purge marked and has not finished, with each mark: a crash between
239
+ * mark and row delete, a leftover that kept the rows, or a purge still awaiting
240
+ * its file work. */
241
+ export declare function selectThreadsMidPurge(db: Database): {
242
+ threadId: number;
243
+ purgingAt: string;
244
+ }[];
245
+ /**
246
+ * One archived row carrying an archive anchor, STRAIGHT FROM THE DB AND
247
+ * UNVALIDATED. The column types are what the schema declares, not what SQLite
248
+ * enforces: `thread_id` becomes a filesystem path segment and `archived_at`
249
+ * decides whether a thread is old enough to destroy, so the purge service
250
+ * validates both before either is used (isPurgeableThreadId and archiveAnchorMs
251
+ * in sweepOldArchivedThreads).
252
+ */
253
+ export interface AnchoredArchivedRow {
254
+ threadId: number;
255
+ archivedAt: string;
256
+ }
257
+ /**
258
+ * Every archived thread that has an archive anchor — NOT a cutoff query, and
259
+ * nothing is deleted here. The age test lives in the sweep, in JavaScript, on
260
+ * parsed instants: `archived_at < cutoff` in SQL is a TEXT comparison, so a
261
+ * stamp that is not a canonical UTC ISO instant (`...-02:00`, a different
262
+ * precision) compares by characters rather than by time, and this is the
263
+ * predicate of an unattended delete.
264
+ *
265
+ * The sweep also has to gate each candidate on liveness — an async question no
266
+ * SQLite transaction can hold open — which is why selection and deletion are
267
+ * separate calls at all: `sweepOldArchivedThreads` in
268
+ * services/thread-purge.service.ts selects, validates, gates, marks, then purges.
269
+ *
270
+ * ANCHORED ON `archived_at`, NOT `last_active_at`. "730 days of grace after
271
+ * archiving" is what the window means, and last activity does not express it: a
272
+ * thread archived today whose last message was three years ago was eligible on
273
+ * the very next sweep. Every archived row has an anchor: updateThread derives it
274
+ * from the status, and migration 40 stamped the rows archived before it did.
275
+ */
276
+ export declare function selectAnchoredArchivedThreads(db: Database): AnchoredArchivedRow[];
78
277
  /**
79
278
  * Reset the daily session timestamp for a thread.
80
279
  * Sets session_reset_at = now, used by bootstrap to filter the message buffer.
81
280
  */
82
281
  export declare function resetDailySession(db: Database, threadId: number): boolean;
83
282
  /**
84
- * Mark a thread's session as running (clean_shutdown = 0). Called at session
85
- * start; if the process dies before a graceful exit flips it back to 1, the
86
- * next resume sees 0 and knows the previous session was interrupted.
283
+ * Mark a thread's session as running (clean_shutdown = 0). Called from
284
+ * start_session, and the only write that clears the flag.
285
+ *
286
+ * The column now carries ONE meaning that code acts on: 0 = "the process
287
+ * currently attached to this thread reached start_session". spawn-common's
288
+ * registerSpawnedProcess sets it back to 1 for every new process, and the
289
+ * birth-death respawn net reads it to tell a thread that died before it ever
290
+ * registered from one that ran and then exited. (Its original job — letting the
291
+ * next resume notice an interrupted session — is handled by the memory
292
+ * briefing's self-judge prompt instead.)
87
293
  */
88
294
  export declare function markSessionRunning(db: Database, threadId: number): boolean;
89
295
  /**
@@ -91,8 +297,13 @@ export declare function markSessionRunning(db: Database, threadId: number): bool
91
297
  * alive at graceful exit (SIGTERM/SIGINT, maintenance restart), so a planned
92
298
  * server stop is not mistaken for a crash by the threads it takes down.
93
299
  * A thread that had already crashed lingers as status='active' but is absent
94
- * from aliveThreadIds, so its clean_shutdown stays 0 and the next resume
95
- * correctly detects the interruption. An empty list marks nothing.
300
+ * from aliveThreadIds, so its flag stays 0. An empty list marks nothing.
301
+ *
302
+ * In the {@link markSessionRunning} reading this says "no live process of ours
303
+ * is registered on that thread any more", which is true — the server is exiting.
304
+ * Agent children are detached and outlive it, so nothing re-reads the flag until
305
+ * they are re-adopted or respawned, and the respawn net's uptime window keeps a
306
+ * long-lived survivor out of scope.
96
307
  */
97
308
  export declare function markAliveThreadsCleanShutdown(db: Database, aliveThreadIds: number[]): number;
98
309
  /**
@@ -108,9 +319,113 @@ export declare function resolveTelegramTopicId(db: Database, threadId: number):
108
319
  */
109
320
  export declare function getExplicitTelegramTopicId(db: Database, threadId: number): number | null;
110
321
  /**
111
- * Backfill thread names from topic_registry for threads with empty/missing names.
112
- * Returns the number of threads updated.
322
+ * Record that `topicId` is gone by clearing the thread's stored pointer — only while
323
+ * the pointer still names `topicId`. A compare-and-clear, because every caller clears
324
+ * after an AWAITED delete: a pointer written in the meantime (the dashboard PATCH)
325
+ * names a topic that caller never deleted, and blanking it would hide that topic from
326
+ * the orphan sweep, which selects only stored pointers. Returns whether it cleared.
327
+ */
328
+ export declare function clearTelegramTopicIdIfStill(db: Database, threadId: number, topicId: number): boolean;
329
+ /**
330
+ * The topic number a DESTRUCTIVE teardown may aim at, stated once so no call site
331
+ * has to guess. Three arms, and the third is the point:
332
+ *
333
+ * 1. the explicit pointer when the row carries one — the only positive evidence of
334
+ * which topic this thread owns;
335
+ * 2. else the thread id itself, but ONLY below {@link MINTED_THREAD_ID_FLOOR}: a
336
+ * NULL column on a topic-numbered thread means the id IS the topic, which is
337
+ * still true of every thread not born on the board's minting path;
338
+ * 3. else NOTHING. A minted id is not a topic number — the floor sits above int32
339
+ * and Telegram topic ids are int32 — so falling back to it aims the delete at a
340
+ * number no topic can have. Telegram answers TOPIC_ID_INVALID, which teardown
341
+ * reads as "already gone", and the real topic is archived out of reach of every
342
+ * sweep that looks for a stored pointer. Returning nothing is safe precisely
343
+ * because no topic is recorded: there is no delete to retry later, so a caller
344
+ * may treat the empty answer as a reached end state rather than a failure.
345
+ *
346
+ * Arm 2 becomes dead code once no below-floor worker remains.
347
+ */
348
+ export declare function resolveDeletableTelegramTopicId(db: Database, threadId: number): Optional<number>;
349
+ /**
350
+ * The liveness predicate for a Telegram topic: which OTHER live thread, if any,
351
+ * still claims `topicId`.
352
+ *
353
+ * A Telegram topic is a shared, externally owned, DESTRUCTIVE resource, and this
354
+ * is the one question every delete site must ask first. Three separate paths
355
+ * (a stale `decommissionWorker` that continued past a failed transition, the
356
+ * periodic archived-worker orphan sweep, and the dashboard archive/hard-delete
357
+ * route) each resolved a topic and deleted it while a live thread still owned it,
358
+ * because each checked only its OWN row.
359
+ *
360
+ * Two arms, both load-bearing:
361
+ * - `telegram_topic_id = ?` — the explicit claim.
362
+ * - `telegram_topic_id IS NULL AND thread_id = ?` — the IMPLICIT claim.
363
+ * `resolveTelegramTopicId` reads a NULL column as "my topic is my thread_id",
364
+ * so a live row with a NULL column genuinely owns that topic number. Without
365
+ * this arm the orphan sweep can delete a live thread's topic.
366
+ *
367
+ * `excludingThreadId` is the thread doing the deleting: it must never count
368
+ * itself as a claimant, or the ordinary case (a row tearing down the topic it
369
+ * alone holds) would stop deleting anything at all.
370
+ *
371
+ * Synchronous, like every other read here — which is what lets the dashboard's
372
+ * sync `handleDeleteThread` gate its fire-and-forget delete without becoming
373
+ * async and without moving its response.
374
+ */
375
+ export declare function liveThreadClaimingTopic(db: Database, topicId: number, excludingThreadId: number): Optional<number>;
376
+ /**
377
+ * The routing half of the ownership question: which thread, if any, should
378
+ * receive a message that arrived in `topicId`.
379
+ *
380
+ * TWO STAGES, and the priority between them is the point:
381
+ * 1. the LIVE owner — `TERMINAL_TOPIC_STATUSES` excluded, as the delete gate
382
+ * does;
383
+ * 2. only when stage 1 is empty, the `exited` row that explicitly claims it.
384
+ *
385
+ * The stages are two SEQUENTIAL QUERIES with an early return, NOT an ordering
386
+ * inside one SELECT, and the distinction is worth stating because the paragraph
387
+ * below argues against an `ORDER BY`. The thing rejected there is an ARBITRARY
388
+ * tiebreak between rows no requirement ranks; this is a named priority between
389
+ * two different QUESTIONS, asked in order. A reader must not take one for the
390
+ * other.
391
+ *
392
+ * LIVE ALWAYS BEATS EXITED. That ordering is what stops a dead predecessor
393
+ * stealing a live successor's messages when both claim one topic — a state the
394
+ * dashboard PATCH route makes reachable today, and one that mint-once thread ids
395
+ * will GUARANTEE, since every respawn then has an exited row and a live row on
396
+ * the same topic by design.
397
+ *
398
+ * Stage 2 admits `exited` and only `exited`. `exited` → Active is a legal
399
+ * transition (`VALID_TRANSITIONS`), the dashboard permits starting an exited
400
+ * thread, and the wait poll loop evicts a parked agent only on `archived` /
401
+ * `expired` — so an exited row is one that may still be listening at its logical
402
+ * id, or be resumed to consume its backlog, while a message left at
403
+ * `<topicId>.jsonl` is read by nothing. `expired` stays OUT because `expired` →
404
+ * Active is structurally forbidden (Expired goes only to Archived) and the
405
+ * dashboard refuses to start it; `archived` stays OUT because an archived thread
406
+ * resumes by being REMAPPED onto a new topic while its old one is torn down by
407
+ * design.
408
+ *
409
+ * Only the EXPLICIT claim, in both stages. `liveThreadClaimingTopic`'s second arm
410
+ * (`telegram_topic_id IS NULL AND thread_id = ?`) is dead for routing: it can
411
+ * only ever answer `thread_id`, which equals `topicId`, which is already what the
412
+ * caller falls back to when this returns empty.
413
+ *
414
+ * No ORDER BY, matching the sibling. No LIFECYCLE writer can give two rows the
415
+ * same explicit `telegram_topic_id`: the column's one write seam is
416
+ * `updateThread`, every lifecycle caller writes either the row's own `thread_id`
417
+ * or an id Telegram just minted for that write, and the orphan sweep and
418
+ * `decommissionWorker` only clear.
419
+ * Minted ids are assumed unique within the configured chat — Telegram's
420
+ * numbering, not ours; unenforced here, and void if this registry is ever pointed
421
+ * at a different chat. The dashboard PATCH route (`buildThreadUpdates`) is the
422
+ * known exception: it writes any number the operator sends, so a two-claimant
423
+ * pair is operator-reachable, and WITHIN one stage this query then returns
424
+ * whichever row SQLite scans first — exactly the base behaviour. An ORDER BY
425
+ * would encode a winner no requirement names. The typed-open
426
+ * `ActivateThreadInput` / `TouchThreadInput` seam accepts a `telegramTopicId`
427
+ * too, with no production caller passing one today.
113
428
  */
114
- export declare function backfillMissingNames(db: Database): number;
429
+ export declare function threadOwningTopic(db: Database, topicId: number): Optional<number>;
115
430
  export {};
116
431
  //# sourceMappingURL=thread-registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"thread-registry.d.ts","sourceRoot":"","sources":["../../../src/data/memory/thread-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"thread-registry.d.ts","sourceRoot":"","sources":["../../../src/data/memory/thread-registry.ts"],"names":[],"mappings":"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"}