@xopcai/xopc 0.0.389 → 0.0.390
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/src/plugin.js +1 -1
- package/dist/extensions/telegram/xopc.extension.json +1 -1
- package/dist/gateway/static/root/assets/{activity-store-dvik6t7Z.js → activity-store-DGMAYkw8.js} +1 -1
- package/dist/gateway/static/root/assets/{agent-avatar-dicebear-bWMd5TDC.js → agent-avatar-dicebear-B4AsZzJR.js} +1 -1
- package/dist/gateway/static/root/assets/agent-defaults-settings-panel-9NUY1sO3.js +1 -0
- package/dist/gateway/static/root/assets/agent-plugin-dialog-CNc6ntzP.js +1 -0
- package/dist/gateway/static/root/assets/agents-QNY9Vkrf.js +77 -0
- package/dist/gateway/static/root/assets/{agents-admin-api-BlNGyXpm.js → agents-admin-api-DxdaiFWn.js} +1 -1
- package/dist/gateway/static/root/assets/app-management-settings-panel-DHRfLkYD.js +1 -0
- package/dist/gateway/static/root/assets/{appearance-settings-CUAdx44v.js → appearance-settings-DtKSapgb.js} +1 -1
- package/dist/gateway/static/root/assets/{apps-page-D5zDB6gp.js → apps-page-B9kuRt_z.js} +1 -1
- package/dist/gateway/static/root/assets/{archive-plugin-Du6dJNcl.js → archive-plugin-AgySTXp_.js} +1 -1
- package/dist/gateway/static/root/assets/{automations-page-BO8Ig5Z4.js → automations-page-D1o7ZtUW.js} +1 -1
- package/dist/gateway/static/root/assets/automations-workspace-BJenz0P1.js +6 -0
- package/dist/gateway/static/root/assets/{binary-plugins-D7VJjwnr.js → binary-plugins-A1AXOsO6.js} +1 -1
- package/dist/gateway/static/root/assets/{block-editor-CaJlWTAn.js → block-editor-DUNLkLKF.js} +3 -3
- package/dist/gateway/static/root/assets/{browser-automation-inputs-iyMBJmQX.js → browser-automation-inputs-BvUC6OiW.js} +1 -1
- package/dist/gateway/static/root/assets/browser-automations-page-Dq2LlVMh.js +3 -0
- package/dist/gateway/static/root/assets/browser-settings-page-BOZ-1g51.js +3 -0
- package/dist/gateway/static/root/assets/{capabilities-MCKRMZDK.js → capabilities-BkCutK0V.js} +1 -1
- package/dist/gateway/static/root/assets/{capabilities-CEH1AnXc.js → capabilities-D61uSJPy.js} +1 -1
- package/dist/gateway/static/root/assets/capabilities-page-BDP6gzlv.js +2 -0
- package/dist/gateway/static/root/assets/capabilities-settings-panel-D6PL3Mfl.js +8 -0
- package/dist/gateway/static/root/assets/{capability-header-actions-BIA0Lwt5.js → capability-header-actions-D9uGs4Pw.js} +1 -1
- package/dist/gateway/static/root/assets/channels-xb7n8rwF.js +1 -0
- package/dist/gateway/static/root/assets/chat-terminal-dock-Dgn09YDs.js +36 -0
- package/dist/gateway/static/root/assets/{computer-settings-page-DvY3zgyY.js → computer-settings-page-C66P4ifT.js} +1 -1
- package/dist/gateway/static/root/assets/{connector-service-page-St2-Fj3y.js → connector-service-page-Dp35XdYf.js} +1 -1
- package/dist/gateway/static/root/assets/connectors-page-BHcRxYib.js +1 -0
- package/dist/gateway/static/root/assets/{date-picker-C0-D80ny.js → date-picker-CddHY982.js} +1 -1
- package/dist/gateway/static/root/assets/{dependency-picker-CNd7mwMU.js → dependency-picker-Ob6BZTqv.js} +1 -1
- package/dist/gateway/static/root/assets/{desktop-pet-C-2wDANn.js → desktop-pet-dmwCV-I4.js} +1 -1
- package/dist/gateway/static/root/assets/{desktop-pet-settings-DyhxLrdJ.js → desktop-pet-settings-B-TBkZAZ.js} +1 -1
- package/dist/gateway/static/root/assets/device-pairing-wizard-SWHwRgG3.js +1 -0
- package/dist/gateway/static/root/assets/{directory-picker-path-field-CNivVIPT.js → directory-picker-path-field-6VZa4fT1.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-debug-page-CGYO3JPw.js → extension-debug-page-C0_njMva.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-page-Dc51ALAg.js → extension-page-BeBLMFmW.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-provider-BXPILdlw.js → extension-provider-DWI0KAKT.js} +1 -1
- package/dist/gateway/static/root/assets/extension-settings-page-BiLUwoKx.js +1 -0
- package/dist/gateway/static/root/assets/{gateway-config-swr-Bc2MytsF.js → gateway-config-swr-CmYcOqhb.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-realtime-BFK-vlME.js → gateway-realtime-Ci1Jst5g.js} +1 -1
- package/dist/gateway/static/root/assets/gateway-realtime-store-BMUiUQMk.js +1 -0
- package/dist/gateway/static/root/assets/gateway-settings-CzWT_v09.js +1 -0
- package/dist/gateway/static/root/assets/{gateway-startup-retry-BDPMttPx.js → gateway-startup-retry-C-BG5M7H.js} +1 -1
- package/dist/gateway/static/root/assets/{highlighted-body-KQOG7T2V-DAlRGMge.js → highlighted-body-KQOG7T2V-CsA7lCVc.js} +1 -1
- package/dist/gateway/static/root/assets/home-page-BeXJfxsg.js +2 -0
- package/dist/gateway/static/root/assets/image-generation-api-B_DqCwtV.js +1 -0
- package/dist/gateway/static/root/assets/imports-page-oAvAF9QS.js +1 -0
- package/dist/gateway/static/root/assets/index-W9ls-0Yd.css +1 -0
- package/dist/gateway/static/root/assets/index-xTL-vb51.js +260 -0
- package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-BYYC9Qmw.js → keyboard-shortcuts-settings--MjYe-Pb.js} +1 -1
- package/dist/gateway/static/root/assets/{local-app-workbench-page-BKZfn-MS.js → local-app-workbench-page-DL33dtd7.js} +1 -1
- package/dist/gateway/static/root/assets/{local-apps-page-BU8pUsVM.js → local-apps-page-DOa7mxjB.js} +1 -1
- package/dist/gateway/static/root/assets/{local-session-drafts-kFc_MAA9.js → local-session-drafts-DAtLkTPg.js} +1 -1
- package/dist/gateway/static/root/assets/{locale-store-Dr43FCty.js → locale-store-DMy9W6IG.js} +1 -1
- package/dist/gateway/static/root/assets/logs-page-C-GbTYsM.js +2 -0
- package/dist/gateway/static/root/assets/management-settings-C0TzuD3-.js +1 -0
- package/dist/gateway/static/root/assets/{markdown-view-CdKlPjJM.js → markdown-view-wyOHdXEg.js} +1 -1
- package/dist/gateway/static/root/assets/{media-plugins-DE9zt88i.js → media-plugins-Pb2zr_-L.js} +1 -1
- package/dist/gateway/static/root/assets/mermaid-MCJ5UELQ-BxyGGa4D.js +1 -0
- package/dist/gateway/static/root/assets/messages-O0BEUKnx.js +3 -0
- package/dist/gateway/static/root/assets/models-hub-cache-DdH1MODX.js +1 -0
- package/dist/gateway/static/root/assets/note-detail-panel-BFpEqskQ.js +5 -0
- package/dist/gateway/static/root/assets/{notes-api-BHouNL6-.js → notes-api-CYt2pGsm.js} +1 -1
- package/dist/gateway/static/root/assets/notes-page-h-qqFJ6Z.js +8 -0
- package/dist/gateway/static/root/assets/{page-context-capture-button-TQr8NnSc.js → page-context-capture-button-3uj5EcQC.js} +1 -1
- package/dist/gateway/static/root/assets/personal-page-BGyW6cdt.js +1 -0
- package/dist/gateway/static/root/assets/{product-open-page-BEl6syFp.js → product-open-page-hI13tPS1.js} +1 -1
- package/dist/gateway/static/root/assets/{product-preview-content-BxSHnbqz.js → product-preview-content-lT_in0-Q.js} +1 -1
- package/dist/gateway/static/root/assets/project-detail-page-Baj7fQ7N.js +1 -0
- package/dist/gateway/static/root/assets/projects-page-D7DyQFU3.js +1 -0
- package/dist/gateway/static/root/assets/{registry-api-BD5IgDOA.js → registry-api-CgQrCqL6.js} +1 -1
- package/dist/gateway/static/root/assets/remote-access-hub-DU_d93Tm.js +1 -0
- package/dist/gateway/static/root/assets/{runtime-tools-api-CjTRoQWT.js → runtime-tools-api-D12qVKeC.js} +1 -1
- package/dist/gateway/static/root/assets/runtime-tools-settings-panel-DOSPOfCU.js +1 -0
- package/dist/gateway/static/root/assets/scenes-page-swyUIF5A.js +2 -0
- package/dist/gateway/static/root/assets/{schema-form-ByG-R6N2.js → schema-form-CwOFgsyh.js} +1 -1
- package/dist/gateway/static/root/assets/{send-session-input-UAVStisp.js → send-session-input-nH8Cw0US.js} +1 -1
- package/dist/gateway/static/root/assets/{session-api-DvgEiNRS.js → session-api-B9HrwF-c.js} +1 -1
- package/dist/gateway/static/root/assets/{session-manager-BOb1tC_Z.js → session-manager-aXqXuqDX.js} +1 -1
- package/dist/gateway/static/root/assets/sessions-page-CI_PJmlX.js +1 -0
- package/dist/gateway/static/root/assets/settings-advanced-gate-DCVaeBLW.js +1 -0
- package/dist/gateway/static/root/assets/{settings-page-C1e9m23j.js → settings-page-BN70wE6R.js} +1 -1
- package/dist/gateway/static/root/assets/setup-status-panel-CHzcVRi-.js +1 -0
- package/dist/gateway/static/root/assets/{share-link-dialog-kE_6v5Dp.js → share-link-dialog-B1TDyhPt.js} +1 -1
- package/dist/gateway/static/root/assets/{share-preview-page-BT-_yR1h.js → share-preview-page-Br-eAZaP.js} +1 -1
- package/dist/gateway/static/root/assets/{shares-api-Dg_SqHQE.js → shares-api-Bl1ZBh5S.js} +1 -1
- package/dist/gateway/static/root/assets/shares-settings-jgCC_E4Y.js +1 -0
- package/dist/gateway/static/root/assets/{skill-api-BslUYMnX.js → skill-api-ClUw3SRC.js} +1 -1
- package/dist/gateway/static/root/assets/{skill-reload-api-BQ2rTOP1.js → skill-reload-api--1BfIPzb.js} +1 -1
- package/dist/gateway/static/root/assets/skills-page-C9oRZSuL.js +2 -0
- package/dist/gateway/static/root/assets/{system-settings-panel-GpbPfWwo.js → system-settings-panel-tWrqu7ai.js} +1 -1
- package/dist/gateway/static/root/assets/{task-detail-page-5B5ZVAu0.js → task-detail-page-BYRW7Rrr.js} +2 -2
- package/dist/gateway/static/root/assets/{task-expandable-content-DJrrEBB4.js → task-expandable-content-D2t4ahzR.js} +1 -1
- package/dist/gateway/static/root/assets/{theme-store-BKpYnggg.js → theme-store-BBLjE0fi.js} +1 -1
- package/dist/gateway/static/root/assets/{tracing-settings-page-D71w7dwV.js → tracing-settings-page-5ATxQH5c.js} +1 -1
- package/dist/gateway/static/root/assets/{tunnel-api-BV46CvS8.js → tunnel-api-CF1Qh4wU.js} +1 -1
- package/dist/gateway/static/root/assets/{usage-page-rMuwNpJi.js → usage-page-CuEHzXil.js} +1 -1
- package/dist/gateway/static/root/assets/{use-autosave-CzyqRffr.js → use-autosave-tY3keIbm.js} +1 -1
- package/dist/gateway/static/root/assets/{use-composer-attachments-Dviq-1f6.js → use-composer-attachments-CXsocZjt.js} +1 -1
- package/dist/gateway/static/root/assets/{use-file-preview-expanded-D5Kk7Hon.js → use-file-preview-expanded-CEsxnDnQ.js} +2 -2
- package/dist/gateway/static/root/assets/user-model-page-Dvt5TIZ6.js +2 -0
- package/dist/gateway/static/root/assets/{voice-api-key-field-DWtbmacd.js → voice-api-key-field-COTNLUU3.js} +1 -1
- package/dist/gateway/static/root/assets/{voice-config-api-DnIjZm_9.js → voice-config-api-DrxBjSja.js} +1 -1
- package/dist/gateway/static/root/assets/voice-transcribe-api-B47j0_xA.js +1 -0
- package/dist/gateway/static/root/assets/{work-discovery-overlay-ChEG71hz.js → work-discovery-overlay-PByMJrhV.js} +1 -1
- package/dist/gateway/static/root/assets/{workflow-run-setup-panel-pdiRKLxP.js → workflow-run-setup-panel-CSUkMo63.js} +2 -2
- package/dist/gateway/static/root/assets/{workflows-page-D9LMxINt.js → workflows-page-BUDvFo3R.js} +3 -3
- package/dist/gateway/static/root/assets/{workspace-api-CZDvu7uA.js → workspace-api-Bmx1O449.js} +2 -2
- package/dist/gateway/static/root/assets/{xopc-cloud-account-card-CbUgg1SK.js → xopc-cloud-account-card-DVsAbvwP.js} +1 -1
- package/dist/gateway/static/root/index.html +28 -27
- package/dist/package.js +1 -1
- package/dist/packages/gateway-contract/src/discussions.js +3 -2
- package/dist/packages/gateway-contract/src/index.js +4 -0
- package/dist/packages/gateway-contract/src/provider-setup.js +6 -0
- package/dist/packages/gateway-contract/src/recording-outcome.js +6 -0
- package/dist/packages/image-providers/src/catalog.js +10 -0
- package/dist/packages/image-providers/src/execute.js +5 -1
- package/dist/packages/image-providers/src/validation.js +19 -1
- package/dist/src/agent/background-review/run-background-review.d.ts +0 -1
- package/dist/src/agent/background-review/run-background-review.js +10 -2
- package/dist/src/agent/embedded/run-for-session.js +26 -3
- package/dist/src/agent/embedded/run-turn.js +12 -0
- package/dist/src/agent/embedded/xopc-stream-bridge.js +3 -0
- package/dist/src/agent/image/generation/runtime.js +12 -14
- package/dist/src/agent/image/understanding/runtime.js +5 -0
- package/dist/src/agent/inbound/inbound-loop.d.ts +1 -15
- package/dist/src/agent/inbound/inbound-loop.js +5 -0
- package/dist/src/agent/mcp/connection-errors.d.ts +3 -0
- package/dist/src/agent/mcp/connection-errors.js +32 -0
- package/dist/src/agent/mcp/connection-setup.d.ts +2 -0
- package/dist/src/agent/mcp/connection-setup.js +38 -18
- package/dist/src/agent/memory/compaction.js +5 -1
- package/dist/src/agent/memory/idle-compaction-scheduler.js +3 -1
- package/dist/src/agent/models/manager.d.ts +1 -0
- package/dist/src/agent/models/manager.js +4 -2
- package/dist/src/agent/orchestration/agent-orchestrator.d.ts +1 -6
- package/dist/src/agent/orchestration/agent-orchestrator.js +5 -0
- package/dist/src/agent/service/process-direct-one-shot.js +5 -0
- package/dist/src/agent/service/process-direct-streaming.d.ts +1 -0
- package/dist/src/agent/service/process-direct-streaming.js +17 -1
- package/dist/src/agent/tools/image-generate-tool.js +5 -1
- package/dist/src/agent-config/resolver.js +5 -0
- package/dist/src/agent-config/schema.d.ts +26 -6
- package/dist/src/agent-config/schema.js +2 -0
- package/dist/src/ai-assist/text-assist.js +5 -16
- package/dist/src/automations/service/action-executor.js +3 -1
- package/dist/src/channels/index.js +1 -1
- package/dist/src/channels/manager.js +1 -1
- package/dist/src/cli/commands/channels.js +1 -1
- package/dist/src/cli/commands/connectors.js +1 -1
- package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
- package/dist/src/cli/commands/extension-marketplace.js +1 -1
- package/dist/src/cli/commands/models.js +1 -1
- package/dist/src/cli/commands/onboard.js +1 -1
- package/dist/src/config/agent-model-intents.js +4 -1
- package/dist/src/config/schema.d.ts +11 -5
- package/dist/src/config/schema.js +11 -3
- package/dist/src/discussions/analyzer.d.ts +2 -0
- package/dist/src/discussions/analyzer.js +38 -9
- package/dist/src/discussions/audio-clip.d.ts +3 -0
- package/dist/src/discussions/audio-clip.js +72 -0
- package/dist/src/discussions/live-worker.js +3 -1
- package/dist/src/discussions/long-review.d.ts +17 -0
- package/dist/src/discussions/long-review.js +278 -0
- package/dist/src/discussions/media-timeline.d.ts +21 -0
- package/dist/src/discussions/media-timeline.js +134 -0
- package/dist/src/discussions/organizer-worker.d.ts +4 -1
- package/dist/src/discussions/organizer-worker.js +17 -12
- package/dist/src/discussions/organizer.js +2 -0
- package/dist/src/discussions/processing.d.ts +43 -0
- package/dist/src/discussions/processing.js +125 -0
- package/dist/src/discussions/recording.js +202 -42
- package/dist/src/discussions/recordingJobs.js +2 -0
- package/dist/src/discussions/repository.js +4 -2
- package/dist/src/discussions/review.d.ts +8 -0
- package/dist/src/discussions/review.js +183 -0
- package/dist/src/discussions/sealer.d.ts +7 -1
- package/dist/src/discussions/sealer.js +163 -87
- package/dist/src/discussions/service.d.ts +7 -1
- package/dist/src/discussions/service.js +51 -15
- package/dist/src/discussions/types.d.ts +2 -1
- package/dist/src/extensions/sdk/index.js +1 -1
- package/dist/src/gateway/agent-builtin-tools.d.ts +1 -1
- package/dist/src/gateway/global-defaults-admin.d.ts +3 -1
- package/dist/src/gateway/global-defaults-admin.js +14 -2
- package/dist/src/gateway/hono/lib/config-payload.d.ts +11 -2
- package/dist/src/gateway/hono/lib/config-payload.js +2 -0
- package/dist/src/gateway/hono/lib/voice-settings-revisions.d.ts +5 -0
- package/dist/src/gateway/hono/lib/voice-settings-revisions.js +23 -0
- package/dist/src/gateway/hono/routes/config-patch/misc.js +8 -1
- package/dist/src/gateway/hono/routes/config.js +12 -0
- package/dist/src/gateway/hono/routes/discussions.js +63 -1
- package/dist/src/gateway/hono/routes/global-defaults.js +8 -1
- package/dist/src/gateway/hono/routes/models.js +12 -4
- package/dist/src/gateway/hono/routes/provider-setup.d.ts +3 -0
- package/dist/src/gateway/hono/routes/provider-setup.js +106 -0
- package/dist/src/gateway/hono/routes/status.js +2 -0
- package/dist/src/gateway/hono/routes/voice.js +23 -10
- package/dist/src/gateway/provider-model-setup.d.ts +4 -0
- package/dist/src/gateway/provider-model-setup.js +56 -0
- package/dist/src/gateway/service/config-coordinator.d.ts +2 -2
- package/dist/src/gateway/service.js +7 -7
- package/dist/src/home-intelligence/host.js +2 -2
- package/dist/src/media-shared/http/provider-http.d.ts +0 -6
- package/dist/src/media-shared/http/provider-http.js +5 -4
- package/dist/src/media-understanding/runner.d.ts +0 -28
- package/dist/src/media-understanding/runner.js +4 -0
- package/dist/src/platform/client.d.ts +1 -1
- package/dist/src/platform/contracts.d.ts +1 -1
- package/dist/src/providers/env-keys.js +3 -0
- package/dist/src/providers/extension-stream-bridge.js +3 -0
- package/dist/src/providers/index.js +15 -0
- package/dist/src/providers/model-call.d.ts +5 -2
- package/dist/src/providers/model-call.js +13 -2
- package/dist/src/providers/model-reference-auditor.js +1 -0
- package/dist/src/providers/model-response.js +1 -1
- package/dist/src/providers/model-usage.d.ts +15 -0
- package/dist/src/providers/model-usage.js +50 -0
- package/dist/src/providers/presentation.js +8 -0
- package/dist/src/providers/setup/engine.d.ts +37 -0
- package/dist/src/providers/setup/engine.js +177 -0
- package/dist/src/providers/setup/profiles.d.ts +4 -0
- package/dist/src/providers/setup/profiles.js +94 -0
- package/dist/src/providers/setup/voice.d.ts +23 -0
- package/dist/src/providers/setup/voice.js +234 -0
- package/dist/src/scenes/agentExecutor.d.ts +1 -0
- package/dist/src/scenes/agentExecutor.js +5 -0
- package/dist/src/storage/sqlite/migrations/253_discussion_processing_recovery.sql +20 -0
- package/dist/src/storage/sqlite/migrations/254_discussion_annotations.sql +17 -0
- package/dist/src/storage/sqlite/migrations/255_discussion_chapter_progress.sql +10 -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/schema.js +1 -1
- package/dist/src/usage/recorder.js +2 -1
- package/dist/src/usage/scenario-registry.js +128 -123
- package/dist/src/voice/dashscope/streaming-stt-session.js +3 -0
- package/dist/src/voice/dashscope/streaming-tts-stream.js +3 -0
- package/dist/src/voice/dictation.d.ts +12 -0
- package/dist/src/voice/dictation.js +22 -0
- package/dist/src/voice/metadata/builtin.js +54 -0
- package/dist/src/voice/platform-streams.js +3 -0
- package/dist/src/voice/realtime/omniEngine.js +3 -0
- package/dist/src/voice/realtime/omniRoute.js +3 -2
- package/dist/src/voice/realtime/runtime.js +4 -2
- package/dist/src/voice/stt/factory.js +9 -3
- package/dist/src/voice/stt/providers/bailian-plan-transcription.d.ts +2 -0
- package/dist/src/voice/stt/providers/bailian-plan-transcription.js +32 -0
- package/dist/src/voice/stt/providers/index.d.ts +1 -0
- package/dist/src/voice/stt/providers/index.js +2 -1
- package/dist/src/voice/token-plan.d.ts +8 -0
- package/dist/src/voice/token-plan.js +11 -0
- package/dist/src/voice/tts/factory.js +4 -1
- package/dist/src/voice/tts/providers/bailian-plan-speech.d.ts +2 -0
- package/dist/src/voice/tts/providers/bailian-plan-speech.js +84 -0
- package/dist/src/voice/tts/providers/index.d.ts +1 -0
- package/dist/src/voice/tts/providers/index.js +2 -1
- package/dist/src/voice/tts/speak-core.js +10 -1
- package/package.json +4 -4
- package/dist/gateway/static/root/assets/agent-defaults-settings-panel-Ds0Ue2FB.js +0 -1
- package/dist/gateway/static/root/assets/agent-plugin-dialog-UunIxc1q.js +0 -1
- package/dist/gateway/static/root/assets/agents-BLRM4o-U.js +0 -77
- package/dist/gateway/static/root/assets/app-management-settings-panel-Dmy828Pe.js +0 -1
- package/dist/gateway/static/root/assets/automations-workspace-UcCneEs3.js +0 -6
- package/dist/gateway/static/root/assets/browser-automations-page-BjvQnYfO.js +0 -3
- package/dist/gateway/static/root/assets/browser-settings-page-D5ZghI28.js +0 -3
- package/dist/gateway/static/root/assets/capabilities-page-MC8qIrXo.js +0 -2
- package/dist/gateway/static/root/assets/capabilities-settings-panel-Blz3hEzp.js +0 -8
- package/dist/gateway/static/root/assets/channels-DSg_iCVC.js +0 -1
- package/dist/gateway/static/root/assets/chat-terminal-dock-C97SJEwd.js +0 -36
- package/dist/gateway/static/root/assets/connectors-page-DXk-GAsd.js +0 -1
- package/dist/gateway/static/root/assets/device-pairing-wizard-BeSuq__I.js +0 -1
- package/dist/gateway/static/root/assets/extension-settings-page-jYu6qpY2.js +0 -1
- package/dist/gateway/static/root/assets/fallback-models-CoyzvDo7.js +0 -1
- package/dist/gateway/static/root/assets/gateway-realtime-store-C3vH-Iup.js +0 -1
- package/dist/gateway/static/root/assets/gateway-settings-JlT1dlSj.js +0 -1
- package/dist/gateway/static/root/assets/home-page-DOVl8s-1.js +0 -2
- package/dist/gateway/static/root/assets/image-generation-api-BZBiYDmV.js +0 -1
- package/dist/gateway/static/root/assets/imports-page-DgdBTp_0.js +0 -1
- package/dist/gateway/static/root/assets/index-CmC8JkSM.js +0 -260
- package/dist/gateway/static/root/assets/index-Dgzc0oBu.css +0 -1
- package/dist/gateway/static/root/assets/logs-page-BSepiACn.js +0 -2
- package/dist/gateway/static/root/assets/management-settings-dE_ykPNY.js +0 -1
- package/dist/gateway/static/root/assets/mermaid-MCJ5UELQ-65SE6j-_.js +0 -1
- package/dist/gateway/static/root/assets/messages-DlTNQI92.js +0 -3
- package/dist/gateway/static/root/assets/models-hub-cache-C7FAsEe_.js +0 -1
- package/dist/gateway/static/root/assets/note-detail-panel-D9oqhdyk.js +0 -5
- package/dist/gateway/static/root/assets/notes-page-Bd4_7ph8.js +0 -8
- package/dist/gateway/static/root/assets/personal-page-BvWzq4Wp.js +0 -1
- package/dist/gateway/static/root/assets/project-detail-page-D-qkIXVT.js +0 -1
- package/dist/gateway/static/root/assets/projects-page-BQtw1Dfn.js +0 -1
- package/dist/gateway/static/root/assets/remote-access-hub-CYFNz0Jc.js +0 -1
- package/dist/gateway/static/root/assets/runtime-tools-settings-panel-Qq_NyYx_.js +0 -1
- package/dist/gateway/static/root/assets/scenes-page-hGr-ppYk.js +0 -2
- package/dist/gateway/static/root/assets/sessions-page-CpX1Rluw.js +0 -1
- package/dist/gateway/static/root/assets/settings-advanced-gate-D2s_MlxR.js +0 -1
- package/dist/gateway/static/root/assets/settings-loading-skeleton-BTqvr_Fw.js +0 -1
- package/dist/gateway/static/root/assets/setup-status-panel-BiHRYDHq.js +0 -1
- package/dist/gateway/static/root/assets/shares-settings-DfcAu08T.js +0 -1
- package/dist/gateway/static/root/assets/skills-page-CvKc5nBN.js +0 -2
- package/dist/gateway/static/root/assets/user-model-page-Dhqw3v_u.js +0 -2
package/dist/gateway/static/root/assets/{workspace-api-CZDvu7uA.js → workspace-api-Bmx1O449.js}
RENAMED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/session-manager-
|
|
2
|
-
import{t as e}from"./preload-helper-zJ_50EbN.js";import{i as t,r as n}from"./locale-store-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/session-manager-aXqXuqDX.js","assets/rolldown-runtime-aKtaBQYM.js","assets/locale-store-DMy9W6IG.js","assets/vendor-react-BOUWij0V.js","assets/messages-O0BEUKnx.js","assets/schemas-CObaziC7.js","assets/gateway-realtime-Ci1Jst5g.js","assets/gateway-realtime-store-BMUiUQMk.js","assets/local-session-drafts-DAtLkTPg.js","assets/session-api-B9HrwF-c.js","assets/gateway-startup-retry-C-BG5M7H.js","assets/constants-DeXt1mV-.js","assets/tool-activity-BtJkgjFf.js","assets/registry-api-CgQrCqL6.js","assets/preload-helper-zJ_50EbN.js","assets/attachment-utils-core-BIOUBrpT.js","assets/agents-admin-api-DxdaiFWn.js","assets/gateway-config-swr-CmYcOqhb.js","assets/vendor-swr-BIWyz7Rc.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{t as e}from"./preload-helper-zJ_50EbN.js";import{i as t,r as n}from"./locale-store-DMy9W6IG.js";import{i as r,n as i,r as a,t as o}from"./files-Bw4SBGdM.js";async function s(e){let t=await e.json().catch(()=>null);return Error(t?.error?.message??`HTTP ${e.status}`)}async function c(e,r){let i=await t(n(e),r);if(!i.ok)throw await s(i);return i.json()}async function l(t){if(!t?.projectId&&t?.conversationId){let{SessionManager:n}=await e(async()=>{let{SessionManager:e}=await import(`./session-manager-aXqXuqDX.js`).then(e=>e.n);return{SessionManager:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18]));await new n().materialize(t.conversationId,`session_resources`)}let n=t?.projectId?{kind:`project`,id:t.projectId}:t?.conversationId?{kind:`session`,id:t.conversationId}:t?.agentId?{kind:`agent`,id:t.agentId}:null;if(n){let e=await c(`/api/files/contexts/${n.kind}/${encodeURIComponent(n.id)}`);return r.parse(e.space)}let i=await c(`/api/files/default-space`);return r.parse(i.space)}function u(e){return{id:e.id,name:e.name,path:e.relativePath,isDirectory:e.kind===`directory`,mimeType:e.mimeType,revision:e.revision}}async function d(e,t){let n=await l(t),r=await c(`/api/files/resolve`,{method:`POST`,body:JSON.stringify({spaceId:n.id,path:e,taskRunId:t?.taskRunId})});return i.parse(r.resource)}async function f(e,t){return d(e,t)}async function p(e=``,t){let n=await l(t),r=new URLSearchParams;return e&&r.set(`path`,e),{entries:a.parse(await c(`/api/files/spaces/${encodeURIComponent(n.id)}/children${r.size?`?${r}`:``}`)).items.map(u)}}async function m(e=``,t){return(await p(e,t)).entries}async function h(e){let t=await l(e);return u(o.parse(await c(`/api/files/spaces/${encodeURIComponent(t.id)}/root`)).resource)}async function g(e,t,n=50){let r=await l(t),i=new URLSearchParams({q:e.trim(),limit:String(n),spaceId:r.id});return a.parse(await c(`/api/files/search?${i}`)).items.map(u)}async function _(e,r){let i=await d(e,r),a=await t(n(`/api/files/${encodeURIComponent(i.id)}/content`));if(!a.ok)throw await s(a);return{content:await a.text(),path:i.relativePath,mtimeMs:i.modifiedAt,revision:i.revision}}async function v(e,t){let n;try{n=await l(t)}catch{return null}try{let r=await c(`/api/files/resolve`,{method:`POST`,body:JSON.stringify({spaceId:n.id,path:e,taskRunId:t?.taskRunId})}),a=i.parse(r.resource);return{absolutePath:r.absolutePath,fileId:a.id,inputPath:e,displayName:a.name,scope:r.absolutePath?`external`:`workspace`,locationKind:r.absolutePath?`host`:`workspace`,exists:!0,isDirectory:a.kind===`directory`,workspaceRelativePath:a.relativePath,capabilities:a.capabilities.filter(e=>e===`preview`||e===`edit`),mtimeMs:a.modifiedAt}}catch{try{return(await c(`/api/files/resolve-reference`,{method:`POST`,body:JSON.stringify({spaceId:n.id,path:e,conversationId:t?.conversationId})})).reference}catch{return null}}}async function y(e,t,n){return await c(`/api/files/references/${encodeURIComponent(e)}/action`,{method:`POST`,body:JSON.stringify({action:t,conversationId:n?.conversationId})})}async function b(e,r){let i=await d(e,r),a=await t(n(`/api/files/${encodeURIComponent(i.id)}/content`),{headers:{Accept:`*/*`}});if(!a.ok)throw await s(a);return a.blob()}async function x(e,t,n){let r=await d(e,n),a=await c(`/api/files/${encodeURIComponent(r.id)}/content`,{method:`PUT`,body:JSON.stringify({content:t,revision:r.revision})}),o=i.parse(a.resource);return{path:o.relativePath,mtimeMs:o.modifiedAt,revision:o.revision}}async function S(e,r=``,i){let a=await l(i),c=new FormData;c.set(`directory`,r),c.set(`file`,e);let d=await t(n(`/api/files/spaces/${encodeURIComponent(a.id)}/upload`),{method:`POST`,body:c});if(!d.ok)throw await s(d);return u(o.parse(await d.json()).resource)}async function C(e){let r=await t(n(`/api/files/${encodeURIComponent(e)}`),{method:`DELETE`});if(!r.ok)throw await s(r)}function w(e,t){let n=new Blob([t],{type:`text/plain;charset=utf-8`}),r=URL.createObjectURL(n),i=document.createElement(`a`);i.href=r,i.download=e,document.body.appendChild(i),i.click(),document.body.removeChild(i),URL.revokeObjectURL(r)}function T(e,t,n){let r=new Blob([t],{type:n}),i=URL.createObjectURL(r),a=document.createElement(`a`);a.href=i,a.download=e,document.body.appendChild(a),a.click(),document.body.removeChild(a),URL.revokeObjectURL(i)}export{b as a,_ as c,f as d,g as f,p as i,y as l,x as m,T as n,h as o,S as p,w as r,m as s,C as t,v as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,t}from"./vendor-react-BOUWij0V.js";import{t as n}from"./cloud-C4-yfnnk.js";import{t as r}from"./external-link-DjqjBmc3.js";import{a as i,n as a,r as o}from"./locale-store-
|
|
1
|
+
import{n as e,t}from"./vendor-react-BOUWij0V.js";import{t as n}from"./cloud-C4-yfnnk.js";import{t as r}from"./external-link-DjqjBmc3.js";import{a as i,n as a,r as o}from"./locale-store-DMy9W6IG.js";import{n as s,t as c}from"./cloud-credits-BMYMiiNn.js";import{i as l}from"./vendor-swr-BIWyz7Rc.js";import{t as u}from"./button-aIC072nz.js";import{t as d}from"./skeleton-BI5TyibZ.js";import{Fo as f,ls as p}from"./index-xTL-vb51.js";var m=e(),h=t();function g(e){let t=(BigInt(e)+500n)/1000n*1000n;return s(String(t))}async function _(){let e=await i(o(`/api/models/xopc-cloud/account-summary`));return c.parse(e.payload)}function v(e){let t=(0,m.c)(148),{labels:i}=e,o=a(y)===`zh`?`zh-CN`:`en-US`,s;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(s={refreshInterval:6e4,revalidateOnFocus:!0},t[0]=s):s=t[0];let{data:c,error:v,isLoading:b,isValidating:x,mutate:S}=l(`/api/models/xopc-cloud/account-summary`,_,s);if(b){let e;return t[1]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,h.jsx)(d,{className:`h-40 w-full rounded-xl`}),t[1]=e):e=t[1],e}if(v||!c){let e;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,h.jsx)(f,{className:`mt-0.5 size-4 shrink-0 text-amber-500`,"aria-hidden":!0}),t[2]=e):e=t[2];let n;t[3]===i.title?n=t[4]:(n=(0,h.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:i.title}),t[3]=i.title,t[4]=n);let r;t[5]===i.unavailable?r=t[6]:(r=(0,h.jsx)(`p`,{className:`mt-1 text-sm text-fg-muted`,children:i.unavailable}),t[5]=i.unavailable,t[6]=r);let a;t[7]!==n||t[8]!==r?(a=(0,h.jsxs)(`div`,{className:`flex min-w-0 items-start gap-3`,children:[e,(0,h.jsxs)(`div`,{children:[n,r]})]}),t[7]=n,t[8]=r,t[9]=a):a=t[9];let o;t[10]===S?o=t[11]:(o=()=>void S(),t[10]=S,t[11]=o);let s=x?`size-4 animate-spin`:`size-4`,c;t[12]===s?c=t[13]:(c=(0,h.jsx)(p,{className:s,"aria-hidden":!0}),t[12]=s,t[13]=c);let l;t[14]!==x||t[15]!==i.retry||t[16]!==o||t[17]!==c?(l=(0,h.jsxs)(u,{type:`button`,variant:`secondary`,disabled:x,onClick:o,children:[c,i.retry]}),t[14]=x,t[15]=i.retry,t[16]=o,t[17]=c,t[18]=l):l=t[18];let d;return t[19]!==a||t[20]!==l?(d=(0,h.jsx)(`section`,{className:`rounded-xl bg-surface-hover/25 p-4`,children:(0,h.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[a,l]})}),t[19]=a,t[20]=l,t[21]=d):d=t[21],d}let C,w,T,E,D,O,k,A,j,M;if(t[22]!==c.balance.availableCreditMicro||t[23]!==c.balance.expiring[0]||t[24]!==c.balance.grantedCreditMicro||t[25]!==c.balance.purchasedCreditMicro||t[26]!==c.balance.refundReservedCreditMicro||t[27]!==c.balance.usageReservedCreditMicro||t[28]!==c.links.details||t[29]!==c.links.purchase||t[30]!==c.usage.chargedCreditMicro||t[31]!==c.usage.requests||t[32]!==c.usage.totalTokens||t[33]!==i.availableCredits||t[34]!==i.connected||t[35]!==i.details||t[36]!==i.expiring||t[37]!==i.granted||t[38]!==i.purchase||t[39]!==i.purchased||t[40]!==i.recentUsage||t[41]!==i.reserved||t[42]!==i.title||t[43]!==i.tokenUsage||t[44]!==i.usageSummary||t[45]!==i.zeroBalance||t[46]!==o){let e=new Intl.NumberFormat(o),a=i.usageSummary.replace(`{{credits}}`,g(c.usage.chargedCreditMicro)).replace(`{{requests}}`,e.format(c.usage.requests));C=`rounded-xl bg-surface-hover/40 p-4 sm:p-5`;let s;t[57]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,h.jsx)(n,{className:`size-4 text-accent-fg`,"aria-hidden":!0}),t[57]=s):s=t[57];let l;t[58]===i.title?l=t[59]:(l=(0,h.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:i.title}),t[58]=i.title,t[59]=l);let d;t[60]===i.connected?d=t[61]:(d=(0,h.jsx)(`span`,{className:`rounded-full bg-emerald-500/10 px-2 py-0.5 text-xs font-medium text-emerald-700 dark:text-emerald-300`,children:i.connected}),t[60]=i.connected,t[61]=d);let f;t[62]!==l||t[63]!==d?(f=(0,h.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[s,l,d]}),t[62]=l,t[63]=d,t[64]=f):f=t[64];let p;t[65]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,h.jsx)(r,{className:`size-3.5`,"aria-hidden":!0}),t[65]=p):p=t[65];let m;t[66]!==c.links.purchase||t[67]!==i.purchase?(m=(0,h.jsx)(u,{asChild:!0,variant:`primary`,children:(0,h.jsxs)(`a`,{href:c.links.purchase,target:`_blank`,rel:`noreferrer`,children:[i.purchase,p]})}),t[66]=c.links.purchase,t[67]=i.purchase,t[68]=m):m=t[68];let _;t[69]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,h.jsx)(r,{className:`size-3.5`,"aria-hidden":!0}),t[69]=_):_=t[69];let v;t[70]!==c.links.details||t[71]!==i.details?(v=(0,h.jsx)(u,{asChild:!0,variant:`secondary`,children:(0,h.jsxs)(`a`,{href:c.links.details,target:`_blank`,rel:`noreferrer`,children:[i.details,_]})}),t[70]=c.links.details,t[71]=i.details,t[72]=v):v=t[72];let y;t[73]!==m||t[74]!==v?(y=(0,h.jsxs)(`div`,{className:`flex shrink-0 flex-wrap gap-2`,children:[m,v]}),t[73]=m,t[74]=v,t[75]=y):y=t[75],t[76]!==f||t[77]!==y?(w=(0,h.jsxs)(`div`,{className:`flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between`,children:[f,y]}),t[76]=f,t[77]=y,t[78]=w):w=t[78],j=`mt-4 grid gap-4 rounded-lg bg-surface-base/45 p-3 sm:grid-cols-[minmax(12rem,0.7fr)_minmax(0,1.3fr)] sm:gap-6`;let b;t[79]===i.availableCredits?b=t[80]:(b=(0,h.jsx)(`p`,{className:`text-xs font-medium text-fg-subtle`,children:i.availableCredits}),t[79]=i.availableCredits,t[80]=b);let x;t[81]===c.balance.availableCreditMicro?x=t[82]:(x=g(c.balance.availableCreditMicro),t[81]=c.balance.availableCreditMicro,t[82]=x);let S;t[83]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,h.jsx)(`span`,{className:`ml-2 text-sm font-medium text-fg-muted`,children:`Credits`}),t[83]=S):S=t[83];let N;t[84]===x?N=t[85]:(N=(0,h.jsxs)(`p`,{className:`mt-1 text-2xl font-semibold tracking-tight text-fg`,children:[x,S]}),t[84]=x,t[85]=N);let P;t[86]!==c.balance.availableCreditMicro||t[87]!==i.zeroBalance?(P=c.balance.availableCreditMicro===`0`?(0,h.jsx)(`p`,{className:`mt-1 text-sm font-medium text-danger`,children:i.zeroBalance}):null,t[86]=c.balance.availableCreditMicro,t[87]=i.zeroBalance,t[88]=P):P=t[88];let F=i.purchased,I;t[89]===c.balance.purchasedCreditMicro?I=t[90]:(I=g(c.balance.purchasedCreditMicro),t[89]=c.balance.purchasedCreditMicro,t[90]=I);let L;t[91]!==i.purchased||t[92]!==I?(L=(0,h.jsxs)(`div`,{children:[F,`: `,I,` Credits`]}),t[91]=i.purchased,t[92]=I,t[93]=L):L=t[93];let R=i.granted,z;t[94]===c.balance.grantedCreditMicro?z=t[95]:(z=g(c.balance.grantedCreditMicro),t[94]=c.balance.grantedCreditMicro,t[95]=z);let B;t[96]!==i.granted||t[97]!==z?(B=(0,h.jsxs)(`div`,{children:[R,`: `,z,` Credits`]}),t[96]=i.granted,t[97]=z,t[98]=B):B=t[98];let V=i.reserved,H=String(BigInt(c.balance.usageReservedCreditMicro)+BigInt(c.balance.refundReservedCreditMicro)),U;t[99]===H?U=t[100]:(U=g(H),t[99]=H,t[100]=U);let W;t[101]!==i.reserved||t[102]!==U?(W=(0,h.jsxs)(`div`,{children:[V,`: `,U,` Credits`]}),t[101]=i.reserved,t[102]=U,t[103]=W):W=t[103];let G;t[104]!==L||t[105]!==B||t[106]!==W?(G=(0,h.jsxs)(`div`,{className:`mt-2 space-y-1 text-xs text-fg-muted`,children:[L,B,W]}),t[104]=L,t[105]=B,t[106]=W,t[107]=G):G=t[107];let K;t[108]!==c.balance.expiring[0]||t[109]!==i.expiring||t[110]!==o?(K=c.balance.expiring[0]?(0,h.jsx)(`p`,{className:`mt-2 text-xs text-amber-600 dark:text-amber-400`,children:i.expiring.replace(`{{credits}}`,g(c.balance.expiring[0].creditMicro)).replace(`{{date}}`,new Date(c.balance.expiring[0].expiresAt).toLocaleDateString(o))}):null,t[108]=c.balance.expiring[0],t[109]=i.expiring,t[110]=o,t[111]=K):K=t[111],t[112]!==b||t[113]!==N||t[114]!==P||t[115]!==G||t[116]!==K?(M=(0,h.jsxs)(`div`,{children:[b,N,P,G,K]}),t[112]=b,t[113]=N,t[114]=P,t[115]=G,t[116]=K,t[117]=M):M=t[117],t[118]===i.recentUsage?k=t[119]:(k=(0,h.jsx)(`p`,{className:`text-xs font-medium text-fg-subtle`,children:i.recentUsage}),t[118]=i.recentUsage,t[119]=k),A=(0,h.jsx)(`p`,{className:`mt-1 text-sm leading-relaxed text-fg-muted`,children:a}),D=`mt-2 text-xs text-fg-subtle`,t[120]===i.tokenUsage?O=t[121]:(O=(0,h.jsx)(`summary`,{className:`cursor-pointer`,children:i.tokenUsage}),t[120]=i.tokenUsage,t[121]=O),T=`mt-1`,E=e.format(c.usage.totalTokens),t[22]=c.balance.availableCreditMicro,t[23]=c.balance.expiring[0],t[24]=c.balance.grantedCreditMicro,t[25]=c.balance.purchasedCreditMicro,t[26]=c.balance.refundReservedCreditMicro,t[27]=c.balance.usageReservedCreditMicro,t[28]=c.links.details,t[29]=c.links.purchase,t[30]=c.usage.chargedCreditMicro,t[31]=c.usage.requests,t[32]=c.usage.totalTokens,t[33]=i.availableCredits,t[34]=i.connected,t[35]=i.details,t[36]=i.expiring,t[37]=i.granted,t[38]=i.purchase,t[39]=i.purchased,t[40]=i.recentUsage,t[41]=i.reserved,t[42]=i.title,t[43]=i.tokenUsage,t[44]=i.usageSummary,t[45]=i.zeroBalance,t[46]=o,t[47]=C,t[48]=w,t[49]=T,t[50]=E,t[51]=D,t[52]=O,t[53]=k,t[54]=A,t[55]=j,t[56]=M}else C=t[47],w=t[48],T=t[49],E=t[50],D=t[51],O=t[52],k=t[53],A=t[54],j=t[55],M=t[56];let N;t[122]!==T||t[123]!==E?(N=(0,h.jsxs)(`p`,{className:T,children:[E,` tokens`]}),t[122]=T,t[123]=E,t[124]=N):N=t[124];let P;t[125]!==N||t[126]!==D||t[127]!==O?(P=(0,h.jsxs)(`details`,{className:D,children:[O,N]}),t[125]=N,t[126]=D,t[127]=O,t[128]=P):P=t[128];let F;t[129]!==c.balance.updatedAt||t[130]!==i.updatedAt||t[131]!==o?(F=i.updatedAt.replace(`{{time}}`,new Date(c.balance.updatedAt).toLocaleString(o)),t[129]=c.balance.updatedAt,t[130]=i.updatedAt,t[131]=o,t[132]=F):F=t[132];let I;t[133]===F?I=t[134]:(I=(0,h.jsx)(`p`,{className:`mt-1 text-xs text-fg-subtle`,children:F}),t[133]=F,t[134]=I);let L;t[135]!==P||t[136]!==I||t[137]!==k||t[138]!==A?(L=(0,h.jsxs)(`div`,{children:[k,A,P,I]}),t[135]=P,t[136]=I,t[137]=k,t[138]=A,t[139]=L):L=t[139];let R;t[140]!==L||t[141]!==j||t[142]!==M?(R=(0,h.jsxs)(`div`,{className:j,children:[M,L]}),t[140]=L,t[141]=j,t[142]=M,t[143]=R):R=t[143];let z;return t[144]!==C||t[145]!==w||t[146]!==R?(z=(0,h.jsxs)(`section`,{className:C,children:[w,R]}),t[144]=C,t[145]=w,t[146]=R,t[147]=z):z=t[147],z}function y(e){return e.language}export{v as t};
|
|
@@ -11,15 +11,15 @@
|
|
|
11
11
|
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png?v=20260910-1" />
|
|
12
12
|
<link rel="manifest" href="/site.webmanifest?v=20260910-1" />
|
|
13
13
|
<title>XOPC — Keep what matters moving.</title>
|
|
14
|
-
<script type="module" crossorigin src="/assets/index-
|
|
14
|
+
<script type="module" crossorigin src="/assets/index-xTL-vb51.js"></script>
|
|
15
15
|
<link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-aKtaBQYM.js">
|
|
16
16
|
<link rel="modulepreload" crossorigin href="/assets/preload-helper-zJ_50EbN.js">
|
|
17
17
|
<link rel="modulepreload" crossorigin href="/assets/vendor-react-BOUWij0V.js">
|
|
18
18
|
<link rel="modulepreload" crossorigin href="/assets/dist-CxGUk8J-.js">
|
|
19
19
|
<link rel="modulepreload" crossorigin href="/assets/es2015-DBLcMg5B.js">
|
|
20
20
|
<link rel="modulepreload" crossorigin href="/assets/middleware-Pd0e8Igk.js">
|
|
21
|
-
<link rel="modulepreload" crossorigin href="/assets/messages-
|
|
22
|
-
<link rel="modulepreload" crossorigin href="/assets/locale-store-
|
|
21
|
+
<link rel="modulepreload" crossorigin href="/assets/messages-O0BEUKnx.js">
|
|
22
|
+
<link rel="modulepreload" crossorigin href="/assets/locale-store-DMy9W6IG.js">
|
|
23
23
|
<link rel="modulepreload" crossorigin href="/assets/floating-ui.dom-B7uQOZZW.js">
|
|
24
24
|
<link rel="modulepreload" crossorigin href="/assets/dist-CI_fqRk-.js">
|
|
25
25
|
<link rel="modulepreload" crossorigin href="/assets/dist-BGTk37IG.js">
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
<link rel="modulepreload" crossorigin href="/assets/bundle-mjs-rHxsej31.js">
|
|
38
38
|
<link rel="modulepreload" crossorigin href="/assets/cn-0WouolD0.js">
|
|
39
39
|
<link rel="modulepreload" crossorigin href="/assets/copy-to-clipboard-HOJ79TWv.js">
|
|
40
|
-
<link rel="modulepreload" crossorigin href="/assets/markdown-view-
|
|
40
|
+
<link rel="modulepreload" crossorigin href="/assets/markdown-view-wyOHdXEg.js">
|
|
41
41
|
<link rel="modulepreload" crossorigin href="/assets/check-DUBLcKHA.js">
|
|
42
42
|
<link rel="modulepreload" crossorigin href="/assets/copy-Dv6d4Dvw.js">
|
|
43
43
|
<link rel="modulepreload" crossorigin href="/assets/button-aIC072nz.js">
|
|
@@ -73,54 +73,55 @@
|
|
|
73
73
|
<link rel="modulepreload" crossorigin href="/assets/rotate-cw-LIg3Am9S.js">
|
|
74
74
|
<link rel="modulepreload" crossorigin href="/assets/search-DA7gz22f.js">
|
|
75
75
|
<link rel="modulepreload" crossorigin href="/assets/index.module-Cd9ENXfk.js">
|
|
76
|
-
<link rel="modulepreload" crossorigin href="/assets/gateway-startup-retry-
|
|
77
|
-
<link rel="modulepreload" crossorigin href="/assets/session-api-
|
|
76
|
+
<link rel="modulepreload" crossorigin href="/assets/gateway-startup-retry-C-BG5M7H.js">
|
|
77
|
+
<link rel="modulepreload" crossorigin href="/assets/session-api-B9HrwF-c.js">
|
|
78
78
|
<link rel="modulepreload" crossorigin href="/assets/constants-DeXt1mV-.js">
|
|
79
79
|
<link rel="modulepreload" crossorigin href="/assets/app-chrome-BeB4KgOf.js">
|
|
80
80
|
<link rel="modulepreload" crossorigin href="/assets/attachment-utils-core-BIOUBrpT.js">
|
|
81
81
|
<link rel="modulepreload" crossorigin href="/assets/files-Bw4SBGdM.js">
|
|
82
|
-
<link rel="modulepreload" crossorigin href="/assets/workspace-api-
|
|
82
|
+
<link rel="modulepreload" crossorigin href="/assets/workspace-api-Bmx1O449.js">
|
|
83
83
|
<link rel="modulepreload" crossorigin href="/assets/electron-env-Dit0bHgy.js">
|
|
84
84
|
<link rel="modulepreload" crossorigin href="/assets/use-async-resource-GrnWNwMZ.js">
|
|
85
|
-
<link rel="modulepreload" crossorigin href="/assets/activity-store-
|
|
86
|
-
<link rel="modulepreload" crossorigin href="/assets/use-file-preview-expanded-
|
|
85
|
+
<link rel="modulepreload" crossorigin href="/assets/activity-store-DGMAYkw8.js">
|
|
86
|
+
<link rel="modulepreload" crossorigin href="/assets/use-file-preview-expanded-CEsxnDnQ.js">
|
|
87
87
|
<link rel="modulepreload" crossorigin href="/assets/mic-CuUb7zc-.js">
|
|
88
88
|
<link rel="modulepreload" crossorigin href="/assets/globe-DSSGFWFn.js">
|
|
89
|
-
<link rel="modulepreload" crossorigin href="/assets/share-link-dialog-
|
|
90
|
-
<link rel="modulepreload" crossorigin href="/assets/local-session-drafts-
|
|
89
|
+
<link rel="modulepreload" crossorigin href="/assets/share-link-dialog-B1TDyhPt.js">
|
|
90
|
+
<link rel="modulepreload" crossorigin href="/assets/local-session-drafts-DAtLkTPg.js">
|
|
91
91
|
<link rel="modulepreload" crossorigin href="/assets/specialists-4bkS5rZ4.js">
|
|
92
92
|
<link rel="modulepreload" crossorigin href="/assets/tasks-PuIUgF9L.js">
|
|
93
|
-
<link rel="modulepreload" crossorigin href="/assets/capabilities-
|
|
93
|
+
<link rel="modulepreload" crossorigin href="/assets/capabilities-BkCutK0V.js">
|
|
94
94
|
<link rel="modulepreload" crossorigin href="/assets/skill-wire-pattern-BPpeIcCi.js">
|
|
95
|
-
<link rel="modulepreload" crossorigin href="/assets/shares-api-
|
|
96
|
-
<link rel="modulepreload" crossorigin href="/assets/capabilities-
|
|
97
|
-
<link rel="modulepreload" crossorigin href="/assets/use-composer-attachments-
|
|
95
|
+
<link rel="modulepreload" crossorigin href="/assets/shares-api-Bl1ZBh5S.js">
|
|
96
|
+
<link rel="modulepreload" crossorigin href="/assets/capabilities-D61uSJPy.js">
|
|
97
|
+
<link rel="modulepreload" crossorigin href="/assets/use-composer-attachments-CXsocZjt.js">
|
|
98
98
|
<link rel="modulepreload" crossorigin href="/assets/git-branch-Dh9uxTot.js">
|
|
99
|
-
<link rel="modulepreload" crossorigin href="/assets/notes-api-
|
|
99
|
+
<link rel="modulepreload" crossorigin href="/assets/notes-api-CYt2pGsm.js">
|
|
100
100
|
<link rel="modulepreload" crossorigin href="/assets/message-square-fVE7Ghj1.js">
|
|
101
101
|
<link rel="modulepreload" crossorigin href="/assets/pause-DuPxgSxk.js">
|
|
102
102
|
<link rel="modulepreload" crossorigin href="/assets/play-kxZvpBg8.js">
|
|
103
103
|
<link rel="modulepreload" crossorigin href="/assets/rotate-ccw-JM1TBLpp.js">
|
|
104
104
|
<link rel="modulepreload" crossorigin href="/assets/settings-2-D-csvaET.js">
|
|
105
105
|
<link rel="modulepreload" crossorigin href="/assets/sparkles-DHlfQFAF.js">
|
|
106
|
-
<link rel="modulepreload" crossorigin href="/assets/gateway-realtime-store-
|
|
107
|
-
<link rel="modulepreload" crossorigin href="/assets/gateway-realtime-
|
|
106
|
+
<link rel="modulepreload" crossorigin href="/assets/gateway-realtime-store-BMUiUQMk.js">
|
|
107
|
+
<link rel="modulepreload" crossorigin href="/assets/gateway-realtime-Ci1Jst5g.js">
|
|
108
108
|
<link rel="modulepreload" crossorigin href="/assets/tool-activity-BtJkgjFf.js">
|
|
109
|
-
<link rel="modulepreload" crossorigin href="/assets/registry-api-
|
|
110
|
-
<link rel="modulepreload" crossorigin href="/assets/gateway-config-swr-
|
|
111
|
-
<link rel="modulepreload" crossorigin href="/assets/agents-admin-api-
|
|
112
|
-
<link rel="modulepreload" crossorigin href="/assets/session-manager-
|
|
113
|
-
<link rel="modulepreload" crossorigin href="/assets/
|
|
114
|
-
<link rel="modulepreload" crossorigin href="/assets/
|
|
115
|
-
<link rel="modulepreload" crossorigin href="/assets/
|
|
109
|
+
<link rel="modulepreload" crossorigin href="/assets/registry-api-CgQrCqL6.js">
|
|
110
|
+
<link rel="modulepreload" crossorigin href="/assets/gateway-config-swr-CmYcOqhb.js">
|
|
111
|
+
<link rel="modulepreload" crossorigin href="/assets/agents-admin-api-DxdaiFWn.js">
|
|
112
|
+
<link rel="modulepreload" crossorigin href="/assets/session-manager-aXqXuqDX.js">
|
|
113
|
+
<link rel="modulepreload" crossorigin href="/assets/voice-transcribe-api-B47j0_xA.js">
|
|
114
|
+
<link rel="modulepreload" crossorigin href="/assets/send-session-input-nH8Cw0US.js">
|
|
115
|
+
<link rel="modulepreload" crossorigin href="/assets/theme-store-BBLjE0fi.js">
|
|
116
|
+
<link rel="modulepreload" crossorigin href="/assets/extension-provider-DWI0KAKT.js">
|
|
116
117
|
<link rel="modulepreload" crossorigin href="/assets/loopi-Djb8XU3l.js">
|
|
117
|
-
<link rel="modulepreload" crossorigin href="/assets/models-hub-cache-
|
|
118
|
+
<link rel="modulepreload" crossorigin href="/assets/models-hub-cache-DdH1MODX.js">
|
|
118
119
|
<link rel="modulepreload" crossorigin href="/assets/skill-api-utils-C7V4JVXM.js">
|
|
119
120
|
<link rel="modulepreload" crossorigin href="/assets/date-formatters-CUZAyDEg.js">
|
|
120
121
|
<link rel="modulepreload" crossorigin href="/assets/settings-form-draft-Dy10ldo8.js">
|
|
121
122
|
<link rel="stylesheet" crossorigin href="/assets/markdown-view-Ct4sKkUf.css">
|
|
122
123
|
<link rel="stylesheet" crossorigin href="/assets/loopi-C09I2mNj.css">
|
|
123
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
124
|
+
<link rel="stylesheet" crossorigin href="/assets/index-W9ls-0Yd.css">
|
|
124
125
|
</head>
|
|
125
126
|
<body>
|
|
126
127
|
<div id="root"></div>
|
package/dist/package.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { __esmMin } from "../../../_virtual/_rolldown/runtime.js";
|
|
2
2
|
//#region packages/gateway-contract/src/discussions.ts
|
|
3
|
-
var DISCUSSION_MAX_DURATION_MS, DISCUSSION_AUDIO_MAX_BYTES, DISCUSSION_CHUNK_MAX_BYTES, DISCUSSION_SEGMENT_MAX_BYTES, DISCUSSION_STATUSES;
|
|
3
|
+
var DISCUSSION_MAX_DURATION_MS, DISCUSSION_MAX_SAVED_DURATION_MS, DISCUSSION_AUDIO_MAX_BYTES, DISCUSSION_CHUNK_MAX_BYTES, DISCUSSION_SEGMENT_MAX_BYTES, DISCUSSION_STATUSES;
|
|
4
4
|
var init_discussions = __esmMin((() => {
|
|
5
5
|
DISCUSSION_MAX_DURATION_MS = 7200 * 1e3;
|
|
6
|
+
DISCUSSION_MAX_SAVED_DURATION_MS = DISCUSSION_MAX_DURATION_MS + 5e3;
|
|
6
7
|
DISCUSSION_AUDIO_MAX_BYTES = 1024 * 1024 * 1024;
|
|
7
8
|
DISCUSSION_CHUNK_MAX_BYTES = 8 * 1024 * 1024;
|
|
8
9
|
DISCUSSION_SEGMENT_MAX_BYTES = 2 * 1024 * 1024;
|
|
@@ -18,4 +19,4 @@ var init_discussions = __esmMin((() => {
|
|
|
18
19
|
}));
|
|
19
20
|
//#endregion
|
|
20
21
|
init_discussions();
|
|
21
|
-
export { DISCUSSION_AUDIO_MAX_BYTES, DISCUSSION_CHUNK_MAX_BYTES, DISCUSSION_MAX_DURATION_MS, DISCUSSION_SEGMENT_MAX_BYTES, DISCUSSION_STATUSES, init_discussions };
|
|
22
|
+
export { DISCUSSION_AUDIO_MAX_BYTES, DISCUSSION_CHUNK_MAX_BYTES, DISCUSSION_MAX_DURATION_MS, DISCUSSION_MAX_SAVED_DURATION_MS, DISCUSSION_SEGMENT_MAX_BYTES, DISCUSSION_STATUSES, init_discussions };
|
|
@@ -46,6 +46,8 @@ import { init_task_result_delivery } from "./task-result-delivery.js";
|
|
|
46
46
|
import { init_session_command_rejection } from "./session-command-rejection.js";
|
|
47
47
|
import { init_personal_proactivity } from "./personal-proactivity.js";
|
|
48
48
|
import { init_result_reference } from "./result-reference.js";
|
|
49
|
+
import { init_provider_setup } from "./provider-setup.js";
|
|
50
|
+
import { init_recording_outcome } from "./recording-outcome.js";
|
|
49
51
|
//#region packages/gateway-contract/src/index.ts
|
|
50
52
|
var init_src = __esmMin((() => {
|
|
51
53
|
init_agent_stream();
|
|
@@ -95,6 +97,8 @@ var init_src = __esmMin((() => {
|
|
|
95
97
|
init_personal_proactivity();
|
|
96
98
|
init_specialists();
|
|
97
99
|
init_result_reference();
|
|
100
|
+
init_provider_setup();
|
|
101
|
+
init_recording_outcome();
|
|
98
102
|
}));
|
|
99
103
|
//#endregion
|
|
100
104
|
init_src();
|
|
@@ -142,6 +142,16 @@ const providers = [
|
|
|
142
142
|
model("wan2.7-image", wan(false))
|
|
143
143
|
]
|
|
144
144
|
},
|
|
145
|
+
{
|
|
146
|
+
id: "qwen-token-plan-cn",
|
|
147
|
+
name: "Alibaba Bailian Subscription (China)",
|
|
148
|
+
protocol: "dashscope",
|
|
149
|
+
baseUrl: "https://token-plan.cn-beijing.maas.aliyuncs.com",
|
|
150
|
+
timeoutMs: 6e5,
|
|
151
|
+
documentationUrl: "https://help.aliyun.cn/zh/model-studio/token-plan-multimodal-gen",
|
|
152
|
+
apiKeyUrl: "https://bailian.console.aliyun.com/cn-beijing/subscription/overview",
|
|
153
|
+
models: [model("qwen-image-3.0-pro", cap(1, 0, { sizes: ["1024x1024"] })), model("wan2.7-image", cap(1, 0, { sizes: ["1024x1024"] }))]
|
|
154
|
+
},
|
|
145
155
|
{
|
|
146
156
|
id: "minimax",
|
|
147
157
|
name: "MiniMax",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { getImageProviderSpec } from "./catalog.js";
|
|
2
|
-
import { ImageProviderError, validateImageRequest } from "./validation.js";
|
|
2
|
+
import { ImageProviderError, normalizeImageGeometry, validateImageRequest } from "./validation.js";
|
|
3
3
|
import { MAX_IMAGE_BYTES, assertImageResponseOk, authenticatedJobUrl, decodeBase64, encodeBase64, imageFromBytes, readBytesLimited, readImageJson, waitForImagePoll } from "./http.js";
|
|
4
4
|
//#region packages/image-providers/src/execute.ts
|
|
5
5
|
const object = (value) => value && typeof value === "object" && !Array.isArray(value) ? value : {};
|
|
@@ -359,6 +359,10 @@ async function executeImageProvider(execution) {
|
|
|
359
359
|
const spec = getImageProviderSpec(execution.providerId);
|
|
360
360
|
const model = spec.models.find((item) => item.id === execution.request.model);
|
|
361
361
|
if (!model) throw new ImageProviderError(`Unsupported image model: ${execution.request.model}`, 400);
|
|
362
|
+
execution = {
|
|
363
|
+
...execution,
|
|
364
|
+
request: normalizeImageGeometry(execution.request, model.capabilities, Boolean(execution.request.inputImages?.length))
|
|
365
|
+
};
|
|
362
366
|
validateImageRequest(execution.request, model.capabilities);
|
|
363
367
|
const maxPrompt = spec.protocol === "zhipu" ? 1e3 : spec.protocol === "tokenhub" && model.id === "hy-image-v3" ? 8192 : spec.protocol === "dashscope" && model.id.startsWith("wan") ? 5e3 : Infinity;
|
|
364
368
|
if ([...execution.request.prompt].length > maxPrompt) throw new ImageProviderError("Image prompt exceeds model limit", 400);
|
|
@@ -40,6 +40,24 @@ function validateImageRequest(request, caps) {
|
|
|
40
40
|
if (request.background && !caps.output?.backgrounds?.includes(request.background)) fail(`Unsupported image background: ${request.background}`);
|
|
41
41
|
if (request.background === "transparent" && request.outputFormat === "jpeg") fail("Transparent images require PNG or WebP");
|
|
42
42
|
}
|
|
43
|
+
/** Translate ratios only when the selected model has an exact supported pixel size. */
|
|
44
|
+
function normalizeImageGeometry(request, caps, editing = false) {
|
|
45
|
+
const mode = editing ? caps.edit : caps.generate;
|
|
46
|
+
if (!request.aspectRatio || mode?.supportsAspectRatio || !mode?.supportsSize || request.resolution) return request;
|
|
47
|
+
const ratio = /^(\d+):(\d+)$/.exec(request.aspectRatio);
|
|
48
|
+
if (!ratio || Number(ratio[1]) <= 0 || Number(ratio[2]) <= 0) return request;
|
|
49
|
+
const geometry = editing && caps.edit?.geometry ? caps.edit.geometry : caps.geometry;
|
|
50
|
+
const size = (request.size ? [request.size] : geometry?.sizes ?? []).find((value) => {
|
|
51
|
+
const dimensions = /^(\d+)x(\d+)$/.exec(value);
|
|
52
|
+
return dimensions && Number(dimensions[1]) * Number(ratio[2]) === Number(dimensions[2]) * Number(ratio[1]) && isSupportedImageSize(value, geometry);
|
|
53
|
+
});
|
|
54
|
+
if (!size) return request;
|
|
55
|
+
const { aspectRatio: _aspectRatio, ...rest } = request;
|
|
56
|
+
return {
|
|
57
|
+
...rest,
|
|
58
|
+
size
|
|
59
|
+
};
|
|
60
|
+
}
|
|
43
61
|
function isSupportedImageSize(size, geometry) {
|
|
44
62
|
if (geometry?.sizes?.includes(size)) return true;
|
|
45
63
|
const match = /^(\d+)x(\d+)$/.exec(size);
|
|
@@ -49,4 +67,4 @@ function isSupportedImageSize(size, geometry) {
|
|
|
49
67
|
return width >= bounds.minEdge && height >= bounds.minEdge && width <= bounds.maxEdge && height <= bounds.maxEdge && width % bounds.step === 0 && height % bounds.step === 0 && pixels >= bounds.minPixels && pixels <= bounds.maxPixels && Math.max(width / height, height / width) <= bounds.maxRatio;
|
|
50
68
|
}
|
|
51
69
|
//#endregion
|
|
52
|
-
export { ImageProviderError, isSupportedImageSize, validateImageRequest };
|
|
70
|
+
export { ImageProviderError, isSupportedImageSize, normalizeImageGeometry, validateImageRequest };
|
|
@@ -10,5 +10,4 @@ export interface RunUserModelReviewParams {
|
|
|
10
10
|
getConfig: () => Config | undefined;
|
|
11
11
|
}
|
|
12
12
|
export declare function createBackgroundUserModelReviewTask(params: RunUserModelReviewParams): () => Promise<void>;
|
|
13
|
-
/** Persisted job runner; independent of an interactive Agent instance surviving eviction. */
|
|
14
13
|
export declare function runPersistentLearningJob(job: LearningJob, getConfig: () => Config | undefined): Promise<void>;
|
|
@@ -8,6 +8,7 @@ import { init_sqlite } from "../../storage/sqlite/index.js";
|
|
|
8
8
|
import { extractTextContent } from "../context/workspace.js";
|
|
9
9
|
import { resolveUserContextSessionAccess } from "../../user-context/access-policy.js";
|
|
10
10
|
import { failLearningJob, finishLearningJob, learningPolicyHash } from "../../memory-learning/repository.js";
|
|
11
|
+
import { init_model_usage, withModelUsageOrigin } from "../../providers/model-usage.js";
|
|
11
12
|
import { extractProfileAgentId } from "../../config/agent-profile.js";
|
|
12
13
|
import { resolveModelIntentRef, resolveModelSelector } from "../../config/agent-model-intents.js";
|
|
13
14
|
import { init_sync_provider_auth, resolveProviderApiKeySync } from "../../auth/sync-provider-auth.js";
|
|
@@ -28,6 +29,7 @@ import { getAssistantTurnErrorMessage, getLastAssistantMessage, isAssistantTurnA
|
|
|
28
29
|
import { USER_MODEL_MAINTAINER_SYSTEM_PROMPT, buildUserModelInterpreterPrompt } from "./prompts.js";
|
|
29
30
|
import { Agent } from "@earendil-works/pi-agent-core";
|
|
30
31
|
//#region src/agent/background-review/run-background-review.ts
|
|
32
|
+
init_model_usage();
|
|
31
33
|
init_transaction();
|
|
32
34
|
init_sync_provider_auth();
|
|
33
35
|
init_providers();
|
|
@@ -214,7 +216,7 @@ async function interpret(params) {
|
|
|
214
216
|
}
|
|
215
217
|
return interpretation;
|
|
216
218
|
}
|
|
217
|
-
async function
|
|
219
|
+
async function executeReviewInner(params) {
|
|
218
220
|
const runtime = resolveInterpreterRuntime(params);
|
|
219
221
|
if (!runtime) return emptyUserModelCaptureResult();
|
|
220
222
|
const extraction = claimRegisteredExtraction({
|
|
@@ -318,7 +320,7 @@ function listAvailableAssertions() {
|
|
|
318
320
|
});
|
|
319
321
|
}
|
|
320
322
|
/** Persisted job runner; independent of an interactive Agent instance surviving eviction. */
|
|
321
|
-
async function
|
|
323
|
+
async function runPersistentLearningJobInner(job, getConfig) {
|
|
322
324
|
const config = getConfig();
|
|
323
325
|
if (!config || !resolveUserContextSessionAccess(config, job.conversation_id).enabled || learningPolicyHash(config) !== job.policy_hash) {
|
|
324
326
|
failLearningJob(job, "policy_changed", true);
|
|
@@ -474,5 +476,11 @@ async function runPersistentLearningJob(job, getConfig) {
|
|
|
474
476
|
errorCode: "lease_lost"
|
|
475
477
|
});
|
|
476
478
|
}
|
|
479
|
+
async function executeReview(params) {
|
|
480
|
+
return withModelUsageOrigin("background", () => executeReviewInner(params));
|
|
481
|
+
}
|
|
482
|
+
async function runPersistentLearningJob(job, getConfig) {
|
|
483
|
+
return withModelUsageOrigin("background", () => runPersistentLearningJobInner(job, getConfig));
|
|
484
|
+
}
|
|
477
485
|
//#endregion
|
|
478
486
|
export { createBackgroundUserModelReviewTask, runPersistentLearningJob };
|
|
@@ -2,6 +2,7 @@ import { createLogger } from "../../utils/logger/index.js";
|
|
|
2
2
|
import { init_logger } from "../../utils/logger.js";
|
|
3
3
|
import { parseTurnOutcome } from "../../../packages/gateway-contract/src/turn-outcome.js";
|
|
4
4
|
import { init_src } from "../../../packages/gateway-contract/src/index.js";
|
|
5
|
+
import { assertProviderUsage, getModelUsageOrigin, init_model_usage, isProviderUsageScopeError } from "../../providers/model-usage.js";
|
|
5
6
|
import { resolveEffectiveAgentProfileForSession } from "../../config/agent-profile.js";
|
|
6
7
|
import { init_providers, resolveModel } from "../../providers/index.js";
|
|
7
8
|
import { appendDynamicPromptSection } from "../prompt/cache-boundary.js";
|
|
@@ -25,6 +26,7 @@ import { materializeNativeExternalTools } from "./external-tool-discovery.js";
|
|
|
25
26
|
import { getTaskContinuation, getTaskExecutionDeadline } from "../../tasks/task-continuation.js";
|
|
26
27
|
import crypto from "node:crypto";
|
|
27
28
|
//#region src/agent/embedded/run-for-session.ts
|
|
29
|
+
init_model_usage();
|
|
28
30
|
init_src();
|
|
29
31
|
init_logger();
|
|
30
32
|
init_providers();
|
|
@@ -114,15 +116,26 @@ async function runEmbeddedTurnForSessionInner(params) {
|
|
|
114
116
|
const mm = modelManager;
|
|
115
117
|
const configuredModelRef = String(mm.getModelForSession(conversationId));
|
|
116
118
|
const candidates = typeof mm.getFallbackCandidatesForSession === "function" ? mm.getFallbackCandidatesForSession(conversationId) : [];
|
|
117
|
-
const
|
|
119
|
+
const effective = config ? resolveEffectiveAgentProfileForSession(conversationId).config : void 0;
|
|
120
|
+
const background = getModelUsageOrigin() === "background" && !mm.hasSessionModelOverride?.(conversationId) && configuredModelRef === effective?.models.chat.primary ? effective.models.background : void 0;
|
|
121
|
+
const candidateModelRefs = background ? [background.primary, ...background.fallbacks] : candidates.length > 0 ? candidates.map((candidate) => `${candidate.provider}/${candidate.model}`) : [configuredModelRef];
|
|
122
|
+
const selectedRef = background?.primary ?? configuredModelRef;
|
|
123
|
+
assertProviderUsage(selectedRef.split("/")[0]);
|
|
124
|
+
try {
|
|
125
|
+
const selected = !background && typeof mm.getResolvedModelForSession === "function" ? mm.getResolvedModelForSession(conversationId) : resolveModel(selectedRef);
|
|
126
|
+
assertProviderUsage(selected.provider, selected.baseUrl);
|
|
127
|
+
} catch (error) {
|
|
128
|
+
if (isProviderUsageScopeError(error)) throw error;
|
|
129
|
+
}
|
|
118
130
|
const resolvedCandidates = [];
|
|
119
131
|
for (const [index, ref] of candidateModelRefs.entries()) try {
|
|
120
|
-
const resolved = index === 0 && typeof mm.getResolvedModelForSession === "function" ? mm.getResolvedModelForSession(conversationId) : resolveModel(ref);
|
|
132
|
+
const resolved = !background && index === 0 && typeof mm.getResolvedModelForSession === "function" ? mm.getResolvedModelForSession(conversationId) : resolveModel(ref);
|
|
121
133
|
resolvedCandidates.push({
|
|
122
134
|
ref,
|
|
123
135
|
model: resolved
|
|
124
136
|
});
|
|
125
137
|
} catch (err) {
|
|
138
|
+
if (index === 0) assertProviderUsage(ref.split("/")[0]);
|
|
126
139
|
log.warn({
|
|
127
140
|
err,
|
|
128
141
|
conversationId,
|
|
@@ -134,6 +147,7 @@ async function runEmbeddedTurnForSessionInner(params) {
|
|
|
134
147
|
if (!primary) throw new Error(`No available model candidates for '${configuredModelRef}'`);
|
|
135
148
|
const modelRef = primary.ref;
|
|
136
149
|
const model = primary.model;
|
|
150
|
+
assertProviderUsage(model.provider, model.baseUrl);
|
|
137
151
|
if (typeof mm.applyResolvedModel === "function") mm.applyResolvedModel(agent, model, modelRef);
|
|
138
152
|
else await mm.applyModelForSession(agent, conversationId);
|
|
139
153
|
agentManager.setModelForSession(conversationId, modelRef);
|
|
@@ -155,7 +169,7 @@ async function runEmbeddedTurnForSessionInner(params) {
|
|
|
155
169
|
triggerThreshold: idlePolicy.personalIdle.triggerThreshold
|
|
156
170
|
});
|
|
157
171
|
if (budget.estimatedTokens <= budget.triggerTokens || messages.length < idlePolicy.minMessagesBeforeCompact) return "skipped";
|
|
158
|
-
const summaryModel = idlePolicy.personalIdle.model ?? idlePolicy.model;
|
|
172
|
+
const summaryModel = idlePolicy.personalIdle.model ?? idlePolicy.model ?? effective?.models.background?.primary;
|
|
159
173
|
const candidate = await sessionStore.prepareCompaction(conversationId, summaryModel ? resolveModel(summaryModel) : model, {
|
|
160
174
|
...idlePolicy,
|
|
161
175
|
keepRecentTokens: idlePolicy.personalIdle.keepRecentTokens,
|
|
@@ -322,6 +336,10 @@ async function runEmbeddedTurnForSessionInner(params) {
|
|
|
322
336
|
return await finish(turnResult);
|
|
323
337
|
}
|
|
324
338
|
lastResult = turnResult;
|
|
339
|
+
if (isProviderUsageScopeError(turnResult.errorMessage)) return await finish({
|
|
340
|
+
...turnResult,
|
|
341
|
+
retryable: false
|
|
342
|
+
});
|
|
325
343
|
if (supervisor.signal.aborted || turnResult.retryable === false) break;
|
|
326
344
|
log.warn({
|
|
327
345
|
conversationId,
|
|
@@ -334,6 +352,11 @@ async function runEmbeddedTurnForSessionInner(params) {
|
|
|
334
352
|
}, hasNextCandidate ? "Agent model turn failed, trying fallback" : "Agent model turn failed, no fallback remains");
|
|
335
353
|
} catch (err) {
|
|
336
354
|
attempt.finish("error", err instanceof Error ? err.message : String(err));
|
|
355
|
+
if (isProviderUsageScopeError(err)) return await finish({
|
|
356
|
+
ok: false,
|
|
357
|
+
retryable: false,
|
|
358
|
+
errorMessage: err instanceof Error ? err.message : String(err)
|
|
359
|
+
});
|
|
337
360
|
lastError = err;
|
|
338
361
|
if (err instanceof DOMException && err.name === "AbortError") {
|
|
339
362
|
await finish({
|
|
@@ -6,6 +6,7 @@ import { getConnectionResumeInput, init_connection_wait_repository, isConnection
|
|
|
6
6
|
import { getSessionMetadata } from "../../storage/sqlite/session-read-repository.js";
|
|
7
7
|
import { init_session_repository } from "../../storage/sqlite/session-repository.js";
|
|
8
8
|
import { init_sqlite } from "../../storage/sqlite/index.js";
|
|
9
|
+
import { ProviderUsageScopeError, init_model_usage } from "../../providers/model-usage.js";
|
|
9
10
|
import { resolveEffectiveAgentConfigForSession } from "../../config/agent-profile.js";
|
|
10
11
|
import { setTraceIdentity, traceOperation, traceRun, traceTools } from "../../observability/runtime.js";
|
|
11
12
|
import { continuesAfterTool, trackAiUsageStream } from "../../usage/recorder.js";
|
|
@@ -41,6 +42,7 @@ import { getModelThinking } from "../../providers/model-thinking.js";
|
|
|
41
42
|
import "../messaging/no-reply.js";
|
|
42
43
|
import { createAssistantMessageEventStream, getCurrentSystemPrompt, getCurrentTools, isRecoverableLength } from "@earendil-works/pi-ai";
|
|
43
44
|
//#region src/agent/embedded/run-turn.ts
|
|
45
|
+
init_model_usage();
|
|
44
46
|
init_connection_wait_repository();
|
|
45
47
|
init_clarification_wait_repository();
|
|
46
48
|
init_logger();
|
|
@@ -273,6 +275,11 @@ async function runXopcEmbeddedTurn(params) {
|
|
|
273
275
|
conversationId: params.conversationId,
|
|
274
276
|
runId: params.runId
|
|
275
277
|
}, () => runXopcEmbeddedTurnInner(params), params.userMessage);
|
|
278
|
+
if (result.errorMessage?.includes("provider_usage_scope_denied")) return {
|
|
279
|
+
...result,
|
|
280
|
+
ok: false,
|
|
281
|
+
retryable: false
|
|
282
|
+
};
|
|
276
283
|
const stopped = cloudCreditBudgetStopMessage();
|
|
277
284
|
if (stopped) return {
|
|
278
285
|
...result,
|
|
@@ -289,6 +296,11 @@ async function runXopcEmbeddedTurn(params) {
|
|
|
289
296
|
}
|
|
290
297
|
return result;
|
|
291
298
|
} catch (error) {
|
|
299
|
+
if (error instanceof ProviderUsageScopeError) return {
|
|
300
|
+
ok: false,
|
|
301
|
+
retryable: false,
|
|
302
|
+
errorMessage: error.message
|
|
303
|
+
};
|
|
292
304
|
const message = error instanceof Error ? error.message : String(error);
|
|
293
305
|
if (isCloudCreditBudgetExhausted(message)) {
|
|
294
306
|
reportCloudCreditError(message);
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { assertProviderUsage, init_model_usage } from "../../providers/model-usage.js";
|
|
1
2
|
import "../../providers/constants.js";
|
|
2
3
|
import { init_providers } from "../../providers/index.js";
|
|
3
4
|
import { createExtensionAwareStreamFn } from "../../providers/extension-stream-bridge.js";
|
|
@@ -6,6 +7,7 @@ import { assertCloudCreditBudgetActive, cloudCreditBudgetHeaders, hasCloudCredit
|
|
|
6
7
|
import { preparePromptCacheContext, withPromptCachePayloadTransform } from "../../providers/prompt-cache-payload.js";
|
|
7
8
|
import { getCurrentSystemPrompt, getCurrentTools, normalizeContext } from "@earendil-works/pi-ai";
|
|
8
9
|
//#region src/agent/embedded/xopc-stream-bridge.ts
|
|
10
|
+
init_model_usage();
|
|
9
11
|
init_providers();
|
|
10
12
|
/**
|
|
11
13
|
* pi-coding-agent's default {@link createAgentSession} streamFn always routes through
|
|
@@ -20,6 +22,7 @@ function wrapStreamFnForXopcExtensions(originalStreamFn, promptCachePolicy) {
|
|
|
20
22
|
const extensionStreamFn = createExtensionAwareStreamFn();
|
|
21
23
|
return ((model, context, options) => {
|
|
22
24
|
assertCloudCreditBudgetActive();
|
|
25
|
+
assertProviderUsage(model.provider, model.baseUrl);
|
|
23
26
|
if (model.provider === "xopc-cloud") options = withCloudUsageResponse(options);
|
|
24
27
|
const promptContext = {
|
|
25
28
|
systemPrompt: getCurrentSystemPrompt(context.messages),
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { createLogger } from "../../../utils/logger/index.js";
|
|
2
2
|
import { init_logger } from "../../../utils/logger.js";
|
|
3
|
+
import { assertProviderUsage, init_model_usage } from "../../../providers/model-usage.js";
|
|
3
4
|
import { PROVIDER_ENV_MAP, init_env_keys } from "../../../providers/env-keys.js";
|
|
4
|
-
import { ImageProviderError } from "../../../../packages/image-providers/src/validation.js";
|
|
5
|
+
import { ImageProviderError, normalizeImageGeometry } from "../../../../packages/image-providers/src/validation.js";
|
|
5
6
|
import "../../../../packages/image-providers/src/index.js";
|
|
6
7
|
import { describeFailoverError, isFailoverError } from "../../failover-error.js";
|
|
7
8
|
import { buildNoCapabilityModelConfiguredMessage, recordCapabilityCandidateFailure, resolveCapabilityModelCandidates, throwCapabilityGenerationFailure } from "../../media-generation/runtime-shared.js";
|
|
@@ -10,6 +11,7 @@ import { parseImageGenerationModelRef } from "./model-ref.js";
|
|
|
10
11
|
import { validateImageGenerationRequest } from "./validation.js";
|
|
11
12
|
import { getImageGenerationProvider, listImageGenerationProviders, listImageGenerationProvidersSummary as listImageGenerationProvidersSummary$1 } from "./provider-registry.js";
|
|
12
13
|
//#region src/agent/image/generation/runtime.ts
|
|
14
|
+
init_model_usage();
|
|
13
15
|
init_env_keys();
|
|
14
16
|
init_logger();
|
|
15
17
|
const log = createLogger("ImageGen");
|
|
@@ -59,30 +61,26 @@ async function generateImage(params, deps = {}) {
|
|
|
59
61
|
try {
|
|
60
62
|
if (!provider.models.includes(candidate.model)) throw new ImageProviderError(`Unsupported image model: ${candidate.model}`, 400);
|
|
61
63
|
const modelCapabilities = provider.modelCapabilities?.[candidate.model];
|
|
64
|
+
const capabilityProvider = modelCapabilities ? {
|
|
65
|
+
...provider,
|
|
66
|
+
capabilities: modelCapabilities
|
|
67
|
+
} : provider;
|
|
68
|
+
const candidateParams = normalizeImageGeometry(params, capabilityProvider.capabilities, Boolean(params.inputImages?.length));
|
|
62
69
|
validateImageGenerationRequest({
|
|
63
|
-
provider:
|
|
64
|
-
|
|
65
|
-
capabilities: modelCapabilities
|
|
66
|
-
} : provider,
|
|
67
|
-
size: params.size,
|
|
68
|
-
count: params.count,
|
|
69
|
-
aspectRatio: params.aspectRatio,
|
|
70
|
-
resolution: params.resolution,
|
|
71
|
-
quality: params.quality,
|
|
72
|
-
outputFormat: params.outputFormat,
|
|
73
|
-
background: params.background,
|
|
74
|
-
inputImages: params.inputImages
|
|
70
|
+
provider: capabilityProvider,
|
|
71
|
+
...candidateParams
|
|
75
72
|
});
|
|
76
73
|
const request = buildProviderRequest({
|
|
77
74
|
provider,
|
|
78
75
|
candidate,
|
|
79
|
-
params
|
|
76
|
+
params: candidateParams
|
|
80
77
|
});
|
|
81
78
|
log.debug({
|
|
82
79
|
provider: candidate.provider,
|
|
83
80
|
model: candidate.model,
|
|
84
81
|
phase: "provider_invoked"
|
|
85
82
|
}, `image-generation provider invoked: ${candidate.provider}/${candidate.model}`);
|
|
83
|
+
assertProviderUsage(candidate.provider, request.cfg?.providers?.[candidate.provider]?.baseUrl);
|
|
86
84
|
const result = await provider.generateImage(request);
|
|
87
85
|
if (!result.images?.length) throw new Error("Image generation provider returned no images.");
|
|
88
86
|
return {
|
|
@@ -1,11 +1,14 @@
|
|
|
1
|
+
import { assertProviderUsage, init_model_usage, isProviderUsageScopeError } from "../../../providers/model-usage.js";
|
|
1
2
|
import { init_schema, parseModelRef } from "../../../config/schema.js";
|
|
2
3
|
import { getImageUnderstandingProvider } from "./provider-registry.js";
|
|
3
4
|
import "./pi-ai-provider.js";
|
|
4
5
|
//#region src/agent/image/understanding/runtime.ts
|
|
6
|
+
init_model_usage();
|
|
5
7
|
init_schema();
|
|
6
8
|
async function describeImages(params) {
|
|
7
9
|
const parsed = parseModelRef(params.modelRef);
|
|
8
10
|
if (!parsed) throw new Error(`Invalid model reference: ${params.modelRef}`);
|
|
11
|
+
assertProviderUsage(parsed.provider);
|
|
9
12
|
const provider = getImageUnderstandingProvider(parsed.provider);
|
|
10
13
|
if (!provider) throw new Error(`No image understanding provider registered for: ${parsed.provider}. Ensure the provider module is imported.`);
|
|
11
14
|
return provider.describeImages(parsed.model, {
|
|
@@ -40,6 +43,7 @@ async function describeImagesWithFallback(params) {
|
|
|
40
43
|
continue;
|
|
41
44
|
}
|
|
42
45
|
try {
|
|
46
|
+
assertProviderUsage(parsed.provider);
|
|
43
47
|
return {
|
|
44
48
|
...await provider.describeImages(parsed.model, {
|
|
45
49
|
images: params.images,
|
|
@@ -51,6 +55,7 @@ async function describeImagesWithFallback(params) {
|
|
|
51
55
|
attempts
|
|
52
56
|
};
|
|
53
57
|
} catch (err) {
|
|
58
|
+
if (isProviderUsageScopeError(err)) throw err;
|
|
54
59
|
lastError = err;
|
|
55
60
|
attempts.push({
|
|
56
61
|
provider: parsed.provider,
|