@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.
- package/.claude-plugin/marketplace.json +2 -2
- package/CHANGELOG.md +40 -0
- package/dist/cli/commander-usage.js +17 -12
- package/dist/cli/help-json-payload.js +51 -16
- package/dist/cli/main.js +7 -6
- package/dist/cli-bundle/bundle-manifest.json +165 -165
- package/dist/cli-bundle/chunks/chunk-2QYH4QMI.js +30 -0
- package/dist/cli-bundle/chunks/{chunk-YC3UF2IO.js → chunk-EBO7OUUE.js} +57 -57
- package/dist/cli-bundle/chunks/{chunk-GMX5YOI3.js → chunk-ETML5C6H.js} +48 -48
- package/dist/cli-bundle/chunks/chunk-JUDU4RO4.js +194 -0
- package/dist/cli-bundle/chunks/{chunk-PYO5GZU6.js → chunk-JZSNADRR.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-EF43KODO.js → chunk-MENWVGJW.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-5JO6R4BS.js → chunk-S4EITGLA.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-2DTCZXSD.js → chunk-TIGKWVLA.js} +9 -9
- package/dist/cli-bundle/chunks/{chunk-RJC7TPF4.js → chunk-TRWXF476.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-TSLDTJLQ.js +2 -0
- package/dist/cli-bundle/chunks/{register-list-query-BUE7PTCU.js → register-list-query-OJ6ZXKV4.js} +2 -2
- package/dist/cli-bundle/chunks/{register-mutation-FC3XLVIK.js → register-mutation-DKI7QC7O.js} +2 -2
- package/dist/cli-bundle/chunks/register-operations-P5OGMT6I.js +2 -0
- package/dist/cli-bundle/chunks/{register-setup-UQDTNTLJ.js → register-setup-S3KT2LTH.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-6DO4YQWZ.js → chunk-2COZ67XT.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-2EXI2DKR.js +4 -0
- package/dist/cli-bundle/focused-chunks/{chunk-KNEHLPBF.js → chunk-34SX654S.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-36FTZ2NT.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-3CQECMKR.js +16 -0
- package/dist/cli-bundle/focused-chunks/chunk-75774JWP.js +6 -0
- package/dist/cli-bundle/focused-chunks/{chunk-MRWVJ3ZG.js → chunk-7UN6BHHO.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-VRXJSGIT.js → chunk-CHIBMEZR.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-DZGAHZZV.js +3 -0
- package/dist/cli-bundle/focused-chunks/chunk-FF4MNAYB.js +153 -0
- package/dist/cli-bundle/focused-chunks/{chunk-ZG54B4XG.js → chunk-GHTN2ILR.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-I4YM2I7S.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-IMDTEN7K.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-IW43E4XL.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-3WVHTUAW.js → chunk-JMVA4HKR.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-C3GCHDSQ.js → chunk-KR5RVXLQ.js} +31 -31
- package/dist/cli-bundle/focused-chunks/chunk-KSNJG4KI.js +16 -0
- package/dist/cli-bundle/focused-chunks/{chunk-73FIJONU.js → chunk-M6RPIXKC.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-MXYSIQ56.js +18 -0
- package/dist/cli-bundle/focused-chunks/chunk-RIIN5V4N.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-U46GQJNY.js → chunk-RKWSCYYN.js} +2 -2
- package/dist/cli-bundle/main.js +13 -13
- package/dist/cli-bundle/sdk-authoring.js +1 -1
- package/dist/cli-bundle/sdk-contracts.js +1 -1
- package/dist/cli-bundle/sdk-core.js +38 -38
- package/dist/cli-bundle/sdk-governance.js +1 -1
- package/dist/cli-bundle/sdk-graph.js +1 -1
- package/dist/cli-bundle/sdk-merge.js +1 -1
- package/dist/cli-bundle/sdk-query.js +1 -1
- package/dist/cli-bundle/sdk-runtime.js +1 -1
- package/dist/cli-bundle/sdk-testing.js +1 -1
- package/dist/cli-bundle/sdk.js +2 -2
- package/dist/core/diagnostics/remediation.js +9 -9
- package/dist/core/fs/fs-utils.d.ts +10 -0
- package/dist/core/fs/fs-utils.js +16 -4
- package/dist/core/item/item-format.js +3 -32
- package/dist/core/schema/fields-file.d.ts +1 -2
- package/dist/core/schema/fields-file.js +4 -11
- package/dist/core/schema/runtime-schema.js +3 -10
- package/dist/core/schema/status-defs-file.d.ts +1 -2
- package/dist/core/schema/status-defs-file.js +4 -32
- package/dist/core/schema/status-token.d.ts +2 -0
- package/dist/core/schema/status-token.js +32 -0
- package/dist/core/schema/type-workflows.d.ts +1 -2
- package/dist/core/schema/type-workflows.js +4 -11
- package/dist/core/shared/author.d.ts +1 -1
- package/dist/core/shared/author.js +21 -8
- package/dist/core/shared/errors.d.ts +4 -0
- package/dist/core/shared/errors.js +2 -2
- package/dist/core/shared/text-normalization.d.ts +1 -1
- package/dist/core/shared/text-normalization.js +2 -2
- package/dist/sdk/agent/command-recovery.d.ts +4 -0
- package/dist/sdk/agent/command-recovery.js +52 -0
- package/dist/sdk/agent/command-suggestions.d.ts +4 -0
- package/dist/sdk/agent/command-suggestions.js +67 -0
- package/dist/sdk/agent/create-option-policy.d.ts +12 -0
- package/dist/sdk/agent/create-option-policy.js +32 -0
- package/dist/sdk/agent/item-addressing.d.ts +19 -0
- package/dist/sdk/agent/item-addressing.js +208 -0
- package/dist/sdk/cli-bootstrap.d.ts +1 -1
- package/dist/sdk/cli-bootstrap.js +20 -5
- package/dist/sdk/cli-contracts/commander-mutation-options.js +16 -4
- package/dist/sdk/cli-contracts/flag-contracts.js +62 -21
- package/dist/sdk/cli-contracts/registration-helpers.js +10 -2
- package/dist/sdk/cli-contracts/runtime-contracts.js +5 -3
- package/dist/sdk/cli-contracts/tool-option-contracts.d.ts +6 -0
- package/dist/sdk/cli-contracts/tool-option-contracts.js +4 -2
- package/dist/sdk/cli-contracts/tool-parameter-tables.js +19 -4
- package/dist/sdk/cli-contracts/tool-schema.js +17 -4
- package/dist/sdk/context-intent-runtime.js +8 -5
- package/dist/sdk/context-signal-store.d.ts +34 -0
- package/dist/sdk/context-signal-store.js +24 -2
- package/dist/sdk/dependency-flag-validation.d.ts +15 -1
- package/dist/sdk/dependency-flag-validation.js +54 -2
- package/dist/sdk/generated-error-code-catalog.js +74 -2
- package/dist/sdk/governance/health.js +14 -7
- package/dist/sdk/governance/provenance-health.d.ts +13 -0
- package/dist/sdk/governance/provenance-health.js +63 -17
- package/dist/sdk/governance/validate-item-reader.d.ts +13 -0
- package/dist/sdk/governance/validate-item-reader.js +18 -0
- package/dist/sdk/governance/validate.d.ts +2 -2
- package/dist/sdk/governance/validate.js +15 -6
- package/dist/sdk/index.d.ts +4 -0
- package/dist/sdk/index.js +6 -2
- package/dist/sdk/lifecycle/close.js +17 -14
- package/dist/sdk/lifecycle/create.d.ts +2 -0
- package/dist/sdk/lifecycle/create.js +62 -9
- package/dist/sdk/lifecycle/update-many.js +39 -27
- package/dist/sdk/lifecycle/update.d.ts +6 -1
- package/dist/sdk/lifecycle/update.js +47 -10
- package/dist/sdk/merge/index.d.ts +1 -1
- package/dist/sdk/merge/index.js +3 -3
- package/dist/sdk/merge/install.d.ts +4 -0
- package/dist/sdk/merge/install.js +28 -16
- package/dist/sdk/merge/receipts.d.ts +3 -0
- package/dist/sdk/merge/receipts.js +81 -17
- package/dist/sdk/output-projection.js +24 -4
- package/dist/sdk/query/context.d.ts +2 -0
- package/dist/sdk/query/context.js +7 -4
- package/dist/sdk/query/light-metadata.d.ts +3 -0
- package/dist/sdk/query/light-metadata.js +19 -0
- package/dist/sdk/runtime.d.ts +4 -1
- package/dist/sdk/runtime.js +8 -3
- package/dist/sdk/schema-migration.js +7 -9
- package/dist/sdk/similarity-scoring.d.ts +1 -2
- package/dist/sdk/similarity-scoring.js +4 -16
- package/dist/sdk/workspace-snapshot.d.ts +4 -0
- package/dist/sdk/workspace-snapshot.js +24 -11
- package/docs/AGENT_GUIDE.md +3 -1
- package/docs/COMMANDS.md +8 -5
- package/docs/MERGE_SAFETY.md +7 -5
- package/docs/README.md +2 -5
- package/docs/READ_OUTPUT_CONTRACTS.md +2 -2
- package/docs/SDK.md +33 -8
- package/docs/SDK_AGENT_SESSION_CONTEXT.md +3 -2
- package/docs/SDK_CONTEXT.md +97 -0
- package/docs/SDK_CONTEXT_INTEGRITY.md +18 -3
- package/docs/agent-task-token-baseline.json +2 -2
- package/marketplace.json +2 -2
- package/package.json +5 -4
- package/packages/pm-beads/package.json +1 -1
- package/packages/pm-calendar/package.json +1 -1
- package/packages/pm-command-kit/package.json +1 -1
- package/packages/pm-digital-twin/package.json +1 -1
- package/packages/pm-governance-audit/package.json +1 -1
- package/packages/pm-guide-shell/package.json +1 -1
- package/packages/pm-kanban/package.json +1 -1
- package/packages/pm-lifecycle-hooks/package.json +1 -1
- package/packages/pm-linked-test-adapters/package.json +1 -1
- package/packages/pm-search-advanced/package.json +1 -1
- package/packages/pm-templates/package.json +1 -1
- package/packages/pm-todos/package.json +1 -1
- package/packages/pm-vcs/package.json +1 -1
- package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
- package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
- package/sdk/public-surface.json +194 -26
- package/dist/cli-bundle/chunks/chunk-5KN4DZYV.js +0 -194
- package/dist/cli-bundle/chunks/chunk-HUV2Z7IS.js +0 -28
- package/dist/cli-bundle/chunks/chunk-MHBVCUF2.js +0 -2
- package/dist/cli-bundle/chunks/register-operations-YH2WAOXU.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-2VVP5RAA.js +0 -153
- package/dist/cli-bundle/focused-chunks/chunk-3GSFUDAI.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-4H6MVCK3.js +0 -16
- package/dist/cli-bundle/focused-chunks/chunk-54TZJ4BM.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-5NK5TJ5D.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-JGRSQZJT.js +0 -18
- package/dist/cli-bundle/focused-chunks/chunk-NL57J7BZ.js +0 -4
- package/dist/cli-bundle/focused-chunks/chunk-P6BBIQRG.js +0 -6
- package/dist/cli-bundle/focused-chunks/chunk-PZAGVQNN.js +0 -3
- package/dist/cli-bundle/focused-chunks/chunk-QDAO3XEK.js +0 -14
- package/dist/cli-bundle/focused-chunks/chunk-T4IGQCSY.js +0 -2
- 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]="
|
|
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
|
|
815
|
-
|
|
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(
|
|
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=
|
|
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]="
|
|
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: "
|
|
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=
|
|
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]="
|
|
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: "--
|
|
697
|
-
{ flag: "--
|
|
698
|
-
{ flag: "--
|
|
699
|
-
{ flag: "--
|
|
700
|
-
{ flag: "--
|
|
701
|
-
{ flag: "--
|
|
702
|
-
{ flag: "--
|
|
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
|
-
{
|
|
709
|
-
|
|
710
|
-
|
|
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: "
|
|
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: "--
|
|
1137
|
-
{ flag: "--
|
|
1138
|
-
{ flag: "--
|
|
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 = [
|
|
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
|
-
|
|
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=
|
|
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]="
|
|
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=
|
|
981
|
+
//# debugId=5f92dd0d-4eb1-5a7b-8891-931dd15deb81
|