@unbrained/pm-cli 2026.8.22 → 2026.8.24

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 (229) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/CHANGELOG.md +42 -1
  3. package/dist/cli/description-stdin.js +5 -4
  4. package/dist/cli/error-guidance.d.ts +13 -0
  5. package/dist/cli/error-guidance.js +62 -6
  6. package/dist/cli/extension-command-help.d.ts +5 -0
  7. package/dist/cli/extension-command-help.js +6 -2
  8. package/dist/cli/help-content.d.ts +5 -0
  9. package/dist/cli/help-content.js +56 -3
  10. package/dist/cli/help-json-payload.d.ts +5 -2
  11. package/dist/cli/help-json-payload.js +57 -17
  12. package/dist/cli/main.d.ts +3 -0
  13. package/dist/cli/main.js +39 -5
  14. package/dist/cli/register-annotations.js +5 -5
  15. package/dist/cli/register-mutation.js +77 -31
  16. package/dist/cli/register-operations.d.ts +73 -0
  17. package/dist/cli/register-operations.js +39 -14
  18. package/dist/cli/register-setup.js +3 -3
  19. package/dist/cli/schema-registration-helpers.d.ts +8 -1
  20. package/dist/cli/schema-registration-helpers.js +14 -5
  21. package/dist/cli-bundle/bundle-manifest.json +155 -155
  22. package/dist/cli-bundle/chunks/chunk-AGUL3HUT.js +3 -0
  23. package/dist/cli-bundle/chunks/{chunk-WG4STC36.js → chunk-DJNJBWAQ.js} +2 -2
  24. package/dist/cli-bundle/chunks/{chunk-MYYI3ZOA.js → chunk-I5Q7QSZX.js} +2 -2
  25. package/dist/cli-bundle/chunks/chunk-IW72J5FW.js +2 -0
  26. package/dist/cli-bundle/chunks/{chunk-BWX4SK46.js → chunk-L22NP5MA.js} +66 -66
  27. package/dist/cli-bundle/chunks/chunk-MKE6MD2K.js +36 -0
  28. package/dist/cli-bundle/chunks/{chunk-MZTZQTMS.js → chunk-NXBFO63A.js} +2 -2
  29. package/dist/cli-bundle/chunks/chunk-TEQDR5KI.js +202 -0
  30. package/dist/cli-bundle/chunks/chunk-X7WWQDYQ.js +2 -0
  31. package/dist/cli-bundle/chunks/chunk-YOLLRCLY.js +13 -0
  32. package/dist/cli-bundle/chunks/{chunk-U6GQ4VMV.js → chunk-ZAVCS2GH.js} +4 -4
  33. package/dist/cli-bundle/chunks/{register-list-query-HZKBQNWW.js → register-list-query-37A4P6O4.js} +2 -2
  34. package/dist/cli-bundle/chunks/register-mutation-TBJDHYIT.js +20 -0
  35. package/dist/cli-bundle/chunks/register-operations-WRZNEBUM.js +2 -0
  36. package/dist/cli-bundle/chunks/{register-setup-QK4OTOXN.js → register-setup-H4PDLACD.js} +2 -2
  37. package/dist/cli-bundle/focused-chunks/{chunk-GMYPD4FX.js → chunk-4WP7LNE3.js} +2 -2
  38. package/dist/cli-bundle/focused-chunks/chunk-6MUTDXMP.js +2 -0
  39. package/dist/cli-bundle/focused-chunks/chunk-6Z24ZMU3.js +2 -0
  40. package/dist/cli-bundle/focused-chunks/{chunk-2ARQGDDW.js → chunk-BFA6KKCI.js} +2 -2
  41. package/dist/cli-bundle/focused-chunks/chunk-CWCN5RLO.js +26 -0
  42. package/dist/cli-bundle/focused-chunks/chunk-FCTT4CZU.js +5 -0
  43. package/dist/cli-bundle/focused-chunks/chunk-GJR6YEMR.js +156 -0
  44. package/dist/cli-bundle/focused-chunks/{chunk-2POVTNLY.js → chunk-IMWTYKII.js} +2 -2
  45. package/dist/cli-bundle/focused-chunks/{chunk-D6RBZEJJ.js → chunk-IZNRRCU3.js} +2 -2
  46. package/dist/cli-bundle/focused-chunks/{chunk-PMGJUFNQ.js → chunk-MNPECIRL.js} +2 -2
  47. package/dist/cli-bundle/focused-chunks/{chunk-A2BC5PQL.js → chunk-O4ZXNJMT.js} +2 -2
  48. package/dist/cli-bundle/focused-chunks/chunk-Q63PSLO4.js +2 -0
  49. package/dist/cli-bundle/focused-chunks/chunk-QBP5FSBX.js +4 -0
  50. package/dist/cli-bundle/focused-chunks/{chunk-R6SR45XU.js → chunk-QV5UP27O.js} +48 -47
  51. package/dist/cli-bundle/focused-chunks/chunk-RASVBJX5.js +8 -0
  52. package/dist/cli-bundle/focused-chunks/{chunk-E2EWYPY6.js → chunk-RPRLENVA.js} +2 -2
  53. package/dist/cli-bundle/focused-chunks/chunk-TOFVXBWA.js +19 -0
  54. package/dist/cli-bundle/focused-chunks/{chunk-6S2MO3Q3.js → chunk-WZLSSGEU.js} +2 -2
  55. package/dist/cli-bundle/main.js +18 -17
  56. package/dist/cli-bundle/sdk-authoring.js +1 -1
  57. package/dist/cli-bundle/sdk-contracts.js +2 -2
  58. package/dist/cli-bundle/sdk-core.js +41 -41
  59. package/dist/cli-bundle/sdk-governance.js +1 -1
  60. package/dist/cli-bundle/sdk-graph.js +1 -1
  61. package/dist/cli-bundle/sdk-merge.js +33 -32
  62. package/dist/cli-bundle/sdk-query.js +1 -1
  63. package/dist/cli-bundle/sdk-runtime.js +1 -1
  64. package/dist/cli-bundle/sdk-testing.js +1 -1
  65. package/dist/cli-bundle/sdk.js +6 -5
  66. package/dist/core/config/nested-settings.js +8 -2
  67. package/dist/core/config/positional-value.d.ts +1 -1
  68. package/dist/core/config/positional-value.js +5 -2
  69. package/dist/core/extensions/command-metadata-contract.d.ts +10 -0
  70. package/dist/core/extensions/command-metadata-contract.js +23 -0
  71. package/dist/core/extensions/command-visibility-tier.js +12 -2
  72. package/dist/core/extensions/extension-types.d.ts +6 -0
  73. package/dist/core/extensions/extension-types.js +2 -2
  74. package/dist/core/extensions/loader.js +4 -3
  75. package/dist/core/history/history.js +3 -3
  76. package/dist/core/io/body-file.js +7 -2
  77. package/dist/core/io/bulk-ids-input.d.ts +24 -0
  78. package/dist/core/io/bulk-ids-input.js +113 -0
  79. package/dist/core/item/item-format.js +66 -12
  80. package/dist/core/item/parse.d.ts +22 -2
  81. package/dist/core/item/parse.js +97 -4
  82. package/dist/core/reproducibility/context.d.ts +4 -0
  83. package/dist/core/reproducibility/context.js +14 -8
  84. package/dist/core/shared/author.d.ts +55 -1
  85. package/dist/core/shared/author.js +333 -16
  86. package/dist/core/shared/constants.js +3 -2
  87. package/dist/core/store/settings-validator.d.ts +1 -0
  88. package/dist/core/store/settings-validator.js +6 -3
  89. package/dist/core/store/settings.js +5 -2
  90. package/dist/mcp/server.d.ts +4 -3
  91. package/dist/mcp/server.js +44 -16
  92. package/dist/sdk/agent/identity-config.d.ts +63 -0
  93. package/dist/sdk/agent/identity-config.js +107 -0
  94. package/dist/sdk/agent/refusal-closure-census.d.ts +66 -0
  95. package/dist/sdk/agent/refusal-closure-census.js +144 -0
  96. package/dist/sdk/agent/refusal-corpus-contracts.d.ts +76 -0
  97. package/dist/sdk/agent/refusal-corpus-contracts.js +194 -0
  98. package/dist/sdk/agent-capability-contracts.d.ts +34 -1
  99. package/dist/sdk/agent-capability-contracts.js +104 -6
  100. package/dist/sdk/annotations.d.ts +2 -0
  101. package/dist/sdk/annotations.js +25 -7
  102. package/dist/sdk/cli-contracts/agent-output-contracts.js +6 -4
  103. package/dist/sdk/cli-contracts/enum-contracts.d.ts +4 -0
  104. package/dist/sdk/cli-contracts/enum-contracts.js +9 -2
  105. package/dist/sdk/cli-contracts/flag-contracts.js +9 -2
  106. package/dist/sdk/cli-contracts/flag-lexicon-contracts.js +4 -4
  107. package/dist/sdk/cli-contracts/registration-helpers.js +5 -2
  108. package/dist/sdk/cli-contracts/tool-parameter-tables.js +58 -2
  109. package/dist/sdk/cli-contracts/tool-schema.d.ts +1 -1
  110. package/dist/sdk/cli-contracts/tool-schema.js +14 -3
  111. package/dist/sdk/cli-contracts/typed-action-inputs.d.ts +4 -1
  112. package/dist/sdk/cli-contracts/typed-action-inputs.js +2 -2
  113. package/dist/sdk/cli-contracts.d.ts +3 -3
  114. package/dist/sdk/cli-contracts.js +4 -4
  115. package/dist/sdk/comments.js +15 -7
  116. package/dist/sdk/config.d.ts +6 -1
  117. package/dist/sdk/config.js +119 -14
  118. package/dist/sdk/context-intent-contracts.js +4 -2
  119. package/dist/sdk/core-governance.d.ts +1 -1
  120. package/dist/sdk/core-governance.js +3 -3
  121. package/dist/sdk/extension/scaffold.js +11 -5
  122. package/dist/sdk/flag-invocation-contracts.d.ts +2 -0
  123. package/dist/sdk/flag-invocation-contracts.js +30 -3
  124. package/dist/sdk/generated/generated-error-code-catalog-part-1.js +83 -2
  125. package/dist/sdk/generated/generated-error-code-catalog-part-2.js +87 -2
  126. package/dist/sdk/governance/assurance-action.js +30 -10
  127. package/dist/sdk/governance/validate.d.ts +2 -2
  128. package/dist/sdk/governance/validate.js +39 -14
  129. package/dist/sdk/guide-topics.d.ts +0 -5
  130. package/dist/sdk/guide-topics.js +28 -2
  131. package/dist/sdk/history-compact.d.ts +2 -1
  132. package/dist/sdk/history-compact.js +24 -5
  133. package/dist/sdk/history-mcp.js +11 -10
  134. package/dist/sdk/index.d.ts +8 -2
  135. package/dist/sdk/index.js +9 -3
  136. package/dist/sdk/item-transaction.js +19 -12
  137. package/dist/sdk/lifecycle/append.js +4 -4
  138. package/dist/sdk/lifecycle/close-many.js +16 -7
  139. package/dist/sdk/lifecycle/create.js +33 -22
  140. package/dist/sdk/lifecycle/plan.js +24 -6
  141. package/dist/sdk/lifecycle/update-many.js +15 -8
  142. package/dist/sdk/lifecycle/update.d.ts +2 -0
  143. package/dist/sdk/lifecycle/update.js +37 -25
  144. package/dist/sdk/merge/three-way.js +105 -26
  145. package/dist/sdk/read-output-budget.d.ts +21 -0
  146. package/dist/sdk/read-output-budget.js +39 -2
  147. package/dist/sdk/read-output-contracts.d.ts +5 -3
  148. package/dist/sdk/read-output-contracts.js +20 -12
  149. package/dist/sdk/reproducibility/process.d.ts +19 -0
  150. package/dist/sdk/reproducibility/process.js +88 -0
  151. package/dist/sdk/runtime-extended-actions.js +5 -3
  152. package/dist/sdk/runtime-input.d.ts +4 -0
  153. package/dist/sdk/runtime-input.js +98 -23
  154. package/dist/sdk/runtime-primitives.d.ts +3 -2
  155. package/dist/sdk/runtime-primitives.js +5 -4
  156. package/dist/sdk/runtime.js +11 -23
  157. package/dist/sdk/scheduling-shortcuts.js +5 -3
  158. package/dist/sdk/structured-mutations.js +10 -3
  159. package/dist/sdk/test/batch.d.ts +6 -0
  160. package/dist/sdk/test/batch.js +15 -3
  161. package/dist/sdk/test/entry.d.ts +1 -1
  162. package/dist/sdk/test/entry.js +3 -2
  163. package/dist/sdk/test/execution.d.ts +28 -3
  164. package/dist/sdk/test/execution.js +193 -34
  165. package/dist/sdk/test/parsers.d.ts +6 -0
  166. package/dist/sdk/test/parsers.js +21 -2
  167. package/dist/sdk/test/trust.d.ts +33 -0
  168. package/dist/sdk/test/trust.js +207 -0
  169. package/dist/sdk/workspace-contracts.d.ts +3 -0
  170. package/dist/sdk/workspace-contracts.js +3 -2
  171. package/dist/types.d.ts +23 -0
  172. package/dist/types.js +2 -2
  173. package/docs/AGENT_PROVENANCE_ADR.md +41 -5
  174. package/docs/CONFIGURATION.md +4 -0
  175. package/docs/DIAGNOSTIC_OUTPUT_CONTRACTS.md +19 -2
  176. package/docs/MERGE_SAFETY.md +15 -1
  177. package/docs/README.md +2 -0
  178. package/docs/READ_OUTPUT_CONTRACTS.md +11 -1
  179. package/docs/RELEASING.md +40 -21
  180. package/docs/REPRODUCIBLE_WORKSPACES.md +42 -8
  181. package/docs/SCRIPTING.md +62 -3
  182. package/docs/SDK.md +17 -0
  183. package/docs/SDK_AGENT_SESSION_CONTEXT.md +6 -4
  184. package/docs/SDK_EVIDENCE_TRACEABILITY.md +1 -1
  185. package/docs/TESTING.md +75 -8
  186. package/docs/agent-task-token-baseline.json +2 -2
  187. package/docs/generated/AGENT_CAPABILITY_ROUTING.md +17 -0
  188. package/docs/generated/AGENT_COMMAND_SURFACE.md +1 -1
  189. package/docs/generated/FLAG_LEXICON_BUDGETS.md +2 -2
  190. package/docs/generated/REFUSAL_CLOSURE_CENSUS.md +355 -0
  191. package/marketplace.json +2 -2
  192. package/package.json +2 -2
  193. package/packages/pm-beads/package.json +1 -1
  194. package/packages/pm-calendar/package.json +1 -1
  195. package/packages/pm-command-kit/README.md +9 -11
  196. package/packages/pm-command-kit/extensions/command-kit/index.ts +3 -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/extensions/guide-shell/index.ts +10 -0
  201. package/packages/pm-guide-shell/package.json +1 -1
  202. package/packages/pm-kanban/package.json +1 -1
  203. package/packages/pm-lifecycle-hooks/package.json +1 -1
  204. package/packages/pm-linked-test-adapters/package.json +1 -1
  205. package/packages/pm-search-advanced/package.json +1 -1
  206. package/packages/pm-templates/package.json +1 -1
  207. package/packages/pm-todos/package.json +1 -1
  208. package/packages/pm-vcs/package.json +1 -1
  209. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  210. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  211. package/scripts/generate-agent-capability-surfaces.mjs +27 -1
  212. package/sdk/public-surface.json +642 -28
  213. package/dist/cli-bundle/chunks/chunk-EMWDM5FI.js +0 -13
  214. package/dist/cli-bundle/chunks/chunk-HYG6LRL4.js +0 -200
  215. package/dist/cli-bundle/chunks/chunk-QI2CT3IX.js +0 -2
  216. package/dist/cli-bundle/chunks/chunk-SMWXHMVB.js +0 -35
  217. package/dist/cli-bundle/chunks/chunk-VMMIL3SI.js +0 -2
  218. package/dist/cli-bundle/chunks/chunk-YBPJAOQQ.js +0 -3
  219. package/dist/cli-bundle/chunks/register-mutation-HTKEEGRD.js +0 -20
  220. package/dist/cli-bundle/chunks/register-operations-6EMRWJJY.js +0 -2
  221. package/dist/cli-bundle/focused-chunks/chunk-2AZT5WXZ.js +0 -2
  222. package/dist/cli-bundle/focused-chunks/chunk-3LKU6PTJ.js +0 -4
  223. package/dist/cli-bundle/focused-chunks/chunk-5SHSBMX2.js +0 -2
  224. package/dist/cli-bundle/focused-chunks/chunk-C4S4A4JJ.js +0 -5
  225. package/dist/cli-bundle/focused-chunks/chunk-L5LDSRO2.js +0 -155
  226. package/dist/cli-bundle/focused-chunks/chunk-MB37AYN6.js +0 -26
  227. package/dist/cli-bundle/focused-chunks/chunk-MCOR37QK.js +0 -2
  228. package/dist/cli-bundle/focused-chunks/chunk-PH2OXXVZ.js +0 -18
  229. package/dist/cli-bundle/focused-chunks/chunk-WZE4LIPW.js +0 -8
@@ -4,7 +4,7 @@
4
4
  * Implements the pm config 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]="5918331a-46e9-5699-b85d-89f49a27d341")}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]="2f750f85-6c55-5f0f-b5c0-396764839d2a")}catch(e){}}();
8
8
  import { resolveConfigPositionalValue, } from "../core/config/positional-value.js";
9
9
  import { NESTED_SETTING_DESCRIPTORS, parseNestedSettingValue, readNestedSettingValue, resolveNestedSettingDescriptor, writeNestedSettingValue, } from "../core/config/nested-settings.js";
10
10
  import { getActiveExtensionRegistrations } from "../core/extensions/index.js";
@@ -16,6 +16,7 @@ import { resolveItemTypesFilePath } from "../core/schema/runtime-schema.js";
16
16
  import { EXIT_CODE } from "../core/shared/constants.js";
17
17
  import { PmCliError } from "../core/shared/errors.js";
18
18
  import { createUnknownSubcommandError } from "./agent/subcommand-recovery.js";
19
+ import { planAgentIdentityVocabularyMutation, summarizeAgentIdentityVocabulary, } from "./agent/identity-config.js";
19
20
  import { assertInitializedTracker } from "./environment/tracker-preflight.js";
20
21
  import { migrateItemFilesToFormat } from "../core/store/item-format-migration.js";
21
22
  import { getSettingsPath, resolveGlobalPmRoot, resolvePmRoot, } from "../core/store/paths.js";
@@ -99,7 +100,15 @@ const CONFIG_KEY_ALIASES = {
99
100
  "governance_force_required_for_stale_lock",
100
101
  ],
101
102
  test_result_tracking: ["test-result-tracking", "test_result_tracking"],
103
+ untrusted_linked_test_execution: [
104
+ "untrusted-linked-test-execution",
105
+ "untrusted_linked_test_execution",
106
+ ],
102
107
  telemetry_tracking: ["telemetry-tracking", "telemetry_tracking"],
108
+ agent_identity_vocabulary: [
109
+ "agent-identity-vocabulary",
110
+ "agent_identity_vocabulary",
111
+ ],
103
112
  context: ["context"],
104
113
  };
105
114
  // Canonical kebab-case forms (first alias entry per key). Used for the invalid-key
@@ -130,7 +139,9 @@ const CONFIG_KEY_SUMMARIES = {
130
139
  governance_metadata_validation_profile: "Governance metadata validation profile (core|strict|custom).",
131
140
  governance_force_required_for_stale_lock: "Governance stale-lock force policy (enabled|disabled).",
132
141
  test_result_tracking: "Item-level linked test result persistence policy.",
142
+ untrusted_linked_test_execution: "Permit an explicit per-run override for commands not trusted by this clone.",
133
143
  telemetry_tracking: "Telemetry usage reporting policy.",
144
+ agent_identity_vocabulary: "Versioned exact legacy-author interpretation vocabulary (summary only).",
134
145
  context: "Context command settings (depth, section toggles, limits).",
135
146
  };
136
147
  const LIFECYCLE_PATTERN_CONFIG_KEYS = [
@@ -145,6 +156,7 @@ const CRITERIA_CONFIG_KEYS = new Set([
145
156
  ]);
146
157
  const TRACKING_CONFIG_KEYS = new Set([
147
158
  "test_result_tracking",
159
+ "untrusted_linked_test_execution",
148
160
  "telemetry_tracking",
149
161
  ]);
150
162
  const GOVERNANCE_BOOLEAN_CONFIG_KEYS = new Set([
@@ -232,11 +244,14 @@ function normalizeHistoryMissingStreamPolicy(value) {
232
244
  throw new PmCliError("Config set history-missing-stream-policy requires --policy with one of: auto_create, strict_error", EXIT_CODE.USAGE);
233
245
  }
234
246
  function normalizeTestResultTrackingPolicy(value) {
247
+ return normalizeEnabledDisabledPolicy(value, "test-result-tracking");
248
+ }
249
+ function normalizeEnabledDisabledPolicy(value, key) {
235
250
  const normalized = value?.trim().toLowerCase().replaceAll("-", "_");
236
251
  if (normalized === "enabled" || normalized === "disabled") {
237
252
  return normalized;
238
253
  }
239
- throw new PmCliError("Config set test-result-tracking requires --policy with one of: enabled, disabled", EXIT_CODE.USAGE);
254
+ throw new PmCliError(`Config set ${key} requires --policy with one of: enabled, disabled`, EXIT_CODE.USAGE);
240
255
  }
241
256
  function normalizeTelemetryTrackingPolicy(value) {
242
257
  const normalized = value?.trim().toLowerCase().replaceAll("-", "_");
@@ -320,7 +335,15 @@ function normalizeGovernanceRequireCloseReasonPolicy(value) {
320
335
  }
321
336
  throw new PmCliError("Config set governance-require-close-reason requires --policy with one of: enabled, disabled", EXIT_CODE.USAGE);
322
337
  }
338
+ const ENABLED_DISABLED_CONFLICT_POLICY_KEYS = {
339
+ test_result_tracking: "test-result-tracking",
340
+ untrusted_linked_test_execution: "untrusted-linked-test-execution",
341
+ };
323
342
  function normalizePolicyForConflict(key, value) {
343
+ const enabledDisabledKey = ENABLED_DISABLED_CONFLICT_POLICY_KEYS[key];
344
+ if (enabledDisabledKey) {
345
+ return normalizeEnabledDisabledPolicy(value, enabledDisabledKey);
346
+ }
324
347
  switch (key) {
325
348
  case "history_missing_stream_policy":
326
349
  return normalizeHistoryMissingStreamPolicy(value);
@@ -346,8 +369,6 @@ function normalizePolicyForConflict(key, value) {
346
369
  return normalizeGovernanceWorkflowEnforcement(value);
347
370
  case "governance_force_required_for_stale_lock":
348
371
  return normalizeGovernanceForceRequiredForStaleLockPolicy(value);
349
- case "test_result_tracking":
350
- return normalizeTestResultTrackingPolicy(value);
351
372
  case "telemetry_tracking":
352
373
  return normalizeTelemetryTrackingPolicy(value);
353
374
  default:
@@ -477,7 +498,9 @@ const CONFIG_VALUE_READERS = {
477
498
  governance_metadata_validation_profile: (settings) => settings.governance.metadata_profile,
478
499
  governance_force_required_for_stale_lock: (settings) => settings.governance.force_required_for_stale_lock ? "enabled" : "disabled",
479
500
  test_result_tracking: (settings) => settings.testing.record_results_to_items ? "enabled" : "disabled",
501
+ untrusted_linked_test_execution: (settings) => settings.testing.allow_untrusted_linked_tests ? "enabled" : "disabled",
480
502
  telemetry_tracking: (settings) => settings.telemetry.enabled ? "enabled" : "disabled",
503
+ agent_identity_vocabulary: (settings) => summarizeAgentIdentityVocabulary(settings.agent_identity?.identity_vocabulary),
481
504
  context: (settings) => ({
482
505
  default_depth: settings.context.default_depth,
483
506
  activity_limit: settings.context.activity_limit,
@@ -642,7 +665,7 @@ function buildConfigListResult(context) {
642
665
  const keys = Object.keys(CONFIG_KEY_ALIASES).map((candidate) => ({
643
666
  key: candidate,
644
667
  aliases: CONFIG_KEY_ALIASES[candidate],
645
- value_kind: candidate === "context"
668
+ value_kind: candidate === "context" || candidate === "agent_identity_vocabulary"
646
669
  ? "object"
647
670
  : isCriteriaConfigKey(candidate)
648
671
  ? "string_array"
@@ -654,11 +677,13 @@ function buildConfigListResult(context) {
654
677
  "--stale-threshold-days",
655
678
  "--section-<name>",
656
679
  ]
657
- : isCriteriaConfigKey(candidate)
658
- ? ["--criterion", "--clear-criteria"]
659
- : candidate === "item_format"
660
- ? ["--format"]
661
- : ["--policy"],
680
+ : candidate === "agent_identity_vocabulary"
681
+ ? ["--policy", "--value", "--criterion"]
682
+ : isCriteriaConfigKey(candidate)
683
+ ? ["--criterion", "--clear-criteria"]
684
+ : candidate === "item_format"
685
+ ? ["--format"]
686
+ : ["--policy"],
662
687
  summary: CONFIG_KEY_SUMMARIES[candidate],
663
688
  value: readConfigValue(context.settings, candidate),
664
689
  }));
@@ -669,9 +694,7 @@ function buildConfigListResult(context) {
669
694
  kind: descriptor.kind,
670
695
  value: readNestedSettingValue(context.settings, descriptor),
671
696
  summary: descriptor.summary,
672
- ...(descriptor.choices
673
- ? { choices: [...descriptor.choices] }
674
- : {}),
697
+ ...(descriptor.choices ? { choices: [...descriptor.choices] } : {}),
675
698
  ...(descriptor.min === undefined ? {} : { min: descriptor.min }),
676
699
  ...(descriptor.max === undefined ? {} : { max: descriptor.max }),
677
700
  }));
@@ -714,6 +737,12 @@ function buildConfigGetResult(context, key) {
714
737
  if (key === "context") {
715
738
  return withWarnings({ ...base, context_settings: value }, context.warnings);
716
739
  }
740
+ if (key === "agent_identity_vocabulary") {
741
+ return withWarnings({
742
+ ...base,
743
+ identity_vocabulary: value,
744
+ }, context.warnings);
745
+ }
717
746
  if (Array.isArray(value)) {
718
747
  return withWarnings({ ...base, criteria: value }, context.warnings);
719
748
  }
@@ -987,6 +1016,16 @@ async function setTrackingConfig(context, key, options) {
987
1016
  await writeConfigSettingsIfChanged(context, changed, "config:set:test_result_tracking");
988
1017
  return buildPolicyResult(context, key, context.settings.testing.record_results_to_items ? "enabled" : "disabled", changed);
989
1018
  }
1019
+ if (key === "untrusted_linked_test_execution") {
1020
+ const nextPolicy = normalizeEnabledDisabledPolicy(options.policy, "untrusted-linked-test-execution");
1021
+ const nextEnabled = nextPolicy === "enabled";
1022
+ const changed = context.settings.testing.allow_untrusted_linked_tests !== nextEnabled;
1023
+ context.settings.testing.allow_untrusted_linked_tests = nextEnabled;
1024
+ await writeConfigSettingsIfChanged(context, changed, "config:set:untrusted_linked_test_execution");
1025
+ return buildPolicyResult(context, key, context.settings.testing.allow_untrusted_linked_tests
1026
+ ? "enabled"
1027
+ : "disabled", changed);
1028
+ }
990
1029
  const nextPolicy = normalizeTelemetryTrackingPolicy(options.policy);
991
1030
  const nextEnabled = nextPolicy === "enabled";
992
1031
  const changed = context.settings.telemetry.enabled !== nextEnabled ||
@@ -1005,6 +1044,69 @@ async function setDefinitionOfDoneConfig(context, key, options) {
1005
1044
  await writeConfigSettingsIfChanged(context, changed, "config:set:definition_of_done");
1006
1045
  return buildCriteriaResult(context, key, [...context.settings.workflow.definition_of_done], changed);
1007
1046
  }
1047
+ function parseAgentIdentityVocabularyOperation(raw) {
1048
+ const policy = raw?.trim().toLowerCase().replaceAll("_", "-");
1049
+ const dryRun = policy?.startsWith("preview-") === true;
1050
+ const operation = dryRun ? policy.slice("preview-".length) : policy;
1051
+ if (operation === "add" || operation === "remove" || operation === "clear") {
1052
+ return { operation, dryRun };
1053
+ }
1054
+ throw new PmCliError("Config set agent-identity-vocabulary requires --policy add|remove|clear|preview-add|preview-remove|preview-clear", EXIT_CODE.USAGE);
1055
+ }
1056
+ function parseAgentIdentityVocabularyMutationValue(operation, value) {
1057
+ if (operation === "add") {
1058
+ const separator = value?.lastIndexOf("=") ?? -1;
1059
+ if (separator <= 0 || separator === value.length - 1) {
1060
+ throw new PmCliError('Config set agent-identity-vocabulary --policy add requires --value "<legacy-author>=<canonical-harness>"', EXIT_CODE.USAGE);
1061
+ }
1062
+ return {
1063
+ legacy_author: value.slice(0, separator),
1064
+ canonical_harness: value.slice(separator + 1),
1065
+ };
1066
+ }
1067
+ if (operation === "remove") {
1068
+ if (value === undefined) {
1069
+ throw new PmCliError("Config set agent-identity-vocabulary --policy remove requires --value <legacy-author>", EXIT_CODE.USAGE);
1070
+ }
1071
+ return { legacy_author: value };
1072
+ }
1073
+ if (value !== undefined) {
1074
+ throw new PmCliError("Config set agent-identity-vocabulary --policy clear does not accept --value", EXIT_CODE.USAGE);
1075
+ }
1076
+ return {};
1077
+ }
1078
+ async function setAgentIdentityVocabularyConfig(context, options) {
1079
+ const { operation, dryRun } = parseAgentIdentityVocabularyOperation(options.policy);
1080
+ const mutationValue = parseAgentIdentityVocabularyMutationValue(operation, options.value);
1081
+ let planned;
1082
+ try {
1083
+ planned = planAgentIdentityVocabularyMutation(context.settings.agent_identity?.identity_vocabulary, {
1084
+ operation,
1085
+ ...mutationValue,
1086
+ observed_authors: options.criterion,
1087
+ });
1088
+ }
1089
+ catch (error) {
1090
+ throw new PmCliError(error.message, EXIT_CODE.USAGE);
1091
+ }
1092
+ if (planned.preview.changed && !dryRun) {
1093
+ context.settings.agent_identity = {
1094
+ ...context.settings.agent_identity,
1095
+ identity_vocabulary: planned.vocabulary,
1096
+ };
1097
+ await writeConfigSettingsIfChanged(context, true, `config:set:agent_identity.identity_vocabulary:${operation}:v${planned.preview.version_after}`);
1098
+ }
1099
+ return withWarnings({
1100
+ scope: context.scope,
1101
+ key: "agent_identity_vocabulary",
1102
+ identity_vocabulary: summarizeAgentIdentityVocabulary(dryRun
1103
+ ? context.settings.agent_identity?.identity_vocabulary
1104
+ : planned.vocabulary),
1105
+ vocabulary_mutation: planned.preview,
1106
+ settings_path: context.target.settingsPath,
1107
+ changed: planned.preview.changed && !dryRun,
1108
+ }, context.warnings);
1109
+ }
1008
1110
  async function setConfigValue(context, key, options) {
1009
1111
  if (options.clearCriteria === true && !isCriteriaConfigKey(key)) {
1010
1112
  throw new PmCliError("--clear-criteria is only supported with config set criteria-list keys", EXIT_CODE.USAGE);
@@ -1015,6 +1117,9 @@ async function setConfigValue(context, key, options) {
1015
1117
  if (key === "context") {
1016
1118
  return applyContextConfig(context.settings, options, context.target, context.scope, context.warnings);
1017
1119
  }
1120
+ if (key === "agent_identity_vocabulary") {
1121
+ return setAgentIdentityVocabularyConfig(context, options);
1122
+ }
1018
1123
  if (key === "definition_of_done") {
1019
1124
  return setDefinitionOfDoneConfig(context, key, options);
1020
1125
  }
@@ -1097,4 +1202,4 @@ export const _testOnlyConfigCommand = {
1097
1202
  normalizeWarnings,
1098
1203
  };
1099
1204
  //# sourceMappingURL=config.js.map
1100
- //# debugId=5918331a-46e9-5699-b85d-89f49a27d341
1205
+ //# debugId=2f750f85-6c55-5f0f-b5c0-396764839d2a
@@ -5,7 +5,7 @@
5
5
  * workspace configuration, and packages.
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]="86db3dad-99b9-5c48-be52-990f110ac81f")}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]="da15ca02-02cc-5886-8c82-610939b8581c")}catch(e){}}();
9
9
  import { AsyncLocalStorage } from "node:async_hooks";
10
10
  import { renderPmCommand } from "./command-line.js";
11
11
  import { attachOutputOmissionReceipt } from "./output-projection.js";
@@ -202,6 +202,8 @@ export function resolveContextIntentContract(command, intent, contracts = getAct
202
202
  code: "unknown_context_intent",
203
203
  reason: "unknown_intent",
204
204
  field: "for",
205
+ flag: "--for",
206
+ value: normalizedIntent,
205
207
  required: `Use a declared ${normalizedCommand} intent.`,
206
208
  why: "Intent names are command-local contracts and cannot be inferred from output section names.",
207
209
  nextSteps: [suggestedCommand],
@@ -701,4 +703,4 @@ export function attachReadOutputContracts(command, options, result) {
701
703
  return stabilizeSuppressedRowContractReceipts(Object.fromEntries(Object.entries(projected).filter(([key]) => key !== "row_contract")), options);
702
704
  }
703
705
  //# sourceMappingURL=context-intent-contracts.js.map
704
- //# debugId=86db3dad-99b9-5c48-be52-990f110ac81f
706
+ //# debugId=da15ca02-02cc-5886-8c82-610939b8581c
@@ -4,7 +4,7 @@
4
4
  * Defines the shared agent-provenance and CLI-completeness governance surface
5
5
  * exposed by both the focused core entrypoint and the complete SDK barrel.
6
6
  */
7
- export { AGENT_PROVENANCE_DIMENSIONS, BUILTIN_HARNESS_SIGNAL_DESCRIPTORS, diagnoseAgentIdentity, detectAgentIdentity, detectHarnessIdentity, readAuthorEnvironment, registerHarnessSignalDescriptors, resolveAuthorIdentity, runWithHarnessDetectionSignals, runWithWorkspaceHarnessSignalDescriptors, writeAuthorEnvironment, type AgentClientInfo, type AgentModelSource, type AgentProvenance, type AgentProvenanceAbsenceReason, type AgentProvenanceObservation, type AgentProvenanceOutcome, type AuthorSource, type DetectedAgentIdentity, type DiagnosedAgentIdentity, type HarnessDetectionSignals, type HarnessSignalDescriptor, type ResolvedAuthorIdentity, } from "../core/shared/author.js";
7
+ export { AGENT_PROVENANCE_DIMENSIONS, BUILTIN_AGENT_PROVENANCE_ADAPTERS, BUILTIN_HARNESS_SIGNAL_DESCRIPTORS, diagnoseAgentIdentity, detectAgentIdentity, detectHarnessIdentity, listAgentProvenanceAdapters, normalizeAgentProvenanceAdapterValue, readAuthorEnvironment, registerHarnessSignalDescriptors, registerAgentProvenanceAdapters, resolveAuthorIdentity, runWithHarnessDetectionSignals, runWithWorkspaceHarnessSignalDescriptors, writeAuthorEnvironment, type AgentClientInfo, type AgentProvenanceAdapter, type AgentModelSource, type AgentProvenance, type AgentProvenanceAbsenceReason, type AgentProvenanceObservation, type AgentProvenanceOutcome, type NormalizedAgentProvenanceAdapterValue, type AuthorSource, type DetectedAgentIdentity, type DiagnosedAgentIdentity, type HarnessDetectionSignals, type HarnessSignalDescriptor, type ResolvedAuthorIdentity, } from "../core/shared/author.js";
8
8
  export { SEMANTIC_ATTRIBUTION_LIMITS, recordClaimSemanticAttribution, recordFocusSemanticAttribution, recordReleaseSemanticAttribution, resolveSemanticLineageIds, semanticAttributionAffinity, } from "./context/semantic-session-attribution.js";
9
9
  export { explainSourceTraceability, parseSourceLineRange, type SourceDecisionPath, type SourceLineRange, type SourceTraceabilityEvidence, type SourceTraceabilityExplanation, type SourceTraceabilityRationale, type SourceTraceabilityReceipt, } from "./traceability/source-traceability.js";
10
10
  export { analyzeAgentProvenanceDescriptorCoverage, evaluateSemanticAttributionCoverage, groupHistoryByEpisode, resolveHistoryEpisodeGroupIdentity, summarizeAgentProvenance, summarizeAgentModelProvenance, type AgentEpisodeGroup, type AgentModelProvenanceCoverage, type AgentProvenanceDimensionCoverage, type AgentProvenanceDescriptorCoverage, type AgentSemanticAttributionCoverage, type AgentSemanticAttributionCoverageGate, } from "./provenance.js";
@@ -5,11 +5,11 @@
5
5
  * exposed by both the focused core entrypoint and the complete SDK barrel.
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]="d19cfa31-a02f-53a7-8685-5d169d6e051d")}catch(e){}}();
9
- export { AGENT_PROVENANCE_DIMENSIONS, BUILTIN_HARNESS_SIGNAL_DESCRIPTORS, diagnoseAgentIdentity, detectAgentIdentity, detectHarnessIdentity, readAuthorEnvironment, registerHarnessSignalDescriptors, resolveAuthorIdentity, runWithHarnessDetectionSignals, runWithWorkspaceHarnessSignalDescriptors, writeAuthorEnvironment, } from "../core/shared/author.js";
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]="cea03617-5e90-5683-a9d1-289087ed4646")}catch(e){}}();
9
+ export { AGENT_PROVENANCE_DIMENSIONS, BUILTIN_AGENT_PROVENANCE_ADAPTERS, BUILTIN_HARNESS_SIGNAL_DESCRIPTORS, diagnoseAgentIdentity, detectAgentIdentity, detectHarnessIdentity, listAgentProvenanceAdapters, normalizeAgentProvenanceAdapterValue, readAuthorEnvironment, registerHarnessSignalDescriptors, registerAgentProvenanceAdapters, resolveAuthorIdentity, runWithHarnessDetectionSignals, runWithWorkspaceHarnessSignalDescriptors, writeAuthorEnvironment, } from "../core/shared/author.js";
10
10
  export { SEMANTIC_ATTRIBUTION_LIMITS, recordClaimSemanticAttribution, recordFocusSemanticAttribution, recordReleaseSemanticAttribution, resolveSemanticLineageIds, semanticAttributionAffinity, } from "./context/semantic-session-attribution.js";
11
11
  export { explainSourceTraceability, parseSourceLineRange, } from "./traceability/source-traceability.js";
12
12
  export { analyzeAgentProvenanceDescriptorCoverage, evaluateSemanticAttributionCoverage, groupHistoryByEpisode, resolveHistoryEpisodeGroupIdentity, summarizeAgentProvenance, summarizeAgentModelProvenance, } from "./provenance.js";
13
13
  export { analyzeSdkCliParameterCompleteness, } from "./cli-contracts.js";
14
14
  //# sourceMappingURL=core-governance.js.map
15
- //# debugId=d19cfa31-a02f-53a7-8685-5d169d6e051d
15
+ //# debugId=cea03617-5e90-5683-a9d1-289087ed4646
@@ -4,7 +4,7 @@
4
4
  * Implements extension package-management support for Scaffold.
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]="30dfc6e4-27c5-56c0-981b-94e85b780f1f")}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]="5321d574-4de4-5f94-99db-0c49639673fc")}catch(e){}}();
8
8
  import fs from "node:fs/promises";
9
9
  import path from "node:path";
10
10
  import { pathExists } from "../../core/fs/fs-utils.js";
@@ -1483,6 +1483,12 @@ function buildDeclarativeCapabilityTestBlock(extensionName, commandName, capabil
1483
1483
  "",
1484
1484
  " // The starter provider reads only document title/id, so `settings` is a minimal",
1485
1485
  " // typed stub and `documents` carry just the fields it inspects.",
1486
+ " const settings = {",
1487
+ " testing: {",
1488
+ " record_results_to_items: false,",
1489
+ " allow_untrusted_linked_tests: false,",
1490
+ " },",
1491
+ " } as PmSettings;",
1486
1492
  " const query = await ext.runSearchProvider({",
1487
1493
  ` provider: ${JSON.stringify(searchProviderName)},`,
1488
1494
  ' operation: "query",',
@@ -1491,7 +1497,7 @@ function buildDeclarativeCapabilityTestBlock(extensionName, commandName, capabil
1491
1497
  ' mode: "semantic",',
1492
1498
  ' tokens: ["sync"],',
1493
1499
  " options: {},",
1494
- " settings: {} as PmSettings,",
1500
+ " settings,",
1495
1501
  " documents: [",
1496
1502
  ' { metadata: { id: "pm-1", title: "Sync external context" }, body: "" },',
1497
1503
  ' { metadata: { id: "pm-2", title: "Unrelated task" }, body: "" },',
@@ -1503,14 +1509,14 @@ function buildDeclarativeCapabilityTestBlock(extensionName, commandName, capabil
1503
1509
  " const embedding = await ext.runSearchProvider({",
1504
1510
  ` provider: ${JSON.stringify(searchProviderName)},`,
1505
1511
  ' operation: "embed",',
1506
- ' context: { input: "abc", settings: {} as PmSettings, model: "starter-model" },',
1512
+ ' context: { input: "abc", settings, model: "starter-model" },',
1507
1513
  " });",
1508
1514
  " assert.deepEqual(embedding, [3]);",
1509
1515
  "",
1510
1516
  " const vectorHits = await ext.runVectorStoreAdapter({",
1511
1517
  ` adapter: ${JSON.stringify(vectorAdapterName)},`,
1512
1518
  ' operation: "query",',
1513
- " context: { vector: [0.1, 0.2], limit: 2, settings: {} as PmSettings },",
1519
+ " context: { vector: [0.1, 0.2], limit: 2, settings },",
1514
1520
  " });",
1515
1521
  ' assert.deepEqual(vectorHits, [{ id: "starter-vector-hit", score: 2 }]);',
1516
1522
  ]),
@@ -2300,4 +2306,4 @@ export async function scaffoldExtensionProject(target, vocabulary = "extension",
2300
2306
  };
2301
2307
  }
2302
2308
  //# sourceMappingURL=scaffold.js.map
2303
- //# debugId=30dfc6e4-27c5-56c0-981b-94e85b780f1f
2309
+ //# debugId=5321d574-4de4-5f94-99db-0c49639673fc
@@ -24,6 +24,8 @@ export interface CliFlagInvocationContract extends CliFlagContract {
24
24
  input_sources: CliFlagInputSource[];
25
25
  /** Sentinel that redirects the argv value to stdin. */
26
26
  stdin_token?: "-";
27
+ /** Prefix that redirects the argv value to a file path. */
28
+ file_token_prefix?: "@";
27
29
  }
28
30
  /** Executable option arity observed from the registered Commander program. */
29
31
  export interface CliFlagArityObservation {
@@ -1,8 +1,8 @@
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]="0f857893-8441-54ad-af99-abaae9af864d")}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]="7ef5cc14-ad6b-5cce-a1a1-e5cfac85fbc2")}catch(e){}}();
3
3
  const FLAG_DESCRIPTIONS = Object.freeze({
4
4
  "--body": "Set the item body.",
5
- "--body-file": "Read the item body from a file.",
5
+ "--body-file": "Read the item body from a file, or from stdin when set to -.",
6
6
  "--description": "Set the item description.",
7
7
  "--stdin": "Read the value from stdin.",
8
8
  "--stdin-json": "Read a complete JSON document from stdin.",
@@ -12,13 +12,16 @@ const STDIN_TOKEN_FLAGS = new Set([
12
12
  "--body",
13
13
  "--comment",
14
14
  "--dep",
15
+ "--dep-remove",
15
16
  "--description",
16
17
  "--doc",
18
+ "--event",
17
19
  "--field",
18
20
  "--file",
19
21
  "--learning",
20
22
  "--note",
21
23
  "--remove",
24
+ "--reminder",
22
25
  "--test",
23
26
  "--type-option",
24
27
  ]);
@@ -32,6 +35,22 @@ const STDIN_VALUE_COMMANDS = new Set([
32
35
  "notes",
33
36
  "test",
34
37
  "update",
38
+ "update-many",
39
+ ]);
40
+ const FILE_OR_STDIN_COMMAND_FLAGS = new Set([
41
+ "close-many:--ids",
42
+ "comments:--file",
43
+ "create:--body-file",
44
+ "history-compact:--ids",
45
+ "learnings:--file",
46
+ "notes:--file",
47
+ "update:--body-file",
48
+ "update-many:--ids",
49
+ ]);
50
+ const AT_PATH_FILE_COMMAND_FLAGS = new Set([
51
+ "close-many:--ids",
52
+ "history-compact:--ids",
53
+ "update-many:--ids",
35
54
  ]);
36
55
  const BOOLEAN_FLAG_PREFIXES = [
37
56
  "--allow-",
@@ -68,6 +87,7 @@ const BOOLEAN_FLAG_NAMES = new Set([
68
87
  "--all-affected-ids",
69
88
  "--all-day",
70
89
  "--all-streams",
90
+ "--acknowledge-linked-tests",
71
91
  "--append-stable",
72
92
  "--auto-fix",
73
93
  "--auto-pm-context",
@@ -133,6 +153,7 @@ const BOOLEAN_FLAG_NAMES = new Set([
133
153
  "--only-last",
134
154
  "--output-row-contract",
135
155
  "--override-linked-pm-context",
156
+ "--override-linked-workspace-context",
136
157
  "--packages-only",
137
158
  "--past",
138
159
  "--phrase-exact",
@@ -191,6 +212,9 @@ const OPTIONAL_VALUE_FLAGS = new Set(["--regression"]);
191
212
  function resolveFlagInputSources(command, flag) {
192
213
  if (flag === "--stdin" || flag === "--stdin-json")
193
214
  return ["stdin"];
215
+ if (FILE_OR_STDIN_COMMAND_FLAGS.has(`${command}:${flag}`)) {
216
+ return ["argv", "file", "stdin"];
217
+ }
194
218
  if (flag.endsWith("-file"))
195
219
  return ["argv", "file"];
196
220
  if (STDIN_TOKEN_FLAGS.has(flag) && STDIN_VALUE_COMMANDS.has(command)) {
@@ -241,6 +265,9 @@ export function enrichCliFlagInvocationContract(command, contract) {
241
265
  contract.flag !== "--stdin-json"
242
266
  ? { stdin_token: "-" }
243
267
  : {}),
268
+ ...(AT_PATH_FILE_COMMAND_FLAGS.has(`${command}:${contract.flag}`)
269
+ ? { file_token_prefix: "@" }
270
+ : {}),
244
271
  };
245
272
  }
246
273
  /** Enrich a complete command flag table without mutating package-owned rows. */
@@ -315,4 +342,4 @@ export function verifyCliFlagInvocationParity(command, declarations, observation
315
342
  };
316
343
  }
317
344
  //# sourceMappingURL=flag-invocation-contracts.js.map
318
- //# debugId=0f857893-8441-54ad-af99-abaae9af864d
345
+ //# debugId=7ef5cc14-ad6b-5cce-a1a1-e5cfac85fbc2
@@ -1,6 +1,6 @@
1
1
  /** Generated partition 1 of the exhaustive error-code catalog. */
2
2
 
3
- !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]="2903ebb9-541a-5636-ae3c-e996d3f0cec4")}catch(e){}}();
3
+ !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]="030027d7-2703-56ea-9235-64bc602a25c3")}catch(e){}}();
4
4
  export const PM_ERROR_CODE_CATALOG_PART_1 = [
5
5
  {
6
6
  code: "acceptance_criteria_mutation_conflict",
@@ -218,6 +218,51 @@ export const PM_ERROR_CODE_CATALOG_PART_1 = [
218
218
  canonical_code: "budget_exceeded",
219
219
  aliases: [],
220
220
  },
221
+ {
222
+ code: "bulk_ids_input_empty",
223
+ meaning: "Bulk ids input empty condition.",
224
+ stability: "provisional",
225
+ exit_code: 2,
226
+ class: "usage",
227
+ recovery: "Inspect the structured error guidance and retry the suggested command.",
228
+ sources: ["core/io/bulk-ids-input.ts", "sdk/history-compact.ts", "sdk/history-mcp.ts"],
229
+ emitting_commands: ["*"],
230
+ canonical_code: "bulk_ids_input_empty",
231
+ aliases: [],
232
+ owned_states: [
233
+ { state: "bulk_ids_stdin_contains_no_nonempty_ids", probe_id: "bulk-ids-stdin-empty", entrypoints: ["update-many"], expected_exit_class: "usage" },
234
+ ],
235
+ },
236
+ {
237
+ code: "bulk_ids_input_missing_path",
238
+ meaning: "Bulk ids input missing path condition.",
239
+ stability: "provisional",
240
+ exit_code: 2,
241
+ class: "usage",
242
+ recovery: "Inspect the structured error guidance and retry the suggested command.",
243
+ sources: ["core/io/bulk-ids-input.ts"],
244
+ emitting_commands: ["*"],
245
+ canonical_code: "bulk_ids_input_missing_path",
246
+ aliases: [],
247
+ owned_states: [
248
+ { state: "bulk_ids_file_token_omits_its_path", probe_id: "bulk-ids-file-path-missing", entrypoints: ["update-many"], expected_exit_class: "usage" },
249
+ ],
250
+ },
251
+ {
252
+ code: "bulk_ids_input_unreadable",
253
+ meaning: "Bulk ids input unreadable condition.",
254
+ stability: "provisional",
255
+ exit_code: 3,
256
+ class: "not_found",
257
+ recovery: "Inspect the structured error guidance and retry the suggested command.",
258
+ sources: ["core/io/bulk-ids-input.ts"],
259
+ emitting_commands: ["*"],
260
+ canonical_code: "bulk_ids_input_unreadable",
261
+ aliases: [],
262
+ owned_states: [
263
+ { state: "bulk_ids_file_path_cannot_be_read", probe_id: "bulk-ids-file-unreadable", entrypoints: ["update-many"], expected_exit_class: "not_found" },
264
+ ],
265
+ },
221
266
  {
222
267
  code: "bundle_integrity_torn_install",
223
268
  meaning: "Bundle integrity torn install condition.",
@@ -1656,6 +1701,18 @@ export const PM_ERROR_CODE_CATALOG_PART_1 = [
1656
1701
  canonical_code: "invalid_read_output_session",
1657
1702
  aliases: [],
1658
1703
  },
1704
+ {
1705
+ code: "invalid_reproducible_process_environment",
1706
+ meaning: "Invalid reproducible process environment condition.",
1707
+ stability: "provisional",
1708
+ exit_code: 2,
1709
+ class: "usage",
1710
+ recovery: "Inspect the structured error guidance and retry the suggested command.",
1711
+ sources: ["sdk/reproducibility/process.ts"],
1712
+ emitting_commands: ["*"],
1713
+ canonical_code: "invalid_reproducible_process_environment",
1714
+ aliases: [],
1715
+ },
1659
1716
  {
1660
1717
  code: "invalid_workspace_snapshot_target",
1661
1718
  meaning: "Invalid workspace snapshot target condition.",
@@ -1884,6 +1941,30 @@ export const PM_ERROR_CODE_CATALOG_PART_1 = [
1884
1941
  canonical_code: "manifest_unknown_key",
1885
1942
  aliases: [],
1886
1943
  },
1944
+ {
1945
+ code: "mcp_annotation_file_unavailable",
1946
+ meaning: "Mcp annotation file unavailable condition.",
1947
+ stability: "provisional",
1948
+ exit_code: 2,
1949
+ class: "usage",
1950
+ recovery: "Inspect the structured error guidance and retry the suggested command.",
1951
+ sources: ["sdk/runtime-input.ts"],
1952
+ emitting_commands: ["*"],
1953
+ canonical_code: "mcp_annotation_file_unavailable",
1954
+ aliases: [],
1955
+ },
1956
+ {
1957
+ code: "mcp_stdin_unavailable",
1958
+ meaning: "Mcp stdin unavailable condition.",
1959
+ stability: "provisional",
1960
+ exit_code: 2,
1961
+ class: "usage",
1962
+ recovery: "Inspect the structured error guidance and retry the suggested command.",
1963
+ sources: ["sdk/annotations.ts"],
1964
+ emitting_commands: ["*"],
1965
+ canonical_code: "mcp_stdin_unavailable",
1966
+ aliases: [],
1967
+ },
1887
1968
  {
1888
1969
  code: "merge_conflict_markers_detected",
1889
1970
  meaning: "Merge conflict markers detected condition.",
@@ -1970,4 +2051,4 @@ export const PM_ERROR_CODE_CATALOG_PART_1 = [
1970
2051
  },
1971
2052
  ];
1972
2053
  //# sourceMappingURL=generated-error-code-catalog-part-1.js.map
1973
- //# debugId=2903ebb9-541a-5636-ae3c-e996d3f0cec4
2054
+ //# debugId=030027d7-2703-56ea-9235-64bc602a25c3