@unbrained/pm-cli 2026.10.15 → 2026.10.18

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 (275) hide show
  1. package/.agents/skills/pm-developer/references/COMMAND_PLAYBOOK.md +1 -1
  2. package/.claude-plugin/marketplace.json +1 -1
  3. package/AGENTS.md +1 -0
  4. package/CHANGELOG.md +45 -0
  5. package/dist/cli/extension-command-options.d.ts +3 -1
  6. package/dist/cli/extension-command-options.js +1 -1
  7. package/dist/cli/help-content.js +2 -2
  8. package/dist/cli/register-list-query.js +2 -2
  9. package/dist/cli/register-mutation.js +2 -2
  10. package/dist/cli/register-operations.js +1 -1
  11. package/dist/cli/register-structured-mutation.d.ts +0 -5
  12. package/dist/cli/register-structured-mutation.js +1 -1
  13. package/dist/cli/runtime/invocation-options.js +1 -1
  14. package/dist/cli-bundle/bundle-manifest.json +1 -1
  15. package/dist/cli-bundle/chunks/{chunk-7VHINXZP.js → chunk-4GA4MUTE.js} +2 -2
  16. package/dist/cli-bundle/chunks/{chunk-RJ5N44WY.js → chunk-4V6ONLI6.js} +2 -2
  17. package/dist/cli-bundle/chunks/{chunk-LNKLQYBG.js → chunk-6VZKYJW7.js} +2 -2
  18. package/dist/cli-bundle/chunks/chunk-7PATQWTH.js +20 -0
  19. package/dist/cli-bundle/chunks/chunk-7WIEAGDS.js +2 -0
  20. package/dist/cli-bundle/chunks/{chunk-52EZH2QQ.js → chunk-AETP4JEM.js} +2 -2
  21. package/dist/cli-bundle/chunks/{chunk-WBBW3WQX.js → chunk-FIJOSX2C.js} +28 -28
  22. package/dist/cli-bundle/chunks/chunk-LUKVNL72.js +2 -0
  23. package/dist/cli-bundle/chunks/{chunk-NC3QVGDD.js → chunk-OJ77ZQN3.js} +2 -2
  24. package/dist/cli-bundle/chunks/chunk-PYRREEUB.js +30 -0
  25. package/dist/cli-bundle/chunks/chunk-RHQJ6VWC.js +237 -0
  26. package/dist/cli-bundle/chunks/{chunk-N56CAQBU.js → chunk-RNABUEFB.js} +52 -52
  27. package/dist/cli-bundle/chunks/chunk-TO6CIV4C.js +2 -0
  28. package/dist/cli-bundle/chunks/{chunk-JGKTOBVB.js → chunk-ZZED447K.js} +4 -4
  29. package/dist/cli-bundle/chunks/{register-list-query-FKKFQ66D.js → register-list-query-PUCVYYBD.js} +7 -7
  30. package/dist/cli-bundle/chunks/register-mutation-GGGVBXD5.js +20 -0
  31. package/dist/cli-bundle/chunks/{register-operations-GEQ2H7PS.js → register-operations-NRZ6Q4QE.js} +2 -2
  32. package/dist/cli-bundle/chunks/{register-setup-PSJTQBBO.js → register-setup-MV3P3YSF.js} +2 -2
  33. package/dist/cli-bundle/focused-chunks/chunk-2MPQUMTF.js +2 -0
  34. package/dist/cli-bundle/focused-chunks/{chunk-H3P77KVU.js → chunk-5UKCSZWT.js} +2 -2
  35. package/dist/cli-bundle/focused-chunks/{chunk-4KQFMOM7.js → chunk-A4ZHHTEX.js} +5 -5
  36. package/dist/cli-bundle/focused-chunks/{chunk-5OO54BIV.js → chunk-B4YLP5ZB.js} +3 -3
  37. package/dist/cli-bundle/focused-chunks/chunk-BFEMT5U3.js +20 -0
  38. package/dist/cli-bundle/focused-chunks/{chunk-THYQR3ON.js → chunk-FW7CSSKL.js} +61 -61
  39. package/dist/cli-bundle/focused-chunks/{chunk-3RNUMVK4.js → chunk-HYPRPSYD.js} +2 -2
  40. package/dist/cli-bundle/focused-chunks/{chunk-FQKPOZKS.js → chunk-IRVL4UXR.js} +2 -2
  41. package/dist/cli-bundle/focused-chunks/{chunk-Q4VNCTR2.js → chunk-L55KQ2KT.js} +2 -2
  42. package/dist/cli-bundle/focused-chunks/{chunk-52I2SNKJ.js → chunk-MASIOFPG.js} +2 -2
  43. package/dist/cli-bundle/focused-chunks/chunk-RJ3EIHDU.js +26 -0
  44. package/dist/cli-bundle/focused-chunks/chunk-SEL4Z2OO.js +167 -0
  45. package/dist/cli-bundle/focused-chunks/{chunk-TYLG5VEB.js → chunk-TB7F4FCR.js} +2 -2
  46. package/dist/cli-bundle/focused-chunks/{chunk-KIIFVULU.js → chunk-TZUIBG3P.js} +2 -2
  47. package/dist/cli-bundle/focused-chunks/{chunk-N6FUKTZS.js → chunk-Z7YIFCNE.js} +2 -2
  48. package/dist/cli-bundle/focused-chunks/{chunk-5KRACGBK.js → chunk-ZDBS2DCT.js} +3 -3
  49. package/dist/cli-bundle/main.js +27 -27
  50. package/dist/cli-bundle/sdk-authoring.js +1 -1
  51. package/dist/cli-bundle/sdk-contracts.js +2 -2
  52. package/dist/cli-bundle/sdk-core.js +23 -23
  53. package/dist/cli-bundle/sdk-governance.js +1 -1
  54. package/dist/cli-bundle/sdk-graph.js +1 -1
  55. package/dist/cli-bundle/sdk-merge.js +55 -54
  56. package/dist/cli-bundle/sdk-query.js +1 -1
  57. package/dist/cli-bundle/sdk-runtime.js +1 -1
  58. package/dist/cli-bundle/sdk-testing.js +1 -1
  59. package/dist/cli-bundle/sdk.js +7 -7
  60. package/dist/core/extensions/extension-types.d.ts +15 -0
  61. package/dist/core/extensions/extension-types.js +1 -1
  62. package/dist/core/extensions/flag-value-types.d.ts +16 -0
  63. package/dist/core/extensions/flag-value-types.js +1 -1
  64. package/dist/core/extensions/registration-contracts.js +1 -1
  65. package/dist/core/history/event-index.d.ts +8 -1
  66. package/dist/core/history/event-index.js +19 -18
  67. package/dist/core/item/item-format.js +3 -3
  68. package/dist/core/lock/lock.d.ts +8 -1
  69. package/dist/core/lock/lock.js +3 -3
  70. package/dist/core/output/mutation-projection.d.ts +0 -21
  71. package/dist/core/output/mutation-projection.js +1 -1
  72. package/dist/core/output/output.js +2 -2
  73. package/dist/core/schema/type-workflows.d.ts +1 -1
  74. package/dist/core/schema/type-workflows.js +1 -1
  75. package/dist/core/shared/text-normalization.d.ts +2 -0
  76. package/dist/core/shared/text-normalization.js +1 -1
  77. package/dist/core/store/item-mutation-precondition.d.ts +11 -0
  78. package/dist/core/store/item-mutation-precondition.js +2 -0
  79. package/dist/core/store/item-store.js +1 -1
  80. package/dist/core/store/paths.js +1 -1
  81. package/dist/core/telemetry/policy.d.ts +2 -0
  82. package/dist/core/telemetry/policy.js +1 -1
  83. package/dist/core/telemetry/runtime.d.ts +5 -3
  84. package/dist/core/telemetry/runtime.js +3 -3
  85. package/dist/mcp/server.js +1 -1
  86. package/dist/mcp/tool-definitions.js +1 -1
  87. package/dist/sdk/cli-contracts/agent-output-contracts.js +1 -1
  88. package/dist/sdk/cli-contracts/flag-contracts.js +1 -1
  89. package/dist/sdk/cli-contracts/flag-lexicon-contracts.js +1 -1
  90. package/dist/sdk/cli-contracts/registration-helpers.d.ts +1 -1
  91. package/dist/sdk/cli-contracts/registration-helpers.js +1 -1
  92. package/dist/sdk/cli-contracts/tool-schema.d.ts +2 -2
  93. package/dist/sdk/cli-contracts/tool-schema.js +1 -1
  94. package/dist/sdk/context-intent-contracts.js +1 -1
  95. package/dist/sdk/core.d.ts +2 -1
  96. package/dist/sdk/core.js +1 -1
  97. package/dist/sdk/generated/generated-error-code-catalog-part-1.js +1 -1
  98. package/dist/sdk/generated/generated-error-code-catalog-part-2.js +1 -1
  99. package/dist/sdk/governance/health/projection.d.ts +37 -0
  100. package/dist/sdk/governance/health/projection.js +2 -0
  101. package/dist/sdk/governance/health.d.ts +7 -18
  102. package/dist/sdk/governance/health.js +2 -2
  103. package/dist/sdk/guide-topics.js +1 -1
  104. package/dist/sdk/index.d.ts +2 -1
  105. package/dist/sdk/index.js +1 -1
  106. package/dist/sdk/item-transaction.d.ts +72 -9
  107. package/dist/sdk/item-transaction.js +1 -1
  108. package/dist/sdk/lifecycle/claim.d.ts +15 -1
  109. package/dist/sdk/lifecycle/claim.js +1 -1
  110. package/dist/sdk/lifecycle/close.d.ts +2 -8
  111. package/dist/sdk/lifecycle/close.js +1 -1
  112. package/dist/sdk/lifecycle/core-item-fields.d.ts +6 -0
  113. package/dist/sdk/lifecycle/core-item-fields.js +2 -0
  114. package/dist/sdk/lifecycle/mcp-actions.js +1 -1
  115. package/dist/sdk/lifecycle/mutation-option-validation.d.ts +2 -0
  116. package/dist/sdk/lifecycle/mutation-option-validation.js +2 -0
  117. package/dist/sdk/lifecycle/release-handoff.d.ts +12 -0
  118. package/dist/sdk/lifecycle/release-handoff.js +2 -0
  119. package/dist/sdk/lifecycle/structured-mutation-plan.d.ts +33 -0
  120. package/dist/sdk/lifecycle/structured-mutation-plan.js +2 -0
  121. package/dist/sdk/lifecycle/task-composition.d.ts +2 -2
  122. package/dist/sdk/lifecycle/task-composition.js +1 -1
  123. package/dist/sdk/lifecycle/update.d.ts +3 -11
  124. package/dist/sdk/lifecycle/update.js +1 -1
  125. package/dist/sdk/lifecycle/workflow-transition.d.ts +13 -0
  126. package/dist/sdk/lifecycle/workflow-transition.js +2 -0
  127. package/dist/sdk/lifecycle-policy.d.ts +12 -2
  128. package/dist/sdk/lifecycle-policy.js +1 -1
  129. package/dist/sdk/mutation-events.js +1 -1
  130. package/dist/sdk/public-surface.json +1 -1
  131. package/dist/sdk/query/list.d.ts +2 -0
  132. package/dist/sdk/query/list.js +1 -1
  133. package/dist/sdk/read-output-budget.js +1 -1
  134. package/dist/sdk/runtime-input.js +1 -1
  135. package/dist/sdk/runtime-primitives.d.ts +1 -1
  136. package/dist/sdk/runtime-primitives.js +1 -1
  137. package/dist/sdk/runtime.d.ts +8 -8
  138. package/dist/sdk/runtime.js +1 -1
  139. package/dist/sdk/structured-mutations.d.ts +52 -1
  140. package/dist/sdk/structured-mutations.js +1 -1
  141. package/dist/sdk/workspace-transaction.js +2 -2
  142. package/dist/types.d.ts +2 -2
  143. package/dist/types.js +1 -1
  144. package/docs/AGENT_GUIDE.md +33 -4
  145. package/docs/CLOSE_EVIDENCE_RECOVERY.md +16 -7
  146. package/docs/COMMANDS.md +111 -10
  147. package/docs/CONFIGURATION.md +22 -1
  148. package/docs/DEVELOPMENT_DEPENDENCY_SECURITY.md +22 -3
  149. package/docs/ECOSYSTEM_PLANNING_REVIEW.md +5 -1
  150. package/docs/EXTENSIONS.md +1 -1
  151. package/docs/OUTPUT_PROJECTION_CONTRACTS.md +10 -0
  152. package/docs/RELEASING.md +8 -1
  153. package/docs/SDK.md +114 -2
  154. package/docs/SDK_CONTEXT_COORDINATION.md +71 -7
  155. package/docs/SDK_STORAGE_LIFECYCLE.md +24 -2
  156. package/docs/TESTING.md +23 -0
  157. package/docs/examples/ci/github-actions-pm-extension-gate.yml +1 -1
  158. package/docs/examples/ci/gitlab-ci-pm-extension-gate.yml +1 -1
  159. package/docs/examples/ci/jenkins-pm-extension-gate.Jenkinsfile +1 -1
  160. package/docs/generated/FLAG_LEXICON_BUDGETS.md +1 -1
  161. package/docs/generated/REFUSAL_CLOSURE_CENSUS.md +16 -3
  162. package/marketplace.json +1 -1
  163. package/node_modules/@opentelemetry/core/package.json +2 -1
  164. package/node_modules/@opentelemetry/instrumentation/package.json +2 -1
  165. package/node_modules/@opentelemetry/resources/package.json +2 -1
  166. package/node_modules/@opentelemetry/sdk-trace/package.json +2 -1
  167. package/node_modules/@opentelemetry/sdk-trace-base/package.json +2 -1
  168. package/node_modules/@sentry/core/build/cjs/client.js +5 -4
  169. package/node_modules/@sentry/core/build/cjs/tracing/ai/gen-ai-attributes.js +0 -4
  170. package/node_modules/@sentry/core/build/cjs/tracing/ai/utils.js +33 -23
  171. package/node_modules/@sentry/core/build/cjs/tracing/anthropic-ai/index.js +7 -6
  172. package/node_modules/@sentry/core/build/cjs/tracing/anthropic-ai/streaming.js +3 -1
  173. package/node_modules/@sentry/core/build/cjs/tracing/google-genai/index.js +13 -14
  174. package/node_modules/@sentry/core/build/cjs/tracing/google-genai/streaming.js +6 -1
  175. package/node_modules/@sentry/core/build/cjs/tracing/langchain/utils.js +71 -21
  176. package/node_modules/@sentry/core/build/cjs/tracing/langgraph/utils.js +23 -33
  177. package/node_modules/@sentry/core/build/cjs/tracing/openai/streaming.js +6 -0
  178. package/node_modules/@sentry/core/build/cjs/tracing/openai/utils.js +11 -0
  179. package/node_modules/@sentry/core/build/cjs/tracing/workers-ai/utils.js +1 -1
  180. package/node_modules/@sentry/core/build/cjs/utils/eventUtils.js +4 -0
  181. package/node_modules/@sentry/core/build/cjs/utils/prepareEvent.js +2 -2
  182. package/node_modules/@sentry/core/build/cjs/utils/version.js +1 -1
  183. package/node_modules/@sentry/core/build/esm/client.js +6 -5
  184. package/node_modules/@sentry/core/build/esm/package.json +1 -1
  185. package/node_modules/@sentry/core/build/esm/tracing/ai/gen-ai-attributes.js +1 -3
  186. package/node_modules/@sentry/core/build/esm/tracing/ai/utils.js +34 -24
  187. package/node_modules/@sentry/core/build/esm/tracing/anthropic-ai/index.js +8 -7
  188. package/node_modules/@sentry/core/build/esm/tracing/anthropic-ai/streaming.js +3 -1
  189. package/node_modules/@sentry/core/build/esm/tracing/google-genai/index.js +15 -16
  190. package/node_modules/@sentry/core/build/esm/tracing/google-genai/streaming.js +6 -1
  191. package/node_modules/@sentry/core/build/esm/tracing/langchain/utils.js +73 -24
  192. package/node_modules/@sentry/core/build/esm/tracing/langgraph/utils.js +24 -34
  193. package/node_modules/@sentry/core/build/esm/tracing/openai/streaming.js +6 -0
  194. package/node_modules/@sentry/core/build/esm/tracing/openai/utils.js +11 -0
  195. package/node_modules/@sentry/core/build/esm/tracing/workers-ai/utils.js +2 -2
  196. package/node_modules/@sentry/core/build/esm/utils/eventUtils.js +4 -1
  197. package/node_modules/@sentry/core/build/esm/utils/prepareEvent.js +2 -2
  198. package/node_modules/@sentry/core/build/esm/utils/version.js +1 -1
  199. package/node_modules/@sentry/core/build/types/tracing/ai/utils.d.ts +3 -7
  200. package/node_modules/@sentry/core/build/types/tracing/anthropic-ai/types.d.ts +2 -2
  201. package/node_modules/@sentry/core/build/types/tracing/langchain/types.d.ts +15 -0
  202. package/node_modules/@sentry/core/build/types/tracing/langchain/utils.d.ts +1 -0
  203. package/node_modules/@sentry/core/build/types/tracing/langgraph/utils.d.ts +2 -0
  204. package/node_modules/@sentry/core/build/types/tracing/openai/types.d.ts +2 -0
  205. package/node_modules/@sentry/core/build/types/utils/eventUtils.d.ts +2 -1
  206. package/node_modules/@sentry/core/build/types-ts3.8/tracing/ai/utils.d.ts +3 -7
  207. package/node_modules/@sentry/core/build/types-ts3.8/tracing/anthropic-ai/types.d.ts +2 -2
  208. package/node_modules/@sentry/core/build/types-ts3.8/tracing/langchain/types.d.ts +15 -0
  209. package/node_modules/@sentry/core/build/types-ts3.8/tracing/langchain/utils.d.ts +1 -0
  210. package/node_modules/@sentry/core/build/types-ts3.8/tracing/langgraph/utils.d.ts +2 -0
  211. package/node_modules/@sentry/core/build/types-ts3.8/tracing/openai/types.d.ts +2 -0
  212. package/node_modules/@sentry/core/build/types-ts3.8/utils/eventUtils.d.ts +2 -1
  213. package/node_modules/@sentry/core/package.json +1 -1
  214. package/node_modules/@sentry/node/build/esm/package.json +1 -1
  215. package/node_modules/@sentry/node/package.json +5 -5
  216. package/node_modules/@sentry/node-core/build/cjs/integrations/anr/index.js +1 -1
  217. package/node_modules/@sentry/node-core/build/cjs/integrations/local-variables/local-variables-async.js +1 -1
  218. package/node_modules/@sentry/node-core/build/esm/integrations/anr/index.js +1 -1
  219. package/node_modules/@sentry/node-core/build/esm/integrations/anr/worker-script.js +2 -2
  220. package/node_modules/@sentry/node-core/build/esm/integrations/local-variables/local-variables-async.js +1 -1
  221. package/node_modules/@sentry/node-core/build/esm/integrations/local-variables/worker-script.js +1 -1
  222. package/node_modules/@sentry/node-core/build/esm/package.json +1 -1
  223. package/node_modules/@sentry/node-core/package.json +10 -4
  224. package/node_modules/@sentry/opentelemetry/build/esm/package.json +1 -1
  225. package/node_modules/@sentry/opentelemetry/package.json +5 -2
  226. package/node_modules/@sentry/server-utils/build/THIRD-PARTY-LICENSES.txt +55 -55
  227. package/node_modules/@sentry/server-utils/build/esm/package.json +1 -1
  228. package/node_modules/@sentry/server-utils/package.json +2 -2
  229. package/node_modules/@toon-format/toon/README.md +10 -41
  230. package/node_modules/@toon-format/toon/dist/index.d.mts +12 -36
  231. package/node_modules/@toon-format/toon/dist/index.mjs +134 -202
  232. package/node_modules/@toon-format/toon/package.json +2 -2
  233. package/node_modules/debug/package.json +3 -0
  234. package/node_modules/fdir/package.json +3 -0
  235. package/node_modules/has-flag/index.d.ts +39 -0
  236. package/node_modules/has-flag/index.js +8 -0
  237. package/node_modules/has-flag/license +9 -0
  238. package/node_modules/has-flag/package.json +46 -0
  239. package/node_modules/has-flag/readme.md +89 -0
  240. package/node_modules/supports-color/browser.js +5 -0
  241. package/node_modules/supports-color/index.js +135 -0
  242. package/node_modules/supports-color/license +9 -0
  243. package/node_modules/supports-color/package.json +53 -0
  244. package/node_modules/supports-color/readme.md +76 -0
  245. package/package.json +5 -4
  246. package/packages/pm-beads/package.json +1 -1
  247. package/packages/pm-calendar/package.json +1 -1
  248. package/packages/pm-command-kit/package.json +1 -1
  249. package/packages/pm-digital-twin/package.json +1 -1
  250. package/packages/pm-governance-audit/package.json +1 -1
  251. package/packages/pm-guide-shell/package.json +1 -1
  252. package/packages/pm-kanban/package.json +1 -1
  253. package/packages/pm-lifecycle-hooks/package.json +1 -1
  254. package/packages/pm-linked-test-adapters/package.json +1 -1
  255. package/packages/pm-search-advanced/package.json +1 -1
  256. package/packages/pm-templates/package.json +1 -1
  257. package/packages/pm-todos/package.json +1 -1
  258. package/packages/pm-vcs/package.json +1 -1
  259. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  260. package/plugins/pm-claude/package.json +1 -1
  261. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  262. package/plugins/pm-codex/package.json +1 -1
  263. package/plugins/pm-codex/plugin.json +1 -1
  264. package/runtime-dependencies.json +1 -1
  265. package/dist/cli-bundle/chunks/chunk-7OEGNA4X.js +0 -20
  266. package/dist/cli-bundle/chunks/chunk-EMEEHV2Y.js +0 -2
  267. package/dist/cli-bundle/chunks/chunk-JSUJWIHQ.js +0 -30
  268. package/dist/cli-bundle/chunks/chunk-VIMQCFCK.js +0 -2
  269. package/dist/cli-bundle/chunks/chunk-X2H6UR26.js +0 -236
  270. package/dist/cli-bundle/chunks/register-mutation-EWMMVZJB.js +0 -20
  271. package/dist/cli-bundle/focused-chunks/chunk-5TBAVZDR.js +0 -20
  272. package/dist/cli-bundle/focused-chunks/chunk-HTA3TNC3.js +0 -26
  273. package/dist/cli-bundle/focused-chunks/chunk-JKBH7YGX.js +0 -2
  274. package/dist/cli-bundle/focused-chunks/chunk-PDYE7QDX.js +0 -166
  275. package/docs/ecosystem-review-2026-09-28.json +0 -1
@@ -1,4 +1,4 @@
1
- (function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="d956e747-cbca-5e3c-925f-e1aeb2ebbfa7")}catch{}})();import{stripVTControlCharacters}from"node:util";import{resolvePmHistoryOperation}from"./command-aliases.js";import{PM_CORE_COMMAND_NAMES}from"./enum-contracts.js";const PM_OUTPUT_DEGRADATION_STEPS=["full","compact","brief","summary","counts"],PM_OUTPUT_BUDGET_CLASSES=["mutation","read","discovery","governance"],PM_DIAGNOSTIC_OUTPUT_CLASSES=["error","warning","validation_summary","recovery_bundle"],PM_DIAGNOSTIC_DEGRADATION_STEPS=["full","omit_explanation","limit_collections","compact_recovery","action_only"],MUTATION_COMMANDS=new Set(["append","claim","close","close-many","close-task","comments","config","copy","create","delete","docs","event","files","focus","history-author-acknowledge","history-compact","history-redact","history-repair","init","item","learnings","meet","notes","pause-task","release","remind","restore","schema","start-task","update","update-many"]),DISCOVERY_COMMANDS=new Set(["contracts","extension","help","install","package","packages","profile","upgrade"]),GOVERNANCE_COMMANDS=new Set(["gc","health","merge","stats","telemetry","test","test-all","validate"]),DEFAULT_MAX_ESTIMATED_TOKENS={mutation:2e3,read:4e3,discovery:3e3,governance:6e3},JSON_BUDGET_NUMERATOR=3,JSON_BUDGET_DENOMINATOR=2,MINIMUM_DIAGNOSTIC_BUDGET=192,DIAGNOSTIC_DEFAULT_BUDGETS={error:{text:768,json:2e3},warning:{text:768,json:2e3},validation_summary:{text:1500,json:3e3},recovery_bundle:{text:768,json:2e3}},PM_DIAGNOSTIC_OUTPUT_BUDGET_CONTRACTS=PM_DIAGNOSTIC_OUTPUT_CLASSES.map(diagnosticClass=>({diagnostic_class:diagnosticClass,default_max_estimated_tokens_by_format:DIAGNOSTIC_DEFAULT_BUDGETS[diagnosticClass],minimum_max_estimated_tokens:MINIMUM_DIAGNOSTIC_BUDGET,degradation_ladder:PM_DIAGNOSTIC_DEGRADATION_STEPS,corrective_action_paths:["required","recovery.suggested_retry","recovery.suggested_retry_args","recovery.next_best_command","next_steps[0]"],token_estimate:"ceil(utf8_bytes / 4)"})),DIAGNOSTIC_BUDGET_BY_CLASS=new Map(PM_DIAGNOSTIC_OUTPUT_BUDGET_CONTRACTS.map(contract=>[contract.diagnostic_class,contract]));function inferPmOutputBudgetClass(command){const[rootCommand=""]=resolvePmHistoryOperation(command).split(/\s+/u);return MUTATION_COMMANDS.has(rootCommand)?"mutation":DISCOVERY_COMMANDS.has(rootCommand)?"discovery":GOVERNANCE_COMMANDS.has(rootCommand)?"governance":"read"}function createPmCommandOutputBudget(command,budgetClass=inferPmOutputBudgetClass(command)){const normalizedCommand=command.trim().replace(/\s+/gu," ");if(normalizedCommand.length===0)throw new TypeError("command must be a non-empty command path");const toonBudget=DEFAULT_MAX_ESTIMATED_TOKENS[budgetClass];return definePmCommandOutputBudget({command:normalizedCommand,budget_class:budgetClass,default_max_estimated_tokens:toonBudget,default_max_estimated_tokens_by_format:{toon:toonBudget,json:Math.ceil(toonBudget*JSON_BUDGET_NUMERATOR/JSON_BUDGET_DENOMINATOR)},degradation_ladder:PM_OUTPUT_DEGRADATION_STEPS,allows_unbounded_opt_out:!0,token_estimate:"ceil(utf8_bytes / 4)"})}function definePmCommandOutputBudget(contract){if(!Number.isSafeInteger(contract.default_max_estimated_tokens)||contract.default_max_estimated_tokens<=0)throw new RangeError("default_max_estimated_tokens must be a positive safe integer");for(const[format,ceiling]of Object.entries(contract.default_max_estimated_tokens_by_format))if(!Number.isSafeInteger(ceiling)||ceiling<=0)throw new RangeError(`default_max_estimated_tokens_by_format.${format} must be a positive safe integer`);return contract}const PM_COMMAND_OUTPUT_BUDGET_CONTRACTS=PM_CORE_COMMAND_NAMES.map(command=>createPmCommandOutputBudget(command)),OUTPUT_BUDGET_BY_COMMAND=new Map(PM_COMMAND_OUTPUT_BUDGET_CONTRACTS.map(contract=>[contract.command,contract]));function resolvePmCommandOutputBudget(command,options={}){const normalizedCommand=command.trim().replace(/\s+/gu," "),[rootCommand]=resolvePmHistoryOperation(normalizedCommand).split(" "),declared=OUTPUT_BUDGET_BY_COMMAND.get(rootCommand);return declared?{...declared,command:normalizedCommand}:options.generateFallback?createPmCommandOutputBudget(normalizedCommand):null}function estimatePmOutputTokens(utf8Bytes){return Math.ceil(Math.max(0,utf8Bytes)/4)}function resolvePmDiagnosticOutputBudget(diagnosticClass){const contract=DIAGNOSTIC_BUDGET_BY_CLASS.get(diagnosticClass);if(contract===void 0)throw new TypeError(`diagnosticClass must be one of: ${PM_DIAGNOSTIC_OUTPUT_CLASSES.join(", ")}`);return contract}function estimateJsonDiagnosticTokens(value){return estimatePmOutputTokens(Buffer.byteLength(JSON.stringify(value,null,2),"utf8"))}function isDiagnosticRecord(value){return typeof value=="object"&&value!==null&&!Array.isArray(value)}function compactDiagnosticRecovery(value){if(!isDiagnosticRecord(value))return;const compact={};for(const key of["suggested_retry","suggested_retry_args","next_best_command","allowed_values","candidate_commands","missing","missing_required_fields","option_scope","retry_after_ms"]){const candidate=value[key];Array.isArray(candidate)?compact[key]=key==="suggested_retry_args"?candidate:candidate.slice(0,3):candidate!==void 0&&(compact[key]=candidate)}return Object.keys(compact).length>0?compact:void 0}function truncateDiagnosticString(value,maximum){return typeof value!="string"||value.length<=maximum?value:`${value.slice(0,Math.max(1,maximum-3))}...`}function truncateDiagnosticUtf8Text(value,maximumBytes){if(Buffer.byteLength(value,"utf8")<=maximumBytes)return value;const suffix="...",codePoints=Array.from(value);let lower=0,upper=codePoints.length;for(;lower<upper;){const middle=Math.ceil((lower+upper)/2),candidate=`${codePoints.slice(0,middle).join("")}${suffix}`;Buffer.byteLength(candidate,"utf8")<=maximumBytes?lower=middle:upper=middle-1}return`${codePoints.slice(0,lower).join("")}${suffix}`}function prioritizeDiagnosticFields(diagnostic){const prioritized={};for(const key of["code","required","recovery","next_steps","exit_code","type","title","detail","why","examples"])Object.hasOwn(diagnostic,key)&&diagnostic[key]!==void 0&&(prioritized[key]=diagnostic[key]);for(const[key,value]of Object.entries(diagnostic))key!=="__proto__"&&!Object.hasOwn(prioritized,key)&&(prioritized[key]=value);return prioritized}const DIAGNOSTIC_COLLECTION_LIMIT_STAGES=new Set(["limit_collections","compact_recovery","action_only"]),DIAGNOSTIC_RECOVERY_COMPACTION_STAGES=new Set(["compact_recovery","action_only"]);function actionOnlyDiagnostic(candidate){const actionOnly={code:typeof candidate.code=="string"?candidate.code:"diagnostic",required:truncateDiagnosticString(candidate.required,160)??"Inspect the diagnostic code and retry with corrected input."},recovery=compactDiagnosticRecovery(candidate.recovery);return recovery!==void 0?actionOnly.recovery=recovery:Array.isArray(candidate.next_steps)&&(actionOnly.next_steps=candidate.next_steps.slice(0,1)),candidate.exit_code!==void 0&&(actionOnly.exit_code=candidate.exit_code),candidate.type!==void 0&&(actionOnly.type=candidate.type),actionOnly}function diagnosticCandidate(diagnostic,stage){const candidate=structuredClone(diagnostic);if(stage!=="full"&&(delete candidate.why,delete candidate.examples),DIAGNOSTIC_COLLECTION_LIMIT_STAGES.has(stage))for(const[key,value]of Object.entries(candidate))Array.isArray(value)&&(candidate[key]=value.slice(0,3));if(DIAGNOSTIC_RECOVERY_COMPACTION_STAGES.has(stage)){const recovery=compactDiagnosticRecovery(candidate.recovery);recovery?candidate.recovery=recovery:delete candidate.recovery}return stage!=="action_only"?prioritizeDiagnosticFields(candidate):actionOnlyDiagnostic(candidate)}function attachDiagnosticReceipt(candidate,receipt){const projected={...candidate,diagnostic_output:{...receipt,estimated_tokens:0}};for(let attempt=0;attempt<4;attempt+=1){const estimatedTokens=estimateJsonDiagnosticTokens(projected),outputReceipt=projected.diagnostic_output;if(outputReceipt.estimated_tokens===estimatedTokens)break;outputReceipt.estimated_tokens=estimatedTokens}return projected}function shrinkMinimalDiagnosticCandidate(candidate,receipt,budget){let fallback=attachDiagnosticReceipt(candidate,receipt);for(const optionalField of["recovery","exit_code"])estimateJsonDiagnosticTokens(fallback)<=budget||candidate[optionalField]===void 0||(delete candidate[optionalField],fallback=attachDiagnosticReceipt(candidate,receipt));let maximumActionBytes=40;for(;estimateJsonDiagnosticTokens(fallback)>budget&&maximumActionBytes>4;)maximumActionBytes-=4,candidate.code=truncateDiagnosticUtf8Text(String(candidate.code),maximumActionBytes),candidate.required=truncateDiagnosticUtf8Text(String(candidate.required),maximumActionBytes),fallback=attachDiagnosticReceipt(candidate,receipt);return fallback}function createMinimalDiagnosticFallback(projected,budget){const receipt=projected.diagnostic_output,{estimated_tokens:_estimatedTokens,...receiptWithoutEstimate}=receipt,boundedOmittedFields=receiptWithoutEstimate.omitted_fields.slice(0,8).map(field=>truncateDiagnosticUtf8Text(field,32)),boundedReceipt={...receiptWithoutEstimate,omitted_fields:boundedOmittedFields,...receiptWithoutEstimate.omitted_fields.length>boundedOmittedFields.length?{omitted_fields_overflow_count:receiptWithoutEstimate.omitted_fields.length-boundedOmittedFields.length}:{}},recoveryCandidate=compactDiagnosticRecovery(projected.recovery),recovery=recoveryCandidate&&estimateJsonDiagnosticTokens(recoveryCandidate)<=48?recoveryCandidate:void 0,candidate={code:truncateDiagnosticUtf8Text(String(projected.code),320),required:truncateDiagnosticUtf8Text(String(projected.required),320),...recovery?{recovery}:{},...projected.exit_code!==void 0?{exit_code:projected.exit_code}:{}};let fallback=attachDiagnosticReceipt(candidate,boundedReceipt);for(;estimateJsonDiagnosticTokens(fallback)>budget&&boundedReceipt.omitted_fields.length>0;)boundedReceipt.omitted_fields.pop(),boundedReceipt.omitted_fields_overflow_count=receiptWithoutEstimate.omitted_fields.length-boundedReceipt.omitted_fields.length,fallback=attachDiagnosticReceipt(candidate,boundedReceipt);return fallback=shrinkMinimalDiagnosticCandidate(candidate,boundedReceipt,budget),fallback}function projectPmDiagnosticOutput(diagnostic,options={}){const diagnosticRecord=diagnostic,diagnosticClass=options.diagnosticClass??"error",contract=resolvePmDiagnosticOutputBudget(diagnosticClass),explicitBudget=options.maxEstimatedTokens;if(explicitBudget!==void 0&&(!Number.isSafeInteger(explicitBudget)||explicitBudget<contract.minimum_max_estimated_tokens))throw new RangeError(`maxEstimatedTokens must be a safe integer >= ${contract.minimum_max_estimated_tokens}`);const budget=explicitBudget??contract.default_max_estimated_tokens_by_format.json,originalEstimatedTokens=estimateJsonDiagnosticTokens(diagnosticRecord),originalFields=Object.keys(diagnosticRecord);if(originalEstimatedTokens<=budget)return prioritizeDiagnosticFields(structuredClone(diagnosticRecord));let projected;for(const[index,stage]of contract.degradation_ladder.entries()){const candidate=diagnosticCandidate(diagnosticRecord,stage),omittedFields=originalFields.filter(field=>!Object.hasOwn(candidate,field)),withReceipt=attachDiagnosticReceipt(candidate,{diagnostic_class:diagnosticClass,format:"json",budget,budget_source:explicitBudget===void 0?"default":"explicit",original_estimated_tokens:originalEstimatedTokens,truncated:index>0,degradation_steps:contract.degradation_ladder.slice(0,index+1),omitted_fields:omittedFields});if(projected=withReceipt,estimateJsonDiagnosticTokens(withReceipt)<=budget)break}return estimateJsonDiagnosticTokens(projected)>budget&&(projected=createMinimalDiagnosticFallback(projected,budget)),projected}function sanitizeDiagnosticText(text){return stripVTControlCharacters(text).replace(/\r\n/gu,`
1
+ (function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="c8a91fc2-57b4-5738-9428-9847ef7afadc")}catch{}})();import{stripVTControlCharacters}from"node:util";import{unicodeSafePrefix}from"../../core/shared/text-normalization.js";import{resolvePmHistoryOperation}from"./command-aliases.js";import{PM_CORE_COMMAND_NAMES}from"./enum-contracts.js";const PM_OUTPUT_DEGRADATION_STEPS=["full","compact","brief","summary","counts"],PM_OUTPUT_BUDGET_CLASSES=["mutation","read","discovery","governance"],PM_DIAGNOSTIC_OUTPUT_CLASSES=["error","warning","validation_summary","recovery_bundle"],PM_DIAGNOSTIC_DEGRADATION_STEPS=["full","omit_explanation","limit_collections","compact_recovery","action_only"],MUTATION_COMMANDS=new Set(["append","claim","close","close-many","close-task","comments","config","copy","create","delete","docs","event","files","focus","history-author-acknowledge","history-compact","history-redact","history-repair","init","item","learnings","meet","notes","pause-task","release","remind","restore","schema","start-task","update","update-many"]),DISCOVERY_COMMANDS=new Set(["contracts","extension","help","install","package","packages","profile","upgrade"]),GOVERNANCE_COMMANDS=new Set(["gc","health","merge","stats","telemetry","test","test-all","validate"]),DEFAULT_MAX_ESTIMATED_TOKENS={mutation:2e3,read:4e3,discovery:3e3,governance:6e3},JSON_BUDGET_NUMERATOR=3,JSON_BUDGET_DENOMINATOR=2,MINIMUM_DIAGNOSTIC_BUDGET=192,DIAGNOSTIC_DEFAULT_BUDGETS={error:{text:768,json:2e3},warning:{text:768,json:2e3},validation_summary:{text:1500,json:3e3},recovery_bundle:{text:768,json:2e3}},PM_DIAGNOSTIC_OUTPUT_BUDGET_CONTRACTS=PM_DIAGNOSTIC_OUTPUT_CLASSES.map(diagnosticClass=>({diagnostic_class:diagnosticClass,default_max_estimated_tokens_by_format:DIAGNOSTIC_DEFAULT_BUDGETS[diagnosticClass],minimum_max_estimated_tokens:MINIMUM_DIAGNOSTIC_BUDGET,degradation_ladder:PM_DIAGNOSTIC_DEGRADATION_STEPS,corrective_action_paths:["required","recovery.suggested_retry","recovery.suggested_retry_args","recovery.next_best_command","next_steps[0]"],token_estimate:"ceil(utf8_bytes / 4)"})),DIAGNOSTIC_BUDGET_BY_CLASS=new Map(PM_DIAGNOSTIC_OUTPUT_BUDGET_CONTRACTS.map(contract=>[contract.diagnostic_class,contract]));function inferPmOutputBudgetClass(command){const[rootCommand=""]=resolvePmHistoryOperation(command).split(/\s+/u);return MUTATION_COMMANDS.has(rootCommand)?"mutation":DISCOVERY_COMMANDS.has(rootCommand)?"discovery":GOVERNANCE_COMMANDS.has(rootCommand)?"governance":"read"}function createPmCommandOutputBudget(command,budgetClass=inferPmOutputBudgetClass(command)){const normalizedCommand=command.trim().replace(/\s+/gu," ");if(normalizedCommand.length===0)throw new TypeError("command must be a non-empty command path");const toonBudget=DEFAULT_MAX_ESTIMATED_TOKENS[budgetClass];return definePmCommandOutputBudget({command:normalizedCommand,budget_class:budgetClass,default_max_estimated_tokens:toonBudget,default_max_estimated_tokens_by_format:{toon:toonBudget,json:Math.ceil(toonBudget*JSON_BUDGET_NUMERATOR/JSON_BUDGET_DENOMINATOR)},degradation_ladder:PM_OUTPUT_DEGRADATION_STEPS,allows_unbounded_opt_out:!0,token_estimate:"ceil(utf8_bytes / 4)"})}function definePmCommandOutputBudget(contract){if(!Number.isSafeInteger(contract.default_max_estimated_tokens)||contract.default_max_estimated_tokens<=0)throw new RangeError("default_max_estimated_tokens must be a positive safe integer");for(const[format,ceiling]of Object.entries(contract.default_max_estimated_tokens_by_format))if(!Number.isSafeInteger(ceiling)||ceiling<=0)throw new RangeError(`default_max_estimated_tokens_by_format.${format} must be a positive safe integer`);return contract}const PM_COMMAND_OUTPUT_BUDGET_CONTRACTS=PM_CORE_COMMAND_NAMES.map(command=>createPmCommandOutputBudget(command)),OUTPUT_BUDGET_BY_COMMAND=new Map(PM_COMMAND_OUTPUT_BUDGET_CONTRACTS.map(contract=>[contract.command,contract]));function resolvePmCommandOutputBudget(command,options={}){const normalizedCommand=command.trim().replace(/\s+/gu," "),[rootCommand]=resolvePmHistoryOperation(normalizedCommand).split(" "),declared=OUTPUT_BUDGET_BY_COMMAND.get(rootCommand);return declared?{...declared,command:normalizedCommand}:options.generateFallback?createPmCommandOutputBudget(normalizedCommand):null}function estimatePmOutputTokens(utf8Bytes){return Math.ceil(Math.max(0,utf8Bytes)/4)}function resolvePmDiagnosticOutputBudget(diagnosticClass){const contract=DIAGNOSTIC_BUDGET_BY_CLASS.get(diagnosticClass);if(contract===void 0)throw new TypeError(`diagnosticClass must be one of: ${PM_DIAGNOSTIC_OUTPUT_CLASSES.join(", ")}`);return contract}function estimateJsonDiagnosticTokens(value){return estimatePmOutputTokens(Buffer.byteLength(JSON.stringify(value,null,2),"utf8"))}function isDiagnosticRecord(value){return typeof value=="object"&&value!==null&&!Array.isArray(value)}function compactDiagnosticRecovery(value){if(!isDiagnosticRecord(value))return;const compact={};for(const key of["suggested_retry","suggested_retry_args","next_best_command","allowed_values","candidate_commands","missing","missing_required_fields","option_scope","retry_after_ms"]){const candidate=value[key];Array.isArray(candidate)?compact[key]=key==="suggested_retry_args"?candidate:candidate.slice(0,3):candidate!==void 0&&(compact[key]=candidate)}return Object.keys(compact).length>0?compact:void 0}function truncateDiagnosticString(value,maximum){return typeof value!="string"||value.length<=maximum?value:`${unicodeSafePrefix(value,Math.max(1,maximum-3))}...`}function truncateDiagnosticUtf8Text(value,maximumBytes){if(Buffer.byteLength(value,"utf8")<=maximumBytes)return value;const suffix="...",codePoints=Array.from(value);let lower=0,upper=codePoints.length;for(;lower<upper;){const middle=Math.ceil((lower+upper)/2),candidate=`${codePoints.slice(0,middle).join("")}${suffix}`;Buffer.byteLength(candidate,"utf8")<=maximumBytes?lower=middle:upper=middle-1}return`${codePoints.slice(0,lower).join("")}${suffix}`}function prioritizeDiagnosticFields(diagnostic){const prioritized={};for(const key of["code","required","recovery","next_steps","exit_code","type","title","detail","why","examples"])Object.hasOwn(diagnostic,key)&&diagnostic[key]!==void 0&&(prioritized[key]=diagnostic[key]);for(const[key,value]of Object.entries(diagnostic))key!=="__proto__"&&!Object.hasOwn(prioritized,key)&&(prioritized[key]=value);return prioritized}const DIAGNOSTIC_COLLECTION_LIMIT_STAGES=new Set(["limit_collections","compact_recovery","action_only"]),DIAGNOSTIC_RECOVERY_COMPACTION_STAGES=new Set(["compact_recovery","action_only"]);function actionOnlyDiagnostic(candidate){const actionOnly={code:typeof candidate.code=="string"?candidate.code:"diagnostic",required:truncateDiagnosticString(candidate.required,160)??"Inspect the diagnostic code and retry with corrected input."},recovery=compactDiagnosticRecovery(candidate.recovery);return recovery!==void 0?actionOnly.recovery=recovery:Array.isArray(candidate.next_steps)&&(actionOnly.next_steps=candidate.next_steps.slice(0,1)),candidate.exit_code!==void 0&&(actionOnly.exit_code=candidate.exit_code),candidate.type!==void 0&&(actionOnly.type=candidate.type),actionOnly}function diagnosticCandidate(diagnostic,stage){const candidate=structuredClone(diagnostic);if(stage!=="full"&&(delete candidate.why,delete candidate.examples),DIAGNOSTIC_COLLECTION_LIMIT_STAGES.has(stage))for(const[key,value]of Object.entries(candidate))Array.isArray(value)&&(candidate[key]=value.slice(0,3));if(DIAGNOSTIC_RECOVERY_COMPACTION_STAGES.has(stage)){const recovery=compactDiagnosticRecovery(candidate.recovery);recovery?candidate.recovery=recovery:delete candidate.recovery}return stage!=="action_only"?prioritizeDiagnosticFields(candidate):actionOnlyDiagnostic(candidate)}function attachDiagnosticReceipt(candidate,receipt){const projected={...candidate,diagnostic_output:{...receipt,estimated_tokens:0}};for(let attempt=0;attempt<4;attempt+=1){const estimatedTokens=estimateJsonDiagnosticTokens(projected),outputReceipt=projected.diagnostic_output;if(outputReceipt.estimated_tokens===estimatedTokens)break;outputReceipt.estimated_tokens=estimatedTokens}return projected}function shrinkMinimalDiagnosticCandidate(candidate,receipt,budget){let fallback=attachDiagnosticReceipt(candidate,receipt);for(const optionalField of["recovery","exit_code"])estimateJsonDiagnosticTokens(fallback)<=budget||candidate[optionalField]===void 0||(delete candidate[optionalField],fallback=attachDiagnosticReceipt(candidate,receipt));let maximumActionBytes=40;for(;estimateJsonDiagnosticTokens(fallback)>budget&&maximumActionBytes>4;)maximumActionBytes-=4,candidate.code=truncateDiagnosticUtf8Text(String(candidate.code),maximumActionBytes),candidate.required=truncateDiagnosticUtf8Text(String(candidate.required),maximumActionBytes),fallback=attachDiagnosticReceipt(candidate,receipt);return fallback}function createMinimalDiagnosticFallback(projected,budget){const receipt=projected.diagnostic_output,{estimated_tokens:_estimatedTokens,...receiptWithoutEstimate}=receipt,boundedOmittedFields=receiptWithoutEstimate.omitted_fields.slice(0,8).map(field=>truncateDiagnosticUtf8Text(field,32)),boundedReceipt={...receiptWithoutEstimate,omitted_fields:boundedOmittedFields,...receiptWithoutEstimate.omitted_fields.length>boundedOmittedFields.length?{omitted_fields_overflow_count:receiptWithoutEstimate.omitted_fields.length-boundedOmittedFields.length}:{}},recoveryCandidate=compactDiagnosticRecovery(projected.recovery),recovery=recoveryCandidate&&estimateJsonDiagnosticTokens(recoveryCandidate)<=48?recoveryCandidate:void 0,candidate={code:truncateDiagnosticUtf8Text(String(projected.code),320),required:truncateDiagnosticUtf8Text(String(projected.required),320),...recovery?{recovery}:{},...projected.exit_code!==void 0?{exit_code:projected.exit_code}:{}};let fallback=attachDiagnosticReceipt(candidate,boundedReceipt);for(;estimateJsonDiagnosticTokens(fallback)>budget&&boundedReceipt.omitted_fields.length>0;)boundedReceipt.omitted_fields.pop(),boundedReceipt.omitted_fields_overflow_count=receiptWithoutEstimate.omitted_fields.length-boundedReceipt.omitted_fields.length,fallback=attachDiagnosticReceipt(candidate,boundedReceipt);return fallback=shrinkMinimalDiagnosticCandidate(candidate,boundedReceipt,budget),fallback}function projectPmDiagnosticOutput(diagnostic,options={}){const diagnosticRecord=diagnostic,diagnosticClass=options.diagnosticClass??"error",contract=resolvePmDiagnosticOutputBudget(diagnosticClass),explicitBudget=options.maxEstimatedTokens;if(explicitBudget!==void 0&&(!Number.isSafeInteger(explicitBudget)||explicitBudget<contract.minimum_max_estimated_tokens))throw new RangeError(`maxEstimatedTokens must be a safe integer >= ${contract.minimum_max_estimated_tokens}`);const budget=explicitBudget??contract.default_max_estimated_tokens_by_format.json,originalEstimatedTokens=estimateJsonDiagnosticTokens(diagnosticRecord),originalFields=Object.keys(diagnosticRecord);if(originalEstimatedTokens<=budget)return prioritizeDiagnosticFields(structuredClone(diagnosticRecord));let projected;for(const[index,stage]of contract.degradation_ladder.entries()){const candidate=diagnosticCandidate(diagnosticRecord,stage),omittedFields=originalFields.filter(field=>!Object.hasOwn(candidate,field)),withReceipt=attachDiagnosticReceipt(candidate,{diagnostic_class:diagnosticClass,format:"json",budget,budget_source:explicitBudget===void 0?"default":"explicit",original_estimated_tokens:originalEstimatedTokens,truncated:index>0,degradation_steps:contract.degradation_ladder.slice(0,index+1),omitted_fields:omittedFields});if(projected=withReceipt,estimateJsonDiagnosticTokens(withReceipt)<=budget)break}return estimateJsonDiagnosticTokens(projected)>budget&&(projected=createMinimalDiagnosticFallback(projected,budget)),projected}function sanitizeDiagnosticText(text){return stripVTControlCharacters(text).replace(/\r\n/gu,`
2
2
  `).replace(/[^\P{Cc}\n]/gu," ")}function projectPmDiagnosticText(output,correctiveAction,options={}){const diagnosticClass=options.diagnosticClass??"error",contract=resolvePmDiagnosticOutputBudget(diagnosticClass),explicitBudget=options.maxEstimatedTokens;if(explicitBudget!==void 0&&(!Number.isSafeInteger(explicitBudget)||explicitBudget<contract.minimum_max_estimated_tokens))throw new RangeError(`maxEstimatedTokens must be a safe integer >= ${contract.minimum_max_estimated_tokens}`);const budget=explicitBudget??contract.default_max_estimated_tokens_by_format.text,sanitizedOutput=sanitizeDiagnosticText(output),originalEstimatedTokens=estimatePmOutputTokens(Buffer.byteLength(sanitizedOutput,"utf8")),truncated=originalEstimatedTokens>budget,actionPrefix=`What is required:
3
3
  `,actionSuffix=`
4
4
 
@@ -1,2 +1,2 @@
1
- (function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="c2d6f901-7674-5ee7-b2cb-b9be7f05ee94")}catch{}})();import{resolvePmHistoryOperation}from"./command-aliases.js";import{normalizeUniqueStringList}from"./string-lists.js";import{GRAPH_QUERY_DEFAULTS}from"../graph/query-contracts.js";import{RESERVED_EXTENSION_HOST_FLAGS}from"../../core/extensions/reserved-host-flags.js";import{PM_POSITIONAL_ACTION_CONTRACTS}from"./grammar-contracts.js";function normalizeFlagAliasKey(flag){return flag.startsWith("--")?`--${flag.slice(2).replaceAll("_","-")}`:flag}function withFlagAliasMetadata(flagContracts){const aliasesByCanonical=new Map;for(const contract of flagContracts){const canonical=normalizeFlagAliasKey(contract.flag),bucket=aliasesByCanonical.get(canonical)??new Set;contract.flag!==canonical&&bucket.add(contract.flag);for(const alias of contract.aliases??[])alias!==canonical&&bucket.add(alias);aliasesByCanonical.set(canonical,bucket)}return flagContracts.map(contract=>{const canonical=normalizeFlagAliasKey(contract.flag);if(contract.flag!==canonical)return contract;const aliases=normalizeUniqueStringList([...contract.aliases??[],...aliasesByCanonical.get(canonical)]).filter(alias=>alias!==canonical);return aliases.length===0?contract:{...contract,aliases}})}function compactFlagAliasContracts(flagContracts){const withAliases=withFlagAliasMetadata(flagContracts),canonicalFlags=new Set(withAliases.map(contract=>contract.flag));return withAliases.filter(contract=>{const canonical=normalizeFlagAliasKey(contract.flag);return contract.flag===canonical||!canonicalFlags.has(canonical)})}const SUBCOMMAND_GLOBAL_FLAG_CONTRACTS=RESERVED_EXTENSION_HOST_FLAGS.map(definition=>({flag:definition.flag,reservation_scope:"inherited",...definition.aliases?{aliases:[...definition.aliases]}:{},...definition.value_name?{value_name:definition.value_name}:{}})),GLOBAL_FLAG_CONTRACTS=[...SUBCOMMAND_GLOBAL_FLAG_CONTRACTS,{flag:"--version",value_type:"boolean",reservation_scope:"root_only"},{flag:"--all",value_type:"boolean",reservation_scope:"root_only",description:"Expand root help to every command."},{flag:"--explain",value_type:"boolean",reservation_scope:"root_only",description:"Expand root help with command guidance."}],GOVERNANCE_AND_CONTENT_FILTER_FLAG_CONTRACTS=[{flag:"--filter-reviewer-missing"},{flag:"--filter-risk-missing"},{flag:"--filter-confidence-missing"},{flag:"--filter-sprint-missing"},{flag:"--filter-release-missing"},{flag:"--has-notes"},{flag:"--no-notes"},{flag:"--has-learnings"},{flag:"--no-learnings"},{flag:"--has-files"},{flag:"--no-files"},{flag:"--filter-files-missing"},{flag:"--has-docs"},{flag:"--no-docs"},{flag:"--filter-docs-missing"},{flag:"--has-tests"},{flag:"--no-tests"},{flag:"--has-comments"},{flag:"--no-comments"},{flag:"--has-deps"},{flag:"--no-deps"},{flag:"--has-body"},{flag:"--empty-body"},{flag:"--has-linked-command"},{flag:"--no-linked-command"}],MANY_GOVERNANCE_AND_CONTENT_FILTER_FLAG_CONTRACTS=[{flag:"--filter-reviewer-missing"},{flag:"--filter-risk-missing"},{flag:"--filter-confidence-missing"},{flag:"--filter-sprint-missing"},{flag:"--filter-release-missing"},{flag:"--filter-has-notes"},{flag:"--filter-no-notes"},{flag:"--filter-has-learnings"},{flag:"--filter-no-learnings"},{flag:"--filter-has-files"},{flag:"--filter-no-files"},{flag:"--filter-has-docs"},{flag:"--filter-no-docs"},{flag:"--filter-has-tests"},{flag:"--filter-no-tests"},{flag:"--filter-has-comments"},{flag:"--filter-no-comments"},{flag:"--filter-has-deps"},{flag:"--filter-no-deps"},{flag:"--filter-has-body"},{flag:"--filter-empty-body"},{flag:"--filter-has-linked-command"},{flag:"--filter-no-linked-command"},{flag:"--ids",list:!0},{flag:"--limit"},{flag:"--offset"}],LIST_FILTER_FLAG_CONTRACTS=withCursorSemantics([{flag:"--for",value_name:"intent"},{flag:"--token-budget",aliases:["--token_budget"]},{flag:"--status",list:!0},{flag:"--all",value_type:"boolean"},{flag:"--type",list:!0},{flag:"--tag",aliases:["--tags"],list:!0},{flag:"--priority",list:!0},{flag:"--deadline-before"},{flag:"--deadline-after"},{flag:"--today"},{flag:"--recent"},{flag:"--updated-after"},{flag:"--updated-before"},{flag:"--created-after"},{flag:"--created-before"},{flag:"--ids",list:!0},{flag:"--assignee",list:!0},{flag:"--assignee-filter"},{flag:"--assignee_filter"},{flag:"--parent"},{flag:"--sprint",list:!0},{flag:"--release",list:!0},{flag:"--filter-ac-missing"},{flag:"--filter-estimates-missing",aliases:["--filter-estimate-missing"]},{flag:"--filter-resolution-missing"},{flag:"--filter-metadata-missing"},...GOVERNANCE_AND_CONTENT_FILTER_FLAG_CONTRACTS,{flag:"--limit"},{flag:"--offset"},{flag:"--after"},{flag:"--no-truncate"},{flag:"--compact"},{flag:"--brief"},{flag:"--full"},{flag:"--fields",list:!0},{flag:"--sort"},{flag:"--order"},{flag:"--tree"},{flag:"--tree-depth"},{flag:"--tree_depth"},{flag:"--include-body"},{flag:"--strict-read"},{flag:"--format"},{flag:"--stream"}],new Set(["--limit","--token-budget","--offset","--after","--no-truncate","--compact","--brief","--full","--fields","--include-body","--strict-read"])),AGGREGATE_FLAG_CONTRACTS=[{flag:"--group-by",list:!0},{flag:"--set-mode"},{flag:"--limit"},{flag:"--after"},{flag:"--count"},{flag:"--completion"},{flag:"--sum"},{flag:"--avg"},{flag:"--include-unparented"},{flag:"--include_unparented"},{flag:"--status",list:!0},{flag:"--type",list:!0},{flag:"--tag",list:!0},{flag:"--priority",list:!0},{flag:"--deadline-before"},{flag:"--deadline-after"},{flag:"--assignee",list:!0},{flag:"--assignee-filter"},{flag:"--assignee_filter"},{flag:"--parent"},{flag:"--sprint",list:!0},{flag:"--release",list:!0}],COMMENTS_FLAG_CONTRACTS=[{flag:"--id",value_name:"item-id"},{flag:"--add",aliases:["--comment","--body","--text"]},{flag:"--stdin"},{flag:"--file"},{flag:"--edit"},{flag:"--delete"},{flag:"--limit"},{flag:"--full-history"},{flag:"--if-absent",value_type:"boolean"},{flag:"--author"},{flag:"--message"},{flag:"--force"}];function withCursorSemantics(contracts,presentationFlags){return contracts.map(contract=>presentationFlags.has(contract.flag)?{...contract,cursor_semantics:"presentation"}:contract)}const NOTES_FLAG_CONTRACTS=[{flag:"--id",value_name:"item-id"},{flag:"--add",aliases:["--note","--text"]},{flag:"--add-json"},{flag:"--stdin"},{flag:"--file"},{flag:"--edit"},{flag:"--delete"},{flag:"--limit"},{flag:"--since"},{flag:"--event-type"},{flag:"--include-meta"},{flag:"--full-history"},{flag:"--if-absent",value_type:"boolean"},{flag:"--author"},{flag:"--message"},{flag:"--force"}],LEARNINGS_FLAG_CONTRACTS=[{flag:"--id",value_name:"item-id"},{flag:"--add",aliases:["--learning","--text"]},{flag:"--stdin"},{flag:"--file"},{flag:"--edit"},{flag:"--delete"},{flag:"--limit"},{flag:"--full-history"},{flag:"--if-absent",value_type:"boolean"},{flag:"--author"},{flag:"--message"},{flag:"--force"}],FILES_FLAG_CONTRACTS=[{flag:"--id",value_name:"item-id"},{flag:"--add"},{flag:"--add-glob"},{flag:"--remove"},{flag:"--migrate"},{flag:"--note"},{flag:"--list"},{flag:"--append-stable"},{flag:"--validate-paths"},{flag:"--scope"},{flag:"--limit"},{flag:"--offset"},{flag:"--no-truncate"},{flag:"--strict-read"},{flag:"--explain"},{flag:"--lines",value_name:"start:end"},{flag:"--decision-depth",value_name:"n",value_type:"number"},{flag:"--author"},{flag:"--message"},{flag:"--force"}],DOCS_FLAG_CONTRACTS=[{flag:"--id",value_name:"item-id"},{flag:"--add"},{flag:"--add-glob"},{flag:"--remove"},{flag:"--migrate"},{flag:"--note"},{flag:"--list"},{flag:"--validate-paths"},{flag:"--author"},{flag:"--message"},{flag:"--force"}],HISTORY_FLAG_CONTRACTS=[{flag:"--id",value_name:"item-id"},{flag:"--limit"},{flag:"--compact"},{flag:"--full"},{flag:"--provenance"},{flag:"--provenance-summary"},{flag:"--harness",repeatable:!0},{flag:"--agent-instance",repeatable:!0},{flag:"--provenance-filter",repeatable:!0},{flag:"--diff"},{flag:"--field"},{flag:"--verify"},{flag:"--strict-exit"},{flag:"--fail-on-warn"},{flag:"--format"}],MERGE_FLAG_CONTRACTS=[{flag:"--dry-run"},{flag:"--message"},{flag:"--force"},{flag:"--include-reconciled"},{flag:"--output"},{flag:"--item-path"},{flag:"--prefer"}],HISTORY_REDACT_FLAG_CONTRACTS=[{flag:"--id",value_name:"item-id"},{flag:"--literal"},{flag:"--regex"},{flag:"--replacement"},{flag:"--dry-run"},{flag:"--author"},{flag:"--message"},{flag:"--force"}],HISTORY_REPAIR_FLAG_CONTRACTS=[{flag:"--id",value_name:"item-id"},{flag:"--all"},{flag:"--dry-run"},{flag:"--normalize-provenance"},{flag:"--salvage-tail",value_type:"boolean"},{flag:"--author"},{flag:"--message"},{flag:"--force"}],HISTORY_AUTHOR_ACKNOWLEDGE_FLAG_CONTRACTS=[{flag:"--event",repeatable:!0},{flag:"--all-actionable"},{flag:"--dry-run"},{flag:"--plan-fingerprint"},{flag:"--limit",value_type:"number"},{flag:"--attributed-author",aliases:["--attributed_author"]},{flag:"--reviewer"},{flag:"--reason"}],HISTORY_COMPACT_FLAG_CONTRACTS=[{flag:"--id",value_name:"item-id"},{flag:"--before"},{flag:"--ids",list:!0},{flag:"--all-over",value_type:"number"},{flag:"--closed"},{flag:"--all-streams"},{flag:"--min-entries",value_type:"number"},{flag:"--dry-run"},{flag:"--author"},{flag:"--message"},{flag:"--force"}],HISTORY_ATTEST_FLAG_CONTRACTS=[{flag:"--verify",value_name:"file",value_type:"string"},{flag:"--output",value_name:"file",value_type:"string"},{flag:"--hash-algorithm",value_name:"name",value_type:"string"}],SCHEMA_FLAG_CONTRACTS=[{flag:"--definition",value_name:"json"},{flag:"--policy",value_name:"id"},{flag:"--message",value_name:"value"},{flag:"--description"},{flag:"--default-status",aliases:["--default_status"]},{flag:"--folder"},{flag:"--alias"},{flag:"--role"},{flag:"--order"},{flag:"--type"},{flag:"--commands"},{flag:"--cli-flag"},{flag:"--required"},{flag:"--required-on-create"},{flag:"--no-allow-unset"},{flag:"--required-types"},{flag:"--infer"},{flag:"--min-count"},{flag:"--apply",value_type:"boolean"},{flag:"--to"},{flag:"--migration-id",aliases:["--migration_id"]},{flag:"--dry-run"},{flag:"--author"},{flag:"--force"}],PROFILE_FLAG_CONTRACTS=[{flag:"--dry-run"},{flag:"--author"},{flag:"--force"}],PLAN_FLAG_CONTRACTS=[{flag:"--title"},{flag:"--description"},{flag:"--scope"},{flag:"--parent"},{flag:"--related"},{flag:"--blocks"},{flag:"--blocked-by",aliases:["--blocked_by"]},{flag:"--harness"},{flag:"--mode"},{flag:"--resume-context",aliases:["--resume_context"]},{flag:"--tags",aliases:["--tag"],list:!0},{flag:"--priority"},{flag:"--status",short:"-s"},{flag:"--create-mode",aliases:["--create_mode"]},{flag:"--deadline"},{flag:"--estimate",aliases:["--estimated-minutes","--estimated_minutes"]},{flag:"--acceptance-criteria",aliases:["--acceptance_criteria","--ac"],repeatable:!0},{flag:"--definition-of-ready",aliases:["--definition_of_ready"]},{flag:"--order"},{flag:"--rank"},{flag:"--goal"},{flag:"--objective"},{flag:"--value"},{flag:"--impact"},{flag:"--outcome"},{flag:"--why-now",aliases:["--why_now"]},{flag:"--assignee"},{flag:"--reviewer"},{flag:"--risk"},{flag:"--confidence"},{flag:"--sprint"},{flag:"--release"},{flag:"--blocked-reason",aliases:["--blocked_reason"]},{flag:"--unblock-note",aliases:["--unblock_note"]},{flag:"--reporter"},{flag:"--severity"},{flag:"--environment"},{flag:"--repro-steps",aliases:["--repro_steps"]},{flag:"--resolution"},{flag:"--expected-result",aliases:["--expected_result","--expected"]},{flag:"--actual-result",aliases:["--actual_result","--actual"]},{flag:"--affected-version",aliases:["--affected_version"]},{flag:"--fixed-version",aliases:["--fixed_version"]},{flag:"--component"},{flag:"--regression"},{flag:"--customer-impact",aliases:["--customer_impact"]},{flag:"--comment",repeatable:!0},{flag:"--note",repeatable:!0},{flag:"--learning",repeatable:!0},{flag:"--reminder",repeatable:!0},{flag:"--event",repeatable:!0},{flag:"--type-option",aliases:["--type_option"],repeatable:!0},{flag:"--body"},{flag:"--claim"},{flag:"--from-search",aliases:["--from_search"]},{flag:"--template"},{flag:"--step-title",aliases:["--step_title"]},{flag:"--step"},{flag:"--step-body",aliases:["--step_body"]},{flag:"--step-owner",aliases:["--step_owner"]},{flag:"--step-status",aliases:["--step_status"]},{flag:"--step-evidence",aliases:["--step_evidence"]},{flag:"--step-blocked-reason",aliases:["--step_blocked_reason"]},{flag:"--step-replacement",aliases:["--step_replacement"]},{flag:"--depends-on",aliases:["--depends_on"]},{flag:"--link"},{flag:"--link-kind",aliases:["--link_kind"]},{flag:"--link-note",aliases:["--link_note"]},{flag:"--promote-to-item-dep",aliases:["--promote_to_item_dep"]},{flag:"--allow-multiple-active",aliases:["--allow_multiple_active"]},{flag:"--file"},{flag:"--test"},{flag:"--doc"},{flag:"--decision-text",aliases:["--decision_text","--decision"]},{flag:"--decision-rationale",aliases:["--decision_rationale"]},{flag:"--decision-evidence",aliases:["--decision_evidence"]},{flag:"--discovery-text",aliases:["--discovery_text","--discovery"]},{flag:"--validation-text",aliases:["--validation_text","--validation"]},{flag:"--validation-command",aliases:["--validation_command"]},{flag:"--validation-expected",aliases:["--validation_expected"]},{flag:"--depth"},{flag:"--field"},{flag:"--fields",list:!0},{flag:"--steps"},{flag:"--materialize-type",aliases:["--materialize_type"]},{flag:"--materialize-parent",aliases:["--materialize_parent"]},{flag:"--materialize-tags",aliases:["--materialize_tags"]},{flag:"--author"},{flag:"--message"},{flag:"--force"}],INIT_FLAG_CONTRACTS=[{flag:"--id-prefix",aliases:["--prefix"]},{flag:"--preset"},{flag:"--type-preset"},{flag:"--defaults",short:"-y",aliases:["--yes"]},{flag:"--author"},{flag:"--agent-guidance"},{flag:"--with-packages"},{flag:"--no-merge-fence"},{flag:"--workspace"},{flag:"--force"},{flag:"--verbose"}],CONFIG_FLAG_CONTRACTS=[{flag:"--value",value_name:"value"},{flag:"--criterion"},{flag:"--clear-criteria"},{flag:"--format"},{flag:"--policy"},{flag:"--default-depth"},{flag:"--activity-limit"},{flag:"--stale-threshold-days"},{flag:"--section-hierarchy"},{flag:"--section-activity"},{flag:"--section-progress"},{flag:"--section-blockers"},{flag:"--section-files"},{flag:"--section-workload"},{flag:"--section-staleness"},{flag:"--section-tests"}],EXTENSION_FLAG_CONTRACTS=[{flag:"--dry-run"},{flag:"--init"},{flag:"--scaffold"},{flag:"--capability"},{flag:"--install"},{flag:"--uninstall"},{flag:"--explore"},{flag:"--list"},{flag:"--manage"},{flag:"--offline",value_type:"boolean"},{flag:"--describe"},{flag:"--markdown"},{flag:"--output"},{flag:"--reload"},{flag:"--watch"},{flag:"--doctor"},{flag:"--catalog"},{flag:"--adopt"},{flag:"--adopt-all"},{flag:"--activate"},{flag:"--deactivate"},{flag:"--project"},{flag:"--local"},{flag:"--global"},{flag:"--gh"},{flag:"--github"},{flag:"--ref"},{flag:"--detail"},{flag:"--trace"},{flag:"--runtime-probe"},{flag:"--fix-managed-state"},{flag:"--isolated"},{flag:"--ignore-global"},{flag:"--strict-exit"},{flag:"--fail-on-warn"}],EXTENSION_SCOPE_FLAG_CONTRACTS=[{flag:"--project"},{flag:"--local"},{flag:"--global"}],EXTENSION_INIT_FLAG_CONTRACTS=[...EXTENSION_SCOPE_FLAG_CONTRACTS,{flag:"--capability"}],PACKAGE_FLAG_CONTRACTS=[...EXTENSION_FLAG_CONTRACTS,{flag:"--declarative"}],PACKAGE_INIT_FLAG_CONTRACTS=[...EXTENSION_INIT_FLAG_CONTRACTS,{flag:"--declarative"}],EXTENSION_INSTALL_FLAG_CONTRACTS=[{flag:"--dry-run"},{flag:"--project"},{flag:"--local"},{flag:"--global"},{flag:"--gh"},{flag:"--github"},{flag:"--ref"}],EXTENSION_UNINSTALL_FLAG_CONTRACTS=EXTENSION_SCOPE_FLAG_CONTRACTS,EXTENSION_EXPLORE_FLAG_CONTRACTS=EXTENSION_SCOPE_FLAG_CONTRACTS,EXTENSION_DESCRIBE_FLAG_CONTRACTS=[...EXTENSION_SCOPE_FLAG_CONTRACTS,{flag:"--markdown"},{flag:"--output"}],EXTENSION_ADOPT_ALL_FLAG_CONTRACTS=EXTENSION_SCOPE_FLAG_CONTRACTS,EXTENSION_ACTIVATE_FLAG_CONTRACTS=EXTENSION_SCOPE_FLAG_CONTRACTS,EXTENSION_DEACTIVATE_FLAG_CONTRACTS=EXTENSION_SCOPE_FLAG_CONTRACTS,EXTENSION_MIGRATE_FLAG_CONTRACTS=[...EXTENSION_SCOPE_FLAG_CONTRACTS,{flag:"--dry-run"}],EXTENSION_MANAGE_FLAG_CONTRACTS=[...EXTENSION_SCOPE_FLAG_CONTRACTS,{flag:"--offline",value_type:"boolean"},{flag:"--runtime-probe"},{flag:"--fix-managed-state"}],EXTENSION_RELOAD_FLAG_CONTRACTS=[...EXTENSION_SCOPE_FLAG_CONTRACTS,{flag:"--watch"}],EXTENSION_DOCTOR_FLAG_CONTRACTS=[...EXTENSION_SCOPE_FLAG_CONTRACTS,{flag:"--detail"},{flag:"--trace"},{flag:"--fix-managed-state"},{flag:"--isolated"},{flag:"--ignore-global"},{flag:"--strict-exit"},{flag:"--fail-on-warn"}],EXTENSION_CATALOG_FLAG_CONTRACTS=[...EXTENSION_SCOPE_FLAG_CONTRACTS,{flag:"--fields",list:!0}],EXTENSION_ADOPT_FLAG_CONTRACTS=[...EXTENSION_SCOPE_FLAG_CONTRACTS,{flag:"--gh"},{flag:"--github"},{flag:"--ref"}],INSTALL_FLAG_CONTRACTS=[{flag:"--dry-run"},{flag:"--project"},{flag:"--local"},{flag:"--global"},{flag:"--gh"},{flag:"--github"},{flag:"--ref"}],UPGRADE_FLAG_CONTRACTS=[{flag:"--dry-run"},{flag:"--cli-only"},{flag:"--packages-only"},{flag:"--project"},{flag:"--local"},{flag:"--global"},{flag:"--repair"},{flag:"--tag"},{flag:"--package-name"}],REINDEX_FLAG_CONTRACTS=[{flag:"--mode"},{flag:"--progress"}],CLOSE_FLAG_CONTRACTS=[{flag:"--release-assignment",value_type:"boolean"},{flag:"--id",value_name:"item-id"},{flag:"--reason",value_name:"value"},{flag:"--close-reason",value_name:"value"},{flag:"--completed-at",value_name:"value"},{flag:"--duplicate-of",value_name:"value"},{flag:"--author",value_name:"value"},{flag:"--message",value_name:"value"},{flag:"--validate-close",value_name:"off|warn|strict"},{flag:"--resolution",value_name:"value"},{flag:"--expected-result",aliases:["--expected_result","--expected"],value_name:"value"},{flag:"--actual-result",aliases:["--actual_result","--actual"],value_name:"value"},{flag:"--force",value_type:"boolean"}],CLOSE_MANY_FLAG_CONTRACTS=[{flag:"--filter-status",list:!0},{flag:"--filter-type"},{flag:"--filter-tag"},{flag:"--filter-priority"},{flag:"--filter-deadline-before"},{flag:"--filter-deadline-after"},{flag:"--filter-updated-after"},{flag:"--filter-updated-before"},{flag:"--filter-created-after"},{flag:"--filter-created-before"},{flag:"--filter-assignee"},{flag:"--filter-assignee-filter"},{flag:"--filter-assignee_filter"},{flag:"--filter-parent"},{flag:"--filter-sprint"},{flag:"--filter-release"},...MANY_GOVERNANCE_AND_CONTENT_FILTER_FLAG_CONTRACTS,{flag:"--reason"},{flag:"--completed-at"},{flag:"--resolution"},{flag:"--expected-result",aliases:["--expected_result","--expected"]},{flag:"--actual-result",aliases:["--actual_result","--actual"]},{flag:"--validate-close"},{flag:"--author"},{flag:"--message"},{flag:"--force"},{flag:"--dry-run"},{flag:"--rollback"},{flag:"--no-checkpoint"}],APPEND_FLAG_CONTRACTS=[{flag:"--id",value_name:"item-id"},{flag:"--body",short:"-b"},{flag:"--text"},{flag:"--author"},{flag:"--message"},{flag:"--force"}],CLAIM_FLAG_CONTRACTS=[{flag:"--start",value_type:"boolean"},{flag:"--id",value_name:"item-id"},{flag:"--author",aliases:["--assignee"]},{flag:"--message"},{flag:"--force"},{flag:"--if-available"},{flag:"--next"},{flag:"--type"},{flag:"--tag"},{flag:"--priority"},{flag:"--assignee-filter"},{flag:"--parent"},{flag:"--sprint"},{flag:"--release"},{flag:"--max-attempts"},{flag:"--include-decisions"},{flag:"--include-gates"},{flag:"--include-containers"},{flag:"--token-budget",aliases:["--token_budget"]},{flag:"--explain-ranking",aliases:["--explain_ranking"]}],RESTORE_FLAG_CONTRACTS=[{flag:"--id",value_name:"item-id"},{flag:"--author"},{flag:"--message"},{flag:"--force"}],DELETE_FLAG_CONTRACTS=[{flag:"--id",value_name:"item-id"},{flag:"--dry-run"},{flag:"--author"},{flag:"--message"},{flag:"--force"}],RELEASE_FLAG_CONTRACTS=[{flag:"--pause",value_type:"boolean"},{flag:"--id",value_name:"item-id"},{flag:"--author",aliases:["--assignee"]},{flag:"--message"},{flag:"--force"}],START_TASK_FLAG_CONTRACTS=[{flag:"--id",value_name:"item-id"},{flag:"--author",aliases:["--assignee"]},{flag:"--message"},{flag:"--force"}],PAUSE_TASK_FLAG_CONTRACTS=[{flag:"--id",value_name:"item-id"},{flag:"--author",aliases:["--assignee"]},{flag:"--message"},{flag:"--force"}],CLOSE_TASK_FLAG_CONTRACTS=[{flag:"--id",value_name:"item-id"},{flag:"--author",aliases:["--assignee"]},{flag:"--message"},{flag:"--validate-close",value_name:"off|warn|strict"},{flag:"--force"}],SCHEDULING_SHORTCUT_COMMON_FLAG_CONTRACTS=[{flag:"--parent"},{flag:"--allow-missing-parent"},{flag:"--tags"},{flag:"--priority"},{flag:"--body"},{flag:"--description"},{flag:"--author"},{flag:"--message"}],MEET_FLAG_CONTRACTS=[{flag:"--start"},{flag:"--duration"},{flag:"--end"},{flag:"--location"},{flag:"--timezone"},{flag:"--all-day"},...SCHEDULING_SHORTCUT_COMMON_FLAG_CONTRACTS],EVENT_FLAG_CONTRACTS=MEET_FLAG_CONTRACTS,REMIND_FLAG_CONTRACTS=[{flag:"--at"},{flag:"--text"},...SCHEDULING_SHORTCUT_COMMON_FLAG_CONTRACTS],TEST_FLAG_CONTRACTS=[{flag:"--list"},{flag:"--id",value_name:"item-id"},{flag:"--add"},{flag:"--add-json"},{flag:"--remove"},{flag:"--remove-index",repeatable:!0},{flag:"--update"},{flag:"--update-index"},{flag:"--set-json"},{flag:"--run"},{flag:"--match"},{flag:"--only-index"},{flag:"--only-last"},{flag:"--background"},{flag:"--timeout"},{flag:"--progress"},{flag:"--env-set"},{flag:"--env-clear"},{flag:"--shared-host-safe"},{flag:"--pm-context"},{flag:"--override-linked-pm-context"},{flag:"--workspace-context"},{flag:"--override-linked-workspace-context"},{flag:"--allow-untrusted-linked-tests"},{flag:"--acknowledge-linked-tests"},{flag:"--fail-on-context-mismatch"},{flag:"--fail-on-skipped"},{flag:"--fail-on-empty-test-run"},{flag:"--require-assertions-for-pm"},{flag:"--check-context"},{flag:"--auto-pm-context"},{flag:"--measure",list:!0,description:"Record numeric measurement evidence; requires --run and an executed linked command."},{flag:"--metric-below"},{flag:"--metric-diff"},{flag:"--author"},{flag:"--message"},{flag:"--force"}],TEST_ALL_FLAG_CONTRACTS=[{flag:"--status"},{flag:"--limit"},{flag:"--offset"},{flag:"--background"},{flag:"--timeout"},{flag:"--progress"},{flag:"--env-set"},{flag:"--env-clear"},{flag:"--shared-host-safe"},{flag:"--pm-context"},{flag:"--override-linked-pm-context"},{flag:"--workspace-context"},{flag:"--override-linked-workspace-context"},{flag:"--allow-untrusted-linked-tests"},{flag:"--fail-on-context-mismatch"},{flag:"--fail-on-skipped"},{flag:"--fail-on-empty-test-run"},{flag:"--require-assertions-for-pm"},{flag:"--check-context"},{flag:"--auto-pm-context"}],TELEMETRY_FLAG_CONTRACTS=[{flag:"--limit"}],TEST_RUNS_FLAG_CONTRACTS=[{flag:"--status"},{flag:"--limit"},{flag:"--stream"},{flag:"--tail"},{flag:"--force"},{flag:"--author"}],GC_FLAG_CONTRACTS=[{flag:"--dry-run"},{flag:"--scope"}],STATS_FLAG_CONTRACTS=[{flag:"--include-empty"},{flag:"--storage"},{flag:"--metadata-coverage"},{flag:"--field-utilization"},{flag:"--by-assignee"},{flag:"--by-tag"},{flag:"--by-priority"},{flag:"--tag-prefix"},{flag:"--analytics"}],DUPLICATES_FLAG_CONTRACTS=[{flag:"--exhaustive",value_type:"boolean"},{flag:"--status",repeatable:!0,list:!0},{flag:"--since"},{flag:"--threshold"},{flag:"--limit"}],HEALTH_FLAG_CONTRACTS=[{flag:"--strict-directories"},{flag:"--require-merge-drivers"},{flag:"--strict-exit"},{flag:"--fail-on-warn"},{flag:"--check-only"},{flag:"--check-telemetry"},{flag:"--no-refresh"},{flag:"--refresh-vectors"},{flag:"--verbose-stale-items"},{flag:"--verbose-author-events"},{flag:"--brief"},{flag:"--summary"},{flag:"--skip-vectors"},{flag:"--skip-integrity"},{flag:"--skip-drift"},{flag:"--full"}],VALIDATE_FLAG_CONTRACTS=[{flag:"--check-completeness",value_type:"boolean"},{flag:"--check-metadata"},{flag:"--metadata-profile"},{flag:"--check-resolution"},{flag:"--check-lifecycle"},{flag:"--check-stale-blockers"},{flag:"--dependency-cycle-severity"},{flag:"--parent-cycle-severity"},{flag:"--check-files"},{flag:"--scan-mode"},{flag:"--include-pm-internals"},{flag:"--verbose-file-lists"},{flag:"--verbose-diagnostics"},{flag:"--all-affected-ids"},{flag:"--strict-exit"},{flag:"--fail-on-warn"},{flag:"--fix-hints"},{flag:"--auto-fix"},{flag:"--dry-run"},{flag:"--fix-scope"},{flag:"--prune-missing"},{flag:"--check-history-drift"},{flag:"--check-command-references"},{flag:"--check-storage-integrity"},{flag:"--counts"},{flag:"--full"}],ASSURANCE_FLAG_CONTRACTS=[{flag:"--definition",value_name:"json"},{flag:"--trigger",value_name:"value"},{flag:"--tree",value_name:"value"},{flag:"--gate",value_name:"id"},{flag:"--limit",value_name:"number"},{flag:"--dry-run"},{flag:"--author",value_name:"value"},{flag:"--message",value_name:"value"},{flag:"--owner",value_name:"item-id"},{flag:"--apply",value_type:"boolean"},{flag:"--enforcement",value_name:"level"}],ITEM_OWNERSHIP_AND_ISSUE_FLAG_CONTRACTS=[{flag:"--assignee"},{flag:"--parent"},{flag:"--allow-missing-parent"},{flag:"--allow-unresolved-deps"},{flag:"--reviewer"},{flag:"--risk"},{flag:"--confidence"},{flag:"--sprint"},{flag:"--release"},{flag:"--blocked-by"},{flag:"--blocked-reason"},{flag:"--unblock-note"},{flag:"--reporter"},{flag:"--severity"},{flag:"--environment"},{flag:"--repro-steps"},{flag:"--resolution"},{flag:"--expected-result"},{flag:"--actual-result"},{flag:"--affected-version"},{flag:"--fixed-version"}],ITEM_PORTFOLIO_FLAG_CONTRACTS=[{flag:"--component"},{flag:"--regression"},{flag:"--customer-impact"},{flag:"--customer_impact"},{flag:"--definition-of-ready"},{flag:"--definition_of_ready"},{flag:"--order"},{flag:"--rank"},{flag:"--goal"},{flag:"--objective"},{flag:"--value"},{flag:"--impact"},{flag:"--outcome"},{flag:"--why-now"},{flag:"--why_now"}],ITEM_CONTENT_METADATA_FLAG_CONTRACTS=[{short:"-p",flag:"--priority"},{flag:"--type"},{flag:"--tags",aliases:["--tag"],list:!0},{flag:"--add-tags",aliases:["--add_tags"]},{flag:"--remove-tags",aliases:["--remove_tags"]},{flag:"--deadline"},{flag:"--estimate"},{flag:"--estimated-minutes"},{flag:"--estimated_minutes"},{flag:"--acceptance-criteria"},{flag:"--acceptance_criteria"},{flag:"--ac"},{flag:"--add-ac",aliases:["--add_ac"]},{flag:"--remove-ac",aliases:["--remove_ac"]}],CREATE_FLAG_CONTRACTS=[{flag:"--stdin-json"},{short:"-t",flag:"--title"},{flag:"--id"},{short:"-d",flag:"--description"},{flag:"--type"},{flag:"--template"},{flag:"--create-mode"},{flag:"--create_mode"},{flag:"--schedule-preset"},{flag:"--schedule_preset"},{short:"-s",flag:"--status"},{flag:"--close-reason"},{flag:"--close_reason"},{flag:"--completed-at"},{flag:"--completed_at"},{short:"-p",flag:"--priority"},{flag:"--tags",aliases:["--tag"],list:!0},{flag:"--add-tags",aliases:["--add_tags"]},{short:"-b",flag:"--body",value_name:"value"},{flag:"--body-file"},{flag:"--deadline"},{flag:"--estimate"},{flag:"--estimated-minutes"},{flag:"--estimated_minutes"},{flag:"--acceptance-criteria"},{flag:"--acceptance_criteria"},{flag:"--ac"},{flag:"--author"},{flag:"--message"},...ITEM_OWNERSHIP_AND_ISSUE_FLAG_CONTRACTS,...ITEM_PORTFOLIO_FLAG_CONTRACTS,{flag:"--blocked_by"},{flag:"--blocked_reason"},{flag:"--unblock_note"},{flag:"--repro_steps"},{flag:"--expected_result"},{flag:"--actual_result"},{flag:"--expected"},{flag:"--actual"},{flag:"--affected_version"},{flag:"--fixed_version"},{flag:"--dep"},{flag:"--type-option"},{flag:"--type_option"},{flag:"--field"},{flag:"--reminder"},{flag:"--event"},{flag:"--comment"},{flag:"--note"},{flag:"--learning"},{flag:"--file",aliases:["--linked-file"]},{flag:"--test",aliases:["--linked-test"]},{flag:"--doc"},{flag:"--unset"},{flag:"--clear-deps"},{flag:"--clear-comments"},{flag:"--clear-notes"},{flag:"--clear-learnings"},{flag:"--clear-files"},{flag:"--clear-tests"},{flag:"--clear-docs"},{flag:"--clear-reminders"},{flag:"--clear-events"},{flag:"--clear-type-options"},{flag:"--allow-duplicate",value_type:"boolean"}],ITEM_MUTATE_FLAG_CONTRACTS=[{flag:"--transaction-id",value_name:"value"},{flag:"--stdin-json"},{flag:"--dry-run"},{flag:"--create-compensation",value_name:"mode"},{flag:"--lock-ttl-seconds",value_name:"n"},{flag:"--lock-wait-ms",value_name:"n"},{flag:"--author",value_name:"value"}],ITEM_COMPLETE_FLAG_CONTRACTS=[{flag:"--id",value_name:"item-id"},{flag:"--transaction-id",value_name:"value",required:!0},{flag:"--reason",value_name:"value"},{flag:"--file",value_name:"value",repeatable:!0},{flag:"--doc",value_name:"value",repeatable:!0},{flag:"--test",value_name:"value",repeatable:!0},{flag:"--comment",value_name:"value",repeatable:!0},{flag:"--note",value_name:"value",repeatable:!0},{flag:"--learning",value_name:"value",repeatable:!0},{flag:"--resolution",value_name:"value"},{flag:"--expected-result",value_name:"value"},{flag:"--actual-result",value_name:"value"},{flag:"--completed-at",value_name:"value"},{flag:"--validate-close",value_name:"off|warn|strict"},{flag:"--lock-ttl-seconds",value_name:"n"},{flag:"--lock-wait-ms",value_name:"n"},{flag:"--dry-run"},{flag:"--force"},{flag:"--author",value_name:"value"}],ITEM_REOPEN_FLAG_CONTRACTS=[{flag:"--id",value_name:"item-id"},{flag:"--status",value_name:"open|in_progress"},{flag:"--expected-result",value_name:"value",aliases:["--expected"]},{flag:"--message",value_name:"value"},{flag:"--force"},{flag:"--author",value_name:"value"}],COPY_FLAG_CONTRACTS=[{flag:"--id",value_name:"item-id"},{flag:"--title",value_name:"value"},{flag:"--author",value_name:"value"},{flag:"--message",value_name:"value"},{flag:"--allow-duplicate",value_type:"boolean"}],FOCUS_FLAG_CONTRACTS=[{flag:"--id",value_name:"item-id"},{flag:"--clear"}],UPDATE_FLAG_CONTRACTS=[{flag:"--id",value_name:"item-id"},{flag:"--stdin-json"},{short:"-t",flag:"--title"},{short:"-d",flag:"--description"},{short:"-b",flag:"--body"},{flag:"--body-file"},{short:"-s",flag:"--status"},{flag:"--close-reason"},{flag:"--close_reason"},{flag:"--completed-at"},...ITEM_CONTENT_METADATA_FLAG_CONTRACTS,...ITEM_OWNERSHIP_AND_ISSUE_FLAG_CONTRACTS,{flag:"--fixed_version"},...ITEM_PORTFOLIO_FLAG_CONTRACTS,{flag:"--author"},{flag:"--message"},{flag:"--blocked_by"},{flag:"--blocked_reason"},{flag:"--unblock_note"},{flag:"--repro_steps"},{flag:"--expected_result"},{flag:"--actual_result"},{flag:"--expected"},{flag:"--actual"},{flag:"--affected_version"},{flag:"--dep"},{flag:"--dep-remove"},{flag:"--dep_remove"},{flag:"--replace-deps"},{flag:"--replace-tests"},{flag:"--replace-files"},{flag:"--replace-docs"},{flag:"--comment"},{flag:"--note"},{flag:"--learning"},{flag:"--file",aliases:["--linked-file"]},{flag:"--test",aliases:["--linked-test"]},{flag:"--doc"},{flag:"--reminder"},{flag:"--event"},{flag:"--type-option"},{flag:"--type_option"},{flag:"--field"},{flag:"--unset"},{flag:"--clear-deps"},{flag:"--clear-comments"},{flag:"--clear-notes"},{flag:"--clear-learnings"},{flag:"--clear-files"},{flag:"--clear-tests"},{flag:"--clear-docs"},{flag:"--clear-reminders"},{flag:"--clear-events"},{flag:"--clear-type-options"},{flag:"--force"}],UPDATE_MANY_FLAG_CONTRACTS=[{flag:"--status",short:"-s"},{flag:"--assignee"},{flag:"--parent"},{flag:"--blocked-by",aliases:["--blocked_by"]},{flag:"--blocked-reason",aliases:["--blocked_reason"]},{flag:"--unblock-note",aliases:["--unblock_note"]},{flag:"--filter-status",list:!0},{flag:"--filter-type",list:!0},{flag:"--filter-tag",list:!0},{flag:"--filter-priority",list:!0},{flag:"--filter-deadline-before"},{flag:"--filter-deadline-after"},{flag:"--filter-updated-after"},{flag:"--filter-updated-before"},{flag:"--filter-created-after"},{flag:"--filter-created-before"},{flag:"--filter-assignee",list:!0},{flag:"--filter-assignee-filter"},{flag:"--filter-assignee_filter"},{flag:"--filter-parent"},{flag:"--filter-sprint",list:!0},{flag:"--filter-release",list:!0},{flag:"--filter-ac-missing"},{flag:"--filter-estimates-missing",aliases:["--filter-estimate-missing"]},{flag:"--filter-resolution-missing"},{flag:"--filter-metadata-missing"},...MANY_GOVERNANCE_AND_CONTENT_FILTER_FLAG_CONTRACTS,{flag:"--dry-run"},{flag:"--rollback"},{flag:"--no-checkpoint"},{short:"-t",flag:"--title"},{short:"-d",flag:"--description"},{short:"-b",flag:"--body"},...ITEM_CONTENT_METADATA_FLAG_CONTRACTS,{flag:"--definition-of-ready"},{flag:"--definition_of_ready"},{flag:"--order"},{flag:"--rank"},{flag:"--goal"},{flag:"--objective"},{flag:"--value"},{flag:"--impact"},{flag:"--outcome"},{flag:"--why-now"},{flag:"--why_now"},{flag:"--reviewer"},{flag:"--risk"},{flag:"--confidence"},{flag:"--sprint"},{flag:"--release"},{flag:"--reporter"},{flag:"--severity"},{flag:"--environment"},{flag:"--repro-steps"},{flag:"--repro_steps"},{flag:"--resolution"},{flag:"--expected-result"},{flag:"--expected_result"},{flag:"--expected"},{flag:"--actual-result"},{flag:"--actual_result"},{flag:"--actual"},{flag:"--affected-version"},{flag:"--affected_version"},{flag:"--fixed-version"},{flag:"--fixed_version"},{flag:"--component"},{flag:"--regression"},{flag:"--customer-impact"},{flag:"--customer_impact"},{flag:"--allow-unresolved-deps"},{flag:"--dep"},{flag:"--dep-remove"},{flag:"--dep_remove"},{flag:"--replace-deps"},{flag:"--replace-tests"},{flag:"--replace-files"},{flag:"--replace-docs"},{flag:"--comment"},{flag:"--note"},{flag:"--learning"},{flag:"--file"},{flag:"--test"},{flag:"--doc"},{flag:"--reminder"},{flag:"--event"},{flag:"--type-option"},{flag:"--type_option"},{flag:"--unset"},{flag:"--clear-deps"},{flag:"--clear-comments"},{flag:"--clear-notes"},{flag:"--clear-learnings"},{flag:"--clear-files"},{flag:"--clear-tests"},{flag:"--clear-docs"},{flag:"--clear-reminders"},{flag:"--clear-events"},{flag:"--clear-type-options"},{flag:"--author"},{flag:"--message"},{flag:"--force"}],CALENDAR_FLAG_CONTRACTS=[{flag:"--view"},{flag:"--date"},{flag:"--from"},{flag:"--to"},{flag:"--past"},{flag:"--full-period"},{flag:"--full_period"},{flag:"--type"},{flag:"--tag"},{flag:"--priority"},{flag:"--status"},{flag:"--assignee"},{flag:"--assignee-filter"},{flag:"--assignee_filter"},{flag:"--sprint"},{flag:"--release"},{flag:"--include"},{flag:"--recurrence-lookahead-days"},{flag:"--recurrence-lookback-days"},{flag:"--occurrence-limit"},{flag:"--limit"},{flag:"--format"}],ACTIVITY_FLAG_CONTRACTS=[{flag:"--id"},{flag:"--op"},{flag:"--author"},{flag:"--from"},{flag:"--to"},{flag:"--limit"},{flag:"--unbounded"},{flag:"--compact"},{flag:"--raw"},{flag:"--full"},{flag:"--provenance"},{flag:"--provenance-summary"},{flag:"--harness",repeatable:!0},{flag:"--agent-instance",repeatable:!0},{flag:"--provenance-filter",repeatable:!0},{flag:"--stream"}],EVENTS_FLAG_CONTRACTS=[{flag:"--since"},{flag:"--type",repeatable:!0},{flag:"--author",repeatable:!0},{flag:"--item",repeatable:!0},{flag:"--limit",value_type:"number"},{flag:"--cursor-mode",value_name:"batch|row"},{flag:"--full"},{flag:"--provenance"},{flag:"--provenance-summary"},{flag:"--harness",repeatable:!0},{flag:"--agent-instance",repeatable:!0},{flag:"--provenance-filter",repeatable:!0},{flag:"--follow"},{flag:"--interval-ms",value_type:"number"}],CONTEXT_FLAG_CONTRACTS=withCursorSemantics([{flag:"--for",value_name:"intent"},{flag:"--date"},{flag:"--from"},{flag:"--to"},{flag:"--past"},{flag:"--type"},{flag:"--tag"},{flag:"--priority"},{flag:"--assignee"},{flag:"--assignee-filter"},{flag:"--assignee_filter"},{flag:"--sprint"},{flag:"--release"},{flag:"--parent"},{flag:"--limit",aliases:["--max-items"]},{flag:"--after"},{flag:"--format"},{flag:"--depth"},{flag:"--fields",list:!0},{flag:"--section"},{flag:"--activity-limit"},{flag:"--stale-threshold"},{flag:"--explain-ranking"},{flag:"--explain_ranking"},{flag:"--token-budget",aliases:["--token_budget"]},{flag:"--no-extension-health"},{flag:"--no-tags"}],new Set(["--limit","--after","--format","--fields","--section","--activity-limit","--stale-threshold","--explain-ranking","--explain_ranking","--no-extension-health","--no-tags"])),GET_FLAG_CONTRACTS=[{flag:"--id",value_name:"item-id"},{flag:"--for",value_name:"intent"},{flag:"--token-budget",aliases:["--token_budget"]},{flag:"--depth"},{flag:"--full",value_type:"boolean"},{flag:"--fields",list:!0},{flag:"--at"},{flag:"--tree"},{flag:"--tree-depth"},{flag:"--tree_depth"},{flag:"--format"}],GUIDE_FLAG_CONTRACTS=[{flag:"--list"},{flag:"--format"},{flag:"--depth"}],DEPS_FLAG_CONTRACTS=[{flag:"--id",value_name:"item-id"},{flag:"--format"},{flag:"--max-depth"},{flag:"--collapse"},{flag:"--summary"},{flag:"--full"},{flag:"--node-limit"},{flag:"--edge-limit"},{flag:"--token-budget"},{flag:"--cursor"},{flag:"--direction"},{flag:"--kind",list:!0}],GRAPH_FLAG_CONTRACTS=[{flag:"--kind",list:!0},{flag:"--max-depth",description:`Maximum traversal depth; paths default to ${GRAPH_QUERY_DEFAULTS.path_depth}.`},{flag:"--limit",description:`Maximum rows per collection; default ${GRAPH_QUERY_DEFAULTS.rows}. Use --full to remove the row cap.`},{flag:"--after"},{flag:"--direction"},{flag:"--max-paths",description:`Maximum enumerated paths; default ${GRAPH_QUERY_DEFAULTS.paths}.`},{flag:"--sample",description:`Maximum evidence examples per audit finding; default ${GRAPH_QUERY_DEFAULTS.samples}.`},{flag:"--exempt-isolate",list:!0},{flag:"--exempt-isolate-type",list:!0},{flag:"--save-baseline"},{flag:"--rebuild"},{flag:"--clear"},{flag:"--summary"},{flag:"--full"}],EVAL_FLAG_CONTRACTS=[{flag:"--mode"},{flag:"--k"},{flag:"--fail-under"},{flag:"--queries"},{flag:"--format"}],WORKSPACE_FLAG_CONTRACTS=[{flag:"--dry-run"},{flag:"--force"},{flag:"--author"},{flag:"--message"}],WORKSPACE_POSITION_FLAG_CONTRACTS=[],NEXT_FLAG_CONTRACTS=[{flag:"--include-decisions"},{flag:"--include-gates"},{flag:"--include-containers"},{flag:"--for",value_name:"intent"},{flag:"--type"},{flag:"--tag"},{flag:"--priority"},{flag:"--assignee"},{flag:"--assignee-filter"},{flag:"--assignee_filter"},{flag:"--sprint"},{flag:"--release"},{flag:"--parent"},{flag:"--limit"},{flag:"--blocked-limit"},{flag:"--blocked_limit"},{flag:"--ready-only"},{flag:"--ready_only"},{flag:"--format"},{flag:"--explain-ranking"},{flag:"--explain_ranking"},{flag:"--token-budget",aliases:["--token_budget"]}],SEARCH_FLAG_CONTRACTS=withCursorSemantics([{flag:"--for",value_name:"intent"},{flag:"--token-budget",aliases:["--token_budget"]},{flag:"--mode"},{flag:"--semantic"},{flag:"--hybrid"},{flag:"--match-mode"},{flag:"--min-score"},{flag:"--count"},{flag:"--semantic-weight"},{flag:"--include-linked"},{flag:"--title-exact"},{flag:"--phrase-exact"},{flag:"--highlight"},{flag:"--compact"},{flag:"--full"},{flag:"--fields",list:!0},{flag:"--format"},{flag:"--limit"},{flag:"--after"},{flag:"--status",list:!0},{flag:"--type",list:!0},{flag:"--tag",aliases:["--tags"],list:!0},{flag:"--priority",list:!0},{flag:"--deadline-before"},{flag:"--deadline-after"},{flag:"--updated-after"},{flag:"--updated-before"},{flag:"--created-after"},{flag:"--created-before"},{flag:"--assignee",list:!0},{flag:"--sprint",list:!0},{flag:"--release",list:!0},{flag:"--parent"},...GOVERNANCE_AND_CONTENT_FILTER_FLAG_CONTRACTS],new Set(["--highlight","--compact","--full","--fields","--format","--limit","--token-budget","--after"])),CONTRACTS_FLAG_CONTRACTS=[{flag:"--action"},{flag:"--command"},{flag:"--summary"},{flag:"--schema-only"},{flag:"--flags-only"},{flag:"--availability-only"},{flag:"--runtime-only"},{flag:"--active-only"},{flag:"--full"}],COMPLETION_FLAG_CONTRACTS=[{flag:"--eager-tags"}];function toUniqueFlagContracts(contracts){const seen=new Set,unique=[];for(const contract of contracts){const aliasKey=(contract.aliases??[]).join(","),key=`${contract.flag}|${contract.short??""}|${aliasKey}`;seen.has(key)||(seen.add(key),unique.push(contract))}return unique}function withSubcommandGlobalFlags(contracts){const byCanonicalFlag=new Map;for(const contract of[...SUBCOMMAND_GLOBAL_FLAG_CONTRACTS,...contracts]){const canonicalFlag=normalizeFlagAliasKey(contract.flag),prior=byCanonicalFlag.get(canonicalFlag),{aliases:declaredAliases,...contractWithoutAliases}=contract,aliases=normalizeUniqueStringList([...declaredAliases??[],...contract.flag===canonicalFlag?[]:[contract.flag]]).filter(alias=>alias!==canonicalFlag),normalizedContract={...contractWithoutAliases,flag:canonicalFlag,...aliases.length>0?{aliases}:{}},mergedAliases=normalizeUniqueStringList([...prior?.aliases??[],...normalizedContract.aliases??[]]);byCanonicalFlag.set(canonicalFlag,prior===void 0?normalizedContract:{...prior,...normalizedContract,...mergedAliases.length>0?{aliases:mergedAliases}:{}})}return withFlagAliasMetadata([...byCanonicalFlag.values()])}const FIXED_STATUS_LIST_COMMAND_ALIASES=["list-draft","list-open","list-in-progress","list-blocked","list-closed","list-canceled"],FIXED_STATUS_LIST_FLAG_CONTRACTS=LIST_FILTER_FLAG_CONTRACTS.filter(contract=>contract.flag!=="--status"&&contract.flag!=="--all");function indexCliFlagContracts(contracts){const index=new Map;for(const contract of contracts)for(const spelling of[contract.flag,...contract.aliases??[]]){const matches=index.get(spelling)??[];matches.push(contract),index.set(spelling,matches)}return index}const PLAN_FLAG_CONTRACT_INDEX=indexCliFlagContracts(PLAN_FLAG_CONTRACTS),ASSURANCE_FLAG_CONTRACT_INDEX=indexCliFlagContracts(ASSURANCE_FLAG_CONTRACTS),POSITIONAL_ACTION_FLAG_INDEX_BY_PARENT=new Map([["assurance",ASSURANCE_FLAG_CONTRACT_INDEX],["plan",PLAN_FLAG_CONTRACT_INDEX],["workspace",indexCliFlagContracts(WORKSPACE_POSITION_FLAG_CONTRACTS)],["workspace snapshot",indexCliFlagContracts(WORKSPACE_FLAG_CONTRACTS)]]);function resolvePmPositionalActionFlagContracts(actions=PM_POSITIONAL_ACTION_CONTRACTS){return actions.map(({command,parent,accepted_flags:acceptedFlags})=>{const parentFlagIndex=POSITIONAL_ACTION_FLAG_INDEX_BY_PARENT.get(parent);if(!parentFlagIndex)throw new Error(`Positional action ${command} has no flag-contract index for ${parent}.`);const selected=acceptedFlags.map(acceptedFlag=>{const matches=parentFlagIndex.get(acceptedFlag)??[];if(matches.length!==1)throw new Error(`Positional action ${command} accepted flag ${acceptedFlag} does not resolve to exactly one ${parent} flag contract.`);return matches[0]});return[command,selected]})}const PM_POSITIONAL_ACTION_FLAG_CONTRACTS=resolvePmPositionalActionFlagContracts(),SUBCOMMAND_FLAG_CONTRACTS_BY_COMMAND=new Map([["list",LIST_FILTER_FLAG_CONTRACTS],["list-all",LIST_FILTER_FLAG_CONTRACTS],...FIXED_STATUS_LIST_COMMAND_ALIASES.map(command=>[command,FIXED_STATUS_LIST_FLAG_CONTRACTS]),["templates",CREATE_FLAG_CONTRACTS],["cal",CALENDAR_FLAG_CONTRACTS],["ctx",CONTEXT_FLAG_CONTRACTS],["test-runs-worker",[]],["init",INIT_FLAG_CONTRACTS],["config",CONFIG_FLAG_CONTRACTS],["extension",EXTENSION_FLAG_CONTRACTS],["package",PACKAGE_FLAG_CONTRACTS],["packages",PACKAGE_FLAG_CONTRACTS],["install",INSTALL_FLAG_CONTRACTS],["upgrade",UPGRADE_FLAG_CONTRACTS],["create",CREATE_FLAG_CONTRACTS],["item",[]],["item mutate",ITEM_MUTATE_FLAG_CONTRACTS],["item complete",ITEM_COMPLETE_FLAG_CONTRACTS],["item reopen",ITEM_REOPEN_FLAG_CONTRACTS],["copy",COPY_FLAG_CONTRACTS],["focus",FOCUS_FLAG_CONTRACTS],["aggregate",AGGREGATE_FLAG_CONTRACTS],["calendar",CALENDAR_FLAG_CONTRACTS],["context",CONTEXT_FLAG_CONTRACTS],["get",GET_FLAG_CONTRACTS],["guide",GUIDE_FLAG_CONTRACTS],["search",SEARCH_FLAG_CONTRACTS],["next",NEXT_FLAG_CONTRACTS],["eval",EVAL_FLAG_CONTRACTS],["workspace",WORKSPACE_FLAG_CONTRACTS],["workspace position",WORKSPACE_POSITION_FLAG_CONTRACTS],["workspace snapshot",WORKSPACE_FLAG_CONTRACTS],["workspace snapshot create",WORKSPACE_FLAG_CONTRACTS],["workspace snapshot list",WORKSPACE_FLAG_CONTRACTS],["workspace snapshot inspect",WORKSPACE_FLAG_CONTRACTS],["workspace snapshot restore",WORKSPACE_FLAG_CONTRACTS],["workspace snapshot delete",WORKSPACE_FLAG_CONTRACTS],["history",HISTORY_FLAG_CONTRACTS],["history-redact",HISTORY_REDACT_FLAG_CONTRACTS],["history-repair",HISTORY_REPAIR_FLAG_CONTRACTS],["history-author-acknowledge",HISTORY_AUTHOR_ACKNOWLEDGE_FLAG_CONTRACTS],["history-compact",HISTORY_COMPACT_FLAG_CONTRACTS],["history-attest",HISTORY_ATTEST_FLAG_CONTRACTS],["merge",MERGE_FLAG_CONTRACTS],["schema",SCHEMA_FLAG_CONTRACTS],["profile",PROFILE_FLAG_CONTRACTS],["plan",PLAN_FLAG_CONTRACTS],["activity",ACTIVITY_FLAG_CONTRACTS],["events",EVENTS_FLAG_CONTRACTS],["restore",RESTORE_FLAG_CONTRACTS],["update",UPDATE_FLAG_CONTRACTS],["update-many",UPDATE_MANY_FLAG_CONTRACTS],["close",CLOSE_FLAG_CONTRACTS],["close-many",CLOSE_MANY_FLAG_CONTRACTS],["delete",DELETE_FLAG_CONTRACTS],["append",APPEND_FLAG_CONTRACTS],["comments",COMMENTS_FLAG_CONTRACTS],["notes",NOTES_FLAG_CONTRACTS],["learnings",LEARNINGS_FLAG_CONTRACTS],["files",FILES_FLAG_CONTRACTS],["docs",DOCS_FLAG_CONTRACTS],["deps",DEPS_FLAG_CONTRACTS],["graph",GRAPH_FLAG_CONTRACTS],["test",TEST_FLAG_CONTRACTS],["test-all",TEST_ALL_FLAG_CONTRACTS],["telemetry",TELEMETRY_FLAG_CONTRACTS],["health",HEALTH_FLAG_CONTRACTS],["assurance",ASSURANCE_FLAG_CONTRACTS],...PM_POSITIONAL_ACTION_FLAG_CONTRACTS,["validate",VALIDATE_FLAG_CONTRACTS],["gc",GC_FLAG_CONTRACTS],["stats",STATS_FLAG_CONTRACTS],["duplicates",DUPLICATES_FLAG_CONTRACTS],["contracts",CONTRACTS_FLAG_CONTRACTS],["completion",COMPLETION_FLAG_CONTRACTS],["claim",CLAIM_FLAG_CONTRACTS],["release",RELEASE_FLAG_CONTRACTS],["start-task",START_TASK_FLAG_CONTRACTS],["pause-task",PAUSE_TASK_FLAG_CONTRACTS],["close-task",CLOSE_TASK_FLAG_CONTRACTS],["meet",MEET_FLAG_CONTRACTS],["event",EVENT_FLAG_CONTRACTS],["remind",REMIND_FLAG_CONTRACTS]]),EXTENSION_LIFECYCLE_FLAG_CONTRACTS_BY_SUBCOMMAND=new Map([["install",EXTENSION_INSTALL_FLAG_CONTRACTS],["uninstall",EXTENSION_UNINSTALL_FLAG_CONTRACTS],["explore",EXTENSION_EXPLORE_FLAG_CONTRACTS],["manage",EXTENSION_MANAGE_FLAG_CONTRACTS],["describe",EXTENSION_DESCRIBE_FLAG_CONTRACTS],["reload",EXTENSION_RELOAD_FLAG_CONTRACTS],["doctor",EXTENSION_DOCTOR_FLAG_CONTRACTS],["catalog",EXTENSION_CATALOG_FLAG_CONTRACTS],["list",EXTENSION_CATALOG_FLAG_CONTRACTS],["adopt",EXTENSION_ADOPT_FLAG_CONTRACTS],["adopt-all",EXTENSION_ADOPT_ALL_FLAG_CONTRACTS],["activate",EXTENSION_ACTIVATE_FLAG_CONTRACTS],["deactivate",EXTENSION_DEACTIVATE_FLAG_CONTRACTS],["migrate",EXTENSION_MIGRATE_FLAG_CONTRACTS]]);function normalizeCommandNameForContracts(commandName){return typeof commandName!="string"?"":resolvePmHistoryOperation(commandName.trim().toLowerCase())}function hasSubcommandFlagContractsForCommand(commandName){const normalized=normalizeCommandNameForContracts(commandName);if(SUBCOMMAND_FLAG_CONTRACTS_BY_COMMAND.has(normalized))return!0;const[rootCommand,lifecycleSubcommand,...extraParts]=normalized.split(/\s+/);return(rootCommand==="extension"||rootCommand==="package"||rootCommand==="packages")&&lifecycleSubcommand!==void 0&&extraParts.length===0&&(lifecycleSubcommand==="init"||lifecycleSubcommand==="scaffold"||EXTENSION_LIFECYCLE_FLAG_CONTRACTS_BY_SUBCOMMAND.has(lifecycleSubcommand))}function resolveExtensionLifecycleFlagContracts(rootCommand,lifecycleSubcommand){return lifecycleSubcommand==="init"||lifecycleSubcommand==="scaffold"?rootCommand==="extension"?EXTENSION_INIT_FLAG_CONTRACTS:PACKAGE_INIT_FLAG_CONTRACTS:EXTENSION_LIFECYCLE_FLAG_CONTRACTS_BY_SUBCOMMAND.get(lifecycleSubcommand)??[]}function resolveSubcommandFlagContractsForCommand(commandName){const normalized=normalizeCommandNameForContracts(commandName);if(normalized.length===0)return withSubcommandGlobalFlags([]);const[rootCommand,lifecycleSubcommand,...extraParts]=normalized.split(/\s+/);if((rootCommand==="extension"||rootCommand==="package"||rootCommand==="packages")&&lifecycleSubcommand!==void 0&&extraParts.length===0)return withSubcommandGlobalFlags((rootCommand==="package"||rootCommand==="packages")&&lifecycleSubcommand==="upgrade"?UPGRADE_FLAG_CONTRACTS:resolveExtensionLifecycleFlagContracts(rootCommand,lifecycleSubcommand));const contracts=SUBCOMMAND_FLAG_CONTRACTS_BY_COMMAND.get(normalized)??[];return withSubcommandGlobalFlags(contracts)}function toCompletionFlagString(flagContracts,includeGlobal=!0){const scoped=withFlagAliasMetadata(flagContracts).flatMap(entry=>[entry.short,entry.flag,...entry.aliases??[]]).filter(value=>!!value),all=includeGlobal?[...scoped,...SUBCOMMAND_GLOBAL_FLAG_CONTRACTS.flatMap(entry=>[entry.short,entry.flag,...entry.aliases??[]]).filter(value=>!!value)]:scoped;return normalizeUniqueStringList(all).join(" ")}export{ACTIVITY_FLAG_CONTRACTS,AGGREGATE_FLAG_CONTRACTS,APPEND_FLAG_CONTRACTS,ASSURANCE_FLAG_CONTRACTS,CALENDAR_FLAG_CONTRACTS,CLAIM_FLAG_CONTRACTS,CLOSE_FLAG_CONTRACTS,CLOSE_MANY_FLAG_CONTRACTS,CLOSE_TASK_FLAG_CONTRACTS,COMMENTS_FLAG_CONTRACTS,COMPLETION_FLAG_CONTRACTS,CONFIG_FLAG_CONTRACTS,CONTEXT_FLAG_CONTRACTS,CONTRACTS_FLAG_CONTRACTS,COPY_FLAG_CONTRACTS,CREATE_FLAG_CONTRACTS,DELETE_FLAG_CONTRACTS,DEPS_FLAG_CONTRACTS,DOCS_FLAG_CONTRACTS,DUPLICATES_FLAG_CONTRACTS,EVAL_FLAG_CONTRACTS,EVENTS_FLAG_CONTRACTS,EVENT_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_SCOPE_FLAG_CONTRACTS,EXTENSION_UNINSTALL_FLAG_CONTRACTS,FILES_FLAG_CONTRACTS,FOCUS_FLAG_CONTRACTS,GC_FLAG_CONTRACTS,GET_FLAG_CONTRACTS,GLOBAL_FLAG_CONTRACTS,GRAPH_FLAG_CONTRACTS,GUIDE_FLAG_CONTRACTS,HEALTH_FLAG_CONTRACTS,HISTORY_ATTEST_FLAG_CONTRACTS,HISTORY_AUTHOR_ACKNOWLEDGE_FLAG_CONTRACTS,HISTORY_COMPACT_FLAG_CONTRACTS,HISTORY_FLAG_CONTRACTS,HISTORY_REDACT_FLAG_CONTRACTS,HISTORY_REPAIR_FLAG_CONTRACTS,INIT_FLAG_CONTRACTS,INSTALL_FLAG_CONTRACTS,ITEM_COMPLETE_FLAG_CONTRACTS,ITEM_MUTATE_FLAG_CONTRACTS,ITEM_REOPEN_FLAG_CONTRACTS,LEARNINGS_FLAG_CONTRACTS,LIST_FILTER_FLAG_CONTRACTS,MEET_FLAG_CONTRACTS,MERGE_FLAG_CONTRACTS,NEXT_FLAG_CONTRACTS,NOTES_FLAG_CONTRACTS,PACKAGE_FLAG_CONTRACTS,PACKAGE_INIT_FLAG_CONTRACTS,PAUSE_TASK_FLAG_CONTRACTS,PLAN_FLAG_CONTRACTS,PM_POSITIONAL_ACTION_FLAG_CONTRACTS,PROFILE_FLAG_CONTRACTS,REINDEX_FLAG_CONTRACTS,RELEASE_FLAG_CONTRACTS,REMIND_FLAG_CONTRACTS,RESTORE_FLAG_CONTRACTS,SCHEMA_FLAG_CONTRACTS,SEARCH_FLAG_CONTRACTS,START_TASK_FLAG_CONTRACTS,STATS_FLAG_CONTRACTS,SUBCOMMAND_GLOBAL_FLAG_CONTRACTS,TELEMETRY_FLAG_CONTRACTS,TEST_ALL_FLAG_CONTRACTS,TEST_FLAG_CONTRACTS,TEST_RUNS_FLAG_CONTRACTS,UPDATE_FLAG_CONTRACTS,UPDATE_MANY_FLAG_CONTRACTS,UPGRADE_FLAG_CONTRACTS,VALIDATE_FLAG_CONTRACTS,WORKSPACE_FLAG_CONTRACTS,WORKSPACE_POSITION_FLAG_CONTRACTS,compactFlagAliasContracts,hasSubcommandFlagContractsForCommand,resolvePmPositionalActionFlagContracts,resolveSubcommandFlagContractsForCommand,toCompletionFlagString,toUniqueFlagContracts,withFlagAliasMetadata};
1
+ (function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="2b953bb2-386d-5eaf-abc6-95cb0105f44e")}catch{}})();import{resolvePmHistoryOperation}from"./command-aliases.js";import{normalizeUniqueStringList}from"./string-lists.js";import{GRAPH_QUERY_DEFAULTS}from"../graph/query-contracts.js";import{RESERVED_EXTENSION_HOST_FLAGS}from"../../core/extensions/reserved-host-flags.js";import{PM_POSITIONAL_ACTION_CONTRACTS}from"./grammar-contracts.js";function normalizeFlagAliasKey(flag){return flag.startsWith("--")?`--${flag.slice(2).replaceAll("_","-")}`:flag}function withFlagAliasMetadata(flagContracts){const aliasesByCanonical=new Map;for(const contract of flagContracts){const canonical=normalizeFlagAliasKey(contract.flag),bucket=aliasesByCanonical.get(canonical)??new Set;contract.flag!==canonical&&bucket.add(contract.flag);for(const alias of contract.aliases??[])alias!==canonical&&bucket.add(alias);aliasesByCanonical.set(canonical,bucket)}return flagContracts.map(contract=>{const canonical=normalizeFlagAliasKey(contract.flag);if(contract.flag!==canonical)return contract;const aliases=normalizeUniqueStringList([...contract.aliases??[],...aliasesByCanonical.get(canonical)]).filter(alias=>alias!==canonical);return aliases.length===0?contract:{...contract,aliases}})}function compactFlagAliasContracts(flagContracts){const withAliases=withFlagAliasMetadata(flagContracts),canonicalFlags=new Set(withAliases.map(contract=>contract.flag));return withAliases.filter(contract=>{const canonical=normalizeFlagAliasKey(contract.flag);return contract.flag===canonical||!canonicalFlags.has(canonical)})}const SUBCOMMAND_GLOBAL_FLAG_CONTRACTS=RESERVED_EXTENSION_HOST_FLAGS.map(definition=>({flag:definition.flag,reservation_scope:"inherited",...definition.aliases?{aliases:[...definition.aliases]}:{},...definition.value_name?{value_name:definition.value_name}:{}})),GLOBAL_FLAG_CONTRACTS=[...SUBCOMMAND_GLOBAL_FLAG_CONTRACTS,{flag:"--version",value_type:"boolean",reservation_scope:"root_only"},{flag:"--all",value_type:"boolean",reservation_scope:"root_only",description:"Expand root help to every command."},{flag:"--explain",value_type:"boolean",reservation_scope:"root_only",description:"Expand root help with command guidance."}],GOVERNANCE_AND_CONTENT_FILTER_FLAG_CONTRACTS=[{flag:"--filter-reviewer-missing"},{flag:"--filter-risk-missing"},{flag:"--filter-confidence-missing"},{flag:"--filter-sprint-missing"},{flag:"--filter-release-missing"},{flag:"--has-notes"},{flag:"--no-notes"},{flag:"--has-learnings"},{flag:"--no-learnings"},{flag:"--has-files"},{flag:"--no-files"},{flag:"--filter-files-missing"},{flag:"--has-docs"},{flag:"--no-docs"},{flag:"--filter-docs-missing"},{flag:"--has-tests"},{flag:"--no-tests"},{flag:"--has-comments"},{flag:"--no-comments"},{flag:"--has-deps"},{flag:"--no-deps"},{flag:"--has-body"},{flag:"--empty-body"},{flag:"--has-linked-command"},{flag:"--no-linked-command"}],MANY_GOVERNANCE_AND_CONTENT_FILTER_FLAG_CONTRACTS=[{flag:"--filter-reviewer-missing"},{flag:"--filter-risk-missing"},{flag:"--filter-confidence-missing"},{flag:"--filter-sprint-missing"},{flag:"--filter-release-missing"},{flag:"--filter-has-notes"},{flag:"--filter-no-notes"},{flag:"--filter-has-learnings"},{flag:"--filter-no-learnings"},{flag:"--filter-has-files"},{flag:"--filter-no-files"},{flag:"--filter-has-docs"},{flag:"--filter-no-docs"},{flag:"--filter-has-tests"},{flag:"--filter-no-tests"},{flag:"--filter-has-comments"},{flag:"--filter-no-comments"},{flag:"--filter-has-deps"},{flag:"--filter-no-deps"},{flag:"--filter-has-body"},{flag:"--filter-empty-body"},{flag:"--filter-has-linked-command"},{flag:"--filter-no-linked-command"},{flag:"--ids",list:!0},{flag:"--limit"},{flag:"--offset"}],LIST_FILTER_FLAG_CONTRACTS=withCursorSemantics([{flag:"--for",value_name:"intent"},{flag:"--token-budget",aliases:["--token_budget"]},{flag:"--status",list:!0},{flag:"--all",value_type:"boolean"},{flag:"--type",list:!0},{flag:"--tag",aliases:["--tags"],list:!0},{flag:"--priority",list:!0},{flag:"--deadline-before"},{flag:"--deadline-after"},{flag:"--today"},{flag:"--recent"},{flag:"--updated-after"},{flag:"--updated-before"},{flag:"--created-after"},{flag:"--created-before"},{flag:"--ids",list:!0},{flag:"--assignee",list:!0},{flag:"--assignee-filter"},{flag:"--assignee_filter"},{flag:"--parent"},{flag:"--sprint",list:!0},{flag:"--release",list:!0},{flag:"--filter-ac-missing"},{flag:"--filter-estimates-missing",aliases:["--filter-estimate-missing"]},{flag:"--filter-resolution-missing"},{flag:"--filter-metadata-missing"},...GOVERNANCE_AND_CONTENT_FILTER_FLAG_CONTRACTS,{flag:"--limit"},{flag:"--offset"},{flag:"--after"},{flag:"--no-truncate"},{flag:"--compact"},{flag:"--brief"},{flag:"--full"},{flag:"--fields",list:!0},{flag:"--sort"},{flag:"--order"},{flag:"--tree"},{flag:"--tree-depth"},{flag:"--tree_depth"},{flag:"--include-body"},{flag:"--strict-read"},{flag:"--format"},{flag:"--stream"}],new Set(["--limit","--token-budget","--offset","--after","--no-truncate","--compact","--brief","--full","--fields","--include-body","--strict-read"])),AGGREGATE_FLAG_CONTRACTS=[{flag:"--group-by",list:!0},{flag:"--set-mode"},{flag:"--limit"},{flag:"--after"},{flag:"--count"},{flag:"--completion"},{flag:"--sum"},{flag:"--avg"},{flag:"--include-unparented"},{flag:"--include_unparented"},{flag:"--status",list:!0},{flag:"--type",list:!0},{flag:"--tag",list:!0},{flag:"--priority",list:!0},{flag:"--deadline-before"},{flag:"--deadline-after"},{flag:"--assignee",list:!0},{flag:"--assignee-filter"},{flag:"--assignee_filter"},{flag:"--parent"},{flag:"--sprint",list:!0},{flag:"--release",list:!0}],COMMENTS_FLAG_CONTRACTS=[{flag:"--id",value_name:"item-id"},{flag:"--add",aliases:["--comment","--body","--text"]},{flag:"--stdin"},{flag:"--file"},{flag:"--edit"},{flag:"--delete"},{flag:"--limit"},{flag:"--full-history"},{flag:"--if-absent",value_type:"boolean"},{flag:"--author"},{flag:"--message"},{flag:"--force"}];function withCursorSemantics(contracts,presentationFlags){return contracts.map(contract=>presentationFlags.has(contract.flag)?{...contract,cursor_semantics:"presentation"}:contract)}const NOTES_FLAG_CONTRACTS=[{flag:"--id",value_name:"item-id"},{flag:"--add",aliases:["--note","--text"]},{flag:"--add-json"},{flag:"--stdin"},{flag:"--file"},{flag:"--edit"},{flag:"--delete"},{flag:"--limit"},{flag:"--since"},{flag:"--event-type"},{flag:"--include-meta"},{flag:"--full-history"},{flag:"--if-absent",value_type:"boolean"},{flag:"--author"},{flag:"--message"},{flag:"--force"}],LEARNINGS_FLAG_CONTRACTS=[{flag:"--id",value_name:"item-id"},{flag:"--add",aliases:["--learning","--text"]},{flag:"--stdin"},{flag:"--file"},{flag:"--edit"},{flag:"--delete"},{flag:"--limit"},{flag:"--full-history"},{flag:"--if-absent",value_type:"boolean"},{flag:"--author"},{flag:"--message"},{flag:"--force"}],FILES_FLAG_CONTRACTS=[{flag:"--id",value_name:"item-id"},{flag:"--add"},{flag:"--add-glob"},{flag:"--remove"},{flag:"--migrate"},{flag:"--note"},{flag:"--list"},{flag:"--append-stable"},{flag:"--validate-paths"},{flag:"--scope"},{flag:"--limit"},{flag:"--offset"},{flag:"--no-truncate"},{flag:"--strict-read"},{flag:"--explain"},{flag:"--lines",value_name:"start:end"},{flag:"--decision-depth",value_name:"n",value_type:"number"},{flag:"--author"},{flag:"--message"},{flag:"--force"}],DOCS_FLAG_CONTRACTS=[{flag:"--id",value_name:"item-id"},{flag:"--add"},{flag:"--add-glob"},{flag:"--remove"},{flag:"--migrate"},{flag:"--note"},{flag:"--list"},{flag:"--validate-paths"},{flag:"--author"},{flag:"--message"},{flag:"--force"}],HISTORY_FLAG_CONTRACTS=[{flag:"--id",value_name:"item-id"},{flag:"--limit"},{flag:"--compact"},{flag:"--full"},{flag:"--provenance"},{flag:"--provenance-summary"},{flag:"--harness",repeatable:!0},{flag:"--agent-instance",repeatable:!0},{flag:"--provenance-filter",repeatable:!0},{flag:"--diff"},{flag:"--field"},{flag:"--verify"},{flag:"--strict-exit"},{flag:"--fail-on-warn"},{flag:"--format"}],MERGE_FLAG_CONTRACTS=[{flag:"--dry-run"},{flag:"--message"},{flag:"--force"},{flag:"--include-reconciled"},{flag:"--output"},{flag:"--item-path"},{flag:"--prefer"}],HISTORY_REDACT_FLAG_CONTRACTS=[{flag:"--id",value_name:"item-id"},{flag:"--literal"},{flag:"--regex"},{flag:"--replacement"},{flag:"--dry-run"},{flag:"--author"},{flag:"--message"},{flag:"--force"}],HISTORY_REPAIR_FLAG_CONTRACTS=[{flag:"--id",value_name:"item-id"},{flag:"--all"},{flag:"--dry-run"},{flag:"--normalize-provenance"},{flag:"--salvage-tail",value_type:"boolean"},{flag:"--author"},{flag:"--message"},{flag:"--force"}],HISTORY_AUTHOR_ACKNOWLEDGE_FLAG_CONTRACTS=[{flag:"--event",repeatable:!0},{flag:"--all-actionable"},{flag:"--dry-run"},{flag:"--plan-fingerprint"},{flag:"--limit",value_type:"number"},{flag:"--attributed-author",aliases:["--attributed_author"]},{flag:"--reviewer"},{flag:"--reason"}],HISTORY_COMPACT_FLAG_CONTRACTS=[{flag:"--id",value_name:"item-id"},{flag:"--before"},{flag:"--ids",list:!0},{flag:"--all-over",value_type:"number"},{flag:"--closed"},{flag:"--all-streams"},{flag:"--min-entries",value_type:"number"},{flag:"--dry-run"},{flag:"--author"},{flag:"--message"},{flag:"--force"}],HISTORY_ATTEST_FLAG_CONTRACTS=[{flag:"--verify",value_name:"file",value_type:"string"},{flag:"--output",value_name:"file",value_type:"string"},{flag:"--hash-algorithm",value_name:"name",value_type:"string"}],SCHEMA_FLAG_CONTRACTS=[{flag:"--definition",value_name:"json"},{flag:"--policy",value_name:"id"},{flag:"--message",value_name:"value"},{flag:"--description"},{flag:"--default-status",aliases:["--default_status"]},{flag:"--folder"},{flag:"--alias"},{flag:"--role"},{flag:"--order"},{flag:"--type"},{flag:"--commands"},{flag:"--cli-flag"},{flag:"--required"},{flag:"--required-on-create"},{flag:"--no-allow-unset"},{flag:"--required-types"},{flag:"--infer"},{flag:"--min-count"},{flag:"--apply",value_type:"boolean"},{flag:"--to"},{flag:"--migration-id",aliases:["--migration_id"]},{flag:"--dry-run"},{flag:"--author"},{flag:"--force"}],PROFILE_FLAG_CONTRACTS=[{flag:"--dry-run"},{flag:"--author"},{flag:"--force"}],PLAN_FLAG_CONTRACTS=[{flag:"--title"},{flag:"--description"},{flag:"--scope"},{flag:"--parent"},{flag:"--related"},{flag:"--blocks"},{flag:"--blocked-by",aliases:["--blocked_by"]},{flag:"--harness"},{flag:"--mode"},{flag:"--resume-context",aliases:["--resume_context"]},{flag:"--tags",aliases:["--tag"],list:!0},{flag:"--priority"},{flag:"--status",short:"-s"},{flag:"--create-mode",aliases:["--create_mode"]},{flag:"--deadline"},{flag:"--estimate",aliases:["--estimated-minutes","--estimated_minutes"]},{flag:"--acceptance-criteria",aliases:["--acceptance_criteria","--ac"],repeatable:!0},{flag:"--definition-of-ready",aliases:["--definition_of_ready"]},{flag:"--order"},{flag:"--rank"},{flag:"--goal"},{flag:"--objective"},{flag:"--value"},{flag:"--impact"},{flag:"--outcome"},{flag:"--why-now",aliases:["--why_now"]},{flag:"--assignee"},{flag:"--reviewer"},{flag:"--risk"},{flag:"--confidence"},{flag:"--sprint"},{flag:"--release"},{flag:"--blocked-reason",aliases:["--blocked_reason"]},{flag:"--unblock-note",aliases:["--unblock_note"]},{flag:"--reporter"},{flag:"--severity"},{flag:"--environment"},{flag:"--repro-steps",aliases:["--repro_steps"]},{flag:"--resolution"},{flag:"--expected-result",aliases:["--expected_result","--expected"]},{flag:"--actual-result",aliases:["--actual_result","--actual"]},{flag:"--affected-version",aliases:["--affected_version"]},{flag:"--fixed-version",aliases:["--fixed_version"]},{flag:"--component"},{flag:"--regression"},{flag:"--customer-impact",aliases:["--customer_impact"]},{flag:"--comment",repeatable:!0},{flag:"--note",repeatable:!0},{flag:"--learning",repeatable:!0},{flag:"--reminder",repeatable:!0},{flag:"--event",repeatable:!0},{flag:"--type-option",aliases:["--type_option"],repeatable:!0},{flag:"--body"},{flag:"--claim"},{flag:"--from-search",aliases:["--from_search"]},{flag:"--template"},{flag:"--step-title",aliases:["--step_title"]},{flag:"--step"},{flag:"--step-body",aliases:["--step_body"]},{flag:"--step-owner",aliases:["--step_owner"]},{flag:"--step-status",aliases:["--step_status"]},{flag:"--step-evidence",aliases:["--step_evidence"]},{flag:"--step-blocked-reason",aliases:["--step_blocked_reason"]},{flag:"--step-replacement",aliases:["--step_replacement"]},{flag:"--depends-on",aliases:["--depends_on"]},{flag:"--link"},{flag:"--link-kind",aliases:["--link_kind"]},{flag:"--link-note",aliases:["--link_note"]},{flag:"--promote-to-item-dep",aliases:["--promote_to_item_dep"]},{flag:"--allow-multiple-active",aliases:["--allow_multiple_active"]},{flag:"--file"},{flag:"--test"},{flag:"--doc"},{flag:"--decision-text",aliases:["--decision_text","--decision"]},{flag:"--decision-rationale",aliases:["--decision_rationale"]},{flag:"--decision-evidence",aliases:["--decision_evidence"]},{flag:"--discovery-text",aliases:["--discovery_text","--discovery"]},{flag:"--validation-text",aliases:["--validation_text","--validation"]},{flag:"--validation-command",aliases:["--validation_command"]},{flag:"--validation-expected",aliases:["--validation_expected"]},{flag:"--depth"},{flag:"--field"},{flag:"--fields",list:!0},{flag:"--steps"},{flag:"--materialize-type",aliases:["--materialize_type"]},{flag:"--materialize-parent",aliases:["--materialize_parent"]},{flag:"--materialize-tags",aliases:["--materialize_tags"]},{flag:"--author"},{flag:"--message"},{flag:"--force"}],INIT_FLAG_CONTRACTS=[{flag:"--id-prefix",aliases:["--prefix"]},{flag:"--preset"},{flag:"--type-preset"},{flag:"--defaults",short:"-y",aliases:["--yes"]},{flag:"--author"},{flag:"--agent-guidance"},{flag:"--with-packages"},{flag:"--no-merge-fence"},{flag:"--workspace"},{flag:"--force"},{flag:"--verbose"}],CONFIG_FLAG_CONTRACTS=[{flag:"--value",value_name:"value"},{flag:"--criterion"},{flag:"--clear-criteria"},{flag:"--format"},{flag:"--policy"},{flag:"--default-depth"},{flag:"--activity-limit"},{flag:"--stale-threshold-days"},{flag:"--section-hierarchy"},{flag:"--section-activity"},{flag:"--section-progress"},{flag:"--section-blockers"},{flag:"--section-files"},{flag:"--section-workload"},{flag:"--section-staleness"},{flag:"--section-tests"}],EXTENSION_FLAG_CONTRACTS=[{flag:"--dry-run"},{flag:"--init"},{flag:"--scaffold"},{flag:"--capability"},{flag:"--install"},{flag:"--uninstall"},{flag:"--explore"},{flag:"--list"},{flag:"--manage"},{flag:"--offline",value_type:"boolean"},{flag:"--describe"},{flag:"--markdown"},{flag:"--output"},{flag:"--reload"},{flag:"--watch"},{flag:"--doctor"},{flag:"--catalog"},{flag:"--adopt"},{flag:"--adopt-all"},{flag:"--activate"},{flag:"--deactivate"},{flag:"--project"},{flag:"--local"},{flag:"--global"},{flag:"--gh"},{flag:"--github"},{flag:"--ref"},{flag:"--detail"},{flag:"--trace"},{flag:"--runtime-probe"},{flag:"--fix-managed-state"},{flag:"--isolated"},{flag:"--ignore-global"},{flag:"--strict-exit"},{flag:"--fail-on-warn"}],EXTENSION_SCOPE_FLAG_CONTRACTS=[{flag:"--project"},{flag:"--local"},{flag:"--global"}],EXTENSION_INIT_FLAG_CONTRACTS=[...EXTENSION_SCOPE_FLAG_CONTRACTS,{flag:"--capability"}],PACKAGE_FLAG_CONTRACTS=[...EXTENSION_FLAG_CONTRACTS,{flag:"--declarative"}],PACKAGE_INIT_FLAG_CONTRACTS=[...EXTENSION_INIT_FLAG_CONTRACTS,{flag:"--declarative"}],EXTENSION_INSTALL_FLAG_CONTRACTS=[{flag:"--dry-run"},{flag:"--project"},{flag:"--local"},{flag:"--global"},{flag:"--gh"},{flag:"--github"},{flag:"--ref"}],EXTENSION_UNINSTALL_FLAG_CONTRACTS=EXTENSION_SCOPE_FLAG_CONTRACTS,EXTENSION_EXPLORE_FLAG_CONTRACTS=EXTENSION_SCOPE_FLAG_CONTRACTS,EXTENSION_DESCRIBE_FLAG_CONTRACTS=[...EXTENSION_SCOPE_FLAG_CONTRACTS,{flag:"--markdown"},{flag:"--output"}],EXTENSION_ADOPT_ALL_FLAG_CONTRACTS=EXTENSION_SCOPE_FLAG_CONTRACTS,EXTENSION_ACTIVATE_FLAG_CONTRACTS=EXTENSION_SCOPE_FLAG_CONTRACTS,EXTENSION_DEACTIVATE_FLAG_CONTRACTS=EXTENSION_SCOPE_FLAG_CONTRACTS,EXTENSION_MIGRATE_FLAG_CONTRACTS=[...EXTENSION_SCOPE_FLAG_CONTRACTS,{flag:"--dry-run"}],EXTENSION_MANAGE_FLAG_CONTRACTS=[...EXTENSION_SCOPE_FLAG_CONTRACTS,{flag:"--offline",value_type:"boolean"},{flag:"--runtime-probe"},{flag:"--fix-managed-state"}],EXTENSION_RELOAD_FLAG_CONTRACTS=[...EXTENSION_SCOPE_FLAG_CONTRACTS,{flag:"--watch"}],EXTENSION_DOCTOR_FLAG_CONTRACTS=[...EXTENSION_SCOPE_FLAG_CONTRACTS,{flag:"--detail"},{flag:"--trace"},{flag:"--fix-managed-state"},{flag:"--isolated"},{flag:"--ignore-global"},{flag:"--strict-exit"},{flag:"--fail-on-warn"}],EXTENSION_CATALOG_FLAG_CONTRACTS=[...EXTENSION_SCOPE_FLAG_CONTRACTS,{flag:"--fields",list:!0}],EXTENSION_ADOPT_FLAG_CONTRACTS=[...EXTENSION_SCOPE_FLAG_CONTRACTS,{flag:"--gh"},{flag:"--github"},{flag:"--ref"}],INSTALL_FLAG_CONTRACTS=[{flag:"--dry-run"},{flag:"--project"},{flag:"--local"},{flag:"--global"},{flag:"--gh"},{flag:"--github"},{flag:"--ref"}],UPGRADE_FLAG_CONTRACTS=[{flag:"--dry-run"},{flag:"--cli-only"},{flag:"--packages-only"},{flag:"--project"},{flag:"--local"},{flag:"--global"},{flag:"--repair"},{flag:"--tag"},{flag:"--package-name"}],REINDEX_FLAG_CONTRACTS=[{flag:"--mode"},{flag:"--progress"}],CLOSE_FLAG_CONTRACTS=[{flag:"--release-assignment",value_type:"boolean"},{flag:"--id",value_name:"item-id"},{flag:"--reason",value_name:"value"},{flag:"--close-reason",value_name:"value"},{flag:"--completed-at",value_name:"value"},{flag:"--duplicate-of",value_name:"value"},{flag:"--author",value_name:"value"},{flag:"--message",value_name:"value"},{flag:"--validate-close",value_name:"off|warn|strict"},{flag:"--resolution",value_name:"value"},{flag:"--expected-result",aliases:["--expected_result","--expected"],value_name:"value"},{flag:"--actual-result",aliases:["--actual_result","--actual"],value_name:"value"},{flag:"--force",value_type:"boolean"}],CLOSE_MANY_FLAG_CONTRACTS=[{flag:"--filter-status",list:!0},{flag:"--filter-type"},{flag:"--filter-tag"},{flag:"--filter-priority"},{flag:"--filter-deadline-before"},{flag:"--filter-deadline-after"},{flag:"--filter-updated-after"},{flag:"--filter-updated-before"},{flag:"--filter-created-after"},{flag:"--filter-created-before"},{flag:"--filter-assignee"},{flag:"--filter-assignee-filter"},{flag:"--filter-assignee_filter"},{flag:"--filter-parent"},{flag:"--filter-sprint"},{flag:"--filter-release"},...MANY_GOVERNANCE_AND_CONTENT_FILTER_FLAG_CONTRACTS,{flag:"--reason"},{flag:"--completed-at"},{flag:"--resolution"},{flag:"--expected-result",aliases:["--expected_result","--expected"]},{flag:"--actual-result",aliases:["--actual_result","--actual"]},{flag:"--validate-close"},{flag:"--author"},{flag:"--message"},{flag:"--force"},{flag:"--dry-run"},{flag:"--rollback"},{flag:"--no-checkpoint"}],APPEND_FLAG_CONTRACTS=[{flag:"--id",value_name:"item-id"},{flag:"--body",short:"-b"},{flag:"--text"},{flag:"--author"},{flag:"--message"},{flag:"--force"}],CLAIM_FLAG_CONTRACTS=[{flag:"--start",value_type:"boolean"},{flag:"--id",value_name:"item-id"},{flag:"--author",aliases:["--assignee"]},{flag:"--message"},{flag:"--force"},{flag:"--if-available"},{flag:"--next"},{flag:"--type"},{flag:"--tag"},{flag:"--priority"},{flag:"--assignee-filter"},{flag:"--parent"},{flag:"--sprint"},{flag:"--release"},{flag:"--max-attempts"},{flag:"--include-decisions"},{flag:"--include-gates"},{flag:"--include-containers"},{flag:"--token-budget",aliases:["--token_budget"]},{flag:"--explain-ranking",aliases:["--explain_ranking"]}],RESTORE_FLAG_CONTRACTS=[{flag:"--id",value_name:"item-id"},{flag:"--author"},{flag:"--message"},{flag:"--force"}],DELETE_FLAG_CONTRACTS=[{flag:"--id",value_name:"item-id"},{flag:"--dry-run"},{flag:"--author"},{flag:"--message"},{flag:"--force"}],RELEASE_FLAG_CONTRACTS=[{flag:"--pause",value_type:"boolean"},{flag:"--handoff",value_name:"status"},{flag:"--id",value_name:"item-id"},{flag:"--author",aliases:["--assignee"]},{flag:"--message"},{flag:"--force"}],START_TASK_FLAG_CONTRACTS=[{flag:"--id",value_name:"item-id"},{flag:"--author",aliases:["--assignee"]},{flag:"--message"},{flag:"--force"}],PAUSE_TASK_FLAG_CONTRACTS=[{flag:"--id",value_name:"item-id"},{flag:"--author",aliases:["--assignee"]},{flag:"--message"},{flag:"--force"}],CLOSE_TASK_FLAG_CONTRACTS=[{flag:"--id",value_name:"item-id"},{flag:"--author",aliases:["--assignee"]},{flag:"--message"},{flag:"--validate-close",value_name:"off|warn|strict"},{flag:"--force"}],SCHEDULING_SHORTCUT_COMMON_FLAG_CONTRACTS=[{flag:"--parent"},{flag:"--allow-missing-parent"},{flag:"--tags"},{flag:"--priority"},{flag:"--body"},{flag:"--description"},{flag:"--author"},{flag:"--message"}],MEET_FLAG_CONTRACTS=[{flag:"--start"},{flag:"--duration"},{flag:"--end"},{flag:"--location"},{flag:"--timezone"},{flag:"--all-day"},...SCHEDULING_SHORTCUT_COMMON_FLAG_CONTRACTS],EVENT_FLAG_CONTRACTS=MEET_FLAG_CONTRACTS,REMIND_FLAG_CONTRACTS=[{flag:"--at"},{flag:"--text"},...SCHEDULING_SHORTCUT_COMMON_FLAG_CONTRACTS],TEST_FLAG_CONTRACTS=[{flag:"--list"},{flag:"--id",value_name:"item-id"},{flag:"--add"},{flag:"--add-json"},{flag:"--remove"},{flag:"--remove-index",repeatable:!0},{flag:"--update"},{flag:"--update-index"},{flag:"--set-json"},{flag:"--run"},{flag:"--match"},{flag:"--only-index"},{flag:"--only-last"},{flag:"--background"},{flag:"--timeout"},{flag:"--progress"},{flag:"--env-set"},{flag:"--env-clear"},{flag:"--shared-host-safe"},{flag:"--pm-context"},{flag:"--override-linked-pm-context"},{flag:"--workspace-context"},{flag:"--override-linked-workspace-context"},{flag:"--allow-untrusted-linked-tests"},{flag:"--acknowledge-linked-tests"},{flag:"--fail-on-context-mismatch"},{flag:"--fail-on-skipped"},{flag:"--fail-on-empty-test-run"},{flag:"--require-assertions-for-pm"},{flag:"--check-context"},{flag:"--auto-pm-context"},{flag:"--measure",list:!0,description:"Record numeric measurement evidence; requires --run and an executed linked command."},{flag:"--metric-below"},{flag:"--metric-diff"},{flag:"--author"},{flag:"--message"},{flag:"--force"}],TEST_ALL_FLAG_CONTRACTS=[{flag:"--status"},{flag:"--limit"},{flag:"--offset"},{flag:"--background"},{flag:"--timeout"},{flag:"--progress"},{flag:"--env-set"},{flag:"--env-clear"},{flag:"--shared-host-safe"},{flag:"--pm-context"},{flag:"--override-linked-pm-context"},{flag:"--workspace-context"},{flag:"--override-linked-workspace-context"},{flag:"--allow-untrusted-linked-tests"},{flag:"--fail-on-context-mismatch"},{flag:"--fail-on-skipped"},{flag:"--fail-on-empty-test-run"},{flag:"--require-assertions-for-pm"},{flag:"--check-context"},{flag:"--auto-pm-context"}],TELEMETRY_FLAG_CONTRACTS=[{flag:"--limit"}],TEST_RUNS_FLAG_CONTRACTS=[{flag:"--status"},{flag:"--limit"},{flag:"--stream"},{flag:"--tail"},{flag:"--force"},{flag:"--author"}],GC_FLAG_CONTRACTS=[{flag:"--dry-run"},{flag:"--scope"}],STATS_FLAG_CONTRACTS=[{flag:"--include-empty"},{flag:"--storage"},{flag:"--metadata-coverage"},{flag:"--field-utilization"},{flag:"--by-assignee"},{flag:"--by-tag"},{flag:"--by-priority"},{flag:"--tag-prefix"},{flag:"--analytics"}],DUPLICATES_FLAG_CONTRACTS=[{flag:"--exhaustive",value_type:"boolean"},{flag:"--status",repeatable:!0,list:!0},{flag:"--since"},{flag:"--threshold"},{flag:"--limit"}],HEALTH_FLAG_CONTRACTS=[{flag:"--strict-directories"},{flag:"--require-merge-drivers"},{flag:"--strict-exit"},{flag:"--fail-on-warn"},{flag:"--check-only"},{flag:"--check-telemetry"},{flag:"--no-refresh"},{flag:"--refresh-vectors"},{flag:"--verbose-stale-items"},{flag:"--verbose-author-events"},{flag:"--brief"},{flag:"--summary"},{flag:"--skip-vectors"},{flag:"--skip-integrity"},{flag:"--skip-drift"},{flag:"--full"}],VALIDATE_FLAG_CONTRACTS=[{flag:"--check-completeness",value_type:"boolean"},{flag:"--check-metadata"},{flag:"--metadata-profile"},{flag:"--check-resolution"},{flag:"--check-lifecycle"},{flag:"--check-stale-blockers"},{flag:"--dependency-cycle-severity"},{flag:"--parent-cycle-severity"},{flag:"--check-files"},{flag:"--scan-mode"},{flag:"--include-pm-internals"},{flag:"--verbose-file-lists"},{flag:"--verbose-diagnostics"},{flag:"--all-affected-ids"},{flag:"--strict-exit"},{flag:"--fail-on-warn"},{flag:"--fix-hints"},{flag:"--auto-fix"},{flag:"--dry-run"},{flag:"--fix-scope"},{flag:"--prune-missing"},{flag:"--check-history-drift"},{flag:"--check-command-references"},{flag:"--check-storage-integrity"},{flag:"--counts"},{flag:"--full"}],ASSURANCE_FLAG_CONTRACTS=[{flag:"--definition",value_name:"json"},{flag:"--trigger",value_name:"value"},{flag:"--tree",value_name:"value"},{flag:"--gate",value_name:"id"},{flag:"--limit",value_name:"number"},{flag:"--dry-run"},{flag:"--author",value_name:"value"},{flag:"--message",value_name:"value"},{flag:"--owner",value_name:"item-id"},{flag:"--apply",value_type:"boolean"},{flag:"--enforcement",value_name:"level"}],ITEM_OWNERSHIP_AND_ISSUE_FLAG_CONTRACTS=[{flag:"--assignee"},{flag:"--parent"},{flag:"--allow-missing-parent"},{flag:"--allow-unresolved-deps"},{flag:"--reviewer"},{flag:"--risk"},{flag:"--confidence"},{flag:"--sprint"},{flag:"--release"},{flag:"--blocked-by"},{flag:"--blocked-reason"},{flag:"--unblock-note"},{flag:"--reporter"},{flag:"--severity"},{flag:"--environment"},{flag:"--repro-steps"},{flag:"--resolution"},{flag:"--expected-result"},{flag:"--actual-result"},{flag:"--affected-version"},{flag:"--fixed-version"}],ITEM_PORTFOLIO_FLAG_CONTRACTS=[{flag:"--component"},{flag:"--regression"},{flag:"--customer-impact"},{flag:"--customer_impact"},{flag:"--definition-of-ready"},{flag:"--definition_of_ready"},{flag:"--order"},{flag:"--rank"},{flag:"--goal"},{flag:"--objective"},{flag:"--value"},{flag:"--impact"},{flag:"--outcome"},{flag:"--why-now"},{flag:"--why_now"}],ITEM_CONTENT_METADATA_FLAG_CONTRACTS=[{short:"-p",flag:"--priority"},{flag:"--type"},{flag:"--tags",aliases:["--tag"],list:!0},{flag:"--add-tags",aliases:["--add_tags"]},{flag:"--remove-tags",aliases:["--remove_tags"]},{flag:"--deadline"},{flag:"--estimate"},{flag:"--estimated-minutes"},{flag:"--estimated_minutes"},{flag:"--acceptance-criteria"},{flag:"--acceptance_criteria"},{flag:"--ac"},{flag:"--add-ac",aliases:["--add_ac"]},{flag:"--remove-ac",aliases:["--remove_ac"]}],CREATE_FLAG_CONTRACTS=[{flag:"--stdin-json"},{short:"-t",flag:"--title"},{flag:"--id"},{short:"-d",flag:"--description"},{flag:"--type"},{flag:"--template"},{flag:"--create-mode"},{flag:"--create_mode"},{flag:"--schedule-preset"},{flag:"--schedule_preset"},{short:"-s",flag:"--status"},{flag:"--close-reason"},{flag:"--close_reason"},{flag:"--completed-at"},{flag:"--completed_at"},{short:"-p",flag:"--priority"},{flag:"--tags",aliases:["--tag"],list:!0},{flag:"--add-tags",aliases:["--add_tags"]},{short:"-b",flag:"--body",value_name:"value"},{flag:"--body-file"},{flag:"--deadline"},{flag:"--estimate"},{flag:"--estimated-minutes"},{flag:"--estimated_minutes"},{flag:"--acceptance-criteria"},{flag:"--acceptance_criteria"},{flag:"--ac"},{flag:"--author"},{flag:"--message"},...ITEM_OWNERSHIP_AND_ISSUE_FLAG_CONTRACTS,...ITEM_PORTFOLIO_FLAG_CONTRACTS,{flag:"--blocked_by"},{flag:"--blocked_reason"},{flag:"--unblock_note"},{flag:"--repro_steps"},{flag:"--expected_result"},{flag:"--actual_result"},{flag:"--expected"},{flag:"--actual"},{flag:"--affected_version"},{flag:"--fixed_version"},{flag:"--dep"},{flag:"--type-option"},{flag:"--type_option"},{flag:"--field"},{flag:"--reminder"},{flag:"--event"},{flag:"--comment"},{flag:"--note"},{flag:"--learning"},{flag:"--file",aliases:["--linked-file"]},{flag:"--test",aliases:["--linked-test"]},{flag:"--doc"},{flag:"--unset"},{flag:"--clear-deps"},{flag:"--clear-comments"},{flag:"--clear-notes"},{flag:"--clear-learnings"},{flag:"--clear-files"},{flag:"--clear-tests"},{flag:"--clear-docs"},{flag:"--clear-reminders"},{flag:"--clear-events"},{flag:"--clear-type-options"},{flag:"--allow-duplicate",value_type:"boolean"}],ITEM_MUTATE_FLAG_CONTRACTS=[{flag:"--transaction-id",value_name:"value"},{flag:"--stdin-json"},{flag:"--from",value_name:"path"},{flag:"--upsert-key",value_name:"field"},{flag:"--dry-run"},{flag:"--create-compensation",value_name:"mode"},{flag:"--lock-ttl-seconds",value_name:"n"},{flag:"--lock-wait-ms",value_name:"n"},{flag:"--author",value_name:"value"}],ITEM_COMPLETE_FLAG_CONTRACTS=[{flag:"--id",value_name:"item-id"},{flag:"--transaction-id",value_name:"value",required:!0},{flag:"--reason",value_name:"value"},{flag:"--file",value_name:"value",repeatable:!0},{flag:"--doc",value_name:"value",repeatable:!0},{flag:"--test",value_name:"value",repeatable:!0},{flag:"--comment",value_name:"value",repeatable:!0},{flag:"--note",value_name:"value",repeatable:!0},{flag:"--learning",value_name:"value",repeatable:!0},{flag:"--resolution",value_name:"value"},{flag:"--expected-result",value_name:"value"},{flag:"--actual-result",value_name:"value"},{flag:"--completed-at",value_name:"value"},{flag:"--validate-close",value_name:"off|warn|strict"},{flag:"--lock-ttl-seconds",value_name:"n"},{flag:"--lock-wait-ms",value_name:"n"},{flag:"--dry-run"},{flag:"--force"},{flag:"--author",value_name:"value"}],ITEM_REOPEN_FLAG_CONTRACTS=[{flag:"--id",value_name:"item-id"},{flag:"--status",value_name:"open|in_progress"},{flag:"--expected-result",value_name:"value",aliases:["--expected"]},{flag:"--message",value_name:"value"},{flag:"--force"},{flag:"--author",value_name:"value"}],COPY_FLAG_CONTRACTS=[{flag:"--id",value_name:"item-id"},{flag:"--title",value_name:"value"},{flag:"--author",value_name:"value"},{flag:"--message",value_name:"value"},{flag:"--allow-duplicate",value_type:"boolean"}],FOCUS_FLAG_CONTRACTS=[{flag:"--id",value_name:"item-id"},{flag:"--clear"}],UPDATE_FLAG_CONTRACTS=[{flag:"--id",value_name:"item-id"},{flag:"--stdin-json"},{short:"-t",flag:"--title"},{short:"-d",flag:"--description"},{short:"-b",flag:"--body"},{flag:"--body-file"},{short:"-s",flag:"--status"},{flag:"--close-reason"},{flag:"--close_reason"},{flag:"--completed-at"},...ITEM_CONTENT_METADATA_FLAG_CONTRACTS,...ITEM_OWNERSHIP_AND_ISSUE_FLAG_CONTRACTS,{flag:"--fixed_version"},...ITEM_PORTFOLIO_FLAG_CONTRACTS,{flag:"--author"},{flag:"--message"},{flag:"--blocked_by"},{flag:"--blocked_reason"},{flag:"--unblock_note"},{flag:"--repro_steps"},{flag:"--expected_result"},{flag:"--actual_result"},{flag:"--expected"},{flag:"--actual"},{flag:"--affected_version"},{flag:"--dep"},{flag:"--dep-remove"},{flag:"--dep_remove"},{flag:"--replace-deps"},{flag:"--replace-tests"},{flag:"--replace-files"},{flag:"--replace-docs"},{flag:"--comment"},{flag:"--note"},{flag:"--learning"},{flag:"--file",aliases:["--linked-file"]},{flag:"--test",aliases:["--linked-test"]},{flag:"--doc"},{flag:"--reminder"},{flag:"--event"},{flag:"--type-option"},{flag:"--type_option"},{flag:"--field"},{flag:"--unset"},{flag:"--clear-deps"},{flag:"--clear-comments"},{flag:"--clear-notes"},{flag:"--clear-learnings"},{flag:"--clear-files"},{flag:"--clear-tests"},{flag:"--clear-docs"},{flag:"--clear-reminders"},{flag:"--clear-events"},{flag:"--clear-type-options"},{flag:"--force"}],UPDATE_MANY_FLAG_CONTRACTS=[{flag:"--status",short:"-s"},{flag:"--assignee"},{flag:"--parent"},{flag:"--blocked-by",aliases:["--blocked_by"]},{flag:"--blocked-reason",aliases:["--blocked_reason"]},{flag:"--unblock-note",aliases:["--unblock_note"]},{flag:"--filter-status",list:!0},{flag:"--filter-type",list:!0},{flag:"--filter-tag",list:!0},{flag:"--filter-priority",list:!0},{flag:"--filter-deadline-before"},{flag:"--filter-deadline-after"},{flag:"--filter-updated-after"},{flag:"--filter-updated-before"},{flag:"--filter-created-after"},{flag:"--filter-created-before"},{flag:"--filter-assignee",list:!0},{flag:"--filter-assignee-filter"},{flag:"--filter-assignee_filter"},{flag:"--filter-parent"},{flag:"--filter-sprint",list:!0},{flag:"--filter-release",list:!0},{flag:"--filter-ac-missing"},{flag:"--filter-estimates-missing",aliases:["--filter-estimate-missing"]},{flag:"--filter-resolution-missing"},{flag:"--filter-metadata-missing"},...MANY_GOVERNANCE_AND_CONTENT_FILTER_FLAG_CONTRACTS,{flag:"--dry-run"},{flag:"--rollback"},{flag:"--no-checkpoint"},{short:"-t",flag:"--title"},{short:"-d",flag:"--description"},{short:"-b",flag:"--body"},...ITEM_CONTENT_METADATA_FLAG_CONTRACTS,{flag:"--definition-of-ready"},{flag:"--definition_of_ready"},{flag:"--order"},{flag:"--rank"},{flag:"--goal"},{flag:"--objective"},{flag:"--value"},{flag:"--impact"},{flag:"--outcome"},{flag:"--why-now"},{flag:"--why_now"},{flag:"--reviewer"},{flag:"--risk"},{flag:"--confidence"},{flag:"--sprint"},{flag:"--release"},{flag:"--reporter"},{flag:"--severity"},{flag:"--environment"},{flag:"--repro-steps"},{flag:"--repro_steps"},{flag:"--resolution"},{flag:"--expected-result"},{flag:"--expected_result"},{flag:"--expected"},{flag:"--actual-result"},{flag:"--actual_result"},{flag:"--actual"},{flag:"--affected-version"},{flag:"--affected_version"},{flag:"--fixed-version"},{flag:"--fixed_version"},{flag:"--component"},{flag:"--regression"},{flag:"--customer-impact"},{flag:"--customer_impact"},{flag:"--allow-unresolved-deps"},{flag:"--dep"},{flag:"--dep-remove"},{flag:"--dep_remove"},{flag:"--replace-deps"},{flag:"--replace-tests"},{flag:"--replace-files"},{flag:"--replace-docs"},{flag:"--comment"},{flag:"--note"},{flag:"--learning"},{flag:"--file"},{flag:"--test"},{flag:"--doc"},{flag:"--reminder"},{flag:"--event"},{flag:"--type-option"},{flag:"--type_option"},{flag:"--unset"},{flag:"--clear-deps"},{flag:"--clear-comments"},{flag:"--clear-notes"},{flag:"--clear-learnings"},{flag:"--clear-files"},{flag:"--clear-tests"},{flag:"--clear-docs"},{flag:"--clear-reminders"},{flag:"--clear-events"},{flag:"--clear-type-options"},{flag:"--author"},{flag:"--message"},{flag:"--force"}],CALENDAR_FLAG_CONTRACTS=[{flag:"--view"},{flag:"--date"},{flag:"--from"},{flag:"--to"},{flag:"--past"},{flag:"--full-period"},{flag:"--full_period"},{flag:"--type"},{flag:"--tag"},{flag:"--priority"},{flag:"--status"},{flag:"--assignee"},{flag:"--assignee-filter"},{flag:"--assignee_filter"},{flag:"--sprint"},{flag:"--release"},{flag:"--include"},{flag:"--recurrence-lookahead-days"},{flag:"--recurrence-lookback-days"},{flag:"--occurrence-limit"},{flag:"--limit"},{flag:"--format"}],ACTIVITY_FLAG_CONTRACTS=[{flag:"--id"},{flag:"--op"},{flag:"--author"},{flag:"--from"},{flag:"--to"},{flag:"--limit"},{flag:"--unbounded"},{flag:"--compact"},{flag:"--raw"},{flag:"--full"},{flag:"--provenance"},{flag:"--provenance-summary"},{flag:"--harness",repeatable:!0},{flag:"--agent-instance",repeatable:!0},{flag:"--provenance-filter",repeatable:!0},{flag:"--stream"}],EVENTS_FLAG_CONTRACTS=[{flag:"--since"},{flag:"--type",repeatable:!0},{flag:"--author",repeatable:!0},{flag:"--item",repeatable:!0},{flag:"--limit",value_type:"number"},{flag:"--cursor-mode",value_name:"batch|row"},{flag:"--full"},{flag:"--provenance"},{flag:"--provenance-summary"},{flag:"--harness",repeatable:!0},{flag:"--agent-instance",repeatable:!0},{flag:"--provenance-filter",repeatable:!0},{flag:"--follow"},{flag:"--interval-ms",value_type:"number"}],CONTEXT_FLAG_CONTRACTS=withCursorSemantics([{flag:"--for",value_name:"intent"},{flag:"--date"},{flag:"--from"},{flag:"--to"},{flag:"--past"},{flag:"--type"},{flag:"--tag"},{flag:"--priority"},{flag:"--assignee"},{flag:"--assignee-filter"},{flag:"--assignee_filter"},{flag:"--sprint"},{flag:"--release"},{flag:"--parent"},{flag:"--limit",aliases:["--max-items"]},{flag:"--after"},{flag:"--format"},{flag:"--depth"},{flag:"--fields",list:!0},{flag:"--section"},{flag:"--activity-limit"},{flag:"--stale-threshold"},{flag:"--explain-ranking"},{flag:"--explain_ranking"},{flag:"--token-budget",aliases:["--token_budget"]},{flag:"--no-extension-health"},{flag:"--no-tags"}],new Set(["--limit","--after","--format","--fields","--section","--activity-limit","--stale-threshold","--explain-ranking","--explain_ranking","--no-extension-health","--no-tags"])),GET_FLAG_CONTRACTS=[{flag:"--id",value_name:"item-id"},{flag:"--for",value_name:"intent"},{flag:"--token-budget",aliases:["--token_budget"]},{flag:"--depth"},{flag:"--full",value_type:"boolean"},{flag:"--fields",list:!0},{flag:"--at"},{flag:"--tree"},{flag:"--tree-depth"},{flag:"--tree_depth"},{flag:"--format"}],GUIDE_FLAG_CONTRACTS=[{flag:"--list"},{flag:"--format"},{flag:"--depth"}],DEPS_FLAG_CONTRACTS=[{flag:"--id",value_name:"item-id"},{flag:"--format"},{flag:"--max-depth"},{flag:"--collapse"},{flag:"--summary"},{flag:"--full"},{flag:"--node-limit"},{flag:"--edge-limit"},{flag:"--token-budget"},{flag:"--cursor"},{flag:"--direction"},{flag:"--kind",list:!0}],GRAPH_FLAG_CONTRACTS=[{flag:"--kind",list:!0},{flag:"--max-depth",description:`Maximum traversal depth; paths default to ${GRAPH_QUERY_DEFAULTS.path_depth}.`},{flag:"--limit",description:`Maximum rows per collection; default ${GRAPH_QUERY_DEFAULTS.rows}. Use --full to remove the row cap.`},{flag:"--after"},{flag:"--direction"},{flag:"--max-paths",description:`Maximum enumerated paths; default ${GRAPH_QUERY_DEFAULTS.paths}.`},{flag:"--sample",description:`Maximum evidence examples per audit finding; default ${GRAPH_QUERY_DEFAULTS.samples}.`},{flag:"--exempt-isolate",list:!0},{flag:"--exempt-isolate-type",list:!0},{flag:"--save-baseline"},{flag:"--rebuild"},{flag:"--clear"},{flag:"--summary"},{flag:"--full"}],EVAL_FLAG_CONTRACTS=[{flag:"--mode"},{flag:"--k"},{flag:"--fail-under"},{flag:"--queries"},{flag:"--format"}],WORKSPACE_FLAG_CONTRACTS=[{flag:"--dry-run"},{flag:"--force"},{flag:"--author"},{flag:"--message"}],WORKSPACE_POSITION_FLAG_CONTRACTS=[],NEXT_FLAG_CONTRACTS=[{flag:"--include-decisions"},{flag:"--include-gates"},{flag:"--include-containers"},{flag:"--for",value_name:"intent"},{flag:"--type"},{flag:"--tag"},{flag:"--priority"},{flag:"--assignee"},{flag:"--assignee-filter"},{flag:"--assignee_filter"},{flag:"--sprint"},{flag:"--release"},{flag:"--parent"},{flag:"--limit"},{flag:"--blocked-limit"},{flag:"--blocked_limit"},{flag:"--ready-only"},{flag:"--ready_only"},{flag:"--format"},{flag:"--explain-ranking"},{flag:"--explain_ranking"},{flag:"--token-budget",aliases:["--token_budget"]}],SEARCH_FLAG_CONTRACTS=withCursorSemantics([{flag:"--for",value_name:"intent"},{flag:"--token-budget",aliases:["--token_budget"]},{flag:"--mode"},{flag:"--semantic"},{flag:"--hybrid"},{flag:"--match-mode"},{flag:"--min-score"},{flag:"--count"},{flag:"--semantic-weight"},{flag:"--include-linked"},{flag:"--title-exact"},{flag:"--phrase-exact"},{flag:"--highlight"},{flag:"--compact"},{flag:"--full"},{flag:"--fields",list:!0},{flag:"--format"},{flag:"--limit"},{flag:"--after"},{flag:"--status",list:!0},{flag:"--type",list:!0},{flag:"--tag",aliases:["--tags"],list:!0},{flag:"--priority",list:!0},{flag:"--deadline-before"},{flag:"--deadline-after"},{flag:"--updated-after"},{flag:"--updated-before"},{flag:"--created-after"},{flag:"--created-before"},{flag:"--assignee",list:!0},{flag:"--sprint",list:!0},{flag:"--release",list:!0},{flag:"--parent"},...GOVERNANCE_AND_CONTENT_FILTER_FLAG_CONTRACTS],new Set(["--highlight","--compact","--full","--fields","--format","--limit","--token-budget","--after"])),CONTRACTS_FLAG_CONTRACTS=[{flag:"--action"},{flag:"--command"},{flag:"--summary"},{flag:"--schema-only"},{flag:"--flags-only"},{flag:"--availability-only"},{flag:"--runtime-only"},{flag:"--active-only"},{flag:"--full"}],COMPLETION_FLAG_CONTRACTS=[{flag:"--eager-tags"}];function toUniqueFlagContracts(contracts){const seen=new Set,unique=[];for(const contract of contracts){const aliasKey=(contract.aliases??[]).join(","),key=`${contract.flag}|${contract.short??""}|${aliasKey}`;seen.has(key)||(seen.add(key),unique.push(contract))}return unique}function withSubcommandGlobalFlags(contracts){const byCanonicalFlag=new Map;for(const contract of[...SUBCOMMAND_GLOBAL_FLAG_CONTRACTS,...contracts]){const canonicalFlag=normalizeFlagAliasKey(contract.flag),prior=byCanonicalFlag.get(canonicalFlag),{aliases:declaredAliases,...contractWithoutAliases}=contract,aliases=normalizeUniqueStringList([...declaredAliases??[],...contract.flag===canonicalFlag?[]:[contract.flag]]).filter(alias=>alias!==canonicalFlag),normalizedContract={...contractWithoutAliases,flag:canonicalFlag,...aliases.length>0?{aliases}:{}},mergedAliases=normalizeUniqueStringList([...prior?.aliases??[],...normalizedContract.aliases??[]]);byCanonicalFlag.set(canonicalFlag,prior===void 0?normalizedContract:{...prior,...normalizedContract,...mergedAliases.length>0?{aliases:mergedAliases}:{}})}return withFlagAliasMetadata([...byCanonicalFlag.values()])}const FIXED_STATUS_LIST_COMMAND_ALIASES=["list-draft","list-open","list-in-progress","list-blocked","list-closed","list-canceled"],FIXED_STATUS_LIST_FLAG_CONTRACTS=LIST_FILTER_FLAG_CONTRACTS.filter(contract=>contract.flag!=="--status"&&contract.flag!=="--all");function indexCliFlagContracts(contracts){const index=new Map;for(const contract of contracts)for(const spelling of[contract.flag,...contract.aliases??[]]){const matches=index.get(spelling)??[];matches.push(contract),index.set(spelling,matches)}return index}const PLAN_FLAG_CONTRACT_INDEX=indexCliFlagContracts(PLAN_FLAG_CONTRACTS),ASSURANCE_FLAG_CONTRACT_INDEX=indexCliFlagContracts(ASSURANCE_FLAG_CONTRACTS),POSITIONAL_ACTION_FLAG_INDEX_BY_PARENT=new Map([["assurance",ASSURANCE_FLAG_CONTRACT_INDEX],["plan",PLAN_FLAG_CONTRACT_INDEX],["workspace",indexCliFlagContracts(WORKSPACE_POSITION_FLAG_CONTRACTS)],["workspace snapshot",indexCliFlagContracts(WORKSPACE_FLAG_CONTRACTS)]]);function resolvePmPositionalActionFlagContracts(actions=PM_POSITIONAL_ACTION_CONTRACTS){return actions.map(({command,parent,accepted_flags:acceptedFlags})=>{const parentFlagIndex=POSITIONAL_ACTION_FLAG_INDEX_BY_PARENT.get(parent);if(!parentFlagIndex)throw new Error(`Positional action ${command} has no flag-contract index for ${parent}.`);const selected=acceptedFlags.map(acceptedFlag=>{const matches=parentFlagIndex.get(acceptedFlag)??[];if(matches.length!==1)throw new Error(`Positional action ${command} accepted flag ${acceptedFlag} does not resolve to exactly one ${parent} flag contract.`);return matches[0]});return[command,selected]})}const PM_POSITIONAL_ACTION_FLAG_CONTRACTS=resolvePmPositionalActionFlagContracts(),SUBCOMMAND_FLAG_CONTRACTS_BY_COMMAND=new Map([["list",LIST_FILTER_FLAG_CONTRACTS],["list-all",LIST_FILTER_FLAG_CONTRACTS],...FIXED_STATUS_LIST_COMMAND_ALIASES.map(command=>[command,FIXED_STATUS_LIST_FLAG_CONTRACTS]),["templates",CREATE_FLAG_CONTRACTS],["cal",CALENDAR_FLAG_CONTRACTS],["ctx",CONTEXT_FLAG_CONTRACTS],["test-runs-worker",[]],["init",INIT_FLAG_CONTRACTS],["config",CONFIG_FLAG_CONTRACTS],["extension",EXTENSION_FLAG_CONTRACTS],["package",PACKAGE_FLAG_CONTRACTS],["packages",PACKAGE_FLAG_CONTRACTS],["install",INSTALL_FLAG_CONTRACTS],["upgrade",UPGRADE_FLAG_CONTRACTS],["create",CREATE_FLAG_CONTRACTS],["item",[]],["item mutate",ITEM_MUTATE_FLAG_CONTRACTS],["item complete",ITEM_COMPLETE_FLAG_CONTRACTS],["item reopen",ITEM_REOPEN_FLAG_CONTRACTS],["copy",COPY_FLAG_CONTRACTS],["focus",FOCUS_FLAG_CONTRACTS],["aggregate",AGGREGATE_FLAG_CONTRACTS],["calendar",CALENDAR_FLAG_CONTRACTS],["context",CONTEXT_FLAG_CONTRACTS],["get",GET_FLAG_CONTRACTS],["guide",GUIDE_FLAG_CONTRACTS],["search",SEARCH_FLAG_CONTRACTS],["next",NEXT_FLAG_CONTRACTS],["eval",EVAL_FLAG_CONTRACTS],["workspace",WORKSPACE_FLAG_CONTRACTS],["workspace position",WORKSPACE_POSITION_FLAG_CONTRACTS],["workspace snapshot",WORKSPACE_FLAG_CONTRACTS],["workspace snapshot create",WORKSPACE_FLAG_CONTRACTS],["workspace snapshot list",WORKSPACE_FLAG_CONTRACTS],["workspace snapshot inspect",WORKSPACE_FLAG_CONTRACTS],["workspace snapshot restore",WORKSPACE_FLAG_CONTRACTS],["workspace snapshot delete",WORKSPACE_FLAG_CONTRACTS],["history",HISTORY_FLAG_CONTRACTS],["history-redact",HISTORY_REDACT_FLAG_CONTRACTS],["history-repair",HISTORY_REPAIR_FLAG_CONTRACTS],["history-author-acknowledge",HISTORY_AUTHOR_ACKNOWLEDGE_FLAG_CONTRACTS],["history-compact",HISTORY_COMPACT_FLAG_CONTRACTS],["history-attest",HISTORY_ATTEST_FLAG_CONTRACTS],["merge",MERGE_FLAG_CONTRACTS],["schema",SCHEMA_FLAG_CONTRACTS],["profile",PROFILE_FLAG_CONTRACTS],["plan",PLAN_FLAG_CONTRACTS],["activity",ACTIVITY_FLAG_CONTRACTS],["events",EVENTS_FLAG_CONTRACTS],["restore",RESTORE_FLAG_CONTRACTS],["update",UPDATE_FLAG_CONTRACTS],["update-many",UPDATE_MANY_FLAG_CONTRACTS],["close",CLOSE_FLAG_CONTRACTS],["close-many",CLOSE_MANY_FLAG_CONTRACTS],["delete",DELETE_FLAG_CONTRACTS],["append",APPEND_FLAG_CONTRACTS],["comments",COMMENTS_FLAG_CONTRACTS],["notes",NOTES_FLAG_CONTRACTS],["learnings",LEARNINGS_FLAG_CONTRACTS],["files",FILES_FLAG_CONTRACTS],["docs",DOCS_FLAG_CONTRACTS],["deps",DEPS_FLAG_CONTRACTS],["graph",GRAPH_FLAG_CONTRACTS],["test",TEST_FLAG_CONTRACTS],["test-all",TEST_ALL_FLAG_CONTRACTS],["telemetry",TELEMETRY_FLAG_CONTRACTS],["health",HEALTH_FLAG_CONTRACTS],["assurance",ASSURANCE_FLAG_CONTRACTS],...PM_POSITIONAL_ACTION_FLAG_CONTRACTS,["validate",VALIDATE_FLAG_CONTRACTS],["gc",GC_FLAG_CONTRACTS],["stats",STATS_FLAG_CONTRACTS],["duplicates",DUPLICATES_FLAG_CONTRACTS],["contracts",CONTRACTS_FLAG_CONTRACTS],["completion",COMPLETION_FLAG_CONTRACTS],["claim",CLAIM_FLAG_CONTRACTS],["release",RELEASE_FLAG_CONTRACTS],["start-task",START_TASK_FLAG_CONTRACTS],["pause-task",PAUSE_TASK_FLAG_CONTRACTS],["close-task",CLOSE_TASK_FLAG_CONTRACTS],["meet",MEET_FLAG_CONTRACTS],["event",EVENT_FLAG_CONTRACTS],["remind",REMIND_FLAG_CONTRACTS]]),EXTENSION_LIFECYCLE_FLAG_CONTRACTS_BY_SUBCOMMAND=new Map([["install",EXTENSION_INSTALL_FLAG_CONTRACTS],["uninstall",EXTENSION_UNINSTALL_FLAG_CONTRACTS],["explore",EXTENSION_EXPLORE_FLAG_CONTRACTS],["manage",EXTENSION_MANAGE_FLAG_CONTRACTS],["describe",EXTENSION_DESCRIBE_FLAG_CONTRACTS],["reload",EXTENSION_RELOAD_FLAG_CONTRACTS],["doctor",EXTENSION_DOCTOR_FLAG_CONTRACTS],["catalog",EXTENSION_CATALOG_FLAG_CONTRACTS],["list",EXTENSION_CATALOG_FLAG_CONTRACTS],["adopt",EXTENSION_ADOPT_FLAG_CONTRACTS],["adopt-all",EXTENSION_ADOPT_ALL_FLAG_CONTRACTS],["activate",EXTENSION_ACTIVATE_FLAG_CONTRACTS],["deactivate",EXTENSION_DEACTIVATE_FLAG_CONTRACTS],["migrate",EXTENSION_MIGRATE_FLAG_CONTRACTS]]);function normalizeCommandNameForContracts(commandName){return typeof commandName!="string"?"":resolvePmHistoryOperation(commandName.trim().toLowerCase())}function hasSubcommandFlagContractsForCommand(commandName){const normalized=normalizeCommandNameForContracts(commandName);if(SUBCOMMAND_FLAG_CONTRACTS_BY_COMMAND.has(normalized))return!0;const[rootCommand,lifecycleSubcommand,...extraParts]=normalized.split(/\s+/);return(rootCommand==="extension"||rootCommand==="package"||rootCommand==="packages")&&lifecycleSubcommand!==void 0&&extraParts.length===0&&(lifecycleSubcommand==="init"||lifecycleSubcommand==="scaffold"||EXTENSION_LIFECYCLE_FLAG_CONTRACTS_BY_SUBCOMMAND.has(lifecycleSubcommand))}function resolveExtensionLifecycleFlagContracts(rootCommand,lifecycleSubcommand){return lifecycleSubcommand==="init"||lifecycleSubcommand==="scaffold"?rootCommand==="extension"?EXTENSION_INIT_FLAG_CONTRACTS:PACKAGE_INIT_FLAG_CONTRACTS:EXTENSION_LIFECYCLE_FLAG_CONTRACTS_BY_SUBCOMMAND.get(lifecycleSubcommand)??[]}function resolveSubcommandFlagContractsForCommand(commandName){const normalized=normalizeCommandNameForContracts(commandName);if(normalized.length===0)return withSubcommandGlobalFlags([]);const[rootCommand,lifecycleSubcommand,...extraParts]=normalized.split(/\s+/);if((rootCommand==="extension"||rootCommand==="package"||rootCommand==="packages")&&lifecycleSubcommand!==void 0&&extraParts.length===0)return withSubcommandGlobalFlags((rootCommand==="package"||rootCommand==="packages")&&lifecycleSubcommand==="upgrade"?UPGRADE_FLAG_CONTRACTS:resolveExtensionLifecycleFlagContracts(rootCommand,lifecycleSubcommand));const contracts=SUBCOMMAND_FLAG_CONTRACTS_BY_COMMAND.get(normalized)??[];return withSubcommandGlobalFlags(contracts)}function toCompletionFlagString(flagContracts,includeGlobal=!0){const scoped=withFlagAliasMetadata(flagContracts).flatMap(entry=>[entry.short,entry.flag,...entry.aliases??[]]).filter(value=>!!value),all=includeGlobal?[...scoped,...SUBCOMMAND_GLOBAL_FLAG_CONTRACTS.flatMap(entry=>[entry.short,entry.flag,...entry.aliases??[]]).filter(value=>!!value)]:scoped;return normalizeUniqueStringList(all).join(" ")}export{ACTIVITY_FLAG_CONTRACTS,AGGREGATE_FLAG_CONTRACTS,APPEND_FLAG_CONTRACTS,ASSURANCE_FLAG_CONTRACTS,CALENDAR_FLAG_CONTRACTS,CLAIM_FLAG_CONTRACTS,CLOSE_FLAG_CONTRACTS,CLOSE_MANY_FLAG_CONTRACTS,CLOSE_TASK_FLAG_CONTRACTS,COMMENTS_FLAG_CONTRACTS,COMPLETION_FLAG_CONTRACTS,CONFIG_FLAG_CONTRACTS,CONTEXT_FLAG_CONTRACTS,CONTRACTS_FLAG_CONTRACTS,COPY_FLAG_CONTRACTS,CREATE_FLAG_CONTRACTS,DELETE_FLAG_CONTRACTS,DEPS_FLAG_CONTRACTS,DOCS_FLAG_CONTRACTS,DUPLICATES_FLAG_CONTRACTS,EVAL_FLAG_CONTRACTS,EVENTS_FLAG_CONTRACTS,EVENT_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_SCOPE_FLAG_CONTRACTS,EXTENSION_UNINSTALL_FLAG_CONTRACTS,FILES_FLAG_CONTRACTS,FOCUS_FLAG_CONTRACTS,GC_FLAG_CONTRACTS,GET_FLAG_CONTRACTS,GLOBAL_FLAG_CONTRACTS,GRAPH_FLAG_CONTRACTS,GUIDE_FLAG_CONTRACTS,HEALTH_FLAG_CONTRACTS,HISTORY_ATTEST_FLAG_CONTRACTS,HISTORY_AUTHOR_ACKNOWLEDGE_FLAG_CONTRACTS,HISTORY_COMPACT_FLAG_CONTRACTS,HISTORY_FLAG_CONTRACTS,HISTORY_REDACT_FLAG_CONTRACTS,HISTORY_REPAIR_FLAG_CONTRACTS,INIT_FLAG_CONTRACTS,INSTALL_FLAG_CONTRACTS,ITEM_COMPLETE_FLAG_CONTRACTS,ITEM_MUTATE_FLAG_CONTRACTS,ITEM_REOPEN_FLAG_CONTRACTS,LEARNINGS_FLAG_CONTRACTS,LIST_FILTER_FLAG_CONTRACTS,MEET_FLAG_CONTRACTS,MERGE_FLAG_CONTRACTS,NEXT_FLAG_CONTRACTS,NOTES_FLAG_CONTRACTS,PACKAGE_FLAG_CONTRACTS,PACKAGE_INIT_FLAG_CONTRACTS,PAUSE_TASK_FLAG_CONTRACTS,PLAN_FLAG_CONTRACTS,PM_POSITIONAL_ACTION_FLAG_CONTRACTS,PROFILE_FLAG_CONTRACTS,REINDEX_FLAG_CONTRACTS,RELEASE_FLAG_CONTRACTS,REMIND_FLAG_CONTRACTS,RESTORE_FLAG_CONTRACTS,SCHEMA_FLAG_CONTRACTS,SEARCH_FLAG_CONTRACTS,START_TASK_FLAG_CONTRACTS,STATS_FLAG_CONTRACTS,SUBCOMMAND_GLOBAL_FLAG_CONTRACTS,TELEMETRY_FLAG_CONTRACTS,TEST_ALL_FLAG_CONTRACTS,TEST_FLAG_CONTRACTS,TEST_RUNS_FLAG_CONTRACTS,UPDATE_FLAG_CONTRACTS,UPDATE_MANY_FLAG_CONTRACTS,UPGRADE_FLAG_CONTRACTS,VALIDATE_FLAG_CONTRACTS,WORKSPACE_FLAG_CONTRACTS,WORKSPACE_POSITION_FLAG_CONTRACTS,compactFlagAliasContracts,hasSubcommandFlagContractsForCommand,resolvePmPositionalActionFlagContracts,resolveSubcommandFlagContractsForCommand,toCompletionFlagString,toUniqueFlagContracts,withFlagAliasMetadata};
2
2
  //# sourceMappingURL=flag-contracts.js.map
@@ -1,3 +1,3 @@
1
- (function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="fe6d2eec-19a1-58fe-90e3-1f679e2f5179")}catch{}})();import{hasSubcommandFlagContractsForCommand,resolveSubcommandFlagContractsForCommand}from"./flag-contracts.js";import{PM_COMMAND_CAPABILITY_CONTRACTS}from"../agent-capability-contracts.js";import{PM_NAMESPACED_COMMAND_ALIASES,resolvePmCommandOperation}from"./command-aliases.js";import{enrichCliFlagInvocationContracts}from"../flag-invocation-contracts.js";let cachedPmFlagLexicon;const FULL_PROJECTION_CONCEPT_BY_COMMAND=Object.freeze({list:"list-item-projection","list-all":"list-item-projection","list-draft":"list-item-projection","list-open":"list-item-projection","list-in-progress":"list-item-projection","list-blocked":"list-item-projection","list-closed":"list-item-projection","list-canceled":"list-item-projection",get:"get-item-projection",graph:"graph-detail-projection",search:"search-result-projection",history:"history-entry-projection",events:"mutation-event-projection",activity:"activity-entry-projection",deps:"dependency-graph-projection",health:"health-diagnostic-projection",validate:"validation-diagnostic-projection",contracts:"contract-catalog-projection"});function resolvePmFlagSemanticConcept(command,flag){if(flag==="--limit")return"result-row-limit";if(flag==="--node-limit")return"graph-node-limit";if(flag==="--edge-limit")return"graph-edge-limit";if(flag==="--output-limit")return"rendered-output-row-limit";if(flag==="--output-budget")return"rendered-output-byte-budget";if(flag==="--token-budget")return"context-intent-token-budget";if(flag==="--full"){const concept=FULL_PROJECTION_CONCEPT_BY_COMMAND[resolvePmCommandOperation(command)];if(concept===void 0)throw new Error(`Command ${command} exposes --full without a registered projection concept.`);return concept}return flag!=="--file"?flag.slice(2):["create","update","update-many"].includes(resolvePmCommandOperation(command))?"linked-file-path":["comments","notes","learnings"].includes(resolvePmCommandOperation(command))?"entry-file-input":"plan-definition-file"}function listPmFlagLexicon(){if(cachedPmFlagLexicon!==void 0)return cachedPmFlagLexicon;const provisionalEntries=PM_COMMAND_CAPABILITY_CONTRACTS.filter(({command})=>hasSubcommandFlagContractsForCommand(command)).flatMap(({command,family})=>enrichCliFlagInvocationContracts(command,resolveSubcommandFlagContractsForCommand(command)).map(contract=>({command,family,concept:resolvePmFlagSemanticConcept(command,contract.flag),flag:contract.flag,aliases:Object.freeze([...contract.aliases??[]]),value_kind:contract.repeatable?"list":contract.flag==="--limit"?"number":contract.value_type}))),compatibilityAliasFlags=new Set(provisionalEntries.flatMap(entry=>entry.aliases.map(alias=>`${entry.command}:${alias}`))),canonicalEntries=provisionalEntries.filter(entry=>!compatibilityAliasFlags.has(`${entry.command}:${entry.flag}`)),kindsByConcept=new Map;for(const entry of canonicalEntries){const kinds=kindsByConcept.get(entry.concept)??new Set;kinds.add(entry.value_kind),kindsByConcept.set(entry.concept,kinds)}return cachedPmFlagLexicon=Object.freeze(canonicalEntries.map(entry=>Object.freeze({...entry,concept:kindsByConcept.get(entry.concept)?.size===1?entry.concept:`${entry.concept}@${entry.command}`}))),cachedPmFlagLexicon}function listPmFlagSpellingInventory(){return Object.freeze(listPmFlagLexicon().map(entry=>Object.freeze({command:entry.command,canonical_flag:entry.flag,accepted_spellings:Object.freeze([...new Set([entry.flag,...entry.aliases])].sort())})))}const LEGACY_COMMAND_FLAG_BUDGET_MAXIMUMS=Object.freeze({init:30,item:20,config:36,extension:55,package:56,packages:56,install:27,upgrade:29,create:100,copy:24,focus:22,list:86,"list-all":86,"list-draft":84,"list-open":84,"list-in-progress":84,"list-blocked":84,"list-closed":84,"list-canceled":84,aggregate:40,context:45,ctx:45,get:30,graph:34,search:78,duplicates:25,eval:25,next:38,history:35,events:33,"history-attest":23,"history-redact":27,"history-repair":27,"history-compact":30,"history-author-acknowledge":28,merge:27,schema:43,profile:22,activity:35,restore:23,update:105,"update-many":146,close:32,"close-many":72,delete:24,append:25,comments:31,notes:35,learnings:31,files:39,docs:30,deps:32,plan:109,test:56,"test-all":40,telemetry:21,stats:29,health:36,validate:46,assurance:30,gc:22,workspace:23,contracts:29,claim:39,release:24,"start-task":23,"pause-task":23,"close-task":24,meet:33,event:33,remind:29,"test-runs-worker":20}),PM_COMMAND_FLAG_BUDGET_MAXIMUMS=Object.freeze({...LEGACY_COMMAND_FLAG_BUDGET_MAXIMUMS,...Object.fromEntries(PM_NAMESPACED_COMMAND_ALIASES.flatMap(({alias,canonical})=>{const maximum=LEGACY_COMMAND_FLAG_BUDGET_MAXIMUMS[alias];return maximum===void 0?[]:[[canonical,maximum]]}))});function listPmCommandFlagBudgets(){const currentByCommand=new Map(Object.keys(PM_COMMAND_FLAG_BUDGET_MAXIMUMS).map(command=>[command,0]));for(const{command}of listPmFlagLexicon())currentByCommand.set(command,Number(currentByCommand.get(command))+1);return Object.freeze(Object.entries(PM_COMMAND_FLAG_BUDGET_MAXIMUMS).map(([command,maximum])=>Object.freeze({command,current:Number(currentByCommand.get(command)),maximum})))}function appendAliasCollisionFindings(entries,canonicalOwners,findings){for(const entry of entries)for(const alias of entry.aliases){const owner=canonicalOwners.get(`${entry.command}:${alias}`);owner===void 0||owner.flag===entry.flag||findings.push({code:"alias_collision",command:entry.command,detail:`${alias} aliases ${entry.flag} but is canonical for ${owner.flag}.`})}}function appendBudgetFindings(counts,budgets,findings){const budgetedCommands=new Set(budgets.map(({command})=>command));for(const command of counts.keys())budgetedCommands.has(command)||findings.push({code:"missing_budget",command,detail:`${command} has canonical flags but no persisted budget.`});for(const budget of budgets){const actual=counts.get(budget.command)??0;actual===0&&findings.push({code:"stale_budget",command:budget.command,detail:`${budget.command} has a persisted budget but no canonical flags.`}),!(actual<=budget.maximum)&&findings.push({code:"budget_exceeded",command:budget.command,detail:`${actual} canonical flags exceed the ratcheted maximum ${budget.maximum}.`})}}function appendSpellingCompatibilityFindings(entries,baseline,findings){const current=new Map(entries.map(entry=>[`${entry.command}:${entry.flag}`,entry]));for(const historical of baseline){const key=`${historical.command}:${historical.canonical_flag}`,entry=current.get(key);if(!entry){findings.push({code:"removed_canonical_spelling",command:historical.command,detail:`${historical.canonical_flag} disappeared from the executable spelling inventory.`});continue}const accepted=new Set([entry.flag,...entry.aliases]);for(const spelling of historical.accepted_spellings)accepted.has(spelling)||findings.push({code:"removed_compatibility_spelling",command:historical.command,detail:`${spelling} no longer resolves to ${historical.canonical_flag}.`})}}function verifyPmFlagLexicon(entries=listPmFlagLexicon(),budgets=listPmCommandFlagBudgets(),baseline=[]){const findings=[],canonicalOwners=new Map,conceptKinds=new Map,conceptSpellings=new Map,counts=new Map;for(const entry of entries){const commandFlag=`${entry.command}:${entry.flag}`;canonicalOwners.has(commandFlag)?findings.push({code:"duplicate_canonical_flag",command:entry.command,detail:`${entry.flag} has more than one canonical row.`}):canonicalOwners.set(commandFlag,entry),counts.set(entry.command,(counts.get(entry.command)??0)+1);const priorKind=conceptKinds.get(entry.concept);priorKind!==void 0&&priorKind!==entry.value_kind?findings.push({code:"inconsistent_concept_kind",command:entry.command,detail:`${entry.concept} uses both ${priorKind} and ${entry.value_kind}.`}):conceptKinds.set(entry.concept,entry.value_kind);const priorSpelling=conceptSpellings.get(entry.concept);priorSpelling!==void 0&&priorSpelling!==entry.flag?findings.push({code:"semantic_spelling_collision",command:entry.command,detail:`${entry.concept} is canonicalized by both ${priorSpelling} and ${entry.flag}.`}):conceptSpellings.set(entry.concept,entry.flag)}return appendAliasCollisionFindings(entries,canonicalOwners,findings),appendBudgetFindings(counts,budgets,findings),appendSpellingCompatibilityFindings(entries,baseline,findings),findings.sort((left,right)=>left.command.localeCompare(right.command)||left.code.localeCompare(right.code)||left.detail.localeCompare(right.detail)),{ok:findings.length===0,entry_count:entries.length,budget_count:budgets.length,concept_count:new Set(entries.map(({concept})=>concept)).size,baseline_entry_count:baseline.length,findings}}function renderPmFlagLexiconMarkdown(){const lexicon=listPmFlagLexicon(),budgets=listPmCommandFlagBudgets(),familyByCommand=new Map(budgets.map(({command})=>[command,"unknown"]));for(const{command,family}of lexicon)familyByCommand.set(command,family);return["# Generated flag lexicon budgets","","This file is generated by `listPmFlagLexicon()`. Compatibility aliases do not consume canonical budget.","","| Command | Capability family | Canonical flags | Maximum |","| --- | --- | ---: | ---: |",...budgets.map(({command,current,maximum})=>{const family=familyByCommand.get(command);return`| \`${command}\` | ${family} | ${current} | ${maximum} |`}),""].join(`
1
+ (function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="05a34b9f-c097-5286-8bf3-490a9a7247dd")}catch{}})();import{hasSubcommandFlagContractsForCommand,resolveSubcommandFlagContractsForCommand}from"./flag-contracts.js";import{PM_COMMAND_CAPABILITY_CONTRACTS}from"../agent-capability-contracts.js";import{PM_NAMESPACED_COMMAND_ALIASES,resolvePmCommandOperation}from"./command-aliases.js";import{enrichCliFlagInvocationContracts}from"../flag-invocation-contracts.js";let cachedPmFlagLexicon;const FULL_PROJECTION_CONCEPT_BY_COMMAND=Object.freeze({list:"list-item-projection","list-all":"list-item-projection","list-draft":"list-item-projection","list-open":"list-item-projection","list-in-progress":"list-item-projection","list-blocked":"list-item-projection","list-closed":"list-item-projection","list-canceled":"list-item-projection",get:"get-item-projection",graph:"graph-detail-projection",search:"search-result-projection",history:"history-entry-projection",events:"mutation-event-projection",activity:"activity-entry-projection",deps:"dependency-graph-projection",health:"health-diagnostic-projection",validate:"validation-diagnostic-projection",contracts:"contract-catalog-projection"});function resolvePmFlagSemanticConcept(command,flag){if(flag==="--limit")return"result-row-limit";if(flag==="--node-limit")return"graph-node-limit";if(flag==="--edge-limit")return"graph-edge-limit";if(flag==="--output-limit")return"rendered-output-row-limit";if(flag==="--output-budget")return"rendered-output-byte-budget";if(flag==="--token-budget")return"context-intent-token-budget";if(flag==="--full"){const concept=FULL_PROJECTION_CONCEPT_BY_COMMAND[resolvePmCommandOperation(command)];if(concept===void 0)throw new Error(`Command ${command} exposes --full without a registered projection concept.`);return concept}return flag!=="--file"?flag.slice(2):["create","update","update-many"].includes(resolvePmCommandOperation(command))?"linked-file-path":["comments","notes","learnings"].includes(resolvePmCommandOperation(command))?"entry-file-input":"plan-definition-file"}function listPmFlagLexicon(){if(cachedPmFlagLexicon!==void 0)return cachedPmFlagLexicon;const provisionalEntries=PM_COMMAND_CAPABILITY_CONTRACTS.filter(({command})=>hasSubcommandFlagContractsForCommand(command)).flatMap(({command,family})=>enrichCliFlagInvocationContracts(command,resolveSubcommandFlagContractsForCommand(command)).map(contract=>({command,family,concept:resolvePmFlagSemanticConcept(command,contract.flag),flag:contract.flag,aliases:Object.freeze([...contract.aliases??[]]),value_kind:contract.repeatable?"list":contract.flag==="--limit"?"number":contract.value_type}))),compatibilityAliasFlags=new Set(provisionalEntries.flatMap(entry=>entry.aliases.map(alias=>`${entry.command}:${alias}`))),canonicalEntries=provisionalEntries.filter(entry=>!compatibilityAliasFlags.has(`${entry.command}:${entry.flag}`)),kindsByConcept=new Map;for(const entry of canonicalEntries){const kinds=kindsByConcept.get(entry.concept)??new Set;kinds.add(entry.value_kind),kindsByConcept.set(entry.concept,kinds)}return cachedPmFlagLexicon=Object.freeze(canonicalEntries.map(entry=>Object.freeze({...entry,concept:kindsByConcept.get(entry.concept)?.size===1?entry.concept:`${entry.concept}@${entry.command}`}))),cachedPmFlagLexicon}function listPmFlagSpellingInventory(){return Object.freeze(listPmFlagLexicon().map(entry=>Object.freeze({command:entry.command,canonical_flag:entry.flag,accepted_spellings:Object.freeze([...new Set([entry.flag,...entry.aliases])].sort())})))}const LEGACY_COMMAND_FLAG_BUDGET_MAXIMUMS=Object.freeze({init:30,item:20,config:36,extension:55,package:56,packages:56,install:27,upgrade:29,create:100,copy:24,focus:22,list:86,"list-all":86,"list-draft":84,"list-open":84,"list-in-progress":84,"list-blocked":84,"list-closed":84,"list-canceled":84,aggregate:40,context:45,ctx:45,get:30,graph:34,search:78,duplicates:25,eval:25,next:38,history:35,events:33,"history-attest":23,"history-redact":27,"history-repair":27,"history-compact":30,"history-author-acknowledge":28,merge:27,schema:43,profile:22,activity:35,restore:23,update:105,"update-many":146,close:32,"close-many":72,delete:24,append:25,comments:31,notes:35,learnings:31,files:39,docs:30,deps:32,plan:109,test:56,"test-all":40,telemetry:21,stats:29,health:36,validate:46,assurance:30,gc:22,workspace:23,contracts:29,claim:39,release:25,"start-task":23,"pause-task":23,"close-task":24,meet:33,event:33,remind:29,"test-runs-worker":20}),PM_COMMAND_FLAG_BUDGET_MAXIMUMS=Object.freeze({...LEGACY_COMMAND_FLAG_BUDGET_MAXIMUMS,...Object.fromEntries(PM_NAMESPACED_COMMAND_ALIASES.flatMap(({alias,canonical})=>{const maximum=LEGACY_COMMAND_FLAG_BUDGET_MAXIMUMS[alias];return maximum===void 0?[]:[[canonical,maximum]]}))});function listPmCommandFlagBudgets(){const currentByCommand=new Map(Object.keys(PM_COMMAND_FLAG_BUDGET_MAXIMUMS).map(command=>[command,0]));for(const{command}of listPmFlagLexicon())currentByCommand.set(command,Number(currentByCommand.get(command))+1);return Object.freeze(Object.entries(PM_COMMAND_FLAG_BUDGET_MAXIMUMS).map(([command,maximum])=>Object.freeze({command,current:Number(currentByCommand.get(command)),maximum})))}function appendAliasCollisionFindings(entries,canonicalOwners,findings){for(const entry of entries)for(const alias of entry.aliases){const owner=canonicalOwners.get(`${entry.command}:${alias}`);owner===void 0||owner.flag===entry.flag||findings.push({code:"alias_collision",command:entry.command,detail:`${alias} aliases ${entry.flag} but is canonical for ${owner.flag}.`})}}function appendBudgetFindings(counts,budgets,findings){const budgetedCommands=new Set(budgets.map(({command})=>command));for(const command of counts.keys())budgetedCommands.has(command)||findings.push({code:"missing_budget",command,detail:`${command} has canonical flags but no persisted budget.`});for(const budget of budgets){const actual=counts.get(budget.command)??0;actual===0&&findings.push({code:"stale_budget",command:budget.command,detail:`${budget.command} has a persisted budget but no canonical flags.`}),!(actual<=budget.maximum)&&findings.push({code:"budget_exceeded",command:budget.command,detail:`${actual} canonical flags exceed the ratcheted maximum ${budget.maximum}.`})}}function appendSpellingCompatibilityFindings(entries,baseline,findings){const current=new Map(entries.map(entry=>[`${entry.command}:${entry.flag}`,entry]));for(const historical of baseline){const key=`${historical.command}:${historical.canonical_flag}`,entry=current.get(key);if(!entry){findings.push({code:"removed_canonical_spelling",command:historical.command,detail:`${historical.canonical_flag} disappeared from the executable spelling inventory.`});continue}const accepted=new Set([entry.flag,...entry.aliases]);for(const spelling of historical.accepted_spellings)accepted.has(spelling)||findings.push({code:"removed_compatibility_spelling",command:historical.command,detail:`${spelling} no longer resolves to ${historical.canonical_flag}.`})}}function verifyPmFlagLexicon(entries=listPmFlagLexicon(),budgets=listPmCommandFlagBudgets(),baseline=[]){const findings=[],canonicalOwners=new Map,conceptKinds=new Map,conceptSpellings=new Map,counts=new Map;for(const entry of entries){const commandFlag=`${entry.command}:${entry.flag}`;canonicalOwners.has(commandFlag)?findings.push({code:"duplicate_canonical_flag",command:entry.command,detail:`${entry.flag} has more than one canonical row.`}):canonicalOwners.set(commandFlag,entry),counts.set(entry.command,(counts.get(entry.command)??0)+1);const priorKind=conceptKinds.get(entry.concept);priorKind!==void 0&&priorKind!==entry.value_kind?findings.push({code:"inconsistent_concept_kind",command:entry.command,detail:`${entry.concept} uses both ${priorKind} and ${entry.value_kind}.`}):conceptKinds.set(entry.concept,entry.value_kind);const priorSpelling=conceptSpellings.get(entry.concept);priorSpelling!==void 0&&priorSpelling!==entry.flag?findings.push({code:"semantic_spelling_collision",command:entry.command,detail:`${entry.concept} is canonicalized by both ${priorSpelling} and ${entry.flag}.`}):conceptSpellings.set(entry.concept,entry.flag)}return appendAliasCollisionFindings(entries,canonicalOwners,findings),appendBudgetFindings(counts,budgets,findings),appendSpellingCompatibilityFindings(entries,baseline,findings),findings.sort((left,right)=>left.command.localeCompare(right.command)||left.code.localeCompare(right.code)||left.detail.localeCompare(right.detail)),{ok:findings.length===0,entry_count:entries.length,budget_count:budgets.length,concept_count:new Set(entries.map(({concept})=>concept)).size,baseline_entry_count:baseline.length,findings}}function renderPmFlagLexiconMarkdown(){const lexicon=listPmFlagLexicon(),budgets=listPmCommandFlagBudgets(),familyByCommand=new Map(budgets.map(({command})=>[command,"unknown"]));for(const{command,family}of lexicon)familyByCommand.set(command,family);return["# Generated flag lexicon budgets","","This file is generated by `listPmFlagLexicon()`. Compatibility aliases do not consume canonical budget.","","| Command | Capability family | Canonical flags | Maximum |","| --- | --- | ---: | ---: |",...budgets.map(({command,current,maximum})=>{const family=familyByCommand.get(command);return`| \`${command}\` | ${family} | ${current} | ${maximum} |`}),""].join(`
2
2
  `)}export{listPmCommandFlagBudgets,listPmFlagLexicon,listPmFlagSpellingInventory,renderPmFlagLexiconMarkdown,resolvePmFlagSemanticConcept,verifyPmFlagLexicon};
3
3
  //# sourceMappingURL=flag-lexicon-contracts.js.map
@@ -16,7 +16,7 @@ export { setActiveCommandResult };
16
16
  export { printError,printResult,writeStdout };
17
17
  /** Let an active package asynchronously augment a completed command result. */
18
18
  export declare function applyActiveCommandResultService(command:string,args:string[],options:Record<string,unknown>,global:GlobalOptions,result:unknown):Promise<unknown>;
19
- /** Synchronize parser-derived options with Commander and its action arguments. */
19
+ /** Preserve unchanged option origins and label parser/preflight overrides as explicit input. */
20
20
  export declare function syncCommanderActionOptions(actionCommand:Command,commandOptions:Record<string,unknown>):void;
21
21
  /** Implements set resolved global options for the public runtime surface of this module. */
22
22
  export declare function setResolvedGlobalOptions(command:Command,globalOptions:GlobalOptions):void;
@@ -1,4 +1,4 @@
1
- (function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="28bbc7e0-cdd8-5966-b2be-43910681cd94")}catch{}})();import{Option}from"commander";import{resolvePmHistoryOperation}from"./command-aliases.js";import{pathExists,refreshSearchArtifactsForMutation,shouldRunSearchRefreshInForeground,EXIT_CODE,PmCliError,printError,printResult,writeStdout,getSettingsPath,resolvePmRoot,readSettings,runActiveServiceOverride,setActiveCommandResult}from"../runtime-primitives.js";import{ACTIVITY_COMMANDER_STRING_OPTION_CONTRACTS,CONTEXT_COMMANDER_STRING_OPTION_CONTRACTS,CREATE_COMMANDER_REPEATABLE_OPTION_CONTRACTS,CREATE_COMMANDER_STRING_OPTION_CONTRACTS,LIST_COMMANDER_STRING_OPTION_CONTRACTS,NEXT_COMMANDER_STRING_OPTION_CONTRACTS,SEARCH_COMMANDER_STRING_OPTION_CONTRACTS,UPDATE_COMMANDER_REPEATABLE_OPTION_CONTRACTS,UPDATE_COMMANDER_STRING_OPTION_CONTRACTS,readFirstValueFromCommanderOptions,readFirstStringFromCommanderOptions,readStringArrayFromCommanderOptions}from"../cli-contracts.js";import{buildBackgroundTestCommandArgs,buildBackgroundTestAllCommandArgs}from"../test/command-args.js";async function applyActiveCommandResultService(command,args,options,global2,result){const pmRoot=resolvePmRoot(process.cwd(),global2.path),override=await runActiveServiceOverride("command_result",{command,args,options,global:global2,pm_root:pmRoot,result});return override.handled?override.result:result}function syncCommanderActionOptions(actionCommand,commandOptions){for(const[key,value]of Object.entries(commandOptions))actionCommand.setOptionValueWithSource(key,value,"cli")}function readJoinedRepeatedOption(options,contract){const values=[],observedArrays=new Set;for(const key of contract.keys){if(!Object.hasOwn(options,key))continue;const value=options[key];if(value!=null){if(typeof value=="string"){values.push(value);continue}if(!Array.isArray(value)||!value.every(entry=>typeof entry=="string"))return;observedArrays.has(value)||(observedArrays.add(value),values.push(...value))}}return values.length>0?values.join("; "):void 0}const RESOLVED_GLOBAL_OPTIONS=Symbol("pm.resolvedGlobalOptions");function commandOptionsReader(command){return typeof command=="object"&&command!==null?command:{}}function resolveCommanderContract(contracts,target){return contracts.find(entry=>entry.target===target)??{target,keys:[target]}}function setResolvedGlobalOptions(command,globalOptions){command[RESOLVED_GLOBAL_OPTIONS]={...globalOptions}}function clearResolvedGlobalOptions(command){delete command[RESOLVED_GLOBAL_OPTIONS]}function readStringCommandOption(options,key){return typeof options[key]=="string"?options[key]:void 0}function getGlobalOptions(command){const commandPath=resolvePmHistoryOperation(getCommandPath(command)),resolved=command[RESOLVED_GLOBAL_OPTIONS];if(resolved)return{...resolved,...commandPath.length>0?{command:commandPath}:{}};const reader=commandOptionsReader(command),opts=typeof reader.optsWithGlobals=="function"?reader.optsWithGlobals():typeof reader.opts=="function"?reader.opts():{};return{json:opts.json===!0?!0:void 0,quiet:!!opts.quiet,noChangedFields:opts.changedFields===!1,...opts.fullChangedFields===!0?{fullChangedFields:!0}:{},idOnly:opts.idOnly===!0,...opts.lean===!0?{lean:!0}:{},...opts.tokenAccounting===!0?{tokenAccounting:!0}:{},outputInclude:readStringCommandOption(opts,"outputInclude"),outputLimit:readStringCommandOption(opts,"outputLimit"),outputBudget:readStringCommandOption(opts,"outputBudget"),outputSession:readStringCommandOption(opts,"outputSession"),outputCursor:readStringCommandOption(opts,"outputCursor"),...opts.outputRowContract===!0?{outputRowContract:!0}:{},...opts.outputFormat==="toon"||opts.outputFormat==="json"?{outputFormat:opts.outputFormat}:{},path:readStringCommandOption(opts,"pmPath")??readStringCommandOption(opts,"path"),noExtensions:opts.extensions===!1,noPager:!!opts.noPager,profile:!!opts.profile,...commandPath.length>0?{command:commandPath}:{},...typeof opts.author=="string"?{author:opts.author}:{}}}function getCommandPath(command){const parts=[];let current=command;for(;current?.parent;)parts.unshift(current.name()),current=current.parent;return parts.join(" ")}async function applyDefaultOutputFormat(globalOptions){if(globalOptions.json===!0)return globalOptions;const pmRoot=resolvePmRoot(process.cwd(),globalOptions.path);if(!await pathExists(getSettingsPath(pmRoot)))return globalOptions;const settings=await readSettings(pmRoot);return{...globalOptions,defaultOutputFormat:settings.output.default_format}}function collect(value,previous){const next=previous??[];return next.push(value),next}function optionTrue(options,key){return options[key]===!0?!0:void 0}function optionFalse(options,key){return options[key]===!1?!0:void 0}function readOptionString(options,key){return typeof options[key]=="string"?options[key]:void 0}function addHiddenOption(command,flags,description,repeatable=!1,repeatableParser=void 0){const option=new Option(flags,description).hideHelp();repeatable&&option.argParser(repeatableParser??collect),command.addOption(option)}function addHiddenOptions(command,aliases,repeatable){for(const[flags,description]of aliases)addHiddenOption(command,flags,description,repeatable)}function anyOptionTrue(options,keys){return keys.some(key=>options[key]===!0)?!0:void 0}function readStringOrFiniteNumberFromCommanderOptions(options,contract){const value=readFirstValueFromCommanderOptions(options,contract);return typeof value=="string"||typeof value=="number"&&Number.isFinite(value)?value:void 0}function copyUnknownOptions(target,source){for(const[key,value]of Object.entries(source))key==="__proto__"||key==="constructor"||key==="prototype"||Object.hasOwn(target,key)||(target[key]=value)}function formatHookWarnings(warnings){return warnings.join(",")}function normalizeCreateOptions(commandOptions,options={}){const readCreateString=target=>readFirstStringFromCommanderOptions(commandOptions,resolveCommanderContract(CREATE_COMMANDER_STRING_OPTION_CONTRACTS,target)),readCreateList=target=>readStringArrayFromCommanderOptions(commandOptions,resolveCommanderContract(CREATE_COMMANDER_REPEATABLE_OPTION_CONTRACTS,target)),type=readCreateString("type");if(options.requireType!==!1&&type===void 0)throw new PmCliError("Missing required option --type <value>. Why required: create resolves runtime schema fields/workflow from item type. Retry: add --type <built-in or configured custom type> (example: --type Task).",EXIT_CODE.USAGE);const normalized={title:readCreateString("title"),description:readCreateString("description"),type,template:readCreateString("template"),createMode:readCreateString("createMode"),schedulePreset:readCreateString("schedulePreset"),status:readCreateString("status"),closeReason:readCreateString("closeReason"),completedAt:readCreateString("completedAt"),priority:readCreateString("priority"),tags:readCreateString("tags"),addTags:readCreateList("addTags"),body:readCreateString("body"),deadline:readCreateString("deadline"),estimatedMinutes:readCreateString("estimatedMinutes"),acceptanceCriteria:readJoinedRepeatedOption(commandOptions,resolveCommanderContract(CREATE_COMMANDER_REPEATABLE_OPTION_CONTRACTS,"acceptanceCriteria")),definitionOfReady:readCreateString("definitionOfReady"),order:readCreateString("order"),rank:readCreateString("rank"),goal:readCreateString("goal"),objective:readCreateString("objective"),value:readCreateString("value"),impact:readCreateString("impact"),outcome:readCreateString("outcome"),whyNow:readCreateString("whyNow"),author:readCreateString("author"),message:readCreateString("message"),assignee:readCreateString("assignee"),parent:readCreateString("parent"),allowMissingParent:anyOptionTrue(commandOptions,["allowMissingParent","allow_missing_parent"])===!0,allowUnresolvedDeps:anyOptionTrue(commandOptions,["allowUnresolvedDeps","allow_unresolved_deps"])===!0,allowDuplicate:optionTrue(commandOptions,"allowDuplicate")===!0,reviewer:readCreateString("reviewer"),risk:readCreateString("risk"),confidence:readCreateString("confidence"),sprint:readCreateString("sprint"),release:readCreateString("release"),blockedBy:readCreateString("blockedBy"),blockedReason:readCreateString("blockedReason"),unblockNote:readCreateString("unblockNote"),reporter:readCreateString("reporter"),severity:readCreateString("severity"),environment:readCreateString("environment"),reproSteps:readCreateString("reproSteps"),resolution:readCreateString("resolution"),expectedResult:readCreateString("expectedResult"),actualResult:readCreateString("actualResult"),affectedVersion:readCreateString("affectedVersion"),fixedVersion:readCreateString("fixedVersion"),component:readCreateString("component"),regression:commandOptions.regression===!0?"true":readCreateString("regression"),customerImpact:readCreateString("customerImpact"),dep:readCreateList("dep"),comment:readCreateList("comment"),note:readCreateList("note"),learning:readCreateList("learning"),file:readCreateList("file"),test:readCreateList("test"),doc:readCreateList("doc"),reminder:readCreateList("reminder"),event:readCreateList("event"),typeOption:readCreateList("typeOption"),field:readCreateList("field"),unset:readCreateList("unset"),clearDeps:optionTrue(commandOptions,"clearDeps"),clearComments:optionTrue(commandOptions,"clearComments"),clearNotes:optionTrue(commandOptions,"clearNotes"),clearLearnings:optionTrue(commandOptions,"clearLearnings"),clearFiles:optionTrue(commandOptions,"clearFiles"),clearTests:optionTrue(commandOptions,"clearTests"),clearDocs:optionTrue(commandOptions,"clearDocs"),clearReminders:optionTrue(commandOptions,"clearReminders"),clearEvents:optionTrue(commandOptions,"clearEvents"),clearTypeOptions:optionTrue(commandOptions,"clearTypeOptions")};return copyUnknownOptions(normalized,commandOptions),normalized}function normalizeUpdateOptions(commandOptions){const readUpdateString=target=>readFirstStringFromCommanderOptions(commandOptions,resolveCommanderContract(UPDATE_COMMANDER_STRING_OPTION_CONTRACTS,target)),readUpdateList=target=>readStringArrayFromCommanderOptions(commandOptions,resolveCommanderContract(UPDATE_COMMANDER_REPEATABLE_OPTION_CONTRACTS,target)),normalized={title:readUpdateString("title"),description:readUpdateString("description"),body:readUpdateString("body"),status:readUpdateString("status"),closeReason:readUpdateString("closeReason"),priority:readUpdateString("priority"),type:readUpdateString("type"),tags:readUpdateString("tags"),addTags:readUpdateList("addTags"),removeTags:readUpdateList("removeTags"),deadline:readUpdateString("deadline"),estimatedMinutes:readUpdateString("estimatedMinutes"),acceptanceCriteria:readJoinedRepeatedOption(commandOptions,resolveCommanderContract(UPDATE_COMMANDER_REPEATABLE_OPTION_CONTRACTS,"acceptanceCriteria")),addAc:readUpdateList("addAc"),removeAc:readUpdateList("removeAc"),definitionOfReady:readUpdateString("definitionOfReady"),order:readUpdateString("order"),rank:readUpdateString("rank"),goal:readUpdateString("goal"),objective:readUpdateString("objective"),value:readUpdateString("value"),impact:readUpdateString("impact"),outcome:readUpdateString("outcome"),whyNow:readUpdateString("whyNow"),author:readUpdateString("author"),message:readUpdateString("message"),force:!!commandOptions.force,ownershipMetadataBypass:commandOptions.ownershipMetadataBypass===!0?!0:void 0,ownershipDependencyBypass:commandOptions.ownershipDependencyBypass===!0?!0:void 0,assignee:readUpdateString("assignee"),parent:readUpdateString("parent"),allowUnresolvedDeps:anyOptionTrue(commandOptions,["allowUnresolvedDeps","allow_unresolved_deps"])===!0,reviewer:readUpdateString("reviewer"),risk:readUpdateString("risk"),confidence:readUpdateString("confidence"),sprint:readUpdateString("sprint"),release:readUpdateString("release"),blockedBy:readUpdateString("blockedBy"),blockedReason:readUpdateString("blockedReason"),unblockNote:readUpdateString("unblockNote"),reporter:readUpdateString("reporter"),severity:readUpdateString("severity"),environment:readUpdateString("environment"),reproSteps:readUpdateString("reproSteps"),resolution:readUpdateString("resolution"),expectedResult:readUpdateString("expectedResult"),actualResult:readUpdateString("actualResult"),affectedVersion:readUpdateString("affectedVersion"),fixedVersion:readUpdateString("fixedVersion"),component:readUpdateString("component"),regression:commandOptions.regression===!0?"true":readUpdateString("regression"),customerImpact:readUpdateString("customerImpact"),dep:readUpdateList("dep"),depRemove:readUpdateList("depRemove"),replaceDeps:optionTrue(commandOptions,"replaceDeps"),replaceTests:optionTrue(commandOptions,"replaceTests"),replaceFiles:optionTrue(commandOptions,"replaceFiles"),replaceDocs:optionTrue(commandOptions,"replaceDocs"),comment:readUpdateList("comment"),note:readUpdateList("note"),learning:readUpdateList("learning"),file:readUpdateList("file"),test:readUpdateList("test"),doc:readUpdateList("doc"),reminder:readUpdateList("reminder"),event:readUpdateList("event"),typeOption:readUpdateList("typeOption"),field:readUpdateList("field"),unset:readUpdateList("unset"),clearDeps:optionTrue(commandOptions,"clearDeps"),clearComments:optionTrue(commandOptions,"clearComments"),clearNotes:optionTrue(commandOptions,"clearNotes"),clearLearnings:optionTrue(commandOptions,"clearLearnings"),clearFiles:optionTrue(commandOptions,"clearFiles"),clearTests:optionTrue(commandOptions,"clearTests"),clearDocs:optionTrue(commandOptions,"clearDocs"),clearReminders:optionTrue(commandOptions,"clearReminders"),clearEvents:optionTrue(commandOptions,"clearEvents"),clearTypeOptions:optionTrue(commandOptions,"clearTypeOptions")};return copyUnknownOptions(normalized,commandOptions),normalized}const UPDATE_MANY_CONTROL_OPTION_KEYS=new Set(["filterStatus","filterType","filterTag","filterPriority","filterDeadlineBefore","filterDeadlineAfter","filterUpdatedAfter","filterUpdatedBefore","filterCreatedAfter","filterCreatedBefore","filterAssignee","filterAssigneeFilter","filterAssignee_filter","filterParent","filterSprint","filterRelease","filterAcMissing","filterEstimatesMissing","filterEstimateMissing","filterResolutionMissing","filterMetadataMissing","filterReviewerMissing","filterRiskMissing","filterConfidenceMissing","filterSprintMissing","filterReleaseMissing","filterHasNotes","filterNoNotes","filterHasLearnings","filterNoLearnings","filterHasFiles","filterNoFiles","filterHasDocs","filterNoDocs","filterHasTests","filterNoTests","filterHasComments","filterNoComments","filterHasDeps","filterNoDeps","filterHasBody","filterEmptyBody","filterHasLinkedCommand","filterNoLinkedCommand","ids","limit","offset","dryRun","rollback","checkpoint"]);function extractUpdateManyMutationOptionSource(commandOptions){const mutationOptions={};for(const[key,value]of Object.entries(commandOptions))UPDATE_MANY_CONTROL_OPTION_KEYS.has(key)||(mutationOptions[key]=value);return mutationOptions}function readListOptionString(options,target){const contract=resolveCommanderContract(LIST_COMMANDER_STRING_OPTION_CONTRACTS,target),stringValue=readFirstStringFromCommanderOptions(options,contract);if(stringValue!==void 0)return stringValue;for(const key of contract.keys){const value=options[key];if(Array.isArray(value)){const strings=value.filter(entry=>typeof entry=="string");if(strings.length>0)return strings.join(",")}if(target==="ids"&&typeof value=="string")return value;if(typeof value=="number"&&Number.isFinite(value))return String(value)}}function readSelectionFilterOptionFields(options){const filterFilesMissing=optionTrue(options,"filterFilesMissing"),filterDocsMissing=optionTrue(options,"filterDocsMissing");return{filterReviewerMissing:optionTrue(options,"filterReviewerMissing"),filterRiskMissing:optionTrue(options,"filterRiskMissing"),filterConfidenceMissing:optionTrue(options,"filterConfidenceMissing"),filterSprintMissing:optionTrue(options,"filterSprintMissing"),filterReleaseMissing:optionTrue(options,"filterReleaseMissing"),hasNotes:optionTrue(options,"hasNotes"),hasLearnings:optionTrue(options,"hasLearnings"),hasFiles:optionTrue(options,"hasFiles"),hasDocs:optionTrue(options,"hasDocs"),hasTests:optionTrue(options,"hasTests"),hasComments:optionTrue(options,"hasComments"),hasDeps:optionTrue(options,"hasDeps"),hasBody:optionTrue(options,"hasBody"),hasLinkedCommand:optionTrue(options,"hasLinkedCommand"),noNotes:optionFalse(options,"notes"),noLearnings:optionFalse(options,"learnings"),noFiles:optionFalse(options,"files")??filterFilesMissing,filterFilesMissing,noDocs:optionFalse(options,"docs")??filterDocsMissing,filterDocsMissing,noTests:optionFalse(options,"tests"),noComments:optionFalse(options,"comments"),noDeps:optionFalse(options,"deps"),emptyBody:optionTrue(options,"emptyBody"),noLinkedCommand:optionFalse(options,"linkedCommand")}}function normalizeListOptions(options){const normalized={status:readListOptionString(options,"status"),type:readListOptionString(options,"type"),tag:readListOptionString(options,"tag"),priority:readListOptionString(options,"priority"),deadlineBefore:readListOptionString(options,"deadlineBefore"),deadlineAfter:readListOptionString(options,"deadlineAfter"),updatedAfter:readListOptionString(options,"updatedAfter"),updatedBefore:readListOptionString(options,"updatedBefore"),createdAfter:readListOptionString(options,"createdAfter"),createdBefore:readListOptionString(options,"createdBefore"),today:optionTrue(options,"today"),recent:optionTrue(options,"recent"),ids:readListOptionString(options,"ids"),assignee:readListOptionString(options,"assignee"),assigneeFilter:readListOptionString(options,"assigneeFilter"),parent:readListOptionString(options,"parent"),sprint:readListOptionString(options,"sprint"),release:readListOptionString(options,"release"),limit:readListOptionString(options,"limit"),offset:readListOptionString(options,"offset"),noTruncate:optionFalse(options,"truncate"),includeBody:optionTrue(options,"includeBody"),strictRead:optionTrue(options,"strictRead"),compact:optionTrue(options,"compact"),brief:optionTrue(options,"brief"),full:optionTrue(options,"full"),fields:readListOptionString(options,"fields"),sort:readListOptionString(options,"sort"),order:readListOptionString(options,"order"),tree:optionTrue(options,"tree"),treeDepth:readListOptionString(options,"treeDepth"),filterAcMissing:optionTrue(options,"filterAcMissing"),filterEstimatesMissing:anyOptionTrue(options,["filterEstimatesMissing","filterEstimateMissing"]),filterResolutionMissing:optionTrue(options,"filterResolutionMissing"),filterMetadataMissing:optionTrue(options,"filterMetadataMissing"),...readSelectionFilterOptionFields(options)};return copyUnknownOptions(normalized,options),normalized}function normalizeAggregateOptions(options){return{groupBy:typeof options.groupBy=="string"?options.groupBy:void 0,setMode:typeof options.setMode=="string"?options.setMode:void 0,limit:readListOptionString(options,"limit"),after:readListOptionString(options,"after"),count:options.count===!0?!0:void 0,completion:options.completion===!0?!0:void 0,sum:typeof options.sum=="string"?options.sum:void 0,avg:typeof options.avg=="string"?options.avg:void 0,includeUnparented:options.includeUnparented===!0||options.include_unparented===!0,status:typeof options.status=="string"?options.status:void 0,type:readListOptionString(options,"type"),tag:readListOptionString(options,"tag"),priority:readListOptionString(options,"priority"),deadlineBefore:readListOptionString(options,"deadlineBefore"),deadlineAfter:readListOptionString(options,"deadlineAfter"),assignee:readListOptionString(options,"assignee"),assigneeFilter:readListOptionString(options,"assigneeFilter"),parent:readListOptionString(options,"parent"),sprint:readListOptionString(options,"sprint"),release:readListOptionString(options,"release")}}function printListJsonStream(commandName,result,globalOptions){if(setActiveCommandResult(result),globalOptions.quiet)return;const warnings=Array.isArray(result.warnings)?result.warnings:[],metaPayload={type:"meta",command:commandName,count:result.count,now:result.now,filters:result.filters};if(warnings.length>0&&(metaPayload.warnings=warnings),!!writeStdout(`${JSON.stringify(metaPayload)}
1
+ (function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="f71d68b8-a4cd-5fda-83a0-0528ac44aed0")}catch{}})();import{Option}from"commander";import{resolvePmHistoryOperation}from"./command-aliases.js";import{pathExists,refreshSearchArtifactsForMutation,shouldRunSearchRefreshInForeground,EXIT_CODE,PmCliError,printError,printResult,writeStdout,getSettingsPath,resolvePmRoot,readSettings,runActiveServiceOverride,setActiveCommandResult}from"../runtime-primitives.js";import{ACTIVITY_COMMANDER_STRING_OPTION_CONTRACTS,CONTEXT_COMMANDER_STRING_OPTION_CONTRACTS,CREATE_COMMANDER_REPEATABLE_OPTION_CONTRACTS,CREATE_COMMANDER_STRING_OPTION_CONTRACTS,LIST_COMMANDER_STRING_OPTION_CONTRACTS,NEXT_COMMANDER_STRING_OPTION_CONTRACTS,SEARCH_COMMANDER_STRING_OPTION_CONTRACTS,UPDATE_COMMANDER_REPEATABLE_OPTION_CONTRACTS,UPDATE_COMMANDER_STRING_OPTION_CONTRACTS,readFirstValueFromCommanderOptions,readFirstStringFromCommanderOptions,readStringArrayFromCommanderOptions}from"../cli-contracts.js";import{buildBackgroundTestCommandArgs,buildBackgroundTestAllCommandArgs}from"../test/command-args.js";async function applyActiveCommandResultService(command,args,options,global2,result){const pmRoot=resolvePmRoot(process.cwd(),global2.path),override=await runActiveServiceOverride("command_result",{command,args,options,global:global2,pm_root:pmRoot,result});return override.handled?override.result:result}function syncCommanderActionOptions(actionCommand,commandOptions){for(const[key,value]of Object.entries(commandOptions)){const source=actionCommand.getOptionValueSource(key),unchanged=source!==void 0&&Object.is(actionCommand.getOptionValue(key),value);actionCommand.setOptionValueWithSource(key,value,unchanged?source:"cli")}}function readJoinedRepeatedOption(options,contract){const values=[],observedArrays=new Set;for(const key of contract.keys){if(!Object.hasOwn(options,key))continue;const value=options[key];if(value!=null){if(typeof value=="string"){values.push(value);continue}if(!Array.isArray(value)||!value.every(entry=>typeof entry=="string"))return;observedArrays.has(value)||(observedArrays.add(value),values.push(...value))}}return values.length>0?values.join("; "):void 0}const RESOLVED_GLOBAL_OPTIONS=Symbol("pm.resolvedGlobalOptions");function commandOptionsReader(command){return typeof command=="object"&&command!==null?command:{}}function resolveCommanderContract(contracts,target){return contracts.find(entry=>entry.target===target)??{target,keys:[target]}}function setResolvedGlobalOptions(command,globalOptions){command[RESOLVED_GLOBAL_OPTIONS]={...globalOptions}}function clearResolvedGlobalOptions(command){delete command[RESOLVED_GLOBAL_OPTIONS]}function readStringCommandOption(options,key){return typeof options[key]=="string"?options[key]:void 0}function getGlobalOptions(command){const commandPath=resolvePmHistoryOperation(getCommandPath(command)),resolved=command[RESOLVED_GLOBAL_OPTIONS];if(resolved)return{...resolved,...commandPath.length>0?{command:commandPath}:{}};const reader=commandOptionsReader(command),opts=typeof reader.optsWithGlobals=="function"?reader.optsWithGlobals():typeof reader.opts=="function"?reader.opts():{};return{json:opts.json===!0?!0:void 0,quiet:!!opts.quiet,noChangedFields:opts.changedFields===!1,...opts.fullChangedFields===!0?{fullChangedFields:!0}:{},idOnly:opts.idOnly===!0,...opts.lean===!0?{lean:!0}:{},...opts.tokenAccounting===!0?{tokenAccounting:!0}:{},outputInclude:readStringCommandOption(opts,"outputInclude"),outputLimit:readStringCommandOption(opts,"outputLimit"),outputBudget:readStringCommandOption(opts,"outputBudget"),outputSession:readStringCommandOption(opts,"outputSession"),outputCursor:readStringCommandOption(opts,"outputCursor"),...opts.outputRowContract===!0?{outputRowContract:!0}:{},...opts.outputFormat==="toon"||opts.outputFormat==="json"?{outputFormat:opts.outputFormat}:{},path:readStringCommandOption(opts,"pmPath")??readStringCommandOption(opts,"path"),noExtensions:opts.extensions===!1,noPager:!!opts.noPager,profile:!!opts.profile,...commandPath.length>0?{command:commandPath}:{},...typeof opts.author=="string"?{author:opts.author}:{}}}function getCommandPath(command){const parts=[];let current=command;for(;current?.parent;)parts.unshift(current.name()),current=current.parent;return parts.join(" ")}async function applyDefaultOutputFormat(globalOptions){if(globalOptions.json===!0)return globalOptions;const pmRoot=resolvePmRoot(process.cwd(),globalOptions.path);if(!await pathExists(getSettingsPath(pmRoot)))return globalOptions;const settings=await readSettings(pmRoot);return{...globalOptions,defaultOutputFormat:settings.output.default_format}}function collect(value,previous){const next=previous??[];return next.push(value),next}function optionTrue(options,key){return options[key]===!0?!0:void 0}function optionFalse(options,key){return options[key]===!1?!0:void 0}function readOptionString(options,key){return typeof options[key]=="string"?options[key]:void 0}function addHiddenOption(command,flags,description,repeatable=!1,repeatableParser=void 0){const option=new Option(flags,description).hideHelp();repeatable&&option.argParser(repeatableParser??collect),command.addOption(option)}function addHiddenOptions(command,aliases,repeatable){for(const[flags,description]of aliases)addHiddenOption(command,flags,description,repeatable)}function anyOptionTrue(options,keys){return keys.some(key=>options[key]===!0)?!0:void 0}function readStringOrFiniteNumberFromCommanderOptions(options,contract){const value=readFirstValueFromCommanderOptions(options,contract);return typeof value=="string"||typeof value=="number"&&Number.isFinite(value)?value:void 0}function copyUnknownOptions(target,source){for(const[key,value]of Object.entries(source))key==="__proto__"||key==="constructor"||key==="prototype"||Object.hasOwn(target,key)||(target[key]=value)}function formatHookWarnings(warnings){return warnings.join(",")}function normalizeCreateOptions(commandOptions,options={}){const readCreateString=target=>readFirstStringFromCommanderOptions(commandOptions,resolveCommanderContract(CREATE_COMMANDER_STRING_OPTION_CONTRACTS,target)),readCreateList=target=>readStringArrayFromCommanderOptions(commandOptions,resolveCommanderContract(CREATE_COMMANDER_REPEATABLE_OPTION_CONTRACTS,target)),type=readCreateString("type");if(options.requireType!==!1&&type===void 0)throw new PmCliError("Missing required option --type <value>. Why required: create resolves runtime schema fields/workflow from item type. Retry: add --type <built-in or configured custom type> (example: --type Task).",EXIT_CODE.USAGE);const normalized={title:readCreateString("title"),description:readCreateString("description"),type,template:readCreateString("template"),createMode:readCreateString("createMode"),schedulePreset:readCreateString("schedulePreset"),status:readCreateString("status"),closeReason:readCreateString("closeReason"),completedAt:readCreateString("completedAt"),priority:readCreateString("priority"),tags:readCreateString("tags"),addTags:readCreateList("addTags"),body:readCreateString("body"),deadline:readCreateString("deadline"),estimatedMinutes:readCreateString("estimatedMinutes"),acceptanceCriteria:readJoinedRepeatedOption(commandOptions,resolveCommanderContract(CREATE_COMMANDER_REPEATABLE_OPTION_CONTRACTS,"acceptanceCriteria")),definitionOfReady:readCreateString("definitionOfReady"),order:readCreateString("order"),rank:readCreateString("rank"),goal:readCreateString("goal"),objective:readCreateString("objective"),value:readCreateString("value"),impact:readCreateString("impact"),outcome:readCreateString("outcome"),whyNow:readCreateString("whyNow"),author:readCreateString("author"),message:readCreateString("message"),assignee:readCreateString("assignee"),parent:readCreateString("parent"),allowMissingParent:anyOptionTrue(commandOptions,["allowMissingParent","allow_missing_parent"])===!0,allowUnresolvedDeps:anyOptionTrue(commandOptions,["allowUnresolvedDeps","allow_unresolved_deps"])===!0,allowDuplicate:optionTrue(commandOptions,"allowDuplicate")===!0,reviewer:readCreateString("reviewer"),risk:readCreateString("risk"),confidence:readCreateString("confidence"),sprint:readCreateString("sprint"),release:readCreateString("release"),blockedBy:readCreateString("blockedBy"),blockedReason:readCreateString("blockedReason"),unblockNote:readCreateString("unblockNote"),reporter:readCreateString("reporter"),severity:readCreateString("severity"),environment:readCreateString("environment"),reproSteps:readCreateString("reproSteps"),resolution:readCreateString("resolution"),expectedResult:readCreateString("expectedResult"),actualResult:readCreateString("actualResult"),affectedVersion:readCreateString("affectedVersion"),fixedVersion:readCreateString("fixedVersion"),component:readCreateString("component"),regression:commandOptions.regression===!0?"true":readCreateString("regression"),customerImpact:readCreateString("customerImpact"),dep:readCreateList("dep"),comment:readCreateList("comment"),note:readCreateList("note"),learning:readCreateList("learning"),file:readCreateList("file"),test:readCreateList("test"),doc:readCreateList("doc"),reminder:readCreateList("reminder"),event:readCreateList("event"),typeOption:readCreateList("typeOption"),field:readCreateList("field"),unset:readCreateList("unset"),clearDeps:optionTrue(commandOptions,"clearDeps"),clearComments:optionTrue(commandOptions,"clearComments"),clearNotes:optionTrue(commandOptions,"clearNotes"),clearLearnings:optionTrue(commandOptions,"clearLearnings"),clearFiles:optionTrue(commandOptions,"clearFiles"),clearTests:optionTrue(commandOptions,"clearTests"),clearDocs:optionTrue(commandOptions,"clearDocs"),clearReminders:optionTrue(commandOptions,"clearReminders"),clearEvents:optionTrue(commandOptions,"clearEvents"),clearTypeOptions:optionTrue(commandOptions,"clearTypeOptions")};return copyUnknownOptions(normalized,commandOptions),normalized}function normalizeUpdateOptions(commandOptions){const readUpdateString=target=>readFirstStringFromCommanderOptions(commandOptions,resolveCommanderContract(UPDATE_COMMANDER_STRING_OPTION_CONTRACTS,target)),readUpdateList=target=>readStringArrayFromCommanderOptions(commandOptions,resolveCommanderContract(UPDATE_COMMANDER_REPEATABLE_OPTION_CONTRACTS,target)),normalized={title:readUpdateString("title"),description:readUpdateString("description"),body:readUpdateString("body"),status:readUpdateString("status"),closeReason:readUpdateString("closeReason"),priority:readUpdateString("priority"),type:readUpdateString("type"),tags:readUpdateString("tags"),addTags:readUpdateList("addTags"),removeTags:readUpdateList("removeTags"),deadline:readUpdateString("deadline"),estimatedMinutes:readUpdateString("estimatedMinutes"),acceptanceCriteria:readJoinedRepeatedOption(commandOptions,resolveCommanderContract(UPDATE_COMMANDER_REPEATABLE_OPTION_CONTRACTS,"acceptanceCriteria")),addAc:readUpdateList("addAc"),removeAc:readUpdateList("removeAc"),definitionOfReady:readUpdateString("definitionOfReady"),order:readUpdateString("order"),rank:readUpdateString("rank"),goal:readUpdateString("goal"),objective:readUpdateString("objective"),value:readUpdateString("value"),impact:readUpdateString("impact"),outcome:readUpdateString("outcome"),whyNow:readUpdateString("whyNow"),author:readUpdateString("author"),message:readUpdateString("message"),force:!!commandOptions.force,ownershipMetadataBypass:commandOptions.ownershipMetadataBypass===!0?!0:void 0,ownershipDependencyBypass:commandOptions.ownershipDependencyBypass===!0?!0:void 0,assignee:readUpdateString("assignee"),parent:readUpdateString("parent"),allowUnresolvedDeps:anyOptionTrue(commandOptions,["allowUnresolvedDeps","allow_unresolved_deps"])===!0,reviewer:readUpdateString("reviewer"),risk:readUpdateString("risk"),confidence:readUpdateString("confidence"),sprint:readUpdateString("sprint"),release:readUpdateString("release"),blockedBy:readUpdateString("blockedBy"),blockedReason:readUpdateString("blockedReason"),unblockNote:readUpdateString("unblockNote"),reporter:readUpdateString("reporter"),severity:readUpdateString("severity"),environment:readUpdateString("environment"),reproSteps:readUpdateString("reproSteps"),resolution:readUpdateString("resolution"),expectedResult:readUpdateString("expectedResult"),actualResult:readUpdateString("actualResult"),affectedVersion:readUpdateString("affectedVersion"),fixedVersion:readUpdateString("fixedVersion"),component:readUpdateString("component"),regression:commandOptions.regression===!0?"true":readUpdateString("regression"),customerImpact:readUpdateString("customerImpact"),dep:readUpdateList("dep"),depRemove:readUpdateList("depRemove"),replaceDeps:optionTrue(commandOptions,"replaceDeps"),replaceTests:optionTrue(commandOptions,"replaceTests"),replaceFiles:optionTrue(commandOptions,"replaceFiles"),replaceDocs:optionTrue(commandOptions,"replaceDocs"),comment:readUpdateList("comment"),note:readUpdateList("note"),learning:readUpdateList("learning"),file:readUpdateList("file"),test:readUpdateList("test"),doc:readUpdateList("doc"),reminder:readUpdateList("reminder"),event:readUpdateList("event"),typeOption:readUpdateList("typeOption"),field:readUpdateList("field"),unset:readUpdateList("unset"),clearDeps:optionTrue(commandOptions,"clearDeps"),clearComments:optionTrue(commandOptions,"clearComments"),clearNotes:optionTrue(commandOptions,"clearNotes"),clearLearnings:optionTrue(commandOptions,"clearLearnings"),clearFiles:optionTrue(commandOptions,"clearFiles"),clearTests:optionTrue(commandOptions,"clearTests"),clearDocs:optionTrue(commandOptions,"clearDocs"),clearReminders:optionTrue(commandOptions,"clearReminders"),clearEvents:optionTrue(commandOptions,"clearEvents"),clearTypeOptions:optionTrue(commandOptions,"clearTypeOptions")};return copyUnknownOptions(normalized,commandOptions),normalized}const UPDATE_MANY_CONTROL_OPTION_KEYS=new Set(["filterStatus","filterType","filterTag","filterPriority","filterDeadlineBefore","filterDeadlineAfter","filterUpdatedAfter","filterUpdatedBefore","filterCreatedAfter","filterCreatedBefore","filterAssignee","filterAssigneeFilter","filterAssignee_filter","filterParent","filterSprint","filterRelease","filterAcMissing","filterEstimatesMissing","filterEstimateMissing","filterResolutionMissing","filterMetadataMissing","filterReviewerMissing","filterRiskMissing","filterConfidenceMissing","filterSprintMissing","filterReleaseMissing","filterHasNotes","filterNoNotes","filterHasLearnings","filterNoLearnings","filterHasFiles","filterNoFiles","filterHasDocs","filterNoDocs","filterHasTests","filterNoTests","filterHasComments","filterNoComments","filterHasDeps","filterNoDeps","filterHasBody","filterEmptyBody","filterHasLinkedCommand","filterNoLinkedCommand","ids","limit","offset","dryRun","rollback","checkpoint"]);function extractUpdateManyMutationOptionSource(commandOptions){const mutationOptions={};for(const[key,value]of Object.entries(commandOptions))UPDATE_MANY_CONTROL_OPTION_KEYS.has(key)||(mutationOptions[key]=value);return mutationOptions}function readListOptionString(options,target){const contract=resolveCommanderContract(LIST_COMMANDER_STRING_OPTION_CONTRACTS,target),stringValue=readFirstStringFromCommanderOptions(options,contract);if(stringValue!==void 0)return stringValue;for(const key of contract.keys){const value=options[key];if(Array.isArray(value)){const strings=value.filter(entry=>typeof entry=="string");if(strings.length>0)return strings.join(",")}if(target==="ids"&&typeof value=="string")return value;if(typeof value=="number"&&Number.isFinite(value))return String(value)}}function readSelectionFilterOptionFields(options){const filterFilesMissing=optionTrue(options,"filterFilesMissing"),filterDocsMissing=optionTrue(options,"filterDocsMissing");return{filterReviewerMissing:optionTrue(options,"filterReviewerMissing"),filterRiskMissing:optionTrue(options,"filterRiskMissing"),filterConfidenceMissing:optionTrue(options,"filterConfidenceMissing"),filterSprintMissing:optionTrue(options,"filterSprintMissing"),filterReleaseMissing:optionTrue(options,"filterReleaseMissing"),hasNotes:optionTrue(options,"hasNotes"),hasLearnings:optionTrue(options,"hasLearnings"),hasFiles:optionTrue(options,"hasFiles"),hasDocs:optionTrue(options,"hasDocs"),hasTests:optionTrue(options,"hasTests"),hasComments:optionTrue(options,"hasComments"),hasDeps:optionTrue(options,"hasDeps"),hasBody:optionTrue(options,"hasBody"),hasLinkedCommand:optionTrue(options,"hasLinkedCommand"),noNotes:optionFalse(options,"notes"),noLearnings:optionFalse(options,"learnings"),noFiles:optionFalse(options,"files")??filterFilesMissing,filterFilesMissing,noDocs:optionFalse(options,"docs")??filterDocsMissing,filterDocsMissing,noTests:optionFalse(options,"tests"),noComments:optionFalse(options,"comments"),noDeps:optionFalse(options,"deps"),emptyBody:optionTrue(options,"emptyBody"),noLinkedCommand:optionFalse(options,"linkedCommand")}}function normalizeListOptions(options){const normalized={status:readListOptionString(options,"status"),type:readListOptionString(options,"type"),tag:readListOptionString(options,"tag"),priority:readListOptionString(options,"priority"),deadlineBefore:readListOptionString(options,"deadlineBefore"),deadlineAfter:readListOptionString(options,"deadlineAfter"),updatedAfter:readListOptionString(options,"updatedAfter"),updatedBefore:readListOptionString(options,"updatedBefore"),createdAfter:readListOptionString(options,"createdAfter"),createdBefore:readListOptionString(options,"createdBefore"),today:optionTrue(options,"today"),recent:optionTrue(options,"recent"),ids:readListOptionString(options,"ids"),assignee:readListOptionString(options,"assignee"),assigneeFilter:readListOptionString(options,"assigneeFilter"),parent:readListOptionString(options,"parent"),sprint:readListOptionString(options,"sprint"),release:readListOptionString(options,"release"),limit:readListOptionString(options,"limit"),offset:readListOptionString(options,"offset"),noTruncate:optionFalse(options,"truncate"),includeBody:optionTrue(options,"includeBody"),strictRead:optionTrue(options,"strictRead"),compact:optionTrue(options,"compact"),brief:optionTrue(options,"brief"),full:optionTrue(options,"full"),fields:readListOptionString(options,"fields"),sort:readListOptionString(options,"sort"),order:readListOptionString(options,"order"),tree:optionTrue(options,"tree"),treeDepth:readListOptionString(options,"treeDepth"),filterAcMissing:optionTrue(options,"filterAcMissing"),filterEstimatesMissing:anyOptionTrue(options,["filterEstimatesMissing","filterEstimateMissing"]),filterResolutionMissing:optionTrue(options,"filterResolutionMissing"),filterMetadataMissing:optionTrue(options,"filterMetadataMissing"),...readSelectionFilterOptionFields(options)};return copyUnknownOptions(normalized,options),normalized}function normalizeAggregateOptions(options){return{groupBy:typeof options.groupBy=="string"?options.groupBy:void 0,setMode:typeof options.setMode=="string"?options.setMode:void 0,limit:readListOptionString(options,"limit"),after:readListOptionString(options,"after"),count:options.count===!0?!0:void 0,completion:options.completion===!0?!0:void 0,sum:typeof options.sum=="string"?options.sum:void 0,avg:typeof options.avg=="string"?options.avg:void 0,includeUnparented:options.includeUnparented===!0||options.include_unparented===!0,status:typeof options.status=="string"?options.status:void 0,type:readListOptionString(options,"type"),tag:readListOptionString(options,"tag"),priority:readListOptionString(options,"priority"),deadlineBefore:readListOptionString(options,"deadlineBefore"),deadlineAfter:readListOptionString(options,"deadlineAfter"),assignee:readListOptionString(options,"assignee"),assigneeFilter:readListOptionString(options,"assigneeFilter"),parent:readListOptionString(options,"parent"),sprint:readListOptionString(options,"sprint"),release:readListOptionString(options,"release")}}function printListJsonStream(commandName,result,globalOptions){if(setActiveCommandResult(result),globalOptions.quiet)return;const warnings=Array.isArray(result.warnings)?result.warnings:[],metaPayload={type:"meta",command:commandName,count:result.count,now:result.now,filters:result.filters};if(warnings.length>0&&(metaPayload.warnings=warnings),!!writeStdout(`${JSON.stringify(metaPayload)}
2
2
  `)){for(const item of result.items)if(!writeStdout(`${JSON.stringify({type:"item",command:commandName,item})}
3
3
  `))return;writeStdout(`${JSON.stringify({type:"end",command:commandName,count:result.count})}
4
4
  `)}}function printActivityJsonStream(result,options,globalOptions){if(setActiveCommandResult(result),globalOptions.quiet)return;const metaPayload={type:"meta",command:"activity",count:result.count,filters:{id:options.id??null,op:options.op??null,author:options.author??null,from:options.from??null,to:options.to??null,limit:options.limit??null}};if(!writeStdout(`${JSON.stringify(metaPayload)}
@@ -93,14 +93,14 @@ additionalProperties?:boolean;
93
93
  */
94
94
  export declare function buildPmActionToolInputSchema(action:PmToolAction,options?:PmActionToolInputSchemaOptions):Record<string,unknown>;
95
95
  /** Canonical version of the action-scoped strict MCP tool-parameters schema (`PM_TOOL_PARAMETERS_SCHEMA`). Exported as the single source of truth so the MCP server, the `pm contracts` command, SDK consumers, and contract tests bind to one version constant. Bump the patch/minor for additive, backward-compatible schema changes; bump the MAJOR for breaking changes — the major also drives the `$id` `tool-parameters-v{major}` slug, so the two never drift. */
96
- export declare const PM_TOOL_PARAMETERS_SCHEMA_VERSION:"4.21.1";
96
+ export declare const PM_TOOL_PARAMETERS_SCHEMA_VERSION:"4.22.0";
97
97
  /**
98
98
  * Major component of {@link PM_TOOL_PARAMETERS_SCHEMA_VERSION}, used to build the
99
99
  * schema `$id` slug so a breaking version bump renames the document in lockstep.
100
100
  */
101
101
  export declare const PM_TOOL_PARAMETERS_SCHEMA_MAJOR:string;
102
102
  /** Version of the provider-compatible flat tool-parameters schema (`PM_PROVIDER_TOOL_PARAMETERS_SCHEMA`). Tracked separately from the strict schema because the flat projection evolves independently. */
103
- export declare const PM_PROVIDER_TOOL_PARAMETERS_SCHEMA_VERSION:"1.10.0";
103
+ export declare const PM_PROVIDER_TOOL_PARAMETERS_SCHEMA_VERSION:"1.11.0";
104
104
  /** Public contract for pm tool parameters schema, shared by SDK and presentation-layer consumers. */
105
105
  export declare const PM_TOOL_PARAMETERS_SCHEMA:Record<string,unknown>;
106
106
  declare function toProviderCompatibleParameterDefinition(key:string,definition:unknown):Record<string,unknown>;