@unbrained/pm-cli 2026.8.5 → 2026.8.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +2 -2
- package/CHANGELOG.md +14 -0
- package/dist/cli/main.js +12 -37
- package/dist/cli/register-setup.d.ts +1 -1
- package/dist/cli/register-setup.js +46 -20
- package/dist/cli-bundle/bundle-manifest.json +391 -391
- package/dist/cli-bundle/chunks/append-XAJ5Z4XS.js +2 -0
- package/dist/cli-bundle/chunks/{chunk-2WFXWAYX.js → chunk-343QETLI.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-RKAVWO3O.js → chunk-3KFVGGRE.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-VCKLFEUN.js → chunk-3ZJRFYY2.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-UZBWIUYD.js → chunk-4AVFKHHC.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-BPELKUQD.js → chunk-4OVGQW22.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-54FNT7U2.js → chunk-5PBP2ZP3.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-NY4T3JWN.js → chunk-5ZKQPA44.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-4YUBDMQM.js → chunk-A3XQ7VPU.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-OPVH7SKD.js → chunk-AJE3AHPD.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-V3774P7D.js → chunk-AOBDLU4T.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-VN5VITU3.js → chunk-AYRUGRNS.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-HWRRMBJO.js → chunk-BP6EMEDP.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-ZYHOB3SN.js → chunk-C3YABSJK.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-43HQQI6S.js → chunk-CA3BURYF.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-E2RKBKWB.js → chunk-D7I3TUGV.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-4VN6GS4U.js → chunk-DQGJ2RWT.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-YSO3YFZ4.js → chunk-DWOAOZHZ.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-Q35VBGOQ.js → chunk-E7BFPLUZ.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-LKDGK44W.js → chunk-F4NREH3G.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-OMXVBQ2N.js → chunk-FDBRXV25.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-3FTILRJ2.js → chunk-GU3TSEHD.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-HS7OVAUN.js +164 -0
- package/dist/cli-bundle/chunks/{chunk-OTHLDSFP.js → chunk-JFZIS6JF.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-7A5OT5J2.js → chunk-JQ4NZ5EB.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-BXQLRKWF.js → chunk-L6LGKJX3.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-CSI3WS5I.js → chunk-M357ZCOR.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-5ZBOIPGP.js → chunk-M4VEE3FK.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-7C4PTJG6.js → chunk-MCS73BKB.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-A62CYISG.js → chunk-MDTH7SAE.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-HNFD72UK.js → chunk-OXY3SJ3N.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-L3AZOELJ.js → chunk-PECV7L5T.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-DXDREUXT.js → chunk-Q3VOP62W.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-UP7DTVMD.js → chunk-QJ7C3JIW.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-42E7YPLG.js → chunk-R6LSRGPS.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-MHK6LIWE.js → chunk-R6RKEYYW.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-UN66FZRO.js → chunk-RAFUN7IX.js} +3 -3
- package/dist/cli-bundle/chunks/chunk-RUAU5OSH.js +2 -0
- package/dist/cli-bundle/chunks/chunk-SD3YXU2U.js +56 -0
- package/dist/cli-bundle/chunks/{chunk-SSF4PIUR.js → chunk-SV3YQ4RY.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-V3EUXXOF.js → chunk-SVV3DQES.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-45G53IU4.js → chunk-SXECIECW.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-T45OHXDW.js +8 -0
- package/dist/cli-bundle/chunks/{chunk-PMXJEU3F.js → chunk-TPKDJ5WL.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-M72BKL5Q.js → chunk-UVVXHGYS.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-WRL4KNDL.js → chunk-V663653R.js} +19 -19
- package/dist/cli-bundle/chunks/{chunk-R546TPDE.js → chunk-WSI5KZQJ.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-6MSQJOTG.js → chunk-XPOQQJTX.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-XCEZYMNI.js → chunk-YCCDXBNU.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-LN2WFEU4.js → chunk-ZFBWCKYF.js} +2 -2
- package/dist/cli-bundle/chunks/close-DI66JMSB.js +2 -0
- package/dist/cli-bundle/chunks/close-many-VFKT6U3O.js +2 -0
- package/dist/cli-bundle/chunks/comments-E73HIEZJ.js +2 -0
- package/dist/cli-bundle/chunks/copy-WBYVLCPC.js +2 -0
- package/dist/cli-bundle/chunks/{create-XLKTXTUF.js → create-TG67IVFI.js} +2 -2
- package/dist/cli-bundle/chunks/delete-6XKUVVQN.js +2 -0
- package/dist/cli-bundle/chunks/{deps-ITTY3GIC.js → deps-AJUGP2OH.js} +2 -2
- package/dist/cli-bundle/chunks/{docs-W4OSRTYR.js → docs-QOCLDRKJ.js} +2 -2
- package/dist/cli-bundle/chunks/{files-EOK4AZI4.js → files-3ST5TY64.js} +2 -2
- package/dist/cli-bundle/chunks/focus-R2AWS63Y.js +2 -0
- package/dist/cli-bundle/chunks/{history-compact-7UGTMLL3.js → history-compact-7BJFML4S.js} +2 -2
- package/dist/cli-bundle/chunks/{history-redact-4DZRMD6Z.js → history-redact-WJN3HYXR.js} +2 -2
- package/dist/cli-bundle/chunks/{history-repair-UPOSZW5R.js → history-repair-XDNZUB7F.js} +2 -2
- package/dist/cli-bundle/chunks/{learnings-GMRNCBS3.js → learnings-SZMUPVNA.js} +2 -2
- package/dist/cli-bundle/chunks/{profile-2MUUMHRE.js → profile-KL53JIAC.js} +2 -2
- package/dist/cli-bundle/chunks/{register-list-query-LR3SQ5ZF.js → register-list-query-QH7ONPKU.js} +2 -2
- package/dist/cli-bundle/chunks/{register-mutation-SUOHFVWM.js → register-mutation-OCRQNZK4.js} +3 -3
- package/dist/cli-bundle/chunks/{register-operations-ARRRKOVN.js → register-operations-HIBJXRGB.js} +2 -2
- package/dist/cli-bundle/chunks/register-setup-QWBQ6HBS.js +2 -0
- package/dist/cli-bundle/chunks/restore-FXA5QPM7.js +2 -0
- package/dist/cli-bundle/chunks/{schema-FJ4EA3XF.js → schema-QJ27OTRV.js} +2 -2
- package/dist/cli-bundle/chunks/update-7GBO4SXG.js +2 -0
- package/dist/cli-bundle/chunks/update-many-VF6ZKQUO.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-B7LJWAZE.js → chunk-27DK4A5O.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-SV3O7TSH.js → chunk-4JC3AOGS.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-G6ETT4QK.js → chunk-6KDHXURF.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-PG2RIZBX.js → chunk-74CWP3A4.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-Y4LDYLLT.js → chunk-7AZDTGPA.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-7YTZ7A4E.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-A7BJ5SS6.js → chunk-CL3NB7VW.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-EAXXF2HW.js +4 -0
- package/dist/cli-bundle/focused-chunks/{chunk-UIL2M2NA.js → chunk-EYO4F74Z.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-7J5TUBUJ.js → chunk-GEYU23YS.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-WEM2E2PE.js → chunk-GIERI4YU.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-WVIVUWVL.js → chunk-GSW2Y7VZ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-VLYOEYML.js → chunk-LKQXXO62.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-MJ7HWSFK.js → chunk-MBBMTDD3.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-PIMMYG7Q.js → chunk-ME4XVOBJ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-IPWSFADF.js → chunk-N7QN3NE6.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-W7BJEWHX.js → chunk-QL5H3AQH.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-TQMFQYXR.js +29 -0
- package/dist/cli-bundle/focused-chunks/{chunk-RUR5I3TK.js → chunk-XNVXIQ4B.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-FGKY4MBE.js → chunk-YHDCGUIW.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-QVHKCI4T.js → chunk-YLPZHWX7.js} +2 -2
- package/dist/cli-bundle/main.js +13 -13
- package/dist/cli-bundle/sdk-authoring.js +1 -1
- package/dist/cli-bundle/sdk-contracts.js +1 -1
- package/dist/cli-bundle/sdk-core.js +25 -25
- package/dist/cli-bundle/sdk-governance.js +1 -1
- package/dist/cli-bundle/sdk-graph.js +1 -1
- package/dist/cli-bundle/sdk-merge.js +1 -1
- package/dist/cli-bundle/sdk-query.js +1 -1
- package/dist/cli-bundle/sdk-runtime.js +1 -1
- package/dist/cli-bundle/sdk-testing.js +1 -1
- package/dist/cli-bundle/sdk.js +1 -1
- package/dist/core/extensions/activation-summary.d.ts +4 -0
- package/dist/core/extensions/activation-summary.js +5 -2
- package/dist/core/extensions/contribution-inventory.d.ts +1 -0
- package/dist/core/extensions/contribution-inventory.js +35 -2
- package/dist/core/extensions/extension-hook-runtime.js +5 -3
- package/dist/core/extensions/extension-types.d.ts +18 -1
- package/dist/core/extensions/extension-types.js +2 -2
- package/dist/core/extensions/loader.js +5 -13
- package/dist/core/extensions/preflight-ownership.d.ts +5 -0
- package/dist/core/extensions/preflight-ownership.js +42 -0
- package/dist/sdk/cli-contracts/flag-contracts.d.ts +2 -0
- package/dist/sdk/cli-contracts/flag-contracts.js +8 -2
- package/dist/sdk/cli-contracts/runtime-contracts.js +4 -3
- package/dist/sdk/cli-contracts.d.ts +1 -1
- package/dist/sdk/cli-contracts.js +3 -3
- package/dist/sdk/compose.d.ts +2 -2
- package/dist/sdk/compose.js +7 -2
- package/dist/sdk/define.d.ts +3 -1
- package/dist/sdk/define.js +3 -8
- package/dist/sdk/extension/install-sources.d.ts +43 -5
- package/dist/sdk/extension/install-sources.js +36 -2
- package/dist/sdk/extension/migrations.d.ts +114 -0
- package/dist/sdk/extension/migrations.js +175 -0
- package/dist/sdk/extension/scaffold.js +14 -9
- package/dist/sdk/extension/source-resolution.d.ts +50 -0
- package/dist/sdk/extension/source-resolution.js +66 -0
- package/dist/sdk/extension.d.ts +5 -1
- package/dist/sdk/extension.js +24 -26
- package/dist/sdk/governance/health.js +11 -2
- package/dist/sdk/index.d.ts +6 -2
- package/dist/sdk/index.js +8 -4
- package/dist/sdk/package-migrations.d.ts +10 -0
- package/dist/sdk/package-migrations.js +21 -0
- package/dist/sdk/runtime.d.ts +2 -0
- package/dist/sdk/runtime.js +6 -2
- package/docs/COMMANDS.md +9 -0
- package/docs/EXTENSIONS.md +2 -2
- package/docs/EXTENSION_LIFECYCLE.md +46 -0
- package/docs/README.md +1 -0
- package/docs/RELEASING.md +33 -20
- package/docs/SDK.md +31 -3
- package/marketplace.json +2 -2
- package/package.json +3 -3
- package/packages/pm-beads/package.json +1 -1
- package/packages/pm-calendar/package.json +1 -1
- package/packages/pm-command-kit/package.json +1 -1
- package/packages/pm-digital-twin/package.json +1 -1
- package/packages/pm-governance-audit/package.json +1 -1
- package/packages/pm-guide-shell/package.json +1 -1
- package/packages/pm-kanban/package.json +1 -1
- package/packages/pm-lifecycle-hooks/package.json +1 -1
- package/packages/pm-linked-test-adapters/package.json +1 -1
- package/packages/pm-search-advanced/package.json +1 -1
- package/packages/pm-templates/package.json +1 -1
- package/packages/pm-todos/package.json +1 -1
- package/packages/pm-vcs/package.json +1 -1
- package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
- package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
- package/sdk/public-surface.json +218 -20
- package/dist/cli-bundle/chunks/append-VXXGOXSG.js +0 -2
- package/dist/cli-bundle/chunks/chunk-EGJ4JTUG.js +0 -55
- package/dist/cli-bundle/chunks/chunk-FPBQHMFT.js +0 -8
- package/dist/cli-bundle/chunks/chunk-GE4KCSZP.js +0 -164
- package/dist/cli-bundle/chunks/chunk-YEWNL576.js +0 -2
- package/dist/cli-bundle/chunks/close-VZ3OQPN5.js +0 -2
- package/dist/cli-bundle/chunks/close-many-SB4TI27P.js +0 -2
- package/dist/cli-bundle/chunks/comments-BIF3Q4KY.js +0 -2
- package/dist/cli-bundle/chunks/copy-6AI5Z57X.js +0 -2
- package/dist/cli-bundle/chunks/delete-ZY2VHQTP.js +0 -2
- package/dist/cli-bundle/chunks/focus-DLBNWL7L.js +0 -2
- package/dist/cli-bundle/chunks/register-setup-O6AYP6NP.js +0 -2
- package/dist/cli-bundle/chunks/restore-ZVCVHTB5.js +0 -2
- package/dist/cli-bundle/chunks/update-YHV52CSS.js +0 -2
- package/dist/cli-bundle/chunks/update-many-M6YHVNXM.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-BIMTMOS7.js +0 -4
- package/dist/cli-bundle/focused-chunks/chunk-GJ2TG2CW.js +0 -28
- package/dist/cli-bundle/focused-chunks/chunk-N5XU5UVK.js +0 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import{C as Mn,P as Tn,T as Fn,b as le,c as yn,d as ue,f as _n,g as fe,qa as $n}from"./chunk-6MSQJOTG.js";import{a as Wn,c as Bn,i as ye,j as Kn,k as Vn,l as Qn}from"./chunk-LKDGK44W.js";import{a as pe,b as Pn,c as On,d as qn,e as Nn,f as jn,g as Be,h as Gn,i as he,j as Un,l as Ke,m as zn,n as ge,o as Hn}from"./chunk-NE5VRDAI.js";import{g as Dn,k as Ln}from"./chunk-L3AZOELJ.js";import{b as wn}from"./chunk-FB7G2HY2.js";import{a as gn,e as Q,f as bn,g as En,h as kn,i as In,k as An,l as Cn,r as Rn,s as $e,t as We,u as me}from"./chunk-RKAVWO3O.js";import{a as pn,b as hn}from"./chunk-43HQQI6S.js";import{a as vn,b as Sn,c as xn}from"./chunk-UP7DTVMD.js";import{Da as mn}from"./chunk-YEWNL576.js";import{C as an,D as de,E as cn,F as Ge,G as Ue,H as ze,I as dn,M as ln,N as He,W as un,e as Ot,f as qt,r as ie,v as en,w as tn,x as nn}from"./chunk-A62CYISG.js";import{a as Ne,b as Qt}from"./chunk-BPELKUQD.js";import{a as oe}from"./chunk-5ZBOIPGP.js";import{a as fn}from"./chunk-A6KGKEWT.js";import{A as m,Ad as V,Af as A,Bb as Lt,Bd as Ut,C as p,Cd as Oe,D as K,Da as P,E as Te,Ec as Pt,I as te,J as Rt,Kd as zt,Kf as rn,La as v,Lf as se,Md as Ht,Mf as ae,Na as Ft,Nc as O,Nf as on,Oa as I,Of as ce,Pa as Le,Pc as H,R as G,Ra as ne,Rd as $t,Rf as sn,Sd as re,T as Mt,Td as Wt,U as Tt,V as Fe,Vd as Bt,Xd as Kt,Y as De,ad as Nt,b as k,c as B,cd as U,d as Me,f as It,ff as Vt,gd as jt,ib as Dt,kf as Yt,lc as R,mf as Xt,nf as je,of as Jt,t as At,uf as Zt,v as Ct,wc as Pe,ye as qe,zd as Gt}from"./chunk-GE4KCSZP.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="3a33af50-3d2c-57bb-884a-4d5394599ba2")}catch{}})();function oo(e,t,n,r,i,o){if(e.seen.has(t))return"skip";if(e.cursorFound&&e.affected.length>=o)return"truncate";e.seen.add(t),e.parents.set(t,n.id);let s=n.depth+1;return e.queue.push({id:t,depth:s}),e.cursorFound?(e.affected.push({id:t,distance:s,path:po(r,t,e.parents)}),"continue"):(e.cursorFound=t===i,"skip")}function so(e,t,n,r){let i=re("graph impact",{root:e,direction:n,kinds:[...t.kinds??[]].sort(),max_depth:Number.isFinite(r)?r:"unbounded"});return{fingerprint:i,after:t.after===void 0?void 0:Bt(t.after,i)}}function Y(e,t,n){e.get(t).add(n)}function we(e){return new Map(e.map(t=>[t,new Set]))}function Xn(e){for(let t of e)t.sort();return e.sort((t,n)=>n.length-t.length||t[0].localeCompare(n[0]))}function _e(e){if(Array.isArray(e))return e.map(n=>_e(n));if(e===null||typeof e!="object")return e;let t=e.toJSON;return typeof t=="function"?_e(t.call(e)):Object.fromEntries(Object.entries(e).sort(([n],[r])=>n.localeCompare(r)).map(([n,r])=>[n,_e(r)]))}function Yn(e){return JSON.stringify(_e(e))}function ao(e,t,n,r){let i=[{id:e,expanded:!1}];for(;i.length>0;){let o=i.pop();if(o.expanded){r.push(o.id);continue}if(n.has(o.id))continue;n.add(o.id),i.push({id:o.id,expanded:!0});let s=[...t.get(o.id)].sort().reverse();for(let a of s)n.has(a)||i.push({id:a,expanded:!1})}}function co(e,t){let n=new Set,r=[];for(let i of e)n.has(i)||ao(i,t,n,r);return r}function lo(e,t){let n=new Set,r=[];for(let i of[...e].reverse()){if(n.has(i))continue;let o=[],s=[i];for(n.add(i);s.length>0;){let a=s.pop();o.push(a);for(let c of t.get(a))n.has(c)||(n.add(c),s.push(c))}r.push(o)}return Xn(r)}function Jn(e,t){let n=we(e);for(let[r,i]of t)for(let o of i)Y(n,o,r);return lo(co(e,t),n)}function uo(e,t){let n=we(e.nodes());for(let r of e.edges()){let i=t.require(r.kind);if(!i.ordering)continue;let o=(i.precedence??"source_before_target")==="source_before_target";Y(n,o?r.source:r.target,o?r.target:r.source)}return n}function fo(e,t){let n=new Map(e.map(o=>[o,0]));for(let o of t.values())for(let s of o)n.set(s,n.get(s)+1);let r=e.filter(o=>n.get(o)===0).sort(),i=[];for(;r.length>0;){i.push(r);let o=[];for(let s of r)for(let a of t.get(s)){let c=n.get(a)-1;n.set(a,c),c===0&&o.push(a)}r=o.sort()}return i}function mo(e,t){let n=new Map(e.map(s=>[s,0])),r=new Map;for(let s of e)for(let a of t.get(s)){if(!n.has(a))continue;let c=n.get(s)+1,d=r.get(a);(c>n.get(a)||c===n.get(a)&&(d===void 0||s.localeCompare(d)<0))&&(n.set(a,c),r.set(a,s))}let i=[...e].sort((s,a)=>n.get(a)-n.get(s)||s.localeCompare(a))[0],o=i===void 0?[]:[i];for(;o[0]!==void 0&&r.has(o[0]);)o.unshift(r.get(o[0]));return{depth:Object.fromEntries(n),path:o}}function po(e,t,n){let r=[t],i=t;for(;i!==e;)i=n.get(i),r.push(i);return r.reverse()}function be(e,t={}){let n=t.registry??Dt(),r=[...e.nodes()],i=uo(e,n),o=fo(r,i),s=o.flat(),a=s.length===r.length,c=a?[]:Jn(r,i).filter(l=>l.length>1||i.get(l[0]).has(l[0])),d=mo(s,i);return{exact:!0,acyclic:a,order:s,layers:o,frontier:o[0]??[],depth:d.depth,criticalPath:d.path,criticalPathLength:Math.max(0,d.path.length-1),cycles:c,provenance:{algorithm:"kahn-longest-path",edgeFamily:"ordering"}}}function Zn(e,t,n={}){let r=n.direction??"outgoing",i=n.maxDepth??Number.POSITIVE_INFINITY,o=n.limit??Number.POSITIVE_INFINITY,{fingerprint:s,after:a}=so(t,n,r,i),c={queue:[{id:t,depth:0}],seen:new Set([t]),parents:new Map,affected:[],cursorFound:a===void 0||a===t},d=0,l=0,u=!1,f=!1;e:for(let g=0;g<c.queue.length;g+=1){n.signal?.throwIfAborted();let h=c.queue[g];d+=1;let y=e.adjacency(h.id,{direction:r,kinds:n.kinds,signal:n.signal});if(l+=y.meta.inspectedEdges,h.depth>=i){y.value.some(w=>!c.seen.has(w))&&(u=!0);continue}for(let w of y.value)if(oo(c,w,h,t,a,o)==="truncate"){u=!0,f=!0;break e}}if(!c.cursorFound)throw new TypeError(`Unknown impact cursor item: ${a}`);return{root:t,affected:c.affected,exact:!0,truncated:u,...f?{nextCursor:Wt(s,c.affected.at(-1)?.id??t)}:{},cost:{visitedNodes:d,inspectedEdges:l}}}function er(e){let t=[...e.nodes()],n=we(t),r=we(t);for(let c of e.edges())Y(n,c.source,c.target),Y(n,c.target,c.source),Y(r,c.source,c.target);let i=[],o=new Set;for(let c of t){if(o.has(c))continue;let d=[],l=[c];for(o.add(c);l.length>0;){let u=l.pop();d.push(u);for(let f of n.get(u))o.has(f)||(o.add(f),l.push(f))}i.push(d)}let s=t.map(c=>({id:c,degree:n.get(c).size})),a=Math.max(0,...s.map(({degree:c})=>c));return{components:Xn(i),stronglyConnected:Jn(t,r),orphans:s.filter(({degree:c})=>c===0).map(({id:c})=>c),hubs:s.filter(({degree:c})=>c>0&&c===a),exact:!0,provenance:{algorithm:"component-degree",edgeFamily:"all"}}}function fc(e,t){let n=new Map(e.edges.map(i=>[Yn(i),i])),r=new Map(t.edges.map(i=>[Yn(i),i]));return{fromVersion:e.version,toVersion:t.version,added:[...r].filter(([i])=>!n.has(i)).map(([,i])=>i),removed:[...n].filter(([i])=>!r.has(i)).map(([,i])=>i),unchangedCount:[...n.keys()].filter(i=>r.has(i)).length,exact:!0}}(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]="56486369-9164-58d3-ac34-46d57859f96d")}catch{}})();var tr=["parent","type","priority","status","assignee","tags","sprint","release"];function rr(e,t){let n=ie(e,t,{strict:!0,flagLabel:"--status"});if(!(!n||n.length===0))return n}function ir(e,t=["estimate","estimated_minutes","priority"]){let n=e.sum?.trim(),r=e.avg?.trim(),i=n&&n.length>0?n:void 0,o=r&&r.length>0?r:void 0;if(!i&&!o)return null;if(i&&o&&i!==o)throw new p("Aggregate --sum and --avg must target the same numeric field",m.USAGE);let s=i??o;if(!t.includes(s))throw new p(`Aggregate numeric field "${s}" is not registered. Allowed: ${t.join(", ")}`,m.USAGE);return{field:s,sum:i!==void 0,avg:o!==void 0}}function or(e){let t=e?.trim()??"status";if(t.length===0)throw new p("--group-by requires at least one field name",m.USAGE);let n=fn(t);if(n.length===0)throw new p("--group-by requires a comma-separated list of fields",m.USAGE);for(let r of n)if(!tr.includes(r))throw new p(`Aggregate group fields must be one of ${tr.join("|")}; received "${r}"`,m.USAGE);return n}function sr(e){let t=[...new Set(e.map(n=>n.trim().toLowerCase()).filter(n=>n.length>0))].sort((n,r)=>n.localeCompare(r));return t.length===0?null:t.join(",")}function ar(e,t){switch(e){case"parent":return t.parent??null;case"type":return t.type;case"priority":return t.priority;case"status":return t.status;case"assignee":return t.assignee??null;case"tags":return sr(t.tags);case"sprint":return t.sprint??null;case"release":return t.release??null;default:return null}}function cr(e,t){let n=e??null,r=t??null;return n===r?0:n===null?1:r===null?-1:typeof n=="number"&&typeof r=="number"?n-r:String(n).localeCompare(String(r))}function dr(e,t){return e.map(n=>`${n}:${JSON.stringify(t[n]??null)}`).join("|")}var ho={parent:"(unparented)",type:"(untyped)",priority:"(no priority)",status:"(no status)",assignee:"(unassigned)",tags:"(untagged)",sprint:"(no sprint)",release:"(no release)"};function nr(e,t){return t==null||t===""?ho[e]:String(t)}function go(e,t){return e.length===1?nr(e[0],t[e[0]]):e.map(n=>`${n}=${nr(n,t[n])}`).join(" | ")}function lr(e,t,n){for(let r of n){let i=cr(e.group[r],t.group[r]);if(i!==0)return i}return 0}function ur(e,t){let r=e[t];if(typeof r=="number"&&Number.isFinite(r))return r;if(typeof r=="string"){let i=r.trim();if(i.length===0)return null;let o=Number(i);if(Number.isFinite(o))return o}return null}function fr(e,t){return t<=0?0:Math.round(e/t*1e4)/100}function Ve(e,t,n){let r=Nt(String(t),n)??t;if(r===n.open_status){e.open_count+=1;return}if(r==="in_progress"||n.active_statuses.has(r)&&r!==n.open_status){e.in_progress_count+=1;return}if(n.terminal_done_statuses.has(r)||r===n.close_status){e.closed_count+=1;return}e.other_count+=1}function yo(e,t){return{row:{group:e,count:1},numeric_count:t===null?0:1,numeric_sum:t??0,null_count:t===null?1:0,open_count:0,in_progress_count:0,closed_count:0,other_count:0}}function _o(e,t){if(t===null){e.null_count+=1;return}e.numeric_count+=1,e.numeric_sum+=t}function wo(e){e.accumulator.row.count+=1,e.includeCompletion&&Ve(e.accumulator,e.item.status,e.statusRegistry),e.numericAggregation!==null&&_o(e.accumulator,e.numericValue)}function bo(e,t){let n={};for(let r of e)n[r]=ar(r,t);return n}function Eo(e,t,n,r){let i={...e.row,group_label:go(t,e.row.group)};return n&&(i.open=e.open_count,i.in_progress=e.in_progress_count,i.closed=e.closed_count,i.other=e.other_count,i.completion_pct=fr(e.closed_count,e.row.count)),r!==null&&(i.null_count=e.null_count,r.sum&&(i.sum=e.numeric_sum),r.avg&&(i.avg=e.numeric_count===0?null:e.numeric_sum/e.numeric_count)),i}function vo(e){return{group_by:e.groupBy,count:!0,completion:e.includeCompletion,include_unparented:e.includeUnparented,status:e.status?.[0]??null,status_values:e.status,type:e.options.type??null,tag:e.options.tag??null,priority:e.options.priority??null,deadline_before:e.options.deadlineBefore??null,deadline_after:e.options.deadlineAfter??null,assignee:e.options.assignee??null,assignee_filter:e.options.assigneeFilter??null,parent:e.options.parent??null,sprint:e.options.sprint??null,release:e.options.release??null,...e.numericAggregation!==null?{sum:e.options.sum??null,avg:e.options.avg??null,numeric_field:e.numericAggregation.field}:{}}}async function yc(e,t){if(e.count===!1)throw new p("Aggregate grouped counts are always enabled; omit count=false.",m.USAGE);let n=v(process.cwd(),t.path),r=await A(n),i=O(r.schema),o=["estimate","estimated_minutes","priority",...H(r.schema).definitions.filter(_=>_.type==="number").map(_=>_.metadata_key)],s=or(e.groupBy),a=rr(e.status,i),c=ir(e,[...new Set(o)].sort((_,b)=>_.localeCompare(b))),d=e.completion===!0,l=e.includeUnparented===!0,u=await me(void 0,{...wn(e),status:e.status},t),f=new Map,g=0,h=0;for(let _ of u.items){let b=_,C=bo(s,b);if(s.includes("parent")&&C.parent===null&&!l){g+=1;continue}let S=dr(s,C),x=f.get(S),E=c===null?null:ur(b,c.field);if(x)wo({accumulator:x,item:b,statusRegistry:i,includeCompletion:d,numericAggregation:c,numericValue:E});else{let D=yo(C,E);d&&Ve(D,b.status,i),f.set(S,D)}h+=1}let y=[...f.values()].map(_=>Eo(_,s,d,c)).sort((_,b)=>lr(_,b,s)),w=u.warnings&&u.warnings.length>0?u.warnings:void 0;return{groups:y,count:y.length,totals:{items_considered:u.items.length,items_grouped:h,items_skipped_unparented:g},filters:vo({groupBy:s,includeCompletion:d,includeUnparented:l,status:a,options:e,numericAggregation:c}),now:G(),...w?{warnings:w}:{}}}var _c={buildGroupKey:dr,compareAggregateRows:lr,compareNullableGroupValue:cr,completionPct:fr,normalizeTagGroupValue:sr,parseGroupBy:or,parseNumericAggregation:ir,parseStatus:rr,readNumericAggregateValue:ur,resolveGroupValue:ar,updateCompletionCounts:Ve};(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]="1638ef81-7558-5d51-8561-99c958de2d03")}catch{}})();function So(e,t){return t===void 0?e:e.slice(Math.max(0,e.length-t))}function xo(e,t){return e.map((n,r)=>{let i=new Set,o=Vt(n.patch);for(let s of o)i.add(Ne(s.path)),s.from&&i.add(Ne(s.from));return{index:t+r+1,ts:n.ts,op:n.op,author:n.author,patch_ops:o.length,changed_fields:[...i].sort((s,a)=>s.localeCompare(a))}})}async function ko(e,t){let n=v(process.cwd(),t.path);if(!await k(I(n)))throw new p(`Tracker is not initialized at ${n}. Run pm init first.`,m.NOT_FOUND);let r=await A(n),i=P(r,R()),o=e.trim()===je,s=o?je:Zt(e,r.id_prefix),a=await se(n,s,r.id_prefix,r.item_format,i.type_to_folder),c=a?.id??s,d=o?Jt(n):ne(n,c);if(!a&&!await k(d))throw new p(`Item ${e} not found`,m.NOT_FOUND);return a&&await Yt({pmRoot:n,settings:r,itemId:a.id,commandLabel:"history"}),{historyPath:d,located:a,resolvedId:c,settings:r}}async function Ic(e,t,n){let r=oe(t.limit),{historyPath:i,located:o,resolvedId:s,settings:a}=await ko(e,n),c=await V(i,s),d=a.agent_identity.identity_vocabulary,l=le(a.agent_identity.harness_signals),u=_n({harness:t.harness,agentInstance:t.agentInstance,provenance:t.provenanceFilter},d,l),f=c.map((E,D)=>({entry:E,version:D+1})).filter(({entry:E})=>u(E)),g=So(f,r),h=g.map(({entry:E})=>E),y=t.compact===!0,w=y?xo(h,Math.max(0,c.length-h.length)):void 0,_=t.provenance===!0?g.map(({entry:E,version:D})=>ue(E,d,{itemId:s,version:D})):void 0,b=t.provenance===!0?"provenance":y?"compact":"full",C={compact:{compact_history:w},provenance:{provenance_history:_},full:{history:h}}[b],x={id:s,...C,compact:y,projection:{mode:b,row_key:{compact:"compact_history",provenance:"provenance_history",full:"history"}[b]},omission_receipt:Ht("history",b),count:h.length,limit:r??null,...t.provenanceSummary===!0?{provenance_summary:fe(f.map(({entry:E})=>E),d,l)}:{}};if((t.diff||t.field!==void 0)&&(x.diff=Qt(c,{windowStartIndex:Math.max(0,c.length-h.length),field:t.field})),t.verify){let E=o?(await ae(o,{schema:a.schema})).document:void 0;x.verification=pn(c,E)}return x}(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]="2e14b978-95c9-5922-b8cb-c49d24e6f8c4")}catch{}})();var mr=1e6,pr=20;function hr(e,t,n,r=pr){if(!Number.isSafeInteger(r)||r<0)throw new p("Child projection sample limit must be a non-negative integer.",m.USAGE);let i=e.trim().toLowerCase(),o={},s=[],a=0,c=0;for(let f of t){if(c+=1,c>mr)throw new p(`Child projection exceeded the ${mr.toLocaleString("en-US")} item safety bound.`,m.GENERIC_FAILURE,{code:"child_projection_item_bound_exceeded",required:"Use an indexed or parent-filtered metadata source.",why:"Unbounded graph scans can exhaust memory in universal project stores.",nextSteps:["Build the derived item index, then retry the parent read."]});if(f.parent?.trim().toLowerCase()!==i)continue;s.push(f);let g=f.status.trim().toLowerCase();o[g]=(o[g]??0)+1,U(g,n)||(a+=1)}s.sort((f,g)=>f.id.localeCompare(g.id));let d=s.slice(0,r).map(f=>({id:f.id,title:f.title,type:f.type,status:f.status,priority:f.priority})),l=s.length>d.length,u=r===0?pr:r;return{count:s.length,active:a,by_status:Object.fromEntries(Object.entries(o).sort(([f],[g])=>f.localeCompare(g))),sample:d,sample_limit:r,truncated:l,next_offset:l?d.length:null,continuation:l?`pm list --status all --parent ${e} --offset ${d.length} --limit ${u}`:null,scanned:c}}(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]="80981c24-3442-57a2-8c35-e0e00d5425d6")}catch{}})();var Io=new Set(["event","meeting","reminder"]);function Ao(e){return Io.has(e.type.trim().toLowerCase())||e.deadline!==void 0||(e.reminders?.length??0)>0||(e.events?.length??0)>0}function gr(e){if(!Ao(e))return;let t=[...e.events??[]].sort((r,i)=>r.start_at.localeCompare(i.start_at)),n=t[0];return{deadline:e.deadline??null,start_at:n?.start_at??null,end_at:n?.end_at??null,location:n?.location??null,reminders:[...e.reminders??[]],events: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]="5536c6eb-5d51-5b67-879d-c1d0bfa5b692")}catch{}})();var Ro=["brief","standard","deep"],Mo=new Set(["epic","feature","milestone","plan"]),To=new Set(Object.keys(At).map(e=>e.toLowerCase()));function _r(e){let t=e.trim().toLowerCase();return t.length>0&&(Mo.has(t)||!To.has(t))}function yr(e){return{ts:e.ts,author:e.author,message:e.message??null}}function Fo(e,t){let n=e?.trim(),r=n&&n.length>0?n:null,i=[...t].reverse().find(s=>s.op==="claim"),o=[...t].reverse().find(s=>s.op==="release");return{claimed:r!==null,assignee:r,last_claim:i?yr(i):null,last_release:o?yr(o):null}}function Do(e){if(e===void 0||e.trim().length===0)return"standard";let t=e.trim().toLowerCase();if(t==="full")return"deep";if(Ro.includes(t))return t;throw new p("Get --depth must be one of brief|standard|deep|full",m.USAGE)}function Lo(e,t){if(t==="deep")return e;let{comments:n,notes:r,learnings:i,files:o,tests:s,docs:a,reminders:c,events:d,...l}=e;return{...l,notes_count:e.notes?.length??0,tests_count:e.tests?.length??0}}function Po(e){if(e===void 0)return null;let t=e.split(",").map(n=>n.trim()).filter(n=>n.length>0);if(t.length===0)throw new p("Get --fields requires a comma-separated list of field names",m.USAGE);return t}function ve(e){return e.startsWith("item.")?e.slice(5):e}function Oo(e,t){if(e===null)return;let n=new Set([...Ct,...t,"notes_count","tests_count"]),r=new Set(["body","linked","claim_state","children","schedule"]),i=new Set(["linked.files","linked.tests","linked.docs"]),o=new Set(["claim_state.claimed","claim_state.assignee","claim_state.last_claim","claim_state.last_release"]),s=new Set(["schedule.deadline","schedule.start_at","schedule.end_at","schedule.location","schedule.reminders","schedule.events"]),a=e.filter(c=>{let d=ve(c);return!n.has(d)&&!r.has(d)&&!i.has(d)&&!o.has(d)&&!s.has(d)});if(a.length>0)throw new p(`Unknown get --fields value(s): ${a.join(", ")}`,m.USAGE,{code:"unknown_field_projection",examples:["pm get <id> --fields id,title,status,type,updated_at","pm get <id> --fields id,title,claim_state","pm get <id> --fields id,title,body,linked.files"]})}function qo(e,t){let n=e,r={notes_count:e.notes?.length??0,tests_count:e.tests?.length??0},i={};for(let o of t){let s=ve(o);s==="body"||s==="linked"||s.startsWith("linked.")||s==="claim_state"||s.startsWith("claim_state.")||s==="children"||s.startsWith("children.")||s==="schedule"||s.startsWith("schedule.")||(i[s]=Object.hasOwn(r,s)?r[s]:n[s])}return i}function X(e,t){return e?.some(n=>n===t||n===`item.${t}`)??!1}function Ee(e,t){return e.some(n=>{let r=ve(n);return r===t||r.startsWith(`${t}.`)})}function No(e){if(e.full&&(e.fields!==void 0||e.depth!==void 0))throw new p("Get projection options are mutually exclusive; remove the extra projection flag and retry.",m.USAGE);if(e.tree!==!0&&e.treeDepth!==void 0)throw new p("Get --tree-depth requires --tree",m.USAGE);if(e.at!==void 0&&e.tree===!0)throw new p("Get --at cannot be combined with --tree because workspace-level historical projections are not yet indexed.",m.USAGE);return{depth:e.full?"deep":Do(e.depth),treeDepth:e.tree===!0?gn(e.treeDepth,"--tree-depth"):void 0,fields:Po(e.fields),fieldProjection:e.fields!==void 0}}async function jo(e,t,n){let r=v(process.cwd(),t.path);if(!await k(I(r)))throw new p(`Tracker is not initialized at ${r}. Run pm init first.`,m.NOT_FOUND);let i=await A(r),o=P(i,R());if(n!==void 0){let c=await hn(e,n,{pmRoot:t.path});return{pmRoot:r,settings:i,typeToFolder:o.type_to_folder,locatedId:c.document.metadata.id,metadata:c.document.metadata,body:c.document.body,historical:c}}let s=await se(r,e,i.id_prefix,i.item_format,o.type_to_folder);if(!s)throw await sn(r,e,i.id_prefix,o.type_to_folder);let a=await ae(s,{schema:i.schema});return{pmRoot:r,settings:i,typeToFolder:o.type_to_folder,locatedId:s.id,metadata:a.document.metadata,body:a.document.body}}function Go(e,t,n){let r=H(t.schema).definitions.map(i=>i.metadata_key);if(Oo(e,r),n&&Ee(e??[],"children"))throw new p("Get --at cannot project children because workspace-level historical relationships are not yet indexed.",m.USAGE)}function Qe(e){let{fieldProjection:t,depth:n,fields:r,field:i}=e;return t?i==="body"||i==="linked"?X(r,i):Ee(r,i):n!=="brief"}async function Uo(e,t){if(!t)return;let n=ne(e.pmRoot,e.locatedId),r=await V(n,e.locatedId);return Fo(e.metadata.assignee,e.historical?r.slice(0,e.historical.as_of_version):r)}function zo(e,t,n,r){let i=r||X(n,"linked.files"),o=r||X(n,"linked.tests"),s=r||X(n,"linked.docs");!r&&!i&&!o&&!s||(e.linked={files:i?t.metadata.files??[]:[],tests:o?t.metadata.tests??[]:[],docs:s?t.metadata.docs??[]:[]})}async function Ho(e,t,n,r){if(!t)return;let i=O(e.settings.schema),o=await ce(e.pmRoot,e.settings.item_format,e.typeToFolder,void 0,e.settings.schema),s=hr(e.locatedId,o,i,r?void 0:0);return s.count>0||n?s:void 0}function $o(e,t,n,r){if(!r)return;let i=gr(t.metadata);if(i){if(n===null||X(n,"schedule")){e.schedule=i;return}e.schedule=Object.fromEntries(Object.entries(i).filter(([o])=>n.some(s=>ve(s)===`schedule.${o}`)))}}async function Wo(e,t,n,r){if(t.tree!==!0)return;let i=await me(void 0,{parent:e.locatedId,tree:!0,treeDepth:n===void 0?void 0:String(n),full:!0},r);return{root_id:e.locatedId,root_title:e.metadata.title,depth_limit:n??null,count:i.count,items:i.items.map(o=>o)}}async function zc(e,t,n={}){let r=No(n),i=await jo(e,t,n.at);Go(r.fields,i.settings,i.historical!==void 0);let o=Qe({...r,field:"body"}),s=Qe({...r,field:"linked"}),a=Qe({...r,field:"claim_state"}),c=i.historical===void 0&&(r.fieldProjection?Ee(r.fields,"children"):r.depth!=="brief"&&_r(i.metadata.type)),d=r.fieldProjection?Ee(r.fields,"schedule"):r.depth!=="brief",l=await Uo(i,a),u={item:r.fieldProjection?qo(i.metadata,r.fields):Lo(i.metadata,r.depth)};o&&(u.item.body=i.body),zo(u,i,r.fields,s),l&&(u.claim_state=l),$o(u,i,r.fields,d);let f=await Ho(i,c,r.fieldProjection,r.fieldProjection||r.depth==="deep");f!==void 0&&(u.children=f);let g=await Wo(i,n,r.treeDepth,t);if(g!==void 0&&(u.tree=g),i.historical&&(u.reconstructed=!0,u.as_of_version=i.historical.as_of_version,u.as_of_timestamp=i.historical.as_of_timestamp),i.historical===void 0)try{await Mn({pmRoot:i.pmRoot,author:Gt(void 0,i.settings.author_default),itemIds:[i.locatedId],intent:"get"})}catch{}return u}var Hc={shouldAutoIncludeGetChildren:_r};(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]="70e06a73-6602-5384-a25b-fd3df5f6438e")}catch{}})();var br=10,q="https://schema.unbrained.dev/pm/eval-query-set/v1",Bo={schema:q,accepted_top_level:["array","object"],required_query_fields:["query","relevant_ids"],optional_fields:["mode","description"],modes:["keyword","semantic","hybrid"]},Se={schema:q,queries:[{query:"offline search",relevant_ids:["pm-75k9"],mode:"keyword"}]},M=class extends Error{constructor(t){super(t),this.name="EvalQuerySetError"}},Ko=new Set(["keyword","semantic","hybrid"]);function wr(e,t){let n=0,r=Math.min(t,e.length);for(let i=0;i<r;i+=1)n+=e[i]/Math.log2(i+2);return n}function Vo(e,t,n){if(t.size===0)return 0;let r=e.map(a=>t.has(a)?1:0),i=wr(r,n),o=Array.from({length:t.size},()=>1),s=wr(o,n);return s===0?0:i/s}function Qo(e,t,n){let r=Math.min(n,e.length);for(let i=0;i<r;i+=1)if(t.has(e[i]))return 1/(i+1);return 0}function Ye(e,t,n){let r=Math.min(n,e.length),i=0;for(let o=0;o<r;o+=1)t.has(e[o])&&(i+=1);return i}function Yo(e,t,n){return n<=0?0:Ye(e,t,n)/n}function Xo(e,t,n){return t.size===0?0:Ye(e,t,n)/t.size}function Er(e,t,n){return{ndcg:Vo(e,t,n),mrr:Qo(e,t,n),precision:Yo(e,t,n),recall:Xo(e,t,n),relevant_total:t.size,retrieved_relevant:Ye(e,t,n)}}function vr(e){let t=e.length;if(t===0)return{ndcg:0,mrr:0,precision:0,recall:0,query_count:0};let n=e.reduce((r,i)=>({ndcg:r.ndcg+i.ndcg,mrr:r.mrr+i.mrr,precision:r.precision+i.precision,recall:r.recall+i.recall}),{ndcg:0,mrr:0,precision:0,recall:0});return{ndcg:n.ndcg/t,mrr:n.mrr/t,precision:n.precision/t,recall:n.recall/t,query_count:t}}function Jo(e,t){if(typeof e!="object"||e===null)throw new M(`Eval query at index ${t} must be an object`);let n=e,r=typeof n.query=="string"?n.query.trim():"";if(r.length===0)throw new M(`Eval query at index ${t} must have a non-empty "query" string`);if(!Array.isArray(n.relevant_ids))throw new M(`Eval query at index ${t} must have a "relevant_ids" array`);if(n.relevant_ids.some(o=>typeof o!="string"))throw new M(`Eval query at index ${t} must have a "relevant_ids" array of strings`);let i=[...new Set(n.relevant_ids.map(o=>o.trim()).filter(o=>o.length>0))];if(i.length===0)throw new M(`Eval query at index ${t} must list at least one relevant id`);if(n.mode!==void 0&&(typeof n.mode!="string"||!Ko.has(n.mode)))throw new M(`Eval query at index ${t} has an invalid mode (expected keyword|semantic|hybrid)`);return{query:r,relevant_ids:i,...n.mode!==void 0?{mode:n.mode}:{},...typeof n.description=="string"&&n.description.trim().length>0?{description:n.description.trim()}:{}}}function Xe(e){let t=typeof e=="object"&&e!==null&&!Array.isArray(e)?e.schema:void 0;if(t!==void 0&&t!==q)throw new M(`Unsupported eval query set schema; expected "${q}"`);let n=Array.isArray(e)?e:typeof e=="object"&&e!==null?e.queries:void 0;if(!Array.isArray(n))throw new M('Eval query set must be an array of queries or an object with a "queries" array');if(n.length===0)throw new M("Eval query set must contain at least one query");return{schema:q,queries:n.map((r,i)=>Jo(r,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]="b0abcc02-bd6e-536a-b876-e13cfc8ea741")}catch{}})();function Sr(e){if(typeof e!="string")return!1;let t=e.split(",").map(n=>n.trim().toLowerCase()).filter(Boolean);return t.length===1&&t[0]==="all"}var Zo=[{optionKey:"status",summaryKey:"status",normalize:e=>Sr(e)?"all":e},{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:"assignee",summaryKey:"assignee"},{optionKey:"sprint",summaryKey:"sprint"},{optionKey:"release",summaryKey:"release"},{optionKey:"parent",summaryKey:"parent"}];function J(e){let{mode:t,matchMode:n,options:r,includeLinked:i,titleExact:o,phraseExact:s,scoreThreshold:a,hybridSemanticWeight:c,runtimeFieldFilters:d}=e,l={};return Rn(l,r,Zo),Object.assign(l,We(r)),Object.assign(l,$e(r)),n!==void 0&&n!=="or"&&(l.match_mode=n),i&&(l.include_linked=!0),o&&(l.title_exact=!0),s&&(l.phrase_exact=!0),a>0&&(l.score_threshold=a),t==="hybrid"&&r.semanticWeight!==void 0&&(l.hybrid_semantic_weight=c),r.limit!==void 0&&(l.limit=r.limit),d&&Object.keys(d).length>0&&(l.runtime_filters=d),l}function Z(e){let{effectiveMode:t,matchMode:n,options:r,includeLinked:i,titleExact:o,phraseExact:s,scoreThreshold:a,hybridSemanticWeight:c,queryExpansion:d,rerank:l,runtimeFieldFilters:u}=e,f=g=>g??null;return{mode:t,match_mode:n,status:r.status===void 0||Sr(r.status)?"all":r.status,type:f(r.type),tag:f(r.tag),priority:f(r.priority),deadline_before:f(r.deadlineBefore),deadline_after:f(r.deadlineAfter),updated_after:f(r.updatedAfter),updated_before:f(r.updatedBefore),created_after:f(r.createdAfter),created_before:f(r.createdBefore),assignee:f(r.assignee),sprint:f(r.sprint),release:f(r.release),parent:f(r.parent),...We(r),...$e(r),include_linked:i,title_exact:o,phrase_exact:s,score_threshold:a,hybrid_semantic_weight:t==="hybrid"?c:null,query_expansion_enabled:d.enabled,query_expansion_provider:d.provider,rerank_enabled:l.enabled,rerank_model:l.model,rerank_top_k:l.top_k,limit:f(r.limit),runtime_filters:u}}(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]="0fc9ed92-daf5-5fa2-b9a4-ee6c36256ed1")}catch{}})();function es(e){return re("search",{query:e.query.trim(),mode:e.mode,options:$t(e.searchOptions,mn)})}function xr(e){let t=Kt(e.sorted,{cursor:e.searchOptions.after,fingerprint:es(e),limit:e.limit,readId:n=>n.item.id});return{limited:t.rows,pageExtras:{applied_limit:e.limit,...t.has_more?{has_more:!0,truncated:!0}:{},...t.next_cursor?{next_cursor:t.next_cursor}:{}}}}(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]="47576eb5-4ddf-5e04-9e1d-c961da39b754")}catch{}})();var ts=["id","title","status","type","priority","updated_at","score","matched_fields"],ns=new Set(["score","matched_fields","highlights"]),rs=new Set(["id","title","description","type","status","priority","tags","created_at","updated_at","deadline","assignee","author","estimated_minutes","acceptance_criteria","dependencies","comments","notes","learnings","reminders","events","files","tests","docs","close_reason","parent","reviewer","risk","confidence","sprint","release","blocked_by","blocked_reason","reporter","severity","environment","repro_steps","resolution","expected_result","actual_result","affected_version","fixed_version","component","regression","customer_impact","definition_of_ready","order","rank","goal","objective","value","impact","outcome","why_now","plan"]);function kr(e){if(e===void 0)return"keyword";let t=e.trim().toLowerCase();if(t!=="keyword"&&t!=="semantic"&&t!=="hybrid")throw new p("Search mode must be one of keyword|semantic|hybrid",m.USAGE);return t}function xe(e){return e===!0}function Ir(e){return Rt(e,0,1)??void 0}function Ar(e){if(e===void 0)return"or";let t=e.trim().toLowerCase();if(t!=="and"&&t!=="or"&&t!=="exact")throw new p("Search --match-mode must be one of and|or|exact",m.USAGE);return t}function Cr(e){if(e==null||e==="")return;let t=typeof e=="number"?e:Number(String(e).trim());if(!Number.isFinite(t)||t<0)throw new p("Search --min-score must be a finite number >= 0",m.USAGE);return t}function $(e,t){if(e==null)return;let n=String(e).trim();if(n.length!==0)return Fe(n,new Date,t)}function L(e){return e.toLowerCase().replace(/\s+/g," ").trim()}function Je(e,t){if(e!==void 0)return Fe(e,new Date,t)}function is(e){if(e===void 0)return;let t=e.split(",").map(n=>n.trim()).filter(n=>n.length>0);if(t.length===0)throw new p("Search --fields requires a comma-separated list of field names",m.USAGE);return[...new Set(t)]}function Ze(e){let t=e.compact===!0,n=e.full===!0,r=is(e.fields);if(Number(t)+Number(n)+ +(r!==void 0)>1)throw new p("Search projection options are mutually exclusive. Use one of --compact, --full, or --fields.",m.USAGE);return t?{mode:"compact",fields:[...ts]}:n?{mode:"full",fields:[]}:r?{mode:"fields",fields:r}:{mode:"full",fields:[]}}function et(e,t){if(e.mode!=="fields")return;let n=new Set(t.definitions.flatMap(i=>[i.key,i.metadata_key])),r=e.fields.filter(i=>{let o=i.trim(),s=o.startsWith("item.")?o.slice(5):o;return!ns.has(o)&&!rs.has(s)&&!n.has(s)});if(r.length>0)throw new p(`Unknown search --fields value(s): ${r.join(", ")}`,m.USAGE,{examples:["pm search <query> --fields id,title,status,score","pm search <query> --fields id,title,item.description,matched_fields"],nextSteps:["Use item.<field> for explicit item metadata fields, or run pm search --help for projection examples."]})}function tt(e){let t=L(e);if(!t)throw new p("Search query must not be empty",m.USAGE);return t.split(/\s+/u).filter(Boolean)}function nt(e){let t=e.search?.max_results;return typeof t=="number"&&Number.isFinite(t)&&t>0?Math.floor(t):50}function rt(e){let t=e.search?.score_threshold;return typeof t=="number"&&Number.isFinite(t)?t:0}function it(e){let t=e.search?.hybrid_semantic_weight;return typeof t=="number"&&Number.isFinite(t)&&t>=0&&t<=1?t:.7}function ot(e){let t={title_exact_bonus:10,title_weight:48,description_weight:5,tags_weight:6,status_weight:2,body_weight:1,comments_weight:1,notes_weight:1,learnings_weight:1,reminders_weight:2,events_weight:2,dependencies_weight:3,linked_content_weight:1},n=e.search?.tuning;if(!n)return t;let r=(i,o)=>typeof i=="number"&&Number.isFinite(i)&&i>=0?i:o;return{title_exact_bonus:r(n.title_exact_bonus,t.title_exact_bonus),title_weight:r(n.title_weight,t.title_weight),description_weight:r(n.description_weight,t.description_weight),tags_weight:r(n.tags_weight,t.tags_weight),status_weight:r(n.status_weight,t.status_weight),body_weight:r(n.body_weight,t.body_weight),comments_weight:r(n.comments_weight,t.comments_weight),notes_weight:r(n.notes_weight,t.notes_weight),learnings_weight:r(n.learnings_weight,t.learnings_weight),reminders_weight:r(n.reminders_weight,t.reminders_weight),events_weight:r(n.events_weight,t.events_weight),dependencies_weight:r(n.dependencies_weight,t.dependencies_weight),linked_content_weight:r(n.linked_content_weight,t.linked_content_weight)}}import Ie from"node:fs/promises";import ut from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="7288620a-5aa7-50f9-a271-45b2722a4887")}catch{}})();function os(e){return e.trim().toLowerCase().replace(/\s+/g," ")}function W(e){return os(e).split(/[^a-z0-9]+/).filter(t=>t.length>0)}(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]="42fde1a1-ee4b-5564-93b2-78d5a0fc7555")}catch{}})();var st=4,ss=20,as=200,cs=new Set(["a","an","and","for","from","in","into","of","on","or","the","to","with"]);function at(e,t){let n=[],r=new Set;for(let i of e){let o=i.trim().replaceAll(/\s+/g," ");if(o.length===0)continue;let s=o.toLowerCase();if(!r.has(s)&&(r.add(s),n.push(o),n.length>=t))break}return n}function ds(e){let t=e.toLowerCase();return t.length>4&&t.endsWith("ies")?`${t.slice(0,-3)}y`:t.length>4&&(t.endsWith("ches")||t.endsWith("shes")||t.endsWith("xes")||t.endsWith("zes")||t.endsWith("sses"))?t.slice(0,-2):t.length>3&&t.endsWith("s")&&!t.endsWith("ss")&&!t.endsWith("us")&&!t.endsWith("is")&&!t.endsWith("as")?t.slice(0,-1):t}function ls(e){let t=e.toLowerCase();return t.length>2&&(!t.endsWith("s")||t.endsWith("ss"))?t.endsWith("y")&&!/[aeiou]y$/u.test(t)?`${t.slice(0,-1)}ies`:t.endsWith("ch")||t.endsWith("sh")||t.endsWith("x")||t.endsWith("z")||t.endsWith("ss")?`${t}es`:`${t}s`:t}function Rr(e,t=st){let n=e.trim().replaceAll(/\s+/g," ");if(n.length===0)return[];let r=W(n);if(r.length===0)return[n];let i=r.filter(a=>!cs.has(a.toLowerCase())),o=r.map(a=>ds(a)),s=i.map(a=>ls(a));return at([n,r.join(" "),i.join(" "),o.join(" "),s.join(" ")],Math.max(1,t))}function Mr(e){let t=Array.isArray(e)?e:e?.queries;return Array.isArray(t)?at(t.filter(n=>typeof n=="string"),st):[]}function Tr(e,t,n){return at([...e,...t],Math.max(1,n))}function Fr(e,t){let r=e.search?.query_expansion,i=K(r?.provider);return{enabled:r?.enabled===!0,provider:i??t,max_queries:st}}function Dr(e,t){let r=e.search?.rerank,i=K(r?.model),s=te(r?.top_k)??ss;return{enabled:r?.enabled===!0,model:i??t,top_k:Math.min(as,s)}}function Lr(e){let t=Array.isArray(e)?e:e?.hits;if(!Array.isArray(t))return[];let n=new Map;for(let i of t){if(typeof i!="object"||i===null)continue;let o=K(i.id),s=i.score;if(!o||typeof s!="number"||!Number.isFinite(s))continue;let a=n.get(o);(a===void 0||s>a)&&n.set(o,s)}let r=[...n.entries()].map(([i,o])=>({id:i,score:o}));return r.sort((i,o)=>i.score!==o.score?o.score-i.score:i.id.localeCompare(o.id)),r}function us(e,t){let n=e.length,r=0;for(let i=0;i<n;i+=1)r+=e[i]*t[i];return r}function Pr(e){let t=0;for(let n=0;n<e.length;n+=1)t+=e[n]*e[n];return Math.sqrt(t)}function fs(e,t,n){if(!e||!t||e.length===0||t.length===0||e.length!==t.length)return 0;let r=us(e,t),i=Pr(t),o=n*i;return!Number.isFinite(r)||!Number.isFinite(n)||!Number.isFinite(i)||!Number.isFinite(o)||o===0?0:Math.max(-1,Math.min(1,r/o))}async function Or(e,t,n,r,i){if(r.length===0)return new Map;let o=K(t)??e.model,s=o===e.model?e:{...e,model:o},a=[n.trim(),...r.map(f=>f.text)],c=await de(s,a,i?{timeout_ms:i}:{}),d=c[0];if(!d)return new Map;let l=Pr(d),u=new Map;for(let f=0;f<r.length;f+=1){let g=r[f],h=c[f+1];if(!h)continue;let y=fs(d,h,l);u.set(g.id,Math.max(0,Math.min(1,(y+1)/2)))}return u}(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]="3fd6ed70-6633-5886-90a6-3d4cc16b3ef0")}catch{}})();var ms=1.2,ps=.75;function ct(e){return W(e)}function hs(e){let t=new Map;for(let n of e)t.set(n,(t.get(n)??0)+1);return t}function Nr(e){let t=[],n=new Map,r=0;for(let o of e){let s=ct(o.text),a=hs(s);r+=s.length;for(let c of a.keys())n.set(c,(n.get(c)??0)+1);t.push({id:o.id,termFrequencies:a,length:s.length})}let i=t.length;return{documents:t,documentFrequency:n,documentCount:i,averageDocumentLength:i>0?r/i:0}}function gs(e,t){return Math.log(1+(e-t+.5)/(t+.5))}function jr(e,t,n){let r=new Map;if(e.documentCount===0||e.averageDocumentLength===0)return r;let i=[...new Set(t.filter(s=>s.length>0))];if(i.length===0)return r;let o=new Map;for(let s of i){let a=e.documentFrequency.get(s);a!==void 0&&o.set(s,gs(e.documentCount,a))}if(o.size===0)return r;for(let s of e.documents){let a=0;for(let[c,d]of o){let l=s.termFrequencies.get(c);if(l===void 0)continue;let u=1-n.b+n.b*s.length/e.averageDocumentLength,f=l+n.k1*u;a+=d*(l*(n.k1+1)/f)}a>0&&r.set(s.id,a)}return r}function qr(e,t,n,r){return typeof e!="number"||!Number.isFinite(e)?t:Math.min(r,Math.max(n,e))}function Gr(e){let t=n=>typeof n=="string"?[n]:typeof n=="number"?[String(n)]:Array.isArray(n)?n.flatMap(t):typeof n=="object"&&n!==null?Object.values(n).flatMap(t):[];return t(Object.values(e)).join(" ")}function Ur(e){let t=e?.search?.bm25;return{k1:qr(t?.k1,ms,0,1e3),b:qr(t?.b,ps,0,1)}}(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]="1750b332-dd40-5497-b410-26c8c7436329")}catch{}})();var ys=2,_s=120,ws=6,bs=40,Es=1e3,vs=900,Ss="\xAB",xs="\xBB",zr=60,Wr=["tag","status","type","priority"];function Br(e){let t=[],n=e;for(let r=0;r<5&&n&&typeof n=="object";r+=1){let i=n.code;typeof i=="string"&&t.push(i.toLowerCase()),n=n.cause}return t.join(" ")}function Kr(e){let t=(e instanceof Error?e.message:String(e)).toLowerCase(),n=Br(e),r=`${t} ${n}`;return r.includes("timed out")||r.includes("timeout")||r.includes("etimedout")?"timeout":r.includes("econnrefused")||r.includes("connection refused")||r.includes("connect ")||r.includes("enotfound")||r.includes("eai_again")||r.includes("econnreset")||r.includes("fetch failed")?"connection":"error"}function Vr(e,t){let n=Kr(t);return`search_${e}_fallback:${n}:using_keyword_mode`}async function Qr(e,t,n){try{let r=await un(e);r.warnings.length>0&&n.push(...r.warnings);let i=$n(t.map(o=>({id:o.metadata.id,updated_at:o.metadata.updated_at})),r.entries);if(i.length===0)return;n.push(`vector_index_stale:${i.length}`),process.stderr.write(`[pm] warning: ${i.length} item${i.length===1?" is":"s are"} new or modified since the last reindex and ${i.length===1?"is":"are"} NOT in the semantic index yet \u2014 they will be missing from semantic/hybrid results until you run 'pm reindex --mode hybrid'. (Write-time embedding is governed by search.mutation_refresh_policy; staleness means the embed was skipped, failed, or the backend was unreachable.)
|
|
1
|
+
import{C as Mn,P as Tn,T as Fn,b as le,c as yn,d as ue,f as _n,g as fe,qa as $n}from"./chunk-XPOQQJTX.js";import{a as Wn,c as Bn,i as ye,j as Kn,k as Vn,l as Qn}from"./chunk-F4NREH3G.js";import{a as pe,b as Pn,c as On,d as qn,e as Nn,f as jn,g as Be,h as Gn,i as he,j as Un,l as Ke,m as zn,n as ge,o as Hn}from"./chunk-NE5VRDAI.js";import{g as Dn,k as Ln}from"./chunk-PECV7L5T.js";import{b as wn}from"./chunk-FB7G2HY2.js";import{a as gn,e as Q,f as bn,g as En,h as kn,i as In,k as An,l as Cn,r as Rn,s as $e,t as We,u as me}from"./chunk-3KFVGGRE.js";import{a as pn,b as hn}from"./chunk-CA3BURYF.js";import{a as vn,b as Sn,c as xn}from"./chunk-QJ7C3JIW.js";import{Ea as mn}from"./chunk-RUAU5OSH.js";import{C as an,D as de,E as cn,F as Ge,G as Ue,H as ze,I as dn,M as ln,N as He,W as un,e as Ot,f as qt,r as ie,v as en,w as tn,x as nn}from"./chunk-MDTH7SAE.js";import{a as Ne,b as Qt}from"./chunk-4OVGQW22.js";import{a as oe}from"./chunk-M4VEE3FK.js";import{a as fn}from"./chunk-A6KGKEWT.js";import{A as m,Ad as V,Af as A,Bb as Lt,Bd as Ut,C as p,Cd as Oe,D as K,Da as P,E as Te,Ec as Pt,I as te,J as Rt,Kd as zt,Kf as rn,La as v,Lf as se,Md as Ht,Mf as ae,Na as Ft,Nc as O,Nf as on,Oa as I,Of as ce,Pa as Le,Pc as H,R as G,Ra as ne,Rd as $t,Rf as sn,Sd as re,T as Mt,Td as Wt,U as Tt,V as Fe,Vd as Bt,Xd as Kt,Y as De,ad as Nt,b as k,c as B,cd as U,d as Me,f as It,ff as Vt,gd as jt,jb as Dt,kf as Yt,lc as R,mf as Xt,nf as je,of as Jt,t as At,uf as Zt,v as Ct,wc as Pe,ye as qe,zd as Gt}from"./chunk-HS7OVAUN.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="3a33af50-3d2c-57bb-884a-4d5394599ba2")}catch{}})();function oo(e,t,n,r,i,o){if(e.seen.has(t))return"skip";if(e.cursorFound&&e.affected.length>=o)return"truncate";e.seen.add(t),e.parents.set(t,n.id);let s=n.depth+1;return e.queue.push({id:t,depth:s}),e.cursorFound?(e.affected.push({id:t,distance:s,path:po(r,t,e.parents)}),"continue"):(e.cursorFound=t===i,"skip")}function so(e,t,n,r){let i=re("graph impact",{root:e,direction:n,kinds:[...t.kinds??[]].sort(),max_depth:Number.isFinite(r)?r:"unbounded"});return{fingerprint:i,after:t.after===void 0?void 0:Bt(t.after,i)}}function Y(e,t,n){e.get(t).add(n)}function we(e){return new Map(e.map(t=>[t,new Set]))}function Xn(e){for(let t of e)t.sort();return e.sort((t,n)=>n.length-t.length||t[0].localeCompare(n[0]))}function _e(e){if(Array.isArray(e))return e.map(n=>_e(n));if(e===null||typeof e!="object")return e;let t=e.toJSON;return typeof t=="function"?_e(t.call(e)):Object.fromEntries(Object.entries(e).sort(([n],[r])=>n.localeCompare(r)).map(([n,r])=>[n,_e(r)]))}function Yn(e){return JSON.stringify(_e(e))}function ao(e,t,n,r){let i=[{id:e,expanded:!1}];for(;i.length>0;){let o=i.pop();if(o.expanded){r.push(o.id);continue}if(n.has(o.id))continue;n.add(o.id),i.push({id:o.id,expanded:!0});let s=[...t.get(o.id)].sort().reverse();for(let a of s)n.has(a)||i.push({id:a,expanded:!1})}}function co(e,t){let n=new Set,r=[];for(let i of e)n.has(i)||ao(i,t,n,r);return r}function lo(e,t){let n=new Set,r=[];for(let i of[...e].reverse()){if(n.has(i))continue;let o=[],s=[i];for(n.add(i);s.length>0;){let a=s.pop();o.push(a);for(let c of t.get(a))n.has(c)||(n.add(c),s.push(c))}r.push(o)}return Xn(r)}function Jn(e,t){let n=we(e);for(let[r,i]of t)for(let o of i)Y(n,o,r);return lo(co(e,t),n)}function uo(e,t){let n=we(e.nodes());for(let r of e.edges()){let i=t.require(r.kind);if(!i.ordering)continue;let o=(i.precedence??"source_before_target")==="source_before_target";Y(n,o?r.source:r.target,o?r.target:r.source)}return n}function fo(e,t){let n=new Map(e.map(o=>[o,0]));for(let o of t.values())for(let s of o)n.set(s,n.get(s)+1);let r=e.filter(o=>n.get(o)===0).sort(),i=[];for(;r.length>0;){i.push(r);let o=[];for(let s of r)for(let a of t.get(s)){let c=n.get(a)-1;n.set(a,c),c===0&&o.push(a)}r=o.sort()}return i}function mo(e,t){let n=new Map(e.map(s=>[s,0])),r=new Map;for(let s of e)for(let a of t.get(s)){if(!n.has(a))continue;let c=n.get(s)+1,d=r.get(a);(c>n.get(a)||c===n.get(a)&&(d===void 0||s.localeCompare(d)<0))&&(n.set(a,c),r.set(a,s))}let i=[...e].sort((s,a)=>n.get(a)-n.get(s)||s.localeCompare(a))[0],o=i===void 0?[]:[i];for(;o[0]!==void 0&&r.has(o[0]);)o.unshift(r.get(o[0]));return{depth:Object.fromEntries(n),path:o}}function po(e,t,n){let r=[t],i=t;for(;i!==e;)i=n.get(i),r.push(i);return r.reverse()}function be(e,t={}){let n=t.registry??Dt(),r=[...e.nodes()],i=uo(e,n),o=fo(r,i),s=o.flat(),a=s.length===r.length,c=a?[]:Jn(r,i).filter(l=>l.length>1||i.get(l[0]).has(l[0])),d=mo(s,i);return{exact:!0,acyclic:a,order:s,layers:o,frontier:o[0]??[],depth:d.depth,criticalPath:d.path,criticalPathLength:Math.max(0,d.path.length-1),cycles:c,provenance:{algorithm:"kahn-longest-path",edgeFamily:"ordering"}}}function Zn(e,t,n={}){let r=n.direction??"outgoing",i=n.maxDepth??Number.POSITIVE_INFINITY,o=n.limit??Number.POSITIVE_INFINITY,{fingerprint:s,after:a}=so(t,n,r,i),c={queue:[{id:t,depth:0}],seen:new Set([t]),parents:new Map,affected:[],cursorFound:a===void 0||a===t},d=0,l=0,u=!1,f=!1;e:for(let g=0;g<c.queue.length;g+=1){n.signal?.throwIfAborted();let h=c.queue[g];d+=1;let y=e.adjacency(h.id,{direction:r,kinds:n.kinds,signal:n.signal});if(l+=y.meta.inspectedEdges,h.depth>=i){y.value.some(w=>!c.seen.has(w))&&(u=!0);continue}for(let w of y.value)if(oo(c,w,h,t,a,o)==="truncate"){u=!0,f=!0;break e}}if(!c.cursorFound)throw new TypeError(`Unknown impact cursor item: ${a}`);return{root:t,affected:c.affected,exact:!0,truncated:u,...f?{nextCursor:Wt(s,c.affected.at(-1)?.id??t)}:{},cost:{visitedNodes:d,inspectedEdges:l}}}function er(e){let t=[...e.nodes()],n=we(t),r=we(t);for(let c of e.edges())Y(n,c.source,c.target),Y(n,c.target,c.source),Y(r,c.source,c.target);let i=[],o=new Set;for(let c of t){if(o.has(c))continue;let d=[],l=[c];for(o.add(c);l.length>0;){let u=l.pop();d.push(u);for(let f of n.get(u))o.has(f)||(o.add(f),l.push(f))}i.push(d)}let s=t.map(c=>({id:c,degree:n.get(c).size})),a=Math.max(0,...s.map(({degree:c})=>c));return{components:Xn(i),stronglyConnected:Jn(t,r),orphans:s.filter(({degree:c})=>c===0).map(({id:c})=>c),hubs:s.filter(({degree:c})=>c>0&&c===a),exact:!0,provenance:{algorithm:"component-degree",edgeFamily:"all"}}}function fc(e,t){let n=new Map(e.edges.map(i=>[Yn(i),i])),r=new Map(t.edges.map(i=>[Yn(i),i]));return{fromVersion:e.version,toVersion:t.version,added:[...r].filter(([i])=>!n.has(i)).map(([,i])=>i),removed:[...n].filter(([i])=>!r.has(i)).map(([,i])=>i),unchangedCount:[...n.keys()].filter(i=>r.has(i)).length,exact:!0}}(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]="56486369-9164-58d3-ac34-46d57859f96d")}catch{}})();var tr=["parent","type","priority","status","assignee","tags","sprint","release"];function rr(e,t){let n=ie(e,t,{strict:!0,flagLabel:"--status"});if(!(!n||n.length===0))return n}function ir(e,t=["estimate","estimated_minutes","priority"]){let n=e.sum?.trim(),r=e.avg?.trim(),i=n&&n.length>0?n:void 0,o=r&&r.length>0?r:void 0;if(!i&&!o)return null;if(i&&o&&i!==o)throw new p("Aggregate --sum and --avg must target the same numeric field",m.USAGE);let s=i??o;if(!t.includes(s))throw new p(`Aggregate numeric field "${s}" is not registered. Allowed: ${t.join(", ")}`,m.USAGE);return{field:s,sum:i!==void 0,avg:o!==void 0}}function or(e){let t=e?.trim()??"status";if(t.length===0)throw new p("--group-by requires at least one field name",m.USAGE);let n=fn(t);if(n.length===0)throw new p("--group-by requires a comma-separated list of fields",m.USAGE);for(let r of n)if(!tr.includes(r))throw new p(`Aggregate group fields must be one of ${tr.join("|")}; received "${r}"`,m.USAGE);return n}function sr(e){let t=[...new Set(e.map(n=>n.trim().toLowerCase()).filter(n=>n.length>0))].sort((n,r)=>n.localeCompare(r));return t.length===0?null:t.join(",")}function ar(e,t){switch(e){case"parent":return t.parent??null;case"type":return t.type;case"priority":return t.priority;case"status":return t.status;case"assignee":return t.assignee??null;case"tags":return sr(t.tags);case"sprint":return t.sprint??null;case"release":return t.release??null;default:return null}}function cr(e,t){let n=e??null,r=t??null;return n===r?0:n===null?1:r===null?-1:typeof n=="number"&&typeof r=="number"?n-r:String(n).localeCompare(String(r))}function dr(e,t){return e.map(n=>`${n}:${JSON.stringify(t[n]??null)}`).join("|")}var ho={parent:"(unparented)",type:"(untyped)",priority:"(no priority)",status:"(no status)",assignee:"(unassigned)",tags:"(untagged)",sprint:"(no sprint)",release:"(no release)"};function nr(e,t){return t==null||t===""?ho[e]:String(t)}function go(e,t){return e.length===1?nr(e[0],t[e[0]]):e.map(n=>`${n}=${nr(n,t[n])}`).join(" | ")}function lr(e,t,n){for(let r of n){let i=cr(e.group[r],t.group[r]);if(i!==0)return i}return 0}function ur(e,t){let r=e[t];if(typeof r=="number"&&Number.isFinite(r))return r;if(typeof r=="string"){let i=r.trim();if(i.length===0)return null;let o=Number(i);if(Number.isFinite(o))return o}return null}function fr(e,t){return t<=0?0:Math.round(e/t*1e4)/100}function Ve(e,t,n){let r=Nt(String(t),n)??t;if(r===n.open_status){e.open_count+=1;return}if(r==="in_progress"||n.active_statuses.has(r)&&r!==n.open_status){e.in_progress_count+=1;return}if(n.terminal_done_statuses.has(r)||r===n.close_status){e.closed_count+=1;return}e.other_count+=1}function yo(e,t){return{row:{group:e,count:1},numeric_count:t===null?0:1,numeric_sum:t??0,null_count:t===null?1:0,open_count:0,in_progress_count:0,closed_count:0,other_count:0}}function _o(e,t){if(t===null){e.null_count+=1;return}e.numeric_count+=1,e.numeric_sum+=t}function wo(e){e.accumulator.row.count+=1,e.includeCompletion&&Ve(e.accumulator,e.item.status,e.statusRegistry),e.numericAggregation!==null&&_o(e.accumulator,e.numericValue)}function bo(e,t){let n={};for(let r of e)n[r]=ar(r,t);return n}function Eo(e,t,n,r){let i={...e.row,group_label:go(t,e.row.group)};return n&&(i.open=e.open_count,i.in_progress=e.in_progress_count,i.closed=e.closed_count,i.other=e.other_count,i.completion_pct=fr(e.closed_count,e.row.count)),r!==null&&(i.null_count=e.null_count,r.sum&&(i.sum=e.numeric_sum),r.avg&&(i.avg=e.numeric_count===0?null:e.numeric_sum/e.numeric_count)),i}function vo(e){return{group_by:e.groupBy,count:!0,completion:e.includeCompletion,include_unparented:e.includeUnparented,status:e.status?.[0]??null,status_values:e.status,type:e.options.type??null,tag:e.options.tag??null,priority:e.options.priority??null,deadline_before:e.options.deadlineBefore??null,deadline_after:e.options.deadlineAfter??null,assignee:e.options.assignee??null,assignee_filter:e.options.assigneeFilter??null,parent:e.options.parent??null,sprint:e.options.sprint??null,release:e.options.release??null,...e.numericAggregation!==null?{sum:e.options.sum??null,avg:e.options.avg??null,numeric_field:e.numericAggregation.field}:{}}}async function yc(e,t){if(e.count===!1)throw new p("Aggregate grouped counts are always enabled; omit count=false.",m.USAGE);let n=v(process.cwd(),t.path),r=await A(n),i=O(r.schema),o=["estimate","estimated_minutes","priority",...H(r.schema).definitions.filter(_=>_.type==="number").map(_=>_.metadata_key)],s=or(e.groupBy),a=rr(e.status,i),c=ir(e,[...new Set(o)].sort((_,b)=>_.localeCompare(b))),d=e.completion===!0,l=e.includeUnparented===!0,u=await me(void 0,{...wn(e),status:e.status},t),f=new Map,g=0,h=0;for(let _ of u.items){let b=_,C=bo(s,b);if(s.includes("parent")&&C.parent===null&&!l){g+=1;continue}let S=dr(s,C),x=f.get(S),E=c===null?null:ur(b,c.field);if(x)wo({accumulator:x,item:b,statusRegistry:i,includeCompletion:d,numericAggregation:c,numericValue:E});else{let D=yo(C,E);d&&Ve(D,b.status,i),f.set(S,D)}h+=1}let y=[...f.values()].map(_=>Eo(_,s,d,c)).sort((_,b)=>lr(_,b,s)),w=u.warnings&&u.warnings.length>0?u.warnings:void 0;return{groups:y,count:y.length,totals:{items_considered:u.items.length,items_grouped:h,items_skipped_unparented:g},filters:vo({groupBy:s,includeCompletion:d,includeUnparented:l,status:a,options:e,numericAggregation:c}),now:G(),...w?{warnings:w}:{}}}var _c={buildGroupKey:dr,compareAggregateRows:lr,compareNullableGroupValue:cr,completionPct:fr,normalizeTagGroupValue:sr,parseGroupBy:or,parseNumericAggregation:ir,parseStatus:rr,readNumericAggregateValue:ur,resolveGroupValue:ar,updateCompletionCounts:Ve};(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]="1638ef81-7558-5d51-8561-99c958de2d03")}catch{}})();function So(e,t){return t===void 0?e:e.slice(Math.max(0,e.length-t))}function xo(e,t){return e.map((n,r)=>{let i=new Set,o=Vt(n.patch);for(let s of o)i.add(Ne(s.path)),s.from&&i.add(Ne(s.from));return{index:t+r+1,ts:n.ts,op:n.op,author:n.author,patch_ops:o.length,changed_fields:[...i].sort((s,a)=>s.localeCompare(a))}})}async function ko(e,t){let n=v(process.cwd(),t.path);if(!await k(I(n)))throw new p(`Tracker is not initialized at ${n}. Run pm init first.`,m.NOT_FOUND);let r=await A(n),i=P(r,R()),o=e.trim()===je,s=o?je:Zt(e,r.id_prefix),a=await se(n,s,r.id_prefix,r.item_format,i.type_to_folder),c=a?.id??s,d=o?Jt(n):ne(n,c);if(!a&&!await k(d))throw new p(`Item ${e} not found`,m.NOT_FOUND);return a&&await Yt({pmRoot:n,settings:r,itemId:a.id,commandLabel:"history"}),{historyPath:d,located:a,resolvedId:c,settings:r}}async function Ic(e,t,n){let r=oe(t.limit),{historyPath:i,located:o,resolvedId:s,settings:a}=await ko(e,n),c=await V(i,s),d=a.agent_identity.identity_vocabulary,l=le(a.agent_identity.harness_signals),u=_n({harness:t.harness,agentInstance:t.agentInstance,provenance:t.provenanceFilter},d,l),f=c.map((E,D)=>({entry:E,version:D+1})).filter(({entry:E})=>u(E)),g=So(f,r),h=g.map(({entry:E})=>E),y=t.compact===!0,w=y?xo(h,Math.max(0,c.length-h.length)):void 0,_=t.provenance===!0?g.map(({entry:E,version:D})=>ue(E,d,{itemId:s,version:D})):void 0,b=t.provenance===!0?"provenance":y?"compact":"full",C={compact:{compact_history:w},provenance:{provenance_history:_},full:{history:h}}[b],x={id:s,...C,compact:y,projection:{mode:b,row_key:{compact:"compact_history",provenance:"provenance_history",full:"history"}[b]},omission_receipt:Ht("history",b),count:h.length,limit:r??null,...t.provenanceSummary===!0?{provenance_summary:fe(f.map(({entry:E})=>E),d,l)}:{}};if((t.diff||t.field!==void 0)&&(x.diff=Qt(c,{windowStartIndex:Math.max(0,c.length-h.length),field:t.field})),t.verify){let E=o?(await ae(o,{schema:a.schema})).document:void 0;x.verification=pn(c,E)}return x}(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]="2e14b978-95c9-5922-b8cb-c49d24e6f8c4")}catch{}})();var mr=1e6,pr=20;function hr(e,t,n,r=pr){if(!Number.isSafeInteger(r)||r<0)throw new p("Child projection sample limit must be a non-negative integer.",m.USAGE);let i=e.trim().toLowerCase(),o={},s=[],a=0,c=0;for(let f of t){if(c+=1,c>mr)throw new p(`Child projection exceeded the ${mr.toLocaleString("en-US")} item safety bound.`,m.GENERIC_FAILURE,{code:"child_projection_item_bound_exceeded",required:"Use an indexed or parent-filtered metadata source.",why:"Unbounded graph scans can exhaust memory in universal project stores.",nextSteps:["Build the derived item index, then retry the parent read."]});if(f.parent?.trim().toLowerCase()!==i)continue;s.push(f);let g=f.status.trim().toLowerCase();o[g]=(o[g]??0)+1,U(g,n)||(a+=1)}s.sort((f,g)=>f.id.localeCompare(g.id));let d=s.slice(0,r).map(f=>({id:f.id,title:f.title,type:f.type,status:f.status,priority:f.priority})),l=s.length>d.length,u=r===0?pr:r;return{count:s.length,active:a,by_status:Object.fromEntries(Object.entries(o).sort(([f],[g])=>f.localeCompare(g))),sample:d,sample_limit:r,truncated:l,next_offset:l?d.length:null,continuation:l?`pm list --status all --parent ${e} --offset ${d.length} --limit ${u}`:null,scanned:c}}(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]="80981c24-3442-57a2-8c35-e0e00d5425d6")}catch{}})();var Io=new Set(["event","meeting","reminder"]);function Ao(e){return Io.has(e.type.trim().toLowerCase())||e.deadline!==void 0||(e.reminders?.length??0)>0||(e.events?.length??0)>0}function gr(e){if(!Ao(e))return;let t=[...e.events??[]].sort((r,i)=>r.start_at.localeCompare(i.start_at)),n=t[0];return{deadline:e.deadline??null,start_at:n?.start_at??null,end_at:n?.end_at??null,location:n?.location??null,reminders:[...e.reminders??[]],events: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]="5536c6eb-5d51-5b67-879d-c1d0bfa5b692")}catch{}})();var Ro=["brief","standard","deep"],Mo=new Set(["epic","feature","milestone","plan"]),To=new Set(Object.keys(At).map(e=>e.toLowerCase()));function _r(e){let t=e.trim().toLowerCase();return t.length>0&&(Mo.has(t)||!To.has(t))}function yr(e){return{ts:e.ts,author:e.author,message:e.message??null}}function Fo(e,t){let n=e?.trim(),r=n&&n.length>0?n:null,i=[...t].reverse().find(s=>s.op==="claim"),o=[...t].reverse().find(s=>s.op==="release");return{claimed:r!==null,assignee:r,last_claim:i?yr(i):null,last_release:o?yr(o):null}}function Do(e){if(e===void 0||e.trim().length===0)return"standard";let t=e.trim().toLowerCase();if(t==="full")return"deep";if(Ro.includes(t))return t;throw new p("Get --depth must be one of brief|standard|deep|full",m.USAGE)}function Lo(e,t){if(t==="deep")return e;let{comments:n,notes:r,learnings:i,files:o,tests:s,docs:a,reminders:c,events:d,...l}=e;return{...l,notes_count:e.notes?.length??0,tests_count:e.tests?.length??0}}function Po(e){if(e===void 0)return null;let t=e.split(",").map(n=>n.trim()).filter(n=>n.length>0);if(t.length===0)throw new p("Get --fields requires a comma-separated list of field names",m.USAGE);return t}function ve(e){return e.startsWith("item.")?e.slice(5):e}function Oo(e,t){if(e===null)return;let n=new Set([...Ct,...t,"notes_count","tests_count"]),r=new Set(["body","linked","claim_state","children","schedule"]),i=new Set(["linked.files","linked.tests","linked.docs"]),o=new Set(["claim_state.claimed","claim_state.assignee","claim_state.last_claim","claim_state.last_release"]),s=new Set(["schedule.deadline","schedule.start_at","schedule.end_at","schedule.location","schedule.reminders","schedule.events"]),a=e.filter(c=>{let d=ve(c);return!n.has(d)&&!r.has(d)&&!i.has(d)&&!o.has(d)&&!s.has(d)});if(a.length>0)throw new p(`Unknown get --fields value(s): ${a.join(", ")}`,m.USAGE,{code:"unknown_field_projection",examples:["pm get <id> --fields id,title,status,type,updated_at","pm get <id> --fields id,title,claim_state","pm get <id> --fields id,title,body,linked.files"]})}function qo(e,t){let n=e,r={notes_count:e.notes?.length??0,tests_count:e.tests?.length??0},i={};for(let o of t){let s=ve(o);s==="body"||s==="linked"||s.startsWith("linked.")||s==="claim_state"||s.startsWith("claim_state.")||s==="children"||s.startsWith("children.")||s==="schedule"||s.startsWith("schedule.")||(i[s]=Object.hasOwn(r,s)?r[s]:n[s])}return i}function X(e,t){return e?.some(n=>n===t||n===`item.${t}`)??!1}function Ee(e,t){return e.some(n=>{let r=ve(n);return r===t||r.startsWith(`${t}.`)})}function No(e){if(e.full&&(e.fields!==void 0||e.depth!==void 0))throw new p("Get projection options are mutually exclusive; remove the extra projection flag and retry.",m.USAGE);if(e.tree!==!0&&e.treeDepth!==void 0)throw new p("Get --tree-depth requires --tree",m.USAGE);if(e.at!==void 0&&e.tree===!0)throw new p("Get --at cannot be combined with --tree because workspace-level historical projections are not yet indexed.",m.USAGE);return{depth:e.full?"deep":Do(e.depth),treeDepth:e.tree===!0?gn(e.treeDepth,"--tree-depth"):void 0,fields:Po(e.fields),fieldProjection:e.fields!==void 0}}async function jo(e,t,n){let r=v(process.cwd(),t.path);if(!await k(I(r)))throw new p(`Tracker is not initialized at ${r}. Run pm init first.`,m.NOT_FOUND);let i=await A(r),o=P(i,R());if(n!==void 0){let c=await hn(e,n,{pmRoot:t.path});return{pmRoot:r,settings:i,typeToFolder:o.type_to_folder,locatedId:c.document.metadata.id,metadata:c.document.metadata,body:c.document.body,historical:c}}let s=await se(r,e,i.id_prefix,i.item_format,o.type_to_folder);if(!s)throw await sn(r,e,i.id_prefix,o.type_to_folder);let a=await ae(s,{schema:i.schema});return{pmRoot:r,settings:i,typeToFolder:o.type_to_folder,locatedId:s.id,metadata:a.document.metadata,body:a.document.body}}function Go(e,t,n){let r=H(t.schema).definitions.map(i=>i.metadata_key);if(Oo(e,r),n&&Ee(e??[],"children"))throw new p("Get --at cannot project children because workspace-level historical relationships are not yet indexed.",m.USAGE)}function Qe(e){let{fieldProjection:t,depth:n,fields:r,field:i}=e;return t?i==="body"||i==="linked"?X(r,i):Ee(r,i):n!=="brief"}async function Uo(e,t){if(!t)return;let n=ne(e.pmRoot,e.locatedId),r=await V(n,e.locatedId);return Fo(e.metadata.assignee,e.historical?r.slice(0,e.historical.as_of_version):r)}function zo(e,t,n,r){let i=r||X(n,"linked.files"),o=r||X(n,"linked.tests"),s=r||X(n,"linked.docs");!r&&!i&&!o&&!s||(e.linked={files:i?t.metadata.files??[]:[],tests:o?t.metadata.tests??[]:[],docs:s?t.metadata.docs??[]:[]})}async function Ho(e,t,n,r){if(!t)return;let i=O(e.settings.schema),o=await ce(e.pmRoot,e.settings.item_format,e.typeToFolder,void 0,e.settings.schema),s=hr(e.locatedId,o,i,r?void 0:0);return s.count>0||n?s:void 0}function $o(e,t,n,r){if(!r)return;let i=gr(t.metadata);if(i){if(n===null||X(n,"schedule")){e.schedule=i;return}e.schedule=Object.fromEntries(Object.entries(i).filter(([o])=>n.some(s=>ve(s)===`schedule.${o}`)))}}async function Wo(e,t,n,r){if(t.tree!==!0)return;let i=await me(void 0,{parent:e.locatedId,tree:!0,treeDepth:n===void 0?void 0:String(n),full:!0},r);return{root_id:e.locatedId,root_title:e.metadata.title,depth_limit:n??null,count:i.count,items:i.items.map(o=>o)}}async function zc(e,t,n={}){let r=No(n),i=await jo(e,t,n.at);Go(r.fields,i.settings,i.historical!==void 0);let o=Qe({...r,field:"body"}),s=Qe({...r,field:"linked"}),a=Qe({...r,field:"claim_state"}),c=i.historical===void 0&&(r.fieldProjection?Ee(r.fields,"children"):r.depth!=="brief"&&_r(i.metadata.type)),d=r.fieldProjection?Ee(r.fields,"schedule"):r.depth!=="brief",l=await Uo(i,a),u={item:r.fieldProjection?qo(i.metadata,r.fields):Lo(i.metadata,r.depth)};o&&(u.item.body=i.body),zo(u,i,r.fields,s),l&&(u.claim_state=l),$o(u,i,r.fields,d);let f=await Ho(i,c,r.fieldProjection,r.fieldProjection||r.depth==="deep");f!==void 0&&(u.children=f);let g=await Wo(i,n,r.treeDepth,t);if(g!==void 0&&(u.tree=g),i.historical&&(u.reconstructed=!0,u.as_of_version=i.historical.as_of_version,u.as_of_timestamp=i.historical.as_of_timestamp),i.historical===void 0)try{await Mn({pmRoot:i.pmRoot,author:Gt(void 0,i.settings.author_default),itemIds:[i.locatedId],intent:"get"})}catch{}return u}var Hc={shouldAutoIncludeGetChildren:_r};(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]="70e06a73-6602-5384-a25b-fd3df5f6438e")}catch{}})();var br=10,q="https://schema.unbrained.dev/pm/eval-query-set/v1",Bo={schema:q,accepted_top_level:["array","object"],required_query_fields:["query","relevant_ids"],optional_fields:["mode","description"],modes:["keyword","semantic","hybrid"]},Se={schema:q,queries:[{query:"offline search",relevant_ids:["pm-75k9"],mode:"keyword"}]},M=class extends Error{constructor(t){super(t),this.name="EvalQuerySetError"}},Ko=new Set(["keyword","semantic","hybrid"]);function wr(e,t){let n=0,r=Math.min(t,e.length);for(let i=0;i<r;i+=1)n+=e[i]/Math.log2(i+2);return n}function Vo(e,t,n){if(t.size===0)return 0;let r=e.map(a=>t.has(a)?1:0),i=wr(r,n),o=Array.from({length:t.size},()=>1),s=wr(o,n);return s===0?0:i/s}function Qo(e,t,n){let r=Math.min(n,e.length);for(let i=0;i<r;i+=1)if(t.has(e[i]))return 1/(i+1);return 0}function Ye(e,t,n){let r=Math.min(n,e.length),i=0;for(let o=0;o<r;o+=1)t.has(e[o])&&(i+=1);return i}function Yo(e,t,n){return n<=0?0:Ye(e,t,n)/n}function Xo(e,t,n){return t.size===0?0:Ye(e,t,n)/t.size}function Er(e,t,n){return{ndcg:Vo(e,t,n),mrr:Qo(e,t,n),precision:Yo(e,t,n),recall:Xo(e,t,n),relevant_total:t.size,retrieved_relevant:Ye(e,t,n)}}function vr(e){let t=e.length;if(t===0)return{ndcg:0,mrr:0,precision:0,recall:0,query_count:0};let n=e.reduce((r,i)=>({ndcg:r.ndcg+i.ndcg,mrr:r.mrr+i.mrr,precision:r.precision+i.precision,recall:r.recall+i.recall}),{ndcg:0,mrr:0,precision:0,recall:0});return{ndcg:n.ndcg/t,mrr:n.mrr/t,precision:n.precision/t,recall:n.recall/t,query_count:t}}function Jo(e,t){if(typeof e!="object"||e===null)throw new M(`Eval query at index ${t} must be an object`);let n=e,r=typeof n.query=="string"?n.query.trim():"";if(r.length===0)throw new M(`Eval query at index ${t} must have a non-empty "query" string`);if(!Array.isArray(n.relevant_ids))throw new M(`Eval query at index ${t} must have a "relevant_ids" array`);if(n.relevant_ids.some(o=>typeof o!="string"))throw new M(`Eval query at index ${t} must have a "relevant_ids" array of strings`);let i=[...new Set(n.relevant_ids.map(o=>o.trim()).filter(o=>o.length>0))];if(i.length===0)throw new M(`Eval query at index ${t} must list at least one relevant id`);if(n.mode!==void 0&&(typeof n.mode!="string"||!Ko.has(n.mode)))throw new M(`Eval query at index ${t} has an invalid mode (expected keyword|semantic|hybrid)`);return{query:r,relevant_ids:i,...n.mode!==void 0?{mode:n.mode}:{},...typeof n.description=="string"&&n.description.trim().length>0?{description:n.description.trim()}:{}}}function Xe(e){let t=typeof e=="object"&&e!==null&&!Array.isArray(e)?e.schema:void 0;if(t!==void 0&&t!==q)throw new M(`Unsupported eval query set schema; expected "${q}"`);let n=Array.isArray(e)?e:typeof e=="object"&&e!==null?e.queries:void 0;if(!Array.isArray(n))throw new M('Eval query set must be an array of queries or an object with a "queries" array');if(n.length===0)throw new M("Eval query set must contain at least one query");return{schema:q,queries:n.map((r,i)=>Jo(r,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]="b0abcc02-bd6e-536a-b876-e13cfc8ea741")}catch{}})();function Sr(e){if(typeof e!="string")return!1;let t=e.split(",").map(n=>n.trim().toLowerCase()).filter(Boolean);return t.length===1&&t[0]==="all"}var Zo=[{optionKey:"status",summaryKey:"status",normalize:e=>Sr(e)?"all":e},{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:"assignee",summaryKey:"assignee"},{optionKey:"sprint",summaryKey:"sprint"},{optionKey:"release",summaryKey:"release"},{optionKey:"parent",summaryKey:"parent"}];function J(e){let{mode:t,matchMode:n,options:r,includeLinked:i,titleExact:o,phraseExact:s,scoreThreshold:a,hybridSemanticWeight:c,runtimeFieldFilters:d}=e,l={};return Rn(l,r,Zo),Object.assign(l,We(r)),Object.assign(l,$e(r)),n!==void 0&&n!=="or"&&(l.match_mode=n),i&&(l.include_linked=!0),o&&(l.title_exact=!0),s&&(l.phrase_exact=!0),a>0&&(l.score_threshold=a),t==="hybrid"&&r.semanticWeight!==void 0&&(l.hybrid_semantic_weight=c),r.limit!==void 0&&(l.limit=r.limit),d&&Object.keys(d).length>0&&(l.runtime_filters=d),l}function Z(e){let{effectiveMode:t,matchMode:n,options:r,includeLinked:i,titleExact:o,phraseExact:s,scoreThreshold:a,hybridSemanticWeight:c,queryExpansion:d,rerank:l,runtimeFieldFilters:u}=e,f=g=>g??null;return{mode:t,match_mode:n,status:r.status===void 0||Sr(r.status)?"all":r.status,type:f(r.type),tag:f(r.tag),priority:f(r.priority),deadline_before:f(r.deadlineBefore),deadline_after:f(r.deadlineAfter),updated_after:f(r.updatedAfter),updated_before:f(r.updatedBefore),created_after:f(r.createdAfter),created_before:f(r.createdBefore),assignee:f(r.assignee),sprint:f(r.sprint),release:f(r.release),parent:f(r.parent),...We(r),...$e(r),include_linked:i,title_exact:o,phrase_exact:s,score_threshold:a,hybrid_semantic_weight:t==="hybrid"?c:null,query_expansion_enabled:d.enabled,query_expansion_provider:d.provider,rerank_enabled:l.enabled,rerank_model:l.model,rerank_top_k:l.top_k,limit:f(r.limit),runtime_filters:u}}(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]="0fc9ed92-daf5-5fa2-b9a4-ee6c36256ed1")}catch{}})();function es(e){return re("search",{query:e.query.trim(),mode:e.mode,options:$t(e.searchOptions,mn)})}function xr(e){let t=Kt(e.sorted,{cursor:e.searchOptions.after,fingerprint:es(e),limit:e.limit,readId:n=>n.item.id});return{limited:t.rows,pageExtras:{applied_limit:e.limit,...t.has_more?{has_more:!0,truncated:!0}:{},...t.next_cursor?{next_cursor:t.next_cursor}:{}}}}(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]="47576eb5-4ddf-5e04-9e1d-c961da39b754")}catch{}})();var ts=["id","title","status","type","priority","updated_at","score","matched_fields"],ns=new Set(["score","matched_fields","highlights"]),rs=new Set(["id","title","description","type","status","priority","tags","created_at","updated_at","deadline","assignee","author","estimated_minutes","acceptance_criteria","dependencies","comments","notes","learnings","reminders","events","files","tests","docs","close_reason","parent","reviewer","risk","confidence","sprint","release","blocked_by","blocked_reason","reporter","severity","environment","repro_steps","resolution","expected_result","actual_result","affected_version","fixed_version","component","regression","customer_impact","definition_of_ready","order","rank","goal","objective","value","impact","outcome","why_now","plan"]);function kr(e){if(e===void 0)return"keyword";let t=e.trim().toLowerCase();if(t!=="keyword"&&t!=="semantic"&&t!=="hybrid")throw new p("Search mode must be one of keyword|semantic|hybrid",m.USAGE);return t}function xe(e){return e===!0}function Ir(e){return Rt(e,0,1)??void 0}function Ar(e){if(e===void 0)return"or";let t=e.trim().toLowerCase();if(t!=="and"&&t!=="or"&&t!=="exact")throw new p("Search --match-mode must be one of and|or|exact",m.USAGE);return t}function Cr(e){if(e==null||e==="")return;let t=typeof e=="number"?e:Number(String(e).trim());if(!Number.isFinite(t)||t<0)throw new p("Search --min-score must be a finite number >= 0",m.USAGE);return t}function $(e,t){if(e==null)return;let n=String(e).trim();if(n.length!==0)return Fe(n,new Date,t)}function L(e){return e.toLowerCase().replace(/\s+/g," ").trim()}function Je(e,t){if(e!==void 0)return Fe(e,new Date,t)}function is(e){if(e===void 0)return;let t=e.split(",").map(n=>n.trim()).filter(n=>n.length>0);if(t.length===0)throw new p("Search --fields requires a comma-separated list of field names",m.USAGE);return[...new Set(t)]}function Ze(e){let t=e.compact===!0,n=e.full===!0,r=is(e.fields);if(Number(t)+Number(n)+ +(r!==void 0)>1)throw new p("Search projection options are mutually exclusive. Use one of --compact, --full, or --fields.",m.USAGE);return t?{mode:"compact",fields:[...ts]}:n?{mode:"full",fields:[]}:r?{mode:"fields",fields:r}:{mode:"full",fields:[]}}function et(e,t){if(e.mode!=="fields")return;let n=new Set(t.definitions.flatMap(i=>[i.key,i.metadata_key])),r=e.fields.filter(i=>{let o=i.trim(),s=o.startsWith("item.")?o.slice(5):o;return!ns.has(o)&&!rs.has(s)&&!n.has(s)});if(r.length>0)throw new p(`Unknown search --fields value(s): ${r.join(", ")}`,m.USAGE,{examples:["pm search <query> --fields id,title,status,score","pm search <query> --fields id,title,item.description,matched_fields"],nextSteps:["Use item.<field> for explicit item metadata fields, or run pm search --help for projection examples."]})}function tt(e){let t=L(e);if(!t)throw new p("Search query must not be empty",m.USAGE);return t.split(/\s+/u).filter(Boolean)}function nt(e){let t=e.search?.max_results;return typeof t=="number"&&Number.isFinite(t)&&t>0?Math.floor(t):50}function rt(e){let t=e.search?.score_threshold;return typeof t=="number"&&Number.isFinite(t)?t:0}function it(e){let t=e.search?.hybrid_semantic_weight;return typeof t=="number"&&Number.isFinite(t)&&t>=0&&t<=1?t:.7}function ot(e){let t={title_exact_bonus:10,title_weight:48,description_weight:5,tags_weight:6,status_weight:2,body_weight:1,comments_weight:1,notes_weight:1,learnings_weight:1,reminders_weight:2,events_weight:2,dependencies_weight:3,linked_content_weight:1},n=e.search?.tuning;if(!n)return t;let r=(i,o)=>typeof i=="number"&&Number.isFinite(i)&&i>=0?i:o;return{title_exact_bonus:r(n.title_exact_bonus,t.title_exact_bonus),title_weight:r(n.title_weight,t.title_weight),description_weight:r(n.description_weight,t.description_weight),tags_weight:r(n.tags_weight,t.tags_weight),status_weight:r(n.status_weight,t.status_weight),body_weight:r(n.body_weight,t.body_weight),comments_weight:r(n.comments_weight,t.comments_weight),notes_weight:r(n.notes_weight,t.notes_weight),learnings_weight:r(n.learnings_weight,t.learnings_weight),reminders_weight:r(n.reminders_weight,t.reminders_weight),events_weight:r(n.events_weight,t.events_weight),dependencies_weight:r(n.dependencies_weight,t.dependencies_weight),linked_content_weight:r(n.linked_content_weight,t.linked_content_weight)}}import Ie from"node:fs/promises";import ut from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="7288620a-5aa7-50f9-a271-45b2722a4887")}catch{}})();function os(e){return e.trim().toLowerCase().replace(/\s+/g," ")}function W(e){return os(e).split(/[^a-z0-9]+/).filter(t=>t.length>0)}(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]="42fde1a1-ee4b-5564-93b2-78d5a0fc7555")}catch{}})();var st=4,ss=20,as=200,cs=new Set(["a","an","and","for","from","in","into","of","on","or","the","to","with"]);function at(e,t){let n=[],r=new Set;for(let i of e){let o=i.trim().replaceAll(/\s+/g," ");if(o.length===0)continue;let s=o.toLowerCase();if(!r.has(s)&&(r.add(s),n.push(o),n.length>=t))break}return n}function ds(e){let t=e.toLowerCase();return t.length>4&&t.endsWith("ies")?`${t.slice(0,-3)}y`:t.length>4&&(t.endsWith("ches")||t.endsWith("shes")||t.endsWith("xes")||t.endsWith("zes")||t.endsWith("sses"))?t.slice(0,-2):t.length>3&&t.endsWith("s")&&!t.endsWith("ss")&&!t.endsWith("us")&&!t.endsWith("is")&&!t.endsWith("as")?t.slice(0,-1):t}function ls(e){let t=e.toLowerCase();return t.length>2&&(!t.endsWith("s")||t.endsWith("ss"))?t.endsWith("y")&&!/[aeiou]y$/u.test(t)?`${t.slice(0,-1)}ies`:t.endsWith("ch")||t.endsWith("sh")||t.endsWith("x")||t.endsWith("z")||t.endsWith("ss")?`${t}es`:`${t}s`:t}function Rr(e,t=st){let n=e.trim().replaceAll(/\s+/g," ");if(n.length===0)return[];let r=W(n);if(r.length===0)return[n];let i=r.filter(a=>!cs.has(a.toLowerCase())),o=r.map(a=>ds(a)),s=i.map(a=>ls(a));return at([n,r.join(" "),i.join(" "),o.join(" "),s.join(" ")],Math.max(1,t))}function Mr(e){let t=Array.isArray(e)?e:e?.queries;return Array.isArray(t)?at(t.filter(n=>typeof n=="string"),st):[]}function Tr(e,t,n){return at([...e,...t],Math.max(1,n))}function Fr(e,t){let r=e.search?.query_expansion,i=K(r?.provider);return{enabled:r?.enabled===!0,provider:i??t,max_queries:st}}function Dr(e,t){let r=e.search?.rerank,i=K(r?.model),s=te(r?.top_k)??ss;return{enabled:r?.enabled===!0,model:i??t,top_k:Math.min(as,s)}}function Lr(e){let t=Array.isArray(e)?e:e?.hits;if(!Array.isArray(t))return[];let n=new Map;for(let i of t){if(typeof i!="object"||i===null)continue;let o=K(i.id),s=i.score;if(!o||typeof s!="number"||!Number.isFinite(s))continue;let a=n.get(o);(a===void 0||s>a)&&n.set(o,s)}let r=[...n.entries()].map(([i,o])=>({id:i,score:o}));return r.sort((i,o)=>i.score!==o.score?o.score-i.score:i.id.localeCompare(o.id)),r}function us(e,t){let n=e.length,r=0;for(let i=0;i<n;i+=1)r+=e[i]*t[i];return r}function Pr(e){let t=0;for(let n=0;n<e.length;n+=1)t+=e[n]*e[n];return Math.sqrt(t)}function fs(e,t,n){if(!e||!t||e.length===0||t.length===0||e.length!==t.length)return 0;let r=us(e,t),i=Pr(t),o=n*i;return!Number.isFinite(r)||!Number.isFinite(n)||!Number.isFinite(i)||!Number.isFinite(o)||o===0?0:Math.max(-1,Math.min(1,r/o))}async function Or(e,t,n,r,i){if(r.length===0)return new Map;let o=K(t)??e.model,s=o===e.model?e:{...e,model:o},a=[n.trim(),...r.map(f=>f.text)],c=await de(s,a,i?{timeout_ms:i}:{}),d=c[0];if(!d)return new Map;let l=Pr(d),u=new Map;for(let f=0;f<r.length;f+=1){let g=r[f],h=c[f+1];if(!h)continue;let y=fs(d,h,l);u.set(g.id,Math.max(0,Math.min(1,(y+1)/2)))}return u}(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]="3fd6ed70-6633-5886-90a6-3d4cc16b3ef0")}catch{}})();var ms=1.2,ps=.75;function ct(e){return W(e)}function hs(e){let t=new Map;for(let n of e)t.set(n,(t.get(n)??0)+1);return t}function Nr(e){let t=[],n=new Map,r=0;for(let o of e){let s=ct(o.text),a=hs(s);r+=s.length;for(let c of a.keys())n.set(c,(n.get(c)??0)+1);t.push({id:o.id,termFrequencies:a,length:s.length})}let i=t.length;return{documents:t,documentFrequency:n,documentCount:i,averageDocumentLength:i>0?r/i:0}}function gs(e,t){return Math.log(1+(e-t+.5)/(t+.5))}function jr(e,t,n){let r=new Map;if(e.documentCount===0||e.averageDocumentLength===0)return r;let i=[...new Set(t.filter(s=>s.length>0))];if(i.length===0)return r;let o=new Map;for(let s of i){let a=e.documentFrequency.get(s);a!==void 0&&o.set(s,gs(e.documentCount,a))}if(o.size===0)return r;for(let s of e.documents){let a=0;for(let[c,d]of o){let l=s.termFrequencies.get(c);if(l===void 0)continue;let u=1-n.b+n.b*s.length/e.averageDocumentLength,f=l+n.k1*u;a+=d*(l*(n.k1+1)/f)}a>0&&r.set(s.id,a)}return r}function qr(e,t,n,r){return typeof e!="number"||!Number.isFinite(e)?t:Math.min(r,Math.max(n,e))}function Gr(e){let t=n=>typeof n=="string"?[n]:typeof n=="number"?[String(n)]:Array.isArray(n)?n.flatMap(t):typeof n=="object"&&n!==null?Object.values(n).flatMap(t):[];return t(Object.values(e)).join(" ")}function Ur(e){let t=e?.search?.bm25;return{k1:qr(t?.k1,ms,0,1e3),b:qr(t?.b,ps,0,1)}}(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]="1750b332-dd40-5497-b410-26c8c7436329")}catch{}})();var ys=2,_s=120,ws=6,bs=40,Es=1e3,vs=900,Ss="\xAB",xs="\xBB",zr=60,Wr=["tag","status","type","priority"];function Br(e){let t=[],n=e;for(let r=0;r<5&&n&&typeof n=="object";r+=1){let i=n.code;typeof i=="string"&&t.push(i.toLowerCase()),n=n.cause}return t.join(" ")}function Kr(e){let t=(e instanceof Error?e.message:String(e)).toLowerCase(),n=Br(e),r=`${t} ${n}`;return r.includes("timed out")||r.includes("timeout")||r.includes("etimedout")?"timeout":r.includes("econnrefused")||r.includes("connection refused")||r.includes("connect ")||r.includes("enotfound")||r.includes("eai_again")||r.includes("econnreset")||r.includes("fetch failed")?"connection":"error"}function Vr(e,t){let n=Kr(t);return`search_${e}_fallback:${n}:using_keyword_mode`}async function Qr(e,t,n){try{let r=await un(e);r.warnings.length>0&&n.push(...r.warnings);let i=$n(t.map(o=>({id:o.metadata.id,updated_at:o.metadata.updated_at})),r.entries);if(i.length===0)return;n.push(`vector_index_stale:${i.length}`),process.stderr.write(`[pm] warning: ${i.length} item${i.length===1?" is":"s are"} new or modified since the last reindex and ${i.length===1?"is":"are"} NOT in the semantic index yet \u2014 they will be missing from semantic/hybrid results until you run 'pm reindex --mode hybrid'. (Write-time embedding is governed by search.mutation_refresh_policy; staleness means the embed was skipped, failed, or the backend was unreachable.)
|
|
2
2
|
`)}catch{}}var Qd={applyFilters:ti,applyExactQueryFilters:ei,applyInlineQueryFilters:Xr,buildHitHighlights:ci,buildVerboseSearchFilters:Z,buildExplicitSemanticFallbackWarning:Vr,buildCompactSearchFilterSummary:J,buildHybridLexicalScore:ui,buildRerankCorpus:bi,buildSemanticHits:gi,classifyImplicitSemanticFallbackReason:Kr,collectErrorCauseCodes:Br,collectExactPhraseFields:Jr,collectLinkedPaths:ni,combineHybridHits:ht,computeBuiltInBm25Hits:_i,computeSemanticOrHybridHits:Ei,resolveBuiltInBm25Mode:yi,countOccurrences:mt,dependencyEntries:ft,documentContainsExactPhrase:Zr,emptySearchResult:fi,highlightFieldSnippet:ai,loadDocuments:vi,markTokenRuns:si,parseInlineQueryFilters:Yr,maybeEmitVectorIndexStaleWarning:Qr,loadLinkedCorpus:ii,mergeVectorHitsById:wi,normalizeExtensionProviderHits:hi,normalizeScoreMap:dt,parseProjectionConfig:Ze,parseTimestampWindow:$,parseTokens:tt,projectSearchHits:xi,readSearchFieldValue:Si,requireSemanticDependencies:pt,resolveExtensionSearchProvider:mi,resolveExtensionSearchProviderByName:Re,resolveExtensionVectorAdapter:pi,resolveLinkedCorpusRoots:ri,scoreDocument:di,sortHits:li,stringArray:Ce,textEntries:z,validateSearchProjectionFields:et};function Yr(e){let t={},n=[];for(let r of e.split(/\s+/).filter(i=>i.length>0)){let i=r.indexOf(":"),o=i>0?r.slice(0,i).toLowerCase():"",s=i>0?r.slice(i+1):"",a=Wr.includes(o)?o:void 0;if(a&&s.length>0&&t[a]===void 0){t[a]=s;continue}n.push(r)}return{residualQuery:n.join(" "),inlineFilters:t}}function Xr(e,t,n){let r={...e};for(let i of Wr){let o=t[i];if(o!==void 0){if(Te(r[i])!==void 0){n.push(`search_inline_filter_ignored:${i}:flag_takes_precedence`);continue}r[i]=o}}return r}function Ce(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function z(e){return Array.isArray(e)?e.filter(t=>typeof t=="object"&&t!==null&&typeof t.text=="string"):[]}function ft(e){return Array.isArray(e)?e.filter(t=>typeof t=="object"&&t!==null&&typeof t.id=="string"&&typeof t.kind=="string"):[]}function Jr(e){let t=e.metadata;return[t.title,t.description,t.status,Ce(t.tags).join(" "),e.body,z(t.comments).map(n=>n.text).join(" "),z(t.notes).map(n=>n.text).join(" "),z(t.learnings).map(n=>n.text).join(" "),Ge(t).join(" "),Ue(t).join(" "),ft(t.dependencies).map(n=>`${n.id} ${n.kind}`).join(" "),ze(t)]}function Zr(e,t){return Jr(e).some(n=>L(n).includes(t))}function ei(e,t,n){return!n.titleExact&&!n.phraseExact?e:e.filter(r=>!(n.titleExact&&L(r.metadata.title)!==t||n.phraseExact&&!Zr(r,t)))}function ks(e){if(e&&[...e].some(t=>t.toLowerCase()==="none"||t.toLowerCase()==="null"))throw new p('--assignee no longer accepts "none" or "null".',m.USAGE)}function Is(e,t,n){let r=Q(e.assignee,{label:"--assignee"});ks(r);let i=An(e),o=Cn(e);return{typeFilter:bn(e.type,t),tagFilter:Q(e.tag,{label:"--tag",normalize:s=>s.toLowerCase()}),priorityFilter:En(e.priority),deadlineBefore:Je(e.deadlineBefore,"deadline-before"),deadlineAfter:Je(e.deadlineAfter,"deadline-after"),updatedAfter:$(e.updatedAfter,"updated-after"),updatedBefore:$(e.updatedBefore,"updated-before"),createdAfter:$(e.createdAfter,"created-after"),createdBefore:$(e.createdBefore,"created-before"),assigneeFilter:r,sprintFilter:Q(e.sprint,{label:"--sprint"}),releaseFilter:Q(e.release,{label:"--release"}),parentFilter:e.parent?.trim(),statusSet:n&&n.length>0?new Set(n):void 0,missingMetadataFilters:i,missingMetadataActive:Sn(i),contentFieldFilters:o,contentFiltersActive:kn(o)}}function As(e,t){return Cs(e,t)&&Rs(e,t)&&Ms(e,t)}function Cs(e,t){if(t.statusSet&&!t.statusSet.has(e.status)||t.typeFilter&&!t.typeFilter.has(e.type))return!1;let n=t.tagFilter;return!(n&&!Ce(e.tags).some(r=>n.has(r))||t.priorityFilter!==void 0&&!t.priorityFilter.has(e.priority))}function Rs(e,t){return Tt(e,t)}function Ms(e,t){return!(t.assigneeFilter!==void 0&&(e.assignee===void 0||!t.assigneeFilter.has(e.assignee))||t.sprintFilter!==void 0&&(e.sprint===void 0||!t.sprintFilter.has(e.sprint))||t.releaseFilter!==void 0&&(e.release===void 0||!t.releaseFilter.has(e.release))||t.parentFilter!==void 0&&e.parent!==t.parentFilter)}function Ts(e,t,n,r){let i=e.metadata;return!(!As(i,t)||!tn(i,n)||t.missingMetadataActive&&!xn(i,t.missingMetadataFilters,r)||t.contentFiltersActive&&!In(i,t.contentFieldFilters))}function ti(e,t,n,r,i,o){let s=Is(t,n,i);return e.filter(a=>Ts(a,s,r,o))}function mt(e,t){let n=0,r=0;for(;;){let i=e.indexOf(t,r);if(i<0)return n;n+=1,r=i+t.length}}function Fs(e){return W(e)}function ni(e){let t=(e.files??[]).map(s=>({scope:s.scope,path:s.path.trim()})),n=(e.docs??[]).map(s=>({scope:s.scope,path:s.path.trim()})),r=(e.tests??[]).filter(s=>typeof s.path=="string"&&s.path.trim().length>0).map(s=>({scope:s.scope,path:s.path.trim()})),i=[...t,...n,...r].filter(s=>s.path.length>0).sort((s,a)=>s.scope.localeCompare(a.scope)||s.path.localeCompare(a.path)),o=new Map;for(let s of i)o.set(`${s.scope}:${s.path}`,s);return[...o.values()]}async function Hr(e){let t=ut.resolve(e);try{let n=await Ie.realpath(t);return{resolved:t,realpath:n}}catch{return null}}async function ri(e,t){let[n,r]=await Promise.all([Hr(e),Hr(t)]);return{projectContainmentRoot:n,globalContainmentRoot:r}}async function ii(e,t){let n=ni(e.metadata),r=[];for(let i of n){let o=i.scope==="global"?t.globalContainmentRoot:t.projectContainmentRoot;if(!o)continue;let s=ut.resolve(o.resolved,i.path);if(!De(o.resolved,s))continue;let a;try{a=await Ie.realpath(s)}catch{continue}if(De(o.realpath,a))try{await Pe({path:s,scope:i.scope}),r.push(await Ie.readFile(s,"utf8"))}catch{}}return r.join(`
|
|
3
3
|
`)}var oi=[{name:"title",weightKey:"title_weight",value:e=>e.metadata.title},{name:"description",weightKey:"description_weight",value:e=>e.metadata.description},{name:"tags",weightKey:"tags_weight",value:e=>Ce(e.metadata.tags).join(" ")},{name:"status",weightKey:"status_weight",value:e=>typeof e.metadata.status=="string"?e.metadata.status:""},{name:"body",weightKey:"body_weight",value:e=>e.body},{name:"comments",weightKey:"comments_weight",value:e=>z(e.metadata.comments).map(t=>t.text).join(" ")},{name:"notes",weightKey:"notes_weight",value:e=>z(e.metadata.notes).map(t=>t.text).join(" ")},{name:"learnings",weightKey:"learnings_weight",value:e=>z(e.metadata.learnings).map(t=>t.text).join(" ")},{name:"reminders",weightKey:"reminders_weight",value:e=>Ge(e.metadata).join(" ")},{name:"events",weightKey:"events_weight",value:e=>Ue(e.metadata).join(" ")},{name:"dependencies",weightKey:"dependencies_weight",value:e=>ft(e.metadata.dependencies).map(t=>`${t.id} ${t.kind}`).join(" ")},{name:"plan",weightKey:"body_weight",value:e=>ze(e.metadata)}],Ds=new Map(oi.map(e=>[e.name,e]));function Ls(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function si(e,t){let n=t.filter(i=>i.length>0).sort((i,o)=>o.length-i.length).map(Ls);if(n.length===0)return e;let r=new RegExp(n.join("|"),"gi");return e.replace(r,i=>`${Ss}${i}${xs}`)}function ai(e,t){if(e.length===0)return null;let n=e.toLowerCase(),r=-1,i=0;for(let l of t){if(l.length===0)continue;let u=n.indexOf(l);u>=0&&(r<0||u<r)&&(r=u,i=l.length)}if(r<0)return null;let o=Math.max(0,r-zr),s=Math.min(e.length,r+i+zr),a=si(e.slice(o,s),t),c=o>0?"\u2026":"",d=s<e.length?"\u2026":"";return`${c}${a}${d}`}function ci(e,t,n){let r=[];for(let i of t){let o=Ds.get(i);if(o===void 0)continue;let s=ai(o.value(e),n);s!==null&&r.push({field:i,snippet:s})}return r}function Ps(e,t,n){return[...oi.map(r=>({name:r.name,value:r.value(e),weight:n[r.weightKey]})),{name:"linked_content",value:t,weight:n.linked_content_weight}]}function Os(e,t,n){let r=L(e.id),i=typeof n=="string"?n.trim().toLowerCase():"",o=L(i),s=o.length>0&&r.startsWith(o)?r.slice(o.length).trim():r;return t!==r&&t!==s?null:{item:e,score:t===r?Es:vs,matched_fields:["id"],matched_all_terms:!0,exact_id_match:!0}}function qs(e,t,n,r,i){for(let o of e){let s=t.get(o)??0;s>0&&(i.score+=s*r.title_exact_bonus,i.matched.add("title"),i.matchedTokens.add(o));for(let a of n){let c=mt(a.value.toLowerCase(),o);c>0&&(i.score+=c*a.weight,i.matched.add(a.name),i.matchedTokens.add(o))}}}function Ns(e,t,n,r){L(e.title)===t&&(r.score+=_s,r.matched.add("title"));for(let o of n){let s=mt(L(o.value),t);s>0&&(r.score+=s*o.weight*ws,r.matched.add(o.name))}}function di(e,t,n,r,i,o,s=!1){let a=e.metadata,c=Os(a,n,o);if(c)return c;let d=new Map;for(let y of Fs(a.title))d.set(y,(d.get(y)??0)+1);let l=Ps(e,r,i),u={score:0,matched:new Set,matchedTokens:new Set};qs(t,d,l,i,u);let f=new Set(t),g=f.size>0&&u.matchedTokens.size===f.size;return s&&f.size>1&&g&&(u.score+=bs),t.length>=ys&&n.includes(" ")&&Ns(a,n,l,u),u.score<=0?null:{item:a,score:u.score,matched_fields:[...u.matched].sort((y,w)=>y.localeCompare(w)),matched_all_terms:g}}function li(e,t){return[...e].sort((n,r)=>{let i=r.score-n.score;if(i!==0)return i;let o=U(n.item.status,t),s=U(r.item.status,t);if(o!==s)return o?1:-1;let a=n.item.priority-r.item.priority;if(a!==0)return a;let c=Mt(r.item.updated_at,n.item.updated_at);return c!==0?c:n.item.id.localeCompare(r.item.id)})}function ui(e,t,n,r,i,o,s,a=!1){return di(e,t,n,r?i.get(e.metadata.id)??"":"",o,s,a)}function dt(e){if(e.size===0)return new Map;let t=[...e.values()],n=Math.min(...t),r=Math.max(...t);if(r===n)return new Map([...e.keys()].map(o=>[o,1]));let i=new Map;for(let[o,s]of e)i.set(o,(s-n)/(r-n));return i}function fi(e,t,n,r,i,o,s,a,c,d,l,u,f=!1){let g=f?{total:0,count_only:!0}:{};if(d.mode==="compact"&&r.compact===!0){let w=J({mode:t,matchMode:n,options:r,includeLinked:i,titleExact:r.titleExact===!0,phraseExact:r.phraseExact===!0,scoreThreshold:o,hybridSemanticWeight:s,runtimeFieldFilters:u});return{query:e.trim(),mode:t,items:[],count:0,...g,filters:w,...l.length>0?{warnings:l}:{}}}let y=d.mode==="full"?null:[...d.fields];return{query:e.trim(),mode:t,items:[],count:0,...g,filters:Z({effectiveMode:t,matchMode:n,options:r,includeLinked:i,titleExact:r.titleExact===!0,phraseExact:r.phraseExact===!0,scoreThreshold:o,hybridSemanticWeight:s,queryExpansion:a,rerank:c,runtimeFieldFilters:u??{}}),projection:{mode:d.mode,fields:y},now:G(),...l.length>0?{warnings:l}:{}}}function pt(e,t,n,r){if(!t.active)throw new p(`Search mode '${e}' requires a configured embedding provider in settings.providers.openai or settings.providers.ollama`,m.USAGE);if(!n.active&&!r)throw new p(`Search mode '${e}' requires a configured vector store in settings.vector_store.qdrant/settings.vector_store.lancedb or an extension adapter selected by settings.vector_store.adapter`,m.USAGE);return{provider:t.active,vectorStore:n.active??null}}var F=Te;function Re(e){let t=R(),n=Ot(t,e);if(!n)return null;let r=n.runtime_definition??n.definition,i=r.query,o=r.queryExpansion??r.query_expansion,s=r.rerank,a=F(r.name)??F(n.definition.name)??e;if(!a)return null;let c={providerName:a,...typeof i=="function"?{query:i}:{},...typeof o=="function"?{queryExpansion:o}:{},...typeof s=="function"?{rerank:s}:{}};return!c.query&&!c.queryExpansion&&!c.rerank?null:c}function mi(e){let t=F(e.search?.provider),n=Re(t);return n?.query?{providerName:n.providerName,query:n.query}:null}function pi(e){let t=R(),n=F(e.vector_store?.adapter),r=qt(t,n);if(!r)return null;let i=r.runtime_definition??r.definition,o=i.query;if(typeof o!="function")return null;let s=i.upsert;return{adapterName:F(i.name)??F(r.definition.name)??n??"extension",query:o,...typeof s=="function"?{upsert:s}:{}}}function hi(e,t,n){let r=Array.isArray(t)?t:t?.hits;if(!Array.isArray(r))throw new p(`Extension search provider "${e}" must return an array of hits or { hits: [...] }`,m.GENERIC_FAILURE);let i=new Set,o=[];for(let s of r){if(typeof s!="object"||s===null)continue;let a=F(s.id),c=s.score;if(!a||typeof c!="number"||!Number.isFinite(c)||i.has(a))continue;let d=n.get(a);if(!d)continue;let l=s.matched_fields,u=Array.isArray(l)&&l.every(f=>typeof f=="string")?[...new Set(l.map(f=>f.trim()).filter(f=>f.length>0))].sort((f,g)=>f.localeCompare(g)):[`provider:${e}`];i.add(a),o.push({item:d.metadata,score:c,matched_fields:u})}return o}function gi(e,t){let n=[],r=new Map;for(let i of e){if(r.has(i.id))continue;let o=t.get(i.id);o&&(r.set(i.id,i.score),n.push({item:o.metadata,score:i.score,matched_fields:["semantic"]}))}return{semanticHits:n,semanticScores:r}}function Ae(e,t){let n=t.filter(d=>d.exact_id_match===!0);if(n.length===0)return e;let r=new Set(n.map(d=>d.item.id)),i=e.filter(d=>!r.has(d.item.id)),o=i.reduce((d,l)=>Math.max(d,l.score),0),s=n.sort((d,l)=>l.score-d.score),a=o+s.length+1;return[...s.map((d,l)=>({...d,score:a-l,matched_fields:["id"]})),...i]}function ht(e,t,n,r,i="semantic"){let o=new Map(n.map(u=>[u.item.id,u.score])),s=new Map(n.map(u=>[u.item.id,u.matched_fields])),a=dt(t),c=dt(o),d=new Set([...t.keys(),...o.keys()]),l=1-r;return[...d].map(u=>{let f=e.get(u),g=a.get(u)??0,h=c.get(u)??0,y=g*r+h*l;if(y<=0)return null;let w=new Set;t.has(u)&&w.add(i);for(let _ of s.get(u)??[])w.add(_);return{item:f.metadata,score:y,matched_fields:[...w].sort((_,b)=>_.localeCompare(b))}}).filter(u=>u!==null)}function yi(e){let t=e.configuredProvider?.trim().toLowerCase();return t==="bm25"?"explicit":t==="auto"&&!e.hasEmbeddingProvider&&!e.hasExtensionSearchProvider?"auto-fallback":null}function _i(e){let t=e.filteredDocuments.map(s=>({id:s.metadata.id,text:Gr(dn(s,{fields:e.corpusFields}))})),n=Nr(t),r=jr(n,ct(e.query),e.bm25Params),i=new Map(e.filteredDocuments.map(s=>[s.metadata.id,s]));if(e.requestedMode==="semantic"){let s=[...r].map(([a,c])=>({item:i.get(a).metadata,score:c,matched_fields:["bm25"]}));return Ae(s,e.keywordHits)}let o=ht(i,r,e.keywordHits,e.hybridSemanticWeight,"bm25");return Ae(o,e.keywordHits)}function wi(e){let t=new Map;for(let r of e)for(let i of r){let o=t.get(i.id);(!o||i.score>o.score)&&t.set(i.id,i)}let n=[...t.values()];return n.sort((r,i)=>r.score!==i.score?i.score-r.score:r.id.localeCompare(i.id)),n}function bi(e){let t=e.metadata,n=Array.isArray(t?.tags)?t.tags.join(" "):"";return[t?.title,t?.description,t?.type,t?.status,n,e.body].map(r=>typeof r=="string"?r.trim():"").filter(r=>r.length>0).join(`
|
|
4
4
|
`)}async function js(e,t){let n=e.queryExpansion.enabled?Rr(t,e.queryExpansion.max_queries):[t],r=n.length>0?n:[t];if(!e.queryExpansion.enabled)return r;if(e.queryExpansionExtension?.expand)try{let i=await Promise.resolve(e.queryExpansionExtension.expand({query:t,mode:e.requestedMode,settings:e.settings}));return Tr(r,Mr(i),e.queryExpansion.max_queries)}catch{return e.warnings.push(`search_query_expansion_provider_failed:${e.queryExpansionExtension.providerName}:using_builtin`),r}return e.queryExpansion.provider&&e.queryExpansion.provider!=="openai"&&e.queryExpansion.provider!=="ollama"&&e.warnings.push(`search_query_expansion_provider_unavailable:${e.queryExpansion.provider}:using_builtin`),r}async function Gs(e,t,n,r){if(e.extensionVectorAdapter?.query)try{return await Promise.resolve(e.extensionVectorAdapter.query({vector:t,limit:n,settings:e.settings}))}catch(i){if(!e.vectorStore)throw new p(`Extension vector adapter query failed and no built-in fallback store is configured (${i instanceof Error?i.message:String(i)})`,m.GENERIC_FAILURE);return e.warnings.push(`search_vector_adapter_failed:${e.extensionVectorAdapter.adapterName}:using_builtin`),await He(e.vectorStore,t,n,r)}if(e.vectorStore)return await He(e.vectorStore,t,n,r);throw new p("Semantic search requires either a configured vector store or an extension vector adapter query handler",m.USAGE)}function Us(e,t,n){return[...e].sort((i,o)=>i.score!==o.score?o.score-i.score:i.item.id.localeCompare(o.item.id)).slice(0,n).map(i=>{let o=t.get(i.item.id);return o?{hit:i,text:bi(o)}:null}).filter(i=>i!==null)}async function zs(e,t,n){if(!e.rerankExtension?.rerank)return null;try{let r=await Promise.resolve(e.rerankExtension.rerank({query:t,mode:"hybrid",model:e.rerank.model,top_k:e.rerank.top_k,settings:e.settings,candidates:n.map(o=>({id:o.hit.item.id,text:o.text,score:o.hit.score}))})),i=Lr(r);return i.length>0?new Map(i.map(o=>[o.id,o.score])):(e.warnings.push(`search_rerank_provider_invalid_response:${e.rerankExtension.providerName}:using_builtin`),null)}catch{return e.warnings.push(`search_rerank_provider_failed:${e.rerankExtension.providerName}:using_builtin`),null}}async function Hs(e,t,n){let r=await zs(e,t,n);if(r)return r;let i=n.map(o=>({id:o.hit.item.id,text:o.text}));try{return await Or(e.provider,e.rerank.model,t,i,e.embeddingTimeoutMs)}catch{return e.warnings.push("search_rerank_failed:using_hybrid_scores"),null}}function $s(e,t){let n=new Set(t.keys()),r=e.map(i=>{let o=t.get(i.item.id);if(o===void 0)return i;let s=new Set(i.matched_fields);return s.add("rerank"),{...i,score:o,matched_fields:[...s].sort((a,c)=>a.localeCompare(c))}});return r.sort((i,o)=>{let s=n.has(i.item.id),a=n.has(o.item.id);return s!==a?s?-1:1:i.score!==o.score?o.score-i.score:i.item.id.localeCompare(o.item.id)}),r}async function Ws(e,t,n,r){if(!e.rerank.enabled||n.length<=1)return n;let i=Us(n,r,e.rerank.top_k),o=await Hs(e,t,i);return o&&o.size>0?$s(n,o):n}async function Ei(e){let t=Math.max(e.limit??e.maxResults,e.maxResults),n=e.embeddingTimeoutMs!==void 0?{timeout_ms:e.embeddingTimeoutMs}:{},r=e.vectorQueryTimeoutMs!==void 0?{timeout_ms:e.vectorQueryTimeoutMs}:{},i=e.query.trim(),o=await js(e,i),s=await de(e.provider,o,n),a=await Promise.all(s.map(async h=>await Gs(e,h,t,r))),c=wi(a),d=new Map(e.filteredDocuments.map(h=>[h.metadata.id,h])),{semanticHits:l,semanticScores:u}=gi(c,d),f=u.size;if(e.requestedMode==="semantic")return{hits:Ae(l,e.keywordHits),vectorMatchCount:f};let g=await Ws(e,i,ht(d,u,e.keywordHits,e.hybridSemanticWeight),d);return{hits:Ae(g,e.keywordHits),vectorMatchCount:f}}async function vi(e,t,n,r){let i=Pt(R()),o=async(d,l,u)=>{let f=async(g,h)=>{await Pe({path:g,scope:"project"});let y=await Ie.readFile(g,"utf8");return jt(y,{format:h,schema:r,extensionFieldNames:i,onWarning:_=>s.push(_)}).body};try{return await f(l,u)}catch{let g=u==="toon"?"json_markdown":"toon",h=Le(e,d.type,d.id,g,n);try{return await f(h,g)}catch{return s.push(`item_list_item_read_failed:${ut.relative(e,h)}`),""}}},s=[],a=await rn(e,t,n,s,r),c=[];if(a.length===0){let d=await on(e,t,n,s,r);for(let l of d){let u=Le(e,l.type,l.id,t,n),f=await o(l,u,t);c.push({metadata:l,body:f})}return{documents:c,warnings:[...new Set(s)].sort((l,u)=>l.localeCompare(u))}}for(let d of a){if(typeof d.body=="string"){c.push({metadata:d.metadata,body:d.body});continue}let l=await o(d.metadata,d.item_path,d.item_format);c.push({metadata:d.metadata,body:l})}return{documents:c,warnings:[...new Set(s)].sort((d,l)=>d.localeCompare(l))}}function Si(e,t){let n=t.trim();if(n.length===0)return null;if(n==="score")return e.score;if(n==="matched_fields")return e.matched_fields;if(n.startsWith("item.")){let o=n.slice(5);return o.length===0?null:e.item[o]??null}let r=e,i=e.item;return Object.prototype.hasOwnProperty.call(i,n)?i[n]??null:Object.prototype.hasOwnProperty.call(r,n)?r[n]??null:null}function xi(e,t){return t.mode==="full"?e.map(({matched_all_terms:n,exact_id_match:r,...i})=>i):e.map(n=>{let r={};for(let i of t.fields)r[i]=Si(n,i);return r})}function Bs(e){let t=Re(e.provider??void 0);return t?.queryExpansion?{providerName:t.providerName,expand:t.queryExpansion}:null}function Ks(e){let t=Re(F(e.search?.provider));return t?.rerank?{providerName:t.providerName,rerank:t.rerank}:null}function Vs(e,t){let n=[],r=Yr(e),i=Object.keys(r.inlineFilters).length>0;if(i&&r.residualQuery.trim().length===0)throw new p("Inline field:value tokens consumed the entire query, leaving no search terms.",m.USAGE,{examples:["pm search auth tag:area:search","pm list --tag area:search --status open"],nextSteps:["Add keyword terms alongside the inline filters, or use pm list for pure tag/status/type/priority filtering."]});let o=i?r.residualQuery:e,s=Xr(t,r.inlineFilters,n);return{query:o,options:s,inlineWarnings:n,highlight:s.highlight===!0,includeLinked:xe(s.includeLinked),titleExact:xe(s.titleExact),phraseExact:xe(s.phraseExact),matchMode:Ar(typeof s.matchMode=="string"?s.matchMode:void 0),minScoreOverride:Cr(s.minScore),countOnly:s.count===!0,tokens:tt(o),normalizedQuery:L(o),limit:oe(s.limit),projection:Ze(s),modeWasExplicit:typeof s.mode=="string"&&s.mode.trim().length>0}}async function Qs(e,t){let n=v(process.cwd(),t.path);if(!await k(I(n)))throw new p(`Tracker is not initialized at ${n}. Run pm init first.`,m.NOT_FOUND);let r=await A(n),i=nn(r).settings,o=O(i.schema),s=H(i.schema);et(e.projection,s);let a=en(e.options,s,"search"),c=P(i,R()),d=an(i),l=ln(i,n),u=mi(i),f=pi(i),g=Ir(e.options.semanticWeight),h=Fr(i,d.active?.name??null),y=Dr(i,d.active?.model??F(i.search?.embedding_model)??"text-embedding-3-small");return{pmRoot:n,settings:i,statusRegistry:o,runtimeFieldRegistry:s,runtimeFieldFilters:a,typeRegistry:c,maxResults:nt(i),scoreThreshold:e.minScoreOverride??rt(i),semanticWeightProvided:e.options.semanticWeight!==void 0,semanticWeightOverride:g,hybridSemanticWeight:g??it(i),tuning:ot(i),providerResolution:d,vectorResolution:l,extensionSearchProvider:u,extensionVectorAdapter:f,bm25Mode:yi({configuredProvider:F(i.search?.provider),hasEmbeddingProvider:d.active!==null,hasExtensionSearchProvider:u!==null}),queryExpansion:h,queryExpansionExtension:Bs(h),rerank:y,rerankExtension:Ks(i),effectiveMode:kr(e.options.mode)}}async function Ys(e,t){let n=await vi(t.pmRoot,t.settings.item_format??"toon",t.typeRegistry.type_to_folder,t.settings.schema),r=ie(typeof e.options.status=="string"?e.options.status:void 0,t.statusRegistry,{strict:!0}),i=vn(t.statusRegistry),o=ti(n.documents,e.options,t.typeRegistry,t.runtimeFieldFilters,r,i);return{warnings:n.warnings,allDocuments:n.documents,filteredDocuments:ei(o,e.normalizedQuery,{titleExact:e.titleExact,phraseExact:e.phraseExact||e.matchMode==="exact"})}}async function Xs(e,t,n){let r=new Map;if(!e||t!=="keyword"&&t!=="hybrid")return r;let i=process.cwd(),o=await ri(i,Ft(i)),s=await Promise.all(n.map(async a=>[a.metadata.id,await ii(a,o)]));for(let[a,c]of s)r.set(a,c);return r}async function Js(e,t,n){let r=await Xs(e.includeLinked,t.effectiveMode,n),i=e.matchMode==="or";return n.map(o=>ui(o,e.tokens,e.normalizedQuery,e.includeLinked,r,t.tuning,t.settings.id_prefix,i)).filter(o=>o!==null).filter(o=>e.matchMode!=="and"||o.matched_all_terms===!0)}function $r(e,t){return fi(e.query,e.effectiveMode,e.matchMode,e.options,e.includeLinked,e.scoreThreshold,e.hybridSemanticWeight,e.queryExpansion,e.rerank,e.projection,e.warnings,e.runtimeFieldFilters,t)}async function Zs(e,t,n,r,i){if(t.bm25Mode===null||t.effectiveMode==="keyword")return null;let o=_i({requestedMode:t.effectiveMode,query:e.query,filteredDocuments:n,keywordHits:r,corpusFields:cn(t.settings),bm25Params:Ur(t.settings),hybridSemanticWeight:t.hybridSemanticWeight});return t.bm25Mode==="auto-fallback"&&i.push(`search_${t.effectiveMode}_offline_bm25:no_embedding_provider:using_lexical_bm25`),o}async function ea(e,t,n,r){if(!t.extensionSearchProvider)return null;let i=t.providerResolution.active!==null&&(t.vectorResolution.active!==null||t.extensionVectorAdapter!==null);try{let o=await Promise.resolve(t.extensionSearchProvider.query({query:e.query,mode:t.effectiveMode,tokens:e.tokens,options:e.options,settings:t.settings,documents:n}));return hi(t.extensionSearchProvider.providerName,o,r)}catch(o){if(!i)throw new p(`Extension search provider "${t.extensionSearchProvider.providerName}" failed: ${o instanceof Error?o.message:String(o)}`,m.GENERIC_FAILURE);return null}}function ta(e,t,n,r){return t.vectorMatchCount>0?t.hits:(r.push(`search_${e}_degraded:no_vector_matches:results_are_lexical`),e==="semantic"?n:t.hits)}async function na(e,t,n,r,i){let o=!e.extensionSearchProvider&&e.providerResolution.active!==null&&(e.vectorResolution.active!==null||e.extensionVectorAdapter!==null);i&&o&&await Qr(e.pmRoot,n,r),e.extensionSearchProvider||pt(t,e.providerResolution,e.vectorResolution,e.extensionVectorAdapter!==null)}async function ra(e){let{prepared:t,runtime:n,filteredDocuments:r,keywordHits:i,warnings:o,modeWasExplicit:s}=e,a=i,c=await Zs(t,n,r,i,o),d=n.effectiveMode;if(c!==null||d==="keyword")return{effectiveMode:n.effectiveMode,hits:c??a};try{if(await na(n,d,r,o,s),r.length===0||t.limit===0)return{effectiveMode:n.effectiveMode,hits:[]};let l=new Map(r.map(u=>[u.metadata.id,u]));if(a=await ea(t,n,r,l)??a,a===i){let{provider:u,vectorStore:f}=pt(d,n.providerResolution,n.vectorResolution,n.extensionVectorAdapter!==null),g=await Ei({requestedMode:d,query:t.query,filteredDocuments:r,keywordHits:i,hybridSemanticWeight:n.hybridSemanticWeight,limit:t.limit,maxResults:n.maxResults,provider:u,vectorStore:f,extensionVectorAdapter:n.extensionVectorAdapter,queryExpansion:n.queryExpansion,queryExpansionExtension:n.queryExpansionExtension,rerank:n.rerank,rerankExtension:n.rerankExtension,warnings:o,settings:n.settings});a=ta(d,g,i,o)}return{effectiveMode:n.effectiveMode,hits:a}}catch(l){return o.push(Vr(n.effectiveMode,l)),{effectiveMode:"keyword",hits:i}}}function ia(e,t){if(e.projection.mode==="compact"&&e.options.compact===!0)return lt({query:e.query.trim(),mode:e.effectiveMode,items:[],count:t,total:t,count_only:!0,filters:J({mode:e.effectiveMode,matchMode:e.matchMode,options:e.options,includeLinked:e.includeLinked,titleExact:e.titleExact,phraseExact:e.phraseExact,scoreThreshold:e.scoreThreshold,hybridSemanticWeight:e.hybridSemanticWeight,runtimeFieldFilters:e.runtimeFieldFilters})},e.warnings);let n=e.projection.mode==="full"?null:[...e.projection.fields];return lt({query:e.query.trim(),mode:e.effectiveMode,items:[],count:t,total:t,count_only:!0,filters:Z({effectiveMode:e.effectiveMode,matchMode:e.matchMode,options:e.options,includeLinked:e.includeLinked,titleExact:e.titleExact,phraseExact:e.phraseExact,scoreThreshold:e.scoreThreshold,hybridSemanticWeight:e.hybridSemanticWeight,queryExpansion:e.queryExpansion,rerank:e.rerank,runtimeFieldFilters:e.runtimeFieldFilters}),projection:{mode:e.projection.mode,fields:n},now:G()},e.warnings)}function lt(e,t){return t.length===0?e:{...e,warnings:t}}function ke(e,t){return t?{...e,workspace_memory:t}:e}function oa(e,t,n){if(!e.highlight)return{hits:n,projection:e.projection};let r=new Map(t.map(o=>[o.metadata.id,o])),i=n.map(o=>({...o,highlights:ci(r.get(o.item.id),o.matched_fields,e.tokens)}));return e.projection.mode==="full"||e.projection.fields.includes("highlights")?{hits:i,projection:e.projection}:{hits:i,projection:{mode:e.projection.mode,fields:[...e.projection.fields,"highlights"]}}}function sa(e,t,n,r,i,o){let s=r<n?{total:n}:{};if(e.projection.mode==="compact"&&e.options.compact===!0)return lt({query:e.query.trim(),mode:e.effectiveMode,items:t,count:t.length,...s,...o,filters:J({mode:e.effectiveMode,matchMode:e.matchMode,options:e.options,includeLinked:e.includeLinked,titleExact:e.titleExact,phraseExact:e.phraseExact,scoreThreshold:e.scoreThreshold,hybridSemanticWeight:e.hybridSemanticWeight,runtimeFieldFilters:e.runtimeFieldFilters})},e.warnings);let a=i.mode==="full"?null:[...i.fields];return{query:e.query.trim(),mode:e.effectiveMode,items:t,count:t.length,...s,...o,filters:Z({effectiveMode:e.effectiveMode,matchMode:e.matchMode,options:e.options,includeLinked:e.includeLinked,titleExact:e.titleExact,phraseExact:e.phraseExact,scoreThreshold:e.scoreThreshold,hybridSemanticWeight:e.hybridSemanticWeight,queryExpansion:e.queryExpansion,rerank:e.rerank,runtimeFieldFilters:e.runtimeFieldFilters}),projection:{mode:i.mode,fields:a},now:G(),...e.warnings.length>0?{warnings:e.warnings}:{}}}function aa(e){if(e.after!==void 0&&e.count===!0)throw new p("Search --after cannot be combined with --count.",m.USAGE)}async function ki(e,t,n){aa(t);let r=Vs(e,t),i=await Qs(r,n),o=await Ys(r,i),s=o.warnings;s.push(...r.inlineWarnings);let a=await Tn(o.allDocuments.map(S=>S.metadata),{pmRoot:i.pmRoot,statusRegistry:i.statusRegistry,now:G()});s.push(...a.warnings);let c=Fn(a,r.query);i.effectiveMode==="hybrid"&&i.semanticWeightProvided&&i.semanticWeightOverride===void 0&&s.push("search_hybrid_semantic_weight_override_invalid:using_settings_default");let d={query:r.query,matchMode:r.matchMode,options:r.options,includeLinked:r.includeLinked,titleExact:r.titleExact,phraseExact:r.phraseExact,scoreThreshold:i.scoreThreshold,hybridSemanticWeight:i.hybridSemanticWeight,queryExpansion:i.queryExpansion,rerank:i.rerank,projection:r.projection,warnings:s,runtimeFieldFilters:i.runtimeFieldFilters};if(i.effectiveMode==="keyword"&&(o.filteredDocuments.length===0||r.limit===0&&!r.countOnly))return ke($r({...d,effectiveMode:i.effectiveMode},r.countOnly),c);let l=await Js(r,i,o.filteredDocuments),u=await ra({prepared:r,runtime:i,filteredDocuments:o.filteredDocuments,keywordHits:l,warnings:s,modeWasExplicit:r.modeWasExplicit});if(u.effectiveMode!=="keyword"&&u.hits.length===0&&(o.filteredDocuments.length===0||r.limit===0&&!r.countOnly))return ke($r({...d,effectiveMode:u.effectiveMode},r.countOnly),c);let f=u.hits.filter(S=>S.exact_id_match===!0||S.score>=i.scoreThreshold),g=li(f,i.statusRegistry),h=g.length,y=xr({sorted:g,query:r.query,mode:u.effectiveMode,searchOptions:r.options,limit:r.limit??i.maxResults}),w={...d,effectiveMode:u.effectiveMode};if(r.countOnly)return ke(ia(w,h),c);let{hits:_,projection:b}=oa(r,o.filteredDocuments,y.limited),C=xi(_,b);return ke(sa(w,C,h,y.limited.length,b,y.pageExtras),c)}import ca from"node:fs/promises";import gt from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="b90a064c-f423-5bf7-9fbf-1fb273c7b5af")}catch{}})();var da=gt.join("search","eval-queries.json"),yt={schema:q,examples:[JSON.stringify(Se)],nextSteps:["Create a git-tracked golden-query JSON file that follows the schema, then re-run pm eval."]},la=new Set(["keyword","semantic","hybrid"]),ua=e=>{if(e===void 0)return"keyword";let t=e.trim().toLowerCase();if(!la.has(t))throw new p("Eval --mode must be one of keyword|semantic|hybrid",m.USAGE);return t},fa=e=>{if(e===void 0||e==="")return br;let t=te(e);if(t===null)throw new p("Eval --k must be a positive integer",m.USAGE);return t},ma=e=>{if(e===void 0||e==="")return;let t=String(e).trim(),n=Number(t);if([t.length===0,!Number.isFinite(n),n<0,n>1].includes(!0))throw new p("Eval --fail-under must be a number in the range [0, 1]",m.USAGE);return n},N=e=>Math.round(e*1e4)/1e4,pa=async e=>{try{return await ca.readFile(e,"utf8")}catch{throw new p(`Eval query set not found at ${e}`,m.NOT_FOUND,{...yt,examples:[`echo '${JSON.stringify(Se)}' > ${e}`,"pm eval --queries ./my-eval.json"]})}},ha=(e,t)=>{try{return JSON.parse(e)}catch(n){throw new p(`Eval query set at ${t} is not valid JSON: ${n instanceof Error?n.message:String(n)}`,m.USAGE,yt)}},ga=e=>{try{return Xe(e)}catch(t){throw new p(t instanceof Error?t.message:String(t),m.USAGE,yt)}},ya=async e=>ga(ha(await pa(e),e)),_a=(e,t)=>t?gt.resolve(process.cwd(),t):gt.join(e,da),wa=async(e,t,n,r)=>{let i=e.mode??t,s=(await ki(e.query,{mode:i,limit:String(n),fields:"id"},r)).items.map(c=>c.id).filter(c=>typeof c=="string"),a=Er(s,new Set(e.relevant_ids),n);return{metrics:a,report:{query:e.query,mode:i,relevant_total:a.relevant_total,retrieved_relevant:a.retrieved_relevant,ndcg:N(a.ndcg),mrr:N(a.mrr),precision:N(a.precision),recall:N(a.recall)}}},ba=(e,t,n,r)=>{let i=vr(n);return{k:e,query_count:t.length,aggregate:{ndcg:N(i.ndcg),mrr:N(i.mrr),precision:N(i.precision),recall:N(i.recall)},queries:t,...r!==void 0?{fail_under:r}:{},passed:r===void 0||i.ndcg>=r}},al=async(e,t)=>{let n=v(process.cwd(),t.path);if(!await k(I(n)))throw new p(`Tracker is not initialized at ${n}. Run pm init first.`,m.NOT_FOUND);let r=fa(e.k),i=ua(e.mode),o=ma(e.failUnder),s=_a(n,e.queries),a=await ya(s),c=[],d=[];for(let l of a.queries){let{report:u,metrics:f}=await wa(l,i,r,t);d.push(f),c.push(u)}return ba(r,c,d,o)};import{createHash as Ea}from"node:crypto";import{setTimeout as va}from"node:timers/promises";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="3f9853cc-0719-544f-8726-3cfd6063b59e")}catch{}})();var Ai=1,Ci=/^[A-Za-z0-9_-]+$/,Sa=100,Ii=1e3,xa=250;function T(e){if(e===void 0)return;let t=typeof e=="string"?[e]:e,n=[...new Set(t.flatMap(r=>r.split(",")).map(r=>r.trim()).filter(Boolean))].sort((r,i)=>r.localeCompare(i));return n.length===0?void 0:n}function Ri(e){return Ea("sha256").update(Lt({type:T(e.type),author:T(e.author),item:T(e.item),harness:T(e.harness),agent_instance:T(e.agentInstance),provenance:T(e.provenanceFilter)})).digest("hex").slice(0,24)}function Mi(e,t){let n={version:Ai,fingerprint:t,ts:e.entry.ts,stream_id:e.stream_id,stream_offset:e.stream_offset};return Buffer.from(JSON.stringify(n),"utf8").toString("base64url")}function Ti(e,t){if(typeof e!="object"||e===null)return!1;let n=e;return[n.version===Ai,n.fingerprint===t,typeof n.ts=="string",typeof n.stream_id=="string",typeof n.stream_offset=="number",Number.isSafeInteger(n.stream_offset),Number(n.stream_offset)>=0].every(Boolean)}function Fi(e,t){let n=e.trim();if(n.length===0||n.length>4096||!Ci.test(n))throw new p("Invalid mutation event cursor.",m.USAGE,{code:"invalid_event_cursor"});let r;try{r=JSON.parse(Buffer.from(n,"base64url").toString("utf8"))}catch{throw new p("Invalid mutation event cursor.",m.USAGE,{code:"invalid_event_cursor"})}if(!Ti(r,t))throw new p("Mutation event cursor does not match this query.",m.USAGE,{code:"event_cursor_query_mismatch"});return r}function Di(e){let t=e??Sa;if(!Number.isSafeInteger(t)||t<0||t>Ii)throw new p(`Mutation event limit must be an integer from 0 to ${Ii}.`,m.USAGE,{code:"invalid_event_limit"});return t}function Li(e){return e instanceof Error&&e.name==="AbortError"}function Pi(e,t){let n=e?.trim();if(!n)return{};if(Ci.test(n))return{cursor:Fi(n,t)};let r=Date.parse(n);if(!Number.isFinite(r))throw new p("Mutation event --since must be an event cursor or ISO timestamp.",m.USAGE,{code:"invalid_event_since"});return{sinceTimestamp:new Date(r).toISOString()}}async function ka(e,t){let n=await Oe(e,t);if(n===null){if(!await Ut(e))throw new p("Mutation events require a runtime with node:sqlite DatabaseSync support.",m.GENERIC_FAILURE,{code:"event_index_unavailable"});n=await Oe(e,t)}if(n===null)throw new p("Mutation event index could not be opened after rebuild.",m.GENERIC_FAILURE,{code:"event_index_unavailable"});return n}async function Ia(e={}){let t=v(e.cwd??process.cwd(),e.pmRoot);if(!await k(I(t)))throw new p(`Tracker is not initialized at ${t}. Run pm init first.`,m.NOT_FOUND);let n=Di(e.limit);if(e.full===!0&&e.provenance===!0)throw new p("Mutation event projections are mutually exclusive. Use --provenance or --full.",m.USAGE);let r=await A(t),i=r.agent_identity.identity_vocabulary,o=le(r.agent_identity.harness_signals),s=yn({provenance:e.provenanceFilter},o),a=T(e.harness),c=Ri(e),{cursor:d,sinceTimestamp:l}=Pi(e.since,c),u={...d?{after_ts:d.ts,after_stream_id:d.stream_id,after_stream_offset:d.stream_offset}:l?{since_ts:l}:{},ops:T(e.type),authors:T(e.author),harnesses:a,harness_alias_authors:a?Object.entries(i.aliases).filter(([,h])=>a.includes(h)).map(([h])=>h):void 0,agent_instances:T(e.agentInstance),provenance:[...s].map(([h,y])=>({dimension:h,values:[...y]})),stream_ids:T(e.item),limit:n},f=await ka(t,u),g=f.events.map(h=>({cursor:Mi(h,c),item_id:h.stream_id,version:h.stream_offset+1,ts:h.entry.ts,author:h.entry.author,type:h.entry.op,...h.entry.message===void 0?{}:{message:h.entry.message},patch_count:h.entry.patch.length,...e.full===!0?{entry:h.entry}:{},...e.provenance===!0?{provenance:ue(h.entry,i,{itemId:h.stream_id,version:h.stream_offset+1})}:{}}));return{events:g,count:g.length,has_more:f.has_more,...g.length===0?{}:{next_cursor:g[g.length-1].cursor},source:"derived_index",...e.provenanceSummary===!0?{provenance_summary:fe(f.events.map(h=>h.entry),i,o)}:{}}}async function*bl(e={}){let t=e.intervalMs??xa;if(!Number.isSafeInteger(t)||t<10)throw new p("Mutation event follow interval must be an integer of at least 10ms.",m.USAGE,{code:"invalid_event_follow_interval"});let n=e.since;for(;e.signal?.aborted!==!0;){let r=await Ia({...e,since:n});if(r.events.length>0){for(let i of r.events)yield i;n=r.next_cursor;continue}try{await va(t,void 0,{signal:e.signal})}catch(i){if(Li(i))return;throw i}}}var El={decodeMutationEventCursor:Fi,encodeMutationEventCursor:Mi,eventQueryFingerprint:Ri,isAbortError:Li,isMutationEventCursorEnvelope:Ti,parseMutationEventLimit:Di,resolveMutationEventStart:Pi};(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]="348c9246-2fb9-529e-b627-f60c901a6cf2")}catch{}})();function Oi(e){return Math.round(e*1e6)/1e6}function qi(e,t,n){let r=e.get(t);r===void 0?e.set(t,new Set([n])):r.add(n)}function Ni(e,t){let n=new Map(e.nodes().map(i=>[i,new Set]));Be(e,t,i=>{n.get(i.source).add(i.target),n.get(i.target).add(i.source)});let r=new Map;for(let[i,o]of n)r.set(i,[...o].sort());return r}function Aa(e,t){let n=new Map,r=new Map;return Be(e,t,(i,o)=>{if(!o.ordering)return;let{predecessor:s,successor:a}=pe(i,o);qi(r,s,a),qi(n,a,s)}),{incoming:n,outgoing:r}}function Ca(e,t,n){let r=new Map([[e,0]]),i=new Map([[e,1]]),o=new Map,s=[],a=[e],c=0,d=0;for(let l=0;l<a.length;l+=1){let u=a[l];n.visitedNodes+=1,s.push(u);let f=r.get(u);u!==e&&(c+=1,d+=f);for(let g of t.get(u))if(n.inspectedEdges+=1,r.has(g)||(r.set(g,f+1),a.push(g)),r.get(g)===f+1){i.set(g,(i.get(g)??0)+i.get(u));let h=o.get(g);h===void 0?o.set(g,[u]):h.push(u)}}return{stack:s,sigma:i,predecessors:o,reachableCount:c,distanceSum:d}}function Ra(e,t,n){let r=new Map;for(let i=e.stack.length-1;i>=0;i-=1){let o=e.stack[i],s=(1+(r.get(o)??0))/e.sigma.get(o);for(let a of e.predecessors.get(o)??[])r.set(a,(r.get(a)??0)+e.sigma.get(a)*s);o!==t&&n.set(o,(n.get(o)??0)+(r.get(o)??0))}}function Ma(e,t){return t<=1||e.reachableCount===0?0:e.reachableCount/(t-1)*(e.reachableCount/e.distanceSum)}function Ta(e,t,n,r,i){return{id:e,degree:t.get(e).length,inDegree:n.incoming.get(e)?.size??0,outDegree:n.outgoing.get(e)?.size??0,betweenness:Oi((r.get(e)??0)/2),closeness:Oi(i.get(e))}}function ji(e,t={}){let n=Ni(e,t.kinds),r=Aa(e,t.kinds),i=e.nodes(),o=new Map,s=new Map,a={visitedNodes:0,inspectedEdges:0};for(let l of i){t.signal?.throwIfAborted();let u=Ca(l,n,a);s.set(l,Ma(u,i.length)),Ra(u,l,o)}let c=0;for(let l of n.values())c+=l.length;let d=i.map(l=>Ta(l,n,r,o,s)).sort((l,u)=>u.betweenness-l.betweenness||u.degree-l.degree||l.id.localeCompare(u.id));return{value:{nodeCount:i.length,edgeCount:c/2,rows:d},meta:{visitedNodes:a.visitedNodes,inspectedEdges:a.inspectedEdges,truncated:!1}}}function Fa(e,t){return e<=t?{source:e,target:t}:{source:t,target:e}}function Da(e,t,n){let i=t.get(e.node)[e.neighborIndex];if(e.neighborIndex+=1,n.inspectedEdges+=1,i!==e.parent){if(n.discovery.has(i)){n.low.set(e.node,Math.min(n.low.get(e.node),n.discovery.get(i)));return}return e.children+=1,n.discovery.set(i,n.timer),n.low.set(i,n.timer),n.timer+=1,{node:i,parent:e.node,neighborIndex:0,children:0}}}function La(e,t,n){if(e.parent===null){e.children>1&&n.articulation.add(e.node);return}let r=e.parent,i=n.low.get(e.node);n.low.set(r,Math.min(n.low.get(r),i)),r!==t&&i>=n.discovery.get(r)&&n.articulation.add(r),i>n.discovery.get(r)&&n.bridges.push(Fa(r,e.node))}function Pa(e,t,n,r){n.discovery.set(e,n.timer),n.low.set(e,n.timer),n.timer+=1;let i=[{node:e,parent:null,neighborIndex:0,children:0}];for(;i.length>0;){r?.throwIfAborted();let o=i.at(-1);if(o.neighborIndex<t.get(o.node).length){let s=Da(o,t,n);s!==void 0&&i.push(s)}else La(o,e,n),i.pop()}}function Gi(e,t={}){let n=Ni(e,t.kinds),r={discovery:new Map,low:new Map,timer:0,articulation:new Set,bridges:[],inspectedEdges:0};for(let i of e.nodes())r.discovery.has(i)||Pa(i,n,r,t.signal);return{value:{articulationPoints:[...r.articulation].sort(),bridges:r.bridges.sort((i,o)=>i.source.localeCompare(o.source)||i.target.localeCompare(o.target))},meta:{visitedNodes:r.discovery.size,inspectedEdges:r.inspectedEdges,truncated:!1}}}(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]="f155ac72-64eb-5316-b016-954abd48c0e7")}catch{}})();function Oa(e){let t=e.registry(),n=new Map,r=new Set;for(let i of e.edges()){let o=t.require(i.kind);if(!o.ordering)continue;let{predecessor:s,successor:a}=pe(i,o);if(r.add(s),r.add(a),s===a)continue;let c=n.get(s);c===void 0?n.set(s,new Set([a])):c.add(a)}return{forward:n,participants:r}}function qa(e,t,n,r){if(e===void 0)return r;let i=r;for(let o of e)t.has(o)&&(i=Math.min(i,n.get(o)));return i}function Na(e,t,n){let r=n-t;return{id:e,earliestStart:t,earliestFinish:t+1,latestStart:n,latestFinish:n+1,slack:r,critical:r===0}}function ja(e,t,n,r,i){let o=new Map;for(let s=e.length-1;s>=0;s-=1){let a=e[s],c=qa(t.forward.get(a),r,o,i);o.set(a,c-1)}return e.map(s=>Na(s,n[s],o.get(s))).sort((s,a)=>s.slack-a.slack||s.earliestStart-a.earliestStart||s.id.localeCompare(a.id))}function Ui(e,t={}){t.signal?.throwIfAborted();let n=be(e,{registry:e.registry()}),r=Oa(e),i=new Set(n.order),o=n.order.filter(d=>r.participants.has(d)),s=o.reduce((d,l)=>Math.max(d,n.depth[l]+1),0),a=ja(o,r,n.depth,i,s),c=a.length>0;return{exact:!0,acyclic:n.acyclic,makespan:s,scheduledCount:a.length,criticalPath:c?n.criticalPath:[],criticalPathLength:c?n.criticalPathLength:0,cycles:n.cycles,rows:a,provenance:{algorithm:"critical-path-method",edgeFamily:"ordering",weighting:"unit"}}}import Hi from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ee260dcf-f4df-5997-a8d7-691c19c66a41")}catch{}})();var $i=1,_t=500,Ga=64,Ua="graph-durable-cache";function Wi(e){return Xt(e,Ua,30,`graph-cache:${process.pid}`,!1,!1,3e3)}function ee(e){return Hi.join(e,"runtime","graph-cache.json")}function Bi(e){return Hi.join(e,"runtime","graph-audit-baseline.json")}function wt(e){if(e!==null)try{let t=JSON.parse(e);return typeof t!="object"||t===null||t.version!==$i||typeof t.fingerprint!="string"||typeof t.saved_at!="string"||typeof t.results!="object"||t.results===null||Array.isArray(t.results)?void 0:t}catch{return}}async function bt(e,t){let n=await B(ee(e)),r=wt(n),i=r?.fingerprint===t;return{exists:n!==null,fresh:i,results:i?r.results:{}}}async function Et(e,t,n,r,i){let o=await Wi(e);try{let s=wt(await B(ee(e))),a=s?.fingerprint===t?s.results:{};delete a[r],a[r]=i;let c=Object.keys(a);for(let d of c.slice(0,Math.max(0,c.length-Ga)))delete a[d];await Me(ee(e),JSON.stringify({version:$i,fingerprint:t,saved_at:new Date().toISOString(),results:a})),n.results=a}finally{await o()}}async function vt(e){let t=await Wi(e);try{await It(ee(e))}finally{await t()}}async function Ki(e,t){let n=ee(e),r=await B(n),i=wt(r);return i===void 0?{exists:r!==null,fresh:!1,entry_count:0}:{exists:!0,fresh:i.fingerprint===t,entry_count:Object.keys(i.results).length,fingerprint:i.fingerprint.slice(0,12),saved_at:i.saved_at,bytes:Buffer.byteLength(r,"utf8")}}function St(e,t){return t||e>=_t}function zi(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.values(e).every(t=>Number.isInteger(t)&&t>=0)}function za(e){return typeof e!="object"||e===null||Array.isArray(e)?!1:Object.values(e).every(t=>typeof t=="object"&&t!==null&&!Array.isArray(t)&&[t.active,t.isolated,t.degree_leq_one].every(n=>Number.isInteger(n)&&n>=0))}function Ha(e){if(e!==null)try{let t=JSON.parse(e);if(typeof t!="object"||t===null)return;let n=t,r=n.profile;return typeof n.saved_at!="string"||typeof n.fingerprint!="string"||!zi(n.affected_subjects_by_code)||typeof r!="object"||r===null||![r.nodes,r.edges,r.active_nodes,r.missing_nodes,r.isolated_active_nodes,r.degree_leq_one_active_nodes].every(i=>Number.isInteger(i)&&i>=0)||!zi(r.edges_by_kind)||r.coverage_by_type!==void 0&&!za(r.coverage_by_type)?void 0:{...n,profile:{...r,coverage_by_type:r.coverage_by_type??{}}}}catch{return}}async function Vi(e){return Ha(await B(Bi(e)))}async function Qi(e,t){await Me(Bi(e),JSON.stringify(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]="9b8e22ad-6268-515d-994e-6b98a062ba93")}catch{}})();var $a={missing_reference_active:{op:"investigate",confidence:"medium",rationale:"Restore or re-create the referenced item, or remove/retype the reference on the active holder; the correct fix depends on why the target is absent."},missing_reference_terminal:{op:"waive",confidence:"high",rationale:"Terminal-holder reference to an absent item is historical debt; waive it or clean it up only in a dedicated changelog-safe closed-item batch."},legacy_no_blocker_sentinel:{op:"remove",confidence:"high",rationale:"The pre-structured-dependency no-active-blocker sentinel is retired and carries no information; blocker state derives from blocked_by edges."},ordering_cycle:{op:"investigate",confidence:"low",rationale:"Every cycle member is unschedulable until one ordering edge is removed or retyped; the planner never chooses which edge to cut."},legacy_ordering_cycle:{op:"waive",confidence:"high",rationale:"Terminal-only ordering cycles have no scheduling effect; repairing them would mutate closed history (changelog drag)."},duplicate_edge:{op:"remove",confidence:"high",rationale:"Parallel same-family spellings state one relationship twice; remove all but one stored spelling, keeping the holder's canonical direction."},legacy_duplicate_edge:{op:"waive",confidence:"high",rationale:"Duplicated spellings between terminal items are historical noise; waive or batch changelog-safe cleanup."},duplicate_dependency_row:{op:"remove",confidence:"high",rationale:"The identical dependency row is stored more than once on the holder; drop the repeats so the row exists exactly once \u2014 graph semantics are unchanged."},legacy_duplicate_dependency_row:{op:"waive",confidence:"high",rationale:"Repeated identical rows on terminal holders are storage noise; waive or clean up only in a changelog-safe closed-item batch."},stale_lifecycle_block:{op:"investigate",confidence:"medium",rationale:`Add a local ordering edge, declare an external blocker with --dep "id=<external-ref>,kind=blocked_by,source_kind=external", or move the item back to an active status; only the holder's owner knows which is true.`},isolated_active_node:{op:"investigate",confidence:"medium",rationale:"Link the item to its parent, prerequisite, or origin \u2014 or register it as an explicitly exempt isolate; the audit never fabricates an edge."},sparse_active_node:{op:"investigate",confidence:"low",rationale:"Investigate for an honest second edge (story-to-task, defect family, cross-epic complement); sparse is not automatically defective."}};function Yi(e){return`${e.source} -${e.kind}-> ${e.target}`}function Wa(e){let[t,...n]=e.edges;return n.map(r=>({op:"remove",code:"duplicate_edge",subject:Yi(r),rationale:"This stored spelling restates the kept canonical edge of the same semantic family; removing it leaves the relationship stated exactly once.",evidence:[`keep: ${Yi(t)}`,`group: ${Ke(e)}`],confidence:"high"}))}function Ba(e,t){if(e.code==="duplicate_edge")return e.sample.flatMap(r=>Wa(t.get(r)));let n=$a[e.code];return e.sample.map(r=>({op:n.op,code:e.code,subject:r,rationale:n.rationale,evidence:[e.policy],confidence:n.confidence}))}function Xi(e,t={}){let{redundancyLimit:n,...r}=t,i=ge(e,r),o=new Map(zn(e).map(d=>[Ke(d),d])),s=i.findings.flatMap(d=>Ba(d,o)),a=i.findings.some(d=>d.sample_truncated);t.signal?.throwIfAborted();let c=he(e.graph,{limit:n??t.maxSampleSize??25,...t.signal===void 0?{}:{signal:t.signal}});for(let d of c.value)s.push({op:"remove",code:"redundant_edge",subject:`${d.edge.source} -> ${d.edge.target} (${d.edge.kind})`,rationale:"The stored edge is implied by a longer same-family witness path; shortcut edges are sometimes deliberate emphasis, so confirm intent before removing.",evidence:[`witness: ${d.witness.join(" -> ")}`],confidence:"medium"});return a=a||c.meta.truncated,{steps:s,report:i,truncated:a,cost:{visitedNodes:c.meta.visitedNodes,inspectedEdges:c.meta.inspectedEdges}}}(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]="0fbc54bf-3321-5c73-a351-5db01aab5544")}catch{}})();var to=new Set(["ancestors","descendants","predecessors","successors","paths","impact","dominators"]),j=10;function Ji(e,t,n){return{...e,projection:{mode:t?"summary":"full",declared_field_groups:n===void 0?[]:[{name:n,restore_with:"--full"}],included_field_groups:n===void 0||t?[]:[n]}}}function Zi(e){return e===void 0?[]:(Array.isArray(e)?e:[e]).flatMap(t=>t.split(",")).map(t=>t.trim()).filter(t=>t.length>0)}function Ka(e,t,n){let r=e.trim().toLowerCase();if(!qe.includes(r))throw new p(`Invalid graph subcommand "${e}". Use one of: ${qe.join(", ")}.`,m.USAGE);let i=r;if(to.has(i)&&!t?.trim())throw new p(`graph ${i} requires an item id.`,m.USAGE);if(i==="paths"&&!n?.trim())throw new p("graph paths requires a source and a target item id.",m.USAGE);return i}function xt(e){throw e instanceof TypeError?new p(e.message,m.USAGE):e}function kt(e){return{truncated:e.truncated,cost:{visited_nodes:e.visitedNodes,inspected_edges:e.inspectedEdges}}}function eo(e,t){let n=t.trim().toLowerCase();for(let r of e.details)if(r.id.trim().toLowerCase()===n&&!e.missingIdSet.has(r.id.toLowerCase()))return r.id;throw new p(`Item ${t} not found`,m.NOT_FOUND)}function Va(e,t,n){let r={ancestors:Pn,descendants:On,predecessors:qn,successors:Nn}[e],i;try{i=r(n.assembly.graph,t,{...n.kinds===void 0?{}:{kinds:n.kinds},...n.maxDepth===void 0?{}:{maxDepth:n.maxDepth},...n.limit===void 0?{}:{limit:n.limit},...n.after===void 0?{}:{after:n.after}})}catch(s){xt(s)}let o=kt(i.meta);return{subcommand:e,root:t,count:i.value.length,...o,...i.meta.nextCursor===void 0?{}:{next_cursor:i.meta.nextCursor},...n.summary?{}:{ids:i.value}}}function Qa(e,t,n){let r=jn(n.assembly.graph,e,t,{direction:n.direction,...n.kinds===void 0?{}:{kinds:n.kinds},...n.maxDepth===void 0?{}:{maxDepth:n.maxDepth},...n.maxPaths===void 0?{}:{maxPaths:n.maxPaths}});return{subcommand:"paths",root:e,target:t,direction:n.direction,count:r.value.length,...kt(r.meta),...n.summary?{}:{paths:r.value.map(i=>({nodes:i.nodes,kinds:i.edges.map(o=>o.kind),length:i.length}))}}}function Ya(e,t){let n;try{n=Zn(t.assembly.graph,e,{direction:t.direction,...t.kinds===void 0?{}:{kinds:t.kinds},...t.maxDepth===void 0?{}:{maxDepth:t.maxDepth},...t.unbounded?{}:{limit:t.limit??j},...t.after===void 0?{}:{after:t.after}})}catch(r){xt(r)}return{subcommand:"impact",root:e,direction:t.direction,count:n.affected.length,truncated:n.truncated,...n.nextCursor===void 0?{}:{next_cursor:n.nextCursor},cost:{visited_nodes:n.cost.visitedNodes,inspected_edges:n.cost.inspectedEdges},...t.summary?{}:{affected:n.affected}}}function Xa(e){let t=e.assembly.graph,n=e.limit??j,r=be(t,{registry:t.registry()}),i=er(t);return{subcommand:"analyze",node_count:t.nodes().length,edge_count:t.edges().length,edge_basis:"deduplicated_directed",sample_limit:n,execution:{acyclic:r.acyclic,ordered_node_count:r.order.length,layer_count:r.layers.length,frontier_count:r.frontier.length,critical_path_length:r.criticalPathLength,cycle_count:r.cycles.length,...e.summary?{}:{frontier:r.frontier.slice(0,n),critical_path:r.criticalPath.slice(0,n),cycles:r.cycles.slice(0,n)}},knowledge:{component_count:i.components.length,largest_component_size:i.components[0]?.length??0,orphan_count:i.orphans.length,...e.summary?{}:{orphans:i.orphans.slice(0,n),hubs:i.hubs.slice(0,n)}}}}function Ja(e,t){let n=ge(e.assembly,{isTerminal:t,...e.sample===void 0?{}:{maxSampleSize:e.sample},...e.exemptIsolates.length===0?{}:{exemptIsolates:e.exemptIsolates},...e.exemptIsolateTypes.length===0?{}:{isolateExemptTypes:e.exemptIsolateTypes}}),r={},i={},o={},s={};for(let a of n.findings)r[a.severity]=(r[a.severity]??0)+1,i[a.code]=(i[a.code]??0)+1,o[a.severity]=(o[a.severity]??0)+a.count,s[a.code]=(s[a.code]??0)+a.count;return{subcommand:"audit",finding_count:n.findings.length,findings_by_severity:r,findings_by_code:i,affected_subjects_by_severity:o,affected_subjects_by_code:s,profile:n.profile,...e.summary?{}:{findings:n.findings}}}function Za(e){let t=e.limit??j,n={};e.kinds!==void 0&&(n.kinds=e.kinds);let r=Gn(e.assembly.graph,n),i=r.value;return{subcommand:"communities",community_count:i.communities.length,largest_community_size:i.communities[0]?.size??0,iterations:i.iterations,converged:i.converged,truncated:!i.converged||i.communities.length>t,cost:{visited_nodes:r.meta.visitedNodes,inspected_edges:r.meta.inspectedEdges},...e.summary?{}:{communities:i.communities.slice(0,t).map(o=>({representative:o.representative,size:o.size,members:o.members.slice(0,t)}))}}}function ec(e){let t;try{t=he(e.assembly.graph,{...e.kinds===void 0?{}:{kinds:e.kinds},...e.maxDepth===void 0?{}:{maxDepth:e.maxDepth},...e.limit===void 0?{}:{limit:e.limit}})}catch(n){xt(n)}return{subcommand:"redundancy",redundant_count:t.value.length,...kt(t.meta),...e.summary?{}:{redundant:t.value.map(n=>({source:n.edge.source,target:n.edge.target,kind:n.edge.kind,witness:n.witness}))}}}function tc(e,t){let n=t.limit??j,r=Un(t.assembly.graph,e,{direction:t.direction,...t.kinds===void 0?{}:{kinds:t.kinds},...t.maxDepth===void 0?{}:{maxDepth:t.maxDepth}}),i=r.value.rows.filter(o=>o.dominatedCount>0);return{subcommand:"dominators",root:e,direction:t.direction,reachable_count:r.value.reachableCount,bottleneck_count:i.length,truncated:r.meta.truncated||i.length>n,cost:{visited_nodes:r.meta.visitedNodes,inspected_edges:r.meta.inspectedEdges},...t.summary?{}:{bottlenecks:i.slice(0,n).map(o=>({id:o.id,idom:o.idom,dominated_count:o.dominatedCount}))}}}function nc(e){let t=e.limit??j,n=Ui(e.assembly.graph),r=n.rows.filter(i=>i.critical).length;return{subcommand:"slack",acyclic:n.acyclic,makespan:n.makespan,scheduled_count:n.scheduledCount,critical_count:r,critical_path_length:n.criticalPathLength,cycle_count:n.cycles.length,truncated:n.rows.length>t,...e.summary?{}:{critical_path:n.criticalPath,rows:n.rows.slice(0,t).map(i=>({id:i.id,earliest_start:i.earliestStart,latest_start:i.latestStart,slack:i.slack,critical:i.critical}))}}}function rc(e){let t=e.limit??j,n=ji(e.assembly.graph,e.kinds===void 0?{}:{kinds:e.kinds}),r=n.value;return{subcommand:"centrality",node_count:r.nodeCount,edge_count:r.edgeCount,edge_basis:"simple_undirected",truncated:r.rows.length>t,cost:{visited_nodes:n.meta.visitedNodes,inspected_edges:n.meta.inspectedEdges},...e.summary?{}:{rows:r.rows.slice(0,t).map(i=>({id:i.id,degree:i.degree,in_degree:i.inDegree,out_degree:i.outDegree,betweenness:i.betweenness,closeness:i.closeness}))}}}function ic(e){let t=e.limit??j,n=Gi(e.assembly.graph,e.kinds===void 0?{}:{kinds:e.kinds}),{articulationPoints:r,bridges:i}=n.value;return{subcommand:"articulation",articulation_count:r.length,bridge_count:i.length,truncated:r.length>t||i.length>t,cost:{visited_nodes:n.meta.visitedNodes,inspected_edges:n.meta.inspectedEdges},...e.summary?{}:{articulation_points:r.slice(0,t),bridges:i.slice(0,t)}}}function oc(e,t){let n=e.limit??j,r=Xi(e.assembly,{isTerminal:t,redundancyLimit:n,...e.sample===void 0?{}:{maxSampleSize:e.sample},...e.exemptIsolates.length===0?{}:{exemptIsolates:e.exemptIsolates},...e.exemptIsolateTypes.length===0?{}:{isolateExemptTypes:e.exemptIsolateTypes}}),i={},o={};for(let s of r.steps)i[s.op]=(i[s.op]??0)+1,o[s.code]=(o[s.code]??0)+1;return{subcommand:"plan",step_count:r.steps.length,steps_by_op:i,steps_by_code:o,finding_count:r.report.findings.length,truncated:r.truncated||r.steps.length>n,cost:{visited_nodes:r.cost.visitedNodes,inspected_edges:r.cost.inspectedEdges},...e.summary?{}:{steps:r.steps.slice(0,n)}}}function no(e,t,n,r){return JSON.stringify({subcommand:e,root:t??null,target:n??null,kinds:r.kinds??null,maxDepth:r.maxDepth??null,limit:r.limit??null,after:r.after??null,direction:r.direction,maxPaths:r.maxPaths??null,sample:r.sample??null,exemptIsolates:[...new Set(r.exemptIsolates.map(i=>i.toLowerCase()))].sort(),exemptIsolateTypes:[...new Set(r.exemptIsolateTypes.map(i=>i.toLowerCase()))].sort(),summary:r.summary,unbounded:r.unbounded})}function ro(e,t,n,r,i){return e==="analyze"?Xa(r):e==="audit"?Ja(r,i):e==="plan"?oc(r,i):e==="communities"?Za(r):e==="redundancy"?ec(r):e==="dominators"?tc(t,r):e==="slack"?nc(r):e==="centrality"?rc(r):e==="articulation"?ic(r):e==="paths"?Qa(t,n,r):e==="impact"?Ya(t,r):Va(e,t,r)}function sc(e,t){if(e!=="index"&&(t.rebuild===!0||t.clear===!0))throw new p("--rebuild and --clear apply only to graph index.",m.USAGE);if(e!=="audit"&&t.saveBaseline===!0)throw new p("--save-baseline applies only to graph audit.",m.USAGE);if(e==="slack"&&t.kind!==void 0)throw new p("graph slack analyzes every ordering kind; --kind is not supported.",m.USAGE);if(t.rebuild===!0&&t.clear===!0)throw new p("graph index accepts either --rebuild or --clear, not both.",m.USAGE);if(e==="impact"&&t.full===!0&&t.limit!==void 0)throw new p("graph impact accepts either --full or --limit, not both.",m.USAGE)}async function ac(e,t,n,r,i,o){let s="status";if(o.clear===!0&&(await vt(e),s="cleared"),o.rebuild===!0){await vt(e);let c=await bt(e,t),d={assembly:n.assembly,direction:"both",exemptIsolates:[],exemptIsolateTypes:[],saveBaseline:!1,summary:!0,unbounded:!1};for(let l of["analyze","audit"])await Et(e,t,c,no(l,void 0,void 0,d),ro(l,void 0,void 0,d,i));s="rebuilt"}let a=await Ki(e,t);return{subcommand:"index",action:s,state:a.exists?a.fresh?"fresh":"stale":"absent",entry_count:a.entry_count,item_count:r,min_items_threshold:_t,persist_enabled:St(r,a.exists),current_fingerprint:t.slice(0,12),...a.saved_at===void 0?{}:{saved_at:a.saved_at},...a.bytes===void 0?{}:{bytes:a.bytes}}}async function cc(e,t,n,r){let i={saved_at:new Date().toISOString(),fingerprint:t,affected_subjects_by_code:n.affected_subjects_by_code,profile:n.profile},o=await Vi(e);return r&&await Qi(e,i),o===void 0?n:{...n,baseline:Hn(o,i)}}async function dc(e,t,n,r,i){try{await Et(e,t,n,r,i)}catch{}}async function ou(e,t,n,r,i){let o=Ka(e,t,n);zt(r.summary===!0,r.full===!0,"--summary");let s=v(process.cwd(),i.path);if(!await k(I(s)))throw new p(`Tracker is not initialized at ${s}. Run pm init first.`,m.NOT_FOUND);let a=await A(s),c=P(a,R()),d=await ce(s,a.item_format,c.type_to_folder,void 0,a.schema),l=O(a.schema),u=io=>U(io,l);sc(o,r);let f=Dn(),g=Qn(r.kind,f),h=Bn().lookup(s,Wn(d,u,f),()=>Ln(d,u,f)),y={assembly:h.assembly,...g===void 0?{}:{kinds:g},maxDepth:Kn(r.maxDepth),limit:ye(r.limit,"limit"),after:r.after?.trim()||void 0,direction:Vn(r.direction),maxPaths:ye(r.maxPaths,"max-paths"),sample:ye(r.sample,"sample"),exemptIsolates:Zi(r.exemptIsolate),exemptIsolateTypes:Zi(r.exemptIsolateType),saveBaseline:r.saveBaseline===!0,summary:r.summary===!0,unbounded:r.full===!0};if(o==="index")return Ji(await ac(s,h.fingerprint,y,d.length,u,r),!1);let w=to.has(o)?eo(y.assembly,t):void 0,_=o==="paths"?eo(y.assembly,n):void 0,b=no(o,w,_,y),C=await bt(s,h.fingerprint),S=C.results[b],x=h.memoize(b,()=>S!==void 0?structuredClone(S):ro(o,w,_,y,u)),E=St(d.length,C.exists);!x.reused&&S===void 0&&E&&await dc(s,h.fingerprint,C,b,x.value);let D=x.value.subcommand==="audit"?await cc(s,h.fingerprint,x.value,y.saveBaseline):x.value;return D.cache={fingerprint:h.fingerprint.slice(0,12),assembly:h.assemblyReused?"hit":"miss",result:x.reused?"hit":"miss",durable:S!==void 0?"hit":E?"miss":"off"},Ji(D,y.summary,"result_rows")}export{be as a,Zn as b,er as c,fc as d,yc as e,_c as f,Ic as g,mr as h,pr as i,hr as j,Ao as k,gr as l,zc as m,Hc as n,q as o,Bo as p,Se as q,Xe as r,J as s,Z as t,es as u,xr as v,nt as w,rt as x,it as y,ot as z,Br as A,Kr as B,Qd as C,ki as D,da as E,al as F,Ia as G,bl as H,El as I,ji as J,Gi as K,Ui as L,$i as M,_t as N,ee as O,Bi as P,bt as Q,Et as R,vt as S,Ki as T,St as U,Vi as V,Qi as W,Xi as X,Ka as Y,ou as Z};
|
|
5
|
-
//# sourceMappingURL=chunk-
|
|
5
|
+
//# sourceMappingURL=chunk-E7BFPLUZ.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{g as re,i as de,k as A}from"./chunk-L3AZOELJ.js";import{A as y,Af as ne,Bb as J,C as _,Da as X,Kd as Y,La as q,Lf as se,Mf as oe,Nc as V,Oa as H,Of as ie,Pe as C,Qd as $,Sd as Z,Se as N,Td as ee,Wd as te,b as z,cd as O,ib as v,lc as Q}from"./chunk-GE4KCSZP.js";import{createHash as Te}from"node:crypto";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="dea35fb9-9f9f-56ce-afc0-f4dc993012c3")}catch{}})();var be=64,xe=8;function Re(e,t){let s=(e.dependencies??[]).map(n=>{if(typeof n!="object"||n===null)return"";let o=n;return`${typeof o.kind=="string"?o.kind:"related"}:${typeof o.id=="string"?o.id:""}`}).sort().join(",");return[e.id,e.title,e.status,t(e.status)?"1":"0",typeof e.type=="string"?e.type.trim():"",e.parent??"",e.blocked_by??"",s].join("\0")}function ae(e,t=n=>n==="closed"||n==="canceled",s=v()){let n=e.filter(i=>typeof i?.id=="string"&&i.id.trim().length>0).map(i=>Re(i,t)).sort(),o=s.list().map(i=>J(i)).sort();return Te("sha256").update(n.join("")).update("").update(o.join("")).digest("hex")}function ce(e,t,s){let n=t??s;if(!Number.isInteger(n)||n<1)throw new TypeError(`Invalid ${e} bound: ${String(t)}`);return n}var M=class{#e=new Map;#t;#n;constructor(t={}){this.#t=ce("maxResultsPerWorkspace",t.maxResultsPerWorkspace,be),this.#n=ce("maxWorkspaces",t.maxWorkspaces,xe)}lookup(t,s,n){let o=this.#e.get(t),i=!0;(o===void 0||o.fingerprint!==s)&&(o={fingerprint:s,assembly:n(),results:new Map},i=!1,!this.#e.has(t)&&this.#e.size>=this.#n&&this.#e.delete(this.#e.keys().next().value)),this.#e.delete(t),this.#e.set(t,o);let d=o,r=this.#t;return{assembly:d.assembly,assemblyReused:i,fingerprint:s,memoize(c,f){let a=d.results.get(c);if(a!==void 0||d.results.has(c))return d.results.delete(c),d.results.set(c,a),{value:structuredClone(a),reused:!0};let l=f();return d.results.size>=r&&d.results.delete(d.results.keys().next().value),d.results.set(c,structuredClone(l)),{value:l,reused:!1}}}}clear(){this.#e.clear()}},ue=new M;function le(){return ue}function ut(){ue.clear()}(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]="31a800f7-1374-5e7c-ad23-ae3d8ebcebe0")}catch{}})();var Le=["prerequisite","dependent","ancestor","descendant","provenance","related"],Ce=new TextEncoder;function P(e,t,s){let n=e??t;if(!Number.isInteger(n)||n<1)throw new TypeError(`Relationship context ${s} must be positive`);return n}function S(e){return Math.max(1,Math.ceil(Ce.encode(JSON.stringify(e)).byteLength/4))}function U(e,t,s){let n=s.resolve(e.kind);if(n?.ordering){let i=(n.precedence??"source_before_target")==="source_before_target"?e.source:e.target;return t===i?"prerequisite":"dependent"}if(n?.hierarchy){let i=(n.hierarchyDirection??"source_parent")==="source_parent"?e.source:e.target;return t===i?"ancestor":"descendant"}return e.kind==="discovered_from"||e.kind==="incident_from"?"provenance":"related"}function Se(e,t,s,n){let o=e.filter(i=>i.source===t&&i.target===s||i.target===t&&i.source===s).map(i=>U(i,s,n));return[...new Set(o)].sort()}function De(e){return Le.find(t=>e.includes(t))}function Ie(e,t,s,n){let o=n.direction??"both",i=n.maxDepth??3;if(!Number.isInteger(i)||i<0)throw new TypeError("Relationship context maxDepth must be non-negative");let d=new Set([t]),r=[{id:t,distance:0}],c=[],f=0,a=!1;for(let l=0;l<r.length;l+=1){n.signal?.throwIfAborted();let u=r[l];if(u.distance>=i&&a)continue;let g=e.neighborEdges(u.id,{direction:o,kinds:n.kinds,signal:n.signal});if(f+=g.meta.inspectedEdges,u.distance>=i){g.value.some(m=>!d.has(m.id))&&(a=!0);continue}for(let{id:m,edge:p}of g.value){if(d.has(m))continue;d.add(m);let h={id:m,distance:u.distance+1,via:u.id,role:U(p,m,s)};c.push(h),r.push(h)}}return c.sort((l,u)=>l.distance-u.distance||l.id.localeCompare(u.id)),{rows:c,visitedNodes:r.length,inspectedEdges:f,depthTruncated:a}}function Be(e,t,s,n){let o={prerequisite:0,dependent:0,ancestor:0,descendant:0,provenance:0,related:0},i=e.neighborEdges(t,{direction:n.direction??"both",kinds:n.kinds,signal:n.signal}).value;for(let{id:d,edge:r}of i)o[U(r,d,s)]+=1;return{directEdges:o,directTotal:i.length,rootEdges:i.map(({edge:d})=>d)}}function Oe(e){let t=[],s=e.initialTokens;for(let n of e.candidates){if(t.length>=e.nodeLimit)break;let o=n.distance===1?Se(e.rootEdges,e.rootId,n.id,e.registry):[],i={...e.details.get(n.id)??{id:n.id},distance:n.distance,role:o.length>0?De(o):n.role,via:n.via,reasons:o.length>0?o:[`${n.role} via ${n.via} (depth ${n.distance})`]},d=S(i);if(s+d>e.tokenBudget)break;t.push(i),s+=d}if(e.candidates.length>0&&t.length===0)throw new TypeError("Relationship context tokenBudget cannot fit one node");return{nodes:t,usedTokens:s}}function $e(e){let t=e.options.kinds?new Set(e.options.kinds.map(i=>e.registry.require(i).kind)):void 0,s=e.graph.edges().filter(i=>{if(!e.included.has(i.source)||!e.included.has(i.target))return!1;if(t===void 0||t.has(i.kind))return!0;let d=e.registry.resolve(i.kind)?.inverse;return d!==void 0&&t.has(d)}),n=[],o=e.initialTokens;for(let i of s){if(n.length>=e.edgeLimit)break;let d=S(i);if(o+d>e.tokenBudget)break;n.push(i),o+=d}return{edges:n,usedTokens:o,candidateCount:s.length}}function fe(e,t,s,n={}){if(!e.nodes().includes(t))throw new TypeError(`Relationship node not found: ${t}`);let o=P(n.nodeLimit,20,"nodeLimit"),i=P(n.edgeLimit,40,"edgeLimit"),d=P(n.tokenBudget,1200,"tokenBudget"),r=n.registry??v(),c=new Map(s.map(T=>[T.id,T])),f=c.get(t)??{id:t},{evidence:a=[],...l}=f,u=[...a],g=Ie(e,t,r,n),{rootEdges:m,...p}=Be(e,t,r,n),h=Z("relationship-context",{rootId:t,direction:n.direction??"both",kinds:[...n.kinds??[]].sort(),maxDepth:n.maxDepth??3}),k=te(g.rows,n.cursor,h,({id:T})=>T),E=g.rows.slice(k),w=S(l)+S(u);if(w>d)throw new TypeError("Relationship context tokenBudget cannot fit root and evidence");let G=Oe({candidates:E,details:c,rootEdges:m,rootId:t,registry:r,nodeLimit:o,tokenBudget:d,initialTokens:w}),{nodes:R}=G,we=new Set([t,...R.map(({id:T})=>T)]),j=$e({graph:e,included:we,options:n,registry:r,edgeLimit:i,tokenBudget:d,initialTokens:G.usedTokens}),{edges:D,usedTokens:ve}=j,L=k+R.length,I=L<g.rows.length,W=R.at(-1),B=j.candidateCount-D.length,K=g.depthTruncated||I||B>0,Ee={rootId:t,...l.status===void 0?{}:{rootStatus:l.status},...p,discoveredNodes:g.rows.length,returnedNodes:R.length,returnedEdges:D.length,omittedNodes:g.rows.length-L,omittedEdges:B,evidenceCount:u.length,hasMore:I};return{root:l,summary:Ee,nodes:R,edges:D,evidence:u,meta:{exact:!0,truncated:K,completeness:K?"truncated":"complete",nodeLimit:o,edgeLimit:i,tokenBudget:d,usedTokens:ve,visitedNodes:g.visitedNodes,inspectedEdges:g.inspectedEdges,omittedNodes:g.rows.length-L,omittedEdges:B,...I&&W?{nextCursor:ee(h,W.id,L-1)}:{}}}}(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]="a3535267-c69a-5a44-bdf9-02925e02aaeb")}catch{}})();var Ne=["tree","graph","context"],Ae=["none","repeated"],Me=["outgoing","incoming","both"],Pe=32,Ue=200,Fe=400,Ge=16e3;function je(e){let t=e?.trim().toLowerCase()??"tree";if(Ne.includes(t))return t;throw new _(`Invalid --format value "${e}". Use "tree", "graph", or "context".`,y.USAGE)}function b(e,t){if(e===void 0)return;let s=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(s)||s<1)throw new _(`Invalid --${t} value "${e}". Use a positive integer.`,y.USAGE);return s}function pe(e){if(e===void 0)return;let t=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(t)||t<0)throw new _(`Invalid --max-depth value "${e}". Use a non-negative integer.`,y.USAGE);return t}function We(e){let t=e?.trim().toLowerCase()??"none";if(Ae.includes(t))return t;throw new _(`Invalid --collapse value "${e}". Use "none" or "repeated".`,y.USAGE)}function Ke(e){let t=e?.trim().toLowerCase()??"both";if(Me.includes(t))return t;throw new _(`Invalid --direction value "${e}". Use "outgoing", "incoming", or "both".`,y.USAGE)}function ze(e,t=v()){if(e===void 0)return;let s=(Array.isArray(e)?e:[e]).flatMap(o=>o.split(",")).map(o=>o.trim()).filter(o=>o.length>0);if(s.length===0)return;let n=new Set;for(let o of s){let i=t.resolve(o);if(!i){let d=t.list().map(r=>r.kind).join(", ");throw new _(`Invalid --kind value "${o}". Registered kinds: ${d}.`,y.USAGE)}n.add(i.kind)}return[...n].sort()}function Xe(e){if(!e||e.length===0)return[];let t=e.map(({id:n,kind:o})=>({id:n.trim(),kind:o.trim().toLowerCase()})).sort((n,o)=>{let i=n.kind.localeCompare(o.kind);return i!==0?i:n.id.localeCompare(o.id)}),s=new Map;for(let n of t){let o=`${n.kind.toLowerCase()}::${n.id.toLowerCase()}`;s.has(o)||s.set(o,{id:n.id,kind:n.kind})}return[...s.values()]}function qe(e){return{id:e.id,title:e.title,type:e.type,status:e.status,dependencies:Xe(e.dependencies)}}function He(e){return C(new TextEncoder().encode(JSON.stringify({...e,dependencies:void 0})).byteLength)}function Je(e,t,s,n,o,i,d,r,c){for(let f of t.dependencies){let a=Math.max(1,Math.ceil(JSON.stringify({from:e.id,to:f.id,kind:f.kind}).length/3));if(r.nodes>=r.nodeLimit){e.truncated=!0,r.reasons.add("node_limit");break}if(r.edges>=r.edgeLimit){e.truncated=!0,r.reasons.add("edge_limit");break}if(r.estimatedTokens+a>=r.tokenBudget){e.truncated=!0,r.reasons.add("token_budget");break}r.edges+=1,r.estimatedTokens+=a,e.dependencies.push(ge(f.id,s,n,o,i,d,r,c+1,f.kind))}}function Qe(e,t,s,n,o,i,d,r){return d.estimatedTokens>=d.tokenBudget&&t?.dependencies.length?(e.truncated=!0,d.reasons.add("token_budget"),!0):!t||e.cycle?!0:n!==void 0&&r>=n?(t.dependencies.length>0&&(e.truncated=!0,d.reasons.add("max_depth")),!0):o==="repeated"&&i.has(s)?(e.collapsed=!0,!0):!1}function ge(e,t,s,n,o,i,d,r=0,c){let f=e.trim().toLowerCase(),a=t.get(f),l={id:a?.id??e,title:a?.title,type:a?.type,status:a?.status,via:c,missing:!a,cycle:s.has(f),dependencies:[]};if(d.nodes+=1,d.estimatedTokens+=He(l),Qe(l,a,f,n,o,i,d,r))return l;o==="repeated"&&i.add(f);let u=new Set(s);return u.add(f),Je(l,a,t,u,n,o,i,d,r),l}function me(e,t){return!e||e.missing&&!t.missing?t:{...e,title:e.title??t.title,type:e.type??t.type,status:e.status??t.status}}function Ve(e){let t=new Map,s=new Map,n=[e];for(;n.length>0;){let r=n.pop();t.set(r.id,me(t.get(r.id),{id:r.id,title:r.title,type:r.type,status:r.status,missing:r.missing}));for(let c of r.dependencies){t.set(c.id,me(t.get(c.id),{id:c.id,title:c.title,type:c.type,status:c.status,missing:c.missing}));let f=c.via??"related",a=`${r.id}::${c.id}::${f}`;s.has(a)||s.set(a,{from:r.id,to:c.id,kind:f}),c.cycle||n.push(c)}}let o=[...t.values()].sort((r,c)=>r.id.localeCompare(c.id)),i=[...s.values()].sort((r,c)=>{let f=r.from.localeCompare(c.from);if(f!==0)return f;let a=r.to.localeCompare(c.to);return a!==0?a:r.kind.localeCompare(c.kind)}),d=o.filter(r=>r.missing).map(r=>r.id);return{root_id:e.id,nodes:o,edges:i,missing_ids:d}}function he(e,t,s){let n=new Set,o=new Set,i=new Set,d=new Set,r=[{id:e,depth:0}],c=0;for(;c<r.length;){let f=r[c++],a=f.id.trim().toLowerCase();n.add(a);let l=t.get(a);if(!l){i.add(a);continue}if(!(s!==void 0&&f.depth>=s)&&!d.has(a)){d.add(a);for(let u of l.dependencies)o.add(`${a}::${u.id.trim().toLowerCase()}::${u.kind}`),r.push({id:u.id,depth:f.depth+1})}}return{node_count:n.size,edge_count:o.size,edge_basis:"deduplicated_directed",missing_count:i.size}}function ke(e,t=v()){let s=pe(e.maxDepth),n=b(e.nodeLimit,"node-limit"),o=b(e.edgeLimit,"edge-limit"),i=b(e.tokenBudget,"token-budget"),d=ze(e.kind,t);return{direction:Ke(e.direction),...d===void 0?{}:{kinds:d},...s===void 0?{}:{maxDepth:s},...n===void 0?{}:{nodeLimit:n},...o===void 0?{}:{edgeLimit:o},...i===void 0?{}:{tokenBudget:i},...e.cursor?.trim()?{cursor:e.cursor.trim()}:{}}}function ye(e,t,s,n){return fe(e.graph,t,e.details.map(o=>o.id===t&&n.length>0?{...o,evidence:n}:o),s)}function Bt(e,t,s,n=[]){let o=A(t);return ye(o,e,ke(s,o.graph.registry()),n)}function F(e,t,s,n){for(let o of s.slice(0,n)){let i=o?.trim();i&&e.push(`${t}:${i}`)}}async function Ye(e,t,s,n){let o=await se(e,t,s.id_prefix,s.item_format,n);if(!o)return[];let{document:i}=await oe(o,{schema:s.schema}),d=i.metadata,r=d.files??[],c=d.tests??[],f=d.docs??[],a=[["files",r.length],["tests",c.length],["docs",f.length],["comments",(d.comments??[]).length],["notes",(d.notes??[]).length],["learnings",(d.learnings??[]).length]];if(a.every(([,u])=>u===0))return[];let l=[`linked:${a.map(([u,g])=>`${u}=${g}`).join(",")}`];return F(l,"file",r.map(u=>u.path),3),F(l,"test",c.map(u=>u.command??u.path),2),F(l,"doc",f.map(u=>u.path),2),l}function Ze(e){let{canonicalId:t,context:s,missingCount:n,missingReferences:o,referenceLimit:i,summaryOnly:d}=e;return{id:t,format:"context",node_count:s.nodes.length+1,edge_count:s.edges.length,edge_basis:"deduplicated_directed",missing_count:n,missing_scope:"traversal",missing_reference_count:o.length,...d?{}:{missing_references:o.slice(0,i),context:s}}}function et(e){let{row:t,missingReachableSet:s,packetIds:n,filteredKinds:o,registry:i}=e;if(t.no_active_blocker_sentinel||!s.has(t.target_id.trim().toLowerCase())||!n.has(t.holder_id))return!1;if(o===void 0)return!0;let d=i.resolve(t.kind);return d!==void 0&&(o.has(d.kind)||d.inverse!==void 0&&o.has(d.inverse))}function _e(e,t,s){let n;for(;;){let o=C(new TextEncoder().encode(N($("deps",e),t)).byteLength);if(o===n)return o;s(o),n=o}}function tt(e){return e instanceof TypeError&&e.message.startsWith("Relationship context tokenBudget cannot fit ")}function nt(e){try{return ye(e.assembly,e.canonicalId,{...e.contextOptions,...e.internalTokenBudget===void 0?{}:{tokenBudget:e.internalTokenBudget}},e.rootEvidence)}catch(t){if(e.smallestResult!==void 0&&tt(t))return e.smallestResult;throw t}}function st(e){let{assembly:t,canonicalId:s,contextOptions:n,rootEvidence:o,summaryOnly:i,outputFormat:d,missingCount:r,missingReferences:c}=e,a=n.edgeLimit??40,l=n.tokenBudget,u,g;for(;;){let m=nt({assembly:t,canonicalId:s,contextOptions:n,internalTokenBudget:l,rootEvidence:o,smallestResult:g});if("format"in m)return m;let p=m;u??=p.meta.tokenBudget,l??=u;let h=Ze({canonicalId:s,context:p,missingCount:r,missingReferences:c,referenceLimit:a,summaryOnly:i});if(g=h,i||(p.meta.tokenBudget=u,p.meta.usedTokens=_e(x(h,!1),d,w=>{p.meta.usedTokens=w}),p.meta.usedTokens<=u))return h;if(a>0){a-=1;continue}let k=l,E=k*u/p.meta.usedTokens;l=Math.min(k-1,Math.max(1,Math.floor(E*.9)))}}function ot(e){let{assembly:t,canonicalId:s,options:n,rootEvidence:o,summaryOnly:i,outputFormat:d}=e,r=ke(n,t.graph.registry()),c=t.graph.closure(s,{direction:r.direction,...r.kinds===void 0?{}:{kinds:r.kinds},maxDepth:r.maxDepth??3}),f=c.value.filter(p=>t.missingIdSet.has(p.toLowerCase())),a=new Set(f.map(p=>p.toLowerCase())),l=t.graph.registry(),u=r.kinds?new Set(r.kinds.map(p=>l.require(p).kind)):void 0,g=new Set([s,...c.value]),m=[...t.dangling.active,...t.dangling.legacy_terminal].filter(p=>et({row:p,missingReachableSet:a,packetIds:g,filteredKinds:u,registry:l}));return st({assembly:t,canonicalId:s,contextOptions:r,rootEvidence:o,summaryOnly:i,outputFormat:d,missingCount:f.length,missingReferences:m})}function it(e){let t=[e],s;for(;t.length>0;){let n=t.pop();n.dependencies.length>0&&(s=n,t.push(...n.dependencies))}return s?(s.dependencies.pop(),s.truncated=!0,!0):!1}function rt(e,t,s,n,o,i,d){let r=o??Pe,c=b(s.nodeLimit,"node-limit")??Ue,f=b(s.edgeLimit,"edge-limit")??Fe,a=b(s.tokenBudget,"token-budget")??Ge,l={nodeLimit:c,edgeLimit:f,tokenBudget:a,nodes:0,edges:0,estimatedTokens:0,reasons:new Set},u=ge(e,n,new Set,r,t==="graph"?"repeated":i,new Set,l),g=he(e,n,void 0),m;for(;;){let p=Ve(u),h=l.reasons.size===0?void 0:{reasons:[...l.reasons].sort(),limits:{max_depth:r,node_limit:c,edge_limit:f,token_budget:a},estimated_tokens:0,total_node_count:g.node_count,total_edge_count:g.edge_count,omitted_node_count:Math.max(0,g.node_count-p.nodes.length),omitted_edge_count:Math.max(0,g.edge_count-p.edges.length)},k={id:e,format:t,node_count:p.nodes.length,edge_count:p.edges.length,edge_basis:"deduplicated_directed",missing_count:p.missing_ids.length,...h?{truncation:h}:{}};if(m=t==="tree"?{...k,tree:u}:{...k,graph:p},(m.truncation===void 0?C(new TextEncoder().encode(N($("deps",x(m,!1)),d)).byteLength):_e(x(m,!1),d,w=>{m.truncation.estimated_tokens=w}))<=a)return m;if(!it(u))return l.reasons.add("token_budget"),m;l.reasons.add("token_budget")}}function x(e,t){let s={name:e.format==="tree"?"dependency_tree":e.format==="graph"?"dependency_graph":"relationship_context",restore_with:"--full"};return{...e,projection:{mode:t?"summary":"full",declared_field_groups:[s],included_field_groups:t?[]:[s.name]}}}async function Ot(e,t,s){let n=q(process.cwd(),s.path);if(!await z(H(n)))throw new _(`Tracker is not initialized at ${n}. Run pm init first.`,y.NOT_FOUND);let o=je(t.format),i=pe(t.maxDepth),d=We(t.collapse);Y(t.summary===!0,t.full===!0,"--summary");let r=t.summary===!0,c=await ne(n),f=X(c,Q()),a=await ie(n,c.item_format,f.type_to_folder,void 0,c.schema),l=V(c.schema),u=new Map(a.map(m=>[m.id.trim().toLowerCase(),qe(m)])),g=de(a,m=>O(m,l));for(let m of[...g.active,...g.legacy_terminal]){let p=u.get(m.holder_id.trim().toLowerCase()),h=m.kind.trim().toLowerCase();p&&!p.dependencies.some(k=>k.id.trim().toLowerCase()===m.target_id.trim().toLowerCase()&&k.kind===h)&&p.dependencies.push({id:m.target_id,kind:h})}if(!u.has(e.trim().toLowerCase()))throw new _(`Item ${e} not found`,y.NOT_FOUND);if(o==="context"){let m=u.get(e.trim().toLowerCase()).id,p=r?[]:await Ye(n,m,c,f.type_to_folder),h=w=>O(w,l),k=re(),E=le().lookup(n,ae(a,h,k),()=>A(a,h,k));return x(ot({assembly:E.assembly,canonicalId:m,options:t,rootEvidence:p,summaryOnly:r,outputFormat:s.json===!0?"json":"toon"}),r)}return r?x({id:e,format:o,...he(e,u,i)},!0):x(rt(e,o,t,u,i,d,s.json===!0?"json":"toon"),!1)}export{ae as a,M as b,le as c,ut as d,fe as e,Ne as f,Ae as g,Me as h,b as i,pe as j,Ke as k,ze as l,Bt as m,Ot as n};
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{g as re,i as de,k as A}from"./chunk-PECV7L5T.js";import{A as y,Af as ne,Bb as J,C as _,Da as X,Kd as Y,La as q,Lf as se,Mf as oe,Nc as V,Oa as H,Of as ie,Pe as C,Qd as $,Sd as Z,Se as N,Td as ee,Wd as te,b as z,cd as O,jb as v,lc as Q}from"./chunk-HS7OVAUN.js";import{createHash as Te}from"node:crypto";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="dea35fb9-9f9f-56ce-afc0-f4dc993012c3")}catch{}})();var be=64,xe=8;function Re(e,t){let s=(e.dependencies??[]).map(n=>{if(typeof n!="object"||n===null)return"";let o=n;return`${typeof o.kind=="string"?o.kind:"related"}:${typeof o.id=="string"?o.id:""}`}).sort().join(",");return[e.id,e.title,e.status,t(e.status)?"1":"0",typeof e.type=="string"?e.type.trim():"",e.parent??"",e.blocked_by??"",s].join("\0")}function ae(e,t=n=>n==="closed"||n==="canceled",s=v()){let n=e.filter(i=>typeof i?.id=="string"&&i.id.trim().length>0).map(i=>Re(i,t)).sort(),o=s.list().map(i=>J(i)).sort();return Te("sha256").update(n.join("")).update("").update(o.join("")).digest("hex")}function ce(e,t,s){let n=t??s;if(!Number.isInteger(n)||n<1)throw new TypeError(`Invalid ${e} bound: ${String(t)}`);return n}var M=class{#e=new Map;#t;#n;constructor(t={}){this.#t=ce("maxResultsPerWorkspace",t.maxResultsPerWorkspace,be),this.#n=ce("maxWorkspaces",t.maxWorkspaces,xe)}lookup(t,s,n){let o=this.#e.get(t),i=!0;(o===void 0||o.fingerprint!==s)&&(o={fingerprint:s,assembly:n(),results:new Map},i=!1,!this.#e.has(t)&&this.#e.size>=this.#n&&this.#e.delete(this.#e.keys().next().value)),this.#e.delete(t),this.#e.set(t,o);let d=o,r=this.#t;return{assembly:d.assembly,assemblyReused:i,fingerprint:s,memoize(c,f){let a=d.results.get(c);if(a!==void 0||d.results.has(c))return d.results.delete(c),d.results.set(c,a),{value:structuredClone(a),reused:!0};let l=f();return d.results.size>=r&&d.results.delete(d.results.keys().next().value),d.results.set(c,structuredClone(l)),{value:l,reused:!1}}}}clear(){this.#e.clear()}},ue=new M;function le(){return ue}function ut(){ue.clear()}(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]="31a800f7-1374-5e7c-ad23-ae3d8ebcebe0")}catch{}})();var Le=["prerequisite","dependent","ancestor","descendant","provenance","related"],Ce=new TextEncoder;function P(e,t,s){let n=e??t;if(!Number.isInteger(n)||n<1)throw new TypeError(`Relationship context ${s} must be positive`);return n}function S(e){return Math.max(1,Math.ceil(Ce.encode(JSON.stringify(e)).byteLength/4))}function U(e,t,s){let n=s.resolve(e.kind);if(n?.ordering){let i=(n.precedence??"source_before_target")==="source_before_target"?e.source:e.target;return t===i?"prerequisite":"dependent"}if(n?.hierarchy){let i=(n.hierarchyDirection??"source_parent")==="source_parent"?e.source:e.target;return t===i?"ancestor":"descendant"}return e.kind==="discovered_from"||e.kind==="incident_from"?"provenance":"related"}function Se(e,t,s,n){let o=e.filter(i=>i.source===t&&i.target===s||i.target===t&&i.source===s).map(i=>U(i,s,n));return[...new Set(o)].sort()}function De(e){return Le.find(t=>e.includes(t))}function Ie(e,t,s,n){let o=n.direction??"both",i=n.maxDepth??3;if(!Number.isInteger(i)||i<0)throw new TypeError("Relationship context maxDepth must be non-negative");let d=new Set([t]),r=[{id:t,distance:0}],c=[],f=0,a=!1;for(let l=0;l<r.length;l+=1){n.signal?.throwIfAborted();let u=r[l];if(u.distance>=i&&a)continue;let g=e.neighborEdges(u.id,{direction:o,kinds:n.kinds,signal:n.signal});if(f+=g.meta.inspectedEdges,u.distance>=i){g.value.some(m=>!d.has(m.id))&&(a=!0);continue}for(let{id:m,edge:p}of g.value){if(d.has(m))continue;d.add(m);let h={id:m,distance:u.distance+1,via:u.id,role:U(p,m,s)};c.push(h),r.push(h)}}return c.sort((l,u)=>l.distance-u.distance||l.id.localeCompare(u.id)),{rows:c,visitedNodes:r.length,inspectedEdges:f,depthTruncated:a}}function Be(e,t,s,n){let o={prerequisite:0,dependent:0,ancestor:0,descendant:0,provenance:0,related:0},i=e.neighborEdges(t,{direction:n.direction??"both",kinds:n.kinds,signal:n.signal}).value;for(let{id:d,edge:r}of i)o[U(r,d,s)]+=1;return{directEdges:o,directTotal:i.length,rootEdges:i.map(({edge:d})=>d)}}function Oe(e){let t=[],s=e.initialTokens;for(let n of e.candidates){if(t.length>=e.nodeLimit)break;let o=n.distance===1?Se(e.rootEdges,e.rootId,n.id,e.registry):[],i={...e.details.get(n.id)??{id:n.id},distance:n.distance,role:o.length>0?De(o):n.role,via:n.via,reasons:o.length>0?o:[`${n.role} via ${n.via} (depth ${n.distance})`]},d=S(i);if(s+d>e.tokenBudget)break;t.push(i),s+=d}if(e.candidates.length>0&&t.length===0)throw new TypeError("Relationship context tokenBudget cannot fit one node");return{nodes:t,usedTokens:s}}function $e(e){let t=e.options.kinds?new Set(e.options.kinds.map(i=>e.registry.require(i).kind)):void 0,s=e.graph.edges().filter(i=>{if(!e.included.has(i.source)||!e.included.has(i.target))return!1;if(t===void 0||t.has(i.kind))return!0;let d=e.registry.resolve(i.kind)?.inverse;return d!==void 0&&t.has(d)}),n=[],o=e.initialTokens;for(let i of s){if(n.length>=e.edgeLimit)break;let d=S(i);if(o+d>e.tokenBudget)break;n.push(i),o+=d}return{edges:n,usedTokens:o,candidateCount:s.length}}function fe(e,t,s,n={}){if(!e.nodes().includes(t))throw new TypeError(`Relationship node not found: ${t}`);let o=P(n.nodeLimit,20,"nodeLimit"),i=P(n.edgeLimit,40,"edgeLimit"),d=P(n.tokenBudget,1200,"tokenBudget"),r=n.registry??v(),c=new Map(s.map(T=>[T.id,T])),f=c.get(t)??{id:t},{evidence:a=[],...l}=f,u=[...a],g=Ie(e,t,r,n),{rootEdges:m,...p}=Be(e,t,r,n),h=Z("relationship-context",{rootId:t,direction:n.direction??"both",kinds:[...n.kinds??[]].sort(),maxDepth:n.maxDepth??3}),k=te(g.rows,n.cursor,h,({id:T})=>T),E=g.rows.slice(k),w=S(l)+S(u);if(w>d)throw new TypeError("Relationship context tokenBudget cannot fit root and evidence");let G=Oe({candidates:E,details:c,rootEdges:m,rootId:t,registry:r,nodeLimit:o,tokenBudget:d,initialTokens:w}),{nodes:R}=G,we=new Set([t,...R.map(({id:T})=>T)]),j=$e({graph:e,included:we,options:n,registry:r,edgeLimit:i,tokenBudget:d,initialTokens:G.usedTokens}),{edges:D,usedTokens:ve}=j,L=k+R.length,I=L<g.rows.length,W=R.at(-1),B=j.candidateCount-D.length,K=g.depthTruncated||I||B>0,Ee={rootId:t,...l.status===void 0?{}:{rootStatus:l.status},...p,discoveredNodes:g.rows.length,returnedNodes:R.length,returnedEdges:D.length,omittedNodes:g.rows.length-L,omittedEdges:B,evidenceCount:u.length,hasMore:I};return{root:l,summary:Ee,nodes:R,edges:D,evidence:u,meta:{exact:!0,truncated:K,completeness:K?"truncated":"complete",nodeLimit:o,edgeLimit:i,tokenBudget:d,usedTokens:ve,visitedNodes:g.visitedNodes,inspectedEdges:g.inspectedEdges,omittedNodes:g.rows.length-L,omittedEdges:B,...I&&W?{nextCursor:ee(h,W.id,L-1)}:{}}}}(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]="a3535267-c69a-5a44-bdf9-02925e02aaeb")}catch{}})();var Ne=["tree","graph","context"],Ae=["none","repeated"],Me=["outgoing","incoming","both"],Pe=32,Ue=200,Fe=400,Ge=16e3;function je(e){let t=e?.trim().toLowerCase()??"tree";if(Ne.includes(t))return t;throw new _(`Invalid --format value "${e}". Use "tree", "graph", or "context".`,y.USAGE)}function b(e,t){if(e===void 0)return;let s=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(s)||s<1)throw new _(`Invalid --${t} value "${e}". Use a positive integer.`,y.USAGE);return s}function pe(e){if(e===void 0)return;let t=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(t)||t<0)throw new _(`Invalid --max-depth value "${e}". Use a non-negative integer.`,y.USAGE);return t}function We(e){let t=e?.trim().toLowerCase()??"none";if(Ae.includes(t))return t;throw new _(`Invalid --collapse value "${e}". Use "none" or "repeated".`,y.USAGE)}function Ke(e){let t=e?.trim().toLowerCase()??"both";if(Me.includes(t))return t;throw new _(`Invalid --direction value "${e}". Use "outgoing", "incoming", or "both".`,y.USAGE)}function ze(e,t=v()){if(e===void 0)return;let s=(Array.isArray(e)?e:[e]).flatMap(o=>o.split(",")).map(o=>o.trim()).filter(o=>o.length>0);if(s.length===0)return;let n=new Set;for(let o of s){let i=t.resolve(o);if(!i){let d=t.list().map(r=>r.kind).join(", ");throw new _(`Invalid --kind value "${o}". Registered kinds: ${d}.`,y.USAGE)}n.add(i.kind)}return[...n].sort()}function Xe(e){if(!e||e.length===0)return[];let t=e.map(({id:n,kind:o})=>({id:n.trim(),kind:o.trim().toLowerCase()})).sort((n,o)=>{let i=n.kind.localeCompare(o.kind);return i!==0?i:n.id.localeCompare(o.id)}),s=new Map;for(let n of t){let o=`${n.kind.toLowerCase()}::${n.id.toLowerCase()}`;s.has(o)||s.set(o,{id:n.id,kind:n.kind})}return[...s.values()]}function qe(e){return{id:e.id,title:e.title,type:e.type,status:e.status,dependencies:Xe(e.dependencies)}}function He(e){return C(new TextEncoder().encode(JSON.stringify({...e,dependencies:void 0})).byteLength)}function Je(e,t,s,n,o,i,d,r,c){for(let f of t.dependencies){let a=Math.max(1,Math.ceil(JSON.stringify({from:e.id,to:f.id,kind:f.kind}).length/3));if(r.nodes>=r.nodeLimit){e.truncated=!0,r.reasons.add("node_limit");break}if(r.edges>=r.edgeLimit){e.truncated=!0,r.reasons.add("edge_limit");break}if(r.estimatedTokens+a>=r.tokenBudget){e.truncated=!0,r.reasons.add("token_budget");break}r.edges+=1,r.estimatedTokens+=a,e.dependencies.push(ge(f.id,s,n,o,i,d,r,c+1,f.kind))}}function Qe(e,t,s,n,o,i,d,r){return d.estimatedTokens>=d.tokenBudget&&t?.dependencies.length?(e.truncated=!0,d.reasons.add("token_budget"),!0):!t||e.cycle?!0:n!==void 0&&r>=n?(t.dependencies.length>0&&(e.truncated=!0,d.reasons.add("max_depth")),!0):o==="repeated"&&i.has(s)?(e.collapsed=!0,!0):!1}function ge(e,t,s,n,o,i,d,r=0,c){let f=e.trim().toLowerCase(),a=t.get(f),l={id:a?.id??e,title:a?.title,type:a?.type,status:a?.status,via:c,missing:!a,cycle:s.has(f),dependencies:[]};if(d.nodes+=1,d.estimatedTokens+=He(l),Qe(l,a,f,n,o,i,d,r))return l;o==="repeated"&&i.add(f);let u=new Set(s);return u.add(f),Je(l,a,t,u,n,o,i,d,r),l}function me(e,t){return!e||e.missing&&!t.missing?t:{...e,title:e.title??t.title,type:e.type??t.type,status:e.status??t.status}}function Ve(e){let t=new Map,s=new Map,n=[e];for(;n.length>0;){let r=n.pop();t.set(r.id,me(t.get(r.id),{id:r.id,title:r.title,type:r.type,status:r.status,missing:r.missing}));for(let c of r.dependencies){t.set(c.id,me(t.get(c.id),{id:c.id,title:c.title,type:c.type,status:c.status,missing:c.missing}));let f=c.via??"related",a=`${r.id}::${c.id}::${f}`;s.has(a)||s.set(a,{from:r.id,to:c.id,kind:f}),c.cycle||n.push(c)}}let o=[...t.values()].sort((r,c)=>r.id.localeCompare(c.id)),i=[...s.values()].sort((r,c)=>{let f=r.from.localeCompare(c.from);if(f!==0)return f;let a=r.to.localeCompare(c.to);return a!==0?a:r.kind.localeCompare(c.kind)}),d=o.filter(r=>r.missing).map(r=>r.id);return{root_id:e.id,nodes:o,edges:i,missing_ids:d}}function he(e,t,s){let n=new Set,o=new Set,i=new Set,d=new Set,r=[{id:e,depth:0}],c=0;for(;c<r.length;){let f=r[c++],a=f.id.trim().toLowerCase();n.add(a);let l=t.get(a);if(!l){i.add(a);continue}if(!(s!==void 0&&f.depth>=s)&&!d.has(a)){d.add(a);for(let u of l.dependencies)o.add(`${a}::${u.id.trim().toLowerCase()}::${u.kind}`),r.push({id:u.id,depth:f.depth+1})}}return{node_count:n.size,edge_count:o.size,edge_basis:"deduplicated_directed",missing_count:i.size}}function ke(e,t=v()){let s=pe(e.maxDepth),n=b(e.nodeLimit,"node-limit"),o=b(e.edgeLimit,"edge-limit"),i=b(e.tokenBudget,"token-budget"),d=ze(e.kind,t);return{direction:Ke(e.direction),...d===void 0?{}:{kinds:d},...s===void 0?{}:{maxDepth:s},...n===void 0?{}:{nodeLimit:n},...o===void 0?{}:{edgeLimit:o},...i===void 0?{}:{tokenBudget:i},...e.cursor?.trim()?{cursor:e.cursor.trim()}:{}}}function ye(e,t,s,n){return fe(e.graph,t,e.details.map(o=>o.id===t&&n.length>0?{...o,evidence:n}:o),s)}function Bt(e,t,s,n=[]){let o=A(t);return ye(o,e,ke(s,o.graph.registry()),n)}function F(e,t,s,n){for(let o of s.slice(0,n)){let i=o?.trim();i&&e.push(`${t}:${i}`)}}async function Ye(e,t,s,n){let o=await se(e,t,s.id_prefix,s.item_format,n);if(!o)return[];let{document:i}=await oe(o,{schema:s.schema}),d=i.metadata,r=d.files??[],c=d.tests??[],f=d.docs??[],a=[["files",r.length],["tests",c.length],["docs",f.length],["comments",(d.comments??[]).length],["notes",(d.notes??[]).length],["learnings",(d.learnings??[]).length]];if(a.every(([,u])=>u===0))return[];let l=[`linked:${a.map(([u,g])=>`${u}=${g}`).join(",")}`];return F(l,"file",r.map(u=>u.path),3),F(l,"test",c.map(u=>u.command??u.path),2),F(l,"doc",f.map(u=>u.path),2),l}function Ze(e){let{canonicalId:t,context:s,missingCount:n,missingReferences:o,referenceLimit:i,summaryOnly:d}=e;return{id:t,format:"context",node_count:s.nodes.length+1,edge_count:s.edges.length,edge_basis:"deduplicated_directed",missing_count:n,missing_scope:"traversal",missing_reference_count:o.length,...d?{}:{missing_references:o.slice(0,i),context:s}}}function et(e){let{row:t,missingReachableSet:s,packetIds:n,filteredKinds:o,registry:i}=e;if(t.no_active_blocker_sentinel||!s.has(t.target_id.trim().toLowerCase())||!n.has(t.holder_id))return!1;if(o===void 0)return!0;let d=i.resolve(t.kind);return d!==void 0&&(o.has(d.kind)||d.inverse!==void 0&&o.has(d.inverse))}function _e(e,t,s){let n;for(;;){let o=C(new TextEncoder().encode(N($("deps",e),t)).byteLength);if(o===n)return o;s(o),n=o}}function tt(e){return e instanceof TypeError&&e.message.startsWith("Relationship context tokenBudget cannot fit ")}function nt(e){try{return ye(e.assembly,e.canonicalId,{...e.contextOptions,...e.internalTokenBudget===void 0?{}:{tokenBudget:e.internalTokenBudget}},e.rootEvidence)}catch(t){if(e.smallestResult!==void 0&&tt(t))return e.smallestResult;throw t}}function st(e){let{assembly:t,canonicalId:s,contextOptions:n,rootEvidence:o,summaryOnly:i,outputFormat:d,missingCount:r,missingReferences:c}=e,a=n.edgeLimit??40,l=n.tokenBudget,u,g;for(;;){let m=nt({assembly:t,canonicalId:s,contextOptions:n,internalTokenBudget:l,rootEvidence:o,smallestResult:g});if("format"in m)return m;let p=m;u??=p.meta.tokenBudget,l??=u;let h=Ze({canonicalId:s,context:p,missingCount:r,missingReferences:c,referenceLimit:a,summaryOnly:i});if(g=h,i||(p.meta.tokenBudget=u,p.meta.usedTokens=_e(x(h,!1),d,w=>{p.meta.usedTokens=w}),p.meta.usedTokens<=u))return h;if(a>0){a-=1;continue}let k=l,E=k*u/p.meta.usedTokens;l=Math.min(k-1,Math.max(1,Math.floor(E*.9)))}}function ot(e){let{assembly:t,canonicalId:s,options:n,rootEvidence:o,summaryOnly:i,outputFormat:d}=e,r=ke(n,t.graph.registry()),c=t.graph.closure(s,{direction:r.direction,...r.kinds===void 0?{}:{kinds:r.kinds},maxDepth:r.maxDepth??3}),f=c.value.filter(p=>t.missingIdSet.has(p.toLowerCase())),a=new Set(f.map(p=>p.toLowerCase())),l=t.graph.registry(),u=r.kinds?new Set(r.kinds.map(p=>l.require(p).kind)):void 0,g=new Set([s,...c.value]),m=[...t.dangling.active,...t.dangling.legacy_terminal].filter(p=>et({row:p,missingReachableSet:a,packetIds:g,filteredKinds:u,registry:l}));return st({assembly:t,canonicalId:s,contextOptions:r,rootEvidence:o,summaryOnly:i,outputFormat:d,missingCount:f.length,missingReferences:m})}function it(e){let t=[e],s;for(;t.length>0;){let n=t.pop();n.dependencies.length>0&&(s=n,t.push(...n.dependencies))}return s?(s.dependencies.pop(),s.truncated=!0,!0):!1}function rt(e,t,s,n,o,i,d){let r=o??Pe,c=b(s.nodeLimit,"node-limit")??Ue,f=b(s.edgeLimit,"edge-limit")??Fe,a=b(s.tokenBudget,"token-budget")??Ge,l={nodeLimit:c,edgeLimit:f,tokenBudget:a,nodes:0,edges:0,estimatedTokens:0,reasons:new Set},u=ge(e,n,new Set,r,t==="graph"?"repeated":i,new Set,l),g=he(e,n,void 0),m;for(;;){let p=Ve(u),h=l.reasons.size===0?void 0:{reasons:[...l.reasons].sort(),limits:{max_depth:r,node_limit:c,edge_limit:f,token_budget:a},estimated_tokens:0,total_node_count:g.node_count,total_edge_count:g.edge_count,omitted_node_count:Math.max(0,g.node_count-p.nodes.length),omitted_edge_count:Math.max(0,g.edge_count-p.edges.length)},k={id:e,format:t,node_count:p.nodes.length,edge_count:p.edges.length,edge_basis:"deduplicated_directed",missing_count:p.missing_ids.length,...h?{truncation:h}:{}};if(m=t==="tree"?{...k,tree:u}:{...k,graph:p},(m.truncation===void 0?C(new TextEncoder().encode(N($("deps",x(m,!1)),d)).byteLength):_e(x(m,!1),d,w=>{m.truncation.estimated_tokens=w}))<=a)return m;if(!it(u))return l.reasons.add("token_budget"),m;l.reasons.add("token_budget")}}function x(e,t){let s={name:e.format==="tree"?"dependency_tree":e.format==="graph"?"dependency_graph":"relationship_context",restore_with:"--full"};return{...e,projection:{mode:t?"summary":"full",declared_field_groups:[s],included_field_groups:t?[]:[s.name]}}}async function Ot(e,t,s){let n=q(process.cwd(),s.path);if(!await z(H(n)))throw new _(`Tracker is not initialized at ${n}. Run pm init first.`,y.NOT_FOUND);let o=je(t.format),i=pe(t.maxDepth),d=We(t.collapse);Y(t.summary===!0,t.full===!0,"--summary");let r=t.summary===!0,c=await ne(n),f=X(c,Q()),a=await ie(n,c.item_format,f.type_to_folder,void 0,c.schema),l=V(c.schema),u=new Map(a.map(m=>[m.id.trim().toLowerCase(),qe(m)])),g=de(a,m=>O(m,l));for(let m of[...g.active,...g.legacy_terminal]){let p=u.get(m.holder_id.trim().toLowerCase()),h=m.kind.trim().toLowerCase();p&&!p.dependencies.some(k=>k.id.trim().toLowerCase()===m.target_id.trim().toLowerCase()&&k.kind===h)&&p.dependencies.push({id:m.target_id,kind:h})}if(!u.has(e.trim().toLowerCase()))throw new _(`Item ${e} not found`,y.NOT_FOUND);if(o==="context"){let m=u.get(e.trim().toLowerCase()).id,p=r?[]:await Ye(n,m,c,f.type_to_folder),h=w=>O(w,l),k=re(),E=le().lookup(n,ae(a,h,k),()=>A(a,h,k));return x(ot({assembly:E.assembly,canonicalId:m,options:t,rootEvidence:p,summaryOnly:r,outputFormat:s.json===!0?"json":"toon"}),r)}return r?x({id:e,format:o,...he(e,u,i)},!0):x(rt(e,o,t,u,i,d,s.json===!0?"json":"toon"),!1)}export{ae as a,M as b,le as c,ut as d,fe as e,Ne as f,Ae as g,Me as h,b as i,pe as j,Ke as k,ze as l,Bt as m,Ot as n};
|
|
2
|
+
//# sourceMappingURL=chunk-F4NREH3G.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{o,p as s}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{o,p as s}from"./chunk-DQGJ2RWT.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]="c4c82f8f-7890-5ed2-8f0f-a82ba42cf807")}catch{}})();async function f(e,t,n){let d=await o(e,t,n,{metadataKey:"docs",op:"docs_add",bareNoun:"doc",supportsAppendStable:!1});return s(d,"docs")}export{f as a};
|
|
2
|
+
//# sourceMappingURL=chunk-FDBRXV25.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as Z}from"./chunk-VN5VITU3.js";import{a as X}from"./chunk-HNFD72UK.js";import{a as m}from"./chunk-FB7G2HY2.js";import{u as y}from"./chunk-RKAVWO3O.js";import{a as R,b as A,c as S,d as T,n as q,r as Y}from"./chunk-A62CYISG.js";import{a as L,b as j,c as z,d as B,e as G,k as $}from"./chunk-42E7YPLG.js";import{k as H}from"./chunk-M72BKL5Q.js";import{A as d,Af as W,C as l,Cb as N,Da as U,Ea as E,H as k,La as M,Lc as K,Nc as O,Oa as C,Pc as D,R as v,V as I,Vc as F,ad as V,b as w,lc as P,zd as x}from"./chunk-GE4KCSZP.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="61fe3a97-39e6-53de-8663-8e70d931a2d4")}catch{}})();var Q=1,g="update-many",fe=new Set(["author","message","force","ownershipMetadataBypass","ownershipDependencyBypass"]),me=["--status","--priority","--type","--tags","--description","--body","--deadline","--estimate","--assignee","--dep","--dep-remove","--comment","--note","--learning","--file","--test","--doc","--replace-deps","--replace-tests","--replace-files","--replace-docs","--unset","--clear-*"].join(", "),ye={title:"title",description:"description",body:"body",status:"status",closeReason:"close_reason",priority:"priority",type:"type",deadline:"deadline",estimatedMinutes:"estimated_minutes",acceptanceCriteria:"acceptance_criteria",definitionOfReady:"definition_of_ready",order:"order",goal:"goal",objective:"objective",value:"value",impact:"impact",outcome:"outcome",whyNow:"why_now",assignee:"assignee",parent:"parent",reviewer:"reviewer",risk:"risk",confidence:"confidence",sprint:"sprint",release:"release",blockedBy:"blocked_by",blockedReason:"blocked_reason",unblockNote:"unblock_note",reporter:"reporter",severity:"severity",environment:"environment",reproSteps:"repro_steps",resolution:"resolution",expectedResult:"expected_result",actualResult:"actual_result",affectedVersion:"affected_version",fixedVersion:"fixed_version",component:"component",regression:"regression",customerImpact:"customer_impact"},_e=[{field:"dependencies",addKey:"dep",removeKey:"depRemove",clearKey:"clearDeps",replaceKey:"replaceDeps"},{field:"comments",addKey:"comment",clearKey:"clearComments"},{field:"notes",addKey:"note",clearKey:"clearNotes"},{field:"learnings",addKey:"learning",clearKey:"clearLearnings"},{field:"files",addKey:"file",clearKey:"clearFiles",replaceKey:"replaceFiles"},{field:"tests",addKey:"test",clearKey:"clearTests",replaceKey:"replaceTests"},{field:"docs",addKey:"doc",clearKey:"clearDocs",replaceKey:"replaceDocs"},{field:"reminders",addKey:"reminder",clearKey:"clearReminders"},{field:"events",addKey:"event",clearKey:"clearEvents"},{field:"type_options",addKey:"typeOption",clearKey:"clearTypeOptions"}],ge={close_reason:"close_reason","close-reason":"close_reason",deadline:"deadline",estimate:"estimated_minutes",estimated_minutes:"estimated_minutes","estimated-minutes":"estimated_minutes",acceptance_criteria:"acceptance_criteria","acceptance-criteria":"acceptance_criteria",ac:"acceptance_criteria",definition_of_ready:"definition_of_ready","definition-of-ready":"definition_of_ready",order:"order",rank:"order",goal:"goal",objective:"objective",value:"value",impact:"impact",outcome:"outcome",why_now:"why_now","why-now":"why_now",assignee:"assignee",parent:"parent",reviewer:"reviewer",risk:"risk",confidence:"confidence",sprint:"sprint",release:"release",blocked_by:"blocked_by","blocked-by":"blocked_by",blocked_reason:"blocked_reason","blocked-reason":"blocked_reason",unblock_note:"unblock_note","unblock-note":"unblock_note",reporter:"reporter",severity:"severity",environment:"environment",repro_steps:"repro_steps","repro-steps":"repro_steps",resolution:"resolution",expected_result:"expected_result","expected-result":"expected_result",actual_result:"actual_result","actual-result":"actual_result",affected_version:"affected_version","affected-version":"affected_version",fixed_version:"fixed_version","fixed-version":"fixed_version",component:"component",regression:"regression",customer_impact:"customer_impact","customer-impact":"customer_impact",type_options:"type_options","type-options":"type_options",tags:"tags"},h=e=>{let t={};for(let[n,i]of Object.entries(e))fe.has(n)||i!==void 0&&(t[n]=i);return t},ee=e=>Object.keys(h(e)).length>0,te=e=>typeof e=="string"?e.trim():e,he=e=>{let t=String(e).trim(),n=Number(t);return Number.isInteger(n)?n:t},_=e=>{let t=String(e).trim(),n=Number(t);return Number.isFinite(n)?n:t},be=e=>{let t=String(e).trim().toLowerCase();return new Map([["true",!0],["1",!0],["false",!1],["0",!1]]).get(t)??te(e)},we={priority:he,estimatedMinutes:_,order:_,rank:_,regression:be},ne=(e,t)=>{if(t!==void 0)return(we[e]??te)(t)},oe=e=>{let t=e.trim().toLowerCase().replaceAll("-","_");return ge[t]??t},f=(e,t)=>N(e,t),ie=(e,t)=>t!==void 0?t:e==="type_options"?{}:[],se=(e,t)=>Array.isArray(t)?t.length:e==="type_options"&&t&&typeof t=="object"?Object.keys(t).length:0,ke=e=>e.replace?"replace":e.clear?"clear_or_reset":e.removeCount>0?"merge_remove":"append",J=(e,t)=>t===void 0?void 0:e[t],p=e=>Array.isArray(e)?e.length:0,ve=(e,t,n)=>{let i=n[e.addKey],o=J(n,e.removeKey),r=p(i),s=p(o),a=n[e.clearKey]===!0,c=J(n,e.replaceKey)===!0;if(![a,c,r>0,s>0].includes(!0))return;let u=ie(e.field,t[e.field]);return{field:e.field,before:u,after:{operation:ke({replace:c,clear:a,removeCount:s}),clear:a,replace:c,add_count:r,remove_count:s,before_count:se(e.field,u)}}},re=(e,t)=>{let n=[];for(let i of _e){let o=ve(i,e,t);o!==void 0&&n.push(o)}return n},ae=e=>Array.isArray(e)?e.filter(t=>typeof t=="string"):[],ce=(e,t)=>{if(![t.tags!==void 0,p(t.addTags)>0,p(t.removeTags)>0].includes(!0))return;let n=ae(e.tags),i=t.tags===void 0?n:L(t.tags),o=B(i,t.addTags),r=G(o,t.removeTags).slice().sort((a,c)=>a.localeCompare(c)),s=n.slice().sort((a,c)=>a.localeCompare(c));if(!f(s,r))return{field:"tags",before:n,after:r}},Ie=(e,t)=>{let n=e.acceptance_criteria,i=t.acceptanceCriteria===void 0?n:String(t.acceptanceCriteria).trim(),o=z(j(i),t.addAc,t.removeAc),r=o.unmatchedRemovals.map(a=>`remove_ac_unmatched:${a}`),s=o.criteria.join("; ");return f(n,s)||n===void 0&&s===""?{warnings:r}:{change:{field:"acceptance_criteria",before:n,after:s},warnings:r}},Re=(e,t,n)=>{for(let[i,o]of Object.entries(ye)){let r=n[i];if(r===void 0)continue;let s=t[o],a=ne(i,r);f(s,a)||e.push({field:o,before:s,after:a})}},Ae=(e,t,n,i)=>{let o=F(n,i,["update_many"]);for(let[r,s]of Object.entries(o)){let a=t[r];f(a,s)||e.push({field:r,before:a,after:s})}},Se=(e,t,n)=>{for(let i of n??[]){let o=oe(i),r=t[o];r!==void 0&&e.push({field:o,before:r,after:null})}},de=(e,t,n={})=>{let i=e,o=[],r=[],s=ce(i,n);if(s&&o.push(s),Re(o,i,n),p(n.addAc)>0||p(n.removeAc)>0){let a=Ie(i,n),c=o.filter(u=>u.field!=="acceptance_criteria");o.splice(0,o.length,...c),a.change!==void 0&&o.push(a.change),r.push(...a.warnings)}return o.push(...re(i,n)),Ae(o,i,n,t),Se(o,i,n.unset),{id:e.id,changes:o,...r.length>0?{warnings:r}:{}}},le=(e,t)=>Y(e,t,{strict:!0,flagLabel:"--filter-status"}),ue=e=>{if(e?.ids!=null&&String(e.ids).trim().length===0)throw new l("--ids requires at least one non-empty item ID",d.USAGE)},Te=[({update:e})=>{e.priority!==void 0&&q(e.priority)},({update:e,settings:t,pmRoot:n})=>{if(e.type===void 0)return;let i=U(t,P());if(!E(e.type,i))throw new l(H(e.type,i.types,K(n,t.schema)),d.USAGE)},({update:e,statusRegistry:t})=>{if(e.status!==void 0&&!V(e.status,t)){let n=t.definitions.map(i=>i.id);throw new l(`Invalid --status value "${e.status}". Allowed: ${n.join(", ")}`,d.USAGE)}},({update:e})=>{e.deadline!==void 0&&I(e.deadline,new Date,"deadline")},({update:e})=>{e.estimatedMinutes!==void 0&&$(e.estimatedMinutes,"estimated-minutes")}],pe=(e,t,n,i)=>{let o={update:e,settings:t,statusRegistry:n,pmRoot:i};for(let r of Te)r(o)},Ue=async e=>{let t=await S(e.pmRoot,g,e.rollbackId,Q),n=e.options.update?.message??`Rollback update-many checkpoint ${t.id}`,i=await T(t.items,(o,r)=>X(o,r,{author:e.options.update?.author,message:n,force:e.options.update?.force??!0},e.global));return{mode:"rollback",matched_count:t.items.length,dry_run:!1,rollback_checkpoint_id:t.id,checkpoint:{id:t.id,created_at:t.created_at,path:t.path,rollback_command:`pm update-many --rollback ${t.id}`},restored_count:i.restored_ids.length,failed_count:i.failed_count,rows:i.rows,ids:i.restored_ids}},Ee=async e=>{let t={schema_version:Q,id:e.checkpointId,created_at:e.nowValue,author:x(e.options.update?.author,"unknown"),status_filter:e.statusFilter??null,list_filters:e.filters,update_options:e.updateSummary,items:e.checkpointItems},n=await A(e.pmRoot,g,e.checkpointId,t);return{id:e.checkpointId,created_at:e.nowValue,path:n,rollback_command:`pm update-many --rollback ${e.checkpointId}`}},Me=(e,t)=>{if(e==null)return;let n=[...new Set(String(e).split(",").map(o=>o.trim()).filter(o=>o.length>0))],i=new Set(t.map(o=>o.id));return n.filter(o=>!i.has(o))},b=e=>e.unmatchedIds===void 0?{}:{unmatched_ids:e.unmatchedIds,unmatched_count:e.unmatchedIds.length},Ce=async e=>{let t=M(process.cwd(),e.path);if(!await w(C(t)))throw new l(`Tracker is not initialized at ${t}. Run pm init first.`,d.NOT_FOUND);let n=await W(t);return{pmRoot:t,settings:n,statusRegistry:O(n.schema),runtimeFieldRegistry:D(n.schema)}},Ne=e=>{if(e.options.dryRun===!0)throw new l("--dry-run cannot be combined with --rollback",d.USAGE);if(m(e.options.list,e.options.status))throw new l("Rollback mode does not accept filter options",d.USAGE);if(Object.keys(e.updateSummary).length>0)throw new l("Rollback mode does not accept update mutation flags",d.USAGE);return Ue({pmRoot:e.runtime.pmRoot,rollbackId:e.rollbackId,options:e.options,global:e.global})},Pe=async e=>{le(e.options.status,e.runtime.statusRegistry);let t=await y(void 0,{...e.options.list,status:e.options.status,compact:void 0,brief:void 0,fields:void 0,includeBody:!0,full:!0},e.global),n=t.items.map(o=>de(o,e.runtime.runtimeFieldRegistry,e.options.update)),i=e.options.list?.ids==null?[]:(await y(void 0,{ids:e.options.list.ids,noTruncate:!0,full:!0},e.global)).items;return{listed:t,planned:n,actionable:n.filter(o=>o.changes.length>0),updateSummary:e.updateSummary,unmatchedIds:Me(e.options.list?.ids,i)}},Ke=e=>({mode:"dry_run",matched_count:e.listed.items.length,dry_run:!0,filters:e.listed.filters,planned_update_options:e.updateSummary,item_plans:e.planned,ids:[],...b(e)}),Oe=e=>({mode:"apply",matched_count:e.listed.items.length,dry_run:!1,filters:e.listed.filters,planned_update_options:e.updateSummary,updated_count:0,skipped_count:e.listed.items.length,failed_count:0,rows:e.planned.map(t=>({id:t.id,status:"skipped",...t.warnings?{warnings:t.warnings}:{}})),ids:[],...b(e)}),De=async e=>{let t=[],n=[],i=e.options.update.message??`update-many apply ${e.checkpointId}`,o=new Map(e.plans.map(s=>[s.id,s])),r=new Set(e.plans.filter(s=>s.changes.length>0).map(s=>s.id));for(let s of e.items){if(!r.has(s.id)){let a=o.get(s.id)?.warnings;t.push({id:s.id,status:"skipped",...a?{warnings:a}:{}});continue}try{let a=await Z(s.id,{...e.options.update,message:i,runtimeFieldCommands:["update_many"]},e.global);t.push({id:s.id,status:"updated",changed_fields:a.changed_fields,warnings:a.warnings}),n.push(s.id)}catch(a){t.push({id:s.id,status:"failed",error:k(a)})}}return{rows:t,updatedIds:n}},Fe=async e=>{if(e.plan.actionable.length===0)return Oe(e.plan);let t=v(),n=R(g,t),i=new Set(e.plan.actionable.map(c=>c.id)),o=e.plan.listed.items.filter(c=>i.has(c.id)).map(c=>({id:c.id,target_updated_at:c.updated_at})),r=e.options.checkpoint===!1?void 0:await Ee({pmRoot:e.runtime.pmRoot,checkpointId:n,nowValue:t,options:e.options,statusFilter:e.options.status,filters:e.plan.listed.filters,updateSummary:e.plan.updateSummary,checkpointItems:o}),s=await De({items:e.plan.listed.items,plans:e.plan.planned,options:e.options,global:e.global,checkpointId:n}),a=c=>s.rows.filter(u=>u.status===c).length;return{mode:"apply",matched_count:e.plan.listed.items.length,dry_run:!1,filters:e.plan.listed.filters,planned_update_options:e.plan.updateSummary,...r?{checkpoint:r}:{},updated_count:a("updated"),skipped_count:a("skipped"),failed_count:a("failed"),rows:s.rows,ids:s.updatedIds,...b(e.plan)}},$e=async(e,t)=>{let n=await Ce(t),i=typeof e.rollback=="string"?e.rollback:void 0,o=h(e.update);if(ue(e.list),i!==void 0)return Ne({runtime:n,rollbackId:i,options:e,global:t,updateSummary:o});if(!ee(e.update))throw new l(`No update-many mutation flags provided. Add at least one mutation flag (for example: ${me}).`,d.USAGE);pe(e.update,n.settings,n.statusRegistry,n.pmRoot);let r=await Pe({options:e,global:t,runtime:n,updateSummary:o});return e.dryRun===!0?Ke(r):Fe({runtime:n,options:e,global:t,plan:r})},qe={assertPlannedUpdateValuesValid:pe,buildCollectionMutationPlans:re,buildPlannedItemDiff:de,buildTagMutationPlan:ce,collectionValueCount:se,hasAnyUpdateMutationInput:ee,hasListFilters:m,normalizeStatusFilter:le,normalizeCollectionBeforeValue:ie,normalizeExistingTags:ae,normalizeUnsetField:oe,rejectBlankIdsFilter:ue,sanitizeUpdateOptionsForSummary:h,toComparablePreviewValue:ne};export{$e as a,qe as b};
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as Z}from"./chunk-AYRUGRNS.js";import{a as X}from"./chunk-OXY3SJ3N.js";import{a as m}from"./chunk-FB7G2HY2.js";import{u as y}from"./chunk-3KFVGGRE.js";import{a as R,b as A,c as S,d as T,n as q,r as Y}from"./chunk-MDTH7SAE.js";import{a as L,b as j,c as z,d as B,e as G,k as $}from"./chunk-R6LSRGPS.js";import{k as H}from"./chunk-UVVXHGYS.js";import{A as d,Af as W,C as l,Cb as N,Da as U,Ea as E,H as k,La as M,Lc as K,Nc as O,Oa as C,Pc as D,R as v,V as I,Vc as F,ad as V,b as w,lc as P,zd as x}from"./chunk-HS7OVAUN.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="61fe3a97-39e6-53de-8663-8e70d931a2d4")}catch{}})();var Q=1,g="update-many",fe=new Set(["author","message","force","ownershipMetadataBypass","ownershipDependencyBypass"]),me=["--status","--priority","--type","--tags","--description","--body","--deadline","--estimate","--assignee","--dep","--dep-remove","--comment","--note","--learning","--file","--test","--doc","--replace-deps","--replace-tests","--replace-files","--replace-docs","--unset","--clear-*"].join(", "),ye={title:"title",description:"description",body:"body",status:"status",closeReason:"close_reason",priority:"priority",type:"type",deadline:"deadline",estimatedMinutes:"estimated_minutes",acceptanceCriteria:"acceptance_criteria",definitionOfReady:"definition_of_ready",order:"order",goal:"goal",objective:"objective",value:"value",impact:"impact",outcome:"outcome",whyNow:"why_now",assignee:"assignee",parent:"parent",reviewer:"reviewer",risk:"risk",confidence:"confidence",sprint:"sprint",release:"release",blockedBy:"blocked_by",blockedReason:"blocked_reason",unblockNote:"unblock_note",reporter:"reporter",severity:"severity",environment:"environment",reproSteps:"repro_steps",resolution:"resolution",expectedResult:"expected_result",actualResult:"actual_result",affectedVersion:"affected_version",fixedVersion:"fixed_version",component:"component",regression:"regression",customerImpact:"customer_impact"},_e=[{field:"dependencies",addKey:"dep",removeKey:"depRemove",clearKey:"clearDeps",replaceKey:"replaceDeps"},{field:"comments",addKey:"comment",clearKey:"clearComments"},{field:"notes",addKey:"note",clearKey:"clearNotes"},{field:"learnings",addKey:"learning",clearKey:"clearLearnings"},{field:"files",addKey:"file",clearKey:"clearFiles",replaceKey:"replaceFiles"},{field:"tests",addKey:"test",clearKey:"clearTests",replaceKey:"replaceTests"},{field:"docs",addKey:"doc",clearKey:"clearDocs",replaceKey:"replaceDocs"},{field:"reminders",addKey:"reminder",clearKey:"clearReminders"},{field:"events",addKey:"event",clearKey:"clearEvents"},{field:"type_options",addKey:"typeOption",clearKey:"clearTypeOptions"}],ge={close_reason:"close_reason","close-reason":"close_reason",deadline:"deadline",estimate:"estimated_minutes",estimated_minutes:"estimated_minutes","estimated-minutes":"estimated_minutes",acceptance_criteria:"acceptance_criteria","acceptance-criteria":"acceptance_criteria",ac:"acceptance_criteria",definition_of_ready:"definition_of_ready","definition-of-ready":"definition_of_ready",order:"order",rank:"order",goal:"goal",objective:"objective",value:"value",impact:"impact",outcome:"outcome",why_now:"why_now","why-now":"why_now",assignee:"assignee",parent:"parent",reviewer:"reviewer",risk:"risk",confidence:"confidence",sprint:"sprint",release:"release",blocked_by:"blocked_by","blocked-by":"blocked_by",blocked_reason:"blocked_reason","blocked-reason":"blocked_reason",unblock_note:"unblock_note","unblock-note":"unblock_note",reporter:"reporter",severity:"severity",environment:"environment",repro_steps:"repro_steps","repro-steps":"repro_steps",resolution:"resolution",expected_result:"expected_result","expected-result":"expected_result",actual_result:"actual_result","actual-result":"actual_result",affected_version:"affected_version","affected-version":"affected_version",fixed_version:"fixed_version","fixed-version":"fixed_version",component:"component",regression:"regression",customer_impact:"customer_impact","customer-impact":"customer_impact",type_options:"type_options","type-options":"type_options",tags:"tags"},h=e=>{let t={};for(let[n,i]of Object.entries(e))fe.has(n)||i!==void 0&&(t[n]=i);return t},ee=e=>Object.keys(h(e)).length>0,te=e=>typeof e=="string"?e.trim():e,he=e=>{let t=String(e).trim(),n=Number(t);return Number.isInteger(n)?n:t},_=e=>{let t=String(e).trim(),n=Number(t);return Number.isFinite(n)?n:t},be=e=>{let t=String(e).trim().toLowerCase();return new Map([["true",!0],["1",!0],["false",!1],["0",!1]]).get(t)??te(e)},we={priority:he,estimatedMinutes:_,order:_,rank:_,regression:be},ne=(e,t)=>{if(t!==void 0)return(we[e]??te)(t)},oe=e=>{let t=e.trim().toLowerCase().replaceAll("-","_");return ge[t]??t},f=(e,t)=>N(e,t),ie=(e,t)=>t!==void 0?t:e==="type_options"?{}:[],se=(e,t)=>Array.isArray(t)?t.length:e==="type_options"&&t&&typeof t=="object"?Object.keys(t).length:0,ke=e=>e.replace?"replace":e.clear?"clear_or_reset":e.removeCount>0?"merge_remove":"append",J=(e,t)=>t===void 0?void 0:e[t],p=e=>Array.isArray(e)?e.length:0,ve=(e,t,n)=>{let i=n[e.addKey],o=J(n,e.removeKey),r=p(i),s=p(o),a=n[e.clearKey]===!0,c=J(n,e.replaceKey)===!0;if(![a,c,r>0,s>0].includes(!0))return;let u=ie(e.field,t[e.field]);return{field:e.field,before:u,after:{operation:ke({replace:c,clear:a,removeCount:s}),clear:a,replace:c,add_count:r,remove_count:s,before_count:se(e.field,u)}}},re=(e,t)=>{let n=[];for(let i of _e){let o=ve(i,e,t);o!==void 0&&n.push(o)}return n},ae=e=>Array.isArray(e)?e.filter(t=>typeof t=="string"):[],ce=(e,t)=>{if(![t.tags!==void 0,p(t.addTags)>0,p(t.removeTags)>0].includes(!0))return;let n=ae(e.tags),i=t.tags===void 0?n:L(t.tags),o=B(i,t.addTags),r=G(o,t.removeTags).slice().sort((a,c)=>a.localeCompare(c)),s=n.slice().sort((a,c)=>a.localeCompare(c));if(!f(s,r))return{field:"tags",before:n,after:r}},Ie=(e,t)=>{let n=e.acceptance_criteria,i=t.acceptanceCriteria===void 0?n:String(t.acceptanceCriteria).trim(),o=z(j(i),t.addAc,t.removeAc),r=o.unmatchedRemovals.map(a=>`remove_ac_unmatched:${a}`),s=o.criteria.join("; ");return f(n,s)||n===void 0&&s===""?{warnings:r}:{change:{field:"acceptance_criteria",before:n,after:s},warnings:r}},Re=(e,t,n)=>{for(let[i,o]of Object.entries(ye)){let r=n[i];if(r===void 0)continue;let s=t[o],a=ne(i,r);f(s,a)||e.push({field:o,before:s,after:a})}},Ae=(e,t,n,i)=>{let o=F(n,i,["update_many"]);for(let[r,s]of Object.entries(o)){let a=t[r];f(a,s)||e.push({field:r,before:a,after:s})}},Se=(e,t,n)=>{for(let i of n??[]){let o=oe(i),r=t[o];r!==void 0&&e.push({field:o,before:r,after:null})}},de=(e,t,n={})=>{let i=e,o=[],r=[],s=ce(i,n);if(s&&o.push(s),Re(o,i,n),p(n.addAc)>0||p(n.removeAc)>0){let a=Ie(i,n),c=o.filter(u=>u.field!=="acceptance_criteria");o.splice(0,o.length,...c),a.change!==void 0&&o.push(a.change),r.push(...a.warnings)}return o.push(...re(i,n)),Ae(o,i,n,t),Se(o,i,n.unset),{id:e.id,changes:o,...r.length>0?{warnings:r}:{}}},le=(e,t)=>Y(e,t,{strict:!0,flagLabel:"--filter-status"}),ue=e=>{if(e?.ids!=null&&String(e.ids).trim().length===0)throw new l("--ids requires at least one non-empty item ID",d.USAGE)},Te=[({update:e})=>{e.priority!==void 0&&q(e.priority)},({update:e,settings:t,pmRoot:n})=>{if(e.type===void 0)return;let i=U(t,P());if(!E(e.type,i))throw new l(H(e.type,i.types,K(n,t.schema)),d.USAGE)},({update:e,statusRegistry:t})=>{if(e.status!==void 0&&!V(e.status,t)){let n=t.definitions.map(i=>i.id);throw new l(`Invalid --status value "${e.status}". Allowed: ${n.join(", ")}`,d.USAGE)}},({update:e})=>{e.deadline!==void 0&&I(e.deadline,new Date,"deadline")},({update:e})=>{e.estimatedMinutes!==void 0&&$(e.estimatedMinutes,"estimated-minutes")}],pe=(e,t,n,i)=>{let o={update:e,settings:t,statusRegistry:n,pmRoot:i};for(let r of Te)r(o)},Ue=async e=>{let t=await S(e.pmRoot,g,e.rollbackId,Q),n=e.options.update?.message??`Rollback update-many checkpoint ${t.id}`,i=await T(t.items,(o,r)=>X(o,r,{author:e.options.update?.author,message:n,force:e.options.update?.force??!0},e.global));return{mode:"rollback",matched_count:t.items.length,dry_run:!1,rollback_checkpoint_id:t.id,checkpoint:{id:t.id,created_at:t.created_at,path:t.path,rollback_command:`pm update-many --rollback ${t.id}`},restored_count:i.restored_ids.length,failed_count:i.failed_count,rows:i.rows,ids:i.restored_ids}},Ee=async e=>{let t={schema_version:Q,id:e.checkpointId,created_at:e.nowValue,author:x(e.options.update?.author,"unknown"),status_filter:e.statusFilter??null,list_filters:e.filters,update_options:e.updateSummary,items:e.checkpointItems},n=await A(e.pmRoot,g,e.checkpointId,t);return{id:e.checkpointId,created_at:e.nowValue,path:n,rollback_command:`pm update-many --rollback ${e.checkpointId}`}},Me=(e,t)=>{if(e==null)return;let n=[...new Set(String(e).split(",").map(o=>o.trim()).filter(o=>o.length>0))],i=new Set(t.map(o=>o.id));return n.filter(o=>!i.has(o))},b=e=>e.unmatchedIds===void 0?{}:{unmatched_ids:e.unmatchedIds,unmatched_count:e.unmatchedIds.length},Ce=async e=>{let t=M(process.cwd(),e.path);if(!await w(C(t)))throw new l(`Tracker is not initialized at ${t}. Run pm init first.`,d.NOT_FOUND);let n=await W(t);return{pmRoot:t,settings:n,statusRegistry:O(n.schema),runtimeFieldRegistry:D(n.schema)}},Ne=e=>{if(e.options.dryRun===!0)throw new l("--dry-run cannot be combined with --rollback",d.USAGE);if(m(e.options.list,e.options.status))throw new l("Rollback mode does not accept filter options",d.USAGE);if(Object.keys(e.updateSummary).length>0)throw new l("Rollback mode does not accept update mutation flags",d.USAGE);return Ue({pmRoot:e.runtime.pmRoot,rollbackId:e.rollbackId,options:e.options,global:e.global})},Pe=async e=>{le(e.options.status,e.runtime.statusRegistry);let t=await y(void 0,{...e.options.list,status:e.options.status,compact:void 0,brief:void 0,fields:void 0,includeBody:!0,full:!0},e.global),n=t.items.map(o=>de(o,e.runtime.runtimeFieldRegistry,e.options.update)),i=e.options.list?.ids==null?[]:(await y(void 0,{ids:e.options.list.ids,noTruncate:!0,full:!0},e.global)).items;return{listed:t,planned:n,actionable:n.filter(o=>o.changes.length>0),updateSummary:e.updateSummary,unmatchedIds:Me(e.options.list?.ids,i)}},Ke=e=>({mode:"dry_run",matched_count:e.listed.items.length,dry_run:!0,filters:e.listed.filters,planned_update_options:e.updateSummary,item_plans:e.planned,ids:[],...b(e)}),Oe=e=>({mode:"apply",matched_count:e.listed.items.length,dry_run:!1,filters:e.listed.filters,planned_update_options:e.updateSummary,updated_count:0,skipped_count:e.listed.items.length,failed_count:0,rows:e.planned.map(t=>({id:t.id,status:"skipped",...t.warnings?{warnings:t.warnings}:{}})),ids:[],...b(e)}),De=async e=>{let t=[],n=[],i=e.options.update.message??`update-many apply ${e.checkpointId}`,o=new Map(e.plans.map(s=>[s.id,s])),r=new Set(e.plans.filter(s=>s.changes.length>0).map(s=>s.id));for(let s of e.items){if(!r.has(s.id)){let a=o.get(s.id)?.warnings;t.push({id:s.id,status:"skipped",...a?{warnings:a}:{}});continue}try{let a=await Z(s.id,{...e.options.update,message:i,runtimeFieldCommands:["update_many"]},e.global);t.push({id:s.id,status:"updated",changed_fields:a.changed_fields,warnings:a.warnings}),n.push(s.id)}catch(a){t.push({id:s.id,status:"failed",error:k(a)})}}return{rows:t,updatedIds:n}},Fe=async e=>{if(e.plan.actionable.length===0)return Oe(e.plan);let t=v(),n=R(g,t),i=new Set(e.plan.actionable.map(c=>c.id)),o=e.plan.listed.items.filter(c=>i.has(c.id)).map(c=>({id:c.id,target_updated_at:c.updated_at})),r=e.options.checkpoint===!1?void 0:await Ee({pmRoot:e.runtime.pmRoot,checkpointId:n,nowValue:t,options:e.options,statusFilter:e.options.status,filters:e.plan.listed.filters,updateSummary:e.plan.updateSummary,checkpointItems:o}),s=await De({items:e.plan.listed.items,plans:e.plan.planned,options:e.options,global:e.global,checkpointId:n}),a=c=>s.rows.filter(u=>u.status===c).length;return{mode:"apply",matched_count:e.plan.listed.items.length,dry_run:!1,filters:e.plan.listed.filters,planned_update_options:e.plan.updateSummary,...r?{checkpoint:r}:{},updated_count:a("updated"),skipped_count:a("skipped"),failed_count:a("failed"),rows:s.rows,ids:s.updatedIds,...b(e.plan)}},$e=async(e,t)=>{let n=await Ce(t),i=typeof e.rollback=="string"?e.rollback:void 0,o=h(e.update);if(ue(e.list),i!==void 0)return Ne({runtime:n,rollbackId:i,options:e,global:t,updateSummary:o});if(!ee(e.update))throw new l(`No update-many mutation flags provided. Add at least one mutation flag (for example: ${me}).`,d.USAGE);pe(e.update,n.settings,n.statusRegistry,n.pmRoot);let r=await Pe({options:e,global:t,runtime:n,updateSummary:o});return e.dryRun===!0?Ke(r):Fe({runtime:n,options:e,global:t,plan:r})},qe={assertPlannedUpdateValuesValid:pe,buildCollectionMutationPlans:re,buildPlannedItemDiff:de,buildTagMutationPlan:ce,collectionValueCount:se,hasAnyUpdateMutationInput:ee,hasListFilters:m,normalizeStatusFilter:le,normalizeCollectionBeforeValue:ie,normalizeExistingTags:ae,normalizeUnsetField:oe,rejectBlankIdsFilter:ue,sanitizeUpdateOptionsForSummary:h,toComparablePreviewValue:ne};export{$e as a,qe as b};
|
|
2
|
+
//# sourceMappingURL=chunk-GU3TSEHD.js.map
|