@xopcai/xopc 0.0.285 → 0.0.291

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 (1223) hide show
  1. package/README.md +16 -0
  2. package/README.zh-CN.md +16 -0
  3. package/dist/browser-ext/dist/assets/{auth-DB30ywek.js → auth-B2CDTr_F.js} +3 -2
  4. package/dist/browser-ext/dist/background.js +2 -2
  5. package/dist/browser-ext/dist/sidepanel.html +1 -1
  6. package/dist/browser-ext/dist/sidepanel.js +171 -145
  7. package/dist/browser-ext/manifest.json +1 -1
  8. package/dist/extensions/feishu/src/adapters/gateway-setup.js +14 -14
  9. package/dist/extensions/feishu/src/state/message-bindings.d.ts +1 -1
  10. package/dist/extensions/feishu/src/state/thread-bindings.d.ts +4 -4
  11. package/dist/extensions/feishu/src/state/thread-bindings.js +6 -6
  12. package/dist/extensions/feishu/src/subagent-hooks.d.ts +1 -1
  13. package/dist/extensions/feishu/src/subagent-hooks.js +5 -5
  14. package/dist/extensions/feishu/src/transport/socket-mode/monitor.js +9 -9
  15. package/dist/extensions/feishu/src/transport/webhook/monitor.js +4 -4
  16. package/dist/extensions/feishu/src/workflow-progress.d.ts +1 -1
  17. package/dist/extensions/feishu/src/workflow-progress.js +8 -7
  18. package/dist/extensions/telegram/src/approval-store.d.ts +2 -2
  19. package/dist/extensions/telegram/src/approval-store.js +1 -1
  20. package/dist/extensions/telegram/src/command-handler.d.ts +2 -2
  21. package/dist/extensions/telegram/src/command-handler.js +8 -8
  22. package/dist/extensions/telegram/src/delivery-chat-id.d.ts +1 -1
  23. package/dist/extensions/telegram/src/delivery-chat-id.js +7 -3
  24. package/dist/extensions/telegram/src/exec-approval-handler.js +1 -1
  25. package/dist/extensions/telegram/src/focus-handler.d.ts +2 -2
  26. package/dist/extensions/telegram/src/focus-handler.js +10 -10
  27. package/dist/extensions/telegram/src/inbound-processor.d.ts +3 -3
  28. package/dist/extensions/telegram/src/inbound-processor.js +11 -11
  29. package/dist/extensions/telegram/src/plugin.js +5 -5
  30. package/dist/extensions/telegram/src/routing-integration.d.ts +1 -1
  31. package/dist/extensions/telegram/src/routing-integration.js +19 -21
  32. package/dist/extensions/telegram/src/thread-bindings.d.ts +1 -1
  33. package/dist/extensions/telegram/src/workflow-progress.js +8 -7
  34. package/dist/extensions/telegram/xopc.extension.json +1 -1
  35. package/dist/extensions/weixin/src/auth/login-qr.d.ts +4 -4
  36. package/dist/extensions/weixin/src/auth/login-qr.js +21 -21
  37. package/dist/extensions/weixin/src/auth/weixin-account-id.d.ts +1 -1
  38. package/dist/extensions/weixin/src/auth/weixin-account-id.js +1 -1
  39. package/dist/extensions/weixin/src/cli/gateway-qr-login.d.ts +2 -2
  40. package/dist/extensions/weixin/src/cli/gateway-qr-login.js +13 -13
  41. package/dist/extensions/weixin/src/cli/qr-login.js +1 -1
  42. package/dist/extensions/weixin/src/delivery-to.js +6 -2
  43. package/dist/extensions/weixin/src/messaging/inbound.d.ts +1 -1
  44. package/dist/extensions/weixin/src/messaging/inbound.js +1 -1
  45. package/dist/extensions/weixin/src/messaging/process-message.js +3 -3
  46. package/dist/extensions/weixin/src/plugin.js +5 -5
  47. package/dist/extensions/weixin/src/routing-integration.d.ts +1 -1
  48. package/dist/extensions/weixin/src/routing-integration.js +3 -3
  49. package/dist/extensions/weixin/src/workflow-progress.d.ts +1 -1
  50. package/dist/extensions/weixin/src/workflow-progress.js +7 -6
  51. package/dist/gateway/static/root/assets/{activity-store-B0BTIk9j.js → activity-store-6lmzUBEr.js} +1 -1
  52. package/dist/gateway/static/root/assets/{agent-avatar-dicebear-Dc-0QZTQ.js → agent-avatar-dicebear-BCtrkF15.js} +1 -1
  53. package/dist/gateway/static/root/assets/agent-defaults-settings-panel-D2eYNelh.js +1 -0
  54. package/dist/gateway/static/root/assets/agents-BedA5XwI.js +1 -0
  55. package/dist/gateway/static/root/assets/{api-Coly9ab6.js → api-D6yepxBp.js} +1 -1
  56. package/dist/gateway/static/root/assets/api-Dnfnl1Gd.js +1 -0
  57. package/dist/gateway/static/root/assets/{app-management-settings-panel-TWBO-msg.js → app-management-settings-panel-Md562Fo-.js} +1 -1
  58. package/dist/gateway/static/root/assets/{appearance-settings-CpTZ2KuT.js → appearance-settings-BiBFI4BM.js} +1 -1
  59. package/dist/gateway/static/root/assets/apps-page-Corla83b.js +1 -0
  60. package/dist/gateway/static/root/assets/{archive-plugin-z_u6alob.js → archive-plugin-A_Unp751.js} +1 -1
  61. package/dist/gateway/static/root/assets/{attachment-load-C2nS04TC.js → attachment-load-D6idSUyP.js} +1 -1
  62. package/dist/gateway/static/root/assets/{automations-page-aIBsw9zR.js → automations-page-C6j71Lgs.js} +1 -1
  63. package/dist/gateway/static/root/assets/automations-workspace-DjZdhLQ5.js +6 -0
  64. package/dist/gateway/static/root/assets/{binary-plugins-CGmXoZnl.js → binary-plugins-BkKYh-8v.js} +1 -1
  65. package/dist/gateway/static/root/assets/{block-editor-CtvzCZhC.js → block-editor-CDcMvaku.js} +3 -3
  66. package/dist/gateway/static/root/assets/{browser-automation-inputs-BOTU1isH.js → browser-automation-inputs-Cq4sIJt2.js} +1 -1
  67. package/dist/gateway/static/root/assets/{browser-automations-page-BwU5V8J0.js → browser-automations-page-C64k4TBH.js} +2 -2
  68. package/dist/gateway/static/root/assets/browser-settings-page-1k5rj_qR.js +8 -0
  69. package/dist/gateway/static/root/assets/button-CGlRPNzi.js +1 -0
  70. package/dist/gateway/static/root/assets/capabilities-settings-panel-B2NvoTYb.js +8 -0
  71. package/dist/gateway/static/root/assets/channels-settings-DExixzp4.js +1 -0
  72. package/dist/gateway/static/root/assets/{channels-status-swr-Dfi0Desh.js → channels-status-swr-CVzEYBpX.js} +1 -1
  73. package/dist/gateway/static/root/assets/{chat-terminal-dock-B0MvcO6j.js → chat-terminal-dock-B9eKFkbg.js} +2 -2
  74. package/dist/gateway/static/root/assets/computer-model-settings-DW6j2lsn.js +1 -0
  75. package/dist/gateway/static/root/assets/computer-settings-page-C2Qyw63Q.js +1 -0
  76. package/dist/gateway/static/root/assets/connectors-page-C3ubZz7K.js +2 -0
  77. package/dist/gateway/static/root/assets/{cron-expression-CjrWuy2m.js → cron-expression-GDPX4NxC.js} +1 -1
  78. package/dist/gateway/static/root/assets/{date-picker-DXOvbHCr.js → date-picker-BdxjXVKL.js} +1 -1
  79. package/dist/gateway/static/root/assets/{dependency-picker-BEnC-eS0.js → dependency-picker-CXOa4uh4.js} +1 -1
  80. package/dist/gateway/static/root/assets/desktop-pet-CBWiAaSv.js +1 -0
  81. package/dist/gateway/static/root/assets/{desktop-pet-settings-CYyjcSn6.js → desktop-pet-settings-BX1aILDK.js} +1 -1
  82. package/dist/gateway/static/root/assets/{device-pairing-wizard-BPMGvAKE.js → device-pairing-wizard-bqm_Yf4i.js} +1 -1
  83. package/dist/gateway/static/root/assets/{extension-debug-page-H_aPMGXW.js → extension-debug-page-B4MMerja.js} +1 -1
  84. package/dist/gateway/static/root/assets/{extension-page-C1JnpeMt.js → extension-page-B3ZtINak.js} +1 -1
  85. package/dist/gateway/static/root/assets/extension-settings-page-8BkQVh0z.js +1 -0
  86. package/dist/gateway/static/root/assets/{gateway-config-swr-G2lQt7Ak.js → gateway-config-swr-BBovMBQ1.js} +1 -1
  87. package/dist/gateway/static/root/assets/gateway-settings-ZyhacQX5.js +1 -0
  88. package/dist/gateway/static/root/assets/{gateway-startup-retry-GP31PUrG.js → gateway-startup-retry-NXDtzZED.js} +1 -1
  89. package/dist/gateway/static/root/assets/heartbeat-settings-Bllcxm2A.js +1 -0
  90. package/dist/gateway/static/root/assets/home-page-Cv2e8XBR.js +1 -0
  91. package/dist/gateway/static/root/assets/{image-generation-api-CKFhfHSw.js → image-generation-api-D01ieqGC.js} +1 -1
  92. package/dist/gateway/static/root/assets/{imports-page-GROumhj8.js → imports-page-DJG1BJzd.js} +1 -1
  93. package/dist/gateway/static/root/assets/index-B7EieIE4.js +75 -0
  94. package/dist/gateway/static/root/assets/index-BD5uNzie.css +2 -0
  95. package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-zcI822m_.js → keyboard-shortcuts-settings-6A6JOHTI.js} +1 -1
  96. package/dist/gateway/static/root/assets/local-app-workbench-page-Cipj52Zq.js +2 -0
  97. package/dist/gateway/static/root/assets/{local-apps-page-BtgDJ92Q.js → local-apps-page-bD-m7YHJ.js} +1 -1
  98. package/dist/gateway/static/root/assets/locale-store-eliqUnBr.js +1 -0
  99. package/dist/gateway/static/root/assets/logs-page-D5feO2yw.js +2 -0
  100. package/dist/gateway/static/root/assets/{management-settings-DasZxCyD.js → management-settings-B7mz0_44.js} +1 -1
  101. package/dist/gateway/static/root/assets/{markdown-view-6oYdBahT.js → markdown-view-BIg7cei7.js} +1 -1
  102. package/dist/gateway/static/root/assets/{media-plugins-CxthbBvk.js → media-plugins-DQ2HfMeG.js} +1 -1
  103. package/dist/gateway/static/root/assets/messages-NYDOR8-j.js +3 -0
  104. package/dist/gateway/static/root/assets/note-detail-panel-DhYJigb3.js +5 -0
  105. package/dist/gateway/static/root/assets/notes-page-Bg5NPUdf.js +8 -0
  106. package/dist/gateway/static/root/assets/page-tabs-DmG_Qjl8.js +1 -0
  107. package/dist/gateway/static/root/assets/popover-select-DldSX8GX.js +1 -0
  108. package/dist/gateway/static/root/assets/{preview-open-alternatives-Bevpbq9f.js → preview-open-alternatives-Y9J1kjKC.js} +1 -1
  109. package/dist/gateway/static/root/assets/proactive-page-Duc_NQ8l.js +1 -0
  110. package/dist/gateway/static/root/assets/{product-open-page-Bi1seZpM.js → product-open-page-DtgWUAwT.js} +1 -1
  111. package/dist/gateway/static/root/assets/project-detail-page-DVOiucVA.js +1 -0
  112. package/dist/gateway/static/root/assets/projects-page-Dr_kDoCJ.js +1 -0
  113. package/dist/gateway/static/root/assets/{registry-api-D0ddwBFj.js → registry-api-Dpm3N2h0.js} +1 -1
  114. package/dist/gateway/static/root/assets/remote-access-hub-hyJ2KKKK.js +1 -0
  115. package/dist/gateway/static/root/assets/{runtime-tools-settings-panel-Wkru8_My.js → runtime-tools-settings-panel-DB7J9opJ.js} +2 -2
  116. package/dist/gateway/static/root/assets/{schema-form-CSMRzj9Y.js → schema-form-CMYuPOlE.js} +1 -1
  117. package/dist/gateway/static/root/assets/sessions-page-DGsnYcoh.js +1 -0
  118. package/dist/gateway/static/root/assets/settings-advanced-gate-DuzZqQMn.js +1 -0
  119. package/dist/gateway/static/root/assets/settings-form-section-BayJP08a.js +1 -0
  120. package/dist/gateway/static/root/assets/{settings-page-BcQGAnCs.js → settings-page-CWBqZtt6.js} +1 -1
  121. package/dist/gateway/static/root/assets/settings-page-layout-CsUQKRq0.js +1 -0
  122. package/dist/gateway/static/root/assets/setup-status-panel-C97S5g5c.js +1 -0
  123. package/dist/gateway/static/root/assets/{share-preview-page-DQocUl-1.js → share-preview-page-Wn5bQA-5.js} +1 -1
  124. package/dist/gateway/static/root/assets/shares-settings-pfVzP8F7.js +1 -0
  125. package/dist/gateway/static/root/assets/skill-reload-api-DDJ0ZKx3.js +1 -0
  126. package/dist/gateway/static/root/assets/skills-page-DbDpLjDW.js +2 -0
  127. package/dist/gateway/static/root/assets/{skills-page.utils-DtlfCgJp.js → skills-page.utils-DCHY_kou.js} +1 -1
  128. package/dist/gateway/static/root/assets/{system-settings-panel-Ct698Nf-.js → system-settings-panel-DhgITgId.js} +1 -1
  129. package/dist/gateway/static/root/assets/task-detail-page-UqwtiHYu.js +1 -0
  130. package/dist/gateway/static/root/assets/{theme-store-ng8KJsAT.js → theme-store-DUHPzKzv.js} +1 -1
  131. package/dist/gateway/static/root/assets/tunnel-api-DJ3gz2tM.js +1 -0
  132. package/dist/gateway/static/root/assets/{use-autosave-BSyxRHt2.js → use-autosave-htvgT192.js} +1 -1
  133. package/dist/gateway/static/root/assets/user-model-page-xOsXY_2W.js +2 -0
  134. package/dist/gateway/static/root/assets/{voice-api-key-field-SE3OQI1s.js → voice-api-key-field-BviJF3Oa.js} +1 -1
  135. package/dist/gateway/static/root/assets/{voice-config-api-VNuCmdFe.js → voice-config-api-Bjy8EFqi.js} +1 -1
  136. package/dist/gateway/static/root/assets/{work-discovery-overlay-Dn1vy2oq.js → work-discovery-overlay-BOBVNEYZ.js} +1 -1
  137. package/dist/gateway/static/root/assets/{workflow-run-setup-panel-BJEfGY-k.js → workflow-run-setup-panel-D1N9uUyM.js} +2 -2
  138. package/dist/gateway/static/root/assets/workflows-page-2ylzlgkG.js +6 -0
  139. package/dist/gateway/static/root/index.html +12 -12
  140. package/dist/package.js +1 -1
  141. package/dist/packages/computer-control-contract/src/index.js +178 -0
  142. package/dist/packages/endpoint-tools-protocol/src/index.js +312 -305
  143. package/dist/packages/gateway-contract/src/agent-stream.js +6 -0
  144. package/dist/packages/gateway-contract/src/automations.js +215 -0
  145. package/dist/packages/gateway-contract/src/browser-page-context.js +48 -39
  146. package/dist/packages/gateway-contract/src/browser-tab-binding.js +30 -25
  147. package/dist/packages/gateway-contract/src/clarifications.js +6 -0
  148. package/dist/packages/gateway-contract/src/connection-waits.js +6 -0
  149. package/dist/packages/gateway-contract/src/conversation-identity.js +17 -0
  150. package/dist/packages/gateway-contract/src/device-pairing.js +84 -78
  151. package/dist/packages/gateway-contract/src/discussions.js +19 -15
  152. package/dist/packages/gateway-contract/src/files.js +55 -0
  153. package/dist/packages/gateway-contract/src/home.js +188 -0
  154. package/dist/packages/gateway-contract/src/index.js +65 -0
  155. package/dist/packages/gateway-contract/src/mobile-privacy.js +26 -0
  156. package/dist/packages/gateway-contract/src/model-selection.js +4 -1
  157. package/dist/packages/gateway-contract/src/new-session.js +5 -1
  158. package/dist/packages/gateway-contract/src/notifications.js +64 -59
  159. package/dist/packages/gateway-contract/src/proactive.js +133 -128
  160. package/dist/packages/gateway-contract/src/product-delivery.js +56 -50
  161. package/dist/packages/gateway-contract/src/project-monitoring.js +33 -28
  162. package/dist/packages/gateway-contract/src/project-operating.js +100 -0
  163. package/dist/packages/gateway-contract/src/session-identity.js +38 -34
  164. package/dist/packages/gateway-contract/src/session-input-reliability.js +6 -0
  165. package/dist/packages/gateway-contract/src/sessions.js +145 -0
  166. package/dist/packages/gateway-contract/src/task-lifecycle.js +69 -64
  167. package/dist/packages/gateway-contract/src/task-runs.js +80 -75
  168. package/dist/packages/gateway-contract/src/tasks.js +445 -438
  169. package/dist/packages/gateway-contract/src/tool-activity.js +154 -149
  170. package/dist/packages/gateway-contract/src/turn-outcome.js +118 -112
  171. package/dist/packages/gateway-contract/src/user-message-display.js +13 -8
  172. package/dist/packages/gateway-contract/src/welcome-suggestions.js +6 -0
  173. package/dist/packages/realtime-client/src/index.js +1 -1
  174. package/dist/packages/realtime-protocol/src/index.js +4 -2
  175. package/dist/packages/realtime-protocol/src/voice-audio.js +15 -10
  176. package/dist/packages/realtime-protocol/src/voice-catalog.js +61 -0
  177. package/dist/packages/realtime-protocol/src/voice.js +257 -248
  178. package/dist/src/activity/types.d.ts +1 -1
  179. package/dist/src/agent/agent-instance-gateway.d.ts +18 -18
  180. package/dist/src/agent/agent-manager.d.ts +28 -27
  181. package/dist/src/agent/agent-manager.js +184 -182
  182. package/dist/src/agent/background-review/coordinator.d.ts +3 -3
  183. package/dist/src/agent/background-review/coordinator.js +10 -10
  184. package/dist/src/agent/background-review/run-background-review.d.ts +1 -1
  185. package/dist/src/agent/background-review/run-background-review.js +15 -15
  186. package/dist/src/agent/bootstrap/bootstrap-cache.d.ts +4 -4
  187. package/dist/src/agent/bootstrap/bootstrap-cache.js +9 -9
  188. package/dist/src/agent/bootstrap/bootstrap-files.d.ts +4 -4
  189. package/dist/src/agent/bootstrap/bootstrap-files.js +9 -9
  190. package/dist/src/agent/bootstrap/filter-bootstrap-files.d.ts +1 -1
  191. package/dist/src/agent/bootstrap/filter-bootstrap-files.js +3 -3
  192. package/dist/src/agent/child-agent-factory.d.ts +3 -3
  193. package/dist/src/agent/child-agent-factory.js +5 -5
  194. package/dist/src/agent/coding/workspace-revision.js +1 -1
  195. package/dist/src/agent/commands/command-registry.js +2 -1
  196. package/dist/src/agent/context/audit.d.ts +2 -2
  197. package/dist/src/agent/context/audit.js +5 -4
  198. package/dist/src/agent/context/coordinator.d.ts +6 -6
  199. package/dist/src/agent/context/coordinator.js +13 -13
  200. package/dist/src/agent/context/execution-context.js +4 -3
  201. package/dist/src/agent/context/execution-scope.d.ts +3 -3
  202. package/dist/src/agent/context/execution-scope.js +13 -13
  203. package/dist/src/agent/context/project-context.d.ts +1 -1
  204. package/dist/src/agent/context/project-context.js +4 -4
  205. package/dist/src/agent/embedded/execution-context.d.ts +1 -1
  206. package/dist/src/agent/embedded/execution-context.js +3 -3
  207. package/dist/src/agent/embedded/index.d.ts +1 -1
  208. package/dist/src/agent/embedded/index.js +2 -2
  209. package/dist/src/agent/embedded/model-runtime.js +1 -1
  210. package/dist/src/agent/embedded/run-for-session.d.ts +1 -1
  211. package/dist/src/agent/embedded/run-for-session.js +79 -105
  212. package/dist/src/agent/embedded/run-turn.js +86 -34
  213. package/dist/src/agent/embedded/runs.d.ts +11 -11
  214. package/dist/src/agent/embedded/runs.js +22 -22
  215. package/dist/src/agent/embedded/session-runner.d.ts +2 -2
  216. package/dist/src/agent/embedded/session-runner.js +5 -5
  217. package/dist/src/agent/embedded/session-tool-result-guard.d.ts +2 -2
  218. package/dist/src/agent/embedded/session-tool-result-guard.js +8 -8
  219. package/dist/src/agent/embedded/sqlite-hydrating-session-manager.d.ts +2 -2
  220. package/dist/src/agent/embedded/sqlite-hydrating-session-manager.js +4 -4
  221. package/dist/src/agent/embedded/transcript-runtime.d.ts +4 -3
  222. package/dist/src/agent/embedded/transcript-runtime.js +33 -20
  223. package/dist/src/agent/embedded/types.d.ts +2 -1
  224. package/dist/src/agent/external-tools/composio-provider.d.ts +1 -1
  225. package/dist/src/agent/external-tools/composio-provider.js +12 -11
  226. package/dist/src/agent/external-tools/endpoint-provider.js +5 -3
  227. package/dist/src/agent/external-tools/extension-provider.d.ts +1 -1
  228. package/dist/src/agent/external-tools/extension-provider.js +1 -1
  229. package/dist/src/agent/external-tools/gateway-tools.js +9 -8
  230. package/dist/src/agent/external-tools/index.js +3 -3
  231. package/dist/src/agent/external-tools/mcp-provider.d.ts +2 -2
  232. package/dist/src/agent/external-tools/mcp-provider.js +8 -8
  233. package/dist/src/agent/external-tools/memory-provider.d.ts +1 -1
  234. package/dist/src/agent/external-tools/memory-provider.js +1 -1
  235. package/dist/src/agent/external-tools/types.d.ts +1 -1
  236. package/dist/src/agent/image/tool-model-config.js +1 -1
  237. package/dist/src/agent/inbound/attachment-pipeline.d.ts +7 -7
  238. package/dist/src/agent/inbound/attachment-pipeline.js +22 -21
  239. package/dist/src/agent/inbound/inbound-loop.d.ts +6 -6
  240. package/dist/src/agent/inbound/inbound-loop.js +23 -23
  241. package/dist/src/agent/inbound/turn-dispatcher.d.ts +14 -14
  242. package/dist/src/agent/inbound/turn-dispatcher.js +16 -16
  243. package/dist/src/agent/ipc/bus.d.ts +1 -1
  244. package/dist/src/agent/ipc/types.d.ts +3 -3
  245. package/dist/src/agent/ipc/types.js +1 -1
  246. package/dist/src/agent/lifecycle/hook-handler.d.ts +2 -2
  247. package/dist/src/agent/lifecycle/hook-handler.js +6 -6
  248. package/dist/src/agent/lifecycle/manager.d.ts +1 -1
  249. package/dist/src/agent/lifecycle/manager.js +4 -4
  250. package/dist/src/agent/lifecycle/types.d.ts +1 -1
  251. package/dist/src/agent/mcp/bundle-mcp-runtime.d.ts +4 -4
  252. package/dist/src/agent/mcp/bundle-mcp-runtime.js +21 -20
  253. package/dist/src/agent/mcp/bundle-mcp-tools.d.ts +1 -1
  254. package/dist/src/agent/mcp/bundle-mcp-tools.js +2 -2
  255. package/dist/src/agent/mcp/bundle-mcp-types.d.ts +4 -4
  256. package/dist/src/agent/mcp/index.js +2 -2
  257. package/dist/src/agent/mcp/oauth/mcp-oauth-manager.js +9 -8
  258. package/dist/src/agent/mcp/oauth/mcp-oauth-store.js +1 -1
  259. package/dist/src/agent/memory/compaction-ledger.js +9 -2
  260. package/dist/src/agent/memory/compaction-promotion.d.ts +2 -2
  261. package/dist/src/agent/memory/compaction-promotion.js +6 -6
  262. package/dist/src/agent/memory/compaction-source-planner.d.ts +2 -0
  263. package/dist/src/agent/memory/compaction-source-planner.js +9 -1
  264. package/dist/src/agent/memory/compaction.d.ts +6 -1
  265. package/dist/src/agent/memory/compaction.js +22 -11
  266. package/dist/src/agent/memory/context-recovery.d.ts +44 -0
  267. package/dist/src/agent/memory/context-recovery.js +96 -0
  268. package/dist/src/agent/memory/manager.js +11 -11
  269. package/dist/src/agent/memory/turn-provenance.d.ts +5 -5
  270. package/dist/src/agent/memory/turn-provenance.js +21 -17
  271. package/dist/src/agent/memory/types.d.ts +2 -2
  272. package/dist/src/agent/messaging/command-handler.d.ts +11 -11
  273. package/dist/src/agent/messaging/command-handler.js +7 -7
  274. package/dist/src/agent/messaging/message-router.d.ts +1 -1
  275. package/dist/src/agent/messaging/message-router.js +4 -4
  276. package/dist/src/agent/messaging/outbound-coordinator.d.ts +2 -2
  277. package/dist/src/agent/messaging/outbound-coordinator.js +4 -4
  278. package/dist/src/agent/middleware/context.d.ts +1 -2
  279. package/dist/src/agent/middleware/context.js +2 -5
  280. package/dist/src/agent/models/manager.d.ts +10 -10
  281. package/dist/src/agent/models/manager.js +34 -34
  282. package/dist/src/agent/orchestration/agent-event-handler.js +14 -14
  283. package/dist/src/agent/orchestration/agent-orchestrator.d.ts +7 -7
  284. package/dist/src/agent/orchestration/agent-orchestrator.js +29 -29
  285. package/dist/src/agent/orchestration/context-overflow.js +2 -0
  286. package/dist/src/agent/orchestration/llm-turn-retry.d.ts +1 -1
  287. package/dist/src/agent/orchestration/llm-turn-retry.js +2 -2
  288. package/dist/src/agent/orchestration/run-agent-turn-with-timeout.d.ts +1 -1
  289. package/dist/src/agent/orchestration/run-agent-turn-with-timeout.js +2 -2
  290. package/dist/src/agent/prompt/response-language.d.ts +1 -1
  291. package/dist/src/agent/prompt/response-language.js +2 -2
  292. package/dist/src/agent/prompt/service-prompt-builder.d.ts +2 -2
  293. package/dist/src/agent/prompt/service-prompt-builder.js +4 -4
  294. package/dist/src/agent/prompt/subagent-context.d.ts +4 -4
  295. package/dist/src/agent/prompt/subagent-context.js +1 -1
  296. package/dist/src/agent/prompt/system-prompt-params.d.ts +4 -4
  297. package/dist/src/agent/prompt/system-prompt-params.js +13 -12
  298. package/dist/src/agent/reply/apply-turn-user-enrichment.d.ts +1 -1
  299. package/dist/src/agent/reply/apply-turn-user-enrichment.js +3 -3
  300. package/dist/src/agent/reply/post-compaction-context.d.ts +1 -1
  301. package/dist/src/agent/reply/post-compaction-context.js +2 -2
  302. package/dist/src/agent/service/btw-query.d.ts +1 -1
  303. package/dist/src/agent/service/btw-query.js +4 -4
  304. package/dist/src/agent/service/build-direct-message-content.d.ts +1 -1
  305. package/dist/src/agent/service/build-direct-message-content.js +2 -2
  306. package/dist/src/agent/service/direct-turn-helpers.d.ts +6 -6
  307. package/dist/src/agent/service/direct-turn-helpers.js +17 -16
  308. package/dist/src/agent/service/parse-outbound-session-key.d.ts +1 -1
  309. package/dist/src/agent/service/parse-outbound-session-key.js +8 -9
  310. package/dist/src/agent/service/process-direct-one-shot.d.ts +11 -11
  311. package/dist/src/agent/service/process-direct-one-shot.js +16 -16
  312. package/dist/src/agent/service/process-direct-streaming.d.ts +18 -18
  313. package/dist/src/agent/service/process-direct-streaming.js +45 -40
  314. package/dist/src/agent/service/session-context-report.d.ts +1 -1
  315. package/dist/src/agent/service/session-context-report.js +3 -3
  316. package/dist/src/agent/service/webchat-tts.d.ts +3 -3
  317. package/dist/src/agent/service/webchat-tts.js +7 -7
  318. package/dist/src/agent/service.d.ts +23 -23
  319. package/dist/src/agent/service.js +113 -110
  320. package/dist/src/agent/service.types.d.ts +3 -3
  321. package/dist/src/agent/session/session-config-service.d.ts +5 -5
  322. package/dist/src/agent/session/session-config-service.js +53 -66
  323. package/dist/src/agent/session/session-context.d.ts +2 -2
  324. package/dist/src/agent/session/session-context.js +2 -2
  325. package/dist/src/agent/session/session-hydrator.d.ts +3 -3
  326. package/dist/src/agent/session/session-hydrator.js +19 -19
  327. package/dist/src/agent/session/session-inspector.d.ts +7 -7
  328. package/dist/src/agent/session/session-inspector.js +46 -46
  329. package/dist/src/agent/session/session-lifecycle.d.ts +2 -2
  330. package/dist/src/agent/session/session-lifecycle.js +17 -17
  331. package/dist/src/agent/session/session-state-bag.d.ts +18 -18
  332. package/dist/src/agent/session/session-state-bag.js +46 -46
  333. package/dist/src/agent/session/tracker.d.ts +7 -7
  334. package/dist/src/agent/session/tracker.js +27 -27
  335. package/dist/src/agent/skills/hub-lock.js +1 -1
  336. package/dist/src/agent/skills/index.js +25 -15
  337. package/dist/src/agent/skills/parse-skill-metadata.d.ts +5 -1
  338. package/dist/src/agent/skills/parse-skill-metadata.js +21 -1
  339. package/dist/src/agent/skills/types.d.ts +7 -0
  340. package/dist/src/agent/source-context/types.d.ts +1 -1
  341. package/dist/src/agent/tasks/task-judge-service.d.ts +1 -1
  342. package/dist/src/agent/tasks/task-judge-service.js +14 -13
  343. package/dist/src/agent/tool-manuals/computer.d.ts +1 -0
  344. package/dist/src/agent/tool-manuals/computer.js +19 -0
  345. package/dist/src/agent/tool-manuals/index.js +7 -0
  346. package/dist/src/agent/tools/automation-tool.js +2 -0
  347. package/dist/src/agent/tools/chain-tracker.d.ts +10 -10
  348. package/dist/src/agent/tools/chain-tracker.js +31 -31
  349. package/dist/src/agent/tools/clarify-tool.d.ts +1 -1
  350. package/dist/src/agent/tools/computer-use-tool.d.ts +11 -0
  351. package/dist/src/agent/tools/computer-use-tool.js +86 -0
  352. package/dist/src/agent/tools/create-share-tool.js +2 -0
  353. package/dist/src/agent/tools/delegate-tool.d.ts +1 -1
  354. package/dist/src/agent/tools/delegate-tool.js +4 -4
  355. package/dist/src/agent/tools/exec-command.d.ts +1 -1
  356. package/dist/src/agent/tools/exec-command.js +1 -1
  357. package/dist/src/agent/tools/factory.d.ts +5 -3
  358. package/dist/src/agent/tools/factory.js +66 -36
  359. package/dist/src/agent/tools/knowledge-memory-tool.js +2 -2
  360. package/dist/src/agent/tools/managed-job-tool.d.ts +1 -1
  361. package/dist/src/agent/tools/managed-job-tool.js +2 -2
  362. package/dist/src/agent/tools/publish-artifacts.js +2 -0
  363. package/dist/src/agent/tools/send-media.js +2 -0
  364. package/dist/src/agent/tools/session-recall-tool.d.ts +1 -1
  365. package/dist/src/agent/tools/session-recall-tool.js +3 -3
  366. package/dist/src/agent/tools/session-search-tool.d.ts +1 -1
  367. package/dist/src/agent/tools/session-search-tool.js +6 -6
  368. package/dist/src/agent/tools/skill-install-tool.d.ts +3 -3
  369. package/dist/src/agent/tools/skill-install-tool.js +3 -3
  370. package/dist/src/agent/tools/todo-tool.d.ts +3 -3
  371. package/dist/src/agent/tools/todo-tool.js +4 -4
  372. package/dist/src/agent/tools/workflow-tool.d.ts +1 -1
  373. package/dist/src/agent/tools/workflow-tool.js +15 -13
  374. package/dist/src/agent/tools/write.js +2 -0
  375. package/dist/src/agent/tools/xopc-use-tool.d.ts +1 -1
  376. package/dist/src/agent/tools/xopc-use-tool.js +16 -13
  377. package/dist/src/agent/types.d.ts +1 -1
  378. package/dist/src/agent/workflow/catalog.js +4 -2
  379. package/dist/src/agent/workflow/channel-capability.d.ts +2 -2
  380. package/dist/src/agent/workflow/progress-broker.d.ts +4 -4
  381. package/dist/src/agent/workflow/progress-broker.js +17 -17
  382. package/dist/src/agent/workflow/subagent-runner.js +10 -10
  383. package/dist/src/agent/workflow/types.d.ts +2 -2
  384. package/dist/src/agent/workflow/workflow-child-tools.js +1 -1
  385. package/dist/src/agent/workspace-runtime/registry.js +1 -1
  386. package/dist/src/agent-config/index.js +2 -2
  387. package/dist/src/agent-config/resolver.js +5 -0
  388. package/dist/src/agent-config/schema.d.ts +32 -0
  389. package/dist/src/agent-config/schema.js +5 -2
  390. package/dist/src/ai-assist/text-assist.js +1 -1
  391. package/dist/src/auth/credentials.js +2 -2
  392. package/dist/src/auth/oauth/xopc-cloud.js +1 -1
  393. package/dist/src/auth/profiles/store.js +1 -1
  394. package/dist/src/auth/sync-provider-auth.js +2 -2
  395. package/dist/src/automations/domain/types.d.ts +7 -7
  396. package/dist/src/automations/domain/validation.js +2 -0
  397. package/dist/src/automations/service/action-executor.js +15 -15
  398. package/dist/src/automations/service/automation-service.js +4 -3
  399. package/dist/src/automations/storage/automation-repository.js +2 -1
  400. package/dist/src/automations/storage/automation-run-repository.js +9 -8
  401. package/dist/src/browser/native-messaging-host.js +4 -1
  402. package/dist/src/browser/policy/approval-store.d.ts +4 -4
  403. package/dist/src/browser/policy/approval-store.js +8 -8
  404. package/dist/src/browser/providers/browser-ext-install.js +1 -1
  405. package/dist/src/browser/providers/extension.js +6 -6
  406. package/dist/src/browser/providers/realtime-extension.js +2 -2
  407. package/dist/src/browser/runtime/browser-runtime.js +3 -3
  408. package/dist/src/capabilities/readiness/from-config.js +14 -2
  409. package/dist/src/capabilities/readiness/planner.js +3 -2
  410. package/dist/src/capabilities/readiness/types.d.ts +1 -1
  411. package/dist/src/channels/exec-approval-runtime.d.ts +1 -1
  412. package/dist/src/channels/manager.js +1 -1
  413. package/dist/src/channels/pipeline.js +2 -2
  414. package/dist/src/channels/plugin-types.d.ts +2 -2
  415. package/dist/src/channels/plugins/types.adapters.d.ts +1 -1
  416. package/dist/src/channels/telegram/index.d.ts +1 -1
  417. package/dist/src/channels/telegram/index.js +2 -2
  418. package/dist/src/chat-commands/agent-edit.js +2 -2
  419. package/dist/src/chat-commands/builtins/review.js +4 -4
  420. package/dist/src/chat-commands/builtins/session.js +1 -1
  421. package/dist/src/chat-commands/builtins/system.js +2 -2
  422. package/dist/src/chat-commands/builtins/thinking.js +7 -7
  423. package/dist/src/chat-commands/builtins/understanding.js +4 -4
  424. package/dist/src/chat-commands/builtins/workflow.js +8 -8
  425. package/dist/src/chat-commands/context.d.ts +9 -9
  426. package/dist/src/chat-commands/context.js +35 -35
  427. package/dist/src/chat-commands/index.d.ts +1 -1
  428. package/dist/src/chat-commands/index.js +2 -2
  429. package/dist/src/chat-commands/processor.js +2 -2
  430. package/dist/src/chat-commands/registry.js +1 -1
  431. package/dist/src/chat-commands/session-key.d.ts +3 -3
  432. package/dist/src/chat-commands/session-key.js +20 -24
  433. package/dist/src/chat-commands/types.d.ts +3 -3
  434. package/dist/src/cli/command-manifest.js +1 -1
  435. package/dist/src/cli/commands/agent/interactive.d.ts +1 -1
  436. package/dist/src/cli/commands/agent/interactive.js +8 -8
  437. package/dist/src/cli/commands/agent/stream-renderer.d.ts +1 -1
  438. package/dist/src/cli/commands/agent/stream-renderer.js +2 -2
  439. package/dist/src/cli/commands/agent.js +10 -6
  440. package/dist/src/cli/commands/doctor/checks/database-schema.js +3 -2
  441. package/dist/src/cli/commands/doctor/checks/provider-auth.js +3 -3
  442. package/dist/src/cli/commands/doctor/checks/session-integrity.js +9 -9
  443. package/dist/src/cli/commands/gateway/lifecycle.js +1 -1
  444. package/dist/src/cli/commands/gateway/run-foreground.js +2 -1
  445. package/dist/src/cli/commands/import.js +2 -1
  446. package/dist/src/cli/commands/logs.js +3 -3
  447. package/dist/src/cli/commands/models.js +1 -1
  448. package/dist/src/cli/commands/project.js +5 -5
  449. package/dist/src/cli/commands/resume.js +4 -4
  450. package/dist/src/cli/commands/tunnel.js +2 -1
  451. package/dist/src/computer/broker.d.ts +97 -0
  452. package/dist/src/computer/broker.js +337 -0
  453. package/dist/src/computer/config.d.ts +9 -0
  454. package/dist/src/computer/config.js +16 -0
  455. package/dist/src/computer/control-guard.d.ts +4 -0
  456. package/dist/src/computer/control-guard.js +17 -0
  457. package/dist/src/computer/errors.d.ts +7 -0
  458. package/dist/src/computer/errors.js +30 -0
  459. package/dist/src/computer/model-adapter.d.ts +44 -0
  460. package/dist/src/computer/model-adapter.js +273 -0
  461. package/dist/src/computer/model-config.d.ts +3 -0
  462. package/dist/src/computer/model-config.js +27 -0
  463. package/dist/src/computer/model-policy.d.ts +3 -0
  464. package/dist/src/computer/model-policy.js +20 -0
  465. package/dist/src/computer/runtime.d.ts +128 -0
  466. package/dist/src/computer/runtime.js +388 -0
  467. package/dist/src/config/agent-profile.d.ts +3 -3
  468. package/dist/src/config/agent-profile.js +12 -12
  469. package/dist/src/config/index.js +4 -4
  470. package/dist/src/config/loader.js +2 -2
  471. package/dist/src/config/models-json.d.ts +42 -6
  472. package/dist/src/config/models-json.js +15 -1
  473. package/dist/src/config/schema.d.ts +38 -1
  474. package/dist/src/config/schema.js +11 -2
  475. package/dist/src/config/voice.js +2 -2
  476. package/dist/src/connectors/catalog.js +2 -1
  477. package/dist/src/connectors/composio-sessions.d.ts +1 -1
  478. package/dist/src/connectors/composio-sessions.js +3 -3
  479. package/dist/src/connectors/connection-recovery-service.d.ts +4 -4
  480. package/dist/src/connectors/connection-recovery-service.js +41 -37
  481. package/dist/src/connectors/principal.d.ts +1 -1
  482. package/dist/src/connectors/principal.js +4 -3
  483. package/dist/src/connectors/types.d.ts +2 -2
  484. package/dist/src/discussions/action-tasks.js +5 -2
  485. package/dist/src/discussions/analyzer.js +2 -1
  486. package/dist/src/discussions/edits.js +4 -2
  487. package/dist/src/discussions/index.js +1 -1
  488. package/dist/src/discussions/organizer.js +3 -2
  489. package/dist/src/discussions/recording.js +5 -2
  490. package/dist/src/discussions/recordingJobs.js +2 -1
  491. package/dist/src/discussions/repository.js +2 -1
  492. package/dist/src/discussions/revisions.js +2 -1
  493. package/dist/src/discussions/sealer.js +1 -1
  494. package/dist/src/discussions/service.js +6 -3
  495. package/dist/src/discussions/types.js +4 -0
  496. package/dist/src/endpoint-tools/auth.js +2 -1
  497. package/dist/src/endpoint-tools/binding-service.d.ts +8 -8
  498. package/dist/src/endpoint-tools/binding-service.js +14 -14
  499. package/dist/src/endpoint-tools/invocation-service.d.ts +1 -0
  500. package/dist/src/endpoint-tools/invocation-service.js +7 -3
  501. package/dist/src/endpoint-tools/policy.js +9 -1
  502. package/dist/src/endpoint-tools/registry.js +2 -1
  503. package/dist/src/endpoint-tools/runtime.js +1 -0
  504. package/dist/src/endpoint-tools/upload-service.d.ts +13 -1
  505. package/dist/src/endpoint-tools/upload-service.js +75 -9
  506. package/dist/src/execution-environments/local-worktree-manager.d.ts +1 -1
  507. package/dist/src/execution-environments/local-worktree-manager.js +2 -2
  508. package/dist/src/execution-environments/session-environment-service.d.ts +3 -3
  509. package/dist/src/execution-environments/session-environment-service.js +10 -10
  510. package/dist/src/execution-environments/store.d.ts +2 -2
  511. package/dist/src/execution-environments/store.js +15 -14
  512. package/dist/src/execution-environments/subject.d.ts +1 -1
  513. package/dist/src/execution-environments/subject.js +2 -2
  514. package/dist/src/execution-environments/types.d.ts +2 -2
  515. package/dist/src/extensions/api.js +1 -1
  516. package/dist/src/extensions/install.js +1 -1
  517. package/dist/src/extensions/loader.d.ts +1 -1
  518. package/dist/src/extensions/lockfile.js +1 -1
  519. package/dist/src/extensions/types/core.d.ts +2 -2
  520. package/dist/src/extensions/types/hooks.d.ts +12 -12
  521. package/dist/src/extensions/types/tools.d.ts +3 -3
  522. package/dist/src/extensions/types/tui.d.ts +3 -3
  523. package/dist/src/files/file-service.d.ts +3 -3
  524. package/dist/src/files/file-service.js +3 -3
  525. package/dist/src/gateway/agent-builtin-tools.d.ts +7 -1
  526. package/dist/src/gateway/agent-builtin-tools.js +7 -0
  527. package/dist/src/gateway/agents-admin.js +1 -1
  528. package/dist/src/gateway/automation-agent-session.js +5 -5
  529. package/dist/src/gateway/chat-stream/mapper.d.ts +1 -1
  530. package/dist/src/gateway/chat-stream/mapper.js +4 -2
  531. package/dist/src/gateway/chat-stream/protocol.d.ts +1 -1
  532. package/dist/src/gateway/chat-stream/thinking-delta-coalescer.js +1 -1
  533. package/dist/src/gateway/clarify-runtime.d.ts +2 -2
  534. package/dist/src/gateway/clarify-runtime.js +2 -2
  535. package/dist/src/gateway/file-path-classifier.d.ts +2 -2
  536. package/dist/src/gateway/file-path-classifier.js +5 -5
  537. package/dist/src/gateway/file-reference-registry.d.ts +2 -2
  538. package/dist/src/gateway/file-reference-registry.js +1 -1
  539. package/dist/src/gateway/file-space-service.js +3 -3
  540. package/dist/src/gateway/gateway-workflow-host.types.d.ts +1 -1
  541. package/dist/src/gateway/global-defaults-admin.js +16 -0
  542. package/dist/src/gateway/heartbeat/check-store.js +2 -1
  543. package/dist/src/gateway/heartbeat/service.js +23 -9
  544. package/dist/src/gateway/hono/lib/config-payload.d.ts +15 -0
  545. package/dist/src/gateway/hono/lib/config-payload.js +2 -1
  546. package/dist/src/gateway/hono/middleware/log-context.d.ts +1 -1
  547. package/dist/src/gateway/hono/middleware/log-context.js +3 -3
  548. package/dist/src/gateway/hono/routes/agent-stream.js +20 -20
  549. package/dist/src/gateway/hono/routes/browser-session.js +2 -2
  550. package/dist/src/gateway/hono/routes/browser.js +22 -20
  551. package/dist/src/gateway/hono/routes/chat-model-config.d.ts +1 -1
  552. package/dist/src/gateway/hono/routes/chat-model-config.js +6 -6
  553. package/dist/src/gateway/hono/routes/commands-skills.js +13 -13
  554. package/dist/src/gateway/hono/routes/config-patch/misc.js +13 -2
  555. package/dist/src/gateway/hono/routes/connection-waits.js +5 -5
  556. package/dist/src/gateway/hono/routes/connectors.js +5 -5
  557. package/dist/src/gateway/hono/routes/context-sources.js +2 -1
  558. package/dist/src/gateway/hono/routes/device-pairing-approval.js +2 -0
  559. package/dist/src/gateway/hono/routes/devices.js +2 -0
  560. package/dist/src/gateway/hono/routes/discussions.js +2 -2
  561. package/dist/src/gateway/hono/routes/endpoint-tools.js +11 -9
  562. package/dist/src/gateway/hono/routes/execution-environments.js +11 -11
  563. package/dist/src/gateway/hono/routes/file-references.js +5 -5
  564. package/dist/src/gateway/hono/routes/home.js +1 -1
  565. package/dist/src/gateway/hono/routes/interaction-state.js +6 -6
  566. package/dist/src/gateway/hono/routes/logs.js +2 -2
  567. package/dist/src/gateway/hono/routes/media.js +3 -3
  568. package/dist/src/gateway/hono/routes/models.js +6 -3
  569. package/dist/src/gateway/hono/routes/notes.js +11 -11
  570. package/dist/src/gateway/hono/routes/projects.js +26 -26
  571. package/dist/src/gateway/hono/routes/public-gateway.js +3 -3
  572. package/dist/src/gateway/hono/routes/session-input-handler.d.ts +10 -10
  573. package/dist/src/gateway/hono/routes/session-input-handler.js +20 -17
  574. package/dist/src/gateway/hono/routes/sessions.js +79 -50
  575. package/dist/src/gateway/hono/routes/shares.js +38 -38
  576. package/dist/src/gateway/hono/routes/side-chats.js +4 -2
  577. package/dist/src/gateway/hono/routes/site-shares.js +6 -6
  578. package/dist/src/gateway/hono/routes/tasks.js +18 -13
  579. package/dist/src/gateway/hono/routes/tui.js +2 -2
  580. package/dist/src/gateway/hono/routes/user-model.js +1 -1
  581. package/dist/src/gateway/hono/routes/voice.js +56 -2
  582. package/dist/src/gateway/hono/routes/workflows.js +7 -7
  583. package/dist/src/gateway/media-access.d.ts +1 -1
  584. package/dist/src/gateway/media-access.js +3 -3
  585. package/dist/src/gateway/resolve-webchat-session-key.d.ts +5 -5
  586. package/dist/src/gateway/resolve-webchat-session-key.js +5 -5
  587. package/dist/src/gateway/security/gateway-scopes.d.ts +1 -1
  588. package/dist/src/gateway/security/gateway-scopes.js +3 -0
  589. package/dist/src/gateway/service/agent-runner.d.ts +15 -15
  590. package/dist/src/gateway/service/agent-runner.js +63 -62
  591. package/dist/src/gateway/service/config-coordinator.js +4 -1
  592. package/dist/src/gateway/service/marketplace-service.d.ts +3 -3
  593. package/dist/src/gateway/service/marketplace-service.js +6 -6
  594. package/dist/src/gateway/service/run-gateway-agent.js +51 -49
  595. package/dist/src/gateway/service/session-input-coordinator.d.ts +11 -11
  596. package/dist/src/gateway/service/session-input-coordinator.js +76 -74
  597. package/dist/src/gateway/service/sessions-api.d.ts +19 -20
  598. package/dist/src/gateway/service/sessions-api.js +30 -38
  599. package/dist/src/gateway/service/task-conversation-query-service.d.ts +3 -2
  600. package/dist/src/gateway/service/task-conversation-query-service.js +3 -3
  601. package/dist/src/gateway/service.d.ts +4 -4
  602. package/dist/src/gateway/service.js +76 -70
  603. package/dist/src/gateway/session-context-summary.d.ts +1 -1
  604. package/dist/src/gateway/session-context-summary.js +13 -11
  605. package/dist/src/gateway/session-reset-service.d.ts +4 -4
  606. package/dist/src/gateway/session-reset-service.js +12 -12
  607. package/dist/src/gateway/side-chat/context-snapshot.d.ts +2 -2
  608. package/dist/src/gateway/side-chat/context-snapshot.js +2 -2
  609. package/dist/src/gateway/side-chat/manager.d.ts +4 -4
  610. package/dist/src/gateway/side-chat/manager.js +13 -13
  611. package/dist/src/gateway/side-chat/run-service.js +8 -8
  612. package/dist/src/gateway/side-chat/types.d.ts +4 -4
  613. package/dist/src/heartbeat/index.js +1 -1
  614. package/dist/src/heartbeat/wake.d.ts +1 -1
  615. package/dist/src/history/ctx/exporter.js +11 -11
  616. package/dist/src/history/ctx/format.d.ts +1 -1
  617. package/dist/src/history/ctx/format.js +7 -7
  618. package/dist/src/imports/contextImport.js +2 -1
  619. package/dist/src/imports/productImport.js +2 -1
  620. package/dist/src/infra/node-sqlite.js +9 -3
  621. package/dist/src/infra/process-diagnostics.js +9 -5
  622. package/dist/src/infra/sqlite-errors.js +25 -20
  623. package/dist/src/infra/unhandled-rejections.js +15 -7
  624. package/dist/src/infra/update-restart.js +1 -1
  625. package/dist/src/infra/warning-filter.js +9 -3
  626. package/dist/src/knowledge-memory/domain.d.ts +2 -2
  627. package/dist/src/knowledge-memory/repository.d.ts +1 -1
  628. package/dist/src/knowledge-memory/repository.js +10 -8
  629. package/dist/src/mcp/channel-bridge.d.ts +3 -3
  630. package/dist/src/mcp/channel-bridge.js +7 -7
  631. package/dist/src/mcp/channel-shared.d.ts +4 -4
  632. package/dist/src/mcp/channel-shared.js +3 -3
  633. package/dist/src/mcp/channel-tools.js +19 -19
  634. package/dist/src/media/session-references.js +2 -2
  635. package/dist/src/memory-maintenance/service.js +2 -1
  636. package/dist/src/migrations/conversation-routing-config.d.ts +2 -0
  637. package/dist/src/migrations/conversation-routing-config.js +42 -0
  638. package/dist/src/migrations/runner.js +6 -5
  639. package/dist/src/notes/service.d.ts +2 -2
  640. package/dist/src/notes/service.js +6 -6
  641. package/dist/src/notes/store.js +2 -1
  642. package/dist/src/notes/types.d.ts +3 -3
  643. package/dist/src/notifications/device-store.js +2 -1
  644. package/dist/src/notifications/planner.js +5 -3
  645. package/dist/src/notifications/proactive-channel.js +4 -1
  646. package/dist/src/notifications/proactive-policy.js +2 -1
  647. package/dist/src/notifications/service.d.ts +4 -4
  648. package/dist/src/notifications/service.js +4 -1
  649. package/dist/src/notifications/store.js +4 -1
  650. package/dist/src/notifications/web-push.js +4 -1
  651. package/dist/src/platform/contracts.d.ts +3 -3
  652. package/dist/src/proactive/actions/service.js +2 -1
  653. package/dist/src/proactive/events/product-event-bridge.js +1 -1
  654. package/dist/src/proactive/events/repository.js +2 -1
  655. package/dist/src/proactive/execution/authorization.js +2 -1
  656. package/dist/src/proactive/execution/context.js +2 -1
  657. package/dist/src/proactive/execution/insight.js +2 -0
  658. package/dist/src/proactive/execution/repository.js +2 -1
  659. package/dist/src/proactive/execution/worker.js +3 -2
  660. package/dist/src/proactive/experience.d.ts +1 -1
  661. package/dist/src/proactive/experience.js +4 -3
  662. package/dist/src/proactive/follow-ups.d.ts +7 -7
  663. package/dist/src/proactive/follow-ups.js +5 -4
  664. package/dist/src/proactive/inbox/cards.js +5 -2
  665. package/dist/src/proactive/inbox/delivery.js +2 -1
  666. package/dist/src/proactive/inbox/digest.js +2 -1
  667. package/dist/src/proactive/inbox/lifecycle.js +2 -1
  668. package/dist/src/proactive/inbox/repository.js +2 -1
  669. package/dist/src/proactive/inbox/service.js +2 -1
  670. package/dist/src/proactive/mail-thread.js +2 -1
  671. package/dist/src/proactive/maintenance.js +2 -1
  672. package/dist/src/proactive/metrics.js +2 -1
  673. package/dist/src/proactive/policy/presence.js +2 -1
  674. package/dist/src/proactive/policy/service.js +4 -1
  675. package/dist/src/proactive/routing/batch-repository.js +2 -1
  676. package/dist/src/proactive/scenarios/control.js +4 -1
  677. package/dist/src/proactive/scenarios/repository.js +2 -1
  678. package/dist/src/proactive/service.js +2 -1
  679. package/dist/src/proactive/source-freshness.js +2 -1
  680. package/dist/src/proactive/status.js +2 -1
  681. package/dist/src/proactive/temporal/schedule.js +2 -1
  682. package/dist/src/projects/automation-bind.js +2 -1
  683. package/dist/src/projects/index.js +2 -2
  684. package/dist/src/projects/knowledge-bind.js +2 -1
  685. package/dist/src/projects/project-agent.js +4 -1
  686. package/dist/src/projects/project-service.d.ts +4 -4
  687. package/dist/src/projects/project-service.js +11 -10
  688. package/dist/src/projects/project-store.js +11 -9
  689. package/dist/src/projects/session-bind.d.ts +5 -5
  690. package/dist/src/projects/session-bind.js +18 -17
  691. package/dist/src/projects/types.d.ts +1 -1
  692. package/dist/src/projects/workflow-bind.js +2 -1
  693. package/dist/src/projects/workspace.d.ts +3 -3
  694. package/dist/src/projects/workspace.js +6 -6
  695. package/dist/src/providers/auth-runtime/resolve-auth.js +1 -1
  696. package/dist/src/providers/index.js +2 -2
  697. package/dist/src/providers/model-catalog-persistence.js +11 -2
  698. package/dist/src/providers/model-catalog-store.js +1 -0
  699. package/dist/src/providers/model-catalog-types.d.ts +7 -2
  700. package/dist/src/providers/model-reference-auditor.js +7 -4
  701. package/dist/src/providers/model-registry.js +4 -1
  702. package/dist/src/providers/model-supplements.js +18 -2
  703. package/dist/src/providers/presentation.js +4 -2
  704. package/dist/src/providers/prompt-cache-lifecycle.d.ts +2 -2
  705. package/dist/src/providers/prompt-cache-lifecycle.js +6 -6
  706. package/dist/src/providers/register-runtime-providers.js +1 -1
  707. package/dist/src/providers/xopc-cloud-model-source.js +10 -4
  708. package/dist/src/realtime/broker.js +3 -3
  709. package/dist/src/realtime/runtime.js +1 -1
  710. package/dist/src/retrieval/queryProfile.d.ts +1 -1
  711. package/dist/src/routing/agent-session-key.d.ts +12 -41
  712. package/dist/src/routing/agent-session-key.js +39 -120
  713. package/dist/src/routing/conversation-route.d.ts +28 -0
  714. package/dist/src/routing/conversation-route.js +50 -0
  715. package/dist/src/routing/index.d.ts +2 -2
  716. package/dist/src/routing/index.js +5 -5
  717. package/dist/src/routing/resolve-route.d.ts +4 -9
  718. package/dist/src/routing/resolve-route.js +20 -60
  719. package/dist/src/routing/resolve-tui-session-key.d.ts +5 -13
  720. package/dist/src/routing/resolve-tui-session-key.js +11 -36
  721. package/dist/src/routing/session-key.d.ts +6 -39
  722. package/dist/src/routing/session-key.js +13 -161
  723. package/dist/src/session/client-history.js +2 -0
  724. package/dist/src/session/compaction-types.js +18 -13
  725. package/dist/src/session/config-store.d.ts +8 -8
  726. package/dist/src/session/config-store.js +19 -19
  727. package/dist/src/session/index.d.ts +2 -2
  728. package/dist/src/session/index.js +9 -5
  729. package/dist/src/session/init-session-turn.d.ts +7 -7
  730. package/dist/src/session/init-session-turn.js +18 -18
  731. package/dist/src/session/manager.d.ts +7 -7
  732. package/dist/src/session/manager.js +6 -6
  733. package/dist/src/session/model-config-lock.d.ts +1 -1
  734. package/dist/src/session/model-config-lock.js +4 -4
  735. package/dist/src/session/resolve-session.d.ts +10 -10
  736. package/dist/src/session/resolve-session.js +20 -20
  737. package/dist/src/session/session-context-for-llm.js +17 -10
  738. package/dist/src/session/session-title.d.ts +5 -5
  739. package/dist/src/session/session-title.js +28 -28
  740. package/dist/src/session/session-workspace.d.ts +1 -1
  741. package/dist/src/session/session-workspace.js +3 -3
  742. package/dist/src/session/store.d.ts +14 -14
  743. package/dist/src/session/store.js +70 -50
  744. package/dist/src/session/stored-rows-to-file-entries.d.ts +1 -1
  745. package/dist/src/session/stored-rows-to-file-entries.js +5 -3
  746. package/dist/src/session/thinking-resolve.d.ts +2 -2
  747. package/dist/src/session/thinking-resolve.js +4 -4
  748. package/dist/src/session/transcript-events.d.ts +1 -1
  749. package/dist/src/session/transcript-events.js +3 -3
  750. package/dist/src/session/transcript-outline.js +2 -1
  751. package/dist/src/session/turn-outcome-projector.js +2 -0
  752. package/dist/src/session/types.d.ts +5 -4
  753. package/dist/src/session/types.js +13 -9
  754. package/dist/src/session/user-message-display.js +2 -0
  755. package/dist/src/session/user-round-delete.js +2 -1
  756. package/dist/src/session/voice-transcript.js +8 -3
  757. package/dist/src/share/hosted-session-share.d.ts +6 -6
  758. package/dist/src/share/hosted-session-share.js +13 -11
  759. package/dist/src/share/hosted-static-site-publish.d.ts +1 -1
  760. package/dist/src/share/hosted-static-site-publish.js +1 -1
  761. package/dist/src/share/session-share-service.d.ts +9 -9
  762. package/dist/src/share/session-share-service.js +19 -19
  763. package/dist/src/share/share-store.d.ts +2 -2
  764. package/dist/src/share/share-store.js +9 -7
  765. package/dist/src/share/share-types.d.ts +2 -2
  766. package/dist/src/share/site-share-router.d.ts +2 -2
  767. package/dist/src/share/site-share-store.js +4 -2
  768. package/dist/src/share/site-share-types.d.ts +1 -1
  769. package/dist/src/storage/sqlite/activity-repository.js +2 -1
  770. package/dist/src/storage/sqlite/browser-session-repository.js +2 -1
  771. package/dist/src/storage/sqlite/browser-tab-binding-repository.d.ts +2 -2
  772. package/dist/src/storage/sqlite/browser-tab-binding-repository.js +10 -9
  773. package/dist/src/storage/sqlite/clarification-wait-repository.d.ts +7 -7
  774. package/dist/src/storage/sqlite/clarification-wait-repository.js +58 -53
  775. package/dist/src/storage/sqlite/collaboration-rule-repository.js +2 -1
  776. package/dist/src/storage/sqlite/composer-input-history-repository.js +2 -1
  777. package/dist/src/storage/sqlite/config-repository.d.ts +6 -6
  778. package/dist/src/storage/sqlite/config-repository.js +29 -25
  779. package/dist/src/storage/sqlite/connection-wait-repository.d.ts +11 -11
  780. package/dist/src/storage/sqlite/connection-wait-repository.js +61 -51
  781. package/dist/src/storage/sqlite/connection.js +28 -18
  782. package/dist/src/storage/sqlite/connector-account-repository.js +2 -1
  783. package/dist/src/storage/sqlite/connector-learning-repository.js +2 -1
  784. package/dist/src/storage/sqlite/connector-repository.d.ts +1 -1
  785. package/dist/src/storage/sqlite/connector-repository.js +11 -10
  786. package/dist/src/storage/sqlite/connector-sync-policy-repository.js +2 -1
  787. package/dist/src/storage/sqlite/context-evidence-repository.d.ts +1 -1
  788. package/dist/src/storage/sqlite/context-evidence-repository.js +7 -6
  789. package/dist/src/storage/sqlite/context-extraction-repository.js +2 -1
  790. package/dist/src/storage/sqlite/context-relation-repository.js +2 -1
  791. package/dist/src/storage/sqlite/conversation-repository.d.ts +12 -0
  792. package/dist/src/storage/sqlite/conversation-repository.js +76 -0
  793. package/dist/src/storage/sqlite/device-access-repository.js +4 -1
  794. package/dist/src/storage/sqlite/device-pairing-approval.js +4 -1
  795. package/dist/src/storage/sqlite/device-pairing-repository.js +2 -1
  796. package/dist/src/storage/sqlite/durable-queue.js +4 -2
  797. package/dist/src/storage/sqlite/durable-state.js +4 -2
  798. package/dist/src/storage/sqlite/endpoint-principal-repository.js +2 -1
  799. package/dist/src/storage/sqlite/endpoint-session-binding-repository.d.ts +3 -3
  800. package/dist/src/storage/sqlite/endpoint-session-binding-repository.js +12 -11
  801. package/dist/src/storage/sqlite/endpoint-tool-invocation-repository.js +2 -1
  802. package/dist/src/storage/sqlite/fts.js +39 -34
  803. package/dist/src/storage/sqlite/gateway-identity-repository.js +2 -1
  804. package/dist/src/storage/sqlite/home-attention-repository.js +2 -1
  805. package/dist/src/storage/sqlite/import-repository.js +2 -1
  806. package/dist/src/storage/sqlite/import-selection-repository.js +2 -1
  807. package/dist/src/storage/sqlite/index.d.ts +2 -2
  808. package/dist/src/storage/sqlite/index.js +25 -11
  809. package/dist/src/storage/sqlite/interaction-state-repository.d.ts +4 -4
  810. package/dist/src/storage/sqlite/interaction-state-repository.js +12 -11
  811. package/dist/src/storage/sqlite/knowledge-repository.js +2 -1
  812. package/dist/src/storage/sqlite/migrations/178_conversation_uuid.sql +2 -0
  813. package/dist/src/storage/sqlite/migrations/conversation-backup.d.ts +11 -0
  814. package/dist/src/storage/sqlite/migrations/conversation-backup.js +98 -0
  815. package/dist/src/storage/sqlite/migrations/conversation-key-decoder.d.ts +8 -0
  816. package/dist/src/storage/sqlite/migrations/conversation-key-decoder.js +87 -0
  817. package/dist/src/storage/sqlite/migrations/conversation-uuid.d.ts +8 -0
  818. package/dist/src/storage/sqlite/migrations/conversation-uuid.js +366 -0
  819. package/dist/src/storage/sqlite/migrations/conversation-windows-owners.d.ts +1 -0
  820. package/dist/src/storage/sqlite/migrations/conversation-windows-owners.js +95 -0
  821. package/dist/src/storage/sqlite/migrations/discover.js +9 -5
  822. package/dist/src/storage/sqlite/migrations/errors.d.ts +5 -0
  823. package/dist/src/storage/sqlite/migrations/errors.js +38 -23
  824. package/dist/src/storage/sqlite/migrations/runner.d.ts +2 -2
  825. package/dist/src/storage/sqlite/migrations/runner.js +44 -14
  826. package/dist/src/storage/sqlite/migrations/types.d.ts +1 -1
  827. package/dist/src/storage/sqlite/note-agent-context-repository.js +2 -1
  828. package/dist/src/storage/sqlite/notes-repository.js +4 -2
  829. package/dist/src/storage/sqlite/paths.js +6 -2
  830. package/dist/src/storage/sqlite/relationship-settings-repository.js +2 -1
  831. package/dist/src/storage/sqlite/row-mappers.d.ts +10 -10
  832. package/dist/src/storage/sqlite/row-mappers.js +22 -15
  833. package/dist/src/storage/sqlite/schema-version.js +7 -2
  834. package/dist/src/storage/sqlite/schema.js +16 -8
  835. package/dist/src/storage/sqlite/schema.sql +2641 -526
  836. package/dist/src/storage/sqlite/session-identity-sql.js +12 -5
  837. package/dist/src/storage/sqlite/session-input-repository.d.ts +14 -14
  838. package/dist/src/storage/sqlite/session-input-repository.js +69 -61
  839. package/dist/src/storage/sqlite/session-instance-repository.d.ts +1 -1
  840. package/dist/src/storage/sqlite/session-instance-repository.js +6 -3
  841. package/dist/src/storage/sqlite/session-metadata.d.ts +2 -2
  842. package/dist/src/storage/sqlite/session-metadata.js +7 -3
  843. package/dist/src/storage/sqlite/session-repository.d.ts +15 -15
  844. package/dist/src/storage/sqlite/session-repository.js +126 -102
  845. package/dist/src/storage/sqlite/session-task-plan-repository.d.ts +3 -3
  846. package/dist/src/storage/sqlite/session-task-plan-repository.js +21 -19
  847. package/dist/src/storage/sqlite/session-turn-replace-repository.d.ts +2 -2
  848. package/dist/src/storage/sqlite/session-turn-replace-repository.js +26 -22
  849. package/dist/src/storage/sqlite/transaction.js +12 -6
  850. package/dist/src/storage/sqlite/transcript-repository.d.ts +14 -14
  851. package/dist/src/storage/sqlite/transcript-repository.js +107 -102
  852. package/dist/src/storage/sqlite/user-people-repository.js +2 -1
  853. package/dist/src/storage/sqlite/user-trust-repository.js +2 -1
  854. package/dist/src/support/collect-support-report.js +7 -7
  855. package/dist/src/support/types.d.ts +2 -2
  856. package/dist/src/support/types.js +1 -1
  857. package/dist/src/tasks/execution-context.d.ts +2 -2
  858. package/dist/src/tasks/execution-context.js +3 -3
  859. package/dist/src/tasks/home-query-service.d.ts +2 -2
  860. package/dist/src/tasks/home-query-service.js +6 -6
  861. package/dist/src/tasks/index.js +6 -2
  862. package/dist/src/tasks/project-monitoring-service.js +2 -1
  863. package/dist/src/tasks/project-operating-view-service.js +2 -1
  864. package/dist/src/tasks/task-application-service.js +9 -4
  865. package/dist/src/tasks/task-change-events.js +7 -2
  866. package/dist/src/tasks/task-context-assembler.d.ts +2 -2
  867. package/dist/src/tasks/task-context-assembler.js +12 -9
  868. package/dist/src/tasks/task-context-repository.d.ts +1 -1
  869. package/dist/src/tasks/task-context-repository.js +4 -3
  870. package/dist/src/tasks/task-conversation-repository.d.ts +7 -7
  871. package/dist/src/tasks/task-conversation-repository.js +27 -26
  872. package/dist/src/tasks/task-deletion-service.js +2 -1
  873. package/dist/src/tasks/task-dependency-service.js +2 -1
  874. package/dist/src/tasks/task-handoff-service.d.ts +2 -2
  875. package/dist/src/tasks/task-handoff-service.js +16 -15
  876. package/dist/src/tasks/task-outbox-dispatcher.js +2 -1
  877. package/dist/src/tasks/task-read-model-projector.js +4 -2
  878. package/dist/src/tasks/task-repository.js +2 -1
  879. package/dist/src/tasks/task-run-coordinator.js +6 -5
  880. package/dist/src/tasks/task-run-dispatcher.d.ts +1 -1
  881. package/dist/src/tasks/task-run-dispatcher.js +4 -3
  882. package/dist/src/tasks/task-run-repository.d.ts +2 -2
  883. package/dist/src/tasks/task-run-repository.js +219 -212
  884. package/dist/src/tasks/task-signal-service.js +6 -2
  885. package/dist/src/tasks/task-workflow-coordinator.js +2 -1
  886. package/dist/src/tui/backends/embedded-backend.d.ts +33 -32
  887. package/dist/src/tui/backends/embedded-backend.js +95 -83
  888. package/dist/src/tui/backends/gateway-realtime-backend.d.ts +34 -33
  889. package/dist/src/tui/backends/gateway-realtime-backend.js +95 -78
  890. package/dist/src/tui/components/branch-summary.js +3 -3
  891. package/dist/src/tui/components/session-selector.d.ts +5 -5
  892. package/dist/src/tui/components/session-selector.js +7 -7
  893. package/dist/src/tui/components/tui-bottom-bar.js +1 -1
  894. package/dist/src/tui/components/tui-header.d.ts +1 -1
  895. package/dist/src/tui/components/tui-header.js +2 -2
  896. package/dist/src/tui/extension-host/autocomplete.d.ts +2 -2
  897. package/dist/src/tui/extension-host/autocomplete.js +4 -4
  898. package/dist/src/tui/extension-host/host.d.ts +1 -1
  899. package/dist/src/tui/extension-host/runtime-context.d.ts +1 -1
  900. package/dist/src/tui/extension-host/runtime-context.js +2 -2
  901. package/dist/src/tui/extension-host/runtime.d.ts +1 -1
  902. package/dist/src/tui/extension-host/runtime.js +6 -6
  903. package/dist/src/tui/tui-backend.d.ts +43 -39
  904. package/dist/src/tui/tui-command-formatters.d.ts +2 -2
  905. package/dist/src/tui/tui-command-formatters.js +10 -18
  906. package/dist/src/tui/tui-commands.d.ts +3 -3
  907. package/dist/src/tui/tui-commands.js +31 -33
  908. package/dist/src/tui/tui-empty-session-cleanup.d.ts +2 -3
  909. package/dist/src/tui/tui-empty-session-cleanup.js +7 -15
  910. package/dist/src/tui/tui-file-autocomplete.d.ts +1 -1
  911. package/dist/src/tui/tui-file-autocomplete.js +2 -2
  912. package/dist/src/tui/tui-new-session-preferences.js +2 -0
  913. package/dist/src/tui/tui-picker-overlay.d.ts +1 -1
  914. package/dist/src/tui/tui-picker-overlay.js +41 -53
  915. package/dist/src/tui/tui-picker-services.d.ts +3 -3
  916. package/dist/src/tui/tui-session-actions.d.ts +1 -1
  917. package/dist/src/tui/tui-session-actions.js +8 -17
  918. package/dist/src/tui/tui-session-format.js +4 -1
  919. package/dist/src/tui/tui-session-snapshot.d.ts +2 -2
  920. package/dist/src/tui/tui-session-snapshot.js +4 -4
  921. package/dist/src/tui/tui-settings.js +2 -0
  922. package/dist/src/tui/tui-startup-resources.d.ts +1 -1
  923. package/dist/src/tui/tui-startup-resources.js +4 -4
  924. package/dist/src/tui/tui-startup-text.js +1 -1
  925. package/dist/src/tui/tui-transcript-tree-picker.d.ts +1 -1
  926. package/dist/src/tui/tui-transcript-tree-picker.js +2 -2
  927. package/dist/src/tui/tui-types.d.ts +4 -2
  928. package/dist/src/tui/tui-types.js +2 -2
  929. package/dist/src/tui/tui.js +116 -114
  930. package/dist/src/user-context/access-policy.d.ts +1 -1
  931. package/dist/src/user-context/access-policy.js +6 -5
  932. package/dist/src/user-context/changes.js +9 -4
  933. package/dist/src/user-context/domain.d.ts +1 -1
  934. package/dist/src/user-context/relationship-continuity.d.ts +1 -1
  935. package/dist/src/user-context/relationship-continuity.js +1 -1
  936. package/dist/src/user-context/sources/repository.js +4 -2
  937. package/dist/src/user-model/capture/executor.d.ts +1 -1
  938. package/dist/src/user-model/capture/executor.js +3 -3
  939. package/dist/src/user-model/goals.js +2 -1
  940. package/dist/src/user-model/repository.js +2 -1
  941. package/dist/src/utils/global-singleton.js +4 -1
  942. package/dist/src/utils/logger/context.d.ts +1 -1
  943. package/dist/src/utils/logger/context.js +2 -2
  944. package/dist/src/utils/logger/log-store.js +2 -2
  945. package/dist/src/utils/logger/pino-record.js +6 -6
  946. package/dist/src/utils/logger/types.d.ts +6 -6
  947. package/dist/src/voice/platform-catalog.d.ts +81 -0
  948. package/dist/src/voice/platform-catalog.js +16 -0
  949. package/dist/src/voice/platform-settings.d.ts +4 -0
  950. package/dist/src/voice/platform-settings.js +120 -0
  951. package/dist/src/voice/platform-streams.d.ts +12 -0
  952. package/dist/src/voice/platform-streams.js +250 -0
  953. package/dist/src/voice/realtime/agentBroker.d.ts +6 -6
  954. package/dist/src/voice/realtime/agentBroker.js +6 -6
  955. package/dist/src/voice/realtime/agentEngine.js +6 -6
  956. package/dist/src/voice/realtime/memory-context.d.ts +2 -2
  957. package/dist/src/voice/realtime/memory-context.js +15 -15
  958. package/dist/src/voice/realtime/omniEngine.js +8 -5
  959. package/dist/src/voice/realtime/omniRoute.d.ts +1 -0
  960. package/dist/src/voice/realtime/omniRoute.js +11 -1
  961. package/dist/src/voice/realtime/persona-context.d.ts +1 -1
  962. package/dist/src/voice/realtime/persona-context.js +6 -6
  963. package/dist/src/voice/realtime/runtime.d.ts +1 -1
  964. package/dist/src/voice/realtime/runtime.js +28 -19
  965. package/dist/src/voice/realtime/runtime.types.d.ts +6 -6
  966. package/dist/src/voice/stt/providers/xopc-cloud-transcription.js +15 -8
  967. package/dist/src/voice/tts/providers/xopc-cloud-speech.js +12 -19
  968. package/dist/src/work-discovery/investigation-repository.js +4 -2
  969. package/dist/src/work-discovery/probe.js +1 -1
  970. package/dist/src/work-discovery/repository.js +7 -5
  971. package/dist/src/work-discovery/service.js +35 -31
  972. package/dist/src/work-discovery/types.d.ts +1 -1
  973. package/dist/src/workflows/context/workflow-context-snapshot-repository.js +2 -1
  974. package/dist/src/workflows/domain/event.d.ts +1 -1
  975. package/dist/src/workflows/domain/run.d.ts +5 -5
  976. package/dist/src/workflows/engine/projector.js +1 -1
  977. package/dist/src/workflows/engine/workflow-engine.d.ts +2 -2
  978. package/dist/src/workflows/engine/workflow-engine.js +15 -18
  979. package/dist/src/workflows/index.js +3 -3
  980. package/dist/src/workflows/project-presets/project-workflow-preset-repository.js +2 -1
  981. package/dist/src/workflows/service/run-view-to-snapshot.js +1 -1
  982. package/dist/src/workflows/service/workflow-run-service.d.ts +2 -2
  983. package/dist/src/workflows/service/workflow-run-service.js +53 -42
  984. package/dist/src/workflows/service/workflow-run-service.types.d.ts +2 -2
  985. package/dist/src/workflows/service/workflow-session-bridge.d.ts +2 -2
  986. package/dist/src/workflows/service/workflow-session-bridge.js +31 -31
  987. package/dist/src/workflows/service/workflow-session-key.d.ts +1 -1
  988. package/dist/src/workflows/service/workflow-session-key.js +4 -4
  989. package/dist/src/workflows/service/workflow-writeback-service.js +2 -1
  990. package/dist/src/workflows/store/event-store.js +4 -2
  991. package/dist/src/workflows/store/run-index-store.js +9 -8
  992. package/package.json +6 -3
  993. package/skills/creative/algorithmic-art/SKILL.md +7 -0
  994. package/skills/creative/frontend-design/SKILL.md +8 -0
  995. package/skills/creative/hatch-pet/SKILL.md +7 -0
  996. package/skills/creative/theme-factory/SKILL.md +8 -0
  997. package/skills/documents/doc-coauthoring/SKILL.md +7 -0
  998. package/skills/documents/docx/SKILL.md +7 -0
  999. package/skills/documents/pdf/SKILL.md +7 -0
  1000. package/skills/documents/pptx/SKILL.md +7 -0
  1001. package/skills/documents/xlsx/SKILL.md +9 -1
  1002. package/skills/engineering/build-xopc-local-app/SKILL.md +7 -0
  1003. package/skills/engineering/define-task/SKILL.md +7 -0
  1004. package/skills/engineering/diagnose/SKILL.md +8 -0
  1005. package/skills/engineering/tdd/SKILL.md +8 -0
  1006. package/skills/tools/find-skills/SKILL.md +8 -0
  1007. package/skills/tools/github/SKILL.md +7 -0
  1008. package/skills/tools/summarize/SKILL.md +8 -0
  1009. package/skills/tools/webapp-testing/SKILL.md +8 -1
  1010. package/dist/gateway/static/root/assets/agent-defaults-settings-panel-CcmqK1Sc.js +0 -1
  1011. package/dist/gateway/static/root/assets/agents-B_7PVt7S.js +0 -1
  1012. package/dist/gateway/static/root/assets/api-COG_Tzpv.js +0 -1
  1013. package/dist/gateway/static/root/assets/apps-page-6qxxKFsK.js +0 -1
  1014. package/dist/gateway/static/root/assets/automations-workspace-BRQlU4qk.js +0 -6
  1015. package/dist/gateway/static/root/assets/browser-settings-page-DDjbDeHQ.js +0 -8
  1016. package/dist/gateway/static/root/assets/button-BA45yciM.js +0 -1
  1017. package/dist/gateway/static/root/assets/capabilities-settings-panel-DM1Bcf1x.js +0 -8
  1018. package/dist/gateway/static/root/assets/channels-settings-Bq36CUxL.js +0 -1
  1019. package/dist/gateway/static/root/assets/connectors-page-L8JehrxF.js +0 -2
  1020. package/dist/gateway/static/root/assets/desktop-pet-DtPNvznL.js +0 -1
  1021. package/dist/gateway/static/root/assets/extension-settings-page-C75kCOqe.js +0 -1
  1022. package/dist/gateway/static/root/assets/gateway-settings-BCF732TU.js +0 -1
  1023. package/dist/gateway/static/root/assets/heartbeat-settings-C7fjiowt.js +0 -1
  1024. package/dist/gateway/static/root/assets/home-page-DZXeXdUL.js +0 -1
  1025. package/dist/gateway/static/root/assets/index-ChIrvv3t.js +0 -74
  1026. package/dist/gateway/static/root/assets/index-R1VNlHjj.css +0 -2
  1027. package/dist/gateway/static/root/assets/local-app-workbench-page-CAEKGTAg.js +0 -2
  1028. package/dist/gateway/static/root/assets/locale-store-DlOv7896.js +0 -1
  1029. package/dist/gateway/static/root/assets/logs-page-DHZ4BEkG.js +0 -2
  1030. package/dist/gateway/static/root/assets/messages-Ls1Aaiqd.js +0 -3
  1031. package/dist/gateway/static/root/assets/note-detail-panel-BcWq3ddw.js +0 -5
  1032. package/dist/gateway/static/root/assets/notes-page-DfZ8QWyv.js +0 -8
  1033. package/dist/gateway/static/root/assets/page-tabs-BG39KidE.js +0 -1
  1034. package/dist/gateway/static/root/assets/popover-select-DGmMQt4t.js +0 -1
  1035. package/dist/gateway/static/root/assets/proactive-page-D2U_xQaS.js +0 -1
  1036. package/dist/gateway/static/root/assets/project-detail-page-CzlGTW4F.js +0 -1
  1037. package/dist/gateway/static/root/assets/projects-page-mQsM-TsP.js +0 -1
  1038. package/dist/gateway/static/root/assets/remote-access-hub-Cb56JcO1.js +0 -1
  1039. package/dist/gateway/static/root/assets/sessions-page-Hj9uFcIO.js +0 -1
  1040. package/dist/gateway/static/root/assets/settings-advanced-gate-CV4-_EVA.js +0 -1
  1041. package/dist/gateway/static/root/assets/settings-form-section-wcAdCkK8.js +0 -1
  1042. package/dist/gateway/static/root/assets/settings-page-layout-DYelDcMV.js +0 -1
  1043. package/dist/gateway/static/root/assets/setup-status-panel-DzxmsaQG.js +0 -1
  1044. package/dist/gateway/static/root/assets/shares-settings-xlJh1ccG.js +0 -1
  1045. package/dist/gateway/static/root/assets/skill-reload-api-wSXJRSxX.js +0 -1
  1046. package/dist/gateway/static/root/assets/skills-page-AmqtBJo7.js +0 -2
  1047. package/dist/gateway/static/root/assets/task-detail-page-sQpwq5-c.js +0 -1
  1048. package/dist/gateway/static/root/assets/tunnel-api-Boajol0M.js +0 -1
  1049. package/dist/gateway/static/root/assets/user-model-page-DIEHnAER.js +0 -2
  1050. package/dist/gateway/static/root/assets/workflows-page-DgRNIyr7.js +0 -6
  1051. package/dist/src/routing/session-key-utils.d.ts +0 -23
  1052. package/dist/src/routing/session-key-utils.js +0 -85
  1053. package/dist/src/session/session-id.d.ts +0 -3
  1054. package/dist/src/session/session-id.js +0 -10
  1055. package/dist/src/storage/sqlite/migrations/002_add_flush_columns.sql +0 -3
  1056. package/dist/src/storage/sqlite/migrations/003_add_note_markdown_meta.sql +0 -4
  1057. package/dist/src/storage/sqlite/migrations/004_add_session_type_metadata.sql +0 -15
  1058. package/dist/src/storage/sqlite/migrations/005_add_note_agent_contexts.sql +0 -10
  1059. package/dist/src/storage/sqlite/migrations/006_add_goals.sql +0 -108
  1060. package/dist/src/storage/sqlite/migrations/007_goal_run_judge_schema.sql +0 -4
  1061. package/dist/src/storage/sqlite/migrations/008_goal_queue_workflow_runs.sql +0 -53
  1062. package/dist/src/storage/sqlite/migrations/009_cron_jobs.sql +0 -24
  1063. package/dist/src/storage/sqlite/migrations/010_session_id_identity.sql +0 -30
  1064. package/dist/src/storage/sqlite/migrations/011_goal_context_messages.sql +0 -8
  1065. package/dist/src/storage/sqlite/migrations/012_memory_records.sql +0 -63
  1066. package/dist/src/storage/sqlite/migrations/013_memory_trace_events.sql +0 -21
  1067. package/dist/src/storage/sqlite/migrations/014_memory_record_governance.sql +0 -10
  1068. package/dist/src/storage/sqlite/migrations/015_memory_trace_feedback.sql +0 -4
  1069. package/dist/src/storage/sqlite/migrations/016_automations.sql +0 -47
  1070. package/dist/src/storage/sqlite/migrations/017_automation_run_events.sql +0 -14
  1071. package/dist/src/storage/sqlite/migrations/018_automation_safety.sql +0 -1
  1072. package/dist/src/storage/sqlite/migrations/019_projects.sql +0 -40
  1073. package/dist/src/storage/sqlite/migrations/020_project_default_agent.sql +0 -1
  1074. package/dist/src/storage/sqlite/migrations/021_projects_fts.sql +0 -21
  1075. package/dist/src/storage/sqlite/migrations/022_work_items.sql +0 -61
  1076. package/dist/src/storage/sqlite/migrations/023_work_item_attachments.sql +0 -15
  1077. package/dist/src/storage/sqlite/migrations/024_activity_events.sql +0 -62
  1078. package/dist/src/storage/sqlite/migrations/025_project_pinned_at.sql +0 -5
  1079. package/dist/src/storage/sqlite/migrations/026_goal_contracts.sql +0 -10
  1080. package/dist/src/storage/sqlite/migrations/027_mobile_notifications.sql +0 -43
  1081. package/dist/src/storage/sqlite/migrations/028_goal_evidence_requirements.sql +0 -47
  1082. package/dist/src/storage/sqlite/migrations/029_user_understanding.sql +0 -133
  1083. package/dist/src/storage/sqlite/migrations/030_connectors.sql +0 -94
  1084. package/dist/src/storage/sqlite/migrations/031_connector_approvals.sql +0 -24
  1085. package/dist/src/storage/sqlite/migrations/032_connector_webhook_deliveries.sql +0 -15
  1086. package/dist/src/storage/sqlite/migrations/033_user_trust_policies.sql +0 -6
  1087. package/dist/src/storage/sqlite/migrations/034_allow_global_auto_trust.sql +0 -14
  1088. package/dist/src/storage/sqlite/migrations/035_user_profile_prompt_state.sql +0 -7
  1089. package/dist/src/storage/sqlite/migrations/036_goal_outcome_metric.sql +0 -12
  1090. package/dist/src/storage/sqlite/migrations/037_connected_knowledge_pipeline.sql +0 -47
  1091. package/dist/src/storage/sqlite/migrations/038_user_owned_memory.sql +0 -68
  1092. package/dist/src/storage/sqlite/migrations/039_memory_reference_consents.sql +0 -19
  1093. package/dist/src/storage/sqlite/migrations/040_local_apps.sql +0 -32
  1094. package/dist/src/storage/sqlite/migrations/041_local_app_release_lifecycle.sql +0 -17
  1095. package/dist/src/storage/sqlite/migrations/042_work_discovery.sql +0 -41
  1096. package/dist/src/storage/sqlite/migrations/043_local_app_acceptance_runs.sql +0 -16
  1097. package/dist/src/storage/sqlite/migrations/044_repair_work_discovery_foreign_keys.sql +0 -75
  1098. package/dist/src/storage/sqlite/migrations/045_extension_ui_grants.sql +0 -13
  1099. package/dist/src/storage/sqlite/migrations/046_work_discovery_feedback.sql +0 -13
  1100. package/dist/src/storage/sqlite/migrations/047_work_discovery_sources.sql +0 -16
  1101. package/dist/src/storage/sqlite/migrations/048_work_understanding_investigations.sql +0 -40
  1102. package/dist/src/storage/sqlite/migrations/049_work_understanding_threads.sql +0 -52
  1103. package/dist/src/storage/sqlite/migrations/050_work_discovery_source_refreshes.sql +0 -15
  1104. package/dist/src/storage/sqlite/migrations/051_focus_watches.sql +0 -26
  1105. package/dist/src/storage/sqlite/migrations/052_proactive_insights.sql +0 -25
  1106. package/dist/src/storage/sqlite/migrations/053_browser_recipes.sql +0 -45
  1107. package/dist/src/storage/sqlite/migrations/054_task_outcomes.sql +0 -24
  1108. package/dist/src/storage/sqlite/migrations/055_relationship_settings.sql +0 -14
  1109. package/dist/src/storage/sqlite/migrations/056_task_verification.sql +0 -6
  1110. package/dist/src/storage/sqlite/migrations/057_interaction_states.sql +0 -11
  1111. package/dist/src/storage/sqlite/migrations/058_proactive_value.sql +0 -3
  1112. package/dist/src/storage/sqlite/migrations/059_composer_input_history.sql +0 -8
  1113. package/dist/src/storage/sqlite/migrations/060_remove_runtime_transcript_messages.sql +0 -45
  1114. package/dist/src/storage/sqlite/migrations/061_drop_compaction_checkpoints.sql +0 -2
  1115. package/dist/src/storage/sqlite/migrations/062_connector_learning_jobs.sql +0 -27
  1116. package/dist/src/storage/sqlite/migrations/063_knowledge_collection_scopes.sql +0 -14
  1117. package/dist/src/storage/sqlite/migrations/064_user_claims.sql +0 -60
  1118. package/dist/src/storage/sqlite/migrations/065_knowledge_item_scope_identity.sql +0 -116
  1119. package/dist/src/storage/sqlite/migrations/066_first_class_focuses.sql +0 -126
  1120. package/dist/src/storage/sqlite/migrations/067_home_attention_acknowledgements.sql +0 -9
  1121. package/dist/src/storage/sqlite/migrations/068_proactive_event_spine.sql +0 -71
  1122. package/dist/src/storage/sqlite/migrations/069_proactive_scenario_control.sql +0 -69
  1123. package/dist/src/storage/sqlite/migrations/070_proactive_execution.sql +0 -55
  1124. package/dist/src/storage/sqlite/migrations/071_proactive_inbox.sql +0 -45
  1125. package/dist/src/storage/sqlite/migrations/072_proactive_judgments.sql +0 -14
  1126. package/dist/src/storage/sqlite/migrations/073_enable_default_proactive_scenarios.sql +0 -13
  1127. package/dist/src/storage/sqlite/migrations/074_deduplicate_blocked_work_routing.sql +0 -5
  1128. package/dist/src/storage/sqlite/migrations/075_connector_sync_policies.sql +0 -13
  1129. package/dist/src/storage/sqlite/migrations/076_meeting_preparation_scenario.sql +0 -29
  1130. package/dist/src/storage/sqlite/migrations/077_proactive_insight_fingerprints.sql +0 -4
  1131. package/dist/src/storage/sqlite/migrations/078_discussion_captures.sql +0 -64
  1132. package/dist/src/storage/sqlite/migrations/079_discussion_follow_up_scenario.sql +0 -29
  1133. package/dist/src/storage/sqlite/migrations/080_task_outcome_context.sql +0 -15
  1134. package/dist/src/storage/sqlite/migrations/081_project_monitoring_policies.sql +0 -10
  1135. package/dist/src/storage/sqlite/migrations/082_one_click_live_discussions.sql +0 -100
  1136. package/dist/src/storage/sqlite/migrations/083_session_task_plans.sql +0 -9
  1137. package/dist/src/storage/sqlite/migrations/084_work_intake_lifecycle.sql +0 -26
  1138. package/dist/src/storage/sqlite/migrations/085_task_outcome_projection.sql +0 -19
  1139. package/dist/src/storage/sqlite/migrations/086_outcome_aggregates.sql +0 -168
  1140. package/dist/src/storage/sqlite/migrations/087_context_snapshots.sql +0 -21
  1141. package/dist/src/storage/sqlite/migrations/088_automation_execution_deadlines.sql +0 -5
  1142. package/dist/src/storage/sqlite/migrations/089_automation_run_leases.sql +0 -8
  1143. package/dist/src/storage/sqlite/migrations/090_outcome_contract_judgment.sql +0 -2
  1144. package/dist/src/storage/sqlite/migrations/091_context_allocation.sql +0 -1
  1145. package/dist/src/storage/sqlite/migrations/092_outcome_execution_runtime.sql +0 -88
  1146. package/dist/src/storage/sqlite/migrations/093_remove_legacy_goals.sql +0 -174
  1147. package/dist/src/storage/sqlite/migrations/094_outcome_judgment_and_authority.sql +0 -3
  1148. package/dist/src/storage/sqlite/migrations/095_session_input_queue.sql +0 -35
  1149. package/dist/src/storage/sqlite/migrations/096_drop_work_intakes.sql +0 -6
  1150. package/dist/src/storage/sqlite/migrations/097_work_item_lifecycle.sql +0 -194
  1151. package/dist/src/storage/sqlite/migrations/098_discussion_note_documents.sql +0 -99
  1152. package/dist/src/storage/sqlite/migrations/099_task_model.sql +0 -500
  1153. package/dist/src/storage/sqlite/migrations/100_project_task_taskrun.sql +0 -763
  1154. package/dist/src/storage/sqlite/migrations/101_session_response_language.sql +0 -1
  1155. package/dist/src/storage/sqlite/migrations/102_session_user_context_mode.sql +0 -2
  1156. package/dist/src/storage/sqlite/migrations/103_finalize_structured_memory.sql +0 -3
  1157. package/dist/src/storage/sqlite/migrations/104_turn_memory_feedback.sql +0 -77
  1158. package/dist/src/storage/sqlite/migrations/105_dreaming_ledger.sql +0 -34
  1159. package/dist/src/storage/sqlite/migrations/106_dreaming_run_reproducibility.sql +0 -2
  1160. package/dist/src/storage/sqlite/migrations/107_connector_accounts.sql +0 -146
  1161. package/dist/src/storage/sqlite/migrations/108_repair_user_memory_provider.sql +0 -18
  1162. package/dist/src/storage/sqlite/migrations/109_endpoint_principals.sql +0 -14
  1163. package/dist/src/storage/sqlite/migrations/110_session_input_origin.sql +0 -43
  1164. package/dist/src/storage/sqlite/migrations/111_endpoint_tool_invocations.sql +0 -18
  1165. package/dist/src/storage/sqlite/migrations/112_endpoint_instance_bindings.sql +0 -8
  1166. package/dist/src/storage/sqlite/migrations/113_memory_evidence_single_source.sql +0 -76
  1167. package/dist/src/storage/sqlite/migrations/114_user_context_domain.sql +0 -193
  1168. package/dist/src/storage/sqlite/migrations/115_remove_legacy_user_context.sql +0 -6
  1169. package/dist/src/storage/sqlite/migrations/116_structured_context_consolidation.sql +0 -38
  1170. package/dist/src/storage/sqlite/migrations/117_unified_understanding_sources.sql +0 -110
  1171. package/dist/src/storage/sqlite/migrations/118_task_board_rank.sql +0 -6
  1172. package/dist/src/storage/sqlite/migrations/119_proactive_disposition.sql +0 -13
  1173. package/dist/src/storage/sqlite/migrations/120_task_conversation.sql +0 -112
  1174. package/dist/src/storage/sqlite/migrations/121_automation_inbox.sql +0 -24
  1175. package/dist/src/storage/sqlite/migrations/122_automation_session_projects.sql +0 -18
  1176. package/dist/src/storage/sqlite/migrations/123_remove_v2_compaction_boundaries.sql +0 -25
  1177. package/dist/src/storage/sqlite/migrations/124_workflow_context_snapshots.sql +0 -15
  1178. package/dist/src/storage/sqlite/migrations/125_project_workflow_presets.sql +0 -12
  1179. package/dist/src/storage/sqlite/migrations/126_focus_context_governance.sql +0 -72
  1180. package/dist/src/storage/sqlite/migrations/127_context_object_origin.sql +0 -36
  1181. package/dist/src/storage/sqlite/migrations/128_context_extraction.sql +0 -73
  1182. package/dist/src/storage/sqlite/migrations/129_focus_versions.sql +0 -51
  1183. package/dist/src/storage/sqlite/migrations/130_context_evidence_provenance.sql +0 -18
  1184. package/dist/src/storage/sqlite/migrations/131_session_input_contexts.sql +0 -2
  1185. package/dist/src/storage/sqlite/migrations/132_transcript_source_context_metadata.sql +0 -34
  1186. package/dist/src/storage/sqlite/migrations/133_archive_legacy_work_discovery_profile_facts.sql +0 -11
  1187. package/dist/src/storage/sqlite/migrations/134_memory_provenance.sql +0 -18
  1188. package/dist/src/storage/sqlite/migrations/135_user_people.sql +0 -59
  1189. package/dist/src/storage/sqlite/migrations/136_product_notifications.sql +0 -79
  1190. package/dist/src/storage/sqlite/migrations/137_understanding_status_audit.sql +0 -71
  1191. package/dist/src/storage/sqlite/migrations/138_device_access.sql +0 -96
  1192. package/dist/src/storage/sqlite/migrations/139_turn_outcome_artifact_backfill.sql +0 -231
  1193. package/dist/src/storage/sqlite/migrations/140_endpoint_session_bindings.sql +0 -8
  1194. package/dist/src/storage/sqlite/migrations/141_device_pairing_approval.sql +0 -17
  1195. package/dist/src/storage/sqlite/migrations/142_session_input_instance.sql +0 -1
  1196. package/dist/src/storage/sqlite/migrations/143_fixed_session_model.sql +0 -1
  1197. package/dist/src/storage/sqlite/migrations/144_execution_environments.sql +0 -59
  1198. package/dist/src/storage/sqlite/migrations/145_project_execution_mode.sql +0 -5
  1199. package/dist/src/storage/sqlite/migrations/146_understanding_focus_exclusions.sql +0 -9
  1200. package/dist/src/storage/sqlite/migrations/147_durable_application_state.sql +0 -39
  1201. package/dist/src/storage/sqlite/migrations/148_user_model_foundation.sql +0 -554
  1202. package/dist/src/storage/sqlite/migrations/149_separate_source_index_from_memory.sql +0 -18
  1203. package/dist/src/storage/sqlite/migrations/150_session_connection_waits.sql +0 -47
  1204. package/dist/src/storage/sqlite/migrations/151_proactive_scope_cleanup.sql +0 -6
  1205. package/dist/src/storage/sqlite/migrations/152_proactive_scenario_contract.sql +0 -140
  1206. package/dist/src/storage/sqlite/migrations/153_browser_control_v2.sql +0 -45
  1207. package/dist/src/storage/sqlite/migrations/154_session_clarification_waits.sql +0 -60
  1208. package/dist/src/storage/sqlite/migrations/155_browser_extension.sql +0 -120
  1209. package/dist/src/storage/sqlite/migrations/156_browser_tab_bindings.sql +0 -14
  1210. package/dist/src/storage/sqlite/migrations/157_browser_endpoint_principals.sql +0 -50
  1211. package/dist/src/storage/sqlite/migrations/158_browser_native_enrollment.sql +0 -4
  1212. package/dist/src/storage/sqlite/migrations/159_proactive_controls.sql +0 -68
  1213. package/dist/src/storage/sqlite/migrations/160_proactive_web_push.sql +0 -27
  1214. package/dist/src/storage/sqlite/migrations/161_proactive_delivery_and_lifecycle.sql +0 -51
  1215. package/dist/src/storage/sqlite/migrations/162_proactive_product.sql +0 -7
  1216. package/dist/src/storage/sqlite/migrations/163_proactive_follow_ups.sql +0 -29
  1217. package/dist/src/storage/sqlite/migrations/164_browser_sessions.sql +0 -8
  1218. package/dist/src/storage/sqlite/migrations/165_device_pairing_target.sql +0 -40
  1219. package/dist/src/storage/sqlite/migrations/__tests__/mobile-discussion-source.test.ts +0 -20
  1220. package/dist/src/storage/sqlite/migrations/discover.ts +0 -52
  1221. package/dist/src/storage/sqlite/migrations/errors.ts +0 -32
  1222. package/dist/src/storage/sqlite/migrations/runner.ts +0 -194
  1223. package/dist/src/storage/sqlite/migrations/types.ts +0 -15
@@ -1,4 +1,4 @@
1
- import { w as t, M as MAX_BROWSER_CONTEXTS_PER_TURN, b as browserPageContextsInputSchema, k as gatewayFetch, o as openDatabase, R as RealtimeClient, a as activeTabId, g as currentTabDescriptor, T as TAB_BINDING_PREFIX, l as getAccessProfile, t as runWithTabSiteAccess, P as PENDING_CONTEXT_KEY, j as extensionLocale, e as captureTabWithPermission, p as pairGateway, v as setAutoConnectEnabled, r as readPendingBrowserPairing, n as readProfile, h as discoverLocalGateway, u as saveExtensionLocalePreference, s as revokeAndForgetProfile, c as cancelPendingBrowserPairing, m as loadExtensionLocalePreference } from './assets/auth-DB30ywek.js';
1
+ import { w as t, M as MAX_BROWSER_CONTEXTS_PER_TURN, b as browserPageContextsInputSchema, k as gatewayFetch, j as extensionLocale, o as openDatabase, R as RealtimeClient, a as activeTabId, g as currentTabDescriptor, T as TAB_BINDING_PREFIX, l as getAccessProfile, t as runWithTabSiteAccess, P as PENDING_CONTEXT_KEY, e as captureTabWithPermission, p as pairGateway, v as setAutoConnectEnabled, r as readPendingBrowserPairing, n as readProfile, h as discoverLocalGateway, u as saveExtensionLocalePreference, s as revokeAndForgetProfile, c as cancelPendingBrowserPairing, m as loadExtensionLocalePreference } from './assets/auth-B2CDTr_F.js';
2
2
 
3
3
  true &&(function polyfill() {
4
4
  const relList = document.createElement("link").relList;
@@ -17972,12 +17972,33 @@ function QueuedInput({ input, onSave, onCancel }) {
17972
17972
  ] });
17973
17973
  }
17974
17974
 
17975
+ function resolveSkillPresentation(skill, language) {
17976
+ const locale = language.toLowerCase().startsWith("zh") ? "zh-CN" : "en";
17977
+ const selected = skill.localizations?.[locale] ?? skill.localizations?.en;
17978
+ const displayName = selected?.displayName.trim() || skill.name;
17979
+ const description = selected?.description.trim() || skill.description;
17980
+ const aliases = /* @__PURE__ */ new Set([skill.name]);
17981
+ const searchTerms = /* @__PURE__ */ new Set([skill.description]);
17982
+ for (const localization of Object.values(skill.localizations ?? {})) {
17983
+ if (localization?.displayName.trim()) aliases.add(localization.displayName.trim());
17984
+ if (localization?.description.trim()) searchTerms.add(localization.description.trim());
17985
+ }
17986
+ aliases.delete(displayName);
17987
+ searchTerms.delete(description);
17988
+ return { displayName, description, aliases: [...aliases], searchTerms: [...searchTerms] };
17989
+ }
17990
+
17991
+ function matchesCommandQuery(item, query) {
17992
+ const needle = query.trim().toLocaleLowerCase();
17993
+ if (!needle) return true;
17994
+ return [item.name, item.description, ...item.searchTerms].some((term) => term.toLocaleLowerCase().includes(needle));
17995
+ }
17975
17996
  function findCommand(value, cursor) {
17976
- const match = /(?:^|\s)\/([\w.-]*)$/.exec(value.slice(0, cursor));
17997
+ const match = /(?:^|\s)\/([^\s/]*)$/u.exec(value.slice(0, cursor));
17977
17998
  return match ? { start: cursor - match[1].length - 1, end: cursor, query: match[1] } : void 0;
17978
17999
  }
17979
- async function loadComposerCommands(sessionKey) {
17980
- const params = new URLSearchParams(sessionKey ? { sessionKey } : {});
18000
+ async function loadComposerCommands(conversationId) {
18001
+ const params = new URLSearchParams(conversationId ? { conversationId } : {});
17981
18002
  const responses = await Promise.all([
17982
18003
  gatewayFetch("/api/commands"),
17983
18004
  gatewayFetch(`/api/chat/skills?${params}`)
@@ -17989,15 +18010,20 @@ async function loadComposerCommands(sessionKey) {
17989
18010
  id: `command:${command.name}`,
17990
18011
  name: `/${command.name}`,
17991
18012
  description: command.description,
18013
+ searchTerms: [],
17992
18014
  wire: `/${command.name} `
17993
18015
  })),
17994
- ...(skills.payload?.skills ?? []).map((skill) => ({
17995
- id: `skill:${skill.name}`,
17996
- name: skill.name,
17997
- description: skill.description,
17998
- wire: `/skill:${skill.name} `,
17999
- disabled: !skill.availableForCurrentAgent
18000
- }))
18016
+ ...(skills.payload?.skills ?? []).map((skill) => {
18017
+ const presentation = resolveSkillPresentation(skill, extensionLocale());
18018
+ return {
18019
+ id: `skill:${skill.name}`,
18020
+ name: presentation.displayName,
18021
+ description: presentation.description,
18022
+ searchTerms: presentation.searchTerms.concat(presentation.aliases),
18023
+ wire: `/skill:${skill.name} `,
18024
+ disabled: !skill.availableForCurrentAgent
18025
+ };
18026
+ })
18001
18027
  ];
18002
18028
  }
18003
18029
 
@@ -18030,30 +18056,30 @@ function transactionResult(database, mode, createRequest) {
18030
18056
  transaction.onabort = () => reject(transaction.error ?? new Error(t("errorOutboxAborted")));
18031
18057
  });
18032
18058
  }
18033
- async function readBrowserOutbox(sessionKey) {
18059
+ async function readBrowserOutbox(conversationId) {
18034
18060
  const database = await openDatabase();
18035
18061
  try {
18036
18062
  return await transactionResult(
18037
18063
  database,
18038
18064
  "readonly",
18039
- (store) => store.get(sessionKey)
18065
+ (store) => store.get(conversationId)
18040
18066
  );
18041
18067
  } finally {
18042
18068
  database.close();
18043
18069
  }
18044
18070
  }
18045
- async function writeBrowserOutbox(sessionKey, value) {
18071
+ async function writeBrowserOutbox(conversationId, value) {
18046
18072
  const database = await openDatabase();
18047
18073
  try {
18048
- await transactionResult(database, "readwrite", (store) => store.put(value, sessionKey));
18074
+ await transactionResult(database, "readwrite", (store) => store.put(value, conversationId));
18049
18075
  } finally {
18050
18076
  database.close();
18051
18077
  }
18052
18078
  }
18053
- async function deleteBrowserOutbox(sessionKey) {
18079
+ async function deleteBrowserOutbox(conversationId) {
18054
18080
  const database = await openDatabase();
18055
18081
  try {
18056
- await transactionResult(database, "readwrite", (store) => store.delete(sessionKey));
18082
+ await transactionResult(database, "readwrite", (store) => store.delete(conversationId));
18057
18083
  } finally {
18058
18084
  database.close();
18059
18085
  }
@@ -18142,11 +18168,11 @@ function mapMessage(value, index) {
18142
18168
  } : {}
18143
18169
  };
18144
18170
  }
18145
- function mapClarification(value, sessionKey) {
18171
+ function mapClarification(value, conversationId) {
18146
18172
  if (!value || typeof value !== "object") return void 0;
18147
18173
  const envelope = value;
18148
18174
  const row = envelope.clarification && typeof envelope.clarification === "object" ? envelope.clarification : envelope;
18149
- if (row.status !== "open" || row.sessionKey !== sessionKey || typeof row.id !== "string" || typeof row.question !== "string") return void 0;
18175
+ if (row.status !== "open" || row.conversationId !== conversationId || typeof row.id !== "string" || typeof row.question !== "string") return void 0;
18150
18176
  const choices = Array.isArray(row.choices) ? row.choices.filter((choice) => typeof choice === "string" && Boolean(choice.trim())) : void 0;
18151
18177
  return {
18152
18178
  id: row.id,
@@ -18258,8 +18284,8 @@ class BrowserChatClient {
18258
18284
  if (!(cause instanceof GatewayRequestError) || cause.status !== 404) throw cause;
18259
18285
  await chrome.storage.session.remove([ACTIVE_CHAT_KEY, ...tabKey ? [tabKey] : []]);
18260
18286
  this.update({
18261
- sessionKey: void 0,
18262
- sessionId: void 0,
18287
+ conversationId: void 0,
18288
+ transcriptId: void 0,
18263
18289
  messages: [],
18264
18290
  sessionLoading: false,
18265
18291
  modelConfig: void 0,
@@ -18307,10 +18333,10 @@ class BrowserChatClient {
18307
18333
  if (this.turnClaim && this.snapshot.pendingDelivery) void this.recoverOutbox();
18308
18334
  }
18309
18335
  async bindSessionEndpoint() {
18310
- const sessionKey = this.snapshot.sessionKey;
18336
+ const conversationId = this.snapshot.conversationId;
18311
18337
  const endpointId = this.turnClaim?.endpointId;
18312
- if (!sessionKey || !endpointId) return;
18313
- const desired = `${sessionKey}
18338
+ if (!conversationId || !endpointId) return;
18339
+ const desired = `${conversationId}
18314
18340
  ${endpointId}`;
18315
18341
  if (this.endpointBinding === desired) return;
18316
18342
  if (this.endpointBindingTask) {
@@ -18318,14 +18344,14 @@ ${endpointId}`;
18318
18344
  if (this.endpointBinding === desired) return;
18319
18345
  }
18320
18346
  const task = json(await gatewayFetch(
18321
- `/api/endpoint-tools/bindings/${encodeURIComponent(sessionKey)}`,
18347
+ `/api/endpoint-tools/bindings/${encodeURIComponent(conversationId)}`,
18322
18348
  {
18323
18349
  method: "PUT",
18324
18350
  headers: { "Content-Type": "application/json" },
18325
18351
  body: JSON.stringify({ endpointId })
18326
18352
  }
18327
18353
  )).then(() => {
18328
- if (this.snapshot.sessionKey === sessionKey && this.turnClaim?.endpointId === endpointId) {
18354
+ if (this.snapshot.conversationId === conversationId && this.turnClaim?.endpointId === endpointId) {
18329
18355
  this.endpointBinding = desired;
18330
18356
  }
18331
18357
  });
@@ -18347,7 +18373,7 @@ ${endpointId}`;
18347
18373
  if (typeof row.key !== "string") return [];
18348
18374
  return [{
18349
18375
  key: row.key,
18350
- ...typeof row.sessionId === "string" ? { sessionId: row.sessionId } : {},
18376
+ ...typeof row.transcriptId === "string" ? { transcriptId: row.transcriptId } : {},
18351
18377
  title: [row.name, row.title, row.displayName].find((item) => typeof item === "string" && item.trim()) || t("newChat"),
18352
18378
  updatedAt: typeof row.updatedAt === "string" ? row.updatedAt : ""
18353
18379
  }];
@@ -18363,12 +18389,12 @@ ${endpointId}`;
18363
18389
  await this.loadSessions();
18364
18390
  await this.openSession(response.session.key);
18365
18391
  }
18366
- async openSession(sessionKey) {
18392
+ async openSession(conversationId) {
18367
18393
  if (this.runTopic) this.realtime?.unsubscribe(this.runTopic);
18368
18394
  this.runTopic = void 0;
18369
18395
  this.update({
18370
- sessionKey,
18371
- sessionId: this.snapshot.sessions.find((candidate) => candidate.key === sessionKey)?.sessionId,
18396
+ conversationId,
18397
+ transcriptId: this.snapshot.sessions.find((candidate) => candidate.key === conversationId)?.transcriptId,
18372
18398
  messages: [],
18373
18399
  streamingText: "",
18374
18400
  runId: void 0,
@@ -18382,10 +18408,10 @@ ${endpointId}`;
18382
18408
  modelConfig: void 0,
18383
18409
  error: void 0
18384
18410
  });
18385
- await chrome.storage.session.set({ [ACTIVE_CHAT_KEY]: sessionKey });
18411
+ await chrome.storage.session.set({ [ACTIVE_CHAT_KEY]: conversationId });
18386
18412
  const tabId = await activeTabId();
18387
18413
  if (tabId !== void 0) {
18388
- await chrome.storage.session.set({ [`${TAB_SESSION_PREFIX}${tabId}`]: sessionKey });
18414
+ await chrome.storage.session.set({ [`${TAB_SESSION_PREFIX}${tabId}`]: conversationId });
18389
18415
  }
18390
18416
  try {
18391
18417
  await Promise.all([
@@ -18394,30 +18420,30 @@ ${endpointId}`;
18394
18420
  this.reloadClarification(),
18395
18421
  this.reloadTabBinding()
18396
18422
  ]);
18397
- if (this.snapshot.sessionKey !== sessionKey) return;
18423
+ if (this.snapshot.conversationId !== conversationId) return;
18398
18424
  await this.bindSessionEndpoint();
18399
- if (this.snapshot.sessionKey !== sessionKey) return;
18425
+ if (this.snapshot.conversationId !== conversationId) return;
18400
18426
  const run = await json(await gatewayFetch(
18401
- `/api/sessions/${encodeURIComponent(sessionKey)}/run`
18427
+ `/api/sessions/${encodeURIComponent(conversationId)}/run`
18402
18428
  ));
18403
- if (this.snapshot.sessionKey !== sessionKey) return;
18429
+ if (this.snapshot.conversationId !== conversationId) return;
18404
18430
  if (run.payload?.active && run.payload.runId) await this.followRun(run.payload.runId);
18405
18431
  await this.reloadBrowserApproval();
18406
- if (this.snapshot.sessionKey !== sessionKey) return;
18407
- this.update({ pendingDelivery: Boolean(await readBrowserOutbox(sessionKey)) });
18432
+ if (this.snapshot.conversationId !== conversationId) return;
18433
+ this.update({ pendingDelivery: Boolean(await readBrowserOutbox(conversationId)) });
18408
18434
  if (this.snapshot.endpointReady) await this.recoverOutbox();
18409
18435
  } catch (cause) {
18410
- if (this.snapshot.sessionKey !== sessionKey) return;
18436
+ if (this.snapshot.conversationId !== conversationId) return;
18411
18437
  throw cause;
18412
18438
  } finally {
18413
- if (this.snapshot.sessionKey === sessionKey) {
18414
- await chrome.storage.session.set({ [ACTIVE_CHAT_KEY]: sessionKey });
18439
+ if (this.snapshot.conversationId === conversationId) {
18440
+ await chrome.storage.session.set({ [ACTIVE_CHAT_KEY]: conversationId });
18415
18441
  this.update({ sessionLoading: false });
18416
18442
  }
18417
18443
  }
18418
18444
  }
18419
- get currentSessionKey() {
18420
- return this.snapshot.sessionKey;
18445
+ get currentConversationId() {
18446
+ return this.snapshot.conversationId;
18421
18447
  }
18422
18448
  async send(content, browserContexts = [], attachments = []) {
18423
18449
  if (this.sendingInput) throw new Error(t("errorWaitQueuedMessage"));
@@ -18431,20 +18457,20 @@ ${endpointId}`;
18431
18457
  async sendInput(content, browserContexts = [], attachments = []) {
18432
18458
  const text = content.trim();
18433
18459
  if (!text && attachments.length === 0) return "sent";
18434
- if (!this.snapshot.sessionKey) throw new Error(t("errorOpenChatBeforeSending"));
18460
+ if (!this.snapshot.conversationId) throw new Error(t("errorOpenChatBeforeSending"));
18435
18461
  if (this.snapshot.submitting || this.snapshot.pendingDelivery || this.recoveringOutbox) {
18436
18462
  throw new Error(t("errorWaitQueuedMessage"));
18437
18463
  }
18438
18464
  if (!this.turnClaim) throw new Error(t("errorEndpointNotReady"));
18439
- const sessionKey = this.snapshot.sessionKey;
18465
+ const conversationId = this.snapshot.conversationId;
18440
18466
  await this.bindSessionEndpoint();
18441
- if (this.snapshot.sessionKey !== sessionKey) throw new Error(t("errorChatChanged"));
18467
+ if (this.snapshot.conversationId !== conversationId) throw new Error(t("errorChatChanged"));
18442
18468
  const clientMessageId = crypto.randomUUID();
18443
18469
  const request = {
18444
18470
  content: text,
18445
18471
  clientMessageId,
18446
18472
  delivery: "next",
18447
- expectedSessionId: this.snapshot.sessionId,
18473
+ expectedTranscriptId: this.snapshot.transcriptId,
18448
18474
  ...this.snapshot.modelConfig?.fixedModel ? { configVersion: this.snapshot.modelConfig.configVersion } : {},
18449
18475
  origin: { type: "endpoint", endpointId: this.turnClaim.endpointId, token: this.turnClaim.token },
18450
18476
  ...browserContexts.length ? { browserContexts } : {},
@@ -18455,7 +18481,7 @@ ${endpointId}`;
18455
18481
  let deliveryAccepted = false;
18456
18482
  this.update({ submitting: true, pendingDelivery: false });
18457
18483
  try {
18458
- await writeBrowserOutbox(sessionKey, request);
18484
+ await writeBrowserOutbox(conversationId, request);
18459
18485
  outboxStored = true;
18460
18486
  this.update({
18461
18487
  messages: this.snapshot.runId ? this.snapshot.messages : [...this.snapshot.messages, {
@@ -18475,24 +18501,24 @@ ${endpointId}`;
18475
18501
  error: void 0
18476
18502
  });
18477
18503
  const response = await json(
18478
- await gatewayFetch(`/api/sessions/${encodeURIComponent(sessionKey)}/inputs`, {
18504
+ await gatewayFetch(`/api/sessions/${encodeURIComponent(conversationId)}/inputs`, {
18479
18505
  method: "POST",
18480
18506
  headers: { "Content-Type": "application/json" },
18481
18507
  body: JSON.stringify(request)
18482
18508
  })
18483
18509
  );
18484
18510
  deliveryAccepted = true;
18485
- await deleteBrowserOutbox(sessionKey);
18511
+ await deleteBrowserOutbox(conversationId);
18486
18512
  outboxStored = false;
18487
- if (this.snapshot.sessionKey !== sessionKey) return "sent";
18488
- const runId = response.payload.state.inputs?.find((input) => input.clientMessageId === clientMessageId)?.runId ?? response.payload.state.activeRunId ?? await this.waitForRun(sessionKey, clientMessageId);
18489
- if (this.snapshot.sessionKey !== sessionKey) return "sent";
18513
+ if (this.snapshot.conversationId !== conversationId) return "sent";
18514
+ const runId = response.payload.state.inputs?.find((input) => input.clientMessageId === clientMessageId)?.runId ?? response.payload.state.activeRunId ?? await this.waitForRun(conversationId, clientMessageId);
18515
+ if (this.snapshot.conversationId !== conversationId) return "sent";
18490
18516
  if (runId) await this.followRun(runId);
18491
18517
  else await this.reloadMessages();
18492
18518
  return "sent";
18493
18519
  } catch (cause) {
18494
18520
  if (deliveryAccepted) {
18495
- if (this.snapshot.sessionKey === sessionKey) {
18521
+ if (this.snapshot.conversationId === conversationId) {
18496
18522
  this.update({
18497
18523
  pendingDelivery: false,
18498
18524
  error: t("errorSentStatusUnknown")
@@ -18501,23 +18527,23 @@ ${endpointId}`;
18501
18527
  return "sent";
18502
18528
  }
18503
18529
  if (outboxStored && isRetryableDeliveryError(cause)) {
18504
- if (this.snapshot.sessionKey === sessionKey) {
18530
+ if (this.snapshot.conversationId === conversationId) {
18505
18531
  this.update({ pendingDelivery: true, error: void 0 });
18506
18532
  }
18507
18533
  return "queued";
18508
18534
  }
18509
- if (outboxStored) await deleteBrowserOutbox(sessionKey);
18510
- if (this.snapshot.sessionKey === sessionKey) this.update({ messages: previousMessages });
18535
+ if (outboxStored) await deleteBrowserOutbox(conversationId);
18536
+ if (this.snapshot.conversationId === conversationId) this.update({ messages: previousMessages });
18511
18537
  throw cause;
18512
18538
  } finally {
18513
- if (this.snapshot.sessionKey === sessionKey) this.update({ submitting: false });
18539
+ if (this.snapshot.conversationId === conversationId) this.update({ submitting: false });
18514
18540
  }
18515
18541
  }
18516
18542
  async recoverOutbox() {
18517
- const sessionKey = this.snapshot.sessionKey;
18518
- if (!sessionKey || !this.turnClaim || this.recoveringOutbox) return;
18543
+ const conversationId = this.snapshot.conversationId;
18544
+ if (!conversationId || !this.turnClaim || this.recoveringOutbox) return;
18519
18545
  if (Date.now() - this.lastOutboxRecoveryAt < 3e3) return;
18520
- const pending = await readBrowserOutbox(sessionKey);
18546
+ const pending = await readBrowserOutbox(conversationId);
18521
18547
  if (!pending?.clientMessageId || typeof pending.content !== "string") return;
18522
18548
  this.recoveringOutbox = true;
18523
18549
  this.lastOutboxRecoveryAt = Date.now();
@@ -18528,21 +18554,21 @@ ${endpointId}`;
18528
18554
  ...pending,
18529
18555
  origin: { type: "endpoint", endpointId: this.turnClaim.endpointId, token: this.turnClaim.token }
18530
18556
  };
18531
- const response = await json(await gatewayFetch(`/api/sessions/${encodeURIComponent(sessionKey)}/inputs`, {
18557
+ const response = await json(await gatewayFetch(`/api/sessions/${encodeURIComponent(conversationId)}/inputs`, {
18532
18558
  method: "POST",
18533
18559
  headers: { "Content-Type": "application/json" },
18534
18560
  body: JSON.stringify(request)
18535
18561
  }));
18536
18562
  deliveryAccepted = true;
18537
- await deleteBrowserOutbox(sessionKey);
18538
- if (this.snapshot.sessionKey !== sessionKey) return;
18563
+ await deleteBrowserOutbox(conversationId);
18564
+ if (this.snapshot.conversationId !== conversationId) return;
18539
18565
  this.update({ pendingDelivery: false, error: void 0 });
18540
- const runId = response.payload.state.inputs?.find((input) => input.clientMessageId === request.clientMessageId)?.runId ?? response.payload.state.activeRunId ?? await this.waitForRun(sessionKey, request.clientMessageId);
18541
- if (this.snapshot.sessionKey !== sessionKey) return;
18566
+ const runId = response.payload.state.inputs?.find((input) => input.clientMessageId === request.clientMessageId)?.runId ?? response.payload.state.activeRunId ?? await this.waitForRun(conversationId, request.clientMessageId);
18567
+ if (this.snapshot.conversationId !== conversationId) return;
18542
18568
  if (runId) await this.followRun(runId);
18543
18569
  else await this.reloadMessages();
18544
18570
  } catch (cause) {
18545
- if (this.snapshot.sessionKey === sessionKey) {
18571
+ if (this.snapshot.conversationId === conversationId) {
18546
18572
  if (deliveryAccepted) {
18547
18573
  this.update({
18548
18574
  pendingDelivery: false,
@@ -18551,7 +18577,7 @@ ${endpointId}`;
18551
18577
  } else if (isRetryableDeliveryError(cause)) {
18552
18578
  this.update({ pendingDelivery: true, error: void 0 });
18553
18579
  } else {
18554
- await deleteBrowserOutbox(sessionKey);
18580
+ await deleteBrowserOutbox(conversationId);
18555
18581
  this.update({
18556
18582
  pendingDelivery: false,
18557
18583
  messages: this.snapshot.messages.filter((message) => message.id !== pending.clientMessageId),
@@ -18565,16 +18591,16 @@ ${endpointId}`;
18565
18591
  }
18566
18592
  async refreshInputs() {
18567
18593
  const requestId = ++this.inputsRequest;
18568
- const sessionKey = this.snapshot.sessionKey;
18569
- if (!sessionKey) return;
18594
+ const conversationId = this.snapshot.conversationId;
18595
+ if (!conversationId) return;
18570
18596
  const result = await json(
18571
- await gatewayFetch(`/api/sessions/${encodeURIComponent(sessionKey)}/input-state`)
18597
+ await gatewayFetch(`/api/sessions/${encodeURIComponent(conversationId)}/input-state`)
18572
18598
  );
18573
- if (this.snapshot.sessionKey !== sessionKey || requestId !== this.inputsRequest) return;
18599
+ if (this.snapshot.conversationId !== conversationId || requestId !== this.inputsRequest) return;
18574
18600
  this.update({ queuedInputs: (result.payload.inputs ?? []).filter((input) => input.status === "queued") });
18575
18601
  if (result.payload.activeRunId !== this.snapshot.runId) {
18576
18602
  await this.reloadMessages();
18577
- if (this.snapshot.sessionKey !== sessionKey || requestId !== this.inputsRequest) return;
18603
+ if (this.snapshot.conversationId !== conversationId || requestId !== this.inputsRequest) return;
18578
18604
  if (result.payload.activeRunId) await this.followRun(result.payload.activeRunId);
18579
18605
  else {
18580
18606
  if (this.runTopic) this.realtime?.unsubscribe(this.runTopic);
@@ -18584,7 +18610,7 @@ ${endpointId}`;
18584
18610
  }
18585
18611
  }
18586
18612
  async editInput(id, version, content) {
18587
- const key = this.snapshot.sessionKey;
18613
+ const key = this.snapshot.conversationId;
18588
18614
  if (!key) return;
18589
18615
  try {
18590
18616
  await json(await gatewayFetch(`/api/sessions/${encodeURIComponent(key)}/inputs/${encodeURIComponent(id)}`, {
@@ -18593,17 +18619,17 @@ ${endpointId}`;
18593
18619
  body: JSON.stringify({ version, content })
18594
18620
  }));
18595
18621
  } finally {
18596
- if (this.snapshot.sessionKey === key) await this.refreshInputs();
18622
+ if (this.snapshot.conversationId === key) await this.refreshInputs();
18597
18623
  }
18598
18624
  }
18599
18625
  async cancelInput(id, version) {
18600
- const key = this.snapshot.sessionKey;
18626
+ const key = this.snapshot.conversationId;
18601
18627
  if (!key) return;
18602
18628
  try {
18603
18629
  await json(await gatewayFetch(`/api/sessions/${encodeURIComponent(key)}/inputs/${encodeURIComponent(id)}?version=${version}`, { method: "DELETE" }));
18604
- if (this.snapshot.sessionKey === key) await this.reloadMessages();
18630
+ if (this.snapshot.conversationId === key) await this.reloadMessages();
18605
18631
  } finally {
18606
- if (this.snapshot.sessionKey === key) await this.refreshInputs();
18632
+ if (this.snapshot.conversationId === key) await this.refreshInputs();
18607
18633
  }
18608
18634
  }
18609
18635
  async abort() {
@@ -18623,9 +18649,9 @@ ${endpointId}`;
18623
18649
  }
18624
18650
  }
18625
18651
  async updateModel(model) {
18626
- const sessionKey = this.snapshot.sessionKey;
18652
+ const conversationId = this.snapshot.conversationId;
18627
18653
  const current = this.snapshot.modelConfig;
18628
- if (!sessionKey || !current) return;
18654
+ if (!conversationId || !current) return;
18629
18655
  const selected = this.snapshot.models.find((candidate) => candidate.id === model);
18630
18656
  const thinkingLevel = selected?.thinking?.options?.includes(current.thinkingLevel) ? current.thinkingLevel : selected?.thinking?.default;
18631
18657
  await this.patchModelConfig({ model, thinkingLevel });
@@ -18650,11 +18676,11 @@ ${endpointId}`;
18650
18676
  await this.reloadClarification();
18651
18677
  }
18652
18678
  async bindActiveTab(mode) {
18653
- const sessionKey = this.snapshot.sessionKey;
18654
- if (!sessionKey || !this.turnClaim) throw new Error(t("errorOpenChatForEndpoint"));
18679
+ const conversationId = this.snapshot.conversationId;
18680
+ if (!conversationId || !this.turnClaim) throw new Error(t("errorOpenChatForEndpoint"));
18655
18681
  const descriptor = await currentTabDescriptor();
18656
18682
  const result = await json(await gatewayFetch(
18657
- `/api/browser/tab-bindings/${encodeURIComponent(sessionKey)}`,
18683
+ `/api/browser/tab-bindings/${encodeURIComponent(conversationId)}`,
18658
18684
  {
18659
18685
  method: "PUT",
18660
18686
  headers: { "Content-Type": "application/json" },
@@ -18666,7 +18692,7 @@ ${endpointId}`;
18666
18692
  })
18667
18693
  }
18668
18694
  ));
18669
- if (this.snapshot.sessionKey !== sessionKey) return;
18695
+ if (this.snapshot.conversationId !== conversationId) return;
18670
18696
  if (this.snapshot.tabBinding) {
18671
18697
  await chrome.storage.session.remove(`${TAB_BINDING_PREFIX}${this.snapshot.tabBinding.id}`);
18672
18698
  }
@@ -18674,11 +18700,11 @@ ${endpointId}`;
18674
18700
  this.update({ tabBinding: result.payload });
18675
18701
  }
18676
18702
  async unbindActiveTab() {
18677
- const sessionKey = this.snapshot.sessionKey;
18703
+ const conversationId = this.snapshot.conversationId;
18678
18704
  const binding = this.snapshot.tabBinding;
18679
- if (!sessionKey) return;
18680
- await json(await gatewayFetch(`/api/browser/tab-bindings/${encodeURIComponent(sessionKey)}`, { method: "DELETE" }));
18681
- if (this.snapshot.sessionKey !== sessionKey) return;
18705
+ if (!conversationId) return;
18706
+ await json(await gatewayFetch(`/api/browser/tab-bindings/${encodeURIComponent(conversationId)}`, { method: "DELETE" }));
18707
+ if (this.snapshot.conversationId !== conversationId) return;
18682
18708
  if (binding) await chrome.storage.session.remove(`${TAB_BINDING_PREFIX}${binding.id}`);
18683
18709
  this.update({ tabBinding: void 0 });
18684
18710
  }
@@ -18692,11 +18718,11 @@ ${endpointId}`;
18692
18718
  }));
18693
18719
  await this.reloadBrowserApproval();
18694
18720
  }
18695
- async waitForRun(sessionKey, clientMessageId) {
18721
+ async waitForRun(conversationId, clientMessageId) {
18696
18722
  for (let attempt = 0; attempt < 20; attempt += 1) {
18697
18723
  await new Promise((resolve) => setTimeout(resolve, 100));
18698
18724
  const state = await json(
18699
- await gatewayFetch(`/api/sessions/${encodeURIComponent(sessionKey)}/input-state`)
18725
+ await gatewayFetch(`/api/sessions/${encodeURIComponent(conversationId)}/input-state`)
18700
18726
  );
18701
18727
  const runId = state.payload.inputs?.find((input) => input.clientMessageId === clientMessageId)?.runId ?? state.payload.activeRunId;
18702
18728
  if (runId) return runId;
@@ -18707,11 +18733,11 @@ ${endpointId}`;
18707
18733
  async followRun(runId) {
18708
18734
  const topic = `run:${runId}`;
18709
18735
  if (this.runTopic === topic) return;
18710
- const sessionKey = this.snapshot.sessionKey;
18736
+ const conversationId = this.snapshot.conversationId;
18711
18737
  if (this.runTopic) this.realtime?.unsubscribe(this.runTopic);
18712
18738
  this.runTopic = topic;
18713
18739
  const stored = await chrome.storage.session.get(`${CURSOR_PREFIX}${runId}`);
18714
- if (this.snapshot.sessionKey !== sessionKey || this.runTopic !== topic) return;
18740
+ if (this.snapshot.conversationId !== conversationId || this.runTopic !== topic) return;
18715
18741
  const cursor = typeof stored[`${CURSOR_PREFIX}${runId}`] === "number" ? stored[`${CURSOR_PREFIX}${runId}`] : void 0;
18716
18742
  this.update({ runId, streamingText: "" });
18717
18743
  this.realtime?.subscribe(topic, cursor);
@@ -18719,9 +18745,9 @@ ${endpointId}`;
18719
18745
  async onRealtimeEvent(topic, seq, event, data) {
18720
18746
  if (topic === "gateway") {
18721
18747
  if (event === "clarification.updated") {
18722
- const sessionKey = this.snapshot.sessionKey;
18723
- if (sessionKey && data && typeof data === "object" && data.sessionKey === sessionKey) {
18724
- this.update({ clarification: mapClarification(data, sessionKey) });
18748
+ const conversationId = this.snapshot.conversationId;
18749
+ if (conversationId && data && typeof data === "object" && data.conversationId === conversationId) {
18750
+ this.update({ clarification: mapClarification(data, conversationId) });
18725
18751
  }
18726
18752
  }
18727
18753
  if (event === "browser.approval.required") await this.reloadBrowserApproval();
@@ -18752,16 +18778,16 @@ ${endpointId}`;
18752
18778
  }
18753
18779
  }
18754
18780
  async reloadMessages() {
18755
- const sessionKey = this.snapshot.sessionKey;
18756
- if (!sessionKey) return;
18757
- const result = await json(await gatewayFetch(`/api/sessions/${encodeURIComponent(sessionKey)}/messages?limit=200`));
18781
+ const conversationId = this.snapshot.conversationId;
18782
+ if (!conversationId) return;
18783
+ const result = await json(await gatewayFetch(`/api/sessions/${encodeURIComponent(conversationId)}/messages?limit=200`));
18758
18784
  const messages = (result.payload.messages ?? []).flatMap((value, index) => {
18759
18785
  const message = mapMessage(value, index);
18760
18786
  return message ? [message] : [];
18761
18787
  });
18762
- if (this.snapshot.sessionKey !== sessionKey) return;
18763
- const session = this.snapshot.sessions.find((candidate) => candidate.key === sessionKey);
18764
- this.update({ messages, sessionId: session?.sessionId });
18788
+ if (this.snapshot.conversationId !== conversationId) return;
18789
+ const session = this.snapshot.sessions.find((candidate) => candidate.key === conversationId);
18790
+ this.update({ messages, transcriptId: session?.transcriptId });
18765
18791
  }
18766
18792
  async loadModels() {
18767
18793
  const result = await json(await gatewayFetch("/api/models"));
@@ -18785,16 +18811,16 @@ ${endpointId}`;
18785
18811
  this.update({ models });
18786
18812
  }
18787
18813
  async reloadModelConfig() {
18788
- const sessionKey = this.snapshot.sessionKey;
18789
- if (!sessionKey) return;
18814
+ const conversationId = this.snapshot.conversationId;
18815
+ if (!conversationId) return;
18790
18816
  const result = await json(await gatewayFetch(
18791
- `/api/sessions/${encodeURIComponent(sessionKey)}/agent-config`
18817
+ `/api/sessions/${encodeURIComponent(conversationId)}/agent-config`
18792
18818
  ));
18793
18819
  const config = result.payload;
18794
18820
  if (!config || typeof config.model !== "string" || typeof config.thinkingLevel !== "string") {
18795
18821
  throw new Error(t("errorInvalidModelConfig"));
18796
18822
  }
18797
- if (this.snapshot.sessionKey !== sessionKey) return;
18823
+ if (this.snapshot.conversationId !== conversationId) return;
18798
18824
  this.update({ modelConfig: {
18799
18825
  model: config.model,
18800
18826
  thinkingLevel: config.thinkingLevel,
@@ -18803,11 +18829,11 @@ ${endpointId}`;
18803
18829
  } });
18804
18830
  }
18805
18831
  async patchModelConfig(patch) {
18806
- const sessionKey = this.snapshot.sessionKey;
18832
+ const conversationId = this.snapshot.conversationId;
18807
18833
  const current = this.snapshot.modelConfig;
18808
- if (!sessionKey || !current) return;
18834
+ if (!conversationId || !current) return;
18809
18835
  const result = await json(await gatewayFetch(
18810
- `/api/sessions/${encodeURIComponent(sessionKey)}/agent-config`,
18836
+ `/api/sessions/${encodeURIComponent(conversationId)}/agent-config`,
18811
18837
  {
18812
18838
  method: "PATCH",
18813
18839
  headers: { "Content-Type": "application/json" },
@@ -18818,7 +18844,7 @@ ${endpointId}`;
18818
18844
  if (!config || typeof config.model !== "string" || typeof config.thinkingLevel !== "string") {
18819
18845
  throw new Error(t("errorInvalidModelConfig"));
18820
18846
  }
18821
- if (this.snapshot.sessionKey !== sessionKey) return;
18847
+ if (this.snapshot.conversationId !== conversationId) return;
18822
18848
  this.update({ modelConfig: {
18823
18849
  model: config.model,
18824
18850
  thinkingLevel: config.thinkingLevel,
@@ -18827,49 +18853,49 @@ ${endpointId}`;
18827
18853
  } });
18828
18854
  }
18829
18855
  async reloadClarification() {
18830
- const sessionKey = this.snapshot.sessionKey;
18831
- if (!sessionKey) return;
18856
+ const conversationId = this.snapshot.conversationId;
18857
+ if (!conversationId) return;
18832
18858
  const result = await json(await gatewayFetch(
18833
- `/api/sessions/${encodeURIComponent(sessionKey)}/clarification`
18859
+ `/api/sessions/${encodeURIComponent(conversationId)}/clarification`
18834
18860
  ));
18835
- if (this.snapshot.sessionKey === sessionKey) {
18836
- this.update({ clarification: mapClarification(result.payload, sessionKey) });
18861
+ if (this.snapshot.conversationId === conversationId) {
18862
+ this.update({ clarification: mapClarification(result.payload, conversationId) });
18837
18863
  }
18838
18864
  }
18839
18865
  async reloadTabBinding() {
18840
- const sessionKey = this.snapshot.sessionKey;
18841
- if (!sessionKey) return;
18842
- const response = await gatewayFetch(`/api/browser/tab-bindings/${encodeURIComponent(sessionKey)}`);
18866
+ const conversationId = this.snapshot.conversationId;
18867
+ if (!conversationId) return;
18868
+ const response = await gatewayFetch(`/api/browser/tab-bindings/${encodeURIComponent(conversationId)}`);
18843
18869
  if (response.status === 404) {
18844
- if (this.snapshot.sessionKey === sessionKey) this.update({ tabBinding: void 0 });
18870
+ if (this.snapshot.conversationId === conversationId) this.update({ tabBinding: void 0 });
18845
18871
  return;
18846
18872
  }
18847
18873
  const result = await json(response);
18848
- if (this.snapshot.sessionKey !== sessionKey) return;
18874
+ if (this.snapshot.conversationId !== conversationId) return;
18849
18875
  await chrome.storage.session.set({ [`${TAB_BINDING_PREFIX}${result.payload.id}`]: result.payload });
18850
18876
  this.update({ tabBinding: result.payload });
18851
18877
  }
18852
18878
  async reloadBrowserApproval() {
18853
- const sessionKey = this.snapshot.sessionKey;
18854
- if (!sessionKey || !this.snapshot.tabBinding) {
18879
+ const conversationId = this.snapshot.conversationId;
18880
+ if (!conversationId || !this.snapshot.tabBinding) {
18855
18881
  this.update({ browserApproval: void 0 });
18856
18882
  return;
18857
18883
  }
18858
18884
  const result = await json(await gatewayFetch(
18859
- `/api/browser/approvals?sessionKey=${encodeURIComponent(sessionKey)}`
18885
+ `/api/browser/approvals?conversationId=${encodeURIComponent(conversationId)}`
18860
18886
  ));
18861
- if (this.snapshot.sessionKey === sessionKey) {
18887
+ if (this.snapshot.conversationId === conversationId) {
18862
18888
  this.update({ browserApproval: result.approvals.find((approval) => approval.status === "pending") });
18863
18889
  }
18864
18890
  }
18865
18891
  async reconcileAbortedRun(runId) {
18866
- const sessionKey = this.snapshot.sessionKey;
18867
- if (!sessionKey) return;
18892
+ const conversationId = this.snapshot.conversationId;
18893
+ if (!conversationId) return;
18868
18894
  for (let attempt = 0; attempt < 10; attempt += 1) {
18869
18895
  await new Promise((resolve) => setTimeout(resolve, 200));
18870
- if (this.snapshot.sessionKey !== sessionKey || this.snapshot.runId !== runId) return;
18896
+ if (this.snapshot.conversationId !== conversationId || this.snapshot.runId !== runId) return;
18871
18897
  const run = await json(await gatewayFetch(
18872
- `/api/sessions/${encodeURIComponent(sessionKey)}/run`
18898
+ `/api/sessions/${encodeURIComponent(conversationId)}/run`
18873
18899
  ));
18874
18900
  if (!run.payload?.active || run.payload.runId !== runId) {
18875
18901
  if (this.runTopic) this.realtime?.unsubscribe(this.runTopic);
@@ -18878,7 +18904,7 @@ ${endpointId}`;
18878
18904
  try {
18879
18905
  await this.reloadMessages();
18880
18906
  } finally {
18881
- if (this.snapshot.sessionKey === sessionKey) {
18907
+ if (this.snapshot.conversationId === conversationId) {
18882
18908
  this.update({ runId: void 0, streamingText: "", stopping: false });
18883
18909
  }
18884
18910
  }
@@ -27663,8 +27689,8 @@ function formatFileSize(size) {
27663
27689
  function ChatPanel({ gatewayId }) {
27664
27690
  const client = reactExports.useMemo(() => new BrowserChatClient(), []);
27665
27691
  const [snapshot, setSnapshot] = reactExports.useState(EMPTY);
27666
- const keyForSession = (sessionKey) => JSON.stringify([gatewayId, sessionKey ?? "new"]);
27667
- const draftKey = keyForSession(snapshot.sessionKey);
27692
+ const keyForSession = (conversationId) => JSON.stringify([gatewayId, conversationId ?? "new"]);
27693
+ const draftKey = keyForSession(snapshot.conversationId);
27668
27694
  const { store: drafts, draft: composerDraft, ready: draftReady, update: updateDraft } = useComposerDrafts(draftKey, (cause) => setError(String(cause)));
27669
27695
  const draft = composerDraft.text;
27670
27696
  const attachments = composerDraft.attachments;
@@ -27687,7 +27713,7 @@ function ChatPanel({ gatewayId }) {
27687
27713
  const [commandsLoading, setCommandsLoading] = reactExports.useState(false);
27688
27714
  const [commandIndex, setCommandIndex] = reactExports.useState(0);
27689
27715
  const commandRange = commandsOpen ? findCommand(draft, cursor) : void 0;
27690
- const commandItems = commandRange ? commands.filter((item) => `${item.name} ${item.description}`.toLowerCase().includes(commandRange.query.toLowerCase())).slice(0, 12) : [];
27716
+ const commandItems = commandRange ? commands.filter((item) => matchesCommandQuery(item, commandRange.query)).slice(0, 12) : [];
27691
27717
  const canSend = draftReady && !sending && !processing && !voiceBusy && !snapshot.submitting && !snapshot.pendingDelivery && !snapshot.sessionLoading && !snapshot.stopping && snapshot.endpointReady;
27692
27718
  const [search, setSearch] = reactExports.useState("");
27693
27719
  const [menuOpen, setMenuOpen] = reactExports.useState(false);
@@ -27736,7 +27762,7 @@ function ChatPanel({ gatewayId }) {
27736
27762
  const stored = await chrome.storage.session.get(PENDING_CONTEXT_KEY);
27737
27763
  const pending = stored[PENDING_CONTEXT_KEY];
27738
27764
  if (!pending || !active) return;
27739
- const key = keyForSession(client.currentSessionKey);
27765
+ const key = keyForSession(client.currentConversationId);
27740
27766
  await drafts.load(key);
27741
27767
  if (!active) return;
27742
27768
  drafts.update(key, (current) => ({ ...current, pages: appendPageContext(current.pages, pending) }));
@@ -27796,7 +27822,7 @@ function ChatPanel({ gatewayId }) {
27796
27822
  setAtBottom(true);
27797
27823
  const frame = requestAnimationFrame(() => scrollToBottom());
27798
27824
  return () => cancelAnimationFrame(frame);
27799
- }, [scrollToBottom, snapshot.sessionKey]);
27825
+ }, [scrollToBottom, snapshot.conversationId]);
27800
27826
  reactExports.useEffect(() => {
27801
27827
  const target = textarea.current;
27802
27828
  if (!target) return;
@@ -27830,7 +27856,7 @@ function ChatPanel({ gatewayId }) {
27830
27856
  setCommandsOpen(false);
27831
27857
  setPreview(void 0);
27832
27858
  setError("");
27833
- if (!snapshot.sessionKey) return;
27859
+ if (!snapshot.conversationId) return;
27834
27860
  let active = true;
27835
27861
  const refresh = () => {
27836
27862
  if (active) void client.refreshInputs().catch((cause) => {
@@ -27843,12 +27869,12 @@ function ChatPanel({ gatewayId }) {
27843
27869
  active = false;
27844
27870
  clearInterval(timer);
27845
27871
  };
27846
- }, [client, snapshot.sessionKey]);
27872
+ }, [client, snapshot.conversationId]);
27847
27873
  reactExports.useEffect(() => {
27848
27874
  if (!commandsOpen) return;
27849
27875
  let active = true;
27850
27876
  setCommandsLoading(true);
27851
- void loadComposerCommands(snapshot.sessionKey).then((items) => {
27877
+ void loadComposerCommands(snapshot.conversationId).then((items) => {
27852
27878
  if (active) setCommands(items);
27853
27879
  }).catch((cause) => {
27854
27880
  if (active) {
@@ -27861,7 +27887,7 @@ function ChatPanel({ gatewayId }) {
27861
27887
  return () => {
27862
27888
  active = false;
27863
27889
  };
27864
- }, [commandsOpen, snapshot.sessionKey]);
27890
+ }, [commandsOpen, snapshot.conversationId]);
27865
27891
  function chooseCommand(item) {
27866
27892
  if (!commandRange || item.disabled) return;
27867
27893
  const text = `${draft.slice(0, commandRange.start)}${item.wire}${draft.slice(commandRange.end)}`;
@@ -27889,9 +27915,9 @@ function ChatPanel({ gatewayId }) {
27889
27915
  setAtBottom(true);
27890
27916
  let targetKey = draftKey;
27891
27917
  try {
27892
- if (!snapshot.sessionKey) {
27918
+ if (!snapshot.conversationId) {
27893
27919
  await client.createSession();
27894
- targetKey = keyForSession(client.currentSessionKey);
27920
+ targetKey = keyForSession(client.currentConversationId);
27895
27921
  drafts.update(targetKey, () => payload);
27896
27922
  drafts.update(draftKey, () => EMPTY_DRAFT);
27897
27923
  }
@@ -28093,7 +28119,7 @@ function ChatPanel({ gatewayId }) {
28093
28119
  setClarificationSubmitting(false);
28094
28120
  }
28095
28121
  }
28096
- const activeSession = snapshot.sessions.find((session) => session.key === snapshot.sessionKey);
28122
+ const activeSession = snapshot.sessions.find((session) => session.key === snapshot.conversationId);
28097
28123
  const connectionText = snapshot.endpointReady ? t("ready") : snapshot.connection === "connected" ? t("wakingUp") : snapshot.connection === "connecting" || snapshot.connection === "reconnecting" ? t("connecting") : t("offline");
28098
28124
  const connectionProblem = !snapshot.endpointReady && (snapshot.connection === "error" || snapshot.connection === "disconnected");
28099
28125
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("section", { className: "chat", children: [
@@ -28121,7 +28147,7 @@ function ChatPanel({ gatewayId }) {
28121
28147
  /* @__PURE__ */ jsxRuntimeExports.jsx("input", { value: search, onChange: (event) => void runSearch(event.target.value), placeholder: t("searchChats"), autoFocus: true })
28122
28148
  ] }),
28123
28149
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "session-list", children: [
28124
- snapshot.sessions.map((session) => /* @__PURE__ */ jsxRuntimeExports.jsxs("button", { disabled: sending || snapshot.submitting || snapshot.sessionLoading, className: session.key === snapshot.sessionKey ? "active" : "", onClick: () => {
28150
+ snapshot.sessions.map((session) => /* @__PURE__ */ jsxRuntimeExports.jsxs("button", { disabled: sending || snapshot.submitting || snapshot.sessionLoading, className: session.key === snapshot.conversationId ? "active" : "", onClick: () => {
28125
28151
  setMenuOpen(false);
28126
28152
  void runControlAction(() => client.openSession(session.key));
28127
28153
  }, children: [
@@ -28129,7 +28155,7 @@ function ChatPanel({ gatewayId }) {
28129
28155
  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: session.title }),
28130
28156
  /* @__PURE__ */ jsxRuntimeExports.jsx("small", { children: formatSessionDate(session.updatedAt) })
28131
28157
  ] }),
28132
- session.key === snapshot.sessionKey ? /* @__PURE__ */ jsxRuntimeExports.jsx(CheckIcon, {}) : null
28158
+ session.key === snapshot.conversationId ? /* @__PURE__ */ jsxRuntimeExports.jsx(CheckIcon, {}) : null
28133
28159
  ] }, session.key)),
28134
28160
  !snapshot.sessions.length ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "session-list-empty", children: t("noChatsFound") }) : null
28135
28161
  ] })
@@ -28281,7 +28307,7 @@ function ChatPanel({ gatewayId }) {
28281
28307
  ] })
28282
28308
  ] }) : null,
28283
28309
  processing ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "composer-notice", role: "status", children: t("processingAttachments") }) : null,
28284
- snapshot.queuedInputs?.map((input) => /* @__PURE__ */ jsxRuntimeExports.jsx(QueuedInput, { input, onSave: (content, version) => client.editInput(input.id, version, content), onCancel: () => client.cancelInput(input.id, input.version) }, `${snapshot.sessionKey}:${input.id}`)),
28310
+ snapshot.queuedInputs?.map((input) => /* @__PURE__ */ jsxRuntimeExports.jsx(QueuedInput, { input, onSave: (content, version) => client.editInput(input.id, version, content), onCancel: () => client.cancelInput(input.id, input.version) }, `${snapshot.conversationId}:${input.id}`)),
28285
28311
  snapshot.pendingDelivery ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "composer-notice", role: "status", children: t("queuedMessageNotice") }) : null,
28286
28312
  error || !connectionProblem && snapshot.error ? /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "composer-error", role: "alert", children: [
28287
28313
  /* @__PURE__ */ jsxRuntimeExports.jsx(AlertIcon, {}),
@@ -28566,10 +28592,10 @@ ${pageContext.context.selection ?? pageContext.context.text ?? ""}` }), children
28566
28592
  ] }),
28567
28593
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "composer-toolbar-end", children: [
28568
28594
  /* @__PURE__ */ jsxRuntimeExports.jsx(ModelControls, { models: snapshot.models, config: snapshot.modelConfig, disabled: sending || processing || voiceBusy || snapshot.submitting || snapshot.sessionLoading || Boolean(snapshot.runId), onModel: (model) => updateModelConfig(async () => {
28569
- if (!client.currentSessionKey) {
28595
+ if (!client.currentConversationId) {
28570
28596
  const payload = drafts.get(draftKey);
28571
28597
  await client.createSession();
28572
- drafts.update(keyForSession(client.currentSessionKey), () => payload);
28598
+ drafts.update(keyForSession(client.currentConversationId), () => payload);
28573
28599
  drafts.update(draftKey, () => EMPTY_DRAFT);
28574
28600
  }
28575
28601
  await client.updateModel(model);