@unbrained/pm-cli 2026.8.21 → 2026.8.23

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 (228) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/CHANGELOG.md +44 -0
  3. package/dist/cli/error-guidance.d.ts +22 -4
  4. package/dist/cli/error-guidance.js +73 -16
  5. package/dist/cli/main.d.ts +3 -0
  6. package/dist/cli/main.js +51 -9
  7. package/dist/cli/register-mutation.js +6 -6
  8. package/dist/cli/register-operations.d.ts +73 -0
  9. package/dist/cli/register-operations.js +39 -14
  10. package/dist/cli/register-setup.js +3 -3
  11. package/dist/cli/schema-registration-helpers.d.ts +8 -1
  12. package/dist/cli/schema-registration-helpers.js +14 -5
  13. package/dist/cli-bundle/bundle-manifest.json +149 -149
  14. package/dist/cli-bundle/chunks/chunk-3ENVHX6C.js +36 -0
  15. package/dist/cli-bundle/chunks/{chunk-LOVTQ52Z.js → chunk-DW2CGEMU.js} +2 -2
  16. package/dist/cli-bundle/chunks/chunk-EG6CLDZT.js +5 -0
  17. package/dist/cli-bundle/chunks/{chunk-LARJJ3RK.js → chunk-F3AI2JFL.js} +2 -2
  18. package/dist/cli-bundle/chunks/{chunk-N3DSV4CH.js → chunk-HWZ6CELB.js} +8 -8
  19. package/dist/cli-bundle/chunks/chunk-HZBMLSZI.js +201 -0
  20. package/dist/cli-bundle/chunks/chunk-JB4KZWBF.js +3 -0
  21. package/dist/cli-bundle/chunks/chunk-KPH73XXJ.js +2 -0
  22. package/dist/cli-bundle/chunks/{chunk-BKYB45NQ.js → chunk-KXPMB2YL.js} +50 -50
  23. package/dist/cli-bundle/chunks/{chunk-BUNIEJNE.js → chunk-QDVHNHAQ.js} +2 -2
  24. package/dist/cli-bundle/chunks/chunk-TFI5V5N2.js +13 -0
  25. package/dist/cli-bundle/chunks/{register-list-query-F57EWDEF.js → register-list-query-UJB5FMV2.js} +2 -2
  26. package/dist/cli-bundle/chunks/register-mutation-NX5XE4VX.js +20 -0
  27. package/dist/cli-bundle/chunks/register-operations-RXIJIYXC.js +2 -0
  28. package/dist/cli-bundle/chunks/{register-setup-HXU7IZZD.js → register-setup-GFUZEKRE.js} +2 -2
  29. package/dist/cli-bundle/focused-chunks/{chunk-F4YEW5I2.js → chunk-37Z4OEAP.js} +2 -2
  30. package/dist/cli-bundle/focused-chunks/chunk-3UPTYG44.js +8 -0
  31. package/dist/cli-bundle/focused-chunks/chunk-5S7E72FY.js +16 -0
  32. package/dist/cli-bundle/focused-chunks/{chunk-4ERLO7QD.js → chunk-AUFH5H35.js} +2 -2
  33. package/dist/cli-bundle/focused-chunks/chunk-E7X25GC3.js +2 -0
  34. package/dist/cli-bundle/focused-chunks/chunk-FQCSTBWE.js +4 -0
  35. package/dist/cli-bundle/focused-chunks/{chunk-FH6DYED3.js → chunk-FZS4H32O.js} +2 -2
  36. package/dist/cli-bundle/focused-chunks/chunk-IFLWKY2R.js +156 -0
  37. package/dist/cli-bundle/focused-chunks/{chunk-YKBKIEAJ.js → chunk-JOWDB2MH.js} +2 -2
  38. package/dist/cli-bundle/focused-chunks/chunk-LYVSW5VM.js +2 -0
  39. package/dist/cli-bundle/focused-chunks/chunk-MRCNF3U6.js +2 -0
  40. package/dist/cli-bundle/focused-chunks/{chunk-UZE7XUZK.js → chunk-OFVUGTLJ.js} +2 -2
  41. package/dist/cli-bundle/focused-chunks/{chunk-FJ22HNRP.js → chunk-OGLQBL46.js} +2 -2
  42. package/dist/cli-bundle/focused-chunks/chunk-OY7QAV4Y.js +51 -0
  43. package/dist/cli-bundle/focused-chunks/chunk-QGFNI65N.js +26 -0
  44. package/dist/cli-bundle/focused-chunks/{chunk-KDNG7TKQ.js → chunk-R27IDGHD.js} +2 -2
  45. package/dist/cli-bundle/focused-chunks/chunk-UYRFYCDQ.js +5 -0
  46. package/dist/cli-bundle/focused-chunks/{chunk-2NIY5NKG.js → chunk-ZHVA42R5.js} +9 -9
  47. package/dist/cli-bundle/main.js +13 -13
  48. package/dist/cli-bundle/sdk-authoring.js +1 -1
  49. package/dist/cli-bundle/sdk-contracts.js +2 -2
  50. package/dist/cli-bundle/sdk-core.js +40 -40
  51. package/dist/cli-bundle/sdk-governance.js +1 -1
  52. package/dist/cli-bundle/sdk-graph.js +1 -1
  53. package/dist/cli-bundle/sdk-merge.js +33 -32
  54. package/dist/cli-bundle/sdk-query.js +1 -1
  55. package/dist/cli-bundle/sdk-runtime.js +1 -1
  56. package/dist/cli-bundle/sdk-testing.js +1 -1
  57. package/dist/cli-bundle/sdk.js +5 -5
  58. package/dist/core/config/nested-settings.js +8 -2
  59. package/dist/core/config/positional-value.d.ts +1 -1
  60. package/dist/core/config/positional-value.js +5 -2
  61. package/dist/core/extensions/extension-hook-runtime.js +22 -20
  62. package/dist/core/extensions/extension-types.d.ts +8 -1
  63. package/dist/core/extensions/extension-types.js +2 -2
  64. package/dist/core/extensions/loader.js +7 -3
  65. package/dist/core/extensions/service-ownership.d.ts +8 -0
  66. package/dist/core/extensions/service-ownership.js +20 -0
  67. package/dist/core/history/history.js +3 -3
  68. package/dist/core/item/id.js +20 -5
  69. package/dist/core/item/item-format.js +81 -2
  70. package/dist/core/reproducibility/context.d.ts +4 -0
  71. package/dist/core/reproducibility/context.js +14 -8
  72. package/dist/core/shared/author.d.ts +55 -1
  73. package/dist/core/shared/author.js +333 -16
  74. package/dist/core/shared/constants.js +3 -2
  75. package/dist/core/shared/errors.d.ts +4 -0
  76. package/dist/core/shared/errors.js +2 -2
  77. package/dist/core/store/settings-validator.d.ts +1 -0
  78. package/dist/core/store/settings-validator.js +6 -3
  79. package/dist/core/store/settings.js +5 -2
  80. package/dist/mcp/server.d.ts +1 -1
  81. package/dist/mcp/server.js +30 -9
  82. package/dist/sdk/agent/identity-config.d.ts +63 -0
  83. package/dist/sdk/agent/identity-config.js +107 -0
  84. package/dist/sdk/agent/refusal-corpus-contracts.d.ts +76 -0
  85. package/dist/sdk/agent/refusal-corpus-contracts.js +194 -0
  86. package/dist/sdk/agent/refusal-reachability.d.ts +1 -1
  87. package/dist/sdk/authoring.d.ts +1 -1
  88. package/dist/sdk/authoring.js +2 -2
  89. package/dist/sdk/cli-contracts/agent-output-contracts.d.ts +77 -0
  90. package/dist/sdk/cli-contracts/agent-output-contracts.js +326 -2
  91. package/dist/sdk/cli-contracts/commander-mutation-options.js +3 -3
  92. package/dist/sdk/cli-contracts/enum-contracts.d.ts +4 -0
  93. package/dist/sdk/cli-contracts/enum-contracts.js +9 -2
  94. package/dist/sdk/cli-contracts/flag-contracts.js +9 -2
  95. package/dist/sdk/cli-contracts/flag-lexicon-contracts.js +4 -4
  96. package/dist/sdk/cli-contracts/registration-helpers.js +5 -2
  97. package/dist/sdk/cli-contracts/runtime-contracts.d.ts +3 -1
  98. package/dist/sdk/cli-contracts/runtime-contracts.js +4 -3
  99. package/dist/sdk/cli-contracts/tool-parameter-tables.js +22 -2
  100. package/dist/sdk/cli-contracts/tool-schema.d.ts +1 -1
  101. package/dist/sdk/cli-contracts/tool-schema.js +14 -3
  102. package/dist/sdk/cli-contracts.d.ts +4 -4
  103. package/dist/sdk/cli-contracts.js +5 -5
  104. package/dist/sdk/config.d.ts +6 -1
  105. package/dist/sdk/config.js +119 -14
  106. package/dist/sdk/context-intent-contracts.js +4 -2
  107. package/dist/sdk/core-governance.d.ts +1 -1
  108. package/dist/sdk/core-governance.js +3 -3
  109. package/dist/sdk/extension/install-sources.d.ts +1 -1
  110. package/dist/sdk/extension/install-sources.js +6 -3
  111. package/dist/sdk/extension/output-ownership.d.ts +1 -0
  112. package/dist/sdk/extension/output-ownership.js +3 -2
  113. package/dist/sdk/extension/scaffold.js +11 -5
  114. package/dist/sdk/flag-invocation-contracts.js +4 -2
  115. package/dist/sdk/generated/generated-error-code-catalog-part-1.js +74 -2
  116. package/dist/sdk/generated/generated-error-code-catalog-part-2.js +87 -26
  117. package/dist/sdk/governance/assurance-action.js +30 -10
  118. package/dist/sdk/governance/health.d.ts +3 -0
  119. package/dist/sdk/governance/health.js +39 -7
  120. package/dist/sdk/governance/hierarchy-validation.d.ts +29 -0
  121. package/dist/sdk/governance/hierarchy-validation.js +109 -0
  122. package/dist/sdk/governance/validate.d.ts +3 -9
  123. package/dist/sdk/governance/validate.js +84 -111
  124. package/dist/sdk/graph/assembly.d.ts +6 -1
  125. package/dist/sdk/graph/assembly.js +16 -22
  126. package/dist/sdk/graph/governance-contracts.d.ts +1 -1
  127. package/dist/sdk/graph/governance-contracts.js +8 -2
  128. package/dist/sdk/graph/governance.js +46 -2
  129. package/dist/sdk/graph/hierarchy-integrity.d.ts +94 -0
  130. package/dist/sdk/graph/hierarchy-integrity.js +311 -0
  131. package/dist/sdk/graph/index.d.ts +2 -1
  132. package/dist/sdk/graph/index.js +3 -2
  133. package/dist/sdk/graph/remediation.js +32 -2
  134. package/dist/sdk/graph/run.d.ts +31 -2
  135. package/dist/sdk/graph/run.js +80 -31
  136. package/dist/sdk/graph/workspace-relationship-kind-registry.d.ts +8 -0
  137. package/dist/sdk/graph/workspace-relationship-kind-registry.js +28 -0
  138. package/dist/sdk/index.d.ts +8 -3
  139. package/dist/sdk/index.js +9 -4
  140. package/dist/sdk/item-children.js +21 -8
  141. package/dist/sdk/lifecycle/create.js +129 -97
  142. package/dist/sdk/lifecycle/hierarchy-mutation-lock.d.ts +15 -0
  143. package/dist/sdk/lifecycle/hierarchy-mutation-lock.js +25 -0
  144. package/dist/sdk/lifecycle/update.d.ts +2 -0
  145. package/dist/sdk/lifecycle/update.js +174 -84
  146. package/dist/sdk/merge/three-way.js +105 -26
  147. package/dist/sdk/query/complete-list.d.ts +3 -3
  148. package/dist/sdk/query/complete-list.js +46 -3
  149. package/dist/sdk/query/list.d.ts +4 -3
  150. package/dist/sdk/query/list.js +89 -49
  151. package/dist/sdk/read-output-budget.d.ts +21 -0
  152. package/dist/sdk/read-output-budget.js +39 -2
  153. package/dist/sdk/read-output-contracts.d.ts +10 -4
  154. package/dist/sdk/read-output-contracts.js +105 -32
  155. package/dist/sdk/relationship-context.js +3 -4
  156. package/dist/sdk/relationships.js +17 -10
  157. package/dist/sdk/reproducibility/process.d.ts +19 -0
  158. package/dist/sdk/reproducibility/process.js +88 -0
  159. package/dist/sdk/runtime-primitives.d.ts +1 -1
  160. package/dist/sdk/runtime-primitives.js +3 -3
  161. package/dist/sdk/runtime.d.ts +3 -2
  162. package/dist/sdk/runtime.js +7 -5
  163. package/dist/sdk/test/batch.d.ts +6 -0
  164. package/dist/sdk/test/batch.js +26 -6
  165. package/dist/sdk/test/entry.d.ts +1 -1
  166. package/dist/sdk/test/entry.js +3 -2
  167. package/dist/sdk/test/execution.d.ts +28 -3
  168. package/dist/sdk/test/execution.js +201 -34
  169. package/dist/sdk/test/parsers.d.ts +6 -0
  170. package/dist/sdk/test/parsers.js +21 -2
  171. package/dist/sdk/test/trust.d.ts +33 -0
  172. package/dist/sdk/test/trust.js +207 -0
  173. package/dist/types.d.ts +34 -0
  174. package/dist/types.js +2 -2
  175. package/docs/AGENT_PROVENANCE_ADR.md +41 -5
  176. package/docs/AGENT_UX_CONTRACTS.md +20 -4
  177. package/docs/COMMANDS.md +29 -14
  178. package/docs/CONFIGURATION.md +4 -0
  179. package/docs/DEPENDENCY_KIND_CONTRACT.md +31 -3
  180. package/docs/DIAGNOSTIC_OUTPUT_CONTRACTS.md +115 -0
  181. package/docs/EXTENSIONS.md +2 -1
  182. package/docs/MERGE_SAFETY.md +15 -1
  183. package/docs/README.md +1 -0
  184. package/docs/READ_OUTPUT_CONTRACTS.md +19 -2
  185. package/docs/RELATIONSHIP_GRAPH.md +6 -3
  186. package/docs/REPRODUCIBLE_WORKSPACES.md +42 -8
  187. package/docs/SDK.md +9 -0
  188. package/docs/SDK_AGENT_SESSION_CONTEXT.md +6 -4
  189. package/docs/SDK_EVIDENCE_TRACEABILITY.md +1 -1
  190. package/docs/TESTING.md +83 -1
  191. package/docs/agent-task-token-baseline.json +2 -2
  192. package/docs/generated/FLAG_LEXICON_BUDGETS.md +2 -2
  193. package/marketplace.json +2 -2
  194. package/package.json +2 -2
  195. package/packages/pm-beads/package.json +1 -1
  196. package/packages/pm-calendar/package.json +1 -1
  197. package/packages/pm-command-kit/package.json +1 -1
  198. package/packages/pm-digital-twin/package.json +1 -1
  199. package/packages/pm-governance-audit/package.json +1 -1
  200. package/packages/pm-guide-shell/package.json +1 -1
  201. package/packages/pm-kanban/package.json +1 -1
  202. package/packages/pm-lifecycle-hooks/package.json +1 -1
  203. package/packages/pm-linked-test-adapters/package.json +1 -1
  204. package/packages/pm-search-advanced/package.json +1 -1
  205. package/packages/pm-templates/package.json +1 -1
  206. package/packages/pm-todos/package.json +1 -1
  207. package/packages/pm-vcs/package.json +1 -1
  208. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  209. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  210. package/sdk/public-surface.json +1021 -53
  211. package/dist/cli-bundle/chunks/chunk-2MA6ZQVZ.js +0 -197
  212. package/dist/cli-bundle/chunks/chunk-3AFAUHUE.js +0 -2
  213. package/dist/cli-bundle/chunks/chunk-7VHZS727.js +0 -5
  214. package/dist/cli-bundle/chunks/chunk-JSLOFXGA.js +0 -3
  215. package/dist/cli-bundle/chunks/chunk-OCLPLFAY.js +0 -35
  216. package/dist/cli-bundle/chunks/chunk-S4IRYKBU.js +0 -13
  217. package/dist/cli-bundle/chunks/register-mutation-7IY2D5KO.js +0 -20
  218. package/dist/cli-bundle/chunks/register-operations-FALL3YTU.js +0 -2
  219. package/dist/cli-bundle/focused-chunks/chunk-7WZRLCYF.js +0 -50
  220. package/dist/cli-bundle/focused-chunks/chunk-CKKQSJNN.js +0 -2
  221. package/dist/cli-bundle/focused-chunks/chunk-EEFKYMDR.js +0 -16
  222. package/dist/cli-bundle/focused-chunks/chunk-F2A56DHV.js +0 -8
  223. package/dist/cli-bundle/focused-chunks/chunk-FV5ACOK7.js +0 -2
  224. package/dist/cli-bundle/focused-chunks/chunk-JEAVFOWM.js +0 -2
  225. package/dist/cli-bundle/focused-chunks/chunk-NJ63LOP6.js +0 -155
  226. package/dist/cli-bundle/focused-chunks/chunk-NXRTQ7HI.js +0 -2
  227. package/dist/cli-bundle/focused-chunks/chunk-TJ7EMJ46.js +0 -4
  228. package/dist/cli-bundle/focused-chunks/chunk-ZOSEELYJ.js +0 -26
@@ -1,5 +1,5 @@
1
1
 
2
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="975321a1-0375-5829-a012-f23e32e9c6bf")}catch(e){}}();
2
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="7377fa65-aaa9-5d28-b3fb-a8becaf0d484")}catch(e){}}();
3
3
  import { resolveRuntimeStatusRegistry, setActiveCommandResult, EXIT_CODE, PmCliError, createUnknownSubcommandError, resolveAuthor, resolvePmRoot, readSettings, } from "../sdk/runtime-primitives.js";
4
4
  import { resolveStartTaskInProgressStatus } from "../sdk/start-task-status.js";
5
5
  import { parseStatsAnalyticsJson } from "./stats-analytics-json.js";
@@ -66,6 +66,9 @@ function validateBackgroundTestOptions(options, values) {
66
66
  if (options.run !== true) {
67
67
  throw new PmCliError("--background requires --run", EXIT_CODE.USAGE);
68
68
  }
69
+ if (options.acknowledgeLinkedTests === true) {
70
+ throw new PmCliError("--background cannot be combined with --acknowledge-linked-tests; acknowledgement is a non-executing foreground operation", EXIT_CODE.USAGE);
71
+ }
69
72
  if (values.addValues.length > 0 ||
70
73
  values.addJsonValues.length > 0 ||
71
74
  values.removeValues.length > 0 ||
@@ -112,6 +115,12 @@ function buildRunTestOptions(options, values) {
112
115
  sharedHostSafe: Boolean(options.sharedHostSafe),
113
116
  pmContext: typeof options.pmContext === "string" ? options.pmContext : undefined,
114
117
  overrideLinkedPmContext: Boolean(options.overrideLinkedPmContext),
118
+ workspaceContext: typeof options.workspaceContext === "string"
119
+ ? options.workspaceContext
120
+ : undefined,
121
+ overrideLinkedWorkspaceContext: Boolean(options.overrideLinkedWorkspaceContext),
122
+ allowUntrustedLinkedTests: Boolean(options.allowUntrustedLinkedTests),
123
+ acknowledgeLinkedTests: Boolean(options.acknowledgeLinkedTests),
115
124
  failOnContextMismatch: Boolean(options.failOnContextMismatch),
116
125
  failOnSkipped: Boolean(options.failOnSkipped),
117
126
  failOnEmptyTestRun: Boolean(options.failOnEmptyTestRun),
@@ -128,6 +137,12 @@ function buildRunTestOptions(options, values) {
128
137
  metricDiff: typeof options.metricDiff === "string" ? options.metricDiff : undefined,
129
138
  };
130
139
  }
140
+ /** Public contract for test-only operation adapter coverage. */
141
+ export const _testOnlyRegisterOperations = {
142
+ buildRunTestOptions,
143
+ buildRunTestAllOptions,
144
+ validateBackgroundTestOptions,
145
+ };
131
146
  async function runForegroundLinkedTests(id, options, globalOptions, values) {
132
147
  const result = await runTest(id, buildRunTestOptions(options, values), globalOptions);
133
148
  if (values.addValues.length > 0 ||
@@ -193,7 +208,20 @@ async function runTestAllAction(options, command) {
193
208
  }
194
209
  return;
195
210
  }
196
- const result = await runTestAll({
211
+ const result = await runTestAll(buildRunTestAllOptions(options), globalOptions);
212
+ await invalidateSearchCachesForMutation(globalOptions, {
213
+ ids: result.results.map((entry) => entry.id),
214
+ });
215
+ printResult(result, globalOptions);
216
+ if (result.failed > 0 || result.fail_on_skipped_triggered === true) {
217
+ process.exitCode = EXIT_CODE.DEPENDENCY_FAILED;
218
+ }
219
+ if (globalOptions.profile) {
220
+ printError(`profile:command=test-all took_ms=${Date.now() - startedAt}`);
221
+ }
222
+ }
223
+ function buildRunTestAllOptions(options) {
224
+ return {
197
225
  status: readOptionString(options, "status"),
198
226
  limit: readOptionString(options, "limit"),
199
227
  offset: readOptionString(options, "offset"),
@@ -206,23 +234,16 @@ async function runTestAllAction(options, command) {
206
234
  sharedHostSafe: Boolean(options.sharedHostSafe),
207
235
  pmContext: readOptionString(options, "pmContext"),
208
236
  overrideLinkedPmContext: Boolean(options.overrideLinkedPmContext),
237
+ workspaceContext: readOptionString(options, "workspaceContext"),
238
+ overrideLinkedWorkspaceContext: Boolean(options.overrideLinkedWorkspaceContext),
239
+ allowUntrustedLinkedTests: Boolean(options.allowUntrustedLinkedTests),
209
240
  failOnContextMismatch: Boolean(options.failOnContextMismatch),
210
241
  failOnSkipped: Boolean(options.failOnSkipped),
211
242
  failOnEmptyTestRun: Boolean(options.failOnEmptyTestRun),
212
243
  requireAssertionsForPm: Boolean(options.requireAssertionsForPm),
213
244
  checkContext: Boolean(options.checkContext),
214
245
  autoPmContext: Boolean(options.autoPmContext),
215
- }, globalOptions);
216
- await invalidateSearchCachesForMutation(globalOptions, {
217
- ids: result.results.map((entry) => entry.id),
218
- });
219
- printResult(result, globalOptions);
220
- if (result.failed > 0 || result.fail_on_skipped_triggered === true) {
221
- process.exitCode = EXIT_CODE.DEPENDENCY_FAILED;
222
- }
223
- if (globalOptions.profile) {
224
- printError(`profile:command=test-all took_ms=${Date.now() - startedAt}`);
225
- }
246
+ };
226
247
  }
227
248
  async function runTelemetryAction(namespaceOrSubcommand, subcommand, options, command) {
228
249
  const globalOptions = getGlobalOptions(command);
@@ -558,6 +579,9 @@ function addLinkedTestExecutionOptions(command) {
558
579
  .option("--shared-host-safe", "Apply additive shared-host-safe runtime defaults for linked-test runs")
559
580
  .option("--pm-context <mode>", "PM linked-test context mode: schema|tracker|auto (default: schema)")
560
581
  .option("--override-linked-pm-context", "Force run-level --pm-context to override per-linked-test pm_context_mode metadata")
582
+ .option("--workspace-context <mode>", "Source-workspace mode: source|isolated|snapshot (default: source)")
583
+ .option("--override-linked-workspace-context", "Force run-level --workspace-context over per-linked-test metadata")
584
+ .option("--allow-untrusted-linked-tests", "Execute untrusted linked commands when project policy also permits it")
561
585
  .option("--fail-on-context-mismatch", "Fail linked PM commands when context item counts differ")
562
586
  .option("--fail-on-skipped", "Treat skipped linked tests as dependency failures")
563
587
  .option("--fail-on-empty-test-run", "Treat successful linked-test commands that report zero executed tests as failures")
@@ -580,6 +604,7 @@ export function registerOperationCommands(program) {
580
604
  .option("--match <value>", "Run only linked tests whose command/path contains this substring")
581
605
  .option("--only-index <n>", "Run only the 1-based linked-test index from --list order")
582
606
  .option("--only-last", "Run only the most recently added linked test");
607
+ testCommand.option("--acknowledge-linked-tests", "Trust the item's current linked commands in this clone without executing them");
583
608
  addLinkedTestExecutionOptions(testCommand)
584
609
  .option("--measure <value>", "Record name=value[,unit=...][,threshold=...] evidence; repeatable", collect)
585
610
  .option("--metric-below <value>", "Return evidence below name=value")
@@ -873,4 +898,4 @@ function registerSchedulingShortcutCommands(program) {
873
898
  });
874
899
  }
875
900
  //# sourceMappingURL=register-operations.js.map
876
- //# debugId=975321a1-0375-5829-a012-f23e32e9c6bf
901
+ //# debugId=7377fa65-aaa9-5d28-b3fb-a8becaf0d484
@@ -1,5 +1,5 @@
1
1
 
2
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="d498a64c-9680-52a9-981d-4ce86949784d")}catch(e){}}();
2
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="2a7939ad-52a6-5d9c-b7cf-2bc59a6b3d32")}catch(e){}}();
3
3
  import fs from "node:fs/promises";
4
4
  import path from "node:path";
5
5
  import { EXIT_CODE, PmCliError, } from "../sdk/runtime-primitives.js";
@@ -622,7 +622,7 @@ export function registerSetupCommands(program) {
622
622
  .option("--criterion <text>", "Criteria value for definition-of-done, metadata-required-fields, or lifecycle pattern keys (repeatable for set)", collect)
623
623
  .option("--clear-criteria", "Clear criteria-list keys for config set operations")
624
624
  .option("--format <value>", "Item format for item-format key: toon")
625
- .option("--policy <value>", "Policy key values: history-missing-stream-policy=auto_create|strict_error; sprint-release-format-policy=warn|strict_error; parent-reference-policy=warn|strict_error; governance-preset=minimal|default|strict|custom; governance-ownership-enforcement=none|warn|strict; governance-create-mode-default=progressive|strict; governance-close-validation-default=off|warn|strict; governance-require-close-reason=enabled|disabled; governance-parent-reference-policy=warn|strict_error; governance-metadata-validation-profile=core|strict|custom; governance-force-required-for-stale-lock=enabled|disabled; governance-duplicate-detection-mode=off|advisory|strict; test-result-tracking=enabled|disabled; telemetry-tracking=enabled|disabled")
625
+ .option("--policy <value>", "Policy key values: history-missing-stream-policy=auto_create|strict_error; sprint-release-format-policy=warn|strict_error; parent-reference-policy=warn|strict_error; governance-preset=minimal|default|strict|custom; governance-ownership-enforcement=none|warn|strict; governance-create-mode-default=progressive|strict; governance-close-validation-default=off|warn|strict; governance-require-close-reason=enabled|disabled; governance-parent-reference-policy=warn|strict_error; governance-metadata-validation-profile=core|strict|custom; governance-force-required-for-stale-lock=enabled|disabled; governance-duplicate-detection-mode=off|advisory|strict; test-result-tracking=enabled|disabled; untrusted-linked-test-execution=enabled|disabled; telemetry-tracking=enabled|disabled")
626
626
  .option("--value <value>", "Typed nested setting value. Mutation guards: require-attributed-author=true|false, secret-guard=off|advise|block, stale-in-progress-hours=integer>=1. Kebab-case is preferred; underscore aliases remain accepted.")
627
627
  .option("--default-depth <value>", "Context default depth: brief|standard|deep")
628
628
  .option("--activity-limit <n>", "Context default activity limit")
@@ -673,4 +673,4 @@ export function registerSetupCommands(program) {
673
673
  });
674
674
  }
675
675
  //# sourceMappingURL=register-setup.js.map
676
- //# debugId=d498a64c-9680-52a9-981d-4ce86949784d
676
+ //# debugId=2a7939ad-52a6-5d9c-b7cf-2bc59a6b3d32
@@ -5,7 +5,14 @@
5
5
  * registration and its focused contract tests.
6
6
  */
7
7
  import { isPureSnakeCaseAlias } from "../sdk/runtime-primitives.js";
8
- /** Return whether a shorthand token resembles a misspelled schema subcommand. */
8
+ /**
9
+ * Return whether a token must remain on the schema-action refusal path.
10
+ *
11
+ * Bare custom-type shorthand is intentionally limited to PascalCase names.
12
+ * Lowercase tokens occupy the action namespace, so a misspelling such as
13
+ * `pm schema nonsense` cannot silently register a new type. Explicit
14
+ * `pm schema add-type <name>` remains available for every valid type name.
15
+ */
9
16
  export declare function looksLikeSchemaSubcommandTypo(value: string): boolean;
10
17
  /**
11
18
  * Parse the integer `--order` value accepted by `pm schema add-status`.
@@ -5,7 +5,7 @@
5
5
  * registration and its focused contract tests.
6
6
  */
7
7
 
8
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="af464386-4cc8-5110-b0b6-9f63224baa8e")}catch(e){}}();
8
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="2e6b30ea-5891-578a-9e6c-a612aa26361f")}catch(e){}}();
9
9
  import { EXIT_CODE, PmCliError, isPureSnakeCaseAlias, } from "../sdk/runtime-primitives.js";
10
10
  const SCHEMA_SHORTHAND_RESERVED_PREFIXES = [
11
11
  "add-",
@@ -23,13 +23,22 @@ const SCHEMA_SHORTHAND_RESERVED_TOKENS = new Set([
23
23
  "type",
24
24
  "types",
25
25
  ]);
26
- /** Return whether a shorthand token resembles a misspelled schema subcommand. */
26
+ /**
27
+ * Return whether a token must remain on the schema-action refusal path.
28
+ *
29
+ * Bare custom-type shorthand is intentionally limited to PascalCase names.
30
+ * Lowercase tokens occupy the action namespace, so a misspelling such as
31
+ * `pm schema nonsense` cannot silently register a new type. Explicit
32
+ * `pm schema add-type <name>` remains available for every valid type name.
33
+ */
27
34
  export function looksLikeSchemaSubcommandTypo(value) {
28
- const normalized = value.trim().toLowerCase();
35
+ const trimmed = value.trim();
36
+ const normalized = trimmed.toLowerCase();
29
37
  if (normalized.length === 0) {
30
38
  return false;
31
39
  }
32
- return (SCHEMA_SHORTHAND_RESERVED_TOKENS.has(normalized) ||
40
+ return (trimmed[0] === normalized[0] ||
41
+ SCHEMA_SHORTHAND_RESERVED_TOKENS.has(normalized) ||
33
42
  SCHEMA_SHORTHAND_RESERVED_PREFIXES.some((prefix) => normalized.startsWith(prefix)));
34
43
  }
35
44
  /**
@@ -62,4 +71,4 @@ export function parseSchemaOrderOption(raw) {
62
71
  }
63
72
  export { isPureSnakeCaseAlias };
64
73
  //# sourceMappingURL=schema-registration-helpers.js.map
65
- //# debugId=af464386-4cc8-5110-b0b6-9f63224baa8e
74
+ //# debugId=2e6b30ea-5891-578a-9e6c-a612aa26361f