@unbrained/pm-cli 2026.8.5 → 2026.8.6

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 (188) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/CHANGELOG.md +14 -0
  3. package/dist/cli/main.js +12 -37
  4. package/dist/cli/register-setup.d.ts +1 -1
  5. package/dist/cli/register-setup.js +46 -20
  6. package/dist/cli-bundle/bundle-manifest.json +391 -391
  7. package/dist/cli-bundle/chunks/append-XAJ5Z4XS.js +2 -0
  8. package/dist/cli-bundle/chunks/{chunk-2WFXWAYX.js → chunk-343QETLI.js} +2 -2
  9. package/dist/cli-bundle/chunks/{chunk-RKAVWO3O.js → chunk-3KFVGGRE.js} +2 -2
  10. package/dist/cli-bundle/chunks/{chunk-VCKLFEUN.js → chunk-3ZJRFYY2.js} +2 -2
  11. package/dist/cli-bundle/chunks/{chunk-UZBWIUYD.js → chunk-4AVFKHHC.js} +2 -2
  12. package/dist/cli-bundle/chunks/{chunk-BPELKUQD.js → chunk-4OVGQW22.js} +2 -2
  13. package/dist/cli-bundle/chunks/{chunk-54FNT7U2.js → chunk-5PBP2ZP3.js} +2 -2
  14. package/dist/cli-bundle/chunks/{chunk-NY4T3JWN.js → chunk-5ZKQPA44.js} +2 -2
  15. package/dist/cli-bundle/chunks/{chunk-4YUBDMQM.js → chunk-A3XQ7VPU.js} +2 -2
  16. package/dist/cli-bundle/chunks/{chunk-OPVH7SKD.js → chunk-AJE3AHPD.js} +2 -2
  17. package/dist/cli-bundle/chunks/{chunk-V3774P7D.js → chunk-AOBDLU4T.js} +2 -2
  18. package/dist/cli-bundle/chunks/{chunk-VN5VITU3.js → chunk-AYRUGRNS.js} +2 -2
  19. package/dist/cli-bundle/chunks/{chunk-HWRRMBJO.js → chunk-BP6EMEDP.js} +2 -2
  20. package/dist/cli-bundle/chunks/{chunk-ZYHOB3SN.js → chunk-C3YABSJK.js} +2 -2
  21. package/dist/cli-bundle/chunks/{chunk-43HQQI6S.js → chunk-CA3BURYF.js} +2 -2
  22. package/dist/cli-bundle/chunks/{chunk-E2RKBKWB.js → chunk-D7I3TUGV.js} +2 -2
  23. package/dist/cli-bundle/chunks/{chunk-4VN6GS4U.js → chunk-DQGJ2RWT.js} +2 -2
  24. package/dist/cli-bundle/chunks/{chunk-YSO3YFZ4.js → chunk-DWOAOZHZ.js} +2 -2
  25. package/dist/cli-bundle/chunks/{chunk-Q35VBGOQ.js → chunk-E7BFPLUZ.js} +2 -2
  26. package/dist/cli-bundle/chunks/{chunk-LKDGK44W.js → chunk-F4NREH3G.js} +2 -2
  27. package/dist/cli-bundle/chunks/{chunk-OMXVBQ2N.js → chunk-FDBRXV25.js} +2 -2
  28. package/dist/cli-bundle/chunks/{chunk-3FTILRJ2.js → chunk-GU3TSEHD.js} +2 -2
  29. package/dist/cli-bundle/chunks/chunk-HS7OVAUN.js +164 -0
  30. package/dist/cli-bundle/chunks/{chunk-OTHLDSFP.js → chunk-JFZIS6JF.js} +2 -2
  31. package/dist/cli-bundle/chunks/{chunk-7A5OT5J2.js → chunk-JQ4NZ5EB.js} +2 -2
  32. package/dist/cli-bundle/chunks/{chunk-BXQLRKWF.js → chunk-L6LGKJX3.js} +2 -2
  33. package/dist/cli-bundle/chunks/{chunk-CSI3WS5I.js → chunk-M357ZCOR.js} +2 -2
  34. package/dist/cli-bundle/chunks/{chunk-5ZBOIPGP.js → chunk-M4VEE3FK.js} +2 -2
  35. package/dist/cli-bundle/chunks/{chunk-7C4PTJG6.js → chunk-MCS73BKB.js} +2 -2
  36. package/dist/cli-bundle/chunks/{chunk-A62CYISG.js → chunk-MDTH7SAE.js} +2 -2
  37. package/dist/cli-bundle/chunks/{chunk-HNFD72UK.js → chunk-OXY3SJ3N.js} +2 -2
  38. package/dist/cli-bundle/chunks/{chunk-L3AZOELJ.js → chunk-PECV7L5T.js} +2 -2
  39. package/dist/cli-bundle/chunks/{chunk-DXDREUXT.js → chunk-Q3VOP62W.js} +2 -2
  40. package/dist/cli-bundle/chunks/{chunk-UP7DTVMD.js → chunk-QJ7C3JIW.js} +2 -2
  41. package/dist/cli-bundle/chunks/{chunk-42E7YPLG.js → chunk-R6LSRGPS.js} +2 -2
  42. package/dist/cli-bundle/chunks/{chunk-MHK6LIWE.js → chunk-R6RKEYYW.js} +2 -2
  43. package/dist/cli-bundle/chunks/{chunk-UN66FZRO.js → chunk-RAFUN7IX.js} +3 -3
  44. package/dist/cli-bundle/chunks/chunk-RUAU5OSH.js +2 -0
  45. package/dist/cli-bundle/chunks/chunk-SD3YXU2U.js +56 -0
  46. package/dist/cli-bundle/chunks/{chunk-SSF4PIUR.js → chunk-SV3YQ4RY.js} +2 -2
  47. package/dist/cli-bundle/chunks/{chunk-V3EUXXOF.js → chunk-SVV3DQES.js} +2 -2
  48. package/dist/cli-bundle/chunks/{chunk-45G53IU4.js → chunk-SXECIECW.js} +2 -2
  49. package/dist/cli-bundle/chunks/chunk-T45OHXDW.js +8 -0
  50. package/dist/cli-bundle/chunks/{chunk-PMXJEU3F.js → chunk-TPKDJ5WL.js} +2 -2
  51. package/dist/cli-bundle/chunks/{chunk-M72BKL5Q.js → chunk-UVVXHGYS.js} +2 -2
  52. package/dist/cli-bundle/chunks/{chunk-WRL4KNDL.js → chunk-V663653R.js} +19 -19
  53. package/dist/cli-bundle/chunks/{chunk-R546TPDE.js → chunk-WSI5KZQJ.js} +2 -2
  54. package/dist/cli-bundle/chunks/{chunk-6MSQJOTG.js → chunk-XPOQQJTX.js} +2 -2
  55. package/dist/cli-bundle/chunks/{chunk-XCEZYMNI.js → chunk-YCCDXBNU.js} +2 -2
  56. package/dist/cli-bundle/chunks/{chunk-LN2WFEU4.js → chunk-ZFBWCKYF.js} +2 -2
  57. package/dist/cli-bundle/chunks/close-DI66JMSB.js +2 -0
  58. package/dist/cli-bundle/chunks/close-many-VFKT6U3O.js +2 -0
  59. package/dist/cli-bundle/chunks/comments-E73HIEZJ.js +2 -0
  60. package/dist/cli-bundle/chunks/copy-WBYVLCPC.js +2 -0
  61. package/dist/cli-bundle/chunks/{create-XLKTXTUF.js → create-TG67IVFI.js} +2 -2
  62. package/dist/cli-bundle/chunks/delete-6XKUVVQN.js +2 -0
  63. package/dist/cli-bundle/chunks/{deps-ITTY3GIC.js → deps-AJUGP2OH.js} +2 -2
  64. package/dist/cli-bundle/chunks/{docs-W4OSRTYR.js → docs-QOCLDRKJ.js} +2 -2
  65. package/dist/cli-bundle/chunks/{files-EOK4AZI4.js → files-3ST5TY64.js} +2 -2
  66. package/dist/cli-bundle/chunks/focus-R2AWS63Y.js +2 -0
  67. package/dist/cli-bundle/chunks/{history-compact-7UGTMLL3.js → history-compact-7BJFML4S.js} +2 -2
  68. package/dist/cli-bundle/chunks/{history-redact-4DZRMD6Z.js → history-redact-WJN3HYXR.js} +2 -2
  69. package/dist/cli-bundle/chunks/{history-repair-UPOSZW5R.js → history-repair-XDNZUB7F.js} +2 -2
  70. package/dist/cli-bundle/chunks/{learnings-GMRNCBS3.js → learnings-SZMUPVNA.js} +2 -2
  71. package/dist/cli-bundle/chunks/{profile-2MUUMHRE.js → profile-KL53JIAC.js} +2 -2
  72. package/dist/cli-bundle/chunks/{register-list-query-LR3SQ5ZF.js → register-list-query-QH7ONPKU.js} +2 -2
  73. package/dist/cli-bundle/chunks/{register-mutation-SUOHFVWM.js → register-mutation-OCRQNZK4.js} +3 -3
  74. package/dist/cli-bundle/chunks/{register-operations-ARRRKOVN.js → register-operations-HIBJXRGB.js} +2 -2
  75. package/dist/cli-bundle/chunks/register-setup-QWBQ6HBS.js +2 -0
  76. package/dist/cli-bundle/chunks/restore-FXA5QPM7.js +2 -0
  77. package/dist/cli-bundle/chunks/{schema-FJ4EA3XF.js → schema-QJ27OTRV.js} +2 -2
  78. package/dist/cli-bundle/chunks/update-7GBO4SXG.js +2 -0
  79. package/dist/cli-bundle/chunks/update-many-VF6ZKQUO.js +2 -0
  80. package/dist/cli-bundle/focused-chunks/{chunk-B7LJWAZE.js → chunk-27DK4A5O.js} +2 -2
  81. package/dist/cli-bundle/focused-chunks/{chunk-SV3O7TSH.js → chunk-4JC3AOGS.js} +2 -2
  82. package/dist/cli-bundle/focused-chunks/{chunk-G6ETT4QK.js → chunk-6KDHXURF.js} +2 -2
  83. package/dist/cli-bundle/focused-chunks/{chunk-PG2RIZBX.js → chunk-74CWP3A4.js} +2 -2
  84. package/dist/cli-bundle/focused-chunks/{chunk-Y4LDYLLT.js → chunk-7AZDTGPA.js} +2 -2
  85. package/dist/cli-bundle/focused-chunks/chunk-7YTZ7A4E.js +2 -0
  86. package/dist/cli-bundle/focused-chunks/{chunk-A7BJ5SS6.js → chunk-CL3NB7VW.js} +2 -2
  87. package/dist/cli-bundle/focused-chunks/chunk-EAXXF2HW.js +4 -0
  88. package/dist/cli-bundle/focused-chunks/{chunk-UIL2M2NA.js → chunk-EYO4F74Z.js} +2 -2
  89. package/dist/cli-bundle/focused-chunks/{chunk-7J5TUBUJ.js → chunk-GEYU23YS.js} +2 -2
  90. package/dist/cli-bundle/focused-chunks/{chunk-WEM2E2PE.js → chunk-GIERI4YU.js} +2 -2
  91. package/dist/cli-bundle/focused-chunks/{chunk-WVIVUWVL.js → chunk-GSW2Y7VZ.js} +2 -2
  92. package/dist/cli-bundle/focused-chunks/{chunk-VLYOEYML.js → chunk-LKQXXO62.js} +2 -2
  93. package/dist/cli-bundle/focused-chunks/{chunk-MJ7HWSFK.js → chunk-MBBMTDD3.js} +2 -2
  94. package/dist/cli-bundle/focused-chunks/{chunk-PIMMYG7Q.js → chunk-ME4XVOBJ.js} +2 -2
  95. package/dist/cli-bundle/focused-chunks/{chunk-IPWSFADF.js → chunk-N7QN3NE6.js} +2 -2
  96. package/dist/cli-bundle/focused-chunks/{chunk-W7BJEWHX.js → chunk-QL5H3AQH.js} +2 -2
  97. package/dist/cli-bundle/focused-chunks/chunk-TQMFQYXR.js +29 -0
  98. package/dist/cli-bundle/focused-chunks/{chunk-RUR5I3TK.js → chunk-XNVXIQ4B.js} +2 -2
  99. package/dist/cli-bundle/focused-chunks/{chunk-FGKY4MBE.js → chunk-YHDCGUIW.js} +2 -2
  100. package/dist/cli-bundle/focused-chunks/{chunk-QVHKCI4T.js → chunk-YLPZHWX7.js} +2 -2
  101. package/dist/cli-bundle/main.js +13 -13
  102. package/dist/cli-bundle/sdk-authoring.js +1 -1
  103. package/dist/cli-bundle/sdk-contracts.js +1 -1
  104. package/dist/cli-bundle/sdk-core.js +25 -25
  105. package/dist/cli-bundle/sdk-governance.js +1 -1
  106. package/dist/cli-bundle/sdk-graph.js +1 -1
  107. package/dist/cli-bundle/sdk-merge.js +1 -1
  108. package/dist/cli-bundle/sdk-query.js +1 -1
  109. package/dist/cli-bundle/sdk-runtime.js +1 -1
  110. package/dist/cli-bundle/sdk-testing.js +1 -1
  111. package/dist/cli-bundle/sdk.js +1 -1
  112. package/dist/core/extensions/activation-summary.d.ts +4 -0
  113. package/dist/core/extensions/activation-summary.js +5 -2
  114. package/dist/core/extensions/contribution-inventory.d.ts +1 -0
  115. package/dist/core/extensions/contribution-inventory.js +35 -2
  116. package/dist/core/extensions/extension-hook-runtime.js +5 -3
  117. package/dist/core/extensions/extension-types.d.ts +18 -1
  118. package/dist/core/extensions/extension-types.js +2 -2
  119. package/dist/core/extensions/loader.js +5 -13
  120. package/dist/core/extensions/preflight-ownership.d.ts +5 -0
  121. package/dist/core/extensions/preflight-ownership.js +42 -0
  122. package/dist/sdk/cli-contracts/flag-contracts.d.ts +2 -0
  123. package/dist/sdk/cli-contracts/flag-contracts.js +8 -2
  124. package/dist/sdk/cli-contracts/runtime-contracts.js +4 -3
  125. package/dist/sdk/cli-contracts.d.ts +1 -1
  126. package/dist/sdk/cli-contracts.js +3 -3
  127. package/dist/sdk/compose.d.ts +2 -2
  128. package/dist/sdk/compose.js +7 -2
  129. package/dist/sdk/define.d.ts +3 -1
  130. package/dist/sdk/define.js +3 -8
  131. package/dist/sdk/extension/install-sources.d.ts +43 -5
  132. package/dist/sdk/extension/install-sources.js +36 -2
  133. package/dist/sdk/extension/migrations.d.ts +114 -0
  134. package/dist/sdk/extension/migrations.js +175 -0
  135. package/dist/sdk/extension/scaffold.js +14 -9
  136. package/dist/sdk/extension/source-resolution.d.ts +50 -0
  137. package/dist/sdk/extension/source-resolution.js +66 -0
  138. package/dist/sdk/extension.d.ts +5 -1
  139. package/dist/sdk/extension.js +24 -26
  140. package/dist/sdk/governance/health.js +11 -2
  141. package/dist/sdk/index.d.ts +6 -2
  142. package/dist/sdk/index.js +8 -4
  143. package/dist/sdk/package-migrations.d.ts +10 -0
  144. package/dist/sdk/package-migrations.js +21 -0
  145. package/dist/sdk/runtime.d.ts +2 -0
  146. package/dist/sdk/runtime.js +6 -2
  147. package/docs/COMMANDS.md +9 -0
  148. package/docs/EXTENSIONS.md +2 -2
  149. package/docs/EXTENSION_LIFECYCLE.md +46 -0
  150. package/docs/README.md +1 -0
  151. package/docs/RELEASING.md +33 -20
  152. package/docs/SDK.md +31 -3
  153. package/marketplace.json +2 -2
  154. package/package.json +3 -3
  155. package/packages/pm-beads/package.json +1 -1
  156. package/packages/pm-calendar/package.json +1 -1
  157. package/packages/pm-command-kit/package.json +1 -1
  158. package/packages/pm-digital-twin/package.json +1 -1
  159. package/packages/pm-governance-audit/package.json +1 -1
  160. package/packages/pm-guide-shell/package.json +1 -1
  161. package/packages/pm-kanban/package.json +1 -1
  162. package/packages/pm-lifecycle-hooks/package.json +1 -1
  163. package/packages/pm-linked-test-adapters/package.json +1 -1
  164. package/packages/pm-search-advanced/package.json +1 -1
  165. package/packages/pm-templates/package.json +1 -1
  166. package/packages/pm-todos/package.json +1 -1
  167. package/packages/pm-vcs/package.json +1 -1
  168. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  169. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  170. package/sdk/public-surface.json +218 -20
  171. package/dist/cli-bundle/chunks/append-VXXGOXSG.js +0 -2
  172. package/dist/cli-bundle/chunks/chunk-EGJ4JTUG.js +0 -55
  173. package/dist/cli-bundle/chunks/chunk-FPBQHMFT.js +0 -8
  174. package/dist/cli-bundle/chunks/chunk-GE4KCSZP.js +0 -164
  175. package/dist/cli-bundle/chunks/chunk-YEWNL576.js +0 -2
  176. package/dist/cli-bundle/chunks/close-VZ3OQPN5.js +0 -2
  177. package/dist/cli-bundle/chunks/close-many-SB4TI27P.js +0 -2
  178. package/dist/cli-bundle/chunks/comments-BIF3Q4KY.js +0 -2
  179. package/dist/cli-bundle/chunks/copy-6AI5Z57X.js +0 -2
  180. package/dist/cli-bundle/chunks/delete-ZY2VHQTP.js +0 -2
  181. package/dist/cli-bundle/chunks/focus-DLBNWL7L.js +0 -2
  182. package/dist/cli-bundle/chunks/register-setup-O6AYP6NP.js +0 -2
  183. package/dist/cli-bundle/chunks/restore-ZVCVHTB5.js +0 -2
  184. package/dist/cli-bundle/chunks/update-YHV52CSS.js +0 -2
  185. package/dist/cli-bundle/chunks/update-many-M6YHVNXM.js +0 -2
  186. package/dist/cli-bundle/focused-chunks/chunk-BIMTMOS7.js +0 -4
  187. package/dist/cli-bundle/focused-chunks/chunk-GJ2TG2CW.js +0 -28
  188. package/dist/cli-bundle/focused-chunks/chunk-N5XU5UVK.js +0 -2
@@ -1,5 +1,5 @@
1
1
 
2
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="8d5e0d6f-5ffa-5302-87da-3e741b80b716")}catch(e){}}();
2
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="1d184acd-e639-5b28-a294-98d22de2ebc7")}catch(e){}}();
3
3
  import { collectUsedExtensionCapabilities, normalizeExtensionName, } from "./capability-usage.js";
4
4
  /**
5
5
  * Canonical lifecycle hook kinds paired with their {@link ExtensionHookRegistry}
@@ -77,10 +77,13 @@ export function describeExtensionActivation(activation, options = {}) {
77
77
  ? { renderer_ownership: rendererOwnership }
78
78
  : {}),
79
79
  preflight_overrides: preflight.overrides.filter((entry) => matches(entry.name)).length,
80
+ preflight_ownership: preflight.overrides
81
+ .filter((entry) => matches(entry.name))
82
+ .map((entry) => ({ commands: [...(entry.commands ?? [])] })),
80
83
  };
81
84
  }
82
85
  function sortUnique(values) {
83
86
  return [...new Set(values)].sort((left, right) => left.localeCompare(right));
84
87
  }
85
88
  //# sourceMappingURL=activation-summary.js.map
86
- //# debugId=8d5e0d6f-5ffa-5302-87da-3e741b80b716
89
+ //# debugId=1d184acd-e639-5b28-a294-98d22de2ebc7
@@ -22,4 +22,5 @@ export declare function createExtensionContributionInventory(summary: {
22
22
  renderer_overrides: string[];
23
23
  renderer_ownership?: ExtensionContributionInventory["renderer_ownership"];
24
24
  preflight_overrides: number;
25
+ preflight_ownership?: ExtensionContributionInventory["preflight_ownership"];
25
26
  }): ExtensionContributionInventory;
@@ -4,7 +4,7 @@
4
4
  * Validates and canonicalizes the serializable extension surface inventory.
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]="8ba4e82a-ab38-5527-84cf-ec553f434a22")}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]="2c4e3831-6644-5db3-a28b-1c6a131da2e1")}catch(e){}}();
8
8
  import { normalizeCommandName } from "./extension-runtime-helpers.js";
9
9
  const COMMAND_PATH_FIELDS = new Set([
10
10
  "commands",
@@ -75,6 +75,29 @@ function normalizeRendererOwnership(value) {
75
75
  }
76
76
  return ownership.sort((left, right) => left.format.localeCompare(right.format));
77
77
  }
78
+ /** Validate preflight command ownership without importing extension code. */
79
+ function normalizePreflightOwnership(value) {
80
+ if (!Array.isArray(value))
81
+ return null;
82
+ const ownership = [];
83
+ for (const rawEntry of value) {
84
+ if (typeof rawEntry !== "object" || rawEntry === null)
85
+ return null;
86
+ const commands = rawEntry.commands;
87
+ if (!Array.isArray(commands) ||
88
+ commands.some((command) => typeof command !== "string")) {
89
+ return null;
90
+ }
91
+ ownership.push({
92
+ commands: [
93
+ ...new Set(commands.map((command) => normalizeCommandName(command))),
94
+ ]
95
+ .filter((command) => command.length > 0)
96
+ .sort((left, right) => left.localeCompare(right)),
97
+ });
98
+ }
99
+ return ownership;
100
+ }
78
101
  /** Normalize an optional contribution inventory, returning null for malformed data. */
79
102
  export function normalizeExtensionContributionInventory(value) {
80
103
  if (value === undefined || value === null)
@@ -102,6 +125,13 @@ export function normalizeExtensionContributionInventory(value) {
102
125
  return null;
103
126
  inventory.renderer_ownership = ownership;
104
127
  }
128
+ const rawPreflightOwnership = record.preflight_ownership;
129
+ if (rawPreflightOwnership !== undefined) {
130
+ const ownership = normalizePreflightOwnership(rawPreflightOwnership);
131
+ if (ownership === null)
132
+ return null;
133
+ inventory.preflight_ownership = ownership;
134
+ }
105
135
  return inventory;
106
136
  }
107
137
  /** Project an activation summary into the versioned static inventory contract. */
@@ -131,7 +161,10 @@ export function createExtensionContributionInventory(summary) {
131
161
  ? { renderer_ownership: summary.renderer_ownership }
132
162
  : {}),
133
163
  preflight_overrides: summary.preflight_overrides,
164
+ ...(summary.preflight_ownership
165
+ ? { preflight_ownership: summary.preflight_ownership }
166
+ : {}),
134
167
  };
135
168
  }
136
169
  //# sourceMappingURL=contribution-inventory.js.map
137
- //# debugId=8ba4e82a-ab38-5527-84cf-ec553f434a22
170
+ //# debugId=2c4e3831-6644-5db3-a28b-1c6a131da2e1
@@ -4,7 +4,7 @@
4
4
  * Implements extension runtime contracts and governance for Extension Hook Runtime.
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]="4c40667c-1e20-5813-b2f3-eb4cb966b246")}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]="ac377139-8ce2-58ad-8005-0ac907a9baed")}catch(e){}}();
8
8
  import { cloneCommandOptionsSnapshot, cloneContextSnapshot, cloneGlobalOptionsSnapshot, normalizeCommandName, } from "./extension-runtime-helpers.js";
9
9
  import { stableValueEquals } from "../shared/serialization.js";
10
10
  import { EXIT_CODE } from "../shared/constants.js";
@@ -337,7 +337,6 @@ export async function runParserOverride(parsers, context) {
337
337
  }
338
338
  /** Implements run preflight override for the public runtime surface of this module. */
339
339
  export async function runPreflightOverride(preflight, context) {
340
- const matched = [...preflight.overrides].reverse()[0];
341
340
  const baseContext = {
342
341
  command: normalizeCommandName(context.command),
343
342
  args: cloneContextSnapshot(context.args),
@@ -349,6 +348,9 @@ export async function runPreflightOverride(preflight, context) {
349
348
  pm_root_rel: context.pm_root_rel,
350
349
  };
351
350
  const baseDecision = cloneContextSnapshot(context.decision);
351
+ const matched = [...preflight.overrides]
352
+ .reverse()
353
+ .find((entry) => !entry.commands?.length || entry.commands.includes(baseContext.command));
352
354
  if (!matched) {
353
355
  return {
354
356
  overridden: false,
@@ -693,4 +695,4 @@ export function runRendererOverride(renderers, context) {
693
695
  }
694
696
  }
695
697
  //# sourceMappingURL=extension-hook-runtime.js.map
696
- //# debugId=4c40667c-1e20-5813-b2f3-eb4cb966b246
698
+ //# debugId=ac377139-8ce2-58ad-8005-0ac907a9baed
@@ -162,6 +162,11 @@ export interface ExtensionContributionInventory {
162
162
  }>;
163
163
  /** Number of preflight overrides in the package. */
164
164
  preflight_overrides?: number;
165
+ /** Optional command ownership for each preflight override. Empty commands mean global ownership. */
166
+ preflight_ownership?: Array<{
167
+ /** Command paths on which the override may run. */
168
+ commands: string[];
169
+ }>;
165
170
  }
166
171
  /** Documents the extension manifest payload exchanged by command, SDK, and package integrations. */
167
172
  export interface ExtensionManifest {
@@ -457,6 +462,16 @@ export type CommandHandler = (context: CommandHandlerContext) => unknown;
457
462
  export type ParserOverride = (context: ParserOverrideContext) => ParserOverrideDelta | Promise<ParserOverrideDelta>;
458
463
  /** Restricts preflight override values accepted by command, SDK, and storage contracts. */
459
464
  export type PreflightOverride = (context: PreflightOverrideContext) => PreflightOverrideDelta | Promise<PreflightOverrideDelta>;
465
+ /** Static ownership declaration used to select and diagnose preflight overrides. */
466
+ export interface PreflightOverrideOwnership {
467
+ /** Normalized command paths on which this preflight override may run. */
468
+ commands?: string[];
469
+ }
470
+ /** Declarative preflight override paired with statically inspectable ownership. */
471
+ export interface ScopedPreflightOverrideDefinition extends PreflightOverrideOwnership {
472
+ /** Preflight handler invoked only for a declared command, or globally when unscoped. */
473
+ run: PreflightOverride;
474
+ }
460
475
  /** Explicitly claims or declines one service payload without relying on object identity. */
461
476
  export type ServiceOverrideDecision = {
462
477
  handled: true;
@@ -1065,6 +1080,8 @@ export interface RegisteredExtensionPreflightOverride {
1065
1080
  name: string;
1066
1081
  /** Value that configures or reports run for this contract. */
1067
1082
  run: PreflightOverride;
1083
+ /** Normalized command paths owned by this preflight override. */
1084
+ commands?: string[];
1068
1085
  }
1069
1086
  /** Documents the registered extension service override payload exchanged by command, SDK, and package integrations. */
1070
1087
  export interface RegisteredExtensionServiceOverride {
@@ -1330,7 +1347,7 @@ export interface ExtensionApi {
1330
1347
  /** Value that configures or reports register parser for this contract. */
1331
1348
  registerParser(command: string, override: ParserOverride): void;
1332
1349
  /** Value that configures or reports register preflight for this contract. */
1333
- registerPreflight(override: PreflightOverride): void;
1350
+ registerPreflight(override: PreflightOverride | ScopedPreflightOverrideDefinition): void;
1334
1351
  /** Value that configures or reports register service for this contract. */
1335
1352
  registerService(service: ExtensionServiceName, override: ServiceOverride): void;
1336
1353
  /** Value that configures or reports register flags for this contract. */
@@ -1,6 +1,6 @@
1
1
  /** Public contract for known extension capabilities, shared by SDK and presentation-layer consumers. */
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]="938c39a8-6545-5d8b-b717-69138932d528")}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]="50ad61f1-6719-541c-b4e0-4a88468725cf")}catch(e){}}();
4
4
  export const KNOWN_EXTENSION_CAPABILITIES = [
5
5
  "commands",
6
6
  "renderers",
@@ -99,4 +99,4 @@ export function createDefaultExtensionGovernancePolicy() {
99
99
  };
100
100
  }
101
101
  //# sourceMappingURL=extension-types.js.map
102
- //# debugId=938c39a8-6545-5d8b-b717-69138932d528
102
+ //# debugId=50ad61f1-6719-541c-b4e0-4a88468725cf
@@ -4,7 +4,7 @@
4
4
  * Implements extension runtime contracts and governance for Loader.
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]="ed58c949-c3d3-5a74-9146-05b0a04b58c4")}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]="3d5208e5-0ea5-54a5-82a8-50294b4a0655")}catch(e){}}();
8
8
  import fs from "node:fs/promises";
9
9
  import path from "node:path";
10
10
  import { pathToFileURL } from "node:url";
@@ -17,6 +17,7 @@ import { flattenFlagListValue, isFlagDefaultValueCoercible, resolveFlagValueKind
17
17
  import { KNOWN_ITEM_FIELD_TYPES, normalizeItemFieldType, suggestKnownItemFieldType, } from "./item-field-types.js";
18
18
  import { snapshotExtensionModuleGraph } from "./module-graph-snapshot.js";
19
19
  import { captureExtensionActivationRollback } from "./activation-transaction.js";
20
+ import { collectPreflightCollisionWarnings, normalizePreflightOverride, } from "./preflight-ownership.js";
20
21
  import { assertCommandDefinitionMetadataStrings } from "./command-visibility-tier.js";
21
22
  import { asRegistrationRecord, assertOptionalBooleanField, assertOptionalFlagDefaultField, assertOptionalStringArrayField, assertOptionalStringField, normalizeOptionalStringArrayField, } from "./registration-validation.js";
22
23
  import { describeExtensionLongFlagFailure, findExtensionFlagTokenFailure, } from "./flag-definition-validation.js";
@@ -1675,11 +1676,11 @@ class ExtensionApiRegistrar {
1675
1676
  if (!this.allowRegistration("preflight.override", "registerPreflight", "preflight")) {
1676
1677
  return;
1677
1678
  }
1678
- assertFunctionHandler("registerPreflight override", override);
1679
+ const normalized = normalizePreflightOverride(override);
1679
1680
  this.#preflightRegistry.overrides.push({
1680
1681
  layer: this.#loadedExtension.layer,
1681
1682
  name: this.#loadedExtension.name,
1682
- run: override,
1683
+ ...normalized,
1683
1684
  });
1684
1685
  }
1685
1686
  registerService(service, override) {
@@ -2171,15 +2172,6 @@ function collectParserCollisionWarnings(parsers) {
2171
2172
  }
2172
2173
  return warnings;
2173
2174
  }
2174
- function collectPreflightCollisionWarnings(preflight) {
2175
- if (preflight.overrides.length <= 1) {
2176
- return [];
2177
- }
2178
- const winner = preflight.overrides[preflight.overrides.length - 1];
2179
- return preflight.overrides
2180
- .slice(0, -1)
2181
- .map((displaced) => `extension_preflight_override_collision:${winner.layer}:${winner.name}:${displaced.layer}:${displaced.name}`);
2182
- }
2183
2175
  // Services whose runtime semantics are chain/fall-through (each override gets a chance);
2184
2176
  // for those, registering multiple overrides is by design, not a collision.
2185
2177
  const CHAINED_SERVICE_NAMES = new Set(["output_format"]);
@@ -2320,4 +2312,4 @@ export const _testOnlyLoader = {
2320
2312
  },
2321
2313
  };
2322
2314
  //# sourceMappingURL=loader.js.map
2323
- //# debugId=ed58c949-c3d3-5a74-9146-05b0a04b58c4
2315
+ //# debugId=3d5208e5-0ea5-54a5-82a8-50294b4a0655
@@ -0,0 +1,5 @@
1
+ import type { ExtensionPreflightRegistry, PreflightOverride, RegisteredExtensionPreflightOverride, ScopedPreflightOverrideDefinition } from "./extension-types.js";
2
+ /** Normalize one callback or scoped definition into a registered handler payload. */
3
+ export declare function normalizePreflightOverride(override: PreflightOverride | ScopedPreflightOverrideDefinition): Pick<RegisteredExtensionPreflightOverride, "run" | "commands">;
4
+ /** Report pairwise overlap while permitting disjoint scoped ownership. */
5
+ export declare function collectPreflightCollisionWarnings(preflight: ExtensionPreflightRegistry): string[];
@@ -0,0 +1,42 @@
1
+ /**
2
+ * @module core/extensions/preflight-ownership
3
+ *
4
+ * Normalizes preflight ownership and diagnoses competing registrations.
5
+ */
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]="065f61c6-2123-5a6d-984a-569bb14d6911")}catch(e){}}();
8
+ import { normalizeCommandName } from "./extension-runtime-helpers.js";
9
+ /** Normalize one callback or scoped definition into a registered handler payload. */
10
+ export function normalizePreflightOverride(override) {
11
+ const run = typeof override === "function" ? override : override.run;
12
+ if (typeof run !== "function") {
13
+ throw new TypeError("registerPreflight override requires a function handler");
14
+ }
15
+ const commands = [
16
+ ...new Set((typeof override === "function" ? [] : (override.commands ?? [])).map((command) => {
17
+ if (typeof command !== "string" || command.trim().length === 0) {
18
+ throw new TypeError("registerPreflight ownership.commands must contain non-empty command paths");
19
+ }
20
+ return normalizeCommandName(command);
21
+ })),
22
+ ];
23
+ return { run, ...(commands.length > 0 ? { commands } : {}) };
24
+ }
25
+ /** Report pairwise overlap while permitting disjoint scoped ownership. */
26
+ export function collectPreflightCollisionWarnings(preflight) {
27
+ const warnings = [];
28
+ for (let winnerIndex = 1; winnerIndex < preflight.overrides.length; winnerIndex += 1) {
29
+ const winner = preflight.overrides[winnerIndex];
30
+ for (const displaced of preflight.overrides.slice(0, winnerIndex)) {
31
+ if (winner.commands?.length &&
32
+ displaced.commands?.length &&
33
+ !displaced.commands.some((command) => winner.commands.includes(command))) {
34
+ continue;
35
+ }
36
+ warnings.push(`extension_preflight_override_collision:${winner.layer}:${winner.name}:${displaced.layer}:${displaced.name}`);
37
+ }
38
+ }
39
+ return warnings;
40
+ }
41
+ //# sourceMappingURL=preflight-ownership.js.map
42
+ //# debugId=065f61c6-2123-5a6d-984a-569bb14d6911
@@ -106,6 +106,8 @@ export declare const EXTENSION_ADOPT_ALL_FLAG_CONTRACTS: CliFlagContract[];
106
106
  export declare const EXTENSION_ACTIVATE_FLAG_CONTRACTS: CliFlagContract[];
107
107
  /** Public contract for extension deactivate flag contracts, shared by SDK and presentation-layer consumers. */
108
108
  export declare const EXTENSION_DEACTIVATE_FLAG_CONTRACTS: CliFlagContract[];
109
+ /** Public contract for extension migration flag contracts. */
110
+ export declare const EXTENSION_MIGRATE_FLAG_CONTRACTS: CliFlagContract[];
109
111
  /** Public contract for extension manage flag contracts, shared by SDK and presentation-layer consumers. */
110
112
  export declare const EXTENSION_MANAGE_FLAG_CONTRACTS: CliFlagContract[];
111
113
  /** Public contract for extension reload flag contracts, shared by SDK and presentation-layer consumers. */
@@ -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]="59bc9f68-0b43-5701-b3cf-1c1693a06d3a")}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]="01e8d488-ce63-54cc-848e-e7842a9d873d")}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) {
@@ -623,6 +623,11 @@ export const EXTENSION_ADOPT_ALL_FLAG_CONTRACTS = EXTENSION_SCOPE_FLAG_CONTRACTS
623
623
  export const EXTENSION_ACTIVATE_FLAG_CONTRACTS = EXTENSION_SCOPE_FLAG_CONTRACTS;
624
624
  /** Public contract for extension deactivate flag contracts, shared by SDK and presentation-layer consumers. */
625
625
  export const EXTENSION_DEACTIVATE_FLAG_CONTRACTS = EXTENSION_SCOPE_FLAG_CONTRACTS;
626
+ /** Public contract for extension migration flag contracts. */
627
+ export const EXTENSION_MIGRATE_FLAG_CONTRACTS = [
628
+ ...EXTENSION_SCOPE_FLAG_CONTRACTS,
629
+ { flag: "--dry-run" },
630
+ ];
626
631
  /** Public contract for extension manage flag contracts, shared by SDK and presentation-layer consumers. */
627
632
  export const EXTENSION_MANAGE_FLAG_CONTRACTS = [
628
633
  ...EXTENSION_SCOPE_FLAG_CONTRACTS,
@@ -1677,6 +1682,7 @@ const EXTENSION_LIFECYCLE_FLAG_CONTRACTS_BY_SUBCOMMAND = new Map([
1677
1682
  ["adopt-all", EXTENSION_ADOPT_ALL_FLAG_CONTRACTS],
1678
1683
  ["activate", EXTENSION_ACTIVATE_FLAG_CONTRACTS],
1679
1684
  ["deactivate", EXTENSION_DEACTIVATE_FLAG_CONTRACTS],
1685
+ ["migrate", EXTENSION_MIGRATE_FLAG_CONTRACTS],
1680
1686
  ]);
1681
1687
  function normalizeCommandNameForContracts(commandName) {
1682
1688
  if (typeof commandName !== "string") {
@@ -1745,4 +1751,4 @@ export function toCompletionFlagString(flagContracts, includeGlobal = true) {
1745
1751
  return normalizeUniqueStringList(all).join(" ");
1746
1752
  }
1747
1753
  //# sourceMappingURL=flag-contracts.js.map
1748
- //# debugId=59bc9f68-0b43-5701-b3cf-1c1693a06d3a
1754
+ //# debugId=01e8d488-ce63-54cc-848e-e7842a9d873d
@@ -4,10 +4,10 @@
4
4
  * Implements the pm contracts command surface and its agent-facing runtime behavior.
5
5
  */
6
6
 
7
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="d13ab001-705f-5443-9394-401069aa43fb")}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]="e6dd81d6-95d6-51e6-a0c9-ba7bb5372457")}catch(e){}}();
8
8
  import { EXIT_CODE, SETTINGS_DEFAULTS, PmCliError, activateExtensions, getActiveExtensionRegistrations, loadExtensions, pathExists, commandOptionFlagLabel, resolveCommandOptionPolicyState, resolveItemTypeRegistry, resolveRuntimeFieldRegistry, resolveRuntimeStatusRegistry, getSettingsPath, resolvePmRoot, readSettings, } from "../runtime-primitives.js";
9
9
  import { buildMcpToolContracts, } from "../../mcp/tool-definitions.js";
10
- import { ACTIVITY_COMMANDER_STRING_OPTION_CONTRACTS, ACTIVITY_FLAG_CONTRACTS, AGGREGATE_FLAG_CONTRACTS, APPEND_FLAG_CONTRACTS, CALENDAR_COMMANDER_STRING_OPTION_CONTRACTS, CALENDAR_FLAG_CONTRACTS, CLAIM_FLAG_CONTRACTS, CLOSE_TASK_FLAG_CONTRACTS, COMMENTS_FLAG_CONTRACTS, CLOSE_FLAG_CONTRACTS, CLOSE_MANY_FLAG_CONTRACTS, COMPLETION_FLAG_CONTRACTS, CONFIG_FLAG_CONTRACTS, CONTRACTS_FLAG_CONTRACTS, CONTEXT_COMMANDER_STRING_OPTION_CONTRACTS, CONTEXT_FLAG_CONTRACTS, CREATE_COMMANDER_REPEATABLE_OPTION_CONTRACTS, CREATE_COMMANDER_STRING_OPTION_CONTRACTS, CREATE_FLAG_CONTRACTS, DELETE_FLAG_CONTRACTS, DEPS_FLAG_CONTRACTS, GRAPH_FLAG_CONTRACTS, DOCS_FLAG_CONTRACTS, EXTENSION_ACTIVATE_FLAG_CONTRACTS, EXTENSION_ADOPT_ALL_FLAG_CONTRACTS, EXTENSION_ADOPT_FLAG_CONTRACTS, EXTENSION_CATALOG_FLAG_CONTRACTS, EXTENSION_DEACTIVATE_FLAG_CONTRACTS, EXTENSION_DESCRIBE_FLAG_CONTRACTS, EXTENSION_DOCTOR_FLAG_CONTRACTS, EXTENSION_EXPLORE_FLAG_CONTRACTS, EXTENSION_FLAG_CONTRACTS, EXTENSION_INIT_FLAG_CONTRACTS, EXTENSION_INSTALL_FLAG_CONTRACTS, EXTENSION_MANAGE_FLAG_CONTRACTS, EXTENSION_RELOAD_FLAG_CONTRACTS, EXTENSION_UNINSTALL_FLAG_CONTRACTS, FILES_FLAG_CONTRACTS, GC_FLAG_CONTRACTS, GET_FLAG_CONTRACTS, GUIDE_FLAG_CONTRACTS, GLOBAL_FLAG_CONTRACTS, HEALTH_FLAG_CONTRACTS, HISTORY_FLAG_CONTRACTS, HISTORY_COMPACT_FLAG_CONTRACTS, HISTORY_REDACT_FLAG_CONTRACTS, HISTORY_REPAIR_FLAG_CONTRACTS, HISTORY_AUTHOR_ACKNOWLEDGE_FLAG_CONTRACTS, INSTALL_FLAG_CONTRACTS, INIT_FLAG_CONTRACTS, ITEM_COMPLETE_FLAG_CONTRACTS, ITEM_MUTATE_FLAG_CONTRACTS, LEARNINGS_FLAG_CONTRACTS, LIST_COMMANDER_STRING_OPTION_CONTRACTS, LIST_FILTER_FLAG_CONTRACTS, MERGE_FLAG_CONTRACTS, NOTES_FLAG_CONTRACTS, PACKAGE_FLAG_CONTRACTS, PACKAGE_INIT_FLAG_CONTRACTS, PM_EXTENSION_CAPABILITY_CONTRACTS, PM_EXTENSION_POLICY_MODE_CONTRACTS, PM_EXTENSION_POLICY_SURFACE_CONTRACTS, PM_EXTENSION_SANDBOX_PROFILE_CONTRACTS, PM_EXTENSION_SERVICE_NAME_CONTRACTS, PM_EXTENSION_TRUST_MODE_CONTRACTS, PM_OUTPUT_DEGRADATION_STEPS, PLAN_FLAG_CONTRACTS, PM_CORE_COMMAND_NAMES, PM_TOOL_ACTIONS, PM_TOOL_PARAMETERS_SCHEMA, REINDEX_FLAG_CONTRACTS, RELEASE_FLAG_CONTRACTS, RESTORE_FLAG_CONTRACTS, SCHEMA_FLAG_CONTRACTS, PROFILE_FLAG_CONTRACTS, SEARCH_COMMANDER_STRING_OPTION_CONTRACTS, EVAL_FLAG_CONTRACTS, WORKSPACE_FLAG_CONTRACTS, NEXT_FLAG_CONTRACTS, SEARCH_FLAG_CONTRACTS, STATS_FLAG_CONTRACTS, DUPLICATES_FLAG_CONTRACTS, START_TASK_FLAG_CONTRACTS, PAUSE_TASK_FLAG_CONTRACTS, TELEMETRY_FLAG_CONTRACTS, TEST_ALL_FLAG_CONTRACTS, TEST_FLAG_CONTRACTS, TEST_RUNS_FLAG_CONTRACTS, UPDATE_COMMANDER_REPEATABLE_OPTION_CONTRACTS, UPDATE_COMMANDER_STRING_OPTION_CONTRACTS, UPDATE_FLAG_CONTRACTS, UPDATE_MANY_FLAG_CONTRACTS, UPGRADE_FLAG_CONTRACTS, VALIDATE_FLAG_CONTRACTS, compactFlagAliasContracts, resolvePmCommandOutputBudget, } from "../cli-contracts.js";
10
+ import { ACTIVITY_COMMANDER_STRING_OPTION_CONTRACTS, ACTIVITY_FLAG_CONTRACTS, AGGREGATE_FLAG_CONTRACTS, APPEND_FLAG_CONTRACTS, CALENDAR_COMMANDER_STRING_OPTION_CONTRACTS, CALENDAR_FLAG_CONTRACTS, CLAIM_FLAG_CONTRACTS, CLOSE_TASK_FLAG_CONTRACTS, COMMENTS_FLAG_CONTRACTS, CLOSE_FLAG_CONTRACTS, CLOSE_MANY_FLAG_CONTRACTS, COMPLETION_FLAG_CONTRACTS, CONFIG_FLAG_CONTRACTS, CONTRACTS_FLAG_CONTRACTS, CONTEXT_COMMANDER_STRING_OPTION_CONTRACTS, CONTEXT_FLAG_CONTRACTS, CREATE_COMMANDER_REPEATABLE_OPTION_CONTRACTS, CREATE_COMMANDER_STRING_OPTION_CONTRACTS, CREATE_FLAG_CONTRACTS, DELETE_FLAG_CONTRACTS, DEPS_FLAG_CONTRACTS, GRAPH_FLAG_CONTRACTS, DOCS_FLAG_CONTRACTS, EXTENSION_ACTIVATE_FLAG_CONTRACTS, EXTENSION_ADOPT_ALL_FLAG_CONTRACTS, EXTENSION_ADOPT_FLAG_CONTRACTS, EXTENSION_CATALOG_FLAG_CONTRACTS, EXTENSION_DEACTIVATE_FLAG_CONTRACTS, EXTENSION_DESCRIBE_FLAG_CONTRACTS, EXTENSION_DOCTOR_FLAG_CONTRACTS, EXTENSION_EXPLORE_FLAG_CONTRACTS, EXTENSION_FLAG_CONTRACTS, EXTENSION_INIT_FLAG_CONTRACTS, EXTENSION_INSTALL_FLAG_CONTRACTS, EXTENSION_MANAGE_FLAG_CONTRACTS, EXTENSION_MIGRATE_FLAG_CONTRACTS, EXTENSION_RELOAD_FLAG_CONTRACTS, EXTENSION_UNINSTALL_FLAG_CONTRACTS, FILES_FLAG_CONTRACTS, GC_FLAG_CONTRACTS, GET_FLAG_CONTRACTS, GUIDE_FLAG_CONTRACTS, GLOBAL_FLAG_CONTRACTS, HEALTH_FLAG_CONTRACTS, HISTORY_FLAG_CONTRACTS, HISTORY_COMPACT_FLAG_CONTRACTS, HISTORY_REDACT_FLAG_CONTRACTS, HISTORY_REPAIR_FLAG_CONTRACTS, HISTORY_AUTHOR_ACKNOWLEDGE_FLAG_CONTRACTS, INSTALL_FLAG_CONTRACTS, INIT_FLAG_CONTRACTS, ITEM_COMPLETE_FLAG_CONTRACTS, ITEM_MUTATE_FLAG_CONTRACTS, LEARNINGS_FLAG_CONTRACTS, LIST_COMMANDER_STRING_OPTION_CONTRACTS, LIST_FILTER_FLAG_CONTRACTS, MERGE_FLAG_CONTRACTS, NOTES_FLAG_CONTRACTS, PACKAGE_FLAG_CONTRACTS, PACKAGE_INIT_FLAG_CONTRACTS, PM_EXTENSION_CAPABILITY_CONTRACTS, PM_EXTENSION_POLICY_MODE_CONTRACTS, PM_EXTENSION_POLICY_SURFACE_CONTRACTS, PM_EXTENSION_SANDBOX_PROFILE_CONTRACTS, PM_EXTENSION_SERVICE_NAME_CONTRACTS, PM_EXTENSION_TRUST_MODE_CONTRACTS, PM_OUTPUT_DEGRADATION_STEPS, PLAN_FLAG_CONTRACTS, PM_CORE_COMMAND_NAMES, PM_TOOL_ACTIONS, PM_TOOL_PARAMETERS_SCHEMA, REINDEX_FLAG_CONTRACTS, RELEASE_FLAG_CONTRACTS, RESTORE_FLAG_CONTRACTS, SCHEMA_FLAG_CONTRACTS, PROFILE_FLAG_CONTRACTS, SEARCH_COMMANDER_STRING_OPTION_CONTRACTS, EVAL_FLAG_CONTRACTS, WORKSPACE_FLAG_CONTRACTS, NEXT_FLAG_CONTRACTS, SEARCH_FLAG_CONTRACTS, STATS_FLAG_CONTRACTS, DUPLICATES_FLAG_CONTRACTS, START_TASK_FLAG_CONTRACTS, PAUSE_TASK_FLAG_CONTRACTS, TELEMETRY_FLAG_CONTRACTS, TEST_ALL_FLAG_CONTRACTS, TEST_FLAG_CONTRACTS, TEST_RUNS_FLAG_CONTRACTS, UPDATE_COMMANDER_REPEATABLE_OPTION_CONTRACTS, UPDATE_COMMANDER_STRING_OPTION_CONTRACTS, UPDATE_FLAG_CONTRACTS, UPDATE_MANY_FLAG_CONTRACTS, UPGRADE_FLAG_CONTRACTS, VALIDATE_FLAG_CONTRACTS, compactFlagAliasContracts, resolvePmCommandOutputBudget, } from "../cli-contracts.js";
11
11
  import { GOVERNANCE_CLOSE_VALIDATION_DEFAULT_VALUES, GOVERNANCE_CREATE_MODE_DEFAULT_VALUES, GOVERNANCE_OWNERSHIP_ENFORCEMENT_VALUES, GOVERNANCE_WORKFLOW_ENFORCEMENT_VALUES, } from "../../types.js";
12
12
  import { BRIEF_LIST_FIELDS, DEFAULT_COMPACT_LIST_FIELDS, LIST_COMMAND_DEFAULT_PROJECTIONS, } from "../query/list.js";
13
13
  import { getActiveContextIntentContracts, } from "../context-intent-contracts.js";
@@ -286,6 +286,7 @@ const EXTENSION_LIFECYCLE_FLAG_CONTRACTS = [
286
286
  ["adopt-all", EXTENSION_ADOPT_ALL_FLAG_CONTRACTS],
287
287
  ["activate", EXTENSION_ACTIVATE_FLAG_CONTRACTS],
288
288
  ["deactivate", EXTENSION_DEACTIVATE_FLAG_CONTRACTS],
289
+ ["migrate", EXTENSION_MIGRATE_FLAG_CONTRACTS],
289
290
  ];
290
291
  const PACKAGE_LIFECYCLE_FLAG_CONTRACTS = EXTENSION_LIFECYCLE_FLAG_CONTRACTS.map(([subcommand, flags]) => subcommand === "init"
291
292
  ? [subcommand, PACKAGE_INIT_FLAG_CONTRACTS]
@@ -1820,4 +1821,4 @@ export const _testOnlyContractsCommand = {
1820
1821
  toRuntimeShortFlagToken,
1821
1822
  };
1822
1823
  //# sourceMappingURL=runtime-contracts.js.map
1823
- //# debugId=d13ab001-705f-5443-9394-401069aa43fb
1824
+ //# debugId=e6dd81d6-95d6-51e6-a0c9-ba7bb5372457
@@ -19,7 +19,7 @@ export type { PmExtensionCapabilityContract, PmExtensionServiceNameContract, PmE
19
19
  export { TOOL_LIST_FILTER_OPTION_CONTRACTS, TOOL_AGGREGATE_OPTION_CONTRACTS, TOOL_SEARCH_FILTER_OPTION_CONTRACTS, TOOL_SHARED_CREATE_UPDATE_OPTION_CONTRACTS, TOOL_CREATE_OPTION_CONTRACTS, TOOL_UPDATE_OPTION_CONTRACTS, TOOL_UPDATE_MANY_FILTER_OPTION_CONTRACTS, TOOL_CLOSE_MANY_FILTER_OPTION_CONTRACTS, TOOL_CALENDAR_OPTION_CONTRACTS, TOOL_ACTIVITY_OPTION_CONTRACTS, TOOL_CONTEXT_OPTION_CONTRACTS, TOOL_DEPS_OPTION_CONTRACTS, TOOL_GRAPH_OPTION_CONTRACTS, TOOL_BULK_MUTATION_FILTER_OPTION_CONTRACT_SOURCE, TOOL_CREATE_OPTION_CONTRACT_SOURCE, TOOL_SHARED_CREATE_UPDATE_OPTION_CONTRACT_SOURCE, TOOL_UPDATE_OPTION_CONTRACT_SOURCE, } from "./cli-contracts/tool-option-contracts.js";
20
20
  export type { OptionsFromContracts, PmBulkMutationControlOptions, PmBulkMutationFilterOptions, PmCloseActionOptions, PmCloseManyActionOptions, PmCreateActionOptions, PmMutationAttributionOptions, PmOptionScalar, PmUpdateActionOptions, PmUpdateManyActionOptions, } from "./cli-contracts/typed-action-inputs.js";
21
21
  export type { CliFlagContract, ToolOptionFlagContract, } from "./cli-contracts/flag-contracts.js";
22
- export { withFlagAliasMetadata, compactFlagAliasContracts, SUBCOMMAND_GLOBAL_FLAG_CONTRACTS, GLOBAL_FLAG_CONTRACTS, LIST_FILTER_FLAG_CONTRACTS, AGGREGATE_FLAG_CONTRACTS, COMMENTS_FLAG_CONTRACTS, NOTES_FLAG_CONTRACTS, LEARNINGS_FLAG_CONTRACTS, FILES_FLAG_CONTRACTS, DOCS_FLAG_CONTRACTS, HISTORY_FLAG_CONTRACTS, HISTORY_REDACT_FLAG_CONTRACTS, HISTORY_REPAIR_FLAG_CONTRACTS, HISTORY_AUTHOR_ACKNOWLEDGE_FLAG_CONTRACTS, HISTORY_COMPACT_FLAG_CONTRACTS, MERGE_FLAG_CONTRACTS, SCHEMA_FLAG_CONTRACTS, PROFILE_FLAG_CONTRACTS, PLAN_FLAG_CONTRACTS, INIT_FLAG_CONTRACTS, CONFIG_FLAG_CONTRACTS, EXTENSION_FLAG_CONTRACTS, EXTENSION_SCOPE_FLAG_CONTRACTS, EXTENSION_INIT_FLAG_CONTRACTS, PACKAGE_FLAG_CONTRACTS, PACKAGE_INIT_FLAG_CONTRACTS, EXTENSION_INSTALL_FLAG_CONTRACTS, EXTENSION_UNINSTALL_FLAG_CONTRACTS, EXTENSION_EXPLORE_FLAG_CONTRACTS, EXTENSION_DESCRIBE_FLAG_CONTRACTS, EXTENSION_ADOPT_ALL_FLAG_CONTRACTS, EXTENSION_ACTIVATE_FLAG_CONTRACTS, EXTENSION_DEACTIVATE_FLAG_CONTRACTS, EXTENSION_MANAGE_FLAG_CONTRACTS, EXTENSION_RELOAD_FLAG_CONTRACTS, EXTENSION_DOCTOR_FLAG_CONTRACTS, EXTENSION_CATALOG_FLAG_CONTRACTS, EXTENSION_ADOPT_FLAG_CONTRACTS, INSTALL_FLAG_CONTRACTS, UPGRADE_FLAG_CONTRACTS, REINDEX_FLAG_CONTRACTS, CLOSE_FLAG_CONTRACTS, CLOSE_MANY_FLAG_CONTRACTS, APPEND_FLAG_CONTRACTS, CLAIM_FLAG_CONTRACTS, RESTORE_FLAG_CONTRACTS, DELETE_FLAG_CONTRACTS, RELEASE_FLAG_CONTRACTS, START_TASK_FLAG_CONTRACTS, PAUSE_TASK_FLAG_CONTRACTS, CLOSE_TASK_FLAG_CONTRACTS, MEET_FLAG_CONTRACTS, EVENT_FLAG_CONTRACTS, EVENTS_FLAG_CONTRACTS, REMIND_FLAG_CONTRACTS, TEST_FLAG_CONTRACTS, TEST_ALL_FLAG_CONTRACTS, TELEMETRY_FLAG_CONTRACTS, TEST_RUNS_FLAG_CONTRACTS, GC_FLAG_CONTRACTS, STATS_FLAG_CONTRACTS, DUPLICATES_FLAG_CONTRACTS, HEALTH_FLAG_CONTRACTS, VALIDATE_FLAG_CONTRACTS, CREATE_FLAG_CONTRACTS, ITEM_COMPLETE_FLAG_CONTRACTS, ITEM_MUTATE_FLAG_CONTRACTS, COPY_FLAG_CONTRACTS, FOCUS_FLAG_CONTRACTS, UPDATE_FLAG_CONTRACTS, UPDATE_MANY_FLAG_CONTRACTS, CALENDAR_FLAG_CONTRACTS, ACTIVITY_FLAG_CONTRACTS, CONTEXT_FLAG_CONTRACTS, GET_FLAG_CONTRACTS, GUIDE_FLAG_CONTRACTS, DEPS_FLAG_CONTRACTS, GRAPH_FLAG_CONTRACTS, EVAL_FLAG_CONTRACTS, WORKSPACE_FLAG_CONTRACTS, NEXT_FLAG_CONTRACTS, SEARCH_FLAG_CONTRACTS, CONTRACTS_FLAG_CONTRACTS, COMPLETION_FLAG_CONTRACTS, hasSubcommandFlagContractsForCommand, resolveSubcommandFlagContractsForCommand, toCompletionFlagString, } from "./cli-contracts/flag-contracts.js";
22
+ export { withFlagAliasMetadata, compactFlagAliasContracts, SUBCOMMAND_GLOBAL_FLAG_CONTRACTS, GLOBAL_FLAG_CONTRACTS, LIST_FILTER_FLAG_CONTRACTS, AGGREGATE_FLAG_CONTRACTS, COMMENTS_FLAG_CONTRACTS, NOTES_FLAG_CONTRACTS, LEARNINGS_FLAG_CONTRACTS, FILES_FLAG_CONTRACTS, DOCS_FLAG_CONTRACTS, HISTORY_FLAG_CONTRACTS, HISTORY_REDACT_FLAG_CONTRACTS, HISTORY_REPAIR_FLAG_CONTRACTS, HISTORY_AUTHOR_ACKNOWLEDGE_FLAG_CONTRACTS, HISTORY_COMPACT_FLAG_CONTRACTS, MERGE_FLAG_CONTRACTS, SCHEMA_FLAG_CONTRACTS, PROFILE_FLAG_CONTRACTS, PLAN_FLAG_CONTRACTS, INIT_FLAG_CONTRACTS, CONFIG_FLAG_CONTRACTS, EXTENSION_FLAG_CONTRACTS, EXTENSION_SCOPE_FLAG_CONTRACTS, EXTENSION_INIT_FLAG_CONTRACTS, EXTENSION_MIGRATE_FLAG_CONTRACTS, PACKAGE_FLAG_CONTRACTS, PACKAGE_INIT_FLAG_CONTRACTS, EXTENSION_INSTALL_FLAG_CONTRACTS, EXTENSION_UNINSTALL_FLAG_CONTRACTS, EXTENSION_EXPLORE_FLAG_CONTRACTS, EXTENSION_DESCRIBE_FLAG_CONTRACTS, EXTENSION_ADOPT_ALL_FLAG_CONTRACTS, EXTENSION_ACTIVATE_FLAG_CONTRACTS, EXTENSION_DEACTIVATE_FLAG_CONTRACTS, EXTENSION_MANAGE_FLAG_CONTRACTS, EXTENSION_RELOAD_FLAG_CONTRACTS, EXTENSION_DOCTOR_FLAG_CONTRACTS, EXTENSION_CATALOG_FLAG_CONTRACTS, EXTENSION_ADOPT_FLAG_CONTRACTS, INSTALL_FLAG_CONTRACTS, UPGRADE_FLAG_CONTRACTS, REINDEX_FLAG_CONTRACTS, CLOSE_FLAG_CONTRACTS, CLOSE_MANY_FLAG_CONTRACTS, APPEND_FLAG_CONTRACTS, CLAIM_FLAG_CONTRACTS, RESTORE_FLAG_CONTRACTS, DELETE_FLAG_CONTRACTS, RELEASE_FLAG_CONTRACTS, START_TASK_FLAG_CONTRACTS, PAUSE_TASK_FLAG_CONTRACTS, CLOSE_TASK_FLAG_CONTRACTS, MEET_FLAG_CONTRACTS, EVENT_FLAG_CONTRACTS, EVENTS_FLAG_CONTRACTS, REMIND_FLAG_CONTRACTS, TEST_FLAG_CONTRACTS, TEST_ALL_FLAG_CONTRACTS, TELEMETRY_FLAG_CONTRACTS, TEST_RUNS_FLAG_CONTRACTS, GC_FLAG_CONTRACTS, STATS_FLAG_CONTRACTS, DUPLICATES_FLAG_CONTRACTS, HEALTH_FLAG_CONTRACTS, VALIDATE_FLAG_CONTRACTS, CREATE_FLAG_CONTRACTS, ITEM_COMPLETE_FLAG_CONTRACTS, ITEM_MUTATE_FLAG_CONTRACTS, COPY_FLAG_CONTRACTS, FOCUS_FLAG_CONTRACTS, UPDATE_FLAG_CONTRACTS, UPDATE_MANY_FLAG_CONTRACTS, CALENDAR_FLAG_CONTRACTS, ACTIVITY_FLAG_CONTRACTS, CONTEXT_FLAG_CONTRACTS, GET_FLAG_CONTRACTS, GUIDE_FLAG_CONTRACTS, DEPS_FLAG_CONTRACTS, GRAPH_FLAG_CONTRACTS, EVAL_FLAG_CONTRACTS, WORKSPACE_FLAG_CONTRACTS, NEXT_FLAG_CONTRACTS, SEARCH_FLAG_CONTRACTS, CONTRACTS_FLAG_CONTRACTS, COMPLETION_FLAG_CONTRACTS, hasSubcommandFlagContractsForCommand, resolveSubcommandFlagContractsForCommand, toCompletionFlagString, } from "./cli-contracts/flag-contracts.js";
23
23
  export type { PmActionSchemaContract } from "./cli-contracts/tool-schema.js";
24
24
  export { buildPmActionToolInputSchema, PM_TOOL_RESERVED_CUSTOM_FIELD_PROPERTIES, resolvePmToolCustomFieldCollision, CLOSE_ACTION_OPTION_KEYS, PLAN_CREATE_METADATA_PARAMETER_KEYS, PM_TOOL_ACTION_PARAMETER_CONTRACTS, PM_TOOL_PARAMETERS_SCHEMA_VERSION, PM_TOOL_PARAMETERS_SCHEMA_MAJOR, PM_PROVIDER_TOOL_PARAMETERS_SCHEMA_VERSION, PM_TOOL_PARAMETERS_SCHEMA, PM_PROVIDER_TOOL_PARAMETERS_SCHEMA, _testOnlyCliContracts, } from "./cli-contracts/tool-schema.js";
25
25
  export type { PmActionToolInputSchemaOptions, PmToolCustomFieldCollision, } from "./cli-contracts/tool-schema.js";
@@ -1,5 +1,5 @@
1
1
 
2
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="93c3ffe8-6735-5139-b91f-59002f74a670")}catch(e){}}();
2
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="8071fd9d-649a-5fce-b342-84b11066d559")}catch(e){}}();
3
3
  export { EXECUTABLE_COMMAND_ALIASES } from "./cli-contracts/command-aliases.js";
4
4
  export { ACTIVITY_COMMANDER_STRING_OPTION_CONTRACTS, CALENDAR_COMMANDER_STRING_OPTION_CONTRACTS, CONTEXT_COMMANDER_STRING_OPTION_CONTRACTS, LIST_COMMANDER_STRING_OPTION_CONTRACTS, NEXT_COMMANDER_STRING_OPTION_CONTRACTS, SEARCH_COMMANDER_STRING_OPTION_CONTRACTS, readFirstValueFromCommanderOptions, readFirstStringFromCommanderOptions, readStringArrayFromCommanderOptions, } from "./cli-contracts/commander-types.js";
5
5
  export { CREATE_COMMANDER_OPTION_REGISTRATION_CONTRACTS, CREATE_COMMANDER_REPEATABLE_OPTION_CONTRACTS, CREATE_COMMANDER_STRING_OPTION_CONTRACTS, UPDATE_COMMANDER_OPTION_REGISTRATION_CONTRACTS, UPDATE_COMMANDER_REPEATABLE_OPTION_CONTRACTS, UPDATE_COMMANDER_STRING_OPTION_CONTRACTS, } from "./cli-contracts/commander-mutation-options.js";
@@ -9,9 +9,9 @@ export { CREATE_COMMANDER_OPTION_REGISTRATION_CONTRACTS, CREATE_COMMANDER_REPEAT
9
9
  // keep importing everything from "./cli-contracts.js" unchanged.
10
10
  export { PM_EXTENSION_CAPABILITY_CONTRACTS, PM_EXTENSION_SERVICE_NAME_CONTRACTS, PM_EXTENSION_POLICY_MODE_CONTRACTS, PM_EXTENSION_TRUST_MODE_CONTRACTS, PM_EXTENSION_SANDBOX_PROFILE_CONTRACTS, PM_EXTENSION_POLICY_SURFACE_CONTRACTS, PM_CORE_COMMAND_NAMES, PM_CLI_ONLY_TOOL_ACTION_WAIVERS, PM_EXTENSION_PACKAGE_ACTION_SUBCOMMANDS, PM_TOOL_ACTIONS, analyzePmToolActionParity, isPmToolAction, isPmExtensionCapabilityContract, isPmExtensionServiceNameContract, isPmExtensionPolicyModeContract, isPmExtensionPolicySurfaceContract, } from "./cli-contracts/enum-contracts.js";
11
11
  export { TOOL_LIST_FILTER_OPTION_CONTRACTS, TOOL_AGGREGATE_OPTION_CONTRACTS, TOOL_SEARCH_FILTER_OPTION_CONTRACTS, TOOL_SHARED_CREATE_UPDATE_OPTION_CONTRACTS, TOOL_CREATE_OPTION_CONTRACTS, TOOL_UPDATE_OPTION_CONTRACTS, TOOL_UPDATE_MANY_FILTER_OPTION_CONTRACTS, TOOL_CLOSE_MANY_FILTER_OPTION_CONTRACTS, TOOL_CALENDAR_OPTION_CONTRACTS, TOOL_ACTIVITY_OPTION_CONTRACTS, TOOL_CONTEXT_OPTION_CONTRACTS, TOOL_DEPS_OPTION_CONTRACTS, TOOL_GRAPH_OPTION_CONTRACTS, TOOL_BULK_MUTATION_FILTER_OPTION_CONTRACT_SOURCE, TOOL_CREATE_OPTION_CONTRACT_SOURCE, TOOL_SHARED_CREATE_UPDATE_OPTION_CONTRACT_SOURCE, TOOL_UPDATE_OPTION_CONTRACT_SOURCE, } from "./cli-contracts/tool-option-contracts.js";
12
- export { withFlagAliasMetadata, compactFlagAliasContracts, SUBCOMMAND_GLOBAL_FLAG_CONTRACTS, GLOBAL_FLAG_CONTRACTS, LIST_FILTER_FLAG_CONTRACTS, AGGREGATE_FLAG_CONTRACTS, COMMENTS_FLAG_CONTRACTS, NOTES_FLAG_CONTRACTS, LEARNINGS_FLAG_CONTRACTS, FILES_FLAG_CONTRACTS, DOCS_FLAG_CONTRACTS, HISTORY_FLAG_CONTRACTS, HISTORY_REDACT_FLAG_CONTRACTS, HISTORY_REPAIR_FLAG_CONTRACTS, HISTORY_AUTHOR_ACKNOWLEDGE_FLAG_CONTRACTS, HISTORY_COMPACT_FLAG_CONTRACTS, MERGE_FLAG_CONTRACTS, SCHEMA_FLAG_CONTRACTS, PROFILE_FLAG_CONTRACTS, PLAN_FLAG_CONTRACTS, INIT_FLAG_CONTRACTS, CONFIG_FLAG_CONTRACTS, EXTENSION_FLAG_CONTRACTS, EXTENSION_SCOPE_FLAG_CONTRACTS, EXTENSION_INIT_FLAG_CONTRACTS, PACKAGE_FLAG_CONTRACTS, PACKAGE_INIT_FLAG_CONTRACTS, EXTENSION_INSTALL_FLAG_CONTRACTS, EXTENSION_UNINSTALL_FLAG_CONTRACTS, EXTENSION_EXPLORE_FLAG_CONTRACTS, EXTENSION_DESCRIBE_FLAG_CONTRACTS, EXTENSION_ADOPT_ALL_FLAG_CONTRACTS, EXTENSION_ACTIVATE_FLAG_CONTRACTS, EXTENSION_DEACTIVATE_FLAG_CONTRACTS, EXTENSION_MANAGE_FLAG_CONTRACTS, EXTENSION_RELOAD_FLAG_CONTRACTS, EXTENSION_DOCTOR_FLAG_CONTRACTS, EXTENSION_CATALOG_FLAG_CONTRACTS, EXTENSION_ADOPT_FLAG_CONTRACTS, INSTALL_FLAG_CONTRACTS, UPGRADE_FLAG_CONTRACTS, REINDEX_FLAG_CONTRACTS, CLOSE_FLAG_CONTRACTS, CLOSE_MANY_FLAG_CONTRACTS, APPEND_FLAG_CONTRACTS, CLAIM_FLAG_CONTRACTS, RESTORE_FLAG_CONTRACTS, DELETE_FLAG_CONTRACTS, RELEASE_FLAG_CONTRACTS, START_TASK_FLAG_CONTRACTS, PAUSE_TASK_FLAG_CONTRACTS, CLOSE_TASK_FLAG_CONTRACTS, MEET_FLAG_CONTRACTS, EVENT_FLAG_CONTRACTS, EVENTS_FLAG_CONTRACTS, REMIND_FLAG_CONTRACTS, TEST_FLAG_CONTRACTS, TEST_ALL_FLAG_CONTRACTS, TELEMETRY_FLAG_CONTRACTS, TEST_RUNS_FLAG_CONTRACTS, GC_FLAG_CONTRACTS, STATS_FLAG_CONTRACTS, DUPLICATES_FLAG_CONTRACTS, HEALTH_FLAG_CONTRACTS, VALIDATE_FLAG_CONTRACTS, CREATE_FLAG_CONTRACTS, ITEM_COMPLETE_FLAG_CONTRACTS, ITEM_MUTATE_FLAG_CONTRACTS, COPY_FLAG_CONTRACTS, FOCUS_FLAG_CONTRACTS, UPDATE_FLAG_CONTRACTS, UPDATE_MANY_FLAG_CONTRACTS, CALENDAR_FLAG_CONTRACTS, ACTIVITY_FLAG_CONTRACTS, CONTEXT_FLAG_CONTRACTS, GET_FLAG_CONTRACTS, GUIDE_FLAG_CONTRACTS, DEPS_FLAG_CONTRACTS, GRAPH_FLAG_CONTRACTS, EVAL_FLAG_CONTRACTS, WORKSPACE_FLAG_CONTRACTS, NEXT_FLAG_CONTRACTS, SEARCH_FLAG_CONTRACTS, CONTRACTS_FLAG_CONTRACTS, COMPLETION_FLAG_CONTRACTS, hasSubcommandFlagContractsForCommand, resolveSubcommandFlagContractsForCommand, toCompletionFlagString, } from "./cli-contracts/flag-contracts.js";
12
+ export { withFlagAliasMetadata, compactFlagAliasContracts, SUBCOMMAND_GLOBAL_FLAG_CONTRACTS, GLOBAL_FLAG_CONTRACTS, LIST_FILTER_FLAG_CONTRACTS, AGGREGATE_FLAG_CONTRACTS, COMMENTS_FLAG_CONTRACTS, NOTES_FLAG_CONTRACTS, LEARNINGS_FLAG_CONTRACTS, FILES_FLAG_CONTRACTS, DOCS_FLAG_CONTRACTS, HISTORY_FLAG_CONTRACTS, HISTORY_REDACT_FLAG_CONTRACTS, HISTORY_REPAIR_FLAG_CONTRACTS, HISTORY_AUTHOR_ACKNOWLEDGE_FLAG_CONTRACTS, HISTORY_COMPACT_FLAG_CONTRACTS, MERGE_FLAG_CONTRACTS, SCHEMA_FLAG_CONTRACTS, PROFILE_FLAG_CONTRACTS, PLAN_FLAG_CONTRACTS, INIT_FLAG_CONTRACTS, CONFIG_FLAG_CONTRACTS, EXTENSION_FLAG_CONTRACTS, EXTENSION_SCOPE_FLAG_CONTRACTS, EXTENSION_INIT_FLAG_CONTRACTS, EXTENSION_MIGRATE_FLAG_CONTRACTS, PACKAGE_FLAG_CONTRACTS, PACKAGE_INIT_FLAG_CONTRACTS, EXTENSION_INSTALL_FLAG_CONTRACTS, EXTENSION_UNINSTALL_FLAG_CONTRACTS, EXTENSION_EXPLORE_FLAG_CONTRACTS, EXTENSION_DESCRIBE_FLAG_CONTRACTS, EXTENSION_ADOPT_ALL_FLAG_CONTRACTS, EXTENSION_ACTIVATE_FLAG_CONTRACTS, EXTENSION_DEACTIVATE_FLAG_CONTRACTS, EXTENSION_MANAGE_FLAG_CONTRACTS, EXTENSION_RELOAD_FLAG_CONTRACTS, EXTENSION_DOCTOR_FLAG_CONTRACTS, EXTENSION_CATALOG_FLAG_CONTRACTS, EXTENSION_ADOPT_FLAG_CONTRACTS, INSTALL_FLAG_CONTRACTS, UPGRADE_FLAG_CONTRACTS, REINDEX_FLAG_CONTRACTS, CLOSE_FLAG_CONTRACTS, CLOSE_MANY_FLAG_CONTRACTS, APPEND_FLAG_CONTRACTS, CLAIM_FLAG_CONTRACTS, RESTORE_FLAG_CONTRACTS, DELETE_FLAG_CONTRACTS, RELEASE_FLAG_CONTRACTS, START_TASK_FLAG_CONTRACTS, PAUSE_TASK_FLAG_CONTRACTS, CLOSE_TASK_FLAG_CONTRACTS, MEET_FLAG_CONTRACTS, EVENT_FLAG_CONTRACTS, EVENTS_FLAG_CONTRACTS, REMIND_FLAG_CONTRACTS, TEST_FLAG_CONTRACTS, TEST_ALL_FLAG_CONTRACTS, TELEMETRY_FLAG_CONTRACTS, TEST_RUNS_FLAG_CONTRACTS, GC_FLAG_CONTRACTS, STATS_FLAG_CONTRACTS, DUPLICATES_FLAG_CONTRACTS, HEALTH_FLAG_CONTRACTS, VALIDATE_FLAG_CONTRACTS, CREATE_FLAG_CONTRACTS, ITEM_COMPLETE_FLAG_CONTRACTS, ITEM_MUTATE_FLAG_CONTRACTS, COPY_FLAG_CONTRACTS, FOCUS_FLAG_CONTRACTS, UPDATE_FLAG_CONTRACTS, UPDATE_MANY_FLAG_CONTRACTS, CALENDAR_FLAG_CONTRACTS, ACTIVITY_FLAG_CONTRACTS, CONTEXT_FLAG_CONTRACTS, GET_FLAG_CONTRACTS, GUIDE_FLAG_CONTRACTS, DEPS_FLAG_CONTRACTS, GRAPH_FLAG_CONTRACTS, EVAL_FLAG_CONTRACTS, WORKSPACE_FLAG_CONTRACTS, NEXT_FLAG_CONTRACTS, SEARCH_FLAG_CONTRACTS, CONTRACTS_FLAG_CONTRACTS, COMPLETION_FLAG_CONTRACTS, hasSubcommandFlagContractsForCommand, resolveSubcommandFlagContractsForCommand, toCompletionFlagString, } from "./cli-contracts/flag-contracts.js";
13
13
  export { buildPmActionToolInputSchema, PM_TOOL_RESERVED_CUSTOM_FIELD_PROPERTIES, resolvePmToolCustomFieldCollision, CLOSE_ACTION_OPTION_KEYS, PLAN_CREATE_METADATA_PARAMETER_KEYS, PM_TOOL_ACTION_PARAMETER_CONTRACTS, PM_TOOL_PARAMETERS_SCHEMA_VERSION, PM_TOOL_PARAMETERS_SCHEMA_MAJOR, PM_PROVIDER_TOOL_PARAMETERS_SCHEMA_VERSION, PM_TOOL_PARAMETERS_SCHEMA, PM_PROVIDER_TOOL_PARAMETERS_SCHEMA, _testOnlyCliContracts, } from "./cli-contracts/tool-schema.js";
14
14
  export { analyzeSdkCliParameterCompleteness, } from "./cli-contracts/completeness.js";
15
15
  export { PM_COMMAND_OUTPUT_BUDGET_CONTRACTS, PM_OUTPUT_BUDGET_CLASSES, PM_OUTPUT_DEGRADATION_STEPS, createPmCommandOutputBudget, definePmCommandOutputBudget, estimatePmOutputTokens, inferPmOutputBudgetClass, resolvePmCommandOutputBudget, } from "./cli-contracts/agent-output-contracts.js";
16
16
  //# sourceMappingURL=cli-contracts.js.map
17
- //# debugId=93c3ffe8-6735-5139-b91f-59002f74a670
17
+ //# debugId=8071fd9d-649a-5fce-b342-84b11066d559
@@ -25,7 +25,7 @@
25
25
  * declarative (`composeExtension`) authoring styles live together. Both are
26
26
  * re-exported from the SDK barrel, so the public API is unchanged.
27
27
  */
28
- import type { AfterCommandHook, BeforeCommandHook, BeforeMutationHook, CommandDefinition, CommandOverride, ExtensionApi, ExtensionCapability, ExtensionManifest, ExtensionServiceName, Exporter, FlagDefinition, ImportExportRegistrationOptions, Importer, OnIndexHook, OnReadHook, OnWriteHook, OutputRendererFormat, ParserOverride, PreflightOverride, RendererOverride, ScopedRendererOverrideDefinition, SchemaFieldDefinition, SchemaItemTypeDefinition, SchemaMigrationDefinition, SearchProviderDefinition, ServiceOverride, VectorStoreAdapterDefinition } from "../core/extensions/loader.js";
28
+ import type { AfterCommandHook, BeforeCommandHook, BeforeMutationHook, CommandDefinition, CommandOverride, ExtensionApi, ExtensionCapability, ExtensionManifest, ExtensionServiceName, Exporter, FlagDefinition, ImportExportRegistrationOptions, Importer, OnIndexHook, OnReadHook, OnWriteHook, OutputRendererFormat, ParserOverride, PreflightOverride, ScopedPreflightOverrideDefinition, RendererOverride, ScopedRendererOverrideDefinition, SchemaFieldDefinition, SchemaItemTypeDefinition, SchemaMigrationDefinition, SearchProviderDefinition, ServiceOverride, VectorStoreAdapterDefinition } from "../core/extensions/loader.js";
29
29
  import type { ExtensionActivationSummary } from "../core/extensions/activation-summary.js";
30
30
  import type { ProjectProfileRegistrationInput } from "../core/profile/profile-presets.js";
31
31
  import type { PmMaxVersionExceededMode } from "../core/extensions/extension-types.js";
@@ -137,7 +137,7 @@ export interface ExtensionBlueprint {
137
137
  /** Service overrides keyed by service name, registered via `api.registerService(service, override)`. */
138
138
  services?: Partial<Record<ExtensionServiceName, ServiceOverride>>;
139
139
  /** Preflight overrides registered via `api.registerPreflight(override)`. */
140
- preflights?: PreflightOverride[];
140
+ preflights?: Array<PreflightOverride | ScopedPreflightOverrideDefinition>;
141
141
  /** Custom item types registered in a single `api.registerItemTypes(types)` call. */
142
142
  itemTypes?: SchemaItemTypeDefinition[];
143
143
  /** Custom item-metadata fields registered in a single `api.registerItemFields(fields)` call. */
@@ -1,5 +1,5 @@
1
1
 
2
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="60463c2e-f904-5199-87b0-8a17f0e2ee0f")}catch(e){}}();
2
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="142a413a-35a6-5861-9063-0c196a176eaa")}catch(e){}}();
3
3
  import { normalizeKnownExtensionCapability, resolveLegacyExtensionCapabilityAlias, } from "../core/extensions/extension-capability-aliases.js";
4
4
  import { normalizeCommandName } from "../core/extensions/extension-runtime-helpers.js";
5
5
  import { RESERVED_ITEM_FIELD_NAMES } from "../core/extensions/item-fields.js";
@@ -531,6 +531,11 @@ function collectBlueprintSurfaceSummary(blueprint, importers, exporters) {
531
531
  renderer_overrides: sortUnique(Object.keys(blueprint.renderers ?? {}).map((format) => String(format).trim().toLowerCase())),
532
532
  ...collectBlueprintRendererOwnership(blueprint.renderers),
533
533
  preflight_overrides: (blueprint.preflights ?? []).length,
534
+ preflight_ownership: (blueprint.preflights ?? []).map((preflight) => ({
535
+ commands: [
536
+ ...(preflight.commands ?? []),
537
+ ],
538
+ })),
534
539
  };
535
540
  }
536
541
  /**
@@ -1052,4 +1057,4 @@ export function preflightExtension(blueprint, options = {}) {
1052
1057
  };
1053
1058
  }
1054
1059
  //# sourceMappingURL=compose.js.map
1055
- //# debugId=60463c2e-f904-5199-87b0-8a17f0e2ee0f
1060
+ //# debugId=142a413a-35a6-5861-9063-0c196a176eaa
@@ -32,7 +32,7 @@
32
32
  * non-generic signature lets TypeScript type the handler parameter from the
33
33
  * declared function type.
34
34
  */
35
- import type { AfterCommandHook, BeforeCommandHook, BeforeMutationHook, CommandDefinition, CommandOverride, Exporter, ExtensionManifest, FlagDefinition, Importer, OnIndexHook, OnReadHook, OnWriteHook, ParserOverride, PreflightOverride, RendererOverride, ScopedRendererOverrideDefinition, SchemaFieldDefinition, SchemaItemTypeDefinition, SchemaMigrationDefinition, SearchProviderDefinition, ServiceOverride, ServiceOverrideDecision, VectorStoreAdapterDefinition } from "../core/extensions/loader.js";
35
+ import type { AfterCommandHook, BeforeCommandHook, BeforeMutationHook, CommandDefinition, CommandOverride, Exporter, ExtensionManifest, FlagDefinition, Importer, OnIndexHook, OnReadHook, OnWriteHook, ParserOverride, PreflightOverride, ScopedPreflightOverrideDefinition, RendererOverride, ScopedRendererOverrideDefinition, SchemaFieldDefinition, SchemaItemTypeDefinition, SchemaMigrationDefinition, SearchProviderDefinition, ServiceOverride, ServiceOverrideDecision, VectorStoreAdapterDefinition } from "../core/extensions/loader.js";
36
36
  import type { ProjectProfileDefinition } from "../core/profile/profile-presets.js";
37
37
  type ExactDefinition<TDefinition, TContract> = TDefinition & Record<Exclude<keyof TDefinition, keyof TContract>, never>;
38
38
  type FlagAuthoringDefinition = Pick<FlagDefinition, "long" | "short" | "value_name" | "description" | "required" | "enabled" | "visible" | "value_type" | "type" | "list" | "default">;
@@ -145,6 +145,8 @@ export declare function defineParserOverride(override: ParserOverride): ParserOv
145
145
  * package's pre-run validation override is checked at the definition site.
146
146
  */
147
147
  export declare function definePreflightOverride(override: PreflightOverride): PreflightOverride;
148
+ /** Type a scoped preflight definition while preserving literal command ownership. */
149
+ export declare function definePreflightOverride<TDefinition extends ScopedPreflightOverrideDefinition>(override: ExactDefinition<TDefinition, ScopedPreflightOverrideDefinition>): TDefinition;
148
150
  /**
149
151
  * Type a service-override handler for `api.registerService(service, override)`.
150
152
  *
@@ -9,7 +9,7 @@
9
9
  * to keep `capabilities` matched to the surfaces the extension actually registers.
10
10
  */
11
11
 
12
- !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]="9212673f-1a9f-50b8-92a2-4fd30ce54351")}catch(e){}}();
12
+ !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]="7fc669d4-1db2-5636-8304-2c111a684726")}catch(e){}}();
13
13
  export function defineExtensionManifest(manifest) {
14
14
  return manifest;
15
15
  }
@@ -119,12 +119,7 @@ export function defineCommandOverride(override) {
119
119
  export function defineParserOverride(override) {
120
120
  return override;
121
121
  }
122
- /**
123
- * Type a preflight-override handler for `api.registerPreflight(override)`.
124
- *
125
- * Contextually types the `context` parameter and the returned gate decision so a
126
- * package's pre-run validation override is checked at the definition site.
127
- */
122
+ /** Implement the preflight authoring identity for callbacks and scoped definitions. */
128
123
  export function definePreflightOverride(override) {
129
124
  return override;
130
125
  }
@@ -223,4 +218,4 @@ export function defineOnIndexHook(hook) {
223
218
  return hook;
224
219
  }
225
220
  //# sourceMappingURL=define.js.map
226
- //# debugId=9212673f-1a9f-50b8-92a2-4fd30ce54351
221
+ //# debugId=7fc669d4-1db2-5636-8304-2c111a684726
@@ -13,36 +13,73 @@ interface LocalPackageArchiveLimits {
13
13
  maxExpandedBytes: number;
14
14
  maxEntryBytes: number;
15
15
  }
16
- interface LocalInstallSource {
16
+ /** Parsed filesystem install source. */
17
+ export interface LocalInstallSource {
18
+ /** Discriminator for a filesystem source. */
17
19
  kind: "local";
20
+ /** Exact caller-provided source text. */
18
21
  input: string;
22
+ /** Absolute normalized source path. */
19
23
  absolute_path: string;
20
24
  }
21
- interface GithubInstallSource {
25
+ /** Parsed GitHub repository install source. */
26
+ export interface GithubInstallSource {
27
+ /** Discriminator for a GitHub repository source. */
22
28
  kind: "github";
29
+ /** Exact caller-provided source text. */
23
30
  input: string;
31
+ /** Repository owner. */
24
32
  owner: string;
33
+ /** Repository name without a `.git` suffix. */
25
34
  repo: string;
35
+ /** Cloneable HTTPS repository URL. */
26
36
  repository: string;
37
+ /** Optional Git ref selected by the caller or URL. */
27
38
  ref?: string;
39
+ /** Optional repository-relative package directory. */
28
40
  subpath?: string;
29
41
  }
30
- interface NpmInstallSource {
42
+ /** Parsed npm registry or package-spec install source. */
43
+ export interface NpmInstallSource {
44
+ /** Discriminator for an npm package source. */
31
45
  kind: "npm";
46
+ /** Exact caller-provided source text. */
32
47
  input: string;
48
+ /** Validated npm package specification. */
33
49
  spec: string;
34
50
  }
35
- type InstallSource = LocalInstallSource | GithubInstallSource | NpmInstallSource;
36
- interface ResolvedInstallSource {
51
+ /** Parsed extension install source accepted by the resolver. */
52
+ export type InstallSource = LocalInstallSource | GithubInstallSource | NpmInstallSource;
53
+ /** Materialized install source ready for extension validation. */
54
+ export interface ResolvedInstallSource {
55
+ /** Parsed source that produced this directory. */
37
56
  source: InstallSource;
57
+ /** Absolute extension or package directory ready for validation. */
38
58
  directory: string;
59
+ /** Root unpacked or cloned source directory when different from `directory`. */
39
60
  source_root?: string;
61
+ /** Repository subpath selected after clone. */
40
62
  resolved_subpath?: string;
63
+ /** Resolved Git commit when the source is a repository. */
41
64
  commit?: string;
65
+ /** Canonical npm package name when the source is a registry package. */
42
66
  npm_package?: string;
67
+ /** Resolved npm package version. */
43
68
  npm_version?: string;
69
+ /** Releases temporary source material created during resolution. */
44
70
  cleanup?: () => Promise<void>;
45
71
  }
72
+ /** Installed npm package that competes with a bare bundled install target. */
73
+ export interface InstalledNpmPackageCandidate {
74
+ /** Package identity read from its package.json. */
75
+ package: string;
76
+ /** Installed package version when declared. */
77
+ version?: string;
78
+ /** Absolute package root selected by Node-style ancestor lookup. */
79
+ directory: string;
80
+ }
81
+ /** Resolve an already-installed npm package without executing package code. */
82
+ export declare function findInstalledNpmPackageCandidate(packageName: string, cwd?: string): Promise<InstalledNpmPackageCandidate | null>;
46
83
  /** Implements parse extension install source for the public runtime surface of this module. */
47
84
  export declare function parseExtensionInstallSource(input: string, options?: {
48
85
  forceGithub?: boolean;
@@ -128,6 +165,7 @@ export declare const _testOnlyInstallSources: {
128
165
  resolveNpmSourceDirectoryWithRunner: typeof resolveNpmSourceDirectoryWithRunner;
129
166
  resolveNpmSourceDirectory: typeof resolveNpmSourceDirectory;
130
167
  resolveNpmPackSpec: typeof resolveNpmPackSpec;
168
+ findInstalledNpmPackageCandidate: typeof findInstalledNpmPackageCandidate;
131
169
  resolvePackageExtensionDirectory: typeof resolvePackageExtensionDirectory;
132
170
  runtimeDependencyInstallSpecs: typeof runtimeDependencyInstallSpecs;
133
171
  hasHostedPmCliDependency: typeof hasHostedPmCliDependency;