@zaowu-labs/cli 1.0.2 → 1.0.6

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 (71) hide show
  1. package/dist/args.d.ts +1 -0
  2. package/dist/args.d.ts.map +1 -1
  3. package/dist/args.js +20 -15
  4. package/dist/args.js.map +1 -1
  5. package/dist/command-contracts.d.ts +7 -0
  6. package/dist/command-contracts.d.ts.map +1 -1
  7. package/dist/command-contracts.js +57 -36
  8. package/dist/command-contracts.js.map +1 -1
  9. package/dist/handler-utils.d.ts +17 -2
  10. package/dist/handler-utils.d.ts.map +1 -1
  11. package/dist/handler-utils.js +54 -2
  12. package/dist/handler-utils.js.map +1 -1
  13. package/dist/handlers/ai-handlers.d.ts.map +1 -1
  14. package/dist/handlers/ai-handlers.js +30 -21
  15. package/dist/handlers/ai-handlers.js.map +1 -1
  16. package/dist/handlers/auto-handlers.d.ts.map +1 -1
  17. package/dist/handlers/auto-handlers.js +3 -7
  18. package/dist/handlers/auto-handlers.js.map +1 -1
  19. package/dist/handlers/config-handlers.d.ts.map +1 -1
  20. package/dist/handlers/config-handlers.js +37 -21
  21. package/dist/handlers/config-handlers.js.map +1 -1
  22. package/dist/handlers/data-handlers.d.ts.map +1 -1
  23. package/dist/handlers/data-handlers.js +8 -10
  24. package/dist/handlers/data-handlers.js.map +1 -1
  25. package/dist/handlers/dev-handlers.d.ts.map +1 -1
  26. package/dist/handlers/dev-handlers.js +144 -182
  27. package/dist/handlers/dev-handlers.js.map +1 -1
  28. package/dist/handlers/doc-handlers.d.ts.map +1 -1
  29. package/dist/handlers/doc-handlers.js +14 -9
  30. package/dist/handlers/doc-handlers.js.map +1 -1
  31. package/dist/handlers/plugin-handlers.d.ts.map +1 -1
  32. package/dist/handlers/plugin-handlers.js +21 -26
  33. package/dist/handlers/plugin-handlers.js.map +1 -1
  34. package/dist/help-text.d.ts.map +1 -1
  35. package/dist/help-text.js +3 -2
  36. package/dist/help-text.js.map +1 -1
  37. package/dist/input-validation.d.ts +6 -0
  38. package/dist/input-validation.d.ts.map +1 -0
  39. package/dist/input-validation.js +68 -0
  40. package/dist/input-validation.js.map +1 -0
  41. package/dist/option-registry.d.ts +16 -0
  42. package/dist/option-registry.d.ts.map +1 -0
  43. package/dist/option-registry.js +84 -0
  44. package/dist/option-registry.js.map +1 -0
  45. package/dist/option-validation.d.ts.map +1 -1
  46. package/dist/option-validation.js +3 -53
  47. package/dist/option-validation.js.map +1 -1
  48. package/dist/root-doctor.d.ts +1 -0
  49. package/dist/root-doctor.d.ts.map +1 -1
  50. package/dist/root-doctor.js +37 -13
  51. package/dist/root-doctor.js.map +1 -1
  52. package/dist/root-help.d.ts +1 -2
  53. package/dist/root-help.d.ts.map +1 -1
  54. package/dist/root-help.js +23 -18
  55. package/dist/root-help.js.map +1 -1
  56. package/dist/root-init.d.ts +2 -1
  57. package/dist/root-init.d.ts.map +1 -1
  58. package/dist/root-init.js +34 -19
  59. package/dist/root-init.js.map +1 -1
  60. package/dist/run.d.ts +0 -1
  61. package/dist/run.d.ts.map +1 -1
  62. package/dist/run.js +51 -27
  63. package/dist/run.js.map +1 -1
  64. package/dist/system-command.d.ts +2 -0
  65. package/dist/system-command.d.ts.map +1 -1
  66. package/dist/system-command.js +4 -1
  67. package/dist/system-command.js.map +1 -1
  68. package/dist/types.d.ts +2 -0
  69. package/dist/types.d.ts.map +1 -1
  70. package/dist/version.js +1 -1
  71. package/package.json +11 -11
package/dist/args.d.ts CHANGED
@@ -4,6 +4,7 @@ export interface ParsedArgs {
4
4
  values: ReadonlyMap<string, string>;
5
5
  missingValues: readonly string[];
6
6
  options: ReadonlySet<string>;
7
+ assignedBooleans: readonly string[];
7
8
  }
8
9
  export declare const parseArgs: (args: readonly string[]) => ParsedArgs;
9
10
  export declare const hasFlag: (parsed: ParsedArgs, flag: string) => boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../src/args.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3B,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC9B;AAeD,eAAO,MAAM,SAAS,GAAI,MAAM,SAAS,MAAM,EAAE,KAAG,UAwDnD,CAAC;AAEF,eAAO,MAAM,OAAO,GAAI,QAAQ,UAAU,EAAE,MAAM,MAAM,KAAG,OAAiC,CAAC;AAE7F,eAAO,MAAM,QAAQ,GAAI,QAAQ,UAAU,EAAE,MAAM,MAAM,KAAG,MAAM,GAAG,SAC5C,CAAC"}
1
+ {"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../src/args.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3B,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7B,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAID,eAAO,MAAM,SAAS,GAAI,MAAM,SAAS,MAAM,EAAE,KAAG,UA0EnD,CAAC;AAEF,eAAO,MAAM,OAAO,GAAI,QAAQ,UAAU,EAAE,MAAM,MAAM,KAAG,OAAiC,CAAC;AAE7F,eAAO,MAAM,QAAQ,GAAI,QAAQ,UAAU,EAAE,MAAM,MAAM,KAAG,MAAM,GAAG,SAC5C,CAAC"}
package/dist/args.js CHANGED
@@ -1,24 +1,23 @@
1
- const FLAGS_WITH_VALUES = new Set([
2
- '--file',
3
- '--format',
4
- '--count',
5
- '--model',
6
- '--output',
7
- '--plan-fingerprint',
8
- '--provider',
9
- '--rows',
10
- '--sheet',
11
- '--source',
12
- ]);
1
+ import { BOOLEAN_OPTIONS, VALUE_OPTIONS } from './option-registry.js';
2
+ const FLAGS_WITH_VALUES = new Set(VALUE_OPTIONS);
13
3
  export const parseArgs = (args) => {
14
4
  const positionals = [];
15
5
  const flags = new Set();
16
6
  const values = new Map();
17
7
  const missingValues = [];
18
8
  const options = new Set();
9
+ const assignedBooleans = [];
10
+ let optionsEnded = false;
19
11
  for (let index = 0; index < args.length; index += 1) {
20
- const arg = args[index];
21
- if (!arg.startsWith('--')) {
12
+ const raw = args[index];
13
+ const arg = optionsEnded ? raw : raw === '-h' ? '--help' : raw === '-V' ? '--version' : raw;
14
+ // Standard end-of-options separator: everything after a bare `--` is a
15
+ // positional, so targets that begin with dashes stay expressible.
16
+ if (arg === '--' && !optionsEnded) {
17
+ optionsEnded = true;
18
+ continue;
19
+ }
20
+ if (optionsEnded || !arg.startsWith('--')) {
22
21
  positionals.push(arg);
23
22
  continue;
24
23
  }
@@ -37,11 +36,16 @@ export const parseArgs = (args) => {
37
36
  continue;
38
37
  }
39
38
  flags.add(key);
39
+ if (BOOLEAN_OPTIONS.includes(key))
40
+ assignedBooleans.push(key);
40
41
  continue;
41
42
  }
42
43
  options.add(arg);
43
44
  if (FLAGS_WITH_VALUES.has(arg)) {
44
- if (args[index + 1] && !args[index + 1].startsWith('--')) {
45
+ if (args[index + 1] &&
46
+ !args[index + 1].startsWith('--') &&
47
+ args[index + 1] !== '-h' &&
48
+ args[index + 1] !== '-V') {
45
49
  values.set(arg, args[index + 1]);
46
50
  index += 1;
47
51
  }
@@ -58,6 +62,7 @@ export const parseArgs = (args) => {
58
62
  values,
59
63
  missingValues,
60
64
  options,
65
+ assignedBooleans,
61
66
  };
62
67
  };
63
68
  export const hasFlag = (parsed, flag) => parsed.flags.has(flag);
package/dist/args.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"args.js","sourceRoot":"","sources":["../src/args.ts"],"names":[],"mappings":"AAQA,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC;IAChC,QAAQ;IACR,UAAU;IACV,SAAS;IACT,SAAS;IACT,UAAU;IACV,oBAAoB;IACpB,YAAY;IACZ,QAAQ;IACR,SAAS;IACT,UAAU;CACX,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAuB,EAAc,EAAE;IAC/D,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAElC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAExB,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACtB,SAAS;QACX,CAAC;QAED,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACjC,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YAClC,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAEjB,IAAI,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/B,IAAI,GAAG,EAAE,CAAC;oBACR,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBACvB,CAAC;qBAAM,CAAC;oBACN,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC1B,CAAC;gBACD,SAAS;YACX,CAAC;YAED,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACf,SAAS;QACX,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEjB,IAAI,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/B,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzD,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;gBACjC,KAAK,IAAI,CAAC,CAAC;YACb,CAAC;iBAAM,CAAC;gBACN,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1B,CAAC;YACD,SAAS;QACX,CAAC;QAED,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACjB,CAAC;IAED,OAAO;QACL,WAAW;QACX,KAAK;QACL,MAAM;QACN,aAAa;QACb,OAAO;KACR,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,MAAkB,EAAE,IAAY,EAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAE7F,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,MAAkB,EAAE,IAAY,EAAsB,EAAE,CAC/E,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC"}
1
+ {"version":3,"file":"args.js","sourceRoot":"","sources":["../src/args.ts"],"names":[],"mappings":"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"}
@@ -7,5 +7,12 @@ export interface CommandContract {
7
7
  sensitive: boolean;
8
8
  schemaFile?: string;
9
9
  }
10
+ /**
11
+ * Root command surfaces tracked in docs/CAPABILITY_MATRIX.md that are not
12
+ * COMMAND_CONTRACTS entries (aliases of `--help`/`--version`). The capability
13
+ * matrix check and `zw doctor` both derive their counts from this list so the
14
+ * two can never drift apart.
15
+ */
16
+ export declare const ADDITIONAL_ROOT_SURFACES: readonly ["zw help", "zw --version", "zw version"];
10
17
  export declare const COMMAND_CONTRACTS: readonly CommandContract[];
11
18
  //# sourceMappingURL=command-contracts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"command-contracts.d.ts","sourceRoot":"","sources":["../src/command-contracts.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACxB,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAKD,eAAO,MAAM,iBAAiB,EAAE,SAAS,eAAe,EAuEvD,CAAC"}
1
+ {"version":3,"file":"command-contracts.d.ts","sourceRoot":"","sources":["../src/command-contracts.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACxB,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAmBD;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,oDAAqD,CAAC;AAE3F,eAAO,MAAM,iBAAiB,EAAE,SAAS,eAAe,EA0EvD,CAAC"}
@@ -1,4 +1,22 @@
1
+ import { findDomainCommand } from '@zaowu-labs/core';
2
+ import { findDomain } from './domains.js';
1
3
  const commandSchemaFile = (id) => `schemas/zaowu.command.${id.replace('.', '-')}.schema.json`;
4
+ const isDomainCommandSensitive = (domainName, action) => {
5
+ const domain = findDomain(domainName);
6
+ const command = domain ? findDomainCommand(domain, action) : undefined;
7
+ if (!command) {
8
+ throw new Error(`Command contract references unknown command: ${domainName} ${action}. ` +
9
+ 'Declare it in the domain package before adding a contract.');
10
+ }
11
+ return Boolean(command.sensitive);
12
+ };
13
+ /**
14
+ * Root command surfaces tracked in docs/CAPABILITY_MATRIX.md that are not
15
+ * COMMAND_CONTRACTS entries (aliases of `--help`/`--version`). The capability
16
+ * matrix check and `zw doctor` both derive their counts from this list so the
17
+ * two can never drift apart.
18
+ */
19
+ export const ADDITIONAL_ROOT_SURFACES = ['zw help', 'zw --version', 'zw version'];
2
20
  export const COMMAND_CONTRACTS = [
3
21
  {
4
22
  id: 'root.help',
@@ -27,47 +45,50 @@ export const COMMAND_CONTRACTS = [
27
45
  schemaFile: commandSchemaFile('doctor'),
28
46
  },
29
47
  ...[
30
- ['ai', 'ask', 'ZaoWu AI Ask', true],
31
- ['ai', 'providers', 'ZaoWu AI Providers', false],
32
- ['auto', 'validate', 'ZaoWu Auto Validate', false],
33
- ['auto', 'plan', 'ZaoWu Auto Plan', false],
34
- ['auto', 'run', 'ZaoWu Auto Run', true],
35
- ['config', 'show', 'ZaoWu Config Show', false],
36
- ['config', 'path', 'ZaoWu Config Path', false],
37
- ['config', 'validate', 'ZaoWu Config Validate', false],
38
- ['config', 'get', 'ZaoWu Config Get', false],
39
- ['config', 'set', 'ZaoWu Config Set', true],
40
- ['config', 'migrate', 'ZaoWu Config Migrate', true],
41
- ['data', 'inspect', 'ZaoWu Data Inspect', false],
42
- ['data', 'analyze', 'ZaoWu Data Analyze', false],
43
- ['data', 'clean', 'ZaoWu Data Clean', true],
44
- ['data', 'schema', 'ZaoWu Data Schema', false],
45
- ['data', 'sample', 'ZaoWu Data Sample', false],
46
- ['data', 'sheets', 'ZaoWu Data Sheets', false],
47
- ['dev', 'status', 'ZaoWu Dev Status', false],
48
- ['dev', 'review', 'ZaoWu Dev Review', true],
49
- ['dev', 'commit', 'ZaoWu Dev Commit', true],
50
- ['dev', 'sync', 'ZaoWu Dev Sync', true],
51
- ['doc', 'summary', 'ZaoWu Doc Summary', false],
52
- ['doc', 'extract', 'ZaoWu Doc Extract', false],
53
- ['doc', 'convert', 'ZaoWu Doc Convert', true],
54
- ['doc', 'outline', 'ZaoWu Doc Outline', false],
55
- ['doc', 'search', 'ZaoWu Doc Search', false],
56
- ['plugin', 'list', 'ZaoWu Plugin List', false],
57
- ['plugin', 'install', 'ZaoWu Plugin Install', true],
58
- ['plugin', 'remove', 'ZaoWu Plugin Remove', true],
59
- ['plugin', 'validate', 'ZaoWu Plugin Validate', false],
60
- ['teach', 'plan', 'ZaoWu Teach Plan', false],
61
- ['teach', 'quiz', 'ZaoWu Teach Quiz', false],
62
- ['web', 'inspect', 'ZaoWu Web Inspect', true],
63
- ['web', 'fetch', 'ZaoWu Web Fetch', true],
64
- ].map(([domain, action, title, sensitive]) => ({
48
+ ['ai', 'ask', 'ZaoWu AI Ask'],
49
+ ['ai', 'providers', 'ZaoWu AI Providers'],
50
+ ['auto', 'validate', 'ZaoWu Auto Validate'],
51
+ ['auto', 'plan', 'ZaoWu Auto Plan'],
52
+ ['auto', 'run', 'ZaoWu Auto Run'],
53
+ ['config', 'show', 'ZaoWu Config Show'],
54
+ ['config', 'path', 'ZaoWu Config Path'],
55
+ ['config', 'validate', 'ZaoWu Config Validate'],
56
+ ['config', 'get', 'ZaoWu Config Get'],
57
+ ['config', 'set', 'ZaoWu Config Set'],
58
+ ['config', 'migrate', 'ZaoWu Config Migrate'],
59
+ ['data', 'inspect', 'ZaoWu Data Inspect'],
60
+ ['data', 'analyze', 'ZaoWu Data Analyze'],
61
+ ['data', 'clean', 'ZaoWu Data Clean'],
62
+ ['data', 'schema', 'ZaoWu Data Schema'],
63
+ ['data', 'sample', 'ZaoWu Data Sample'],
64
+ ['data', 'sheets', 'ZaoWu Data Sheets'],
65
+ ['dev', 'status', 'ZaoWu Dev Status'],
66
+ ['dev', 'review', 'ZaoWu Dev Review'],
67
+ ['dev', 'commit', 'ZaoWu Dev Commit'],
68
+ ['dev', 'sync', 'ZaoWu Dev Sync'],
69
+ ['doc', 'summary', 'ZaoWu Doc Summary'],
70
+ ['doc', 'extract', 'ZaoWu Doc Extract'],
71
+ ['doc', 'convert', 'ZaoWu Doc Convert'],
72
+ ['doc', 'outline', 'ZaoWu Doc Outline'],
73
+ ['doc', 'search', 'ZaoWu Doc Search'],
74
+ ['plugin', 'list', 'ZaoWu Plugin List'],
75
+ ['plugin', 'install', 'ZaoWu Plugin Install'],
76
+ ['plugin', 'remove', 'ZaoWu Plugin Remove'],
77
+ ['plugin', 'validate', 'ZaoWu Plugin Validate'],
78
+ ['teach', 'plan', 'ZaoWu Teach Plan'],
79
+ ['teach', 'quiz', 'ZaoWu Teach Quiz'],
80
+ ['web', 'inspect', 'ZaoWu Web Inspect'],
81
+ ['web', 'fetch', 'ZaoWu Web Fetch'],
82
+ ].map(([domain, action, title]) => ({
65
83
  id: `${domain}.${action}`,
66
84
  args: [domain, action],
67
85
  helpArgs: [domain, action, '--help'],
68
86
  helpIncludes: [title, `zw ${domain} ${action}`],
69
87
  json: true,
70
- sensitive: sensitive,
88
+ // Sensitivity has exactly one source of truth: the domain package's own
89
+ // command declaration. Deriving it here removes the drift risk of two
90
+ // independent boolean tables.
91
+ sensitive: isDomainCommandSensitive(domain, action),
71
92
  schemaFile: commandSchemaFile(`${domain}.${action}`),
72
93
  })),
73
94
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"command-contracts.js","sourceRoot":"","sources":["../src/command-contracts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command-contracts.js","sourceRoot":"","sources":["../src/command-contracts.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@
4
4
  * Extracted from the original monolithic domain-handlers.ts to enable
5
5
  * per-domain handler files while sharing common helper logic.
6
6
  */
7
+ import { type AIProviderDescriptor } from '@zaowu-labs/ai';
7
8
  import { createContentOperationSubjects, createOperationPlan, hashOperationContent, ZaoWuError, type OperationPlan } from '@zaowu-labs/core';
8
9
  import { getValue, hasFlag, type ParsedArgs } from './args.js';
9
10
  import type { CliResult, CommandRunner } from './types.js';
@@ -12,7 +13,6 @@ export { getValue, hasFlag };
12
13
  export interface DomainHandlerContext {
13
14
  cwd: string;
14
15
  json: boolean;
15
- dryRun: boolean;
16
16
  expectedPlanFingerprint?: string;
17
17
  yes: boolean;
18
18
  parsed: ParsedArgs;
@@ -20,6 +20,21 @@ export interface DomainHandlerContext {
20
20
  onChunk?: (chunk: string) => void;
21
21
  }
22
22
  export type DomainActionHandler = (args: readonly string[], context: DomainHandlerContext) => Promise<CliResult>;
23
+ export interface ResolvedAiProvider {
24
+ providerId: string;
25
+ requestedModel?: string;
26
+ provider: AIProviderDescriptor;
27
+ resolvedModel: string;
28
+ networkTarget?: string;
29
+ }
30
+ /**
31
+ * Resolves the AI provider for a command: explicit `--provider` first, then
32
+ * `ai.provider` from the resolved project config, then the default provider.
33
+ * Shared by every AI-driven command so `zw ai ask`, `zw dev --ai`, and
34
+ * `zw doctor` cannot disagree about which provider a project is configured
35
+ * to use.
36
+ */
37
+ export declare const resolveAiProvider: (context: DomainHandlerContext) => Promise<ResolvedAiProvider>;
23
38
  export declare const requireTarget: (args: readonly string[], command: string) => string;
24
39
  export declare const requireSecondTarget: (args: readonly string[], command: string, name: string) => string;
25
40
  export declare const result: (context: DomainHandlerContext, payload: unknown, human: string) => CliResult;
@@ -29,7 +44,7 @@ export declare const withOperationPlan: <T extends object>(payload: T, operation
29
44
  };
30
45
  export declare const assertOperationPlanFingerprint: (context: DomainHandlerContext, operationPlan: OperationPlan) => void;
31
46
  export declare const formatList: (items: readonly string[]) => string;
32
- export declare const quoteCliValue: (value: string) => string;
47
+ export declare const formatLabeledList: (label: string, items: readonly string[] | undefined) => string;
33
48
  export declare const formatConfirmCommand: (parts: readonly string[]) => string;
34
49
  export declare const formatCounts: (items: Record<string, number>) => string;
35
50
  export declare const formatPolicy: (policy: {
@@ -1 +1 @@
1
- {"version":3,"file":"handler-utils.d.ts","sourceRoot":"","sources":["../src/handler-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handler-utils.d.ts","sourceRoot":"","sources":["../src/handler-utils.ts"],"names":[],"mappings":"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"}
@@ -4,11 +4,37 @@
4
4
  * Extracted from the original monolithic domain-handlers.ts to enable
5
5
  * per-domain handler files while sharing common helper logic.
6
6
  */
7
+ import { resolveAIModel, resolveAIProviderNetworkTarget, validateAIProviderConfig, } from '@zaowu-labs/ai';
8
+ import { loadOptionalResolvedConfig } from '@zaowu-labs/config';
7
9
  import { assertOperationPlanFingerprint as assertOperationPlanFingerprintFromCore, createContentOperationSubjects, createOperationPlan, hashOperationContent, ZaoWuError, } from '@zaowu-labs/core';
8
10
  import { getValue, hasFlag } from './args.js';
11
+ import { VALUE_OPTIONS } from './option-registry.js';
9
12
  import { createResult, stringifyJSON } from './output.js';
10
13
  export { createContentOperationSubjects, createOperationPlan, hashOperationContent, ZaoWuError, };
11
14
  export { getValue, hasFlag };
15
+ /**
16
+ * Resolves the AI provider for a command: explicit `--provider` first, then
17
+ * `ai.provider` from the resolved project config, then the default provider.
18
+ * Shared by every AI-driven command so `zw ai ask`, `zw dev --ai`, and
19
+ * `zw doctor` cannot disagree about which provider a project is configured
20
+ * to use.
21
+ */
22
+ export const resolveAiProvider = async (context) => {
23
+ let providerId = getValue(context.parsed, '--provider');
24
+ if (!providerId) {
25
+ const config = await loadOptionalResolvedConfig(context.cwd);
26
+ providerId = config?.config.ai.provider ?? undefined;
27
+ }
28
+ const requestedModel = getValue(context.parsed, '--model');
29
+ const provider = validateAIProviderConfig(providerId).provider;
30
+ return {
31
+ providerId: provider.id,
32
+ requestedModel,
33
+ provider,
34
+ resolvedModel: resolveAIModel(provider, { model: requestedModel }),
35
+ networkTarget: provider.network ? resolveAIProviderNetworkTarget(provider.id) : undefined,
36
+ };
37
+ };
12
38
  export const requireTarget = (args, command) => {
13
39
  const target = args[0];
14
40
  if (!target) {
@@ -45,8 +71,34 @@ export const assertOperationPlanFingerprint = (context, operationPlan) => {
45
71
  assertOperationPlanFingerprintFromCore(context.expectedPlanFingerprint, operationPlan, context.yes, ZaoWuError);
46
72
  };
47
73
  export const formatList = (items) => items.length > 0 ? items.map((item) => `- ${item}`).join('\n') : '- none';
48
- export const quoteCliValue = (value) => /^[A-Za-z0-9._@:/\\=-]+$/.test(value) ? value : `'${value.replaceAll("'", "''")}'`;
49
- export const formatConfirmCommand = (parts) => parts.map((part) => (part.startsWith('--') ? part : quoteCliValue(part))).join(' ');
74
+ export const formatLabeledList = (label, items) => items && items.length > 0
75
+ ? [`${label}:`, ...items.map((item) => `- ${item}`)].join('\n')
76
+ : `${label}: none`;
77
+ const quoteCliValue = (value) => value.length > 0 &&
78
+ (process.platform === 'win32' ? /^[A-Za-z0-9._@:/\\=-]+$/ : /^[A-Za-z0-9._@:/=-]+$/).test(value)
79
+ ? value
80
+ : `'${value.replaceAll("'", process.platform === 'win32' ? "''" : "'\\''")}'`;
81
+ export const formatConfirmCommand = (parts) => {
82
+ const tokens = [];
83
+ let literal = false;
84
+ for (let index = 0; index < parts.length; index += 1) {
85
+ const part = parts[index];
86
+ if (part === '--')
87
+ literal = true;
88
+ const value = parts[index + 1];
89
+ if (!literal &&
90
+ VALUE_OPTIONS.includes(part) &&
91
+ value !== undefined &&
92
+ (value.startsWith('--') || value === '-h' || value === '-V')) {
93
+ tokens.push(quoteCliValue(`${part}=${value}`));
94
+ index += 1;
95
+ }
96
+ else {
97
+ tokens.push(quoteCliValue(part));
98
+ }
99
+ }
100
+ return tokens.join(' ');
101
+ };
50
102
  export const formatCounts = (items) => {
51
103
  const lines = Object.entries(items)
52
104
  .filter(([, count]) => count > 0)
@@ -1 +1 @@
1
- {"version":3,"file":"handler-utils.js","sourceRoot":"","sources":["../src/handler-utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,8BAA8B,IAAI,sCAAsC,EACxE,8BAA8B,EAC9B,mBAAmB,EACnB,oBAAoB,EACpB,UAAU,GAEX,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAmB,MAAM,WAAW,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG1D,OAAO,EACL,8BAA8B,EAC9B,mBAAmB,EACnB,oBAAoB,EACpB,UAAU,GAEX,CAAC;AACF,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;AAkB7B,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAuB,EAAE,OAAe,EAAU,EAAE;IAChF,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAEvB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,UAAU,CAAC;YACnB,IAAI,EAAE,iBAAiB;YACvB,OAAO,EAAE,qBAAqB;YAC9B,GAAG,EAAE,KAAK,OAAO,6BAA6B;YAC9C,GAAG,EAAE,SAAS,OAAO,sCAAsC;SAC5D,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,IAAuB,EACvB,OAAe,EACf,IAAY,EACJ,EAAE;IACV,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAEvB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,UAAU,CAAC;YACnB,IAAI,EAAE,iBAAiB;YACvB,OAAO,EAAE,GAAG,IAAI,eAAe;YAC/B,GAAG,EAAE,KAAK,OAAO,YAAY,IAAI,0BAA0B;YAC3D,GAAG,EAAE,SAAS,OAAO,sCAAsC;SAC5D,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,OAA6B,EAAE,OAAgB,EAAE,KAAa,EAAa,EAAE,CAClG,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAEjE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAc,EAAU,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAEvF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,OAAU,EACV,aAA4B,EACU,EAAE,CAAC,CAAC;IAC1C,GAAG,OAAO;IACV,aAAa;CACd,CAAC,CAAC;AAEH,uEAAuE;AACvE,4DAA4D;AAC5D,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAC5C,OAA6B,EAC7B,aAA4B,EACtB,EAAE;IACR,sCAAsC,CACpC,OAAO,CAAC,uBAAuB,EAC/B,aAAa,EACb,OAAO,CAAC,GAAG,EACX,UAAU,CACX,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAwB,EAAU,EAAE,CAC7D,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AAE5E,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAa,EAAU,EAAE,CACrD,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC;AAErF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,KAAwB,EAAU,EAAE,CACvE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEtF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAA6B,EAAU,EAAE;IACpE,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;SAChC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC;SAChC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC;IAEjD,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AACxD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,MAI5B,EAAU,EAAE,CACX;IACE,YAAY,MAAM,CAAC,KAAK,EAAE;IAC1B,iBAAiB,MAAM,CAAC,UAAU,EAAE;IACpC,cAAc,MAAM,CAAC,OAAO,EAAE;CAC/B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEf,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAM7B,EAAU,EAAE,CACX;IACE,WAAW,OAAO,CAAC,IAAI,EAAE;IACzB,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,wBAAwB,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3F,oBAAoB,OAAO,CAAC,aAAa,EAAE;IAC3C,iBAAiB,OAAO,CAAC,UAAU,EAAE;IACrC,cAAc,OAAO,CAAC,OAAO,EAAE;CAChC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEf,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAS7B,EAAU,EAAE;IACX,MAAM,YAAY,GAChB,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;QAC5C,CAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE;QACvC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IACvB,MAAM,QAAQ,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9E,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE9F,OAAO,KAAK,IAAI,KAAK,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC;AAC9F,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,IAAmB,EAAU,EAAE,CACjE;IACE,iBAAiB;IACjB,SAAS,IAAI,CAAC,IAAI,EAAE;IACpB,0BAA0B,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE;IACpE,gBAAgB,IAAI,CAAC,WAAW,EAAE;IAClC,GAAG,CAAC,IAAI,CAAC,oBAAoB;QAC3B,CAAC,CAAC,CAAC,qDAAqD,IAAI,CAAC,WAAW,EAAE,CAAC;QAC3E,CAAC,CAAC,EAAE,CAAC;IACP,EAAE;IACF,WAAW;IACX,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;IACzB,EAAE;IACF,OAAO;IACP,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;IACtB,EAAE;IACF,QAAQ;IACR,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;IACvB,EAAE;IACF,SAAS;IACT,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;IACxB,EAAE;IACF,UAAU;IACV,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;IACzB,EAAE;IACF,UAAU;IACV,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;IACxB,EAAE;IACF,UAAU;IACV,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;IACxB,EAAE;IACF,QAAQ;IACR,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;CACvB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEf,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,KAAyB,EAAE,QAAgB,EAAU,EAAE;IAC1F,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IAEhD,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;AACnE,CAAC,CAAC"}
1
+ {"version":3,"file":"handler-utils.js","sourceRoot":"","sources":["../src/handler-utils.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ai-handlers.d.ts","sourceRoot":"","sources":["../../src/handlers/ai-handlers.ts"],"names":[],"mappings":"AAQA,OAAO,EAQL,KAAK,mBAAmB,EACzB,MAAM,qBAAqB,CAAC;AAE7B,eAAO,MAAM,WAAW,EAAE,mBA0IzB,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,mBA4B/B,CAAC"}
1
+ {"version":3,"file":"ai-handlers.d.ts","sourceRoot":"","sources":["../../src/handlers/ai-handlers.ts"],"names":[],"mappings":"AAOA,OAAO,EAUL,KAAK,mBAAmB,EACzB,MAAM,qBAAqB,CAAC;AAE7B,eAAO,MAAM,WAAW,EAAE,mBAqJzB,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,mBA0B/B,CAAC"}
@@ -1,18 +1,24 @@
1
- import { askAI, listAIProviders, previewAIRequest, resolveAIProviderNetworkTarget, resolveAIModel, validateAIProviderConfig, } from '@zaowu-labs/ai';
2
- import { assertOperationPlanFingerprint, createOperationPlan, formatConfirmCommand, formatOperationPlan, getValue, result, withOperationPlan, } from '../handler-utils.js';
1
+ import { askAI, listAIProviders, previewAIRequest, resolveAIRequestContentSubjects, validateAIProviderConfig, } from '@zaowu-labs/ai';
2
+ import { assertOperationPlanFingerprint, createOperationPlan, formatConfirmCommand, formatLabeledList, formatOperationPlan, getValue, resolveAiProvider, result, withOperationPlan, } from '../handler-utils.js';
3
3
  export const handleAiAsk = async (args, context) => {
4
4
  const prompt = args.join(' ').trim();
5
5
  const filePath = getValue(context.parsed, '--file');
6
- const requestedProvider = getValue(context.parsed, '--provider');
7
- const requestedModel = getValue(context.parsed, '--model');
8
- const providerValidation = validateAIProviderConfig(requestedProvider);
9
- const provider = providerValidation.provider;
10
- const resolvedModel = resolveAIModel(provider, { model: requestedModel });
11
- const networkTarget = provider.network ? resolveAIProviderNetworkTarget(provider.id) : undefined;
6
+ // Shared resolution: --provider first, then `ai.provider` from zw.yml, then
7
+ // the default — the same order `zw dev --ai` and `zw doctor` use.
8
+ const ai = await resolveAiProvider(context);
9
+ const { provider, resolvedModel, networkTarget } = ai;
10
+ // Bind the exact prompt + file payload into the plan so a preview fingerprint
11
+ // only matches a confirmed run that sends identical content.
12
+ const contentSubjects = await resolveAIRequestContentSubjects({
13
+ prompt,
14
+ filePath,
15
+ provider: ai.providerId,
16
+ model: ai.requestedModel,
17
+ });
12
18
  const operationPlan = createOperationPlan({
13
19
  risk: provider.network ? 'medium' : 'low',
14
20
  confirmationRequired: provider.network && !context.yes,
15
- subjects: [`ai:${provider.id}`, `model:${resolvedModel}`],
21
+ subjects: [`ai:${provider.id}`, `model:${resolvedModel}`, ...contentSubjects],
16
22
  reads: filePath ? [filePath] : [],
17
23
  network: networkTarget ? [networkTarget] : [],
18
24
  secrets: provider.requiredEnv,
@@ -26,8 +32,8 @@ export const handleAiAsk = async (args, context) => {
26
32
  const preview = await previewAIRequest({
27
33
  prompt,
28
34
  filePath,
29
- provider: requestedProvider,
30
- model: requestedModel,
35
+ provider: ai.providerId,
36
+ model: ai.requestedModel,
31
37
  });
32
38
  const payload = {
33
39
  schemaVersion: preview.schemaVersion,
@@ -40,17 +46,22 @@ export const handleAiAsk = async (args, context) => {
40
46
  usage: null,
41
47
  validation: preview.validation,
42
48
  };
49
+ // Pin the RESOLVED provider id, so a confirm command copied from a preview
50
+ // whose provider came from `zw.yml` keeps working even if the config
51
+ // changes in between (the fingerprint would reject the mismatch anyway).
43
52
  const confirmCommand = formatConfirmCommand([
44
53
  'zw',
45
54
  'ai',
46
55
  'ask',
47
- ...args,
48
56
  ...(filePath ? ['--file', filePath] : []),
49
- ...(requestedProvider ? ['--provider', requestedProvider] : []),
50
- ...(requestedModel ? ['--model', requestedModel] : []),
57
+ '--provider',
58
+ ai.providerId,
59
+ ...(ai.requestedModel ? ['--model', ai.requestedModel] : []),
51
60
  '--yes',
52
61
  '--plan-fingerprint',
53
62
  operationPlan.fingerprint,
63
+ '--',
64
+ ...args,
54
65
  ]);
55
66
  const human = [
56
67
  'ZaoWu AI Ask',
@@ -90,8 +101,8 @@ export const handleAiAsk = async (args, context) => {
90
101
  const response = await askAI({
91
102
  prompt,
92
103
  filePath,
93
- provider: requestedProvider,
94
- model: requestedModel,
104
+ provider: ai.providerId,
105
+ model: ai.requestedModel,
95
106
  allowNetwork: context.yes,
96
107
  onChunk: (chunk) => {
97
108
  streamedAnyChunk = true;
@@ -110,8 +121,8 @@ export const handleAiAsk = async (args, context) => {
110
121
  const response = await askAI({
111
122
  prompt,
112
123
  filePath,
113
- provider: requestedProvider,
114
- model: requestedModel,
124
+ provider: ai.providerId,
125
+ model: ai.requestedModel,
115
126
  allowNetwork: context.yes,
116
127
  });
117
128
  const payload = response;
@@ -150,9 +161,7 @@ export const handleAiProviders = async (_args, context) => {
150
161
  return `- ${provider.id}: ${provider.name} (${flags.join(', ')})`;
151
162
  }),
152
163
  '',
153
- validation?.warnings.length
154
- ? ['Warnings:', ...validation.warnings.map((warning) => `- ${warning}`)].join('\n')
155
- : 'Warnings: none',
164
+ formatLabeledList('Warnings', validation?.warnings),
156
165
  ].join('\n');
157
166
  return result(context, payload, human);
158
167
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ai-handlers.js","sourceRoot":"","sources":["../../src/handlers/ai-handlers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ai-handlers.js","sourceRoot":"","sources":["../../src/handlers/ai-handlers.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"auto-handlers.d.ts","sourceRoot":"","sources":["../../src/handlers/auto-handlers.ts"],"names":[],"mappings":"AACA,OAAO,EASL,KAAK,mBAAmB,EACzB,MAAM,qBAAqB,CAAC;AAE7B,eAAO,MAAM,kBAAkB,EAAE,mBAuBhC,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,mBA4E3B,CAAC;AAkBF,eAAO,MAAM,cAAc,EAAE,mBAwB5B,CAAC"}
1
+ {"version":3,"file":"auto-handlers.d.ts","sourceRoot":"","sources":["../../src/handlers/auto-handlers.ts"],"names":[],"mappings":"AACA,OAAO,EAUL,KAAK,mBAAmB,EACzB,MAAM,qBAAqB,CAAC;AAE7B,eAAO,MAAM,kBAAkB,EAAE,mBAqBhC,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,mBA4E3B,CAAC;AAkBF,eAAO,MAAM,cAAc,EAAE,mBAsB5B,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { planWorkflowFile, runWorkflowPlan, validateWorkflowFile } from '@zaowu-labs/auto';
2
- import { assertOperationPlanFingerprint, createOperationPlan, formatOperationPlan, formatPolicy, formatSandbox, requireTarget, result, withOperationPlan, } from '../handler-utils.js';
2
+ import { assertOperationPlanFingerprint, createOperationPlan, formatLabeledList, formatOperationPlan, formatPolicy, formatSandbox, requireTarget, result, withOperationPlan, } from '../handler-utils.js';
3
3
  export const handleAutoValidate = async (args, context) => {
4
4
  const target = requireTarget(args, 'zw auto validate');
5
5
  const validation = await validateWorkflowFile(target);
@@ -17,9 +17,7 @@ export const handleAutoValidate = async (args, context) => {
17
17
  'Sandbox:',
18
18
  formatSandbox(validation.sandbox),
19
19
  '',
20
- validation.warnings.length > 0
21
- ? ['Warnings:', ...validation.warnings.map((warning) => `- ${warning}`)].join('\n')
22
- : 'Warnings: none',
20
+ formatLabeledList('Warnings', validation.warnings),
23
21
  ].join('\n');
24
22
  return result(context, validation, human);
25
23
  };
@@ -123,9 +121,7 @@ export const handleAutoPlan = async (args, context) => {
123
121
  '',
124
122
  ...plan.steps.map((step) => formatAutoPlanStep(step)),
125
123
  '',
126
- plan.warnings.length > 0
127
- ? ['Warnings:', ...plan.warnings.map((warning) => `- ${warning}`)].join('\n')
128
- : 'Warnings: none',
124
+ formatLabeledList('Warnings', plan.warnings),
129
125
  ].join('\n');
130
126
  return result(context, plan, human);
131
127
  };