@unbrained/pm-cli 2026.8.4 → 2026.8.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (253) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/CHANGELOG.md +53 -13
  3. package/dist/cli/error-guidance.js +4 -4
  4. package/dist/cli/main.js +12 -37
  5. package/dist/cli/register-setup.d.ts +1 -1
  6. package/dist/cli/register-setup.js +46 -20
  7. package/dist/cli/register-structured-mutation.d.ts +2 -0
  8. package/dist/cli/register-structured-mutation.js +124 -12
  9. package/dist/cli-bundle/bundle-manifest.json +397 -397
  10. package/dist/cli-bundle/chunks/append-XAJ5Z4XS.js +2 -0
  11. package/dist/cli-bundle/chunks/{chunk-QVO3VTA4.js → chunk-343QETLI.js} +2 -2
  12. package/dist/cli-bundle/chunks/{chunk-Q5F6OI7C.js → chunk-3KFVGGRE.js} +2 -2
  13. package/dist/cli-bundle/chunks/{chunk-6S7I3UKV.js → chunk-3ZJRFYY2.js} +19 -19
  14. package/dist/cli-bundle/chunks/{chunk-NFF3JAQR.js → chunk-4AVFKHHC.js} +2 -2
  15. package/dist/cli-bundle/chunks/{chunk-5H47J5FG.js → chunk-4OVGQW22.js} +2 -2
  16. package/dist/cli-bundle/chunks/{chunk-D2MBVMVE.js → chunk-5PBP2ZP3.js} +2 -2
  17. package/dist/cli-bundle/chunks/chunk-5ZKQPA44.js +2 -0
  18. package/dist/cli-bundle/chunks/chunk-A3XQ7VPU.js +2 -0
  19. package/dist/cli-bundle/chunks/chunk-AJE3AHPD.js +8 -0
  20. package/dist/cli-bundle/chunks/{chunk-2POYGY53.js → chunk-AOBDLU4T.js} +2 -2
  21. package/dist/cli-bundle/chunks/{chunk-PYYPQLHC.js → chunk-AYRUGRNS.js} +2 -2
  22. package/dist/cli-bundle/chunks/{chunk-QMWUL66F.js → chunk-BP6EMEDP.js} +5 -5
  23. package/dist/cli-bundle/chunks/{chunk-UVZREFZU.js → chunk-C3YABSJK.js} +2 -2
  24. package/dist/cli-bundle/chunks/{chunk-RB65T4RX.js → chunk-CA3BURYF.js} +2 -2
  25. package/dist/cli-bundle/chunks/{chunk-KIKLF2W4.js → chunk-D7I3TUGV.js} +2 -2
  26. package/dist/cli-bundle/chunks/{chunk-PQXEB7W4.js → chunk-DQGJ2RWT.js} +2 -2
  27. package/dist/cli-bundle/chunks/{chunk-OB7TRZ2G.js → chunk-DWOAOZHZ.js} +2 -2
  28. package/dist/cli-bundle/chunks/{chunk-SVDH5CHC.js → chunk-E7BFPLUZ.js} +4 -4
  29. package/dist/cli-bundle/chunks/{chunk-CGY5I2GO.js → chunk-F4NREH3G.js} +2 -2
  30. package/dist/cli-bundle/chunks/{chunk-DCJ6CM6F.js → chunk-FDBRXV25.js} +2 -2
  31. package/dist/cli-bundle/chunks/{chunk-NM5G7RLU.js → chunk-GU3TSEHD.js} +2 -2
  32. package/dist/cli-bundle/chunks/chunk-HS7OVAUN.js +164 -0
  33. package/dist/cli-bundle/chunks/{chunk-CU5ENFNP.js → chunk-JFZIS6JF.js} +2 -2
  34. package/dist/cli-bundle/chunks/{chunk-GOICHIX4.js → chunk-JQ4NZ5EB.js} +2 -2
  35. package/dist/cli-bundle/chunks/{chunk-HE3DZFN4.js → chunk-L6LGKJX3.js} +2 -2
  36. package/dist/cli-bundle/chunks/{chunk-BLINBTMX.js → chunk-M357ZCOR.js} +2 -2
  37. package/dist/cli-bundle/chunks/{chunk-NRDKVOUE.js → chunk-M4VEE3FK.js} +2 -2
  38. package/dist/cli-bundle/chunks/{chunk-HTYC76A4.js → chunk-MCS73BKB.js} +2 -2
  39. package/dist/cli-bundle/chunks/{chunk-BKMZTZYL.js → chunk-MDTH7SAE.js} +2 -2
  40. package/dist/cli-bundle/chunks/{chunk-H6FITE7D.js → chunk-NE5VRDAI.js} +2 -2
  41. package/dist/cli-bundle/chunks/{chunk-NPUJ7OLK.js → chunk-OXY3SJ3N.js} +2 -2
  42. package/dist/cli-bundle/chunks/chunk-PECV7L5T.js +2 -0
  43. package/dist/cli-bundle/chunks/{chunk-KH4GVBMC.js → chunk-Q3VOP62W.js} +2 -2
  44. package/dist/cli-bundle/chunks/{chunk-FQ4EFFDU.js → chunk-QJ7C3JIW.js} +2 -2
  45. package/dist/cli-bundle/chunks/{chunk-VH2EAGUG.js → chunk-R6LSRGPS.js} +2 -2
  46. package/dist/cli-bundle/chunks/{chunk-HQ2WU7OY.js → chunk-R6RKEYYW.js} +2 -2
  47. package/dist/cli-bundle/chunks/{chunk-PA5XRN2A.js → chunk-RAFUN7IX.js} +4 -4
  48. package/dist/cli-bundle/chunks/chunk-RUAU5OSH.js +2 -0
  49. package/dist/cli-bundle/chunks/chunk-SD3YXU2U.js +56 -0
  50. package/dist/cli-bundle/chunks/{chunk-JMKVCQSE.js → chunk-SV3YQ4RY.js} +2 -2
  51. package/dist/cli-bundle/chunks/{chunk-B5ZLCD5Z.js → chunk-SVV3DQES.js} +2 -2
  52. package/dist/cli-bundle/chunks/{chunk-J4EPW4GT.js → chunk-SXECIECW.js} +2 -2
  53. package/dist/cli-bundle/chunks/chunk-T45OHXDW.js +8 -0
  54. package/dist/cli-bundle/chunks/{chunk-NH35JNK5.js → chunk-TPKDJ5WL.js} +2 -2
  55. package/dist/cli-bundle/chunks/{chunk-ZSH4GNBH.js → chunk-UVVXHGYS.js} +2 -2
  56. package/dist/cli-bundle/chunks/chunk-V663653R.js +20 -0
  57. package/dist/cli-bundle/chunks/{chunk-5PZGZMPG.js → chunk-WSI5KZQJ.js} +2 -2
  58. package/dist/cli-bundle/chunks/{chunk-3XZYTRPC.js → chunk-XPOQQJTX.js} +2 -2
  59. package/dist/cli-bundle/chunks/{chunk-UJHUR3LZ.js → chunk-YCCDXBNU.js} +2 -2
  60. package/dist/cli-bundle/chunks/chunk-ZFBWCKYF.js +2 -0
  61. package/dist/cli-bundle/chunks/close-DI66JMSB.js +2 -0
  62. package/dist/cli-bundle/chunks/close-many-VFKT6U3O.js +2 -0
  63. package/dist/cli-bundle/chunks/comments-E73HIEZJ.js +2 -0
  64. package/dist/cli-bundle/chunks/copy-WBYVLCPC.js +2 -0
  65. package/dist/cli-bundle/chunks/{create-RLLCBCXM.js → create-TG67IVFI.js} +2 -2
  66. package/dist/cli-bundle/chunks/delete-6XKUVVQN.js +2 -0
  67. package/dist/cli-bundle/chunks/{deps-J4ONTF4X.js → deps-AJUGP2OH.js} +2 -2
  68. package/dist/cli-bundle/chunks/{docs-YL2DJ4WD.js → docs-QOCLDRKJ.js} +2 -2
  69. package/dist/cli-bundle/chunks/{files-NGNAIYKK.js → files-3ST5TY64.js} +2 -2
  70. package/dist/cli-bundle/chunks/focus-R2AWS63Y.js +2 -0
  71. package/dist/cli-bundle/chunks/{history-compact-HW62K5XP.js → history-compact-7BJFML4S.js} +2 -2
  72. package/dist/cli-bundle/chunks/{history-redact-HVBKUJOW.js → history-redact-WJN3HYXR.js} +2 -2
  73. package/dist/cli-bundle/chunks/{history-repair-OPNBH5JJ.js → history-repair-XDNZUB7F.js} +2 -2
  74. package/dist/cli-bundle/chunks/{learnings-F36PZXT6.js → learnings-SZMUPVNA.js} +2 -2
  75. package/dist/cli-bundle/chunks/{profile-N3XMWBM7.js → profile-KL53JIAC.js} +2 -2
  76. package/dist/cli-bundle/chunks/{register-list-query-BKGHBI7Y.js → register-list-query-QH7ONPKU.js} +2 -2
  77. package/dist/cli-bundle/chunks/register-mutation-OCRQNZK4.js +20 -0
  78. package/dist/cli-bundle/chunks/register-operations-HIBJXRGB.js +2 -0
  79. package/dist/cli-bundle/chunks/register-setup-QWBQ6HBS.js +2 -0
  80. package/dist/cli-bundle/chunks/restore-FXA5QPM7.js +2 -0
  81. package/dist/cli-bundle/chunks/{schema-4PJQMGUY.js → schema-QJ27OTRV.js} +2 -2
  82. package/dist/cli-bundle/chunks/update-7GBO4SXG.js +2 -0
  83. package/dist/cli-bundle/chunks/update-many-VF6ZKQUO.js +2 -0
  84. package/dist/cli-bundle/focused-chunks/chunk-27DK4A5O.js +2 -0
  85. package/dist/cli-bundle/focused-chunks/chunk-4JC3AOGS.js +8 -0
  86. package/dist/cli-bundle/focused-chunks/chunk-6KDHXURF.js +2 -0
  87. package/dist/cli-bundle/focused-chunks/chunk-74CWP3A4.js +2 -0
  88. package/dist/cli-bundle/focused-chunks/chunk-7AZDTGPA.js +2 -0
  89. package/dist/cli-bundle/focused-chunks/chunk-7YTZ7A4E.js +2 -0
  90. package/dist/cli-bundle/focused-chunks/{chunk-ONIX2KKW.js → chunk-CL3NB7VW.js} +2 -2
  91. package/dist/cli-bundle/focused-chunks/chunk-EAXXF2HW.js +4 -0
  92. package/dist/cli-bundle/focused-chunks/{chunk-L6A4NVQC.js → chunk-EYO4F74Z.js} +2 -2
  93. package/dist/cli-bundle/focused-chunks/chunk-GEYU23YS.js +153 -0
  94. package/dist/cli-bundle/focused-chunks/{chunk-DQ4PLKEE.js → chunk-GIERI4YU.js} +2 -2
  95. package/dist/cli-bundle/focused-chunks/chunk-GSW2Y7VZ.js +5 -0
  96. package/dist/cli-bundle/focused-chunks/{chunk-WVGJAD7L.js → chunk-LKQXXO62.js} +2 -2
  97. package/dist/cli-bundle/focused-chunks/{chunk-UFCPSWIL.js → chunk-MBBMTDD3.js} +2 -2
  98. package/dist/cli-bundle/focused-chunks/{chunk-OYTK4VNH.js → chunk-ME4XVOBJ.js} +2 -2
  99. package/dist/cli-bundle/focused-chunks/{chunk-RO5BQFG3.js → chunk-N7QN3NE6.js} +2 -2
  100. package/dist/cli-bundle/focused-chunks/chunk-QL5H3AQH.js +2 -0
  101. package/dist/cli-bundle/focused-chunks/chunk-TQMFQYXR.js +29 -0
  102. package/dist/cli-bundle/focused-chunks/{chunk-SQXVGHMH.js → chunk-XNVXIQ4B.js} +2 -2
  103. package/dist/cli-bundle/focused-chunks/{chunk-BOGRY7M6.js → chunk-YHDCGUIW.js} +10 -10
  104. package/dist/cli-bundle/focused-chunks/{chunk-K37BB4JL.js → chunk-YLPZHWX7.js} +2 -2
  105. package/dist/cli-bundle/main.js +13 -13
  106. package/dist/cli-bundle/sdk-authoring.js +1 -1
  107. package/dist/cli-bundle/sdk-contracts.js +1 -1
  108. package/dist/cli-bundle/sdk-core.js +28 -28
  109. package/dist/cli-bundle/sdk-governance.js +1 -1
  110. package/dist/cli-bundle/sdk-graph.js +1 -1
  111. package/dist/cli-bundle/sdk-merge.js +1 -1
  112. package/dist/cli-bundle/sdk-query.js +1 -1
  113. package/dist/cli-bundle/sdk-runtime.js +1 -1
  114. package/dist/cli-bundle/sdk-testing.js +1 -1
  115. package/dist/cli-bundle/sdk.js +1 -1
  116. package/dist/core/extensions/activation-summary.d.ts +4 -0
  117. package/dist/core/extensions/activation-summary.js +5 -2
  118. package/dist/core/extensions/contribution-inventory.d.ts +1 -0
  119. package/dist/core/extensions/contribution-inventory.js +35 -2
  120. package/dist/core/extensions/extension-hook-runtime.js +5 -3
  121. package/dist/core/extensions/extension-types.d.ts +18 -1
  122. package/dist/core/extensions/extension-types.js +2 -2
  123. package/dist/core/extensions/loader.js +8 -13
  124. package/dist/core/extensions/preflight-ownership.d.ts +5 -0
  125. package/dist/core/extensions/preflight-ownership.js +42 -0
  126. package/dist/core/item/item-format.js +14 -20
  127. package/dist/core/shared/constants.js +3 -2
  128. package/dist/core/store/item-store.js +2 -2
  129. package/dist/core/store/settings.js +2 -2
  130. package/dist/mcp/server.js +12 -6
  131. package/dist/mcp/tool-definitions.js +14 -7
  132. package/dist/sdk/cli-contracts/agent-output-contracts.d.ts +18 -18
  133. package/dist/sdk/cli-contracts/agent-output-contracts.js +51 -23
  134. package/dist/sdk/cli-contracts/commander-mutation-options.js +26 -2
  135. package/dist/sdk/cli-contracts/flag-contracts.d.ts +4 -0
  136. package/dist/sdk/cli-contracts/flag-contracts.js +34 -2
  137. package/dist/sdk/cli-contracts/registration-helpers.js +4 -2
  138. package/dist/sdk/cli-contracts/runtime-contracts.d.ts +10 -2
  139. package/dist/sdk/cli-contracts/runtime-contracts.js +21 -5
  140. package/dist/sdk/cli-contracts/tool-schema.js +4 -2
  141. package/dist/sdk/cli-contracts.d.ts +2 -2
  142. package/dist/sdk/cli-contracts.js +4 -4
  143. package/dist/sdk/cli-program.js +3 -3
  144. package/dist/sdk/compose.d.ts +2 -2
  145. package/dist/sdk/compose.js +7 -2
  146. package/dist/sdk/contracts.d.ts +1 -0
  147. package/dist/sdk/contracts.js +3 -2
  148. package/dist/sdk/define.d.ts +3 -1
  149. package/dist/sdk/define.js +3 -8
  150. package/dist/sdk/dependency-provenance.d.ts +2 -0
  151. package/dist/sdk/dependency-provenance.js +7 -3
  152. package/dist/sdk/error-code-catalog.d.ts +23 -0
  153. package/dist/sdk/error-code-catalog.js +25 -5
  154. package/dist/sdk/extension/install-sources.d.ts +43 -5
  155. package/dist/sdk/extension/install-sources.js +36 -2
  156. package/dist/sdk/extension/migrations.d.ts +114 -0
  157. package/dist/sdk/extension/migrations.js +175 -0
  158. package/dist/sdk/extension/scaffold.js +14 -9
  159. package/dist/sdk/extension/source-resolution.d.ts +50 -0
  160. package/dist/sdk/extension/source-resolution.js +66 -0
  161. package/dist/sdk/extension.d.ts +5 -1
  162. package/dist/sdk/extension.js +24 -26
  163. package/dist/sdk/generated-error-code-catalog.js +499 -3
  164. package/dist/sdk/governance/health.js +11 -2
  165. package/dist/sdk/graph/governance.js +3 -3
  166. package/dist/sdk/graph/remediation.js +3 -3
  167. package/dist/sdk/graph/run.js +4 -8
  168. package/dist/sdk/index.d.ts +7 -2
  169. package/dist/sdk/index.js +9 -4
  170. package/dist/sdk/item-transaction.d.ts +51 -6
  171. package/dist/sdk/item-transaction.js +132 -22
  172. package/dist/sdk/lifecycle/create.d.ts +4 -0
  173. package/dist/sdk/lifecycle/create.js +26 -10
  174. package/dist/sdk/lifecycle-policy.d.ts +9 -0
  175. package/dist/sdk/lifecycle-policy.js +22 -9
  176. package/dist/sdk/merge/driver.js +6 -3
  177. package/dist/sdk/output-contracts.d.ts +67 -0
  178. package/dist/sdk/output-contracts.js +173 -0
  179. package/dist/sdk/package-import-adapters.js +2 -2
  180. package/dist/sdk/package-migrations.d.ts +10 -0
  181. package/dist/sdk/package-migrations.js +21 -0
  182. package/dist/sdk/runtime.d.ts +2 -0
  183. package/dist/sdk/runtime.js +6 -2
  184. package/dist/sdk/structured-mutations.d.ts +23 -0
  185. package/dist/sdk/structured-mutations.js +219 -10
  186. package/dist/sdk/workspace-snapshot.js +58 -12
  187. package/dist/sdk/workspace.js +30 -4
  188. package/docs/COMMANDS.md +49 -10
  189. package/docs/EXTENSIONS.md +3 -3
  190. package/docs/EXTENSION_LIFECYCLE.md +46 -0
  191. package/docs/MERGE_SAFETY.md +2 -0
  192. package/docs/PR_REVIEW_LOOP.md +10 -4
  193. package/docs/README.md +23 -22
  194. package/docs/RELEASING.md +36 -23
  195. package/docs/SCRIPTING.md +32 -9
  196. package/docs/SDK.md +122 -14
  197. package/docs/SELF_DESCRIBING_CONTEXT_CONTRACTS.md +13 -0
  198. package/docs/TESTING.md +25 -0
  199. package/docs/examples/sdk-contract-consumer/README.md +11 -1
  200. package/docs/examples/sdk-contract-consumer/package.json +2 -1
  201. package/docs/examples/sdk-contract-consumer/parse-receipt.mjs +22 -0
  202. package/marketplace.json +2 -2
  203. package/package.json +5 -4
  204. package/packages/pm-beads/package.json +1 -1
  205. package/packages/pm-calendar/package.json +1 -1
  206. package/packages/pm-command-kit/package.json +1 -1
  207. package/packages/pm-digital-twin/package.json +1 -1
  208. package/packages/pm-governance-audit/package.json +1 -1
  209. package/packages/pm-guide-shell/package.json +1 -1
  210. package/packages/pm-kanban/package.json +1 -1
  211. package/packages/pm-lifecycle-hooks/package.json +1 -1
  212. package/packages/pm-linked-test-adapters/package.json +1 -1
  213. package/packages/pm-search-advanced/package.json +1 -1
  214. package/packages/pm-templates/package.json +1 -1
  215. package/packages/pm-todos/package.json +1 -1
  216. package/packages/pm-vcs/package.json +1 -1
  217. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  218. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  219. package/sdk/public-surface.json +508 -32
  220. package/dist/cli-bundle/chunks/append-DHBRLHHS.js +0 -2
  221. package/dist/cli-bundle/chunks/chunk-2INN52SU.js +0 -8
  222. package/dist/cli-bundle/chunks/chunk-377OOXUF.js +0 -55
  223. package/dist/cli-bundle/chunks/chunk-6RSK4IFN.js +0 -20
  224. package/dist/cli-bundle/chunks/chunk-ASJJKA57.js +0 -2
  225. package/dist/cli-bundle/chunks/chunk-IYAVULRN.js +0 -2
  226. package/dist/cli-bundle/chunks/chunk-JDPKBV5P.js +0 -2
  227. package/dist/cli-bundle/chunks/chunk-RRQBHQOV.js +0 -2
  228. package/dist/cli-bundle/chunks/chunk-SULWTPQO.js +0 -8
  229. package/dist/cli-bundle/chunks/chunk-V5K52PYW.js +0 -164
  230. package/dist/cli-bundle/chunks/chunk-XBLOD5TZ.js +0 -2
  231. package/dist/cli-bundle/chunks/close-VLHNN6YB.js +0 -2
  232. package/dist/cli-bundle/chunks/close-many-LSJNZKU6.js +0 -2
  233. package/dist/cli-bundle/chunks/comments-AAIA6A6X.js +0 -2
  234. package/dist/cli-bundle/chunks/copy-Z7YMLEHN.js +0 -2
  235. package/dist/cli-bundle/chunks/delete-KNOHHQJM.js +0 -2
  236. package/dist/cli-bundle/chunks/focus-LFRCGALV.js +0 -2
  237. package/dist/cli-bundle/chunks/register-mutation-GU3DCECN.js +0 -20
  238. package/dist/cli-bundle/chunks/register-operations-PTWH727R.js +0 -2
  239. package/dist/cli-bundle/chunks/register-setup-KWV6UD77.js +0 -2
  240. package/dist/cli-bundle/chunks/restore-4HZSLILR.js +0 -2
  241. package/dist/cli-bundle/chunks/update-E6LPS5IV.js +0 -2
  242. package/dist/cli-bundle/chunks/update-many-OSIC6KRO.js +0 -2
  243. package/dist/cli-bundle/focused-chunks/chunk-2VIIXOAD.js +0 -2
  244. package/dist/cli-bundle/focused-chunks/chunk-5MTKO7TV.js +0 -153
  245. package/dist/cli-bundle/focused-chunks/chunk-6GIZK7VQ.js +0 -2
  246. package/dist/cli-bundle/focused-chunks/chunk-AOP2WIZZ.js +0 -2
  247. package/dist/cli-bundle/focused-chunks/chunk-C2QSL62X.js +0 -28
  248. package/dist/cli-bundle/focused-chunks/chunk-CL75YW32.js +0 -2
  249. package/dist/cli-bundle/focused-chunks/chunk-E7OFMWGT.js +0 -8
  250. package/dist/cli-bundle/focused-chunks/chunk-I5F5UK3Q.js +0 -2
  251. package/dist/cli-bundle/focused-chunks/chunk-QM2BIVK7.js +0 -4
  252. package/dist/cli-bundle/focused-chunks/chunk-T5TSY36R.js +0 -5
  253. package/dist/cli-bundle/focused-chunks/chunk-VT6BF2IX.js +0 -2
@@ -1,2 +1,2 @@
1
- import{a as ie,e as x}from"./chunk-OB7TRZ2G.js";import{A as u,C as p,Da as S,Ec as z,Ff as Z,Hf as ee,Jf as D,Kf as te,La as N,Nc as G,Oa as M,Pa as j,Pf as ae,R as L,Ra as q,Xe as Y,Ye as B,b as T,d as P,f as $,hd as U,id as K,kf as J,lc as v,qc as H,rc as W,tf as Q,uc as I,v as O,yf as V,zd as X}from"./chunk-V5K52PYW.js";(function(){try{var o=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},i=new o.Error().stack;i&&(o._sentryDebugIds=o._sentryDebugIds||{},o._sentryDebugIds[i]="4eb2056a-4444-514a-a0db-79b8875c3d65")}catch{}})();function ne(o,i){return[...new Set([...O.filter(t=>o[t]!==void 0),...Object.keys(o).filter(t=>o[t]!==void 0),...i.length>0?["body"]:[]])].sort((t,e)=>t.localeCompare(e))}function ce(o,i){let r=`copied_from=${o}`;if(!i)return r;let t=i.trim();return t.length>0?`${t} | ${r}`:r}async function ue(o,i,r){let t=N(process.cwd(),r.path);if(!await T(M(t)))throw new p(`Tracker is not initialized at ${t}. Run pm init first.`,u.NOT_FOUND);let e=await V(t),c=S(e,v()),d=await D(t,o,e.id_prefix,e.item_format,c.type_to_folder);if(!d)throw await ae(t,o,e.id_prefix,c.type_to_folder);let E=await te(d,{schema:e.schema}),A=E.document.metadata,f=L(),_=X(i.author,e.author_default),n=await Q(t,e.id_prefix,{tokenLength:e.ids.token_length,typeToFolder:c.type_to_folder,probeExisting:!1}),oe=G(e.schema),y=i.title?.trim();if(y!==void 0&&y.length===0)throw new p("Copy --title must not be empty",u.USAGE);let s={...A,id:n,title:y??A.title,status:oe.open_status,created_at:f,updated_at:f};delete s.closed_at,delete s.completed_at,delete s.close_reason,delete s.test_runs;let k=z(v()),a=K({metadata:s,body:E.document.body},{schema:e.schema,extensionFieldNames:k}),h=await x({title:a.metadata.title,description:a.metadata.description,body:a.body,excludeIds:[d.id]},{pmRoot:t,mode:e.governance.duplicate_detection_mode==="strict"&&i.allowDuplicate!==!0?"off":e.governance.duplicate_detection_mode,threshold:e.governance.duplicate_detection_threshold,limit:e.governance.duplicate_detection_limit,allowDuplicate:i.allowDuplicate}),l=ne(a.metadata,a.body),m=j(t,a.metadata.type,n,e.item_format,c.type_to_folder),R=q(t,n),re=await J(t,n,e.locks.ttl_seconds,_,!1,e.governance.force_required_for_stale_lock,e.locks.wait_ms),g={metadata:{},body:""},C,F;try{let de=await Z(t,_,{required:e.governance.duplicate_detection_mode==="strict"&&i.allowDuplicate!==!0});try{e.governance.duplicate_detection_mode==="strict"&&i.allowDuplicate!==!0&&await x({title:a.metadata.title,description:a.metadata.description,body:a.body,excludeIds:[d.id]},{pmRoot:t,mode:"strict",threshold:e.governance.duplicate_detection_threshold,limit:e.governance.duplicate_detection_limit,allowDuplicate:!1});let w=await D(t,n,e.id_prefix,e.item_format,c.type_to_folder);if(w)throw new p(`Cannot copy to ${n}: an item with that id already exists at ${w.itemPath}. Retry the copy to allocate a new id.`,u.CONFLICT,{code:"item_id_collision",why:`Allocated id ${n} already exists at ${w.itemPath}.`,recovery:{suggested_retry:`pm copy ${d.id}`}});await P(m,U(a,{format:e.item_format,schema:e.schema,extensionFieldNames:k}));try{let b=Y({nowIso:f,author:_,op:"create",before:g,after:a,message:ce(d.id,i.message)});await B(R,b)}catch(b){throw await $(m),b}F=await ee({pmRoot:t,preferredFormat:e.item_format,typeToFolder:c.type_to_folder,schema:e.schema,itemPath:m,document:a})}finally{await de()}C=[...await I({path:m,scope:"project",op:"create",item_id:a.metadata.id,item_type:a.metadata.type,before:g,after:a,changed_fields:l}),...await I({path:R,scope:"project",op:"create:history",item_id:a.metadata.id,item_type:a.metadata.type,before:g,after:a,changed_fields:l})],H({id:a.metadata.id,op:"create",item_type:a.metadata.type,status:a.metadata.status,current:W(a.metadata,l),changed_fields:l})}finally{await re()}return{source_id:d.id,item:structuredClone(a.metadata),changed_fields:l,warnings:[...ie(h),...F,...C],...h===void 0?{}:{similarity_advisory:h}}}export{ue as a};
2
- //# sourceMappingURL=chunk-CU5ENFNP.js.map
1
+ import{a as ie,e as x}from"./chunk-DWOAOZHZ.js";import{A as u,Af as V,C as p,Da as S,Ec as z,Hf as Z,Jf as ee,La as N,Lf as D,Mf as te,Nc as G,Oa as M,Pa as j,R as L,Ra as q,Rf as ae,Ze as Y,_e as B,b as T,d as P,f as $,hd as U,id as K,lc as v,mf as J,qc as H,rc as W,uc as I,v as O,vf as Q,zd as X}from"./chunk-HS7OVAUN.js";(function(){try{var o=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},i=new o.Error().stack;i&&(o._sentryDebugIds=o._sentryDebugIds||{},o._sentryDebugIds[i]="4eb2056a-4444-514a-a0db-79b8875c3d65")}catch{}})();function ne(o,i){return[...new Set([...O.filter(t=>o[t]!==void 0),...Object.keys(o).filter(t=>o[t]!==void 0),...i.length>0?["body"]:[]])].sort((t,e)=>t.localeCompare(e))}function ce(o,i){let r=`copied_from=${o}`;if(!i)return r;let t=i.trim();return t.length>0?`${t} | ${r}`:r}async function ue(o,i,r){let t=N(process.cwd(),r.path);if(!await T(M(t)))throw new p(`Tracker is not initialized at ${t}. Run pm init first.`,u.NOT_FOUND);let e=await V(t),c=S(e,v()),d=await D(t,o,e.id_prefix,e.item_format,c.type_to_folder);if(!d)throw await ae(t,o,e.id_prefix,c.type_to_folder);let E=await te(d,{schema:e.schema}),A=E.document.metadata,f=L(),_=X(i.author,e.author_default),n=await Q(t,e.id_prefix,{tokenLength:e.ids.token_length,typeToFolder:c.type_to_folder,probeExisting:!1}),oe=G(e.schema),y=i.title?.trim();if(y!==void 0&&y.length===0)throw new p("Copy --title must not be empty",u.USAGE);let s={...A,id:n,title:y??A.title,status:oe.open_status,created_at:f,updated_at:f};delete s.closed_at,delete s.completed_at,delete s.close_reason,delete s.test_runs;let k=z(v()),a=K({metadata:s,body:E.document.body},{schema:e.schema,extensionFieldNames:k}),h=await x({title:a.metadata.title,description:a.metadata.description,body:a.body,excludeIds:[d.id]},{pmRoot:t,mode:e.governance.duplicate_detection_mode==="strict"&&i.allowDuplicate!==!0?"off":e.governance.duplicate_detection_mode,threshold:e.governance.duplicate_detection_threshold,limit:e.governance.duplicate_detection_limit,allowDuplicate:i.allowDuplicate}),l=ne(a.metadata,a.body),m=j(t,a.metadata.type,n,e.item_format,c.type_to_folder),R=q(t,n),re=await J(t,n,e.locks.ttl_seconds,_,!1,e.governance.force_required_for_stale_lock,e.locks.wait_ms),g={metadata:{},body:""},C,F;try{let de=await Z(t,_,{required:e.governance.duplicate_detection_mode==="strict"&&i.allowDuplicate!==!0});try{e.governance.duplicate_detection_mode==="strict"&&i.allowDuplicate!==!0&&await x({title:a.metadata.title,description:a.metadata.description,body:a.body,excludeIds:[d.id]},{pmRoot:t,mode:"strict",threshold:e.governance.duplicate_detection_threshold,limit:e.governance.duplicate_detection_limit,allowDuplicate:!1});let w=await D(t,n,e.id_prefix,e.item_format,c.type_to_folder);if(w)throw new p(`Cannot copy to ${n}: an item with that id already exists at ${w.itemPath}. Retry the copy to allocate a new id.`,u.CONFLICT,{code:"item_id_collision",why:`Allocated id ${n} already exists at ${w.itemPath}.`,recovery:{suggested_retry:`pm copy ${d.id}`}});await P(m,U(a,{format:e.item_format,schema:e.schema,extensionFieldNames:k}));try{let b=Y({nowIso:f,author:_,op:"create",before:g,after:a,message:ce(d.id,i.message)});await B(R,b)}catch(b){throw await $(m),b}F=await ee({pmRoot:t,preferredFormat:e.item_format,typeToFolder:c.type_to_folder,schema:e.schema,itemPath:m,document:a})}finally{await de()}C=[...await I({path:m,scope:"project",op:"create",item_id:a.metadata.id,item_type:a.metadata.type,before:g,after:a,changed_fields:l}),...await I({path:R,scope:"project",op:"create:history",item_id:a.metadata.id,item_type:a.metadata.type,before:g,after:a,changed_fields:l})],H({id:a.metadata.id,op:"create",item_type:a.metadata.type,status:a.metadata.status,current:W(a.metadata,l),changed_fields:l})}finally{await re()}return{source_id:d.id,item:structuredClone(a.metadata),changed_fields:l,warnings:[...ie(h),...F,...C],...h===void 0?{}:{similarity_advisory:h}}}export{ue as a};
2
+ //# sourceMappingURL=chunk-JFZIS6JF.js.map
@@ -1,2 +1,2 @@
1
- import{ga as N,ha as T,ia as v}from"./chunk-BKMZTZYL.js";import{A as u,C as f,Da as m,Jf as g,Kf as y,La as I,Oa as b,Pf as E,b as h,lc as w,sf as F,yf as p}from"./chunk-V5K52PYW.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},a=new e.Error().stack;a&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[a]="d51ebf7a-d759-5a6b-9a4f-810139a1688c")}catch{}})();async function D(e){if(!await h(b(e)))throw new f(`Tracker is not initialized at ${e}. Run pm init first.`,u.NOT_FOUND)}async function O(e,a,i){let t=I(process.cwd(),i.path);if(await D(t),a.clear===!0){if(e!==void 0)throw new f("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);return await v(t),{action:"clear",focused_item:null,title:null,message:"Focus cleared. New items will not inherit a default parent."}}if(e===void 0){let n=await N(t);if(n===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 l=await R(t,n);return{action:"show",focused_item:n,title:l,message:`Focused on ${n}${l?` (${l})`:""}. New items default --parent to it.`}}let o=await p(t),_=m(o,w()),r=await g(t,e,o.id_prefix,o.item_format,_.type_to_folder);if(!r)throw await E(t,e,o.id_prefix,_.type_to_folder);let c=F(r.id,o.id_prefix),$=await y(r,{schema:o.schema}),d=x($.document.metadata.title);return await T(t,c),{action:"set",focused_item:c,title:d,message:`Focused on ${c}${d?` (${d})`:""}. New items default --parent to it (override with --parent or clear via 'pm focus --clear').`}}async function R(e,a){let i=await p(e),t=m(i,w()),s=await g(e,a,i.id_prefix,i.item_format,t.type_to_folder);if(!s)return null;let o=await y(s,{schema:i.schema});return x(o.document.metadata.title)}function x(e){return e.trim().length>0?e:null}export{O as a};
2
- //# sourceMappingURL=chunk-GOICHIX4.js.map
1
+ import{ga as N,ha as T,ia as v}from"./chunk-MDTH7SAE.js";import{A as u,Af as p,C as f,Da as m,La as I,Lf as g,Mf as y,Oa as b,Rf as E,b as h,lc as w,uf as F}from"./chunk-HS7OVAUN.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},a=new e.Error().stack;a&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[a]="d51ebf7a-d759-5a6b-9a4f-810139a1688c")}catch{}})();async function D(e){if(!await h(b(e)))throw new f(`Tracker is not initialized at ${e}. Run pm init first.`,u.NOT_FOUND)}async function O(e,a,i){let t=I(process.cwd(),i.path);if(await D(t),a.clear===!0){if(e!==void 0)throw new f("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);return await v(t),{action:"clear",focused_item:null,title:null,message:"Focus cleared. New items will not inherit a default parent."}}if(e===void 0){let n=await N(t);if(n===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 l=await R(t,n);return{action:"show",focused_item:n,title:l,message:`Focused on ${n}${l?` (${l})`:""}. New items default --parent to it.`}}let o=await p(t),_=m(o,w()),r=await g(t,e,o.id_prefix,o.item_format,_.type_to_folder);if(!r)throw await E(t,e,o.id_prefix,_.type_to_folder);let c=F(r.id,o.id_prefix),$=await y(r,{schema:o.schema}),d=x($.document.metadata.title);return await T(t,c),{action:"set",focused_item:c,title:d,message:`Focused on ${c}${d?` (${d})`:""}. New items default --parent to it (override with --parent or clear via 'pm focus --clear').`}}async function R(e,a){let i=await p(e),t=m(i,w()),s=await g(e,a,i.id_prefix,i.item_format,t.type_to_folder);if(!s)return null;let o=await y(s,{schema:i.schema});return x(o.document.metadata.title)}function x(e){return e.trim().length>0?e:null}export{O as a};
2
+ //# sourceMappingURL=chunk-JQ4NZ5EB.js.map
@@ -1,2 +1,2 @@
1
- import{bd as u,cd as p}from"./chunk-V5K52PYW.js";(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]="bf429f76-9722-5e34-a5f0-6ced8d1ed667")}catch{}})();var D="blocked_by",B="no-active-blocker";function d(e){return e.trim().toLowerCase()}function b(e){let t=new Set,n=typeof e.blocked_by=="string"?e.blocked_by.trim():"";n.length>0&&n.toLowerCase()!==B&&t.add(n);for(let o of e.dependencies??[])o.kind===D&&typeof o.id=="string"&&o.id.trim().length>0&&o.id.trim().toLowerCase()!==B&&t.add(o.id.trim());return[...t].sort((o,c)=>o.localeCompare(c))}function k(e,t,n){return b(e).map(o=>{let c=t.get(d(o));return c?{id:o,title:c.title,status:c.status,resolved:p(c.status,n)}:{id:o,title:null,status:null,resolved:!1}})}function C(e,t){let n=new Map(e.map(s=>[d(s.id),s])),o=new Set([...I(t),...t.blocked_statuses]),c=new Set;for(let s of e){let l=u(s.status,t);if(!o.has(l))continue;(t.blocked_statuses.has(l)||k(s,n,t).some(a=>!a.resolved))&&c.add(d(s.id))}return c}function I(e){return e.active_statuses.size>0?e.active_statuses:new Set([e.open_status])}function E(e,t,n){let o=[d(e)],c=new Set;for(;o.length>0;){let s=o.pop();if(!c.has(s)){c.add(s);for(let l of t.get(s)??[]){if(!p(l.status,n))return!0;o.push(d(l.id))}}}return!1}function T(e){let t=new Map,n=new Map,o=new Map;for(let c of e){t.set(d(c.id),c);let s=typeof c.parent=="string"?c.parent.trim():"";if(s.length>0){let l=d(s),i=n.get(l)??[];i.push(c),n.set(l,i)}for(let l of b(c)){let i=d(l),a=o.get(i)??[];a.push(c.id),o.set(i,a)}}return{itemsById:t,childrenByParent:n,blockedByReverse:o}}function x(e,t,n){let{itemsById:o,childrenByParent:c,blockedByReverse:s}=T(t),l=new Set([...I(n),...n.blocked_statuses]),i=new Set(t.filter(r=>!p(r.status,n)).map(r=>d(r.id))),a=[],y=[],m=0,h=0;for(let r of e){if(!l.has(u(r.status,n)))continue;if(m+=1,E(r.id,c,n)){h+=1;continue}let w=k(r,o,n).filter(f=>!f.resolved),v=(s.get(d(r.id))??[]).filter(f=>i.has(d(f))).sort((f,S)=>f.localeCompare(S)),_={item:r,open_blockers:w,unblocks:v},g=n.blocked_statuses.has(u(r.status,n));w.length===0&&!g?a.push(_):y.push(_)}return{ready:a,blocked:y,active_count:m,container_count:h}}(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]="9184e723-8269-5e45-8c6a-52fd02da60e6")}catch{}})();export{b as a,k as b,C as c,x as d};
2
- //# sourceMappingURL=chunk-HE3DZFN4.js.map
1
+ import{bd as u,cd as p}from"./chunk-HS7OVAUN.js";(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]="bf429f76-9722-5e34-a5f0-6ced8d1ed667")}catch{}})();var D="blocked_by",B="no-active-blocker";function d(e){return e.trim().toLowerCase()}function b(e){let t=new Set,n=typeof e.blocked_by=="string"?e.blocked_by.trim():"";n.length>0&&n.toLowerCase()!==B&&t.add(n);for(let o of e.dependencies??[])o.kind===D&&typeof o.id=="string"&&o.id.trim().length>0&&o.id.trim().toLowerCase()!==B&&t.add(o.id.trim());return[...t].sort((o,c)=>o.localeCompare(c))}function k(e,t,n){return b(e).map(o=>{let c=t.get(d(o));return c?{id:o,title:c.title,status:c.status,resolved:p(c.status,n)}:{id:o,title:null,status:null,resolved:!1}})}function C(e,t){let n=new Map(e.map(s=>[d(s.id),s])),o=new Set([...I(t),...t.blocked_statuses]),c=new Set;for(let s of e){let l=u(s.status,t);if(!o.has(l))continue;(t.blocked_statuses.has(l)||k(s,n,t).some(a=>!a.resolved))&&c.add(d(s.id))}return c}function I(e){return e.active_statuses.size>0?e.active_statuses:new Set([e.open_status])}function E(e,t,n){let o=[d(e)],c=new Set;for(;o.length>0;){let s=o.pop();if(!c.has(s)){c.add(s);for(let l of t.get(s)??[]){if(!p(l.status,n))return!0;o.push(d(l.id))}}}return!1}function T(e){let t=new Map,n=new Map,o=new Map;for(let c of e){t.set(d(c.id),c);let s=typeof c.parent=="string"?c.parent.trim():"";if(s.length>0){let l=d(s),i=n.get(l)??[];i.push(c),n.set(l,i)}for(let l of b(c)){let i=d(l),a=o.get(i)??[];a.push(c.id),o.set(i,a)}}return{itemsById:t,childrenByParent:n,blockedByReverse:o}}function x(e,t,n){let{itemsById:o,childrenByParent:c,blockedByReverse:s}=T(t),l=new Set([...I(n),...n.blocked_statuses]),i=new Set(t.filter(r=>!p(r.status,n)).map(r=>d(r.id))),a=[],y=[],m=0,h=0;for(let r of e){if(!l.has(u(r.status,n)))continue;if(m+=1,E(r.id,c,n)){h+=1;continue}let w=k(r,o,n).filter(f=>!f.resolved),v=(s.get(d(r.id))??[]).filter(f=>i.has(d(f))).sort((f,S)=>f.localeCompare(S)),_={item:r,open_blockers:w,unblocks:v},g=n.blocked_statuses.has(u(r.status,n));w.length===0&&!g?a.push(_):y.push(_)}return{ready:a,blocked:y,active_count:m,container_count:h}}(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]="9184e723-8269-5e45-8c6a-52fd02da60e6")}catch{}})();export{b as a,k as b,C as c,x as d};
2
+ //# sourceMappingURL=chunk-L6LGKJX3.js.map
@@ -1,2 +1,2 @@
1
- import{a as N}from"./chunk-NPUJ7OLK.js";import{c as T}from"./chunk-NH35JNK5.js";import{a as m}from"./chunk-FB7G2HY2.js";import{u as D}from"./chunk-Q5F6OI7C.js";import{a as R,b as I,c as v,d as M}from"./chunk-BKMZTZYL.js";import{A as u,C as f,Da as S,H as C,La as E,Mf as x,Nc as y,Oa as A,R as b,b as k,cd as g,lc as O,yf as q,zd as P}from"./chunk-V5K52PYW.js";(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]="1be4d7c4-3ede-59cc-8d70-df966a66e67e")}catch{}})();var U=1,_="close-many",z=["--filter-status","--filter-type","--filter-tag","--filter-priority","--filter-sprint","--filter-release","--filter-parent","--filter-assignee","--filter-updated-before","--ids"].join(", ");function L(e,t){return m(e,t,{includePagination:!1})}function G(e,t){return m(e,t)}function F(e){if(e?.ids!=null&&String(e.ids).trim().length===0)throw new f("--ids requires at least one non-empty item ID",u.USAGE)}function V(e){let t={};if(!e)return t;for(let[n,o]of Object.entries(e))o==null||typeof o=="string"&&!o.split(",").some(i=>i.trim().length>0)||(t[n]=o);return t}function $(e,t){let n=String(e??"").trim();if(n.length>0)return n;if(t)throw new f("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 B(e,t){let n=y(t.schema),o=S(t,O()),i=await x(e,t.item_format,o.type_to_folder,void 0,t.schema),s=new Map,l=new Map;for(let r of i){if(typeof r.parent!="string"||r.parent.length===0||(l.set(r.id,r.parent),g(r.status,n)))continue;let c=s.get(r.parent);c?c.push(r.id):s.set(r.parent,[r.id])}for(let r of s.values())r.sort((c,a)=>c.localeCompare(a));return{childrenByParent:s,parentByChild:l}}function w(e,t,n){let o=n?.get(e);if(o!==void 0)return o;let i=0,s=t.get(e),l=[],r=new Set,c=!1;for(;s!==void 0&&!r.has(s);){let a=n?.get(s);if(a!==void 0){i+=a+1;break}r.add(s),l.push(s),i+=1,s=t.get(s)}if(s!==void 0&&r.has(s)&&(c=!0),!c){n?.set(e,i);for(let[a,h]of l.entries())n?.set(h,i-a-1)}return i}async function K(e){let t=await v(e.pmRoot,_,e.rollbackId,U),n=e.options.message??`Rollback close-many checkpoint ${t.id}`,o=await M(t.items,(i,s)=>N(i,s,{author:e.options.author,message:n,force:!0},e.global));return{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 X(e,t,n,o,i){return e.map(s=>{let l=(t.get(s.id)??[]).filter(c=>!n.has(c)),r=!H(s,o,i);return{id:s.id,title:typeof s.title=="string"?s.title:"",status:s.status,action:r?"skip":"close",...r?{skip_reason:"already_terminal"}:{},...l.length>0?{active_child_ids:l}:{}}})}async function J(e){let t=await I(e.pmRoot,_,e.checkpointId,{schema_version:U,id:e.checkpointId,created_at:e.nowValue,author:P(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 Q(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 i=await T(o.id,e.reason,e.closeOptions,e.global);t.push({id:o.id,status:"closed",changed_fields:i.changed_fields,...i.warnings&&i.warnings.length>0?{warnings:i.warnings}:{}}),n.push(o.id)}catch(i){t.push({id:o.id,status:"failed",error:C(i)})}}return{rows:t,closedIds:n}}function W(e){return typeof e.rollback=="string"?e.rollback:void 0}function Z(e,t){if(t.trim().length===0)throw new f("--rollback requires a checkpoint id",u.USAGE);if(e.dryRun===!0)throw new f("--dry-run cannot be combined with --rollback",u.USAGE);if(G(e.list,e.status))throw new f("Rollback mode does not accept filter options",u.USAGE)}function ee(e){if(!L(e.list,e.status))throw new f(`close-many requires at least one filter to scope the close (for example: ${z}). Refusing to match every item.`,u.USAGE)}function te(e,t){let n=new Map;return[...e].sort((o,i)=>{let s=w(i.id,t,n)-w(o.id,t,n);return s!==0?s:o.id.localeCompare(i.id)})}function H(e,t,n){return n||!g(e.status,t)}function ne(e,t,n){return new Set(e.filter(o=>H(o,t,n)).map(o=>o.id))}async function oe(e){ee(e.options);let t=y(e.settings.schema),n=$(e.options.reason,e.settings.governance.require_close_reason),o=e.options.force===!0,i=await D(e.options.status,V(e.options.list),e.global),{childrenByParent:s,parentByChild:l}=await B(e.pmRoot,e.settings),r=te(i.items,l),c=ne(r,t,o);return{pmRoot:e.pmRoot,settings:e.settings,statusRegistry:t,reason:n,validateCloseMode:e.options.validateClose,force:o,listed:i,matched:r,planRows:X(r,s,c,t,o)}}function se(e){return{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:[]}}async function ie(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 J({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 ue(e,t){let n=E(process.cwd(),t.path);if(!await k(A(n)))throw new f(`Tracker is not initialized at ${n}. Run pm init first.`,u.NOT_FOUND);let o=await q(n),i=e.dryRun===!0,s=W(e);if(F(e.list),s!==void 0)return Z(e,s),K({pmRoot:n,rollbackId:s,options:e,global:t});let l=await oe({pmRoot:n,settings:o,options:e,global:t});if(i)return se(l);let r=new Set(l.planRows.filter(d=>d.action==="close").map(d=>d.id)),c=b(),a=R(_,c),h=await ie({context:l,options:e,closableIds:r,checkpointId:a,nowValue:c}),j={author:e.author,message:e.message??`close-many apply ${a}`,completedAt:e.completedAt,validateClose:l.validateCloseMode,force:l.force,resolution:e.resolution,expectedResult:e.expectedResult,actualResult:e.actualResult},{rows:p,closedIds:Y}=await Q({matched:l.matched,closableIds:r,reason:l.reason,closeOptions:j,global:t});return{mode:"apply",matched_count:l.matched.length,dry_run:!1,...l.reason!==void 0?{reason:l.reason}:{},filters:l.listed.filters,...l.validateCloseMode?{validate_close:l.validateCloseMode}:{},...h?{checkpoint:h}:{},closed_count:p.filter(d=>d.status==="closed").length,skipped_count:p.filter(d=>d.status==="skipped").length,failed_count:p.filter(d=>d.status==="failed").length,rows:p,ids:Y}}var fe={activeListOptions:V,buildActiveChildrenByParent:B,hasCloseManyFilters:L,hasCloseManyRollbackConflicts:G,hierarchyDepth:w,rejectBlankIdsFilter:F,resolveReason:$};export{ue as a,fe as b};
2
- //# sourceMappingURL=chunk-BLINBTMX.js.map
1
+ import{a as N}from"./chunk-OXY3SJ3N.js";import{c as T}from"./chunk-TPKDJ5WL.js";import{a as m}from"./chunk-FB7G2HY2.js";import{u as D}from"./chunk-3KFVGGRE.js";import{a as R,b as I,c as v,d as M}from"./chunk-MDTH7SAE.js";import{A as u,Af as q,C as f,Da as S,H as C,La as E,Nc as y,Oa as A,Of as x,R as b,b as k,cd as g,lc as O,zd as P}from"./chunk-HS7OVAUN.js";(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]="1be4d7c4-3ede-59cc-8d70-df966a66e67e")}catch{}})();var U=1,_="close-many",z=["--filter-status","--filter-type","--filter-tag","--filter-priority","--filter-sprint","--filter-release","--filter-parent","--filter-assignee","--filter-updated-before","--ids"].join(", ");function L(e,t){return m(e,t,{includePagination:!1})}function G(e,t){return m(e,t)}function F(e){if(e?.ids!=null&&String(e.ids).trim().length===0)throw new f("--ids requires at least one non-empty item ID",u.USAGE)}function V(e){let t={};if(!e)return t;for(let[n,o]of Object.entries(e))o==null||typeof o=="string"&&!o.split(",").some(i=>i.trim().length>0)||(t[n]=o);return t}function $(e,t){let n=String(e??"").trim();if(n.length>0)return n;if(t)throw new f("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 B(e,t){let n=y(t.schema),o=S(t,O()),i=await x(e,t.item_format,o.type_to_folder,void 0,t.schema),s=new Map,l=new Map;for(let r of i){if(typeof r.parent!="string"||r.parent.length===0||(l.set(r.id,r.parent),g(r.status,n)))continue;let c=s.get(r.parent);c?c.push(r.id):s.set(r.parent,[r.id])}for(let r of s.values())r.sort((c,a)=>c.localeCompare(a));return{childrenByParent:s,parentByChild:l}}function w(e,t,n){let o=n?.get(e);if(o!==void 0)return o;let i=0,s=t.get(e),l=[],r=new Set,c=!1;for(;s!==void 0&&!r.has(s);){let a=n?.get(s);if(a!==void 0){i+=a+1;break}r.add(s),l.push(s),i+=1,s=t.get(s)}if(s!==void 0&&r.has(s)&&(c=!0),!c){n?.set(e,i);for(let[a,h]of l.entries())n?.set(h,i-a-1)}return i}async function K(e){let t=await v(e.pmRoot,_,e.rollbackId,U),n=e.options.message??`Rollback close-many checkpoint ${t.id}`,o=await M(t.items,(i,s)=>N(i,s,{author:e.options.author,message:n,force:!0},e.global));return{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 X(e,t,n,o,i){return e.map(s=>{let l=(t.get(s.id)??[]).filter(c=>!n.has(c)),r=!H(s,o,i);return{id:s.id,title:typeof s.title=="string"?s.title:"",status:s.status,action:r?"skip":"close",...r?{skip_reason:"already_terminal"}:{},...l.length>0?{active_child_ids:l}:{}}})}async function J(e){let t=await I(e.pmRoot,_,e.checkpointId,{schema_version:U,id:e.checkpointId,created_at:e.nowValue,author:P(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 Q(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 i=await T(o.id,e.reason,e.closeOptions,e.global);t.push({id:o.id,status:"closed",changed_fields:i.changed_fields,...i.warnings&&i.warnings.length>0?{warnings:i.warnings}:{}}),n.push(o.id)}catch(i){t.push({id:o.id,status:"failed",error:C(i)})}}return{rows:t,closedIds:n}}function W(e){return typeof e.rollback=="string"?e.rollback:void 0}function Z(e,t){if(t.trim().length===0)throw new f("--rollback requires a checkpoint id",u.USAGE);if(e.dryRun===!0)throw new f("--dry-run cannot be combined with --rollback",u.USAGE);if(G(e.list,e.status))throw new f("Rollback mode does not accept filter options",u.USAGE)}function ee(e){if(!L(e.list,e.status))throw new f(`close-many requires at least one filter to scope the close (for example: ${z}). Refusing to match every item.`,u.USAGE)}function te(e,t){let n=new Map;return[...e].sort((o,i)=>{let s=w(i.id,t,n)-w(o.id,t,n);return s!==0?s:o.id.localeCompare(i.id)})}function H(e,t,n){return n||!g(e.status,t)}function ne(e,t,n){return new Set(e.filter(o=>H(o,t,n)).map(o=>o.id))}async function oe(e){ee(e.options);let t=y(e.settings.schema),n=$(e.options.reason,e.settings.governance.require_close_reason),o=e.options.force===!0,i=await D(e.options.status,V(e.options.list),e.global),{childrenByParent:s,parentByChild:l}=await B(e.pmRoot,e.settings),r=te(i.items,l),c=ne(r,t,o);return{pmRoot:e.pmRoot,settings:e.settings,statusRegistry:t,reason:n,validateCloseMode:e.options.validateClose,force:o,listed:i,matched:r,planRows:X(r,s,c,t,o)}}function se(e){return{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:[]}}async function ie(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 J({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 ue(e,t){let n=E(process.cwd(),t.path);if(!await k(A(n)))throw new f(`Tracker is not initialized at ${n}. Run pm init first.`,u.NOT_FOUND);let o=await q(n),i=e.dryRun===!0,s=W(e);if(F(e.list),s!==void 0)return Z(e,s),K({pmRoot:n,rollbackId:s,options:e,global:t});let l=await oe({pmRoot:n,settings:o,options:e,global:t});if(i)return se(l);let r=new Set(l.planRows.filter(d=>d.action==="close").map(d=>d.id)),c=b(),a=R(_,c),h=await ie({context:l,options:e,closableIds:r,checkpointId:a,nowValue:c}),j={author:e.author,message:e.message??`close-many apply ${a}`,completedAt:e.completedAt,validateClose:l.validateCloseMode,force:l.force,resolution:e.resolution,expectedResult:e.expectedResult,actualResult:e.actualResult},{rows:p,closedIds:Y}=await Q({matched:l.matched,closableIds:r,reason:l.reason,closeOptions:j,global:t});return{mode:"apply",matched_count:l.matched.length,dry_run:!1,...l.reason!==void 0?{reason:l.reason}:{},filters:l.listed.filters,...l.validateCloseMode?{validate_close:l.validateCloseMode}:{},...h?{checkpoint:h}:{},closed_count:p.filter(d=>d.status==="closed").length,skipped_count:p.filter(d=>d.status==="skipped").length,failed_count:p.filter(d=>d.status==="failed").length,rows:p,ids:Y}}var fe={activeListOptions:V,buildActiveChildrenByParent:B,hasCloseManyFilters:L,hasCloseManyRollbackConflicts:G,hierarchyDepth:w,rejectBlankIdsFilter:F,resolveReason:$};export{ue as a,fe as b};
2
+ //# sourceMappingURL=chunk-M357ZCOR.js.map
@@ -1,2 +1,2 @@
1
- import{A as i,C as t}from"./chunk-V5K52PYW.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="b9581c92-5e8a-589d-9681-d4d014e6902b")}catch{}})();function f(e,n="--limit"){if(e===void 0)return;let r=Number(e);if(!Number.isFinite(r)||r<0)throw new t(`${n} must be a non-negative number`,i.USAGE);return Math.floor(r)}export{f as a};
2
- //# sourceMappingURL=chunk-NRDKVOUE.js.map
1
+ import{A as i,C as t}from"./chunk-HS7OVAUN.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="b9581c92-5e8a-589d-9681-d4d014e6902b")}catch{}})();function f(e,n="--limit"){if(e===void 0)return;let r=Number(e);if(!Number.isFinite(r)||r<0)throw new t(`${n} must be a non-negative number`,i.USAGE);return Math.floor(r)}export{f as a};
2
+ //# sourceMappingURL=chunk-M4VEE3FK.js.map
@@ -1,3 +1,3 @@
1
- import{c as ae,o as ie}from"./chunk-377OOXUF.js";import{a as T,b as oe,c as se,d as O,e as le}from"./chunk-CHOQ2VAW.js";import{Aa as ne,i as C,o as I}from"./chunk-BKMZTZYL.js";import{k as te}from"./chunk-ZSH4GNBH.js";import{A as s,C as l,Da as q,Ea as Q,La as k,Lc as ee,Na as J,Oa as Z,Tb as x,_ as X,b as h,lc as R,wa as P,xf as re,zf as b}from"./chunk-V5K52PYW.js";import{execFile as qe}from"node:child_process";import Re from"node:path";import{promisify as Ie}from"node:util";(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]="cdfc451a-1148-50c5-934a-cd8bc2bb39e7")}catch{}})();var Te=Ie(qe),Oe="@unbrained/pm-cli",Ue="latest";function Ne(e){let t=e.project===!0||e.local===!0,r=e.global===!0;if(t&&r)throw new l('Options "--project/--local" and "--global" are mutually exclusive.',s.USAGE);return r?"global":"project"}function S(e){return e.trim().toLowerCase()}function ce(e,t){let r=S(t);return[e.name,e.directory,e.source.input,e.source.location,e.source.package,e.source.repository,e.source.owner&&e.source.repo?`${e.source.owner}/${e.source.repo}`:void 0].some(i=>typeof i=="string"&&S(i)===r)}function Le(e,t){let r=k(process.cwd(),t.path),n=x(r,process.cwd());return{selected_root:e==="global"?n.global:n.project}}async function $e(e,t,r){try{let n=await Te(e,t,{cwd:r?.cwd,encoding:"utf8"});return{stdout:n.stdout,stderr:n.stderr}}catch(n){let i=typeof n=="object"&&n!==null&&"stderr"in n?String(n.stderr??""):"",a=i.trim().length>0?i.trim():n instanceof Error?n.message:String(n);throw new l(`Command failed: ${e} ${t.join(" ")}
1
+ import{c as ae,v as ie}from"./chunk-SD3YXU2U.js";import{a as T,b as oe,c as se,d as O,e as le}from"./chunk-CHOQ2VAW.js";import{Aa as ne,i as C,o as I}from"./chunk-MDTH7SAE.js";import{k as te}from"./chunk-UVVXHGYS.js";import{A as s,Bf as b,C as l,Da as q,Ea as Q,La as k,Lc as ee,Na as J,Oa as Z,Tb as x,_ as X,b as h,lc as R,wa as P,zf as re}from"./chunk-HS7OVAUN.js";import{execFile as qe}from"node:child_process";import Re from"node:path";import{promisify as Ie}from"node:util";(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]="cdfc451a-1148-50c5-934a-cd8bc2bb39e7")}catch{}})();var Te=Ie(qe),Oe="@unbrained/pm-cli",Ue="latest";function Ne(e){let t=e.project===!0||e.local===!0,r=e.global===!0;if(t&&r)throw new l('Options "--project/--local" and "--global" are mutually exclusive.',s.USAGE);return r?"global":"project"}function S(e){return e.trim().toLowerCase()}function ce(e,t){let r=S(t);return[e.name,e.directory,e.source.input,e.source.location,e.source.package,e.source.repository,e.source.owner&&e.source.repo?`${e.source.owner}/${e.source.repo}`:void 0].some(i=>typeof i=="string"&&S(i)===r)}function Le(e,t){let r=k(process.cwd(),t.path),n=x(r,process.cwd());return{selected_root:e==="global"?n.global:n.project}}async function $e(e,t,r){try{let n=await Te(e,t,{cwd:r?.cwd,encoding:"utf8"});return{stdout:n.stdout,stderr:n.stderr}}catch(n){let i=typeof n=="object"&&n!==null&&"stderr"in n?String(n.stderr??""):"",a=i.trim().length>0?i.trim():n instanceof Error?n.message:String(n);throw new l(`Command failed: ${e} ${t.join(" ")}
2
2
  ${a}`,s.GENERIC_FAILURE)}}async function De(){return X(import.meta.url,["../../.."])}function A(e){return typeof e.tag=="string"&&e.tag.trim().length>0?e.tag.trim():Ue}function E(e){return typeof e.packageName=="string"&&e.packageName.trim().length>0?e.packageName.trim():Oe}async function ze(e,t){let r=e.commandRunner??$e,n=E(e),i=A(e),a=`${n}@${i}`,o=["npm","install","-g",a];e.repair===!0&&o.push("--force");let _=await De(),c={requested:!0,status:"planned",package:n,target:a,command:o,before_version:_,repair:e.repair===!0};if(t)return c;try{await r(o[0],o.slice(1));let f=await r("pm",["--version"]);return{...c,status:"updated",after_version:f.stdout.trim()||void 0}}catch(f){return{...c,status:"failed",error:f instanceof Error?f.message:String(f)}}}function Fe(e){return Re.isAbsolute(e)||e.startsWith(".")||e.startsWith("..")||e.startsWith("file:")}function je(e,t){if(e.kind==="npm"){let r=e.input.startsWith("npm:")?e.input.slice(4).trim():e.input.trim();return!Fe(r)&&e.package&&e.package.trim().length>0?`npm:${e.package.trim()}@${t}`:e.input.startsWith("npm:")?e.input:`npm:${e.input}`}return e.input}async function Ve(e,t){let r=je(e,t);return e.kind!=="local"||await h(r)?r:await h(e.location)?e.location:r}function Ke(e,t,r,n){let i=["pm","install",t,r==="global"?"--global":"--project"];return e.kind==="github"&&n&&n.trim().length>0&&i.push("--ref",n.trim()),i}async function _e(e,t){let r=Le(e,t);return(await ae(r.selected_root)).state.entries.filter(i=>i.scope===e)}async function Ye(e,t,r){let n=await _e(e,t);return n.find(i=>ce(i,r.name))??n.find(i=>S(i.directory)===S(r.directory))}async function Me(e,t,r,n,i){let a=A(t),o=await Ve(e.source,a),_=Ke(e.source,o,n,e.source.ref),c={name:e.name,directory:e.directory,scope:n,source:e.source,status:"planned",command:_,previous_version:e.manifest_version};if(i)return c;try{await ie(o,{install:!0,project:n==="project",global:n==="global",ref:e.source.kind==="github"?e.source.ref:void 0},r);let f=await Ye(n,r,e);return{...c,status:"updated",installed_version:f?.manifest_version}}catch(f){return{...c,status:"failed",error:f instanceof Error?f.message:String(f)}}}function We(e,t,r,n){let i=[r?e.status:void 0,...t.map(a=>a.status)].filter(a=>typeof a=="string");return{requested_cli:r,requested_packages:n,planned:i.filter(a=>a==="planned").length,updated:i.filter(a=>a==="updated").length,skipped:i.filter(a=>a==="skipped").length,failed:i.filter(a=>a==="failed").length}}async function Dt(e,t,r){if(t.cliOnly===!0&&t.packagesOnly===!0)throw new l('Options "--cli-only" and "--packages-only" are mutually exclusive.',s.USAGE);let n=Ne(t),i=t.dryRun===!0,a=typeof e=="string"&&e.trim().length>0?e.trim():void 0;if(t.cliOnly===!0&&a)throw new l('A package target cannot be used with "--cli-only".',s.USAGE);let o=!(t.packagesOnly===!0||a),_=t.cliOnly!==!0,c=o?await ze(t,i):{requested:!1,status:"skipped",package:E(t),target:`${E(t)}@${A(t)}`,command:["npm","install","-g",`${E(t)}@${A(t)}`],repair:t.repair===!0,reason:"not_requested"},f=_?await _e(n,r):[];if(a&&(f=f.filter(v=>ce(v,a)),f.length===0))throw new l(`Managed package "${a}" was not found in ${n} scope.`,s.NOT_FOUND);let u=[];for(let v of f)u.push(await Me(v,t,r,n,i));let y=We(c,u,o,_);return{ok:y.failed===0,action:"upgrade",dry_run:i,scope:n,target:a,cli:c,packages:u,summary:y}}(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]="4f4f5f10-793d-5baa-8985-c0ec855b16c4")}catch{}})();var fe=new Set(["item_format"]),de=new Set(["definition_of_done","metadata_required_fields","lifecycle_stale_blocker_reason_patterns","lifecycle_closure_like_blocked_reason_patterns","lifecycle_closure_like_resolution_patterns","lifecycle_closure_like_actual_result_patterns"]),Be=new Set(["history_missing_stream_policy","sprint_release_format_policy","parent_reference_policy","metadata_validation_profile","governance_preset","governance_ownership_enforcement","governance_create_mode_default","governance_close_validation_default","governance_require_close_reason","governance_create_default_type","governance_workflow_enforcement","governance_parent_reference_policy","governance_metadata_validation_profile","governance_force_required_for_stale_lock","test_result_tracking","telemetry_tracking"]),He=new Set(["governance_require_close_reason","governance_force_required_for_stale_lock","test_result_tracking","telemetry_tracking"]),Xe={off:"disabled",on:"enabled",true:"enabled",false:"disabled",enabled:"enabled",disabled:"disabled"};function Qe(e){let t=e.trim().toLowerCase().replaceAll("-","_");if(fe.has(t)||de.has(t)||Be.has(t)||t==="context")return t}function Je(e){let t=e.trim().toLowerCase();return Xe[t]??e}function ge(e,t){let r=Qe(e);return r===void 0?{routable:!1,reason:`Unknown config key "${e}" cannot route a positional value.`}:r==="context"?{routable:!1,reason:"Config set context does not accept a positional value. Use --default-depth, --activity-limit, --stale-threshold-days, or --section-<name> flags."}:fe.has(r)?{routable:!0,flag:"format",value:t}:de.has(r)?{routable:!0,flag:"criterion",values:[t]}:{routable:!0,flag:"policy",value:He.has(r)?Je(t):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]="2a186a29-9d21-5ebe-9c66-3e889253b15b")}catch{}})();var ue=["project","global"],p={definition_of_done:["definition-of-done","definition_of_done"],item_format:["item-format","item_format"],history_missing_stream_policy:["history-missing-stream-policy","history_missing_stream_policy"],sprint_release_format_policy:["sprint-release-format-policy","sprint_release_format_policy"],parent_reference_policy:["parent-reference-policy","parent_reference_policy"],metadata_validation_profile:["metadata-validation-profile","metadata_validation_profile"],metadata_required_fields:["metadata-required-fields","metadata_required_fields"],lifecycle_stale_blocker_reason_patterns:["lifecycle-stale-blocker-reason-patterns","lifecycle_stale_blocker_reason_patterns"],lifecycle_closure_like_blocked_reason_patterns:["lifecycle-closure-like-blocked-reason-patterns","lifecycle_closure_like_blocked_reason_patterns"],lifecycle_closure_like_resolution_patterns:["lifecycle-closure-like-resolution-patterns","lifecycle_closure_like_resolution_patterns"],lifecycle_closure_like_actual_result_patterns:["lifecycle-closure-like-actual-result-patterns","lifecycle_closure_like_actual_result_patterns"],governance_preset:["governance-preset","governance_preset"],governance_ownership_enforcement:["governance-ownership-enforcement","governance_ownership_enforcement"],governance_create_mode_default:["governance-create-mode-default","governance_create_mode_default"],governance_close_validation_default:["governance-close-validation-default","governance_close_validation_default"],governance_require_close_reason:["governance-require-close-reason","governance_require_close_reason"],governance_create_default_type:["governance-create-default-type","governance_create_default_type"],governance_workflow_enforcement:["governance-workflow-enforcement","governance_workflow_enforcement"],governance_parent_reference_policy:["governance-parent-reference-policy","governance_parent_reference_policy"],governance_metadata_validation_profile:["governance-metadata-validation-profile","governance_metadata_validation_profile"],governance_force_required_for_stale_lock:["governance-force-required-for-stale-lock","governance_force_required_for_stale_lock"],test_result_tracking:["test-result-tracking","test_result_tracking"],telemetry_tracking:["telemetry-tracking","telemetry_tracking"],context:["context"]},Ze=Object.keys(p).map(e=>p[e][0]),xe=Object.fromEntries(Object.keys(p).flatMap(e=>p[e].map(t=>[t,e]))),et={definition_of_done:"Definition of Done criteria list.",item_format:"Default item file format.",history_missing_stream_policy:"Missing history stream handling policy.",sprint_release_format_policy:"Sprint/release format validation policy.",parent_reference_policy:"Parent reference validation policy.",metadata_validation_profile:"Validate metadata profile policy (core|strict|custom).",metadata_required_fields:"Validate custom metadata required-fields list.",lifecycle_stale_blocker_reason_patterns:"Validate lifecycle stale-blocker reason substring patterns (criteria list).",lifecycle_closure_like_blocked_reason_patterns:"Validate lifecycle closure-like blocked_reason substring patterns (criteria list).",lifecycle_closure_like_resolution_patterns:"Validate lifecycle closure-like resolution substring patterns (criteria list).",lifecycle_closure_like_actual_result_patterns:"Validate lifecycle closure-like actual_result substring patterns (criteria list).",governance_preset:"Governance preset policy (minimal|default|strict|custom).",governance_ownership_enforcement:"Governance ownership enforcement policy (none|warn|strict).",governance_create_mode_default:"Governance default create mode (progressive|strict).",governance_close_validation_default:"Governance default close validation mode (off|warn|strict).",governance_require_close_reason:"Governance close-reason requirement policy (enabled|disabled).",governance_create_default_type:"Governance default item type for `pm create` when --type is omitted.",governance_workflow_enforcement:"Governance per-type transition enforcement mode (off|warn|strict).",governance_parent_reference_policy:"Governance parent reference policy (warn|strict_error).",governance_metadata_validation_profile:"Governance metadata validation profile (core|strict|custom).",governance_force_required_for_stale_lock:"Governance stale-lock force policy (enabled|disabled).",test_result_tracking:"Item-level linked test result persistence policy.",telemetry_tracking:"Telemetry usage reporting policy.",context:"Context command settings (depth, section toggles, limits)."},tt=["lifecycle_stale_blocker_reason_patterns","lifecycle_closure_like_blocked_reason_patterns","lifecycle_closure_like_resolution_patterns","lifecycle_closure_like_actual_result_patterns"],rt=new Set(["metadata_required_fields",...tt]),nt=new Set(["test_result_tracking","telemetry_tracking"]),at=new Set(["governance_require_close_reason","governance_force_required_for_stale_lock"]),it=new Set(["governance_ownership_enforcement","governance_create_mode_default","governance_close_validation_default"]),ot=new Set(["governance_parent_reference_policy","governance_metadata_validation_profile","governance_workflow_enforcement"]),st=new Set(["governance_preset","governance_create_default_type"]),ye=e=>rt.has(e),lt=e=>it.has(e),ct=e=>ot.has(e),_t=e=>st.has(e);function U(e){return e==="definition_of_done"||ye(e)}function ve(e){if(ue.includes(e))return e;throw new l(`Invalid config scope "${e}". Allowed: ${ue.join(", ")}`,s.USAGE)}function we(e){if(e==="get"||e==="set"||e==="list"||e==="export")return e;throw new l(`Invalid config action "${e}". Allowed: get, set, list, export`,s.USAGE)}function he(e){let t=xe[e];if(t)return t;let r=T.map(n=>n.key).join(", ");throw new l(`Invalid config key "${e}". Supported: ${Ze.join(", ")} (underscore variants also accepted). Nested leaf settings: ${r}.`,s.USAGE)}function be(e,t){let r=[...new Set((e??[]).map(n=>n.trim()).filter(n=>n.length>0))].sort((n,i)=>n.localeCompare(i));if(t){if(r.length>0)throw new l("Config set definition-of-done cannot combine --clear-criteria with --criterion values",s.USAGE);return[]}if(r.length===0)throw new l("Config set definition-of-done requires at least one non-empty --criterion value (or --clear-criteria to clear)",s.USAGE);return r}function ke(e){let t=e?.trim().toLowerCase();if(t==="toon")return"toon";throw t==="json_markdown"?new l("Config set item-format no longer accepts json_markdown. Markdown item files are legacy read/migration input only.",s.USAGE):new l("Config set item-format requires --format toon",s.USAGE)}function D(e){let t=e?.trim().toLowerCase().replaceAll("-","_");if(t==="auto_create"||t==="strict_error")return t;throw new l("Config set history-missing-stream-policy requires --policy with one of: auto_create, strict_error",s.USAGE)}function z(e){let t=e?.trim().toLowerCase().replaceAll("-","_");if(t==="enabled"||t==="disabled")return t;throw new l("Config set test-result-tracking requires --policy with one of: enabled, disabled",s.USAGE)}function F(e){let t=e?.trim().toLowerCase().replaceAll("-","_");if(t==="enabled"||t==="disabled")return t;throw new l("Config set telemetry-tracking requires --policy with one of: enabled, disabled",s.USAGE)}function G(e){let t=e?.trim().toLowerCase().replaceAll("-","_");if(t==="core"||t==="strict"||t==="custom")return t;throw new l("Config set metadata-validation-profile requires --policy with one of: core, strict, custom",s.USAGE)}function j(e){let t=e?.trim().toLowerCase().replaceAll("-","_");if(t==="minimal"||t==="default"||t==="strict"||t==="custom")return t;throw new l("Config set governance-preset requires --policy with one of: minimal, default, strict, custom",s.USAGE)}function V(e){let t=e?.trim().toLowerCase().replaceAll("-","_");if(t==="none"||t==="warn"||t==="strict")return t;throw new l("Config set governance-ownership-enforcement requires --policy with one of: none, warn, strict",s.USAGE)}function K(e){let t=e?.trim().toLowerCase().replaceAll("-","_");if(t==="progressive"||t==="strict")return t;throw new l("Config set governance-create-mode-default requires --policy with one of: progressive, strict",s.USAGE)}function Y(e){let t=e?.trim().toLowerCase().replaceAll("-","_");if(t==="off"||t==="warn"||t==="strict")return t;if(t==="none"||t==="disabled")return"off";throw new l("Config set governance-close-validation-default requires --policy with one of: off, warn, strict",s.USAGE)}function M(e){let t=typeof e=="string"?e.trim().toLowerCase().replaceAll("-","_"):void 0;if(t==="off"||t==="warn"||t==="strict")return t;if(t==="none"||t==="disabled")return"off";throw new l("Config set governance-workflow-enforcement requires one of: off, warn, strict",s.USAGE)}function W(e){let t=e?.trim().toLowerCase().replaceAll("-","_");if(t==="enabled"||t==="disabled")return t;throw new l("Config set governance-force-required-for-stale-lock requires --policy with one of: enabled, disabled",s.USAGE)}function B(e){let t=e?.trim().toLowerCase().replaceAll("-","_");if(t==="enabled"||t==="disabled")return t;throw new l("Config set governance-require-close-reason requires --policy with one of: enabled, disabled",s.USAGE)}function N(e,t){switch(e){case"history_missing_stream_policy":return D(t);case"sprint_release_format_policy":return I(t);case"parent_reference_policy":case"governance_parent_reference_policy":return C(t);case"metadata_validation_profile":case"governance_metadata_validation_profile":return G(t);case"governance_preset":return j(t);case"governance_ownership_enforcement":return V(t);case"governance_create_mode_default":return K(t);case"governance_close_validation_default":return Y(t);case"governance_require_close_reason":return B(t);case"governance_workflow_enforcement":return M(t);case"governance_force_required_for_stale_lock":return W(t);case"test_result_tracking":return z(t);case"telemetry_tracking":return F(t);default:return t.trim().toLowerCase().replaceAll("-","_")}}var me={author:"author",acceptance_criteria:"acceptance_criteria","acceptance-criteria":"acceptance_criteria",estimated_minutes:"estimated_minutes","estimated-minutes":"estimated_minutes",estimate:"estimated_minutes",close_reason:"close_reason","close-reason":"close_reason",reviewer:"reviewer",risk:"risk",confidence:"confidence",sprint:"sprint",release:"release"},ft=["author","acceptance_criteria","estimated_minutes","close_reason","reviewer","risk","confidence","sprint","release"];function Ce(e,t){let r=[...new Set((e??[]).map(a=>a.trim()).filter(a=>a.length>0))];if(t){if(r.length>0)throw new l("Config set metadata-required-fields cannot combine --clear-criteria with --criterion values",s.USAGE);return[]}if(r.length===0)throw new l("Config set metadata-required-fields requires at least one --criterion value (or --clear-criteria to clear)",s.USAGE);let n=r.map(a=>a.toLowerCase().replaceAll("-","_")),i=n.filter(a=>me[a]===void 0);if(i.length>0)throw new l(`Config set metadata-required-fields received unsupported values: ${i.join(", ")}. Supported values: ${ft.join(", ")}`,s.USAGE);return[...new Set(n.map(a=>me[a]))].sort((a,o)=>a.localeCompare(o))}function dt(e,t,r){let n=[...new Set((t??[]).map(i=>i.trim().toLowerCase()).filter(i=>i.length>0))].sort((i,a)=>i.localeCompare(a));if(r){if(n.length>0)throw new l(`Config set ${p[e][0]} cannot combine --clear-criteria with --criterion values`,s.USAGE);return[]}if(n.length===0)throw new l(`Config set ${p[e][0]} requires at least one --criterion value (or --clear-criteria to clear)`,s.USAGE);return n}function Ee(e){return[...new Set(e)].sort((t,r)=>t.localeCompare(r))}function gt(e,t){if(e==="list"||e==="export"){if(typeof t=="string"&&t.trim().length>0)throw new l(`Config action "${e}" does not accept <key>`,s.USAGE);return}if(typeof t!="string"||t.trim().length===0)throw new l(`Config action "${e}" requires <key>`,s.USAGE);return he(t)}function Se(e){if(!e)throw new l("Config action requires <key>",s.USAGE)}var ut={definition_of_done:e=>[...e.workflow.definition_of_done],item_format:e=>e.item_format,history_missing_stream_policy:e=>e.history.missing_stream,sprint_release_format_policy:e=>e.validation.sprint_release_format,parent_reference_policy:e=>e.validation.parent_reference,metadata_validation_profile:e=>e.validation.metadata_profile,metadata_required_fields:e=>[...e.validation.metadata_required_fields],lifecycle_stale_blocker_reason_patterns:e=>[...e.validation.lifecycle_stale_blocker_reason_patterns],lifecycle_closure_like_blocked_reason_patterns:e=>[...e.validation.lifecycle_closure_like_blocked_reason_patterns],lifecycle_closure_like_resolution_patterns:e=>[...e.validation.lifecycle_closure_like_resolution_patterns],lifecycle_closure_like_actual_result_patterns:e=>[...e.validation.lifecycle_closure_like_actual_result_patterns],governance_preset:e=>e.governance.preset,governance_ownership_enforcement:e=>e.governance.ownership_enforcement,governance_create_mode_default:e=>e.governance.create_mode_default,governance_close_validation_default:e=>e.governance.close_validation_default,governance_require_close_reason:e=>e.governance.require_close_reason?"enabled":"disabled",governance_create_default_type:e=>e.governance.create_default_type??"",governance_workflow_enforcement:e=>e.governance.workflow_enforcement??"off",governance_parent_reference_policy:e=>e.governance.parent_reference,governance_metadata_validation_profile:e=>e.governance.metadata_profile,governance_force_required_for_stale_lock:e=>e.governance.force_required_for_stale_lock?"enabled":"disabled",test_result_tracking:e=>e.testing.record_results_to_items?"enabled":"disabled",telemetry_tracking:e=>e.telemetry.enabled?"enabled":"disabled",context:e=>({default_depth:e.context.default_depth,activity_limit:e.context.activity_limit,stale_threshold_days:e.context.stale_threshold_days,sections:{...e.context.sections}})};function H(e,t){return ut[t](e)}function m(e,t){return t.length===0?e:{...e,warnings:t}}async function mt(e,t){let r=process.cwd(),n=e==="project"?k(r,t.path):J(r),i=Z(n);if(e==="project"&&!await h(i))throw new l(`Tracker is not initialized at ${n}. Run pm init first.`,s.NOT_FOUND);return{pmRoot:n,settingsPath:i}}function pt(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(t==="true"||t==="enabled"||t==="on"||t==="1")return!0;if(t==="false"||t==="disabled"||t==="off"||t==="0")return!1;throw new l(`Context section toggle must be true|false|enabled|disabled, got "${e}"`,s.USAGE)}function pe(e,t){let r=e.trim(),n=Number(r);if(/^\d+$/u.test(r)&&Number.isSafeInteger(n)&&n>0)return n;throw new l(`Context ${t} must be a positive integer`,s.USAGE)}async function yt(e,t,r,n,i){let a=!1,o=e.context;if(t.defaultDepth!==void 0){let c=t.defaultDepth.trim().toLowerCase();if(!P.includes(c))throw new l(`Context --default-depth must be one of ${P.join("|")}`,s.USAGE);o.default_depth!==c&&(o.default_depth=c,a=!0)}if(t.activityLimit!==void 0){let c=pe(t.activityLimit,"--activity-limit");o.activity_limit!==c&&(o.activity_limit=c,a=!0)}if(t.staleThresholdDays!==void 0){let c=pe(t.staleThresholdDays,"--stale-threshold-days");o.stale_threshold_days!==c&&(o.stale_threshold_days=c,a=!0)}let _=[["hierarchy",t.sectionHierarchy],["activity",t.sectionActivity],["progress",t.sectionProgress],["blockers",t.sectionBlockers],["files",t.sectionFiles],["workload",t.sectionWorkload],["staleness",t.sectionStaleness],["tests",t.sectionTests]];for(let[c,f]of _){let u=pt(f);if(u!==void 0){let y=c;o.sections[y]!==u&&(o.sections[y]=u,a=!0)}}return a&&await b(r.pmRoot,e,"config:set:context"),m({scope:n,key:"context",context_settings:{default_depth:o.default_depth,activity_limit:o.activity_limit,stale_threshold_days:o.stale_threshold_days,sections:{...o.sections}},settings_path:r.settingsPath,changed:a},i)}function vt(e,t,r){if(r.value!==void 0&&r.value!==t)throw new l(`Config set ${e} received both positional value "${t}" and --value "${r.value}". Pass only one.`,s.USAGE);return{...r,value:t}}function Ae(e,t,r,n,i,a){if(i===void 0)return a;if(e!=="set")throw new l(`Config action "${e}" does not accept a positional value. Only "set" takes <value>.`,s.USAGE);if(typeof t!="string"||t.trim().length===0)throw new l('Config action "set" requires <key> before a positional <value>.',s.USAGE);if(n)return vt(t,i,a);Se(r);let o=ge(r,i);if(!o.routable)throw new l(o.reason,s.USAGE);if(o.flag==="criterion"){if(a.criterion!==void 0&&a.criterion.length>0)throw new l(`Config set ${t} received both positional value "${i}" and --criterion. Pass criteria via --criterion only when supplying more than one value.`,s.USAGE);return{...a,criterion:o.values}}if(o.flag==="format")return{...a,format:o.value};if(a.policy!==void 0&&N(r,a.policy)!==N(r,o.value))throw new l(`Config set ${t} received both positional value "${i}" and --policy "${a.policy}". Pass only one.`,s.USAGE);return{...a,policy:o.value}}function wt(e){let t=Object.keys(p).map(n=>({key:n,aliases:p[n],value_kind:n==="context"?"object":U(n)?"string_array":"enum",set_flags:n==="context"?["--default-depth","--activity-limit","--stale-threshold-days","--section-<name>"]:U(n)?["--criterion","--clear-criteria"]:n==="item_format"?["--format"]:["--policy"],summary:et[n],value:H(e.settings,n)})),r=T.map(n=>({key:n.key,canonical_key:n.key.replaceAll("_","-"),path:n.path,kind:n.kind,value:O(e.settings,n),summary:n.summary,...n.choices?{choices:[...n.choices]}:{},...n.min===void 0?{}:{min:n.min},...n.max===void 0?{}:{max:n.max}}));return m({scope:e.scope,keys:t,nested_settings:r,count:t.length,settings_path:e.target.settingsPath,changed:!1},e.warnings)}function ht(e){let t=Object.fromEntries(Object.keys(p).map(r=>[r,H(e.settings,r)]));return m({scope:e.scope,values:t,settings_path:e.target.settingsPath,changed:!1},e.warnings)}function bt(e,t){let r=H(e.settings,t),n={scope:e.scope,key:t,settings_path:e.target.settingsPath,changed:!1};return t==="item_format"?m({...n,format:e.settings.item_format,has_explicit_item_format:e.metadata.has_explicit_item_format},e.warnings):t==="context"?m({...n,context_settings:r},e.warnings):Array.isArray(r)?m({...n,criteria:r},e.warnings):m({...n,policy:r},e.warnings)}async function kt(e,t,r,n){if(t==="get"){let _=O(e.settings,r);return m({scope:e.scope,key:r.key,nested_setting:{key:r.key,path:r.path,kind:r.kind,value:_},settings_path:e.target.settingsPath,changed:!1},e.warnings)}let i=n.value;if(typeof i!="string")throw new l(`Config set ${r.key} requires a value. Pass it positionally (\`pm config ${e.scope} set ${r.key} <value>\`) or via --value.`,s.USAGE);let a=se(r,i);if(!a.ok)throw new l(a.error.message,s.USAGE);let o=le(e.settings,r,a.parsed.value);return o&&await b(e.target.pmRoot,e.settings,`config:set:${r.path}`),m({scope:e.scope,key:r.key,nested_setting:{key:r.key,path:r.path,kind:r.kind,value:a.parsed.value},settings_path:e.target.settingsPath,changed:o},e.warnings)}async function d(e,t,r){t&&await b(e.target.pmRoot,e.settings,r)}function L(e,t,r){return e!==r||t!==r}function g(e,t,r,n){return m({scope:e.scope,key:t,policy:r,settings_path:e.target.settingsPath,changed:n},e.warnings)}function $(e,t,r,n){return m({scope:e.scope,key:t,criteria:r,settings_path:e.target.settingsPath,changed:n},e.warnings)}async function Ct(e,t){let r=ke(t.format),n=e.settings.item_format!==r||!e.metadata.has_explicit_item_format,i;if(n){let a=q(e.settings,R()),o=await ne(e.target.pmRoot,r,"config:set:item_format:migrate",a.type_to_folder,e.settings.schema);i={target_format:o.target_format,scanned:o.scanned,migrated:o.migrated,removed:o.removed,warnings:o.warnings},e.settings.item_format=r,await b(e.target.pmRoot,e.settings,"config:set:item_format")}return m({scope:e.scope,key:"item_format",format:e.settings.item_format,has_explicit_item_format:!0,migration:i,settings_path:e.target.settingsPath,changed:n},e.warnings)}async function Et(e,t,r){if(t==="history_missing_stream_policy"){let a=D(r.policy),o=e.settings.history.missing_stream!==a;return e.settings.history.missing_stream=a,await d(e,o,"config:set:history_missing_stream_policy"),g(e,t,e.settings.history.missing_stream,o)}if(t==="sprint_release_format_policy"){let a=I(r.policy),o=e.settings.validation.sprint_release_format!==a;return e.settings.validation.sprint_release_format=a,await d(e,o,"config:set:sprint_release_format_policy"),g(e,t,e.settings.validation.sprint_release_format,o)}if(t==="parent_reference_policy"){let a=C(r.policy),o=e.settings.validation.parent_reference!==a||e.settings.governance.preset!=="custom"||e.settings.governance.parent_reference!==a;return e.settings.validation.parent_reference=a,e.settings.governance.preset="custom",e.settings.governance.parent_reference=a,await d(e,o,"config:set:parent_reference_policy"),g(e,t,e.settings.validation.parent_reference,o)}let n=G(r.policy),i=e.settings.validation.metadata_profile!==n||e.settings.governance.preset!=="custom"||e.settings.governance.metadata_profile!==n;return e.settings.validation.metadata_profile=n,e.settings.governance.preset="custom",e.settings.governance.metadata_profile=n,await d(e,i,"config:set:metadata_validation_profile"),g(e,t,e.settings.validation.metadata_profile,i)}async function St(e,t,r){if(t==="metadata_required_fields"){let _=Ce(r.criterion,r.clearCriteria),c=_.length!==e.settings.validation.metadata_required_fields.length||_.some((f,u)=>f!==e.settings.validation.metadata_required_fields[u]);return e.settings.validation.metadata_required_fields=_,await d(e,c,"config:set:metadata_required_fields"),$(e,t,[...e.settings.validation.metadata_required_fields],c)}let i={lifecycle_stale_blocker_reason_patterns:e.settings.validation.lifecycle_stale_blocker_reason_patterns,lifecycle_closure_like_blocked_reason_patterns:e.settings.validation.lifecycle_closure_like_blocked_reason_patterns,lifecycle_closure_like_resolution_patterns:e.settings.validation.lifecycle_closure_like_resolution_patterns,lifecycle_closure_like_actual_result_patterns:e.settings.validation.lifecycle_closure_like_actual_result_patterns}[t],a=dt(t,r.criterion,r.clearCriteria),o=a.length!==i.length||a.some((_,c)=>_!==i[c]);return i.splice(0,i.length,...a),await d(e,o,`config:set:${t}`),$(e,t,[...i],o)}async function At(e,t,r){if(t==="governance_preset"){let c=j(r.policy),f=e.settings.governance.preset!==c;return e.settings.governance.preset=c,await d(e,f,"config:set:governance_preset"),g(e,t,e.settings.governance.preset,f)}let n=typeof r.policy=="string",i=n?r.policy.trim():"";if(n&&i.length===0){let c=e.settings.governance.create_default_type!==void 0;return delete e.settings.governance.create_default_type,await d(e,c,"config:set:governance_create_default_type"),g(e,t,e.settings.governance.create_default_type??"",c)}if(i.length===0)throw new l('Config set governance-create-default-type requires an item type value (or an empty value "" to clear it)',s.USAGE);let a=q(e.settings,R()),o=Q(i,a);if(!o)throw new l(te(i,a.types,ee(e.target.pmRoot,e.settings.schema)),s.USAGE);let _=e.settings.governance.create_default_type!==o;return e.settings.governance.create_default_type=o,await d(e,_,"config:set:governance_create_default_type"),g(e,t,e.settings.governance.create_default_type,_)}async function Gt(e,t,r){if(t==="governance_ownership_enforcement"){let a=V(r.policy),o=e.settings.governance.preset!=="custom"||e.settings.governance.ownership_enforcement!==a;return e.settings.governance.preset="custom",e.settings.governance.ownership_enforcement=a,await d(e,o,"config:set:governance_ownership_enforcement"),g(e,t,e.settings.governance.ownership_enforcement,o)}if(t==="governance_create_mode_default"){let a=K(r.policy),o=e.settings.governance.preset!=="custom"||e.settings.governance.create_mode_default!==a;return e.settings.governance.preset="custom",e.settings.governance.create_mode_default=a,await d(e,o,"config:set:governance_create_mode_default"),g(e,t,e.settings.governance.create_mode_default,o)}let n=Y(r.policy),i=e.settings.governance.preset!=="custom"||e.settings.governance.close_validation_default!==n;return e.settings.governance.preset="custom",e.settings.governance.close_validation_default=n,await d(e,i,"config:set:governance_close_validation_default"),g(e,t,e.settings.governance.close_validation_default,i)}async function Pt(e,t,r){if(t==="governance_parent_reference_policy"){let a=C(r.policy),o=e.settings.governance.preset!=="custom"||L(e.settings.governance.parent_reference,e.settings.validation.parent_reference,a);return e.settings.governance.preset="custom",e.settings.governance.parent_reference=a,e.settings.validation.parent_reference=a,await d(e,o,"config:set:governance_parent_reference_policy"),g(e,t,e.settings.governance.parent_reference,o)}if(t==="governance_metadata_validation_profile"){let a=G(r.policy),o=e.settings.governance.preset!=="custom"||L(e.settings.governance.metadata_profile,e.settings.validation.metadata_profile,a);return e.settings.governance.preset="custom",e.settings.governance.metadata_profile=a,e.settings.validation.metadata_profile=a,await d(e,o,"config:set:governance_metadata_validation_profile"),g(e,t,e.settings.governance.metadata_profile,o)}let n=M(r.policy),i=(e.settings.governance.workflow_enforcement??"off")!==n;return e.settings.governance.workflow_enforcement=n,await d(e,i,"config:set:governance_workflow_enforcement"),g(e,t,e.settings.governance.workflow_enforcement,i)}async function qt(e,t,r){if(t==="governance_require_close_reason"){let _=B(r.policy)==="enabled",c=e.settings.governance.require_close_reason!==_;return e.settings.governance.require_close_reason=_,await d(e,c,"config:set:governance_require_close_reason"),g(e,t,e.settings.governance.require_close_reason?"enabled":"disabled",c)}let i=W(r.policy)==="enabled",a=e.settings.governance.preset!=="custom"||e.settings.governance.force_required_for_stale_lock!==i;return e.settings.governance.preset="custom",e.settings.governance.force_required_for_stale_lock=i,await d(e,a,"config:set:governance_force_required_for_stale_lock"),g(e,t,e.settings.governance.force_required_for_stale_lock?"enabled":"disabled",a)}async function Rt(e,t,r){if(t==="test_result_tracking"){let _=z(r.policy)==="enabled",c=e.settings.testing.record_results_to_items!==_;return e.settings.testing.record_results_to_items=_,await d(e,c,"config:set:test_result_tracking"),g(e,t,e.settings.testing.record_results_to_items?"enabled":"disabled",c)}let i=F(r.policy)==="enabled",a=e.settings.telemetry.enabled!==i||!e.settings.telemetry.first_run_prompt_completed;return e.settings.telemetry.enabled=i,e.settings.telemetry.first_run_prompt_completed=!0,await d(e,a,"config:set:telemetry_tracking"),g(e,t,e.settings.telemetry.enabled?"enabled":"disabled",a)}async function It(e,t,r){let n=be(r.criterion,r.clearCriteria),i=n.length!==e.settings.workflow.definition_of_done.length||n.some((a,o)=>a!==e.settings.workflow.definition_of_done[o]);return e.settings.workflow.definition_of_done=n,await d(e,i,"config:set:definition_of_done"),$(e,t,[...e.settings.workflow.definition_of_done],i)}async function Tt(e,t,r){if(r.clearCriteria===!0&&!U(t))throw new l("--clear-criteria is only supported with config set criteria-list keys",s.USAGE);return t==="item_format"?Ct(e,r):t==="context"?yt(e.settings,r,e.target,e.scope,e.warnings):t==="definition_of_done"?It(e,t,r):ye(t)?St(e,t,r):nt.has(t)?Rt(e,t,r):at.has(t)?qt(e,t,r):lt(t)?Gt(e,t,r):ct(t)?Pt(e,t,r):_t(t)?At(e,t,r):Et(e,t,r)}async function rr(e,t,r,n,i,a){let o=ve(e),_=we(t),c=_==="get"||_==="set"?oe(r):void 0,f=c?void 0:gt(_,r),u=Ae(_,r,f,c,a,n),y=await mt(o,i),{settings:v,metadata:Ge,warnings:Pe}=await re(y.pmRoot),w={scope:o,target:y,settings:v,metadata:Ge,warnings:Ee(Pe)};return c?kt(w,_,c,u):_==="list"?wt(w):_==="export"?ht(w):(Se(f),_==="get"?bt(w,f):Tt(w,f,u))}var nr={hasGovernanceValidationMirrorChange:L,applyPositionalValue:Ae,normalizeAction:we,normalizeCriteria:be,normalizeGovernanceCloseValidationDefault:Y,normalizeGovernanceCreateModeDefault:K,normalizeGovernanceForceRequiredForStaleLockPolicy:W,normalizeGovernanceOwnershipEnforcement:V,normalizeGovernancePreset:j,normalizeGovernanceRequireCloseReasonPolicy:B,normalizeGovernanceWorkflowEnforcement:M,normalizeHistoryMissingStreamPolicy:D,normalizeItemFormat:ke,normalizeKey:he,normalizeMetadataRequiredFields:Ce,normalizePolicyForConflict:N,normalizeScope:ve,normalizeTelemetryTrackingPolicy:F,normalizeTestResultTrackingPolicy:z,normalizeValidateMetadataProfile:G,normalizeWarnings:Ee};export{Dt as a,rr as b,nr as c};
3
- //# sourceMappingURL=chunk-HTYC76A4.js.map
3
+ //# sourceMappingURL=chunk-MCS73BKB.js.map
@@ -1,4 +1,4 @@
1
- import{A as p,Ad as cr,B as he,C as h,Cb as We,D as w,Da as He,F as ce,G as Q,H as b,I as rr,Jf as tt,Kf as rt,Na as J,Oa as ge,Pa as Ye,Qa as nr,R as L,Sc as ir,Ta as or,Tc as sr,Z as de,_ as qe,ad as Ke,b as z,bb as Be,c as v,d as S,e as Ue,f as ae,gd as Qe,hd as Je,kf as et,lc as Ge,sf as Ee,t as je,td as ar,uc as ye,ud as Xe,xf as X,yf as V,zd as Ze,zf as ue}from"./chunk-V5K52PYW.js";import{mkdir as _o,readFile as ho}from"node:fs/promises";import dr 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]="71a8cd89-54fc-5f8a-b93b-9e4a79bb34b6")}catch{}})();function go(e){let t=e.trim();if(!t)throw new h("--rollback requires a non-empty checkpoint ID",p.USAGE);if(!/^[a-zA-Z0-9._-]+$/.test(t))throw new h("--rollback checkpoint ID must match [a-zA-Z0-9._-]+",p.USAGE);return t}function yo(e,t){let r=t.replace(/[-:.TZ]/g,"").slice(0,14),n=Math.random().toString(36).slice(2,8);return`${e}-${r}-${n}`}function ur(e,t){return dr.join(e,"checkpoints",t)}function lr(e,t,r){return dr.join(ur(e,t),`${r}.json`)}async function Eo(e,t,r,n){let o=ur(e,t);await _o(o,{recursive:!0});let i=lr(e,t,r);return await S(i,`${JSON.stringify(n,null,2)}
1
+ import{A as p,Ad as cr,Af as V,B as he,Bf as ue,C as h,Cb as We,D as w,Da as He,F as ce,G as Q,H as b,I as rr,Lf as tt,Mf as rt,Na as J,Oa as ge,Pa as Ye,Qa as nr,R as L,Sc as ir,Ta as or,Tc as sr,Z as de,_ as qe,ad as Ke,b as z,bb as Be,c as v,d as S,e as Ue,f as ae,gd as Qe,hd as Je,lc as Ge,mf as et,t as je,td as ar,uc as ye,ud as Xe,uf as Ee,zd as Ze,zf as X}from"./chunk-HS7OVAUN.js";import{mkdir as _o,readFile as ho}from"node:fs/promises";import dr 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]="71a8cd89-54fc-5f8a-b93b-9e4a79bb34b6")}catch{}})();function go(e){let t=e.trim();if(!t)throw new h("--rollback requires a non-empty checkpoint ID",p.USAGE);if(!/^[a-zA-Z0-9._-]+$/.test(t))throw new h("--rollback checkpoint ID must match [a-zA-Z0-9._-]+",p.USAGE);return t}function yo(e,t){let r=t.replace(/[-:.TZ]/g,"").slice(0,14),n=Math.random().toString(36).slice(2,8);return`${e}-${r}-${n}`}function ur(e,t){return dr.join(e,"checkpoints",t)}function lr(e,t,r){return dr.join(ur(e,t),`${r}.json`)}async function Eo(e,t,r,n){let o=ur(e,t);await _o(o,{recursive:!0});let i=lr(e,t,r);return await S(i,`${JSON.stringify(n,null,2)}
2
2
  `),i}function wo(e,t){if(!Array.isArray(e.items))throw new h(`Checkpoint ${t} is missing items`,p.GENERIC_FAILURE);return e.items.map(r=>{if(!r||typeof r!="object")throw new h(`Checkpoint ${t} contains an invalid item entry`,p.GENERIC_FAILURE);let n=r;if(typeof n.id!="string"||n.id.trim().length===0)throw new h(`Checkpoint ${t} contains an item entry without ID`,p.GENERIC_FAILURE);if(typeof n.target_updated_at!="string"||n.target_updated_at.trim().length===0)throw new h(`Checkpoint ${t} contains an item entry without target_updated_at`,p.GENERIC_FAILURE);return{id:n.id.trim(),target_updated_at:n.target_updated_at.trim()}})}async function bo(e,t,r,n){let o=go(r),i=lr(e,t,o);if(!await z(i))throw new h(`Checkpoint ${o} not found`,p.NOT_FOUND);let s=await ho(i,"utf8"),a;try{a=JSON.parse(s)}catch(u){throw new h(`Checkpoint ${o} contains invalid JSON: ${b(u)}`,p.GENERIC_FAILURE)}if(!a||typeof a!="object")throw new h(`Checkpoint ${o} is invalid`,p.GENERIC_FAILURE);let c=a;if(c.schema_version!==n)throw new h(`Checkpoint ${o} has unsupported schema version`,p.GENERIC_FAILURE);let d=wo(c,o);return{record:c,items:d,path:i,id:typeof c.id=="string"?c.id:o,created_at:typeof c.created_at=="string"?c.created_at:L(),author:typeof c.author=="string"?c.author:"unknown"}}async function To(e,t){let r=[],n=[];for(let o of e)try{let i=await t(o.id,o.target_updated_at);r.push({id:o.id,status:"restored",changed_fields:i.changed_fields,warnings:i.warnings}),n.push(o.id)}catch(i){r.push({id:o.id,status:"failed",error:b(i)})}return{rows:r,restored_ids:n,failed_count:r.filter(o=>o.status==="failed").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]="4507a449-1c20-5684-9ed8-e72c9bc694c1")}catch{}})();function Z(e){if(typeof e!="string")return null;let t=e.trim().toLowerCase();return t.length>0?t:null}function So(e,t){let r=Z(t);return!e||!r?null:[...e.search_providers].reverse().find(o=>(Z(o.runtime_definition?.name)??Z(o.definition?.name))===r)??null}function xo(e,t){let r=Z(t);return!e||!r?null:[...e.vector_store_adapters].reverse().find(o=>(Z(o.runtime_definition?.name)??Z(o.definition?.name))===r)??null}function Fd(e){return e.runtime_definition??e.definition}import{readFile as Io}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]="7426082f-94a6-5b4e-9748-d3faab2fe1d4")}catch{}})();var Ao=e=>Io(e,"utf8");async function vo(e,t,r=Ao){if(t!==void 0)throw new h("--body and --body-file are mutually exclusive; provide the body inline with --body or from a file with --body-file, not both.",p.USAGE,{code:"body_file_conflicts_with_body",required:"Choose exactly one body source.",why:"Both --body and --body-file set the item body; allowing both would make the effective body ambiguous.",nextSteps:["Re-run with only --body <text> or only --body-file <path>."]});let n=e.trim();if(n.length===0)throw new h("--body-file requires a file path.",p.USAGE,{code:"body_file_missing_path",required:"Pass a readable file path: --body-file <path>.",why:"An empty --body-file value has no file to read the body from."});try{return await r(n)}catch(o){let i=o?.code,s=i==="EISDIR",a=i?` (${i})`:"";throw new h(s?`--body-file "${n}" is a directory, not a file. Point it at a readable file.`:`--body-file could not read "${n}"${a}. Check that the file exists and is readable.`,p.NOT_FOUND,{code:"body_file_unreadable",required:"Point --body-file at an existing, readable file.",why:`The body content is loaded from the file at the supplied path, so an unreadable path cannot produce a body${i?` (underlying error: ${i})`:""}.`,nextSteps:[`Verify the path: ls -l "${n}"`,"Or pass the body inline with --body <text>."]})}}(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]="4a376062-2e23-5991-80a5-27183909caf3")}catch{}})();var Co=new Set(["none","null","undefined"]);function Wd(e){let t=e?.trim().toLowerCase().replaceAll("-","_");if(t==="warn"||t==="strict_error")return t;if(t==="strict")return"strict_error";throw new h("Config set parent-reference-policy requires --policy with one of: warn, strict_error (alias: strict)",p.USAGE)}function Lo(e){if(typeof e!="string")throw new h("--parent must be a string. Use --unset parent to clear this field.",p.USAGE);let t=e.trim();if(t.length===0)throw new h("--parent must not be empty. Use --parent none to unset.",p.USAGE);if(fr(t))throw new h(`--parent must not use placeholder token "${t}". Use --unset parent to clear this field.`,p.USAGE);return t}function fr(e){return Co.has(e.trim().toLowerCase())}function No(e,t){if(t==="strict_error")throw new h(`Parent item "${e}" was not found. Create it first or use --parent none.`,p.USAGE);return{warnings:[`validation_warning:parent_reference_missing:${e}`]}}function Ro(e,t,r){let n=Ee(e,r),o=Ee(t,r);if(n!==o)return;let i=t!==o||e!==n?` (normalized from parent "${t}" and item "${e}")`:"";throw new h(`Parent item "${o}" cannot be the same as item "${n}"${i}. Use --unset parent to clear this field.`,p.USAGE)}(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]="806bf35f-dc7e-55a8-9bb9-64be87111c22")}catch{}})();var nt={critical:0,high:1,medium:2,low:3,minimal:4},Do=Object.keys(nt),ko=`numbers 0..4 (0=critical, 1=high, 2=medium, 3=low, 4=minimal) or names (${Do.join(", ")}), case-insensitive`;function we(e){return new h(`Invalid priority "${e}". Accepted values: ${ko}.`,p.USAGE)}function Mo(e){if(typeof e=="number"){if(Number.isInteger(e)&&e>=0&&e<=4)return e;throw we(String(e))}if(typeof e!="string")throw we(String(e));let t=e.trim();if(t.length===0)throw we(e);let r=t.toLowerCase();if(Object.prototype.hasOwnProperty.call(nt,r))return nt[r];if(/^[0-4]$/.test(t))return Number(t);throw we(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]="bf76a01e-7292-59df-94ca-1e41aaff7365")}catch{}})();var Oo=/^[A-Za-z0-9][A-Za-z0-9._/-]*$/,Po=64;function eu(e){let t=e?.trim().toLowerCase().replaceAll("-","_");if(t==="warn"||t==="strict_error")return t;if(t==="strict")return"strict_error";throw new h("Config set sprint-release-format-policy requires --policy with one of: warn, strict_error (alias: strict)",p.USAGE)}function zo(e,t,r){let n=t.trim();if(n.length===0)throw new h(`--${e} must not be empty. Use --${e} none to unset.`,p.USAGE);if(n.length<=Po&&Oo.test(n))return{value:n,warnings:[]};let i="Expected 1-64 characters matching [A-Za-z0-9][A-Za-z0-9._/-]* (no spaces).";if(r==="strict_error")throw new h(`Invalid --${e} value "${n}". ${i}`,p.USAGE);return{value:n,warnings:[`validation_warning:${e}_format:${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]="d0e997bc-8bdb-5602-8606-73ecf77b2a35")}catch{}})();var mr={open:"open_status",closed:"close_status",canceled:"canceled_status",cancelled:"canceled_status"},pr="all";function su(e){if(typeof e!="string")return!1;let t=e.split(",").map(r=>r.trim().toLowerCase()).filter(r=>r.length>0);return t.length===1&&t[0]===pr}function Fo(e,t){let r=e.trim().toLowerCase();if(r.length===0)return;let n=mr[r];return n?t[n]:Ke(e,t)}function $o(e){let t=new Set(Object.keys(mr));for(let r of e.definitions){t.add(r.id);for(let n of r.aliases)t.add(n)}return[...t]}function Vo(e,t){let r=e.trim().toLowerCase(),n,o=Number.POSITIVE_INFINITY;for(let i of $o(t)){let s=Be(r,i.toLowerCase(),2);s!==null&&s<o&&(n=i,o=s)}return n}function Uo(e,t,r){if(typeof e!="string")return;let n=r?.strict===!0,o=r?.flagLabel??"--status",i=e.split(",").map(c=>c.trim()).filter(c=>c.length>0);if(i.length===0)return;if(i.filter(c=>c.trim().toLowerCase()===pr).length>0){if(i.length===1)return;throw new h(`Invalid ${o} value "all". Use it by itself, or omit ${o} to search every status.`,p.USAGE)}let a=[];for(let c of i){let d=Fo(c,t);if(d===void 0){if(n){let u=Vo(c,t);throw new h(`Invalid ${o} value "${c}". Use open|closed|canceled or a configured status id${u?`. Did you mean "${u}"?`:"."}`,p.USAGE)}a.push(c);continue}a.push(d)}return[...new Set(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]="b7a167e0-3041-5056-a672-ea0a054ed8df")}catch{}})();var jo={bug:"Issue",bugfix:"Issue",defect:"Issue",incident:"Issue",enhancement:"Feature",story:"Feature",userstory:"Feature","user-story":"Feature","user story":"Feature",change:"Chore",ticket:"Task",todo:"Task"};function qo(e){if(e!==void 0)return jo[e.trim().toLowerCase()]}(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]="6d11dc0f-e313-5b39-965d-6bc84ad52966")}catch{}})();function hr(e){let t=[],r=new Set;for(let n of e)for(let o of Object.keys(n))r.has(o)||(r.add(o),t.push(o));return t}function ot(e){return e==null?"":Array.isArray(e)?e.map(t=>ot(t)).join(";"):typeof e=="object"?JSON.stringify(e):String(e)}function _r(e){return/[",\r\n]/.test(e)?`"${e.replace(/"/g,'""')}"`:e}function Ho(e){if(e.length===0)return"";let t=hr(e),r=[t.map(n=>_r(n)).join(",")];for(let n of e)r.push(t.map(o=>_r(ot(n[o]))).join(","));return r.join(`
3
3
  `)}function Yo(e){if(e.length===0)return"";let t=hr(e),r=e.map(s=>t.map(a=>ot(s[a]))),n=t.map((s,a)=>Math.max(s.length,...r.map(c=>c[a].length))),o=(s,a)=>s.padEnd(n[a]),i=[t.map((s,a)=>o(s,a)).join(" | ")];i.push(n.map(s=>"-".repeat(s)).join("-+-"));for(let s of r)i.push(s.map((a,c)=>o(a,c)).join(" | "));return i.join(`
4
4
  `)}(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]="43a56374-808c-5fa6-bd6c-5d93175df0d2")}catch{}})();function gr(e,t){return We(e,t)}function Bo(e,t,r){let n={};for(let o of t.command_to_fields.get(r)??[]){let i=ir(e,o);i!==void 0&&(n[o.metadata_key]=sr(o,i))}return n}function Wo(e,t){for(let[r,n]of Object.entries(t)){let o=e[r];if(Array.isArray(n)){if(Array.isArray(o)){let i=o.map(a=>String(a));if(!n.map(a=>String(a)).every(a=>i.includes(a)))return!1;continue}if(!gr(o,n[n.length-1]))return!1;continue}if(!gr(o,n))return!1}return!0}import{spawnSync as Er}from"node:child_process";(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]="12bfc6e7-8979-58e8-8276-98cc859f3e32")}catch{}})();var Go="PM_DISABLE_OLLAMA_AUTO_DEFAULTS",Ko="PM_OLLAMA_MODEL",Qo="http://localhost:11434",Jo="qwen3-embedding:0.6b",Xo=".agents/pm/search/lancedb/",Zo=1500,ei=2500,ti=/qwen.*(?:embed|embedding)|(?:embed|embedding).*qwen/i,ri=/embed|embedding/i,R=w;function ni(){let e=R(process.env[Go]);if(!e)return!1;let t=e.toLowerCase();return t==="1"||t==="true"||t==="yes"}function yr(e){return e.some(t=>R(t)!==null)}function oi(e){let t=R(e);return!!(t&&t.toLowerCase()!=="ollama")}function ii(e){let t=R(e);return!!(t&&t.toLowerCase()!=="lancedb")}function si(e){return oi(e.search?.provider)||ii(e.vector_store?.adapter)||yr([e.providers?.openai?.base_url,e.providers?.openai?.model,e.providers?.openai?.api_key])?!0:yr([e.vector_store?.qdrant?.url,e.vector_store?.qdrant?.api_key])}function ai(){let e=Er("ollama",["--version"],{encoding:"utf8",timeout:Zo});return e.error?!1:e.status===0}function ci(e){let t=e.split(/\r?\n/).map(i=>i.trim()).filter(i=>i.length>0);if(t.length===0)return null;let r=t.map(i=>i.split(/\s+/)[0]?.trim()).filter(i=>!!(i&&i.length>0)).filter(i=>i.toUpperCase()!=="NAME");if(r.length===0)return null;let n=r.find(i=>ti.test(i));return n||(r.find(i=>ri.test(i))??null)}function di(e){let t=R(e.providers?.ollama?.model);if(t)return t;let r=R(process.env[Ko]);if(r)return r;let n=Er("ollama",["list"],{encoding:"utf8",timeout:ei});if(!n.error&&n.status===0){let o=ci(typeof n.stdout=="string"?n.stdout:"");if(o)return o}return null}function ui(e){return{baseUrl:R(e.providers?.ollama?.base_url)===null,model:R(e.providers?.ollama?.model)===null,lancedbPath:R(e.vector_store?.lancedb?.path)===null,embeddingModel:R(e.search?.embedding_model)===null}}function li(e){return e.baseUrl||e.model||e.lancedbPath||e.embeddingModel}function fi(e,t,r){if(!t.baseUrl&&!t.model)return;let n=e.providers??={},o=n.ollama??={};t.baseUrl&&(o.base_url=Qo),t.model&&(o.model=r)}function mi(e,t){if(!t.lancedbPath)return;let r=e.vector_store??={},n=r.lancedb??={};n.path=Xo}function pi(e,t,r){if(!t.embeddingModel)return;let n=e.search??={};n.embedding_model=r}function ee(e){let t={settings:e,auto_ollama_defaults_applied:!1};if(ni()||si(e))return t;let r=ui(e);if(!li(r)||r.model&&!ai())return t;let n=structuredClone(e),o=di(n);return o?(fi(n,r,o),mi(n,r),pi(n,r,o),{settings:n,auto_ollama_defaults_applied:!0}):{...t,auto_ollama_defaults_skipped_reason:"no_installed_embedding_model",auto_ollama_defaults_remediation:`Run ollama pull ${Jo} or configure providers.ollama.model explicitly (and search.embedding_model if you need an override).`}}import{spawn as _i}from"node:child_process";import{mkdirSync as wr,rmSync as Tr,statSync as hi}from"node:fs";import be 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]="d8d5f7e9-5293-564b-bc44-f5ba30336893")}catch{}})();var Sr="reindex",gi="search/pending-refresh.json",yi="search/pending-refresh.gate.lock",Ei=3e4,wi="PM_SEARCH_REFRESH_INLINE",xr="PM_SEARCH_REFRESH_CHILD",bi=3e4;function br(e){if(typeof e!="string")return!1;let t=e.trim().toLowerCase();return t==="1"||t==="true"||t==="yes"||t==="on"}function Ti(){if(br(process.env[wi])||br(process.env[xr]))return!0;let e=(process.env.NODE_ENV??"").trim().toLowerCase();return typeof process.env.VITEST=="string"||typeof process.env.VITEST_WORKER_ID=="string"||e==="test"}function Ir(e){return be.join(e,gi)}function Ar(e){return be.join(e,yi)}function Si(e){let t=Ar(e);try{if(Date.now()-hi(t).mtimeMs<Ei)return!1;Tr(t,{recursive:!0,force:!0})}catch{}try{return wr(be.dirname(t),{recursive:!0}),wr(t),!0}catch{return!1}}function xi(e){try{Tr(Ar(e),{recursive:!0,force:!0})}catch{}}async function vr(e,t,r){for(let n=0;n<50;n+=1){if(Si(e))try{return await t()}finally{xi(e)}await Ii(20)}return r}function Ii(e){return new Promise(t=>{setTimeout(t,e)})}async function st(e){let t=await v(Ir(e));if(!t||t.trim().length===0)return[];try{let r=JSON.parse(t);return Array.isArray(r.ids)?r.ids.filter(n=>typeof n=="string"&&n.length>0):[]}catch{return[]}}async function Cr(e,t){await S(Ir(e),`${JSON.stringify({ids:t})}
@@ -16,4 +16,4 @@ Enable telemetry now? [${e?"Y/n":"y/N"}] `,n=sc.createInterface({input:ac,output
16
16
  `)){let n=r.trim();if(n.length!==0)try{let o=JSON.parse(n);o&&typeof o=="object"&&typeof o.endpoint=="string"&&o.endpoint.trim().length>0&&"payload"in o&&typeof o.attempts=="number"&&Number.isFinite(o.attempts)&&((typeof o.id!="string"||o.id.length===0)&&(o.id=md(o)),t.push(o))}catch{}}return t}function pd(e,t){if(typeof e.enqueued_at!="string"||e.enqueued_at.trim().length===0)return!1;let r=Date.parse(e.enqueued_at);return Number.isNaN(r)?!1:r<t}function co(e,t){let r=oo(t),n=[],o=0;for(let i of e){if(JSON.stringify(i).length>ze||pd(i,r)||i.attempts>=On){o+=1;continue}n.push(i)}if(n.length>Tn){let i=n.length-Tn;return o+=i,{entries:n.slice(i),prunedCount:o}}return{entries:n,prunedCount:o}}async function _d(e,t){let r=t.map(o=>JSON.stringify(o)).join(`
17
17
  `),n=r.length>0?`${r}
18
18
  `:"";for(let o=0;;o+=1)try{await S($e(e),n);return}catch(i){let s=Pn[o];if(s===void 0||!io(i))throw i;await so(s)}}async function Ln(e,t,r,n){return _e(async()=>{let o=await v($e(e)),i=o===null?[]:ao(o),s=[];for(let c of i){if(r.has(c.id))continue;let d=n.get(c.id);s.push(d?{...c,attempts:d.attempts,next_attempt_after:d.next_attempt_after}:c)}let{entries:a}=co(s,t);return await _d(e,a),a.length})}async function hd(e,t){let r=await v($e(e));if(r===null||r.trim().length===0){await O(e,{pending_otel_spans:0});return}let n=ao(r),{entries:o,prunedCount:i}=co(n,t),s=o.filter(g=>no(g.next_attempt_after)).slice(0,Tc);if(s.length===0){let g=i>0?await Ln(e,t,new Set,new Map):o.length;await O(e,{pending_otel_spans:g});return}let a=L(),c=new Set,d=new Map,u=0,l;await Promise.all(s.map(async g=>{try{let _=await fetch(g.endpoint,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(g.payload),signal:AbortSignal.timeout(Dn)});if(!_.ok)throw new Error(`local_otel_export_http_${_.status}`);c.add(g.id),u+=1}catch(_){l=_ instanceof Error?T(_.message,"redacted"):"local_otel_export_failed";let y=g.attempts+1;d.set(g.id,{attempts:y,next_attempt_after:ro(y)})}}));let f=await Ln(e,t,c,d),m={pending_otel_spans:f,last_otel_attempt_at:a};u>0&&(m.last_otel_success_at=a),l!==void 0?(m.last_otel_failure_at=a,m.last_otel_failure_error=l):f===0&&(m.last_otel_failure_at=void 0,m.last_otel_failure_error=void 0),await O(e,m)}async function uo(e,t,r){try{await wd(e,t,r)}catch{}try{await hd(e,r)}catch{}}async function gd(e,t=Cc){try{let r=Kc(e),n=await yc(r,{withFileTypes:!0}),o=Date.now()-Math.max(0,t);await Promise.all(n.filter(i=>i.isFile()&&/^\.events\.jsonl\.\d+\.\d+\.[a-f0-9]+\.tmp$/.test(i.name)).map(async i=>{let s=C.join(r,i.name);(await Rn(s)).mtimeMs<o&&await qt(s,{force:!0})}))}catch{}}async function _e(e){let t=An.catch(()=>{}).then(e);return An=t.catch(()=>{}),t}async function Zt(e){let t=await v(pe(e));return t===null||t.trim().length===0?[]:to(t)}async function yd(e,t,r){return _e(async()=>{let n=await Zt(e),{entries:o}=Xt(n,r),i=o.filter(s=>!t.has(s.event.event_id));return await Oe(e,i),i})}async function Ed(e,t,r,n){return _e(async()=>{let o=await Zt(e),{entries:i}=Xt(o,n),s=i.map(a=>{if(!t.has(a.event.event_id))return a;let c=a.attempts+1;return{...a,attempts:c,last_attempt_at:r,next_attempt_after:ro(c)}});return await Oe(e,s),s})}async function wd(e,t,r){await gd(e);let n=t.trim();if(n.length===0)return;let o=await v(pe(e));if(o===null||o.trim().length===0){await O(e,{endpoint:n,queue_entries:0});return}let i=to(o);if(i.length===0){await O(e,{endpoint:n,queue_entries:0});return}let{entries:s,prunedCount:a}=Xt(i,r);if(s.length===0){await Oe(e,[]),await O(e,{endpoint:n,queue_entries:0});return}let c=s.filter(m=>ud(m)).slice(0,Sc);if(c.length===0){a>0&&await Oe(e,s),await O(e,{endpoint:n,queue_entries:s.length});return}let d=new Set(c.map(m=>m.event.event_id)),u=L(),l={"content-type":"application/json"},f=process.env.PM_TELEMETRY_INGEST_KEY?.trim();f&&(l["x-pm-telemetry-key"]=f);try{let m=await fetch(n,{method:"POST",headers:l,body:JSON.stringify({schema_version:Pe,events:c.map(g=>g.event)}),signal:AbortSignal.timeout(Dn)});if(!m.ok)throw new Error(`telemetry_flush_http_${m.status}`)}catch(m){let g=await Ed(e,d,u,r),_=m instanceof Error?T(m.message,"redacted"):"telemetry_flush_failed";await O(e,{endpoint:n,queue_entries:g.length,last_attempted_flush_at:u,last_failed_flush_at:u,last_failed_flush_error:_});return}try{let m=await yd(e,d,r);await O(e,{endpoint:n,queue_entries:m.length,last_attempted_flush_at:u,last_successful_flush_at:u,last_failed_flush_at:void 0,last_failed_flush_error:void 0})}catch(m){let g=m instanceof Error?T(m.message,"redacted"):"telemetry_flush_failed",_=await Zt(e).catch(()=>s);await O(e,{endpoint:n,queue_entries:_.length,last_attempted_flush_at:u,last_failed_flush_at:u,last_failed_flush_error:g})}}async function bd(e){let t=Yt(e);await zt(C.dirname(t),{recursive:!0});try{return await zt(t),!0}catch(r){if(typeof r!="object"||r===null||!("code"in r)||r.code!=="EEXIST")throw r}try{let r=await Rn(t);return Date.now()-r.mtimeMs<zn?!1:(await qt(t,{recursive:!0,force:!0}),await zt(t),!0)}catch{return!1}}function Td(e,t){try{return Date.now()-Nn(e).mtimeMs<t}catch{return!1}}function lo(e){try{gc(e,{recursive:!0,force:!0})}catch{}}function fo(e){if(typeof e!="object"||e===null||!("code"in e))return;let t=e.code;return typeof t=="string"?t:void 0}function Sd(e){try{return Pt(e),!0}catch(t){let r=fo(t);if(r==="EEXIST"||r!=="ENOENT")return!1}try{return Pt(C.dirname(e),{recursive:!0}),Pt(e),!0}catch{return!1}}function xd(e){if(Td(Yt(e),zn))return!1;let t=Un(e);try{if(Date.now()-Nn(t).mtimeMs<Lc)return!1;lo(t)}catch(r){if(fo(r)!=="ENOENT")return!1}return Sd(t)}function jt(e){lo(Un(e))}async function Id(e,t,r){let n=await bd(e);if(jt(e),!!n)try{await uo(e,t,r)}finally{try{await qt(Yt(e),{recursive:!0,force:!0})}catch{}}}function er(e,t,r){if(Jc()){let n=In,o=uo(e,t,r);In=Promise.allSettled([n,o]).then(()=>{});return}try{if(!xd(e))return;let o=hc(process.execPath,[Qc()],{detached:!0,stdio:"ignore",cwd:Ht.tmpdir(),env:{...process.env,PM_GLOBAL_PATH:e,[Fn]:"1"}});o.on("error",()=>{jt(e)}),o.unref()}catch{jt(e)}}async function pf(e=J(process.cwd())){if(!Kt())try{if(!(await V(e)).telemetry.enabled)return;let{endpoint:r,retentionDays:n}=await Qt(e);await Id(e,r,n)}catch{}}async function Ad(e){if(Kt()||e.command==="telemetry"&&e.args.some(t=>t.trim().toLowerCase()==="clear"))return null;try{let t=J(process.cwd()),r=await V(t);if(!r.telemetry.enabled)return null;let n=Kn(r.telemetry.capture_level),{installationId:o,endpoint:i,retentionDays:s}=await Qt(t),a=Qn(e.pm_version),c=Xn(e.global),d=x(o,e.pm_root),u=x(o,process.cwd()),l=nd(),f=L(),m={schema_version:Pe,event_id:P.randomUUID(),event_type:"command_start",occurred_at:f,installation_id:o,session_id:Fe,command:e.command,payload:ad({captureLevel:n,context:e,pmVersion:a,sourceContext:c,pmRootHash:d,cwdHash:u,installationId:o})};await Jt(t,m),er(t,i,s);let g=oe(e.command);return{started_at:f,started_at_ms:Date.now(),command:e.command,command_taxonomy:g,pm_version:a,source_context:c.source_context,source_context_source:c.source_context_source,installation_id:o,pm_root_hash:d,cwd_hash:u,endpoint:i,retention_days:s,global_pm_root:t,capture_level:n,otel_traces_endpoint:l??void 0,otel_trace_id:l?P.randomBytes(16).toString("hex"):void 0,otel_span_id:l?P.randomBytes(8).toString("hex"):void 0}}catch{return null}}async function vd(e,t){if(e)try{let r=L(),n=Math.max(0,Date.now()-e.started_at_ms),o=Bt(Nt({ok:t.ok,errorCode:t.error_code,errorMessage:t.error,exitCode:t.exit_code})),i=Jn({ok:t.ok,errorCode:o,errorCategory:t.error_category}),s=Wt(t.exit_code,t.ok),a=t.command_resolution??ie({ok:t.ok,errorCode:o,errorCategory:i}),c=t.resolution_stage??"execute",d={schema_version:Pe,event_id:P.randomUUID(),event_type:"command_finish",occurred_at:r,installation_id:e.installation_id,session_id:Fe,command:e.command,payload:cd({captureLevel:e.capture_level,pmVersion:e.pm_version,sourceContext:{source_context:e.source_context,source_context_source:e.source_context_source},outcome:t,durationMs:n,startedAt:e.started_at,command:e.command,installationId:e.installation_id,commandTaxonomy:e.command_taxonomy,exitCode:s,errorCode:o,errorCategory:i,commandResolution:a,resolutionStage:c})};await Jt(e.global_pm_root,d);let u=id(e,{...t,exit_code:s,error_code:o,error_category:i},r,n);u&&await fd(e.global_pm_root,u),er(e.global_pm_root,e.endpoint,e.retention_days)}catch{}}async function Cd(e){if(!Kt())try{let t=J(process.cwd()),r=await V(t);if(!r.telemetry.enabled)return;let n=Kn(r.telemetry.capture_level),{installationId:o,endpoint:i,retentionDays:s}=await Qt(t),a=Qn(e.pm_version),c=Xn(e.global),d=x(o,e.pm_root),u=x(o,process.cwd()),l=L(),f=Bt(Nt({ok:!1,errorCode:e.error_code,errorMessage:e.error_message,exitCode:e.exit_code})),m=e.error_category??he(f),g=Wt(e.exit_code,!1),_=e.command.trim().length>0?e.command:"<unknown>",y=oe(_),E=e.command_resolution??ie({ok:!1,errorCode:f,errorCategory:m}),I=e.resolution_stage??"unknown",A={schema_version:Pe,event_id:P.randomUUID(),event_type:"command_error",occurred_at:l,installation_id:o,session_id:Fe,command:T(_,"redacted"),payload:dd({captureLevel:n,pmVersion:a,sourceContext:c,command:_,commandTaxonomy:y,commandResolution:E,resolutionStage:I,args:e.args,options:e.options,pmRootHash:d,cwdHash:u,installationId:o,errorCode:f,errorCategory:m,exitCode:g,errorMessage:e.error_message})};await Jt(t,A),er(t,i,s)}catch{}}(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]="89efaf82-c9cb-560d-b1ca-5a676b4b979c")}catch{}})();export{yo as a,Eo as b,bo as c,To as d,So as e,xo as f,Fd as g,vo as h,Wd as i,Lo as j,fr as k,No as l,Ro as m,Mo as n,eu as o,zo as p,su as q,Uo as r,qo as s,Ho as t,Yo as u,Bo as v,Wo as w,ee as x,Sr as y,Ti as z,Au as A,Du as B,Se as C,kr as D,ct as E,Vi as F,Ui as G,Ou as H,Mr as I,te as J,ut as K,ft as L,Ce as M,Bu as N,bt as O,Ne as P,Ur as Q,Re as R,Tt as S,St as T,xt as U,It as V,Wr as W,Gr as X,qr as Y,zs as Z,ca as _,ie as $,Ea as aa,wa as ba,ba as ca,Ta as da,Sa as ea,Ia as fa,va as ga,Ca as ha,La as ia,Oa as ja,fn as ka,za as la,Fa as ma,$a as na,Nl as oa,Mt as pa,pn as qa,mn as ra,_n as sa,Ua as ta,ja as ua,hn as va,Ya as wa,Ka as xa,Ja as ya,Za as za,rc as Aa,oc as Ba,ic as Ca,_c as Da,Pe as Ea,On as Fa,$c as Ga,pf as Ha,Ad as Ia,vd as Ja,Cd as Ka};
19
- //# sourceMappingURL=chunk-BKMZTZYL.js.map
19
+ //# sourceMappingURL=chunk-MDTH7SAE.js.map
@@ -1,2 +1,2 @@
1
- (function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="c0fb747e-1f9f-55c4-808b-b77d3a881f87")}catch{}})();var M=5,L=1e4,R=8;function v(e,n){if(!Number.isFinite(n)||!Number.isInteger(n)||n<0)throw new TypeError(`Invalid path ${e} bound: ${String(n)}`)}function m(e,n){return n.hierarchyDirection==="target_parent"?e.target:e.source}function h(e,n){return(n.precedence??"source_before_target")==="target_before_source"?e.target:e.source}function we(e,n){let s=h(e,n);return{predecessor:s,successor:s===e.source?e.target:e.source}}function P(e,n,s){if(n===void 0)return;let o=e.registry(),i=new Set;for(let t of n){let r=o.require(t);if(!r[s])throw new TypeError(`Relationship kind ${r.kind} is not a ${s} kind`);i.add(r.kind)}return i}function j(e,n,s,o,i){let t=e.registry(),r=e.neighborEdges(n,{direction:"both",...s===void 0?{}:{kinds:[...s]}}),d=[],c=new Set;for(let a of r.value){let u=t.require(a.edge.kind);u[o]&&i(a,u,n)&&(c.has(a.id)||(c.add(a.id),d.push(a.id)))}return{neighbors:d,inspectedEdges:r.meta.inspectedEdges}}function F(e,n,s,o,i,t){if(n>=s)return e.neighbors.some(r=>!t.seen.has(r))&&(t.truncated=!0),!1;for(let r of e.neighbors)if(!t.seen.has(r)){if(t.seen.add(r),t.queue.push({id:r,depth:n+1}),!t.resumed){r===i&&(t.resumed=!0);continue}if(t.value.length>=o)return t.truncated=!0,!0;t.value.push(r)}return!1}function y(e,n,s,o,i){if(!e.hasNode(n))throw new TypeError(`Relationship node not found: ${n}`);let t=P(e,s.kinds,o),r=s.limit??Number.POSITIVE_INFINITY,d=s.maxDepth??Number.POSITIVE_INFINITY,c=s.after,a={seen:new Set([n]),value:[],queue:[{id:n,depth:0}],resumed:c===void 0,truncated:!1},u=0,l=0;for(let f=0;f<a.queue.length;f+=1){s.signal?.throwIfAborted();let g=a.queue[f];u+=1;let T=j(e,g.id,t,o,i);if(l+=T.inspectedEdges,F(T,g.depth,d,r,c,a))break}if(!a.resumed)throw new TypeError(`Traversal cursor not found in sequence: ${c}`);return{value:a.value,meta:{visitedNodes:u,inspectedEdges:l,truncated:a.truncated,nextCursor:a.value.at(-1)}}}function D(e,n){if(!e.hasNode(n))throw new TypeError(`Relationship node not found: ${n}`)}function A(e,n,s,o,i){let t=e.neighborEdges(n.nodes.at(-1),{direction:o,...s.kinds===void 0?{}:{kinds:s.kinds}});return i.inspectedEdges+=t.meta.inspectedEdges,t.value.filter(r=>!n.nodeSet.has(r.id))}function O(e,n,s,o,i,t,r){for(let d of A(e,n,o,i,r)){let c=[...n.nodes,d.id],a=new Set(n.nodeSet).add(d.id),u=[...n.edges,d.edge];if(d.id===s){if(r.value.push({nodes:c,edges:u,length:u.length}),r.value.length>=t)return!0}else r.queue.push({nodes:c,nodeSet:a,edges:u})}return!1}function ve(e,n,s={}){return y(e,n,s,"hierarchy",(o,i)=>m(o.edge,i)===o.id)}function ke(e,n,s={}){return y(e,n,s,"hierarchy",(o,i,t)=>m(o.edge,i)===t)}function xe(e,n,s={}){return y(e,n,s,"ordering",(o,i)=>h(o.edge,i)===o.id)}function Ee(e,n,s={}){return y(e,n,s,"ordering",(o,i,t)=>h(o.edge,i)===t)}function B(e,n,s,o,i,t,r,d){let c={value:[],queue:[{nodes:[n],nodeSet:new Set([n]),edges:[]}],inspectedEdges:0},a=0,u=!1,l=i+1;for(let f=0;f<c.queue.length;f+=1){if(o.signal?.throwIfAborted(),c.value.length>=l||a>=t){u=!0;break}let g=c.queue[f];if(a+=1,g.edges.length>=r){A(e,g,o,d,c).length>0&&(u=!0);continue}if(O(e,g,s,o,d,l,c)){u=!0;break}}return{value:c.value.slice(0,i),meta:{visitedNodes:a,inspectedEdges:c.inspectedEdges,truncated:u}}}function Ie(e,n,s,o={}){D(e,n),D(e,s);let i=o.maxPaths??M,t=o.maxVisitedPaths??L,r=o.maxDepth??R;v("maxPaths",i),v("maxVisitedPaths",t),v("maxDepth",r);let d=o.direction??"outgoing";o.signal?.throwIfAborted();for(let c of o.kinds??[])e.registry().require(c);return n===s?i===0?{value:[],meta:{visitedNodes:1,inspectedEdges:0,truncated:!0}}:{value:[{nodes:[n],edges:[],length:0}],meta:{visitedNodes:1,inspectedEdges:0,truncated:!1}}:B(e,n,s,o,i,t,r,d)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="24898402-1568-5b05-9072-f89dd91f25a6")}catch{}})();var U=16,K=2,V=8;function b(e,n){if(!Number.isInteger(n)||n<1)throw new TypeError(`Invalid ${e} bound: ${String(n)}`)}function Y(e,n,s){let o=e.registry(),i=n===void 0?void 0:new Set(n.map(t=>o.require(t).kind));for(let t of e.edges()){if(t.source===t.target)continue;let r=o.require(t.kind);i!==void 0&&!(i.has(r.kind)||r.inverse!==void 0&&i.has(r.inverse))||s(t,r)}}function X(e,n){let s=new Map;Y(e,n,o=>{N(s,o.source,o.target),N(s,o.target,o.source)});for(let o of s.values())o.sort();return s}function N(e,n,s){let o=e.get(n);o===void 0?e.set(n,[s]):o.push(s)}function H(e,n){let s=new Map;for(let t of e){let r=n.get(t);s.set(r,(s.get(r)??0)+1)}let o,i=0;for(let[t,r]of s)(r>i||r===i&&t<o)&&(o=t,i=r);return o}function W(e,n){let s=new Map;for(let[i,t]of e){let r=s.get(t);r===void 0?s.set(t,[i]):r.push(i)}let o=[];for(let i of s.values())i.length<n||(i.sort(),o.push({representative:i[0],size:i.length,members:i}));return o.sort((i,t)=>t.size-i.size||i.representative.localeCompare(t.representative))}function Ae(e,n={}){let s=n.maxIterations??U,o=n.minSize??K;b("maxIterations",s),b("minSize",o);let i=X(e,n.kinds),t=e.nodes(),r=new Map(t.map(l=>[l,l])),d=0,c=!1,a=0,u=0;for(;d<s&&!c;){n.signal?.throwIfAborted(),d+=1,c=!0;for(let l of t){a+=1;let f=i.get(l);if(f===void 0)continue;u+=f.length;let g=H(f,r);g!==r.get(l)&&(r.set(l,g),c=!1)}}return{value:{communities:W(r,o),iterations:d,converged:c},meta:{visitedNodes:a,inspectedEdges:u,truncated:!c}}}function _(e){return e.direction==="directed"&&(e.ordering||e.hierarchy)}function w(e){return e.inverse!==void 0&&e.inverse<e.kind?e.inverse:e.kind}function k(e,n){return(n.hierarchy?m(e,n):e.source===h(e,n)?e.target:e.source)===e.target?{from:e.source,to:e.target}:{from:e.target,to:e.source}}function G(e,n){if(n===void 0)return;let s=e.registry(),o=new Set;for(let i of n){let t=s.require(i);if(!_(t))throw new TypeError(`Relationship kind ${t.kind} is not a directed ordering or hierarchy kind`);o.add(w(t))}return o}function Z(e,n){let s=e.registry(),o=new Map;for(let i of e.edges()){let t=s.require(i.kind);if(!_(t))continue;let r=w(t);if(n!==void 0&&!n.has(r))continue;let d=k(i,t);if(d.from===d.to)continue;let c=o.get(r);c===void 0&&(c={adjacency:new Map,records:[]},o.set(r,c));let a=c.adjacency.get(d.from);a===void 0?c.adjacency.set(d.from,new Set([d.to])):a.add(d.to),c.records.push({...d,edge:i})}return o}function z(e){let n=new Map;for(let[s,o]of e.adjacency)n.set(s,[...o].sort());return n}function J(e,n,s,o){let i=[o];for(let t=s;t!==n;t=e.get(t))i.push(t);return i.push(n),i.reverse()}function Q(e,n,s,o,i,t){for(let r of e.get(s.id)??[])if(t.inspectedEdges+=1,!(s.depth===0&&r===n.to)&&!o.has(r)){if(o.set(r,s.id),r===n.to)return J(o,n.from,s.id,r);i.push({id:r,depth:s.depth+1})}}function ee(e,n,s,o){let i=new Map([[n.from,n.from]]),t=[{id:n.from,depth:0}];for(let r=0;r<t.length;r+=1){let d=t[r];if(o.visitedNodes+=1,d.depth>=s)continue;let c=Q(e,n,d,i,t,o);if(c!==void 0)return c}}function Ne(e,n={}){let s=n.maxDepth??V;b("maxDepth",s),n.limit!==void 0&&b("limit",n.limit);let o=n.limit??Number.POSITIVE_INFINITY,i=G(e,n.kinds),t=Z(e,i),r=[],d={visitedNodes:0,inspectedEdges:0},c=!1;e:for(let a of[...t.keys()].sort()){let u=t.get(a),l=z(u);for(let f of u.records){n.signal?.throwIfAborted();let g=ee(l,f,s,d);if(g!==void 0){if(r.length>=o){c=!0;break e}r.push({edge:f.edge,witness:g})}}}return{value:r,meta:{visitedNodes:d.visitedNodes,inspectedEdges:d.inspectedEdges,truncated:c}}}function ne(e,n,s,o,i){let t=new Set,r=[];for(let d of s){if(d.id===e||t.has(d.id))continue;if(!i.seen.has(d.id)){if(n>=o){i.truncated=!0;continue}i.seen.add(d.id),i.queue.push({id:d.id,depth:n+1})}t.add(d.id),r.push(d.id);let c=i.predecessors.get(d.id);c===void 0&&(c=new Set,i.predecessors.set(d.id,c)),c.add(e)}return r}function te(e,n,s){let o=s.direction??"outgoing",i=s.maxDepth??Number.POSITIVE_INFINITY,t=[],r=new Map,d={seen:new Set([n]),queue:[{id:n,depth:0}],predecessors:new Map,truncated:!1},c=0;for(let a=0;a<d.queue.length;a+=1){s.signal?.throwIfAborted();let{id:u,depth:l}=d.queue[a];t.push(u);let f=e.neighborEdges(u,{direction:o,...s.kinds===void 0?{}:{kinds:s.kinds}});c+=f.meta.inspectedEdges,r.set(u,ne(u,l,f.value,i,d))}return{order:t,successors:r,predecessors:d.predecessors,inspectedEdges:c,truncated:d.truncated}}function oe(e,n){let s=[],o=new Set([n]),i=[{id:n,index:0}];for(;i.length>0;){let t=i.at(-1),r=e.successors.get(t.id);if(t.index<r.length){let d=r[t.index];t.index+=1,o.has(d)||(o.add(d),i.push({id:d,index:0}))}else s.push(t.id),i.pop()}return s.reverse()}function ie(e,n,s,o){let i=e,t=n;for(;i!==t;){for(;o.get(i)>o.get(t);)i=s.get(i);for(;o.get(t)>o.get(i);)t=s.get(t)}return i}function se(e,n,s){let o;for(let i of[...e].sort())n.has(i)&&(o=o===void 0?i:ie(o,i,n,s));return o}function re(e,n,s,o,i){let t=new Map([[n,n]]),r=!0;for(;r;){r=!1;for(let d of s){if(i?.throwIfAborted(),d===n)continue;let c=se(e.predecessors.get(d),t,o);c!==void 0&&t.get(d)!==c&&(t.set(d,c),r=!0)}}return t}function Se(e,n,s={}){if(!e.hasNode(n))throw new TypeError(`Relationship node not found: ${n}`);if(s.maxDepth!==void 0&&(!Number.isInteger(s.maxDepth)||s.maxDepth<0))throw new TypeError(`Invalid maxDepth bound: ${String(s.maxDepth)}`);let o=te(e,n,s),i=oe(o,n),t=new Map(i.map((a,u)=>[a,u])),r=re(o,n,i,t,s.signal),d=new Map(i.map(a=>[a,1]));for(let a=i.length-1;a>=0;a-=1){let u=i[a];if(u===n)continue;let l=r.get(u);d.set(l,d.get(l)+d.get(u))}let c=i.filter(a=>a!==n).map(a=>({id:a,idom:r.get(a),dominatedCount:d.get(a)-1})).sort((a,u)=>u.dominatedCount-a.dominatedCount||a.id.localeCompare(u.id));return{value:{root:n,reachableCount:o.order.length,rows:c},meta:{visitedNodes:o.order.length,inspectedEdges:o.inspectedEdges,truncated:o.truncated}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="251ae2b0-10f4-528d-86b0-d224b126f8eb")}catch{}})();var de=25,S={error:0,warning:1,info:2};function E(e,n,s,o,i,t,r){let d=[...i].sort((c,a)=>c.localeCompare(a));return{code:e,severity:n,policy:s,message:o(d.length),count:d.length,sample:d.slice(0,t),sample_truncated:d.length>t,remediation:r}}function ce(e){let n=e.graph.registry(),s=new Map;for(let o of e.graph.edges()){let i=n.require(o.kind);if(!i.ordering)continue;let[t,r]=(i.precedence??"source_before_target")==="target_before_source"?[o.target,o.source]:[o.source,o.target],d=s.get(t);d?d.push(r):s.set(t,[r])}for(let o of s.values())o.sort((i,t)=>i.localeCompare(t));return s}function $(e,n){n.indexes.set(e,n.nextIndex),n.lowLinks.set(e,n.nextIndex),n.nextIndex+=1,n.stack.push(e),n.onStack.add(e)}function ae(e,n,s,o){let i=s.get(e.node)??[];if(e.neighborIndex>=i.length)return!1;let t=i[e.neighborIndex];return e.neighborIndex+=1,o.indexes.has(t)?o.onStack.has(t)&&o.lowLinks.set(e.node,Math.min(o.lowLinks.get(e.node),o.indexes.get(t))):($(t,o),n.push({node:t,neighborIndex:0})),!0}function ue(e,n,s,o){n.pop();let i=n.at(-1);if(i&&o.lowLinks.set(i.node,Math.min(o.lowLinks.get(i.node),o.lowLinks.get(e.node))),o.lowLinks.get(e.node)!==o.indexes.get(e.node))return;let t=[];for(;;){let r=o.stack.pop();if(o.onStack.delete(r),t.push(r),r===e.node)break}(t.length>1||t.length===1&&s.get(t[0])?.includes(t[0]))&&o.components.push(t.sort((r,d)=>r.localeCompare(d)))}function le(e){let n={indexes:new Map,lowLinks:new Map,onStack:new Set,stack:[],components:[],nextIndex:0},s=[...e.keys()].sort((o,i)=>o.localeCompare(i));for(let o of s){if(n.indexes.has(o))continue;let i=[{node:o,neighborIndex:0}];for($(o,n);i.length>0;){let t=i.at(-1);ae(t,i,e,n)||ue(t,i,e,n)}}return n.components.sort((o,i)=>o[0].localeCompare(i[0]))}function x(e){return`${e.holder_id} -> ${e.target_id} (${e.kind})`}function p(e,n,s,o,i,t,r,d){n.length!==0&&e.push(E(o,i,t,r,n,s,d))}function fe(e,n,s){let o=[],i=[...e.dangling.active,...e.dangling.legacy_terminal].filter(t=>!t.no_active_blocker_sentinel);return p(o,i.filter(t=>!n(t.holder_status)).map(x),s,"missing_reference_active","error","Active items must not reference absent targets; missing prerequisites distort scheduling.",t=>`${t} active dangling reference(s) to absent items`,"Restore or re-create the referenced item, or remove/retype the reference on the holder."),p(o,i.filter(t=>n(t.holder_status)).map(x),s,"missing_reference_terminal","info","Terminal items may retain historical references, but absent targets remain unexplainable context.",t=>`${t} terminal dangling reference(s) to absent items`,"Leave as history debt or clean up in a dedicated changelog-safe closed-item batch."),p(o,e.dangling.no_active_blocker_sentinels.map(x),s,"legacy_no_blocker_sentinel","info","The pre-structured-dependency no-active-blocker sentinel is retired; real edges carry blocker state.",t=>`${t} legacy no-active-blocker sentinel reference(s)`,"Delete the sentinel reference; blocker state is derived from blocked_by edges."),o}function I(e,n){let s=n.get(e);return s?!s.terminal:!0}function ge(e,n,s,o){let i=[],t=ce(e);for(let c of le(t)){let a=c.some(u=>I(u,n));i.push(a?E("ordering_cycle","error","Order-bearing relationship kinds must stay acyclic; a cycle makes every member unschedulable.",u=>`execution-order cycle across ${u} item(s)`,c,o,"Remove or retype one ordering edge inside the cycle, or split the work so precedence is linear."):E("legacy_ordering_cycle","info","Ordering cycles between exclusively terminal items are historical contradictions with no scheduling effect.",u=>`terminal-only execution-order cycle across ${u} item(s)`,c,o,"Leave as history debt, or clean up in a dedicated changelog-safe closed-item batch; never repair closed items ad hoc."))}let r=new Map;for(let[c,a]of t)for(let u of a){let l=r.get(u);l?l.push(c):r.set(u,[c])}let d=[...n.values()].filter(c=>!c.missing&&!c.terminal&&s(c.status)&&!(r.get(c.id)??[]).some(a=>{let u=n.get(a);return u===void 0||!u.terminal})).map(c=>c.id);return p(i,d,o,"stale_lifecycle_block","warning","A blocked lifecycle status must be backed by at least one open ordering predecessor.",c=>`${c} status-blocked item(s) with no open blocker edge`,"Re-open the missing prerequisite as an edge, or move the item back to an active status."),i}function pe(e){let n=e.edges.map(s=>s.kind).sort((s,o)=>s.localeCompare(o));return`${e.from} -> ${e.to} (${n.join(" + ")})`}function he(e){let n=e.graph.registry(),s=new Map;for(let i of e.graph.edges()){let t=n.require(i.kind);if(!_(t))continue;let r=k(i,t);if(r.from===r.to)continue;let d=`${w(t)}::${r.from}::${r.to}`,c=s.get(d);c?c.edges.push(i):s.set(d,{...r,edges:[i]})}let o=[...s.values()].filter(i=>i.edges.length>=2);for(let i of o)i.edges.sort((t,r)=>t.kind.localeCompare(r.kind));return o.sort((i,t)=>i.from.localeCompare(t.from)||i.to.localeCompare(t.to))}function me(e,n,s){let o=[],i=[];for(let r of he(e))(I(r.from,n)||I(r.to,n)?o:i).push(pe(r));let t=[];return p(t,o,s,"duplicate_edge","info","One semantic relationship should be stored once; parallel same-family spellings (reciprocal inverse pairs included) add no information and skew degree metrics.",r=>`${r} duplicated relationship(s) between active endpoints`,"Remove all but one stored spelling of the relationship; keep the canonical direction the holder declared first."),p(t,i,s,"legacy_duplicate_edge","info","Duplicated spellings between exclusively terminal items are historical noise with no scheduling effect.",r=>`${r} duplicated relationship(s) between terminal endpoints`,"Leave as history debt or clean up in a dedicated changelog-safe closed-item batch."),t}function ye(e,n){let s=[],o=[];for(let t of e.duplicateRows??[])(t.legacy_terminal?o:s).push(`${t.holder_id} -> ${t.target_id} (${t.kind} x${t.occurrences})`);let i=[];return p(i,s,n,"duplicate_dependency_row","warning","One dependency row must be stored once per holder; identical repeated rows are a storage-layer defect invisible to the assembled graph.",t=>`${t} exactly duplicated stored dependency row(s) on active holder(s)`,"Remove the repeated rows so the dependency is stored exactly once; graph semantics are unchanged."),p(i,o,n,"legacy_duplicate_dependency_row","info","Identical repeated dependency rows on terminal holders are historical storage noise with no scheduling effect.",t=>`${t} exactly duplicated stored dependency row(s) on terminal holder(s)`,"Leave as history debt or clean up in a dedicated changelog-safe closed-item batch."),i}function be(e,n,s,o,i){e.active+=1;let t=n.type??"(untyped)",r=e.byType.get(t);r||(r={active:0,isolated:0,degree_leq_one:0},e.byType.set(t,r)),r.active+=1,!(s>1)&&(e.degreeLeqOne+=1,r.degree_leq_one+=1,s===0&&(e.isolated+=1,r.isolated+=1),!(o.has(n.id.toLowerCase())||i.has(t.toLowerCase()))&&(s===0?e.isolates.push(n.id):e.sparse.push(n.id)))}function _e(e,n,s,o,i,t){let r={active:0,missing:0,isolated:0,degreeLeqOne:0,isolates:[],sparse:[],byType:new Map};for(let u of e.graph.nodes()){let l=n.get(u);if(l){if(l.missing){r.missing+=1;continue}l.terminal||be(r,l,e.graph.incidentEdges(u).length,s,o)}}let{isolates:d,sparse:c}=r,a=[];return p(a,d,i,"isolated_active_node","warning","Active work should be reachable from the graph unless explicitly declared a valid isolate.",u=>`${u} active item(s) with no relationships`,"Link the item to its parent, prerequisite, or origin \u2014 or register it as an exempt isolate."),p(a,c,i,"sparse_active_node","info","Active items with a single edge often miss an honest semantic partner; sparse is not automatically defective.",u=>`${u} active item(s) with exactly one relationship`,"Investigate for an honest second edge (story->task, defect family, cross-epic complement); do not fabricate one."),{findings:a,profile:{nodes:e.graph.nodes().length,edges:e.graph.edges().length,edge_basis:"deduplicated_directed",edges_by_kind:Object.fromEntries(Object.entries(t).sort(([u],[l])=>u.localeCompare(l))),active_nodes:r.active,missing_nodes:r.missing,isolated_active_nodes:r.isolated,degree_leq_one_active_nodes:r.degreeLeqOne,coverage_by_type:Object.fromEntries([...r.byType.entries()].sort(([u],[l])=>u<l?-1:1))}}}function $e(e,n={}){let s=n.isTerminal??(l=>l==="closed"||l==="canceled"),o=n.isBlocked??(l=>l==="blocked"),i=n.maxSampleSize??de;if(!Number.isInteger(i)||i<1)throw new TypeError(`Invalid audit sample bound: ${String(n.maxSampleSize)}`);let t=new Set((n.exemptIsolates??[]).filter(l=>typeof l=="string").map(l=>l.trim().toLowerCase())),r=new Set((n.isolateExemptTypes??[]).filter(l=>typeof l=="string").map(l=>l.trim().toLowerCase())),d=new Map(e.details.map(l=>[l.id,{id:l.id,status:l.status,missing:e.missingIdSet.has(l.id.toLowerCase()),terminal:s(l.status),...l.type===void 0?{}:{type:l.type}}]));n.signal?.throwIfAborted();let c={};for(let l of e.graph.edges())c[l.kind]=(c[l.kind]??0)+1;let a=fe(e,s,i);n.signal?.throwIfAborted(),a.push(...ge(e,d,o,i)),n.signal?.throwIfAborted(),a.push(...me(e,d,i),...ye(e,i)),n.signal?.throwIfAborted();let u=_e(e,d,t,r,i,c);return a.push(...u.findings),a.sort((l,f)=>S[l.severity]-S[f.severity]||l.code.localeCompare(f.code)||l.sample[0].localeCompare(f.sample[0])),{findings:a,profile:u.profile}}function q(e,n){let s=[...new Set([...Object.keys(e),...Object.keys(n)])].sort(),o={};for(let i of s){let t=(n[i]??0)-(e[i]??0);t!==0&&(o[i]=t)}return o}function C(e){return e.profile.coverage_by_type??{}}function Me(e,n){let s={},o=C(e),i=C(n),t=[...new Set([...Object.keys(o),...Object.keys(i)])].sort();for(let r of t){let d=o[r],c=i[r],a={active:(c?.active??0)-(d?.active??0),isolated:(c?.isolated??0)-(d?.isolated??0),degree_leq_one:(c?.degree_leq_one??0)-(d?.degree_leq_one??0)};Object.values(a).some(u=>u!==0)&&(s[r]=a)}return{baseline_saved_at:e.saved_at,same_snapshot:e.fingerprint===n.fingerprint,affected_subjects_by_code:q(e.affected_subjects_by_code,n.affected_subjects_by_code),profile:{nodes:n.profile.nodes-e.profile.nodes,edges:n.profile.edges-e.profile.edges,active_nodes:n.profile.active_nodes-e.profile.active_nodes,missing_nodes:n.profile.missing_nodes-e.profile.missing_nodes,isolated_active_nodes:n.profile.isolated_active_nodes-e.profile.isolated_active_nodes,degree_leq_one_active_nodes:n.profile.degree_leq_one_active_nodes-e.profile.degree_leq_one_active_nodes,edges_by_kind:q(e.profile.edges_by_kind,n.profile.edges_by_kind),coverage_by_type:s}}}export{we as a,ve as b,ke as c,xe as d,Ee as e,Ie as f,Y as g,Ae as h,Ne as i,Se as j,le as k,pe as l,he as m,$e as n,Me as o};
2
- //# sourceMappingURL=chunk-H6FITE7D.js.map
1
+ (function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="c0fb747e-1f9f-55c4-808b-b77d3a881f87")}catch{}})();var M=5,L=1e4,P=8;function v(e,n){if(!Number.isFinite(n)||!Number.isInteger(n)||n<0)throw new TypeError(`Invalid path ${e} bound: ${String(n)}`)}function m(e,n){return n.hierarchyDirection==="target_parent"?e.target:e.source}function h(e,n){return(n.precedence??"source_before_target")==="target_before_source"?e.target:e.source}function we(e,n){let s=h(e,n);return{predecessor:s,successor:s===e.source?e.target:e.source}}function R(e,n,s){if(n===void 0)return;let o=e.registry(),i=new Set;for(let t of n){let r=o.require(t);if(!r[s])throw new TypeError(`Relationship kind ${r.kind} is not a ${s} kind`);i.add(r.kind)}return i}function j(e,n,s,o,i){let t=e.registry(),r=e.neighborEdges(n,{direction:"both",...s===void 0?{}:{kinds:[...s]}}),d=[],c=new Set;for(let a of r.value){let u=t.require(a.edge.kind);u[o]&&i(a,u,n)&&(c.has(a.id)||(c.add(a.id),d.push(a.id)))}return{neighbors:d,inspectedEdges:r.meta.inspectedEdges}}function F(e,n,s,o,i,t){if(n>=s)return e.neighbors.some(r=>!t.seen.has(r))&&(t.truncated=!0),!1;for(let r of e.neighbors)if(!t.seen.has(r)){if(t.seen.add(r),t.queue.push({id:r,depth:n+1}),!t.resumed){r===i&&(t.resumed=!0);continue}if(t.value.length>=o)return t.truncated=!0,!0;t.value.push(r)}return!1}function y(e,n,s,o,i){if(!e.hasNode(n))throw new TypeError(`Relationship node not found: ${n}`);let t=R(e,s.kinds,o),r=s.limit??Number.POSITIVE_INFINITY,d=s.maxDepth??Number.POSITIVE_INFINITY,c=s.after,a={seen:new Set([n]),value:[],queue:[{id:n,depth:0}],resumed:c===void 0,truncated:!1},u=0,l=0;for(let f=0;f<a.queue.length;f+=1){s.signal?.throwIfAborted();let g=a.queue[f];u+=1;let T=j(e,g.id,t,o,i);if(l+=T.inspectedEdges,F(T,g.depth,d,r,c,a))break}if(!a.resumed)throw new TypeError(`Traversal cursor not found in sequence: ${c}`);return{value:a.value,meta:{visitedNodes:u,inspectedEdges:l,truncated:a.truncated,nextCursor:a.value.at(-1)}}}function D(e,n){if(!e.hasNode(n))throw new TypeError(`Relationship node not found: ${n}`)}function A(e,n,s,o,i){let t=e.neighborEdges(n.nodes.at(-1),{direction:o,...s.kinds===void 0?{}:{kinds:s.kinds}});return i.inspectedEdges+=t.meta.inspectedEdges,t.value.filter(r=>!n.nodeSet.has(r.id))}function O(e,n,s,o,i,t,r){for(let d of A(e,n,o,i,r)){let c=[...n.nodes,d.id],a=new Set(n.nodeSet).add(d.id),u=[...n.edges,d.edge];if(d.id===s){if(r.value.push({nodes:c,edges:u,length:u.length}),r.value.length>=t)return!0}else r.queue.push({nodes:c,nodeSet:a,edges:u})}return!1}function ve(e,n,s={}){return y(e,n,s,"hierarchy",(o,i)=>m(o.edge,i)===o.id)}function ke(e,n,s={}){return y(e,n,s,"hierarchy",(o,i,t)=>m(o.edge,i)===t)}function xe(e,n,s={}){return y(e,n,s,"ordering",(o,i)=>h(o.edge,i)===o.id)}function Ee(e,n,s={}){return y(e,n,s,"ordering",(o,i,t)=>h(o.edge,i)===t)}function B(e,n,s,o,i,t,r,d){let c={value:[],queue:[{nodes:[n],nodeSet:new Set([n]),edges:[]}],inspectedEdges:0},a=0,u=!1,l=i+1;for(let f=0;f<c.queue.length;f+=1){if(o.signal?.throwIfAborted(),c.value.length>=l||a>=t){u=!0;break}let g=c.queue[f];if(a+=1,g.edges.length>=r){A(e,g,o,d,c).length>0&&(u=!0);continue}if(O(e,g,s,o,d,l,c)){u=!0;break}}return{value:c.value.slice(0,i),meta:{visitedNodes:a,inspectedEdges:c.inspectedEdges,truncated:u}}}function Ie(e,n,s,o={}){D(e,n),D(e,s);let i=o.maxPaths??M,t=o.maxVisitedPaths??L,r=o.maxDepth??P;v("maxPaths",i),v("maxVisitedPaths",t),v("maxDepth",r);let d=o.direction??"outgoing";o.signal?.throwIfAborted();for(let c of o.kinds??[])e.registry().require(c);return n===s?i===0?{value:[],meta:{visitedNodes:1,inspectedEdges:0,truncated:!0}}:{value:[{nodes:[n],edges:[],length:0}],meta:{visitedNodes:1,inspectedEdges:0,truncated:!1}}:B(e,n,s,o,i,t,r,d)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="24898402-1568-5b05-9072-f89dd91f25a6")}catch{}})();var U=16,K=2,V=8;function b(e,n){if(!Number.isInteger(n)||n<1)throw new TypeError(`Invalid ${e} bound: ${String(n)}`)}function Y(e,n,s){let o=e.registry(),i=n===void 0?void 0:new Set(n.map(t=>o.require(t).kind));for(let t of e.edges()){if(t.source===t.target)continue;let r=o.require(t.kind);i!==void 0&&!(i.has(r.kind)||r.inverse!==void 0&&i.has(r.inverse))||s(t,r)}}function X(e,n){let s=new Map;Y(e,n,o=>{N(s,o.source,o.target),N(s,o.target,o.source)});for(let o of s.values())o.sort();return s}function N(e,n,s){let o=e.get(n);o===void 0?e.set(n,[s]):o.push(s)}function H(e,n){let s=new Map;for(let t of e){let r=n.get(t);s.set(r,(s.get(r)??0)+1)}let o,i=0;for(let[t,r]of s)(r>i||r===i&&t<o)&&(o=t,i=r);return o}function W(e,n){let s=new Map;for(let[i,t]of e){let r=s.get(t);r===void 0?s.set(t,[i]):r.push(i)}let o=[];for(let i of s.values())i.length<n||(i.sort(),o.push({representative:i[0],size:i.length,members:i}));return o.sort((i,t)=>t.size-i.size||i.representative.localeCompare(t.representative))}function Ae(e,n={}){let s=n.maxIterations??U,o=n.minSize??K;b("maxIterations",s),b("minSize",o);let i=X(e,n.kinds),t=e.nodes(),r=new Map(t.map(l=>[l,l])),d=0,c=!1,a=0,u=0;for(;d<s&&!c;){n.signal?.throwIfAborted(),d+=1,c=!0;for(let l of t){a+=1;let f=i.get(l);if(f===void 0)continue;u+=f.length;let g=H(f,r);g!==r.get(l)&&(r.set(l,g),c=!1)}}return{value:{communities:W(r,o),iterations:d,converged:c},meta:{visitedNodes:a,inspectedEdges:u,truncated:!c}}}function _(e){return e.direction==="directed"&&(e.ordering||e.hierarchy)}function w(e){return e.inverse!==void 0&&e.inverse<e.kind?e.inverse:e.kind}function k(e,n){return(n.hierarchy?m(e,n):e.source===h(e,n)?e.target:e.source)===e.target?{from:e.source,to:e.target}:{from:e.target,to:e.source}}function G(e,n){if(n===void 0)return;let s=e.registry(),o=new Set;for(let i of n){let t=s.require(i);if(!_(t))throw new TypeError(`Relationship kind ${t.kind} is not a directed ordering or hierarchy kind`);o.add(w(t))}return o}function Z(e,n){let s=e.registry(),o=new Map;for(let i of e.edges()){let t=s.require(i.kind);if(!_(t))continue;let r=w(t);if(n!==void 0&&!n.has(r))continue;let d=k(i,t);if(d.from===d.to)continue;let c=o.get(r);c===void 0&&(c={adjacency:new Map,records:[]},o.set(r,c));let a=c.adjacency.get(d.from);a===void 0?c.adjacency.set(d.from,new Set([d.to])):a.add(d.to),c.records.push({...d,edge:i})}return o}function z(e){let n=new Map;for(let[s,o]of e.adjacency)n.set(s,[...o].sort());return n}function J(e,n,s,o){let i=[o];for(let t=s;t!==n;t=e.get(t))i.push(t);return i.push(n),i.reverse()}function Q(e,n,s,o,i,t){for(let r of e.get(s.id)??[])if(t.inspectedEdges+=1,!(s.depth===0&&r===n.to)&&!o.has(r)){if(o.set(r,s.id),r===n.to)return J(o,n.from,s.id,r);i.push({id:r,depth:s.depth+1})}}function ee(e,n,s,o){let i=new Map([[n.from,n.from]]),t=[{id:n.from,depth:0}];for(let r=0;r<t.length;r+=1){let d=t[r];if(o.visitedNodes+=1,d.depth>=s)continue;let c=Q(e,n,d,i,t,o);if(c!==void 0)return c}}function Ne(e,n={}){let s=n.maxDepth??V;b("maxDepth",s),n.limit!==void 0&&b("limit",n.limit);let o=n.limit??Number.POSITIVE_INFINITY,i=G(e,n.kinds),t=Z(e,i),r=[],d={visitedNodes:0,inspectedEdges:0},c=!1;e:for(let a of[...t.keys()].sort()){let u=t.get(a),l=z(u);for(let f of u.records){n.signal?.throwIfAborted();let g=ee(l,f,s,d);if(g!==void 0){if(r.length>=o){c=!0;break e}r.push({edge:f.edge,witness:g})}}}return{value:r,meta:{visitedNodes:d.visitedNodes,inspectedEdges:d.inspectedEdges,truncated:c}}}function ne(e,n,s,o,i){let t=new Set,r=[];for(let d of s){if(d.id===e||t.has(d.id))continue;if(!i.seen.has(d.id)){if(n>=o){i.truncated=!0;continue}i.seen.add(d.id),i.queue.push({id:d.id,depth:n+1})}t.add(d.id),r.push(d.id);let c=i.predecessors.get(d.id);c===void 0&&(c=new Set,i.predecessors.set(d.id,c)),c.add(e)}return r}function te(e,n,s){let o=s.direction??"outgoing",i=s.maxDepth??Number.POSITIVE_INFINITY,t=[],r=new Map,d={seen:new Set([n]),queue:[{id:n,depth:0}],predecessors:new Map,truncated:!1},c=0;for(let a=0;a<d.queue.length;a+=1){s.signal?.throwIfAborted();let{id:u,depth:l}=d.queue[a];t.push(u);let f=e.neighborEdges(u,{direction:o,...s.kinds===void 0?{}:{kinds:s.kinds}});c+=f.meta.inspectedEdges,r.set(u,ne(u,l,f.value,i,d))}return{order:t,successors:r,predecessors:d.predecessors,inspectedEdges:c,truncated:d.truncated}}function oe(e,n){let s=[],o=new Set([n]),i=[{id:n,index:0}];for(;i.length>0;){let t=i.at(-1),r=e.successors.get(t.id);if(t.index<r.length){let d=r[t.index];t.index+=1,o.has(d)||(o.add(d),i.push({id:d,index:0}))}else s.push(t.id),i.pop()}return s.reverse()}function ie(e,n,s,o){let i=e,t=n;for(;i!==t;){for(;o.get(i)>o.get(t);)i=s.get(i);for(;o.get(t)>o.get(i);)t=s.get(t)}return i}function se(e,n,s){let o;for(let i of[...e].sort())n.has(i)&&(o=o===void 0?i:ie(o,i,n,s));return o}function re(e,n,s,o,i){let t=new Map([[n,n]]),r=!0;for(;r;){r=!1;for(let d of s){if(i?.throwIfAborted(),d===n)continue;let c=se(e.predecessors.get(d),t,o);c!==void 0&&t.get(d)!==c&&(t.set(d,c),r=!0)}}return t}function Se(e,n,s={}){if(!e.hasNode(n))throw new TypeError(`Relationship node not found: ${n}`);if(s.maxDepth!==void 0&&(!Number.isInteger(s.maxDepth)||s.maxDepth<0))throw new TypeError(`Invalid maxDepth bound: ${String(s.maxDepth)}`);let o=te(e,n,s),i=oe(o,n),t=new Map(i.map((a,u)=>[a,u])),r=re(o,n,i,t,s.signal),d=new Map(i.map(a=>[a,1]));for(let a=i.length-1;a>=0;a-=1){let u=i[a];if(u===n)continue;let l=r.get(u);d.set(l,d.get(l)+d.get(u))}let c=i.filter(a=>a!==n).map(a=>({id:a,idom:r.get(a),dominatedCount:d.get(a)-1})).sort((a,u)=>u.dominatedCount-a.dominatedCount||a.id.localeCompare(u.id));return{value:{root:n,reachableCount:o.order.length,rows:c},meta:{visitedNodes:o.order.length,inspectedEdges:o.inspectedEdges,truncated:o.truncated}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="76fa19c7-a421-5026-8de8-450285987c4e")}catch{}})();var de=25,S={error:0,warning:1,info:2};function E(e,n,s,o,i,t,r){let d=[...i].sort((c,a)=>c.localeCompare(a));return{code:e,severity:n,policy:s,message:o(d.length),count:d.length,sample:d.slice(0,t),sample_truncated:d.length>t,remediation:r}}function ce(e){let n=e.graph.registry(),s=new Map;for(let o of e.graph.edges()){let i=n.require(o.kind);if(!i.ordering)continue;let[t,r]=(i.precedence??"source_before_target")==="target_before_source"?[o.target,o.source]:[o.source,o.target],d=s.get(t);d?d.push(r):s.set(t,[r])}for(let o of s.values())o.sort((i,t)=>i.localeCompare(t));return s}function q(e,n){n.indexes.set(e,n.nextIndex),n.lowLinks.set(e,n.nextIndex),n.nextIndex+=1,n.stack.push(e),n.onStack.add(e)}function ae(e,n,s,o){let i=s.get(e.node)??[];if(e.neighborIndex>=i.length)return!1;let t=i[e.neighborIndex];return e.neighborIndex+=1,o.indexes.has(t)?o.onStack.has(t)&&o.lowLinks.set(e.node,Math.min(o.lowLinks.get(e.node),o.indexes.get(t))):(q(t,o),n.push({node:t,neighborIndex:0})),!0}function ue(e,n,s,o){n.pop();let i=n.at(-1);if(i&&o.lowLinks.set(i.node,Math.min(o.lowLinks.get(i.node),o.lowLinks.get(e.node))),o.lowLinks.get(e.node)!==o.indexes.get(e.node))return;let t=[];for(;;){let r=o.stack.pop();if(o.onStack.delete(r),t.push(r),r===e.node)break}(t.length>1||t.length===1&&s.get(t[0])?.includes(t[0]))&&o.components.push(t.sort((r,d)=>r.localeCompare(d)))}function le(e){let n={indexes:new Map,lowLinks:new Map,onStack:new Set,stack:[],components:[],nextIndex:0},s=[...e.keys()].sort((o,i)=>o.localeCompare(i));for(let o of s){if(n.indexes.has(o))continue;let i=[{node:o,neighborIndex:0}];for(q(o,n);i.length>0;){let t=i.at(-1);ae(t,i,e,n)||ue(t,i,e,n)}}return n.components.sort((o,i)=>o[0].localeCompare(i[0]))}function x(e){return`${e.holder_id} -> ${e.target_id} (${e.kind})`}function p(e,n,s,o,i,t,r,d){n.length!==0&&e.push(E(o,i,t,r,n,s,d))}function fe(e,n,s){let o=[],i=[...e.dangling.active,...e.dangling.legacy_terminal].filter(t=>!t.no_active_blocker_sentinel);return p(o,i.filter(t=>!n(t.holder_status)).map(x),s,"missing_reference_active","error","Active items must not reference absent targets; missing prerequisites distort scheduling.",t=>`${t} active dangling reference(s) to absent items`,"Restore or re-create the referenced item, or remove/retype the reference on the holder."),p(o,i.filter(t=>n(t.holder_status)).map(x),s,"missing_reference_terminal","info","Terminal items may retain historical references, but absent targets remain unexplainable context.",t=>`${t} terminal dangling reference(s) to absent items`,"Leave as history debt or clean up in a dedicated changelog-safe closed-item batch."),p(o,e.dangling.no_active_blocker_sentinels.map(x),s,"legacy_no_blocker_sentinel","info","The pre-structured-dependency no-active-blocker sentinel is retired; real edges carry blocker state.",t=>`${t} legacy no-active-blocker sentinel reference(s)`,"Delete the sentinel reference; blocker state is derived from blocked_by edges."),o}function I(e,n){let s=n.get(e);return s?!s.terminal:!0}function ge(e,n,s,o){let i=[],t=ce(e);for(let c of le(t)){let a=c.some(u=>I(u,n));i.push(a?E("ordering_cycle","error","Order-bearing relationship kinds must stay acyclic; a cycle makes every member unschedulable.",u=>`execution-order cycle across ${u} item(s)`,c,o,"Remove or retype one ordering edge inside the cycle, or split the work so precedence is linear."):E("legacy_ordering_cycle","info","Ordering cycles between exclusively terminal items are historical contradictions with no scheduling effect.",u=>`terminal-only execution-order cycle across ${u} item(s)`,c,o,"Leave as history debt, or clean up in a dedicated changelog-safe closed-item batch; never repair closed items ad hoc."))}let r=new Map;for(let[c,a]of t)for(let u of a){let l=r.get(u);l?l.push(c):r.set(u,[c])}let d=[...n.values()].filter(c=>!c.missing&&!c.terminal&&s(c.status)&&!(r.get(c.id)??[]).some(a=>{let u=n.get(a);return u===void 0||!u.terminal})).map(c=>c.id);return p(i,d,o,"stale_lifecycle_block","warning","A blocked lifecycle status must be backed by at least one open ordering predecessor.",c=>`${c} status-blocked item(s) with no open blocker edge`,'Add a local blocker edge, declare an external blocker with --dep "id=<external-ref>,kind=blocked_by,source_kind=external", or move the item back to an active status.'),i}function pe(e){let n=e.edges.map(s=>s.kind).sort((s,o)=>s.localeCompare(o));return`${e.from} -> ${e.to} (${n.join(" + ")})`}function he(e){let n=e.graph.registry(),s=new Map;for(let i of e.graph.edges()){let t=n.require(i.kind);if(!_(t))continue;let r=k(i,t);if(r.from===r.to)continue;let d=`${w(t)}::${r.from}::${r.to}`,c=s.get(d);c?c.edges.push(i):s.set(d,{...r,edges:[i]})}let o=[...s.values()].filter(i=>i.edges.length>=2);for(let i of o)i.edges.sort((t,r)=>t.kind.localeCompare(r.kind));return o.sort((i,t)=>i.from.localeCompare(t.from)||i.to.localeCompare(t.to))}function me(e,n,s){let o=[],i=[];for(let r of he(e))(I(r.from,n)||I(r.to,n)?o:i).push(pe(r));let t=[];return p(t,o,s,"duplicate_edge","info","One semantic relationship should be stored once; parallel same-family spellings (reciprocal inverse pairs included) add no information and skew degree metrics.",r=>`${r} duplicated relationship(s) between active endpoints`,"Remove all but one stored spelling of the relationship; keep the canonical direction the holder declared first."),p(t,i,s,"legacy_duplicate_edge","info","Duplicated spellings between exclusively terminal items are historical noise with no scheduling effect.",r=>`${r} duplicated relationship(s) between terminal endpoints`,"Leave as history debt or clean up in a dedicated changelog-safe closed-item batch."),t}function ye(e,n){let s=[],o=[];for(let t of e.duplicateRows??[])(t.legacy_terminal?o:s).push(`${t.holder_id} -> ${t.target_id} (${t.kind} x${t.occurrences})`);let i=[];return p(i,s,n,"duplicate_dependency_row","warning","One dependency row must be stored once per holder; identical repeated rows are a storage-layer defect invisible to the assembled graph.",t=>`${t} exactly duplicated stored dependency row(s) on active holder(s)`,"Remove the repeated rows so the dependency is stored exactly once; graph semantics are unchanged."),p(i,o,n,"legacy_duplicate_dependency_row","info","Identical repeated dependency rows on terminal holders are historical storage noise with no scheduling effect.",t=>`${t} exactly duplicated stored dependency row(s) on terminal holder(s)`,"Leave as history debt or clean up in a dedicated changelog-safe closed-item batch."),i}function be(e,n,s,o,i){e.active+=1;let t=n.type??"(untyped)",r=e.byType.get(t);r||(r={active:0,isolated:0,degree_leq_one:0},e.byType.set(t,r)),r.active+=1,!(s>1)&&(e.degreeLeqOne+=1,r.degree_leq_one+=1,s===0&&(e.isolated+=1,r.isolated+=1),!(o.has(n.id.toLowerCase())||i.has(t.toLowerCase()))&&(s===0?e.isolates.push(n.id):e.sparse.push(n.id)))}function _e(e,n,s,o,i,t){let r={active:0,missing:0,isolated:0,degreeLeqOne:0,isolates:[],sparse:[],byType:new Map};for(let u of e.graph.nodes()){let l=n.get(u);if(l){if(l.missing){r.missing+=1;continue}l.terminal||be(r,l,e.graph.incidentEdges(u).length,s,o)}}let{isolates:d,sparse:c}=r,a=[];return p(a,d,i,"isolated_active_node","warning","Active work should be reachable from the graph unless explicitly declared a valid isolate.",u=>`${u} active item(s) with no relationships`,"Link the item to its parent, prerequisite, or origin \u2014 or register it as an exempt isolate."),p(a,c,i,"sparse_active_node","info","Active items with a single edge often miss an honest semantic partner; sparse is not automatically defective.",u=>`${u} active item(s) with exactly one relationship`,"Investigate for an honest second edge (story->task, defect family, cross-epic complement); do not fabricate one."),{findings:a,profile:{nodes:e.graph.nodes().length,edges:e.graph.edges().length,edge_basis:"deduplicated_directed",edges_by_kind:Object.fromEntries(Object.entries(t).sort(([u],[l])=>u.localeCompare(l))),active_nodes:r.active,missing_nodes:r.missing,isolated_active_nodes:r.isolated,degree_leq_one_active_nodes:r.degreeLeqOne,coverage_by_type:Object.fromEntries([...r.byType.entries()].sort(([u],[l])=>u<l?-1:1))}}}function qe(e,n={}){let s=n.isTerminal??(l=>l==="closed"||l==="canceled"),o=n.isBlocked??(l=>l==="blocked"),i=n.maxSampleSize??de;if(!Number.isInteger(i)||i<1)throw new TypeError(`Invalid audit sample bound: ${String(n.maxSampleSize)}`);let t=new Set((n.exemptIsolates??[]).filter(l=>typeof l=="string").map(l=>l.trim().toLowerCase())),r=new Set((n.isolateExemptTypes??[]).filter(l=>typeof l=="string").map(l=>l.trim().toLowerCase())),d=new Map(e.details.map(l=>[l.id,{id:l.id,status:l.status,missing:e.missingIdSet.has(l.id.toLowerCase()),terminal:s(l.status),...l.type===void 0?{}:{type:l.type}}]));n.signal?.throwIfAborted();let c={};for(let l of e.graph.edges())c[l.kind]=(c[l.kind]??0)+1;let a=fe(e,s,i);n.signal?.throwIfAborted(),a.push(...ge(e,d,o,i)),n.signal?.throwIfAborted(),a.push(...me(e,d,i),...ye(e,i)),n.signal?.throwIfAborted();let u=_e(e,d,t,r,i,c);return a.push(...u.findings),a.sort((l,f)=>S[l.severity]-S[f.severity]||l.code.localeCompare(f.code)||l.sample[0].localeCompare(f.sample[0])),{findings:a,profile:u.profile}}function C(e,n){let s=[...new Set([...Object.keys(e),...Object.keys(n)])].sort(),o={};for(let i of s){let t=(n[i]??0)-(e[i]??0);t!==0&&(o[i]=t)}return o}function $(e){return e.profile.coverage_by_type??{}}function Me(e,n){let s={},o=$(e),i=$(n),t=[...new Set([...Object.keys(o),...Object.keys(i)])].sort();for(let r of t){let d=o[r],c=i[r],a={active:(c?.active??0)-(d?.active??0),isolated:(c?.isolated??0)-(d?.isolated??0),degree_leq_one:(c?.degree_leq_one??0)-(d?.degree_leq_one??0)};Object.values(a).some(u=>u!==0)&&(s[r]=a)}return{baseline_saved_at:e.saved_at,same_snapshot:e.fingerprint===n.fingerprint,affected_subjects_by_code:C(e.affected_subjects_by_code,n.affected_subjects_by_code),profile:{nodes:n.profile.nodes-e.profile.nodes,edges:n.profile.edges-e.profile.edges,active_nodes:n.profile.active_nodes-e.profile.active_nodes,missing_nodes:n.profile.missing_nodes-e.profile.missing_nodes,isolated_active_nodes:n.profile.isolated_active_nodes-e.profile.isolated_active_nodes,degree_leq_one_active_nodes:n.profile.degree_leq_one_active_nodes-e.profile.degree_leq_one_active_nodes,edges_by_kind:C(e.profile.edges_by_kind,n.profile.edges_by_kind),coverage_by_type:s}}}export{we as a,ve as b,ke as c,xe as d,Ee as e,Ie as f,Y as g,Ae as h,Ne as i,Se as j,le as k,pe as l,he as m,qe as n,Me as o};
2
+ //# sourceMappingURL=chunk-NE5VRDAI.js.map
@@ -1,2 +1,2 @@
1
- import{a as ne,b as ie,c as se,d as P,e as C}from"./chunk-UVZREFZU.js";import{A as f,Ad as G,C as h,Da as N,Ff as oe,Hf as re,Jf as F,Kf as O,La as S,Oa as $,Of as ae,Pa as W,R as A,Ra as b,Xe as X,Ye as J,af as K,b as R,bf as Q,c as v,cf as T,d as p,hd as B,id as M,if as V,kf as Y,lc as j,qc as z,rc as k,rf as Z,sf as ee,uc as x,vc as U,yf as te,zd as q}from"./chunk-V5K52PYW.js";import Re from"fast-json-patch";import L 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]="353be665-9f67-5d0e-99c9-6bbb7e927e0b")}catch{}})();function ce(e,t){return ie(e,t,{errorSubject:"restore",allowFutureTimestamp:!0})}function de(e){let t=P(e,e.length-1);return Object.keys(t.metadata).length===0?{metadata:{},body:t.body}:M(K(t))}async function le(e,t,a,d){let r=await F(e,t,a.id_prefix,a.item_format,d);if(r){let c=b(e,r.id),m=await V({pmRoot:e,settings:a,itemId:r.id,commandLabel:"restore"});return{id:r.id,historyPath:c,located:r,historyPolicyWarnings:m.warnings}}let o=ee(t,a.id_prefix),i=Z(t),n=o===i?[o]:[o,i];for(let c of n){let m=b(e,c);if(await R(m))return{id:c,historyPath:m,located:null,historyPolicyWarnings:[]}}throw new h(`Item ${t} not found`,f.NOT_FOUND)}function fe(e,t){let a=T(e),d=T(t),r=Re.compare(a,d),o=new Set;for(let i of r){if(i.path==="/body"||i.path.startsWith("/body/")){o.add("body");continue}let n=i.path.replace(/^\/(?:metadata|front_matter)\/?/,"").split("/")[0];o.add(n.replaceAll("~1","/").replaceAll("~0","~"))}return Array.from(o).sort((i,n)=>i.localeCompare(n))}async function ve(e){if(await v(e.subject.historyPath)!==e.historyRawBeforeLock)throw new h(`History for ${e.resolvedId} changed while waiting for lock; retry restore.`,f.CONFLICT);let a=await F(e.pmRoot,e.resolvedId,e.settings.id_prefix,e.settings.item_format,e.typeToFolder),d=a?await O(a,{schema:e.settings.schema}):null;if((d?.raw??null)!==e.currentItemRawBeforeLock)throw new h(`Item ${e.resolvedId} changed while waiting for lock; retry restore.`,f.CONFLICT);return{loadedItemUnderLock:d,existingItemPath:a?.itemPath??null}}function be(e,t){return e?{document:e.document,originalRaw:e.raw}:{document:de(t),originalRaw:null}}function ke(e){let t=e.document.metadata.assignee?.trim();if(!(t&&t!==e.author&&!e.force))return[];if(e.enforcement==="strict")throw new h(`Item ${e.resolvedId} is assigned to ${t}. Use --force to override.`,f.CONFLICT);return e.enforcement==="warn"?[`ownership_warning:assignee_conflict:${e.resolvedId}:${t}`]:[]}async function xe(e){if(e.existingItemPath&&e.resolvedOriginalRaw!==null&&e.restoredItemPath!==e.existingItemPath){await p(e.existingItemPath,e.resolvedOriginalRaw),await L.rm(e.restoredItemPath,{force:!0});return}if(e.existingItemPath&&e.resolvedOriginalRaw!==null){await p(e.existingItemPath,e.resolvedOriginalRaw);return}await L.rm(e.restoredItemPath,{force:!0})}async function Te(e){return[...await x({path:e.restoredItemPath,scope:"project",op:"restore",item_id:e.after.metadata.id,item_type:e.after.metadata.type,before:e.before,after:e.after,changed_fields:["restored"]}),...await x({path:e.historyPath,scope:"project",op:"restore:history",item_id:e.after.metadata.id,item_type:e.after.metadata.type,before:e.before,after:e.after,changed_fields:["restored"]})]}async function He(e,t,a,d){let r=S(process.cwd(),d.path);if(!await R($(r)))throw new h(`Tracker is not initialized at ${r}. Run pm init first.`,f.NOT_FOUND);let o=await te(r),i=N(o,j()),n=await le(r,e,o,i.type_to_folder),c=n.id,m=await v(n.historyPath),y=await G(n.historyPath,c);if(y.length===0)throw new h(`No history exists for ${c}; restore is unavailable.`,f.NOT_FOUND);let u=ce(t,y),he=C(P(y,u.historyIndex),u),s=Q(he,{schema:o.schema});if(s.metadata.id!==c)throw new h(`Restore target resolved to item ${s.metadata.id}, expected ${c}.`,f.GENERIC_FAILURE);let me=(n.located?await O(n.located,{schema:o.schema}):null)?.raw??null,_=q(a.author,o.author_default),ue=await Y(r,c,o.locks.ttl_seconds,_,!!a.force,o.governance.force_required_for_stale_lock,o.locks.wait_ms);try{let{loadedItemUnderLock:ye,existingItemPath:w}=await ve({pmRoot:r,resolvedId:c,subject:n,settings:o,typeToFolder:i.type_to_folder,historyRawBeforeLock:m,currentItemRawBeforeLock:me}),D="toon",l=be(ye,y),we=ke({document:l.document,author:_,force:a.force,enforcement:o.governance.ownership_enforcement,resolvedId:c}),g=fe(l.document,s);await U({pm_root:r,operation:"restore",before:l.document,after:s,changed_fields:g,sdk:ae({pmRoot:r,settings:o,typeToFolder:i.type_to_folder})});let ge=B(s,{format:D,schema:o.schema}),I=W(r,s.metadata.type,c,D,i.type_to_folder),Ie=await oe(r,_),E=[];try{await p(I,ge),w&&I!==w&&await L.rm(w);let pe=X({nowIso:A(),author:_,op:"restore",before:l.document,after:s,message:a.message});try{await J(n.historyPath,pe)}catch(Pe){throw await xe({existingItemPath:w,resolvedOriginalRaw:l.originalRaw,restoredItemPath:I}),Pe}E=await re({pmRoot:r,preferredFormat:o.item_format,typeToFolder:i.type_to_folder,schema:o.schema,itemPath:I,previousItemPath:w??void 0,document:s})}finally{await Ie()}let _e=await Te({restoredItemPath:I,historyPath:n.historyPath,before:l.document,after:s});z({id:s.metadata.id,op:"restore",item_type:s.metadata.type,previous_status:l.document.metadata.status,status:s.metadata.status,previous:k(l.document.metadata,g),current:k(s.metadata,g),changed_fields:g});let H=y[u.historyIndex];return{item:s.metadata,restored_from:{kind:u.kind,target:u.raw,history_index:u.historyIndex+1,entry_ts:H.ts,entry_op:H.op},changed_fields:g,warnings:[...n.historyPolicyWarnings,...we,...E,..._e]}}finally{await ue()}}var Ae={applyHistoryPatch:se,changedFields:fe,ensureMaterializedRestoreTarget:C,ensureReplayTarget:ce,extractPatchFailureContext:ne,replayCurrentDocument:de,replayToTarget:P,resolveRestoreSubject:le};export{He as a,Ae as b};
2
- //# sourceMappingURL=chunk-NPUJ7OLK.js.map
1
+ import{a as ne,b as ie,c as se,d as P,e as C}from"./chunk-C3YABSJK.js";import{A as f,Ad as G,Af as te,C as h,Da as N,Hf as oe,Jf as re,La as S,Lf as F,Mf as O,Oa as $,Pa as W,Qf as ae,R as A,Ra as b,Ze as X,_e as J,b as R,c as v,cf as K,d as p,df as Q,ef as T,hd as B,id as M,kf as V,lc as j,mf as Y,qc as z,rc as k,tf as Z,uc as x,uf as ee,vc as U,zd as q}from"./chunk-HS7OVAUN.js";import Re from"fast-json-patch";import L 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]="353be665-9f67-5d0e-99c9-6bbb7e927e0b")}catch{}})();function ce(e,t){return ie(e,t,{errorSubject:"restore",allowFutureTimestamp:!0})}function de(e){let t=P(e,e.length-1);return Object.keys(t.metadata).length===0?{metadata:{},body:t.body}:M(K(t))}async function le(e,t,a,d){let r=await F(e,t,a.id_prefix,a.item_format,d);if(r){let c=b(e,r.id),m=await V({pmRoot:e,settings:a,itemId:r.id,commandLabel:"restore"});return{id:r.id,historyPath:c,located:r,historyPolicyWarnings:m.warnings}}let o=ee(t,a.id_prefix),i=Z(t),n=o===i?[o]:[o,i];for(let c of n){let m=b(e,c);if(await R(m))return{id:c,historyPath:m,located:null,historyPolicyWarnings:[]}}throw new h(`Item ${t} not found`,f.NOT_FOUND)}function fe(e,t){let a=T(e),d=T(t),r=Re.compare(a,d),o=new Set;for(let i of r){if(i.path==="/body"||i.path.startsWith("/body/")){o.add("body");continue}let n=i.path.replace(/^\/(?:metadata|front_matter)\/?/,"").split("/")[0];o.add(n.replaceAll("~1","/").replaceAll("~0","~"))}return Array.from(o).sort((i,n)=>i.localeCompare(n))}async function ve(e){if(await v(e.subject.historyPath)!==e.historyRawBeforeLock)throw new h(`History for ${e.resolvedId} changed while waiting for lock; retry restore.`,f.CONFLICT);let a=await F(e.pmRoot,e.resolvedId,e.settings.id_prefix,e.settings.item_format,e.typeToFolder),d=a?await O(a,{schema:e.settings.schema}):null;if((d?.raw??null)!==e.currentItemRawBeforeLock)throw new h(`Item ${e.resolvedId} changed while waiting for lock; retry restore.`,f.CONFLICT);return{loadedItemUnderLock:d,existingItemPath:a?.itemPath??null}}function be(e,t){return e?{document:e.document,originalRaw:e.raw}:{document:de(t),originalRaw:null}}function ke(e){let t=e.document.metadata.assignee?.trim();if(!(t&&t!==e.author&&!e.force))return[];if(e.enforcement==="strict")throw new h(`Item ${e.resolvedId} is assigned to ${t}. Use --force to override.`,f.CONFLICT);return e.enforcement==="warn"?[`ownership_warning:assignee_conflict:${e.resolvedId}:${t}`]:[]}async function xe(e){if(e.existingItemPath&&e.resolvedOriginalRaw!==null&&e.restoredItemPath!==e.existingItemPath){await p(e.existingItemPath,e.resolvedOriginalRaw),await L.rm(e.restoredItemPath,{force:!0});return}if(e.existingItemPath&&e.resolvedOriginalRaw!==null){await p(e.existingItemPath,e.resolvedOriginalRaw);return}await L.rm(e.restoredItemPath,{force:!0})}async function Te(e){return[...await x({path:e.restoredItemPath,scope:"project",op:"restore",item_id:e.after.metadata.id,item_type:e.after.metadata.type,before:e.before,after:e.after,changed_fields:["restored"]}),...await x({path:e.historyPath,scope:"project",op:"restore:history",item_id:e.after.metadata.id,item_type:e.after.metadata.type,before:e.before,after:e.after,changed_fields:["restored"]})]}async function He(e,t,a,d){let r=S(process.cwd(),d.path);if(!await R($(r)))throw new h(`Tracker is not initialized at ${r}. Run pm init first.`,f.NOT_FOUND);let o=await te(r),i=N(o,j()),n=await le(r,e,o,i.type_to_folder),c=n.id,m=await v(n.historyPath),y=await G(n.historyPath,c);if(y.length===0)throw new h(`No history exists for ${c}; restore is unavailable.`,f.NOT_FOUND);let u=ce(t,y),he=C(P(y,u.historyIndex),u),s=Q(he,{schema:o.schema});if(s.metadata.id!==c)throw new h(`Restore target resolved to item ${s.metadata.id}, expected ${c}.`,f.GENERIC_FAILURE);let me=(n.located?await O(n.located,{schema:o.schema}):null)?.raw??null,_=q(a.author,o.author_default),ue=await Y(r,c,o.locks.ttl_seconds,_,!!a.force,o.governance.force_required_for_stale_lock,o.locks.wait_ms);try{let{loadedItemUnderLock:ye,existingItemPath:w}=await ve({pmRoot:r,resolvedId:c,subject:n,settings:o,typeToFolder:i.type_to_folder,historyRawBeforeLock:m,currentItemRawBeforeLock:me}),D="toon",l=be(ye,y),we=ke({document:l.document,author:_,force:a.force,enforcement:o.governance.ownership_enforcement,resolvedId:c}),g=fe(l.document,s);await U({pm_root:r,operation:"restore",before:l.document,after:s,changed_fields:g,sdk:ae({pmRoot:r,settings:o,typeToFolder:i.type_to_folder})});let ge=B(s,{format:D,schema:o.schema}),I=W(r,s.metadata.type,c,D,i.type_to_folder),Ie=await oe(r,_),E=[];try{await p(I,ge),w&&I!==w&&await L.rm(w);let pe=X({nowIso:A(),author:_,op:"restore",before:l.document,after:s,message:a.message});try{await J(n.historyPath,pe)}catch(Pe){throw await xe({existingItemPath:w,resolvedOriginalRaw:l.originalRaw,restoredItemPath:I}),Pe}E=await re({pmRoot:r,preferredFormat:o.item_format,typeToFolder:i.type_to_folder,schema:o.schema,itemPath:I,previousItemPath:w??void 0,document:s})}finally{await Ie()}let _e=await Te({restoredItemPath:I,historyPath:n.historyPath,before:l.document,after:s});z({id:s.metadata.id,op:"restore",item_type:s.metadata.type,previous_status:l.document.metadata.status,status:s.metadata.status,previous:k(l.document.metadata,g),current:k(s.metadata,g),changed_fields:g});let H=y[u.historyIndex];return{item:s.metadata,restored_from:{kind:u.kind,target:u.raw,history_index:u.historyIndex+1,entry_ts:H.ts,entry_op:H.op},changed_fields:g,warnings:[...n.historyPolicyWarnings,...we,...E,..._e]}}finally{await ue()}}var Ae={applyHistoryPatch:se,changedFields:fe,ensureMaterializedRestoreTarget:C,ensureReplayTarget:ce,extractPatchFailureContext:ne,replayCurrentDocument:de,replayToTarget:P,resolveRestoreSubject:le};export{He as a,Ae as b};
2
+ //# sourceMappingURL=chunk-OXY3SJ3N.js.map
@@ -0,0 +1,2 @@
1
+ import{jb as h,lc as L,mb as I,uf as D}from"./chunk-HS7OVAUN.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new t.Error().stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="1b2f1ac3-82b3-58a2-9f40-2dd95ab1b2bc")}catch{}})();var x="global",E="external";function u(t){let e=t?.trim().toLowerCase();return e===x||e===E}function A(t){let e=t?.trim();if(e)return u(e)?x:e}function G(t,e,r){let o=t.trim();return u(r)?o:D(o,e)}(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new t.Error().stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="8368a519-4c09-540e-b0fb-f74cfdc1d7b2")}catch{}})();function y(t){if(typeof t!="string")return;let e=t.trim();if(!(!e||["none","null","n/a","na"].includes(e.toLowerCase())))return e}function b(t){let e=y(t);return e?.toLowerCase()==="no-active-blocker"?void 0:e}function v(){let t=h();for(let e of L()?.relationship_kinds??[])for(let r of e.definitions)t.register(r);return t}function k(t,e){let r=t.toLowerCase(),o=e.toLowerCase();return r!==o?r<o?-1:1:t!==e?t<e?-1:1:0}function z(t){let e=new Map;for(let r of t.dependencies??[]){if(typeof r!="object"||r===null)continue;let o=r,i=y(o.id);if(!i)continue;let c=typeof o.kind=="string"?o.kind:"related",l=`${c}\0${i.toLowerCase()}`,p=e.get(l);p?p.count+=1:e.set(l,{target_id:i,kind:c,count:1})}return e}function S(t,e=r=>r==="closed"||r==="canceled"){let r=[];for(let o of t)if(!(typeof o?.id!="string"||o.id.trim().length===0))for(let i of z(o).values())i.count<2||r.push({holder_id:o.id.trim(),target_id:i.target_id,kind:i.kind,occurrences:i.count,holder_status:o.status,legacy_terminal:e(o.status)});return r.sort((o,i)=>{let c=k(o.holder_id,i.holder_id);if(c!==0)return c;let l=k(o.target_id,i.target_id);return l!==0?l:k(o.kind,i.kind)})}function T(t,e=r=>r==="closed"||r==="canceled"){let r=t.filter(s=>typeof s?.id=="string"&&s.id.trim().length>0),o=new Set(r.map(s=>s.id.trim().toLowerCase())),i=new Map,c=(s,d,f,m)=>{let n=y(d);if(!n||o.has(n.toLowerCase()))return;let a={holder_id:s.id.trim(),target_id:n,kind:f,source:m,holder_status:s.status,legacy_terminal:e(s.status),no_active_blocker_sentinel:n.toLowerCase()==="no-active-blocker"};i.set(`${a.holder_id}::${a.target_id}::${a.kind}::${a.source}`,a)};for(let s of r){c(s,s.parent,"parent","parent"),c(s,s.blocked_by,"blocked_by","blocked_by");for(let d of s.dependencies??[]){if(typeof d!="object"||d===null)continue;let f=d;u(f.source_kind)||c(s,f.id,typeof f.kind=="string"?f.kind:"related","dependency")}}let l=[...i.values()].sort((s,d)=>s.holder_id.localeCompare(d.holder_id)||s.target_id.localeCompare(d.target_id)||s.kind.localeCompare(d.kind)||s.source.localeCompare(d.source)),p=l.filter(s=>s.legacy_terminal);return{active:l.filter(s=>!s.legacy_terminal),legacy_terminal:p,no_active_blocker_sentinels:l.filter(s=>s.no_active_blocker_sentinel)}}function $(t){let e=new Map;for(let r of[...t.active,...t.legacy_terminal]){if(r.no_active_blocker_sentinel)continue;let o=r.target_id.trim(),i=o.toLowerCase();e.has(i)||e.set(i,o)}return[...e.values()].sort((r,o)=>r.localeCompare(o))}function M(t){let e=new Map;for(let r of t)for(let o of r.dependencies??[]){if(typeof o!="object"||o===null||!u(o.source_kind))continue;let i=y(o.id);i&&!e.has(i.toLowerCase())&&e.set(i.toLowerCase(),i)}return[...e.values()].sort((r,o)=>r.localeCompare(o))}function W(t,e,r){let o=r??v(),i=t.filter(n=>typeof n?.id=="string"&&n.id.trim().length>0),c=new Map(i.map(n=>[n.id.trim().toLowerCase(),n.id.trim()])),l=T(i,e),p=$(l);for(let n of p)c.set(n.toLowerCase(),n);let s=M(i),d=new Set(c.keys()),f=new Map;for(let n of s){let a=n;for(;d.has(a.toLowerCase());)a=`external:${a}`;f.set(n.toLowerCase(),a),d.add(a.toLowerCase())}let m=i.map(n=>{let a=b(n.parent),C=b(n.blocked_by),R=(n.dependencies??[]).flatMap(_=>{if(typeof _!="object"||_===null)return[];let g=_,w=b(g.id);return w?[{id:u(g.source_kind)?f.get(w.toLowerCase()):c.get(w.toLowerCase()),kind:typeof g.kind=="string"?g.kind:"related"}]:[]});return{id:n.id.trim(),...a?{parent:c.get(a.toLowerCase())}:{},...C?{blocked_by:c.get(C.toLowerCase())}:{},dependencies:R}});return{graph:I.fromItems([...m,...p.map(n=>({id:n})),...s.map(n=>({id:f.get(n.toLowerCase())}))],o),details:[...i.map(n=>({id:n.id.trim(),title:n.title,status:n.status,...typeof n.type=="string"&&n.type.trim().length>0?{type:n.type.trim()}:{}})),...p.map(n=>({id:n,title:`[missing] ${n}`,status:"missing"})),...s.map(n=>({id:f.get(n.toLowerCase()),title:`[external] ${n}`,status:"external"}))],missingIdSet:new Set(p.map(n=>n.toLowerCase())),dangling:l,duplicateRows:S(i,e)}}export{x as a,E as b,u as c,A as d,G as e,b as f,v as g,S as h,T as i,$ as j,W as k};
2
+ //# sourceMappingURL=chunk-PECV7L5T.js.map
@@ -1,2 +1,2 @@
1
- import{A as u,C as l,La as f,Oa as c,Ra as g,Rf as y,b as o,yf as m,zd as h}from"./chunk-V5K52PYW.js";import n from"node:path";(function(){try{var a=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new a.Error().stack;e&&(a._sentryDebugIds=a._sentryDebugIds||{},a._sentryDebugIds[e]="14aa55e1-cb5f-55ea-bf4c-412217d87449")}catch{}})();async function R(a,e,i){let t=f(process.cwd(),i.path);if(!await o(c(t)))throw new l(`Tracker is not initialized at ${t}. Run pm init first.`,u.NOT_FOUND);let s=await m(t),p=h(e.author,s.author_default),r=await y({pmRoot:t,settings:s,id:a,author:p,message:e.message,force:e.force,dryRun:e.dryRun}),d=r.targetPath?n.relative(t,r.targetPath).split(n.sep).join("/"):void 0;return{item:r.item,changed_fields:r.changedFields,dry_run:e.dryRun===!0,deleted:e.dryRun!==!0,outcome:e.dryRun===!0?"would_delete":"deleted",previous_status:r.item.status,...d?{target_path:d}:{},history_retained:n.relative(t,g(t,r.item.id)).split(n.sep).join("/"),tombstone_retention:"retain_append_only",warnings:r.warnings}}export{R as a};
2
- //# sourceMappingURL=chunk-KH4GVBMC.js.map
1
+ import{A as u,Af as m,C as l,La as f,Oa as c,Ra as g,Tf as y,b as o,zd as h}from"./chunk-HS7OVAUN.js";import n from"node:path";(function(){try{var a=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new a.Error().stack;e&&(a._sentryDebugIds=a._sentryDebugIds||{},a._sentryDebugIds[e]="14aa55e1-cb5f-55ea-bf4c-412217d87449")}catch{}})();async function R(a,e,i){let t=f(process.cwd(),i.path);if(!await o(c(t)))throw new l(`Tracker is not initialized at ${t}. Run pm init first.`,u.NOT_FOUND);let s=await m(t),p=h(e.author,s.author_default),r=await y({pmRoot:t,settings:s,id:a,author:p,message:e.message,force:e.force,dryRun:e.dryRun}),d=r.targetPath?n.relative(t,r.targetPath).split(n.sep).join("/"):void 0;return{item:r.item,changed_fields:r.changedFields,dry_run:e.dryRun===!0,deleted:e.dryRun!==!0,outcome:e.dryRun===!0?"would_delete":"deleted",previous_status:r.item.status,...d?{target_path:d}:{},history_retained:n.relative(t,g(t,r.item.id)).split(n.sep).join("/"),tombstone_retention:"retain_append_only",warnings:r.warnings}}export{R as a};
2
+ //# sourceMappingURL=chunk-Q3VOP62W.js.map
@@ -1,2 +1,2 @@
1
- import{E as i}from"./chunk-V5K52PYW.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="5b7b3eaf-a792-5f44-9981-8c82ce511070")}catch{}})();function M(e,n){let t=e.trim().toLowerCase();return n.alias_to_id.get(t)??t}function B(e){return{isTerminal(n){return e.terminal_statuses.has(M(n,e))},classify(n){let t=M(n,e);return e.terminal_canceled_statuses.has(t)?"canceled":e.terminal_statuses.has(t)?"closed":e.blocked_statuses.has(t)?"blocked":e.draft_statuses.has(t)?"draft":t===e.open_status?"open":e.active_statuses.has(t)?"in_progress":"other"}}}function p(e){return i(e.acceptance_criteria)===void 0}function d(e){return!Number.isFinite(e.estimated_minutes)}function m(e,n){return n.isTerminal(e.status)?i(e.resolution)===void 0:!1}function x(e){return i(e.reviewer)===void 0}function k(e){return i(e.risk)===void 0}function w(e){return typeof e.confidence=="number"?!Number.isFinite(e.confidence):i(e.confidence)===void 0}function v(e){return i(e.sprint)===void 0}function E(e){return i(e.release)===void 0}function R(e){return!!(e.acMissing||e.estimatesMissing||e.resolutionMissing||e.reviewerMissing||e.riskMissing||e.confidenceMissing||e.sprintMissing||e.releaseMissing||e.metadataMissing)}function C(e,n,t){return[[n.acMissing,p(e)],[n.estimatesMissing,d(e)],[n.resolutionMissing,m(e,t)],[n.reviewerMissing,x(e)],[n.riskMissing,k(e)],[n.confidenceMissing,w(e)],[n.sprintMissing,v(e)],[n.releaseMissing,E(e)]].every(([s,o])=>s!==!0||o)}function F(e,n){return p(e)||d(e)||m(e,n)}function U(e,n,t){return R(n)?!(!C(e,n,t)||n.metadataMissing&&!F(e,t)):!0}var g=["acceptance_criteria","estimated_minutes","resolution","tags","parent"];function A(e,n){switch(n){case"acceptance_criteria":return!p(e);case"estimated_minutes":return!d(e);case"resolution":return i(e.resolution)!==void 0;case"tags":return Array.isArray(e.tags)&&e.tags.length>0;default:return i(e.parent)!==void 0}}function D(e,n,t){return n==="resolution"?t.isTerminal(e.status):!0}function I(e,n){return n===0?100:Math.round(e/n*1e3)/10}function b(){let e={};for(let n of g)e[n]={present:0,applicable:0,percent:100};return e}function _(e,n,t){for(let r of g){if(!D(n,r,t))continue;let s=e[r];s.applicable+=1,A(n,r)&&(s.present+=1)}}function h(e){for(let n of g){let t=e[n];t.percent=I(t.present,t.applicable)}}function G(e,n){let t=b(),r={};for(let s of e){_(t,s,n);let o=r[s.type]??(r[s.type]=b());_(o,s,n)}h(t);for(let s of Object.values(r))h(s);return{overall:t,by_type:r}}var L={assignee:"(unassigned)",priority:"(no priority)",tag:"(untagged)",parent:"(unparented)",type:"(untyped)",status:"(no status)"};function T(e){return L[e]}function P(){return{open:0,in_progress:0,blocked:0,draft:0,closed:0,canceled:0,other:0}}function O(e,n,t){switch(n){case"assignee":return[i(e.assignee)??null];case"parent":return[i(e.parent)??null];case"type":return[i(e.type)??null];case"status":return[i(e.status)??null];case"priority":return[typeof e.priority=="number"?`P${e.priority}`:null];default:{let r=t.tagPrefix?.trim(),o=(Array.isArray(e.tags)?e.tags:[]).filter(c=>typeof c=="string"&&c.length>0&&(!r||c.startsWith(r)));return o.length>0?o:[null]}}}function K(e,n,t,r={}){let s=new Map,o=0;for(let a of e){o+=1;let u=t.classify(a.status);for(let l of O(a,n,r)){let y=l??"\0empty",f=s.get(y);f||(f={label:l??T(n),key:l,buckets:P(),total:0},s.set(y,f)),f.buckets[u]+=1,f.total+=1}}let c=[...s.values()].sort((a,u)=>u.total!==a.total?u.total-a.total:a.key===null?1:u.key===null?-1:a.label.localeCompare(u.label));return{dimension:n,rows:c,total_items:o}}export{B as a,R as b,U as c,G as d,K as e};
2
- //# sourceMappingURL=chunk-FQ4EFFDU.js.map
1
+ import{E as i}from"./chunk-HS7OVAUN.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="5b7b3eaf-a792-5f44-9981-8c82ce511070")}catch{}})();function M(e,n){let t=e.trim().toLowerCase();return n.alias_to_id.get(t)??t}function B(e){return{isTerminal(n){return e.terminal_statuses.has(M(n,e))},classify(n){let t=M(n,e);return e.terminal_canceled_statuses.has(t)?"canceled":e.terminal_statuses.has(t)?"closed":e.blocked_statuses.has(t)?"blocked":e.draft_statuses.has(t)?"draft":t===e.open_status?"open":e.active_statuses.has(t)?"in_progress":"other"}}}function p(e){return i(e.acceptance_criteria)===void 0}function d(e){return!Number.isFinite(e.estimated_minutes)}function m(e,n){return n.isTerminal(e.status)?i(e.resolution)===void 0:!1}function x(e){return i(e.reviewer)===void 0}function k(e){return i(e.risk)===void 0}function w(e){return typeof e.confidence=="number"?!Number.isFinite(e.confidence):i(e.confidence)===void 0}function v(e){return i(e.sprint)===void 0}function E(e){return i(e.release)===void 0}function R(e){return!!(e.acMissing||e.estimatesMissing||e.resolutionMissing||e.reviewerMissing||e.riskMissing||e.confidenceMissing||e.sprintMissing||e.releaseMissing||e.metadataMissing)}function C(e,n,t){return[[n.acMissing,p(e)],[n.estimatesMissing,d(e)],[n.resolutionMissing,m(e,t)],[n.reviewerMissing,x(e)],[n.riskMissing,k(e)],[n.confidenceMissing,w(e)],[n.sprintMissing,v(e)],[n.releaseMissing,E(e)]].every(([s,o])=>s!==!0||o)}function F(e,n){return p(e)||d(e)||m(e,n)}function U(e,n,t){return R(n)?!(!C(e,n,t)||n.metadataMissing&&!F(e,t)):!0}var g=["acceptance_criteria","estimated_minutes","resolution","tags","parent"];function A(e,n){switch(n){case"acceptance_criteria":return!p(e);case"estimated_minutes":return!d(e);case"resolution":return i(e.resolution)!==void 0;case"tags":return Array.isArray(e.tags)&&e.tags.length>0;default:return i(e.parent)!==void 0}}function D(e,n,t){return n==="resolution"?t.isTerminal(e.status):!0}function I(e,n){return n===0?100:Math.round(e/n*1e3)/10}function b(){let e={};for(let n of g)e[n]={present:0,applicable:0,percent:100};return e}function _(e,n,t){for(let r of g){if(!D(n,r,t))continue;let s=e[r];s.applicable+=1,A(n,r)&&(s.present+=1)}}function h(e){for(let n of g){let t=e[n];t.percent=I(t.present,t.applicable)}}function G(e,n){let t=b(),r={};for(let s of e){_(t,s,n);let o=r[s.type]??(r[s.type]=b());_(o,s,n)}h(t);for(let s of Object.values(r))h(s);return{overall:t,by_type:r}}var L={assignee:"(unassigned)",priority:"(no priority)",tag:"(untagged)",parent:"(unparented)",type:"(untyped)",status:"(no status)"};function T(e){return L[e]}function P(){return{open:0,in_progress:0,blocked:0,draft:0,closed:0,canceled:0,other:0}}function O(e,n,t){switch(n){case"assignee":return[i(e.assignee)??null];case"parent":return[i(e.parent)??null];case"type":return[i(e.type)??null];case"status":return[i(e.status)??null];case"priority":return[typeof e.priority=="number"?`P${e.priority}`:null];default:{let r=t.tagPrefix?.trim(),o=(Array.isArray(e.tags)?e.tags:[]).filter(c=>typeof c=="string"&&c.length>0&&(!r||c.startsWith(r)));return o.length>0?o:[null]}}}function K(e,n,t,r={}){let s=new Map,o=0;for(let a of e){o+=1;let u=t.classify(a.status);for(let l of O(a,n,r)){let y=l??"\0empty",f=s.get(y);f||(f={label:l??T(n),key:l,buckets:P(),total:0},s.set(y,f)),f.buckets[u]+=1,f.total+=1}}let c=[...s.values()].sort((a,u)=>u.total!==a.total?u.total-a.total:a.key===null?1:u.key===null?-1:a.label.localeCompare(u.label));return{dimension:n,rows:c,total_items:o}}export{B as a,R as b,U as c,G as d,K as e};
2
+ //# sourceMappingURL=chunk-QJ7C3JIW.js.map
@@ -1,8 +1,8 @@
1
- import{A as a,C as l}from"./chunk-V5K52PYW.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new t.Error().stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="d5003dd5-f208-5734-9711-dff935d8c851")}catch{}})();var d="-",h=new Set(["actual_result","body","cmd","command","customer_impact","description","environment","expected_result","impact","location","message","note","outcome","repro_steps","resolution","text","title","unblock_note","value","why_now"]);function S(t){let e=t.trim();if(e==="")return[];let o=(_(e)??e.split(",")).map(i=>i.trim()).filter(Boolean).map(i=>i.toLowerCase());return Array.from(new Set(o)).sort((i,r)=>i.localeCompare(r))}function y(t){if(!Array.isArray(t)||t.length===0)return[];let e=[];for(let n of t)if(typeof n=="string")for(let o of S(n))e.push(o);return Array.from(new Set(e)).sort((n,o)=>n.localeCompare(o))}function w(t){return Array.isArray(t)?t.filter(e=>typeof e=="string").map(e=>e.trim().toLowerCase()).filter(Boolean):[]}function U(t){return typeof t!="string"?[]:t.split(";").map(e=>e.trim()).filter(Boolean)}function z(t,e,n){let o=t.map(c=>c.trim()).filter(Boolean);for(let c of e??[]){let s=c.trim();if(s.includes(";"))throw new l('Acceptance criteria added with --add-ac cannot contain ";" because semicolons delimit stored criteria',a.USAGE,{code:"acceptance_criteria_semicolon_forbidden",required:"Pass one semicolon-free criterion per --add-ac value",why:"A semicolon inside one criterion would be re-read as multiple criteria",nextSteps:["Split the text into repeated --add-ac values, or replace the semicolon with punctuation that is not the storage delimiter"]});s.length>0&&!o.includes(s)&&o.push(s)}let i=[],r=o;for(let c of n??[]){let s=c.trim();if(s.length!==0){if(!r.includes(s)){i.push(s);continue}r=r.filter(u=>u!==s)}}return{criteria:r,unmatchedRemovals:i}}function G(t,e){let n=w(t);if(!e||e.length===0)return Array.from(new Set(n)).sort((i,r)=>i.localeCompare(r));let o=new Set(n);for(let i of y(e))o.add(i);return Array.from(o).sort((i,r)=>i.localeCompare(r))}function K(t,e){let n=Array.from(new Set(w(t))).sort((i,r)=>i.localeCompare(r));if(!e||e.length===0)return n;let o=new Set(y(e));return o.size===0?n:n.filter(i=>!o.has(i))}function _(t){if(!t.startsWith("["))return null;let e;try{e=JSON.parse(t)}catch{return null}return e.map(o=>typeof o=="string"||typeof o=="number"||typeof o=="boolean"?String(o):"").filter(o=>o.length>0)}function m(t){return t.replace(/\r\n/g,`
1
+ import{A as a,C as l}from"./chunk-HS7OVAUN.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new t.Error().stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="d5003dd5-f208-5734-9711-dff935d8c851")}catch{}})();var d="-",h=new Set(["actual_result","body","cmd","command","customer_impact","description","environment","expected_result","impact","location","message","note","outcome","repro_steps","resolution","text","title","unblock_note","value","why_now"]);function S(t){let e=t.trim();if(e==="")return[];let o=(_(e)??e.split(",")).map(i=>i.trim()).filter(Boolean).map(i=>i.toLowerCase());return Array.from(new Set(o)).sort((i,r)=>i.localeCompare(r))}function y(t){if(!Array.isArray(t)||t.length===0)return[];let e=[];for(let n of t)if(typeof n=="string")for(let o of S(n))e.push(o);return Array.from(new Set(e)).sort((n,o)=>n.localeCompare(o))}function w(t){return Array.isArray(t)?t.filter(e=>typeof e=="string").map(e=>e.trim().toLowerCase()).filter(Boolean):[]}function U(t){return typeof t!="string"?[]:t.split(";").map(e=>e.trim()).filter(Boolean)}function z(t,e,n){let o=t.map(c=>c.trim()).filter(Boolean);for(let c of e??[]){let s=c.trim();if(s.includes(";"))throw new l('Acceptance criteria added with --add-ac cannot contain ";" because semicolons delimit stored criteria',a.USAGE,{code:"acceptance_criteria_semicolon_forbidden",required:"Pass one semicolon-free criterion per --add-ac value",why:"A semicolon inside one criterion would be re-read as multiple criteria",nextSteps:["Split the text into repeated --add-ac values, or replace the semicolon with punctuation that is not the storage delimiter"]});s.length>0&&!o.includes(s)&&o.push(s)}let i=[],r=o;for(let c of n??[]){let s=c.trim();if(s.length!==0){if(!r.includes(s)){i.push(s);continue}r=r.filter(u=>u!==s)}}return{criteria:r,unmatchedRemovals:i}}function G(t,e){let n=w(t);if(!e||e.length===0)return Array.from(new Set(n)).sort((i,r)=>i.localeCompare(r));let o=new Set(n);for(let i of y(e))o.add(i);return Array.from(o).sort((i,r)=>i.localeCompare(r))}function K(t,e){let n=Array.from(new Set(w(t))).sort((i,r)=>i.localeCompare(r));if(!e||e.length===0)return n;let o=new Set(y(e));return o.size===0?n:n.filter(i=>!o.has(i))}function _(t){if(!t.startsWith("["))return null;let e;try{e=JSON.parse(t)}catch{return null}return e.map(o=>typeof o=="string"||typeof o=="number"||typeof o=="boolean"?String(o):"").filter(o=>o.length>0)}function m(t){return t.replace(/\r\n/g,`
2
2
  `)}function g(t){let e=m(t).trim();if(!e.startsWith("```"))return t;let n=e.split(`
3
3
  `);return n.length<2||n.at(-1)?.trim()!=="```"?t:n.slice(1,-1).join(`
4
4
  `)}function b(t){let e=[],n="",o=!1,i=!1;for(let r of t){if(i){n+=r,i=!1;continue}if(r==="\\"){n+=r,i=!0;continue}if(r==='"'){o=!o,n+=r;continue}if(r===","&&!o){e.push(n.trim()),n="";continue}n+=r}return n.trim()&&e.push(n.trim()),e}function A(t){let e=t.trim();if(e.startsWith('"')&&e.endsWith('"')){try{let n=JSON.parse(e);if(typeof n=="string")return n}catch{}return e.slice(1,-1).replace(/\\"/g,'"')}return t}function x(t){let e=t.indexOf("="),n=t.indexOf(":"),o=e>0,i=n>0;return o&&i?Math.min(e,n):o?e:i?n:-1}function $(t,e){if((e==="--add"||e==="--add-glob")&&(/[./\\]/.test(t)||/\.[a-z]{1,6}$/i.test(t.trim())))return"For file/doc paths use: path=<file-path>[,scope=project|global]. The scope field is optional and defaults to project (example: path=src/api.ts or path=README.md,scope=project). ";if(e!=="--event")return"";let n=t.toLowerCase(),o=n.includes("recur_")||n.includes("recurrence")?' Recurrence list values must stay in one field and use "|" delimiters (for example recur_by_weekday=mon|wed or recur_by_month_day=1|15).':"",i=n.includes("recur_byweekday")?" Use recur_by_weekday (with underscores) for weekday recurrence filters.":"";return`${o}${i}`}function k(t,e){let n=t.replaceAll(/\s+/g," ").trim(),o=n.length>160?`${n.slice(0,157)}...`:n,i=$(t,e);return`Invalid ${e} value "${o}". Expected key=value entries separated by commas. `+i+`Also accepts markdown-style key/value lines (for example "- path: README.md"). Use ${e} ${d} to read piped stdin input.`}function C(t){let e=g(t).trim();if(e.length===0||!e.includes(`
5
5
  `)&&!e.startsWith("-")&&!e.startsWith("*")&&!e.startsWith("+"))return null;let n={},o,i=m(e).split(`
6
6
  `).map(r=>r.trim()).filter(r=>r.length>0);for(let r of i){let c=r.match(/^(?:[-*+]\s+)?([a-zA-Z0-9_.-]+)\s*(=|:)\s*(.*)$/);if(c){let s=c[1].trim();n[s]=A(c[3].trim()),o=s;continue}if(o&&h.has(o.toLowerCase())){n[o]=`${n[o]}
7
7
  ${r}`;continue}return null}return n}function D(t,e){let n=g(t).trim();if(!n)throw new l(`${e} cannot be empty`,a.USAGE);let o=C(n);if(o)return o;let i={},r,c=b(n);for(let s of c){let u=x(s);if(u>0){let f=s.slice(0,u).trim(),p=A(s.slice(u+1).trim());i[f]=p,r=f;continue}if(r&&h.has(r.toLowerCase())){i[r]=`${i[r]},${s.trim()}`;continue}throw new l(k(t,e),a.USAGE)}return i}var v=/^[A-Za-z]:[\\/]/,T=/^(?:[-*+]\s+)?[A-Za-z_][A-Za-z0-9_.-]*\s*=/;function V(t){let e=t.trim();return v.test(e)?!1:T.test(e)}function N(t,e,n){let o=new Set(n.map(r=>r.toLowerCase())),i=Object.keys(t).filter(r=>!o.has(r.toLowerCase()));if(i.length>0)throw new l(`${e} does not recognize key${i.length>1?"s":""} ${i.map(r=>`"${r}"`).join(", ")}. Allowed keys: ${n.join(", ")}.`,a.USAGE);for(let r of Object.keys(t)){let c=r.toLowerCase();if(c!==r){if(Object.hasOwn(t,c))throw new l(`${e} provides key "${r}" more than once after case normalization.`,a.USAGE);t[c]=t[r],delete t[r]}}}async function O(t){if(process.stdin.isTTY===!0)throw new l(`${t} value "${d}" requires piped stdin input. Pipe content into the command, or end manual stdin with Ctrl+D (Unix/macOS) or Ctrl+Z then Enter (Windows).`,a.USAGE);return process.stdin.setEncoding("utf8"),await new Promise((e,n)=>{let o="";process.stdin.on("data",i=>{o+=i}),process.stdin.on("end",()=>{e(m(o))}),process.stdin.on("error",i=>{n(i)})})}function P(){let t,e,n=async r=>{if(e&&e!==r)throw new l(`Only one option may use "${d}" stdin token per command invocation. Already used by ${e}.`,a.USAGE);return e=r,t||(t=O(r)),await t};return{resolveValue:async(r,c)=>{if(r!==void 0)return r.trim()!==d?r:await n(c)},resolveList:async(r,c)=>{if(!r)return;let s=r.map((p,E)=>p.trim()===d?E:-1).filter(p=>p>=0);if(s.length===0)return r;if(s.length>1)throw new l(`${c} accepts "${d}" stdin token at most once per command invocation`,a.USAGE);let u=await n(c),f=[...r];return f[s[0]]=u,f}}}function W(t,e){let n=Number(t);if(!Number.isFinite(n))throw new l(`Invalid ${e} value "${t}"`,a.USAGE);return n}function j(t,e){let n=t.trim(),o=Number(n);if(n===""||!Number.isInteger(o)||o<0)throw new l(`Invalid ${e} value "${t}". Expected a non-negative integer.`,a.USAGE);return o}export{S as a,U as b,z as c,G as d,K as e,D as f,V as g,N as h,P as i,W as j,j as k};
8
- //# sourceMappingURL=chunk-VH2EAGUG.js.map
8
+ //# sourceMappingURL=chunk-R6LSRGPS.js.map
@@ -1,2 +1,2 @@
1
- import{c as i,e as o,g as d}from"./chunk-D2MBVMVE.js";(function(){try{var n=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new n.Error().stack;e&&(n._sentryDebugIds=n._sentryDebugIds||{},n._sentryDebugIds[e]="26e30c82-7d6d-51b9-909f-b779213846b1")}catch{}})();async function p(n,e,r){return d(n,e,r,{input:await o(e,"learning"),collectionKey:"learnings",op:"learning_add",editOp:"learning_edit",deleteOp:"learning_delete",parseText:a=>i(a),createEntry:a=>a,bypassOwnershipConflict:!!(e.edit===void 0&&e.delete===void 0&&e.ownershipAppendBypass),conflictGuidance:{required:"For an approved append-only handoff on another owner's item, use the package-provided ownership bypass before considering --force.",examples:['pm learnings pm-a1b2 --add "review learning" --author "reviewer" --force'],nextSteps:["Use an installed package's narrow append-only ownership bypass when available.","Use --force only when an ownership override is explicitly approved."]}})}export{p as a};
2
- //# sourceMappingURL=chunk-HQ2WU7OY.js.map
1
+ import{c as i,e as o,g as d}from"./chunk-5PBP2ZP3.js";(function(){try{var n=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new n.Error().stack;e&&(n._sentryDebugIds=n._sentryDebugIds||{},n._sentryDebugIds[e]="26e30c82-7d6d-51b9-909f-b779213846b1")}catch{}})();async function p(n,e,r){return d(n,e,r,{input:await o(e,"learning"),collectionKey:"learnings",op:"learning_add",editOp:"learning_edit",deleteOp:"learning_delete",parseText:a=>i(a),createEntry:a=>a,bypassOwnershipConflict:!!(e.edit===void 0&&e.delete===void 0&&e.ownershipAppendBypass),conflictGuidance:{required:"For an approved append-only handoff on another owner's item, use the package-provided ownership bypass before considering --force.",examples:['pm learnings pm-a1b2 --add "review learning" --author "reviewer" --force'],nextSteps:["Use an installed package's narrow append-only ownership bypass when available.","Use --force only when an ownership override is explicitly approved."]}})}export{p as a};
2
+ //# sourceMappingURL=chunk-R6RKEYYW.js.map