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
|
@@ -1009,6 +1009,424 @@ function createCliProxyUpstreamRegistrarV1(registry, producer) {
|
|
|
1009
1009
|
});
|
|
1010
1010
|
}
|
|
1011
1011
|
|
|
1012
|
+
// src/service/extension-registry.ts
|
|
1013
|
+
import { createHash as createHash2 } from "node:crypto";
|
|
1014
|
+
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";
|
|
1015
|
+
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";
|
|
1016
|
+
var CLI_PROXY_GATEWAY_ADAPTER_CONTRACT_V1 = "cordisx.cli-proxy-gateway-adapter/v1";
|
|
1017
|
+
var CLI_PROXY_GATEWAY_CONNECTION_CONTRACT_V1 = "cordisx.cli-proxy-gateway-connection/v1";
|
|
1018
|
+
var CLI_PROXY_GATEWAY_EXTENSION_PLAN_CONTRACT_V1 = "cordisx.cli-proxy-gateway-extension-plan/v1";
|
|
1019
|
+
var CLI_PROXY_GATEWAY_EXTENSION_REGISTRY_SERVICE_V1 = "cliProxyGatewayExtensions";
|
|
1020
|
+
var ID_PATTERN2 = /^[a-z0-9][a-z0-9._-]{0,95}$/;
|
|
1021
|
+
var HEADER_PATTERN = /^[!#$%&'*+.^_`|~0-9A-Za-z-]{1,128}$/;
|
|
1022
|
+
var POINTER_PATTERN = /^(?:\/(?:[^~/]|~0|~1)*)+$/;
|
|
1023
|
+
var MAX_ADAPTERS = 64;
|
|
1024
|
+
var MAX_CONNECTIONS = 128;
|
|
1025
|
+
var MAX_MODELS2 = 256;
|
|
1026
|
+
function isText2(value, maximum) {
|
|
1027
|
+
return value.length > 0 && value.length <= maximum && value === value.trim() && !/[\u0000-\u001f\u007f]/.test(value);
|
|
1028
|
+
}
|
|
1029
|
+
function stableValue2(value) {
|
|
1030
|
+
if (Array.isArray(value)) return value.map(stableValue2);
|
|
1031
|
+
if (value === null || typeof value !== "object") return value;
|
|
1032
|
+
return Object.fromEntries(
|
|
1033
|
+
Object.entries(value).sort(([left], [right]) => left.localeCompare(right)).map(
|
|
1034
|
+
([key, item]) => [key, stableValue2(item)]
|
|
1035
|
+
)
|
|
1036
|
+
);
|
|
1037
|
+
}
|
|
1038
|
+
function stableStringify2(value) {
|
|
1039
|
+
return JSON.stringify(stableValue2(value));
|
|
1040
|
+
}
|
|
1041
|
+
function digest2(value) {
|
|
1042
|
+
return `sha256:${createHash2("sha256").update(stableStringify2(value)).digest("hex")}`;
|
|
1043
|
+
}
|
|
1044
|
+
function rejection2(failure2) {
|
|
1045
|
+
return { status: "rejected", diagnostic: failure2 };
|
|
1046
|
+
}
|
|
1047
|
+
function validRevision(value) {
|
|
1048
|
+
return Number.isSafeInteger(value) && value > 0;
|
|
1049
|
+
}
|
|
1050
|
+
function validTemplate(value, depth = 0) {
|
|
1051
|
+
if (depth > 12) return false;
|
|
1052
|
+
if (value === null || typeof value === "boolean") return true;
|
|
1053
|
+
if (typeof value === "number") return Number.isFinite(value);
|
|
1054
|
+
if (typeof value === "string") return value.length <= 8192 && !value.includes("\0");
|
|
1055
|
+
if (Array.isArray(value)) return value.length <= 128 && value.every((item) => validTemplate(item, depth + 1));
|
|
1056
|
+
const entries = Object.entries(value);
|
|
1057
|
+
return entries.length <= 128 && entries.every(([key, item]) => isText2(key, 256) && validTemplate(item, depth + 1));
|
|
1058
|
+
}
|
|
1059
|
+
function validateAdapter(adapter) {
|
|
1060
|
+
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" };
|
|
1061
|
+
if (!ID_PATTERN2.test(adapter.adapterId)) {
|
|
1062
|
+
return { code: "invalid-registration", field: "adapterId", message: "Invalid adapter id" };
|
|
1063
|
+
}
|
|
1064
|
+
if (!validRevision(adapter.revision)) {
|
|
1065
|
+
return { code: "invalid-registration", field: "revision", message: "Revision must be a positive safe integer" };
|
|
1066
|
+
}
|
|
1067
|
+
if (adapter.sessionSources.length > 16) {
|
|
1068
|
+
return { code: "invalid-registration", field: "sessionSources", message: "Too many session sources" };
|
|
1069
|
+
}
|
|
1070
|
+
for (const source of adapter.sessionSources) {
|
|
1071
|
+
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" };
|
|
1072
|
+
}
|
|
1073
|
+
for (const name of adapter.request.clearHeaders ?? []) {
|
|
1074
|
+
if (!HEADER_PATTERN.test(name)) {
|
|
1075
|
+
return { code: "invalid-registration", field: "request.clearHeaders", message: "Invalid header name" };
|
|
1076
|
+
}
|
|
1077
|
+
}
|
|
1078
|
+
for (const [name, value] of Object.entries(adapter.request.setHeaders ?? {})) {
|
|
1079
|
+
if (!HEADER_PATTERN.test(name) || !validTemplate(value)) {
|
|
1080
|
+
return { code: "invalid-registration", field: "request.setHeaders", message: "Invalid header transform" };
|
|
1081
|
+
}
|
|
1082
|
+
}
|
|
1083
|
+
for (const [pointer, value] of Object.entries(adapter.request.setBody ?? {})) {
|
|
1084
|
+
if (!POINTER_PATTERN.test(pointer) || pointer.length > 512 || !validTemplate(value)) {
|
|
1085
|
+
return { code: "invalid-registration", field: "request.setBody", message: "Invalid body transform" };
|
|
1086
|
+
}
|
|
1087
|
+
}
|
|
1088
|
+
if (stableStringify2(adapter).length > 64 * 1024) {
|
|
1089
|
+
return { code: "invalid-registration", message: "Adapter exceeds the supported size" };
|
|
1090
|
+
}
|
|
1091
|
+
return void 0;
|
|
1092
|
+
}
|
|
1093
|
+
function validateConnection(connection) {
|
|
1094
|
+
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" };
|
|
1095
|
+
if (!ID_PATTERN2.test(connection.connectionId)) {
|
|
1096
|
+
return { code: "invalid-registration", field: "connectionId", message: "Invalid connection id" };
|
|
1097
|
+
}
|
|
1098
|
+
if (!validRevision(connection.revision)) {
|
|
1099
|
+
return { code: "invalid-registration", field: "revision", message: "Revision must be a positive safe integer" };
|
|
1100
|
+
}
|
|
1101
|
+
if (connection.wireApi !== "responses" && connection.wireApi !== "chat-completions") {
|
|
1102
|
+
return { code: "invalid-registration", field: "wireApi", message: "Unsupported wire API" };
|
|
1103
|
+
}
|
|
1104
|
+
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" };
|
|
1105
|
+
if (!ID_PATTERN2.test(connection.adapter.adapterId) || !validRevision(connection.adapter.revision)) {
|
|
1106
|
+
return { code: "invalid-registration", field: "adapter", message: "Invalid adapter reference" };
|
|
1107
|
+
}
|
|
1108
|
+
if (connection.models.length === 0 || connection.models.length > MAX_MODELS2) {
|
|
1109
|
+
return { code: "invalid-registration", field: "models", message: "Model routes are outside the supported range" };
|
|
1110
|
+
}
|
|
1111
|
+
const gatewayModels = /* @__PURE__ */ new Set();
|
|
1112
|
+
const sourceModels = /* @__PURE__ */ new Set();
|
|
1113
|
+
let defaults = 0;
|
|
1114
|
+
for (const model2 of connection.models) {
|
|
1115
|
+
if (!isText2(model2.sourceModelId, 256) || !isText2(model2.modelId, 256) || model2.modelId.includes("/")) {
|
|
1116
|
+
return { code: "invalid-registration", field: "models", message: "Invalid model identity" };
|
|
1117
|
+
}
|
|
1118
|
+
if (model2.displayName !== void 0 && !isText2(model2.displayName, 200)) {
|
|
1119
|
+
return { code: "invalid-registration", field: "models.displayName", message: "Invalid model display name" };
|
|
1120
|
+
}
|
|
1121
|
+
if (gatewayModels.has(model2.modelId) || sourceModels.has(model2.sourceModelId)) {
|
|
1122
|
+
return { code: "conflicting-model", field: "models", message: "Duplicate connection model route" };
|
|
1123
|
+
}
|
|
1124
|
+
gatewayModels.add(model2.modelId);
|
|
1125
|
+
sourceModels.add(model2.sourceModelId);
|
|
1126
|
+
if (model2.enabled && model2.isDefault) defaults += 1;
|
|
1127
|
+
}
|
|
1128
|
+
if (!connection.models.some((model2) => model2.enabled)) {
|
|
1129
|
+
return { code: "invalid-registration", field: "models", message: "At least one enabled model route is required" };
|
|
1130
|
+
}
|
|
1131
|
+
if (defaults > 1) {
|
|
1132
|
+
return { code: "conflicting-model", field: "models.isDefault", message: "Only one default model is allowed" };
|
|
1133
|
+
}
|
|
1134
|
+
return void 0;
|
|
1135
|
+
}
|
|
1136
|
+
var CliProxyGatewayExtensionRegistryV1 = class {
|
|
1137
|
+
constructor(pluginGeneration, sourceKey) {
|
|
1138
|
+
this.pluginGeneration = pluginGeneration;
|
|
1139
|
+
this.sourceKey = sourceKey;
|
|
1140
|
+
if (!isText2(pluginGeneration, 256)) throw new Error("Invalid plugin generation");
|
|
1141
|
+
}
|
|
1142
|
+
pluginGeneration;
|
|
1143
|
+
sourceKey;
|
|
1144
|
+
adapters = /* @__PURE__ */ new Map();
|
|
1145
|
+
connections = /* @__PURE__ */ new Map();
|
|
1146
|
+
producerGenerations = /* @__PURE__ */ new Map();
|
|
1147
|
+
listeners = /* @__PURE__ */ new Set();
|
|
1148
|
+
revision = 0;
|
|
1149
|
+
disposed = false;
|
|
1150
|
+
activateProducer(producer, registryGeneration) {
|
|
1151
|
+
if (this.disposed || registryGeneration !== this.pluginGeneration) {
|
|
1152
|
+
throw new Error("Gateway extension registry generation is stale");
|
|
1153
|
+
}
|
|
1154
|
+
if (!ID_PATTERN2.test(producer.pluginId) || !isText2(producer.pluginGeneration, 256)) {
|
|
1155
|
+
throw new Error("Invalid gateway extension producer authority");
|
|
1156
|
+
}
|
|
1157
|
+
if (this.producerGenerations.get(producer.pluginId) === producer.pluginGeneration) return;
|
|
1158
|
+
this.producerGenerations.set(producer.pluginId, producer.pluginGeneration);
|
|
1159
|
+
if (this.removeProducerEntries(producer.pluginId)) this.changed();
|
|
1160
|
+
}
|
|
1161
|
+
registerAdapter(adapter, registryGeneration, producer) {
|
|
1162
|
+
const generationFailure = this.generationFailure(registryGeneration, producer);
|
|
1163
|
+
if (generationFailure !== void 0) return generationFailure;
|
|
1164
|
+
const validation = validateAdapter(adapter);
|
|
1165
|
+
if (validation !== void 0) return rejection2(validation);
|
|
1166
|
+
const current = this.adapters.get(adapter.adapterId);
|
|
1167
|
+
const ownership = this.ownershipFailure(current?.producer, producer);
|
|
1168
|
+
if (ownership !== void 0) return ownership;
|
|
1169
|
+
if (current !== void 0) {
|
|
1170
|
+
const revision = this.revisionResult(current.adapter.revision, adapter.revision, current.adapter, adapter);
|
|
1171
|
+
if (revision !== void 0) return revision;
|
|
1172
|
+
} else if (this.adapters.size >= MAX_ADAPTERS) {
|
|
1173
|
+
return rejection2({ code: "capacity-exceeded", message: "Gateway adapter capacity was reached" });
|
|
1174
|
+
}
|
|
1175
|
+
this.adapters.set(adapter.adapterId, { producer, adapter: structuredClone(adapter) });
|
|
1176
|
+
this.changed();
|
|
1177
|
+
return { status: current === void 0 ? "registered" : "updated", registryRevision: this.revision };
|
|
1178
|
+
}
|
|
1179
|
+
registerConnection(connection, registryGeneration, producer) {
|
|
1180
|
+
const generationFailure = this.generationFailure(registryGeneration, producer);
|
|
1181
|
+
if (generationFailure !== void 0) return generationFailure;
|
|
1182
|
+
const validation = validateConnection(connection);
|
|
1183
|
+
if (validation !== void 0) return rejection2(validation);
|
|
1184
|
+
const current = this.connections.get(connection.connectionId);
|
|
1185
|
+
const ownership = this.ownershipFailure(current?.producer, producer);
|
|
1186
|
+
if (ownership !== void 0) return ownership;
|
|
1187
|
+
const sourceKey = this.sourceKey(connection.source);
|
|
1188
|
+
if (!isText2(sourceKey, 512)) {
|
|
1189
|
+
return rejection2({
|
|
1190
|
+
code: "invalid-registration",
|
|
1191
|
+
field: "source",
|
|
1192
|
+
message: "Invalid connection source reference"
|
|
1193
|
+
});
|
|
1194
|
+
}
|
|
1195
|
+
if (current !== void 0) {
|
|
1196
|
+
const revision = this.revisionResult(
|
|
1197
|
+
current.connection.revision,
|
|
1198
|
+
connection.revision,
|
|
1199
|
+
{ ...current.connection, source: current.sourceKey },
|
|
1200
|
+
{ ...connection, source: sourceKey }
|
|
1201
|
+
);
|
|
1202
|
+
if (revision !== void 0) return revision;
|
|
1203
|
+
} else if (this.connections.size >= MAX_CONNECTIONS) {
|
|
1204
|
+
return rejection2({ code: "capacity-exceeded", message: "Gateway connection capacity was reached" });
|
|
1205
|
+
}
|
|
1206
|
+
for (const [connectionId, entry] of this.connections) {
|
|
1207
|
+
if (connectionId === connection.connectionId) continue;
|
|
1208
|
+
if (entry.sourceKey === sourceKey) {
|
|
1209
|
+
return rejection2({
|
|
1210
|
+
code: "conflicting-source",
|
|
1211
|
+
field: "source",
|
|
1212
|
+
message: "Connection source is already registered"
|
|
1213
|
+
});
|
|
1214
|
+
}
|
|
1215
|
+
const existingModels = new Set(
|
|
1216
|
+
entry.connection.models.filter((model2) => entry.connection.enabled && model2.enabled).map(
|
|
1217
|
+
(model2) => `${entry.connection.connectionId}/${model2.modelId}`
|
|
1218
|
+
)
|
|
1219
|
+
);
|
|
1220
|
+
if (connection.models.some(
|
|
1221
|
+
(model2) => connection.enabled && model2.enabled && existingModels.has(
|
|
1222
|
+
`${connection.connectionId}/${model2.modelId}`
|
|
1223
|
+
)
|
|
1224
|
+
)) return rejection2({ code: "conflicting-model", field: "models", message: "Gateway model is already registered" });
|
|
1225
|
+
}
|
|
1226
|
+
this.connections.set(connection.connectionId, {
|
|
1227
|
+
producer,
|
|
1228
|
+
sourceKey,
|
|
1229
|
+
connection: structuredClone(connection)
|
|
1230
|
+
});
|
|
1231
|
+
this.changed();
|
|
1232
|
+
return { status: current === void 0 ? "registered" : "updated", registryRevision: this.revision };
|
|
1233
|
+
}
|
|
1234
|
+
revokeAdapter(input, registryGeneration, producer) {
|
|
1235
|
+
const generationFailure = this.generationFailure(registryGeneration, producer);
|
|
1236
|
+
if (generationFailure !== void 0) return generationFailure;
|
|
1237
|
+
const current = this.adapters.get(input.adapterId);
|
|
1238
|
+
if (current === void 0) {
|
|
1239
|
+
return rejection2({ code: "not-found", field: "adapterId", message: "Adapter is not registered" });
|
|
1240
|
+
}
|
|
1241
|
+
const ownership = this.ownershipFailure(current.producer, producer);
|
|
1242
|
+
if (ownership !== void 0) return ownership;
|
|
1243
|
+
if (current.adapter.revision !== input.expectedRevision) {
|
|
1244
|
+
return rejection2({ code: "stale-revision", field: "expectedRevision", message: "Adapter revision is stale" });
|
|
1245
|
+
}
|
|
1246
|
+
this.adapters.delete(input.adapterId);
|
|
1247
|
+
this.changed();
|
|
1248
|
+
return { status: "revoked", registryRevision: this.revision };
|
|
1249
|
+
}
|
|
1250
|
+
revokeConnection(input, registryGeneration, producer) {
|
|
1251
|
+
const generationFailure = this.generationFailure(registryGeneration, producer);
|
|
1252
|
+
if (generationFailure !== void 0) return generationFailure;
|
|
1253
|
+
const current = this.connections.get(input.connectionId);
|
|
1254
|
+
if (current === void 0) {
|
|
1255
|
+
return rejection2({ code: "not-found", field: "connectionId", message: "Connection is not registered" });
|
|
1256
|
+
}
|
|
1257
|
+
const ownership = this.ownershipFailure(current.producer, producer);
|
|
1258
|
+
if (ownership !== void 0) return ownership;
|
|
1259
|
+
if (current.connection.revision !== input.expectedRevision) {
|
|
1260
|
+
return rejection2({ code: "stale-revision", field: "expectedRevision", message: "Connection revision is stale" });
|
|
1261
|
+
}
|
|
1262
|
+
this.connections.delete(input.connectionId);
|
|
1263
|
+
this.changed();
|
|
1264
|
+
return { status: "revoked", registryRevision: this.revision };
|
|
1265
|
+
}
|
|
1266
|
+
disposeProducer(producer, registryGeneration) {
|
|
1267
|
+
const generationFailure = this.generationFailure(registryGeneration, producer);
|
|
1268
|
+
if (generationFailure !== void 0) return generationFailure;
|
|
1269
|
+
this.producerGenerations.delete(producer.pluginId);
|
|
1270
|
+
if (!this.removeProducerEntries(producer.pluginId, producer.pluginGeneration)) {
|
|
1271
|
+
return { status: "unchanged", registryRevision: this.revision };
|
|
1272
|
+
}
|
|
1273
|
+
this.changed();
|
|
1274
|
+
return { status: "revoked", registryRevision: this.revision };
|
|
1275
|
+
}
|
|
1276
|
+
subscribe(listener) {
|
|
1277
|
+
if (this.disposed) throw new Error("Gateway extension registry generation is stale");
|
|
1278
|
+
this.listeners.add(listener);
|
|
1279
|
+
return () => this.listeners.delete(listener);
|
|
1280
|
+
}
|
|
1281
|
+
plan(pluginGeneration) {
|
|
1282
|
+
if (this.disposed || pluginGeneration !== this.pluginGeneration) {
|
|
1283
|
+
return { code: "stale-generation", message: "Gateway extension plan generation is stale" };
|
|
1284
|
+
}
|
|
1285
|
+
const adapters = [...this.adapters.values()].map((entry) => structuredClone(entry.adapter)).sort(
|
|
1286
|
+
(left, right) => left.adapterId.localeCompare(right.adapterId)
|
|
1287
|
+
);
|
|
1288
|
+
const connections = [];
|
|
1289
|
+
const composition = [];
|
|
1290
|
+
for (const entry of [...this.connections.values()].sort(
|
|
1291
|
+
(left, right) => left.connection.connectionId.localeCompare(right.connection.connectionId)
|
|
1292
|
+
)) {
|
|
1293
|
+
const connection = entry.connection;
|
|
1294
|
+
const adapter = this.adapters.get(connection.adapter.adapterId)?.adapter;
|
|
1295
|
+
const adapterAvailable = adapter?.enabled === true && adapter.revision === connection.adapter.revision;
|
|
1296
|
+
const enabled = connection.enabled && (!connection.adapter.required || adapterAvailable);
|
|
1297
|
+
const index = connections.length;
|
|
1298
|
+
connections.push({
|
|
1299
|
+
connectionId: connection.connectionId,
|
|
1300
|
+
revision: connection.revision,
|
|
1301
|
+
enabled,
|
|
1302
|
+
adapterId: connection.adapter.adapterId,
|
|
1303
|
+
adapterRevision: connection.adapter.revision,
|
|
1304
|
+
adapterRequired: connection.adapter.required,
|
|
1305
|
+
adapterAvailable,
|
|
1306
|
+
wireApi: connection.wireApi,
|
|
1307
|
+
endpointPath: connection.endpointPath,
|
|
1308
|
+
endpoint: null,
|
|
1309
|
+
authorization: connection.authorization,
|
|
1310
|
+
credential: null,
|
|
1311
|
+
models: connection.models.filter((model2) => model2.enabled).sort(
|
|
1312
|
+
(left, right) => left.modelId.localeCompare(right.modelId)
|
|
1313
|
+
).map((model2) => ({
|
|
1314
|
+
sourceModelId: model2.sourceModelId,
|
|
1315
|
+
gatewayModelId: `${connection.connectionId}/${model2.modelId}`,
|
|
1316
|
+
displayName: model2.displayName ?? model2.modelId,
|
|
1317
|
+
isDefault: model2.isDefault
|
|
1318
|
+
}))
|
|
1319
|
+
});
|
|
1320
|
+
if (!enabled) continue;
|
|
1321
|
+
const sourceAlias = `extension-${index}`;
|
|
1322
|
+
composition.push({
|
|
1323
|
+
connectionId: connection.connectionId,
|
|
1324
|
+
sourceAlias,
|
|
1325
|
+
source: connection.source,
|
|
1326
|
+
originPointer: `/connections/${index}/endpoint`,
|
|
1327
|
+
...connection.authorization === "bearer" ? { authorizationPointer: `/connections/${index}/credential` } : {}
|
|
1328
|
+
});
|
|
1329
|
+
}
|
|
1330
|
+
const base = {
|
|
1331
|
+
contract: CLI_PROXY_GATEWAY_EXTENSION_PLAN_CONTRACT_V1,
|
|
1332
|
+
schemaVersion: 1,
|
|
1333
|
+
pluginGeneration: this.pluginGeneration,
|
|
1334
|
+
registryRevision: this.revision,
|
|
1335
|
+
configuration: { adapters, connections },
|
|
1336
|
+
composition
|
|
1337
|
+
};
|
|
1338
|
+
return { ...base, planDigest: digest2({ ...base, composition: composition.map(({ source: _, ...item }) => item) }) };
|
|
1339
|
+
}
|
|
1340
|
+
dispose() {
|
|
1341
|
+
if (this.disposed) return;
|
|
1342
|
+
this.disposed = true;
|
|
1343
|
+
this.adapters.clear();
|
|
1344
|
+
this.connections.clear();
|
|
1345
|
+
this.producerGenerations.clear();
|
|
1346
|
+
this.listeners.clear();
|
|
1347
|
+
this.revision += 1;
|
|
1348
|
+
}
|
|
1349
|
+
revisionResult(currentRevision, nextRevision, current, next) {
|
|
1350
|
+
if (nextRevision < currentRevision) {
|
|
1351
|
+
return rejection2({ code: "stale-revision", field: "revision", message: "Extension revision is stale" });
|
|
1352
|
+
}
|
|
1353
|
+
if (nextRevision !== currentRevision) return void 0;
|
|
1354
|
+
return stableStringify2(current) === stableStringify2(next) ? { status: "unchanged", registryRevision: this.revision } : rejection2({ code: "stale-revision", field: "revision", message: "Revision was reused with different content" });
|
|
1355
|
+
}
|
|
1356
|
+
ownershipFailure(current, producer) {
|
|
1357
|
+
if (current === void 0) return void 0;
|
|
1358
|
+
if (current.pluginId !== producer.pluginId) {
|
|
1359
|
+
return rejection2({ code: "conflicting-producer", message: "Extension is owned by another producer" });
|
|
1360
|
+
}
|
|
1361
|
+
if (current.pluginGeneration !== producer.pluginGeneration) {
|
|
1362
|
+
return {
|
|
1363
|
+
status: "stale-generation",
|
|
1364
|
+
diagnostic: { code: "stale-generation", message: "Extension producer generation is stale" }
|
|
1365
|
+
};
|
|
1366
|
+
}
|
|
1367
|
+
return void 0;
|
|
1368
|
+
}
|
|
1369
|
+
generationFailure(registryGeneration, producer) {
|
|
1370
|
+
if (this.disposed || registryGeneration !== this.pluginGeneration || this.producerGenerations.get(producer.pluginId) !== producer.pluginGeneration) {
|
|
1371
|
+
return {
|
|
1372
|
+
status: "stale-generation",
|
|
1373
|
+
diagnostic: { code: "stale-generation", message: "Gateway extension registry generation is stale" }
|
|
1374
|
+
};
|
|
1375
|
+
}
|
|
1376
|
+
return void 0;
|
|
1377
|
+
}
|
|
1378
|
+
removeProducerEntries(pluginId, pluginGeneration) {
|
|
1379
|
+
let removed = false;
|
|
1380
|
+
for (const [adapterId, entry] of this.adapters) {
|
|
1381
|
+
if (entry.producer.pluginId !== pluginId || pluginGeneration !== void 0 && entry.producer.pluginGeneration !== pluginGeneration) continue;
|
|
1382
|
+
this.adapters.delete(adapterId);
|
|
1383
|
+
removed = true;
|
|
1384
|
+
}
|
|
1385
|
+
for (const [connectionId, entry] of this.connections) {
|
|
1386
|
+
if (entry.producer.pluginId !== pluginId || pluginGeneration !== void 0 && entry.producer.pluginGeneration !== pluginGeneration) continue;
|
|
1387
|
+
this.connections.delete(connectionId);
|
|
1388
|
+
removed = true;
|
|
1389
|
+
}
|
|
1390
|
+
return removed;
|
|
1391
|
+
}
|
|
1392
|
+
changed() {
|
|
1393
|
+
this.revision += 1;
|
|
1394
|
+
for (const listener of this.listeners) listener(this.revision);
|
|
1395
|
+
}
|
|
1396
|
+
};
|
|
1397
|
+
function createCliProxyGatewayExtensionRegistrarV1(registry, producer) {
|
|
1398
|
+
registry.activateProducer(producer, registry.pluginGeneration);
|
|
1399
|
+
let disposed = false;
|
|
1400
|
+
const currentRevision = () => {
|
|
1401
|
+
const plan = registry.plan(registry.pluginGeneration);
|
|
1402
|
+
return "code" in plan ? 0 : plan.registryRevision;
|
|
1403
|
+
};
|
|
1404
|
+
return Object.freeze({
|
|
1405
|
+
producer,
|
|
1406
|
+
registerAdapter: (adapter) => disposed ? {
|
|
1407
|
+
status: "stale-generation",
|
|
1408
|
+
diagnostic: { code: "stale-generation", message: "Extension registrar is disposed" }
|
|
1409
|
+
} : registry.registerAdapter(adapter, registry.pluginGeneration, producer),
|
|
1410
|
+
revokeAdapter: (input) => disposed ? {
|
|
1411
|
+
status: "stale-generation",
|
|
1412
|
+
diagnostic: { code: "stale-generation", message: "Extension registrar is disposed" }
|
|
1413
|
+
} : registry.revokeAdapter(input, registry.pluginGeneration, producer),
|
|
1414
|
+
registerConnection: (connection) => disposed ? {
|
|
1415
|
+
status: "stale-generation",
|
|
1416
|
+
diagnostic: { code: "stale-generation", message: "Extension registrar is disposed" }
|
|
1417
|
+
} : registry.registerConnection(connection, registry.pluginGeneration, producer),
|
|
1418
|
+
revokeConnection: (input) => disposed ? {
|
|
1419
|
+
status: "stale-generation",
|
|
1420
|
+
diagnostic: { code: "stale-generation", message: "Extension registrar is disposed" }
|
|
1421
|
+
} : registry.revokeConnection(input, registry.pluginGeneration, producer),
|
|
1422
|
+
dispose: () => {
|
|
1423
|
+
if (disposed) return { status: "unchanged", registryRevision: currentRevision() };
|
|
1424
|
+
disposed = true;
|
|
1425
|
+
return registry.disposeProducer(producer, registry.pluginGeneration);
|
|
1426
|
+
}
|
|
1427
|
+
});
|
|
1428
|
+
}
|
|
1429
|
+
|
|
1012
1430
|
// src/service/index.ts
|
|
1013
1431
|
var OPERATIONS = [
|
|
1014
1432
|
"models.list",
|
|
@@ -1055,12 +1473,20 @@ var apply = async (ctx, input) => {
|
|
|
1055
1473
|
}
|
|
1056
1474
|
};
|
|
1057
1475
|
export {
|
|
1476
|
+
CLI_PROXY_GATEWAY_ADAPTER_CONTRACT_V1,
|
|
1477
|
+
CLI_PROXY_GATEWAY_ADAPTER_SCHEMA_V1,
|
|
1478
|
+
CLI_PROXY_GATEWAY_CONNECTION_CONTRACT_V1,
|
|
1479
|
+
CLI_PROXY_GATEWAY_CONNECTION_SCHEMA_V1,
|
|
1480
|
+
CLI_PROXY_GATEWAY_EXTENSION_PLAN_CONTRACT_V1,
|
|
1481
|
+
CLI_PROXY_GATEWAY_EXTENSION_REGISTRY_SERVICE_V1,
|
|
1058
1482
|
CLI_PROXY_GATEWAY_PLAN_CONTRACT_V1,
|
|
1059
1483
|
CLI_PROXY_MODEL_CATALOG_CONTRACT_V1,
|
|
1060
1484
|
CLI_PROXY_UPSTREAM_DESCRIPTOR_CONTRACT_V1,
|
|
1061
1485
|
CLI_PROXY_UPSTREAM_DESCRIPTOR_SCHEMA_V1,
|
|
1062
1486
|
CLI_PROXY_UPSTREAM_REGISTRY_SERVICE_V1,
|
|
1487
|
+
CliProxyGatewayExtensionRegistryV1,
|
|
1063
1488
|
CliProxyUpstreamRegistryV1,
|
|
1064
1489
|
apply,
|
|
1490
|
+
createCliProxyGatewayExtensionRegistrarV1,
|
|
1065
1491
|
createCliProxyUpstreamRegistrarV1
|
|
1066
1492
|
};
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
export declare const CLI_PROXY_GATEWAY_ADAPTER_SCHEMA_V1 = "https://raw.githubusercontent.com/cordisx/plugin-cli-proxy-api/main/schemas/cli-proxy-gateway-adapter.v1.schema.json";
|
|
2
|
+
export declare const CLI_PROXY_GATEWAY_CONNECTION_SCHEMA_V1 = "https://raw.githubusercontent.com/cordisx/plugin-cli-proxy-api/main/schemas/cli-proxy-gateway-connection.v1.schema.json";
|
|
3
|
+
export declare const CLI_PROXY_GATEWAY_ADAPTER_CONTRACT_V1 = "cordisx.cli-proxy-gateway-adapter/v1";
|
|
4
|
+
export declare const CLI_PROXY_GATEWAY_CONNECTION_CONTRACT_V1 = "cordisx.cli-proxy-gateway-connection/v1";
|
|
5
|
+
export declare const CLI_PROXY_GATEWAY_EXTENSION_PLAN_CONTRACT_V1 = "cordisx.cli-proxy-gateway-extension-plan/v1";
|
|
6
|
+
export declare const CLI_PROXY_GATEWAY_EXTENSION_REGISTRY_SERVICE_V1 = "cliProxyGatewayExtensions";
|
|
7
|
+
export type CliProxyGatewayWireApiV1 = 'responses' | 'chat-completions';
|
|
8
|
+
export type CliProxyGatewayTemplateV1 = null | boolean | number | string | readonly CliProxyGatewayTemplateV1[] | {
|
|
9
|
+
readonly [key: string]: CliProxyGatewayTemplateV1;
|
|
10
|
+
};
|
|
11
|
+
export type CliProxyGatewaySessionSourceV1 = {
|
|
12
|
+
readonly kind: 'header';
|
|
13
|
+
readonly name: string;
|
|
14
|
+
} | {
|
|
15
|
+
readonly kind: 'body-json-pointer';
|
|
16
|
+
readonly pointer: `/${string}`;
|
|
17
|
+
};
|
|
18
|
+
export interface CliProxyGatewayAdapterV1 {
|
|
19
|
+
readonly $schema: typeof CLI_PROXY_GATEWAY_ADAPTER_SCHEMA_V1;
|
|
20
|
+
readonly contract: typeof CLI_PROXY_GATEWAY_ADAPTER_CONTRACT_V1;
|
|
21
|
+
readonly schemaVersion: 1;
|
|
22
|
+
readonly adapterId: string;
|
|
23
|
+
readonly revision: number;
|
|
24
|
+
readonly enabled: boolean;
|
|
25
|
+
readonly requiredSession: boolean;
|
|
26
|
+
readonly sessionSources: readonly CliProxyGatewaySessionSourceV1[];
|
|
27
|
+
readonly request: {
|
|
28
|
+
readonly clearHeaders?: readonly string[];
|
|
29
|
+
readonly setHeaders?: Readonly<Record<string, CliProxyGatewayTemplateV1>>;
|
|
30
|
+
readonly setBody?: Readonly<Record<`/${string}`, CliProxyGatewayTemplateV1>>;
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
export interface CliProxyGatewayConnectionModelV1 {
|
|
34
|
+
readonly sourceModelId: string;
|
|
35
|
+
readonly modelId: string;
|
|
36
|
+
readonly displayName?: string;
|
|
37
|
+
readonly enabled: boolean;
|
|
38
|
+
readonly isDefault: boolean;
|
|
39
|
+
}
|
|
40
|
+
export interface CliProxyGatewayConnectionV1<Source> {
|
|
41
|
+
readonly $schema: typeof CLI_PROXY_GATEWAY_CONNECTION_SCHEMA_V1;
|
|
42
|
+
readonly contract: typeof CLI_PROXY_GATEWAY_CONNECTION_CONTRACT_V1;
|
|
43
|
+
readonly schemaVersion: 1;
|
|
44
|
+
readonly connectionId: string;
|
|
45
|
+
readonly revision: number;
|
|
46
|
+
readonly enabled: boolean;
|
|
47
|
+
readonly source: Source;
|
|
48
|
+
readonly wireApi: CliProxyGatewayWireApiV1;
|
|
49
|
+
readonly endpointPath: `/${string}`;
|
|
50
|
+
readonly authorization: 'none' | 'bearer';
|
|
51
|
+
readonly adapter: {
|
|
52
|
+
readonly adapterId: string;
|
|
53
|
+
readonly revision: number;
|
|
54
|
+
readonly required: boolean;
|
|
55
|
+
};
|
|
56
|
+
readonly models: readonly CliProxyGatewayConnectionModelV1[];
|
|
57
|
+
}
|
|
58
|
+
export interface CliProxyGatewayExtensionProducerV1 {
|
|
59
|
+
readonly pluginId: string;
|
|
60
|
+
readonly pluginGeneration: string;
|
|
61
|
+
}
|
|
62
|
+
export type CliProxyGatewayExtensionDiagnosticCodeV1 = 'invalid-registration' | 'capacity-exceeded' | 'conflicting-producer' | 'conflicting-source' | 'conflicting-model' | 'stale-revision' | 'stale-generation' | 'not-found';
|
|
63
|
+
export interface CliProxyGatewayExtensionDiagnosticV1 {
|
|
64
|
+
readonly code: CliProxyGatewayExtensionDiagnosticCodeV1;
|
|
65
|
+
readonly field?: string;
|
|
66
|
+
readonly message: string;
|
|
67
|
+
}
|
|
68
|
+
export type CliProxyGatewayExtensionMutationResultV1 = {
|
|
69
|
+
readonly status: 'registered' | 'updated' | 'revoked';
|
|
70
|
+
readonly registryRevision: number;
|
|
71
|
+
} | {
|
|
72
|
+
readonly status: 'unchanged';
|
|
73
|
+
readonly registryRevision: number;
|
|
74
|
+
} | {
|
|
75
|
+
readonly status: 'rejected' | 'stale-generation';
|
|
76
|
+
readonly diagnostic: CliProxyGatewayExtensionDiagnosticV1;
|
|
77
|
+
};
|
|
78
|
+
export interface CliProxyGatewayExtensionRegistrarV1<Source> {
|
|
79
|
+
readonly producer: CliProxyGatewayExtensionProducerV1;
|
|
80
|
+
registerAdapter(adapter: CliProxyGatewayAdapterV1): CliProxyGatewayExtensionMutationResultV1;
|
|
81
|
+
revokeAdapter(input: {
|
|
82
|
+
readonly adapterId: string;
|
|
83
|
+
readonly expectedRevision: number;
|
|
84
|
+
}): CliProxyGatewayExtensionMutationResultV1;
|
|
85
|
+
registerConnection(connection: CliProxyGatewayConnectionV1<Source>): CliProxyGatewayExtensionMutationResultV1;
|
|
86
|
+
revokeConnection(input: {
|
|
87
|
+
readonly connectionId: string;
|
|
88
|
+
readonly expectedRevision: number;
|
|
89
|
+
}): CliProxyGatewayExtensionMutationResultV1;
|
|
90
|
+
dispose(): CliProxyGatewayExtensionMutationResultV1;
|
|
91
|
+
}
|
|
92
|
+
export interface CliProxyGatewayExtensionConsumerContextV1<Source> {
|
|
93
|
+
readonly cliProxyGatewayExtensions: CliProxyGatewayExtensionRegistrarV1<Source>;
|
|
94
|
+
}
|
|
95
|
+
export interface CliProxyGatewayExtensionPlanV1<Source> {
|
|
96
|
+
readonly contract: typeof CLI_PROXY_GATEWAY_EXTENSION_PLAN_CONTRACT_V1;
|
|
97
|
+
readonly schemaVersion: 1;
|
|
98
|
+
readonly pluginGeneration: string;
|
|
99
|
+
readonly registryRevision: number;
|
|
100
|
+
readonly planDigest: `sha256:${string}`;
|
|
101
|
+
readonly configuration: {
|
|
102
|
+
readonly adapters: readonly CliProxyGatewayAdapterV1[];
|
|
103
|
+
readonly connections: readonly {
|
|
104
|
+
readonly connectionId: string;
|
|
105
|
+
readonly revision: number;
|
|
106
|
+
readonly enabled: boolean;
|
|
107
|
+
readonly adapterId: string;
|
|
108
|
+
readonly adapterRevision: number;
|
|
109
|
+
readonly adapterRequired: boolean;
|
|
110
|
+
readonly adapterAvailable: boolean;
|
|
111
|
+
readonly wireApi: CliProxyGatewayWireApiV1;
|
|
112
|
+
readonly endpointPath: `/${string}`;
|
|
113
|
+
readonly endpoint: null;
|
|
114
|
+
readonly authorization: 'none' | 'bearer';
|
|
115
|
+
readonly credential: null;
|
|
116
|
+
readonly models: readonly {
|
|
117
|
+
readonly sourceModelId: string;
|
|
118
|
+
readonly gatewayModelId: string;
|
|
119
|
+
readonly displayName: string;
|
|
120
|
+
readonly isDefault: boolean;
|
|
121
|
+
}[];
|
|
122
|
+
}[];
|
|
123
|
+
};
|
|
124
|
+
readonly composition: readonly {
|
|
125
|
+
readonly connectionId: string;
|
|
126
|
+
readonly sourceAlias: string;
|
|
127
|
+
readonly source: Source;
|
|
128
|
+
readonly originPointer: `/${string}`;
|
|
129
|
+
readonly authorizationPointer?: `/${string}`;
|
|
130
|
+
}[];
|
|
131
|
+
}
|
|
132
|
+
export declare class CliProxyGatewayExtensionRegistryV1<Source> {
|
|
133
|
+
readonly pluginGeneration: string;
|
|
134
|
+
private readonly sourceKey;
|
|
135
|
+
private readonly adapters;
|
|
136
|
+
private readonly connections;
|
|
137
|
+
private readonly producerGenerations;
|
|
138
|
+
private readonly listeners;
|
|
139
|
+
private revision;
|
|
140
|
+
private disposed;
|
|
141
|
+
constructor(pluginGeneration: string, sourceKey: (source: Source) => string);
|
|
142
|
+
activateProducer(producer: CliProxyGatewayExtensionProducerV1, registryGeneration: string): void;
|
|
143
|
+
registerAdapter(adapter: CliProxyGatewayAdapterV1, registryGeneration: string, producer: CliProxyGatewayExtensionProducerV1): CliProxyGatewayExtensionMutationResultV1;
|
|
144
|
+
registerConnection(connection: CliProxyGatewayConnectionV1<Source>, registryGeneration: string, producer: CliProxyGatewayExtensionProducerV1): CliProxyGatewayExtensionMutationResultV1;
|
|
145
|
+
revokeAdapter(input: {
|
|
146
|
+
readonly adapterId: string;
|
|
147
|
+
readonly expectedRevision: number;
|
|
148
|
+
}, registryGeneration: string, producer: CliProxyGatewayExtensionProducerV1): CliProxyGatewayExtensionMutationResultV1;
|
|
149
|
+
revokeConnection(input: {
|
|
150
|
+
readonly connectionId: string;
|
|
151
|
+
readonly expectedRevision: number;
|
|
152
|
+
}, registryGeneration: string, producer: CliProxyGatewayExtensionProducerV1): CliProxyGatewayExtensionMutationResultV1;
|
|
153
|
+
disposeProducer(producer: CliProxyGatewayExtensionProducerV1, registryGeneration: string): CliProxyGatewayExtensionMutationResultV1;
|
|
154
|
+
subscribe(listener: (revision: number) => void): () => void;
|
|
155
|
+
plan(pluginGeneration: string): CliProxyGatewayExtensionPlanV1<Source> | CliProxyGatewayExtensionDiagnosticV1;
|
|
156
|
+
dispose(): void;
|
|
157
|
+
private revisionResult;
|
|
158
|
+
private ownershipFailure;
|
|
159
|
+
private generationFailure;
|
|
160
|
+
private removeProducerEntries;
|
|
161
|
+
private changed;
|
|
162
|
+
}
|
|
163
|
+
export declare function createCliProxyGatewayExtensionRegistrarV1<Source>(registry: CliProxyGatewayExtensionRegistryV1<Source>, producer: CliProxyGatewayExtensionProducerV1): CliProxyGatewayExtensionRegistrarV1<Source>;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export declare const CLI_PROXY_GATEWAY_MODEL_CATALOG_SCHEMA_V1: "https://raw.githubusercontent.com/cordisx/plugin-cli-proxy-api/main/schemas/cli-proxy-gateway-model-catalog.v1.schema.json";
|
|
2
2
|
export declare const CLI_PROXY_GATEWAY_CODEX_UPSTREAMS_SCHEMA_V1: "https://raw.githubusercontent.com/cordisx/plugin-cli-proxy-api/main/schemas/cli-proxy-gateway-codex-upstream.v1.schema.json";
|
|
3
3
|
export declare const CLI_PROXY_GATEWAY_OPENAI_UPSTREAMS_SCHEMA_V1: "https://raw.githubusercontent.com/cordisx/plugin-cli-proxy-api/main/schemas/cli-proxy-gateway-openai-upstream.v1.schema.json";
|
|
4
|
+
export declare const CLI_PROXY_GATEWAY_EXTENSION_PLAN_SCHEMA_V1: "https://raw.githubusercontent.com/cordisx/plugin-cli-proxy-api/main/schemas/cli-proxy-gateway-extension-plan.v1.schema.json";
|
|
4
5
|
export declare const CLI_PROXY_GATEWAY_SERVICE_ID = "gateway-runtime";
|
|
5
6
|
export declare const CLI_PROXY_GATEWAY_MANAGEMENT_V1: Readonly<{
|
|
6
7
|
credentialSlot: "management-key";
|
|
@@ -59,6 +60,12 @@ export declare const cliProxyGatewayDefinition: {
|
|
|
59
60
|
readonly target: "configuration";
|
|
60
61
|
readonly pointer: "/openai-compatibility";
|
|
61
62
|
readonly valueSchema: "https://raw.githubusercontent.com/cordisx/plugin-cli-proxy-api/main/schemas/cli-proxy-gateway-openai-upstream.v1.schema.json";
|
|
63
|
+
}, {
|
|
64
|
+
readonly slot: "gateway-extensions";
|
|
65
|
+
readonly source: "composition";
|
|
66
|
+
readonly target: "configuration";
|
|
67
|
+
readonly pointer: "/plugins/configs/cordisx-gateway-bridge";
|
|
68
|
+
readonly valueSchema: "https://raw.githubusercontent.com/cordisx/plugin-cli-proxy-api/main/schemas/cli-proxy-gateway-extension-plan.v1.schema.json";
|
|
62
69
|
}];
|
|
63
70
|
readonly authentication: {
|
|
64
71
|
readonly mode: "none";
|
|
@@ -2,16 +2,19 @@ import type { Fiber } from '@deepseek-ai/cordis';
|
|
|
2
2
|
import type { ManagedServiceContextProviderV1 } from '@cordisx/protocol/managed-service-context/v1';
|
|
3
3
|
import type { ManagedServiceApplyInputV1, ManagedServiceApplyV1, ManagedServiceIdentityV1, ManagedServiceServiceContextV1 } from '@cordisx/protocol/managed-service-runtime/v1';
|
|
4
4
|
import { managedServiceUI } from './gateway-ui.js';
|
|
5
|
+
import { CliProxyGatewayExtensionRegistryV1 } from './extension-registry.js';
|
|
5
6
|
import { CliProxyUpstreamRegistryV1 } from './upstream-registry.js';
|
|
6
7
|
export * from './gateway-definition.js';
|
|
8
|
+
export * from './extension-registry.js';
|
|
7
9
|
export * from './upstream-registry.js';
|
|
8
10
|
export declare const contextServices: readonly ManagedServiceContextProviderV1[];
|
|
9
11
|
export { managedServiceUI };
|
|
10
12
|
export declare const CLI_PROXY_NATIVE_PROVIDER_ID = "cli-proxy-api";
|
|
11
13
|
export type CliProxyGatewayContextV1 = ManagedServiceServiceContextV1 & Pick<Fiber, 'effect'> & {
|
|
12
14
|
readonly cliProxyUpstreams: CliProxyUpstreamRegistryV1<ManagedServiceIdentityV1>;
|
|
15
|
+
readonly cliProxyGatewayExtensions: CliProxyGatewayExtensionRegistryV1<ManagedServiceIdentityV1>;
|
|
13
16
|
};
|
|
14
17
|
export declare function activateCliProxyGateway(context: CliProxyGatewayContextV1, input: ManagedServiceApplyInputV1): Promise<void>;
|
|
15
18
|
export declare const apply: ManagedServiceApplyV1 & {
|
|
16
|
-
inject: readonly ["managedServices", "cliProxyUpstreams"];
|
|
19
|
+
inject: readonly ["managedServices", "cliProxyUpstreams", "cliProxyGatewayExtensions"];
|
|
17
20
|
};
|