@zaowu-labs/cli 1.0.2 → 1.0.5

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 (60) hide show
  1. package/dist/args.d.ts.map +1 -1
  2. package/dist/args.js +10 -13
  3. package/dist/args.js.map +1 -1
  4. package/dist/command-contracts.d.ts +7 -0
  5. package/dist/command-contracts.d.ts.map +1 -1
  6. package/dist/command-contracts.js +57 -36
  7. package/dist/command-contracts.js.map +1 -1
  8. package/dist/handler-utils.d.ts +17 -2
  9. package/dist/handler-utils.d.ts.map +1 -1
  10. package/dist/handler-utils.js +34 -1
  11. package/dist/handler-utils.js.map +1 -1
  12. package/dist/handlers/ai-handlers.d.ts.map +1 -1
  13. package/dist/handlers/ai-handlers.js +28 -20
  14. package/dist/handlers/ai-handlers.js.map +1 -1
  15. package/dist/handlers/auto-handlers.d.ts.map +1 -1
  16. package/dist/handlers/auto-handlers.js +3 -7
  17. package/dist/handlers/auto-handlers.js.map +1 -1
  18. package/dist/handlers/config-handlers.d.ts.map +1 -1
  19. package/dist/handlers/config-handlers.js +12 -21
  20. package/dist/handlers/config-handlers.js.map +1 -1
  21. package/dist/handlers/data-handlers.d.ts.map +1 -1
  22. package/dist/handlers/data-handlers.js +6 -9
  23. package/dist/handlers/data-handlers.js.map +1 -1
  24. package/dist/handlers/dev-handlers.d.ts.map +1 -1
  25. package/dist/handlers/dev-handlers.js +144 -182
  26. package/dist/handlers/dev-handlers.js.map +1 -1
  27. package/dist/handlers/doc-handlers.d.ts.map +1 -1
  28. package/dist/handlers/doc-handlers.js +12 -8
  29. package/dist/handlers/doc-handlers.js.map +1 -1
  30. package/dist/handlers/plugin-handlers.d.ts.map +1 -1
  31. package/dist/handlers/plugin-handlers.js +21 -26
  32. package/dist/handlers/plugin-handlers.js.map +1 -1
  33. package/dist/option-registry.d.ts +16 -0
  34. package/dist/option-registry.d.ts.map +1 -0
  35. package/dist/option-registry.js +84 -0
  36. package/dist/option-registry.js.map +1 -0
  37. package/dist/option-validation.d.ts.map +1 -1
  38. package/dist/option-validation.js +1 -48
  39. package/dist/option-validation.js.map +1 -1
  40. package/dist/root-doctor.d.ts.map +1 -1
  41. package/dist/root-doctor.js +2 -3
  42. package/dist/root-doctor.js.map +1 -1
  43. package/dist/root-help.d.ts +1 -2
  44. package/dist/root-help.d.ts.map +1 -1
  45. package/dist/root-help.js +7 -13
  46. package/dist/root-help.js.map +1 -1
  47. package/dist/root-init.d.ts +2 -1
  48. package/dist/root-init.d.ts.map +1 -1
  49. package/dist/root-init.js +7 -8
  50. package/dist/root-init.js.map +1 -1
  51. package/dist/run.d.ts +0 -1
  52. package/dist/run.d.ts.map +1 -1
  53. package/dist/run.js +42 -24
  54. package/dist/run.js.map +1 -1
  55. package/dist/system-command.d.ts +2 -0
  56. package/dist/system-command.d.ts.map +1 -1
  57. package/dist/system-command.js +2 -1
  58. package/dist/system-command.js.map +1 -1
  59. package/dist/version.js +1 -1
  60. package/package.json +11 -11
package/dist/root-init.js CHANGED
@@ -3,11 +3,10 @@ import { writeFile } from 'node:fs/promises';
3
3
  import path from 'node:path';
4
4
  import { getDefaultConfigContent } from '@zaowu-labs/config';
5
5
  import { assertOperationPlanFingerprint, createContentOperationSubjects, createOperationPlan, ZaoWuError, } from '@zaowu-labs/core';
6
- import { getValue, parseArgs } from './args.js';
6
+ import { getValue, hasFlag } from './args.js';
7
+ import { formatOperationPlan } from './handler-utils.js';
7
8
  import { createResult } from './output.js';
8
- import { formatInlineOperationPlan } from './root-help.js';
9
9
  export const DEFAULT_CONFIG_FILE_NAME = 'zw.yml';
10
- const hasFlag = (args, flag) => args.includes(flag);
11
10
  const formatInitPreview = (configPath, content, operationPlan) => `ZaoWu Init
12
11
 
13
12
  No files were written.
@@ -15,7 +14,7 @@ No files were written.
15
14
  Would create:
16
15
  ${path.basename(configPath)}
17
16
 
18
- ${formatInlineOperationPlan(operationPlan)}
17
+ ${formatOperationPlan(operationPlan)}
19
18
 
20
19
  Preview:
21
20
  ${content
@@ -26,10 +25,10 @@ ${content
26
25
 
27
26
  To create exactly this file, run:
28
27
  zw init --yes --plan-fingerprint ${operationPlan.fingerprint}`;
29
- export const handleInit = async (args, options, json) => {
28
+ export const handleInit = async (parsed, options, json) => {
30
29
  const cwd = options.cwd ?? process.cwd();
31
- const dryRun = hasFlag(args, '--dry-run');
32
- const yes = hasFlag(args, '--yes');
30
+ const dryRun = hasFlag(parsed, '--dry-run');
31
+ const yes = hasFlag(parsed, '--yes');
33
32
  const configPath = path.join(cwd, DEFAULT_CONFIG_FILE_NAME);
34
33
  const content = getDefaultConfigContent(configPath);
35
34
  const operationPlan = createOperationPlan({
@@ -58,7 +57,7 @@ export const handleInit = async (args, options, json) => {
58
57
  };
59
58
  return createResult(0, json ? JSON.stringify(payload) : formatInitPreview(configPath, content, operationPlan));
60
59
  }
61
- assertOperationPlanFingerprint(getValue(parseArgs(args), '--plan-fingerprint'), operationPlan, yes && !dryRun, ZaoWuError);
60
+ assertOperationPlanFingerprint(getValue(parsed, '--plan-fingerprint'), operationPlan, yes && !dryRun, ZaoWuError);
62
61
  try {
63
62
  await writeFile(configPath, content, { encoding: 'utf8', flag: 'wx' });
64
63
  }
@@ -1 +1 @@
1
- {"version":3,"file":"root-init.js","sourceRoot":"","sources":["../src/root-init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"root-init.js","sourceRoot":"","sources":["../src/root-init.ts"],"names":[],"mappings":"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"}
package/dist/run.d.ts CHANGED
@@ -1,7 +1,6 @@
1
1
  import { DOMAIN_DEFINITIONS } from './domains.js';
2
2
  import { DEFAULT_CONFIG_FILE_NAME } from './root-init.js';
3
3
  import type { CliExecutionOptions, CliResult } from './types.js';
4
- export declare const ZAOWU_CLI_VERSION: string;
5
4
  export { DEFAULT_CONFIG_FILE_NAME, DOMAIN_DEFINITIONS };
6
5
  export declare const executeCli: (args: readonly string[], options?: CliExecutionOptions) => Promise<CliResult>;
7
6
  export declare const runCli: (args: readonly string[]) => Promise<number>;
package/dist/run.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAc,MAAM,cAAc,CAAC;AAe9D,OAAO,EAAE,wBAAwB,EAAc,MAAM,gBAAgB,CAAC;AAEtE,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGjE,eAAO,MAAM,iBAAiB,QAAkB,CAAC;AACjD,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,CAAC;AAyBxD,eAAO,MAAM,UAAU,GACrB,MAAM,SAAS,MAAM,EAAE,EACvB,UAAS,mBAAwB,KAChC,OAAO,CAAC,SAAS,CAyInB,CAAC;AAEF,eAAO,MAAM,MAAM,GAAU,MAAM,SAAS,MAAM,EAAE,KAAG,OAAO,CAAC,MAAM,CAgBpE,CAAC"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAc,MAAM,cAAc,CAAC;AAe9D,OAAO,EAAE,wBAAwB,EAAc,MAAM,gBAAgB,CAAC;AAEtE,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAIjE,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,CAAC;AAkDxD,eAAO,MAAM,UAAU,GACrB,MAAM,SAAS,MAAM,EAAE,EACvB,UAAS,mBAAwB,KAChC,OAAO,CAAC,SAAS,CA0InB,CAAC;AAEF,eAAO,MAAM,MAAM,GAAU,MAAM,SAAS,MAAM,EAAE,KAAG,OAAO,CAAC,MAAM,CAgBpE,CAAC"}
package/dist/run.js CHANGED
@@ -9,8 +9,20 @@ import { formatActionHelp, formatDoctorHelp, formatDomainHelp, formatHelp, forma
9
9
  import { DEFAULT_CONFIG_FILE_NAME, handleInit } from './root-init.js';
10
10
  import { runSystemCommand } from './system-command.js';
11
11
  import { getCliVersion } from './version.js';
12
- export const ZAOWU_CLI_VERSION = getCliVersion();
12
+ const ZAOWU_CLI_VERSION = getCliVersion();
13
13
  export { DEFAULT_CONFIG_FILE_NAME, DOMAIN_DEFINITIONS };
14
+ const unknownCommandError = (command) => new ZaoWuError({
15
+ code: 'UNKNOWN_COMMAND',
16
+ message: `Unknown command: ${command}.`,
17
+ why: `ZaoWu does not have a command named \`zw ${command}\`.`,
18
+ fix: 'Run `zw --help` to see available commands.',
19
+ });
20
+ const unknownDomainActionError = (domainName, action) => new ZaoWuError({
21
+ code: 'UNKNOWN_DOMAIN_ACTION',
22
+ message: `Unknown command: zw ${domainName} ${action}.`,
23
+ why: `ZaoWu has the \`${domainName}\` domain, but it does not have an action named \`${action}\`.`,
24
+ fix: `Run \`zw ${domainName} --help\` to see commands for this domain.`,
25
+ });
14
26
  const handleError = (error, json) => {
15
27
  const zaowuError = isZaoWuError(error)
16
28
  ? error
@@ -20,7 +32,14 @@ const handleError = (error, json) => {
20
32
  why: 'ZaoWu hit an error that is not yet handled as a user-facing case.',
21
33
  fix: 'Report this issue at https://github.com/zaowu-labs/zaowu/issues with the command you ran.',
22
34
  });
23
- return createResult(zaowuError.exitCode, '', json ? zaowuError.formatJSON() : zaowuError.formatHuman());
35
+ // Debug escape hatch: raw stack traces stay hidden by default, but setting
36
+ // ZAOWU_DEBUG surfaces the underlying cause for field diagnosis. JSON output
37
+ // is left untouched so the machine-readable error contract stays stable.
38
+ const debug = Boolean(process.env.ZAOWU_DEBUG?.trim());
39
+ const debugDetails = debug && !isZaoWuError(error) && error instanceof Error && error.stack
40
+ ? `\n\nDebug (ZAOWU_DEBUG):\n${error.stack}`
41
+ : '';
42
+ return createResult(zaowuError.exitCode, '', json ? zaowuError.formatJSON() : `${zaowuError.formatHuman()}${debugDetails}`);
24
43
  };
25
44
  const createHelpResult = (help, json, details = {}) => createResult(0, json ? JSON.stringify({ schemaVersion: 1, status: 'ok', ...details, help }) : help);
26
45
  export const executeCli = async (args, options = {}) => {
@@ -54,21 +73,28 @@ export const executeCli = async (args, options = {}) => {
54
73
  if (action) {
55
74
  const domainCommand = findDomainCommand(domain, action);
56
75
  if (!domainCommand) {
57
- throw new ZaoWuError({
58
- code: 'UNKNOWN_DOMAIN_ACTION',
59
- message: `Unknown command: zw ${domain.name} ${action}.`,
60
- why: `ZaoWu has the \`${domain.name}\` domain, but it does not have an action named \`${action}\`.`,
61
- fix: `Run \`zw ${domain.name} --help\` to see commands for this domain.`,
62
- });
76
+ throw unknownDomainActionError(domain.name, action);
63
77
  }
64
78
  return createHelpResult(formatActionHelp(domain, action), json, {
65
79
  domain: domain.name,
66
80
  action,
67
81
  });
68
82
  }
69
- return createHelpResult(formatDomainHelp(domain), json, { domain });
83
+ return createHelpResult(formatDomainHelp(domain), json, {
84
+ domain: domain.name,
85
+ commands: domain.commands,
86
+ });
70
87
  }
71
88
  }
89
+ // Resolve the command surface before validating options, so an unknown
90
+ // command or action reports UNKNOWN_COMMAND / UNKNOWN_DOMAIN_ACTION instead
91
+ // of a misleading OPTION_UNSUPPORTED for whatever options were passed.
92
+ if (!domain && command !== 'doctor' && command !== 'init') {
93
+ throw unknownCommandError(command);
94
+ }
95
+ if (domain && commandArgs[1] && !findDomainCommand(domain, commandArgs[1])) {
96
+ throw unknownDomainActionError(domain.name, commandArgs[1]);
97
+ }
72
98
  assertNoMissingOptionValues(parsed.missingValues);
73
99
  assertSupportedOptions(parsed, commandArgs);
74
100
  assertValidOptionValues(parsed, commandArgs);
@@ -77,21 +103,19 @@ export const executeCli = async (args, options = {}) => {
77
103
  return createResult(0, json ? JSON.stringify(doctor) : formatDoctorHuman(doctor));
78
104
  }
79
105
  if (command === 'init') {
80
- return await handleInit(args, options, json);
106
+ return await handleInit(parsed, options, json);
81
107
  }
82
108
  if (domain) {
83
109
  const action = commandArgs[1];
84
110
  if (!action) {
85
- return createHelpResult(formatDomainHelp(domain), json, { domain });
111
+ return createHelpResult(formatDomainHelp(domain), json, {
112
+ domain: domain.name,
113
+ commands: domain.commands,
114
+ });
86
115
  }
87
116
  const domainCommand = findDomainCommand(domain, action);
88
117
  if (!domainCommand) {
89
- throw new ZaoWuError({
90
- code: 'UNKNOWN_DOMAIN_ACTION',
91
- message: `Unknown command: zw ${domain.name} ${action}.`,
92
- why: `ZaoWu has the \`${domain.name}\` domain, but it does not have an action named \`${action}\`.`,
93
- fix: `Run \`zw ${domain.name} --help\` to see commands for this domain.`,
94
- });
118
+ throw unknownDomainActionError(domain.name, action);
95
119
  }
96
120
  if (domainCommand.status === 'planned') {
97
121
  throw new ZaoWuError({
@@ -108,7 +132,6 @@ export const executeCli = async (args, options = {}) => {
108
132
  return await handler(commandArgs.slice(2), {
109
133
  commandRunner,
110
134
  cwd,
111
- dryRun: hasFlag(parsed, '--dry-run'),
112
135
  expectedPlanFingerprint: getValue(parsed, '--plan-fingerprint'),
113
136
  json,
114
137
  parsed,
@@ -124,12 +147,7 @@ export const executeCli = async (args, options = {}) => {
124
147
  fix: 'Wire the command handler through `packages/cli` without moving domain logic into CLI.',
125
148
  });
126
149
  }
127
- throw new ZaoWuError({
128
- code: 'UNKNOWN_COMMAND',
129
- message: `Unknown command: ${command}.`,
130
- why: `ZaoWu does not have a command named \`zw ${command}\`.`,
131
- fix: 'Run `zw --help` to see available commands.',
132
- });
150
+ throw unknownCommandError(command);
133
151
  }
134
152
  catch (error) {
135
153
  return handleError(error, json);
package/dist/run.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
1
  import type { CommandRunner } from './types.js';
2
+ /** Exported for tests: the Windows cmd.exe argument sanitizer. */
3
+ export declare const toWindowsCommand: (command: string, args: readonly string[]) => string;
2
4
  export declare const runSystemCommand: CommandRunner;
3
5
  //# sourceMappingURL=system-command.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"system-command.d.ts","sourceRoot":"","sources":["../src/system-command.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAqBhD,eAAO,MAAM,gBAAgB,EAAE,aAU9B,CAAC"}
1
+ {"version":3,"file":"system-command.d.ts","sourceRoot":"","sources":["../src/system-command.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAIhD,kEAAkE;AAClE,eAAO,MAAM,gBAAgB,GAAI,SAAS,MAAM,EAAE,MAAM,SAAS,MAAM,EAAE,KAAG,MAe3E,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,aAU9B,CAAC"}
@@ -1,7 +1,8 @@
1
1
  import { execFileSync } from 'node:child_process';
2
2
  import { ZaoWuError } from '@zaowu-labs/core';
3
3
  const WINDOWS_COMMAND_PART_PATTERN = /^[a-zA-Z0-9._@:/\\=-]+$/;
4
- const toWindowsCommand = (command, args) => {
4
+ /** Exported for tests: the Windows cmd.exe argument sanitizer. */
5
+ export const toWindowsCommand = (command, args) => {
5
6
  const parts = [command, ...args];
6
7
  for (const part of parts) {
7
8
  if (!WINDOWS_COMMAND_PART_PATTERN.test(part)) {
@@ -1 +1 @@
1
- {"version":3,"file":"system-command.js","sourceRoot":"","sources":["../src/system-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,MAAM,4BAA4B,GAAG,yBAAyB,CAAC;AAE/D,MAAM,gBAAgB,GAAG,CAAC,OAAe,EAAE,IAAuB,EAAU,EAAE;IAC5E,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IAEjC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,UAAU,CAAC;gBACnB,IAAI,EAAE,0BAA0B;gBAChC,OAAO,EAAE,qDAAqD;gBAC9D,GAAG,EAAE,sBAAsB,IAAI,6CAA6C;gBAC5E,GAAG,EAAE,oFAAoF;aAC1F,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAkB,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;IACxE,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;IACtE,MAAM,WAAW,GACf,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAEjG,OAAO,YAAY,CAAC,UAAU,EAAE,WAAW,EAAE;QAC3C,GAAG,EAAE,OAAO,EAAE,GAAG;QACjB,QAAQ,EAAE,MAAM;QAChB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;KAClC,CAAC,CAAC,IAAI,EAAE,CAAC;AACZ,CAAC,CAAC"}
1
+ {"version":3,"file":"system-command.js","sourceRoot":"","sources":["../src/system-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,MAAM,4BAA4B,GAAG,yBAAyB,CAAC;AAE/D,kEAAkE;AAClE,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAAe,EAAE,IAAuB,EAAU,EAAE;IACnF,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IAEjC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,UAAU,CAAC;gBACnB,IAAI,EAAE,0BAA0B;gBAChC,OAAO,EAAE,qDAAqD;gBAC9D,GAAG,EAAE,sBAAsB,IAAI,6CAA6C;gBAC5E,GAAG,EAAE,oFAAoF;aAC1F,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAkB,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;IACxE,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;IACtE,MAAM,WAAW,GACf,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAEjG,OAAO,YAAY,CAAC,UAAU,EAAE,WAAW,EAAE;QAC3C,GAAG,EAAE,OAAO,EAAE,GAAG;QACjB,QAAQ,EAAE,MAAM;QAChB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;KAClC,CAAC,CAAC,IAAI,EAAE,CAAC;AACZ,CAAC,CAAC"}
package/dist/version.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { readFileSync } from 'node:fs';
2
- const FALLBACK_VERSION = '1.0.2';
2
+ const FALLBACK_VERSION = '1.0.5';
3
3
  export const getCliVersion = () => {
4
4
  try {
5
5
  const packageJson = JSON.parse(readFileSync(new URL('../package.json', import.meta.url), 'utf8'));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zaowu-labs/cli",
3
- "version": "1.0.2",
3
+ "version": "1.0.5",
4
4
  "description": "ZaoWu command-line interface",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
@@ -23,16 +23,16 @@
23
23
  }
24
24
  },
25
25
  "dependencies": {
26
- "@zaowu-labs/config": "1.0.2",
27
- "@zaowu-labs/ai": "1.0.2",
28
- "@zaowu-labs/auto": "1.0.2",
29
- "@zaowu-labs/core": "1.0.2",
30
- "@zaowu-labs/data": "1.0.2",
31
- "@zaowu-labs/dev": "1.0.2",
32
- "@zaowu-labs/doc": "1.0.2",
33
- "@zaowu-labs/plugin": "1.0.2",
34
- "@zaowu-labs/web": "1.0.2",
35
- "@zaowu-labs/teach": "1.0.2"
26
+ "@zaowu-labs/ai": "1.0.5",
27
+ "@zaowu-labs/config": "1.0.5",
28
+ "@zaowu-labs/auto": "1.0.5",
29
+ "@zaowu-labs/data": "1.0.5",
30
+ "@zaowu-labs/dev": "1.0.5",
31
+ "@zaowu-labs/doc": "1.0.5",
32
+ "@zaowu-labs/plugin": "1.0.5",
33
+ "@zaowu-labs/teach": "1.0.5",
34
+ "@zaowu-labs/web": "1.0.5",
35
+ "@zaowu-labs/core": "1.0.5"
36
36
  },
37
37
  "keywords": [
38
38
  "zaowu",