@unbrained/pm-cli 2026.5.10 → 2026.5.11
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 +4 -4
- package/.pi/README.md +10 -1
- package/.pi/agents/pm-triage-agent.md +19 -0
- package/.pi/agents/pm-verification-agent.md +21 -0
- package/.pi/chains/pm-native-delivery.chain.md +11 -0
- package/.pi/extensions/pm-cli/index.js +276 -36
- package/.pi/skills/pm-native/SKILL.md +6 -2
- package/CHANGELOG.md +7 -0
- package/README.md +9 -1
- package/dist/cli/argv-utils.d.ts +5 -0
- package/dist/cli/argv-utils.js +34 -0
- package/dist/cli/argv-utils.js.map +1 -0
- package/dist/cli/bootstrap-args.d.ts +15 -0
- package/dist/cli/bootstrap-args.js +211 -0
- package/dist/cli/bootstrap-args.js.map +1 -1
- package/dist/cli/commander-usage.js +109 -3
- package/dist/cli/commander-usage.js.map +1 -1
- package/dist/cli/commands/completion.js +7 -3
- package/dist/cli/commands/completion.js.map +1 -1
- package/dist/cli/commands/contracts.d.ts +19 -0
- package/dist/cli/commands/contracts.js +33 -1
- package/dist/cli/commands/contracts.js.map +1 -1
- package/dist/cli/commands/create.js +112 -51
- package/dist/cli/commands/create.js.map +1 -1
- package/dist/cli/commands/docs.js +9 -2
- package/dist/cli/commands/docs.js.map +1 -1
- package/dist/cli/commands/extension.d.ts +3 -1
- package/dist/cli/commands/extension.js +174 -2
- package/dist/cli/commands/extension.js.map +1 -1
- package/dist/cli/commands/files.js +9 -2
- package/dist/cli/commands/files.js.map +1 -1
- package/dist/cli/commands/init.d.ts +2 -0
- package/dist/cli/commands/init.js +21 -1
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/metadata-normalizers.d.ts +4 -0
- package/dist/cli/commands/metadata-normalizers.js +37 -0
- package/dist/cli/commands/metadata-normalizers.js.map +1 -0
- package/dist/cli/commands/reindex.js +173 -135
- package/dist/cli/commands/reindex.js.map +1 -1
- package/dist/cli/commands/search.js +16 -6
- package/dist/cli/commands/search.js.map +1 -1
- package/dist/cli/commands/test.js +9 -2
- package/dist/cli/commands/test.js.map +1 -1
- package/dist/cli/commands/update.js +70 -39
- package/dist/cli/commands/update.js.map +1 -1
- package/dist/cli/error-guidance.d.ts +9 -1
- package/dist/cli/error-guidance.js +147 -6
- package/dist/cli/error-guidance.js.map +1 -1
- package/dist/cli/help-json-payload.js +11 -1
- package/dist/cli/help-json-payload.js.map +1 -1
- package/dist/cli/main.js +69 -6
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/register-setup.js +14 -0
- package/dist/cli/register-setup.js.map +1 -1
- package/dist/cli/telemetry-flush.d.ts +2 -0
- package/dist/cli/telemetry-flush.js +4 -0
- package/dist/cli/telemetry-flush.js.map +1 -0
- package/dist/cli.js +1 -2
- package/dist/cli.js.map +1 -1
- package/dist/core/extensions/extension-types.d.ts +72 -0
- package/dist/core/extensions/extension-types.js +24 -0
- package/dist/core/extensions/extension-types.js.map +1 -1
- package/dist/core/extensions/loader.d.ts +1 -0
- package/dist/core/extensions/loader.js +766 -7
- package/dist/core/extensions/loader.js.map +1 -1
- package/dist/core/lock/lock.js +2 -0
- package/dist/core/lock/lock.js.map +1 -1
- package/dist/core/sentry/instrument.d.ts +15 -0
- package/dist/core/sentry/instrument.js +35 -3
- package/dist/core/sentry/instrument.js.map +1 -1
- package/dist/core/shared/constants.js +20 -0
- package/dist/core/shared/constants.js.map +1 -1
- package/dist/core/shared/errors.d.ts +8 -0
- package/dist/core/shared/errors.js.map +1 -1
- package/dist/core/shared/levenshtein.d.ts +1 -0
- package/dist/core/shared/levenshtein.js +37 -0
- package/dist/core/shared/levenshtein.js.map +1 -0
- package/dist/core/store/paths.js +34 -1
- package/dist/core/store/paths.js.map +1 -1
- package/dist/core/store/settings.js +210 -1
- package/dist/core/store/settings.js.map +1 -1
- package/dist/core/telemetry/runtime.d.ts +1 -0
- package/dist/core/telemetry/runtime.js +102 -3
- package/dist/core/telemetry/runtime.js.map +1 -1
- package/dist/mcp/server.js +3 -1
- package/dist/mcp/server.js.map +1 -1
- package/dist/pi/native.js +57 -4
- package/dist/pi/native.js.map +1 -1
- package/dist/sdk/cli-contracts.d.ts +21 -1
- package/dist/sdk/cli-contracts.js +250 -0
- package/dist/sdk/cli-contracts.js.map +1 -1
- package/dist/sdk/index.d.ts +12 -1
- package/dist/sdk/index.js +8 -1
- package/dist/sdk/index.js.map +1 -1
- package/dist/types.d.ts +41 -0
- package/dist/types.js.map +1 -1
- package/docs/CLAUDE_CODE_PLUGIN.md +39 -0
- package/docs/EXTENSIONS.md +687 -0
- package/docs/MIGRATION_CLI_SIMPLIFICATION.md +64 -0
- package/docs/PI_PACKAGE.md +95 -10
- package/docs/SDK.md +441 -0
- package/docs/examples/ci/github-actions-pm-extension-gate.yml +53 -0
- package/docs/examples/ci/gitlab-ci-pm-extension-gate.yml +41 -0
- package/docs/examples/ci/jenkins-pm-extension-gate.Jenkinsfile +45 -0
- package/docs/examples/policy-restricted-extension/README.md +74 -0
- package/docs/examples/policy-restricted-extension/index.js +21 -0
- package/docs/examples/policy-restricted-extension/manifest.json +21 -0
- package/docs/examples/policy-restricted-extension/package.json +8 -0
- package/docs/examples/sdk-app-embedding/README.md +39 -0
- package/docs/examples/sdk-app-embedding/package.json +9 -0
- package/docs/examples/sdk-app-embedding/run-embedded-pm.mjs +61 -0
- package/docs/examples/sdk-contract-consumer/README.md +57 -0
- package/docs/examples/sdk-contract-consumer/inspect-contracts.mjs +47 -0
- package/docs/examples/sdk-contract-consumer/package.json +10 -0
- package/docs/examples/starter-extension/README.md +57 -42
- package/docs/examples/starter-extension/manifest.json +15 -0
- package/marketplace.json +3 -3
- package/package.json +1 -1
- package/plugins/pm-cli-claude/.claude-plugin/plugin.json +2 -2
- package/plugins/pm-cli-claude/README.md +55 -14
- package/plugins/pm-cli-claude/agents/pm-delivery-chain.md +88 -0
- package/plugins/pm-cli-claude/agents/pm-triage-agent.md +83 -0
- package/plugins/pm-cli-claude/agents/pm-verification-agent.md +88 -0
- package/plugins/pm-cli-claude/hooks/session-start.mjs +87 -22
|
@@ -19,6 +19,30 @@ export const PM_EXTENSION_SERVICE_NAME_CONTRACTS = [
|
|
|
19
19
|
"item_store_write",
|
|
20
20
|
"item_store_delete",
|
|
21
21
|
];
|
|
22
|
+
export const PM_EXTENSION_POLICY_MODE_CONTRACTS = ["off", "warn", "enforce"];
|
|
23
|
+
export const PM_EXTENSION_TRUST_MODE_CONTRACTS = ["off", "warn", "enforce"];
|
|
24
|
+
export const PM_EXTENSION_SANDBOX_PROFILE_CONTRACTS = ["none", "restricted", "strict"];
|
|
25
|
+
export const PM_EXTENSION_POLICY_SURFACE_CONTRACTS = [
|
|
26
|
+
"commands.override",
|
|
27
|
+
"commands.handler",
|
|
28
|
+
"hooks.beforecommand",
|
|
29
|
+
"hooks.aftercommand",
|
|
30
|
+
"hooks.onwrite",
|
|
31
|
+
"hooks.onread",
|
|
32
|
+
"hooks.onindex",
|
|
33
|
+
"schema.flags",
|
|
34
|
+
"schema.itemfields",
|
|
35
|
+
"schema.itemtypes",
|
|
36
|
+
"schema.migrations",
|
|
37
|
+
"parser.override",
|
|
38
|
+
"preflight.override",
|
|
39
|
+
"services.override",
|
|
40
|
+
"renderers.override",
|
|
41
|
+
"importers.importer",
|
|
42
|
+
"importers.exporter",
|
|
43
|
+
"search.provider",
|
|
44
|
+
"search.vectorstore",
|
|
45
|
+
];
|
|
22
46
|
function normalizeUniqueStringList(values) {
|
|
23
47
|
return [...new Set(Array.from(values).filter((value) => value.trim().length > 0))];
|
|
24
48
|
}
|
|
@@ -122,11 +146,13 @@ export const PM_TOOL_ACTIONS = [
|
|
|
122
146
|
"extension-uninstall",
|
|
123
147
|
"extension-explore",
|
|
124
148
|
"extension-manage",
|
|
149
|
+
"extension-reload",
|
|
125
150
|
"extension-doctor",
|
|
126
151
|
"extension-adopt",
|
|
127
152
|
"extension-adopt-all",
|
|
128
153
|
"extension-activate",
|
|
129
154
|
"extension-deactivate",
|
|
155
|
+
"extension",
|
|
130
156
|
"create",
|
|
131
157
|
"list",
|
|
132
158
|
"list-all",
|
|
@@ -138,8 +164,11 @@ export const PM_TOOL_ACTIONS = [
|
|
|
138
164
|
"list-canceled",
|
|
139
165
|
"aggregate",
|
|
140
166
|
"dedupe-audit",
|
|
167
|
+
"guide",
|
|
141
168
|
"calendar",
|
|
169
|
+
"cal",
|
|
142
170
|
"context",
|
|
171
|
+
"ctx",
|
|
143
172
|
"get",
|
|
144
173
|
"search",
|
|
145
174
|
"reindex",
|
|
@@ -184,6 +213,21 @@ export const PM_TOOL_ACTIONS = [
|
|
|
184
213
|
"pause-task",
|
|
185
214
|
"close-task",
|
|
186
215
|
];
|
|
216
|
+
export function isPmToolAction(value) {
|
|
217
|
+
return PM_TOOL_ACTIONS.includes(value);
|
|
218
|
+
}
|
|
219
|
+
export function isPmExtensionCapabilityContract(value) {
|
|
220
|
+
return PM_EXTENSION_CAPABILITY_CONTRACTS.includes(value);
|
|
221
|
+
}
|
|
222
|
+
export function isPmExtensionServiceNameContract(value) {
|
|
223
|
+
return PM_EXTENSION_SERVICE_NAME_CONTRACTS.includes(value);
|
|
224
|
+
}
|
|
225
|
+
export function isPmExtensionPolicyModeContract(value) {
|
|
226
|
+
return PM_EXTENSION_POLICY_MODE_CONTRACTS.includes(value);
|
|
227
|
+
}
|
|
228
|
+
export function isPmExtensionPolicySurfaceContract(value) {
|
|
229
|
+
return PM_EXTENSION_POLICY_SURFACE_CONTRACTS.includes(value);
|
|
230
|
+
}
|
|
187
231
|
export const PI_LIST_FILTER_OPTION_CONTRACTS = [
|
|
188
232
|
{ param: "type", flag: "--type" },
|
|
189
233
|
{ param: "tag", flag: "--tag" },
|
|
@@ -572,6 +616,17 @@ export const CONFIG_FLAG_CONTRACTS = [
|
|
|
572
616
|
{ flag: "--clear-criteria" },
|
|
573
617
|
{ flag: "--format" },
|
|
574
618
|
{ flag: "--policy" },
|
|
619
|
+
{ flag: "--default-depth" },
|
|
620
|
+
{ flag: "--activity-limit" },
|
|
621
|
+
{ flag: "--stale-threshold-days" },
|
|
622
|
+
{ flag: "--section-hierarchy" },
|
|
623
|
+
{ flag: "--section-activity" },
|
|
624
|
+
{ flag: "--section-progress" },
|
|
625
|
+
{ flag: "--section-blockers" },
|
|
626
|
+
{ flag: "--section-files" },
|
|
627
|
+
{ flag: "--section-workload" },
|
|
628
|
+
{ flag: "--section-staleness" },
|
|
629
|
+
{ flag: "--section-tests" },
|
|
575
630
|
];
|
|
576
631
|
export const EXTENSION_FLAG_CONTRACTS = [
|
|
577
632
|
{ flag: "--init" },
|
|
@@ -580,6 +635,8 @@ export const EXTENSION_FLAG_CONTRACTS = [
|
|
|
580
635
|
{ flag: "--uninstall" },
|
|
581
636
|
{ flag: "--explore" },
|
|
582
637
|
{ flag: "--manage" },
|
|
638
|
+
{ flag: "--reload" },
|
|
639
|
+
{ flag: "--watch" },
|
|
583
640
|
{ flag: "--doctor" },
|
|
584
641
|
{ flag: "--adopt" },
|
|
585
642
|
{ flag: "--adopt-all" },
|
|
@@ -1080,6 +1137,10 @@ export const CONTEXT_FLAG_CONTRACTS = [
|
|
|
1080
1137
|
{ flag: "--release" },
|
|
1081
1138
|
{ flag: "--limit" },
|
|
1082
1139
|
{ flag: "--format" },
|
|
1140
|
+
{ flag: "--depth" },
|
|
1141
|
+
{ flag: "--section" },
|
|
1142
|
+
{ flag: "--activity-limit" },
|
|
1143
|
+
{ flag: "--stale-threshold" },
|
|
1083
1144
|
];
|
|
1084
1145
|
export const GUIDE_FLAG_CONTRACTS = [
|
|
1085
1146
|
{ flag: "--list" },
|
|
@@ -1119,6 +1180,156 @@ export const CONTRACTS_FLAG_CONTRACTS = [
|
|
|
1119
1180
|
export const COMPLETION_FLAG_CONTRACTS = [
|
|
1120
1181
|
{ flag: "--eager-tags" },
|
|
1121
1182
|
];
|
|
1183
|
+
function toUniqueFlagContracts(contracts) {
|
|
1184
|
+
const seen = new Set();
|
|
1185
|
+
const unique = [];
|
|
1186
|
+
for (const contract of contracts) {
|
|
1187
|
+
const aliasKey = (contract.aliases ?? []).join(",");
|
|
1188
|
+
const key = `${contract.flag}|${contract.short ?? ""}|${aliasKey}`;
|
|
1189
|
+
if (seen.has(key)) {
|
|
1190
|
+
continue;
|
|
1191
|
+
}
|
|
1192
|
+
seen.add(key);
|
|
1193
|
+
unique.push(contract);
|
|
1194
|
+
}
|
|
1195
|
+
return unique;
|
|
1196
|
+
}
|
|
1197
|
+
function withSubcommandGlobalFlags(contracts) {
|
|
1198
|
+
return withFlagAliasMetadata(toUniqueFlagContracts([...SUBCOMMAND_GLOBAL_FLAG_CONTRACTS, ...contracts]));
|
|
1199
|
+
}
|
|
1200
|
+
const LIST_COMMAND_NAME_CONTRACTS = new Set([
|
|
1201
|
+
"list",
|
|
1202
|
+
"list-all",
|
|
1203
|
+
"list-draft",
|
|
1204
|
+
"list-open",
|
|
1205
|
+
"list-in-progress",
|
|
1206
|
+
"list-blocked",
|
|
1207
|
+
"list-closed",
|
|
1208
|
+
"list-canceled",
|
|
1209
|
+
]);
|
|
1210
|
+
const NO_SURFACE_COMMAND_NAME_CONTRACTS = new Set([
|
|
1211
|
+
"get",
|
|
1212
|
+
"stats",
|
|
1213
|
+
"reindex",
|
|
1214
|
+
"beads",
|
|
1215
|
+
"todos",
|
|
1216
|
+
"beads-import",
|
|
1217
|
+
"todos-import",
|
|
1218
|
+
"todos-export",
|
|
1219
|
+
"help",
|
|
1220
|
+
]);
|
|
1221
|
+
function normalizeCommandNameForContracts(commandName) {
|
|
1222
|
+
if (typeof commandName !== "string") {
|
|
1223
|
+
return "";
|
|
1224
|
+
}
|
|
1225
|
+
return commandName.trim().toLowerCase();
|
|
1226
|
+
}
|
|
1227
|
+
export function resolveSubcommandFlagContractsForCommand(commandName) {
|
|
1228
|
+
const normalized = normalizeCommandNameForContracts(commandName);
|
|
1229
|
+
if (normalized.length === 0) {
|
|
1230
|
+
return withSubcommandGlobalFlags([]);
|
|
1231
|
+
}
|
|
1232
|
+
if (LIST_COMMAND_NAME_CONTRACTS.has(normalized)) {
|
|
1233
|
+
return withSubcommandGlobalFlags(LIST_FILTER_FLAG_CONTRACTS);
|
|
1234
|
+
}
|
|
1235
|
+
if (NO_SURFACE_COMMAND_NAME_CONTRACTS.has(normalized)) {
|
|
1236
|
+
return withSubcommandGlobalFlags([]);
|
|
1237
|
+
}
|
|
1238
|
+
if (normalized === "templates") {
|
|
1239
|
+
return withSubcommandGlobalFlags(CREATE_FLAG_CONTRACTS);
|
|
1240
|
+
}
|
|
1241
|
+
if (normalized === "cal") {
|
|
1242
|
+
return withSubcommandGlobalFlags(CALENDAR_FLAG_CONTRACTS);
|
|
1243
|
+
}
|
|
1244
|
+
if (normalized === "ctx") {
|
|
1245
|
+
return withSubcommandGlobalFlags(CONTEXT_FLAG_CONTRACTS);
|
|
1246
|
+
}
|
|
1247
|
+
if (normalized === "test-runs-worker") {
|
|
1248
|
+
return withSubcommandGlobalFlags(TEST_RUNS_FLAG_CONTRACTS);
|
|
1249
|
+
}
|
|
1250
|
+
switch (normalized) {
|
|
1251
|
+
case "init":
|
|
1252
|
+
return withSubcommandGlobalFlags(INIT_FLAG_CONTRACTS);
|
|
1253
|
+
case "config":
|
|
1254
|
+
return withSubcommandGlobalFlags(CONFIG_FLAG_CONTRACTS);
|
|
1255
|
+
case "extension":
|
|
1256
|
+
return withSubcommandGlobalFlags(EXTENSION_FLAG_CONTRACTS);
|
|
1257
|
+
case "create":
|
|
1258
|
+
return withSubcommandGlobalFlags(CREATE_FLAG_CONTRACTS);
|
|
1259
|
+
case "aggregate":
|
|
1260
|
+
return withSubcommandGlobalFlags(AGGREGATE_FLAG_CONTRACTS);
|
|
1261
|
+
case "dedupe-audit":
|
|
1262
|
+
return withSubcommandGlobalFlags(DEDUPE_AUDIT_FLAG_CONTRACTS);
|
|
1263
|
+
case "comments-audit":
|
|
1264
|
+
return withSubcommandGlobalFlags(COMMENTS_AUDIT_FLAG_CONTRACTS);
|
|
1265
|
+
case "calendar":
|
|
1266
|
+
return withSubcommandGlobalFlags(CALENDAR_FLAG_CONTRACTS);
|
|
1267
|
+
case "context":
|
|
1268
|
+
return withSubcommandGlobalFlags(CONTEXT_FLAG_CONTRACTS);
|
|
1269
|
+
case "search":
|
|
1270
|
+
return withSubcommandGlobalFlags(SEARCH_FLAG_CONTRACTS);
|
|
1271
|
+
case "history":
|
|
1272
|
+
return withSubcommandGlobalFlags(HISTORY_FLAG_CONTRACTS);
|
|
1273
|
+
case "activity":
|
|
1274
|
+
return withSubcommandGlobalFlags(ACTIVITY_FLAG_CONTRACTS);
|
|
1275
|
+
case "restore":
|
|
1276
|
+
return withSubcommandGlobalFlags(RESTORE_FLAG_CONTRACTS);
|
|
1277
|
+
case "update":
|
|
1278
|
+
return withSubcommandGlobalFlags(UPDATE_FLAG_CONTRACTS);
|
|
1279
|
+
case "update-many":
|
|
1280
|
+
return withSubcommandGlobalFlags(UPDATE_MANY_FLAG_CONTRACTS);
|
|
1281
|
+
case "normalize":
|
|
1282
|
+
return withSubcommandGlobalFlags(NORMALIZE_FLAG_CONTRACTS);
|
|
1283
|
+
case "close":
|
|
1284
|
+
return withSubcommandGlobalFlags(CLOSE_FLAG_CONTRACTS);
|
|
1285
|
+
case "delete":
|
|
1286
|
+
return withSubcommandGlobalFlags(DELETE_FLAG_CONTRACTS);
|
|
1287
|
+
case "append":
|
|
1288
|
+
return withSubcommandGlobalFlags(APPEND_FLAG_CONTRACTS);
|
|
1289
|
+
case "comments":
|
|
1290
|
+
return withSubcommandGlobalFlags(COMMENTS_FLAG_CONTRACTS);
|
|
1291
|
+
case "notes":
|
|
1292
|
+
return withSubcommandGlobalFlags(NOTES_FLAG_CONTRACTS);
|
|
1293
|
+
case "learnings":
|
|
1294
|
+
return withSubcommandGlobalFlags(LEARNINGS_FLAG_CONTRACTS);
|
|
1295
|
+
case "files":
|
|
1296
|
+
return withSubcommandGlobalFlags(FILES_FLAG_CONTRACTS);
|
|
1297
|
+
case "docs":
|
|
1298
|
+
return withSubcommandGlobalFlags(DOCS_FLAG_CONTRACTS);
|
|
1299
|
+
case "deps":
|
|
1300
|
+
return withSubcommandGlobalFlags(DEPS_FLAG_CONTRACTS);
|
|
1301
|
+
case "test":
|
|
1302
|
+
return withSubcommandGlobalFlags(TEST_FLAG_CONTRACTS);
|
|
1303
|
+
case "test-all":
|
|
1304
|
+
return withSubcommandGlobalFlags(TEST_ALL_FLAG_CONTRACTS);
|
|
1305
|
+
case "test-runs":
|
|
1306
|
+
return withSubcommandGlobalFlags(TEST_RUNS_FLAG_CONTRACTS);
|
|
1307
|
+
case "health":
|
|
1308
|
+
return withSubcommandGlobalFlags(HEALTH_FLAG_CONTRACTS);
|
|
1309
|
+
case "validate":
|
|
1310
|
+
return withSubcommandGlobalFlags(VALIDATE_FLAG_CONTRACTS);
|
|
1311
|
+
case "gc":
|
|
1312
|
+
return withSubcommandGlobalFlags(GC_FLAG_CONTRACTS);
|
|
1313
|
+
case "contracts":
|
|
1314
|
+
return withSubcommandGlobalFlags(CONTRACTS_FLAG_CONTRACTS);
|
|
1315
|
+
case "claim":
|
|
1316
|
+
return withSubcommandGlobalFlags(CLAIM_FLAG_CONTRACTS);
|
|
1317
|
+
case "release":
|
|
1318
|
+
return withSubcommandGlobalFlags(RELEASE_FLAG_CONTRACTS);
|
|
1319
|
+
case "start-task":
|
|
1320
|
+
return withSubcommandGlobalFlags(START_TASK_FLAG_CONTRACTS);
|
|
1321
|
+
case "pause-task":
|
|
1322
|
+
return withSubcommandGlobalFlags(PAUSE_TASK_FLAG_CONTRACTS);
|
|
1323
|
+
case "close-task":
|
|
1324
|
+
return withSubcommandGlobalFlags(CLOSE_TASK_FLAG_CONTRACTS);
|
|
1325
|
+
case "guide":
|
|
1326
|
+
return withSubcommandGlobalFlags(GUIDE_FLAG_CONTRACTS);
|
|
1327
|
+
case "completion":
|
|
1328
|
+
return withSubcommandGlobalFlags(COMPLETION_FLAG_CONTRACTS);
|
|
1329
|
+
default:
|
|
1330
|
+
return withSubcommandGlobalFlags([]);
|
|
1331
|
+
}
|
|
1332
|
+
}
|
|
1122
1333
|
export function toCompletionFlagString(flagContracts, includeGlobal = true) {
|
|
1123
1334
|
const aliasAwareContracts = withFlagAliasMetadata(flagContracts);
|
|
1124
1335
|
const scoped = aliasAwareContracts
|
|
@@ -1473,6 +1684,8 @@ const PM_TOOL_PARAMETER_PROPERTIES = {
|
|
|
1473
1684
|
sharedHostSafe: { type: "boolean" },
|
|
1474
1685
|
detail: { type: "string", enum: ["summary", "deep"] },
|
|
1475
1686
|
trace: { type: "boolean" },
|
|
1687
|
+
reload: { type: "boolean" },
|
|
1688
|
+
watch: { type: "boolean" },
|
|
1476
1689
|
runtimeProbe: { type: "boolean" },
|
|
1477
1690
|
fixManagedState: { type: "boolean" },
|
|
1478
1691
|
pmContext: { type: "string", enum: ["schema", "tracker", "auto"] },
|
|
@@ -1675,11 +1888,38 @@ const PM_TOOL_ACTION_SCHEMA_CONTRACTS = {
|
|
|
1675
1888
|
"extension-uninstall": { required: ["target"], optional: ["scope"] },
|
|
1676
1889
|
"extension-explore": { optional: ["scope"] },
|
|
1677
1890
|
"extension-manage": { optional: ["scope", "runtimeProbe", "fixManagedState"] },
|
|
1891
|
+
"extension-reload": { optional: ["scope", "watch"] },
|
|
1678
1892
|
"extension-doctor": { optional: ["scope", "detail", "trace", "fixManagedState", "strictExit", "failOnWarn"] },
|
|
1679
1893
|
"extension-adopt": { required: ["target"], optional: ["scope", "github", "ref"] },
|
|
1680
1894
|
"extension-adopt-all": { optional: ["scope"] },
|
|
1681
1895
|
"extension-activate": { required: ["target"], optional: ["scope"] },
|
|
1682
1896
|
"extension-deactivate": { required: ["target"], optional: ["scope"] },
|
|
1897
|
+
extension: {
|
|
1898
|
+
optional: [
|
|
1899
|
+
"target",
|
|
1900
|
+
"scope",
|
|
1901
|
+
"github",
|
|
1902
|
+
"ref",
|
|
1903
|
+
"init",
|
|
1904
|
+
"install",
|
|
1905
|
+
"uninstall",
|
|
1906
|
+
"explore",
|
|
1907
|
+
"manage",
|
|
1908
|
+
"reload",
|
|
1909
|
+
"doctor",
|
|
1910
|
+
"adopt",
|
|
1911
|
+
"adoptAll",
|
|
1912
|
+
"activate",
|
|
1913
|
+
"deactivate",
|
|
1914
|
+
"runtimeProbe",
|
|
1915
|
+
"fixManagedState",
|
|
1916
|
+
"detail",
|
|
1917
|
+
"trace",
|
|
1918
|
+
"watch",
|
|
1919
|
+
"strictExit",
|
|
1920
|
+
"failOnWarn",
|
|
1921
|
+
],
|
|
1922
|
+
},
|
|
1683
1923
|
create: {
|
|
1684
1924
|
required: ["title", "description", "type", "status", "priority", "message"],
|
|
1685
1925
|
optional: CREATE_CONTRACT_PARAMETER_KEYS,
|
|
@@ -1694,8 +1934,11 @@ const PM_TOOL_ACTION_SCHEMA_CONTRACTS = {
|
|
|
1694
1934
|
"list-canceled": { optional: LIST_CONTRACT_PARAMETER_KEYS },
|
|
1695
1935
|
aggregate: { optional: AGGREGATE_CONTRACT_PARAMETER_KEYS },
|
|
1696
1936
|
"dedupe-audit": { optional: DEDUPE_AUDIT_CONTRACT_PARAMETER_KEYS },
|
|
1937
|
+
guide: { optional: ["format", "depth"] },
|
|
1697
1938
|
calendar: { optional: CALENDAR_CONTRACT_PARAMETER_KEYS },
|
|
1939
|
+
cal: { optional: CALENDAR_CONTRACT_PARAMETER_KEYS },
|
|
1698
1940
|
context: { optional: CONTEXT_CONTRACT_PARAMETER_KEYS },
|
|
1941
|
+
ctx: { optional: CONTEXT_CONTRACT_PARAMETER_KEYS },
|
|
1699
1942
|
get: { required: ["id"] },
|
|
1700
1943
|
search: {
|
|
1701
1944
|
optional: SEARCH_CONTRACT_PARAMETER_KEYS,
|
|
@@ -1872,6 +2115,7 @@ const PM_TOOL_ACTION_SCHEMA_CONTRACTS = {
|
|
|
1872
2115
|
"pause-task": { required: ["id"], optional: AUTHOR_MESSAGE_FORCE_PARAMETER_KEYS },
|
|
1873
2116
|
"close-task": { required: ["id", "text"], optional: AUTHOR_MESSAGE_FORCE_PARAMETER_KEYS },
|
|
1874
2117
|
};
|
|
2118
|
+
export const PM_TOOL_ACTION_PARAMETER_CONTRACTS = PM_TOOL_ACTION_SCHEMA_CONTRACTS;
|
|
1875
2119
|
const PM_TOOL_PARAMETER_METADATA = {
|
|
1876
2120
|
action: {
|
|
1877
2121
|
description: "Tool action to execute.",
|
|
@@ -1891,6 +2135,12 @@ const PM_TOOL_PARAMETER_METADATA = {
|
|
|
1891
2135
|
trace: {
|
|
1892
2136
|
description: "When true for extension-doctor, include actionable registration traces in deep diagnostics.",
|
|
1893
2137
|
},
|
|
2138
|
+
reload: {
|
|
2139
|
+
description: "When true for extension action payloads, trigger cache-busted extension module reload.",
|
|
2140
|
+
},
|
|
2141
|
+
watch: {
|
|
2142
|
+
description: "When true for extension-reload/extension action payloads, enable watch mode semantics.",
|
|
2143
|
+
},
|
|
1894
2144
|
runtimeProbe: {
|
|
1895
2145
|
description: "When true for extension-manage, run a doctor-like runtime activation probe for parity fields.",
|
|
1896
2146
|
},
|