@kevisual/cli 0.1.18 → 0.1.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,8 @@
1
+ import { App } from '@kevisual/router';
1
2
  import { Plugin } from '@opencode-ai/plugin';
2
3
 
4
+ declare const app: App;
5
+
3
6
  declare const AgentPlugin: Plugin;
4
7
 
5
- export { AgentPlugin };
8
+ export { AgentPlugin, app };
@@ -23667,7 +23667,7 @@ var require_lib2 = __commonJS((exports, module) => {
23667
23667
  };
23668
23668
  });
23669
23669
 
23670
- // ../node_modules/.pnpm/@kevisual+router@0.0.88/node_modules/@kevisual/router/dist/router.js
23670
+ // ../node_modules/.pnpm/@kevisual+router@0.0.89/node_modules/@kevisual/router/dist/router.js
23671
23671
  import { createRequire as createRequire2 } from "node:module";
23672
23672
  import { webcrypto as crypto2 } from "node:crypto";
23673
23673
  import http from "node:http";
@@ -41879,7 +41879,7 @@ class App extends QueryRouterServer {
41879
41879
  }
41880
41880
  }
41881
41881
 
41882
- // ../node_modules/.pnpm/@kevisual+router@0.0.88/node_modules/@kevisual/router/dist/router-simple.js
41882
+ // ../node_modules/.pnpm/@kevisual+router@0.0.89/node_modules/@kevisual/router/dist/router-simple.js
41883
41883
  import url3 from "node:url";
41884
41884
  var __create3 = Object.create;
41885
41885
  var __getProtoOf3 = Object.getPrototypeOf;
@@ -84054,7 +84054,7 @@ var simpleRouter = useContextKey("simpleRouter", () => {
84054
84054
  });
84055
84055
  app.createRouteList();
84056
84056
 
84057
- // ../node_modules/.pnpm/@kevisual+router@0.0.88/node_modules/@kevisual/router/dist/opencode.js
84057
+ // ../node_modules/.pnpm/@kevisual+router@0.0.89/node_modules/@kevisual/router/dist/opencode.js
84058
84058
  import { webcrypto as crypto4 } from "node:crypto";
84059
84059
  var __create7 = Object.create;
84060
84060
  var __getProtoOf7 = Object.getPrototypeOf;
@@ -103902,7 +103902,7 @@ var import_busboy = __toESM(require_lib2(), 1);
103902
103902
  import path16 from "path";
103903
103903
  import fs19 from "fs";
103904
103904
 
103905
- // ../node_modules/.pnpm/@kevisual+router@0.0.88/node_modules/@kevisual/router/src/server/cookie.ts
103905
+ // ../node_modules/.pnpm/@kevisual+router@0.0.89/node_modules/@kevisual/router/src/server/cookie.ts
103906
103906
  var NullObject2 = /* @__PURE__ */ (() => {
103907
103907
  const C2 = function() {};
103908
103908
  C2.prototype = Object.create(null);
@@ -104233,5 +104233,6 @@ var AgentPlugin = createRouterAgentPluginFn({
104233
104233
  router: app
104234
104234
  });
104235
104235
  export {
104236
+ app,
104236
104237
  AgentPlugin
104237
104238
  };
@@ -62615,7 +62615,7 @@ var useKey = (envKey, initKey = "context") => {
62615
62615
  return null;
62616
62616
  };
62617
62617
 
62618
- // ../node_modules/.pnpm/@kevisual+router@0.0.88/node_modules/@kevisual/router/dist/router.js
62618
+ // ../node_modules/.pnpm/@kevisual+router@0.0.89/node_modules/@kevisual/router/dist/router.js
62619
62619
  import { createRequire as createRequire2 } from "node:module";
62620
62620
  import { webcrypto as crypto2 } from "node:crypto";
62621
62621
  import http from "node:http";
@@ -80827,7 +80827,7 @@ class App extends QueryRouterServer {
80827
80827
  }
80828
80828
  }
80829
80829
 
80830
- // ../node_modules/.pnpm/@kevisual+router@0.0.88/node_modules/@kevisual/router/dist/router-simple.js
80830
+ // ../node_modules/.pnpm/@kevisual+router@0.0.89/node_modules/@kevisual/router/dist/router-simple.js
80831
80831
  import url3 from "node:url";
80832
80832
  var __create3 = Object.create;
80833
80833
  var __getProtoOf3 = Object.getPrototypeOf;
@@ -129176,7 +129176,7 @@ var import_busboy = __toESM(require_lib2(), 1);
129176
129176
  import path20 from "path";
129177
129177
  import fs23 from "fs";
129178
129178
 
129179
- // ../node_modules/.pnpm/@kevisual+router@0.0.88/node_modules/@kevisual/router/src/server/cookie.ts
129179
+ // ../node_modules/.pnpm/@kevisual+router@0.0.89/node_modules/@kevisual/router/src/server/cookie.ts
129180
129180
  var NullObject2 = /* @__PURE__ */ (() => {
129181
129181
  const C2 = function() {};
129182
129182
  C2.prototype = Object.create(null);
@@ -130142,5 +130142,7 @@ var runParser = async (argv) => {
130142
130142
  };
130143
130143
  export {
130144
130144
  runServer,
130145
- runParser
130145
+ runParser,
130146
+ program,
130147
+ app
130146
130148
  };
package/dist/assistant.js CHANGED
@@ -51354,7 +51354,7 @@ var getStringHash = (str) => {
51354
51354
  return crypto2.createHash("md5").update(str).digest("hex");
51355
51355
  };
51356
51356
 
51357
- // ../node_modules/.pnpm/@kevisual+router@0.0.88/node_modules/@kevisual/router/dist/router.js
51357
+ // ../node_modules/.pnpm/@kevisual+router@0.0.89/node_modules/@kevisual/router/dist/router.js
51358
51358
  import { createRequire as createRequire3 } from "node:module";
51359
51359
  import { webcrypto as crypto3 } from "node:crypto";
51360
51360
  import http from "node:http";
@@ -69550,7 +69550,7 @@ class App extends QueryRouterServer2 {
69550
69550
  }
69551
69551
  }
69552
69552
 
69553
- // ../node_modules/.pnpm/@kevisual+router@0.0.88/node_modules/@kevisual/router/dist/router-simple.js
69553
+ // ../node_modules/.pnpm/@kevisual+router@0.0.89/node_modules/@kevisual/router/dist/router-simple.js
69554
69554
  import url5 from "node:url";
69555
69555
  var __create5 = Object.create;
69556
69556
  var __getProtoOf5 = Object.getPrototypeOf;
package/dist/envision.js CHANGED
@@ -22490,8 +22490,8 @@ InitEnv.init();
22490
22490
  var version = useContextKey("version", () => {
22491
22491
  let version2 = "0.0.64";
22492
22492
  try {
22493
- if ("0.1.18")
22494
- version2 = "0.1.18";
22493
+ if ("0.1.19")
22494
+ version2 = "0.1.19";
22495
22495
  } catch (e) {}
22496
22496
  return version2;
22497
22497
  });
@@ -37699,6 +37699,76 @@ var workspaceCmd = new Command("workspace").alias("w").description("工作区liv
37699
37699
  program.addCommand(workspaceCmd);
37700
37700
  program.addCommand(cnbCmd);
37701
37701
 
37702
+ // src/command/download.ts
37703
+ import path18 from "path";
37704
+ import fs21 from "fs";
37705
+ var downloadCmd = new Command("download").description("下载项目").option("-l, --link <link>", "下载链接").option("-d, --directory <directory>", "下载目录", process.cwd()).action(async (opts) => {
37706
+ let link2 = opts.link || "";
37707
+ if (!link2) {
37708
+ console.log("请提供下载链接");
37709
+ return;
37710
+ }
37711
+ let url = new URL(link2);
37712
+ if (!url.pathname.endsWith("/")) {
37713
+ url.pathname += "/";
37714
+ }
37715
+ url.searchParams.set("recursive", "true");
37716
+ const directory = opts.directory || process.cwd();
37717
+ const token2 = await queryLogin.getToken();
37718
+ const res = await queryLogin.query.fetchText({
37719
+ url: url.toString(),
37720
+ method: "GET",
37721
+ headers: {
37722
+ Authorization: `Bearer ${token2}`
37723
+ }
37724
+ });
37725
+ if (res.code === 200 && res.data) {
37726
+ const files = res.data;
37727
+ console.log(`获取到 ${files.length} 个文件`);
37728
+ await downloadFiles(files, { directory });
37729
+ } else {
37730
+ console.log(chalk2.red("获取文件列表失败:"), res.message || "未知错误");
37731
+ }
37732
+ });
37733
+ program.addCommand(downloadCmd);
37734
+ var downloadFiles = async (files, opts) => {
37735
+ const directory = opts?.directory || process.cwd();
37736
+ let successCount = 0;
37737
+ let failCount = 0;
37738
+ for (const file of files) {
37739
+ try {
37740
+ const downloadPath = path18.join(directory, file.path);
37741
+ const dir = path18.dirname(downloadPath);
37742
+ if (!fs21.existsSync(dir)) {
37743
+ fs21.mkdirSync(dir, { recursive: true });
37744
+ }
37745
+ console.log(`下载中: ${file.name}`);
37746
+ const { blob, type } = await fetchLink(file.url);
37747
+ if (type.includes("text/html")) {
37748
+ const text = await blob.text();
37749
+ if (text === "fetchRes is error") {
37750
+ console.log(chalk2.red("下载失败:"), file.name);
37751
+ failCount++;
37752
+ continue;
37753
+ }
37754
+ }
37755
+ fs21.writeFileSync(downloadPath, Buffer.from(await blob.arrayBuffer()));
37756
+ successCount++;
37757
+ console.log(chalk2.green("下载成功:"), file.name);
37758
+ } catch (error) {
37759
+ failCount++;
37760
+ console.log(chalk2.red("下载失败:"), file.name, error);
37761
+ }
37762
+ }
37763
+ console.log(chalk2.blue("下载完成"));
37764
+ console.log(chalk2.green(`成功: ${successCount}`));
37765
+ console.log(chalk2.red(`失败: ${failCount}`));
37766
+ return {
37767
+ successCount,
37768
+ failCount
37769
+ };
37770
+ };
37771
+
37702
37772
  // src/index.ts
37703
37773
  var runParser = async (argv) => {
37704
37774
  program.parse(argv);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kevisual/cli",
3
- "version": "0.1.18",
3
+ "version": "0.1.19",
4
4
  "description": "envision 命令行工具",
5
5
  "type": "module",
6
6
  "basename": "/root/cli",
@@ -45,6 +45,7 @@
45
45
  "@kevisual/app": "^0.0.2",
46
46
  "@kevisual/auth": "^2.0.3",
47
47
  "@kevisual/context": "^0.0.8",
48
+ "@kevisual/router": "^0.0.89",
48
49
  "@kevisual/use-config": "^1.0.30",
49
50
  "@opencode-ai/sdk": "^1.2.21",
50
51
  "@types/busboy": "^1.5.4",