@xopcai/xopc 0.0.218 → 0.0.219
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/manifest.json +1 -1
- package/dist/extensions/telegram/xopc.extension.json +1 -1
- package/dist/gateway/static/root/assets/{activity-store-DF2dYXG1.js → activity-store-slG02hSm.js} +1 -1
- package/dist/gateway/static/root/assets/{agent-avatar-dicebear-Dw9rF5o1.js → agent-avatar-dicebear-DZ6ETNIk.js} +1 -1
- package/dist/gateway/static/root/assets/agents-DxaIH0Ep.js +68 -0
- package/dist/gateway/static/root/assets/{api-_H0Bam-t.js → api-Tz57QxiN.js} +1 -1
- package/dist/gateway/static/root/assets/app-management-settings-panel-DdR1L4LR.js +1 -0
- package/dist/gateway/static/root/assets/appearance-settings-wYbwqmee.js +1 -0
- package/dist/gateway/static/root/assets/apps-page-CyWr6KyO.js +1 -0
- package/dist/gateway/static/root/assets/{archive-plugin-DZCOhXch.js → archive-plugin-DKXa160O.js} +1 -1
- package/dist/gateway/static/root/assets/{attachment-load-Bjb0FH2B.js → attachment-load-CzwA9g2y.js} +1 -1
- package/dist/gateway/static/root/assets/{automations-page-D4N3ZDhu.js → automations-page-DwAXyWAY.js} +1 -1
- package/dist/gateway/static/root/assets/automations-workspace-CL7ieYIt.js +6 -0
- package/dist/gateway/static/root/assets/{binary-plugins-uXPt0s47.js → binary-plugins-DoQ_DnT7.js} +1 -1
- package/dist/gateway/static/root/assets/{block-editor-gukkIEro.js → block-editor-Bj_Uxxng.js} +47 -47
- package/dist/gateway/static/root/assets/browser-settings-page-BYa_FNC1.js +8 -0
- package/dist/gateway/static/root/assets/{browser-workflow-inputs-DAhdS-XZ.js → browser-workflow-inputs-D4roXE6r.js} +1 -1
- package/dist/gateway/static/root/assets/{browser-workflows-page-LKjYzXS_.js → browser-workflows-page-CleKTAKD.js} +2 -2
- package/dist/gateway/static/root/assets/capabilities-settings-panel-DYG37N0k.js +7 -0
- package/dist/gateway/static/root/assets/{capability-presets-api-BBUkH833.js → capability-presets-api-wtEN6Ss6.js} +1 -1
- package/dist/gateway/static/root/assets/capability-presets-settings-panel-C0Q4dFq-.js +3 -0
- package/dist/gateway/static/root/assets/{channel-recipient-api-E5mo8M3a.js → channel-recipient-api-DhuS2RJ3.js} +1 -1
- package/dist/gateway/static/root/assets/channels-settings-CpO6Xg0n.js +1 -0
- package/dist/gateway/static/root/assets/channels-status-swr-CXhPeiNj.js +1 -0
- package/dist/gateway/static/root/assets/chat-terminal-dock-ClQMDe2n.js +36 -0
- package/dist/gateway/static/root/assets/connectors-page-BvyiPdKU.js +2 -0
- package/dist/gateway/static/root/assets/{cron-expression-BGNuaqvI.js → cron-expression-4DvCFs-v.js} +1 -1
- package/dist/gateway/static/root/assets/{date-picker-k7mkklMU.js → date-picker-B6FSjt4Z.js} +1 -1
- package/dist/gateway/static/root/assets/dependency-picker-Za18eMp1.js +1 -0
- package/dist/gateway/static/root/assets/{desktop-pet-p9EZyGzV.js → desktop-pet-DUUf3yyJ.js} +1 -1
- package/dist/gateway/static/root/assets/desktop-pet-settings-Dwx3GfB8.js +1 -0
- package/dist/gateway/static/root/assets/directory-picker-path-field-C6dfTCsl.js +1 -0
- package/dist/gateway/static/root/assets/ellipsis-0k4rZLoy.js +1 -0
- package/dist/gateway/static/root/assets/{extension-debug-page-Cd4BMKm_.js → extension-debug-page-Cordpg4X.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-page-CzEGCkOa.js → extension-page-Dw0dGyMl.js} +1 -1
- package/dist/gateway/static/root/assets/extension-settings-page-B2pUMaXm.js +1 -0
- package/dist/gateway/static/root/assets/eye-CABVeTq0.js +1 -0
- package/dist/gateway/static/root/assets/eye-off-DEAzt3g1.js +1 -0
- package/dist/gateway/static/root/assets/file-code-corner-byQA1VfD.js +1 -0
- package/dist/gateway/static/root/assets/form-field-width-DJw_jULe.js +1 -0
- package/dist/gateway/static/root/assets/gateway-config-api-DAZUOEQh.js +1 -0
- package/dist/gateway/static/root/assets/{gateway-config-swr-DNrttVr2.js → gateway-config-swr-BIqRg-zo.js} +1 -1
- package/dist/gateway/static/root/assets/gateway-settings-ik2f-pmV.js +1 -0
- package/dist/gateway/static/root/assets/{gateway-startup-retry-B1vD3vRb.js → gateway-startup-retry-BFjWYOCS.js} +1 -1
- package/dist/gateway/static/root/assets/heartbeat-settings-BE81XJ8F.js +1 -0
- package/dist/gateway/static/root/assets/home-page-BTWXJu_m.js +1 -0
- package/dist/gateway/static/root/assets/{image-generation-api-BTR0Wk_k.js → image-generation-api-HXAWlgm6.js} +1 -1
- package/dist/gateway/static/root/assets/index-B6gWYy08.js +108 -0
- package/dist/gateway/static/root/assets/index-CDkuz_YC.css +2 -0
- package/dist/gateway/static/root/assets/interaction-BmQogeqz.js +1 -0
- package/dist/gateway/static/root/assets/is-masked-secret-DOkL5b_X.js +1 -0
- package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-CYlS4RGA.js → keyboard-shortcuts-settings-ROqQ_Xlo.js} +1 -1
- package/dist/gateway/static/root/assets/local-app-workbench-page-Dcaf190G.js +2 -0
- package/dist/gateway/static/root/assets/{local-apps-page-CNppYVew.js → local-apps-page-Be79cyMG.js} +1 -1
- package/dist/gateway/static/root/assets/{locale-store-gf9Bg2gb.js → locale-store-DfK-Hofd.js} +1 -1
- package/dist/gateway/static/root/assets/logs-page-C2pjbXno.js +2 -0
- package/dist/gateway/static/root/assets/{management-settings-IYk9xLgt.js → management-settings-CRspx0oY.js} +1 -1
- package/dist/gateway/static/root/assets/{markdown-split-D8e6pRMH.js → markdown-split-G3PTpGw3.js} +1 -1
- package/dist/gateway/static/root/assets/{markdown-view-D0fiJjBQ.js → markdown-view-D4FPJZ91.js} +1 -1
- package/dist/gateway/static/root/assets/{media-plugins-CCq6TtEf.js → media-plugins-DT0P7j7u.js} +1 -1
- package/dist/gateway/static/root/assets/messages-B701TEZ5.js +3 -0
- package/dist/gateway/static/root/assets/{notes-api-BBtWnlUU.js → notes-api-q7HjYO07.js} +1 -1
- package/dist/gateway/static/root/assets/{notes-page-BKe1xa3U.js → notes-page-Cgl2h7AR.js} +1 -1
- package/dist/gateway/static/root/assets/notes-workbench-DFMQYyGJ.js +4 -0
- package/dist/gateway/static/root/assets/page-tabs-BaEQMYm_.js +1 -0
- package/dist/gateway/static/root/assets/preview-open-alternatives-CsNVTKC0.js +1 -0
- package/dist/gateway/static/root/assets/{product-open-page-DXe5iWI6.js → product-open-page-ComKLO4D.js} +1 -1
- package/dist/gateway/static/root/assets/project-detail-page-DUFmQscH.js +1 -0
- package/dist/gateway/static/root/assets/projects-page-CTWxt3dv.js +1 -0
- package/dist/gateway/static/root/assets/{registry-api-xj5gOva_.js → registry-api-BBoJ7khF.js} +1 -1
- package/dist/gateway/static/root/assets/remote-access-hub-qmG-3qjj.js +1 -0
- package/dist/gateway/static/root/assets/rotate-cw-LIg3Am9S.js +1 -0
- package/dist/gateway/static/root/assets/{runtime-tools-settings-panel-BJTvmBCA.js → runtime-tools-settings-panel-CXHQc53b.js} +2 -2
- package/dist/gateway/static/root/assets/{schema-form-DvGBa_7R.js → schema-form-3jTDF2lJ.js} +1 -1
- package/dist/gateway/static/root/assets/search-DA7gz22f.js +1 -0
- package/dist/gateway/static/root/assets/sessions-page-D_We4_MV.js +1 -0
- package/dist/gateway/static/root/assets/settings-advanced-gate-B_QhPgU0.js +1 -0
- package/dist/gateway/static/root/assets/settings-form-section-CUDozALU.js +1 -0
- package/dist/gateway/static/root/assets/{settings-loading-skeleton-sbef7GTm.js → settings-loading-skeleton-H3ZH6a6l.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-page-BNGxxXZe.js → settings-page-tx29z21o.js} +1 -1
- package/dist/gateway/static/root/assets/setup-status-panel-VunfXpTX.js +1 -0
- package/dist/gateway/static/root/assets/{share-preview-page-C1523ij3.js → share-preview-page-MyThymEx.js} +1 -1
- package/dist/gateway/static/root/assets/shares-settings-DkZvY1cr.js +1 -0
- package/dist/gateway/static/root/assets/skill-reload-api-DVDOh1iY.js +1 -0
- package/dist/gateway/static/root/assets/skills-page-BOOyMnno.js +2 -0
- package/dist/gateway/static/root/assets/{skills-page.utils-Ditgz7Vo.js → skills-page.utils-Bl5Yv3Cx.js} +1 -1
- package/dist/gateway/static/root/assets/system-settings-panel-DwQ3O1ta.js +1 -0
- package/dist/gateway/static/root/assets/task-detail-page-BwOyrADL.js +1 -0
- package/dist/gateway/static/root/assets/{theme-store-DgSjes3O.js → theme-store-Br4BtK4x.js} +1 -1
- package/dist/gateway/static/root/assets/typed-models-lib-q5-Vfqd8.js +1 -0
- package/dist/gateway/static/root/assets/{use-autosave-Bp_qFZkl.js → use-autosave-DRS3RwS9.js} +1 -1
- package/dist/gateway/static/root/assets/user-context-page-ClV2r3Cr.js +1 -0
- package/dist/gateway/static/root/assets/{voice-api-key-field-hbzDfErG.js → voice-api-key-field-CGTE5156.js} +1 -1
- package/dist/gateway/static/root/assets/{work-discovery-overlay-DZVib-04.js → work-discovery-overlay-CW-HKD7h.js} +1 -1
- package/dist/gateway/static/root/assets/{workflow-run-setup-panel-C2RKay1p.js → workflow-run-setup-panel-Dtr9fDC8.js} +2 -2
- package/dist/gateway/static/root/assets/workflows-page-CDOyNgZf.js +5 -0
- package/dist/gateway/static/root/index.html +20 -11
- package/dist/package.js +1 -1
- package/dist/packages/gateway-contract/src/new-session.js +99 -0
- package/dist/packages/gateway-contract/src/tasks.js +5 -0
- package/dist/packages/gateway-contract/src/user-message-display.js +55 -0
- package/dist/src/agent/agent-manager.js +5 -4
- package/dist/src/agent/background-review/prompts.d.ts +1 -1
- package/dist/src/agent/background-review/prompts.js +2 -2
- package/dist/src/agent/background-review/run-background-review.js +144 -16
- package/dist/src/agent/embedded/model-runtime.js +1 -1
- package/dist/src/agent/embedded/run-for-session.js +1 -1
- package/dist/src/agent/image/tool-model-config.js +1 -1
- package/dist/src/agent/inbound/turn-dispatcher.d.ts +3 -1
- package/dist/src/agent/inbound/turn-dispatcher.js +2 -1
- package/dist/src/agent/ipc/inbox.js +1 -1
- package/dist/src/agent/memory/context/types.d.ts +1 -1
- package/dist/src/agent/memory/manager.d.ts +2 -1
- package/dist/src/agent/memory/manager.js +2 -6
- package/dist/src/agent/memory/understanding/service.d.ts +1 -0
- package/dist/src/agent/memory/understanding/service.js +179 -36
- package/dist/src/agent/memory/understanding/types.d.ts +6 -0
- package/dist/src/agent/messaging/command-handler.d.ts +2 -0
- package/dist/src/agent/messaging/command-handler.js +3 -1
- package/dist/src/agent/service/direct-turn-helpers.d.ts +3 -0
- package/dist/src/agent/service/direct-turn-helpers.js +13 -3
- package/dist/src/agent/service/process-direct-streaming.d.ts +2 -1
- package/dist/src/agent/service/process-direct-streaming.js +12 -11
- package/dist/src/agent/service.js +2 -2
- package/dist/src/agent/session/session-config-service.d.ts +1 -0
- package/dist/src/agent/session/session-config-service.js +11 -0
- package/dist/src/agent/session/session-inspector.d.ts +1 -0
- package/dist/src/agent/session/session-inspector.js +2 -1
- package/dist/src/agent/skills/hub-lock.js +1 -1
- package/dist/src/agent/source-context/budget.d.ts +3 -0
- package/dist/src/agent/source-context/budget.js +21 -0
- package/dist/src/agent/source-context/index.js +3 -3
- package/dist/src/agent/source-context/injector.d.ts +2 -2
- package/dist/src/agent/source-context/injector.js +19 -9
- package/dist/src/agent/source-context/types.d.ts +16 -0
- package/dist/src/agent/source-context/types.js +25 -1
- package/dist/src/agent/tasks/task-judge-service.js +3 -3
- package/dist/src/agent/tool-manuals/xopc-use.d.ts +1 -1
- package/dist/src/agent/tool-manuals/xopc-use.js +19 -2
- package/dist/src/agent/tools/xopc-use-tool.js +62 -2
- package/dist/src/ai-assist/text-assist.js +1 -1
- package/dist/src/auth/credentials.js +2 -2
- package/dist/src/auth/profiles/store.js +1 -1
- package/dist/src/auth/sync-provider-auth.js +2 -2
- package/dist/src/browser/backend-from-config.d.ts +8 -0
- package/dist/src/browser/backend-from-config.js +16 -1
- package/dist/src/browser/providers/browser-ext-install.d.ts +3 -2
- package/dist/src/browser/providers/browser-ext-install.js +5 -3
- package/dist/src/chat-commands/builtins/review.js +11 -2
- package/dist/src/chat-commands/builtins/understanding.js +11 -4
- package/dist/src/chat-commands/types.d.ts +4 -0
- package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
- package/dist/src/cli/commands/doctor/checks/provider-auth.js +1 -1
- package/dist/src/cli/commands/extension-marketplace.js +1 -1
- package/dist/src/cli/commands/extension.js +1 -1
- package/dist/src/cli/commands/models.js +1 -1
- package/dist/src/config/index.js +4 -4
- package/dist/src/config/loader.js +1 -1
- package/dist/src/config/models-json.d.ts +20 -20
- package/dist/src/config/models-json.js +1 -1
- package/dist/src/connectors/connected-source-understanding.d.ts +1 -0
- package/dist/src/connectors/connected-source-understanding.js +82 -34
- package/dist/src/connectors/learning-coordinator.js +57 -11
- package/dist/src/extensions/lockfile.js +1 -1
- package/dist/src/extensions/update.js +1 -1
- package/dist/src/gateway/agents-admin.js +1 -1
- package/dist/src/gateway/chat-stream/mapper.js +18 -0
- package/dist/src/gateway/file-path-classifier.js +1 -1
- package/dist/src/gateway/hono/lib/config-payload.js +1 -1
- package/dist/src/gateway/hono/routes/agent-stream.js +12 -2
- package/dist/src/gateway/hono/routes/auth-registry-extensions.js +1 -1
- package/dist/src/gateway/hono/routes/commands-skills.js +1 -0
- package/dist/src/gateway/hono/routes/models.js +1 -1
- package/dist/src/gateway/hono/routes/session-input-handler.d.ts +46 -2
- package/dist/src/gateway/hono/routes/session-input-handler.js +23 -3
- package/dist/src/gateway/hono/routes/sessions.js +17 -20
- package/dist/src/gateway/hono/routes/tasks.js +25 -0
- package/dist/src/gateway/hono/routes/understanding-sources.d.ts +9 -0
- package/dist/src/gateway/hono/routes/understanding-sources.js +127 -31
- package/dist/src/gateway/hono/routes/workflows.js +2 -2
- package/dist/src/gateway/hono/routes/you.js +71 -4
- package/dist/src/gateway/service/agent-runner.d.ts +7 -2
- package/dist/src/gateway/service/agent-runner.js +21 -1
- package/dist/src/gateway/service/config-coordinator.js +2 -2
- package/dist/src/gateway/service/run-gateway-agent.d.ts +2 -0
- package/dist/src/gateway/service/run-gateway-agent.js +2 -1
- package/dist/src/gateway/service/session-input-coordinator.d.ts +8 -2
- package/dist/src/gateway/service/session-input-coordinator.js +62 -3
- package/dist/src/gateway/service/sessions-api.d.ts +1 -0
- package/dist/src/gateway/service.d.ts +3 -2
- package/dist/src/gateway/service.js +25 -15
- package/dist/src/gateway/user-turn-input.d.ts +2 -0
- package/dist/src/gateway/xopc-cloud-capability-setup.d.ts +3 -2
- package/dist/src/gateway/xopc-cloud-capability-setup.js +16 -3
- package/dist/src/infra/update-runner.js +1 -1
- package/dist/src/knowledge/connected-understanding-pipeline.d.ts +1 -1
- package/dist/src/knowledge/connected-understanding-pipeline.js +4 -2
- package/dist/src/providers/auth-runtime/resolve-auth.js +1 -1
- package/dist/src/providers/index.js +2 -2
- package/dist/src/providers/model-registry.js +1 -1
- package/dist/src/providers/register-runtime-providers.js +1 -1
- package/dist/src/retrieval/queryProfile.d.ts +1 -0
- package/dist/src/retrieval/queryProfile.js +9 -1
- package/dist/src/session/client-history.d.ts +11 -0
- package/dist/src/session/client-history.js +24 -2
- package/dist/src/session/config-types.d.ts +1 -1
- package/dist/src/session/session-title.js +2 -3
- package/dist/src/session/store.js +1 -0
- package/dist/src/session/transcript-outline.js +5 -2
- package/dist/src/session/types.d.ts +1 -0
- package/dist/src/session/user-message-display.d.ts +4 -0
- package/dist/src/session/user-message-display.js +22 -0
- package/dist/src/storage/sqlite/context-extraction-repository.d.ts +57 -0
- package/dist/src/storage/sqlite/context-extraction-repository.js +119 -0
- package/dist/src/storage/sqlite/context-relation-repository.d.ts +50 -0
- package/dist/src/storage/sqlite/context-relation-repository.js +97 -0
- package/dist/src/storage/sqlite/index.d.ts +4 -2
- package/dist/src/storage/sqlite/index.js +5 -3
- package/dist/src/storage/sqlite/migrations/126_focus_context_governance.sql +72 -0
- package/dist/src/storage/sqlite/migrations/127_context_object_origin.sql +36 -0
- package/dist/src/storage/sqlite/migrations/128_context_extraction.sql +73 -0
- package/dist/src/storage/sqlite/migrations/129_focus_versions.sql +51 -0
- package/dist/src/storage/sqlite/migrations/130_context_evidence_provenance.sql +18 -0
- package/dist/src/storage/sqlite/migrations/131_session_input_contexts.sql +2 -0
- package/dist/src/storage/sqlite/migrations/132_transcript_source_context_metadata.sql +34 -0
- package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
- package/dist/src/storage/sqlite/migrations/runner.js +3 -3
- package/dist/src/storage/sqlite/migrations/runner.ts +1 -1
- package/dist/src/storage/sqlite/schema.js +1 -1
- package/dist/src/storage/sqlite/session-input-repository.d.ts +8 -0
- package/dist/src/storage/sqlite/session-input-repository.js +19 -7
- package/dist/src/storage/sqlite/session-turn-replace-repository.d.ts +3 -0
- package/dist/src/storage/sqlite/session-turn-replace-repository.js +3 -2
- package/dist/src/storage/sqlite/transcript-repository.js +29 -3
- package/dist/src/storage/sqlite/user-context-repository.d.ts +4 -1
- package/dist/src/storage/sqlite/user-context-repository.js +65 -29
- package/dist/src/tasks/index.d.ts +1 -0
- package/dist/src/tasks/index.js +2 -1
- package/dist/src/tasks/task-deletion-service.d.ts +21 -0
- package/dist/src/tasks/task-deletion-service.js +35 -0
- package/dist/src/tasks/task-repository.js +22 -1
- package/dist/src/tui/backends/embedded-backend.js +5 -3
- package/dist/src/tui/backends/gateway-realtime-backend.js +5 -3
- package/dist/src/tui/chat-history.js +2 -1
- package/dist/src/tui/tui-agent-events.js +4 -2
- package/dist/src/tui/tui-commands.d.ts +1 -0
- package/dist/src/tui/tui-commands.js +8 -3
- package/dist/src/tui/tui-empty-session-cleanup.d.ts +0 -1
- package/dist/src/tui/tui-empty-session-cleanup.js +1 -11
- package/dist/src/tui/tui-new-session-preferences.d.ts +10 -0
- package/dist/src/tui/tui-new-session-preferences.js +32 -0
- package/dist/src/tui/tui-session-actions.d.ts +1 -0
- package/dist/src/tui/tui-session-actions.js +2 -1
- package/dist/src/tui/tui-settings.d.ts +2 -0
- package/dist/src/tui/tui-settings.js +4 -1
- package/dist/src/tui/tui-startup-resources.js +1 -1
- package/dist/src/tui/tui-types.d.ts +1 -0
- package/dist/src/tui/tui.js +58 -5
- package/dist/src/tunnel/frpc-process.js +3 -0
- package/dist/src/tunnel/tunnel-service.d.ts +2 -0
- package/dist/src/tunnel/tunnel-service.js +40 -28
- package/dist/src/user-context/context-objects.d.ts +17 -0
- package/dist/src/user-context/context-objects.js +99 -0
- package/dist/src/user-context/domain.d.ts +13 -1
- package/dist/src/user-context/evaluation/harness.d.ts +13 -0
- package/dist/src/user-context/evaluation/harness.js +31 -0
- package/dist/src/user-context/extraction/registry.d.ts +26 -0
- package/dist/src/user-context/extraction/registry.js +113 -0
- package/dist/src/user-context/extraction/repair.d.ts +19 -0
- package/dist/src/user-context/extraction/repair.js +68 -0
- package/dist/src/user-context/planner.js +214 -57
- package/dist/src/user-context/retriever.js +69 -9
- package/dist/src/user-context/sources/index.js +2 -2
- package/dist/src/user-context/sources/processing-policy.d.ts +2 -0
- package/dist/src/user-context/sources/processing-policy.js +7 -0
- package/dist/src/user-context/sources/repository.d.ts +23 -4
- package/dist/src/user-context/sources/repository.js +122 -12
- package/dist/src/user-context/sources/types.d.ts +10 -1
- package/dist/src/user-context/understanding.js +1 -1
- package/dist/src/work-discovery/service.js +21 -5
- package/dist/src/work-discovery/source-repository.js +1 -1
- package/dist/src/workflows/service/workflow-run-service.js +1 -1
- package/package.json +3 -3
- package/dist/gateway/static/root/assets/agents-Dj86bHkl.js +0 -68
- package/dist/gateway/static/root/assets/app-management-settings-panel-D-M6GN-8.js +0 -1
- package/dist/gateway/static/root/assets/appearance-settings-XDhmzdIc.js +0 -1
- package/dist/gateway/static/root/assets/apps-page-sfO835uz.js +0 -1
- package/dist/gateway/static/root/assets/automations-workspace-PptuZgoo.js +0 -6
- package/dist/gateway/static/root/assets/browser-settings-page-BoCmzMFV.js +0 -8
- package/dist/gateway/static/root/assets/capabilities-settings-panel-DhkJsU8Z.js +0 -7
- package/dist/gateway/static/root/assets/capability-presets-settings-panel-Dm7T61fE.js +0 -3
- package/dist/gateway/static/root/assets/channels-settings-dG6UFVqt.js +0 -1
- package/dist/gateway/static/root/assets/channels-status-swr-DgJxfNyK.js +0 -1
- package/dist/gateway/static/root/assets/chat-terminal-dock-CT5yoSMD.js +0 -36
- package/dist/gateway/static/root/assets/connectors-page-BC6Ft9SU.js +0 -2
- package/dist/gateway/static/root/assets/dependency-picker-DZVSgLXH.js +0 -1
- package/dist/gateway/static/root/assets/desktop-pet-settings-Bw4cCFzI.js +0 -1
- package/dist/gateway/static/root/assets/directory-picker-path-field-Cbst7IXR.js +0 -1
- package/dist/gateway/static/root/assets/extension-settings-page-C1PAKSy2.js +0 -1
- package/dist/gateway/static/root/assets/gateway-config-api-Bch9vO6t.js +0 -1
- package/dist/gateway/static/root/assets/gateway-settings-DkDxZFGG.js +0 -1
- package/dist/gateway/static/root/assets/heartbeat-settings-DXNMxy5b.js +0 -1
- package/dist/gateway/static/root/assets/home-page-CYcpVFNT.js +0 -1
- package/dist/gateway/static/root/assets/index-Dgb1R07E.css +0 -2
- package/dist/gateway/static/root/assets/index-DlOYwVFK.js +0 -108
- package/dist/gateway/static/root/assets/local-app-workbench-page-BFrgPwGE.js +0 -2
- package/dist/gateway/static/root/assets/logs-page-CPweLw3k.js +0 -2
- package/dist/gateway/static/root/assets/messages-B9WQcZ1V.js +0 -3
- package/dist/gateway/static/root/assets/notes-workbench-wieRAd1y.js +0 -4
- package/dist/gateway/static/root/assets/page-tabs-Bsluqyfb.js +0 -1
- package/dist/gateway/static/root/assets/preview-open-alternatives-BrpTWv44.js +0 -1
- package/dist/gateway/static/root/assets/project-detail-page-Cww6V7HJ.js +0 -1
- package/dist/gateway/static/root/assets/projects-page-D0LKhCCw.js +0 -1
- package/dist/gateway/static/root/assets/remote-access-hub-Sf4Pde6Z.js +0 -1
- package/dist/gateway/static/root/assets/sessions-page-S5gvgfu5.js +0 -1
- package/dist/gateway/static/root/assets/settings-advanced-gate-B3XvdEy8.js +0 -1
- package/dist/gateway/static/root/assets/settings-form-section-CiGFtdD8.js +0 -1
- package/dist/gateway/static/root/assets/setup-status-panel-CGU_Mxjr.js +0 -1
- package/dist/gateway/static/root/assets/shares-settings-k0UQ8WxO.js +0 -1
- package/dist/gateway/static/root/assets/skill-reload-api-DQ1GvL1w.js +0 -1
- package/dist/gateway/static/root/assets/skills-page-OuHd9GcN.js +0 -2
- package/dist/gateway/static/root/assets/system-settings-panel-CERqCsz2.js +0 -1
- package/dist/gateway/static/root/assets/task-detail-page-BnRNL2sn.js +0 -1
- package/dist/gateway/static/root/assets/typed-models-lib-abEJNkCO.js +0 -1
- package/dist/gateway/static/root/assets/user-context-page-Cnkaiky5.js +0 -1
- package/dist/gateway/static/root/assets/workflows-page-B_VlcKiK.js +0 -5
|
@@ -27,6 +27,7 @@ import type { SessionIndex } from '../../session/index.js';
|
|
|
27
27
|
import type { ClarifyStreamEvent } from '../clarify-bridge.js';
|
|
28
28
|
import { ClarifyBridge, type ClarifyBridgeRequest } from '../clarify-bridge.js';
|
|
29
29
|
import type { UserTurnAttachment, UserTurnInput } from '../user-turn-input.js';
|
|
30
|
+
import type { AgentSourceContext, TurnContextRef } from '../../agent/source-context/types.js';
|
|
30
31
|
import { SessionInputCoordinator, type ReplaceLatestTurnInput, type SubmitSessionInput } from './session-input-coordinator.js';
|
|
31
32
|
export interface GatewayAgentRunnerOptions {
|
|
32
33
|
bus: MessageBus;
|
|
@@ -39,6 +40,7 @@ export interface GatewayAgentRunnerOptions {
|
|
|
39
40
|
emit: (type: string, payload: unknown) => void;
|
|
40
41
|
publishRealtime: (topic: string, event: string, data: unknown) => void;
|
|
41
42
|
completeRealtimeTopic: (topic: string) => void;
|
|
43
|
+
resolveTurnContext: (ref: TurnContextRef) => Promise<AgentSourceContext | null>;
|
|
42
44
|
}
|
|
43
45
|
export declare class GatewayAgentRunner {
|
|
44
46
|
private readonly opts;
|
|
@@ -64,6 +66,7 @@ export declare class GatewayAgentRunner {
|
|
|
64
66
|
runAgent(message: string, channel: string, chatId: string, origin: TurnOrigin, attachments?: UserTurnAttachment[], thinking?: string, runOptions?: {
|
|
65
67
|
signal?: AbortSignal;
|
|
66
68
|
runId?: string;
|
|
69
|
+
sourceContexts?: AgentSourceContext[];
|
|
67
70
|
}): AsyncGenerator<{
|
|
68
71
|
type: string;
|
|
69
72
|
[key: string]: unknown;
|
|
@@ -77,7 +80,7 @@ export declare class GatewayAgentRunner {
|
|
|
77
80
|
state: import("../../storage/sqlite/session-input-repository.js").SessionInputState;
|
|
78
81
|
} | {
|
|
79
82
|
ok: false;
|
|
80
|
-
code: "BAD_REQUEST" | "QUEUE_FULL";
|
|
83
|
+
code: "BAD_REQUEST" | "QUEUE_FULL" | "CONTEXT_UNAVAILABLE";
|
|
81
84
|
}>;
|
|
82
85
|
replaceLatestSessionTurn(input: ReplaceLatestTurnInput): Promise<{
|
|
83
86
|
ok: true;
|
|
@@ -85,18 +88,20 @@ export declare class GatewayAgentRunner {
|
|
|
85
88
|
state: import("../../storage/sqlite/session-input-repository.js").SessionInputState;
|
|
86
89
|
} | {
|
|
87
90
|
ok: false;
|
|
88
|
-
code: "BAD_REQUEST" | "TARGET_NOT_FOUND" | "NOT_LATEST" | "SESSION_BUSY";
|
|
91
|
+
code: "BAD_REQUEST" | "TARGET_NOT_FOUND" | "NOT_LATEST" | "SESSION_BUSY" | "CONTEXT_UNAVAILABLE";
|
|
89
92
|
}>;
|
|
90
93
|
getSessionInputState(sessionKey: string): import("../../storage/sqlite/session-input-repository.js").SessionInputState;
|
|
91
94
|
updateSessionInput(sessionKey: string, id: string, body: {
|
|
92
95
|
version: number;
|
|
93
96
|
content?: string;
|
|
94
97
|
attachments?: UserTurnAttachment[];
|
|
98
|
+
contextRefs?: TurnContextRef[];
|
|
95
99
|
thinking?: string;
|
|
96
100
|
position?: number;
|
|
97
101
|
}): Promise<{
|
|
98
102
|
ok: boolean;
|
|
99
103
|
state: import("../../storage/sqlite/session-input-repository.js").SessionInputState;
|
|
104
|
+
contextUnavailable?: boolean;
|
|
100
105
|
}>;
|
|
101
106
|
removeSessionInput(sessionKey: string, id: string, version: number): {
|
|
102
107
|
ok: boolean;
|
|
@@ -2,11 +2,13 @@ import { createLogger } from "../../utils/logger/index.js";
|
|
|
2
2
|
import { init_logger } from "../../utils/logger.js";
|
|
3
3
|
import { ClarifyBridge } from "../clarify-bridge.js";
|
|
4
4
|
import { runGatewayAgent } from "./run-gateway-agent.js";
|
|
5
|
+
import { fitSourceContextsToBudget } from "../../agent/source-context/budget.js";
|
|
5
6
|
import { SessionInputCoordinator } from "./session-input-coordinator.js";
|
|
6
7
|
import crypto from "node:crypto";
|
|
7
8
|
//#region src/gateway/service/agent-runner.ts
|
|
8
9
|
init_logger();
|
|
9
10
|
const log = createLogger("Gateway:AgentRunner");
|
|
11
|
+
const MAX_TURN_CONTEXTS = 5;
|
|
10
12
|
var GatewayAgentRunner = class {
|
|
11
13
|
opts;
|
|
12
14
|
/** Per-run abort for webchat (POST /api/agent/abort or client disconnect). */
|
|
@@ -23,7 +25,10 @@ var GatewayAgentRunner = class {
|
|
|
23
25
|
this.inputs = new SessionInputCoordinator({
|
|
24
26
|
sessionExists: async (sessionKey) => Boolean(await opts.sessionIndex.getSessionMetadata(sessionKey)),
|
|
25
27
|
execute: async (input) => {
|
|
26
|
-
const generator = this.runAgent(input.content, "webchat", input.sessionKey, input.origin, input.attachments, input.thinking, {
|
|
28
|
+
const generator = this.runAgent(input.content, "webchat", input.sessionKey, input.origin, input.attachments, input.thinking, {
|
|
29
|
+
runId: input.runId,
|
|
30
|
+
sourceContexts: input.sourceContexts
|
|
31
|
+
});
|
|
27
32
|
let result;
|
|
28
33
|
while (true) {
|
|
29
34
|
const step = await generator.next();
|
|
@@ -46,6 +51,21 @@ var GatewayAgentRunner = class {
|
|
|
46
51
|
size: ref.size
|
|
47
52
|
}));
|
|
48
53
|
},
|
|
54
|
+
prepareContexts: async (refs) => {
|
|
55
|
+
if (!refs?.length) return void 0;
|
|
56
|
+
const unique = /* @__PURE__ */ new Map();
|
|
57
|
+
for (const ref of refs) {
|
|
58
|
+
const sourceId = ref.sourceId.trim();
|
|
59
|
+
if (sourceId) unique.set(`${ref.kind}:${sourceId}`, {
|
|
60
|
+
...ref,
|
|
61
|
+
sourceId
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
if (unique.size > MAX_TURN_CONTEXTS) throw new Error(`A message can reference at most ${MAX_TURN_CONTEXTS} notes`);
|
|
65
|
+
const contexts = await Promise.all([...unique.values()].map((ref) => opts.resolveTurnContext(ref)));
|
|
66
|
+
if (contexts.some((context) => context === null)) throw new Error("A referenced note is no longer available");
|
|
67
|
+
return fitSourceContextsToBudget(contexts.filter((context) => context !== null));
|
|
68
|
+
},
|
|
49
69
|
steer: (sessionKey, content) => opts.getAgentService().turnDispatcher.steerWebchatSession(sessionKey, content),
|
|
50
70
|
emit: opts.emit
|
|
51
71
|
});
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { createLogger } from "../../utils/logger/index.js";
|
|
2
2
|
import { init_logger } from "../../utils/logger.js";
|
|
3
|
-
import { getModelRegistry } from "../../providers/model-registry.js";
|
|
4
3
|
import { loadConfig, saveConfig } from "../../config/loader.js";
|
|
4
|
+
import { getModelRegistry } from "../../providers/model-registry.js";
|
|
5
5
|
import { init_providers } from "../../providers/index.js";
|
|
6
6
|
import { disposeAllSessionMcpRuntimes } from "../../agent/mcp/bundle-mcp-runtime.js";
|
|
7
7
|
import { reloadImageGenerationProviders } from "../../agent/image/generation/provider-registry.js";
|
|
8
8
|
import "../../agent/mcp/bundle-mcp-tools.js";
|
|
9
9
|
import { ConfigHotReloader } from "../../config/reload.js";
|
|
10
10
|
import "../../config/index.js";
|
|
11
|
-
import { computeBundledExtensionExtensionsPatch } from "../../extensions/bundled-extension-activation.js";
|
|
12
11
|
import { sanitizeTunnelConfig } from "../../tunnel/tunnel-config.js";
|
|
12
|
+
import { computeBundledExtensionExtensionsPatch } from "../../extensions/bundled-extension-activation.js";
|
|
13
13
|
//#region src/gateway/service/config-coordinator.ts
|
|
14
14
|
init_providers();
|
|
15
15
|
init_logger();
|
|
@@ -5,6 +5,7 @@ import type { MessageBus } from '../../infra/bus/index.js';
|
|
|
5
5
|
import type { SessionIndex } from '../../session/index.js';
|
|
6
6
|
import type { ChatStreamEvent } from '../chat-stream/protocol.js';
|
|
7
7
|
import type { UserTurnAttachment } from '../user-turn-input.js';
|
|
8
|
+
import type { AgentSourceContext } from '../../agent/source-context/types.js';
|
|
8
9
|
export type RunGatewayAgentYield = ChatStreamEvent;
|
|
9
10
|
export type RunGatewayAgentDeps = {
|
|
10
11
|
config: Config;
|
|
@@ -23,6 +24,7 @@ export type RunGatewayAgentDeps = {
|
|
|
23
24
|
export declare function runGatewayAgent(deps: RunGatewayAgentDeps, message: string, channel: string, chatId: string, origin: TurnOrigin, attachments?: UserTurnAttachment[], thinking?: string, runOptions?: {
|
|
24
25
|
signal?: AbortSignal;
|
|
25
26
|
runId?: string;
|
|
27
|
+
sourceContexts?: AgentSourceContext[];
|
|
26
28
|
}): AsyncGenerator<RunGatewayAgentYield, {
|
|
27
29
|
status: string;
|
|
28
30
|
summary: string;
|
|
@@ -131,7 +131,8 @@ async function* runGatewayAgent(deps, message, channel, chatId, origin, attachme
|
|
|
131
131
|
try {
|
|
132
132
|
const eventStream = agentService.turnDispatcher.processDirectStreaming(stampedMessage, sessionKey, origin, prepared, thinking, {
|
|
133
133
|
signal: mergedSignal,
|
|
134
|
-
runId
|
|
134
|
+
runId,
|
|
135
|
+
sourceContexts: runOptions?.sourceContexts
|
|
135
136
|
});
|
|
136
137
|
const mappedEvents = (async function* () {
|
|
137
138
|
for await (const event of eventStream) yield* mapper.map(event);
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { TurnOrigin } from '@xopcai/endpoint-tools-protocol';
|
|
2
2
|
import type { UserTurnAttachment } from '../user-turn-input.js';
|
|
3
|
+
import { type AgentSourceContext, type TurnContextRef } from '../../agent/source-context/types.js';
|
|
3
4
|
import { type SessionInputDelivery, type SessionInputState } from '../../storage/sqlite/index.js';
|
|
4
5
|
export type SubmitSessionInput = {
|
|
5
6
|
sessionKey: string;
|
|
@@ -7,6 +8,7 @@ export type SubmitSessionInput = {
|
|
|
7
8
|
delivery: SessionInputDelivery;
|
|
8
9
|
content: string;
|
|
9
10
|
attachments?: UserTurnAttachment[];
|
|
11
|
+
contextRefs?: TurnContextRef[];
|
|
10
12
|
thinking?: string;
|
|
11
13
|
origin: TurnOrigin;
|
|
12
14
|
};
|
|
@@ -24,6 +26,7 @@ export declare class SessionInputCoordinator {
|
|
|
24
26
|
sessionKey: string;
|
|
25
27
|
content: string;
|
|
26
28
|
attachments?: UserTurnAttachment[];
|
|
29
|
+
sourceContexts?: AgentSourceContext[];
|
|
27
30
|
thinking?: string;
|
|
28
31
|
origin: TurnOrigin;
|
|
29
32
|
}) => Promise<{
|
|
@@ -31,6 +34,7 @@ export declare class SessionInputCoordinator {
|
|
|
31
34
|
summary: string;
|
|
32
35
|
}>;
|
|
33
36
|
prepareAttachments: (sessionKey: string, attachments?: UserTurnAttachment[]) => Promise<UserTurnAttachment[] | undefined>;
|
|
37
|
+
prepareContexts: (contextRefs?: TurnContextRef[]) => Promise<AgentSourceContext[] | undefined>;
|
|
34
38
|
steer: (sessionKey: string, content: string) => Promise<boolean>;
|
|
35
39
|
emit: (type: string, payload: unknown) => void;
|
|
36
40
|
});
|
|
@@ -43,7 +47,7 @@ export declare class SessionInputCoordinator {
|
|
|
43
47
|
state: SessionInputState;
|
|
44
48
|
} | {
|
|
45
49
|
ok: false;
|
|
46
|
-
code: 'BAD_REQUEST' | 'QUEUE_FULL';
|
|
50
|
+
code: 'BAD_REQUEST' | 'QUEUE_FULL' | 'CONTEXT_UNAVAILABLE';
|
|
47
51
|
}>;
|
|
48
52
|
replaceLatestTurn(input: ReplaceLatestTurnInput, beforeReplace: () => Promise<void>): Promise<{
|
|
49
53
|
ok: true;
|
|
@@ -51,7 +55,7 @@ export declare class SessionInputCoordinator {
|
|
|
51
55
|
state: SessionInputState;
|
|
52
56
|
} | {
|
|
53
57
|
ok: false;
|
|
54
|
-
code: 'BAD_REQUEST' | 'TARGET_NOT_FOUND' | 'NOT_LATEST' | 'SESSION_BUSY';
|
|
58
|
+
code: 'BAD_REQUEST' | 'TARGET_NOT_FOUND' | 'NOT_LATEST' | 'SESSION_BUSY' | 'CONTEXT_UNAVAILABLE';
|
|
55
59
|
}>;
|
|
56
60
|
private submitLocked;
|
|
57
61
|
drain(sessionKey: string): Promise<void>;
|
|
@@ -59,11 +63,13 @@ export declare class SessionInputCoordinator {
|
|
|
59
63
|
version: number;
|
|
60
64
|
content?: string;
|
|
61
65
|
attachments?: UserTurnAttachment[];
|
|
66
|
+
contextRefs?: TurnContextRef[];
|
|
62
67
|
thinking?: string;
|
|
63
68
|
position?: number;
|
|
64
69
|
}): Promise<{
|
|
65
70
|
ok: boolean;
|
|
66
71
|
state: SessionInputState;
|
|
72
|
+
contextUnavailable?: boolean;
|
|
67
73
|
}>;
|
|
68
74
|
remove(sessionKey: string, id: string, version: number): {
|
|
69
75
|
ok: boolean;
|
|
@@ -1,14 +1,22 @@
|
|
|
1
1
|
import { createLogger } from "../../utils/logger/index.js";
|
|
2
2
|
import { init_logger } from "../../utils/logger.js";
|
|
3
|
-
import { cancelQueuedSessionInput, claimNextSessionInput, findSessionInput, finishSessionInputRun, getSessionInputState, insertSessionInput, mutateQueuedSessionInput, recoverSessionInputState, setSessionInputStatus } from "../../storage/sqlite/session-input-repository.js";
|
|
3
|
+
import { cancelQueuedSessionInput, claimNextSessionInput, findSessionInput, finishSessionInputRun, getSessionInputById, getSessionInputState, insertSessionInput, mutateQueuedSessionInput, recoverSessionInputState, setSessionInputStatus } from "../../storage/sqlite/session-input-repository.js";
|
|
4
4
|
import { replaceLatestSessionTurnAndQueueInput, validateLatestSessionTurnTarget } from "../../storage/sqlite/session-turn-replace-repository.js";
|
|
5
5
|
import "../../storage/sqlite/index.js";
|
|
6
|
+
import { summarizeSourceContext } from "../../agent/source-context/types.js";
|
|
6
7
|
import { deleteMediaUrisNoLongerReferenced } from "../../media/session-references.js";
|
|
7
8
|
import crypto from "node:crypto";
|
|
8
9
|
//#region src/gateway/service/session-input-coordinator.ts
|
|
9
10
|
init_logger();
|
|
10
11
|
const log = createLogger("SessionInputCoordinator");
|
|
11
12
|
const MAX_PENDING_INPUTS = 10;
|
|
13
|
+
function contextRefsMatchFrozenSnapshot(requested, frozen) {
|
|
14
|
+
if (requested.length !== (frozen?.length ?? 0)) return false;
|
|
15
|
+
return requested.every((ref, index) => {
|
|
16
|
+
const snapshot = frozen?.[index];
|
|
17
|
+
return snapshot?.kind === ref.kind && snapshot.sourceId === ref.sourceId && ref.expectedVersion === snapshot.version;
|
|
18
|
+
});
|
|
19
|
+
}
|
|
12
20
|
var SessionInputCoordinator = class {
|
|
13
21
|
draining = /* @__PURE__ */ new Set();
|
|
14
22
|
submissionTails = /* @__PURE__ */ new Map();
|
|
@@ -69,12 +77,27 @@ var SessionInputCoordinator = class {
|
|
|
69
77
|
if (target.ok === false) return target;
|
|
70
78
|
await beforeReplace();
|
|
71
79
|
const attachments = await this.deps.prepareAttachments(sessionKey, input.attachments);
|
|
80
|
+
let sourceContexts;
|
|
81
|
+
try {
|
|
82
|
+
sourceContexts = await this.deps.prepareContexts(input.contextRefs);
|
|
83
|
+
} catch (err) {
|
|
84
|
+
log.warn({
|
|
85
|
+
err,
|
|
86
|
+
sessionKey
|
|
87
|
+
}, "Session input context preparation failed");
|
|
88
|
+
return {
|
|
89
|
+
ok: false,
|
|
90
|
+
code: "CONTEXT_UNAVAILABLE"
|
|
91
|
+
};
|
|
92
|
+
}
|
|
72
93
|
const result = replaceLatestSessionTurnAndQueueInput({
|
|
73
94
|
sessionKey,
|
|
74
95
|
targetTurnId,
|
|
75
96
|
clientMessageId,
|
|
76
97
|
content,
|
|
77
98
|
attachments,
|
|
99
|
+
contextRefs: sourceContexts?.map(summarizeSourceContext),
|
|
100
|
+
contextSnapshots: sourceContexts,
|
|
78
101
|
thinking: input.thinking,
|
|
79
102
|
origin: input.origin
|
|
80
103
|
});
|
|
@@ -121,8 +144,21 @@ var SessionInputCoordinator = class {
|
|
|
121
144
|
code: "QUEUE_FULL"
|
|
122
145
|
};
|
|
123
146
|
const attachments = await this.deps.prepareAttachments(sessionKey, input.attachments);
|
|
147
|
+
let sourceContexts;
|
|
148
|
+
try {
|
|
149
|
+
sourceContexts = await this.deps.prepareContexts(input.contextRefs);
|
|
150
|
+
} catch (err) {
|
|
151
|
+
log.warn({
|
|
152
|
+
err,
|
|
153
|
+
sessionKey
|
|
154
|
+
}, "Session input context preparation failed");
|
|
155
|
+
return {
|
|
156
|
+
ok: false,
|
|
157
|
+
code: "CONTEXT_UNAVAILABLE"
|
|
158
|
+
};
|
|
159
|
+
}
|
|
124
160
|
const runtime = this.snapshot(sessionKey);
|
|
125
|
-
const canSteer = input.origin.type !== "endpoint" && input.delivery === "steer" && runtime.activeRunId !== void 0 && !attachments?.length;
|
|
161
|
+
const canSteer = input.origin.type !== "endpoint" && input.delivery === "steer" && runtime.activeRunId !== void 0 && !attachments?.length && !sourceContexts?.length;
|
|
126
162
|
const effectiveDelivery = canSteer ? "steer" : "next";
|
|
127
163
|
const row = insertSessionInput({
|
|
128
164
|
id: crypto.randomUUID(),
|
|
@@ -133,6 +169,8 @@ var SessionInputCoordinator = class {
|
|
|
133
169
|
status: canSteer ? "injecting" : "queued",
|
|
134
170
|
content,
|
|
135
171
|
attachments,
|
|
172
|
+
contextRefs: sourceContexts?.map(summarizeSourceContext),
|
|
173
|
+
contextSnapshots: sourceContexts,
|
|
136
174
|
thinking: input.thinking,
|
|
137
175
|
origin: input.origin,
|
|
138
176
|
targetRunId: canSteer ? runtime.activeRunId : void 0
|
|
@@ -179,6 +217,7 @@ var SessionInputCoordinator = class {
|
|
|
179
217
|
sessionKey,
|
|
180
218
|
content: input.content,
|
|
181
219
|
attachments: input.attachments,
|
|
220
|
+
sourceContexts: input.contextSnapshots,
|
|
182
221
|
thinking: input.thinking,
|
|
183
222
|
origin: input.origin
|
|
184
223
|
});
|
|
@@ -204,11 +243,31 @@ var SessionInputCoordinator = class {
|
|
|
204
243
|
}
|
|
205
244
|
async update(sessionKey, id, body) {
|
|
206
245
|
const attachments = body.attachments === void 0 ? void 0 : await this.deps.prepareAttachments(sessionKey, body.attachments);
|
|
246
|
+
let sourceContexts;
|
|
247
|
+
if (body.contextRefs !== void 0) {
|
|
248
|
+
const existing = getSessionInputById(sessionKey, id);
|
|
249
|
+
if (!contextRefsMatchFrozenSnapshot(body.contextRefs, existing?.contextRefs)) try {
|
|
250
|
+
sourceContexts = await this.deps.prepareContexts(body.contextRefs) ?? [];
|
|
251
|
+
} catch (err) {
|
|
252
|
+
log.warn({
|
|
253
|
+
err,
|
|
254
|
+
sessionKey,
|
|
255
|
+
inputId: id
|
|
256
|
+
}, "Queued input context preparation failed");
|
|
257
|
+
return {
|
|
258
|
+
ok: false,
|
|
259
|
+
contextUnavailable: true,
|
|
260
|
+
state: this.snapshot(sessionKey)
|
|
261
|
+
};
|
|
262
|
+
}
|
|
263
|
+
}
|
|
207
264
|
const ok = mutateQueuedSessionInput({
|
|
208
265
|
sessionKey,
|
|
209
266
|
id,
|
|
210
267
|
...body,
|
|
211
|
-
attachments
|
|
268
|
+
attachments,
|
|
269
|
+
contextRefs: sourceContexts?.map(summarizeSourceContext),
|
|
270
|
+
contextSnapshots: sourceContexts
|
|
212
271
|
});
|
|
213
272
|
return {
|
|
214
273
|
ok,
|
|
@@ -93,6 +93,7 @@ export declare class GatewaySessionsApi {
|
|
|
93
93
|
verboseLevel?: string;
|
|
94
94
|
workingDirectory?: string;
|
|
95
95
|
responseLanguage?: string | null;
|
|
96
|
+
userContextMode?: 'enabled' | 'off' | 'temporary';
|
|
96
97
|
}): Promise<import("../../agent/session/session-config-service.js").PatchSessionAgentConfigResult>;
|
|
97
98
|
listCompactionBoundaries(key: string): Promise<import("../../session/types.js").CompactionBoundarySummary[]>;
|
|
98
99
|
restoreBeforeCompactionBoundary(key: string, compactionId: string): Promise<void>;
|
|
@@ -139,7 +139,7 @@ export declare class GatewayService {
|
|
|
139
139
|
state: import("../storage/sqlite/session-input-repository.js").SessionInputState;
|
|
140
140
|
} | {
|
|
141
141
|
ok: false;
|
|
142
|
-
code: "BAD_REQUEST" | "QUEUE_FULL";
|
|
142
|
+
code: "BAD_REQUEST" | "QUEUE_FULL" | "CONTEXT_UNAVAILABLE";
|
|
143
143
|
}>;
|
|
144
144
|
replaceLatestSessionTurn(...args: Parameters<GatewayAgentRunner['replaceLatestSessionTurn']>): Promise<{
|
|
145
145
|
ok: true;
|
|
@@ -147,12 +147,13 @@ export declare class GatewayService {
|
|
|
147
147
|
state: import("../storage/sqlite/session-input-repository.js").SessionInputState;
|
|
148
148
|
} | {
|
|
149
149
|
ok: false;
|
|
150
|
-
code: "BAD_REQUEST" | "TARGET_NOT_FOUND" | "NOT_LATEST" | "SESSION_BUSY";
|
|
150
|
+
code: "BAD_REQUEST" | "TARGET_NOT_FOUND" | "NOT_LATEST" | "SESSION_BUSY" | "CONTEXT_UNAVAILABLE";
|
|
151
151
|
}>;
|
|
152
152
|
getSessionInputState(...args: Parameters<GatewayAgentRunner['getSessionInputState']>): import("../storage/sqlite/session-input-repository.js").SessionInputState;
|
|
153
153
|
updateSessionInput(...args: Parameters<GatewayAgentRunner['updateSessionInput']>): Promise<{
|
|
154
154
|
ok: boolean;
|
|
155
155
|
state: import("../storage/sqlite/session-input-repository.js").SessionInputState;
|
|
156
|
+
contextUnavailable?: boolean;
|
|
156
157
|
}>;
|
|
157
158
|
removeSessionInput(...args: Parameters<GatewayAgentRunner['removeSessionInput']>): {
|
|
158
159
|
ok: boolean;
|
|
@@ -9,14 +9,14 @@ import { closeXopcDatabase, openXopcDatabase } from "../storage/sqlite/connectio
|
|
|
9
9
|
import "../storage/sqlite/index.js";
|
|
10
10
|
import { getAgentDefaultModelRef, init_schema } from "../config/schema.js";
|
|
11
11
|
import { init_agent_scope, listAgentEntries, normalizeAgentId, resolveDefaultAgentId } from "../agent/agent-scope.js";
|
|
12
|
+
import { buildSessionKey, init_session_key, sanitizeSegment } from "../routing/session-key.js";
|
|
13
|
+
import { getDefaultAgentId, init_resolve_route } from "../routing/resolve-route.js";
|
|
12
14
|
import { init_paths, resolveAgentDir, resolveConfigPath, resolveExtensionsDir } from "../config/paths.js";
|
|
13
|
-
import { prewarmModelRegistry } from "../providers/model-registry.js";
|
|
14
15
|
import { areExtensionsGloballyDisabled } from "../extensions/discover-extensions.js";
|
|
15
16
|
import { buildExtensionMetadataSnapshot } from "../extensions/extension-metadata-snapshot.js";
|
|
16
17
|
import { buildChannelCatalogForConfig, buildChannelCatalogFromSnapshot, init_channel_catalog_service } from "../channels/catalog/channel-catalog-service.js";
|
|
17
18
|
import { loadConfig, saveConfig } from "../config/loader.js";
|
|
18
|
-
import {
|
|
19
|
-
import { getDefaultAgentId, init_resolve_route } from "../routing/resolve-route.js";
|
|
19
|
+
import { prewarmModelRegistry } from "../providers/model-registry.js";
|
|
20
20
|
import { init_providers, providers_exports } from "../providers/index.js";
|
|
21
21
|
import { TaskRepository } from "../tasks/task-repository.js";
|
|
22
22
|
import { TaskConversationRepository } from "../tasks/task-conversation-repository.js";
|
|
@@ -50,18 +50,18 @@ import { registerClarifyBridge } from "./clarify-runtime.js";
|
|
|
50
50
|
import { ChannelManager } from "../channels/manager.js";
|
|
51
51
|
import { getWorkspacePath } from "../config/workspace-path-helpers.js";
|
|
52
52
|
import "../config/index.js";
|
|
53
|
-
import { DiscussionService } from "../discussions/service.js";
|
|
54
|
-
import { DiscussionOrganizer } from "../discussions/organizer.js";
|
|
55
|
-
import { DiscussionLiveWorker } from "../discussions/live-worker.js";
|
|
56
|
-
import { DiscussionOrganizerWorker } from "../discussions/organizer-worker.js";
|
|
57
|
-
import { DiscussionSealer } from "../discussions/sealer.js";
|
|
58
|
-
import "../discussions/index.js";
|
|
59
53
|
import { ManagedComposioEventPoller } from "../connectors/composio-managed-events.js";
|
|
60
54
|
import { startConnectedKnowledgeCoordinator } from "../knowledge/coordinator.js";
|
|
61
55
|
import "../knowledge/index.js";
|
|
62
56
|
import { startConnectorLearningCoordinator } from "../connectors/learning-coordinator.js";
|
|
63
57
|
import { ConnectedSourceChangePublisher } from "../connectors/source-change-publisher.js";
|
|
64
58
|
import { startConnectorSupervisor } from "../connectors/supervisor.js";
|
|
59
|
+
import { DiscussionService } from "../discussions/service.js";
|
|
60
|
+
import { DiscussionOrganizer } from "../discussions/organizer.js";
|
|
61
|
+
import { DiscussionLiveWorker } from "../discussions/live-worker.js";
|
|
62
|
+
import { DiscussionOrganizerWorker } from "../discussions/organizer-worker.js";
|
|
63
|
+
import { DiscussionSealer } from "../discussions/sealer.js";
|
|
64
|
+
import "../discussions/index.js";
|
|
65
65
|
import { EndpointToolRuntime } from "../endpoint-tools/runtime.js";
|
|
66
66
|
import "../endpoint-tools/index.js";
|
|
67
67
|
import { assertGatewayAuthConfigured, extractToken, resolveGatewayAuth, validateToken } from "./auth.js";
|
|
@@ -369,6 +369,18 @@ var GatewayService = class {
|
|
|
369
369
|
getAgentService: () => this.ensureAgentService(),
|
|
370
370
|
getChannelManager: () => this.channelManager,
|
|
371
371
|
getConfig: () => this.config,
|
|
372
|
+
resolveTurnContext: async (ref) => {
|
|
373
|
+
if (ref.kind !== "note") return null;
|
|
374
|
+
const note = await this.notesService.getNote(ref.sourceId);
|
|
375
|
+
if (!note || note.status === "trashed") return null;
|
|
376
|
+
if (ref.expectedVersion && ref.expectedVersion !== String(note.updatedAt)) return null;
|
|
377
|
+
const { images: _images, ...snapshot } = await buildNoteAgentContext({
|
|
378
|
+
note,
|
|
379
|
+
notesService: this.notesService,
|
|
380
|
+
config: this.config
|
|
381
|
+
});
|
|
382
|
+
return snapshot;
|
|
383
|
+
},
|
|
372
384
|
emit: (type, payload) => this.emit(type, payload),
|
|
373
385
|
publishRealtime: (topic, event, data) => {
|
|
374
386
|
this.realtime.broker.publish(topic, event, data);
|
|
@@ -1161,8 +1173,9 @@ var GatewayService = class {
|
|
|
1161
1173
|
* PATCH saves update config in memory without re-running gateway startup, so this must run on save too.
|
|
1162
1174
|
*/
|
|
1163
1175
|
async reconcileBrowserExtensionServer() {
|
|
1164
|
-
const {
|
|
1165
|
-
|
|
1176
|
+
const { resolveExtensionBridgeServerConfig } = await import("../browser/backend-from-config.js");
|
|
1177
|
+
const bridgeConfig = resolveExtensionBridgeServerConfig(this.config);
|
|
1178
|
+
if (!bridgeConfig) {
|
|
1166
1179
|
if (this.browserExtensionRelease) {
|
|
1167
1180
|
await this.browserExtensionRelease();
|
|
1168
1181
|
this.browserExtensionRelease = null;
|
|
@@ -1172,10 +1185,7 @@ var GatewayService = class {
|
|
|
1172
1185
|
}
|
|
1173
1186
|
return;
|
|
1174
1187
|
}
|
|
1175
|
-
const port =
|
|
1176
|
-
const host = "127.0.0.1";
|
|
1177
|
-
const connectionTimeout = void 0;
|
|
1178
|
-
const commandTimeout = void 0;
|
|
1188
|
+
const { port, host, connectionTimeout, commandTimeout } = bridgeConfig;
|
|
1179
1189
|
const bindKey = `${host}:${port}`;
|
|
1180
1190
|
if (this.browserExtensionRelease && this.browserExtensionBindKey === bindKey) return;
|
|
1181
1191
|
if (this.browserExtensionRelease) {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { MediaRef } from '../media/types.js';
|
|
2
|
+
import type { TurnContextRef } from '../agent/source-context/types.js';
|
|
2
3
|
export interface UserTurnAttachment {
|
|
3
4
|
id?: string;
|
|
4
5
|
type: string;
|
|
@@ -13,5 +14,6 @@ export interface UserTurnAttachment {
|
|
|
13
14
|
export interface UserTurnInput {
|
|
14
15
|
text: string;
|
|
15
16
|
attachments?: UserTurnAttachment[];
|
|
17
|
+
contextRefs?: TurnContextRef[];
|
|
16
18
|
}
|
|
17
19
|
export declare function mediaRefsToUserTurnAttachments(media: MediaRef[] | undefined): UserTurnAttachment[] | undefined;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { Config } from '../config/schema.js';
|
|
2
2
|
import type { CatalogSource } from '../providers/model-catalog-store.js';
|
|
3
|
-
type CloudCapability = 'vision' | 'image-generation' | 'stt' | 'tts';
|
|
3
|
+
type CloudCapability = 'chat' | 'vision' | 'image-generation' | 'stt' | 'tts';
|
|
4
4
|
export interface XopcCloudCapabilitySelection {
|
|
5
|
+
chat: string;
|
|
5
6
|
vision: string;
|
|
6
7
|
imageGeneration: string;
|
|
7
8
|
stt: string;
|
|
@@ -29,7 +30,7 @@ export declare function selectXopcCloudCapabilities(source: CatalogSource): {
|
|
|
29
30
|
selection?: XopcCloudCapabilitySelection;
|
|
30
31
|
missing: CloudCapability[];
|
|
31
32
|
};
|
|
32
|
-
/** Build one atomic config update for
|
|
33
|
+
/** Build one atomic config update for the managed XOPC Cloud chat and media capabilities. */
|
|
33
34
|
export declare function prepareXopcCloudCapabilitySetup(config: Config, source: CatalogSource): PrepareXopcCloudCapabilitySetupResult;
|
|
34
35
|
export declare function applyXopcCloudCapabilitySetup(service: {
|
|
35
36
|
currentConfig: Config;
|
|
@@ -5,29 +5,33 @@ import { ensureGlobalDefaultsConfig, prepareUpdateGlobalDefaults } from "./globa
|
|
|
5
5
|
init_model_catalog_store();
|
|
6
6
|
function supportsCapability(model, capability) {
|
|
7
7
|
if (model.availability !== "available") return false;
|
|
8
|
+
if (capability === "chat") return model.kind === "language" && (model.operations.includes("chat.completions") || model.operations.includes("responses"));
|
|
8
9
|
if (capability === "vision") return model.kind === "language" && model.input.includes("image");
|
|
9
10
|
if (capability === "image-generation") return model.kind === "image" && model.operations.includes("images.generate");
|
|
10
11
|
if (capability === "stt") return model.kind === "stt" && model.operations.includes("audio.transcription");
|
|
11
12
|
return model.kind === "tts" && model.operations.includes("audio.speech") && Boolean(model.tts?.defaultVoice);
|
|
12
13
|
}
|
|
13
14
|
function recommendedModel(source, capability) {
|
|
14
|
-
const recommendation = source.recommended?.[capability];
|
|
15
|
+
const recommendation = capability === "chat" ? source.recommendedModel ?? void 0 : source.recommended?.[capability];
|
|
15
16
|
return source.models.filter((model) => supportsCapability(model, capability)).sort((left, right) => compareCatalogModels(left, right, recommendation))[0];
|
|
16
17
|
}
|
|
17
18
|
function selectXopcCloudCapabilities(source) {
|
|
19
|
+
const chat = recommendedModel(source, "chat");
|
|
18
20
|
const vision = recommendedModel(source, "vision");
|
|
19
21
|
const imageGeneration = recommendedModel(source, "image-generation");
|
|
20
22
|
const stt = recommendedModel(source, "stt");
|
|
21
23
|
const tts = recommendedModel(source, "tts");
|
|
22
24
|
const missing = [];
|
|
25
|
+
if (!chat) missing.push("chat");
|
|
23
26
|
if (!vision) missing.push("vision");
|
|
24
27
|
if (!imageGeneration) missing.push("image-generation");
|
|
25
28
|
if (!stt) missing.push("stt");
|
|
26
29
|
if (!tts) missing.push("tts");
|
|
27
|
-
if (!vision || !imageGeneration || !stt || !tts || !tts.tts?.defaultVoice) return { missing };
|
|
30
|
+
if (!chat || !vision || !imageGeneration || !stt || !tts || !tts.tts?.defaultVoice) return { missing };
|
|
28
31
|
return {
|
|
29
32
|
missing,
|
|
30
33
|
selection: {
|
|
34
|
+
chat: chat.id,
|
|
31
35
|
vision: vision.id,
|
|
32
36
|
imageGeneration: imageGeneration.id,
|
|
33
37
|
stt: stt.id,
|
|
@@ -36,7 +40,7 @@ function selectXopcCloudCapabilities(source) {
|
|
|
36
40
|
}
|
|
37
41
|
};
|
|
38
42
|
}
|
|
39
|
-
/** Build one atomic config update for
|
|
43
|
+
/** Build one atomic config update for the managed XOPC Cloud chat and media capabilities. */
|
|
40
44
|
function prepareXopcCloudCapabilitySetup(config, source) {
|
|
41
45
|
const selected = selectXopcCloudCapabilities(source);
|
|
42
46
|
if (!selected.selection) return {
|
|
@@ -48,8 +52,17 @@ function prepareXopcCloudCapabilitySetup(config, source) {
|
|
|
48
52
|
const normalized = ensureGlobalDefaultsConfig(config);
|
|
49
53
|
const presetId = normalized.agents.defaultPreset;
|
|
50
54
|
const currentModels = normalized.agents.capabilityPresets[presetId]?.models;
|
|
55
|
+
const defaultRole = currentModels?.defaultRole ?? "deep";
|
|
51
56
|
const defaultsUpdate = prepareUpdateGlobalDefaults(normalized, { models: {
|
|
52
57
|
...currentModels,
|
|
58
|
+
defaultRole,
|
|
59
|
+
roles: {
|
|
60
|
+
...currentModels?.roles ?? {},
|
|
61
|
+
[defaultRole]: {
|
|
62
|
+
...currentModels?.roles?.[defaultRole],
|
|
63
|
+
model: `xopc-cloud/${selection.chat}`
|
|
64
|
+
}
|
|
65
|
+
},
|
|
53
66
|
imageModel: {
|
|
54
67
|
...currentModels?.imageModel,
|
|
55
68
|
primary: `xopc-cloud/${selection.vision}`
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { runPostUpdateExtensionSync } from "../extensions/update.js";
|
|
2
1
|
import "./update-channels.js";
|
|
3
2
|
import { compareSemver, resolveNpmChannelTag } from "./update-check.js";
|
|
4
3
|
import { readPackageName, readPackageVersion } from "./package-json.js";
|
|
@@ -8,6 +7,7 @@ import { runGlobalPackageUpdateSteps } from "./package-update-steps.js";
|
|
|
8
7
|
import { resolveStableNodePath } from "./stable-node-path.js";
|
|
9
8
|
import { trimLogTail } from "./update-log.js";
|
|
10
9
|
import { maybeRestartGatewayAfterUpdate } from "./update-restart.js";
|
|
10
|
+
import { runPostUpdateExtensionSync } from "../extensions/update.js";
|
|
11
11
|
import path from "node:path";
|
|
12
12
|
import fs from "node:fs/promises";
|
|
13
13
|
//#region src/infra/update-runner.ts
|
|
@@ -13,5 +13,5 @@ export declare function renderConnectedObservation(observation: ClaimObservation
|
|
|
13
13
|
export declare class ConnectedUnderstandingPipeline {
|
|
14
14
|
private readonly memoryManager;
|
|
15
15
|
constructor(memoryManager: MemoryManager);
|
|
16
|
-
process(agentId: string): Promise<UnderstandingReviewResult>;
|
|
16
|
+
process(agentId: string, extractionRunId: string): Promise<UnderstandingReviewResult>;
|
|
17
17
|
}
|
|
@@ -226,7 +226,7 @@ var ConnectedUnderstandingPipeline = class {
|
|
|
226
226
|
constructor(memoryManager) {
|
|
227
227
|
this.memoryManager = memoryManager;
|
|
228
228
|
}
|
|
229
|
-
async process(agentId) {
|
|
229
|
+
async process(agentId, extractionRunId) {
|
|
230
230
|
const observations = deriveConnectedClaimObservations(listKnowledgeSourceItems({
|
|
231
231
|
agentId,
|
|
232
232
|
includeDeleted: false,
|
|
@@ -253,12 +253,14 @@ var ConnectedUnderstandingPipeline = class {
|
|
|
253
253
|
provider: "connected-sources",
|
|
254
254
|
...sourceInstanceIds.length === 1 ? { sourceInstanceId: sourceInstanceIds[0] } : {}
|
|
255
255
|
},
|
|
256
|
-
reviewSource: "background"
|
|
256
|
+
reviewSource: "background",
|
|
257
|
+
extractionRunId
|
|
257
258
|
});
|
|
258
259
|
totals.created += result.created;
|
|
259
260
|
totals.deduplicated += result.deduplicated;
|
|
260
261
|
totals.rejected += result.rejected;
|
|
261
262
|
totals.createdRecords.push(...result.createdRecords);
|
|
263
|
+
totals.writeOutputs = [...totals.writeOutputs ?? [], ...result.writeOutputs ?? []];
|
|
262
264
|
}
|
|
263
265
|
return totals;
|
|
264
266
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { getApiKeyFromEnv, init_env_keys } from "../env-keys.js";
|
|
2
1
|
import { init_sync_provider_auth, resolveProviderApiKeyForAgentSync } from "../../auth/sync-provider-auth.js";
|
|
2
|
+
import { getApiKeyFromEnv, init_env_keys } from "../env-keys.js";
|
|
3
3
|
import { getDefaultAuthProfileStore } from "./auth-profile-store.js";
|
|
4
4
|
//#region src/providers/auth-runtime/resolve-auth.ts
|
|
5
5
|
init_env_keys();
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { __esmMin, __exportAll } from "../../_virtual/_rolldown/runtime.js";
|
|
2
2
|
import { getAgentDefaultModelRef, init_schema } from "../config/schema.js";
|
|
3
|
+
import { getOAuthProviderIds, init_registry } from "../auth/oauth/registry.js";
|
|
4
|
+
import { hasProviderAuthOnDiskSync, init_sync_provider_auth } from "../auth/sync-provider-auth.js";
|
|
3
5
|
import { PROVIDER_ENV_MAP, getApiKeyFromEnv, init_env_keys } from "./env-keys.js";
|
|
4
6
|
import { init_model_ref, splitProviderModelRef } from "./model-ref.js";
|
|
5
7
|
import { ModelRegistry, getModelRegistry, init_model_registry, prewarmModelRegistry, resetModelRegistry } from "./model-registry.js";
|
|
6
|
-
import { getOAuthProviderIds, init_registry } from "../auth/oauth/registry.js";
|
|
7
8
|
import { CredentialResolver, hasCredentials, init_credentials } from "../auth/credentials.js";
|
|
8
|
-
import { hasProviderAuthOnDiskSync, init_sync_provider_auth } from "../auth/sync-provider-auth.js";
|
|
9
9
|
import { EXTENSION_PROVIDER_BASE_URL, init_constants } from "./constants.js";
|
|
10
10
|
import { applyOfficialModelMetadataCorrections, getSupplementalModels, init_model_supplements } from "./model-supplements.js";
|
|
11
11
|
import { getProviderRegistry, init_plugin_registry } from "./plugin-registry.js";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { __esmMin } from "../../_virtual/_rolldown/runtime.js";
|
|
2
2
|
import { createLogger } from "../utils/logger/index.js";
|
|
3
3
|
import { init_logger } from "../utils/logger.js";
|
|
4
|
-
import { init_resolve_config_value, resolveConfigValue, resolveHeaders } from "../config/resolve-config-value.js";
|
|
5
4
|
import { resolveModelsJsonPath } from "../config/paths.js";
|
|
5
|
+
import { init_resolve_config_value, resolveConfigValue, resolveHeaders } from "../config/resolve-config-value.js";
|
|
6
6
|
import { getDefaultModelValues, init_models_json, validateModelsConfig } from "../config/models-json.js";
|
|
7
7
|
import { getApiKeyFromEnv, init_env_keys } from "./env-keys.js";
|
|
8
8
|
import { getModelCatalogStore, init_model_catalog_store } from "./model-catalog-store.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { __esmMin } from "../../_virtual/_rolldown/runtime.js";
|
|
2
|
-
import { getModelCatalogStore, init_model_catalog_store } from "./model-catalog-store.js";
|
|
3
2
|
import { getOAuthProviderDefinition, init_registry } from "../auth/oauth/registry.js";
|
|
3
|
+
import { getModelCatalogStore, init_model_catalog_store } from "./model-catalog-store.js";
|
|
4
4
|
import { XOPC_CLOUD_PROVIDER_ID, init_xopc_cloud_config, resolveXopcModelRouterUrl } from "./xopc-cloud-config.js";
|
|
5
5
|
//#region src/providers/register-runtime-providers.ts
|
|
6
6
|
function registerRuntimeProvider(modelRuntime, source) {
|