@maudecode/talaria-web 1.18.0 → 1.20.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 (774) hide show
  1. package/_release.json +8 -8
  2. package/dist/api/auth-raw.js +16 -16
  3. package/dist/api/auth-raw.js.map +1 -1
  4. package/dist/api/automation-raw.d.ts +2 -2
  5. package/dist/api/automation-raw.js +93 -38
  6. package/dist/api/automation-raw.js.map +1 -1
  7. package/dist/api/automation-router.d.ts +99 -17
  8. package/dist/api/automation-router.js +22 -14
  9. package/dist/api/automation-router.js.map +1 -1
  10. package/dist/api/chat-router.d.ts +1433 -37
  11. package/dist/api/chat-router.js +205 -90
  12. package/dist/api/chat-router.js.map +1 -1
  13. package/dist/api/git-router.d.ts +6 -2
  14. package/dist/api/git-router.js +30 -30
  15. package/dist/api/git-router.js.map +1 -1
  16. package/dist/api/raw-routes.d.ts +3 -3
  17. package/dist/api/raw-routes.js +76 -62
  18. package/dist/api/raw-routes.js.map +1 -1
  19. package/dist/api/router.d.ts +5 -5
  20. package/dist/api/router.js +22 -22
  21. package/dist/api/router.js.map +1 -1
  22. package/dist/api/session-visibility.d.ts +4 -4
  23. package/dist/api/session-visibility.js +26 -16
  24. package/dist/api/session-visibility.js.map +1 -1
  25. package/dist/api/sessions-router.d.ts +2635 -151
  26. package/dist/api/sessions-router.js +193 -177
  27. package/dist/api/sessions-router.js.map +1 -1
  28. package/dist/api/settings-router.d.ts +450 -11
  29. package/dist/api/settings-router.js +102 -49
  30. package/dist/api/settings-router.js.map +1 -1
  31. package/dist/api/sse-routes.d.ts +2 -2
  32. package/dist/api/sse-routes.js +102 -80
  33. package/dist/api/sse-routes.js.map +1 -1
  34. package/dist/api/tools-raw.d.ts +5 -0
  35. package/dist/api/tools-raw.js +58 -33
  36. package/dist/api/tools-raw.js.map +1 -1
  37. package/dist/api/tools-router.d.ts +963 -109
  38. package/dist/api/tools-router.js +426 -72
  39. package/dist/api/tools-router.js.map +1 -1
  40. package/dist/api/transcribe-stream.d.ts +16 -0
  41. package/dist/api/transcribe-stream.js +172 -0
  42. package/dist/api/transcribe-stream.js.map +1 -0
  43. package/dist/app.d.ts +4 -1
  44. package/dist/app.js +80 -57
  45. package/dist/app.js.map +1 -1
  46. package/dist/auth/crypto.d.ts +3 -0
  47. package/dist/auth/crypto.js +18 -0
  48. package/dist/auth/crypto.js.map +1 -1
  49. package/dist/auth/gate.js +14 -9
  50. package/dist/auth/gate.js.map +1 -1
  51. package/dist/auth/passkeys.d.ts +15 -14
  52. package/dist/auth/passkeys.js +89 -91
  53. package/dist/auth/passkeys.js.map +1 -1
  54. package/dist/auth/store.d.ts +17 -7
  55. package/dist/auth/store.js +93 -52
  56. package/dist/auth/store.js.map +1 -1
  57. package/dist/bin/talaria-web.js +12 -81
  58. package/dist/bin/talaria-web.js.map +1 -1
  59. package/dist/cli/ctl.js +8 -2
  60. package/dist/cli/ctl.js.map +1 -1
  61. package/dist/cli/dotenv.d.ts +5 -0
  62. package/dist/cli/dotenv.js +14 -2
  63. package/dist/cli/dotenv.js.map +1 -1
  64. package/dist/cli/launcher.js +5 -5
  65. package/dist/cli/launcher.js.map +1 -1
  66. package/dist/cli/main.d.ts +1 -0
  67. package/dist/cli/main.js +90 -0
  68. package/dist/cli/main.js.map +1 -0
  69. package/dist/cli/supervise.d.ts +24 -0
  70. package/dist/cli/supervise.js +147 -6
  71. package/dist/cli/supervise.js.map +1 -1
  72. package/dist/config/agent-config.d.ts +37 -11
  73. package/dist/config/agent-config.js +146 -64
  74. package/dist/config/agent-config.js.map +1 -1
  75. package/dist/config.d.ts +2 -0
  76. package/dist/config.js +14 -5
  77. package/dist/config.js.map +1 -1
  78. package/dist/fs/atomic.d.ts +4 -0
  79. package/dist/fs/atomic.js +19 -2
  80. package/dist/fs/atomic.js.map +1 -1
  81. package/dist/fs/stat.d.ts +7 -0
  82. package/dist/fs/stat.js +27 -0
  83. package/dist/fs/stat.js.map +1 -0
  84. package/dist/http/context.d.ts +28 -9
  85. package/dist/http/context.js +77 -25
  86. package/dist/http/context.js.map +1 -1
  87. package/dist/onboarding.d.ts +2 -2
  88. package/dist/onboarding.js +10 -8
  89. package/dist/onboarding.js.map +1 -1
  90. package/dist/profiles/profiles.d.ts +12 -4
  91. package/dist/profiles/profiles.js +78 -30
  92. package/dist/profiles/profiles.js.map +1 -1
  93. package/dist/projects.d.ts +15 -6
  94. package/dist/projects.js +55 -47
  95. package/dist/projects.js.map +1 -1
  96. package/dist/providers/catalog.d.ts +85 -14
  97. package/dist/providers/catalog.js +502 -146
  98. package/dist/providers/catalog.js.map +1 -1
  99. package/dist/providers/env-file.d.ts +10 -3
  100. package/dist/providers/env-file.js +24 -75
  101. package/dist/providers/env-file.js.map +1 -1
  102. package/dist/providers/runtime-env.d.ts +4 -2
  103. package/dist/providers/runtime-env.js +9 -6
  104. package/dist/providers/runtime-env.js.map +1 -1
  105. package/dist/providers/tables.d.ts +3 -1
  106. package/dist/providers/tables.js +4 -2
  107. package/dist/providers/tables.js.map +1 -1
  108. package/dist/redact.js +56 -23
  109. package/dist/redact.js.map +1 -1
  110. package/dist/release.d.ts +7 -0
  111. package/dist/release.js +19 -3
  112. package/dist/release.js.map +1 -1
  113. package/dist/runtime.d.ts +5 -1
  114. package/dist/runtime.js +303 -96
  115. package/dist/runtime.js.map +1 -1
  116. package/dist/server.js +31 -18
  117. package/dist/server.js.map +1 -1
  118. package/dist/sessions/anchor.d.ts +11 -4
  119. package/dist/sessions/anchor.js +33 -37
  120. package/dist/sessions/anchor.js.map +1 -1
  121. package/dist/sessions/background-events.d.ts +2 -0
  122. package/dist/sessions/background-events.js +10 -0
  123. package/dist/sessions/background-events.js.map +1 -0
  124. package/dist/sessions/background-tasks.d.ts +49 -23
  125. package/dist/sessions/background-tasks.js +161 -89
  126. package/dist/sessions/background-tasks.js.map +1 -1
  127. package/dist/sessions/background-updates.d.ts +15 -8
  128. package/dist/sessions/background-updates.js +101 -25
  129. package/dist/sessions/background-updates.js.map +1 -1
  130. package/dist/sessions/cli-sessions.d.ts +23 -6
  131. package/dist/sessions/cli-sessions.js +84 -84
  132. package/dist/sessions/cli-sessions.js.map +1 -1
  133. package/dist/sessions/completions.d.ts +38 -2
  134. package/dist/sessions/completions.js +348 -77
  135. package/dist/sessions/completions.js.map +1 -1
  136. package/dist/sessions/compress.d.ts +8 -0
  137. package/dist/sessions/compress.js +2 -2
  138. package/dist/sessions/compress.js.map +1 -1
  139. package/dist/sessions/drafts.d.ts +14 -10
  140. package/dist/sessions/drafts.js +38 -43
  141. package/dist/sessions/drafts.js.map +1 -1
  142. package/dist/sessions/export.d.ts +2 -0
  143. package/dist/sessions/export.js +6 -2
  144. package/dist/sessions/export.js.map +1 -1
  145. package/dist/sessions/gateway-sessions.d.ts +86 -0
  146. package/dist/sessions/gateway-sessions.js +914 -0
  147. package/dist/sessions/gateway-sessions.js.map +1 -0
  148. package/dist/sessions/gateway-watcher.d.ts +10 -11
  149. package/dist/sessions/gateway-watcher.js +25 -21
  150. package/dist/sessions/gateway-watcher.js.map +1 -1
  151. package/dist/sessions/goals.d.ts +31 -0
  152. package/dist/sessions/goals.js +75 -0
  153. package/dist/sessions/goals.js.map +1 -0
  154. package/dist/sessions/journal.d.ts +5 -79
  155. package/dist/sessions/journal.js +15 -606
  156. package/dist/sessions/journal.js.map +1 -1
  157. package/dist/sessions/list.d.ts +34 -18
  158. package/dist/sessions/list.js +161 -147
  159. package/dist/sessions/list.js.map +1 -1
  160. package/dist/sessions/merge.d.ts +77 -13
  161. package/dist/sessions/merge.js +315 -65
  162. package/dist/sessions/merge.js.map +1 -1
  163. package/dist/sessions/notices.d.ts +22 -0
  164. package/dist/sessions/notices.js +72 -0
  165. package/dist/sessions/notices.js.map +1 -0
  166. package/dist/sessions/pending.d.ts +10 -4
  167. package/dist/sessions/pending.js +83 -7
  168. package/dist/sessions/pending.js.map +1 -1
  169. package/dist/sessions/prefix-index.d.ts +85 -0
  170. package/dist/sessions/prefix-index.js +243 -0
  171. package/dist/sessions/prefix-index.js.map +1 -0
  172. package/dist/sessions/recovery.d.ts +4 -7
  173. package/dist/sessions/recovery.js +100 -283
  174. package/dist/sessions/recovery.js.map +1 -1
  175. package/dist/sessions/relay.d.ts +20 -20
  176. package/dist/sessions/relay.js +205 -127
  177. package/dist/sessions/relay.js.map +1 -1
  178. package/dist/sessions/service.d.ts +251 -78
  179. package/dist/sessions/service.js +1510 -564
  180. package/dist/sessions/service.js.map +1 -1
  181. package/dist/sessions/session.d.ts +20 -2
  182. package/dist/sessions/session.js +33 -5
  183. package/dist/sessions/session.js.map +1 -1
  184. package/dist/sessions/shares.d.ts +7 -6
  185. package/dist/sessions/shares.js +22 -45
  186. package/dist/sessions/shares.js.map +1 -1
  187. package/dist/sessions/source-kind.js +1 -0
  188. package/dist/sessions/source-kind.js.map +1 -1
  189. package/dist/sessions/state-db-identity.d.ts +18 -0
  190. package/dist/sessions/state-db-identity.js +67 -0
  191. package/dist/sessions/state-db-identity.js.map +1 -0
  192. package/dist/sessions/state-db-worker.js +24 -5
  193. package/dist/sessions/state-db-worker.js.map +1 -1
  194. package/dist/sessions/state-db.d.ts +157 -21
  195. package/dist/sessions/state-db.js +1145 -204
  196. package/dist/sessions/state-db.js.map +1 -1
  197. package/dist/sessions/state-saved.d.ts +1 -1
  198. package/dist/sessions/state-saved.js +35 -11
  199. package/dist/sessions/state-saved.js.map +1 -1
  200. package/dist/sessions/storage/backend.d.ts +171 -0
  201. package/dist/sessions/storage/backend.js +19 -0
  202. package/dist/sessions/storage/backend.js.map +1 -0
  203. package/dist/sessions/storage/conformance.d.ts +20 -0
  204. package/dist/sessions/storage/conformance.js +237 -0
  205. package/dist/sessions/storage/conformance.js.map +1 -0
  206. package/dist/sessions/storage/document.d.ts +16 -0
  207. package/dist/sessions/storage/document.js +44 -0
  208. package/dist/sessions/storage/document.js.map +1 -0
  209. package/dist/sessions/storage/json-documents.d.ts +25 -0
  210. package/dist/sessions/storage/json-documents.js +277 -0
  211. package/dist/sessions/storage/json-documents.js.map +1 -0
  212. package/dist/sessions/storage/json-files.d.ts +23 -0
  213. package/dist/sessions/storage/json-files.js +244 -0
  214. package/dist/sessions/storage/json-files.js.map +1 -0
  215. package/dist/sessions/storage/json-installation.d.ts +3 -0
  216. package/dist/sessions/storage/json-installation.js +31 -0
  217. package/dist/sessions/storage/json-installation.js.map +1 -0
  218. package/dist/sessions/storage/json-journal.d.ts +113 -0
  219. package/dist/sessions/storage/json-journal.js +756 -0
  220. package/dist/sessions/storage/json-journal.js.map +1 -0
  221. package/dist/sessions/storage/json-recovery.d.ts +4 -0
  222. package/dist/sessions/storage/json-recovery.js +195 -0
  223. package/dist/sessions/storage/json-recovery.js.map +1 -0
  224. package/dist/sessions/storage/json.d.ts +82 -0
  225. package/dist/sessions/storage/json.js +350 -0
  226. package/dist/sessions/storage/json.js.map +1 -0
  227. package/dist/sessions/storage/row.d.ts +6 -0
  228. package/dist/sessions/storage/row.js +49 -0
  229. package/dist/sessions/storage/row.js.map +1 -0
  230. package/dist/sessions/storage/search-text.d.ts +4 -0
  231. package/dist/sessions/storage/search-text.js +16 -0
  232. package/dist/sessions/storage/search-text.js.map +1 -0
  233. package/dist/sessions/store.d.ts +67 -73
  234. package/dist/sessions/store.js +341 -607
  235. package/dist/sessions/store.js.map +1 -1
  236. package/dist/sessions/streams.d.ts +12 -7
  237. package/dist/sessions/streams.js +58 -15
  238. package/dist/sessions/streams.js.map +1 -1
  239. package/dist/sessions/titles.js +1 -1
  240. package/dist/sessions/titles.js.map +1 -1
  241. package/dist/sessions/todo.d.ts +5 -0
  242. package/dist/sessions/todo.js +28 -21
  243. package/dist/sessions/todo.js.map +1 -1
  244. package/dist/sessions/tool-display.d.ts +8 -5
  245. package/dist/sessions/tool-display.js +28 -16
  246. package/dist/sessions/tool-display.js.map +1 -1
  247. package/dist/sessions/turn-context.d.ts +10 -1
  248. package/dist/sessions/turn-context.js +13 -6
  249. package/dist/sessions/turn-context.js.map +1 -1
  250. package/dist/sessions/turn.d.ts +110 -22
  251. package/dist/sessions/turn.js +918 -380
  252. package/dist/sessions/turn.js.map +1 -1
  253. package/dist/sessions/wakeup-pause.d.ts +8 -13
  254. package/dist/sessions/wakeup-pause.js +31 -49
  255. package/dist/sessions/wakeup-pause.js.map +1 -1
  256. package/dist/sessions/window.js +13 -12
  257. package/dist/sessions/window.js.map +1 -1
  258. package/dist/settings.d.ts +19 -7
  259. package/dist/settings.js +179 -183
  260. package/dist/settings.js.map +1 -1
  261. package/dist/sidecar/client.d.ts +41 -4
  262. package/dist/sidecar/client.js +192 -42
  263. package/dist/sidecar/client.js.map +1 -1
  264. package/dist/sidecar/discover.d.ts +2 -1
  265. package/dist/sidecar/discover.js +93 -10
  266. package/dist/sidecar/discover.js.map +1 -1
  267. package/dist/sidecar/env.d.ts +4 -0
  268. package/dist/sidecar/env.js +3 -0
  269. package/dist/sidecar/env.js.map +1 -0
  270. package/dist/sidecar/fake.d.ts +6 -2
  271. package/dist/sidecar/fake.js +34 -4
  272. package/dist/sidecar/fake.js.map +1 -1
  273. package/dist/spa.d.ts +9 -4
  274. package/dist/spa.js +36 -12
  275. package/dist/spa.js.map +1 -1
  276. package/dist/startup-timing.d.ts +66 -0
  277. package/dist/startup-timing.js +129 -0
  278. package/dist/startup-timing.js.map +1 -0
  279. package/dist/test/env-file.d.ts +5 -0
  280. package/dist/test/env-file.js +88 -0
  281. package/dist/test/env-file.js.map +1 -0
  282. package/dist/test/fs-handles.d.ts +11 -0
  283. package/dist/test/fs-handles.js +31 -0
  284. package/dist/test/fs-handles.js.map +1 -0
  285. package/dist/test/harness.d.ts +1 -0
  286. package/dist/test/harness.js +1 -1
  287. package/dist/test/harness.js.map +1 -1
  288. package/dist/test/passkeys.d.ts +22 -0
  289. package/dist/test/passkeys.js +62 -0
  290. package/dist/test/passkeys.js.map +1 -0
  291. package/dist/test/storage.d.ts +15 -0
  292. package/dist/test/storage.js +26 -0
  293. package/dist/test/storage.js.map +1 -0
  294. package/dist/tools/commands.d.ts +6 -1
  295. package/dist/tools/commands.js +8 -2
  296. package/dist/tools/commands.js.map +1 -1
  297. package/dist/tools/connectors.d.ts +33 -0
  298. package/dist/tools/connectors.js +121 -0
  299. package/dist/tools/connectors.js.map +1 -0
  300. package/dist/tools/crons.d.ts +46 -5
  301. package/dist/tools/crons.js +100 -26
  302. package/dist/tools/crons.js.map +1 -1
  303. package/dist/tools/dashboard-plugins.d.ts +34 -5
  304. package/dist/tools/dashboard-plugins.js +146 -14
  305. package/dist/tools/dashboard-plugins.js.map +1 -1
  306. package/dist/tools/extensions.d.ts +5 -4
  307. package/dist/tools/extensions.js +213 -207
  308. package/dist/tools/extensions.js.map +1 -1
  309. package/dist/tools/gateway-restart.d.ts +82 -0
  310. package/dist/tools/gateway-restart.js +222 -0
  311. package/dist/tools/gateway-restart.js.map +1 -0
  312. package/dist/tools/health.d.ts +28 -4
  313. package/dist/tools/health.js +171 -50
  314. package/dist/tools/health.js.map +1 -1
  315. package/dist/tools/hygiene.d.ts +4 -3
  316. package/dist/tools/hygiene.js +23 -9
  317. package/dist/tools/hygiene.js.map +1 -1
  318. package/dist/tools/insights.d.ts +1 -1
  319. package/dist/tools/insights.js +2 -2
  320. package/dist/tools/insights.js.map +1 -1
  321. package/dist/tools/kanban.d.ts +4 -2
  322. package/dist/tools/kanban.js +28 -19
  323. package/dist/tools/kanban.js.map +1 -1
  324. package/dist/tools/mcp-health.js +74 -24
  325. package/dist/tools/mcp-health.js.map +1 -1
  326. package/dist/tools/mcp.js +19 -1
  327. package/dist/tools/mcp.js.map +1 -1
  328. package/dist/tools/memory-masks.d.ts +5 -0
  329. package/dist/tools/memory-masks.js +256 -0
  330. package/dist/tools/memory-masks.js.map +1 -0
  331. package/dist/tools/memory.d.ts +29 -3
  332. package/dist/tools/memory.js +69 -27
  333. package/dist/tools/memory.js.map +1 -1
  334. package/dist/tools/plugin-oauth.d.ts +14 -0
  335. package/dist/tools/plugin-oauth.js +53 -0
  336. package/dist/tools/plugin-oauth.js.map +1 -0
  337. package/dist/tools/plugin-settings.d.ts +15 -0
  338. package/dist/tools/plugin-settings.js +90 -0
  339. package/dist/tools/plugin-settings.js.map +1 -0
  340. package/dist/tools/prune-advice.d.ts +50 -0
  341. package/dist/tools/prune-advice.js +114 -0
  342. package/dist/tools/prune-advice.js.map +1 -0
  343. package/dist/tools/skills.d.ts +13 -5
  344. package/dist/tools/skills.js +53 -19
  345. package/dist/tools/skills.js.map +1 -1
  346. package/dist/tools/update-notifications.d.ts +102 -17
  347. package/dist/tools/update-notifications.js +400 -82
  348. package/dist/tools/update-notifications.js.map +1 -1
  349. package/dist/tools/update-rollback.d.ts +11 -0
  350. package/dist/tools/update-rollback.js +28 -0
  351. package/dist/tools/update-rollback.js.map +1 -0
  352. package/dist/tools/updates.d.ts +100 -33
  353. package/dist/tools/updates.js +1085 -345
  354. package/dist/tools/updates.js.map +1 -1
  355. package/dist/util.d.ts +2 -0
  356. package/dist/util.js +5 -0
  357. package/dist/util.js.map +1 -1
  358. package/dist/workspace/git.d.ts +16 -1
  359. package/dist/workspace/git.js +291 -11
  360. package/dist/workspace/git.js.map +1 -1
  361. package/dist/workspace/media.d.ts +12 -9
  362. package/dist/workspace/media.js +98 -38
  363. package/dist/workspace/media.js.map +1 -1
  364. package/dist/workspace/preview.js +4 -14
  365. package/dist/workspace/preview.js.map +1 -1
  366. package/dist/workspace/rollback.d.ts +8 -4
  367. package/dist/workspace/rollback.js +22 -12
  368. package/dist/workspace/rollback.js.map +1 -1
  369. package/dist/workspace/workspaces.d.ts +15 -19
  370. package/dist/workspace/workspaces.js +55 -127
  371. package/dist/workspace/workspaces.js.map +1 -1
  372. package/dist/workspace/worktrees.js +170 -32
  373. package/dist/workspace/worktrees.js.map +1 -1
  374. package/package.json +6 -4
  375. package/sidecar/agent_dependency.json +4 -4
  376. package/sidecar/agent_support.json +29 -0
  377. package/sidecar/scripts/record-fixtures.py +12 -3
  378. package/sidecar/scripts/replay_sidecar.py +8 -0
  379. package/sidecar/scripts/suite_runner.py +458 -0
  380. package/sidecar/scripts/test.sh +11 -5
  381. package/sidecar/talaria_sidecar/__init__.py +6 -1
  382. package/sidecar/talaria_sidecar/__main__.py +13 -4
  383. package/sidecar/talaria_sidecar/agent_mutation.py +1111 -0
  384. package/sidecar/talaria_sidecar/agent_services.py +1116 -0
  385. package/sidecar/talaria_sidecar/context_detail.py +59 -0
  386. package/sidecar/talaria_sidecar/dependency_sync.py +85 -0
  387. package/sidecar/talaria_sidecar/home.py +133 -14
  388. package/sidecar/talaria_sidecar/methods/__init__.py +2 -2
  389. package/sidecar/talaria_sidecar/methods/aux.py +211 -41
  390. package/sidecar/talaria_sidecar/methods/chat.py +1378 -200
  391. package/sidecar/talaria_sidecar/methods/checkpoints.py +29 -4
  392. package/sidecar/talaria_sidecar/methods/commands.py +483 -13
  393. package/sidecar/talaria_sidecar/methods/config.py +195 -6
  394. package/sidecar/talaria_sidecar/methods/connectors.py +375 -0
  395. package/sidecar/talaria_sidecar/methods/cron.py +374 -36
  396. package/sidecar/talaria_sidecar/methods/cron_execution.py +284 -0
  397. package/sidecar/talaria_sidecar/methods/dashboard_plugins.py +301 -0
  398. package/sidecar/talaria_sidecar/methods/gateway.py +215 -55
  399. package/sidecar/talaria_sidecar/methods/gateway_sessions.py +418 -0
  400. package/sidecar/talaria_sidecar/methods/goals.py +81 -41
  401. package/sidecar/talaria_sidecar/methods/kanban.py +82 -30
  402. package/sidecar/talaria_sidecar/methods/memory.py +84 -0
  403. package/sidecar/talaria_sidecar/methods/oauth.py +144 -13
  404. package/sidecar/talaria_sidecar/methods/plugin_catalog.py +198 -0
  405. package/sidecar/talaria_sidecar/methods/plugin_oauth.py +234 -0
  406. package/sidecar/talaria_sidecar/methods/process.py +229 -16
  407. package/sidecar/talaria_sidecar/methods/profiles.py +48 -9
  408. package/sidecar/talaria_sidecar/methods/providers.py +196 -26
  409. package/sidecar/talaria_sidecar/methods/runtime.py +71 -1
  410. package/sidecar/talaria_sidecar/methods/skills.py +83 -5
  411. package/sidecar/talaria_sidecar/methods/state_db.py +405 -112
  412. package/sidecar/talaria_sidecar/methods/stt.py +159 -78
  413. package/sidecar/talaria_sidecar/methods/text.py +14 -1
  414. package/sidecar/talaria_sidecar/methods/toolsets.py +51 -0
  415. package/sidecar/talaria_sidecar/methods/usage.py +113 -14
  416. package/sidecar/talaria_sidecar/methods/worktree.py +145 -19
  417. package/sidecar/talaria_sidecar/methods/write_approval.py +181 -0
  418. package/sidecar/talaria_sidecar/rpc.py +70 -7
  419. package/sidecar/talaria_sidecar/runtime.py +122 -14
  420. package/sidecar/talaria_sidecar/speed.py +47 -0
  421. package/sidecar/talaria_sidecar/startup_timing.py +119 -0
  422. package/static/dist/FILES.txt +242 -215
  423. package/static/dist/THIRD_PARTY_LICENSES.md +6 -22
  424. package/static/dist/assets/AppShell-3isgvoro.js +8 -0
  425. package/static/dist/assets/Button-f4n6dapf.js +1 -0
  426. package/static/dist/assets/ChatPage-k7b6xfax.js +4 -0
  427. package/static/dist/assets/ConnectTargets-juqvt5lm.js +1 -0
  428. package/static/dist/assets/Dialog-hta5utr3.js +1 -0
  429. package/static/dist/assets/ExtensionRoute-zrhjn0wm.js +1 -0
  430. package/static/dist/assets/Field-b6ez48oz.js +1 -0
  431. package/static/dist/assets/HubRoute-iwvso2tz.js +2 -0
  432. package/static/dist/assets/LinkCheckContext-ix6zqqkk.js +1 -0
  433. package/static/dist/assets/Markdown-jdeth7zq.js +2 -0
  434. package/static/dist/assets/MarkdownRenderer-fbswsgld.js +302 -0
  435. package/static/dist/assets/MarkdownRenderer-i9o6nr38.css +1 -0
  436. package/static/dist/assets/OAuthSignIn-bpd8hom3.js +1 -0
  437. package/static/dist/assets/ResourceSwitch-odi6dy2o.js +1 -0
  438. package/static/dist/assets/RightPanel-eu6enlo6.js +1 -0
  439. package/static/dist/assets/Select-kr07928w.js +1 -0
  440. package/static/dist/assets/SessionListPanel-etb2i54l.js +1 -0
  441. package/static/dist/assets/SettingsLayout-eu3xxp23.js +1 -0
  442. package/static/dist/assets/States-icab19yg.js +1 -0
  443. package/static/dist/assets/TerminalPanel-hngmsr8b.js +16 -0
  444. package/static/dist/assets/Toaster-nb2uzjw1.js +1 -0
  445. package/static/dist/assets/_app-ga1moszl.js +1 -0
  446. package/static/dist/assets/_app.ext._extensionId-na62087t.js +1 -0
  447. package/static/dist/assets/_app.index-jypgdqoi.js +1 -0
  448. package/static/dist/assets/_app.insights-kabejdtm.js +1 -0
  449. package/static/dist/assets/_app.kanban-m19kfcmx.js +1 -0
  450. package/static/dist/assets/_app.logs-iw4m96sz.js +1 -0
  451. package/static/dist/assets/_app.memory-jq5frwcg.js +1 -0
  452. package/static/dist/assets/_app.profiles-kwa3m7rp.js +1 -0
  453. package/static/dist/assets/_app.session._sessionId-o5lyeipj.js +1 -0
  454. package/static/dist/assets/_app.settings-ckl8hdll.js +1 -0
  455. package/static/dist/assets/_app.settings._section-dtdjk98a.js +3 -0
  456. package/static/dist/assets/_app.skills-n016rihd.js +1 -0
  457. package/static/dist/assets/_app.tasks-n8zuqsqe.js +1 -0
  458. package/static/dist/assets/_app.todos-btew5v2s.js +1 -0
  459. package/static/dist/assets/_app.workspaces-lnfk95ch.js +1 -0
  460. package/static/dist/assets/abnfDiagram-VCTEODGH-dttheegb.js +1 -0
  461. package/static/dist/assets/{angular-html-nu6l31w3.js → angular-html-l28bd5fo.js} +1 -1
  462. package/static/dist/assets/{angular-ts-fbx4f8mm.js → angular-ts-ffzx1vj0.js} +1 -1
  463. package/static/dist/assets/{apl-bx2xr7dh.js → apl-b7h7mmy4.js} +1 -1
  464. package/static/dist/assets/{arc-7popfhbk.js → arc-fk1b21lm.js} +1 -1
  465. package/static/dist/assets/architecture-7GRP2DOG-ic435919.js +1 -0
  466. package/static/dist/assets/architectureDiagram-5GKGNRK7-8r3glgiq.js +36 -0
  467. package/static/dist/assets/archive-il7c6053.js +1 -0
  468. package/static/dist/assets/{astro-g77i97cb.js → astro-k117fy0t.js} +1 -1
  469. package/static/dist/assets/back-gu3nu279.js +1 -0
  470. package/static/dist/assets/{blade-boo0u92y.js → blade-npefsmn8.js} +1 -1
  471. package/static/dist/assets/{blockDiagram-I7D4REHJ-jzthp1wa.js → blockDiagram-I7D4REHJ-jenyos6c.js} +4 -4
  472. package/static/dist/assets/{c-cat0w3sc.js → c-2umg6kbn.js} +1 -1
  473. package/static/dist/assets/{c4Diagram-7LVT6UL2-mwr67mt8.js → c4Diagram-7LVT6UL2-nzlx7yc4.js} +1 -1
  474. package/static/dist/assets/cancel-bsnfo36u.js +1 -0
  475. package/static/dist/assets/channel-dsbtk01y.js +1 -0
  476. package/static/dist/assets/{chunk-4HAMMTFA-gpq1y228.js → chunk-4HAMMTFA-g0cru63b.js} +20 -20
  477. package/static/dist/assets/{chunk-75Z2AOVW-ktje58c4.js → chunk-75Z2AOVW-7rkswkjw.js} +1 -1
  478. package/static/dist/assets/chunk-DU6HZSFF-fn73jzdo.js +128 -0
  479. package/static/dist/assets/{chunk-F27PBJKO-cmev85ti.js → chunk-F27PBJKO-oey8e72m.js} +1 -1
  480. package/static/dist/assets/{chunk-FOHPRMQF-opuflp73.js → chunk-FOHPRMQF-ipewusgj.js} +8 -8
  481. package/static/dist/assets/{chunk-GMAD6QVW-htjgt22y.js → chunk-GMAD6QVW-l2a32wiy.js} +6 -6
  482. package/static/dist/assets/{chunk-GVQU2GXP-qndvoxl7.js → chunk-GVQU2GXP-o9dwzh8h.js} +1 -1
  483. package/static/dist/assets/{chunk-IMKFNOWR-e5bkd5q6.js → chunk-IMKFNOWR-eblwj20b.js} +5 -5
  484. package/static/dist/assets/{chunk-L3NEJ4N5-mj1155r6.js → chunk-L3NEJ4N5-o2mufspb.js} +1 -1
  485. package/static/dist/assets/chunk-OSK3NFVY-ijp9pw29.js +10 -0
  486. package/static/dist/assets/{chunk-P2QGCYS3-f7t54xfm.js → chunk-P2QGCYS3-hs9hqwl4.js} +1 -1
  487. package/static/dist/assets/{chunk-POPQ4Y6H-i927v9oa.js → chunk-POPQ4Y6H-bp9rsqez.js} +1 -1
  488. package/static/dist/assets/{chunk-PWAF6VOD-m84lmnyt.js → chunk-PWAF6VOD-brkprov6.js} +1 -1
  489. package/static/dist/assets/{chunk-SHT3W25Y-mi0tlcu9.js → chunk-SHT3W25Y-gmpv0pxz.js} +13 -13
  490. package/static/dist/assets/{chunk-SVP7TREG-dnau702j.js → chunk-SVP7TREG-oldm08fu.js} +4 -4
  491. package/static/dist/assets/{chunk-TICWLB2K-edem1gkg.js → chunk-TICWLB2K-ooqilfv7.js} +6 -6
  492. package/static/dist/assets/{chunk-XXDRQBXY-n40pf9vy.js → chunk-XXDRQBXY-jkmnqu65.js} +1 -1
  493. package/static/dist/assets/classDiagram-ZZMXUADV-fvgcv24g.js +1 -0
  494. package/static/dist/assets/classDiagram-v2-VYDZK3BY-fvgcv24g.js +1 -0
  495. package/static/dist/assets/{cobol-go622aep.js → cobol-ssf9hkh7.js} +1 -1
  496. package/static/dist/assets/{coffee-jwo1xjhq.js → coffee-lsi9fwae.js} +1 -1
  497. package/static/dist/assets/copied-bz3gkazh.js +1 -0
  498. package/static/dist/assets/copy-jo006coq.js +1 -0
  499. package/static/dist/assets/cose-bilkent-JH36ORCC-layy2r27.js +1 -0
  500. package/static/dist/assets/{cpp-nre7j0kq.js → cpp-lfrh4y55.js} +1 -1
  501. package/static/dist/assets/{crystal-lviso2je.js → crystal-efh4pte7.js} +1 -1
  502. package/static/dist/assets/{css-ywz9j4hb.js → css-i82qdo89.js} +1 -1
  503. package/static/dist/assets/cynefin-OW5HDTMX-d47op7qs.js +1 -0
  504. package/static/dist/assets/cynefinDiagram-5FMLGOSQ-doa7594y.js +62 -0
  505. package/static/dist/assets/cytoscape.esm-fjn2algp.js +321 -0
  506. package/static/dist/assets/dagre-GXQ25YYZ-os768dp4.js +4 -0
  507. package/static/dist/assets/dagre-o5jmjz46.js +1 -0
  508. package/static/dist/assets/{diagram-S7CK7UJ4-l8abxaes.js → diagram-S7CK7UJ4-fyi81nxd.js} +4 -4
  509. package/static/dist/assets/diagram-UQ7AKVKN-j3exggaq.js +41 -0
  510. package/static/dist/assets/{diagram-VSXAHHWV-fnky6lvc.js → diagram-VSXAHHWV-omo1en2l.js} +1 -1
  511. package/static/dist/assets/diagram-VX7I27RA-oro2cyu0.js +24 -0
  512. package/static/dist/assets/diagram-Z3DM3KII-byt9vdb7.js +24 -0
  513. package/static/dist/assets/dist-crc46di9.js +7 -0
  514. package/static/dist/assets/dist-etpoyscq.js +44 -0
  515. package/static/dist/assets/{dist-c4c2m3kv.js → dist-nb670eu6.js} +1 -1
  516. package/static/dist/assets/ebnfDiagram-PWID7BFC-ee3haugh.js +1 -0
  517. package/static/dist/assets/{edge-dvv35byi.js → edge-lrob635n.js} +1 -1
  518. package/static/dist/assets/{elixir-i2f1ki1g.js → elixir-kdpxeq93.js} +1 -1
  519. package/static/dist/assets/{elm-cpepyjm4.js → elm-c8irj9uh.js} +1 -1
  520. package/static/dist/assets/erDiagram-RLTQ6QDP-d1e93yff.js +99 -0
  521. package/static/dist/assets/{erb-idlyfheg.js → erb-flwsv146.js} +1 -1
  522. package/static/dist/assets/eventmodeling-NTZA5JFV-i1ihb40c.js +1 -0
  523. package/static/dist/assets/flowDiagram-HODETNUW-jahfpiod.js +1 -0
  524. package/static/dist/assets/folder-plus-ivoglq98.js +1 -0
  525. package/static/dist/assets/{ganttDiagram-EL5Y4UJY-ngbsyp37.js → ganttDiagram-EL5Y4UJY-m7g0jud4.js} +1 -1
  526. package/static/dist/assets/{git-rebase-d9lpfpbn.js → git-rebase-bli19aoq.js} +1 -1
  527. package/static/dist/assets/gitGraph-4MIJSDKK-hzdj07yy.js +1 -0
  528. package/static/dist/assets/{gitGraphDiagram-WWUBYQGX-eravdti4.js → gitGraphDiagram-WWUBYQGX-dm9agbna.js} +1 -1
  529. package/static/dist/assets/{glimmer-js-39i0urfb.js → glimmer-js-d4icg38p.js} +1 -1
  530. package/static/dist/assets/{glimmer-ts-gdtd6n73.js → glimmer-ts-bk75772u.js} +1 -1
  531. package/static/dist/assets/{glsl-o1djm5pp.js → glsl-lqormp2b.js} +1 -1
  532. package/static/dist/assets/{graphql-kj6rz55t.js → graphql-hw6s5qzd.js} +1 -1
  533. package/static/dist/assets/{hack-pe1qqr2i.js → hack-ozrv6l4d.js} +1 -1
  534. package/static/dist/assets/{haml-cknnbcqs.js → haml-gytfosdt.js} +1 -1
  535. package/static/dist/assets/{handlebars-hwq64orh.js → handlebars-b6g7jffd.js} +1 -1
  536. package/static/dist/assets/highlighted-body-KPVGNVTW-mmgz2czu.js +1 -0
  537. package/static/dist/assets/host-fr6lni1p.js +1 -0
  538. package/static/dist/assets/{html-derivative-h2i2pyjc.js → html-derivative-f1tqcroo.js} +1 -1
  539. package/static/dist/assets/{html-ha05xtvt.js → html-on6oj6yj.js} +1 -1
  540. package/static/dist/assets/{http-cf94zu27.js → http-odhufsl7.js} +1 -1
  541. package/static/dist/assets/{hurl-lslax568.js → hurl-mu680336.js} +1 -1
  542. package/static/dist/assets/index-73649w7o.js +10 -0
  543. package/static/dist/assets/index-lhf1fsdf.css +2 -0
  544. package/static/dist/assets/info-A6RAGUB7-lll1dqmm.js +1 -0
  545. package/static/dist/assets/infoDiagram-27XIBGKW-k7esc639.js +2 -0
  546. package/static/dist/assets/{ishikawaDiagram-5VMMS53U-i6ypq351.js → ishikawaDiagram-5VMMS53U-lgr6k9wo.js} +6 -6
  547. package/static/dist/assets/{java-ndjf2o89.js → java-nxbe8uju.js} +1 -1
  548. package/static/dist/assets/{javascript-coftlwy3.js → javascript-lz3kxcyz.js} +1 -1
  549. package/static/dist/assets/{jinja-etei9wy7.js → jinja-l5pk84gt.js} +1 -1
  550. package/static/dist/assets/{jison-hyekgft1.js → jison-jdutdwyy.js} +1 -1
  551. package/static/dist/assets/{journeyDiagram-3NMN7TZE-lduf1z95.js → journeyDiagram-3NMN7TZE-ndmbxuqk.js} +1 -1
  552. package/static/dist/assets/{json-lok0yaho.js → json-dnge4ssf.js} +1 -1
  553. package/static/dist/assets/{jsx-b64w0nbx.js → jsx-c3lwhkep.js} +1 -1
  554. package/static/dist/assets/{jsx-runtime-eu92a5pu.js → jsx-runtime-o40ukmjl.js} +1 -1
  555. package/static/dist/assets/{julia-jxxzz2yn.js → julia-hwd4rrcb.js} +1 -1
  556. package/static/dist/assets/{just-mc29iw9t.js → just-nka3oxdx.js} +1 -1
  557. package/static/dist/assets/{kanban-definition-UXKFOSKX-e18bu4pg.js → kanban-definition-UXKFOSKX-mjxym0jp.js} +28 -28
  558. package/static/dist/assets/katex-cbdd1ohw.css +1 -0
  559. package/static/dist/assets/katex-pbij2oo6.js +257 -0
  560. package/static/dist/assets/{latex-pafa03ft.js → latex-iqmr7e40.js} +1 -1
  561. package/static/dist/assets/lazyRouteComponent-cwb6l7xh.js +1 -0
  562. package/static/dist/assets/{line-meizqsvn.js → line-mtr5k6il.js} +1 -1
  563. package/static/dist/assets/linear-jlwrvvy6.js +1 -0
  564. package/static/dist/assets/link-iadw4ghw.js +2 -0
  565. package/static/dist/assets/{liquid-hz5c2pov.js → liquid-okmk9tbp.js} +1 -1
  566. package/static/dist/assets/locale-cs-n41hptse.js +5 -0
  567. package/static/dist/assets/locale-de-k7ht47ew.js +5 -0
  568. package/static/dist/assets/locale-es-ih078lco.js +5 -0
  569. package/static/dist/assets/locale-fr-ojabnf41.js +5 -0
  570. package/static/dist/assets/locale-it-kb96jufy.js +5 -0
  571. package/static/dist/assets/locale-ja-jpsp3xs1.js +7 -0
  572. package/static/dist/assets/locale-ko-cpzuy0n7.js +5 -0
  573. package/static/dist/assets/locale-pl-dbap4leu.js +5 -0
  574. package/static/dist/assets/locale-pt-nci7w72x.js +5 -0
  575. package/static/dist/assets/locale-ru-soghe4cs.js +7 -0
  576. package/static/dist/assets/locale-tr-ks00mu68.js +5 -0
  577. package/static/dist/assets/locale-vi-ij7twfm6.js +5 -0
  578. package/static/dist/assets/locale-zh-Hant-feakwr7a.js +5 -0
  579. package/static/dist/assets/locale-zh-ren0vjyv.js +7 -0
  580. package/static/dist/assets/login-lkhtzfcl.js +1 -0
  581. package/static/dist/assets/{lua-leyf8mlb.js → lua-krx4xj5h.js} +1 -1
  582. package/static/dist/assets/{marko-cn1fzpdv.js → marko-gbvpfehz.js} +1 -1
  583. package/static/dist/assets/{mdc-huhy88df.js → mdc-c21zlyi5.js} +1 -1
  584. package/static/dist/assets/mermaid-HWGCJPDP-jx0q5dm2.js +1 -0
  585. package/static/dist/assets/mermaid-parser.core-k91vdnvi.js +7 -0
  586. package/static/dist/assets/micromark-factory-space-fnmnpi6s.js +1 -0
  587. package/static/dist/assets/{mindmap-definition-YA3MSWOX-27b26eok.js → mindmap-definition-YA3MSWOX-ehztfea4.js} +28 -28
  588. package/static/dist/assets/{nginx-e7lvhsmn.js → nginx-f3d68ed4.js} +1 -1
  589. package/static/dist/assets/{nim-dun5d8mk.js → nim-dw0jcy70.js} +1 -1
  590. package/static/dist/assets/onboarding-f67z0a2r.js +1 -0
  591. package/static/dist/assets/packet-AYTQ26CC-ok2xrblz.js +1 -0
  592. package/static/dist/assets/pcmTap.worklet-74EKjWAZ.js +1 -0
  593. package/static/dist/assets/pegDiagram-XKGWAZYB-ec3rpj0m.js +1 -0
  594. package/static/dist/assets/{perl-bj3oqtet.js → perl-3c0r45c8.js} +1 -1
  595. package/static/dist/assets/{php-buzp12r0.js → php-rznhidvp.js} +1 -1
  596. package/static/dist/assets/pie-WAS4IAKB-iwkir23u.js +1 -0
  597. package/static/dist/assets/pieDiagram-E7YTZNPT-fcpqpekh.js +39 -0
  598. package/static/dist/assets/{pug-mjad7he9.js → pug-f2le4f3y.js} +1 -1
  599. package/static/dist/assets/{qml-d1gdp10s.js → qml-e2wbq9cr.js} +1 -1
  600. package/static/dist/assets/{quadrantDiagram-AXDQQJYC-hhue7d8o.js → quadrantDiagram-AXDQQJYC-lqsync43.js} +1 -1
  601. package/static/dist/assets/queryKeys-ed4n2egc.js +9 -0
  602. package/static/dist/assets/{r-o3r9c7ao.js → r-epfzuw6q.js} +1 -1
  603. package/static/dist/assets/radar-RG4KPBEZ-hje4jbk6.js +1 -0
  604. package/static/dist/assets/railroad-74A4TZTK-gll9n6qi.js +1 -0
  605. package/static/dist/assets/railroad-abnf-HS5TGJTU-o6h6lpn4.js +1 -0
  606. package/static/dist/assets/railroad-ebnf-LZEXJU2U-juaefj6o.js +1 -0
  607. package/static/dist/assets/railroad-peg-WCYAUIDC-cgfhvpah.js +1 -0
  608. package/static/dist/assets/railroadDiagram-O6MQD6OU-lp3w7awf.js +1 -0
  609. package/static/dist/assets/{razor-ilc585yr.js → razor-pea1u1d0.js} +1 -1
  610. package/static/dist/assets/refresh-cw-iccm7a4e.js +1 -0
  611. package/static/dist/assets/refresh-i9ya9dvl.js +1 -0
  612. package/static/dist/assets/{regexp-mpjtcvwm.js → regexp-hzte0a5x.js} +1 -1
  613. package/static/dist/assets/registry-g7w3353u.js +1 -0
  614. package/static/dist/assets/requirementDiagram-BXWQKSXE-ha8eibcf.js +84 -0
  615. package/static/dist/assets/rolldown-runtime-bnnw9q4a.js +1 -0
  616. package/static/dist/assets/{rst-jrkwjdyi.js → rst-m6tugj5o.js} +1 -1
  617. package/static/dist/assets/{ruby-n4tjcbpz.js → ruby-l19vq3w1.js} +1 -1
  618. package/static/dist/assets/runtime-nlxpnegr.js +1 -0
  619. package/static/dist/assets/{sankeyDiagram-P5KCCOFB-fqb8xcjf.js → sankeyDiagram-P5KCCOFB-oxf31pr9.js} +1 -1
  620. package/static/dist/assets/{sas-hjo6y93k.js → sas-ktdxo397.js} +1 -1
  621. package/static/dist/assets/{scss-ncidjv48.js → scss-kn3oxfwf.js} +1 -1
  622. package/static/dist/assets/{sequenceDiagram-WJ2MYXX4-dlcz6qjz.js → sequenceDiagram-WJ2MYXX4-jiq8lhyo.js} +11 -11
  623. package/static/dist/assets/settings_section_extensions_title-fadc7o65.js +1 -0
  624. package/static/dist/assets/share._token-o76ki0ly.js +2 -0
  625. package/static/dist/assets/{shellscript-m8whjpqd.js → shellscript-l100jtrg.js} +1 -1
  626. package/static/dist/assets/{shellsession-i5bj6syz.js → shellsession-m5qukwow.js} +1 -1
  627. package/static/dist/assets/sizeCapture-INFHLROL-dk1io13w.js +1 -0
  628. package/static/dist/assets/sliders-horizontal-ddcs88av.js +1 -0
  629. package/static/dist/assets/{soy-hhh36ysq.js → soy-mexlscur.js} +1 -1
  630. package/static/dist/assets/{sql-j21bzcl6.js → sql-o0ho5suh.js} +1 -1
  631. package/static/dist/assets/src-h89s0hs4.js +1 -0
  632. package/static/dist/assets/{stata-bbu2onh1.js → stata-be9ck1q3.js} +1 -1
  633. package/static/dist/assets/stateDiagram-D77RDMKH-f3fslnon.js +1 -0
  634. package/static/dist/assets/stateDiagram-v2-MP3YSRHH-hlt6yphw.js +1 -0
  635. package/static/dist/assets/{surrealql-l5vczuco.js → surrealql-gk1xkkyy.js} +1 -1
  636. package/static/dist/assets/{svelte-idn422g6.js → svelte-k6ecjilf.js} +1 -1
  637. package/static/dist/assets/swimlanes-42K2YHIH-k1hmk7jf.js +1 -0
  638. package/static/dist/assets/swimlanesDiagram-VR7AAH4N-hd5t9tnt.js +8 -0
  639. package/static/dist/assets/{templ-e22qou3c.js → templ-gf3bftk6.js} +1 -1
  640. package/static/dist/assets/{tex-deqpc5ee.js → tex-d21fqv1z.js} +1 -1
  641. package/static/dist/assets/{timeline-definition-24CTP7MA-b1vl2zil.js → timeline-definition-24CTP7MA-n3ncfy9r.js} +8 -8
  642. package/static/dist/assets/toast-liparz2j.js +56 -0
  643. package/static/dist/assets/treeView-Q6P3EWNA-l3y2pejt.js +1 -0
  644. package/static/dist/assets/treemap-WGGIJYW6-jown9axh.js +1 -0
  645. package/static/dist/assets/{ts-tags-ctnibc27.js → ts-tags-n0g61gr6.js} +1 -1
  646. package/static/dist/assets/{tsx-i163n32g.js → tsx-cvv7wv6q.js} +1 -1
  647. package/static/dist/assets/{twig-x0fi7wm8.js → twig-n1f67204.js} +1 -1
  648. package/static/dist/assets/{typescript-g18c34xz.js → typescript-og7o55cx.js} +1 -1
  649. package/static/dist/assets/untitled-mj86r4gz.js +1 -0
  650. package/static/dist/assets/useDebounced-g8r0ggve.js +1 -0
  651. package/static/dist/assets/useForm-o4uu74mx.js +1 -0
  652. package/static/dist/assets/{useParams-b4dq6n4q.js → useParams-ftsveu84.js} +1 -1
  653. package/static/dist/assets/{useSearch-ipfmv3he.js → useSearch-crqueqga.js} +1 -1
  654. package/static/dist/assets/vennDiagram-4TSXK5OY-dh59uq1c.js +34 -0
  655. package/static/dist/assets/{vue-mwu5l1bb.js → vue-ej4xpwqw.js} +1 -1
  656. package/static/dist/assets/{vue-html-nskj3du0.js → vue-html-d48xsjuo.js} +1 -1
  657. package/static/dist/assets/{vue-vine-cqe77smq.js → vue-vine-pev88ip6.js} +1 -1
  658. package/static/dist/assets/wardley-WFR3VGLG-e6d74b0j.js +1 -0
  659. package/static/dist/assets/wardleyDiagram-VM6X3IG4-hnofh78f.js +78 -0
  660. package/static/dist/assets/with-selector-nu1b5z0v.js +1 -0
  661. package/static/dist/assets/{xml-gau7gvrv.js → xml-ifxp6gqb.js} +1 -1
  662. package/static/dist/assets/{xsl-ew09zq8b.js → xsl-fug2cckc.js} +1 -1
  663. package/static/dist/assets/{xychartDiagram-S5SC5T6Z-e49523ab.js → xychartDiagram-S5SC5T6Z-bpymjelb.js} +6 -6
  664. package/static/dist/assets/{yaml-ofnrxtvf.js → yaml-fjmafnlo.js} +1 -1
  665. package/static/dist/extension-sdk.js +1 -1
  666. package/static/dist/index.html +1 -1
  667. package/static/dist/sw.js +180 -136
  668. package/static/dist/assets/AppShell-g3bkgnvt.js +0 -1
  669. package/static/dist/assets/ChatPage-oo7bdan6.js +0 -25
  670. package/static/dist/assets/Dialog-g355qxhp.js +0 -1
  671. package/static/dist/assets/ExtensionRoute-i2y9fvjm.js +0 -1
  672. package/static/dist/assets/HubRoute-lmkrbw47.js +0 -2
  673. package/static/dist/assets/Markdown-j4kut4j2.js +0 -598
  674. package/static/dist/assets/Markdown-lwviulmg.css +0 -1
  675. package/static/dist/assets/RightPanel-ohlsdzfl.js +0 -1
  676. package/static/dist/assets/Select-kddq75qc.js +0 -1
  677. package/static/dist/assets/SessionListPanel-lu3oy0hw.js +0 -1
  678. package/static/dist/assets/SettingsLayout-o9bv4mgb.js +0 -1
  679. package/static/dist/assets/States-eq6fe29m.js +0 -1
  680. package/static/dist/assets/Toaster-pc247u9f.js +0 -1
  681. package/static/dist/assets/_app-f8n1i0m1.js +0 -1
  682. package/static/dist/assets/_app.ext._extensionId-gfbzpoou.js +0 -1
  683. package/static/dist/assets/_app.index-bzzv80hk.js +0 -1
  684. package/static/dist/assets/_app.insights-dzixbryi.js +0 -1
  685. package/static/dist/assets/_app.kanban-c6hep2us.js +0 -1
  686. package/static/dist/assets/_app.logs-i69qds98.js +0 -1
  687. package/static/dist/assets/_app.memory-kl4vf0gd.js +0 -1
  688. package/static/dist/assets/_app.profiles-b8zinmyp.js +0 -1
  689. package/static/dist/assets/_app.session._sessionId-fn1bhde6.js +0 -1
  690. package/static/dist/assets/_app.settings-cg8plwmf.js +0 -1
  691. package/static/dist/assets/_app.settings._section-bkwbi9zn.js +0 -3
  692. package/static/dist/assets/_app.skills-cs47sbvs.js +0 -1
  693. package/static/dist/assets/_app.tasks-dwvk64tc.js +0 -1
  694. package/static/dist/assets/_app.todos-c8xjm8p3.js +0 -1
  695. package/static/dist/assets/_app.workspaces-ehvd1gds.js +0 -1
  696. package/static/dist/assets/abnfDiagram-VCTEODGH-c8kdixke.js +0 -1
  697. package/static/dist/assets/architecture-7GRP2DOG-6crvnylg.js +0 -1
  698. package/static/dist/assets/architectureDiagram-5GKGNRK7-cku06x1p.js +0 -36
  699. package/static/dist/assets/back-h7aun7ew.js +0 -1
  700. package/static/dist/assets/cancel-fhi0vcnu.js +0 -1
  701. package/static/dist/assets/channel-b2zo73z1.js +0 -1
  702. package/static/dist/assets/chunk-DU6HZSFF-ofajdixh.js +0 -128
  703. package/static/dist/assets/chunk-OSK3NFVY-e7gkikcw.js +0 -10
  704. package/static/dist/assets/classDiagram-ZZMXUADV-oe99st8x.js +0 -1
  705. package/static/dist/assets/classDiagram-v2-VYDZK3BY-oe99st8x.js +0 -1
  706. package/static/dist/assets/copied-hcplv46p.js +0 -1
  707. package/static/dist/assets/copy-magtofyp.js +0 -1
  708. package/static/dist/assets/cose-bilkent-JH36ORCC-eclcy6ja.js +0 -1
  709. package/static/dist/assets/cynefin-OW5HDTMX-siqlulkl.js +0 -1
  710. package/static/dist/assets/cynefinDiagram-5FMLGOSQ-i648tah9.js +0 -62
  711. package/static/dist/assets/cytoscape.esm-bqu53u12.js +0 -321
  712. package/static/dist/assets/dagre-GXQ25YYZ-mwn6uc17.js +0 -4
  713. package/static/dist/assets/dagre-lkoknbjn.js +0 -1
  714. package/static/dist/assets/diagram-UQ7AKVKN-mekq7zgq.js +0 -41
  715. package/static/dist/assets/diagram-VX7I27RA-xe6r5qfw.js +0 -24
  716. package/static/dist/assets/diagram-Z3DM3KII-nq07dg7k.js +0 -24
  717. package/static/dist/assets/ebnfDiagram-PWID7BFC-c62ipm3g.js +0 -1
  718. package/static/dist/assets/endpoints-klbxod4t.js +0 -64
  719. package/static/dist/assets/erDiagram-RLTQ6QDP-h39kmnzy.js +0 -99
  720. package/static/dist/assets/eventmodeling-NTZA5JFV-obfede4u.js +0 -1
  721. package/static/dist/assets/flowDiagram-HODETNUW-kdpsp1je.js +0 -1
  722. package/static/dist/assets/gitGraph-4MIJSDKK-fr2i7caa.js +0 -1
  723. package/static/dist/assets/highlighted-body-KPVGNVTW-jwpop9p8.js +0 -1
  724. package/static/dist/assets/host-i828xuo7.js +0 -1
  725. package/static/dist/assets/index-eh8zilnv.css +0 -2
  726. package/static/dist/assets/index-r648f4o1.js +0 -11
  727. package/static/dist/assets/info-A6RAGUB7-h11x0dxo.js +0 -1
  728. package/static/dist/assets/infoDiagram-27XIBGKW-dfh47dw9.js +0 -2
  729. package/static/dist/assets/lazyRouteComponent-e1y4t2i9.js +0 -1
  730. package/static/dist/assets/linear-becwlnhk.js +0 -1
  731. package/static/dist/assets/link-oot2yn73.js +0 -1
  732. package/static/dist/assets/login-gu28l9ou.js +0 -1
  733. package/static/dist/assets/mermaid-HWGCJPDP-mtwrj8fn.js +0 -1
  734. package/static/dist/assets/mermaid-parser.core-ntne45i9.js +0 -7
  735. package/static/dist/assets/not-found-ccnnac39.js +0 -1
  736. package/static/dist/assets/onboarding-lkphzu1s.js +0 -1
  737. package/static/dist/assets/onboarding_model_label-ftpjdwqk.js +0 -1
  738. package/static/dist/assets/packet-AYTQ26CC-l6jdka8p.js +0 -1
  739. package/static/dist/assets/pegDiagram-XKGWAZYB-g1er3bxj.js +0 -1
  740. package/static/dist/assets/pie-WAS4IAKB-i0ylcrt9.js +0 -1
  741. package/static/dist/assets/pieDiagram-E7YTZNPT-fbz1e55z.js +0 -39
  742. package/static/dist/assets/radar-RG4KPBEZ-f9b70aa4.js +0 -1
  743. package/static/dist/assets/railroad-74A4TZTK-lgsuoeda.js +0 -1
  744. package/static/dist/assets/railroad-abnf-HS5TGJTU-nf9d6pdx.js +0 -1
  745. package/static/dist/assets/railroad-ebnf-LZEXJU2U-f7ummkt5.js +0 -1
  746. package/static/dist/assets/railroad-peg-WCYAUIDC-oczq5tqs.js +0 -1
  747. package/static/dist/assets/railroadDiagram-O6MQD6OU-eqpy9fnz.js +0 -1
  748. package/static/dist/assets/refresh-abtu93ke.js +0 -1
  749. package/static/dist/assets/refresh-cw-hlwb02qv.js +0 -1
  750. package/static/dist/assets/requirementDiagram-BXWQKSXE-ogf6puhi.js +0 -84
  751. package/static/dist/assets/rolldown-runtime-b9miacsj.js +0 -1
  752. package/static/dist/assets/root-mbklpuv4.js +0 -1
  753. package/static/dist/assets/saved-girnabkf.js +0 -1
  754. package/static/dist/assets/settings_section_extensions_title-h14cwk6f.js +0 -1
  755. package/static/dist/assets/share._token-kl0r7ido.js +0 -2
  756. package/static/dist/assets/sizeCapture-INFHLROL-g612l48j.js +0 -1
  757. package/static/dist/assets/sliders-horizontal-n1zm34qq.js +0 -1
  758. package/static/dist/assets/src-hjyib4mu.js +0 -1
  759. package/static/dist/assets/sse-iwku0sjo.js +0 -1
  760. package/static/dist/assets/stateDiagram-D77RDMKH-fyoznpcs.js +0 -1
  761. package/static/dist/assets/stateDiagram-v2-MP3YSRHH-ixhx8r46.js +0 -1
  762. package/static/dist/assets/swimlanes-42K2YHIH-oefldhfy.js +0 -1
  763. package/static/dist/assets/swimlanesDiagram-VR7AAH4N-h9ersk2e.js +0 -8
  764. package/static/dist/assets/todoStore-jjr5yr78.js +0 -1
  765. package/static/dist/assets/treeView-Q6P3EWNA-f7hcci5o.js +0 -1
  766. package/static/dist/assets/treemap-WGGIJYW6-nl85071a.js +0 -1
  767. package/static/dist/assets/units-kgxzxfhi.js +0 -1
  768. package/static/dist/assets/untitled-cikfjntn.js +0 -1
  769. package/static/dist/assets/useForm-kqoqg0k9.js +0 -1
  770. package/static/dist/assets/useLocale-o59tbiea.js +0 -1
  771. package/static/dist/assets/vennDiagram-4TSXK5OY-h5hzbk0n.js +0 -34
  772. package/static/dist/assets/wardley-WFR3VGLG-jftvpm3e.js +0 -1
  773. package/static/dist/assets/wardleyDiagram-VM6X3IG4-hedh85ge.js +0 -78
  774. /package/static/dist/assets/{ChatPage-gmu5c7lf.css → TerminalPanel-gmu5c7lf.css} +0 -0
@@ -1,9 +1,10 @@
1
+ import { type ContextDetail } from '@maudecode/talaria-web-contracts';
1
2
  /**
2
3
  * Route-level session operations (the Python `/api/session*` handlers): the
3
4
  * detail payload, list and search, and every mutation with its guards.
4
5
  * Runtime concerns owned by other domains arrive through `SessionServiceDeps`.
5
6
  */
6
- import type { PendingSteer, RecoveryAudit, RecoveryRepair } from '@maudecode/talaria-web-contracts';
7
+ import type { AgentStorage, ChatReadiness, PendingSteer, RecoveryAudit, RunStatus, SessionGoal, SessionNotice, RecoveryRepair, SidecarResult } from '@maudecode/talaria-web-contracts';
7
8
  import type { RunJournal } from './journal.js';
8
9
  import type { DraftStore } from './drafts.js';
9
10
  import type { SessionEventBus } from './events.js';
@@ -11,7 +12,7 @@ import { type ListParams, type ListResponse, type Row, type RuntimeOverlay } fro
11
12
  import { Session, titleFrom, type Message } from './session.js';
12
13
  import { type SessionStore } from './store.js';
13
14
  import { type ClaudeCodeSessionSource } from './claude-code.js';
14
- import { type StateDbRead } from './state-db.js';
15
+ import { type stateDbSessionRow, type StateDbRead, type StateDbSessionSource, type StateDbSettlementRead } from './state-db.js';
15
16
  import { type CompressionJob } from './compress.js';
16
17
  import { type SidecarLike } from '../sidecar/client.js';
17
18
  import { type ToolResultView } from './merge.js';
@@ -21,6 +22,7 @@ import { type ShareStore } from './shares.js';
21
22
  import { type MediaAccessDeps } from '../workspace/media.js';
22
23
  import { type MediaProjection } from '../workspace/media-refs.js';
23
24
  import type { ProjectStore } from '../projects.js';
25
+ import type { GatewaySessions } from './gateway-sessions.js';
24
26
  export declare class HttpFailure extends Error {
25
27
  readonly status: number;
26
28
  readonly extra: Record<string, unknown>;
@@ -28,12 +30,30 @@ export declare class HttpFailure extends Error {
28
30
  }
29
31
  /**
30
32
  * Python `_agent_runtime_barrier_response`: a stale local Agent checkout is refused with a typed 409 before the caller
31
- * mutates anything. Any other failure of the check is not a verdict and lets the caller proceed.
33
+ * mutates anything. An unavailable connection is refused before dispatch; other check failures are not a verdict
34
+ * and let the caller proceed.
32
35
  */
33
36
  export declare function ensureAgentRuntimeCurrent(sidecar: SidecarLike | null): Promise<void>;
37
+ /** TAL-1254: how soon a worktree lock the sidecar could not confirm is tried again. */
38
+ export declare const WORKTREE_RETAIN_RETRY_MS = 60000;
39
+ /**
40
+ * TAL-951: whether a chat turn would be admitted now. Ready and source-stale incompatible sidecars both run turn
41
+ * admission's live check: recovery state can change after the handshake. A check
42
+ * that cannot answer fails closed as `sidecar_unavailable`.
43
+ */
44
+ export declare function currentChatReadiness(sidecar: SidecarLike | null): Promise<ChatReadiness>;
45
+ /** Lazy reads shared by one gate sequence, never across a lock wait or sidecar dispatch. */
46
+ interface SessionGateReads {
47
+ sid: string;
48
+ owners: (profile?: string) => Promise<Map<string, StateDbSessionSource> | null>;
49
+ row: () => Promise<ReturnType<typeof stateDbSessionRow>>;
50
+ meta: () => Promise<Row | null>;
51
+ messages: (stitch: boolean) => Promise<Message[]>;
52
+ existing: () => Promise<Set<string>>;
53
+ }
34
54
  export interface SessionServiceDeps {
35
55
  /** TAL-259: epoch seconds of the state directory's `recovery_stamping_since` marker. */
36
- recoveryStampingSince: () => number;
56
+ recoveryStampingSince: () => Promise<number>;
37
57
  /** TAL-255: the Agent sidecar for manual compression (`chat.compress`); null while it is down. */
38
58
  sidecar?: () => SidecarLike | null;
39
59
  /** Detached sidecar work for a profile: deletion waits for the returned release, so the home outlives the work. */
@@ -41,7 +61,8 @@ export interface SessionServiceDeps {
41
61
  /** A profile whose deletion has started takes no new detached work. */
42
62
  profileDeleting?: (profile: string | null) => boolean;
43
63
  /** TAL-372: the session's background work receipts, for the delegation rows that started them. */
44
- backgroundReceipts?: (sid: string) => Receipt[];
64
+ backgroundReceipts?: (sid: string) => Receipt[] | Promise<Receipt[]>;
65
+ backgroundPending?: (sid: string) => Promise<Set<string>>;
45
66
  store: SessionStore;
46
67
  drafts: DraftStore;
47
68
  events: SessionEventBus;
@@ -64,15 +85,27 @@ export interface SessionServiceDeps {
64
85
  journalDegraded: (streamId: string) => boolean;
65
86
  /** TAL-424: the live stream's pending steers, as clients show them. */
66
87
  pendingSteers?: (streamId: string) => PendingSteer[];
88
+ /** The live stream's server-selected presentation, else null. */
89
+ runStatus?: (streamId: string) => RunStatus | null;
90
+ liveToolProgress?: (streamId: string) => Record<string, unknown>[];
91
+ /** TAL-1006: the live stream's open compression span start (epoch seconds), else null. */
92
+ compressionStartedAt?: (streamId: string) => number | null;
93
+ /** TAL-899: whether a Stop holds the session's automatic turns until the user's next turn. */
94
+ automaticTurnsHeld?: (sid: string) => Promise<boolean>;
95
+ sessionNotices?: (sid: string) => SessionNotice[];
96
+ sessionGoal?: (sid: string) => SessionGoal | null;
67
97
  /** Drop the session's cached agent; `endSession` (delete/clear) also ends its approval grants and parked approvals. */
68
- evictAgent: (sid: string, endSession?: boolean) => void;
98
+ evictAgent: (sid: string, endSession?: boolean) => Promise<void>;
69
99
  closeTerminal: (sid: string) => void;
70
- /** Python `delete_cli_session`: remove the session's rows from the profile's state.db; resolves false on failure. */
71
- deleteCliSession: (profile: string | null, sid: string) => Promise<boolean>;
100
+ /**
101
+ * Python `delete_cli_session`: remove the session and its compression continuations from the profile's state.db in one
102
+ * transaction; `ok` is false on failure, with `refused` when another Agent process holds any of them (TAL-792).
103
+ */
104
+ deleteCliSession: (profile: string | null, sid: string) => Promise<SidecarResult<'state_db.delete_cli_session'>>;
72
105
  };
73
106
  attachmentDir: (sid: string) => string;
74
107
  /** A deleted session can never be viewed, so its finished runs are cleared from the relay. */
75
- clearRelayCompletions?: (sid: string, profile: string | null) => void;
108
+ clearRelayCompletions?: (sid: string, profile: string | null) => Promise<void>;
76
109
  /** Run journals are removed with their session (Python `delete_run_journal`). */
77
110
  journal?: RunJournal;
78
111
  hermesHome: string;
@@ -91,9 +124,14 @@ export interface SessionServiceDeps {
91
124
  resolveContextLength?: (model: string | null, provider: string | null, profile: string | null) => Promise<number | null>;
92
125
  /** `(model, provider)` normalisation from a request (checkpoint 7 wires provider-qualified ids). */
93
126
  modelStateFromRequest: (model: unknown, requestedProvider: unknown, currentProvider: string | null) => [string | null, string | null];
127
+ /** TAL-1040: the explicit launch route for `provider`: its configured endpoint (model, providers or custom_providers), else null. */
128
+ profileLaunchRoute?: (profile: string, provider: string) => {
129
+ provider: string;
130
+ baseUrl: string | null;
131
+ };
94
132
  /** TAL-542: the pair a stale session model starts on, from the profile's catalog; `null` keeps it. */
95
133
  repairSessionModel?: (profile: string | null, model: string, provider: string | null) => [string, string] | null;
96
- /** TAL-542: builds the catalog `repairSessionModel` reads unless a fresh enough one exists. */
134
+ /** Explicit discovery for auxiliary title generation; ordinary turn admission uses only fresh cached repair evidence. */
97
135
  warmSessionModelRepair?: (profile?: string | null) => Promise<void>;
98
136
  yolo: {
99
137
  isEnabled: (sid: string) => boolean;
@@ -103,22 +141,19 @@ export interface SessionServiceDeps {
103
141
  /** `truncated`: source kinds whose rows stopped at the per-kind window on this read (TAL-482). */
104
142
  cliSessions: (profile: string, opts: {
105
143
  sourceFilter: string | null;
144
+ sessionIds?: readonly string[];
145
+ keepEmpty?: boolean;
146
+ sidebarRows?: boolean;
106
147
  }) => Promise<{
107
148
  rows: Row[];
108
149
  truncated: ReadonlySet<string>;
150
+ storage: AgentStorage;
109
151
  }>;
110
- /** `cliSessions` read on this thread, for the synchronous single-session lookups. */
111
- cliSessionsSync: (profile: string, opts: {
112
- sourceFilter: string | null;
113
- }) => {
114
- rows: Row[];
115
- truncated: ReadonlySet<string>;
116
- };
117
152
  /** TAL-551: read-only Claude Code transcripts, listed with the CLI rows when both toggles are on. */
118
153
  claudeCode?: ClaudeCodeSessionSource;
119
154
  profileHome: (profile: string) => string;
120
155
  /** Python `commit_session_memory` (fire-and-forget): the cached Agent flushes memory for a session the user left. */
121
- commitSessionMemory?: (sid: string) => void;
156
+ commitSessionMemory?: (sid: string) => Promise<void>;
122
157
  /** TAL-186: the `/api/media` allow-list the transcript media projection rewrites against; without it nothing local is rewritten. */
123
158
  media?: {
124
159
  access: MediaAccessDeps;
@@ -127,22 +162,27 @@ export interface SessionServiceDeps {
127
162
  }
128
163
  export declare class SessionService {
129
164
  readonly deps: SessionServiceDeps;
165
+ owner: GatewaySessions | null;
130
166
  /** TAL-255: one manual compression worker per session, shared by every compress route. */
131
167
  private readonly compressionJobs;
168
+ /** TAL-1005: the turns now waiting on their session's compression job before they read its history. */
169
+ private readonly compactionWaiters;
170
+ private worktreeRetainRetry;
171
+ private worktreesUnconfirmed;
132
172
  constructor(deps: SessionServiceDeps);
133
173
  private get store();
134
174
  /**
135
- * TAL-577: user-turn admission shared by `chat.start` and server-side wakeups, after `ensureAgentRuntimeCurrent`.
175
+ * User-turn admission shared by `chat.start` and automatic turns through `TurnRunner.startServerTurn`.
136
176
  * A requested workspace must be trusted; the session's own one, when its directory is gone, falls back to the last one.
137
177
  */
138
- turnWorkspace(s: Session, requested?: unknown): string;
139
- /** A `@provider:` id is split; any other model an explicit pick did not just choose is checked against the catalog (TAL-542). */
178
+ turnWorkspace(s: Session, requested?: unknown): Promise<string>;
179
+ /** Split qualified ids and opportunistically repair against fresh evidence; missing discovery never delays a turn. */
140
180
  turnModel(s: Session, body?: Record<string, unknown>): [string | null, string | null, boolean];
141
181
  /**
142
182
  * TAL-186: rewrites a session's media references to their URLs. A local path is rewritten only when `/api/media`
143
183
  * serves it for this session, under the same resolution, so every rewritten reference loads.
144
184
  */
145
- mediaProjector(s: Session): (text: string) => MediaProjection | null;
185
+ mediaProjector(s: Session): Promise<(text: string) => MediaProjection | null>;
146
186
  publish(reason: string, profile?: string | null, sessionId?: string | null): void;
147
187
  visibleToActiveProfile(profile: string | null | undefined): boolean;
148
188
  /**
@@ -150,13 +190,20 @@ export declare class SessionService {
150
190
  * not slip past the profile check into a handler that trims and trusts it. A non-empty id that is still unsafe after
151
191
  * trimming can name no session and is refused here instead of falling through.
152
192
  */
153
- sessionIdVisible(raw: unknown): boolean;
193
+ sessionIdVisible(raw: unknown): Promise<boolean>;
194
+ private localTargets;
195
+ /** One receipt-backed physical target for every operation on a local conversation alias, read on the state.db worker. */
196
+ resolveSessionId(sid: string): Promise<string>;
154
197
  /** Python `_lookup_cli_session_metadata(...).get('read_only')` plus the persisted sidecar flag and a not-claimable foreign owner. */
155
198
  private isReadOnlyImport;
156
199
  /** Python `_session_is_subagent_view_only`: a delegated child by any signal — the persisted sidecar or the state.db row. */
157
- isSubagentViewOnly(sid: string): boolean;
158
- /** TAL-358: batched `sessions.source` owners from the active profile's state.db. */
159
- readonly stateDbSources: (ids: string[]) => Map<string, string> | null;
200
+ isSubagentViewOnly(sid: string, reads?: SessionGateReads): Promise<boolean>;
201
+ /** TAL-358: batched `sessions.source` owners from the active profile's state.db, read on the state.db worker (TAL-923). */
202
+ readonly stateDbSources: (ids: string[], profile?: string) => Promise<Map<string, StateDbSessionSource> | null>;
203
+ /** The owners of `byProfile`'s ids, read up front, as the synchronous lookup `withOwnerLocks` takes. */
204
+ private ownerSources;
205
+ /** `withOwnerLocks` with the owners read on the state.db worker, so a gate or payload never opens state.db on this thread. */
206
+ private ownerLocked;
160
207
  /**
161
208
  * TAL-590 (Python #3238): the read-only CLI or API-server imports among `rows` whose active-profile state.db row is
162
209
  * gone, so their source was deleted outside Web and no Web action could remove them. An unreadable state.db proves
@@ -172,27 +219,54 @@ export declare class SessionService {
172
219
  */
173
220
  private listStateDbLookups;
174
221
  /** The persisted flag folded with the state.db owner lock (TAL-358): the one read-only rule for mutation gates and the wire. */
175
- isReadOnly(s: Session): boolean;
222
+ readOnlyReason(s: Session | string, profile?: string, reads?: SessionGateReads): Promise<string | null>;
223
+ private loadedReadOnlyReason;
224
+ /**
225
+ * The final owner check before a protected sidecar dispatch or write: callers dispatch as soon as it resolves. The
226
+ * owner is the Agent's, which can change at any moment, so reading it on the state.db worker (TAL-923) widens no
227
+ * window Web could close; the session lock, where one is held, still serializes Web's own writes.
228
+ */
229
+ assertWritable(session: Session | string, profile?: string, reads?: SessionGateReads): Promise<void>;
230
+ /** Controls can exist without a local session file; use the same id the sidecar will address. */
231
+ idForMutation(sid: string): Promise<string>;
232
+ isReadOnly(s: Session): Promise<boolean>;
233
+ /** Recheck after the mutex wait; legacy local metadata/handoff actions keep their existing read-only allowance. */
234
+ private withMutationLock;
176
235
  /** Full session for mutation, refusing read-only imports (Python `_get_or_materialize_session`). */
177
- getForMutation(sid: string): Session;
236
+ getForMutation(sid: string, reads?: SessionGateReads): Promise<Session>;
178
237
  private get404;
179
238
  /** The Agent's state.db rows for this session (empty for subagent views, which never merge). */
180
- stateDbRows(s: Session): Message[];
181
- /** `stateDbRows` and whether the read succeeded on a state.db whose messages carry ids (TAL-493). */
182
- stateDbRead(s: Session): StateDbRead;
239
+ stateDbRows(s: Session): Promise<Message[]>;
240
+ /**
241
+ * `stateDbRows` and whether the read succeeded on a state.db whose messages carry ids (TAL-493). TAL-1162: read on the
242
+ * state.db worker; a worker failure is a failed read.
243
+ */
244
+ stateDbRead(s: Session): Promise<StateDbRead>;
245
+ /** `stateDbRead`'s projection of the rows past `afterId` alone (the detail's page tail), on the state.db worker. */
246
+ stateDbTailRead(s: Session, afterId: number, unidentified: readonly ReadonlyMap<string, number>[]): Promise<StateDbRead & {
247
+ anchor?: Message;
248
+ requiresFullRead?: boolean;
249
+ }>;
250
+ /** The one read a turn's settlement builds its context from and settles with (`stateDbSettlementRead`). */
251
+ settlementRead(s: Session): Promise<StateDbSettlementRead>;
252
+ /**
253
+ * Preserve existing transcript provenance before a turn adds Agent rows from its starting database read. The stamp
254
+ * lands before this returns; the read follows.
255
+ */
256
+ beginStateDbTurn(s: Session): Promise<StateDbRead>;
183
257
  private stateDbPath;
184
258
  /**
185
259
  * Python `_merged_session_messages_for_display`: the sidecar transcript merged append-only with the Agent's state.db
186
260
  * rows (a WebUI conversation continued from the CLI shows the CLI turns). This is the coordinate space `GET
187
261
  * /api/session` exposes, so branching and the next model history slice/extend the same list.
188
262
  */
189
- mergedTranscript(s: Session, local?: Message[], stateRows?: Message[]): Message[];
263
+ mergedTranscript(s: Session, local: Message[], stateRows: Message[]): Message[];
190
264
  /**
191
265
  * TAL-493: record the highest state.db id this boundary or settled turn read, under the session lock in the same save,
192
266
  * so the merge never replays a covered row and appends every row committed after the read. Call it after the boundary
193
267
  * fields are set: the marker holds only while they and the row it names stay as recorded.
194
268
  */
195
- markStateDbSeen(s: Session, read?: StateDbRead, opts?: {
269
+ markStateDbSeen(s: Session, read: StateDbRead, opts?: {
196
270
  boundary?: boolean;
197
271
  }): void;
198
272
  /**
@@ -208,7 +282,8 @@ export declare class SessionService {
208
282
  previousContext: Message[];
209
283
  agentRows?: Message[] | null;
210
284
  startId?: number | null;
211
- read?: StateDbRead;
285
+ startGeneration?: string | null;
286
+ read: StateDbSettlementRead;
212
287
  }): void;
213
288
  /**
214
289
  * TAL-921: the model context a turn leaves when it ends without its settled result (an error, a Stop, a dead run), as a
@@ -229,15 +304,22 @@ export declare class SessionService {
229
304
  * extended append-only with the Agent's state.db rows (a CLI continuation of this session reaches the model), except
230
305
  * for a compressed context whose anchor cannot be verified — that stays context-only.
231
306
  */
232
- modelContext(s: Session, stateRows?: Message[]): Message[];
307
+ modelContext(s: Session, stateRows: Message[]): Message[];
308
+ /** `modelContext` over a state.db read taken now. */
309
+ readModelContext(s: Session): Promise<Message[]>;
233
310
  /**
234
311
  * TAL-518: the model context a `/btw` clone inherits: the chat's history plus its running turn's prompt, which
235
312
  * deferred save keeps out of `messages` and `context_messages` until settlement.
236
313
  */
237
- sideQuestionContext(s: Session): Message[];
314
+ sideQuestionContext(s: Session): Promise<Message[]>;
238
315
  /** Python `_is_messaging_session_id`: from the WebUI metadata or the Agent's row. */
239
316
  private isMessagingSession;
240
- /** Python `_lookup_cli_session_metadata`: the sidebar row for a state.db session in the active profile. */
317
+ private sessionGateReads;
318
+ /**
319
+ * Python `_lookup_cli_session_metadata`: the sidebar row for a state.db session in the active profile, else its plain
320
+ * row (a segment its chain's row does not name). Both are read by id: the sidebar listing would scan every session to
321
+ * rank its window (TAL-923).
322
+ */
241
323
  private lookupCliMeta;
242
324
  private claudeCodeRows;
243
325
  /** Python `_session_index_marks_was_webui`: an index row that once owned a WebUI sidecar (self-heal 404). */
@@ -247,43 +329,59 @@ export declare class SessionService {
247
329
  * a WebUI sidecar. `materialized` sessions are writeable (the caller persists the sidecar), `not_claimable` ones are
248
330
  * read-only stubs, `was_webui`/`no_foreign_state`/`invalid_sid` answer 404.
249
331
  */
250
- claimOrSynthesizeCliSession(sid: string, metaIn?: Row | null): {
332
+ claimOrSynthesizeCliSession(sid: string, metaIn?: Row | null, reads?: SessionGateReads): Promise<{
251
333
  session: Session | null;
252
334
  reason: 'materialized' | 'not_claimable' | 'was_webui' | 'no_foreign_state' | 'invalid_sid';
253
- };
335
+ }>;
254
336
  private mutationTarget;
255
337
  /**
256
338
  * TAL-551: a Claude Code import is a live view of a transcript Claude Code keeps writing. Web never stores a copy,
257
339
  * which would freeze its messages and pin it to one profile.
258
340
  */
259
341
  private rejectClaudeCode;
260
- private rejectSubagent;
342
+ private rejectViewOnly;
343
+ /** All transcript transports use the same live-run and durable-pending evidence. */
344
+ backgroundUpdates<T>(s: Session, messages: T[], reviewRows?: (turnId: string) => Message[]): Promise<T[]>;
261
345
  /** TAL-372: each delegation row of a turn's scene carries the status of the work it started. */
262
- backgroundLinked(s: Session, messages: unknown[]): unknown[];
346
+ backgroundLinked(s: Session, messages: unknown[]): Promise<unknown[]>;
263
347
  /** `compact()` plus messages, redacted for the wire (Python `_public_session_projection`). */
264
- publicSession(s: Session, withMessages?: boolean): Record<string, unknown>;
348
+ publicSession(s: Session, withMessages?: boolean, messages?: Message[]): Promise<Record<string, unknown>>;
349
+ /** Opaque read identity, including context changes that do not alter display message counts. */
350
+ private contextDetailKey;
265
351
  /** `compact()` with the wire streaming/read-only flags (TAL-312), for replies that return the session row. */
266
- wireRow(s: Session): Record<string, unknown>;
352
+ wireRow(s: Session): Promise<Record<string, unknown>>;
267
353
  /**
268
354
  * TAL-303: the label for a session's workspace, from its own profile's registry (a profileless row is the root's).
269
355
  * One resolver serves one response, so each profile's registry is read once however many rows it names.
270
356
  */
271
- workspaceNames(): (row: {
357
+ workspaceNames(rows: readonly {
272
358
  profile?: unknown;
273
359
  workspace?: unknown;
274
- }) => string | null;
360
+ }[]): Promise<(row: {
361
+ profile?: unknown;
362
+ workspace?: unknown;
363
+ }) => string | null>;
275
364
  /** The agent's display name for a session's profile (`assistant_name`). */
276
365
  assistantName(s: Session): string;
277
366
  /** Python `public_session_projection(s.__dict__)`: every persisted field, redacted (session export). */
278
367
  publicSessionDocument(s: Session): Record<string, unknown>;
279
368
  private loadRevision;
369
+ private readonly pageTails;
370
+ private readonly pageContexts;
371
+ private prefixIndex;
372
+ /** Existing projections, once per complete turn range, in absolute transcript coordinates. */
373
+ private deriveRange;
374
+ private limitedDetail;
280
375
  /** Python `_handle_session_get` on the WebUI sidecar (state.db merge pending). */
281
376
  detail(sid: string, query: {
282
377
  messages?: string | null | undefined;
283
378
  msg_limit?: string | null | undefined;
284
379
  msg_before?: string | null | undefined;
285
380
  resolve_model?: string | null | undefined;
286
- }): Record<string, unknown>;
381
+ }): Promise<Record<string, unknown>>;
382
+ /** Project an already settled session without reloading it or running endpoint recovery/profile gates. */
383
+ windowedDetail(s: Session, limit: number): Promise<Record<string, unknown>>;
384
+ private detailPayload;
287
385
  /**
288
386
  * TAL-454: the chat `/branch` copied, while it still loads (archived included). A compression continuation is also a
289
387
  * fork of its parent but not a branch, so it links nowhere.
@@ -299,10 +397,13 @@ export declare class SessionService {
299
397
  /** A session without a sidecar, synthesized from state.db for this profile; 404/409 like the detail. */
300
398
  private foreignSession;
301
399
  /** Python `_handle_session_get` without a sidecar: the state.db transcript as a (read-only or claimable) foreign stub. */
400
+ foreignMessages(messages: Message[], session: object): Message[];
302
401
  private foreignSessionDetail;
303
402
  /** Clear persisted streaming flags when no live stream backs them (Python `_clear_stale_stream_state`). */
304
- clearStaleStreamState(session: Session): boolean;
305
- list(params: Omit<ListParams, 'activeProfile' | 'isolatedProfileMode' | 'profilesMatch' | 'cliRows' | 'gatewayIdentity' | 'stateDbSources' | 'truncatedSources' | 'pruneOrphanedImports' | 'webuiRows'>): Promise<{
403
+ clearStaleStreamState(session: Session): Promise<boolean>;
404
+ /** Expand saved aliases in one worker query independently of the bounded native sidebar window. */
405
+ private persistedAliasMetadata;
406
+ list(params: Omit<ListParams, 'activeProfile' | 'isolatedProfileMode' | 'profilesMatch' | 'cliRows' | 'gatewayIdentity' | 'stateDbSources' | 'truncatedSources' | 'agentStorage' | 'pruneOrphanedImports' | 'webuiRows' | 'webDiagnosticIds'>): Promise<{
306
407
  body: ListResponse;
307
408
  etag: string;
308
409
  }>;
@@ -310,7 +411,7 @@ export declare class SessionService {
310
411
  content: boolean;
311
412
  depth: number;
312
413
  allProfiles: boolean;
313
- }): Record<string, unknown>;
414
+ }): Promise<Record<string, unknown>>;
314
415
  /**
315
416
  * TAL-308: the sidebar search. The candidates are exactly the `/api/sessions` rows for `params` (visibility, source,
316
417
  * archived, projection and order), narrowed to `projectId` (`none`: rows without a project), then matched on the
@@ -323,9 +424,10 @@ export declare class SessionService {
323
424
  }): Promise<Record<string, unknown>>;
324
425
  /** The first of a stored session's first `depth` messages (0: all) containing every term, with its redacted excerpt. */
325
426
  private contentMatch;
326
- status(sid: string): Record<string, unknown>;
327
- usage(sid: string): Record<string, unknown>;
328
- resolveNewSessionWorkspace(body: Record<string, unknown>, visiblePrevSessionId: string | null, profile: string | null): string | null;
427
+ status(sid: string): Promise<Record<string, unknown>>;
428
+ contextDetail(sid: string, expectedKey: string): Promise<ContextDetail>;
429
+ usage(sid: string): Promise<Record<string, unknown>>;
430
+ resolveNewSessionWorkspace(body: Record<string, unknown>, visiblePrevSessionId: string | null, profile: string | null): Promise<string | null>;
329
431
  /** The server owns the names' normalization (TAL-631): trimmed, blanks dropped, and nothing left is the profile's defaults. */
330
432
  validateToolsetsShape(toolsets: unknown): string[] | null;
331
433
  create(body: Record<string, unknown>, opts?: {
@@ -335,41 +437,105 @@ export declare class SessionService {
335
437
  repo_root: string;
336
438
  created_at: number;
337
439
  } | null;
338
- }): Session;
440
+ }): Promise<Session>;
441
+ /**
442
+ * TAL-1040: an `ignore_config` / `safe` chat starts through the active profile's Agent owner, which freezes the mode before
443
+ * any Agent import. That owner reads no profile default, so the launch route is explicit: the requested model, else this
444
+ * profile's default as a normal chat starts, with that provider's configured endpoint.
445
+ */
446
+ createDiagnostic(body: Record<string, unknown>, mode: 'ignore_config' | 'safe'): Promise<Record<string, unknown>>;
339
447
  /** Python `_persist_generated_session_title`: title + generated/manual flags under the session lock, then insights sync. */
340
448
  persistGeneratedTitle(sid: string, nextTitle: string, eventReason: string): Promise<Session>;
341
449
  rename(sid: string, rawTitle: unknown): Promise<Record<string, unknown>>;
342
450
  private pinChain;
343
451
  pin(sid: string, pinRequested: boolean): Promise<Record<string, unknown>>;
344
452
  private pinUnserialized;
453
+ /**
454
+ * TAL-1254: relock the worktrees of every unarchived worktree chat (or just `only`) for the running sidecar, so the
455
+ * Agent's worktree sweep reads them as live, and flag each one git no longer has as retained. Runs before a
456
+ * (re)started sidecar reports ready and when a chat is unarchived. The Agent's sweep runs outside Talaria, so a lock
457
+ * the sidecar could not confirm is retried until git takes it; meanwhile that tree keeps its flag.
458
+ */
459
+ retainWorktrees(call: SidecarLike['call'], only?: Session): Promise<void>;
460
+ /**
461
+ * Every persisted worktree chat, read from its own file: the index only narrows the files to read, since a crash
462
+ * between a save and its index update can leave a session out of the index or with a stale `archived`. A file that
463
+ * cannot be read now, or a session directory that cannot be listed, falls back to the index rows (`_unread`, so their
464
+ * flags are left alone) and counts in `unread`, which keeps retention retrying until every file has been read.
465
+ */
466
+ private worktreeSessionRows;
467
+ /** One pending retry at a time; a sidecar that is not ready by then retains everything in its next ready gate instead. */
468
+ private retryWorktreeRetention;
345
469
  archive(sid: string, archived: boolean): Promise<Record<string, unknown>>;
346
470
  move(sid: string, targetProjectId: string | null): Promise<Record<string, unknown>>;
471
+ private readonly modelConfirmationKey;
472
+ private confirmModelSwitch;
347
473
  update(sid: string, body: Record<string, unknown>): Promise<Record<string, unknown>>;
348
474
  setToolsets(sid: string, toolsets: unknown): Promise<Record<string, unknown>>;
349
475
  /** Python `/api/personality/set` persistence: the name only; the prompt is resolved by the caller. */
350
476
  setPersonality(sid: string, name: string | null): Promise<string | null>;
351
- truncate(sid: string, keepRaw: unknown): Promise<Record<string, unknown>>;
477
+ /**
478
+ * TAL-929: under a `hold`, a cut that discards more than one user turn changes nothing and answers with its counts,
479
+ * unless `confirmToken` is the token of the rows it would remove now: a transcript that changed since asks again.
480
+ * Without one (a released App, which asked on the device) the cut proceeds as before.
481
+ */
482
+ truncate(sid: string, keepRaw: unknown, hold?: {
483
+ confirmToken: string | null;
484
+ } | null): Promise<Record<string, unknown>>;
485
+ /**
486
+ * TAL-929: the confirmation a cut at `keep` needs, or null for one that removes at most one user turn. Counted on the rows
487
+ * the detail shows, state.db continuation included, since `keep` indexes them: the user turns the cut removes, and the
488
+ * messages after the row it starts at.
489
+ */
490
+ private heldCut;
352
491
  /**
353
492
  * Python `_handle_session_compress_start`: validate, then join the session's running job or start a fresh one (a
354
493
  * finished job is replaced). The stale-runtime refusal comes before a job exists; a running job is joined without it.
355
494
  */
356
- startCompression(sid: string, focusRaw: unknown): Promise<CompressionJob>;
495
+ startCompression(sid: string, focusRaw: unknown, opts?: {
496
+ automatic?: boolean;
497
+ }): Promise<CompressionJob>;
498
+ /**
499
+ * TAL-1005: compact the session in its joinable compression job before the next turn reads its history. A running job
500
+ * is always joined; a new one starts when the session is `due` (`compactionDue`, read from the store when omitted).
501
+ * `turn` is the waiting turn's stream: the job leaves its rows alone. `onWait` runs once a job is being waited on; an abort of `signal` (the turn's Stop) ends the wait but not the
502
+ * job. True when the job installed a compressed context. Never throws: a failed job leaves the Agent's own preflight.
503
+ */
504
+ ensureCompacted(sid: string, opts?: {
505
+ turn?: string;
506
+ signal?: AbortSignal;
507
+ onWait?: () => void | Promise<void>;
508
+ due?: boolean;
509
+ }): Promise<boolean>;
510
+ /**
511
+ * TAL-1005: measure the model context again when it holds a post-compression estimate the rows after it may have
512
+ * outgrown (a waiting turn's prompt, a stopped or failed turn's work). Skipped while a turn owns the session, which
513
+ * settles its own figures, or once the estimate changed meanwhile. True when it stored a new estimate.
514
+ */
515
+ remeasureContext(sid: string): Promise<boolean>;
516
+ private storedCompactionDue;
517
+ /** Whether the session's context (the post-compression estimate, else the last prompt) reached the next turn's threshold. */
518
+ compactionDue(s: Session): boolean;
357
519
  /** The session a compression may run on now, and the model history it compresses: the context a turn would send, so a
358
- * repeat compression builds on the previous summary instead of re-reading the whole display transcript. */
520
+ * repeat compression builds on the previous summary instead of re-reading the whole display transcript. `context` is
521
+ * that history unsanitized and `stateRows` the state.db read it came from. */
359
522
  private compressionTarget;
360
- /** The loaded session's own compression guards: no running turn and enough model history. */
361
- private compressionHistory;
523
+ /**
524
+ * The loaded session's own compression guards: no running turn and enough model history. TAL-1005: a turn waiting on
525
+ * the compression has not read its history yet, so it does not block; the context leaves out its rows, as it does.
526
+ */
527
+ private compressionContext;
362
528
  /** TAL-614: whether a manual compression would start now: `compressionTarget`'s gates, with `readOnly` the wire flag. */
363
529
  private canCompress;
364
530
  /** TAL-258: the session's WebUI record (absent for a CLI or gateway session) and the profile whose state.db holds its rows. */
365
531
  private handoffTarget;
366
532
  /** Python `_handle_conversation_rounds` (TAL-258): the session's rounds and whether the handoff dock is due. */
367
- conversationRounds(sid: string, since: number | null): {
533
+ conversationRounds(sid: string, since: number | null): Promise<{
368
534
  ok: true;
369
535
  rounds: number;
370
536
  threshold: number;
371
537
  should_show: boolean;
372
- };
538
+ }>;
373
539
  /**
374
540
  * Python `_handle_handoff_summary` (TAL-258): the session's main model summarizes its last 50 state.db messages after
375
541
  * `since`, and the summary is appended as a display-only `handoff_summary` tool row. A failed or cut-off answer falls
@@ -391,25 +557,30 @@ export declare class SessionService {
391
557
  * the session lock keeps two summaries from both passing that check. A card neither store saved answers 503.
392
558
  */
393
559
  private persistHandoffMarker;
560
+ /** The same live presentation for session detail and journal snapshot recovery. */
561
+ currentRunStatus(sid: string, streamId: string | null): RunStatus | null;
394
562
  /** The session's compression job; a deleted session's finished result is dropped rather than served. */
395
- compressionJob(sid: string): CompressionJob | undefined;
563
+ compressionJob(sid: string): Promise<CompressionJob | undefined>;
396
564
  /**
397
565
  * Python `_handle_session_compress`: compress the sanitized transcript in the sidecar outside the lock, then under the
398
- * session lock refuse a result the session moved past (stream state or transcript changed) and install it as the
566
+ * session lock refuse a result the session moved past (another stream, or a transcript changed) and install it as the
399
567
  * model context with the manual anchor and the #4836 boundary that keeps state.db from replaying compressed rows.
400
- * The guards run again first: a stream may have started while the caller awaited the runtime check.
568
+ * The guards run again first: a stream may have started while the caller awaited the runtime check. TAL-1005: rows
569
+ * the job's waiting turns added meanwhile (a prompt, a Stop) stay after the compressed context.
401
570
  */
402
571
  private compressSession;
572
+ /** Profile-scoped, best-effort lifecycle delivery; archive only notifies plugins. */
573
+ private finalizeSession;
403
574
  clear(sid: string): Promise<Record<string, unknown>>;
404
575
  retry(sid: string): Promise<Record<string, unknown>>;
405
576
  undo(sid: string): Promise<Record<string, unknown>>;
406
- duplicate(sid: string): Record<string, unknown>;
407
- branch(sid: string, body: Record<string, unknown>): Record<string, unknown>;
577
+ duplicate(sid: string): Promise<Record<string, unknown>>;
578
+ branch(sid: string, body: Record<string, unknown>): Promise<Record<string, unknown>>;
408
579
  /** Python `read_session_lineage_report` on the active profile's state.db. */
409
- lineageReport(sid: string): Record<string, unknown>;
580
+ lineageReport(sid: string): Promise<Record<string, unknown>>;
410
581
  /** TAL-259: recovery reads the active profile's state.db, and a recovered sidecar joins that profile. */
411
582
  private recoveryDeps;
412
- recoveryAudit(): RecoveryAudit;
583
+ recoveryAudit(): Promise<RecoveryAudit>;
413
584
  recoveryRepairSafe(): Promise<RecoveryRepair>;
414
585
  /**
415
586
  * Python `_handle_session_compression_recovery_start`: open a compression-exhausted session's focused continuation, an
@@ -420,30 +591,32 @@ export declare class SessionService {
420
591
  /** Python `find_compression_recovery_session`: the oldest same-profile continuation started from `sid`, cached or persisted. */
421
592
  private compressionRecoveryChild;
422
593
  /** The run that keeps `delete` answering 409, if any; stream status reports it so a draining client can wait on it (TAL-622). */
423
- activeRunBlocking(sid: string): string | null;
594
+ activeRunBlocking(sid: string): Promise<string | null>;
424
595
  delete(sid: string): Promise<Record<string, unknown>>;
425
- cleanup(zeroOnly: boolean): Record<string, unknown>;
426
- import(body: Record<string, unknown>): Record<string, unknown>;
427
- readDraft(sid: string): Record<string, unknown>;
596
+ /** The committed Agent deletion targets and cleanup outcome; throws 409 `refused` while an Agent process holds a row. */
597
+ private deleteStateDbRows;
598
+ cleanup(zeroOnly: boolean): Promise<Record<string, unknown>>;
599
+ import(body: Record<string, unknown>): Promise<Record<string, unknown>>;
600
+ readDraft(sid: string): Promise<Record<string, unknown>>;
428
601
  writeDraft(body: Record<string, unknown>): Promise<Record<string, unknown>>;
429
602
  saveAnchorScene(body: Record<string, unknown>): Promise<Record<string, unknown>>;
430
603
  /** The session and the full transcript its detail is built from; a state.db-only session gives its synthesized one. */
431
604
  private fullTranscript;
432
- readAnchorScene(query: Record<string, string | null | undefined>): Record<string, unknown>;
605
+ readAnchorScene(query: Record<string, string | null | undefined>): Promise<Record<string, unknown>>;
433
606
  /** TAL-331: one tool call's whole result, which a limited response clipped (`result_truncated`), redacted like the detail. */
434
607
  readToolResult(query: {
435
608
  session_id: string;
436
609
  tool_call_id: string;
437
- }): {
610
+ }): Promise<{
438
611
  tool_call_id: string;
439
612
  result: string;
440
613
  result_view: ToolResultView;
441
- };
442
- createShare(sid: string): Record<string, unknown>;
443
- revokeShare(sid: string): Record<string, unknown>;
444
- loadShare(token: string): Record<string, unknown>;
614
+ }>;
615
+ createShare(sid: string): Promise<Record<string, unknown>>;
616
+ revokeShare(sid: string): Promise<Record<string, unknown>>;
617
+ loadShare(token: string): Promise<Record<string, unknown>>;
445
618
  yolo(sid: string): Record<string, unknown>;
446
- setYolo(sid: string, enabled: boolean): Record<string, unknown>;
619
+ setYolo(sid: string, enabled: boolean): Promise<Record<string, unknown>>;
447
620
  }
448
621
  export declare const AUTO_TITLE_LABELS: Set<string>;
449
622
  /** Python `apply_session_title_rename`. */