@unbrained/pm-cli 2026.10.21 → 2026.10.22

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 (138) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +117 -77
  3. package/dist/cli/error-guidance.js +2 -2
  4. package/dist/cli-bundle/bundle-manifest.json +1 -1
  5. package/dist/cli-bundle/chunks/{chunk-KBSVPUFD.js → chunk-35ISFIPC.js} +35 -35
  6. package/dist/cli-bundle/chunks/{chunk-DIR3YEFD.js → chunk-5LSN7K4N.js} +2 -2
  7. package/dist/cli-bundle/chunks/{chunk-DR6DUBTU.js → chunk-7OTYULIJ.js} +3 -3
  8. package/dist/cli-bundle/chunks/{chunk-TMXWWOPJ.js → chunk-AOAQDCXX.js} +2 -2
  9. package/dist/cli-bundle/chunks/{chunk-ZNKFMIVA.js → chunk-BAIVTLJM.js} +2 -2
  10. package/dist/cli-bundle/chunks/{chunk-NNB65OOO.js → chunk-C37RDYZI.js} +2 -2
  11. package/dist/cli-bundle/chunks/{chunk-EMGMLKRV.js → chunk-E3JC3WQL.js} +4 -4
  12. package/dist/cli-bundle/chunks/{chunk-5PZ7JNMI.js → chunk-HC2DCGFA.js} +2 -2
  13. package/dist/cli-bundle/chunks/{chunk-V5GJTXYW.js → chunk-J444ZX23.js} +26 -26
  14. package/dist/cli-bundle/chunks/{chunk-V3XONSVC.js → chunk-LIC5EUQS.js} +2 -2
  15. package/dist/cli-bundle/chunks/{chunk-DJQVNDXO.js → chunk-MV3KYY2A.js} +6 -6
  16. package/dist/cli-bundle/chunks/chunk-O67N62DT.js +2 -0
  17. package/dist/cli-bundle/chunks/{chunk-C6SAXKBO.js → chunk-PCPOTFJP.js} +2 -2
  18. package/dist/cli-bundle/chunks/chunk-TNU3XVPC.js +20 -0
  19. package/dist/cli-bundle/chunks/{chunk-MOC5BJHW.js → chunk-URV4VHQ4.js} +2 -2
  20. package/dist/cli-bundle/chunks/{chunk-QPV6UD55.js → chunk-UYYTV2TX.js} +2 -2
  21. package/dist/cli-bundle/chunks/chunk-VO3KDIU7.js +9 -0
  22. package/dist/cli-bundle/chunks/{indexed-receipt-blobs-65XXSPPR.js → indexed-receipt-blobs-L3BOTMZN.js} +2 -2
  23. package/dist/cli-bundle/chunks/{mutation-admission-FNWOVJLN.js → mutation-admission-TATOFEXF.js} +2 -2
  24. package/dist/cli-bundle/chunks/{register-list-query-6PT5Y2EZ.js → register-list-query-GULR2IYO.js} +2 -2
  25. package/dist/cli-bundle/chunks/{register-mutation-TAIQV46L.js → register-mutation-HLSQ4WVW.js} +2 -2
  26. package/dist/cli-bundle/chunks/{register-operations-ONIRO22G.js → register-operations-FE3GGA7O.js} +2 -2
  27. package/dist/cli-bundle/chunks/{register-setup-OQMUZBJV.js → register-setup-XUIKAIZA.js} +2 -2
  28. package/dist/cli-bundle/chunks/{stage-FCPVFO3B.js → stage-QCPZBZRC.js} +2 -2
  29. package/dist/cli-bundle/focused-chunks/chunk-25L3L2PF.js +2 -0
  30. package/dist/cli-bundle/focused-chunks/{chunk-PDOWLRHC.js → chunk-25NQRZ7J.js} +2 -2
  31. package/dist/cli-bundle/focused-chunks/{chunk-XE7P7N5X.js → chunk-2GFTVXKZ.js} +6 -6
  32. package/dist/cli-bundle/focused-chunks/chunk-46HBJC6J.js +2 -0
  33. package/dist/cli-bundle/focused-chunks/{chunk-32ZKLRWM.js → chunk-A52W6GLA.js} +2 -2
  34. package/dist/cli-bundle/focused-chunks/chunk-CB7TSZ7P.js +3 -0
  35. package/dist/cli-bundle/focused-chunks/{chunk-5IMM7GOF.js → chunk-CX5FNEFC.js} +2 -2
  36. package/dist/cli-bundle/focused-chunks/chunk-DVNUHTVK.js +9 -0
  37. package/dist/cli-bundle/focused-chunks/{chunk-VD64TPXI.js → chunk-EHPRSWJE.js} +2 -2
  38. package/dist/cli-bundle/focused-chunks/{chunk-P5D7MHDS.js → chunk-GC4VMLXL.js} +15 -15
  39. package/dist/cli-bundle/focused-chunks/{chunk-CUWNNU4N.js → chunk-GVKYTDOH.js} +2 -2
  40. package/dist/cli-bundle/focused-chunks/{chunk-HNCMYF2W.js → chunk-KM77WU5U.js} +2 -2
  41. package/dist/cli-bundle/focused-chunks/chunk-QGDKWULS.js +2 -0
  42. package/dist/cli-bundle/focused-chunks/{chunk-YIWDX6KO.js → chunk-QWKCQ5PW.js} +2 -2
  43. package/dist/cli-bundle/focused-chunks/chunk-SOVXHW6Z.js +2 -0
  44. package/dist/cli-bundle/focused-chunks/{chunk-4HJVAUFX.js → chunk-SXVJRLLP.js} +2 -2
  45. package/dist/cli-bundle/focused-chunks/{chunk-KVYUQS6Y.js → chunk-TMN3RAXZ.js} +2 -2
  46. package/dist/cli-bundle/focused-chunks/{chunk-7UD7XTOE.js → chunk-UQ5JPBY2.js} +11 -11
  47. package/dist/cli-bundle/focused-chunks/{chunk-JMZPZQHR.js → chunk-UUPJ6OZL.js} +13 -13
  48. package/dist/cli-bundle/focused-chunks/{chunk-JI3RXXRN.js → chunk-VYAZND5Q.js} +2 -2
  49. package/dist/cli-bundle/focused-chunks/{chunk-T27TLSEU.js → chunk-W2CND3BD.js} +3 -3
  50. package/dist/cli-bundle/focused-chunks/{chunk-44353U27.js → chunk-XX5JQCLF.js} +2 -2
  51. package/dist/cli-bundle/focused-chunks/{indexed-receipt-blobs-CRP6HAZY.js → indexed-receipt-blobs-AAQOKO5B.js} +2 -2
  52. package/dist/cli-bundle/focused-chunks/{mutation-admission-KM57KDDF.js → mutation-admission-TBKR4KRM.js} +2 -2
  53. package/dist/cli-bundle/focused-chunks/{stage-UJYGWNZ7.js → stage-RM6MJIMT.js} +2 -2
  54. package/dist/cli-bundle/main.js +21 -21
  55. package/dist/cli-bundle/sdk-authoring.js +1 -1
  56. package/dist/cli-bundle/sdk-contracts.js +2 -2
  57. package/dist/cli-bundle/sdk-core.js +21 -21
  58. package/dist/cli-bundle/sdk-governance.js +1 -1
  59. package/dist/cli-bundle/sdk-graph.js +1 -1
  60. package/dist/cli-bundle/sdk-merge.js +58 -58
  61. package/dist/cli-bundle/sdk-query.js +1 -1
  62. package/dist/cli-bundle/sdk-runtime.js +1 -1
  63. package/dist/cli-bundle/sdk-testing.js +1 -1
  64. package/dist/cli-bundle/sdk.js +7 -7
  65. package/dist/mcp/server.d.ts +2 -2
  66. package/dist/mcp/server.js +1 -1
  67. package/dist/sdk/agent/command-recovery.d.ts +2 -0
  68. package/dist/sdk/agent/command-recovery.js +1 -1
  69. package/dist/sdk/cli-contracts/tool-option-contracts.d.ts +6 -0
  70. package/dist/sdk/cli-contracts/tool-option-contracts.js +1 -1
  71. package/dist/sdk/cli-contracts/tool-schema.js +1 -1
  72. package/dist/sdk/context-intent-contracts.d.ts +13 -0
  73. package/dist/sdk/context-intent-contracts.js +1 -1
  74. package/dist/sdk/contracts.d.ts +1 -1
  75. package/dist/sdk/contracts.js +1 -1
  76. package/dist/sdk/core.d.ts +2 -2
  77. package/dist/sdk/core.js +1 -1
  78. package/dist/sdk/define.d.ts +15 -16
  79. package/dist/sdk/define.js +1 -1
  80. package/dist/sdk/dependencies.js +1 -1
  81. package/dist/sdk/generated/generated-error-code-catalog-part-1.js +1 -1
  82. package/dist/sdk/merge/install.js +2 -2
  83. package/dist/sdk/public-surface.json +1 -1
  84. package/dist/sdk/query/context.d.ts +5 -0
  85. package/dist/sdk/query/context.js +2 -2
  86. package/dist/sdk/read-output/session-result.d.ts +39 -0
  87. package/dist/sdk/read-output/session-result.js +2 -0
  88. package/dist/sdk/read-output-contracts.d.ts +18 -5
  89. package/dist/sdk/read-output-contracts.js +1 -1
  90. package/dist/sdk/read-output-session.d.ts +2 -0
  91. package/dist/sdk/read-output-session.js +1 -1
  92. package/dist/sdk/relationship-context.js +1 -1
  93. package/dist/sdk/runtime-input.js +1 -1
  94. package/dist/sdk/runtime-primitives.d.ts +6 -0
  95. package/dist/sdk/runtime-primitives.js +1 -1
  96. package/dist/sdk/runtime.d.ts +10 -8
  97. package/dist/sdk/runtime.js +1 -1
  98. package/dist/sdk/workspace.d.ts +3 -1
  99. package/dist/sdk/workspace.js +8 -5
  100. package/docs/CONFIGURATION.md +9 -0
  101. package/docs/DEVELOPMENT_DEPENDENCY_SECURITY.md +30 -0
  102. package/docs/MCP_OPTION_CONFORMANCE.md +27 -1
  103. package/docs/MERGE_SAFETY.md +8 -0
  104. package/docs/READ_OUTPUT_CONTRACTS.md +79 -0
  105. package/docs/RELATIONSHIP_GRAPH.md +15 -0
  106. package/docs/RELEASING.md +8 -0
  107. package/docs/SDK.md +37 -7
  108. package/docs/TESTING.md +5 -0
  109. package/marketplace.json +1 -1
  110. package/package.json +1 -1
  111. package/packages/pm-beads/package.json +1 -1
  112. package/packages/pm-calendar/package.json +1 -1
  113. package/packages/pm-command-kit/package.json +1 -1
  114. package/packages/pm-digital-twin/package.json +1 -1
  115. package/packages/pm-governance-audit/package.json +1 -1
  116. package/packages/pm-guide-shell/package.json +1 -1
  117. package/packages/pm-kanban/package.json +1 -1
  118. package/packages/pm-lifecycle-hooks/package.json +1 -1
  119. package/packages/pm-linked-test-adapters/package.json +1 -1
  120. package/packages/pm-search-advanced/package.json +1 -1
  121. package/packages/pm-templates/package.json +1 -1
  122. package/packages/pm-todos/package.json +1 -1
  123. package/packages/pm-vcs/package.json +1 -1
  124. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  125. package/plugins/pm-claude/package.json +1 -1
  126. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  127. package/plugins/pm-codex/package.json +1 -1
  128. package/plugins/pm-codex/plugin.json +1 -1
  129. package/runtime-dependencies.json +1 -1
  130. package/dist/cli-bundle/chunks/chunk-4OYU5OXQ.js +0 -6
  131. package/dist/cli-bundle/chunks/chunk-DIKQ2AL5.js +0 -2
  132. package/dist/cli-bundle/chunks/chunk-MZZIAC6S.js +0 -20
  133. package/dist/cli-bundle/focused-chunks/chunk-6QSZHRM7.js +0 -6
  134. package/dist/cli-bundle/focused-chunks/chunk-E2S42XCT.js +0 -2
  135. package/dist/cli-bundle/focused-chunks/chunk-GRSQGMRR.js +0 -2
  136. package/dist/cli-bundle/focused-chunks/chunk-IAGFXKMZ.js +0 -3
  137. package/dist/cli-bundle/focused-chunks/chunk-O3M6YWVL.js +0 -2
  138. package/dist/cli-bundle/focused-chunks/chunk-VE6MTRH5.js +0 -2
@@ -1,2 +1,2 @@
1
- import{Ba as X,Ca as Y,Da as Q,Ea as J,O as De,P as ke,S as Ke,T as xe}from"./chunk-P5D7MHDS.js";import{t as pe}from"./chunk-44353U27.js";import{g as ze,m as He,n as qe,q as Ve}from"./chunk-E2S42XCT.js";import{C as Be,F as Ge,G as k,H as $e,e as q,f as Re,h as Oe,i as Ne,k as Pe,l as Ue,t as V,v as W,x as je,z as D}from"./chunk-YIWDX6KO.js";import{Ba as Me,Fa as Ae,_a as w,ca as Ee,d as ve,db as C,r as Fe,ra as Te,sa as Ce,t as T,ta as Le}from"./chunk-JI3RXXRN.js";import{j as A,l as ye}from"./chunk-KVYUQS6Y.js";import{Ad as R,Bd as Se,Ca as N,Cd as G,Dc as _e,aa as h,ee as $,fe as z,he as H,ic as E,md as he,nd as be,od as B,pc as ge,qa as I,ra as O,sd as we,wa as b,wd as Ie}from"./chunk-JMZPZQHR.js";import{B as fe,y as m,z as f}from"./chunk-3LWH2RJC.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]="738a98bc-eaf0-578d-88e3-1c5f83c8894b")}catch{}})();function P(e,t="--limit"){if(e===void 0)return;let r=String(e).trim(),i=r.length===0?Number.NaN:Number(r);if(!Number.isInteger(i)||i<0)throw new f(`${t} must be a non-negative integer`,m.USAGE);return i}function We(e,t="--priority"){if(e===void 0)return;let r=String(e).trim(),i=r.length===0?Number.NaN:Number(r);if(!Number.isInteger(i)||i<0||i>4)throw new f(`${t} filter must be 0..4`,m.USAGE);return i}function si(e,t,r="--type"){if(e===void 0)return;let i=O(e,t);if(!i)throw new f(`${r} filter must be one of ${t.types.join("|")}`,m.USAGE);return i}(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]="75ecca0c-fac8-5a9b-9043-c65731daad4a")}catch{}})();function Z(e,t){if(e===void 0)return;let r=[],i="";for(let o=0;o<e.length;o+=1){let a=e[o];if(a==="\\"){let l=e[o+1];if(l===","||l==="\\"){i+=l,o+=1;continue}i+=a;continue}if(a===","){r.push(i),i="";continue}i+=a}r.push(i);let n=r.map(o=>o.trim());if(n.some(o=>o.length===0))throw new f(`${t.label} requires at least one non-empty value`,m.USAGE);let s=n.map(o=>t.normalize?.(o)??o);return[...new Set(s)]}function K(e,t){let r=Z(e,t);return r===void 0?void 0:new Set(r)}function Xe(e,t,r="--type"){let i=Z(e,{label:r});if(i===void 0)return;let n=i.map(s=>{let o=O(s,t);if(!o)throw new f(`${r} filter token "${s}" must be one of ${t.types.join("|")}`,m.USAGE);return o});return new Set(n)}function Ye(e,t="--priority"){let r=Z(e,{label:t});if(r!==void 0)return new Set(r.map(i=>We(i,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]="f9d73d74-7c4e-5ea9-b34c-c984b4c15ab3")}catch{}})();function Qe(e,t){let r=e.trim().toLowerCase();return t.alias_to_id.get(r)??r}function tt(e){return{isTerminal(t){return e.terminal_statuses.has(Qe(t,e))},classify(t){let r=Qe(t,e);return e.terminal_canceled_statuses.has(r)?"canceled":e.terminal_statuses.has(r)?"closed":e.blocked_statuses.has(r)?"blocked":e.draft_statuses.has(r)?"draft":r===e.open_status?"open":e.active_statuses.has(r)?"in_progress":"other"}}}function ee(e){return h(e.acceptance_criteria)===void 0}function te(e){return!Number.isFinite(e.estimated_minutes)}function rt(e,t){return t.isTerminal(e.status)?h(e.resolution)===void 0:!1}function Yt(e){return h(e.reviewer)===void 0}function Qt(e){return h(e.risk)===void 0}function Jt(e){return typeof e.confidence=="number"?!Number.isFinite(e.confidence):h(e.confidence)===void 0}function Zt(e){return h(e.sprint)===void 0}function er(e){return h(e.release)===void 0}function re(e){return!!(e.acMissing||e.estimatesMissing||e.resolutionMissing||e.reviewerMissing||e.riskMissing||e.confidenceMissing||e.sprintMissing||e.releaseMissing||e.metadataMissing)}function tr(e,t,r){return[[t.acMissing,ee(e)],[t.estimatesMissing,te(e)],[t.resolutionMissing,rt(e,r)],[t.reviewerMissing,Yt(e)],[t.riskMissing,Qt(e)],[t.confidenceMissing,Jt(e)],[t.sprintMissing,Zt(e)],[t.releaseMissing,er(e)]].every(([i,n])=>i!==!0||n)}function rr(e,t){return ee(e)||te(e)||rt(e,t)}function it(e,t,r){return re(t)?!(!tr(e,t,r)||t.metadataMissing&&!rr(e,r)):!0}var ie=["acceptance_criteria","estimated_minutes","resolution","tags","parent"];function ir(e,t){switch(t){case"acceptance_criteria":return!ee(e);case"estimated_minutes":return!te(e);case"resolution":return h(e.resolution)!==void 0;case"tags":return Array.isArray(e.tags)&&e.tags.length>0;default:return h(e.parent)!==void 0}}function nr(e,t,r){return t==="resolution"?r.isTerminal(e.status):!0}function sr(e,t){return t===0?100:Math.round(e/t*1e3)/10}function Je(){let e={};for(let t of ie)e[t]={present:0,applicable:0,percent:100};return e}function Ze(e,t,r){for(let i of ie){if(!nr(t,i,r))continue;let n=e[i];n.applicable+=1,ir(t,i)&&(n.present+=1)}}function et(e){for(let t of ie){let r=e[t];r.percent=sr(r.present,r.applicable)}}function fi(e,t){let r=Je(),i={};for(let n of e){Ze(r,n,t);let s=i[n.type]??(i[n.type]=Je());Ze(s,n,t)}et(r);for(let n of Object.values(i))et(n);return{overall:r,by_type:i}}var or={assignee:"(unassigned)",priority:"(no priority)",tag:"(untagged)",parent:"(unparented)",type:"(untyped)",status:"(no status)"};function ar(e){return or[e]}function lr(){return{open:0,in_progress:0,blocked:0,draft:0,closed:0,canceled:0,other:0}}function dr(e,t,r){switch(t){case"assignee":return[h(e.assignee)??null];case"parent":return[h(e.parent)??null];case"type":return[h(e.type)??null];case"status":return[h(e.status)??null];case"priority":return[typeof e.priority=="number"?`P${e.priority}`:null];default:{let i=r.tagPrefix?.trim(),n=(Array.isArray(e.tags)?e.tags:[]).filter(s=>typeof s=="string"&&s.length>0&&(!i||s.startsWith(i)));return n.length>0?n:[null]}}}function pi(e,t,r,i={}){let n=new Map,s=0;for(let a of e){s+=1;let l=r.classify(a.status);for(let d of dr(a,t,i)){let c=d??"\0empty",u=n.get(c);u||(u={label:d??ar(t),key:d,buckets:lr(),total:0},n.set(c,u)),u.buckets[l]+=1,u.total+=1}}let o=[...n.values()].sort((a,l)=>l.total!==a.total?l.total-a.total:a.key===null?1:l.key===null?-1:a.label.localeCompare(l.label));return{dimension:t,rows:o,total_items:s}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="67f9184e-08b6-5f21-9f92-e60974adbf1e")}catch{}})();var L=["notes","learnings","files","docs","tests","comments","deps","body","linked_command"];function F(e){return Array.isArray(e)&&e.length>0}function cr(e){return typeof e=="string"&&e.trim().length>0}function ur(e){return Array.isArray(e)?e.some(t=>{if(typeof t!="object"||t===null)return!1;let r=t.command;return typeof r=="string"&&r.trim().length>0}):!1}function st(e,t){switch(t){case"notes":return F(e.notes);case"learnings":return F(e.learnings);case"files":return F(e.files);case"docs":return F(e.docs);case"tests":return F(e.tests);case"comments":return F(e.comments);case"deps":return F(e.dependencies);case"body":return cr(e.body);case"linked_command":return ur(e.tests)}}function ot(e){return L.some(t=>e[t]!==void 0)}function at(e,t){for(let r of L){let i=t[r];if(i===void 0)continue;let n=st(e,r);if(i==="present"&&!n||i==="absent"&&n)return!1}return!0}function lt(e){return L.some(t=>t!=="body"&&e[t]!==void 0)}function dt(e){return e.body!==void 0}function nt(e,t){return t===0?100:Math.round(e/t*1e3)/10}function mr(){let e={};for(let t of L)e[t]={present:0,total:0,percent:100};return e}function gi(e){let t=mr(),r=e.length;for(let o of e)for(let a of L)st(o,a)&&(t[a].present+=1);for(let o of L)t[o].total=r,t[o].percent=nt(t[o].present,r);let i=t.body,n=r-i.present,s={present:n,total:r,percent:nt(n,r)};return{total_items:r,fields:t,body_populated:i,empty_body:s}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="18a4b856-e3fb-5ac0-a2f1-1c041d88795d")}catch{}})();var yt=e=>({acMissing:e.filterAcMissing===!0,estimatesMissing:e.filterEstimatesMissing===!0,resolutionMissing:e.filterResolutionMissing===!0,metadataMissing:e.filterMetadataMissing===!0,reviewerMissing:e.filterReviewerMissing===!0,riskMissing:e.filterRiskMissing===!0,confidenceMissing:e.filterConfidenceMissing===!0,sprintMissing:e.filterSprintMissing===!0,releaseMissing:e.filterReleaseMissing===!0}),ct=[{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"}],se=e=>{let t=ct.find(r=>e[r.presentKey]===!0&&e[r.absentKey]===!0);if(t)throw new f(`Cannot combine ${t.presentFlag} with ${t.absentFlag} for the same field.`,m.USAGE);return Object.fromEntries(ct.flatMap(r=>e[r.presentKey]===!0?[[r.field,"present"]]:e[r.absentKey]===!0?[[r.field,"absent"]]:[]))},ut=["priority","deadline","updated_at","created_at","title","parent"],mt=["asc","desc"],gt=new Set(je);function fr(e,t,r){let i=e.filter(o=>o.startsWith("item_list_item_read_failed:")).length,n=e.filter(o=>o.startsWith("item_list_directory_read_failed:")).length,s={status:t?"unchecked":i+n>0?"partial":"complete",unreadable_item_count:i,unreadable_directory_count:n};if(r&&s.status==="partial")throw new f(`List source is incomplete: ${i} item document(s) and ${n} item directory/directories could not be read.`,m.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 s}function pr(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.keys(e).length>0}var yr=[{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"}],gr=[{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 _t(e,t){for(let r of yr)t[r.key]===!0&&(e[r.summaryKey]=!0)}function ht(e,t){for(let r of gr)t[r.key]===!0&&(e[r.summaryKey]=!0)}function _r(e,t,r){for(let i of r){let n=t[i.optionKey];n!==void 0&&(e[i.summaryKey]=i.normalize?i.normalize(n):n)}}function bt(e){let t={};return _t(t,e),t}function wt(e){let t={};return ht(t,e),t}var hr=[{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"}],br=[{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"}],wr=[{key:"filterAcMissing",summaryKey:"filter_ac_missing"},{key:"filterEstimatesMissing",summaryKey:"filter_estimates_missing"},{key:"filterResolutionMissing",summaryKey:"filter_resolution_missing"},{key:"filterMetadataMissing",summaryKey:"filter_metadata_missing"}],Ir="-7d";function It(e){let{filtersStatus:t,options:r,treeEnabled:i,treeDepth:n,sortField:s,sortOrder:o,runtimeFieldFilters:a}=e,l={};return t!==null&&(l.status=t),r.dependencyBlocked===!0&&(l.blocked_semantics="status_or_dependency"),_r(l,r,hr),vt(l,r),r.filterAcMissing===!0&&(l.filter_ac_missing=!0),r.filterEstimatesMissing===!0&&(l.filter_estimates_missing=!0),r.filterResolutionMissing===!0&&(l.filter_resolution_missing=!0),r.filterMetadataMissing===!0&&(l.filter_metadata_missing=!0),ht(l,r),_t(l,r),r.limit!==void 0&&(l.limit=r.limit),r.offset!==void 0&&(l.offset=r.offset),r.includeBody===!0&&(l.include_body=!0),r.fields!==void 0&&(l.fields=r.fields),i&&(l.tree=!0,n!==void 0&&(l.tree_depth=n)),s!==void 0&&(l.sort=s,l.order=o),pr(a)&&(l.runtime_filters=a),l}function oe(e,t,r){let i=T(e.status,r),n=T(t.status,r);if(i!==n)return i?1:-1;let s=e.priority-t.priority;if(s!==0)return s;let o=R(t.updated_at,e.updated_at);return o!==0?o:(e.id??"").localeCompare(t.id??"")}function Sr(e,t){return[...e].sort((r,i)=>oe(r,i,t))}function ft(e,t){if(e!==void 0)return G(e,new Date,t)}function x(e,t){if(e==null)return;let r=String(e).trim();if(r.length!==0)return G(r,new Date,t)}function St(e){let t=e.updatedAfter!=null&&String(e.updatedAfter).trim().length>0;if([e.today===!0,e.recent===!0,t].filter(r=>r).length>1)throw new f("Choose only one updated_at window: --today, --recent, or --updated-after.",m.USAGE);if(e.today===!0){let r=new Date;return r.setHours(0,0,0,0),r.toISOString()}return e.recent===!0?x(Ir,"recent"):x(e.updatedAfter,"updated-after")}function vt(e,t){t.today===!0&&(e.today=!0),t.recent===!0&&(e.recent=!0)}function Ft(e){if(e==null)return;let t=String(e).trim();if(t.length===0)throw new f("--ids requires at least one non-empty item ID",m.USAGE);let r=t.split(",").map(i=>i.trim()).filter(i=>i.length>0);if(r.length===0)throw new f("--ids requires at least one non-empty item ID",m.USAGE);return new Set(r)}function ae(e){if(e===void 0)return;let t=String(e).trim(),r=t.length===0?Number.NaN:Number(t);if(!Number.isInteger(r)||r<0)throw new f("Offset filter must be a non-negative integer",m.USAGE);return r}function Et(e){if(e===void 0)return;let t=e.split(",").map(r=>r.trim()).filter(r=>r.length>0);if(t.length===0)throw new f("List --fields requires a comma-separated list of field names",m.USAGE);return[...new Set(t)]}function Tt(e,t=e.projectionCommand??"list"){let r=e.compact===!0,i=e.brief===!0,n=e.full===!0,s=Et(e.fields);if(Number(r)+Number(i)+Number(n)+ +(s!==void 0)>1)throw new f("List projection options are mutually exclusive. Use one of --compact, --brief, --full, or --fields.",m.USAGE,{code:"projection_options_mutually_exclusive",recovery:{suggested_retry:`pm ${t} --brief`,suggested_retry_args:[t,"--brief"]}});if(n)return{mode:"full",fields:[]};if(i){let o=le(e.sort);return{mode:"brief",fields:[...new Set([...z,o??"priority"])]}}return r?{mode:"compact",fields:[...$]}:s?{mode:"fields",fields:[...new Set(s.map(o=>v(o)))]}:{mode:"full",fields:[]}}function v(e){return e.startsWith("item.")?e.slice(5):e}function vr(e,t,r){if(e.mode!=="fields")return;let i=H(t),n=new Set(i.map(o=>v(o))),s=e.fields.filter(o=>!n.has(v(o)));if(s.length>0){let o=[r,"--fields",e.fields.filter(a=>!s.includes(a)).join(",")||"id,title,status"];throw new f(`Unknown list --fields value(s): ${s.join(", ")}`,m.USAGE,{code:"unknown_field_projection",examples:["pm list --status open --fields id,title,status","pm list --fields id,title,parent,priority --limit 10","pm list --all --fields id,title,body --limit 5"],recovery:{allowed_values:i,suggested_retry:_e(o),suggested_retry_args:o}})}}var Fr=new Map([["updated","updated_at"],["update","updated_at"],["modified","updated_at"],["created","created_at"],["create","created_at"]]);function le(e){if(e===void 0)return;let t=e.trim().toLowerCase(),r=Fr.get(t);if(r)return r;if(!ut.includes(t))throw new f(`Sort field must be one of ${ut.join("|")} (aliases: updated->updated_at, created->created_at)`,m.USAGE);return t}function Ct(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!mt.includes(t))throw new f(`Sort order must be one of ${mt.join("|")}`,m.USAGE);return t}function Er(e){return P(e,"--tree-depth")}function Lt(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!t)throw new f("Assignee filter must be one of assigned|unassigned",m.USAGE);if(t!=="assigned"&&t!=="unassigned")throw new f(`Invalid assignee filter "${e}". Allowed: assigned|unassigned`,m.USAGE);return t}function pt(e,t){return ke(e,t,{strict:!0})}function Mt(e){return K(e,{label:"--tag",normalize:t=>t.toLowerCase()})}function Tr(e,t,r){let i=Mt(t);if(i===void 0)return;let n=new Set(e.flatMap(o=>o.tags.map(a=>a.trim().toLowerCase()))),s=[...i].filter(o=>!n.has(o));s.length>0&&r.push(`unknown_tags:${s.join(",")}`)}function Cr(e,t){if(e&&[...e].some(r=>r.toLowerCase()==="none"||r.toLowerCase()==="null"))throw new f('--assignee no longer accepts "none" or "null". Use --assignee-filter unassigned.',m.USAGE);if(e!==void 0&&t==="unassigned")throw new f("Cannot combine --assignee with --assignee-filter unassigned",m.USAGE)}function Lr(e,t,r,i){let n=K(t.assignee,{label:"--assignee"}),s=Lt(t.assigneeFilter);Cr(n,s);let o=yt(t),a=se(t);return{idsFilter:Ft(t.ids),statusSet:e&&e.length>0?new Set(e):void 0,excludeTerminal:t.excludeTerminal===!0,typeFilter:Xe(t.type,r),tagFilters:Mt(t.tag),priorityFilter:Ye(t.priority),deadlineBefore:ft(t.deadlineBefore,"deadline-before"),deadlineAfter:ft(t.deadlineAfter,"deadline-after"),updatedAfter:St(t),updatedBefore:x(t.updatedBefore,"updated-before"),createdAfter:x(t.createdAfter,"created-after"),createdBefore:x(t.createdBefore,"created-before"),assigneeFilter:n,assigneeModeFilter:s,parentFilter:t.parent?.trim(),treeEnabled:t.tree===!0,sprintFilter:K(t.sprint,{label:"--sprint"}),releaseFilter:K(t.release,{label:"--release"}),missingMetadataFilters:o,missingMetadataActive:re(o),lifecycleClassifier:tt(i),contentFieldFilters:a,contentFiltersActive:ot(a)}}function Mr(e,t,r){return t.idsFilter&&!t.idsFilter.has(e.id)||t.statusSet&&!t.statusSet.has(e.status)||t.excludeTerminal&&T(e.status,r)||t.typeFilter&&!t.typeFilter.has(e.type)||t.tagFilters&&![...t.tagFilters].some(i=>(e.tags??[]).some(n=>n.trim().toLowerCase()===i))?!1:t.priorityFilter===void 0||t.priorityFilter.has(e.priority)}function Ar(e,t){return Se(e,t)}function Rr(e,t){return t.assigneeModeFilter==="assigned"&&!e.assignee||t.assigneeModeFilter==="unassigned"&&e.assignee?!1:t.assigneeFilter===void 0||e.assignee!==void 0&&t.assigneeFilter.has(e.assignee)}function Dr(e,t,r){let i=e.parent?.trim().toLowerCase(),n=[...new Set([...r?.get(e.id.trim().toLowerCase())??[],...i?[i]:[]])];return t.parentFilter!==void 0&&!t.treeEnabled&&!n.includes(t.parentFilter.trim().toLowerCase())||t.sprintFilter!==void 0&&(e.sprint===void 0||!t.sprintFilter.has(e.sprint))?!1:t.releaseFilter===void 0||e.release!==void 0&&t.releaseFilter.has(e.release)}function kr(e,t,r,i,n){return!(!Mr(e,t,r)||!Ar(e,t)||!Rr(e,t)||!Dr(e,t,n)||t.missingMetadataActive&&!it(e,t.missingMetadataFilters,t.lifecycleClassifier)||t.contentFiltersActive&&!at(e,t.contentFieldFilters)||!xe(e,i))}function At(e,t,r,i,n,s,o){let a=Lr(t,r,i,n);return e.filter(l=>kr(l,a,n,s,o))}function M(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function ne(e,t,r,i){let n=e,s=typeof n.title=="string"?n.title:"",o=i??M(typeof n.parent=="string"?n.parent:void 0)??null;return{...e,tree_depth:t,tree_parent:o,tree_children:r,tree_title:`${" ".repeat(t)}${s}`}}function Kr(e,t){let r=new Map,i=new Map;for(let n of e){let s=n.id.trim().toLowerCase();r.set(s,n);let o=t?t.parents_by_child.get(s)??[]:[M(n.parent)?.toLowerCase()].filter(a=>a!==void 0);for(let a of o){let l=i.get(a)??[];l.push(n),i.set(a,l)}}return{byId:r,childrenByParent:i}}function xr(e,t,r,i,n){return t?[...i.get(t.toLowerCase())??[]]:e.filter(s=>(n?n.parents_by_child.get(s.id.trim().toLowerCase())??[]:[M(s.parent)?.toLowerCase()].filter(o=>o!==void 0)).every(o=>!r.has(o)))}function Rt(e,t,r,i,n=e){let{byId:s,childrenByParent:o}=Kr(e,i),a=xr(e,t,s,o,i),l=[],d=new Set,c=new Map(n.map(p=>[p.id.trim().toLowerCase(),p.id.trim()])),u=[...a].reverse().map(p=>({node:p,depth:0,parentId:t===void 0?void 0:c.get(t.trim().toLowerCase())??t.trim()}));for(;u.length>0;){let{node:p,depth:y,parentId:g}=u.pop(),_=p.id.trim().toLowerCase();if(d.has(_))continue;d.add(_);let S=o.get(_)??[];if(l.push(ne(p,y,S.length,g)),!(r!==void 0&&y>=r))for(let j of[...S].reverse())u.push({node:j,depth:y+1,parentId:c.get(_)})}if(t===void 0&&r===void 0)for(let p of e){let y=p.id.trim().toLowerCase();d.has(y)||(d.add(y),l.push(ne(p,0,o.get(y)?.length??0)))}return l}function Dt(e,t){return e===t?0:e===null?1:t===null?-1:e.localeCompare(t)}function kt(e,t){return e===t?0:e===null?1:t===null?-1:R(e,t)}function Kt(e,t,r){switch(r){case"priority":return e.priority-t.priority;case"deadline":return kt(e.deadline??null,t.deadline??null);case"updated_at":return R(e.updated_at,t.updated_at);case"created_at":return R(e.created_at,t.created_at);case"title":return(e.title??"").localeCompare(t.title??"");case"parent":return Dt(e.parent??null,t.parent??null);default:return 0}}function xt(e,t,r,i){return t?[...e].sort((n,s)=>{let o=Kt(n,s,t);if(o!==0)return r==="desc"?-o:o;let a=oe(n,s,i);return r==="desc"?-a:a}):Sr(e,i)}function Ot(e,t,r=!1){let i=v(t.trim());if(i.length===0)return null;let n=e;return r&&i==="title"&&typeof n.tree_title=="string"?n.tree_title:Object.prototype.hasOwnProperty.call(n,i)?n[i]??null:null}function de(e,t,r=!1){return t.mode==="full"?e:e.map(i=>{let n={};for(let s of t.fields)n[s]=Ot(i,s,r);return n})}function Nt(e){let t=[];for(let r of e)t.push(r.metadata_key);return t}function Pt(e,t){let r=P(e.limit);if(r!==void 0)return r;if(e.noTruncate!==!0)return t>=1e4?20:void 0}function Or(e,t,r){return t.after===void 0?ae(t.offset)??0:we(e,t.after,r,i=>i.id)}function Ut(e,t,r){return{...e!==void 0?{applied_limit:e}:{},has_more:t,truncated:t,next_cursor:r??null}}async function Nr(e,t){let r=b(process.cwd(),t.path);await C(r);let i=await w(r),n=A(i.schema),s=ye(i.schema),o=e.projectionCommand??"list",a=Tt(e,o);return vr(a,Nt(s.definitions),o),{pmRoot:r,settings:i,statusRegistry:n,runtimeFieldFilters:Ke(e,s,"list"),typeRegistry:I(i,E()),projection:a}}async function Pr(e,t,r){let i=t.projection.fields.some(l=>v(l)==="body"),n=t.projection.mode==="full"||t.projection.fields.some(l=>gt.has(v(l))),s=se(e),o=lt(s),a=dt(s);return e.includeBody||i||a?await $e(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,r,t.settings.schema):n||o?await Ge(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,r,t.settings.schema):await k(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,r,t.settings.schema)}function Ur(e){let t=le(e.sort),r=Ct(e.order)??"asc",i=e.tree===!0;if(!i&&e.treeDepth!==void 0)throw new f("List --tree-depth requires --tree",m.USAGE);if(!t&&e.order!==void 0)throw new f("List --order requires --sort",m.USAGE);return{sortField:t,sortOrder:r,treeEnabled:i,treeDepth:i?Er(e.treeDepth):void 0,parentRoot:i?M(e.parent):void 0}}function jr(e,t,r){let i=pt(t.status,r),n;t.lifecycleBucket==="in_progress"?n=[r.in_progress_status]:t.lifecycleBucket==="open"&&(n=[...r.active_statuses].filter(d=>d!==r.in_progress_status).sort((d,c)=>d.localeCompare(c)));let s=i??n??pt(e,r),o=De(t.status),a=i||o?{...t,excludeTerminal:!1}:t,l="all";return o?l="all":i!==void 0?l=i.length===1?i[0]:i:t.lifecycleBucket!==void 0?l=t.lifecycleBucket:s!==void 0?l=s.length===1?s[0]:s:a.excludeTerminal===!0&&(l=null),{resolvedStatus:s,explicitAllStatuses:o,effectiveOptions:a,filtersStatus:l}}function Br(e,t,r,i,n){if(t.after!==void 0&&t.offset!==void 0)throw new f("List --after cannot be combined with --offset.",m.USAGE);let s=Pt(t,e.length),o=Or(e,t,n),a=s===void 0?e.slice(o):e.slice(o,o+s),l=de(a,r,i),d=e.length,c=a.length>0&&o+a.length<d,u=c&&a.length>0?B(n,a[a.length-1].id,o+a.length-1):void 0;return{projected:l,totalMatched:d,pageExtras:Ut(s,c,u)}}function jt(e,t,r,i){return be("list",{pmRoot:i,status:e,options:he(t,pe),sort:r.sortField??"default",order:r.sortOrder,tree:r.treeEnabled,tree_depth:r.treeDepth??null})}async function Gr(e){let{options:t,runtime:r,statusSelection:i,ordering:n}=e,s=new Set(["status","limit","offset","compact","brief","full","fields","format","stream","includeBody","excludeTerminal","dependencyBlocked","lifecycleBucket","noTruncate","projectionCommand","truncate","notes","learnings","files","docs","tests","comments","deps","linkedCommand"]),o=[r.projection.mode==="full",r.projection.fields.some(y=>{let g=v(y);return g==="body"||gt.has(g)})].includes(!0);if([t.limit===void 0,t.after!==void 0,t.noTruncate===!0,t.includeBody===!0,t.dependencyBlocked===!0,t.strictRead===!0,n.treeEnabled,n.sortField!==void 0,o,ge(),Object.keys(r.runtimeFieldFilters).length>0,Object.entries(t).some(([y,g])=>g!==void 0&&!s.has(y))].includes(!0))return null;let a=await D(r.pmRoot,[...new Set(Object.values(r.typeRegistry.type_to_folder))]);if(!a)return null;let l=P(t.limit),d=ae(t.offset)??0,c=await V({pmRoot:r.pmRoot,expectedSourceCursor:a.source_cursor,query:{statuses:i.resolvedStatus,excludeStatuses:i.resolvedStatus===void 0&&i.effectiveOptions.excludeTerminal===!0?[...r.statusRegistry.terminal_statuses]:void 0,terminalStatuses:[...r.statusRegistry.terminal_statuses],limit:l,offset:d}});if(!c)return null;let u=c.items.length>0&&d+c.items.length<c.total,p=u?B(jt(i.filtersStatus,t,n,r.pmRoot),c.items.at(-1).id,d+c.items.length-1):void 0;return{projected:de(c.items,r.projection,!1),totalMatched:c.total,pageExtras:Ut(l,u,p)}}function $r(e){let{filtersStatus:t,options:r,noTruncate:i,treeEnabled:n,treeDepth:s,sortField:o,sortOrder:a,runtimeFieldFilters:l}=e,d={};t!==null&&(d.status=t),r.dependencyBlocked===!0&&(d.blocked_semantics="status_or_dependency");let c=r;for(let u of br){let p=c[u.optionKey];p!=null&&(d[u.summaryKey]=p)}for(let u of wr)c[u.key]===!0&&(d[u.summaryKey]=!0);return Object.assign(d,wt(r),bt(r)),vt(d,r),i&&(d.no_truncate=!0),r.strictRead===!0&&(d.strict_read=!0),n&&(d.tree=!0,s!==void 0&&(d.tree_depth=s)),o!==void 0&&(d.sort=o,d.order=a),d.runtime_filters=l,d}async function Wi(e,t,r){let i=await Nr(t,r),n=[],s=Ur(t),o=jr(e,t,i.statusRegistry),a=t.noTruncate===!0,l=await Gr({options:t,runtime:i,statusSelection:o,ordering:s}),d=l;if(!d){let g=await Pr(t,i,n),_=s.treeEnabled||M(t.parent)!==void 0?Ve(qe(g,He())):void 0;Tr(g,t.tag,n);let S=At(g,o.resolvedStatus,o.effectiveOptions,i.typeRegistry,i.statusRegistry,i.runtimeFieldFilters,_?.parents_by_child),j=t.dependencyBlocked===!0?(()=>{let Wt=ze(g,i.statusRegistry);return S.filter(Xt=>Wt.has(Xt.id.trim().toLowerCase()))})():S,me=xt(j,s.sortField,s.sortOrder,i.statusRegistry),Vt=s.treeEnabled?Rt(me,s.parentRoot,s.treeDepth,_,g):me;d=Br(Vt,t,i.projection,s.treeEnabled,jt(o.filtersStatus,t,s,i.pmRoot))}let c=Ie(),u=[...new Set(n)].sort((g,_)=>g.localeCompare(_)),p=fr(u,l!==null,t.strictRead===!0),y=i.projection.mode==="full"?null:[...i.projection.fields];if(i.projection.mode==="compact"&&t.compact===!0){let g=It({filtersStatus:o.filtersStatus,options:t,treeEnabled:s.treeEnabled,treeDepth:s.treeDepth,sortField:s.sortField,sortOrder:s.sortOrder,runtimeFieldFilters:i.runtimeFieldFilters});return{items:d.projected,count:d.projected.length,total:d.totalMatched,...d.pageExtras,completeness:p,filters:g,projection:{mode:"compact",fields:y},...u.length>0?{warnings:u}:{}}}return{items:d.projected,count:d.projected.length,total:d.totalMatched,...d.pageExtras,completeness:p,filters:$r({filtersStatus:o.filtersStatus,options:t,noTruncate:a,treeEnabled:s.treeEnabled,treeDepth:s.treeDepth,sortField:s.sortField,sortOrder:s.sortOrder,runtimeFieldFilters:i.runtimeFieldFilters}),projection:{mode:i.projection.mode,fields:y},sorting:{sort:s.sortField??"default",order:s.sortField?s.sortOrder:"asc",...s.sortField===void 0&&!s.treeEnabled?{effective_keys:[["status_registry:nonterminal_before_terminal","asc"],["priority","asc"],["updated_at","desc"],["id","asc"]]}:{}},now:c,...u.length>0?{warnings:u}:{}}}var Xi={applyFilters:At,buildCompactListFilterSummary:It,buildContentFilterEcho:bt,buildGovernanceMissingFilterEcho:wt,resolveContentFieldFilters:se,resolveMissingMetadataFilters:yt,compareBySortField:Kt,compareDefaultSort:oe,compareNullableString:Dt,compareNullableTimestamp:kt,normalizeProjectionField:v,parseAssigneeFilter:Lt,parseFieldSelectors:Et,parseIdsFilter:Ft,parseOffset:ae,parseProjectionConfig:Tt,resolveListUpdatedAfter:St,resolveListPageLimit:Pt,parseSortField:le,parseSortOrder:Ct,orderItemsAsTree:Rt,projectListItems:de,readListFieldValue:Ot,runtimeMetadataKeysForProjection:Nt,sortItems:xt,trimNonEmpty:M,withTreeMetadata:ne};(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]="59842825-3a81-53f4-845d-db2257ec6286")}catch{}})();async function dn(e){let t=b(process.cwd(),e);await C(t);let r=await w(t),i=I(r,E());return{pmRoot:t,settings:r,typeRegistry:i}}async function Bt(e,t,r,i){N(e,q(t));let n=await Be(e,t,r.id_prefix,r.item_format,i);if(n)return{id:n.id,historyPath:N(e,n.id),located:n};let s=Re(t,r.id_prefix),o=q(t),a=s===o?[s]:[s,o];for(let l of a){let d=N(e,l);if(await fe(d))return{id:l,historyPath:d,located:null}}throw new f(`Item ${t} not found`,m.NOT_FOUND)}(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]="eb2e6046-156c-56ee-a03a-ecaa1cccfb45")}catch{}})();function Mn(e,t){let r=Ae(e),i=e.length>0?e[e.length-1].after_hash:Le(),n=t===void 0||r.item_hash_version===void 0?void 0:Ce(t,r.item_hash_version,ve(e.at(-1)?.hash_algorithm)),s=t===void 0?void 0:n===void 0?Te(t):n[Math.max(0,n.indexOf(i))],o=s===void 0?void 0:s===i,a=[...r.errors];return o===!1&&a.push("verify_failed:current_item_hash_mismatch"),{ok:a.length===0,entries:e.length,errors:a,latest_after_hash:e.length>0?e[e.length-1].after_hash:void 0,current_item_hash:s,current_matches_latest:o}}async function An(e,t,r={}){let i=b(r.cwd??process.cwd(),r.pmRoot);await C(i);let n=await w(i),s=I(n,E()),o=await Bt(i,e,n,s.type_to_folder),a=await Ee(o.historyPath,o.id);if(a.length===0)throw new f(`No history exists for ${o.id}; point-in-time reads are unavailable.`,m.NOT_FOUND);let l=Ne(t,a),d=Ue(Pe(a,l.historyIndex),l),c=Me(d,{schema:n.schema});if(c.metadata.id!==o.id)throw new f(`History target resolved to item ${c.metadata.id}, expected ${o.id}.`,m.GENERIC_FAILURE);let u=a[l.historyIndex],p=Oe(a,!0);return{document:c,reconstructed:!0,as_of_version:p===null?null:p+l.historyIndex+1,as_of_timestamp:u.ts,target:l,history_length:a.length}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="e524f0ad-faad-5d89-b8f5-1283979919ad")}catch{}})();(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="67d97df8-6551-52ed-9307-8b573a087831")}catch{}})();var U=1e6;function ce(e,t=U,r=.8,i=!1){let n=new Set,s=(c,u)=>{if(n.add(`${c}:${u}`),n.size>t)throw new f(`Duplicate sweep exceeded ${t} candidate pairs; narrow it with statuses or since.`,m.CONFLICT,{code:"duplicate_sweep_cost_limit",required:"Narrow the duplicate query or increase its similarity threshold. No partial result was returned."})};if(i||r===0){for(let c=0;c<e.length;c+=1)for(let u=0;u<c;u+=1)s(u,c);return n}let o=new Map;for(let{prepared:c}of e)for(let u of c.tokens)o.set(u,(o.get(u)??0)+1);let a=new Map,l=new Map,d=new Map;for(let[c,{prepared:u}]of e.entries()){let p=[...u.tokens].sort((_,S)=>o.get(_)-o.get(S)||_.localeCompare(S)),y=p.length-Math.ceil(r*p.length-1e-12)+1,g=[{index:a,keys:[u.normalized],lengthFilter:!1},{index:l,keys:r<=.99?u.issueCodes:[],lengthFilter:!1},{index:d,keys:p.length===0?[""]:p.slice(0,y),lengthFilter:!0}];for(let _ of g)zr(e,c,_,r,s)}return n}function zr(e,t,r,i,n){let s=e[t].prepared.tokens.length;for(let o of r.keys){let a=r.index.get(o)??[];for(let l of a){let d=e[l].prepared.tokens.length;r.lengthFilter&&Math.min(d,s)/Math.max(d,s)+1e-12<i||n(l,t)}a.push(t),r.index.set(o,a)}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="a5f450bd-8970-5b1b-8250-b76b7818e6e1")}catch{}})();var Hr=3,Gt=20,qr=.8,Vr=100,$t=1e3;function is(e){return e===void 0?[]:[`likely_duplicates:${e.result.items.map(t=>t.id).join(",")}`,`likely_duplicate_recovery:${e.recovery.action}:${e.recovery.item_id}`]}async function Wr(e,t){let r=e.items[0],i=b(t.cwd??process.cwd(),t.pmRoot),n=A((await w(i)).schema);return T(r.status,n)?{action:"reopen",item_id:r.id,command:`pm item reopen ${r.id} "<recurrence reason>"`,args:["item","reopen",r.id,"<recurrence reason>"]}:{action:"reuse",item_id:r.id,command:`pm get ${r.id} --full`,args:["get",r.id,"--full"]}}function ue(e){let t=e.limit??Hr,r=e.threshold??qr;if(!Number.isSafeInteger(t)||t<0||t>Gt)throw new f(`Similarity limit must be an integer from 0 to ${Gt}.`,m.USAGE);if(!Number.isFinite(r)||r<0||r>1)throw new f("Similarity threshold must be a number from 0 to 1.",m.USAGE);return{limit:t,threshold:r}}function zt(e){let t=e.limit??Vr;if(!Number.isSafeInteger(t)||t<0||t>$t)throw new f(`Duplicate cluster limit must be an integer from 0 to ${$t}.`,m.USAGE);let r=e.since===void 0?void 0:new Date(e.since);if(r&&Number.isNaN(r.getTime()))throw new f("Duplicate cluster --since must be a valid ISO timestamp.",m.USAGE);return{limit:t,since:r}}async function Xr(e,t){let r=b(e.cwd??process.cwd(),e.pmRoot),i=await w(r),n=I(i),s=e.statuses?.map(u=>u.trim().toLowerCase()).filter(Boolean);if(e.statuses!==void 0&&s?.length===0)throw new f("Duplicate cluster statuses must include at least one lifecycle status or all.",m.USAGE);let o=A(i.schema),a=s?.map(u=>{if(u==="all")return u;let p=Fe(u,o);if(!p)throw new f(`Unknown duplicate-cluster status "${u}". Allowed: all, ${o.definitions.map(y=>y.id).join(", ")}.`,m.USAGE);return p}),l=a?.includes("all")===!0;if(l&&a?.some(u=>u!=="all"))throw new f('The "all" status cannot be combined with other statuses.',m.USAGE);let d=l?void 0:a,c=d?new Set(d):void 0;return{items:(await k(r,i.item_format,n.type_to_folder,void 0,i.schema)).filter(u=>(!c||c.has(u.status))&&(!t||new Date(u.created_at).getTime()>=t.getTime())),statuses:d}}var ns={buildDuplicateClusters:qt,collectDuplicateCandidatePairs:ce,createDuplicateUnionFind:Ht};function Ht(e){let t=Array.from({length:e},(r,i)=>i);return{parent:t,findRoot:r=>{let i=r;for(;t[i]!==i;)i=t[i];for(;t[r]!==r;){let n=t[r];t[r]=i,r=n}return i}}}function Yr(e,t,r,i){let n=[];for(let s of t){let[o,a]=s.split(":").map(u=>Number.parseInt(u,10)),l=J(e[o].prepared,e[a].prepared);if(l.score<r)continue;let d=i.findRoot(o),c=i.findRoot(a);d!==c&&(i.parent[c]=d),n.push({left_id:e[o].item.id,right_id:e[a].item.id,...l})}return n}function qt(e,t,r,i){let n=new Map;for(let a of e.keys()){let l=r.findRoot(a),d=n.get(l)??[];d.push(a),n.set(l,d)}let s=new Map(e.map(({item:a},l)=>[a.id,r.findRoot(l)])),o=new Map;for(let a of t){let l=s.get(a.left_id),d=o.get(l)??[];d.push(a),o.set(l,d)}return[...n.values()].filter(a=>a.length>1).map(a=>{let l=(o.get(r.findRoot(a[0]))??[]).sort((d,c)=>c.score-d.score||d.left_id.localeCompare(c.left_id)||d.right_id.localeCompare(c.right_id));return{id:e[a[0]].item.id,items:a.map(d=>{let c=e[d].item;return{id:c.id,title:c.title,status:c.status,type:c.type}}),matches:l,max_score:l[0]?.score??0}}).sort((a,l)=>l.max_score-a.max_score||a.id.localeCompare(l.id)).slice(0,i)}function Qr(e,t,r,i,n){return t.filter(s=>!r.has(s.id)).map(s=>({id:s.id,title:s.title,status:s.status,type:s.type,...Q(e,s.title)})).filter(s=>s.score>=i).sort((s,o)=>o.score-s.score||s.id.localeCompare(o.id)).slice(0,n)}async function Jr(e,t={}){let r=e.title.trim();if(r.length===0)throw new f("Similarity candidate title must not be empty.",m.USAGE);let{limit:i,threshold:n}=ue(t),s=b(t.cwd??process.cwd(),t.pmRoot),o=await w(s),a=I(o),l=await D(s,Object.values(a.type_to_folder)),d=X(r),c=l&&d.length>0?await W({pmRoot:s,expectedSourceCursor:l.source_cursor,query:d.map(y=>`"${y.replaceAll('"','""')}"`).join(" OR "),limit:Math.max(i*10,50)}):null,u=c===null?await k(s,o.item_format,a.type_to_folder,void 0,o.schema):c.items,p=Qr(r,u,new Set(e.excludeIds??[]),n,i);return{items:p,count:p.length,threshold:n,source:c?"persistent_index":"metadata_fallback"}}function Zr(e,t={}){let{threshold:r}=ue({...t,limit:void 0}),{limit:i}=zt(t),n=new Set;for(let c of e){if(!c.id.trim()||n.has(c.id))throw new f("Duplicate analysis requires unique non-empty item ids.",m.USAGE);n.add(c.id)}let s=[...e].sort((c,u)=>c.id.localeCompare(u.id)).map(c=>({item:c,prepared:Y(c.title)})),o=ce(s,U,r,t.exhaustive===!0),a=Ht(s.length),l=Yr(s,o,r,a),d=qt(s,l,a,i);return{clusters:d,count:d.length,threshold:r,cost:{item_count:s.length,algorithm:t.exhaustive===!0||r===0?"exhaustive":"prefix_exact",possible_pairs:s.length*(s.length-1)/2,pair_limit:U,recall_guarantee:"exact",candidate_pairs:o.size,scored_pairs:o.size}}}async function ss(e={}){ue({...e,limit:void 0});let{since:t}=zt(e),{items:r,statuses:i}=await Xr(e,t);return{...Zr(r,e),source:"metadata_scan",filters:{statuses:i??null,since:e.since??null}}}async function os(e,t){if(t.mode==="off")return;let r=await Jr(e,t);if(r.count===0)return;let i=await Wr(r,t),n=t.mode==="strict"&&t.allowDuplicate===!0;if(t.mode==="strict"&&!n){let s=r.items.map(a=>`${a.id} (${a.status}): ${a.title}`).join("; "),o=i.action==="reopen"?"Reopen the canonical item":"Reuse the canonical item";throw new f(`Likely duplicate item(s) found: ${s}. ${o} or pass --allow-duplicate with explicit intent.`,m.CONFLICT,{code:"likely_duplicate",required:`${o}, or explicitly acknowledge the duplicate with --allow-duplicate.`,recovery:{suggested_flags:["--allow-duplicate"],suggested_retry:i.command,suggested_retry_args:i.args}})}return{mode:t.mode,bypassed:n,result:r,recovery:i}}(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]="f091d0c3-f2a7-5d76-8656-4aebe82e9798")}catch{}})();function ls(e,t){let r=t??{};return e.filter(i=>r[i.id]!==i.updated_at).map(i=>i.id).sort((i,n)=>i.localeCompare(n))}export{P as a,We as b,si as c,Z as d,K as e,Xe as f,Ye as g,tt as h,re as i,it as j,fi as k,pi as l,ot as m,at as n,gi as o,yt as p,se as q,ut as r,mt as s,_r as t,bt as u,wt as v,Wi as w,Xi as x,dn as y,Bt as z,Mn as A,An as B,is as C,ns as D,Jr as E,Zr as F,ss as G,os as H,ls as I};
2
- //# sourceMappingURL=chunk-32ZKLRWM.js.map
1
+ import{Ba as X,Ca as Y,Da as Q,Ea as J,O as De,P as ke,S as Ke,T as xe}from"./chunk-GC4VMLXL.js";import{t as pe}from"./chunk-XX5JQCLF.js";import{g as ze,m as He,n as qe,q as Ve}from"./chunk-QGDKWULS.js";import{C as Be,F as Ge,G as k,H as $e,e as q,f as Re,h as Oe,i as Ne,k as Pe,l as Ue,t as V,v as W,x as je,z as D}from"./chunk-QWKCQ5PW.js";import{Ba as Me,Fa as Ae,_a as w,ca as Ee,d as ve,db as C,r as Fe,ra as Te,sa as Ce,t as T,ta as Le}from"./chunk-VYAZND5Q.js";import{j as A,l as ye}from"./chunk-TMN3RAXZ.js";import{Ad as R,Bd as Se,Ca as N,Cd as G,Dc as _e,aa as h,ee as $,fe as z,he as H,ic as E,md as he,nd as be,od as B,pc as ge,qa as I,ra as O,sd as we,wa as b,wd as Ie}from"./chunk-UUPJ6OZL.js";import{B as fe,y as m,z as f}from"./chunk-3LWH2RJC.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]="738a98bc-eaf0-578d-88e3-1c5f83c8894b")}catch{}})();function P(e,t="--limit"){if(e===void 0)return;let r=String(e).trim(),i=r.length===0?Number.NaN:Number(r);if(!Number.isInteger(i)||i<0)throw new f(`${t} must be a non-negative integer`,m.USAGE);return i}function We(e,t="--priority"){if(e===void 0)return;let r=String(e).trim(),i=r.length===0?Number.NaN:Number(r);if(!Number.isInteger(i)||i<0||i>4)throw new f(`${t} filter must be 0..4`,m.USAGE);return i}function si(e,t,r="--type"){if(e===void 0)return;let i=O(e,t);if(!i)throw new f(`${r} filter must be one of ${t.types.join("|")}`,m.USAGE);return i}(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]="75ecca0c-fac8-5a9b-9043-c65731daad4a")}catch{}})();function Z(e,t){if(e===void 0)return;let r=[],i="";for(let o=0;o<e.length;o+=1){let a=e[o];if(a==="\\"){let l=e[o+1];if(l===","||l==="\\"){i+=l,o+=1;continue}i+=a;continue}if(a===","){r.push(i),i="";continue}i+=a}r.push(i);let n=r.map(o=>o.trim());if(n.some(o=>o.length===0))throw new f(`${t.label} requires at least one non-empty value`,m.USAGE);let s=n.map(o=>t.normalize?.(o)??o);return[...new Set(s)]}function K(e,t){let r=Z(e,t);return r===void 0?void 0:new Set(r)}function Xe(e,t,r="--type"){let i=Z(e,{label:r});if(i===void 0)return;let n=i.map(s=>{let o=O(s,t);if(!o)throw new f(`${r} filter token "${s}" must be one of ${t.types.join("|")}`,m.USAGE);return o});return new Set(n)}function Ye(e,t="--priority"){let r=Z(e,{label:t});if(r!==void 0)return new Set(r.map(i=>We(i,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]="f9d73d74-7c4e-5ea9-b34c-c984b4c15ab3")}catch{}})();function Qe(e,t){let r=e.trim().toLowerCase();return t.alias_to_id.get(r)??r}function tt(e){return{isTerminal(t){return e.terminal_statuses.has(Qe(t,e))},classify(t){let r=Qe(t,e);return e.terminal_canceled_statuses.has(r)?"canceled":e.terminal_statuses.has(r)?"closed":e.blocked_statuses.has(r)?"blocked":e.draft_statuses.has(r)?"draft":r===e.open_status?"open":e.active_statuses.has(r)?"in_progress":"other"}}}function ee(e){return h(e.acceptance_criteria)===void 0}function te(e){return!Number.isFinite(e.estimated_minutes)}function rt(e,t){return t.isTerminal(e.status)?h(e.resolution)===void 0:!1}function Yt(e){return h(e.reviewer)===void 0}function Qt(e){return h(e.risk)===void 0}function Jt(e){return typeof e.confidence=="number"?!Number.isFinite(e.confidence):h(e.confidence)===void 0}function Zt(e){return h(e.sprint)===void 0}function er(e){return h(e.release)===void 0}function re(e){return!!(e.acMissing||e.estimatesMissing||e.resolutionMissing||e.reviewerMissing||e.riskMissing||e.confidenceMissing||e.sprintMissing||e.releaseMissing||e.metadataMissing)}function tr(e,t,r){return[[t.acMissing,ee(e)],[t.estimatesMissing,te(e)],[t.resolutionMissing,rt(e,r)],[t.reviewerMissing,Yt(e)],[t.riskMissing,Qt(e)],[t.confidenceMissing,Jt(e)],[t.sprintMissing,Zt(e)],[t.releaseMissing,er(e)]].every(([i,n])=>i!==!0||n)}function rr(e,t){return ee(e)||te(e)||rt(e,t)}function it(e,t,r){return re(t)?!(!tr(e,t,r)||t.metadataMissing&&!rr(e,r)):!0}var ie=["acceptance_criteria","estimated_minutes","resolution","tags","parent"];function ir(e,t){switch(t){case"acceptance_criteria":return!ee(e);case"estimated_minutes":return!te(e);case"resolution":return h(e.resolution)!==void 0;case"tags":return Array.isArray(e.tags)&&e.tags.length>0;default:return h(e.parent)!==void 0}}function nr(e,t,r){return t==="resolution"?r.isTerminal(e.status):!0}function sr(e,t){return t===0?100:Math.round(e/t*1e3)/10}function Je(){let e={};for(let t of ie)e[t]={present:0,applicable:0,percent:100};return e}function Ze(e,t,r){for(let i of ie){if(!nr(t,i,r))continue;let n=e[i];n.applicable+=1,ir(t,i)&&(n.present+=1)}}function et(e){for(let t of ie){let r=e[t];r.percent=sr(r.present,r.applicable)}}function fi(e,t){let r=Je(),i={};for(let n of e){Ze(r,n,t);let s=i[n.type]??(i[n.type]=Je());Ze(s,n,t)}et(r);for(let n of Object.values(i))et(n);return{overall:r,by_type:i}}var or={assignee:"(unassigned)",priority:"(no priority)",tag:"(untagged)",parent:"(unparented)",type:"(untyped)",status:"(no status)"};function ar(e){return or[e]}function lr(){return{open:0,in_progress:0,blocked:0,draft:0,closed:0,canceled:0,other:0}}function dr(e,t,r){switch(t){case"assignee":return[h(e.assignee)??null];case"parent":return[h(e.parent)??null];case"type":return[h(e.type)??null];case"status":return[h(e.status)??null];case"priority":return[typeof e.priority=="number"?`P${e.priority}`:null];default:{let i=r.tagPrefix?.trim(),n=(Array.isArray(e.tags)?e.tags:[]).filter(s=>typeof s=="string"&&s.length>0&&(!i||s.startsWith(i)));return n.length>0?n:[null]}}}function pi(e,t,r,i={}){let n=new Map,s=0;for(let a of e){s+=1;let l=r.classify(a.status);for(let d of dr(a,t,i)){let c=d??"\0empty",u=n.get(c);u||(u={label:d??ar(t),key:d,buckets:lr(),total:0},n.set(c,u)),u.buckets[l]+=1,u.total+=1}}let o=[...n.values()].sort((a,l)=>l.total!==a.total?l.total-a.total:a.key===null?1:l.key===null?-1:a.label.localeCompare(l.label));return{dimension:t,rows:o,total_items:s}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="67f9184e-08b6-5f21-9f92-e60974adbf1e")}catch{}})();var L=["notes","learnings","files","docs","tests","comments","deps","body","linked_command"];function F(e){return Array.isArray(e)&&e.length>0}function cr(e){return typeof e=="string"&&e.trim().length>0}function ur(e){return Array.isArray(e)?e.some(t=>{if(typeof t!="object"||t===null)return!1;let r=t.command;return typeof r=="string"&&r.trim().length>0}):!1}function st(e,t){switch(t){case"notes":return F(e.notes);case"learnings":return F(e.learnings);case"files":return F(e.files);case"docs":return F(e.docs);case"tests":return F(e.tests);case"comments":return F(e.comments);case"deps":return F(e.dependencies);case"body":return cr(e.body);case"linked_command":return ur(e.tests)}}function ot(e){return L.some(t=>e[t]!==void 0)}function at(e,t){for(let r of L){let i=t[r];if(i===void 0)continue;let n=st(e,r);if(i==="present"&&!n||i==="absent"&&n)return!1}return!0}function lt(e){return L.some(t=>t!=="body"&&e[t]!==void 0)}function dt(e){return e.body!==void 0}function nt(e,t){return t===0?100:Math.round(e/t*1e3)/10}function mr(){let e={};for(let t of L)e[t]={present:0,total:0,percent:100};return e}function gi(e){let t=mr(),r=e.length;for(let o of e)for(let a of L)st(o,a)&&(t[a].present+=1);for(let o of L)t[o].total=r,t[o].percent=nt(t[o].present,r);let i=t.body,n=r-i.present,s={present:n,total:r,percent:nt(n,r)};return{total_items:r,fields:t,body_populated:i,empty_body:s}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="18a4b856-e3fb-5ac0-a2f1-1c041d88795d")}catch{}})();var yt=e=>({acMissing:e.filterAcMissing===!0,estimatesMissing:e.filterEstimatesMissing===!0,resolutionMissing:e.filterResolutionMissing===!0,metadataMissing:e.filterMetadataMissing===!0,reviewerMissing:e.filterReviewerMissing===!0,riskMissing:e.filterRiskMissing===!0,confidenceMissing:e.filterConfidenceMissing===!0,sprintMissing:e.filterSprintMissing===!0,releaseMissing:e.filterReleaseMissing===!0}),ct=[{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"}],se=e=>{let t=ct.find(r=>e[r.presentKey]===!0&&e[r.absentKey]===!0);if(t)throw new f(`Cannot combine ${t.presentFlag} with ${t.absentFlag} for the same field.`,m.USAGE);return Object.fromEntries(ct.flatMap(r=>e[r.presentKey]===!0?[[r.field,"present"]]:e[r.absentKey]===!0?[[r.field,"absent"]]:[]))},ut=["priority","deadline","updated_at","created_at","title","parent"],mt=["asc","desc"],gt=new Set(je);function fr(e,t,r){let i=e.filter(o=>o.startsWith("item_list_item_read_failed:")).length,n=e.filter(o=>o.startsWith("item_list_directory_read_failed:")).length,s={status:t?"unchecked":i+n>0?"partial":"complete",unreadable_item_count:i,unreadable_directory_count:n};if(r&&s.status==="partial")throw new f(`List source is incomplete: ${i} item document(s) and ${n} item directory/directories could not be read.`,m.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 s}function pr(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.keys(e).length>0}var yr=[{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"}],gr=[{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 _t(e,t){for(let r of yr)t[r.key]===!0&&(e[r.summaryKey]=!0)}function ht(e,t){for(let r of gr)t[r.key]===!0&&(e[r.summaryKey]=!0)}function _r(e,t,r){for(let i of r){let n=t[i.optionKey];n!==void 0&&(e[i.summaryKey]=i.normalize?i.normalize(n):n)}}function bt(e){let t={};return _t(t,e),t}function wt(e){let t={};return ht(t,e),t}var hr=[{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"}],br=[{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"}],wr=[{key:"filterAcMissing",summaryKey:"filter_ac_missing"},{key:"filterEstimatesMissing",summaryKey:"filter_estimates_missing"},{key:"filterResolutionMissing",summaryKey:"filter_resolution_missing"},{key:"filterMetadataMissing",summaryKey:"filter_metadata_missing"}],Ir="-7d";function It(e){let{filtersStatus:t,options:r,treeEnabled:i,treeDepth:n,sortField:s,sortOrder:o,runtimeFieldFilters:a}=e,l={};return t!==null&&(l.status=t),r.dependencyBlocked===!0&&(l.blocked_semantics="status_or_dependency"),_r(l,r,hr),vt(l,r),r.filterAcMissing===!0&&(l.filter_ac_missing=!0),r.filterEstimatesMissing===!0&&(l.filter_estimates_missing=!0),r.filterResolutionMissing===!0&&(l.filter_resolution_missing=!0),r.filterMetadataMissing===!0&&(l.filter_metadata_missing=!0),ht(l,r),_t(l,r),r.limit!==void 0&&(l.limit=r.limit),r.offset!==void 0&&(l.offset=r.offset),r.includeBody===!0&&(l.include_body=!0),r.fields!==void 0&&(l.fields=r.fields),i&&(l.tree=!0,n!==void 0&&(l.tree_depth=n)),s!==void 0&&(l.sort=s,l.order=o),pr(a)&&(l.runtime_filters=a),l}function oe(e,t,r){let i=T(e.status,r),n=T(t.status,r);if(i!==n)return i?1:-1;let s=e.priority-t.priority;if(s!==0)return s;let o=R(t.updated_at,e.updated_at);return o!==0?o:(e.id??"").localeCompare(t.id??"")}function Sr(e,t){return[...e].sort((r,i)=>oe(r,i,t))}function ft(e,t){if(e!==void 0)return G(e,new Date,t)}function x(e,t){if(e==null)return;let r=String(e).trim();if(r.length!==0)return G(r,new Date,t)}function St(e){let t=e.updatedAfter!=null&&String(e.updatedAfter).trim().length>0;if([e.today===!0,e.recent===!0,t].filter(r=>r).length>1)throw new f("Choose only one updated_at window: --today, --recent, or --updated-after.",m.USAGE);if(e.today===!0){let r=new Date;return r.setHours(0,0,0,0),r.toISOString()}return e.recent===!0?x(Ir,"recent"):x(e.updatedAfter,"updated-after")}function vt(e,t){t.today===!0&&(e.today=!0),t.recent===!0&&(e.recent=!0)}function Ft(e){if(e==null)return;let t=String(e).trim();if(t.length===0)throw new f("--ids requires at least one non-empty item ID",m.USAGE);let r=t.split(",").map(i=>i.trim()).filter(i=>i.length>0);if(r.length===0)throw new f("--ids requires at least one non-empty item ID",m.USAGE);return new Set(r)}function ae(e){if(e===void 0)return;let t=String(e).trim(),r=t.length===0?Number.NaN:Number(t);if(!Number.isInteger(r)||r<0)throw new f("Offset filter must be a non-negative integer",m.USAGE);return r}function Et(e){if(e===void 0)return;let t=e.split(",").map(r=>r.trim()).filter(r=>r.length>0);if(t.length===0)throw new f("List --fields requires a comma-separated list of field names",m.USAGE);return[...new Set(t)]}function Tt(e,t=e.projectionCommand??"list"){let r=e.compact===!0,i=e.brief===!0,n=e.full===!0,s=Et(e.fields);if(Number(r)+Number(i)+Number(n)+ +(s!==void 0)>1)throw new f("List projection options are mutually exclusive. Use one of --compact, --brief, --full, or --fields.",m.USAGE,{code:"projection_options_mutually_exclusive",recovery:{suggested_retry:`pm ${t} --brief`,suggested_retry_args:[t,"--brief"]}});if(n)return{mode:"full",fields:[]};if(i){let o=le(e.sort);return{mode:"brief",fields:[...new Set([...z,o??"priority"])]}}return r?{mode:"compact",fields:[...$]}:s?{mode:"fields",fields:[...new Set(s.map(o=>v(o)))]}:{mode:"full",fields:[]}}function v(e){return e.startsWith("item.")?e.slice(5):e}function vr(e,t,r){if(e.mode!=="fields")return;let i=H(t),n=new Set(i.map(o=>v(o))),s=e.fields.filter(o=>!n.has(v(o)));if(s.length>0){let o=[r,"--fields",e.fields.filter(a=>!s.includes(a)).join(",")||"id,title,status"];throw new f(`Unknown list --fields value(s): ${s.join(", ")}`,m.USAGE,{code:"unknown_field_projection",examples:["pm list --status open --fields id,title,status","pm list --fields id,title,parent,priority --limit 10","pm list --all --fields id,title,body --limit 5"],recovery:{allowed_values:i,suggested_retry:_e(o),suggested_retry_args:o}})}}var Fr=new Map([["updated","updated_at"],["update","updated_at"],["modified","updated_at"],["created","created_at"],["create","created_at"]]);function le(e){if(e===void 0)return;let t=e.trim().toLowerCase(),r=Fr.get(t);if(r)return r;if(!ut.includes(t))throw new f(`Sort field must be one of ${ut.join("|")} (aliases: updated->updated_at, created->created_at)`,m.USAGE);return t}function Ct(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!mt.includes(t))throw new f(`Sort order must be one of ${mt.join("|")}`,m.USAGE);return t}function Er(e){return P(e,"--tree-depth")}function Lt(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!t)throw new f("Assignee filter must be one of assigned|unassigned",m.USAGE);if(t!=="assigned"&&t!=="unassigned")throw new f(`Invalid assignee filter "${e}". Allowed: assigned|unassigned`,m.USAGE);return t}function pt(e,t){return ke(e,t,{strict:!0})}function Mt(e){return K(e,{label:"--tag",normalize:t=>t.toLowerCase()})}function Tr(e,t,r){let i=Mt(t);if(i===void 0)return;let n=new Set(e.flatMap(o=>o.tags.map(a=>a.trim().toLowerCase()))),s=[...i].filter(o=>!n.has(o));s.length>0&&r.push(`unknown_tags:${s.join(",")}`)}function Cr(e,t){if(e&&[...e].some(r=>r.toLowerCase()==="none"||r.toLowerCase()==="null"))throw new f('--assignee no longer accepts "none" or "null". Use --assignee-filter unassigned.',m.USAGE);if(e!==void 0&&t==="unassigned")throw new f("Cannot combine --assignee with --assignee-filter unassigned",m.USAGE)}function Lr(e,t,r,i){let n=K(t.assignee,{label:"--assignee"}),s=Lt(t.assigneeFilter);Cr(n,s);let o=yt(t),a=se(t);return{idsFilter:Ft(t.ids),statusSet:e&&e.length>0?new Set(e):void 0,excludeTerminal:t.excludeTerminal===!0,typeFilter:Xe(t.type,r),tagFilters:Mt(t.tag),priorityFilter:Ye(t.priority),deadlineBefore:ft(t.deadlineBefore,"deadline-before"),deadlineAfter:ft(t.deadlineAfter,"deadline-after"),updatedAfter:St(t),updatedBefore:x(t.updatedBefore,"updated-before"),createdAfter:x(t.createdAfter,"created-after"),createdBefore:x(t.createdBefore,"created-before"),assigneeFilter:n,assigneeModeFilter:s,parentFilter:t.parent?.trim(),treeEnabled:t.tree===!0,sprintFilter:K(t.sprint,{label:"--sprint"}),releaseFilter:K(t.release,{label:"--release"}),missingMetadataFilters:o,missingMetadataActive:re(o),lifecycleClassifier:tt(i),contentFieldFilters:a,contentFiltersActive:ot(a)}}function Mr(e,t,r){return t.idsFilter&&!t.idsFilter.has(e.id)||t.statusSet&&!t.statusSet.has(e.status)||t.excludeTerminal&&T(e.status,r)||t.typeFilter&&!t.typeFilter.has(e.type)||t.tagFilters&&![...t.tagFilters].some(i=>(e.tags??[]).some(n=>n.trim().toLowerCase()===i))?!1:t.priorityFilter===void 0||t.priorityFilter.has(e.priority)}function Ar(e,t){return Se(e,t)}function Rr(e,t){return t.assigneeModeFilter==="assigned"&&!e.assignee||t.assigneeModeFilter==="unassigned"&&e.assignee?!1:t.assigneeFilter===void 0||e.assignee!==void 0&&t.assigneeFilter.has(e.assignee)}function Dr(e,t,r){let i=e.parent?.trim().toLowerCase(),n=[...new Set([...r?.get(e.id.trim().toLowerCase())??[],...i?[i]:[]])];return t.parentFilter!==void 0&&!t.treeEnabled&&!n.includes(t.parentFilter.trim().toLowerCase())||t.sprintFilter!==void 0&&(e.sprint===void 0||!t.sprintFilter.has(e.sprint))?!1:t.releaseFilter===void 0||e.release!==void 0&&t.releaseFilter.has(e.release)}function kr(e,t,r,i,n){return!(!Mr(e,t,r)||!Ar(e,t)||!Rr(e,t)||!Dr(e,t,n)||t.missingMetadataActive&&!it(e,t.missingMetadataFilters,t.lifecycleClassifier)||t.contentFiltersActive&&!at(e,t.contentFieldFilters)||!xe(e,i))}function At(e,t,r,i,n,s,o){let a=Lr(t,r,i,n);return e.filter(l=>kr(l,a,n,s,o))}function M(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function ne(e,t,r,i){let n=e,s=typeof n.title=="string"?n.title:"",o=i??M(typeof n.parent=="string"?n.parent:void 0)??null;return{...e,tree_depth:t,tree_parent:o,tree_children:r,tree_title:`${" ".repeat(t)}${s}`}}function Kr(e,t){let r=new Map,i=new Map;for(let n of e){let s=n.id.trim().toLowerCase();r.set(s,n);let o=t?t.parents_by_child.get(s)??[]:[M(n.parent)?.toLowerCase()].filter(a=>a!==void 0);for(let a of o){let l=i.get(a)??[];l.push(n),i.set(a,l)}}return{byId:r,childrenByParent:i}}function xr(e,t,r,i,n){return t?[...i.get(t.toLowerCase())??[]]:e.filter(s=>(n?n.parents_by_child.get(s.id.trim().toLowerCase())??[]:[M(s.parent)?.toLowerCase()].filter(o=>o!==void 0)).every(o=>!r.has(o)))}function Rt(e,t,r,i,n=e){let{byId:s,childrenByParent:o}=Kr(e,i),a=xr(e,t,s,o,i),l=[],d=new Set,c=new Map(n.map(p=>[p.id.trim().toLowerCase(),p.id.trim()])),u=[...a].reverse().map(p=>({node:p,depth:0,parentId:t===void 0?void 0:c.get(t.trim().toLowerCase())??t.trim()}));for(;u.length>0;){let{node:p,depth:y,parentId:g}=u.pop(),_=p.id.trim().toLowerCase();if(d.has(_))continue;d.add(_);let S=o.get(_)??[];if(l.push(ne(p,y,S.length,g)),!(r!==void 0&&y>=r))for(let j of[...S].reverse())u.push({node:j,depth:y+1,parentId:c.get(_)})}if(t===void 0&&r===void 0)for(let p of e){let y=p.id.trim().toLowerCase();d.has(y)||(d.add(y),l.push(ne(p,0,o.get(y)?.length??0)))}return l}function Dt(e,t){return e===t?0:e===null?1:t===null?-1:e.localeCompare(t)}function kt(e,t){return e===t?0:e===null?1:t===null?-1:R(e,t)}function Kt(e,t,r){switch(r){case"priority":return e.priority-t.priority;case"deadline":return kt(e.deadline??null,t.deadline??null);case"updated_at":return R(e.updated_at,t.updated_at);case"created_at":return R(e.created_at,t.created_at);case"title":return(e.title??"").localeCompare(t.title??"");case"parent":return Dt(e.parent??null,t.parent??null);default:return 0}}function xt(e,t,r,i){return t?[...e].sort((n,s)=>{let o=Kt(n,s,t);if(o!==0)return r==="desc"?-o:o;let a=oe(n,s,i);return r==="desc"?-a:a}):Sr(e,i)}function Ot(e,t,r=!1){let i=v(t.trim());if(i.length===0)return null;let n=e;return r&&i==="title"&&typeof n.tree_title=="string"?n.tree_title:Object.prototype.hasOwnProperty.call(n,i)?n[i]??null:null}function de(e,t,r=!1){return t.mode==="full"?e:e.map(i=>{let n={};for(let s of t.fields)n[s]=Ot(i,s,r);return n})}function Nt(e){let t=[];for(let r of e)t.push(r.metadata_key);return t}function Pt(e,t){let r=P(e.limit);if(r!==void 0)return r;if(e.noTruncate!==!0)return t>=1e4?20:void 0}function Or(e,t,r){return t.after===void 0?ae(t.offset)??0:we(e,t.after,r,i=>i.id)}function Ut(e,t,r){return{...e!==void 0?{applied_limit:e}:{},has_more:t,truncated:t,next_cursor:r??null}}async function Nr(e,t){let r=b(process.cwd(),t.path);await C(r);let i=await w(r),n=A(i.schema),s=ye(i.schema),o=e.projectionCommand??"list",a=Tt(e,o);return vr(a,Nt(s.definitions),o),{pmRoot:r,settings:i,statusRegistry:n,runtimeFieldFilters:Ke(e,s,"list"),typeRegistry:I(i,E()),projection:a}}async function Pr(e,t,r){let i=t.projection.fields.some(l=>v(l)==="body"),n=t.projection.mode==="full"||t.projection.fields.some(l=>gt.has(v(l))),s=se(e),o=lt(s),a=dt(s);return e.includeBody||i||a?await $e(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,r,t.settings.schema):n||o?await Ge(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,r,t.settings.schema):await k(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,r,t.settings.schema)}function Ur(e){let t=le(e.sort),r=Ct(e.order)??"asc",i=e.tree===!0;if(!i&&e.treeDepth!==void 0)throw new f("List --tree-depth requires --tree",m.USAGE);if(!t&&e.order!==void 0)throw new f("List --order requires --sort",m.USAGE);return{sortField:t,sortOrder:r,treeEnabled:i,treeDepth:i?Er(e.treeDepth):void 0,parentRoot:i?M(e.parent):void 0}}function jr(e,t,r){let i=pt(t.status,r),n;t.lifecycleBucket==="in_progress"?n=[r.in_progress_status]:t.lifecycleBucket==="open"&&(n=[...r.active_statuses].filter(d=>d!==r.in_progress_status).sort((d,c)=>d.localeCompare(c)));let s=i??n??pt(e,r),o=De(t.status),a=i||o?{...t,excludeTerminal:!1}:t,l="all";return o?l="all":i!==void 0?l=i.length===1?i[0]:i:t.lifecycleBucket!==void 0?l=t.lifecycleBucket:s!==void 0?l=s.length===1?s[0]:s:a.excludeTerminal===!0&&(l=null),{resolvedStatus:s,explicitAllStatuses:o,effectiveOptions:a,filtersStatus:l}}function Br(e,t,r,i,n){if(t.after!==void 0&&t.offset!==void 0)throw new f("List --after cannot be combined with --offset.",m.USAGE);let s=Pt(t,e.length),o=Or(e,t,n),a=s===void 0?e.slice(o):e.slice(o,o+s),l=de(a,r,i),d=e.length,c=a.length>0&&o+a.length<d,u=c&&a.length>0?B(n,a[a.length-1].id,o+a.length-1):void 0;return{projected:l,totalMatched:d,pageExtras:Ut(s,c,u)}}function jt(e,t,r,i){return be("list",{pmRoot:i,status:e,options:he(t,pe),sort:r.sortField??"default",order:r.sortOrder,tree:r.treeEnabled,tree_depth:r.treeDepth??null})}async function Gr(e){let{options:t,runtime:r,statusSelection:i,ordering:n}=e,s=new Set(["status","limit","offset","compact","brief","full","fields","format","stream","includeBody","excludeTerminal","dependencyBlocked","lifecycleBucket","noTruncate","projectionCommand","truncate","notes","learnings","files","docs","tests","comments","deps","linkedCommand"]),o=[r.projection.mode==="full",r.projection.fields.some(y=>{let g=v(y);return g==="body"||gt.has(g)})].includes(!0);if([t.limit===void 0,t.after!==void 0,t.noTruncate===!0,t.includeBody===!0,t.dependencyBlocked===!0,t.strictRead===!0,n.treeEnabled,n.sortField!==void 0,o,ge(),Object.keys(r.runtimeFieldFilters).length>0,Object.entries(t).some(([y,g])=>g!==void 0&&!s.has(y))].includes(!0))return null;let a=await D(r.pmRoot,[...new Set(Object.values(r.typeRegistry.type_to_folder))]);if(!a)return null;let l=P(t.limit),d=ae(t.offset)??0,c=await V({pmRoot:r.pmRoot,expectedSourceCursor:a.source_cursor,query:{statuses:i.resolvedStatus,excludeStatuses:i.resolvedStatus===void 0&&i.effectiveOptions.excludeTerminal===!0?[...r.statusRegistry.terminal_statuses]:void 0,terminalStatuses:[...r.statusRegistry.terminal_statuses],limit:l,offset:d}});if(!c)return null;let u=c.items.length>0&&d+c.items.length<c.total,p=u?B(jt(i.filtersStatus,t,n,r.pmRoot),c.items.at(-1).id,d+c.items.length-1):void 0;return{projected:de(c.items,r.projection,!1),totalMatched:c.total,pageExtras:Ut(l,u,p)}}function $r(e){let{filtersStatus:t,options:r,noTruncate:i,treeEnabled:n,treeDepth:s,sortField:o,sortOrder:a,runtimeFieldFilters:l}=e,d={};t!==null&&(d.status=t),r.dependencyBlocked===!0&&(d.blocked_semantics="status_or_dependency");let c=r;for(let u of br){let p=c[u.optionKey];p!=null&&(d[u.summaryKey]=p)}for(let u of wr)c[u.key]===!0&&(d[u.summaryKey]=!0);return Object.assign(d,wt(r),bt(r)),vt(d,r),i&&(d.no_truncate=!0),r.strictRead===!0&&(d.strict_read=!0),n&&(d.tree=!0,s!==void 0&&(d.tree_depth=s)),o!==void 0&&(d.sort=o,d.order=a),d.runtime_filters=l,d}async function Wi(e,t,r){let i=await Nr(t,r),n=[],s=Ur(t),o=jr(e,t,i.statusRegistry),a=t.noTruncate===!0,l=await Gr({options:t,runtime:i,statusSelection:o,ordering:s}),d=l;if(!d){let g=await Pr(t,i,n),_=s.treeEnabled||M(t.parent)!==void 0?Ve(qe(g,He())):void 0;Tr(g,t.tag,n);let S=At(g,o.resolvedStatus,o.effectiveOptions,i.typeRegistry,i.statusRegistry,i.runtimeFieldFilters,_?.parents_by_child),j=t.dependencyBlocked===!0?(()=>{let Wt=ze(g,i.statusRegistry);return S.filter(Xt=>Wt.has(Xt.id.trim().toLowerCase()))})():S,me=xt(j,s.sortField,s.sortOrder,i.statusRegistry),Vt=s.treeEnabled?Rt(me,s.parentRoot,s.treeDepth,_,g):me;d=Br(Vt,t,i.projection,s.treeEnabled,jt(o.filtersStatus,t,s,i.pmRoot))}let c=Ie(),u=[...new Set(n)].sort((g,_)=>g.localeCompare(_)),p=fr(u,l!==null,t.strictRead===!0),y=i.projection.mode==="full"?null:[...i.projection.fields];if(i.projection.mode==="compact"&&t.compact===!0){let g=It({filtersStatus:o.filtersStatus,options:t,treeEnabled:s.treeEnabled,treeDepth:s.treeDepth,sortField:s.sortField,sortOrder:s.sortOrder,runtimeFieldFilters:i.runtimeFieldFilters});return{items:d.projected,count:d.projected.length,total:d.totalMatched,...d.pageExtras,completeness:p,filters:g,projection:{mode:"compact",fields:y},...u.length>0?{warnings:u}:{}}}return{items:d.projected,count:d.projected.length,total:d.totalMatched,...d.pageExtras,completeness:p,filters:$r({filtersStatus:o.filtersStatus,options:t,noTruncate:a,treeEnabled:s.treeEnabled,treeDepth:s.treeDepth,sortField:s.sortField,sortOrder:s.sortOrder,runtimeFieldFilters:i.runtimeFieldFilters}),projection:{mode:i.projection.mode,fields:y},sorting:{sort:s.sortField??"default",order:s.sortField?s.sortOrder:"asc",...s.sortField===void 0&&!s.treeEnabled?{effective_keys:[["status_registry:nonterminal_before_terminal","asc"],["priority","asc"],["updated_at","desc"],["id","asc"]]}:{}},now:c,...u.length>0?{warnings:u}:{}}}var Xi={applyFilters:At,buildCompactListFilterSummary:It,buildContentFilterEcho:bt,buildGovernanceMissingFilterEcho:wt,resolveContentFieldFilters:se,resolveMissingMetadataFilters:yt,compareBySortField:Kt,compareDefaultSort:oe,compareNullableString:Dt,compareNullableTimestamp:kt,normalizeProjectionField:v,parseAssigneeFilter:Lt,parseFieldSelectors:Et,parseIdsFilter:Ft,parseOffset:ae,parseProjectionConfig:Tt,resolveListUpdatedAfter:St,resolveListPageLimit:Pt,parseSortField:le,parseSortOrder:Ct,orderItemsAsTree:Rt,projectListItems:de,readListFieldValue:Ot,runtimeMetadataKeysForProjection:Nt,sortItems:xt,trimNonEmpty:M,withTreeMetadata:ne};(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]="59842825-3a81-53f4-845d-db2257ec6286")}catch{}})();async function dn(e){let t=b(process.cwd(),e);await C(t);let r=await w(t),i=I(r,E());return{pmRoot:t,settings:r,typeRegistry:i}}async function Bt(e,t,r,i){N(e,q(t));let n=await Be(e,t,r.id_prefix,r.item_format,i);if(n)return{id:n.id,historyPath:N(e,n.id),located:n};let s=Re(t,r.id_prefix),o=q(t),a=s===o?[s]:[s,o];for(let l of a){let d=N(e,l);if(await fe(d))return{id:l,historyPath:d,located:null}}throw new f(`Item ${t} not found`,m.NOT_FOUND)}(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]="eb2e6046-156c-56ee-a03a-ecaa1cccfb45")}catch{}})();function Mn(e,t){let r=Ae(e),i=e.length>0?e[e.length-1].after_hash:Le(),n=t===void 0||r.item_hash_version===void 0?void 0:Ce(t,r.item_hash_version,ve(e.at(-1)?.hash_algorithm)),s=t===void 0?void 0:n===void 0?Te(t):n[Math.max(0,n.indexOf(i))],o=s===void 0?void 0:s===i,a=[...r.errors];return o===!1&&a.push("verify_failed:current_item_hash_mismatch"),{ok:a.length===0,entries:e.length,errors:a,latest_after_hash:e.length>0?e[e.length-1].after_hash:void 0,current_item_hash:s,current_matches_latest:o}}async function An(e,t,r={}){let i=b(r.cwd??process.cwd(),r.pmRoot);await C(i);let n=await w(i),s=I(n,E()),o=await Bt(i,e,n,s.type_to_folder),a=await Ee(o.historyPath,o.id);if(a.length===0)throw new f(`No history exists for ${o.id}; point-in-time reads are unavailable.`,m.NOT_FOUND);let l=Ne(t,a),d=Ue(Pe(a,l.historyIndex),l),c=Me(d,{schema:n.schema});if(c.metadata.id!==o.id)throw new f(`History target resolved to item ${c.metadata.id}, expected ${o.id}.`,m.GENERIC_FAILURE);let u=a[l.historyIndex],p=Oe(a,!0);return{document:c,reconstructed:!0,as_of_version:p===null?null:p+l.historyIndex+1,as_of_timestamp:u.ts,target:l,history_length:a.length}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="e524f0ad-faad-5d89-b8f5-1283979919ad")}catch{}})();(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="67d97df8-6551-52ed-9307-8b573a087831")}catch{}})();var U=1e6;function ce(e,t=U,r=.8,i=!1){let n=new Set,s=(c,u)=>{if(n.add(`${c}:${u}`),n.size>t)throw new f(`Duplicate sweep exceeded ${t} candidate pairs; narrow it with statuses or since.`,m.CONFLICT,{code:"duplicate_sweep_cost_limit",required:"Narrow the duplicate query or increase its similarity threshold. No partial result was returned."})};if(i||r===0){for(let c=0;c<e.length;c+=1)for(let u=0;u<c;u+=1)s(u,c);return n}let o=new Map;for(let{prepared:c}of e)for(let u of c.tokens)o.set(u,(o.get(u)??0)+1);let a=new Map,l=new Map,d=new Map;for(let[c,{prepared:u}]of e.entries()){let p=[...u.tokens].sort((_,S)=>o.get(_)-o.get(S)||_.localeCompare(S)),y=p.length-Math.ceil(r*p.length-1e-12)+1,g=[{index:a,keys:[u.normalized],lengthFilter:!1},{index:l,keys:r<=.99?u.issueCodes:[],lengthFilter:!1},{index:d,keys:p.length===0?[""]:p.slice(0,y),lengthFilter:!0}];for(let _ of g)zr(e,c,_,r,s)}return n}function zr(e,t,r,i,n){let s=e[t].prepared.tokens.length;for(let o of r.keys){let a=r.index.get(o)??[];for(let l of a){let d=e[l].prepared.tokens.length;r.lengthFilter&&Math.min(d,s)/Math.max(d,s)+1e-12<i||n(l,t)}a.push(t),r.index.set(o,a)}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="a5f450bd-8970-5b1b-8250-b76b7818e6e1")}catch{}})();var Hr=3,Gt=20,qr=.8,Vr=100,$t=1e3;function is(e){return e===void 0?[]:[`likely_duplicates:${e.result.items.map(t=>t.id).join(",")}`,`likely_duplicate_recovery:${e.recovery.action}:${e.recovery.item_id}`]}async function Wr(e,t){let r=e.items[0],i=b(t.cwd??process.cwd(),t.pmRoot),n=A((await w(i)).schema);return T(r.status,n)?{action:"reopen",item_id:r.id,command:`pm item reopen ${r.id} "<recurrence reason>"`,args:["item","reopen",r.id,"<recurrence reason>"]}:{action:"reuse",item_id:r.id,command:`pm get ${r.id} --full`,args:["get",r.id,"--full"]}}function ue(e){let t=e.limit??Hr,r=e.threshold??qr;if(!Number.isSafeInteger(t)||t<0||t>Gt)throw new f(`Similarity limit must be an integer from 0 to ${Gt}.`,m.USAGE);if(!Number.isFinite(r)||r<0||r>1)throw new f("Similarity threshold must be a number from 0 to 1.",m.USAGE);return{limit:t,threshold:r}}function zt(e){let t=e.limit??Vr;if(!Number.isSafeInteger(t)||t<0||t>$t)throw new f(`Duplicate cluster limit must be an integer from 0 to ${$t}.`,m.USAGE);let r=e.since===void 0?void 0:new Date(e.since);if(r&&Number.isNaN(r.getTime()))throw new f("Duplicate cluster --since must be a valid ISO timestamp.",m.USAGE);return{limit:t,since:r}}async function Xr(e,t){let r=b(e.cwd??process.cwd(),e.pmRoot),i=await w(r),n=I(i),s=e.statuses?.map(u=>u.trim().toLowerCase()).filter(Boolean);if(e.statuses!==void 0&&s?.length===0)throw new f("Duplicate cluster statuses must include at least one lifecycle status or all.",m.USAGE);let o=A(i.schema),a=s?.map(u=>{if(u==="all")return u;let p=Fe(u,o);if(!p)throw new f(`Unknown duplicate-cluster status "${u}". Allowed: all, ${o.definitions.map(y=>y.id).join(", ")}.`,m.USAGE);return p}),l=a?.includes("all")===!0;if(l&&a?.some(u=>u!=="all"))throw new f('The "all" status cannot be combined with other statuses.',m.USAGE);let d=l?void 0:a,c=d?new Set(d):void 0;return{items:(await k(r,i.item_format,n.type_to_folder,void 0,i.schema)).filter(u=>(!c||c.has(u.status))&&(!t||new Date(u.created_at).getTime()>=t.getTime())),statuses:d}}var ns={buildDuplicateClusters:qt,collectDuplicateCandidatePairs:ce,createDuplicateUnionFind:Ht};function Ht(e){let t=Array.from({length:e},(r,i)=>i);return{parent:t,findRoot:r=>{let i=r;for(;t[i]!==i;)i=t[i];for(;t[r]!==r;){let n=t[r];t[r]=i,r=n}return i}}}function Yr(e,t,r,i){let n=[];for(let s of t){let[o,a]=s.split(":").map(u=>Number.parseInt(u,10)),l=J(e[o].prepared,e[a].prepared);if(l.score<r)continue;let d=i.findRoot(o),c=i.findRoot(a);d!==c&&(i.parent[c]=d),n.push({left_id:e[o].item.id,right_id:e[a].item.id,...l})}return n}function qt(e,t,r,i){let n=new Map;for(let a of e.keys()){let l=r.findRoot(a),d=n.get(l)??[];d.push(a),n.set(l,d)}let s=new Map(e.map(({item:a},l)=>[a.id,r.findRoot(l)])),o=new Map;for(let a of t){let l=s.get(a.left_id),d=o.get(l)??[];d.push(a),o.set(l,d)}return[...n.values()].filter(a=>a.length>1).map(a=>{let l=(o.get(r.findRoot(a[0]))??[]).sort((d,c)=>c.score-d.score||d.left_id.localeCompare(c.left_id)||d.right_id.localeCompare(c.right_id));return{id:e[a[0]].item.id,items:a.map(d=>{let c=e[d].item;return{id:c.id,title:c.title,status:c.status,type:c.type}}),matches:l,max_score:l[0]?.score??0}}).sort((a,l)=>l.max_score-a.max_score||a.id.localeCompare(l.id)).slice(0,i)}function Qr(e,t,r,i,n){return t.filter(s=>!r.has(s.id)).map(s=>({id:s.id,title:s.title,status:s.status,type:s.type,...Q(e,s.title)})).filter(s=>s.score>=i).sort((s,o)=>o.score-s.score||s.id.localeCompare(o.id)).slice(0,n)}async function Jr(e,t={}){let r=e.title.trim();if(r.length===0)throw new f("Similarity candidate title must not be empty.",m.USAGE);let{limit:i,threshold:n}=ue(t),s=b(t.cwd??process.cwd(),t.pmRoot),o=await w(s),a=I(o),l=await D(s,Object.values(a.type_to_folder)),d=X(r),c=l&&d.length>0?await W({pmRoot:s,expectedSourceCursor:l.source_cursor,query:d.map(y=>`"${y.replaceAll('"','""')}"`).join(" OR "),limit:Math.max(i*10,50)}):null,u=c===null?await k(s,o.item_format,a.type_to_folder,void 0,o.schema):c.items,p=Qr(r,u,new Set(e.excludeIds??[]),n,i);return{items:p,count:p.length,threshold:n,source:c?"persistent_index":"metadata_fallback"}}function Zr(e,t={}){let{threshold:r}=ue({...t,limit:void 0}),{limit:i}=zt(t),n=new Set;for(let c of e){if(!c.id.trim()||n.has(c.id))throw new f("Duplicate analysis requires unique non-empty item ids.",m.USAGE);n.add(c.id)}let s=[...e].sort((c,u)=>c.id.localeCompare(u.id)).map(c=>({item:c,prepared:Y(c.title)})),o=ce(s,U,r,t.exhaustive===!0),a=Ht(s.length),l=Yr(s,o,r,a),d=qt(s,l,a,i);return{clusters:d,count:d.length,threshold:r,cost:{item_count:s.length,algorithm:t.exhaustive===!0||r===0?"exhaustive":"prefix_exact",possible_pairs:s.length*(s.length-1)/2,pair_limit:U,recall_guarantee:"exact",candidate_pairs:o.size,scored_pairs:o.size}}}async function ss(e={}){ue({...e,limit:void 0});let{since:t}=zt(e),{items:r,statuses:i}=await Xr(e,t);return{...Zr(r,e),source:"metadata_scan",filters:{statuses:i??null,since:e.since??null}}}async function os(e,t){if(t.mode==="off")return;let r=await Jr(e,t);if(r.count===0)return;let i=await Wr(r,t),n=t.mode==="strict"&&t.allowDuplicate===!0;if(t.mode==="strict"&&!n){let s=r.items.map(a=>`${a.id} (${a.status}): ${a.title}`).join("; "),o=i.action==="reopen"?"Reopen the canonical item":"Reuse the canonical item";throw new f(`Likely duplicate item(s) found: ${s}. ${o} or pass --allow-duplicate with explicit intent.`,m.CONFLICT,{code:"likely_duplicate",required:`${o}, or explicitly acknowledge the duplicate with --allow-duplicate.`,recovery:{suggested_flags:["--allow-duplicate"],suggested_retry:i.command,suggested_retry_args:i.args}})}return{mode:t.mode,bypassed:n,result:r,recovery:i}}(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]="f091d0c3-f2a7-5d76-8656-4aebe82e9798")}catch{}})();function ls(e,t){let r=t??{};return e.filter(i=>r[i.id]!==i.updated_at).map(i=>i.id).sort((i,n)=>i.localeCompare(n))}export{P as a,We as b,si as c,Z as d,K as e,Xe as f,Ye as g,tt as h,re as i,it as j,fi as k,pi as l,ot as m,at as n,gi as o,yt as p,se as q,ut as r,mt as s,_r as t,bt as u,wt as v,Wi as w,Xi as x,dn as y,Bt as z,Mn as A,An as B,is as C,ns as D,Jr as E,Zr as F,ss as G,os as H,ls as I};
2
+ //# sourceMappingURL=chunk-A52W6GLA.js.map