@kevisual/cli 0.0.87 → 0.0.89

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/assistant.js CHANGED
@@ -3697,21 +3697,21 @@ function envForceColor() {
3697
3697
  if (env.FORCE_COLOR.length === 0) {
3698
3698
  return 1;
3699
3699
  }
3700
- const level = Math.min(Number.parseInt(env.FORCE_COLOR, 10), 3);
3701
- if (![0, 1, 2, 3].includes(level)) {
3700
+ const level2 = Math.min(Number.parseInt(env.FORCE_COLOR, 10), 3);
3701
+ if (![0, 1, 2, 3].includes(level2)) {
3702
3702
  return;
3703
3703
  }
3704
- return level;
3704
+ return level2;
3705
3705
  }
3706
- function translateLevel(level) {
3707
- if (level === 0) {
3706
+ function translateLevel(level2) {
3707
+ if (level2 === 0) {
3708
3708
  return false;
3709
3709
  }
3710
3710
  return {
3711
- level,
3711
+ level: level2,
3712
3712
  hasBasic: true,
3713
- has256: level >= 2,
3714
- has16m: level >= 3
3713
+ has256: level2 >= 2,
3714
+ has16m: level2 >= 3
3715
3715
  };
3716
3716
  }
3717
3717
  function _supportsColor(haveStream, { streamIsTTY, sniffFlags = true } = {}) {
@@ -3795,11 +3795,11 @@ function _supportsColor(haveStream, { streamIsTTY, sniffFlags = true } = {}) {
3795
3795
  return min;
3796
3796
  }
3797
3797
  function createSupportsColor(stream, options = {}) {
3798
- const level = _supportsColor(stream, {
3798
+ const level2 = _supportsColor(stream, {
3799
3799
  streamIsTTY: stream && stream.isTTY,
3800
3800
  ...options
3801
3801
  });
3802
- return translateLevel(level);
3802
+ return translateLevel(level2);
3803
3803
  }
3804
3804
  var env, flagForceColor, supportsColor, supports_color_default;
3805
3805
  var init_supports_color = __esm(() => {
@@ -19682,7 +19682,7 @@ var require_out4 = __commonJS((exports, module) => {
19682
19682
  module.exports = FastGlob;
19683
19683
  });
19684
19684
 
19685
- // ../node_modules/.pnpm/eventemitter3@5.0.1/node_modules/eventemitter3/index.js
19685
+ // ../node_modules/.pnpm/eventemitter3@5.0.4/node_modules/eventemitter3/index.js
19686
19686
  var require_eventemitter3 = __commonJS((exports, module) => {
19687
19687
  var has = Object.prototype.hasOwnProperty;
19688
19688
  var prefix = "~";
@@ -36914,7 +36914,7 @@ var require_throttle = __commonJS((exports) => {
36914
36914
  throttled === null || throttled === undefined || throttled.unsubscribe();
36915
36915
  throttled = null;
36916
36916
  if (trailing) {
36917
- send2();
36917
+ send();
36918
36918
  isComplete && subscriber.complete();
36919
36919
  }
36920
36920
  };
@@ -36925,7 +36925,7 @@ var require_throttle = __commonJS((exports) => {
36925
36925
  var startThrottle = function(value) {
36926
36926
  return throttled = innerFrom_1.innerFrom(durationSelector(value)).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, endThrottling, cleanupThrottling));
36927
36927
  };
36928
- var send2 = function() {
36928
+ var send = function() {
36929
36929
  if (hasValue) {
36930
36930
  hasValue = false;
36931
36931
  var value = sendValue;
@@ -36937,7 +36937,7 @@ var require_throttle = __commonJS((exports) => {
36937
36937
  source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) {
36938
36938
  hasValue = true;
36939
36939
  sendValue = value;
36940
- !(throttled && !throttled.closed) && (leading ? send2() : startThrottle(value));
36940
+ !(throttled && !throttled.closed) && (leading ? send() : startThrottle(value));
36941
36941
  }, function() {
36942
36942
  isComplete = true;
36943
36943
  !(trailing && hasValue && throttled && !throttled.closed) && subscriber.complete();
@@ -43936,7 +43936,9 @@ var checkFileExists = (filePath, checkIsFile = false) => {
43936
43936
  return false;
43937
43937
  }
43938
43938
  };
43939
- var createDir = (dirPath) => {
43939
+ var createDir = (dirPath, isCreate = true) => {
43940
+ if (!isCreate)
43941
+ return dirPath;
43940
43942
  if (!checkFileExists(dirPath)) {
43941
43943
  fs.mkdirSync(dirPath, { recursive: true });
43942
43944
  }
@@ -43945,11 +43947,108 @@ var createDir = (dirPath) => {
43945
43947
 
43946
43948
  // src/module/assistant/config/index.ts
43947
43949
  var import_dotenv = __toESM(require_main(), 1);
43950
+
43951
+ // ../node_modules/.pnpm/@kevisual+logger@0.0.4/node_modules/@kevisual/logger/dist/logger.mjs
43952
+ var showTime = (time, format = "hh:mm:ss") => {
43953
+ const date = new Date(time);
43954
+ const pad = (n) => n.toString().padStart(2, "0");
43955
+ const year = date.getFullYear();
43956
+ const month = pad(date.getMonth() + 1);
43957
+ const day = pad(date.getDate());
43958
+ const hours = pad(date.getHours());
43959
+ const minutes = pad(date.getMinutes());
43960
+ const seconds = pad(date.getSeconds());
43961
+ if (format === "YYYY-MM-DD hh:mm:ss") {
43962
+ return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
43963
+ }
43964
+ return `${hours}:${minutes}:${seconds}`;
43965
+ };
43966
+ var logLevel = ["debug", "info", "warn", "error"];
43967
+ var computeLevel = (level, currentLevel) => {
43968
+ const levelIndex = logLevel.indexOf(level);
43969
+ const currentLevelIndex = logLevel.indexOf(currentLevel);
43970
+ return levelIndex >= currentLevelIndex;
43971
+ };
43972
+
43973
+ class Printer {
43974
+ constructor() {}
43975
+ info(...args) {
43976
+ console.log(...args);
43977
+ }
43978
+ debug(...args) {
43979
+ console.debug(...args);
43980
+ }
43981
+ warn(...args) {
43982
+ console.warn(...args);
43983
+ }
43984
+ error(...args) {
43985
+ console.error(...args);
43986
+ }
43987
+ }
43988
+
43989
+ class Logger {
43990
+ level = "info";
43991
+ printer;
43992
+ showTime;
43993
+ format;
43994
+ constructor(opts) {
43995
+ if (opts?.level) {
43996
+ const normalizedLevel = opts.level.toLowerCase();
43997
+ if (logLevel.includes(normalizedLevel)) {
43998
+ this.level = normalizedLevel;
43999
+ } else {
44000
+ this.level = "info";
44001
+ }
44002
+ } else {
44003
+ this.level = "info";
44004
+ }
44005
+ this.printer = opts?.printer ?? new Printer;
44006
+ this.showTime = opts?.showTime ?? false;
44007
+ this.format = opts?.format ?? "HH:mm:ss";
44008
+ }
44009
+ print(level, ...args) {
44010
+ if (computeLevel(level, this.level)) {
44011
+ if (this.showTime) {
44012
+ const time = showTime(Date.now());
44013
+ args.unshift(time);
44014
+ }
44015
+ this.printer[level](...args);
44016
+ }
44017
+ }
44018
+ log(...args) {
44019
+ this.print("info", ...args);
44020
+ }
44021
+ info(...args) {
44022
+ this.print("info", ...args);
44023
+ }
44024
+ debug(...args) {
44025
+ this.print("debug", ...args);
44026
+ }
44027
+ warn(...args) {
44028
+ this.print("warn", ...args);
44029
+ }
44030
+ error(...args) {
44031
+ this.print("error", ...args);
44032
+ }
44033
+ }
44034
+
44035
+ // src/module/logger.ts
44036
+ var level = process.env.LOG_LEVEL || "info";
44037
+ var logger = new Logger({ level });
44038
+ var console2 = {
44039
+ log: logger.info,
44040
+ error: logger.error,
44041
+ warn: logger.warn,
44042
+ info: logger.info,
44043
+ debug: logger.debug
44044
+ };
44045
+
44046
+ // src/module/assistant/config/index.ts
43948
44047
  var kevisualDir = path.join(homedir(), "kevisual");
43949
44048
  var envKevisualDir = process.env.ASSISTANT_CONFIG_DIR;
43950
44049
  if (envKevisualDir) {
43951
44050
  kevisualDir = envKevisualDir;
43952
- console.log("使用环境变量 ASSISTANT_CONFIG_DIR 作为 kevisual 目录:", kevisualDir);
44051
+ logger.debug("使用环境变量 ASSISTANT_CONFIG_DIR 作为 kevisual 目录:", kevisualDir);
43953
44052
  }
43954
44053
  var configDir = createDir(path.join(kevisualDir, "assistant-app"));
43955
44054
  var initConfig = (configRootPath) => {
@@ -43994,8 +44093,8 @@ class AssistantConfig {
43994
44093
  }
43995
44094
  return this.#configPath;
43996
44095
  }
43997
- init() {
43998
- this.configPath = initConfig(this.configDir);
44096
+ init(configDir2) {
44097
+ this.configPath = initConfig(configDir2 || this.configDir);
43999
44098
  this.isMountedConfig = true;
44000
44099
  }
44001
44100
  checkMounted() {
@@ -44131,7 +44230,7 @@ class AssistantConfig {
44131
44230
  }
44132
44231
  }
44133
44232
  function parseArgs(args) {
44134
- const result = {};
44233
+ const result = { home: true };
44135
44234
  for (let i = 0;i < args.length; i++) {
44136
44235
  const arg = args[i];
44137
44236
  if (arg === "--root") {
@@ -44140,15 +44239,18 @@ function parseArgs(args) {
44140
44239
  i++;
44141
44240
  }
44142
44241
  }
44143
- result.home = true;
44144
44242
  if (arg === "--help" || arg === "-h") {
44145
44243
  result.help = true;
44146
44244
  }
44147
44245
  }
44246
+ if (result.root) {
44247
+ result.home = false;
44248
+ }
44148
44249
  return result;
44149
44250
  }
44150
44251
  var parseHomeArg = (homedir2) => {
44151
44252
  const args = process.argv.slice(2);
44253
+ const execPath = process.execPath;
44152
44254
  const options = parseArgs(args);
44153
44255
  let _configDir = undefined;
44154
44256
  if (options.home && homedir2) {
@@ -44156,7 +44258,10 @@ var parseHomeArg = (homedir2) => {
44156
44258
  } else if (options.root) {
44157
44259
  _configDir = options.root;
44158
44260
  }
44261
+ const checkUrl = [".opencode", "bin/opencode", "opencode.exe"];
44262
+ const isOpencode = checkUrl.some((item) => execPath.includes(item));
44159
44263
  return {
44264
+ isOpencode,
44160
44265
  options,
44161
44266
  configDir: _configDir
44162
44267
  };
@@ -44176,106 +44281,9 @@ var isDeno = typeof Deno !== "undefined" && Deno?.version != null && Deno?.versi
44176
44281
 
44177
44282
  // src/module/assistant/proxy/s3.ts
44178
44283
  var mapS3 = new Map;
44179
- // src/module/assistant/proxy/file-proxy.ts
44180
- var import_send = __toESM(require_send(), 1);
44181
-
44182
- // ../node_modules/.pnpm/@kevisual+logger@0.0.4/node_modules/@kevisual/logger/dist/logger.mjs
44183
- var showTime = (time, format = "hh:mm:ss") => {
44184
- const date = new Date(time);
44185
- const pad = (n) => n.toString().padStart(2, "0");
44186
- const year = date.getFullYear();
44187
- const month = pad(date.getMonth() + 1);
44188
- const day = pad(date.getDate());
44189
- const hours = pad(date.getHours());
44190
- const minutes = pad(date.getMinutes());
44191
- const seconds = pad(date.getSeconds());
44192
- if (format === "YYYY-MM-DD hh:mm:ss") {
44193
- return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
44194
- }
44195
- return `${hours}:${minutes}:${seconds}`;
44196
- };
44197
- var logLevel = ["debug", "info", "warn", "error"];
44198
- var computeLevel = (level, currentLevel) => {
44199
- const levelIndex = logLevel.indexOf(level);
44200
- const currentLevelIndex = logLevel.indexOf(currentLevel);
44201
- return levelIndex >= currentLevelIndex;
44202
- };
44203
-
44204
- class Printer {
44205
- constructor() {}
44206
- info(...args) {
44207
- console.log(...args);
44208
- }
44209
- debug(...args) {
44210
- console.debug(...args);
44211
- }
44212
- warn(...args) {
44213
- console.warn(...args);
44214
- }
44215
- error(...args) {
44216
- console.error(...args);
44217
- }
44218
- }
44219
-
44220
- class Logger {
44221
- level = "info";
44222
- printer;
44223
- showTime;
44224
- format;
44225
- constructor(opts) {
44226
- if (opts?.level) {
44227
- const normalizedLevel = opts.level.toLowerCase();
44228
- if (logLevel.includes(normalizedLevel)) {
44229
- this.level = normalizedLevel;
44230
- } else {
44231
- this.level = "info";
44232
- }
44233
- } else {
44234
- this.level = "info";
44235
- }
44236
- this.printer = opts?.printer ?? new Printer;
44237
- this.showTime = opts?.showTime ?? false;
44238
- this.format = opts?.format ?? "HH:mm:ss";
44239
- }
44240
- print(level, ...args) {
44241
- if (computeLevel(level, this.level)) {
44242
- if (this.showTime) {
44243
- const time = showTime(Date.now());
44244
- args.unshift(time);
44245
- }
44246
- this.printer[level](...args);
44247
- }
44248
- }
44249
- log(...args) {
44250
- this.print("info", ...args);
44251
- }
44252
- info(...args) {
44253
- this.print("info", ...args);
44254
- }
44255
- debug(...args) {
44256
- this.print("debug", ...args);
44257
- }
44258
- warn(...args) {
44259
- this.print("warn", ...args);
44260
- }
44261
- error(...args) {
44262
- this.print("error", ...args);
44263
- }
44264
- }
44265
-
44266
- // src/module/logger.ts
44267
- var level = process.env.LOG_LEVEL || "info";
44268
- var logger = new Logger({ level });
44269
- var console2 = {
44270
- log: logger.info,
44271
- error: logger.error,
44272
- warn: logger.warn,
44273
- info: logger.info,
44274
- debug: logger.debug
44275
- };
44276
44284
 
44277
44285
  // src/module/assistant/proxy/index.ts
44278
- var import_send2 = __toESM(require_send(), 1);
44286
+ var import_send = __toESM(require_send(), 1);
44279
44287
  // ../node_modules/.pnpm/@kevisual+local-app-manager@0.1.32_supports-color@10.2.2/node_modules/@kevisual/local-app-manager/dist/manager.mjs
44280
44288
  var exports_manager = {};
44281
44289
  __export(exports_manager, {
@@ -54016,7 +54024,7 @@ var import_fast_glob2 = __toESM(require_out4(), 1);
54016
54024
  import path6 from "node:path";
54017
54025
  import fs7 from "node:fs";
54018
54026
 
54019
- // ../node_modules/.pnpm/eventemitter3@5.0.1/node_modules/eventemitter3/index.mjs
54027
+ // ../node_modules/.pnpm/eventemitter3@5.0.4/node_modules/eventemitter3/index.mjs
54020
54028
  var import__2 = __toESM(require_eventemitter3(), 1);
54021
54029
 
54022
54030
  // src/module/remote-app/remote-app.ts
@@ -55094,22 +55102,33 @@ var randomId = () => Math.random().toString(36).substring(2, 8);
55094
55102
 
55095
55103
  class AssistantInit extends AssistantConfig {
55096
55104
  #query;
55105
+ initWorkspace = false;
55097
55106
  constructor(opts) {
55098
55107
  const configDir3 = opts?.path || process.cwd();
55099
55108
  super({
55100
55109
  configDir: configDir3,
55101
55110
  init: false
55102
55111
  });
55112
+ this.initWorkspace = opts?.initWorkspace ?? true;
55103
55113
  if (opts?.init) {
55104
55114
  this.init();
55105
55115
  }
55106
55116
  }
55107
- async init() {
55117
+ async init(configDir3) {
55118
+ if (configDir3) {
55119
+ this.configDir = configDir3;
55120
+ }
55108
55121
  if (!this.checkConfigPath()) {
55109
55122
  console.log(chalk2.blue("助手路径不存在,正在创建..."));
55110
- super.init();
55123
+ super.init(configDir3);
55124
+ if (!this.initWorkspace) {
55125
+ return;
55126
+ }
55111
55127
  } else {
55112
- super.init();
55128
+ super.init(configDir3);
55129
+ if (!this.initWorkspace) {
55130
+ return;
55131
+ }
55113
55132
  const assistantConfig3 = this;
55114
55133
  console.log(chalk2.yellow("助手路径已存在"), chalk2.green(assistantConfig3.configDir));
55115
55134
  }
@@ -58296,13 +58315,13 @@ var inquirer = {
58296
58315
  var dist_default12 = inquirer;
58297
58316
 
58298
58317
  // src/command/config-manager/index.ts
58299
- var Init = new Command("init").description("初始化一个助手客户端,生成配置文件。").option("-p --path <path>", "助手路径,默认为执行命令的目录,如果助手路径不存在则创建。").action((opts) => {
58300
- if (opts.path && !opts.path.startsWith("/")) {
58301
- opts.path = path9.join(process.cwd(), opts.path);
58302
- } else if (opts.path) {
58303
- opts.path = path9.resolve(opts.path);
58318
+ var Init = new Command("init").description("初始化一个助手客户端,生成配置文件。").option("-w --workspace <workspace>", "助手路径,默认为执行命令的目录,如果助手路径不存在则创建。").action((opts) => {
58319
+ if (opts.workspace && !opts.workspace.startsWith("/")) {
58320
+ opts.workspace = path9.join(process.cwd(), opts.workspace);
58321
+ } else if (opts.workspace) {
58322
+ opts.workspace = path9.resolve(opts.workspace);
58304
58323
  }
58305
- const configDir3 = AssistantInit.detectConfigDir(opts.path);
58324
+ const configDir3 = AssistantInit.detectConfigDir(opts.workspace);
58306
58325
  console.log("configDir", configDir3);
58307
58326
  const assistantInit = new AssistantInit({
58308
58327
  path: configDir3
@@ -58729,7 +58748,7 @@ var stop5 = new Command("stop").description("获取package.json中app参数并
58729
58748
  });
58730
58749
  program.addCommand(stop5);
58731
58750
 
58732
- // ../node_modules/.pnpm/@kevisual+ai@0.0.20/node_modules/@kevisual/ai/dist/ai-provider.js
58751
+ // ../node_modules/.pnpm/@kevisual+ai@0.0.21/node_modules/@kevisual/ai/dist/ai-provider.js
58733
58752
  import { createRequire as createRequire3 } from "node:module";
58734
58753
  var __create3 = Object.create;
58735
58754
  var __getProtoOf3 = Object.getPrototypeOf;
package/dist/envision.js CHANGED
@@ -22327,8 +22327,8 @@ InitEnv.init();
22327
22327
  var version = useContextKey("version", () => {
22328
22328
  let version2 = "0.0.64";
22329
22329
  try {
22330
- if ("0.0.87")
22331
- version2 = "0.0.87";
22330
+ if ("0.0.89")
22331
+ version2 = "0.0.89";
22332
22332
  } catch (e) {}
22333
22333
  return version2;
22334
22334
  });
@@ -23441,7 +23441,9 @@ var writeConfig = (config) => {
23441
23441
  return config;
23442
23442
  };
23443
23443
  var getEnvToken = () => {
23444
- return useKey("KEVISUAL_TOKEN") || "";
23444
+ const envTokne = useKey("KEVISUAL_TOKEN") || "";
23445
+ console.log("getEnvToken", envTokne);
23446
+ return "";
23445
23447
  };
23446
23448
 
23447
23449
  // node_modules/.pnpm/@inquirer+core@11.1.1_@types+node@25.0.9/node_modules/@inquirer/core/dist/lib/key.js
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kevisual/cli",
3
- "version": "0.0.87",
3
+ "version": "0.0.89",
4
4
  "description": "envision 命令行工具",
5
5
  "type": "module",
6
6
  "basename": "/root/cli",
@@ -20,6 +20,9 @@
20
20
  "asst": "bin/assistant.js",
21
21
  "asst-server": "bin/assistant-server.js"
22
22
  },
23
+ "exports": {
24
+ ".": "./dist/assistant-opencode.js"
25
+ },
23
26
  "files": [
24
27
  "dist",
25
28
  "bin",
@@ -45,9 +48,10 @@
45
48
  "@kevisual/app": "^0.0.2",
46
49
  "@kevisual/context": "^0.0.4",
47
50
  "@kevisual/use-config": "^1.0.28",
51
+ "@opencode-ai/sdk": "^1.1.26",
48
52
  "@types/busboy": "^1.5.4",
49
53
  "busboy": "^1.6.0",
50
- "eventemitter3": "^5.0.1",
54
+ "eventemitter3": "^5.0.4",
51
55
  "lowdb": "^7.0.1",
52
56
  "lru-cache": "^11.2.4",
53
57
  "micromatch": "^4.0.8",
@@ -55,7 +59,6 @@
55
59
  "unstorage": "^1.17.4"
56
60
  },
57
61
  "devDependencies": {
58
- "pm2": "^6.0.14",
59
62
  "@kevisual/dts": "^0.0.3",
60
63
  "@kevisual/load": "^0.0.6",
61
64
  "@kevisual/logger": "^0.0.4",
@@ -75,7 +78,8 @@
75
78
  "form-data": "^4.0.5",
76
79
  "ignore": "^7.0.5",
77
80
  "jsonwebtoken": "^9.0.3",
78
- "tar": "^7.5.3",
81
+ "pm2": "^6.0.14",
82
+ "tar": "^7.5.4",
79
83
  "zustand": "^5.0.10"
80
84
  },
81
85
  "engines": {