@principles/pd-cli 1.152.12 → 1.152.14

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 (305) hide show
  1. package/dist/commands/candidate.d.ts.map +1 -1
  2. package/dist/commands/candidate.js +34 -7
  3. package/dist/commands/candidate.js.map +1 -1
  4. package/dist/commands/diagnose.d.ts.map +1 -1
  5. package/dist/commands/diagnose.js +23 -7
  6. package/dist/commands/diagnose.js.map +1 -1
  7. package/dist/commands/pain-retry.d.ts.map +1 -1
  8. package/dist/commands/pain-retry.js +21 -7
  9. package/dist/commands/pain-retry.js.map +1 -1
  10. package/package.json +13 -7
  11. package/CHANGELOG.md +0 -23
  12. package/dist/commands/__tests__/intent-flag-wiring.test.d.ts +0 -9
  13. package/dist/commands/__tests__/intent-flag-wiring.test.d.ts.map +0 -1
  14. package/dist/commands/__tests__/intent-flag-wiring.test.js +0 -237
  15. package/dist/commands/__tests__/intent-flag-wiring.test.js.map +0 -1
  16. package/dist/commands/__tests__/legacy-cleanup.test.d.ts +0 -18
  17. package/dist/commands/__tests__/legacy-cleanup.test.d.ts.map +0 -1
  18. package/dist/commands/__tests__/legacy-cleanup.test.js +0 -467
  19. package/dist/commands/__tests__/legacy-cleanup.test.js.map +0 -1
  20. package/dist/commands/__tests__/mvp-smoke.test.d.ts +0 -15
  21. package/dist/commands/__tests__/mvp-smoke.test.d.ts.map +0 -1
  22. package/dist/commands/__tests__/mvp-smoke.test.js +0 -262
  23. package/dist/commands/__tests__/mvp-smoke.test.js.map +0 -1
  24. package/dist/commands/__tests__/pain-retry-maxTokens-flag.test.d.ts +0 -2
  25. package/dist/commands/__tests__/pain-retry-maxTokens-flag.test.d.ts.map +0 -1
  26. package/dist/commands/__tests__/pain-retry-maxTokens-flag.test.js +0 -60
  27. package/dist/commands/__tests__/pain-retry-maxTokens-flag.test.js.map +0 -1
  28. package/dist/commands/__tests__/rulecode-flag-wiring.test.d.ts +0 -21
  29. package/dist/commands/__tests__/rulecode-flag-wiring.test.d.ts.map +0 -1
  30. package/dist/commands/__tests__/rulecode-flag-wiring.test.js +0 -186
  31. package/dist/commands/__tests__/rulecode-flag-wiring.test.js.map +0 -1
  32. package/dist/commands/__tests__/rulecode-handler.test.d.ts +0 -16
  33. package/dist/commands/__tests__/rulecode-handler.test.d.ts.map +0 -1
  34. package/dist/commands/__tests__/rulecode-handler.test.js +0 -285
  35. package/dist/commands/__tests__/rulecode-handler.test.js.map +0 -1
  36. package/dist/commands/__tests__/run-rulehost-flag-wiring.test.d.ts +0 -24
  37. package/dist/commands/__tests__/run-rulehost-flag-wiring.test.d.ts.map +0 -1
  38. package/dist/commands/__tests__/run-rulehost-flag-wiring.test.js +0 -232
  39. package/dist/commands/__tests__/run-rulehost-flag-wiring.test.js.map +0 -1
  40. package/dist/commands/__tests__/runtime-activation-nextaction.test.d.ts +0 -15
  41. package/dist/commands/__tests__/runtime-activation-nextaction.test.d.ts.map +0 -1
  42. package/dist/commands/__tests__/runtime-activation-nextaction.test.js +0 -73
  43. package/dist/commands/__tests__/runtime-activation-nextaction.test.js.map +0 -1
  44. package/dist/commands/__tests__/runtime-probe-config.test.d.ts +0 -20
  45. package/dist/commands/__tests__/runtime-probe-config.test.d.ts.map +0 -1
  46. package/dist/commands/__tests__/runtime-probe-config.test.js +0 -389
  47. package/dist/commands/__tests__/runtime-probe-config.test.js.map +0 -1
  48. package/dist/commands/__tests__/telemetry-flag-wiring.test.d.ts +0 -9
  49. package/dist/commands/__tests__/telemetry-flag-wiring.test.d.ts.map +0 -1
  50. package/dist/commands/__tests__/telemetry-flag-wiring.test.js +0 -76
  51. package/dist/commands/__tests__/telemetry-flag-wiring.test.js.map +0 -1
  52. package/dist/commands/__tests__/version.test.d.ts +0 -2
  53. package/dist/commands/__tests__/version.test.d.ts.map +0 -1
  54. package/dist/commands/__tests__/version.test.js +0 -238
  55. package/dist/commands/__tests__/version.test.js.map +0 -1
  56. package/dist/commands/runtime-uat.guard.test.d.ts +0 -2
  57. package/dist/commands/runtime-uat.guard.test.d.ts.map +0 -1
  58. package/dist/commands/runtime-uat.guard.test.js +0 -153
  59. package/dist/commands/runtime-uat.guard.test.js.map +0 -1
  60. package/dist/services/__tests__/cli-output.test.d.ts +0 -18
  61. package/dist/services/__tests__/cli-output.test.d.ts.map +0 -1
  62. package/dist/services/__tests__/cli-output.test.js +0 -103
  63. package/dist/services/__tests__/cli-output.test.js.map +0 -1
  64. package/dist/services/__tests__/evaluator-runner-deps.test.d.ts +0 -2
  65. package/dist/services/__tests__/evaluator-runner-deps.test.d.ts.map +0 -1
  66. package/dist/services/__tests__/evaluator-runner-deps.test.js +0 -343
  67. package/dist/services/__tests__/evaluator-runner-deps.test.js.map +0 -1
  68. package/dist/services/__tests__/rulehost-readiness.test.d.ts +0 -2
  69. package/dist/services/__tests__/rulehost-readiness.test.d.ts.map +0 -1
  70. package/dist/services/__tests__/rulehost-readiness.test.js +0 -311
  71. package/dist/services/__tests__/rulehost-readiness.test.js.map +0 -1
  72. package/dist/services/__tests__/runtime-adapter-resolver.test.d.ts +0 -18
  73. package/dist/services/__tests__/runtime-adapter-resolver.test.d.ts.map +0 -1
  74. package/dist/services/__tests__/runtime-adapter-resolver.test.js +0 -673
  75. package/dist/services/__tests__/runtime-adapter-resolver.test.js.map +0 -1
  76. package/dist/utils/production-workspace-guard.test.d.ts +0 -2
  77. package/dist/utils/production-workspace-guard.test.d.ts.map +0 -1
  78. package/dist/utils/production-workspace-guard.test.js +0 -137
  79. package/dist/utils/production-workspace-guard.test.js.map +0 -1
  80. package/scripts/llm-dogfood.ts +0 -456
  81. package/scripts/migrate-illegal-expected-decision.ts +0 -252
  82. package/src/commands/__tests__/intent-flag-wiring.test.ts +0 -282
  83. package/src/commands/__tests__/legacy-cleanup.test.ts +0 -602
  84. package/src/commands/__tests__/mvp-smoke.test.ts +0 -300
  85. package/src/commands/__tests__/pain-retry-maxTokens-flag.test.ts +0 -73
  86. package/src/commands/__tests__/rulecode-flag-wiring.test.ts +0 -237
  87. package/src/commands/__tests__/rulecode-handler.test.ts +0 -369
  88. package/src/commands/__tests__/run-rulehost-flag-wiring.test.ts +0 -292
  89. package/src/commands/__tests__/runtime-activation-nextaction.test.ts +0 -81
  90. package/src/commands/__tests__/runtime-probe-config.test.ts +0 -432
  91. package/src/commands/__tests__/telemetry-flag-wiring.test.ts +0 -84
  92. package/src/commands/__tests__/version.test.ts +0 -251
  93. package/src/commands/admission-gate.ts +0 -30
  94. package/src/commands/artifact.ts +0 -82
  95. package/src/commands/build-trajectory-evidence.ts +0 -298
  96. package/src/commands/candidate.ts +0 -1250
  97. package/src/commands/codex-ingest-catchup.ts +0 -114
  98. package/src/commands/codex-ingest-quarantine.ts +0 -127
  99. package/src/commands/codex-reconcile.ts +0 -84
  100. package/src/commands/codex-setup.ts +0 -476
  101. package/src/commands/codex-worker.ts +0 -185
  102. package/src/commands/command-helpers.ts +0 -24
  103. package/src/commands/config-doctor.ts +0 -193
  104. package/src/commands/console.ts +0 -797
  105. package/src/commands/context.ts +0 -72
  106. package/src/commands/demo-story-a.ts +0 -241
  107. package/src/commands/diagnose.ts +0 -756
  108. package/src/commands/errors-list.ts +0 -441
  109. package/src/commands/evolution-tasks-list.ts +0 -48
  110. package/src/commands/evolution-tasks-show.ts +0 -62
  111. package/src/commands/flow.ts +0 -60
  112. package/src/commands/health-codex.ts +0 -576
  113. package/src/commands/health.ts +0 -315
  114. package/src/commands/history.ts +0 -63
  115. package/src/commands/intent.ts +0 -457
  116. package/src/commands/legacy-cleanup.ts +0 -531
  117. package/src/commands/legacy-import.ts +0 -104
  118. package/src/commands/mvp-smoke.ts +0 -160
  119. package/src/commands/pain-evidence.ts +0 -226
  120. package/src/commands/pain-list.ts +0 -239
  121. package/src/commands/pain-record.ts +0 -612
  122. package/src/commands/pain-retry.ts +0 -916
  123. package/src/commands/principles-stats.ts +0 -700
  124. package/src/commands/proven-channel-baseline.ts +0 -115
  125. package/src/commands/quality-scorecard.ts +0 -272
  126. package/src/commands/remediation-output.ts +0 -66
  127. package/src/commands/rulecode.ts +0 -465
  128. package/src/commands/run.ts +0 -89
  129. package/src/commands/runtime-activation.ts +0 -1629
  130. package/src/commands/runtime-artifact-repair.ts +0 -524
  131. package/src/commands/runtime-canary.ts +0 -395
  132. package/src/commands/runtime-compatibility-scan.ts +0 -105
  133. package/src/commands/runtime-diagnostics-export.ts +0 -229
  134. package/src/commands/runtime-features.ts +0 -153
  135. package/src/commands/runtime-gfi-snapshot.ts +0 -135
  136. package/src/commands/runtime-health-snapshot.ts +0 -108
  137. package/src/commands/runtime-init.ts +0 -429
  138. package/src/commands/runtime-internalization-enqueue-successors.ts +0 -530
  139. package/src/commands/runtime-internalization-integrity-repair.ts +0 -79
  140. package/src/commands/runtime-internalization-integrity.ts +0 -107
  141. package/src/commands/runtime-internalization-queue.ts +0 -135
  142. package/src/commands/runtime-internalization-retry.ts +0 -191
  143. package/src/commands/runtime-internalization-run-once.ts +0 -791
  144. package/src/commands/runtime-internalization-run-rulehost.ts +0 -749
  145. package/src/commands/runtime-internalization-wake-once.ts +0 -87
  146. package/src/commands/runtime-pain-flood-simulation.ts +0 -121
  147. package/src/commands/runtime-pruning.ts +0 -438
  148. package/src/commands/runtime-recovery-failed-tasks.ts +0 -258
  149. package/src/commands/runtime-recovery.ts +0 -109
  150. package/src/commands/runtime-synthetic-baseline.ts +0 -70
  151. package/src/commands/runtime-uat.guard.test.ts +0 -175
  152. package/src/commands/runtime-uat.ts +0 -380
  153. package/src/commands/runtime.ts +0 -473
  154. package/src/commands/samples-list.ts +0 -39
  155. package/src/commands/samples-review.ts +0 -36
  156. package/src/commands/task.ts +0 -271
  157. package/src/commands/telemetry.ts +0 -349
  158. package/src/commands/trace.ts +0 -174
  159. package/src/commands/trajectory-db-unavailable.ts +0 -19
  160. package/src/commands/trajectory.ts +0 -64
  161. package/src/commands/version.ts +0 -49
  162. package/src/config-reader.ts +0 -122
  163. package/src/index.ts +0 -1276
  164. package/src/legacy/legacy-import.ts +0 -179
  165. package/src/legacy/session-history-import.ts +0 -203
  166. package/src/resolve-workspace.ts +0 -106
  167. package/src/services/__tests__/cli-output.test.ts +0 -130
  168. package/src/services/__tests__/evaluator-runner-deps.test.ts +0 -382
  169. package/src/services/__tests__/rulehost-readiness.test.ts +0 -363
  170. package/src/services/__tests__/runtime-adapter-resolver.test.ts +0 -793
  171. package/src/services/cli-output.ts +0 -95
  172. package/src/services/config-doctor.ts +0 -697
  173. package/src/services/console-launcher.ts +0 -537
  174. package/src/services/demo-rule-compiler.ts +0 -40
  175. package/src/services/demo-story-a-runner.ts +0 -471
  176. package/src/services/mainline-snapshot-assembler.ts +0 -579
  177. package/src/services/pain-flood-simulation-runner.ts +0 -462
  178. package/src/services/pd-config-loader.ts +0 -433
  179. package/src/services/proven-channel-baseline-runner.ts +0 -157
  180. package/src/services/quality-scorecard/data-extractor.ts +0 -150
  181. package/src/services/quality-scorecard/local-evaluator.ts +0 -142
  182. package/src/services/quality-scorecard/strong-model-gate.ts +0 -202
  183. package/src/services/resolve-runtime-from-pd-config.ts +0 -230
  184. package/src/services/rulehost-pipeline-runner.ts +0 -1214
  185. package/src/services/rulehost-readiness.ts +0 -326
  186. package/src/services/runtime-adapter-resolver.ts +0 -364
  187. package/src/services/synthetic-baseline-runner.ts +0 -400
  188. package/src/services/version-report.ts +0 -253
  189. package/src/services/workspace-tool-semantics.ts +0 -26
  190. package/src/utils/path-security.ts +0 -96
  191. package/src/utils/production-workspace-guard.test.ts +0 -157
  192. package/src/utils/production-workspace-guard.ts +0 -210
  193. package/tests/bdd/cli-contract.steps.ts +0 -346
  194. package/tests/bdd/principles-stats.steps.ts +0 -211
  195. package/tests/bdd/support/gherkin-loader.ts +0 -147
  196. package/tests/bdd/support/repo-root.ts +0 -62
  197. package/tests/bdd/support/vitest-bdd.ts +0 -179
  198. package/tests/commands/admission-gate-coverage.test.ts +0 -79
  199. package/tests/commands/build-trajectory-evidence.test.ts +0 -508
  200. package/tests/commands/candidate-audit-repair.test.ts +0 -421
  201. package/tests/commands/candidate-intake.test.ts +0 -732
  202. package/tests/commands/candidate-internalization-backfill.test.ts +0 -548
  203. package/tests/commands/candidate-internalize-lineage.test.ts +0 -628
  204. package/tests/commands/candidate-internalize.test.ts +0 -299
  205. package/tests/commands/candidate-route.test.ts +0 -329
  206. package/tests/commands/candidate-show.test.ts +0 -95
  207. package/tests/commands/cli-command-tree.test.ts +0 -144
  208. package/tests/commands/cli-help-snapshot.test.ts +0 -155
  209. package/tests/commands/cli-skill-contract.test.ts +0 -121
  210. package/tests/commands/codex-consent-reversibility.steps.test.ts +0 -299
  211. package/tests/commands/codex-ingest-quarantine.test.ts +0 -136
  212. package/tests/commands/codex-setup.test.ts +0 -297
  213. package/tests/commands/codex-worker-daemon.test.ts +0 -95
  214. package/tests/commands/codex-worker-registration.test.ts +0 -207
  215. package/tests/commands/config-doctor.test.ts +0 -336
  216. package/tests/commands/console-launcher-edge-cases.test.ts +0 -388
  217. package/tests/commands/console-open.test.ts +0 -1381
  218. package/tests/commands/context.test.ts +0 -114
  219. package/tests/commands/demo-story-a.test.ts +0 -318
  220. package/tests/commands/diagnose.test.ts +0 -1803
  221. package/tests/commands/errors-list.test.ts +0 -679
  222. package/tests/commands/evolution-tasks-list.test.ts +0 -41
  223. package/tests/commands/evolution-tasks-show.test.ts +0 -46
  224. package/tests/commands/health-codex.test.ts +0 -349
  225. package/tests/commands/health-host-wiring.test.ts +0 -76
  226. package/tests/commands/health-reliability.test.ts +0 -99
  227. package/tests/commands/health.test.ts +0 -413
  228. package/tests/commands/intent.test.ts +0 -321
  229. package/tests/commands/legacy-cleanup.test.ts +0 -148
  230. package/tests/commands/pain-evidence.test.ts +0 -518
  231. package/tests/commands/pain-list.test.ts +0 -219
  232. package/tests/commands/pain-record-async.test.ts +0 -335
  233. package/tests/commands/pain-record-session-parser.test.ts +0 -228
  234. package/tests/commands/pain-record.test.ts +0 -851
  235. package/tests/commands/pain-retry.test.ts +0 -1121
  236. package/tests/commands/plugin-config-resolution-cutover.test.ts +0 -229
  237. package/tests/commands/pri-393-runtime-config-unification.test.ts +0 -443
  238. package/tests/commands/principles-stats-wiring.test.ts +0 -135
  239. package/tests/commands/principles-stats.test.ts +0 -274
  240. package/tests/commands/product-path-regression.test.ts +0 -86
  241. package/tests/commands/proven-channel-baseline.test.ts +0 -441
  242. package/tests/commands/rulecode.test.ts +0 -177
  243. package/tests/commands/run-rulehost-handler.test.ts +0 -908
  244. package/tests/commands/runtime-activation-approve-flag-wiring.test.ts +0 -227
  245. package/tests/commands/runtime-activation-deactivate-flag-wiring.test.ts +0 -167
  246. package/tests/commands/runtime-activation-dispatch-flag-wiring.test.ts +0 -262
  247. package/tests/commands/runtime-activation-governance-audit.test.ts +0 -95
  248. package/tests/commands/runtime-activation-list-flag-wiring.test.ts +0 -193
  249. package/tests/commands/runtime-activation-promote-flag-wiring.test.ts +0 -248
  250. package/tests/commands/runtime-activation-shadow-telemetry.test.ts +0 -130
  251. package/tests/commands/runtime-activation.test.ts +0 -2052
  252. package/tests/commands/runtime-artifact-repair-registration.test.ts +0 -74
  253. package/tests/commands/runtime-artifact-repair.test.ts +0 -404
  254. package/tests/commands/runtime-canary.test.ts +0 -430
  255. package/tests/commands/runtime-compatibility-scan.test.ts +0 -146
  256. package/tests/commands/runtime-diagnostics-export.test.ts +0 -175
  257. package/tests/commands/runtime-features.test.ts +0 -249
  258. package/tests/commands/runtime-health-snapshot.test.ts +0 -358
  259. package/tests/commands/runtime-init-empty-workspace.test.ts +0 -252
  260. package/tests/commands/runtime-init.test.ts +0 -420
  261. package/tests/commands/runtime-internalization-enqueue-successors.test.ts +0 -782
  262. package/tests/commands/runtime-internalization-integrity-repair.test.ts +0 -239
  263. package/tests/commands/runtime-internalization-integrity.test.ts +0 -140
  264. package/tests/commands/runtime-internalization-queue.test.ts +0 -380
  265. package/tests/commands/runtime-internalization-retry-owner-authority.test.ts +0 -431
  266. package/tests/commands/runtime-internalization-run-once-evaluator-parity.test.ts +0 -269
  267. package/tests/commands/runtime-internalization-run-once-language.test.ts +0 -303
  268. package/tests/commands/runtime-internalization-run-once-real-config.test.ts +0 -237
  269. package/tests/commands/runtime-internalization-run-once-rollout-parity.test.ts +0 -706
  270. package/tests/commands/runtime-internalization-run-once.test.ts +0 -1791
  271. package/tests/commands/runtime-internalization-wake-once.test.ts +0 -171
  272. package/tests/commands/runtime-internalization.test.ts +0 -53
  273. package/tests/commands/runtime-pain-flood-simulation.test.ts +0 -418
  274. package/tests/commands/runtime-pruning.test.ts +0 -694
  275. package/tests/commands/runtime-recovery-failed-tasks.test.ts +0 -328
  276. package/tests/commands/runtime-recovery.test.ts +0 -120
  277. package/tests/commands/runtime-synthetic-baseline.test.ts +0 -249
  278. package/tests/commands/runtime-uat.test.ts +0 -397
  279. package/tests/commands/runtime.test.ts +0 -392
  280. package/tests/commands/samples-list.test.ts +0 -43
  281. package/tests/commands/samples-review.test.ts +0 -41
  282. package/tests/commands/task.test.ts +0 -153
  283. package/tests/commands/telemetry.test.ts +0 -190
  284. package/tests/commands/trace.test.ts +0 -316
  285. package/tests/config-reader.test.ts +0 -143
  286. package/tests/e2e/candidate-intake-e2e.test.ts +0 -338
  287. package/tests/e2e/cli-full-flow.test.ts +0 -233
  288. package/tests/e2e/cross-package-acceptance.test.ts +0 -635
  289. package/tests/helpers/pd-cli-path.ts +0 -5
  290. package/tests/pd-cli-smoke.test.ts +0 -13
  291. package/tests/resolve-workspace.test.ts +0 -196
  292. package/tests/services/config-doctor-signal-health.test.ts +0 -109
  293. package/tests/services/console-launcher.test.ts +0 -114
  294. package/tests/services/demo-rule-compiler.test.ts +0 -242
  295. package/tests/services/mainline-snapshot-assembler.test.ts +0 -572
  296. package/tests/services/pd-config-loader.test.ts +0 -505
  297. package/tests/services/proven-channel-baseline-runner.test.ts +0 -30
  298. package/tests/services/quality-scorecard/strong-model-gate.test.ts +0 -133
  299. package/tests/services/resolve-runtime-from-pd-config.test.ts +0 -485
  300. package/tests/services/rulehost-pipeline-e2e.test.ts +0 -538
  301. package/tests/services/rulehost-pipeline-runner.test.ts +0 -1242
  302. package/tests/services/workspace-tool-semantics.test.ts +0 -76
  303. package/tests/utils/path-security.test.ts +0 -180
  304. package/tsconfig.json +0 -26
  305. package/vitest.config.ts +0 -10
@@ -1,73 +0,0 @@
1
- /**
2
- * Regression test for nextAction CLI hints in `pd activation list`.
3
- *
4
- * Bug #1367: `pd activation list` emitted `--confirm` in the deactivate
5
- * nextAction, but the `deactivate` command has no `--confirm` option
6
- * (`error: unknown option '--confirm'`).
7
- *
8
- * Root cause: the nextAction template was copy-pasted from `promote`
9
- * (which DOES support --confirm) without adjusting the deactivate variant.
10
- *
11
- * Guard: deactivate nextAction must never contain `--confirm`;
12
- * promote nextAction must always contain `--confirm`.
13
- */
14
- import { describe, it, expect } from 'vitest';
15
- import { deriveActivationStatusAndNextAction } from '../runtime-activation.js';
16
- describe('deriveActivationStatusAndNextAction', () => {
17
- const base = {
18
- deactivatedAt: null,
19
- contextVersion: 'v1',
20
- v2FlagEnabled: true,
21
- activationId: 'act_code_rule-test-123',
22
- };
23
- it('live mode: deactivate nextAction must NOT contain --confirm (bug #1367)', () => {
24
- const { status, nextAction } = deriveActivationStatusAndNextAction({
25
- ...base,
26
- mode: 'live',
27
- });
28
- expect(status).toBe('active');
29
- expect(nextAction).toBeDefined();
30
- expect(nextAction).toContain('pd activation deactivate');
31
- expect(nextAction).not.toContain('--confirm');
32
- });
33
- it('shadow mode: nextAction requires Owner review instead of advertising direct mutation', () => {
34
- const { status, nextAction } = deriveActivationStatusAndNextAction({
35
- ...base,
36
- mode: 'shadow',
37
- });
38
- expect(status).toBe('active');
39
- expect(nextAction).toBeDefined();
40
- expect(nextAction).toBe('Keep shadow; promotion requires an authenticated Owner decision, immutable evidence bindings, and a passing Promotion Readiness result.');
41
- expect(nextAction).not.toContain('pd activation promote');
42
- });
43
- it('deactivated record: status deactivated, no nextAction', () => {
44
- const { status, nextAction } = deriveActivationStatusAndNextAction({
45
- ...base,
46
- mode: 'live',
47
- deactivatedAt: '2026-08-21T00:51:10.026Z',
48
- });
49
- expect(status).toBe('deactivated');
50
- expect(nextAction).toBeUndefined();
51
- });
52
- it('v2 activation with flag off: suspended_by_flag, deactivate hint without --confirm', () => {
53
- const { status, nextAction } = deriveActivationStatusAndNextAction({
54
- ...base,
55
- mode: 'live',
56
- contextVersion: 'v2',
57
- v2FlagEnabled: false,
58
- });
59
- expect(status).toBe('suspended_by_flag');
60
- expect(nextAction).toBeDefined();
61
- expect(nextAction).toContain('pd activation deactivate');
62
- expect(nextAction).not.toContain('--confirm');
63
- });
64
- it('unknown mode: active with no nextAction', () => {
65
- const { status, nextAction } = deriveActivationStatusAndNextAction({
66
- ...base,
67
- mode: undefined,
68
- });
69
- expect(status).toBe('active');
70
- expect(nextAction).toBeUndefined();
71
- });
72
- });
73
- //# sourceMappingURL=runtime-activation-nextaction.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"runtime-activation-nextaction.test.js","sourceRoot":"","sources":["../../../src/commands/__tests__/runtime-activation-nextaction.test.ts"],"names":[],"mappings":"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"}
@@ -1,20 +0,0 @@
1
- /**
2
- * PRI-402: pd runtime probe reads .pd/config.yaml for pi-ai config.
3
- *
4
- * Tests cover:
5
- * - probe reads config from .pd/config.yaml when --workspace is provided
6
- * - JSON output includes configSource, runtimeProfileId, runtimeProfileLabel
7
- * - explicit --provider overrides config.yaml
8
- * - fail-loud JSON when config.yaml is missing or incomplete
9
- * - program.parseAsync against real Commander registration (EP-04)
10
- *
11
- * ERR refs:
12
- * - EP-04 (CLI gate): --json stdout single object, process.exit(1) + return
13
- * - EP-03 (fail loud): structured JSON with reason + nextAction on failure
14
- * - EP-07 (source alignment): probe and doctor read same config source
15
- * - ERR-004 (source alignment): profileId/label must match doctor output
16
- * - ERR-021 (handler-only tests): add program.parseAsync tests
17
- * - ERR-029 (fail-loud JSON): config missing → structured JSON, not bare error
18
- */
19
- export {};
20
- //# sourceMappingURL=runtime-probe-config.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"runtime-probe-config.test.d.ts","sourceRoot":"","sources":["../../../src/commands/__tests__/runtime-probe-config.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG"}
@@ -1,389 +0,0 @@
1
- /**
2
- * PRI-402: pd runtime probe reads .pd/config.yaml for pi-ai config.
3
- *
4
- * Tests cover:
5
- * - probe reads config from .pd/config.yaml when --workspace is provided
6
- * - JSON output includes configSource, runtimeProfileId, runtimeProfileLabel
7
- * - explicit --provider overrides config.yaml
8
- * - fail-loud JSON when config.yaml is missing or incomplete
9
- * - program.parseAsync against real Commander registration (EP-04)
10
- *
11
- * ERR refs:
12
- * - EP-04 (CLI gate): --json stdout single object, process.exit(1) + return
13
- * - EP-03 (fail loud): structured JSON with reason + nextAction on failure
14
- * - EP-07 (source alignment): probe and doctor read same config source
15
- * - ERR-004 (source alignment): profileId/label must match doctor output
16
- * - ERR-021 (handler-only tests): add program.parseAsync tests
17
- * - ERR-029 (fail-loud JSON): config missing → structured JSON, not bare error
18
- */
19
- import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
20
- import { Command } from 'commander';
21
- import * as fs from 'fs';
22
- import * as path from 'path';
23
- import * as os from 'os';
24
- // ─── Mocks ─────────────────────────────────────────────────────────────────
25
- // Mock only probeRuntime so we don't need a real LLM provider.
26
- // All other core functions (validatePdConfig, computeEffectivePdConfig,
27
- // resolveAgentRuntimeBinding, etc.) use their real implementations.
28
- const mockProbeRuntime = vi.fn();
29
- vi.mock('@principles/core/runtime-v2', async (importOriginal) => {
30
- const actual = await importOriginal();
31
- return {
32
- ...actual,
33
- probeRuntime: mockProbeRuntime,
34
- };
35
- });
36
- const { handleRuntimeProbe } = await import('../runtime.js');
37
- // ─── Test Setup ─────────────────────────────────────────────────────────────
38
- const capturedStdout = [];
39
- const capturedStderr = [];
40
- let capturedExitCode = null;
41
- const originalExit = process.exit;
42
- const originalLog = console.log;
43
- const originalError = console.error;
44
- const originalWarn = console.warn;
45
- const originalEnv = { ...process.env };
46
- beforeEach(() => {
47
- capturedExitCode = null;
48
- capturedStdout.length = 0;
49
- capturedStderr.length = 0;
50
- process.exit = vi.fn(((code) => {
51
- capturedExitCode = code ?? 0;
52
- }));
53
- console.log = vi.fn((...args) => { capturedStdout.push(args.join(' ')); });
54
- console.error = vi.fn((...args) => { capturedStderr.push(args.join(' ')); });
55
- console.warn = vi.fn(() => { });
56
- mockProbeRuntime.mockReset();
57
- process.env = { ...originalEnv, LMSTUDIO_API_KEY: 'test-key-for-pri-402', OPENROUTER_API_KEY: 'test-key-for-pri-402' };
58
- });
59
- afterEach(() => {
60
- process.exit = originalExit;
61
- console.log = originalLog;
62
- console.error = originalError;
63
- console.warn = originalWarn;
64
- process.env = originalEnv;
65
- });
66
- // ─── Helper: create temp workspace with .pd/config.yaml ────────────────────
67
- /** Create a scratch workspace with .pd/config.yaml under a unique temp root. */
68
- function createTempWorkspace(configYaml) {
69
- const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'pd-probe-test-'));
70
- const pdDir = path.join(tmpDir, '.pd');
71
- fs.mkdirSync(pdDir, { recursive: true });
72
- // Replace __WORKSPACE_DIR__ placeholder with actual path
73
- const resolvedYaml = configYaml.replace(/__WORKSPACE_DIR__/g, tmpDir.replace(/\\/g, '/'));
74
- fs.writeFileSync(path.join(pdDir, 'config.yaml'), resolvedYaml, 'utf-8');
75
- return tmpDir;
76
- }
77
- function cleanupWorkspace(dir) {
78
- try {
79
- fs.rmSync(dir, { recursive: true, force: true });
80
- }
81
- catch {
82
- // best effort
83
- }
84
- }
85
- const PI_AI_CONFIG_YAML = `
86
- version: 1
87
- features:
88
- prompt: { category: core, enabled: true }
89
- code_tool_hook: { category: core, enabled: true }
90
- defer_archive: { category: core, enabled: true }
91
- workspace:
92
- default: __WORKSPACE_DIR__
93
- internalAgents:
94
- defaultRuntime: pi-ai.lmstudio
95
- agents:
96
- diagnostician:
97
- enabled: true
98
- runtimeProfile: pi-ai.lmstudio
99
- dreamer:
100
- enabled: true
101
- philosopher:
102
- enabled: true
103
- scribe:
104
- enabled: true
105
- artificer:
106
- enabled: true
107
- runtimeProfiles:
108
- pi-ai.lmstudio:
109
- type: pi-ai
110
- provider: lmstudio
111
- model: qwen3.6-27b-mtp
112
- apiKeyEnv: LMSTUDIO_API_KEY
113
- baseUrl: http://localhost:1234/v1
114
- `;
115
- // ─── Tests: probe reads config from .pd/config.yaml ────────────────────────
116
- describe('PRI-402: probe reads .pd/config.yaml for pi-ai config', () => {
117
- it('reads provider/model from config.yaml when --workspace provided without --provider', async () => {
118
- const workspace = createTempWorkspace(PI_AI_CONFIG_YAML);
119
- try {
120
- mockProbeRuntime.mockResolvedValue({
121
- runtimeKind: 'pi-ai',
122
- provider: 'lmstudio',
123
- model: 'qwen3.6-27b-mtp',
124
- health: { healthy: true, degraded: false, warnings: [], lastCheckedAt: '2026-01-01T00:00:00Z' },
125
- capabilities: { streaming: true },
126
- });
127
- await handleRuntimeProbe({
128
- runtime: 'pi-ai',
129
- workspace,
130
- json: true,
131
- });
132
- // probeRuntime should be called with config.yaml values
133
- expect(mockProbeRuntime).toHaveBeenCalled();
134
- const callArgs = mockProbeRuntime.mock.calls[0]?.[0];
135
- expect(callArgs?.provider).toBe('lmstudio');
136
- expect(callArgs?.model).toBe('qwen3.6-27b-mtp');
137
- expect(callArgs?.apiKeyEnv).toBe('LMSTUDIO_API_KEY');
138
- // JSON output should contain configSource, runtimeProfileId, runtimeProfileLabel
139
- const output = JSON.parse(capturedStdout.join(''));
140
- expect(output.configSource).toBe('.pd/config.yaml');
141
- expect(output.runtimeProfileId).toBe('pi-ai.lmstudio');
142
- expect(output.runtimeProfileLabel).toBe('pi-ai: lmstudio/qwen3.6-27b-mtp');
143
- expect(output.ok).toBe(true);
144
- }
145
- finally {
146
- cleanupWorkspace(workspace);
147
- }
148
- });
149
- it('explicit --provider overrides config.yaml value', async () => {
150
- const workspace = createTempWorkspace(PI_AI_CONFIG_YAML);
151
- try {
152
- mockProbeRuntime.mockResolvedValue({
153
- runtimeKind: 'pi-ai',
154
- provider: 'openrouter',
155
- model: 'qwen3.6-27b-mtp',
156
- health: { healthy: true, degraded: false, warnings: [], lastCheckedAt: '2026-01-01T00:00:00Z' },
157
- capabilities: { streaming: true },
158
- });
159
- await handleRuntimeProbe({
160
- runtime: 'pi-ai',
161
- workspace,
162
- provider: 'openrouter',
163
- model: 'anthropic/claude-sonnet-4',
164
- apiKeyEnv: 'OPENROUTER_API_KEY',
165
- json: true,
166
- });
167
- const callArgs = mockProbeRuntime.mock.calls[0]?.[0];
168
- // CLI flags override config.yaml
169
- expect(callArgs?.provider).toBe('openrouter');
170
- expect(callArgs?.model).toBe('anthropic/claude-sonnet-4');
171
- expect(callArgs?.apiKeyEnv).toBe('OPENROUTER_API_KEY');
172
- // Profile info still comes from config.yaml (EP-07: source alignment)
173
- const output = JSON.parse(capturedStdout.join(''));
174
- expect(output.configSource).toBe('.pd/config.yaml');
175
- expect(output.runtimeProfileId).toBe('pi-ai.lmstudio');
176
- }
177
- finally {
178
- cleanupWorkspace(workspace);
179
- }
180
- });
181
- it('fail-loud JSON when config.yaml is missing and no --provider', async () => {
182
- const workspace = path.join(os.tmpdir(), `pd-probe-test-missing-${Date.now()}`);
183
- fs.mkdirSync(workspace, { recursive: true });
184
- // No .pd/config.yaml created
185
- try {
186
- await handleRuntimeProbe({
187
- runtime: 'pi-ai',
188
- workspace,
189
- json: true,
190
- });
191
- expect(capturedExitCode).toBe(1);
192
- const output = JSON.parse(capturedStdout.join(''));
193
- expect(output.ok).toBe(false);
194
- expect(output.status).toBe('failed');
195
- expect(typeof output.reason).toBe('string');
196
- expect(typeof output.nextAction).toBe('string');
197
- // Single parseable JSON object (EP-04 Rule 1)
198
- expect(Array.isArray(output)).toBe(false);
199
- }
200
- finally {
201
- cleanupWorkspace(workspace);
202
- }
203
- });
204
- it('fail-loud JSON when provider missing from config.yaml', async () => {
205
- const workspace = createTempWorkspace(`
206
- version: 1
207
- features:
208
- prompt: { category: core, enabled: true }
209
- code_tool_hook: { category: core, enabled: true }
210
- defer_archive: { category: core, enabled: true }
211
- workspace:
212
- default: __WORKSPACE_DIR__
213
- internalAgents:
214
- defaultRuntime: pi-ai.broken
215
- agents:
216
- diagnostician:
217
- enabled: true
218
- runtimeProfile: pi-ai.broken
219
- runtimeProfiles:
220
- pi-ai.broken:
221
- type: pi-ai
222
- # Missing provider, model, apiKeyEnv
223
- `);
224
- try {
225
- await handleRuntimeProbe({
226
- runtime: 'pi-ai',
227
- workspace,
228
- json: true,
229
- });
230
- expect(capturedExitCode).toBe(1);
231
- const output = JSON.parse(capturedStdout.join(''));
232
- expect(output.ok).toBe(false);
233
- expect(output.status).toBe('failed');
234
- expect(typeof output.reason).toBe('string');
235
- expect(typeof output.nextAction).toBe('string');
236
- }
237
- finally {
238
- cleanupWorkspace(workspace);
239
- }
240
- });
241
- it('fail-loud JSON when apiKeyEnv env var is not set', async () => {
242
- const workspace = createTempWorkspace(PI_AI_CONFIG_YAML);
243
- try {
244
- // Remove the API key env var
245
- delete process.env.LMSTUDIO_API_KEY;
246
- await handleRuntimeProbe({
247
- runtime: 'pi-ai',
248
- workspace,
249
- json: true,
250
- });
251
- expect(capturedExitCode).toBe(1);
252
- const output = JSON.parse(capturedStdout.join(''));
253
- expect(output.ok).toBe(false);
254
- // When apiKeyEnv is not set, resolveRuntimeConfigFromPdConfig returns
255
- // a config error (not_ready), so the error comes from the config resolution path
256
- expect(typeof output.reason).toBe('string');
257
- expect(typeof output.nextAction).toBe('string');
258
- }
259
- finally {
260
- cleanupWorkspace(workspace);
261
- }
262
- });
263
- it('human-readable output includes Profile and Config lines', async () => {
264
- const workspace = createTempWorkspace(PI_AI_CONFIG_YAML);
265
- try {
266
- mockProbeRuntime.mockResolvedValue({
267
- runtimeKind: 'pi-ai',
268
- provider: 'lmstudio',
269
- model: 'qwen3.6-27b-mtp',
270
- health: { healthy: true, degraded: false, warnings: [], lastCheckedAt: '2026-01-01T00:00:00Z' },
271
- capabilities: { streaming: true },
272
- });
273
- await handleRuntimeProbe({
274
- runtime: 'pi-ai',
275
- workspace,
276
- json: false,
277
- });
278
- const output = capturedStdout.join('\n');
279
- expect(output).toContain('Profile:');
280
- expect(output).toContain('pi-ai: lmstudio/qwen3.6-27b-mtp');
281
- expect(output).toContain('Config:');
282
- expect(output).toContain('.pd/config.yaml');
283
- }
284
- finally {
285
- cleanupWorkspace(workspace);
286
- }
287
- });
288
- });
289
- // ─── Tests: program.parseAsync against real Commander registration (EP-04) ──
290
- // Import the real command registration function to test actual production wiring
291
- const { registerRuntimeProbeCommand } = await import('../runtime.js');
292
- function attachCapture(cmd, state) {
293
- // Override the action handler to capture opts without calling the real handler
294
- cmd.action((...args) => {
295
- // Find the opts object (last non-Command, non-null object arg)
296
- let optsArg = null;
297
- for (let i = args.length - 1; i >= 0; i--) {
298
- const arg = args[i];
299
- if (arg !== null && typeof arg === 'object' && !(arg instanceof Command)) {
300
- optsArg = arg;
301
- break;
302
- }
303
- }
304
- state.opts = optsArg ?? {};
305
- // Do NOT call original action (would call handleRuntimeProbe which needs real runtime)
306
- });
307
- }
308
- function freshProgram() {
309
- const program = new Command();
310
- program.name('pd').exitOverride();
311
- return program;
312
- }
313
- describe('PRI-402: probe command flag wiring (EP-04 real registration)', () => {
314
- it('registers --runtime as required option via real registration', () => {
315
- const program = freshProgram();
316
- const runtimeCmd = program.command('runtime');
317
- const probeCmd = registerRuntimeProbeCommand(runtimeCmd);
318
- const runtimeOpt = probeCmd.options.find((o) => o.long === '--runtime');
319
- expect(runtimeOpt).toBeDefined();
320
- expect(runtimeOpt?.required).toBe(true);
321
- });
322
- it('registers --workspace with -w shorthand via real registration', () => {
323
- const program = freshProgram();
324
- const runtimeCmd = program.command('runtime');
325
- const probeCmd = registerRuntimeProbeCommand(runtimeCmd);
326
- const wsOpt = probeCmd.options.find((o) => o.short === '-w');
327
- expect(wsOpt).toBeDefined();
328
- expect(wsOpt?.long).toBe('--workspace');
329
- });
330
- it('parses --runtime pi-ai --workspace <dir> --json correctly via real registration', async () => {
331
- const program = freshProgram();
332
- const runtimeCmd = program.command('runtime');
333
- const probeCmd = registerRuntimeProbeCommand(runtimeCmd);
334
- const captured = { opts: null };
335
- attachCapture(probeCmd, captured);
336
- await program.parseAsync(['node', 'pd', 'runtime', 'probe', '--runtime', 'pi-ai', '--workspace', '/tmp/test', '--json']);
337
- expect(captured.opts).not.toBeNull();
338
- if (!captured.opts)
339
- throw new Error('captured.opts is null');
340
- expect(captured.opts.runtime).toBe('pi-ai');
341
- expect(captured.opts.workspace).toBe('/tmp/test');
342
- expect(captured.opts.json).toBe(true);
343
- });
344
- it('parses --runtime config --workspace <dir> correctly via real registration', async () => {
345
- const program = freshProgram();
346
- const runtimeCmd = program.command('runtime');
347
- const probeCmd = registerRuntimeProbeCommand(runtimeCmd);
348
- const captured = { opts: null };
349
- attachCapture(probeCmd, captured);
350
- await program.parseAsync(['node', 'pd', 'runtime', 'probe', '--runtime', 'config', '--workspace', '/tmp/test']);
351
- expect(captured.opts).not.toBeNull();
352
- if (!captured.opts)
353
- throw new Error('captured.opts is null');
354
- expect(captured.opts.runtime).toBe('config');
355
- expect(captured.opts.workspace).toBe('/tmp/test');
356
- });
357
- });
358
- // ─── Tests: resolve-runtime-from-pd-config profile extraction ───────────────
359
- describe('PRI-402: resolveRuntimeWithOverrides returns profile info', () => {
360
- it('returns runtimeProfileId and runtimeProfileLabel from config.yaml', async () => {
361
- const workspace = createTempWorkspace(PI_AI_CONFIG_YAML);
362
- try {
363
- const { resolveRuntimeWithOverrides } = await import('../../services/resolve-runtime-from-pd-config.js');
364
- const result = resolveRuntimeWithOverrides(workspace, {});
365
- expect(result.configSource).toBe('.pd/config.yaml');
366
- expect(result.runtimeProfileId).toBe('pi-ai.lmstudio');
367
- expect(result.runtimeProfileLabel).toBe('pi-ai: lmstudio/qwen3.6-27b-mtp');
368
- }
369
- finally {
370
- cleanupWorkspace(workspace);
371
- }
372
- });
373
- it('returns default profile when config.yaml is missing', async () => {
374
- const workspace = path.join(os.tmpdir(), `pd-probe-test-noprofile-${Date.now()}`);
375
- fs.mkdirSync(workspace, { recursive: true });
376
- try {
377
- const { resolveRuntimeWithOverrides } = await import('../../services/resolve-runtime-from-pd-config.js');
378
- const result = resolveRuntimeWithOverrides(workspace, {});
379
- // Missing config → defaults, which use openclaw.default as defaultRuntime
380
- expect(result.configSource).toBe('.pd/config.yaml');
381
- expect(result.runtimeProfileId).toBe('openclaw.default');
382
- expect(typeof result.runtimeProfileLabel).toBe('string');
383
- }
384
- finally {
385
- cleanupWorkspace(workspace);
386
- }
387
- });
388
- });
389
- //# sourceMappingURL=runtime-probe-config.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"runtime-probe-config.test.js","sourceRoot":"","sources":["../../../src/commands/__tests__/runtime-probe-config.test.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- /**
2
- * pd telemetry — parser-level flag wiring tests (PRI-597, CLI Operator Gate
3
- * rule 7 / EP-04).
4
- *
5
- * Exercises the real Commander tree via registerTelemetryCommand; actions are
6
- * captured so no handler logic runs.
7
- */
8
- export {};
9
- //# sourceMappingURL=telemetry-flag-wiring.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"telemetry-flag-wiring.test.d.ts","sourceRoot":"","sources":["../../../src/commands/__tests__/telemetry-flag-wiring.test.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
@@ -1,76 +0,0 @@
1
- /**
2
- * pd telemetry — parser-level flag wiring tests (PRI-597, CLI Operator Gate
3
- * rule 7 / EP-04).
4
- *
5
- * Exercises the real Commander tree via registerTelemetryCommand; actions are
6
- * captured so no handler logic runs.
7
- */
8
- import { describe, it, expect } from 'vitest';
9
- import { Command } from 'commander';
10
- import { registerTelemetryCommand } from '../telemetry.js';
11
- function freshProgram() {
12
- const program = new Command();
13
- program.name('pd').exitOverride();
14
- return program;
15
- }
16
- function requireCmd(cmd, name) {
17
- if (cmd === undefined) {
18
- throw new Error(`Command '${name}' not found in tree`);
19
- }
20
- return cmd;
21
- }
22
- function telemetrySub(name) {
23
- const program = freshProgram();
24
- registerTelemetryCommand(program);
25
- const telemetry = requireCmd(program.commands.find((c) => c.name() === 'telemetry'), 'telemetry');
26
- return requireCmd(telemetry.commands.find((c) => c.name() === name), `telemetry ${name}`);
27
- }
28
- describe('pd telemetry — command registration', () => {
29
- it('registers the telemetry group with all five subcommands', () => {
30
- const program = freshProgram();
31
- registerTelemetryCommand(program);
32
- const telemetry = requireCmd(program.commands.find((c) => c.name() === 'telemetry'), 'telemetry');
33
- const subNames = telemetry.commands.map((c) => c.name()).sort();
34
- expect(subNames).toEqual(['disable', 'enable', 'preview', 'reset', 'status']);
35
- });
36
- it('status registers --workspace (-w) and --json', () => {
37
- const status = telemetrySub('status');
38
- expect(status.options.find((o) => o.long === '--workspace')?.short).toBe('-w');
39
- expect(status.options.find((o) => o.long === '--json')).toBeDefined();
40
- });
41
- it('enable/disable/reset register the dry-run/confirm pair (cli-4) plus --workspace and --json', () => {
42
- for (const name of ['enable', 'disable', 'reset']) {
43
- const cmd = telemetrySub(name);
44
- expect(cmd.options.find((o) => o.long === '--dry-run'), name).toBeDefined();
45
- expect(cmd.options.find((o) => o.long === '--confirm'), name).toBeDefined();
46
- expect(cmd.options.find((o) => o.long === '--workspace'), name).toBeDefined();
47
- expect(cmd.options.find((o) => o.long === '--json'), name).toBeDefined();
48
- }
49
- });
50
- it('preview registers --workspace (-w) and --json', () => {
51
- const preview = telemetrySub('preview');
52
- expect(preview.options.find((o) => o.long === '--workspace')?.short).toBe('-w');
53
- expect(preview.options.find((o) => o.long === '--json')).toBeDefined();
54
- });
55
- it('parser dispatches telemetry enable with --confirm as opts.confirm === true', async () => {
56
- const program = freshProgram();
57
- registerTelemetryCommand(program);
58
- const holder = { opts: null };
59
- const telemetry = requireCmd(program.commands.find((c) => c.name() === 'telemetry'), 'telemetry');
60
- const enable = requireCmd(telemetry.commands.find((c) => c.name() === 'enable'), 'enable');
61
- enable.action((...args) => {
62
- for (let i = args.length - 1; i >= 0; i--) {
63
- const arg = args[i];
64
- if (arg !== null && typeof arg === 'object' && !(arg instanceof Command)) {
65
- holder.opts = arg;
66
- break;
67
- }
68
- }
69
- });
70
- await program.parseAsync(['node', 'pd', 'telemetry', 'enable', '--confirm', '--json']);
71
- expect(holder.opts).not.toBeNull();
72
- expect(holder.opts?.confirm).toBe(true);
73
- expect(holder.opts?.json).toBe(true);
74
- });
75
- });
76
- //# sourceMappingURL=telemetry-flag-wiring.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"telemetry-flag-wiring.test.js","sourceRoot":"","sources":["../../../src/commands/__tests__/telemetry-flag-wiring.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=version.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"version.test.d.ts","sourceRoot":"","sources":["../../../src/commands/__tests__/version.test.ts"],"names":[],"mappings":""}