@unbrained/pm-cli 2026.8.5 → 2026.8.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (188) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/CHANGELOG.md +14 -0
  3. package/dist/cli/main.js +12 -37
  4. package/dist/cli/register-setup.d.ts +1 -1
  5. package/dist/cli/register-setup.js +46 -20
  6. package/dist/cli-bundle/bundle-manifest.json +391 -391
  7. package/dist/cli-bundle/chunks/append-XAJ5Z4XS.js +2 -0
  8. package/dist/cli-bundle/chunks/{chunk-2WFXWAYX.js → chunk-343QETLI.js} +2 -2
  9. package/dist/cli-bundle/chunks/{chunk-RKAVWO3O.js → chunk-3KFVGGRE.js} +2 -2
  10. package/dist/cli-bundle/chunks/{chunk-VCKLFEUN.js → chunk-3ZJRFYY2.js} +2 -2
  11. package/dist/cli-bundle/chunks/{chunk-UZBWIUYD.js → chunk-4AVFKHHC.js} +2 -2
  12. package/dist/cli-bundle/chunks/{chunk-BPELKUQD.js → chunk-4OVGQW22.js} +2 -2
  13. package/dist/cli-bundle/chunks/{chunk-54FNT7U2.js → chunk-5PBP2ZP3.js} +2 -2
  14. package/dist/cli-bundle/chunks/{chunk-NY4T3JWN.js → chunk-5ZKQPA44.js} +2 -2
  15. package/dist/cli-bundle/chunks/{chunk-4YUBDMQM.js → chunk-A3XQ7VPU.js} +2 -2
  16. package/dist/cli-bundle/chunks/{chunk-OPVH7SKD.js → chunk-AJE3AHPD.js} +2 -2
  17. package/dist/cli-bundle/chunks/{chunk-V3774P7D.js → chunk-AOBDLU4T.js} +2 -2
  18. package/dist/cli-bundle/chunks/{chunk-VN5VITU3.js → chunk-AYRUGRNS.js} +2 -2
  19. package/dist/cli-bundle/chunks/{chunk-HWRRMBJO.js → chunk-BP6EMEDP.js} +2 -2
  20. package/dist/cli-bundle/chunks/{chunk-ZYHOB3SN.js → chunk-C3YABSJK.js} +2 -2
  21. package/dist/cli-bundle/chunks/{chunk-43HQQI6S.js → chunk-CA3BURYF.js} +2 -2
  22. package/dist/cli-bundle/chunks/{chunk-E2RKBKWB.js → chunk-D7I3TUGV.js} +2 -2
  23. package/dist/cli-bundle/chunks/{chunk-4VN6GS4U.js → chunk-DQGJ2RWT.js} +2 -2
  24. package/dist/cli-bundle/chunks/{chunk-YSO3YFZ4.js → chunk-DWOAOZHZ.js} +2 -2
  25. package/dist/cli-bundle/chunks/{chunk-Q35VBGOQ.js → chunk-E7BFPLUZ.js} +2 -2
  26. package/dist/cli-bundle/chunks/{chunk-LKDGK44W.js → chunk-F4NREH3G.js} +2 -2
  27. package/dist/cli-bundle/chunks/{chunk-OMXVBQ2N.js → chunk-FDBRXV25.js} +2 -2
  28. package/dist/cli-bundle/chunks/{chunk-3FTILRJ2.js → chunk-GU3TSEHD.js} +2 -2
  29. package/dist/cli-bundle/chunks/chunk-HS7OVAUN.js +164 -0
  30. package/dist/cli-bundle/chunks/{chunk-OTHLDSFP.js → chunk-JFZIS6JF.js} +2 -2
  31. package/dist/cli-bundle/chunks/{chunk-7A5OT5J2.js → chunk-JQ4NZ5EB.js} +2 -2
  32. package/dist/cli-bundle/chunks/{chunk-BXQLRKWF.js → chunk-L6LGKJX3.js} +2 -2
  33. package/dist/cli-bundle/chunks/{chunk-CSI3WS5I.js → chunk-M357ZCOR.js} +2 -2
  34. package/dist/cli-bundle/chunks/{chunk-5ZBOIPGP.js → chunk-M4VEE3FK.js} +2 -2
  35. package/dist/cli-bundle/chunks/{chunk-7C4PTJG6.js → chunk-MCS73BKB.js} +2 -2
  36. package/dist/cli-bundle/chunks/{chunk-A62CYISG.js → chunk-MDTH7SAE.js} +2 -2
  37. package/dist/cli-bundle/chunks/{chunk-HNFD72UK.js → chunk-OXY3SJ3N.js} +2 -2
  38. package/dist/cli-bundle/chunks/{chunk-L3AZOELJ.js → chunk-PECV7L5T.js} +2 -2
  39. package/dist/cli-bundle/chunks/{chunk-DXDREUXT.js → chunk-Q3VOP62W.js} +2 -2
  40. package/dist/cli-bundle/chunks/{chunk-UP7DTVMD.js → chunk-QJ7C3JIW.js} +2 -2
  41. package/dist/cli-bundle/chunks/{chunk-42E7YPLG.js → chunk-R6LSRGPS.js} +2 -2
  42. package/dist/cli-bundle/chunks/{chunk-MHK6LIWE.js → chunk-R6RKEYYW.js} +2 -2
  43. package/dist/cli-bundle/chunks/{chunk-UN66FZRO.js → chunk-RAFUN7IX.js} +3 -3
  44. package/dist/cli-bundle/chunks/chunk-RUAU5OSH.js +2 -0
  45. package/dist/cli-bundle/chunks/chunk-SD3YXU2U.js +56 -0
  46. package/dist/cli-bundle/chunks/{chunk-SSF4PIUR.js → chunk-SV3YQ4RY.js} +2 -2
  47. package/dist/cli-bundle/chunks/{chunk-V3EUXXOF.js → chunk-SVV3DQES.js} +2 -2
  48. package/dist/cli-bundle/chunks/{chunk-45G53IU4.js → chunk-SXECIECW.js} +2 -2
  49. package/dist/cli-bundle/chunks/chunk-T45OHXDW.js +8 -0
  50. package/dist/cli-bundle/chunks/{chunk-PMXJEU3F.js → chunk-TPKDJ5WL.js} +2 -2
  51. package/dist/cli-bundle/chunks/{chunk-M72BKL5Q.js → chunk-UVVXHGYS.js} +2 -2
  52. package/dist/cli-bundle/chunks/{chunk-WRL4KNDL.js → chunk-V663653R.js} +19 -19
  53. package/dist/cli-bundle/chunks/{chunk-R546TPDE.js → chunk-WSI5KZQJ.js} +2 -2
  54. package/dist/cli-bundle/chunks/{chunk-6MSQJOTG.js → chunk-XPOQQJTX.js} +2 -2
  55. package/dist/cli-bundle/chunks/{chunk-XCEZYMNI.js → chunk-YCCDXBNU.js} +2 -2
  56. package/dist/cli-bundle/chunks/{chunk-LN2WFEU4.js → chunk-ZFBWCKYF.js} +2 -2
  57. package/dist/cli-bundle/chunks/close-DI66JMSB.js +2 -0
  58. package/dist/cli-bundle/chunks/close-many-VFKT6U3O.js +2 -0
  59. package/dist/cli-bundle/chunks/comments-E73HIEZJ.js +2 -0
  60. package/dist/cli-bundle/chunks/copy-WBYVLCPC.js +2 -0
  61. package/dist/cli-bundle/chunks/{create-XLKTXTUF.js → create-TG67IVFI.js} +2 -2
  62. package/dist/cli-bundle/chunks/delete-6XKUVVQN.js +2 -0
  63. package/dist/cli-bundle/chunks/{deps-ITTY3GIC.js → deps-AJUGP2OH.js} +2 -2
  64. package/dist/cli-bundle/chunks/{docs-W4OSRTYR.js → docs-QOCLDRKJ.js} +2 -2
  65. package/dist/cli-bundle/chunks/{files-EOK4AZI4.js → files-3ST5TY64.js} +2 -2
  66. package/dist/cli-bundle/chunks/focus-R2AWS63Y.js +2 -0
  67. package/dist/cli-bundle/chunks/{history-compact-7UGTMLL3.js → history-compact-7BJFML4S.js} +2 -2
  68. package/dist/cli-bundle/chunks/{history-redact-4DZRMD6Z.js → history-redact-WJN3HYXR.js} +2 -2
  69. package/dist/cli-bundle/chunks/{history-repair-UPOSZW5R.js → history-repair-XDNZUB7F.js} +2 -2
  70. package/dist/cli-bundle/chunks/{learnings-GMRNCBS3.js → learnings-SZMUPVNA.js} +2 -2
  71. package/dist/cli-bundle/chunks/{profile-2MUUMHRE.js → profile-KL53JIAC.js} +2 -2
  72. package/dist/cli-bundle/chunks/{register-list-query-LR3SQ5ZF.js → register-list-query-QH7ONPKU.js} +2 -2
  73. package/dist/cli-bundle/chunks/{register-mutation-SUOHFVWM.js → register-mutation-OCRQNZK4.js} +3 -3
  74. package/dist/cli-bundle/chunks/{register-operations-ARRRKOVN.js → register-operations-HIBJXRGB.js} +2 -2
  75. package/dist/cli-bundle/chunks/register-setup-QWBQ6HBS.js +2 -0
  76. package/dist/cli-bundle/chunks/restore-FXA5QPM7.js +2 -0
  77. package/dist/cli-bundle/chunks/{schema-FJ4EA3XF.js → schema-QJ27OTRV.js} +2 -2
  78. package/dist/cli-bundle/chunks/update-7GBO4SXG.js +2 -0
  79. package/dist/cli-bundle/chunks/update-many-VF6ZKQUO.js +2 -0
  80. package/dist/cli-bundle/focused-chunks/{chunk-B7LJWAZE.js → chunk-27DK4A5O.js} +2 -2
  81. package/dist/cli-bundle/focused-chunks/{chunk-SV3O7TSH.js → chunk-4JC3AOGS.js} +2 -2
  82. package/dist/cli-bundle/focused-chunks/{chunk-G6ETT4QK.js → chunk-6KDHXURF.js} +2 -2
  83. package/dist/cli-bundle/focused-chunks/{chunk-PG2RIZBX.js → chunk-74CWP3A4.js} +2 -2
  84. package/dist/cli-bundle/focused-chunks/{chunk-Y4LDYLLT.js → chunk-7AZDTGPA.js} +2 -2
  85. package/dist/cli-bundle/focused-chunks/chunk-7YTZ7A4E.js +2 -0
  86. package/dist/cli-bundle/focused-chunks/{chunk-A7BJ5SS6.js → chunk-CL3NB7VW.js} +2 -2
  87. package/dist/cli-bundle/focused-chunks/chunk-EAXXF2HW.js +4 -0
  88. package/dist/cli-bundle/focused-chunks/{chunk-UIL2M2NA.js → chunk-EYO4F74Z.js} +2 -2
  89. package/dist/cli-bundle/focused-chunks/{chunk-7J5TUBUJ.js → chunk-GEYU23YS.js} +2 -2
  90. package/dist/cli-bundle/focused-chunks/{chunk-WEM2E2PE.js → chunk-GIERI4YU.js} +2 -2
  91. package/dist/cli-bundle/focused-chunks/{chunk-WVIVUWVL.js → chunk-GSW2Y7VZ.js} +2 -2
  92. package/dist/cli-bundle/focused-chunks/{chunk-VLYOEYML.js → chunk-LKQXXO62.js} +2 -2
  93. package/dist/cli-bundle/focused-chunks/{chunk-MJ7HWSFK.js → chunk-MBBMTDD3.js} +2 -2
  94. package/dist/cli-bundle/focused-chunks/{chunk-PIMMYG7Q.js → chunk-ME4XVOBJ.js} +2 -2
  95. package/dist/cli-bundle/focused-chunks/{chunk-IPWSFADF.js → chunk-N7QN3NE6.js} +2 -2
  96. package/dist/cli-bundle/focused-chunks/{chunk-W7BJEWHX.js → chunk-QL5H3AQH.js} +2 -2
  97. package/dist/cli-bundle/focused-chunks/chunk-TQMFQYXR.js +29 -0
  98. package/dist/cli-bundle/focused-chunks/{chunk-RUR5I3TK.js → chunk-XNVXIQ4B.js} +2 -2
  99. package/dist/cli-bundle/focused-chunks/{chunk-FGKY4MBE.js → chunk-YHDCGUIW.js} +2 -2
  100. package/dist/cli-bundle/focused-chunks/{chunk-QVHKCI4T.js → chunk-YLPZHWX7.js} +2 -2
  101. package/dist/cli-bundle/main.js +13 -13
  102. package/dist/cli-bundle/sdk-authoring.js +1 -1
  103. package/dist/cli-bundle/sdk-contracts.js +1 -1
  104. package/dist/cli-bundle/sdk-core.js +25 -25
  105. package/dist/cli-bundle/sdk-governance.js +1 -1
  106. package/dist/cli-bundle/sdk-graph.js +1 -1
  107. package/dist/cli-bundle/sdk-merge.js +1 -1
  108. package/dist/cli-bundle/sdk-query.js +1 -1
  109. package/dist/cli-bundle/sdk-runtime.js +1 -1
  110. package/dist/cli-bundle/sdk-testing.js +1 -1
  111. package/dist/cli-bundle/sdk.js +1 -1
  112. package/dist/core/extensions/activation-summary.d.ts +4 -0
  113. package/dist/core/extensions/activation-summary.js +5 -2
  114. package/dist/core/extensions/contribution-inventory.d.ts +1 -0
  115. package/dist/core/extensions/contribution-inventory.js +35 -2
  116. package/dist/core/extensions/extension-hook-runtime.js +5 -3
  117. package/dist/core/extensions/extension-types.d.ts +18 -1
  118. package/dist/core/extensions/extension-types.js +2 -2
  119. package/dist/core/extensions/loader.js +5 -13
  120. package/dist/core/extensions/preflight-ownership.d.ts +5 -0
  121. package/dist/core/extensions/preflight-ownership.js +42 -0
  122. package/dist/sdk/cli-contracts/flag-contracts.d.ts +2 -0
  123. package/dist/sdk/cli-contracts/flag-contracts.js +8 -2
  124. package/dist/sdk/cli-contracts/runtime-contracts.js +4 -3
  125. package/dist/sdk/cli-contracts.d.ts +1 -1
  126. package/dist/sdk/cli-contracts.js +3 -3
  127. package/dist/sdk/compose.d.ts +2 -2
  128. package/dist/sdk/compose.js +7 -2
  129. package/dist/sdk/define.d.ts +3 -1
  130. package/dist/sdk/define.js +3 -8
  131. package/dist/sdk/extension/install-sources.d.ts +43 -5
  132. package/dist/sdk/extension/install-sources.js +36 -2
  133. package/dist/sdk/extension/migrations.d.ts +114 -0
  134. package/dist/sdk/extension/migrations.js +175 -0
  135. package/dist/sdk/extension/scaffold.js +14 -9
  136. package/dist/sdk/extension/source-resolution.d.ts +50 -0
  137. package/dist/sdk/extension/source-resolution.js +66 -0
  138. package/dist/sdk/extension.d.ts +5 -1
  139. package/dist/sdk/extension.js +24 -26
  140. package/dist/sdk/governance/health.js +11 -2
  141. package/dist/sdk/index.d.ts +6 -2
  142. package/dist/sdk/index.js +8 -4
  143. package/dist/sdk/package-migrations.d.ts +10 -0
  144. package/dist/sdk/package-migrations.js +21 -0
  145. package/dist/sdk/runtime.d.ts +2 -0
  146. package/dist/sdk/runtime.js +6 -2
  147. package/docs/COMMANDS.md +9 -0
  148. package/docs/EXTENSIONS.md +2 -2
  149. package/docs/EXTENSION_LIFECYCLE.md +46 -0
  150. package/docs/README.md +1 -0
  151. package/docs/RELEASING.md +33 -20
  152. package/docs/SDK.md +31 -3
  153. package/marketplace.json +2 -2
  154. package/package.json +3 -3
  155. package/packages/pm-beads/package.json +1 -1
  156. package/packages/pm-calendar/package.json +1 -1
  157. package/packages/pm-command-kit/package.json +1 -1
  158. package/packages/pm-digital-twin/package.json +1 -1
  159. package/packages/pm-governance-audit/package.json +1 -1
  160. package/packages/pm-guide-shell/package.json +1 -1
  161. package/packages/pm-kanban/package.json +1 -1
  162. package/packages/pm-lifecycle-hooks/package.json +1 -1
  163. package/packages/pm-linked-test-adapters/package.json +1 -1
  164. package/packages/pm-search-advanced/package.json +1 -1
  165. package/packages/pm-templates/package.json +1 -1
  166. package/packages/pm-todos/package.json +1 -1
  167. package/packages/pm-vcs/package.json +1 -1
  168. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  169. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  170. package/sdk/public-surface.json +218 -20
  171. package/dist/cli-bundle/chunks/append-VXXGOXSG.js +0 -2
  172. package/dist/cli-bundle/chunks/chunk-EGJ4JTUG.js +0 -55
  173. package/dist/cli-bundle/chunks/chunk-FPBQHMFT.js +0 -8
  174. package/dist/cli-bundle/chunks/chunk-GE4KCSZP.js +0 -164
  175. package/dist/cli-bundle/chunks/chunk-YEWNL576.js +0 -2
  176. package/dist/cli-bundle/chunks/close-VZ3OQPN5.js +0 -2
  177. package/dist/cli-bundle/chunks/close-many-SB4TI27P.js +0 -2
  178. package/dist/cli-bundle/chunks/comments-BIF3Q4KY.js +0 -2
  179. package/dist/cli-bundle/chunks/copy-6AI5Z57X.js +0 -2
  180. package/dist/cli-bundle/chunks/delete-ZY2VHQTP.js +0 -2
  181. package/dist/cli-bundle/chunks/focus-DLBNWL7L.js +0 -2
  182. package/dist/cli-bundle/chunks/register-setup-O6AYP6NP.js +0 -2
  183. package/dist/cli-bundle/chunks/restore-ZVCVHTB5.js +0 -2
  184. package/dist/cli-bundle/chunks/update-YHV52CSS.js +0 -2
  185. package/dist/cli-bundle/chunks/update-many-M6YHVNXM.js +0 -2
  186. package/dist/cli-bundle/focused-chunks/chunk-BIMTMOS7.js +0 -4
  187. package/dist/cli-bundle/focused-chunks/chunk-GJ2TG2CW.js +0 -28
  188. package/dist/cli-bundle/focused-chunks/chunk-N5XU5UVK.js +0 -2
@@ -0,0 +1,2 @@
1
+ import{a as o}from"./chunk-SXECIECW.js";import"./chunk-MDTH7SAE.js";import"./chunk-4OVGQW22.js";import"./chunk-RSIC5OPE.js";import"./chunk-M4VEE3FK.js";import"./chunk-A6KGKEWT.js";import"./chunk-R6LSRGPS.js";import"./chunk-UVVXHGYS.js";import"./chunk-HS7OVAUN.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},d=new e.Error().stack;d&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[d]="d79c73c8-07a5-5a39-aca5-4058264684d6")}catch{}})();export{o as runAppend};
2
+ //# sourceMappingURL=append-XAJ5Z4XS.js.map
@@ -1,2 +1,2 @@
1
- import{a as V}from"./chunk-UP7DTVMD.js";import{c as N,f as W,g as q,h as z}from"./chunk-ZYHOB3SN.js";import{A as l,Ad as U,Af as x,C as d,Da as v,La as H,Mf as M,Nc as L,Oa as T,Of as G,R,Ze as A,af as I,b as k,bf as g,c as O,cf as C,ef as P,hf as S,jf as j,lc as B,uc as $,wc as D,zd as F}from"./chunk-GE4KCSZP.js";import X from"node:fs/promises";import Y 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]="7e0f84f6-9528-55c5-8976-6f85cd920486")}catch{}})();function oe(e,t,n){let r=new Set,o=[];for(let s of e){let i=s.trim();if(i.length===0||r.has(i))continue;r.add(i);let c=t.get(i);if(c===void 0){o.push({id:i,entries:0,selected:!1,skip_reason:"no_stream"});continue}if(c.entries<=n){o.push({id:i,entries:c.entries,selected:!1,skip_reason:"already_compact"});continue}o.push({id:i,entries:c.entries,selected:!0,skip_reason:null})}return o}function re(e,t){let n=[...e].sort((o,s)=>s.entries-o.entries||o.id.localeCompare(s.id)),r=[];for(let o of n){if(t.scope==="closed"&&o.bucket!=="closed"){r.push({id:o.id,entries:o.entries,selected:!1,skip_reason:"scope_mismatch"});continue}if(o.entries<=t.minEntries){r.push({id:o.id,entries:o.entries,selected:!1,skip_reason:"already_compact"});continue}if(t.allOver!==void 0&&o.entries<=t.allOver){r.push({id:o.id,entries:o.entries,selected:!1,skip_reason:"below_threshold"});continue}r.push({id:o.id,entries:o.entries,selected:!0,skip_reason:null})}return r}function K(e,t){if(t.ids!==void 0&&t.ids.length>0){let n=new Map(e.map(r=>[r.id,r]));return oe(t.ids,n,t.minEntries)}return re(e,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]="c6609492-75a9-5111-b9b3-1b81908f3084")}catch{}})();function ne(e,t){if(e===void 0)return{kind:"default",raw:null,compactCount:t.length,retainedCount:0};let n=e.trim();if(n.length===0)throw new d("history-compact --before requires a non-empty value.",l.USAGE);if(/^\d+$/.test(n)){let s=Number.parseInt(n,10);if(!Number.isSafeInteger(s)||s<1||s>t.length+1)throw new d(`history-compact --before version must be between 1 and ${t.length+1}.`,l.USAGE);let i=Math.max(0,Math.min(t.length,s-1));return{kind:"version",raw:n,compactCount:i,retainedCount:t.length-i}}let r=Date.parse(n);if(!Number.isFinite(r))throw new d(`Invalid history-compact --before value "${e}". Use a version number or ISO timestamp.`,l.USAGE);let o=0;for(let[s,i]of t.entries()){let c=Date.parse(i.ts);if(!Number.isFinite(c))throw new d(`History for this item contains invalid timestamp at entry ${s+1}.`,l.GENERIC_FAILURE);if(c>=r)break;o+=1}return{kind:"timestamp",raw:n,compactCount:o,retainedCount:t.length-o}}function ie(e,t){let n=I(),r=I();for(let o=0;o<e.length;o+=1){let s=e[o];if(g(n)!==s.before_hash)throw new d(`history-compact detected before-hash drift at entry ${o+1}; run pm history-repair first.`,l.CONFLICT);if(n=N(n,s.patch,o+1,s.op),g(n)!==s.after_hash)throw new d(`history-compact detected after-hash drift at entry ${o+1}; run pm history-repair first.`,l.CONFLICT);o+1===t&&(r=structuredClone(n))}return{checkpoint:r,finalReplay:n}}function se(e,t,n){let r=structuredClone(t),o=[];for(let[s,i]of e.entries()){let c=g(r);r=N(r,i.patch,n+s+1,i.op),o.push({...i,before_hash:c,after_hash:g(r)})}return{entries:o,finalReplay:r}}async function ce(e,t,n){let r=e.located?await M(e.located,{schema:t.schema}):null;return r?{loadedItem:r,currentItemRawBeforeLock:r.raw,matchedChainBefore:g(P(r.document))===n[n.length-1]?.after_hash}:{loadedItem:null,currentItemRawBeforeLock:null,matchedChainBefore:null}}function ae(e,t){return typeof e.message=="string"&&e.message.trim().length>0?e.message:t.raw===null?`history-compact compacted full stream (${t.compactCount} entr${t.compactCount===1?"y":"ies"}).`:`history-compact compacted ${t.compactCount} entr${t.compactCount===1?"y":"ies"} before ${t.raw}.`}function le(e){return e.raw===null?`history-compact baseline snapshot after compacting ${e.compactCount} entr${e.compactCount===1?"y":"ies"}.`:`history-compact baseline snapshot before ${e.raw}.`}function de(e){if(!e.changed)return{rewrittenEntries:e.historyEntries,baselineEntryAdded:!1,auditEntryAdded:!1};let{checkpoint:t,finalReplay:n}=ie(e.historyEntries,e.boundary.compactCount),r=e.historyEntries.slice(e.boundary.compactCount),o=se(r,t,e.boundary.compactCount),i=[A({nowIso:R(),author:e.author,op:"history_compact_baseline",before:C(I()),after:C(t),message:le(e.boundary)}),...o.entries];return e.dryRun||i.push(A({nowIso:R(),author:e.author,op:"history_compact",before:C(n),after:C(n),message:ae(e.options,e.boundary)})),{rewrittenEntries:i,baselineEntryAdded:!0,auditEntryAdded:!e.dryRun}}async function ue(e){return q({pmRoot:e.pmRoot,subject:e.subject,settings:e.settings,typeRegistry:e.typeRegistry,historyRawBeforeLock:e.historyRawBeforeLock,currentItemRawBeforeLock:e.currentItemRawBeforeLock,operation:"history-compact",author:e.author,force:e.force,itemDocument:e.loadedItem?.document??null,applyRewrite:async({historyRawUnderLock:t})=>W({historyPath:e.historyPath,nextHistoryRaw:j(e.rewrittenEntries),historyRawUnderLock:t}),applyPostRewrite:async()=>$({path:e.historyPath,scope:"project",op:"history_compact:history"})})}async function fe(e,t,n){let r=H(process.cwd(),n.path);if(!await k(T(r)))throw new d(`Tracker is not initialized at ${r}. Run pm init first.`,l.NOT_FOUND);let o=await x(r),s=v(o,B()),i=await z(r,e,o,s.type_to_folder),c=i.historyPath,y=await O(c);if(y===null)throw new d(`No history stream exists for ${i.id}.`,l.NOT_FOUND);let a=await U(c,i.id);if(a.length===0)throw new d(`No history entries exist for ${i.id}; nothing to compact.`,l.USAGE);let h=S(a);if(!h.ok)throw new d(`history-compact requires a valid history chain (${h.errors.join(", ")}). Run pm history-repair ${i.id} first.`,l.CONFLICT);let u=ne(t.before,a),f=u.compactCount>0,w=!!t.dryRun,b=F(t.author,o.author_default),m=[];f||m.push("history_compact_noop_before_boundary");let _=await ce(i,o,a);_.matchedChainBefore===!1&&m.push("history_compact_item_chain_mismatch");let{rewrittenEntries:p,baselineEntryAdded:J,auditEntryAdded:Q}=de({historyEntries:a,boundary:u,changed:f,dryRun:w,author:b,options:t}),E=S(p);if(!E.ok)throw new d(`history-compact produced an invalid rewritten chain (${E.errors.join(", ")}).`,l.GENERIC_FAILURE);f&&!w&&m.push(...await ue({pmRoot:r,subject:i,settings:o,typeRegistry:s,historyRawBeforeLock:y,currentItemRawBeforeLock:_.currentItemRawBeforeLock,author:b,force:t.force,loadedItem:_.loadedItem,historyPath:c,rewrittenEntries:p}));let Z=u.retainedCount>0?u.compactCount+1:null;return{id:i.id,dry_run:w,changed:f,compact_boundary:{kind:u.kind,before:u.raw,entries_compacted:u.compactCount,entries_retained:u.retainedCount,first_retained_entry:Z},history:{path:c,entries_scanned:a.length,entries_after:p.length,baseline_entry_added:J,audit_entry_added:Q,verify_ok:E.ok,verify_errors:E.errors},item:{exists:i.located!==null,path:i.located?.itemPath??null,matched_chain_before:_.matchedChainBefore},warnings:[...new Set(m)].sort((ee,te)=>ee.localeCompare(te)),generated_at:R()}}var he=3;function Pe(e,t){let n=t.ids!==void 0&&t.ids.length>0,r=t.allOver!==void 0||t.scope!==void 0;if((e!==void 0?1:0)+(n?1:0)+(r?1:0)===0)throw new d("history-compact: provide an item <id>, or a bulk selector (--ids, --all-over <N>, --closed, or --all-streams).",l.USAGE);if(e!==void 0&&(n||r))throw new d("history-compact: <id> and bulk selectors (--ids/--all-over/--closed/--all-streams) are mutually exclusive; pass one item id, or use bulk mode without a positional id.",l.USAGE);if(n&&r)throw new d("history-compact: --ids is mutually exclusive with --all-over/--closed/--all-streams; pass an explicit id list or a scan selector, not both.",l.USAGE)}function me(e){let t=0;for(let n of e.split(/\r?\n/))n.trim().length>0&&(t+=1);return t}async function pe(e){let t=L(e.settings.schema),n=V(t),r=await G(e.pmRoot,e.settings.item_format,e.typeToFolder,void 0,e.settings.schema),o=new Map(r.map(a=>[a.id,n.classify(a.status)])),s=Y.join(e.pmRoot,"history"),i=[],c=[];if(!await k(s))return{candidates:i,preselectionErrors:c};let y=(await X.readdir(s)).filter(a=>a.endsWith(".jsonl")).sort((a,h)=>a.localeCompare(h));for(let a of y){let h=Y.join(s,a),u=a.slice(0,-6);try{let f=await X.readFile(h,"utf8");await D({path:h,scope:"project"}),i.push({id:u,entries:me(f),bucket:o.get(u)??null})}catch(f){c.push({id:u,outcome:"errored",entries_before:0,entries_after:null,skip_reason:null,changed:!1,error:f instanceof Error?f.message:String(f)})}}return{candidates:i,preselectionErrors:c}}async function ye(e){if(!e.row.selected)return{selected:!1,compacted:!1,errored:!1,result:{id:e.row.id,outcome:"skipped",entries_before:e.row.entries,entries_after:null,skip_reason:e.row.skip_reason,changed:!1,error:null}};try{let t=await fe(e.row.id,{dryRun:e.dryRun,author:e.options.author,message:e.options.message,force:e.options.force},e.global);return{selected:!0,compacted:!0,errored:!1,result:{id:e.row.id,outcome:"compacted",entries_before:e.row.entries,entries_after:t.history.entries_after,skip_reason:null,changed:t.changed,error:null}}}catch(t){return{selected:!0,compacted:!1,errored:!0,result:{id:e.row.id,outcome:"errored",entries_before:e.row.entries,entries_after:null,skip_reason:null,changed:!1,error:t instanceof Error?t.message:String(t)}}}}async function je(e,t){let n=H(process.cwd(),t.path);if(!await k(T(n)))throw new d(`Tracker is not initialized at ${n}. Run pm init first.`,l.NOT_FOUND);let r=await x(n),o=v(r,B()),{candidates:s,preselectionErrors:i}=await pe({pmRoot:n,settings:r,typeToFolder:o.type_to_folder}),c=e.ids!==void 0&&e.ids.length>0?"ids":"scan",y=e.minEntries??he,a=r.history.compact_policy,h=c==="scan"&&e.allOver===void 0&&a.enabled,u=e.allOver??(h?a.max_entries:void 0),f=K(s,{ids:e.ids,scope:e.scope,minEntries:y,allOver:u}),w=!!e.dryRun,b=[...i],m={streams_considered:s.length+i.length,selected:0,items_compacted:0,items_skipped:0,items_errored:i.length};for(let _ of f){let p=await ye({row:_,options:e,dryRun:w,global:t});if(b.push(p.result),!p.selected){m.items_skipped+=1;continue}m.selected+=1,p.compacted&&(m.items_compacted+=1),p.errored&&(m.items_errored+=1)}return{bulk:!0,dry_run:w,mode:c,scope:e.scope??null,criteria:{min_entries:y,all_over:u??null,policy_threshold_applied:h},totals:m,results:b,generated_at:R()}}export{fe as a,he as b,Pe as c,je as d};
2
- //# sourceMappingURL=chunk-2WFXWAYX.js.map
1
+ import{a as V}from"./chunk-QJ7C3JIW.js";import{c as N,f as W,g as q,h as z}from"./chunk-C3YABSJK.js";import{A as l,Ad as U,Af as x,C as d,Da as v,La as H,Mf as M,Nc as L,Oa as T,Of as G,R,Ze as A,af as I,b as k,bf as g,c as O,cf as C,ef as P,hf as S,jf as j,lc as B,uc as $,wc as D,zd as F}from"./chunk-HS7OVAUN.js";import X from"node:fs/promises";import Y 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]="7e0f84f6-9528-55c5-8976-6f85cd920486")}catch{}})();function oe(e,t,n){let r=new Set,o=[];for(let s of e){let i=s.trim();if(i.length===0||r.has(i))continue;r.add(i);let c=t.get(i);if(c===void 0){o.push({id:i,entries:0,selected:!1,skip_reason:"no_stream"});continue}if(c.entries<=n){o.push({id:i,entries:c.entries,selected:!1,skip_reason:"already_compact"});continue}o.push({id:i,entries:c.entries,selected:!0,skip_reason:null})}return o}function re(e,t){let n=[...e].sort((o,s)=>s.entries-o.entries||o.id.localeCompare(s.id)),r=[];for(let o of n){if(t.scope==="closed"&&o.bucket!=="closed"){r.push({id:o.id,entries:o.entries,selected:!1,skip_reason:"scope_mismatch"});continue}if(o.entries<=t.minEntries){r.push({id:o.id,entries:o.entries,selected:!1,skip_reason:"already_compact"});continue}if(t.allOver!==void 0&&o.entries<=t.allOver){r.push({id:o.id,entries:o.entries,selected:!1,skip_reason:"below_threshold"});continue}r.push({id:o.id,entries:o.entries,selected:!0,skip_reason:null})}return r}function K(e,t){if(t.ids!==void 0&&t.ids.length>0){let n=new Map(e.map(r=>[r.id,r]));return oe(t.ids,n,t.minEntries)}return re(e,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]="c6609492-75a9-5111-b9b3-1b81908f3084")}catch{}})();function ne(e,t){if(e===void 0)return{kind:"default",raw:null,compactCount:t.length,retainedCount:0};let n=e.trim();if(n.length===0)throw new d("history-compact --before requires a non-empty value.",l.USAGE);if(/^\d+$/.test(n)){let s=Number.parseInt(n,10);if(!Number.isSafeInteger(s)||s<1||s>t.length+1)throw new d(`history-compact --before version must be between 1 and ${t.length+1}.`,l.USAGE);let i=Math.max(0,Math.min(t.length,s-1));return{kind:"version",raw:n,compactCount:i,retainedCount:t.length-i}}let r=Date.parse(n);if(!Number.isFinite(r))throw new d(`Invalid history-compact --before value "${e}". Use a version number or ISO timestamp.`,l.USAGE);let o=0;for(let[s,i]of t.entries()){let c=Date.parse(i.ts);if(!Number.isFinite(c))throw new d(`History for this item contains invalid timestamp at entry ${s+1}.`,l.GENERIC_FAILURE);if(c>=r)break;o+=1}return{kind:"timestamp",raw:n,compactCount:o,retainedCount:t.length-o}}function ie(e,t){let n=I(),r=I();for(let o=0;o<e.length;o+=1){let s=e[o];if(g(n)!==s.before_hash)throw new d(`history-compact detected before-hash drift at entry ${o+1}; run pm history-repair first.`,l.CONFLICT);if(n=N(n,s.patch,o+1,s.op),g(n)!==s.after_hash)throw new d(`history-compact detected after-hash drift at entry ${o+1}; run pm history-repair first.`,l.CONFLICT);o+1===t&&(r=structuredClone(n))}return{checkpoint:r,finalReplay:n}}function se(e,t,n){let r=structuredClone(t),o=[];for(let[s,i]of e.entries()){let c=g(r);r=N(r,i.patch,n+s+1,i.op),o.push({...i,before_hash:c,after_hash:g(r)})}return{entries:o,finalReplay:r}}async function ce(e,t,n){let r=e.located?await M(e.located,{schema:t.schema}):null;return r?{loadedItem:r,currentItemRawBeforeLock:r.raw,matchedChainBefore:g(P(r.document))===n[n.length-1]?.after_hash}:{loadedItem:null,currentItemRawBeforeLock:null,matchedChainBefore:null}}function ae(e,t){return typeof e.message=="string"&&e.message.trim().length>0?e.message:t.raw===null?`history-compact compacted full stream (${t.compactCount} entr${t.compactCount===1?"y":"ies"}).`:`history-compact compacted ${t.compactCount} entr${t.compactCount===1?"y":"ies"} before ${t.raw}.`}function le(e){return e.raw===null?`history-compact baseline snapshot after compacting ${e.compactCount} entr${e.compactCount===1?"y":"ies"}.`:`history-compact baseline snapshot before ${e.raw}.`}function de(e){if(!e.changed)return{rewrittenEntries:e.historyEntries,baselineEntryAdded:!1,auditEntryAdded:!1};let{checkpoint:t,finalReplay:n}=ie(e.historyEntries,e.boundary.compactCount),r=e.historyEntries.slice(e.boundary.compactCount),o=se(r,t,e.boundary.compactCount),i=[A({nowIso:R(),author:e.author,op:"history_compact_baseline",before:C(I()),after:C(t),message:le(e.boundary)}),...o.entries];return e.dryRun||i.push(A({nowIso:R(),author:e.author,op:"history_compact",before:C(n),after:C(n),message:ae(e.options,e.boundary)})),{rewrittenEntries:i,baselineEntryAdded:!0,auditEntryAdded:!e.dryRun}}async function ue(e){return q({pmRoot:e.pmRoot,subject:e.subject,settings:e.settings,typeRegistry:e.typeRegistry,historyRawBeforeLock:e.historyRawBeforeLock,currentItemRawBeforeLock:e.currentItemRawBeforeLock,operation:"history-compact",author:e.author,force:e.force,itemDocument:e.loadedItem?.document??null,applyRewrite:async({historyRawUnderLock:t})=>W({historyPath:e.historyPath,nextHistoryRaw:j(e.rewrittenEntries),historyRawUnderLock:t}),applyPostRewrite:async()=>$({path:e.historyPath,scope:"project",op:"history_compact:history"})})}async function fe(e,t,n){let r=H(process.cwd(),n.path);if(!await k(T(r)))throw new d(`Tracker is not initialized at ${r}. Run pm init first.`,l.NOT_FOUND);let o=await x(r),s=v(o,B()),i=await z(r,e,o,s.type_to_folder),c=i.historyPath,y=await O(c);if(y===null)throw new d(`No history stream exists for ${i.id}.`,l.NOT_FOUND);let a=await U(c,i.id);if(a.length===0)throw new d(`No history entries exist for ${i.id}; nothing to compact.`,l.USAGE);let h=S(a);if(!h.ok)throw new d(`history-compact requires a valid history chain (${h.errors.join(", ")}). Run pm history-repair ${i.id} first.`,l.CONFLICT);let u=ne(t.before,a),f=u.compactCount>0,w=!!t.dryRun,b=F(t.author,o.author_default),m=[];f||m.push("history_compact_noop_before_boundary");let _=await ce(i,o,a);_.matchedChainBefore===!1&&m.push("history_compact_item_chain_mismatch");let{rewrittenEntries:p,baselineEntryAdded:J,auditEntryAdded:Q}=de({historyEntries:a,boundary:u,changed:f,dryRun:w,author:b,options:t}),E=S(p);if(!E.ok)throw new d(`history-compact produced an invalid rewritten chain (${E.errors.join(", ")}).`,l.GENERIC_FAILURE);f&&!w&&m.push(...await ue({pmRoot:r,subject:i,settings:o,typeRegistry:s,historyRawBeforeLock:y,currentItemRawBeforeLock:_.currentItemRawBeforeLock,author:b,force:t.force,loadedItem:_.loadedItem,historyPath:c,rewrittenEntries:p}));let Z=u.retainedCount>0?u.compactCount+1:null;return{id:i.id,dry_run:w,changed:f,compact_boundary:{kind:u.kind,before:u.raw,entries_compacted:u.compactCount,entries_retained:u.retainedCount,first_retained_entry:Z},history:{path:c,entries_scanned:a.length,entries_after:p.length,baseline_entry_added:J,audit_entry_added:Q,verify_ok:E.ok,verify_errors:E.errors},item:{exists:i.located!==null,path:i.located?.itemPath??null,matched_chain_before:_.matchedChainBefore},warnings:[...new Set(m)].sort((ee,te)=>ee.localeCompare(te)),generated_at:R()}}var he=3;function Pe(e,t){let n=t.ids!==void 0&&t.ids.length>0,r=t.allOver!==void 0||t.scope!==void 0;if((e!==void 0?1:0)+(n?1:0)+(r?1:0)===0)throw new d("history-compact: provide an item <id>, or a bulk selector (--ids, --all-over <N>, --closed, or --all-streams).",l.USAGE);if(e!==void 0&&(n||r))throw new d("history-compact: <id> and bulk selectors (--ids/--all-over/--closed/--all-streams) are mutually exclusive; pass one item id, or use bulk mode without a positional id.",l.USAGE);if(n&&r)throw new d("history-compact: --ids is mutually exclusive with --all-over/--closed/--all-streams; pass an explicit id list or a scan selector, not both.",l.USAGE)}function me(e){let t=0;for(let n of e.split(/\r?\n/))n.trim().length>0&&(t+=1);return t}async function pe(e){let t=L(e.settings.schema),n=V(t),r=await G(e.pmRoot,e.settings.item_format,e.typeToFolder,void 0,e.settings.schema),o=new Map(r.map(a=>[a.id,n.classify(a.status)])),s=Y.join(e.pmRoot,"history"),i=[],c=[];if(!await k(s))return{candidates:i,preselectionErrors:c};let y=(await X.readdir(s)).filter(a=>a.endsWith(".jsonl")).sort((a,h)=>a.localeCompare(h));for(let a of y){let h=Y.join(s,a),u=a.slice(0,-6);try{let f=await X.readFile(h,"utf8");await D({path:h,scope:"project"}),i.push({id:u,entries:me(f),bucket:o.get(u)??null})}catch(f){c.push({id:u,outcome:"errored",entries_before:0,entries_after:null,skip_reason:null,changed:!1,error:f instanceof Error?f.message:String(f)})}}return{candidates:i,preselectionErrors:c}}async function ye(e){if(!e.row.selected)return{selected:!1,compacted:!1,errored:!1,result:{id:e.row.id,outcome:"skipped",entries_before:e.row.entries,entries_after:null,skip_reason:e.row.skip_reason,changed:!1,error:null}};try{let t=await fe(e.row.id,{dryRun:e.dryRun,author:e.options.author,message:e.options.message,force:e.options.force},e.global);return{selected:!0,compacted:!0,errored:!1,result:{id:e.row.id,outcome:"compacted",entries_before:e.row.entries,entries_after:t.history.entries_after,skip_reason:null,changed:t.changed,error:null}}}catch(t){return{selected:!0,compacted:!1,errored:!0,result:{id:e.row.id,outcome:"errored",entries_before:e.row.entries,entries_after:null,skip_reason:null,changed:!1,error:t instanceof Error?t.message:String(t)}}}}async function je(e,t){let n=H(process.cwd(),t.path);if(!await k(T(n)))throw new d(`Tracker is not initialized at ${n}. Run pm init first.`,l.NOT_FOUND);let r=await x(n),o=v(r,B()),{candidates:s,preselectionErrors:i}=await pe({pmRoot:n,settings:r,typeToFolder:o.type_to_folder}),c=e.ids!==void 0&&e.ids.length>0?"ids":"scan",y=e.minEntries??he,a=r.history.compact_policy,h=c==="scan"&&e.allOver===void 0&&a.enabled,u=e.allOver??(h?a.max_entries:void 0),f=K(s,{ids:e.ids,scope:e.scope,minEntries:y,allOver:u}),w=!!e.dryRun,b=[...i],m={streams_considered:s.length+i.length,selected:0,items_compacted:0,items_skipped:0,items_errored:i.length};for(let _ of f){let p=await ye({row:_,options:e,dryRun:w,global:t});if(b.push(p.result),!p.selected){m.items_skipped+=1;continue}m.selected+=1,p.compacted&&(m.items_compacted+=1),p.errored&&(m.items_errored+=1)}return{bulk:!0,dry_run:w,mode:c,scope:e.scope??null,criteria:{min_entries:y,all_over:u??null,policy_threshold_applied:h},totals:m,results:b,generated_at:R()}}export{fe as a,he as b,Pe as c,je as d};
2
+ //# sourceMappingURL=chunk-343QETLI.js.map
@@ -1,2 +1,2 @@
1
- import{a as oe,b as ae,c as de}from"./chunk-UP7DTVMD.js";import{c as ie}from"./chunk-BXQLRKWF.js";import{f as se}from"./chunk-YEWNL576.js";import{q as H,r as W,v as Y,w as Q}from"./chunk-A62CYISG.js";import{A as c,Af as X,C as f,Cf as J,Da as v,Ea as T,Gf as Z,If as ee,La as j,Nc as G,Nf as te,Oa as B,Of as ne,Pc as $,Pf as re,R as O,Rd as z,Sd as q,T as h,Td as M,U as x,V as C,Wd as V,b as D,cd as A,lc as U,v as N,xc as P}from"./chunk-GE4KCSZP.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]="eb044a23-d43b-5e9c-9ae7-4ac91b5e587a")}catch{}})();function L(t,e="--limit"){if(t===void 0)return;let n=String(t).trim(),r=n.length===0?Number.NaN:Number(n);if(!Number.isInteger(r)||r<0)throw new f(`${e} must be a non-negative integer`,c.USAGE);return r}function le(t,e="--priority"){if(t===void 0)return;let n=String(t).trim(),r=n.length===0?Number.NaN:Number(n);if(!Number.isInteger(r)||r<0||r>4)throw new f(`${e} filter must be 0..4`,c.USAGE);return r}function qt(t,e,n="--type"){if(t===void 0)return;let r=T(t,e);if(!r)throw new f(`${n} filter must be one of ${e.types.join("|")}`,c.USAGE);return r}(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]="1035bd62-b012-5249-bd53-31b39f21b2d3")}catch{}})();function k(t,e){if(t===void 0)return;let n=[],r="";for(let o=0;o<t.length;o+=1){let l=t[o];if(l==="\\"){let d=t[o+1];if(d===","||d==="\\"){r+=d,o+=1;continue}r+=l;continue}if(l===","){n.push(r),r="";continue}r+=l}n.push(r);let s=n.map(o=>o.trim());if(s.some(o=>o.length===0))throw new f(`${e.label} requires at least one non-empty value`,c.USAGE);let i=s.map(o=>e.normalize?.(o)??o);return[...new Set(i)]}function b(t,e){let n=k(t,e);return n===void 0?void 0:new Set(n)}function ue(t,e,n="--type"){let r=k(t,{label:n});if(r===void 0)return;let s=r.map(i=>{let o=T(i,e);if(!o)throw new f(`${n} filter token "${i}" must be one of ${e.types.join("|")}`,c.USAGE);return o});return new Set(s)}function ce(t,e="--priority"){let n=k(t,{label:e});if(n!==void 0)return new Set(n.map(r=>le(r,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]="03824e4b-562b-5e12-a89a-9dd091ae7fd3")}catch{}})();var _=["notes","learnings","files","docs","tests","comments","deps","body","linked_command"];function g(t){return Array.isArray(t)&&t.length>0}function je(t){return typeof t=="string"&&t.trim().length>0}function Be(t){return Array.isArray(t)?t.some(e=>{if(typeof e!="object"||e===null)return!1;let n=e.command;return typeof n=="string"&&n.trim().length>0}):!1}function me(t,e){switch(e){case"notes":return g(t.notes);case"learnings":return g(t.learnings);case"files":return g(t.files);case"docs":return g(t.docs);case"tests":return g(t.tests);case"comments":return g(t.comments);case"deps":return g(t.dependencies);case"body":return je(t.body);case"linked_command":return Be(t.tests)}}function ye(t){return _.some(e=>t[e]!==void 0)}function pe(t,e){for(let n of _){let r=e[n];if(r===void 0)continue;let s=me(t,n);if(r==="present"&&!s||r==="absent"&&s)return!1}return!0}function ge(t){return _.some(e=>e!=="body"&&t[e]!==void 0)}function _e(t){return t.body!==void 0}function fe(t,e){return e===0?100:Math.round(t/e*1e3)/10}function Ue(){let t={};for(let e of _)t[e]={present:0,total:0,percent:100};return t}function Zt(t){let e=Ue(),n=t.length;for(let o of t)for(let l of _)me(o,l)&&(e[l].present+=1);for(let o of _)e[o].total=n,e[o].percent=fe(e[o].present,n);let r=e.body,s=n-r.present,i={present:s,total:n,percent:fe(s,n)};return{total_items:n,fields:e,body_populated:r,empty_body:i}}(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]="ec0c4c57-e3c2-54b3-bcf4-b4ab3b1d964e")}catch{}})();var Pe=t=>({acMissing:t.filterAcMissing===!0,estimatesMissing:t.filterEstimatesMissing===!0,resolutionMissing:t.filterResolutionMissing===!0,metadataMissing:t.filterMetadataMissing===!0,reviewerMissing:t.filterReviewerMissing===!0,riskMissing:t.filterRiskMissing===!0,confidenceMissing:t.filterConfidenceMissing===!0,sprintMissing:t.filterSprintMissing===!0,releaseMissing:t.filterReleaseMissing===!0}),he=[{field:"notes",presentKey:"hasNotes",absentKey:"noNotes",presentFlag:"--has-notes",absentFlag:"--no-notes"},{field:"learnings",presentKey:"hasLearnings",absentKey:"noLearnings",presentFlag:"--has-learnings",absentFlag:"--no-learnings"},{field:"files",presentKey:"hasFiles",absentKey:"noFiles",presentFlag:"--has-files",absentFlag:"--no-files"},{field:"docs",presentKey:"hasDocs",absentKey:"noDocs",presentFlag:"--has-docs",absentFlag:"--no-docs"},{field:"tests",presentKey:"hasTests",absentKey:"noTests",presentFlag:"--has-tests",absentFlag:"--no-tests"},{field:"comments",presentKey:"hasComments",absentKey:"noComments",presentFlag:"--has-comments",absentFlag:"--no-comments"},{field:"deps",presentKey:"hasDeps",absentKey:"noDeps",presentFlag:"--has-deps",absentFlag:"--no-deps"},{field:"body",presentKey:"hasBody",absentKey:"emptyBody",presentFlag:"--has-body",absentFlag:"--empty-body"},{field:"linked_command",presentKey:"hasLinkedCommand",absentKey:"noLinkedCommand",presentFlag:"--has-linked-command",absentFlag:"--no-linked-command"}],Ke=t=>{let e=he.find(n=>t[n.presentKey]===!0&&t[n.absentKey]===!0);if(e)throw new f(`Cannot combine ${e.presentFlag} with ${e.absentFlag} for the same field.`,c.USAGE);return Object.fromEntries(he.flatMap(n=>t[n.presentKey]===!0?[[n.field,"present"]]:t[n.absentKey]===!0?[[n.field,"absent"]]:[]))},be=["priority","deadline","updated_at","created_at","title","parent"],Fe=["asc","desc"],Ge=["id","title","status","type","priority","parent","updated_at"],$e=["id","status","type","title"],An={list:"brief","list-all":"full","list-draft":"full","list-open":"brief","list-in-progress":"brief","list-blocked":"brief","list-closed":"full","list-canceled":"full"},ze=["tree_depth","tree_parent","tree_children","tree_title"],we=new Set(Z);function qe(t,e,n){let r=t.filter(o=>o.startsWith("item_list_item_read_failed:")).length,s=t.filter(o=>o.startsWith("item_list_directory_read_failed:")).length,i={status:e?"unchecked":r+s>0?"partial":"complete",unreadable_item_count:r,unreadable_directory_count:s};if(n&&i.status==="partial")throw new f(`List source is incomplete: ${r} item document(s) and ${s} item directory/directories could not be read.`,c.GENERIC_FAILURE,{code:"list_source_incomplete",why:"Strict list reads fail closed so agents and SDK consumers never treat an omitted item as a complete workspace.",nextSteps:["Run pm validate --check-storage-integrity to locate unreadable tracker artifacts.","Repair the reported files or align the installed decoder version, then retry."]});return i}function Ve(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)&&Object.keys(t).length>0}var He=[{key:"hasNotes",summaryKey:"has_notes"},{key:"hasLearnings",summaryKey:"has_learnings"},{key:"hasFiles",summaryKey:"has_files"},{key:"hasDocs",summaryKey:"has_docs"},{key:"hasTests",summaryKey:"has_tests"},{key:"hasComments",summaryKey:"has_comments"},{key:"hasDeps",summaryKey:"has_deps"},{key:"hasBody",summaryKey:"has_body"},{key:"hasLinkedCommand",summaryKey:"has_linked_command"},{key:"noNotes",summaryKey:"no_notes"},{key:"noLearnings",summaryKey:"no_learnings"},{key:"noFiles",summaryKey:"no_files"},{key:"noDocs",summaryKey:"no_docs"},{key:"noTests",summaryKey:"no_tests"},{key:"noComments",summaryKey:"no_comments"},{key:"noDeps",summaryKey:"no_deps"},{key:"emptyBody",summaryKey:"empty_body"},{key:"noLinkedCommand",summaryKey:"no_linked_command"}],We=[{key:"filterReviewerMissing",summaryKey:"filter_reviewer_missing"},{key:"filterRiskMissing",summaryKey:"filter_risk_missing"},{key:"filterConfidenceMissing",summaryKey:"filter_confidence_missing"},{key:"filterSprintMissing",summaryKey:"filter_sprint_missing"},{key:"filterReleaseMissing",summaryKey:"filter_release_missing"}];function Te(t,e){for(let n of He)e[n.key]===!0&&(t[n.summaryKey]=!0)}function Ae(t,e){for(let n of We)e[n.key]===!0&&(t[n.summaryKey]=!0)}function Ye(t,e,n){for(let r of n){let s=e[r.optionKey];s!==void 0&&(t[r.summaryKey]=r.normalize?r.normalize(s):s)}}function Qe(t){let e={};return Te(e,t),e}function Xe(t){let e={};return Ae(e,t),e}var Je=[{optionKey:"type",summaryKey:"type"},{optionKey:"tag",summaryKey:"tag"},{optionKey:"priority",summaryKey:"priority"},{optionKey:"deadlineBefore",summaryKey:"deadline_before"},{optionKey:"deadlineAfter",summaryKey:"deadline_after"},{optionKey:"updatedAfter",summaryKey:"updated_after"},{optionKey:"updatedBefore",summaryKey:"updated_before"},{optionKey:"createdAfter",summaryKey:"created_after"},{optionKey:"createdBefore",summaryKey:"created_before"},{optionKey:"ids",summaryKey:"ids"},{optionKey:"assignee",summaryKey:"assignee"},{optionKey:"assigneeFilter",summaryKey:"assignee_filter"},{optionKey:"parent",summaryKey:"parent"},{optionKey:"sprint",summaryKey:"sprint"},{optionKey:"release",summaryKey:"release"}],Ze=[{optionKey:"type",summaryKey:"type"},{optionKey:"tag",summaryKey:"tag"},{optionKey:"priority",summaryKey:"priority"},{optionKey:"deadlineBefore",summaryKey:"deadline_before"},{optionKey:"deadlineAfter",summaryKey:"deadline_after"},{optionKey:"updatedAfter",summaryKey:"updated_after"},{optionKey:"updatedBefore",summaryKey:"updated_before"},{optionKey:"createdAfter",summaryKey:"created_after"},{optionKey:"createdBefore",summaryKey:"created_before"},{optionKey:"ids",summaryKey:"ids"},{optionKey:"assignee",summaryKey:"assignee"},{optionKey:"assigneeFilter",summaryKey:"assignee_filter"},{optionKey:"parent",summaryKey:"parent"},{optionKey:"sprint",summaryKey:"sprint"},{optionKey:"release",summaryKey:"release"},{optionKey:"limit",summaryKey:"limit"},{optionKey:"offset",summaryKey:"offset"},{optionKey:"includeBody",summaryKey:"include_body"},{optionKey:"compact",summaryKey:"compact"},{optionKey:"fields",summaryKey:"fields"}],et=[{key:"filterAcMissing",summaryKey:"filter_ac_missing"},{key:"filterEstimatesMissing",summaryKey:"filter_estimates_missing"},{key:"filterResolutionMissing",summaryKey:"filter_resolution_missing"},{key:"filterMetadataMissing",summaryKey:"filter_metadata_missing"}],tt="-7d";function nt(t){let{filtersStatus:e,options:n,treeEnabled:r,treeDepth:s,sortField:i,sortOrder:o,runtimeFieldFilters:l}=t,d={};return e!==null&&(d.status=e),n.dependencyBlocked===!0&&(d.blocked_semantics="status_or_dependency"),Ye(d,n,Je),Ie(d,n),n.filterAcMissing===!0&&(d.filter_ac_missing=!0),n.filterEstimatesMissing===!0&&(d.filter_estimates_missing=!0),n.filterResolutionMissing===!0&&(d.filter_resolution_missing=!0),n.filterMetadataMissing===!0&&(d.filter_metadata_missing=!0),Ae(d,n),Te(d,n),n.limit!==void 0&&(d.limit=n.limit),n.offset!==void 0&&(d.offset=n.offset),n.includeBody===!0&&(d.include_body=!0),n.fields!==void 0&&(d.fields=n.fields),r&&(d.tree=!0,s!==void 0&&(d.tree_depth=s)),i!==void 0&&(d.sort=i,d.order=o),Ve(l)&&(d.runtime_filters=l),d}function Le(t,e,n){let r=A(t.status,n),s=A(e.status,n);if(r!==s)return r?1:-1;let i=t.priority-e.priority;if(i!==0)return i;let o=h(e.updated_at,t.updated_at);return o!==0?o:(t.id??"").localeCompare(e.id??"")}function rt(t,e){return[...t].sort((n,r)=>Le(n,r,e))}function Se(t,e){if(t!==void 0)return C(t,new Date,e)}function F(t,e){if(t==null)return;let n=String(t).trim();if(n.length!==0)return C(n,new Date,e)}function st(t){let e=t.updatedAfter!=null&&String(t.updatedAfter).trim().length>0;if([t.today===!0,t.recent===!0,e].filter(r=>r).length>1)throw new f("Choose only one updated_at window: --today, --recent, or --updated-after.",c.USAGE);if(t.today===!0){let r=new Date;return r.setHours(0,0,0,0),r.toISOString()}return t.recent===!0?F(tt,"recent"):F(t.updatedAfter,"updated-after")}function Ie(t,e){e.today===!0&&(t.today=!0),e.recent===!0&&(t.recent=!0)}function it(t){if(t==null)return;let e=String(t).trim();if(e.length===0)throw new f("--ids requires at least one non-empty item ID",c.USAGE);let n=e.split(",").map(r=>r.trim()).filter(r=>r.length>0);if(n.length===0)throw new f("--ids requires at least one non-empty item ID",c.USAGE);return new Set(n)}function Ce(t){if(t===void 0)return;let e=String(t).trim(),n=e.length===0?Number.NaN:Number(e);if(!Number.isInteger(n)||n<0)throw new f("Offset filter must be a non-negative integer",c.USAGE);return n}function ot(t){if(t===void 0)return;let e=t.split(",").map(n=>n.trim()).filter(n=>n.length>0);if(e.length===0)throw new f("List --fields requires a comma-separated list of field names",c.USAGE);return[...new Set(e)]}function at(t){let e=t.compact===!0,n=t.brief===!0,r=t.full===!0,s=ot(t.fields);if(Number(e)+Number(n)+Number(r)+ +(s!==void 0)>1)throw new f("List projection options are mutually exclusive. Use one of --compact, --brief, --full, or --fields.",c.USAGE);return r?{mode:"full",fields:[]}:n?{mode:"brief",fields:[...$e]}:e?{mode:"compact",fields:[...Ge]}:s?{mode:"fields",fields:s}:{mode:"full",fields:[]}}function S(t){return t.startsWith("item.")?t.slice(5):t}function dt(t,e){if(t.mode!=="fields")return;let n=new Set([...N,"body",...ze,...e]),r=t.fields.filter(s=>!n.has(S(s)));if(r.length>0)throw new f(`Unknown list --fields value(s): ${r.join(", ")}`,c.USAGE,{code:"unknown_field_projection",examples:["pm list-open --fields id,title,status,type,updated_at","pm list --fields id,title,parent,priority --limit 10","pm list-all --fields id,title,body --limit 5"]})}var lt=new Map([["updated","updated_at"],["update","updated_at"],["modified","updated_at"],["created","created_at"],["create","created_at"]]);function ut(t){if(t===void 0)return;let e=t.trim().toLowerCase(),n=lt.get(e);if(n)return n;if(!be.includes(e))throw new f(`Sort field must be one of ${be.join("|")} (aliases: updated->updated_at, created->created_at)`,c.USAGE);return e}function ct(t){if(t===void 0)return;let e=t.trim().toLowerCase();if(!Fe.includes(e))throw new f(`Sort order must be one of ${Fe.join("|")}`,c.USAGE);return e}function ft(t){return L(t,"--tree-depth")}function mt(t){if(t===void 0)return;let e=t.trim().toLowerCase();if(!e)throw new f("Assignee filter must be one of assigned|unassigned",c.USAGE);if(e!=="assigned"&&e!=="unassigned")throw new f(`Invalid assignee filter "${t}". Allowed: assigned|unassigned`,c.USAGE);return e}function Ee(t,e){return W(t,e,{strict:!0})}function Me(t){return b(t,{label:"--tag",normalize:e=>e.toLowerCase()})}function yt(t,e,n){let r=Me(e);if(r===void 0)return;let s=new Set(t.flatMap(o=>o.tags.map(l=>l.trim().toLowerCase()))),i=[...r].filter(o=>!s.has(o));i.length>0&&n.push(`unknown_tags:${i.join(",")}`)}function pt(t,e){if(t&&[...t].some(n=>n.toLowerCase()==="none"||n.toLowerCase()==="null"))throw new f('--assignee no longer accepts "none" or "null". Use --assignee-filter unassigned.',c.USAGE);if(t!==void 0&&e==="unassigned")throw new f("Cannot combine --assignee with --assignee-filter unassigned",c.USAGE)}function gt(t,e,n,r){let s=b(e.assignee,{label:"--assignee"}),i=mt(e.assigneeFilter);pt(s,i);let o=Pe(e),l=Ke(e);return{idsFilter:it(e.ids),statusSet:t&&t.length>0?new Set(t):void 0,excludeTerminal:e.excludeTerminal===!0,typeFilter:ue(e.type,n),tagFilters:Me(e.tag),priorityFilter:ce(e.priority),deadlineBefore:Se(e.deadlineBefore,"deadline-before"),deadlineAfter:Se(e.deadlineAfter,"deadline-after"),updatedAfter:st(e),updatedBefore:F(e.updatedBefore,"updated-before"),createdAfter:F(e.createdAfter,"created-after"),createdBefore:F(e.createdBefore,"created-before"),assigneeFilter:s,assigneeModeFilter:i,parentFilter:e.parent?.trim(),treeEnabled:e.tree===!0,sprintFilter:b(e.sprint,{label:"--sprint"}),releaseFilter:b(e.release,{label:"--release"}),missingMetadataFilters:o,missingMetadataActive:ae(o),lifecycleClassifier:oe(r),contentFieldFilters:l,contentFiltersActive:ye(l)}}function _t(t,e,n){return ht(t,e,n)&&bt(t,e)&&Ft(t,e)&&St(t,e)}function ht(t,e,n){return e.idsFilter&&!e.idsFilter.has(t.id)||e.statusSet&&!e.statusSet.has(t.status)||e.excludeTerminal&&A(t.status,n)||e.typeFilter&&!e.typeFilter.has(t.type)||e.tagFilters&&![...e.tagFilters].some(r=>(t.tags??[]).some(s=>s.trim().toLowerCase()===r))?!1:e.priorityFilter===void 0||e.priorityFilter.has(t.priority)}function bt(t,e){return x(t,e)}function Ft(t,e){return e.assigneeModeFilter==="assigned"&&!t.assignee||e.assigneeModeFilter==="unassigned"&&t.assignee?!1:e.assigneeFilter===void 0||t.assignee!==void 0&&e.assigneeFilter.has(t.assignee)}function St(t,e){return e.parentFilter!==void 0&&!e.treeEnabled&&t.parent!==e.parentFilter||e.sprintFilter!==void 0&&(t.sprint===void 0||!e.sprintFilter.has(t.sprint))?!1:e.releaseFilter===void 0||t.release!==void 0&&e.releaseFilter.has(t.release)}function Et(t,e,n,r){return!(!_t(t,e,n)||e.missingMetadataActive&&!de(t,e.missingMetadataFilters,e.lifecycleClassifier)||e.contentFiltersActive&&!pe(t,e.contentFieldFilters)||!Q(t,r))}function Kt(t,e,n,r,s,i){let o=gt(e,n,r,s);return t.filter(l=>Et(l,o,s,i))}function I(t){if(typeof t!="string")return;let e=t.trim();return e.length>0?e:void 0}function wt(t,e,n){let r=t,s=typeof r.title=="string"?r.title:"",i=I(typeof r.parent=="string"?r.parent:void 0)??null;return{...t,tree_depth:e,tree_parent:i,tree_children:n,tree_title:`${" ".repeat(e)}${s}`}}function Tt(t,e,n){let r=new Map,s=new Map;for(let a of t){r.set(a.id,a);let m=I(a.parent);if(!m)continue;let u=s.get(m);u?u.push(a):s.set(m,[a])}let i=e?[...s.get(e)??[]]:t.filter(a=>{let m=I(a.parent);return!m||!r.has(m)}),o=[],l=new Set,d=(a,m)=>{if(l.has(a.id))return;l.add(a.id);let u=s.get(a.id)??[];if(o.push(wt(a,m,u.length)),!(n!==void 0&&m>=n))for(let p of u)d(p,m+1)};for(let a of i)d(a,0);return o}function At(t,e){return t===e?0:t===null?1:e===null?-1:t.localeCompare(e)}function Lt(t,e){return t===e?0:t===null?1:e===null?-1:h(t,e)}function It(t,e,n){switch(n){case"priority":return t.priority-e.priority;case"deadline":return Lt(t.deadline??null,e.deadline??null);case"updated_at":return h(t.updated_at,e.updated_at);case"created_at":return h(t.created_at,e.created_at);case"title":return(t.title??"").localeCompare(e.title??"");case"parent":return At(t.parent??null,e.parent??null);default:return 0}}function Ct(t,e,n,r){return e?[...t].sort((s,i)=>{let o=It(s,i,e);if(o!==0)return n==="desc"?-o:o;let l=Le(s,i,r);return n==="desc"?-l:l}):rt(t,r)}function Mt(t,e,n=!1){let r=S(e.trim());if(r.length===0)return null;let s=t;return n&&r==="title"&&typeof s.tree_title=="string"?s.tree_title:Object.prototype.hasOwnProperty.call(s,r)?s[r]??null:null}function ke(t,e,n=!1){return e.mode==="full"?t:t.map(r=>{let s={};for(let i of e.fields)s[i]=Mt(r,i,n);return s})}function kt(t){let e=[];for(let n of t)e.push(n.metadata_key);return e}function Rt(t,e){if(t.noTruncate!==!0)return L(t.limit)??(e>=1e4?20:void 0)}function Dt(t,e,n){return e.after===void 0?Ce(e.offset)??0:V(t,e.after,n,r=>r.id)}function Re(t,e,n){return{...t!==void 0?{applied_limit:t}:{},has_more:e,truncated:e,next_cursor:n??null}}async function Nt(t,e){let n=j(process.cwd(),e.path);if(!await D(B(n)))throw new f(`Tracker is not initialized at ${n}. Run pm init first.`,c.NOT_FOUND);let r=await X(n),s=G(r.schema),i=$(r.schema),o=at(t);return dt(o,kt(i.definitions)),{pmRoot:n,settings:r,statusRegistry:s,runtimeFieldFilters:Y(t,i,"list"),typeRegistry:v(r,U()),projection:o}}async function Ot(t,e,n){let r=e.projection.fields.some(d=>S(d)==="body"),s=e.projection.mode==="full"||e.projection.fields.some(d=>we.has(S(d))),i=Ke(t),o=ge(i),l=_e(i);return t.includeBody||r||l?await re(e.pmRoot,e.settings.item_format,e.typeRegistry.type_to_folder,n,e.settings.schema):s||o?await te(e.pmRoot,e.settings.item_format,e.typeRegistry.type_to_folder,n,e.settings.schema):await ne(e.pmRoot,e.settings.item_format,e.typeRegistry.type_to_folder,n,e.settings.schema)}function xt(t){let e=ut(t.sort),n=ct(t.order)??"asc",r=t.tree===!0;if(!r&&t.treeDepth!==void 0)throw new f("List --tree-depth requires --tree",c.USAGE);if(!e&&t.order!==void 0)throw new f("List --order requires --sort",c.USAGE);return{sortField:e,sortOrder:n,treeEnabled:r,treeDepth:r?ft(t.treeDepth):void 0,parentRoot:r?I(t.parent):void 0}}function vt(t,e,n){let r=Ee(e.status,n),s=r??Ee(t,n),i=H(e.status),o=r||i?{...e,excludeTerminal:!1}:e,l=i?"all":s===void 0?o.excludeTerminal===!0?null:"all":s.length===1?s[0]:s;return{resolvedStatus:s,explicitAllStatuses:i,effectiveOptions:o,filtersStatus:l}}function jt(t,e,n,r,s){if(e.after!==void 0&&e.offset!==void 0)throw new f("List --after cannot be combined with --offset.",c.USAGE);let i=Rt(e,t.length),o=Dt(t,e,s),l=i===void 0?t.slice(o):t.slice(o,o+i),d=ke(l,n,r),a=t.length,m=l.length>0&&o+l.length<a,u=m&&l.length>0?M(s,l[l.length-1].id,o+l.length-1):void 0;return{projected:d,totalMatched:a,pageExtras:Re(i,m,u)}}function De(t,e,n){return q("list",{status:t,options:z(e,se),sort:n.sortField??"default",order:n.sortOrder,tree:n.treeEnabled,tree_depth:n.treeDepth??null})}async function Bt(t){let{options:e,runtime:n,statusSelection:r,ordering:s}=t,i=new Set(["status","limit","offset","compact","brief","full","fields","format","stream","includeBody","excludeTerminal","noTruncate"]),o=[n.projection.mode==="full",n.projection.fields.some(K=>{let y=S(K);return y==="body"||we.has(y)})].includes(!0);if([e.limit===void 0,e.after!==void 0,e.noTruncate===!0,e.includeBody===!0,e.dependencyBlocked===!0,e.strictRead===!0,s.treeEnabled,s.sortField!==void 0,o,P(),Object.keys(n.runtimeFieldFilters).length>0,Object.entries(e).some(([K,y])=>y!==void 0&&!i.has(K))].includes(!0))return null;let d=await ee(n.pmRoot,[...new Set(Object.values(n.typeRegistry.type_to_folder))]);if(!d)return null;let a=L(e.limit),m=Ce(e.offset)??0,u=await J({pmRoot:n.pmRoot,expectedSourceCursor:d.source_cursor,query:{statuses:r.resolvedStatus,excludeStatuses:r.resolvedStatus===void 0&&r.effectiveOptions.excludeTerminal===!0?[...n.statusRegistry.terminal_statuses]:void 0,terminalStatuses:[...n.statusRegistry.terminal_statuses],limit:a,offset:m}});if(!u)return null;let p=u.items.length>0&&m+u.items.length<u.total,E=p?M(De(r.filtersStatus,e,s),u.items.at(-1).id,m+u.items.length-1):void 0;return{projected:ke(u.items,n.projection,!1),totalMatched:u.total,pageExtras:Re(a,p,E)}}function Ut(t){let{filtersStatus:e,options:n,noTruncate:r,treeEnabled:s,treeDepth:i,sortField:o,sortOrder:l,runtimeFieldFilters:d}=t,a={};e!==null&&(a.status=e),n.dependencyBlocked===!0&&(a.blocked_semantics="status_or_dependency");let m=n;for(let u of Ze){let p=m[u.optionKey];p!=null&&(a[u.summaryKey]=p)}for(let u of et)m[u.key]===!0&&(a[u.summaryKey]=!0);return Object.assign(a,Xe(n),Qe(n)),Ie(a,n),r&&(a.no_truncate=!0),s&&(a.tree=!0,i!==void 0&&(a.tree_depth=i)),o!==void 0&&(a.sort=o,a.order=l),a.runtime_filters=d,a}async function Ln(t,e,n){let r=await Nt(e,n),s=[],i=xt(e),o=vt(t,e,r.statusRegistry),l=e.noTruncate===!0,d=await Bt({options:e,runtime:r,statusSelection:o,ordering:i}),a=d;if(!a){let y=await Ot(e,r,s);yt(y,e.tag,s);let w=Kt(y,o.resolvedStatus,o.effectiveOptions,r.typeRegistry,r.statusRegistry,r.runtimeFieldFilters),Ne=e.dependencyBlocked===!0?(()=>{let xe=ie(y,r.statusRegistry);return w.filter(ve=>xe.has(ve.id.trim().toLowerCase()))})():w,R=Ct(Ne,i.sortField,i.sortOrder,r.statusRegistry),Oe=i.treeEnabled?Tt(R,i.parentRoot,i.treeDepth):R;a=jt(Oe,e,r.projection,i.treeEnabled,De(o.filtersStatus,e,i))}let m=O(),u=[...new Set(s)].sort((y,w)=>y.localeCompare(w)),p=qe(u,d!==null,e.strictRead===!0),E=r.projection.mode==="full"?null:[...r.projection.fields];if(r.projection.mode==="compact"&&e.compact===!0){let y=nt({filtersStatus:o.filtersStatus,options:e,treeEnabled:i.treeEnabled,treeDepth:i.treeDepth,sortField:i.sortField,sortOrder:i.sortOrder,runtimeFieldFilters:r.runtimeFieldFilters});return{items:a.projected,count:a.projected.length,total:a.totalMatched,...a.pageExtras,completeness:p,filters:y,projection:{mode:"compact",fields:E},...u.length>0?{warnings:u}:{}}}return{items:a.projected,count:a.projected.length,total:a.totalMatched,...a.pageExtras,completeness:p,filters:Ut({filtersStatus:o.filtersStatus,options:e,noTruncate:l,treeEnabled:i.treeEnabled,treeDepth:i.treeDepth,sortField:i.sortField,sortOrder:i.sortOrder,runtimeFieldFilters:r.runtimeFieldFilters}),projection:{mode:r.projection.mode,fields:E},sorting:{sort:i.sortField??"default",order:i.sortField?i.sortOrder:"asc"},now:m,...u.length>0?{warnings:u}:{}}}export{L as a,le as b,qt as c,k as d,b as e,ue as f,ce as g,ye as h,pe as i,Zt as j,Pe as k,Ke as l,be as m,Fe as n,Ge as o,$e as p,An as q,Ye as r,Qe as s,Xe as t,Ln as u};
2
- //# sourceMappingURL=chunk-RKAVWO3O.js.map
1
+ import{a as oe,b as ae,c as de}from"./chunk-QJ7C3JIW.js";import{c as ie}from"./chunk-L6LGKJX3.js";import{f as se}from"./chunk-RUAU5OSH.js";import{q as H,r as W,v as Y,w as Q}from"./chunk-MDTH7SAE.js";import{A as c,Af as X,C as f,Cf as J,Da as v,Ea as T,Gf as Z,If as ee,La as j,Nc as G,Nf as te,Oa as B,Of as ne,Pc as $,Pf as re,R as O,Rd as z,Sd as q,T as h,Td as M,U as x,V as C,Wd as V,b as D,cd as A,lc as U,v as N,xc as P}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]="eb044a23-d43b-5e9c-9ae7-4ac91b5e587a")}catch{}})();function L(t,e="--limit"){if(t===void 0)return;let n=String(t).trim(),r=n.length===0?Number.NaN:Number(n);if(!Number.isInteger(r)||r<0)throw new f(`${e} must be a non-negative integer`,c.USAGE);return r}function le(t,e="--priority"){if(t===void 0)return;let n=String(t).trim(),r=n.length===0?Number.NaN:Number(n);if(!Number.isInteger(r)||r<0||r>4)throw new f(`${e} filter must be 0..4`,c.USAGE);return r}function qt(t,e,n="--type"){if(t===void 0)return;let r=T(t,e);if(!r)throw new f(`${n} filter must be one of ${e.types.join("|")}`,c.USAGE);return r}(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]="1035bd62-b012-5249-bd53-31b39f21b2d3")}catch{}})();function k(t,e){if(t===void 0)return;let n=[],r="";for(let o=0;o<t.length;o+=1){let l=t[o];if(l==="\\"){let d=t[o+1];if(d===","||d==="\\"){r+=d,o+=1;continue}r+=l;continue}if(l===","){n.push(r),r="";continue}r+=l}n.push(r);let s=n.map(o=>o.trim());if(s.some(o=>o.length===0))throw new f(`${e.label} requires at least one non-empty value`,c.USAGE);let i=s.map(o=>e.normalize?.(o)??o);return[...new Set(i)]}function b(t,e){let n=k(t,e);return n===void 0?void 0:new Set(n)}function ue(t,e,n="--type"){let r=k(t,{label:n});if(r===void 0)return;let s=r.map(i=>{let o=T(i,e);if(!o)throw new f(`${n} filter token "${i}" must be one of ${e.types.join("|")}`,c.USAGE);return o});return new Set(s)}function ce(t,e="--priority"){let n=k(t,{label:e});if(n!==void 0)return new Set(n.map(r=>le(r,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]="03824e4b-562b-5e12-a89a-9dd091ae7fd3")}catch{}})();var _=["notes","learnings","files","docs","tests","comments","deps","body","linked_command"];function g(t){return Array.isArray(t)&&t.length>0}function je(t){return typeof t=="string"&&t.trim().length>0}function Be(t){return Array.isArray(t)?t.some(e=>{if(typeof e!="object"||e===null)return!1;let n=e.command;return typeof n=="string"&&n.trim().length>0}):!1}function me(t,e){switch(e){case"notes":return g(t.notes);case"learnings":return g(t.learnings);case"files":return g(t.files);case"docs":return g(t.docs);case"tests":return g(t.tests);case"comments":return g(t.comments);case"deps":return g(t.dependencies);case"body":return je(t.body);case"linked_command":return Be(t.tests)}}function ye(t){return _.some(e=>t[e]!==void 0)}function pe(t,e){for(let n of _){let r=e[n];if(r===void 0)continue;let s=me(t,n);if(r==="present"&&!s||r==="absent"&&s)return!1}return!0}function ge(t){return _.some(e=>e!=="body"&&t[e]!==void 0)}function _e(t){return t.body!==void 0}function fe(t,e){return e===0?100:Math.round(t/e*1e3)/10}function Ue(){let t={};for(let e of _)t[e]={present:0,total:0,percent:100};return t}function Zt(t){let e=Ue(),n=t.length;for(let o of t)for(let l of _)me(o,l)&&(e[l].present+=1);for(let o of _)e[o].total=n,e[o].percent=fe(e[o].present,n);let r=e.body,s=n-r.present,i={present:s,total:n,percent:fe(s,n)};return{total_items:n,fields:e,body_populated:r,empty_body:i}}(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]="ec0c4c57-e3c2-54b3-bcf4-b4ab3b1d964e")}catch{}})();var Pe=t=>({acMissing:t.filterAcMissing===!0,estimatesMissing:t.filterEstimatesMissing===!0,resolutionMissing:t.filterResolutionMissing===!0,metadataMissing:t.filterMetadataMissing===!0,reviewerMissing:t.filterReviewerMissing===!0,riskMissing:t.filterRiskMissing===!0,confidenceMissing:t.filterConfidenceMissing===!0,sprintMissing:t.filterSprintMissing===!0,releaseMissing:t.filterReleaseMissing===!0}),he=[{field:"notes",presentKey:"hasNotes",absentKey:"noNotes",presentFlag:"--has-notes",absentFlag:"--no-notes"},{field:"learnings",presentKey:"hasLearnings",absentKey:"noLearnings",presentFlag:"--has-learnings",absentFlag:"--no-learnings"},{field:"files",presentKey:"hasFiles",absentKey:"noFiles",presentFlag:"--has-files",absentFlag:"--no-files"},{field:"docs",presentKey:"hasDocs",absentKey:"noDocs",presentFlag:"--has-docs",absentFlag:"--no-docs"},{field:"tests",presentKey:"hasTests",absentKey:"noTests",presentFlag:"--has-tests",absentFlag:"--no-tests"},{field:"comments",presentKey:"hasComments",absentKey:"noComments",presentFlag:"--has-comments",absentFlag:"--no-comments"},{field:"deps",presentKey:"hasDeps",absentKey:"noDeps",presentFlag:"--has-deps",absentFlag:"--no-deps"},{field:"body",presentKey:"hasBody",absentKey:"emptyBody",presentFlag:"--has-body",absentFlag:"--empty-body"},{field:"linked_command",presentKey:"hasLinkedCommand",absentKey:"noLinkedCommand",presentFlag:"--has-linked-command",absentFlag:"--no-linked-command"}],Ke=t=>{let e=he.find(n=>t[n.presentKey]===!0&&t[n.absentKey]===!0);if(e)throw new f(`Cannot combine ${e.presentFlag} with ${e.absentFlag} for the same field.`,c.USAGE);return Object.fromEntries(he.flatMap(n=>t[n.presentKey]===!0?[[n.field,"present"]]:t[n.absentKey]===!0?[[n.field,"absent"]]:[]))},be=["priority","deadline","updated_at","created_at","title","parent"],Fe=["asc","desc"],Ge=["id","title","status","type","priority","parent","updated_at"],$e=["id","status","type","title"],An={list:"brief","list-all":"full","list-draft":"full","list-open":"brief","list-in-progress":"brief","list-blocked":"brief","list-closed":"full","list-canceled":"full"},ze=["tree_depth","tree_parent","tree_children","tree_title"],we=new Set(Z);function qe(t,e,n){let r=t.filter(o=>o.startsWith("item_list_item_read_failed:")).length,s=t.filter(o=>o.startsWith("item_list_directory_read_failed:")).length,i={status:e?"unchecked":r+s>0?"partial":"complete",unreadable_item_count:r,unreadable_directory_count:s};if(n&&i.status==="partial")throw new f(`List source is incomplete: ${r} item document(s) and ${s} item directory/directories could not be read.`,c.GENERIC_FAILURE,{code:"list_source_incomplete",why:"Strict list reads fail closed so agents and SDK consumers never treat an omitted item as a complete workspace.",nextSteps:["Run pm validate --check-storage-integrity to locate unreadable tracker artifacts.","Repair the reported files or align the installed decoder version, then retry."]});return i}function Ve(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)&&Object.keys(t).length>0}var He=[{key:"hasNotes",summaryKey:"has_notes"},{key:"hasLearnings",summaryKey:"has_learnings"},{key:"hasFiles",summaryKey:"has_files"},{key:"hasDocs",summaryKey:"has_docs"},{key:"hasTests",summaryKey:"has_tests"},{key:"hasComments",summaryKey:"has_comments"},{key:"hasDeps",summaryKey:"has_deps"},{key:"hasBody",summaryKey:"has_body"},{key:"hasLinkedCommand",summaryKey:"has_linked_command"},{key:"noNotes",summaryKey:"no_notes"},{key:"noLearnings",summaryKey:"no_learnings"},{key:"noFiles",summaryKey:"no_files"},{key:"noDocs",summaryKey:"no_docs"},{key:"noTests",summaryKey:"no_tests"},{key:"noComments",summaryKey:"no_comments"},{key:"noDeps",summaryKey:"no_deps"},{key:"emptyBody",summaryKey:"empty_body"},{key:"noLinkedCommand",summaryKey:"no_linked_command"}],We=[{key:"filterReviewerMissing",summaryKey:"filter_reviewer_missing"},{key:"filterRiskMissing",summaryKey:"filter_risk_missing"},{key:"filterConfidenceMissing",summaryKey:"filter_confidence_missing"},{key:"filterSprintMissing",summaryKey:"filter_sprint_missing"},{key:"filterReleaseMissing",summaryKey:"filter_release_missing"}];function Te(t,e){for(let n of He)e[n.key]===!0&&(t[n.summaryKey]=!0)}function Ae(t,e){for(let n of We)e[n.key]===!0&&(t[n.summaryKey]=!0)}function Ye(t,e,n){for(let r of n){let s=e[r.optionKey];s!==void 0&&(t[r.summaryKey]=r.normalize?r.normalize(s):s)}}function Qe(t){let e={};return Te(e,t),e}function Xe(t){let e={};return Ae(e,t),e}var Je=[{optionKey:"type",summaryKey:"type"},{optionKey:"tag",summaryKey:"tag"},{optionKey:"priority",summaryKey:"priority"},{optionKey:"deadlineBefore",summaryKey:"deadline_before"},{optionKey:"deadlineAfter",summaryKey:"deadline_after"},{optionKey:"updatedAfter",summaryKey:"updated_after"},{optionKey:"updatedBefore",summaryKey:"updated_before"},{optionKey:"createdAfter",summaryKey:"created_after"},{optionKey:"createdBefore",summaryKey:"created_before"},{optionKey:"ids",summaryKey:"ids"},{optionKey:"assignee",summaryKey:"assignee"},{optionKey:"assigneeFilter",summaryKey:"assignee_filter"},{optionKey:"parent",summaryKey:"parent"},{optionKey:"sprint",summaryKey:"sprint"},{optionKey:"release",summaryKey:"release"}],Ze=[{optionKey:"type",summaryKey:"type"},{optionKey:"tag",summaryKey:"tag"},{optionKey:"priority",summaryKey:"priority"},{optionKey:"deadlineBefore",summaryKey:"deadline_before"},{optionKey:"deadlineAfter",summaryKey:"deadline_after"},{optionKey:"updatedAfter",summaryKey:"updated_after"},{optionKey:"updatedBefore",summaryKey:"updated_before"},{optionKey:"createdAfter",summaryKey:"created_after"},{optionKey:"createdBefore",summaryKey:"created_before"},{optionKey:"ids",summaryKey:"ids"},{optionKey:"assignee",summaryKey:"assignee"},{optionKey:"assigneeFilter",summaryKey:"assignee_filter"},{optionKey:"parent",summaryKey:"parent"},{optionKey:"sprint",summaryKey:"sprint"},{optionKey:"release",summaryKey:"release"},{optionKey:"limit",summaryKey:"limit"},{optionKey:"offset",summaryKey:"offset"},{optionKey:"includeBody",summaryKey:"include_body"},{optionKey:"compact",summaryKey:"compact"},{optionKey:"fields",summaryKey:"fields"}],et=[{key:"filterAcMissing",summaryKey:"filter_ac_missing"},{key:"filterEstimatesMissing",summaryKey:"filter_estimates_missing"},{key:"filterResolutionMissing",summaryKey:"filter_resolution_missing"},{key:"filterMetadataMissing",summaryKey:"filter_metadata_missing"}],tt="-7d";function nt(t){let{filtersStatus:e,options:n,treeEnabled:r,treeDepth:s,sortField:i,sortOrder:o,runtimeFieldFilters:l}=t,d={};return e!==null&&(d.status=e),n.dependencyBlocked===!0&&(d.blocked_semantics="status_or_dependency"),Ye(d,n,Je),Ie(d,n),n.filterAcMissing===!0&&(d.filter_ac_missing=!0),n.filterEstimatesMissing===!0&&(d.filter_estimates_missing=!0),n.filterResolutionMissing===!0&&(d.filter_resolution_missing=!0),n.filterMetadataMissing===!0&&(d.filter_metadata_missing=!0),Ae(d,n),Te(d,n),n.limit!==void 0&&(d.limit=n.limit),n.offset!==void 0&&(d.offset=n.offset),n.includeBody===!0&&(d.include_body=!0),n.fields!==void 0&&(d.fields=n.fields),r&&(d.tree=!0,s!==void 0&&(d.tree_depth=s)),i!==void 0&&(d.sort=i,d.order=o),Ve(l)&&(d.runtime_filters=l),d}function Le(t,e,n){let r=A(t.status,n),s=A(e.status,n);if(r!==s)return r?1:-1;let i=t.priority-e.priority;if(i!==0)return i;let o=h(e.updated_at,t.updated_at);return o!==0?o:(t.id??"").localeCompare(e.id??"")}function rt(t,e){return[...t].sort((n,r)=>Le(n,r,e))}function Se(t,e){if(t!==void 0)return C(t,new Date,e)}function F(t,e){if(t==null)return;let n=String(t).trim();if(n.length!==0)return C(n,new Date,e)}function st(t){let e=t.updatedAfter!=null&&String(t.updatedAfter).trim().length>0;if([t.today===!0,t.recent===!0,e].filter(r=>r).length>1)throw new f("Choose only one updated_at window: --today, --recent, or --updated-after.",c.USAGE);if(t.today===!0){let r=new Date;return r.setHours(0,0,0,0),r.toISOString()}return t.recent===!0?F(tt,"recent"):F(t.updatedAfter,"updated-after")}function Ie(t,e){e.today===!0&&(t.today=!0),e.recent===!0&&(t.recent=!0)}function it(t){if(t==null)return;let e=String(t).trim();if(e.length===0)throw new f("--ids requires at least one non-empty item ID",c.USAGE);let n=e.split(",").map(r=>r.trim()).filter(r=>r.length>0);if(n.length===0)throw new f("--ids requires at least one non-empty item ID",c.USAGE);return new Set(n)}function Ce(t){if(t===void 0)return;let e=String(t).trim(),n=e.length===0?Number.NaN:Number(e);if(!Number.isInteger(n)||n<0)throw new f("Offset filter must be a non-negative integer",c.USAGE);return n}function ot(t){if(t===void 0)return;let e=t.split(",").map(n=>n.trim()).filter(n=>n.length>0);if(e.length===0)throw new f("List --fields requires a comma-separated list of field names",c.USAGE);return[...new Set(e)]}function at(t){let e=t.compact===!0,n=t.brief===!0,r=t.full===!0,s=ot(t.fields);if(Number(e)+Number(n)+Number(r)+ +(s!==void 0)>1)throw new f("List projection options are mutually exclusive. Use one of --compact, --brief, --full, or --fields.",c.USAGE);return r?{mode:"full",fields:[]}:n?{mode:"brief",fields:[...$e]}:e?{mode:"compact",fields:[...Ge]}:s?{mode:"fields",fields:s}:{mode:"full",fields:[]}}function S(t){return t.startsWith("item.")?t.slice(5):t}function dt(t,e){if(t.mode!=="fields")return;let n=new Set([...N,"body",...ze,...e]),r=t.fields.filter(s=>!n.has(S(s)));if(r.length>0)throw new f(`Unknown list --fields value(s): ${r.join(", ")}`,c.USAGE,{code:"unknown_field_projection",examples:["pm list-open --fields id,title,status,type,updated_at","pm list --fields id,title,parent,priority --limit 10","pm list-all --fields id,title,body --limit 5"]})}var lt=new Map([["updated","updated_at"],["update","updated_at"],["modified","updated_at"],["created","created_at"],["create","created_at"]]);function ut(t){if(t===void 0)return;let e=t.trim().toLowerCase(),n=lt.get(e);if(n)return n;if(!be.includes(e))throw new f(`Sort field must be one of ${be.join("|")} (aliases: updated->updated_at, created->created_at)`,c.USAGE);return e}function ct(t){if(t===void 0)return;let e=t.trim().toLowerCase();if(!Fe.includes(e))throw new f(`Sort order must be one of ${Fe.join("|")}`,c.USAGE);return e}function ft(t){return L(t,"--tree-depth")}function mt(t){if(t===void 0)return;let e=t.trim().toLowerCase();if(!e)throw new f("Assignee filter must be one of assigned|unassigned",c.USAGE);if(e!=="assigned"&&e!=="unassigned")throw new f(`Invalid assignee filter "${t}". Allowed: assigned|unassigned`,c.USAGE);return e}function Ee(t,e){return W(t,e,{strict:!0})}function Me(t){return b(t,{label:"--tag",normalize:e=>e.toLowerCase()})}function yt(t,e,n){let r=Me(e);if(r===void 0)return;let s=new Set(t.flatMap(o=>o.tags.map(l=>l.trim().toLowerCase()))),i=[...r].filter(o=>!s.has(o));i.length>0&&n.push(`unknown_tags:${i.join(",")}`)}function pt(t,e){if(t&&[...t].some(n=>n.toLowerCase()==="none"||n.toLowerCase()==="null"))throw new f('--assignee no longer accepts "none" or "null". Use --assignee-filter unassigned.',c.USAGE);if(t!==void 0&&e==="unassigned")throw new f("Cannot combine --assignee with --assignee-filter unassigned",c.USAGE)}function gt(t,e,n,r){let s=b(e.assignee,{label:"--assignee"}),i=mt(e.assigneeFilter);pt(s,i);let o=Pe(e),l=Ke(e);return{idsFilter:it(e.ids),statusSet:t&&t.length>0?new Set(t):void 0,excludeTerminal:e.excludeTerminal===!0,typeFilter:ue(e.type,n),tagFilters:Me(e.tag),priorityFilter:ce(e.priority),deadlineBefore:Se(e.deadlineBefore,"deadline-before"),deadlineAfter:Se(e.deadlineAfter,"deadline-after"),updatedAfter:st(e),updatedBefore:F(e.updatedBefore,"updated-before"),createdAfter:F(e.createdAfter,"created-after"),createdBefore:F(e.createdBefore,"created-before"),assigneeFilter:s,assigneeModeFilter:i,parentFilter:e.parent?.trim(),treeEnabled:e.tree===!0,sprintFilter:b(e.sprint,{label:"--sprint"}),releaseFilter:b(e.release,{label:"--release"}),missingMetadataFilters:o,missingMetadataActive:ae(o),lifecycleClassifier:oe(r),contentFieldFilters:l,contentFiltersActive:ye(l)}}function _t(t,e,n){return ht(t,e,n)&&bt(t,e)&&Ft(t,e)&&St(t,e)}function ht(t,e,n){return e.idsFilter&&!e.idsFilter.has(t.id)||e.statusSet&&!e.statusSet.has(t.status)||e.excludeTerminal&&A(t.status,n)||e.typeFilter&&!e.typeFilter.has(t.type)||e.tagFilters&&![...e.tagFilters].some(r=>(t.tags??[]).some(s=>s.trim().toLowerCase()===r))?!1:e.priorityFilter===void 0||e.priorityFilter.has(t.priority)}function bt(t,e){return x(t,e)}function Ft(t,e){return e.assigneeModeFilter==="assigned"&&!t.assignee||e.assigneeModeFilter==="unassigned"&&t.assignee?!1:e.assigneeFilter===void 0||t.assignee!==void 0&&e.assigneeFilter.has(t.assignee)}function St(t,e){return e.parentFilter!==void 0&&!e.treeEnabled&&t.parent!==e.parentFilter||e.sprintFilter!==void 0&&(t.sprint===void 0||!e.sprintFilter.has(t.sprint))?!1:e.releaseFilter===void 0||t.release!==void 0&&e.releaseFilter.has(t.release)}function Et(t,e,n,r){return!(!_t(t,e,n)||e.missingMetadataActive&&!de(t,e.missingMetadataFilters,e.lifecycleClassifier)||e.contentFiltersActive&&!pe(t,e.contentFieldFilters)||!Q(t,r))}function Kt(t,e,n,r,s,i){let o=gt(e,n,r,s);return t.filter(l=>Et(l,o,s,i))}function I(t){if(typeof t!="string")return;let e=t.trim();return e.length>0?e:void 0}function wt(t,e,n){let r=t,s=typeof r.title=="string"?r.title:"",i=I(typeof r.parent=="string"?r.parent:void 0)??null;return{...t,tree_depth:e,tree_parent:i,tree_children:n,tree_title:`${" ".repeat(e)}${s}`}}function Tt(t,e,n){let r=new Map,s=new Map;for(let a of t){r.set(a.id,a);let m=I(a.parent);if(!m)continue;let u=s.get(m);u?u.push(a):s.set(m,[a])}let i=e?[...s.get(e)??[]]:t.filter(a=>{let m=I(a.parent);return!m||!r.has(m)}),o=[],l=new Set,d=(a,m)=>{if(l.has(a.id))return;l.add(a.id);let u=s.get(a.id)??[];if(o.push(wt(a,m,u.length)),!(n!==void 0&&m>=n))for(let p of u)d(p,m+1)};for(let a of i)d(a,0);return o}function At(t,e){return t===e?0:t===null?1:e===null?-1:t.localeCompare(e)}function Lt(t,e){return t===e?0:t===null?1:e===null?-1:h(t,e)}function It(t,e,n){switch(n){case"priority":return t.priority-e.priority;case"deadline":return Lt(t.deadline??null,e.deadline??null);case"updated_at":return h(t.updated_at,e.updated_at);case"created_at":return h(t.created_at,e.created_at);case"title":return(t.title??"").localeCompare(e.title??"");case"parent":return At(t.parent??null,e.parent??null);default:return 0}}function Ct(t,e,n,r){return e?[...t].sort((s,i)=>{let o=It(s,i,e);if(o!==0)return n==="desc"?-o:o;let l=Le(s,i,r);return n==="desc"?-l:l}):rt(t,r)}function Mt(t,e,n=!1){let r=S(e.trim());if(r.length===0)return null;let s=t;return n&&r==="title"&&typeof s.tree_title=="string"?s.tree_title:Object.prototype.hasOwnProperty.call(s,r)?s[r]??null:null}function ke(t,e,n=!1){return e.mode==="full"?t:t.map(r=>{let s={};for(let i of e.fields)s[i]=Mt(r,i,n);return s})}function kt(t){let e=[];for(let n of t)e.push(n.metadata_key);return e}function Rt(t,e){if(t.noTruncate!==!0)return L(t.limit)??(e>=1e4?20:void 0)}function Dt(t,e,n){return e.after===void 0?Ce(e.offset)??0:V(t,e.after,n,r=>r.id)}function Re(t,e,n){return{...t!==void 0?{applied_limit:t}:{},has_more:e,truncated:e,next_cursor:n??null}}async function Nt(t,e){let n=j(process.cwd(),e.path);if(!await D(B(n)))throw new f(`Tracker is not initialized at ${n}. Run pm init first.`,c.NOT_FOUND);let r=await X(n),s=G(r.schema),i=$(r.schema),o=at(t);return dt(o,kt(i.definitions)),{pmRoot:n,settings:r,statusRegistry:s,runtimeFieldFilters:Y(t,i,"list"),typeRegistry:v(r,U()),projection:o}}async function Ot(t,e,n){let r=e.projection.fields.some(d=>S(d)==="body"),s=e.projection.mode==="full"||e.projection.fields.some(d=>we.has(S(d))),i=Ke(t),o=ge(i),l=_e(i);return t.includeBody||r||l?await re(e.pmRoot,e.settings.item_format,e.typeRegistry.type_to_folder,n,e.settings.schema):s||o?await te(e.pmRoot,e.settings.item_format,e.typeRegistry.type_to_folder,n,e.settings.schema):await ne(e.pmRoot,e.settings.item_format,e.typeRegistry.type_to_folder,n,e.settings.schema)}function xt(t){let e=ut(t.sort),n=ct(t.order)??"asc",r=t.tree===!0;if(!r&&t.treeDepth!==void 0)throw new f("List --tree-depth requires --tree",c.USAGE);if(!e&&t.order!==void 0)throw new f("List --order requires --sort",c.USAGE);return{sortField:e,sortOrder:n,treeEnabled:r,treeDepth:r?ft(t.treeDepth):void 0,parentRoot:r?I(t.parent):void 0}}function vt(t,e,n){let r=Ee(e.status,n),s=r??Ee(t,n),i=H(e.status),o=r||i?{...e,excludeTerminal:!1}:e,l=i?"all":s===void 0?o.excludeTerminal===!0?null:"all":s.length===1?s[0]:s;return{resolvedStatus:s,explicitAllStatuses:i,effectiveOptions:o,filtersStatus:l}}function jt(t,e,n,r,s){if(e.after!==void 0&&e.offset!==void 0)throw new f("List --after cannot be combined with --offset.",c.USAGE);let i=Rt(e,t.length),o=Dt(t,e,s),l=i===void 0?t.slice(o):t.slice(o,o+i),d=ke(l,n,r),a=t.length,m=l.length>0&&o+l.length<a,u=m&&l.length>0?M(s,l[l.length-1].id,o+l.length-1):void 0;return{projected:d,totalMatched:a,pageExtras:Re(i,m,u)}}function De(t,e,n){return q("list",{status:t,options:z(e,se),sort:n.sortField??"default",order:n.sortOrder,tree:n.treeEnabled,tree_depth:n.treeDepth??null})}async function Bt(t){let{options:e,runtime:n,statusSelection:r,ordering:s}=t,i=new Set(["status","limit","offset","compact","brief","full","fields","format","stream","includeBody","excludeTerminal","noTruncate"]),o=[n.projection.mode==="full",n.projection.fields.some(K=>{let y=S(K);return y==="body"||we.has(y)})].includes(!0);if([e.limit===void 0,e.after!==void 0,e.noTruncate===!0,e.includeBody===!0,e.dependencyBlocked===!0,e.strictRead===!0,s.treeEnabled,s.sortField!==void 0,o,P(),Object.keys(n.runtimeFieldFilters).length>0,Object.entries(e).some(([K,y])=>y!==void 0&&!i.has(K))].includes(!0))return null;let d=await ee(n.pmRoot,[...new Set(Object.values(n.typeRegistry.type_to_folder))]);if(!d)return null;let a=L(e.limit),m=Ce(e.offset)??0,u=await J({pmRoot:n.pmRoot,expectedSourceCursor:d.source_cursor,query:{statuses:r.resolvedStatus,excludeStatuses:r.resolvedStatus===void 0&&r.effectiveOptions.excludeTerminal===!0?[...n.statusRegistry.terminal_statuses]:void 0,terminalStatuses:[...n.statusRegistry.terminal_statuses],limit:a,offset:m}});if(!u)return null;let p=u.items.length>0&&m+u.items.length<u.total,E=p?M(De(r.filtersStatus,e,s),u.items.at(-1).id,m+u.items.length-1):void 0;return{projected:ke(u.items,n.projection,!1),totalMatched:u.total,pageExtras:Re(a,p,E)}}function Ut(t){let{filtersStatus:e,options:n,noTruncate:r,treeEnabled:s,treeDepth:i,sortField:o,sortOrder:l,runtimeFieldFilters:d}=t,a={};e!==null&&(a.status=e),n.dependencyBlocked===!0&&(a.blocked_semantics="status_or_dependency");let m=n;for(let u of Ze){let p=m[u.optionKey];p!=null&&(a[u.summaryKey]=p)}for(let u of et)m[u.key]===!0&&(a[u.summaryKey]=!0);return Object.assign(a,Xe(n),Qe(n)),Ie(a,n),r&&(a.no_truncate=!0),s&&(a.tree=!0,i!==void 0&&(a.tree_depth=i)),o!==void 0&&(a.sort=o,a.order=l),a.runtime_filters=d,a}async function Ln(t,e,n){let r=await Nt(e,n),s=[],i=xt(e),o=vt(t,e,r.statusRegistry),l=e.noTruncate===!0,d=await Bt({options:e,runtime:r,statusSelection:o,ordering:i}),a=d;if(!a){let y=await Ot(e,r,s);yt(y,e.tag,s);let w=Kt(y,o.resolvedStatus,o.effectiveOptions,r.typeRegistry,r.statusRegistry,r.runtimeFieldFilters),Ne=e.dependencyBlocked===!0?(()=>{let xe=ie(y,r.statusRegistry);return w.filter(ve=>xe.has(ve.id.trim().toLowerCase()))})():w,R=Ct(Ne,i.sortField,i.sortOrder,r.statusRegistry),Oe=i.treeEnabled?Tt(R,i.parentRoot,i.treeDepth):R;a=jt(Oe,e,r.projection,i.treeEnabled,De(o.filtersStatus,e,i))}let m=O(),u=[...new Set(s)].sort((y,w)=>y.localeCompare(w)),p=qe(u,d!==null,e.strictRead===!0),E=r.projection.mode==="full"?null:[...r.projection.fields];if(r.projection.mode==="compact"&&e.compact===!0){let y=nt({filtersStatus:o.filtersStatus,options:e,treeEnabled:i.treeEnabled,treeDepth:i.treeDepth,sortField:i.sortField,sortOrder:i.sortOrder,runtimeFieldFilters:r.runtimeFieldFilters});return{items:a.projected,count:a.projected.length,total:a.totalMatched,...a.pageExtras,completeness:p,filters:y,projection:{mode:"compact",fields:E},...u.length>0?{warnings:u}:{}}}return{items:a.projected,count:a.projected.length,total:a.totalMatched,...a.pageExtras,completeness:p,filters:Ut({filtersStatus:o.filtersStatus,options:e,noTruncate:l,treeEnabled:i.treeEnabled,treeDepth:i.treeDepth,sortField:i.sortField,sortOrder:i.sortOrder,runtimeFieldFilters:r.runtimeFieldFilters}),projection:{mode:r.projection.mode,fields:E},sorting:{sort:i.sortField??"default",order:i.sortField?i.sortOrder:"asc"},now:m,...u.length>0?{warnings:u}:{}}}export{L as a,le as b,qt as c,k as d,b as e,ue as f,ce as g,ye as h,pe as i,Zt as j,Pe as k,Ke as l,be as m,Fe as n,Ge as o,$e as p,An as q,Ye as r,Qe as s,Xe as t,Ln as u};
2
+ //# sourceMappingURL=chunk-3KFVGGRE.js.map
@@ -1,4 +1,4 @@
1
- import{s as ut}from"./chunk-SSF4PIUR.js";import{a as rt,b as pe,c as me,d as it,e as st,f as j,g as _e,h as at,i as q}from"./chunk-M72BKL5Q.js";import{A as h,Af as b,Ba as et,C as y,Ca as tt,Cf as ct,Da as R,H as Xe,Hc as P,Ic as nt,If as lt,Jc as x,Kc as M,La as A,Lf as dt,Mf as ft,Nc as ue,O as Ve,Oa as ne,Of as Z,Pc as we,R as k,Sf as xe,Z as Qe,b as U,c as I,d as Y,da as Ie,ea as Ae,fa as Re,lc as v,mf as F,pf as ve,rf as ot,uc as D,v as Ze,xf as N,zd as C}from"./chunk-GE4KCSZP.js";import{mkdir as fn,readFile as un}from"node:fs/promises";import wt 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]="d49ec604-c10c-5706-9d87-510845e55e1a")}catch{}})();var Ce=class extends Error{constructor(t="Workspace transaction interrupted"){super(t),this.name="WorkspaceTransactionInterruptedError"}},pn="sdk-workspace-transaction",mn=/^[a-zA-Z0-9._-]+$/,hn=30,yn=3e3;function pt(e,t){if(typeof e!="string")throw new TypeError(`${t} must be a string`);let o=e.trim();if(!o||!mn.test(o))throw new TypeError(`${t} must match [a-zA-Z0-9._-]+`);return o}function mt(e,t){if(typeof e!="string")throw new TypeError(`${t} must be a string`);let o=e.trim();if(!o)throw new TypeError(`${t} must be non-empty`);return o}function ht(e,t,o){let n=e??t;if(!Number.isInteger(n)||n<=0)throw new TypeError(`${o} must be a positive integer`);return n}function _t(e,t){return wt.join(e,"transactions","sdk",`${t}.json`)}async function J(e,t){t.updatedAt=k();let o=_t(e,t.transactionId);await fn(wt.dirname(o),{recursive:!0}),await Y(o,`${JSON.stringify(t,null,2)}
1
+ import{s as ut}from"./chunk-SV3YQ4RY.js";import{a as rt,b as pe,c as me,d as it,e as st,f as j,g as _e,h as at,i as q}from"./chunk-UVVXHGYS.js";import{A as h,Af as b,Ba as et,C as y,Ca as tt,Cf as ct,Da as R,H as Xe,Hc as P,Ic as nt,If as lt,Jc as x,Kc as M,La as A,Lf as dt,Mf as ft,Nc as ue,O as Ve,Oa as ne,Of as Z,Pc as we,R as k,Sf as xe,Z as Qe,b as U,c as I,d as Y,da as Ie,ea as Ae,fa as Re,lc as v,mf as F,pf as ve,rf as ot,uc as D,v as Ze,xf as N,zd as C}from"./chunk-HS7OVAUN.js";import{mkdir as fn,readFile as un}from"node:fs/promises";import wt 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]="d49ec604-c10c-5706-9d87-510845e55e1a")}catch{}})();var Ce=class extends Error{constructor(t="Workspace transaction interrupted"){super(t),this.name="WorkspaceTransactionInterruptedError"}},pn="sdk-workspace-transaction",mn=/^[a-zA-Z0-9._-]+$/,hn=30,yn=3e3;function pt(e,t){if(typeof e!="string")throw new TypeError(`${t} must be a string`);let o=e.trim();if(!o||!mn.test(o))throw new TypeError(`${t} must match [a-zA-Z0-9._-]+`);return o}function mt(e,t){if(typeof e!="string")throw new TypeError(`${t} must be a string`);let o=e.trim();if(!o)throw new TypeError(`${t} must be non-empty`);return o}function ht(e,t,o){let n=e??t;if(!Number.isInteger(n)||n<=0)throw new TypeError(`${o} must be a positive integer`);return n}function _t(e,t){return wt.join(e,"transactions","sdk",`${t}.json`)}async function J(e,t){t.updatedAt=k();let o=_t(e,t.transactionId);await fn(wt.dirname(o),{recursive:!0}),await Y(o,`${JSON.stringify(t,null,2)}
2
2
  `)}function gn(e){return Number.isInteger(e.attempt)&&typeof e.author=="string"&&typeof e.createdAt=="string"&&typeof e.updatedAt=="string"}function X(e){return Object.assign(Object.create(null),e)}function wn(e,t){try{let o=JSON.stringify(e,(n,r)=>{if(typeof r=="number"&&!Number.isFinite(r))throw new TypeError(`${t} contains a non-finite number`);if(r===void 0||typeof r=="function"||typeof r=="symbol")throw new TypeError(`${t} contains a non-JSON value`);return r});return JSON.parse(o)}catch(o){throw new TypeError(`${t} must be JSON serializable`,{cause:o})}}function Fe(e,t){return e===void 0?void 0:wn(e,t)}function Pe(e,t,o,n){let r=Fe(o,n);r===void 0?delete e[t]:e[t]=r}function yt(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function gt(e,t){return Array.isArray(e)&&new Set(e).size===e.length&&e.every(o=>typeof o=="string"&&t.includes(o))}function _n(e,t){if(!gt(e.startedStepIds,t)||!gt(e.completedStepIds,t)||!yt(e.results)||!yt(e.compensationData))return!1;let o=e.startedStepIds,n=new Set(o),r=e.completedStepIds,i=new Set(r);return Object.keys(e.compensationData).some(s=>!n.has(s))||Object.keys(e.results).some(s=>!i.has(s))?!1:e.status==="committed"?t.every(s=>i.has(s)):e.status!=="compensated"||i.size===0&&n.size===0}function Sn(e,t,o){let n;try{n=JSON.parse(e)}catch{throw new TypeError(`Workspace transaction ${t} journal is invalid JSON`)}if(!n||typeof n!="object"||Array.isArray(n))throw new TypeError(`Workspace transaction ${t} journal is invalid`);let r=n,i=r.schemaVersion===1&&r.transactionId===t,s=Array.isArray(r.stepIds)&&r.stepIds.length===o.length&&r.stepIds.every((f,d)=>f===o[d]),a=_n(r,o),c=gn(r),l=["applying","compensating","compensated","committed"].includes(String(r.status));if(!i||!s||!a||!c||!l)throw new TypeError(`Workspace transaction ${t} journal does not match the supplied plan`);return{...r,results:X(r.results),compensationData:X(r.compensationData)}}async function kn(e,t,o,n,r){let i=r,s=i!==void 0;if(i?.status==="compensating"&&await St(e,i),i===void 0||i.status==="compensated"){let a=k();i={schemaVersion:1,transactionId:t,author:o,status:"applying",attempt:(i?.attempt??0)+1,createdAt:i?.createdAt??a,updatedAt:a,stepIds:n,startedStepIds:[],completedStepIds:[],results:X(),compensationData:X()},await J(e.pmRoot,i),await z(e,i,"prepared")}return{journal:i,recovered:s}}async function bn(e,t,o){try{await Tn(t,e.steps),await J(e.pmRoot,t);let n=new Set(t.completedStepIds),r=new Set(t.startedStepIds);for(let i of e.steps){if(n.has(i.id))continue;let s=await i.inspect(),a=Fe(s.result,`Step ${i.id} result`);if(s.state!=="applied"){let c=await i.prepareCompensation?.();Pe(t.compensationData,i.id,c,`Step ${i.id} compensation data`),r.add(i.id),t.startedStepIds=e.steps.map(f=>f.id).filter(f=>r.has(f)),await J(e.pmRoot,t);let l=await i.apply();a=Fe(l,`Step ${i.id} result`)}await z(e,t,"step_applied",i.id),n.add(i.id),t.completedStepIds=e.steps.map(c=>c.id).filter(c=>n.has(c)),Pe(t.results,i.id,a,`Step ${i.id} result`),await J(e.pmRoot,t),await z(e,t,"step_recorded",i.id)}return await z(e,t,"committing"),t.status="committed",await J(e.pmRoot,t),await z(e,t,"committed"),{transactionId:t.transactionId,status:"committed",recovered:o,results:X(t.results)}}catch(n){if(n instanceof Ce||t.status==="committed")throw n;try{await St(e,t)}catch(r){throw new AggregateError([n,r],`Workspace transaction failed and compensation failed: ${String(r)}`,{cause:r})}throw n}}async function En(e,t,o){try{return Sn(await un(_t(e,t),"utf8"),t,o)}catch(n){if(n!==null&&typeof n=="object"&&"code"in n&&n.code==="ENOENT")return;throw n}}async function z(e,t,o,n){await e.onTransition?.({transactionId:t.transactionId,attempt:t.attempt,transition:o,...n===void 0?{}:{stepId:n}})}async function Tn(e,t){let o=new Set,n=X();for(let r of t){let i=await r.inspect();i.state==="applied"&&(o.add(r.id),Pe(n,r.id,i.result,`Step ${r.id} result`))}e.results=n,e.completedStepIds=t.map(r=>r.id).filter(r=>o.has(r))}async function St(e,t){t.status="compensating",await J(e.pmRoot,t),await z(e,t,"compensating");let o=new Set(t.completedStepIds),n=new Set(t.startedStepIds);for(let r of[...e.steps].reverse()){if(!n.has(r.id)&&!o.has(r.id))continue;let i;try{i=n.has(r.id)&&(await r.inspect()).state==="applied"}catch{i=n.has(r.id)}i&&(await z(e,t,"step_compensating",r.id),await r.compensate(t.compensationData[r.id])),o.delete(r.id),n.delete(r.id),t.completedStepIds=e.steps.map(s=>s.id).filter(s=>o.has(s)),t.startedStepIds=e.steps.map(s=>s.id).filter(s=>n.has(s)),delete t.results[r.id],delete t.compensationData[r.id],await J(e.pmRoot,t),await z(e,t,"step_compensated",r.id)}t.status="compensated",await J(e.pmRoot,t),await z(e,t,"compensated")}async function kt(e){let t=mt(e.pmRoot,"Transaction pmRoot"),o=pt(e.transactionId,"Transaction id"),n=mt(e.author,"Transaction author"),r=ht(e.lockTtlSeconds,hn,"Transaction lock TTL"),i=ht(e.lockWaitMs,yn,"Transaction lock wait"),s=[...e.steps];if(s.length===0)throw new TypeError("Workspace transaction requires at least one step");let a=s.map(f=>{let d=pt(f.id,"Transaction step id");if(d!==f.id)throw new TypeError("Transaction step id must not contain surrounding whitespace");return d});if(new Set(a).size!==a.length)throw new TypeError("Workspace transaction step ids must be unique");let c={...e,pmRoot:t,transactionId:o,author:n,steps:s,lockTtlSeconds:r,lockWaitMs:i},l=await F(t,pn,r,n,!1,!1,i);try{let f=await En(t,o,a),d=f!==void 0;if(f?.status==="committed")return{transactionId:o,status:"committed",recovered:!0,results:X(f.results)};let g=await kn(c,o,n,a,f);return await bn(c,g.journal,d||g.recovered)}finally{await l()}}import{readFile as $n,writeFile as In}from"node:fs/promises";import he 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]="bbfa5b19-d801-582a-98e8-0c4925dd57c0")}catch{}})();var Et="# pm-cli:runtime-cache:start",Oe="# pm-cli:runtime-cache:end",Tt=".agents/pm",An=["runtime/","search/","locks/","transactions/","checkpoints/"],Rn=["search/eval-queries.json"];async function bt(e){try{return await e()}catch(t){throw t instanceof Error&&"code"in t&&typeof t.code=="string"&&["EACCES","EPERM","EROFS"].includes(t.code)?new y("The workspace .gitignore is not writable.",h.GENERIC_FAILURE,{code:"init_gitignore_unwritable",reason:t.code.toLowerCase(),required:"Grant the current user read and write access to the workspace .gitignore before initialization.",why:"pm init must publish its managed runtime-cache ignore fence without replacing unrelated entries.",nextSteps:["Grant read and write access to the workspace .gitignore and rerun pm init.","If the workspace is intentionally read-only, initialize pm in a writable workspace or clone."]}):t}}function $t(e){return e.replaceAll("\\","/").replace(/^\.\/+/,"").replace(/\/+$/,"")}function Ne(e){let t=e.replaceAll("\\","/");return he.isAbsolute(e)||t===".."||t.startsWith("../")}function vn(e=Tt){let t=$t(e);return[Et,...An.map(o=>o==="search/"?`${t}/${o}*`:`${t}/${o}`),...Rn.map(o=>`!${t}/${o}`),Oe].join(`
3
3
  `)}async function Yo(e,t={}){let o=he.join(e,".gitignore"),n=Tt;if(t.pmRoot!==void 0){let f=$t(he.relative(he.resolve(e),he.resolve(t.pmRoot)));if(Ne(f))return{path:o,changed:!1};f.length>0&&(n=f)}let r="";try{r=await bt(()=>$n(o,"utf8"))}catch(f){if(!(f instanceof Error&&"code"in f&&f.code==="ENOENT"))throw f}let i=r.indexOf(Et),s=r.indexOf(Oe),c=(i>=0&&s>=i?`${r.slice(0,i)}${r.slice(s+Oe.length)}`:r).trimEnd(),l=`${c.length>0?`${c}
4
4
 
@@ -20,4 +20,4 @@ import{s as ut}from"./chunk-SSF4PIUR.js";import{a as rt,b as pe,c as me,d as it,
20
20
  `)}function zi(e){let t=e.field,o=[`field: ${t.key}`,`type: ${t.type}`,`cli_flag: ${t.cli_flag}`,`commands: ${t.commands.join(", ")}`];return t.cli_aliases.length>0&&o.push(`cli_aliases: ${t.cli_aliases.join(", ")}`),t.description&&o.push(`description: ${t.description}`),t.required&&o.push("required: true"),t.required_on_create&&o.push("required_on_create: true"),t.allow_unset||o.push("allow_unset: false"),t.required_types.length>0&&o.push(`required_types: ${t.required_types.join(", ")}`),o.join(`
21
21
  `)}function Gi(e){let t=e.registered.length>0?`registered: ${e.registered.join(", ")}`:"",o=e.replaced.length>0?`updated: ${e.replaced.join(", ")}`:"",n=[t,o].filter(r=>r.length>0).join("; ");return`Applied "${e.preset}" type preset to ${e.file.path}${n.length>0?` (${n})`:""}.`}function qi(e){if(e.candidates.length===0)return`No title-prefix conventions found with at least ${e.min_count} items. Lower the threshold with --min-count <n>.`;let t=e.applied?[`Inferred and registered custom types from title prefixes (min-count ${e.min_count}):`]:[`Inferred custom type candidates from title prefixes (min-count ${e.min_count}, dry-run):`];for(let o of e.candidates){let n=o.shadows_builtin?" [shadows built-in, skipped]":"";t.push(` ${o.name} <- "${o.prefix}" (${o.count} items)${n}`)}return e.applied?(e.registered.length>0&&t.push(`registered: ${e.registered.join(", ")}`),e.replaced.length>0&&t.push(`updated: ${e.replaced.join(", ")}`)):t.push("Re-run with --apply to register the non-shadowing candidates."),t.join(`
22
22
  `)}var Ji={workflowSlotsReferencing:sn};export{Ce as a,kt as b,Et as c,Oe as d,An as e,vn as f,Yo as g,V as h,ye as i,On as j,Ue as k,Ft as l,ur as m,pr as n,Pt as o,mr as p,Ln as q,Gt as r,ie as s,se as t,qt as u,Ut as v,oe as w,re as x,jt as y,Je as z,bo as A,en as B,He as C,Yt as D,Qt as E,So as F,ko as G,gi as H,wi as I,_i as J,Ke as K,Si as L,ki as M,bi as N,Ei as O,Ti as P,$i as Q,Ii as R,Ai as S,Ri as T,vi as U,xi as V,Ci as W,Fi as X,Pi as Y,Oi as Z,Ni as _,Li as $,Di as aa,Mi as ba,Ui as ca,ji as da,zi as ea,Gi as fa,qi as ga,Ji as ha};
23
- //# sourceMappingURL=chunk-VCKLFEUN.js.map
23
+ //# sourceMappingURL=chunk-3ZJRFYY2.js.map
@@ -1,2 +1,2 @@
1
- import{h as _,l as Q,m as Y,o as ee,p as te}from"./chunk-4VN6GS4U.js";import{A as m,Af as D,C as h,Da as P,Df as G,If as V,La as T,Lf as H,Ma as $,Mf as X,Nf as B,Oa as L,Sf as J,Y as E,b as I,lc as z,xc as W,zd as Z}from"./chunk-GE4KCSZP.js";import oe from"node:fs/promises";import p 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]="5e45d0f1-a1a7-50ea-a9a3-ec6283d3471d")}catch{}})();var ne=32768;function b(e){return _(p.normalize(e))}async function v(e){try{return await oe.realpath(e)}catch{return p.resolve(e)}}function g(e,t){let c=p.isAbsolute(e.path)?p.resolve(e.path):p.resolve(t,e.path);return`${b(c)}::${e.scope}`}function R(e,t,c){if(typeof e=="string"){let n=e.trim();n.length>0&&c.push({field:t,value:n});return}if(Array.isArray(e)){e.forEach((n,s)=>R(n,`${t}[${s}]`,c));return}if(typeof e=="object"&&e!==null)for(let[n,s]of Object.entries(e))R(s,t?`${t}.${n}`:n,c)}function se(e){let t=[];return R(e.metadata,"metadata",t),R(e.body,"body",t),t}function ae(e){let t=e.trim();return t=t.replace(/^[`"'<([{]+/u,""),t=t.replace(/[`"'>)\]},;!?]+$/u,""),t=t.replace(/[.]+$/u,""),t=t.replace(/:(?:\d+)(?::\d+)?$/u,""),t=t.replace(/[.]+$/u,""),t}function ie(e){let t=[],c=/(?:[A-Za-z]:[\\/]|\/)[^\s"'`<>()[\]{},;]+/gu,n=/(?:\.{1,2}[\\/])?(?:(?:[A-Za-z0-9_.@-]+[\\/])+[A-Za-z0-9_.@-]+|[A-Za-z0-9_.@-]+\.[A-Za-z0-9][A-Za-z0-9._-]*)/gu;for(let s of e){let l=new Set,a=s.value.slice(0,ne);for(let[i,r]of[[c,s.value],[n,a]]){i.lastIndex=0;for(let o of r.matchAll(i)){let d=ae(o[0]);!d||l.has(d)||(l.add(d),t.push({field:s.field,value:d}))}}}return t}async function re(e,t,c=t){let n=p.isAbsolute(e)?p.resolve(e):p.resolve(c,e),s;try{s=await oe.stat(n)}catch{return}if(!s.isFile())return;let[l,a]=await Promise.all([v(t),v(n)]);if(E(l,a)){let i=p.relative(l,a);return!i||i.startsWith("..")||p.isAbsolute(i)?void 0:{path:b(i),scope:"project"}}return{path:b(n),scope:"global"}}async function ce(e,t,c=t){let n=new Set((e.metadata.files??[]).map(r=>g(r,t))),s=new Map,l=ie(se(e)),a=new Map;await Promise.all([...new Set(l.map(r=>r.value))].map(async r=>{a.set(r,await re(r,t,c))}));let i=l.map(r=>({reference:r,resolved:a.get(r.value)}));for(let{reference:r,resolved:o}of i){if(!o)continue;let d=g(o,t),f=s.get(d)??{path:o.path,scope:o.scope,sourceFields:new Set,originalPaths:new Set,sourceCount:0};f.sourceFields.add(r.field),f.originalPaths.add(r.value),f.sourceCount+=1,s.set(d,f)}return[...s.entries()].map(([r,o])=>({path:o.path,scope:o.scope,status:n.has(r)?"already_linked":"addable",source_count:o.sourceCount,source_fields:[...o.sourceFields].sort((d,f)=>d.localeCompare(f)),original_paths:[...o.originalPaths].sort((d,f)=>d.localeCompare(f))})).sort((r,o)=>{let d=r.status.localeCompare(o.status);if(d!==0)return d;let f=r.path.localeCompare(o.path);return f!==0?f:r.scope.localeCompare(o.scope)})}var $e={relativeReferenceScanMaxChars:ne,normalizeCandidatePathForOutput:b,realpathForContainment:v,linkedFileResolvedKey:g,collectTextReferences:R,collectItemTextReferences:se,cleanupPathToken:ae,extractRawPathReferences:ie,resolveDiscoveredFile:re,discoverReferencedFiles:ce};async function Le(e,t,c){let n=await ee(e,t,c,{metadataKey:"files",op:"files_add",bareNoun:"file",supportsAppendStable:!0});return te(n,"files")}async function me(e,t){let c=await v(t),n=await Promise.all(e.map(async l=>{let a=l.trim();if(!a)throw new h("Files lookup paths must not be empty.",m.USAGE);if(!p.isAbsolute(a))return _(a);let i=await v(a);return E(c,i)?_(p.relative(c,i)):_(i)})),s=[...new Set(n)].sort((l,a)=>l.localeCompare(a));if(s.length===0)throw new h("Files lookup requires at least one path.",m.USAGE);return s}function he(e){for(let[n,s]of[["limit",e.limit],["offset",e.offset]])if(s!==void 0&&(!Number.isInteger(s)||s<0))throw new h(`Files lookup ${n} must be a non-negative integer.`,m.USAGE);let{offset:t=0,limit:c=50}=e;return{offset:Math.max(0,Math.floor(t)),limit:e.noTruncate?void 0:Math.max(0,Math.floor(c))}}function le(e){return{id:e.id,title:e.title,type:e.type,status:e.status,priority:e.priority,updated_at:e.updated_at}}async function ge(e){if([e.strictRead,e.noTruncate,W()].includes(!0))return null;let t=await V(e.pmRoot,[...new Set(Object.values(e.typeToFolder))]);return t?G({pmRoot:e.pmRoot,expectedSourceCursor:t.source_cursor,paths:e.paths,scope:e.scope,limit:e.limit,offset:e.offset}):null}async function ye(e){let t=[],n=(await B(e.pmRoot,e.settings.item_format,e.typeToFolder,t,e.settings.schema)).map(a=>({item:a,files:(a.files??[]).filter(i=>e.paths.includes(_(i.path))&&(e.scope===void 0||i.scope===e.scope)).sort((i,r)=>{let o=i.path.localeCompare(r.path);return o===0?i.scope.localeCompare(r.scope):o})})).filter(a=>a.files.length>0).sort((a,i)=>{let r=a.item.priority-i.item.priority;if(r!==0)return r;let o=i.item.updated_at.localeCompare(a.item.updated_at);return o===0?a.item.id.localeCompare(i.item.id):o}),s=t.filter(a=>/^item_list_(?:item|directory)_read_failed:/u.test(a));if(e.strictRead&&s.length>0)throw new h(`Files lookup could not read every item: ${s.join("; ")}`,m.GENERIC_FAILURE);let l=n.slice(e.offset,e.limit===void 0?void 0:e.offset+e.limit);return{paths:e.paths,total:n.length,count:l.length,offset:e.offset,limit:e.limit??null,has_more:e.offset+l.length<n.length,truncated:e.offset+l.length<n.length,completeness:{status:s.length===0?"complete":"partial",source:"source_scan"},warnings:t,matches:l.map(a=>({item:le(a.item),files:a.files}))}}async function ze(e,t){let c=T(process.cwd(),t.path),n=$(c);if(!await I(L(c)))throw new h(`Tracker is not initialized at ${c}. Run pm init first.`,m.NOT_FOUND);let s=await me(e.paths,n),l=await D(c),a=P(l,z()),{offset:i,limit:r}=he(e),o=await ge({pmRoot:c,typeToFolder:a.type_to_folder,paths:s,scope:e.scope,limit:r,offset:i,strictRead:e.strictRead===!0,noTruncate:e.noTruncate===!0});return o?{paths:s,total:o.total,count:o.matches.length,offset:i,limit:r,has_more:i+o.matches.length<o.total,truncated:i+o.matches.length<o.total,completeness:{status:"unchecked",source:"index"},warnings:[],matches:o.matches.map(d=>({item:le(d.item),files:d.files}))}:ye({pmRoot:c,settings:l,typeToFolder:a.type_to_folder,paths:s,scope:e.scope,limit:r,offset:i,strictRead:e.strictRead===!0})}async function De(e,t,c){let n=T(process.cwd(),c.path),s=$(n);if(!await I(L(n)))throw new h(`Tracker is not initialized at ${n}. Run pm init first.`,m.NOT_FOUND);let l=await D(n),a=P(l,z()),i=await H(n,e,l.id_prefix,l.item_format,a.type_to_folder);if(!i)throw new h(`Item ${e} not found`,m.NOT_FOUND);let r=await X(i,{schema:l.schema}),o=await ce(r.document,s,process.cwd()),d=o.filter(u=>u.status==="addable"),f=o.filter(u=>u.status==="already_linked"),O=t.apply===!0,de=t.note?.trim()||"discovered from item text";if(!O||d.length===0){let u=r.document.metadata.files??[];return{id:i.id,files:u,changed:!1,apply:O,count:u.length,candidate_count:o.length,addable_count:d.length,added_count:0,skipped_existing_count:f.length,candidates:o,added:[],skipped_existing:f}}let ue=Z(t.author,l.author_default),A=d.map(u=>({path:u.path,scope:u.scope,note:de})),y=[],x=new Set,M=await J({pmRoot:n,settings:l,id:e,op:"files_discover",author:ue,message:t.message??"Discover referenced file links",force:t.force,mutate(u){let w=[...u.metadata.files??[]],U=new Set(w.map(S=>g(S,s)));y=[],x.clear();for(let[S,C]of A.entries()){let q=g(C,s);U.has(q)||(w.push(C),U.add(q),y.push(C),x.add(S))}let j=Y(w),K=t.appendStable?j:Q(j);return K.length>0?u.metadata.files=K:delete u.metadata.files,{changedFields:y.length>0?["files"]:[],warnings:y.length!==A.length?[`files_discover_skipped_existing:${A.length-y.length}`]:[]}}}),k=M.item.files??[],fe=new Set(y.map(u=>g(u,s))),F=k.filter(u=>fe.has(g(u,s))),pe=d.filter((u,w)=>!x.has(w)),N=[...f,...pe];return{id:M.item.id,files:k,changed:F.length>0,apply:!0,count:k.length,candidate_count:o.length,addable_count:d.length,added_count:F.length,skipped_existing_count:N.length,candidates:o,added:F,skipped_existing:N}}export{$e as a,Le as b,ze as c,De as d};
2
- //# sourceMappingURL=chunk-UZBWIUYD.js.map
1
+ import{h as _,l as Q,m as Y,o as ee,p as te}from"./chunk-DQGJ2RWT.js";import{A as m,Af as D,C as h,Da as P,Df as G,If as V,La as T,Lf as H,Ma as $,Mf as X,Nf as B,Oa as L,Sf as J,Y as E,b as I,lc as z,xc as W,zd as Z}from"./chunk-HS7OVAUN.js";import oe from"node:fs/promises";import p 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]="5e45d0f1-a1a7-50ea-a9a3-ec6283d3471d")}catch{}})();var ne=32768;function b(e){return _(p.normalize(e))}async function v(e){try{return await oe.realpath(e)}catch{return p.resolve(e)}}function g(e,t){let c=p.isAbsolute(e.path)?p.resolve(e.path):p.resolve(t,e.path);return`${b(c)}::${e.scope}`}function R(e,t,c){if(typeof e=="string"){let n=e.trim();n.length>0&&c.push({field:t,value:n});return}if(Array.isArray(e)){e.forEach((n,s)=>R(n,`${t}[${s}]`,c));return}if(typeof e=="object"&&e!==null)for(let[n,s]of Object.entries(e))R(s,t?`${t}.${n}`:n,c)}function se(e){let t=[];return R(e.metadata,"metadata",t),R(e.body,"body",t),t}function ae(e){let t=e.trim();return t=t.replace(/^[`"'<([{]+/u,""),t=t.replace(/[`"'>)\]},;!?]+$/u,""),t=t.replace(/[.]+$/u,""),t=t.replace(/:(?:\d+)(?::\d+)?$/u,""),t=t.replace(/[.]+$/u,""),t}function ie(e){let t=[],c=/(?:[A-Za-z]:[\\/]|\/)[^\s"'`<>()[\]{},;]+/gu,n=/(?:\.{1,2}[\\/])?(?:(?:[A-Za-z0-9_.@-]+[\\/])+[A-Za-z0-9_.@-]+|[A-Za-z0-9_.@-]+\.[A-Za-z0-9][A-Za-z0-9._-]*)/gu;for(let s of e){let l=new Set,a=s.value.slice(0,ne);for(let[i,r]of[[c,s.value],[n,a]]){i.lastIndex=0;for(let o of r.matchAll(i)){let d=ae(o[0]);!d||l.has(d)||(l.add(d),t.push({field:s.field,value:d}))}}}return t}async function re(e,t,c=t){let n=p.isAbsolute(e)?p.resolve(e):p.resolve(c,e),s;try{s=await oe.stat(n)}catch{return}if(!s.isFile())return;let[l,a]=await Promise.all([v(t),v(n)]);if(E(l,a)){let i=p.relative(l,a);return!i||i.startsWith("..")||p.isAbsolute(i)?void 0:{path:b(i),scope:"project"}}return{path:b(n),scope:"global"}}async function ce(e,t,c=t){let n=new Set((e.metadata.files??[]).map(r=>g(r,t))),s=new Map,l=ie(se(e)),a=new Map;await Promise.all([...new Set(l.map(r=>r.value))].map(async r=>{a.set(r,await re(r,t,c))}));let i=l.map(r=>({reference:r,resolved:a.get(r.value)}));for(let{reference:r,resolved:o}of i){if(!o)continue;let d=g(o,t),f=s.get(d)??{path:o.path,scope:o.scope,sourceFields:new Set,originalPaths:new Set,sourceCount:0};f.sourceFields.add(r.field),f.originalPaths.add(r.value),f.sourceCount+=1,s.set(d,f)}return[...s.entries()].map(([r,o])=>({path:o.path,scope:o.scope,status:n.has(r)?"already_linked":"addable",source_count:o.sourceCount,source_fields:[...o.sourceFields].sort((d,f)=>d.localeCompare(f)),original_paths:[...o.originalPaths].sort((d,f)=>d.localeCompare(f))})).sort((r,o)=>{let d=r.status.localeCompare(o.status);if(d!==0)return d;let f=r.path.localeCompare(o.path);return f!==0?f:r.scope.localeCompare(o.scope)})}var $e={relativeReferenceScanMaxChars:ne,normalizeCandidatePathForOutput:b,realpathForContainment:v,linkedFileResolvedKey:g,collectTextReferences:R,collectItemTextReferences:se,cleanupPathToken:ae,extractRawPathReferences:ie,resolveDiscoveredFile:re,discoverReferencedFiles:ce};async function Le(e,t,c){let n=await ee(e,t,c,{metadataKey:"files",op:"files_add",bareNoun:"file",supportsAppendStable:!0});return te(n,"files")}async function me(e,t){let c=await v(t),n=await Promise.all(e.map(async l=>{let a=l.trim();if(!a)throw new h("Files lookup paths must not be empty.",m.USAGE);if(!p.isAbsolute(a))return _(a);let i=await v(a);return E(c,i)?_(p.relative(c,i)):_(i)})),s=[...new Set(n)].sort((l,a)=>l.localeCompare(a));if(s.length===0)throw new h("Files lookup requires at least one path.",m.USAGE);return s}function he(e){for(let[n,s]of[["limit",e.limit],["offset",e.offset]])if(s!==void 0&&(!Number.isInteger(s)||s<0))throw new h(`Files lookup ${n} must be a non-negative integer.`,m.USAGE);let{offset:t=0,limit:c=50}=e;return{offset:Math.max(0,Math.floor(t)),limit:e.noTruncate?void 0:Math.max(0,Math.floor(c))}}function le(e){return{id:e.id,title:e.title,type:e.type,status:e.status,priority:e.priority,updated_at:e.updated_at}}async function ge(e){if([e.strictRead,e.noTruncate,W()].includes(!0))return null;let t=await V(e.pmRoot,[...new Set(Object.values(e.typeToFolder))]);return t?G({pmRoot:e.pmRoot,expectedSourceCursor:t.source_cursor,paths:e.paths,scope:e.scope,limit:e.limit,offset:e.offset}):null}async function ye(e){let t=[],n=(await B(e.pmRoot,e.settings.item_format,e.typeToFolder,t,e.settings.schema)).map(a=>({item:a,files:(a.files??[]).filter(i=>e.paths.includes(_(i.path))&&(e.scope===void 0||i.scope===e.scope)).sort((i,r)=>{let o=i.path.localeCompare(r.path);return o===0?i.scope.localeCompare(r.scope):o})})).filter(a=>a.files.length>0).sort((a,i)=>{let r=a.item.priority-i.item.priority;if(r!==0)return r;let o=i.item.updated_at.localeCompare(a.item.updated_at);return o===0?a.item.id.localeCompare(i.item.id):o}),s=t.filter(a=>/^item_list_(?:item|directory)_read_failed:/u.test(a));if(e.strictRead&&s.length>0)throw new h(`Files lookup could not read every item: ${s.join("; ")}`,m.GENERIC_FAILURE);let l=n.slice(e.offset,e.limit===void 0?void 0:e.offset+e.limit);return{paths:e.paths,total:n.length,count:l.length,offset:e.offset,limit:e.limit??null,has_more:e.offset+l.length<n.length,truncated:e.offset+l.length<n.length,completeness:{status:s.length===0?"complete":"partial",source:"source_scan"},warnings:t,matches:l.map(a=>({item:le(a.item),files:a.files}))}}async function ze(e,t){let c=T(process.cwd(),t.path),n=$(c);if(!await I(L(c)))throw new h(`Tracker is not initialized at ${c}. Run pm init first.`,m.NOT_FOUND);let s=await me(e.paths,n),l=await D(c),a=P(l,z()),{offset:i,limit:r}=he(e),o=await ge({pmRoot:c,typeToFolder:a.type_to_folder,paths:s,scope:e.scope,limit:r,offset:i,strictRead:e.strictRead===!0,noTruncate:e.noTruncate===!0});return o?{paths:s,total:o.total,count:o.matches.length,offset:i,limit:r,has_more:i+o.matches.length<o.total,truncated:i+o.matches.length<o.total,completeness:{status:"unchecked",source:"index"},warnings:[],matches:o.matches.map(d=>({item:le(d.item),files:d.files}))}:ye({pmRoot:c,settings:l,typeToFolder:a.type_to_folder,paths:s,scope:e.scope,limit:r,offset:i,strictRead:e.strictRead===!0})}async function De(e,t,c){let n=T(process.cwd(),c.path),s=$(n);if(!await I(L(n)))throw new h(`Tracker is not initialized at ${n}. Run pm init first.`,m.NOT_FOUND);let l=await D(n),a=P(l,z()),i=await H(n,e,l.id_prefix,l.item_format,a.type_to_folder);if(!i)throw new h(`Item ${e} not found`,m.NOT_FOUND);let r=await X(i,{schema:l.schema}),o=await ce(r.document,s,process.cwd()),d=o.filter(u=>u.status==="addable"),f=o.filter(u=>u.status==="already_linked"),O=t.apply===!0,de=t.note?.trim()||"discovered from item text";if(!O||d.length===0){let u=r.document.metadata.files??[];return{id:i.id,files:u,changed:!1,apply:O,count:u.length,candidate_count:o.length,addable_count:d.length,added_count:0,skipped_existing_count:f.length,candidates:o,added:[],skipped_existing:f}}let ue=Z(t.author,l.author_default),A=d.map(u=>({path:u.path,scope:u.scope,note:de})),y=[],x=new Set,M=await J({pmRoot:n,settings:l,id:e,op:"files_discover",author:ue,message:t.message??"Discover referenced file links",force:t.force,mutate(u){let w=[...u.metadata.files??[]],U=new Set(w.map(S=>g(S,s)));y=[],x.clear();for(let[S,C]of A.entries()){let q=g(C,s);U.has(q)||(w.push(C),U.add(q),y.push(C),x.add(S))}let j=Y(w),K=t.appendStable?j:Q(j);return K.length>0?u.metadata.files=K:delete u.metadata.files,{changedFields:y.length>0?["files"]:[],warnings:y.length!==A.length?[`files_discover_skipped_existing:${A.length-y.length}`]:[]}}}),k=M.item.files??[],fe=new Set(y.map(u=>g(u,s))),F=k.filter(u=>fe.has(g(u,s))),pe=d.filter((u,w)=>!x.has(w)),N=[...f,...pe];return{id:M.item.id,files:k,changed:F.length>0,apply:!0,count:k.length,candidate_count:o.length,addable_count:d.length,added_count:F.length,skipped_existing_count:N.length,candidates:o,added:F,skipped_existing:N}}export{$e as a,Le as b,ze as c,De as d};
2
+ //# sourceMappingURL=chunk-4AVFKHHC.js.map
@@ -1,2 +1,2 @@
1
- import{af as g,gf as y}from"./chunk-GE4KCSZP.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]="19ff592c-0746-54e8-a304-2006f4845da2")}catch{}})();function b(t){return t.replaceAll("~1","/").replaceAll("~0","~")}function w(t){if(t==="/body"||t.startsWith("/body/"))return"body";if(t==="/metadata"||t.startsWith("/metadata/")||t==="/front_matter"||t.startsWith("/front_matter/")){let r=t.replace(/^\/(?:metadata|front_matter)\/?/,"").split("/")[0];return r?b(r):"metadata"}let e=t.replace(/^\//,"").split("/")[0];return e?b(e):"root"}function i(t,e){return e==="body"?t.body:e==="metadata"?t.metadata:e==="root"?t:t.metadata[e]}function D(t,e){let r=e?.windowStartIndex??0,a=e?.field;if(t.length===0||r>=t.length)return[];let l=g(),u=[];for(let d=0;d<t.length;d+=1){let n=t[d],p=l,h=y(l,n.patch),s;h.ok?(s=h.document,l=s):s=p;let f=new Set;for(let o of n.patch)f.add(w(o.path)),o.from!==void 0&&f.add(w(o.from));let m=[...f].sort((o,c)=>o.localeCompare(c));if(d>=r)if(a!==void 0){if(!f.has(a))continue;let o={field:a,before:i(p,a),after:i(s,a)};u.push({index:d+1,ts:n.ts,op:n.op,author:n.author,patch_ops:n.patch.length,changed_fields:[a],changes:[o]})}else{let o=m.map(c=>({field:c,before:i(p,c),after:i(s,c)}));u.push({index:d+1,ts:n.ts,op:n.op,author:n.author,patch_ops:n.patch.length,changed_fields:m,changes:o})}}return u}export{w as a,D as b};
2
- //# sourceMappingURL=chunk-BPELKUQD.js.map
1
+ import{af as g,gf as y}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]="19ff592c-0746-54e8-a304-2006f4845da2")}catch{}})();function b(t){return t.replaceAll("~1","/").replaceAll("~0","~")}function w(t){if(t==="/body"||t.startsWith("/body/"))return"body";if(t==="/metadata"||t.startsWith("/metadata/")||t==="/front_matter"||t.startsWith("/front_matter/")){let r=t.replace(/^\/(?:metadata|front_matter)\/?/,"").split("/")[0];return r?b(r):"metadata"}let e=t.replace(/^\//,"").split("/")[0];return e?b(e):"root"}function i(t,e){return e==="body"?t.body:e==="metadata"?t.metadata:e==="root"?t:t.metadata[e]}function D(t,e){let r=e?.windowStartIndex??0,a=e?.field;if(t.length===0||r>=t.length)return[];let l=g(),u=[];for(let d=0;d<t.length;d+=1){let n=t[d],p=l,h=y(l,n.patch),s;h.ok?(s=h.document,l=s):s=p;let f=new Set;for(let o of n.patch)f.add(w(o.path)),o.from!==void 0&&f.add(w(o.from));let m=[...f].sort((o,c)=>o.localeCompare(c));if(d>=r)if(a!==void 0){if(!f.has(a))continue;let o={field:a,before:i(p,a),after:i(s,a)};u.push({index:d+1,ts:n.ts,op:n.op,author:n.author,patch_ops:n.patch.length,changed_fields:[a],changes:[o]})}else{let o=m.map(c=>({field:c,before:i(p,c),after:i(s,c)}));u.push({index:d+1,ts:n.ts,op:n.op,author:n.author,patch_ops:n.patch.length,changed_fields:m,changes:o})}}return u}export{w as a,D as b};
2
+ //# sourceMappingURL=chunk-4OVGQW22.js.map
@@ -1,2 +1,2 @@
1
- import{a as T}from"./chunk-5ZBOIPGP.js";import{f as F,i as I}from"./chunk-42E7YPLG.js";import{A as s,Af as N,C as o,Da as _,La as g,Lf as O,Mf as k,Oa as U,R as E,Sf as x,b as K,lc as C,zd as G}from"./chunk-GE4KCSZP.js";import{readFile as 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:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="eeb7b433-094b-5c4f-bc81-d4988ac297b4")}catch{}})();function P(e,n){if(typeof e=="object"&&e!==null&&"format"in e&&e.format==="json")throw new o(`Structured context events are append-only and cannot be ${n}.`,s.USAGE,{code:"structured_event_immutable"})}function V(e,n){return n===void 0?e:n===0?[]:e.slice(Math.max(0,e.length-n))}function p(e,n){let r=e[n];return Array.isArray(r)?r:[]}function se(e,n={}){let r=e.trim();if(!r)return"";let t=/^(?:[-*+]\s*)?text\s*[:=]/i.exec(r);if(n.stripPlainTextPrefix===!0&&t&&!r.startsWith("```"))return r.slice(t[0].length).trim()||r;if(!(/^(?:[-*+]\s*)?text\s*[:=]/im.test(r)||r.startsWith("```")))return r;try{let i=F(r,"--add");return Object.keys(i).map(m=>m.trim().toLowerCase()).some(m=>m!=="text")?r:i.text?.trim()||r}catch{return r}}function j(e){return typeof e=="object"&&e!==null&&"code"in e}async function H(e,n){if(+(e.add!==void 0)+ +(e.stdin===!0)+ +(typeof e.file=="string")>1)throw new o(`Specify ${n} text using only one input source: --add, --stdin, or --file`,s.USAGE);let t=I();if(e.add!==void 0)return{value:await t.resolveValue(e.add,"--add")??"",rawValue:e.add,emptyFlag:"--add"};if(e.stdin===!0)return{value:await t.resolveValue("-","--stdin")??"",emptyFlag:"--stdin"};if(typeof e.file!="string")return;let a=e.file.trim();if(!a)throw new o("--file path cannot be empty",s.USAGE);try{return{value:await L(a,"utf8"),emptyFlag:"--file"}}catch(i){if(j(i)&&i.code==="ENOENT")throw new o(`--file path not found: ${a}`,s.USAGE);let w=i instanceof Error?i.message:String(i);throw new o(`Failed to read --file path "${a}": ${w}`,s.USAGE)}}async function de(e,n){if(e.edit!==void 0&&e.delete!==void 0)throw new o("Specify only one of --edit or --delete",s.USAGE);if(e.delete!==void 0){if(e.add!==void 0||e.stdin===!0||typeof e.file=="string")throw new o("--delete cannot be combined with replacement text",s.USAGE);if(!Number.isInteger(e.delete)||e.delete<1)throw new o("--delete must be a positive integer",s.USAGE);return{mode:"delete",index:e.delete}}if(e.edit!==void 0&&(!Number.isInteger(e.edit)||e.edit<1))throw new o("--edit must be a positive integer",s.USAGE);let r=await H(e,n);if(e.edit!==void 0){if(!r)throw new o("--edit requires replacement text from --add, --stdin, or --file",s.USAGE);return{mode:"edit",index:e.edit,...r}}return r?{mode:"add",...r}:{mode:"list"}}function v(e,n){throw e instanceof o&&e.exitCode===s.CONFLICT&&e.message.includes("is assigned to")&&e.message.includes("Use --force to override")?new o(e.message,e.exitCode,{code:"ownership_conflict",required:n.required,examples:n.examples,nextSteps:n.nextSteps}):e}function M(e){return e==="comments"?"--stdin":"--add -"}function z(e,n){if((n.input.emptyFlag??"--add")!=="--add")return;let t=e.trim();if(!/^-{1,2}[A-Za-z][\w-]*(?:=.*)?$/.test(t))return;let a=M(n.collectionKey),i=n.input.mode==="edit"?`pm ${n.collectionKey} <id> --edit <index>`:`pm ${n.collectionKey} <id>`;throw new o(`--add value "${t}" looks like an option, not annotation text. Use ${a} to read stdin, or use text=${t} for literal dash-leading text.`,s.USAGE,{code:"annotation_flag_like_value",required:`Use ${a} for stdin input, pass plain text, or use text=${t} when the text really starts with "-".`,examples:[`${i} ${a}`,`${i} --add text=${t}`]})}function W(e,n){if(e.input.mode!=="list"||n.message===void 0)return;let r=e.collectionKey.replace(/s$/,"");throw new o(`--message labels a ${r} mutation but does not provide ${r} text. Pass text positionally or with --add, --stdin, or --file.`,s.USAGE,{code:"annotation_message_without_text",required:`Provide ${r} text through a content source; --message only annotates the history entry of a mutation.`,examples:[`pm ${e.collectionKey} <id> --add "text" --message "why"`,`pm ${e.collectionKey} <id> ${M(e.collectionKey)}`]})}async function le(e,n,r,t){W(t,n);let a=g(process.cwd(),r.path);if(!await K(U(a)))throw new o(`Tracker is not initialized at ${a}. Run pm init first.`,s.NOT_FOUND);let i=await N(a),w=_(i,C()),y=T(n.limit);if(t.input.mode==="list"){let d=await O(a,e,i.id_prefix,i.item_format,w.type_to_folder);if(!d)throw new o(`Item ${e} not found`,s.NOT_FOUND);let l=await k(d,{schema:i.schema}),f=p(l.document.metadata,t.collectionKey);return b(d.id,t.collectionKey,f,y,n.includeMeta===!0)}let m=G(n.author,i.author_default);if(t.input.mode==="delete"){let d=t.deleteOp??t.op,l;try{l=await x({pmRoot:a,settings:i,id:e,op:d,author:m,message:n.message,force:n.force,bypassAssigneeConflict:t.bypassOwnershipConflict,mutate(u){let c=p(u.metadata,t.collectionKey),h=R(t.input.index,c.length,t.collectionKey);return P(c[h],"deleted"),c.splice(h,1),u.metadata[t.collectionKey]=c,{changedFields:[t.collectionKey]}}})}catch(u){v(u,t.conflictGuidance)}let f=p(l.item,t.collectionKey);return b(l.item.id,t.collectionKey,f,y,n.includeMeta===!0)}let D=t.input.rawValue??t.input.value??"";z(D,t);let $=t.parseText(t.input.value??"");if(!$.trim())throw new o(`${t.input.emptyFlag??"--add"} text cannot be empty`,s.USAGE);if(t.input.mode==="edit"){let d=t.editOp??t.op,l;try{l=await x({pmRoot:a,settings:i,id:e,op:d,author:m,message:n.message,force:n.force,bypassAssigneeConflict:t.bypassOwnershipConflict,mutate(u){let c=p(u.metadata,t.collectionKey),h=R(t.input.index,c.length,t.collectionKey),S=c[h];return P(S,"edited"),c[h]={...S,text:$,edited_at:E()},u.metadata[t.collectionKey]=c,{changedFields:[t.collectionKey]}}})}catch(u){v(u,t.conflictGuidance)}let f=p(l.item,t.collectionKey);return b(l.item.id,t.collectionKey,f,y,n.includeMeta===!0)}let A;try{A=await x({pmRoot:a,settings:i,id:e,op:t.op,author:m,message:n.message,force:n.force,bypassAssigneeConflict:t.bypassOwnershipConflict,mutate(d){let l=p(d.metadata,t.collectionKey),f={created_at:E(),author:m,text:$};return l.push(t.createEntry(f)),d.metadata[t.collectionKey]=l,{changedFields:[t.collectionKey]}}})}catch(d){v(d,t.conflictGuidance)}let q=p(A.item,t.collectionKey);return b(A.item.id,t.collectionKey,q,y,n.includeMeta===!0)}function R(e,n,r){if(e===void 0||!Number.isInteger(e)||e<1||e>n){let t=r.replace(/s$/,""),a=`${t.charAt(0).toUpperCase()}${t.slice(1)}`,i=n===1?`1 ${t}`:`${n} ${r}`;throw new o(`${a} index ${e??"(missing)"} out of range (item has ${i})`,s.USAGE)}return e-1}function b(e,n,r,t,a){let i=V(r,t);return{id:e,[n]:i,count:i.length,...a?{total_count:r.length,returned_count:i.length,has_more:i.length<r.length,...t!==void 0?{limit:t}:{}}:{}}}export{V as a,p as b,se as c,j as d,de as e,v as f,le as g,R as h};
2
- //# sourceMappingURL=chunk-54FNT7U2.js.map
1
+ import{a as T}from"./chunk-M4VEE3FK.js";import{f as F,i as I}from"./chunk-R6LSRGPS.js";import{A as s,Af as N,C as o,Da as _,La as g,Lf as O,Mf as k,Oa as U,R as E,Sf as x,b as K,lc as C,zd as G}from"./chunk-HS7OVAUN.js";import{readFile as 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:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="eeb7b433-094b-5c4f-bc81-d4988ac297b4")}catch{}})();function P(e,n){if(typeof e=="object"&&e!==null&&"format"in e&&e.format==="json")throw new o(`Structured context events are append-only and cannot be ${n}.`,s.USAGE,{code:"structured_event_immutable"})}function V(e,n){return n===void 0?e:n===0?[]:e.slice(Math.max(0,e.length-n))}function p(e,n){let r=e[n];return Array.isArray(r)?r:[]}function se(e,n={}){let r=e.trim();if(!r)return"";let t=/^(?:[-*+]\s*)?text\s*[:=]/i.exec(r);if(n.stripPlainTextPrefix===!0&&t&&!r.startsWith("```"))return r.slice(t[0].length).trim()||r;if(!(/^(?:[-*+]\s*)?text\s*[:=]/im.test(r)||r.startsWith("```")))return r;try{let i=F(r,"--add");return Object.keys(i).map(m=>m.trim().toLowerCase()).some(m=>m!=="text")?r:i.text?.trim()||r}catch{return r}}function j(e){return typeof e=="object"&&e!==null&&"code"in e}async function H(e,n){if(+(e.add!==void 0)+ +(e.stdin===!0)+ +(typeof e.file=="string")>1)throw new o(`Specify ${n} text using only one input source: --add, --stdin, or --file`,s.USAGE);let t=I();if(e.add!==void 0)return{value:await t.resolveValue(e.add,"--add")??"",rawValue:e.add,emptyFlag:"--add"};if(e.stdin===!0)return{value:await t.resolveValue("-","--stdin")??"",emptyFlag:"--stdin"};if(typeof e.file!="string")return;let a=e.file.trim();if(!a)throw new o("--file path cannot be empty",s.USAGE);try{return{value:await L(a,"utf8"),emptyFlag:"--file"}}catch(i){if(j(i)&&i.code==="ENOENT")throw new o(`--file path not found: ${a}`,s.USAGE);let w=i instanceof Error?i.message:String(i);throw new o(`Failed to read --file path "${a}": ${w}`,s.USAGE)}}async function de(e,n){if(e.edit!==void 0&&e.delete!==void 0)throw new o("Specify only one of --edit or --delete",s.USAGE);if(e.delete!==void 0){if(e.add!==void 0||e.stdin===!0||typeof e.file=="string")throw new o("--delete cannot be combined with replacement text",s.USAGE);if(!Number.isInteger(e.delete)||e.delete<1)throw new o("--delete must be a positive integer",s.USAGE);return{mode:"delete",index:e.delete}}if(e.edit!==void 0&&(!Number.isInteger(e.edit)||e.edit<1))throw new o("--edit must be a positive integer",s.USAGE);let r=await H(e,n);if(e.edit!==void 0){if(!r)throw new o("--edit requires replacement text from --add, --stdin, or --file",s.USAGE);return{mode:"edit",index:e.edit,...r}}return r?{mode:"add",...r}:{mode:"list"}}function v(e,n){throw e instanceof o&&e.exitCode===s.CONFLICT&&e.message.includes("is assigned to")&&e.message.includes("Use --force to override")?new o(e.message,e.exitCode,{code:"ownership_conflict",required:n.required,examples:n.examples,nextSteps:n.nextSteps}):e}function M(e){return e==="comments"?"--stdin":"--add -"}function z(e,n){if((n.input.emptyFlag??"--add")!=="--add")return;let t=e.trim();if(!/^-{1,2}[A-Za-z][\w-]*(?:=.*)?$/.test(t))return;let a=M(n.collectionKey),i=n.input.mode==="edit"?`pm ${n.collectionKey} <id> --edit <index>`:`pm ${n.collectionKey} <id>`;throw new o(`--add value "${t}" looks like an option, not annotation text. Use ${a} to read stdin, or use text=${t} for literal dash-leading text.`,s.USAGE,{code:"annotation_flag_like_value",required:`Use ${a} for stdin input, pass plain text, or use text=${t} when the text really starts with "-".`,examples:[`${i} ${a}`,`${i} --add text=${t}`]})}function W(e,n){if(e.input.mode!=="list"||n.message===void 0)return;let r=e.collectionKey.replace(/s$/,"");throw new o(`--message labels a ${r} mutation but does not provide ${r} text. Pass text positionally or with --add, --stdin, or --file.`,s.USAGE,{code:"annotation_message_without_text",required:`Provide ${r} text through a content source; --message only annotates the history entry of a mutation.`,examples:[`pm ${e.collectionKey} <id> --add "text" --message "why"`,`pm ${e.collectionKey} <id> ${M(e.collectionKey)}`]})}async function le(e,n,r,t){W(t,n);let a=g(process.cwd(),r.path);if(!await K(U(a)))throw new o(`Tracker is not initialized at ${a}. Run pm init first.`,s.NOT_FOUND);let i=await N(a),w=_(i,C()),y=T(n.limit);if(t.input.mode==="list"){let d=await O(a,e,i.id_prefix,i.item_format,w.type_to_folder);if(!d)throw new o(`Item ${e} not found`,s.NOT_FOUND);let l=await k(d,{schema:i.schema}),f=p(l.document.metadata,t.collectionKey);return b(d.id,t.collectionKey,f,y,n.includeMeta===!0)}let m=G(n.author,i.author_default);if(t.input.mode==="delete"){let d=t.deleteOp??t.op,l;try{l=await x({pmRoot:a,settings:i,id:e,op:d,author:m,message:n.message,force:n.force,bypassAssigneeConflict:t.bypassOwnershipConflict,mutate(u){let c=p(u.metadata,t.collectionKey),h=R(t.input.index,c.length,t.collectionKey);return P(c[h],"deleted"),c.splice(h,1),u.metadata[t.collectionKey]=c,{changedFields:[t.collectionKey]}}})}catch(u){v(u,t.conflictGuidance)}let f=p(l.item,t.collectionKey);return b(l.item.id,t.collectionKey,f,y,n.includeMeta===!0)}let D=t.input.rawValue??t.input.value??"";z(D,t);let $=t.parseText(t.input.value??"");if(!$.trim())throw new o(`${t.input.emptyFlag??"--add"} text cannot be empty`,s.USAGE);if(t.input.mode==="edit"){let d=t.editOp??t.op,l;try{l=await x({pmRoot:a,settings:i,id:e,op:d,author:m,message:n.message,force:n.force,bypassAssigneeConflict:t.bypassOwnershipConflict,mutate(u){let c=p(u.metadata,t.collectionKey),h=R(t.input.index,c.length,t.collectionKey),S=c[h];return P(S,"edited"),c[h]={...S,text:$,edited_at:E()},u.metadata[t.collectionKey]=c,{changedFields:[t.collectionKey]}}})}catch(u){v(u,t.conflictGuidance)}let f=p(l.item,t.collectionKey);return b(l.item.id,t.collectionKey,f,y,n.includeMeta===!0)}let A;try{A=await x({pmRoot:a,settings:i,id:e,op:t.op,author:m,message:n.message,force:n.force,bypassAssigneeConflict:t.bypassOwnershipConflict,mutate(d){let l=p(d.metadata,t.collectionKey),f={created_at:E(),author:m,text:$};return l.push(t.createEntry(f)),d.metadata[t.collectionKey]=l,{changedFields:[t.collectionKey]}}})}catch(d){v(d,t.conflictGuidance)}let q=p(A.item,t.collectionKey);return b(A.item.id,t.collectionKey,q,y,n.includeMeta===!0)}function R(e,n,r){if(e===void 0||!Number.isInteger(e)||e<1||e>n){let t=r.replace(/s$/,""),a=`${t.charAt(0).toUpperCase()}${t.slice(1)}`,i=n===1?`1 ${t}`:`${n} ${r}`;throw new o(`${a} index ${e??"(missing)"} out of range (item has ${i})`,s.USAGE)}return e-1}function b(e,n,r,t,a){let i=V(r,t);return{id:e,[n]:i,count:i.length,...a?{total_count:r.length,returned_count:i.length,has_more:i.length<r.length,...t!==void 0?{limit:t}:{}}:{}}}export{V as a,p as b,se as c,j as d,de as e,v as f,le as g,R as h};
2
+ //# sourceMappingURL=chunk-5PBP2ZP3.js.map
@@ -1,2 +1,2 @@
1
- import{A as d,C as u}from"./chunk-GE4KCSZP.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},o=new e.Error().stack;o&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[o]="a7ae3c89-b50b-5e4f-8273-8318bc976d84")}catch{}})();var y=Object.freeze({requireCloseReason:!0,orderingEdges:"preserve"});function f(e){let o=[{source:"explicit",value:e.explicit},{source:"duplicate",value:e.duplicateOf===void 0?void 0:`Duplicate of ${e.duplicateOf}`},{source:"resolution",value:e.resolution},{source:"message",value:e.message}];for(let s of o){let n=s.value?.trim();if(n)return{closeReason:n,source:s.source}}return{source:"none"}}function _(e,o){return g(e,o,{operation:"close"})}function g(e,o,s){let n=f(e);if(!o||n.closeReason!==void 0)return n;let c=s.operation==="create"?[`pm create --title "<title>" --type <type> --status ${s.status??"closed"} --close-reason "<closing summary>"`,`pm create --title "<title>" --type <type> --status ${s.status??"closed"} --resolution "<resolution summary>"`,"pm create --stdin-json < item.json"]:['pm close <id> "Done: <what changed and why>"','pm close <id> --reason "<closing summary>"','pm close <id> -m "<closing summary>"',"pm close <id> --duplicate-of <canonical-id>"];throw new u("Close reason text is required because governance.require_close_reason is enabled",d.USAGE,{code:"close_reason_required",required:"Provide an author-controlled closing summary as the reason, message, resolution, or duplicate target.",why:"governance.require_close_reason is enabled, so tools must not invent immutable closure evidence.",examples:c,nextSteps:[`Re-run the ${s.operation} operation with a closing summary.`,"To stop requiring reasons, run: pm config set governance-require-close-reason --policy disabled"]})}function h(e,o){let s=typeof e.blocked_by=="string"?e.blocked_by.trim():"",n=e.blocked_by!==void 0,c=e.dependencies??[],l=c.filter(r=>r.kind==="blocked_by"),a=e.blocked_reason!==void 0,i=[];if(n&&(delete e.blocked_by,i.push("blocked_by")),a&&(delete e.blocked_reason,i.push("blocked_reason")),o.orderingEdges==="remove"&&l.length>0){let r=c.filter(p=>p.kind!=="blocked_by");r.length>0?e.dependencies=r:delete e.dependencies,i.push("dependencies")}let t=[...new Set([...s?[s]:[],...l.map(r=>r.id)])];return t.length===0?{changedFields:i,warnings:[]}:{changedFields:i,warnings:[o.orderingEdges==="preserve"?`closed_preserved_predecessors:${e.id}:${t.join(",")}`:`closed_removed_predecessors:${e.id}:${t.join(",")}`]}}export{y as a,f as b,_ as c,g as d,h as e};
2
- //# sourceMappingURL=chunk-NY4T3JWN.js.map
1
+ import{A as d,C as u}from"./chunk-HS7OVAUN.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},o=new e.Error().stack;o&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[o]="a7ae3c89-b50b-5e4f-8273-8318bc976d84")}catch{}})();var y=Object.freeze({requireCloseReason:!0,orderingEdges:"preserve"});function f(e){let o=[{source:"explicit",value:e.explicit},{source:"duplicate",value:e.duplicateOf===void 0?void 0:`Duplicate of ${e.duplicateOf}`},{source:"resolution",value:e.resolution},{source:"message",value:e.message}];for(let s of o){let n=s.value?.trim();if(n)return{closeReason:n,source:s.source}}return{source:"none"}}function _(e,o){return g(e,o,{operation:"close"})}function g(e,o,s){let n=f(e);if(!o||n.closeReason!==void 0)return n;let c=s.operation==="create"?[`pm create --title "<title>" --type <type> --status ${s.status??"closed"} --close-reason "<closing summary>"`,`pm create --title "<title>" --type <type> --status ${s.status??"closed"} --resolution "<resolution summary>"`,"pm create --stdin-json < item.json"]:['pm close <id> "Done: <what changed and why>"','pm close <id> --reason "<closing summary>"','pm close <id> -m "<closing summary>"',"pm close <id> --duplicate-of <canonical-id>"];throw new u("Close reason text is required because governance.require_close_reason is enabled",d.USAGE,{code:"close_reason_required",required:"Provide an author-controlled closing summary as the reason, message, resolution, or duplicate target.",why:"governance.require_close_reason is enabled, so tools must not invent immutable closure evidence.",examples:c,nextSteps:[`Re-run the ${s.operation} operation with a closing summary.`,"To stop requiring reasons, run: pm config set governance-require-close-reason --policy disabled"]})}function h(e,o){let s=typeof e.blocked_by=="string"?e.blocked_by.trim():"",n=e.blocked_by!==void 0,c=e.dependencies??[],l=c.filter(r=>r.kind==="blocked_by"),a=e.blocked_reason!==void 0,i=[];if(n&&(delete e.blocked_by,i.push("blocked_by")),a&&(delete e.blocked_reason,i.push("blocked_reason")),o.orderingEdges==="remove"&&l.length>0){let r=c.filter(p=>p.kind!=="blocked_by");r.length>0?e.dependencies=r:delete e.dependencies,i.push("dependencies")}let t=[...new Set([...s?[s]:[],...l.map(r=>r.id)])];return t.length===0?{changedFields:i,warnings:[]}:{changedFields:i,warnings:[o.orderingEdges==="preserve"?`closed_preserved_predecessors:${e.id}:${t.join(",")}`:`closed_removed_predecessors:${e.id}:${t.join(",")}`]}}export{y as a,f as b,_ as c,g as d,h as e};
2
+ //# sourceMappingURL=chunk-5ZKQPA44.js.map
@@ -1,2 +1,2 @@
1
- import{hb as z,ib as K,jb as S,mb as F,oa as P,ob as L,pb as B}from"./chunk-UN66FZRO.js";import{b as x}from"./chunk-VCKLFEUN.js";import{k as D,n as j}from"./chunk-LN2WFEU4.js";import{R as v,X as G}from"./chunk-YEWNL576.js";import{A as c,Ad as N,Bb as k,C as d,bb as $,sf as C,u as O,uf as U}from"./chunk-GE4KCSZP.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]="27725b9d-2a1d-54ae-8191-12ebace6ef6a")}catch{}})();import ie from"node:crypto";(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]="91be2c5d-c495-54bc-ac79-b4c645ad2c6e")}catch{}})();var T=["op","id","reason","options"],J=[...T,"ref"],W=["schema_version","mutations"],Q="[a-z][a-z0-9._-]{0,63}",Y=new RegExp(`^${Q}$`,"u"),ee=new RegExp(`(^|,)id=@(${Q})(?=,|$)`,"gu"),q=e=>e.slice(2).replaceAll(/-([a-z])/gu,(t,n)=>n.toUpperCase()),E=["item","linked","schedule","claim_state","children","omission_receipt","row_contract","context_intent"],te=new Set(["created_at","updated_at","closed_at","version","format_version","path","author"]),se=new Set([...te,"completed_at","id"]),_=new Set(["id","title","description","type","status","priority","tags","body","deadline","estimated_minutes","acceptance_criteria","definition_of_ready","order","rank","assignee",...O,"affected_version","fixed_version","component","regression","customer_impact","close_reason","completed_at","dependencies","comments","notes","learnings","files","tests","docs","reminders","events","type_options"]),V={create:D.map(e=>e.target),update:j.map(e=>e.target),close:v.map(e=>q(e.flag)).filter(e=>e!=="reason"),release:G.map(e=>q(e.flag))};function ut(e){let t={},n=e.createCompensation;if(n!==void 0){if(n!=="close"&&n!=="delete")throw new d("createCompensation must be close or delete.",c.USAGE);t.createCompensation=n}for(let r of["lockTtlSeconds","lockWaitMs"]){let o=e[r];if(o===void 0)continue;let i=typeof o=="number"||typeof o=="string"&&o.trim().length>0?Number(o):Number.NaN;if(!Number.isSafeInteger(i)||i<=0)throw new d(`${r} must be a positive safe integer.`,c.USAGE);t[r]=i}return t}function p(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function g(e,t){let n=Math.max(1,Math.min(3,Math.floor(e.length/4)+1)),r;for(let o of t){let i=$(e,o,n);i!==null&&(r===void 0||i<r.distance)&&(r={key:o,distance:i})}return r?.key}function y(e,t,n){let r=g(t,n);return new d(r===void 0?`${e} does not recognize key "${t}". Allowed keys: ${n.join(", ")}.`:`${e} does not recognize key "${t}". Did you mean "${r}"?`,c.USAGE,{code:"stdin_json_unknown_key",required:`Use documented ${e} keys only.`,why:"Strict structured input prevents silent typos from creating incomplete or unintended mutations.",nextSteps:[r===void 0?`Remove or correct "${t}".`:`Replace "${t}" with "${r}".`]})}function R(e,t){try{return JSON.parse(e)}catch(n){let r=n instanceof Error?n.message:String(n);throw new d(`${t} must be valid JSON: ${r}`,c.USAGE,{code:"stdin_json_invalid",required:`Pipe one valid JSON ${t.toLowerCase()} into stdin.`,why:"Structured mutation input must parse deterministically before any tracker write begins."})}}function ae(e,t){if(!p(e))throw new d(`Mutation ${t+1} must be an object.`,c.USAGE);for(let n of Object.keys(e))if(!T.includes(n))throw y(`mutation ${t+1}`,n,T);return e}function ce(e,t,n){if(e!==void 0){if(!p(e))throw new d(`Mutation ${n+1} options must be an object.`,c.USAGE);for(let r of Object.keys(e))if(!V[t].includes(r))throw y(`mutation ${n+1} ${t} options`,r,V[t]);return e}}function de(e,t){let n=ae(e,t),{op:r,id:o,reason:i}=n;if(r!=="create"&&r!=="update"&&r!=="close"&&r!=="release")throw new d(`Mutation ${t+1} op must be create, update, close, or release.`,c.USAGE);let s=ce(n.options,r,t);if(typeof o!="string"||o.trim().length===0)throw new d(`Mutation ${t+1} requires a non-empty id.`,c.USAGE);let a=o.trim();if(r==="close"){if(typeof i!="string"||i.trim().length===0)throw new d(`Mutation ${t+1} close requires a non-empty reason.`,c.USAGE);return{op:r,id:a,reason:i.trim(),...s===void 0?{}:{options:s}}}if(r==="release")return{op:r,id:a,...s===void 0?{}:{options:s}};if(!p(s))throw new d(`Mutation ${t+1} ${r} requires an options object.`,c.USAGE);return{op:r,id:a,options:s}}function ne(e){let t=R(e,"Mutation batch"),n=Array.isArray(t)?t:p(t)&&Array.isArray(t.mutations)?t.mutations:void 0;if(n===void 0||n.length===0)throw new d("Mutation batch must be a non-empty JSON array or an object with a non-empty mutations array.",c.USAGE);return n.map((r,o)=>de(r,o))}function ue(e,t,n){let r=ie.createHash("sha256").update(e).update("\0").update(t).digest("hex"),o=BigInt(`0x${r.slice(0,16)}`).toString(36).padStart(13,"0").slice(-12);return`${C(n)}${o}`}function H(e,t){if(typeof e!="string"||!e.startsWith("@"))return e;let n=e.slice(1),r=t[n];if(r===void 0)throw new d(`Unknown mutation reference "${e}".`,c.USAGE);return r}function X(e,t){if(typeof e!="string")return e;let n=e.replace(ee,(r,o,i)=>{let s=t[i];if(s===void 0)throw new d(`Unknown mutation reference "@${i}".`,c.USAGE);return`${o}id=${s}`});if(/(^|,)id=@/u.test(n))throw new d(`Malformed mutation reference in dependency "${e}".`,c.USAGE);return n}function pe(e){return typeof e!="string"?[]:e.startsWith("@")?[e.slice(1)]:[...e.matchAll(ee)].map(t=>t[1]).filter(t=>t!==void 0)}function fe(e){let t=new Map;for(let i of e){if(i.op!=="create"||typeof i.ref!="string")continue;let s=p(i.options)?i.options:{},a=Array.isArray(s.dep)?s.dep:s.dep===void 0?[]:[s.dep];t.set(i.ref,[s.parent,s.blockedBy,...a].flatMap(pe))}let n=new Set,r=new Set,o=i=>{if(n.has(i))throw new d(`Mutation reference cycle includes "@${i}".`,c.USAGE);if(!r.has(i)){n.add(i);for(let s of t.get(i))t.has(s)&&o(s);n.delete(i),r.add(i)}};for(let i of t.keys())o(i)}function le(e){let t=R(e,"Mutation document"),n=Array.isArray(t)?{schema_version:1,mutations:t}:t;if(!p(n))throw new d("Mutation document must be a JSON array or object.",c.USAGE);for(let r of Object.keys(n))if(!W.includes(r))throw y("mutation document",r,W);if(n.schema_version!==void 0&&n.schema_version!==1)throw new d("Mutation document schema_version must be 1.",c.USAGE);if(!Array.isArray(n.mutations)||n.mutations.length===0)throw new d("Mutation document requires a non-empty mutations array.",c.USAGE);return n.mutations.map((r,o)=>{if(!p(r))throw new d(`Mutation ${o+1} must be an object.`,c.USAGE);for(let i of Object.keys(r))if(!J.includes(i))throw y(`mutation ${o+1}`,i,J);return{...r}})}function me(e,t){let n=Object.create(null);for(let[r,o]of e.entries())if(o.ref!==void 0){if(o.op!=="create")throw new d(`Mutation ${r+1} ref is only valid for create operations.`,c.USAGE);if(typeof o.ref!="string"||!Y.test(o.ref))throw new d(`Mutation ${r+1} ref must match ${Y.source}.`,c.USAGE);if(n[o.ref]!==void 0)throw new d(`Duplicate mutation ref "${o.ref}".`,c.USAGE);n[o.ref]=typeof o.id=="string"&&o.id.trim().length>0?U(o.id,t.idPrefix):ue(t.transactionId,o.ref,t.idPrefix)}return n}function pt(e,t){let n=le(e),r=me(n,t);fe(n);let o=n.map(a=>{let u={...a},m=typeof u.ref=="string"?u.ref:void 0;if(delete u.ref,m!==void 0?u.id=r[m]:u.id=H(u.id,r),p(u.options)){let f={...u.options};for(let w of["parent","blockedBy"])f[w]!==void 0&&(f[w]=H(f[w],r));Array.isArray(f.dep)?f.dep=f.dep.map(w=>X(w,r)):f.dep!==void 0&&(f.dep=X(f.dep,r)),u.options=f}return u}),i=ne(JSON.stringify(o)),s=i.filter(a=>a.op==="create").map(a=>a.id);if(new Set(s).size!==s.length)throw new d("Duplicate resolved create id in mutation document.",c.USAGE);return{schema_version:1,mutations:i,references:r}}function re(e,t){return t.filter(n=>e[n]!==void 0&&e[n]!==null).map(n=>{let r=String(e[n]);return`${n}=${/[",\n\r\\]/u.test(r)?JSON.stringify(r):r}`}).join(",")}function ye(e,t,n){if(e!==void 0){if(!Array.isArray(e)||!e.every(p))throw new d(`${n} must be an array of objects.`,c.USAGE);return e.map(r=>re(r,t))}}function he(e,t){return e==="tags"&&Array.isArray(t)&&t.every(n=>typeof n=="string")?JSON.stringify(t):typeof t=="number"||typeof t=="boolean"?String(t):t}function Z(e,t,n=!1){let r=[["dependencies","dep",["id","kind","created_at","author","source_kind"]],["comments","comment",["text","created_at","author"]],["notes","note",["text","created_at","author"]],["learnings","learning",["text","created_at","author"]],["files","file",["path","scope","note"]],["tests","test",["command","scope","timeout_seconds"]],["docs","doc",["path","scope","note"]],["reminders","reminder",["at","text","created_at"]],["events","event",["start_at","end_at","title","location"]],["type_options","typeOption",["key","value"]]];for(let[o,i,s]of r){let a=t[o],u=ye(n&&["comments","notes","learnings"].includes(o)&&Array.isArray(a)?a.filter(m=>!p(m)||m.created_at===void 0):a,s,o);u!==void 0&&u.length>0&&(e[i]=u)}}function we(e,t){for(let n of Object.keys(e)){if(t){if(!E.includes(n))throw y("item envelope",n,E);continue}if(!_.has(n)&&g(n,[..._])===void 0&&g(n,E)==="item")throw y("item envelope",n,E)}}function _e(e){let t=Object.hasOwn(e,"item");we(e,t);let n=t?e.item:e;if(!p(n))throw new d("Item document item must be an object.",c.USAGE);return{item:n,...t&&p(e.linked)?{linked:e.linked}:{}}}function Ee(e,t,n,r){if(!(r==="update"?se:te).has(t)){if(!_.has(t)){if(g(t,[..._])!==void 0)throw y("item document",t,[..._]);let s=Array.isArray(e.field)?e.field:[];s.push(re({key:t,value:typeof n=="string"?n:JSON.stringify(n)},["key","value"])),e.field=s;return}["dependencies","comments","notes","learnings","files","tests","docs","reminders","events","type_options"].includes(t)||(e[t.replaceAll(/_([a-z])/gu,(i,s)=>s.toUpperCase())]=he(t,n))}}function ft(e,t,n={}){let r=R(e,"Item document");if(!p(r))throw new d("Item document must be a JSON object.",c.USAGE);let{item:o,linked:i}=_e(r),s={};for(let[a,u]of Object.entries(o))Ee(s,a,u,t);return Z(s,o,t==="update"),i!==void 0&&Z(s,i),{...s,...Object.fromEntries(Object.entries(n).filter(([,a])=>a!==void 0)),stdinJson:void 0}}function lt(e){return ne(JSON.stringify(e))}import ge from"node:crypto";import Ae 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]="ed638747-7a72-5332-87fc-c82088457b91")}catch{}})();async function l(e,t){try{let r=(await P(t,{},{pmRoot:e})).item;return{id:r.id,closedAt:r.closed_at,updatedAt:r.updated_at,assignee:r.assignee,claimPrincipal:r.claim_principal}}catch(n){if(n instanceof d&&n.exitCode===c.NOT_FOUND)return;throw n}}function I(e,t){let n=e.id.replaceAll(/[^a-zA-Z0-9._-]/gu,"_"),r=ge.createHash("sha256").update(k(e)).digest("hex").slice(0,12);return`${t+1}-${e.op}-${n}-${r}`}function be(e,t){let n=e.id.replaceAll(/[^a-zA-Z0-9._-]/gu,"_");return`${t+1}-${e.op}-${n}`}function h(e,t,n){return`bulk-item-transaction ${e} ${t} ${n}`}async function A(e,t,n,r){let o=await N(Ae.join(e,"history",`${t}.jsonl`),t),i=h(n,r,"apply"),s=h(n,r,"compensate");for(let a=o.length-1;a>=0;a-=1){let u=o[a].message;if(u===i)return!0;if(u===s)return!1}return!1}async function M(e,t){let n=await l(e,t.id);if(n?.updatedAt===void 0)throw new d(`Bulk ${t.op} target ${t.id} does not exist or has no restorable version`,c.NOT_FOUND);return{target_updated_at:n.updatedAt}}async function b(e,t,n,r){let o=r!==null&&typeof r=="object"&&!Array.isArray(r)?r.target_updated_at:void 0;typeof o=="string"&&await l(e.pmRoot,t)!==void 0&&await B(t,o,{force:!0,author:e.author,message:h(e.transactionId,n,"compensate")},{pmRoot:e.pmRoot})}function oe(e,t,n){return{id:n,async inspect(){let r=await l(e.pmRoot,t.id);return r===void 0?{state:"pending"}:{state:"applied",result:{id:r.id,op:"create"}}},async apply(){let o=(await z({...t.options,author:e.author,id:t.id},{pmRoot:e.pmRoot})).item;return{id:String(o.id),op:"create"}},async compensate(){let r=await l(e.pmRoot,t.id);if(r!==void 0){if(e.createCompensation==="delete"){await L(t.id,{force:!0,author:e.author,message:`Compensate interrupted bulk transaction ${e.transactionId}`},{pmRoot:e.pmRoot});return}r.closedAt===void 0&&await S(t.id,`Compensated: interrupted bulk transaction ${e.transactionId}`,{force:!0,author:e.author},{pmRoot:e.pmRoot})}}}}function Se(e,t,n){return{id:n,async inspect(){let r=await l(e.pmRoot,t.id);return r===void 0?{state:"pending"}:await A(e.pmRoot,r.id,e.transactionId,n)?{state:"applied",result:{id:r.id,op:"update"}}:{state:"pending"}},async prepareCompensation(){return M(e.pmRoot,t)},async apply(){let o=(await K(t.id,{...t.options,author:e.author,message:h(e.transactionId,n,"apply")},{pmRoot:e.pmRoot})).item;return{id:String(o.id),op:"update"}},async compensate(r){await b(e,t.id,n,r)}}}function Te(e,t,n){return{id:n,async inspect(){let r=await l(e.pmRoot,t.id);return r===void 0?{state:"pending"}:await A(e.pmRoot,r.id,e.transactionId,n)?{state:"applied",result:{id:r.id,op:"close"}}:r.closedAt===void 0?{state:"pending"}:{state:"applied",result:{id:r.id,op:"close"}}},async prepareCompensation(){return M(e.pmRoot,t)},async apply(){let o=(await S(t.id,t.reason,{...t.options,author:e.author,message:h(e.transactionId,n,"apply")},{pmRoot:e.pmRoot})).item;return{id:String(o.id),op:"close"}},async compensate(r){await b(e,t.id,n,r)}}}function Re(e,t,n){return{id:n,async inspect(){let r=await l(e.pmRoot,t.id);return r===void 0?{state:"pending"}:await A(e.pmRoot,r.id,e.transactionId,n)?{state:"applied",result:{id:r.id,op:"release"}}:r.assignee!==void 0||r.claimPrincipal!==void 0?{state:"pending"}:{state:"applied",result:{id:r.id,op:"release"}}},async prepareCompensation(){return M(e.pmRoot,t)},async apply(){let o=(await F(t.id,{...t.options,author:e.author,message:h(e.transactionId,n,"apply")},{pmRoot:e.pmRoot})).item;return{id:String(o.id),op:"release"}},async compensate(r){await b(e,t.id,n,r)}}}function Ie(e,t,n){let r=I(t,n);switch(t.op){case"create":return oe(e,t,r);case"update":return Se(e,t,r);case"close":return Te(e,t,r);case"release":return Re(e,t,r)}}function Me(e,t){if(e===null||typeof e!="object"||Array.isArray(e))throw new TypeError(`Bulk mutation ${t+1} must be an object`);if(!["create","update","close","release"].includes(e.op))throw new TypeError(`Bulk mutation ${t+1} op must be create, update, close, or release`);if(typeof e.id!="string"||e.id.trim().length===0)throw new TypeError(`Bulk mutation ${t+1} requires a non-empty id`);if(e.op==="close"&&(typeof e.reason!="string"||e.reason.trim().length===0))throw new TypeError(`Bulk close mutation ${t+1} requires a non-empty reason`)}async function Oe(e){let t=[...e.mutations];if(t.length===0)throw new TypeError("Bulk item transaction requires at least one mutation");for(let[s,a]of t.entries())Me(a,s);let n=e.createCompensation??"close";if(!["close","delete"].includes(n))throw new TypeError("Bulk item transaction createCompensation must be close or delete");let r={pmRoot:e.pmRoot,author:e.author,transactionId:e.transactionId,createCompensation:n},o=await x({pmRoot:e.pmRoot,transactionId:e.transactionId,author:e.author,steps:t.map((s,a)=>Ie(r,s,a)),...e.lockTtlSeconds===void 0?{}:{lockTtlSeconds:e.lockTtlSeconds},...e.lockWaitMs===void 0?{}:{lockWaitMs:e.lockWaitMs},...e.onTransition===void 0?{}:{onTransition:e.onTransition}}),i={};for(let[s,a]of t.entries()){let u=I(a,s),m=o.results[u];i[be(a,s)]=m}return{transactionId:o.transactionId,status:"committed",recovered:o.recovered,results:i}}function $e(e){let t=[];return e.evidence!==void 0&&Object.keys(e.evidence).length>0&&t.push({op:"update",id:e.id,options:e.evidence}),t.push({op:"close",id:e.id,reason:e.reason,...e.closeOptions===void 0?{}:{options:e.closeOptions}},{op:"release",id:e.id,...e.releaseOptions===void 0?{}:{options:e.releaseOptions}}),t}function St(e){return Oe({pmRoot:e.pmRoot,transactionId:e.transactionId,author:e.author,mutations:$e(e),...e.lockTtlSeconds===void 0?{}:{lockTtlSeconds:e.lockTtlSeconds},...e.lockWaitMs===void 0?{}:{lockWaitMs:e.lockWaitMs},...e.onTransition===void 0?{}:{onTransition:e.onTransition}})}var Tt={buildCreateStep:oe,bulkHistoryMarker:h,compensateByRestore:b,deriveStepId:I,isUpdateMarkerApplied:A,readItemSnapshot:l};export{ut as a,ne as b,pt as c,ft as d,lt as e,Oe as f,$e as g,St as h,Tt as i};
2
- //# sourceMappingURL=chunk-4YUBDMQM.js.map
1
+ import{hb as z,ib as K,jb as S,mb as F,oa as P,ob as L,pb as B}from"./chunk-RAFUN7IX.js";import{b as x}from"./chunk-3ZJRFYY2.js";import{k as D,n as j}from"./chunk-ZFBWCKYF.js";import{S as v,Y as G}from"./chunk-RUAU5OSH.js";import{A as c,Ad as N,Bb as k,C as d,bb as $,sf as C,u as O,uf as U}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]="27725b9d-2a1d-54ae-8191-12ebace6ef6a")}catch{}})();import ie from"node:crypto";(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]="91be2c5d-c495-54bc-ac79-b4c645ad2c6e")}catch{}})();var T=["op","id","reason","options"],J=[...T,"ref"],W=["schema_version","mutations"],Q="[a-z][a-z0-9._-]{0,63}",Y=new RegExp(`^${Q}$`,"u"),ee=new RegExp(`(^|,)id=@(${Q})(?=,|$)`,"gu"),q=e=>e.slice(2).replaceAll(/-([a-z])/gu,(t,n)=>n.toUpperCase()),E=["item","linked","schedule","claim_state","children","omission_receipt","row_contract","context_intent"],te=new Set(["created_at","updated_at","closed_at","version","format_version","path","author"]),se=new Set([...te,"completed_at","id"]),_=new Set(["id","title","description","type","status","priority","tags","body","deadline","estimated_minutes","acceptance_criteria","definition_of_ready","order","rank","assignee",...O,"affected_version","fixed_version","component","regression","customer_impact","close_reason","completed_at","dependencies","comments","notes","learnings","files","tests","docs","reminders","events","type_options"]),V={create:D.map(e=>e.target),update:j.map(e=>e.target),close:v.map(e=>q(e.flag)).filter(e=>e!=="reason"),release:G.map(e=>q(e.flag))};function ut(e){let t={},n=e.createCompensation;if(n!==void 0){if(n!=="close"&&n!=="delete")throw new d("createCompensation must be close or delete.",c.USAGE);t.createCompensation=n}for(let r of["lockTtlSeconds","lockWaitMs"]){let o=e[r];if(o===void 0)continue;let i=typeof o=="number"||typeof o=="string"&&o.trim().length>0?Number(o):Number.NaN;if(!Number.isSafeInteger(i)||i<=0)throw new d(`${r} must be a positive safe integer.`,c.USAGE);t[r]=i}return t}function p(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function g(e,t){let n=Math.max(1,Math.min(3,Math.floor(e.length/4)+1)),r;for(let o of t){let i=$(e,o,n);i!==null&&(r===void 0||i<r.distance)&&(r={key:o,distance:i})}return r?.key}function y(e,t,n){let r=g(t,n);return new d(r===void 0?`${e} does not recognize key "${t}". Allowed keys: ${n.join(", ")}.`:`${e} does not recognize key "${t}". Did you mean "${r}"?`,c.USAGE,{code:"stdin_json_unknown_key",required:`Use documented ${e} keys only.`,why:"Strict structured input prevents silent typos from creating incomplete or unintended mutations.",nextSteps:[r===void 0?`Remove or correct "${t}".`:`Replace "${t}" with "${r}".`]})}function R(e,t){try{return JSON.parse(e)}catch(n){let r=n instanceof Error?n.message:String(n);throw new d(`${t} must be valid JSON: ${r}`,c.USAGE,{code:"stdin_json_invalid",required:`Pipe one valid JSON ${t.toLowerCase()} into stdin.`,why:"Structured mutation input must parse deterministically before any tracker write begins."})}}function ae(e,t){if(!p(e))throw new d(`Mutation ${t+1} must be an object.`,c.USAGE);for(let n of Object.keys(e))if(!T.includes(n))throw y(`mutation ${t+1}`,n,T);return e}function ce(e,t,n){if(e!==void 0){if(!p(e))throw new d(`Mutation ${n+1} options must be an object.`,c.USAGE);for(let r of Object.keys(e))if(!V[t].includes(r))throw y(`mutation ${n+1} ${t} options`,r,V[t]);return e}}function de(e,t){let n=ae(e,t),{op:r,id:o,reason:i}=n;if(r!=="create"&&r!=="update"&&r!=="close"&&r!=="release")throw new d(`Mutation ${t+1} op must be create, update, close, or release.`,c.USAGE);let s=ce(n.options,r,t);if(typeof o!="string"||o.trim().length===0)throw new d(`Mutation ${t+1} requires a non-empty id.`,c.USAGE);let a=o.trim();if(r==="close"){if(typeof i!="string"||i.trim().length===0)throw new d(`Mutation ${t+1} close requires a non-empty reason.`,c.USAGE);return{op:r,id:a,reason:i.trim(),...s===void 0?{}:{options:s}}}if(r==="release")return{op:r,id:a,...s===void 0?{}:{options:s}};if(!p(s))throw new d(`Mutation ${t+1} ${r} requires an options object.`,c.USAGE);return{op:r,id:a,options:s}}function ne(e){let t=R(e,"Mutation batch"),n=Array.isArray(t)?t:p(t)&&Array.isArray(t.mutations)?t.mutations:void 0;if(n===void 0||n.length===0)throw new d("Mutation batch must be a non-empty JSON array or an object with a non-empty mutations array.",c.USAGE);return n.map((r,o)=>de(r,o))}function ue(e,t,n){let r=ie.createHash("sha256").update(e).update("\0").update(t).digest("hex"),o=BigInt(`0x${r.slice(0,16)}`).toString(36).padStart(13,"0").slice(-12);return`${C(n)}${o}`}function H(e,t){if(typeof e!="string"||!e.startsWith("@"))return e;let n=e.slice(1),r=t[n];if(r===void 0)throw new d(`Unknown mutation reference "${e}".`,c.USAGE);return r}function X(e,t){if(typeof e!="string")return e;let n=e.replace(ee,(r,o,i)=>{let s=t[i];if(s===void 0)throw new d(`Unknown mutation reference "@${i}".`,c.USAGE);return`${o}id=${s}`});if(/(^|,)id=@/u.test(n))throw new d(`Malformed mutation reference in dependency "${e}".`,c.USAGE);return n}function pe(e){return typeof e!="string"?[]:e.startsWith("@")?[e.slice(1)]:[...e.matchAll(ee)].map(t=>t[1]).filter(t=>t!==void 0)}function fe(e){let t=new Map;for(let i of e){if(i.op!=="create"||typeof i.ref!="string")continue;let s=p(i.options)?i.options:{},a=Array.isArray(s.dep)?s.dep:s.dep===void 0?[]:[s.dep];t.set(i.ref,[s.parent,s.blockedBy,...a].flatMap(pe))}let n=new Set,r=new Set,o=i=>{if(n.has(i))throw new d(`Mutation reference cycle includes "@${i}".`,c.USAGE);if(!r.has(i)){n.add(i);for(let s of t.get(i))t.has(s)&&o(s);n.delete(i),r.add(i)}};for(let i of t.keys())o(i)}function le(e){let t=R(e,"Mutation document"),n=Array.isArray(t)?{schema_version:1,mutations:t}:t;if(!p(n))throw new d("Mutation document must be a JSON array or object.",c.USAGE);for(let r of Object.keys(n))if(!W.includes(r))throw y("mutation document",r,W);if(n.schema_version!==void 0&&n.schema_version!==1)throw new d("Mutation document schema_version must be 1.",c.USAGE);if(!Array.isArray(n.mutations)||n.mutations.length===0)throw new d("Mutation document requires a non-empty mutations array.",c.USAGE);return n.mutations.map((r,o)=>{if(!p(r))throw new d(`Mutation ${o+1} must be an object.`,c.USAGE);for(let i of Object.keys(r))if(!J.includes(i))throw y(`mutation ${o+1}`,i,J);return{...r}})}function me(e,t){let n=Object.create(null);for(let[r,o]of e.entries())if(o.ref!==void 0){if(o.op!=="create")throw new d(`Mutation ${r+1} ref is only valid for create operations.`,c.USAGE);if(typeof o.ref!="string"||!Y.test(o.ref))throw new d(`Mutation ${r+1} ref must match ${Y.source}.`,c.USAGE);if(n[o.ref]!==void 0)throw new d(`Duplicate mutation ref "${o.ref}".`,c.USAGE);n[o.ref]=typeof o.id=="string"&&o.id.trim().length>0?U(o.id,t.idPrefix):ue(t.transactionId,o.ref,t.idPrefix)}return n}function pt(e,t){let n=le(e),r=me(n,t);fe(n);let o=n.map(a=>{let u={...a},m=typeof u.ref=="string"?u.ref:void 0;if(delete u.ref,m!==void 0?u.id=r[m]:u.id=H(u.id,r),p(u.options)){let f={...u.options};for(let w of["parent","blockedBy"])f[w]!==void 0&&(f[w]=H(f[w],r));Array.isArray(f.dep)?f.dep=f.dep.map(w=>X(w,r)):f.dep!==void 0&&(f.dep=X(f.dep,r)),u.options=f}return u}),i=ne(JSON.stringify(o)),s=i.filter(a=>a.op==="create").map(a=>a.id);if(new Set(s).size!==s.length)throw new d("Duplicate resolved create id in mutation document.",c.USAGE);return{schema_version:1,mutations:i,references:r}}function re(e,t){return t.filter(n=>e[n]!==void 0&&e[n]!==null).map(n=>{let r=String(e[n]);return`${n}=${/[",\n\r\\]/u.test(r)?JSON.stringify(r):r}`}).join(",")}function ye(e,t,n){if(e!==void 0){if(!Array.isArray(e)||!e.every(p))throw new d(`${n} must be an array of objects.`,c.USAGE);return e.map(r=>re(r,t))}}function he(e,t){return e==="tags"&&Array.isArray(t)&&t.every(n=>typeof n=="string")?JSON.stringify(t):typeof t=="number"||typeof t=="boolean"?String(t):t}function Z(e,t,n=!1){let r=[["dependencies","dep",["id","kind","created_at","author","source_kind"]],["comments","comment",["text","created_at","author"]],["notes","note",["text","created_at","author"]],["learnings","learning",["text","created_at","author"]],["files","file",["path","scope","note"]],["tests","test",["command","scope","timeout_seconds"]],["docs","doc",["path","scope","note"]],["reminders","reminder",["at","text","created_at"]],["events","event",["start_at","end_at","title","location"]],["type_options","typeOption",["key","value"]]];for(let[o,i,s]of r){let a=t[o],u=ye(n&&["comments","notes","learnings"].includes(o)&&Array.isArray(a)?a.filter(m=>!p(m)||m.created_at===void 0):a,s,o);u!==void 0&&u.length>0&&(e[i]=u)}}function we(e,t){for(let n of Object.keys(e)){if(t){if(!E.includes(n))throw y("item envelope",n,E);continue}if(!_.has(n)&&g(n,[..._])===void 0&&g(n,E)==="item")throw y("item envelope",n,E)}}function _e(e){let t=Object.hasOwn(e,"item");we(e,t);let n=t?e.item:e;if(!p(n))throw new d("Item document item must be an object.",c.USAGE);return{item:n,...t&&p(e.linked)?{linked:e.linked}:{}}}function Ee(e,t,n,r){if(!(r==="update"?se:te).has(t)){if(!_.has(t)){if(g(t,[..._])!==void 0)throw y("item document",t,[..._]);let s=Array.isArray(e.field)?e.field:[];s.push(re({key:t,value:typeof n=="string"?n:JSON.stringify(n)},["key","value"])),e.field=s;return}["dependencies","comments","notes","learnings","files","tests","docs","reminders","events","type_options"].includes(t)||(e[t.replaceAll(/_([a-z])/gu,(i,s)=>s.toUpperCase())]=he(t,n))}}function ft(e,t,n={}){let r=R(e,"Item document");if(!p(r))throw new d("Item document must be a JSON object.",c.USAGE);let{item:o,linked:i}=_e(r),s={};for(let[a,u]of Object.entries(o))Ee(s,a,u,t);return Z(s,o,t==="update"),i!==void 0&&Z(s,i),{...s,...Object.fromEntries(Object.entries(n).filter(([,a])=>a!==void 0)),stdinJson:void 0}}function lt(e){return ne(JSON.stringify(e))}import ge from"node:crypto";import Ae 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]="ed638747-7a72-5332-87fc-c82088457b91")}catch{}})();async function l(e,t){try{let r=(await P(t,{},{pmRoot:e})).item;return{id:r.id,closedAt:r.closed_at,updatedAt:r.updated_at,assignee:r.assignee,claimPrincipal:r.claim_principal}}catch(n){if(n instanceof d&&n.exitCode===c.NOT_FOUND)return;throw n}}function I(e,t){let n=e.id.replaceAll(/[^a-zA-Z0-9._-]/gu,"_"),r=ge.createHash("sha256").update(k(e)).digest("hex").slice(0,12);return`${t+1}-${e.op}-${n}-${r}`}function be(e,t){let n=e.id.replaceAll(/[^a-zA-Z0-9._-]/gu,"_");return`${t+1}-${e.op}-${n}`}function h(e,t,n){return`bulk-item-transaction ${e} ${t} ${n}`}async function A(e,t,n,r){let o=await N(Ae.join(e,"history",`${t}.jsonl`),t),i=h(n,r,"apply"),s=h(n,r,"compensate");for(let a=o.length-1;a>=0;a-=1){let u=o[a].message;if(u===i)return!0;if(u===s)return!1}return!1}async function M(e,t){let n=await l(e,t.id);if(n?.updatedAt===void 0)throw new d(`Bulk ${t.op} target ${t.id} does not exist or has no restorable version`,c.NOT_FOUND);return{target_updated_at:n.updatedAt}}async function b(e,t,n,r){let o=r!==null&&typeof r=="object"&&!Array.isArray(r)?r.target_updated_at:void 0;typeof o=="string"&&await l(e.pmRoot,t)!==void 0&&await B(t,o,{force:!0,author:e.author,message:h(e.transactionId,n,"compensate")},{pmRoot:e.pmRoot})}function oe(e,t,n){return{id:n,async inspect(){let r=await l(e.pmRoot,t.id);return r===void 0?{state:"pending"}:{state:"applied",result:{id:r.id,op:"create"}}},async apply(){let o=(await z({...t.options,author:e.author,id:t.id},{pmRoot:e.pmRoot})).item;return{id:String(o.id),op:"create"}},async compensate(){let r=await l(e.pmRoot,t.id);if(r!==void 0){if(e.createCompensation==="delete"){await L(t.id,{force:!0,author:e.author,message:`Compensate interrupted bulk transaction ${e.transactionId}`},{pmRoot:e.pmRoot});return}r.closedAt===void 0&&await S(t.id,`Compensated: interrupted bulk transaction ${e.transactionId}`,{force:!0,author:e.author},{pmRoot:e.pmRoot})}}}}function Se(e,t,n){return{id:n,async inspect(){let r=await l(e.pmRoot,t.id);return r===void 0?{state:"pending"}:await A(e.pmRoot,r.id,e.transactionId,n)?{state:"applied",result:{id:r.id,op:"update"}}:{state:"pending"}},async prepareCompensation(){return M(e.pmRoot,t)},async apply(){let o=(await K(t.id,{...t.options,author:e.author,message:h(e.transactionId,n,"apply")},{pmRoot:e.pmRoot})).item;return{id:String(o.id),op:"update"}},async compensate(r){await b(e,t.id,n,r)}}}function Te(e,t,n){return{id:n,async inspect(){let r=await l(e.pmRoot,t.id);return r===void 0?{state:"pending"}:await A(e.pmRoot,r.id,e.transactionId,n)?{state:"applied",result:{id:r.id,op:"close"}}:r.closedAt===void 0?{state:"pending"}:{state:"applied",result:{id:r.id,op:"close"}}},async prepareCompensation(){return M(e.pmRoot,t)},async apply(){let o=(await S(t.id,t.reason,{...t.options,author:e.author,message:h(e.transactionId,n,"apply")},{pmRoot:e.pmRoot})).item;return{id:String(o.id),op:"close"}},async compensate(r){await b(e,t.id,n,r)}}}function Re(e,t,n){return{id:n,async inspect(){let r=await l(e.pmRoot,t.id);return r===void 0?{state:"pending"}:await A(e.pmRoot,r.id,e.transactionId,n)?{state:"applied",result:{id:r.id,op:"release"}}:r.assignee!==void 0||r.claimPrincipal!==void 0?{state:"pending"}:{state:"applied",result:{id:r.id,op:"release"}}},async prepareCompensation(){return M(e.pmRoot,t)},async apply(){let o=(await F(t.id,{...t.options,author:e.author,message:h(e.transactionId,n,"apply")},{pmRoot:e.pmRoot})).item;return{id:String(o.id),op:"release"}},async compensate(r){await b(e,t.id,n,r)}}}function Ie(e,t,n){let r=I(t,n);switch(t.op){case"create":return oe(e,t,r);case"update":return Se(e,t,r);case"close":return Te(e,t,r);case"release":return Re(e,t,r)}}function Me(e,t){if(e===null||typeof e!="object"||Array.isArray(e))throw new TypeError(`Bulk mutation ${t+1} must be an object`);if(!["create","update","close","release"].includes(e.op))throw new TypeError(`Bulk mutation ${t+1} op must be create, update, close, or release`);if(typeof e.id!="string"||e.id.trim().length===0)throw new TypeError(`Bulk mutation ${t+1} requires a non-empty id`);if(e.op==="close"&&(typeof e.reason!="string"||e.reason.trim().length===0))throw new TypeError(`Bulk close mutation ${t+1} requires a non-empty reason`)}async function Oe(e){let t=[...e.mutations];if(t.length===0)throw new TypeError("Bulk item transaction requires at least one mutation");for(let[s,a]of t.entries())Me(a,s);let n=e.createCompensation??"close";if(!["close","delete"].includes(n))throw new TypeError("Bulk item transaction createCompensation must be close or delete");let r={pmRoot:e.pmRoot,author:e.author,transactionId:e.transactionId,createCompensation:n},o=await x({pmRoot:e.pmRoot,transactionId:e.transactionId,author:e.author,steps:t.map((s,a)=>Ie(r,s,a)),...e.lockTtlSeconds===void 0?{}:{lockTtlSeconds:e.lockTtlSeconds},...e.lockWaitMs===void 0?{}:{lockWaitMs:e.lockWaitMs},...e.onTransition===void 0?{}:{onTransition:e.onTransition}}),i={};for(let[s,a]of t.entries()){let u=I(a,s),m=o.results[u];i[be(a,s)]=m}return{transactionId:o.transactionId,status:"committed",recovered:o.recovered,results:i}}function $e(e){let t=[];return e.evidence!==void 0&&Object.keys(e.evidence).length>0&&t.push({op:"update",id:e.id,options:e.evidence}),t.push({op:"close",id:e.id,reason:e.reason,...e.closeOptions===void 0?{}:{options:e.closeOptions}},{op:"release",id:e.id,...e.releaseOptions===void 0?{}:{options:e.releaseOptions}}),t}function St(e){return Oe({pmRoot:e.pmRoot,transactionId:e.transactionId,author:e.author,mutations:$e(e),...e.lockTtlSeconds===void 0?{}:{lockTtlSeconds:e.lockTtlSeconds},...e.lockWaitMs===void 0?{}:{lockWaitMs:e.lockWaitMs},...e.onTransition===void 0?{}:{onTransition:e.onTransition}})}var Tt={buildCreateStep:oe,bulkHistoryMarker:h,compensateByRestore:b,deriveStepId:I,isUpdateMarkerApplied:A,readItemSnapshot:l};export{ut as a,ne as b,pt as c,ft as d,lt as e,Oe as f,$e as g,St as h,Tt as i};
2
+ //# sourceMappingURL=chunk-A3XQ7VPU.js.map
@@ -1,8 +1,8 @@
1
- import{b as z,c as N,e as M,f as x,g as G,h as p,i as _,j as b,l as H,m as w,o as U,p as k}from"./chunk-LN2WFEU4.js";import{Z as V,z as j}from"./chunk-A62CYISG.js";import{A as v,Af as P,C as R,Cc as I,La as C,Oa as D,Re as y,Ue as L,b as F,oc as O}from"./chunk-GE4KCSZP.js";import{Option as X}from"commander";(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]="e520de00-0810-5356-9290-324cf1d3c133")}catch{}})();async function ue(e,t,r,n,i){let s=C(process.cwd(),n.path),l=await I("command_result",{command:e,args:t,options:r,global:n,pm_root:s,result:i});return l.handled?l.result:i}function de(e,t){for(let[r,n]of Object.entries(t))e.setOptionValueWithSource(r,n,"cli")}function q(e,t){let r=[],n=new Set;for(let i of t.keys){if(!Object.hasOwn(e,i))continue;let s=e[i];if(s!=null){if(typeof s=="string"){r.push(s);continue}if(!Array.isArray(s)||!s.every(l=>typeof l=="string"))return;n.has(s)||(n.add(s),r.push(...s))}}return r.length>0?r.join("; "):void 0}var B=Symbol("pm.resolvedGlobalOptions");function K(e){return typeof e=="object"&&e!==null?e:{}}function u(e,t){return e.find(n=>n.target===t)??{target:t,keys:[t]}}function fe(e,t){e[B]={...t}}function me(e){delete e[B]}function E(e,t){return typeof e[t]=="string"?e[t]:void 0}function pe(e){let t=Q(e),r=e[B];if(r)return{...r,...t.length>0?{command:t}:{}};let n=K(e),i=typeof n.optsWithGlobals=="function"?n.optsWithGlobals():typeof n.opts=="function"?n.opts():{};return{json:i.json===!0?!0:void 0,quiet:!!i.quiet,noChangedFields:i.changedFields===!1,...i.fullChangedFields===!0?{fullChangedFields:!0}:{},idOnly:i.idOnly===!0,...i.lean===!0?{lean:!0}:{},...i.tokenAccounting===!0?{tokenAccounting:!0}:{},outputInclude:E(i,"outputInclude"),outputLimit:E(i,"outputLimit"),outputBudget:E(i,"outputBudget"),...i.outputFormat==="toon"||i.outputFormat==="json"?{outputFormat:i.outputFormat}:{},path:typeof i.pmPath=="string"?i.pmPath:typeof i.path=="string"?i.path:void 0,noExtensions:i.extensions===!1,noPager:!!i.noPager,profile:!!i.profile,...t.length>0?{command:t}:{},...typeof i.author=="string"?{author:i.author}:{}}}function Q(e){let t=[],r=e;for(;r?.parent;)t.unshift(r.name()),r=r.parent;return t.join(" ")}async function ge(e){if(e.json===!0)return e;let t=C(process.cwd(),e.path);if(!await F(D(t)))return e;let r=await P(t);return{...e,defaultOutputFormat:r.output.default_format}}function Z(e,t){let r=t??[];return r.push(e),r}function d(e,t,r){if(typeof r!="string")return;let n=r.trim();n.length!==0&&e.push(t,n)}function f(e,t,r){r===!0&&e.push(t)}function h(e,t,r){if(Array.isArray(r))for(let n of r){if(typeof n!="string")continue;let i=n.trim();i.length!==0&&e.push(t,i)}}function a(e,t){return e[t]===!0?!0:void 0}function m(e,t){return e[t]===!1?!0:void 0}function ye(e,t){return typeof e[t]=="string"?e[t]:void 0}function ee(e,t,r,n=!1,i=void 0){let s=new X(t,r).hideHelp();n&&s.argParser(i??Z),e.addOption(s)}function he(e,t,r){for(let[n,i]of t)ee(e,n,i,r)}function J(e,t){return t.some(r=>e[r]===!0)?!0:void 0}function W(e,t){let r=_(e,t);return typeof r=="string"||typeof r=="number"&&Number.isFinite(r)?r:void 0}function T(e,t){for(let[r,n]of Object.entries(t))r==="__proto__"||r==="constructor"||r==="prototype"||Object.hasOwn(e,r)||(e[r]=n)}function Ae(e,t){let r=["test",e,"--run","--json","--progress"];return h(r,"--add",t.add),h(r,"--add-json",t.addJson),h(r,"--remove",t.remove),d(r,"--match",t.match),d(r,"--only-index",t.onlyIndex),f(r,"--only-last",t.onlyLast),h(r,"--measure",t.measure),d(r,"--metric-below",t.metricBelow),d(r,"--metric-diff",t.metricDiff),$(r,t),d(r,"--author",t.author),d(r,"--message",t.message),f(r,"--force",t.force),r}function $(e,t){d(e,"--timeout",t.timeout),h(e,"--env-set",t.envSet),h(e,"--env-clear",t.envClear),f(e,"--shared-host-safe",t.sharedHostSafe),d(e,"--pm-context",t.pmContext),f(e,"--override-linked-pm-context",t.overrideLinkedPmContext),f(e,"--fail-on-context-mismatch",t.failOnContextMismatch),f(e,"--fail-on-skipped",t.failOnSkipped),f(e,"--fail-on-empty-test-run",t.failOnEmptyTestRun),f(e,"--require-assertions-for-pm",t.requireAssertionsForPm),f(e,"--check-context",t.checkContext),f(e,"--auto-pm-context",t.autoPmContext)}function ve(e){let t=["test-all","--json","--progress"];return d(t,"--status",e.status),d(t,"--limit",e.limit),d(t,"--offset",e.offset),$(t,e),t}function te(e){return e.join(",")}function Re(e,t={}){let r=l=>p(e,u(H,l)),n=l=>b(e,u(w,l)),i=r("type");if(t.requireType!==!1&&i===void 0)throw new R("Missing required option --type <value>. Why required: create resolves runtime schema fields/workflow from item type. Retry: add --type <built-in or configured custom type> (example: --type Task).",v.USAGE);let s={title:r("title"),description:r("description"),type:i,template:r("template"),createMode:r("createMode"),schedulePreset:r("schedulePreset"),status:r("status"),closeReason:r("closeReason"),completedAt:r("completedAt"),priority:r("priority"),tags:r("tags"),addTags:n("addTags"),body:r("body"),deadline:r("deadline"),estimatedMinutes:r("estimatedMinutes"),acceptanceCriteria:q(e,u(w,"acceptanceCriteria")),definitionOfReady:r("definitionOfReady"),order:r("order"),rank:r("rank"),goal:r("goal"),objective:r("objective"),value:r("value"),impact:r("impact"),outcome:r("outcome"),whyNow:r("whyNow"),author:r("author"),message:r("message"),assignee:r("assignee"),parent:r("parent"),allowMissingParent:J(e,["allowMissingParent","allow_missing_parent"])===!0,allowDuplicate:a(e,"allowDuplicate")===!0,reviewer:r("reviewer"),risk:r("risk"),confidence:r("confidence"),sprint:r("sprint"),release:r("release"),blockedBy:r("blockedBy"),blockedReason:r("blockedReason"),unblockNote:r("unblockNote"),reporter:r("reporter"),severity:r("severity"),environment:r("environment"),reproSteps:r("reproSteps"),resolution:r("resolution"),expectedResult:r("expectedResult"),actualResult:r("actualResult"),affectedVersion:r("affectedVersion"),fixedVersion:r("fixedVersion"),component:r("component"),regression:e.regression===!0?"true":r("regression"),customerImpact:r("customerImpact"),dep:n("dep"),comment:n("comment"),note:n("note"),learning:n("learning"),file:n("file"),test:n("test"),doc:n("doc"),reminder:n("reminder"),event:n("event"),typeOption:n("typeOption"),field:n("field"),unset:n("unset"),clearDeps:a(e,"clearDeps"),clearComments:a(e,"clearComments"),clearNotes:a(e,"clearNotes"),clearLearnings:a(e,"clearLearnings"),clearFiles:a(e,"clearFiles"),clearTests:a(e,"clearTests"),clearDocs:a(e,"clearDocs"),clearReminders:a(e,"clearReminders"),clearEvents:a(e,"clearEvents"),clearTypeOptions:a(e,"clearTypeOptions")};return T(s,e),s}function Ce(e){let t=i=>p(e,u(U,i)),r=i=>b(e,u(k,i)),n={title:t("title"),description:t("description"),body:t("body"),status:t("status"),closeReason:t("closeReason"),priority:t("priority"),type:t("type"),tags:t("tags"),addTags:r("addTags"),removeTags:r("removeTags"),deadline:t("deadline"),estimatedMinutes:t("estimatedMinutes"),acceptanceCriteria:q(e,u(k,"acceptanceCriteria")),addAc:r("addAc"),removeAc:r("removeAc"),definitionOfReady:t("definitionOfReady"),order:t("order"),rank:t("rank"),goal:t("goal"),objective:t("objective"),value:t("value"),impact:t("impact"),outcome:t("outcome"),whyNow:t("whyNow"),author:t("author"),message:t("message"),force:!!e.force,ownershipMetadataBypass:e.ownershipMetadataBypass===!0?!0:void 0,ownershipDependencyBypass:e.ownershipDependencyBypass===!0?!0:void 0,assignee:t("assignee"),parent:t("parent"),reviewer:t("reviewer"),risk:t("risk"),confidence:t("confidence"),sprint:t("sprint"),release:t("release"),blockedBy:t("blockedBy"),blockedReason:t("blockedReason"),unblockNote:t("unblockNote"),reporter:t("reporter"),severity:t("severity"),environment:t("environment"),reproSteps:t("reproSteps"),resolution:t("resolution"),expectedResult:t("expectedResult"),actualResult:t("actualResult"),affectedVersion:t("affectedVersion"),fixedVersion:t("fixedVersion"),component:t("component"),regression:e.regression===!0?"true":t("regression"),customerImpact:t("customerImpact"),dep:r("dep"),depRemove:r("depRemove"),replaceDeps:a(e,"replaceDeps"),replaceTests:a(e,"replaceTests"),replaceFiles:a(e,"replaceFiles"),replaceDocs:a(e,"replaceDocs"),comment:r("comment"),note:r("note"),learning:r("learning"),file:r("file"),test:r("test"),doc:r("doc"),reminder:r("reminder"),event:r("event"),typeOption:r("typeOption"),field:r("field"),unset:r("unset"),clearDeps:a(e,"clearDeps"),clearComments:a(e,"clearComments"),clearNotes:a(e,"clearNotes"),clearLearnings:a(e,"clearLearnings"),clearFiles:a(e,"clearFiles"),clearTests:a(e,"clearTests"),clearDocs:a(e,"clearDocs"),clearReminders:a(e,"clearReminders"),clearEvents:a(e,"clearEvents"),clearTypeOptions:a(e,"clearTypeOptions")};return T(n,e),n}var re=new Set(["filterStatus","filterType","filterTag","filterPriority","filterDeadlineBefore","filterDeadlineAfter","filterUpdatedAfter","filterUpdatedBefore","filterCreatedAfter","filterCreatedBefore","filterAssignee","filterAssigneeFilter","filterAssignee_filter","filterParent","filterSprint","filterRelease","filterAcMissing","filterEstimatesMissing","filterEstimateMissing","filterResolutionMissing","filterMetadataMissing","filterReviewerMissing","filterRiskMissing","filterConfidenceMissing","filterSprintMissing","filterReleaseMissing","filterHasNotes","filterNoNotes","filterHasLearnings","filterNoLearnings","filterHasFiles","filterNoFiles","filterHasDocs","filterNoDocs","filterHasTests","filterNoTests","filterHasComments","filterNoComments","filterHasDeps","filterNoDeps","filterHasBody","filterEmptyBody","filterHasLinkedCommand","filterNoLinkedCommand","ids","limit","offset","dryRun","rollback","checkpoint"]);function Te(e){let t={};for(let[r,n]of Object.entries(e))re.has(r)||(t[r]=n);return t}function o(e,t){let r=u(z,t),n=p(e,r);if(n!==void 0)return n;for(let i of r.keys){let s=e[i];if(Array.isArray(s)){let l=s.filter(c=>typeof c=="string");if(l.length>0)return l.join(",")}if(t==="ids"&&typeof s=="string")return s;if(typeof s=="number"&&Number.isFinite(s))return String(s)}}function Y(e){let t=a(e,"filterFilesMissing"),r=a(e,"filterDocsMissing");return{filterReviewerMissing:a(e,"filterReviewerMissing"),filterRiskMissing:a(e,"filterRiskMissing"),filterConfidenceMissing:a(e,"filterConfidenceMissing"),filterSprintMissing:a(e,"filterSprintMissing"),filterReleaseMissing:a(e,"filterReleaseMissing"),hasNotes:a(e,"hasNotes"),hasLearnings:a(e,"hasLearnings"),hasFiles:a(e,"hasFiles"),hasDocs:a(e,"hasDocs"),hasTests:a(e,"hasTests"),hasComments:a(e,"hasComments"),hasDeps:a(e,"hasDeps"),hasBody:a(e,"hasBody"),hasLinkedCommand:a(e,"hasLinkedCommand"),noNotes:m(e,"notes"),noLearnings:m(e,"learnings"),noFiles:m(e,"files")??t,filterFilesMissing:t,noDocs:m(e,"docs")??r,filterDocsMissing:r,noTests:m(e,"tests"),noComments:m(e,"comments"),noDeps:m(e,"deps"),emptyBody:a(e,"emptyBody"),noLinkedCommand:m(e,"linkedCommand")}}function Se(e){let t={status:o(e,"status"),type:o(e,"type"),tag:o(e,"tag"),priority:o(e,"priority"),deadlineBefore:o(e,"deadlineBefore"),deadlineAfter:o(e,"deadlineAfter"),updatedAfter:o(e,"updatedAfter"),updatedBefore:o(e,"updatedBefore"),createdAfter:o(e,"createdAfter"),createdBefore:o(e,"createdBefore"),today:a(e,"today"),recent:a(e,"recent"),ids:o(e,"ids"),assignee:o(e,"assignee"),assigneeFilter:o(e,"assigneeFilter"),parent:o(e,"parent"),sprint:o(e,"sprint"),release:o(e,"release"),limit:o(e,"limit"),offset:o(e,"offset"),noTruncate:m(e,"truncate"),includeBody:a(e,"includeBody"),strictRead:a(e,"strictRead"),compact:a(e,"compact"),brief:a(e,"brief"),full:a(e,"full"),fields:o(e,"fields"),sort:o(e,"sort"),order:o(e,"order"),tree:a(e,"tree"),treeDepth:o(e,"treeDepth"),filterAcMissing:a(e,"filterAcMissing"),filterEstimatesMissing:J(e,["filterEstimatesMissing","filterEstimateMissing"]),filterResolutionMissing:a(e,"filterResolutionMissing"),filterMetadataMissing:a(e,"filterMetadataMissing"),...Y(e)};return T(t,e),t}function Oe(e){return{groupBy:typeof e.groupBy=="string"?e.groupBy:void 0,count:e.count===!0?!0:void 0,completion:e.completion===!0?!0:void 0,sum:typeof e.sum=="string"?e.sum:void 0,avg:typeof e.avg=="string"?e.avg:void 0,includeUnparented:e.includeUnparented===!0||e.include_unparented===!0,status:typeof e.status=="string"?e.status:void 0,type:o(e,"type"),tag:o(e,"tag"),priority:o(e,"priority"),deadlineBefore:o(e,"deadlineBefore"),deadlineAfter:o(e,"deadlineAfter"),assignee:o(e,"assignee"),assigneeFilter:o(e,"assigneeFilter"),parent:o(e,"parent"),sprint:o(e,"sprint"),release:o(e,"release")}}function Ne(e,t,r){if(O(t),r.quiet)return;let n=Array.isArray(t.warnings)?t.warnings:[],i={type:"meta",command:e,count:t.count,now:t.now,filters:t.filters};if(n.length>0&&(i.warnings=n),!!y(`${JSON.stringify(i)}
1
+ import{b as z,c as N,e as M,f as x,g as G,h as p,i as _,j as b,l as H,m as w,o as U,p as k}from"./chunk-ZFBWCKYF.js";import{Z as V,z as j}from"./chunk-MDTH7SAE.js";import{A as v,Af as P,C as R,Cc as I,La as C,Oa as D,Re as y,Ue as L,b as F,oc as O}from"./chunk-HS7OVAUN.js";import{Option as X}from"commander";(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]="e520de00-0810-5356-9290-324cf1d3c133")}catch{}})();async function ue(e,t,r,n,i){let s=C(process.cwd(),n.path),l=await I("command_result",{command:e,args:t,options:r,global:n,pm_root:s,result:i});return l.handled?l.result:i}function de(e,t){for(let[r,n]of Object.entries(t))e.setOptionValueWithSource(r,n,"cli")}function q(e,t){let r=[],n=new Set;for(let i of t.keys){if(!Object.hasOwn(e,i))continue;let s=e[i];if(s!=null){if(typeof s=="string"){r.push(s);continue}if(!Array.isArray(s)||!s.every(l=>typeof l=="string"))return;n.has(s)||(n.add(s),r.push(...s))}}return r.length>0?r.join("; "):void 0}var B=Symbol("pm.resolvedGlobalOptions");function K(e){return typeof e=="object"&&e!==null?e:{}}function u(e,t){return e.find(n=>n.target===t)??{target:t,keys:[t]}}function fe(e,t){e[B]={...t}}function me(e){delete e[B]}function E(e,t){return typeof e[t]=="string"?e[t]:void 0}function pe(e){let t=Q(e),r=e[B];if(r)return{...r,...t.length>0?{command:t}:{}};let n=K(e),i=typeof n.optsWithGlobals=="function"?n.optsWithGlobals():typeof n.opts=="function"?n.opts():{};return{json:i.json===!0?!0:void 0,quiet:!!i.quiet,noChangedFields:i.changedFields===!1,...i.fullChangedFields===!0?{fullChangedFields:!0}:{},idOnly:i.idOnly===!0,...i.lean===!0?{lean:!0}:{},...i.tokenAccounting===!0?{tokenAccounting:!0}:{},outputInclude:E(i,"outputInclude"),outputLimit:E(i,"outputLimit"),outputBudget:E(i,"outputBudget"),...i.outputFormat==="toon"||i.outputFormat==="json"?{outputFormat:i.outputFormat}:{},path:typeof i.pmPath=="string"?i.pmPath:typeof i.path=="string"?i.path:void 0,noExtensions:i.extensions===!1,noPager:!!i.noPager,profile:!!i.profile,...t.length>0?{command:t}:{},...typeof i.author=="string"?{author:i.author}:{}}}function Q(e){let t=[],r=e;for(;r?.parent;)t.unshift(r.name()),r=r.parent;return t.join(" ")}async function ge(e){if(e.json===!0)return e;let t=C(process.cwd(),e.path);if(!await F(D(t)))return e;let r=await P(t);return{...e,defaultOutputFormat:r.output.default_format}}function Z(e,t){let r=t??[];return r.push(e),r}function d(e,t,r){if(typeof r!="string")return;let n=r.trim();n.length!==0&&e.push(t,n)}function f(e,t,r){r===!0&&e.push(t)}function h(e,t,r){if(Array.isArray(r))for(let n of r){if(typeof n!="string")continue;let i=n.trim();i.length!==0&&e.push(t,i)}}function a(e,t){return e[t]===!0?!0:void 0}function m(e,t){return e[t]===!1?!0:void 0}function ye(e,t){return typeof e[t]=="string"?e[t]:void 0}function ee(e,t,r,n=!1,i=void 0){let s=new X(t,r).hideHelp();n&&s.argParser(i??Z),e.addOption(s)}function he(e,t,r){for(let[n,i]of t)ee(e,n,i,r)}function J(e,t){return t.some(r=>e[r]===!0)?!0:void 0}function W(e,t){let r=_(e,t);return typeof r=="string"||typeof r=="number"&&Number.isFinite(r)?r:void 0}function T(e,t){for(let[r,n]of Object.entries(t))r==="__proto__"||r==="constructor"||r==="prototype"||Object.hasOwn(e,r)||(e[r]=n)}function Ae(e,t){let r=["test",e,"--run","--json","--progress"];return h(r,"--add",t.add),h(r,"--add-json",t.addJson),h(r,"--remove",t.remove),d(r,"--match",t.match),d(r,"--only-index",t.onlyIndex),f(r,"--only-last",t.onlyLast),h(r,"--measure",t.measure),d(r,"--metric-below",t.metricBelow),d(r,"--metric-diff",t.metricDiff),$(r,t),d(r,"--author",t.author),d(r,"--message",t.message),f(r,"--force",t.force),r}function $(e,t){d(e,"--timeout",t.timeout),h(e,"--env-set",t.envSet),h(e,"--env-clear",t.envClear),f(e,"--shared-host-safe",t.sharedHostSafe),d(e,"--pm-context",t.pmContext),f(e,"--override-linked-pm-context",t.overrideLinkedPmContext),f(e,"--fail-on-context-mismatch",t.failOnContextMismatch),f(e,"--fail-on-skipped",t.failOnSkipped),f(e,"--fail-on-empty-test-run",t.failOnEmptyTestRun),f(e,"--require-assertions-for-pm",t.requireAssertionsForPm),f(e,"--check-context",t.checkContext),f(e,"--auto-pm-context",t.autoPmContext)}function ve(e){let t=["test-all","--json","--progress"];return d(t,"--status",e.status),d(t,"--limit",e.limit),d(t,"--offset",e.offset),$(t,e),t}function te(e){return e.join(",")}function Re(e,t={}){let r=l=>p(e,u(H,l)),n=l=>b(e,u(w,l)),i=r("type");if(t.requireType!==!1&&i===void 0)throw new R("Missing required option --type <value>. Why required: create resolves runtime schema fields/workflow from item type. Retry: add --type <built-in or configured custom type> (example: --type Task).",v.USAGE);let s={title:r("title"),description:r("description"),type:i,template:r("template"),createMode:r("createMode"),schedulePreset:r("schedulePreset"),status:r("status"),closeReason:r("closeReason"),completedAt:r("completedAt"),priority:r("priority"),tags:r("tags"),addTags:n("addTags"),body:r("body"),deadline:r("deadline"),estimatedMinutes:r("estimatedMinutes"),acceptanceCriteria:q(e,u(w,"acceptanceCriteria")),definitionOfReady:r("definitionOfReady"),order:r("order"),rank:r("rank"),goal:r("goal"),objective:r("objective"),value:r("value"),impact:r("impact"),outcome:r("outcome"),whyNow:r("whyNow"),author:r("author"),message:r("message"),assignee:r("assignee"),parent:r("parent"),allowMissingParent:J(e,["allowMissingParent","allow_missing_parent"])===!0,allowDuplicate:a(e,"allowDuplicate")===!0,reviewer:r("reviewer"),risk:r("risk"),confidence:r("confidence"),sprint:r("sprint"),release:r("release"),blockedBy:r("blockedBy"),blockedReason:r("blockedReason"),unblockNote:r("unblockNote"),reporter:r("reporter"),severity:r("severity"),environment:r("environment"),reproSteps:r("reproSteps"),resolution:r("resolution"),expectedResult:r("expectedResult"),actualResult:r("actualResult"),affectedVersion:r("affectedVersion"),fixedVersion:r("fixedVersion"),component:r("component"),regression:e.regression===!0?"true":r("regression"),customerImpact:r("customerImpact"),dep:n("dep"),comment:n("comment"),note:n("note"),learning:n("learning"),file:n("file"),test:n("test"),doc:n("doc"),reminder:n("reminder"),event:n("event"),typeOption:n("typeOption"),field:n("field"),unset:n("unset"),clearDeps:a(e,"clearDeps"),clearComments:a(e,"clearComments"),clearNotes:a(e,"clearNotes"),clearLearnings:a(e,"clearLearnings"),clearFiles:a(e,"clearFiles"),clearTests:a(e,"clearTests"),clearDocs:a(e,"clearDocs"),clearReminders:a(e,"clearReminders"),clearEvents:a(e,"clearEvents"),clearTypeOptions:a(e,"clearTypeOptions")};return T(s,e),s}function Ce(e){let t=i=>p(e,u(U,i)),r=i=>b(e,u(k,i)),n={title:t("title"),description:t("description"),body:t("body"),status:t("status"),closeReason:t("closeReason"),priority:t("priority"),type:t("type"),tags:t("tags"),addTags:r("addTags"),removeTags:r("removeTags"),deadline:t("deadline"),estimatedMinutes:t("estimatedMinutes"),acceptanceCriteria:q(e,u(k,"acceptanceCriteria")),addAc:r("addAc"),removeAc:r("removeAc"),definitionOfReady:t("definitionOfReady"),order:t("order"),rank:t("rank"),goal:t("goal"),objective:t("objective"),value:t("value"),impact:t("impact"),outcome:t("outcome"),whyNow:t("whyNow"),author:t("author"),message:t("message"),force:!!e.force,ownershipMetadataBypass:e.ownershipMetadataBypass===!0?!0:void 0,ownershipDependencyBypass:e.ownershipDependencyBypass===!0?!0:void 0,assignee:t("assignee"),parent:t("parent"),reviewer:t("reviewer"),risk:t("risk"),confidence:t("confidence"),sprint:t("sprint"),release:t("release"),blockedBy:t("blockedBy"),blockedReason:t("blockedReason"),unblockNote:t("unblockNote"),reporter:t("reporter"),severity:t("severity"),environment:t("environment"),reproSteps:t("reproSteps"),resolution:t("resolution"),expectedResult:t("expectedResult"),actualResult:t("actualResult"),affectedVersion:t("affectedVersion"),fixedVersion:t("fixedVersion"),component:t("component"),regression:e.regression===!0?"true":t("regression"),customerImpact:t("customerImpact"),dep:r("dep"),depRemove:r("depRemove"),replaceDeps:a(e,"replaceDeps"),replaceTests:a(e,"replaceTests"),replaceFiles:a(e,"replaceFiles"),replaceDocs:a(e,"replaceDocs"),comment:r("comment"),note:r("note"),learning:r("learning"),file:r("file"),test:r("test"),doc:r("doc"),reminder:r("reminder"),event:r("event"),typeOption:r("typeOption"),field:r("field"),unset:r("unset"),clearDeps:a(e,"clearDeps"),clearComments:a(e,"clearComments"),clearNotes:a(e,"clearNotes"),clearLearnings:a(e,"clearLearnings"),clearFiles:a(e,"clearFiles"),clearTests:a(e,"clearTests"),clearDocs:a(e,"clearDocs"),clearReminders:a(e,"clearReminders"),clearEvents:a(e,"clearEvents"),clearTypeOptions:a(e,"clearTypeOptions")};return T(n,e),n}var re=new Set(["filterStatus","filterType","filterTag","filterPriority","filterDeadlineBefore","filterDeadlineAfter","filterUpdatedAfter","filterUpdatedBefore","filterCreatedAfter","filterCreatedBefore","filterAssignee","filterAssigneeFilter","filterAssignee_filter","filterParent","filterSprint","filterRelease","filterAcMissing","filterEstimatesMissing","filterEstimateMissing","filterResolutionMissing","filterMetadataMissing","filterReviewerMissing","filterRiskMissing","filterConfidenceMissing","filterSprintMissing","filterReleaseMissing","filterHasNotes","filterNoNotes","filterHasLearnings","filterNoLearnings","filterHasFiles","filterNoFiles","filterHasDocs","filterNoDocs","filterHasTests","filterNoTests","filterHasComments","filterNoComments","filterHasDeps","filterNoDeps","filterHasBody","filterEmptyBody","filterHasLinkedCommand","filterNoLinkedCommand","ids","limit","offset","dryRun","rollback","checkpoint"]);function Te(e){let t={};for(let[r,n]of Object.entries(e))re.has(r)||(t[r]=n);return t}function o(e,t){let r=u(z,t),n=p(e,r);if(n!==void 0)return n;for(let i of r.keys){let s=e[i];if(Array.isArray(s)){let l=s.filter(c=>typeof c=="string");if(l.length>0)return l.join(",")}if(t==="ids"&&typeof s=="string")return s;if(typeof s=="number"&&Number.isFinite(s))return String(s)}}function Y(e){let t=a(e,"filterFilesMissing"),r=a(e,"filterDocsMissing");return{filterReviewerMissing:a(e,"filterReviewerMissing"),filterRiskMissing:a(e,"filterRiskMissing"),filterConfidenceMissing:a(e,"filterConfidenceMissing"),filterSprintMissing:a(e,"filterSprintMissing"),filterReleaseMissing:a(e,"filterReleaseMissing"),hasNotes:a(e,"hasNotes"),hasLearnings:a(e,"hasLearnings"),hasFiles:a(e,"hasFiles"),hasDocs:a(e,"hasDocs"),hasTests:a(e,"hasTests"),hasComments:a(e,"hasComments"),hasDeps:a(e,"hasDeps"),hasBody:a(e,"hasBody"),hasLinkedCommand:a(e,"hasLinkedCommand"),noNotes:m(e,"notes"),noLearnings:m(e,"learnings"),noFiles:m(e,"files")??t,filterFilesMissing:t,noDocs:m(e,"docs")??r,filterDocsMissing:r,noTests:m(e,"tests"),noComments:m(e,"comments"),noDeps:m(e,"deps"),emptyBody:a(e,"emptyBody"),noLinkedCommand:m(e,"linkedCommand")}}function Se(e){let t={status:o(e,"status"),type:o(e,"type"),tag:o(e,"tag"),priority:o(e,"priority"),deadlineBefore:o(e,"deadlineBefore"),deadlineAfter:o(e,"deadlineAfter"),updatedAfter:o(e,"updatedAfter"),updatedBefore:o(e,"updatedBefore"),createdAfter:o(e,"createdAfter"),createdBefore:o(e,"createdBefore"),today:a(e,"today"),recent:a(e,"recent"),ids:o(e,"ids"),assignee:o(e,"assignee"),assigneeFilter:o(e,"assigneeFilter"),parent:o(e,"parent"),sprint:o(e,"sprint"),release:o(e,"release"),limit:o(e,"limit"),offset:o(e,"offset"),noTruncate:m(e,"truncate"),includeBody:a(e,"includeBody"),strictRead:a(e,"strictRead"),compact:a(e,"compact"),brief:a(e,"brief"),full:a(e,"full"),fields:o(e,"fields"),sort:o(e,"sort"),order:o(e,"order"),tree:a(e,"tree"),treeDepth:o(e,"treeDepth"),filterAcMissing:a(e,"filterAcMissing"),filterEstimatesMissing:J(e,["filterEstimatesMissing","filterEstimateMissing"]),filterResolutionMissing:a(e,"filterResolutionMissing"),filterMetadataMissing:a(e,"filterMetadataMissing"),...Y(e)};return T(t,e),t}function Oe(e){return{groupBy:typeof e.groupBy=="string"?e.groupBy:void 0,count:e.count===!0?!0:void 0,completion:e.completion===!0?!0:void 0,sum:typeof e.sum=="string"?e.sum:void 0,avg:typeof e.avg=="string"?e.avg:void 0,includeUnparented:e.includeUnparented===!0||e.include_unparented===!0,status:typeof e.status=="string"?e.status:void 0,type:o(e,"type"),tag:o(e,"tag"),priority:o(e,"priority"),deadlineBefore:o(e,"deadlineBefore"),deadlineAfter:o(e,"deadlineAfter"),assignee:o(e,"assignee"),assigneeFilter:o(e,"assigneeFilter"),parent:o(e,"parent"),sprint:o(e,"sprint"),release:o(e,"release")}}function Ne(e,t,r){if(O(t),r.quiet)return;let n=Array.isArray(t.warnings)?t.warnings:[],i={type:"meta",command:e,count:t.count,now:t.now,filters:t.filters};if(n.length>0&&(i.warnings=n),!!y(`${JSON.stringify(i)}
2
2
  `)){for(let s of t.items)if(!y(`${JSON.stringify({type:"item",command:e,item:s})}
3
3
  `))return;y(`${JSON.stringify({type:"end",command:e,count:t.count})}
4
4
  `)}}function Me(e,t,r){if(O(e),r.quiet)return;let n={type:"meta",command:"activity",count:e.count,filters:{id:t.id??null,op:t.op??null,author:t.author??null,from:t.from??null,to:t.to??null,limit:t.limit??null}};if(!y(`${JSON.stringify(n)}
5
5
  `))return;let i=e.compact&&e.compact_activity?e.compact_activity:e.activity??[];for(let s of i)if(!y(`${JSON.stringify({type:"entry",command:"activity",entry:s})}
6
6
  `))return;y(`${JSON.stringify({type:"end",command:"activity",count:e.count})}
7
7
  `)}function xe(e){let t=S=>p(e,u(N,S)),r=S=>{let A=_(e,u(N,S));if(typeof A=="string"||typeof A=="number"&&Number.isFinite(A))return A},n=t("fields"),i=e.compact===!0,s=e.full===!0,l=!i&&!s&&n===void 0,g={mode:e.semantic===!0?"semantic":e.hybrid===!0?"hybrid":t("mode"),matchMode:t("matchMode"),minScore:r("minScore"),count:a(e,"count"),semanticWeight:r("semanticWeight"),includeLinked:a(e,"includeLinked"),titleExact:a(e,"titleExact"),phraseExact:a(e,"phraseExact"),highlight:a(e,"highlight"),status:t("status"),type:t("type"),tag:t("tag"),priority:t("priority"),deadlineBefore:t("deadlineBefore"),deadlineAfter:t("deadlineAfter"),updatedAfter:t("updatedAfter"),updatedBefore:t("updatedBefore"),createdAfter:t("createdAfter"),createdBefore:t("createdBefore"),assignee:t("assignee"),sprint:t("sprint"),release:t("release"),parent:t("parent"),limit:t("limit"),fields:n,compact:i||l?!0:void 0,full:a(e,"full"),...Y(e)};return T(g,e),g}function _e(e){let t=e.map(r=>r.trim()).filter(r=>r.length>0).join(" ");if(t.length===0)throw new R("Search query must not be empty",v.USAGE);return t}function be(e){let t=r=>p(e,u(G,r));return{id:t("id"),op:t("op"),author:t("author"),from:t("from"),to:t("to"),limit:t("limit"),compact:e.full===!0||e.provenance===!0?!1:e.compact!==!1,unbounded:a(e,"unbounded"),provenance:a(e,"provenance"),provenanceSummary:a(e,"provenanceSummary"),harness:Array.isArray(e.harness)?e.harness:void 0,agentInstance:Array.isArray(e.agentInstance)?e.agentInstance:void 0,provenanceFilter:Array.isArray(e.provenanceFilter)?e.provenanceFilter:void 0}}var ne=new Set(["","rows","ndjson","jsonl","true","1","yes","on"]),ie=new Set(["false","off","none","0"]);function we(e){if(e===!0)return!0;if(e===!1||e===void 0||e===null)return!1;if(typeof e=="string"){let t=e.trim().toLowerCase();if(ne.has(t))return!0;if(ie.has(t))return!1}throw new R("Activity --stream accepts rows|ndjson|jsonl (or no value)",v.USAGE)}function ke(e){let t=l=>p(e,u(M,l)),r=l=>W(e,u(M,l)),n=e.section,i=Array.isArray(n)?n.filter(l=>typeof l=="string"&&l.trim().length>0):typeof n=="string"&&n.trim().length>0?[n]:void 0,s={date:t("date"),from:t("from"),to:t("to"),past:e.past===!0?!0:void 0,type:t("type"),tag:t("tag"),priority:t("priority"),assignee:t("assignee"),assigneeFilter:t("assigneeFilter"),sprint:t("sprint"),release:t("release"),parent:t("parent"),limit:t("limit"),format:t("format"),depth:t("depth"),fields:t("fields"),section:i&&i.length>0?i:void 0,activityLimit:t("activityLimit"),staleThreshold:t("staleThreshold"),tokenBudget:r("tokenBudget"),noExtensionHealth:e.extensionHealth===!1?!0:void 0,noTags:e.tags===!1?!0:void 0};for(let[l,c]of Object.entries(e))Object.hasOwn(s,l)||(s[l]=c);return s}function Ee(e){let t=i=>p(e,u(x,i)),r=i=>W(e,u(x,i)),n={type:t("type"),tag:t("tag"),priority:r("priority"),assignee:t("assignee"),assigneeFilter:t("assigneeFilter"),sprint:t("sprint"),release:t("release"),parent:t("parent"),limit:t("limit"),blockedLimit:t("blockedLimit"),readyOnly:e.readyOnly===!0||e.ready_only===!0?!0:void 0,format:t("format"),tokenBudget:r("tokenBudget")};for(let[i,s]of Object.entries(e))Object.hasOwn(n,i)||(n[i]=s);return n}function ae(e){if(!e||typeof e!="object")return[];let t=e,r=new Set,n=c=>{if(typeof c!="string")return;let g=c.trim();g.length!==0&&r.add(g)};n(t.id);let i=t.item;i&&typeof i=="object"&&n(i.id);let s=t.ids;if(Array.isArray(s))for(let c of s)n(c);let l=t.items;if(Array.isArray(l))for(let c of l)!c||typeof c!="object"||n(c.id);return[...r].sort((c,g)=>c.localeCompare(g))}async function Be(e,t){let r=C(process.cwd(),e.path),n=await V(r,ae(t),{background:!j()});e.profile&&n.warnings.length>0&&L(`profile:search_refresh_warnings=${te(n.warnings)}`)}export{ue as a,de as b,fe as c,me as d,pe as e,Q as f,ge as g,Z as h,ye as i,ee as j,he as k,Ae as l,ve as m,te as n,Re as o,Ce as p,Te as q,Se as r,Oe as s,Ne as t,Me as u,xe as v,_e as w,be as x,we as y,ke as z,Ee as A,Be as B};
8
- //# sourceMappingURL=chunk-OPVH7SKD.js.map
8
+ //# sourceMappingURL=chunk-AJE3AHPD.js.map
@@ -1,2 +1,2 @@
1
- import{c as m,d as p,g as w}from"./chunk-54FNT7U2.js";import{i as f}from"./chunk-42E7YPLG.js";import{A as i,C as s}from"./chunk-GE4KCSZP.js";import{readFile as y}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]="500e83b0-28a8-58b1-a625-2d81eb245eb4")}catch{}})();async function c(e,t){let d=e.add!==void 0,a=e.stdin===!0,o=typeof e.file=="string",l=Number(d)+Number(a)+Number(o);if(l===0)return;if(l>1)throw new s("Specify comment text using only one input source: --add, --stdin, or --file",i.USAGE);if(d)return{value:await t.resolveValue(e.add,"--add")??"",emptyFlag:"--add"};if(a)return{value:await t.resolveValue("-","--stdin")??"",emptyFlag:"--stdin"};let n=e.file.trim();if(!n)throw new s("--file path cannot be empty",i.USAGE);try{return{value:await y(n,"utf8"),emptyFlag:"--file"}}catch(r){if(p(r)&&r.code==="ENOENT")throw new s(`--file path not found: ${n}`,i.USAGE);let u=r instanceof Error?r.message:String(r);throw new s(`Failed to read --file path "${n}": ${u}`,i.USAGE)}}async function h(e,t){let d=e.edit,a=e.delete,o=d!==void 0,l=a!==void 0;if(o&&l)throw new s("Specify only one of --edit or --delete",i.USAGE);if(d!==void 0&&(!Number.isInteger(d)||d<1))throw new s("--edit must be a positive integer",i.USAGE);if(a!==void 0&&(!Number.isInteger(a)||a<1))throw new s("--delete must be a positive integer",i.USAGE);if(l){if(await c(e,t)!==void 0)throw new s("--delete does not take comment text",i.USAGE);return{mode:"delete",index:a}}if(o){let u=await c(e,t);if(u===void 0)throw new s("--edit requires replacement text via positional [text], --add, --stdin, or --file",i.USAGE);return{mode:"edit",index:d,value:u.value,emptyFlag:u.emptyFlag}}let n=await c(e,t);return n===void 0?{mode:"list"}:{mode:n.emptyFlag==="--add"?"add":n.emptyFlag==="--stdin"?"stdin":"file",value:n.value,emptyFlag:n.emptyFlag}}async function x(e,t,d){let a=f(),o=await h(t,a),l=o.mode==="add"||o.mode==="edit",n=o.value??"";return w(e,t,d,{input:{...o,rawValue:t.add??n,value:l?m(n,{stripPlainTextPrefix:!0}):n},collectionKey:"comments",op:"comment_add",editOp:"comment_edit",deleteOp:"comment_delete",parseText:r=>r,createEntry:r=>r,bypassOwnershipConflict:!!(o.mode==="add"&&t.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 comments pm-a1b2 --add "review note" --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{x as a};
2
- //# sourceMappingURL=chunk-V3774P7D.js.map
1
+ import{c as m,d as p,g as w}from"./chunk-5PBP2ZP3.js";import{i as f}from"./chunk-R6LSRGPS.js";import{A as i,C as s}from"./chunk-HS7OVAUN.js";import{readFile as y}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]="500e83b0-28a8-58b1-a625-2d81eb245eb4")}catch{}})();async function c(e,t){let d=e.add!==void 0,a=e.stdin===!0,o=typeof e.file=="string",l=Number(d)+Number(a)+Number(o);if(l===0)return;if(l>1)throw new s("Specify comment text using only one input source: --add, --stdin, or --file",i.USAGE);if(d)return{value:await t.resolveValue(e.add,"--add")??"",emptyFlag:"--add"};if(a)return{value:await t.resolveValue("-","--stdin")??"",emptyFlag:"--stdin"};let n=e.file.trim();if(!n)throw new s("--file path cannot be empty",i.USAGE);try{return{value:await y(n,"utf8"),emptyFlag:"--file"}}catch(r){if(p(r)&&r.code==="ENOENT")throw new s(`--file path not found: ${n}`,i.USAGE);let u=r instanceof Error?r.message:String(r);throw new s(`Failed to read --file path "${n}": ${u}`,i.USAGE)}}async function h(e,t){let d=e.edit,a=e.delete,o=d!==void 0,l=a!==void 0;if(o&&l)throw new s("Specify only one of --edit or --delete",i.USAGE);if(d!==void 0&&(!Number.isInteger(d)||d<1))throw new s("--edit must be a positive integer",i.USAGE);if(a!==void 0&&(!Number.isInteger(a)||a<1))throw new s("--delete must be a positive integer",i.USAGE);if(l){if(await c(e,t)!==void 0)throw new s("--delete does not take comment text",i.USAGE);return{mode:"delete",index:a}}if(o){let u=await c(e,t);if(u===void 0)throw new s("--edit requires replacement text via positional [text], --add, --stdin, or --file",i.USAGE);return{mode:"edit",index:d,value:u.value,emptyFlag:u.emptyFlag}}let n=await c(e,t);return n===void 0?{mode:"list"}:{mode:n.emptyFlag==="--add"?"add":n.emptyFlag==="--stdin"?"stdin":"file",value:n.value,emptyFlag:n.emptyFlag}}async function x(e,t,d){let a=f(),o=await h(t,a),l=o.mode==="add"||o.mode==="edit",n=o.value??"";return w(e,t,d,{input:{...o,rawValue:t.add??n,value:l?m(n,{stripPlainTextPrefix:!0}):n},collectionKey:"comments",op:"comment_add",editOp:"comment_edit",deleteOp:"comment_delete",parseText:r=>r,createEntry:r=>r,bypassOwnershipConflict:!!(o.mode==="add"&&t.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 comments pm-a1b2 --add "review note" --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{x as a};
2
+ //# sourceMappingURL=chunk-AOBDLU4T.js.map