From 189bab14eaf62e5b1f2eee3cd37e2dacfbacc3ff Mon Sep 17 00:00:00 2001 From: YiJie Date: Thu, 10 Sep 2026 01:04:45 +0800 Subject: [PATCH 1/2] Use Host notifications for plugin operation feedback --- .agents/docs/notifications.md | 31 ++ .gitignore | 2 + AGENTS.md | 16 + README.md | 4 + notification-sdk-evidence.json | 50 +++ package-lock.json | 560 ++++++++++++++++++++++++++++----- package.json | 9 +- src/channel.ts | 4 +- src/locales.ts | 6 + src/notifications.ts | 10 + src/page-types.ts | 3 +- src/page.tsx | 6 +- src/pages/configuration.tsx | 7 +- src/pages/create.tsx | 7 +- src/pages/logs.tsx | 41 ++- 15 files changed, 651 insertions(+), 105 deletions(-) create mode 100644 .agents/docs/notifications.md create mode 100644 notification-sdk-evidence.json create mode 100644 src/notifications.ts diff --git a/.agents/docs/notifications.md b/.agents/docs/notifications.md new file mode 100644 index 0000000..0a11fa6 --- /dev/null +++ b/.agents/docs/notifications.md @@ -0,0 +1,31 @@ +# Operation notifications + +Connection configuration, creation and log export use the Host `ctx.notifications.show()` service. Source icon/name, +card interactions, queue, expiry and suppression rules belong to Host. +Declare `notifications` in injection requirements. Field validation and persistent +business state stay beside the relevant control or object. Do not introduce a +custom Toast, page-wide operation error, or raw exception message. + +The [Host guide](https://github.com/cordisx/cordisx/blob/3158c0401a3f604727f623f1a8ac584017dd8540/.agents/docs/notifications.md) +owns usage and interaction guidance; the +[Protocol contract](https://github.com/cordisx/cordisx-protocol/blob/dfa2c5fa956184df11a97955b8e5c74a76cb8876/.agents/docs/notifications-v1.md) +owns the public API. This migration is an experimental candidate, not a release. + +## Reproduce the candidate SDK + +The local SDK archive is deliberately excluded from Git. Its exact Host commit, +Protocol source and hashes are recorded in [notification-sdk-evidence.json](../../notification-sdk-evidence.json). +From a Host checkout at `efbff656d84b482d51598bc5ba303d24134e0c62`, run the +[SDK builder](https://github.com/cordisx/cordisx/blob/main/.agents/docs/sdk-source-packaging.md) +into a fresh directory, then run from this package: + +```sh +mkdir -p .cache/sdk +cp /path/to/sdk/packages/cordisx-0.1.0-beta.2.tgz .cache/sdk/cordisx-efbff656d84b.tgz +npm ci --ignore-scripts +npm run check +``` + +Compare the archive SHA-256 with the evidence before installation. Use one shared +Protocol override; independent copies break branded public types. This explicit +SDK build avoids recursive Git prepare scripts and does not change the API contract. diff --git a/.gitignore b/.gitignore index b044cb7..38128f4 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,5 @@ node_modules/ dist/ coverage/ .DS_Store + +.cache/sdk/ diff --git a/AGENTS.md b/AGENTS.md index 2f023df..1299a22 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -7,3 +7,19 @@ - Use only versioned public Protocol and Host exports. Never copy Host-private renderer, launcher, service-config, credential, DOM, or adapter implementation into this repository. - Keep Host chrome, routing history, credential capture, downloads, accessibility primitives, and native integration Host-owned. - Run `npm run check` before delivery. + +## Operation notifications + +Use the public `ctx.notifications.show()` service for operation feedback and +require `notifications` in plugin injection. Do not create a custom Toast, +manually positioned alert, or page-wide success/error paragraph. Keep field +validation and durable business state beside the relevant object. Use stable +semantic `kind` values, localized safe text, and notification rules owned by Host; +never expose raw exceptions or notify on every polling attempt. +See the [Host notification guide](https://github.com/cordisx/cordisx/blob/3158c0401a3f604727f623f1a8ac584017dd8540/.agents/docs/notifications.md) +for the interaction contract and older-Host capability boundary. + +The notification migration currently uses exact feature-branch SDK/Protocol +revisions; it is not evidence of a formal release or a Mono pointer upgrade. + +Candidate setup: [notification migration](./.agents/docs/notifications.md). diff --git a/README.md b/README.md index 62f3012..60115a2 100644 --- a/README.md +++ b/README.md @@ -36,3 +36,7 @@ filesystem paths, DOM handles, or transport callbacks. The package remains private at version `0.1.0` to prevent accidental publication before the Host-stamped service configuration revision and final consumer removal are complete. + +## Notification feedback + +See [operation notifications and candidate SDK setup](./.agents/docs/notifications.md). diff --git a/notification-sdk-evidence.json b/notification-sdk-evidence.json new file mode 100644 index 0000000..4bbcb09 --- /dev/null +++ b/notification-sdk-evidence.json @@ -0,0 +1,50 @@ +{ + "hostCommit": "efbff656d84b482d51598bc5ba303d24134e0c62", + "node": "v24.14.1", + "npm": "11.11.0", + "sources": [ + { + "location": "node_modules/@cordisx/channel", + "spec": "git+ssh://git@github.com/cordisx/plugin-channel.git#4cee12e3a92eeed557bc9de8cc4792710918327a" + }, + { + "location": "node_modules/@cordisx/eslint-config", + "spec": "git+ssh://git@github.com/cordisx/cordisxmono.git#c63c2e8c2ba7e11502934a52ad2ce3734e804cdc" + }, + { + "location": "node_modules/@cordisx/plugin-cli-proxy-api", + "spec": "git+ssh://git@github.com/cordisx/plugin-cli-proxy-api.git#1428ee205aab31df2779398cc8491879b303d1d0" + }, + { + "location": "node_modules/@cordisx/protocol", + "spec": "git+ssh://git@github.com/cordisx/cordisx-protocol.git#f3e18c925c34d90fdf203c158811cef10f7ebf57" + } + ], + "packages": [ + { + "filename": "cordisx-0.1.0-beta.2.tgz", + "sha256": "c3ea96b691a8e2e6b52ced3cf1a54fa29830e8b29538112312e036e5d3b5b42a", + "integrity": "sha512-f6wHDDz/2+71POc5WEaoiN7xsbHZJMpHob0pxnlH8YCpPAvU2uC8elNHOg7iasuwgry9QrAL5+hEOMRKc0nAgQ==" + }, + { + "filename": "cordisx-channel-0.1.0.tgz", + "sha256": "ca3fa6283bd5a6af41faf60d936373412246beba047dd652924f5b92060f09e5", + "integrity": "sha512-WqKvGxy72WwAUdwoLIHTBCG5/MAwVLKh2VmGK3tdSB+EMSUmuR+lAhxfdt9dYQRQL1Mh3t/w8SdYqps4mO0FkQ==" + }, + { + "filename": "cordisx-plugin-cli-proxy-api-0.1.0.tgz", + "sha256": "31d23ed0aa49372f2a8b77fcf74e8e80ba0cc8abf19aed8dc06305246f9d7830", + "integrity": "sha512-Otc61B3LTLweo0strMzH3XQH5I/P+HXAuFEFN+ynnnfvwscMj5BHovqAz2YS+JvPO79p+3WuCBTnEKh8DN/rkw==" + }, + { + "filename": "cordisx-protocol-0.1.0-alpha.0.tgz", + "sha256": "04e72b3c58ccb6722a6c56459da1e70c11d0162760eda29bb4846233ea8bb8fe", + "integrity": "sha512-o/YzvFs5gkrYsK0vijubLN/go2/oL04sixPz/Ks7N0eMLEHUL7qxD56Yf1ltW5dN9qfBIpgkHuiXgkSgOjj1bw==" + }, + { + "filename": "create-cordisx-plugin-0.1.0-beta.2.tgz", + "sha256": "3e4d16e315d4a911aabeff3cf6e3b21d64d3d4be7d9b9b07de610443027a5d30", + "integrity": "sha512-mdchmWwhZj/C938TpkiaNFjMhTFGzdYeG0bSk5AEhe+NdaoRmP3g0eUhu3DAfsvNNilp+vBbDmT4kWwcH9LwDg==" + } + ] +} diff --git a/package-lock.json b/package-lock.json index 12d60bc..46cd7ff 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,13 +10,13 @@ "license": "AGPL-3.0-or-later", "devDependencies": { "@cordisx/eslint-config": "github:cordisx/cordisxmono#c63c2e8c2ba7e11502934a52ad2ce3734e804cdc", - "@cordisx/protocol": "github:cordisx/cordisx-protocol#3f0dbcd8b04ae83c920d2d913ac2c313af5f83f1", + "@cordisx/protocol": "github:cordisx/cordisx-protocol#f3e18c925c34d90fdf203c158811cef10f7ebf57", "@deepseek-ai/cordis": "4.0.1", "@projectwallace/stylelint-plugin": "0.7.0", "@typescript-eslint/parser": "8.69.0", "ajv": "8.20.0", "ajv-formats": "3.0.1", - "cordisx": "github:cordisx/cordisx#dfb071e02eca0ef52f84d67b2393c25aced7d3f0", + "cordisx": "file:.cache/sdk/cordisx-efbff656d84b.tgz", "dprint": "0.57.1", "esbuild": "0.28.2", "eslint": "9.39.4", @@ -143,8 +143,8 @@ }, "node_modules/@cordisx/protocol": { "version": "0.1.0-alpha.0", - "resolved": "git+ssh://git@github.com/cordisx/cordisx-protocol.git#3f0dbcd8b04ae83c920d2d913ac2c313af5f83f1", - "integrity": "sha512-/7FUbWT/N3nswpyimUWRzLvAinMpvbCoQ8AFRR0+NlAlQQs1K5GEhwKAp6lmyG+TF240ZynQvSqzg0y7yc+b8A==", + "resolved": "git+ssh://git@github.com/cordisx/cordisx-protocol.git#f3e18c925c34d90fdf203c158811cef10f7ebf57", + "integrity": "sha512-o/YzvFs5gkrYsK0vijubLN/go2/oL04sixPz/Ks7N0eMLEHUL7qxD56Yf1ltW5dN9qfBIpgkHuiXgkSgOjj1bw==", "dev": true, "license": "AGPL-3.0-or-later", "engines": { @@ -1432,6 +1432,16 @@ "react-dom": ">=18.3.0 <20" } }, + "node_modules/@oxc-project/types": { + "version": "0.149.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.149.0.tgz", + "integrity": "sha512-Efcc+iF0j3Bf67YjEqIqWXbX5XddXoK/Mw4K1/JuXwRCZ8N16VR7iT23nlCc9XrveFVh/E5Rqs2StT0V8v9LdA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/oxc-project" + } + }, "node_modules/@popperjs/core": { "version": "2.11.8", "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", @@ -1550,6 +1560,286 @@ "dev": true, "license": "BSD-3-Clause" }, + "node_modules/@rolldown/binding-android-arm-eabi": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm-eabi/-/binding-android-arm-eabi-1.2.8.tgz", + "integrity": "sha512-tN5aztYkKCte4i5SIrrz5yK/HMjEuCqCSCJa418jOV8tZ1cBY3YF2otxB1ktPxzsLA1BeTqwapK0bfjxNvHJVw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-android-arm64": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.2.8.tgz", + "integrity": "sha512-dIYTWl9XprMUiQFoc55KUyk/oS8SKYH3zFl0LTR7RT0Xj4hgSVyuJcroH8JUu8RcpF8fTB6E0aOwCkZoYPcDSQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-arm64": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.2.8.tgz", + "integrity": "sha512-PCSDQGXD2IyTEFrcgPyBM8jJuGmrbCMuoIOXdbEGVemruKACXoLQJrb+A45Z0L5t1RQkdfJprAYPkikbh7dzdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-x64": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.2.8.tgz", + "integrity": "sha512-Uk7lRsGhPFHVX/sAUC6D5H9Ol30dFHd6iquokll2th3LpdJ3F5CzQB+7DHn0Ri2mG+U7k2zXiPHDrwZenXhwSA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-freebsd-x64": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.2.8.tgz", + "integrity": "sha512-DjszaTEVogPqA5bYzsEeqDCQxbcp2fexQwKcRspYji2yzR68fCf+e4fx6kBSRDwX5/brZaHw/hWS9+A/+/w9sQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm-gnueabihf": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.2.8.tgz", + "integrity": "sha512-zmwa7FTmdzB6aaEEuuls18H6Ap5JmJPSoPTuXixeJZV6tG40SyLkApQtz1g8ptZtiEKqj9OM0oNLPh1AgvE31Q==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-gnu": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.2.8.tgz", + "integrity": "sha512-KdYQDPHwJVnbFwdTGMgxsI9SqblBlz6STGM+w1We/d5B8OWWidYH0MwkU/uA1wM5fIpO2MkOVxXrNzzuZhw9ew==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-musl": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.2.8.tgz", + "integrity": "sha512-jFJTifHnNPY+yzOoNZQfSIysrVyXzEQPhPnOUjmD1bcQGHH6s7c8cViKWar8YplQImE5N9JRqMCLrM2CdxOrZA==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-ppc64-gnu": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.2.8.tgz", + "integrity": "sha512-FhiOziBDWPBjbcmRzfLyIJnaP7AVMFXT7YCXPjXxj7wKU3vx24RjrCNN/zjvVa+N2vVoHJwCoUBvsrN/DG3zIA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-s390x-gnu": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.2.8.tgz", + "integrity": "sha512-WnHfADMzOV2Y55wlx1hzzQnar/wDt/VdvWSD99r18Mz9ylNieIGOkRx3UV21h7m/eJvjySYJkO26VvGNFkwsIQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-gnu": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.2.8.tgz", + "integrity": "sha512-H9tRr5ibfXFVLxbPOseVewewFpl28zcEdjRDt2FTUZU7odxP0gEv1ki4/kGmcGOh78oRwZuuQllGLZ9zTJp84g==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-musl": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.2.8.tgz", + "integrity": "sha512-UefiqfM3D6IVNlZ8tSGs9+Ejjud2T+oxO0IHADU45Y+lyEjD2dVFyZHbkfX0LUb5Zugo/oIv1eCO/KVYhgYJYA==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-openharmony-arm64": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.2.8.tgz", + "integrity": "sha512-637Ke4kWSy6rp9cxQ9gMOXlxPgIw/c1beASV4M//3+9I4uwBVOOl74G+e3zyU3u19U7RkRl/HuewixZ/Z6+Rjg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-win32-arm64-msvc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.2.8.tgz", + "integrity": "sha512-xWBkPOF1Q9k/Gv1nQXnVdLxKu74jXppuOM4Z3mnypVUJJJwLsMl7hNJGRAUJoG8A5MgOI1ACKM+wBFxSJzKy4A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-win32-x64-msvc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.2.8.tgz", + "integrity": "sha512-uz2ZvfgXbxqNwijjjbxrnvALwpyODDcgc1T1N8N3rf/DXKQmaFwmB4LX4yyjggpwN2obdQLb2rgirX5ffCWYng==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz", + "integrity": "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==", + "dev": true, + "license": "MIT" + }, "node_modules/@shikijs/core": { "version": "4.4.3", "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-4.4.3.tgz", @@ -2394,20 +2684,20 @@ } }, "node_modules/cordisx": { - "name": "cordisx-monorepo", "version": "0.1.0-beta.2", - "resolved": "git+ssh://git@github.com/cordisx/cordisx.git#dfb071e02eca0ef52f84d67b2393c25aced7d3f0", - "integrity": "sha512-L+a3aDxbGWcUZKApU2sLVqEdjDCgbvfqjiVmPoXe6WNQBYQb4veqKQQcq29NLd0zZS4WCKLS2Gza7gE8ZoWVIw==", + "resolved": "file:.cache/sdk/cordisx-efbff656d84b.tgz", + "integrity": "sha512-f6wHDDz/2+71POc5WEaoiN7xsbHZJMpHob0pxnlH8YCpPAvU2uC8elNHOg7iasuwgry9QrAL5+hEOMRKc0nAgQ==", "bundleDependencies": [ - "@cordisx/schemastery-ui" + "@cordisx/schemastery-ui", + "@cordisx/channel", + "@cordisx/plugin-cli-proxy-api" ], "dev": true, "license": "AGPL-3.0-or-later", - "workspaces": [ - "packages/*" - ], "dependencies": { - "@cordisx/protocol": "github:cordisx/cordisx-protocol#3f0dbcd8b04ae83c920d2d913ac2c313af5f83f1", + "@cordisx/channel": "0.1.0", + "@cordisx/plugin-cli-proxy-api": "0.1.0", + "@cordisx/protocol": "github:cordisx/cordisx-protocol#f3e18c925c34d90fdf203c158811cef10f7ebf57", "@cordisx/schemastery-ui": "0.1.0-beta.2", "@deepseek-ai/cordis": "4.0.1", "@deepseek-ai/schemastery": "^3.18.1", @@ -2417,6 +2707,7 @@ "@shikitor/core": "1.0.2", "@types/react": "19.2.18", "@types/react-dom": "19.2.5", + "@vitejs/plugin-react": "6.1.0", "debug": "4.4.3", "es-module-lexer": "1.7.0", "esbuild": "0.28.2", @@ -2439,17 +2730,18 @@ "swr": "2.5.1", "tar": "7.5.22", "tdesign-react": "1.18.2", + "vite": "8.2.2", "ws": "^8.18.3" }, "bin": { - "cordisx": "packages/cli/dist/src/cli.js" + "cordisx": "dist/src/cli.js" }, "engines": { "node": ">=22.19" } }, - "node_modules/cordisx/node_modules/@cordisx/schemastery-ui": { - "version": "0.1.0-beta.2", + "node_modules/cordisx/node_modules/@cordisx/channel": { + "version": "0.1.0", "dev": true, "inBundle": true, "license": "AGPL-3.0-or-later", @@ -2457,70 +2749,52 @@ "node": ">=22.19" } }, - "node_modules/cordisx/packages/cli": { - "name": "cordisx", + "node_modules/cordisx/node_modules/@cordisx/plugin-cli-proxy-api": { + "version": "0.1.0", + "dev": true, + "inBundle": true, + "license": "AGPL-3.0-or-later", + "engines": { + "node": ">=22.19" + } + }, + "node_modules/cordisx/node_modules/@cordisx/schemastery-ui": { "version": "0.1.0-beta.2", - "bundleDependencies": [ - "@cordisx/schemastery-ui" - ], - "extraneous": true, + "dev": true, + "inBundle": true, "license": "AGPL-3.0-or-later", + "engines": { + "node": ">=22.19" + } + }, + "node_modules/cordisx/node_modules/@vitejs/plugin-react": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-6.1.0.tgz", + "integrity": "sha512-qd2BzUBehkov86WFhg0JkEFEYyCLG9uPCe6qWTY/kRlss9OvJrOF2UbIWT7p+8IzZHkEu0DNGHc4HSv+JdDLsw==", + "dev": true, + "license": "MIT", "dependencies": { - "@cordisx/protocol": "github:cordisx/cordisx-protocol#3f0dbcd8b04ae83c920d2d913ac2c313af5f83f1", - "@cordisx/schemastery-ui": "0.1.0-beta.2", - "@deepseek-ai/cordis": "4.0.1", - "@deepseek-ai/schemastery": "^3.18.1", - "@larksuiteoapi/node-sdk": "^1.73.0", - "@oneworks/avatar": "1.0.0-rc.8", - "@oneworks/avatar-react": "1.0.0-rc.8", - "@shikitor/core": "1.0.2", - "@types/react": "19.2.18", - "@types/react-dom": "19.2.5", - "@vitejs/plugin-react": "6.1.0", - "debug": "4.4.3", - "es-module-lexer": "1.7.0", - "esbuild": "0.28.2", - "extend": "3.0.2", - "intl-messageformat": "11.2.14", - "lightningcss": "1.33.0", - "luna-console": "1.3.6", - "luna-data-grid": "1.6.5", - "luna-dom-viewer": "1.8.4", - "luna-object-viewer": "0.3.2", - "react": "19.2.8", - "react-dom": "19.2.8", - "react-markdown": "10.1.0", - "rehype-raw": "^7.0.0", - "rehype-sanitize": "^6.0.0", - "reicon": "1.2.1", - "remark-gfm": "4.0.1", - "shiki": "4.4.3", - "style-to-js": "1.1.21", - "swr": "2.5.1", - "tar": "7.5.22", - "tdesign-react": "1.18.2", - "vite": "8.2.2", - "ws": "^8.18.3" + "@rolldown/pluginutils": "^1.0.1" }, - "bin": { - "cordisx": "dist/src/cli.js" + "engines": { + "node": "^20.19.0 || >=22.12.0" }, - "devDependencies": { - "@cordisx/channel-runtime": "file:../channel-runtime", - "@cordisx/protocol": "github:cordisx/cordisx-protocol#3f0dbcd8b04ae83c920d2d913ac2c313af5f83f1", - "@types/node": "^22.18.1", - "@types/react": "19.2.18", - "@types/react-dom": "19.2.5", - "@types/ws": "^8.18.1", - "ajv": "8.20.0", - "ajv-formats": "3.0.1", - "jsdom": "^26.1.0", - "tsx": "^4.20.5", - "typescript": "^5.9.2", - "vitest": "^3.2.4" + "peerDependencies": { + "@rolldown/plugin-babel": "^0.1.7 || ^0.2.0", + "babel-plugin-react-compiler": "^1.0.0", + "oxc-transform-react": "^0.145.0", + "vite": "^8.0.0" }, - "engines": { - "node": ">=22.19" + "peerDependenciesMeta": { + "@rolldown/plugin-babel": { + "optional": true + }, + "babel-plugin-react-compiler": { + "optional": true + }, + "oxc-transform-react": { + "optional": true + } } }, "node_modules/cosmiconfig": { @@ -3375,6 +3649,21 @@ "node": ">= 6" } }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, "node_modules/function-bind": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", @@ -6352,6 +6641,40 @@ "node": ">=0.10.0" } }, + "node_modules/rolldown": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.2.8.tgz", + "integrity": "sha512-Z67nTmhZe7anqnM/EjI392w5i/ANUinjip7QYsOyN37oayduxt3ksdX0hf5OOamkAd53BiIHfbfSzfUmzKFQqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@oxc-project/types": "=0.149.0", + "@rolldown/pluginutils": "^1.0.0" + }, + "bin": { + "rolldown": "bin/cli.mjs" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "optionalDependencies": { + "@rolldown/binding-android-arm-eabi": "1.2.8", + "@rolldown/binding-android-arm64": "1.2.8", + "@rolldown/binding-darwin-arm64": "1.2.8", + "@rolldown/binding-darwin-x64": "1.2.8", + "@rolldown/binding-freebsd-x64": "1.2.8", + "@rolldown/binding-linux-arm-gnueabihf": "1.2.8", + "@rolldown/binding-linux-arm64-gnu": "1.2.8", + "@rolldown/binding-linux-arm64-musl": "1.2.8", + "@rolldown/binding-linux-ppc64-gnu": "1.2.8", + "@rolldown/binding-linux-s390x-gnu": "1.2.8", + "@rolldown/binding-linux-x64-gnu": "1.2.8", + "@rolldown/binding-linux-x64-musl": "1.2.8", + "@rolldown/binding-openharmony-arm64": "1.2.8", + "@rolldown/binding-win32-arm64-msvc": "1.2.8", + "@rolldown/binding-win32-x64-msvc": "1.2.8" + } + }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -7364,6 +7687,97 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/vite": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-8.2.2.tgz", + "integrity": "sha512-cFKLV/PRgAUlIRm5WjMjJ86jrftzpqcgH+Us+DS8mI3CDNiH30Whrz8uHL3+MOLPAgqbMBAqWdAHAphOAM+z/Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "lightningcss": "^1.33.0", + "picomatch": "^4.0.5", + "postcss": "^8.5.26", + "rolldown": "~1.2.4", + "tinyglobby": "^0.2.17" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "@vitejs/devtools": "^0.4.0 || ^0.5.0", + "esbuild": "^0.27.0 || ^0.28.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "@vitejs/devtools": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vite/node_modules/picomatch": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.7.tgz", + "integrity": "sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/web-namespaces": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz", diff --git a/package.json b/package.json index 73d4b13..6101198 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ }, "devDependencies": { "@cordisx/eslint-config": "github:cordisx/cordisxmono#c63c2e8c2ba7e11502934a52ad2ce3734e804cdc", - "@cordisx/protocol": "github:cordisx/cordisx-protocol#3f0dbcd8b04ae83c920d2d913ac2c313af5f83f1", + "@cordisx/protocol": "github:cordisx/cordisx-protocol#f3e18c925c34d90fdf203c158811cef10f7ebf57", "@projectwallace/stylelint-plugin": "0.7.0", "@deepseek-ai/cordis": "4.0.1", "@typescript-eslint/parser": "8.69.0", @@ -51,7 +51,7 @@ "stylelint": "17.15.0", "stylelint-config-standard": "40.0.0", "typescript": "5.9.2", - "cordisx": "github:cordisx/cordisx#dfb071e02eca0ef52f84d67b2393c25aced7d3f0", + "cordisx": "file:.cache/sdk/cordisx-efbff656d84b.tgz", "esbuild": "0.28.2", "react": "19.2.8", "react-dom": "19.2.8" @@ -63,5 +63,8 @@ "bugs": { "url": "https://github.com/cordisx/plugin-channel/issues" }, - "homepage": "https://github.com/cordisx/plugin-channel#readme" + "homepage": "https://github.com/cordisx/plugin-channel#readme", + "overrides": { + "@cordisx/protocol": "$@cordisx/protocol" + } } diff --git a/src/channel.ts b/src/channel.ts index 8780b98..68c9594 100644 --- a/src/channel.ts +++ b/src/channel.ts @@ -17,7 +17,7 @@ import { defineReactPage } from "cordisx/react"; import { createChannelPage } from "./page.js"; export const name = "channel"; -export const inject = ["i18n", "slots", "pages", "routes", "managerContent", "channelManager"]; +export const inject = ["i18n", "slots", "pages", "routes", "managerContent", "channelManager", "notifications"]; export const manifest = { $schema: CORDISX_PLUGIN_MANIFEST_SCHEMA_V8, @@ -202,7 +202,7 @@ export function apply(ctx: Context): void { }); const manager = managerFor(ctx); - const mount = defineReactPage(createChannelPage(manager)); + const mount = defineReactPage(createChannelPage(manager, ctx.notifications)); for (const metadata of pages.map(page)) ctx.pages.register(metadata, mount); for (const definition of routes.map(route)) ctx.routes.register(definition); diff --git a/src/locales.ts b/src/locales.ts index fd02da6..37ea3e6 100644 --- a/src/locales.ts +++ b/src/locales.ts @@ -1,4 +1,6 @@ export type CopyKey = + | "operation.saved" + | "operation.failed" | "accounts" | "accounts.empty" | "create" @@ -25,6 +27,8 @@ export type CopyKey = | "status.state"; const EN: Record = { + "operation.saved": "Operation completed.", + "operation.failed": "Operation failed. Check the connection and try again.", accounts: "Channel accounts", "accounts.empty": "No channel accounts are available.", create: "New channel", @@ -52,6 +56,8 @@ const EN: Record = { }; const ZH: Record = { + "operation.saved": "操作已完成", + "operation.failed": "操作未完成,请检查连接后重试", accounts: "渠道账号", "accounts.empty": "暂无可用渠道账号。", create: "新建渠道", diff --git a/src/notifications.ts b/src/notifications.ts new file mode 100644 index 0000000..2510ce3 --- /dev/null +++ b/src/notifications.ts @@ -0,0 +1,10 @@ +import type { ChannelPageProps } from "./page-types.js"; +import { copy } from "./locales.js"; + +export function notifyResult(props: ChannelPageProps, kind: string, success: boolean): void { + props.notifications.show({ + kind, + type: success ? "success" : "error", + message: copy(props.locale, success ? "operation.saved" : "operation.failed"), + }); +} diff --git a/src/page-types.ts b/src/page-types.ts index 4f42874..8364ddc 100644 --- a/src/page-types.ts +++ b/src/page-types.ts @@ -1,7 +1,8 @@ import type { ChannelManagerV2 } from "@cordisx/protocol/channel-manager/v2"; -import type { CordisXReactPageProps } from "cordisx/contracts"; +import type { CordisXReactPageProps, NotificationsV1 } from "cordisx/contracts"; export interface ChannelPageProps extends CordisXReactPageProps { + readonly notifications: NotificationsV1; readonly manager: ChannelManagerV2; readonly locale: string; } diff --git a/src/page.tsx b/src/page.tsx index 084a9d8..ff46e4e 100644 --- a/src/page.tsx +++ b/src/page.tsx @@ -1,5 +1,5 @@ import type { ChannelManagerV2 } from "@cordisx/protocol/channel-manager/v2"; -import type { CordisXReactPageProps } from "cordisx/contracts"; +import type { CordisXReactPageProps, NotificationsV1 } from "cordisx/contracts"; import { ChannelConfiguration } from "./pages/configuration.js"; import { ChannelCreate } from "./pages/create.js"; import { ChannelList } from "./pages/list.js"; @@ -7,9 +7,9 @@ import { ChannelLogs } from "./pages/logs.js"; import { ChannelRuntime } from "./pages/runtime.js"; import { ChannelSessions } from "./pages/sessions.js"; -export function createChannelPage(manager: ChannelManagerV2) { +export function createChannelPage(manager: ChannelManagerV2, notifications: NotificationsV1) { return function ChannelPage(props: CordisXReactPageProps) { - const shared = { ...props, manager, locale: props.localization.getSnapshot().locale }; + const shared = { ...props, manager, notifications, locale: props.localization.getSnapshot().locale }; if (props.routeId.endsWith(":settings")) return ; if (props.routeId.endsWith(":create")) return ; if (props.routeId.endsWith(":runtime")) return ; diff --git a/src/pages/configuration.tsx b/src/pages/configuration.tsx index fbb02ff..0c77b2a 100644 --- a/src/pages/configuration.tsx +++ b/src/pages/configuration.tsx @@ -1,3 +1,4 @@ +import { notifyResult } from "../notifications.js"; import { useState } from "cordisx/react"; import { Button, EmptyState, Stack, Text } from "cordisx/ui"; import { copy } from "../locales.js"; @@ -9,7 +10,6 @@ export function ChannelConfiguration(props: ChannelPageProps) { const { manager, snapshot } = useChannelModel(props.manager); const account = accountByToken(snapshot, routeToken(props.params.connectionToken)); const [name, setName] = useState(account?.displayName ?? ""); - const [status, setStatus] = useState(""); const [busy, setBusy] = useState(false); if (account === undefined) { return ( @@ -30,7 +30,9 @@ export function ChannelConfiguration(props: ChannelPageProps) { ? { ...operationFence(snapshot), operation, target, patch: { displayName: name.trim() } } : { ...operationFence(snapshot), operation, target }, ); - setStatus(result.status); + notifyResult(props, operation, result.status === "applied"); + } catch { + notifyResult(props, operation, false); } finally { setBusy(false); } @@ -47,7 +49,6 @@ export function ChannelConfiguration(props: ChannelPageProps) { setName(event.currentTarget.value)} />
- {status} {(["connection.enable", "connection.disable", "connection.reconnect"] as const).map(operation => (
- {status} {entries.length === 0 ? : ( From 6f69e2419cdeecb8083fc12710cfb34720009a10 Mon Sep 17 00:00:00 2001 From: YiJie Date: Thu, 10 Sep 2026 03:32:42 +0800 Subject: [PATCH 2/2] Use merged notification providers through normal Git dependencies --- .agents/docs/notifications.md | 26 +- AGENTS.md | 7 +- README.md | 2 +- notification-sdk-evidence.json | 50 --- package-lock.json | 571 +++++---------------------------- package.json | 4 +- 6 files changed, 104 insertions(+), 556 deletions(-) delete mode 100644 notification-sdk-evidence.json diff --git a/.agents/docs/notifications.md b/.agents/docs/notifications.md index 0a11fa6..4b999e6 100644 --- a/.agents/docs/notifications.md +++ b/.agents/docs/notifications.md @@ -6,26 +6,22 @@ Declare `notifications` in injection requirements. Field validation and persiste business state stay beside the relevant control or object. Do not introduce a custom Toast, page-wide operation error, or raw exception message. -The [Host guide](https://github.com/cordisx/cordisx/blob/3158c0401a3f604727f623f1a8ac584017dd8540/.agents/docs/notifications.md) +The [Host guide](https://github.com/cordisx/cordisx/blob/3cfe370eb7abf33e16686fbd82659cd441247fbd/.agents/docs/notifications.md) owns usage and interaction guidance; the -[Protocol contract](https://github.com/cordisx/cordisx-protocol/blob/dfa2c5fa956184df11a97955b8e5c74a76cb8876/.agents/docs/notifications-v1.md) -owns the public API. This migration is an experimental candidate, not a release. +[Protocol contract](https://github.com/cordisx/cordisx-protocol/blob/f46dd21e15a949a26f05f89bf11dea339fc60c02/.agents/docs/notifications-v1.md) +owns the public API. Source merge and package publication are separate stages. -## Reproduce the candidate SDK +## Development dependencies -The local SDK archive is deliberately excluded from Git. Its exact Host commit, -Protocol source and hashes are recorded in [notification-sdk-evidence.json](../../notification-sdk-evidence.json). -From a Host checkout at `efbff656d84b482d51598bc5ba303d24134e0c62`, run the -[SDK builder](https://github.com/cordisx/cordisx/blob/main/.agents/docs/sdk-source-packaging.md) -into a fresh directory, then run from this package: +`package.json` and `package-lock.json` pin formally merged Host and Protocol +commits. Install through the repository's normal dependency flow: ```sh -mkdir -p .cache/sdk -cp /path/to/sdk/packages/cordisx-0.1.0-beta.2.tgz .cache/sdk/cordisx-efbff656d84b.tgz -npm ci --ignore-scripts +npm ci npm run check ``` -Compare the archive SHA-256 with the evidence before installation. Use one shared -Protocol override; independent copies break branded public types. This explicit -SDK build avoids recursive Git prepare scripts and does not change the API contract. +Keep the shared Protocol override so public branded types resolve to one copy. +A missing notification service requires a supported Host upgrade; do not recreate +notification UI as an older-Host fallback. The former local candidate SDK archive +is no longer an installation prerequisite. diff --git a/AGENTS.md b/AGENTS.md index 1299a22..f94dc70 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -16,10 +16,7 @@ manually positioned alert, or page-wide success/error paragraph. Keep field validation and durable business state beside the relevant object. Use stable semantic `kind` values, localized safe text, and notification rules owned by Host; never expose raw exceptions or notify on every polling attempt. -See the [Host notification guide](https://github.com/cordisx/cordisx/blob/3158c0401a3f604727f623f1a8ac584017dd8540/.agents/docs/notifications.md) +See the [Host notification guide](https://github.com/cordisx/cordisx/blob/3cfe370eb7abf33e16686fbd82659cd441247fbd/.agents/docs/notifications.md) for the interaction contract and older-Host capability boundary. -The notification migration currently uses exact feature-branch SDK/Protocol -revisions; it is not evidence of a formal release or a Mono pointer upgrade. - -Candidate setup: [notification migration](./.agents/docs/notifications.md). +Dependency setup: [notification migration](./.agents/docs/notifications.md). diff --git a/README.md b/README.md index 60115a2..2fe247a 100644 --- a/README.md +++ b/README.md @@ -39,4 +39,4 @@ consumer removal are complete. ## Notification feedback -See [operation notifications and candidate SDK setup](./.agents/docs/notifications.md). +See [operation notifications and development dependencies](./.agents/docs/notifications.md). diff --git a/notification-sdk-evidence.json b/notification-sdk-evidence.json deleted file mode 100644 index 4bbcb09..0000000 --- a/notification-sdk-evidence.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "hostCommit": "efbff656d84b482d51598bc5ba303d24134e0c62", - "node": "v24.14.1", - "npm": "11.11.0", - "sources": [ - { - "location": "node_modules/@cordisx/channel", - "spec": "git+ssh://git@github.com/cordisx/plugin-channel.git#4cee12e3a92eeed557bc9de8cc4792710918327a" - }, - { - "location": "node_modules/@cordisx/eslint-config", - "spec": "git+ssh://git@github.com/cordisx/cordisxmono.git#c63c2e8c2ba7e11502934a52ad2ce3734e804cdc" - }, - { - "location": "node_modules/@cordisx/plugin-cli-proxy-api", - "spec": "git+ssh://git@github.com/cordisx/plugin-cli-proxy-api.git#1428ee205aab31df2779398cc8491879b303d1d0" - }, - { - "location": "node_modules/@cordisx/protocol", - "spec": "git+ssh://git@github.com/cordisx/cordisx-protocol.git#f3e18c925c34d90fdf203c158811cef10f7ebf57" - } - ], - "packages": [ - { - "filename": "cordisx-0.1.0-beta.2.tgz", - "sha256": "c3ea96b691a8e2e6b52ced3cf1a54fa29830e8b29538112312e036e5d3b5b42a", - "integrity": "sha512-f6wHDDz/2+71POc5WEaoiN7xsbHZJMpHob0pxnlH8YCpPAvU2uC8elNHOg7iasuwgry9QrAL5+hEOMRKc0nAgQ==" - }, - { - "filename": "cordisx-channel-0.1.0.tgz", - "sha256": "ca3fa6283bd5a6af41faf60d936373412246beba047dd652924f5b92060f09e5", - "integrity": "sha512-WqKvGxy72WwAUdwoLIHTBCG5/MAwVLKh2VmGK3tdSB+EMSUmuR+lAhxfdt9dYQRQL1Mh3t/w8SdYqps4mO0FkQ==" - }, - { - "filename": "cordisx-plugin-cli-proxy-api-0.1.0.tgz", - "sha256": "31d23ed0aa49372f2a8b77fcf74e8e80ba0cc8abf19aed8dc06305246f9d7830", - "integrity": "sha512-Otc61B3LTLweo0strMzH3XQH5I/P+HXAuFEFN+ynnnfvwscMj5BHovqAz2YS+JvPO79p+3WuCBTnEKh8DN/rkw==" - }, - { - "filename": "cordisx-protocol-0.1.0-alpha.0.tgz", - "sha256": "04e72b3c58ccb6722a6c56459da1e70c11d0162760eda29bb4846233ea8bb8fe", - "integrity": "sha512-o/YzvFs5gkrYsK0vijubLN/go2/oL04sixPz/Ks7N0eMLEHUL7qxD56Yf1ltW5dN9qfBIpgkHuiXgkSgOjj1bw==" - }, - { - "filename": "create-cordisx-plugin-0.1.0-beta.2.tgz", - "sha256": "3e4d16e315d4a911aabeff3cf6e3b21d64d3d4be7d9b9b07de610443027a5d30", - "integrity": "sha512-mdchmWwhZj/C938TpkiaNFjMhTFGzdYeG0bSk5AEhe+NdaoRmP3g0eUhu3DAfsvNNilp+vBbDmT4kWwcH9LwDg==" - } - ] -} diff --git a/package-lock.json b/package-lock.json index 46cd7ff..ea8a4a9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,13 +10,13 @@ "license": "AGPL-3.0-or-later", "devDependencies": { "@cordisx/eslint-config": "github:cordisx/cordisxmono#c63c2e8c2ba7e11502934a52ad2ce3734e804cdc", - "@cordisx/protocol": "github:cordisx/cordisx-protocol#f3e18c925c34d90fdf203c158811cef10f7ebf57", + "@cordisx/protocol": "github:cordisx/cordisx-protocol#f46dd21e15a949a26f05f89bf11dea339fc60c02", "@deepseek-ai/cordis": "4.0.1", "@projectwallace/stylelint-plugin": "0.7.0", "@typescript-eslint/parser": "8.69.0", "ajv": "8.20.0", "ajv-formats": "3.0.1", - "cordisx": "file:.cache/sdk/cordisx-efbff656d84b.tgz", + "cordisx": "github:cordisx/cordisx#3cfe370eb7abf33e16686fbd82659cd441247fbd", "dprint": "0.57.1", "esbuild": "0.28.2", "eslint": "9.39.4", @@ -143,7 +143,7 @@ }, "node_modules/@cordisx/protocol": { "version": "0.1.0-alpha.0", - "resolved": "git+ssh://git@github.com/cordisx/cordisx-protocol.git#f3e18c925c34d90fdf203c158811cef10f7ebf57", + "resolved": "git+ssh://git@github.com/cordisx/cordisx-protocol.git#f46dd21e15a949a26f05f89bf11dea339fc60c02", "integrity": "sha512-o/YzvFs5gkrYsK0vijubLN/go2/oL04sixPz/Ks7N0eMLEHUL7qxD56Yf1ltW5dN9qfBIpgkHuiXgkSgOjj1bw==", "dev": true, "license": "AGPL-3.0-or-later", @@ -1432,16 +1432,6 @@ "react-dom": ">=18.3.0 <20" } }, - "node_modules/@oxc-project/types": { - "version": "0.149.0", - "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.149.0.tgz", - "integrity": "sha512-Efcc+iF0j3Bf67YjEqIqWXbX5XddXoK/Mw4K1/JuXwRCZ8N16VR7iT23nlCc9XrveFVh/E5Rqs2StT0V8v9LdA==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/oxc-project" - } - }, "node_modules/@popperjs/core": { "version": "2.11.8", "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", @@ -1560,286 +1550,6 @@ "dev": true, "license": "BSD-3-Clause" }, - "node_modules/@rolldown/binding-android-arm-eabi": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm-eabi/-/binding-android-arm-eabi-1.2.8.tgz", - "integrity": "sha512-tN5aztYkKCte4i5SIrrz5yK/HMjEuCqCSCJa418jOV8tZ1cBY3YF2otxB1ktPxzsLA1BeTqwapK0bfjxNvHJVw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-android-arm64": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.2.8.tgz", - "integrity": "sha512-dIYTWl9XprMUiQFoc55KUyk/oS8SKYH3zFl0LTR7RT0Xj4hgSVyuJcroH8JUu8RcpF8fTB6E0aOwCkZoYPcDSQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-darwin-arm64": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.2.8.tgz", - "integrity": "sha512-PCSDQGXD2IyTEFrcgPyBM8jJuGmrbCMuoIOXdbEGVemruKACXoLQJrb+A45Z0L5t1RQkdfJprAYPkikbh7dzdA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-darwin-x64": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.2.8.tgz", - "integrity": "sha512-Uk7lRsGhPFHVX/sAUC6D5H9Ol30dFHd6iquokll2th3LpdJ3F5CzQB+7DHn0Ri2mG+U7k2zXiPHDrwZenXhwSA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-freebsd-x64": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.2.8.tgz", - "integrity": "sha512-DjszaTEVogPqA5bYzsEeqDCQxbcp2fexQwKcRspYji2yzR68fCf+e4fx6kBSRDwX5/brZaHw/hWS9+A/+/w9sQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-arm-gnueabihf": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.2.8.tgz", - "integrity": "sha512-zmwa7FTmdzB6aaEEuuls18H6Ap5JmJPSoPTuXixeJZV6tG40SyLkApQtz1g8ptZtiEKqj9OM0oNLPh1AgvE31Q==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-arm64-gnu": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.2.8.tgz", - "integrity": "sha512-KdYQDPHwJVnbFwdTGMgxsI9SqblBlz6STGM+w1We/d5B8OWWidYH0MwkU/uA1wM5fIpO2MkOVxXrNzzuZhw9ew==", - "cpu": [ - "arm64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-arm64-musl": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.2.8.tgz", - "integrity": "sha512-jFJTifHnNPY+yzOoNZQfSIysrVyXzEQPhPnOUjmD1bcQGHH6s7c8cViKWar8YplQImE5N9JRqMCLrM2CdxOrZA==", - "cpu": [ - "arm64" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-ppc64-gnu": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.2.8.tgz", - "integrity": "sha512-FhiOziBDWPBjbcmRzfLyIJnaP7AVMFXT7YCXPjXxj7wKU3vx24RjrCNN/zjvVa+N2vVoHJwCoUBvsrN/DG3zIA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-s390x-gnu": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.2.8.tgz", - "integrity": "sha512-WnHfADMzOV2Y55wlx1hzzQnar/wDt/VdvWSD99r18Mz9ylNieIGOkRx3UV21h7m/eJvjySYJkO26VvGNFkwsIQ==", - "cpu": [ - "s390x" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-x64-gnu": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.2.8.tgz", - "integrity": "sha512-H9tRr5ibfXFVLxbPOseVewewFpl28zcEdjRDt2FTUZU7odxP0gEv1ki4/kGmcGOh78oRwZuuQllGLZ9zTJp84g==", - "cpu": [ - "x64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-x64-musl": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.2.8.tgz", - "integrity": "sha512-UefiqfM3D6IVNlZ8tSGs9+Ejjud2T+oxO0IHADU45Y+lyEjD2dVFyZHbkfX0LUb5Zugo/oIv1eCO/KVYhgYJYA==", - "cpu": [ - "x64" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-openharmony-arm64": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.2.8.tgz", - "integrity": "sha512-637Ke4kWSy6rp9cxQ9gMOXlxPgIw/c1beASV4M//3+9I4uwBVOOl74G+e3zyU3u19U7RkRl/HuewixZ/Z6+Rjg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-win32-arm64-msvc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.2.8.tgz", - "integrity": "sha512-xWBkPOF1Q9k/Gv1nQXnVdLxKu74jXppuOM4Z3mnypVUJJJwLsMl7hNJGRAUJoG8A5MgOI1ACKM+wBFxSJzKy4A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-win32-x64-msvc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.2.8.tgz", - "integrity": "sha512-uz2ZvfgXbxqNwijjjbxrnvALwpyODDcgc1T1N8N3rf/DXKQmaFwmB4LX4yyjggpwN2obdQLb2rgirX5ffCWYng==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/pluginutils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz", - "integrity": "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==", - "dev": true, - "license": "MIT" - }, "node_modules/@shikijs/core": { "version": "4.4.3", "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-4.4.3.tgz", @@ -2684,9 +2394,10 @@ } }, "node_modules/cordisx": { + "name": "cordisx-monorepo", "version": "0.1.0-beta.2", - "resolved": "file:.cache/sdk/cordisx-efbff656d84b.tgz", - "integrity": "sha512-f6wHDDz/2+71POc5WEaoiN7xsbHZJMpHob0pxnlH8YCpPAvU2uC8elNHOg7iasuwgry9QrAL5+hEOMRKc0nAgQ==", + "resolved": "git+ssh://git@github.com/cordisx/cordisx.git#3cfe370eb7abf33e16686fbd82659cd441247fbd", + "integrity": "sha512-k6IhNsliOoWBDU0PuaQJUWO/llUdJAlrcdV9ErjyjSK+kYK0MJzO9UWWSnTc3bJGwLJ/Osv1cNo+tGV7BPwhcA==", "bundleDependencies": [ "@cordisx/schemastery-ui", "@cordisx/channel", @@ -2694,10 +2405,13 @@ ], "dev": true, "license": "AGPL-3.0-or-later", + "workspaces": [ + "packages/*" + ], "dependencies": { - "@cordisx/channel": "0.1.0", - "@cordisx/plugin-cli-proxy-api": "0.1.0", - "@cordisx/protocol": "github:cordisx/cordisx-protocol#f3e18c925c34d90fdf203c158811cef10f7ebf57", + "@cordisx/channel": "github:cordisx/plugin-channel#4cee12e3a92eeed557bc9de8cc4792710918327a", + "@cordisx/plugin-cli-proxy-api": "github:cordisx/plugin-cli-proxy-api#1428ee205aab31df2779398cc8491879b303d1d0", + "@cordisx/protocol": "github:cordisx/cordisx-protocol#f46dd21e15a949a26f05f89bf11dea339fc60c02", "@cordisx/schemastery-ui": "0.1.0-beta.2", "@deepseek-ai/cordis": "4.0.1", "@deepseek-ai/schemastery": "^3.18.1", @@ -2707,7 +2421,6 @@ "@shikitor/core": "1.0.2", "@types/react": "19.2.18", "@types/react-dom": "19.2.5", - "@vitejs/plugin-react": "6.1.0", "debug": "4.4.3", "es-module-lexer": "1.7.0", "esbuild": "0.28.2", @@ -2730,34 +2443,15 @@ "swr": "2.5.1", "tar": "7.5.22", "tdesign-react": "1.18.2", - "vite": "8.2.2", "ws": "^8.18.3" }, "bin": { - "cordisx": "dist/src/cli.js" + "cordisx": "packages/cli/dist/src/cli.js" }, "engines": { "node": ">=22.19" } }, - "node_modules/cordisx/node_modules/@cordisx/channel": { - "version": "0.1.0", - "dev": true, - "inBundle": true, - "license": "AGPL-3.0-or-later", - "engines": { - "node": ">=22.19" - } - }, - "node_modules/cordisx/node_modules/@cordisx/plugin-cli-proxy-api": { - "version": "0.1.0", - "dev": true, - "inBundle": true, - "license": "AGPL-3.0-or-later", - "engines": { - "node": ">=22.19" - } - }, "node_modules/cordisx/node_modules/@cordisx/schemastery-ui": { "version": "0.1.0-beta.2", "dev": true, @@ -2767,34 +2461,73 @@ "node": ">=22.19" } }, - "node_modules/cordisx/node_modules/@vitejs/plugin-react": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-6.1.0.tgz", - "integrity": "sha512-qd2BzUBehkov86WFhg0JkEFEYyCLG9uPCe6qWTY/kRlss9OvJrOF2UbIWT7p+8IzZHkEu0DNGHc4HSv+JdDLsw==", - "dev": true, - "license": "MIT", + "node_modules/cordisx/packages/cli": { + "name": "cordisx", + "version": "0.1.0-beta.2", + "bundleDependencies": [ + "@cordisx/schemastery-ui", + "@cordisx/channel", + "@cordisx/plugin-cli-proxy-api" + ], + "extraneous": true, + "license": "AGPL-3.0-or-later", "dependencies": { - "@rolldown/pluginutils": "^1.0.1" + "@cordisx/channel": "0.1.0", + "@cordisx/plugin-cli-proxy-api": "0.1.0", + "@cordisx/protocol": "github:cordisx/cordisx-protocol#f46dd21e15a949a26f05f89bf11dea339fc60c02", + "@cordisx/schemastery-ui": "0.1.0-beta.2", + "@deepseek-ai/cordis": "4.0.1", + "@deepseek-ai/schemastery": "^3.18.1", + "@larksuiteoapi/node-sdk": "^1.73.0", + "@oneworks/avatar": "1.0.0-rc.8", + "@oneworks/avatar-react": "1.0.0-rc.8", + "@shikitor/core": "1.0.2", + "@types/react": "19.2.18", + "@types/react-dom": "19.2.5", + "@vitejs/plugin-react": "6.1.0", + "debug": "4.4.3", + "es-module-lexer": "1.7.0", + "esbuild": "0.28.2", + "extend": "3.0.2", + "intl-messageformat": "11.2.14", + "lightningcss": "1.33.0", + "luna-console": "1.3.6", + "luna-data-grid": "1.6.5", + "luna-dom-viewer": "1.8.4", + "luna-object-viewer": "0.3.2", + "react": "19.2.8", + "react-dom": "19.2.8", + "react-markdown": "10.1.0", + "rehype-raw": "^7.0.0", + "rehype-sanitize": "^6.0.0", + "reicon": "1.2.1", + "remark-gfm": "4.0.1", + "shiki": "4.4.3", + "style-to-js": "1.1.21", + "swr": "2.5.1", + "tar": "7.5.22", + "tdesign-react": "1.18.2", + "vite": "8.2.2", + "ws": "^8.18.3" }, - "engines": { - "node": "^20.19.0 || >=22.12.0" + "bin": { + "cordisx": "dist/src/cli.js" }, - "peerDependencies": { - "@rolldown/plugin-babel": "^0.1.7 || ^0.2.0", - "babel-plugin-react-compiler": "^1.0.0", - "oxc-transform-react": "^0.145.0", - "vite": "^8.0.0" + "devDependencies": { + "@cordisx/channel-runtime": "file:../channel-runtime", + "@types/node": "^22.18.1", + "@types/react": "19.2.18", + "@types/react-dom": "19.2.5", + "@types/ws": "^8.18.1", + "ajv": "8.20.0", + "ajv-formats": "3.0.1", + "jsdom": "^26.1.0", + "tsx": "^4.20.5", + "typescript": "^5.9.2", + "vitest": "^3.2.4" }, - "peerDependenciesMeta": { - "@rolldown/plugin-babel": { - "optional": true - }, - "babel-plugin-react-compiler": { - "optional": true - }, - "oxc-transform-react": { - "optional": true - } + "engines": { + "node": ">=22.19" } }, "node_modules/cosmiconfig": { @@ -3649,21 +3382,6 @@ "node": ">= 6" } }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, "node_modules/function-bind": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", @@ -4610,6 +4328,9 @@ "arm64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MPL-2.0", "optional": true, "os": [ @@ -4631,6 +4352,9 @@ "arm64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MPL-2.0", "optional": true, "os": [ @@ -4652,6 +4376,9 @@ "x64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MPL-2.0", "optional": true, "os": [ @@ -4673,6 +4400,9 @@ "x64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MPL-2.0", "optional": true, "os": [ @@ -6641,40 +6371,6 @@ "node": ">=0.10.0" } }, - "node_modules/rolldown": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.2.8.tgz", - "integrity": "sha512-Z67nTmhZe7anqnM/EjI392w5i/ANUinjip7QYsOyN37oayduxt3ksdX0hf5OOamkAd53BiIHfbfSzfUmzKFQqQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@oxc-project/types": "=0.149.0", - "@rolldown/pluginutils": "^1.0.0" - }, - "bin": { - "rolldown": "bin/cli.mjs" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - }, - "optionalDependencies": { - "@rolldown/binding-android-arm-eabi": "1.2.8", - "@rolldown/binding-android-arm64": "1.2.8", - "@rolldown/binding-darwin-arm64": "1.2.8", - "@rolldown/binding-darwin-x64": "1.2.8", - "@rolldown/binding-freebsd-x64": "1.2.8", - "@rolldown/binding-linux-arm-gnueabihf": "1.2.8", - "@rolldown/binding-linux-arm64-gnu": "1.2.8", - "@rolldown/binding-linux-arm64-musl": "1.2.8", - "@rolldown/binding-linux-ppc64-gnu": "1.2.8", - "@rolldown/binding-linux-s390x-gnu": "1.2.8", - "@rolldown/binding-linux-x64-gnu": "1.2.8", - "@rolldown/binding-linux-x64-musl": "1.2.8", - "@rolldown/binding-openharmony-arm64": "1.2.8", - "@rolldown/binding-win32-arm64-msvc": "1.2.8", - "@rolldown/binding-win32-x64-msvc": "1.2.8" - } - }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -7687,97 +7383,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/vite": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/vite/-/vite-8.2.2.tgz", - "integrity": "sha512-cFKLV/PRgAUlIRm5WjMjJ86jrftzpqcgH+Us+DS8mI3CDNiH30Whrz8uHL3+MOLPAgqbMBAqWdAHAphOAM+z/Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "lightningcss": "^1.33.0", - "picomatch": "^4.0.5", - "postcss": "^8.5.26", - "rolldown": "~1.2.4", - "tinyglobby": "^0.2.17" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^20.19.0 || >=22.12.0", - "@vitejs/devtools": "^0.4.0 || ^0.5.0", - "esbuild": "^0.27.0 || ^0.28.0", - "jiti": ">=1.21.0", - "less": "^4.0.0", - "sass": "^1.70.0", - "sass-embedded": "^1.70.0", - "stylus": ">=0.54.8", - "sugarss": "^5.0.0", - "terser": "^5.16.0", - "tsx": "^4.8.1", - "yaml": "^2.4.2" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "@vitejs/devtools": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "jiti": { - "optional": true - }, - "less": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - }, - "tsx": { - "optional": true - }, - "yaml": { - "optional": true - } - } - }, - "node_modules/vite/node_modules/picomatch": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.7.tgz", - "integrity": "sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, "node_modules/web-namespaces": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz", diff --git a/package.json b/package.json index 6101198..4637a91 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ }, "devDependencies": { "@cordisx/eslint-config": "github:cordisx/cordisxmono#c63c2e8c2ba7e11502934a52ad2ce3734e804cdc", - "@cordisx/protocol": "github:cordisx/cordisx-protocol#f3e18c925c34d90fdf203c158811cef10f7ebf57", + "@cordisx/protocol": "github:cordisx/cordisx-protocol#f46dd21e15a949a26f05f89bf11dea339fc60c02", "@projectwallace/stylelint-plugin": "0.7.0", "@deepseek-ai/cordis": "4.0.1", "@typescript-eslint/parser": "8.69.0", @@ -51,7 +51,7 @@ "stylelint": "17.15.0", "stylelint-config-standard": "40.0.0", "typescript": "5.9.2", - "cordisx": "file:.cache/sdk/cordisx-efbff656d84b.tgz", + "cordisx": "github:cordisx/cordisx#3cfe370eb7abf33e16686fbd82659cd441247fbd", "esbuild": "0.28.2", "react": "19.2.8", "react-dom": "19.2.8"