@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.
Files changed (124) hide show
  1. package/.claude-plugin/marketplace.json +4 -4
  2. package/.pi/README.md +10 -1
  3. package/.pi/agents/pm-triage-agent.md +19 -0
  4. package/.pi/agents/pm-verification-agent.md +21 -0
  5. package/.pi/chains/pm-native-delivery.chain.md +11 -0
  6. package/.pi/extensions/pm-cli/index.js +276 -36
  7. package/.pi/skills/pm-native/SKILL.md +6 -2
  8. package/CHANGELOG.md +7 -0
  9. package/README.md +9 -1
  10. package/dist/cli/argv-utils.d.ts +5 -0
  11. package/dist/cli/argv-utils.js +34 -0
  12. package/dist/cli/argv-utils.js.map +1 -0
  13. package/dist/cli/bootstrap-args.d.ts +15 -0
  14. package/dist/cli/bootstrap-args.js +211 -0
  15. package/dist/cli/bootstrap-args.js.map +1 -1
  16. package/dist/cli/commander-usage.js +109 -3
  17. package/dist/cli/commander-usage.js.map +1 -1
  18. package/dist/cli/commands/completion.js +7 -3
  19. package/dist/cli/commands/completion.js.map +1 -1
  20. package/dist/cli/commands/contracts.d.ts +19 -0
  21. package/dist/cli/commands/contracts.js +33 -1
  22. package/dist/cli/commands/contracts.js.map +1 -1
  23. package/dist/cli/commands/create.js +112 -51
  24. package/dist/cli/commands/create.js.map +1 -1
  25. package/dist/cli/commands/docs.js +9 -2
  26. package/dist/cli/commands/docs.js.map +1 -1
  27. package/dist/cli/commands/extension.d.ts +3 -1
  28. package/dist/cli/commands/extension.js +174 -2
  29. package/dist/cli/commands/extension.js.map +1 -1
  30. package/dist/cli/commands/files.js +9 -2
  31. package/dist/cli/commands/files.js.map +1 -1
  32. package/dist/cli/commands/init.d.ts +2 -0
  33. package/dist/cli/commands/init.js +21 -1
  34. package/dist/cli/commands/init.js.map +1 -1
  35. package/dist/cli/commands/metadata-normalizers.d.ts +4 -0
  36. package/dist/cli/commands/metadata-normalizers.js +37 -0
  37. package/dist/cli/commands/metadata-normalizers.js.map +1 -0
  38. package/dist/cli/commands/reindex.js +173 -135
  39. package/dist/cli/commands/reindex.js.map +1 -1
  40. package/dist/cli/commands/search.js +16 -6
  41. package/dist/cli/commands/search.js.map +1 -1
  42. package/dist/cli/commands/test.js +9 -2
  43. package/dist/cli/commands/test.js.map +1 -1
  44. package/dist/cli/commands/update.js +70 -39
  45. package/dist/cli/commands/update.js.map +1 -1
  46. package/dist/cli/error-guidance.d.ts +9 -1
  47. package/dist/cli/error-guidance.js +147 -6
  48. package/dist/cli/error-guidance.js.map +1 -1
  49. package/dist/cli/help-json-payload.js +11 -1
  50. package/dist/cli/help-json-payload.js.map +1 -1
  51. package/dist/cli/main.js +69 -6
  52. package/dist/cli/main.js.map +1 -1
  53. package/dist/cli/register-setup.js +14 -0
  54. package/dist/cli/register-setup.js.map +1 -1
  55. package/dist/cli/telemetry-flush.d.ts +2 -0
  56. package/dist/cli/telemetry-flush.js +4 -0
  57. package/dist/cli/telemetry-flush.js.map +1 -0
  58. package/dist/cli.js +1 -2
  59. package/dist/cli.js.map +1 -1
  60. package/dist/core/extensions/extension-types.d.ts +72 -0
  61. package/dist/core/extensions/extension-types.js +24 -0
  62. package/dist/core/extensions/extension-types.js.map +1 -1
  63. package/dist/core/extensions/loader.d.ts +1 -0
  64. package/dist/core/extensions/loader.js +766 -7
  65. package/dist/core/extensions/loader.js.map +1 -1
  66. package/dist/core/lock/lock.js +2 -0
  67. package/dist/core/lock/lock.js.map +1 -1
  68. package/dist/core/sentry/instrument.d.ts +15 -0
  69. package/dist/core/sentry/instrument.js +35 -3
  70. package/dist/core/sentry/instrument.js.map +1 -1
  71. package/dist/core/shared/constants.js +20 -0
  72. package/dist/core/shared/constants.js.map +1 -1
  73. package/dist/core/shared/errors.d.ts +8 -0
  74. package/dist/core/shared/errors.js.map +1 -1
  75. package/dist/core/shared/levenshtein.d.ts +1 -0
  76. package/dist/core/shared/levenshtein.js +37 -0
  77. package/dist/core/shared/levenshtein.js.map +1 -0
  78. package/dist/core/store/paths.js +34 -1
  79. package/dist/core/store/paths.js.map +1 -1
  80. package/dist/core/store/settings.js +210 -1
  81. package/dist/core/store/settings.js.map +1 -1
  82. package/dist/core/telemetry/runtime.d.ts +1 -0
  83. package/dist/core/telemetry/runtime.js +102 -3
  84. package/dist/core/telemetry/runtime.js.map +1 -1
  85. package/dist/mcp/server.js +3 -1
  86. package/dist/mcp/server.js.map +1 -1
  87. package/dist/pi/native.js +57 -4
  88. package/dist/pi/native.js.map +1 -1
  89. package/dist/sdk/cli-contracts.d.ts +21 -1
  90. package/dist/sdk/cli-contracts.js +250 -0
  91. package/dist/sdk/cli-contracts.js.map +1 -1
  92. package/dist/sdk/index.d.ts +12 -1
  93. package/dist/sdk/index.js +8 -1
  94. package/dist/sdk/index.js.map +1 -1
  95. package/dist/types.d.ts +41 -0
  96. package/dist/types.js.map +1 -1
  97. package/docs/CLAUDE_CODE_PLUGIN.md +39 -0
  98. package/docs/EXTENSIONS.md +687 -0
  99. package/docs/MIGRATION_CLI_SIMPLIFICATION.md +64 -0
  100. package/docs/PI_PACKAGE.md +95 -10
  101. package/docs/SDK.md +441 -0
  102. package/docs/examples/ci/github-actions-pm-extension-gate.yml +53 -0
  103. package/docs/examples/ci/gitlab-ci-pm-extension-gate.yml +41 -0
  104. package/docs/examples/ci/jenkins-pm-extension-gate.Jenkinsfile +45 -0
  105. package/docs/examples/policy-restricted-extension/README.md +74 -0
  106. package/docs/examples/policy-restricted-extension/index.js +21 -0
  107. package/docs/examples/policy-restricted-extension/manifest.json +21 -0
  108. package/docs/examples/policy-restricted-extension/package.json +8 -0
  109. package/docs/examples/sdk-app-embedding/README.md +39 -0
  110. package/docs/examples/sdk-app-embedding/package.json +9 -0
  111. package/docs/examples/sdk-app-embedding/run-embedded-pm.mjs +61 -0
  112. package/docs/examples/sdk-contract-consumer/README.md +57 -0
  113. package/docs/examples/sdk-contract-consumer/inspect-contracts.mjs +47 -0
  114. package/docs/examples/sdk-contract-consumer/package.json +10 -0
  115. package/docs/examples/starter-extension/README.md +57 -42
  116. package/docs/examples/starter-extension/manifest.json +15 -0
  117. package/marketplace.json +3 -3
  118. package/package.json +1 -1
  119. package/plugins/pm-cli-claude/.claude-plugin/plugin.json +2 -2
  120. package/plugins/pm-cli-claude/README.md +55 -14
  121. package/plugins/pm-cli-claude/agents/pm-delivery-chain.md +88 -0
  122. package/plugins/pm-cli-claude/agents/pm-triage-agent.md +83 -0
  123. package/plugins/pm-cli-claude/agents/pm-verification-agent.md +88 -0
  124. 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
  },