@workclaw/cli 1.0.319 → 1.0.321

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.
Files changed (40) hide show
  1. package/README.md +16 -17
  2. package/dist/box/installer/installer.d.ts.map +1 -1
  3. package/dist/box/src/box.d.ts +4 -0
  4. package/dist/box/src/box.d.ts.map +1 -1
  5. package/dist/box/types/index.d.ts +19 -10
  6. package/dist/box/types/index.d.ts.map +1 -1
  7. package/dist/{index-DU1f2pnd.js → index-DsyMquTQ.js} +294 -248
  8. package/dist/index.js +1 -1
  9. package/dist/local/apis/index.d.ts +10 -9
  10. package/dist/local/apis/index.d.ts.map +1 -1
  11. package/dist/local/installer/installer.d.ts +36 -1
  12. package/dist/local/installer/installer.d.ts.map +1 -1
  13. package/dist/local/src/local.d.ts +4 -0
  14. package/dist/local/src/local.d.ts.map +1 -1
  15. package/dist/local/types/index.d.ts +31 -18
  16. package/dist/local/types/index.d.ts.map +1 -1
  17. package/dist/local/utils/index.d.ts +2 -1
  18. package/dist/local/utils/index.d.ts.map +1 -1
  19. package/dist/local/utils/machine-id.d.ts +10 -0
  20. package/dist/local/utils/machine-id.d.ts.map +1 -0
  21. package/dist/local/utils/path.d.ts +0 -6
  22. package/dist/local/utils/path.d.ts.map +1 -1
  23. package/dist/shared/utils/debug.d.ts +11 -2
  24. package/dist/shared/utils/debug.d.ts.map +1 -1
  25. package/dist/shared/utils/env.d.ts +6 -0
  26. package/dist/shared/utils/env.d.ts.map +1 -0
  27. package/dist/shared/utils/index.d.ts +2 -1
  28. package/dist/shared/utils/index.d.ts.map +1 -1
  29. package/dist/shared/utils/path.d.ts.map +1 -1
  30. package/dist/shared/utils/validate.d.ts +80 -0
  31. package/dist/shared/utils/validate.d.ts.map +1 -1
  32. package/dist/utils/config.d.ts +12 -5
  33. package/dist/utils/config.d.ts.map +1 -1
  34. package/dist/utils/http.d.ts +4 -13
  35. package/dist/utils/http.d.ts.map +1 -1
  36. package/dist/utils/index.d.ts +0 -1
  37. package/dist/utils/index.d.ts.map +1 -1
  38. package/package.json +2 -1
  39. package/dist/utils/path.d.ts +0 -23
  40. package/dist/utils/path.d.ts.map +0 -1
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
1
  #!/usr/bin/env node
2
- import("./index-DU1f2pnd.js").then((cli) => {
2
+ import("./index-DsyMquTQ.js").then((cli) => {
3
3
  cli.default();
4
4
  });
@@ -1,11 +1,12 @@
1
- import { AxiosRequestConfig } from 'axios';
2
1
  import { BoundConfig } from '../types';
3
- import { Environment } from '../../shared/config';
4
- export interface HttpResponse<T = any> {
5
- status: number;
6
- data: T;
7
- }
8
- export declare function httpPost<T = any>(url: string, data?: any, config?: AxiosRequestConfig): Promise<HttpResponse<T>>;
9
- export declare function login(phone: string, password: string, env: Environment): Promise<string>;
10
- export declare function fetchBoundConfig(token: string, phone: string, env: Environment): Promise<BoundConfig>;
2
+ import { ConfigInterface } from '../../shared/config';
3
+ export type { HttpResponse } from '../../utils/http';
4
+ /**
5
+ * 用户登录
6
+ */
7
+ export declare function login(phone: string, password: string, config: ConfigInterface): Promise<string>;
8
+ /**
9
+ * 获取绑定配置
10
+ */
11
+ export declare function fetchBoundConfig(token: string, phone: string, localCode: string, config: ConfigInterface): Promise<BoundConfig>;
11
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/local/apis/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA6B,kBAAkB,EAAE,MAAM,OAAO,CAAA;AAC1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAMlD,MAAM,WAAW,YAAY,CAAC,CAAC,GAAG,GAAG;IACnC,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,CAAC,CAAA;CACR;AAWD,wBAAsB,QAAQ,CAAC,CAAC,GAAG,GAAG,EACpC,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,GAAG,EACV,MAAM,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CA+C1B;AAED,wBAAsB,KAAK,CACzB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,WAAW,GACf,OAAO,CAAC,MAAM,CAAC,CAgCjB;AAED,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,WAAW,GACf,OAAO,CAAC,WAAW,CAAC,CA0DtB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/local/apis/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAKtD,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAEpD;;GAEG;AACH,wBAAsB,KAAK,CACzB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,MAAM,CAAC,CA+BjB;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,WAAW,CAAC,CAyDtB"}
@@ -1,17 +1,52 @@
1
1
  import { LocalInstallerConfig } from '../types';
2
+ /**
3
+ * 本地安装器
4
+ * 负责插件的下载、安装和配置更新
5
+ */
2
6
  export declare class LocalInstaller {
3
- private config;
4
7
  private spinner;
5
8
  private prefixText;
9
+ private readonly config;
10
+ private readonly envConfig;
11
+ /**
12
+ * 构造函数
13
+ */
6
14
  constructor(config: LocalInstallerConfig);
15
+ /**
16
+ * 验证安装配置
17
+ */
7
18
  validateConfig(): void;
19
+ /**
20
+ * 执行安装流程
21
+ */
8
22
  install(): Promise<void>;
23
+ /**
24
+ * 获取前缀文本(用于显示安装进度)
25
+ */
9
26
  getPrefixText(): string;
27
+ /**
28
+ * 获取完整的 npm 包名(包含版本号)
29
+ */
10
30
  private getPackageName;
31
+ /**
32
+ * 执行用户登录
33
+ */
11
34
  private doLogin;
35
+ /**
36
+ * 获取绑定配置
37
+ */
12
38
  private doFetchBoundConfig;
39
+ /**
40
+ * 清理旧版本文件
41
+ */
13
42
  private doCleanOldFiles;
43
+ /**
44
+ * 从 npm 下载并安装插件
45
+ */
14
46
  private doDownloadFromNpm;
47
+ /**
48
+ * 更新配置文件
49
+ */
15
50
  private doUpdateConfig;
16
51
  }
17
52
  //# sourceMappingURL=installer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"installer.d.ts","sourceRoot":"","sources":["../../../src/local/installer/installer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAA6B,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAuD/E,qBAAa,cAAc;IAIb,OAAO,CAAC,MAAM;IAH1B,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,UAAU,CAAa;gBAEX,MAAM,EAAE,oBAAoB;IAIhD,cAAc,IAAI,IAAI;IAyBhB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAmD9B,aAAa,IAAI,MAAM;IAIvB,OAAO,CAAC,cAAc;YAOR,OAAO;YAqBP,kBAAkB;YAclB,eAAe;YAmBf,iBAAiB;YAmHjB,cAAc;CA+M7B"}
1
+ {"version":3,"file":"installer.d.ts","sourceRoot":"","sources":["../../../src/local/installer/installer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAA6B,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAgF/E;;;GAGG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IAC7C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiB;IAE3C;;OAEG;gBACS,MAAM,EAAE,oBAAoB;IAOxC;;OAEG;IACH,cAAc,IAAI,IAAI;IAUtB;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA+D9B;;OAEG;IACH,aAAa,IAAI,MAAM;IAIvB;;OAEG;IACH,OAAO,CAAC,cAAc;IAOtB;;OAEG;YACW,OAAO;IAoBrB;;OAEG;YACW,kBAAkB;IAchC;;OAEG;YACW,eAAe;IAmB7B;;OAEG;YACW,iBAAiB;IAoH/B;;OAEG;YACW,cAAc;CAmN7B"}
@@ -1,3 +1,7 @@
1
1
  import { LocalOptions } from '../types';
2
+ /**
3
+ * 创建本地安装命令
4
+ * 处理交互式输入、验证配置并执行插件安装
5
+ */
2
6
  export declare function createLocalCommand(options: LocalOptions): Promise<void>;
3
7
  //# sourceMappingURL=local.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"local.d.ts","sourceRoot":"","sources":["../../../src/local/src/local.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAgC5C,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAoJ7E"}
1
+ {"version":3,"file":"local.d.ts","sourceRoot":"","sources":["../../../src/local/src/local.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAQ5C;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA0J7E"}
@@ -1,4 +1,4 @@
1
- import { Environment } from '../../shared/config';
1
+ import { z } from 'zod';
2
2
  export interface LocalOptions {
3
3
  env?: string;
4
4
  phone?: string;
@@ -9,23 +9,36 @@ export interface LocalOptions {
9
9
  openclawPath?: string;
10
10
  debug?: boolean;
11
11
  }
12
- export interface LocalInstallerConfig {
13
- env?: Environment;
14
- customIp?: string;
15
- wsUrl?: string;
16
- phone: string;
17
- userPass: string;
18
- pluginVersion?: string;
19
- openclawPath?: string;
20
- }
21
- export interface BoundConfig {
22
- appKey: string;
23
- appSecret: string;
24
- userId?: string;
25
- agentId: string;
26
- modelApiKey?: string;
27
- modelApiBaseUrl?: string;
28
- }
12
+ /**
13
+ * LocalInstaller 配置验证 schema
14
+ * 当 env === 'custom' 时,customIp 必填
15
+ */
16
+ export declare const LocalInstallerConfigSchema: z.ZodObject<{
17
+ env: z.ZodOptional<z.ZodEnum<{
18
+ test: "test";
19
+ prod: "prod";
20
+ custom: "custom";
21
+ }>>;
22
+ customIp: z.ZodOptional<z.ZodIPv4>;
23
+ wsUrl: z.ZodOptional<z.ZodString>;
24
+ phone: z.ZodString;
25
+ userPass: z.ZodString;
26
+ pluginVersion: z.ZodOptional<z.ZodString>;
27
+ openclawPath: z.ZodOptional<z.ZodIntersection<z.ZodString, z.ZodString>>;
28
+ }, z.core.$strip>;
29
+ export type LocalInstallerConfig = z.infer<typeof LocalInstallerConfigSchema>;
30
+ /**
31
+ * BoundConfig 验证 schema
32
+ */
33
+ export declare const BoundConfigSchema: z.ZodObject<{
34
+ appKey: z.ZodString;
35
+ appSecret: z.ZodString;
36
+ userId: z.ZodOptional<z.ZodString>;
37
+ agentId: z.ZodString;
38
+ modelApiKey: z.ZodOptional<z.ZodString>;
39
+ modelApiBaseUrl: z.ZodOptional<z.ZodString>;
40
+ }, z.core.$strip>;
41
+ export type BoundConfig = z.infer<typeof BoundConfigSchema>;
29
42
  export interface InstallResult {
30
43
  success: boolean;
31
44
  message?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/local/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAElD,MAAM,WAAW,YAAY;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,CAAC,EAAE,WAAW,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;CACb"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/local/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAWvB,MAAM,WAAW,YAAY;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED;;;GAGG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;iBAmBtC,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAA;AAE7E;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;iBAO5B,CAAA;AAEF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAE3D,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;CACb"}
@@ -1,3 +1,4 @@
1
1
  export { rsaEncrypt } from './crypto';
2
- export { getHomeDir, getPathByScenario } from './path';
2
+ export { buildLocalCode, generateMachineId } from './machine-id';
3
+ export { getHomeDir } from './path';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/local/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/local/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * 生成客户端唯一机器码
3
+ * 基于系统硬件信息生成,确保同一机器每次生成结果一致
4
+ */
5
+ export declare function generateMachineId(): string;
6
+ /**
7
+ * 生成 localCode: 手机号-机器码
8
+ */
9
+ export declare function buildLocalCode(phone: string, machineId: string): string;
10
+ //# sourceMappingURL=machine-id.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"machine-id.d.ts","sourceRoot":"","sources":["../../../src/local/utils/machine-id.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAe1C;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAEvE"}
@@ -1,8 +1,2 @@
1
- import { Environment } from '../../shared/config';
2
1
  export declare function getHomeDir(): string;
3
- export declare function getPathByScenario(env: Environment, openclawPath?: string): {
4
- configDir: string;
5
- configFile: string;
6
- pluginDir: string;
7
- };
8
2
  //# sourceMappingURL=path.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"path.d.ts","sourceRoot":"","sources":["../../../src/local/utils/path.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAGlD,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,WAAW,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAevI"}
1
+ {"version":3,"file":"path.d.ts","sourceRoot":"","sources":["../../../src/local/utils/path.ts"],"names":[],"mappings":"AAEA,wBAAgB,UAAU,IAAI,MAAM,CAEnC"}
@@ -1,4 +1,13 @@
1
- export declare function setDebug(debug: boolean): void;
1
+ /**
2
+ * 设置调试模式
3
+ */
4
+ export declare function setDebug(enabled: boolean): void;
5
+ /**
6
+ * 检查是否为调试模式
7
+ */
2
8
  export declare function isDebugMode(): boolean;
3
- export declare function debugLog(...args: any[]): void;
9
+ /**
10
+ * 输出调试日志
11
+ */
12
+ export declare function debugLog(...args: unknown[]): void;
4
13
  //# sourceMappingURL=debug.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../../../src/shared/utils/debug.ts"],"names":[],"mappings":"AAIA,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAE7C;AAED,wBAAgB,WAAW,IAAI,OAAO,CAErC;AAED,wBAAgB,QAAQ,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAI7C"}
1
+ {"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../../../src/shared/utils/debug.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAQ/C;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,OAAO,CAErC;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CACjD"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * 检查运行环境
3
+ * 验证 Node.js 版本和 npm 是否可用
4
+ */
5
+ export declare function checkEnv(): void;
6
+ //# sourceMappingURL=env.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../../src/shared/utils/env.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,wBAAgB,QAAQ,IAAI,IAAI,CAmB/B"}
@@ -1,6 +1,7 @@
1
1
  export { debugLog, isDebugMode, setDebug } from './debug';
2
+ export { checkEnv } from './env';
2
3
  export { createLogger, logger } from './logger';
3
4
  export type { Logger } from './logger';
4
5
  export { validateOpenclawPath } from './path';
5
- export { ipv4Schema } from './validate';
6
+ export { absolutePathSchema, appKeySchema, appSecretSchema, booleanSchema, EnvironmentSchema, ipv4Schema, isValid, openclawPathSchema, phoneSchema, pluginVersionSchema, userPassSchema, validate, validateWithMessage, windowsPathSchema, withMessage, wsUrlSchema, } from './validate';
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shared/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAC/C,YAAY,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shared/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAC/C,YAAY,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,UAAU,EACV,OAAO,EACP,kBAAkB,EAClB,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,QAAQ,EACR,mBAAmB,EACnB,iBAAiB,EACjB,WAAW,EACX,WAAW,GACZ,MAAM,YAAY,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"path.d.ts","sourceRoot":"","sources":["../../../src/shared/utils/path.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAiB/D"}
1
+ {"version":3,"file":"path.d.ts","sourceRoot":"","sources":["../../../src/shared/utils/path.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAU/D"}
@@ -1,6 +1,86 @@
1
1
  import { z } from 'zod';
2
+ /**
3
+ * 环境类型
4
+ */
5
+ export declare const EnvironmentSchema: z.ZodEnum<{
6
+ test: "test";
7
+ prod: "prod";
8
+ custom: "custom";
9
+ }>;
2
10
  /**
3
11
  * IPv4 地址 schema
4
12
  */
5
13
  export declare const ipv4Schema: z.ZodIPv4;
14
+ /**
15
+ * 手机号码 schema
16
+ */
17
+ export declare const phoneSchema: z.ZodString;
18
+ /**
19
+ * 用户密码 schema(非空即可)
20
+ */
21
+ export declare const userPassSchema: z.ZodString;
22
+ /**
23
+ * AppKey schema
24
+ */
25
+ export declare const appKeySchema: z.ZodString;
26
+ /**
27
+ * AppSecret schema
28
+ */
29
+ export declare const appSecretSchema: z.ZodString;
30
+ /**
31
+ * 绝对路径 schema
32
+ */
33
+ export declare const absolutePathSchema: z.ZodString;
34
+ /**
35
+ * Windows 路径特殊字符校验 schema
36
+ * 排除 < > " | ? *
37
+ */
38
+ export declare const windowsPathSchema: z.ZodString;
39
+ /**
40
+ * OpenClaw 安装路径 schema
41
+ */
42
+ export declare const openclawPathSchema: z.ZodIntersection<z.ZodString, z.ZodString>;
43
+ /**
44
+ * 插件版本号 schema(允许 undefined 或符合 semver 格式)
45
+ */
46
+ export declare const pluginVersionSchema: z.ZodOptional<z.ZodString>;
47
+ /**
48
+ * WebSocket URL schema
49
+ */
50
+ export declare const wsUrlSchema: z.ZodOptional<z.ZodString>;
51
+ /**
52
+ * 布尔值 schema
53
+ */
54
+ export declare const booleanSchema: z.ZodBoolean;
55
+ /**
56
+ * 自定义错误消息工具函数
57
+ * @param schema - Zod schema
58
+ * @param message - 自定义错误消息
59
+ * @returns - 新的 Zod schema
60
+ */
61
+ export declare function withMessage<T extends z.ZodTypeAny>(schema: T, message: string): T;
62
+ /**
63
+ * 验证工具函数 - 抛出错误
64
+ * @param schema - Zod schema
65
+ * @param value - 待验证的值
66
+ * @throws Error - 验证失败时抛出错误
67
+ */
68
+ export declare function validate<T extends z.ZodTypeAny>(schema: T, value: unknown): asserts value is z.infer<T>;
69
+ /**
70
+ * 验证工具函数 - 返回布尔值
71
+ * @param schema - Zod schema
72
+ * @param value - 待验证的值
73
+ * @returns - 验证是否通过
74
+ */
75
+ export declare function isValid<T extends z.ZodTypeAny>(schema: T, value: unknown): value is z.infer<T>;
76
+ /**
77
+ * 验证工具函数 - 返回验证结果和错误信息
78
+ * @param schema - Zod schema
79
+ * @param value - 待验证的值
80
+ * @returns - 验证结果 { success: boolean, message?: string }
81
+ */
82
+ export declare function validateWithMessage<T extends z.ZodTypeAny>(schema: T, value: unknown): {
83
+ success: boolean;
84
+ message?: string;
85
+ };
6
86
  //# sourceMappingURL=validate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../src/shared/utils/validate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB;;GAEG;AACH,eAAO,MAAM,UAAU,WAErB,CAAA"}
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../src/shared/utils/validate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;EAE5B,CAAA;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,WAErB,CAAA;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,aAEtB,CAAA;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,aAEzB,CAAA;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,aAEvB,CAAA;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,aAE1B,CAAA;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,aAO9B,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,aAK7B,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,6CAA4C,CAAA;AAE3E;;GAEG;AACH,eAAO,MAAM,mBAAmB,4BAAwB,CAAA;AAExD;;GAEG;AACH,eAAO,MAAM,WAAW,4BAEX,CAAA;AAEb;;GAEG;AACH,eAAO,MAAM,aAAa,cAAc,CAAA;AAExC;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,EAChD,MAAM,EAAE,CAAC,EACT,OAAO,EAAE,MAAM,GACd,CAAC,CAIH;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,EAC7C,MAAM,EAAE,CAAC,EACT,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAK7B;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,EAC5C,MAAM,EAAE,CAAC,EACT,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAErB;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,EACxD,MAAM,EAAE,CAAC,EACT,KAAK,EAAE,OAAO,GACb;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CASxC"}
@@ -1,7 +1,12 @@
1
- export interface OpenClawConfig {
2
- channels?: Record<string, unknown>;
3
- [key: string]: unknown;
4
- }
1
+ import { z } from 'zod';
2
+ /**
3
+ * 配置对象 schema
4
+ * 配置是一个对象,支持任意键值,channels 为可选的嵌套对象
5
+ */
6
+ export declare const OpenClawConfigSchema: z.ZodObject<{
7
+ channels: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
8
+ }, z.core.$catchall<z.ZodUnknown>>;
9
+ export type OpenClawConfig = z.infer<typeof OpenClawConfigSchema>;
5
10
  /**
6
11
  * 读取配置文件
7
12
  */
@@ -16,6 +21,8 @@ export declare function writeConfig(configPath: string, config: OpenClawConfig):
16
21
  export declare function mergeConfig(original: OpenClawConfig, overlay: Partial<OpenClawConfig>): OpenClawConfig;
17
22
  /**
18
23
  * 验证配置格式
24
+ * @param config - 待验证的配置
25
+ * @returns - 验证是否通过
19
26
  */
20
- export declare function validateConfig(config: unknown): boolean;
27
+ export declare function validateConfig(config: unknown): config is OpenClawConfig;
21
28
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAClC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CASnF;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,IAAI,CAAC,CAIf;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,GAC/B,cAAc,CA0BhB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAKvD"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;kCAET,CAAA;AAExB,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAEjE;;GAEG;AACH,wBAAsB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAUnF;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,IAAI,CAAC,CAIf;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,GAC/B,cAAc,CA0BhB;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,cAAc,CAOxE"}
@@ -3,25 +3,16 @@ export interface HttpResponse<T = unknown> {
3
3
  status: number;
4
4
  data: T;
5
5
  }
6
- export interface RequestLog<T = unknown> {
7
- method: string;
8
- url: string;
9
- headers?: Record<string, string>;
10
- data?: unknown;
11
- response?: HttpResponse<T>;
12
- error?: string;
13
- duration?: number;
14
- }
15
6
  /**
16
7
  * 创建 HTTP 客户端
17
8
  */
18
9
  export declare function createHttpClient(baseURL?: string): AxiosInstance;
19
- /**
20
- * 发送 GET 请求
21
- */
22
- export declare function httpGet<T = unknown>(url: string, config?: AxiosRequestConfig): Promise<HttpResponse<T>>;
23
10
  /**
24
11
  * 发送 POST 请求
25
12
  */
26
13
  export declare function httpPost<T = unknown>(url: string, data?: unknown, config?: AxiosRequestConfig): Promise<HttpResponse<T>>;
14
+ /**
15
+ * 发送 GET 请求
16
+ */
17
+ export declare function httpGet<T = unknown>(url: string, config?: AxiosRequestConfig): Promise<HttpResponse<T>>;
27
18
  //# sourceMappingURL=http.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/utils/http.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAA;AAI9D,MAAM,WAAW,YAAY,CAAC,CAAC,GAAG,OAAO;IACvC,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,CAAC,CAAA;CACR;AAED,MAAM,WAAW,UAAU,CAAC,CAAC,GAAG,OAAO;IACrC,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,QAAQ,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAA;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,aAAa,CAQhE;AAqDD;;GAEG;AACH,wBAAsB,OAAO,CAAC,CAAC,GAAG,OAAO,EACvC,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CA2C1B;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAAC,CAAC,GAAG,OAAO,EACxC,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,OAAO,EACd,MAAM,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CA8C1B"}
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/utils/http.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAA;AAK9D,MAAM,WAAW,YAAY,CAAC,CAAC,GAAG,OAAO;IACvC,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,CAAC,CAAA;CACR;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,aAAa,CAQhE;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAAC,CAAC,GAAG,OAAO,EACxC,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,OAAO,EACd,MAAM,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAgD1B;AAED;;GAEG;AACH,wBAAsB,OAAO,CAAC,CAAC,GAAG,OAAO,EACvC,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CA+C1B"}
@@ -4,5 +4,4 @@ export * from './crypto';
4
4
  export * from './error';
5
5
  export * from './http';
6
6
  export * from './logger';
7
- export * from './path';
8
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,kBAAkB,CAAA;AAChC,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA;AACtB,cAAc,UAAU,CAAA;AACxB,cAAc,QAAQ,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,kBAAkB,CAAA;AAChC,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA;AACtB,cAAc,UAAU,CAAA"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@workclaw/cli",
3
3
  "type": "module",
4
- "version": "1.0.319",
4
+ "version": "1.0.321",
5
5
  "description": "WorkClaw CLI 工具 - 用于初始化和配置 WorkClaw 插件",
6
6
  "license": "MIT",
7
7
  "keywords": [
@@ -26,6 +26,7 @@
26
26
  "build": "vite build"
27
27
  },
28
28
  "dependencies": {
29
+ "@mingto/debug": "^1.0.25",
29
30
  "@types/semver": "^7.7.0",
30
31
  "@types/tar": "^6.1.13",
31
32
  "axios": "^1.7.9",
@@ -1,23 +0,0 @@
1
- export type Scenario = 'windows-local' | 'mac-local' | 'linux-local' | 'linux-box';
2
- export interface PathInfo {
3
- configDir: string;
4
- configFile: string;
5
- pluginDir: string;
6
- }
7
- /**
8
- * 根据场景获取路径信息
9
- */
10
- export declare function getPathInfo(_scenario: Scenario): PathInfo;
11
- /**
12
- * 检测当前操作系统
13
- */
14
- export declare function detectOS(): Scenario;
15
- /**
16
- * 创建目录(如果不存在)
17
- */
18
- export declare function ensureDir(dirPath: string): Promise<void>;
19
- /**
20
- * 检查路径是否存在
21
- */
22
- export declare function pathExists(filePath: string): Promise<boolean>;
23
- //# sourceMappingURL=path.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"path.d.ts","sourceRoot":"","sources":["../../src/utils/path.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,QAAQ,GAAG,eAAe,GAAG,WAAW,GAAG,aAAa,GAAG,WAAW,CAAA;AAElF,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,QAAQ,GAAG,QAAQ,CASzD;AAED;;GAEG;AACH,wBAAgB,QAAQ,IAAI,QAAQ,CAanC;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE9D;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAQnE"}