@maudecode/talaria-web 1.17.2 → 1.19.0

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 (623) hide show
  1. package/_release.json +8 -8
  2. package/dist/api/auth-raw.d.ts +1 -1
  3. package/dist/api/auth-raw.js +20 -20
  4. package/dist/api/auth-raw.js.map +1 -1
  5. package/dist/api/automation-raw.d.ts +7 -1
  6. package/dist/api/automation-raw.js +74 -27
  7. package/dist/api/automation-raw.js.map +1 -1
  8. package/dist/api/automation-router.d.ts +128 -23
  9. package/dist/api/automation-router.js +29 -13
  10. package/dist/api/automation-router.js.map +1 -1
  11. package/dist/api/chat-router.d.ts +1845 -40
  12. package/dist/api/chat-router.js +196 -114
  13. package/dist/api/chat-router.js.map +1 -1
  14. package/dist/api/git-router.d.ts +37 -3
  15. package/dist/api/git-router.js +47 -48
  16. package/dist/api/git-router.js.map +1 -1
  17. package/dist/api/raw-routes.d.ts +9 -1
  18. package/dist/api/raw-routes.js +286 -73
  19. package/dist/api/raw-routes.js.map +1 -1
  20. package/dist/api/router.d.ts +16 -6
  21. package/dist/api/router.js +28 -26
  22. package/dist/api/router.js.map +1 -1
  23. package/dist/api/session-visibility.d.ts +4 -4
  24. package/dist/api/session-visibility.js +26 -16
  25. package/dist/api/session-visibility.js.map +1 -1
  26. package/dist/api/sessions-router.d.ts +3312 -131
  27. package/dist/api/sessions-router.js +287 -157
  28. package/dist/api/sessions-router.js.map +1 -1
  29. package/dist/api/settings-router.d.ts +457 -8
  30. package/dist/api/settings-router.js +54 -33
  31. package/dist/api/settings-router.js.map +1 -1
  32. package/dist/api/sse-routes.d.ts +7 -2
  33. package/dist/api/sse-routes.js +109 -62
  34. package/dist/api/sse-routes.js.map +1 -1
  35. package/dist/api/tools-raw.d.ts +5 -0
  36. package/dist/api/tools-raw.js +63 -55
  37. package/dist/api/tools-raw.js.map +1 -1
  38. package/dist/api/tools-router.d.ts +998 -85
  39. package/dist/api/tools-router.js +447 -61
  40. package/dist/api/tools-router.js.map +1 -1
  41. package/dist/api/transcribe-stream.d.ts +16 -0
  42. package/dist/api/transcribe-stream.js +172 -0
  43. package/dist/api/transcribe-stream.js.map +1 -0
  44. package/dist/app.d.ts +4 -1
  45. package/dist/app.js +98 -59
  46. package/dist/app.js.map +1 -1
  47. package/dist/auth/gate.js +15 -11
  48. package/dist/auth/gate.js.map +1 -1
  49. package/dist/auth/oidc.d.ts +5 -2
  50. package/dist/auth/oidc.js +8 -7
  51. package/dist/auth/oidc.js.map +1 -1
  52. package/dist/auth/passkeys.d.ts +15 -14
  53. package/dist/auth/passkeys.js +89 -91
  54. package/dist/auth/passkeys.js.map +1 -1
  55. package/dist/auth/store.d.ts +17 -7
  56. package/dist/auth/store.js +93 -52
  57. package/dist/auth/store.js.map +1 -1
  58. package/dist/bin/talaria-web.js +12 -81
  59. package/dist/bin/talaria-web.js.map +1 -1
  60. package/dist/cli/ctl.js +2 -1
  61. package/dist/cli/ctl.js.map +1 -1
  62. package/dist/cli/dotenv.d.ts +5 -0
  63. package/dist/cli/dotenv.js +15 -2
  64. package/dist/cli/dotenv.js.map +1 -1
  65. package/dist/cli/launcher.js +5 -5
  66. package/dist/cli/launcher.js.map +1 -1
  67. package/dist/cli/main.d.ts +1 -0
  68. package/dist/cli/main.js +85 -0
  69. package/dist/cli/main.js.map +1 -0
  70. package/dist/cli/supervise.d.ts +2 -0
  71. package/dist/cli/supervise.js +67 -4
  72. package/dist/cli/supervise.js.map +1 -1
  73. package/dist/config/agent-config.d.ts +34 -11
  74. package/dist/config/agent-config.js +116 -60
  75. package/dist/config/agent-config.js.map +1 -1
  76. package/dist/config.d.ts +4 -0
  77. package/dist/config.js +19 -6
  78. package/dist/config.js.map +1 -1
  79. package/dist/fs/atomic.d.ts +1 -0
  80. package/dist/fs/atomic.js +4 -1
  81. package/dist/fs/atomic.js.map +1 -1
  82. package/dist/fs/stat.d.ts +1 -0
  83. package/dist/fs/stat.js +11 -0
  84. package/dist/fs/stat.js.map +1 -0
  85. package/dist/http/context.d.ts +31 -12
  86. package/dist/http/context.js +60 -24
  87. package/dist/http/context.js.map +1 -1
  88. package/dist/http/csp.d.ts +2 -1
  89. package/dist/http/csp.js +3 -2
  90. package/dist/http/csp.js.map +1 -1
  91. package/dist/onboarding.d.ts +2 -2
  92. package/dist/onboarding.js +10 -8
  93. package/dist/onboarding.js.map +1 -1
  94. package/dist/profiles/profiles.d.ts +20 -4
  95. package/dist/profiles/profiles.js +115 -30
  96. package/dist/profiles/profiles.js.map +1 -1
  97. package/dist/projects.d.ts +15 -6
  98. package/dist/projects.js +55 -47
  99. package/dist/projects.js.map +1 -1
  100. package/dist/providers/catalog.d.ts +84 -14
  101. package/dist/providers/catalog.js +474 -151
  102. package/dist/providers/catalog.js.map +1 -1
  103. package/dist/providers/env-file.d.ts +10 -3
  104. package/dist/providers/env-file.js +24 -75
  105. package/dist/providers/env-file.js.map +1 -1
  106. package/dist/providers/runtime-env.d.ts +4 -2
  107. package/dist/providers/runtime-env.js +9 -6
  108. package/dist/providers/runtime-env.js.map +1 -1
  109. package/dist/providers/tables.d.ts +3 -1
  110. package/dist/providers/tables.js +4 -2
  111. package/dist/providers/tables.js.map +1 -1
  112. package/dist/raster-image.d.ts +7 -0
  113. package/dist/raster-image.js +267 -0
  114. package/dist/raster-image.js.map +1 -0
  115. package/dist/redact.js +342 -46
  116. package/dist/redact.js.map +1 -1
  117. package/dist/release.d.ts +7 -0
  118. package/dist/release.js +14 -0
  119. package/dist/release.js.map +1 -1
  120. package/dist/runtime.d.ts +5 -1
  121. package/dist/runtime.js +305 -96
  122. package/dist/runtime.js.map +1 -1
  123. package/dist/server.js +15 -0
  124. package/dist/server.js.map +1 -1
  125. package/dist/sessions/anchor.d.ts +9 -3
  126. package/dist/sessions/anchor.js +28 -36
  127. package/dist/sessions/anchor.js.map +1 -1
  128. package/dist/sessions/background-events.d.ts +2 -0
  129. package/dist/sessions/background-events.js +10 -0
  130. package/dist/sessions/background-events.js.map +1 -0
  131. package/dist/sessions/background-tasks.d.ts +26 -27
  132. package/dist/sessions/background-tasks.js +89 -97
  133. package/dist/sessions/background-tasks.js.map +1 -1
  134. package/dist/sessions/background-updates.d.ts +15 -8
  135. package/dist/sessions/background-updates.js +101 -25
  136. package/dist/sessions/background-updates.js.map +1 -1
  137. package/dist/sessions/cli-sessions.d.ts +27 -6
  138. package/dist/sessions/cli-sessions.js +152 -42
  139. package/dist/sessions/cli-sessions.js.map +1 -1
  140. package/dist/sessions/completions.d.ts +77 -9
  141. package/dist/sessions/completions.js +482 -45
  142. package/dist/sessions/completions.js.map +1 -1
  143. package/dist/sessions/compress.d.ts +8 -0
  144. package/dist/sessions/compress.js +2 -2
  145. package/dist/sessions/compress.js.map +1 -1
  146. package/dist/sessions/drafts.d.ts +14 -10
  147. package/dist/sessions/drafts.js +38 -43
  148. package/dist/sessions/drafts.js.map +1 -1
  149. package/dist/sessions/export.d.ts +5 -0
  150. package/dist/sessions/export.js +30 -0
  151. package/dist/sessions/export.js.map +1 -1
  152. package/dist/sessions/gateway-sessions.d.ts +46 -0
  153. package/dist/sessions/gateway-sessions.js +378 -0
  154. package/dist/sessions/gateway-sessions.js.map +1 -0
  155. package/dist/sessions/gateway-watcher.d.ts +7 -3
  156. package/dist/sessions/gateway-watcher.js +31 -19
  157. package/dist/sessions/gateway-watcher.js.map +1 -1
  158. package/dist/sessions/goals.d.ts +31 -0
  159. package/dist/sessions/goals.js +75 -0
  160. package/dist/sessions/goals.js.map +1 -0
  161. package/dist/sessions/handoff.d.ts +32 -0
  162. package/dist/sessions/handoff.js +114 -0
  163. package/dist/sessions/handoff.js.map +1 -0
  164. package/dist/sessions/journal.d.ts +5 -79
  165. package/dist/sessions/journal.js +15 -606
  166. package/dist/sessions/journal.js.map +1 -1
  167. package/dist/sessions/list.d.ts +31 -16
  168. package/dist/sessions/list.js +139 -129
  169. package/dist/sessions/list.js.map +1 -1
  170. package/dist/sessions/merge.d.ts +69 -13
  171. package/dist/sessions/merge.js +265 -64
  172. package/dist/sessions/merge.js.map +1 -1
  173. package/dist/sessions/notices.d.ts +22 -0
  174. package/dist/sessions/notices.js +72 -0
  175. package/dist/sessions/notices.js.map +1 -0
  176. package/dist/sessions/pending.d.ts +10 -4
  177. package/dist/sessions/pending.js +83 -7
  178. package/dist/sessions/pending.js.map +1 -1
  179. package/dist/sessions/prefix-index.d.ts +82 -0
  180. package/dist/sessions/prefix-index.js +232 -0
  181. package/dist/sessions/prefix-index.js.map +1 -0
  182. package/dist/sessions/recovery.d.ts +19 -0
  183. package/dist/sessions/recovery.js +322 -0
  184. package/dist/sessions/recovery.js.map +1 -0
  185. package/dist/sessions/relay.d.ts +38 -19
  186. package/dist/sessions/relay.js +302 -79
  187. package/dist/sessions/relay.js.map +1 -1
  188. package/dist/sessions/service.d.ts +260 -55
  189. package/dist/sessions/service.js +1448 -462
  190. package/dist/sessions/service.js.map +1 -1
  191. package/dist/sessions/session.d.ts +24 -2
  192. package/dist/sessions/session.js +69 -7
  193. package/dist/sessions/session.js.map +1 -1
  194. package/dist/sessions/shares.d.ts +7 -6
  195. package/dist/sessions/shares.js +22 -45
  196. package/dist/sessions/shares.js.map +1 -1
  197. package/dist/sessions/source-kind.js +1 -0
  198. package/dist/sessions/source-kind.js.map +1 -1
  199. package/dist/sessions/state-db-identity.d.ts +18 -0
  200. package/dist/sessions/state-db-identity.js +67 -0
  201. package/dist/sessions/state-db-identity.js.map +1 -0
  202. package/dist/sessions/state-db-worker.d.ts +1 -0
  203. package/dist/sessions/state-db-worker.js +35 -0
  204. package/dist/sessions/state-db-worker.js.map +1 -0
  205. package/dist/sessions/state-db.d.ts +113 -7
  206. package/dist/sessions/state-db.js +861 -44
  207. package/dist/sessions/state-db.js.map +1 -1
  208. package/dist/sessions/storage/backend.d.ts +162 -0
  209. package/dist/sessions/storage/backend.js +19 -0
  210. package/dist/sessions/storage/backend.js.map +1 -0
  211. package/dist/sessions/storage/conformance.d.ts +20 -0
  212. package/dist/sessions/storage/conformance.js +237 -0
  213. package/dist/sessions/storage/conformance.js.map +1 -0
  214. package/dist/sessions/storage/document.d.ts +16 -0
  215. package/dist/sessions/storage/document.js +44 -0
  216. package/dist/sessions/storage/document.js.map +1 -0
  217. package/dist/sessions/storage/json-documents.d.ts +23 -0
  218. package/dist/sessions/storage/json-documents.js +233 -0
  219. package/dist/sessions/storage/json-documents.js.map +1 -0
  220. package/dist/sessions/storage/json-files.d.ts +12 -0
  221. package/dist/sessions/storage/json-files.js +124 -0
  222. package/dist/sessions/storage/json-files.js.map +1 -0
  223. package/dist/sessions/storage/json-installation.d.ts +3 -0
  224. package/dist/sessions/storage/json-installation.js +31 -0
  225. package/dist/sessions/storage/json-installation.js.map +1 -0
  226. package/dist/sessions/storage/json-journal.d.ts +114 -0
  227. package/dist/sessions/storage/json-journal.js +686 -0
  228. package/dist/sessions/storage/json-journal.js.map +1 -0
  229. package/dist/sessions/storage/json-recovery.d.ts +4 -0
  230. package/dist/sessions/storage/json-recovery.js +195 -0
  231. package/dist/sessions/storage/json-recovery.js.map +1 -0
  232. package/dist/sessions/storage/json.d.ts +68 -0
  233. package/dist/sessions/storage/json.js +258 -0
  234. package/dist/sessions/storage/json.js.map +1 -0
  235. package/dist/sessions/storage/row.d.ts +6 -0
  236. package/dist/sessions/storage/row.js +49 -0
  237. package/dist/sessions/storage/row.js.map +1 -0
  238. package/dist/sessions/storage/search-text.d.ts +4 -0
  239. package/dist/sessions/storage/search-text.js +16 -0
  240. package/dist/sessions/storage/search-text.js.map +1 -0
  241. package/dist/sessions/store.d.ts +65 -68
  242. package/dist/sessions/store.js +305 -602
  243. package/dist/sessions/store.js.map +1 -1
  244. package/dist/sessions/streams.d.ts +4 -0
  245. package/dist/sessions/streams.js +9 -1
  246. package/dist/sessions/streams.js.map +1 -1
  247. package/dist/sessions/titles.d.ts +2 -0
  248. package/dist/sessions/titles.js +5 -1
  249. package/dist/sessions/titles.js.map +1 -1
  250. package/dist/sessions/todo.d.ts +5 -0
  251. package/dist/sessions/todo.js +28 -21
  252. package/dist/sessions/todo.js.map +1 -1
  253. package/dist/sessions/tool-display.d.ts +5 -4
  254. package/dist/sessions/tool-display.js +30 -50
  255. package/dist/sessions/tool-display.js.map +1 -1
  256. package/dist/sessions/turn-context.d.ts +11 -2
  257. package/dist/sessions/turn-context.js +18 -11
  258. package/dist/sessions/turn-context.js.map +1 -1
  259. package/dist/sessions/turn.d.ts +122 -17
  260. package/dist/sessions/turn.js +939 -358
  261. package/dist/sessions/turn.js.map +1 -1
  262. package/dist/sessions/wakeup-pause.d.ts +54 -0
  263. package/dist/sessions/wakeup-pause.js +163 -0
  264. package/dist/sessions/wakeup-pause.js.map +1 -0
  265. package/dist/sessions/window.js +13 -12
  266. package/dist/sessions/window.js.map +1 -1
  267. package/dist/settings.d.ts +19 -7
  268. package/dist/settings.js +178 -184
  269. package/dist/settings.js.map +1 -1
  270. package/dist/sidecar/client.d.ts +17 -3
  271. package/dist/sidecar/client.js +78 -8
  272. package/dist/sidecar/client.js.map +1 -1
  273. package/dist/sidecar/discover.d.ts +2 -1
  274. package/dist/sidecar/discover.js +93 -10
  275. package/dist/sidecar/discover.js.map +1 -1
  276. package/dist/sidecar/env.d.ts +4 -0
  277. package/dist/sidecar/env.js +3 -0
  278. package/dist/sidecar/env.js.map +1 -0
  279. package/dist/sidecar/fake.d.ts +2 -2
  280. package/dist/sidecar/fake.js +19 -2
  281. package/dist/sidecar/fake.js.map +1 -1
  282. package/dist/startup.d.ts +13 -5
  283. package/dist/startup.js +48 -0
  284. package/dist/startup.js.map +1 -1
  285. package/dist/test/env-file.d.ts +5 -0
  286. package/dist/test/env-file.js +88 -0
  287. package/dist/test/env-file.js.map +1 -0
  288. package/dist/test/harness.d.ts +1 -0
  289. package/dist/test/harness.js +1 -1
  290. package/dist/test/harness.js.map +1 -1
  291. package/dist/test/passkeys.d.ts +22 -0
  292. package/dist/test/passkeys.js +62 -0
  293. package/dist/test/passkeys.js.map +1 -0
  294. package/dist/test/storage.d.ts +15 -0
  295. package/dist/test/storage.js +26 -0
  296. package/dist/test/storage.js.map +1 -0
  297. package/dist/test/ts-worker-hooks.d.ts +1 -0
  298. package/dist/test/ts-worker-hooks.js +24 -0
  299. package/dist/test/ts-worker-hooks.js.map +1 -0
  300. package/dist/text/diff.d.ts +9 -14
  301. package/dist/text/diff.js +74 -108
  302. package/dist/text/diff.js.map +1 -1
  303. package/dist/tools/commands.d.ts +6 -1
  304. package/dist/tools/commands.js +8 -2
  305. package/dist/tools/commands.js.map +1 -1
  306. package/dist/tools/connectors.d.ts +33 -0
  307. package/dist/tools/connectors.js +121 -0
  308. package/dist/tools/connectors.js.map +1 -0
  309. package/dist/tools/crons.d.ts +38 -1
  310. package/dist/tools/crons.js +122 -18
  311. package/dist/tools/crons.js.map +1 -1
  312. package/dist/tools/dashboard-plugins.d.ts +53 -0
  313. package/dist/tools/dashboard-plugins.js +188 -0
  314. package/dist/tools/dashboard-plugins.js.map +1 -0
  315. package/dist/tools/extensions.d.ts +18 -5
  316. package/dist/tools/extensions.js +344 -266
  317. package/dist/tools/extensions.js.map +1 -1
  318. package/dist/tools/gateway-restart.d.ts +62 -0
  319. package/dist/tools/gateway-restart.js +142 -0
  320. package/dist/tools/gateway-restart.js.map +1 -0
  321. package/dist/tools/health.d.ts +44 -0
  322. package/dist/tools/health.js +201 -46
  323. package/dist/tools/health.js.map +1 -1
  324. package/dist/tools/hygiene.d.ts +4 -3
  325. package/dist/tools/hygiene.js +23 -9
  326. package/dist/tools/hygiene.js.map +1 -1
  327. package/dist/tools/kanban.d.ts +4 -2
  328. package/dist/tools/kanban.js +28 -19
  329. package/dist/tools/kanban.js.map +1 -1
  330. package/dist/tools/mcp.d.ts +13 -0
  331. package/dist/tools/mcp.js +88 -0
  332. package/dist/tools/mcp.js.map +1 -1
  333. package/dist/tools/memory-masks.d.ts +5 -0
  334. package/dist/tools/memory-masks.js +256 -0
  335. package/dist/tools/memory-masks.js.map +1 -0
  336. package/dist/tools/memory.d.ts +29 -3
  337. package/dist/tools/memory.js +69 -27
  338. package/dist/tools/memory.js.map +1 -1
  339. package/dist/tools/plugin-settings.d.ts +15 -0
  340. package/dist/tools/plugin-settings.js +90 -0
  341. package/dist/tools/plugin-settings.js.map +1 -0
  342. package/dist/tools/project-os.d.ts +11 -0
  343. package/dist/tools/project-os.js +267 -0
  344. package/dist/tools/project-os.js.map +1 -0
  345. package/dist/tools/skills.d.ts +14 -5
  346. package/dist/tools/skills.js +49 -16
  347. package/dist/tools/skills.js.map +1 -1
  348. package/dist/tools/update-notifications.d.ts +34 -15
  349. package/dist/tools/update-notifications.js +141 -57
  350. package/dist/tools/update-notifications.js.map +1 -1
  351. package/dist/tools/update-rollback.d.ts +11 -0
  352. package/dist/tools/update-rollback.js +28 -0
  353. package/dist/tools/update-rollback.js.map +1 -0
  354. package/dist/tools/updates.d.ts +110 -32
  355. package/dist/tools/updates.js +1112 -294
  356. package/dist/tools/updates.js.map +1 -1
  357. package/dist/tools/wiki.d.ts +68 -0
  358. package/dist/tools/wiki.js +413 -0
  359. package/dist/tools/wiki.js.map +1 -0
  360. package/dist/util.d.ts +2 -0
  361. package/dist/util.js +5 -0
  362. package/dist/util.js.map +1 -1
  363. package/dist/workspace/escape.d.ts +61 -0
  364. package/dist/workspace/escape.js +149 -0
  365. package/dist/workspace/escape.js.map +1 -0
  366. package/dist/workspace/extract.d.ts +22 -0
  367. package/dist/workspace/extract.js +308 -0
  368. package/dist/workspace/extract.js.map +1 -0
  369. package/dist/workspace/fs.d.ts +12 -0
  370. package/dist/workspace/fs.js +92 -23
  371. package/dist/workspace/fs.js.map +1 -1
  372. package/dist/workspace/git.d.ts +34 -1
  373. package/dist/workspace/git.js +328 -35
  374. package/dist/workspace/git.js.map +1 -1
  375. package/dist/workspace/media.d.ts +16 -13
  376. package/dist/workspace/media.js +43 -61
  377. package/dist/workspace/media.js.map +1 -1
  378. package/dist/workspace/rollback.d.ts +36 -22
  379. package/dist/workspace/rollback.js +178 -272
  380. package/dist/workspace/rollback.js.map +1 -1
  381. package/dist/workspace/unzip.js +4 -1
  382. package/dist/workspace/unzip.js.map +1 -1
  383. package/dist/workspace/upload.d.ts +7 -4
  384. package/dist/workspace/upload.js +5 -2
  385. package/dist/workspace/upload.js.map +1 -1
  386. package/dist/workspace/workspaces.d.ts +15 -19
  387. package/dist/workspace/workspaces.js +55 -127
  388. package/dist/workspace/workspaces.js.map +1 -1
  389. package/dist/workspace/worktrees.d.ts +2 -1
  390. package/dist/workspace/worktrees.js +179 -42
  391. package/dist/workspace/worktrees.js.map +1 -1
  392. package/package.json +7 -3
  393. package/sidecar/agent_dependency.json +4 -4
  394. package/sidecar/agent_support.json +26 -0
  395. package/sidecar/scripts/record-fixtures.py +12 -3
  396. package/sidecar/scripts/replay_sidecar.py +32 -0
  397. package/sidecar/scripts/suite_runner.py +302 -0
  398. package/sidecar/scripts/test.sh +12 -4
  399. package/sidecar/talaria_sidecar/__init__.py +6 -1
  400. package/sidecar/talaria_sidecar/__main__.py +4 -2
  401. package/sidecar/talaria_sidecar/agent_mutation.py +975 -0
  402. package/sidecar/talaria_sidecar/agent_services.py +1053 -0
  403. package/sidecar/talaria_sidecar/dependency_sync.py +85 -0
  404. package/sidecar/talaria_sidecar/home.py +56 -3
  405. package/sidecar/talaria_sidecar/methods/__init__.py +2 -2
  406. package/sidecar/talaria_sidecar/methods/aux.py +166 -24
  407. package/sidecar/talaria_sidecar/methods/chat.py +852 -135
  408. package/sidecar/talaria_sidecar/methods/checkpoints.py +89 -0
  409. package/sidecar/talaria_sidecar/methods/commands.py +294 -4
  410. package/sidecar/talaria_sidecar/methods/config.py +123 -4
  411. package/sidecar/talaria_sidecar/methods/connectors.py +343 -0
  412. package/sidecar/talaria_sidecar/methods/cron.py +395 -36
  413. package/sidecar/talaria_sidecar/methods/cron_execution.py +284 -0
  414. package/sidecar/talaria_sidecar/methods/gateway.py +212 -55
  415. package/sidecar/talaria_sidecar/methods/gateway_sessions.py +234 -0
  416. package/sidecar/talaria_sidecar/methods/goals.py +81 -41
  417. package/sidecar/talaria_sidecar/methods/kanban.py +108 -34
  418. package/sidecar/talaria_sidecar/methods/mcp.py +1 -1
  419. package/sidecar/talaria_sidecar/methods/memory.py +84 -0
  420. package/sidecar/talaria_sidecar/methods/oauth.py +5 -2
  421. package/sidecar/talaria_sidecar/methods/process.py +218 -15
  422. package/sidecar/talaria_sidecar/methods/profiles.py +121 -13
  423. package/sidecar/talaria_sidecar/methods/providers.py +217 -28
  424. package/sidecar/talaria_sidecar/methods/runtime.py +69 -1
  425. package/sidecar/talaria_sidecar/methods/skills.py +67 -4
  426. package/sidecar/talaria_sidecar/methods/state_db.py +316 -75
  427. package/sidecar/talaria_sidecar/methods/stt.py +159 -78
  428. package/sidecar/talaria_sidecar/methods/text.py +14 -1
  429. package/sidecar/talaria_sidecar/methods/toolsets.py +49 -0
  430. package/sidecar/talaria_sidecar/methods/usage.py +113 -14
  431. package/sidecar/talaria_sidecar/methods/worktree.py +26 -19
  432. package/sidecar/talaria_sidecar/methods/write_approval.py +181 -0
  433. package/sidecar/talaria_sidecar/rpc.py +45 -4
  434. package/sidecar/talaria_sidecar/runtime.py +98 -13
  435. package/sidecar/talaria_sidecar/speed.py +35 -0
  436. package/static/dist/FILES.txt +126 -126
  437. package/static/dist/assets/AppShell-cey33v9s.js +8 -0
  438. package/static/dist/assets/ChatPage-i8wnugr7.js +18 -0
  439. package/static/dist/assets/ConnectTargets-hg19553x.js +1 -0
  440. package/static/dist/assets/ExtensionRoute-cly4apm5.js +1 -0
  441. package/static/dist/assets/Field-j8uqoigz.js +9 -0
  442. package/static/dist/assets/HubRoute-e4bgz41j.js +2 -0
  443. package/static/dist/assets/Markdown-lahuichm.js +598 -0
  444. package/static/dist/assets/RightPanel-lbo4i0fn.js +1 -0
  445. package/static/dist/assets/Select-gqatm2e0.js +1 -0
  446. package/static/dist/assets/SessionListPanel-mfqayfjh.js +1 -0
  447. package/static/dist/assets/SettingsLayout-b8980u7k.js +1 -0
  448. package/static/dist/assets/States-e7dkgtxf.js +1 -0
  449. package/static/dist/assets/Toaster-bfqqy786.js +1 -0
  450. package/static/dist/assets/_app-n1n6pfx1.js +1 -0
  451. package/static/dist/assets/{_app.ext._extensionId-opyh9y0v.js → _app.ext._extensionId-buxjxav3.js} +1 -1
  452. package/static/dist/assets/_app.index-jt8zwiu2.js +1 -0
  453. package/static/dist/assets/_app.insights-cv76ml71.js +1 -0
  454. package/static/dist/assets/_app.kanban-h6ts53j7.js +1 -0
  455. package/static/dist/assets/_app.logs-dm873z90.js +1 -0
  456. package/static/dist/assets/_app.memory-glk5y6m8.js +1 -0
  457. package/static/dist/assets/_app.profiles-ka6zpstq.js +1 -0
  458. package/static/dist/assets/{_app.session._sessionId-bfd4h3id.js → _app.session._sessionId-g2vzghvc.js} +1 -1
  459. package/static/dist/assets/_app.settings-hgjdhzcd.js +1 -0
  460. package/static/dist/assets/_app.settings._section-jf2kmhae.js +3 -0
  461. package/static/dist/assets/_app.skills-cii852yq.js +1 -0
  462. package/static/dist/assets/_app.tasks-fp9q7atm.js +1 -0
  463. package/static/dist/assets/_app.todos-dw94qzue.js +1 -0
  464. package/static/dist/assets/_app.workspaces-inyygzze.js +1 -0
  465. package/static/dist/assets/{abnfDiagram-VCTEODGH-b2x1lqot.js → abnfDiagram-VCTEODGH-gjayq3ra.js} +1 -1
  466. package/static/dist/assets/architecture-7GRP2DOG-lp56972r.js +1 -0
  467. package/static/dist/assets/{architectureDiagram-5GKGNRK7-h38o5l7b.js → architectureDiagram-5GKGNRK7-nwb3xovn.js} +1 -1
  468. package/static/dist/assets/archive-b1j004vn.js +1 -0
  469. package/static/dist/assets/back-g74gkozu.js +1 -0
  470. package/static/dist/assets/{blockDiagram-I7D4REHJ-bqquxv2u.js → blockDiagram-I7D4REHJ-joedghi3.js} +1 -1
  471. package/static/dist/assets/{c4Diagram-7LVT6UL2-f3fb8w6z.js → c4Diagram-7LVT6UL2-hyrjrohe.js} +1 -1
  472. package/static/dist/assets/channel-es95o4y8.js +1 -0
  473. package/static/dist/assets/{chunk-4HAMMTFA-bzfyyzp3.js → chunk-4HAMMTFA-koouqbut.js} +1 -1
  474. package/static/dist/assets/{chunk-75Z2AOVW-ly99rfx5.js → chunk-75Z2AOVW-bl4bhdnt.js} +1 -1
  475. package/static/dist/assets/{chunk-DU6HZSFF-bg6ecfqf.js → chunk-DU6HZSFF-gpedttsp.js} +3 -3
  476. package/static/dist/assets/{chunk-F27PBJKO-e8k7mmqw.js → chunk-F27PBJKO-d8xxi0zi.js} +1 -1
  477. package/static/dist/assets/{chunk-GMAD6QVW-cmalnoaj.js → chunk-GMAD6QVW-jro0hl73.js} +1 -1
  478. package/static/dist/assets/{chunk-GVQU2GXP-gmif5o01.js → chunk-GVQU2GXP-djn6gbyu.js} +1 -1
  479. package/static/dist/assets/{chunk-IMKFNOWR-f1nwwh6u.js → chunk-IMKFNOWR-vw4p5p7o.js} +1 -1
  480. package/static/dist/assets/{chunk-L3NEJ4N5-oktfh5v7.js → chunk-L3NEJ4N5-n1hj77q8.js} +1 -1
  481. package/static/dist/assets/{chunk-OSK3NFVY-b1sdx96z.js → chunk-OSK3NFVY-oy0gwn2n.js} +1 -1
  482. package/static/dist/assets/{chunk-P2QGCYS3-fhu4nzxt.js → chunk-P2QGCYS3-onf1hz6c.js} +1 -1
  483. package/static/dist/assets/{chunk-POPQ4Y6H-em31rnef.js → chunk-POPQ4Y6H-m8sqn7cs.js} +1 -1
  484. package/static/dist/assets/{chunk-PWAF6VOD-bxhhyftw.js → chunk-PWAF6VOD-ek4smc8x.js} +1 -1
  485. package/static/dist/assets/{chunk-SHT3W25Y-fmrvwcav.js → chunk-SHT3W25Y-g9gfvefo.js} +3 -3
  486. package/static/dist/assets/{chunk-SVP7TREG-lymukl2j.js → chunk-SVP7TREG-f9nfv2cu.js} +1 -1
  487. package/static/dist/assets/{chunk-TICWLB2K-lmza6k23.js → chunk-TICWLB2K-bnk3m1mq.js} +1 -1
  488. package/static/dist/assets/classDiagram-ZZMXUADV-kmihoqxh.js +1 -0
  489. package/static/dist/assets/classDiagram-v2-VYDZK3BY-kmihoqxh.js +1 -0
  490. package/static/dist/assets/copied-bli9tbcx.js +1 -0
  491. package/static/dist/assets/{copy-fw5b1pc6.js → copy-jamtd1pf.js} +1 -1
  492. package/static/dist/assets/{cynefin-OW5HDTMX-czlhbyhs.js → cynefin-OW5HDTMX-f8xfdd3f.js} +1 -1
  493. package/static/dist/assets/{cynefinDiagram-5FMLGOSQ-gq7mvswb.js → cynefinDiagram-5FMLGOSQ-n9lb99h9.js} +1 -1
  494. package/static/dist/assets/{dagre-GXQ25YYZ-cqdbf7dr.js → dagre-GXQ25YYZ-dgailddi.js} +4 -4
  495. package/static/dist/assets/{diagram-S7CK7UJ4-o6arxa58.js → diagram-S7CK7UJ4-m6aeoe7c.js} +1 -1
  496. package/static/dist/assets/{diagram-UQ7AKVKN-nhnd68tz.js → diagram-UQ7AKVKN-jall3j0x.js} +1 -1
  497. package/static/dist/assets/{diagram-VSXAHHWV-dk2sclzn.js → diagram-VSXAHHWV-hbawi7hn.js} +1 -1
  498. package/static/dist/assets/{diagram-VX7I27RA-n3k5nyx3.js → diagram-VX7I27RA-hendl2tt.js} +1 -1
  499. package/static/dist/assets/{diagram-Z3DM3KII-m6q9cwdh.js → diagram-Z3DM3KII-igwc35p3.js} +1 -1
  500. package/static/dist/assets/{ebnfDiagram-PWID7BFC-lsa5641p.js → ebnfDiagram-PWID7BFC-c64knz08.js} +1 -1
  501. package/static/dist/assets/{erDiagram-RLTQ6QDP-fo2ckbe6.js → erDiagram-RLTQ6QDP-brdu9lcm.js} +1 -1
  502. package/static/dist/assets/eventmodeling-NTZA5JFV-njk1j8wl.js +1 -0
  503. package/static/dist/assets/flowDiagram-HODETNUW-nma6f0ga.js +1 -0
  504. package/static/dist/assets/folder-plus-lvt9kudb.js +1 -0
  505. package/static/dist/assets/{ganttDiagram-EL5Y4UJY-nzqz6x9g.js → ganttDiagram-EL5Y4UJY-ma6jxj5i.js} +1 -1
  506. package/static/dist/assets/{gitGraph-4MIJSDKK-gukvcxe6.js → gitGraph-4MIJSDKK-naa9w6xa.js} +1 -1
  507. package/static/dist/assets/{gitGraphDiagram-WWUBYQGX-lqhdp8f0.js → gitGraphDiagram-WWUBYQGX-hzltvsod.js} +1 -1
  508. package/static/dist/assets/{highlighted-body-KPVGNVTW-igw6cp39.js → highlighted-body-KPVGNVTW-ghoavj8d.js} +1 -1
  509. package/static/dist/assets/host-hzm8n85n.js +1 -0
  510. package/static/dist/assets/index-drdcaqeq.css +2 -0
  511. package/static/dist/assets/index-jzm844he.js +11 -0
  512. package/static/dist/assets/{info-A6RAGUB7-gvu7a93l.js → info-A6RAGUB7-mn2ut5ko.js} +1 -1
  513. package/static/dist/assets/{infoDiagram-27XIBGKW-m8t8g6w1.js → infoDiagram-27XIBGKW-h6kuqvsb.js} +1 -1
  514. package/static/dist/assets/{ishikawaDiagram-5VMMS53U-l07vkbgj.js → ishikawaDiagram-5VMMS53U-e7bnwq7h.js} +1 -1
  515. package/static/dist/assets/{journeyDiagram-3NMN7TZE-hybkgj8l.js → journeyDiagram-3NMN7TZE-etd1bi6p.js} +1 -1
  516. package/static/dist/assets/{kanban-definition-UXKFOSKX-by13uvtn.js → kanban-definition-UXKFOSKX-emb1g9dz.js} +4 -4
  517. package/static/dist/assets/lazyRouteComponent-o816ytzl.js +1 -0
  518. package/static/dist/assets/{line-osxq6fq7.js → line-h0ojzsvs.js} +1 -1
  519. package/static/dist/assets/link-k01ryaf9.js +1 -0
  520. package/static/dist/assets/login-bsae49ew.js +1 -0
  521. package/static/dist/assets/mermaid-HWGCJPDP-ihl34s74.js +1 -0
  522. package/static/dist/assets/{mermaid-parser.core-i91oxmou.js → mermaid-parser.core-bnre27u8.js} +3 -3
  523. package/static/dist/assets/{mindmap-definition-YA3MSWOX-m82mx8ww.js → mindmap-definition-YA3MSWOX-o1vathns.js} +1 -1
  524. package/static/dist/assets/onboarding-c65tysya.js +1 -0
  525. package/static/dist/assets/onboarding_model_label-gpn28uix.js +1 -0
  526. package/static/dist/assets/{packet-AYTQ26CC-nbtgge2o.js → packet-AYTQ26CC-hatq7m2e.js} +1 -1
  527. package/static/dist/assets/pcmTap.worklet-74EKjWAZ.js +1 -0
  528. package/static/dist/assets/{pegDiagram-XKGWAZYB-f1zxzga1.js → pegDiagram-XKGWAZYB-gwisz8jv.js} +1 -1
  529. package/static/dist/assets/{pie-WAS4IAKB-of8vuhxs.js → pie-WAS4IAKB-fpftf0mk.js} +1 -1
  530. package/static/dist/assets/{pieDiagram-E7YTZNPT-o7y8ftio.js → pieDiagram-E7YTZNPT-khm1o9a6.js} +1 -1
  531. package/static/dist/assets/{quadrantDiagram-AXDQQJYC-iqiwia1t.js → quadrantDiagram-AXDQQJYC-owqc4uqn.js} +1 -1
  532. package/static/dist/assets/{radar-RG4KPBEZ-delnsy2v.js → radar-RG4KPBEZ-cntfwjpq.js} +1 -1
  533. package/static/dist/assets/{railroad-74A4TZTK-nspnyq9u.js → railroad-74A4TZTK-a7t5eibp.js} +1 -1
  534. package/static/dist/assets/railroad-abnf-HS5TGJTU-ol8cdktf.js +1 -0
  535. package/static/dist/assets/railroad-ebnf-LZEXJU2U-i8vzd429.js +1 -0
  536. package/static/dist/assets/railroad-peg-WCYAUIDC-nw3ulewz.js +1 -0
  537. package/static/dist/assets/{railroadDiagram-O6MQD6OU-z41tqx5z.js → railroadDiagram-O6MQD6OU-etuh0qa0.js} +1 -1
  538. package/static/dist/assets/{refresh-cw-nt1dtsx4.js → refresh-cw-mqbkv2a3.js} +1 -1
  539. package/static/dist/assets/refresh-l29ljp76.js +1 -0
  540. package/static/dist/assets/{requirementDiagram-BXWQKSXE-bdvif194.js → requirementDiagram-BXWQKSXE-oq2ulk22.js} +1 -1
  541. package/static/dist/assets/{sankeyDiagram-P5KCCOFB-h73e0rol.js → sankeyDiagram-P5KCCOFB-iqc02emv.js} +1 -1
  542. package/static/dist/assets/saved-ndd4t2xb.js +1 -0
  543. package/static/dist/assets/{sequenceDiagram-WJ2MYXX4-iv95mb1z.js → sequenceDiagram-WJ2MYXX4-i0v116q0.js} +2 -2
  544. package/static/dist/assets/settings_section_extensions_title-jhfo6o8z.js +1 -0
  545. package/static/dist/assets/share._token-c1ri0hy1.js +2 -0
  546. package/static/dist/assets/sliders-horizontal-j3jjt9tv.js +1 -0
  547. package/static/dist/assets/{stateDiagram-D77RDMKH-k417ixmf.js → stateDiagram-D77RDMKH-dnpt1ato.js} +1 -1
  548. package/static/dist/assets/stateDiagram-v2-MP3YSRHH-bxjacpk6.js +1 -0
  549. package/static/dist/assets/{swimlanes-42K2YHIH-esola70w.js → swimlanes-42K2YHIH-loqbdazb.js} +1 -1
  550. package/static/dist/assets/swimlanesDiagram-VR7AAH4N-id62p9hz.js +8 -0
  551. package/static/dist/assets/{timeline-definition-24CTP7MA-getrz2y8.js → timeline-definition-24CTP7MA-ol2hnvma.js} +1 -1
  552. package/static/dist/assets/toast-i3h34v6o.js +64 -0
  553. package/static/dist/assets/{treeView-Q6P3EWNA-hc7ap1q7.js → treeView-Q6P3EWNA-idrj6iox.js} +1 -1
  554. package/static/dist/assets/{treemap-WGGIJYW6-b7k1syy5.js → treemap-WGGIJYW6-lzr49vv5.js} +1 -1
  555. package/static/dist/assets/untitled-oaoya4qj.js +1 -0
  556. package/static/dist/assets/useForm-nfaxgmsk.js +1 -0
  557. package/static/dist/assets/{useParams-lhg566ew.js → useParams-gjc70qru.js} +1 -1
  558. package/static/dist/assets/{useSearch-lbrh6ejn.js → useSearch-e6ae539u.js} +1 -1
  559. package/static/dist/assets/{vennDiagram-4TSXK5OY-n6pcy5qb.js → vennDiagram-4TSXK5OY-bvwr9o2z.js} +1 -1
  560. package/static/dist/assets/{wardley-WFR3VGLG-lpa18vz1.js → wardley-WFR3VGLG-31ui8tma.js} +1 -1
  561. package/static/dist/assets/{wardleyDiagram-VM6X3IG4-kpclwwg7.js → wardleyDiagram-VM6X3IG4-k5wqtx4b.js} +1 -1
  562. package/static/dist/assets/{xychartDiagram-S5SC5T6Z-paa2n8y0.js → xychartDiagram-S5SC5T6Z-aqbgvujg.js} +1 -1
  563. package/static/dist/index.html +1 -1
  564. package/static/dist/sw.js +1 -1
  565. package/static/dist/assets/AppShell-fb2td9zi.js +0 -1
  566. package/static/dist/assets/ChatPage-cj96kiy9.js +0 -25
  567. package/static/dist/assets/Dialog-kxcg7ard.js +0 -1
  568. package/static/dist/assets/ExtensionRoute-jf7h0754.js +0 -1
  569. package/static/dist/assets/HubRoute-gmanpd5y.js +0 -2
  570. package/static/dist/assets/Markdown-mdwlvj3w.js +0 -598
  571. package/static/dist/assets/RightPanel-ftvrjlcp.js +0 -1
  572. package/static/dist/assets/Select-bilaypej.js +0 -1
  573. package/static/dist/assets/SessionListPanel-og8n36qs.js +0 -1
  574. package/static/dist/assets/SettingsLayout-jonjefmj.js +0 -1
  575. package/static/dist/assets/States-nmejrwrm.js +0 -1
  576. package/static/dist/assets/Toaster-nnl8zkt9.js +0 -1
  577. package/static/dist/assets/_app-gdidzd94.js +0 -1
  578. package/static/dist/assets/_app.index-hbarzbjx.js +0 -1
  579. package/static/dist/assets/_app.insights-luywlarz.js +0 -1
  580. package/static/dist/assets/_app.kanban-kincnbr8.js +0 -1
  581. package/static/dist/assets/_app.logs-oi2gr3gs.js +0 -1
  582. package/static/dist/assets/_app.memory-b6jfivt6.js +0 -1
  583. package/static/dist/assets/_app.profiles-lpvixmqp.js +0 -1
  584. package/static/dist/assets/_app.settings-vowx3iq0.js +0 -1
  585. package/static/dist/assets/_app.settings._section-cnntg1tu.js +0 -3
  586. package/static/dist/assets/_app.skills-fb57lpau.js +0 -1
  587. package/static/dist/assets/_app.tasks-eszpx1q7.js +0 -2
  588. package/static/dist/assets/_app.todos-nr05ac6w.js +0 -1
  589. package/static/dist/assets/_app.workspaces-d2luomu6.js +0 -1
  590. package/static/dist/assets/architecture-7GRP2DOG-hd0o7bde.js +0 -1
  591. package/static/dist/assets/back-bemaer09.js +0 -1
  592. package/static/dist/assets/cancel-drd0g6d9.js +0 -1
  593. package/static/dist/assets/channel-cpdgf867.js +0 -1
  594. package/static/dist/assets/classDiagram-ZZMXUADV-ko09sguk.js +0 -1
  595. package/static/dist/assets/classDiagram-v2-VYDZK3BY-ko09sguk.js +0 -1
  596. package/static/dist/assets/copied-ima3pysb.js +0 -1
  597. package/static/dist/assets/endpoints-d33siokx.js +0 -64
  598. package/static/dist/assets/eventmodeling-NTZA5JFV-emctlo64.js +0 -1
  599. package/static/dist/assets/flowDiagram-HODETNUW-bfi3moqa.js +0 -1
  600. package/static/dist/assets/index-cxq58xb1.js +0 -11
  601. package/static/dist/assets/index-hgtx08n5.css +0 -2
  602. package/static/dist/assets/lazyRouteComponent-af0lvgjx.js +0 -1
  603. package/static/dist/assets/link-jyxicdhg.js +0 -1
  604. package/static/dist/assets/login-ec21t39x.js +0 -1
  605. package/static/dist/assets/mermaid-HWGCJPDP-gfl8z3ep.js +0 -1
  606. package/static/dist/assets/onboarding-btnltvyz.js +0 -1
  607. package/static/dist/assets/onboarding_model_label-dp7xffoh.js +0 -1
  608. package/static/dist/assets/railroad-abnf-HS5TGJTU-nst1qxyn.js +0 -1
  609. package/static/dist/assets/railroad-ebnf-LZEXJU2U-ci37x8qy.js +0 -1
  610. package/static/dist/assets/railroad-peg-WCYAUIDC-aimkk07z.js +0 -1
  611. package/static/dist/assets/refresh-b4uams1i.js +0 -1
  612. package/static/dist/assets/saved-kg52csy7.js +0 -1
  613. package/static/dist/assets/settings_section_extensions_title-ej0iapxe.js +0 -1
  614. package/static/dist/assets/share._token-f97e94r0.js +0 -2
  615. package/static/dist/assets/sliders-horizontal-fj18it47.js +0 -1
  616. package/static/dist/assets/sse-fwpqtzbg.js +0 -1
  617. package/static/dist/assets/stateDiagram-v2-MP3YSRHH-hwn4apct.js +0 -1
  618. package/static/dist/assets/swimlanesDiagram-VR7AAH4N-d1h97oyg.js +0 -8
  619. package/static/dist/assets/todoStore-eginf9h4.js +0 -1
  620. package/static/dist/assets/tts-lxdxnmjd.js +0 -1
  621. package/static/dist/assets/untitled-ovpfthg4.js +0 -1
  622. package/static/dist/assets/useForm-bcblv1rx.js +0 -1
  623. package/static/dist/assets/useLocale-fi5jb8ma.js +0 -1
@@ -4,14 +4,19 @@
4
4
  * window plus bounded cron, webhook, and kanban passes, with UI-owned title and
5
5
  * archived state from any WebUI sidecar file and the deleted-session tombstone
6
6
  * honoured. Results are cached for 5 s per profile keyed on the database stamp.
7
+ * `read` queries `state.db` on the listing worker so the event loop stays free
8
+ * (TAL-920); `readSync` serves single-session lookups that are still synchronous.
7
9
  */
8
10
  import { existsSync, readFileSync, statSync } from 'node:fs';
9
11
  import { join } from 'node:path';
10
- import { isCliSessionRow, normalizeAgentSessionSource, readImportableAgentSessionRows } from './state-db.js';
12
+ import { AGENT_STORAGE_OK, isCliSessionRow, normalizeAgentSessionSource, readImportableAgentSessionRows, readImportableAgentSessionRowsAsync, stateDbReadFailure, stateDbStorage, stateDbStorageAsync } from './state-db.js';
13
+ import { latestLineageSidecar, sanitizeSessionRow } from './list.js';
11
14
  import { str } from '../util.js';
15
+ import { looksLikeDefaultCliTitle } from './titles.js';
12
16
  export const CLI_VISIBLE_SESSION_LIMIT = 20;
13
17
  const BACKGROUND_PROJECT_CHIP_LIMIT = 200;
14
18
  const CACHE_TTL_S = 5;
19
+ const BACKGROUND_KINDS = ['cron', 'webhook', 'kanban'];
15
20
  function dbStamp(path) {
16
21
  try {
17
22
  const st = statSync(path, { bigint: true });
@@ -21,6 +26,12 @@ function dbStamp(path) {
21
26
  return 'missing';
22
27
  }
23
28
  }
29
+ /** A background kind's failed read is kept as its result; the interactive read's failure fails the build. */
30
+ function backgroundFailure(query, error) {
31
+ if (query.kind === null)
32
+ throw error;
33
+ return error;
34
+ }
24
35
  export class CliSessionSource {
25
36
  deps;
26
37
  cache = new Map();
@@ -30,36 +41,132 @@ export class CliSessionSource {
30
41
  dbPath(profile) { return join(this.deps.profileHome(profile), 'state.db'); }
31
42
  invalidate() { this.cache.clear(); }
32
43
  /** Python `get_cli_sessions(profile=...)` for one profile; Claude Code imports are not projected here. */
33
- load(profile, opts = {}) {
34
- return this.read(profile, opts).rows;
44
+ async load(profile, opts = {}) {
45
+ return (await this.read(profile, opts)).rows;
35
46
  }
36
47
  /** `load` plus the source kinds whose rows stopped at the per-kind window, from the same read (TAL-482). */
37
- read(profile, opts = {}) {
48
+ async read(profile, opts = {}) {
49
+ const slot = await this.slot(profile, opts);
50
+ const hit = this.cached(slot);
51
+ if (hit)
52
+ return hit;
53
+ const now = this.deps.now();
54
+ let results = null;
55
+ let storage = AGENT_STORAGE_OK;
56
+ try {
57
+ if (existsSync(slot.dbPath)) {
58
+ const settled = [];
59
+ for (const query of this.queries(slot))
60
+ settled.push(await readImportableAgentSessionRowsAsync(slot.dbPath, query.opts).catch((error) => backgroundFailure(query, error)));
61
+ results = settled;
62
+ storage = await stateDbStorageAsync(slot.dbPath);
63
+ }
64
+ }
65
+ catch (error) {
66
+ results = error;
67
+ }
68
+ return (await this.store(slot, now, profile, results, storage));
69
+ }
70
+ /** `read` with the state.db queries on this thread, for single-session lookups whose callers are synchronous. */
71
+ async readSync(profile, opts = {}) {
72
+ const slot = await this.slot(profile, opts);
73
+ const hit = this.cached(slot);
74
+ if (hit)
75
+ return hit;
76
+ const now = this.deps.now();
77
+ const storage = stateDbStorage(slot.dbPath);
78
+ let results;
79
+ try {
80
+ results = existsSync(slot.dbPath) ? this.queries(slot).map((query) => { try {
81
+ return readImportableAgentSessionRows(slot.dbPath, query.opts);
82
+ }
83
+ catch (error) {
84
+ return backgroundFailure(query, error);
85
+ } }) : null;
86
+ }
87
+ catch (error) {
88
+ results = error;
89
+ }
90
+ return (await this.store(slot, now, profile, results, storage));
91
+ }
92
+ async slot(profile, opts) {
38
93
  const dbPath = this.dbPath(profile);
39
94
  const sourceFilter = str(opts.sourceFilter).trim().toLowerCase() || null;
40
- const cacheKey = `${profile}\n${sourceFilter ?? ''}`;
41
- const key = `${dbPath}\n${dbStamp(dbPath)}\n${dbStamp(`${dbPath}-wal`)}`;
42
- const hit = this.cache.get(cacheKey);
43
- const now = this.deps.now();
44
- if (hit?.key === key && hit.until > now)
45
- return { rows: hit.rows.map((r) => ({ ...r })), truncated: hit.truncated };
95
+ const sessionIds = opts.sessionIds ?? null;
96
+ return { cacheKey: `${profile}\n${sourceFilter ?? ''}`, key: `${dbPath}\n${dbStamp(dbPath)}\n${dbStamp(`${dbPath}-wal`)}\n${await this.deps.store.index().then((index) => index.revision, () => '')}`, dbPath, sourceFilter, sessionIds };
97
+ }
98
+ cached(slot) {
99
+ if (slot.sessionIds !== null)
100
+ return null;
101
+ const hit = this.cache.get(slot.cacheKey);
102
+ if (hit?.key !== slot.key || hit.until <= this.deps.now())
103
+ return null;
104
+ return { rows: hit.rows.map((r) => ({ ...r })), truncated: hit.truncated, storage: hit.storage };
105
+ }
106
+ /**
107
+ * Build the rows, degrade a failed read or build to none with the Python log line, and cache the outcome. A failed
108
+ * read, interactive or background, decides the storage state (`corrupt` first, else `unavailable`), since it can reach
109
+ * a damaged page the probe never touched; a probe that alone could not read says nothing about rows that were served.
110
+ */
111
+ async store(slot, now, profile, results, probed) {
46
112
  let rows;
47
113
  const truncated = new Set();
114
+ const failures = results instanceof Error ? [results] : (results ?? []).filter((r) => r instanceof Error);
115
+ const failed = failures.map(stateDbReadFailure);
116
+ const storage = failed.find((s) => s.state === 'corrupt') ?? failed[0] ?? (probed.state === 'unavailable' ? AGENT_STORAGE_OK : probed);
48
117
  try {
49
- rows = this.loadUncached(profile, dbPath, sourceFilter, truncated);
118
+ if (results instanceof Error)
119
+ throw results;
120
+ rows = results ? (await this.build(profile, slot, results, truncated)) : [];
50
121
  }
51
122
  catch (error) {
52
- this.deps.log(`[webui] get_cli_sessions() failed; check state.db schema or path (${dbPath}): ${error.message}`);
123
+ this.deps.log(`[webui] get_cli_sessions() failed; check state.db schema or path (${slot.dbPath}): ${error.message}`);
53
124
  rows = [];
54
125
  }
55
- this.cache.set(cacheKey, { key, until: now + CACHE_TTL_S, rows, truncated });
56
- return { rows: rows.map((r) => ({ ...r })), truncated };
126
+ if (slot.sessionIds === null)
127
+ this.cache.set(slot.cacheKey, { key: slot.key, until: now + CACHE_TTL_S, rows, truncated, storage });
128
+ return { rows: rows.map((r) => ({ ...r })), truncated, storage };
129
+ }
130
+ queries(slot) {
131
+ const { sourceFilter } = slot;
132
+ const log = this.deps.log;
133
+ if (slot.sessionIds !== null)
134
+ return [{ kind: null, opts: { sessionIds: slot.sessionIds, limit: null, excludeSources: ['webui'], log } }];
135
+ const interactiveLimit = sourceFilter === null ? CLI_VISIBLE_SESSION_LIMIT : BACKGROUND_PROJECT_CHIP_LIMIT;
136
+ // A filtered read takes one row past its window too, so a single-source list knows more exist (TAL-482).
137
+ const out = [{ kind: null, opts: { limit: sourceFilter === null ? interactiveLimit : interactiveLimit + 1, excludeSources: sourceFilter === null ? [...BACKGROUND_KINDS] : null, includeSources: sourceFilter === null ? null : [sourceFilter], log } }];
138
+ // One row past the cap tells the sidebar that more sessions of this kind exist than it lists (TAL-482).
139
+ if (sourceFilter === null)
140
+ for (const kind of BACKGROUND_KINDS)
141
+ out.push({ kind, opts: { limit: BACKGROUND_PROJECT_CHIP_LIMIT + 1, excludeSources: null, includeSources: [kind], log } });
142
+ return out;
57
143
  }
58
- sidecarMeta(sid) {
59
- const session = this.deps.store.loadMetadataOnly(sid);
60
- if (!session)
61
- return { title: null, archived: false };
62
- return { title: str(session.title).trim() || null, archived: session.archived };
144
+ /**
145
+ * UI-owned metadata of saved WebUI sidecars, from the session index parsed once per
146
+ * build; only a sidecar file the index does not list is read (TAL-920).
147
+ */
148
+ sidecarMetaLookup() {
149
+ const store = this.deps.store;
150
+ let persisted = null;
151
+ let indexed = null;
152
+ return async (sid) => {
153
+ persisted ??= (await store.persistedIds());
154
+ if (!persisted.has(sid))
155
+ return undefined;
156
+ if (indexed === null) {
157
+ let entries = [];
158
+ try {
159
+ entries = (await store.readIndexEntries());
160
+ }
161
+ catch { /* every sidecar falls back to its file */ }
162
+ indexed = new Map(entries.flatMap((entry) => { const row = sanitizeSessionRow(entry, store, 'index'); return row ? [[str(row.session_id), row]] : []; }));
163
+ }
164
+ const entry = indexed.get(sid);
165
+ if (entry)
166
+ return entry;
167
+ const session = (await store.loadMetadataOnly(sid));
168
+ return session?.compact();
169
+ };
63
170
  }
64
171
  cronJobNames(home) {
65
172
  const names = new Map();
@@ -75,12 +182,11 @@ export class CliSessionSource {
75
182
  catch { /* degrade to the generic title */ }
76
183
  return names;
77
184
  }
78
- loadUncached(profile, dbPath, sourceFilter, truncated) {
79
- if (!existsSync(dbPath))
80
- return [];
185
+ async build(profile, slot, results, truncated) {
186
+ const { sourceFilter } = slot;
81
187
  const home = this.deps.profileHome(profile);
82
188
  let workspace = null;
83
- const cliWorkspace = () => { workspace ??= this.deps.lastWorkspace(profile); return workspace; };
189
+ const cliWorkspace = async () => { workspace ??= (await this.deps.lastWorkspace(profile)); return workspace; };
84
190
  let cronNames = null;
85
191
  const cronTitle = (sid) => {
86
192
  if (!sid.startsWith('cron_'))
@@ -91,15 +197,16 @@ export class CliSessionSource {
91
197
  cronNames ??= this.cronJobNames(home);
92
198
  return cronNames.get(parts[1] ?? '') ?? null;
93
199
  };
94
- const tombstone = this.deps.store.loadDeletedTombstone();
200
+ const sidecarMeta = this.sidecarMetaLookup();
201
+ const tombstone = (await this.deps.store.loadDeletedTombstone());
95
202
  const out = [];
96
203
  const seen = new Set();
97
204
  // Memoised per scan (Python `_cron_pid` / `_webhook_pid`): one projects.json read per kind, not per row.
98
205
  const projectIds = new Map();
99
- const projectFor = (kind) => {
206
+ const projectFor = async (kind) => {
100
207
  if (!projectIds.has(kind)) {
101
208
  try {
102
- projectIds.set(kind, this.deps.backgroundProjectId?.(kind, profile) ?? null);
209
+ projectIds.set(kind, (await this.deps.backgroundProjectId?.(kind, profile)) ?? null);
103
210
  }
104
211
  catch {
105
212
  projectIds.set(kind, null);
@@ -107,20 +214,23 @@ export class CliSessionSource {
107
214
  }
108
215
  return projectIds.get(kind) ?? null;
109
216
  };
110
- const toRow = (row, sourceTag, defaultTitle) => {
217
+ const toRow = async (row, sourceTag, defaultTitle) => {
111
218
  const sid = str(row.id);
112
219
  const meta = normalizeAgentSessionSource(row.source || sourceTag);
113
220
  let title = str(row.title) || null;
114
221
  if (!title && sourceTag === 'cron')
115
222
  title = cronTitle(sid) ?? title;
116
- const sidecar = this.sidecarMeta(sid);
117
- if (sidecar.title)
118
- title = sidecar.title;
223
+ const lineage = Array.isArray(row._lineage_ids) ? row._lineage_ids.filter((id) => typeof id === 'string') : null;
224
+ const lineageIds = lineage ?? [sid];
225
+ const metadata = new Map(await Promise.all(lineageIds.map(async (id) => [id, await sidecarMeta(id)])));
226
+ const sidecar = latestLineageSidecar(lineageIds, profile, (id) => metadata.get(id), this.deps.profilesMatch);
227
+ if (sidecar?.title && (!lineage || !title || !looksLikeDefaultCliTitle(sidecar)))
228
+ title = str(sidecar.title);
119
229
  return {
120
- session_id: sid, title: title ?? defaultTitle, workspace: cliWorkspace(), model: row.model || null,
230
+ session_id: sid, title: title ?? defaultTitle, workspace: (lineage && str(sidecar?.workspace)) || (await cliWorkspace()), model: row.model || null,
121
231
  message_count: Number(row.message_count) || Number(row.actual_message_count) || 0,
122
- created_at: row.started_at, updated_at: row.last_activity ?? row.started_at, pinned: false, archived: sidecar.archived,
123
- project_id: sourceTag === 'cron' || sourceTag === 'webhook' ? projectFor(sourceTag) : null, profile, source_tag: sourceTag, raw_source: row.raw_source ?? meta.raw_source,
232
+ created_at: row.started_at, updated_at: row.last_activity ?? row.started_at, pinned: Boolean(sidecar?.pinned), archived: Boolean(sidecar?.archived),
233
+ project_id: sourceTag === 'cron' || sourceTag === 'webhook' ? await projectFor(sourceTag) : lineage ? str(sidecar?.project_id) || null : null, profile, source_tag: sourceTag, raw_source: row.raw_source ?? meta.raw_source,
124
234
  user_id: row.user_id ?? null, chat_id: row.chat_id ?? row.origin_chat_id ?? null, chat_type: row.chat_type ?? null, thread_id: row.thread_id ?? null,
125
235
  session_key: row.session_key ?? null, platform: row.platform ?? null,
126
236
  session_source: row.session_source ?? meta.session_source, source_label: row.source_label ?? meta.source_label,
@@ -128,36 +238,36 @@ export class CliSessionSource {
128
238
  relationship_type: row.relationship_type ?? null, _parent_lineage_root_id: row._parent_lineage_root_id ?? null,
129
239
  end_reason: row.end_reason ?? null, actual_message_count: row.actual_message_count ?? null, user_message_count: row.actual_user_message_count ?? null,
130
240
  _lineage_root_id: row._lineage_root_id ?? null, _lineage_tip_id: row._lineage_tip_id ?? null, _compression_segment_count: row._compression_segment_count ?? null,
241
+ _lineage_ids: row._lineage_ids ?? null,
131
242
  is_cli_session: isCliSessionRow({ ...row, ...meta }),
132
243
  };
133
244
  };
134
- const background = new Set(['cron', 'webhook', 'kanban']);
135
245
  const interactiveLimit = sourceFilter === null ? CLI_VISIBLE_SESSION_LIMIT : BACKGROUND_PROJECT_CHIP_LIMIT;
136
- // A filtered read takes one row past its window too, so a single-source list knows more exist (TAL-482).
137
- const interactive = readImportableAgentSessionRows(dbPath, { limit: sourceFilter === null ? interactiveLimit : interactiveLimit + 1, excludeSources: sourceFilter === null ? ['cron', 'webhook', 'kanban'] : null, includeSources: sourceFilter === null ? null : [sourceFilter], log: this.deps.log });
246
+ const interactive = results[0];
138
247
  if (sourceFilter !== null && interactive.length > interactiveLimit)
139
248
  truncated.add(sourceFilter);
140
249
  for (const row of sourceFilter === null ? interactive : interactive.slice(0, interactiveLimit)) {
141
250
  const sid = str(row.id);
142
251
  const source = str(row.source) || 'cli';
143
- if (source === 'webui' && tombstone.has(sid) && !existsSync(join(this.deps.store.sessionDir, `${sid}.json`)))
252
+ if (source === 'webui' && tombstone.has(sid) && !await this.deps.store.exists(sid))
144
253
  continue;
145
- out.push(toRow(row, source, `${source.charAt(0).toUpperCase()}${source.slice(1)} Session`));
254
+ out.push(await toRow(row, source, `${source.charAt(0).toUpperCase()}${source.slice(1)} Session`));
146
255
  seen.add(sid);
147
256
  }
148
257
  if (sourceFilter !== null)
149
258
  return out;
150
- for (const kind of background) {
259
+ for (const [i, kind] of BACKGROUND_KINDS.entries()) {
151
260
  try {
152
- // One row past the cap tells the sidebar that more sessions of this kind exist than it lists (TAL-482).
153
- const rows = readImportableAgentSessionRows(dbPath, { limit: BACKGROUND_PROJECT_CHIP_LIMIT + 1, excludeSources: null, includeSources: [kind], log: this.deps.log });
261
+ const rows = results[i + 1] ?? [];
262
+ if (rows instanceof Error)
263
+ throw rows;
154
264
  if (rows.length > BACKGROUND_PROJECT_CHIP_LIMIT)
155
265
  truncated.add(kind);
156
266
  for (const row of rows.slice(0, BACKGROUND_PROJECT_CHIP_LIMIT)) {
157
267
  const sid = str(row.id);
158
268
  if (seen.has(sid) || (str(row.source) || kind) !== kind)
159
269
  continue;
160
- out.push(toRow(row, kind, `${kind.charAt(0).toUpperCase()}${kind.slice(1)} Session`));
270
+ out.push(await toRow(row, kind, `${kind.charAt(0).toUpperCase()}${kind.slice(1)} Session`));
161
271
  seen.add(sid);
162
272
  }
163
273
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cli-sessions.js","sourceRoot":"","sources":["../../src/sessions/cli-sessions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli-sessions.js","sourceRoot":"","sources":["../../src/sessions/cli-sessions.ts"],"names":[],"mappings":"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"}
@@ -1,33 +1,54 @@
1
1
  import type { SidecarLike } from '../sidecar/client.js';
2
2
  import type { SessionChannels, StreamRegistry } from './streams.js';
3
- import type { SessionStore } from './store.js';
3
+ import { type SessionStore } from './store.js';
4
4
  import type { Session } from './session.js';
5
+ import { type BackgroundUpdate } from './background-updates.js';
5
6
  import type { BackgroundActivity } from './background-tasks.js';
7
+ import type { DocumentBackend } from './storage/backend.js';
6
8
  type Dict = Record<string, unknown>;
7
9
  export declare const COMPLETION_POLL_MS = 1000;
10
+ interface StartedTurn {
11
+ _status?: number;
12
+ error?: string;
13
+ stream_id?: string;
14
+ retryable?: boolean;
15
+ }
8
16
  export interface CompletionDrainDeps {
9
17
  sidecar: () => SidecarLike | null;
10
18
  /** The base Hermes home: every profile under it has its background processes recovered in a new sidecar (TAL-533). */
11
19
  baseHome: string;
12
20
  profileHome: (profile: string | null) => string;
13
21
  activeProfile: () => string;
22
+ documents: DocumentBackend;
14
23
  store: SessionStore;
24
+ /** The shared session ownership gate, including the owning profile home. */
25
+ isReadOnly?: (session: Session) => boolean | Promise<boolean>;
15
26
  channels: SessionChannels;
16
27
  registry: StreamRegistry;
17
- /** Start a server-side turn; `_status` 409 means a turn is already active. */
18
- startTurn: (session: Session, prompt: string) => {
19
- _status?: number;
20
- error?: string;
21
- stream_id?: string;
22
- };
28
+ /** Start a server-side turn; `_status` 409 means a turn is already active, or with `retryable` that the Agent runtime is stale. */
29
+ startTurn: (session: Session, prompt: string, completionKeys: string[], update: BackgroundUpdate) => StartedTurn | Promise<StartedTurn>;
23
30
  now: () => number;
24
31
  log: (line: string) => void;
25
32
  pollMs?: number;
33
+ /** TAL-576: the profile's authoritative config file (`AgentConfig.path`); `<home>/config.yaml` when absent. */
34
+ configPath?: (profileHome: string) => string;
26
35
  /** TAL-372: each routed completion settles its background record. */
27
- background?: Pick<BackgroundActivity, 'recordEvent'>;
36
+ background?: {
37
+ recordEvent: (...args: Parameters<BackgroundActivity['recordEvent']>) => void | Promise<void>;
38
+ };
39
+ /** TAL-933: a profile's parsed config, for its `delegation.surface_child_process_notifications`. */
40
+ readConfig?: (profileHome: string) => Promise<Dict>;
41
+ /** TAL-907: the server environment, for a `HERMES_BACKGROUND_NOTIFICATIONS` no profile `.env` sets. */
42
+ env?: Record<string, string | undefined>;
28
43
  }
29
44
  /** Python `format_wakeup_prompt` for plain completion events; async delegations use the sidecar formatter. */
30
45
  export declare function formatWakeupPrompt(evt: Dict): string | null;
46
+ /**
47
+ * TAL-724: an event's delivery identity, the `process_id` of its wakeup entry. A completion (an event with no type is one) or
48
+ * an async delegation is its process: one exit can be enqueued twice when a kill races the reader thread. The Agent enqueues
49
+ * each watch event once, and one process raises several, so each is its own delivery; its event keeps the process id.
50
+ */
51
+ export declare function deliveryKey(evt: Dict, processId: string): string;
31
52
  export declare class CompletionDrain {
32
53
  private readonly deps;
33
54
  private timer;
@@ -43,6 +64,14 @@ export declare class CompletionDrain {
43
64
  private recoveredFor;
44
65
  private recoveryWarnedFor;
45
66
  private lastDrainError;
67
+ private heldResumed;
68
+ private readonly drains;
69
+ /** Admitted wakeups whose release could not be written: never delivered again, and the release is retried. */
70
+ private readonly unreleased;
71
+ /** TAL-576: wakeups held while their session is paused. */
72
+ private readonly heldWakeups;
73
+ /** Waiting requires an unadmitted result, not an admitted turn's outstanding ledger acknowledgement. */
74
+ pendingDelegations(sid: string): Promise<Set<string>>;
46
75
  constructor(deps: CompletionDrainDeps);
47
76
  start(): void;
48
77
  stop(): void;
@@ -51,6 +80,21 @@ export declare class CompletionDrain {
51
80
  private resolveTarget;
52
81
  private hasActiveTurn;
53
82
  private wakeupPrompt;
83
+ /** The session's owning profile home; a session without a profile belongs to the root profile (`profilesMatch`). */
84
+ private ownerHome;
85
+ /** A profile's config; null when it cannot be read. */
86
+ private profileConfig;
87
+ /** The owning profile's `delegation.surface_child_process_notifications`; off, the Agent's default, when it cannot be read. */
88
+ private surfacesChildProcesses;
89
+ /**
90
+ * TAL-907 (Agent `_load_background_notifications_mode`): `HERMES_BACKGROUND_NOTIFICATIONS` from the profile's `.env`
91
+ * (which overrides the shell, as in the Agent) or the server environment, else `display.background_process_notifications`
92
+ * (YAML `false` is off). Only `off` changes Web delivery; null when the setting cannot be read.
93
+ */
94
+ private notificationsOff;
95
+ private isReadOnly;
96
+ /** Hand durable results back without acknowledging delivery or mutating the canonical session. */
97
+ private relinquish;
54
98
  /** Python `_process_one`; returns false when the event has no owning WebUI session. */
55
99
  processOne(evt: Dict): Promise<boolean>;
56
100
  private buildPayload;
@@ -58,7 +102,10 @@ export declare class CompletionDrain {
58
102
  /** Python `_emit_bg_task_complete_events_coalesced`: first emit immediately, bursts flush the latest payload after 1 s of quiet. */
59
103
  private emitCoalesced;
60
104
  recordDeferred(sid: string, processId: string, prompt: string, event?: Dict): void;
105
+ /** Re-deferring keeps an entry's delivery identity, so its held copy and this one stay one wakeup. */
106
+ private defer;
61
107
  deferredCount(sid: string): number;
108
+ /** Delivering a process's exit consumes it; a watch event leaves the exit to be delivered (TAL-724). */
62
109
  private markConsumed;
63
110
  /**
64
111
  * TAL-459: claim each async delegation in the Agent's durable ledger right before delivering it. A refused claim means
@@ -73,6 +120,23 @@ export declare class CompletionDrain {
73
120
  */
74
121
  private settleClaims;
75
122
  private scheduleRetry;
123
+ private scheduleDrain;
124
+ /** TAL-576: `usage.pool` for the provider whose pool ran dry, through `poolRecovery`; null when the sidecar cannot say. */
125
+ private poolRecovery;
126
+ /** A restarted server resumes every session it left holding wakeups (`startWakeup` drops a deleted session's). */
127
+ private resumeHeld;
128
+ private held;
129
+ /** A session whose file is gone was deleted; any other load failure keeps its wakeups. */
130
+ private deleted;
131
+ /** Admitted or settled wakeups (every one, with none given) leave the held file. */
132
+ private release;
133
+ private saveSession;
134
+ /**
135
+ * TAL-576: while the provider has no usable credentials no wakeup turn starts. The entries are held until a turn
136
+ * admits them, and a timer rechecks the pause at the pool's earliest retry deadline, at least every five minutes.
137
+ * Returns whether the wakeup is handled here (held, or dropped with its deleted session).
138
+ */
139
+ private holdWhilePaused;
76
140
  /** Python `_start_server_side_wakeup_turn`: one batched turn; 409 re-defers, other failures re-defer with a timed retry. */
77
141
  private startWakeup;
78
142
  /**
@@ -82,8 +146,12 @@ export declare class CompletionDrain {
82
146
  * A failed check delivers everything rather than lose a result.
83
147
  */
84
148
  private alreadyConsumed;
85
- /** Python `drain_deferred_wakeups_for_session`: turn-teardown idle hook; only the last active stream's teardown fires. */
149
+ /**
150
+ * Python `drain_deferred_wakeups_for_session`: turn-teardown idle hook; only the last active stream's teardown fires.
151
+ * TAL-576: one drain per session at a time, so two never copy the same held wakeups before either admits them.
152
+ */
86
153
  drainDeferred(sid: string): Promise<number>;
154
+ private drainDeferredNow;
87
155
  /** Reaper sweep: forget dedupe sets for sessions with nothing pending. */
88
156
  sweep(): void;
89
157
  }