@unbrained/pm-cli 2026.8.9 → 2026.8.10

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 (172) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/CHANGELOG.md +40 -0
  3. package/dist/cli/commander-usage.js +17 -12
  4. package/dist/cli/help-json-payload.js +51 -16
  5. package/dist/cli/main.js +7 -6
  6. package/dist/cli-bundle/bundle-manifest.json +165 -165
  7. package/dist/cli-bundle/chunks/chunk-2QYH4QMI.js +30 -0
  8. package/dist/cli-bundle/chunks/{chunk-YC3UF2IO.js → chunk-EBO7OUUE.js} +57 -57
  9. package/dist/cli-bundle/chunks/{chunk-GMX5YOI3.js → chunk-ETML5C6H.js} +48 -48
  10. package/dist/cli-bundle/chunks/chunk-JUDU4RO4.js +194 -0
  11. package/dist/cli-bundle/chunks/{chunk-PYO5GZU6.js → chunk-JZSNADRR.js} +5 -5
  12. package/dist/cli-bundle/chunks/{chunk-EF43KODO.js → chunk-MENWVGJW.js} +2 -2
  13. package/dist/cli-bundle/chunks/{chunk-5JO6R4BS.js → chunk-S4EITGLA.js} +2 -2
  14. package/dist/cli-bundle/chunks/{chunk-2DTCZXSD.js → chunk-TIGKWVLA.js} +9 -9
  15. package/dist/cli-bundle/chunks/{chunk-RJC7TPF4.js → chunk-TRWXF476.js} +2 -2
  16. package/dist/cli-bundle/chunks/chunk-TSLDTJLQ.js +2 -0
  17. package/dist/cli-bundle/chunks/{register-list-query-BUE7PTCU.js → register-list-query-OJ6ZXKV4.js} +2 -2
  18. package/dist/cli-bundle/chunks/{register-mutation-FC3XLVIK.js → register-mutation-DKI7QC7O.js} +2 -2
  19. package/dist/cli-bundle/chunks/register-operations-P5OGMT6I.js +2 -0
  20. package/dist/cli-bundle/chunks/{register-setup-UQDTNTLJ.js → register-setup-S3KT2LTH.js} +2 -2
  21. package/dist/cli-bundle/focused-chunks/{chunk-6DO4YQWZ.js → chunk-2COZ67XT.js} +2 -2
  22. package/dist/cli-bundle/focused-chunks/chunk-2EXI2DKR.js +4 -0
  23. package/dist/cli-bundle/focused-chunks/{chunk-KNEHLPBF.js → chunk-34SX654S.js} +2 -2
  24. package/dist/cli-bundle/focused-chunks/chunk-36FTZ2NT.js +2 -0
  25. package/dist/cli-bundle/focused-chunks/chunk-3CQECMKR.js +16 -0
  26. package/dist/cli-bundle/focused-chunks/chunk-75774JWP.js +6 -0
  27. package/dist/cli-bundle/focused-chunks/{chunk-MRWVJ3ZG.js → chunk-7UN6BHHO.js} +2 -2
  28. package/dist/cli-bundle/focused-chunks/{chunk-VRXJSGIT.js → chunk-CHIBMEZR.js} +2 -2
  29. package/dist/cli-bundle/focused-chunks/chunk-DZGAHZZV.js +3 -0
  30. package/dist/cli-bundle/focused-chunks/chunk-FF4MNAYB.js +153 -0
  31. package/dist/cli-bundle/focused-chunks/{chunk-ZG54B4XG.js → chunk-GHTN2ILR.js} +2 -2
  32. package/dist/cli-bundle/focused-chunks/chunk-I4YM2I7S.js +2 -0
  33. package/dist/cli-bundle/focused-chunks/chunk-IMDTEN7K.js +2 -0
  34. package/dist/cli-bundle/focused-chunks/chunk-IW43E4XL.js +2 -0
  35. package/dist/cli-bundle/focused-chunks/{chunk-3WVHTUAW.js → chunk-JMVA4HKR.js} +2 -2
  36. package/dist/cli-bundle/focused-chunks/{chunk-C3GCHDSQ.js → chunk-KR5RVXLQ.js} +31 -31
  37. package/dist/cli-bundle/focused-chunks/chunk-KSNJG4KI.js +16 -0
  38. package/dist/cli-bundle/focused-chunks/{chunk-73FIJONU.js → chunk-M6RPIXKC.js} +2 -2
  39. package/dist/cli-bundle/focused-chunks/chunk-MXYSIQ56.js +18 -0
  40. package/dist/cli-bundle/focused-chunks/chunk-RIIN5V4N.js +2 -0
  41. package/dist/cli-bundle/focused-chunks/{chunk-U46GQJNY.js → chunk-RKWSCYYN.js} +2 -2
  42. package/dist/cli-bundle/main.js +13 -13
  43. package/dist/cli-bundle/sdk-authoring.js +1 -1
  44. package/dist/cli-bundle/sdk-contracts.js +1 -1
  45. package/dist/cli-bundle/sdk-core.js +38 -38
  46. package/dist/cli-bundle/sdk-governance.js +1 -1
  47. package/dist/cli-bundle/sdk-graph.js +1 -1
  48. package/dist/cli-bundle/sdk-merge.js +1 -1
  49. package/dist/cli-bundle/sdk-query.js +1 -1
  50. package/dist/cli-bundle/sdk-runtime.js +1 -1
  51. package/dist/cli-bundle/sdk-testing.js +1 -1
  52. package/dist/cli-bundle/sdk.js +2 -2
  53. package/dist/core/diagnostics/remediation.js +9 -9
  54. package/dist/core/fs/fs-utils.d.ts +10 -0
  55. package/dist/core/fs/fs-utils.js +16 -4
  56. package/dist/core/item/item-format.js +3 -32
  57. package/dist/core/schema/fields-file.d.ts +1 -2
  58. package/dist/core/schema/fields-file.js +4 -11
  59. package/dist/core/schema/runtime-schema.js +3 -10
  60. package/dist/core/schema/status-defs-file.d.ts +1 -2
  61. package/dist/core/schema/status-defs-file.js +4 -32
  62. package/dist/core/schema/status-token.d.ts +2 -0
  63. package/dist/core/schema/status-token.js +32 -0
  64. package/dist/core/schema/type-workflows.d.ts +1 -2
  65. package/dist/core/schema/type-workflows.js +4 -11
  66. package/dist/core/shared/author.d.ts +1 -1
  67. package/dist/core/shared/author.js +21 -8
  68. package/dist/core/shared/errors.d.ts +4 -0
  69. package/dist/core/shared/errors.js +2 -2
  70. package/dist/core/shared/text-normalization.d.ts +1 -1
  71. package/dist/core/shared/text-normalization.js +2 -2
  72. package/dist/sdk/agent/command-recovery.d.ts +4 -0
  73. package/dist/sdk/agent/command-recovery.js +52 -0
  74. package/dist/sdk/agent/command-suggestions.d.ts +4 -0
  75. package/dist/sdk/agent/command-suggestions.js +67 -0
  76. package/dist/sdk/agent/create-option-policy.d.ts +12 -0
  77. package/dist/sdk/agent/create-option-policy.js +32 -0
  78. package/dist/sdk/agent/item-addressing.d.ts +19 -0
  79. package/dist/sdk/agent/item-addressing.js +208 -0
  80. package/dist/sdk/cli-bootstrap.d.ts +1 -1
  81. package/dist/sdk/cli-bootstrap.js +20 -5
  82. package/dist/sdk/cli-contracts/commander-mutation-options.js +16 -4
  83. package/dist/sdk/cli-contracts/flag-contracts.js +62 -21
  84. package/dist/sdk/cli-contracts/registration-helpers.js +10 -2
  85. package/dist/sdk/cli-contracts/runtime-contracts.js +5 -3
  86. package/dist/sdk/cli-contracts/tool-option-contracts.d.ts +6 -0
  87. package/dist/sdk/cli-contracts/tool-option-contracts.js +4 -2
  88. package/dist/sdk/cli-contracts/tool-parameter-tables.js +19 -4
  89. package/dist/sdk/cli-contracts/tool-schema.js +17 -4
  90. package/dist/sdk/context-intent-runtime.js +8 -5
  91. package/dist/sdk/context-signal-store.d.ts +34 -0
  92. package/dist/sdk/context-signal-store.js +24 -2
  93. package/dist/sdk/dependency-flag-validation.d.ts +15 -1
  94. package/dist/sdk/dependency-flag-validation.js +54 -2
  95. package/dist/sdk/generated-error-code-catalog.js +74 -2
  96. package/dist/sdk/governance/health.js +14 -7
  97. package/dist/sdk/governance/provenance-health.d.ts +13 -0
  98. package/dist/sdk/governance/provenance-health.js +63 -17
  99. package/dist/sdk/governance/validate-item-reader.d.ts +13 -0
  100. package/dist/sdk/governance/validate-item-reader.js +18 -0
  101. package/dist/sdk/governance/validate.d.ts +2 -2
  102. package/dist/sdk/governance/validate.js +15 -6
  103. package/dist/sdk/index.d.ts +4 -0
  104. package/dist/sdk/index.js +6 -2
  105. package/dist/sdk/lifecycle/close.js +17 -14
  106. package/dist/sdk/lifecycle/create.d.ts +2 -0
  107. package/dist/sdk/lifecycle/create.js +62 -9
  108. package/dist/sdk/lifecycle/update-many.js +39 -27
  109. package/dist/sdk/lifecycle/update.d.ts +6 -1
  110. package/dist/sdk/lifecycle/update.js +47 -10
  111. package/dist/sdk/merge/index.d.ts +1 -1
  112. package/dist/sdk/merge/index.js +3 -3
  113. package/dist/sdk/merge/install.d.ts +4 -0
  114. package/dist/sdk/merge/install.js +28 -16
  115. package/dist/sdk/merge/receipts.d.ts +3 -0
  116. package/dist/sdk/merge/receipts.js +81 -17
  117. package/dist/sdk/output-projection.js +24 -4
  118. package/dist/sdk/query/context.d.ts +2 -0
  119. package/dist/sdk/query/context.js +7 -4
  120. package/dist/sdk/query/light-metadata.d.ts +3 -0
  121. package/dist/sdk/query/light-metadata.js +19 -0
  122. package/dist/sdk/runtime.d.ts +4 -1
  123. package/dist/sdk/runtime.js +8 -3
  124. package/dist/sdk/schema-migration.js +7 -9
  125. package/dist/sdk/similarity-scoring.d.ts +1 -2
  126. package/dist/sdk/similarity-scoring.js +4 -16
  127. package/dist/sdk/workspace-snapshot.d.ts +4 -0
  128. package/dist/sdk/workspace-snapshot.js +24 -11
  129. package/docs/AGENT_GUIDE.md +3 -1
  130. package/docs/COMMANDS.md +8 -5
  131. package/docs/MERGE_SAFETY.md +7 -5
  132. package/docs/README.md +2 -5
  133. package/docs/READ_OUTPUT_CONTRACTS.md +2 -2
  134. package/docs/SDK.md +33 -8
  135. package/docs/SDK_AGENT_SESSION_CONTEXT.md +3 -2
  136. package/docs/SDK_CONTEXT.md +97 -0
  137. package/docs/SDK_CONTEXT_INTEGRITY.md +18 -3
  138. package/docs/agent-task-token-baseline.json +2 -2
  139. package/marketplace.json +2 -2
  140. package/package.json +5 -4
  141. package/packages/pm-beads/package.json +1 -1
  142. package/packages/pm-calendar/package.json +1 -1
  143. package/packages/pm-command-kit/package.json +1 -1
  144. package/packages/pm-digital-twin/package.json +1 -1
  145. package/packages/pm-governance-audit/package.json +1 -1
  146. package/packages/pm-guide-shell/package.json +1 -1
  147. package/packages/pm-kanban/package.json +1 -1
  148. package/packages/pm-lifecycle-hooks/package.json +1 -1
  149. package/packages/pm-linked-test-adapters/package.json +1 -1
  150. package/packages/pm-search-advanced/package.json +1 -1
  151. package/packages/pm-templates/package.json +1 -1
  152. package/packages/pm-todos/package.json +1 -1
  153. package/packages/pm-vcs/package.json +1 -1
  154. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  155. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  156. package/sdk/public-surface.json +194 -26
  157. package/dist/cli-bundle/chunks/chunk-5KN4DZYV.js +0 -194
  158. package/dist/cli-bundle/chunks/chunk-HUV2Z7IS.js +0 -28
  159. package/dist/cli-bundle/chunks/chunk-MHBVCUF2.js +0 -2
  160. package/dist/cli-bundle/chunks/register-operations-YH2WAOXU.js +0 -2
  161. package/dist/cli-bundle/focused-chunks/chunk-2VVP5RAA.js +0 -153
  162. package/dist/cli-bundle/focused-chunks/chunk-3GSFUDAI.js +0 -2
  163. package/dist/cli-bundle/focused-chunks/chunk-4H6MVCK3.js +0 -16
  164. package/dist/cli-bundle/focused-chunks/chunk-54TZJ4BM.js +0 -2
  165. package/dist/cli-bundle/focused-chunks/chunk-5NK5TJ5D.js +0 -2
  166. package/dist/cli-bundle/focused-chunks/chunk-JGRSQZJT.js +0 -18
  167. package/dist/cli-bundle/focused-chunks/chunk-NL57J7BZ.js +0 -4
  168. package/dist/cli-bundle/focused-chunks/chunk-P6BBIQRG.js +0 -6
  169. package/dist/cli-bundle/focused-chunks/chunk-PZAGVQNN.js +0 -3
  170. package/dist/cli-bundle/focused-chunks/chunk-QDAO3XEK.js +0 -14
  171. package/dist/cli-bundle/focused-chunks/chunk-T4IGQCSY.js +0 -2
  172. package/dist/cli-bundle/focused-chunks/chunk-XC2ZW3CJ.js +0 -2
@@ -0,0 +1,208 @@
1
+ /**
2
+ * @module sdk/item-addressing
3
+ *
4
+ * Defines the shared item-address grammar used by CLI adapters. Commands keep
5
+ * their canonical positional id while accepting `--id` as a compatibility
6
+ * spelling, so integrations no longer need a per-command addressing table.
7
+ */
8
+
9
+ !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]="271cf7c1-f84b-5f59-aa13-ed8cb4ee232f")}catch(e){}}();
10
+ import { resolveSubcommandFlagContractsForCommand, } from "../cli-contracts.js";
11
+ const ITEM_ID_ALIAS_COMMANDS = new Set([
12
+ "append",
13
+ "claim",
14
+ "close",
15
+ "close-task",
16
+ "comments",
17
+ "copy",
18
+ "delete",
19
+ "deps",
20
+ "docs",
21
+ "files",
22
+ "focus",
23
+ "get",
24
+ "history",
25
+ "history-compact",
26
+ "history-redact",
27
+ "history-repair",
28
+ "learnings",
29
+ "notes",
30
+ "pause-task",
31
+ "release",
32
+ "restore",
33
+ "start-task",
34
+ "test",
35
+ "update",
36
+ ]);
37
+ const ITEM_ID_ALIAS_SUBCOMMANDS = new Map([
38
+ ["files", "discover"],
39
+ ["item", "complete"],
40
+ ]);
41
+ const GLOBAL_VALUE_FLAGS = new Set([
42
+ "--author",
43
+ "--output-budget",
44
+ "--output-format",
45
+ "--output-include",
46
+ "--output-limit",
47
+ "--output-session",
48
+ "--path",
49
+ "--pm-path",
50
+ ]);
51
+ const TRAILING_POSITIONAL_COUNTS = new Map([
52
+ ["append", 1],
53
+ ["close", 1],
54
+ ["close-task", 1],
55
+ ["comments", 1],
56
+ ["item complete", 1],
57
+ ["learnings", 1],
58
+ ["notes", 1],
59
+ ["restore", 1],
60
+ ]);
61
+ /** Return whether a command participates in the shared item-id alias contract. */
62
+ export function supportsItemIdAlias(commandName) {
63
+ const normalized = commandName?.trim().toLowerCase() ?? "";
64
+ return (ITEM_ID_ALIAS_COMMANDS.has(normalized) ||
65
+ ITEM_ID_ALIAS_SUBCOMMANDS.has(normalized));
66
+ }
67
+ function findCommandIndex(argv) {
68
+ for (let index = 0; index < argv.length; index += 1) {
69
+ const token = argv[index];
70
+ if (token === "--")
71
+ return undefined;
72
+ if (GLOBAL_VALUE_FLAGS.has(token)) {
73
+ index += 1;
74
+ continue;
75
+ }
76
+ if (token.startsWith("-"))
77
+ continue;
78
+ return index;
79
+ }
80
+ return undefined;
81
+ }
82
+ /** Resolve the positional-id slot for direct and declared nested commands. */
83
+ function resolveItemAddressIndex(argv, commandIndex, commandName) {
84
+ const declaredSubcommand = ITEM_ID_ALIAS_SUBCOMMANDS.get(commandName);
85
+ if (declaredSubcommand === undefined)
86
+ return commandIndex + 1;
87
+ const usesDeclaredSubcommand = argv[commandIndex + 1]?.toLowerCase() === declaredSubcommand;
88
+ if (!usesDeclaredSubcommand && !ITEM_ID_ALIAS_COMMANDS.has(commandName)) {
89
+ return undefined;
90
+ }
91
+ return commandIndex + (usesDeclaredSubcommand ? 2 : 1);
92
+ }
93
+ function buildFlagContractMap(commandPath) {
94
+ const contractsByFlag = new Map();
95
+ for (const contract of resolveSubcommandFlagContractsForCommand(commandPath)) {
96
+ for (const flag of [
97
+ contract.flag,
98
+ contract.short,
99
+ ...(contract.aliases ?? []),
100
+ ]) {
101
+ if (flag)
102
+ contractsByFlag.set(flag, contract);
103
+ }
104
+ }
105
+ return contractsByFlag;
106
+ }
107
+ function collectNamedItemIds(argv) {
108
+ const namedIds = [];
109
+ for (let index = 0; index < argv.length; index += 1) {
110
+ const token = argv[index];
111
+ if (token === "--")
112
+ break;
113
+ if (token === "--id") {
114
+ namedIds.push({ index, consumed: 2, value: argv[index + 1] });
115
+ index += 1;
116
+ }
117
+ else if (token.startsWith("--id=")) {
118
+ namedIds.push({
119
+ index,
120
+ consumed: 1,
121
+ value: token.slice("--id=".length),
122
+ });
123
+ }
124
+ }
125
+ return namedIds;
126
+ }
127
+ function consumesSeparateFlagValue(token, nextToken, contractsByFlag) {
128
+ const separatorIndex = token.indexOf("=");
129
+ if (separatorIndex >= 0 || nextToken === undefined || nextToken.startsWith("-")) {
130
+ return false;
131
+ }
132
+ const contract = contractsByFlag.get(token);
133
+ return contract !== undefined && contract.value_type !== "boolean";
134
+ }
135
+ function hasPositionalItemId(argv, addressIndex, commandPath, namedIndex, contractsByFlag) {
136
+ let trailingPositionals = 0;
137
+ for (let index = addressIndex; index < argv.length; index += 1) {
138
+ const token = argv[index];
139
+ if (token === "--")
140
+ break;
141
+ if (token === "--id") {
142
+ index += 1;
143
+ continue;
144
+ }
145
+ if (token.startsWith("--id="))
146
+ continue;
147
+ if (!token.startsWith("-")) {
148
+ if (index < namedIndex)
149
+ return true;
150
+ trailingPositionals += 1;
151
+ continue;
152
+ }
153
+ if (consumesSeparateFlagValue(token, argv[index + 1], contractsByFlag)) {
154
+ index += 1;
155
+ }
156
+ }
157
+ return trailingPositionals > (TRAILING_POSITIONAL_COUNTS.get(commandPath) ?? 0);
158
+ }
159
+ /**
160
+ * Normalize `pm <command> --id <value>` to the command's positional id form.
161
+ * The transformation is lossless for every other argument and reports a
162
+ * conflict instead of guessing when both forms are present.
163
+ */
164
+ export function normalizeItemAddressInvocation(argv) {
165
+ const commandIndex = findCommandIndex(argv);
166
+ const commandName = commandIndex === undefined ? undefined : argv[commandIndex]?.toLowerCase();
167
+ if (!supportsItemIdAlias(commandName)) {
168
+ return { argv: [...argv], changed: false, conflict: false };
169
+ }
170
+ const commandPath = ITEM_ID_ALIAS_SUBCOMMANDS.get(commandName) ===
171
+ argv[commandIndex + 1]?.toLowerCase()
172
+ ? `${commandName} ${argv[commandIndex + 1]?.toLowerCase()}`
173
+ : commandName;
174
+ const contractsByFlag = buildFlagContractMap(commandPath);
175
+ const namedIds = collectNamedItemIds(argv);
176
+ const named = namedIds[0];
177
+ if (!named || !named.value?.trim()) {
178
+ return { argv: [...argv], changed: false, conflict: false };
179
+ }
180
+ const addressIndex = resolveItemAddressIndex(argv, commandIndex, commandName);
181
+ if (addressIndex === undefined) {
182
+ return { argv: [...argv], changed: false, conflict: false };
183
+ }
184
+ if (namedIds.length > 1 ||
185
+ hasPositionalItemId(argv, addressIndex, commandPath, named.index, contractsByFlag)) {
186
+ return {
187
+ argv: [...argv],
188
+ changed: false,
189
+ conflict: true,
190
+ itemId: named.value,
191
+ };
192
+ }
193
+ const withoutNamed = [
194
+ ...argv.slice(0, named.index),
195
+ ...argv.slice(named.index + named.consumed),
196
+ ];
197
+ const normalizedCommandIndex = findCommandIndex(withoutNamed);
198
+ const normalizedAddressIndex = resolveItemAddressIndex(withoutNamed, normalizedCommandIndex, commandName);
199
+ withoutNamed.splice(normalizedAddressIndex, 0, named.value);
200
+ return {
201
+ argv: withoutNamed,
202
+ changed: true,
203
+ conflict: false,
204
+ itemId: named.value,
205
+ };
206
+ }
207
+ //# sourceMappingURL=item-addressing.js.map
208
+ //# debugId=271cf7c1-f84b-5f59-aa13-ed8cb4ee232f
@@ -55,7 +55,7 @@ export declare function parseBootstrapCommandName(argv: string[]): string | unde
55
55
  export declare function applyBootstrapPagerPolicy(argv: string[]): () => void;
56
56
  /** Implements normalize legacy extension action syntax for the public runtime surface of this module. */
57
57
  export declare function normalizeLegacyExtensionActionSyntax(argv: string[]): string[];
58
- type BootstrapNormalizationReason = "executable_alias" | "legacy_extension_action" | "command_alias" | "flag_alias" | "flag_typo" | "bare_key_value" | "list_merge";
58
+ type BootstrapNormalizationReason = "executable_alias" | "legacy_extension_action" | "command_alias" | "item_id_alias" | "flag_alias" | "flag_typo" | "bare_key_value" | "list_merge";
59
59
  type BootstrapNormalizationConfidence = "high" | "medium";
60
60
  /** Documents the bootstrap normalization event payload exchanged by command, SDK, and package integrations. */
61
61
  export interface BootstrapNormalizationEvent {
@@ -4,10 +4,13 @@
4
4
  * Provides public bootstrap argument normalization for embedded CLI hosts.
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]="1c2ee12c-9a3e-57bc-8336-f6c558458802")}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]="a53eea26-8b9e-5666-aa32-66b4dc4cd868")}catch(e){}}();
8
8
  import { EXECUTABLE_COMMAND_ALIASES, resolveSubcommandFlagContractsForCommand, } from "./cli-contracts.js";
9
9
  export { EXECUTABLE_COMMAND_ALIASES };
10
10
  import { levenshteinDistanceWithinLimit } from "../core/shared/levenshtein.js";
11
+ import { EXIT_CODE } from "../core/shared/constants.js";
12
+ import { PmCliError } from "../core/shared/errors.js";
13
+ import { normalizeItemAddressInvocation } from "./agent/item-addressing.js";
11
14
  const GLOBAL_VALUE_CONSUMING_FLAGS = new Set([
12
15
  "--pm-path",
13
16
  "--path",
@@ -811,10 +814,22 @@ export function normalizeBootstrapInvocation(argv) {
811
814
  });
812
815
  }
813
816
  const aliasNormalized = rewriteCommandAlias(legacyNormalized, trace);
814
- const commandName = parseBootstrapCommandName(aliasNormalized);
815
- const commandPathName = parseBootstrapCommandPathName(aliasNormalized);
817
+ const itemAddress = normalizeItemAddressInvocation(aliasNormalized);
818
+ if (itemAddress.conflict) {
819
+ throw new PmCliError("Provide the item id either positionally or with --id, not both.", EXIT_CODE.USAGE);
820
+ }
821
+ if (itemAddress.changed) {
822
+ trace.push({
823
+ from: `--id ${itemAddress.itemId}`,
824
+ to: [itemAddress.itemId],
825
+ reason: "item_id_alias",
826
+ confidence: "high",
827
+ });
828
+ }
829
+ const commandName = parseBootstrapCommandName(itemAddress.argv);
830
+ const commandPathName = parseBootstrapCommandPathName(itemAddress.argv);
816
831
  const lookup = buildFlagLookup(commandPathName ?? commandName);
817
- const normalizedArgv = normalizeBootstrapTokens(aliasNormalized, lookup, commandName, trace);
832
+ const normalizedArgv = normalizeBootstrapTokens(itemAddress.argv, lookup, commandName, trace);
818
833
  const linkedTestNormalized = mergeLinkedTestTwoTokenEntries(normalizedArgv, commandName, trace);
819
834
  const coalesced = coalesceRepeatedListFlags(linkedTestNormalized, lookup.listCanonicalFlags, GLOBAL_VALUE_CONSUMING_FLAGS, commandName === "create" ? new Set(["--tags"]) : new Set());
820
835
  for (const event of coalesced.events) {
@@ -871,4 +886,4 @@ export const _testOnly = {
871
886
  resolveCanonicalFlag,
872
887
  };
873
888
  //# sourceMappingURL=cli-bootstrap.js.map
874
- //# debugId=1c2ee12c-9a3e-57bc-8336-f6c558458802
889
+ //# debugId=a53eea26-8b9e-5666-aa32-66b4dc4cd868
@@ -1,6 +1,6 @@
1
1
  /** Creates commander option registration contracts using the validated operation inputs. */
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]="b0f52c3d-091d-51db-a4c1-bb177414dd7f")}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]="f7e87e15-b5f3-53ab-86e2-768e94d5d329")}catch(e){}}();
4
4
  export const CREATE_COMMANDER_OPTION_REGISTRATION_CONTRACTS = [
5
5
  {
6
6
  target: "title",
@@ -242,6 +242,12 @@ export const CREATE_COMMANDER_OPTION_REGISTRATION_CONTRACTS = [
242
242
  option: "--allow-missing-parent",
243
243
  description: "Allow creating with an unresolved parent reference and emit a validation warning",
244
244
  },
245
+ {
246
+ target: "allowUnresolvedDeps",
247
+ keys: ["allowUnresolvedDeps", "allow_unresolved_deps"],
248
+ option: "--allow-unresolved-deps",
249
+ description: "Allow unresolved local dependency targets and emit explicit warning receipts",
250
+ },
245
251
  {
246
252
  target: "reviewer",
247
253
  keys: ["reviewer"],
@@ -620,7 +626,7 @@ export const UPDATE_COMMANDER_OPTION_REGISTRATION_CONTRACTS = [
620
626
  target: "acceptanceCriteria",
621
627
  keys: ["acceptanceCriteria", "acceptance_criteria", "ac"],
622
628
  option: "--acceptance-criteria <value>",
623
- description: "Set acceptance criteria (repeatable; values join with '; ')",
629
+ description: "Replace the complete acceptance-criteria list (repeatable values join with '; '); use --remove-ac plus --add-ac for one-entry repair",
624
630
  repeatable: true,
625
631
  aliasOptions: [
626
632
  {
@@ -647,7 +653,7 @@ export const UPDATE_COMMANDER_OPTION_REGISTRATION_CONTRACTS = [
647
653
  target: "removeAc",
648
654
  keys: ["removeAc", "remove_ac"],
649
655
  option: "--remove-ac <value>",
650
- description: "Remove one semicolon-free acceptance criterion by exact text match (repeatable)",
656
+ description: "Remove one semicolon-free acceptance criterion by exact text match; fails if any selector is unmatched (repeatable)",
651
657
  repeatable: true,
652
658
  aliasOptions: [
653
659
  { option: "--remove_ac <value>", description: "Alias for --remove-ac" },
@@ -746,6 +752,12 @@ export const UPDATE_COMMANDER_OPTION_REGISTRATION_CONTRACTS = [
746
752
  option: "--allow-missing-parent",
747
753
  description: "Allow updating to an unresolved parent reference and emit a validation warning",
748
754
  },
755
+ {
756
+ target: "allowUnresolvedDeps",
757
+ keys: ["allowUnresolvedDeps", "allow_unresolved_deps"],
758
+ option: "--allow-unresolved-deps",
759
+ description: "Allow unresolved local dependency targets and emit explicit warning receipts",
760
+ },
749
761
  {
750
762
  target: "completedAt",
751
763
  keys: ["completedAt", "completed_at"],
@@ -1043,4 +1055,4 @@ export const UPDATE_COMMANDER_STRING_OPTION_CONTRACTS = UPDATE_COMMANDER_OPTION_
1043
1055
  /** Public contract for update commander repeatable option contracts, shared by SDK and presentation-layer consumers. */
1044
1056
  export const UPDATE_COMMANDER_REPEATABLE_OPTION_CONTRACTS = UPDATE_COMMANDER_OPTION_REGISTRATION_CONTRACTS.filter((entry) => entry.repeatable === true).map((entry) => ({ target: entry.target, keys: entry.keys }));
1045
1057
  //# sourceMappingURL=commander-mutation-options.js.map
1046
- //# debugId=b0f52c3d-091d-51db-a4c1-bb177414dd7f
1058
+ //# debugId=f7e87e15-b5f3-53ab-86e2-768e94d5d329
@@ -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]="932a6144-c4b4-5153-b8ff-0ef29e308bd0")}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]="e54d77e5-5c63-5ab6-9ea1-71ed8a1e433d")}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
  function normalizeFlagAliasKey(flag) {
@@ -216,6 +216,7 @@ export const AGGREGATE_FLAG_CONTRACTS = [
216
216
  ];
217
217
  /** Public contract for comments flag contracts, shared by SDK and presentation-layer consumers. */
218
218
  export const COMMENTS_FLAG_CONTRACTS = [
219
+ { flag: "--id", value_name: "item-id" },
219
220
  { flag: "--add", aliases: ["--comment", "--body"] },
220
221
  { flag: "--stdin" },
221
222
  { flag: "--file" },
@@ -234,6 +235,7 @@ function withCursorSemantics(contracts, presentationFlags) {
234
235
  }
235
236
  /** Public contract for notes flag contracts, shared by SDK and presentation-layer consumers. */
236
237
  export const NOTES_FLAG_CONTRACTS = [
238
+ { flag: "--id", value_name: "item-id" },
237
239
  { flag: "--add", aliases: ["--note"] },
238
240
  { flag: "--add-json" },
239
241
  { flag: "--stdin" },
@@ -251,6 +253,7 @@ export const NOTES_FLAG_CONTRACTS = [
251
253
  ];
252
254
  /** Public contract for learnings flag contracts, shared by SDK and presentation-layer consumers. */
253
255
  export const LEARNINGS_FLAG_CONTRACTS = [
256
+ { flag: "--id", value_name: "item-id" },
254
257
  { flag: "--add", aliases: ["--learning"] },
255
258
  { flag: "--limit" },
256
259
  { flag: "--full-history" },
@@ -260,6 +263,7 @@ export const LEARNINGS_FLAG_CONTRACTS = [
260
263
  ];
261
264
  /** Public contract for files flag contracts, shared by SDK and presentation-layer consumers. */
262
265
  export const FILES_FLAG_CONTRACTS = [
266
+ { flag: "--id", value_name: "item-id" },
263
267
  { flag: "--add" },
264
268
  { flag: "--add-glob" },
265
269
  { flag: "--remove" },
@@ -281,6 +285,7 @@ export const FILES_FLAG_CONTRACTS = [
281
285
  ];
282
286
  /** Public contract for docs flag contracts, shared by SDK and presentation-layer consumers. */
283
287
  export const DOCS_FLAG_CONTRACTS = [
288
+ { flag: "--id", value_name: "item-id" },
284
289
  { flag: "--add" },
285
290
  { flag: "--add-glob" },
286
291
  { flag: "--remove" },
@@ -295,6 +300,7 @@ export const DOCS_FLAG_CONTRACTS = [
295
300
  ];
296
301
  /** Public contract for history flag contracts, shared by SDK and presentation-layer consumers. */
297
302
  export const HISTORY_FLAG_CONTRACTS = [
303
+ { flag: "--id", value_name: "item-id" },
298
304
  { flag: "--limit" },
299
305
  { flag: "--compact" },
300
306
  { flag: "--full" },
@@ -319,6 +325,7 @@ export const MERGE_FLAG_CONTRACTS = [
319
325
  ];
320
326
  /** Public contract for history redact flag contracts, shared by SDK and presentation-layer consumers. */
321
327
  export const HISTORY_REDACT_FLAG_CONTRACTS = [
328
+ { flag: "--id", value_name: "item-id" },
322
329
  { flag: "--literal" },
323
330
  { flag: "--regex" },
324
331
  { flag: "--replacement" },
@@ -329,6 +336,7 @@ export const HISTORY_REDACT_FLAG_CONTRACTS = [
329
336
  ];
330
337
  /** Public contract for history repair flag contracts, shared by SDK and presentation-layer consumers. */
331
338
  export const HISTORY_REPAIR_FLAG_CONTRACTS = [
339
+ { flag: "--id", value_name: "item-id" },
332
340
  { flag: "--all" },
333
341
  { flag: "--dry-run" },
334
342
  { flag: "--author" },
@@ -345,6 +353,7 @@ export const HISTORY_AUTHOR_ACKNOWLEDGE_FLAG_CONTRACTS = [
345
353
  ];
346
354
  /** Public contract for history compact flag contracts, shared by SDK and presentation-layer consumers. */
347
355
  export const HISTORY_COMPACT_FLAG_CONTRACTS = [
356
+ { flag: "--id", value_name: "item-id" },
348
357
  { flag: "--before" },
349
358
  { flag: "--ids", list: true },
350
359
  { flag: "--all-over", value_type: "number" },
@@ -693,21 +702,33 @@ export const REINDEX_FLAG_CONTRACTS = [
693
702
  ];
694
703
  /** Public contract for close flag contracts, shared by SDK and presentation-layer consumers. */
695
704
  export const CLOSE_FLAG_CONTRACTS = [
696
- { flag: "--reason" },
697
- { flag: "--close-reason" },
698
- { flag: "--completed-at" },
699
- { flag: "--duplicate-of" },
700
- { flag: "--author" },
701
- { flag: "--message" },
702
- { flag: "--validate-close" },
705
+ { flag: "--id", value_name: "item-id" },
706
+ { flag: "--reason", value_name: "value" },
707
+ { flag: "--close-reason", value_name: "value" },
708
+ { flag: "--completed-at", value_name: "value" },
709
+ { flag: "--duplicate-of", value_name: "value" },
710
+ { flag: "--author", value_name: "value" },
711
+ { flag: "--message", value_name: "value" },
712
+ {
713
+ flag: "--validate-close",
714
+ value_name: "off|warn|strict",
715
+ },
703
716
  // pm-fl0c #11 (2026-05-28) + Codex P2 follow-up: inline closure-validation
704
717
  // fields. Surface them through the contract so `pm contracts --command
705
718
  // close`, the JSON help payload, and bootstrap flag normalization /
706
719
  // suggestions all stay consistent with the commander registration.
707
- { flag: "--resolution" },
708
- { flag: "--expected-result", aliases: ["--expected_result", "--expected"] },
709
- { flag: "--actual-result", aliases: ["--actual_result", "--actual"] },
710
- { flag: "--force" },
720
+ { flag: "--resolution", value_name: "value" },
721
+ {
722
+ flag: "--expected-result",
723
+ aliases: ["--expected_result", "--expected"],
724
+ value_name: "value",
725
+ },
726
+ {
727
+ flag: "--actual-result",
728
+ aliases: ["--actual_result", "--actual"],
729
+ value_name: "value",
730
+ },
731
+ { flag: "--force", value_type: "boolean" },
711
732
  ];
712
733
  // close-many shares update-many's `--filter-*` scoping family and close's
713
734
  // inline closure-validation fields. The shared close reason is required for the
@@ -746,6 +767,7 @@ export const CLOSE_MANY_FLAG_CONTRACTS = [
746
767
  ];
747
768
  /** Public contract for append flag contracts, shared by SDK and presentation-layer consumers. */
748
769
  export const APPEND_FLAG_CONTRACTS = [
770
+ { flag: "--id", value_name: "item-id" },
749
771
  { flag: "--body", short: "-b" },
750
772
  { flag: "--author" },
751
773
  { flag: "--message" },
@@ -753,6 +775,7 @@ export const APPEND_FLAG_CONTRACTS = [
753
775
  ];
754
776
  /** Public contract for claim flag contracts, shared by SDK and presentation-layer consumers. */
755
777
  export const CLAIM_FLAG_CONTRACTS = [
778
+ { flag: "--id", value_name: "item-id" },
756
779
  { flag: "--author", aliases: ["--assignee"] },
757
780
  { flag: "--message" },
758
781
  { flag: "--force" },
@@ -772,12 +795,14 @@ export const CLAIM_FLAG_CONTRACTS = [
772
795
  ];
773
796
  /** Public contract for restore flag contracts, shared by SDK and presentation-layer consumers. */
774
797
  export const RESTORE_FLAG_CONTRACTS = [
798
+ { flag: "--id", value_name: "item-id" },
775
799
  { flag: "--author" },
776
800
  { flag: "--message" },
777
801
  { flag: "--force" },
778
802
  ];
779
803
  /** Public contract for delete flag contracts, shared by SDK and presentation-layer consumers. */
780
804
  export const DELETE_FLAG_CONTRACTS = [
805
+ { flag: "--id", value_name: "item-id" },
781
806
  { flag: "--dry-run" },
782
807
  { flag: "--author" },
783
808
  { flag: "--message" },
@@ -785,27 +810,31 @@ export const DELETE_FLAG_CONTRACTS = [
785
810
  ];
786
811
  /** Public contract for release flag contracts, shared by SDK and presentation-layer consumers. */
787
812
  export const RELEASE_FLAG_CONTRACTS = [
813
+ { flag: "--id", value_name: "item-id" },
788
814
  { flag: "--author", aliases: ["--assignee"] },
789
815
  { flag: "--message" },
790
816
  { flag: "--force" },
791
817
  ];
792
818
  /** Public contract for start task flag contracts, shared by SDK and presentation-layer consumers. */
793
819
  export const START_TASK_FLAG_CONTRACTS = [
820
+ { flag: "--id", value_name: "item-id" },
794
821
  { flag: "--author", aliases: ["--assignee"] },
795
822
  { flag: "--message" },
796
823
  { flag: "--force" },
797
824
  ];
798
825
  /** Public contract for pause task flag contracts, shared by SDK and presentation-layer consumers. */
799
826
  export const PAUSE_TASK_FLAG_CONTRACTS = [
827
+ { flag: "--id", value_name: "item-id" },
800
828
  { flag: "--author", aliases: ["--assignee"] },
801
829
  { flag: "--message" },
802
830
  { flag: "--force" },
803
831
  ];
804
832
  /** Public contract for close task flag contracts, shared by SDK and presentation-layer consumers. */
805
833
  export const CLOSE_TASK_FLAG_CONTRACTS = [
834
+ { flag: "--id", value_name: "item-id" },
806
835
  { flag: "--author", aliases: ["--assignee"] },
807
836
  { flag: "--message" },
808
- { flag: "--validate-close" },
837
+ { flag: "--validate-close", value_name: "off|warn|strict" },
809
838
  { flag: "--force" },
810
839
  ];
811
840
  /** Shared create-passthrough flags for every scheduling shortcut (GH-217). */
@@ -839,6 +868,7 @@ export const REMIND_FLAG_CONTRACTS = [
839
868
  ];
840
869
  /** Public contract for test flag contracts, shared by SDK and presentation-layer consumers. */
841
870
  export const TEST_FLAG_CONTRACTS = [
871
+ { flag: "--id", value_name: "item-id" },
842
872
  { flag: "--add" },
843
873
  { flag: "--add-json" },
844
874
  { flag: "--remove" },
@@ -977,6 +1007,7 @@ const ITEM_OWNERSHIP_AND_ISSUE_FLAG_CONTRACTS = [
977
1007
  { flag: "--assignee" },
978
1008
  { flag: "--parent" },
979
1009
  { flag: "--allow-missing-parent" },
1010
+ { flag: "--allow-unresolved-deps" },
980
1011
  { flag: "--reviewer" },
981
1012
  { flag: "--risk" },
982
1013
  { flag: "--confidence" },
@@ -1112,6 +1143,7 @@ export const ITEM_MUTATE_FLAG_CONTRACTS = [
1112
1143
  ];
1113
1144
  /** Atomic item-completion flags shared by contracts, help, and completions. */
1114
1145
  export const ITEM_COMPLETE_FLAG_CONTRACTS = [
1146
+ { flag: "--id", value_name: "item-id" },
1115
1147
  { flag: "--transaction-id", value_name: "value", required: true },
1116
1148
  { flag: "--reason", value_name: "value" },
1117
1149
  { flag: "--file", value_name: "value", repeatable: true },
@@ -1124,7 +1156,7 @@ export const ITEM_COMPLETE_FLAG_CONTRACTS = [
1124
1156
  { flag: "--expected-result", value_name: "value" },
1125
1157
  { flag: "--actual-result", value_name: "value" },
1126
1158
  { flag: "--completed-at", value_name: "value" },
1127
- { flag: "--validate-close", value_name: "mode" },
1159
+ { flag: "--validate-close", value_name: "off|warn|strict" },
1128
1160
  { flag: "--lock-ttl-seconds", value_name: "n" },
1129
1161
  { flag: "--lock-wait-ms", value_name: "n" },
1130
1162
  { flag: "--dry-run" },
@@ -1133,15 +1165,20 @@ export const ITEM_COMPLETE_FLAG_CONTRACTS = [
1133
1165
  ];
1134
1166
  /** Public contract for copy flag contracts, shared by SDK and presentation-layer consumers. */
1135
1167
  export const COPY_FLAG_CONTRACTS = [
1136
- { flag: "--title" },
1137
- { flag: "--author" },
1138
- { flag: "--message" },
1168
+ { flag: "--id", value_name: "item-id" },
1169
+ { flag: "--title", value_name: "value" },
1170
+ { flag: "--author", value_name: "value" },
1171
+ { flag: "--message", value_name: "value" },
1139
1172
  { flag: "--allow-duplicate", value_type: "boolean" },
1140
1173
  ];
1141
1174
  /** Public contract for focus flag contracts, shared by SDK and presentation-layer consumers. */
1142
- export const FOCUS_FLAG_CONTRACTS = [{ flag: "--clear" }];
1175
+ export const FOCUS_FLAG_CONTRACTS = [
1176
+ { flag: "--id", value_name: "item-id" },
1177
+ { flag: "--clear" },
1178
+ ];
1143
1179
  /** Public contract for update flag contracts, shared by SDK and presentation-layer consumers. */
1144
1180
  export const UPDATE_FLAG_CONTRACTS = [
1181
+ { flag: "--id", value_name: "item-id" },
1145
1182
  { flag: "--stdin-json" },
1146
1183
  { short: "-t", flag: "--title" },
1147
1184
  { short: "-d", flag: "--description" },
@@ -1272,6 +1309,7 @@ export const UPDATE_MANY_FLAG_CONTRACTS = [
1272
1309
  { flag: "--regression" },
1273
1310
  { flag: "--customer-impact" },
1274
1311
  { flag: "--customer_impact" },
1312
+ { flag: "--allow-unresolved-deps" },
1275
1313
  { flag: "--dep" },
1276
1314
  { flag: "--dep-remove" },
1277
1315
  { flag: "--dep_remove" },
@@ -1407,10 +1445,11 @@ export const CONTEXT_FLAG_CONTRACTS = withCursorSemantics([
1407
1445
  ]));
1408
1446
  /** Public contract for get flag contracts, shared by SDK and presentation-layer consumers. */
1409
1447
  export const GET_FLAG_CONTRACTS = [
1448
+ { flag: "--id", value_name: "item-id" },
1410
1449
  { flag: "--for", value_name: "intent" },
1411
1450
  { flag: "--token-budget", aliases: ["--token_budget"] },
1412
1451
  { flag: "--depth" },
1413
- { flag: "--full" },
1452
+ { flag: "--full", value_type: "boolean" },
1414
1453
  { flag: "--fields", list: true },
1415
1454
  { flag: "--at" },
1416
1455
  { flag: "--tree" },
@@ -1426,6 +1465,7 @@ export const GUIDE_FLAG_CONTRACTS = [
1426
1465
  ];
1427
1466
  /** Public contract for deps flag contracts, shared by SDK and presentation-layer consumers. */
1428
1467
  export const DEPS_FLAG_CONTRACTS = [
1468
+ { flag: "--id", value_name: "item-id" },
1429
1469
  { flag: "--format" },
1430
1470
  { flag: "--max-depth" },
1431
1471
  { flag: "--collapse" },
@@ -1734,7 +1774,8 @@ export function resolveSubcommandFlagContractsForCommand(commandName) {
1734
1774
  extraParts.length === 0) {
1735
1775
  return withSubcommandGlobalFlags(resolveExtensionLifecycleFlagContracts(rootCommand, lifecycleSubcommand));
1736
1776
  }
1737
- return withSubcommandGlobalFlags(SUBCOMMAND_FLAG_CONTRACTS_BY_COMMAND.get(normalized) ?? []);
1777
+ const contracts = SUBCOMMAND_FLAG_CONTRACTS_BY_COMMAND.get(normalized) ?? [];
1778
+ return withSubcommandGlobalFlags(contracts);
1738
1779
  }
1739
1780
  /** Renders a space-separated, de-duplicated list of every flag spelling (short, canonical, and aliases) for shell-completion candidate generation, optionally appending the shared subcommand-global flags. */
1740
1781
  export function toCompletionFlagString(flagContracts, includeGlobal = true) {
@@ -1755,4 +1796,4 @@ export function toCompletionFlagString(flagContracts, includeGlobal = true) {
1755
1796
  return normalizeUniqueStringList(all).join(" ");
1756
1797
  }
1757
1798
  //# sourceMappingURL=flag-contracts.js.map
1758
- //# debugId=932a6144-c4b4-5153-b8ff-0ef29e308bd0
1799
+ //# debugId=e54d77e5-5c63-5ab6-9ea1-71ed8a1e433d
@@ -4,7 +4,7 @@
4
4
  * Provides CLI runtime support for Registration Helpers.
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]="d44229ca-8c70-5d55-a168-32bfe66711e6")}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]="5f92dd0d-4eb1-5a7b-8891-931dd15deb81")}catch(e){}}();
8
8
  import { Option } from "commander";
9
9
  import { pathExists, refreshSearchArtifactsForMutation, shouldRunSearchRefreshInForeground, EXIT_CODE, PmCliError, printError, printResult, writeStdout, getSettingsPath, resolvePmRoot, readSettings, runActiveServiceOverride, setActiveCommandResult, } from "../runtime-primitives.js";
10
10
  import { ACTIVITY_COMMANDER_STRING_OPTION_CONTRACTS, CONTEXT_COMMANDER_STRING_OPTION_CONTRACTS, CREATE_COMMANDER_REPEATABLE_OPTION_CONTRACTS, CREATE_COMMANDER_STRING_OPTION_CONTRACTS, LIST_COMMANDER_STRING_OPTION_CONTRACTS, NEXT_COMMANDER_STRING_OPTION_CONTRACTS, SEARCH_COMMANDER_STRING_OPTION_CONTRACTS, UPDATE_COMMANDER_REPEATABLE_OPTION_CONTRACTS, UPDATE_COMMANDER_STRING_OPTION_CONTRACTS, readFirstValueFromCommanderOptions, readFirstStringFromCommanderOptions, readStringArrayFromCommanderOptions, } from "../cli-contracts.js";
@@ -320,6 +320,10 @@ export function normalizeCreateOptions(commandOptions, options = {}) {
320
320
  "allowMissingParent",
321
321
  "allow_missing_parent",
322
322
  ]) === true,
323
+ allowUnresolvedDeps: anyOptionTrue(commandOptions, [
324
+ "allowUnresolvedDeps",
325
+ "allow_unresolved_deps",
326
+ ]) === true,
323
327
  allowDuplicate: optionTrue(commandOptions, "allowDuplicate") === true,
324
328
  reviewer: readCreateString("reviewer"),
325
329
  risk: readCreateString("risk"),
@@ -405,6 +409,10 @@ export function normalizeUpdateOptions(commandOptions) {
405
409
  ownershipDependencyBypass: commandOptions.ownershipDependencyBypass === true ? true : undefined,
406
410
  assignee: readUpdateString("assignee"),
407
411
  parent: readUpdateString("parent"),
412
+ allowUnresolvedDeps: anyOptionTrue(commandOptions, [
413
+ "allowUnresolvedDeps",
414
+ "allow_unresolved_deps",
415
+ ]) === true,
408
416
  reviewer: readUpdateString("reviewer"),
409
417
  risk: readUpdateString("risk"),
410
418
  confidence: readUpdateString("confidence"),
@@ -970,4 +978,4 @@ export const _testOnly = {
970
978
  collectMutationItemIds,
971
979
  };
972
980
  //# sourceMappingURL=registration-helpers.js.map
973
- //# debugId=d44229ca-8c70-5d55-a168-32bfe66711e6
981
+ //# debugId=5f92dd0d-4eb1-5a7b-8891-931dd15deb81