Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 11 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,21 +5,23 @@ provider sessions plugin.

## Delivery status

This version contains the standalone renderer and executable package-v13
`platform-provider` service. The renderer uses only public Host React, UI, and
`ctx.platform` contracts. The Node service uses only the public Protocol broker
and `ctx.platformProviders.register`; CLIProxy method declarations, response
projection, lifecycle, and approval adaptation live here.
This version contains the standalone renderer, executable `platform-provider`
service, and package-v14 managed gateway runtime. The renderer uses only public
Host React, UI, and service contracts. The Node services use only public
Protocol and Host-managed service APIs; CLIProxy method declarations, response
projection, lifecycle, upstream composition, and account controls live here.

The Host owns endpoint and credential resolution, process startup, opaque
workspace handles, method/schema policy, configuration persistence, and the
single Provider Fleet. The plugin receives no endpoint, credential, process,
filesystem path, raw transport, or Fleet handle.

The plugin pins Protocol `c2f6f8e4bf4a638bf4627c9c567792f2fedbcfd6` and
requires a Host with manifest/package v13 exact-request scope support. The package remains `private`
to prevent npm publication; its manifest declares explicit local source
distribution, and no packaged installer is available yet.
The plugin currently pins the experimental Protocol review head
`a1127780513b76f0c3b1acee70cd638b5348c6a5` and Host review head
`204d7a59e800c27258fb41435390a72cee1c5e9e`. These dependencies are public but
unmerged and unpublished. The package remains `private` to prevent npm
publication; its manifest declares explicit local source distribution, and no
packaged installer is available yet.

## Development

Expand Down
15 changes: 8 additions & 7 deletions README.zh-Hans.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,19 @@

## 交付状态

本版本包含独立 renderer 与可执行的 package-v13 `platform-provider` 服务。
Renderer 只使用公开的 Host React、UI 和 `ctx.platform` 合同;Node 服务只使用
公开 Protocol broker 与 `ctx.platformProviders.register`。CLIProxy 的方法声明、
响应投影、生命周期和审批适配均由本仓库维护。
本版本包含独立 renderer、可执行的 `platform-provider` 服务和 package-v14 托管网关
runtime。Renderer 只使用公开的 Host React、UI 和服务合同;Node 服务只使用公开
Protocol 与 Host 托管服务 API。CLIProxy 的方法声明、响应投影、生命周期、上游组合和
账号控制均由本仓库维护。

Host 负责 endpoint 与凭据解析、进程启动、不透明 workspace handle、方法/Schema
策略、配置持久化和唯一的 Provider Fleet。插件不会获得 endpoint、凭据、进程、
文件系统路径、原始 transport 或 Fleet handle。

插件精确固定 Protocol `c2f6f8e4bf4a638bf4627c9c567792f2fedbcfd6`,并要求 Host
支持 manifest/package v13 的 exact-request scope。包继续保持 `private` 以阻止 npm
发布;manifest 声明显式本地源码分发,目前仍未提供安装包。
插件当前固定实验性 Protocol review head
`a1127780513b76f0c3b1acee70cd638b5348c6a5` 和 Host review head
`204d7a59e800c27258fb41435390a72cee1c5e9e`。这些公开依赖尚未合并或发布。包继续保持
`private` 以阻止 npm 发布;manifest 声明显式本地源码分发,目前仍未提供安装包。

## 开发

Expand Down
14 changes: 14 additions & 0 deletions config/cli-proxy-api.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
host: 127.0.0.1
port: 0
api-keys:
- null
commercial-mode: true
debug: false
logging-to-file: false
remote-management:
allow-remote: false
secret-key: null
disable-control-panel: true
disable-auto-update-panel: true
codex-api-key: []
openai-compatibility: []
11 changes: 6 additions & 5 deletions cordisx-package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"$schema": "https://raw.githubusercontent.com/cordisx/cordisx-protocol/main/schemas/plugin-package.v13.schema.json",
"schemaVersion": 13,
"$schema": "https://raw.githubusercontent.com/cordisx/cordisx-protocol/main/schemas/plugin-package.v14.schema.json",
"schemaVersion": 14,
"id": "cli-proxy-api",
"version": "0.1.0",
"entry": "./dist/runtime/module.js",
Expand All @@ -13,13 +13,14 @@
"compatibility": {
"runtimeAbi": 1,
"protocolSchemas": [
"https://raw.githubusercontent.com/cordisx/cordisx-protocol/main/schemas/plugin-manifest.v13.schema.json"
"https://raw.githubusercontent.com/cordisx/cordisx-protocol/main/schemas/plugin-manifest.v14.schema.json",
"https://raw.githubusercontent.com/cordisx/cordisx-protocol/main/schemas/managed-service-definition.v1.schema.json"
]
},
"dependencies": [],
"runtimeManifest": {
"path": "./runtime-manifest.json",
"schema": "https://raw.githubusercontent.com/cordisx/cordisx-protocol/main/schemas/plugin-manifest.v13.schema.json",
"digest": "sha256:42c9c6dbcb5435b8f121d83aaf5f81252c0004587837b8d1d2bcceebdd8a69b0"
"schema": "https://raw.githubusercontent.com/cordisx/cordisx-protocol/main/schemas/plugin-manifest.v14.schema.json",
"digest": "sha256:a66facc4315bf2b63941e94551ee982c32c034188bfbceb92135c779f0332dbf"
}
}
62 changes: 42 additions & 20 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

19 changes: 16 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
"type": "module",
"files": [
"dist",
"config",
"schemas",
"cordisx-package.json",
"runtime-manifest.json",
"README.md",
Expand All @@ -21,11 +23,21 @@
"types": "./dist/types/index.d.ts",
"import": "./dist/runtime/module.js",
"default": "./dist/runtime/module.js"
},
"./upstream/v1": {
"types": "./dist/types/service/upstream-registry.d.ts",
"import": "./dist/service.mjs",
"default": "./dist/service.mjs"
},
"./gateway/v1": {
"types": "./dist/types/service/gateway.d.ts",
"import": "./dist/gateway.mjs",
"default": "./dist/gateway.mjs"
}
},
"scripts": {
"build": "rm -rf dist && node scripts/sync-package-manifest.mjs && vite build && tsc -p tsconfig.json --emitDeclarationOnly && node scripts/build-service.mjs",
"check": "npm run typecheck && npm run build && npm test && npm run lint && npm run stylelint && npm run format:check",
"check": "npm run typecheck && npm run build && npm run typecheck:consumer && npm test && npm run lint && npm run stylelint && npm run format:check",
"dev": "cordisx dev --config cordisx.config.json",
"dev:dry-run": "cordisx dev --config cordisx.config.json --dry-run",
"format": "dprint fmt",
Expand All @@ -34,17 +46,18 @@
"stylelint": "stylelint \"src/**/*.css\" --allow-empty-input",
"test": "node --test test/*.mjs",
"typecheck": "tsc -p tsconfig.json --noEmit",
"typecheck:consumer": "tsc -p test/upstream-consumer/tsconfig.json --noEmit",
"prepare": "npm run build"
},
"devDependencies": {
"@cordisx/eslint-config": "github:cordisx/cordisxmono#c63c2e8c2ba7e11502934a52ad2ce3734e804cdc",
"@cordisx/protocol": "github:cordisx/cordisx-protocol#f46dd21e15a949a26f05f89bf11dea339fc60c02",
"@cordisx/protocol": "github:cordisx/cordisx-protocol#a0e765d6ae3e2baba0b97dda60b7f62439a570aa",
"@deepseek-ai/cordis": "4.0.1",
"@deepseek-ai/schemastery": "3.18.1",
"@projectwallace/stylelint-plugin": "0.7.0",
"@typescript-eslint/parser": "8.69.0",
"@vitejs/plugin-react": "6.1.0",
"cordisx": "github:cordisx/cordisx#3cfe370eb7abf33e16686fbd82659cd441247fbd",
"cordisx": "github:cordisx/cordisx#d86c48de51b75836db35e2c01af88a80e9751172",
"dprint": "0.57.1",
"eslint": "9.39.4",
"stylelint": "17.15.0",
Expand Down
66 changes: 64 additions & 2 deletions runtime-manifest.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"$schema": "https://raw.githubusercontent.com/cordisx/cordisx-protocol/main/schemas/plugin-manifest.v13.schema.json",
"schemaVersion": 13,
"$schema": "https://raw.githubusercontent.com/cordisx/cordisx-protocol/main/schemas/plugin-manifest.v14.schema.json",
"schemaVersion": 14,
"id": "cli-proxy-api",
"name": "CLIProxy Providers",
"capabilities": [
Expand Down Expand Up @@ -58,6 +58,68 @@
"schema": "https://raw.githubusercontent.com/cordisx/cordisx-protocol/main/schemas/cli-proxy-provider-runtime-config.v1.schema.json",
"applicationMode": "service-restart",
"entry": "./dist/service.mjs"
},
{
"id": "gateway-runtime",
"kind": "managed-backend",
"owner": "host",
"entry": "./dist/gateway.mjs",
"definitionSchema": "https://raw.githubusercontent.com/cordisx/cordisx-protocol/main/schemas/managed-service-definition.v1.schema.json",
"runtimeResources": [
{
"path": "./config/cli-proxy-api.yaml",
"mode": "data",
"digest": "sha256:4e2806a2c9a4a490f8685ffc96cf1dc40010248a8d25437b718249f3275b198e",
"byteLength": 268
},
{
"path": "./schemas/cli-proxy-gateway-model-catalog.v1.schema.json",
"mode": "data",
"digest": "sha256:b20bf7d388ae1417eaa1e86186eab241c754fc54af3c3b4d5439308202194b30",
"byteLength": 639
},
{
"path": "./schemas/cli-proxy-gateway-codex-upstream.v1.schema.json",
"mode": "data",
"digest": "sha256:a9908de439af944ac24744721c117fd0c0a18c18e61355d343f8ad57311fafba",
"byteLength": 1253
},
{
"path": "./schemas/cli-proxy-gateway-openai-upstream.v1.schema.json",
"mode": "data",
"digest": "sha256:8f226eeaf778394f452c0c224bd163c1c68806f56c63982d0394c03d6be4483b",
"byteLength": 1925
},
{
"path": "./schemas/cli-proxy-management-auth-files.v1.schema.json",
"mode": "data",
"digest": "sha256:9785b09906567848143054d522b141f5f06234f7b16a8dc2a02ef31e6d58e76c",
"byteLength": 370
},
{
"path": "./schemas/cli-proxy-management-operation.v1.schema.json",
"mode": "data",
"digest": "sha256:c1a9e12cf48ee53825948b053ea364ce70d09122321502560defebeb3d8d0c12",
"byteLength": 218
}
],
"consumerGrants": [
{
"pluginId": "cli-proxy-api",
"operations": [
"gateway.models.list",
"gateway.management.accounts.list",
"gateway.management.accounts.toggle",
"gateway.management.oauth.anthropic.start",
"gateway.management.oauth.codex.start",
"gateway.management.oauth.antigravity.start",
"gateway.management.oauth.kimi.start",
"gateway.management.oauth.xai.start",
"gateway.management.oauth.poll",
"gateway.management.oauth.cancel"
]
}
]
}
]
}
Loading
Loading