@xopcai/xopc 0.0.250 → 0.0.252
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 +8 -5
- package/README.zh-CN.md +8 -5
- package/dist/browser-ext/dist/background.js +358 -768
- package/dist/browser-ext/manifest.json +1 -2
- package/dist/extensions/telegram/xopc.extension.json +1 -1
- package/dist/gateway/static/root/assets/{activity-store-DfBjTSo9.js → activity-store-w3eq3YpP.js} +1 -1
- package/dist/gateway/static/root/assets/{agent-avatar-dicebear-BN6FJXkJ.js → agent-avatar-dicebear-k039rbUz.js} +1 -1
- package/dist/gateway/static/root/assets/{agent-defaults-settings-panel-C7rZH1A2.js → agent-defaults-settings-panel-D4J4oq8p.js} +1 -1
- package/dist/gateway/static/root/assets/{agents-CgGaoo4z.js → agents-Bmth_bSQ.js} +1 -1
- package/dist/gateway/static/root/assets/{api-zxpcJfgj.js → api-2joIfbrH.js} +1 -1
- package/dist/gateway/static/root/assets/{app-management-settings-panel-D2gMshuS.js → app-management-settings-panel-ByJ4kiD0.js} +1 -1
- package/dist/gateway/static/root/assets/{appearance-settings-wMu0jSKx.js → appearance-settings-BK2Jga-B.js} +1 -1
- package/dist/gateway/static/root/assets/apps-page-B3ky7cWU.js +1 -0
- package/dist/gateway/static/root/assets/{archive-plugin-u6EE3JV8.js → archive-plugin-DMDKtYpi.js} +1 -1
- package/dist/gateway/static/root/assets/{attachment-load-DbJurnv-.js → attachment-load-B764Ql3Z.js} +1 -1
- package/dist/gateway/static/root/assets/{automations-page-Ew_e5HDn.js → automations-page-D-sO8CZe.js} +1 -1
- package/dist/gateway/static/root/assets/automations-workspace-Ds5-_-9z.js +6 -0
- package/dist/gateway/static/root/assets/{binary-plugins-DtDFNfPM.js → binary-plugins-fxtzYRpv.js} +1 -1
- package/dist/gateway/static/root/assets/{block-editor-CnAwmabq.js → block-editor-Bcjtvckh.js} +50 -50
- package/dist/gateway/static/root/assets/browser-automation-inputs-BSmnusjD.js +1 -0
- package/dist/gateway/static/root/assets/browser-automations-page-DC_OQIBk.js +3 -0
- package/dist/gateway/static/root/assets/browser-settings-page-C1FojyG6.js +3 -0
- package/dist/gateway/static/root/assets/capabilities-settings-panel-Bs59UCut.js +7 -0
- package/dist/gateway/static/root/assets/channels-settings-CM9vNmoo.js +1 -0
- package/dist/gateway/static/root/assets/{channels-status-swr-CX-yWwLD.js → channels-status-swr-BuWjIG_a.js} +1 -1
- package/dist/gateway/static/root/assets/{chat-terminal-dock-CryTDNdD.js → chat-terminal-dock-5SevEo_I.js} +2 -2
- package/dist/gateway/static/root/assets/connectors-page-BPZ44D-V.js +2 -0
- package/dist/gateway/static/root/assets/{cron-expression-ji5aWrjG.js → cron-expression-DtsfalBM.js} +1 -1
- package/dist/gateway/static/root/assets/{date-picker-Dro_w3eX.js → date-picker-tDEQV5TP.js} +1 -1
- package/dist/gateway/static/root/assets/{dependency-picker-Ce19KKnX.js → dependency-picker-HhNwg0Y2.js} +1 -1
- package/dist/gateway/static/root/assets/{desktop-pet-DsSi-3uZ.js → desktop-pet-acU4Li-C.js} +1 -1
- package/dist/gateway/static/root/assets/{desktop-pet-settings-8WQ4woJy.js → desktop-pet-settings-R84AR0Pe.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-debug-page-CgvEBfLZ.js → extension-debug-page-CrLlRkSN.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-page-DkznBbMj.js → extension-page-BH5lmZXE.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-settings-page-BOjhchK2.js → extension-settings-page-BscjNAd1.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-config-swr-CMNbl0FZ.js → gateway-config-swr-9HidFZUd.js} +1 -1
- package/dist/gateway/static/root/assets/gateway-settings-BxLcW6ij.js +1 -0
- package/dist/gateway/static/root/assets/{gateway-startup-retry-CR7Xg8As.js → gateway-startup-retry-DRCPXONr.js} +1 -1
- package/dist/gateway/static/root/assets/heartbeat-settings-K5Zhl2rx.js +1 -0
- package/dist/gateway/static/root/assets/home-page-CZAg9RBv.js +1 -0
- package/dist/gateway/static/root/assets/{image-generation-api-C5mn73ca.js → image-generation-api-CR6Kle8H.js} +1 -1
- package/dist/gateway/static/root/assets/index-D4Ykja-U.js +72 -0
- package/dist/gateway/static/root/assets/index-zIJ3AXgR.css +2 -0
- package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-BYhfzsqe.js → keyboard-shortcuts-settings-B1QR49-7.js} +1 -1
- package/dist/gateway/static/root/assets/languages-5WaOu0Lf.js +2 -0
- package/dist/gateway/static/root/assets/local-app-workbench-page-wicoV-ti.js +2 -0
- package/dist/gateway/static/root/assets/{local-apps-page-vBlknU7C.js → local-apps-page-C74It-T8.js} +1 -1
- package/dist/gateway/static/root/assets/{locale-store-CF4erhjB.js → locale-store-BfZGZKSs.js} +1 -1
- package/dist/gateway/static/root/assets/logs-page-xX-7S49A.js +2 -0
- package/dist/gateway/static/root/assets/{management-settings-Dnx6mSNe.js → management-settings-1kNnYL97.js} +1 -1
- package/dist/gateway/static/root/assets/markdown-editor-BjMTIM-m.js +1 -0
- package/dist/gateway/static/root/assets/{markdown-view-CQvzsE24.js → markdown-view-DjiwT28p.js} +2 -2
- package/dist/gateway/static/root/assets/{media-plugins-DrMYeHe7.js → media-plugins-B5c0AoS1.js} +1 -1
- package/dist/gateway/static/root/assets/messages-DaIwVWar.js +3 -0
- package/dist/gateway/static/root/assets/{mobile-pairing-wizard-AKgGy3Kx.js → mobile-pairing-wizard-CsIZqK51.js} +1 -1
- package/dist/gateway/static/root/assets/note-detail-panel-CfWxopl4.js +5 -0
- package/dist/gateway/static/root/assets/notes-page-CYN-LCHJ.js +8 -0
- package/dist/gateway/static/root/assets/{page-tabs-CX9T71by.js → page-tabs-CqJN6Ljz.js} +1 -1
- package/dist/gateway/static/root/assets/{preview-open-alternatives-DvEHoimN.js → preview-open-alternatives-DqRIGxf4.js} +1 -1
- package/dist/gateway/static/root/assets/{product-open-page-COcr_NUJ.js → product-open-page-DE2nPE_K.js} +1 -1
- package/dist/gateway/static/root/assets/project-detail-page-B5G3LzDq.js +1 -0
- package/dist/gateway/static/root/assets/projects-page-CuVK2mKu.js +1 -0
- package/dist/gateway/static/root/assets/{registry-api-BsRBlji7.js → registry-api-Bpy8XX-5.js} +1 -1
- package/dist/gateway/static/root/assets/remote-access-hub-Dnd73xWt.js +1 -0
- package/dist/gateway/static/root/assets/{runtime-tools-settings-panel-CQ13P-mS.js → runtime-tools-settings-panel-Bb4b74-P.js} +2 -2
- package/dist/gateway/static/root/assets/{schema-form-BUVyTpZj.js → schema-form-DoPU5j3J.js} +1 -1
- package/dist/gateway/static/root/assets/sessions-page-XL4LyKZe.js +1 -0
- package/dist/gateway/static/root/assets/settings-advanced-gate-0ForzDSS.js +1 -0
- package/dist/gateway/static/root/assets/{settings-form-section-DVY-8_B9.js → settings-form-section-Ci-9WajJ.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-page-CdiVYyTl.js → settings-page-CL_2F95D.js} +1 -1
- package/dist/gateway/static/root/assets/setup-status-panel-DVws6XZc.js +1 -0
- package/dist/gateway/static/root/assets/{share-preview-page-C88YLKm4.js → share-preview-page-XUA3oKQX.js} +1 -1
- package/dist/gateway/static/root/assets/shares-settings-BwDvcacF.js +1 -0
- package/dist/gateway/static/root/assets/skill-reload-api-BJjrATqE.js +1 -0
- package/dist/gateway/static/root/assets/{skills-page-DLir1nM0.js → skills-page-sXXAZDc9.js} +1 -1
- package/dist/gateway/static/root/assets/{skills-page.utils-BMZAfS3G.js → skills-page.utils-DD79Bl1I.js} +1 -1
- package/dist/gateway/static/root/assets/source-workspace-editor-CVWzt0oT.js +1 -0
- package/dist/gateway/static/root/assets/{system-settings-panel-BM8ivYan.js → system-settings-panel-BEH64qBV.js} +1 -1
- package/dist/gateway/static/root/assets/task-detail-page-0jxMi75O.js +1 -0
- package/dist/gateway/static/root/assets/{theme-store-BOgkc_9D.js → theme-store-CISSxU1c.js} +1 -1
- package/dist/gateway/static/root/assets/{tunnel-api-DemxChjo.js → tunnel-api-DrKDhnJm.js} +1 -1
- package/dist/gateway/static/root/assets/{use-autosave-CV3Ui5hu.js → use-autosave-CPYePL-Q.js} +1 -1
- package/dist/gateway/static/root/assets/user-model-page-B6zLDfDl.js +2 -0
- package/dist/gateway/static/root/assets/{vendor-codemirror--gTq3YAI.js → vendor-codemirror-Qdcjid65.js} +1 -1
- package/dist/gateway/static/root/assets/{voice-api-key-field-CUoCi4Sq.js → voice-api-key-field-DKqzrCXx.js} +1 -1
- package/dist/gateway/static/root/assets/{voice-config-api-C-ryeIxj.js → voice-config-api-e9xWjwBX.js} +1 -1
- package/dist/gateway/static/root/assets/{work-discovery-overlay-BhDlkCMB.js → work-discovery-overlay-kTQug6bq.js} +1 -1
- package/dist/gateway/static/root/assets/{workflow-run-setup-panel-D8CcPc_C.js → workflow-run-setup-panel-m9SKj_GT.js} +2 -2
- package/dist/gateway/static/root/assets/workflows-page-Bcd1XqP7.js +5 -0
- package/dist/gateway/static/root/index.html +10 -10
- package/dist/package.js +1 -1
- package/dist/packages/gateway-contract/src/new-session.js +9 -0
- package/dist/src/agent/agent-manager.d.ts +2 -1
- package/dist/src/agent/agent-manager.js +2 -1
- package/dist/src/agent/coding/repository-instructions.js +2 -2
- package/dist/src/agent/coding/workspace-revision.js +2 -2
- package/dist/src/agent/commands/command-isolation.js +2 -2
- package/dist/src/agent/external-tools/composio-provider.d.ts +1 -0
- package/dist/src/agent/external-tools/composio-provider.js +64 -34
- package/dist/src/agent/external-tools/search-error.js +5 -3
- package/dist/src/agent/service.js +2 -1
- package/dist/src/agent/service.types.d.ts +2 -1
- package/dist/src/agent/skills/marketplace/adapters/store/store-api-client.js +4 -0
- package/dist/src/agent/tool-manuals/browser.d.ts +1 -1
- package/dist/src/agent/tool-manuals/browser.js +15 -226
- package/dist/src/agent/tools/browser/tool/browser-use-tool.d.ts +4 -21
- package/dist/src/agent/tools/browser/tool/browser-use-tool.js +48 -165
- package/dist/src/agent/tools/browser/tool/schemas.d.ts +203 -16
- package/dist/src/agent/tools/browser/tool/schemas.js +146 -16
- package/dist/src/agent/tools/browser-automation-tool.d.ts +121 -0
- package/dist/src/agent/tools/browser-automation-tool.js +197 -0
- package/dist/src/agent/tools/factory.d.ts +6 -9
- package/dist/src/agent/tools/factory.js +28 -55
- package/dist/src/agent/tools/index.d.ts +2 -2
- package/dist/src/agent/tools/index.js +3 -3
- package/dist/src/agent/tools/review-workspace.js +2 -2
- package/dist/src/auth/oauth/xopc-cloud.js +3 -1
- package/dist/src/automations/domain/defaults.js +1 -1
- package/dist/src/automations/domain/types.d.ts +5 -5
- package/dist/src/automations/domain/validation.d.ts +12 -12
- package/dist/src/automations/domain/validation.js +3 -3
- package/dist/src/automations/draft/automation-draft-validator.d.ts +3 -3
- package/dist/src/automations/draft/automation-draft-validator.js +1 -1
- package/dist/src/automations/service/action-executor.d.ts +1 -1
- package/dist/src/automations/service/action-executor.js +7 -7
- package/dist/src/browser/{recipes → automations}/index.d.ts +1 -0
- package/dist/src/browser/automations/index.js +4 -0
- package/dist/src/browser/automations/repository.d.ts +13 -0
- package/dist/src/browser/automations/repository.js +60 -0
- package/dist/src/browser/automations/runner.d.ts +17 -0
- package/dist/src/browser/automations/runner.js +173 -0
- package/dist/src/browser/automations/runtime-service.d.ts +6 -0
- package/dist/src/browser/automations/runtime-service.js +37 -0
- package/dist/src/browser/automations/schema.d.ts +144 -0
- package/dist/src/browser/automations/schema.js +135 -0
- package/dist/src/browser/automations/service.d.ts +146 -0
- package/dist/src/browser/automations/service.js +168 -0
- package/dist/src/browser/automations/types.d.ts +90 -0
- package/dist/src/browser/cache-dir-policy.d.ts +1 -1
- package/dist/src/browser/cache-dir-policy.js +1 -4
- package/dist/src/browser/drivers/browser-driver.d.ts +17 -0
- package/dist/src/browser/drivers/create-driver.d.ts +3 -0
- package/dist/src/browser/drivers/create-driver.js +84 -0
- package/dist/src/browser/drivers/extension-driver.d.ts +20 -0
- package/dist/src/browser/drivers/extension-driver.js +47 -0
- package/dist/src/browser/drivers/playwright-driver.d.ts +38 -0
- package/dist/src/browser/drivers/playwright-driver.js +406 -0
- package/dist/src/browser/index.d.ts +10 -15
- package/dist/src/browser/index.js +10 -15
- package/dist/src/browser/install-lock.d.ts +1 -2
- package/dist/src/browser/install-lock.js +3 -9
- package/dist/src/browser/install-progress.d.ts +1 -1
- package/dist/src/browser/observation/format.d.ts +2 -0
- package/dist/src/browser/observation/format.js +26 -0
- package/dist/src/browser/policy/approval-store.d.ts +17 -0
- package/dist/src/browser/policy/approval-store.js +62 -0
- package/dist/src/browser/policy/browser-policy.d.ts +3 -0
- package/dist/src/browser/policy/browser-policy.js +27 -0
- package/dist/src/browser/providers/browser-ext-install.d.ts +1 -1
- package/dist/src/browser/providers/browser-ext-install.js +3 -5
- package/dist/src/browser/providers/browser-use.js +1 -1
- package/dist/src/browser/providers/browserbase.js +1 -1
- package/dist/src/browser/providers/extension-ws-acquire.d.ts +1 -4
- package/dist/src/browser/providers/extension-ws-acquire.js +1 -13
- package/dist/src/browser/providers/extension.d.ts +3 -22
- package/dist/src/browser/providers/extension.js +7 -15
- package/dist/src/browser/providers/index.d.ts +2 -2
- package/dist/src/browser/providers/index.js +3 -3
- package/dist/src/browser/providers/types.d.ts +0 -94
- package/dist/src/browser/readiness.d.ts +4 -22
- package/dist/src/browser/readiness.js +55 -118
- package/dist/src/browser/runtime/browser-runtime.d.ts +30 -0
- package/dist/src/browser/runtime/browser-runtime.js +362 -0
- package/dist/src/browser/url-policy.d.ts +3 -3
- package/dist/src/browser/url-policy.js +7 -6
- package/dist/src/browser/verification/expectation.d.ts +2 -0
- package/dist/src/browser/verification/expectation.js +17 -0
- package/dist/src/cli/command-loaders.js +1 -0
- package/dist/src/cli/command-manifest.js +5 -1
- package/dist/src/cli/commands/browser-cli-helpers.d.ts +0 -6
- package/dist/src/cli/commands/browser-cli-helpers.js +11 -144
- package/dist/src/cli/commands/browser.d.ts +0 -5
- package/dist/src/cli/commands/browser.js +11 -152
- package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
- package/dist/src/cli/commands/doctor/checks/node-version.js +25 -9
- package/dist/src/cli/commands/platform.d.ts +1 -0
- package/dist/src/cli/commands/platform.js +111 -0
- package/dist/src/config/loader.js +9 -3
- package/dist/src/config/schema.d.ts +131 -84
- package/dist/src/config/schema.js +112 -59
- package/dist/src/connectors/composio-sessions.js +1 -3
- package/dist/src/extensions/marketplace.js +4 -0
- package/dist/src/files/file-service.js +139 -14
- package/dist/src/gateway/hono/lib/config-payload.d.ts +12 -26
- package/dist/src/gateway/hono/lib/config-payload.js +10 -39
- package/dist/src/gateway/hono/routes/browser-automations.d.ts +3 -0
- package/dist/src/gateway/hono/routes/browser-automations.js +77 -0
- package/dist/src/gateway/hono/routes/browser-install.js +0 -32
- package/dist/src/gateway/hono/routes/browser.d.ts +0 -17
- package/dist/src/gateway/hono/routes/browser.js +46 -568
- package/dist/src/gateway/hono/routes/config-patch/misc.js +8 -1
- package/dist/src/gateway/hono/routes/config.js +0 -11
- package/dist/src/gateway/hono/routes/lazy-bundles.js +5 -5
- package/dist/src/gateway/service.d.ts +4 -6
- package/dist/src/gateway/service.js +20 -23
- package/dist/src/platform/client.d.ts +121 -0
- package/dist/src/platform/client.js +108 -0
- package/dist/src/platform/contracts.d.ts +194 -0
- package/dist/src/platform/contracts.js +150 -0
- package/dist/src/platform/index.d.ts +4 -0
- package/dist/src/platform/index.js +9 -0
- package/dist/src/platform/resolution.d.ts +4 -0
- package/dist/src/platform/resolution.js +16 -0
- package/dist/src/platform/worker.d.ts +6 -0
- package/dist/src/platform/worker.js +75 -0
- package/dist/src/providers/xopc-cloud-config.js +3 -1
- package/dist/src/session/session-context-for-llm.js +41 -1
- package/dist/src/share/hosted-session-share.js +3 -1
- package/dist/src/share/share-thumbnail.js +1 -1
- package/dist/src/storage/sqlite/migrations/153_browser_control_v2.sql +45 -0
- package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
- package/dist/src/storage/sqlite/migrations/runner.js +3 -3
- package/dist/src/storage/sqlite/migrations/runner.ts +1 -1
- package/dist/src/storage/sqlite/schema.js +1 -1
- package/dist/src/storage/sqlite/schema.sql +16 -20
- package/dist/src/tasks/home-query-service.js +1 -1
- package/dist/src/tunnel/env.js +3 -1
- package/dist/src/voice/realtime/agentEngine.js +0 -1
- package/package.json +7 -7
- package/dist/gateway/static/root/assets/apps-page-KF1Gnv36.js +0 -1
- package/dist/gateway/static/root/assets/automations-workspace-Ch-ldu35.js +0 -6
- package/dist/gateway/static/root/assets/browser-settings-page-DtVhsHJW.js +0 -8
- package/dist/gateway/static/root/assets/browser-workflow-inputs-BX1-uM9L.js +0 -1
- package/dist/gateway/static/root/assets/browser-workflows-page-CcbUOWDF.js +0 -3
- package/dist/gateway/static/root/assets/capabilities-settings-panel--sXeylhe.js +0 -7
- package/dist/gateway/static/root/assets/channels-settings-AXSBDujZ.js +0 -1
- package/dist/gateway/static/root/assets/code-editor-D4_k-6QN.js +0 -1
- package/dist/gateway/static/root/assets/connectors-page-HBHUWohz.js +0 -2
- package/dist/gateway/static/root/assets/gateway-config-api-OEruhhX3.js +0 -1
- package/dist/gateway/static/root/assets/gateway-settings-BgH3A0LO.js +0 -1
- package/dist/gateway/static/root/assets/heartbeat-settings-C97naDkO.js +0 -1
- package/dist/gateway/static/root/assets/home-page-BBKKme4G.js +0 -1
- package/dist/gateway/static/root/assets/html-workspace-editor-C3DKAkMc.js +0 -1
- package/dist/gateway/static/root/assets/index-BcaF-dgQ.js +0 -72
- package/dist/gateway/static/root/assets/index-DAryGvZ7.css +0 -2
- package/dist/gateway/static/root/assets/local-app-workbench-page-DNncc2tn.js +0 -2
- package/dist/gateway/static/root/assets/logs-page-CizZInrT.js +0 -2
- package/dist/gateway/static/root/assets/markdown-editor-nDLmA_LF.js +0 -2
- package/dist/gateway/static/root/assets/markdown-split-DtBtcHWi.js +0 -1
- package/dist/gateway/static/root/assets/messages-Cf5hpZE6.js +0 -3
- package/dist/gateway/static/root/assets/note-detail-panel-Bw3jD9Jf.js +0 -5
- package/dist/gateway/static/root/assets/notes-page-Dpqq7Z-J.js +0 -8
- package/dist/gateway/static/root/assets/project-detail-page-BuT6MCTs.js +0 -1
- package/dist/gateway/static/root/assets/projects-page-DXWMxOjf.js +0 -1
- package/dist/gateway/static/root/assets/remote-access-hub-7rBCUWzZ.js +0 -1
- package/dist/gateway/static/root/assets/sessions-page-gmEOYNb4.js +0 -1
- package/dist/gateway/static/root/assets/settings-advanced-gate-DYYoJcl7.js +0 -1
- package/dist/gateway/static/root/assets/setup-status-panel-BhenBnUj.js +0 -1
- package/dist/gateway/static/root/assets/shares-settings-Dq7xIj0_.js +0 -1
- package/dist/gateway/static/root/assets/skill-reload-api-MDI9Lz6z.js +0 -1
- package/dist/gateway/static/root/assets/task-detail-page-P0_RldWv.js +0 -1
- package/dist/gateway/static/root/assets/user-model-page-CxfnoRVn.js +0 -2
- package/dist/gateway/static/root/assets/workflows-page-Bxn2Dc16.js +0 -5
- package/dist/src/agent/tools/browser-recipe-tool.d.ts +0 -12
- package/dist/src/agent/tools/browser-recipe-tool.js +0 -113
- package/dist/src/browser/actions/extension-registry-bridge.d.ts +0 -5
- package/dist/src/browser/actions/extension-registry-bridge.js +0 -312
- package/dist/src/browser/actions/registry.d.ts +0 -5
- package/dist/src/browser/actions/registry.js +0 -741
- package/dist/src/browser/actions/types.d.ts +0 -65
- package/dist/src/browser/backend-from-config.d.ts +0 -22
- package/dist/src/browser/backend-from-config.js +0 -99
- package/dist/src/browser/browser-command-timeout.d.ts +0 -2
- package/dist/src/browser/browser-command-timeout.js +0 -11
- package/dist/src/browser/cdp-local-launcher.d.ts +0 -35
- package/dist/src/browser/cdp-local-launcher.js +0 -154
- package/dist/src/browser/cdp-supervisor.d.ts +0 -58
- package/dist/src/browser/cdp-supervisor.js +0 -133
- package/dist/src/browser/humanize.d.ts +0 -80
- package/dist/src/browser/humanize.js +0 -363
- package/dist/src/browser/manager.d.ts +0 -50
- package/dist/src/browser/manager.js +0 -251
- package/dist/src/browser/pipeline/output.d.ts +0 -35
- package/dist/src/browser/pipeline/output.js +0 -74
- package/dist/src/browser/pipeline/runner.d.ts +0 -27
- package/dist/src/browser/pipeline/runner.js +0 -453
- package/dist/src/browser/pipeline/schema.d.ts +0 -42
- package/dist/src/browser/pipeline/schema.js +0 -116
- package/dist/src/browser/pipeline/template.d.ts +0 -30
- package/dist/src/browser/pipeline/template.js +0 -112
- package/dist/src/browser/providers/cloakbrowser.d.ts +0 -83
- package/dist/src/browser/providers/cloakbrowser.js +0 -612
- package/dist/src/browser/recipes/index.js +0 -3
- package/dist/src/browser/recipes/repository.d.ts +0 -13
- package/dist/src/browser/recipes/repository.js +0 -81
- package/dist/src/browser/recipes/runtime-service.d.ts +0 -6
- package/dist/src/browser/recipes/runtime-service.js +0 -30
- package/dist/src/browser/recipes/service.d.ts +0 -36
- package/dist/src/browser/recipes/service.js +0 -186
- package/dist/src/browser/recipes/types.d.ts +0 -36
- package/dist/src/browser/schemas.d.ts +0 -53
- package/dist/src/browser/schemas.js +0 -68
- package/dist/src/browser/session-lifecycle.d.ts +0 -40
- package/dist/src/browser/session-lifecycle.js +0 -136
- package/dist/src/browser/snapshot-helpers.d.ts +0 -24
- package/dist/src/browser/snapshot-helpers.js +0 -70
- package/dist/src/browser/stealth.d.ts +0 -46
- package/dist/src/browser/stealth.js +0 -163
- package/dist/src/gateway/hono/routes/browser-workflows.d.ts +0 -3
- package/dist/src/gateway/hono/routes/browser-workflows.js +0 -78
- /package/dist/src/browser/{actions → automations}/types.js +0 -0
- /package/dist/src/browser/{recipes/types.js → drivers/browser-driver.js} +0 -0
|
@@ -53,18 +53,18 @@ const AUTHENTICATED_LAZY_ROUTE_BUNDLES = [
|
|
|
53
53
|
},
|
|
54
54
|
{
|
|
55
55
|
id: "browser-install",
|
|
56
|
-
match: (path) => path === "/api/browser/playwright/install/stream"
|
|
56
|
+
match: (path) => path === "/api/browser/playwright/install/stream",
|
|
57
57
|
load: async () => {
|
|
58
58
|
const { registerBrowserInstallRoutes } = await import("./browser-install.js");
|
|
59
59
|
return { register: registerBrowserInstallRoutes };
|
|
60
60
|
}
|
|
61
61
|
},
|
|
62
62
|
{
|
|
63
|
-
id: "browser-
|
|
64
|
-
match: (path) => startsWithAny(path, ["/api/browser/
|
|
63
|
+
id: "browser-automations",
|
|
64
|
+
match: (path) => startsWithAny(path, ["/api/browser/automations", "/api/browser/automation-runs"]),
|
|
65
65
|
load: async () => {
|
|
66
|
-
const {
|
|
67
|
-
return { register:
|
|
66
|
+
const { registerBrowserAutomationRoutes } = await import("./browser-automations.js");
|
|
67
|
+
return { register: registerBrowserAutomationRoutes };
|
|
68
68
|
}
|
|
69
69
|
},
|
|
70
70
|
{
|
|
@@ -14,7 +14,7 @@ import { ModelCatalogSyncService } from '../providers/model-catalog-sync-service
|
|
|
14
14
|
import { ProjectService } from '../projects/index.js';
|
|
15
15
|
import { LocalAppService } from '../local-apps/index.js';
|
|
16
16
|
import { TaskConversationRepository } from '../tasks/task-conversation-repository.js';
|
|
17
|
-
import { type
|
|
17
|
+
import { type BrowserAutomationService } from '../browser/automations/index.js';
|
|
18
18
|
import { listInsights, ProactiveEventService, ProactiveInboxService, ProactiveInboxWorker, ProactiveScenarioService, ProactiveTemporalWorker, ProactiveWorker } from '../proactive/index.js';
|
|
19
19
|
import { GatewaySessionsApi } from './service/sessions-api.js';
|
|
20
20
|
import { GatewayMarketplaceService } from './service/marketplace-service.js';
|
|
@@ -35,7 +35,7 @@ export declare class GatewayService {
|
|
|
35
35
|
private _agentService;
|
|
36
36
|
private channelManager;
|
|
37
37
|
private automationService;
|
|
38
|
-
private
|
|
38
|
+
private browserAutomationService;
|
|
39
39
|
private notesService;
|
|
40
40
|
private extensionLoader;
|
|
41
41
|
private extensionMetadataSnapshot;
|
|
@@ -56,7 +56,7 @@ export declare class GatewayService {
|
|
|
56
56
|
readonly voiceRealtime: VoiceRealtimeRuntime;
|
|
57
57
|
getConfig(): Config;
|
|
58
58
|
getModelCatalogSync(): ModelCatalogSyncService;
|
|
59
|
-
get
|
|
59
|
+
get browserAutomations(): BrowserAutomationService;
|
|
60
60
|
private stopGatewayUpdateCheck;
|
|
61
61
|
/** When set (e.g. by `GatewayServer`), `triggerGatewayProcessRestart` can stop HTTP then exit. */
|
|
62
62
|
private gatewayShutdownForRestart;
|
|
@@ -196,10 +196,8 @@ export declare class GatewayService {
|
|
|
196
196
|
*/
|
|
197
197
|
onHttpListening(): Promise<void>;
|
|
198
198
|
stop(): Promise<void>;
|
|
199
|
-
/** Start the browser extension
|
|
199
|
+
/** Start the browser extension WebSocket server when its driver is active. */
|
|
200
200
|
private startBrowserExtensionServerIfNeeded;
|
|
201
|
-
/** Release the gateway's hold on the shared extension bridge (does not restart). */
|
|
202
|
-
releaseBrowserExtensionBridge(): Promise<void>;
|
|
203
201
|
/**
|
|
204
202
|
* Start/stop/rebind the Chrome extension bridge.
|
|
205
203
|
* PATCH saves update config in memory without re-running gateway startup, so this must run on save too.
|
|
@@ -101,8 +101,8 @@ import { runBootstrapMigrationsSync } from "../migrations/runner.js";
|
|
|
101
101
|
import { NotificationService } from "../notifications/service.js";
|
|
102
102
|
import { LocalAppService } from "../local-apps/service.js";
|
|
103
103
|
import "../local-apps/index.js";
|
|
104
|
-
import {
|
|
105
|
-
import "../browser/
|
|
104
|
+
import { createRuntimeBrowserAutomationService } from "../browser/automations/runtime-service.js";
|
|
105
|
+
import "../browser/automations/index.js";
|
|
106
106
|
import { mapProductEventToProactive } from "../proactive/events/product-event-bridge.js";
|
|
107
107
|
import { ProactiveEventService } from "../proactive/service.js";
|
|
108
108
|
import { ReadonlyProactiveAgentExecutor } from "../proactive/execution/agent-executor.js";
|
|
@@ -145,7 +145,7 @@ var GatewayService = class {
|
|
|
145
145
|
_agentService = null;
|
|
146
146
|
channelManager;
|
|
147
147
|
automationService;
|
|
148
|
-
|
|
148
|
+
browserAutomationService = null;
|
|
149
149
|
notesService;
|
|
150
150
|
extensionLoader = null;
|
|
151
151
|
extensionMetadataSnapshot = null;
|
|
@@ -237,12 +237,12 @@ var GatewayService = class {
|
|
|
237
237
|
getModelCatalogSync() {
|
|
238
238
|
return this.modelCatalogSync;
|
|
239
239
|
}
|
|
240
|
-
get
|
|
241
|
-
if (!this.
|
|
240
|
+
get browserAutomations() {
|
|
241
|
+
if (!this.browserAutomationService) this.browserAutomationService = createRuntimeBrowserAutomationService({
|
|
242
242
|
getConfig: () => this.config,
|
|
243
243
|
emit: (type, payload) => this.emit(type, payload)
|
|
244
244
|
});
|
|
245
|
-
return this.
|
|
245
|
+
return this.browserAutomationService;
|
|
246
246
|
}
|
|
247
247
|
stopGatewayUpdateCheck = null;
|
|
248
248
|
/** When set (e.g. by `GatewayServer`), `triggerGatewayProcessRestart` can stop HTTP then exit. */
|
|
@@ -552,7 +552,8 @@ var GatewayService = class {
|
|
|
552
552
|
extensionRegistry: this.extensionLoader?.getRegistry(),
|
|
553
553
|
endpointTools: this.endpointTools,
|
|
554
554
|
getAutomationService: () => this.automationService,
|
|
555
|
-
|
|
555
|
+
getBrowserAutomationService: () => this.browserAutomations,
|
|
556
|
+
emitBrowserEvent: (type, payload) => this.emit(type, payload),
|
|
556
557
|
getNotesService: () => this.notesService,
|
|
557
558
|
getProjectService: () => this.projects,
|
|
558
559
|
getLocalAppService: () => this.localApps,
|
|
@@ -592,7 +593,7 @@ var GatewayService = class {
|
|
|
592
593
|
getDefaultAgentId: () => getDefaultAgentId(this.config),
|
|
593
594
|
prepareAgentSession: (input) => prepareAutomationAgentSession(this.sessionIndex.getStore(), this.projects, input),
|
|
594
595
|
workflowRunService: this.createWorkflowRunService(),
|
|
595
|
-
|
|
596
|
+
browserAutomationService: this.browserAutomations,
|
|
596
597
|
executeTaskCommand: ({ taskId, idempotencyKey, command }) => {
|
|
597
598
|
const task = new TaskRepository().get(taskId);
|
|
598
599
|
if (!task) return {
|
|
@@ -1002,7 +1003,7 @@ var GatewayService = class {
|
|
|
1002
1003
|
getDefaultAgentId: () => getDefaultAgentId(this.config),
|
|
1003
1004
|
prepareAgentSession: (input) => prepareAutomationAgentSession(this.sessionIndex.getStore(), this.projects, input),
|
|
1004
1005
|
workflowRunService: this.createWorkflowRunService(),
|
|
1005
|
-
|
|
1006
|
+
browserAutomationService: this.browserAutomations,
|
|
1006
1007
|
executeTaskCommand: ({ taskId, idempotencyKey, command }) => {
|
|
1007
1008
|
const task = new TaskRepository().get(taskId);
|
|
1008
1009
|
if (!task) return {
|
|
@@ -1234,7 +1235,7 @@ var GatewayService = class {
|
|
|
1234
1235
|
this.connectedSourceChangePublisher = null;
|
|
1235
1236
|
this.connectedKnowledgeCoordinator?.stop();
|
|
1236
1237
|
this.connectedKnowledgeCoordinator = null;
|
|
1237
|
-
await this.
|
|
1238
|
+
await this.browserAutomationService?.shutdown();
|
|
1238
1239
|
if (this.browserExtensionRelease) {
|
|
1239
1240
|
await this.browserExtensionRelease();
|
|
1240
1241
|
this.browserExtensionRelease = null;
|
|
@@ -1263,33 +1264,29 @@ var GatewayService = class {
|
|
|
1263
1264
|
closeXopcDatabase();
|
|
1264
1265
|
log.debug("Gateway service stopped");
|
|
1265
1266
|
}
|
|
1266
|
-
/** Start the browser extension
|
|
1267
|
+
/** Start the browser extension WebSocket server when its driver is active. */
|
|
1267
1268
|
async startBrowserExtensionServerIfNeeded() {
|
|
1268
1269
|
await this.reconcileBrowserExtensionServer();
|
|
1269
1270
|
}
|
|
1270
|
-
/** Release the gateway's hold on the shared extension bridge (does not restart). */
|
|
1271
|
-
async releaseBrowserExtensionBridge() {
|
|
1272
|
-
if (!this.browserExtensionRelease) return;
|
|
1273
|
-
await this.browserExtensionRelease();
|
|
1274
|
-
this.browserExtensionRelease = null;
|
|
1275
|
-
this.browserExtensionProvider = null;
|
|
1276
|
-
this.browserExtensionBindKey = null;
|
|
1277
|
-
log.debug("Browser extension WS server released");
|
|
1278
|
-
}
|
|
1279
1271
|
/**
|
|
1280
1272
|
* Start/stop/rebind the Chrome extension bridge.
|
|
1281
1273
|
* PATCH saves update config in memory without re-running gateway startup, so this must run on save too.
|
|
1282
1274
|
*/
|
|
1283
1275
|
async reconcileBrowserExtensionServer() {
|
|
1284
|
-
const
|
|
1285
|
-
const bridgeConfig =
|
|
1276
|
+
const driver = this.config.browser.driver;
|
|
1277
|
+
const bridgeConfig = this.config.browser.enabled && driver.kind === "extension" ? {
|
|
1278
|
+
host: "127.0.0.1",
|
|
1279
|
+
port: 19820,
|
|
1280
|
+
connectionTimeout: this.config.browser.limits.actionTimeoutMs,
|
|
1281
|
+
commandTimeout: this.config.browser.limits.actionTimeoutMs
|
|
1282
|
+
} : null;
|
|
1286
1283
|
if (!bridgeConfig) {
|
|
1287
1284
|
if (this.browserExtensionRelease) {
|
|
1288
1285
|
await this.browserExtensionRelease();
|
|
1289
1286
|
this.browserExtensionRelease = null;
|
|
1290
1287
|
this.browserExtensionProvider = null;
|
|
1291
1288
|
this.browserExtensionBindKey = null;
|
|
1292
|
-
log.debug("Browser extension
|
|
1289
|
+
log.debug("Browser extension WebSocket server stopped because its driver is inactive");
|
|
1293
1290
|
}
|
|
1294
1291
|
return;
|
|
1295
1292
|
}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { type PlatformDiscovery, type PlatformEvent } from './contracts.js';
|
|
3
|
+
export declare const PLATFORM_RUNTIME_PROVIDER = "xopc-platform-runtime";
|
|
4
|
+
export declare const PLATFORM_RUNTIME_PROFILE = "xopc-platform-runtime:default";
|
|
5
|
+
export declare function discoverPlatform(baseUrl: string, fetchImpl?: typeof fetch): Promise<PlatformDiscovery>;
|
|
6
|
+
export declare const RuntimeCommandSchema: z.ZodObject<{
|
|
7
|
+
type: z.ZodLiteral<"run.start">;
|
|
8
|
+
payload: z.ZodObject<{
|
|
9
|
+
runId: z.ZodString;
|
|
10
|
+
traceId: z.ZodString;
|
|
11
|
+
agentVersionId: z.ZodString;
|
|
12
|
+
organizationId: z.ZodString;
|
|
13
|
+
workspaceId: z.ZodString;
|
|
14
|
+
runtimeId: z.ZodString;
|
|
15
|
+
manifest: z.ZodObject<{
|
|
16
|
+
schemaVersion: z.ZodLiteral<"1">;
|
|
17
|
+
agentId: z.ZodString;
|
|
18
|
+
version: z.ZodString;
|
|
19
|
+
runtime: z.ZodObject<{
|
|
20
|
+
engine: z.ZodLiteral<"xopc">;
|
|
21
|
+
requires: z.ZodString;
|
|
22
|
+
execution: z.ZodArray<z.ZodEnum<{
|
|
23
|
+
local: "local";
|
|
24
|
+
managed: "managed";
|
|
25
|
+
enterprise: "enterprise";
|
|
26
|
+
}>>;
|
|
27
|
+
}, z.core.$strict>;
|
|
28
|
+
entry: z.ZodObject<{
|
|
29
|
+
instructions: z.ZodString;
|
|
30
|
+
workflow: z.ZodOptional<z.ZodString>;
|
|
31
|
+
}, z.core.$strict>;
|
|
32
|
+
models: z.ZodObject<{
|
|
33
|
+
intents: z.ZodArray<z.ZodEnum<{
|
|
34
|
+
review: "review";
|
|
35
|
+
coding: "coding";
|
|
36
|
+
understanding: "understanding";
|
|
37
|
+
fast: "fast";
|
|
38
|
+
reasoning: "reasoning";
|
|
39
|
+
vision: "vision";
|
|
40
|
+
}>>;
|
|
41
|
+
allow: z.ZodArray<z.ZodString>;
|
|
42
|
+
}, z.core.$strict>;
|
|
43
|
+
dependencies: z.ZodObject<{
|
|
44
|
+
skills: z.ZodArray<z.ZodObject<{
|
|
45
|
+
id: z.ZodString;
|
|
46
|
+
version: z.ZodString;
|
|
47
|
+
sha256: z.ZodOptional<z.ZodString>;
|
|
48
|
+
}, z.core.$strict>>;
|
|
49
|
+
connectors: z.ZodArray<z.ZodObject<{
|
|
50
|
+
id: z.ZodString;
|
|
51
|
+
version: z.ZodString;
|
|
52
|
+
sha256: z.ZodOptional<z.ZodString>;
|
|
53
|
+
}, z.core.$strict>>;
|
|
54
|
+
extensions: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
55
|
+
id: z.ZodString;
|
|
56
|
+
version: z.ZodString;
|
|
57
|
+
sha256: z.ZodOptional<z.ZodString>;
|
|
58
|
+
}, z.core.$strict>>>;
|
|
59
|
+
}, z.core.$strict>;
|
|
60
|
+
permissions: z.ZodObject<{
|
|
61
|
+
tools: z.ZodArray<z.ZodString>;
|
|
62
|
+
networkDomains: z.ZodArray<z.ZodString>;
|
|
63
|
+
filesystem: z.ZodArray<z.ZodString>;
|
|
64
|
+
effects: z.ZodArray<z.ZodEnum<{
|
|
65
|
+
delete: "delete";
|
|
66
|
+
read: "read";
|
|
67
|
+
write: "write";
|
|
68
|
+
execute: "execute";
|
|
69
|
+
admin: "admin";
|
|
70
|
+
send: "send";
|
|
71
|
+
purchase: "purchase";
|
|
72
|
+
publish: "publish";
|
|
73
|
+
}>>;
|
|
74
|
+
}, z.core.$strict>;
|
|
75
|
+
data: z.ZodObject<{
|
|
76
|
+
classification: z.ZodEnum<{
|
|
77
|
+
public: "public";
|
|
78
|
+
internal: "internal";
|
|
79
|
+
confidential: "confidential";
|
|
80
|
+
restricted: "restricted";
|
|
81
|
+
}>;
|
|
82
|
+
memory: z.ZodEnum<{
|
|
83
|
+
workspace: "workspace";
|
|
84
|
+
none: "none";
|
|
85
|
+
local: "local";
|
|
86
|
+
}>;
|
|
87
|
+
retentionPolicy: z.ZodString;
|
|
88
|
+
}, z.core.$strict>;
|
|
89
|
+
quality: z.ZodObject<{
|
|
90
|
+
evaluationSuite: z.ZodOptional<z.ZodString>;
|
|
91
|
+
releaseGate: z.ZodOptional<z.ZodString>;
|
|
92
|
+
}, z.core.$strict>;
|
|
93
|
+
}, z.core.$strict>;
|
|
94
|
+
}, z.core.$loose>;
|
|
95
|
+
id: z.ZodString;
|
|
96
|
+
runId: z.ZodString;
|
|
97
|
+
leaseToken: z.ZodString;
|
|
98
|
+
leaseExpiresAt: z.ZodNumber;
|
|
99
|
+
}, z.core.$strict>;
|
|
100
|
+
export type RuntimeCommand = z.infer<typeof RuntimeCommandSchema>;
|
|
101
|
+
declare const runtimeRenewalResponseSchema: z.ZodObject<{
|
|
102
|
+
leaseExpiresAt: z.ZodNumber;
|
|
103
|
+
cancelRequested: z.ZodBoolean;
|
|
104
|
+
}, z.core.$strict>;
|
|
105
|
+
export type RuntimeLeaseRenewal = z.infer<typeof runtimeRenewalResponseSchema>;
|
|
106
|
+
export declare class PlatformRuntimeClient {
|
|
107
|
+
private readonly token;
|
|
108
|
+
private readonly fetchImpl;
|
|
109
|
+
private readonly agentApi;
|
|
110
|
+
constructor(discovery: PlatformDiscovery, token: string, fetchImpl?: typeof fetch);
|
|
111
|
+
private request;
|
|
112
|
+
heartbeat(input?: {
|
|
113
|
+
capabilities?: Record<string, unknown>;
|
|
114
|
+
endpoint?: string;
|
|
115
|
+
leaseSeconds?: number;
|
|
116
|
+
}): Promise<Record<string, unknown>>;
|
|
117
|
+
lease(leaseSeconds?: number): Promise<RuntimeCommand | null>;
|
|
118
|
+
report(event: PlatformEvent, leaseToken?: string): Promise<'accepted' | 'duplicate'>;
|
|
119
|
+
renew(commandId: string, leaseToken: string, leaseSeconds?: number): Promise<RuntimeLeaseRenewal>;
|
|
120
|
+
}
|
|
121
|
+
export {};
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { AgentManifestSchema, PlatformDiscoverySchema, PlatformEventSchema, init_contracts } from "./contracts.js";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
//#region src/platform/client.ts
|
|
4
|
+
init_contracts();
|
|
5
|
+
const PLATFORM_RUNTIME_PROVIDER = "xopc-platform-runtime";
|
|
6
|
+
const PLATFORM_RUNTIME_PROFILE = "xopc-platform-runtime:default";
|
|
7
|
+
function trimBaseUrl(value) {
|
|
8
|
+
const url = new URL(value);
|
|
9
|
+
url.hash = "";
|
|
10
|
+
url.search = "";
|
|
11
|
+
url.pathname = url.pathname.replace(/\/+$/, "");
|
|
12
|
+
return url.toString().replace(/\/+$/, "");
|
|
13
|
+
}
|
|
14
|
+
async function responseJson(response) {
|
|
15
|
+
return response.json().catch(() => null);
|
|
16
|
+
}
|
|
17
|
+
async function discoverPlatform(baseUrl, fetchImpl = fetch) {
|
|
18
|
+
const response = await fetchImpl(`${trimBaseUrl(baseUrl)}/.well-known/xopc-platform`, {
|
|
19
|
+
headers: { accept: "application/json" },
|
|
20
|
+
signal: AbortSignal.timeout(15e3)
|
|
21
|
+
});
|
|
22
|
+
if (!response.ok) throw new Error(`Platform discovery failed with HTTP ${response.status}`);
|
|
23
|
+
return PlatformDiscoverySchema.parse(await responseJson(response));
|
|
24
|
+
}
|
|
25
|
+
const runtimeIdentifier = z.string().min(1).max(128).regex(/^[A-Za-z0-9][A-Za-z0-9._:-]*$/);
|
|
26
|
+
const runtimeCommandBase = {
|
|
27
|
+
id: runtimeIdentifier,
|
|
28
|
+
runId: runtimeIdentifier,
|
|
29
|
+
leaseToken: z.string().min(1).max(512),
|
|
30
|
+
leaseExpiresAt: z.number().int().positive()
|
|
31
|
+
};
|
|
32
|
+
const RuntimeCommandSchema = z.object({
|
|
33
|
+
...runtimeCommandBase,
|
|
34
|
+
type: z.literal("run.start"),
|
|
35
|
+
payload: z.object({
|
|
36
|
+
runId: runtimeIdentifier,
|
|
37
|
+
traceId: runtimeIdentifier,
|
|
38
|
+
agentVersionId: runtimeIdentifier,
|
|
39
|
+
organizationId: runtimeIdentifier,
|
|
40
|
+
workspaceId: runtimeIdentifier,
|
|
41
|
+
runtimeId: runtimeIdentifier,
|
|
42
|
+
manifest: AgentManifestSchema
|
|
43
|
+
}).passthrough()
|
|
44
|
+
}).strict().superRefine((command, context) => {
|
|
45
|
+
if (command.payload.runId !== command.runId) context.addIssue({
|
|
46
|
+
code: z.ZodIssueCode.custom,
|
|
47
|
+
message: "Runtime command run identity does not match its payload",
|
|
48
|
+
path: ["payload", "runId"]
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
const runtimeLeaseResponseSchema = z.object({ command: RuntimeCommandSchema }).strict();
|
|
52
|
+
const runtimeRenewalResponseSchema = z.object({
|
|
53
|
+
leaseExpiresAt: z.number().int().positive(),
|
|
54
|
+
cancelRequested: z.boolean()
|
|
55
|
+
}).strict();
|
|
56
|
+
var PlatformRuntimeClient = class {
|
|
57
|
+
agentApi;
|
|
58
|
+
constructor(discovery, token, fetchImpl = fetch) {
|
|
59
|
+
this.token = token;
|
|
60
|
+
this.fetchImpl = fetchImpl;
|
|
61
|
+
if (!discovery.capabilities.runtimeFleet || !discovery.endpoints.agentApi) throw new Error("Connected platform does not provide a runtime fleet");
|
|
62
|
+
this.agentApi = discovery.endpoints.agentApi.replace(/\/+$/, "");
|
|
63
|
+
if (!token.startsWith("xopc_rt_")) throw new Error("Invalid platform runtime token");
|
|
64
|
+
}
|
|
65
|
+
async request(path, body) {
|
|
66
|
+
return this.fetchImpl(`${this.agentApi}${path}`, {
|
|
67
|
+
method: "POST",
|
|
68
|
+
headers: {
|
|
69
|
+
authorization: `Bearer ${this.token}`,
|
|
70
|
+
"content-type": "application/json",
|
|
71
|
+
accept: "application/json"
|
|
72
|
+
},
|
|
73
|
+
body: JSON.stringify(body),
|
|
74
|
+
signal: AbortSignal.timeout(3e4)
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
async heartbeat(input = {}) {
|
|
78
|
+
const response = await this.request("/heartbeat", input);
|
|
79
|
+
if (!response.ok) throw new Error(`Runtime heartbeat failed with HTTP ${response.status}`);
|
|
80
|
+
return await responseJson(response);
|
|
81
|
+
}
|
|
82
|
+
async lease(leaseSeconds = 30) {
|
|
83
|
+
const response = await this.request("/lease", { leaseSeconds });
|
|
84
|
+
if (response.status === 204) return null;
|
|
85
|
+
if (!response.ok) throw new Error(`Runtime lease failed with HTTP ${response.status}`);
|
|
86
|
+
return runtimeLeaseResponseSchema.parse(await responseJson(response)).command;
|
|
87
|
+
}
|
|
88
|
+
async report(event, leaseToken) {
|
|
89
|
+
const response = await this.request("/events", {
|
|
90
|
+
event: PlatformEventSchema.parse(event),
|
|
91
|
+
leaseToken
|
|
92
|
+
});
|
|
93
|
+
if (!response.ok) throw new Error(`Runtime event failed with HTTP ${response.status}`);
|
|
94
|
+
const value = await responseJson(response);
|
|
95
|
+
if (value?.status !== "accepted" && value?.status !== "duplicate") throw new Error("Runtime event response is incomplete");
|
|
96
|
+
return value.status;
|
|
97
|
+
}
|
|
98
|
+
async renew(commandId, leaseToken, leaseSeconds = 60) {
|
|
99
|
+
const response = await this.request(`/commands/${encodeURIComponent(commandId)}/renew`, {
|
|
100
|
+
leaseToken,
|
|
101
|
+
leaseSeconds
|
|
102
|
+
});
|
|
103
|
+
if (!response.ok) throw new Error(`Runtime lease renewal failed with HTTP ${response.status}`);
|
|
104
|
+
return runtimeRenewalResponseSchema.parse(await responseJson(response));
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
//#endregion
|
|
108
|
+
export { PLATFORM_RUNTIME_PROFILE, PLATFORM_RUNTIME_PROVIDER, PlatformRuntimeClient, RuntimeCommandSchema, discoverPlatform };
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const PlatformCapabilitySchema: z.ZodEnum<{
|
|
3
|
+
models: "models";
|
|
4
|
+
connectors: "connectors";
|
|
5
|
+
tunnels: "tunnels";
|
|
6
|
+
shares: "shares";
|
|
7
|
+
managedRuntime: "managedRuntime";
|
|
8
|
+
runtimeFleet: "runtimeFleet";
|
|
9
|
+
traceUpload: "traceUpload";
|
|
10
|
+
a2a: "a2a";
|
|
11
|
+
}>;
|
|
12
|
+
export declare const PlatformDiscoverySchema: z.ZodObject<{
|
|
13
|
+
schemaVersion: z.ZodLiteral<"1">;
|
|
14
|
+
platformId: z.ZodString;
|
|
15
|
+
displayName: z.ZodString;
|
|
16
|
+
deploymentMode: z.ZodEnum<{
|
|
17
|
+
development: "development";
|
|
18
|
+
private: "private";
|
|
19
|
+
cloud: "cloud";
|
|
20
|
+
}>;
|
|
21
|
+
region: z.ZodString;
|
|
22
|
+
endpoints: z.ZodObject<{
|
|
23
|
+
authorizationServer: z.ZodString;
|
|
24
|
+
controlApi: z.ZodString;
|
|
25
|
+
modelApi: z.ZodOptional<z.ZodString>;
|
|
26
|
+
storeApi: z.ZodOptional<z.ZodString>;
|
|
27
|
+
tunnelApi: z.ZodOptional<z.ZodString>;
|
|
28
|
+
shareApi: z.ZodOptional<z.ZodString>;
|
|
29
|
+
agentApi: z.ZodOptional<z.ZodString>;
|
|
30
|
+
a2aApi: z.ZodOptional<z.ZodString>;
|
|
31
|
+
realtime: z.ZodOptional<z.ZodString>;
|
|
32
|
+
}, z.core.$strict>;
|
|
33
|
+
capabilities: z.ZodRecord<z.ZodEnum<{
|
|
34
|
+
models: "models";
|
|
35
|
+
connectors: "connectors";
|
|
36
|
+
tunnels: "tunnels";
|
|
37
|
+
shares: "shares";
|
|
38
|
+
managedRuntime: "managedRuntime";
|
|
39
|
+
runtimeFleet: "runtimeFleet";
|
|
40
|
+
traceUpload: "traceUpload";
|
|
41
|
+
a2a: "a2a";
|
|
42
|
+
}>, z.ZodBoolean>;
|
|
43
|
+
protocols: z.ZodObject<{
|
|
44
|
+
xopc: z.ZodObject<{
|
|
45
|
+
min: z.ZodString;
|
|
46
|
+
max: z.ZodString;
|
|
47
|
+
}, z.core.$strict>;
|
|
48
|
+
mcp: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
49
|
+
a2a: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
50
|
+
}, z.core.$strict>;
|
|
51
|
+
}, z.core.$strict>;
|
|
52
|
+
export type PlatformDiscovery = z.infer<typeof PlatformDiscoverySchema>;
|
|
53
|
+
export declare const PlatformConfigSchema: z.ZodDefault<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
54
|
+
mode: z.ZodLiteral<"standalone">;
|
|
55
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
56
|
+
mode: z.ZodLiteral<"connected">;
|
|
57
|
+
url: z.ZodString;
|
|
58
|
+
workspaceId: z.ZodOptional<z.ZodString>;
|
|
59
|
+
discovery: z.ZodObject<{
|
|
60
|
+
schemaVersion: z.ZodLiteral<"1">;
|
|
61
|
+
platformId: z.ZodString;
|
|
62
|
+
displayName: z.ZodString;
|
|
63
|
+
deploymentMode: z.ZodEnum<{
|
|
64
|
+
development: "development";
|
|
65
|
+
private: "private";
|
|
66
|
+
cloud: "cloud";
|
|
67
|
+
}>;
|
|
68
|
+
region: z.ZodString;
|
|
69
|
+
endpoints: z.ZodObject<{
|
|
70
|
+
authorizationServer: z.ZodString;
|
|
71
|
+
controlApi: z.ZodString;
|
|
72
|
+
modelApi: z.ZodOptional<z.ZodString>;
|
|
73
|
+
storeApi: z.ZodOptional<z.ZodString>;
|
|
74
|
+
tunnelApi: z.ZodOptional<z.ZodString>;
|
|
75
|
+
shareApi: z.ZodOptional<z.ZodString>;
|
|
76
|
+
agentApi: z.ZodOptional<z.ZodString>;
|
|
77
|
+
a2aApi: z.ZodOptional<z.ZodString>;
|
|
78
|
+
realtime: z.ZodOptional<z.ZodString>;
|
|
79
|
+
}, z.core.$strict>;
|
|
80
|
+
capabilities: z.ZodRecord<z.ZodEnum<{
|
|
81
|
+
models: "models";
|
|
82
|
+
connectors: "connectors";
|
|
83
|
+
tunnels: "tunnels";
|
|
84
|
+
shares: "shares";
|
|
85
|
+
managedRuntime: "managedRuntime";
|
|
86
|
+
runtimeFleet: "runtimeFleet";
|
|
87
|
+
traceUpload: "traceUpload";
|
|
88
|
+
a2a: "a2a";
|
|
89
|
+
}>, z.ZodBoolean>;
|
|
90
|
+
protocols: z.ZodObject<{
|
|
91
|
+
xopc: z.ZodObject<{
|
|
92
|
+
min: z.ZodString;
|
|
93
|
+
max: z.ZodString;
|
|
94
|
+
}, z.core.$strict>;
|
|
95
|
+
mcp: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
96
|
+
a2a: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
97
|
+
}, z.core.$strict>;
|
|
98
|
+
}, z.core.$strict>;
|
|
99
|
+
}, z.core.$strict>], "mode">>;
|
|
100
|
+
export type PlatformConfig = z.infer<typeof PlatformConfigSchema>;
|
|
101
|
+
export declare const AgentManifestSchema: z.ZodObject<{
|
|
102
|
+
schemaVersion: z.ZodLiteral<"1">;
|
|
103
|
+
agentId: z.ZodString;
|
|
104
|
+
version: z.ZodString;
|
|
105
|
+
runtime: z.ZodObject<{
|
|
106
|
+
engine: z.ZodLiteral<"xopc">;
|
|
107
|
+
requires: z.ZodString;
|
|
108
|
+
execution: z.ZodArray<z.ZodEnum<{
|
|
109
|
+
local: "local";
|
|
110
|
+
managed: "managed";
|
|
111
|
+
enterprise: "enterprise";
|
|
112
|
+
}>>;
|
|
113
|
+
}, z.core.$strict>;
|
|
114
|
+
entry: z.ZodObject<{
|
|
115
|
+
instructions: z.ZodString;
|
|
116
|
+
workflow: z.ZodOptional<z.ZodString>;
|
|
117
|
+
}, z.core.$strict>;
|
|
118
|
+
models: z.ZodObject<{
|
|
119
|
+
intents: z.ZodArray<z.ZodEnum<{
|
|
120
|
+
review: "review";
|
|
121
|
+
coding: "coding";
|
|
122
|
+
understanding: "understanding";
|
|
123
|
+
fast: "fast";
|
|
124
|
+
reasoning: "reasoning";
|
|
125
|
+
vision: "vision";
|
|
126
|
+
}>>;
|
|
127
|
+
allow: z.ZodArray<z.ZodString>;
|
|
128
|
+
}, z.core.$strict>;
|
|
129
|
+
dependencies: z.ZodObject<{
|
|
130
|
+
skills: z.ZodArray<z.ZodObject<{
|
|
131
|
+
id: z.ZodString;
|
|
132
|
+
version: z.ZodString;
|
|
133
|
+
sha256: z.ZodOptional<z.ZodString>;
|
|
134
|
+
}, z.core.$strict>>;
|
|
135
|
+
connectors: z.ZodArray<z.ZodObject<{
|
|
136
|
+
id: z.ZodString;
|
|
137
|
+
version: z.ZodString;
|
|
138
|
+
sha256: z.ZodOptional<z.ZodString>;
|
|
139
|
+
}, z.core.$strict>>;
|
|
140
|
+
extensions: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
141
|
+
id: z.ZodString;
|
|
142
|
+
version: z.ZodString;
|
|
143
|
+
sha256: z.ZodOptional<z.ZodString>;
|
|
144
|
+
}, z.core.$strict>>>;
|
|
145
|
+
}, z.core.$strict>;
|
|
146
|
+
permissions: z.ZodObject<{
|
|
147
|
+
tools: z.ZodArray<z.ZodString>;
|
|
148
|
+
networkDomains: z.ZodArray<z.ZodString>;
|
|
149
|
+
filesystem: z.ZodArray<z.ZodString>;
|
|
150
|
+
effects: z.ZodArray<z.ZodEnum<{
|
|
151
|
+
delete: "delete";
|
|
152
|
+
read: "read";
|
|
153
|
+
write: "write";
|
|
154
|
+
execute: "execute";
|
|
155
|
+
admin: "admin";
|
|
156
|
+
send: "send";
|
|
157
|
+
purchase: "purchase";
|
|
158
|
+
publish: "publish";
|
|
159
|
+
}>>;
|
|
160
|
+
}, z.core.$strict>;
|
|
161
|
+
data: z.ZodObject<{
|
|
162
|
+
classification: z.ZodEnum<{
|
|
163
|
+
public: "public";
|
|
164
|
+
internal: "internal";
|
|
165
|
+
confidential: "confidential";
|
|
166
|
+
restricted: "restricted";
|
|
167
|
+
}>;
|
|
168
|
+
memory: z.ZodEnum<{
|
|
169
|
+
workspace: "workspace";
|
|
170
|
+
none: "none";
|
|
171
|
+
local: "local";
|
|
172
|
+
}>;
|
|
173
|
+
retentionPolicy: z.ZodString;
|
|
174
|
+
}, z.core.$strict>;
|
|
175
|
+
quality: z.ZodObject<{
|
|
176
|
+
evaluationSuite: z.ZodOptional<z.ZodString>;
|
|
177
|
+
releaseGate: z.ZodOptional<z.ZodString>;
|
|
178
|
+
}, z.core.$strict>;
|
|
179
|
+
}, z.core.$strict>;
|
|
180
|
+
export type AgentManifest = z.infer<typeof AgentManifestSchema>;
|
|
181
|
+
export declare const PlatformEventSchema: z.ZodObject<{
|
|
182
|
+
schemaVersion: z.ZodLiteral<"1">;
|
|
183
|
+
eventId: z.ZodString;
|
|
184
|
+
type: z.ZodString;
|
|
185
|
+
time: z.ZodString;
|
|
186
|
+
organizationId: z.ZodString;
|
|
187
|
+
workspaceId: z.ZodString;
|
|
188
|
+
runId: z.ZodOptional<z.ZodString>;
|
|
189
|
+
traceId: z.ZodOptional<z.ZodString>;
|
|
190
|
+
sequence: z.ZodOptional<z.ZodNumber>;
|
|
191
|
+
producer: z.ZodString;
|
|
192
|
+
payload: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
193
|
+
}, z.core.$strict>;
|
|
194
|
+
export type PlatformEvent = z.infer<typeof PlatformEventSchema>;
|