cordisx 0.1.0-beta.21 → 0.1.0-beta.23
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/THIRD_PARTY_NOTICES.md +10 -0
- package/dist/assets/launcher/native-app-server-intermediary.mjs +4 -0
- package/dist/assets/model-brands/aws-bedrock.svg +12 -0
- package/dist/assets/model-brands/azure-foundry.svg +1 -0
- package/dist/assets/model-brands/azure-openai.svg +1 -0
- package/dist/assets/model-brands/cerebras.png +0 -0
- package/dist/assets/model-brands/claude.svg +1 -0
- package/dist/assets/model-brands/dashscope.svg +45 -0
- package/dist/assets/model-brands/deepseek.svg +3 -0
- package/dist/assets/model-brands/fireworks.svg +5 -0
- package/dist/assets/model-brands/gemini.png +0 -0
- package/dist/assets/model-brands/google-vertex.svg +25 -0
- package/dist/assets/model-brands/huggingface.svg +8 -0
- package/dist/assets/model-brands/kimi-dark.svg +5 -0
- package/dist/assets/model-brands/kimi-light.svg +5 -0
- package/dist/assets/model-brands/minimax-dark.svg +1 -0
- package/dist/assets/model-brands/minimax-light.svg +1 -0
- package/dist/assets/model-brands/moonshot-dark.svg +1 -0
- package/dist/assets/model-brands/moonshot-light.svg +1 -0
- package/dist/assets/model-brands/openai.svg +1 -0
- package/dist/assets/model-brands/opencode-dark.svg +18 -0
- package/dist/assets/model-brands/opencode-light.svg +18 -0
- package/dist/assets/model-brands/openrouter-dark.svg +3 -0
- package/dist/assets/model-brands/openrouter-light.svg +3 -0
- package/dist/assets/model-brands/siliconflow.png +0 -0
- package/dist/assets/model-brands/together.svg +21 -0
- package/dist/assets/model-brands/xai-dark.svg +19 -0
- package/dist/assets/model-brands/xai-light.svg +19 -0
- package/dist/assets/model-brands/zai-dark.svg +35 -0
- package/dist/assets/model-brands/zai-light.svg +35 -0
- package/dist/bundled-plugins/@cordisx/plugin-cli-proxy-api/README.md +68 -33
- package/dist/bundled-plugins/@cordisx/plugin-cli-proxy-api/README.zh-Hans.md +59 -25
- package/dist/bundled-plugins/@cordisx/plugin-cli-proxy-api/THIRD_PARTY_NOTICES.md +6 -2
- package/dist/bundled-plugins/@cordisx/plugin-cli-proxy-api/config/cli-proxy-api.yaml +7 -0
- package/dist/bundled-plugins/@cordisx/plugin-cli-proxy-api/cordisx-package.json +2 -2
- package/dist/bundled-plugins/@cordisx/plugin-cli-proxy-api/dist/extensions.mjs +427 -0
- package/dist/bundled-plugins/@cordisx/plugin-cli-proxy-api/dist/gateway.mjs +600 -56
- package/dist/bundled-plugins/@cordisx/plugin-cli-proxy-api/dist/service.mjs +426 -0
- package/dist/bundled-plugins/@cordisx/plugin-cli-proxy-api/dist/types/service/extension-context.d.ts +2 -0
- package/dist/bundled-plugins/@cordisx/plugin-cli-proxy-api/dist/types/service/extension-registry.d.ts +163 -0
- package/dist/bundled-plugins/@cordisx/plugin-cli-proxy-api/dist/types/service/gateway-definition.d.ts +7 -0
- package/dist/bundled-plugins/@cordisx/plugin-cli-proxy-api/dist/types/service/gateway.d.ts +4 -1
- package/dist/bundled-plugins/@cordisx/plugin-cli-proxy-api/dist/types/service/index.d.ts +1 -0
- package/dist/bundled-plugins/@cordisx/plugin-cli-proxy-api/package.json +10 -3
- package/dist/bundled-plugins/@cordisx/plugin-cli-proxy-api/runtime/cli-proxy-plugins/darwin/arm64/cordisx-gateway-bridge.dylib +0 -0
- package/dist/bundled-plugins/@cordisx/plugin-cli-proxy-api/runtime/cli-proxy-plugins/linux/x64/cordisx-gateway-bridge.so +0 -0
- package/dist/bundled-plugins/@cordisx/plugin-cli-proxy-api/runtime-manifest.json +44 -2
- package/dist/bundled-plugins/@cordisx/plugin-cli-proxy-api/schemas/cli-proxy-gateway-adapter.v1.schema.json +94 -0
- package/dist/bundled-plugins/@cordisx/plugin-cli-proxy-api/schemas/cli-proxy-gateway-connection.v1.schema.json +66 -0
- package/dist/bundled-plugins/@cordisx/plugin-cli-proxy-api/schemas/cli-proxy-gateway-extension-plan.v1.schema.json +71 -0
- package/dist/shortcut-presentation.js +19 -2
- package/dist/src/app-launcher/install.test.d.ts +2 -0
- package/dist/src/app-launcher/install.test.d.ts.map +1 -0
- package/dist/src/app-launcher/install.test.js +204 -0
- package/dist/src/app-launcher/install.test.js.map +1 -0
- package/dist/src/app-launcher/model.d.ts +23 -0
- package/dist/src/app-launcher/model.d.ts.map +1 -0
- package/dist/src/app-launcher/model.js +18 -0
- package/dist/src/app-launcher/model.js.map +1 -0
- package/dist/src/app-launcher/postinstall.d.ts +12 -0
- package/dist/src/app-launcher/postinstall.d.ts.map +1 -0
- package/dist/src/app-launcher/postinstall.js +39 -0
- package/dist/src/app-launcher/postinstall.js.map +1 -0
- package/dist/src/app-launcher/runtime-install.d.ts +16 -0
- package/dist/src/app-launcher/runtime-install.d.ts.map +1 -0
- package/dist/src/app-launcher/runtime-install.js +276 -0
- package/dist/src/app-launcher/runtime-install.js.map +1 -0
- package/dist/src/app-launcher/runtime.test.d.ts +2 -0
- package/dist/src/app-launcher/runtime.test.d.ts.map +1 -0
- package/dist/src/app-launcher/runtime.test.js +106 -0
- package/dist/src/app-launcher/runtime.test.js.map +1 -0
- package/dist/src/cli/activate-owned-host.d.ts +10 -0
- package/dist/src/cli/activate-owned-host.d.ts.map +1 -0
- package/dist/src/cli/activate-owned-host.js +29 -0
- package/dist/src/cli/activate-owned-host.js.map +1 -0
- package/dist/src/cli/app-command.d.ts +19 -0
- package/dist/src/cli/app-command.d.ts.map +1 -0
- package/dist/src/cli/app-command.js +246 -0
- package/dist/src/cli/app-command.js.map +1 -0
- package/dist/src/cli/app-entry.d.ts +13 -0
- package/dist/src/cli/app-entry.d.ts.map +1 -0
- package/dist/src/cli/app-entry.js +105 -0
- package/dist/src/cli/app-entry.js.map +1 -0
- package/dist/src/cli/help.d.ts +2 -0
- package/dist/src/cli/help.d.ts.map +1 -0
- package/dist/src/cli/help.js +30 -0
- package/dist/src/cli/help.js.map +1 -0
- package/dist/src/cli/host-lifecycle.d.ts +38 -0
- package/dist/src/cli/host-lifecycle.d.ts.map +1 -0
- package/dist/src/cli/host-lifecycle.js +57 -0
- package/dist/src/cli/host-lifecycle.js.map +1 -0
- package/dist/src/cli/native-submission-catalog-options.d.ts +17 -0
- package/dist/src/cli/native-submission-catalog-options.d.ts.map +1 -0
- package/dist/src/cli/native-submission-catalog-options.js +17 -0
- package/dist/src/cli/native-submission-catalog-options.js.map +1 -0
- package/dist/src/cli/parse.d.ts +6 -2
- package/dist/src/cli/parse.d.ts.map +1 -1
- package/dist/src/cli/parse.js +11 -4
- package/dist/src/cli/parse.js.map +1 -1
- package/dist/src/cli/production-host-bootstrap.d.ts +26 -0
- package/dist/src/cli/production-host-bootstrap.d.ts.map +1 -0
- package/dist/src/cli/production-host-bootstrap.js +115 -0
- package/dist/src/cli/production-host-bootstrap.js.map +1 -0
- package/dist/src/cli/production-plugin-management.d.ts +17 -0
- package/dist/src/cli/production-plugin-management.d.ts.map +1 -0
- package/dist/src/cli/production-plugin-management.js +52 -0
- package/dist/src/cli/production-plugin-management.js.map +1 -0
- package/dist/src/cli/renderer-composition.d.ts +2 -0
- package/dist/src/cli/renderer-composition.d.ts.map +1 -1
- package/dist/src/cli/renderer-composition.js +37 -17
- package/dist/src/cli/renderer-composition.js.map +1 -1
- package/dist/src/cli/run-command-dispatch.d.ts.map +1 -1
- package/dist/src/cli/run-command-dispatch.js +18 -2
- package/dist/src/cli/run-command-dispatch.js.map +1 -1
- package/dist/src/cli/run-command.d.ts +1 -16
- package/dist/src/cli/run-command.d.ts.map +1 -1
- package/dist/src/cli/run-command.js +96 -112
- package/dist/src/cli/run-command.js.map +1 -1
- package/dist/src/cli/run-support.d.ts +25 -13
- package/dist/src/cli/run-support.d.ts.map +1 -1
- package/dist/src/cli/run-support.js +86 -77
- package/dist/src/cli/run-support.js.map +1 -1
- package/dist/src/cli/shortcut-entry.d.ts +2 -6
- package/dist/src/cli/shortcut-entry.d.ts.map +1 -1
- package/dist/src/cli/shortcut-entry.js +2 -25
- package/dist/src/cli/shortcut-entry.js.map +1 -1
- package/dist/src/cli/shortcut-presentation-worker.d.ts +25 -0
- package/dist/src/cli/shortcut-presentation-worker.d.ts.map +1 -0
- package/dist/src/cli/shortcut-presentation-worker.js +125 -0
- package/dist/src/cli/shortcut-presentation-worker.js.map +1 -0
- package/dist/src/cli/startup-gate.d.ts +11 -0
- package/dist/src/cli/startup-gate.d.ts.map +1 -0
- package/dist/src/cli/startup-gate.js +156 -0
- package/dist/src/cli/startup-gate.js.map +1 -0
- package/dist/src/cli/supervisor-command.d.ts +7 -2
- package/dist/src/cli/supervisor-command.d.ts.map +1 -1
- package/dist/src/cli/supervisor-command.js +187 -46
- package/dist/src/cli/supervisor-command.js.map +1 -1
- package/dist/src/cli/supervisor-control.d.ts +1 -1
- package/dist/src/cli/supervisor-control.d.ts.map +1 -1
- package/dist/src/cli/supervisor-control.js +19 -4
- package/dist/src/cli/supervisor-control.js.map +1 -1
- package/dist/src/cli/supervisor-cwd.test.d.ts +2 -0
- package/dist/src/cli/supervisor-cwd.test.d.ts.map +1 -0
- package/dist/src/cli/supervisor-cwd.test.js +101 -0
- package/dist/src/cli/supervisor-cwd.test.js.map +1 -0
- package/dist/src/cli/supervisor-generation.test.d.ts +2 -0
- package/dist/src/cli/supervisor-generation.test.d.ts.map +1 -0
- package/dist/src/cli/supervisor-generation.test.js +91 -0
- package/dist/src/cli/supervisor-generation.test.js.map +1 -0
- package/dist/src/cli/supervisor-runtime.d.ts +6 -3
- package/dist/src/cli/supervisor-runtime.d.ts.map +1 -1
- package/dist/src/cli/supervisor-runtime.js +113 -32
- package/dist/src/cli/supervisor-runtime.js.map +1 -1
- package/dist/src/cli/supervisor-state.d.ts +8 -0
- package/dist/src/cli/supervisor-state.d.ts.map +1 -1
- package/dist/src/cli/supervisor-state.js +22 -33
- package/dist/src/cli/supervisor-state.js.map +1 -1
- package/dist/src/config/home-config-model-catalogs.d.ts +27 -0
- package/dist/src/config/home-config-model-catalogs.d.ts.map +1 -0
- package/dist/src/config/home-config-model-catalogs.js +168 -0
- package/dist/src/config/home-config-model-catalogs.js.map +1 -0
- package/dist/src/config/home-config.d.ts +5 -0
- package/dist/src/config/home-config.d.ts.map +1 -1
- package/dist/src/config/home-config.js +10 -8
- package/dist/src/config/home-config.js.map +1 -1
- package/dist/src/current-user-native-pins.d.ts +6 -0
- package/dist/src/current-user-native-pins.d.ts.map +1 -1
- package/dist/src/current-user-native-pins.js +7 -0
- package/dist/src/current-user-native-pins.js.map +1 -1
- package/dist/src/launcher/bundle.d.ts +4 -0
- package/dist/src/launcher/bundle.d.ts.map +1 -1
- package/dist/src/launcher/bundle.js +25 -0
- package/dist/src/launcher/bundle.js.map +1 -1
- package/dist/src/launcher/cdp-installation-bootstrap.d.ts.map +1 -1
- package/dist/src/launcher/cdp-installation-bootstrap.js +4 -2
- package/dist/src/launcher/cdp-installation-bootstrap.js.map +1 -1
- package/dist/src/launcher/cdp-installation-support.d.ts +3 -22
- package/dist/src/launcher/cdp-installation-support.d.ts.map +1 -1
- package/dist/src/launcher/cdp-installation-support.js +58 -131
- package/dist/src/launcher/cdp-installation-support.js.map +1 -1
- package/dist/src/launcher/cdp-installation.d.ts.map +1 -1
- package/dist/src/launcher/cdp-installation.js +18 -32
- package/dist/src/launcher/cdp-installation.js.map +1 -1
- package/dist/src/launcher/cdp-runtime-bindings.d.ts +4 -0
- package/dist/src/launcher/cdp-runtime-bindings.d.ts.map +1 -0
- package/dist/src/launcher/cdp-runtime-bindings.js +8 -0
- package/dist/src/launcher/cdp-runtime-bindings.js.map +1 -0
- package/dist/src/launcher/cdp.d.ts.map +1 -1
- package/dist/src/launcher/cdp.js +52 -3
- package/dist/src/launcher/cdp.js.map +1 -1
- package/dist/src/launcher/codex-config-model-providers.d.ts +25 -1
- package/dist/src/launcher/codex-config-model-providers.d.ts.map +1 -1
- package/dist/src/launcher/codex-config-model-providers.js +113 -23
- package/dist/src/launcher/codex-config-model-providers.js.map +1 -1
- package/dist/src/launcher/host-generation-bootloader.d.ts +3 -0
- package/dist/src/launcher/host-generation-bootloader.d.ts.map +1 -0
- package/dist/src/launcher/host-generation-bootloader.js +94 -0
- package/dist/src/launcher/host-generation-bootloader.js.map +1 -0
- package/dist/src/launcher/host-generation-graph.d.ts +11 -5
- package/dist/src/launcher/host-generation-graph.d.ts.map +1 -1
- package/dist/src/launcher/host-generation-graph.js +197 -29
- package/dist/src/launcher/host-generation-graph.js.map +1 -1
- package/dist/src/launcher/kernel-operation-lock.d.ts +5 -0
- package/dist/src/launcher/kernel-operation-lock.d.ts.map +1 -0
- package/dist/src/launcher/kernel-operation-lock.js +42 -0
- package/dist/src/launcher/kernel-operation-lock.js.map +1 -0
- package/dist/src/launcher/loopback-permissions.d.ts +25 -0
- package/dist/src/launcher/loopback-permissions.d.ts.map +1 -0
- package/dist/src/launcher/loopback-permissions.js +112 -0
- package/dist/src/launcher/loopback-permissions.js.map +1 -0
- package/dist/src/launcher/main-inspector.d.ts +22 -0
- package/dist/src/launcher/main-inspector.d.ts.map +1 -0
- package/dist/src/launcher/main-inspector.js +101 -0
- package/dist/src/launcher/main-inspector.js.map +1 -0
- package/dist/src/launcher/model-catalog/abort.d.ts +3 -0
- package/dist/src/launcher/model-catalog/abort.d.ts.map +1 -0
- package/dist/src/launcher/model-catalog/abort.js +16 -0
- package/dist/src/launcher/model-catalog/abort.js.map +1 -0
- package/dist/src/launcher/model-catalog/atomic-store.d.ts +13 -0
- package/dist/src/launcher/model-catalog/atomic-store.d.ts.map +1 -0
- package/dist/src/launcher/model-catalog/atomic-store.js +85 -0
- package/dist/src/launcher/model-catalog/atomic-store.js.map +1 -0
- package/dist/src/launcher/model-catalog/builtin-registry.d.ts +4 -0
- package/dist/src/launcher/model-catalog/builtin-registry.d.ts.map +1 -0
- package/dist/src/launcher/model-catalog/builtin-registry.js +13 -0
- package/dist/src/launcher/model-catalog/builtin-registry.js.map +1 -0
- package/dist/src/launcher/model-catalog/configured-source.d.ts +15 -0
- package/dist/src/launcher/model-catalog/configured-source.d.ts.map +1 -0
- package/dist/src/launcher/model-catalog/configured-source.js +99 -0
- package/dist/src/launcher/model-catalog/configured-source.js.map +1 -0
- package/dist/src/launcher/model-catalog/contracts.d.ts +95 -0
- package/dist/src/launcher/model-catalog/contracts.d.ts.map +1 -0
- package/dist/src/launcher/model-catalog/contracts.js +55 -0
- package/dist/src/launcher/model-catalog/contracts.js.map +1 -0
- package/dist/src/launcher/model-catalog/deepseek.d.ts +4 -0
- package/dist/src/launcher/model-catalog/deepseek.d.ts.map +1 -0
- package/dist/src/launcher/model-catalog/deepseek.js +47 -0
- package/dist/src/launcher/model-catalog/deepseek.js.map +1 -0
- package/dist/src/launcher/model-catalog/discovery-http.d.ts +3 -0
- package/dist/src/launcher/model-catalog/discovery-http.d.ts.map +1 -0
- package/dist/src/launcher/model-catalog/discovery-http.js +90 -0
- package/dist/src/launcher/model-catalog/discovery-http.js.map +1 -0
- package/dist/src/launcher/model-catalog/file-source.d.ts +10 -0
- package/dist/src/launcher/model-catalog/file-source.d.ts.map +1 -0
- package/dist/src/launcher/model-catalog/file-source.js +136 -0
- package/dist/src/launcher/model-catalog/file-source.js.map +1 -0
- package/dist/src/launcher/model-catalog/managed-catalog-composition.d.ts +36 -0
- package/dist/src/launcher/model-catalog/managed-catalog-composition.d.ts.map +1 -0
- package/dist/src/launcher/model-catalog/managed-catalog-composition.js +568 -0
- package/dist/src/launcher/model-catalog/managed-catalog-composition.js.map +1 -0
- package/dist/src/launcher/model-catalog/managed-catalog-state.d.ts +16 -0
- package/dist/src/launcher/model-catalog/managed-catalog-state.d.ts.map +1 -0
- package/dist/src/launcher/model-catalog/managed-catalog-state.js +130 -0
- package/dist/src/launcher/model-catalog/managed-catalog-state.js.map +1 -0
- package/dist/src/launcher/model-catalog/managed-provider-api.d.ts +14 -0
- package/dist/src/launcher/model-catalog/managed-provider-api.d.ts.map +1 -0
- package/dist/src/launcher/model-catalog/managed-provider-api.js +53 -0
- package/dist/src/launcher/model-catalog/managed-provider-api.js.map +1 -0
- package/dist/src/launcher/model-catalog/managed-provider-capture.d.ts +4 -0
- package/dist/src/launcher/model-catalog/managed-provider-capture.d.ts.map +1 -0
- package/dist/src/launcher/model-catalog/managed-provider-capture.js +71 -0
- package/dist/src/launcher/model-catalog/managed-provider-capture.js.map +1 -0
- package/dist/src/launcher/model-catalog/managed-provider-owner.d.ts +38 -0
- package/dist/src/launcher/model-catalog/managed-provider-owner.d.ts.map +1 -0
- package/dist/src/launcher/model-catalog/managed-provider-owner.js +352 -0
- package/dist/src/launcher/model-catalog/managed-provider-owner.js.map +1 -0
- package/dist/src/launcher/model-catalog/managed-provider-schema.d.ts +28 -0
- package/dist/src/launcher/model-catalog/managed-provider-schema.d.ts.map +1 -0
- package/dist/src/launcher/model-catalog/managed-provider-schema.js +71 -0
- package/dist/src/launcher/model-catalog/managed-provider-schema.js.map +1 -0
- package/dist/src/launcher/model-catalog/native-catalog-management.d.ts +60 -0
- package/dist/src/launcher/model-catalog/native-catalog-management.d.ts.map +1 -0
- package/dist/src/launcher/model-catalog/native-catalog-management.js +408 -0
- package/dist/src/launcher/model-catalog/native-catalog-management.js.map +1 -0
- package/dist/src/launcher/model-catalog/native-config-catalog-discovery.d.ts +28 -0
- package/dist/src/launcher/model-catalog/native-config-catalog-discovery.d.ts.map +1 -0
- package/dist/src/launcher/model-catalog/native-config-catalog-discovery.js +203 -0
- package/dist/src/launcher/model-catalog/native-config-catalog-discovery.js.map +1 -0
- package/dist/src/launcher/model-catalog/opencode-go.d.ts +4 -0
- package/dist/src/launcher/model-catalog/opencode-go.d.ts.map +1 -0
- package/dist/src/launcher/model-catalog/opencode-go.js +39 -0
- package/dist/src/launcher/model-catalog/opencode-go.js.map +1 -0
- package/dist/src/launcher/model-catalog/openrouter.d.ts +4 -0
- package/dist/src/launcher/model-catalog/openrouter.d.ts.map +1 -0
- package/dist/src/launcher/model-catalog/openrouter.js +71 -0
- package/dist/src/launcher/model-catalog/openrouter.js.map +1 -0
- package/dist/src/launcher/model-catalog/owner-projection.d.ts +20 -0
- package/dist/src/launcher/model-catalog/owner-projection.d.ts.map +1 -0
- package/dist/src/launcher/model-catalog/owner-projection.js +37 -0
- package/dist/src/launcher/model-catalog/owner-projection.js.map +1 -0
- package/dist/src/launcher/model-catalog/registry.d.ts +7 -0
- package/dist/src/launcher/model-catalog/registry.d.ts.map +1 -0
- package/dist/src/launcher/model-catalog/registry.js +19 -0
- package/dist/src/launcher/model-catalog/registry.js.map +1 -0
- package/dist/src/launcher/model-catalog/request-capability.d.ts +10 -0
- package/dist/src/launcher/model-catalog/request-capability.d.ts.map +1 -0
- package/dist/src/launcher/model-catalog/request-capability.js +74 -0
- package/dist/src/launcher/model-catalog/request-capability.js.map +1 -0
- package/dist/src/launcher/model-catalog/script-composition.d.ts +21 -0
- package/dist/src/launcher/model-catalog/script-composition.d.ts.map +1 -0
- package/dist/src/launcher/model-catalog/script-composition.js +26 -0
- package/dist/src/launcher/model-catalog/script-composition.js.map +1 -0
- package/dist/src/launcher/model-catalog/script-executor.d.ts +5 -0
- package/dist/src/launcher/model-catalog/script-executor.d.ts.map +1 -0
- package/dist/src/launcher/model-catalog/script-executor.js +140 -0
- package/dist/src/launcher/model-catalog/script-executor.js.map +1 -0
- package/dist/src/launcher/model-catalog/script-management.d.ts +4 -0
- package/dist/src/launcher/model-catalog/script-management.d.ts.map +1 -0
- package/dist/src/launcher/model-catalog/script-management.js +29 -0
- package/dist/src/launcher/model-catalog/script-management.js.map +1 -0
- package/dist/src/launcher/model-catalog/script-output-parser.d.ts +3 -0
- package/dist/src/launcher/model-catalog/script-output-parser.d.ts.map +1 -0
- package/dist/src/launcher/model-catalog/script-output-parser.js +59 -0
- package/dist/src/launcher/model-catalog/script-output-parser.js.map +1 -0
- package/dist/src/launcher/model-catalog/script-runtime.d.ts +30 -0
- package/dist/src/launcher/model-catalog/script-runtime.d.ts.map +1 -0
- package/dist/src/launcher/model-catalog/script-runtime.js +164 -0
- package/dist/src/launcher/model-catalog/script-runtime.js.map +1 -0
- package/dist/src/launcher/model-catalog/script-schema.d.ts +42 -0
- package/dist/src/launcher/model-catalog/script-schema.d.ts.map +1 -0
- package/dist/src/launcher/model-catalog/script-schema.js +129 -0
- package/dist/src/launcher/model-catalog/script-schema.js.map +1 -0
- package/dist/src/launcher/model-catalog/script-types.d.ts +84 -0
- package/dist/src/launcher/model-catalog/script-types.d.ts.map +1 -0
- package/dist/src/launcher/model-catalog/script-types.js +9 -0
- package/dist/src/launcher/model-catalog/script-types.js.map +1 -0
- package/dist/src/launcher/model-catalog/service.d.ts +39 -0
- package/dist/src/launcher/model-catalog/service.d.ts.map +1 -0
- package/dist/src/launcher/model-catalog/service.js +292 -0
- package/dist/src/launcher/model-catalog/service.js.map +1 -0
- package/dist/src/launcher/model-catalog/supplement.d.ts +4 -0
- package/dist/src/launcher/model-catalog/supplement.d.ts.map +1 -0
- package/dist/src/launcher/model-catalog/supplement.js +59 -0
- package/dist/src/launcher/model-catalog/supplement.js.map +1 -0
- package/dist/src/launcher/native-account-structure.d.ts +3 -0
- package/dist/src/launcher/native-account-structure.d.ts.map +1 -1
- package/dist/src/launcher/native-account-structure.js +5 -2
- package/dist/src/launcher/native-account-structure.js.map +1 -1
- package/dist/src/launcher/native-model-provider-catalog.d.ts +6 -1
- package/dist/src/launcher/native-model-provider-catalog.d.ts.map +1 -1
- package/dist/src/launcher/native-model-provider-catalog.js +16 -3
- package/dist/src/launcher/native-model-provider-catalog.js.map +1 -1
- package/dist/src/launcher/native-predispatch-interception.d.ts +6 -2
- package/dist/src/launcher/native-predispatch-interception.d.ts.map +1 -1
- package/dist/src/launcher/native-predispatch-interception.js +5 -1
- package/dist/src/launcher/native-predispatch-interception.js.map +1 -1
- package/dist/src/launcher/native-submission-cdp-channel.d.ts +7 -0
- package/dist/src/launcher/native-submission-cdp-channel.d.ts.map +1 -1
- package/dist/src/launcher/native-submission-cdp-channel.js +54 -7
- package/dist/src/launcher/native-submission-cdp-channel.js.map +1 -1
- package/dist/src/launcher/native-submission-composition.d.ts +25 -2
- package/dist/src/launcher/native-submission-composition.d.ts.map +1 -1
- package/dist/src/launcher/native-submission-composition.js +378 -59
- package/dist/src/launcher/native-submission-composition.js.map +1 -1
- package/dist/src/launcher/native-submission-controller.d.ts +1 -0
- package/dist/src/launcher/native-submission-controller.d.ts.map +1 -1
- package/dist/src/launcher/native-submission-controller.js +27 -3
- package/dist/src/launcher/native-submission-controller.js.map +1 -1
- package/dist/src/launcher/native-submission-structure.d.ts +7 -0
- package/dist/src/launcher/native-submission-structure.d.ts.map +1 -1
- package/dist/src/launcher/native-submission-structure.js +25 -3
- package/dist/src/launcher/native-submission-structure.js.map +1 -1
- package/dist/src/launcher/process-identity.d.ts +25 -0
- package/dist/src/launcher/process-identity.d.ts.map +1 -0
- package/dist/src/launcher/process-identity.js +126 -0
- package/dist/src/launcher/process-identity.js.map +1 -0
- package/dist/src/launcher/process.d.ts +18 -6
- package/dist/src/launcher/process.d.ts.map +1 -1
- package/dist/src/launcher/process.js +186 -145
- package/dist/src/launcher/process.js.map +1 -1
- package/dist/src/launcher/production-graph-admission.d.ts +1 -1
- package/dist/src/launcher/production-graph-admission.d.ts.map +1 -1
- package/dist/src/launcher/production-graph-admission.js +8 -3
- package/dist/src/launcher/production-graph-admission.js.map +1 -1
- package/dist/src/launcher/profile-launch-lease.d.ts +17 -0
- package/dist/src/launcher/profile-launch-lease.d.ts.map +1 -0
- package/dist/src/launcher/profile-launch-lease.js +180 -0
- package/dist/src/launcher/profile-launch-lease.js.map +1 -0
- package/dist/src/launcher/provider-profile-sync-codex-target.d.ts +22 -0
- package/dist/src/launcher/provider-profile-sync-codex-target.d.ts.map +1 -0
- package/dist/src/launcher/provider-profile-sync-codex-target.js +213 -0
- package/dist/src/launcher/provider-profile-sync-codex-target.js.map +1 -0
- package/dist/src/launcher/provider-profile-sync-codex.d.ts +21 -0
- package/dist/src/launcher/provider-profile-sync-codex.d.ts.map +1 -0
- package/dist/src/launcher/provider-profile-sync-codex.js +589 -0
- package/dist/src/launcher/provider-profile-sync-codex.js.map +1 -0
- package/dist/src/launcher/provider-profile-sync-contracts.d.ts +134 -0
- package/dist/src/launcher/provider-profile-sync-contracts.d.ts.map +1 -0
- package/dist/src/launcher/provider-profile-sync-contracts.js +114 -0
- package/dist/src/launcher/provider-profile-sync-contracts.js.map +1 -0
- package/dist/src/launcher/provider-profile-sync-ledger.d.ts +82 -0
- package/dist/src/launcher/provider-profile-sync-ledger.d.ts.map +1 -0
- package/dist/src/launcher/provider-profile-sync-ledger.js +355 -0
- package/dist/src/launcher/provider-profile-sync-ledger.js.map +1 -0
- package/dist/src/launcher/provider-profile-sync-projection.d.ts +21 -0
- package/dist/src/launcher/provider-profile-sync-projection.d.ts.map +1 -0
- package/dist/src/launcher/provider-profile-sync-projection.js +120 -0
- package/dist/src/launcher/provider-profile-sync-projection.js.map +1 -0
- package/dist/src/launcher/secret-resolver.d.ts.map +1 -1
- package/dist/src/launcher/secret-resolver.js +3 -0
- package/dist/src/launcher/secret-resolver.js.map +1 -1
- package/dist/src/model-catalog/management-overlay.d.ts +67 -0
- package/dist/src/model-catalog/management-overlay.d.ts.map +1 -0
- package/dist/src/model-catalog/management-overlay.js +193 -0
- package/dist/src/model-catalog/management-overlay.js.map +1 -0
- package/dist/src/model-catalog-management.d.ts +132 -0
- package/dist/src/model-catalog-management.d.ts.map +1 -0
- package/dist/src/model-catalog-management.js +2 -0
- package/dist/src/model-catalog-management.js.map +1 -0
- package/dist/src/model-selector-branding.d.ts +24 -0
- package/dist/src/model-selector-branding.d.ts.map +1 -0
- package/dist/src/model-selector-branding.js +201 -0
- package/dist/src/model-selector-branding.js.map +1 -0
- package/dist/src/renderer/adapter/native-model-provider-interaction.d.ts +4 -0
- package/dist/src/renderer/adapter/native-model-provider-interaction.d.ts.map +1 -0
- package/dist/src/renderer/adapter/native-model-provider-interaction.js +45 -0
- package/dist/src/renderer/adapter/native-model-provider-interaction.js.map +1 -0
- package/dist/src/renderer/adapter/native-model-provider-seat.d.ts +2 -0
- package/dist/src/renderer/adapter/native-model-provider-seat.d.ts.map +1 -1
- package/dist/src/renderer/adapter/native-model-provider-seat.js +7 -7
- package/dist/src/renderer/adapter/native-model-provider-seat.js.map +1 -1
- package/dist/src/renderer/adapter/reasoning.d.ts.map +1 -1
- package/dist/src/renderer/adapter/reasoning.js +6 -3
- package/dist/src/renderer/adapter/reasoning.js.map +1 -1
- package/dist/src/renderer/adapter/startup-presentation.d.ts +17 -0
- package/dist/src/renderer/adapter/startup-presentation.d.ts.map +1 -0
- package/dist/src/renderer/adapter/startup-presentation.js +21 -0
- package/dist/src/renderer/adapter/startup-presentation.js.map +1 -0
- package/dist/src/renderer/adapter/startup-readiness.d.ts +21 -0
- package/dist/src/renderer/adapter/startup-readiness.d.ts.map +1 -0
- package/dist/src/renderer/adapter/startup-readiness.js +196 -0
- package/dist/src/renderer/adapter/startup-readiness.js.map +1 -0
- package/dist/src/renderer/current-user/native.d.ts +17 -1
- package/dist/src/renderer/current-user/native.d.ts.map +1 -1
- package/dist/src/renderer/current-user/native.js +20 -7
- package/dist/src/renderer/current-user/native.js.map +1 -1
- package/dist/src/renderer/host-ui/HostMenu.d.ts +2 -1
- package/dist/src/renderer/host-ui/HostMenu.d.ts.map +1 -1
- package/dist/src/renderer/host-ui/HostMenu.js +17 -5
- package/dist/src/renderer/host-ui/HostMenu.js.map +1 -1
- package/dist/src/renderer/host-ui/ModelBrandIcon.d.ts +8 -0
- package/dist/src/renderer/host-ui/ModelBrandIcon.d.ts.map +1 -0
- package/dist/src/renderer/host-ui/ModelBrandIcon.js +93 -0
- package/dist/src/renderer/host-ui/ModelBrandIcon.js.map +1 -0
- package/dist/src/renderer/host-ui/SelectField.d.ts +2 -1
- package/dist/src/renderer/host-ui/SelectField.d.ts.map +1 -1
- package/dist/src/renderer/host-ui/SelectField.js +2 -2
- package/dist/src/renderer/host-ui/SelectField.js.map +1 -1
- package/dist/src/renderer/install-model-provider-selector.d.ts.map +1 -1
- package/dist/src/renderer/install-model-provider-selector.js +24 -8
- package/dist/src/renderer/install-model-provider-selector.js.map +1 -1
- package/dist/src/renderer/manager/pages/ModelServicesPage.d.ts.map +1 -1
- package/dist/src/renderer/manager/pages/ModelServicesPage.js +47 -6
- package/dist/src/renderer/manager/pages/ModelServicesPage.js.map +1 -1
- package/dist/src/renderer/manager/pages/model-catalog/CatalogBinding.d.ts +16 -0
- package/dist/src/renderer/manager/pages/model-catalog/CatalogBinding.d.ts.map +1 -0
- package/dist/src/renderer/manager/pages/model-catalog/CatalogBinding.js +131 -0
- package/dist/src/renderer/manager/pages/model-catalog/CatalogBinding.js.map +1 -0
- package/dist/src/renderer/manager/pages/model-catalog/CatalogInput.d.ts +6 -0
- package/dist/src/renderer/manager/pages/model-catalog/CatalogInput.d.ts.map +1 -0
- package/dist/src/renderer/manager/pages/model-catalog/CatalogInput.js +12 -0
- package/dist/src/renderer/manager/pages/model-catalog/CatalogInput.js.map +1 -0
- package/dist/src/renderer/manager/pages/model-catalog/ConnectionEditor.d.ts +8 -0
- package/dist/src/renderer/manager/pages/model-catalog/ConnectionEditor.d.ts.map +1 -0
- package/dist/src/renderer/manager/pages/model-catalog/ConnectionEditor.js +82 -0
- package/dist/src/renderer/manager/pages/model-catalog/ConnectionEditor.js.map +1 -0
- package/dist/src/renderer/manager/pages/model-catalog/ModelEditor.d.ts +10 -0
- package/dist/src/renderer/manager/pages/model-catalog/ModelEditor.d.ts.map +1 -0
- package/dist/src/renderer/manager/pages/model-catalog/ModelEditor.js +74 -0
- package/dist/src/renderer/manager/pages/model-catalog/ModelEditor.js.map +1 -0
- package/dist/src/renderer/manager/pages/model-catalog/ScriptEditor.d.ts +9 -0
- package/dist/src/renderer/manager/pages/model-catalog/ScriptEditor.d.ts.map +1 -0
- package/dist/src/renderer/manager/pages/model-catalog/ScriptEditor.js +82 -0
- package/dist/src/renderer/manager/pages/model-catalog/ScriptEditor.js.map +1 -0
- package/dist/src/renderer/manager/pages/model-catalog/model-catalog.css +254 -0
- package/dist/src/renderer/model-catalog-client.d.ts +26 -0
- package/dist/src/renderer/model-catalog-client.d.ts.map +1 -0
- package/dist/src/renderer/model-catalog-client.js +122 -0
- package/dist/src/renderer/model-catalog-client.js.map +1 -0
- package/dist/src/renderer/model-catalog-projection.d.ts +5 -0
- package/dist/src/renderer/model-catalog-projection.d.ts.map +1 -0
- package/dist/src/renderer/model-catalog-projection.js +176 -0
- package/dist/src/renderer/model-catalog-projection.js.map +1 -0
- package/dist/src/renderer/model-provider-selector.d.ts +2 -1
- package/dist/src/renderer/model-provider-selector.d.ts.map +1 -1
- package/dist/src/renderer/model-provider-selector.js +58 -18
- package/dist/src/renderer/model-provider-selector.js.map +1 -1
- package/dist/src/renderer/model-providers.css +14 -1
- package/dist/src/renderer/model-providers.d.ts +19 -2
- package/dist/src/renderer/model-providers.d.ts.map +1 -1
- package/dist/src/renderer/model-providers.js +62 -2
- package/dist/src/renderer/model-providers.js.map +1 -1
- package/dist/src/renderer/native-model-provider-transport.d.ts +2 -0
- package/dist/src/renderer/native-model-provider-transport.d.ts.map +1 -1
- package/dist/src/renderer/native-model-provider-transport.js +57 -9
- package/dist/src/renderer/native-model-provider-transport.js.map +1 -1
- package/dist/src/renderer/native-provider-selection-client.d.ts +8 -1
- package/dist/src/renderer/native-provider-selection-client.d.ts.map +1 -1
- package/dist/src/renderer/native-provider-selection-client.js.map +1 -1
- package/dist/src/renderer/runtime-install.d.ts +2 -2
- package/dist/src/renderer/runtime-install.d.ts.map +1 -1
- package/dist/src/renderer/runtime-install.js +27 -11
- package/dist/src/renderer/runtime-install.js.map +1 -1
- package/dist/src/renderer/runtime-plugin-mount.d.ts +1 -1
- package/dist/src/renderer/runtime-plugin-mount.d.ts.map +1 -1
- package/dist/src/renderer/runtime-plugin-mount.js +5 -1
- package/dist/src/renderer/runtime-plugin-mount.js.map +1 -1
- package/dist/src/renderer/runtime-shared.d.ts +1 -0
- package/dist/src/renderer/runtime-shared.d.ts.map +1 -1
- package/dist/src/renderer/runtime-shared.js.map +1 -1
- package/dist/src/renderer/runtime-start-completion.d.ts +3 -0
- package/dist/src/renderer/runtime-start-completion.d.ts.map +1 -0
- package/dist/src/renderer/runtime-start-completion.js +12 -0
- package/dist/src/renderer/runtime-start-completion.js.map +1 -0
- package/dist/src/renderer/runtime-start.d.ts.map +1 -1
- package/dist/src/renderer/runtime-start.js +7 -6
- package/dist/src/renderer/runtime-start.js.map +1 -1
- package/dist/src/renderer/ui-copy/model-catalog.d.ts +455 -0
- package/dist/src/renderer/ui-copy/model-catalog.d.ts.map +1 -0
- package/dist/src/renderer/ui-copy/model-catalog.js +158 -0
- package/dist/src/renderer/ui-copy/model-catalog.js.map +1 -0
- package/dist/src/renderer/ui-copy.d.ts +453 -1
- package/dist/src/renderer/ui-copy.d.ts.map +1 -1
- package/dist/src/renderer/ui-copy.js +2 -0
- package/dist/src/renderer/ui-copy.js.map +1 -1
- package/dist/src/shortcuts/create.d.ts +17 -1
- package/dist/src/shortcuts/create.d.ts.map +1 -1
- package/dist/src/shortcuts/create.js +37 -0
- package/dist/src/shortcuts/create.js.map +1 -1
- package/dist/src/shortcuts/create.test.js +22 -1
- package/dist/src/shortcuts/create.test.js.map +1 -1
- package/dist/src/shortcuts/dock.d.ts +22 -6
- package/dist/src/shortcuts/dock.d.ts.map +1 -1
- package/dist/src/shortcuts/dock.js +156 -33
- package/dist/src/shortcuts/dock.js.map +1 -1
- package/dist/src/shortcuts/model.d.ts +7 -0
- package/dist/src/shortcuts/model.d.ts.map +1 -1
- package/dist/src/shortcuts/model.js +5 -1
- package/dist/src/shortcuts/model.js.map +1 -1
- package/dist/src/shortcuts/native.d.ts +6 -2
- package/dist/src/shortcuts/native.d.ts.map +1 -1
- package/dist/src/shortcuts/native.js +18 -4
- package/dist/src/shortcuts/native.js.map +1 -1
- package/dist/src/shortcuts/presentation.test.js +45 -0
- package/dist/src/shortcuts/presentation.test.js.map +1 -1
- package/dist/src/shortcuts/startup-brand.d.ts +6 -0
- package/dist/src/shortcuts/startup-brand.d.ts.map +1 -0
- package/dist/src/shortcuts/startup-brand.js +32 -0
- package/dist/src/shortcuts/startup-brand.js.map +1 -0
- package/dist/src/shortcuts/startup-cover.d.ts +15 -0
- package/dist/src/shortcuts/startup-cover.d.ts.map +1 -0
- package/dist/src/shortcuts/startup-cover.js +202 -0
- package/dist/src/shortcuts/startup-cover.js.map +1 -0
- package/dist/src/shortcuts/startup-release.d.ts +7 -0
- package/dist/src/shortcuts/startup-release.d.ts.map +1 -0
- package/dist/src/shortcuts/startup-release.js +11 -0
- package/dist/src/shortcuts/startup-release.js.map +1 -0
- package/dist/src/shortcuts/startup-timing.d.ts +7 -0
- package/dist/src/shortcuts/startup-timing.d.ts.map +1 -0
- package/dist/src/shortcuts/startup-timing.js +77 -0
- package/dist/src/shortcuts/startup-timing.js.map +1 -0
- package/package.json +4 -2
- package/scripts/refresh-existing-app.mjs +11 -0
- package/third_party/lobe-icons-MIT.txt +21 -0
- package/third_party/openai-apps-sdk-ui-MIT.txt +19 -0
|
@@ -0,0 +1,427 @@
|
|
|
1
|
+
// src/service/extension-registry.ts
|
|
2
|
+
import { createHash } from "node:crypto";
|
|
3
|
+
var CLI_PROXY_GATEWAY_ADAPTER_SCHEMA_V1 = "https://raw.githubusercontent.com/cordisx/plugin-cli-proxy-api/main/schemas/cli-proxy-gateway-adapter.v1.schema.json";
|
|
4
|
+
var CLI_PROXY_GATEWAY_CONNECTION_SCHEMA_V1 = "https://raw.githubusercontent.com/cordisx/plugin-cli-proxy-api/main/schemas/cli-proxy-gateway-connection.v1.schema.json";
|
|
5
|
+
var CLI_PROXY_GATEWAY_ADAPTER_CONTRACT_V1 = "cordisx.cli-proxy-gateway-adapter/v1";
|
|
6
|
+
var CLI_PROXY_GATEWAY_CONNECTION_CONTRACT_V1 = "cordisx.cli-proxy-gateway-connection/v1";
|
|
7
|
+
var CLI_PROXY_GATEWAY_EXTENSION_PLAN_CONTRACT_V1 = "cordisx.cli-proxy-gateway-extension-plan/v1";
|
|
8
|
+
var CLI_PROXY_GATEWAY_EXTENSION_REGISTRY_SERVICE_V1 = "cliProxyGatewayExtensions";
|
|
9
|
+
var ID_PATTERN = /^[a-z0-9][a-z0-9._-]{0,95}$/;
|
|
10
|
+
var HEADER_PATTERN = /^[!#$%&'*+.^_`|~0-9A-Za-z-]{1,128}$/;
|
|
11
|
+
var POINTER_PATTERN = /^(?:\/(?:[^~/]|~0|~1)*)+$/;
|
|
12
|
+
var MAX_ADAPTERS = 64;
|
|
13
|
+
var MAX_CONNECTIONS = 128;
|
|
14
|
+
var MAX_MODELS = 256;
|
|
15
|
+
function isText(value, maximum) {
|
|
16
|
+
return value.length > 0 && value.length <= maximum && value === value.trim() && !/[\u0000-\u001f\u007f]/.test(value);
|
|
17
|
+
}
|
|
18
|
+
function stableValue(value) {
|
|
19
|
+
if (Array.isArray(value)) return value.map(stableValue);
|
|
20
|
+
if (value === null || typeof value !== "object") return value;
|
|
21
|
+
return Object.fromEntries(
|
|
22
|
+
Object.entries(value).sort(([left], [right]) => left.localeCompare(right)).map(
|
|
23
|
+
([key, item]) => [key, stableValue(item)]
|
|
24
|
+
)
|
|
25
|
+
);
|
|
26
|
+
}
|
|
27
|
+
function stableStringify(value) {
|
|
28
|
+
return JSON.stringify(stableValue(value));
|
|
29
|
+
}
|
|
30
|
+
function digest(value) {
|
|
31
|
+
return `sha256:${createHash("sha256").update(stableStringify(value)).digest("hex")}`;
|
|
32
|
+
}
|
|
33
|
+
function rejection(failure) {
|
|
34
|
+
return { status: "rejected", diagnostic: failure };
|
|
35
|
+
}
|
|
36
|
+
function validRevision(value) {
|
|
37
|
+
return Number.isSafeInteger(value) && value > 0;
|
|
38
|
+
}
|
|
39
|
+
function validTemplate(value, depth = 0) {
|
|
40
|
+
if (depth > 12) return false;
|
|
41
|
+
if (value === null || typeof value === "boolean") return true;
|
|
42
|
+
if (typeof value === "number") return Number.isFinite(value);
|
|
43
|
+
if (typeof value === "string") return value.length <= 8192 && !value.includes("\0");
|
|
44
|
+
if (Array.isArray(value)) return value.length <= 128 && value.every((item) => validTemplate(item, depth + 1));
|
|
45
|
+
const entries = Object.entries(value);
|
|
46
|
+
return entries.length <= 128 && entries.every(([key, item]) => isText(key, 256) && validTemplate(item, depth + 1));
|
|
47
|
+
}
|
|
48
|
+
function validateAdapter(adapter) {
|
|
49
|
+
if (adapter.$schema !== CLI_PROXY_GATEWAY_ADAPTER_SCHEMA_V1 || adapter.contract !== CLI_PROXY_GATEWAY_ADAPTER_CONTRACT_V1 || adapter.schemaVersion !== 1) return { code: "invalid-registration", field: "contract", message: "Unsupported gateway adapter contract" };
|
|
50
|
+
if (!ID_PATTERN.test(adapter.adapterId)) {
|
|
51
|
+
return { code: "invalid-registration", field: "adapterId", message: "Invalid adapter id" };
|
|
52
|
+
}
|
|
53
|
+
if (!validRevision(adapter.revision)) {
|
|
54
|
+
return { code: "invalid-registration", field: "revision", message: "Revision must be a positive safe integer" };
|
|
55
|
+
}
|
|
56
|
+
if (adapter.sessionSources.length > 16) {
|
|
57
|
+
return { code: "invalid-registration", field: "sessionSources", message: "Too many session sources" };
|
|
58
|
+
}
|
|
59
|
+
for (const source of adapter.sessionSources) {
|
|
60
|
+
if (source.kind === "header" ? !HEADER_PATTERN.test(source.name) : !POINTER_PATTERN.test(source.pointer) || source.pointer.length > 512) return { code: "invalid-registration", field: "sessionSources", message: "Invalid session source" };
|
|
61
|
+
}
|
|
62
|
+
for (const name of adapter.request.clearHeaders ?? []) {
|
|
63
|
+
if (!HEADER_PATTERN.test(name)) {
|
|
64
|
+
return { code: "invalid-registration", field: "request.clearHeaders", message: "Invalid header name" };
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
for (const [name, value] of Object.entries(adapter.request.setHeaders ?? {})) {
|
|
68
|
+
if (!HEADER_PATTERN.test(name) || !validTemplate(value)) {
|
|
69
|
+
return { code: "invalid-registration", field: "request.setHeaders", message: "Invalid header transform" };
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
for (const [pointer, value] of Object.entries(adapter.request.setBody ?? {})) {
|
|
73
|
+
if (!POINTER_PATTERN.test(pointer) || pointer.length > 512 || !validTemplate(value)) {
|
|
74
|
+
return { code: "invalid-registration", field: "request.setBody", message: "Invalid body transform" };
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
if (stableStringify(adapter).length > 64 * 1024) {
|
|
78
|
+
return { code: "invalid-registration", message: "Adapter exceeds the supported size" };
|
|
79
|
+
}
|
|
80
|
+
return void 0;
|
|
81
|
+
}
|
|
82
|
+
function validateConnection(connection) {
|
|
83
|
+
if (connection.$schema !== CLI_PROXY_GATEWAY_CONNECTION_SCHEMA_V1 || connection.contract !== CLI_PROXY_GATEWAY_CONNECTION_CONTRACT_V1 || connection.schemaVersion !== 1) return { code: "invalid-registration", field: "contract", message: "Unsupported gateway connection contract" };
|
|
84
|
+
if (!ID_PATTERN.test(connection.connectionId)) {
|
|
85
|
+
return { code: "invalid-registration", field: "connectionId", message: "Invalid connection id" };
|
|
86
|
+
}
|
|
87
|
+
if (!validRevision(connection.revision)) {
|
|
88
|
+
return { code: "invalid-registration", field: "revision", message: "Revision must be a positive safe integer" };
|
|
89
|
+
}
|
|
90
|
+
if (connection.wireApi !== "responses" && connection.wireApi !== "chat-completions") {
|
|
91
|
+
return { code: "invalid-registration", field: "wireApi", message: "Unsupported wire API" };
|
|
92
|
+
}
|
|
93
|
+
if (!connection.endpointPath.startsWith("/") || connection.endpointPath.startsWith("//") || connection.endpointPath.length > 512 || /[?#\u0000-\u001f\u007f]/.test(connection.endpointPath)) return { code: "invalid-registration", field: "endpointPath", message: "Invalid endpoint path" };
|
|
94
|
+
if (!ID_PATTERN.test(connection.adapter.adapterId) || !validRevision(connection.adapter.revision)) {
|
|
95
|
+
return { code: "invalid-registration", field: "adapter", message: "Invalid adapter reference" };
|
|
96
|
+
}
|
|
97
|
+
if (connection.models.length === 0 || connection.models.length > MAX_MODELS) {
|
|
98
|
+
return { code: "invalid-registration", field: "models", message: "Model routes are outside the supported range" };
|
|
99
|
+
}
|
|
100
|
+
const gatewayModels = /* @__PURE__ */ new Set();
|
|
101
|
+
const sourceModels = /* @__PURE__ */ new Set();
|
|
102
|
+
let defaults = 0;
|
|
103
|
+
for (const model of connection.models) {
|
|
104
|
+
if (!isText(model.sourceModelId, 256) || !isText(model.modelId, 256) || model.modelId.includes("/")) {
|
|
105
|
+
return { code: "invalid-registration", field: "models", message: "Invalid model identity" };
|
|
106
|
+
}
|
|
107
|
+
if (model.displayName !== void 0 && !isText(model.displayName, 200)) {
|
|
108
|
+
return { code: "invalid-registration", field: "models.displayName", message: "Invalid model display name" };
|
|
109
|
+
}
|
|
110
|
+
if (gatewayModels.has(model.modelId) || sourceModels.has(model.sourceModelId)) {
|
|
111
|
+
return { code: "conflicting-model", field: "models", message: "Duplicate connection model route" };
|
|
112
|
+
}
|
|
113
|
+
gatewayModels.add(model.modelId);
|
|
114
|
+
sourceModels.add(model.sourceModelId);
|
|
115
|
+
if (model.enabled && model.isDefault) defaults += 1;
|
|
116
|
+
}
|
|
117
|
+
if (!connection.models.some((model) => model.enabled)) {
|
|
118
|
+
return { code: "invalid-registration", field: "models", message: "At least one enabled model route is required" };
|
|
119
|
+
}
|
|
120
|
+
if (defaults > 1) {
|
|
121
|
+
return { code: "conflicting-model", field: "models.isDefault", message: "Only one default model is allowed" };
|
|
122
|
+
}
|
|
123
|
+
return void 0;
|
|
124
|
+
}
|
|
125
|
+
var CliProxyGatewayExtensionRegistryV1 = class {
|
|
126
|
+
constructor(pluginGeneration, sourceKey) {
|
|
127
|
+
this.pluginGeneration = pluginGeneration;
|
|
128
|
+
this.sourceKey = sourceKey;
|
|
129
|
+
if (!isText(pluginGeneration, 256)) throw new Error("Invalid plugin generation");
|
|
130
|
+
}
|
|
131
|
+
pluginGeneration;
|
|
132
|
+
sourceKey;
|
|
133
|
+
adapters = /* @__PURE__ */ new Map();
|
|
134
|
+
connections = /* @__PURE__ */ new Map();
|
|
135
|
+
producerGenerations = /* @__PURE__ */ new Map();
|
|
136
|
+
listeners = /* @__PURE__ */ new Set();
|
|
137
|
+
revision = 0;
|
|
138
|
+
disposed = false;
|
|
139
|
+
activateProducer(producer, registryGeneration) {
|
|
140
|
+
if (this.disposed || registryGeneration !== this.pluginGeneration) {
|
|
141
|
+
throw new Error("Gateway extension registry generation is stale");
|
|
142
|
+
}
|
|
143
|
+
if (!ID_PATTERN.test(producer.pluginId) || !isText(producer.pluginGeneration, 256)) {
|
|
144
|
+
throw new Error("Invalid gateway extension producer authority");
|
|
145
|
+
}
|
|
146
|
+
if (this.producerGenerations.get(producer.pluginId) === producer.pluginGeneration) return;
|
|
147
|
+
this.producerGenerations.set(producer.pluginId, producer.pluginGeneration);
|
|
148
|
+
if (this.removeProducerEntries(producer.pluginId)) this.changed();
|
|
149
|
+
}
|
|
150
|
+
registerAdapter(adapter, registryGeneration, producer) {
|
|
151
|
+
const generationFailure = this.generationFailure(registryGeneration, producer);
|
|
152
|
+
if (generationFailure !== void 0) return generationFailure;
|
|
153
|
+
const validation = validateAdapter(adapter);
|
|
154
|
+
if (validation !== void 0) return rejection(validation);
|
|
155
|
+
const current = this.adapters.get(adapter.adapterId);
|
|
156
|
+
const ownership = this.ownershipFailure(current?.producer, producer);
|
|
157
|
+
if (ownership !== void 0) return ownership;
|
|
158
|
+
if (current !== void 0) {
|
|
159
|
+
const revision = this.revisionResult(current.adapter.revision, adapter.revision, current.adapter, adapter);
|
|
160
|
+
if (revision !== void 0) return revision;
|
|
161
|
+
} else if (this.adapters.size >= MAX_ADAPTERS) {
|
|
162
|
+
return rejection({ code: "capacity-exceeded", message: "Gateway adapter capacity was reached" });
|
|
163
|
+
}
|
|
164
|
+
this.adapters.set(adapter.adapterId, { producer, adapter: structuredClone(adapter) });
|
|
165
|
+
this.changed();
|
|
166
|
+
return { status: current === void 0 ? "registered" : "updated", registryRevision: this.revision };
|
|
167
|
+
}
|
|
168
|
+
registerConnection(connection, registryGeneration, producer) {
|
|
169
|
+
const generationFailure = this.generationFailure(registryGeneration, producer);
|
|
170
|
+
if (generationFailure !== void 0) return generationFailure;
|
|
171
|
+
const validation = validateConnection(connection);
|
|
172
|
+
if (validation !== void 0) return rejection(validation);
|
|
173
|
+
const current = this.connections.get(connection.connectionId);
|
|
174
|
+
const ownership = this.ownershipFailure(current?.producer, producer);
|
|
175
|
+
if (ownership !== void 0) return ownership;
|
|
176
|
+
const sourceKey = this.sourceKey(connection.source);
|
|
177
|
+
if (!isText(sourceKey, 512)) {
|
|
178
|
+
return rejection({
|
|
179
|
+
code: "invalid-registration",
|
|
180
|
+
field: "source",
|
|
181
|
+
message: "Invalid connection source reference"
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
if (current !== void 0) {
|
|
185
|
+
const revision = this.revisionResult(
|
|
186
|
+
current.connection.revision,
|
|
187
|
+
connection.revision,
|
|
188
|
+
{ ...current.connection, source: current.sourceKey },
|
|
189
|
+
{ ...connection, source: sourceKey }
|
|
190
|
+
);
|
|
191
|
+
if (revision !== void 0) return revision;
|
|
192
|
+
} else if (this.connections.size >= MAX_CONNECTIONS) {
|
|
193
|
+
return rejection({ code: "capacity-exceeded", message: "Gateway connection capacity was reached" });
|
|
194
|
+
}
|
|
195
|
+
for (const [connectionId, entry] of this.connections) {
|
|
196
|
+
if (connectionId === connection.connectionId) continue;
|
|
197
|
+
if (entry.sourceKey === sourceKey) {
|
|
198
|
+
return rejection({
|
|
199
|
+
code: "conflicting-source",
|
|
200
|
+
field: "source",
|
|
201
|
+
message: "Connection source is already registered"
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
const existingModels = new Set(
|
|
205
|
+
entry.connection.models.filter((model) => entry.connection.enabled && model.enabled).map(
|
|
206
|
+
(model) => `${entry.connection.connectionId}/${model.modelId}`
|
|
207
|
+
)
|
|
208
|
+
);
|
|
209
|
+
if (connection.models.some(
|
|
210
|
+
(model) => connection.enabled && model.enabled && existingModels.has(
|
|
211
|
+
`${connection.connectionId}/${model.modelId}`
|
|
212
|
+
)
|
|
213
|
+
)) return rejection({ code: "conflicting-model", field: "models", message: "Gateway model is already registered" });
|
|
214
|
+
}
|
|
215
|
+
this.connections.set(connection.connectionId, {
|
|
216
|
+
producer,
|
|
217
|
+
sourceKey,
|
|
218
|
+
connection: structuredClone(connection)
|
|
219
|
+
});
|
|
220
|
+
this.changed();
|
|
221
|
+
return { status: current === void 0 ? "registered" : "updated", registryRevision: this.revision };
|
|
222
|
+
}
|
|
223
|
+
revokeAdapter(input, registryGeneration, producer) {
|
|
224
|
+
const generationFailure = this.generationFailure(registryGeneration, producer);
|
|
225
|
+
if (generationFailure !== void 0) return generationFailure;
|
|
226
|
+
const current = this.adapters.get(input.adapterId);
|
|
227
|
+
if (current === void 0) {
|
|
228
|
+
return rejection({ code: "not-found", field: "adapterId", message: "Adapter is not registered" });
|
|
229
|
+
}
|
|
230
|
+
const ownership = this.ownershipFailure(current.producer, producer);
|
|
231
|
+
if (ownership !== void 0) return ownership;
|
|
232
|
+
if (current.adapter.revision !== input.expectedRevision) {
|
|
233
|
+
return rejection({ code: "stale-revision", field: "expectedRevision", message: "Adapter revision is stale" });
|
|
234
|
+
}
|
|
235
|
+
this.adapters.delete(input.adapterId);
|
|
236
|
+
this.changed();
|
|
237
|
+
return { status: "revoked", registryRevision: this.revision };
|
|
238
|
+
}
|
|
239
|
+
revokeConnection(input, registryGeneration, producer) {
|
|
240
|
+
const generationFailure = this.generationFailure(registryGeneration, producer);
|
|
241
|
+
if (generationFailure !== void 0) return generationFailure;
|
|
242
|
+
const current = this.connections.get(input.connectionId);
|
|
243
|
+
if (current === void 0) {
|
|
244
|
+
return rejection({ code: "not-found", field: "connectionId", message: "Connection is not registered" });
|
|
245
|
+
}
|
|
246
|
+
const ownership = this.ownershipFailure(current.producer, producer);
|
|
247
|
+
if (ownership !== void 0) return ownership;
|
|
248
|
+
if (current.connection.revision !== input.expectedRevision) {
|
|
249
|
+
return rejection({ code: "stale-revision", field: "expectedRevision", message: "Connection revision is stale" });
|
|
250
|
+
}
|
|
251
|
+
this.connections.delete(input.connectionId);
|
|
252
|
+
this.changed();
|
|
253
|
+
return { status: "revoked", registryRevision: this.revision };
|
|
254
|
+
}
|
|
255
|
+
disposeProducer(producer, registryGeneration) {
|
|
256
|
+
const generationFailure = this.generationFailure(registryGeneration, producer);
|
|
257
|
+
if (generationFailure !== void 0) return generationFailure;
|
|
258
|
+
this.producerGenerations.delete(producer.pluginId);
|
|
259
|
+
if (!this.removeProducerEntries(producer.pluginId, producer.pluginGeneration)) {
|
|
260
|
+
return { status: "unchanged", registryRevision: this.revision };
|
|
261
|
+
}
|
|
262
|
+
this.changed();
|
|
263
|
+
return { status: "revoked", registryRevision: this.revision };
|
|
264
|
+
}
|
|
265
|
+
subscribe(listener) {
|
|
266
|
+
if (this.disposed) throw new Error("Gateway extension registry generation is stale");
|
|
267
|
+
this.listeners.add(listener);
|
|
268
|
+
return () => this.listeners.delete(listener);
|
|
269
|
+
}
|
|
270
|
+
plan(pluginGeneration) {
|
|
271
|
+
if (this.disposed || pluginGeneration !== this.pluginGeneration) {
|
|
272
|
+
return { code: "stale-generation", message: "Gateway extension plan generation is stale" };
|
|
273
|
+
}
|
|
274
|
+
const adapters = [...this.adapters.values()].map((entry) => structuredClone(entry.adapter)).sort(
|
|
275
|
+
(left, right) => left.adapterId.localeCompare(right.adapterId)
|
|
276
|
+
);
|
|
277
|
+
const connections = [];
|
|
278
|
+
const composition = [];
|
|
279
|
+
for (const entry of [...this.connections.values()].sort(
|
|
280
|
+
(left, right) => left.connection.connectionId.localeCompare(right.connection.connectionId)
|
|
281
|
+
)) {
|
|
282
|
+
const connection = entry.connection;
|
|
283
|
+
const adapter = this.adapters.get(connection.adapter.adapterId)?.adapter;
|
|
284
|
+
const adapterAvailable = adapter?.enabled === true && adapter.revision === connection.adapter.revision;
|
|
285
|
+
const enabled = connection.enabled && (!connection.adapter.required || adapterAvailable);
|
|
286
|
+
const index = connections.length;
|
|
287
|
+
connections.push({
|
|
288
|
+
connectionId: connection.connectionId,
|
|
289
|
+
revision: connection.revision,
|
|
290
|
+
enabled,
|
|
291
|
+
adapterId: connection.adapter.adapterId,
|
|
292
|
+
adapterRevision: connection.adapter.revision,
|
|
293
|
+
adapterRequired: connection.adapter.required,
|
|
294
|
+
adapterAvailable,
|
|
295
|
+
wireApi: connection.wireApi,
|
|
296
|
+
endpointPath: connection.endpointPath,
|
|
297
|
+
endpoint: null,
|
|
298
|
+
authorization: connection.authorization,
|
|
299
|
+
credential: null,
|
|
300
|
+
models: connection.models.filter((model) => model.enabled).sort(
|
|
301
|
+
(left, right) => left.modelId.localeCompare(right.modelId)
|
|
302
|
+
).map((model) => ({
|
|
303
|
+
sourceModelId: model.sourceModelId,
|
|
304
|
+
gatewayModelId: `${connection.connectionId}/${model.modelId}`,
|
|
305
|
+
displayName: model.displayName ?? model.modelId,
|
|
306
|
+
isDefault: model.isDefault
|
|
307
|
+
}))
|
|
308
|
+
});
|
|
309
|
+
if (!enabled) continue;
|
|
310
|
+
const sourceAlias = `extension-${index}`;
|
|
311
|
+
composition.push({
|
|
312
|
+
connectionId: connection.connectionId,
|
|
313
|
+
sourceAlias,
|
|
314
|
+
source: connection.source,
|
|
315
|
+
originPointer: `/connections/${index}/endpoint`,
|
|
316
|
+
...connection.authorization === "bearer" ? { authorizationPointer: `/connections/${index}/credential` } : {}
|
|
317
|
+
});
|
|
318
|
+
}
|
|
319
|
+
const base = {
|
|
320
|
+
contract: CLI_PROXY_GATEWAY_EXTENSION_PLAN_CONTRACT_V1,
|
|
321
|
+
schemaVersion: 1,
|
|
322
|
+
pluginGeneration: this.pluginGeneration,
|
|
323
|
+
registryRevision: this.revision,
|
|
324
|
+
configuration: { adapters, connections },
|
|
325
|
+
composition
|
|
326
|
+
};
|
|
327
|
+
return { ...base, planDigest: digest({ ...base, composition: composition.map(({ source: _, ...item }) => item) }) };
|
|
328
|
+
}
|
|
329
|
+
dispose() {
|
|
330
|
+
if (this.disposed) return;
|
|
331
|
+
this.disposed = true;
|
|
332
|
+
this.adapters.clear();
|
|
333
|
+
this.connections.clear();
|
|
334
|
+
this.producerGenerations.clear();
|
|
335
|
+
this.listeners.clear();
|
|
336
|
+
this.revision += 1;
|
|
337
|
+
}
|
|
338
|
+
revisionResult(currentRevision, nextRevision, current, next) {
|
|
339
|
+
if (nextRevision < currentRevision) {
|
|
340
|
+
return rejection({ code: "stale-revision", field: "revision", message: "Extension revision is stale" });
|
|
341
|
+
}
|
|
342
|
+
if (nextRevision !== currentRevision) return void 0;
|
|
343
|
+
return stableStringify(current) === stableStringify(next) ? { status: "unchanged", registryRevision: this.revision } : rejection({ code: "stale-revision", field: "revision", message: "Revision was reused with different content" });
|
|
344
|
+
}
|
|
345
|
+
ownershipFailure(current, producer) {
|
|
346
|
+
if (current === void 0) return void 0;
|
|
347
|
+
if (current.pluginId !== producer.pluginId) {
|
|
348
|
+
return rejection({ code: "conflicting-producer", message: "Extension is owned by another producer" });
|
|
349
|
+
}
|
|
350
|
+
if (current.pluginGeneration !== producer.pluginGeneration) {
|
|
351
|
+
return {
|
|
352
|
+
status: "stale-generation",
|
|
353
|
+
diagnostic: { code: "stale-generation", message: "Extension producer generation is stale" }
|
|
354
|
+
};
|
|
355
|
+
}
|
|
356
|
+
return void 0;
|
|
357
|
+
}
|
|
358
|
+
generationFailure(registryGeneration, producer) {
|
|
359
|
+
if (this.disposed || registryGeneration !== this.pluginGeneration || this.producerGenerations.get(producer.pluginId) !== producer.pluginGeneration) {
|
|
360
|
+
return {
|
|
361
|
+
status: "stale-generation",
|
|
362
|
+
diagnostic: { code: "stale-generation", message: "Gateway extension registry generation is stale" }
|
|
363
|
+
};
|
|
364
|
+
}
|
|
365
|
+
return void 0;
|
|
366
|
+
}
|
|
367
|
+
removeProducerEntries(pluginId, pluginGeneration) {
|
|
368
|
+
let removed = false;
|
|
369
|
+
for (const [adapterId, entry] of this.adapters) {
|
|
370
|
+
if (entry.producer.pluginId !== pluginId || pluginGeneration !== void 0 && entry.producer.pluginGeneration !== pluginGeneration) continue;
|
|
371
|
+
this.adapters.delete(adapterId);
|
|
372
|
+
removed = true;
|
|
373
|
+
}
|
|
374
|
+
for (const [connectionId, entry] of this.connections) {
|
|
375
|
+
if (entry.producer.pluginId !== pluginId || pluginGeneration !== void 0 && entry.producer.pluginGeneration !== pluginGeneration) continue;
|
|
376
|
+
this.connections.delete(connectionId);
|
|
377
|
+
removed = true;
|
|
378
|
+
}
|
|
379
|
+
return removed;
|
|
380
|
+
}
|
|
381
|
+
changed() {
|
|
382
|
+
this.revision += 1;
|
|
383
|
+
for (const listener of this.listeners) listener(this.revision);
|
|
384
|
+
}
|
|
385
|
+
};
|
|
386
|
+
function createCliProxyGatewayExtensionRegistrarV1(registry, producer) {
|
|
387
|
+
registry.activateProducer(producer, registry.pluginGeneration);
|
|
388
|
+
let disposed = false;
|
|
389
|
+
const currentRevision = () => {
|
|
390
|
+
const plan = registry.plan(registry.pluginGeneration);
|
|
391
|
+
return "code" in plan ? 0 : plan.registryRevision;
|
|
392
|
+
};
|
|
393
|
+
return Object.freeze({
|
|
394
|
+
producer,
|
|
395
|
+
registerAdapter: (adapter) => disposed ? {
|
|
396
|
+
status: "stale-generation",
|
|
397
|
+
diagnostic: { code: "stale-generation", message: "Extension registrar is disposed" }
|
|
398
|
+
} : registry.registerAdapter(adapter, registry.pluginGeneration, producer),
|
|
399
|
+
revokeAdapter: (input) => disposed ? {
|
|
400
|
+
status: "stale-generation",
|
|
401
|
+
diagnostic: { code: "stale-generation", message: "Extension registrar is disposed" }
|
|
402
|
+
} : registry.revokeAdapter(input, registry.pluginGeneration, producer),
|
|
403
|
+
registerConnection: (connection) => disposed ? {
|
|
404
|
+
status: "stale-generation",
|
|
405
|
+
diagnostic: { code: "stale-generation", message: "Extension registrar is disposed" }
|
|
406
|
+
} : registry.registerConnection(connection, registry.pluginGeneration, producer),
|
|
407
|
+
revokeConnection: (input) => disposed ? {
|
|
408
|
+
status: "stale-generation",
|
|
409
|
+
diagnostic: { code: "stale-generation", message: "Extension registrar is disposed" }
|
|
410
|
+
} : registry.revokeConnection(input, registry.pluginGeneration, producer),
|
|
411
|
+
dispose: () => {
|
|
412
|
+
if (disposed) return { status: "unchanged", registryRevision: currentRevision() };
|
|
413
|
+
disposed = true;
|
|
414
|
+
return registry.disposeProducer(producer, registry.pluginGeneration);
|
|
415
|
+
}
|
|
416
|
+
});
|
|
417
|
+
}
|
|
418
|
+
export {
|
|
419
|
+
CLI_PROXY_GATEWAY_ADAPTER_CONTRACT_V1,
|
|
420
|
+
CLI_PROXY_GATEWAY_ADAPTER_SCHEMA_V1,
|
|
421
|
+
CLI_PROXY_GATEWAY_CONNECTION_CONTRACT_V1,
|
|
422
|
+
CLI_PROXY_GATEWAY_CONNECTION_SCHEMA_V1,
|
|
423
|
+
CLI_PROXY_GATEWAY_EXTENSION_PLAN_CONTRACT_V1,
|
|
424
|
+
CLI_PROXY_GATEWAY_EXTENSION_REGISTRY_SERVICE_V1,
|
|
425
|
+
CliProxyGatewayExtensionRegistryV1,
|
|
426
|
+
createCliProxyGatewayExtensionRegistrarV1
|
|
427
|
+
};
|