@xopcai/xopc 0.0.161 → 0.0.163
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 +4 -2
- package/README.zh-CN.md +4 -2
- 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-o7GRljfD.js → activity-store-Xj95LzTv.js} +1 -1
- package/dist/gateway/static/root/assets/{agent-avatar-dicebear-9R3szLMc.js → agent-avatar-dicebear-C-QeUFwU.js} +1 -1
- package/dist/gateway/static/root/assets/agents-DVKlWKJE.js +2 -0
- package/dist/gateway/static/root/assets/{api-jSTqFMq9.js → api-BTLmAm1_.js} +1 -1
- package/dist/gateway/static/root/assets/{app-management-settings-panel-D81cyE76.js → app-management-settings-panel-zc6Gf-S5.js} +1 -1
- package/dist/gateway/static/root/assets/{appearance-settings-Ct6bZQCV.js → appearance-settings-0fMLnOWn.js} +1 -1
- package/dist/gateway/static/root/assets/apps-page-BZXEJDIV.js +1 -0
- package/dist/gateway/static/root/assets/{archive-plugin-CfD7AZKn.js → archive-plugin-DOiR_E21.js} +1 -1
- package/dist/gateway/static/root/assets/{attachment-load-CP_Gaxt3.js → attachment-load-BxmYl1D1.js} +1 -1
- package/dist/gateway/static/root/assets/{automation-suggestion-card-BGKM_NDZ.js → automation-suggestion-card-BhZOirad.js} +1 -1
- package/dist/gateway/static/root/assets/automations-page-B8CnkoXv.js +6 -0
- package/dist/gateway/static/root/assets/{binary-plugins-IPr2EVnS.js → binary-plugins-DTTKsvgk.js} +1 -1
- package/dist/gateway/static/root/assets/{block-editor-B6aHEGA6.js → block-editor-C7se7iqg.js} +46 -46
- package/dist/gateway/static/root/assets/browser-settings-page-BCPWKI9V.js +8 -0
- package/dist/gateway/static/root/assets/browser-workflow-inputs-kxmStCcv.js +1 -0
- package/dist/gateway/static/root/assets/browser-workflows-page-CwYf9OM_.js +3 -0
- package/dist/gateway/static/root/assets/capabilities-settings-panel-C7lr_mX2.js +2 -0
- package/dist/gateway/static/root/assets/{capability-presets-api-CCX9-LjU.js → capability-presets-api-BZKh2cWX.js} +1 -1
- package/dist/gateway/static/root/assets/capability-presets-settings-panel-Ble9kHRu.js +2 -0
- package/dist/gateway/static/root/assets/{channel-recipient-api-MmLMLDWf.js → channel-recipient-api-r7tdbnJE.js} +1 -1
- package/dist/gateway/static/root/assets/channels-settings-CtQQQHrv.js +1 -0
- package/dist/gateway/static/root/assets/channels-status-swr-_VirfMKW.js +1 -0
- package/dist/gateway/static/root/assets/{connector-logo-BbjzIs87.js → connector-logo-BpnQYAxA.js} +1 -1
- package/dist/gateway/static/root/assets/connectors-page-BXWJSJeY.js +2 -0
- package/dist/gateway/static/root/assets/{desktop-pet-CYH5ZSXy.js → desktop-pet-B86W4a5c.js} +1 -1
- package/dist/gateway/static/root/assets/{desktop-pet-settings-DQLqGLc0.js → desktop-pet-settings-uv8Grtgk.js} +1 -1
- package/dist/gateway/static/root/assets/{directory-picker-path-field-ClsiXhmz.js → directory-picker-path-field-C4TTvf7p.js} +1 -1
- package/dist/gateway/static/root/assets/{dreaming-settings-CjMPPdzg.js → dreaming-settings-CzJAUPvM.js} +3 -3
- package/dist/gateway/static/root/assets/{extension-debug-page-57eizjhB.js → extension-debug-page-Ci2mOYUt.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-page-CsbSb3u1.js → extension-page-DeXdmhXQ.js} +1 -1
- package/dist/gateway/static/root/assets/extension-settings-page-C93vaOsU.js +1 -0
- package/dist/gateway/static/root/assets/{gateway-config-api-DIPJuzBZ.js → gateway-config-api-C31Hlblp.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-settings-CDLqAQY7.js → gateway-settings-D3zS6RZh.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-startup-retry-DrfSJtvT.js → gateway-startup-retry-CSRvCqxh.js} +1 -1
- package/dist/gateway/static/root/assets/goal-create-dialog-CWp2b7__.js +1 -0
- package/dist/gateway/static/root/assets/goal-detail-page-Dtm29FxD.js +4 -0
- package/dist/gateway/static/root/assets/{goals-config-api-lGC10UkU.js → goals-config-api-D4wYNRrf.js} +1 -1
- package/dist/gateway/static/root/assets/goals-page-jMzBJs6e.js +2 -0
- package/dist/gateway/static/root/assets/{goals-settings-BWq0pdrA.js → goals-settings-Bx2jVvhQ.js} +1 -1
- package/dist/gateway/static/root/assets/{heartbeat-settings-D4o8BJVv.js → heartbeat-settings-BEIF1eXy.js} +1 -1
- package/dist/gateway/static/root/assets/index-BXtJvaQl.css +1 -0
- package/dist/gateway/static/root/assets/index-HZdBKfk_.js +199 -0
- package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-6T2QYehS.js → keyboard-shortcuts-settings-DOEDpvTM.js} +1 -1
- package/dist/gateway/static/root/assets/local-app-workbench-page-CseW9jD3.js +2 -0
- package/dist/gateway/static/root/assets/{local-apps-page-DCjg2K9f.js → local-apps-page-B0OpGpxv.js} +1 -1
- package/dist/gateway/static/root/assets/{locale-store-Dar-xqQr.js → locale-store-Ys6RP7Be.js} +1 -1
- package/dist/gateway/static/root/assets/logs-page-DVqPbth5.js +7 -0
- package/dist/gateway/static/root/assets/{markdown-split-rt1XO43g.js → markdown-split-CEZwysCH.js} +1 -1
- package/dist/gateway/static/root/assets/{media-plugins-Bwo8CJuh.js → media-plugins-CpGKE7B0.js} +1 -1
- package/dist/gateway/static/root/assets/messages-BzI9Wx30.js +5 -0
- package/dist/gateway/static/root/assets/{notes-page-Dp-pkX7d.js → notes-page-CdiuDZ5a.js} +1 -1
- package/dist/gateway/static/root/assets/notes-workbench-mrc3xtpn.js +4 -0
- package/dist/gateway/static/root/assets/{page-tabs-CzZ4iKOb.js → page-tabs-BkH5AVV2.js} +1 -1
- package/dist/gateway/static/root/assets/{preview-open-alternatives-3E_Qa-58.js → preview-open-alternatives-CQai8f9D.js} +1 -1
- package/dist/gateway/static/root/assets/{product-open-page-B2T48Sbt.js → product-open-page-B2kSdB2b.js} +1 -1
- package/dist/gateway/static/root/assets/project-detail-page-CfhPJLkH.js +1 -0
- package/dist/gateway/static/root/assets/projects-page-BfMoKjdm.js +1 -0
- package/dist/gateway/static/root/assets/remote-access-hub-CrDtcsZ9.js +1 -0
- package/dist/gateway/static/root/assets/save-bar-controls-NGYnO7n7.js +1 -0
- package/dist/gateway/static/root/assets/schedule-field-nLOphnv3.js +1 -0
- package/dist/gateway/static/root/assets/{schema-form-DC-iU5IG.js → schema-form-D0e90ndE.js} +1 -1
- package/dist/gateway/static/root/assets/sessions-page-D3DbF3dV.js +1 -0
- package/dist/gateway/static/root/assets/settings-advanced-gate-BZp0O2dH.js +1 -0
- package/dist/gateway/static/root/assets/{settings-form-section-CNqF6IwY.js → settings-form-section-X2Sl-EAk.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-loading-skeleton-DkvwitK_.js → settings-loading-skeleton-DOnUabm7.js} +1 -1
- package/dist/gateway/static/root/assets/settings-page-C4UUNi1n.js +1 -0
- package/dist/gateway/static/root/assets/{settings-page-layout-DWvNgISx.js → settings-page-layout-C1yYqbT6.js} +1 -1
- package/dist/gateway/static/root/assets/setup-status-panel-84iao4DZ.js +1 -0
- package/dist/gateway/static/root/assets/{share-preview-page-DGpSPW-n.js → share-preview-page-Cfy_pH7V.js} +1 -1
- package/dist/gateway/static/root/assets/shares-settings-DtcwQvRG.js +1 -0
- package/dist/gateway/static/root/assets/skill-reload-api-L7j5Gc8Z.js +1 -0
- package/dist/gateway/static/root/assets/skills-page-1Ps8PjsP.js +2 -0
- package/dist/gateway/static/root/assets/{system-settings-panel-8TxxSbUw.js → system-settings-panel-Da81RJ6G.js} +1 -1
- package/dist/gateway/static/root/assets/{theme-store-B5FzMWOx.js → theme-store-DflSp9o4.js} +1 -1
- package/dist/gateway/static/root/assets/time-picker-BIkOW-2L.js +1 -0
- package/dist/gateway/static/root/assets/{typed-models-lib-DEGtSA5h.js → typed-models-lib--HptwFcD.js} +1 -1
- package/dist/gateway/static/root/assets/{use-channel-catalog-BDU6FneG.js → use-channel-catalog-CMHY4ZfW.js} +1 -1
- package/dist/gateway/static/root/assets/user-context-page-BYAAs2iW.js +1 -0
- package/dist/gateway/static/root/assets/voice-api-key-field-nvIZerol.js +1 -0
- package/dist/gateway/static/root/assets/work-discovery-page-J35JkJ7_.js +1 -0
- package/dist/gateway/static/root/assets/work-item-detail-page-C4wYDYqV.js +1 -0
- package/dist/gateway/static/root/assets/work-page-DMvitV6c.js +1 -0
- package/dist/gateway/static/root/assets/{workflow-run-setup-panel-Cwi8Pz7n.js → workflow-run-setup-panel-D96MHABy.js} +2 -2
- package/dist/gateway/static/root/assets/workflows-page-JMN0nMbM.js +11 -0
- package/dist/gateway/static/root/index.html +7 -7
- package/dist/package.js +1 -1
- package/dist/src/agent/agent-manager.d.ts +1 -0
- package/dist/src/agent/agent-manager.js +1 -0
- package/dist/src/agent/client-error-format.d.ts +1 -1
- package/dist/src/agent/client-error-format.js +9 -5
- package/dist/src/agent/embedded/run-for-session.js +38 -31
- package/dist/src/agent/embedded/session-runner.d.ts +1 -0
- package/dist/src/agent/embedded/session-runner.js +12 -4
- package/dist/src/agent/failover-error.d.ts +1 -1
- package/dist/src/agent/image/generation/openai-compatible-image-provider.d.ts +2 -6
- package/dist/src/agent/image/generation/openai-compatible-image-provider.js +1 -3
- package/dist/src/agent/image/generation/provider-registry.d.ts +5 -46
- package/dist/src/agent/image/generation/provider-registry.js +24 -73
- package/dist/{extensions/dashscope/src/image-generation-provider.d.ts → src/agent/image/generation/providers/dashscope.d.ts} +3 -6
- package/dist/{extensions/dashscope/src/image-generation-provider.js → src/agent/image/generation/providers/dashscope.js} +36 -59
- package/dist/{extensions/fal/src/image-generation-provider.d.ts → src/agent/image/generation/providers/fal.d.ts} +1 -1
- package/dist/{extensions/fal/src/image-generation-provider.js → src/agent/image/generation/providers/fal.js} +19 -29
- package/dist/{extensions/google/src/image-generation-provider.d.ts → src/agent/image/generation/providers/google.d.ts} +2 -2
- package/dist/{extensions/google/src/image-generation-provider.js → src/agent/image/generation/providers/google.js} +23 -30
- package/dist/{extensions/minimax/src/image-generation-provider.d.ts → src/agent/image/generation/providers/minimax.d.ts} +2 -5
- package/dist/{extensions/minimax/src/image-generation-provider.js → src/agent/image/generation/providers/minimax.js} +35 -51
- package/dist/{extensions/openai/src/image-generation-provider.d.ts → src/agent/image/generation/providers/openai.d.ts} +2 -2
- package/dist/{extensions/openai/src/image-generation-provider.js → src/agent/image/generation/providers/openai.js} +13 -38
- package/dist/src/agent/image/generation/runtime-types.d.ts +1 -0
- package/dist/src/agent/image/generation/runtime.d.ts +1 -3
- package/dist/src/agent/image/generation/runtime.js +6 -6
- package/dist/src/agent/image/generation/types.d.ts +23 -3
- package/dist/src/agent/image/index.d.ts +1 -1
- package/dist/src/agent/image/index.js +2 -2
- package/dist/src/agent/media-generation/runtime-shared.d.ts +2 -0
- package/dist/src/agent/media-generation/runtime-shared.js +1 -0
- package/dist/src/agent/outcomes/task-evaluation.d.ts +20 -0
- package/dist/src/agent/outcomes/task-evaluation.js +48 -0
- package/dist/src/agent/outcomes/task-verifier.d.ts +29 -0
- package/dist/src/agent/outcomes/task-verifier.js +71 -0
- package/dist/src/agent/prompt/memory/index.js +1 -1
- package/dist/src/agent/prompt/service-prompt-builder.js +32 -1
- package/dist/src/agent/service.js +1 -0
- package/dist/src/agent/service.types.d.ts +1 -0
- package/dist/src/agent/tools/browser/tool/browser-use-tool.d.ts +1 -7
- package/dist/src/agent/tools/browser/tool/browser-use-tool.js +2 -73
- package/dist/src/agent/tools/browser/tool/schemas.d.ts +1 -13
- package/dist/src/agent/tools/browser/tool/schemas.js +1 -9
- package/dist/src/agent/tools/browser-recipe-tool.d.ts +12 -0
- package/dist/src/agent/tools/browser-recipe-tool.js +113 -0
- package/dist/src/agent/tools/factory.d.ts +2 -0
- package/dist/src/agent/tools/factory.js +6 -1
- package/dist/src/agent/tools/image-generate-tool.d.ts +2 -0
- package/dist/src/agent/tools/image-generate-tool.js +14 -7
- package/dist/src/agent/tools/index.d.ts +1 -0
- package/dist/src/agent/tools/index.js +2 -1
- package/dist/src/auth/sync-provider-auth.d.ts +3 -0
- package/dist/src/auth/sync-provider-auth.js +12 -1
- package/dist/src/automations/domain/types.d.ts +13 -0
- package/dist/src/automations/domain/validation.d.ts +44 -24
- package/dist/src/automations/domain/validation.js +27 -18
- package/dist/src/automations/draft/automation-draft-validator.d.ts +6 -1
- package/dist/src/automations/draft/automation-draft-validator.js +1 -0
- package/dist/src/automations/service/action-executor.d.ts +1 -0
- package/dist/src/automations/service/action-executor.js +22 -0
- package/dist/src/browser/index.d.ts +0 -1
- package/dist/src/browser/index.js +1 -2
- package/dist/src/browser/pipeline/runner.d.ts +9 -2
- package/dist/src/browser/pipeline/runner.js +151 -105
- package/dist/src/browser/pipeline/schema.d.ts +21 -15
- package/dist/src/browser/pipeline/schema.js +93 -99
- package/dist/src/browser/recipes/index.d.ts +3 -0
- package/dist/src/browser/recipes/index.js +3 -0
- package/dist/src/browser/recipes/repository.d.ts +13 -0
- package/dist/src/browser/recipes/repository.js +81 -0
- package/dist/src/browser/recipes/runtime-service.d.ts +6 -0
- package/dist/src/browser/recipes/runtime-service.js +30 -0
- package/dist/src/browser/recipes/service.d.ts +36 -0
- package/dist/src/browser/recipes/service.js +186 -0
- package/dist/src/browser/recipes/types.d.ts +36 -0
- package/dist/src/cli/commands/browser-cli-helpers.js +6 -12
- package/dist/src/cli/commands/browser.js +4 -3
- package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
- package/dist/src/cli/commands/models.js +2 -5
- package/dist/src/cli/commands/onboard/model.js +3 -2
- package/dist/src/cli/commands/setup-shared/types.d.ts +1 -1
- package/dist/src/config/agent-profile.js +1 -1
- package/dist/src/config/index.js +2 -2
- package/dist/src/config/models-json.d.ts +6 -0
- package/dist/src/config/models-json.js +2 -6
- package/dist/src/config/schema.d.ts +29 -18
- package/dist/src/config/schema.js +44 -33
- package/dist/src/gateway/agents-admin.js +1 -1
- package/dist/src/gateway/hono/app.js +12 -6
- package/dist/src/gateway/hono/lib/config-payload.d.ts +1 -1
- package/dist/src/gateway/hono/lib/safe-providers-config.d.ts +0 -3
- package/dist/src/gateway/hono/lib/safe-providers-config.js +1 -3
- package/dist/src/gateway/hono/middleware/strict-rate-limit.d.ts +4 -0
- package/dist/src/gateway/hono/middleware/strict-rate-limit.js +8 -1
- package/dist/src/gateway/hono/routes/browser-workflows.d.ts +3 -0
- package/dist/src/gateway/hono/routes/browser-workflows.js +78 -0
- package/dist/src/gateway/hono/routes/config-patch/misc.js +2 -11
- package/dist/src/gateway/hono/routes/deps.d.ts +1 -0
- package/dist/src/gateway/hono/routes/home.js +1 -0
- package/dist/src/gateway/hono/routes/index.js +4 -0
- package/dist/src/gateway/hono/routes/interaction-state.d.ts +3 -0
- package/dist/src/gateway/hono/routes/interaction-state.js +45 -0
- package/dist/src/gateway/hono/routes/lazy-bundles.js +17 -2
- package/dist/src/gateway/hono/routes/memory.js +33 -4
- package/dist/src/gateway/hono/routes/models.js +151 -129
- package/dist/src/gateway/hono/routes/task-outcomes.d.ts +3 -0
- package/dist/src/gateway/hono/routes/task-outcomes.js +109 -0
- package/dist/src/gateway/hono/routes/you.d.ts +10 -2
- package/dist/src/gateway/hono/routes/you.js +184 -28
- package/dist/src/gateway/image-generation-setup.d.ts +40 -0
- package/dist/src/gateway/image-generation-setup.js +130 -0
- package/dist/src/gateway/rate-limit/buckets.d.ts +3 -0
- package/dist/src/gateway/rate-limit/buckets.js +12 -0
- package/dist/src/gateway/service/run-gateway-agent.js +84 -0
- package/dist/src/gateway/service.d.ts +6 -0
- package/dist/src/gateway/service.js +24 -0
- package/dist/src/media-shared/http/private-network.d.ts +1 -1
- package/dist/src/media-shared/http/private-network.js +1 -1
- package/dist/src/proactive/insight-repository.d.ts +2 -0
- package/dist/src/proactive/insight-repository.js +5 -2
- package/dist/src/proactive/run-processor.js +22 -1
- package/dist/src/proactive/types.d.ts +2 -0
- package/dist/src/proactive/value-score.d.ts +13 -0
- package/dist/src/proactive/value-score.js +30 -0
- package/dist/src/providers/auth-runtime/resolve-api-key.d.ts +2 -4
- package/dist/src/providers/auth-runtime/resolve-api-key.js +2 -4
- package/dist/src/providers/auth-runtime/resolve-auth.d.ts +3 -4
- package/dist/src/providers/auth-runtime/resolve-auth.js +18 -18
- package/dist/src/providers/domestic-presets.d.ts +22 -0
- package/dist/src/providers/domestic-presets.js +25 -0
- package/dist/src/providers/model-catalog-store.d.ts +71 -0
- package/dist/src/providers/model-catalog-store.js +102 -0
- package/dist/src/providers/model-catalog-sync-service.d.ts +41 -0
- package/dist/src/providers/model-catalog-sync-service.js +142 -0
- package/dist/src/providers/model-reference-auditor.d.ts +14 -0
- package/dist/src/providers/model-reference-auditor.js +71 -0
- package/dist/src/providers/model-registry.d.ts +4 -1
- package/dist/src/providers/model-registry.js +35 -2
- package/dist/src/providers/presentation.js +2 -0
- package/dist/src/providers/xopc-cloud-connection.d.ts +51 -0
- package/dist/src/providers/xopc-cloud-connection.js +196 -0
- package/dist/src/session/index.d.ts +1 -1
- package/dist/src/session/index.js +2 -2
- package/dist/src/session/session-title.d.ts +2 -0
- package/dist/src/session/session-title.js +24 -3
- package/dist/src/share/share-types.js +5 -5
- package/dist/src/share/site-share-types.d.ts +1 -1
- package/dist/src/share/site-share-types.js +5 -5
- package/dist/src/storage/sqlite/index.d.ts +3 -0
- package/dist/src/storage/sqlite/index.js +4 -1
- package/dist/src/storage/sqlite/interaction-state-repository.d.ts +17 -0
- package/dist/src/storage/sqlite/interaction-state-repository.js +60 -0
- package/dist/src/storage/sqlite/memory-records-repository.js +1 -1
- package/dist/src/storage/sqlite/migrations/053_browser_recipes.sql +45 -0
- package/dist/src/storage/sqlite/migrations/054_task_outcomes.sql +24 -0
- package/dist/src/storage/sqlite/migrations/055_relationship_settings.sql +14 -0
- package/dist/src/storage/sqlite/migrations/056_task_verification.sql +6 -0
- package/dist/src/storage/sqlite/migrations/057_interaction_states.sql +11 -0
- package/dist/src/storage/sqlite/migrations/058_proactive_value.sql +3 -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/relationship-settings-repository.d.ts +17 -0
- package/dist/src/storage/sqlite/relationship-settings-repository.js +64 -0
- package/dist/src/storage/sqlite/schema.js +1 -1
- package/dist/src/storage/sqlite/schema.sql +46 -0
- package/dist/src/storage/sqlite/task-outcome-repository.d.ts +90 -0
- package/dist/src/storage/sqlite/task-outcome-repository.js +138 -0
- package/dist/src/user-context/interaction-state.d.ts +13 -0
- package/dist/src/user-context/interaction-state.js +69 -0
- package/dist/src/user-context/memory-use-audit.d.ts +10 -0
- package/dist/src/user-context/memory-use-audit.js +25 -0
- package/dist/src/user-context/personal-playbook.d.ts +11 -0
- package/dist/src/user-context/personal-playbook.js +41 -0
- package/dist/src/user-context/projection.d.ts +4 -0
- package/dist/src/user-context/projection.js +5 -1
- package/dist/src/user-context/relationship-continuity.d.ts +14 -0
- package/dist/src/user-context/relationship-continuity.js +51 -0
- package/package.json +5 -7
- package/dist/extensions/dashscope/src/index.d.ts +0 -4
- package/dist/extensions/dashscope/src/index.js +0 -2
- package/dist/extensions/dashscope/xopc.extension.json +0 -15
- package/dist/extensions/fal/src/index.d.ts +0 -4
- package/dist/extensions/fal/src/index.js +0 -2
- package/dist/extensions/fal/xopc.extension.json +0 -14
- package/dist/extensions/google/src/index.d.ts +0 -4
- package/dist/extensions/google/src/index.js +0 -2
- package/dist/extensions/google/xopc.extension.json +0 -14
- package/dist/extensions/minimax/src/index.d.ts +0 -4
- package/dist/extensions/minimax/src/index.js +0 -2
- package/dist/extensions/minimax/xopc.extension.json +0 -15
- package/dist/extensions/openai/src/index.d.ts +0 -4
- package/dist/extensions/openai/src/index.js +0 -2
- package/dist/extensions/openai/xopc.extension.json +0 -14
- package/dist/gateway/static/root/assets/action-boundary-settings-panel-BIVBUiNT.js +0 -1
- package/dist/gateway/static/root/assets/agents-_qbUaYbs.js +0 -2
- package/dist/gateway/static/root/assets/apps-page-0sPqD0FK.js +0 -1
- package/dist/gateway/static/root/assets/automations-page-BxWBuBsE.js +0 -6
- package/dist/gateway/static/root/assets/browser-settings-page-C499b9AH.js +0 -8
- package/dist/gateway/static/root/assets/capability-presets-settings-panel-Dva9SiPK.js +0 -2
- package/dist/gateway/static/root/assets/channels-settings-DNAU7u9o.js +0 -1
- package/dist/gateway/static/root/assets/channels-status-swr-CIOH7tgn.js +0 -1
- package/dist/gateway/static/root/assets/connectors-page-TwiBp8vY.js +0 -2
- package/dist/gateway/static/root/assets/extension-settings-page-DKA9-lyP.js +0 -1
- package/dist/gateway/static/root/assets/goal-create-dialog-Q3B0E-0s.js +0 -1
- package/dist/gateway/static/root/assets/goal-detail-page-C5VAK04G.js +0 -4
- package/dist/gateway/static/root/assets/goals-page-BJb-5IYw.js +0 -2
- package/dist/gateway/static/root/assets/index-CkUHH170.css +0 -1
- package/dist/gateway/static/root/assets/index-vq_cJZJC.js +0 -199
- package/dist/gateway/static/root/assets/local-app-workbench-page-euH17Kvb.js +0 -2
- package/dist/gateway/static/root/assets/logs-page-CyYCBqym.js +0 -7
- package/dist/gateway/static/root/assets/messages-CxySDn9d.js +0 -5
- package/dist/gateway/static/root/assets/models-hub-panel-DObxxjc9.js +0 -2
- package/dist/gateway/static/root/assets/notes-workbench-CCb4RXcZ.js +0 -4
- package/dist/gateway/static/root/assets/project-detail-page-BvEcriRC.js +0 -1
- package/dist/gateway/static/root/assets/projects-page-B_e79MRJ.js +0 -1
- package/dist/gateway/static/root/assets/remote-access-hub-DGcqnYfR.js +0 -1
- package/dist/gateway/static/root/assets/save-bar-controls-CkeKasGm.js +0 -1
- package/dist/gateway/static/root/assets/schedule-field-TkqUL3wm.js +0 -1
- package/dist/gateway/static/root/assets/sessions-page-DQZhrDJ8.js +0 -1
- package/dist/gateway/static/root/assets/settings-advanced-gate-BkdeN99Y.js +0 -1
- package/dist/gateway/static/root/assets/settings-collapsible-section-Dpqth3oA.js +0 -1
- package/dist/gateway/static/root/assets/settings-page-qPG7I2zd.js +0 -1
- package/dist/gateway/static/root/assets/setup-status-panel-lwRAh9aw.js +0 -1
- package/dist/gateway/static/root/assets/shares-settings-BGj9IVUr.js +0 -1
- package/dist/gateway/static/root/assets/skill-reload-api-B2UBAs5U.js +0 -1
- package/dist/gateway/static/root/assets/skills-page-DdjzFZ8I.js +0 -2
- package/dist/gateway/static/root/assets/user-context-page-BTTZpAGV.js +0 -1
- package/dist/gateway/static/root/assets/voice-api-key-field-DuDQd-WU.js +0 -1
- package/dist/gateway/static/root/assets/work-discovery-page-BUVkVCsW.js +0 -1
- package/dist/gateway/static/root/assets/work-item-detail-page-DeEPPu4n.js +0 -1
- package/dist/gateway/static/root/assets/work-page-DQNUyTUq.js +0 -1
- package/dist/gateway/static/root/assets/workflows-page-BIy4wrzO.js +0 -11
- package/dist/src/agent/image/generation/bundled-registry.d.ts +0 -18
- package/dist/src/agent/image/generation/bundled-registry.js +0 -35
- package/dist/src/agent/image/generation/bundled.d.ts +0 -10
- package/dist/src/agent/image/generation/bundled.js +0 -15
- package/dist/src/agent/image/generation/image-provider-ui.d.ts +0 -20
- package/dist/src/browser/pipeline/source.d.ts +0 -9
- package/dist/src/browser/pipeline/source.js +0 -77
- package/dist/src/gateway/image-capabilities.d.ts +0 -28
- package/dist/src/gateway/image-capabilities.js +0 -78
- package/dist/src/generated/bundled-image-generation-providers.d.ts +0 -14
- package/dist/src/generated/bundled-image-generation-providers.js +0 -17
- /package/dist/src/{agent/image/generation/image-provider-ui.js → browser/recipes/types.js} +0 -0
|
@@ -782,16 +782,16 @@ export declare const WorkspaceConfigSchema: z.ZodOptional<z.ZodObject<{
|
|
|
782
782
|
}, z.core.$strip>>;
|
|
783
783
|
export type WorkspaceConfig = z.infer<typeof WorkspaceConfigSchema>;
|
|
784
784
|
export declare const GatewayBindModeSchema: z.ZodEnum<{
|
|
785
|
-
custom: "custom";
|
|
786
785
|
auto: "auto";
|
|
786
|
+
custom: "custom";
|
|
787
787
|
loopback: "loopback";
|
|
788
788
|
lan: "lan";
|
|
789
789
|
tailnet: "tailnet";
|
|
790
790
|
}>;
|
|
791
791
|
export declare const GatewayConfigSchema: z.ZodDefault<z.ZodObject<{
|
|
792
792
|
bind: z.ZodOptional<z.ZodEnum<{
|
|
793
|
-
custom: "custom";
|
|
794
793
|
auto: "auto";
|
|
794
|
+
custom: "custom";
|
|
795
795
|
loopback: "loopback";
|
|
796
796
|
lan: "lan";
|
|
797
797
|
tailnet: "tailnet";
|
|
@@ -934,6 +934,11 @@ export declare const GatewayConfigSchema: z.ZodDefault<z.ZodObject<{
|
|
|
934
934
|
export declare const ModelsDevConfigSchema: z.ZodDefault<z.ZodObject<{
|
|
935
935
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
936
936
|
}, z.core.$strip>>;
|
|
937
|
+
export declare const ModelCatalogConfigSchema: z.ZodDefault<z.ZodObject<{
|
|
938
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
939
|
+
refreshOnStartup: z.ZodDefault<z.ZodBoolean>;
|
|
940
|
+
intervalHours: z.ZodDefault<z.ZodNumber>;
|
|
941
|
+
}, z.core.$strict>>;
|
|
937
942
|
export declare const STTProviderConfigSchema: z.ZodObject<{
|
|
938
943
|
apiKey: z.ZodOptional<z.ZodString>;
|
|
939
944
|
model: z.ZodOptional<z.ZodString>;
|
|
@@ -1247,15 +1252,14 @@ export declare const ProviderRequestOverridesSchema: z.ZodObject<{
|
|
|
1247
1252
|
}, z.core.$strict>;
|
|
1248
1253
|
/**
|
|
1249
1254
|
* Generic per-vendor provider config — used by image / audio / video
|
|
1250
|
-
* capability providers via `cfg.providers.<id>`.
|
|
1251
|
-
* everything optional) so adding a new vendor never requires a config
|
|
1252
|
-
* migration.
|
|
1255
|
+
* capability providers via `cfg.providers.<id>`.
|
|
1253
1256
|
*/
|
|
1254
1257
|
export declare const ProviderAuthConfigSchema: z.ZodObject<{
|
|
1255
|
-
apiKey: z.ZodOptional<z.ZodString>;
|
|
1256
1258
|
baseUrl: z.ZodOptional<z.ZodString>;
|
|
1257
|
-
region: z.ZodOptional<z.
|
|
1258
|
-
|
|
1259
|
+
region: z.ZodOptional<z.ZodEnum<{
|
|
1260
|
+
cn: "cn";
|
|
1261
|
+
intl: "intl";
|
|
1262
|
+
}>>;
|
|
1259
1263
|
request: z.ZodOptional<z.ZodObject<{
|
|
1260
1264
|
timeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
1261
1265
|
headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
@@ -1268,15 +1272,16 @@ export declare const ProviderAuthConfigSchema: z.ZodObject<{
|
|
|
1268
1272
|
}, z.core.$strict>;
|
|
1269
1273
|
export type ProviderAuthConfig = z.infer<typeof ProviderAuthConfigSchema>;
|
|
1270
1274
|
/**
|
|
1271
|
-
* `cfg.providers.<id>`
|
|
1272
|
-
*
|
|
1275
|
+
* `cfg.providers.<id>` stores non-secret connection settings. Credentials
|
|
1276
|
+
* live in the credential store or environment. Every entry is validated by
|
|
1273
1277
|
* {@link ProviderAuthConfigSchema}.
|
|
1274
1278
|
*/
|
|
1275
1279
|
export declare const ProvidersConfigSchema: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
1276
|
-
apiKey: z.ZodOptional<z.ZodString>;
|
|
1277
1280
|
baseUrl: z.ZodOptional<z.ZodString>;
|
|
1278
|
-
region: z.ZodOptional<z.
|
|
1279
|
-
|
|
1281
|
+
region: z.ZodOptional<z.ZodEnum<{
|
|
1282
|
+
cn: "cn";
|
|
1283
|
+
intl: "intl";
|
|
1284
|
+
}>>;
|
|
1280
1285
|
request: z.ZodOptional<z.ZodObject<{
|
|
1281
1286
|
timeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
1282
1287
|
headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
@@ -1951,8 +1956,8 @@ export declare const ConfigSchema: z.ZodDefault<z.ZodObject<{
|
|
|
1951
1956
|
channels: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
1952
1957
|
gateway: z.ZodDefault<z.ZodObject<{
|
|
1953
1958
|
bind: z.ZodOptional<z.ZodEnum<{
|
|
1954
|
-
custom: "custom";
|
|
1955
1959
|
auto: "auto";
|
|
1960
|
+
custom: "custom";
|
|
1956
1961
|
loopback: "loopback";
|
|
1957
1962
|
lan: "lan";
|
|
1958
1963
|
tailnet: "tailnet";
|
|
@@ -2330,10 +2335,11 @@ export declare const ConfigSchema: z.ZodDefault<z.ZodObject<{
|
|
|
2330
2335
|
}, z.core.$strict>>;
|
|
2331
2336
|
extensions: z.ZodDefault<z.ZodType<Record<string, unknown>, unknown, z.core.$ZodTypeInternals<Record<string, unknown>, unknown>>>;
|
|
2332
2337
|
providers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
2333
|
-
apiKey: z.ZodOptional<z.ZodString>;
|
|
2334
2338
|
baseUrl: z.ZodOptional<z.ZodString>;
|
|
2335
|
-
region: z.ZodOptional<z.
|
|
2336
|
-
|
|
2339
|
+
region: z.ZodOptional<z.ZodEnum<{
|
|
2340
|
+
cn: "cn";
|
|
2341
|
+
intl: "intl";
|
|
2342
|
+
}>>;
|
|
2337
2343
|
request: z.ZodOptional<z.ZodObject<{
|
|
2338
2344
|
timeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
2339
2345
|
headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
@@ -2347,6 +2353,11 @@ export declare const ConfigSchema: z.ZodDefault<z.ZodObject<{
|
|
|
2347
2353
|
modelsDev: z.ZodDefault<z.ZodObject<{
|
|
2348
2354
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
2349
2355
|
}, z.core.$strip>>;
|
|
2356
|
+
modelCatalog: z.ZodDefault<z.ZodObject<{
|
|
2357
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
2358
|
+
refreshOnStartup: z.ZodDefault<z.ZodBoolean>;
|
|
2359
|
+
intervalHours: z.ZodDefault<z.ZodNumber>;
|
|
2360
|
+
}, z.core.$strict>>;
|
|
2350
2361
|
messages: z.ZodOptional<z.ZodObject<{
|
|
2351
2362
|
tts: z.ZodOptional<z.ZodObject<{
|
|
2352
2363
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
@@ -2446,6 +2457,6 @@ export interface ParsedModelRef {
|
|
|
2446
2457
|
}
|
|
2447
2458
|
export declare function getAgentDefaultModelRef(config: Config): string | undefined;
|
|
2448
2459
|
export declare function getAgentDefaultImageModelConfig(config: Config): AgentModelConfig | undefined;
|
|
2449
|
-
export declare function getAgentDefaultImageGenerationModelConfig(config: Config): AgentImageGenerationModelConfig | undefined;
|
|
2460
|
+
export declare function getAgentDefaultImageGenerationModelConfig(config: Config, agentId: string): AgentImageGenerationModelConfig | undefined;
|
|
2450
2461
|
/** `provider/model` or null when invalid. */
|
|
2451
2462
|
export declare function parseModelRef(ref: string): ParsedModelRef | null;
|
|
@@ -26,9 +26,9 @@ function getAgentDefaultModelRef(config) {
|
|
|
26
26
|
applyModels(agent.models);
|
|
27
27
|
return modelRef;
|
|
28
28
|
}
|
|
29
|
-
function getAgentDefaultModelsConfig(config) {
|
|
29
|
+
function getAgentDefaultModelsConfig(config, requestedAgentId) {
|
|
30
30
|
const list = Array.isArray(config.agents?.list) ? config.agents.list : [];
|
|
31
|
-
const defaultId = config.agents?.default?.trim() || list.find((entry) => entry.default === true)?.id?.trim() || list[0]?.id;
|
|
31
|
+
const defaultId = requestedAgentId?.trim() || config.agents?.default?.trim() || list.find((entry) => entry.default === true)?.id?.trim() || list[0]?.id;
|
|
32
32
|
const agent = list.find((entry) => entry.enabled !== false && entry.id === defaultId) ?? list[0];
|
|
33
33
|
if (!agent) return void 0;
|
|
34
34
|
let modelConfig;
|
|
@@ -51,8 +51,8 @@ function getAgentDefaultModelsConfig(config) {
|
|
|
51
51
|
function getAgentDefaultImageModelConfig(config) {
|
|
52
52
|
return getAgentDefaultModelsConfig(config)?.imageModel;
|
|
53
53
|
}
|
|
54
|
-
function getAgentDefaultImageGenerationModelConfig(config) {
|
|
55
|
-
return getAgentDefaultModelsConfig(config)?.imageGenerationModel;
|
|
54
|
+
function getAgentDefaultImageGenerationModelConfig(config, agentId) {
|
|
55
|
+
return getAgentDefaultModelsConfig(config, agentId)?.imageGenerationModel;
|
|
56
56
|
}
|
|
57
57
|
/** `provider/model` or null when invalid. */
|
|
58
58
|
function parseModelRef(ref) {
|
|
@@ -64,7 +64,7 @@ function parseModelRef(ref) {
|
|
|
64
64
|
model: trimmed.slice(idx + 1).trim()
|
|
65
65
|
};
|
|
66
66
|
}
|
|
67
|
-
var AgentModelRefSchema, AgentImageGenerationModelSchema, AgentTypedModelRoleSchema, AgentTypedModelRolesSchema, AgentModelsSchema, AgentsConfigSchema, BrowserCloudConfigSchema, BrowserExtensionConfigSchema, BrowserCloakConfigSchema, BrowserConfigSchema, BindingMatchSchema, BindingRuleSchema, BindingsConfigSchema, SessionDmScopeSchema, SessionStorageConfigSchema, SessionResetModeSchema, SessionResetConfigSchema, SessionResetByTypeSchema, SessionScopeSchema, SessionConfigSchema, ChannelsConfigSchema, SearchProviderEntrySchema, WebSearchConfigSchema, WebsiteBlocklistSchema, WebToolsConfigSchema, ToolsConfigSchema, GatewayAuthRateLimitSchema, GatewaySecuritySchema, GatewayTrustedProxySchema, GatewayAuthSchema, GatewayTailscaleConsentSchema, GatewayTailscaleSchema, GatewayRemoteSchema, GatewayTlsSchema, GatewayModeSchema, HeartbeatConfigSchema, GatewayChannelConnectDeferModeSchema, TunnelConsentSchema, TunnelConfigSchema, WorkspaceImportConfigSchema, WorkspaceConfigSchema, GatewayBindModeSchema, GatewayConfigSchema, ModelsDevConfigSchema, SttProviderConfigCatchallSchema, STTProviderConfigSchema, STTFallbackConfigSchema, MediaUnderstandingCapabilitiesSchema, MediaUnderstandingModelSchema, STTConfigSchema, TtsProviderConfigCatchallSchema, TTSProviderConfigSchema, TTSFallbackConfigSchema, TTSModelOverridesConfigSchema, TTSEdgeConfigSchema, TTSSummarizationConfigSchema, TTSConfigSchema, VoiceRefinementConfigSchema, VoiceConfigSchema, MessagesConfigSchema, ToolsMediaAudioConfigSchema, ToolsMediaConfigSchema, ProviderAzureConfigSchema, ProviderRequestOverridesSchema, ProviderAuthConfigSchema, ProvidersConfigSchema, ExtensionSecurityConfigSchema, ExtensionSlotsConfigSchema, ExtensionsConfigSchema, UpdateAutoConfigSchema, GoalNotificationEventSchema, GoalNotificationTargetSchema, GoalNotificationsConfigSchema, GoalsConfigSchema, UpdateConfigSchema, CommandsConfigSchema, TuiConfigSchema, McpHttpUrlSchema, ConnectorSecretReferenceSchema, McpConfigScalarSchema, McpServerSchema, McpConfigSchema, CodeIntelligenceConfigSchema, ConnectorsConfigSchema, ExperimentalConfigSchema, ConfigSchema;
|
|
67
|
+
var AgentModelRefSchema, AgentImageGenerationModelSchema, AgentTypedModelRoleSchema, AgentTypedModelRolesSchema, AgentModelsSchema, AgentsConfigSchema, BrowserCloudConfigSchema, BrowserExtensionConfigSchema, BrowserCloakConfigSchema, BrowserConfigSchema, BindingMatchSchema, BindingRuleSchema, BindingsConfigSchema, SessionDmScopeSchema, SessionStorageConfigSchema, SessionResetModeSchema, SessionResetConfigSchema, SessionResetByTypeSchema, SessionScopeSchema, SessionConfigSchema, ChannelsConfigSchema, SearchProviderEntrySchema, WebSearchConfigSchema, WebsiteBlocklistSchema, WebToolsConfigSchema, ToolsConfigSchema, GatewayAuthRateLimitSchema, GatewaySecuritySchema, GatewayTrustedProxySchema, GatewayAuthSchema, GatewayTailscaleConsentSchema, GatewayTailscaleSchema, GatewayRemoteSchema, GatewayTlsSchema, GatewayModeSchema, HeartbeatConfigSchema, GatewayChannelConnectDeferModeSchema, TunnelConsentSchema, TunnelConfigSchema, WorkspaceImportConfigSchema, WorkspaceConfigSchema, GatewayBindModeSchema, GatewayConfigSchema, ModelsDevConfigSchema, ModelCatalogConfigSchema, SttProviderConfigCatchallSchema, STTProviderConfigSchema, STTFallbackConfigSchema, MediaUnderstandingCapabilitiesSchema, MediaUnderstandingModelSchema, STTConfigSchema, TtsProviderConfigCatchallSchema, TTSProviderConfigSchema, TTSFallbackConfigSchema, TTSModelOverridesConfigSchema, TTSEdgeConfigSchema, TTSSummarizationConfigSchema, TTSConfigSchema, VoiceRefinementConfigSchema, VoiceConfigSchema, MessagesConfigSchema, ToolsMediaAudioConfigSchema, ToolsMediaConfigSchema, ProviderAzureConfigSchema, ProviderRequestOverridesSchema, ProviderAuthConfigSchema, ProvidersConfigSchema, ExtensionSecurityConfigSchema, ExtensionSlotsConfigSchema, ExtensionsConfigSchema, UpdateAutoConfigSchema, GoalNotificationEventSchema, GoalNotificationTargetSchema, GoalNotificationsConfigSchema, GoalsConfigSchema, UpdateConfigSchema, CommandsConfigSchema, TuiConfigSchema, McpHttpUrlSchema, ConnectorSecretReferenceSchema, McpConfigScalarSchema, McpServerSchema, McpConfigSchema, CodeIntelligenceConfigSchema, ConnectorsConfigSchema, ExperimentalConfigSchema, ConfigSchema;
|
|
68
68
|
var init_schema = __esmMin((() => {
|
|
69
69
|
init_schema$1();
|
|
70
70
|
init_preset_chain();
|
|
@@ -510,12 +510,12 @@ strict: z.boolean().optional() }).optional();
|
|
|
510
510
|
enabled: z.boolean().default(true),
|
|
511
511
|
/** Default TTL in ms (default 24h). */
|
|
512
512
|
defaultTtlMs: z.number().min(6e4).max(6048e5).default(864e5),
|
|
513
|
-
/** Maximum TTL in ms (default
|
|
514
|
-
maxTtlMs: z.number().min(6e4).max(2592e6).default(
|
|
515
|
-
/** Maximum concurrent active shares (default
|
|
516
|
-
maxActiveShares: z.number().min(1).max(1e4).default(
|
|
517
|
-
/** Maximum shareable file size in bytes (default
|
|
518
|
-
maxFileSize: z.number().min(1048576).max(10737418240).default(
|
|
513
|
+
/** Maximum TTL in ms (default 30 days). */
|
|
514
|
+
maxTtlMs: z.number().min(6e4).max(2592e6).default(2592e6),
|
|
515
|
+
/** Maximum concurrent active shares (default 500). */
|
|
516
|
+
maxActiveShares: z.number().min(1).max(1e4).default(500),
|
|
517
|
+
/** Maximum shareable file size in bytes (default 500 MB). */
|
|
518
|
+
maxFileSize: z.number().min(1048576).max(10737418240).default(524288e3),
|
|
519
519
|
/** MIME types allowed for inline preview (?inline=1). */
|
|
520
520
|
inlinePreviewMimes: z.array(z.string()).default([
|
|
521
521
|
"image/png",
|
|
@@ -532,10 +532,10 @@ strict: z.boolean().optional() }).optional();
|
|
|
532
532
|
/** Folder-sharing controls (browse + ZIP). */
|
|
533
533
|
directory: z.object({
|
|
534
534
|
enabled: z.boolean().default(true),
|
|
535
|
-
/** Maximum folder size in bytes at scan time (default
|
|
536
|
-
maxFolderSize: z.number().int().min(1048576).max(10737418240).default(
|
|
535
|
+
/** Maximum folder size in bytes at scan time (default 2 GB). */
|
|
536
|
+
maxFolderSize: z.number().int().min(1048576).max(10737418240).default(2147483648),
|
|
537
537
|
/** Maximum number of entries scanned for a single folder share. */
|
|
538
|
-
maxFileCount: z.number().int().min(1).max(1e5).default(
|
|
538
|
+
maxFileCount: z.number().int().min(1).max(1e5).default(1e4),
|
|
539
539
|
/** Traversal depth cap (defense against recursive symlinks). */
|
|
540
540
|
maxDepth: z.number().int().min(1).max(64).default(20),
|
|
541
541
|
/** In-memory directory listing cache TTL. */
|
|
@@ -544,8 +544,8 @@ strict: z.boolean().optional() }).optional();
|
|
|
544
544
|
zipConcurrency: z.number().int().min(1).max(8).default(1)
|
|
545
545
|
}).default({
|
|
546
546
|
enabled: true,
|
|
547
|
-
maxFolderSize:
|
|
548
|
-
maxFileCount:
|
|
547
|
+
maxFolderSize: 2147483648,
|
|
548
|
+
maxFileCount: 1e4,
|
|
549
549
|
maxDepth: 20,
|
|
550
550
|
listingCacheMs: 6e4,
|
|
551
551
|
zipConcurrency: 1
|
|
@@ -556,24 +556,24 @@ strict: z.boolean().optional() }).optional();
|
|
|
556
556
|
enabled: z.boolean().default(true),
|
|
557
557
|
/** Public host suffix that subdomain shares are served under. */
|
|
558
558
|
publicHostSuffix: z.string().min(1).default("share.xopc.ai"),
|
|
559
|
-
/** Default TTL in ms (default
|
|
560
|
-
defaultTtlMs: z.number().int().min(6e4).max(6048e5).default(
|
|
561
|
-
/** Maximum TTL in ms (default
|
|
562
|
-
maxTtlMs: z.number().int().min(6e4).max(2592e6).default(
|
|
563
|
-
/** Maximum concurrent active site shares. */
|
|
564
|
-
maxActiveSites: z.number().int().min(1).max(1e3).default(
|
|
559
|
+
/** Default TTL in ms (default 24h). */
|
|
560
|
+
defaultTtlMs: z.number().int().min(6e4).max(6048e5).default(864e5),
|
|
561
|
+
/** Maximum TTL in ms (default 30 days). */
|
|
562
|
+
maxTtlMs: z.number().int().min(6e4).max(2592e6).default(2592e6),
|
|
563
|
+
/** Maximum concurrent active site shares (default 50). */
|
|
564
|
+
maxActiveSites: z.number().int().min(1).max(1e3).default(50),
|
|
565
565
|
static: z.object({
|
|
566
566
|
enabled: z.boolean().default(true),
|
|
567
567
|
/** Maximum total bytes of files served per static site. */
|
|
568
|
-
maxRootDirSize: z.number().int().min(1048576).max(10737418240).default(
|
|
568
|
+
maxRootDirSize: z.number().int().min(1048576).max(10737418240).default(1073741824),
|
|
569
569
|
/** Maximum file count under root dir. */
|
|
570
|
-
maxFileCount: z.number().int().min(1).max(1e5).default(
|
|
570
|
+
maxFileCount: z.number().int().min(1).max(1e5).default(2e4),
|
|
571
571
|
/** Whether HTML/CSS rewrite of absolute paths is on by default. */
|
|
572
572
|
rewriteEnabledByDefault: z.boolean().default(false)
|
|
573
573
|
}).default({
|
|
574
574
|
enabled: true,
|
|
575
|
-
maxRootDirSize:
|
|
576
|
-
maxFileCount:
|
|
575
|
+
maxRootDirSize: 1073741824,
|
|
576
|
+
maxFileCount: 2e4,
|
|
577
577
|
rewriteEnabledByDefault: false
|
|
578
578
|
}),
|
|
579
579
|
proxy: z.object({
|
|
@@ -645,6 +645,15 @@ strict: z.boolean().optional() }).optional();
|
|
|
645
645
|
skillsStoreBaseUrl: "https://store.xopc.ai"
|
|
646
646
|
});
|
|
647
647
|
ModelsDevConfigSchema = z.object({ enabled: z.boolean().default(true) }).default({ enabled: true });
|
|
648
|
+
ModelCatalogConfigSchema = z.object({
|
|
649
|
+
enabled: z.boolean().default(true),
|
|
650
|
+
refreshOnStartup: z.boolean().default(true),
|
|
651
|
+
intervalHours: z.number().min(.25).default(6)
|
|
652
|
+
}).strict().default({
|
|
653
|
+
enabled: true,
|
|
654
|
+
refreshOnStartup: true,
|
|
655
|
+
intervalHours: 6
|
|
656
|
+
});
|
|
648
657
|
SttProviderConfigCatchallSchema = z.union([
|
|
649
658
|
z.string(),
|
|
650
659
|
z.number(),
|
|
@@ -804,14 +813,10 @@ tts: TTSConfigSchema.optional() }).optional();
|
|
|
804
813
|
headers: z.record(z.string(), z.string()).optional()
|
|
805
814
|
}).strict();
|
|
806
815
|
ProviderAuthConfigSchema = z.object({
|
|
807
|
-
/** Static API key (api-key / azure-key modes). */
|
|
808
|
-
apiKey: z.string().optional(),
|
|
809
816
|
/** Override the default REST base URL. */
|
|
810
817
|
baseUrl: z.string().url().optional(),
|
|
811
|
-
/**
|
|
812
|
-
region: z.
|
|
813
|
-
/** Image-only base URL override (DashScope splits image vs LLM). */
|
|
814
|
-
imageBaseUrl: z.string().url().optional(),
|
|
818
|
+
/** Provider deployment region. */
|
|
819
|
+
region: z.enum(["cn", "intl"]).optional(),
|
|
815
820
|
/** Per-vendor request overrides. */
|
|
816
821
|
request: ProviderRequestOverridesSchema.optional(),
|
|
817
822
|
/** Azure OpenAI deployment overrides; only consumed by OpenAI image provider. */
|
|
@@ -1015,6 +1020,7 @@ workDiscoveryOnboarding: z.boolean().default(true) }).strict().default({ workDis
|
|
|
1015
1020
|
/** Per-vendor capability provider config (image / audio / video). */
|
|
1016
1021
|
providers: ProvidersConfigSchema.optional(),
|
|
1017
1022
|
modelsDev: ModelsDevConfigSchema,
|
|
1023
|
+
modelCatalog: ModelCatalogConfigSchema,
|
|
1018
1024
|
/** Delivery / presentation concerns (currently `tts`). */
|
|
1019
1025
|
messages: MessagesConfigSchema,
|
|
1020
1026
|
/** User-facing voice input behavior beyond provider selection. */
|
|
@@ -1168,9 +1174,14 @@ workDiscoveryOnboarding: z.boolean().default(true) }).strict().default({ workDis
|
|
|
1168
1174
|
slots: {}
|
|
1169
1175
|
},
|
|
1170
1176
|
modelsDev: { enabled: true },
|
|
1177
|
+
modelCatalog: {
|
|
1178
|
+
enabled: true,
|
|
1179
|
+
refreshOnStartup: true,
|
|
1180
|
+
intervalHours: 6
|
|
1181
|
+
},
|
|
1171
1182
|
tui: {}
|
|
1172
1183
|
});
|
|
1173
1184
|
}));
|
|
1174
1185
|
//#endregion
|
|
1175
1186
|
init_schema();
|
|
1176
|
-
export { AgentImageGenerationModelSchema, AgentModelRefSchema, AgentModelsSchema, AgentTypedModelRoleSchema, AgentsConfigSchema, BindingMatchSchema, BindingRuleSchema, BindingsConfigSchema, BrowserConfigSchema, ChannelsConfigSchema, CodeIntelligenceConfigSchema, CommandsConfigSchema, ConfigSchema, ConnectorsConfigSchema, ExperimentalConfigSchema, ExtensionSecurityConfigSchema, ExtensionSlotsConfigSchema, ExtensionsConfigSchema, GatewayAuthRateLimitSchema, GatewayAuthSchema, GatewayBindModeSchema, GatewayChannelConnectDeferModeSchema, GatewayConfigSchema, GatewayModeSchema, GatewayRemoteSchema, GatewaySecuritySchema, GatewayTailscaleConsentSchema, GatewayTailscaleSchema, GatewayTlsSchema, GatewayTrustedProxySchema, GoalNotificationEventSchema, GoalNotificationTargetSchema, GoalNotificationsConfigSchema, GoalsConfigSchema, HeartbeatConfigSchema, McpConfigSchema, McpServerSchema, MediaUnderstandingCapabilitiesSchema, MediaUnderstandingModelSchema, MessagesConfigSchema, ModelsDevConfigSchema, ProviderAuthConfigSchema, ProviderAzureConfigSchema, ProviderRequestOverridesSchema, ProvidersConfigSchema, STTConfigSchema, STTFallbackConfigSchema, STTProviderConfigSchema, SearchProviderEntrySchema, SessionConfigSchema, SessionDmScopeSchema, SessionResetByTypeSchema, SessionResetConfigSchema, SessionResetModeSchema, SessionScopeSchema, SessionStorageConfigSchema, TTSConfigSchema, TTSEdgeConfigSchema, TTSFallbackConfigSchema, TTSModelOverridesConfigSchema, TTSProviderConfigSchema, TTSSummarizationConfigSchema, TelegramAccountConfigSchema, TelegramConfigSchema, TelegramGroupConfigSchema, TelegramTopicConfigSchema, ToolsConfigSchema, ToolsMediaAudioConfigSchema, ToolsMediaConfigSchema, TuiConfigSchema, TunnelConfigSchema, TunnelConsentSchema, UpdateAutoConfigSchema, UpdateConfigSchema, VoiceConfigSchema, VoiceRefinementConfigSchema, WebSearchConfigSchema, WebToolsConfigSchema, WebsiteBlocklistSchema, WeixinAccountConfigSchema, WeixinConfigSchema, WorkspaceConfigSchema, WorkspaceImportConfigSchema, getAgentDefaultImageGenerationModelConfig, getAgentDefaultImageModelConfig, getAgentDefaultModelRef, init_schema, parseModelRef };
|
|
1187
|
+
export { AgentImageGenerationModelSchema, AgentModelRefSchema, AgentModelsSchema, AgentTypedModelRoleSchema, AgentsConfigSchema, BindingMatchSchema, BindingRuleSchema, BindingsConfigSchema, BrowserConfigSchema, ChannelsConfigSchema, CodeIntelligenceConfigSchema, CommandsConfigSchema, ConfigSchema, ConnectorsConfigSchema, ExperimentalConfigSchema, ExtensionSecurityConfigSchema, ExtensionSlotsConfigSchema, ExtensionsConfigSchema, GatewayAuthRateLimitSchema, GatewayAuthSchema, GatewayBindModeSchema, GatewayChannelConnectDeferModeSchema, GatewayConfigSchema, GatewayModeSchema, GatewayRemoteSchema, GatewaySecuritySchema, GatewayTailscaleConsentSchema, GatewayTailscaleSchema, GatewayTlsSchema, GatewayTrustedProxySchema, GoalNotificationEventSchema, GoalNotificationTargetSchema, GoalNotificationsConfigSchema, GoalsConfigSchema, HeartbeatConfigSchema, McpConfigSchema, McpServerSchema, MediaUnderstandingCapabilitiesSchema, MediaUnderstandingModelSchema, MessagesConfigSchema, ModelCatalogConfigSchema, ModelsDevConfigSchema, ProviderAuthConfigSchema, ProviderAzureConfigSchema, ProviderRequestOverridesSchema, ProvidersConfigSchema, STTConfigSchema, STTFallbackConfigSchema, STTProviderConfigSchema, SearchProviderEntrySchema, SessionConfigSchema, SessionDmScopeSchema, SessionResetByTypeSchema, SessionResetConfigSchema, SessionResetModeSchema, SessionScopeSchema, SessionStorageConfigSchema, TTSConfigSchema, TTSEdgeConfigSchema, TTSFallbackConfigSchema, TTSModelOverridesConfigSchema, TTSProviderConfigSchema, TTSSummarizationConfigSchema, TelegramAccountConfigSchema, TelegramConfigSchema, TelegramGroupConfigSchema, TelegramTopicConfigSchema, ToolsConfigSchema, ToolsMediaAudioConfigSchema, ToolsMediaConfigSchema, TuiConfigSchema, TunnelConfigSchema, TunnelConsentSchema, UpdateAutoConfigSchema, UpdateConfigSchema, VoiceConfigSchema, VoiceRefinementConfigSchema, WebSearchConfigSchema, WebToolsConfigSchema, WebsiteBlocklistSchema, WeixinAccountConfigSchema, WeixinConfigSchema, WorkspaceConfigSchema, WorkspaceImportConfigSchema, getAgentDefaultImageGenerationModelConfig, getAgentDefaultImageModelConfig, getAgentDefaultModelRef, init_schema, parseModelRef };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { resolveEffectiveAgentManifest } from "../agent-manifest/resolver.js";
|
|
2
1
|
import { init_agent_scope, listAgentEntries, normalizeAgentId, resolveAgentDir, resolveAgentProfileDir, resolveAgentWorkspaceDir, resolveDefaultAgentId, resolveUserPath, validateAgentIdForNewAgent } from "../agent/agent-scope.js";
|
|
2
|
+
import { resolveEffectiveAgentManifest } from "../agent-manifest/resolver.js";
|
|
3
3
|
import { resolveEffectiveAgentProfile } from "../config/agent-profile.js";
|
|
4
4
|
import { WORKSPACE_FILES, init_paths, resolveUserProfilePath } from "../config/paths.js";
|
|
5
5
|
import { AGENT_PROFILE_MARKDOWN_SYSTEM_FILES, REQUIRED_AGENT_PROFILE_MARKDOWN_FILE_SET } from "../agent/context/workspace.js";
|
|
@@ -12,7 +12,7 @@ import { buildGatewayConsoleCspHeader } from "../security/csp.js";
|
|
|
12
12
|
import { checkBrowserOrigin } from "../security/origin-check.js";
|
|
13
13
|
import { auth } from "./middleware/auth.js";
|
|
14
14
|
import { operatorScopes } from "./middleware/scopes.js";
|
|
15
|
-
import { createChannelRateLimitMiddleware, createStrictRateLimitMiddleware } from "./middleware/strict-rate-limit.js";
|
|
15
|
+
import { createChannelRateLimitMiddleware, createStrictRateLimitMiddleware, createXopcCloudPollRateLimitMiddleware } from "./middleware/strict-rate-limit.js";
|
|
16
16
|
import { logContextMiddleware } from "./middleware/log-context.js";
|
|
17
17
|
import { logger } from "./middleware/logger.js";
|
|
18
18
|
import { routeErrorMiddleware } from "./middleware/route-errors.js";
|
|
@@ -204,16 +204,22 @@ function createHonoApp(config) {
|
|
|
204
204
|
})
|
|
205
205
|
}));
|
|
206
206
|
authenticated.use(operatorScopes());
|
|
207
|
+
const strictRateLimitMiddleware = createStrictRateLimitMiddleware({ getTrustedProxyContext: () => ({
|
|
208
|
+
trustedProxies: service.currentConfig.gateway?.trustedProxies,
|
|
209
|
+
allowRealIpFallback: service.currentConfig.gateway?.allowRealIpFallback === true
|
|
210
|
+
}) });
|
|
211
|
+
const channelRateLimitMiddleware = createChannelRateLimitMiddleware({ getTrustedProxyContext: () => ({
|
|
212
|
+
trustedProxies: service.currentConfig.gateway?.trustedProxies,
|
|
213
|
+
allowRealIpFallback: service.currentConfig.gateway?.allowRealIpFallback === true
|
|
214
|
+
}) });
|
|
207
215
|
registerAuthenticatedRoutes(app, authenticated, {
|
|
208
216
|
service,
|
|
209
|
-
strictRateLimitMiddleware
|
|
210
|
-
|
|
211
|
-
allowRealIpFallback: service.currentConfig.gateway?.allowRealIpFallback === true
|
|
212
|
-
}) }),
|
|
213
|
-
channelRateLimitMiddleware: createChannelRateLimitMiddleware({ getTrustedProxyContext: () => ({
|
|
217
|
+
strictRateLimitMiddleware,
|
|
218
|
+
xopcCloudPollRateLimitMiddleware: createXopcCloudPollRateLimitMiddleware({ getTrustedProxyContext: () => ({
|
|
214
219
|
trustedProxies: service.currentConfig.gateway?.trustedProxies,
|
|
215
220
|
allowRealIpFallback: service.currentConfig.gateway?.allowRealIpFallback === true
|
|
216
221
|
}) }),
|
|
222
|
+
channelRateLimitMiddleware,
|
|
217
223
|
sseConfig: {
|
|
218
224
|
service,
|
|
219
225
|
maxSseConnections: service.currentConfig.gateway.maxSseConnections
|
|
@@ -209,7 +209,7 @@ export declare function buildSafeWebConfigPayload(service: GatewayService, optio
|
|
|
209
209
|
/** Masked `cfg.providers` for capability keys (image / STT / etc.). */
|
|
210
210
|
providersConfig: Record<string, import("./safe-providers-config.js").SafeProviderAuthEntry>;
|
|
211
211
|
gateway: {
|
|
212
|
-
bind: "
|
|
212
|
+
bind: "auto" | "custom" | "loopback" | "lan" | "tailnet";
|
|
213
213
|
customBindHost: string;
|
|
214
214
|
port: number;
|
|
215
215
|
corsOrigins: string[];
|
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
import type { Config } from '../../../config/schema.js';
|
|
2
2
|
/**
|
|
3
3
|
* Per-vendor slice of {@link Config.providers} safe for GET `/api/config`.
|
|
4
|
-
* Secrets are never sent verbatim; `apiKey` is length-preserving bullets when set, else empty.
|
|
5
4
|
*/
|
|
6
5
|
export type SafeProviderAuthEntry = {
|
|
7
|
-
apiKey: string;
|
|
8
6
|
region?: string;
|
|
9
7
|
baseUrl?: string;
|
|
10
|
-
imageBaseUrl?: string;
|
|
11
8
|
};
|
|
12
9
|
/**
|
|
13
10
|
* Build a redacted `providersConfig` map for the gateway console (image / audio / video keys).
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { maskSecretLength } from "./mask-secret-length.js";
|
|
2
1
|
//#region src/gateway/hono/lib/safe-providers-config.ts
|
|
3
2
|
/**
|
|
4
3
|
* Build a redacted `providersConfig` map for the gateway console (image / audio / video keys).
|
|
@@ -10,10 +9,9 @@ function buildSafeProvidersConfigForWeb(providers) {
|
|
|
10
9
|
if (!id) continue;
|
|
11
10
|
if (!raw || typeof raw !== "object" || Array.isArray(raw)) continue;
|
|
12
11
|
const o = raw;
|
|
13
|
-
const entry = {
|
|
12
|
+
const entry = {};
|
|
14
13
|
if (typeof o.region === "string" && o.region.trim()) entry.region = o.region.trim();
|
|
15
14
|
if (typeof o.baseUrl === "string" && o.baseUrl.trim()) entry.baseUrl = o.baseUrl.trim();
|
|
16
|
-
if (typeof o.imageBaseUrl === "string" && o.imageBaseUrl.trim()) entry.imageBaseUrl = o.imageBaseUrl.trim();
|
|
17
15
|
out[id] = entry;
|
|
18
16
|
}
|
|
19
17
|
return out;
|
|
@@ -12,6 +12,10 @@ export declare function createStrictRateLimitMiddleware(deps: StrictRateLimitDep
|
|
|
12
12
|
error: string;
|
|
13
13
|
code: string;
|
|
14
14
|
}, 429, "json">>;
|
|
15
|
+
export declare function createXopcCloudPollRateLimitMiddleware(deps: StrictRateLimitDeps): import("hono").MiddlewareHandler<any, string, {}, Response & import("hono").TypedResponse<{
|
|
16
|
+
error: string;
|
|
17
|
+
code: string;
|
|
18
|
+
}, 429, "json">>;
|
|
15
19
|
export declare function createChannelRateLimitMiddleware(deps: StrictRateLimitDeps): import("hono").MiddlewareHandler<any, string, {}, Response & import("hono").TypedResponse<{
|
|
16
20
|
error: string;
|
|
17
21
|
code: string;
|
|
@@ -63,6 +63,13 @@ function createStrictRateLimitMiddleware(deps) {
|
|
|
63
63
|
reason: "strict_rate_limit_exceeded"
|
|
64
64
|
});
|
|
65
65
|
}
|
|
66
|
+
function createXopcCloudPollRateLimitMiddleware(deps) {
|
|
67
|
+
return createClientRateLimitMiddleware(deps, {
|
|
68
|
+
limiter: () => buckets.xopcCloudPoll(),
|
|
69
|
+
exceededMessage: "XOPC Cloud polling rate limit exceeded",
|
|
70
|
+
reason: "xopc_cloud_poll_rate_limit_exceeded"
|
|
71
|
+
});
|
|
72
|
+
}
|
|
66
73
|
function createChannelRateLimitMiddleware(deps) {
|
|
67
74
|
return createClientRateLimitMiddleware(deps, {
|
|
68
75
|
limiter: () => buckets.channelApi(),
|
|
@@ -71,4 +78,4 @@ function createChannelRateLimitMiddleware(deps) {
|
|
|
71
78
|
});
|
|
72
79
|
}
|
|
73
80
|
//#endregion
|
|
74
|
-
export { createChannelRateLimitMiddleware, createStrictRateLimitMiddleware };
|
|
81
|
+
export { createChannelRateLimitMiddleware, createStrictRateLimitMiddleware, createXopcCloudPollRateLimitMiddleware };
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
//#region src/gateway/hono/routes/browser-workflows.ts
|
|
2
|
+
function presentWorkflow(service, recipe) {
|
|
3
|
+
const inputs = service.validate(recipe.yaml).document?.args ?? {};
|
|
4
|
+
return {
|
|
5
|
+
id: recipe.id,
|
|
6
|
+
name: recipe.name,
|
|
7
|
+
description: recipe.description,
|
|
8
|
+
enabled: recipe.status === "published",
|
|
9
|
+
risk: recipe.risk,
|
|
10
|
+
domains: recipe.domains,
|
|
11
|
+
inputs,
|
|
12
|
+
createdAtMs: recipe.createdAtMs,
|
|
13
|
+
updatedAtMs: recipe.updatedAtMs
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
function presentRun(run) {
|
|
17
|
+
return {
|
|
18
|
+
id: run.id,
|
|
19
|
+
workflowId: run.recipeId,
|
|
20
|
+
status: run.status,
|
|
21
|
+
inputs: run.args,
|
|
22
|
+
result: run.result,
|
|
23
|
+
error: run.error,
|
|
24
|
+
createdAtMs: run.createdAtMs,
|
|
25
|
+
startedAtMs: run.startedAtMs,
|
|
26
|
+
endedAtMs: run.endedAtMs,
|
|
27
|
+
durationMs: run.durationMs
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
function registerBrowserWorkflowRoutes(authenticated, deps) {
|
|
31
|
+
const service = deps.service.browserRecipes;
|
|
32
|
+
authenticated.get("/api/browser/workflows", (c) => c.json({ workflows: service.list().map((recipe) => presentWorkflow(service, recipe)) }));
|
|
33
|
+
authenticated.get("/api/browser/workflows/:id", (c) => {
|
|
34
|
+
const recipe = service.get(c.req.param("id"));
|
|
35
|
+
return recipe ? c.json({ workflow: presentWorkflow(service, recipe) }) : c.json({ error: "Browser automation not found" }, 404);
|
|
36
|
+
});
|
|
37
|
+
authenticated.patch("/api/browser/workflows/:id", deps.strictRateLimitMiddleware, async (c) => {
|
|
38
|
+
try {
|
|
39
|
+
const current = service.get(c.req.param("id"));
|
|
40
|
+
if (!current) return c.json({ error: "Browser automation not found" }, 404);
|
|
41
|
+
const body = await c.req.json().catch(() => null);
|
|
42
|
+
if (typeof body?.enabled !== "boolean") return c.json({ error: "enabled must be a boolean" }, 400);
|
|
43
|
+
const workflow = service.save({
|
|
44
|
+
yaml: current.yaml,
|
|
45
|
+
status: body.enabled ? "published" : "disabled",
|
|
46
|
+
expectedId: current.id
|
|
47
|
+
});
|
|
48
|
+
return c.json({ workflow: presentWorkflow(service, workflow) });
|
|
49
|
+
} catch (error) {
|
|
50
|
+
return c.json({ error: error instanceof Error ? error.message : String(error) }, 400);
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
authenticated.delete("/api/browser/workflows/:id", deps.strictRateLimitMiddleware, (c) => {
|
|
54
|
+
try {
|
|
55
|
+
return c.json({ removed: service.remove(c.req.param("id")) });
|
|
56
|
+
} catch (error) {
|
|
57
|
+
return c.json({ error: error instanceof Error ? error.message : String(error) }, 409);
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
authenticated.post("/api/browser/workflows/:id/run", deps.strictRateLimitMiddleware, async (c) => {
|
|
61
|
+
try {
|
|
62
|
+
const body = await c.req.json().catch(() => ({}));
|
|
63
|
+
if (body.inputs !== void 0 && (!body.inputs || typeof body.inputs !== "object" || Array.isArray(body.inputs))) return c.json({ error: "inputs must be an object" }, 400);
|
|
64
|
+
const run = service.startRun(c.req.param("id"), body.inputs ?? {});
|
|
65
|
+
return c.json({ run: presentRun(run) }, 202);
|
|
66
|
+
} catch (error) {
|
|
67
|
+
return c.json({ error: error instanceof Error ? error.message : String(error) }, 400);
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
authenticated.get("/api/browser/workflow-runs", (c) => c.json({ runs: service.listRuns(c.req.query("workflowId")).map(presentRun) }));
|
|
71
|
+
authenticated.get("/api/browser/workflow-runs/:id", (c) => {
|
|
72
|
+
const run = service.getRun(c.req.param("id"));
|
|
73
|
+
return run ? c.json({ run: presentRun(run) }) : c.json({ error: "Run not found" }, 404);
|
|
74
|
+
});
|
|
75
|
+
authenticated.post("/api/browser/workflow-runs/:id/cancel", deps.strictRateLimitMiddleware, (c) => c.json({ cancelled: service.cancel(c.req.param("id")) }));
|
|
76
|
+
}
|
|
77
|
+
//#endregion
|
|
78
|
+
export { registerBrowserWorkflowRoutes };
|
|
@@ -72,17 +72,8 @@ async function applyMiscPatch(config, body) {
|
|
|
72
72
|
if (!raw || typeof raw !== "object" || Array.isArray(raw)) continue;
|
|
73
73
|
const next = cfgProviders[vendorId] ?? {};
|
|
74
74
|
const patch = raw;
|
|
75
|
-
for (const field of [
|
|
76
|
-
|
|
77
|
-
"baseUrl",
|
|
78
|
-
"region",
|
|
79
|
-
"imageBaseUrl"
|
|
80
|
-
]) if (patch[field] === null || patch[field] === "") delete next[field];
|
|
81
|
-
else if (typeof patch[field] === "string") {
|
|
82
|
-
const trimmed = patch[field].trim();
|
|
83
|
-
if (field === "apiKey" && isMaskedSecretPatchValue(trimmed)) continue;
|
|
84
|
-
next[field] = trimmed;
|
|
85
|
-
}
|
|
75
|
+
for (const field of ["baseUrl", "region"]) if (patch[field] === null || patch[field] === "") delete next[field];
|
|
76
|
+
else if (typeof patch[field] === "string") next[field] = patch[field].trim();
|
|
86
77
|
if (patch.azure === null) delete next.azure;
|
|
87
78
|
else if (patch.azure && typeof patch.azure === "object" && !Array.isArray(patch.azure)) next.azure = {
|
|
88
79
|
...next.azure ?? {},
|
|
@@ -4,6 +4,7 @@ import type { SSEHandlerConfig } from '../sse.js';
|
|
|
4
4
|
export interface AuthenticatedRouteDeps {
|
|
5
5
|
service: GatewayService;
|
|
6
6
|
strictRateLimitMiddleware: MiddlewareHandler;
|
|
7
|
+
xopcCloudPollRateLimitMiddleware: MiddlewareHandler;
|
|
7
8
|
channelRateLimitMiddleware?: MiddlewareHandler;
|
|
8
9
|
sseConfig: SSEHandlerConfig;
|
|
9
10
|
}
|
|
@@ -59,6 +59,7 @@ function triggerLabel(automation) {
|
|
|
59
59
|
}
|
|
60
60
|
function actionLabel(automation) {
|
|
61
61
|
if (automation.action.kind === "workflow") return `workflow:${automation.action.workflowId}`;
|
|
62
|
+
if (automation.action.kind === "browser_recipe") return `browser-workflow:${automation.action.recipeId}`;
|
|
62
63
|
return automation.action.agentId ? `agent:${automation.action.agentId}` : "agent";
|
|
63
64
|
}
|
|
64
65
|
function toHomeAutomation(automation) {
|
|
@@ -6,6 +6,8 @@ import { registerMemoryRoutes } from "./memory.js";
|
|
|
6
6
|
import { registerProjectsRoutes } from "./projects.js";
|
|
7
7
|
import { registerSearchRoutes } from "./search.js";
|
|
8
8
|
import { registerMobileRoutes } from "./mobile.js";
|
|
9
|
+
import { registerTaskOutcomeRoutes } from "./task-outcomes.js";
|
|
10
|
+
import { registerInteractionStateRoutes } from "./interaction-state.js";
|
|
9
11
|
import { registerLocalAppsRoutes } from "./local-apps.js";
|
|
10
12
|
import { registerWorkDiscoveryRoutes } from "./work-discovery.js";
|
|
11
13
|
import { mountAppLazyRoutePrefixes, registerAuthenticatedLazyRouteFallback } from "./lazy-fallback.js";
|
|
@@ -21,6 +23,8 @@ function registerCoreAuthenticatedRoutes(authenticated, deps) {
|
|
|
21
23
|
registerWorkDiscoveryRoutes(authenticated, deps);
|
|
22
24
|
registerSearchRoutes(authenticated, deps);
|
|
23
25
|
registerMobileRoutes(authenticated, deps);
|
|
26
|
+
registerTaskOutcomeRoutes(authenticated, deps);
|
|
27
|
+
registerInteractionStateRoutes(authenticated, deps);
|
|
24
28
|
}
|
|
25
29
|
function registerAuthenticatedRoutes(app, authenticated, deps) {
|
|
26
30
|
registerCoreAuthenticatedRoutes(authenticated, deps);
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { getInteractionState, setInteractionState } from "../../../storage/sqlite/interaction-state-repository.js";
|
|
2
|
+
import "../../../storage/sqlite/index.js";
|
|
3
|
+
//#region src/gateway/hono/routes/interaction-state.ts
|
|
4
|
+
const SUPPORT_NEEDS = new Set([
|
|
5
|
+
"listen",
|
|
6
|
+
"clarify",
|
|
7
|
+
"advise",
|
|
8
|
+
"act",
|
|
9
|
+
"unknown"
|
|
10
|
+
]);
|
|
11
|
+
function registerInteractionStateRoutes(authenticated, deps) {
|
|
12
|
+
authenticated.get("/api/interaction-state", (c) => {
|
|
13
|
+
const sessionKey = c.req.query("sessionKey")?.trim() ?? "";
|
|
14
|
+
if (!sessionKey) return c.json({ error: "sessionKey is required" }, 400);
|
|
15
|
+
const state = getInteractionState(sessionKey);
|
|
16
|
+
return state ? c.json({
|
|
17
|
+
ok: true,
|
|
18
|
+
state
|
|
19
|
+
}) : c.json({
|
|
20
|
+
ok: false,
|
|
21
|
+
error: "Interaction state not found"
|
|
22
|
+
}, 404);
|
|
23
|
+
});
|
|
24
|
+
authenticated.patch("/api/interaction-state", deps.strictRateLimitMiddleware, async (c) => {
|
|
25
|
+
const body = await c.req.json().catch(() => null);
|
|
26
|
+
const sessionKey = body && typeof body === "object" && typeof body.sessionKey === "string" ? body.sessionKey.trim() : "";
|
|
27
|
+
const supportNeed = body && typeof body === "object" && SUPPORT_NEEDS.has(body.supportNeed) ? body.supportNeed : void 0;
|
|
28
|
+
if (!sessionKey || !supportNeed) return c.json({ error: "sessionKey and a valid supportNeed are required" }, 400);
|
|
29
|
+
const state = setInteractionState({
|
|
30
|
+
sessionKey,
|
|
31
|
+
signal: {
|
|
32
|
+
supportNeed,
|
|
33
|
+
confidence: 1,
|
|
34
|
+
source: "explicit",
|
|
35
|
+
repairStatus: "none"
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
return c.json({
|
|
39
|
+
ok: true,
|
|
40
|
+
state
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
//#endregion
|
|
45
|
+
export { registerInteractionStateRoutes };
|