@xopcai/xopc 0.0.208 → 0.0.211
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-D0mYZqhc.js → activity-store-BzjFoSr0.js} +1 -1
- package/dist/gateway/static/root/assets/{agent-avatar-dicebear-MWLQWL_i.js → agent-avatar-dicebear-DTfjhfVE.js} +1 -1
- package/dist/gateway/static/root/assets/agents-CjhgfuVJ.js +68 -0
- package/dist/gateway/static/root/assets/{api-DZA1yVzM.js → api-D269PnU9.js} +1 -1
- package/dist/gateway/static/root/assets/{app-management-settings-panel-B2X6quAF.js → app-management-settings-panel-BFpfQDWc.js} +1 -1
- package/dist/gateway/static/root/assets/{appearance-settings-BZW-c38q.js → appearance-settings-DLxFdqhY.js} +1 -1
- package/dist/gateway/static/root/assets/apps-page-CjmlGB5V.js +1 -0
- package/dist/gateway/static/root/assets/{archive-plugin-CK-gsjsJ.js → archive-plugin-DPlH4dnc.js} +1 -1
- package/dist/gateway/static/root/assets/{attachment-load-EJGP4rCw.js → attachment-load-xqfLLd0I.js} +1 -1
- package/dist/gateway/static/root/assets/automations-page-4m6Ey6wG.js +6 -0
- package/dist/gateway/static/root/assets/{binary-plugins-Tbss_4P-.js → binary-plugins-C0tuoPXk.js} +1 -1
- package/dist/gateway/static/root/assets/{block-editor-C-dOWigw.js → block-editor-Deyphj1o.js} +6 -6
- package/dist/gateway/static/root/assets/browser-settings-page-CAGCYx8U.js +8 -0
- package/dist/gateway/static/root/assets/{browser-workflow-inputs-DW06Zo1N.js → browser-workflow-inputs-CYEbXyRF.js} +1 -1
- package/dist/gateway/static/root/assets/{browser-workflows-page-B6RnRGwm.js → browser-workflows-page-Bf0tPbGi.js} +2 -2
- package/dist/gateway/static/root/assets/capabilities-settings-panel-CKfLsxTI.js +7 -0
- package/dist/gateway/static/root/assets/{capability-presets-api-Cc3BtQar.js → capability-presets-api-DPkFA_-R.js} +1 -1
- package/dist/gateway/static/root/assets/capability-presets-settings-panel-CpipKNqX.js +3 -0
- package/dist/gateway/static/root/assets/{channel-recipient-api-BvZO5FaO.js → channel-recipient-api-DqKaAcnZ.js} +1 -1
- package/dist/gateway/static/root/assets/channels-settings-Bvq-O4pt.js +1 -0
- package/dist/gateway/static/root/assets/channels-status-swr-CrMld2l7.js +1 -0
- package/dist/gateway/static/root/assets/chat-terminal-dock-CTDRZa7e.js +36 -0
- package/dist/gateway/static/root/assets/{connectors-api-CUl6_EQJ.js → connectors-api-Buu8fif8.js} +1 -1
- package/dist/gateway/static/root/assets/connectors-page-CSQRzaVn.js +2 -0
- package/dist/gateway/static/root/assets/{cron-expression-BD9MgoE_.js → cron-expression-DTLR82NB.js} +1 -1
- package/dist/gateway/static/root/assets/{date-picker-ChqNmoxw.js → date-picker-DyNogHQH.js} +1 -1
- package/dist/gateway/static/root/assets/{dependency-picker-CDUmFs6H.js → dependency-picker-BpnCuo7B.js} +1 -1
- package/dist/gateway/static/root/assets/{desktop-pet-D61gqxaD.js → desktop-pet-CDKI4gVB.js} +1 -1
- package/dist/gateway/static/root/assets/{desktop-pet-settings-QvuJvIX_.js → desktop-pet-settings-DjT5C2a3.js} +1 -1
- package/dist/gateway/static/root/assets/{directory-picker-path-field-DvXMvDNY.js → directory-picker-path-field-DlJY90TM.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-debug-page-DMdVTAQ3.js → extension-debug-page-DWf2z7q5.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-page-BNzxZtaK.js → extension-page-Dorx0kf9.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-settings-page-DoEfyizU.js → extension-settings-page-B1wU9ZOB.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-config-api-o7AKvthC.js → gateway-config-api-B1lG4dNr.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-config-swr-BQbkUP5X.js → gateway-config-swr-BIxuwPQi.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-settings-TO5YYZ9a.js → gateway-settings-DqIOqJjM.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-startup-retry-DIgdpHgk.js → gateway-startup-retry-BpZgd4U-.js} +1 -1
- package/dist/gateway/static/root/assets/heartbeat-settings-DG4Kmgkc.js +1 -0
- package/dist/gateway/static/root/assets/home-page-BhqItS_s.js +1 -0
- package/dist/gateway/static/root/assets/image-generation-api-PkhYohDa.js +1 -0
- package/dist/gateway/static/root/assets/index-DLhvsU9B.css +2 -0
- package/dist/gateway/static/root/assets/index-_cuTcWjB.js +107 -0
- package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-4xaM3jjU.js → keyboard-shortcuts-settings-6OQT3gQF.js} +1 -1
- package/dist/gateway/static/root/assets/local-app-workbench-page-DWjTmzxw.js +2 -0
- package/dist/gateway/static/root/assets/{local-apps-page-C1xDicdr.js → local-apps-page-DfruRAmE.js} +1 -1
- package/dist/gateway/static/root/assets/{locale-store-pByvK12G.js → locale-store-C5MK9WcP.js} +1 -1
- package/dist/gateway/static/root/assets/logs-page-BA5efZ8B.js +2 -0
- package/dist/gateway/static/root/assets/{management-settings-D1XdHm7v.js → management-settings-L1VYkywO.js} +1 -1
- package/dist/gateway/static/root/assets/{markdown-split-B_Ijq1Fr.js → markdown-split-oqgHbqt-.js} +1 -1
- package/dist/gateway/static/root/assets/markdown-view-DD_PgVue.css +1 -0
- package/dist/gateway/static/root/assets/{markdown-view-CyJlGUxB.js → markdown-view-V4rcPPH0.js} +1 -1
- package/dist/gateway/static/root/assets/{media-plugins-CXXNRROJ.js → media-plugins-Bb6gSX2o.js} +1 -1
- package/dist/gateway/static/root/assets/messages-ctG2e-ix.js +3 -0
- package/dist/gateway/static/root/assets/{notes-page-rkePB4CB.js → notes-page-B1rOXjpT.js} +1 -1
- package/dist/gateway/static/root/assets/notes-workbench-CkHXVmKP.js +4 -0
- package/dist/gateway/static/root/assets/{page-tabs-gw-RMQCV.js → page-tabs-CBuCKeyy.js} +1 -1
- package/dist/gateway/static/root/assets/{preview-open-alternatives-B8aMScJ2.js → preview-open-alternatives-BQ0tLfPO.js} +1 -1
- package/dist/gateway/static/root/assets/{product-open-page-CjcpkWAz.js → product-open-page-DPeFn7Hu.js} +1 -1
- package/dist/gateway/static/root/assets/project-detail-page-DCqet9-L.js +1 -0
- package/dist/gateway/static/root/assets/projects-page-D0t_AjzG.js +1 -0
- package/dist/gateway/static/root/assets/remote-access-hub-BUWPoBvw.js +1 -0
- package/dist/gateway/static/root/assets/{runtime-tools-settings-panel-Ch5qq86o.js → runtime-tools-settings-panel-BCfQNzjG.js} +2 -2
- package/dist/gateway/static/root/assets/{schema-form-DHYWYUFt.js → schema-form-Bo7YbHYN.js} +1 -1
- package/dist/gateway/static/root/assets/sessions-page-vLhrrM3m.js +1 -0
- package/dist/gateway/static/root/assets/settings-advanced-gate-OP1y0Y8M.js +1 -0
- package/dist/gateway/static/root/assets/{settings-form-section-DlzZx0-i.js → settings-form-section-B9dnKr3M.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-loading-skeleton-BVLhreQi.js → settings-loading-skeleton-CYDV2JtY.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-page-BJU-kUnN.js → settings-page-DbrIYfS9.js} +1 -1
- package/dist/gateway/static/root/assets/setup-status-panel-Cxc-Ejl5.js +1 -0
- package/dist/gateway/static/root/assets/{share-preview-page-hvIuZXMe.js → share-preview-page-olgr7LLN.js} +1 -1
- package/dist/gateway/static/root/assets/shares-settings-ZOqC6-aA.js +1 -0
- package/dist/gateway/static/root/assets/skill-reload-api-DwvC3Iuf.js +1 -0
- package/dist/gateway/static/root/assets/{skills-page-Dlvuh7D-.js → skills-page-PE16CNw5.js} +1 -1
- package/dist/gateway/static/root/assets/{skills-page.utils-B6ddOpnf.js → skills-page.utils-nXmBcBxt.js} +1 -1
- package/dist/gateway/static/root/assets/{system-settings-panel-BdbCAyoA.js → system-settings-panel-C3qPwAdY.js} +1 -1
- package/dist/gateway/static/root/assets/task-detail-page-DCRB-5q-.js +1 -0
- package/dist/gateway/static/root/assets/{theme-store-BtdGacMI.js → theme-store-KR5Otp5w.js} +1 -1
- package/dist/gateway/static/root/assets/{typed-models-lib-CL6qHYJA.js → typed-models-lib-lMZodtDF.js} +1 -1
- package/dist/gateway/static/root/assets/{use-autosave-DysNnqCS.js → use-autosave-CKpatP3S.js} +1 -1
- package/dist/gateway/static/root/assets/user-context-page-CoiedRuA.js +1 -0
- package/dist/gateway/static/root/assets/{voice-api-key-field-UEsO9Jr-.js → voice-api-key-field-CDcv0Wbh.js} +1 -1
- package/dist/gateway/static/root/assets/{work-discovery-overlay-B9disASf.js → work-discovery-overlay-CGdT22un.js} +1 -1
- package/dist/gateway/static/root/assets/work-discovery-page-BwaU1RqI.js +1 -0
- package/dist/gateway/static/root/assets/{workflow-run-setup-panel-A0zTQHFQ.js → workflow-run-setup-panel-BAHYNlQt.js} +2 -2
- package/dist/gateway/static/root/assets/workflows-page-DHYmh9G7.js +5 -0
- package/dist/gateway/static/root/index.html +10 -10
- package/dist/package.js +1 -1
- package/dist/src/agent/agent-manager.js +1 -1
- package/dist/src/agent/background-review/coordinator.d.ts +1 -1
- package/dist/src/agent/background-review/coordinator.js +4 -5
- package/dist/src/agent/background-review/run-background-review.js +0 -1
- package/dist/src/agent/background-review/settings.d.ts +1 -2
- package/dist/src/agent/background-review/settings.js +3 -4
- package/dist/src/agent/external-tools/composio-provider.js +8 -4
- package/dist/src/agent/image/generation/providers/xopc-cloud.js +2 -1
- package/dist/src/agent/image/tool-model-config.js +15 -9
- package/dist/src/agent/memory/builtin-provider.js +1 -2
- package/dist/src/agent/memory/manager.js +2 -0
- package/dist/src/agent/memory/sensitivity.js +1 -1
- package/dist/src/agent/memory/understanding/service.js +43 -19
- package/dist/src/agent/memory/user-context-coordinator.js +1 -1
- package/dist/src/agent/tools/image-generate-tool.js +23 -7
- package/dist/src/automations/domain/validation.d.ts +7 -7
- package/dist/src/automations/draft/automation-draft-validator.d.ts +2 -2
- package/dist/src/capabilities/readiness/from-config.d.ts +10 -0
- package/dist/src/capabilities/readiness/from-config.js +128 -0
- package/dist/src/capabilities/readiness/index.d.ts +3 -0
- package/dist/src/capabilities/readiness/index.js +3 -0
- package/dist/src/capabilities/readiness/planner.d.ts +3 -0
- package/dist/src/capabilities/readiness/planner.js +56 -0
- package/dist/src/capabilities/readiness/types.d.ts +35 -0
- package/dist/src/capabilities/readiness/types.js +1 -0
- package/dist/src/cli/commands/agent.js +9 -0
- package/dist/src/cli/commands/auth.js +4 -3
- package/dist/src/cli/commands/connectors.js +1 -1
- package/dist/src/cli/commands/models.js +2 -1
- package/dist/src/cli/commands/onboard/model.d.ts +3 -21
- package/dist/src/cli/commands/onboard/model.js +10 -86
- package/dist/src/cli/utils/oauth-login.d.ts +2 -0
- package/dist/src/cli/utils/oauth-login.js +9 -1
- package/dist/src/config/agent-profile.js +1 -1
- package/dist/src/config/index.js +2 -2
- package/dist/src/config/paths-state.d.ts +2 -0
- package/dist/src/config/paths-state.js +5 -1
- package/dist/src/config/paths.d.ts +1 -1
- package/dist/src/config/paths.js +2 -2
- package/dist/src/config/schema.js +1 -1
- package/dist/src/connectors/auth-provider-registry.d.ts +2 -1
- package/dist/src/connectors/auth-provider-registry.js +5 -2
- package/dist/src/connectors/composio-sessions.d.ts +39 -0
- package/dist/src/connectors/composio-sessions.js +66 -7
- package/dist/src/connectors/composio.d.ts +4 -1
- package/dist/src/connectors/composio.js +34 -7
- package/dist/src/connectors/connected-source-cursor.d.ts +9 -0
- package/dist/src/connectors/connected-source-cursor.js +30 -0
- package/dist/src/connectors/connected-source-ingestion.js +67 -46
- package/dist/src/connectors/connected-source-normalizers.d.ts +1 -0
- package/dist/src/connectors/connected-source-normalizers.js +33 -2
- package/dist/src/connectors/connected-source-sanitization.d.ts +1 -0
- package/dist/src/connectors/connected-source-sanitization.js +21 -0
- package/dist/src/connectors/connector-identity.js +10 -2
- package/dist/src/connectors/content-enrichment.d.ts +29 -0
- package/dist/src/connectors/content-enrichment.js +273 -0
- package/dist/src/connectors/health.js +1 -1
- package/dist/src/connectors/learning-coordinator.js +1 -2
- package/dist/src/connectors/learning-recipes.js +28 -33
- package/dist/src/connectors/runtime-adapter-registry.js +14 -1
- package/dist/src/discussions/live-worker.d.ts +1 -0
- package/dist/src/discussions/live-worker.js +7 -1
- package/dist/src/discussions/repository.js +11 -1
- package/dist/src/discussions/sealer.d.ts +1 -1
- package/dist/src/discussions/sealer.js +16 -7
- package/dist/src/discussions/transcript.js +27 -1
- package/dist/src/discussions/types.d.ts +4 -0
- package/dist/src/gateway/agents-admin.js +1 -1
- package/dist/src/gateway/hono/app.js +8 -3
- package/dist/src/gateway/hono/middleware/strict-rate-limit.d.ts +4 -0
- package/dist/src/gateway/hono/middleware/strict-rate-limit.js +8 -1
- package/dist/src/gateway/hono/oauth-async.d.ts +11 -5
- package/dist/src/gateway/hono/oauth-async.js +29 -16
- package/dist/src/gateway/hono/oauth.d.ts +1 -3
- package/dist/src/gateway/hono/oauth.js +22 -22
- package/dist/src/gateway/hono/routes/agent-stream.js +4 -1
- package/dist/src/gateway/hono/routes/auth-registry-extensions.js +1 -1
- package/dist/src/gateway/hono/routes/connectors.js +16 -3
- package/dist/src/gateway/hono/routes/deps.d.ts +1 -0
- package/dist/src/gateway/hono/routes/discussions.js +2 -1
- package/dist/src/gateway/hono/routes/lazy-bundles.js +2 -1
- package/dist/src/gateway/hono/routes/mcp.js +1 -1
- package/dist/src/gateway/hono/routes/models.js +59 -5
- package/dist/src/gateway/hono/routes/session-input-handler.d.ts +60 -0
- package/dist/src/gateway/hono/routes/session-input-handler.js +75 -1
- package/dist/src/gateway/hono/routes/understanding-sources.js +29 -0
- package/dist/src/gateway/hono/routes/voice.d.ts +1 -2
- package/dist/src/gateway/hono/routes/voice.js +16 -35
- package/dist/src/gateway/rate-limit/buckets.d.ts +3 -0
- package/dist/src/gateway/rate-limit/buckets.js +12 -0
- package/dist/src/gateway/service/agent-runner.d.ts +9 -1
- package/dist/src/gateway/service/agent-runner.js +9 -0
- package/dist/src/gateway/service/session-input-coordinator.d.ts +12 -0
- package/dist/src/gateway/service/session-input-coordinator.js +63 -6
- package/dist/src/gateway/service.d.ts +8 -0
- package/dist/src/gateway/service.js +18 -0
- package/dist/src/knowledge/connected-understanding-pipeline.d.ts +1 -1
- package/dist/src/knowledge/connected-understanding-pipeline.js +74 -25
- package/dist/src/knowledge/ingestion-service.js +33 -15
- package/dist/src/knowledge/types.d.ts +2 -0
- package/dist/src/media-understanding/audio-transcription-runner.d.ts +2 -0
- package/dist/src/media-understanding/audio-transcription-runner.js +3 -1
- package/dist/src/media-understanding/runner.js +3 -1
- package/dist/src/media-understanding/types.d.ts +2 -0
- package/dist/src/providers/model-catalog-persistence.d.ts +9 -0
- package/dist/src/providers/model-catalog-persistence.js +172 -0
- package/dist/src/providers/model-catalog-ranking.d.ts +2 -0
- package/dist/src/providers/model-catalog-ranking.js +17 -0
- package/dist/src/providers/model-catalog-store.d.ts +13 -3
- package/dist/src/providers/model-catalog-store.js +24 -5
- package/dist/src/providers/model-catalog-sync-service.d.ts +3 -3
- package/dist/src/providers/model-catalog-sync-service.js +12 -7
- package/dist/src/providers/provider-auth-service.d.ts +1 -0
- package/dist/src/providers/provider-auth-service.js +3 -0
- package/dist/src/providers/provider-disconnect.d.ts +11 -0
- package/dist/src/providers/provider-disconnect.js +33 -0
- package/dist/src/providers/xopc-cloud-catalog-coordinator.d.ts +56 -0
- package/dist/src/providers/xopc-cloud-catalog-coordinator.js +182 -0
- package/dist/src/providers/xopc-cloud-model-source.d.ts +6 -10
- package/dist/src/providers/xopc-cloud-model-source.js +49 -27
- package/dist/src/retrieval/audit.d.ts +1 -0
- package/dist/src/retrieval/audit.js +8 -0
- package/dist/src/retrieval/candidateFusion.d.ts +5 -0
- package/dist/src/retrieval/candidateFusion.js +20 -0
- package/dist/src/retrieval/queryProfile.d.ts +16 -0
- package/dist/src/retrieval/queryProfile.js +66 -0
- package/dist/src/retrieval/textFeatures.d.ts +5 -0
- package/dist/src/retrieval/textFeatures.js +71 -0
- package/dist/src/session/client-history.d.ts +1 -0
- package/dist/src/session/client-history.js +4 -0
- package/dist/src/session/index.js +1 -1
- package/dist/src/session/store.js +1 -1
- package/dist/src/storage/sqlite/fts.d.ts +0 -4
- package/dist/src/storage/sqlite/fts.js +2 -49
- package/dist/src/storage/sqlite/index.d.ts +3 -2
- package/dist/src/storage/sqlite/index.js +6 -5
- package/dist/src/storage/sqlite/knowledge-repository.d.ts +1 -0
- package/dist/src/storage/sqlite/knowledge-repository.js +4 -0
- package/dist/src/storage/sqlite/memory-records-repository.js +60 -38
- package/dist/src/storage/sqlite/row-mappers.js +2 -2
- package/dist/src/storage/sqlite/session-repository.js +2 -2
- package/dist/src/storage/sqlite/session-turn-replace-repository.d.ts +34 -0
- package/dist/src/storage/sqlite/session-turn-replace-repository.js +110 -0
- package/dist/src/storage/sqlite/transcript-repository.js +1 -1
- package/dist/src/storage/sqlite/user-context-quality-repository.d.ts +15 -0
- package/dist/src/storage/sqlite/user-context-quality-repository.js +46 -2
- package/dist/src/storage/sqlite/user-context-repository.d.ts +4 -0
- package/dist/src/storage/sqlite/user-context-repository.js +29 -3
- package/dist/src/tasks/home-query-service.d.ts +3 -1
- package/dist/src/tasks/home-query-service.js +73 -70
- package/dist/src/tui/backends/embedded-backend.js +12 -4
- package/dist/src/tui/tui-oauth-login.js +5 -0
- package/dist/src/tui/tui-startup-resources.js +1 -1
- package/dist/src/user-context/planner.d.ts +1 -0
- package/dist/src/user-context/planner.js +16 -29
- package/dist/src/user-context/retriever.d.ts +15 -0
- package/dist/src/user-context/retriever.js +65 -0
- package/dist/src/user-context/scope.d.ts +7 -0
- package/dist/src/user-context/scope.js +9 -0
- package/dist/src/user-context/sources/activity-clustering.js +30 -117
- package/dist/src/user-context/sources/index.d.ts +1 -0
- package/dist/src/user-context/sources/index.js +2 -1
- package/dist/src/user-context/sources/signal-clustering.d.ts +18 -0
- package/dist/src/user-context/sources/signal-clustering.js +131 -0
- package/dist/src/voice/audio/normalize.d.ts +17 -0
- package/dist/src/voice/audio/normalize.js +155 -0
- package/dist/src/voice/language-profile.d.ts +1 -4
- package/dist/src/voice/language-profile.js +2 -25
- package/dist/src/voice/local/runtime-client.d.ts +2 -0
- package/dist/src/voice/local/runtime-client.js +20 -1
- package/dist/src/voice/local/runtime-worker.js +7 -13
- package/dist/src/voice/local/wav.js +1 -1
- package/dist/src/voice/stt/availability.d.ts +1 -4
- package/dist/src/voice/stt/availability.js +3 -15
- package/dist/src/voice/stt/config.js +1 -0
- package/dist/src/voice/stt/factory.js +23 -0
- package/dist/src/voice/stt/index.d.ts +1 -0
- package/dist/src/voice/stt/index.js +2 -2
- package/dist/src/voice/stt/list-providers.js +1 -1
- package/dist/src/voice/stt/providers/local-transcription.js +7 -3
- package/dist/src/voice/stt/providers/xopc-cloud-transcription.js +3 -1
- package/dist/src/voice/stt/transcribe-core.d.ts +5 -1
- package/dist/src/voice/stt/transcribe-core.js +13 -5
- package/dist/src/voice/stt/types.d.ts +2 -0
- package/dist/src/voice/tts/factory.d.ts +1 -1
- package/dist/src/voice/tts/factory.js +23 -1
- package/dist/src/voice/tts/merge-config.js +5 -3
- package/dist/src/voice/tts/providers/xopc-cloud-speech.js +3 -1
- package/dist/src/voice/tts/types.d.ts +2 -0
- package/dist/src/voice/tts/types.js +4 -2
- package/dist/src/work-discovery/evaluation.d.ts +23 -0
- package/dist/src/work-discovery/evaluation.js +18 -1
- package/dist/src/work-discovery/index.js +2 -2
- package/package.json +4 -3
- package/dist/gateway/static/root/assets/agents-Bl8FQZxW.js +0 -68
- package/dist/gateway/static/root/assets/apps-page-CRUgTO10.js +0 -1
- package/dist/gateway/static/root/assets/automations-page-DrSwolhG.js +0 -6
- package/dist/gateway/static/root/assets/browser-settings-page-NlvDyMwD.js +0 -8
- package/dist/gateway/static/root/assets/capabilities-settings-panel-BWXUznw5.js +0 -7
- package/dist/gateway/static/root/assets/capability-presets-settings-panel-D0loEbzq.js +0 -3
- package/dist/gateway/static/root/assets/channels-settings-CcivCw8U.js +0 -1
- package/dist/gateway/static/root/assets/channels-status-swr-DkHAD2Zn.js +0 -1
- package/dist/gateway/static/root/assets/chat-terminal-dock-DVedGAeX.js +0 -36
- package/dist/gateway/static/root/assets/connectors-page-DlBSlfkv.js +0 -2
- package/dist/gateway/static/root/assets/heartbeat-settings-UZAn1aAQ.js +0 -1
- package/dist/gateway/static/root/assets/home-page-CRJDpy5E.js +0 -3
- package/dist/gateway/static/root/assets/index-BSjP0Wsx.css +0 -2
- package/dist/gateway/static/root/assets/index-C2ZYFBGL.js +0 -85
- package/dist/gateway/static/root/assets/local-app-workbench-page-D9bguWRo.js +0 -2
- package/dist/gateway/static/root/assets/logs-page-Gr-nE4nW.js +0 -2
- package/dist/gateway/static/root/assets/markdown-view-B12xeflb.css +0 -1
- package/dist/gateway/static/root/assets/messages-yG5P43Q9.js +0 -3
- package/dist/gateway/static/root/assets/notes-workbench-CpbD4XG2.js +0 -4
- package/dist/gateway/static/root/assets/project-detail-page-GvSYDbjR.js +0 -1
- package/dist/gateway/static/root/assets/projects-page-DPRxKGbs.js +0 -1
- package/dist/gateway/static/root/assets/remote-access-hub-WIzeu-gB.js +0 -1
- package/dist/gateway/static/root/assets/sessions-page-2XEJM0YE.js +0 -1
- package/dist/gateway/static/root/assets/settings-advanced-gate-g1GThZ0O.js +0 -1
- package/dist/gateway/static/root/assets/setup-status-panel-C6qj2L-q.js +0 -1
- package/dist/gateway/static/root/assets/shares-settings-BBpE1bep.js +0 -1
- package/dist/gateway/static/root/assets/skill-reload-api-DXORBJNk.js +0 -1
- package/dist/gateway/static/root/assets/task-detail-page-DC0hc8hp.js +0 -1
- package/dist/gateway/static/root/assets/user-context-page-Bwg4KV8B.js +0 -1
- package/dist/gateway/static/root/assets/work-discovery-page-CmPfOfHl.js +0 -1
- package/dist/gateway/static/root/assets/workflows-page-DhQNh7W6.js +0 -5
- package/dist/src/voice/local/runtime-dispatcher.d.ts +0 -9
- package/dist/src/voice/local/runtime-dispatcher.js +0 -20
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { getAgentDefaultImageGenerationModelConfig, getAgentDefaultImageModelConfig, init_schema, parseModelRef } from "../../config/schema.js";
|
|
2
|
+
import { getModelCatalogStore, init_model_catalog_store } from "../../providers/model-catalog-store.js";
|
|
3
|
+
import { init_providers, isProviderConfiguredSync } from "../../providers/index.js";
|
|
4
|
+
import { compareCatalogModels } from "../../providers/model-catalog-ranking.js";
|
|
5
|
+
import { DEFAULT_LOCAL_VOICE_MODEL_ID, hasInstalledLocalVoiceModel } from "../../voice/local/models.js";
|
|
6
|
+
import { planCapabilities } from "./planner.js";
|
|
7
|
+
//#region src/capabilities/readiness/from-config.ts
|
|
8
|
+
init_schema();
|
|
9
|
+
init_model_catalog_store();
|
|
10
|
+
init_providers();
|
|
11
|
+
function buildCapabilityPlansForConfig(config, options = {}) {
|
|
12
|
+
const catalog = options.catalog ?? getModelCatalogStore().load();
|
|
13
|
+
const cloud = catalog.sources["xopc-cloud"];
|
|
14
|
+
const providerReady = options.providerReady ?? defaultProviderReady;
|
|
15
|
+
const cloudReady = providerReady("xopc-cloud");
|
|
16
|
+
const agentId = config.agents.default ?? config.agents.list[0]?.id ?? "main";
|
|
17
|
+
const stt = config.tools?.media?.audio;
|
|
18
|
+
const tts = config.messages?.tts;
|
|
19
|
+
const policies = {
|
|
20
|
+
vision: { explicit: refs(getAgentDefaultImageModelConfig(config)) },
|
|
21
|
+
"image-generation": { explicit: refs(getAgentDefaultImageGenerationModelConfig(config, agentId)) },
|
|
22
|
+
stt: {
|
|
23
|
+
disabled: stt?.enabled === false,
|
|
24
|
+
explicit: stt ? sttRefs(stt) : void 0
|
|
25
|
+
},
|
|
26
|
+
tts: {
|
|
27
|
+
disabled: tts?.enabled === false,
|
|
28
|
+
explicit: tts ? ttsRefs(tts) : void 0
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
markExplicitReadiness(policies, catalog, providerReady);
|
|
32
|
+
return planCapabilities({
|
|
33
|
+
policies,
|
|
34
|
+
automatic: {
|
|
35
|
+
vision: cloudCandidates("vision", cloud?.models ?? [], cloudReady, 0, cloud?.recommended?.vision),
|
|
36
|
+
"image-generation": cloudCandidates("image-generation", cloud?.models ?? [], cloudReady, 0, cloud?.recommended?.["image-generation"]),
|
|
37
|
+
stt: [candidate("stt", "xopc-local", DEFAULT_LOCAL_VOICE_MODEL_ID, "installed-local", options.localSttReady ?? hasInstalledLocalVoiceModel(), 0), ...cloudCandidates("stt", cloud?.models ?? [], cloudReady, 100, cloud?.recommended?.stt)],
|
|
38
|
+
tts: [...cloudCandidates("tts", cloud?.models ?? [], cloudReady, 0, cloud?.recommended?.tts), candidate("tts", "edge", "edge", "credentialless-fallback", true, 1e3)]
|
|
39
|
+
},
|
|
40
|
+
catalogVersion: cloud?.etag
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
function defaultProviderReady(providerId) {
|
|
44
|
+
if (providerId === "edge") return true;
|
|
45
|
+
if (providerId === "xopc-local") return hasInstalledLocalVoiceModel();
|
|
46
|
+
return isProviderConfiguredSync(providerId);
|
|
47
|
+
}
|
|
48
|
+
function refs(config) {
|
|
49
|
+
if (!config) return void 0;
|
|
50
|
+
return [config.primary, ...config.fallbacks ?? []].map((ref) => parseModelRef(ref)).filter((ref) => ref !== null);
|
|
51
|
+
}
|
|
52
|
+
function sttRefs(config) {
|
|
53
|
+
if (!config) return void 0;
|
|
54
|
+
const modelRefs = [...config.models ?? [], ...config.sharedModels ?? []].filter((entry) => entry.capabilities?.includes("audio") !== false).flatMap((entry) => entry.provider && entry.model ? [{
|
|
55
|
+
provider: entry.provider,
|
|
56
|
+
model: entry.model
|
|
57
|
+
}] : []);
|
|
58
|
+
if (modelRefs.length > 0) return modelRefs;
|
|
59
|
+
const provider = config.provider;
|
|
60
|
+
const slice = config.providers?.[provider];
|
|
61
|
+
return [{
|
|
62
|
+
provider,
|
|
63
|
+
model: typeof slice?.model === "string" ? slice.model : provider
|
|
64
|
+
}];
|
|
65
|
+
}
|
|
66
|
+
function ttsRefs(config) {
|
|
67
|
+
if (!config) return void 0;
|
|
68
|
+
const slice = config.providers?.[config.provider];
|
|
69
|
+
const model = typeof slice?.model === "string" ? slice.model : config.provider;
|
|
70
|
+
const refs = [{
|
|
71
|
+
provider: config.provider,
|
|
72
|
+
model
|
|
73
|
+
}];
|
|
74
|
+
if (config.fallback?.enabled) for (const provider of config.fallback.order) {
|
|
75
|
+
const fallbackSlice = config.providers?.[provider];
|
|
76
|
+
refs.push({
|
|
77
|
+
provider,
|
|
78
|
+
model: typeof fallbackSlice?.model === "string" ? fallbackSlice.model : provider
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
return refs;
|
|
82
|
+
}
|
|
83
|
+
function markExplicitReadiness(policies, catalog, providerReady) {
|
|
84
|
+
for (const [capability, policy] of Object.entries(policies)) policy.explicit = policy.explicit?.map((entry) => {
|
|
85
|
+
const ready = explicitReady(capability, entry.provider, entry.model, catalog, providerReady);
|
|
86
|
+
return {
|
|
87
|
+
...entry,
|
|
88
|
+
ready,
|
|
89
|
+
reasons: ready ? [] : ["explicit_model_unavailable"]
|
|
90
|
+
};
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
function explicitReady(capability, provider, model, catalog, providerReady) {
|
|
94
|
+
if (!providerReady(provider)) return false;
|
|
95
|
+
if (provider !== "xopc-cloud") return true;
|
|
96
|
+
return (catalog.sources["xopc-cloud"]?.models ?? []).some((entry) => entry.id === model && matchesCapability(entry, capability));
|
|
97
|
+
}
|
|
98
|
+
function cloudCandidates(capability, models, authorized, basePriority = 0, recommendedModel) {
|
|
99
|
+
return models.filter((model) => model.availability === "available" && matchesCapability(model, capability)).sort((left, right) => compareCatalogModels(left, right, recommendedModel)).map((model, index) => candidate(capability, "xopc-cloud", model.id, "xopc-cloud-managed", authorized, basePriority + index, {
|
|
100
|
+
...model.tts?.defaultVoice ? { defaultVoice: model.tts.defaultVoice } : {},
|
|
101
|
+
...model.stability ? { stability: model.stability } : {},
|
|
102
|
+
...model.tier ? { tier: model.tier } : {},
|
|
103
|
+
...model.bestEffort !== void 0 ? { bestEffort: model.bestEffort } : {}
|
|
104
|
+
}));
|
|
105
|
+
}
|
|
106
|
+
function matchesCapability(model, capability) {
|
|
107
|
+
if (model.availability !== "available") return false;
|
|
108
|
+
switch (capability) {
|
|
109
|
+
case "vision": return model.kind === "language" && model.input.includes("image");
|
|
110
|
+
case "image-generation": return model.kind === "image" && model.operations.includes("images.generate");
|
|
111
|
+
case "stt": return model.kind === "stt" && model.operations.includes("audio.transcription");
|
|
112
|
+
case "tts": return model.kind === "tts" && model.operations.includes("audio.speech") && Boolean(model.tts?.defaultVoice);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
function candidate(capability, provider, model, source, ready, priority, metadata) {
|
|
116
|
+
return {
|
|
117
|
+
capability,
|
|
118
|
+
provider,
|
|
119
|
+
model,
|
|
120
|
+
source,
|
|
121
|
+
ready,
|
|
122
|
+
priority,
|
|
123
|
+
reasons: ready ? [] : [provider === "xopc-cloud" ? "oauth_not_connected" : "provider_not_ready"],
|
|
124
|
+
...metadata ? { metadata } : {}
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
//#endregion
|
|
128
|
+
export { buildCapabilityPlansForConfig };
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { buildCapabilityPlansForConfig } from './from-config.js';
|
|
2
|
+
export { planCapabilities, planCapability } from './planner.js';
|
|
3
|
+
export type { CandidateSource, CapabilityCandidate, CapabilityId, CapabilityPlan, CapabilityPlannerInput, CapabilityPolicy, } from './types.js';
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { CapabilityId, CapabilityPlan, CapabilityPlannerInput } from './types.js';
|
|
2
|
+
export declare function planCapabilities(input: CapabilityPlannerInput): Record<CapabilityId, CapabilityPlan>;
|
|
3
|
+
export declare function planCapability(capability: CapabilityId, input: CapabilityPlannerInput): CapabilityPlan;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
//#region src/capabilities/readiness/planner.ts
|
|
2
|
+
const CAPABILITIES = [
|
|
3
|
+
"vision",
|
|
4
|
+
"image-generation",
|
|
5
|
+
"stt",
|
|
6
|
+
"tts"
|
|
7
|
+
];
|
|
8
|
+
function planCapabilities(input) {
|
|
9
|
+
return Object.fromEntries(CAPABILITIES.map((capability) => [capability, planCapability(capability, input)]));
|
|
10
|
+
}
|
|
11
|
+
function planCapability(capability, input) {
|
|
12
|
+
const policy = input.policies[capability];
|
|
13
|
+
if (policy.disabled) return {
|
|
14
|
+
capability,
|
|
15
|
+
status: "disabled",
|
|
16
|
+
fallbacks: [],
|
|
17
|
+
rejected: [],
|
|
18
|
+
selectionSource: "none",
|
|
19
|
+
catalogVersion: input.catalogVersion
|
|
20
|
+
};
|
|
21
|
+
const explicit = (policy.explicit ?? []).map((entry, index) => ({
|
|
22
|
+
capability,
|
|
23
|
+
provider: entry.provider,
|
|
24
|
+
model: entry.model,
|
|
25
|
+
source: "explicit-config",
|
|
26
|
+
ready: entry.ready ?? true,
|
|
27
|
+
priority: index,
|
|
28
|
+
reasons: entry.reasons ?? (entry.ready === false ? ["explicit_model_unavailable"] : [])
|
|
29
|
+
}));
|
|
30
|
+
const automatic = [...input.automatic[capability] ?? []].sort((left, right) => left.priority - right.priority || left.provider.localeCompare(right.provider) || left.model.localeCompare(right.model));
|
|
31
|
+
const candidates = dedupeCandidates([...explicit, ...automatic]);
|
|
32
|
+
const ready = candidates.filter((candidate) => candidate.ready);
|
|
33
|
+
const rejected = candidates.filter((candidate) => !candidate.ready);
|
|
34
|
+
const primary = ready[0];
|
|
35
|
+
const explicitRejected = rejected.some((candidate) => candidate.source === "explicit-config");
|
|
36
|
+
return {
|
|
37
|
+
capability,
|
|
38
|
+
status: primary ? explicitRejected ? "degraded" : "ready" : "unavailable",
|
|
39
|
+
...primary ? { primary } : {},
|
|
40
|
+
fallbacks: ready.slice(1),
|
|
41
|
+
rejected,
|
|
42
|
+
selectionSource: primary?.source ?? "none",
|
|
43
|
+
catalogVersion: input.catalogVersion
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
function dedupeCandidates(candidates) {
|
|
47
|
+
const seen = /* @__PURE__ */ new Set();
|
|
48
|
+
return candidates.filter((candidate) => {
|
|
49
|
+
const key = `${candidate.provider}/${candidate.model}`;
|
|
50
|
+
if (seen.has(key)) return false;
|
|
51
|
+
seen.add(key);
|
|
52
|
+
return true;
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
//#endregion
|
|
56
|
+
export { planCapabilities, planCapability };
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export type CapabilityId = 'vision' | 'image-generation' | 'stt' | 'tts';
|
|
2
|
+
export type CandidateSource = 'native-model' | 'explicit-config' | 'installed-local' | 'xopc-cloud-managed' | 'configured-provider' | 'credentialless-fallback';
|
|
3
|
+
export interface CapabilityCandidate {
|
|
4
|
+
capability: CapabilityId;
|
|
5
|
+
provider: string;
|
|
6
|
+
model: string;
|
|
7
|
+
source: CandidateSource;
|
|
8
|
+
ready: boolean;
|
|
9
|
+
priority: number;
|
|
10
|
+
reasons: string[];
|
|
11
|
+
metadata?: Record<string, unknown>;
|
|
12
|
+
}
|
|
13
|
+
export interface CapabilityPlan {
|
|
14
|
+
capability: CapabilityId;
|
|
15
|
+
status: 'ready' | 'degraded' | 'unavailable' | 'disabled';
|
|
16
|
+
primary?: CapabilityCandidate;
|
|
17
|
+
fallbacks: CapabilityCandidate[];
|
|
18
|
+
rejected: CapabilityCandidate[];
|
|
19
|
+
selectionSource: CandidateSource | 'none';
|
|
20
|
+
catalogVersion?: string | null;
|
|
21
|
+
}
|
|
22
|
+
export interface CapabilityPolicy {
|
|
23
|
+
disabled?: boolean;
|
|
24
|
+
explicit?: Array<{
|
|
25
|
+
provider: string;
|
|
26
|
+
model: string;
|
|
27
|
+
ready?: boolean;
|
|
28
|
+
reasons?: string[];
|
|
29
|
+
}>;
|
|
30
|
+
}
|
|
31
|
+
export interface CapabilityPlannerInput {
|
|
32
|
+
policies: Record<CapabilityId, CapabilityPolicy>;
|
|
33
|
+
automatic: Partial<Record<CapabilityId, CapabilityCandidate[]>>;
|
|
34
|
+
catalogVersion?: string | null;
|
|
35
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -12,6 +12,7 @@ import { formatExamples, register } from "../registry.js";
|
|
|
12
12
|
import { getContextWithOpts } from "../context.js";
|
|
13
13
|
import { getWorkspacePath } from "../../config/workspace-path-helpers.js";
|
|
14
14
|
import "../../config/index.js";
|
|
15
|
+
import { getXopcCloudCatalogCoordinator } from "../../providers/xopc-cloud-catalog-coordinator.js";
|
|
15
16
|
import { listSessions } from "./agent/sessions.js";
|
|
16
17
|
import { renderStreamToTerminal } from "./agent/stream-renderer.js";
|
|
17
18
|
import { startInteractiveChat } from "./agent/interactive.js";
|
|
@@ -38,6 +39,14 @@ function createAgentCommand(_ctx) {
|
|
|
38
39
|
}
|
|
39
40
|
const modelFromConfig = getAgentDefaultModelRef(config);
|
|
40
41
|
const modelId = options.model?.trim() || modelFromConfig;
|
|
42
|
+
if (modelId?.startsWith("xopc-cloud/")) {
|
|
43
|
+
const readiness = await getXopcCloudCatalogCoordinator().ensure({
|
|
44
|
+
reason: "agent-run",
|
|
45
|
+
network: "if-empty",
|
|
46
|
+
timeoutMs: 1e4
|
|
47
|
+
});
|
|
48
|
+
if (readiness.state === "unavailable" || readiness.state === "not-authorized") throw new Error(readiness.error?.message ?? "XOPC Cloud model catalog is unavailable");
|
|
49
|
+
}
|
|
41
50
|
const bus = new MessageBus();
|
|
42
51
|
if (ctx.isVerbose) log.info({
|
|
43
52
|
model: modelId,
|
|
@@ -3,6 +3,7 @@ import { init_logger } from "../../utils/logger.js";
|
|
|
3
3
|
import { CredentialResolver, init_credentials } from "../../auth/credentials.js";
|
|
4
4
|
import { getAllProviders, init_providers } from "../../providers/index.js";
|
|
5
5
|
import { formatExamples, register } from "../registry.js";
|
|
6
|
+
import { disconnectProvider } from "../../providers/provider-disconnect.js";
|
|
6
7
|
import { listAllProfiles, listProfilesForProvider, removeAuthProfile, upsertAuthProfile } from "../../auth/profiles/profiles.js";
|
|
7
8
|
import { getOAuthProvider, getSupportedOAuthProviders } from "../utils/oauth-providers.js";
|
|
8
9
|
import { colorizeStatus, colors } from "../utils/colors.js";
|
|
@@ -69,7 +70,7 @@ function createAuthCommand(_ctx) {
|
|
|
69
70
|
else log.warn(`Profile not found: ${options.profile}`);
|
|
70
71
|
return;
|
|
71
72
|
}
|
|
72
|
-
await
|
|
73
|
+
await disconnectProvider(provider);
|
|
73
74
|
log.info(`All credentials removed for provider: ${provider}`);
|
|
74
75
|
});
|
|
75
76
|
cmd.command("login <provider>").description("Login to a provider using OAuth").option("-p, --profile <profileId>", "Profile ID (default: provider:default)").action(async (provider, _options) => {
|
|
@@ -98,7 +99,7 @@ function createAuthCommand(_ctx) {
|
|
|
98
99
|
else log.warn(`Profile not found: ${options.profile}`);
|
|
99
100
|
return;
|
|
100
101
|
}
|
|
101
|
-
await
|
|
102
|
+
await disconnectProvider(provider);
|
|
102
103
|
log.info(`Logged out from provider: ${provider}`);
|
|
103
104
|
});
|
|
104
105
|
const profilesCmd = cmd.command("profiles").description("Manage auth profiles");
|
|
@@ -147,7 +148,7 @@ function createAuthCommand(_ctx) {
|
|
|
147
148
|
const providers = /* @__PURE__ */ new Set();
|
|
148
149
|
for (const profile of profiles) providers.add(profile.provider);
|
|
149
150
|
for (const token of oauthTokens) providers.add(token.provider);
|
|
150
|
-
for (const provider of providers) await
|
|
151
|
+
for (const provider of providers) await disconnectProvider(provider);
|
|
151
152
|
log.info("All authentication credentials cleared.");
|
|
152
153
|
});
|
|
153
154
|
cmd.command("providers").description("List supported providers and their auth methods").action(() => {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { init_loader, loadConfig, saveConfig } from "../../config/loader.js";
|
|
2
|
-
import { getStoreConnectorInstallPlan, installStoreConnector, listStoreConnectors } from "../../capabilities/store-connector.js";
|
|
3
2
|
import { register } from "../registry.js";
|
|
3
|
+
import { getStoreConnectorInstallPlan, installStoreConnector, listStoreConnectors } from "../../capabilities/store-connector.js";
|
|
4
4
|
import { confirm } from "@inquirer/prompts";
|
|
5
5
|
import { Command } from "commander";
|
|
6
6
|
//#region src/cli/commands/connectors.ts
|
|
@@ -6,6 +6,7 @@ import { formatExamples, register } from "../registry.js";
|
|
|
6
6
|
import { getContextWithOpts } from "../context.js";
|
|
7
7
|
import "../../config/index.js";
|
|
8
8
|
import { prepareUpdateGlobalDefaults } from "../../gateway/global-defaults-admin.js";
|
|
9
|
+
import { disconnectProvider } from "../../providers/provider-disconnect.js";
|
|
9
10
|
import { colors } from "../utils/colors.js";
|
|
10
11
|
import { runCliOAuthLogin } from "../utils/oauth-login.js";
|
|
11
12
|
import { input } from "@inquirer/prompts";
|
|
@@ -191,7 +192,7 @@ async function runAuthLogin(provider, options) {
|
|
|
191
192
|
}
|
|
192
193
|
}
|
|
193
194
|
async function runAuthLogout(provider) {
|
|
194
|
-
await
|
|
195
|
+
await disconnectProvider(provider);
|
|
195
196
|
console.log(`✅ Credentials removed for ${provider}`);
|
|
196
197
|
}
|
|
197
198
|
function attachModelsListOptions(command) {
|
|
@@ -2,26 +2,8 @@
|
|
|
2
2
|
* Catalog-driven model configuration for onboarding.
|
|
3
3
|
*/
|
|
4
4
|
import type { Config } from '../../../config/schema.js';
|
|
5
|
-
import { type
|
|
6
|
-
import { XopcCloudModelSource } from '../../../providers/xopc-cloud-model-source.js';
|
|
5
|
+
import { type XopcCloudCatalogCoordinator } from '../../../providers/xopc-cloud-catalog-coordinator.js';
|
|
7
6
|
import type { CLIContext } from '../../registry.js';
|
|
8
|
-
export declare function
|
|
9
|
-
export declare function
|
|
10
|
-
export declare function defaultXopcCloudAudioModels(catalogStore?: ModelCatalogStore): {
|
|
11
|
-
stt?: string;
|
|
12
|
-
tts?: {
|
|
13
|
-
model: string;
|
|
14
|
-
voice: string;
|
|
15
|
-
maxCharacters: number;
|
|
16
|
-
};
|
|
17
|
-
};
|
|
18
|
-
export declare function setPrimaryModel(config: Config, workspacePath: string, modelRef: string, defaultImageGenerationModel?: string, defaultAudioModels?: {
|
|
19
|
-
stt?: string;
|
|
20
|
-
tts?: {
|
|
21
|
-
model: string;
|
|
22
|
-
voice: string;
|
|
23
|
-
maxCharacters: number;
|
|
24
|
-
};
|
|
25
|
-
}, defaultVisionModel?: string): Config;
|
|
26
|
-
export declare function refreshOnboardModelCatalogIfNeeded(provider: string, hasCatalogModels: boolean, source?: Pick<XopcCloudModelSource, 'refresh'>): Promise<void>;
|
|
7
|
+
export declare function setPrimaryModel(config: Config, workspacePath: string, modelRef: string): Config;
|
|
8
|
+
export declare function refreshOnboardModelCatalogIfNeeded(provider: string, hasCatalogModels: boolean, coordinator?: Pick<XopcCloudCatalogCoordinator, 'refresh'>): Promise<void>;
|
|
27
9
|
export declare function setupModel(existingConfig: Config | null, ctx: CLIContext): Promise<Config>;
|
|
@@ -2,7 +2,6 @@ import { getAgentDefaultModelRef, init_schema } from "../../../config/schema.js"
|
|
|
2
2
|
import { resolveModelsJsonPath } from "../../../config/paths.js";
|
|
3
3
|
import { init_models_json, loadModelsJson, saveModelsJson } from "../../../config/models-json.js";
|
|
4
4
|
import { getApiKeyFromEnv } from "../../../providers/env-keys.js";
|
|
5
|
-
import { getModelCatalogStore, init_model_catalog_store } from "../../../providers/model-catalog-store.js";
|
|
6
5
|
import { getModelRegistry } from "../../../providers/model-registry.js";
|
|
7
6
|
import { CredentialResolver, init_credentials } from "../../../auth/credentials.js";
|
|
8
7
|
import { getAllProviders, getModelsByProvider, getProviderDisplayName, init_providers, providerSupportsApiKey, providerSupportsOAuth } from "../../../providers/index.js";
|
|
@@ -10,7 +9,7 @@ import { getDomesticProviderBaseUrl, getDomesticProviderPreset, getDomesticProvi
|
|
|
10
9
|
import { getProviderHint, getRecommendedModelsForProvider, sortModelsForPicker, sortProvidersForPicker } from "../../../providers/presentation.js";
|
|
11
10
|
import { prepareUpdateGlobalDefaults } from "../../../gateway/global-defaults-admin.js";
|
|
12
11
|
import { discoverProviderModels, isProviderApiDiscoverable } from "../../../providers/model-discovery.js";
|
|
13
|
-
import {
|
|
12
|
+
import { getXopcCloudCatalogCoordinator } from "../../../providers/xopc-cloud-catalog-coordinator.js";
|
|
14
13
|
import { listProfilesForProvider } from "../../../auth/profiles/profiles.js";
|
|
15
14
|
import { getOAuthProvider } from "../../utils/oauth-providers.js";
|
|
16
15
|
import { colors } from "../../utils/colors.js";
|
|
@@ -24,29 +23,7 @@ init_credentials();
|
|
|
24
23
|
init_models_json();
|
|
25
24
|
init_schema();
|
|
26
25
|
init_providers();
|
|
27
|
-
|
|
28
|
-
function defaultXopcCloudImageModel(catalogStore = getModelCatalogStore()) {
|
|
29
|
-
const model = catalogStore.getSource("xopc-cloud")?.models.find((entry) => entry.availability === "available" && entry.kind === "image" && entry.operations.includes("images.generate"));
|
|
30
|
-
return model ? `xopc-cloud/${model.id}` : void 0;
|
|
31
|
-
}
|
|
32
|
-
function defaultXopcCloudVisionModel(catalogStore = getModelCatalogStore()) {
|
|
33
|
-
const model = catalogStore.getSource("xopc-cloud")?.models.find((entry) => entry.availability === "available" && entry.kind === "language" && entry.input.includes("image") && (entry.operations.includes("chat.completions") || entry.operations.includes("responses")));
|
|
34
|
-
return model ? `xopc-cloud/${model.id}` : void 0;
|
|
35
|
-
}
|
|
36
|
-
function defaultXopcCloudAudioModels(catalogStore = getModelCatalogStore()) {
|
|
37
|
-
const models = catalogStore.getSource("xopc-cloud")?.models.filter((entry) => entry.availability === "available") ?? [];
|
|
38
|
-
const stt = models.find((entry) => entry.kind === "stt");
|
|
39
|
-
const tts = models.find((entry) => entry.kind === "tts" && entry.tts?.defaultVoice);
|
|
40
|
-
return {
|
|
41
|
-
...stt ? { stt: stt.id } : {},
|
|
42
|
-
...tts?.tts?.defaultVoice ? { tts: {
|
|
43
|
-
model: tts.id,
|
|
44
|
-
voice: tts.tts.defaultVoice,
|
|
45
|
-
maxCharacters: tts.tts.maxCharacters
|
|
46
|
-
} } : {}
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
function setPrimaryModel(config, workspacePath, modelRef, defaultImageGenerationModel, defaultAudioModels, defaultVisionModel) {
|
|
26
|
+
function setPrimaryModel(config, workspacePath, modelRef) {
|
|
50
27
|
const id = config.agents.default ?? config.agents.list[0]?.id ?? "main";
|
|
51
28
|
const index = config.agents.list.findIndex((entry) => entry.id === id);
|
|
52
29
|
let nextConfig = config;
|
|
@@ -73,57 +50,10 @@ function setPrimaryModel(config, workspacePath, modelRef, defaultImageGeneration
|
|
|
73
50
|
roles: {
|
|
74
51
|
...currentModels?.roles,
|
|
75
52
|
deep: { model: modelRef }
|
|
76
|
-
}
|
|
77
|
-
...!currentModels?.imageModel && defaultVisionModel ? { imageModel: { primary: defaultVisionModel } } : {},
|
|
78
|
-
...!currentModels?.imageGenerationModel && defaultImageGenerationModel ? { imageGenerationModel: { primary: defaultImageGenerationModel } } : {}
|
|
53
|
+
}
|
|
79
54
|
} });
|
|
80
55
|
if (prep.ok === false) throw new Error(prep.error);
|
|
81
|
-
|
|
82
|
-
if (defaultAudioModels?.stt && !configured.tools.media?.audio) configured = {
|
|
83
|
-
...configured,
|
|
84
|
-
tools: {
|
|
85
|
-
...configured.tools,
|
|
86
|
-
media: {
|
|
87
|
-
...configured.tools.media,
|
|
88
|
-
audio: {
|
|
89
|
-
enabled: true,
|
|
90
|
-
provider: "xopc-cloud",
|
|
91
|
-
models: [{
|
|
92
|
-
provider: "xopc-cloud",
|
|
93
|
-
model: defaultAudioModels.stt,
|
|
94
|
-
capabilities: ["audio"]
|
|
95
|
-
}],
|
|
96
|
-
providers: { "xopc-cloud": { model: defaultAudioModels.stt } },
|
|
97
|
-
fallback: {
|
|
98
|
-
enabled: false,
|
|
99
|
-
order: []
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
};
|
|
105
|
-
if (defaultAudioModels?.tts && !configured.messages?.tts) configured = {
|
|
106
|
-
...configured,
|
|
107
|
-
messages: {
|
|
108
|
-
...configured.messages,
|
|
109
|
-
tts: {
|
|
110
|
-
enabled: true,
|
|
111
|
-
provider: "xopc-cloud",
|
|
112
|
-
trigger: "off",
|
|
113
|
-
fallback: {
|
|
114
|
-
enabled: false,
|
|
115
|
-
order: []
|
|
116
|
-
},
|
|
117
|
-
maxTextLength: defaultAudioModels.tts.maxCharacters,
|
|
118
|
-
timeoutMs: 6e4,
|
|
119
|
-
providers: { "xopc-cloud": {
|
|
120
|
-
model: defaultAudioModels.tts.model,
|
|
121
|
-
voice: defaultAudioModels.tts.voice
|
|
122
|
-
} }
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
};
|
|
126
|
-
return configured;
|
|
56
|
+
return prep.data.nextConfig;
|
|
127
57
|
}
|
|
128
58
|
function formatRecommended(provider) {
|
|
129
59
|
const labels = getRecommendedModelsForProvider(provider, 3).map((m) => m.name || m.id);
|
|
@@ -166,11 +96,12 @@ function getModelsForProvider(provider) {
|
|
|
166
96
|
};
|
|
167
97
|
});
|
|
168
98
|
}
|
|
169
|
-
async function refreshOnboardModelCatalogIfNeeded(provider, hasCatalogModels,
|
|
99
|
+
async function refreshOnboardModelCatalogIfNeeded(provider, hasCatalogModels, coordinator = getXopcCloudCatalogCoordinator()) {
|
|
170
100
|
if (provider !== "xopc-cloud" || hasCatalogModels) return;
|
|
171
101
|
console.log("\n→ Loading models from XOPC Model Service...");
|
|
172
|
-
const result = await
|
|
173
|
-
if (result.
|
|
102
|
+
const result = await coordinator.refresh("oauth");
|
|
103
|
+
if (result.state === "not-authorized") throw new Error("XOPC Model Service credentials are unavailable after OAuth login. Please sign in again.");
|
|
104
|
+
if (result.error || result.modelCount === 0) throw new Error(result.error?.message ?? "XOPC Model Service did not publish any models for this account.");
|
|
174
105
|
console.log(colors.green(`✓ Loaded ${result.modelCount} models`));
|
|
175
106
|
}
|
|
176
107
|
function discoveredModelsToChoices(provider, models) {
|
|
@@ -545,14 +476,7 @@ async function setupModel(existingConfig, ctx) {
|
|
|
545
476
|
}))
|
|
546
477
|
});
|
|
547
478
|
console.log("\n✅ Model configured:", model);
|
|
548
|
-
|
|
549
|
-
const visionModel = provider === "xopc-cloud" ? defaultXopcCloudVisionModel() : void 0;
|
|
550
|
-
const audioModels = provider === "xopc-cloud" ? defaultXopcCloudAudioModels() : void 0;
|
|
551
|
-
if (visionModel) console.log("✅ Image understanding configured:", visionModel);
|
|
552
|
-
if (imageModel) console.log("✅ Image generation configured:", imageModel);
|
|
553
|
-
if (audioModels?.stt) console.log("✅ Speech recognition configured:", audioModels.stt);
|
|
554
|
-
if (audioModels?.tts) console.log("✅ Speech synthesis configured:", audioModels.tts.model);
|
|
555
|
-
return setPrimaryModel(config, ctx.workspacePath, model, imageModel, audioModels, visionModel);
|
|
479
|
+
return setPrimaryModel(config, ctx.workspacePath, model);
|
|
556
480
|
}
|
|
557
481
|
//#endregion
|
|
558
|
-
export {
|
|
482
|
+
export { refreshOnboardModelCatalogIfNeeded, setPrimaryModel, setupModel };
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { OAuthCredentials, OAuthLoginCallbacks, OAuthProviderInterface } from '../../auth/index.js';
|
|
2
|
+
import { type CatalogReadiness } from '../../providers/xopc-cloud-catalog-coordinator.js';
|
|
2
3
|
import { type OAuthProviderConfig } from './oauth-providers.js';
|
|
3
4
|
export interface RunCliOAuthLoginOptions {
|
|
4
5
|
provider: string;
|
|
@@ -8,6 +9,7 @@ export interface RunCliOAuthLoginResult {
|
|
|
8
9
|
provider: string;
|
|
9
10
|
credentials: OAuthCredentials;
|
|
10
11
|
expires?: number;
|
|
12
|
+
catalog?: CatalogReadiness;
|
|
11
13
|
}
|
|
12
14
|
export declare function buildCliOAuthCallbacks(params: {
|
|
13
15
|
config: OAuthProviderConfig;
|
|
@@ -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 { CredentialResolver, init_credentials } from "../../auth/credentials.js";
|
|
4
|
+
import { getXopcCloudCatalogCoordinator } from "../../providers/xopc-cloud-catalog-coordinator.js";
|
|
4
5
|
import { getOAuthProvider } from "./oauth-providers.js";
|
|
5
6
|
import { input, select } from "@inquirer/prompts";
|
|
6
7
|
//#region src/cli/utils/oauth-login.ts
|
|
@@ -75,10 +76,17 @@ async function runCliOAuthLogin(options) {
|
|
|
75
76
|
onProgress: options.onProgress
|
|
76
77
|
}));
|
|
77
78
|
await new CredentialResolver().saveOAuthCredentials(options.provider, credentials);
|
|
79
|
+
let catalog;
|
|
80
|
+
if (options.provider === "xopc-cloud") {
|
|
81
|
+
options.onProgress?.("Syncing XOPC Cloud model catalog...");
|
|
82
|
+
catalog = await getXopcCloudCatalogCoordinator().refresh("oauth");
|
|
83
|
+
if (catalog.error) options.onProgress?.(`Authorization succeeded, but model catalog sync failed: ${catalog.error.message}`);
|
|
84
|
+
}
|
|
78
85
|
return {
|
|
79
86
|
provider: options.provider,
|
|
80
87
|
credentials,
|
|
81
|
-
expires: credentials.expires
|
|
88
|
+
expires: credentials.expires,
|
|
89
|
+
catalog
|
|
82
90
|
};
|
|
83
91
|
}
|
|
84
92
|
//#endregion
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { init_agent_scope, normalizeAgentId, resolveAgentWorkspaceDir } from "../agent/agent-scope.js";
|
|
1
2
|
import { resolveEffectiveAgentManifest } from "../agent-manifest/resolver.js";
|
|
2
3
|
import "../agent-manifest/index.js";
|
|
3
|
-
import { init_agent_scope, normalizeAgentId, resolveAgentWorkspaceDir } from "../agent/agent-scope.js";
|
|
4
4
|
import { init_session_key, parseSessionKey } from "../routing/session-key.js";
|
|
5
5
|
import { agentExists, getDefaultAgentId, init_resolve_route } from "../routing/resolve-route.js";
|
|
6
6
|
//#region src/config/agent-profile.ts
|
package/dist/src/config/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ENV_VARS, XOPC_DB_FILENAME, resolveHomeDir, resolveStateDir, resolveXopcDatabasePath } from "./paths-state.js";
|
|
1
|
+
import { ENV_VARS, XOPC_DB_FILENAME, resolveHomeDir, resolveStateDir, resolveXopcCloudCatalogCachePath, resolveXopcDatabasePath } from "./paths-state.js";
|
|
2
2
|
import { TelegramAccountConfigSchema, TelegramConfigSchema, TelegramGroupConfigSchema, TelegramTopicConfigSchema } from "../../extensions/telegram/src/config-schema.js";
|
|
3
3
|
import { WeixinAccountConfigSchema, WeixinConfigSchema } from "../../extensions/weixin/src/config-schema.js";
|
|
4
4
|
import { AgentImageGenerationModelSchema, AgentModelRefSchema, AgentModelsSchema, AgentTypedModelRoleSchema, AgentsConfigSchema, BindingMatchSchema, BindingRuleSchema, BindingsConfigSchema, BrowserConfigSchema, ChannelsConfigSchema, CommandsConfigSchema, ConfigSchema, ConnectorsConfigSchema, ExperimentalConfigSchema, ExtensionSecurityConfigSchema, ExtensionSlotsConfigSchema, ExtensionsConfigSchema, GatewayAuthRateLimitSchema, GatewayAuthSchema, GatewayBindModeSchema, GatewayChannelConnectDeferModeSchema, GatewayConfigSchema, GatewayModeSchema, GatewayRemoteSchema, GatewaySecuritySchema, GatewayTailscaleConsentSchema, GatewayTailscaleSchema, GatewayTlsSchema, GatewayTrustedProxySchema, GatewayWebchatConfigSchema, HeartbeatConfigSchema, McpConfigSchema, McpServerSchema, MediaUnderstandingCapabilitiesSchema, MediaUnderstandingModelSchema, MessagesConfigSchema, ModelCatalogConfigSchema, ModelsDevConfigSchema, ProviderAuthConfigSchema, ProviderAzureConfigSchema, ProviderRequestOverridesSchema, ProvidersConfigSchema, RuntimeToolsConfigSchema, STTConfigSchema, STTFallbackConfigSchema, STTProviderConfigSchema, SearchProviderEntrySchema, SessionConfigSchema, SessionDmScopeSchema, SessionResetByTypeSchema, SessionResetConfigSchema, SessionResetModeSchema, SessionScopeSchema, SessionStorageConfigSchema, TTSConfigSchema, TTSEdgeConfigSchema, TTSFallbackConfigSchema, TTSModelOverridesConfigSchema, TTSProviderConfigSchema, TTSSummarizationConfigSchema, ToolsConfigSchema, ToolsMediaAudioConfigSchema, ToolsMediaConfigSchema, TuiConfigSchema, TunnelConfigSchema, TunnelConsentSchema, UpdateAutoConfigSchema, UpdateConfigSchema, VoiceConfigSchema, VoiceRefinementConfigSchema, WebSearchConfigSchema, WebToolsConfigSchema, WebsiteBlocklistSchema, WorkspaceConfigSchema, WorkspaceImportConfigSchema, getAgentDefaultImageGenerationModelConfig, getAgentDefaultImageModelConfig, getAgentDefaultModelRef, init_schema, parseModelRef } from "./schema.js";
|
|
@@ -27,4 +27,4 @@ init_workspace_path();
|
|
|
27
27
|
init_models_json();
|
|
28
28
|
init_resolve_config_value();
|
|
29
29
|
//#endregion
|
|
30
|
-
export { AgentImageGenerationModelSchema, AgentModelRefSchema, AgentModelsSchema, AgentTypedModelRoleSchema, AgentsConfigSchema, BASE_RELOAD_RULES, BindingMatchSchema, BindingRuleSchema, BindingsConfigSchema, BrowserConfigSchema, ChannelsConfigSchema, CommandsConfigSchema, ConfigHotReloader, ConfigSchema, ConnectorsConfigSchema, CustomModelSchema, ENV_VARS, ExperimentalConfigSchema, ExtensionSecurityConfigSchema, ExtensionSlotsConfigSchema, ExtensionsConfigSchema, FILENAMES, GatewayAuthRateLimitSchema, GatewayAuthSchema, GatewayBindModeSchema, GatewayChannelConnectDeferModeSchema, GatewayConfigSchema, GatewayModeSchema, GatewayRemoteSchema, GatewaySecuritySchema, GatewayTailscaleConsentSchema, GatewayTailscaleSchema, GatewayTlsSchema, GatewayTrustedProxySchema, GatewayWebchatConfigSchema, HeartbeatConfigSchema, ImageGenerationCapabilitiesSchema, ImageGenerationModelSchema, ImageGenerationProviderSchema, McpConfigSchema, McpServerSchema, MediaUnderstandingCapabilitiesSchema, MediaUnderstandingModelSchema, MessagesConfigSchema, ModelCatalogConfigSchema, ModelOverrideSchema, ModelsDevConfigSchema, ModelsJsonSchema, OpenAICompatSchema, OpenAICompletionsCompatSchema, OpenAIResponsesCompatSchema, OpenRouterRoutingSchema, ProfileManager, ProviderAuthConfigSchema, ProviderAzureConfigSchema, ProviderConfigSchema, ProviderRequestOverridesSchema, ProvidersConfigSchema, RuntimeToolsConfigSchema, STTConfigSchema, STTFallbackConfigSchema, STTProviderConfigSchema, SearchProviderEntrySchema, SessionConfigSchema, SessionDmScopeSchema, SessionResetByTypeSchema, SessionResetConfigSchema, SessionResetModeSchema, SessionScopeSchema, SessionStorageConfigSchema, TTSConfigSchema, TTSEdgeConfigSchema, TTSFallbackConfigSchema, TTSModelOverridesConfigSchema, TTSProviderConfigSchema, TTSSummarizationConfigSchema, TelegramAccountConfigSchema, TelegramConfigSchema, TelegramGroupConfigSchema, TelegramTopicConfigSchema, ToolsConfigSchema, ToolsMediaAudioConfigSchema, ToolsMediaConfigSchema, TuiConfigSchema, TunnelConfigSchema, TunnelConsentSchema, UpdateAutoConfigSchema, UpdateConfigSchema, VercelGatewayRoutingSchema, VoiceConfigSchema, VoiceRefinementConfigSchema, WORKSPACE_FILES, WebSearchConfigSchema, WebToolsConfigSchema, WebsiteBlocklistSchema, WeixinAccountConfigSchema, WeixinConfigSchema, WorkspaceConfigSchema, WorkspaceImportConfigSchema, XOPC_DB_FILENAME, applyConfigOverrides, buildReloadPlan, canonicalizeConfiguredMcpServer, clearConfigValueCache, createProfile, deleteProfile, diffConfigPaths, existsSync, expandWorkspacePathString, extractProfileAgentId, formatThinkingLevels, getAgentDefaultImageGenerationModelConfig, getAgentDefaultImageModelConfig, getAgentDefaultModelRef, getAllowedCommands, getCacheStats, getConfigOverrides, getCurrentProfile, getDefaultModelValues, resolveModelsJsonPath as getModelsJsonPath, getProfileManager, getProfileNameFromDir, getSwitchCommand, getWorkspacePath, hasBundledExtensionManifest, isKnownCliMcpTypeAlias, listAgentProfileMarkdownDirs, listAgentWorkspaceDirs, listProfiles, listThinkingLevels, loadConfig, loadModelsJson, matchReloadRule, modelsJsonExists, normalizeConfiguredMcpServers, normalizeElevatedMode, normalizeReasoningLevel, normalizeThinkLevel, normalizeVerboseLevel, normalizeWorkspaceDir, parseModelRef, resetConfigOverrides, resolveAgentAuthProfilesPath, resolveAgentDir, resolveAgentDir$1 as resolveAgentDirFromConfig, resolveAgentHomeDir, resolveAgentHomeDir$1 as resolveAgentHomeDirFromConfig, resolveAgentProfileDir, resolveAgentProfileMarkdownPath, resolveAgentWorkspaceDir, resolveAuthProfilesPath, resolveBinDir, resolveBundledExtensionsDir, resolveBundledSkillsDir, resolveConfigPath, resolveConfigValue, resolveCredentialsDir, resolveDefaultAgentWorkspaceDir, resolveEffectiveAgentManifestForAgent, resolveEffectiveAgentManifestForSession, resolveEffectiveAgentProfile, resolveEffectiveAgentProfileForSession, resolveExtensionSdkPath, resolveExtensionsDir, resolveExtensionsLockPath, resolveHeaders, resolveHomeDir, resolveInboxDir, resolveInboxMessagePath, resolveInboxPendingDir, resolveInboxProcessedDir, resolveLogPath, resolveLogsDir, resolveModelsJsonPath, resolveNodeBinDir, resolveNodeBinPath, resolveNodeToolsDir, resolveNpmBinPath, resolveOAuthPath, resolvePidPath, resolveProfileStateDir, resolveSkillPath, resolveSkillsCachePath, resolveSkillsDir, resolveSkillsLockPath, resolveSocketPath, resolveStateDir, resolveStatusPath, resolveToolsDir, resolveWorkspaceExtensionsDir, resolveWorkspaceFile, resolveWorkspaceRoot, resolveWorkspaceStateDir, resolveWorkspaceStatePath, resolveXopcBinPath, resolveXopcDatabasePath, resolveXopcMcpTransportAlias, saveConfig, saveModelsJson, setConfigOverride, testApiKeyResolution, thinkLevelToNumber, unsetConfigOverride, validateModelsConfig };
|
|
30
|
+
export { AgentImageGenerationModelSchema, AgentModelRefSchema, AgentModelsSchema, AgentTypedModelRoleSchema, AgentsConfigSchema, BASE_RELOAD_RULES, BindingMatchSchema, BindingRuleSchema, BindingsConfigSchema, BrowserConfigSchema, ChannelsConfigSchema, CommandsConfigSchema, ConfigHotReloader, ConfigSchema, ConnectorsConfigSchema, CustomModelSchema, ENV_VARS, ExperimentalConfigSchema, ExtensionSecurityConfigSchema, ExtensionSlotsConfigSchema, ExtensionsConfigSchema, FILENAMES, GatewayAuthRateLimitSchema, GatewayAuthSchema, GatewayBindModeSchema, GatewayChannelConnectDeferModeSchema, GatewayConfigSchema, GatewayModeSchema, GatewayRemoteSchema, GatewaySecuritySchema, GatewayTailscaleConsentSchema, GatewayTailscaleSchema, GatewayTlsSchema, GatewayTrustedProxySchema, GatewayWebchatConfigSchema, HeartbeatConfigSchema, ImageGenerationCapabilitiesSchema, ImageGenerationModelSchema, ImageGenerationProviderSchema, McpConfigSchema, McpServerSchema, MediaUnderstandingCapabilitiesSchema, MediaUnderstandingModelSchema, MessagesConfigSchema, ModelCatalogConfigSchema, ModelOverrideSchema, ModelsDevConfigSchema, ModelsJsonSchema, OpenAICompatSchema, OpenAICompletionsCompatSchema, OpenAIResponsesCompatSchema, OpenRouterRoutingSchema, ProfileManager, ProviderAuthConfigSchema, ProviderAzureConfigSchema, ProviderConfigSchema, ProviderRequestOverridesSchema, ProvidersConfigSchema, RuntimeToolsConfigSchema, STTConfigSchema, STTFallbackConfigSchema, STTProviderConfigSchema, SearchProviderEntrySchema, SessionConfigSchema, SessionDmScopeSchema, SessionResetByTypeSchema, SessionResetConfigSchema, SessionResetModeSchema, SessionScopeSchema, SessionStorageConfigSchema, TTSConfigSchema, TTSEdgeConfigSchema, TTSFallbackConfigSchema, TTSModelOverridesConfigSchema, TTSProviderConfigSchema, TTSSummarizationConfigSchema, TelegramAccountConfigSchema, TelegramConfigSchema, TelegramGroupConfigSchema, TelegramTopicConfigSchema, ToolsConfigSchema, ToolsMediaAudioConfigSchema, ToolsMediaConfigSchema, TuiConfigSchema, TunnelConfigSchema, TunnelConsentSchema, UpdateAutoConfigSchema, UpdateConfigSchema, VercelGatewayRoutingSchema, VoiceConfigSchema, VoiceRefinementConfigSchema, WORKSPACE_FILES, WebSearchConfigSchema, WebToolsConfigSchema, WebsiteBlocklistSchema, WeixinAccountConfigSchema, WeixinConfigSchema, WorkspaceConfigSchema, WorkspaceImportConfigSchema, XOPC_DB_FILENAME, applyConfigOverrides, buildReloadPlan, canonicalizeConfiguredMcpServer, clearConfigValueCache, createProfile, deleteProfile, diffConfigPaths, existsSync, expandWorkspacePathString, extractProfileAgentId, formatThinkingLevels, getAgentDefaultImageGenerationModelConfig, getAgentDefaultImageModelConfig, getAgentDefaultModelRef, getAllowedCommands, getCacheStats, getConfigOverrides, getCurrentProfile, getDefaultModelValues, resolveModelsJsonPath as getModelsJsonPath, getProfileManager, getProfileNameFromDir, getSwitchCommand, getWorkspacePath, hasBundledExtensionManifest, isKnownCliMcpTypeAlias, listAgentProfileMarkdownDirs, listAgentWorkspaceDirs, listProfiles, listThinkingLevels, loadConfig, loadModelsJson, matchReloadRule, modelsJsonExists, normalizeConfiguredMcpServers, normalizeElevatedMode, normalizeReasoningLevel, normalizeThinkLevel, normalizeVerboseLevel, normalizeWorkspaceDir, parseModelRef, resetConfigOverrides, resolveAgentAuthProfilesPath, resolveAgentDir, resolveAgentDir$1 as resolveAgentDirFromConfig, resolveAgentHomeDir, resolveAgentHomeDir$1 as resolveAgentHomeDirFromConfig, resolveAgentProfileDir, resolveAgentProfileMarkdownPath, resolveAgentWorkspaceDir, resolveAuthProfilesPath, resolveBinDir, resolveBundledExtensionsDir, resolveBundledSkillsDir, resolveConfigPath, resolveConfigValue, resolveCredentialsDir, resolveDefaultAgentWorkspaceDir, resolveEffectiveAgentManifestForAgent, resolveEffectiveAgentManifestForSession, resolveEffectiveAgentProfile, resolveEffectiveAgentProfileForSession, resolveExtensionSdkPath, resolveExtensionsDir, resolveExtensionsLockPath, resolveHeaders, resolveHomeDir, resolveInboxDir, resolveInboxMessagePath, resolveInboxPendingDir, resolveInboxProcessedDir, resolveLogPath, resolveLogsDir, resolveModelsJsonPath, resolveNodeBinDir, resolveNodeBinPath, resolveNodeToolsDir, resolveNpmBinPath, resolveOAuthPath, resolvePidPath, resolveProfileStateDir, resolveSkillPath, resolveSkillsCachePath, resolveSkillsDir, resolveSkillsLockPath, resolveSocketPath, resolveStateDir, resolveStatusPath, resolveToolsDir, resolveWorkspaceExtensionsDir, resolveWorkspaceFile, resolveWorkspaceRoot, resolveWorkspaceStateDir, resolveWorkspaceStatePath, resolveXopcBinPath, resolveXopcCloudCatalogCachePath, resolveXopcDatabasePath, resolveXopcMcpTransportAlias, saveConfig, saveModelsJson, setConfigOverride, testApiKeyResolution, thinkLevelToNumber, unsetConfigOverride, validateModelsConfig };
|
|
@@ -20,3 +20,5 @@ export declare function resolveUpdateLockPath(env?: NodeJS.ProcessEnv): string;
|
|
|
20
20
|
/** Primary SQLite state database (`~/.xopc/xopc.db`). */
|
|
21
21
|
export declare const XOPC_DB_FILENAME = "xopc.db";
|
|
22
22
|
export declare function resolveXopcDatabasePath(env?: NodeJS.ProcessEnv): string;
|
|
23
|
+
/** Durable last-known-good XOPC Cloud model catalog. */
|
|
24
|
+
export declare function resolveXopcCloudCatalogCachePath(env?: NodeJS.ProcessEnv): string;
|
|
@@ -20,6 +20,10 @@ function resolveUpdateLockPath(env = process.env) {
|
|
|
20
20
|
function resolveXopcDatabasePath(env = process.env) {
|
|
21
21
|
return join(resolveStateDir(env), XOPC_DB_FILENAME);
|
|
22
22
|
}
|
|
23
|
+
/** Durable last-known-good XOPC Cloud model catalog. */
|
|
24
|
+
function resolveXopcCloudCatalogCachePath(env = process.env) {
|
|
25
|
+
return join(resolveStateDir(env), "cache", "model-catalog", "xopc-cloud-v1.json");
|
|
26
|
+
}
|
|
23
27
|
var ENV_VARS, XOPC_DB_FILENAME;
|
|
24
28
|
var init_paths_state = __esmMin((() => {
|
|
25
29
|
ENV_VARS = {
|
|
@@ -39,4 +43,4 @@ var init_paths_state = __esmMin((() => {
|
|
|
39
43
|
}));
|
|
40
44
|
//#endregion
|
|
41
45
|
init_paths_state();
|
|
42
|
-
export { ENV_VARS, XOPC_DB_FILENAME, init_paths_state, resolveHomeDir, resolveStateDir, resolveUpdateCheckStatePath, resolveUpdateLockPath, resolveXopcDatabasePath };
|
|
46
|
+
export { ENV_VARS, XOPC_DB_FILENAME, init_paths_state, resolveHomeDir, resolveStateDir, resolveUpdateCheckStatePath, resolveUpdateLockPath, resolveXopcCloudCatalogCachePath, resolveXopcDatabasePath };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { existsSync } from 'fs';
|
|
2
2
|
import type { Config } from './schema.js';
|
|
3
|
-
export { ENV_VARS, resolveHomeDir, resolveStateDir, resolveXopcDatabasePath, XOPC_DB_FILENAME } from './paths-state.js';
|
|
3
|
+
export { ENV_VARS, resolveHomeDir, resolveStateDir, resolveXopcCloudCatalogCachePath, resolveXopcDatabasePath, XOPC_DB_FILENAME, } from './paths-state.js';
|
|
4
4
|
export { resolveDefaultAgentWorkspaceDir } from './workspace-defaults.js';
|
|
5
5
|
export { resolveAgentWorkspaceDir, resolveAgentDir as resolveAgentDirFromConfig, resolveAgentHomeDir as resolveAgentHomeDirFromConfig, } from '../agent/agent-scope.js';
|
|
6
6
|
export declare const FILENAMES: {
|
package/dist/src/config/paths.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __esmMin } from "../../_virtual/_rolldown/runtime.js";
|
|
2
|
-
import { ENV_VARS, XOPC_DB_FILENAME, init_paths_state, resolveHomeDir, resolveStateDir, resolveXopcDatabasePath } from "./paths-state.js";
|
|
2
|
+
import { ENV_VARS, XOPC_DB_FILENAME, init_paths_state, resolveHomeDir, resolveStateDir, resolveXopcCloudCatalogCachePath, resolveXopcDatabasePath } from "./paths-state.js";
|
|
3
3
|
import { init_workspace_defaults, resolveDefaultAgentWorkspaceDir } from "./workspace-defaults.js";
|
|
4
4
|
import { init_agent_scope, resolveAgentDir as resolveAgentDir$1, resolveAgentHomeDir as resolveAgentHomeDir$1, resolveAgentProfileDir as resolveAgentProfileDir$1, resolveAgentProfileMarkdownPath as resolveAgentProfileMarkdownPath$1, resolveAgentWorkspaceDir } from "../agent/agent-scope.js";
|
|
5
5
|
import { dirname, join, sep } from "path";
|
|
@@ -320,4 +320,4 @@ var init_paths = __esmMin((() => {
|
|
|
320
320
|
}));
|
|
321
321
|
//#endregion
|
|
322
322
|
init_paths();
|
|
323
|
-
export { ENV_VARS, FILENAMES, WORKSPACE_FILES, XOPC_DB_FILENAME, existsSync, hasBundledExtensionManifest, init_paths, resolveAgentAuthProfilesPath, resolveAgentDir, resolveAgentDir$1 as resolveAgentDirFromConfig, resolveAgentHomeDir, resolveAgentHomeDir$1 as resolveAgentHomeDirFromConfig, resolveAgentProfileDir, resolveAgentProfileMarkdownPath, resolveAgentWorkspaceDir, resolveAuthProfilesPath, resolveBinDir, resolveBundledExtensionsDir, resolveBundledSkillsDir, resolveConfigPath, resolveCredentialsDir, resolveDefaultAgentWorkspaceDir, resolveExtensionSdkPath, resolveExtensionsDir, resolveExtensionsLockPath, resolveHomeDir, resolveInboxDir, resolveInboxMessagePath, resolveInboxPendingDir, resolveInboxProcessedDir, resolveLogPath, resolveLogsDir, resolveModelsJsonPath, resolveNodeBinDir, resolveNodeBinPath, resolveNodeToolsDir, resolveNpmBinPath, resolveOAuthPath, resolvePidPath, resolveSkillPath, resolveSkillsCachePath, resolveSkillsDir, resolveSkillsLockPath, resolveSocketPath, resolveStateDir, resolveStatusPath, resolveToolsDir, resolveWorkspaceExtensionsDir, resolveWorkspaceFile, resolveWorkspaceStateDir, resolveWorkspaceStatePath, resolveXopcBinPath, resolveXopcDatabasePath };
|
|
323
|
+
export { ENV_VARS, FILENAMES, WORKSPACE_FILES, XOPC_DB_FILENAME, existsSync, hasBundledExtensionManifest, init_paths, resolveAgentAuthProfilesPath, resolveAgentDir, resolveAgentDir$1 as resolveAgentDirFromConfig, resolveAgentHomeDir, resolveAgentHomeDir$1 as resolveAgentHomeDirFromConfig, resolveAgentProfileDir, resolveAgentProfileMarkdownPath, resolveAgentWorkspaceDir, resolveAuthProfilesPath, resolveBinDir, resolveBundledExtensionsDir, resolveBundledSkillsDir, resolveConfigPath, resolveCredentialsDir, resolveDefaultAgentWorkspaceDir, resolveExtensionSdkPath, resolveExtensionsDir, resolveExtensionsLockPath, resolveHomeDir, resolveInboxDir, resolveInboxMessagePath, resolveInboxPendingDir, resolveInboxProcessedDir, resolveLogPath, resolveLogsDir, resolveModelsJsonPath, resolveNodeBinDir, resolveNodeBinPath, resolveNodeToolsDir, resolveNpmBinPath, resolveOAuthPath, resolvePidPath, resolveSkillPath, resolveSkillsCachePath, resolveSkillsDir, resolveSkillsLockPath, resolveSocketPath, resolveStateDir, resolveStatusPath, resolveToolsDir, resolveWorkspaceExtensionsDir, resolveWorkspaceFile, resolveWorkspaceStateDir, resolveWorkspaceStatePath, resolveXopcBinPath, resolveXopcCloudCatalogCachePath, resolveXopcDatabasePath };
|