@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.
- package/README.md +16 -0
- package/README.zh-CN.md +16 -0
- package/dist/browser-ext/dist/assets/{auth-DB30ywek.js → auth-B2CDTr_F.js} +3 -2
- package/dist/browser-ext/dist/background.js +2 -2
- package/dist/browser-ext/dist/sidepanel.html +1 -1
- package/dist/browser-ext/dist/sidepanel.js +171 -145
- package/dist/browser-ext/manifest.json +1 -1
- package/dist/extensions/feishu/src/adapters/gateway-setup.js +14 -14
- package/dist/extensions/feishu/src/state/message-bindings.d.ts +1 -1
- package/dist/extensions/feishu/src/state/thread-bindings.d.ts +4 -4
- package/dist/extensions/feishu/src/state/thread-bindings.js +6 -6
- package/dist/extensions/feishu/src/subagent-hooks.d.ts +1 -1
- package/dist/extensions/feishu/src/subagent-hooks.js +5 -5
- package/dist/extensions/feishu/src/transport/socket-mode/monitor.js +9 -9
- package/dist/extensions/feishu/src/transport/webhook/monitor.js +4 -4
- package/dist/extensions/feishu/src/workflow-progress.d.ts +1 -1
- package/dist/extensions/feishu/src/workflow-progress.js +8 -7
- package/dist/extensions/telegram/src/approval-store.d.ts +2 -2
- package/dist/extensions/telegram/src/approval-store.js +1 -1
- package/dist/extensions/telegram/src/command-handler.d.ts +2 -2
- package/dist/extensions/telegram/src/command-handler.js +8 -8
- package/dist/extensions/telegram/src/delivery-chat-id.d.ts +1 -1
- package/dist/extensions/telegram/src/delivery-chat-id.js +7 -3
- package/dist/extensions/telegram/src/exec-approval-handler.js +1 -1
- package/dist/extensions/telegram/src/focus-handler.d.ts +2 -2
- package/dist/extensions/telegram/src/focus-handler.js +10 -10
- package/dist/extensions/telegram/src/inbound-processor.d.ts +3 -3
- package/dist/extensions/telegram/src/inbound-processor.js +11 -11
- package/dist/extensions/telegram/src/plugin.js +5 -5
- package/dist/extensions/telegram/src/routing-integration.d.ts +1 -1
- package/dist/extensions/telegram/src/routing-integration.js +19 -21
- package/dist/extensions/telegram/src/thread-bindings.d.ts +1 -1
- package/dist/extensions/telegram/src/workflow-progress.js +8 -7
- package/dist/extensions/telegram/xopc.extension.json +1 -1
- package/dist/extensions/weixin/src/auth/login-qr.d.ts +4 -4
- package/dist/extensions/weixin/src/auth/login-qr.js +21 -21
- package/dist/extensions/weixin/src/auth/weixin-account-id.d.ts +1 -1
- package/dist/extensions/weixin/src/auth/weixin-account-id.js +1 -1
- package/dist/extensions/weixin/src/cli/gateway-qr-login.d.ts +2 -2
- package/dist/extensions/weixin/src/cli/gateway-qr-login.js +13 -13
- package/dist/extensions/weixin/src/cli/qr-login.js +1 -1
- package/dist/extensions/weixin/src/delivery-to.js +6 -2
- package/dist/extensions/weixin/src/messaging/inbound.d.ts +1 -1
- package/dist/extensions/weixin/src/messaging/inbound.js +1 -1
- package/dist/extensions/weixin/src/messaging/process-message.js +3 -3
- package/dist/extensions/weixin/src/plugin.js +5 -5
- package/dist/extensions/weixin/src/routing-integration.d.ts +1 -1
- package/dist/extensions/weixin/src/routing-integration.js +3 -3
- package/dist/extensions/weixin/src/workflow-progress.d.ts +1 -1
- package/dist/extensions/weixin/src/workflow-progress.js +7 -6
- package/dist/gateway/static/root/assets/{activity-store-B0BTIk9j.js → activity-store-6lmzUBEr.js} +1 -1
- package/dist/gateway/static/root/assets/{agent-avatar-dicebear-Dc-0QZTQ.js → agent-avatar-dicebear-BCtrkF15.js} +1 -1
- package/dist/gateway/static/root/assets/agent-defaults-settings-panel-D2eYNelh.js +1 -0
- package/dist/gateway/static/root/assets/agents-BedA5XwI.js +1 -0
- package/dist/gateway/static/root/assets/{api-Coly9ab6.js → api-D6yepxBp.js} +1 -1
- package/dist/gateway/static/root/assets/api-Dnfnl1Gd.js +1 -0
- package/dist/gateway/static/root/assets/{app-management-settings-panel-TWBO-msg.js → app-management-settings-panel-Md562Fo-.js} +1 -1
- package/dist/gateway/static/root/assets/{appearance-settings-CpTZ2KuT.js → appearance-settings-BiBFI4BM.js} +1 -1
- package/dist/gateway/static/root/assets/apps-page-Corla83b.js +1 -0
- package/dist/gateway/static/root/assets/{archive-plugin-z_u6alob.js → archive-plugin-A_Unp751.js} +1 -1
- package/dist/gateway/static/root/assets/{attachment-load-C2nS04TC.js → attachment-load-D6idSUyP.js} +1 -1
- package/dist/gateway/static/root/assets/{automations-page-aIBsw9zR.js → automations-page-C6j71Lgs.js} +1 -1
- package/dist/gateway/static/root/assets/automations-workspace-DjZdhLQ5.js +6 -0
- package/dist/gateway/static/root/assets/{binary-plugins-CGmXoZnl.js → binary-plugins-BkKYh-8v.js} +1 -1
- package/dist/gateway/static/root/assets/{block-editor-CtvzCZhC.js → block-editor-CDcMvaku.js} +3 -3
- package/dist/gateway/static/root/assets/{browser-automation-inputs-BOTU1isH.js → browser-automation-inputs-Cq4sIJt2.js} +1 -1
- package/dist/gateway/static/root/assets/{browser-automations-page-BwU5V8J0.js → browser-automations-page-C64k4TBH.js} +2 -2
- package/dist/gateway/static/root/assets/browser-settings-page-1k5rj_qR.js +8 -0
- package/dist/gateway/static/root/assets/button-CGlRPNzi.js +1 -0
- package/dist/gateway/static/root/assets/capabilities-settings-panel-B2NvoTYb.js +8 -0
- package/dist/gateway/static/root/assets/channels-settings-DExixzp4.js +1 -0
- package/dist/gateway/static/root/assets/{channels-status-swr-Dfi0Desh.js → channels-status-swr-CVzEYBpX.js} +1 -1
- package/dist/gateway/static/root/assets/{chat-terminal-dock-B0MvcO6j.js → chat-terminal-dock-B9eKFkbg.js} +2 -2
- package/dist/gateway/static/root/assets/computer-model-settings-DW6j2lsn.js +1 -0
- package/dist/gateway/static/root/assets/computer-settings-page-C2Qyw63Q.js +1 -0
- package/dist/gateway/static/root/assets/connectors-page-C3ubZz7K.js +2 -0
- package/dist/gateway/static/root/assets/{cron-expression-CjrWuy2m.js → cron-expression-GDPX4NxC.js} +1 -1
- package/dist/gateway/static/root/assets/{date-picker-DXOvbHCr.js → date-picker-BdxjXVKL.js} +1 -1
- package/dist/gateway/static/root/assets/{dependency-picker-BEnC-eS0.js → dependency-picker-CXOa4uh4.js} +1 -1
- package/dist/gateway/static/root/assets/desktop-pet-CBWiAaSv.js +1 -0
- package/dist/gateway/static/root/assets/{desktop-pet-settings-CYyjcSn6.js → desktop-pet-settings-BX1aILDK.js} +1 -1
- package/dist/gateway/static/root/assets/{device-pairing-wizard-BPMGvAKE.js → device-pairing-wizard-bqm_Yf4i.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-debug-page-H_aPMGXW.js → extension-debug-page-B4MMerja.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-page-C1JnpeMt.js → extension-page-B3ZtINak.js} +1 -1
- package/dist/gateway/static/root/assets/extension-settings-page-8BkQVh0z.js +1 -0
- package/dist/gateway/static/root/assets/{gateway-config-swr-G2lQt7Ak.js → gateway-config-swr-BBovMBQ1.js} +1 -1
- package/dist/gateway/static/root/assets/gateway-settings-ZyhacQX5.js +1 -0
- package/dist/gateway/static/root/assets/{gateway-startup-retry-GP31PUrG.js → gateway-startup-retry-NXDtzZED.js} +1 -1
- package/dist/gateway/static/root/assets/heartbeat-settings-Bllcxm2A.js +1 -0
- package/dist/gateway/static/root/assets/home-page-Cv2e8XBR.js +1 -0
- package/dist/gateway/static/root/assets/{image-generation-api-CKFhfHSw.js → image-generation-api-D01ieqGC.js} +1 -1
- package/dist/gateway/static/root/assets/{imports-page-GROumhj8.js → imports-page-DJG1BJzd.js} +1 -1
- package/dist/gateway/static/root/assets/index-B7EieIE4.js +75 -0
- package/dist/gateway/static/root/assets/index-BD5uNzie.css +2 -0
- package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-zcI822m_.js → keyboard-shortcuts-settings-6A6JOHTI.js} +1 -1
- package/dist/gateway/static/root/assets/local-app-workbench-page-Cipj52Zq.js +2 -0
- package/dist/gateway/static/root/assets/{local-apps-page-BtgDJ92Q.js → local-apps-page-bD-m7YHJ.js} +1 -1
- package/dist/gateway/static/root/assets/locale-store-eliqUnBr.js +1 -0
- package/dist/gateway/static/root/assets/logs-page-D5feO2yw.js +2 -0
- package/dist/gateway/static/root/assets/{management-settings-DasZxCyD.js → management-settings-B7mz0_44.js} +1 -1
- package/dist/gateway/static/root/assets/{markdown-view-6oYdBahT.js → markdown-view-BIg7cei7.js} +1 -1
- package/dist/gateway/static/root/assets/{media-plugins-CxthbBvk.js → media-plugins-DQ2HfMeG.js} +1 -1
- package/dist/gateway/static/root/assets/messages-NYDOR8-j.js +3 -0
- package/dist/gateway/static/root/assets/note-detail-panel-DhYJigb3.js +5 -0
- package/dist/gateway/static/root/assets/notes-page-Bg5NPUdf.js +8 -0
- package/dist/gateway/static/root/assets/page-tabs-DmG_Qjl8.js +1 -0
- package/dist/gateway/static/root/assets/popover-select-DldSX8GX.js +1 -0
- package/dist/gateway/static/root/assets/{preview-open-alternatives-Bevpbq9f.js → preview-open-alternatives-Y9J1kjKC.js} +1 -1
- package/dist/gateway/static/root/assets/proactive-page-Duc_NQ8l.js +1 -0
- package/dist/gateway/static/root/assets/{product-open-page-Bi1seZpM.js → product-open-page-DtgWUAwT.js} +1 -1
- package/dist/gateway/static/root/assets/project-detail-page-DVOiucVA.js +1 -0
- package/dist/gateway/static/root/assets/projects-page-Dr_kDoCJ.js +1 -0
- package/dist/gateway/static/root/assets/{registry-api-D0ddwBFj.js → registry-api-Dpm3N2h0.js} +1 -1
- package/dist/gateway/static/root/assets/remote-access-hub-hyJ2KKKK.js +1 -0
- package/dist/gateway/static/root/assets/{runtime-tools-settings-panel-Wkru8_My.js → runtime-tools-settings-panel-DB7J9opJ.js} +2 -2
- package/dist/gateway/static/root/assets/{schema-form-CSMRzj9Y.js → schema-form-CMYuPOlE.js} +1 -1
- package/dist/gateway/static/root/assets/sessions-page-DGsnYcoh.js +1 -0
- package/dist/gateway/static/root/assets/settings-advanced-gate-DuzZqQMn.js +1 -0
- package/dist/gateway/static/root/assets/settings-form-section-BayJP08a.js +1 -0
- package/dist/gateway/static/root/assets/{settings-page-BcQGAnCs.js → settings-page-CWBqZtt6.js} +1 -1
- package/dist/gateway/static/root/assets/settings-page-layout-CsUQKRq0.js +1 -0
- package/dist/gateway/static/root/assets/setup-status-panel-C97S5g5c.js +1 -0
- package/dist/gateway/static/root/assets/{share-preview-page-DQocUl-1.js → share-preview-page-Wn5bQA-5.js} +1 -1
- package/dist/gateway/static/root/assets/shares-settings-pfVzP8F7.js +1 -0
- package/dist/gateway/static/root/assets/skill-reload-api-DDJ0ZKx3.js +1 -0
- package/dist/gateway/static/root/assets/skills-page-DbDpLjDW.js +2 -0
- package/dist/gateway/static/root/assets/{skills-page.utils-DtlfCgJp.js → skills-page.utils-DCHY_kou.js} +1 -1
- package/dist/gateway/static/root/assets/{system-settings-panel-Ct698Nf-.js → system-settings-panel-DhgITgId.js} +1 -1
- package/dist/gateway/static/root/assets/task-detail-page-UqwtiHYu.js +1 -0
- package/dist/gateway/static/root/assets/{theme-store-ng8KJsAT.js → theme-store-DUHPzKzv.js} +1 -1
- package/dist/gateway/static/root/assets/tunnel-api-DJ3gz2tM.js +1 -0
- package/dist/gateway/static/root/assets/{use-autosave-BSyxRHt2.js → use-autosave-htvgT192.js} +1 -1
- package/dist/gateway/static/root/assets/user-model-page-xOsXY_2W.js +2 -0
- package/dist/gateway/static/root/assets/{voice-api-key-field-SE3OQI1s.js → voice-api-key-field-BviJF3Oa.js} +1 -1
- package/dist/gateway/static/root/assets/{voice-config-api-VNuCmdFe.js → voice-config-api-Bjy8EFqi.js} +1 -1
- package/dist/gateway/static/root/assets/{work-discovery-overlay-Dn1vy2oq.js → work-discovery-overlay-BOBVNEYZ.js} +1 -1
- package/dist/gateway/static/root/assets/{workflow-run-setup-panel-BJEfGY-k.js → workflow-run-setup-panel-D1N9uUyM.js} +2 -2
- package/dist/gateway/static/root/assets/workflows-page-2ylzlgkG.js +6 -0
- package/dist/gateway/static/root/index.html +12 -12
- package/dist/package.js +1 -1
- package/dist/packages/computer-control-contract/src/index.js +178 -0
- package/dist/packages/endpoint-tools-protocol/src/index.js +312 -305
- package/dist/packages/gateway-contract/src/agent-stream.js +6 -0
- package/dist/packages/gateway-contract/src/automations.js +215 -0
- package/dist/packages/gateway-contract/src/browser-page-context.js +48 -39
- package/dist/packages/gateway-contract/src/browser-tab-binding.js +30 -25
- package/dist/packages/gateway-contract/src/clarifications.js +6 -0
- package/dist/packages/gateway-contract/src/connection-waits.js +6 -0
- package/dist/packages/gateway-contract/src/conversation-identity.js +17 -0
- package/dist/packages/gateway-contract/src/device-pairing.js +84 -78
- package/dist/packages/gateway-contract/src/discussions.js +19 -15
- package/dist/packages/gateway-contract/src/files.js +55 -0
- package/dist/packages/gateway-contract/src/home.js +188 -0
- package/dist/packages/gateway-contract/src/index.js +65 -0
- package/dist/packages/gateway-contract/src/mobile-privacy.js +26 -0
- package/dist/packages/gateway-contract/src/model-selection.js +4 -1
- package/dist/packages/gateway-contract/src/new-session.js +5 -1
- package/dist/packages/gateway-contract/src/notifications.js +64 -59
- package/dist/packages/gateway-contract/src/proactive.js +133 -128
- package/dist/packages/gateway-contract/src/product-delivery.js +56 -50
- package/dist/packages/gateway-contract/src/project-monitoring.js +33 -28
- package/dist/packages/gateway-contract/src/project-operating.js +100 -0
- package/dist/packages/gateway-contract/src/session-identity.js +38 -34
- package/dist/packages/gateway-contract/src/session-input-reliability.js +6 -0
- package/dist/packages/gateway-contract/src/sessions.js +145 -0
- package/dist/packages/gateway-contract/src/task-lifecycle.js +69 -64
- package/dist/packages/gateway-contract/src/task-runs.js +80 -75
- package/dist/packages/gateway-contract/src/tasks.js +445 -438
- package/dist/packages/gateway-contract/src/tool-activity.js +154 -149
- package/dist/packages/gateway-contract/src/turn-outcome.js +118 -112
- package/dist/packages/gateway-contract/src/user-message-display.js +13 -8
- package/dist/packages/gateway-contract/src/welcome-suggestions.js +6 -0
- package/dist/packages/realtime-client/src/index.js +1 -1
- package/dist/packages/realtime-protocol/src/index.js +4 -2
- package/dist/packages/realtime-protocol/src/voice-audio.js +15 -10
- package/dist/packages/realtime-protocol/src/voice-catalog.js +61 -0
- package/dist/packages/realtime-protocol/src/voice.js +257 -248
- package/dist/src/activity/types.d.ts +1 -1
- package/dist/src/agent/agent-instance-gateway.d.ts +18 -18
- package/dist/src/agent/agent-manager.d.ts +28 -27
- package/dist/src/agent/agent-manager.js +184 -182
- package/dist/src/agent/background-review/coordinator.d.ts +3 -3
- package/dist/src/agent/background-review/coordinator.js +10 -10
- package/dist/src/agent/background-review/run-background-review.d.ts +1 -1
- package/dist/src/agent/background-review/run-background-review.js +15 -15
- package/dist/src/agent/bootstrap/bootstrap-cache.d.ts +4 -4
- package/dist/src/agent/bootstrap/bootstrap-cache.js +9 -9
- package/dist/src/agent/bootstrap/bootstrap-files.d.ts +4 -4
- package/dist/src/agent/bootstrap/bootstrap-files.js +9 -9
- package/dist/src/agent/bootstrap/filter-bootstrap-files.d.ts +1 -1
- package/dist/src/agent/bootstrap/filter-bootstrap-files.js +3 -3
- package/dist/src/agent/child-agent-factory.d.ts +3 -3
- package/dist/src/agent/child-agent-factory.js +5 -5
- package/dist/src/agent/coding/workspace-revision.js +1 -1
- package/dist/src/agent/commands/command-registry.js +2 -1
- package/dist/src/agent/context/audit.d.ts +2 -2
- package/dist/src/agent/context/audit.js +5 -4
- package/dist/src/agent/context/coordinator.d.ts +6 -6
- package/dist/src/agent/context/coordinator.js +13 -13
- package/dist/src/agent/context/execution-context.js +4 -3
- package/dist/src/agent/context/execution-scope.d.ts +3 -3
- package/dist/src/agent/context/execution-scope.js +13 -13
- package/dist/src/agent/context/project-context.d.ts +1 -1
- package/dist/src/agent/context/project-context.js +4 -4
- package/dist/src/agent/embedded/execution-context.d.ts +1 -1
- package/dist/src/agent/embedded/execution-context.js +3 -3
- package/dist/src/agent/embedded/index.d.ts +1 -1
- package/dist/src/agent/embedded/index.js +2 -2
- package/dist/src/agent/embedded/model-runtime.js +1 -1
- package/dist/src/agent/embedded/run-for-session.d.ts +1 -1
- package/dist/src/agent/embedded/run-for-session.js +79 -105
- package/dist/src/agent/embedded/run-turn.js +86 -34
- package/dist/src/agent/embedded/runs.d.ts +11 -11
- package/dist/src/agent/embedded/runs.js +22 -22
- package/dist/src/agent/embedded/session-runner.d.ts +2 -2
- package/dist/src/agent/embedded/session-runner.js +5 -5
- package/dist/src/agent/embedded/session-tool-result-guard.d.ts +2 -2
- package/dist/src/agent/embedded/session-tool-result-guard.js +8 -8
- package/dist/src/agent/embedded/sqlite-hydrating-session-manager.d.ts +2 -2
- package/dist/src/agent/embedded/sqlite-hydrating-session-manager.js +4 -4
- package/dist/src/agent/embedded/transcript-runtime.d.ts +4 -3
- package/dist/src/agent/embedded/transcript-runtime.js +33 -20
- package/dist/src/agent/embedded/types.d.ts +2 -1
- package/dist/src/agent/external-tools/composio-provider.d.ts +1 -1
- package/dist/src/agent/external-tools/composio-provider.js +12 -11
- package/dist/src/agent/external-tools/endpoint-provider.js +5 -3
- package/dist/src/agent/external-tools/extension-provider.d.ts +1 -1
- package/dist/src/agent/external-tools/extension-provider.js +1 -1
- package/dist/src/agent/external-tools/gateway-tools.js +9 -8
- package/dist/src/agent/external-tools/index.js +3 -3
- package/dist/src/agent/external-tools/mcp-provider.d.ts +2 -2
- package/dist/src/agent/external-tools/mcp-provider.js +8 -8
- package/dist/src/agent/external-tools/memory-provider.d.ts +1 -1
- package/dist/src/agent/external-tools/memory-provider.js +1 -1
- package/dist/src/agent/external-tools/types.d.ts +1 -1
- package/dist/src/agent/image/tool-model-config.js +1 -1
- package/dist/src/agent/inbound/attachment-pipeline.d.ts +7 -7
- package/dist/src/agent/inbound/attachment-pipeline.js +22 -21
- package/dist/src/agent/inbound/inbound-loop.d.ts +6 -6
- package/dist/src/agent/inbound/inbound-loop.js +23 -23
- package/dist/src/agent/inbound/turn-dispatcher.d.ts +14 -14
- package/dist/src/agent/inbound/turn-dispatcher.js +16 -16
- package/dist/src/agent/ipc/bus.d.ts +1 -1
- package/dist/src/agent/ipc/types.d.ts +3 -3
- package/dist/src/agent/ipc/types.js +1 -1
- package/dist/src/agent/lifecycle/hook-handler.d.ts +2 -2
- package/dist/src/agent/lifecycle/hook-handler.js +6 -6
- package/dist/src/agent/lifecycle/manager.d.ts +1 -1
- package/dist/src/agent/lifecycle/manager.js +4 -4
- package/dist/src/agent/lifecycle/types.d.ts +1 -1
- package/dist/src/agent/mcp/bundle-mcp-runtime.d.ts +4 -4
- package/dist/src/agent/mcp/bundle-mcp-runtime.js +21 -20
- package/dist/src/agent/mcp/bundle-mcp-tools.d.ts +1 -1
- package/dist/src/agent/mcp/bundle-mcp-tools.js +2 -2
- package/dist/src/agent/mcp/bundle-mcp-types.d.ts +4 -4
- package/dist/src/agent/mcp/index.js +2 -2
- package/dist/src/agent/mcp/oauth/mcp-oauth-manager.js +9 -8
- package/dist/src/agent/mcp/oauth/mcp-oauth-store.js +1 -1
- package/dist/src/agent/memory/compaction-ledger.js +9 -2
- package/dist/src/agent/memory/compaction-promotion.d.ts +2 -2
- package/dist/src/agent/memory/compaction-promotion.js +6 -6
- package/dist/src/agent/memory/compaction-source-planner.d.ts +2 -0
- package/dist/src/agent/memory/compaction-source-planner.js +9 -1
- package/dist/src/agent/memory/compaction.d.ts +6 -1
- package/dist/src/agent/memory/compaction.js +22 -11
- package/dist/src/agent/memory/context-recovery.d.ts +44 -0
- package/dist/src/agent/memory/context-recovery.js +96 -0
- package/dist/src/agent/memory/manager.js +11 -11
- package/dist/src/agent/memory/turn-provenance.d.ts +5 -5
- package/dist/src/agent/memory/turn-provenance.js +21 -17
- package/dist/src/agent/memory/types.d.ts +2 -2
- package/dist/src/agent/messaging/command-handler.d.ts +11 -11
- package/dist/src/agent/messaging/command-handler.js +7 -7
- package/dist/src/agent/messaging/message-router.d.ts +1 -1
- package/dist/src/agent/messaging/message-router.js +4 -4
- package/dist/src/agent/messaging/outbound-coordinator.d.ts +2 -2
- package/dist/src/agent/messaging/outbound-coordinator.js +4 -4
- package/dist/src/agent/middleware/context.d.ts +1 -2
- package/dist/src/agent/middleware/context.js +2 -5
- package/dist/src/agent/models/manager.d.ts +10 -10
- package/dist/src/agent/models/manager.js +34 -34
- package/dist/src/agent/orchestration/agent-event-handler.js +14 -14
- package/dist/src/agent/orchestration/agent-orchestrator.d.ts +7 -7
- package/dist/src/agent/orchestration/agent-orchestrator.js +29 -29
- package/dist/src/agent/orchestration/context-overflow.js +2 -0
- package/dist/src/agent/orchestration/llm-turn-retry.d.ts +1 -1
- package/dist/src/agent/orchestration/llm-turn-retry.js +2 -2
- package/dist/src/agent/orchestration/run-agent-turn-with-timeout.d.ts +1 -1
- package/dist/src/agent/orchestration/run-agent-turn-with-timeout.js +2 -2
- package/dist/src/agent/prompt/response-language.d.ts +1 -1
- package/dist/src/agent/prompt/response-language.js +2 -2
- package/dist/src/agent/prompt/service-prompt-builder.d.ts +2 -2
- package/dist/src/agent/prompt/service-prompt-builder.js +4 -4
- package/dist/src/agent/prompt/subagent-context.d.ts +4 -4
- package/dist/src/agent/prompt/subagent-context.js +1 -1
- package/dist/src/agent/prompt/system-prompt-params.d.ts +4 -4
- package/dist/src/agent/prompt/system-prompt-params.js +13 -12
- package/dist/src/agent/reply/apply-turn-user-enrichment.d.ts +1 -1
- package/dist/src/agent/reply/apply-turn-user-enrichment.js +3 -3
- package/dist/src/agent/reply/post-compaction-context.d.ts +1 -1
- package/dist/src/agent/reply/post-compaction-context.js +2 -2
- package/dist/src/agent/service/btw-query.d.ts +1 -1
- package/dist/src/agent/service/btw-query.js +4 -4
- package/dist/src/agent/service/build-direct-message-content.d.ts +1 -1
- package/dist/src/agent/service/build-direct-message-content.js +2 -2
- package/dist/src/agent/service/direct-turn-helpers.d.ts +6 -6
- package/dist/src/agent/service/direct-turn-helpers.js +17 -16
- package/dist/src/agent/service/parse-outbound-session-key.d.ts +1 -1
- package/dist/src/agent/service/parse-outbound-session-key.js +8 -9
- package/dist/src/agent/service/process-direct-one-shot.d.ts +11 -11
- package/dist/src/agent/service/process-direct-one-shot.js +16 -16
- package/dist/src/agent/service/process-direct-streaming.d.ts +18 -18
- package/dist/src/agent/service/process-direct-streaming.js +45 -40
- package/dist/src/agent/service/session-context-report.d.ts +1 -1
- package/dist/src/agent/service/session-context-report.js +3 -3
- package/dist/src/agent/service/webchat-tts.d.ts +3 -3
- package/dist/src/agent/service/webchat-tts.js +7 -7
- package/dist/src/agent/service.d.ts +23 -23
- package/dist/src/agent/service.js +113 -110
- package/dist/src/agent/service.types.d.ts +3 -3
- package/dist/src/agent/session/session-config-service.d.ts +5 -5
- package/dist/src/agent/session/session-config-service.js +53 -66
- package/dist/src/agent/session/session-context.d.ts +2 -2
- package/dist/src/agent/session/session-context.js +2 -2
- package/dist/src/agent/session/session-hydrator.d.ts +3 -3
- package/dist/src/agent/session/session-hydrator.js +19 -19
- package/dist/src/agent/session/session-inspector.d.ts +7 -7
- package/dist/src/agent/session/session-inspector.js +46 -46
- package/dist/src/agent/session/session-lifecycle.d.ts +2 -2
- package/dist/src/agent/session/session-lifecycle.js +17 -17
- package/dist/src/agent/session/session-state-bag.d.ts +18 -18
- package/dist/src/agent/session/session-state-bag.js +46 -46
- package/dist/src/agent/session/tracker.d.ts +7 -7
- package/dist/src/agent/session/tracker.js +27 -27
- package/dist/src/agent/skills/hub-lock.js +1 -1
- package/dist/src/agent/skills/index.js +25 -15
- package/dist/src/agent/skills/parse-skill-metadata.d.ts +5 -1
- package/dist/src/agent/skills/parse-skill-metadata.js +21 -1
- package/dist/src/agent/skills/types.d.ts +7 -0
- package/dist/src/agent/source-context/types.d.ts +1 -1
- package/dist/src/agent/tasks/task-judge-service.d.ts +1 -1
- package/dist/src/agent/tasks/task-judge-service.js +14 -13
- package/dist/src/agent/tool-manuals/computer.d.ts +1 -0
- package/dist/src/agent/tool-manuals/computer.js +19 -0
- package/dist/src/agent/tool-manuals/index.js +7 -0
- package/dist/src/agent/tools/automation-tool.js +2 -0
- package/dist/src/agent/tools/chain-tracker.d.ts +10 -10
- package/dist/src/agent/tools/chain-tracker.js +31 -31
- package/dist/src/agent/tools/clarify-tool.d.ts +1 -1
- package/dist/src/agent/tools/computer-use-tool.d.ts +11 -0
- package/dist/src/agent/tools/computer-use-tool.js +86 -0
- package/dist/src/agent/tools/create-share-tool.js +2 -0
- package/dist/src/agent/tools/delegate-tool.d.ts +1 -1
- package/dist/src/agent/tools/delegate-tool.js +4 -4
- package/dist/src/agent/tools/exec-command.d.ts +1 -1
- package/dist/src/agent/tools/exec-command.js +1 -1
- package/dist/src/agent/tools/factory.d.ts +5 -3
- package/dist/src/agent/tools/factory.js +66 -36
- package/dist/src/agent/tools/knowledge-memory-tool.js +2 -2
- package/dist/src/agent/tools/managed-job-tool.d.ts +1 -1
- package/dist/src/agent/tools/managed-job-tool.js +2 -2
- package/dist/src/agent/tools/publish-artifacts.js +2 -0
- package/dist/src/agent/tools/send-media.js +2 -0
- package/dist/src/agent/tools/session-recall-tool.d.ts +1 -1
- package/dist/src/agent/tools/session-recall-tool.js +3 -3
- package/dist/src/agent/tools/session-search-tool.d.ts +1 -1
- package/dist/src/agent/tools/session-search-tool.js +6 -6
- package/dist/src/agent/tools/skill-install-tool.d.ts +3 -3
- package/dist/src/agent/tools/skill-install-tool.js +3 -3
- package/dist/src/agent/tools/todo-tool.d.ts +3 -3
- package/dist/src/agent/tools/todo-tool.js +4 -4
- package/dist/src/agent/tools/workflow-tool.d.ts +1 -1
- package/dist/src/agent/tools/workflow-tool.js +15 -13
- package/dist/src/agent/tools/write.js +2 -0
- package/dist/src/agent/tools/xopc-use-tool.d.ts +1 -1
- package/dist/src/agent/tools/xopc-use-tool.js +16 -13
- package/dist/src/agent/types.d.ts +1 -1
- package/dist/src/agent/workflow/catalog.js +4 -2
- package/dist/src/agent/workflow/channel-capability.d.ts +2 -2
- package/dist/src/agent/workflow/progress-broker.d.ts +4 -4
- package/dist/src/agent/workflow/progress-broker.js +17 -17
- package/dist/src/agent/workflow/subagent-runner.js +10 -10
- package/dist/src/agent/workflow/types.d.ts +2 -2
- package/dist/src/agent/workflow/workflow-child-tools.js +1 -1
- package/dist/src/agent/workspace-runtime/registry.js +1 -1
- package/dist/src/agent-config/index.js +2 -2
- package/dist/src/agent-config/resolver.js +5 -0
- package/dist/src/agent-config/schema.d.ts +32 -0
- package/dist/src/agent-config/schema.js +5 -2
- package/dist/src/ai-assist/text-assist.js +1 -1
- package/dist/src/auth/credentials.js +2 -2
- package/dist/src/auth/oauth/xopc-cloud.js +1 -1
- package/dist/src/auth/profiles/store.js +1 -1
- package/dist/src/auth/sync-provider-auth.js +2 -2
- package/dist/src/automations/domain/types.d.ts +7 -7
- package/dist/src/automations/domain/validation.js +2 -0
- package/dist/src/automations/service/action-executor.js +15 -15
- package/dist/src/automations/service/automation-service.js +4 -3
- package/dist/src/automations/storage/automation-repository.js +2 -1
- package/dist/src/automations/storage/automation-run-repository.js +9 -8
- package/dist/src/browser/native-messaging-host.js +4 -1
- package/dist/src/browser/policy/approval-store.d.ts +4 -4
- package/dist/src/browser/policy/approval-store.js +8 -8
- package/dist/src/browser/providers/browser-ext-install.js +1 -1
- package/dist/src/browser/providers/extension.js +6 -6
- package/dist/src/browser/providers/realtime-extension.js +2 -2
- package/dist/src/browser/runtime/browser-runtime.js +3 -3
- package/dist/src/capabilities/readiness/from-config.js +14 -2
- package/dist/src/capabilities/readiness/planner.js +3 -2
- package/dist/src/capabilities/readiness/types.d.ts +1 -1
- package/dist/src/channels/exec-approval-runtime.d.ts +1 -1
- package/dist/src/channels/manager.js +1 -1
- package/dist/src/channels/pipeline.js +2 -2
- package/dist/src/channels/plugin-types.d.ts +2 -2
- package/dist/src/channels/plugins/types.adapters.d.ts +1 -1
- package/dist/src/channels/telegram/index.d.ts +1 -1
- package/dist/src/channels/telegram/index.js +2 -2
- package/dist/src/chat-commands/agent-edit.js +2 -2
- package/dist/src/chat-commands/builtins/review.js +4 -4
- package/dist/src/chat-commands/builtins/session.js +1 -1
- package/dist/src/chat-commands/builtins/system.js +2 -2
- package/dist/src/chat-commands/builtins/thinking.js +7 -7
- package/dist/src/chat-commands/builtins/understanding.js +4 -4
- package/dist/src/chat-commands/builtins/workflow.js +8 -8
- package/dist/src/chat-commands/context.d.ts +9 -9
- package/dist/src/chat-commands/context.js +35 -35
- package/dist/src/chat-commands/index.d.ts +1 -1
- package/dist/src/chat-commands/index.js +2 -2
- package/dist/src/chat-commands/processor.js +2 -2
- package/dist/src/chat-commands/registry.js +1 -1
- package/dist/src/chat-commands/session-key.d.ts +3 -3
- package/dist/src/chat-commands/session-key.js +20 -24
- package/dist/src/chat-commands/types.d.ts +3 -3
- package/dist/src/cli/command-manifest.js +1 -1
- package/dist/src/cli/commands/agent/interactive.d.ts +1 -1
- package/dist/src/cli/commands/agent/interactive.js +8 -8
- package/dist/src/cli/commands/agent/stream-renderer.d.ts +1 -1
- package/dist/src/cli/commands/agent/stream-renderer.js +2 -2
- package/dist/src/cli/commands/agent.js +10 -6
- package/dist/src/cli/commands/doctor/checks/database-schema.js +3 -2
- package/dist/src/cli/commands/doctor/checks/provider-auth.js +3 -3
- package/dist/src/cli/commands/doctor/checks/session-integrity.js +9 -9
- package/dist/src/cli/commands/gateway/lifecycle.js +1 -1
- package/dist/src/cli/commands/gateway/run-foreground.js +2 -1
- package/dist/src/cli/commands/import.js +2 -1
- package/dist/src/cli/commands/logs.js +3 -3
- package/dist/src/cli/commands/models.js +1 -1
- package/dist/src/cli/commands/project.js +5 -5
- package/dist/src/cli/commands/resume.js +4 -4
- package/dist/src/cli/commands/tunnel.js +2 -1
- package/dist/src/computer/broker.d.ts +97 -0
- package/dist/src/computer/broker.js +337 -0
- package/dist/src/computer/config.d.ts +9 -0
- package/dist/src/computer/config.js +16 -0
- package/dist/src/computer/control-guard.d.ts +4 -0
- package/dist/src/computer/control-guard.js +17 -0
- package/dist/src/computer/errors.d.ts +7 -0
- package/dist/src/computer/errors.js +30 -0
- package/dist/src/computer/model-adapter.d.ts +44 -0
- package/dist/src/computer/model-adapter.js +273 -0
- package/dist/src/computer/model-config.d.ts +3 -0
- package/dist/src/computer/model-config.js +27 -0
- package/dist/src/computer/model-policy.d.ts +3 -0
- package/dist/src/computer/model-policy.js +20 -0
- package/dist/src/computer/runtime.d.ts +128 -0
- package/dist/src/computer/runtime.js +388 -0
- package/dist/src/config/agent-profile.d.ts +3 -3
- package/dist/src/config/agent-profile.js +12 -12
- package/dist/src/config/index.js +4 -4
- package/dist/src/config/loader.js +2 -2
- package/dist/src/config/models-json.d.ts +42 -6
- package/dist/src/config/models-json.js +15 -1
- package/dist/src/config/schema.d.ts +38 -1
- package/dist/src/config/schema.js +11 -2
- package/dist/src/config/voice.js +2 -2
- package/dist/src/connectors/catalog.js +2 -1
- package/dist/src/connectors/composio-sessions.d.ts +1 -1
- package/dist/src/connectors/composio-sessions.js +3 -3
- package/dist/src/connectors/connection-recovery-service.d.ts +4 -4
- package/dist/src/connectors/connection-recovery-service.js +41 -37
- package/dist/src/connectors/principal.d.ts +1 -1
- package/dist/src/connectors/principal.js +4 -3
- package/dist/src/connectors/types.d.ts +2 -2
- package/dist/src/discussions/action-tasks.js +5 -2
- package/dist/src/discussions/analyzer.js +2 -1
- package/dist/src/discussions/edits.js +4 -2
- package/dist/src/discussions/index.js +1 -1
- package/dist/src/discussions/organizer.js +3 -2
- package/dist/src/discussions/recording.js +5 -2
- package/dist/src/discussions/recordingJobs.js +2 -1
- package/dist/src/discussions/repository.js +2 -1
- package/dist/src/discussions/revisions.js +2 -1
- package/dist/src/discussions/sealer.js +1 -1
- package/dist/src/discussions/service.js +6 -3
- package/dist/src/discussions/types.js +4 -0
- package/dist/src/endpoint-tools/auth.js +2 -1
- package/dist/src/endpoint-tools/binding-service.d.ts +8 -8
- package/dist/src/endpoint-tools/binding-service.js +14 -14
- package/dist/src/endpoint-tools/invocation-service.d.ts +1 -0
- package/dist/src/endpoint-tools/invocation-service.js +7 -3
- package/dist/src/endpoint-tools/policy.js +9 -1
- package/dist/src/endpoint-tools/registry.js +2 -1
- package/dist/src/endpoint-tools/runtime.js +1 -0
- package/dist/src/endpoint-tools/upload-service.d.ts +13 -1
- package/dist/src/endpoint-tools/upload-service.js +75 -9
- package/dist/src/execution-environments/local-worktree-manager.d.ts +1 -1
- package/dist/src/execution-environments/local-worktree-manager.js +2 -2
- package/dist/src/execution-environments/session-environment-service.d.ts +3 -3
- package/dist/src/execution-environments/session-environment-service.js +10 -10
- package/dist/src/execution-environments/store.d.ts +2 -2
- package/dist/src/execution-environments/store.js +15 -14
- package/dist/src/execution-environments/subject.d.ts +1 -1
- package/dist/src/execution-environments/subject.js +2 -2
- package/dist/src/execution-environments/types.d.ts +2 -2
- package/dist/src/extensions/api.js +1 -1
- package/dist/src/extensions/install.js +1 -1
- package/dist/src/extensions/loader.d.ts +1 -1
- package/dist/src/extensions/lockfile.js +1 -1
- package/dist/src/extensions/types/core.d.ts +2 -2
- package/dist/src/extensions/types/hooks.d.ts +12 -12
- package/dist/src/extensions/types/tools.d.ts +3 -3
- package/dist/src/extensions/types/tui.d.ts +3 -3
- package/dist/src/files/file-service.d.ts +3 -3
- package/dist/src/files/file-service.js +3 -3
- package/dist/src/gateway/agent-builtin-tools.d.ts +7 -1
- package/dist/src/gateway/agent-builtin-tools.js +7 -0
- package/dist/src/gateway/agents-admin.js +1 -1
- package/dist/src/gateway/automation-agent-session.js +5 -5
- package/dist/src/gateway/chat-stream/mapper.d.ts +1 -1
- package/dist/src/gateway/chat-stream/mapper.js +4 -2
- package/dist/src/gateway/chat-stream/protocol.d.ts +1 -1
- package/dist/src/gateway/chat-stream/thinking-delta-coalescer.js +1 -1
- package/dist/src/gateway/clarify-runtime.d.ts +2 -2
- package/dist/src/gateway/clarify-runtime.js +2 -2
- package/dist/src/gateway/file-path-classifier.d.ts +2 -2
- package/dist/src/gateway/file-path-classifier.js +5 -5
- package/dist/src/gateway/file-reference-registry.d.ts +2 -2
- package/dist/src/gateway/file-reference-registry.js +1 -1
- package/dist/src/gateway/file-space-service.js +3 -3
- package/dist/src/gateway/gateway-workflow-host.types.d.ts +1 -1
- package/dist/src/gateway/global-defaults-admin.js +16 -0
- package/dist/src/gateway/heartbeat/check-store.js +2 -1
- package/dist/src/gateway/heartbeat/service.js +23 -9
- package/dist/src/gateway/hono/lib/config-payload.d.ts +15 -0
- package/dist/src/gateway/hono/lib/config-payload.js +2 -1
- package/dist/src/gateway/hono/middleware/log-context.d.ts +1 -1
- package/dist/src/gateway/hono/middleware/log-context.js +3 -3
- package/dist/src/gateway/hono/routes/agent-stream.js +20 -20
- package/dist/src/gateway/hono/routes/browser-session.js +2 -2
- package/dist/src/gateway/hono/routes/browser.js +22 -20
- package/dist/src/gateway/hono/routes/chat-model-config.d.ts +1 -1
- package/dist/src/gateway/hono/routes/chat-model-config.js +6 -6
- package/dist/src/gateway/hono/routes/commands-skills.js +13 -13
- package/dist/src/gateway/hono/routes/config-patch/misc.js +13 -2
- package/dist/src/gateway/hono/routes/connection-waits.js +5 -5
- package/dist/src/gateway/hono/routes/connectors.js +5 -5
- package/dist/src/gateway/hono/routes/context-sources.js +2 -1
- package/dist/src/gateway/hono/routes/device-pairing-approval.js +2 -0
- package/dist/src/gateway/hono/routes/devices.js +2 -0
- package/dist/src/gateway/hono/routes/discussions.js +2 -2
- package/dist/src/gateway/hono/routes/endpoint-tools.js +11 -9
- package/dist/src/gateway/hono/routes/execution-environments.js +11 -11
- package/dist/src/gateway/hono/routes/file-references.js +5 -5
- package/dist/src/gateway/hono/routes/home.js +1 -1
- package/dist/src/gateway/hono/routes/interaction-state.js +6 -6
- package/dist/src/gateway/hono/routes/logs.js +2 -2
- package/dist/src/gateway/hono/routes/media.js +3 -3
- package/dist/src/gateway/hono/routes/models.js +6 -3
- package/dist/src/gateway/hono/routes/notes.js +11 -11
- package/dist/src/gateway/hono/routes/projects.js +26 -26
- package/dist/src/gateway/hono/routes/public-gateway.js +3 -3
- package/dist/src/gateway/hono/routes/session-input-handler.d.ts +10 -10
- package/dist/src/gateway/hono/routes/session-input-handler.js +20 -17
- package/dist/src/gateway/hono/routes/sessions.js +79 -50
- package/dist/src/gateway/hono/routes/shares.js +38 -38
- package/dist/src/gateway/hono/routes/side-chats.js +4 -2
- package/dist/src/gateway/hono/routes/site-shares.js +6 -6
- package/dist/src/gateway/hono/routes/tasks.js +18 -13
- package/dist/src/gateway/hono/routes/tui.js +2 -2
- package/dist/src/gateway/hono/routes/user-model.js +1 -1
- package/dist/src/gateway/hono/routes/voice.js +56 -2
- package/dist/src/gateway/hono/routes/workflows.js +7 -7
- package/dist/src/gateway/media-access.d.ts +1 -1
- package/dist/src/gateway/media-access.js +3 -3
- package/dist/src/gateway/resolve-webchat-session-key.d.ts +5 -5
- package/dist/src/gateway/resolve-webchat-session-key.js +5 -5
- package/dist/src/gateway/security/gateway-scopes.d.ts +1 -1
- package/dist/src/gateway/security/gateway-scopes.js +3 -0
- package/dist/src/gateway/service/agent-runner.d.ts +15 -15
- package/dist/src/gateway/service/agent-runner.js +63 -62
- package/dist/src/gateway/service/config-coordinator.js +4 -1
- package/dist/src/gateway/service/marketplace-service.d.ts +3 -3
- package/dist/src/gateway/service/marketplace-service.js +6 -6
- package/dist/src/gateway/service/run-gateway-agent.js +51 -49
- package/dist/src/gateway/service/session-input-coordinator.d.ts +11 -11
- package/dist/src/gateway/service/session-input-coordinator.js +76 -74
- package/dist/src/gateway/service/sessions-api.d.ts +19 -20
- package/dist/src/gateway/service/sessions-api.js +30 -38
- package/dist/src/gateway/service/task-conversation-query-service.d.ts +3 -2
- package/dist/src/gateway/service/task-conversation-query-service.js +3 -3
- package/dist/src/gateway/service.d.ts +4 -4
- package/dist/src/gateway/service.js +76 -70
- package/dist/src/gateway/session-context-summary.d.ts +1 -1
- package/dist/src/gateway/session-context-summary.js +13 -11
- package/dist/src/gateway/session-reset-service.d.ts +4 -4
- package/dist/src/gateway/session-reset-service.js +12 -12
- package/dist/src/gateway/side-chat/context-snapshot.d.ts +2 -2
- package/dist/src/gateway/side-chat/context-snapshot.js +2 -2
- package/dist/src/gateway/side-chat/manager.d.ts +4 -4
- package/dist/src/gateway/side-chat/manager.js +13 -13
- package/dist/src/gateway/side-chat/run-service.js +8 -8
- package/dist/src/gateway/side-chat/types.d.ts +4 -4
- package/dist/src/heartbeat/index.js +1 -1
- package/dist/src/heartbeat/wake.d.ts +1 -1
- package/dist/src/history/ctx/exporter.js +11 -11
- package/dist/src/history/ctx/format.d.ts +1 -1
- package/dist/src/history/ctx/format.js +7 -7
- package/dist/src/imports/contextImport.js +2 -1
- package/dist/src/imports/productImport.js +2 -1
- package/dist/src/infra/node-sqlite.js +9 -3
- package/dist/src/infra/process-diagnostics.js +9 -5
- package/dist/src/infra/sqlite-errors.js +25 -20
- package/dist/src/infra/unhandled-rejections.js +15 -7
- package/dist/src/infra/update-restart.js +1 -1
- package/dist/src/infra/warning-filter.js +9 -3
- package/dist/src/knowledge-memory/domain.d.ts +2 -2
- package/dist/src/knowledge-memory/repository.d.ts +1 -1
- package/dist/src/knowledge-memory/repository.js +10 -8
- package/dist/src/mcp/channel-bridge.d.ts +3 -3
- package/dist/src/mcp/channel-bridge.js +7 -7
- package/dist/src/mcp/channel-shared.d.ts +4 -4
- package/dist/src/mcp/channel-shared.js +3 -3
- package/dist/src/mcp/channel-tools.js +19 -19
- package/dist/src/media/session-references.js +2 -2
- package/dist/src/memory-maintenance/service.js +2 -1
- package/dist/src/migrations/conversation-routing-config.d.ts +2 -0
- package/dist/src/migrations/conversation-routing-config.js +42 -0
- package/dist/src/migrations/runner.js +6 -5
- package/dist/src/notes/service.d.ts +2 -2
- package/dist/src/notes/service.js +6 -6
- package/dist/src/notes/store.js +2 -1
- package/dist/src/notes/types.d.ts +3 -3
- package/dist/src/notifications/device-store.js +2 -1
- package/dist/src/notifications/planner.js +5 -3
- package/dist/src/notifications/proactive-channel.js +4 -1
- package/dist/src/notifications/proactive-policy.js +2 -1
- package/dist/src/notifications/service.d.ts +4 -4
- package/dist/src/notifications/service.js +4 -1
- package/dist/src/notifications/store.js +4 -1
- package/dist/src/notifications/web-push.js +4 -1
- package/dist/src/platform/contracts.d.ts +3 -3
- package/dist/src/proactive/actions/service.js +2 -1
- package/dist/src/proactive/events/product-event-bridge.js +1 -1
- package/dist/src/proactive/events/repository.js +2 -1
- package/dist/src/proactive/execution/authorization.js +2 -1
- package/dist/src/proactive/execution/context.js +2 -1
- package/dist/src/proactive/execution/insight.js +2 -0
- package/dist/src/proactive/execution/repository.js +2 -1
- package/dist/src/proactive/execution/worker.js +3 -2
- package/dist/src/proactive/experience.d.ts +1 -1
- package/dist/src/proactive/experience.js +4 -3
- package/dist/src/proactive/follow-ups.d.ts +7 -7
- package/dist/src/proactive/follow-ups.js +5 -4
- package/dist/src/proactive/inbox/cards.js +5 -2
- package/dist/src/proactive/inbox/delivery.js +2 -1
- package/dist/src/proactive/inbox/digest.js +2 -1
- package/dist/src/proactive/inbox/lifecycle.js +2 -1
- package/dist/src/proactive/inbox/repository.js +2 -1
- package/dist/src/proactive/inbox/service.js +2 -1
- package/dist/src/proactive/mail-thread.js +2 -1
- package/dist/src/proactive/maintenance.js +2 -1
- package/dist/src/proactive/metrics.js +2 -1
- package/dist/src/proactive/policy/presence.js +2 -1
- package/dist/src/proactive/policy/service.js +4 -1
- package/dist/src/proactive/routing/batch-repository.js +2 -1
- package/dist/src/proactive/scenarios/control.js +4 -1
- package/dist/src/proactive/scenarios/repository.js +2 -1
- package/dist/src/proactive/service.js +2 -1
- package/dist/src/proactive/source-freshness.js +2 -1
- package/dist/src/proactive/status.js +2 -1
- package/dist/src/proactive/temporal/schedule.js +2 -1
- package/dist/src/projects/automation-bind.js +2 -1
- package/dist/src/projects/index.js +2 -2
- package/dist/src/projects/knowledge-bind.js +2 -1
- package/dist/src/projects/project-agent.js +4 -1
- package/dist/src/projects/project-service.d.ts +4 -4
- package/dist/src/projects/project-service.js +11 -10
- package/dist/src/projects/project-store.js +11 -9
- package/dist/src/projects/session-bind.d.ts +5 -5
- package/dist/src/projects/session-bind.js +18 -17
- package/dist/src/projects/types.d.ts +1 -1
- package/dist/src/projects/workflow-bind.js +2 -1
- package/dist/src/projects/workspace.d.ts +3 -3
- package/dist/src/projects/workspace.js +6 -6
- package/dist/src/providers/auth-runtime/resolve-auth.js +1 -1
- package/dist/src/providers/index.js +2 -2
- package/dist/src/providers/model-catalog-persistence.js +11 -2
- package/dist/src/providers/model-catalog-store.js +1 -0
- package/dist/src/providers/model-catalog-types.d.ts +7 -2
- package/dist/src/providers/model-reference-auditor.js +7 -4
- package/dist/src/providers/model-registry.js +4 -1
- package/dist/src/providers/model-supplements.js +18 -2
- package/dist/src/providers/presentation.js +4 -2
- package/dist/src/providers/prompt-cache-lifecycle.d.ts +2 -2
- package/dist/src/providers/prompt-cache-lifecycle.js +6 -6
- package/dist/src/providers/register-runtime-providers.js +1 -1
- package/dist/src/providers/xopc-cloud-model-source.js +10 -4
- package/dist/src/realtime/broker.js +3 -3
- package/dist/src/realtime/runtime.js +1 -1
- package/dist/src/retrieval/queryProfile.d.ts +1 -1
- package/dist/src/routing/agent-session-key.d.ts +12 -41
- package/dist/src/routing/agent-session-key.js +39 -120
- package/dist/src/routing/conversation-route.d.ts +28 -0
- package/dist/src/routing/conversation-route.js +50 -0
- package/dist/src/routing/index.d.ts +2 -2
- package/dist/src/routing/index.js +5 -5
- package/dist/src/routing/resolve-route.d.ts +4 -9
- package/dist/src/routing/resolve-route.js +20 -60
- package/dist/src/routing/resolve-tui-session-key.d.ts +5 -13
- package/dist/src/routing/resolve-tui-session-key.js +11 -36
- package/dist/src/routing/session-key.d.ts +6 -39
- package/dist/src/routing/session-key.js +13 -161
- package/dist/src/session/client-history.js +2 -0
- package/dist/src/session/compaction-types.js +18 -13
- package/dist/src/session/config-store.d.ts +8 -8
- package/dist/src/session/config-store.js +19 -19
- package/dist/src/session/index.d.ts +2 -2
- package/dist/src/session/index.js +9 -5
- package/dist/src/session/init-session-turn.d.ts +7 -7
- package/dist/src/session/init-session-turn.js +18 -18
- package/dist/src/session/manager.d.ts +7 -7
- package/dist/src/session/manager.js +6 -6
- package/dist/src/session/model-config-lock.d.ts +1 -1
- package/dist/src/session/model-config-lock.js +4 -4
- package/dist/src/session/resolve-session.d.ts +10 -10
- package/dist/src/session/resolve-session.js +20 -20
- package/dist/src/session/session-context-for-llm.js +17 -10
- package/dist/src/session/session-title.d.ts +5 -5
- package/dist/src/session/session-title.js +28 -28
- package/dist/src/session/session-workspace.d.ts +1 -1
- package/dist/src/session/session-workspace.js +3 -3
- package/dist/src/session/store.d.ts +14 -14
- package/dist/src/session/store.js +70 -50
- package/dist/src/session/stored-rows-to-file-entries.d.ts +1 -1
- package/dist/src/session/stored-rows-to-file-entries.js +5 -3
- package/dist/src/session/thinking-resolve.d.ts +2 -2
- package/dist/src/session/thinking-resolve.js +4 -4
- package/dist/src/session/transcript-events.d.ts +1 -1
- package/dist/src/session/transcript-events.js +3 -3
- package/dist/src/session/transcript-outline.js +2 -1
- package/dist/src/session/turn-outcome-projector.js +2 -0
- package/dist/src/session/types.d.ts +5 -4
- package/dist/src/session/types.js +13 -9
- package/dist/src/session/user-message-display.js +2 -0
- package/dist/src/session/user-round-delete.js +2 -1
- package/dist/src/session/voice-transcript.js +8 -3
- package/dist/src/share/hosted-session-share.d.ts +6 -6
- package/dist/src/share/hosted-session-share.js +13 -11
- package/dist/src/share/hosted-static-site-publish.d.ts +1 -1
- package/dist/src/share/hosted-static-site-publish.js +1 -1
- package/dist/src/share/session-share-service.d.ts +9 -9
- package/dist/src/share/session-share-service.js +19 -19
- package/dist/src/share/share-store.d.ts +2 -2
- package/dist/src/share/share-store.js +9 -7
- package/dist/src/share/share-types.d.ts +2 -2
- package/dist/src/share/site-share-router.d.ts +2 -2
- package/dist/src/share/site-share-store.js +4 -2
- package/dist/src/share/site-share-types.d.ts +1 -1
- package/dist/src/storage/sqlite/activity-repository.js +2 -1
- package/dist/src/storage/sqlite/browser-session-repository.js +2 -1
- package/dist/src/storage/sqlite/browser-tab-binding-repository.d.ts +2 -2
- package/dist/src/storage/sqlite/browser-tab-binding-repository.js +10 -9
- package/dist/src/storage/sqlite/clarification-wait-repository.d.ts +7 -7
- package/dist/src/storage/sqlite/clarification-wait-repository.js +58 -53
- package/dist/src/storage/sqlite/collaboration-rule-repository.js +2 -1
- package/dist/src/storage/sqlite/composer-input-history-repository.js +2 -1
- package/dist/src/storage/sqlite/config-repository.d.ts +6 -6
- package/dist/src/storage/sqlite/config-repository.js +29 -25
- package/dist/src/storage/sqlite/connection-wait-repository.d.ts +11 -11
- package/dist/src/storage/sqlite/connection-wait-repository.js +61 -51
- package/dist/src/storage/sqlite/connection.js +28 -18
- package/dist/src/storage/sqlite/connector-account-repository.js +2 -1
- package/dist/src/storage/sqlite/connector-learning-repository.js +2 -1
- package/dist/src/storage/sqlite/connector-repository.d.ts +1 -1
- package/dist/src/storage/sqlite/connector-repository.js +11 -10
- package/dist/src/storage/sqlite/connector-sync-policy-repository.js +2 -1
- package/dist/src/storage/sqlite/context-evidence-repository.d.ts +1 -1
- package/dist/src/storage/sqlite/context-evidence-repository.js +7 -6
- package/dist/src/storage/sqlite/context-extraction-repository.js +2 -1
- package/dist/src/storage/sqlite/context-relation-repository.js +2 -1
- package/dist/src/storage/sqlite/conversation-repository.d.ts +12 -0
- package/dist/src/storage/sqlite/conversation-repository.js +76 -0
- package/dist/src/storage/sqlite/device-access-repository.js +4 -1
- package/dist/src/storage/sqlite/device-pairing-approval.js +4 -1
- package/dist/src/storage/sqlite/device-pairing-repository.js +2 -1
- package/dist/src/storage/sqlite/durable-queue.js +4 -2
- package/dist/src/storage/sqlite/durable-state.js +4 -2
- package/dist/src/storage/sqlite/endpoint-principal-repository.js +2 -1
- package/dist/src/storage/sqlite/endpoint-session-binding-repository.d.ts +3 -3
- package/dist/src/storage/sqlite/endpoint-session-binding-repository.js +12 -11
- package/dist/src/storage/sqlite/endpoint-tool-invocation-repository.js +2 -1
- package/dist/src/storage/sqlite/fts.js +39 -34
- package/dist/src/storage/sqlite/gateway-identity-repository.js +2 -1
- package/dist/src/storage/sqlite/home-attention-repository.js +2 -1
- package/dist/src/storage/sqlite/import-repository.js +2 -1
- package/dist/src/storage/sqlite/import-selection-repository.js +2 -1
- package/dist/src/storage/sqlite/index.d.ts +2 -2
- package/dist/src/storage/sqlite/index.js +25 -11
- package/dist/src/storage/sqlite/interaction-state-repository.d.ts +4 -4
- package/dist/src/storage/sqlite/interaction-state-repository.js +12 -11
- package/dist/src/storage/sqlite/knowledge-repository.js +2 -1
- package/dist/src/storage/sqlite/migrations/178_conversation_uuid.sql +2 -0
- package/dist/src/storage/sqlite/migrations/conversation-backup.d.ts +11 -0
- package/dist/src/storage/sqlite/migrations/conversation-backup.js +98 -0
- package/dist/src/storage/sqlite/migrations/conversation-key-decoder.d.ts +8 -0
- package/dist/src/storage/sqlite/migrations/conversation-key-decoder.js +87 -0
- package/dist/src/storage/sqlite/migrations/conversation-uuid.d.ts +8 -0
- package/dist/src/storage/sqlite/migrations/conversation-uuid.js +366 -0
- package/dist/src/storage/sqlite/migrations/conversation-windows-owners.d.ts +1 -0
- package/dist/src/storage/sqlite/migrations/conversation-windows-owners.js +95 -0
- package/dist/src/storage/sqlite/migrations/discover.js +9 -5
- package/dist/src/storage/sqlite/migrations/errors.d.ts +5 -0
- package/dist/src/storage/sqlite/migrations/errors.js +38 -23
- package/dist/src/storage/sqlite/migrations/runner.d.ts +2 -2
- package/dist/src/storage/sqlite/migrations/runner.js +44 -14
- package/dist/src/storage/sqlite/migrations/types.d.ts +1 -1
- package/dist/src/storage/sqlite/note-agent-context-repository.js +2 -1
- package/dist/src/storage/sqlite/notes-repository.js +4 -2
- package/dist/src/storage/sqlite/paths.js +6 -2
- package/dist/src/storage/sqlite/relationship-settings-repository.js +2 -1
- package/dist/src/storage/sqlite/row-mappers.d.ts +10 -10
- package/dist/src/storage/sqlite/row-mappers.js +22 -15
- package/dist/src/storage/sqlite/schema-version.js +7 -2
- package/dist/src/storage/sqlite/schema.js +16 -8
- package/dist/src/storage/sqlite/schema.sql +2641 -526
- package/dist/src/storage/sqlite/session-identity-sql.js +12 -5
- package/dist/src/storage/sqlite/session-input-repository.d.ts +14 -14
- package/dist/src/storage/sqlite/session-input-repository.js +69 -61
- package/dist/src/storage/sqlite/session-instance-repository.d.ts +1 -1
- package/dist/src/storage/sqlite/session-instance-repository.js +6 -3
- package/dist/src/storage/sqlite/session-metadata.d.ts +2 -2
- package/dist/src/storage/sqlite/session-metadata.js +7 -3
- package/dist/src/storage/sqlite/session-repository.d.ts +15 -15
- package/dist/src/storage/sqlite/session-repository.js +126 -102
- package/dist/src/storage/sqlite/session-task-plan-repository.d.ts +3 -3
- package/dist/src/storage/sqlite/session-task-plan-repository.js +21 -19
- package/dist/src/storage/sqlite/session-turn-replace-repository.d.ts +2 -2
- package/dist/src/storage/sqlite/session-turn-replace-repository.js +26 -22
- package/dist/src/storage/sqlite/transaction.js +12 -6
- package/dist/src/storage/sqlite/transcript-repository.d.ts +14 -14
- package/dist/src/storage/sqlite/transcript-repository.js +107 -102
- package/dist/src/storage/sqlite/user-people-repository.js +2 -1
- package/dist/src/storage/sqlite/user-trust-repository.js +2 -1
- package/dist/src/support/collect-support-report.js +7 -7
- package/dist/src/support/types.d.ts +2 -2
- package/dist/src/support/types.js +1 -1
- package/dist/src/tasks/execution-context.d.ts +2 -2
- package/dist/src/tasks/execution-context.js +3 -3
- package/dist/src/tasks/home-query-service.d.ts +2 -2
- package/dist/src/tasks/home-query-service.js +6 -6
- package/dist/src/tasks/index.js +6 -2
- package/dist/src/tasks/project-monitoring-service.js +2 -1
- package/dist/src/tasks/project-operating-view-service.js +2 -1
- package/dist/src/tasks/task-application-service.js +9 -4
- package/dist/src/tasks/task-change-events.js +7 -2
- package/dist/src/tasks/task-context-assembler.d.ts +2 -2
- package/dist/src/tasks/task-context-assembler.js +12 -9
- package/dist/src/tasks/task-context-repository.d.ts +1 -1
- package/dist/src/tasks/task-context-repository.js +4 -3
- package/dist/src/tasks/task-conversation-repository.d.ts +7 -7
- package/dist/src/tasks/task-conversation-repository.js +27 -26
- package/dist/src/tasks/task-deletion-service.js +2 -1
- package/dist/src/tasks/task-dependency-service.js +2 -1
- package/dist/src/tasks/task-handoff-service.d.ts +2 -2
- package/dist/src/tasks/task-handoff-service.js +16 -15
- package/dist/src/tasks/task-outbox-dispatcher.js +2 -1
- package/dist/src/tasks/task-read-model-projector.js +4 -2
- package/dist/src/tasks/task-repository.js +2 -1
- package/dist/src/tasks/task-run-coordinator.js +6 -5
- package/dist/src/tasks/task-run-dispatcher.d.ts +1 -1
- package/dist/src/tasks/task-run-dispatcher.js +4 -3
- package/dist/src/tasks/task-run-repository.d.ts +2 -2
- package/dist/src/tasks/task-run-repository.js +219 -212
- package/dist/src/tasks/task-signal-service.js +6 -2
- package/dist/src/tasks/task-workflow-coordinator.js +2 -1
- package/dist/src/tui/backends/embedded-backend.d.ts +33 -32
- package/dist/src/tui/backends/embedded-backend.js +95 -83
- package/dist/src/tui/backends/gateway-realtime-backend.d.ts +34 -33
- package/dist/src/tui/backends/gateway-realtime-backend.js +95 -78
- package/dist/src/tui/components/branch-summary.js +3 -3
- package/dist/src/tui/components/session-selector.d.ts +5 -5
- package/dist/src/tui/components/session-selector.js +7 -7
- package/dist/src/tui/components/tui-bottom-bar.js +1 -1
- package/dist/src/tui/components/tui-header.d.ts +1 -1
- package/dist/src/tui/components/tui-header.js +2 -2
- package/dist/src/tui/extension-host/autocomplete.d.ts +2 -2
- package/dist/src/tui/extension-host/autocomplete.js +4 -4
- package/dist/src/tui/extension-host/host.d.ts +1 -1
- package/dist/src/tui/extension-host/runtime-context.d.ts +1 -1
- package/dist/src/tui/extension-host/runtime-context.js +2 -2
- package/dist/src/tui/extension-host/runtime.d.ts +1 -1
- package/dist/src/tui/extension-host/runtime.js +6 -6
- package/dist/src/tui/tui-backend.d.ts +43 -39
- package/dist/src/tui/tui-command-formatters.d.ts +2 -2
- package/dist/src/tui/tui-command-formatters.js +10 -18
- package/dist/src/tui/tui-commands.d.ts +3 -3
- package/dist/src/tui/tui-commands.js +31 -33
- package/dist/src/tui/tui-empty-session-cleanup.d.ts +2 -3
- package/dist/src/tui/tui-empty-session-cleanup.js +7 -15
- package/dist/src/tui/tui-file-autocomplete.d.ts +1 -1
- package/dist/src/tui/tui-file-autocomplete.js +2 -2
- package/dist/src/tui/tui-new-session-preferences.js +2 -0
- package/dist/src/tui/tui-picker-overlay.d.ts +1 -1
- package/dist/src/tui/tui-picker-overlay.js +41 -53
- package/dist/src/tui/tui-picker-services.d.ts +3 -3
- package/dist/src/tui/tui-session-actions.d.ts +1 -1
- package/dist/src/tui/tui-session-actions.js +8 -17
- package/dist/src/tui/tui-session-format.js +4 -1
- package/dist/src/tui/tui-session-snapshot.d.ts +2 -2
- package/dist/src/tui/tui-session-snapshot.js +4 -4
- package/dist/src/tui/tui-settings.js +2 -0
- package/dist/src/tui/tui-startup-resources.d.ts +1 -1
- package/dist/src/tui/tui-startup-resources.js +4 -4
- package/dist/src/tui/tui-startup-text.js +1 -1
- package/dist/src/tui/tui-transcript-tree-picker.d.ts +1 -1
- package/dist/src/tui/tui-transcript-tree-picker.js +2 -2
- package/dist/src/tui/tui-types.d.ts +4 -2
- package/dist/src/tui/tui-types.js +2 -2
- package/dist/src/tui/tui.js +116 -114
- package/dist/src/user-context/access-policy.d.ts +1 -1
- package/dist/src/user-context/access-policy.js +6 -5
- package/dist/src/user-context/changes.js +9 -4
- package/dist/src/user-context/domain.d.ts +1 -1
- package/dist/src/user-context/relationship-continuity.d.ts +1 -1
- package/dist/src/user-context/relationship-continuity.js +1 -1
- package/dist/src/user-context/sources/repository.js +4 -2
- package/dist/src/user-model/capture/executor.d.ts +1 -1
- package/dist/src/user-model/capture/executor.js +3 -3
- package/dist/src/user-model/goals.js +2 -1
- package/dist/src/user-model/repository.js +2 -1
- package/dist/src/utils/global-singleton.js +4 -1
- package/dist/src/utils/logger/context.d.ts +1 -1
- package/dist/src/utils/logger/context.js +2 -2
- package/dist/src/utils/logger/log-store.js +2 -2
- package/dist/src/utils/logger/pino-record.js +6 -6
- package/dist/src/utils/logger/types.d.ts +6 -6
- package/dist/src/voice/platform-catalog.d.ts +81 -0
- package/dist/src/voice/platform-catalog.js +16 -0
- package/dist/src/voice/platform-settings.d.ts +4 -0
- package/dist/src/voice/platform-settings.js +120 -0
- package/dist/src/voice/platform-streams.d.ts +12 -0
- package/dist/src/voice/platform-streams.js +250 -0
- package/dist/src/voice/realtime/agentBroker.d.ts +6 -6
- package/dist/src/voice/realtime/agentBroker.js +6 -6
- package/dist/src/voice/realtime/agentEngine.js +6 -6
- package/dist/src/voice/realtime/memory-context.d.ts +2 -2
- package/dist/src/voice/realtime/memory-context.js +15 -15
- package/dist/src/voice/realtime/omniEngine.js +8 -5
- package/dist/src/voice/realtime/omniRoute.d.ts +1 -0
- package/dist/src/voice/realtime/omniRoute.js +11 -1
- package/dist/src/voice/realtime/persona-context.d.ts +1 -1
- package/dist/src/voice/realtime/persona-context.js +6 -6
- package/dist/src/voice/realtime/runtime.d.ts +1 -1
- package/dist/src/voice/realtime/runtime.js +28 -19
- package/dist/src/voice/realtime/runtime.types.d.ts +6 -6
- package/dist/src/voice/stt/providers/xopc-cloud-transcription.js +15 -8
- package/dist/src/voice/tts/providers/xopc-cloud-speech.js +12 -19
- package/dist/src/work-discovery/investigation-repository.js +4 -2
- package/dist/src/work-discovery/probe.js +1 -1
- package/dist/src/work-discovery/repository.js +7 -5
- package/dist/src/work-discovery/service.js +35 -31
- package/dist/src/work-discovery/types.d.ts +1 -1
- package/dist/src/workflows/context/workflow-context-snapshot-repository.js +2 -1
- package/dist/src/workflows/domain/event.d.ts +1 -1
- package/dist/src/workflows/domain/run.d.ts +5 -5
- package/dist/src/workflows/engine/projector.js +1 -1
- package/dist/src/workflows/engine/workflow-engine.d.ts +2 -2
- package/dist/src/workflows/engine/workflow-engine.js +15 -18
- package/dist/src/workflows/index.js +3 -3
- package/dist/src/workflows/project-presets/project-workflow-preset-repository.js +2 -1
- package/dist/src/workflows/service/run-view-to-snapshot.js +1 -1
- package/dist/src/workflows/service/workflow-run-service.d.ts +2 -2
- package/dist/src/workflows/service/workflow-run-service.js +53 -42
- package/dist/src/workflows/service/workflow-run-service.types.d.ts +2 -2
- package/dist/src/workflows/service/workflow-session-bridge.d.ts +2 -2
- package/dist/src/workflows/service/workflow-session-bridge.js +31 -31
- package/dist/src/workflows/service/workflow-session-key.d.ts +1 -1
- package/dist/src/workflows/service/workflow-session-key.js +4 -4
- package/dist/src/workflows/service/workflow-writeback-service.js +2 -1
- package/dist/src/workflows/store/event-store.js +4 -2
- package/dist/src/workflows/store/run-index-store.js +9 -8
- package/package.json +6 -3
- package/skills/creative/algorithmic-art/SKILL.md +7 -0
- package/skills/creative/frontend-design/SKILL.md +8 -0
- package/skills/creative/hatch-pet/SKILL.md +7 -0
- package/skills/creative/theme-factory/SKILL.md +8 -0
- package/skills/documents/doc-coauthoring/SKILL.md +7 -0
- package/skills/documents/docx/SKILL.md +7 -0
- package/skills/documents/pdf/SKILL.md +7 -0
- package/skills/documents/pptx/SKILL.md +7 -0
- package/skills/documents/xlsx/SKILL.md +9 -1
- package/skills/engineering/build-xopc-local-app/SKILL.md +7 -0
- package/skills/engineering/define-task/SKILL.md +7 -0
- package/skills/engineering/diagnose/SKILL.md +8 -0
- package/skills/engineering/tdd/SKILL.md +8 -0
- package/skills/tools/find-skills/SKILL.md +8 -0
- package/skills/tools/github/SKILL.md +7 -0
- package/skills/tools/summarize/SKILL.md +8 -0
- package/skills/tools/webapp-testing/SKILL.md +8 -1
- package/dist/gateway/static/root/assets/agent-defaults-settings-panel-CcmqK1Sc.js +0 -1
- package/dist/gateway/static/root/assets/agents-B_7PVt7S.js +0 -1
- package/dist/gateway/static/root/assets/api-COG_Tzpv.js +0 -1
- package/dist/gateway/static/root/assets/apps-page-6qxxKFsK.js +0 -1
- package/dist/gateway/static/root/assets/automations-workspace-BRQlU4qk.js +0 -6
- package/dist/gateway/static/root/assets/browser-settings-page-DDjbDeHQ.js +0 -8
- package/dist/gateway/static/root/assets/button-BA45yciM.js +0 -1
- package/dist/gateway/static/root/assets/capabilities-settings-panel-DM1Bcf1x.js +0 -8
- package/dist/gateway/static/root/assets/channels-settings-Bq36CUxL.js +0 -1
- package/dist/gateway/static/root/assets/connectors-page-L8JehrxF.js +0 -2
- package/dist/gateway/static/root/assets/desktop-pet-DtPNvznL.js +0 -1
- package/dist/gateway/static/root/assets/extension-settings-page-C75kCOqe.js +0 -1
- package/dist/gateway/static/root/assets/gateway-settings-BCF732TU.js +0 -1
- package/dist/gateway/static/root/assets/heartbeat-settings-C7fjiowt.js +0 -1
- package/dist/gateway/static/root/assets/home-page-DZXeXdUL.js +0 -1
- package/dist/gateway/static/root/assets/index-ChIrvv3t.js +0 -74
- package/dist/gateway/static/root/assets/index-R1VNlHjj.css +0 -2
- package/dist/gateway/static/root/assets/local-app-workbench-page-CAEKGTAg.js +0 -2
- package/dist/gateway/static/root/assets/locale-store-DlOv7896.js +0 -1
- package/dist/gateway/static/root/assets/logs-page-DHZ4BEkG.js +0 -2
- package/dist/gateway/static/root/assets/messages-Ls1Aaiqd.js +0 -3
- package/dist/gateway/static/root/assets/note-detail-panel-BcWq3ddw.js +0 -5
- package/dist/gateway/static/root/assets/notes-page-DfZ8QWyv.js +0 -8
- package/dist/gateway/static/root/assets/page-tabs-BG39KidE.js +0 -1
- package/dist/gateway/static/root/assets/popover-select-DGmMQt4t.js +0 -1
- package/dist/gateway/static/root/assets/proactive-page-D2U_xQaS.js +0 -1
- package/dist/gateway/static/root/assets/project-detail-page-CzlGTW4F.js +0 -1
- package/dist/gateway/static/root/assets/projects-page-mQsM-TsP.js +0 -1
- package/dist/gateway/static/root/assets/remote-access-hub-Cb56JcO1.js +0 -1
- package/dist/gateway/static/root/assets/sessions-page-Hj9uFcIO.js +0 -1
- package/dist/gateway/static/root/assets/settings-advanced-gate-CV4-_EVA.js +0 -1
- package/dist/gateway/static/root/assets/settings-form-section-wcAdCkK8.js +0 -1
- package/dist/gateway/static/root/assets/settings-page-layout-DYelDcMV.js +0 -1
- package/dist/gateway/static/root/assets/setup-status-panel-DzxmsaQG.js +0 -1
- package/dist/gateway/static/root/assets/shares-settings-xlJh1ccG.js +0 -1
- package/dist/gateway/static/root/assets/skill-reload-api-wSXJRSxX.js +0 -1
- package/dist/gateway/static/root/assets/skills-page-AmqtBJo7.js +0 -2
- package/dist/gateway/static/root/assets/task-detail-page-sQpwq5-c.js +0 -1
- package/dist/gateway/static/root/assets/tunnel-api-Boajol0M.js +0 -1
- package/dist/gateway/static/root/assets/user-model-page-DIEHnAER.js +0 -2
- package/dist/gateway/static/root/assets/workflows-page-DgRNIyr7.js +0 -6
- package/dist/src/routing/session-key-utils.d.ts +0 -23
- package/dist/src/routing/session-key-utils.js +0 -85
- package/dist/src/session/session-id.d.ts +0 -3
- package/dist/src/session/session-id.js +0 -10
- package/dist/src/storage/sqlite/migrations/002_add_flush_columns.sql +0 -3
- package/dist/src/storage/sqlite/migrations/003_add_note_markdown_meta.sql +0 -4
- package/dist/src/storage/sqlite/migrations/004_add_session_type_metadata.sql +0 -15
- package/dist/src/storage/sqlite/migrations/005_add_note_agent_contexts.sql +0 -10
- package/dist/src/storage/sqlite/migrations/006_add_goals.sql +0 -108
- package/dist/src/storage/sqlite/migrations/007_goal_run_judge_schema.sql +0 -4
- package/dist/src/storage/sqlite/migrations/008_goal_queue_workflow_runs.sql +0 -53
- package/dist/src/storage/sqlite/migrations/009_cron_jobs.sql +0 -24
- package/dist/src/storage/sqlite/migrations/010_session_id_identity.sql +0 -30
- package/dist/src/storage/sqlite/migrations/011_goal_context_messages.sql +0 -8
- package/dist/src/storage/sqlite/migrations/012_memory_records.sql +0 -63
- package/dist/src/storage/sqlite/migrations/013_memory_trace_events.sql +0 -21
- package/dist/src/storage/sqlite/migrations/014_memory_record_governance.sql +0 -10
- package/dist/src/storage/sqlite/migrations/015_memory_trace_feedback.sql +0 -4
- package/dist/src/storage/sqlite/migrations/016_automations.sql +0 -47
- package/dist/src/storage/sqlite/migrations/017_automation_run_events.sql +0 -14
- package/dist/src/storage/sqlite/migrations/018_automation_safety.sql +0 -1
- package/dist/src/storage/sqlite/migrations/019_projects.sql +0 -40
- package/dist/src/storage/sqlite/migrations/020_project_default_agent.sql +0 -1
- package/dist/src/storage/sqlite/migrations/021_projects_fts.sql +0 -21
- package/dist/src/storage/sqlite/migrations/022_work_items.sql +0 -61
- package/dist/src/storage/sqlite/migrations/023_work_item_attachments.sql +0 -15
- package/dist/src/storage/sqlite/migrations/024_activity_events.sql +0 -62
- package/dist/src/storage/sqlite/migrations/025_project_pinned_at.sql +0 -5
- package/dist/src/storage/sqlite/migrations/026_goal_contracts.sql +0 -10
- package/dist/src/storage/sqlite/migrations/027_mobile_notifications.sql +0 -43
- package/dist/src/storage/sqlite/migrations/028_goal_evidence_requirements.sql +0 -47
- package/dist/src/storage/sqlite/migrations/029_user_understanding.sql +0 -133
- package/dist/src/storage/sqlite/migrations/030_connectors.sql +0 -94
- package/dist/src/storage/sqlite/migrations/031_connector_approvals.sql +0 -24
- package/dist/src/storage/sqlite/migrations/032_connector_webhook_deliveries.sql +0 -15
- package/dist/src/storage/sqlite/migrations/033_user_trust_policies.sql +0 -6
- package/dist/src/storage/sqlite/migrations/034_allow_global_auto_trust.sql +0 -14
- package/dist/src/storage/sqlite/migrations/035_user_profile_prompt_state.sql +0 -7
- package/dist/src/storage/sqlite/migrations/036_goal_outcome_metric.sql +0 -12
- package/dist/src/storage/sqlite/migrations/037_connected_knowledge_pipeline.sql +0 -47
- package/dist/src/storage/sqlite/migrations/038_user_owned_memory.sql +0 -68
- package/dist/src/storage/sqlite/migrations/039_memory_reference_consents.sql +0 -19
- package/dist/src/storage/sqlite/migrations/040_local_apps.sql +0 -32
- package/dist/src/storage/sqlite/migrations/041_local_app_release_lifecycle.sql +0 -17
- package/dist/src/storage/sqlite/migrations/042_work_discovery.sql +0 -41
- package/dist/src/storage/sqlite/migrations/043_local_app_acceptance_runs.sql +0 -16
- package/dist/src/storage/sqlite/migrations/044_repair_work_discovery_foreign_keys.sql +0 -75
- package/dist/src/storage/sqlite/migrations/045_extension_ui_grants.sql +0 -13
- package/dist/src/storage/sqlite/migrations/046_work_discovery_feedback.sql +0 -13
- package/dist/src/storage/sqlite/migrations/047_work_discovery_sources.sql +0 -16
- package/dist/src/storage/sqlite/migrations/048_work_understanding_investigations.sql +0 -40
- package/dist/src/storage/sqlite/migrations/049_work_understanding_threads.sql +0 -52
- package/dist/src/storage/sqlite/migrations/050_work_discovery_source_refreshes.sql +0 -15
- package/dist/src/storage/sqlite/migrations/051_focus_watches.sql +0 -26
- package/dist/src/storage/sqlite/migrations/052_proactive_insights.sql +0 -25
- package/dist/src/storage/sqlite/migrations/053_browser_recipes.sql +0 -45
- package/dist/src/storage/sqlite/migrations/054_task_outcomes.sql +0 -24
- package/dist/src/storage/sqlite/migrations/055_relationship_settings.sql +0 -14
- package/dist/src/storage/sqlite/migrations/056_task_verification.sql +0 -6
- package/dist/src/storage/sqlite/migrations/057_interaction_states.sql +0 -11
- package/dist/src/storage/sqlite/migrations/058_proactive_value.sql +0 -3
- package/dist/src/storage/sqlite/migrations/059_composer_input_history.sql +0 -8
- package/dist/src/storage/sqlite/migrations/060_remove_runtime_transcript_messages.sql +0 -45
- package/dist/src/storage/sqlite/migrations/061_drop_compaction_checkpoints.sql +0 -2
- package/dist/src/storage/sqlite/migrations/062_connector_learning_jobs.sql +0 -27
- package/dist/src/storage/sqlite/migrations/063_knowledge_collection_scopes.sql +0 -14
- package/dist/src/storage/sqlite/migrations/064_user_claims.sql +0 -60
- package/dist/src/storage/sqlite/migrations/065_knowledge_item_scope_identity.sql +0 -116
- package/dist/src/storage/sqlite/migrations/066_first_class_focuses.sql +0 -126
- package/dist/src/storage/sqlite/migrations/067_home_attention_acknowledgements.sql +0 -9
- package/dist/src/storage/sqlite/migrations/068_proactive_event_spine.sql +0 -71
- package/dist/src/storage/sqlite/migrations/069_proactive_scenario_control.sql +0 -69
- package/dist/src/storage/sqlite/migrations/070_proactive_execution.sql +0 -55
- package/dist/src/storage/sqlite/migrations/071_proactive_inbox.sql +0 -45
- package/dist/src/storage/sqlite/migrations/072_proactive_judgments.sql +0 -14
- package/dist/src/storage/sqlite/migrations/073_enable_default_proactive_scenarios.sql +0 -13
- package/dist/src/storage/sqlite/migrations/074_deduplicate_blocked_work_routing.sql +0 -5
- package/dist/src/storage/sqlite/migrations/075_connector_sync_policies.sql +0 -13
- package/dist/src/storage/sqlite/migrations/076_meeting_preparation_scenario.sql +0 -29
- package/dist/src/storage/sqlite/migrations/077_proactive_insight_fingerprints.sql +0 -4
- package/dist/src/storage/sqlite/migrations/078_discussion_captures.sql +0 -64
- package/dist/src/storage/sqlite/migrations/079_discussion_follow_up_scenario.sql +0 -29
- package/dist/src/storage/sqlite/migrations/080_task_outcome_context.sql +0 -15
- package/dist/src/storage/sqlite/migrations/081_project_monitoring_policies.sql +0 -10
- package/dist/src/storage/sqlite/migrations/082_one_click_live_discussions.sql +0 -100
- package/dist/src/storage/sqlite/migrations/083_session_task_plans.sql +0 -9
- package/dist/src/storage/sqlite/migrations/084_work_intake_lifecycle.sql +0 -26
- package/dist/src/storage/sqlite/migrations/085_task_outcome_projection.sql +0 -19
- package/dist/src/storage/sqlite/migrations/086_outcome_aggregates.sql +0 -168
- package/dist/src/storage/sqlite/migrations/087_context_snapshots.sql +0 -21
- package/dist/src/storage/sqlite/migrations/088_automation_execution_deadlines.sql +0 -5
- package/dist/src/storage/sqlite/migrations/089_automation_run_leases.sql +0 -8
- package/dist/src/storage/sqlite/migrations/090_outcome_contract_judgment.sql +0 -2
- package/dist/src/storage/sqlite/migrations/091_context_allocation.sql +0 -1
- package/dist/src/storage/sqlite/migrations/092_outcome_execution_runtime.sql +0 -88
- package/dist/src/storage/sqlite/migrations/093_remove_legacy_goals.sql +0 -174
- package/dist/src/storage/sqlite/migrations/094_outcome_judgment_and_authority.sql +0 -3
- package/dist/src/storage/sqlite/migrations/095_session_input_queue.sql +0 -35
- package/dist/src/storage/sqlite/migrations/096_drop_work_intakes.sql +0 -6
- package/dist/src/storage/sqlite/migrations/097_work_item_lifecycle.sql +0 -194
- package/dist/src/storage/sqlite/migrations/098_discussion_note_documents.sql +0 -99
- package/dist/src/storage/sqlite/migrations/099_task_model.sql +0 -500
- package/dist/src/storage/sqlite/migrations/100_project_task_taskrun.sql +0 -763
- package/dist/src/storage/sqlite/migrations/101_session_response_language.sql +0 -1
- package/dist/src/storage/sqlite/migrations/102_session_user_context_mode.sql +0 -2
- package/dist/src/storage/sqlite/migrations/103_finalize_structured_memory.sql +0 -3
- package/dist/src/storage/sqlite/migrations/104_turn_memory_feedback.sql +0 -77
- package/dist/src/storage/sqlite/migrations/105_dreaming_ledger.sql +0 -34
- package/dist/src/storage/sqlite/migrations/106_dreaming_run_reproducibility.sql +0 -2
- package/dist/src/storage/sqlite/migrations/107_connector_accounts.sql +0 -146
- package/dist/src/storage/sqlite/migrations/108_repair_user_memory_provider.sql +0 -18
- package/dist/src/storage/sqlite/migrations/109_endpoint_principals.sql +0 -14
- package/dist/src/storage/sqlite/migrations/110_session_input_origin.sql +0 -43
- package/dist/src/storage/sqlite/migrations/111_endpoint_tool_invocations.sql +0 -18
- package/dist/src/storage/sqlite/migrations/112_endpoint_instance_bindings.sql +0 -8
- package/dist/src/storage/sqlite/migrations/113_memory_evidence_single_source.sql +0 -76
- package/dist/src/storage/sqlite/migrations/114_user_context_domain.sql +0 -193
- package/dist/src/storage/sqlite/migrations/115_remove_legacy_user_context.sql +0 -6
- package/dist/src/storage/sqlite/migrations/116_structured_context_consolidation.sql +0 -38
- package/dist/src/storage/sqlite/migrations/117_unified_understanding_sources.sql +0 -110
- package/dist/src/storage/sqlite/migrations/118_task_board_rank.sql +0 -6
- package/dist/src/storage/sqlite/migrations/119_proactive_disposition.sql +0 -13
- package/dist/src/storage/sqlite/migrations/120_task_conversation.sql +0 -112
- package/dist/src/storage/sqlite/migrations/121_automation_inbox.sql +0 -24
- package/dist/src/storage/sqlite/migrations/122_automation_session_projects.sql +0 -18
- package/dist/src/storage/sqlite/migrations/123_remove_v2_compaction_boundaries.sql +0 -25
- package/dist/src/storage/sqlite/migrations/124_workflow_context_snapshots.sql +0 -15
- package/dist/src/storage/sqlite/migrations/125_project_workflow_presets.sql +0 -12
- package/dist/src/storage/sqlite/migrations/126_focus_context_governance.sql +0 -72
- package/dist/src/storage/sqlite/migrations/127_context_object_origin.sql +0 -36
- package/dist/src/storage/sqlite/migrations/128_context_extraction.sql +0 -73
- package/dist/src/storage/sqlite/migrations/129_focus_versions.sql +0 -51
- package/dist/src/storage/sqlite/migrations/130_context_evidence_provenance.sql +0 -18
- package/dist/src/storage/sqlite/migrations/131_session_input_contexts.sql +0 -2
- package/dist/src/storage/sqlite/migrations/132_transcript_source_context_metadata.sql +0 -34
- package/dist/src/storage/sqlite/migrations/133_archive_legacy_work_discovery_profile_facts.sql +0 -11
- package/dist/src/storage/sqlite/migrations/134_memory_provenance.sql +0 -18
- package/dist/src/storage/sqlite/migrations/135_user_people.sql +0 -59
- package/dist/src/storage/sqlite/migrations/136_product_notifications.sql +0 -79
- package/dist/src/storage/sqlite/migrations/137_understanding_status_audit.sql +0 -71
- package/dist/src/storage/sqlite/migrations/138_device_access.sql +0 -96
- package/dist/src/storage/sqlite/migrations/139_turn_outcome_artifact_backfill.sql +0 -231
- package/dist/src/storage/sqlite/migrations/140_endpoint_session_bindings.sql +0 -8
- package/dist/src/storage/sqlite/migrations/141_device_pairing_approval.sql +0 -17
- package/dist/src/storage/sqlite/migrations/142_session_input_instance.sql +0 -1
- package/dist/src/storage/sqlite/migrations/143_fixed_session_model.sql +0 -1
- package/dist/src/storage/sqlite/migrations/144_execution_environments.sql +0 -59
- package/dist/src/storage/sqlite/migrations/145_project_execution_mode.sql +0 -5
- package/dist/src/storage/sqlite/migrations/146_understanding_focus_exclusions.sql +0 -9
- package/dist/src/storage/sqlite/migrations/147_durable_application_state.sql +0 -39
- package/dist/src/storage/sqlite/migrations/148_user_model_foundation.sql +0 -554
- package/dist/src/storage/sqlite/migrations/149_separate_source_index_from_memory.sql +0 -18
- package/dist/src/storage/sqlite/migrations/150_session_connection_waits.sql +0 -47
- package/dist/src/storage/sqlite/migrations/151_proactive_scope_cleanup.sql +0 -6
- package/dist/src/storage/sqlite/migrations/152_proactive_scenario_contract.sql +0 -140
- package/dist/src/storage/sqlite/migrations/153_browser_control_v2.sql +0 -45
- package/dist/src/storage/sqlite/migrations/154_session_clarification_waits.sql +0 -60
- package/dist/src/storage/sqlite/migrations/155_browser_extension.sql +0 -120
- package/dist/src/storage/sqlite/migrations/156_browser_tab_bindings.sql +0 -14
- package/dist/src/storage/sqlite/migrations/157_browser_endpoint_principals.sql +0 -50
- package/dist/src/storage/sqlite/migrations/158_browser_native_enrollment.sql +0 -4
- package/dist/src/storage/sqlite/migrations/159_proactive_controls.sql +0 -68
- package/dist/src/storage/sqlite/migrations/160_proactive_web_push.sql +0 -27
- package/dist/src/storage/sqlite/migrations/161_proactive_delivery_and_lifecycle.sql +0 -51
- package/dist/src/storage/sqlite/migrations/162_proactive_product.sql +0 -7
- package/dist/src/storage/sqlite/migrations/163_proactive_follow_ups.sql +0 -29
- package/dist/src/storage/sqlite/migrations/164_browser_sessions.sql +0 -8
- package/dist/src/storage/sqlite/migrations/165_device_pairing_target.sql +0 -40
- package/dist/src/storage/sqlite/migrations/__tests__/mobile-discussion-source.test.ts +0 -20
- package/dist/src/storage/sqlite/migrations/discover.ts +0 -52
- package/dist/src/storage/sqlite/migrations/errors.ts +0 -32
- package/dist/src/storage/sqlite/migrations/runner.ts +0 -194
- 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,
|
|
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)\/([
|
|
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(
|
|
17980
|
-
const params = new URLSearchParams(
|
|
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
|
-
|
|
17996
|
-
|
|
17997
|
-
|
|
17998
|
-
|
|
17999
|
-
|
|
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(
|
|
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(
|
|
18065
|
+
(store) => store.get(conversationId)
|
|
18040
18066
|
);
|
|
18041
18067
|
} finally {
|
|
18042
18068
|
database.close();
|
|
18043
18069
|
}
|
|
18044
18070
|
}
|
|
18045
|
-
async function writeBrowserOutbox(
|
|
18071
|
+
async function writeBrowserOutbox(conversationId, value) {
|
|
18046
18072
|
const database = await openDatabase();
|
|
18047
18073
|
try {
|
|
18048
|
-
await transactionResult(database, "readwrite", (store) => store.put(value,
|
|
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(
|
|
18079
|
+
async function deleteBrowserOutbox(conversationId) {
|
|
18054
18080
|
const database = await openDatabase();
|
|
18055
18081
|
try {
|
|
18056
|
-
await transactionResult(database, "readwrite", (store) => store.delete(
|
|
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,
|
|
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.
|
|
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
|
-
|
|
18262
|
-
|
|
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
|
|
18336
|
+
const conversationId = this.snapshot.conversationId;
|
|
18311
18337
|
const endpointId = this.turnClaim?.endpointId;
|
|
18312
|
-
if (!
|
|
18313
|
-
const desired = `${
|
|
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(
|
|
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.
|
|
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.
|
|
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(
|
|
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
|
-
|
|
18371
|
-
|
|
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]:
|
|
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}`]:
|
|
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.
|
|
18423
|
+
if (this.snapshot.conversationId !== conversationId) return;
|
|
18398
18424
|
await this.bindSessionEndpoint();
|
|
18399
|
-
if (this.snapshot.
|
|
18425
|
+
if (this.snapshot.conversationId !== conversationId) return;
|
|
18400
18426
|
const run = await json(await gatewayFetch(
|
|
18401
|
-
`/api/sessions/${encodeURIComponent(
|
|
18427
|
+
`/api/sessions/${encodeURIComponent(conversationId)}/run`
|
|
18402
18428
|
));
|
|
18403
|
-
if (this.snapshot.
|
|
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.
|
|
18407
|
-
this.update({ pendingDelivery: Boolean(await readBrowserOutbox(
|
|
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.
|
|
18436
|
+
if (this.snapshot.conversationId !== conversationId) return;
|
|
18411
18437
|
throw cause;
|
|
18412
18438
|
} finally {
|
|
18413
|
-
if (this.snapshot.
|
|
18414
|
-
await chrome.storage.session.set({ [ACTIVE_CHAT_KEY]:
|
|
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
|
|
18420
|
-
return this.snapshot.
|
|
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.
|
|
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
|
|
18465
|
+
const conversationId = this.snapshot.conversationId;
|
|
18440
18466
|
await this.bindSessionEndpoint();
|
|
18441
|
-
if (this.snapshot.
|
|
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
|
-
|
|
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(
|
|
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(
|
|
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(
|
|
18511
|
+
await deleteBrowserOutbox(conversationId);
|
|
18486
18512
|
outboxStored = false;
|
|
18487
|
-
if (this.snapshot.
|
|
18488
|
-
const runId = response.payload.state.inputs?.find((input) => input.clientMessageId === clientMessageId)?.runId ?? response.payload.state.activeRunId ?? await this.waitForRun(
|
|
18489
|
-
if (this.snapshot.
|
|
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.
|
|
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.
|
|
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(
|
|
18510
|
-
if (this.snapshot.
|
|
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.
|
|
18539
|
+
if (this.snapshot.conversationId === conversationId) this.update({ submitting: false });
|
|
18514
18540
|
}
|
|
18515
18541
|
}
|
|
18516
18542
|
async recoverOutbox() {
|
|
18517
|
-
const
|
|
18518
|
-
if (!
|
|
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(
|
|
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(
|
|
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(
|
|
18538
|
-
if (this.snapshot.
|
|
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(
|
|
18541
|
-
if (this.snapshot.
|
|
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.
|
|
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(
|
|
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
|
|
18569
|
-
if (!
|
|
18594
|
+
const conversationId = this.snapshot.conversationId;
|
|
18595
|
+
if (!conversationId) return;
|
|
18570
18596
|
const result = await json(
|
|
18571
|
-
await gatewayFetch(`/api/sessions/${encodeURIComponent(
|
|
18597
|
+
await gatewayFetch(`/api/sessions/${encodeURIComponent(conversationId)}/input-state`)
|
|
18572
18598
|
);
|
|
18573
|
-
if (this.snapshot.
|
|
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.
|
|
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.
|
|
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.
|
|
18622
|
+
if (this.snapshot.conversationId === key) await this.refreshInputs();
|
|
18597
18623
|
}
|
|
18598
18624
|
}
|
|
18599
18625
|
async cancelInput(id, version) {
|
|
18600
|
-
const key = this.snapshot.
|
|
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.
|
|
18630
|
+
if (this.snapshot.conversationId === key) await this.reloadMessages();
|
|
18605
18631
|
} finally {
|
|
18606
|
-
if (this.snapshot.
|
|
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
|
|
18652
|
+
const conversationId = this.snapshot.conversationId;
|
|
18627
18653
|
const current = this.snapshot.modelConfig;
|
|
18628
|
-
if (!
|
|
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
|
|
18654
|
-
if (!
|
|
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(
|
|
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.
|
|
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
|
|
18703
|
+
const conversationId = this.snapshot.conversationId;
|
|
18678
18704
|
const binding = this.snapshot.tabBinding;
|
|
18679
|
-
if (!
|
|
18680
|
-
await json(await gatewayFetch(`/api/browser/tab-bindings/${encodeURIComponent(
|
|
18681
|
-
if (this.snapshot.
|
|
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(
|
|
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(
|
|
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
|
|
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.
|
|
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
|
|
18723
|
-
if (
|
|
18724
|
-
this.update({ clarification: mapClarification(data,
|
|
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
|
|
18756
|
-
if (!
|
|
18757
|
-
const result = await json(await gatewayFetch(`/api/sessions/${encodeURIComponent(
|
|
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.
|
|
18763
|
-
const session = this.snapshot.sessions.find((candidate) => candidate.key ===
|
|
18764
|
-
this.update({ messages,
|
|
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
|
|
18789
|
-
if (!
|
|
18814
|
+
const conversationId = this.snapshot.conversationId;
|
|
18815
|
+
if (!conversationId) return;
|
|
18790
18816
|
const result = await json(await gatewayFetch(
|
|
18791
|
-
`/api/sessions/${encodeURIComponent(
|
|
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.
|
|
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
|
|
18832
|
+
const conversationId = this.snapshot.conversationId;
|
|
18807
18833
|
const current = this.snapshot.modelConfig;
|
|
18808
|
-
if (!
|
|
18834
|
+
if (!conversationId || !current) return;
|
|
18809
18835
|
const result = await json(await gatewayFetch(
|
|
18810
|
-
`/api/sessions/${encodeURIComponent(
|
|
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.
|
|
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
|
|
18831
|
-
if (!
|
|
18856
|
+
const conversationId = this.snapshot.conversationId;
|
|
18857
|
+
if (!conversationId) return;
|
|
18832
18858
|
const result = await json(await gatewayFetch(
|
|
18833
|
-
`/api/sessions/${encodeURIComponent(
|
|
18859
|
+
`/api/sessions/${encodeURIComponent(conversationId)}/clarification`
|
|
18834
18860
|
));
|
|
18835
|
-
if (this.snapshot.
|
|
18836
|
-
this.update({ clarification: mapClarification(result.payload,
|
|
18861
|
+
if (this.snapshot.conversationId === conversationId) {
|
|
18862
|
+
this.update({ clarification: mapClarification(result.payload, conversationId) });
|
|
18837
18863
|
}
|
|
18838
18864
|
}
|
|
18839
18865
|
async reloadTabBinding() {
|
|
18840
|
-
const
|
|
18841
|
-
if (!
|
|
18842
|
-
const response = await gatewayFetch(`/api/browser/tab-bindings/${encodeURIComponent(
|
|
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.
|
|
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.
|
|
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
|
|
18854
|
-
if (!
|
|
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?
|
|
18885
|
+
`/api/browser/approvals?conversationId=${encodeURIComponent(conversationId)}`
|
|
18860
18886
|
));
|
|
18861
|
-
if (this.snapshot.
|
|
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
|
|
18867
|
-
if (!
|
|
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.
|
|
18896
|
+
if (this.snapshot.conversationId !== conversationId || this.snapshot.runId !== runId) return;
|
|
18871
18897
|
const run = await json(await gatewayFetch(
|
|
18872
|
-
`/api/sessions/${encodeURIComponent(
|
|
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.
|
|
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 = (
|
|
27667
|
-
const draftKey = keyForSession(snapshot.
|
|
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) =>
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
27918
|
+
if (!snapshot.conversationId) {
|
|
27893
27919
|
await client.createSession();
|
|
27894
|
-
targetKey = keyForSession(client.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
28595
|
+
if (!client.currentConversationId) {
|
|
28570
28596
|
const payload = drafts.get(draftKey);
|
|
28571
28597
|
await client.createSession();
|
|
28572
|
-
drafts.update(keyForSession(client.
|
|
28598
|
+
drafts.update(keyForSession(client.currentConversationId), () => payload);
|
|
28573
28599
|
drafts.update(draftKey, () => EMPTY_DRAFT);
|
|
28574
28600
|
}
|
|
28575
28601
|
await client.updateModel(model);
|