From 34697e07b5b23904a5913c94ca32cbf4eb3e67fa Mon Sep 17 00:00:00 2001 From: abearxiong Date: Wed, 11 Feb 2026 23:59:13 +0800 Subject: [PATCH] temp --- package.json | 1 + pnpm-lock.yaml | 335 ++++++++++++++++++++++++++++++--------- src/command/cnb/index.ts | 43 +++++ 3 files changed, 308 insertions(+), 71 deletions(-) create mode 100644 src/command/cnb/index.ts diff --git a/package.json b/package.json index 2df0184..5331d5c 100644 --- a/package.json +++ b/package.json @@ -63,6 +63,7 @@ }, "devDependencies": { "@kevisual/api": "^0.0.47", + "@kevisual/cnb": "^0.0.22", "@kevisual/dts": "^0.0.3", "@kevisual/load": "^0.0.6", "@kevisual/logger": "^0.0.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 880b7c0..8ca67ab 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,7 +10,7 @@ importers: dependencies: '@inquirer/prompts': specifier: ^8.2.0 - version: 8.2.0(@types/node@25.2.0) + version: 8.2.0(@types/node@25.2.3) '@kevisual/app': specifier: ^0.0.2 version: 0.0.2(dotenv@17.2.3) @@ -24,8 +24,8 @@ importers: specifier: ^1.0.30 version: 1.0.30(dotenv@17.2.3) '@opencode-ai/sdk': - specifier: ^1.1.50 - version: 1.1.50 + specifier: ^1.1.53 + version: 1.1.59 '@types/busboy': specifier: ^1.5.4 version: 1.5.4 @@ -51,15 +51,18 @@ importers: specifier: latest version: 6.0.14(supports-color@10.2.2) semver: - specifier: ^7.7.3 - version: 7.7.3 + specifier: ^7.7.4 + version: 7.7.4 unstorage: specifier: ^1.17.4 version: 1.17.4(idb-keyval@6.2.2) devDependencies: '@kevisual/api': - specifier: ^0.0.44 - version: 0.0.44 + specifier: ^0.0.47 + version: 0.0.47 + '@kevisual/cnb': + specifier: ^0.0.22 + version: 0.0.22(dotenv@17.2.3)(idb-keyval@6.2.2) '@kevisual/dts': specifier: ^0.0.3 version: 0.0.3(typescript@5.8.2) @@ -70,11 +73,11 @@ importers: specifier: ^0.0.4 version: 0.0.4 '@kevisual/query': - specifier: 0.0.39 - version: 0.0.39 + specifier: 0.0.40 + version: 0.0.40 '@kevisual/query-login': specifier: 0.0.7 - version: 0.0.7(@kevisual/query@0.0.39) + version: 0.0.7(@kevisual/query@0.0.40) '@types/bun': specifier: ^1.3.8 version: 1.3.8 @@ -88,8 +91,8 @@ importers: specifier: ^4.0.10 version: 4.0.10 '@types/node': - specifier: ^25.2.0 - version: 25.2.0 + specifier: ^25.2.3 + version: 25.2.3 '@types/semver': specifier: ^7.7.1 version: 7.7.1 @@ -249,16 +252,16 @@ importers: dependencies: '@astrojs/mdx': specifier: ^4.3.13 - version: 4.3.13(astro@5.16.15(@types/node@25.2.0)(idb-keyval@6.2.2)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.43.0)(typescript@5.8.2)) + version: 4.3.13(astro@5.16.15(@types/node@25.2.3)(idb-keyval@6.2.2)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.43.0)(typescript@5.8.2)) '@astrojs/react': specifier: ^4.4.2 - version: 4.4.2(@types/node@25.2.0)(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(jiti@2.6.1)(lightningcss@1.30.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + version: 4.4.2(@types/node@25.2.3)(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(jiti@2.6.1)(lightningcss@1.30.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@astrojs/sitemap': specifier: ^3.7.0 version: 3.7.0 '@astrojs/vue': specifier: ^5.1.4 - version: 5.1.4(@types/node@25.2.0)(astro@5.16.15(@types/node@25.2.0)(idb-keyval@6.2.2)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.43.0)(typescript@5.8.2))(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.43.0)(vue@3.5.27(typescript@5.8.2)) + version: 5.1.4(@types/node@25.2.3)(astro@5.16.15(@types/node@25.2.3)(idb-keyval@6.2.2)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.43.0)(typescript@5.8.2))(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.43.0)(vue@3.5.27(typescript@5.8.2)) '@kevisual/api': specifier: ^0.0.28 version: 0.0.28 @@ -282,7 +285,7 @@ importers: version: 1.2.4(@types/react@19.2.10)(react@19.2.4) '@tailwindcss/vite': specifier: ^4.1.18 - version: 4.1.18(vite@6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2)) + version: 4.1.18(vite@6.4.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.30.2)) '@uiw/react-md-editor': specifier: ^4.0.11 version: 4.0.11(@types/react@19.2.10)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) @@ -291,7 +294,7 @@ importers: version: 6.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) astro: specifier: ^5.16.15 - version: 5.16.15(@types/node@25.2.0)(idb-keyval@6.2.2)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.43.0)(typescript@5.8.2) + version: 5.16.15(@types/node@25.2.3)(idb-keyval@6.2.2)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.43.0)(typescript@5.8.2) class-variance-authority: specifier: ^0.7.1 version: 0.7.1 @@ -1307,6 +1310,9 @@ packages: '@kevisual/api@0.0.44': resolution: {integrity: sha512-KA2b17pxW1pTPWa4zsTSRTiGTmwdkIesV1ig51MyISUllita5VPqZ6UYYDJQTHuPzYcIkuodQ9iWTEZNM9AkFw==} + '@kevisual/api@0.0.47': + resolution: {integrity: sha512-Yhb5NQR+FqQB6huAPqO4uCoEdWiWwXGI0m0lCj6yk0/eIM+X/CzTRtS2mMcxDH3r/BacDJ+OlGQMCqnQcM896g==} + '@kevisual/app@0.0.1': resolution: {integrity: sha512-PEx8P3l0iNSqrz9Ib9kVCYfqNMX6/LfNu+cEafmY6ECP1cV5Vmv+TH2fuasMosKjtbH2fAdDi97sbd29tdEK+g==} @@ -1319,6 +1325,9 @@ packages: '@kevisual/cache@0.0.3': resolution: {integrity: sha512-BWEck69KYL96/ywjYVkML974RHjDJTj2ITQND1zFPR+hlBV1H1p55QZgSYRJCObg3EAV1S9Zic/fR2T4pfe8yg==} + '@kevisual/cnb@0.0.22': + resolution: {integrity: sha512-KX8oSmmaHnT4qqCfAoQoHZbkcohUVSK7LfdsEKTlItrE77rPyZcvD+APByroxH4FMQ80ItRW9tQlxBO8iRlrIw==} + '@kevisual/context@0.0.4': resolution: {integrity: sha512-HJeLeZQLU+7tCluSfOyvkgKLs0HjCZrdJlZgEgKRSa8XTwZfMAUt6J7qZTbrZAHBlPtX68EPu/PI8JMCeu3WAQ==} @@ -1364,6 +1373,9 @@ packages: '@kevisual/query@0.0.39': resolution: {integrity: sha512-3UEPBIvtdykNkrby3hvrgrHdgd17Uq+Pnr4zs+JBzATkU2eKaOqtTUJqdyIEwuySCwzGTxrnlUzWP4tziDQDLQ==} + '@kevisual/query@0.0.40': + resolution: {integrity: sha512-7m5BgDzd01m51hCHUId6ugQHdwgrLTb6fI7DSuMY17VjWb0+zGnkYmvRBqkTXzoIjjYbP5iwtRnrooEoToQfhg==} + '@kevisual/registry@0.0.1': resolution: {integrity: sha512-//OHu9m4JDrMjgP8o8dcjZd3D3IAUkRVlkTSviouZEH7r5m7mccA3Hvzw0XJ/lelx6exC6LWsyv6c4uV0Dp+gw==} @@ -1397,6 +1409,10 @@ packages: resolution: {integrity: sha512-jlFxSlXUEz93cFW+UYT5BXv/rFVgiMQnIfqRYZ0gj1hSP8PMGRqMqUoHSLfKvfRRS4jseLSvTTeEKSQpZJtURg==} engines: {node: '>=10.0.0'} + '@kevisual/ws@8.19.0': + resolution: {integrity: sha512-jLsL80wBBKkrJZrfk3SQpJ9JA/zREdlUROj7eCkmzqduAWKSI0wVcXuCKf+mLFCHB0Q0Tkh2rgzjSlurt3JQgw==} + engines: {node: '>=10.0.0'} + '@lezer/common@1.4.0': resolution: {integrity: sha512-DVeMRoGrgn/k45oQNu189BoW4SZwgZFzJ1+1TV5j2NJ/KFC83oa/enRqZSGshyeMk5cPWMhsKs9nx+8o0unwGg==} @@ -1449,8 +1465,8 @@ packages: '@opencode-ai/sdk@1.1.49': resolution: {integrity: sha512-F5ZkgiqOiV+z3U4zeBLvrmNZv5MwNFMTWM+HWhChD+/UEswIebQKk9UMz9lPX4fswexIJdFPwFI/TBdNyZfKMg==} - '@opencode-ai/sdk@1.1.50': - resolution: {integrity: sha512-qw0jv1TYJ6fA1Ga1Qkvicq+wrUS2Z6MyPG0LykI3mxMb9yRk9sr1ARX+T26Ij7DiRW4x7ffp36F9EE63Lyl1YQ==} + '@opencode-ai/sdk@1.1.59': + resolution: {integrity: sha512-g+Z0UQ9qNUcZsX4m/fXG4MHIquYlp4d2wfelRsynMj+AprfZ4He6u9GxAVT0FmLxuutj2ZxTLlspSe1+256pxg==} '@oslojs/encoding@1.1.0': resolution: {integrity: sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==} @@ -2382,6 +2398,9 @@ packages: '@types/node@25.2.0': resolution: {integrity: sha512-DZ8VwRFUNzuqJ5khrvwMXHmvPe+zGayJhr2CDNiKB1WBE1ST8Djl00D0IC4vvNmHMdj6DlbYRIaFE7WHjlDl5w==} + '@types/node@25.2.3': + resolution: {integrity: sha512-m0jEgYlYz+mDJZ2+F4v8D1AyQb+QzsNqRuI7xg1VQX/KlKS0qT9r1Mo16yo5F/MtifXFgaofIFsdFMox2SxIbQ==} + '@types/prismjs@1.26.5': resolution: {integrity: sha512-AUZTa7hQ2KY5L7AmtSiqxlhWxb4ina0yd8hNbl4TWuqnv/pFP0nDMb3YrfSBf4hJVGLh2YEIBfKaBW/9UEl6IQ==} @@ -4489,8 +4508,8 @@ packages: engines: {node: '>=10'} hasBin: true - semver@7.7.3: - resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} + semver@7.7.4: + resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==} engines: {node: '>=10'} hasBin: true @@ -5207,12 +5226,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/mdx@4.3.13(astro@5.16.15(@types/node@25.2.0)(idb-keyval@6.2.2)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.43.0)(typescript@5.8.2))': + '@astrojs/mdx@4.3.13(astro@5.16.15(@types/node@25.2.3)(idb-keyval@6.2.2)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.43.0)(typescript@5.8.2))': dependencies: '@astrojs/markdown-remark': 6.3.10 '@mdx-js/mdx': 3.1.1 acorn: 8.15.0 - astro: 5.16.15(@types/node@25.2.0)(idb-keyval@6.2.2)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.43.0)(typescript@5.8.2) + astro: 5.16.15(@types/node@25.2.3)(idb-keyval@6.2.2)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.43.0)(typescript@5.8.2) es-module-lexer: 1.7.0 estree-util-visit: 2.0.0 hast-util-to-html: 9.0.5 @@ -5230,15 +5249,15 @@ snapshots: dependencies: prismjs: 1.30.0 - '@astrojs/react@4.4.2(@types/node@25.2.0)(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(jiti@2.6.1)(lightningcss@1.30.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@astrojs/react@4.4.2(@types/node@25.2.3)(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(jiti@2.6.1)(lightningcss@1.30.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@types/react': 19.2.10 '@types/react-dom': 19.2.3(@types/react@19.2.10) - '@vitejs/plugin-react': 4.7.0(vite@6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2)) + '@vitejs/plugin-react': 4.7.0(vite@6.4.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.30.2)) react: 19.2.4 react-dom: 19.2.4(react@19.2.4) ultrahtml: 1.6.0 - vite: 6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2) + vite: 6.4.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.30.2) transitivePeerDependencies: - '@types/node' - jiti @@ -5271,14 +5290,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/vue@5.1.4(@types/node@25.2.0)(astro@5.16.15(@types/node@25.2.0)(idb-keyval@6.2.2)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.43.0)(typescript@5.8.2))(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.43.0)(vue@3.5.27(typescript@5.8.2))': + '@astrojs/vue@5.1.4(@types/node@25.2.3)(astro@5.16.15(@types/node@25.2.3)(idb-keyval@6.2.2)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.43.0)(typescript@5.8.2))(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.43.0)(vue@3.5.27(typescript@5.8.2))': dependencies: - '@vitejs/plugin-vue': 5.2.4(vite@6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2))(vue@3.5.27(typescript@5.8.2)) - '@vitejs/plugin-vue-jsx': 4.2.0(vite@6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2))(vue@3.5.27(typescript@5.8.2)) + '@vitejs/plugin-vue': 5.2.4(vite@6.4.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.30.2))(vue@3.5.27(typescript@5.8.2)) + '@vitejs/plugin-vue-jsx': 4.2.0(vite@6.4.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.30.2))(vue@3.5.27(typescript@5.8.2)) '@vue/compiler-sfc': 3.5.27 - astro: 5.16.15(@types/node@25.2.0)(idb-keyval@6.2.2)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.43.0)(typescript@5.8.2) - vite: 6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2) - vite-plugin-vue-devtools: 7.7.9(rollup@4.43.0)(vite@6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2))(vue@3.5.27(typescript@5.8.2)) + astro: 5.16.15(@types/node@25.2.3)(idb-keyval@6.2.2)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.43.0)(typescript@5.8.2) + vite: 6.4.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.30.2) + vite-plugin-vue-devtools: 7.7.9(rollup@4.43.0)(vite@6.4.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.30.2))(vue@3.5.27(typescript@5.8.2)) vue: 3.5.27(typescript@5.8.2) transitivePeerDependencies: - '@nuxt/kit' @@ -6298,6 +6317,15 @@ snapshots: optionalDependencies: '@types/node': 25.2.0 + '@inquirer/checkbox@5.0.4(@types/node@25.2.3)': + dependencies: + '@inquirer/ansi': 2.0.3 + '@inquirer/core': 11.1.1(@types/node@25.2.3) + '@inquirer/figures': 2.0.3 + '@inquirer/type': 4.0.3(@types/node@25.2.3) + optionalDependencies: + '@types/node': 25.2.3 + '@inquirer/confirm@6.0.4(@types/node@25.2.0)': dependencies: '@inquirer/core': 11.1.1(@types/node@25.2.0) @@ -6305,6 +6333,13 @@ snapshots: optionalDependencies: '@types/node': 25.2.0 + '@inquirer/confirm@6.0.4(@types/node@25.2.3)': + dependencies: + '@inquirer/core': 11.1.1(@types/node@25.2.3) + '@inquirer/type': 4.0.3(@types/node@25.2.3) + optionalDependencies: + '@types/node': 25.2.3 + '@inquirer/core@11.1.1(@types/node@25.2.0)': dependencies: '@inquirer/ansi': 2.0.3 @@ -6317,6 +6352,18 @@ snapshots: optionalDependencies: '@types/node': 25.2.0 + '@inquirer/core@11.1.1(@types/node@25.2.3)': + dependencies: + '@inquirer/ansi': 2.0.3 + '@inquirer/figures': 2.0.3 + '@inquirer/type': 4.0.3(@types/node@25.2.3) + cli-width: 4.1.0 + mute-stream: 3.0.0 + signal-exit: 4.1.0 + wrap-ansi: 9.0.2 + optionalDependencies: + '@types/node': 25.2.3 + '@inquirer/editor@5.0.4(@types/node@25.2.0)': dependencies: '@inquirer/core': 11.1.1(@types/node@25.2.0) @@ -6325,6 +6372,14 @@ snapshots: optionalDependencies: '@types/node': 25.2.0 + '@inquirer/editor@5.0.4(@types/node@25.2.3)': + dependencies: + '@inquirer/core': 11.1.1(@types/node@25.2.3) + '@inquirer/external-editor': 2.0.3(@types/node@25.2.3) + '@inquirer/type': 4.0.3(@types/node@25.2.3) + optionalDependencies: + '@types/node': 25.2.3 + '@inquirer/expand@5.0.4(@types/node@25.2.0)': dependencies: '@inquirer/core': 11.1.1(@types/node@25.2.0) @@ -6332,6 +6387,13 @@ snapshots: optionalDependencies: '@types/node': 25.2.0 + '@inquirer/expand@5.0.4(@types/node@25.2.3)': + dependencies: + '@inquirer/core': 11.1.1(@types/node@25.2.3) + '@inquirer/type': 4.0.3(@types/node@25.2.3) + optionalDependencies: + '@types/node': 25.2.3 + '@inquirer/external-editor@2.0.3(@types/node@25.2.0)': dependencies: chardet: 2.1.1 @@ -6339,6 +6401,13 @@ snapshots: optionalDependencies: '@types/node': 25.2.0 + '@inquirer/external-editor@2.0.3(@types/node@25.2.3)': + dependencies: + chardet: 2.1.1 + iconv-lite: 0.7.2 + optionalDependencies: + '@types/node': 25.2.3 + '@inquirer/figures@2.0.3': {} '@inquirer/input@5.0.4(@types/node@25.2.0)': @@ -6348,6 +6417,13 @@ snapshots: optionalDependencies: '@types/node': 25.2.0 + '@inquirer/input@5.0.4(@types/node@25.2.3)': + dependencies: + '@inquirer/core': 11.1.1(@types/node@25.2.3) + '@inquirer/type': 4.0.3(@types/node@25.2.3) + optionalDependencies: + '@types/node': 25.2.3 + '@inquirer/number@4.0.4(@types/node@25.2.0)': dependencies: '@inquirer/core': 11.1.1(@types/node@25.2.0) @@ -6355,6 +6431,13 @@ snapshots: optionalDependencies: '@types/node': 25.2.0 + '@inquirer/number@4.0.4(@types/node@25.2.3)': + dependencies: + '@inquirer/core': 11.1.1(@types/node@25.2.3) + '@inquirer/type': 4.0.3(@types/node@25.2.3) + optionalDependencies: + '@types/node': 25.2.3 + '@inquirer/password@5.0.4(@types/node@25.2.0)': dependencies: '@inquirer/ansi': 2.0.3 @@ -6363,6 +6446,14 @@ snapshots: optionalDependencies: '@types/node': 25.2.0 + '@inquirer/password@5.0.4(@types/node@25.2.3)': + dependencies: + '@inquirer/ansi': 2.0.3 + '@inquirer/core': 11.1.1(@types/node@25.2.3) + '@inquirer/type': 4.0.3(@types/node@25.2.3) + optionalDependencies: + '@types/node': 25.2.3 + '@inquirer/prompts@8.2.0(@types/node@25.2.0)': dependencies: '@inquirer/checkbox': 5.0.4(@types/node@25.2.0) @@ -6378,6 +6469,21 @@ snapshots: optionalDependencies: '@types/node': 25.2.0 + '@inquirer/prompts@8.2.0(@types/node@25.2.3)': + dependencies: + '@inquirer/checkbox': 5.0.4(@types/node@25.2.3) + '@inquirer/confirm': 6.0.4(@types/node@25.2.3) + '@inquirer/editor': 5.0.4(@types/node@25.2.3) + '@inquirer/expand': 5.0.4(@types/node@25.2.3) + '@inquirer/input': 5.0.4(@types/node@25.2.3) + '@inquirer/number': 4.0.4(@types/node@25.2.3) + '@inquirer/password': 5.0.4(@types/node@25.2.3) + '@inquirer/rawlist': 5.2.0(@types/node@25.2.3) + '@inquirer/search': 4.1.0(@types/node@25.2.3) + '@inquirer/select': 5.0.4(@types/node@25.2.3) + optionalDependencies: + '@types/node': 25.2.3 + '@inquirer/rawlist@5.2.0(@types/node@25.2.0)': dependencies: '@inquirer/core': 11.1.1(@types/node@25.2.0) @@ -6385,6 +6491,13 @@ snapshots: optionalDependencies: '@types/node': 25.2.0 + '@inquirer/rawlist@5.2.0(@types/node@25.2.3)': + dependencies: + '@inquirer/core': 11.1.1(@types/node@25.2.3) + '@inquirer/type': 4.0.3(@types/node@25.2.3) + optionalDependencies: + '@types/node': 25.2.3 + '@inquirer/search@4.1.0(@types/node@25.2.0)': dependencies: '@inquirer/core': 11.1.1(@types/node@25.2.0) @@ -6393,6 +6506,14 @@ snapshots: optionalDependencies: '@types/node': 25.2.0 + '@inquirer/search@4.1.0(@types/node@25.2.3)': + dependencies: + '@inquirer/core': 11.1.1(@types/node@25.2.3) + '@inquirer/figures': 2.0.3 + '@inquirer/type': 4.0.3(@types/node@25.2.3) + optionalDependencies: + '@types/node': 25.2.3 + '@inquirer/select@5.0.4(@types/node@25.2.0)': dependencies: '@inquirer/ansi': 2.0.3 @@ -6402,10 +6523,23 @@ snapshots: optionalDependencies: '@types/node': 25.2.0 + '@inquirer/select@5.0.4(@types/node@25.2.3)': + dependencies: + '@inquirer/ansi': 2.0.3 + '@inquirer/core': 11.1.1(@types/node@25.2.3) + '@inquirer/figures': 2.0.3 + '@inquirer/type': 4.0.3(@types/node@25.2.3) + optionalDependencies: + '@types/node': 25.2.3 + '@inquirer/type@4.0.3(@types/node@25.2.0)': optionalDependencies: '@types/node': 25.2.0 + '@inquirer/type@4.0.3(@types/node@25.2.3)': + optionalDependencies: + '@types/node': 25.2.3 + '@isaacs/fs-minipass@4.0.1': dependencies: minipass: 7.1.2 @@ -6463,6 +6597,17 @@ snapshots: path-browserify-esm: 1.0.6 spark-md5: 3.0.2 + '@kevisual/api@0.0.47': + dependencies: + '@kevisual/js-filter': 0.0.5 + '@kevisual/load': 0.0.6 + es-toolkit: 1.44.0 + eventemitter3: 5.0.4 + fuse.js: 7.1.0 + nanoid: 5.1.6 + path-browserify-esm: 1.0.6 + spark-md5: 3.0.2 + '@kevisual/app@0.0.1(dotenv@17.2.3)': dependencies: '@kevisual/ai': 0.0.19 @@ -6494,6 +6639,38 @@ snapshots: dependencies: idb-keyval: 6.2.1 + '@kevisual/cnb@0.0.22(dotenv@17.2.3)(idb-keyval@6.2.2)': + dependencies: + '@kevisual/query': 0.0.40 + '@kevisual/router': 0.0.70 + '@kevisual/use-config': 1.0.30(dotenv@17.2.3) + es-toolkit: 1.44.0 + nanoid: 5.1.6 + unstorage: 1.17.4(idb-keyval@6.2.2) + ws: '@kevisual/ws@8.19.0' + zod: 4.3.6 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@deno/kv' + - '@netlify/blobs' + - '@planetscale/database' + - '@upstash/redis' + - '@vercel/blob' + - '@vercel/functions' + - '@vercel/kv' + - aws4fetch + - db0 + - dotenv + - idb-keyval + - ioredis + - uploadthing + '@kevisual/context@0.0.4': {} '@kevisual/dts@0.0.3(typescript@5.8.2)': @@ -6568,6 +6745,12 @@ snapshots: '@kevisual/query': 0.0.39 dotenv: 17.2.3 + '@kevisual/query-login@0.0.7(@kevisual/query@0.0.40)': + dependencies: + '@kevisual/cache': 0.0.3 + '@kevisual/query': 0.0.40 + dotenv: 17.2.3 + '@kevisual/query@0.0.31': {} '@kevisual/query@0.0.32': {} @@ -6580,6 +6763,10 @@ snapshots: dependencies: tslib: 2.8.1 + '@kevisual/query@0.0.40': + dependencies: + tslib: 2.8.1 + '@kevisual/registry@0.0.1(typescript@5.8.2)': dependencies: class-variance-authority: 0.7.1 @@ -6652,6 +6839,8 @@ snapshots: '@kevisual/ws@8.0.0': {} + '@kevisual/ws@8.19.0': {} + '@lezer/common@1.4.0': {} '@lezer/css@1.3.0': @@ -6744,7 +6933,7 @@ snapshots: '@opencode-ai/sdk@1.1.49': {} - '@opencode-ai/sdk@1.1.50': {} + '@opencode-ai/sdk@1.1.59': {} '@oslojs/encoding@1.1.0': {} @@ -7798,12 +7987,12 @@ snapshots: '@tailwindcss/oxide-win32-arm64-msvc': 4.1.18 '@tailwindcss/oxide-win32-x64-msvc': 4.1.18 - '@tailwindcss/vite@4.1.18(vite@6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2))': + '@tailwindcss/vite@4.1.18(vite@6.4.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.30.2))': dependencies: '@tailwindcss/node': 4.1.18 '@tailwindcss/oxide': 4.1.18 tailwindcss: 4.1.18 - vite: 6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2) + vite: 6.4.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.30.2) '@tootallnate/quickjs-emscripten@0.23.0': {} @@ -7836,7 +8025,7 @@ snapshots: '@types/busboy@1.5.4': dependencies: - '@types/node': 25.2.0 + '@types/node': 25.2.3 '@types/crypto-js@4.2.2': {} @@ -7861,7 +8050,7 @@ snapshots: '@types/jsonwebtoken@9.0.10': dependencies: '@types/ms': 0.7.34 - '@types/node': 25.2.0 + '@types/node': 25.2.3 '@types/mdast@4.0.4': dependencies: @@ -7885,6 +8074,10 @@ snapshots: dependencies: undici-types: 7.16.0 + '@types/node@25.2.3': + dependencies: + undici-types: 7.16.0 + '@types/prismjs@1.26.5': {} '@types/react-dom@19.2.3(@types/react@19.2.10)': @@ -7899,13 +8092,13 @@ snapshots: '@types/sax@1.2.7': dependencies: - '@types/node': 25.2.0 + '@types/node': 25.2.3 '@types/semver@7.7.1': {} '@types/send@1.2.1': dependencies: - '@types/node': 25.2.0 + '@types/node': 25.2.3 '@types/trusted-types@2.0.7': {} @@ -7915,7 +8108,7 @@ snapshots: '@types/ws@8.18.1': dependencies: - '@types/node': 25.2.0 + '@types/node': 25.2.3 '@uiw/copy-to-clipboard@1.0.19': {} @@ -7954,7 +8147,7 @@ snapshots: '@ungap/structured-clone@1.3.0': {} - '@vitejs/plugin-react@4.7.0(vite@6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2))': + '@vitejs/plugin-react@4.7.0(vite@6.4.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.30.2))': dependencies: '@babel/core': 7.28.5 '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.5) @@ -7962,24 +8155,24 @@ snapshots: '@rolldown/pluginutils': 1.0.0-beta.27 '@types/babel__core': 7.20.5 react-refresh: 0.17.0 - vite: 6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2) + vite: 6.4.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.30.2) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue-jsx@4.2.0(vite@6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2))(vue@3.5.27(typescript@5.8.2))': + '@vitejs/plugin-vue-jsx@4.2.0(vite@6.4.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.30.2))(vue@3.5.27(typescript@5.8.2))': dependencies: '@babel/core': 7.28.5 '@babel/plugin-transform-typescript': 7.28.5(@babel/core@7.28.5) '@rolldown/pluginutils': 1.0.0-beta.55 '@vue/babel-plugin-jsx': 1.5.0(@babel/core@7.28.5) - vite: 6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2) + vite: 6.4.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.30.2) vue: 3.5.27(typescript@5.8.2) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@5.2.4(vite@6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2))(vue@3.5.27(typescript@5.8.2))': + '@vitejs/plugin-vue@5.2.4(vite@6.4.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.30.2))(vue@3.5.27(typescript@5.8.2))': dependencies: - vite: 6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2) + vite: 6.4.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.30.2) vue: 3.5.27(typescript@5.8.2) '@vue/babel-helper-vue-transform-on@1.5.0': {} @@ -8041,14 +8234,14 @@ snapshots: '@vue/compiler-dom': 3.5.27 '@vue/shared': 3.5.27 - '@vue/devtools-core@7.7.9(vite@6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2))(vue@3.5.27(typescript@5.8.2))': + '@vue/devtools-core@7.7.9(vite@6.4.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.30.2))(vue@3.5.27(typescript@5.8.2))': dependencies: '@vue/devtools-kit': 7.7.9 '@vue/devtools-shared': 7.7.9 mitt: 3.0.1 nanoid: 5.1.6 pathe: 2.0.3 - vite-hot-client: 2.1.0(vite@6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2)) + vite-hot-client: 2.1.0(vite@6.4.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.30.2)) vue: 3.5.27(typescript@5.8.2) transitivePeerDependencies: - vite @@ -8214,7 +8407,7 @@ snapshots: astring@1.9.0: {} - astro@5.16.15(@types/node@25.2.0)(idb-keyval@6.2.2)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.43.0)(typescript@5.8.2): + astro@5.16.15(@types/node@25.2.3)(idb-keyval@6.2.2)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.43.0)(typescript@5.8.2): dependencies: '@astrojs/compiler': 2.13.0 '@astrojs/internal-helpers': 0.7.5 @@ -8259,7 +8452,7 @@ snapshots: picomatch: 4.0.3 prompts: 2.4.2 rehype: 13.0.2 - semver: 7.7.3 + semver: 7.7.4 shiki: 3.21.0 smol-toml: 1.6.0 svgo: 4.0.0 @@ -8271,8 +8464,8 @@ snapshots: unist-util-visit: 5.0.0 unstorage: 1.17.4(idb-keyval@6.2.2) vfile: 6.0.3 - vite: 6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2) - vitefu: 1.1.1(vite@6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2)) + vite: 6.4.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.30.2) + vitefu: 1.1.1(vite@6.4.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.30.2)) xxhash-wasm: 1.1.0 yargs-parser: 21.1.1 yocto-spinner: 0.2.3 @@ -8375,7 +8568,7 @@ snapshots: bun-types@1.3.8: dependencies: - '@types/node': 25.2.0 + '@types/node': 25.2.3 bundle-name@4.1.0: dependencies: @@ -9368,7 +9561,7 @@ snapshots: lodash.isstring: 4.0.1 lodash.once: 4.1.1 ms: 2.1.3 - semver: 7.7.3 + semver: 7.7.4 jwa@2.0.1: dependencies: @@ -10637,7 +10830,7 @@ snapshots: semver@7.7.2: {} - semver@7.7.3: {} + semver@7.7.4: {} send@1.2.1(supports-color@10.2.2): dependencies: @@ -10661,7 +10854,7 @@ snapshots: dependencies: '@img/colour': 1.0.0 detect-libc: 2.1.2 - semver: 7.7.3 + semver: 7.7.4 optionalDependencies: '@img/sharp-darwin-arm64': 0.34.5 '@img/sharp-darwin-x64': 0.34.5 @@ -11035,11 +11228,11 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.3 - vite-hot-client@2.1.0(vite@6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2)): + vite-hot-client@2.1.0(vite@6.4.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.30.2)): dependencies: - vite: 6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2) + vite: 6.4.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.30.2) - vite-plugin-inspect@0.8.9(rollup@4.43.0)(vite@6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2)): + vite-plugin-inspect@0.8.9(rollup@4.43.0)(vite@6.4.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.30.2)): dependencies: '@antfu/utils': 0.7.10 '@rollup/pluginutils': 5.3.0(rollup@4.43.0) @@ -11050,28 +11243,28 @@ snapshots: perfect-debounce: 1.0.0 picocolors: 1.1.1 sirv: 3.0.2 - vite: 6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2) + vite: 6.4.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.30.2) transitivePeerDependencies: - rollup - supports-color - vite-plugin-vue-devtools@7.7.9(rollup@4.43.0)(vite@6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2))(vue@3.5.27(typescript@5.8.2)): + vite-plugin-vue-devtools@7.7.9(rollup@4.43.0)(vite@6.4.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.30.2))(vue@3.5.27(typescript@5.8.2)): dependencies: - '@vue/devtools-core': 7.7.9(vite@6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2))(vue@3.5.27(typescript@5.8.2)) + '@vue/devtools-core': 7.7.9(vite@6.4.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.30.2))(vue@3.5.27(typescript@5.8.2)) '@vue/devtools-kit': 7.7.9 '@vue/devtools-shared': 7.7.9 execa: 9.6.1 sirv: 3.0.2 - vite: 6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2) - vite-plugin-inspect: 0.8.9(rollup@4.43.0)(vite@6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2)) - vite-plugin-vue-inspector: 5.3.2(vite@6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2)) + vite: 6.4.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.30.2) + vite-plugin-inspect: 0.8.9(rollup@4.43.0)(vite@6.4.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.30.2)) + vite-plugin-vue-inspector: 5.3.2(vite@6.4.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.30.2)) transitivePeerDependencies: - '@nuxt/kit' - rollup - supports-color - vue - vite-plugin-vue-inspector@5.3.2(vite@6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2)): + vite-plugin-vue-inspector@5.3.2(vite@6.4.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.30.2)): dependencies: '@babel/core': 7.28.5 '@babel/plugin-proposal-decorators': 7.28.0(@babel/core@7.28.5) @@ -11082,11 +11275,11 @@ snapshots: '@vue/compiler-dom': 3.5.27 kolorist: 1.8.0 magic-string: 0.30.21 - vite: 6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2) + vite: 6.4.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.30.2) transitivePeerDependencies: - supports-color - vite@6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2): + vite@6.4.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.30.2): dependencies: esbuild: 0.25.12 fdir: 6.5.0(picomatch@4.0.3) @@ -11095,14 +11288,14 @@ snapshots: rollup: 4.43.0 tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 25.2.0 + '@types/node': 25.2.3 fsevents: 2.3.3 jiti: 2.6.1 lightningcss: 1.30.2 - vitefu@1.1.1(vite@6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2)): + vitefu@1.1.1(vite@6.4.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.30.2)): optionalDependencies: - vite: 6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2) + vite: 6.4.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.30.2) vizion@2.2.1: dependencies: diff --git a/src/command/cnb/index.ts b/src/command/cnb/index.ts new file mode 100644 index 0000000..3555788 --- /dev/null +++ b/src/command/cnb/index.ts @@ -0,0 +1,43 @@ +import { createKeepAlive } from '@kevisual/cnb/keep' + +import { program, Command } from '@/program.ts'; + +const cnbCmd = new Command('cnb') + .description('CNB 相关命令') + .action(async (opts) => { + console.log('CNB 命令'); + }); + +const liveCmd = new Command('live') + .description('启动 CNB Keep Alive 服务') + .option('-u, --url ', 'WebSocket 服务器地址') + .option('-c, --cookie ', '认证 Cookie') + .action(async (opts) => { + if (!opts.url || !opts.cookie) { + console.log('请提供 WebSocket 服务器地址和认证 Cookie'); + return; + } + + const keepAlive = createKeepAlive({ + wsUrl: opts.url, + cookie: opts.cookie, + debug: true, + onConnect: () => { + console.log('已连接到 CNB 服务器'); + }, + onDisconnect: (code) => { + console.log(`与 CNB 服务器断开连接,代码: ${code}`); + }, + onError: (error) => { + console.error('CNB 连接错误:', error); + }, + onMessage: (data) => { + console.log('收到 CNB 消息:', data.toString()); + }, + }); + + keepAlive.connect(); + }); + +cnbCmd.addCommand(liveCmd); +program.addCommand(cnbCmd); \ No newline at end of file