@unbrained/pm-cli 2026.10.13 → 2026.10.15

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 (708) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +72 -1
  3. package/dist/cli/after-command-context-usage.d.ts +7 -7
  4. package/dist/cli/argv-utils.d.ts +4 -4
  5. package/dist/cli/bundle-integrity.d.ts +16 -16
  6. package/dist/cli/command-namespaces.d.ts +1 -1
  7. package/dist/cli/commander-usage.d.ts +34 -34
  8. package/dist/cli/commands/governance/validate.d.ts +1 -1
  9. package/dist/cli/commands/history/history-compact.d.ts +1 -1
  10. package/dist/cli/commands/history/history-redact.d.ts +1 -1
  11. package/dist/cli/commands/history/history-repair.d.ts +1 -1
  12. package/dist/cli/commands/history/restore.d.ts +1 -1
  13. package/dist/cli/commands/lifecycle/close.d.ts +1 -1
  14. package/dist/cli/commands/lifecycle/copy.d.ts +1 -1
  15. package/dist/cli/commands/lifecycle/delete.d.ts +1 -1
  16. package/dist/cli/commands/lifecycle/focus.d.ts +1 -1
  17. package/dist/cli/commands/query/get.d.ts +1 -1
  18. package/dist/cli/commands/workspace/merge.d.ts +1 -1
  19. package/dist/cli/commands/workspace/schema.d.ts +1 -1
  20. package/dist/cli/context-intent-invocation.d.ts +1 -1
  21. package/dist/cli/description-stdin.d.ts +1 -1
  22. package/dist/cli/error-guidance.d.ts +119 -119
  23. package/dist/cli/extension-command-help.d.ts +64 -64
  24. package/dist/cli/extension-command-help.js +2 -2
  25. package/dist/cli/extension-command-options.d.ts +16 -16
  26. package/dist/cli/extension-command-options.js +1 -1
  27. package/dist/cli/extension-recovery.d.ts +13 -13
  28. package/dist/cli/help-content.d.ts +22 -22
  29. package/dist/cli/help-content.js +2 -2
  30. package/dist/cli/help-json-payload.d.ts +45 -45
  31. package/dist/cli/invocation-profile.d.ts +5 -5
  32. package/dist/cli/main.d.ts +217 -217
  33. package/dist/cli/main.js +2 -2
  34. package/dist/cli/migration-gates.d.ts +24 -24
  35. package/dist/cli/option-values.d.ts +1 -1
  36. package/dist/cli/public.d.ts +1 -1
  37. package/dist/cli/register-annotations.d.ts +2 -2
  38. package/dist/cli/register-assurance.d.ts +1 -1
  39. package/dist/cli/register-files-lookup.d.ts +1 -1
  40. package/dist/cli/register-history-activity.d.ts +1 -1
  41. package/dist/cli/register-history-author.d.ts +1 -1
  42. package/dist/cli/register-history-maintenance.d.ts +1 -1
  43. package/dist/cli/register-list-query.d.ts +7 -7
  44. package/dist/cli/register-list-query.js +3 -3
  45. package/dist/cli/register-mutation-options.d.ts +1 -1
  46. package/dist/cli/register-mutation.d.ts +4 -4
  47. package/dist/cli/register-operations.d.ts +75 -75
  48. package/dist/cli/register-setup.d.ts +4 -4
  49. package/dist/cli/register-structured-mutation.d.ts +8 -8
  50. package/dist/cli/runtime/activation.d.ts +23 -23
  51. package/dist/cli/runtime/invocation-options.d.ts +12 -12
  52. package/dist/cli/runtime/projection-retry.d.ts +1 -1
  53. package/dist/cli/runtime/selection.d.ts +16 -16
  54. package/dist/cli/runtime/telemetry-outcome.d.ts +11 -11
  55. package/dist/cli/runtime-compatibility-boundary.d.ts +7 -7
  56. package/dist/cli/schema/registration.d.ts +1 -1
  57. package/dist/cli/schema-registration-helpers.d.ts +2 -2
  58. package/dist/cli/stats-analytics-json.d.ts +1 -1
  59. package/dist/cli-bundle/bundle-manifest.json +1 -1
  60. package/dist/cli-bundle/chunks/{chunk-LBDWFWPK.js → chunk-52EZH2QQ.js} +2 -2
  61. package/dist/cli-bundle/chunks/chunk-7OEGNA4X.js +20 -0
  62. package/dist/cli-bundle/chunks/{chunk-APWPC4ZZ.js → chunk-7VHINXZP.js} +2 -2
  63. package/dist/cli-bundle/chunks/chunk-EMEEHV2Y.js +2 -0
  64. package/dist/cli-bundle/chunks/chunk-JGKTOBVB.js +6 -0
  65. package/dist/cli-bundle/chunks/{chunk-PSNS537F.js → chunk-JSUJWIHQ.js} +30 -30
  66. package/dist/cli-bundle/chunks/{chunk-N5EXRYCZ.js → chunk-LNKLQYBG.js} +2 -2
  67. package/dist/cli-bundle/chunks/{chunk-YH6H3UVE.js → chunk-N56CAQBU.js} +63 -64
  68. package/dist/cli-bundle/chunks/chunk-NC3QVGDD.js +8 -0
  69. package/dist/cli-bundle/chunks/{chunk-AM2XOZKE.js → chunk-RJ5N44WY.js} +2 -2
  70. package/dist/cli-bundle/chunks/{chunk-HXHFKXLV.js → chunk-VIMQCFCK.js} +2 -2
  71. package/dist/cli-bundle/chunks/{chunk-UBTYYZIE.js → chunk-WBBW3WQX.js} +4 -4
  72. package/dist/cli-bundle/chunks/chunk-X2H6UR26.js +236 -0
  73. package/dist/cli-bundle/chunks/{register-list-query-BJ742QOR.js → register-list-query-FKKFQ66D.js} +7 -7
  74. package/dist/cli-bundle/chunks/{register-mutation-GGGBRIH2.js → register-mutation-EWMMVZJB.js} +2 -2
  75. package/dist/cli-bundle/chunks/{register-operations-E6HXYHNM.js → register-operations-GEQ2H7PS.js} +2 -2
  76. package/dist/cli-bundle/chunks/{register-setup-4ZVTVEPY.js → register-setup-PSJTQBBO.js} +2 -2
  77. package/dist/cli-bundle/focused-chunks/{chunk-NNW5BS5L.js → chunk-3RNUMVK4.js} +2 -2
  78. package/dist/cli-bundle/focused-chunks/{chunk-3LQEBXU5.js → chunk-4KQFMOM7.js} +6 -6
  79. package/dist/cli-bundle/focused-chunks/{chunk-RAA7SVRA.js → chunk-52I2SNKJ.js} +2 -2
  80. package/dist/cli-bundle/focused-chunks/{chunk-6BTUISKV.js → chunk-5KRACGBK.js} +2 -2
  81. package/dist/cli-bundle/focused-chunks/chunk-5OO54BIV.js +3 -0
  82. package/dist/cli-bundle/focused-chunks/chunk-5TBAVZDR.js +20 -0
  83. package/dist/cli-bundle/focused-chunks/{chunk-R23T7GFZ.js → chunk-FQKPOZKS.js} +2 -2
  84. package/dist/cli-bundle/focused-chunks/{chunk-IIKFTJVC.js → chunk-H3P77KVU.js} +2 -2
  85. package/dist/cli-bundle/focused-chunks/chunk-HTA3TNC3.js +26 -0
  86. package/dist/cli-bundle/focused-chunks/{chunk-73UNAJHD.js → chunk-JKBH7YGX.js} +2 -2
  87. package/dist/cli-bundle/focused-chunks/{chunk-KGFRQ34R.js → chunk-KIIFVULU.js} +2 -2
  88. package/dist/cli-bundle/focused-chunks/{chunk-SOB7X4FJ.js → chunk-N6FUKTZS.js} +2 -2
  89. package/dist/cli-bundle/focused-chunks/chunk-PDYE7QDX.js +166 -0
  90. package/dist/cli-bundle/focused-chunks/{chunk-RU6GCFN3.js → chunk-Q4VNCTR2.js} +2 -2
  91. package/dist/cli-bundle/focused-chunks/{chunk-QMNAY25P.js → chunk-THYQR3ON.js} +61 -62
  92. package/dist/cli-bundle/focused-chunks/{chunk-DVK7VKZL.js → chunk-TYLG5VEB.js} +2 -2
  93. package/dist/cli-bundle/main.js +27 -27
  94. package/dist/cli-bundle/sdk-authoring.js +1 -1
  95. package/dist/cli-bundle/sdk-contracts.js +2 -2
  96. package/dist/cli-bundle/sdk-core.js +23 -23
  97. package/dist/cli-bundle/sdk-governance.js +1 -1
  98. package/dist/cli-bundle/sdk-graph.js +1 -1
  99. package/dist/cli-bundle/sdk-merge.js +51 -51
  100. package/dist/cli-bundle/sdk-query.js +1 -1
  101. package/dist/cli-bundle/sdk-runtime.js +1 -1
  102. package/dist/cli-bundle/sdk-testing.js +1 -1
  103. package/dist/cli-bundle/sdk.js +7 -7
  104. package/dist/cli.d.ts +9 -9
  105. package/dist/core/checkpoint/checkpoint-gc.d.ts +17 -17
  106. package/dist/core/checkpoint/mutation-checkpoint.d.ts +26 -26
  107. package/dist/core/config/nested-settings.d.ts +20 -20
  108. package/dist/core/config/positional-value.d.ts +9 -9
  109. package/dist/core/diagnostics/remediation.d.ts +7 -7
  110. package/dist/core/extensions/activation-summary-markdown.d.ts +4 -4
  111. package/dist/core/extensions/activation-summary.d.ts +30 -30
  112. package/dist/core/extensions/activation-transaction.d.ts +9 -9
  113. package/dist/core/extensions/capability-usage.d.ts +25 -25
  114. package/dist/core/extensions/command-hook-context.d.ts +15 -15
  115. package/dist/core/extensions/command-metadata-contract.d.ts +1 -1
  116. package/dist/core/extensions/command-visibility-tier.d.ts +1 -1
  117. package/dist/core/extensions/contribution-inventory.d.ts +24 -24
  118. package/dist/core/extensions/exporter-output-contract.d.ts +4 -4
  119. package/dist/core/extensions/extension-candidate.d.ts +14 -14
  120. package/dist/core/extensions/extension-capability-aliases.d.ts +14 -14
  121. package/dist/core/extensions/extension-hook-runtime.d.ts +14 -14
  122. package/dist/core/extensions/extension-policy.d.ts +62 -62
  123. package/dist/core/extensions/extension-registries.d.ts +8 -8
  124. package/dist/core/extensions/extension-runtime-helpers.d.ts +5 -5
  125. package/dist/core/extensions/extension-types.d.ts +702 -702
  126. package/dist/core/extensions/flag-definition-validation.d.ts +19 -6
  127. package/dist/core/extensions/flag-definition-validation.js +1 -1
  128. package/dist/core/extensions/flag-value-types.d.ts +16 -4
  129. package/dist/core/extensions/flag-value-types.js +1 -1
  130. package/dist/core/extensions/index.d.ts +34 -34
  131. package/dist/core/extensions/item-field-types.d.ts +3 -3
  132. package/dist/core/extensions/item-fields.d.ts +6 -6
  133. package/dist/core/extensions/loader.d.ts +66 -66
  134. package/dist/core/extensions/manifest-parser.d.ts +1 -1
  135. package/dist/core/extensions/manifest-schema.d.ts +13 -13
  136. package/dist/core/extensions/module-graph-snapshot.d.ts +5 -5
  137. package/dist/core/extensions/preflight-ownership.d.ts +3 -3
  138. package/dist/core/extensions/read-output-contract.d.ts +2 -2
  139. package/dist/core/extensions/registration-contracts.d.ts +12 -12
  140. package/dist/core/extensions/registration-validation.d.ts +6 -6
  141. package/dist/core/extensions/registration-values.d.ts +19 -19
  142. package/dist/core/extensions/reserved-host-flags.d.ts +5 -5
  143. package/dist/core/extensions/runtime-registrations.d.ts +6 -6
  144. package/dist/core/extensions/service-ownership.d.ts +1 -1
  145. package/dist/core/extensions/version-compat.d.ts +9 -9
  146. package/dist/core/fs/atomic-create.d.ts +1 -1
  147. package/dist/core/fs/fs-utils.d.ts +12 -12
  148. package/dist/core/fs/host-environment-errors.d.ts +10 -10
  149. package/dist/core/fs/path-utils.d.ts +1 -1
  150. package/dist/core/governance/content-fields.d.ts +25 -25
  151. package/dist/core/governance/issue-codes.d.ts +16 -16
  152. package/dist/core/governance/metadata-coverage.d.ts +64 -64
  153. package/dist/core/history/digest.d.ts +5 -5
  154. package/dist/core/history/drift-cache.d.ts +2 -2
  155. package/dist/core/history/drift-scan.d.ts +18 -18
  156. package/dist/core/history/event-classification.d.ts +4 -4
  157. package/dist/core/history/event-index.d.ts +33 -33
  158. package/dist/core/history/history-compact-bulk.d.ts +12 -12
  159. package/dist/core/history/history-diff.d.ts +15 -15
  160. package/dist/core/history/history-rewrite.d.ts +43 -43
  161. package/dist/core/history/history-storage-stats.d.ts +20 -20
  162. package/dist/core/history/history-stream-policy.d.ts +12 -12
  163. package/dist/core/history/history.d.ts +45 -45
  164. package/dist/core/history/identity.d.ts +4 -4
  165. package/dist/core/history/operation-contract.d.ts +17 -17
  166. package/dist/core/history/projection.d.ts +16 -16
  167. package/dist/core/history/read.d.ts +4 -4
  168. package/dist/core/history/replay.d.ts +47 -47
  169. package/dist/core/history/tombstone.d.ts +1 -1
  170. package/dist/core/history/version-address.d.ts +2 -2
  171. package/dist/core/history/workspace-history.d.ts +72 -72
  172. package/dist/core/io/body-file.d.ts +2 -2
  173. package/dist/core/io/bulk-ids-input.d.ts +7 -7
  174. package/dist/core/item/actionability.d.ts +30 -30
  175. package/dist/core/item/dependency-reference.d.ts +2 -2
  176. package/dist/core/item/id.d.ts +9 -9
  177. package/dist/core/item/item-format-version.d.ts +17 -15
  178. package/dist/core/item/item-format-version.js +1 -1
  179. package/dist/core/item/item-format.d.ts +54 -54
  180. package/dist/core/item/item-record.d.ts +1 -1
  181. package/dist/core/item/item-type-definition.d.ts +11 -11
  182. package/dist/core/item/parent-reference-policy.d.ts +6 -6
  183. package/dist/core/item/parse.d.ts +37 -37
  184. package/dist/core/item/plan-lifecycle.d.ts +4 -4
  185. package/dist/core/item/priority.d.ts +3 -3
  186. package/dist/core/item/sprint-release-format.d.ts +4 -4
  187. package/dist/core/item/status-filter.d.ts +5 -5
  188. package/dist/core/item/status.d.ts +3 -3
  189. package/dist/core/item/toon-decode.d.ts +10 -10
  190. package/dist/core/item/type-registry.d.ts +35 -35
  191. package/dist/core/item/type-synonyms.d.ts +2 -2
  192. package/dist/core/lock/lock-gc.d.ts +28 -28
  193. package/dist/core/lock/lock.d.ts +53 -53
  194. package/dist/core/output/mutation-projection.d.ts +4 -4
  195. package/dist/core/output/output-control.d.ts +4 -4
  196. package/dist/core/output/output.d.ts +30 -30
  197. package/dist/core/output/query-summary.d.ts +5 -5
  198. package/dist/core/output/tabular.d.ts +3 -3
  199. package/dist/core/packages/manifest.d.ts +30 -30
  200. package/dist/core/packages/root.d.ts +4 -4
  201. package/dist/core/policy/workflow-policy-schema.d.ts +291 -291
  202. package/dist/core/policy/workflow-policy-store.d.ts +15 -15
  203. package/dist/core/policy/workflow-policy.d.ts +56 -56
  204. package/dist/core/profile/profile-describe.d.ts +22 -22
  205. package/dist/core/profile/profile-lint.d.ts +13 -13
  206. package/dist/core/profile/profile-plan.d.ts +45 -45
  207. package/dist/core/profile/profile-presets.d.ts +36 -36
  208. package/dist/core/reproducibility/context.d.ts +9 -9
  209. package/dist/core/schema/fields-file.d.ts +35 -35
  210. package/dist/core/schema/item-types-file.d.ts +29 -29
  211. package/dist/core/schema/runtime-field-filters.d.ts +3 -3
  212. package/dist/core/schema/runtime-field-values.d.ts +7 -7
  213. package/dist/core/schema/runtime-schema.d.ts +59 -59
  214. package/dist/core/schema/status-defs-file.d.ts +29 -29
  215. package/dist/core/schema/status-token.d.ts +1 -1
  216. package/dist/core/schema/type-inference.d.ts +10 -10
  217. package/dist/core/schema/type-presets.d.ts +5 -5
  218. package/dist/core/schema/type-workflows.d.ts +14 -14
  219. package/dist/core/search/background-refresh.d.ts +12 -12
  220. package/dist/core/search/bm25.d.ts +16 -16
  221. package/dist/core/search/cache.d.ts +34 -34
  222. package/dist/core/search/corpus.d.ts +17 -17
  223. package/dist/core/search/embedding-batches.d.ts +25 -25
  224. package/dist/core/search/eval-thresholds.d.ts +4 -4
  225. package/dist/core/search/eval.d.ts +40 -40
  226. package/dist/core/search/http-client.d.ts +24 -24
  227. package/dist/core/search/providers.d.ts +30 -30
  228. package/dist/core/search/relevance.d.ts +17 -17
  229. package/dist/core/search/semantic-defaults.d.ts +5 -5
  230. package/dist/core/search/staleness.d.ts +3 -3
  231. package/dist/core/search/vector-stores.d.ts +51 -51
  232. package/dist/core/search/vectorization-metadata.d.ts +9 -9
  233. package/dist/core/sentry/helpers.d.ts +28 -26
  234. package/dist/core/sentry/helpers.js +1 -1
  235. package/dist/core/sentry/instrument.d.ts +52 -50
  236. package/dist/core/sentry/instrument.js +1 -1
  237. package/dist/core/sentry/sensitive-assignments.d.ts +9 -0
  238. package/dist/core/sentry/sensitive-assignments.js +2 -0
  239. package/dist/core/session/session-state.d.ts +37 -37
  240. package/dist/core/shared/agent-session-context.d.ts +14 -14
  241. package/dist/core/shared/author.d.ts +89 -89
  242. package/dist/core/shared/command-line.d.ts +3 -3
  243. package/dist/core/shared/command-types.d.ts +20 -20
  244. package/dist/core/shared/conflict-markers.d.ts +5 -5
  245. package/dist/core/shared/constants.d.ts +30 -30
  246. package/dist/core/shared/errors.d.ts +100 -100
  247. package/dist/core/shared/html-entity-decode.d.ts +2 -2
  248. package/dist/core/shared/item-metadata-contract.d.ts +2 -2
  249. package/dist/core/shared/lazy-module.d.ts +1 -1
  250. package/dist/core/shared/levenshtein.d.ts +1 -1
  251. package/dist/core/shared/memo.d.ts +1 -1
  252. package/dist/core/shared/numeric-parsers.d.ts +1 -1
  253. package/dist/core/shared/option-alias-visibility.d.ts +3 -3
  254. package/dist/core/shared/primitives.d.ts +13 -13
  255. package/dist/core/shared/secret-rules.d.ts +92 -92
  256. package/dist/core/shared/serial-queue.d.ts +6 -6
  257. package/dist/core/shared/serialization.d.ts +4 -4
  258. package/dist/core/shared/split-comma-list.d.ts +4 -4
  259. package/dist/core/shared/text-normalization.d.ts +3 -3
  260. package/dist/core/shared/time.d.ts +27 -27
  261. package/dist/core/store/item-format-migration.d.ts +7 -7
  262. package/dist/core/store/item-metadata-cache.d.ts +30 -30
  263. package/dist/core/store/item-metadata-query-index.d.ts +66 -66
  264. package/dist/core/store/item-metadata-read-work.d.ts +6 -6
  265. package/dist/core/store/item-store.d.ts +123 -123
  266. package/dist/core/store/item-store.js +1 -1
  267. package/dist/core/store/paths.d.ts +27 -27
  268. package/dist/core/store/settings-concurrency.d.ts +1 -1
  269. package/dist/core/store/settings-read-cache.d.ts +11 -11
  270. package/dist/core/store/settings-validator.d.ts +117 -117
  271. package/dist/core/store/settings.d.ts +84 -84
  272. package/dist/core/store/sqlite-runtime.d.ts +2 -2
  273. package/dist/core/store/tracker-preflight.d.ts +3 -3
  274. package/dist/core/telemetry/consent.d.ts +1 -1
  275. package/dist/core/telemetry/observability.d.ts +16 -16
  276. package/dist/core/telemetry/policy.d.ts +7 -7
  277. package/dist/core/telemetry/read-sampling.d.ts +1 -1
  278. package/dist/core/telemetry/runtime.d.ts +275 -275
  279. package/dist/core/telemetry/runtime.js +2 -2
  280. package/dist/core/test/background-runs.d.ts +123 -123
  281. package/dist/core/test/item-test-run-tracking.d.ts +10 -10
  282. package/dist/core/test/run-selectors.d.ts +12 -12
  283. package/dist/core/validate/estimate-defaults.d.ts +3 -3
  284. package/dist/core/validate/fix-planning.d.ts +36 -36
  285. package/dist/core/validate/linked-artifact-reference.d.ts +1 -1
  286. package/dist/core/validate/missing-by-type.d.ts +3 -3
  287. package/dist/core/validate/missing-link-owners.d.ts +17 -17
  288. package/dist/core/validate/stale-file-classification.d.ts +6 -6
  289. package/dist/mcp/http-server.d.ts +26 -26
  290. package/dist/mcp/legacy-adapter.d.ts +18 -18
  291. package/dist/mcp/runtime-capabilities.d.ts +18 -18
  292. package/dist/mcp/server.d.ts +73 -73
  293. package/dist/mcp/tool-definitions.d.ts +27 -27
  294. package/dist/sdk/actionability.d.ts +1 -1
  295. package/dist/sdk/agent/closed-domain-contracts.d.ts +11 -11
  296. package/dist/sdk/agent/command-recovery.d.ts +5 -5
  297. package/dist/sdk/agent/command-suggestions.d.ts +4 -4
  298. package/dist/sdk/agent/create-option-policy.d.ts +2 -2
  299. package/dist/sdk/agent/identity-config.d.ts +18 -18
  300. package/dist/sdk/agent/item-addressing.d.ts +6 -6
  301. package/dist/sdk/agent/refusal-closure-census.d.ts +26 -26
  302. package/dist/sdk/agent/refusal-closure.d.ts +22 -22
  303. package/dist/sdk/agent/refusal-corpus-contracts.d.ts +26 -26
  304. package/dist/sdk/agent/refusal-reachability.d.ts +65 -65
  305. package/dist/sdk/agent/subcommand-recovery.d.ts +20 -20
  306. package/dist/sdk/agent/task-transcript-contracts.d.ts +18 -18
  307. package/dist/sdk/agent/tracker-preflight-contracts.d.ts +21 -21
  308. package/dist/sdk/agent-capability-contracts.d.ts +41 -41
  309. package/dist/sdk/agent-session-context.d.ts +1 -1
  310. package/dist/sdk/annotations.d.ts +74 -74
  311. package/dist/sdk/author-attribution.d.ts +47 -47
  312. package/dist/sdk/authoring.d.ts +9 -9
  313. package/dist/sdk/cli-bootstrap.d.ts +65 -65
  314. package/dist/sdk/cli-contracts/agent-output-contracts.d.ts +56 -56
  315. package/dist/sdk/cli-contracts/bootstrap-command-scanner.d.ts +6 -6
  316. package/dist/sdk/cli-contracts/command-aliases.d.ts +19 -19
  317. package/dist/sdk/cli-contracts/command-exit-contracts.d.ts +66 -66
  318. package/dist/sdk/cli-contracts/commander-mutation-options.d.ts +7 -7
  319. package/dist/sdk/cli-contracts/commander-types.d.ts +18 -18
  320. package/dist/sdk/cli-contracts/completeness.d.ts +14 -14
  321. package/dist/sdk/cli-contracts/enum-contracts.d.ts +28 -28
  322. package/dist/sdk/cli-contracts/flag-contracts.d.ts +114 -112
  323. package/dist/sdk/cli-contracts/flag-contracts.js +1 -1
  324. package/dist/sdk/cli-contracts/flag-lexicon-contracts.d.ts +27 -27
  325. package/dist/sdk/cli-contracts/grammar-contracts.d.ts +61 -61
  326. package/dist/sdk/cli-contracts/registration-helpers.d.ts +56 -56
  327. package/dist/sdk/cli-contracts/runtime-contracts.d.ts +250 -250
  328. package/dist/sdk/cli-contracts/runtime-contracts.js +1 -1
  329. package/dist/sdk/cli-contracts/schemas/assurance-definition.d.ts +678 -678
  330. package/dist/sdk/cli-contracts/string-lists.d.ts +1 -1
  331. package/dist/sdk/cli-contracts/tool-option-contracts.d.ts +564 -564
  332. package/dist/sdk/cli-contracts/tool-parameter-tables.d.ts +13 -13
  333. package/dist/sdk/cli-contracts/tool-schema.d.ts +54 -54
  334. package/dist/sdk/cli-contracts/typed-action-inputs.d.ts +20 -20
  335. package/dist/sdk/cli-contracts.d.ts +15 -15
  336. package/dist/sdk/cli-program.d.ts +1 -1
  337. package/dist/sdk/cli-program.js +1 -1
  338. package/dist/sdk/command-line.d.ts +3 -3
  339. package/dist/sdk/comments.d.ts +24 -24
  340. package/dist/sdk/compile-cache.d.ts +4 -4
  341. package/dist/sdk/completion/bash.d.ts +1 -1
  342. package/dist/sdk/completion/fish.d.ts +1 -1
  343. package/dist/sdk/completion/shared.d.ts +74 -74
  344. package/dist/sdk/completion/zsh.d.ts +1 -1
  345. package/dist/sdk/completion.d.ts +3 -3
  346. package/dist/sdk/compose.d.ts +94 -94
  347. package/dist/sdk/config.d.ts +105 -105
  348. package/dist/sdk/context/recency.d.ts +1 -1
  349. package/dist/sdk/context/semantic-session-attribution.d.ts +23 -23
  350. package/dist/sdk/context/usage-egress.d.ts +1 -1
  351. package/dist/sdk/context/usage-ledger.d.ts +18 -18
  352. package/dist/sdk/context-intent-contracts.d.ts +37 -37
  353. package/dist/sdk/context-intent-runtime.d.ts +10 -10
  354. package/dist/sdk/context-packing.d.ts +44 -44
  355. package/dist/sdk/context-relevance.d.ts +110 -110
  356. package/dist/sdk/context-signal-store.d.ts +52 -52
  357. package/dist/sdk/context-usage.d.ts +78 -78
  358. package/dist/sdk/contracts.d.ts +2 -1
  359. package/dist/sdk/contracts.js +1 -1
  360. package/dist/sdk/core-governance.d.ts +5 -5
  361. package/dist/sdk/core.d.ts +8 -8
  362. package/dist/sdk/corpus-shape.d.ts +60 -60
  363. package/dist/sdk/define.d.ts +36 -36
  364. package/dist/sdk/dependencies.d.ts +70 -70
  365. package/dist/sdk/dependency-flag-validation.d.ts +17 -17
  366. package/dist/sdk/dependency-provenance.d.ts +22 -22
  367. package/dist/sdk/docs.d.ts +17 -17
  368. package/dist/sdk/duplicates.d.ts +14 -14
  369. package/dist/sdk/environment/agent-environment.d.ts +118 -118
  370. package/dist/sdk/environment/host-environment-errors.d.ts +1 -1
  371. package/dist/sdk/environment/project-runtime-compatibility.d.ts +42 -40
  372. package/dist/sdk/environment/project-runtime-compatibility.js +2 -2
  373. package/dist/sdk/environment/source-context.d.ts +4 -4
  374. package/dist/sdk/environment/tracker-preflight.d.ts +1 -1
  375. package/dist/sdk/error-code-catalog.d.ts +33 -33
  376. package/dist/sdk/error-runtime.d.ts +5 -5
  377. package/dist/sdk/errors.d.ts +17 -17
  378. package/dist/sdk/eval.d.ts +27 -27
  379. package/dist/sdk/extension/author-manifest.d.ts +9 -9
  380. package/dist/sdk/extension/bundled-catalog.d.ts +18 -18
  381. package/dist/sdk/extension/concurrency.d.ts +1 -1
  382. package/dist/sdk/extension/copy-scope.d.ts +1 -1
  383. package/dist/sdk/extension/custom-field-collisions.d.ts +1 -1
  384. package/dist/sdk/extension/describe.d.ts +21 -21
  385. package/dist/sdk/extension/doctor.d.ts +46 -46
  386. package/dist/sdk/extension/install-plan.d.ts +32 -32
  387. package/dist/sdk/extension/install-receipts.d.ts +4 -4
  388. package/dist/sdk/extension/install-runtime.d.ts +12 -12
  389. package/dist/sdk/extension/install-snapshot.d.ts +10 -10
  390. package/dist/sdk/extension/install-sources.d.ts +106 -106
  391. package/dist/sdk/extension/managed-state.d.ts +42 -42
  392. package/dist/sdk/extension/managed-update-status.d.ts +1 -1
  393. package/dist/sdk/extension/migrations.d.ts +48 -48
  394. package/dist/sdk/extension/output-ownership.d.ts +19 -19
  395. package/dist/sdk/extension/runtime-summary.d.ts +7 -7
  396. package/dist/sdk/extension/scaffold.d.ts +15 -15
  397. package/dist/sdk/extension/shared.d.ts +16 -16
  398. package/dist/sdk/extension/source-resolution.d.ts +16 -16
  399. package/dist/sdk/extension/static-inventory.d.ts +23 -23
  400. package/dist/sdk/extension/update-check.d.ts +9 -9
  401. package/dist/sdk/extension-command-context.d.ts +1 -1
  402. package/dist/sdk/extension-contracts.d.ts +10 -10
  403. package/dist/sdk/extension.d.ts +221 -221
  404. package/dist/sdk/files.d.ts +101 -101
  405. package/dist/sdk/flag-invocation-contracts.d.ts +25 -25
  406. package/dist/sdk/flag-invocation-contracts.js +1 -1
  407. package/dist/sdk/generated/generated-error-code-catalog-part-1.d.ts +1 -1
  408. package/dist/sdk/generated/generated-error-code-catalog-part-2.d.ts +1 -1
  409. package/dist/sdk/generated/generated-error-code-catalog-part-2.js +1 -1
  410. package/dist/sdk/generated-error-code-catalog.d.ts +1 -1
  411. package/dist/sdk/governance/artifact-ledgers.d.ts +19 -19
  412. package/dist/sdk/governance/assurance-action-contracts.d.ts +1 -1
  413. package/dist/sdk/governance/assurance-action.d.ts +46 -46
  414. package/dist/sdk/governance/assurance-mutation-error.d.ts +20 -20
  415. package/dist/sdk/governance/assurance-presets.d.ts +25 -25
  416. package/dist/sdk/governance/assurance-runtime.d.ts +10 -10
  417. package/dist/sdk/governance/assurance.d.ts +204 -204
  418. package/dist/sdk/governance/boundary-fixtures.d.ts +32 -32
  419. package/dist/sdk/governance/closure-timestamps.d.ts +10 -10
  420. package/dist/sdk/governance/coverage-assurance.d.ts +7 -7
  421. package/dist/sdk/governance/defect-recurrence-coverage.d.ts +40 -40
  422. package/dist/sdk/governance/defect-recurrence-graph.d.ts +11 -11
  423. package/dist/sdk/governance/defect-recurrence-signals.d.ts +1 -1
  424. package/dist/sdk/governance/defect-recurrence.d.ts +97 -97
  425. package/dist/sdk/governance/defect-recurrence.js +2 -1
  426. package/dist/sdk/governance/extension-host-version.d.ts +9 -9
  427. package/dist/sdk/governance/gc.d.ts +26 -26
  428. package/dist/sdk/governance/health-merge-evidence.d.ts +8 -8
  429. package/dist/sdk/governance/health.d.ts +172 -172
  430. package/dist/sdk/governance/health.js +1 -1
  431. package/dist/sdk/governance/hierarchy-validation.d.ts +16 -16
  432. package/dist/sdk/governance/linked-file-report.d.ts +15 -15
  433. package/dist/sdk/governance/merge-receipt-history.d.ts +24 -24
  434. package/dist/sdk/governance/provenance-health.d.ts +35 -35
  435. package/dist/sdk/governance/reindex.d.ts +102 -102
  436. package/dist/sdk/governance/reliability.d.ts +29 -29
  437. package/dist/sdk/governance/stale-work.d.ts +13 -13
  438. package/dist/sdk/governance/status-role-diagnostics.d.ts +8 -8
  439. package/dist/sdk/governance/storage-integrity.d.ts +28 -28
  440. package/dist/sdk/governance/tracked-runtime-cache.d.ts +7 -7
  441. package/dist/sdk/governance/upgrade.d.ts +77 -77
  442. package/dist/sdk/governance/validate-history-drift.d.ts +3 -3
  443. package/dist/sdk/governance/validate-item-reader.d.ts +9 -9
  444. package/dist/sdk/governance/validate-normalization.d.ts +4 -4
  445. package/dist/sdk/governance/validate.d.ts +176 -176
  446. package/dist/sdk/governance/validate.js +1 -1
  447. package/dist/sdk/governance/workflow-completeness.d.ts +15 -15
  448. package/dist/sdk/governance/workflow-policy.d.ts +18 -18
  449. package/dist/sdk/governance/workspace-position.d.ts +40 -40
  450. package/dist/sdk/governance.d.ts +2 -2
  451. package/dist/sdk/graph/adapter.d.ts +45 -45
  452. package/dist/sdk/graph/analytics.d.ts +36 -36
  453. package/dist/sdk/graph/assembly.d.ts +51 -51
  454. package/dist/sdk/graph/cache.d.ts +19 -19
  455. package/dist/sdk/graph/cardinality-integrity.d.ts +4 -4
  456. package/dist/sdk/graph/centrality.d.ts +20 -20
  457. package/dist/sdk/graph/conformance.d.ts +21 -21
  458. package/dist/sdk/graph/deadline-scheduling.d.ts +30 -30
  459. package/dist/sdk/graph/durable-cache.d.ts +22 -22
  460. package/dist/sdk/graph/governance-contracts.d.ts +1 -1
  461. package/dist/sdk/graph/governance.d.ts +92 -92
  462. package/dist/sdk/graph/hierarchy-integrity.d.ts +32 -32
  463. package/dist/sdk/graph/index.d.ts +15 -15
  464. package/dist/sdk/graph/lifecycle-coverage.d.ts +12 -12
  465. package/dist/sdk/graph/mutation-advisory.d.ts +15 -15
  466. package/dist/sdk/graph/query-contracts.d.ts +6 -6
  467. package/dist/sdk/graph/remediation.d.ts +15 -15
  468. package/dist/sdk/graph/run.d.ts +203 -203
  469. package/dist/sdk/graph/scheduling.d.ts +21 -21
  470. package/dist/sdk/graph/traversal.d.ts +18 -18
  471. package/dist/sdk/graph/workspace-relationship-kind-registry.d.ts +1 -1
  472. package/dist/sdk/guide-topics.d.ts +19 -19
  473. package/dist/sdk/guide.d.ts +43 -43
  474. package/dist/sdk/history/attestation-command.d.ts +8 -8
  475. package/dist/sdk/history/attestation-contract.d.ts +43 -43
  476. package/dist/sdk/history/attestation-scan.d.ts +4 -4
  477. package/dist/sdk/history/attestation.d.ts +4 -4
  478. package/dist/sdk/history/maintenance.d.ts +25 -25
  479. package/dist/sdk/history/salvage.d.ts +19 -19
  480. package/dist/sdk/history/subject.d.ts +8 -8
  481. package/dist/sdk/history-analytics.d.ts +64 -64
  482. package/dist/sdk/history-compact.d.ts +67 -67
  483. package/dist/sdk/history-mcp.d.ts +7 -7
  484. package/dist/sdk/history-provenance.d.ts +40 -40
  485. package/dist/sdk/history-read.d.ts +24 -24
  486. package/dist/sdk/history-redact.d.ts +68 -68
  487. package/dist/sdk/history-repair.d.ts +92 -92
  488. package/dist/sdk/improvement-ledger-validation.d.ts +1 -1
  489. package/dist/sdk/improvement-ledger.d.ts +62 -62
  490. package/dist/sdk/index.d.ts +69 -69
  491. package/dist/sdk/init-agent-guidance.d.ts +68 -68
  492. package/dist/sdk/init.d.ts +117 -117
  493. package/dist/sdk/invocation-author.d.ts +1 -1
  494. package/dist/sdk/item-children.d.ts +15 -15
  495. package/dist/sdk/item-metadata-index.d.ts +2 -2
  496. package/dist/sdk/item-schedule.d.ts +9 -9
  497. package/dist/sdk/item-transaction.d.ts +73 -73
  498. package/dist/sdk/learnings.d.ts +23 -23
  499. package/dist/sdk/lifecycle/append.d.ts +8 -8
  500. package/dist/sdk/lifecycle/claim.d.ts +38 -38
  501. package/dist/sdk/lifecycle/close-many.d.ts +71 -71
  502. package/dist/sdk/lifecycle/close.d.ts +18 -18
  503. package/dist/sdk/lifecycle/copy.d.ts +10 -10
  504. package/dist/sdk/lifecycle/core-field-recovery.d.ts +1 -1
  505. package/dist/sdk/lifecycle/create.d.ts +88 -88
  506. package/dist/sdk/lifecycle/delete.d.ts +15 -15
  507. package/dist/sdk/lifecycle/event-validation-messages.d.ts +1 -1
  508. package/dist/sdk/lifecycle/focus.d.ts +6 -6
  509. package/dist/sdk/lifecycle/hierarchy-mutation-lock.d.ts +6 -6
  510. package/dist/sdk/lifecycle/legacy-none-tokens.d.ts +35 -35
  511. package/dist/sdk/lifecycle/lifecycle-transitions.d.ts +3 -3
  512. package/dist/sdk/lifecycle/mcp-actions.d.ts +10 -10
  513. package/dist/sdk/lifecycle/metadata-normalizers.d.ts +4 -4
  514. package/dist/sdk/lifecycle/mutation-command-options.d.ts +58 -58
  515. package/dist/sdk/lifecycle/mutation-facet-contracts.d.ts +1 -1
  516. package/dist/sdk/lifecycle/plan-mutation-receipt.d.ts +24 -24
  517. package/dist/sdk/lifecycle/plan.d.ts +127 -127
  518. package/dist/sdk/lifecycle/recurrence-parsers.d.ts +5 -5
  519. package/dist/sdk/lifecycle/reopen.d.ts +15 -15
  520. package/dist/sdk/lifecycle/repeatable-metadata-parsers.d.ts +7 -7
  521. package/dist/sdk/lifecycle/restore.d.ts +34 -34
  522. package/dist/sdk/lifecycle/restore.js +1 -1
  523. package/dist/sdk/lifecycle/shared-unset-fields.d.ts +20 -20
  524. package/dist/sdk/lifecycle/task-composition.d.ts +7 -7
  525. package/dist/sdk/lifecycle/update-many.d.ts +61 -61
  526. package/dist/sdk/lifecycle/update.d.ts +120 -120
  527. package/dist/sdk/lifecycle-completion.d.ts +14 -14
  528. package/dist/sdk/lifecycle-policy.d.ts +31 -31
  529. package/dist/sdk/linked-artifacts.d.ts +58 -58
  530. package/dist/sdk/mcp/apps.d.ts +28 -28
  531. package/dist/sdk/mcp/authorization.d.ts +66 -66
  532. package/dist/sdk/mcp/discovery.d.ts +67 -67
  533. package/dist/sdk/mcp/interactions.d.ts +49 -49
  534. package/dist/sdk/mcp/protocol.d.ts +63 -63
  535. package/dist/sdk/mcp/skills.d.ts +62 -62
  536. package/dist/sdk/mcp/subscriptions.d.ts +26 -26
  537. package/dist/sdk/mcp/tasks.d.ts +51 -51
  538. package/dist/sdk/mcp/transport.d.ts +17 -17
  539. package/dist/sdk/merge/abandoned-receipts.d.ts +8 -8
  540. package/dist/sdk/merge/driver.d.ts +38 -38
  541. package/dist/sdk/merge/index.d.ts +5 -5
  542. package/dist/sdk/merge/install.d.ts +48 -48
  543. package/dist/sdk/merge/install.js +1 -1
  544. package/dist/sdk/merge/receipt-file-boundary.d.ts +6 -6
  545. package/dist/sdk/merge/receipt-operation.d.ts +6 -6
  546. package/dist/sdk/merge/receipt-schema.d.ts +11 -11
  547. package/dist/sdk/merge/receipts.d.ts +111 -111
  548. package/dist/sdk/merge/reconcile.d.ts +20 -20
  549. package/dist/sdk/merge/three-way.d.ts +50 -50
  550. package/dist/sdk/merge/three-way.js +2 -2
  551. package/dist/sdk/merge/worktree-config.d.ts +3 -3
  552. package/dist/sdk/mutation-events.d.ts +62 -62
  553. package/dist/sdk/mutation-guard.d.ts +134 -134
  554. package/dist/sdk/notes.d.ts +28 -28
  555. package/dist/sdk/output/table-rows.d.ts +6 -6
  556. package/dist/sdk/output-contracts.d.ts +26 -26
  557. package/dist/sdk/output-projection.d.ts +108 -108
  558. package/dist/sdk/output-token-accounting.d.ts +18 -18
  559. package/dist/sdk/output.d.ts +18 -18
  560. package/dist/sdk/ownership-source.d.ts +1 -1
  561. package/dist/sdk/package-import-adapters.d.ts +51 -51
  562. package/dist/sdk/package-migrations.d.ts +3 -3
  563. package/dist/sdk/package-runtime-options.d.ts +3 -3
  564. package/dist/sdk/pagination.d.ts +28 -28
  565. package/dist/sdk/pagination.js +1 -1
  566. package/dist/sdk/profile.d.ts +72 -72
  567. package/dist/sdk/provenance.d.ts +37 -37
  568. package/dist/sdk/public-surface.json +1 -1
  569. package/dist/sdk/query/activity.d.ts +84 -84
  570. package/dist/sdk/query/aggregate.d.ts +109 -109
  571. package/dist/sdk/query/calendar.d.ts +95 -95
  572. package/dist/sdk/query/complete-list.d.ts +35 -35
  573. package/dist/sdk/query/context.d.ts +300 -300
  574. package/dist/sdk/query/duplicate-candidates.d.ts +3 -3
  575. package/dist/sdk/query/get.d.ts +54 -54
  576. package/dist/sdk/query/history.d.ts +38 -38
  577. package/dist/sdk/query/item-filter-options.d.ts +41 -41
  578. package/dist/sdk/query/light-metadata.d.ts +1 -1
  579. package/dist/sdk/query/list-filter-shared.d.ts +4 -4
  580. package/dist/sdk/query/list.d.ts +167 -167
  581. package/dist/sdk/query/list.js +1 -1
  582. package/dist/sdk/query/multi-value-filters.d.ts +6 -6
  583. package/dist/sdk/query/next-ready-budget.d.ts +8 -8
  584. package/dist/sdk/query/next.d.ts +94 -94
  585. package/dist/sdk/query/parsers.d.ts +3 -3
  586. package/dist/sdk/query/projection-contracts.d.ts +18 -18
  587. package/dist/sdk/query/search/corpus.d.ts +15 -15
  588. package/dist/sdk/query/search/filters.d.ts +15 -15
  589. package/dist/sdk/query/search/input.d.ts +8 -8
  590. package/dist/sdk/query/search/lexical.d.ts +10 -10
  591. package/dist/sdk/query/search/response.d.ts +22 -22
  592. package/dist/sdk/query/search/semantic.d.ts +133 -133
  593. package/dist/sdk/query/search/types.d.ts +65 -65
  594. package/dist/sdk/query/search-contracts.d.ts +53 -53
  595. package/dist/sdk/query/search-pagination.d.ts +21 -21
  596. package/dist/sdk/query/search-rendering.d.ts +30 -30
  597. package/dist/sdk/query/search.d.ts +60 -60
  598. package/dist/sdk/query/workspace-contracts.d.ts +2 -2
  599. package/dist/sdk/query.d.ts +6 -6
  600. package/dist/sdk/read-output/continuation.d.ts +11 -11
  601. package/dist/sdk/read-output/extension.d.ts +3 -3
  602. package/dist/sdk/read-output/options.d.ts +7 -7
  603. package/dist/sdk/read-output/provenance.d.ts +6 -6
  604. package/dist/sdk/read-output-budget.d.ts +11 -11
  605. package/dist/sdk/read-output-contracts.d.ts +112 -112
  606. package/dist/sdk/read-output-contracts.js +1 -1
  607. package/dist/sdk/read-output-rows.d.ts +15 -15
  608. package/dist/sdk/read-output-session.d.ts +29 -29
  609. package/dist/sdk/relationship-analytics.d.ts +46 -46
  610. package/dist/sdk/relationship-context.d.ts +48 -48
  611. package/dist/sdk/relationship-history.d.ts +59 -59
  612. package/dist/sdk/relationship-kinds/contract.d.ts +18 -18
  613. package/dist/sdk/relationship-migration.d.ts +14 -14
  614. package/dist/sdk/relationships.d.ts +46 -46
  615. package/dist/sdk/reproducibility/process.d.ts +9 -9
  616. package/dist/sdk/runtime/actions.d.ts +1 -1
  617. package/dist/sdk/runtime/context.d.ts +15 -15
  618. package/dist/sdk/runtime/schema-preview.d.ts +1 -1
  619. package/dist/sdk/runtime/schema.d.ts +1 -1
  620. package/dist/sdk/runtime-action-aliases.d.ts +3 -3
  621. package/dist/sdk/runtime-extended-actions.d.ts +9 -9
  622. package/dist/sdk/runtime-input.d.ts +29 -29
  623. package/dist/sdk/runtime-primitives.d.ts +54 -52
  624. package/dist/sdk/runtime-primitives.js +1 -1
  625. package/dist/sdk/runtime-public-contracts.d.ts +46 -46
  626. package/dist/sdk/runtime-stats-options.d.ts +1 -1
  627. package/dist/sdk/runtime.d.ts +374 -374
  628. package/dist/sdk/scheduling-shortcuts.d.ts +19 -19
  629. package/dist/sdk/schema-migration.d.ts +79 -79
  630. package/dist/sdk/schema.d.ts +224 -224
  631. package/dist/sdk/search-refresh-worker.d.ts +1 -1
  632. package/dist/sdk/similarity-scoring.d.ts +10 -10
  633. package/dist/sdk/similarity.d.ts +73 -73
  634. package/dist/sdk/start-task-status.d.ts +1 -1
  635. package/dist/sdk/stats.d.ts +72 -72
  636. package/dist/sdk/structured-mutations.d.ts +13 -13
  637. package/dist/sdk/telemetry-flush.d.ts +1 -1
  638. package/dist/sdk/telemetry.d.ts +32 -32
  639. package/dist/sdk/templates.d.ts +35 -35
  640. package/dist/sdk/test/batch.d.ts +50 -50
  641. package/dist/sdk/test/command-args.d.ts +2 -2
  642. package/dist/sdk/test/entry.d.ts +4 -4
  643. package/dist/sdk/test/execution-receipts.d.ts +5 -5
  644. package/dist/sdk/test/execution.d.ts +247 -247
  645. package/dist/sdk/test/json-path.d.ts +4 -4
  646. package/dist/sdk/test/linked-command-detection.d.ts +36 -36
  647. package/dist/sdk/test/measurements.d.ts +10 -10
  648. package/dist/sdk/test/parsers.d.ts +18 -18
  649. package/dist/sdk/test/prerequisites.d.ts +3 -3
  650. package/dist/sdk/test/runs.d.ts +43 -43
  651. package/dist/sdk/test/trust.d.ts +15 -15
  652. package/dist/sdk/test/update.d.ts +23 -23
  653. package/dist/sdk/test/workspace-snapshot.d.ts +1 -1
  654. package/dist/sdk/testing.d.ts +250 -246
  655. package/dist/sdk/testing.js +2 -2
  656. package/dist/sdk/traceability/runtime-files-lookup.d.ts +1 -1
  657. package/dist/sdk/traceability/source-traceability.d.ts +50 -50
  658. package/dist/sdk/workspace-contracts-cache.d.ts +2 -2
  659. package/dist/sdk/workspace-contracts.d.ts +20 -20
  660. package/dist/sdk/workspace-memory.d.ts +42 -42
  661. package/dist/sdk/workspace-recipe.d.ts +9 -9
  662. package/dist/sdk/workspace-snapshot.d.ts +60 -60
  663. package/dist/sdk/workspace-transaction-gc.d.ts +17 -17
  664. package/dist/sdk/workspace-transaction.d.ts +26 -26
  665. package/dist/sdk/workspace.d.ts +9 -9
  666. package/dist/types.d.ts +540 -540
  667. package/docs/COMMANDS.md +11 -2
  668. package/docs/CONFIGURATION.md +43 -0
  669. package/docs/DEFECT_RECURRENCE.md +8 -0
  670. package/docs/EXTENSIONS.md +1 -1
  671. package/docs/EXTENSION_AUTHOR_CONTRACTS.md +33 -0
  672. package/docs/LINKED_TEST_EDITS.md +15 -0
  673. package/docs/MERGE_SAFETY.md +8 -0
  674. package/docs/RELEASING.md +2 -0
  675. package/docs/SDK.md +19 -0
  676. package/docs/TESTING.md +21 -1
  677. package/docs/generated/REFUSAL_CLOSURE_CENSUS.md +4 -3
  678. package/marketplace.json +1 -1
  679. package/package.json +3 -1
  680. package/packages/pm-beads/package.json +1 -1
  681. package/packages/pm-calendar/package.json +1 -1
  682. package/packages/pm-command-kit/package.json +1 -1
  683. package/packages/pm-digital-twin/package.json +1 -1
  684. package/packages/pm-governance-audit/package.json +1 -1
  685. package/packages/pm-guide-shell/package.json +1 -1
  686. package/packages/pm-kanban/package.json +1 -1
  687. package/packages/pm-lifecycle-hooks/package.json +1 -1
  688. package/packages/pm-linked-test-adapters/package.json +1 -1
  689. package/packages/pm-search-advanced/package.json +1 -1
  690. package/packages/pm-templates/package.json +1 -1
  691. package/packages/pm-todos/package.json +1 -1
  692. package/packages/pm-vcs/package.json +1 -1
  693. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  694. package/plugins/pm-claude/package.json +1 -1
  695. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  696. package/plugins/pm-codex/package.json +1 -1
  697. package/plugins/pm-codex/plugin.json +1 -1
  698. package/runtime-dependencies.json +1 -1
  699. package/scripts/finalize-build.mjs +9 -3
  700. package/dist/cli-bundle/chunks/chunk-DJDRHJBP.js +0 -234
  701. package/dist/cli-bundle/chunks/chunk-DUK5DHI6.js +0 -8
  702. package/dist/cli-bundle/chunks/chunk-IFPJDJUM.js +0 -20
  703. package/dist/cli-bundle/chunks/chunk-RL45OYTL.js +0 -6
  704. package/dist/cli-bundle/chunks/chunk-WYZGZV2M.js +0 -2
  705. package/dist/cli-bundle/focused-chunks/chunk-F5J3ATMV.js +0 -165
  706. package/dist/cli-bundle/focused-chunks/chunk-IOTNG6CN.js +0 -2
  707. package/dist/cli-bundle/focused-chunks/chunk-S6ITXQ5T.js +0 -20
  708. package/dist/cli-bundle/focused-chunks/chunk-UPJA45K7.js +0 -26
@@ -1,11 +1,11 @@
1
- import{a as nt,b as Cn,c as yc,d as bc,g as wc,i as zc}from"./chunk-AM2XOZKE.js";import{A as rl,P as er,Y as il,d as Eo,e as Hc,g as Wc,h as Vc,i as Bc,o as Kc,p as Mt,q as Ge,r as Zo,y as Qo}from"./chunk-RL45OYTL.js";import{$c as nl,Aa as pc,Ba as uc,Ca as In,Da as _c,Ea as An,Fa as En,Ga as fc,Gb as Dc,Ia as et,Id as tr,J as Le,Ja as hc,Jb as Mc,Ka as jo,Kb as jc,La as Tn,Ld as _l,Na as tt,Oc as Ho,Pb as Nt,Rc as Ie,Sc as Jc,Tc as Vo,Uc as Yc,Ud as fl,Vc as Xc,Vd as hl,Wa as gc,Wc as ot,Xc as Zc,_c as tl,ad as ol,b as No,bd as Jo,cd as Yo,dd as Xo,fc as On,ga as hn,gd as sl,ha as ac,hd as cl,i as Os,ia as Pt,id as ll,j as $s,ja as h,jd as dl,ka as sc,kd as ml,l as Fs,la as cc,mb as kc,mc as Uc,md as pl,na as Y,nb as Sc,nd as ul,oa as lc,oc as qc,pa as vn,qa as dc,ra as Do,sa as Lt,sb as Go,ta as kn,tb as Uo,ua as Me,ub as qo,va as mc,vc as Dt,wa as Sn,wb as Ic,xa as U,xb as Ac,ya as Mo,yb as zo,za as j}from"./chunk-PSNS537F.js";import{$a as wn,E as Ps,K as Ls,M as Ne,N as Ns,O as yn,P as Ds,Pa as Qe,Q as De,R as Ms,S as bn,T as js,Wa as oc,Z as Gs,aa as Us,c as fa,ca as qs,da as zs,db as rc,ea as Hs,fa as Ws,ga as Vs,gb as ic,ha as Bs,i as gn,ia as Ks,ja as Js,ka as Ys,la as Xs,ma as Zs,na as Qs,oa as ec,pa as tc,qa as nc}from"./chunk-YH6H3UVE.js";import{$a as Ec,Ab as Nc,Eb as Se,Fb as Gc,Gb as xn,Kb as Wo,Vc as Bo,Yb as Qc,Zb as el,_c as Ko,bd as al,d as ua,f as _a,jb as Tc,kb as Cc,lb as Rc,na as de,ob as xc,pb as Oc,qb as $c,rb as Fc,tb as je,ua as vc,ub as Pc,vb as Lc,yb as Rn}from"./chunk-IFPJDJUM.js";import{$ as oe,$d as Di,$e as qi,$m as ks,A as _i,Ad as Li,Al as Xa,B as fi,Bl as ln,C as hi,Cl as dn,Cm as us,D as gi,Df as Vi,Dg as Fe,Dl as mn,Dm as _s,Ed as H,El as pn,Fg as Ye,Fk as Ra,Fm as _n,G as yi,Gf as Ke,Gj as ga,Gl as re,Gm as fs,Go as Rs,Hk as xa,Ii as To,Ij as ya,Il as Za,Ja as co,Ji as Co,Jj as sn,Jl as Qa,Ka as lo,Kf as Bi,Kg as on,Kj as ba,La as mo,Lg as Tt,Ma as po,Mg as ko,Ml as $t,Mm as hs,Nk as Oa,Nl as es,Nm as gs,Ok as $a,Ol as ts,Pi as ca,Pk as Fa,Pl as ns,Pn as Po,Qb as vi,Qd as tn,Qj as wa,Ql as os,R as u,Rb as ki,Rh as Ct,Rm as xo,Rn as Lo,Se as Gi,Sh as Rt,Si as Ze,Sk as Pa,So as xs,T as p,Tm as Oo,Ub as Si,Uf as Ki,Uj as va,V as ye,Va as P,Vc as Zt,Vf as F,Vl as Ro,W as Be,Wa as Yt,Wc as Qt,Wk as La,Wl as rs,X as ro,Xc as en,Xd as Ni,Xk as Na,Xl as Pe,Xm as ys,Y as se,Yd as nn,Ye as Ui,Yg as ea,Yk as Da,Ym as bs,Zc as Oi,Zg as ta,Zj as ka,Zk as Ma,Zl as is,Zm as ws,_g as na,_j as Sa,_k as ja,_l as as,_m as vs,aa as kt,aj as la,ak as Ia,al as Ga,am as un,bb as A,bl as Ua,bn as Ss,ce as Mi,cj as da,cl as qa,cm as ss,cn as Is,dd as _o,dj as ma,dk as Aa,dl as za,dm as cs,dn as As,eb as we,ej as ce,el as Ha,em as ls,en as Ft,f as J,fb as uo,fd as fo,fe as ji,fj as ve,fl as Wa,fn as Es,gd as ho,gn as fn,h as oo,ha as bi,hb as xe,hd as go,hg as Je,hn as Ts,id as yo,if as S,ig as Oe,ij as xt,il as Va,in as $o,j as pi,ja as wi,jd as bo,jg as Ji,jl as cn,jn as Fo,ka as be,kd as wo,kg as Yi,kl as Ba,kn as Cs,ld as vo,lg as $e,li as oa,lj as an,ll as Ka,mc as Ii,md as $,mf as zi,mg as Xi,mi as Xe,na as io,nc as Ai,oc as Ei,of as Hi,oh as So,oj as Ot,om as ds,p as Jt,pc as Ti,pf as ne,pg as V,ph as R,pi as rn,pj as pa,pl as ke,qa as ao,qc as Ci,ql as E,ra as St,rc as Ri,rd as $i,rg as Et,ri as ra,rl as Ja,sc as xi,sd as Fi,sg as Zi,si as ia,sl as Ya,sm as ms,ta as so,tb as It,ti as aa,tk as Ea,u as Ve,ub as At,vd as G,vf as Wi,vi as Io,w as ui,wb as Xt,wg as Qi,wi as Ao,wk as Ta,wm as ps,xj as ha,xk as Ca,yi as T,zd as Pi,zi as sa,zm as le}from"./chunk-DJDRHJBP.js";import{AsyncLocalStorage as Gg}from"node:async_hooks";import{readFile as hp}from"node:fs/promises";import gp from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="20a3a324-d176-5918-8167-5e548be4abc9")}catch{}})();var nr="context-intents.json";function $n(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function yp(e,t,n){if(!$n(e))throw new TypeError(`${t} context intent at index ${String(n)} must be an object`);let o=e.included_field_groups;if(typeof e.command!="string"||typeof e.intent!="string"||typeof e.description!="string"||!Array.isArray(o)||!o.every(r=>typeof r=="string")||typeof e.token_budget!="number")throw new TypeError(`${t} context intent at index ${String(n)} has an invalid contract shape`);return{command:e.command,intent:e.intent,description:e.description,included_field_groups:o,token_budget:e.token_budget}}function gl(e,t){let n=Array.isArray(e)?e:$n(e)&&Array.isArray(e.intents)?e.intents:void 0;if(!n)throw new TypeError(`${t} context intents must be an array or an object with an intents array`);return n.map((o,r)=>yp(o,t,r))}async function bp(e){let t=gp.join(e,nr),n;try{n=await hp(t,"utf8")}catch(r){if(Be(r))return[];throw await Ki(e),r}let o;try{o=JSON.parse(n)}catch(r){let i=r instanceof Error?r.message:String(r);throw new TypeError(`Invalid ${nr}: ${i}`,{cause:r})}return gl(o,nr)}function wp(e){if(!$n(e))return;let t=e.contextIntents??e.context_intents;if(t!==void 0)return t;let n=e.default;return $n(n)?n.contextIntents??n.context_intents:void 0}function vp(e){return e.flatMap(t=>{let n=wp(t.module);return n===void 0?[]:gl(n,`package ${t.name}`)})}async function kp(e){let t=await bp(e.pmRoot),n=vp(e.packages??[]);return{workspaceContracts:t,packageContracts:n}}async function Fn(e,t){let n=await kp(e);return await Vi(n,t)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="0a4abc17-0fcb-573f-8f89-6e505e112261")}catch{}})();async function yl(e,t,n=Wi){try{await n({pmRoot:e,result:t})}catch{if(typeof t=="object"&&t!==null&&!Array.isArray(t)){let o=t,r=Array.isArray(o.warnings)?o.warnings.filter(i=>typeof i=="string"):[];o.warnings=[...new Set([...r,"context_usage_feedback_write_failed"])].sort()}}}import{createHash as xp}from"node:crypto";import{constants as jt}from"node:fs";import{lstat as bl,mkdir as rr,open as wl}from"node:fs/promises";import me from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="5434ff6f-95af-5983-88cb-fd360d95cb9e")}catch{}})();function or(e,t){if(typeof e!="string"||e.trim().length===0)throw new TypeError(`Relationship event ${t} must be non-empty`);return e.trim()}function ir(e,t){let n=t.require(e.kind),o=n.direction==="undirected"?[e.source,e.target].sort().join("\0"):`${e.source}\0${e.target}`;return`${n.kind}\0${o}`}function Sp(e){return Object.freeze({...e,...e.payload===void 0?{}:{payload:Object.freeze(structuredClone(e.payload))}})}function Ip(e,t,n,o){let r=n.require(e.kind),i=o.outgoingOne.get(`${r.kind}\0${e.source}`);if(i!==void 0&&i!==t)throw new TypeError(`Relationship outgoing cardinality exceeded for ${r.kind}`);let a=o.incomingOne.get(`${r.kind}\0${e.target}`);if(a!==void 0&&a!==t)throw new TypeError(`Relationship incoming cardinality exceeded for ${r.kind}`);let s=ir(e,n),c=o.identities.get(s);if(c!==void 0&&c!==t)throw new TypeError(`Relationship edge already active: ${s}`)}function Ap(e){let t=new Map;for(let n of e)n.action==="remove"?t.delete(n.relationshipId):t.set(n.relationshipId,n.edge);return t}function Ep(e,t,n){if(e.expectedVersion!==void 0&&e.expectedVersion!==t)throw new TypeError(`Relationship event version conflict: expected ${e.expectedVersion}, current ${t}`);let o=or(e.eventId,"eventId");if(n.has(o))throw new TypeError(`Relationship event already exists: ${o}`);if(e.action!=="add"&&e.action!=="remove"&&e.action!=="supersede")throw new TypeError(`Unknown relationship event action: ${e.action}`);if(!Number.isFinite(Date.parse(e.timestamp)))throw new TypeError("Relationship event timestamp must be valid");return{eventId:o,relationshipId:or(e.relationshipId,"relationshipId"),author:or(e.author,"author"),timestamp:new Date(e.timestamp).toISOString()}}function Tp(e,t,n,o,r,i){let a=n.has(t);if(e.action==="add"&&a)throw new TypeError(`Relationship is already active: ${t}`);if(e.action!=="add"&&!a)throw new TypeError(`Relationship is not active: ${t}`);if(e.action==="remove")return;if(!e.edge)throw new TypeError(`Relationship ${e.action} event requires an edge`);let s=typeof e.edge.source=="string"?e.edge.source.trim():"",c=typeof e.edge.target=="string"?e.edge.target.trim():"";if(!o.has(s)||!o.has(c))throw new TypeError(`Relationship endpoint not found: ${s} -> ${c}`);let l=new Ve([s,c],[e.edge],r).edges()[0];return Ip(l,t,r,i),Sp(l)}var Gt=class{#t;#n;#o=[];#i=new Set;#e=new Map;#r={identities:new Map,outgoingOne:new Map,incomingOne:new Map};constructor(t,n={}){this.#t=new Set([...t].filter(o=>typeof o=="string").map(o=>o.trim()).filter(Boolean)),this.#n=n.registry??Jt()}get version(){return this.#o.length}events(){return Object.freeze([...this.#o])}*stream(t={}){let n=t.fromVersion??1,o=t.toVersion??this.version,r=t.batchSize??100;if(!Number.isInteger(n)||n<1)throw new TypeError("Relationship event stream fromVersion must be positive");if(!Number.isInteger(o)||o<0||o>this.version)throw new TypeError(`Relationship event stream toVersion out of range: ${o}`);if(!Number.isInteger(r)||r<1)throw new TypeError("Relationship event stream batchSize must be positive");if(n>o+1)throw new TypeError("Relationship event stream fromVersion exceeds the selected prefix");for(let i=n-1;i<o;i+=r)yield Object.freeze(this.#o.slice(i,Math.min(i+r,o)))}project(t,n,o={}){if(typeof n!="function")throw new TypeError("Relationship event projection requires a reducer");let r=t,i=0,a;for(let s of this.stream({...o,batchSize:256}))for(let c of s)r=n(r,c),i+=1,a=c;return Object.freeze({state:r,version:a?.sequence??Math.max(0,(o.fromVersion??1)-1),processed:i,...a===void 0?{}:{asOf:a.timestamp}})}#a(t,n){let o=this.#n.require(n.kind);this.#r.identities.set(ir(n,this.#n),t),o.outgoing==="one"&&this.#r.outgoingOne.set(`${o.kind}\0${n.source}`,t),o.incoming==="one"&&this.#r.incomingOne.set(`${o.kind}\0${n.target}`,t)}#s(t){let n=this.#n.require(t.kind);this.#r.identities.delete(ir(t,this.#n)),n.outgoing==="one"&&this.#r.outgoingOne.delete(`${n.kind}\0${t.source}`),n.incoming==="one"&&this.#r.incomingOne.delete(`${n.kind}\0${t.target}`)}append(t){let n=Ep(t,this.version,this.#i),o=this.#e.get(n.relationshipId),r=Tp(t,n.relationshipId,this.#e,this.#t,this.#n,this.#r),i=Object.freeze({eventId:n.eventId,relationshipId:n.relationshipId,action:t.action,...r===void 0?{}:{edge:r},author:n.author,timestamp:n.timestamp,...t.reason?.trim()?{reason:t.reason.trim()}:{},sequence:this.version+1});return this.#o.push(i),this.#i.add(n.eventId),o&&this.#s(o),t.action==="remove"?this.#e.delete(n.relationshipId):(this.#e.set(n.relationshipId,r),this.#a(n.relationshipId,r)),i}snapshot(t={}){if(t.atVersion!==void 0&&t.atTimestamp!==void 0)throw new TypeError("Relationship snapshot accepts one target");let n;if(t.atTimestamp!==void 0){let i=Date.parse(t.atTimestamp);if(!Number.isFinite(i))throw new TypeError("Relationship snapshot timestamp must be valid");n=this.#o.filter(a=>Date.parse(a.timestamp)<=i)}else{let i=t.atVersion??this.version;if(!Number.isInteger(i)||i<0||i>this.version)throw new TypeError(`Relationship snapshot version out of range: ${i}`);n=this.#o.slice(0,i)}let o=Ap(n),r=new Ve(this.#t,o.values(),this.#n);return Object.freeze({version:n.at(-1)?.sequence??0,...n.at(-1)?{asOf:n.at(-1).timestamp}:{},edges:r.edges(),graph:r})}page(t){if(!Number.isInteger(t.limit)||t.limit<1)throw new TypeError("Relationship event page limit must be positive");let n=Di("relationship-events",{order:"append-sequence"}),o=t.cursor===void 0?this.version:Number(Mi(t.cursor,n).snapshot);if(!Number.isSafeInteger(o)||o<0||o>this.version)throw new TypeError("Relationship event cursor snapshot version is invalid");let r=ji(this.#o.slice(0,o),{cursor:t.cursor,fingerprint:n,limit:t.limit,readId:i=>i.eventId,snapshot:String(o)});return{version:o,events:r.rows,hasMore:r.has_more,...r.next_cursor?{nextCursor:r.next_cursor}:{}}}},Cp="relationship-event-store",vl=jt.O_NOFOLLOW;function Pn(e){return ne(e,Cp,30,`relationship-store:${process.pid}`,!1,!1,3e3)}async function Ue(e,t="relationships/events.jsonl"){let n=me.resolve(e),o=me.resolve(n,t),r=me.relative(n,o);if(r.length===0)throw new TypeError("Relationship event path must name a file within the tracker root");if(r===".."||r.startsWith(`..${me.sep}`)||me.isAbsolute(r))throw new TypeError("Relationship event path must stay within the tracker root");if(await rr(n,{recursive:!0}),(await bl(n)).isSymbolicLink())throw new TypeError("Relationship event tracker root must not be a symbolic link");let i=n;for(let a of r.split(me.sep)){i=me.join(i,a);try{if((await bl(i)).isSymbolicLink())throw new TypeError("Relationship event path must not contain symbolic links")}catch(s){if(ro(s))break;throw s}}return o}async function Ln(e,t,n){let o=new Gt(t,{registry:n}),r,i;try{i=await wl(e,jt.O_RDONLY|vl),r=await i.readFile("utf8")}catch(s){if(ro(s))return{log:o,raw:""};throw s}finally{await i?.close()}let a=r.split(`
1
+ import{a as nt,b as Cn,c as yc,d as bc,g as wc,i as zc}from"./chunk-RJ5N44WY.js";import{A as rl,P as er,Y as il,d as Eo,e as Hc,g as Wc,h as Vc,i as Bc,o as Kc,p as Mt,q as Ge,r as Zo,y as Qo}from"./chunk-JGKTOBVB.js";import{$c as nl,Aa as pc,Ba as uc,Ca as In,Da as _c,Ea as An,Fa as En,Ga as fc,Gb as Dc,Ia as et,Id as tr,J as Le,Ja as hc,Jb as Mc,Ka as jo,Kb as jc,La as Tn,Ld as _l,Na as tt,Oc as Ho,Pb as Nt,Rc as Ie,Sc as Jc,Tc as Vo,Uc as Yc,Ud as fl,Vc as Xc,Vd as hl,Wa as gc,Wc as ot,Xc as Zc,_c as tl,ad as ol,b as No,bd as Jo,cd as Yo,dd as Xo,fc as On,ga as hn,gd as sl,ha as ac,hd as cl,i as Os,ia as Pt,id as ll,j as $s,ja as h,jd as dl,ka as sc,kd as ml,l as Fs,la as cc,mb as kc,mc as Uc,md as pl,na as Y,nb as Sc,nd as ul,oa as lc,oc as qc,pa as vn,qa as dc,ra as Do,sa as Lt,sb as Go,ta as kn,tb as Uo,ua as Me,ub as qo,va as mc,vc as Dt,wa as Sn,wb as Ic,xa as U,xb as Ac,ya as Mo,yb as zo,za as j}from"./chunk-JSUJWIHQ.js";import{$ as Vs,$a as ic,D as Ls,F as Ne,G as Ns,H as yn,I as Ds,Ia as Qe,J as De,K as Ms,L as bn,M as js,Pa as oc,S as Gs,Ua as wn,V as Us,X as qs,Y as zs,Ya as rc,Z as Hs,_ as Ws,aa as Bs,ba as Ks,c as fa,ca as Js,da as Ys,ea as Xs,fa as Zs,ga as Qs,ha as ec,i as gn,ia as tc,ja as nc,x as Ps}from"./chunk-N56CAQBU.js";import{$a as Ec,Ab as Nc,Eb as Se,Fb as Gc,Gb as xn,Kb as Wo,Vc as Bo,Yb as Qc,Zb as el,_c as Ko,bd as al,d as ua,f as _a,jb as Tc,kb as Cc,lb as Rc,na as de,ob as xc,pb as Oc,qb as $c,rb as Fc,tb as je,ua as vc,ub as Pc,vb as Lc,yb as Rn}from"./chunk-7OEGNA4X.js";import{$ as oe,$d as nn,$k as Fa,$l as ns,A as _i,Ai as Ao,Aj as Ot,Am as ds,B as fi,Bj as pa,Bl as ke,C as hi,Cd as Pi,Ci as T,Cl as E,D as gi,Dd as Li,Di as sa,Dl as Ja,El as Ya,Em as ms,Fk as Ea,G as yi,Gf as Vi,Hd as H,Hg as Fe,Ie as Di,Ik as Ta,Im as ps,Ja as co,Jf as Ke,Jg as Ye,Jj as ha,Jk as Ca,Ka as lo,La as mo,Lm as le,Ma as po,Mi as To,Ml as Xa,Nf as Bi,Ni as Co,Nl as ln,Oe as Mi,Og as on,Ol as dn,Om as us,Pg as Tt,Pl as mn,Pm as _s,Qb as vi,Qg as ko,Ql as pn,R as u,Rb as ki,Re as ji,Rk as Ra,Rm as _n,Sj as ga,Sl as re,Sm as fs,T as p,Td as tn,Ti as ca,Tk as xa,Ub as Si,Uj as ya,Ul as Za,Uo as Rs,V as ye,Va as P,Vh as Ct,Vj as sn,Vl as Qa,W as Be,Wa as Yt,Wh as Rt,Wi as Ze,Wj as ba,X as ro,Xf as Ki,Y as se,Yc as Zt,Yf as F,Yl as $t,Ym as hs,Zc as Qt,Zk as Oa,Zl as es,Zm as gs,_c as en,_d as Ni,_k as $a,_l as ts,aa as kt,ad as Oi,af as Gi,ah as ea,ak as wa,am as os,bb as A,bh as ta,bn as xo,bo as Po,ch as na,cl as Pa,df as Ui,dn as Oo,do as Lo,eb as we,ek as va,ep as xs,f as J,fb as uo,fm as Ro,gd as _o,gf as qi,gl as La,gm as rs,h as oo,ha as bi,hb as xe,hl as Na,hm as Pe,hn as ys,id as fo,il as Da,in as bs,j as pi,ja as wi,jd as ho,jk as ka,jl as Ma,jm as is,jn as ws,ka as be,kd as go,kg as Je,kk as Sa,kl as ja,km as as,kn as vs,ld as yo,lf as S,lg as Oe,ln as ks,mc as Ii,md as bo,mg as Ji,mj as la,mk as Ia,ml as Ga,mm as un,na as io,nc as Ai,nd as wo,ng as Yi,nl as Ua,nn as Ss,oc as Ei,od as vo,og as $e,oj as da,ol as qa,om as ss,on as Is,p as Jt,pc as Ti,pd as $,pf as zi,pg as Xi,pi as oa,pj as ma,pk as Aa,pl as za,pm as cs,pn as As,qa as ao,qc as Ci,qi as Xe,qj as ce,ql as Ha,qm as ls,qn as Ft,ra as St,rc as Ri,rf as Hi,rj as ve,rl as Wa,rn as Es,sc as xi,sf as ne,sg as V,sh as So,sn as fn,ta as so,tb as It,th as R,ti as rn,tn as Ts,u as Ve,ub as At,ud as $i,ug as Et,uj as xt,ul as Va,un as $o,vd as Fi,vg as Zi,vi as ra,vl as cn,vn as Fo,w as ui,wb as Xt,wi as ia,wl as Ba,wn as Cs,xi as aa,xj as an,xl as Ka,yd as G,yf as Wi,zg as Qi,zi as Io}from"./chunk-X2H6UR26.js";import{AsyncLocalStorage as Gg}from"node:async_hooks";import{readFile as hp}from"node:fs/promises";import gp from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="20a3a324-d176-5918-8167-5e548be4abc9")}catch{}})();var nr="context-intents.json";function $n(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function yp(e,t,n){if(!$n(e))throw new TypeError(`${t} context intent at index ${String(n)} must be an object`);let o=e.included_field_groups;if(typeof e.command!="string"||typeof e.intent!="string"||typeof e.description!="string"||!Array.isArray(o)||!o.every(r=>typeof r=="string")||typeof e.token_budget!="number")throw new TypeError(`${t} context intent at index ${String(n)} has an invalid contract shape`);return{command:e.command,intent:e.intent,description:e.description,included_field_groups:o,token_budget:e.token_budget}}function gl(e,t){let n=Array.isArray(e)?e:$n(e)&&Array.isArray(e.intents)?e.intents:void 0;if(!n)throw new TypeError(`${t} context intents must be an array or an object with an intents array`);return n.map((o,r)=>yp(o,t,r))}async function bp(e){let t=gp.join(e,nr),n;try{n=await hp(t,"utf8")}catch(r){if(Be(r))return[];throw await Ki(e),r}let o;try{o=JSON.parse(n)}catch(r){let i=r instanceof Error?r.message:String(r);throw new TypeError(`Invalid ${nr}: ${i}`,{cause:r})}return gl(o,nr)}function wp(e){if(!$n(e))return;let t=e.contextIntents??e.context_intents;if(t!==void 0)return t;let n=e.default;return $n(n)?n.contextIntents??n.context_intents:void 0}function vp(e){return e.flatMap(t=>{let n=wp(t.module);return n===void 0?[]:gl(n,`package ${t.name}`)})}async function kp(e){let t=await bp(e.pmRoot),n=vp(e.packages??[]);return{workspaceContracts:t,packageContracts:n}}async function Fn(e,t){let n=await kp(e);return await Vi(n,t)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="0a4abc17-0fcb-573f-8f89-6e505e112261")}catch{}})();async function yl(e,t,n=Wi){try{await n({pmRoot:e,result:t})}catch{if(typeof t=="object"&&t!==null&&!Array.isArray(t)){let o=t,r=Array.isArray(o.warnings)?o.warnings.filter(i=>typeof i=="string"):[];o.warnings=[...new Set([...r,"context_usage_feedback_write_failed"])].sort()}}}import{createHash as xp}from"node:crypto";import{constants as jt}from"node:fs";import{lstat as bl,mkdir as rr,open as wl}from"node:fs/promises";import me from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="5434ff6f-95af-5983-88cb-fd360d95cb9e")}catch{}})();function or(e,t){if(typeof e!="string"||e.trim().length===0)throw new TypeError(`Relationship event ${t} must be non-empty`);return e.trim()}function ir(e,t){let n=t.require(e.kind),o=n.direction==="undirected"?[e.source,e.target].sort().join("\0"):`${e.source}\0${e.target}`;return`${n.kind}\0${o}`}function Sp(e){return Object.freeze({...e,...e.payload===void 0?{}:{payload:Object.freeze(structuredClone(e.payload))}})}function Ip(e,t,n,o){let r=n.require(e.kind),i=o.outgoingOne.get(`${r.kind}\0${e.source}`);if(i!==void 0&&i!==t)throw new TypeError(`Relationship outgoing cardinality exceeded for ${r.kind}`);let a=o.incomingOne.get(`${r.kind}\0${e.target}`);if(a!==void 0&&a!==t)throw new TypeError(`Relationship incoming cardinality exceeded for ${r.kind}`);let s=ir(e,n),c=o.identities.get(s);if(c!==void 0&&c!==t)throw new TypeError(`Relationship edge already active: ${s}`)}function Ap(e){let t=new Map;for(let n of e)n.action==="remove"?t.delete(n.relationshipId):t.set(n.relationshipId,n.edge);return t}function Ep(e,t,n){if(e.expectedVersion!==void 0&&e.expectedVersion!==t)throw new TypeError(`Relationship event version conflict: expected ${e.expectedVersion}, current ${t}`);let o=or(e.eventId,"eventId");if(n.has(o))throw new TypeError(`Relationship event already exists: ${o}`);if(e.action!=="add"&&e.action!=="remove"&&e.action!=="supersede")throw new TypeError(`Unknown relationship event action: ${e.action}`);if(!Number.isFinite(Date.parse(e.timestamp)))throw new TypeError("Relationship event timestamp must be valid");return{eventId:o,relationshipId:or(e.relationshipId,"relationshipId"),author:or(e.author,"author"),timestamp:new Date(e.timestamp).toISOString()}}function Tp(e,t,n,o,r,i){let a=n.has(t);if(e.action==="add"&&a)throw new TypeError(`Relationship is already active: ${t}`);if(e.action!=="add"&&!a)throw new TypeError(`Relationship is not active: ${t}`);if(e.action==="remove")return;if(!e.edge)throw new TypeError(`Relationship ${e.action} event requires an edge`);let s=typeof e.edge.source=="string"?e.edge.source.trim():"",c=typeof e.edge.target=="string"?e.edge.target.trim():"";if(!o.has(s)||!o.has(c))throw new TypeError(`Relationship endpoint not found: ${s} -> ${c}`);let l=new Ve([s,c],[e.edge],r).edges()[0];return Ip(l,t,r,i),Sp(l)}var Gt=class{#t;#n;#o=[];#i=new Set;#e=new Map;#r={identities:new Map,outgoingOne:new Map,incomingOne:new Map};constructor(t,n={}){this.#t=new Set([...t].filter(o=>typeof o=="string").map(o=>o.trim()).filter(Boolean)),this.#n=n.registry??Jt()}get version(){return this.#o.length}events(){return Object.freeze([...this.#o])}*stream(t={}){let n=t.fromVersion??1,o=t.toVersion??this.version,r=t.batchSize??100;if(!Number.isInteger(n)||n<1)throw new TypeError("Relationship event stream fromVersion must be positive");if(!Number.isInteger(o)||o<0||o>this.version)throw new TypeError(`Relationship event stream toVersion out of range: ${o}`);if(!Number.isInteger(r)||r<1)throw new TypeError("Relationship event stream batchSize must be positive");if(n>o+1)throw new TypeError("Relationship event stream fromVersion exceeds the selected prefix");for(let i=n-1;i<o;i+=r)yield Object.freeze(this.#o.slice(i,Math.min(i+r,o)))}project(t,n,o={}){if(typeof n!="function")throw new TypeError("Relationship event projection requires a reducer");let r=t,i=0,a;for(let s of this.stream({...o,batchSize:256}))for(let c of s)r=n(r,c),i+=1,a=c;return Object.freeze({state:r,version:a?.sequence??Math.max(0,(o.fromVersion??1)-1),processed:i,...a===void 0?{}:{asOf:a.timestamp}})}#a(t,n){let o=this.#n.require(n.kind);this.#r.identities.set(ir(n,this.#n),t),o.outgoing==="one"&&this.#r.outgoingOne.set(`${o.kind}\0${n.source}`,t),o.incoming==="one"&&this.#r.incomingOne.set(`${o.kind}\0${n.target}`,t)}#s(t){let n=this.#n.require(t.kind);this.#r.identities.delete(ir(t,this.#n)),n.outgoing==="one"&&this.#r.outgoingOne.delete(`${n.kind}\0${t.source}`),n.incoming==="one"&&this.#r.incomingOne.delete(`${n.kind}\0${t.target}`)}append(t){let n=Ep(t,this.version,this.#i),o=this.#e.get(n.relationshipId),r=Tp(t,n.relationshipId,this.#e,this.#t,this.#n,this.#r),i=Object.freeze({eventId:n.eventId,relationshipId:n.relationshipId,action:t.action,...r===void 0?{}:{edge:r},author:n.author,timestamp:n.timestamp,...t.reason?.trim()?{reason:t.reason.trim()}:{},sequence:this.version+1});return this.#o.push(i),this.#i.add(n.eventId),o&&this.#s(o),t.action==="remove"?this.#e.delete(n.relationshipId):(this.#e.set(n.relationshipId,r),this.#a(n.relationshipId,r)),i}snapshot(t={}){if(t.atVersion!==void 0&&t.atTimestamp!==void 0)throw new TypeError("Relationship snapshot accepts one target");let n;if(t.atTimestamp!==void 0){let i=Date.parse(t.atTimestamp);if(!Number.isFinite(i))throw new TypeError("Relationship snapshot timestamp must be valid");n=this.#o.filter(a=>Date.parse(a.timestamp)<=i)}else{let i=t.atVersion??this.version;if(!Number.isInteger(i)||i<0||i>this.version)throw new TypeError(`Relationship snapshot version out of range: ${i}`);n=this.#o.slice(0,i)}let o=Ap(n),r=new Ve(this.#t,o.values(),this.#n);return Object.freeze({version:n.at(-1)?.sequence??0,...n.at(-1)?{asOf:n.at(-1).timestamp}:{},edges:r.edges(),graph:r})}page(t){if(!Number.isInteger(t.limit)||t.limit<1)throw new TypeError("Relationship event page limit must be positive");let n=Gi("relationship-events",{order:"append-sequence"}),o=t.cursor===void 0?this.version:Number(Ui(t.cursor,n).snapshot);if(!Number.isSafeInteger(o)||o<0||o>this.version)throw new TypeError("Relationship event cursor snapshot version is invalid");let r=qi(this.#o.slice(0,o),{cursor:t.cursor,fingerprint:n,limit:t.limit,readId:i=>i.eventId,snapshot:String(o)});return{version:o,events:r.rows,hasMore:r.has_more,...r.next_cursor?{nextCursor:r.next_cursor}:{}}}},Cp="relationship-event-store",vl=jt.O_NOFOLLOW;function Pn(e){return ne(e,Cp,30,`relationship-store:${process.pid}`,!1,!1,3e3)}async function Ue(e,t="relationships/events.jsonl"){let n=me.resolve(e),o=me.resolve(n,t),r=me.relative(n,o);if(r.length===0)throw new TypeError("Relationship event path must name a file within the tracker root");if(r===".."||r.startsWith(`..${me.sep}`)||me.isAbsolute(r))throw new TypeError("Relationship event path must stay within the tracker root");if(await rr(n,{recursive:!0}),(await bl(n)).isSymbolicLink())throw new TypeError("Relationship event tracker root must not be a symbolic link");let i=n;for(let a of r.split(me.sep)){i=me.join(i,a);try{if((await bl(i)).isSymbolicLink())throw new TypeError("Relationship event path must not contain symbolic links")}catch(s){if(ro(s))break;throw s}}return o}async function Ln(e,t,n){let o=new Gt(t,{registry:n}),r,i;try{i=await wl(e,jt.O_RDONLY|vl),r=await i.readFile("utf8")}catch(s){if(ro(s))return{log:o,raw:""};throw s}finally{await i?.close()}let a=r.split(`
2
2
  `);for(let s=0;s<a.length;s+=1){let c=a[s].trim();if(!c)continue;let l;try{l=JSON.parse(c)}catch{throw new TypeError(`Invalid relationship event JSONL at line ${s+1}`)}if(l.sequence!==o.version+1)throw new TypeError(`Invalid relationship event sequence at line ${s+1}`);o.append({eventId:l.eventId,relationshipId:l.relationshipId,action:l.action,...l.edge===void 0?{}:{edge:l.edge},author:l.author,timestamp:l.timestamp,...l.reason===void 0?{}:{reason:l.reason},expectedVersion:o.version})}return{log:o,raw:r}}function Rp(e,t,n,o){let r=Date.parse(t.timestamp),i;return t.action!=="remove"&&t.edge!==void 0&&(i=new Ve(n,[t.edge],o).edges()[0]),e.eventId===t.eventId.trim()&&e.relationshipId===t.relationshipId.trim()&&e.action===t.action&&e.author===t.author.trim()&&Number.isFinite(r)&&e.timestamp===new Date(r).toISOString()&&e.reason===(t.reason?.trim()||void 0)&&It(e.edge)===It(i)}var Nn=class e{#t;#n;#o;#i;#e;constructor(t,n,o,r){this.#t=t.pmRoot,this.#n=n,this.#o=t.registry,this.#i=o,this.#e=r}static async open(t){let n=Object.freeze([...t.nodes]),o=await Ue(t.pmRoot,t.relativePath),r=await Pn(t.pmRoot);try{await Ue(t.pmRoot,o);let{log:i}=await Ln(o,n,t.registry);return new e(t,n,o,i)}finally{await r()}}get path(){return this.#i}async currentVersion(){return this.#e=await this.#r(),this.#e.version}async append(t){let n=await Pn(this.#t);try{let o=await Ue(this.#t,this.#i),{log:r}=await Ln(o,this.#n,this.#o),i=r.append(t);await rr(me.dirname(o),{recursive:!0}),await Ue(this.#t,o);let a=await wl(o,jt.O_APPEND|jt.O_CREAT|jt.O_WRONLY|vl);try{await a.appendFile(`${JSON.stringify(i)}
3
3
  `,"utf8")}finally{await a.close()}return this.#e=r,i}finally{await n()}}async appendBatch(t,n={}){let o=await Pn(this.#t);try{let r=await Ue(this.#t,this.#i),{log:i,raw:a}=await Ln(r,this.#n,this.#o),s=i.version,c=new Map(i.events().map(d=>[d.eventId,d])),l=[],m=[];for(let d of t){let _=d.eventId.trim(),f=c.get(_);if(f!==void 0){if(n.existingEventPolicy==="skip_identical"&&Rp(f,d,this.#n,this.#o)){m.push(f.eventId);continue}if(n.existingEventPolicy==="skip_identical")throw new TypeError(`Relationship event id collision with different content: ${_}`)}let w=i.append(d);c.set(w.eventId,w),l.push(w)}if(l.length>0){let d=a.length===0||a.endsWith(`
4
4
  `)?a:`${a}
5
5
  `;await rr(me.dirname(r),{recursive:!0}),await Ue(this.#t,r),await oe(r,`${d}${l.map(_=>JSON.stringify(_)).join(`
6
6
  `)}
7
7
  `)}return this.#e=i,Object.freeze({version_before:s,version_after:i.version,appended:Object.freeze(l),skipped_event_ids:Object.freeze(m)})}finally{await o()}}async snapshot(t={}){return this.#e=await this.#r(),this.#e.snapshot(t)}async page(t){return this.#e=await this.#r(),this.#e.page(t)}async*stream(t={}){this.#e=await this.#r(),yield*this.#e.stream(t)}async project(t,n,o={}){return this.#e=await this.#r(),this.#e.project(t,n,o)}async#r(){let t=await Pn(this.#t);try{let n=await Ue(this.#t,this.#i);return(await Ln(n,this.#n,this.#o)).log}finally{await t()}}};(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="93e1b043-89b2-546e-b238-1b9f4a1df742")}catch{}})();function ar(e){let t=Jt();for(let n of e)t.register(n);return t}function Op(e,t,n=[]){if(n.length===0)return e;let o=JSON.parse(e),r=JSON.parse(Ao(t));for(let i of n){let a=i.split("."),s=r;for(let m of a){let d=io(s);if(!/^[a-zA-Z][a-zA-Z0-9_]*$/u.test(m)||["constructor","prototype","__proto__"].includes(m)||d===null||!Object.hasOwn(d,m))throw new p(`Invalid owned settings subtree: ${i}. Select a declared inline object path.`,u.USAGE);s=d[m]}if(io(s)===null)throw new p(`Invalid owned settings subtree: ${i}. Select a declared inline object path.`,u.USAGE);let c=o,l=r;for(let m of a.slice(0,-1)){let d=c[m];l=l[m],d===void 0&&Object.defineProperty(c,m,{value:structuredClone(l),enumerable:!0,writable:!0,configurable:!0}),c=c[m]}Object.defineProperty(c,a.at(-1),{value:s,enumerable:!0,writable:!0,configurable:!0})}return At(o,JSON.parse(e))?e:`${JSON.stringify(o,null,2)}
8
- `}function kl(e,t,n,o){return{client:t,isItemNotFoundError:r=>Eo(r)&&r.exitCode===u.NOT_FOUND,getItemAt:(r,i)=>ua(r,i,{pmRoot:e}),openRelationshipEventStore:r=>Nn.open({pmRoot:e,nodes:r.nodes,registry:ar(r.definitions),...r.relativePath===void 0?{}:{relativePath:r.relativePath}}),createRelationshipGraph:r=>new Ve(r.nodes,r.edges,ar(r.definitions)),analyzeRelationshipImpact:(r,i,a)=>_a(r,i,a),validateRelationshipEvents:r=>{let i=new Gt(r.nodes,{registry:ar(r.definitions)});return r.events.map(a=>i.append({...a,expectedVersion:i.version}))},commitWorkspaceTransaction:r=>fa({...r,pmRoot:e}),mutateWorkspaceSettings:async r=>{if(!/^[a-zA-Z0-9._-]{1,128}$/u.test(r.operationId))throw new p("Workspace settings operationId must be 1-128 letters, digits, dots, underscores, or hyphens.",u.USAGE);let i=r.dryRun===!0?await ia(e,()=>T(e)):await T(e);try{let a=await oa({pmRoot:e,filePath:we(e),op:"extension:pm:settings",idempotencyKey:o===void 0?r.operationId:`${xp("sha256").update(o).digest("hex").slice(0,16)}:${r.operationId}`,author:n??R(void 0,i.author_default),lockTtlSeconds:i.locks.ttl_seconds,lockWaitMs:i.locks.wait_ms,recordCreation:!1,dryRun:r.dryRun===!0,mutate:async s=>{let c=s===null?null:JSON.parse(s),l=rn(c);if(!l.success)throw new p("Workspace settings mutation requires a valid initialized settings.json.",u.USAGE);let m=Io(l.data),d=await r.mutate(structuredClone(m));if(!rn(d).success)throw new p("Workspace settings mutation returned invalid settings.json.",u.USAGE);let _=At(m,d)?s:Ao(d,{source:{raw:c,validated:l.data}});_=Op(_,d,r.replaceSubtrees);let f=rn(JSON.parse(_));if(!f.success)throw new p("Workspace settings mutation serialized invalid settings.json.",u.USAGE);return{raw:_,result:r.includePreview===!0?Io(f.data):void 0}}});return a.changed&&r.dryRun!==!0&&await G({path:we(e),scope:"project",op:"extension:pm:settings"}),{changed:a.changed,dry_run:r.dryRun===!0,replayed:a.replayed===!0,...a.result===void 0?{}:{preview:a.result}}}finally{ra(e)}}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="b70f6764-9f83-5371-8ebc-1d0d5703bc1f")}catch{}})();var $p=["invalid_envelope","source_incomplete","source_unchecked","filtered_corpus","terminal_items_excluded","strict_read_unproven","page_incomplete","count_mismatch","projection_incomplete","field_omission","omission_receipt_missing","omission_receipt_invalid","read_output_missing","read_output_invalid","read_output_dimensions_incomplete","budget_compaction","budget_omission","session_projection","invalid_item_id","duplicate_item_id"],Dn=class extends Error{receipt;constructor(t){super(`Complete-list certification failed: ${t.map(n=>n.code).join(", ")}.`),this.name="PmCompleteListValidationError",this.receipt={contract_version:1,contract:"complete_list",findings:t,recovery:{suggested_retry:"pm list --all --output-include full --strict-read --no-truncate --output-budget unbounded --output-limit unbounded --json",sdk:"await client.listAllComplete()"}}}};function sr(e={}){return Gi({excludeTerminal:!1,full:!0,...e.includeBody===void 0?{}:{includeBody:e.includeBody},noTruncate:!0,outputBudget:"unbounded",outputLimit:"unbounded",strictRead:!0},["full"])}function pe(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function L(e,t,n,o){t&&e.push({code:n,message:o})}function Fp(e,t){let n=pe(e.completeness)?e.completeness:{};L(t,n.status==="partial","source_incomplete","The source scan reported unreadable tracker artifacts."),L(t,n.status!=="complete"&&n.status!=="partial","source_unchecked","The source scan did not prove completeness.");let o=n.unreadable_item_count,r=n.unreadable_directory_count;L(t,n.status==="complete"&&(o!==0||r!==0)&&Number.isSafeInteger(o)&&Number.isSafeInteger(r),"source_incomplete","The source scan reports unreadable tracker artifacts despite a complete status."),L(t,n.status==="complete"&&(!Number.isSafeInteger(o)||!Number.isSafeInteger(r)||Number(o)<0||Number(r)<0),"source_unchecked","The source scan did not report safe non-negative unreadable counts.");let i=pe(e.filters)?e.filters:{},a=pe(i.runtime_filters)?i.runtime_filters:{},s=new Set(["exclude_terminal","include_body","no_truncate","runtime_filters","status","strict_read"]);return L(t,i.status!=="all"||Object.keys(a).length>0||Object.keys(i).some(c=>!s.has(c)),"filtered_corpus","The list did not explicitly select every lifecycle status."),L(t,i.exclude_terminal===!0,"terminal_items_excluded","Terminal lifecycle states were explicitly excluded."),L(t,i.strict_read!==!0,"strict_read_unproven","The result does not echo strict source-read enforcement."),i}function Pp(e,t,n){L(n,e.has_more!==!1||e.next_cursor!==null||e.truncated!==!1||e.applied_limit!==void 0||t.no_truncate!==!0,"page_incomplete","Pagination or a row ceiling may have withheld items."),L(n,e.count!==e.items.length||e.total!==e.items.length,"count_mismatch","Envelope counts do not equal the returned item count.");let o=pe(e.projection)?e.projection:{};L(n,o.mode!=="full"||o.fields!==null,"projection_incomplete","The result is not the full metadata projection.");let r=pe(e.omission_receipt)?e.omission_receipt:void 0;L(n,r===void 0,"omission_receipt_missing","The result carries no field-omission receipt."),L(n,r!==void 0&&(r.has_omissions!==!1||r.omitted_field_group_count!==0||!Number.isSafeInteger(r.omitted_field_group_count)||!Array.isArray(r.omitted_field_groups)||r.omitted_field_groups.length!==0),"omission_receipt_invalid","The field-omission receipt is malformed or contradicts its no-omission claim."),L(n,r?.has_omissions===!0,"field_omission","The omission receipt reports withheld field groups.")}function Lp(e){return e.contract_version!==1||e.command!=="list"||e.within_budget!==!0||e.strings_compacted!==!1||e.rows_compacted!==!1||e.result_omitted!==!1}function Np(e){if(!Array.isArray(e.requested_dimensions))return!1;let t=new Set(e.requested_dimensions);return["include","amount","cost"].every(n=>t.has(n))}function Dp(e,t){let n=pe(e.read_output)?e.read_output:void 0;L(t,n===void 0,"read_output_missing","The result carries no universal read-output receipt."),L(t,n!==void 0&&Lp(n),"read_output_invalid","The universal read-output receipt does not prove an intact list result."),L(t,n!==void 0&&!Np(n),"read_output_dimensions_incomplete","The universal read-output receipt does not prove full, unbounded include, amount, and cost dimensions."),L(t,n?.strings_compacted===!0||n?.rows_compacted===!0||e.output_budget_truncation!==void 0,"budget_compaction","Universal output shaping compacted the result.");let o=pe(e.output_budget_exceeded)?e.output_budget_exceeded:void 0;L(t,n?.result_omitted===!0||o?.omitted_result===!0,"budget_omission","Universal output shaping omitted the useful result."),L(t,e.read_session!==void 0,"session_projection","A cross-call read session can suppress previously served facts.")}function Mp(e,t){let n=e.map(o=>pe(o)&&typeof o.id=="string"?o.id.trim():"");L(t,n.some(o=>o.length===0),"invalid_item_id","Every full item row must carry a non-empty string id."),L(t,new Set(n).size!==n.length,"duplicate_item_id","Every item id must occur exactly once.")}function Sl(e){if(!pe(e)||!Array.isArray(e.items))return{ok:!1,findings:[{code:$p[0],message:"The result must be an object with an items array."}]};let t=e,n=[],o=Fp(t,n);return Pp(t,o,n),Dp(t,n),Mp(t.items,n),{ok:n.length===0,findings:n}}function Mn(e){let t=Sl(e);if(!t.ok)throw new Dn(t.findings);let n=e;return{...n,complete_list:{contract_version:1,item_count:n.items.length,unique_item_id_count:new Set(n.items.map(o=>o.id)).size,terminal_items_included:!0,source_complete:!0,full_projection:!0,no_omissions:!0,unbounded:!0}}}function jp(e){Mn(e)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="08ad3dd1-a1ec-5ee8-9f0f-1350dd91f25e")}catch{}})();async function Il(e,t){let n=A(t??process.cwd(),e),o=await T(n);return xt(n,o.item_format,P(o,null).type_to_folder,void 0,o.schema)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="247354d6-fccb-58f8-b969-b1952abf181e")}catch{}})();var Gp={"list-all":{action:"list",options:{excludeTerminal:!1}},"list-draft":{action:"list",options:{status:"draft",excludeTerminal:!1}},"list-open":{action:"list",options:{status:"open",excludeTerminal:!1}},"list-in-progress":{action:"list",options:{status:"in_progress",excludeTerminal:!1}},"list-blocked":{action:"list",options:{status:"blocked",excludeTerminal:!1}},"list-closed":{action:"list",options:{status:"closed",excludeTerminal:!1}},"list-canceled":{action:"list",options:{status:"canceled",excludeTerminal:!1}}};function Al(e){return Object.fromEntries(vi.map(t=>[`${e}-${t}`,{action:e,options:{[t==="adopt-all"?"adoptAll":t]:!0,...e==="package"?{vocabulary:"package"}:{}}}]))}var cr={ctx:{action:"context"},...Gp,...Al("extension"),...Al("package"),...Object.fromEntries(ki.map(e=>[`package-${e}`,{action:e}]))};(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="baa27a48-c538-574c-9d05-1f1c0f4f429c")}catch{}})();function El(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function Up(e){return e.brief===!0?"brief":typeof e.fields=="string"&&e.fields.trim().length>0||Array.isArray(e.fields)&&e.fields.length>0?"fields":e.compact===!0?"compact":"full"}function lr(e,t){let n=Up(t),o=n==="brief"?n:El(e.projection)&&typeof e.projection.mode=="string"?e.projection.mode:n;return{...e,query_summary:{filters:El(e.filters)?e.filters:{},projection:o}}}import{readFile as qp}from"node:fs/promises";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="8513dce5-85a0-56aa-bb8f-c64756ac4b2e")}catch{}})();async function dr(e,t){let n=e.add!==void 0,o=e.stdin===!0,r=typeof e.file=="string",i=Number(n)+Number(o)+Number(r);if(i===0)return;if(i>1)throw new p("Specify comment text using only one input source: --add, --stdin, or --file",u.USAGE);if(n)return{value:await t.resolveValue(e.add,"--add",is(e))??"",emptyFlag:"--add"};if(o)return jo(e,"--stdin"),{value:await t.resolveValue("-","--stdin")??"",emptyFlag:"--stdin"};let a=e.file.trim();if(!a)throw new p("--file path cannot be empty",u.USAGE);if(a==="-")return jo(e,"--file -"),{value:await t.resolveValue("-","--file")??"",emptyFlag:"--file"};try{return{value:await qp(a,"utf8"),emptyFlag:"--file"}}catch(s){if(hc(s)&&Be(s))throw new p(`--file path not found: ${a}. Use --file - to read stdin.`,u.USAGE);let c=s instanceof Error?s.message:String(s);throw new p(`Failed to read --file path "${a}": ${c}. Use --file - to read stdin.`,u.USAGE)}}async function zp(e,t){let n=e.edit,o=e.delete,r=n!==void 0,i=o!==void 0;if(r&&i)throw new p("Specify only one of --edit or --delete",u.USAGE);if(n!==void 0&&(!Number.isInteger(n)||n<1))throw new p("--edit must be a positive integer",u.USAGE);if(o!==void 0&&(!Number.isInteger(o)||o<1))throw new p("--delete must be a positive integer",u.USAGE);if(i){if(await dr(e,t)!==void 0)throw new p("--delete does not take comment text",u.USAGE);return{mode:"delete",index:o}}if(r){let s=await dr(e,t);if(s===void 0)throw new p("--edit requires replacement text via positional [text], --add, --stdin, or --file",u.USAGE);return{mode:"edit",index:n,value:s.value,emptyFlag:s.emptyFlag}}let a=await dr(e,t);return a===void 0?{mode:"list"}:{mode:a.emptyFlag==="--add"?"add":a.emptyFlag==="--stdin"?"stdin":"file",value:a.value,emptyFlag:a.emptyFlag}}async function Tl(e,t,n){let o=un(),r=await zp(t,o),i=r.mode==="add"||r.mode==="edit",a=r.value??"";return tt(e,t,n,{input:{...r,rawValue:t.add??a,value:i?et(a,{stripPlainTextPrefix:!0}):a},collectionKey:"comments",op:"comment_add",editOp:"comment_edit",deleteOp:"comment_delete",parseText:s=>s,createEntry:s=>s,bypassOwnershipConflict:!!(r.mode==="add"&&t.ownershipAppendBypass),conflictGuidance:{required:"Strict ownership also protects annotations. Ask the current owner to run pm release <id>, then run pm claim <id>; use --force only for an explicitly approved override.",examples:["pm claim <id>"],nextSteps:["For an approved append without reassignment: pm package install governance-audit --project; then pm comments --help lists the package-owned append bypass. Edit/delete still require ownership.","For a non-terminal handoff, the current owner runs pm release <id>; then you run pm claim <id> before retrying. Claim refuses work still held by another owner; --force requires an explicitly approved override."]}})}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="feb8c44f-a6bd-5a7e-9600-eb5c45c0a5b4")}catch{}})();function Cl(e){let t=e.options.all===!0,n=e.id??h(e.options,"id");return Gc(n,t),t?xn(e.options,e.global):Se(n,e.options,e.global)}function Rl(e){let t=e.options.ids,n=ls(t);if(t!==void 0&&n==="")throw new p("history-compact ids requires at least one valid item ID.",u.USAGE,{code:"bulk_ids_input_empty",required:"Provide one or more string or finite numeric IDs; non-finite and unsupported selector values are rejected."});let o=n===void 0?void 0:cs(n),r=Y(e.options.allOver??e.options.all_over,"history-compact allOver"),i=Y(e.options.minEntries??e.options.min_entries,"history-compact minEntries"),a=h(e.options,"scope"),s=[];e.options.closed===!0&&s.push("closed"),(e.options.allStreams===!0||e.options.all_streams===!0)&&s.push("all-streams"),(a==="closed"||a==="all-streams")&&s.push(a);let c=[...new Set(s)];if(c.length>1)throw new p("history-compact: closed and all-streams scopes are mutually exclusive.",u.USAGE);let l=c[0];return Wc(e.id,{ids:o,allOver:r,scope:l}),e.id!==void 0?Hc(e.id,{before:h(e.options,"before"),dryRun:e.options.dryRun===!0||e.options.dry_run===!0,author:h(e.options,"author"),message:h(e.options,"message"),force:e.force},e.global):Vc({ids:o,scope:l,allOver:r,minEntries:i,dryRun:e.options.dryRun===!0||e.options.dry_run===!0,author:h(e.options,"author"),message:h(e.options,"message"),force:e.force},e.global)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="f7317758-33fb-52ee-a94b-1b97c4920773")}catch{}})();async function xl(e,t,n){return tt(e,t,n,{input:await Tn(t,"learning"),collectionKey:"learnings",op:"learning_add",editOp:"learning_edit",deleteOp:"learning_delete",parseText:o=>et(o),createEntry:o=>o,bypassOwnershipConflict:!!(t.edit===void 0&&t.delete===void 0&&t.ownershipAppendBypass),conflictGuidance:{required:"Strict ownership also protects annotations. Ask the current owner to run pm release <id>, then run pm claim <id>; use --force only for an explicitly approved override.",examples:["pm claim <id>"],nextSteps:["For an approved append without reassignment: pm package install governance-audit --project; then pm learnings --help lists the package-owned append bypass. Edit/delete still require ownership.","For a non-terminal handoff, the current owner runs pm release <id>; then you run pm claim <id> before retrying. Claim refuses work still held by another owner; --force requires an explicitly approved override."]}})}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="a5bdc2e7-1633-5bc8-97c7-8f6ecd253294")}catch{}})();async function $l(e,t,n){if(t.body===void 0)throw new p("Missing required --body text",u.USAGE);let o=un(),r=A(process.cwd(),n.path);await F(r);let i=await T(r),a=R(t.author,i.author_default),s=(await o.resolveValue(t.body,"--body",as(t,"body"))).trim();if(s.length===0)throw new p("--body text cannot be empty; append requires non-blank content and empty appends would only rewrite updated_at.",u.USAGE,{code:"append_empty_body",required:"Provide non-empty body text positionally, via --body, or with - for stdin.",examples:['pm append pm-a1b2 --body "Progress note"',"pm append pm-a1b2 --body -"]});let c=await Ot({pmRoot:r,settings:i,id:e,op:"append",author:a,message:t.message,force:t.force,mutate(l){let m=l.body.trim().length>0?`
8
+ `}function kl(e,t,n,o){return{client:t,isItemNotFoundError:r=>Eo(r)&&r.exitCode===u.NOT_FOUND,getItemAt:(r,i)=>ua(r,i,{pmRoot:e}),openRelationshipEventStore:r=>Nn.open({pmRoot:e,nodes:r.nodes,registry:ar(r.definitions),...r.relativePath===void 0?{}:{relativePath:r.relativePath}}),createRelationshipGraph:r=>new Ve(r.nodes,r.edges,ar(r.definitions)),analyzeRelationshipImpact:(r,i,a)=>_a(r,i,a),validateRelationshipEvents:r=>{let i=new Gt(r.nodes,{registry:ar(r.definitions)});return r.events.map(a=>i.append({...a,expectedVersion:i.version}))},commitWorkspaceTransaction:r=>fa({...r,pmRoot:e}),mutateWorkspaceSettings:async r=>{if(!/^[a-zA-Z0-9._-]{1,128}$/u.test(r.operationId))throw new p("Workspace settings operationId must be 1-128 letters, digits, dots, underscores, or hyphens.",u.USAGE);let i=r.dryRun===!0?await ia(e,()=>T(e)):await T(e);try{let a=await oa({pmRoot:e,filePath:we(e),op:"extension:pm:settings",idempotencyKey:o===void 0?r.operationId:`${xp("sha256").update(o).digest("hex").slice(0,16)}:${r.operationId}`,author:n??R(void 0,i.author_default),lockTtlSeconds:i.locks.ttl_seconds,lockWaitMs:i.locks.wait_ms,recordCreation:!1,dryRun:r.dryRun===!0,mutate:async s=>{let c=s===null?null:JSON.parse(s),l=rn(c);if(!l.success)throw new p("Workspace settings mutation requires a valid initialized settings.json.",u.USAGE);let m=Io(l.data),d=await r.mutate(structuredClone(m));if(!rn(d).success)throw new p("Workspace settings mutation returned invalid settings.json.",u.USAGE);let _=At(m,d)?s:Ao(d,{source:{raw:c,validated:l.data}});_=Op(_,d,r.replaceSubtrees);let f=rn(JSON.parse(_));if(!f.success)throw new p("Workspace settings mutation serialized invalid settings.json.",u.USAGE);return{raw:_,result:r.includePreview===!0?Io(f.data):void 0}}});return a.changed&&r.dryRun!==!0&&await G({path:we(e),scope:"project",op:"extension:pm:settings"}),{changed:a.changed,dry_run:r.dryRun===!0,replayed:a.replayed===!0,...a.result===void 0?{}:{preview:a.result}}}finally{ra(e)}}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="b70f6764-9f83-5371-8ebc-1d0d5703bc1f")}catch{}})();var $p=["invalid_envelope","source_incomplete","source_unchecked","filtered_corpus","terminal_items_excluded","strict_read_unproven","page_incomplete","count_mismatch","projection_incomplete","field_omission","omission_receipt_missing","omission_receipt_invalid","read_output_missing","read_output_invalid","read_output_dimensions_incomplete","budget_compaction","budget_omission","session_projection","invalid_item_id","duplicate_item_id"],Dn=class extends Error{receipt;constructor(t){super(`Complete-list certification failed: ${t.map(n=>n.code).join(", ")}.`),this.name="PmCompleteListValidationError",this.receipt={contract_version:1,contract:"complete_list",findings:t,recovery:{suggested_retry:"pm list --all --output-include full --strict-read --no-truncate --output-budget unbounded --output-limit unbounded --json",sdk:"await client.listAllComplete()"}}}};function sr(e={}){return Di({excludeTerminal:!1,full:!0,...e.includeBody===void 0?{}:{includeBody:e.includeBody},noTruncate:!0,outputBudget:"unbounded",outputLimit:"unbounded",strictRead:!0},["full"])}function pe(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function L(e,t,n,o){t&&e.push({code:n,message:o})}function Fp(e,t){let n=pe(e.completeness)?e.completeness:{};L(t,n.status==="partial","source_incomplete","The source scan reported unreadable tracker artifacts."),L(t,n.status!=="complete"&&n.status!=="partial","source_unchecked","The source scan did not prove completeness.");let o=n.unreadable_item_count,r=n.unreadable_directory_count;L(t,n.status==="complete"&&(o!==0||r!==0)&&Number.isSafeInteger(o)&&Number.isSafeInteger(r),"source_incomplete","The source scan reports unreadable tracker artifacts despite a complete status."),L(t,n.status==="complete"&&(!Number.isSafeInteger(o)||!Number.isSafeInteger(r)||Number(o)<0||Number(r)<0),"source_unchecked","The source scan did not report safe non-negative unreadable counts.");let i=pe(e.filters)?e.filters:{},a=pe(i.runtime_filters)?i.runtime_filters:{},s=new Set(["exclude_terminal","include_body","no_truncate","runtime_filters","status","strict_read"]);return L(t,i.status!=="all"||Object.keys(a).length>0||Object.keys(i).some(c=>!s.has(c)),"filtered_corpus","The list did not explicitly select every lifecycle status."),L(t,i.exclude_terminal===!0,"terminal_items_excluded","Terminal lifecycle states were explicitly excluded."),L(t,i.strict_read!==!0,"strict_read_unproven","The result does not echo strict source-read enforcement."),i}function Pp(e,t,n){L(n,e.has_more!==!1||e.next_cursor!==null||e.truncated!==!1||e.applied_limit!==void 0||t.no_truncate!==!0,"page_incomplete","Pagination or a row ceiling may have withheld items."),L(n,e.count!==e.items.length||e.total!==e.items.length,"count_mismatch","Envelope counts do not equal the returned item count.");let o=pe(e.projection)?e.projection:{};L(n,o.mode!=="full"||o.fields!==null,"projection_incomplete","The result is not the full metadata projection.");let r=pe(e.omission_receipt)?e.omission_receipt:void 0;L(n,r===void 0,"omission_receipt_missing","The result carries no field-omission receipt."),L(n,r!==void 0&&(r.has_omissions!==!1||r.omitted_field_group_count!==0||!Number.isSafeInteger(r.omitted_field_group_count)||!Array.isArray(r.omitted_field_groups)||r.omitted_field_groups.length!==0),"omission_receipt_invalid","The field-omission receipt is malformed or contradicts its no-omission claim."),L(n,r?.has_omissions===!0,"field_omission","The omission receipt reports withheld field groups.")}function Lp(e){return e.contract_version!==1||e.command!=="list"||e.within_budget!==!0||e.strings_compacted!==!1||e.rows_compacted!==!1||e.result_omitted!==!1}function Np(e){if(!Array.isArray(e.requested_dimensions))return!1;let t=new Set(e.requested_dimensions);return["include","amount","cost"].every(n=>t.has(n))}function Dp(e,t){let n=pe(e.read_output)?e.read_output:void 0;L(t,n===void 0,"read_output_missing","The result carries no universal read-output receipt."),L(t,n!==void 0&&Lp(n),"read_output_invalid","The universal read-output receipt does not prove an intact list result."),L(t,n!==void 0&&!Np(n),"read_output_dimensions_incomplete","The universal read-output receipt does not prove full, unbounded include, amount, and cost dimensions."),L(t,n?.strings_compacted===!0||n?.rows_compacted===!0||e.output_budget_truncation!==void 0,"budget_compaction","Universal output shaping compacted the result.");let o=pe(e.output_budget_exceeded)?e.output_budget_exceeded:void 0;L(t,n?.result_omitted===!0||o?.omitted_result===!0,"budget_omission","Universal output shaping omitted the useful result."),L(t,e.read_session!==void 0,"session_projection","A cross-call read session can suppress previously served facts.")}function Mp(e,t){let n=e.map(o=>pe(o)&&typeof o.id=="string"?o.id.trim():"");L(t,n.some(o=>o.length===0),"invalid_item_id","Every full item row must carry a non-empty string id."),L(t,new Set(n).size!==n.length,"duplicate_item_id","Every item id must occur exactly once.")}function Sl(e){if(!pe(e)||!Array.isArray(e.items))return{ok:!1,findings:[{code:$p[0],message:"The result must be an object with an items array."}]};let t=e,n=[],o=Fp(t,n);return Pp(t,o,n),Dp(t,n),Mp(t.items,n),{ok:n.length===0,findings:n}}function Mn(e){let t=Sl(e);if(!t.ok)throw new Dn(t.findings);let n=e;return{...n,complete_list:{contract_version:1,item_count:n.items.length,unique_item_id_count:new Set(n.items.map(o=>o.id)).size,terminal_items_included:!0,source_complete:!0,full_projection:!0,no_omissions:!0,unbounded:!0}}}function jp(e){Mn(e)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="08ad3dd1-a1ec-5ee8-9f0f-1350dd91f25e")}catch{}})();async function Il(e,t){let n=A(t??process.cwd(),e),o=await T(n);return xt(n,o.item_format,P(o,null).type_to_folder,void 0,o.schema)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="247354d6-fccb-58f8-b969-b1952abf181e")}catch{}})();var Gp={"list-all":{action:"list",options:{excludeTerminal:!1}},"list-draft":{action:"list",options:{status:"draft",excludeTerminal:!1}},"list-open":{action:"list",options:{status:"open",excludeTerminal:!1}},"list-in-progress":{action:"list",options:{status:"in_progress",excludeTerminal:!1}},"list-blocked":{action:"list",options:{status:"blocked",excludeTerminal:!1}},"list-closed":{action:"list",options:{status:"closed",excludeTerminal:!1}},"list-canceled":{action:"list",options:{status:"canceled",excludeTerminal:!1}}};function Al(e){return Object.fromEntries(vi.map(t=>[`${e}-${t}`,{action:e,options:{[t==="adopt-all"?"adoptAll":t]:!0,...e==="package"?{vocabulary:"package"}:{}}}]))}var cr={ctx:{action:"context"},...Gp,...Al("extension"),...Al("package"),...Object.fromEntries(ki.map(e=>[`package-${e}`,{action:e}]))};(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="baa27a48-c538-574c-9d05-1f1c0f4f429c")}catch{}})();function El(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function Up(e){return e.brief===!0?"brief":typeof e.fields=="string"&&e.fields.trim().length>0||Array.isArray(e.fields)&&e.fields.length>0?"fields":e.compact===!0?"compact":"full"}function lr(e,t){let n=Up(t),o=n==="brief"?n:El(e.projection)&&typeof e.projection.mode=="string"?e.projection.mode:n;return{...e,query_summary:{filters:El(e.filters)?e.filters:{},projection:o}}}import{readFile as qp}from"node:fs/promises";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="8513dce5-85a0-56aa-bb8f-c64756ac4b2e")}catch{}})();async function dr(e,t){let n=e.add!==void 0,o=e.stdin===!0,r=typeof e.file=="string",i=Number(n)+Number(o)+Number(r);if(i===0)return;if(i>1)throw new p("Specify comment text using only one input source: --add, --stdin, or --file",u.USAGE);if(n)return{value:await t.resolveValue(e.add,"--add",is(e))??"",emptyFlag:"--add"};if(o)return jo(e,"--stdin"),{value:await t.resolveValue("-","--stdin")??"",emptyFlag:"--stdin"};let a=e.file.trim();if(!a)throw new p("--file path cannot be empty",u.USAGE);if(a==="-")return jo(e,"--file -"),{value:await t.resolveValue("-","--file")??"",emptyFlag:"--file"};try{return{value:await qp(a,"utf8"),emptyFlag:"--file"}}catch(s){if(hc(s)&&Be(s))throw new p(`--file path not found: ${a}. Use --file - to read stdin.`,u.USAGE);let c=s instanceof Error?s.message:String(s);throw new p(`Failed to read --file path "${a}": ${c}. Use --file - to read stdin.`,u.USAGE)}}async function zp(e,t){let n=e.edit,o=e.delete,r=n!==void 0,i=o!==void 0;if(r&&i)throw new p("Specify only one of --edit or --delete",u.USAGE);if(n!==void 0&&(!Number.isInteger(n)||n<1))throw new p("--edit must be a positive integer",u.USAGE);if(o!==void 0&&(!Number.isInteger(o)||o<1))throw new p("--delete must be a positive integer",u.USAGE);if(i){if(await dr(e,t)!==void 0)throw new p("--delete does not take comment text",u.USAGE);return{mode:"delete",index:o}}if(r){let s=await dr(e,t);if(s===void 0)throw new p("--edit requires replacement text via positional [text], --add, --stdin, or --file",u.USAGE);return{mode:"edit",index:n,value:s.value,emptyFlag:s.emptyFlag}}let a=await dr(e,t);return a===void 0?{mode:"list"}:{mode:a.emptyFlag==="--add"?"add":a.emptyFlag==="--stdin"?"stdin":"file",value:a.value,emptyFlag:a.emptyFlag}}async function Tl(e,t,n){let o=un(),r=await zp(t,o),i=r.mode==="add"||r.mode==="edit",a=r.value??"";return tt(e,t,n,{input:{...r,rawValue:t.add??a,value:i?et(a,{stripPlainTextPrefix:!0}):a},collectionKey:"comments",op:"comment_add",editOp:"comment_edit",deleteOp:"comment_delete",parseText:s=>s,createEntry:s=>s,bypassOwnershipConflict:!!(r.mode==="add"&&t.ownershipAppendBypass),conflictGuidance:{required:"Strict ownership also protects annotations. Ask the current owner to run pm release <id>, then run pm claim <id>; use --force only for an explicitly approved override.",examples:["pm claim <id>"],nextSteps:["For an approved append without reassignment: pm package install governance-audit --project; then pm comments --help lists the package-owned append bypass. Edit/delete still require ownership.","For a non-terminal handoff, the current owner runs pm release <id>; then you run pm claim <id> before retrying. Claim refuses work still held by another owner; --force requires an explicitly approved override."]}})}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="feb8c44f-a6bd-5a7e-9600-eb5c45c0a5b4")}catch{}})();function Cl(e){let t=e.options.all===!0,n=e.id??h(e.options,"id");return Gc(n,t),t?xn(e.options,e.global):Se(n,e.options,e.global)}function Rl(e){let t=e.options.ids,n=ls(t);if(t!==void 0&&n==="")throw new p("history-compact ids requires at least one valid item ID.",u.USAGE,{code:"bulk_ids_input_empty",required:"Provide one or more string or finite numeric IDs; non-finite and unsupported selector values are rejected."});let o=n===void 0?void 0:cs(n),r=Y(e.options.allOver??e.options.all_over,"history-compact allOver"),i=Y(e.options.minEntries??e.options.min_entries,"history-compact minEntries"),a=h(e.options,"scope"),s=[];e.options.closed===!0&&s.push("closed"),(e.options.allStreams===!0||e.options.all_streams===!0)&&s.push("all-streams"),(a==="closed"||a==="all-streams")&&s.push(a);let c=[...new Set(s)];if(c.length>1)throw new p("history-compact: closed and all-streams scopes are mutually exclusive.",u.USAGE);let l=c[0];return Wc(e.id,{ids:o,allOver:r,scope:l}),e.id!==void 0?Hc(e.id,{before:h(e.options,"before"),dryRun:e.options.dryRun===!0||e.options.dry_run===!0,author:h(e.options,"author"),message:h(e.options,"message"),force:e.force},e.global):Vc({ids:o,scope:l,allOver:r,minEntries:i,dryRun:e.options.dryRun===!0||e.options.dry_run===!0,author:h(e.options,"author"),message:h(e.options,"message"),force:e.force},e.global)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="f7317758-33fb-52ee-a94b-1b97c4920773")}catch{}})();async function xl(e,t,n){return tt(e,t,n,{input:await Tn(t,"learning"),collectionKey:"learnings",op:"learning_add",editOp:"learning_edit",deleteOp:"learning_delete",parseText:o=>et(o),createEntry:o=>o,bypassOwnershipConflict:!!(t.edit===void 0&&t.delete===void 0&&t.ownershipAppendBypass),conflictGuidance:{required:"Strict ownership also protects annotations. Ask the current owner to run pm release <id>, then run pm claim <id>; use --force only for an explicitly approved override.",examples:["pm claim <id>"],nextSteps:["For an approved append without reassignment: pm package install governance-audit --project; then pm learnings --help lists the package-owned append bypass. Edit/delete still require ownership.","For a non-terminal handoff, the current owner runs pm release <id>; then you run pm claim <id> before retrying. Claim refuses work still held by another owner; --force requires an explicitly approved override."]}})}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="a5bdc2e7-1633-5bc8-97c7-8f6ecd253294")}catch{}})();async function $l(e,t,n){if(t.body===void 0)throw new p("Missing required --body text",u.USAGE);let o=un(),r=A(process.cwd(),n.path);await F(r);let i=await T(r),a=R(t.author,i.author_default),s=(await o.resolveValue(t.body,"--body",as(t,"body"))).trim();if(s.length===0)throw new p("--body text cannot be empty; append requires non-blank content and empty appends would only rewrite updated_at.",u.USAGE,{code:"append_empty_body",required:"Provide non-empty body text positionally, via --body, or with - for stdin.",examples:['pm append pm-a1b2 --body "Progress note"',"pm append pm-a1b2 --body -"]});let c=await Ot({pmRoot:r,settings:i,id:e,op:"append",author:a,message:t.message,force:t.force,mutate(l){let m=l.body.trim().length>0?`
9
9
 
10
10
  `:"";return l.body=`${l.body.trimEnd()}${m}${s}
11
11
  `,{changedFields:["body"]}}});return{item:c.item,appended:s,changed_fields:c.changedFields}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="6edfa77d-9b76-540b-a365-a3fef0450c53")}catch{}})();var Pl=1,mr="close-many",Hp=["--filter-status","--filter-type","--filter-tag","--filter-priority","--filter-sprint","--filter-release","--filter-parent","--filter-assignee","--filter-updated-before","--ids"].join(", ");function Wp(e,t){return Mt(e,t,{includePagination:!1})}function Vp(e,t){return Mt(e,t)}function Bp(e){if(e?.ids!=null&&String(e.ids).trim().length===0)throw new p("--ids requires at least one non-empty item ID",u.USAGE)}function Kp(e){let t={};if(!e)return t;for(let[n,o]of Object.entries(e))o==null||typeof o=="string"&&!o.split(",").some(r=>r.trim().length>0)||(t[n]=o);return t}function Jp(e,t){let n=String(e??"").trim();if(n.length>0)return n;if(t)throw new p("pm close-many requires a shared close reason via --reason because governance.require_close_reason is enabled.",u.USAGE,{code:"close_reason_required",required:"Provide a shared closing summary via --reason for the whole batch.",why:"governance.require_close_reason is enabled, so every close must record why the items are done.",examples:['pm close-many --filter-sprint S-12 --reason "Sprint S-12 acceptance criteria met"','pm close-many --ids pm-a,pm-b --reason "Superseded by redesign"'],nextSteps:["Re-run with --reason describing the shared outcome.","To stop requiring reasons, run: pm config set governance-require-close-reason --policy disabled"]})}async function Yp(e,t){let n=V(t.schema),o=P(t,$()),r=await xt(e,t.item_format,o.type_to_folder,void 0,t.schema),i=new Map,a=new Map;for(let s of r){if(typeof s.parent!="string"||s.parent.length===0||(a.set(s.id,s.parent),Ye(s.status,n)))continue;let c=i.get(s.parent);c?c.push(s.id):i.set(s.parent,[s.id])}for(let s of i.values())s.sort((c,l)=>c.localeCompare(l));return{childrenByParent:i,parentByChild:a}}function Fl(e,t,n){let o=n?.get(e);if(o!==void 0)return o;let r=0,i=t.get(e),a=[],s=new Set,c=!1;for(;i!==void 0&&!s.has(i);){let l=n?.get(i);if(l!==void 0){r+=l+1;break}s.add(i),a.push(i),r+=1,i=t.get(i)}if(i!==void 0&&s.has(i)&&(c=!0),!c){n?.set(e,r);for(let[l,m]of a.entries())n?.set(m,r-l-1)}return r}async function Xp(e){let t=await mn(e.pmRoot,mr,e.rollbackId,Pl),n=e.options.message??`Rollback close-many checkpoint ${t.id}`,o=await pn(t.items,(r,i)=>Ge(r,i,{author:e.options.author,message:n,force:!0},e.global));return{...Le({applied:o.restored_ids.length,skipped:0,failed:o.failed_count,unmatched:0}),mode:"rollback",matched_count:t.items.length,dry_run:!1,rollback_checkpoint_id:t.id,checkpoint:{id:t.id,created_at:t.created_at,path:t.path,rollback_command:`pm close-many --rollback ${t.id}`},restored_count:o.restored_ids.length,failed_count:o.failed_count,rows:o.rows,ids:o.restored_ids}}function Zp(e,t,n,o,r){return e.map(i=>{let a=(t.get(i.id)??[]).filter(c=>!n.has(c)),s=!Ll(i,o,r);return{id:i.id,title:typeof i.title=="string"?i.title:"",status:i.status,action:s?"skip":"close",...s?{skip_reason:"already_terminal"}:{},...a.length>0?{active_child_ids:a}:{}}})}async function Qp(e){let t=await dn(e.pmRoot,mr,e.checkpointId,{schema_version:Pl,id:e.checkpointId,created_at:e.nowValue,author:R(e.options.author,"unknown"),...e.reason!==void 0?{reason:e.reason}:{},filters:e.filters,items:e.checkpointItems});return{id:e.checkpointId,created_at:e.nowValue,path:t,rollback_command:`pm close-many --rollback ${e.checkpointId}`}}async function eu(e){let t=[],n=[];for(let o of e.matched){if(!e.closableIds.has(o.id)){t.push({id:o.id,status:"skipped",skip_reason:"already_terminal"});continue}try{let r=await Dt(o.id,e.reason,e.closeOptions,e.global);t.push({id:o.id,status:"closed",changed_fields:r.changed_fields,...r.warnings&&r.warnings.length>0?{warnings:r.warnings}:{}}),n.push(o.id)}catch(r){t.push({id:o.id,status:"failed",error:be(r)})}}return{rows:t,closedIds:n}}function tu(e){return typeof e.rollback=="string"?e.rollback:void 0}function nu(e,t){if(t.trim().length===0)throw new p("--rollback requires a checkpoint id",u.USAGE);if(e.dryRun===!0)throw new p("--dry-run cannot be combined with --rollback",u.USAGE);if(Vp(e.list,e.status))throw new p("Rollback mode does not accept filter options",u.USAGE)}function ou(e){if(!Wp(e.list,e.status))throw new p(`close-many requires at least one filter to scope the close (for example: ${Hp}). Refusing to match every item.`,u.USAGE)}function ru(e,t){let n=new Map;return[...e].sort((o,r)=>{let i=Fl(r.id,t,n)-Fl(o.id,t,n);return i!==0?i:o.id.localeCompare(r.id)})}function Ll(e,t,n){return n||!Ye(e.status,t)}function iu(e,t,n){return new Set(e.filter(o=>Ll(o,t,n)).map(o=>o.id))}async function au(e){ou(e.options);let t=V(e.settings.schema),n=Jp(e.options.reason,e.settings.governance.require_close_reason),o=e.options.force===!0,r=await de(e.options.status,Kp(e.options.list),e.global),{childrenByParent:i,parentByChild:a}=await Yp(e.pmRoot,e.settings),s=ru(r.items,a),c=[...new Set(String(e.options.list?.ids??"").split(",").map(_=>_.trim()).filter(_=>_.length>0))],l=c.length===0?[]:(await de(void 0,{ids:c.join(","),noTruncate:!0,full:!0},e.global)).items,m=new Set(l.map(_=>_.id)),d=iu(s,t,o);return{pmRoot:e.pmRoot,settings:e.settings,statusRegistry:t,reason:n,validateCloseMode:e.options.validateClose,force:o,listed:r,matched:s,unmatchedIds:c.length===0?void 0:c.filter(_=>!m.has(_)),planRows:Zp(s,i,d,t,o)}}function su(e){return{outcome:"effect",exit_code:u.SUCCESS,mode:"dry_run",matched_count:e.matched.length,dry_run:!0,...e.reason!==void 0?{reason:e.reason}:{},filters:e.listed.filters,...e.validateCloseMode?{validate_close:e.validateCloseMode}:{},item_plans:e.planRows,ids:[],...e.unmatchedIds!==void 0?{unmatched_ids:e.unmatchedIds,unmatched_count:e.unmatchedIds.length}:{}}}async function cu(e){if(e.options.checkpoint===!1||e.closableIds.size===0)return;let t=e.context.matched.filter(n=>e.closableIds.has(n.id)).map(n=>({id:n.id,target_updated_at:n.updated_at}));return Qp({pmRoot:e.context.pmRoot,checkpointId:e.checkpointId,nowValue:e.nowValue,options:e.options,reason:e.context.reason,filters:e.context.listed.filters,checkpointItems:t})}async function Nl(e,t){let n=A(process.cwd(),t.path);await F(n);let o=await T(n),r=e.dryRun===!0,i=tu(e);if(Bp(e.list),i!==void 0)return nu(e,i),Xp({pmRoot:n,rollbackId:i,options:e,global:t});let a=await au({pmRoot:n,settings:o,options:e,global:t});if(r)return su(a);let s=new Set(a.planRows.filter(v=>v.action==="close").map(v=>v.id)),c=S(),l=ln(mr,c),m=await cu({context:a,options:e,closableIds:s,checkpointId:l,nowValue:c}),d={author:e.author,message:e.message??`close-many apply ${l}`,completedAt:e.completedAt,validateClose:a.validateCloseMode,force:a.force,resolution:e.resolution,expectedResult:e.expectedResult,actualResult:e.actualResult},{rows:_,closedIds:f}=await eu({matched:a.matched,closableIds:s,reason:a.reason,closeOptions:d,global:t}),w=_.filter(v=>v.status==="closed").length,k=_.filter(v=>v.status==="skipped").length,y=_.filter(v=>v.status==="failed").length;return{...Le({applied:w,skipped:k,failed:y,unmatched:a.unmatchedIds?.length??0}),mode:"apply",matched_count:a.matched.length,dry_run:!1,...a.reason!==void 0?{reason:a.reason}:{},filters:a.listed.filters,...a.validateCloseMode?{validate_close:a.validateCloseMode}:{},...m?{checkpoint:m}:{},closed_count:w,skipped_count:k,failed_count:y,rows:_,ids:f,...a.unmatchedIds!==void 0?{unmatched_ids:a.unmatchedIds,unmatched_count:a.unmatchedIds.length}:{}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="902e9f78-a2c1-59bb-aaa2-763576d5c68b")}catch{}})();function lu(e,t){return[...new Set([...yi.filter(n=>e[n]!==void 0),...Object.keys(e).filter(n=>e[n]!==void 0),...t.length>0?["body"]:[]])].sort((n,o)=>n.localeCompare(o))}function du(e,t){let n=`copied_from=${e}`;if(!t)return n;let o=t.trim();return o.length>0?`${o} | ${n}`:n}async function pr(e,t,n){let o=A(process.cwd(),n.path);await F(o);let r=await T(o),i=P(r,$()),a=await ce(o,e,r.id_prefix,r.item_format,i.type_to_folder);if(!a)throw await an(o,e,r.id_prefix,i.type_to_folder);let s=await ve(a,{schema:r.schema}),c=s.document.metadata,l=S(),m=R(t.author,r.author_default),d=await Co(o,r.id_prefix,{tokenLength:r.ids.token_length,typeToFolder:i.type_to_folder,probeExisting:!1}),_=V(r.schema),f=t.title?.trim();if(f!==void 0&&f.length===0)throw new p("Copy --title must not be empty",u.USAGE);let w={...c,id:d,title:f??c.title,status:_.open_status,created_at:l,updated_at:l};delete w.closed_at,delete w.completed_at,delete w.close_reason,delete w.test_runs;let k=Ze($()),y=ko({metadata:w,body:s.document.body},{schema:r.schema,extensionFieldNames:k}),v=await Go({title:y.metadata.title,description:y.metadata.description,body:y.body,excludeIds:[a.id]},{pmRoot:o,mode:r.governance.duplicate_detection_mode==="strict"&&t.allowDuplicate!==!0?"off":r.governance.duplicate_detection_mode,threshold:r.governance.duplicate_detection_threshold,limit:r.governance.duplicate_detection_limit,allowDuplicate:t.allowDuplicate}),g=lu(y.metadata,y.body),I=uo(o,y.metadata.type,d,r.item_format,i.type_to_folder),x=xe(o,d),N=await ne(o,d,r.locks.ttl_seconds,m,!1,r.governance.force_required_for_stale_lock,r.locks.wait_ms),W={metadata:{},body:""},O,C;try{let ae=await la(o,m,{required:r.governance.duplicate_detection_mode==="strict"&&t.allowDuplicate!==!0});try{r.governance.duplicate_detection_mode==="strict"&&t.allowDuplicate!==!0&&await Go({title:y.metadata.title,description:y.metadata.description,body:y.body,excludeIds:[a.id]},{pmRoot:o,mode:"strict",threshold:r.governance.duplicate_detection_threshold,limit:r.governance.duplicate_detection_limit,allowDuplicate:!1});let Re=await ce(o,d,r.id_prefix,r.item_format,i.type_to_folder);if(Re)throw new p(`Cannot copy to ${d}: an item with that id already exists at ${Re.itemPath}. Retry the copy to allocate a new id.`,u.CONFLICT,{code:"item_id_collision",why:`Allocated id ${d} already exists at ${Re.itemPath}.`,recovery:{suggested_retry:`pm copy ${a.id}`}});await oe(I,Tt(y,{format:r.item_format,schema:r.schema,extensionFieldNames:k}));try{let te=Ct({nowIso:l,author:m,op:"create",before:W,after:y,message:du(a.id,t.message)});await Rt(x,te)}catch(te){throw await kt(I),te}C=await da({pmRoot:o,preferredFormat:r.item_format,typeToFolder:i.type_to_folder,schema:r.schema,itemPath:I,document:y})}finally{await ae()}O=[...await G({path:I,scope:"project",op:"create",item_id:y.metadata.id,item_type:y.metadata.type,before:W,after:y,changed_fields:g}),...await G({path:x,scope:"project",op:"create:history",item_id:y.metadata.id,item_type:y.metadata.type,before:W,after:y,changed_fields:g})],$i({id:y.metadata.id,op:"create",item_type:y.metadata.type,status:y.metadata.status,current:Fi(y.metadata,g),changed_fields:g})}finally{await N()}return{source_id:a.id,item:structuredClone(y.metadata),changed_fields:g,warnings:[...Sc(v),...C,...O],...v===void 0?{}:{similarity_advisory:v}}}import jn from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="d29ab3a3-319f-506f-8289-78d786b95255")}catch{}})();async function ur(e,t,n){let o=A(process.cwd(),n.path);await F(o);let r=await T(o),i=R(t.author,r.author_default),a=await pa({pmRoot:o,settings:r,id:e,author:i,message:t.message,force:t.force,dryRun:t.dryRun}),s=a.targetPath?jn.relative(o,a.targetPath).split(jn.sep).join("/"):void 0;return{item:a.item,changed_fields:a.changedFields,dry_run:t.dryRun===!0,deleted:t.dryRun!==!0,outcome:t.dryRun===!0?"would_delete":"deleted",previous_status:a.item.status,...s?{target_path:s}:{},history_retained:jn.relative(o,xe(o,a.item.id)).split(jn.sep).join("/"),tombstone_retention:"retain_append_only",warnings:a.warnings}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="c7047beb-5c3a-5d97-acb9-7ddd15a223ec")}catch{}})();async function mu(e){await F(e)}async function _r(e,t,n){let o=A(process.cwd(),n.path);if(await mu(o),t.clear===!0){if(e!==void 0)throw new p("pm focus --clear does not take an item id. Use 'pm focus --clear' to clear focus or 'pm focus <id>' to set it.",u.USAGE);let m=await T(o),d=So(R(void 0,m.author_default));return await na(o),await Wo({pmRoot:o,settings:m,principal:d}),{action:"clear",focused_item:null,title:null,message:"Focus cleared. New items will not inherit a default parent."}}if(e===void 0){let m=await ea(o);if(m===void 0)return{action:"show",focused_item:null,title:null,message:"No focus set. Use 'pm focus <id>' to set a default parent for new items."};let d=await pu(o,m);return{action:"show",focused_item:m,title:d,message:`Focused on ${m}${d?` (${d})`:""}. New items default --parent to it.`}}let r=await T(o),i=P(r,$()),a=await ce(o,e,r.id_prefix,r.item_format,i.type_to_folder);if(!a)throw await an(o,e,r.id_prefix,i.type_to_folder);let s=To(a.id,r.id_prefix),c=await ve(a,{schema:r.schema}),l=Dl(c.document.metadata.title);return await ta(o,s),await Wo({pmRoot:o,settings:r,principal:So(R(void 0,r.author_default)),itemId:s}),{action:"set",focused_item:s,title:l,message:`Focused on ${s}${l?` (${l})`:""}. New items default --parent to it (override with --parent or clear via 'pm focus --clear').`}}async function pu(e,t){let n=await T(e),o=P(n,$()),r=await ce(e,t,n.id_prefix,n.item_format,o.type_to_folder);if(!r)return null;let i=await ve(r,{schema:n.schema});return Dl(i.document.metadata.title)}function Dl(e){return e.trim().length>0?e:null}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="b1e6c7ca-bea7-5875-83e6-917c4326b936")}catch{}})();async function fr(e,t,n,o){let r=t.trim();if(r.length===0)throw new p("pm item reopen requires a non-empty recurrence reason.",u.USAGE,{code:"reopen_reason_required",required:"Describe why the terminal work became active again.",recovery:{suggested_retry:`pm item reopen ${e} "<recurrence reason>"`,suggested_retry_args:["item","reopen",e,"<recurrence reason>"]}});let i=A(process.cwd(),o.path),a=n.expectedResult?.trim();if(a!==void 0&&a.length===0)throw new p("Reopen expected result must describe the current active outcome.",u.USAGE);let s=V((await T(i)).schema),c=s.open_status,l=Jc(s),m=n.status??c,d=Fe(m,s)??m;if(d!==c&&d!==l)throw new p(`Reopen target status must be ${c} or ${l}; received ${m}.`,u.USAGE,{code:"reopen_target_status_invalid",required:"Choose the workspace open or in-progress lifecycle status.",recovery:{allowed_values:[...new Set([c,l])],suggested_retry:`pm item reopen ${e} "${r}" --status ${c}`,suggested_retry_args:["item","reopen",e,r,"--status",c]}});let _=await Zc(e,{status:d,expectedResult:a,unset:["close-reason","resolution",...a===void 0?["expected-result"]:[],"actual-result","fixed-version"],author:n.author,message:n.message,force:n.force},o,r);return{item:_.item,changed_fields:_.changed_fields,warnings:_.warnings,recurrence:_.lifecycle_transition,...a===void 0?{recovery:{missing:["expected_result"],suggested_retry_args:["--pm-path",i,"update",e,"--expected-result","<current expected outcome>"],suggested_retry:nn(["--pm-path",i,"update",e,"--expected-result","<current expected outcome>"])}}:{}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="140b50c9-b0b3-5446-8ef9-5993bf4d830c")}catch{}})();async function Ml(e){let{changedFields:t,idOnly:n,runnerOptions:o}=j(e.args,e.options),r=e.force===!0||o.force===!0,i={...e.args,...o};if(i.start===!0)return qe(e,"start_task");let a=e.args.next===!0||o.next===!0?await nl(r,e.global,i,i):await tl(Ut(e,o),r,e.global,i);return H(a,{changedFields:t,compactEnvelope:t==="compact"&&!n,idOnly:n})}function Ut(e,t){let n=e.id??h(t,"id");if(!n)throw new p("Missing required argument: id",64);return n}function hr(e,t){return h(e.args,"reason")??h(e.args,"text")??h(t,"reason")??h(t,"text")}async function jl(e){let{changedFields:t,idOnly:n,runnerOptions:o}=j(e.args,e.options);return o.releaseAssignment===!0?qe(e,"close_task"):H(await Dt(Ut(e,o),hr(e,o),{...o,force:e.force===!0||o.force===!0},e.global),{changedFields:t,compactEnvelope:t==="compact"&&!n,idOnly:n})}async function qe(e,t){let{changedFields:n,idOnly:o,runnerOptions:r}=j(e.args,e.options),i=Ut(e,r),a=Pt(r,{force:e.force===!0||r.force===!0}),s=t==="start_task"?await Jo(i,a,e.global):t==="pause_task"?await Yo(i,a,e.global):await Xo(i,hr(e,r),a,e.global);return H(s,{changedFields:n,idOnly:o,compactEnvelope:n==="compact"&&!o})}async function Gl(e){if(e.options.pause===!0)return qe(e,"pause_task");let{changedFields:t,idOnly:n,runnerOptions:o}=j(e.args,e.options),r=await ol(Ut(e,o),e.force===!0,e.global,o);return H(r,{changedFields:t,idOnly:n,compactEnvelope:t==="compact"&&!n})}async function Ul(e){let{changedFields:t,idOnly:n,runnerOptions:o}=j(e.args,e.options);return H(await fr(Ut(e,o),hr(e,o)??"",{...o,force:e.force===!0||o.force===!0},e.global),{changedFields:t,compactEnvelope:t==="compact"&&!n,idOnly:n})}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="0a610a47-2af8-51b7-a8ab-2557eaf611e2")}catch{}})();function Gn(e,t){let n=nn(["plan","show",e.plan.id,"--depth","deep",...t===void 0?[]:["--pm-path",t]]);return{kind:"plan_mutation",action:e.action,id:e.plan.id,status:e.plan.status,mode:e.plan.mode,steps_summary:e.plan.steps_summary,...e.step===void 0?{}:{step:{id:e.step.id,order:e.step.order,status:e.step.status}},materialized_count:e.materialized?.length??0,skipped_count:e.materialize_skipped?.length??0,warning_count:e.warnings.length,warnings:e.warnings.slice(0,3).map(o=>o.slice(0,160)),warnings_truncated:e.warnings.length>3||e.warnings.some(o=>o.length>160),next_action:e.next_actions?.[0]===void 0?n:t===void 0?e.next_actions[0]:`${e.next_actions[0]} --pm-path ${Ni(t)}`,inspection_command:n,omission_receipt:{has_omissions:!0,omitted_field_group_count:1,omitted_field_groups:[{name:"plan_detail",restore_with:n}]}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="d1e5721e-92fd-5c2e-989f-d63892ed9d90")}catch{}})();var uu=["create","show","add-step","update-step","complete-step","block-step","reorder-step","remove-step","link","unlink","decision","discovery","validation","resume","approve","materialize"],ql=["brief","standard","deep"],Wl="plan-step-",kr="draft",vr=["bug-investigation","feature-implementation","refactoring-sprint"],zl={"bug-investigation":[{title:"Reproduce the bug",body:"Capture exact steps, inputs, and the observed vs expected behavior."},{title:"Locate the root cause",body:"Trace the failure to the responsible code path with evidence."},{title:"Write a failing test",body:"Add a regression test that fails for the current bug."},{title:"Implement the fix",body:"Apply the minimal change that makes the failing test pass."},{title:"Verify and document",body:"Run the full suite and record the resolution and verification."}],"feature-implementation":[{title:"Clarify requirements & acceptance criteria",body:"Confirm scope, edge cases, and done-conditions."},{title:"Design the approach",body:"Decide the data model, interfaces, and integration points."},{title:"Implement the change",body:"Build the feature behind the agreed design."},{title:"Add tests",body:"Cover the new behavior and its edge cases."},{title:"Update docs & changelog",body:"Document the feature and surface it to users."}],"refactoring-sprint":[{title:"Map the current structure & risks",body:"Inventory the code to change and its blast radius."},{title:"Add characterization tests",body:"Lock in current behavior before refactoring."},{title:"Refactor incrementally",body:"Apply small, reversible steps keeping tests green."},{title:"Verify behavior is unchanged",body:"Run the full suite and compare against the baseline."},{title:"Clean up & document",body:"Remove dead code and record the new structure."}]};function _u(e){let t=e.trim().toLowerCase(),n=Object.prototype.hasOwnProperty.call(zl,t)?zl[t]:void 0;if(!n)throw new p(`Unknown plan template "${e}". Allowed: ${vr.join(", ")}`,u.USAGE,{code:"unknown_plan_template",examples:[`pm plan create --title "Fix login crash" --template ${vr[0]}`]});return n.map(o=>({...o}))}function fu(e,t){return t>0?Math.round(e/t*100):0}function Vl(e){return(Array.isArray(e)?e:e==null?[]:[e]).filter(t=>t!=null).map(t=>(typeof t=="string"?t:String(t)).trim()).filter(t=>t.length>0)}function ee(e){return Array.isArray(e)?e.flatMap(t=>Po(t,{unique:!1})):typeof e=="string"&&e.trim().length>0?Po(e,{unique:!1}):[]}function B(e){return Array.isArray(e)?e.map(t=>t.trim()).filter(Boolean):typeof e=="string"&&e.trim().length>0?[e.trim()]:[]}function Bl(e,t=kr){if(e===void 0)return t;let n=e.trim().toLowerCase(),o=co.find(r=>r===n);if(!o)throw new p(`Invalid plan mode "${e}". Allowed: ${co.join(", ")}`,u.USAGE);return o}function Sr(e,t="pending"){if(e===void 0)return t;let n=e.trim().toLowerCase(),o=lo.find(r=>r===n);if(!o)throw new p(`Invalid step status "${e}". Allowed: ${lo.join(", ")}`,u.USAGE);return o}function Kl(e,t="related"){if(e===void 0)return t;let n=e.trim().toLowerCase(),o=po.find(r=>r===n);if(!o)throw new p(`Invalid step link kind "${e}". Allowed: ${po.join(", ")}`,u.USAGE);return o}function hu(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(t.length===0)return;let n=mo.find(o=>o===t);if(!n)throw new p(`Invalid plan harness "${e}". Allowed: ${mo.join(", ")}`,u.USAGE);return n}function gu(e){if(e===void 0)return"brief";let t=e.trim().toLowerCase(),n=ql.find(o=>o===t);if(!n)throw new p(`Invalid --depth "${e}". Allowed: ${ql.join(", ")}`,u.USAGE);return n}function yu(e){if(e===void 0)return null;let t=e.split(",").map(n=>n.trim()).filter(n=>n.length>0);if(t.length===0)throw new p("Plan --fields requires a comma-separated list of plan field names",u.USAGE);return t}var gr=new Set(["id","title","status","mode","scope","harness","parent","resume_context","steps_summary","current_step","blocked_steps","steps","decisions","discoveries","validation","linked_items"]);function bu(e,t){let n=e,o={},r=[];for(let i of t){let a=i.startsWith("plan.")?i.slice(5):i;if(a.length!==0){if(!gr.has(a)){r.push(i);continue}Object.prototype.hasOwnProperty.call(n,a)&&(o[a]=n[a])}}if(r.length>0)throw new p(`Unknown Plan --fields value(s): ${r.join(", ")}`,u.USAGE,{nextSteps:[`Use --fields ${[...gr].join(",")}`,"Run pm plan show <id> --depth brief for compact default fields."],recovery:{provided_fields:r,suggested_retry:`pm plan show <id> --fields ${[...gr].join(",")}`}});return o}function Ir(e,t){let n={};for(let o of e.split(",")){let r=o.trim();if(r.length===0)continue;let i=r.indexOf("=");if(i<=0)throw new p(`Invalid ${t} entry "${r}"; expected key=value`,u.USAGE,{code:"malformed_plan_step_evidence",required:`${t} entries must use comma-separated key=value fields.`,why:"Structured Plan evidence must be validated before it is persisted.",examples:['--file "path=src/index.ts,scope=project,note=implementation"','--test "command=pnpm test,note=regression"','--doc "path=docs/PLAN.md,scope=project"']});n[r.slice(0,i).trim().toLowerCase()]=r.slice(i+1).trim()}return n}function Ar(e){let t=Ir(e,"--file");if(!t.path)throw new p("--file requires path=<value>",u.USAGE,{code:"malformed_plan_step_evidence",required:"--file requires a non-empty path field.",why:"Plan file evidence needs a stable path for later verification."});let n={path:t.path};return(t.scope==="global"||t.scope==="project")&&(n.scope=t.scope),t.note&&(n.note=t.note),n}function Er(e){let t=Ir(e,"--test");if(!t.command&&!t.path)throw new p("--test requires at least command=<value> or path=<value>",u.USAGE,{code:"malformed_plan_step_evidence",required:"--test requires a command or path field.",why:"Plan test evidence must identify something runnable or inspectable."});let n={};return t.command&&(n.command=t.command),t.path&&(n.path=t.path),t.note&&(n.note=t.note),n}function Tr(e){let t=Ir(e,"--doc");if(!t.path)throw new p("--doc requires path=<value>",u.USAGE,{code:"malformed_plan_step_evidence",required:"--doc requires a non-empty path field.",why:"Plan documentation evidence needs a stable path for later verification."});let n={path:t.path};return(t.scope==="global"||t.scope==="project")&&(n.scope=t.scope),t.note&&(n.note=t.note),n}function wu(e){let t={total:e.length,pending:0,in_progress:0,blocked:0,completed:0,skipped:0,superseded:0,completion_pct:0};for(let n of e)t[n.status]+=1;return t.completion_pct=fu(t.completed,t.total),t}function vu(e){let t=new Set(e.map(n=>n.id));for(let n=e.length+1;n<e.length+1024;n+=1){let o=`${Wl}${String(n).padStart(3,"0")}`;if(!t.has(o))return o}throw new p("Could not allocate step id (limit reached)",u.GENERIC_FAILURE)}function rt(e,t){let n=t.trim();if(n.length===0)throw new p("Step reference cannot be empty",u.USAGE);let o=e.find(r=>r.id===n);if(o)return o;if(/^\d+$/.test(n)){let r=Number.parseInt(n,10),i=e.find(a=>a.order===r);if(i)return i}throw new p(`Step "${t}" not found in plan`,u.NOT_FOUND)}function Hl(e){if(e.status==="completed")return{reason:"already_completed"};let t=(e.linked_items??[]).find(n=>n.kind==="implements");if(t)return{reason:"already_materialized",existing_id:t.id}}function ku(e,t){let n=t.filter(a=>a.trim().toLowerCase()==="all"),o=[],r=[];if(n.length>0){if(t.length>n.length)throw new p("pm plan materialize --steps all cannot be combined with other step refs",u.USAGE);for(let a of e.slice().sort((s,c)=>s.order-c.order)){let s=Hl(a);if(s){r.push({from_step:a.id,...s});continue}o.push(a)}return{targets:o,skipped:r}}let i=new Set;for(let a of t){let s=rt(e,a);if(i.has(s.id))continue;i.add(s.id);let c=Hl(s);if(c){r.push({from_step:s.id,...c});continue}o.push(s)}return{targets:o,skipped:r}}function Su(e,t){let n=e==="decision"?t.decisionText:e==="discovery"?t.discoveryText:t.validationText,o=e==="decision"?t.decision:e==="discovery"?t.discovery:t.validation;return n?.trim()||o?.trim()||void 0}function Iu(e){return e.find(t=>t.status==="in_progress")??e.find(t=>t.status==="pending")}function Au(e){return e.filter(t=>t.status==="blocked").map(t=>({id:t.id,order:t.order,title:t.title,blocked_reason:t.blocked_reason}))}function X(e,t="brief"){let n=(e.plan_steps??[]).slice().sort((a,s)=>a.order-s.order),o=wu(n),r=Iu(n),i={id:e.id,title:e.title,status:e.status,mode:e.plan_mode??kr,scope:e.plan_scope,harness:e.plan_harness,parent:e.parent,resume_context:e.plan_resume_context,steps_summary:o,current_step:r?{id:r.id,order:r.order,title:r.title,status:r.status}:void 0,blocked_steps:Au(n),linked_items:(e.dependencies??[]).map(a=>({id:a.id,kind:a.kind}))};return(t==="standard"||t==="deep")&&(i.steps=n),t==="deep"&&(i.decisions=e.plan_decisions??[],i.discoveries=e.plan_discoveries??[],i.validation=e.plan_validation??[]),i}function Z(e,t){let n=[];return t.steps_summary.total===0&&n.push(`pm plan add-step ${e} --step-title "First step"`),t.current_step&&n.push(`pm plan update-step ${e} ${t.current_step.id} --step-status in_progress`,`pm plan complete-step ${e} ${t.current_step.id} --step-evidence "..."`),t.steps_summary.blocked>0&&n.push(`pm plan show ${e} --depth standard`),(t.mode==="draft"||t.mode==="research")&&n.push(`pm plan approve ${e} --message "ready to execute"`),t.steps_summary.completed===t.steps_summary.total&&t.steps_summary.total>0&&!Lo(t.mode)&&t.status!=="closed"&&t.status!=="canceled"&&n.push(`pm close ${e} "plan complete"`),n}function Jl(e){if((e.type??"").trim().toLowerCase()!=="plan")throw new p(`Item ${e.id} is type ${e.type}; pm plan commands require type=Plan. Use pm plan create or pm create --type Plan first.`,u.USAGE,{code:"wrong_item_type",required:"Use pm plan commands only with items whose type is Plan.",why:"Plan commands read and mutate Plan-specific step, decision, discovery, and validation fields.",examples:[`pm get ${e.id} --depth brief`,'pm plan create --title "Execution plan" --scope "<goal>"']})}async function Eu(e){let t=A(process.cwd(),e.path);await F(t);let n=await T(t);return{pmRoot:t,settings:n}}async function Yl(e,t){let n=P(e.settings,$()),o=await ce(e.pmRoot,t,e.settings.id_prefix,e.settings.item_format,n.type_to_folder);if(!o)throw new p(`Plan ${t} not found`,u.NOT_FOUND);let r=await ve(o,{schema:e.settings.schema});return Jl(r.document.metadata),{document:r.document,itemId:o.id}}function Tu(e){let t=[];e.parent&&t.push(`id=${e.parent.trim()},kind=parent`);for(let n of ee(e.related))t.push(`id=${n},kind=related`);for(let n of ee(e.blocks))t.push(`id=${n},kind=blocks`);for(let n of ee(e.blockedBy))t.push(`id=${n},kind=blocked_by`);return t.length>0?t:void 0}function Cu(e){let t=e.validationText?.trim(),n=e.validationCommand?.trim(),o=e.validationExpected?.trim();if(!(!t&&!n&&!o))return{text:t||n||"Validation check",command:n||void 0,expected:o||void 0}}function Ru(e){return!!e.stepBody?.trim()||!!e.stepOwner?.trim()||!!e.stepStatus?.trim()||!!e.stepEvidence?.trim()||!!e.stepBlockedReason?.trim()||!!e.stepReplacement?.trim()||ee(e.dependsOn).length>0||ee(e.link).length>0}function xu(e){let t=e.stepTitle?.trim()||void 0,n=Vl(e.step),o=e.template?.trim()?_u(e.template):[];return{repeatedStepTitles:n,stepTitleFlag:t,stepTitles:[...t?[t]:[],...n,...o.map(r=>r.title)],templateSteps:o}}function Ou(e,t){if((e.stepTitleFlag||e.repeatedStepTitles.length>0)&&e.templateSteps.length>0)throw new p("pm plan create --template cannot be combined with --step-title or --step; choose one step seeding source",u.USAGE,{code:"ambiguous_option_combination",examples:[`pm plan create --title "Fix login crash" --template ${vr[0]}`,'pm plan create --title "Custom plan" --step "Read the code" --step "Write the fix"']});if(e.stepTitles.length>1&&t)throw new p("pm plan create per-step options apply to a single initial step; with multiple --step values create the plan first, then refine steps individually",u.USAGE,{code:"ambiguous_option_combination",examples:['pm plan create --title "Execution plan" --step "Read the code" --step "Write the fix"','pm plan update-step <plan-id> plan-step-001 --step-body "Inspect retry path"']})}function $u(e,t){let n=Sr(e.stepStatus,"pending"),o=Cr(e,"depends_on"),r=B(e.file).map(Ar),i=B(e.test).map(Er),a=B(e.doc).map(Tr),s=S();return{id:"plan-step-001",order:1,title:t,body:e.stepBody?.trim()||void 0,status:n,owner:e.stepOwner?.trim()||void 0,evidence:e.stepEvidence?.trim()||void 0,blocked_reason:n==="blocked"?e.stepBlockedReason?.trim()||"":void 0,linked_items:o.length>0?o:void 0,files:r.length>0?r:void 0,tests:i.length>0?i:void 0,docs:a.length>0?a:void 0,created_at:s,updated_at:s,completed_at:n==="completed"?s:void 0}}function Fu(e){let t=xu(e),n=Ru(e);if(Ou(t,n),t.stepTitles.length===0)return{steps:[],hasPerStepDetailOptions:n};if(t.stepTitles.length===1)return{steps:[$u(e,t.stepTitles[0])],hasPerStepDetailOptions:n};let o=S();return{steps:t.stepTitles.map((r,i)=>({id:`${Wl}${String(i+1).padStart(3,"0")}`,order:i+1,title:r,body:t.templateSteps[i]?.body,status:"pending",created_at:o,updated_at:o})),hasPerStepDetailOptions:n}}function Xl(e,t,n=[]){Pe(e,t),n.length>0&&rs(t,n)}async function Pu(e,t,n){let o=e.title?.trim();if(!o)throw new p("pm plan create requires --title",u.USAGE,{code:"missing_required_option",examples:['pm plan create --title "Refactor lock retry" --scope pm-a1b2']});let r=Bl(e.mode,kr),i=hu(e.harness),a=e.fromSearch?.trim(),s=Cu(e),{steps:c,hasPerStepDetailOptions:l}=Fu(e);if(c.length===0&&l)throw new p("pm plan create step options require --step-title (or a single --step)",u.USAGE,{code:"missing_required_option",examples:['pm plan create --title "Execution plan" --step-title "Read the code"']});let m=e.description?.trim()??e.scope?.trim()??o,d=e.claim?R(e.author,n.settings.author_default):e.assignee?.trim()||void 0,_={...e,title:o,description:m,type:"Plan",template:void 0,file:B(e.file),test:B(e.test),doc:B(e.doc),field:B(e.field),assignee:R(e.author,n.settings.author_default),blockedBy:void 0,dep:Tu(e),message:e.message??(a?`plan create (search: ${a})`:"plan create")};Xl(e,_);let f=await Ie(_,t),w=await Ot({pmRoot:n.pmRoot,settings:n.settings,id:f.item.id,op:"plan_create_metadata",author:R(e.author,n.settings.author_default),message:"seed plan metadata",mutate(y){let v=["plan_mode"];y.metadata.plan_mode=r,i&&(y.metadata.plan_harness=i,v.push("plan_harness"));let g=e.scope?.trim();g&&(y.metadata.plan_scope=g,v.push("plan_scope"));let I=e.resumeContext?.trim();return I&&(y.metadata.plan_resume_context=I,v.push("plan_resume_context")),y.metadata.plan_steps=c,v.push("plan_steps"),s&&(y.metadata.plan_validation=[...y.metadata.plan_validation??[],s],v.push("plan_validation")),d&&(y.metadata.assignee=d,v.push("assignee")),{changedFields:v}}}),k=X(w.item,"brief");return{action:"create",plan:k,step:c[0],next_actions:Z(f.item.id,k),warnings:[...f.warnings],generated_at:S()}}async function Lu(e,t,n){let o=gu(t.depth),r=yu(t.fields),{document:i,itemId:a}=await Yl(n,e),s=X(i.metadata,r===null?o:"deep");return{action:"show",plan:r===null?s:bu(s,r),next_actions:Z(a,s),warnings:[],generated_at:S()}}function Nu(e,t){let n=new Map(Object.entries(t).filter(([o])=>o.startsWith("plan_")).map(([o,r])=>[o,JSON.stringify(r)]));return[...new Set([...e.keys(),...n.keys()])].filter(o=>e.get(o)!==n.get(o))}async function ie(e){let t=R(e.options.author,e.ctx.settings.author_default),n,o=await Ot({pmRoot:e.ctx.pmRoot,settings:e.ctx.settings,id:e.id,op:e.op,author:t,message:e.options.message??e.message,force:e.options.force,mutate(r){Jl(r.metadata);let i=V(e.ctx.settings.schema);if(Ye(r.metadata.status,i)||Lo(r.metadata.plan_mode))throw new p(`Plan ${r.metadata.id} is terminal (status=${r.metadata.status}, plan_mode=${r.metadata.plan_mode??"unset"}) and cannot be mutated.`,u.CONFLICT,{code:"terminal_plan_mutation",required:"Create or reopen a non-terminal Plan before changing its execution context or steps.",why:"Terminal Plan history is immutable execution evidence."});let a=(r.metadata.plan_steps??[]).slice(),s=new Map(Object.entries(r.metadata).filter(([d])=>d.startsWith("plan_")).map(([d,_])=>[d,JSON.stringify(_)])),c=e.mutator(a,r);n=c.resultStep;let l=a.slice().sort((d,_)=>d.order-_.order).map((d,_)=>({...d,order:_+1}));r.metadata.plan_steps=l;let m=Nu(s,r.metadata);return m.length===0&&c.changedSteps.length===0?{changedFields:[]}:{changedFields:m.length>0?m:["plan_steps"]}}});return{document:{metadata:o.item,body:o.body},resultStep:n,itemId:o.item.id}}async function Du(e,t,n){let o=t.stepTitle?.trim();if(!o)throw new p("pm plan add-step requires --step-title",u.USAGE);let r=Sr(t.stepStatus,"pending"),i=t.allowMultipleActive===!0,{document:a,resultStep:s,itemId:c}=await ie({id:e,options:t,ctx:n,op:"plan_add_step",message:`plan add-step "${o}"`,mutator(m){let d=m.length+1;Zl(m,void 0,r,i);let _=Mu(m,t,{order:d,title:o,status:r});return m.push(_),{changedSteps:[_.id],resultStep:_}}}),l=X(a.metadata,"standard");return{action:"add-step",plan:l,step:s,next_actions:Z(c,l),warnings:[],generated_at:S()}}function Zl(e,t,n,o){if(n!=="in_progress"||o)return;let r=e.find(i=>i.id!==t&&i.status==="in_progress");if(r)throw new p(`Plan already has step ${r.id} in_progress. Pass --allow-multiple-active or update that step first.`,u.CONFLICT)}function Mu(e,t,n){let o=Cr(t,"depends_on"),r=B(t.file).map(Ar),i=B(t.test).map(Er),a=B(t.doc).map(Tr),s=S();return{id:vu(e),order:n.order,title:n.title,body:t.stepBody?.trim()||void 0,status:n.status,owner:t.stepOwner?.trim()||void 0,evidence:t.stepEvidence?.trim()||void 0,blocked_reason:n.status==="blocked"?t.stepBlockedReason?.trim()||"":void 0,linked_items:o.length>0?o:void 0,files:r.length>0?r:void 0,tests:i.length>0?i:void 0,docs:a.length>0?a:void 0,created_at:s,updated_at:s,completed_at:n.status==="completed"?s:void 0}}function Cr(e,t){let n=ee(e.dependsOn).map(m=>({id:m,kind:t})),o=ee(e.related).map(m=>({id:m,kind:"related"})),r=ee(e.blocks).map(m=>({id:m,kind:"blocks"})),i=ee(e.blockedBy).map(m=>({id:m,kind:"blocked_by"})),a=ee(e.link),s=Kl(e.linkKind,t),c=e.linkNote?.trim(),l=a.map(m=>{let d={id:m,kind:s};return c&&(d.note=c),d});return[...n,...o,...r,...i,...l]}async function yr(e,t,n,o){let{document:r,resultStep:i,itemId:a}=await ie({id:e,options:t,ctx:n,op:o.op,message:t.message??`${o.op} ${o.stepRef}`,mutator(c,l){let m=rt(c,o.stepRef),d=S(),_=o.finalStatus??Sr(t.stepStatus,m.status),f=t.allowMultipleActive===!0||o.allowMultipleActive===!0;return Zl(c,m.status==="in_progress"?m.id:void 0,_,f),ju(m,t,_,d),l.metadata.updated_at=d,{changedSteps:[m.id],resultStep:m}}}),s=X(r.metadata,"standard");return{action:o.op==="plan_complete_step"?"complete-step":o.op==="plan_block_step"?"block-step":"update-step",plan:s,step:i,next_actions:Z(a,s),warnings:[],generated_at:S()}}function ju(e,t,n,o){Gu(e,t,n),Uu(e,t),e.status=n,e.updated_at=o,qu(e,n,o)}function Gu(e,t,n){if(!(n!=="blocked"||t.stepBlockedReason?.trim()||e.blocked_reason))throw new p("Blocking a step requires --step-blocked-reason or an already-recorded blocked_reason.",u.USAGE)}function Uu(e,t){let n=t.stepTitle?.trim();n&&(e.title=n),t.stepBody!==void 0&&(e.body=t.stepBody.trim()||void 0),t.stepOwner!==void 0&&(e.owner=t.stepOwner.trim()||void 0),t.stepEvidence!==void 0&&(e.evidence=t.stepEvidence.trim()||void 0),t.stepBlockedReason!==void 0&&(e.blocked_reason=t.stepBlockedReason.trim()||void 0),t.stepReplacement!==void 0&&(e.superseded_by=t.stepReplacement.trim()||void 0);let o=B(t.file).map(Ar),r=B(t.test).map(Er),i=B(t.doc).map(Tr);o.length>0&&(e.files=br(e.files,o)),r.length>0&&(e.tests=br(e.tests,r)),i.length>0&&(e.docs=br(e.docs,i))}function br(e,t){let n=[...e??[]],o=new Set(n.map(r=>JSON.stringify(r)));for(let r of t){let i=JSON.stringify(r);o.has(i)||(o.add(i),n.push(r))}return n}function qu(e,t,n){if(t==="completed"&&!e.completed_at){e.completed_at=n;return}t!=="completed"&&(e.completed_at=void 0)}async function zu(e,t,n,o,r){let{document:i,itemId:a,resultStep:s}=await ie({id:e,options:t,ctx:n,op:"plan_reorder_step",message:t.message??`plan reorder-step ${o} -> ${r}`,mutator(l){let m=rt(l,o),d=l.filter(f=>f.id!==m.id),_=Math.max(1,Math.min(r,d.length+1));return d.splice(_-1,0,m),d.forEach((f,w)=>{f.order=w+1,f.updated_at=S()}),l.length=0,l.push(...d),{changedSteps:[m.id],resultStep:m}}}),c=X(i.metadata,"standard");return{action:"reorder-step",plan:c,step:s,next_actions:Z(a,c),warnings:[],generated_at:S()}}async function Hu(e,t,n,o){let{document:r,itemId:i,resultStep:a}=await ie({id:e,options:t,ctx:n,op:"plan_remove_step",message:t.message??`plan remove-step ${o}`,mutator(c){let l=rt(c,o),m=c.filter(d=>d.id!==l.id);return m.forEach((d,_)=>{d.order=_+1}),c.length=0,c.push(...m),{changedSteps:[l.id],resultStep:l}}}),s=X(r.metadata,"standard");return{action:"remove-step",plan:s,step:a,next_actions:Z(i,s),warnings:[],generated_at:S()}}async function Wu(e,t,n,o){let r=Cr(t,Kl(t.linkKind,"related"));if(r.length===0)throw new p("pm plan link requires at least one --link/--related/--blocks/--blocked-by/--depends-on id",u.USAGE);let i=t.promoteToItemDep===!0,{document:a,itemId:s,resultStep:c}=await ie({id:e,options:t,ctx:n,op:"plan_link_step",message:t.message??`plan link ${o}`,mutator(m,d){let _=rt(m,o),f=_.linked_items??[],w=y=>`${y.kind}:${y.id}`,k=new Set(f.map(w));for(let y of r){let v=w(y);k.has(v)||(f.push(y),k.add(v))}if(_.linked_items=f,_.updated_at=S(),i){let y=d.metadata.dependencies??[],v=I=>`${I.kind}:${I.id}`,g=new Set(y.map(v));for(let I of r){let x=I.kind==="depends_on"?"blocked_by":I.kind,N={id:I.id,kind:x,created_at:S(),author:R(t.author,n.settings.author_default)};g.has(v(N))||(y.push(N),g.add(v(N)))}d.metadata.dependencies=y}return{changedSteps:[_.id],resultStep:_}}}),l=X(a.metadata,"standard");return{action:"link",plan:l,step:c,next_actions:Z(s,l),warnings:[],generated_at:S()}}async function Vu(e,t,n,o){let r=ee(t.link);if(r.length===0)throw new p("pm plan unlink requires --link <id> to remove",u.USAGE);let{document:i,itemId:a,resultStep:s}=await ie({id:e,options:t,ctx:n,op:"plan_unlink_step",message:t.message??`plan unlink ${o}`,mutator(l){let m=rt(l,o),d=(m.linked_items??[]).filter(_=>!r.includes(_.id));return m.linked_items=d.length>0?d:void 0,m.updated_at=S(),{changedSteps:[m.id],resultStep:m}}}),c=X(i.metadata,"standard");return{action:"unlink",plan:c,step:s,next_actions:Z(a,c),warnings:[],generated_at:S()}}async function wr(e,t,n,o){let r=Su(o,t);if(!r){let l=`--${o}-text`,m=`--${o}`;throw new p(`pm plan ${o} requires ${l}`,u.USAGE,{code:"missing_required_option",examples:[`pm plan ${o} <plan-id> ${l} "..."`,`pm plan ${o} <plan-id> ${m} "..."`],recovery:{suggested_retry:`pm plan ${o} <plan-id> ${l} <value>`}})}let i=R(t.author,n.settings.author_default),{document:a,itemId:s}=await ie({id:e,options:t,ctx:n,op:`plan_append_${o}`,message:t.message??`plan ${o} append`,mutator(l,m){let d=S();if(o==="decision"){let f=m.metadata.plan_decisions??[];return f.push({ts:d,author:i,decision:r,rationale:t.decisionRationale?.trim()||void 0,evidence:t.decisionEvidence?.trim()||void 0}),m.metadata.plan_decisions=f,{changedSteps:[]}}if(o==="discovery"){let f=m.metadata.plan_discoveries??[];return f.push({ts:d,author:i,text:r}),m.metadata.plan_discoveries=f,{changedSteps:[]}}let _=m.metadata.plan_validation??[];return _.push({text:r,command:t.validationCommand?.trim()||void 0,expected:t.validationExpected?.trim()||void 0}),m.metadata.plan_validation=_,{changedSteps:[]}}}),c=X(a.metadata,"deep");return{action:o,plan:c,next_actions:Z(s,c),warnings:[],generated_at:S()}}async function Bu(e,t,n){let o=t.resumeContext?.trim();if(!o)throw new p("pm plan resume requires --resume-context <text>",u.USAGE);let{document:r,itemId:i}=await ie({id:e,options:t,ctx:n,op:"plan_resume",message:t.message??"plan resume context update",mutator(s,c){c.metadata.plan_resume_context=o;let l=t.scope?.trim();return l&&(c.metadata.plan_scope=l),{changedSteps:[]}}}),a=X(r.metadata,"brief");return{action:"resume",plan:a,next_actions:Z(i,a),warnings:[],generated_at:S()}}async function Ku(e,t,n){let o=Bl(t.mode??"approved","approved"),{document:r,itemId:i}=await ie({id:e,options:t,ctx:n,op:"plan_approve",message:t.message??`plan approve mode=${o}`,mutator(s,c){c.metadata.plan_mode=o;let l=t.scope?.trim();return l&&(c.metadata.plan_scope=l),{changedSteps:[]}}}),a=X(r.metadata,"brief");return{action:"approve",plan:a,next_actions:Z(i,a),warnings:[],generated_at:S()}}function Ql(e){return e.map(t=>`plan_materialize_skipped:${t.from_step}:${t.reason}${t.existing_id?`:${t.existing_id}`:""}`)}function Ju(e,t){let n=X(e.document.metadata,"standard");return{action:"materialize",plan:n,materialized:[],materialize_skipped:t,next_actions:Z(e.itemId,n),warnings:Ql(t),generated_at:S()}}function Yu(e,t,n){let o=[`id=${e},kind=parent`,`id=${t},kind=discovered_from`];for(let r of n.linked_items??[]){let i=r.kind==="blocked_by"||r.kind==="blocks"||r.kind==="related"||r.kind==="discovered_from"?r.kind:"related";o.push(`id=${r.id},kind=${i}`)}return o}async function Xu(e){let t=[],n={},o=new Set(["title","description","type","parent","tags","author","message","dep"]);for(let r of B(e.options.field)){let i=r.indexOf("=");if(i<=0)throw new p(`Invalid --field entry "${r}"; expected name=value`,u.USAGE);let a=r.slice(0,i).trim(),s=r.slice(i+1).trim();if(a.length===0)throw new p(`Invalid --field entry "${r}"; expected name=value`,u.USAGE);let c=a.trim().replaceAll(/([a-z0-9])([A-Z])/g,"$1 $2").replaceAll(/[^A-Za-z0-9]+/g," ").split(/\s+/).filter(Boolean).map(_=>_.toLowerCase());if(c.length===0)throw new p(`Invalid --field entry "${r}"; expected name=value`,u.USAGE);let[l,...m]=c,d=`${l}${m.map(_=>`${_.slice(0,1).toUpperCase()}${_.slice(1)}`).join("")}`;if(o.has(d))throw new p(`Invalid --field entry "${r}"; "${d}" is reserved by materialize and cannot be overridden`,u.USAGE);n[d]=s}for(let r of e.targets){let i={...n,title:r.title,description:r.body?.trim()||r.title,type:e.resolvedTypeName,parent:e.parent,tags:e.tags,author:e.options.author,message:e.options.message??`materialized from plan ${e.planItemId} step ${r.id}`,dep:Yu(e.parent,e.planItemId,r)};Xl(e.options,i,["description",...Object.keys(n)]);let a=await Ie(i,{path:e.pmRoot});t.push({id:a.item.id,title:a.item.title,type:e.resolvedTypeName,parent:a.item.parent,tags:a.item.tags??[],from_step:r.id})}return t}function Zu(e,t,n){for(let o of t){let r=n.find(s=>s.from_step===o.id);if(!r)continue;let i=e.find(s=>s.id===o.id);if(!i)continue;let a=i.linked_items??[];a.push({id:r.id,kind:"implements",note:`materialized as ${r.type}`}),i.linked_items=a,i.updated_at=S()}}async function Qu(e,t,n){let o=ee(t.steps);if(o.length===0)throw new p("pm plan materialize requires --steps <ids|orders|all>",u.USAGE);let r=t.materializeType?.trim()||"Task",i=P(n.settings,$()),a=Yt(r,i);if(!a)throw new p(`Invalid --materialize-type "${r}"`,u.USAGE);let s=t.materializeParent?.trim()||e,c=t.materializeTags,l=await Yl(n,e),m=(l.document.metadata.plan_steps??[]).slice(),{targets:d,skipped:_}=ku(m,o);if(d.length===0){if(_.length>0)return Ju(l,_);throw new p("No matching plan steps found for --steps",u.NOT_FOUND)}let f=await Xu({targets:d,parent:s,planItemId:l.itemId,resolvedTypeName:a,tags:c,options:t,pmRoot:n.pmRoot}),{document:w,itemId:k}=await ie({id:e,options:t,ctx:n,op:"plan_materialize",message:t.message??`plan materialize ${o.join(",")}`,mutator(v){return Zu(v,d,f),{changedSteps:d.map(g=>g.id)}}}),y=X(w.metadata,"standard");return{action:"materialize",plan:y,materialized:f,..._.length>0?{materialize_skipped:_}:{},next_actions:Z(k,y),warnings:Ql(_),generated_at:S()}}function e_(e){if(e.subcommand==="create")return e;let t=Vl(e.options.step);if(t.length>1)throw new p(`pm plan ${e.subcommand} accepts a single --step/--step-title value (repeated --step seeds ordered steps only on pm plan create)`,u.USAGE);return t.length===1&&!e.options.stepTitle?.trim()?{...e,options:Pe(e.options,{...e.options,stepTitle:t[0]})}:e}function ue(e,t){if(!e.id)throw new p(`pm plan ${t} requires a plan id`,u.USAGE);return e.id}function ze(e,t){let n=ue(e,t);if(!e.stepRef)throw new p(`pm plan ${t} requires <plan-id> <step>`,u.USAGE);return{id:n,stepRef:e.stepRef}}function t_(e){let t=ze(e,"reorder-step");if(e.reorderTo===void 0)throw new p("pm plan reorder-step requires <plan-id> <step> <new-order>",u.USAGE);return{...t,reorderTo:e.reorderTo}}var n_={create:(e,t)=>Pu(e.options,e.global,t),show:(e,t)=>Lu(ue(e,"show"),e.options,t),"add-step":(e,t)=>Du(ue(e,"add-step"),e.options,t),"update-step":(e,t)=>{let n=ze(e,"update-step");return yr(n.id,e.options,t,{stepRef:n.stepRef,op:"plan_update_step"})},"complete-step":(e,t)=>{let n=ze(e,"complete-step");return yr(n.id,e.options,t,{stepRef:n.stepRef,finalStatus:"completed",op:"plan_complete_step"})},"block-step":(e,t)=>{let n=ze(e,"block-step");return yr(n.id,e.options,t,{stepRef:n.stepRef,finalStatus:"blocked",op:"plan_block_step"})},"reorder-step":(e,t)=>{let n=t_(e);return zu(n.id,e.options,t,n.stepRef,n.reorderTo)},"remove-step":(e,t)=>{let n=ze(e,"remove-step");return Hu(n.id,e.options,t,n.stepRef)},link:(e,t)=>{let n=ze(e,"link");return Wu(n.id,e.options,t,n.stepRef)},unlink:(e,t)=>{let n=ze(e,"unlink");return Vu(n.id,e.options,t,n.stepRef)},decision:(e,t)=>wr(ue(e,"decision"),e.options,t,"decision"),discovery:(e,t)=>wr(ue(e,"discovery"),e.options,t,"discovery"),validation:(e,t)=>wr(ue(e,"validation"),e.options,t,"validation"),resume:(e,t)=>Bu(ue(e,"resume"),e.options,t),approve:(e,t)=>Ku(ue(e,"approve"),e.options,t),materialize:(e,t)=>Qu(ue(e,"materialize"),e.options,t)};function o_(e){let t=n_[e];if(!t)throw re({command_path:"plan",token:e,allowed:uu});return t}async function ed(e){let t=await Eu(e.global),n=e_(e),o=await o_(n.subcommand)(n,t);return o.action==="show"?o:{...o,mutation_receipt:Gn(o,t.pmRoot)}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="4a59a772-3e2a-5ae2-88c1-a96bc36f9f85")}catch{}})();var nd=1,xr="update-many",r_=new Set(["author","message","force","ownershipMetadataBypass","ownershipDependencyBypass","allowUnresolvedDeps"]),i_=["--status","--priority","--type","--tags","--description","--body","--deadline","--estimate","--assignee","--dep","--dep-remove","--comment","--note","--learning","--file","--test","--doc","--replace-deps","--replace-tests","--replace-files","--replace-docs","--unset","--clear-*"].join(", "),a_={title:"title",description:"description",body:"body",status:"status",closeReason:"close_reason",priority:"priority",type:"type",deadline:"deadline",estimatedMinutes:"estimated_minutes",acceptanceCriteria:"acceptance_criteria",definitionOfReady:"definition_of_ready",order:"order",goal:"goal",objective:"objective",value:"value",impact:"impact",outcome:"outcome",whyNow:"why_now",assignee:"assignee",parent:"parent",reviewer:"reviewer",risk:"risk",confidence:"confidence",sprint:"sprint",release:"release",blockedBy:"blocked_by",blockedReason:"blocked_reason",unblockNote:"unblock_note",reporter:"reporter",severity:"severity",environment:"environment",reproSteps:"repro_steps",resolution:"resolution",expectedResult:"expected_result",actualResult:"actual_result",affectedVersion:"affected_version",fixedVersion:"fixed_version",component:"component",regression:"regression",customerImpact:"customer_impact"},s_=[{field:"dependencies",addKey:"dep",removeKey:"depRemove",clearKey:"clearDeps",replaceKey:"replaceDeps"},{field:"comments",addKey:"comment",clearKey:"clearComments"},{field:"notes",addKey:"note",clearKey:"clearNotes"},{field:"learnings",addKey:"learning",clearKey:"clearLearnings"},{field:"files",addKey:"file",clearKey:"clearFiles",replaceKey:"replaceFiles"},{field:"tests",addKey:"test",clearKey:"clearTests",replaceKey:"replaceTests"},{field:"docs",addKey:"doc",clearKey:"clearDocs",replaceKey:"replaceDocs"},{field:"reminders",addKey:"reminder",clearKey:"clearReminders"},{field:"events",addKey:"event",clearKey:"clearEvents"},{field:"type_options",addKey:"typeOption",clearKey:"clearTypeOptions"}],c_={close_reason:"close_reason","close-reason":"close_reason",deadline:"deadline",estimate:"estimated_minutes",estimated_minutes:"estimated_minutes","estimated-minutes":"estimated_minutes",acceptance_criteria:"acceptance_criteria","acceptance-criteria":"acceptance_criteria",ac:"acceptance_criteria",definition_of_ready:"definition_of_ready","definition-of-ready":"definition_of_ready",order:"order",rank:"order",goal:"goal",objective:"objective",value:"value",impact:"impact",outcome:"outcome",why_now:"why_now","why-now":"why_now",assignee:"assignee",parent:"parent",reviewer:"reviewer",risk:"risk",confidence:"confidence",sprint:"sprint",release:"release",blocked_by:"blocked_by","blocked-by":"blocked_by",blocked_reason:"blocked_reason","blocked-reason":"blocked_reason",unblock_note:"unblock_note","unblock-note":"unblock_note",reporter:"reporter",severity:"severity",environment:"environment",repro_steps:"repro_steps","repro-steps":"repro_steps",resolution:"resolution",expected_result:"expected_result","expected-result":"expected_result",actual_result:"actual_result","actual-result":"actual_result",affected_version:"affected_version","affected-version":"affected_version",fixed_version:"fixed_version","fixed-version":"fixed_version",component:"component",regression:"regression",customer_impact:"customer_impact","customer-impact":"customer_impact",type_options:"type_options","type-options":"type_options",tags:"tags"},od=e=>{let t={};for(let[n,o]of Object.entries(e))r_.has(n)||o!==void 0&&(t[n]=o);return t},l_=e=>Object.keys(od(e)).length>0,rd=e=>typeof e=="string"?e.trim():e,d_=e=>{let t=String(e).trim(),n=Number(t);return Number.isInteger(n)?n:t},Rr=e=>{let t=String(e).trim(),n=Number(t);return Number.isFinite(n)?n:t},m_=e=>{let t=String(e).trim().toLowerCase();return new Map([["true",!0],["1",!0],["false",!1],["0",!1]]).get(t)??rd(e)},p_={priority:d_,estimatedMinutes:Rr,order:Rr,rank:Rr,regression:m_},u_=(e,t)=>{if(t!==void 0)return(p_[e]??rd)(t)},__=e=>{let t=e.trim().toLowerCase().replaceAll("-","_");return c_[t]??t},Un=(e,t)=>At(e,t),f_=(e,t)=>t!==void 0?t:e==="type_options"?{}:[],h_=(e,t)=>Array.isArray(t)?t.length:e==="type_options"&&t&&typeof t=="object"?Object.keys(t).length:0,g_=e=>e.replace?"replace":e.clear?"clear_or_reset":e.removeCount>0?"merge_remove":"append",td=(e,t)=>t===void 0?void 0:e[t],it=e=>Array.isArray(e)?e.length:0,y_=(e,t,n)=>{let o=n[e.addKey],r=td(n,e.removeKey),i=it(o),a=it(r),s=n[e.clearKey]===!0,c=td(n,e.replaceKey)===!0;if(![s,c,i>0,a>0].includes(!0))return;let l=f_(e.field,t[e.field]);return{field:e.field,before:l,after:{operation:g_({replace:c,clear:s,removeCount:a}),clear:s,replace:c,add_count:i,remove_count:a,before_count:h_(e.field,l)}}},b_=(e,t)=>{let n=[];for(let o of s_){let r=y_(o,e,t);r!==void 0&&n.push(r)}return n},w_=e=>Array.isArray(e)?e.filter(t=>typeof t=="string"):[],v_=(e,t)=>{if(![t.tags!==void 0,it(t.addTags)>0,it(t.removeTags)>0].includes(!0))return;let n=w_(e.tags),o=t.tags===void 0?n:$t(t.tags),r=ns(o,t.addTags),i=os(r,t.removeTags).slice().sort((s,c)=>s.localeCompare(c)),a=n.slice().sort((s,c)=>s.localeCompare(c));if(!Un(a,i))return{field:"tags",before:n,after:i}},k_=(e,t)=>{let n=e.acceptance_criteria,o=ts(es(n),t.addAc,t.removeAc);if(o.unmatchedRemovals.length>0)throw new p(`Acceptance criteria removal did not match: ${o.unmatchedRemovals.join(", ")}`,u.NOT_FOUND,{code:"acceptance_criteria_remove_unmatched",reason:"exact_match_not_found",field:"acceptance_criteria",unmatched:o.unmatchedRemovals});let r=o.criteria.join("; ");if(!Un(typeof n=="string"?n:"",r))return{field:"acceptance_criteria",before:n,after:r}},S_=(e,t,n)=>{for(let[o,r]of Object.entries(a_)){let i=n[o];if(i===void 0)continue;let a=t[r],s=u_(o,i);Un(a,s)||e.push({field:r,before:a,after:s})}},I_=(e,t,n,o)=>{let r=Qi(n,o,["update_many"]);for(let[i,a]of Object.entries(r)){let s=t[i];Un(s,a)||e.push({field:i,before:s,after:a})}},A_=(e,t,n)=>{for(let o of n??[]){let r=__(o),i=t[r];i!==void 0&&e.push({field:r,before:i,after:null})}},E_=(e,t,n={})=>{let o=e,r=[],i=v_(o,n);if(i&&r.push(i),S_(r,o,n),it(n.addAc)>0||it(n.removeAc)>0){let a=k_(o,n);a!==void 0&&r.push(a)}return r.push(...b_(o,n)),I_(r,o,n,t),A_(r,o,n.unset),{id:e.id,changes:r}},T_=(e,t)=>ms(e,t,{strict:!0,flagLabel:"--filter-status"}),C_=e=>{if(e?.ids!=null&&String(e.ids).trim().length===0)throw new p("--ids requires at least one non-empty item ID",u.USAGE)},R_=[({update:e})=>{e.priority!==void 0&&ds(e.priority)},({update:e,settings:t,pmRoot:n})=>{if(e.type===void 0)return;let o=P(t,$());if(!Yt(e.type,o))throw new p(fs(e.type,o.types,Xi(n,t.schema)),u.USAGE)},({update:e,statusRegistry:t})=>{if(e.status!==void 0&&!Fe(e.status,t)){let n=t.definitions.map(o=>o.id);throw new p(`Invalid --status value "${e.status}". Allowed: ${n.join(", ")}`,u.USAGE)}},({update:e})=>{e.deadline!==void 0&&Hi(e.deadline,new Date,"deadline")},({update:e})=>{e.estimatedMinutes!==void 0&&ss(e.estimatedMinutes,"estimated-minutes")}],x_=(e,t,n,o)=>{let r={update:e,settings:t,statusRegistry:n,pmRoot:o};for(let i of R_)i(r)},O_=async e=>{let t=await mn(e.pmRoot,xr,e.rollbackId,nd),n=e.options.update?.message??`Rollback update-many checkpoint ${t.id}`,o=await pn(t.items,(r,i)=>Ge(r,i,{author:e.options.update?.author,message:n,force:e.options.update?.force??!0},e.global));return{...Le({applied:o.restored_ids.length,skipped:0,failed:o.failed_count,unmatched:0}),mode:"rollback",matched_count:t.items.length,dry_run:!1,rollback_checkpoint_id:t.id,checkpoint:{id:t.id,created_at:t.created_at,path:t.path,rollback_command:`pm update-many --rollback ${t.id}`},restored_count:o.restored_ids.length,failed_count:o.failed_count,rows:o.rows,ids:o.restored_ids}},$_=async e=>{let t={schema_version:nd,id:e.checkpointId,created_at:e.nowValue,author:R(e.options.update?.author,"unknown"),status_filter:e.statusFilter??null,list_filters:e.filters,update_options:e.updateSummary,items:e.checkpointItems},n=await dn(e.pmRoot,xr,e.checkpointId,t);return{id:e.checkpointId,created_at:e.nowValue,path:n,rollback_command:`pm update-many --rollback ${e.checkpointId}`}},F_=(e,t)=>{if(e==null)return;let n=[...new Set(String(e).split(",").map(r=>r.trim()).filter(r=>r.length>0))],o=new Set(t.map(r=>r.id));return n.filter(r=>!o.has(r))},Or=e=>e.unmatchedIds===void 0?{}:{unmatched_ids:e.unmatchedIds,unmatched_count:e.unmatchedIds.length},P_=async e=>{let t=A(process.cwd(),e.path);await F(t);let n=await T(t);return{pmRoot:t,settings:n,statusRegistry:V(n.schema),runtimeFieldRegistry:Et(n.schema)}},L_=e=>{if(e.options.dryRun===!0)throw new p("--dry-run cannot be combined with --rollback",u.USAGE);if(Mt(e.options.list,e.options.status))throw new p("Rollback mode does not accept filter options",u.USAGE);if(Object.keys(e.updateSummary).length>0)throw new p("Rollback mode does not accept update mutation flags",u.USAGE);return O_({pmRoot:e.runtime.pmRoot,rollbackId:e.rollbackId,options:e.options,global:e.global})},N_=async e=>{T_(e.options.status,e.runtime.statusRegistry);let t=await de(void 0,{...e.options.list,status:e.options.status,compact:void 0,brief:void 0,fields:void 0,includeBody:!0,full:!0},e.global),n=t.items.map(r=>{let i=E_(r,e.runtime.runtimeFieldRegistry,e.options.update);return e.dependencyWarnings.length===0?i:{...i,warnings:[...e.dependencyWarnings]}}),o=e.options.list?.ids==null?[]:(await de(void 0,{ids:e.options.list.ids,noTruncate:!0,full:!0},e.global)).items;return{listed:t,planned:n,actionable:n.filter(r=>r.changes.length>0),updateSummary:e.updateSummary,unmatchedIds:F_(e.options.list?.ids,o)}},D_=e=>({outcome:"effect",exit_code:u.SUCCESS,mode:"dry_run",matched_count:e.listed.items.length,dry_run:!0,filters:e.listed.filters,planned_update_options:e.updateSummary,item_plans:e.planned,ids:[],...Or(e)}),M_=e=>({...Le({applied:0,skipped:e.listed.items.length,failed:0,unmatched:e.unmatchedIds?.length??0}),mode:"apply",matched_count:e.listed.items.length,dry_run:!1,filters:e.listed.filters,planned_update_options:e.updateSummary,updated_count:0,skipped_count:e.listed.items.length,failed_count:0,rows:e.planned.map(t=>({id:t.id,status:"skipped"})),ids:[],...Or(e)}),j_=async e=>{let t=[],n=[],o=e.options.update.message??`update-many apply ${e.checkpointId}`,r=new Set(e.plans.filter(i=>i.changes.length>0).map(i=>i.id));for(let i of e.items){if(!r.has(i.id)){t.push({id:i.id,status:"skipped"});continue}try{let a=Ro({...e.options.update,message:o,runtimeFieldCommands:["update_many"]}),s=await ot(i.id,a,e.global);t.push({id:i.id,status:"updated",changed_fields:s.changed_fields,warnings:s.warnings}),n.push(i.id)}catch(a){t.push({id:i.id,status:"failed",error:be(a)})}}return{rows:t,updatedIds:n}},G_=async e=>{if(e.plan.actionable.length===0)return M_(e.plan);let t=S(),n=ln(xr,t),o=new Set(e.plan.actionable.map(d=>d.id)),r=e.plan.listed.items.filter(d=>o.has(d.id)).map(d=>({id:d.id,target_updated_at:d.updated_at})),i=e.options.checkpoint===!1?void 0:await $_({pmRoot:e.runtime.pmRoot,checkpointId:n,nowValue:t,options:e.options,statusFilter:e.options.status,filters:e.plan.listed.filters,updateSummary:e.plan.updateSummary,checkpointItems:r}),a=await j_({items:e.plan.listed.items,plans:e.plan.planned,options:e.options,global:e.global,checkpointId:n}),s=d=>a.rows.filter(_=>_.status===d).length,c=s("updated"),l=s("skipped"),m=s("failed");return{...Le({applied:c,skipped:l,failed:m,unmatched:e.plan.unmatchedIds?.length??0}),mode:"apply",matched_count:e.plan.listed.items.length,dry_run:!1,filters:e.plan.listed.filters,planned_update_options:e.plan.updateSummary,...i?{checkpoint:i}:{},updated_count:c,skipped_count:l,failed_count:m,rows:a.rows,ids:a.updatedIds,...Or(e.plan)}},id=async(e,t)=>{let n=await P_(t),o=typeof e.rollback=="string"?e.rollback:void 0;o===void 0&&(e={...e,update:Ro(await Yc(e.update))});let r=od(e.update);if(C_(e.list),o!==void 0)return L_({runtime:n,rollbackId:o,options:e,global:t,updateSummary:r});if(!l_(e.update)&&e.dryRun!==!0)throw new p(`No update-many mutation flags provided. Add at least one mutation flag (for example: ${i_}), or pass --dry-run for a filter-only preview.`,u.USAGE);x_(e.update,n.settings,n.statusRegistry,n.pmRoot),Xc(e.update);let i=await Ho({pmRoot:n.pmRoot,dependencies:Vo(e.update.dep,n.settings.id_prefix,S(),R(e.update.author,n.settings.author_default)).additions,idPrefix:n.settings.id_prefix,itemFormat:n.settings.item_format,typeToFolder:P(n.settings,$()).type_to_folder,allowUnresolved:e.update.allowUnresolvedDeps}),a=await N_({options:e,global:t,runtime:n,updateSummary:r,dependencyWarnings:i});return await Ho({pmRoot:n.pmRoot,dependencies:Vo(e.update.dep,n.settings.id_prefix,S(),R(e.update.author,n.settings.author_default)).additions,idPrefix:n.settings.id_prefix,itemFormat:n.settings.item_format,typeToFolder:P(n.settings,$()).type_to_folder,allowUnresolved:e.update.allowUnresolvedDeps,holders:a.listed.items.map(s=>({id:s.id,createdAt:s.created_at})),schema:n.settings.schema}),e.dryRun===!0?D_(a):G_({runtime:n,options:e,global:t,plan:a})};(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="6263346a-08ee-5eb9-81b9-47e933793c07")}catch{}})();function U_(e){if(e===void 0)return;if(e.trim().length===0)throw new p("--add-json must contain a JSON value",u.USAGE,{code:"structured_event_json_empty"});let t;try{t=JSON.parse(e)}catch{throw new p("--add-json must be valid JSON",u.USAGE,{code:"structured_event_json_invalid"})}return t}function q_(e){if(typeof e!="object"||e===null||Array.isArray(e))return;let t=e.type;return typeof t=="string"&&t.trim().length>0?t.trim():void 0}function z_(e){if(e===void 0)return;let t=Date.parse(e);if(!Number.isFinite(t))throw new p("--since must be a valid ISO timestamp",u.USAGE,{code:"structured_event_since_invalid"});return t}async function ad(e,t,n){let o=U_(t.addJson),r=[t.add!==void 0,t.stdin===!0,t.file!==void 0,t.edit!==void 0,t.delete!==void 0].includes(!0);if(o!==void 0&&r)throw new p("--add-json cannot be combined with text, edit, delete, stdin, or file inputs",u.USAGE,{code:"structured_event_input_conflict"});let i=o===void 0?void 0:It(o),a=[t.since,t.eventType].some(w=>w!==void 0),s=z_(t.since),c=ps(t.limit),l=await tt(e,{...t,...a?{limit:void 0}:{},includeMeta:[t.includeMeta===!0,a].includes(!0)},n,{input:await Tn(i===void 0?t:{add:i},"note"),collectionKey:"notes",op:"note_add",editOp:"note_edit",deleteOp:"note_delete",parseText:w=>et(w),createEntry:w=>o===void 0?w:{...w,format:"json",data:o,event_type:q_(o)},bypassOwnershipConflict:!![t.edit===void 0,t.delete===void 0,t.ownershipAppendBypass===!0].every(Boolean),conflictGuidance:{required:"Strict ownership also protects annotations. Ask the current owner to run pm release <id>, then run pm claim <id>; use --force only for an explicitly approved override.",examples:["pm claim <id>"],nextSteps:["For an approved append without reassignment: pm package install governance-audit --project; then pm notes --help lists the package-owned append bypass. Edit/delete still require ownership.","For a non-terminal handoff, the current owner runs pm release <id>; then you run pm claim <id> before retrying. Claim refuses work still held by another owner; --force requires an explicitly approved override."]}}),m=t.eventType?.trim(),d=l.notes.filter(w=>{let k=[w.format==="json",w.data!==void 0].every(Boolean),y=[s===void 0,Date.parse(w.created_at)>=(s??Number.POSITIVE_INFINITY)].includes(!0),v=[!m,w.event_type===m].includes(!0);return[!a,[k,y,v].every(Boolean)].includes(!0)}),_=a?fc(d,c):d,f=_.filter(w=>w.format==="json").length;return{...l,notes:_,count:_.length,...a?{total_count:d.length,returned_count:_.length,has_more:_.length<d.length,...c===void 0?{}:{limit:c},structured_event_count:f}:t.includeMeta===!0?{structured_event_count:f}:{}}}import pf from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="59d16a38-d6df-5695-96e3-28b6e384f76b")}catch{}})();var at=["agile","ops","research"],$r={agile:{name:"agile",title:"Agile delivery",summary:"Story/Spike delivery with a review stage, story points, and acceptance ownership.",types:gn.agile,statuses:[{id:"review",roles:["active"],aliases:["in-review"],description:"Work is implementation-complete and awaiting peer review."}],fields:[{key:"story_points",type:"number",commands:["create","update","list"],description:"Relative estimation size for a story or spike.",aliases:["points"]},{key:"acceptance_owner",type:"string",commands:["create","update","list"],description:"Stakeholder accountable for accepting the delivered story.",aliases:["acceptor"]}],workflows:[{type:"Story",allowed_transitions:[["open","in_progress"],["in_progress","review"],["review","in_progress"],["review","closed"],["in_progress","blocked"],["blocked","in_progress"]]}],config:[{key:"search_provider",value:"bm25",summary:"Offline BM25 lexical search works without an embedding service."},{key:"search_max_results",value:"20",summary:"Sprint-sized result cap for quick triage."}],templates:[{name:"story",options:{type:"Story",priority:"2",tags:"story",acceptanceCriteria:"Story delivers the stated user outcome with tests and docs updated.",body:`## As a
@@ -2244,5 +2244,5 @@ compdef _pm pm`}(function(){try{var e=typeof window<"u"?window:typeof global<"u"
2244
2244
  `)}catch{}}function yg(e){let t=(e??"keyword").trim().toLowerCase();if(t==="keyword")return"keyword";if(t==="semantic"||t==="hybrid")return t;throw new p("Reindex mode must be one of keyword|semantic|hybrid",u.USAGE)}async function bg(e,t,n,o){let r=[];return{candidates:await ma(e,t,n,r,o),warnings:r}}async function si(e,t,n,o,r){let i=Ze($()),a=[];for(let s of t)if(!(r&&!r.has(s.metadata.id))){if(typeof s.body=="string"){a.push({metadata:s.metadata,body:s.body});continue}try{let c=await fg.readFile(s.item_path,"utf8"),l=on(c,{format:s.item_format,schema:n,extensionFieldNames:i,onWarning:m=>o.push(m)});a.push({metadata:s.metadata,body:l.body})}catch{o.push(`item_list_item_read_failed:${Kt.relative(e,s.item_path)}`),a.push({metadata:s.metadata,body:""})}}return a}function wg(e,t,n){let o=e.metadata;return{id:o.id,mode:t,updated_at:o.updated_at,corpus:ys(e,{fields:n})}}var vt=wi;function vg(e){let t=$(),n=vt(e.search?.provider);if(!n)return null;let o=Za(t,n);if(!o)return null;let r=o.runtime_definition??o.definition,i=vt(r.name)??vt(o.definition.name);if(!i)return null;let a=r.embedBatch,s=r.embed_batch,c=r.embed,l=typeof a=="function"?a:typeof s=="function"?s:void 0,m=typeof c=="function"?c:void 0;return!l&&!m?null:{name:i,embedBatch:l,embed:m}}function kg(e){let t=$(),n=vt(e.vector_store?.adapter);if(!n)return null;let o=Qa(t,n);if(!o)return null;let r=o.runtime_definition??o.definition,i=vt(r.name)??vt(o.definition.name);if(!i)return null;let a=r.upsert,s=r.delete;return{adapterName:i,...typeof a=="function"?{upsert:a}:{},...typeof s=="function"?{delete:s}:{}}}function ai(e,t){if(!Array.isArray(e)||e.some(n=>typeof n!="number"||!Number.isFinite(n)))throw new p(`Invalid vector returned by ${t}`,u.GENERIC_FAILURE);return e}async function Sg(e,t,n){let o=t.search?.embedding_model?.trim()||"text-embedding-3-small";if(e.embedBatch){let i=await Promise.resolve(e.embedBatch({inputs:n,settings:t,model:o}));if(!Array.isArray(i))throw new p(`Extension search provider "${e.name}" embedBatch must return an array of vectors`,u.GENERIC_FAILURE);return i.map((a,s)=>ai(a,`extension search provider "${e.name}" embedBatch output at index ${s}`))}if(!e.embed)throw new p(`Extension search provider "${e.name}" does not implement embed/embedBatch`,u.GENERIC_FAILURE);let r=[];for(let[i,a]of n.entries()){let s=await Promise.resolve(e.embed({input:a,settings:t,model:o}));r.push(ai(s,`extension search provider "${e.name}" embed output at index ${i}`))}return r}function ap(e){return e.search?.embedding_model?.trim()||"text-embedding-3-small"}function sp(e,t,n){let o=n?Ft(n.name,ap(e)):t?Ft(t.name,t.model):null;if(!o)throw new p("No embedding identity available for semantic reindex mode",u.USAGE);return o}function Ig(e,t){return Object.keys(e).filter(n=>!t.has(n)).sort((n,o)=>n.localeCompare(o))}async function cp(e,t,n,o,r,i,a,s){let c=o?.name??n?.name,l=bs(c,e.search.embedding_corpus_max_characters).maxCharacters,m=Oo(e),d=r.map(w=>ws(w,{providerName:c,maxCharacters:l,fields:m})),_=[],f=null;if(o)try{_=await Sg(o,e,d),f=Ft(o.name,ap(e))}catch(w){if(!n)throw new p(`Extension search provider "${o.name}" failed to generate embeddings: ${w instanceof Error?w.message:String(w)}`,u.GENERIC_FAILURE);i.push(`Extension search provider "${o.name}" failed; falling back to built-in provider (${w instanceof Error?w.message:String(w)})`)}if(_.length===0){if(!n)throw new p(`No embedding executor available for reindex mode '${t}'`,u.USAGE);let w=await vs(n,e,d,{onProgress:k=>{k.phase==="complete"&&(a.batches_completed=k.batch_index),M(s,`embedding_batch_${k.phase} batch=${k.batch_index}/${k.batch_total} size=${k.batch_size} completed_inputs=${k.completed_inputs}/${k.total_inputs}`)}});i.push(...w.warnings),a.batching=w.receipt,_=w.vectors,f=Ft(n.name,n.model)}if(M(s,`embedding_complete vectors=${_.length}`),_.length!==r.length)throw new p(`Embedding output size mismatch (expected ${r.length}, received ${_.length})`,u.GENERIC_FAILURE);if(!f)throw new p(`No embedding identity available for reindex mode '${t}'`,u.USAGE);return{vectors:_,embeddingIdentity:f}}async function Ag(e,t,n,o,r,i){let a=Object.keys(n);if(t){if(a.length>0&&t.delete)try{await Promise.resolve(t.delete({ids:a.sort((s,c)=>s.localeCompare(c)),settings:o}))}catch(s){throw new p(`Extension vector adapter "${t.adapterName}" failed to delete vectors during reindex reset: ${s instanceof Error?s.message:String(s)}`,u.GENERIC_FAILURE)}else a.length>0&&r.push(`search_semantic_reindex_reset_skipped:adapter=${t.adapterName}:known_ids=${a.length}`);if(!e)return}e&&await As(e,a,{},i)}async function lp(e,t,n,o,r){if(n.length!==0){if(t){if(t.delete)try{await Promise.resolve(t.delete({ids:n,settings:o}))}catch(i){throw new p(`Extension vector adapter "${t.adapterName}" failed to delete orphan vectors during reindex: ${i instanceof Error?i.message:String(i)}`,u.GENERIC_FAILURE)}else r.push(`search_semantic_reindex_orphan_prune_skipped:adapter=${t.adapterName}:count=${n.length}`);if(!e)return}e&&await Is(e,n)}}function Eg(e){return{enabled:e!=="keyword",stale_items:0,unchanged_items:0,embedded_items:0,vector_upserted:0,batches_completed:0}}function Tg(e,t,n){return{version:1,mode:e,generated_at:t,total_items:n.length,items:n.map(o=>({id:o.metadata.id,type:o.metadata.type,status:o.metadata.status,priority:o.metadata.priority,updated_at:o.metadata.updated_at}))}}function Cg(e){if(e.requestedMode==="keyword")return{activeEmbeddingProvider:null,activeVectorStore:null};let t=xo(e.settings);if(!t.active&&!e.extensionEmbedding)throw new p(`Reindex mode '${e.requestedMode}' requires a configured embedding provider in settings.providers.openai/settings.providers.ollama or an extension provider selected by settings.search.provider`,u.USAGE);let n=ks(e.settings,e.pmRoot);if(!n.active&&!e.extensionVectorAdapter)throw new p(`Reindex mode '${e.requestedMode}' requires a configured vector store in settings.vector_store.qdrant/settings.vector_store.lancedb or an extension adapter selected by settings.vector_store.adapter`,u.USAGE);return{activeEmbeddingProvider:t.active,activeVectorStore:n.active}}async function Rg(e){let t=P(e.settings,$()),n=await bg(e.pmRoot,e.settings.item_format,t.type_to_folder,e.settings.schema);return{documentCandidates:n.candidates,warnings:[...n.warnings],metadataDocuments:n.candidates.map(o=>({metadata:o.metadata,body:typeof o.body=="string"?o.body:""}))}}async function xg(e){let t=await Fo(e.pmRoot);if(e.reindexWarnings.push(...t.warnings),e.forceFullSemantic&&e.reindexWarnings.push("search_semantic_reindex_full_ignored:mode_keyword"),!t.embedding)return;let n=(()=>{try{return sp(e.settings,xo(e.settings).active,e.extensionEmbedding)}catch{return null}})();n&&fn(t.embedding,n)&&(e.reindexWarnings.push("search_semantic_reindex_requires_rebuild:embedding_identity_changed"),e.reindexWarnings.push(hg))}async function Og(e){let t=await Fo(e.pmRoot);e.semanticWarnings.push(...t.warnings);let n=sp(e.settings,e.activeEmbeddingProvider,e.extensionEmbedding),o=new Set(e.metadataDocuments.map(l=>l.metadata.id)),r=Ig(t.entries,o),i=fn(t.embedding,n);e.forceFullSemantic&&!i&&e.semanticWarnings.push("search_semantic_reindex_full_rebuild_forced");let a=e.forceFullSemantic||i?e.metadataDocuments:e.metadataDocuments.filter(l=>t.entries[l.metadata.id]!==l.metadata.updated_at),s=new Set(a.map(l=>l.metadata.id)),c=s.size>0?await si(e.pmRoot,e.documentCandidates,e.settings.schema,e.reindexWarnings,s):[];return{ledgerEntries:t.entries,ledgerEmbedding:t.embedding,orphanIds:r,resetRequired:i,staleDocuments:c,freshDocuments:e.metadataDocuments.length-c.length}}async function $g(e){let t=new Set(e.metadataDocuments.map(r=>r.metadata.id)),n=await si(e.pmRoot,e.documentCandidates,e.settings.schema,e.reindexWarnings,t);e.semanticSummary.stale_items=n.length,e.semanticSummary.unchanged_items=0,M(e.progressEnabled,`embedding_dimension_changed reset_items=${n.length}`);let o=await cp(e.settings,e.requestedMode,e.activeEmbeddingProvider,e.extensionEmbedding,n,e.semanticWarnings,e.semanticSummary,e.progressEnabled);return{...o,staleDocuments:n,vectorDimension:$o(o.vectors,"Reindex embeddings")}}async function Fg(e){let t=await cp(e.settings,e.requestedMode,e.activeEmbeddingProvider,e.extensionEmbedding,e.staleDocuments,e.semanticWarnings,e.semanticSummary,e.progressEnabled),n=t.vectors,o=t.embeddingIdentity,r=$o(n,"Reindex embeddings");if(!(!e.resetRequired&&(fn(e.ledgerEmbedding,o)||Ts(e.ledgerEmbedding,r))))return{vectors:n,embeddingIdentity:o,staleDocuments:e.staleDocuments,vectorDimension:r,resetRequired:e.resetRequired};let i=await $g(e);return n=i.vectors,o=i.embeddingIdentity,r=i.vectorDimension,{vectors:n,embeddingIdentity:o,staleDocuments:i.staleDocuments,vectorDimension:r,resetRequired:!0}}async function Pg(e){if(e.extensionVectorAdapter)try{let t=e.extensionVectorAdapter.adapterName;if(M(e.progressEnabled,`vector_upsert_start adapter=${t} points=${e.points.length}`),typeof e.extensionVectorAdapter.upsert!="function")throw new p(`Extension vector adapter "${t}" does not support upserting vectors.`,u.USAGE);await Promise.resolve(e.extensionVectorAdapter.upsert({points:e.points,settings:e.settings})),e.semanticSummary.vector_upserted=e.points.length,M(e.progressEnabled,`vector_upsert_complete adapter=${t}`);return}catch(t){if(t instanceof p)throw t;if(!e.activeVectorStore)throw new p(`Extension vector adapter "${e.extensionVectorAdapter.adapterName}" failed to upsert vectors: ${t instanceof Error?t.message:String(t)}`,u.GENERIC_FAILURE);e.semanticWarnings.push(`Extension vector adapter "${e.extensionVectorAdapter.adapterName}" failed; falling back to built-in vector store (${t instanceof Error?t.message:String(t)})`),M(e.progressEnabled,"vector_upsert_fallback built_in_store")}if(e.activeVectorStore){M(e.progressEnabled,`vector_upsert_start adapter=${e.activeVectorStore.name} points=${e.points.length}`),await Ss(e.activeVectorStore,e.points),e.semanticSummary.vector_upserted=e.points.length,M(e.progressEnabled,`vector_upsert_complete adapter=${e.activeVectorStore.name}`);return}throw new p(`No vector upsert executor available for reindex mode '${e.requestedMode}'`,u.USAGE)}function Lg(e,t){return e.map((n,o)=>({id:n.metadata.id,vector:ai(t[o],`reindex embeddings output at index ${o}`),payload:{id:n.metadata.id,type:n.metadata.type,status:n.metadata.status,priority:n.metadata.priority,updated_at:n.metadata.updated_at}}))}async function Ng(e){M(e.progressEnabled,`embedding_start items=${e.plan.staleDocuments.length} unchanged_items=${e.plan.freshDocuments}`);let t=await Fg({pmRoot:e.pmRoot,settings:e.settings,requestedMode:e.requestedMode,activeEmbeddingProvider:e.activeEmbeddingProvider,extensionEmbedding:e.extensionEmbedding,documentCandidates:e.documentCandidates,metadataDocuments:e.metadataDocuments,staleDocuments:e.plan.staleDocuments,ledgerEmbedding:e.plan.ledgerEmbedding,resetRequired:e.plan.resetRequired,semanticWarnings:e.semanticWarnings,reindexWarnings:e.reindexWarnings,semanticSummary:e.semanticSummary,progressEnabled:e.progressEnabled});t.resetRequired?(M(e.progressEnabled,"vector_reset_start"),await Ag(e.activeVectorStore,e.extensionVectorAdapter,e.plan.ledgerEntries,e.settings,e.semanticWarnings,e.plan.ledgerEmbedding?t.vectorDimension:void 0),M(e.progressEnabled,"vector_reset_complete")):await lp(e.activeVectorStore,e.extensionVectorAdapter,e.plan.orphanIds,e.settings,e.semanticWarnings);let n=Lg(t.staleDocuments,t.vectors);return e.semanticSummary.embedded_items=t.vectors.length,await Pg({requestedMode:e.requestedMode,activeVectorStore:e.activeVectorStore,extensionVectorAdapter:e.extensionVectorAdapter,settings:e.settings,points:n,semanticWarnings:e.semanticWarnings,semanticSummary:e.semanticSummary,progressEnabled:e.progressEnabled}),{staleDocuments:t.staleDocuments,embeddingMetadata:Es(t.embeddingIdentity,t.vectorDimension)}}async function Dg(e){let t=await Og(e);e.semanticSummary.stale_items=t.staleDocuments.length,e.semanticSummary.unchanged_items=t.freshDocuments;let n=Object.fromEntries(e.metadataDocuments.map(i=>[i.metadata.id,i.metadata.updated_at]));if(M(e.progressEnabled,`semantic_stale_items stale=${t.staleDocuments.length} total=${e.metadataDocuments.length} unchanged=${t.freshDocuments} full=${e.forceFullSemantic||t.resetRequired}`),t.staleDocuments.length===0)return M(e.progressEnabled,`embedding_skipped unchanged_items=${t.freshDocuments}`),e.semanticWarnings.push(`search_semantic_reindex_skipped_unchanged:count=${t.freshDocuments}`),await lp(e.activeVectorStore,e.extensionVectorAdapter,t.orphanIds,e.settings,e.semanticWarnings),{documentsForKeywordArtifacts:e.documentsForKeywordArtifacts,vectorizationLedgerEntries:n,vectorizationEmbeddingMetadata:t.ledgerEmbedding};let o=await Ng({...e,plan:t});t.freshDocuments>0&&e.semanticWarnings.push(`search_semantic_reindex_skipped_unchanged:count=${t.freshDocuments}`);let r=new Map(o.staleDocuments.map(i=>[i.metadata.id,i]));return{documentsForKeywordArtifacts:e.metadataDocuments.map(i=>r.get(i.metadata.id)??i),vectorizationLedgerEntries:n,vectorizationEmbeddingMetadata:o.embeddingMetadata}}async function Mg(e){let t=Kt.join(e.pmRoot,ri),n=Kt.join(e.pmRoot,ii),o=Oo(e.settings),r=e.documentsForKeywordArtifacts.map(a=>JSON.stringify(wg(a,e.mode,o))).join(`
2245
2245
  `);M(e.progressEnabled,"writing keyword artifacts"),await oe(t,`${JSON.stringify(e.manifest,null,2)}
2246
2246
  `),await oe(n,`${r}
2247
- `);let i=[];if(e.mode!=="keyword")try{M(e.progressEnabled,"writing vectorization status ledger"),await Cs(e.pmRoot,e.vectorizationLedgerEntries,e.vectorizationEmbeddingMetadata)}catch(a){i.push(`search_vectorization_status_ledger_write_failed:${a instanceof Error?a.message:String(a)}`)}return i}async function jg(e,t){let n=yg(e.mode),o=gg(e),r=e.full===!0;M(o,`start mode=${n}`);let i=A(process.cwd(),t.path);await F(i);let a=hs(await T(i)).settings,s=null;try{s=await ne(i,gs,a.locks.ttl_seconds,R(void 0,"pm-reindex"),!1,a.governance.force_required_for_stale_lock,a.locks.wait_ms)}catch(c){throw c instanceof p&&c.exitCode===u.CONFLICT?new p("Another pm reindex run is already active for this project. Wait for it to finish before starting a new keyword, semantic, or hybrid reindex.",u.CONFLICT,{code:"reindex_already_running",type:"urn:pm-cli:error:reindex_already_running",why:"Semantic reindex can be expensive and duplicate runs compete for the same local embedding model and vector store.",nextSteps:["Check active pm reindex processes before starting another reindex.","Rerun with --progress when you need non-interactive visibility."]}):c}try{let c=vg(a),l=kg(a),m=Cg({requestedMode:n,pmRoot:i,settings:a,extensionEmbedding:c,extensionVectorAdapter:l}),d=n;M(o,"loading item corpus");let _=await Rg({pmRoot:i,settings:a}),f=_.warnings,{documentCandidates:w,metadataDocuments:k}=_;M(o,`loaded_items=${k.length}`);let y=S(),v=Tg(d,y,k),g=Kt.join(i,ri),I=Kt.join(i,ii),x=d==="keyword"?await si(i,w,a.schema,f):k,N=[],W={},O=null,C=Eg(d);if(d==="keyword"&&await xg({pmRoot:i,settings:a,forceFullSemantic:r,extensionEmbedding:c,reindexWarnings:f}),d!=="keyword"){let te=await Dg({pmRoot:i,settings:a,requestedMode:n,activeEmbeddingProvider:m.activeEmbeddingProvider,activeVectorStore:m.activeVectorStore,extensionEmbedding:c,extensionVectorAdapter:l,documentCandidates:w,metadataDocuments:k,documentsForKeywordArtifacts:x,forceFullSemantic:r,reindexWarnings:f,semanticWarnings:N,semanticSummary:C,progressEnabled:o});x=te.documentsForKeywordArtifacts,W=te.vectorizationLedgerEntries,O=te.vectorizationEmbeddingMetadata}let ae=await Mg({pmRoot:i,mode:d,manifest:v,documentsForKeywordArtifacts:x,settings:a,vectorizationLedgerEntries:W,vectorizationEmbeddingMetadata:O,progressEnabled:o}),Re=[...await G({path:g,scope:"project",op:"reindex:manifest"}),...await G({path:I,scope:"project",op:"reindex:embeddings"}),...await Pi({mode:d,total_items:k.length})];return M(o,"done"),{ok:!0,mode:d,total_items:k.length,semantic:C,artifacts:{manifest:ri,embeddings:ii},warnings:[...f,...N,...ae,...Re],generated_at:y}}finally{await s?.()}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="710f1406-c114-56c7-9f0b-4f7c20b1eea1")}catch{}})();var pp=Symbol("pm.active-extension-host-context");function Q(e){return{fullChangedFields:!0,options:e}}var b=class e{defaults;constructor(t={}){this.defaults={...t.pmRoot===void 0?{}:{path:t.pmRoot},...t.cwd===void 0?{}:{cwd:t.cwd},...t.author===void 0?{}:{author:t.author},...t.noExtensions===void 0?{}:{noExtensions:t.noExtensions}}}static forActiveExtensionHost(t){let n=new e({...t,noExtensions:!0});return n.defaults[pp]=!0,n}run(t,n={}){return Hg({...this.defaults,...n,action:t})}runTyped(t,n={}){return this.run(t,n)}context(t={}){return this.runTyped("context",{options:t})}listAllItemMetadataLight(){return Il(this.defaults.path,this.defaults.cwd)}list(t={}){return this.runTyped("list",{options:t})}async listAllComplete(t={}){return Mn(await this.list(sr(t)))}search(t,n={}){return this.runTyped("search",{query:t,options:n})}get(t,n={}){return this.runTyped("get",{id:t,options:n})}next(t={}){return this.runTyped("next",{options:t})}aggregate(t={}){return this.runTyped("aggregate",{options:t})}stats(t={}){return this.runTyped("stats",{options:t})}duplicates(t={}){return this.runTyped("duplicates",{options:t})}comments(t,n={}){return this.runTyped("comments",{id:t,options:n})}notes(t,n={}){return this.runTyped("notes",{id:t,options:n})}learnings(t,n={}){return this.runTyped("learnings",{id:t,options:n})}files(t,n={}){return this.runTyped("files",{id:t,options:n})}filesDiscover(t,n={}){return this.runTyped("files-discover",{id:t,options:n})}filesLookup(t){return this.runTyped("files-lookup",{options:t})}docs(t,n={}){return this.runTyped("docs",{id:t,options:n})}deps(t,n={}){return this.runTyped("deps",{id:t,options:n})}graph(t,n={},o={}){return this.runTyped("graph",{subcommand:t,...n,options:o})}append(t,n,o={}){return this.runTyped("append",{id:t,...Q(Pt(o,{body:n}))})}init(t,n={}){return this.runTyped("init",{...t===void 0?{}:{prefix:t},options:n})}config(t,n,o,r,i={}){return this.runTyped("config",{scope:t,configAction:n,...o===void 0?{}:{key:o},...r===void 0?{}:{value:r},options:i})}schema(t,n={}){return this.runTyped("schema",{options:{...n,subcommand:t}})}workflowPolicy(t,n,o={}){return this.runTyped("schema",{name:n,options:{...o,subcommand:t}})}schemaList(){return this.runTyped("schema",{options:{subcommand:"list"}})}schemaShow(t){return this.runTyped("schema",{name:t,options:{subcommand:"show"}})}schemaAddType(t,n={}){return this.runTyped("schema",{name:t,options:{...n,subcommand:"add-type"}})}schemaRemoveType(t,n={}){return this.runTyped("schema",{name:t,options:{...n,subcommand:"remove-type"}})}schemaAddStatus(t,n={}){return this.runTyped("schema",{name:t,options:{...n,subcommand:"add-status"}})}schemaRemoveStatus(t,n={}){return this.runTyped("schema",{name:t,options:{...n,subcommand:"remove-status"}})}schemaAddField(t,n={}){let{type:o,...r}=n;return this.runTyped("schema",{name:t,options:{...r,fieldType:o,subcommand:"add-field"}})}schemaRemoveField(t,n={}){return this.runTyped("schema",{name:t,options:{...n,subcommand:"remove-field"}})}schemaListFields(){return this.runTyped("schema",{options:{subcommand:"list-fields"}})}schemaShowField(t){return this.runTyped("schema",{name:t,options:{subcommand:"show-field"}})}schemaApplyPreset(t,n={}){return this.runTyped("schema",{typePreset:t,options:{...n,subcommand:"apply-preset"}})}schemaInferTypes(t={}){return this.runTyped("schema",{options:{...t,subcommand:"add-type",infer:!0}})}schemaRenameType(t,n,o){return this.runTyped("schema",{name:t,options:{...o,subcommand:"rename-type",to:n}})}schemaRenameField(t,n,o,r){return this.runTyped("schema",{name:t,options:{...o,subcommand:"rename-field",to:n,...r?{fieldTypeScope:r}:{}}})}schemaRemapStatus(t,n,o){return this.runTyped("schema",{name:t,options:{...o,subcommand:"remap-status",to:n}})}schemaShowStatus(t){return this.runTyped("schema",{name:t,options:{subcommand:"show-status"}})}profile(t,n={}){return this.runTyped("profile",{options:{...n,subcommand:t}})}profileList(){return this.runTyped("profile",{options:{subcommand:"list"}})}profileShow(t){return this.runTyped("profile",{name:t,options:{subcommand:"show"}})}profileApply(t,n={}){return this.runTyped("profile",{name:t,options:{...n,subcommand:"apply"}})}profileLint(t){return this.runTyped("profile",{name:t,options:{subcommand:"lint"}})}validate(t={}){return this.runTyped("validate",{options:t})}health(t={}){return this.runTyped("health",{options:t})}gc(t={}){return this.runTyped("gc",{options:t})}assurance(t){return this.runTyped("assurance",{options:{...t,subcommand:t.action}})}historyRedact(t,n){return this.runTyped("history-redact",{id:t,options:n})}historyRepair(t,n={}){return this.runTyped("history-repair",{id:t,options:n})}historyRepairAll(t={}){return this.runTyped("history-repair",{options:{...t,all:!0}})}historyAttest(t={}){return this.runTyped("history-attest",{options:t})}historyCompact(t,n={}){return this.runTyped("history-compact",{id:t,options:n})}historyCompactBulk(t){return this.runTyped("history-compact",{options:t})}historyAuthorAcknowledge(t){return this.runTyped("history-author-acknowledge",{historyEvent:(t.events??[]).map(n=>`${n.item_id}:${String(n.line)}`),allActionable:t.all_actionable===!0,dryRun:t.dry_run===!0,planFingerprint:t.plan_fingerprint,limit:t.coordinate_limit,attributedAuthor:t.attributed_author,reviewer:t.reviewer,reason:t.reason})}plan(t,n,o={},r,i){return this.runTyped("plan",{fullChangedFields:!0,...n===void 0?{}:{id:n},...r===void 0?{}:{stepRef:r},...i===void 0?{}:{reorderTo:i},options:Pt(o,{subcommand:t})})}planCreate(t){return this.plan("create",void 0,t)}planShow(t,n={}){return this.plan("show",t,n)}planAddStep(t,n){return this.plan("add-step",t,n)}planUpdateStep(t,n,o){return this.plan("update-step",t,o,n)}planCompleteStep(t,n,o={}){return this.plan("complete-step",t,o,n)}planBlockStep(t,n,o){return this.plan("block-step",t,o,n)}planReorderStep(t,n,o,r={}){return this.plan("reorder-step",t,r,n,o)}planRemoveStep(t,n,o={}){return this.plan("remove-step",t,o,n)}planLink(t,n,o){return this.plan("link",t,o,n)}planUnlink(t,n,o){return this.plan("unlink",t,o,n)}planDecision(t,n){return this.plan("decision",t,n)}planDiscovery(t,n){return this.plan("discovery",t,n)}planValidation(t,n){return this.plan("validation",t,n)}planResume(t,n){return this.plan("resume",t,n)}planApprove(t,n={}){return this.plan("approve",t,n)}planMaterialize(t,n){return this.plan("materialize",t,n)}create(t={}){return this.runTyped("create",Q(t))}update(t,n={}){return this.runTyped("update",{id:t,...Q(n)})}reopen(t,n,o={}){return this.runTyped("item-reopen",{id:t,reason:n,fullChangedFields:!0,options:o})}close(t,n,o={}){return this.runTyped("close",{id:t,reason:n,...Q(o)})}claim(t,n={}){return this.runTyped("claim",{id:t,...Q(n)})}claimNext(t={}){return this.runTyped("claim",{next:!0,...Q(t)})}release(t,n={}){return this.runTyped("release",{id:t,...Q(n)})}copy(t,n={}){return this.runTyped("copy",{id:t,...Q(n)})}delete(t,n={}){return this.runTyped("delete",{id:t,...Q(n)})}restore(t,n,o={}){return this.runTyped("restore",{fullChangedFields:!0,id:t,options:{...o,target:n}})}focus(t,n={}){return this.runTyped("focus",{...t===void 0?{}:{id:t},...Q(n)})}startTask(t,n={}){return this.runTyped("start-task",{id:t,...Q(n)})}pauseTask(t,n={}){return this.runTyped("pause-task",{id:t,...Q(n)})}closeTask(t,n,o={}){return this.runTyped("close-task",{id:t,reason:n,...Q(o)})}extension(t,n={}){return this.runTyped("extension",{...t===void 0?{}:{target:t},options:n})}extensionList(t={}){return this.extension("list",t)}extensionActivate(t,n={}){return this.runTyped("extension-activate",{target:t,options:n})}extensionDeactivate(t,n={}){return this.runTyped("extension-deactivate",{target:t,options:n})}package(t,n={}){return this.runTyped("package",{...t===void 0?{}:{target:t},options:{...n,vocabulary:"package"}})}packageList(t={}){return this.package("list",t)}packageInstall(t,n={}){return this.runTyped("package-install",{target:t,options:n})}packageUninstall(t,n={}){return this.runTyped("package-uninstall",{target:t,options:n})}packageDoctor(t={}){return this.runTyped("package-doctor",{options:t})}packageManage(t,n={}){return this.runTyped("package-manage",{...t===void 0?{}:{target:t},options:n})}packageDescribe(t,n={}){return this.runTyped("package-describe",{...t===void 0?{}:{target:t},options:n})}packageReload(t={}){return this.runTyped("package-reload",{options:t})}packageCatalog(t={}){return this.runTyped("package-catalog",{options:t})}packageActivate(t,n={}){return this.runTyped("package-activate",{target:t,options:n})}packageDeactivate(t,n={}){return this.runTyped("package-deactivate",{target:t,options:n})}packageMigrate(t={}){return this.package(void 0,{...t,migrate:!0})}upgrade(t,n={}){return this.runTyped("upgrade",{...t===void 0?{}:{target:t},options:n})}};function RT(e={},t={}){return new b(t).context(e)}function xT(e={},t={}){return new b(t).list(e)}function OT(e={},t={}){return new b(t).listAllComplete(e)}function $T(e,t={},n={}){return new b(n).search(e,t)}function FT(e,t={},n={}){return new b(n).get(e,t)}function PT(e={},t={}){return new b(t).next(e)}function LT(e={},t={}){return new b(t).aggregate(e)}function NT(e={},t={}){return new b(t).stats(e)}function DT(e={},t={}){return new b(t).duplicates(e)}function MT(e,t={},n={}){return new b(n).comments(e,t)}function jT(e,t={},n={}){return new b(n).notes(e,t)}function GT(e,t={},n={}){return new b(n).learnings(e,t)}function UT(e,t={},n={}){return new b(n).files(e,t)}function qT(e,t={},n={}){return new b(n).filesDiscover(e,t)}function zT(e,t={}){return new b(t).filesLookup(e)}function HT(e,t={},n={}){return new b(n).docs(e,t)}function WT(e,t={},n={}){return new b(n).deps(e,t)}function VT(e,t={},n={},o={}){return new b(o).graph(e,t,n)}function BT(e,t,n={},o={}){return new b(o).append(e,t,n)}function KT(e,t={},n={}){return new b(n).init(e,t)}function JT(e,t,n,o,r={},i={}){return new b(i).config(e,t,n,o,r)}function YT(e,t={},n={}){return new b(n).schema(e,t)}function XT(e={}){return new b(e).schemaList()}function ZT(e,t={}){return new b(t).schemaShow(e)}function QT(e,t={},n={}){return new b(n).schemaAddType(e,t)}function eC(e,t={},n={}){return new b(n).schemaRemoveType(e,t)}function tC(e,t={},n={}){return new b(n).schemaAddStatus(e,t)}function nC(e,t={},n={}){return new b(n).schemaRemoveStatus(e,t)}function oC(e,t={},n={}){return new b(n).schemaAddField(e,t)}function rC(e,t={},n={}){return new b(n).schemaRemoveField(e,t)}function iC(e={}){return new b(e).schemaListFields()}function aC(e,t={}){return new b(t).schemaShowField(e)}function sC(e,t={},n={}){return new b(n).schemaApplyPreset(e,t)}function cC(e={},t={}){return new b(t).schemaInferTypes(e)}function lC(e,t,n,o={}){return new b(o).schemaRenameType(e,t,n)}function dC(e,t,n,o,r={}){return new b(r).schemaRenameField(e,t,n,o)}function mC(e,t,n,o={}){return new b(o).schemaRemapStatus(e,t,n)}function pC(e,t={}){return new b(t).schemaShowStatus(e)}function uC(e,t={},n={}){return new b(n).profile(e,t)}function _C(e={}){return new b(e).profileList()}function fC(e,t={}){return new b(t).profileShow(e)}function hC(e,t={},n={}){return new b(n).profileApply(e,t)}function gC(e,t={}){return new b(t).profileLint(e)}function yC(e={},t={}){return new b(t).validate(e)}function bC(e={},t={}){return new b(t).health(e)}function wC(e={},t={}){return new b(t).gc(e)}function vC(e,t,n={}){return new b(n).historyRedact(e,t)}function kC(e,t={},n={}){return new b(n).historyRepair(e,t)}function SC(e={},t={}){return new b(t).historyRepairAll(e)}function IC(e,t={},n={}){return new b(n).historyCompact(e,t)}function AC(e,t={}){return new b(t).historyCompactBulk(e)}function EC(e={},t={}){return new b(t).create(e)}function TC(e,t={},n={}){return new b(n).update(e,t)}function CC(e,t,n={},o={}){return new b(o).reopen(e,t,n)}function RC(e,t,n={},o={}){return new b(o).close(e,t,n)}function xC(e,t={},n={}){return new b(n).claim(e,t)}function OC(e={},t={}){return new b(t).claimNext(e)}function $C(e,t={},n={}){return new b(n).release(e,t)}function FC(e,t={},n={}){return new b(n).copy(e,t)}function PC(e,t={},n={}){return new b(n).delete(e,t)}function LC(e,t,n={},o={}){return new b(o).restore(e,t,n)}function NC(e,t={},n={}){return new b(n).focus(e,t)}function DC(e,t={},n={}){return new b(n).startTask(e,t)}function MC(e,t={},n={}){return new b(n).pauseTask(e,t)}function jC(e,t,n={},o={}){return new b(o).closeTask(e,t,n)}function GC(e,t={},n={}){return new b(n).extension(e,t)}function UC(e={},t={}){return new b(t).extensionList(e)}function qC(e,t={},n={}){return new b(n).extensionActivate(e,t)}function zC(e,t={},n={}){return new b(n).extensionDeactivate(e,t)}function HC(e,t={},n={}){return new b(n).package(e,t)}function WC(e={},t={}){return new b(t).packageList(e)}function VC(e,t={},n={}){return new b(n).packageInstall(e,t)}function BC(e,t={},n={}){return new b(n).packageUninstall(e,t)}function KC(e={},t={}){return new b(t).packageDoctor(e)}function JC(e,t={},n={}){return new b(n).packageManage(e,t)}function YC(e,t={},n={}){return new b(n).packageDescribe(e,t)}function XC(e={},t={}){return new b(t).packageReload(e)}function ZC(e={},t={}){return new b(t).packageCatalog(e)}function QC(e,t={},n={}){return new b(n).packageActivate(e,t)}function eR(e,t={},n={}){return new b(n).packageDeactivate(e,t)}function tR(e,t={},n={}){return new b(n).upgrade(e,t)}async function nR(e,t={}){let n=typeof e=="string"?{...t,pmRoot:e}:e??t,o={json:!0,quiet:n.quiet??!0,noExtensions:n.noExtensions??!1,noPager:!0,profile:n.profile??!1,path:n.pmRoot};return hn(n,o)}var dp=Oi(),li=new Gg;function no(){fo(Ii()),ho(Ai()),go(Ei()),yo(Ti()),bo(Ci()),wo(Ri()),vo(xi())}async function up(e,t,n,o){return _o(()=>t===void 0?dp.read(()=>mp(e,n,o)):dp.write(()=>qg(t,()=>mp(e,n,o))))}async function oR(e,t){let n=e.cwd;if(li.getStore()===!0&&n===void 0&&e.noExtensions===!0){let r=A(process.cwd(),e.path);return _o(()=>Fn({pmRoot:r},t))}let o=n??process.cwd();return up(vn({path:e.path,noExtensions:e.noExtensions}),n,o,()=>li.run(!0,t))}async function mp(e,t,n){let o=A(t,e.path);if(e.noExtensions)return no(),Fn({pmRoot:o},()=>n(null));if(!await ye(we(o)))return no(),n(null);let r=null,i;try{let a=await T(o),s=await Zt({pmRoot:o,settings:a,cwd:t,noExtensions:!1}),c=await en({...s,loaded:s.loaded});i={loadResult:s,activationResult:c},fo(c.hooks),ho(c.commands),go(c.parsers),yo(c.preflight),bo(c.services),wo(c.renderers),vo(c.registrations),r={registrations:c.registrations,commands:c.commands,pmRoot:o,packages:s.loaded}}catch(a){no(),console.error("[pm-sdk] extension activation failed; continuing without active extensions:",a)}try{return await Fn({pmRoot:o,packages:r?.packages},()=>n(r))}finally{no(),i&&await Qt(i.loadResult,i.activationResult).catch(()=>{})}}function _p(e,t){let n=Me(e);return t?.registrations.commands.find(o=>Me(o.action)===n)?.command??t?.commands.handlers.find(o=>Me(o.command)===n)?.command}async function Ug(e,t,n,o,r){if(!r)throw new p(`Unsupported native pm action: ${e}`,u.USAGE);let i=_p(e,r);if(!i)throw new p(`Unsupported native pm action: ${e}`,u.USAGE);let a=typeof o.author=="string"&&o.author.trim()?o.author.trim():"pm-extension",s=await Li({command:Sn(i),args:U(n.args??t.args),options:Mo(t,n),global:o,pm_root:r.pmRoot,sdk:kl(r.pmRoot,b.forActiveExtensionHost({pmRoot:r.pmRoot,author:a}),a,Sn(i))});if(!s.handled){let c=s.warnings.length>0?` (${s.warnings.join(", ")})`:"";throw new p(`Unsupported native pm action: ${e}${c}`,u.USAGE)}return s.result}async function qg(e,t){let n=process.cwd();process.chdir(e);try{return await t()}finally{process.chdir(n)}}function zg(e){let t=K(e,"action"),n=Me(t),o=fe(cr,n),r=o?.action??n,i={...e,action:r};return o?.options!==void 0&&(i.options={...o.options,...ao(e.options)}),r==="package"&&(i.options={...ao(i.options),vocabulary:"package"}),{action:r,args:i}}async function Hg(e){let t=zg(e),n=vn(t.args),o=mc(t.action),r=h(t.args,"cwd"),i=r??process.cwd();t.action==="init"&&(n[rc]=i),(t.action!=="init"||n.path!==void 0||(process.env.PM_PATH?.trim().length??0)>0)&&(n.path=A(i,n.path));try{return t.action==="history-attest"?await ci(t.action,t.args,n,null):e[pp]===!0||li.getStore()===!0?await ci(t.action,t.args,n,null):await up(n,r,i,a=>ci(t.action,t.args,n,a))}finally{o&&Wr()}}function rR(e=Si){return e.map(t=>{let n=Me(t),o=fe(cr,n),r=o?.action??n,i=fe(Hr,r)!==void 0;return{action:t,resolved_action:r,covered:i,route:i?o?"alias":"native":"missing"}})}async function ci(e,t,n,o){let r=Do(t,e),i=fe(Hr,e),a=i?void 0:_p(e,o),s=a===void 0?e:`extension:${a}`;Ui(s,r),qi(s,r);let c={action:e,args:t,options:r,id:h(t,"id"),force:t.force===!0||r.force===!0,global:n,activeExtensions:o},l=i?await i(c):await Ug(e,t,r,n,o);if(e==="history-attest")return l;{r.resolvedOutputFormat="json";let m=Bi(s,r,l);return await yl(A(process.cwd(),n.path),m),m}}var Wg={closeManyOptionsFromFlat:In,extensionOptionsFromArgs:Mo,globalOptions:vn,mutationListOptions:pc,normalizeActionName:Me,normalizeCommandPath:Sn,normalizeMcpUpdateOptions:_c,normalizeMcpOptionsArrays:dc,optionsWithAuthor:Do,readRequiredString:K,readScalarString:sc,readScalarStringAllowBlank:cc,readStringArray:U,updateManyOptionsFromFlat:An,withAddNoteOption:Lt,withFilesDiscoveryOptions:kn,withMutationCompaction:j};(process.env.NODE_ENV==="test"||process.env.VITEST!==void 0||process.env.VITEST_WORKER_ID!==void 0)&&(globalThis.__pmCliActionRunnerTestHooks=Wg);export{nr as a,gl as b,bp as c,vp as d,kp as e,Fn as f,Gt as g,Nn as h,kl as i,$p as j,Dn as k,sr as l,Sl as m,Mn as n,jp as o,Tl as p,xl as q,$l as r,Nl as s,pr as t,ur as u,_r as v,fr as w,uu as x,ql as y,vr as z,ed as A,id as B,ad as C,at as D,$r as E,H_ as F,lw as G,dw as H,Lr as I,cd as J,Ew as K,Tw as L,dd as M,ud as N,Vw as O,cf as P,qr as Q,df as R,mf as S,Ed as T,Td as U,Cd as V,Rd as W,xd as X,gv as Y,yv as Z,bv as _,wv as $,Od as aa,$d as ba,Ld as ca,Md as da,jd as ea,Gd as fa,K as ga,Wr as ha,KS as ia,JS as ja,YS as ka,XS as la,ZS as ma,Xd as na,QS as oa,uh as pa,hh as qa,wh as ra,vh as sa,kh as ta,z as ua,Sh as va,Ih as wa,Ah as xa,Eh as ya,Br as za,tm as Aa,lt as Ba,Vr as Ca,nm as Da,Th as Ea,om as Fa,Ch as Ga,Rh as Ha,xh as Ia,Oh as Ja,$h as Ka,jh as La,sm as Ma,Gh as Na,Bh as Oa,eg as Pa,ng as Qa,_g as Ra,jg as Sa,b as Ta,RT as Ua,xT as Va,OT as Wa,$T as Xa,FT as Ya,PT as Za,LT as _a,NT as $a,DT as ab,MT as bb,jT as cb,GT as db,UT as eb,qT as fb,zT as gb,HT as hb,WT as ib,VT as jb,BT as kb,KT as lb,JT as mb,YT as nb,XT as ob,ZT as pb,QT as qb,eC as rb,tC as sb,nC as tb,oC as ub,rC as vb,iC as wb,aC as xb,sC as yb,cC as zb,lC as Ab,dC as Bb,mC as Cb,pC as Db,uC as Eb,_C as Fb,fC as Gb,hC as Hb,gC as Ib,yC as Jb,bC as Kb,wC as Lb,vC as Mb,kC as Nb,SC as Ob,IC as Pb,AC as Qb,EC as Rb,TC as Sb,CC as Tb,RC as Ub,xC as Vb,OC as Wb,$C as Xb,FC as Yb,PC as Zb,LC as _b,NC as $b,DC as ac,MC as bc,jC as cc,GC as dc,UC as ec,qC as fc,zC as gc,HC as hc,WC as ic,VC as jc,BC as kc,KC as lc,JC as mc,YC as nc,XC as oc,ZC as pc,QC as qc,eR as rc,tR as sc,nR as tc,oR as uc,Hg as vc,rR as wc};
2248
- //# sourceMappingURL=chunk-UBTYYZIE.js.map
2247
+ `);let i=[];if(e.mode!=="keyword")try{M(e.progressEnabled,"writing vectorization status ledger"),await Cs(e.pmRoot,e.vectorizationLedgerEntries,e.vectorizationEmbeddingMetadata)}catch(a){i.push(`search_vectorization_status_ledger_write_failed:${a instanceof Error?a.message:String(a)}`)}return i}async function jg(e,t){let n=yg(e.mode),o=gg(e),r=e.full===!0;M(o,`start mode=${n}`);let i=A(process.cwd(),t.path);await F(i);let a=hs(await T(i)).settings,s=null;try{s=await ne(i,gs,a.locks.ttl_seconds,R(void 0,"pm-reindex"),!1,a.governance.force_required_for_stale_lock,a.locks.wait_ms)}catch(c){throw c instanceof p&&c.exitCode===u.CONFLICT?new p("Another pm reindex run is already active for this project. Wait for it to finish before starting a new keyword, semantic, or hybrid reindex.",u.CONFLICT,{code:"reindex_already_running",type:"urn:pm-cli:error:reindex_already_running",why:"Semantic reindex can be expensive and duplicate runs compete for the same local embedding model and vector store.",nextSteps:["Check active pm reindex processes before starting another reindex.","Rerun with --progress when you need non-interactive visibility."]}):c}try{let c=vg(a),l=kg(a),m=Cg({requestedMode:n,pmRoot:i,settings:a,extensionEmbedding:c,extensionVectorAdapter:l}),d=n;M(o,"loading item corpus");let _=await Rg({pmRoot:i,settings:a}),f=_.warnings,{documentCandidates:w,metadataDocuments:k}=_;M(o,`loaded_items=${k.length}`);let y=S(),v=Tg(d,y,k),g=Kt.join(i,ri),I=Kt.join(i,ii),x=d==="keyword"?await si(i,w,a.schema,f):k,N=[],W={},O=null,C=Eg(d);if(d==="keyword"&&await xg({pmRoot:i,settings:a,forceFullSemantic:r,extensionEmbedding:c,reindexWarnings:f}),d!=="keyword"){let te=await Dg({pmRoot:i,settings:a,requestedMode:n,activeEmbeddingProvider:m.activeEmbeddingProvider,activeVectorStore:m.activeVectorStore,extensionEmbedding:c,extensionVectorAdapter:l,documentCandidates:w,metadataDocuments:k,documentsForKeywordArtifacts:x,forceFullSemantic:r,reindexWarnings:f,semanticWarnings:N,semanticSummary:C,progressEnabled:o});x=te.documentsForKeywordArtifacts,W=te.vectorizationLedgerEntries,O=te.vectorizationEmbeddingMetadata}let ae=await Mg({pmRoot:i,mode:d,manifest:v,documentsForKeywordArtifacts:x,settings:a,vectorizationLedgerEntries:W,vectorizationEmbeddingMetadata:O,progressEnabled:o}),Re=[...await G({path:g,scope:"project",op:"reindex:manifest"}),...await G({path:I,scope:"project",op:"reindex:embeddings"}),...await Pi({mode:d,total_items:k.length})];return M(o,"done"),{ok:!0,mode:d,total_items:k.length,semantic:C,artifacts:{manifest:ri,embeddings:ii},warnings:[...f,...N,...ae,...Re],generated_at:y}}finally{await s?.()}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="710f1406-c114-56c7-9f0b-4f7c20b1eea1")}catch{}})();var pp=Symbol("pm.active-extension-host-context");function Q(e){return{fullChangedFields:!0,options:e}}var b=class e{defaults;constructor(t={}){this.defaults={...t.pmRoot===void 0?{}:{path:t.pmRoot},...t.cwd===void 0?{}:{cwd:t.cwd},...t.author===void 0?{}:{author:t.author},...t.noExtensions===void 0?{}:{noExtensions:t.noExtensions}}}static forActiveExtensionHost(t){let n=new e({...t,noExtensions:!0});return n.defaults[pp]=!0,n}run(t,n={}){return Hg({...this.defaults,...n,action:t})}runTyped(t,n={}){return this.run(t,n)}context(t={}){return this.runTyped("context",{options:t})}listAllItemMetadataLight(){return Il(this.defaults.path,this.defaults.cwd)}list(t={}){return this.runTyped("list",{options:t})}async listAllComplete(t={}){return Mn(await this.list(sr(t)))}search(t,n={}){return this.runTyped("search",{query:t,options:n})}get(t,n={}){return this.runTyped("get",{id:t,options:n})}next(t={}){return this.runTyped("next",{options:t})}aggregate(t={}){return this.runTyped("aggregate",{options:t})}stats(t={}){return this.runTyped("stats",{options:t})}duplicates(t={}){return this.runTyped("duplicates",{options:t})}comments(t,n={}){return this.runTyped("comments",{id:t,options:n})}notes(t,n={}){return this.runTyped("notes",{id:t,options:n})}learnings(t,n={}){return this.runTyped("learnings",{id:t,options:n})}files(t,n={}){return this.runTyped("files",{id:t,options:n})}filesDiscover(t,n={}){return this.runTyped("files-discover",{id:t,options:n})}filesLookup(t){return this.runTyped("files-lookup",{options:t})}docs(t,n={}){return this.runTyped("docs",{id:t,options:n})}deps(t,n={}){return this.runTyped("deps",{id:t,options:n})}graph(t,n={},o={}){return this.runTyped("graph",{subcommand:t,...n,options:o})}append(t,n,o={}){return this.runTyped("append",{id:t,...Q(Pt(o,{body:n}))})}init(t,n={}){return this.runTyped("init",{...t===void 0?{}:{prefix:t},options:n})}config(t,n,o,r,i={}){return this.runTyped("config",{scope:t,configAction:n,...o===void 0?{}:{key:o},...r===void 0?{}:{value:r},options:i})}schema(t,n={}){return this.runTyped("schema",{options:{...n,subcommand:t}})}workflowPolicy(t,n,o={}){return this.runTyped("schema",{name:n,options:{...o,subcommand:t}})}schemaList(){return this.runTyped("schema",{options:{subcommand:"list"}})}schemaShow(t){return this.runTyped("schema",{name:t,options:{subcommand:"show"}})}schemaAddType(t,n={}){return this.runTyped("schema",{name:t,options:{...n,subcommand:"add-type"}})}schemaRemoveType(t,n={}){return this.runTyped("schema",{name:t,options:{...n,subcommand:"remove-type"}})}schemaAddStatus(t,n={}){return this.runTyped("schema",{name:t,options:{...n,subcommand:"add-status"}})}schemaRemoveStatus(t,n={}){return this.runTyped("schema",{name:t,options:{...n,subcommand:"remove-status"}})}schemaAddField(t,n={}){let{type:o,...r}=n;return this.runTyped("schema",{name:t,options:{...r,fieldType:o,subcommand:"add-field"}})}schemaRemoveField(t,n={}){return this.runTyped("schema",{name:t,options:{...n,subcommand:"remove-field"}})}schemaListFields(){return this.runTyped("schema",{options:{subcommand:"list-fields"}})}schemaShowField(t){return this.runTyped("schema",{name:t,options:{subcommand:"show-field"}})}schemaApplyPreset(t,n={}){return this.runTyped("schema",{typePreset:t,options:{...n,subcommand:"apply-preset"}})}schemaInferTypes(t={}){return this.runTyped("schema",{options:{...t,subcommand:"add-type",infer:!0}})}schemaRenameType(t,n,o){return this.runTyped("schema",{name:t,options:{...o,subcommand:"rename-type",to:n}})}schemaRenameField(t,n,o,r){return this.runTyped("schema",{name:t,options:{...o,subcommand:"rename-field",to:n,...r?{fieldTypeScope:r}:{}}})}schemaRemapStatus(t,n,o){return this.runTyped("schema",{name:t,options:{...o,subcommand:"remap-status",to:n}})}schemaShowStatus(t){return this.runTyped("schema",{name:t,options:{subcommand:"show-status"}})}profile(t,n={}){return this.runTyped("profile",{options:{...n,subcommand:t}})}profileList(){return this.runTyped("profile",{options:{subcommand:"list"}})}profileShow(t){return this.runTyped("profile",{name:t,options:{subcommand:"show"}})}profileApply(t,n={}){return this.runTyped("profile",{name:t,options:{...n,subcommand:"apply"}})}profileLint(t){return this.runTyped("profile",{name:t,options:{subcommand:"lint"}})}validate(t={}){return this.runTyped("validate",{options:t})}health(t={}){return this.runTyped("health",{options:t})}gc(t={}){return this.runTyped("gc",{options:t})}assurance(t){return this.runTyped("assurance",{options:{...t,subcommand:t.action}})}historyRedact(t,n){return this.runTyped("history-redact",{id:t,options:n})}historyRepair(t,n={}){return this.runTyped("history-repair",{id:t,options:n})}historyRepairAll(t={}){return this.runTyped("history-repair",{options:{...t,all:!0}})}historyAttest(t={}){return this.runTyped("history-attest",{options:t})}historyCompact(t,n={}){return this.runTyped("history-compact",{id:t,options:n})}historyCompactBulk(t){return this.runTyped("history-compact",{options:t})}historyAuthorAcknowledge(t){return this.runTyped("history-author-acknowledge",{historyEvent:(t.events??[]).map(n=>`${n.item_id}:${String(n.line)}`),allActionable:t.all_actionable===!0,dryRun:t.dry_run===!0,planFingerprint:t.plan_fingerprint,limit:t.coordinate_limit,attributedAuthor:t.attributed_author,reviewer:t.reviewer,reason:t.reason})}plan(t,n,o={},r,i){return this.runTyped("plan",{fullChangedFields:!0,...n===void 0?{}:{id:n},...r===void 0?{}:{stepRef:r},...i===void 0?{}:{reorderTo:i},options:Pt(o,{subcommand:t})})}planCreate(t){return this.plan("create",void 0,t)}planShow(t,n={}){return this.plan("show",t,n)}planAddStep(t,n){return this.plan("add-step",t,n)}planUpdateStep(t,n,o){return this.plan("update-step",t,o,n)}planCompleteStep(t,n,o={}){return this.plan("complete-step",t,o,n)}planBlockStep(t,n,o){return this.plan("block-step",t,o,n)}planReorderStep(t,n,o,r={}){return this.plan("reorder-step",t,r,n,o)}planRemoveStep(t,n,o={}){return this.plan("remove-step",t,o,n)}planLink(t,n,o){return this.plan("link",t,o,n)}planUnlink(t,n,o){return this.plan("unlink",t,o,n)}planDecision(t,n){return this.plan("decision",t,n)}planDiscovery(t,n){return this.plan("discovery",t,n)}planValidation(t,n){return this.plan("validation",t,n)}planResume(t,n){return this.plan("resume",t,n)}planApprove(t,n={}){return this.plan("approve",t,n)}planMaterialize(t,n){return this.plan("materialize",t,n)}create(t={}){return this.runTyped("create",Q(t))}update(t,n={}){return this.runTyped("update",{id:t,...Q(n)})}reopen(t,n,o={}){return this.runTyped("item-reopen",{id:t,reason:n,fullChangedFields:!0,options:o})}close(t,n,o={}){return this.runTyped("close",{id:t,reason:n,...Q(o)})}claim(t,n={}){return this.runTyped("claim",{id:t,...Q(n)})}claimNext(t={}){return this.runTyped("claim",{next:!0,...Q(t)})}release(t,n={}){return this.runTyped("release",{id:t,...Q(n)})}copy(t,n={}){return this.runTyped("copy",{id:t,...Q(n)})}delete(t,n={}){return this.runTyped("delete",{id:t,...Q(n)})}restore(t,n,o={}){return this.runTyped("restore",{fullChangedFields:!0,id:t,options:{...o,target:n}})}focus(t,n={}){return this.runTyped("focus",{...t===void 0?{}:{id:t},...Q(n)})}startTask(t,n={}){return this.runTyped("start-task",{id:t,...Q(n)})}pauseTask(t,n={}){return this.runTyped("pause-task",{id:t,...Q(n)})}closeTask(t,n,o={}){return this.runTyped("close-task",{id:t,reason:n,...Q(o)})}extension(t,n={}){return this.runTyped("extension",{...t===void 0?{}:{target:t},options:n})}extensionList(t={}){return this.extension("list",t)}extensionActivate(t,n={}){return this.runTyped("extension-activate",{target:t,options:n})}extensionDeactivate(t,n={}){return this.runTyped("extension-deactivate",{target:t,options:n})}package(t,n={}){return this.runTyped("package",{...t===void 0?{}:{target:t},options:{...n,vocabulary:"package"}})}packageList(t={}){return this.package("list",t)}packageInstall(t,n={}){return this.runTyped("package-install",{target:t,options:n})}packageUninstall(t,n={}){return this.runTyped("package-uninstall",{target:t,options:n})}packageDoctor(t={}){return this.runTyped("package-doctor",{options:t})}packageManage(t,n={}){return this.runTyped("package-manage",{...t===void 0?{}:{target:t},options:n})}packageDescribe(t,n={}){return this.runTyped("package-describe",{...t===void 0?{}:{target:t},options:n})}packageReload(t={}){return this.runTyped("package-reload",{options:t})}packageCatalog(t={}){return this.runTyped("package-catalog",{options:t})}packageActivate(t,n={}){return this.runTyped("package-activate",{target:t,options:n})}packageDeactivate(t,n={}){return this.runTyped("package-deactivate",{target:t,options:n})}packageMigrate(t={}){return this.package(void 0,{...t,migrate:!0})}upgrade(t,n={}){return this.runTyped("upgrade",{...t===void 0?{}:{target:t},options:n})}};function RT(e={},t={}){return new b(t).context(e)}function xT(e={},t={}){return new b(t).list(e)}function OT(e={},t={}){return new b(t).listAllComplete(e)}function $T(e,t={},n={}){return new b(n).search(e,t)}function FT(e,t={},n={}){return new b(n).get(e,t)}function PT(e={},t={}){return new b(t).next(e)}function LT(e={},t={}){return new b(t).aggregate(e)}function NT(e={},t={}){return new b(t).stats(e)}function DT(e={},t={}){return new b(t).duplicates(e)}function MT(e,t={},n={}){return new b(n).comments(e,t)}function jT(e,t={},n={}){return new b(n).notes(e,t)}function GT(e,t={},n={}){return new b(n).learnings(e,t)}function UT(e,t={},n={}){return new b(n).files(e,t)}function qT(e,t={},n={}){return new b(n).filesDiscover(e,t)}function zT(e,t={}){return new b(t).filesLookup(e)}function HT(e,t={},n={}){return new b(n).docs(e,t)}function WT(e,t={},n={}){return new b(n).deps(e,t)}function VT(e,t={},n={},o={}){return new b(o).graph(e,t,n)}function BT(e,t,n={},o={}){return new b(o).append(e,t,n)}function KT(e,t={},n={}){return new b(n).init(e,t)}function JT(e,t,n,o,r={},i={}){return new b(i).config(e,t,n,o,r)}function YT(e,t={},n={}){return new b(n).schema(e,t)}function XT(e={}){return new b(e).schemaList()}function ZT(e,t={}){return new b(t).schemaShow(e)}function QT(e,t={},n={}){return new b(n).schemaAddType(e,t)}function eC(e,t={},n={}){return new b(n).schemaRemoveType(e,t)}function tC(e,t={},n={}){return new b(n).schemaAddStatus(e,t)}function nC(e,t={},n={}){return new b(n).schemaRemoveStatus(e,t)}function oC(e,t={},n={}){return new b(n).schemaAddField(e,t)}function rC(e,t={},n={}){return new b(n).schemaRemoveField(e,t)}function iC(e={}){return new b(e).schemaListFields()}function aC(e,t={}){return new b(t).schemaShowField(e)}function sC(e,t={},n={}){return new b(n).schemaApplyPreset(e,t)}function cC(e={},t={}){return new b(t).schemaInferTypes(e)}function lC(e,t,n,o={}){return new b(o).schemaRenameType(e,t,n)}function dC(e,t,n,o,r={}){return new b(r).schemaRenameField(e,t,n,o)}function mC(e,t,n,o={}){return new b(o).schemaRemapStatus(e,t,n)}function pC(e,t={}){return new b(t).schemaShowStatus(e)}function uC(e,t={},n={}){return new b(n).profile(e,t)}function _C(e={}){return new b(e).profileList()}function fC(e,t={}){return new b(t).profileShow(e)}function hC(e,t={},n={}){return new b(n).profileApply(e,t)}function gC(e,t={}){return new b(t).profileLint(e)}function yC(e={},t={}){return new b(t).validate(e)}function bC(e={},t={}){return new b(t).health(e)}function wC(e={},t={}){return new b(t).gc(e)}function vC(e,t,n={}){return new b(n).historyRedact(e,t)}function kC(e,t={},n={}){return new b(n).historyRepair(e,t)}function SC(e={},t={}){return new b(t).historyRepairAll(e)}function IC(e,t={},n={}){return new b(n).historyCompact(e,t)}function AC(e,t={}){return new b(t).historyCompactBulk(e)}function EC(e={},t={}){return new b(t).create(e)}function TC(e,t={},n={}){return new b(n).update(e,t)}function CC(e,t,n={},o={}){return new b(o).reopen(e,t,n)}function RC(e,t,n={},o={}){return new b(o).close(e,t,n)}function xC(e,t={},n={}){return new b(n).claim(e,t)}function OC(e={},t={}){return new b(t).claimNext(e)}function $C(e,t={},n={}){return new b(n).release(e,t)}function FC(e,t={},n={}){return new b(n).copy(e,t)}function PC(e,t={},n={}){return new b(n).delete(e,t)}function LC(e,t,n={},o={}){return new b(o).restore(e,t,n)}function NC(e,t={},n={}){return new b(n).focus(e,t)}function DC(e,t={},n={}){return new b(n).startTask(e,t)}function MC(e,t={},n={}){return new b(n).pauseTask(e,t)}function jC(e,t,n={},o={}){return new b(o).closeTask(e,t,n)}function GC(e,t={},n={}){return new b(n).extension(e,t)}function UC(e={},t={}){return new b(t).extensionList(e)}function qC(e,t={},n={}){return new b(n).extensionActivate(e,t)}function zC(e,t={},n={}){return new b(n).extensionDeactivate(e,t)}function HC(e,t={},n={}){return new b(n).package(e,t)}function WC(e={},t={}){return new b(t).packageList(e)}function VC(e,t={},n={}){return new b(n).packageInstall(e,t)}function BC(e,t={},n={}){return new b(n).packageUninstall(e,t)}function KC(e={},t={}){return new b(t).packageDoctor(e)}function JC(e,t={},n={}){return new b(n).packageManage(e,t)}function YC(e,t={},n={}){return new b(n).packageDescribe(e,t)}function XC(e={},t={}){return new b(t).packageReload(e)}function ZC(e={},t={}){return new b(t).packageCatalog(e)}function QC(e,t={},n={}){return new b(n).packageActivate(e,t)}function eR(e,t={},n={}){return new b(n).packageDeactivate(e,t)}function tR(e,t={},n={}){return new b(n).upgrade(e,t)}async function nR(e,t={}){let n=typeof e=="string"?{...t,pmRoot:e}:e??t,o={json:!0,quiet:n.quiet??!0,noExtensions:n.noExtensions??!1,noPager:!0,profile:n.profile??!1,path:n.pmRoot};return hn(n,o)}var dp=Oi(),li=new Gg;function no(){fo(Ii()),ho(Ai()),go(Ei()),yo(Ti()),bo(Ci()),wo(Ri()),vo(xi())}async function up(e,t,n,o){return _o(()=>t===void 0?dp.read(()=>mp(e,n,o)):dp.write(()=>qg(t,()=>mp(e,n,o))))}async function oR(e,t){let n=e.cwd;if(li.getStore()===!0&&n===void 0&&e.noExtensions===!0){let r=A(process.cwd(),e.path);return _o(()=>Fn({pmRoot:r},t))}let o=n??process.cwd();return up(vn({path:e.path,noExtensions:e.noExtensions}),n,o,()=>li.run(!0,t))}async function mp(e,t,n){let o=A(t,e.path);if(e.noExtensions)return no(),Fn({pmRoot:o},()=>n(null));if(!await ye(we(o)))return no(),n(null);let r=null,i;try{let a=await T(o),s=await Zt({pmRoot:o,settings:a,cwd:t,noExtensions:!1}),c=await en({...s,loaded:s.loaded});i={loadResult:s,activationResult:c},fo(c.hooks),ho(c.commands),go(c.parsers),yo(c.preflight),bo(c.services),wo(c.renderers),vo(c.registrations),r={registrations:c.registrations,commands:c.commands,pmRoot:o,packages:s.loaded}}catch(a){no(),console.error("[pm-sdk] extension activation failed; continuing without active extensions:",a)}try{return await Fn({pmRoot:o,packages:r?.packages},()=>n(r))}finally{no(),i&&await Qt(i.loadResult,i.activationResult).catch(()=>{})}}function _p(e,t){let n=Me(e);return t?.registrations.commands.find(o=>Me(o.action)===n)?.command??t?.commands.handlers.find(o=>Me(o.command)===n)?.command}async function Ug(e,t,n,o,r){if(!r)throw new p(`Unsupported native pm action: ${e}`,u.USAGE);let i=_p(e,r);if(!i)throw new p(`Unsupported native pm action: ${e}`,u.USAGE);let a=typeof o.author=="string"&&o.author.trim()?o.author.trim():"pm-extension",s=await Li({command:Sn(i),args:U(n.args??t.args),options:Mo(t,n),global:o,pm_root:r.pmRoot,sdk:kl(r.pmRoot,b.forActiveExtensionHost({pmRoot:r.pmRoot,author:a}),a,Sn(i))});if(!s.handled){let c=s.warnings.length>0?` (${s.warnings.join(", ")})`:"";throw new p(`Unsupported native pm action: ${e}${c}`,u.USAGE)}return s.result}async function qg(e,t){let n=process.cwd();process.chdir(e);try{return await t()}finally{process.chdir(n)}}function zg(e){let t=K(e,"action"),n=Me(t),o=fe(cr,n),r=o?.action??n,i={...e,action:r};return o?.options!==void 0&&(i.options={...o.options,...ao(e.options)}),r==="package"&&(i.options={...ao(i.options),vocabulary:"package"}),{action:r,args:i}}async function Hg(e){let t=zg(e),n=vn(t.args),o=mc(t.action),r=h(t.args,"cwd"),i=r??process.cwd();t.action==="init"&&(n[rc]=i),(t.action!=="init"||n.path!==void 0||(process.env.PM_PATH?.trim().length??0)>0)&&(n.path=A(i,n.path));try{return t.action==="history-attest"?await ci(t.action,t.args,n,null):e[pp]===!0||li.getStore()===!0?await ci(t.action,t.args,n,null):await up(n,r,i,a=>ci(t.action,t.args,n,a))}finally{o&&Wr()}}function rR(e=Si){return e.map(t=>{let n=Me(t),o=fe(cr,n),r=o?.action??n,i=fe(Hr,r)!==void 0;return{action:t,resolved_action:r,covered:i,route:i?o?"alias":"native":"missing"}})}async function ci(e,t,n,o){let r=Do(t,e),i=fe(Hr,e),a=i?void 0:_p(e,o),s=a===void 0?e:`extension:${a}`;Mi(s,r),ji(s,r);let c={action:e,args:t,options:r,id:h(t,"id"),force:t.force===!0||r.force===!0,global:n,activeExtensions:o},l=i?await i(c):await Ug(e,t,r,n,o);if(e==="history-attest")return l;{r.resolvedOutputFormat="json";let m=Bi(s,r,l);return await yl(A(process.cwd(),n.path),m),m}}var Wg={closeManyOptionsFromFlat:In,extensionOptionsFromArgs:Mo,globalOptions:vn,mutationListOptions:pc,normalizeActionName:Me,normalizeCommandPath:Sn,normalizeMcpUpdateOptions:_c,normalizeMcpOptionsArrays:dc,optionsWithAuthor:Do,readRequiredString:K,readScalarString:sc,readScalarStringAllowBlank:cc,readStringArray:U,updateManyOptionsFromFlat:An,withAddNoteOption:Lt,withFilesDiscoveryOptions:kn,withMutationCompaction:j};(process.env.NODE_ENV==="test"||process.env.VITEST!==void 0||process.env.VITEST_WORKER_ID!==void 0)&&(globalThis.__pmCliActionRunnerTestHooks=Wg);export{nr as a,gl as b,bp as c,vp as d,kp as e,Fn as f,Gt as g,Nn as h,kl as i,$p as j,Dn as k,sr as l,Sl as m,Mn as n,jp as o,Tl as p,xl as q,$l as r,Nl as s,pr as t,ur as u,_r as v,fr as w,uu as x,ql as y,vr as z,ed as A,id as B,ad as C,at as D,$r as E,H_ as F,lw as G,dw as H,Lr as I,cd as J,Ew as K,Tw as L,dd as M,ud as N,Vw as O,cf as P,qr as Q,df as R,mf as S,Ed as T,Td as U,Cd as V,Rd as W,xd as X,gv as Y,yv as Z,bv as _,wv as $,Od as aa,$d as ba,Ld as ca,Md as da,jd as ea,Gd as fa,K as ga,Wr as ha,KS as ia,JS as ja,YS as ka,XS as la,ZS as ma,Xd as na,QS as oa,uh as pa,hh as qa,wh as ra,vh as sa,kh as ta,z as ua,Sh as va,Ih as wa,Ah as xa,Eh as ya,Br as za,tm as Aa,lt as Ba,Vr as Ca,nm as Da,Th as Ea,om as Fa,Ch as Ga,Rh as Ha,xh as Ia,Oh as Ja,$h as Ka,jh as La,sm as Ma,Gh as Na,Bh as Oa,eg as Pa,ng as Qa,_g as Ra,jg as Sa,b as Ta,RT as Ua,xT as Va,OT as Wa,$T as Xa,FT as Ya,PT as Za,LT as _a,NT as $a,DT as ab,MT as bb,jT as cb,GT as db,UT as eb,qT as fb,zT as gb,HT as hb,WT as ib,VT as jb,BT as kb,KT as lb,JT as mb,YT as nb,XT as ob,ZT as pb,QT as qb,eC as rb,tC as sb,nC as tb,oC as ub,rC as vb,iC as wb,aC as xb,sC as yb,cC as zb,lC as Ab,dC as Bb,mC as Cb,pC as Db,uC as Eb,_C as Fb,fC as Gb,hC as Hb,gC as Ib,yC as Jb,bC as Kb,wC as Lb,vC as Mb,kC as Nb,SC as Ob,IC as Pb,AC as Qb,EC as Rb,TC as Sb,CC as Tb,RC as Ub,xC as Vb,OC as Wb,$C as Xb,FC as Yb,PC as Zb,LC as _b,NC as $b,DC as ac,MC as bc,jC as cc,GC as dc,UC as ec,qC as fc,zC as gc,HC as hc,WC as ic,VC as jc,BC as kc,KC as lc,JC as mc,YC as nc,XC as oc,ZC as pc,QC as qc,eR as rc,tR as sc,nR as tc,oR as uc,Hg as vc,rR as wc};
2248
+ //# sourceMappingURL=chunk-WBBW3WQX.js.map