@unbrained/pm-cli 2026.9.5 → 2026.9.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (185) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/CHANGELOG.md +32 -2
  3. package/dist/cli/main.js +10 -8
  4. package/dist/cli/register-operations.js +13 -8
  5. package/dist/cli-bundle/bundle-manifest.json +150 -158
  6. package/dist/cli-bundle/chunks/chunk-AZDFJGH6.js +9 -0
  7. package/dist/cli-bundle/chunks/{chunk-WWAEGW4V.js → chunk-BAX2BYUW.js} +66 -66
  8. package/dist/cli-bundle/chunks/{chunk-IBYREGSP.js → chunk-CKOL5U7J.js} +51 -51
  9. package/dist/cli-bundle/chunks/{chunk-ZRAQS3UA.js → chunk-JT6XF6GE.js} +2 -2
  10. package/dist/cli-bundle/chunks/{chunk-HUAQITVW.js → chunk-JX4DH4WC.js} +2 -2
  11. package/dist/cli-bundle/chunks/{chunk-QPZHQY2O.js → chunk-NPN5I67J.js} +2 -2
  12. package/dist/cli-bundle/chunks/{chunk-66VPKFP2.js → chunk-OF76PSDQ.js} +2 -2
  13. package/dist/cli-bundle/chunks/chunk-QUWFABDM.js +232 -0
  14. package/dist/cli-bundle/chunks/{chunk-3HBDTJRK.js → chunk-RWWBOWJ5.js} +2 -2
  15. package/dist/cli-bundle/chunks/chunk-WGAOYSYH.js +40 -0
  16. package/dist/cli-bundle/chunks/{chunk-SF6SM6U5.js → chunk-WI2AYPA7.js} +2 -2
  17. package/dist/cli-bundle/chunks/{register-list-query-AYKGODWT.js → register-list-query-5JL52D33.js} +2 -2
  18. package/dist/cli-bundle/chunks/{register-mutation-YZYG53SQ.js → register-mutation-ZPG7KMVP.js} +2 -2
  19. package/dist/cli-bundle/chunks/register-operations-I5W3KMGB.js +2 -0
  20. package/dist/cli-bundle/chunks/{register-setup-UJCRVGBG.js → register-setup-H4SVAVX7.js} +2 -2
  21. package/dist/cli-bundle/focused-chunks/{chunk-QL66QNWG.js → chunk-3BZEOXLT.js} +2 -2
  22. package/dist/cli-bundle/focused-chunks/chunk-AL5ON6K6.js +2 -0
  23. package/dist/cli-bundle/focused-chunks/chunk-CHC2IDXA.js +6 -0
  24. package/dist/cli-bundle/focused-chunks/chunk-CK6QFAPZ.js +20 -0
  25. package/dist/cli-bundle/focused-chunks/{chunk-WOCIPMW7.js → chunk-EZR3GHFE.js} +2 -2
  26. package/dist/cli-bundle/focused-chunks/chunk-H2WJWK7L.js +56 -0
  27. package/dist/cli-bundle/focused-chunks/{chunk-3ASU6WGI.js → chunk-LIJIA4TY.js} +2 -2
  28. package/dist/cli-bundle/focused-chunks/{chunk-H5FOGAVD.js → chunk-M6PBRFSH.js} +2 -2
  29. package/dist/cli-bundle/focused-chunks/{chunk-B2TTQGFG.js → chunk-NTPY5GSO.js} +2 -2
  30. package/dist/cli-bundle/focused-chunks/chunk-P5O7MP5Y.js +2 -0
  31. package/dist/cli-bundle/focused-chunks/chunk-PDMW2E36.js +177 -0
  32. package/dist/cli-bundle/focused-chunks/{chunk-YEF5PQQ2.js → chunk-PEFABF7E.js} +2 -2
  33. package/dist/cli-bundle/focused-chunks/{chunk-KWWCBWFO.js → chunk-QTVCLMSZ.js} +2 -2
  34. package/dist/cli-bundle/focused-chunks/{chunk-4OSHLNUE.js → chunk-QTZRBUYA.js} +2 -2
  35. package/dist/cli-bundle/focused-chunks/chunk-SGQST3PQ.js +12 -0
  36. package/dist/cli-bundle/focused-chunks/chunk-UKHASMMP.js +10 -0
  37. package/dist/cli-bundle/focused-chunks/chunk-ZPEKQHOC.js +2 -0
  38. package/dist/cli-bundle/main.js +20 -20
  39. package/dist/cli-bundle/sdk-authoring.js +1 -1
  40. package/dist/cli-bundle/sdk-contracts.js +2 -2
  41. package/dist/cli-bundle/sdk-core.js +37 -37
  42. package/dist/cli-bundle/sdk-governance.js +1 -1
  43. package/dist/cli-bundle/sdk-graph.js +1 -1
  44. package/dist/cli-bundle/sdk-merge.js +42 -42
  45. package/dist/cli-bundle/sdk-query.js +1 -1
  46. package/dist/cli-bundle/sdk-runtime.js +1 -1
  47. package/dist/cli-bundle/sdk-testing.js +1 -1
  48. package/dist/cli-bundle/sdk.js +9 -9
  49. package/dist/core/extensions/module-graph-snapshot.js +5 -4
  50. package/dist/core/fs/host-environment-errors.d.ts +27 -0
  51. package/dist/core/fs/host-environment-errors.js +142 -0
  52. package/dist/core/output/mutation-projection.js +12 -5
  53. package/dist/core/store/item-metadata-query-index.js +13 -10
  54. package/dist/core/store/item-metadata-read-work.d.ts +19 -0
  55. package/dist/core/store/item-metadata-read-work.js +44 -0
  56. package/dist/core/store/item-store.js +6 -2
  57. package/dist/core/validate/fix-planning.d.ts +1 -1
  58. package/dist/core/validate/fix-planning.js +2 -2
  59. package/dist/core/validate/missing-link-owners.d.ts +1 -1
  60. package/dist/core/validate/missing-link-owners.js +5 -3
  61. package/dist/core/validate/stale-file-classification.d.ts +6 -4
  62. package/dist/core/validate/stale-file-classification.js +20 -5
  63. package/dist/mcp/server.js +12 -5
  64. package/dist/sdk/cli-contracts/flag-contracts.d.ts +2 -0
  65. package/dist/sdk/cli-contracts/flag-contracts.js +7 -5
  66. package/dist/sdk/cli-contracts/flag-lexicon-contracts.js +4 -3
  67. package/dist/sdk/cli-contracts/grammar-contracts.js +11 -2
  68. package/dist/sdk/cli-contracts/runtime-contracts.js +5 -2
  69. package/dist/sdk/cli-contracts/schemas/assurance-definition.d.ts +254 -5
  70. package/dist/sdk/cli-contracts/schemas/assurance-definition.js +52 -2
  71. package/dist/sdk/cli-contracts/tool-parameter-tables.js +18 -6
  72. package/dist/sdk/cli-contracts/tool-schema.d.ts +2 -2
  73. package/dist/sdk/cli-contracts/tool-schema.js +17 -5
  74. package/dist/sdk/context/usage-ledger.d.ts +41 -0
  75. package/dist/sdk/context/usage-ledger.js +186 -0
  76. package/dist/sdk/context-usage.d.ts +18 -9
  77. package/dist/sdk/context-usage.js +37 -112
  78. package/dist/sdk/dependency-provenance.d.ts +7 -0
  79. package/dist/sdk/dependency-provenance.js +14 -4
  80. package/dist/sdk/duplicates.d.ts +2 -0
  81. package/dist/sdk/duplicates.js +3 -2
  82. package/dist/sdk/environment/host-environment-errors.d.ts +5 -27
  83. package/dist/sdk/environment/host-environment-errors.js +4 -137
  84. package/dist/sdk/extension/install-runtime.js +9 -6
  85. package/dist/sdk/extension/install-snapshot.js +7 -6
  86. package/dist/sdk/generated/generated-error-code-catalog-part-1.js +8 -8
  87. package/dist/sdk/governance/assurance-action.d.ts +3 -2
  88. package/dist/sdk/governance/assurance-action.js +23 -11
  89. package/dist/sdk/governance/assurance-runtime.d.ts +2 -0
  90. package/dist/sdk/governance/assurance-runtime.js +6 -3
  91. package/dist/sdk/governance/defect-recurrence-coverage.d.ts +93 -0
  92. package/dist/sdk/governance/defect-recurrence-coverage.js +189 -0
  93. package/dist/sdk/governance/defect-recurrence-graph.d.ts +33 -0
  94. package/dist/sdk/governance/defect-recurrence-graph.js +121 -0
  95. package/dist/sdk/governance/defect-recurrence.d.ts +8 -0
  96. package/dist/sdk/governance/defect-recurrence.js +118 -17
  97. package/dist/sdk/governance/health.d.ts +17 -2
  98. package/dist/sdk/governance/health.js +31 -10
  99. package/dist/sdk/governance/linked-file-report.d.ts +41 -0
  100. package/dist/sdk/governance/linked-file-report.js +72 -0
  101. package/dist/sdk/governance/validate.d.ts +5 -2
  102. package/dist/sdk/governance/validate.js +21 -37
  103. package/dist/sdk/governance.d.ts +2 -0
  104. package/dist/sdk/governance.js +4 -2
  105. package/dist/sdk/history-repair.d.ts +7 -0
  106. package/dist/sdk/history-repair.js +48 -13
  107. package/dist/sdk/lifecycle/close.d.ts +8 -0
  108. package/dist/sdk/lifecycle/close.js +16 -8
  109. package/dist/sdk/lifecycle/create.js +9 -12
  110. package/dist/sdk/lifecycle/update.js +12 -12
  111. package/dist/sdk/lifecycle-policy.d.ts +3 -0
  112. package/dist/sdk/lifecycle-policy.js +2 -2
  113. package/dist/sdk/merge/abandoned-receipts.d.ts +15 -0
  114. package/dist/sdk/merge/abandoned-receipts.js +47 -0
  115. package/dist/sdk/merge/driver.js +4 -2
  116. package/dist/sdk/merge/index.d.ts +1 -0
  117. package/dist/sdk/merge/index.js +2 -2
  118. package/dist/sdk/merge/receipt-operation.d.ts +15 -0
  119. package/dist/sdk/merge/receipt-operation.js +97 -0
  120. package/dist/sdk/merge/receipt-schema.d.ts +20 -0
  121. package/dist/sdk/merge/receipt-schema.js +398 -0
  122. package/dist/sdk/merge/receipts.d.ts +16 -7
  123. package/dist/sdk/merge/receipts.js +54 -340
  124. package/dist/sdk/merge/reconcile.d.ts +2 -0
  125. package/dist/sdk/merge/reconcile.js +11 -4
  126. package/dist/sdk/public-surface.json +1 -1
  127. package/dist/sdk/query/duplicate-candidates.d.ts +7 -0
  128. package/dist/sdk/query/duplicate-candidates.js +71 -0
  129. package/dist/sdk/query/get.js +7 -7
  130. package/dist/sdk/query.d.ts +2 -0
  131. package/dist/sdk/query.js +4 -2
  132. package/dist/sdk/read-output-session.js +5 -3
  133. package/dist/sdk/runtime.js +4 -2
  134. package/dist/sdk/similarity.d.ts +24 -3
  135. package/dist/sdk/similarity.js +50 -55
  136. package/docs/AGENT_GUIDE.md +23 -2
  137. package/docs/BOUNDED_CONTEXT_READS.md +185 -0
  138. package/docs/CLOSE_EVIDENCE_RECOVERY.md +35 -0
  139. package/docs/COMMANDS.md +30 -8
  140. package/docs/CONTEXT_RELEVANCE.md +16 -4
  141. package/docs/DEFECT_RECURRENCE.md +80 -6
  142. package/docs/EXTENSIONS.md +18 -19
  143. package/docs/MERGE_SAFETY.md +50 -0
  144. package/docs/OUTPUT_PROJECTION_CONTRACTS.md +66 -0
  145. package/docs/PR_REVIEW_LOOP.md +18 -3
  146. package/docs/README.md +18 -1
  147. package/docs/RELEASING.md +6 -2
  148. package/docs/SDK_LIFECYCLE.md +27 -0
  149. package/docs/SDK_RUNTIME_BOUNDARIES.md +11 -0
  150. package/docs/generated/FLAG_LEXICON_BUDGETS.md +1 -1
  151. package/marketplace.json +2 -2
  152. package/package.json +6 -3
  153. package/packages/pm-beads/package.json +1 -1
  154. package/packages/pm-calendar/package.json +1 -1
  155. package/packages/pm-command-kit/package.json +1 -1
  156. package/packages/pm-digital-twin/package.json +1 -1
  157. package/packages/pm-governance-audit/README.md +10 -1
  158. package/packages/pm-governance-audit/extensions/governance-audit/dedupe-audit.ts +50 -65
  159. package/packages/pm-governance-audit/extensions/governance-audit/index.ts +2 -2
  160. package/packages/pm-governance-audit/extensions/governance-audit/sdk.ts +1 -0
  161. package/packages/pm-governance-audit/package.json +1 -1
  162. package/packages/pm-guide-shell/package.json +1 -1
  163. package/packages/pm-kanban/package.json +1 -1
  164. package/packages/pm-lifecycle-hooks/package.json +1 -1
  165. package/packages/pm-linked-test-adapters/package.json +1 -1
  166. package/packages/pm-search-advanced/package.json +1 -1
  167. package/packages/pm-templates/package.json +1 -1
  168. package/packages/pm-todos/package.json +1 -1
  169. package/packages/pm-vcs/package.json +1 -1
  170. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  171. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  172. package/dist/cli-bundle/chunks/chunk-LUI4E32I.js +0 -231
  173. package/dist/cli-bundle/chunks/chunk-SVK5Y64D.js +0 -40
  174. package/dist/cli-bundle/chunks/chunk-V5GBD5KV.js +0 -9
  175. package/dist/cli-bundle/chunks/register-operations-KFSCC7QV.js +0 -2
  176. package/dist/cli-bundle/focused-chunks/chunk-24IG6ONG.js +0 -2
  177. package/dist/cli-bundle/focused-chunks/chunk-3ITLIBKS.js +0 -56
  178. package/dist/cli-bundle/focused-chunks/chunk-3NQD5YDG.js +0 -2
  179. package/dist/cli-bundle/focused-chunks/chunk-65N6JHAN.js +0 -2
  180. package/dist/cli-bundle/focused-chunks/chunk-GUBM3RGY.js +0 -20
  181. package/dist/cli-bundle/focused-chunks/chunk-JX3RCVCX.js +0 -2
  182. package/dist/cli-bundle/focused-chunks/chunk-MV752SUC.js +0 -12
  183. package/dist/cli-bundle/focused-chunks/chunk-PKIPMCFS.js +0 -6
  184. package/dist/cli-bundle/focused-chunks/chunk-RJMR2JIF.js +0 -9
  185. package/dist/cli-bundle/focused-chunks/chunk-WIUPWIZR.js +0 -177
@@ -7,7 +7,7 @@
7
7
  * flag surface stays single-sourced across the CLI, SDK, and MCP boundaries.
8
8
  */
9
9
 
10
- !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]="c6dc8dad-a285-57b8-b2f4-68004903bb8d")}catch(e){}}();
10
+ !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]="573d318a-5ebe-5547-8be7-16026a077c84")}catch(e){}}();
11
11
  import { normalizeUniqueStringList } from "./string-lists.js";
12
12
  import { RESERVED_EXTENSION_HOST_FLAGS } from "../../core/extensions/reserved-host-flags.js";
13
13
  import { PM_POSITIONAL_ACTION_CONTRACTS, } from "./grammar-contracts.js";
@@ -67,15 +67,16 @@ export function compactFlagAliasContracts(flagContracts) {
67
67
  /** Public contract for subcommand global flag contracts, shared by SDK and presentation-layer consumers. */
68
68
  export const SUBCOMMAND_GLOBAL_FLAG_CONTRACTS = RESERVED_EXTENSION_HOST_FLAGS.map((definition) => ({
69
69
  flag: definition.flag,
70
+ reservation_scope: "inherited",
70
71
  ...(definition.aliases ? { aliases: [...definition.aliases] } : {}),
71
72
  ...(definition.value_name ? { value_name: definition.value_name } : {}),
72
73
  }));
73
74
  /** Public contract for global flag contracts, shared by SDK and presentation-layer consumers. */
74
75
  export const GLOBAL_FLAG_CONTRACTS = [
75
76
  ...SUBCOMMAND_GLOBAL_FLAG_CONTRACTS,
76
- { flag: "--version", value_type: "boolean" },
77
- { flag: "--all", value_type: "boolean", description: "Expand root help to every command." },
78
- { flag: "--explain", value_type: "boolean", description: "Expand root help with command guidance." },
77
+ { flag: "--version", value_type: "boolean", reservation_scope: "root_only" },
78
+ { flag: "--all", value_type: "boolean", reservation_scope: "root_only", description: "Expand root help to every command." },
79
+ { flag: "--explain", value_type: "boolean", reservation_scope: "root_only", description: "Expand root help with command guidance." },
79
80
  ];
80
81
  /** Governance-missing (GH-236) + content-field presence/absence (GH-242) selection-filter flags shared verbatim by the `list` and `search` flag tables. Module-private on purpose — spread into both tables at the same position so the published contract order is unchanged. */
81
82
  const GOVERNANCE_AND_CONTENT_FILTER_FLAG_CONTRACTS = [
@@ -984,6 +985,7 @@ export const STATS_FLAG_CONTRACTS = [
984
985
  ];
985
986
  /** Public contract for duplicate-cluster discovery flags. */
986
987
  export const DUPLICATES_FLAG_CONTRACTS = [
988
+ { flag: "--exhaustive", value_type: "boolean" },
987
989
  { flag: "--status", repeatable: true, list: true },
988
990
  { flag: "--since" },
989
991
  { flag: "--threshold" },
@@ -1943,4 +1945,4 @@ export function toCompletionFlagString(flagContracts, includeGlobal = true) {
1943
1945
  return normalizeUniqueStringList(all).join(" ");
1944
1946
  }
1945
1947
  //# sourceMappingURL=flag-contracts.js.map
1946
- //# debugId=c6dc8dad-a285-57b8-b2f4-68004903bb8d
1948
+ //# debugId=573d318a-5ebe-5547-8be7-16026a077c84
@@ -5,7 +5,7 @@
5
5
  * per-command growth budgets.
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]="14b6d270-bdc4-54cf-9c66-da4cb2b0843b")}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]="3fdfd4c8-a7ef-5469-acf5-bc2577fd141a")}catch(e){}}();
9
9
  import { hasSubcommandFlagContractsForCommand, resolveSubcommandFlagContractsForCommand, } from "./flag-contracts.js";
10
10
  import { PM_COMMAND_CAPABILITY_CONTRACTS, } from "../agent-capability-contracts.js";
11
11
  import { enrichCliFlagInvocationContracts } from "../flag-invocation-contracts.js";
@@ -129,7 +129,8 @@ const PM_COMMAND_FLAG_BUDGET_MAXIMUMS = Object.freeze({
129
129
  get: 30,
130
130
  graph: 34,
131
131
  search: 78,
132
- duplicates: 24,
132
+ // pm-pshhry: one explicit exhaustive-reference mode, with no spare flag allowance.
133
+ duplicates: 25,
133
134
  eval: 25,
134
135
  next: 38,
135
136
  history: 35,
@@ -344,4 +345,4 @@ export function renderPmFlagLexiconMarkdown() {
344
345
  ].join("\n");
345
346
  }
346
347
  //# sourceMappingURL=flag-lexicon-contracts.js.map
347
- //# debugId=14b6d270-bdc4-54cf-9c66-da4cb2b0843b
348
+ //# debugId=3fdfd4c8-a7ef-5469-acf5-bc2577fd141a
@@ -7,7 +7,7 @@
7
7
  * cannot silently bypass the architecture decision.
8
8
  */
9
9
 
10
- !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]="4efc5934-7d1b-517b-8b5e-eb2fe14379f2")}catch(e){}}();
10
+ !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]="986f1257-822a-5b27-b2e5-a1daae96be71")}catch(e){}}();
11
11
  import { resolvePmCommandAlias, } from "./command-aliases.js";
12
12
  /** Canonical top-level domains an agent must retain to route pm operations. */
13
13
  export const PM_CLI_GRAMMAR_NOUNS = [
@@ -314,6 +314,15 @@ export const PM_POSITIONAL_ACTION_CONTRACTS = [
314
314
  description: "Analyze bounded defect-recurrence risk for a proposed change.",
315
315
  example: 'pm assurance risk --definition \'{"change":{"files":[]}}\'',
316
316
  },
317
+ {
318
+ command: "assurance lineages",
319
+ parent: "assurance",
320
+ action: "lineages",
321
+ slots: [],
322
+ accepted_flags: ["--definition"],
323
+ description: "Measure all recorded recurrence lineages with bounded evidence rows.",
324
+ example: 'pm assurance lineages --definition \'{"policy":{"version":1,"evidence_epoch":"2026-01-01T00:00:00.000Z","families":[]}}\'',
325
+ },
317
326
  {
318
327
  command: "workspace position",
319
328
  parent: "workspace",
@@ -975,4 +984,4 @@ export function verifyPmCliGrammar(commands, aliases = [], destinations = PM_COM
975
984
  };
976
985
  }
977
986
  //# sourceMappingURL=grammar-contracts.js.map
978
- //# debugId=4efc5934-7d1b-517b-8b5e-eb2fe14379f2
987
+ //# debugId=986f1257-822a-5b27-b2e5-a1daae96be71
@@ -4,7 +4,7 @@
4
4
  * Implements the pm contracts command surface and its agent-facing runtime behavior.
5
5
  */
6
6
 
7
- !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]="1506e8bc-3350-5ef5-a40a-44509eb59317")}catch(e){}}();
7
+ !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]="188569e7-c809-5f28-a714-d531f57be1d9")}catch(e){}}();
8
8
  import { EXIT_CODE, SETTINGS_DEFAULTS, PmCliError, activateExtensions, getActiveExtensionRegistrations, loadExtensions, pathExists, commandOptionFlagLabel, resolveCommandOptionPolicyState, resolveItemTypeRegistry, resolveRuntimeFieldRegistry, resolveRuntimeStatusRegistry, getSettingsPath, resolvePmRoot, readSettings, } from "../runtime-primitives.js";
9
9
  import { buildMcpToolContracts, } from "../../mcp/tool-definitions.js";
10
10
  import { ACTIVITY_COMMANDER_STRING_OPTION_CONTRACTS, ACTIVITY_FLAG_CONTRACTS, AGGREGATE_FLAG_CONTRACTS, ASSURANCE_FLAG_CONTRACTS, APPEND_FLAG_CONTRACTS, CALENDAR_COMMANDER_STRING_OPTION_CONTRACTS, CALENDAR_FLAG_CONTRACTS, CLAIM_FLAG_CONTRACTS, CLOSE_TASK_FLAG_CONTRACTS, COMMENTS_FLAG_CONTRACTS, CLOSE_FLAG_CONTRACTS, CLOSE_MANY_FLAG_CONTRACTS, COMPLETION_FLAG_CONTRACTS, CONFIG_FLAG_CONTRACTS, CONTRACTS_FLAG_CONTRACTS, COPY_FLAG_CONTRACTS, CONTEXT_COMMANDER_STRING_OPTION_CONTRACTS, CONTEXT_FLAG_CONTRACTS, CREATE_COMMANDER_REPEATABLE_OPTION_CONTRACTS, CREATE_COMMANDER_STRING_OPTION_CONTRACTS, CREATE_FLAG_CONTRACTS, DELETE_FLAG_CONTRACTS, DEPS_FLAG_CONTRACTS, GRAPH_FLAG_CONTRACTS, DOCS_FLAG_CONTRACTS, EXTENSION_ACTIVATE_FLAG_CONTRACTS, EXTENSION_ADOPT_ALL_FLAG_CONTRACTS, EXTENSION_ADOPT_FLAG_CONTRACTS, EXTENSION_CATALOG_FLAG_CONTRACTS, EXTENSION_DEACTIVATE_FLAG_CONTRACTS, EXTENSION_DESCRIBE_FLAG_CONTRACTS, EXTENSION_DOCTOR_FLAG_CONTRACTS, EXTENSION_EXPLORE_FLAG_CONTRACTS, EXTENSION_FLAG_CONTRACTS, EXTENSION_INIT_FLAG_CONTRACTS, EXTENSION_INSTALL_FLAG_CONTRACTS, EXTENSION_MANAGE_FLAG_CONTRACTS, EXTENSION_MIGRATE_FLAG_CONTRACTS, EXTENSION_RELOAD_FLAG_CONTRACTS, EXTENSION_UNINSTALL_FLAG_CONTRACTS, FILES_FLAG_CONTRACTS, FOCUS_FLAG_CONTRACTS, GC_FLAG_CONTRACTS, GET_FLAG_CONTRACTS, GUIDE_FLAG_CONTRACTS, GLOBAL_FLAG_CONTRACTS, HEALTH_FLAG_CONTRACTS, HISTORY_FLAG_CONTRACTS, HISTORY_COMPACT_FLAG_CONTRACTS, HISTORY_REDACT_FLAG_CONTRACTS, HISTORY_REPAIR_FLAG_CONTRACTS, HISTORY_AUTHOR_ACKNOWLEDGE_FLAG_CONTRACTS, INSTALL_FLAG_CONTRACTS, INIT_FLAG_CONTRACTS, ITEM_COMPLETE_FLAG_CONTRACTS, ITEM_MUTATE_FLAG_CONTRACTS, ITEM_REOPEN_FLAG_CONTRACTS, LEARNINGS_FLAG_CONTRACTS, LIST_COMMANDER_STRING_OPTION_CONTRACTS, LIST_FILTER_FLAG_CONTRACTS, MERGE_FLAG_CONTRACTS, NOTES_FLAG_CONTRACTS, PACKAGE_FLAG_CONTRACTS, PACKAGE_INIT_FLAG_CONTRACTS, PM_EXTENSION_CAPABILITY_CONTRACTS, PM_EXTENSION_POLICY_MODE_CONTRACTS, PM_EXTENSION_POLICY_SURFACE_CONTRACTS, PM_EXTENSION_SANDBOX_PROFILE_CONTRACTS, PM_EXTENSION_SERVICE_NAME_CONTRACTS, PM_EXTENSION_TRUST_MODE_CONTRACTS, PM_OUTPUT_DEGRADATION_STEPS, PLAN_FLAG_CONTRACTS, PM_CORE_COMMAND_NAMES, PM_DEPRECATED_TOOL_ACTIONS, PM_TOOL_ACTIONS, PM_TOOL_PARAMETERS_SCHEMA, REINDEX_FLAG_CONTRACTS, RELEASE_FLAG_CONTRACTS, RESTORE_FLAG_CONTRACTS, SCHEMA_FLAG_CONTRACTS, PROFILE_FLAG_CONTRACTS, SEARCH_COMMANDER_STRING_OPTION_CONTRACTS, EVAL_FLAG_CONTRACTS, WORKSPACE_FLAG_CONTRACTS, NEXT_FLAG_CONTRACTS, SEARCH_FLAG_CONTRACTS, STATS_FLAG_CONTRACTS, DUPLICATES_FLAG_CONTRACTS, START_TASK_FLAG_CONTRACTS, PAUSE_TASK_FLAG_CONTRACTS, TELEMETRY_FLAG_CONTRACTS, TEST_ALL_FLAG_CONTRACTS, TEST_FLAG_CONTRACTS, TEST_RUNS_FLAG_CONTRACTS, UPDATE_COMMANDER_REPEATABLE_OPTION_CONTRACTS, UPDATE_COMMANDER_STRING_OPTION_CONTRACTS, UPDATE_FLAG_CONTRACTS, UPDATE_MANY_FLAG_CONTRACTS, UPGRADE_FLAG_CONTRACTS, VALIDATE_FLAG_CONTRACTS, compactFlagAliasContracts, PM_COMMAND_ALIAS_CONTRACTS, PM_DIAGNOSTIC_OUTPUT_BUDGET_CONTRACTS, resolvePmCommandOutputBudget, } from "../cli-contracts.js";
@@ -228,6 +228,9 @@ const COMMAND_INTENTS = new Map([
228
228
  ["aggregate", "Group counts."],
229
229
  ["append", "Append body."],
230
230
  ["assurance", "Evaluate assurance."],
231
+ ["assurance derive", "Derive checks from evidence."],
232
+ ["assurance risk", "Select checks for changes."],
233
+ ["assurance lineages", "Measure recurrence coverage."],
231
234
  ["beads", "Manage Beads interoperability."],
232
235
  ["cal", "Manage calendar integration."],
233
236
  ["calendar", "Manage calendar integration."],
@@ -2085,4 +2088,4 @@ export const _testOnlyContractsCommand = {
2085
2088
  toRuntimeShortFlagToken,
2086
2089
  };
2087
2090
  //# sourceMappingURL=runtime-contracts.js.map
2088
- //# debugId=1506e8bc-3350-5ef5-a40a-44509eb59317
2091
+ //# debugId=188569e7-c809-5f28-a714-d531f57be1d9
@@ -1,11 +1,260 @@
1
- /**
2
- * @module sdk/cli-contracts/schemas/assurance-definition
3
- *
4
- * Defines the strict JSON Schema accepted by assurance definition mutations.
5
- */
6
1
  /** JSON Schema for measurement, assertion, and gate assurance definitions. */
7
2
  export declare const ASSURANCE_DEFINITION_SCHEMA: {
8
3
  oneOf: ({
4
+ type: string;
5
+ additionalProperties: boolean;
6
+ required: string[];
7
+ properties: {
8
+ limit: {
9
+ type: string;
10
+ minimum: number;
11
+ maximum: number;
12
+ };
13
+ cursor: {
14
+ type: string;
15
+ minLength: number;
16
+ };
17
+ change: {
18
+ additionalProperties: boolean;
19
+ type: string;
20
+ properties: {
21
+ [k: string]: {
22
+ type: string;
23
+ items: {
24
+ type: string;
25
+ };
26
+ };
27
+ };
28
+ };
29
+ policy: {
30
+ type: string;
31
+ required: string[];
32
+ properties: {
33
+ version: {
34
+ const: number;
35
+ };
36
+ evidence_epoch: {
37
+ type: string;
38
+ format: string;
39
+ };
40
+ families: {
41
+ type: string;
42
+ items: {
43
+ type: string;
44
+ required: string[];
45
+ properties: {
46
+ id: {
47
+ type: string;
48
+ pattern: string;
49
+ };
50
+ version: {
51
+ type: string;
52
+ minimum: number;
53
+ };
54
+ title: {
55
+ type: string;
56
+ pattern: string;
57
+ };
58
+ owner_item_id: {
59
+ type: string;
60
+ pattern: string;
61
+ };
62
+ escape_class: {
63
+ enum: readonly ["production_defect", "nightly_regression", "scanner_finding", "review_caught_late"];
64
+ };
65
+ triggers: {
66
+ type: string;
67
+ properties: {
68
+ file_patterns: {
69
+ type: string;
70
+ items: {
71
+ type: string;
72
+ maxLength: number;
73
+ };
74
+ };
75
+ };
76
+ };
77
+ checks: {
78
+ type: string;
79
+ required: string[];
80
+ properties: {
81
+ local: {
82
+ type: string;
83
+ minItems: number;
84
+ items: {
85
+ type: string;
86
+ pattern: string;
87
+ };
88
+ };
89
+ hosted: {
90
+ type: string;
91
+ minItems: number;
92
+ items: {
93
+ type: string;
94
+ pattern: string;
95
+ };
96
+ };
97
+ };
98
+ };
99
+ negative_control: {
100
+ minProperties: number;
101
+ type: string;
102
+ properties: {
103
+ [k: string]: {
104
+ type: string;
105
+ items: {
106
+ type: string;
107
+ };
108
+ };
109
+ };
110
+ };
111
+ historical_item_ids: {
112
+ type: string;
113
+ minItems: number;
114
+ items: {
115
+ type: string;
116
+ pattern: string;
117
+ };
118
+ };
119
+ budget: {
120
+ type: string;
121
+ required: string[];
122
+ properties: {
123
+ [k: string]: {
124
+ type: string;
125
+ minimum: number;
126
+ maximum: number;
127
+ };
128
+ };
129
+ };
130
+ };
131
+ };
132
+ };
133
+ };
134
+ additionalProperties: boolean;
135
+ };
136
+ } | {
137
+ limit: {
138
+ type: string;
139
+ minimum: number;
140
+ maximum: number;
141
+ };
142
+ cursor: {
143
+ type: string;
144
+ minLength: number;
145
+ };
146
+ uncoveredOnly: {
147
+ type: string;
148
+ };
149
+ policy: {
150
+ type: string;
151
+ required: string[];
152
+ properties: {
153
+ version: {
154
+ const: number;
155
+ };
156
+ evidence_epoch: {
157
+ type: string;
158
+ format: string;
159
+ };
160
+ families: {
161
+ type: string;
162
+ items: {
163
+ type: string;
164
+ required: string[];
165
+ properties: {
166
+ id: {
167
+ type: string;
168
+ pattern: string;
169
+ };
170
+ version: {
171
+ type: string;
172
+ minimum: number;
173
+ };
174
+ title: {
175
+ type: string;
176
+ pattern: string;
177
+ };
178
+ owner_item_id: {
179
+ type: string;
180
+ pattern: string;
181
+ };
182
+ escape_class: {
183
+ enum: readonly ["production_defect", "nightly_regression", "scanner_finding", "review_caught_late"];
184
+ };
185
+ triggers: {
186
+ type: string;
187
+ properties: {
188
+ file_patterns: {
189
+ type: string;
190
+ items: {
191
+ type: string;
192
+ maxLength: number;
193
+ };
194
+ };
195
+ };
196
+ };
197
+ checks: {
198
+ type: string;
199
+ required: string[];
200
+ properties: {
201
+ local: {
202
+ type: string;
203
+ minItems: number;
204
+ items: {
205
+ type: string;
206
+ pattern: string;
207
+ };
208
+ };
209
+ hosted: {
210
+ type: string;
211
+ minItems: number;
212
+ items: {
213
+ type: string;
214
+ pattern: string;
215
+ };
216
+ };
217
+ };
218
+ };
219
+ negative_control: {
220
+ minProperties: number;
221
+ type: string;
222
+ properties: {
223
+ [k: string]: {
224
+ type: string;
225
+ items: {
226
+ type: string;
227
+ };
228
+ };
229
+ };
230
+ };
231
+ historical_item_ids: {
232
+ type: string;
233
+ minItems: number;
234
+ items: {
235
+ type: string;
236
+ pattern: string;
237
+ };
238
+ };
239
+ budget: {
240
+ type: string;
241
+ required: string[];
242
+ properties: {
243
+ [k: string]: {
244
+ type: string;
245
+ minimum: number;
246
+ maximum: number;
247
+ };
248
+ };
249
+ };
250
+ };
251
+ };
252
+ };
253
+ };
254
+ additionalProperties: boolean;
255
+ };
256
+ };
257
+ } | {
9
258
  type: string;
10
259
  additionalProperties: boolean;
11
260
  required: string[];
@@ -4,7 +4,42 @@
4
4
  * Defines the strict JSON Schema accepted by assurance definition mutations.
5
5
  */
6
6
 
7
- !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]="19a97f60-3b6e-5653-a652-02aebaf5afdd")}catch(e){}}();
7
+ !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]="550e4e06-9e07-59e1-bb47-8233f84885c4")}catch(e){}}();
8
+ import { DEFECT_ESCAPE_CLASSES } from "../../governance/defect-recurrence.js";
9
+ const DEFECT_NONEMPTY_STRING_SCHEMA = { type: "string", pattern: "\\S" };
10
+ const DEFECT_NONEMPTY_STRINGS_SCHEMA = { type: "array", minItems: 1, items: DEFECT_NONEMPTY_STRING_SCHEMA };
11
+ const DEFECT_CHANGE_INPUT_SCHEMA = {
12
+ type: "object",
13
+ properties: Object.fromEntries(["files", "package_names", "item_ids", "tags", "error_codes"].map((key) => [key, { type: "array", items: { type: "string" } }])),
14
+ };
15
+ const DEFECT_FAMILY_SCHEMA = {
16
+ type: "object",
17
+ required: ["id", "version", "title", "owner_item_id", "escape_class", "triggers", "checks", "negative_control", "historical_item_ids", "budget"],
18
+ properties: {
19
+ id: DEFECT_NONEMPTY_STRING_SCHEMA,
20
+ version: { type: "integer", minimum: 1 },
21
+ title: DEFECT_NONEMPTY_STRING_SCHEMA,
22
+ owner_item_id: DEFECT_NONEMPTY_STRING_SCHEMA,
23
+ escape_class: { enum: DEFECT_ESCAPE_CLASSES },
24
+ triggers: {
25
+ type: "object",
26
+ properties: {
27
+ ...Object.fromEntries(["package_names", "item_ids", "tags", "error_codes"].map((key) => [key, { type: "array", items: { type: "string" } }])),
28
+ file_patterns: { type: "array", items: { type: "string", maxLength: 256 } },
29
+ },
30
+ },
31
+ checks: {
32
+ type: "object", required: ["local", "hosted"],
33
+ properties: { local: DEFECT_NONEMPTY_STRINGS_SCHEMA, hosted: DEFECT_NONEMPTY_STRINGS_SCHEMA },
34
+ },
35
+ negative_control: { ...DEFECT_CHANGE_INPUT_SCHEMA, minProperties: 1 },
36
+ historical_item_ids: DEFECT_NONEMPTY_STRINGS_SCHEMA,
37
+ budget: {
38
+ type: "object", required: ["max_escape_rate", "max_false_positive_rate"],
39
+ properties: Object.fromEntries(["max_escape_rate", "max_false_positive_rate"].map((key) => [key, { type: "number", minimum: 0, maximum: 1 }])),
40
+ },
41
+ },
42
+ };
8
43
  const ASSURANCE_VALUE_SCHEMA = {
9
44
  oneOf: [{ type: "number" }, { type: "array", items: { type: "string" } }],
10
45
  };
@@ -19,6 +54,21 @@ Reflect.set(ITEMS_FIELD_CONDITIONAL_SCHEMA, "then", {
19
54
  /** JSON Schema for measurement, assertion, and gate assurance definitions. */
20
55
  export const ASSURANCE_DEFINITION_SCHEMA = {
21
56
  oneOf: [
57
+ ...[true, false].map((isRisk) => ({
58
+ type: "object",
59
+ additionalProperties: false,
60
+ required: isRisk ? ["policy", "change"] : ["policy"],
61
+ properties: {
62
+ policy: { type: "object", required: ["version", "evidence_epoch", "families"], properties: {
63
+ version: { const: 1 },
64
+ evidence_epoch: { type: "string", format: "date-time" },
65
+ families: { type: "array", items: DEFECT_FAMILY_SCHEMA },
66
+ }, additionalProperties: false },
67
+ ...(isRisk ? { change: { ...DEFECT_CHANGE_INPUT_SCHEMA, additionalProperties: false } } : { uncoveredOnly: { type: "boolean" } }),
68
+ limit: { type: "integer", minimum: 1, maximum: 100 },
69
+ cursor: { type: "string", minLength: 1 },
70
+ },
71
+ })),
22
72
  {
23
73
  type: "object",
24
74
  additionalProperties: false,
@@ -272,4 +322,4 @@ export const ASSURANCE_DEFINITION_SCHEMA = {
272
322
  ],
273
323
  };
274
324
  //# sourceMappingURL=assurance-definition.js.map
275
- //# debugId=19a97f60-3b6e-5653-a652-02aebaf5afdd
325
+ //# debugId=550e4e06-9e07-59e1-bb47-8233f84885c4
@@ -4,7 +4,7 @@
4
4
  * Defines SDK command-contract metadata for Tool Parameter Tables.
5
5
  */
6
6
 
7
- !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]="4bc19ba8-8c92-5cde-ae59-fe7d73ef9208")}catch(e){}}();
7
+ !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]="7f278171-3479-5ce6-a925-da6393463200")}catch(e){}}();
8
8
  import { PLAN_HARNESS_VALUES, PLAN_MODE_VALUES, PLAN_STEP_LINK_KIND_VALUES, PLAN_STEP_STATUS_VALUES, } from "../../types/index.js";
9
9
  import { PM_READ_OUTPUT_SESSION_MAX_SEEN_ITEM_IDS } from "../read-output-session.js";
10
10
  import { ASSURANCE_DEFINITION_SCHEMA } from "./schemas/assurance-definition.js";
@@ -192,6 +192,7 @@ export const PM_TOOL_PARAMETER_PROPERTIES = {
192
192
  status: { type: "string" },
193
193
  since: { type: "string", format: "date-time" },
194
194
  cursorMode: { type: "string", enum: ["batch", "row"] },
195
+ exhaustive: { type: "boolean" },
195
196
  threshold: { type: "number", minimum: 0, maximum: 1 },
196
197
  filterStatus: { type: "string" },
197
198
  filterType: { type: "string" },
@@ -677,6 +678,7 @@ export const PM_TOOL_ACTION_SCOPED_PARAMETER_PROPERTIES = {
677
678
  "derive",
678
679
  "promote",
679
680
  "risk",
681
+ "lineages",
680
682
  ],
681
683
  },
682
684
  preset: {
@@ -1190,6 +1192,9 @@ export const PM_TOOL_PARAMETER_METADATA = {
1190
1192
  description: "Inclusive ISO 8601 creation timestamp lower bound for duplicate discovery.",
1191
1193
  examples: ["2026-01-01T00:00:00.000Z"],
1192
1194
  },
1195
+ exhaustive: {
1196
+ description: "Compare every duplicate pair within the disclosed safety bound; default prefix filtering preserves exact recall.",
1197
+ },
1193
1198
  threshold: {
1194
1199
  description: "Minimum duplicate similarity score from zero through one.",
1195
1200
  examples: [0.85],
@@ -1683,10 +1688,10 @@ export const PM_TOOL_PARAMETER_METADATA = {
1683
1688
  description: "For validate action, include full diagnostic ID lists instead of compact summaries.",
1684
1689
  },
1685
1690
  strictExit: {
1686
- description: "Return non-zero exit when health/validate/extension-doctor warnings are present.",
1691
+ description: "Apply the selected capability's strict exit policy; health also requires merge drivers.",
1687
1692
  },
1688
1693
  failOnWarn: {
1689
- description: "Alias for strictExit in health/validate/extension-doctor action payloads.",
1694
+ description: "Alias for strictExit in health, validation, history, and managed doctor actions.",
1690
1695
  },
1691
1696
  fixHints: {
1692
1697
  description: "For validate action, add a machine-executable fix_hints[] of pm commands to each failing check's details.",
@@ -1965,10 +1970,17 @@ export const PM_TOOL_PARAMETER_METADATA = {
1965
1970
  * because its single `name` property must cover every action at once.
1966
1971
  */
1967
1972
  export const PM_TOOL_ACTION_SCOPED_PARAMETER_METADATA = {
1973
+ "health": { strictExit: { description: "Return non-zero for a failing health verdict; also require merge drivers." } },
1974
+ "validate": { strictExit: { description: "Return non-zero when validation reports warnings." } },
1975
+ "extension-doctor": { strictExit: { description: "Return non-zero when extension diagnostics report warnings or a non-ok summary." } },
1976
+ "package-doctor": { strictExit: { description: "Return non-zero when package diagnostics report warnings or a non-ok summary." } },
1977
+ "history": { strictExit: { description: "Return non-zero for history verification failures when verify is enabled." } },
1978
+ extension: { strictExit: { description: "For doctor operations, return non-zero on warnings or a non-ok diagnostic summary." } },
1979
+ package: { strictExit: { description: "For doctor operations, return non-zero on warnings or a non-ok diagnostic summary." } },
1968
1980
  assurance: {
1969
1981
  subcommand: {
1970
- description: "Assurance operation: list, show, put, remove, run, verdicts, presets, apply, derive, promote, or risk.",
1971
- examples: ["list", "run", "derive", "promote", "risk"],
1982
+ description: "Assurance operation: list, show, put, remove, run, verdicts, presets, apply, derive, promote, risk, or lineages.",
1983
+ examples: ["list", "run", "risk", "lineages"],
1972
1984
  },
1973
1985
  kind: {
1974
1986
  description: "Assurance declaration kind for registry operations: measurement, assertion, or gate.",
@@ -2153,4 +2165,4 @@ export const PM_TOOL_ACTION_SCOPED_PARAMETER_METADATA = {
2153
2165
  },
2154
2166
  };
2155
2167
  //# sourceMappingURL=tool-parameter-tables.js.map
2156
- //# debugId=4bc19ba8-8c92-5cde-ae59-fe7d73ef9208
2168
+ //# debugId=7f278171-3479-5ce6-a925-da6393463200
@@ -91,14 +91,14 @@ export interface PmActionToolInputSchemaOptions {
91
91
  */
92
92
  export declare function buildPmActionToolInputSchema(action: PmToolAction, options?: PmActionToolInputSchemaOptions): Record<string, unknown>;
93
93
  /** Canonical version of the action-scoped strict MCP tool-parameters schema (`PM_TOOL_PARAMETERS_SCHEMA`). Exported as the single source of truth so the MCP server, the `pm contracts` command, SDK consumers, and contract tests bind to one version constant. Bump the patch/minor for additive, backward-compatible schema changes; bump the MAJOR for breaking changes — the major also drives the `$id` `tool-parameters-v{major}` slug, so the two never drift. */
94
- export declare const PM_TOOL_PARAMETERS_SCHEMA_VERSION: "4.12.0";
94
+ export declare const PM_TOOL_PARAMETERS_SCHEMA_VERSION: "4.14.0";
95
95
  /**
96
96
  * Major component of {@link PM_TOOL_PARAMETERS_SCHEMA_VERSION}, used to build the
97
97
  * schema `$id` slug so a breaking version bump renames the document in lockstep.
98
98
  */
99
99
  export declare const PM_TOOL_PARAMETERS_SCHEMA_MAJOR: string;
100
100
  /** Version of the provider-compatible flat tool-parameters schema (`PM_PROVIDER_TOOL_PARAMETERS_SCHEMA`). Tracked separately from the strict schema because the flat projection evolves independently. */
101
- export declare const PM_PROVIDER_TOOL_PARAMETERS_SCHEMA_VERSION: "1.6.0";
101
+ export declare const PM_PROVIDER_TOOL_PARAMETERS_SCHEMA_VERSION: "1.7.0";
102
102
  /** Public contract for pm tool parameters schema, shared by SDK and presentation-layer consumers. */
103
103
  export declare const PM_TOOL_PARAMETERS_SCHEMA: Record<string, unknown>;
104
104
  declare function toProviderCompatibleParameterDefinition(key: string, definition: unknown): Record<string, unknown>;
@@ -7,7 +7,7 @@
7
7
  * consumers from a single source of truth.
8
8
  */
9
9
 
10
- !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]="e60db75b-b2b0-5455-93a8-b0cb71a21979")}catch(e){}}();
10
+ !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]="e72f4ab4-5bf7-53fb-a3a3-174c4064f6a4")}catch(e){}}();
11
11
  import { normalizeUniqueStringList } from "./string-lists.js";
12
12
  import { PM_TOOL_ACTIONS } from "./enum-contracts.js";
13
13
  import { TOOL_CREATE_OPTION_CONTRACTS, TOOL_SHARED_CREATE_UPDATE_OPTION_CONTRACTS, TOOL_UPDATE_OPTION_CONTRACTS, TOOL_UPDATE_MANY_FILTER_OPTION_CONTRACTS, TOOL_CONTEXT_OPTION_CONTRACTS, TOOL_ACTIVITY_OPTION_CONTRACTS, TOOL_LIST_FILTER_OPTION_CONTRACTS, TOOL_AGGREGATE_OPTION_CONTRACTS, TOOL_SEARCH_FILTER_OPTION_CONTRACTS, TOOL_CLOSE_MANY_FILTER_OPTION_CONTRACTS, } from "./tool-option-contracts.js";
@@ -1123,7 +1123,7 @@ const PM_TOOL_ACTION_SCHEMA_CONTRACTS = {
1123
1123
  ],
1124
1124
  },
1125
1125
  duplicates: {
1126
- optional: ["status", "since", "threshold", "limit"],
1126
+ optional: ["status", "since", "threshold", "limit", "exhaustive"],
1127
1127
  },
1128
1128
  health: {
1129
1129
  optional: [
@@ -1208,12 +1208,24 @@ const PM_TOOL_ACTION_SCHEMA_CONTRACTS = {
1208
1208
  required: ["preset", "owner"],
1209
1209
  },
1210
1210
  { property: "subcommand", value: "derive", required: ["owner"] },
1211
+ { property: "subcommand", value: "risk", required: ["definition"] },
1212
+ { property: "subcommand", value: "lineages", required: ["definition"] },
1211
1213
  {
1212
1214
  property: "subcommand",
1213
1215
  value: "promote",
1214
1216
  required: ["id", "enforcement"],
1215
1217
  },
1216
1218
  ],
1219
+ mutuallyExclusiveWhen: [
1220
+ [
1221
+ { property: "subcommand", schema: { const: "risk" } },
1222
+ { property: "definition", schema: { not: { required: ["policy", "change"] } } },
1223
+ ],
1224
+ [
1225
+ { property: "subcommand", schema: { const: "lineages" } },
1226
+ { property: "definition", schema: { anyOf: [{ required: ["change"] }, { not: { required: ["policy"] } }] } },
1227
+ ],
1228
+ ],
1217
1229
  },
1218
1230
  gc: { optional: ["dryRun", "gcScope"] },
1219
1231
  contracts: {
@@ -1568,14 +1580,14 @@ function createLazyContractSchema(build) {
1568
1580
  });
1569
1581
  }
1570
1582
  /** Canonical version of the action-scoped strict MCP tool-parameters schema (`PM_TOOL_PARAMETERS_SCHEMA`). Exported as the single source of truth so the MCP server, the `pm contracts` command, SDK consumers, and contract tests bind to one version constant. Bump the patch/minor for additive, backward-compatible schema changes; bump the MAJOR for breaking changes — the major also drives the `$id` `tool-parameters-v{major}` slug, so the two never drift. */
1571
- export const PM_TOOL_PARAMETERS_SCHEMA_VERSION = "4.12.0";
1583
+ export const PM_TOOL_PARAMETERS_SCHEMA_VERSION = "4.14.0";
1572
1584
  /**
1573
1585
  * Major component of {@link PM_TOOL_PARAMETERS_SCHEMA_VERSION}, used to build the
1574
1586
  * schema `$id` slug so a breaking version bump renames the document in lockstep.
1575
1587
  */
1576
1588
  export const PM_TOOL_PARAMETERS_SCHEMA_MAJOR = PM_TOOL_PARAMETERS_SCHEMA_VERSION.split(".")[0];
1577
1589
  /** Version of the provider-compatible flat tool-parameters schema (`PM_PROVIDER_TOOL_PARAMETERS_SCHEMA`). Tracked separately from the strict schema because the flat projection evolves independently. */
1578
- export const PM_PROVIDER_TOOL_PARAMETERS_SCHEMA_VERSION = "1.6.0";
1590
+ export const PM_PROVIDER_TOOL_PARAMETERS_SCHEMA_VERSION = "1.7.0";
1579
1591
  /** Public contract for pm tool parameters schema, shared by SDK and presentation-layer consumers. */
1580
1592
  export const PM_TOOL_PARAMETERS_SCHEMA = createLazyContractSchema(() => ({
1581
1593
  $schema: "https://json-schema.org/draft/2020-12/schema",
@@ -1650,4 +1662,4 @@ export const _testOnlyCliContracts = {
1650
1662
  withFlagAliasMetadata,
1651
1663
  };
1652
1664
  //# sourceMappingURL=tool-schema.js.map
1653
- //# debugId=e60db75b-b2b0-5455-93a8-b0cb71a21979
1665
+ //# debugId=e72f4ab4-5bf7-53fb-a3a3-174c4064f6a4