@xopcai/xopc 0.0.389 → 0.0.391
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-dvik6t7Z.js → activity-store-DWQCDi8M.js} +1 -1
- package/dist/gateway/static/root/assets/{agent-avatar-dicebear-bWMd5TDC.js → agent-avatar-dicebear-CzS0TUv9.js} +1 -1
- package/dist/gateway/static/root/assets/agent-defaults-settings-panel-DE910MyU.js +1 -0
- package/dist/gateway/static/root/assets/{agent-plugin-dialog-UunIxc1q.js → agent-plugin-dialog-0SlvsYl7.js} +1 -1
- package/dist/gateway/static/root/assets/agents-BZh28Qn1.js +77 -0
- package/dist/gateway/static/root/assets/{agents-admin-api-BlNGyXpm.js → agents-admin-api-Bb3Kvz3X.js} +1 -1
- package/dist/gateway/static/root/assets/app-management-settings-panel-9A7JN5V5.js +1 -0
- package/dist/gateway/static/root/assets/{appearance-settings-CUAdx44v.js → appearance-settings-BPdLEo6L.js} +1 -1
- package/dist/gateway/static/root/assets/{apps-page-D5zDB6gp.js → apps-page-Cz7LypV9.js} +1 -1
- package/dist/gateway/static/root/assets/{archive-plugin-Du6dJNcl.js → archive-plugin-DFnHPNie.js} +1 -1
- package/dist/gateway/static/root/assets/{automations-page-BO8Ig5Z4.js → automations-page-CnBLPVNh.js} +1 -1
- package/dist/gateway/static/root/assets/automations-workspace-BBjS-sk-.js +6 -0
- package/dist/gateway/static/root/assets/{binary-plugins-D7VJjwnr.js → binary-plugins-BQC0Tzoi.js} +1 -1
- package/dist/gateway/static/root/assets/{block-editor-CaJlWTAn.js → block-editor-DSh5019z.js} +4 -4
- package/dist/gateway/static/root/assets/{browser-automation-inputs-iyMBJmQX.js → browser-automation-inputs-C5tIrIRL.js} +1 -1
- package/dist/gateway/static/root/assets/browser-automations-page-CFCMNfJN.js +3 -0
- package/dist/gateway/static/root/assets/browser-settings-page-C__tyPwu.js +3 -0
- package/dist/gateway/static/root/assets/{capabilities-CEH1AnXc.js → capabilities-D6RJG4QY.js} +1 -1
- package/dist/gateway/static/root/assets/{capabilities-MCKRMZDK.js → capabilities-DGEmBQnF.js} +1 -1
- package/dist/gateway/static/root/assets/capabilities-page-B5AZa7ir.js +2 -0
- package/dist/gateway/static/root/assets/capabilities-settings-panel-Dskz2_bh.js +8 -0
- package/dist/gateway/static/root/assets/{capability-header-actions-BIA0Lwt5.js → capability-header-actions-xzjWZVbg.js} +1 -1
- package/dist/gateway/static/root/assets/channels-DRse_dD3.js +1 -0
- package/dist/gateway/static/root/assets/chat-terminal-dock-CQF0M4kE.js +36 -0
- package/dist/gateway/static/root/assets/{computer-settings-page-DvY3zgyY.js → computer-settings-page-ZfzCTS0N.js} +1 -1
- package/dist/gateway/static/root/assets/{connector-service-page-St2-Fj3y.js → connector-service-page-CwAeWVLK.js} +1 -1
- package/dist/gateway/static/root/assets/connectors-page-CanakKaj.js +1 -0
- package/dist/gateway/static/root/assets/{date-picker-C0-D80ny.js → date-picker-hmJlEAQZ.js} +1 -1
- package/dist/gateway/static/root/assets/{dependency-picker-CNd7mwMU.js → dependency-picker-Us_Juz6I.js} +1 -1
- package/dist/gateway/static/root/assets/{desktop-pet-C-2wDANn.js → desktop-pet-CvOTI4uw.js} +1 -1
- package/dist/gateway/static/root/assets/{desktop-pet-settings-DyhxLrdJ.js → desktop-pet-settings-DYg-Gb8t.js} +1 -1
- package/dist/gateway/static/root/assets/device-pairing-wizard-B1FbZ8C1.js +1 -0
- package/dist/gateway/static/root/assets/{directory-picker-path-field-CNivVIPT.js → directory-picker-path-field-DZN9EDvM.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-debug-page-CGYO3JPw.js → extension-debug-page-YIibp6Kk.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-page-Dc51ALAg.js → extension-page-DkcGyb28.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-provider-BXPILdlw.js → extension-provider-B1PQGTtY.js} +1 -1
- package/dist/gateway/static/root/assets/extension-settings-page-C_rJiSKo.js +1 -0
- package/dist/gateway/static/root/assets/{gateway-config-swr-Bc2MytsF.js → gateway-config-swr-Dv_A5FMu.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-realtime-BFK-vlME.js → gateway-realtime-DghCGfY_.js} +1 -1
- package/dist/gateway/static/root/assets/gateway-realtime-store-CMJVSnvi.js +1 -0
- package/dist/gateway/static/root/assets/gateway-settings-CjCWPHNJ.js +1 -0
- package/dist/gateway/static/root/assets/{gateway-startup-retry-BDPMttPx.js → gateway-startup-retry-CkTVSESs.js} +1 -1
- package/dist/gateway/static/root/assets/{highlighted-body-KQOG7T2V-DAlRGMge.js → highlighted-body-KQOG7T2V-DV2wNqBn.js} +1 -1
- package/dist/gateway/static/root/assets/home-page-fAYsd7kG.js +2 -0
- package/dist/gateway/static/root/assets/image-generation-api-B98iXt6A.js +1 -0
- package/dist/gateway/static/root/assets/imports-page-DoBCBN8G.js +1 -0
- package/dist/gateway/static/root/assets/index-DFgXwLsv.js +260 -0
- package/dist/gateway/static/root/assets/index-a6ZvhclR.css +1 -0
- package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-BYYC9Qmw.js → keyboard-shortcuts-settings-DXVu4lqV.js} +1 -1
- package/dist/gateway/static/root/assets/local-app-workbench-page-B3fz6uRi.js +1 -0
- package/dist/gateway/static/root/assets/{local-apps-page-BU8pUsVM.js → local-apps-page-BC6xhmUh.js} +1 -1
- package/dist/gateway/static/root/assets/{local-session-drafts-kFc_MAA9.js → local-session-drafts-DFnZQu9A.js} +1 -1
- package/dist/gateway/static/root/assets/{locale-store-Dr43FCty.js → locale-store-BpK9AiDq.js} +1 -1
- package/dist/gateway/static/root/assets/logs-page-CSqSFDRU.js +2 -0
- package/dist/gateway/static/root/assets/management-settings-gq5L0THs.js +1 -0
- package/dist/gateway/static/root/assets/{markdown-view-CdKlPjJM.js → markdown-view-IsYTotu6.js} +18 -18
- package/dist/gateway/static/root/assets/{media-plugins-DE9zt88i.js → media-plugins-oSChWbcP.js} +1 -1
- package/dist/gateway/static/root/assets/mermaid-MCJ5UELQ-C_QKwqDN.js +1 -0
- package/dist/gateway/static/root/assets/messages-CKTo_sIF.js +3 -0
- package/dist/gateway/static/root/assets/models-hub-cache-TjpL7hZ5.js +1 -0
- package/dist/gateway/static/root/assets/note-detail-panel-CdpNXre-.js +5 -0
- package/dist/gateway/static/root/assets/{notes-api-BHouNL6-.js → notes-api-CBb944yw.js} +1 -1
- package/dist/gateway/static/root/assets/notes-page-EGvGw8MN.js +8 -0
- package/dist/gateway/static/root/assets/{page-context-capture-button-TQr8NnSc.js → page-context-capture-button-CoWb7BYP.js} +1 -1
- package/dist/gateway/static/root/assets/personal-page-DYzbNTyN.js +1 -0
- package/dist/gateway/static/root/assets/{product-open-page-BEl6syFp.js → product-open-page-CTyy7H7-.js} +1 -1
- package/dist/gateway/static/root/assets/{product-preview-content-BxSHnbqz.js → product-preview-content-D4xqTaEy.js} +1 -1
- package/dist/gateway/static/root/assets/project-detail-page-DIVCw0QQ.js +1 -0
- package/dist/gateway/static/root/assets/projects-page-B4L9VnBN.js +1 -0
- package/dist/gateway/static/root/assets/{registry-api-BD5IgDOA.js → registry-api-Dsa2LvRt.js} +1 -1
- package/dist/gateway/static/root/assets/remote-access-hub-B8PvgLVz.js +1 -0
- package/dist/gateway/static/root/assets/{runtime-tools-api-CjTRoQWT.js → runtime-tools-api-C2Uw89eY.js} +1 -1
- package/dist/gateway/static/root/assets/runtime-tools-settings-panel-Bqnp3tyt.js +1 -0
- package/dist/gateway/static/root/assets/scenes-page-D50g4GM2.js +2 -0
- package/dist/gateway/static/root/assets/{schema-form-ByG-R6N2.js → schema-form-h_RCNfiO.js} +1 -1
- package/dist/gateway/static/root/assets/{send-session-input-UAVStisp.js → send-session-input-DypbVTT7.js} +1 -1
- package/dist/gateway/static/root/assets/{session-api-DvgEiNRS.js → session-api-ga-SUOq_.js} +1 -1
- package/dist/gateway/static/root/assets/{session-manager-BOb1tC_Z.js → session-manager-C_OiKblh.js} +8 -8
- package/dist/gateway/static/root/assets/sessions-page-BsqDIbIr.js +1 -0
- package/dist/gateway/static/root/assets/settings-advanced-gate-D3zJAW4p.js +1 -0
- package/dist/gateway/static/root/assets/{settings-page-C1e9m23j.js → settings-page-DPCgrICd.js} +1 -1
- package/dist/gateway/static/root/assets/setup-status-panel-jjSYJpDd.js +1 -0
- package/dist/gateway/static/root/assets/{share-link-dialog-kE_6v5Dp.js → share-link-dialog-BGicglAS.js} +1 -1
- package/dist/gateway/static/root/assets/{share-preview-page-BT-_yR1h.js → share-preview-page-BORe9rLB.js} +1 -1
- package/dist/gateway/static/root/assets/{shares-api-Dg_SqHQE.js → shares-api-Dbx3z6-1.js} +1 -1
- package/dist/gateway/static/root/assets/shares-settings-C13FgfWk.js +1 -0
- package/dist/gateway/static/root/assets/{skill-api-BslUYMnX.js → skill-api-Cq6O1DZK.js} +1 -1
- package/dist/gateway/static/root/assets/{skill-reload-api-BQ2rTOP1.js → skill-reload-api-Cq7QDjMA.js} +1 -1
- package/dist/gateway/static/root/assets/skills-page-BM1ShEjx.js +2 -0
- package/dist/gateway/static/root/assets/{system-settings-panel-GpbPfWwo.js → system-settings-panel-BNCGFO1e.js} +1 -1
- package/dist/gateway/static/root/assets/task-detail-page-4VG82wcF.js +2 -0
- package/dist/gateway/static/root/assets/{task-expandable-content-DJrrEBB4.js → task-expandable-content-DAZGz5YC.js} +1 -1
- package/dist/gateway/static/root/assets/{theme-store-BKpYnggg.js → theme-store-Db7hDESt.js} +1 -1
- package/dist/gateway/static/root/assets/{tracing-settings-page-D71w7dwV.js → tracing-settings-page-C6p2Mu92.js} +1 -1
- package/dist/gateway/static/root/assets/{tunnel-api-BV46CvS8.js → tunnel-api-Dw15EJp0.js} +1 -1
- package/dist/gateway/static/root/assets/usage-page-DDrIqgGe.js +1 -0
- package/dist/gateway/static/root/assets/{use-autosave-CzyqRffr.js → use-autosave-DDjIdW4U.js} +1 -1
- package/dist/gateway/static/root/assets/{use-composer-attachments-Dviq-1f6.js → use-composer-attachments-DNl7O3Vb.js} +1 -1
- package/dist/gateway/static/root/assets/{use-file-preview-expanded-D5Kk7Hon.js → use-file-preview-expanded-DMHehhwG.js} +2 -2
- package/dist/gateway/static/root/assets/user-model-page-CaS9dOIr.js +2 -0
- package/dist/gateway/static/root/assets/{voice-api-key-field-DWtbmacd.js → voice-api-key-field-ByAxHE4P.js} +1 -1
- package/dist/gateway/static/root/assets/{voice-config-api-DnIjZm_9.js → voice-config-api-Dl39b27p.js} +1 -1
- package/dist/gateway/static/root/assets/voice-transcribe-api-CVaU83Jc.js +1 -0
- package/dist/gateway/static/root/assets/{work-discovery-overlay-ChEG71hz.js → work-discovery-overlay-BvVvPA1T.js} +1 -1
- package/dist/gateway/static/root/assets/workflow-run-setup-panel-BcFm9QcC.js +3 -0
- package/dist/gateway/static/root/assets/workflows-page-DMec_XZB.js +6 -0
- package/dist/gateway/static/root/assets/{workspace-api-CZDvu7uA.js → workspace-api-BpfKsrtP.js} +2 -2
- package/dist/gateway/static/root/assets/{xopc-cloud-account-card-CbUgg1SK.js → xopc-cloud-account-card-CU5lzzE9.js} +1 -1
- package/dist/gateway/static/root/index.html +28 -35
- 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/agent-manager.d.ts +1 -0
- package/dist/src/agent/agent-manager.js +4 -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/context/execution-scope.js +1 -1
- package/dist/src/agent/embedded/execution-tool-policy.d.ts +2 -0
- package/dist/src/agent/embedded/execution-tool-policy.js +8 -3
- package/dist/src/agent/embedded/run-for-session.js +26 -3
- package/dist/src/agent/embedded/run-turn.js +14 -1
- package/dist/src/agent/embedded/session-runner.js +1 -1
- 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/factory.js +14 -12
- package/dist/src/agent/tools/image-generate-tool.js +5 -1
- package/dist/src/agent/tools/personal-read-tool.js +4 -0
- package/dist/src/agent/tools/task-collaboration-tool.js +1 -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/cli/commands/doctor/checks/database-schema.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/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 +24 -0
- package/dist/src/gateway/hono/routes/commands-skills.js +15 -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 +2 -0
- 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 +78 -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/256_task_main_update_retries.sql +21 -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/tasks/task-collaboration-repository.d.ts +2 -0
- package/dist/src/tasks/task-collaboration-repository.js +7 -1
- package/dist/src/tasks/task-main-update-delivery.js +11 -4
- package/dist/src/tasks/task-main-update-input.js +2 -1
- package/dist/src/tasks/task-main-update-retry.d.ts +5 -0
- package/dist/src/tasks/task-main-update-retry.js +15 -0
- 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 +2 -2
- package/dist/gateway/static/root/assets/agent-defaults-settings-panel-Ds0Ue2FB.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/bot-DjLkhyZL.js +0 -1
- 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/circle-pause-CN9jYH2s.js +0 -1
- package/dist/gateway/static/root/assets/clock-3-DnrAnuyZ.js +0 -1
- 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/git-branch-Dh9uxTot.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/local-app-workbench-page-BKZfn-MS.js +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/message-square-fVE7Ghj1.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/pause-DuPxgSxk.js +0 -1
- package/dist/gateway/static/root/assets/personal-page-BvWzq4Wp.js +0 -1
- package/dist/gateway/static/root/assets/play-kxZvpBg8.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/sparkles-DHlfQFAF.js +0 -1
- package/dist/gateway/static/root/assets/task-detail-page-5B5ZVAu0.js +0 -2
- package/dist/gateway/static/root/assets/usage-page-rMuwNpJi.js +0 -1
- package/dist/gateway/static/root/assets/user-model-page-Dhqw3v_u.js +0 -2
- package/dist/gateway/static/root/assets/workflow-run-setup-panel-pdiRKLxP.js +0 -3
- package/dist/gateway/static/root/assets/workflows-page-D9LMxINt.js +0 -6
package/dist/gateway/static/root/assets/{workspace-api-CZDvu7uA.js → workspace-api-BpfKsrtP.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-C_OiKblh.js","assets/rolldown-runtime-aKtaBQYM.js","assets/locale-store-BpK9AiDq.js","assets/vendor-react-BOUWij0V.js","assets/messages-CKTo_sIF.js","assets/schemas-CObaziC7.js","assets/gateway-realtime-DghCGfY_.js","assets/gateway-realtime-store-CMJVSnvi.js","assets/local-session-drafts-DFnZQu9A.js","assets/session-api-ga-SUOq_.js","assets/gateway-startup-retry-CkTVSESs.js","assets/constants-DeXt1mV-.js","assets/tool-activity-BtJkgjFf.js","assets/registry-api-Dsa2LvRt.js","assets/preload-helper-zJ_50EbN.js","assets/attachment-utils-core-BIOUBrpT.js","assets/agents-admin-api-Bb3Kvz3X.js","assets/gateway-config-swr-Dv_A5FMu.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-BpK9AiDq.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-C_OiKblh.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-BpK9AiDq.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{No as f,cs as p}from"./index-DFgXwLsv.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-DFgXwLsv.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-CKTo_sIF.js">
|
|
22
|
+
<link rel="modulepreload" crossorigin href="/assets/locale-store-BpK9AiDq.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,14 +37,13 @@
|
|
|
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-IsYTotu6.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">
|
|
44
44
|
<link rel="modulepreload" crossorigin href="/assets/copy-text-row-C7egVuKr.js">
|
|
45
45
|
<link rel="modulepreload" crossorigin href="/assets/vendor-swr-BIWyz7Rc.js">
|
|
46
46
|
<link rel="modulepreload" crossorigin href="/assets/activity-YogQEteU.js">
|
|
47
|
-
<link rel="modulepreload" crossorigin href="/assets/bot-DjLkhyZL.js">
|
|
48
47
|
<link rel="modulepreload" crossorigin href="/assets/chevron-left-DqFhpbvK.js">
|
|
49
48
|
<link rel="modulepreload" crossorigin href="/assets/chevron-right-BweFrslA.js">
|
|
50
49
|
<link rel="modulepreload" crossorigin href="/assets/dist-C3DSFZCi.js">
|
|
@@ -55,8 +54,6 @@
|
|
|
55
54
|
<link rel="modulepreload" crossorigin href="/assets/circle-check-C23XjkUj.js">
|
|
56
55
|
<link rel="modulepreload" crossorigin href="/assets/circle-dashed-8qMD7gHf.js">
|
|
57
56
|
<link rel="modulepreload" crossorigin href="/assets/circle-dot-BAseJTrF.js">
|
|
58
|
-
<link rel="modulepreload" crossorigin href="/assets/circle-pause-CN9jYH2s.js">
|
|
59
|
-
<link rel="modulepreload" crossorigin href="/assets/clock-3-DnrAnuyZ.js">
|
|
60
57
|
<link rel="modulepreload" crossorigin href="/assets/cloud-C4-yfnnk.js">
|
|
61
58
|
<link rel="modulepreload" crossorigin href="/assets/ellipsis-0k4rZLoy.js">
|
|
62
59
|
<link rel="modulepreload" crossorigin href="/assets/external-link-DjqjBmc3.js">
|
|
@@ -73,54 +70,50 @@
|
|
|
73
70
|
<link rel="modulepreload" crossorigin href="/assets/rotate-cw-LIg3Am9S.js">
|
|
74
71
|
<link rel="modulepreload" crossorigin href="/assets/search-DA7gz22f.js">
|
|
75
72
|
<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-
|
|
73
|
+
<link rel="modulepreload" crossorigin href="/assets/gateway-startup-retry-CkTVSESs.js">
|
|
74
|
+
<link rel="modulepreload" crossorigin href="/assets/session-api-ga-SUOq_.js">
|
|
78
75
|
<link rel="modulepreload" crossorigin href="/assets/constants-DeXt1mV-.js">
|
|
79
76
|
<link rel="modulepreload" crossorigin href="/assets/app-chrome-BeB4KgOf.js">
|
|
80
77
|
<link rel="modulepreload" crossorigin href="/assets/attachment-utils-core-BIOUBrpT.js">
|
|
81
78
|
<link rel="modulepreload" crossorigin href="/assets/files-Bw4SBGdM.js">
|
|
82
|
-
<link rel="modulepreload" crossorigin href="/assets/workspace-api-
|
|
79
|
+
<link rel="modulepreload" crossorigin href="/assets/workspace-api-BpfKsrtP.js">
|
|
83
80
|
<link rel="modulepreload" crossorigin href="/assets/electron-env-Dit0bHgy.js">
|
|
84
81
|
<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-
|
|
82
|
+
<link rel="modulepreload" crossorigin href="/assets/activity-store-DWQCDi8M.js">
|
|
83
|
+
<link rel="modulepreload" crossorigin href="/assets/use-file-preview-expanded-DMHehhwG.js">
|
|
87
84
|
<link rel="modulepreload" crossorigin href="/assets/mic-CuUb7zc-.js">
|
|
88
85
|
<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-
|
|
86
|
+
<link rel="modulepreload" crossorigin href="/assets/share-link-dialog-BGicglAS.js">
|
|
87
|
+
<link rel="modulepreload" crossorigin href="/assets/local-session-drafts-DFnZQu9A.js">
|
|
91
88
|
<link rel="modulepreload" crossorigin href="/assets/specialists-4bkS5rZ4.js">
|
|
92
89
|
<link rel="modulepreload" crossorigin href="/assets/tasks-PuIUgF9L.js">
|
|
93
|
-
<link rel="modulepreload" crossorigin href="/assets/capabilities-
|
|
90
|
+
<link rel="modulepreload" crossorigin href="/assets/capabilities-DGEmBQnF.js">
|
|
94
91
|
<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-
|
|
98
|
-
<link rel="modulepreload" crossorigin href="/assets/
|
|
99
|
-
<link rel="modulepreload" crossorigin href="/assets/notes-api-BHouNL6-.js">
|
|
100
|
-
<link rel="modulepreload" crossorigin href="/assets/message-square-fVE7Ghj1.js">
|
|
101
|
-
<link rel="modulepreload" crossorigin href="/assets/pause-DuPxgSxk.js">
|
|
102
|
-
<link rel="modulepreload" crossorigin href="/assets/play-kxZvpBg8.js">
|
|
92
|
+
<link rel="modulepreload" crossorigin href="/assets/shares-api-Dbx3z6-1.js">
|
|
93
|
+
<link rel="modulepreload" crossorigin href="/assets/capabilities-D6RJG4QY.js">
|
|
94
|
+
<link rel="modulepreload" crossorigin href="/assets/use-composer-attachments-DNl7O3Vb.js">
|
|
95
|
+
<link rel="modulepreload" crossorigin href="/assets/notes-api-CBb944yw.js">
|
|
103
96
|
<link rel="modulepreload" crossorigin href="/assets/rotate-ccw-JM1TBLpp.js">
|
|
104
97
|
<link rel="modulepreload" crossorigin href="/assets/settings-2-D-csvaET.js">
|
|
105
|
-
<link rel="modulepreload" crossorigin href="/assets/
|
|
106
|
-
<link rel="modulepreload" crossorigin href="/assets/gateway-realtime-
|
|
107
|
-
<link rel="modulepreload" crossorigin href="/assets/gateway-realtime-BFK-vlME.js">
|
|
98
|
+
<link rel="modulepreload" crossorigin href="/assets/gateway-realtime-store-CMJVSnvi.js">
|
|
99
|
+
<link rel="modulepreload" crossorigin href="/assets/gateway-realtime-DghCGfY_.js">
|
|
108
100
|
<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/
|
|
101
|
+
<link rel="modulepreload" crossorigin href="/assets/registry-api-Dsa2LvRt.js">
|
|
102
|
+
<link rel="modulepreload" crossorigin href="/assets/gateway-config-swr-Dv_A5FMu.js">
|
|
103
|
+
<link rel="modulepreload" crossorigin href="/assets/agents-admin-api-Bb3Kvz3X.js">
|
|
104
|
+
<link rel="modulepreload" crossorigin href="/assets/session-manager-C_OiKblh.js">
|
|
105
|
+
<link rel="modulepreload" crossorigin href="/assets/voice-transcribe-api-CVaU83Jc.js">
|
|
106
|
+
<link rel="modulepreload" crossorigin href="/assets/send-session-input-DypbVTT7.js">
|
|
107
|
+
<link rel="modulepreload" crossorigin href="/assets/theme-store-Db7hDESt.js">
|
|
108
|
+
<link rel="modulepreload" crossorigin href="/assets/extension-provider-B1PQGTtY.js">
|
|
116
109
|
<link rel="modulepreload" crossorigin href="/assets/loopi-Djb8XU3l.js">
|
|
117
|
-
<link rel="modulepreload" crossorigin href="/assets/models-hub-cache-
|
|
110
|
+
<link rel="modulepreload" crossorigin href="/assets/models-hub-cache-TjpL7hZ5.js">
|
|
118
111
|
<link rel="modulepreload" crossorigin href="/assets/skill-api-utils-C7V4JVXM.js">
|
|
119
112
|
<link rel="modulepreload" crossorigin href="/assets/date-formatters-CUZAyDEg.js">
|
|
120
113
|
<link rel="modulepreload" crossorigin href="/assets/settings-form-draft-Dy10ldo8.js">
|
|
121
114
|
<link rel="stylesheet" crossorigin href="/assets/markdown-view-Ct4sKkUf.css">
|
|
122
115
|
<link rel="stylesheet" crossorigin href="/assets/loopi-C09I2mNj.css">
|
|
123
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
116
|
+
<link rel="stylesheet" crossorigin href="/assets/index-a6ZvhclR.css">
|
|
124
117
|
</head>
|
|
125
118
|
<body>
|
|
126
119
|
<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 };
|
|
@@ -131,6 +131,7 @@ export interface AgentInstance {
|
|
|
131
131
|
activeProjectContext?: string;
|
|
132
132
|
interactionStateVersion?: number;
|
|
133
133
|
userContextAccessVersion: string;
|
|
134
|
+
executionToolPolicyVersion: string;
|
|
134
135
|
/** Declared env var names from skill_view; exec_command reads values from process.env at spawn time. */
|
|
135
136
|
skillEnvPassthroughKeys: Set<string>;
|
|
136
137
|
}
|
|
@@ -26,6 +26,7 @@ import { runPersistentLearningJob } from "./background-review/run-background-rev
|
|
|
26
26
|
import { applyConfigOverrides } from "../config/runtime-overrides.js";
|
|
27
27
|
import { isPersonalConversation } from "../personal-agent/repository.js";
|
|
28
28
|
import { PersonalPromptContext } from "../personal-agent/prompt-context.js";
|
|
29
|
+
import { resolveExecutionToolPolicy } from "./embedded/execution-tool-policy.js";
|
|
29
30
|
import { buildExecutionScopeContextForPrompt } from "./context/execution-scope.js";
|
|
30
31
|
import { clearBootstrapSnapshot } from "./bootstrap/bootstrap-cache.js";
|
|
31
32
|
import { resolveBootstrapContextSync } from "./bootstrap/bootstrap-files.js";
|
|
@@ -769,9 +770,10 @@ var AgentManager = class {
|
|
|
769
770
|
getOrCreateAgent(conversationId) {
|
|
770
771
|
const targetPath = this.getResolvedWorkspaceForSession(conversationId);
|
|
771
772
|
const existing = this.agents.get(conversationId);
|
|
773
|
+
const executionToolPolicyVersion = JSON.stringify(resolveExecutionToolPolicy(conversationId));
|
|
772
774
|
if (existing) {
|
|
773
775
|
const currentConfig = resolveEffectiveAgentProfileForSession(conversationId).config;
|
|
774
|
-
if (!existing.agent.state.isStreaming && (existing.resolvedWorkspacePath !== targetPath || JSON.stringify(existing.effectiveProfile.config) !== JSON.stringify(currentConfig))) this.removeAgent(conversationId);
|
|
776
|
+
if (!existing.agent.state.isStreaming && (existing.executionToolPolicyVersion !== executionToolPolicyVersion || existing.resolvedWorkspacePath !== targetPath || JSON.stringify(existing.effectiveProfile.config) !== JSON.stringify(currentConfig))) this.removeAgent(conversationId);
|
|
775
777
|
else {
|
|
776
778
|
this.refreshDynamicContextIfChanged(existing);
|
|
777
779
|
existing.lastUsedAt = Date.now();
|
|
@@ -807,6 +809,7 @@ var AgentManager = class {
|
|
|
807
809
|
activeProjectContext,
|
|
808
810
|
interactionStateVersion: this.getInteractionStateVersion(conversationId),
|
|
809
811
|
userContextAccessVersion: this.getUserContextAccessVersion(conversationId),
|
|
812
|
+
executionToolPolicyVersion,
|
|
810
813
|
skillEnvPassthroughKeys: /* @__PURE__ */ new Set()
|
|
811
814
|
});
|
|
812
815
|
log.debug({
|
|
@@ -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 };
|
|
@@ -3,8 +3,8 @@ import { TaskRepository, init_task_repository } from "../../tasks/task-repositor
|
|
|
3
3
|
import { getSessionMetadata } from "../../storage/sqlite/session-read-repository.js";
|
|
4
4
|
import { init_sqlite } from "../../storage/sqlite/index.js";
|
|
5
5
|
import { TaskReadModelProjector } from "../../tasks/task-read-model-projector.js";
|
|
6
|
-
import { sanitizeForPromptLiteral } from "../prompt/sanitize-for-prompt.js";
|
|
7
6
|
import { TaskConversationRepository } from "../../tasks/task-conversation-repository.js";
|
|
7
|
+
import { sanitizeForPromptLiteral } from "../prompt/sanitize-for-prompt.js";
|
|
8
8
|
import { buildActiveProjectContextForPrompt } from "./project-context.js";
|
|
9
9
|
//#region src/agent/context/execution-scope.ts
|
|
10
10
|
init_sqlite();
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import type { AgentTool } from '@earendil-works/pi-agent-core';
|
|
2
|
+
export declare const TASK_EXECUTION_TOOL_IDS: readonly string[];
|
|
2
3
|
export declare const PERSONAL_REQUEST_TOOL_IDS: readonly ["xopc_tool_search", "xopc_tool_describe", "xopc_tool_execute", "personal_request_result", "personal_request_connection", "task_collaboration"];
|
|
3
4
|
export type ExecutionToolPolicy = Readonly<{
|
|
4
5
|
surface: 'agent' | 'personal_main' | 'personal_request_worker';
|
|
6
|
+
taskExecution: boolean;
|
|
5
7
|
nativeMcp: boolean;
|
|
6
8
|
externalMaterialization: boolean;
|
|
7
9
|
discovery: boolean;
|
|
@@ -4,10 +4,12 @@ import { getSessionMetadata } from "../../storage/sqlite/session-read-repository
|
|
|
4
4
|
import { init_session_repository } from "../../storage/sqlite/session-repository.js";
|
|
5
5
|
import { isPersonalConversation } from "../../personal-agent/repository.js";
|
|
6
6
|
import { PERSONAL_MAIN_TOOL_IDS } from "../../personal-agent/policy.js";
|
|
7
|
+
import { TaskConversationRepository } from "../../tasks/task-conversation-repository.js";
|
|
7
8
|
//#region src/agent/embedded/execution-tool-policy.ts
|
|
8
9
|
init_request_repository();
|
|
9
10
|
init_connection();
|
|
10
11
|
init_session_repository();
|
|
12
|
+
const TASK_EXECUTION_TOOL_IDS = ["task_collaboration", "publish_task_result"];
|
|
11
13
|
const PERSONAL_REQUEST_TOOL_IDS = [
|
|
12
14
|
"xopc_tool_search",
|
|
13
15
|
"xopc_tool_describe",
|
|
@@ -22,21 +24,24 @@ function resolveExecutionToolPolicy(conversationId) {
|
|
|
22
24
|
if (isPersonalConversation(conversationId)) surface = "personal_main";
|
|
23
25
|
else if (personalRequestForExecution(conversationId) || isXopcDatabaseOpen() && getSessionMetadata(conversationId)?.customData?.personalReadRequestId) surface = "personal_request_worker";
|
|
24
26
|
const configured = surface === "agent";
|
|
27
|
+
const taskExecution = Boolean(isXopcDatabaseOpen() && new TaskConversationRepository().resolveActiveExecutionSession(conversationId));
|
|
25
28
|
return {
|
|
26
29
|
surface,
|
|
30
|
+
taskExecution,
|
|
27
31
|
nativeMcp: configured,
|
|
28
32
|
externalMaterialization: configured,
|
|
29
33
|
discovery: configured,
|
|
30
34
|
codemode: configured,
|
|
31
|
-
revision: "personal-tool-boundaries-
|
|
35
|
+
revision: "personal-tool-boundaries-v3"
|
|
32
36
|
};
|
|
33
37
|
}
|
|
34
38
|
function allowsExecutionTool(policy, name) {
|
|
35
|
-
if (
|
|
39
|
+
if (TASK_EXECUTION_TOOL_IDS.includes(name) && !policy.taskExecution) return false;
|
|
40
|
+
if (policy.surface === "agent") return !name.startsWith("personal_");
|
|
36
41
|
return (policy.surface === "personal_main" ? PERSONAL_MAIN_TOOL_IDS : PERSONAL_REQUEST_TOOL_IDS).includes(name);
|
|
37
42
|
}
|
|
38
43
|
function filterExecutionTools(policy, tools) {
|
|
39
44
|
return tools.filter((tool) => allowsExecutionTool(policy, tool.name));
|
|
40
45
|
}
|
|
41
46
|
//#endregion
|
|
42
|
-
export { PERSONAL_REQUEST_TOOL_IDS, allowsExecutionTool, filterExecutionTools, resolveExecutionToolPolicy };
|
|
47
|
+
export { PERSONAL_REQUEST_TOOL_IDS, TASK_EXECUTION_TOOL_IDS, allowsExecutionTool, filterExecutionTools, resolveExecutionToolPolicy };
|
|
@@ -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({
|