@inf-monkeys-tech/monkeys-cli 0.11.6 → 0.12.0

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 (104) hide show
  1. package/README.md +11 -8
  2. package/README.zh.md +11 -8
  3. package/bin/run.js +4 -52
  4. package/bin/update-cache.js +3 -1
  5. package/dist/cli/run.d.ts +2 -0
  6. package/dist/cli/run.d.ts.map +1 -0
  7. package/dist/cli/run.js +45 -0
  8. package/dist/cli/run.js.map +1 -0
  9. package/dist/command/metadata.d.ts +1 -2
  10. package/dist/command/metadata.d.ts.map +1 -1
  11. package/dist/command/metadata.js +4 -13
  12. package/dist/command/metadata.js.map +1 -1
  13. package/dist/commands/dev-agent/work/watch.d.ts.map +1 -1
  14. package/dist/commands/dev-agent/work/watch.js +4 -7
  15. package/dist/commands/dev-agent/work/watch.js.map +1 -1
  16. package/dist/commands/execution/watch.d.ts.map +1 -1
  17. package/dist/commands/execution/watch.js +4 -7
  18. package/dist/commands/execution/watch.js.map +1 -1
  19. package/dist/commands/install.d.ts +12 -0
  20. package/dist/commands/install.d.ts.map +1 -0
  21. package/dist/commands/install.js +66 -0
  22. package/dist/commands/install.js.map +1 -0
  23. package/dist/commands/update.d.ts +3 -0
  24. package/dist/commands/update.d.ts.map +1 -1
  25. package/dist/commands/update.js +68 -3
  26. package/dist/commands/update.js.map +1 -1
  27. package/dist/config/index.d.ts +0 -1
  28. package/dist/config/index.d.ts.map +1 -1
  29. package/dist/config/index.js +0 -1
  30. package/dist/config/index.js.map +1 -1
  31. package/dist/config/local-command.d.ts +0 -2
  32. package/dist/config/local-command.d.ts.map +1 -1
  33. package/dist/config/local-command.js +8 -14
  34. package/dist/config/local-command.js.map +1 -1
  35. package/dist/config/registry.d.ts.map +1 -1
  36. package/dist/config/registry.js +2 -12
  37. package/dist/config/registry.js.map +1 -1
  38. package/dist/config/store.d.ts.map +1 -1
  39. package/dist/config/store.js +46 -5
  40. package/dist/config/store.js.map +1 -1
  41. package/dist/contracts/result.d.ts +1 -1
  42. package/dist/contracts/result.js +1 -1
  43. package/dist/contracts/version.d.ts +2 -2
  44. package/dist/contracts/version.js +2 -2
  45. package/dist/errors/cli-error.d.ts +3 -0
  46. package/dist/errors/cli-error.d.ts.map +1 -1
  47. package/dist/errors/cli-error.js +17 -0
  48. package/dist/errors/cli-error.js.map +1 -1
  49. package/dist/output/render.js +1 -1
  50. package/dist/schema/command-schema.d.ts +2 -1
  51. package/dist/schema/command-schema.d.ts.map +1 -1
  52. package/dist/schema/command-schema.js +2 -1
  53. package/dist/schema/command-schema.js.map +1 -1
  54. package/dist/security/redact.d.ts.map +1 -1
  55. package/dist/security/redact.js +16 -2
  56. package/dist/security/redact.js.map +1 -1
  57. package/dist/skills/content.d.ts +1 -0
  58. package/dist/skills/content.d.ts.map +1 -1
  59. package/dist/skills/content.js +2 -2
  60. package/dist/skills/content.js.map +1 -1
  61. package/dist/skills/state.d.ts +33 -7
  62. package/dist/skills/state.d.ts.map +1 -1
  63. package/dist/skills/state.js +103 -14
  64. package/dist/skills/state.js.map +1 -1
  65. package/dist/skills/sync.d.ts +5 -2
  66. package/dist/skills/sync.d.ts.map +1 -1
  67. package/dist/skills/sync.js +110 -9
  68. package/dist/skills/sync.js.map +1 -1
  69. package/dist/transport/http-client.d.ts.map +1 -1
  70. package/dist/transport/http-client.js +46 -20
  71. package/dist/transport/http-client.js.map +1 -1
  72. package/dist/transport/url-policy.d.ts +2 -0
  73. package/dist/transport/url-policy.d.ts.map +1 -0
  74. package/dist/transport/url-policy.js +33 -0
  75. package/dist/transport/url-policy.js.map +1 -0
  76. package/dist/update/finalize.d.ts +26 -0
  77. package/dist/update/finalize.d.ts.map +1 -0
  78. package/dist/update/finalize.js +5 -0
  79. package/dist/update/finalize.js.map +1 -0
  80. package/dist/update/installation.d.ts +17 -0
  81. package/dist/update/installation.d.ts.map +1 -0
  82. package/dist/update/installation.js +63 -0
  83. package/dist/update/installation.js.map +1 -0
  84. package/dist/update/notifier.d.ts +4 -4
  85. package/dist/update/notifier.d.ts.map +1 -1
  86. package/dist/update/notifier.js +68 -39
  87. package/dist/update/notifier.js.map +1 -1
  88. package/dist/update/process.d.ts +11 -0
  89. package/dist/update/process.d.ts.map +1 -0
  90. package/dist/update/process.js +20 -0
  91. package/dist/update/process.js.map +1 -0
  92. package/dist/update/updater.d.ts +12 -13
  93. package/dist/update/updater.d.ts.map +1 -1
  94. package/dist/update/updater.js +149 -59
  95. package/dist/update/updater.js.map +1 -1
  96. package/oclif.manifest.json +235 -2811
  97. package/package.json +5 -13
  98. package/skills/monkeys-shared/SKILL.md +1 -1
  99. package/skills/monkeys-shared/references/compatibility.md +2 -2
  100. package/bin/install-wizard.js +0 -77
  101. package/dist/config/fast-subscription-list.d.ts +0 -6
  102. package/dist/config/fast-subscription-list.d.ts.map +0 -1
  103. package/dist/config/fast-subscription-list.js +0 -19
  104. package/dist/config/fast-subscription-list.js.map +0 -1
package/README.md CHANGED
@@ -131,7 +131,7 @@ monkeys auth login \
131
131
  | [`monkeys-system-config`](skills/monkeys-system-config/SKILL.md) | Kernel System Config |
132
132
  | [`monkeys-openapi`](skills/monkeys-openapi/SKILL.md) | Schema inspection and controlled OpenAPI fallback |
133
133
 
134
- The installer always installs every Skill from the current npm package and records the CLI version plus Skill checksums. Inspect or repair drift at any time:
134
+ The installer globally installs the exact CLI release that is executing it, removes obsolete official Skills, verifies every actual Agent-discovered Skill path and checksum, and only then records ownership. Inspect or repair drift at any time:
135
135
 
136
136
  ```bash
137
137
  monkeys version check --output json
@@ -193,20 +193,23 @@ Every normal CLI invocation reads a local update cache. When npm `latest` is new
193
193
  Update available: 0.10.2 → 0.10.3. Run `monkeys update` to install.
194
194
  ```
195
195
 
196
- The cache is refreshed from npm in a detached background process at most once every 24 hours, so update discovery does not delay the requested command. CI environments, non-release builds, and processes with `MONKEYS_CLI_NO_UPDATE_NOTIFIER=1` skip the notifier.
196
+ The cache is refreshed through the owning npm/pnpm registry configuration in a detached background process at most once every 24 hours, so update discovery does not delay the requested command. This respects enterprise registry and proxy settings. CI environments, non-release builds, and processes with `MONKEYS_CLI_NO_UPDATE_NOTIFIER=1` skip the notifier.
197
197
 
198
198
  ```bash
199
199
  # Check only; makes no installation changes
200
200
  monkeys update --check --output json
201
201
 
202
- # Upgrade the global npm package and sync all matching bundled Skills
202
+ # Upgrade the npm/pnpm-owned global package and verify all matching bundled Skills
203
203
  monkeys update
204
204
 
205
- # Reinstall the current latest CLI and retry Skill synchronization
205
+ # Validate the exact update plan without changing anything
206
+ monkeys update --dry-run
207
+
208
+ # Reinstall the current latest CLI and Skills
206
209
  monkeys update --force
207
210
  ```
208
211
 
209
- Running bare `monkeys` in an interactive terminal also offers an optional `[y/N]` upgrade prompt. The update command always resolves the target version live from npm instead of trusting the cached notice.
212
+ Running bare `monkeys` in an interactive terminal also offers an optional `[y/N]` upgrade prompt. The update command always resolves the target version live through the owning package manager instead of trusting the cached notice. It updates only installations actually owned by npm or pnpm, verifies the exact PATH binary and all actual Skills, and rolls back to the exact previous CLI version if final verification fails.
210
213
 
211
214
  ## Command System
212
215
 
@@ -268,7 +271,7 @@ monkeys workflow list --subscription customer-a --page-token <next-page-token> -
268
271
 
269
272
  ### Structured Output
270
273
 
271
- JSON is the default for automation and Agents; long-running status watches use NDJSON. `--format pretty|table|csv|ndjson|text` changes presentation, `--jq` filters the full JSON envelope, and `--output` remains a compatibility alias. Successful results go to stdout with exit code `0`. Errors use a fixed non-zero exit code.
274
+ JSON is the default for automation and Agents; long-running status watches use NDJSON. `--output json|pretty|table|csv|ndjson|text` selects the presentation, and `--jq` filters successful JSON envelopes. Successful results go only to stdout with exit code `0`; all structured errors go only to stderr with a fixed non-zero exit code and are never filtered by `--jq`.
272
275
 
273
276
  ```json
274
277
  {
@@ -276,7 +279,7 @@ JSON is the default for automation and Agents; long-running status watches use N
276
279
  "data": {},
277
280
  "meta": {
278
281
  "command": "workflow list",
279
- "schemaVersion": "1",
282
+ "schemaVersion": "2",
280
283
  "timestamp": "..."
281
284
  }
282
285
  }
@@ -339,4 +342,4 @@ bun run verify
339
342
 
340
343
  `bun run verify` covers formatting, types, unit and contract tests, build, CLI/Skill compatibility, npm installation smoke tests, and performance gates.
341
344
 
342
- Every default-branch push uses GitLab CI to calculate the smallest patch version and publish it to npm `latest`, then creates the matching `vX.Y.Z` Git tag and GitLab Release. Do not run `npm publish` locally.
345
+ Every push that adds a commit to the default branch automatically publishes one stable release. GitLab CI serializes releases in commit order, selects the committed `package.json` version when it is newer than npm or otherwise increments the latest stable patch, records the source commit in the npm package, builds and verifies one tarball, publishes those exact bytes to npm `latest`, creates the matching Git tag and GitLab Release, and runs the AI changelog. Feature-branch pushes run verification only. Never run `npm publish` locally.
package/README.zh.md CHANGED
@@ -126,12 +126,12 @@ monkeys auth login \
126
126
  | [`monkeys-shared`](skills/monkeys-shared/SKILL.md) | Subscription、Context、Team、Identity、输出、安全、错误与版本规则 |
127
127
  | [`monkeys-auth`](skills/monkeys-auth/SKILL.md) | 浏览器登录与 API Key 认证 |
128
128
  | [`monkeys-workflow`](skills/monkeys-workflow/SKILL.md) | Workflow、Execution 与文件 |
129
- | [`monkeys-agent-work`](skills/monkeys-agent-work/SKILL.md) | Kernel Agent Work 全生命周期 |
129
+ | [`monkeys-dev-agent-work`](skills/monkeys-dev-agent-work/SKILL.md) | Dev Agent Work 全生命周期 |
130
130
  | [`monkeys-data`](skills/monkeys-data/SKILL.md) | Ontology、Data、治理与迁移 |
131
131
  | [`monkeys-system-config`](skills/monkeys-system-config/SKILL.md) | Kernel System Config |
132
132
  | [`monkeys-openapi`](skills/monkeys-openapi/SKILL.md) | Schema 与受控 OpenAPI 降级 |
133
133
 
134
- 安装向导始终从当前 npm 包安装全部 Skills,并记录 CLI 版本与 Skill 校验和。可随时查看或修复漂移:
134
+ 安装命令会全局安装正在执行的精确 CLI 版本,删除废弃的官方 Skill,逐个验证 Agent 实际发现路径和内容校验和,全部成功后才记录所有权。可随时查看或修复漂移:
135
135
 
136
136
  ```bash
137
137
  monkeys version check --output json
@@ -181,20 +181,23 @@ monkeys subscription test --name <subscription-name> --output json
181
181
  Update available: 0.10.2 → 0.10.3. Run `monkeys update` to install.
182
182
  ```
183
183
 
184
- CLI 最多每 24 小时在独立后台进程中刷新一次 npm 缓存,不会因版本查询拖慢当前命令。CI、非发布版本以及设置了 `MONKEYS_CLI_NO_UPDATE_NOTIFIER=1` 的进程不会检查更新。
184
+ CLI 最多每 24 小时通过所属 npm/pnpm 的 registry 与代理配置在独立后台进程中刷新一次缓存,不会因版本查询拖慢当前命令。CI、非发布版本以及设置了 `MONKEYS_CLI_NO_UPDATE_NOTIFIER=1` 的进程不会检查更新。
185
185
 
186
186
  ```bash
187
187
  # 只检查,不执行安装
188
188
  monkeys update --check --output json
189
189
 
190
- # 升级全局 npm 包,并同步新包中匹配版本的 Skill
190
+ # 升级由 npm/pnpm 实际拥有的全局包,并验证全部匹配 Skill
191
191
  monkeys update
192
192
 
193
- # 强制重装当前最新版,并重试 Skill 同步
193
+ # 只校验并输出精确升级计划,不执行修改
194
+ monkeys update --dry-run
195
+
196
+ # 强制重装当前最新版和 Skills
194
197
  monkeys update --force
195
198
  ```
196
199
 
197
- 在交互式终端裸运行 `monkeys` 时,还会显示可选的 `[y/N]` 升级询问。执行升级时始终从 npm 实时解析目标版本,不会直接信任缓存中的提示版本。
200
+ 在交互式终端裸运行 `monkeys` 时,还会显示可选的 `[y/N]` 升级询问。执行升级时始终通过所属包管理器实时解析目标版本,不会直接信任缓存;只更新由 npm 或 pnpm 实际拥有的安装,并验证 PATH 中生效的精确 CLI 与实际 Skills,最终验证失败时回滚到精确旧版本。
198
201
 
199
202
  ## 命令体系
200
203
 
@@ -255,7 +258,7 @@ monkeys workflow list --subscription customer-a --page-token <next-page-token> -
255
258
  "data": {},
256
259
  "meta": {
257
260
  "command": "workflow list",
258
- "schemaVersion": "1",
261
+ "schemaVersion": "2",
259
262
  "timestamp": "..."
260
263
  }
261
264
  }
@@ -318,7 +321,7 @@ bun run verify
318
321
 
319
322
  `bun run verify` 包含格式、类型、单元与合同测试、构建、CLI/Skill 兼容检查、npm 安装冒烟和性能门禁。
320
323
 
321
- 默认分支 push 会通过 GitLab CI 自动计算最小 patch 版本并发布到 npm `latest`,随后创建同版本的 `vX.Y.Z` Git tag 和 GitLab Release。本地不得直接执行 `npm publish`。
324
+ 默认分支每增加一个提交都会自动发布一个稳定版本。GitLab CI 按提交顺序串行发版:当源码中的 `package.json` 版本高于 npm 时使用该版本,否则在 npm 最新稳定版本上递增 patch;发布包会记录源提交,并且流水线只构建一个 tarball、安装验证并把同一字节发布到 npm `latest`,随后创建同版本 Git tag、GitLab Release 和 AI changelog。功能分支 push 只执行验证。本地不得执行 `npm publish`。
322
325
 
323
326
  ## License
324
327
 
package/bin/run.js CHANGED
@@ -4,16 +4,8 @@ import { readFile } from 'node:fs/promises';
4
4
  import { createInterface } from 'node:readline/promises';
5
5
 
6
6
  const args = process.argv.slice(2);
7
- const install = args.length === 1 && args[0] === 'install';
7
+ const install = args[0] === 'install';
8
8
  const update = args[0] === 'update';
9
- const fastVersion =
10
- args[0] === 'version' &&
11
- args[1] === 'show' &&
12
- (args.length === 2 || (args.length === 4 && args[2] === '--output' && ['json', 'text'].includes(args[3])));
13
- const fastSubscriptionList =
14
- args[0] === 'subscription' &&
15
- args[1] === 'list' &&
16
- (args.length === 2 || (args.length === 4 && args[2] === '--output' && ['json', 'text'].includes(args[3])));
17
9
 
18
10
  let packageJson;
19
11
  let updateNotice;
@@ -28,7 +20,7 @@ if (args.length === 0 && updateNotice && process.stdin.isTTY && process.stdout.i
28
20
  const prompt = createInterface({ input: process.stdin, output: process.stderr });
29
21
  try {
30
22
  const answer = await prompt.question(`A newer monkeys CLI is available (current ${updateNotice.current}). Upgrade now? [y/N]: `);
31
- if (['y', 'yes'].includes(answer.trim().toLowerCase())) process.argv.splice(2, 0, 'update');
23
+ if (['y', 'yes'].includes(answer.trim().toLowerCase())) args.splice(0, args.length, 'update');
32
24
  } finally {
33
25
  prompt.close();
34
26
  }
@@ -37,45 +29,5 @@ if (args.length === 0 && updateNotice && process.stdin.isTTY && process.stdout.i
37
29
  }
38
30
  }
39
31
 
40
- if (install) {
41
- const { runInstallWizardCli } = await import('./install-wizard.js');
42
- await runInstallWizardCli();
43
- } else if (fastVersion) {
44
- const { BUNDLED_SKILL_MINIMUM_CLI_VERSION, BUNDLED_SKILL_NAMES, COMMAND_SCHEMA_MAJOR } = await import('../dist/contracts/version.js');
45
- const data = {
46
- cliVersion: packageJson.version,
47
- commandSchemaMajor: COMMAND_SCHEMA_MAJOR,
48
- nodeVersion: process.version,
49
- platform: `${process.platform}-${process.arch}`,
50
- skills: { minimumCliVersion: BUNDLED_SKILL_MINIMUM_CLI_VERSION, names: BUNDLED_SKILL_NAMES },
51
- };
52
- const outputIndex = args.indexOf('--output');
53
- const output = outputIndex >= 0 ? args[outputIndex + 1] : 'json';
54
- if (output === 'json') {
55
- process.stdout.write(
56
- `${JSON.stringify({
57
- ...(updateNotice ? { _notice: { update: updateNotice } } : {}),
58
- data,
59
- meta: { command: 'version show', schemaVersion: '1', timestamp: new Date().toISOString() },
60
- ok: true,
61
- })}\n`,
62
- );
63
- } else {
64
- process.stdout.write(`${JSON.stringify(data, null, 2)}\n`);
65
- if (updateNotice) {
66
- process.stdout.write(
67
- `\nUpdate available: ${updateNotice.current} → ${updateNotice.latest}. Run \`${updateNotice.command}\` to install.\n`,
68
- );
69
- }
70
- }
71
- } else if (fastSubscriptionList) {
72
- const { renderFastSubscriptionList } = await import('../dist/config/fast-subscription-list.js');
73
- const outputIndex = args.indexOf('--output');
74
- const result = await renderFastSubscriptionList(outputIndex >= 0 ? args[outputIndex + 1] : 'json');
75
- process.stdout.write(`${result.text}\n`);
76
- process.exitCode = result.exitCode;
77
- } else {
78
- const { execute } = await import('@oclif/core');
79
-
80
- await execute({ dir: import.meta.url });
81
- }
32
+ const { runCli } = await import('../dist/cli/run.js');
33
+ process.exitCode = await runCli(args, import.meta.url);
@@ -2,6 +2,8 @@
2
2
 
3
3
  const currentVersion = process.argv[2];
4
4
  if (currentVersion) {
5
+ const { detectCliInstallation } = await import('../dist/update/installation.js');
5
6
  const { refreshUpdateCache } = await import('../dist/update/notifier.js');
6
- await refreshUpdateCache(currentVersion);
7
+ const installation = await detectCliInstallation({ entryPath: new URL(import.meta.url).pathname });
8
+ await refreshUpdateCache(currentVersion, { manager: installation.method === 'manual' ? 'npm' : installation.method });
7
9
  }
@@ -0,0 +1,2 @@
1
+ export declare function runCli(argv: string[], dir: string): Promise<number>;
2
+ //# sourceMappingURL=run.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"AA+BA,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAYzE"}
@@ -0,0 +1,45 @@
1
+ import { flush } from '@oclif/core/flush';
2
+ import { run } from '@oclif/core/run';
3
+ import { errorResult } from '../contracts/result.js';
4
+ import { asCliError, CliError, EXIT_CODES } from '../errors/cli-error.js';
5
+ import { OUTPUT_FORMATS, renderResult } from '../output/render.js';
6
+ import { redactValue } from '../security/redact.js';
7
+ function optionValue(argv, name) {
8
+ for (let index = 0; index < argv.length; index += 1) {
9
+ if (argv[index] === `--${name}`)
10
+ return argv[index + 1];
11
+ if (argv[index]?.startsWith(`--${name}=`))
12
+ return argv[index].slice(name.length + 3);
13
+ }
14
+ }
15
+ function requestedFormat(argv) {
16
+ const candidate = optionValue(argv, 'output') ?? 'json';
17
+ return OUTPUT_FORMATS.includes(candidate) ? candidate : 'json';
18
+ }
19
+ function normalizeRootError(error) {
20
+ if (error instanceof CliError)
21
+ return error;
22
+ if (error instanceof Error && error.name !== 'ExitError') {
23
+ return new CliError(error.message || 'The CLI invocation is invalid.', {
24
+ cause: error,
25
+ code: 'CLI_USAGE_ERROR',
26
+ exitCode: EXIT_CODES.validation,
27
+ });
28
+ }
29
+ return asCliError(error);
30
+ }
31
+ export async function runCli(argv, dir) {
32
+ try {
33
+ await run(argv, dir);
34
+ flush();
35
+ return EXIT_CODES.success;
36
+ }
37
+ catch (error) {
38
+ const cliError = normalizeRootError(error);
39
+ const result = redactValue(errorResult(cliError.toErrorDetail(), { command: cliError.command ?? 'cli' }));
40
+ process.stderr.write(`${renderResult(result, requestedFormat(argv))}\n`);
41
+ flush();
42
+ return cliError.exitCode;
43
+ }
44
+ }
45
+ //# sourceMappingURL=run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,YAAY,EAAqB,MAAM,qBAAqB,CAAC;AACtF,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,SAAS,WAAW,CAAC,IAAc,EAAE,IAAY;IAC/C,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpD,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,EAAE;YAAE,OAAO,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QACxD,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,KAAK,IAAI,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC,KAAK,CAAE,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACxF,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,IAAc;IACrC,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC;IACxD,OAAQ,cAAoC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAE,SAA0B,CAAC,CAAC,CAAC,MAAM,CAAC;AAC1G,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc;IACxC,IAAI,KAAK,YAAY,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QACzD,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,OAAO,IAAI,gCAAgC,EAAE;YACrE,KAAK,EAAE,KAAK;YACZ,IAAI,EAAE,iBAAiB;YACvB,QAAQ,EAAE,UAAU,CAAC,UAAU;SAChC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,IAAc,EAAE,GAAW;IACtD,IAAI,CAAC;QACH,MAAM,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACrB,KAAK,EAAE,CAAC;QACR,OAAO,UAAU,CAAC,OAAO,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,QAAQ,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC;QAC1G,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,MAAwC,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;QAC3G,KAAK,EAAE,CAAC;QACR,OAAO,QAAQ,CAAC,QAAQ,CAAC;IAC3B,CAAC;AACH,CAAC"}
@@ -3,9 +3,8 @@ export interface CommandMetadata {
3
3
  confirmationMode: 'conditional' | 'none' | 'required' | 'runtime';
4
4
  confirmationEnforcement: 'generic' | 'native' | 'none';
5
5
  confirmationRequired: boolean;
6
- dryRun: 'generic' | 'native';
6
+ dryRun: 'native' | 'none';
7
7
  risk: RiskLevel;
8
8
  }
9
9
  export declare function getCommandMetadata(command: string): CommandMetadata;
10
- export declare function genericDryRunPreview(command: string): Record<string, unknown>;
11
10
  //# sourceMappingURL=metadata.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/command/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,WAAW,eAAe;IAC9B,gBAAgB,EAAE,aAAa,GAAG,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;IAClE,uBAAuB,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;IACvD,oBAAoB,EAAE,OAAO,CAAC;IAC9B,MAAM,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC7B,IAAI,EAAE,SAAS,CAAC;CACjB;AA6GD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAiCnE;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAU7E"}
1
+ {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/command/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,WAAW,eAAe;IAC9B,gBAAgB,EAAE,aAAa,GAAG,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;IAClE,uBAAuB,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;IACvD,oBAAoB,EAAE,OAAO,CAAC;IAC9B,MAAM,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC1B,IAAI,EAAE,SAAS,CAAC;CACjB;AA+GD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAiCnE"}
@@ -9,6 +9,8 @@ const NATIVE_DRY_RUN_COMMANDS = new Set([
9
9
  'workflow delete',
10
10
  'workflow import',
11
11
  'workflow update',
12
+ 'update',
13
+ 'install',
12
14
  ]);
13
15
  const READ_VERBS = new Set([
14
16
  'check',
@@ -120,7 +122,7 @@ export function getCommandMetadata(command) {
120
122
  ? 'runtime'
121
123
  : NATIVE_CONDITIONAL_CONFIRMATION.has(normalized)
122
124
  ? 'conditional'
123
- : NATIVE_REQUIRED_CONFIRMATION.has(normalized) || risk === 'destructive' || risk === 'privileged'
125
+ : NATIVE_REQUIRED_CONFIRMATION.has(normalized) || risk === 'credential' || risk === 'destructive' || risk === 'privileged'
124
126
  ? 'required'
125
127
  : 'none';
126
128
  const confirmationEnforcement = NATIVE_REQUIRED_CONFIRMATION.has(normalized) || NATIVE_CONDITIONAL_CONFIRMATION.has(normalized) || normalized === 'api call'
@@ -132,19 +134,8 @@ export function getCommandMetadata(command) {
132
134
  confirmationEnforcement,
133
135
  confirmationMode,
134
136
  confirmationRequired: confirmationMode === 'required',
135
- dryRun: NATIVE_DRY_RUN_COMMANDS.has(normalized) ? 'native' : 'generic',
137
+ dryRun: NATIVE_DRY_RUN_COMMANDS.has(normalized) ? 'native' : 'none',
136
138
  risk,
137
139
  };
138
140
  }
139
- export function genericDryRunPreview(command) {
140
- const metadata = getCommandMetadata(command);
141
- return {
142
- command,
143
- confirmationMode: metadata.confirmationMode,
144
- confirmationRequired: metadata.confirmationRequired,
145
- dryRun: true,
146
- risk: metadata.risk,
147
- wouldExecute: false,
148
- };
149
- }
150
141
  //# sourceMappingURL=metadata.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/command/metadata.ts"],"names":[],"mappings":"AAUA,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC;IACtC,cAAc;IACd,YAAY;IACZ,yBAAyB;IACzB,6BAA6B;IAC7B,mBAAmB;IACnB,sBAAsB;IACtB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;CAClB,CAAC,CAAC;AAEH,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC;IACzB,OAAO;IACP,SAAS;IACT,UAAU;IACV,QAAQ;IACR,QAAQ;IACR,KAAK;IACL,SAAS;IACT,MAAM;IACN,UAAU;IACV,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,QAAQ;IACR,MAAM;IACN,UAAU;IACV,SAAS;IACT,MAAM;IACN,OAAO;IACP,QAAQ;CACT,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAG,CAAC,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,qBAAqB,CAAC,CAAC;AACrG,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC;AAC7D,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC;IAClC,gCAAgC;IAChC,2BAA2B;IAC3B,sBAAsB;IACtB,+BAA+B;IAC/B,6BAA6B;IAC7B,cAAc;IACd,YAAY;IACZ,mBAAmB;IACnB,yBAAyB;IACzB,gCAAgC;IAChC,oBAAoB;IACpB,oBAAoB;IACpB,sBAAsB;IACtB,sBAAsB;IACtB,sBAAsB;IACtB,gCAAgC;CACjC,CAAC,CAAC;AACH,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;AACxD,MAAM,4BAA4B,GAAG,IAAI,GAAG,CAAC;IAC3C,gCAAgC;IAChC,2BAA2B;IAC3B,uBAAuB;IACvB,sBAAsB;IACtB,+BAA+B;IAC/B,6BAA6B;IAC7B,cAAc;IACd,YAAY;IACZ,mBAAmB;IACnB,mBAAmB;IACnB,yBAAyB;IACzB,gCAAgC;IAChC,oBAAoB;IACpB,oBAAoB;IACpB,uBAAuB;IACvB,sBAAsB;IACtB,sBAAsB;IACtB,sBAAsB;IACtB,iBAAiB;IACjB,uBAAuB;IACvB,gCAAgC;IAChC,kBAAkB;IAClB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;CAClB,CAAC,CAAC;AACH,MAAM,+BAA+B,GAAG,IAAI,GAAG,CAAC;IAC9C,eAAe;IACf,gCAAgC;IAChC,mBAAmB;IACnB,2BAA2B;IAC3B,sBAAsB;IACtB,eAAe;CAChB,CAAC,CAAC;AACH,MAAM,2BAA2B,GAAG,IAAI,GAAG,CAAC;IAC1C,eAAe;IACf,gCAAgC;IAChC,mBAAmB;IACnB,2BAA2B;IAC3B,sBAAsB;IACtB,eAAe;IACf,WAAW;CACZ,CAAC,CAAC;AAEH,SAAS,WAAW,CAAC,OAAe;IAClC,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAChD,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACvD,IAAI,IAAe,CAAC;IAEpB,IAAI,mBAAmB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAAE,IAAI,GAAG,YAAY,CAAC;SAC/H,IAAI,mBAAmB,CAAC,GAAG,CAAC,UAAU,CAAC;QAAE,IAAI,GAAG,YAAY,CAAC;SAC7D,IAAI,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,IAAI,GAAG,aAAa,CAAC;SAC3G,IAAI,2BAA2B,CAAC,GAAG,CAAC,UAAU,CAAC;QAAE,IAAI,GAAG,eAAe,CAAC;SACxE,IAAI,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAAE,IAAI,GAAG,MAAM,CAAC;;QAC3D,IAAI,GAAG,eAAe,CAAC;IAE5B,MAAM,gBAAgB,GACpB,UAAU,KAAK,UAAU;QACvB,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,+BAA+B,CAAC,GAAG,CAAC,UAAU,CAAC;YAC/C,CAAC,CAAC,aAAa;YACf,CAAC,CAAC,4BAA4B,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,IAAI,KAAK,aAAa,IAAI,IAAI,KAAK,YAAY;gBAC/F,CAAC,CAAC,UAAU;gBACZ,CAAC,CAAC,MAAM,CAAC;IACjB,MAAM,uBAAuB,GAC3B,4BAA4B,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,+BAA+B,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,UAAU,KAAK,UAAU;QAC1H,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,gBAAgB,KAAK,UAAU;YAC/B,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,MAAM,CAAC;IAEf,OAAO;QACL,uBAAuB;QACvB,gBAAgB;QAChB,oBAAoB,EAAE,gBAAgB,KAAK,UAAU;QACrD,MAAM,EAAE,uBAAuB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;QACtE,IAAI;KACL,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,OAAe;IAClD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC7C,OAAO;QACL,OAAO;QACP,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB;QAC3C,oBAAoB,EAAE,QAAQ,CAAC,oBAAoB;QACnD,MAAM,EAAE,IAAI;QACZ,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,YAAY,EAAE,KAAK;KACpB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/command/metadata.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../../../../src/commands/dev-agent/work/watch.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,YAAY,EAAmB,MAAM,kCAAkC,CAAC;AAIjF,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,YAAY;IACzD,OAAgB,IAAI;QAAK,UAAU;MAA2E;IAC9G,OAAgB,WAAW,SAA0F;IACrH,OAAgB,KAAK;QACnB,aAAa;QACb,MAAM;QACN,YAAY;QACZ,iBAAiB;MACjB;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CA+BzB;CACF"}
1
+ {"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../../../../src/commands/dev-agent/work/watch.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,YAAY,EAAmB,MAAM,kCAAkC,CAAC;AAIjF,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,YAAY;IACzD,OAAgB,IAAI;QAAK,UAAU;MAA2E;IAC9G,OAAgB,WAAW,SAA0F;IACrH,OAAgB,KAAK;QACnB,aAAa;QACb,MAAM;QACN,YAAY;QACZ,iBAAiB;MACjB;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CA4BzB;CACF"}
@@ -3,8 +3,8 @@ import { DevAgentWorkClient } from '../../../dev-agent-work/client.js';
3
3
  import { devAgentWorkMeta } from '../../../dev-agent-work/context.js';
4
4
  import { watchDevAgentWork } from '../../../dev-agent-work/polling.js';
5
5
  import { loadDevAgentWorkRuntime } from '../../../dev-agent-work/runtime.js';
6
- import { errorResult, successResult } from '../../../contracts/result.js';
7
- import { asCliError } from '../../../errors/cli-error.js';
6
+ import { successResult } from '../../../contracts/result.js';
7
+ import { bindCliErrorToCommand } from '../../../errors/cli-error.js';
8
8
  import { LocalCommand, localOutputFlag } from '../../../config/local-command.js';
9
9
  import { renderCommandResult } from '../../../output/render.js';
10
10
  import { redactValue } from '../../../security/redact.js';
@@ -19,7 +19,7 @@ export default class DevAgentWorkWatch extends LocalCommand {
19
19
  };
20
20
  async run() {
21
21
  const { args, flags } = await this.parse(DevAgentWorkWatch);
22
- const format = (flags.format ?? flags.output);
22
+ const format = flags.output;
23
23
  const controller = new AbortController();
24
24
  const onInterrupt = () => controller.abort();
25
25
  process.once('SIGINT', onInterrupt);
@@ -42,10 +42,7 @@ export default class DevAgentWorkWatch extends LocalCommand {
42
42
  }
43
43
  }
44
44
  catch (error) {
45
- const cliError = asCliError(error);
46
- const result = redactValue(errorResult(cliError.toErrorDetail(), { command: 'dev-agent work watch' }));
47
- this.log(await renderCommandResult(result, { format, ...(flags.jq ? { jq: flags.jq } : {}) }));
48
- this.exit(cliError.exitCode);
45
+ throw bindCliErrorToCommand(error, 'dev-agent work watch');
49
46
  }
50
47
  finally {
51
48
  process.removeListener('SIGINT', onInterrupt);
@@ -1 +1 @@
1
- {"version":3,"file":"watch.js","sourceRoot":"","sources":["../../../../src/commands/dev-agent/work/watch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"watch.js","sourceRoot":"","sources":["../../../../src/commands/dev-agent/work/watch.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../../../src/commands/execution/watch.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAmB,MAAM,+BAA+B,CAAC;AAM9E,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,YAAY;IACtD,OAAgB,IAAI;QAAK,WAAW;MAAiE;IACrG,OAAgB,WAAW,SAAyF;IACpH,OAAgB,KAAK;QACnB,aAAa;QACb,MAAM;QACN,YAAY;QACZ,IAAI;QACJ,iBAAiB;MACjB;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAoCzB;CACF"}
1
+ {"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../../../src/commands/execution/watch.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAmB,MAAM,+BAA+B,CAAC;AAM9E,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,YAAY;IACtD,OAAgB,IAAI;QAAK,WAAW;MAAiE;IACrG,OAAgB,WAAW,SAAyF;IACpH,OAAgB,KAAK;QACnB,aAAa;QACb,MAAM;QACN,YAAY;QACZ,IAAI;QACJ,iBAAiB;MACjB;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAiCzB;CACF"}
@@ -1,8 +1,8 @@
1
1
  import { Args, Flags } from '@oclif/core';
2
2
  import { ExecutionClient } from '../../client/execution.js';
3
- import { errorResult, successResult } from '../../contracts/result.js';
3
+ import { successResult } from '../../contracts/result.js';
4
4
  import { LocalCommand, localOutputFlag } from '../../config/local-command.js';
5
- import { asCliError, CliError, EXIT_CODES } from '../../errors/cli-error.js';
5
+ import { bindCliErrorToCommand, CliError, EXIT_CODES } from '../../errors/cli-error.js';
6
6
  import { renderCommandResult } from '../../output/render.js';
7
7
  import { redactValue } from '../../security/redact.js';
8
8
  import { loadSemanticRuntime } from '../../semantic/runtime.js';
@@ -18,7 +18,7 @@ export default class ExecutionWatch extends LocalCommand {
18
18
  };
19
19
  async run() {
20
20
  const { args, flags } = await this.parse(ExecutionWatch);
21
- const format = (flags.format ?? flags.output);
21
+ const format = flags.output;
22
22
  const controller = new AbortController();
23
23
  const onInterrupt = () => controller.abort(new CliError('Execution listener canceled.', {
24
24
  code: 'EXECUTION_WATCH_CANCELLED',
@@ -41,10 +41,7 @@ export default class ExecutionWatch extends LocalCommand {
41
41
  }
42
42
  }
43
43
  catch (error) {
44
- const cliError = asCliError(error);
45
- const result = redactValue(errorResult(cliError.toErrorDetail(), { command: 'execution watch' }));
46
- this.log(await renderCommandResult(result, { format, ...(flags.jq ? { jq: flags.jq } : {}) }));
47
- this.exit(cliError.exitCode);
44
+ throw bindCliErrorToCommand(error, 'execution watch');
48
45
  }
49
46
  finally {
50
47
  process.removeListener('SIGINT', onInterrupt);
@@ -1 +1 @@
1
- {"version":3,"file":"watch.js","sourceRoot":"","sources":["../../../src/commands/execution/watch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"watch.js","sourceRoot":"","sources":["../../../src/commands/execution/watch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { LocalCommand } from '../config/local-command.js';
2
+ export default class Install extends LocalCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static flags: {
6
+ 'dry-run': import("@oclif/core/interfaces").BooleanFlag<boolean>;
7
+ output: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
8
+ 'package-manager': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
9
+ };
10
+ run(): Promise<void>;
11
+ }
12
+ //# sourceMappingURL=install.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAmB,MAAM,4BAA4B,CAAC;AAM3E,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,YAAY;IAC/C,OAAgB,WAAW,SAAwF;IACnH,OAAgB,QAAQ,WAItB;IACF,OAAgB,KAAK;QACnB,SAAS;QACT,MAAM;QACN,iBAAiB;MAKjB;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAwCzB;CACF"}
@@ -0,0 +1,66 @@
1
+ import { Flags } from '@oclif/core';
2
+ import { realpath } from 'node:fs/promises';
3
+ import { LocalCommand, localOutputFlag } from '../config/local-command.js';
4
+ import { asCliError, CliError, EXIT_CODES } from '../errors/cli-error.js';
5
+ import { detectCliInstallation, packageManagerGlobalRoot, resolveExecutableOnPath } from '../update/installation.js';
6
+ import { MONKEYS_NPM_PACKAGE, runUpdateProcess } from '../update/process.js';
7
+ import { installCliAndSkill, UpdateProcessError } from '../update/updater.js';
8
+ export default class Install extends LocalCommand {
9
+ static description = 'Install this exact CLI release globally and synchronize its exact official Skills.';
10
+ static examples = [
11
+ 'npx @inf-monkeys-tech/monkeys-cli@latest install',
12
+ 'pnpm dlx @inf-monkeys-tech/monkeys-cli@latest install --package-manager pnpm',
13
+ '<%= config.bin %> install --dry-run',
14
+ ];
15
+ static flags = {
16
+ 'dry-run': Flags.boolean({ default: false, summary: 'Validate and return the exact installation plan without changing anything' }),
17
+ output: localOutputFlag,
18
+ 'package-manager': Flags.string({
19
+ default: 'npm',
20
+ options: ['npm', 'pnpm'],
21
+ summary: 'Global package manager that will own the installation',
22
+ }),
23
+ };
24
+ async run() {
25
+ const { flags } = await this.parse(Install);
26
+ await this.emit('install', flags.output, async () => {
27
+ const manager = flags['package-manager'];
28
+ const version = this.config.version;
29
+ const currentEntry = process.argv[1] ? await realpath(process.argv[1]).catch(() => process.argv[1]) : undefined;
30
+ const initialPathBinary = await resolveExecutableOnPath('monkeys');
31
+ const currentInstallation = await detectCliInstallation(currentEntry ? { entryPath: currentEntry } : {});
32
+ const exclusions = currentInstallation.method === 'manual' ? [currentEntry, initialPathBinary].filter((path) => Boolean(path)) : [];
33
+ const plan = { manager, package: MONKEYS_NPM_PACKAGE, skills: 'exact bundled set', version };
34
+ if (!packageManagerGlobalRoot(manager, runUpdateProcess)) {
35
+ throw new CliError(`The selected package manager ${manager} is unavailable or has no absolute global package root.`, {
36
+ code: 'INSTALL_MANAGER_UNAVAILABLE',
37
+ exitCode: EXIT_CODES.configuration,
38
+ recovery: [`Install and configure ${manager}, or select another package manager.`],
39
+ });
40
+ }
41
+ if (flags['dry-run'])
42
+ return { action: 'planned', plan };
43
+ try {
44
+ const installed = await installCliAndSkill(version, {
45
+ finalizeSource: 'install',
46
+ manager,
47
+ resolvePathBinary: async () => resolveExecutableOnPath('monkeys', process.env, exclusions),
48
+ });
49
+ return { action: 'installed', ...installed };
50
+ }
51
+ catch (error) {
52
+ if (error instanceof UpdateProcessError) {
53
+ throw new CliError(error.message, {
54
+ cause: error,
55
+ code: 'INSTALL_FAILED',
56
+ exitCode: EXIT_CODES.internal,
57
+ recovery: [`Check ${manager}, network, global installation permissions, and PATH, then retry.`],
58
+ safeDetails: { command: error.command, detail: error.detail },
59
+ });
60
+ }
61
+ throw asCliError(error);
62
+ }
63
+ });
64
+ }
65
+ }
66
+ //# sourceMappingURL=install.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,9 @@ export default class Update extends LocalCommand {
4
4
  static examples: string[];
5
5
  static flags: {
6
6
  check: import("@oclif/core/interfaces").BooleanFlag<boolean>;
7
+ finalize: import("@oclif/core/interfaces").BooleanFlag<boolean>;
8
+ 'finalize-source': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
9
+ 'dry-run': import("@oclif/core/interfaces").BooleanFlag<boolean>;
7
10
  force: import("@oclif/core/interfaces").BooleanFlag<boolean>;
8
11
  output: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
9
12
  };
@@ -1 +1 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAmB,MAAM,4BAA4B,CAAC;AAgB3E,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,YAAY;IAC9C,OAAgB,WAAW,SACuF;IAClH,OAAgB,QAAQ,WAA0G;IAClI,OAAgB,KAAK;QACnB,KAAK;QACL,KAAK;QACL,MAAM;MACN;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAyDzB;CACF"}
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAmB,MAAM,4BAA4B,CAAC;AAqB3E,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,YAAY;IAC9C,OAAgB,WAAW,SACuF;IAClH,OAAgB,QAAQ,WAA0G;IAClI,OAAgB,KAAK;QACnB,KAAK;QAEL,QAAQ;QACR,iBAAiB;QACjB,SAAS;QAIT,KAAK;QACL,MAAM;MACN;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAkHzB;CACF"}