@xopcai/xopc 0.0.284 → 0.0.286
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/dist/browser-ext/dist/assets/{auth-DB30ywek.js → auth-BXCWrPlg.js} +1 -1
- 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 +136 -136
- 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-CwbIMGLY.js → activity-store-xOhV8FHx.js} +1 -1
- package/dist/gateway/static/root/assets/{agent-avatar-dicebear-DjiOld-S.js → agent-avatar-dicebear-BzQbYWEj.js} +1 -1
- package/dist/gateway/static/root/assets/agent-defaults-settings-panel-BxR5eog4.js +1 -0
- package/dist/gateway/static/root/assets/agents-Dx1om1eN.js +1 -0
- package/dist/gateway/static/root/assets/{api-3lphBVuY.js → api-CVJQLBv9.js} +1 -1
- package/dist/gateway/static/root/assets/api-q1kIMCLW.js +1 -0
- package/dist/gateway/static/root/assets/{app-management-settings-panel-B2nwCXxE.js → app-management-settings-panel-CTyuXkNC.js} +1 -1
- package/dist/gateway/static/root/assets/{appearance-settings-BXO4Ej88.js → appearance-settings-Tk-GJtvF.js} +1 -1
- package/dist/gateway/static/root/assets/apps-page-BA-7OrhJ.js +1 -0
- package/dist/gateway/static/root/assets/{archive-plugin-6ZRqNjla.js → archive-plugin-O49jeeXo.js} +1 -1
- package/dist/gateway/static/root/assets/{attachment-load-CmPZalcW.js → attachment-load-r9lBF2tW.js} +1 -1
- package/dist/gateway/static/root/assets/{automations-page-Bc3WbK5n.js → automations-page-CFFLXYgS.js} +1 -1
- package/dist/gateway/static/root/assets/automations-workspace-DUZE1NOH.js +6 -0
- package/dist/gateway/static/root/assets/{binary-plugins-OWR6cxpc.js → binary-plugins-BpM43vsn.js} +1 -1
- package/dist/gateway/static/root/assets/{block-editor-Ca-tDQXm.js → block-editor-DFrfEcGw.js} +3 -3
- package/dist/gateway/static/root/assets/{browser-automation-inputs-Dxy2_p3U.js → browser-automation-inputs-CyHGQwxQ.js} +1 -1
- package/dist/gateway/static/root/assets/{browser-automations-page-CibQIxpi.js → browser-automations-page-CPkOWfM9.js} +2 -2
- package/dist/gateway/static/root/assets/browser-settings-page-BOcseZxg.js +8 -0
- package/dist/gateway/static/root/assets/button-CGlRPNzi.js +1 -0
- package/dist/gateway/static/root/assets/capabilities-settings-panel-ohEV64hG.js +8 -0
- package/dist/gateway/static/root/assets/channels-settings-UOf9mgqt.js +1 -0
- package/dist/gateway/static/root/assets/{channels-status-swr-Bh-G9mdZ.js → channels-status-swr-BArPeImO.js} +1 -1
- package/dist/gateway/static/root/assets/{chat-terminal-dock-lbzbSpV3.js → chat-terminal-dock-D5Aka4S8.js} +2 -2
- package/dist/gateway/static/root/assets/connectors-page-BEQR0NRq.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-tYvbTfZT.js → date-picker-DNtRu6EB.js} +1 -1
- package/dist/gateway/static/root/assets/{dependency-picker-B8yo7-7V.js → dependency-picker-Dng3dIQa.js} +1 -1
- package/dist/gateway/static/root/assets/desktop-pet-BicYycxy.js +1 -0
- package/dist/gateway/static/root/assets/{desktop-pet-settings-DNeVGZNp.js → desktop-pet-settings-BEse55eX.js} +1 -1
- package/dist/gateway/static/root/assets/device-pairing-wizard-be30HuFI.js +1 -0
- package/dist/gateway/static/root/assets/{extension-debug-page-CiK0QI2p.js → extension-debug-page-YzhYyuay.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-page-CirPNHJd.js → extension-page-CEXVIkDl.js} +1 -1
- package/dist/gateway/static/root/assets/extension-settings-page-CrlbgK8g.js +1 -0
- package/dist/gateway/static/root/assets/{gateway-config-swr-Co4hHe0i.js → gateway-config-swr-BNuoHXiZ.js} +1 -1
- package/dist/gateway/static/root/assets/gateway-settings-CDJY1AOW.js +1 -0
- package/dist/gateway/static/root/assets/{gateway-startup-retry-DBPNJG-e.js → gateway-startup-retry-zMPfje0n.js} +1 -1
- package/dist/gateway/static/root/assets/heartbeat-settings-BtxitqZ3.js +1 -0
- package/dist/gateway/static/root/assets/home-page-_oqo0pNR.js +1 -0
- package/dist/gateway/static/root/assets/{image-generation-api-D0rMTumD.js → image-generation-api-B_Tyx74A.js} +1 -1
- package/dist/gateway/static/root/assets/imports-page-eZciuLw_.js +1 -0
- package/dist/gateway/static/root/assets/index--YC42LAz.css +2 -0
- package/dist/gateway/static/root/assets/index-fVtuw2o9.js +75 -0
- package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-CMUaF61L.js → keyboard-shortcuts-settings-B796W039.js} +1 -1
- package/dist/gateway/static/root/assets/local-app-workbench-page-Z8mpau9d.js +2 -0
- package/dist/gateway/static/root/assets/{local-apps-page-CHxyT09t.js → local-apps-page-DXmY5jwM.js} +1 -1
- package/dist/gateway/static/root/assets/locale-store-D0001I7p.js +1 -0
- package/dist/gateway/static/root/assets/logs-page-BGOO8ouT.js +2 -0
- package/dist/gateway/static/root/assets/{management-settings-jXbA2S54.js → management-settings-b1MG7s-3.js} +1 -1
- package/dist/gateway/static/root/assets/{markdown-view-CKInRsDh.js → markdown-view-2txE_Blz.js} +1 -1
- package/dist/gateway/static/root/assets/{media-plugins-BaPkSvW7.js → media-plugins-CDEf3ksI.js} +1 -1
- package/dist/gateway/static/root/assets/messages-BWANv-N-.js +3 -0
- package/dist/gateway/static/root/assets/note-detail-panel-Bm33_3xJ.js +5 -0
- package/dist/gateway/static/root/assets/notes-page-C32-xssK.js +8 -0
- package/dist/gateway/static/root/assets/page-tabs-Bi_-DA5J.js +1 -0
- package/dist/gateway/static/root/assets/popover-select-DldSX8GX.js +1 -0
- package/dist/gateway/static/root/assets/{preview-open-alternatives-DzgF1yYO.js → preview-open-alternatives-Dhfdf14p.js} +1 -1
- package/dist/gateway/static/root/assets/proactive-page-BNouL7Tv.js +1 -0
- package/dist/gateway/static/root/assets/{product-open-page-iQ-eW6Aj.js → product-open-page-BkbZBqBr.js} +1 -1
- package/dist/gateway/static/root/assets/project-detail-page-CZ7glGYw.js +1 -0
- package/dist/gateway/static/root/assets/projects-page-DP3ZINZz.js +1 -0
- package/dist/gateway/static/root/assets/{registry-api-DMNudT60.js → registry-api-icwoEKYB.js} +1 -1
- package/dist/gateway/static/root/assets/remote-access-hub-xqJcPdOO.js +1 -0
- package/dist/gateway/static/root/assets/{runtime-tools-settings-panel-u_wVepf7.js → runtime-tools-settings-panel-bmgxwWpW.js} +2 -2
- package/dist/gateway/static/root/assets/{schema-form-YdZj2xdI.js → schema-form-DoZeepCg.js} +1 -1
- package/dist/gateway/static/root/assets/sessions-page-BaxIfjpm.js +1 -0
- package/dist/gateway/static/root/assets/settings-advanced-gate-Cy3Ab3Vg.js +1 -0
- package/dist/gateway/static/root/assets/settings-form-section-sw2bbS2b.js +1 -0
- package/dist/gateway/static/root/assets/{settings-page-CV8kVdnE.js → settings-page-BWF8uac0.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-BuYto2mT.js +1 -0
- package/dist/gateway/static/root/assets/{share-preview-page-BHwjHlrV.js → share-preview-page-BIHYD6-O.js} +1 -1
- package/dist/gateway/static/root/assets/shares-settings-DKtWUneq.js +1 -0
- package/dist/gateway/static/root/assets/skill-reload-api-Dn7ElMUk.js +1 -0
- package/dist/gateway/static/root/assets/{skills-page-DRKdb6O5.js → skills-page-D-7UtJIc.js} +1 -1
- package/dist/gateway/static/root/assets/{skills-page.utils-DYfaLtts.js → skills-page.utils-dvue6Ish.js} +1 -1
- package/dist/gateway/static/root/assets/{system-settings-panel-CWrWpKV-.js → system-settings-panel-DCyxPWCl.js} +1 -1
- package/dist/gateway/static/root/assets/task-detail-page-efmH43Pq.js +1 -0
- package/dist/gateway/static/root/assets/{theme-store-CDc7Wqy5.js → theme-store-CZwYGpbY.js} +1 -1
- package/dist/gateway/static/root/assets/tunnel-api-__auf8Ww.js +1 -0
- package/dist/gateway/static/root/assets/{use-autosave-D-FRib85.js → use-autosave-Iq83UDt3.js} +1 -1
- package/dist/gateway/static/root/assets/user-model-page-DByIJcQq.js +2 -0
- package/dist/gateway/static/root/assets/{voice-api-key-field-iQ7EBzII.js → voice-api-key-field-D-QssKik.js} +1 -1
- package/dist/gateway/static/root/assets/{voice-config-api-DNMWA2tx.js → voice-config-api-B0wNN_tE.js} +1 -1
- package/dist/gateway/static/root/assets/{work-discovery-overlay-BesuhDlH.js → work-discovery-overlay-5NRYg1iI.js} +1 -1
- package/dist/gateway/static/root/assets/{workflow-run-setup-panel-Du81FoCy.js → workflow-run-setup-panel-Ds2SZjLG.js} +2 -2
- package/dist/gateway/static/root/assets/workflows-page-BJv3eoKR.js +6 -0
- package/dist/gateway/static/root/index.html +12 -12
- package/dist/package.js +1 -1
- 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 -119
- 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.js +4 -4
- 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 +27 -27
- package/dist/src/agent/agent-manager.js +180 -179
- 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 +14 -14
- 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/repository-instructions.js +1 -1
- package/dist/src/agent/coding/workspace-revision.js +1 -1
- package/dist/src/agent/commands/command-isolation.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/run-for-session.d.ts +1 -1
- package/dist/src/agent/embedded/run-for-session.js +78 -104
- package/dist/src/agent/embedded/run-turn.js +77 -33
- 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 +1 -1
- 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/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/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 +111 -108
- 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 +45 -45
- 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/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 +11 -10
- 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/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 +3 -3
- package/dist/src/agent/tools/factory.js +42 -38
- 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/review-workspace.js +1 -1
- 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/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 +10 -2
- 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/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 +3 -3
- 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 +12 -8
- package/dist/src/cli/commands/doctor/checks/database-schema.js +3 -2
- 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 +4 -0
- package/dist/src/cli/commands/import.js +56 -7
- package/dist/src/cli/commands/logs.js +3 -3
- package/dist/src/cli/commands/models.js +1 -1
- package/dist/src/cli/commands/onboard.js +1 -1
- package/dist/src/cli/commands/platform.js +1 -1
- package/dist/src/cli/commands/profile.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 +3 -2
- package/dist/src/cli/commands/update.js +1 -1
- package/dist/src/cli/extension-cli-register.js +1 -1
- 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 +1 -1
- package/dist/src/config/models-json.d.ts +6 -6
- package/dist/src/config/schema.d.ts +1 -1
- 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 +4 -1
- package/dist/src/discussions/analyzer.js +2 -1
- package/dist/src/discussions/edits.js +3 -1
- package/dist/src/discussions/organizer.js +2 -1
- package/dist/src/discussions/recording.js +4 -1
- 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/service.js +4 -1
- 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 +2 -0
- package/dist/src/endpoint-tools/invocation-service.js +50 -20
- package/dist/src/endpoint-tools/policy.js +2 -1
- package/dist/src/endpoint-tools/registry.js +2 -1
- package/dist/src/endpoint-tools/upload-service.js +2 -1
- 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/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/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 +4 -4
- 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/heartbeat/check-store.d.ts +18 -0
- package/dist/src/gateway/heartbeat/check-store.js +74 -0
- package/dist/src/gateway/heartbeat/service.d.ts +12 -3
- package/dist/src/gateway/heartbeat/service.js +82 -51
- 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/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/endpoint-tools.js +8 -7
- 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/imports.js +18 -6
- 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/notes.js +11 -11
- package/dist/src/gateway/hono/routes/proactive-control.js +2 -1
- 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 +1 -1
- package/dist/src/gateway/hono/routes/workflows.js +9 -9
- 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/run-loop.js +1 -1
- 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/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 +11 -4
- package/dist/src/gateway/service.js +92 -71
- 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/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/importService.d.ts +17 -12
- package/dist/src/imports/importService.js +67 -70
- package/dist/src/imports/inventory.d.ts +11 -0
- package/dist/src/imports/inventory.js +202 -0
- package/dist/src/imports/productImport.d.ts +4 -4
- package/dist/src/imports/productImport.js +202 -108
- package/dist/src/imports/runtime.js +7 -2
- package/dist/src/imports/scanner.d.ts +1 -1
- package/dist/src/imports/scanner.js +4 -4
- package/dist/src/imports/types.d.ts +53 -0
- package/dist/src/infra/background-task.d.ts +2 -0
- package/dist/src/infra/background-task.js +25 -0
- package/dist/src/infra/node-sqlite.js +9 -3
- package/dist/src/infra/process-diagnostics.d.ts +5 -0
- package/dist/src/infra/process-diagnostics.js +101 -0
- package/dist/src/infra/sqlite-errors.js +25 -20
- package/dist/src/infra/unhandled-rejections.js +20 -9
- package/dist/src/infra/warning-filter.js +9 -3
- package/dist/src/knowledge/ingestion-service.js +1 -0
- 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/media-shared/http/ssrf-guard.js +1 -1
- 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 +9 -6
- 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.d.ts +2 -0
- package/dist/src/proactive/execution/authorization.js +12 -2
- package/dist/src/proactive/execution/context.js +3 -1
- package/dist/src/proactive/execution/insight.js +2 -0
- package/dist/src/proactive/execution/repository.d.ts +2 -0
- package/dist/src/proactive/execution/repository.js +21 -3
- package/dist/src/proactive/execution/worker.js +15 -4
- package/dist/src/proactive/experience.d.ts +5 -2
- package/dist/src/proactive/experience.js +7 -3
- package/dist/src/proactive/follow-ups.d.ts +12 -7
- package/dist/src/proactive/follow-ups.js +23 -11
- package/dist/src/proactive/inbox/cards.js +7 -3
- package/dist/src/proactive/inbox/delivery.js +8 -8
- package/dist/src/proactive/inbox/digest.d.ts +1 -1
- package/dist/src/proactive/inbox/digest.js +25 -14
- package/dist/src/proactive/inbox/lifecycle.js +2 -1
- package/dist/src/proactive/inbox/notification-policy.d.ts +1 -1
- package/dist/src/proactive/inbox/notification-policy.js +9 -6
- package/dist/src/proactive/inbox/repository.js +5 -3
- package/dist/src/proactive/inbox/service.d.ts +6 -0
- package/dist/src/proactive/inbox/service.js +19 -0
- package/dist/src/proactive/inbox/types.d.ts +1 -0
- 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.d.ts +1 -1
- package/dist/src/proactive/policy/presence.js +9 -6
- package/dist/src/proactive/policy/service.d.ts +8 -5
- package/dist/src/proactive/policy/service.js +16 -13
- package/dist/src/proactive/routing/batch-repository.js +2 -1
- package/dist/src/proactive/scenarios/control.d.ts +3 -3
- package/dist/src/proactive/scenarios/control.js +16 -3
- package/dist/src/proactive/scenarios/repository.js +2 -1
- package/dist/src/proactive/service.js +2 -1
- package/dist/src/proactive/source-freshness.d.ts +8 -0
- package/dist/src/proactive/source-freshness.js +28 -0
- package/dist/src/proactive/status.d.ts +2 -0
- package/dist/src/proactive/status.js +22 -0
- package/dist/src/proactive/temporal/schedule.js +2 -1
- package/dist/src/proactive/temporal/worker.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/model-reference-auditor.js +1 -1
- package/dist/src/providers/prompt-cache-lifecycle.d.ts +2 -2
- package/dist/src/providers/prompt-cache-lifecycle.js +6 -6
- package/dist/src/realtime/broker.js +3 -3
- package/dist/src/realtime/runtime.js +32 -6
- package/dist/src/realtime/writer.js +16 -9
- 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.d.ts +2 -3
- package/dist/src/storage/sqlite/import-repository.js +5 -4
- package/dist/src/storage/sqlite/import-selection-repository.d.ts +15 -0
- package/dist/src/storage/sqlite/import-selection-repository.js +29 -0
- package/dist/src/storage/sqlite/index.d.ts +1 -1
- 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.d.ts +1 -0
- package/dist/src/storage/sqlite/knowledge-repository.js +4 -3
- package/dist/src/storage/sqlite/migrations/175_import_selections.sql +8 -0
- package/dist/src/storage/sqlite/migrations/176_proactive_quality.sql +5 -0
- package/dist/src/storage/sqlite/migrations/177_proactive_check_controls.sql +25 -0
- package/dist/src/storage/sqlite/migrations/178_conversation_uuid.sql +2 -0
- package/dist/src/storage/sqlite/migrations/conversation-backup.d.ts +3 -0
- package/dist/src/storage/sqlite/migrations/conversation-backup.js +88 -0
- package/dist/src/storage/sqlite/migrations/conversation-backup.ts +66 -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-key-decoder.ts +50 -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-uuid.ts +324 -0
- package/dist/src/storage/sqlite/migrations/conversation-windows-owners.d.ts +1 -0
- package/dist/src/storage/sqlite/migrations/conversation-windows-owners.js +92 -0
- package/dist/src/storage/sqlite/migrations/conversation-windows-owners.ts +71 -0
- package/dist/src/storage/sqlite/migrations/discover.js +7 -3
- package/dist/src/storage/sqlite/migrations/errors.js +28 -23
- package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
- package/dist/src/storage/sqlite/migrations/runner.js +43 -14
- package/dist/src/storage/sqlite/migrations/runner.ts +13 -3
- package/dist/src/storage/sqlite/migrations/types.d.ts +1 -1
- package/dist/src/storage/sqlite/migrations/types.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 +14 -6
- 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 +3 -3
- 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 +114 -112
- 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/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/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 +14 -13
- package/dist/src/voice/realtime/runtime.types.d.ts +6 -6
- package/dist/src/work-discovery/candidate-discovery.js +1 -1
- 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 +33 -29
- 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 +3 -3
- package/dist/gateway/static/root/assets/agent-defaults-settings-panel-D9qP10BK.js +0 -1
- package/dist/gateway/static/root/assets/agents-D-bkOuAl.js +0 -1
- package/dist/gateway/static/root/assets/apps-page-BKwBBwJN.js +0 -1
- package/dist/gateway/static/root/assets/automations-workspace-B2-f9qZu.js +0 -6
- package/dist/gateway/static/root/assets/browser-settings-page-Dtn4rMeq.js +0 -8
- package/dist/gateway/static/root/assets/button-BA45yciM.js +0 -1
- package/dist/gateway/static/root/assets/capabilities-settings-panel-DiwtR9MD.js +0 -8
- package/dist/gateway/static/root/assets/channels-settings-pTdR1q1K.js +0 -1
- package/dist/gateway/static/root/assets/connectors-page-BSQ7Hs2w.js +0 -2
- package/dist/gateway/static/root/assets/desktop-pet-BUGkGB4-.js +0 -1
- package/dist/gateway/static/root/assets/device-pairing-wizard-CYkT7ecp.js +0 -1
- package/dist/gateway/static/root/assets/extension-settings-page-Baua1_Le.js +0 -1
- package/dist/gateway/static/root/assets/gateway-settings-CzpSYWex.js +0 -1
- package/dist/gateway/static/root/assets/heartbeat-settings-DTM_kYpE.js +0 -1
- package/dist/gateway/static/root/assets/home-page-CSSJvdd6.js +0 -1
- package/dist/gateway/static/root/assets/imports-page-XqVVYbAp.js +0 -1
- package/dist/gateway/static/root/assets/index-B_Sg5BKz.css +0 -2
- package/dist/gateway/static/root/assets/index-C9aQA4Dr.js +0 -74
- package/dist/gateway/static/root/assets/local-app-workbench-page-CZSgTYuI.js +0 -2
- package/dist/gateway/static/root/assets/locale-store-DO6JJ1l2.js +0 -1
- package/dist/gateway/static/root/assets/logs-page-z5ktnEzX.js +0 -2
- package/dist/gateway/static/root/assets/messages-BgZRsCkG.js +0 -3
- package/dist/gateway/static/root/assets/note-detail-panel-DSaZfkna.js +0 -5
- package/dist/gateway/static/root/assets/notes-page-CePEyv_C.js +0 -8
- package/dist/gateway/static/root/assets/page-tabs-CdYemUOu.js +0 -1
- package/dist/gateway/static/root/assets/popover-select-DGmMQt4t.js +0 -1
- package/dist/gateway/static/root/assets/proactive-page-Cy2Gm2f8.js +0 -1
- package/dist/gateway/static/root/assets/project-detail-page-BliwYpns.js +0 -1
- package/dist/gateway/static/root/assets/projects-page-Dm-BqnQn.js +0 -1
- package/dist/gateway/static/root/assets/remote-access-hub-C_XuQ9XR.js +0 -1
- package/dist/gateway/static/root/assets/sessions-page-Drt1aS2G.js +0 -1
- package/dist/gateway/static/root/assets/settings-advanced-gate-BAUd06_9.js +0 -1
- package/dist/gateway/static/root/assets/settings-form-section-Bw6xKOX5.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-BHI9e5Tw.js +0 -1
- package/dist/gateway/static/root/assets/shares-settings-DOAOjZBQ.js +0 -1
- package/dist/gateway/static/root/assets/skill-reload-api-DU0VQpHj.js +0 -1
- package/dist/gateway/static/root/assets/task-detail-page-DiPgMmBM.js +0 -1
- package/dist/gateway/static/root/assets/tunnel-api-Bmsy-5Fs.js +0 -1
- package/dist/gateway/static/root/assets/user-model-page-DxRaRdA0.js +0 -2
- package/dist/gateway/static/root/assets/workflows-page-CZikdgNw.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
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { createLogger } from "../../utils/logger/index.js";
|
|
2
2
|
import { init_logger } from "../../utils/logger.js";
|
|
3
3
|
import { chooseModelThinking } from "../../../packages/gateway-contract/src/model-selection.js";
|
|
4
|
+
import { init_src } from "../../../packages/gateway-contract/src/index.js";
|
|
4
5
|
import { ResponseLanguageSchema, init_response_language } from "../../i18n/response-language.js";
|
|
5
6
|
import { normalizeWorkingDirectoryInput } from "../../session/session-workspace.js";
|
|
6
7
|
import { getProjectWorkspacePathForSession } from "../../projects/workspace.js";
|
|
@@ -9,21 +10,7 @@ import "../../session/index.js";
|
|
|
9
10
|
import { getModelThinking } from "../../providers/model-thinking.js";
|
|
10
11
|
import { mkdir } from "node:fs/promises";
|
|
11
12
|
//#region src/agent/session/session-config-service.ts
|
|
12
|
-
|
|
13
|
-
* SessionConfigService — owns the "write side" of per-session agent settings
|
|
14
|
-
* (model override, thinking level, reasoning level, working directory).
|
|
15
|
-
*
|
|
16
|
-
* Previously these lived as four sibling methods on `AgentService`:
|
|
17
|
-
* - `patchSessionAgentConfig` (96 lines of validation + persistence)
|
|
18
|
-
* - `applyAutomationWorkingDirectory` (automation working dir update)
|
|
19
|
-
* - `applyAutomationModelOverride` (automation model update before session creation)
|
|
20
|
-
* - `clearAutomationWorkingDirectoryOverride` (private helper)
|
|
21
|
-
* - `clearSessionModelOverride` (private helper)
|
|
22
|
-
*
|
|
23
|
-
* Extracted so `AgentService` no longer mixes "session bag" concerns with
|
|
24
|
-
* "session config write" concerns, and so future additions to the patch API
|
|
25
|
-
* (e.g. new per-session overrides) only touch this file.
|
|
26
|
-
*/
|
|
13
|
+
init_src();
|
|
27
14
|
init_response_language();
|
|
28
15
|
init_logger();
|
|
29
16
|
const log = createLogger("SessionConfigService");
|
|
@@ -37,9 +24,9 @@ var SessionConfigService = class {
|
|
|
37
24
|
* a session's persisted config. Returns `{ ok: false, error }` on the first
|
|
38
25
|
* invalid field. Model and thinking are validated together and committed in one write.
|
|
39
26
|
*/
|
|
40
|
-
async patch(
|
|
27
|
+
async patch(conversationId, partial) {
|
|
41
28
|
if (partial.model !== void 0 || partial.thinkingLevel !== void 0 || partial.fixedModel) {
|
|
42
|
-
const existing = await this.opts.sessionConfigStore.get(
|
|
29
|
+
const existing = await this.opts.sessionConfigStore.get(conversationId);
|
|
43
30
|
if (partial.configVersion !== void 0 && partial.configVersion !== (existing?.updatedAt ?? 0)) return {
|
|
44
31
|
ok: false,
|
|
45
32
|
code: "CONFIG_CHANGED",
|
|
@@ -51,9 +38,9 @@ var SessionConfigService = class {
|
|
|
51
38
|
code: "INVALID_MODEL",
|
|
52
39
|
error: "Select a specific model"
|
|
53
40
|
};
|
|
54
|
-
await this.clearModelOverride(
|
|
41
|
+
await this.clearModelOverride(conversationId);
|
|
55
42
|
} else {
|
|
56
|
-
const ref = partial.model ?? existing?.modelOverride ?? this.opts.modelManager.getModelForSession(
|
|
43
|
+
const ref = partial.model ?? existing?.modelOverride ?? this.opts.modelManager.getModelForSession(conversationId);
|
|
57
44
|
const model = this.opts.modelManager.findByRef(ref);
|
|
58
45
|
if (!model) return {
|
|
59
46
|
ok: false,
|
|
@@ -69,36 +56,36 @@ var SessionConfigService = class {
|
|
|
69
56
|
};
|
|
70
57
|
const thinkingLevel = requested ?? chooseModelThinking(capabilities, existing?.thinkingLevel);
|
|
71
58
|
const modelRef = `${model.provider}/${model.id}`;
|
|
72
|
-
const updated = await this.opts.sessionConfigStore.update(
|
|
59
|
+
const updated = await this.opts.sessionConfigStore.update(conversationId, {
|
|
73
60
|
modelOverride: modelRef,
|
|
74
61
|
thinkingLevel,
|
|
75
62
|
fixedModel: partial.fixedModel ?? existing?.fixedModel ?? false
|
|
76
63
|
});
|
|
77
|
-
this.opts.modelManager.restoreSessionModel(
|
|
64
|
+
this.opts.modelManager.restoreSessionModel(conversationId, modelRef, updated.fixedModel === true);
|
|
78
65
|
try {
|
|
79
|
-
if (this.opts.agentManager.getAgent(
|
|
80
|
-
this.opts.agentManager.setModelForSession(
|
|
81
|
-
this.opts.agentManager.setThinkingLevel(
|
|
66
|
+
if (this.opts.agentManager.getAgent(conversationId)) {
|
|
67
|
+
this.opts.agentManager.setModelForSession(conversationId, modelRef);
|
|
68
|
+
this.opts.agentManager.setThinkingLevel(conversationId, thinkingLevel);
|
|
82
69
|
}
|
|
83
70
|
} catch (err) {
|
|
84
|
-
this.opts.agentManager.removeAgent(
|
|
71
|
+
this.opts.agentManager.removeAgent(conversationId);
|
|
85
72
|
log.warn({
|
|
86
73
|
err,
|
|
87
|
-
|
|
74
|
+
conversationId,
|
|
88
75
|
modelRef
|
|
89
76
|
}, "Saved model configuration; runtime will reload before the next turn");
|
|
90
77
|
}
|
|
91
78
|
}
|
|
92
79
|
}
|
|
93
80
|
const activityDetailLevel = partial.activityDetailLevel !== void 0 ? partial.activityDetailLevel : partial.reasoningLevel;
|
|
94
|
-
if (activityDetailLevel !== void 0) if (activityDetailLevel === null) await this.opts.sessionConfigStore.update(
|
|
81
|
+
if (activityDetailLevel !== void 0) if (activityDetailLevel === null) await this.opts.sessionConfigStore.update(conversationId, { reasoningLevel: void 0 });
|
|
95
82
|
else {
|
|
96
83
|
const normalized = normalizeReasoningLevel(activityDetailLevel);
|
|
97
84
|
if (!normalized) return {
|
|
98
85
|
ok: false,
|
|
99
86
|
error: "Invalid activity detail level"
|
|
100
87
|
};
|
|
101
|
-
await this.opts.sessionConfigStore.update(
|
|
88
|
+
await this.opts.sessionConfigStore.update(conversationId, { reasoningLevel: normalized });
|
|
102
89
|
}
|
|
103
90
|
if (partial.verboseLevel !== void 0) {
|
|
104
91
|
const normalized = normalizeVerboseLevel(partial.verboseLevel);
|
|
@@ -106,19 +93,19 @@ var SessionConfigService = class {
|
|
|
106
93
|
ok: false,
|
|
107
94
|
error: "Invalid verbose level"
|
|
108
95
|
};
|
|
109
|
-
await this.opts.sessionConfigStore.update(
|
|
96
|
+
await this.opts.sessionConfigStore.update(conversationId, { verboseLevel: normalized });
|
|
110
97
|
}
|
|
111
98
|
if (partial.responseLanguage !== void 0) {
|
|
112
|
-
if (partial.responseLanguage === null) await this.opts.sessionConfigStore.update(
|
|
99
|
+
if (partial.responseLanguage === null) await this.opts.sessionConfigStore.update(conversationId, { responseLanguage: void 0 });
|
|
113
100
|
else {
|
|
114
101
|
const parsed = ResponseLanguageSchema.safeParse(partial.responseLanguage);
|
|
115
102
|
if (!parsed.success) return {
|
|
116
103
|
ok: false,
|
|
117
104
|
error: "Invalid response language"
|
|
118
105
|
};
|
|
119
|
-
await this.opts.sessionConfigStore.update(
|
|
106
|
+
await this.opts.sessionConfigStore.update(conversationId, { responseLanguage: parsed.data });
|
|
120
107
|
}
|
|
121
|
-
this.opts.agentManager.removeAgent(
|
|
108
|
+
this.opts.agentManager.removeAgent(conversationId);
|
|
122
109
|
}
|
|
123
110
|
if (partial.userContextMode !== void 0) {
|
|
124
111
|
if (![
|
|
@@ -129,32 +116,32 @@ var SessionConfigService = class {
|
|
|
129
116
|
ok: false,
|
|
130
117
|
error: "Invalid user context mode"
|
|
131
118
|
};
|
|
132
|
-
await this.opts.sessionConfigStore.update(
|
|
119
|
+
await this.opts.sessionConfigStore.update(conversationId, { userContextMode: partial.userContextMode });
|
|
133
120
|
}
|
|
134
121
|
if (partial.workingDirectory !== void 0) {
|
|
135
122
|
if (!this.opts.getConfig()) return {
|
|
136
123
|
ok: false,
|
|
137
124
|
error: "Config not loaded"
|
|
138
125
|
};
|
|
139
|
-
if (getProjectWorkspacePathForSession(
|
|
126
|
+
if (getProjectWorkspacePathForSession(conversationId)) return {
|
|
140
127
|
ok: false,
|
|
141
128
|
error: "Project sessions use the project workspace and cannot change working directory"
|
|
142
129
|
};
|
|
143
|
-
const result = await this.patchWorkingDirectory(
|
|
130
|
+
const result = await this.patchWorkingDirectory(conversationId, partial.workingDirectory);
|
|
144
131
|
if (!result.ok) return result;
|
|
145
132
|
}
|
|
146
133
|
return { ok: true };
|
|
147
134
|
}
|
|
148
135
|
/** Materialize a restored/new chat choice; unavailable identities stay visible for repair. */
|
|
149
|
-
async initializeModelSelection(
|
|
150
|
-
const existing = await this.opts.sessionConfigStore.get(
|
|
136
|
+
async initializeModelSelection(conversationId, modelRef, thinkingLevel, configVersion) {
|
|
137
|
+
const existing = await this.opts.sessionConfigStore.get(conversationId);
|
|
151
138
|
if (configVersion !== void 0 && configVersion !== (existing?.updatedAt ?? 0)) return {
|
|
152
139
|
ok: false,
|
|
153
140
|
code: "CONFIG_CHANGED",
|
|
154
141
|
error: "Model configuration changed. Refresh and try again."
|
|
155
142
|
};
|
|
156
143
|
const model = this.opts.modelManager.findByRef(modelRef);
|
|
157
|
-
if (model) return this.patch(
|
|
144
|
+
if (model) return this.patch(conversationId, {
|
|
158
145
|
model: `${model.provider}/${model.id}`,
|
|
159
146
|
thinkingLevel: chooseModelThinking(getModelThinking(model), thinkingLevel ?? existing?.thinkingLevel),
|
|
160
147
|
fixedModel: true,
|
|
@@ -165,12 +152,12 @@ var SessionConfigService = class {
|
|
|
165
152
|
code: "INVALID_MODEL",
|
|
166
153
|
error: "Select a specific model"
|
|
167
154
|
};
|
|
168
|
-
await this.opts.sessionConfigStore.update(
|
|
155
|
+
await this.opts.sessionConfigStore.update(conversationId, {
|
|
169
156
|
modelOverride: modelRef,
|
|
170
157
|
fixedModel: true,
|
|
171
158
|
thinkingLevel: normalizeThinkLevel(thinkingLevel) ?? existing?.thinkingLevel ?? "off"
|
|
172
159
|
});
|
|
173
|
-
this.opts.modelManager.restoreSessionModel(
|
|
160
|
+
this.opts.modelManager.restoreSessionModel(conversationId, modelRef, true);
|
|
174
161
|
return { ok: true };
|
|
175
162
|
}
|
|
176
163
|
/**
|
|
@@ -178,24 +165,24 @@ var SessionConfigService = class {
|
|
|
178
165
|
* change when the automation is edited; an empty/missing input clears the
|
|
179
166
|
* override so the session uses the effective agent default.
|
|
180
167
|
*/
|
|
181
|
-
async applyAutomationWorkingDirectory(
|
|
168
|
+
async applyAutomationWorkingDirectory(conversationId, workingDirectory) {
|
|
182
169
|
const raw = workingDirectory?.trim();
|
|
183
170
|
if (raw) {
|
|
184
171
|
const wdNorm = normalizeWorkingDirectoryInput(raw);
|
|
185
172
|
if (wdNorm.ok === false) {
|
|
186
173
|
log.warn({
|
|
187
|
-
|
|
174
|
+
conversationId,
|
|
188
175
|
error: wdNorm.error
|
|
189
176
|
}, "Automation working directory invalid; using agent default");
|
|
190
|
-
await this.clearAutomationWorkingDirectoryOverride(
|
|
177
|
+
await this.clearAutomationWorkingDirectoryOverride(conversationId);
|
|
191
178
|
return;
|
|
192
179
|
}
|
|
193
180
|
await mkdir(wdNorm.path, { recursive: true });
|
|
194
|
-
await this.opts.sessionConfigStore.update(
|
|
195
|
-
this.opts.agentManager.setSessionWorkspaceOverride(
|
|
181
|
+
await this.opts.sessionConfigStore.update(conversationId, { workingDirectoryOverride: wdNorm.path });
|
|
182
|
+
this.opts.agentManager.setSessionWorkspaceOverride(conversationId, wdNorm.path);
|
|
196
183
|
return;
|
|
197
184
|
}
|
|
198
|
-
await this.clearAutomationWorkingDirectoryOverride(
|
|
185
|
+
await this.clearAutomationWorkingDirectoryOverride(conversationId);
|
|
199
186
|
}
|
|
200
187
|
/**
|
|
201
188
|
* Persist an automation model override before the direct turn creates/hydrates
|
|
@@ -203,36 +190,36 @@ var SessionConfigService = class {
|
|
|
203
190
|
* `agentManager.setModelForSession`, because the automation session usually
|
|
204
191
|
* does not exist yet.
|
|
205
192
|
*/
|
|
206
|
-
async applyAutomationModelOverride(
|
|
193
|
+
async applyAutomationModelOverride(conversationId, model) {
|
|
207
194
|
const raw = model?.trim();
|
|
208
195
|
if (!raw) {
|
|
209
|
-
await this.clearModelOverride(
|
|
196
|
+
await this.clearModelOverride(conversationId);
|
|
210
197
|
return true;
|
|
211
198
|
}
|
|
212
|
-
if (!await this.opts.modelManager.switchModelForSession(
|
|
213
|
-
await this.clearModelOverride(
|
|
199
|
+
if (!await this.opts.modelManager.switchModelForSession(conversationId, raw)) {
|
|
200
|
+
await this.clearModelOverride(conversationId);
|
|
214
201
|
return false;
|
|
215
202
|
}
|
|
216
|
-
await this.opts.sessionConfigStore.update(
|
|
203
|
+
await this.opts.sessionConfigStore.update(conversationId, { modelOverride: raw });
|
|
217
204
|
return true;
|
|
218
205
|
}
|
|
219
206
|
/**
|
|
220
207
|
* Clear the session's model override (back to agent default). Used both by
|
|
221
208
|
* {@link patch} and by `AgentService.resetSessionModelToAgentDefault`.
|
|
222
209
|
*/
|
|
223
|
-
async clearModelOverride(
|
|
224
|
-
this.opts.modelManager.clearSessionModelOverride(
|
|
225
|
-
await this.opts.sessionConfigStore.update(
|
|
226
|
-
const agent = this.opts.agentManager.getAgent(
|
|
227
|
-
if (agent) await this.opts.modelManager.applyModelForSession(agent,
|
|
210
|
+
async clearModelOverride(conversationId) {
|
|
211
|
+
this.opts.modelManager.clearSessionModelOverride(conversationId);
|
|
212
|
+
await this.opts.sessionConfigStore.update(conversationId, { modelOverride: void 0 });
|
|
213
|
+
const agent = this.opts.agentManager.getAgent(conversationId);
|
|
214
|
+
if (agent) await this.opts.modelManager.applyModelForSession(agent, conversationId);
|
|
228
215
|
}
|
|
229
|
-
async clearAutomationWorkingDirectoryOverride(
|
|
230
|
-
const existing = await this.opts.sessionConfigStore.get(
|
|
216
|
+
async clearAutomationWorkingDirectoryOverride(conversationId) {
|
|
217
|
+
const existing = await this.opts.sessionConfigStore.get(conversationId);
|
|
231
218
|
if (existing?.workingDirectoryOverride) {
|
|
232
219
|
const { workingDirectoryOverride: _removed, ...rest } = existing;
|
|
233
|
-
await this.opts.sessionConfigStore.set(
|
|
220
|
+
await this.opts.sessionConfigStore.set(conversationId, rest);
|
|
234
221
|
}
|
|
235
|
-
this.opts.agentManager.setSessionWorkspaceOverride(
|
|
222
|
+
this.opts.agentManager.setSessionWorkspaceOverride(conversationId, null);
|
|
236
223
|
}
|
|
237
224
|
/**
|
|
238
225
|
* Apply the workingDirectory branch of `patch`. Returns the next-step result
|
|
@@ -242,10 +229,10 @@ var SessionConfigService = class {
|
|
|
242
229
|
* messages, it cannot move to a different directory — only re-setting the
|
|
243
230
|
* same path is idempotent.
|
|
244
231
|
*/
|
|
245
|
-
async patchWorkingDirectory(
|
|
246
|
-
const existingRaw = (await this.opts.sessionConfigStore.get(
|
|
232
|
+
async patchWorkingDirectory(conversationId, workingDirectory) {
|
|
233
|
+
const existingRaw = (await this.opts.sessionConfigStore.get(conversationId))?.workingDirectoryOverride?.trim();
|
|
247
234
|
const incoming = workingDirectory.trim();
|
|
248
|
-
if ((await this.opts.sessionStore.load(
|
|
235
|
+
if ((await this.opts.sessionStore.load(conversationId)).length > 0) {
|
|
249
236
|
if (!incoming) return {
|
|
250
237
|
ok: false,
|
|
251
238
|
error: "workingDirectory is empty"
|
|
@@ -274,9 +261,9 @@ var SessionConfigService = class {
|
|
|
274
261
|
if (prev.ok && prev.path === wdNorm.path) return { ok: true };
|
|
275
262
|
}
|
|
276
263
|
await mkdir(wdNorm.path, { recursive: true });
|
|
277
|
-
await this.opts.sessionConfigStore.update(
|
|
278
|
-
this.opts.agentManager.setSessionWorkspaceOverride(
|
|
279
|
-
this.opts.agentManager.removeAgent(
|
|
264
|
+
await this.opts.sessionConfigStore.update(conversationId, { workingDirectoryOverride: wdNorm.path });
|
|
265
|
+
this.opts.agentManager.setSessionWorkspaceOverride(conversationId, wdNorm.path);
|
|
266
|
+
this.opts.agentManager.removeAgent(conversationId);
|
|
280
267
|
return { ok: true };
|
|
281
268
|
case false: return {
|
|
282
269
|
ok: false,
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* The previous implementation kept the "current" session context in a single
|
|
5
5
|
* mutable field on the class. That meant bus-inbound and direct-stream paths
|
|
6
6
|
* concurrently handling different sessions could overwrite each other's view
|
|
7
|
-
* of "current session", with tools reading the wrong
|
|
7
|
+
* of "current session", with tools reading the wrong conversationId at execution
|
|
8
8
|
* time (the only thing masking it was the inbound consumer being serial).
|
|
9
9
|
*
|
|
10
10
|
* The new manager uses `AsyncLocalStorage`, so each async chain sees its own
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
import type { TurnOrigin } from '@xopcai/endpoint-tools-protocol';
|
|
18
18
|
import type { InboundMessage } from '../../infra/bus/index.js';
|
|
19
19
|
export interface SessionContext {
|
|
20
|
-
|
|
20
|
+
conversationId: string;
|
|
21
21
|
channel: string;
|
|
22
22
|
chatId: string;
|
|
23
23
|
senderId: string;
|
|
@@ -6,7 +6,7 @@ import { AsyncLocalStorage } from "node:async_hooks";
|
|
|
6
6
|
* The previous implementation kept the "current" session context in a single
|
|
7
7
|
* mutable field on the class. That meant bus-inbound and direct-stream paths
|
|
8
8
|
* concurrently handling different sessions could overwrite each other's view
|
|
9
|
-
* of "current session", with tools reading the wrong
|
|
9
|
+
* of "current session", with tools reading the wrong conversationId at execution
|
|
10
10
|
* time (the only thing masking it was the inbound consumer being serial).
|
|
11
11
|
*
|
|
12
12
|
* The new manager uses `AsyncLocalStorage`, so each async chain sees its own
|
|
@@ -47,7 +47,7 @@ var SessionContextManager = class {
|
|
|
47
47
|
static extractFromMessage(msg) {
|
|
48
48
|
const metadata = msg.metadata || {};
|
|
49
49
|
return {
|
|
50
|
-
|
|
50
|
+
conversationId: metadata.conversationId || `${msg.channel}:${msg.chat_id}`,
|
|
51
51
|
channel: msg.channel,
|
|
52
52
|
chatId: msg.chat_id,
|
|
53
53
|
senderId: metadata.senderId || "",
|
|
@@ -30,12 +30,12 @@ export declare class SessionHydrator {
|
|
|
30
30
|
* Load the effective workspace into AgentManager. Managed environment roots
|
|
31
31
|
* must already exist; ordinary project and agent workspaces may be created.
|
|
32
32
|
*/
|
|
33
|
-
workspace(
|
|
33
|
+
workspace(conversationId: string): Promise<void>;
|
|
34
34
|
/** Apply persisted `modelOverride` to ModelManager (no-op when none stored). */
|
|
35
|
-
model(
|
|
35
|
+
model(conversationId: string): Promise<void>;
|
|
36
36
|
/**
|
|
37
37
|
* Resolve the effective thinking level (request override > per-session
|
|
38
38
|
* override > agent default) and apply it to the live agent instance.
|
|
39
39
|
*/
|
|
40
|
-
thinking(
|
|
40
|
+
thinking(conversationId: string, requestOverride?: string | null): Promise<void>;
|
|
41
41
|
}
|
|
@@ -33,45 +33,45 @@ var SessionHydrator = class {
|
|
|
33
33
|
* Load the effective workspace into AgentManager. Managed environment roots
|
|
34
34
|
* must already exist; ordinary project and agent workspaces may be created.
|
|
35
35
|
*/
|
|
36
|
-
async workspace(
|
|
36
|
+
async workspace(conversationId) {
|
|
37
37
|
const cfg = this.opts.getConfig();
|
|
38
38
|
if (!cfg) return;
|
|
39
|
-
const loaded = await this.opts.sessionConfigStore.get(
|
|
40
|
-
const project = getProjectForSession(
|
|
41
|
-
const environment = getExecutionEnvironmentForSession(
|
|
39
|
+
const loaded = await this.opts.sessionConfigStore.get(conversationId);
|
|
40
|
+
const project = getProjectForSession(conversationId);
|
|
41
|
+
const environment = getExecutionEnvironmentForSession(conversationId);
|
|
42
42
|
const projectWorkspace = projectWorkspacePath(project);
|
|
43
43
|
if (environment) {
|
|
44
44
|
if (environment.status !== "ready") throw new Error(`Execution environment ${environment.id} is ${environment.status}`);
|
|
45
45
|
if (!await stat(environment.rootPath).then((value) => value.isDirectory()).catch(() => false)) throw new Error(`Execution environment root is unavailable: ${environment.rootPath}`);
|
|
46
|
-
this.opts.agentManager.setSessionWorkspaceOverride(
|
|
47
|
-
} else if (projectWorkspace) this.opts.agentManager.setSessionWorkspaceOverride(
|
|
46
|
+
this.opts.agentManager.setSessionWorkspaceOverride(conversationId, environment.rootPath);
|
|
47
|
+
} else if (projectWorkspace) this.opts.agentManager.setSessionWorkspaceOverride(conversationId, projectWorkspace);
|
|
48
48
|
else if (loaded?.workingDirectoryOverride?.trim()) {
|
|
49
49
|
const wdStored = normalizeWorkingDirectoryInput(loaded.workingDirectoryOverride);
|
|
50
|
-
if (wdStored.ok) this.opts.agentManager.setSessionWorkspaceOverride(
|
|
50
|
+
if (wdStored.ok) this.opts.agentManager.setSessionWorkspaceOverride(conversationId, wdStored.path);
|
|
51
51
|
else {
|
|
52
|
-
log.warn({
|
|
53
|
-
this.opts.agentManager.setSessionWorkspaceOverride(
|
|
52
|
+
log.warn({ conversationId }, "Invalid stored workingDirectoryOverride; ignoring");
|
|
53
|
+
this.opts.agentManager.setSessionWorkspaceOverride(conversationId, null);
|
|
54
54
|
}
|
|
55
|
-
} else this.opts.agentManager.setSessionWorkspaceOverride(
|
|
56
|
-
const effective = effectiveWorkspacePathForSession(cfg,
|
|
55
|
+
} else this.opts.agentManager.setSessionWorkspaceOverride(conversationId, null);
|
|
56
|
+
const effective = effectiveWorkspacePathForSession(cfg, conversationId, loaded, project);
|
|
57
57
|
if (!environment) await mkdir(effective, { recursive: true });
|
|
58
58
|
}
|
|
59
59
|
/** Apply persisted `modelOverride` to ModelManager (no-op when none stored). */
|
|
60
|
-
async model(
|
|
61
|
-
const cfg = await this.opts.sessionConfigStore.get(
|
|
62
|
-
if (cfg?.modelOverride) this.opts.modelManager.restoreSessionModel(
|
|
60
|
+
async model(conversationId) {
|
|
61
|
+
const cfg = await this.opts.sessionConfigStore.get(conversationId);
|
|
62
|
+
if (cfg?.modelOverride) this.opts.modelManager.restoreSessionModel(conversationId, cfg.modelOverride, cfg.fixedModel === true);
|
|
63
63
|
}
|
|
64
64
|
/**
|
|
65
65
|
* Resolve the effective thinking level (request override > per-session
|
|
66
66
|
* override > agent default) and apply it to the live agent instance.
|
|
67
67
|
*/
|
|
68
|
-
async thinking(
|
|
69
|
-
const level = await resolveEffectiveThinkingLevel(this.opts.sessionConfigStore,
|
|
70
|
-
if ((await this.opts.sessionConfigStore.get(
|
|
71
|
-
const model = this.opts.modelManager.getResolvedModelForSession(
|
|
68
|
+
async thinking(conversationId, requestOverride) {
|
|
69
|
+
const level = await resolveEffectiveThinkingLevel(this.opts.sessionConfigStore, conversationId, requestOverride, void 0);
|
|
70
|
+
if ((await this.opts.sessionConfigStore.get(conversationId))?.fixedModel) {
|
|
71
|
+
const model = this.opts.modelManager.getResolvedModelForSession(conversationId);
|
|
72
72
|
if (!getModelThinking(model).options.includes(level)) throw new Error(`Thinking level ${level} is not supported by ${model.provider}/${model.id}`);
|
|
73
73
|
}
|
|
74
|
-
this.opts.agentManager.setThinkingLevel(
|
|
74
|
+
this.opts.agentManager.setThinkingLevel(conversationId, level);
|
|
75
75
|
}
|
|
76
76
|
};
|
|
77
77
|
//#endregion
|
|
@@ -35,7 +35,7 @@ export interface SessionInspectorOptions {
|
|
|
35
35
|
* Nominal context window the session is budgeted against. Derived from the
|
|
36
36
|
* effective session model metadata, defaulting to 128k.
|
|
37
37
|
*/
|
|
38
|
-
getContextWindow: (
|
|
38
|
+
getContextWindow: (conversationId: string) => number;
|
|
39
39
|
}
|
|
40
40
|
export interface SessionContextUsage {
|
|
41
41
|
estimatedTokens: number;
|
|
@@ -70,25 +70,25 @@ export declare class SessionInspector {
|
|
|
70
70
|
* pass (`force: true` by default) and evicts the in-memory agent so the
|
|
71
71
|
* next turn reloads from the compacted transcript.
|
|
72
72
|
*/
|
|
73
|
-
compact(
|
|
73
|
+
compact(conversationId: string, options?: {
|
|
74
74
|
instructions?: string;
|
|
75
75
|
force?: boolean;
|
|
76
76
|
}): Promise<CompactionResult>;
|
|
77
77
|
/** One-shot LLM answer for `/btw`: transcript as background, not persisted. */
|
|
78
|
-
btwQuery(
|
|
78
|
+
btwQuery(conversationId: string, question: string, options?: BtwQueryOptions): Promise<{
|
|
79
79
|
text: string;
|
|
80
80
|
error?: string;
|
|
81
81
|
}>;
|
|
82
82
|
/** Cheap stats used by both the report and other callers. */
|
|
83
|
-
stats(
|
|
83
|
+
stats(conversationId: string, messages: AgentMessage[]): {
|
|
84
84
|
windowStats: ReturnType<SessionStore['getWindowStats']>;
|
|
85
85
|
compactionStats: ReturnType<SessionStore['getCompactionStats']>;
|
|
86
86
|
tokenEstimate: ReturnType<SessionStore['estimateTokenUsage']>;
|
|
87
87
|
};
|
|
88
88
|
/** Rough context usage for TUI footer (estimated tokens vs nominal budget). */
|
|
89
|
-
contextUsage(
|
|
89
|
+
contextUsage(conversationId: string): Promise<SessionContextUsage>;
|
|
90
90
|
/** Markdown or JSON summary for `/context`. */
|
|
91
|
-
report(
|
|
91
|
+
report(conversationId: string, mode: 'list' | 'detail' | 'json'): Promise<string>;
|
|
92
92
|
/** Resolved thinking / model / workspace for the Web UI. */
|
|
93
|
-
agentConfig(
|
|
93
|
+
agentConfig(conversationId: string): Promise<SessionAgentConfigView>;
|
|
94
94
|
}
|
|
@@ -22,48 +22,48 @@ var SessionInspector = class {
|
|
|
22
22
|
constructor(opts) {
|
|
23
23
|
this.opts = opts;
|
|
24
24
|
}
|
|
25
|
-
async ensureEffectiveSessionModel(
|
|
26
|
-
await this.opts.sessionHydrator.model(
|
|
25
|
+
async ensureEffectiveSessionModel(conversationId) {
|
|
26
|
+
await this.opts.sessionHydrator.model(conversationId);
|
|
27
27
|
const cfg = this.opts.getConfig();
|
|
28
28
|
if (!cfg) return;
|
|
29
|
-
const profile = resolveEffectiveAgentProfileForSession(cfg,
|
|
29
|
+
const profile = resolveEffectiveAgentProfileForSession(cfg, conversationId);
|
|
30
30
|
const profileModelRef = profile.primaryModelRef?.trim();
|
|
31
|
-
if (profileModelRef) this.opts.modelManager.setSessionProfileDefault(
|
|
31
|
+
if (profileModelRef) this.opts.modelManager.setSessionProfileDefault(conversationId, profileModelRef, profile.fallbacks);
|
|
32
32
|
}
|
|
33
|
-
async contextWindowForSession(
|
|
34
|
-
await this.ensureEffectiveSessionModel(
|
|
35
|
-
return this.opts.getContextWindow(
|
|
33
|
+
async contextWindowForSession(conversationId) {
|
|
34
|
+
await this.ensureEffectiveSessionModel(conversationId);
|
|
35
|
+
return this.opts.getContextWindow(conversationId);
|
|
36
36
|
}
|
|
37
37
|
/**
|
|
38
38
|
* Manual compaction triggered by a user / API. Always forces a compaction
|
|
39
39
|
* pass (`force: true` by default) and evicts the in-memory agent so the
|
|
40
40
|
* next turn reloads from the compacted transcript.
|
|
41
41
|
*/
|
|
42
|
-
async compact(
|
|
43
|
-
const messages = await this.opts.sessionStore.load(
|
|
44
|
-
await this.ensureEffectiveSessionModel(
|
|
42
|
+
async compact(conversationId, options) {
|
|
43
|
+
const messages = await this.opts.sessionStore.load(conversationId);
|
|
44
|
+
await this.ensureEffectiveSessionModel(conversationId);
|
|
45
45
|
const policy = resolveCompactionPolicy(this.opts.getConfig());
|
|
46
|
-
const sessionModel = this.opts.modelManager.getResolvedModelForSession(
|
|
46
|
+
const sessionModel = this.opts.modelManager.getResolvedModelForSession(conversationId);
|
|
47
47
|
const model = policy.model ? resolveModel(policy.model) : sessionModel;
|
|
48
48
|
const primaryRef = `${model.provider}/${model.id}`;
|
|
49
|
-
const fallbackModels = this.opts.modelManager.getFallbackCandidatesForSession(
|
|
50
|
-
const result = await this.opts.sessionStore.compact(
|
|
51
|
-
if (result.compacted) this.opts.agentManager.removeAgent(
|
|
49
|
+
const fallbackModels = this.opts.modelManager.getFallbackCandidatesForSession(conversationId).map((candidate) => resolveModel(`${candidate.provider}/${candidate.model}`)).filter((candidate) => `${candidate.provider}/${candidate.id}` !== primaryRef);
|
|
50
|
+
const result = await this.opts.sessionStore.compact(conversationId, messages, model, options?.instructions, options?.force ?? true, { fallbackModels });
|
|
51
|
+
if (result.compacted) this.opts.agentManager.removeAgent(conversationId);
|
|
52
52
|
log.info({
|
|
53
|
-
|
|
53
|
+
conversationId,
|
|
54
54
|
result
|
|
55
55
|
}, "Manual compaction complete");
|
|
56
56
|
return result;
|
|
57
57
|
}
|
|
58
58
|
/** One-shot LLM answer for `/btw`: transcript as background, not persisted. */
|
|
59
|
-
btwQuery(
|
|
59
|
+
btwQuery(conversationId, question, options) {
|
|
60
60
|
const config = this.opts.getConfig();
|
|
61
|
-
const profile = config ? resolveEffectiveAgentProfileForSession(config,
|
|
61
|
+
const profile = config ? resolveEffectiveAgentProfileForSession(config, conversationId) : void 0;
|
|
62
62
|
return runBtwQuery({
|
|
63
|
-
|
|
63
|
+
conversationId,
|
|
64
64
|
question,
|
|
65
65
|
sessionStore: this.opts.sessionStore,
|
|
66
|
-
modelForSession: options?.modelRef?.trim() || this.opts.modelManager.getModelForSession(
|
|
66
|
+
modelForSession: options?.modelRef?.trim() || this.opts.modelManager.getModelForSession(conversationId),
|
|
67
67
|
log,
|
|
68
68
|
maxTokens: options?.maxTokens,
|
|
69
69
|
temperature: options?.temperature,
|
|
@@ -76,18 +76,18 @@ var SessionInspector = class {
|
|
|
76
76
|
});
|
|
77
77
|
}
|
|
78
78
|
/** Cheap stats used by both the report and other callers. */
|
|
79
|
-
stats(
|
|
79
|
+
stats(conversationId, messages) {
|
|
80
80
|
return {
|
|
81
81
|
windowStats: this.opts.sessionStore.getWindowStats(messages),
|
|
82
|
-
compactionStats: this.opts.sessionStore.getCompactionStats(
|
|
83
|
-
tokenEstimate: this.opts.sessionStore.estimateTokenUsage(
|
|
82
|
+
compactionStats: this.opts.sessionStore.getCompactionStats(conversationId),
|
|
83
|
+
tokenEstimate: this.opts.sessionStore.estimateTokenUsage(conversationId, messages)
|
|
84
84
|
};
|
|
85
85
|
}
|
|
86
86
|
/** Rough context usage for TUI footer (estimated tokens vs nominal budget). */
|
|
87
|
-
async contextUsage(
|
|
88
|
-
const messages = await this.opts.sessionStore.load(
|
|
89
|
-
const contextWindow = await this.contextWindowForSession(
|
|
90
|
-
const estimatedTokens = await this.opts.sessionStore.estimateTokenUsage(
|
|
87
|
+
async contextUsage(conversationId) {
|
|
88
|
+
const messages = await this.opts.sessionStore.load(conversationId);
|
|
89
|
+
const contextWindow = await this.contextWindowForSession(conversationId);
|
|
90
|
+
const estimatedTokens = await this.opts.sessionStore.estimateTokenUsage(conversationId, messages);
|
|
91
91
|
return {
|
|
92
92
|
estimatedTokens,
|
|
93
93
|
contextWindow,
|
|
@@ -95,20 +95,20 @@ var SessionInspector = class {
|
|
|
95
95
|
};
|
|
96
96
|
}
|
|
97
97
|
/** Markdown or JSON summary for `/context`. */
|
|
98
|
-
async report(
|
|
98
|
+
async report(conversationId, mode) {
|
|
99
99
|
const cfg = this.opts.getConfig();
|
|
100
100
|
if (!cfg) throw new Error("SessionInspector requires a config snapshot to render report");
|
|
101
|
-
const messages = await this.opts.sessionStore.load(
|
|
102
|
-
const cw = await this.contextWindowForSession(
|
|
103
|
-
const computed = this.stats(
|
|
104
|
-
const model = this.opts.modelManager.getModelForSession(
|
|
105
|
-
const workspace = effectiveWorkspacePathForSession(cfg,
|
|
106
|
-
const estTokens = await this.opts.sessionStore.estimateTokenUsage(
|
|
107
|
-
const profile = resolveEffectiveAgentProfileForSession(cfg,
|
|
101
|
+
const messages = await this.opts.sessionStore.load(conversationId);
|
|
102
|
+
const cw = await this.contextWindowForSession(conversationId);
|
|
103
|
+
const computed = this.stats(conversationId, messages);
|
|
104
|
+
const model = this.opts.modelManager.getModelForSession(conversationId);
|
|
105
|
+
const workspace = effectiveWorkspacePathForSession(cfg, conversationId, await this.opts.sessionConfigStore.get(conversationId), getProjectForSession(conversationId));
|
|
106
|
+
const estTokens = await this.opts.sessionStore.estimateTokenUsage(conversationId, messages);
|
|
107
|
+
const profile = resolveEffectiveAgentProfileForSession(cfg, conversationId);
|
|
108
108
|
const deniedTools = [...profile.tools.denied].sort((a, b) => a.localeCompare(b));
|
|
109
109
|
const toolsSummary = deniedTools.length > 0 ? `denied: ${deniedTools.join(", ")}` : "(no denied tools)";
|
|
110
110
|
return formatSessionContextReport({
|
|
111
|
-
|
|
111
|
+
conversationId,
|
|
112
112
|
mode,
|
|
113
113
|
model,
|
|
114
114
|
workspacePath: workspace,
|
|
@@ -126,21 +126,21 @@ var SessionInspector = class {
|
|
|
126
126
|
});
|
|
127
127
|
}
|
|
128
128
|
/** Resolved thinking / model / workspace for the Web UI. */
|
|
129
|
-
async agentConfig(
|
|
130
|
-
await this.ensureEffectiveSessionModel(
|
|
129
|
+
async agentConfig(conversationId) {
|
|
130
|
+
await this.ensureEffectiveSessionModel(conversationId);
|
|
131
131
|
const cfg = this.opts.getConfig();
|
|
132
132
|
if (!cfg) throw new Error("SessionInspector requires a config snapshot to resolve agent config");
|
|
133
|
-
const sc = await this.opts.sessionConfigStore.get(
|
|
134
|
-
const level = await resolveEffectiveThinkingLevel(this.opts.sessionConfigStore,
|
|
133
|
+
const sc = await this.opts.sessionConfigStore.get(conversationId);
|
|
134
|
+
const level = await resolveEffectiveThinkingLevel(this.opts.sessionConfigStore, conversationId, null, "medium");
|
|
135
135
|
const defReason = resolveConfiguredActivityDetailDefault(cfg);
|
|
136
|
-
const reasoningLevel = await resolveEffectiveReasoningLevel(this.opts.sessionConfigStore,
|
|
137
|
-
const verboseLevel = await resolveVerboseLevel(this.opts.sessionConfigStore,
|
|
138
|
-
const model = this.opts.modelManager.getModelForSession(
|
|
139
|
-
const project = getProjectForSession(
|
|
140
|
-
const environment = getExecutionEnvironmentForSession(
|
|
136
|
+
const reasoningLevel = await resolveEffectiveReasoningLevel(this.opts.sessionConfigStore, conversationId, defReason);
|
|
137
|
+
const verboseLevel = await resolveVerboseLevel(this.opts.sessionConfigStore, conversationId, "full");
|
|
138
|
+
const model = this.opts.modelManager.getModelForSession(conversationId);
|
|
139
|
+
const project = getProjectForSession(conversationId);
|
|
140
|
+
const environment = getExecutionEnvironmentForSession(conversationId);
|
|
141
141
|
const projectWorkspace = projectWorkspacePath(project);
|
|
142
142
|
const hasSessionWorkspaceOverride = Boolean(sc?.workingDirectoryOverride?.trim());
|
|
143
|
-
const effectiveWorkspacePath = effectiveWorkspacePathForSession(cfg,
|
|
143
|
+
const effectiveWorkspacePath = effectiveWorkspacePathForSession(cfg, conversationId, sc, project);
|
|
144
144
|
const isDefaultWorkspaceRoot = effectiveWorkspacePath === resolveDefaultAgentWorkspaceDir();
|
|
145
145
|
return {
|
|
146
146
|
thinkingLevel: level,
|
|
@@ -37,9 +37,9 @@ export declare class SessionLifecycleManager {
|
|
|
37
37
|
/**
|
|
38
38
|
* Get the start time for a session
|
|
39
39
|
*/
|
|
40
|
-
getSessionStartTime(
|
|
40
|
+
getSessionStartTime(conversationId: string): number | undefined;
|
|
41
41
|
/**
|
|
42
42
|
* Check if a session is currently active
|
|
43
43
|
*/
|
|
44
|
-
isSessionActive(
|
|
44
|
+
isSessionActive(conversationId: string): boolean;
|
|
45
45
|
}
|