@xopcai/xopc 0.0.286 → 0.0.292
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/README.md +16 -0
- package/README.zh-CN.md +16 -0
- package/dist/browser-ext/dist/assets/{auth-BXCWrPlg.js → auth-C8gJZEsn.js} +15 -3
- package/dist/browser-ext/dist/background.js +1 -1
- package/dist/browser-ext/dist/sidepanel.html +1 -1
- package/dist/browser-ext/dist/sidepanel.js +36 -10
- 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-xOhV8FHx.js → activity-store-6lmzUBEr.js} +1 -1
- package/dist/gateway/static/root/assets/{agent-avatar-dicebear-BzQbYWEj.js → agent-avatar-dicebear-B-KN7Vxe.js} +1 -1
- package/dist/gateway/static/root/assets/agent-defaults-settings-panel-Baxstv7m.js +1 -0
- package/dist/gateway/static/root/assets/agents-flPS95X0.js +1 -0
- package/dist/gateway/static/root/assets/{api-CVJQLBv9.js → api-D6yepxBp.js} +1 -1
- package/dist/gateway/static/root/assets/api-Dnfnl1Gd.js +1 -0
- package/dist/gateway/static/root/assets/{app-management-settings-panel-CTyuXkNC.js → app-management-settings-panel-Clx3-koM.js} +1 -1
- package/dist/gateway/static/root/assets/{appearance-settings-Tk-GJtvF.js → appearance-settings-Dh9-tszr.js} +1 -1
- package/dist/gateway/static/root/assets/{apps-page-BA-7OrhJ.js → apps-page-Dp2xsMsd.js} +1 -1
- package/dist/gateway/static/root/assets/{archive-plugin-O49jeeXo.js → archive-plugin-yBbgFmfo.js} +1 -1
- package/dist/gateway/static/root/assets/{attachment-load-r9lBF2tW.js → attachment-load-7erralOU.js} +1 -1
- package/dist/gateway/static/root/assets/{automations-page-CFFLXYgS.js → automations-page-CUonEZ2x.js} +1 -1
- package/dist/gateway/static/root/assets/automations-workspace-B4GlDw5q.js +6 -0
- package/dist/gateway/static/root/assets/{binary-plugins-BpM43vsn.js → binary-plugins-DaoKg78d.js} +1 -1
- package/dist/gateway/static/root/assets/{block-editor-DFrfEcGw.js → block-editor-CSzMTtSP.js} +3 -3
- package/dist/gateway/static/root/assets/{browser-automation-inputs-CyHGQwxQ.js → browser-automation-inputs-Cq4sIJt2.js} +1 -1
- package/dist/gateway/static/root/assets/{browser-automations-page-CPkOWfM9.js → browser-automations-page-BcoqlR0A.js} +2 -2
- package/dist/gateway/static/root/assets/{browser-settings-page-BOcseZxg.js → browser-settings-page-CNBpt5_s.js} +3 -3
- package/dist/gateway/static/root/assets/capabilities-settings-panel-Cq2xEfFR.js +8 -0
- package/dist/gateway/static/root/assets/channels-settings-qriatUpN.js +1 -0
- package/dist/gateway/static/root/assets/{channels-status-swr-BArPeImO.js → channels-status-swr-CVzEYBpX.js} +1 -1
- package/dist/gateway/static/root/assets/{chat-terminal-dock-D5Aka4S8.js → chat-terminal-dock-8ulboLW3.js} +2 -2
- package/dist/gateway/static/root/assets/computer-model-settings-CC9cAadg.js +1 -0
- package/dist/gateway/static/root/assets/computer-settings-page-Bx4S_5aZ.js +1 -0
- package/dist/gateway/static/root/assets/connectors-page-DMmdLl1C.js +2 -0
- package/dist/gateway/static/root/assets/{date-picker-DNtRu6EB.js → date-picker-D-PLqwOO.js} +1 -1
- package/dist/gateway/static/root/assets/{dependency-picker-Dng3dIQa.js → dependency-picker-Byi8Pj4r.js} +1 -1
- package/dist/gateway/static/root/assets/{desktop-pet-BicYycxy.js → desktop-pet-Cz65FJT2.js} +1 -1
- package/dist/gateway/static/root/assets/{desktop-pet-settings-BEse55eX.js → desktop-pet-settings-Bkl4Ze0r.js} +1 -1
- package/dist/gateway/static/root/assets/{device-pairing-wizard-be30HuFI.js → device-pairing-wizard-CIA_xQBM.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-debug-page-YzhYyuay.js → extension-debug-page-X7zxTl6D.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-page-CEXVIkDl.js → extension-page-DCdlL4LI.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-settings-page-CrlbgK8g.js → extension-settings-page-DQJnK5Sk.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-config-swr-BNuoHXiZ.js → gateway-config-swr-BBovMBQ1.js} +1 -1
- package/dist/gateway/static/root/assets/gateway-settings-BjBrlZtF.js +1 -0
- package/dist/gateway/static/root/assets/{gateway-startup-retry-zMPfje0n.js → gateway-startup-retry-NXDtzZED.js} +1 -1
- package/dist/gateway/static/root/assets/{heartbeat-settings-BtxitqZ3.js → heartbeat-settings-B2lYz7Xz.js} +1 -1
- package/dist/gateway/static/root/assets/home-page-DqqyuD7d.js +1 -0
- package/dist/gateway/static/root/assets/{image-generation-api-B_Tyx74A.js → image-generation-api-D01ieqGC.js} +1 -1
- package/dist/gateway/static/root/assets/{imports-page-eZciuLw_.js → imports-page-DJG1BJzd.js} +1 -1
- package/dist/gateway/static/root/assets/index-BD5uNzie.css +2 -0
- package/dist/gateway/static/root/assets/index-BN6wV2e0.js +75 -0
- package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-B796W039.js → keyboard-shortcuts-settings-CUpJbykV.js} +1 -1
- package/dist/gateway/static/root/assets/local-app-workbench-page-nUjivsK_.js +2 -0
- package/dist/gateway/static/root/assets/{local-apps-page-DXmY5jwM.js → local-apps-page-3uXvbS57.js} +1 -1
- package/dist/gateway/static/root/assets/{locale-store-D0001I7p.js → locale-store-eliqUnBr.js} +1 -1
- package/dist/gateway/static/root/assets/logs-page-DBvHm-DU.js +2 -0
- package/dist/gateway/static/root/assets/{management-settings-b1MG7s-3.js → management-settings-CX-GlWnS.js} +1 -1
- package/dist/gateway/static/root/assets/{markdown-view-2txE_Blz.js → markdown-view-BIg7cei7.js} +1 -1
- package/dist/gateway/static/root/assets/{media-plugins-CDEf3ksI.js → media-plugins-Ba0_Rfpy.js} +1 -1
- package/dist/gateway/static/root/assets/messages-NYDOR8-j.js +3 -0
- package/dist/gateway/static/root/assets/note-detail-panel-Dc39UgwB.js +5 -0
- package/dist/gateway/static/root/assets/notes-page-R7kUqGnr.js +8 -0
- package/dist/gateway/static/root/assets/{page-tabs-Bi_-DA5J.js → page-tabs-BSAf6FWu.js} +1 -1
- package/dist/gateway/static/root/assets/{preview-open-alternatives-Dhfdf14p.js → preview-open-alternatives-DD-poGvE.js} +1 -1
- package/dist/gateway/static/root/assets/{proactive-page-BNouL7Tv.js → proactive-page-BO0XQvPb.js} +1 -1
- package/dist/gateway/static/root/assets/{product-open-page-BkbZBqBr.js → product-open-page-DtgWUAwT.js} +1 -1
- package/dist/gateway/static/root/assets/project-detail-page-Ng3MMqXN.js +1 -0
- package/dist/gateway/static/root/assets/projects-page-CDchhHzo.js +1 -0
- package/dist/gateway/static/root/assets/{registry-api-icwoEKYB.js → registry-api-Dpm3N2h0.js} +1 -1
- package/dist/gateway/static/root/assets/remote-access-hub-BF3vmGvt.js +1 -0
- package/dist/gateway/static/root/assets/{runtime-tools-settings-panel-bmgxwWpW.js → runtime-tools-settings-panel-MlJvsGiE.js} +2 -2
- package/dist/gateway/static/root/assets/{schema-form-DoZeepCg.js → schema-form-DPs22QFN.js} +1 -1
- package/dist/gateway/static/root/assets/sessions-page-gUejQ_g6.js +1 -0
- package/dist/gateway/static/root/assets/settings-advanced-gate-C_a6vOHk.js +1 -0
- package/dist/gateway/static/root/assets/{settings-form-section-sw2bbS2b.js → settings-form-section-hi0uaiG8.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-page-BWF8uac0.js → settings-page-D74V1t2j.js} +1 -1
- package/dist/gateway/static/root/assets/setup-status-panel-BkIWwcLb.js +1 -0
- package/dist/gateway/static/root/assets/{share-preview-page-BIHYD6-O.js → share-preview-page-BSw02mMX.js} +1 -1
- package/dist/gateway/static/root/assets/shares-settings-DoCUNMfG.js +1 -0
- package/dist/gateway/static/root/assets/skill-reload-api-CDf5qL2o.js +1 -0
- package/dist/gateway/static/root/assets/skills-page-CnJdaqt2.js +2 -0
- package/dist/gateway/static/root/assets/{skills-page.utils-dvue6Ish.js → skills-page.utils-D1RxQndr.js} +1 -1
- package/dist/gateway/static/root/assets/{system-settings-panel-DCyxPWCl.js → system-settings-panel-CVRCYwdg.js} +1 -1
- package/dist/gateway/static/root/assets/task-detail-page-C985d6ss.js +1 -0
- package/dist/gateway/static/root/assets/{theme-store-CZwYGpbY.js → theme-store-DUHPzKzv.js} +1 -1
- package/dist/gateway/static/root/assets/{tunnel-api-__auf8Ww.js → tunnel-api-C0rbTyba.js} +1 -1
- package/dist/gateway/static/root/assets/{use-autosave-Iq83UDt3.js → use-autosave-DIKW1_0g.js} +1 -1
- package/dist/gateway/static/root/assets/user-model-page-BXMU-s3Y.js +2 -0
- package/dist/gateway/static/root/assets/{voice-api-key-field-D-QssKik.js → voice-api-key-field-fcggfSSi.js} +1 -1
- package/dist/gateway/static/root/assets/{voice-config-api-B0wNN_tE.js → voice-config-api-Bjy8EFqi.js} +1 -1
- package/dist/gateway/static/root/assets/{work-discovery-overlay-5NRYg1iI.js → work-discovery-overlay-D-Q7woUy.js} +1 -1
- package/dist/gateway/static/root/assets/{workflow-run-setup-panel-Ds2SZjLG.js → workflow-run-setup-panel-C0fSWp3X.js} +2 -2
- package/dist/gateway/static/root/assets/workflows-page-DZmh3rJf.js +6 -0
- package/dist/gateway/static/root/index.html +10 -10
- package/dist/package.js +1 -1
- package/dist/packages/computer-control-contract/src/index.js +196 -0
- package/dist/packages/realtime-client/src/index.js +9 -2
- package/dist/packages/realtime-protocol/src/voice-audio.js +15 -10
- package/dist/packages/realtime-protocol/src/voice-catalog.js +61 -0
- package/dist/packages/realtime-protocol/src/voice.js +257 -248
- package/dist/src/agent/agent-manager.d.ts +1 -0
- package/dist/src/agent/agent-manager.js +5 -4
- package/dist/src/agent/background-review/run-background-review.js +1 -1
- package/dist/src/agent/embedded/model-runtime.js +1 -1
- package/dist/src/agent/embedded/run-for-session.js +1 -1
- package/dist/src/agent/embedded/run-turn.js +9 -1
- package/dist/src/agent/external-tools/endpoint-provider.js +4 -2
- package/dist/src/agent/image/tool-model-config.js +1 -1
- package/dist/src/agent/mcp/oauth/mcp-oauth-store.js +1 -1
- package/dist/src/agent/service.js +2 -2
- package/dist/src/agent/session/session-inspector.js +1 -1
- package/dist/src/agent/skills/hub-lock.js +1 -1
- package/dist/src/agent/skills/index.js +25 -15
- package/dist/src/agent/skills/parse-skill-metadata.d.ts +5 -1
- package/dist/src/agent/skills/parse-skill-metadata.js +21 -1
- package/dist/src/agent/skills/types.d.ts +7 -0
- package/dist/src/agent/tasks/task-judge-service.js +3 -3
- package/dist/src/agent/tool-manuals/computer.d.ts +1 -0
- package/dist/src/agent/tool-manuals/computer.js +19 -0
- package/dist/src/agent/tool-manuals/index.js +7 -0
- package/dist/src/agent/tools/computer-use-tool.d.ts +11 -0
- package/dist/src/agent/tools/computer-use-tool.js +86 -0
- package/dist/src/agent/tools/factory.d.ts +2 -0
- package/dist/src/agent/tools/factory.js +30 -0
- package/dist/src/agent-config/index.js +2 -2
- package/dist/src/agent-config/resolver.js +5 -0
- package/dist/src/agent-config/schema.d.ts +32 -0
- package/dist/src/agent-config/schema.js +5 -2
- package/dist/src/ai-assist/text-assist.js +1 -1
- package/dist/src/auth/credentials.js +2 -2
- package/dist/src/auth/oauth/xopc-cloud.js +1 -1
- package/dist/src/auth/profiles/store.js +1 -1
- package/dist/src/auth/sync-provider-auth.js +2 -2
- package/dist/src/browser/providers/browser-ext-install.js +1 -1
- package/dist/src/capabilities/readiness/from-config.js +14 -2
- package/dist/src/capabilities/readiness/planner.js +3 -2
- package/dist/src/capabilities/readiness/types.d.ts +1 -1
- package/dist/src/chat-commands/agent-edit.js +1 -1
- package/dist/src/cli/commands/agent.js +1 -1
- package/dist/src/cli/commands/doctor/checks/provider-auth.js +3 -3
- package/dist/src/cli/commands/models.js +1 -1
- package/dist/src/computer/broker.d.ts +97 -0
- package/dist/src/computer/broker.js +337 -0
- package/dist/src/computer/config.d.ts +9 -0
- package/dist/src/computer/config.js +16 -0
- package/dist/src/computer/control-guard.d.ts +4 -0
- package/dist/src/computer/control-guard.js +17 -0
- package/dist/src/computer/errors.d.ts +7 -0
- package/dist/src/computer/errors.js +30 -0
- package/dist/src/computer/model-adapter.d.ts +44 -0
- package/dist/src/computer/model-adapter.js +273 -0
- package/dist/src/computer/model-config.d.ts +3 -0
- package/dist/src/computer/model-config.js +27 -0
- package/dist/src/computer/model-policy.d.ts +3 -0
- package/dist/src/computer/model-policy.js +20 -0
- package/dist/src/computer/runtime.d.ts +128 -0
- package/dist/src/computer/runtime.js +388 -0
- package/dist/src/config/index.js +4 -4
- package/dist/src/config/loader.js +2 -2
- package/dist/src/config/models-json.d.ts +36 -0
- package/dist/src/config/models-json.js +15 -1
- package/dist/src/config/schema.d.ts +37 -0
- package/dist/src/config/schema.js +11 -2
- package/dist/src/config/voice.js +2 -2
- package/dist/src/endpoint-tools/invocation-service.d.ts +1 -0
- package/dist/src/endpoint-tools/invocation-service.js +5 -2
- package/dist/src/endpoint-tools/policy.js +7 -0
- package/dist/src/endpoint-tools/runtime.js +1 -0
- package/dist/src/endpoint-tools/upload-service.d.ts +13 -1
- package/dist/src/endpoint-tools/upload-service.js +73 -8
- package/dist/src/extensions/lockfile.js +1 -1
- package/dist/src/gateway/agent-builtin-tools.d.ts +7 -1
- package/dist/src/gateway/agent-builtin-tools.js +7 -0
- package/dist/src/gateway/agents-admin.js +1 -1
- package/dist/src/gateway/file-path-classifier.js +1 -1
- package/dist/src/gateway/global-defaults-admin.js +16 -0
- package/dist/src/gateway/hono/lib/config-payload.d.ts +15 -0
- package/dist/src/gateway/hono/lib/config-payload.js +2 -1
- package/dist/src/gateway/hono/routes/config-patch/misc.js +13 -2
- package/dist/src/gateway/hono/routes/endpoint-compatibility.d.ts +2 -0
- package/dist/src/gateway/hono/routes/endpoint-compatibility.js +20 -0
- package/dist/src/gateway/hono/routes/endpoint-tools.js +3 -2
- package/dist/src/gateway/hono/routes/lazy-bundles.js +8 -0
- package/dist/src/gateway/hono/routes/models.js +6 -3
- package/dist/src/gateway/hono/routes/voice.js +55 -1
- package/dist/src/gateway/hono/routes/workflows.js +2 -2
- package/dist/src/gateway/security/gateway-scopes.d.ts +1 -1
- package/dist/src/gateway/security/gateway-scopes.js +3 -0
- package/dist/src/gateway/service/config-coordinator.js +4 -1
- package/dist/src/gateway/service.js +5 -5
- package/dist/src/providers/auth-runtime/resolve-auth.js +1 -1
- package/dist/src/providers/index.js +2 -2
- package/dist/src/providers/model-catalog-persistence.js +11 -2
- package/dist/src/providers/model-catalog-store.js +1 -0
- package/dist/src/providers/model-catalog-types.d.ts +7 -2
- package/dist/src/providers/model-reference-auditor.js +6 -3
- package/dist/src/providers/model-registry.js +4 -1
- package/dist/src/providers/model-supplements.js +18 -2
- package/dist/src/providers/presentation.js +4 -2
- package/dist/src/providers/register-runtime-providers.js +1 -1
- package/dist/src/providers/xopc-cloud-model-source.js +10 -4
- package/dist/src/realtime/runtime.js +9 -0
- package/dist/src/storage/sqlite/index.d.ts +1 -1
- package/dist/src/storage/sqlite/index.js +2 -2
- package/dist/src/storage/sqlite/migrations/conversation-backup.d.ts +8 -0
- package/dist/src/storage/sqlite/migrations/conversation-backup.js +17 -7
- package/dist/src/storage/sqlite/migrations/conversation-windows-owners.js +5 -2
- package/dist/src/storage/sqlite/migrations/discover.js +2 -2
- package/dist/src/storage/sqlite/migrations/errors.d.ts +5 -0
- package/dist/src/storage/sqlite/migrations/errors.js +12 -2
- package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
- package/dist/src/storage/sqlite/migrations/runner.js +3 -2
- package/dist/src/storage/sqlite/schema.js +2 -2
- package/dist/src/storage/sqlite/schema.sql +2641 -526
- package/dist/src/tui/backends/embedded-backend.js +1 -1
- package/dist/src/tui/tui-commands.js +1 -1
- package/dist/src/tui/tui-startup-resources.js +1 -1
- package/dist/src/tui/tui.js +2 -2
- package/dist/src/voice/platform-catalog.d.ts +81 -0
- package/dist/src/voice/platform-catalog.js +16 -0
- package/dist/src/voice/platform-settings.d.ts +4 -0
- package/dist/src/voice/platform-settings.js +120 -0
- package/dist/src/voice/platform-streams.d.ts +12 -0
- package/dist/src/voice/platform-streams.js +250 -0
- package/dist/src/voice/realtime/omniEngine.js +8 -5
- package/dist/src/voice/realtime/omniRoute.d.ts +1 -0
- package/dist/src/voice/realtime/omniRoute.js +11 -1
- package/dist/src/voice/realtime/runtime.js +14 -6
- package/dist/src/voice/stt/providers/xopc-cloud-transcription.js +15 -8
- package/dist/src/voice/tts/providers/xopc-cloud-speech.js +12 -19
- package/dist/src/work-discovery/service.js +2 -2
- package/dist/src/workflows/service/workflow-run-service.js +1 -1
- package/package.json +5 -2
- package/skills/creative/algorithmic-art/SKILL.md +7 -0
- package/skills/creative/frontend-design/SKILL.md +8 -0
- package/skills/creative/hatch-pet/SKILL.md +7 -0
- package/skills/creative/theme-factory/SKILL.md +8 -0
- package/skills/documents/doc-coauthoring/SKILL.md +7 -0
- package/skills/documents/docx/SKILL.md +7 -0
- package/skills/documents/pdf/SKILL.md +7 -0
- package/skills/documents/pptx/SKILL.md +7 -0
- package/skills/documents/xlsx/SKILL.md +9 -1
- package/skills/engineering/build-xopc-local-app/SKILL.md +7 -0
- package/skills/engineering/define-task/SKILL.md +7 -0
- package/skills/engineering/diagnose/SKILL.md +8 -0
- package/skills/engineering/tdd/SKILL.md +8 -0
- package/skills/tools/find-skills/SKILL.md +8 -0
- package/skills/tools/github/SKILL.md +7 -0
- package/skills/tools/summarize/SKILL.md +8 -0
- package/skills/tools/webapp-testing/SKILL.md +8 -1
- package/dist/gateway/static/root/assets/agent-defaults-settings-panel-BxR5eog4.js +0 -1
- package/dist/gateway/static/root/assets/agents-Dx1om1eN.js +0 -1
- package/dist/gateway/static/root/assets/api-q1kIMCLW.js +0 -1
- package/dist/gateway/static/root/assets/automations-workspace-DUZE1NOH.js +0 -6
- package/dist/gateway/static/root/assets/capabilities-settings-panel-ohEV64hG.js +0 -8
- package/dist/gateway/static/root/assets/channels-settings-UOf9mgqt.js +0 -1
- package/dist/gateway/static/root/assets/connectors-page-BEQR0NRq.js +0 -2
- package/dist/gateway/static/root/assets/gateway-settings-CDJY1AOW.js +0 -1
- package/dist/gateway/static/root/assets/home-page-_oqo0pNR.js +0 -1
- package/dist/gateway/static/root/assets/index--YC42LAz.css +0 -2
- package/dist/gateway/static/root/assets/index-fVtuw2o9.js +0 -75
- package/dist/gateway/static/root/assets/local-app-workbench-page-Z8mpau9d.js +0 -2
- package/dist/gateway/static/root/assets/logs-page-BGOO8ouT.js +0 -2
- package/dist/gateway/static/root/assets/messages-BWANv-N-.js +0 -3
- package/dist/gateway/static/root/assets/note-detail-panel-Bm33_3xJ.js +0 -5
- package/dist/gateway/static/root/assets/notes-page-C32-xssK.js +0 -8
- package/dist/gateway/static/root/assets/project-detail-page-CZ7glGYw.js +0 -1
- package/dist/gateway/static/root/assets/projects-page-DP3ZINZz.js +0 -1
- package/dist/gateway/static/root/assets/remote-access-hub-xqJcPdOO.js +0 -1
- package/dist/gateway/static/root/assets/sessions-page-BaxIfjpm.js +0 -1
- package/dist/gateway/static/root/assets/settings-advanced-gate-Cy3Ab3Vg.js +0 -1
- package/dist/gateway/static/root/assets/setup-status-panel-BuYto2mT.js +0 -1
- package/dist/gateway/static/root/assets/shares-settings-DKtWUneq.js +0 -1
- package/dist/gateway/static/root/assets/skill-reload-api-Dn7ElMUk.js +0 -1
- package/dist/gateway/static/root/assets/skills-page-D-7UtJIc.js +0 -2
- package/dist/gateway/static/root/assets/task-detail-page-efmH43Pq.js +0 -1
- package/dist/gateway/static/root/assets/user-model-page-DByIJcQq.js +0 -2
- package/dist/gateway/static/root/assets/workflows-page-BJv3eoKR.js +0 -6
- package/dist/src/storage/sqlite/migrations/002_add_flush_columns.sql +0 -3
- package/dist/src/storage/sqlite/migrations/003_add_note_markdown_meta.sql +0 -4
- package/dist/src/storage/sqlite/migrations/004_add_session_type_metadata.sql +0 -15
- package/dist/src/storage/sqlite/migrations/005_add_note_agent_contexts.sql +0 -10
- package/dist/src/storage/sqlite/migrations/006_add_goals.sql +0 -108
- package/dist/src/storage/sqlite/migrations/007_goal_run_judge_schema.sql +0 -4
- package/dist/src/storage/sqlite/migrations/008_goal_queue_workflow_runs.sql +0 -53
- package/dist/src/storage/sqlite/migrations/009_cron_jobs.sql +0 -24
- package/dist/src/storage/sqlite/migrations/010_session_id_identity.sql +0 -30
- package/dist/src/storage/sqlite/migrations/011_goal_context_messages.sql +0 -8
- package/dist/src/storage/sqlite/migrations/012_memory_records.sql +0 -63
- package/dist/src/storage/sqlite/migrations/013_memory_trace_events.sql +0 -21
- package/dist/src/storage/sqlite/migrations/014_memory_record_governance.sql +0 -10
- package/dist/src/storage/sqlite/migrations/015_memory_trace_feedback.sql +0 -4
- package/dist/src/storage/sqlite/migrations/016_automations.sql +0 -47
- package/dist/src/storage/sqlite/migrations/017_automation_run_events.sql +0 -14
- package/dist/src/storage/sqlite/migrations/018_automation_safety.sql +0 -1
- package/dist/src/storage/sqlite/migrations/019_projects.sql +0 -40
- package/dist/src/storage/sqlite/migrations/020_project_default_agent.sql +0 -1
- package/dist/src/storage/sqlite/migrations/021_projects_fts.sql +0 -21
- package/dist/src/storage/sqlite/migrations/022_work_items.sql +0 -61
- package/dist/src/storage/sqlite/migrations/023_work_item_attachments.sql +0 -15
- package/dist/src/storage/sqlite/migrations/024_activity_events.sql +0 -62
- package/dist/src/storage/sqlite/migrations/025_project_pinned_at.sql +0 -5
- package/dist/src/storage/sqlite/migrations/026_goal_contracts.sql +0 -10
- package/dist/src/storage/sqlite/migrations/027_mobile_notifications.sql +0 -43
- package/dist/src/storage/sqlite/migrations/028_goal_evidence_requirements.sql +0 -47
- package/dist/src/storage/sqlite/migrations/029_user_understanding.sql +0 -133
- package/dist/src/storage/sqlite/migrations/030_connectors.sql +0 -94
- package/dist/src/storage/sqlite/migrations/031_connector_approvals.sql +0 -24
- package/dist/src/storage/sqlite/migrations/032_connector_webhook_deliveries.sql +0 -15
- package/dist/src/storage/sqlite/migrations/033_user_trust_policies.sql +0 -6
- package/dist/src/storage/sqlite/migrations/034_allow_global_auto_trust.sql +0 -14
- package/dist/src/storage/sqlite/migrations/035_user_profile_prompt_state.sql +0 -7
- package/dist/src/storage/sqlite/migrations/036_goal_outcome_metric.sql +0 -12
- package/dist/src/storage/sqlite/migrations/037_connected_knowledge_pipeline.sql +0 -47
- package/dist/src/storage/sqlite/migrations/038_user_owned_memory.sql +0 -68
- package/dist/src/storage/sqlite/migrations/039_memory_reference_consents.sql +0 -19
- package/dist/src/storage/sqlite/migrations/040_local_apps.sql +0 -32
- package/dist/src/storage/sqlite/migrations/041_local_app_release_lifecycle.sql +0 -17
- package/dist/src/storage/sqlite/migrations/042_work_discovery.sql +0 -41
- package/dist/src/storage/sqlite/migrations/043_local_app_acceptance_runs.sql +0 -16
- package/dist/src/storage/sqlite/migrations/044_repair_work_discovery_foreign_keys.sql +0 -75
- package/dist/src/storage/sqlite/migrations/045_extension_ui_grants.sql +0 -13
- package/dist/src/storage/sqlite/migrations/046_work_discovery_feedback.sql +0 -13
- package/dist/src/storage/sqlite/migrations/047_work_discovery_sources.sql +0 -16
- package/dist/src/storage/sqlite/migrations/048_work_understanding_investigations.sql +0 -40
- package/dist/src/storage/sqlite/migrations/049_work_understanding_threads.sql +0 -52
- package/dist/src/storage/sqlite/migrations/050_work_discovery_source_refreshes.sql +0 -15
- package/dist/src/storage/sqlite/migrations/051_focus_watches.sql +0 -26
- package/dist/src/storage/sqlite/migrations/052_proactive_insights.sql +0 -25
- package/dist/src/storage/sqlite/migrations/053_browser_recipes.sql +0 -45
- package/dist/src/storage/sqlite/migrations/054_task_outcomes.sql +0 -24
- package/dist/src/storage/sqlite/migrations/055_relationship_settings.sql +0 -14
- package/dist/src/storage/sqlite/migrations/056_task_verification.sql +0 -6
- package/dist/src/storage/sqlite/migrations/057_interaction_states.sql +0 -11
- package/dist/src/storage/sqlite/migrations/058_proactive_value.sql +0 -3
- package/dist/src/storage/sqlite/migrations/059_composer_input_history.sql +0 -8
- package/dist/src/storage/sqlite/migrations/060_remove_runtime_transcript_messages.sql +0 -45
- package/dist/src/storage/sqlite/migrations/061_drop_compaction_checkpoints.sql +0 -2
- package/dist/src/storage/sqlite/migrations/062_connector_learning_jobs.sql +0 -27
- package/dist/src/storage/sqlite/migrations/063_knowledge_collection_scopes.sql +0 -14
- package/dist/src/storage/sqlite/migrations/064_user_claims.sql +0 -60
- package/dist/src/storage/sqlite/migrations/065_knowledge_item_scope_identity.sql +0 -116
- package/dist/src/storage/sqlite/migrations/066_first_class_focuses.sql +0 -126
- package/dist/src/storage/sqlite/migrations/067_home_attention_acknowledgements.sql +0 -9
- package/dist/src/storage/sqlite/migrations/068_proactive_event_spine.sql +0 -71
- package/dist/src/storage/sqlite/migrations/069_proactive_scenario_control.sql +0 -69
- package/dist/src/storage/sqlite/migrations/070_proactive_execution.sql +0 -55
- package/dist/src/storage/sqlite/migrations/071_proactive_inbox.sql +0 -45
- package/dist/src/storage/sqlite/migrations/072_proactive_judgments.sql +0 -14
- package/dist/src/storage/sqlite/migrations/073_enable_default_proactive_scenarios.sql +0 -13
- package/dist/src/storage/sqlite/migrations/074_deduplicate_blocked_work_routing.sql +0 -5
- package/dist/src/storage/sqlite/migrations/075_connector_sync_policies.sql +0 -13
- package/dist/src/storage/sqlite/migrations/076_meeting_preparation_scenario.sql +0 -29
- package/dist/src/storage/sqlite/migrations/077_proactive_insight_fingerprints.sql +0 -4
- package/dist/src/storage/sqlite/migrations/078_discussion_captures.sql +0 -64
- package/dist/src/storage/sqlite/migrations/079_discussion_follow_up_scenario.sql +0 -29
- package/dist/src/storage/sqlite/migrations/080_task_outcome_context.sql +0 -15
- package/dist/src/storage/sqlite/migrations/081_project_monitoring_policies.sql +0 -10
- package/dist/src/storage/sqlite/migrations/082_one_click_live_discussions.sql +0 -100
- package/dist/src/storage/sqlite/migrations/083_session_task_plans.sql +0 -9
- package/dist/src/storage/sqlite/migrations/084_work_intake_lifecycle.sql +0 -26
- package/dist/src/storage/sqlite/migrations/085_task_outcome_projection.sql +0 -19
- package/dist/src/storage/sqlite/migrations/086_outcome_aggregates.sql +0 -168
- package/dist/src/storage/sqlite/migrations/087_context_snapshots.sql +0 -21
- package/dist/src/storage/sqlite/migrations/088_automation_execution_deadlines.sql +0 -5
- package/dist/src/storage/sqlite/migrations/089_automation_run_leases.sql +0 -8
- package/dist/src/storage/sqlite/migrations/090_outcome_contract_judgment.sql +0 -2
- package/dist/src/storage/sqlite/migrations/091_context_allocation.sql +0 -1
- package/dist/src/storage/sqlite/migrations/092_outcome_execution_runtime.sql +0 -88
- package/dist/src/storage/sqlite/migrations/093_remove_legacy_goals.sql +0 -174
- package/dist/src/storage/sqlite/migrations/094_outcome_judgment_and_authority.sql +0 -3
- package/dist/src/storage/sqlite/migrations/095_session_input_queue.sql +0 -35
- package/dist/src/storage/sqlite/migrations/096_drop_work_intakes.sql +0 -6
- package/dist/src/storage/sqlite/migrations/097_work_item_lifecycle.sql +0 -194
- package/dist/src/storage/sqlite/migrations/098_discussion_note_documents.sql +0 -99
- package/dist/src/storage/sqlite/migrations/099_task_model.sql +0 -500
- package/dist/src/storage/sqlite/migrations/100_project_task_taskrun.sql +0 -763
- package/dist/src/storage/sqlite/migrations/101_session_response_language.sql +0 -1
- package/dist/src/storage/sqlite/migrations/102_session_user_context_mode.sql +0 -2
- package/dist/src/storage/sqlite/migrations/103_finalize_structured_memory.sql +0 -3
- package/dist/src/storage/sqlite/migrations/104_turn_memory_feedback.sql +0 -77
- package/dist/src/storage/sqlite/migrations/105_dreaming_ledger.sql +0 -34
- package/dist/src/storage/sqlite/migrations/106_dreaming_run_reproducibility.sql +0 -2
- package/dist/src/storage/sqlite/migrations/107_connector_accounts.sql +0 -146
- package/dist/src/storage/sqlite/migrations/108_repair_user_memory_provider.sql +0 -18
- package/dist/src/storage/sqlite/migrations/109_endpoint_principals.sql +0 -14
- package/dist/src/storage/sqlite/migrations/110_session_input_origin.sql +0 -43
- package/dist/src/storage/sqlite/migrations/111_endpoint_tool_invocations.sql +0 -18
- package/dist/src/storage/sqlite/migrations/112_endpoint_instance_bindings.sql +0 -8
- package/dist/src/storage/sqlite/migrations/113_memory_evidence_single_source.sql +0 -76
- package/dist/src/storage/sqlite/migrations/114_user_context_domain.sql +0 -193
- package/dist/src/storage/sqlite/migrations/115_remove_legacy_user_context.sql +0 -6
- package/dist/src/storage/sqlite/migrations/116_structured_context_consolidation.sql +0 -38
- package/dist/src/storage/sqlite/migrations/117_unified_understanding_sources.sql +0 -110
- package/dist/src/storage/sqlite/migrations/118_task_board_rank.sql +0 -6
- package/dist/src/storage/sqlite/migrations/119_proactive_disposition.sql +0 -13
- package/dist/src/storage/sqlite/migrations/120_task_conversation.sql +0 -112
- package/dist/src/storage/sqlite/migrations/121_automation_inbox.sql +0 -24
- package/dist/src/storage/sqlite/migrations/122_automation_session_projects.sql +0 -18
- package/dist/src/storage/sqlite/migrations/123_remove_v2_compaction_boundaries.sql +0 -25
- package/dist/src/storage/sqlite/migrations/124_workflow_context_snapshots.sql +0 -15
- package/dist/src/storage/sqlite/migrations/125_project_workflow_presets.sql +0 -12
- package/dist/src/storage/sqlite/migrations/126_focus_context_governance.sql +0 -72
- package/dist/src/storage/sqlite/migrations/127_context_object_origin.sql +0 -36
- package/dist/src/storage/sqlite/migrations/128_context_extraction.sql +0 -73
- package/dist/src/storage/sqlite/migrations/129_focus_versions.sql +0 -51
- package/dist/src/storage/sqlite/migrations/130_context_evidence_provenance.sql +0 -18
- package/dist/src/storage/sqlite/migrations/131_session_input_contexts.sql +0 -2
- package/dist/src/storage/sqlite/migrations/132_transcript_source_context_metadata.sql +0 -34
- package/dist/src/storage/sqlite/migrations/133_archive_legacy_work_discovery_profile_facts.sql +0 -11
- package/dist/src/storage/sqlite/migrations/134_memory_provenance.sql +0 -18
- package/dist/src/storage/sqlite/migrations/135_user_people.sql +0 -59
- package/dist/src/storage/sqlite/migrations/136_product_notifications.sql +0 -79
- package/dist/src/storage/sqlite/migrations/137_understanding_status_audit.sql +0 -71
- package/dist/src/storage/sqlite/migrations/138_device_access.sql +0 -96
- package/dist/src/storage/sqlite/migrations/139_turn_outcome_artifact_backfill.sql +0 -231
- package/dist/src/storage/sqlite/migrations/140_endpoint_session_bindings.sql +0 -8
- package/dist/src/storage/sqlite/migrations/141_device_pairing_approval.sql +0 -17
- package/dist/src/storage/sqlite/migrations/142_session_input_instance.sql +0 -1
- package/dist/src/storage/sqlite/migrations/143_fixed_session_model.sql +0 -1
- package/dist/src/storage/sqlite/migrations/144_execution_environments.sql +0 -59
- package/dist/src/storage/sqlite/migrations/145_project_execution_mode.sql +0 -5
- package/dist/src/storage/sqlite/migrations/146_understanding_focus_exclusions.sql +0 -9
- package/dist/src/storage/sqlite/migrations/147_durable_application_state.sql +0 -39
- package/dist/src/storage/sqlite/migrations/148_user_model_foundation.sql +0 -554
- package/dist/src/storage/sqlite/migrations/149_separate_source_index_from_memory.sql +0 -18
- package/dist/src/storage/sqlite/migrations/150_session_connection_waits.sql +0 -47
- package/dist/src/storage/sqlite/migrations/151_proactive_scope_cleanup.sql +0 -6
- package/dist/src/storage/sqlite/migrations/152_proactive_scenario_contract.sql +0 -140
- package/dist/src/storage/sqlite/migrations/153_browser_control_v2.sql +0 -45
- package/dist/src/storage/sqlite/migrations/154_session_clarification_waits.sql +0 -60
- package/dist/src/storage/sqlite/migrations/155_browser_extension.sql +0 -120
- package/dist/src/storage/sqlite/migrations/156_browser_tab_bindings.sql +0 -14
- package/dist/src/storage/sqlite/migrations/157_browser_endpoint_principals.sql +0 -50
- package/dist/src/storage/sqlite/migrations/158_browser_native_enrollment.sql +0 -4
- package/dist/src/storage/sqlite/migrations/159_proactive_controls.sql +0 -68
- package/dist/src/storage/sqlite/migrations/160_proactive_web_push.sql +0 -27
- package/dist/src/storage/sqlite/migrations/161_proactive_delivery_and_lifecycle.sql +0 -51
- package/dist/src/storage/sqlite/migrations/162_proactive_product.sql +0 -7
- package/dist/src/storage/sqlite/migrations/163_proactive_follow_ups.sql +0 -29
- package/dist/src/storage/sqlite/migrations/164_browser_sessions.sql +0 -8
- package/dist/src/storage/sqlite/migrations/165_device_pairing_target.sql +0 -40
- package/dist/src/storage/sqlite/migrations/__tests__/mobile-discussion-source.test.ts +0 -20
- package/dist/src/storage/sqlite/migrations/conversation-backup.ts +0 -66
- package/dist/src/storage/sqlite/migrations/conversation-key-decoder.ts +0 -50
- package/dist/src/storage/sqlite/migrations/conversation-uuid.ts +0 -324
- package/dist/src/storage/sqlite/migrations/conversation-windows-owners.ts +0 -71
- package/dist/src/storage/sqlite/migrations/discover.ts +0 -52
- package/dist/src/storage/sqlite/migrations/errors.ts +0 -32
- package/dist/src/storage/sqlite/migrations/runner.ts +0 -204
- package/dist/src/storage/sqlite/migrations/types.ts +0 -15
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { createLogger } from "../../utils/logger/index.js";
|
|
2
2
|
import { init_logger } from "../../utils/logger.js";
|
|
3
3
|
import { init_changes, onUserContextChange } from "../../user-context/changes.js";
|
|
4
|
+
import { decodeVoiceUplinkAudioFrame, encodeVoiceAudioFrame } from "../../../packages/realtime-protocol/src/voice-audio.js";
|
|
5
|
+
import { VOICE_REALTIME_HEARTBEAT_INTERVAL_MS, VOICE_REALTIME_MAX_BINARY_FRAME_BYTES, VOICE_REALTIME_START_TIMEOUT_MS, VOICE_REALTIME_WS_PATH, init_voice, parseVoiceClientJsonFrame, parseVoiceClientMessage } from "../../../packages/realtime-protocol/src/voice.js";
|
|
4
6
|
import { getModelCatalogStore, init_model_catalog_store } from "../../providers/model-catalog-store.js";
|
|
5
7
|
import { ALIBABA_REALTIME_TTS_MODEL } from "../tts/providers/alibaba-speech.js";
|
|
6
8
|
import { resolveSpeechProviderChain } from "../tts/factory.js";
|
|
@@ -10,8 +12,6 @@ import { resolveSTTProviderChain } from "../stt/factory.js";
|
|
|
10
12
|
import { mergeSttConfigFromAppConfig } from "../stt/config.js";
|
|
11
13
|
import { voiceConversationInstructions } from "./conversation-context.js";
|
|
12
14
|
import { createPreauthConnectionBudget } from "../../gateway/security/preauth-connection-budget.js";
|
|
13
|
-
import { decodeVoiceUplinkAudioFrame, encodeVoiceAudioFrame } from "../../../packages/realtime-protocol/src/voice-audio.js";
|
|
14
|
-
import { VOICE_REALTIME_HEARTBEAT_INTERVAL_MS, VOICE_REALTIME_MAX_BINARY_FRAME_BYTES, VOICE_REALTIME_START_TIMEOUT_MS, VOICE_REALTIME_WS_PATH, parseVoiceClientJsonFrame, parseVoiceClientMessage } from "../../../packages/realtime-protocol/src/voice.js";
|
|
15
15
|
import { createAgentVoiceEngine } from "./agentEngine.js";
|
|
16
16
|
import { resolveOmniRoute } from "./omniRoute.js";
|
|
17
17
|
import { createOmniVoiceEngine } from "./omniEngine.js";
|
|
@@ -19,6 +19,7 @@ import { applyVoiceOutputGain } from "./pcm-output-gain.js";
|
|
|
19
19
|
import { createRequire } from "node:module";
|
|
20
20
|
import crypto from "node:crypto";
|
|
21
21
|
//#region src/voice/realtime/runtime.ts
|
|
22
|
+
init_voice();
|
|
22
23
|
init_logger();
|
|
23
24
|
init_changes();
|
|
24
25
|
init_model_catalog_store();
|
|
@@ -45,10 +46,16 @@ function isStreamingProvider(provider) {
|
|
|
45
46
|
}
|
|
46
47
|
function resolveStreamingStt(config, language) {
|
|
47
48
|
const sttConfig = mergeSttConfigFromAppConfig(config.tools?.media?.audio, config.tools?.media);
|
|
48
|
-
|
|
49
|
+
const configured = config.voice?.realtime?.stt;
|
|
50
|
+
const chain = configured ? [{
|
|
51
|
+
id: configured.provider,
|
|
52
|
+
model: configured.model
|
|
53
|
+
}] : resolveSTTProviderChain(sttConfig);
|
|
54
|
+
for (const entry of chain) {
|
|
49
55
|
const plugin = getMediaUnderstandingProvider(entry.id);
|
|
50
56
|
if (!isStreamingProvider(plugin)) continue;
|
|
51
|
-
const model = plugin.streamingAudio.defaultModel;
|
|
57
|
+
const model = plugin.id === "xopc-cloud" ? config.voice?.realtime?.stt?.model ?? entry.model ?? plugin.streamingAudio.defaultModel : plugin.streamingAudio.defaultModel;
|
|
58
|
+
if (!plugin.streamingAudio.models.includes(model)) continue;
|
|
52
59
|
return {
|
|
53
60
|
plugin,
|
|
54
61
|
model,
|
|
@@ -83,6 +90,7 @@ function resolveStreamingTts(config) {
|
|
|
83
90
|
providers: { [selection.provider]: {
|
|
84
91
|
...apiKey ? { apiKey } : {},
|
|
85
92
|
...slice.baseUrl ? { baseUrl: slice.baseUrl } : {},
|
|
93
|
+
...selection.model ? { model: selection.model } : {},
|
|
86
94
|
...selection.voice ? { voice: selection.voice } : selection.provider === "alibaba" ? { voice: "Cherry" } : {}
|
|
87
95
|
} }
|
|
88
96
|
};
|
|
@@ -101,7 +109,7 @@ function resolveStreamingTts(config) {
|
|
|
101
109
|
else if (provider.plugin.id === "xopc-cloud") {
|
|
102
110
|
const candidate = typeof provider.providerConfig.model === "string" ? provider.providerConfig.model : void 0;
|
|
103
111
|
const catalogModel = getModelCatalogStore().getSource("xopc-cloud")?.models.find((entry) => entry.id === candidate);
|
|
104
|
-
if (
|
|
112
|
+
if (catalogModel?.availability !== "available" || !catalogModel.voice?.modes.includes("speech.stream")) continue;
|
|
105
113
|
model = candidate;
|
|
106
114
|
} else continue;
|
|
107
115
|
if (!model) continue;
|
|
@@ -205,7 +213,7 @@ var VoiceRealtimeRuntime = class {
|
|
|
205
213
|
const sessionId = crypto.randomUUID();
|
|
206
214
|
const ticket = crypto.randomBytes(32).toString("base64url");
|
|
207
215
|
const connectionEpoch = crypto.randomInt(1, 4294967296);
|
|
208
|
-
const maxSessionMs = request.purpose === "conversation" ? Math.min(config.voice.realtime.maxConversationMs, omni?.
|
|
216
|
+
const maxSessionMs = request.purpose === "conversation" ? Math.min(config.voice.realtime.maxConversationMs, omni?.maxSessionSeconds ? omni.maxSessionSeconds * 1e3 : Number.MAX_SAFE_INTEGER) : config.voice.realtime.maxDictationMs;
|
|
209
217
|
const claim = {
|
|
210
218
|
conversationSessionId,
|
|
211
219
|
sessionId,
|
|
@@ -2,16 +2,16 @@ import { getModelCatalogStore, init_model_catalog_store } from "../../../provide
|
|
|
2
2
|
import { init_xopc_cloud_config, resolveXopcModelRouterUrl } from "../../../providers/xopc-cloud-config.js";
|
|
3
3
|
import { getProviderAuthService, init_provider_auth_service } from "../../../providers/provider-auth-service.js";
|
|
4
4
|
import { compareCatalogModels } from "../../../providers/model-catalog-ranking.js";
|
|
5
|
+
import { openPlatformStt } from "../../platform-streams.js";
|
|
6
|
+
import { platformVoiceModels, requirePlatformVoiceModel } from "../../platform-catalog.js";
|
|
5
7
|
import { registerMediaUnderstandingProvider } from "../../../media-understanding/registry.js";
|
|
6
|
-
import { openDashScopeStreamingStt } from "../../dashscope/streaming-stt-session.js";
|
|
7
8
|
//#region src/voice/stt/providers/xopc-cloud-transcription.ts
|
|
8
9
|
init_model_catalog_store();
|
|
9
10
|
init_provider_auth_service();
|
|
10
11
|
init_xopc_cloud_config();
|
|
11
|
-
const DEFAULT_STREAMING_MODEL = "qwen-audio-3.0-asr-flash-streaming";
|
|
12
12
|
function defaultModel() {
|
|
13
13
|
const source = getModelCatalogStore().getSource("xopc-cloud");
|
|
14
|
-
return source?.models.filter((model) => model.availability === "available" && model.kind === "stt").sort((left, right) => compareCatalogModels(left, right, source.recommended?.stt))[0]?.id;
|
|
14
|
+
return source?.models.filter((model) => model.availability === "available" && model.kind === "stt" && model.voice?.modes.includes("transcription")).sort((left, right) => compareCatalogModels(left, right, source.recommended?.stt))[0]?.id;
|
|
15
15
|
}
|
|
16
16
|
const xopcCloudTranscriptionProvider = {
|
|
17
17
|
id: "xopc-cloud",
|
|
@@ -22,6 +22,7 @@ const xopcCloudTranscriptionProvider = {
|
|
|
22
22
|
transcribeAudio: async (request) => {
|
|
23
23
|
const model = request.model ?? defaultModel();
|
|
24
24
|
if (!model) throw new Error("No XOPC Cloud speech-to-text model is available");
|
|
25
|
+
requirePlatformVoiceModel(model, "transcription");
|
|
25
26
|
const accessToken = await getProviderAuthService().resolveApiKey("xopc-cloud", request.signal);
|
|
26
27
|
if (!accessToken) throw new Error("XOPC Cloud authorization is unavailable");
|
|
27
28
|
const source = getModelCatalogStore().getSource("xopc-cloud");
|
|
@@ -50,22 +51,28 @@ const xopcCloudTranscriptionProvider = {
|
|
|
50
51
|
streamingAudio: {
|
|
51
52
|
inputSampleRates: [16e3],
|
|
52
53
|
turnDetection: ["server_vad"],
|
|
53
|
-
defaultModel
|
|
54
|
-
|
|
54
|
+
get defaultModel() {
|
|
55
|
+
return platformVoiceModels("transcription.stream")[0]?.id ?? "";
|
|
56
|
+
},
|
|
57
|
+
get models() {
|
|
58
|
+
return platformVoiceModels("transcription.stream").map((model) => model.id);
|
|
59
|
+
}
|
|
55
60
|
},
|
|
56
61
|
openAudioStream: async (request) => {
|
|
62
|
+
const catalogModel = requirePlatformVoiceModel(request.model, "transcription.stream");
|
|
57
63
|
const accessToken = await getProviderAuthService().resolveApiKey("xopc-cloud", request.signal);
|
|
58
64
|
if (!accessToken) throw new Error("XOPC Cloud authorization is unavailable");
|
|
59
65
|
const source = getModelCatalogStore().getSource("xopc-cloud");
|
|
60
66
|
const baseUrl = (request.baseUrl ?? source?.baseUrl ?? resolveXopcModelRouterUrl()).replace(/\/+$/, "");
|
|
61
67
|
const relayUrl = new URL(`${baseUrl}/audio/transcriptions/realtime`);
|
|
62
68
|
relayUrl.protocol = relayUrl.protocol === "https:" ? "wss:" : "ws:";
|
|
63
|
-
relayUrl.searchParams.set("model", request.model
|
|
64
|
-
|
|
69
|
+
relayUrl.searchParams.set("model", request.model);
|
|
70
|
+
relayUrl.searchParams.set("service_version", String(catalogModel.voice.serviceVersion));
|
|
71
|
+
return openPlatformStt({
|
|
65
72
|
...request,
|
|
66
73
|
apiKey: accessToken,
|
|
67
74
|
baseUrl: relayUrl.toString(),
|
|
68
|
-
model: request.model
|
|
75
|
+
model: request.model
|
|
69
76
|
});
|
|
70
77
|
}
|
|
71
78
|
};
|
|
@@ -3,7 +3,8 @@ import { init_xopc_cloud_config, resolveXopcModelRouterUrl } from "../../../prov
|
|
|
3
3
|
import { getProviderAuthService, init_provider_auth_service } from "../../../providers/provider-auth-service.js";
|
|
4
4
|
import { compareCatalogModels } from "../../../providers/model-catalog-ranking.js";
|
|
5
5
|
import { registerSpeechProvider } from "../speech-registry.js";
|
|
6
|
-
import {
|
|
6
|
+
import { openPlatformTts } from "../../platform-streams.js";
|
|
7
|
+
import { requirePlatformVoiceModel } from "../../platform-catalog.js";
|
|
7
8
|
//#region src/voice/tts/providers/xopc-cloud-speech.ts
|
|
8
9
|
init_model_catalog_store();
|
|
9
10
|
init_provider_auth_service();
|
|
@@ -37,11 +38,11 @@ const xopcCloudSpeechProvider = {
|
|
|
37
38
|
resolveConfig: ({ rawConfig }) => {
|
|
38
39
|
const raw = rawConfig["xopc-cloud"];
|
|
39
40
|
const slice = raw && typeof raw === "object" && !Array.isArray(raw) ? raw : {};
|
|
40
|
-
const model = typeof slice.model === "string" ? slice.model : availableModels()
|
|
41
|
+
const model = typeof slice.model === "string" ? slice.model : availableModels().find((model) => model.voice?.modes.includes("speech"))?.id;
|
|
41
42
|
const catalogModel = availableModels().find((entry) => entry.id === model);
|
|
42
43
|
return {
|
|
43
44
|
model,
|
|
44
|
-
voice: typeof slice.voice === "string" ? slice.voice : catalogModel?.
|
|
45
|
+
voice: typeof slice.voice === "string" ? slice.voice : catalogModel?.voice?.defaultVoice,
|
|
45
46
|
speed: readSpeed(slice.speed),
|
|
46
47
|
instructions: typeof slice.instructions === "string" && slice.instructions.trim() ? slice.instructions.trim() : void 0,
|
|
47
48
|
baseUrl: typeof slice.baseUrl === "string" ? slice.baseUrl : getModelCatalogStore().getSource("xopc-cloud")?.baseUrl ?? resolveXopcModelRouterUrl()
|
|
@@ -54,18 +55,10 @@ const xopcCloudSpeechProvider = {
|
|
|
54
55
|
listVoices: async ({ providerConfig }) => {
|
|
55
56
|
const config = readConfig(providerConfig ?? {});
|
|
56
57
|
if (!config.model) return [];
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
signal: AbortSignal.timeout(3e4),
|
|
62
|
-
redirect: "error"
|
|
63
|
-
});
|
|
64
|
-
if (!response.ok) return [];
|
|
65
|
-
return ((await response.json().catch(() => null))?.data ?? []).filter((voice) => typeof voice.id === "string").map((voice) => ({
|
|
66
|
-
id: voice.id,
|
|
67
|
-
...typeof voice.name === "string" ? { name: voice.name } : {}
|
|
68
|
-
}));
|
|
58
|
+
return availableModels().find((model) => model.id === config.model)?.voice?.voices.map(({ id, name }) => ({
|
|
59
|
+
id,
|
|
60
|
+
name
|
|
61
|
+
})) ?? [];
|
|
69
62
|
},
|
|
70
63
|
synthesize: async (request) => {
|
|
71
64
|
const config = readConfig(request.providerConfig);
|
|
@@ -73,6 +66,7 @@ const xopcCloudSpeechProvider = {
|
|
|
73
66
|
const voice = typeof request.providerOverrides?.voice === "string" ? request.providerOverrides.voice : config.voice;
|
|
74
67
|
if (!model || !voice) throw new Error("XOPC Cloud TTS model or voice is unavailable");
|
|
75
68
|
const catalogModel = availableModels().find((entry) => entry.id === model);
|
|
69
|
+
requirePlatformVoiceModel(model, "speech");
|
|
76
70
|
if (!catalogModel) throw new Error(`XOPC Cloud TTS model is unavailable: ${model}`);
|
|
77
71
|
const speed = readSpeed(request.providerOverrides?.speed ?? config.speed);
|
|
78
72
|
const instructions = typeof request.providerOverrides?.instructions === "string" ? request.providerOverrides.instructions.trim() : config.instructions;
|
|
@@ -115,18 +109,17 @@ const xopcCloudSpeechProvider = {
|
|
|
115
109
|
const model = typeof request.providerOverrides?.model === "string" ? request.providerOverrides.model : config.model;
|
|
116
110
|
const voice = typeof request.providerOverrides?.voice === "string" ? request.providerOverrides.voice : config.voice;
|
|
117
111
|
if (!model || !voice) throw new Error("XOPC Cloud realtime TTS model or voice is unavailable");
|
|
118
|
-
const catalogModel =
|
|
119
|
-
if (!catalogModel?.tts?.streaming || !catalogModel.tts.outputFormats.includes("pcm")) throw new Error(`XOPC Cloud TTS model does not support PCM streaming: ${model}`);
|
|
112
|
+
const catalogModel = requirePlatformVoiceModel(model, "speech.stream");
|
|
120
113
|
const token = await getProviderAuthService().resolveApiKey("xopc-cloud", request.signal);
|
|
121
114
|
if (!token) throw new Error("XOPC Cloud authorization is unavailable");
|
|
122
115
|
const relayUrl = new URL(`${config.baseUrl.replace(/\/+$/, "")}/audio/speech/realtime`);
|
|
123
116
|
relayUrl.protocol = relayUrl.protocol === "https:" ? "wss:" : "ws:";
|
|
124
117
|
relayUrl.searchParams.set("model", model);
|
|
118
|
+
relayUrl.searchParams.set("service_version", String(catalogModel.voice.serviceVersion));
|
|
125
119
|
const instructions = typeof request.providerOverrides?.instructions === "string" ? request.providerOverrides.instructions.trim() : config.instructions;
|
|
126
|
-
return
|
|
120
|
+
return openPlatformTts({
|
|
127
121
|
apiKey: token,
|
|
128
122
|
baseUrl: relayUrl.toString(),
|
|
129
|
-
model,
|
|
130
123
|
voice,
|
|
131
124
|
text: request.text,
|
|
132
125
|
...instructions ? { instructions } : {},
|
|
@@ -7,14 +7,14 @@ import { ActivityService } from "../activity/service.js";
|
|
|
7
7
|
import { getAgentDefaultModelRef, init_schema } from "../config/schema.js";
|
|
8
8
|
import { init_session_key, resolveConversationId } from "../routing/session-key.js";
|
|
9
9
|
import { getDefaultAgentId, init_resolve_route } from "../routing/resolve-route.js";
|
|
10
|
-
import { resolveEffectiveAgentProfile } from "../config/agent-profile.js";
|
|
11
10
|
import { init_providers, resolveModel } from "../providers/index.js";
|
|
11
|
+
import { isLocalModelBaseUrl } from "../providers/model-call.js";
|
|
12
|
+
import { resolveEffectiveAgentProfile } from "../config/agent-profile.js";
|
|
12
13
|
import { writeKnowledgeItem } from "../knowledge-memory/repository.js";
|
|
13
14
|
import "../knowledge-memory/index.js";
|
|
14
15
|
import { createPriorityWindow, createUserGoal } from "../user-model/goals.js";
|
|
15
16
|
import { getAssertionSlot, getUserAssertion, linkAssertionEvidence, reconcileAssertion, setAssertionStatus } from "../user-model/repository.js";
|
|
16
17
|
import "../user-model/index.js";
|
|
17
|
-
import { isLocalModelBaseUrl } from "../providers/model-call.js";
|
|
18
18
|
import { allowsRemoteSourceProcessing } from "../user-context/sources/processing-policy.js";
|
|
19
19
|
import { analyzeUnderstandingSources, analyzeWorkContext, workDiscoveryResultMarkdown } from "./analyzer.js";
|
|
20
20
|
import { createUnderstandingSourceRun, getUnderstandingSourceRun, updateUnderstandingSourceGrantCheckpoint, updateUnderstandingSourceGrantPolicies, updateUnderstandingSourceRun, upsertUnderstandingSourceGrant } from "../user-context/sources/repository.js";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { TaskRunRepository, init_task_run_repository } from "../../tasks/task-run-repository.js";
|
|
2
2
|
import { init_conversation_repository, resolveRoutedConversation } from "../../storage/sqlite/conversation-repository.js";
|
|
3
3
|
import { getDefaultAgentId, init_resolve_route } from "../../routing/resolve-route.js";
|
|
4
|
-
import { extractProfileAgentId, resolveEffectiveAgentProfile, resolveEffectiveAgentProfileForSession } from "../../config/agent-profile.js";
|
|
5
4
|
import { init_providers, resolveModel } from "../../providers/index.js";
|
|
5
|
+
import { extractProfileAgentId, resolveEffectiveAgentProfile, resolveEffectiveAgentProfileForSession } from "../../config/agent-profile.js";
|
|
6
6
|
import { TaskRepository } from "../../tasks/task-repository.js";
|
|
7
7
|
import { TaskConversationRepository } from "../../tasks/task-conversation-repository.js";
|
|
8
8
|
import { getProjectWorkspacePathForSession } from "../../projects/workspace.js";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xopcai/xopc",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.292",
|
|
4
4
|
"description": "Local-first personal AI assistant with reviewable user understanding, durable tasks, workflows, automations, and local or cloud models.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/src/index.js",
|
|
@@ -166,7 +166,9 @@
|
|
|
166
166
|
"vitepress": "^1.6.4",
|
|
167
167
|
"vitest": "4.1.5",
|
|
168
168
|
"vue": "^3.5.35",
|
|
169
|
+
"@xopcai/computer-control-contract": "0.1.0",
|
|
169
170
|
"@xopcai/browser-control-contract": "0.1.0",
|
|
171
|
+
"@xopcai/endpoint-tools-client": "0.0.0",
|
|
170
172
|
"@xopcai/endpoint-tools-protocol": "0.0.0",
|
|
171
173
|
"@xopcai/gateway-contract": "0.0.0",
|
|
172
174
|
"@xopcai/realtime-protocol": "0.0.0",
|
|
@@ -236,7 +238,8 @@
|
|
|
236
238
|
"build:extensions-ui": "node scripts/build-extensions-ui.mjs",
|
|
237
239
|
"pack:browser-ext": "pnpm -C packages/browser-ext run pack",
|
|
238
240
|
"sync:browser-ext-version": "node scripts/sync-browser-ext-version.mjs",
|
|
239
|
-
"
|
|
241
|
+
"computer:driver:setup": "node scripts/setup-computer-driver.mjs",
|
|
242
|
+
"electron:native:build": "node scripts/build-voice-hotkey-helper.mjs && node scripts/setup-computer-driver.mjs",
|
|
240
243
|
"electron:dev": "pnpm run electron:native:build && cross-env ELECTRON_ENTRY=out/main/index.js electron-vite dev",
|
|
241
244
|
"electron:vite:build": "cross-env ELECTRON_ENTRY=out/main/index.js electron-vite build",
|
|
242
245
|
"electron:vite:build:package": "cross-env ELECTRON_ENTRY=out/main/index.js ELECTRON_VITE_SKIP_RENDERER=1 electron-vite build",
|
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
name: algorithmic-art
|
|
3
3
|
description: Design reproducible, interactive generative-art studies as self-contained browser artifacts or workspace assets.
|
|
4
4
|
metadata:
|
|
5
|
+
i18n:
|
|
6
|
+
en:
|
|
7
|
+
name: "Algorithmic Art"
|
|
8
|
+
description: "Design reproducible, interactive generative-art studies as self-contained browser artifacts or workspace assets."
|
|
9
|
+
zh-CN:
|
|
10
|
+
name: "算法艺术"
|
|
11
|
+
description: "设计可复现、可交互的生成艺术作品,并输出为独立浏览器作品或工作区资产。"
|
|
5
12
|
xopc:
|
|
6
13
|
emoji: "✨"
|
|
7
14
|
requires_tools:
|
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: frontend-design
|
|
3
3
|
description: Create distinctive, production-grade frontend interfaces, pages, components, dashboards, and HTML/CSS layouts.
|
|
4
|
+
metadata:
|
|
5
|
+
i18n:
|
|
6
|
+
en:
|
|
7
|
+
name: "Frontend Design"
|
|
8
|
+
description: "Create distinctive, production-grade frontend interfaces, pages, components, dashboards, and HTML/CSS layouts."
|
|
9
|
+
zh-CN:
|
|
10
|
+
name: "前端设计"
|
|
11
|
+
description: "创建风格鲜明、可用于生产的前端界面、页面、组件、仪表盘及 HTML/CSS 布局。"
|
|
4
12
|
license: Complete terms in LICENSE.txt
|
|
5
13
|
---
|
|
6
14
|
|
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
name: hatch-pet
|
|
3
3
|
description: Create and install a custom animated xopc desktop pet from a user description.
|
|
4
4
|
metadata:
|
|
5
|
+
i18n:
|
|
6
|
+
en:
|
|
7
|
+
name: "Hatch Pet"
|
|
8
|
+
description: "Create and install a custom animated XOPC desktop pet from a user description."
|
|
9
|
+
zh-CN:
|
|
10
|
+
name: "孵化桌面宠物"
|
|
11
|
+
description: "根据用户描述创建并安装自定义的 XOPC 动画桌面宠物。"
|
|
5
12
|
xopc:
|
|
6
13
|
activates_capabilities:
|
|
7
14
|
- desktop-pet-authoring
|
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: theme-factory
|
|
3
3
|
description: Apply or generate cohesive color and font themes for artifacts, slides, documents, reports, and landing pages.
|
|
4
|
+
metadata:
|
|
5
|
+
i18n:
|
|
6
|
+
en:
|
|
7
|
+
name: "Theme Factory"
|
|
8
|
+
description: "Apply or generate cohesive color and font themes for artifacts, slides, documents, reports, and landing pages."
|
|
9
|
+
zh-CN:
|
|
10
|
+
name: "主题工厂"
|
|
11
|
+
description: "为作品、幻灯片、文档、报告和落地页应用或生成协调统一的配色与字体主题。"
|
|
4
12
|
license: Complete terms in LICENSE.txt
|
|
5
13
|
---
|
|
6
14
|
|
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
name: doc-coauthoring
|
|
3
3
|
description: Co-author substantial proposals, specifications, RFCs, and decision documents through context, structure, and reader-focused review.
|
|
4
4
|
metadata:
|
|
5
|
+
i18n:
|
|
6
|
+
en:
|
|
7
|
+
name: "Document Co-authoring"
|
|
8
|
+
description: "Co-author substantial proposals, specifications, RFCs, and decision documents through context, structure, and reader-focused review."
|
|
9
|
+
zh-CN:
|
|
10
|
+
name: "文档协作撰写"
|
|
11
|
+
description: "通过梳理背景、搭建结构和面向读者的审阅,共同撰写提案、规范、RFC 与决策文档。"
|
|
5
12
|
xopc:
|
|
6
13
|
emoji: "🤝"
|
|
7
14
|
requires_tools:
|
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
name: docx
|
|
3
3
|
description: Create, inspect, edit, render, and validate Word DOCX artifacts while preserving templates and tracked content.
|
|
4
4
|
metadata:
|
|
5
|
+
i18n:
|
|
6
|
+
en:
|
|
7
|
+
name: "Word Documents"
|
|
8
|
+
description: "Create, inspect, edit, render, and validate Word DOCX artifacts while preserving templates and tracked content."
|
|
9
|
+
zh-CN:
|
|
10
|
+
name: "Word 文档"
|
|
11
|
+
description: "在保留模板和修订内容的同时,创建、检查、编辑、渲染并验证 Word DOCX 文档。"
|
|
5
12
|
xopc:
|
|
6
13
|
emoji: "📝"
|
|
7
14
|
requires_tools:
|
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
name: pdf
|
|
3
3
|
description: Read, create, inspect, combine, split, rotate, and validate PDF artifacts in the current workspace.
|
|
4
4
|
metadata:
|
|
5
|
+
i18n:
|
|
6
|
+
en:
|
|
7
|
+
name: "PDF Documents"
|
|
8
|
+
description: "Read, create, inspect, combine, split, rotate, and validate PDF artifacts in the current workspace."
|
|
9
|
+
zh-CN:
|
|
10
|
+
name: "PDF 文档"
|
|
11
|
+
description: "在当前工作区中读取、创建、检查、合并、拆分、旋转并验证 PDF 文档。"
|
|
5
12
|
xopc:
|
|
6
13
|
emoji: "📄"
|
|
7
14
|
requires_tools:
|
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
name: pptx
|
|
3
3
|
description: Create, inspect, edit, render, and validate PowerPoint PPTX presentations with deliberate visual hierarchy.
|
|
4
4
|
metadata:
|
|
5
|
+
i18n:
|
|
6
|
+
en:
|
|
7
|
+
name: "PowerPoint Presentations"
|
|
8
|
+
description: "Create, inspect, edit, render, and validate PowerPoint PPTX presentations with deliberate visual hierarchy."
|
|
9
|
+
zh-CN:
|
|
10
|
+
name: "PowerPoint 演示文稿"
|
|
11
|
+
description: "创建、检查、编辑、渲染并验证具有清晰视觉层级的 PowerPoint PPTX 演示文稿。"
|
|
5
12
|
xopc:
|
|
6
13
|
emoji: "📊"
|
|
7
14
|
requires_tools:
|
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: xlsx
|
|
3
3
|
description: "Create, read, edit, clean, format, chart, or convert spreadsheet files such as .xlsx, .xlsm, .csv, and .tsv."
|
|
4
|
+
metadata:
|
|
5
|
+
i18n:
|
|
6
|
+
en:
|
|
7
|
+
name: "Spreadsheets"
|
|
8
|
+
description: "Create, read, edit, clean, format, chart, or convert spreadsheet files such as .xlsx, .xlsm, .csv, and .tsv."
|
|
9
|
+
zh-CN:
|
|
10
|
+
name: "电子表格"
|
|
11
|
+
description: "创建、读取、编辑、清理、格式化、绘图或转换 .xlsx、.xlsm、.csv 和 .tsv 等电子表格文件。"
|
|
4
12
|
license: Proprietary. LICENSE.txt has complete terms
|
|
5
13
|
---
|
|
6
14
|
|
|
@@ -289,4 +297,4 @@ The script returns JSON with error details:
|
|
|
289
297
|
**For Excel files themselves**:
|
|
290
298
|
- Add comments to cells with complex formulas or important assumptions
|
|
291
299
|
- Document data sources for hardcoded values
|
|
292
|
-
- Include notes for key calculations and model sections
|
|
300
|
+
- Include notes for key calculations and model sections
|
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
name: build-xopc-local-app
|
|
3
3
|
description: Build and iteratively improve a user-owned local XOPC app while preserving its stable extension identity, UI sandbox, and Phase 1 capability boundary.
|
|
4
4
|
metadata:
|
|
5
|
+
i18n:
|
|
6
|
+
en:
|
|
7
|
+
name: "Build XOPC Local App"
|
|
8
|
+
description: "Build and iteratively improve a user-owned local XOPC app while preserving its stable extension identity, UI sandbox, and Phase 1 capability boundary."
|
|
9
|
+
zh-CN:
|
|
10
|
+
name: "构建 XOPC 本地应用"
|
|
11
|
+
description: "构建并迭代改进用户拥有的 XOPC 本地应用,同时保持稳定的扩展身份、UI 沙箱和第一阶段能力边界。"
|
|
5
12
|
xopc:
|
|
6
13
|
emoji: "🧩"
|
|
7
14
|
requires_tools:
|
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
name: define-task
|
|
3
3
|
description: Define, create, or refine an explicitly requested persistent xopc Task with a verifiable Task Contract; do not use for ordinary one-off work.
|
|
4
4
|
metadata:
|
|
5
|
+
i18n:
|
|
6
|
+
en:
|
|
7
|
+
name: "Define Task"
|
|
8
|
+
description: "Define, create, or refine an explicitly requested persistent XOPC Task with a verifiable Task Contract; do not use for ordinary one-off work."
|
|
9
|
+
zh-CN:
|
|
10
|
+
name: "定义任务"
|
|
11
|
+
description: "为用户明确要求的持久 XOPC 任务定义、创建或完善可验证的任务契约;不用于普通的一次性工作。"
|
|
5
12
|
xopc:
|
|
6
13
|
emoji: "🎯"
|
|
7
14
|
requires_tools:
|
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: diagnose
|
|
3
3
|
description: Disciplined reproduce → minimise → hypothesise → instrument → fix loop for hard bugs and performance regressions.
|
|
4
|
+
metadata:
|
|
5
|
+
i18n:
|
|
6
|
+
en:
|
|
7
|
+
name: "Diagnose"
|
|
8
|
+
description: "A disciplined reproduce, minimize, hypothesize, instrument, and fix loop for difficult bugs and performance regressions."
|
|
9
|
+
zh-CN:
|
|
10
|
+
name: "问题诊断"
|
|
11
|
+
description: "以复现、最小化、提出假设、插桩验证和修复为闭环,诊断疑难缺陷与性能回退。"
|
|
4
12
|
---
|
|
5
13
|
|
|
6
14
|
# Diagnose
|
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: tdd
|
|
3
3
|
description: Test-driven development using a red-green-refactor loop for features, bug fixes, and integration tests.
|
|
4
|
+
metadata:
|
|
5
|
+
i18n:
|
|
6
|
+
en:
|
|
7
|
+
name: "Test-Driven Development"
|
|
8
|
+
description: "Test-driven development using a red-green-refactor loop for features, bug fixes, and integration tests."
|
|
9
|
+
zh-CN:
|
|
10
|
+
name: "测试驱动开发"
|
|
11
|
+
description: "使用红灯、绿灯、重构循环完成新功能、缺陷修复和集成测试。"
|
|
4
12
|
---
|
|
5
13
|
|
|
6
14
|
# Test-Driven Development
|
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: find-skills
|
|
3
3
|
description: Find and evaluate installable agent skills across the XOPC Store, ClawHub, and skills.sh. Use when a user asks whether a skill exists, wants capability recommendations, or wants help choosing a high-value skill.
|
|
4
|
+
metadata:
|
|
5
|
+
i18n:
|
|
6
|
+
en:
|
|
7
|
+
name: "Find Skills"
|
|
8
|
+
description: "Find and evaluate installable agent skills across the XOPC Store, ClawHub, and skills.sh."
|
|
9
|
+
zh-CN:
|
|
10
|
+
name: "查找技能"
|
|
11
|
+
description: "在 XOPC Store、ClawHub 和 skills.sh 中查找并评估可安装的智能体技能。"
|
|
4
12
|
---
|
|
5
13
|
|
|
6
14
|
# Find Skills
|
|
@@ -3,6 +3,13 @@ name: github
|
|
|
3
3
|
description: "Interact with GitHub using the `gh` CLI for issues, PRs, CI runs, and advanced API queries."
|
|
4
4
|
license: MIT
|
|
5
5
|
metadata:
|
|
6
|
+
i18n:
|
|
7
|
+
en:
|
|
8
|
+
name: "GitHub"
|
|
9
|
+
description: "Interact with GitHub using the gh CLI for issues, pull requests, CI runs, and advanced API queries."
|
|
10
|
+
zh-CN:
|
|
11
|
+
name: "GitHub"
|
|
12
|
+
description: "使用 gh CLI 操作 GitHub 的 Issue、拉取请求、CI 任务和高级 API 查询。"
|
|
6
13
|
xopc:
|
|
7
14
|
requires_toolsets: [terminal]
|
|
8
15
|
requires:
|
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: summarize
|
|
3
3
|
description: Summarize URLs, files, and YouTube videos.
|
|
4
|
+
metadata:
|
|
5
|
+
i18n:
|
|
6
|
+
en:
|
|
7
|
+
name: "Summarize"
|
|
8
|
+
description: "Summarize URLs, files, and YouTube videos."
|
|
9
|
+
zh-CN:
|
|
10
|
+
name: "内容摘要"
|
|
11
|
+
description: "总结网页链接、文件和 YouTube 视频内容。"
|
|
4
12
|
license: MIT
|
|
5
13
|
---
|
|
6
14
|
|
|
@@ -3,6 +3,13 @@ name: webapp-testing
|
|
|
3
3
|
description: Test local web applications with Playwright scripts, screenshots, browser logs, and UI behavior checks.
|
|
4
4
|
license: Complete terms in LICENSE.txt
|
|
5
5
|
metadata:
|
|
6
|
+
i18n:
|
|
7
|
+
en:
|
|
8
|
+
name: "Web App Testing"
|
|
9
|
+
description: "Test local web applications with Playwright scripts, screenshots, browser logs, and UI behavior checks."
|
|
10
|
+
zh-CN:
|
|
11
|
+
name: "Web 应用测试"
|
|
12
|
+
description: "使用 Playwright 脚本、截图、浏览器日志和界面行为检查来测试本地 Web 应用。"
|
|
6
13
|
xopc:
|
|
7
14
|
requires_toolsets: [terminal]
|
|
8
15
|
---
|
|
@@ -96,4 +103,4 @@ with sync_playwright() as p:
|
|
|
96
103
|
- **examples/** - Examples showing common patterns:
|
|
97
104
|
- `element_discovery.py` - Discovering buttons, links, and inputs on a page
|
|
98
105
|
- `static_html_automation.py` - Using file:// URLs for local HTML
|
|
99
|
-
- `console_logging.py` - Capturing console logs during automation
|
|
106
|
+
- `console_logging.py` - Capturing console logs during automation
|