@unbrained/pm-cli 2026.10.30 → 2026.10.31
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 +1 -1
- package/CHANGELOG.md +32 -0
- package/dist/cli/commander-usage.js +2 -2
- package/dist/cli/error-guidance.d.ts +45 -5
- package/dist/cli/error-guidance.js +5 -3
- package/dist/cli/extension-command-help.d.ts +1 -0
- package/dist/cli/extension-command-help.js +2 -2
- package/dist/cli/main.d.ts +1 -5
- package/dist/cli/main.js +5 -5
- package/dist/cli/migration-gates.d.ts +1 -1
- package/dist/cli/migration-gates.js +1 -1
- package/dist/cli/preflight-warnings.d.ts +11 -0
- package/dist/cli/preflight-warnings.js +4 -0
- package/dist/cli/register-mutation.js +2 -2
- package/dist/cli-bundle/bundle-manifest.json +1 -1
- package/dist/cli-bundle/chunks/chunk-24J6TNYE.js +8 -0
- package/dist/cli-bundle/chunks/{chunk-EHBGHX55.js → chunk-2AHSPMKJ.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-MVL27TAH.js → chunk-35Q2B2GJ.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-43R7UTWV.js +2 -0
- package/dist/cli-bundle/chunks/chunk-6PSDQ7T7.js +8 -0
- package/dist/cli-bundle/chunks/{chunk-UUQX3PFD.js → chunk-BS2KXT24.js} +70 -70
- package/dist/cli-bundle/chunks/{chunk-Y6NC3X3E.js → chunk-GMBDZID5.js} +3 -3
- package/dist/cli-bundle/chunks/chunk-HSBTITO4.js +3 -0
- package/dist/cli-bundle/chunks/{chunk-LWW4F4G2.js → chunk-MRUA2Z43.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-P3LNMWL2.js +2 -0
- package/dist/cli-bundle/chunks/{chunk-S2U7ECUJ.js → chunk-PT7TS6E7.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-TH5KPAN4.js → chunk-SBVX5CMV.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-4BQD5SW2.js → chunk-TL3O5GZA.js} +30 -30
- package/dist/cli-bundle/chunks/chunk-U7JXZMU5.js +6 -0
- package/dist/cli-bundle/chunks/{chunk-GRABKNFL.js → chunk-V6EWBTNH.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-VC7TA67O.js +20 -0
- package/dist/cli-bundle/chunks/chunk-WNF6FOL7.js +31 -0
- package/dist/cli-bundle/chunks/chunk-WRXQAW7Q.js +114 -0
- package/dist/cli-bundle/chunks/{chunk-RZQNFHXO.js → chunk-WX25MU4N.js} +3 -3
- package/dist/cli-bundle/chunks/chunk-XDDPSWIW.js +2 -0
- package/dist/cli-bundle/chunks/chunk-YT5D5HNG.js +2 -0
- package/dist/cli-bundle/chunks/chunk-ZTJVOBDU.js +128 -0
- package/dist/cli-bundle/chunks/{indexed-receipt-blobs-LHLE7PSG.js → indexed-receipt-blobs-KGMJVFH2.js} +2 -2
- package/dist/cli-bundle/chunks/item-transaction-UWV6UNSV.js +2 -0
- package/dist/cli-bundle/chunks/{mutation-admission-TRGAVS7N.js → mutation-admission-I4RHIT3Q.js} +2 -2
- package/dist/cli-bundle/chunks/{register-list-query-BH4F6M7Z.js → register-list-query-MVDL5EXG.js} +3 -3
- package/dist/cli-bundle/chunks/register-mutation-GAF7LXRB.js +20 -0
- package/dist/cli-bundle/chunks/register-operations-JLFRL36Q.js +2 -0
- package/dist/cli-bundle/chunks/{register-setup-QPWSVHFZ.js → register-setup-MZN6ONB3.js} +2 -2
- package/dist/cli-bundle/chunks/{settlement-hook-MN3Y7LVX.js → settlement-hook-YWSWFOZY.js} +2 -2
- package/dist/cli-bundle/chunks/{stage-RTB6RAAO.js → stage-2ZORTOF6.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-S23ZUASN.js → chunk-2J7T2UCH.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-4QPGJO2G.js +26 -0
- package/dist/cli-bundle/focused-chunks/{chunk-YU7QOYYV.js → chunk-57HPXGOQ.js} +3 -3
- package/dist/cli-bundle/focused-chunks/chunk-5MCGYBOQ.js +91 -0
- package/dist/cli-bundle/focused-chunks/chunk-6F6APBCX.js +3 -0
- package/dist/cli-bundle/focused-chunks/chunk-AFVN2KCP.js +44 -0
- package/dist/cli-bundle/focused-chunks/{chunk-RKPUQDWF.js → chunk-DFUTCKUF.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-EA65HVBO.js +12 -0
- package/dist/cli-bundle/focused-chunks/chunk-GP2WU43K.js +26 -0
- package/dist/cli-bundle/focused-chunks/{chunk-YQUZL2CK.js → chunk-HPWT3RBG.js} +3 -3
- package/dist/cli-bundle/focused-chunks/chunk-HSAEEWSI.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-BPE6JTKL.js → chunk-JLXGRDTG.js} +3 -3
- package/dist/cli-bundle/focused-chunks/{chunk-FRFNGMAK.js → chunk-JNKRUCVZ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-BCIUAEWX.js → chunk-KH5QJXY7.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-KKRIFBSL.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-RGQEJFXO.js → chunk-MW77Q3AQ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-NOKG4RFN.js +22 -0
- package/dist/cli-bundle/focused-chunks/{chunk-POJPJX64.js → chunk-NRBUMDLF.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-3SRX77ES.js → chunk-PC3R5CJV.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-RYEZSZJ7.js → chunk-PFBQOZPK.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-SAT7IAEB.js → chunk-QFMJGQGO.js} +3 -3
- package/dist/cli-bundle/focused-chunks/{chunk-VFWCSQAG.js → chunk-SFQKCA5K.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-WHIE2C6Q.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-Y6UYRMVG.js +6 -0
- package/dist/cli-bundle/focused-chunks/{indexed-receipt-blobs-VK2363JB.js → indexed-receipt-blobs-KHWT44EK.js} +2 -2
- package/dist/cli-bundle/focused-chunks/item-transaction-LU75EG7D.js +2 -0
- package/dist/cli-bundle/focused-chunks/{mutation-admission-7VUODEPJ.js → mutation-admission-KDJ7SCPA.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{settlement-hook-OK6A7PG2.js → settlement-hook-SJV52ZTV.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{stage-S5RP5SZH.js → stage-R4KEBO37.js} +2 -2
- package/dist/cli-bundle/main.js +26 -22
- package/dist/cli-bundle/sdk-authoring.js +1 -1
- package/dist/cli-bundle/sdk-contracts.js +4 -4
- package/dist/cli-bundle/sdk-core.js +1 -1
- 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 +57 -57
- 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 +11 -11
- package/dist/core/config/nested-settings.js +1 -1
- package/dist/core/extensions/extension-hook-runtime.js +1 -1
- package/dist/core/extensions/extension-types.d.ts +4 -0
- package/dist/core/extensions/extension-types.js +1 -1
- package/dist/core/extensions/loader.js +1 -1
- package/dist/core/lock/lock.js +4 -4
- package/dist/core/output/output.js +2 -2
- package/dist/core/schema/fields-file.js +1 -1
- package/dist/core/sentry/helpers.d.ts +6 -0
- package/dist/core/sentry/helpers.js +1 -1
- package/dist/core/sentry/instrument.d.ts +1 -1
- package/dist/core/sentry/instrument.js +1 -1
- package/dist/core/shared/constants.js +1 -1
- package/dist/core/shared/errors.d.ts +6 -0
- package/dist/core/shared/errors.js +1 -1
- package/dist/core/shared/output-unicode.d.ts +10 -0
- package/dist/core/shared/output-unicode.js +2 -0
- package/dist/core/store/settings-validator.d.ts +1 -0
- package/dist/core/store/settings-validator.js +1 -1
- package/dist/core/store/settings.js +1 -1
- package/dist/core/telemetry/policy.d.ts +8 -0
- package/dist/core/telemetry/policy.js +1 -1
- package/dist/core/telemetry/runtime.js +3 -3
- package/dist/sdk/agent/command-recovery.d.ts +15 -0
- package/dist/sdk/agent/command-recovery.js +1 -1
- package/dist/sdk/cli-bootstrap.js +1 -1
- package/dist/sdk/cli-contracts/agent-output-contracts.d.ts +28 -0
- package/dist/sdk/cli-contracts/agent-output-contracts.js +2 -2
- package/dist/sdk/cli-contracts/commander-mutation-options.js +1 -1
- package/dist/sdk/cli-contracts/flag-contracts.d.ts +2 -0
- package/dist/sdk/cli-contracts/flag-contracts.js +1 -1
- package/dist/sdk/cli-contracts/grammar-contracts.js +1 -1
- package/dist/sdk/cli-contracts/tool-parameter-tables.js +1 -1
- package/dist/sdk/cli-contracts.d.ts +1 -1
- package/dist/sdk/cli-contracts.js +1 -1
- package/dist/sdk/completion/fish.js +4 -4
- package/dist/sdk/completion/zsh.js +3 -3
- package/dist/sdk/config.d.ts +1 -0
- package/dist/sdk/config.js +1 -1
- package/dist/sdk/core.d.ts +1 -0
- package/dist/sdk/core.js +1 -1
- package/dist/sdk/error-runtime.d.ts +9 -0
- package/dist/sdk/error-runtime.js +1 -1
- package/dist/sdk/errors.js +1 -1
- package/dist/sdk/generated/generated-error-code-catalog-part-1.js +1 -1
- package/dist/sdk/generated/generated-error-code-catalog-part-2.js +1 -1
- package/dist/sdk/index.d.ts +2 -2
- package/dist/sdk/index.js +1 -1
- package/dist/sdk/lifecycle/claim.js +1 -1
- package/dist/sdk/lifecycle/close.js +1 -1
- package/dist/sdk/lifecycle/create.js +1 -1
- package/dist/sdk/lifecycle/plan.d.ts +2 -3
- package/dist/sdk/lifecycle/plan.js +1 -1
- package/dist/sdk/lifecycle/repeated-terminal-state.d.ts +45 -0
- package/dist/sdk/lifecycle/repeated-terminal-state.js +2 -0
- package/dist/sdk/lifecycle/shared-unset-fields.d.ts +9 -0
- package/dist/sdk/lifecycle/shared-unset-fields.js +1 -1
- package/dist/sdk/lifecycle/update-many.d.ts +0 -1
- package/dist/sdk/lifecycle/update-many.js +1 -1
- package/dist/sdk/lifecycle/update.d.ts +29 -1
- package/dist/sdk/lifecycle/update.js +2 -2
- package/dist/sdk/output/table-rows.d.ts +7 -1
- package/dist/sdk/output/table-rows.js +1 -1
- package/dist/sdk/output.d.ts +1 -0
- package/dist/sdk/output.js +2 -2
- package/dist/sdk/ownership-source.d.ts +18 -0
- package/dist/sdk/ownership-source.js +1 -1
- package/dist/sdk/public-surface.json +1 -1
- package/dist/sdk/query/get.d.ts +1 -1
- package/dist/sdk/query/get.js +1 -1
- package/dist/sdk/query/next-ranking-policy.d.ts +35 -0
- package/dist/sdk/query/next-ranking-policy.js +2 -0
- package/dist/sdk/query/next.d.ts +12 -2
- package/dist/sdk/query/next.js +2 -2
- package/dist/sdk/query/projection-contracts.d.ts +4 -0
- package/dist/sdk/query/projection-contracts.js +1 -1
- package/dist/sdk/read-output/surfaces.d.ts +27 -0
- package/dist/sdk/read-output/surfaces.js +2 -0
- package/dist/sdk/read-output-contracts.js +1 -1
- package/dist/sdk/runtime-primitives.d.ts +1 -0
- package/dist/sdk/runtime-primitives.js +1 -1
- package/dist/sdk/runtime.js +1 -1
- package/dist/sdk/test/execution-receipts.d.ts +25 -0
- package/dist/sdk/test/execution-receipts.js +2 -2
- package/dist/sdk/test/execution.d.ts +5 -0
- package/dist/sdk/test/execution.js +2 -2
- package/dist/types.d.ts +2 -0
- package/dist/types.js +1 -1
- package/docs/AGENT_GUIDE.md +1 -1
- package/docs/AGENT_OUTPUT_ENCODINGS.md +12 -0
- package/docs/AGENT_UX_CONTRACTS.md +2 -1
- package/docs/COMMANDS.md +58 -5
- package/docs/CONFIGURATION.md +48 -1
- package/docs/DEVELOPMENT_DEPENDENCY_SECURITY.md +26 -0
- package/docs/PACKED_FIRST_RUN.md +2 -1
- package/docs/READ_OUTPUT_CONTRACTS.md +24 -6
- package/docs/SDK.md +73 -2
- package/docs/TESTING.md +38 -2
- package/docs/agent-task-token-baseline.json +1 -1
- package/marketplace.json +1 -1
- package/package.json +1 -1
- package/packages/pm-beads/package.json +1 -1
- package/packages/pm-calendar/extensions/calendar/index.ts +1 -0
- 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-claude/package.json +1 -1
- package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
- package/plugins/pm-codex/package.json +1 -1
- package/plugins/pm-codex/plugin.json +1 -1
- package/runtime-dependencies.json +1 -1
- package/dist/cli-bundle/chunks/chunk-34MP7WKK.js +0 -6
- package/dist/cli-bundle/chunks/chunk-3KMYHYJV.js +0 -2
- package/dist/cli-bundle/chunks/chunk-42BHHNTL.js +0 -128
- package/dist/cli-bundle/chunks/chunk-I5O3XZOA.js +0 -2
- package/dist/cli-bundle/chunks/chunk-LEIVUGDH.js +0 -8
- package/dist/cli-bundle/chunks/chunk-OH7WPD42.js +0 -114
- package/dist/cli-bundle/chunks/chunk-OOD2A7AF.js +0 -20
- package/dist/cli-bundle/chunks/chunk-Q5V7P6NM.js +0 -2
- package/dist/cli-bundle/chunks/chunk-QLPFYBXN.js +0 -2
- package/dist/cli-bundle/chunks/chunk-SA5NYLPE.js +0 -8
- package/dist/cli-bundle/chunks/chunk-VHLAVTJN.js +0 -31
- package/dist/cli-bundle/chunks/chunk-XAOVJG52.js +0 -3
- package/dist/cli-bundle/chunks/chunk-XPQ4RTSF.js +0 -2
- package/dist/cli-bundle/chunks/item-transaction-WIOBZW4E.js +0 -2
- package/dist/cli-bundle/chunks/register-mutation-5V2NANIS.js +0 -20
- package/dist/cli-bundle/chunks/register-operations-XSFRMUFX.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-2V6NMNYN.js +0 -26
- package/dist/cli-bundle/focused-chunks/chunk-ASHGXMX4.js +0 -3
- package/dist/cli-bundle/focused-chunks/chunk-CKBN2D42.js +0 -12
- package/dist/cli-bundle/focused-chunks/chunk-I642DXOT.js +0 -22
- package/dist/cli-bundle/focused-chunks/chunk-K7DKG5HM.js +0 -91
- package/dist/cli-bundle/focused-chunks/chunk-NMQBXU7N.js +0 -44
- package/dist/cli-bundle/focused-chunks/chunk-PGM3ENGZ.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-QFNV4JTA.js +0 -6
- package/dist/cli-bundle/focused-chunks/chunk-QVJCQMZY.js +0 -26
- package/dist/cli-bundle/focused-chunks/chunk-R2TPPPVU.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-VJVJ2ZX2.js +0 -2
- package/dist/cli-bundle/focused-chunks/item-transaction-ZFDKJIP7.js +0 -2
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import{a as Kr,b as Os}from"./chunk-P3LNMWL2.js";import{$ as vs,Cf as fe,Df as me,Fa as In,Ga as Cn,Ge as Ns,M as To,O as Lo,Sa as Ss,Vc as we,Y as En,ac as As,cb as Rs,da as ks,g as tn,gb as Ts,ib as Je,lb as Re,mb as Te,md as Ls,nb as xs,ob as Ds,pa as Es,pb as ue,qa as Is,qb as Sn,ua as Gr}from"./chunk-ZTJVOBDU.js";import{a as Rn,b as yt}from"./chunk-SPPHDVZE.js";import{$h as ps,Af as ht,Ag as ns,Cf as Qo,Ea as $,Ed as Oo,Fa as rn,Fb as D,Fd as No,Fg as rs,Fi as Cs,Ga as Eo,H as Or,Hb as Mr,Ib as on,Id as Ne,Ie as qe,Jb as C,Jg as fn,Jh as ls,Kb as So,Kd as Mo,Ki as P,Lb as ve,Le as Bo,Ma as M,Me as Ho,Mh as us,Ne as Go,Nh as Br,Oe as Ko,Oh as yn,Pe as zo,Pg as mn,Ph as Xe,Qb as Ro,Qg as de,Rg as le,Sa as Io,Sf as Zo,Sg as is,Tb as ie,Tc as xo,Td as Y,Te as Ve,Tf as es,Tg as os,Ug as ss,Vb as sn,Vd as ln,Vf as $r,Vg as We,Vh as vn,Wg as as,Wh as fs,Wi as Z,Xh as ms,Yb as an,_g as pn,a as E,af as qo,ah as hn,bi as hs,c as re,ce as Fo,ch as gn,ee as $o,eg as gt,ei as gs,fb as Ke,gh as _n,gi as Ye,he as J,hf as be,hi as _s,ie as R,if as Vo,je as F,jf as un,ji as bn,ke as ze,ki as wn,ld as L,li as _t,mi as Se,nf as Wo,ni as Hr,od as Do,oe as Po,oi as ys,pe as jo,pf as Xo,pi as kn,qb as H,qe as Uo,qf as Yo,qh as cs,qi as Me,ra as Ge,rf as Fr,rh as ds,ri as Q,sf as Jo,si as bs,tb as Co,ti as ws,uh as Pr,vg as ts,vh as jr,wa as Nr,wd as cn,xa as nn,xh as Ur,ya as ko,yd as dn,zd as Ao}from"./chunk-WRXQAW7Q.js";import{A as _,C as g,D as Lr,E as bo,F as He,G as ce,H as ye,K as q,M as wo,y as vo}from"./chunk-WX25MU4N.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]="403706c5-987d-5db1-95d2-b0eaded98e92")}catch{}})();function Ol(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:jl(r,t,e.parents)}),"continue"):(e.cursorFound=t===i,"skip")}function Fs(e,t,n,r){let i=de("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:ss(t.after,i)}}function Qe(e,t,n){e.get(t).add(n)}function vt(e){return new Map(e.map(t=>[t,new Set]))}function $s(e){for(let t of e)t.sort();return e.sort((t,n)=>n.length-t.length||t[0].localeCompare(n[0]))}function Tn(e){if(Array.isArray(e))return e.map(n=>Tn(n));if(e===null||typeof e!="object")return e;let t=e.toJSON;return typeof t=="function"?Tn(t.call(e)):Object.fromEntries(Object.entries(e).sort(([n],[r])=>n.localeCompare(r)).map(([n,r])=>[n,Tn(r)]))}function Ms(e){return JSON.stringify(Tn(e))}function Ll(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 Nl(e,t){let n=new Set,r=[];for(let i of e)n.has(i)||Ll(i,t,n,r);return r}function Ml(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 $s(r)}function Ps(e,t){let n=vt(e);for(let[r,i]of t)for(let o of i)Qe(n,o,r);return Ml(Nl(e,t),n)}function Fl(e,t){let n=vt(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";Qe(n,o?r.source:r.target,o?r.target:r.source)}return n}function $l(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 Pl(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 jl(e,t,n){let r=[t],i=t;for(;i!==e;)i=n.get(i),r.push(i);return r.reverse()}function Dn(e,t={}){let n=t.registry??ie(),r=[...e.nodes()],i=Fl(e,n),o=$l(r,i),s=o.flat(),a=s.length===r.length,c=a?[]:Ps(r,i).filter(l=>l.length>1||i.get(l[0]).has(l[0])),d=Pl(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 Ul(e,t,n){let r=vt(e.nodes()),i=n===void 0?void 0:new Set(n.map(s=>e.registry().require(s).kind)),o=e.edges();for(let s of o){let a=e.registry().require(s.kind);i!==void 0&&!i.has(s.kind)&&(a.inverse===void 0||!i.has(a.inverse))||Qe(r,t==="incoming"?s.target:s.source,t==="incoming"?s.source:s.target)}return{adjacency:r,inspectedEdges:o.length}}function Bl(e,t,n,r,i,o){let s=xn(e,t,{...n,after:void 0,direction:"incoming",limit:void 0}),a=xn(e,t,{...n,after:void 0,direction:"outgoing",limit:void 0}),c=new Map,d=[...s.affected,...a.affected].sort((m,h)=>m.distance-h.distance||m.id.localeCompare(h.id)||m.path.join("\0").localeCompare(h.path.join("\0")));for(let m of d)c.has(m.id)||c.set(m.id,m);let l=[...c.values()].sort((m,h)=>m.distance-h.distance||m.id.localeCompare(h.id)),u=r===void 0||r===t?-1:l.findIndex(m=>m.id===r);if(r!==void 0&&r!==t&&u<0)throw new TypeError(`Unknown impact cursor item: ${r}`);let f=l.slice(u+1,u+1+i),p=u+1+f.length<l.length;return{root:t,affected:f,exact:!0,truncated:s.truncated||a.truncated||p,...p?{nextCursor:le(o,f.at(-1)?.id??t)}:{},cost:{visitedNodes:s.cost.visitedNodes+a.cost.visitedNodes,inspectedEdges:s.cost.inspectedEdges+a.cost.inspectedEdges}}}function Hl(e,t,n){let r=n.direction,i=n.maxDepth??Number.POSITIVE_INFINITY,o=n.limit??Number.POSITIVE_INFINITY,{fingerprint:s,after:a}=Fs(t,n,r,i),{adjacency:c,inspectedEdges:d}=Ul(e,r,n.kinds),l={queue:[{id:t,depth:0}],seen:new Set([t]),parents:new Map,affected:[],cursorFound:a===void 0||a===t},u=0,f=!1,p=!1;e:for(let m=0;m<l.queue.length;m+=1){n.signal?.throwIfAborted();let h=l.queue[m];u+=1;let y=[...c.get(h.id)].sort();if(h.depth>=i){y.some(v=>!l.seen.has(v))&&(f=!0);continue}for(let v of y)if(Ol(l,v,h,t,a,o)==="truncate"){f=!0,p=!0;break e}}if(!l.cursorFound)throw new TypeError(`Unknown impact cursor item: ${a}`);return{root:t,affected:l.affected,exact:!0,truncated:f,...p?{nextCursor:le(s,l.affected.at(-1)?.id??t)}:{},cost:{visitedNodes:u,inspectedEdges:d}}}function xn(e,t,n={}){let r=n.direction??"outgoing";if(r!=="both")return Hl(e,t,{...n,direction:r});let i=n.maxDepth??Number.POSITIVE_INFINITY,o=n.limit??Number.POSITIVE_INFINITY,{fingerprint:s,after:a}=Fs(t,n,r,i);return Bl(e,t,n,a,o,s)}function js(e){let t=[...e.nodes()],n=vt(t),r=vt(t);for(let c of e.edges())Qe(n,c.source,c.target),Qe(n,c.target,c.source),Qe(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:$s(i),stronglyConnected:Ps(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 Wb(e,t){let n=new Map(e.edges.map(i=>[Ms(i),i])),r=new Map(t.edges.map(i=>[Ms(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]="a319e7d9-e248-573b-bf1f-35217ce49fd0")}catch{}})();function xe(e,t){return(t===void 0?void 0:Eo(e,t))?.execution_role??ko[e.trim().toLowerCase()]??"agent"}var qr="blocked_by",Us="blocks",Gl=Object.freeze([qr,Us]),zr="no-active-blocker";function A(e){return e.trim().toLowerCase()}function An(e,t){return t?`external:${e}`:`local:${A(e)}`}function Fe(e){let t=new Map,n=typeof e.blocked_by=="string"?e.blocked_by.trim():"";if(n.length>0&&A(n)!==zr){let r=fe(n);t.set(An(n,r),r?n:A(n))}for(let r of e.dependencies??[]){let i=typeof r.id=="string"?r.id.trim():"";if(sn(r.kind)===qr&&i.length>0&&A(i)!==zr){let o=fe(i)||me(r.source_kind);t.set(An(i,o),o?i:A(i))}}return[...t.values()].sort((r,i)=>r.localeCompare(i))}function On(e){let t=new Map;for(let n of e){let r=A(n.id);r.length!==0&&t.set(r,new Set(Fe(n)))}for(let n of e){let r=A(n.id);if(r.length!==0)for(let i of n.dependencies??[]){let o=sn(i.kind)===Us&&typeof i.id=="string"?A(i.id):"";if(o.length===0||o===zr)continue;let s=t.get(o)??new Set;s.add(r),t.set(o,s)}}return new Map([...t].map(([n,r])=>[n,[...r].sort((i,o)=>i.localeCompare(o))]))}function Bs(e,t){let n=A(e.id);return n.length>0?On(t).get(n)??Fe(e):Fe(e)}function Vr(e,t,n,r){let i=e,o=typeof i.id=="string"?r?.get(A(i.id))??Bs(i,[...t.values()]):Fe(e),s=new Set((e.dependencies??[]).filter(a=>sn(a.kind)===qr&&me(a.source_kind)&&typeof a.id=="string"&&a.id.trim().length>0).map(a=>An(a.id.trim(),!0)));return o.map(a=>{if(fe(a)||s.has(An(a,!0)))return{id:a,title:null,status:null,resolved:!1,external:!0,...typeof e.updated_at=="string"?{blocked_since:e.updated_at}:{},resolver:null};let c=t.get(A(a));return c?{id:a,title:c.title,status:c.status,resolved:F(c.status,n)}:{id:a,title:null,status:null,resolved:!1}})}function Ln(e,t,n){return Vr(e,t,n)}function bt(e,t){let n=new Map(e.map(s=>[A(s.id),s])),r=On(e),i=new Set([...Hs(t),...t.blocked_statuses]),o=new Set;for(let s of e){let a=R(s.status,t);i.has(a)&&(t.blocked_statuses.has(a)||Vr(s,n,t,r).some(c=>!c.resolved))&&o.add(A(s.id))}return o}function Wr(e,t,n={},r){let i=[...e.ready,...e.decisions,...e.gates];n.includeContainers===!0&&i.push(...e.containers.filter(s=>s.open_blockers.length===0&&!t.blocked_statuses.has(R(s.item.status,t))));let o={ready:[],decisions:[],gates:[]};for(let s of i){let a=xe(s.item.type,r);a==="human"&&n.includeDecisions!==!0?o.decisions.push(s):a==="gate"&&n.includeGates!==!0?o.gates.push(s):o.ready.push(s)}return o}function Hs(e){return e.active_statuses.size>0?e.active_statuses:new Set([e.open_status])}function Kl(e,t,n){let r=[A(e)],i=new Set;for(;r.length>0;){let o=r.pop();if(!i.has(o)){i.add(o);for(let s of t.get(o)??[]){if(!F(s.status,n))return!0;r.push(A(s.id))}}}return!1}function zl(e){let t=new Map,n=new Map,r=new Map,i=On(e);for(let o of e){t.set(A(o.id),o);let s=typeof o.parent=="string"?o.parent.trim():"";if(s.length>0){let a=A(s),c=n.get(a)??[];c.push(o),n.set(a,c)}for(let a of i.get(A(o.id))){let c=A(a),d=r.get(c)??[];d.push(o.id),r.set(c,d)}}return{itemsById:t,childrenByParent:n,blockedByReverse:r,blockerIdsByItem:i}}function wt(e,t,n,r){let{itemsById:i,childrenByParent:o,blockedByReverse:s,blockerIdsByItem:a}=zl(t),c=new Set([...Hs(n),...n.blocked_statuses]),d=new Set(t.filter(y=>!F(y.status,n)).map(y=>A(y.id))),l=[],u=[],f=[],p=[],m=[],h=0;for(let y of e){if(!c.has(R(y.status,n)))continue;h+=1;let v=Vr(y,i,n,a).filter(S=>!S.resolved),b=(s.get(A(y.id))??[]).filter(S=>d.has(A(S))).sort((S,x)=>S.localeCompare(x)),w={item:y,open_blockers:v,unblocks:b};if(Kl(y.id,o,n)){f.push(w);continue}let k=n.blocked_statuses.has(R(y.status,n));if(v.length===0&&!k){let S=xe(y.type,r);S==="human"?p.push(w):S==="gate"?m.push(w):l.push(w)}else u.push(w)}return{ready:l,blocked:u,containers:f,decisions:p,gates:m,active_count:h,container_count:f.length}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ae1c56b3-148d-502d-9450-e807fdfab4da")}catch{}})();(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="738a98bc-eaf0-578d-88e3-1c5f83c8894b")}catch{}})();function oe(e,t="--limit"){if(e===void 0)return;let n=String(e).trim(),r=n.length===0?Number.NaN:Number(n);if(!Number.isInteger(r)||r<0)throw new g(`${t} must be a non-negative integer`,_.USAGE);return r}function Nn(e,t="--priority"){if(e===void 0)return;let n=String(e).trim(),r=n.length===0?Number.NaN:Number(n);if(!Number.isInteger(r)||r<0||r>4)throw new g(`${t} filter must be 0..4`,_.USAGE);return r}function Gs(e,t,n="--type"){if(e===void 0)return;let r=rn(e,t);if(!r)throw new g(`${n} filter must be one of ${t.types.join("|")}`,_.USAGE);return 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]="75ecca0c-fac8-5a9b-9043-c65731daad4a")}catch{}})();function Xr(e,t){if(e===void 0)return;let n=[],r="";for(let s=0;s<e.length;s+=1){let a=e[s];if(a==="\\"){let c=e[s+1];if(c===","||c==="\\"){r+=c,s+=1;continue}r+=a;continue}if(a===","){n.push(r),r="";continue}r+=a}n.push(r);let i=n.map(s=>s.trim());if(i.some(s=>s.length===0))throw new g(`${t.label} requires at least one non-empty value`,_.USAGE);let o=i.map(s=>t.normalize?.(s)??s);return[...new Set(o)]}function kt(e,t){let n=Xr(e,t);return n===void 0?void 0:new Set(n)}function Ks(e,t,n="--type"){let r=Xr(e,{label:n});if(r===void 0)return;let i=r.map(o=>{let s=rn(o,t);if(!s)throw new g(`${n} filter token "${o}" must be one of ${t.types.join("|")}`,_.USAGE);return s});return new Set(i)}function zs(e,t="--priority"){let n=Xr(e,{label:t});if(n!==void 0)return new Set(n.map(r=>Nn(r,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]="6c580b70-76eb-51db-8587-99b73dd20875")}catch{}})();var ql="global",gw="external",Vl=["open","closed","unknown"],Et=new Map,Wl=240,Xl=2048;function qs(e,t,n){return(e?.trim()||t).slice(0,n)}function Yl(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=e;return typeof t.status=="string"&&(t.title==null||typeof t.title=="string")&&(t.source==null||typeof t.source=="string")&&(t.checkedAt==null||typeof t.checkedAt=="string")}function _w(e){let t=e.name.trim();if(t.length===0)throw new Error("External dependency resolver name must not be empty");if(Et.has(t))throw new Error(`External dependency resolver already registered: ${t}`);let n={name:t,supports:r=>e.supports(r),resolve:r=>e.resolve(r)};return Et.set(t,n),()=>{Et.get(t)===n&&Et.delete(t)}}async function yw(e,t={}){let n=e.trim();if(!fe(n))return null;let r=[...Et.values()].filter(o=>{try{return o.supports(n)}catch{return!1}}),i=await Promise.allSettled(r.map(o=>Promise.resolve().then(()=>o.resolve(n))));for(let[o,s]of i.entries()){if(s.status!=="fulfilled"||!Yl(s.value))continue;let a=r[o],c=s.value,d=Vl.includes(c.status)?c.status:"unknown",l=qs(c.title,"",Wl),u=qs(c.source,n,Xl),f=Date.parse(c.checkedAt?.trim()??""),p=Number.isFinite(f)?new Date(f).toISOString():t.now?.()??new Date().toISOString();return{id:n,status:d,resolved:d==="closed",title:l.length>0?l:null,source:u,checked_at:p,resolver:a.name}}return null}function vw(e){let t=e?.trim();if(t)return me(t)?ql:t}function bw(e,t,n){return Jl(e,t,n)}function Jl(e,t,n){let r=e.trim();return me(n)||fe(r)?r:ks(r,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]="283dfa35-9a8e-524c-b6e2-d433d51215ca")}catch{}})();function G(){let e=ie();for(let t of L()?.relationship_kinds??[])for(let n of t.definitions)e.register(n);return e}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="8b57e560-4ac4-53b6-9fb1-eebb1f30562a")}catch{}})();function It(e){if(typeof e!="string")return;let t=e.trim().toLowerCase();return t.length>0?t:void 0}function Mn(e){return[e.parent_id,e.child_id,e.source,e.kind,e.holder_id,e.target_id??""].join("\0")}function Ql(e,t){let n=new Set,r=[];for(let i of[...e].sort()){if(n.has(i))continue;n.add(i);let o=[{nodeId:i,children:[...t.get(i)??[]].sort(),nextChild:0}];for(;o.length>0;){let s=o.at(-1),a=s.children[s.nextChild];a===void 0?(r.push(s.nodeId),o.pop()):(s.nextChild+=1,n.has(a)||(n.add(a),o.push({nodeId:a,children:[...t.get(a)??[]].sort(),nextChild:0})))}}return r}function Zl(e,t){let n=[...e].sort(),r=Ql(n,t),i=new Set,o=eu(n,t),s=[];for(let a of r.reverse()){if(i.has(a))continue;let c=tu(a,o,i);(c.length>1||t.get(c[0])?.has(c[0]))&&s.push(c)}return s.sort((a,c)=>a.join("\0").localeCompare(c.join("\0")))}function eu(e,t){let n=new Map(e.map(r=>[r,new Set]));for(let[r,i]of t)for(let o of i)n.get(o)?.add(r);return n}function tu(e,t,n){let r=[],i=[e];for(n.add(e);i.length>0;){let o=i.pop();r.push(o);for(let s of[...t.get(o)].sort())n.has(s)||(n.add(s),i.push(s))}return r.sort()}function Vs(e){let t=new Map;for(let n of e){let r=It(n?.id);r&&!t.has(r)&&t.set(r,n)}return t}function nu(e,t,n){let r=It(t.parent);if(!(!r||!n.has(r)))return{parent_id:r,child_id:e,source:"scalar_parent",kind:"parent",holder_id:e,child_cardinality:"one"}}function ru(e,t,n,r){let i=It(t?.id),o=r.resolve(t?.kind);if(!i||!n.has(i)||!o?.hierarchy)return;let s=o.hierarchyDirection==="source_parent";return{parent_id:s?e:i,child_id:s?i:e,source:"dependency",kind:o.kind,holder_id:e,target_id:i,child_cardinality:s?o.incoming:o.outgoing}}function Ws(e,t){let n=new Map;for(let[r,i]of e){let o=nu(r,i,e);o&&n.set(Mn(o),o);for(let s of i.dependencies??[]){let a=ru(r,s,e,t);a&&n.set(Mn(a),a)}}return[...n.values()].sort((r,i)=>Mn(r).localeCompare(Mn(i)))}function Xs(e,t=G()){return Ws(Vs(e),t)}function iu(e,t,n){let r=new Set(e.filter(i=>i.child_cardinality==="one").map(i=>i.child_id));return[...t].filter(([i,o])=>o.length>1&&r.has(i)).map(([i,o])=>({child_id:i,parent_ids:[...o],legacy_terminal:n.has(i)&&o.every(s=>n.has(s))})).sort((i,o)=>i.child_id.localeCompare(o.child_id))}function ou(e,t,n){let r=new Map;for(let o of t){if(o.source!=="dependency")continue;let s=r.get(o.child_id)??new Set;s.add(o.parent_id),r.set(o.child_id,s)}let i=[];for(let[o,s]of e){let a=It(s.parent);if(!a||!e.has(a))continue;let c=[...r.get(o)??[]].filter(d=>d!==a).sort();c.length!==0&&i.push({child_id:o,scalar_parent_id:a,dependency_parent_ids:c,legacy_terminal:n.has(o)&&n.has(a)&&c.every(d=>n.has(d))})}return i.sort((o,s)=>o.child_id.localeCompare(s.child_id))}function Fn(e,t=r=>r==="closed"||r==="canceled",n=G()){let r=Vs(e),i=Ws(r,n),o=Jr(i),s=new Set([...r].filter(([,c])=>t(c.status)).map(([c])=>c)),a=Zl([...r.keys()],new Map([...o.children_by_parent].map(([c,d])=>[c,new Set(d)]))).map(c=>({item_ids:c,legacy_terminal:c.every(d=>s.has(d))}));return{relations:i,cycles:a,cardinality_violations:iu(i,o.parents_by_child,s),divergences:ou(r,i,s)}}function Tw(e){return e.source==="scalar_parent"?`${e.parent_id} -> ${e.child_id} (scalar parent on ${e.holder_id})`:`${e.parent_id} -> ${e.child_id} (${e.kind} dependency on ${e.holder_id})`}function Jr(e){let t=new Map,n=new Map;for(let r of e){let i=t.get(r.child_id)??new Set;i.add(r.parent_id),t.set(r.child_id,i);let o=n.get(r.parent_id)??new Set;o.add(r.child_id),n.set(r.parent_id,o)}return{parents_by_child:new Map([...t].map(([r,i])=>[r,[...i].sort()])),children_by_parent:new Map([...n].map(([r,i])=>[r,[...i].sort()]))}}function Yr(e,t){let n=new Set(t);return e.every(r=>n.has(r))}function xw(e,t,n,r,i){let o=It(n);if(!o)return;let s=Fn(e,r,i),a=Fn(t,r,i),c=a.divergences.find(u=>!s.divergences.some(f=>f.child_id===u.child_id&&f.scalar_parent_id===u.scalar_parent_id&&Yr(u.dependency_parent_ids,f.dependency_parent_ids)));if(c){let u=[c.scalar_parent_id,...c.dependency_parent_ids].sort();throw new g(`Hierarchy mutation would assign ${c.child_id} to multiple parents: ${u.join(", ")}.`,_.CONFLICT,{code:"hierarchy_parent_divergence_created",source_id:o,target_id:c.child_id,verification_errors:u})}let d=a.cardinality_violations.find(u=>(u.child_id===o||u.parent_ids.includes(o))&&!s.cardinality_violations.some(f=>f.child_id===u.child_id&&Yr(u.parent_ids,f.parent_ids)));if(d)throw new g(`Hierarchy mutation would assign ${d.child_id} to multiple parents: ${d.parent_ids.join(", ")}.`,_.CONFLICT,{code:"hierarchy_cardinality_created",source_id:o,target_id:d.child_id,verification_errors:d.parent_ids});let l=a.cycles.find(u=>u.item_ids.includes(o)&&!s.cycles.some(f=>Yr(u.item_ids,f.item_ids)));if(l)throw new g(`Hierarchy mutation would create a cycle: ${l.item_ids.join(" -> ")}.`,_.CONFLICT,{code:"hierarchy_cycle_created",source_id:o,verification_errors:l.item_ids})}(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]="41f814be-ee87-5cae-b674-69c2e7f42655")}catch{}})();function et(e){if(typeof e!="string")return;let t=e.trim();if(!(!t||["none","null","n/a","na"].includes(t.toLowerCase())))return t}function Ct(e){let t=et(e);return t?.toLowerCase()==="no-active-blocker"?void 0:t}function St(e,t,n=!0){let r=et(e);return n&&(me(t)||r!==void 0&&fe(r))}function Qr(e,t){return St(e,t)?`external\0${e}`:`local\0${e.toLowerCase()}`}function Ys(e,t,n,r){return St(e,t)?r.get(e):n.get(e.toLowerCase())}function Ze(e,t){let n=e.toLowerCase(),r=t.toLowerCase();return n!==r?n<r?-1:1:e!==t?e<t?-1:1:0}function su(e){let t=new Map;for(let n of e.dependencies??[]){if(typeof n!="object"||n===null)continue;let r=n,i=et(r.id);if(!i)continue;let o=typeof r.kind=="string"?r.kind:"related",s=`${o}\0${Qr(i,r.source_kind)}`,a=t.get(s);a?a.count+=1:t.set(s,{target_id:i,kind:o,count:1})}return t}function au(e,t=n=>n==="closed"||n==="canceled"){let n=[];for(let r of e)if(!(typeof r?.id!="string"||r.id.trim().length===0))for(let i of su(r).values())i.count<2||n.push({holder_id:r.id.trim(),target_id:i.target_id,kind:i.kind,occurrences:i.count,holder_status:r.status,legacy_terminal:t(r.status)});return n.sort((r,i)=>{let o=Ze(r.holder_id,i.holder_id);if(o!==0)return o;let s=Ze(r.target_id,i.target_id);return s!==0?s:Ze(r.kind,i.kind)})}function cu(e,t,n,r,i){if(typeof n!="object"||n===null)return;let o=et(n.id);if(!o||Qr(o,n.source_kind)!==Qr(t))return;let s=i.resolve(typeof n.kind=="string"?n.kind:"related");if(!(s?.ordering!==!0||(s.precedence??"source_before_target")!=="source_before_target"))return{holder_id:e.id.trim(),target_id:o,dependency_kind:s.kind,holder_status:e.status,legacy_terminal:r(e.status)}}function du(e,t=r=>r==="closed"||r==="canceled",n=G()){let r=new Map;for(let i of e){if(typeof i?.id!="string"||i.id.trim().length===0)continue;let o=et(i.blocked_by);if(o)for(let s of i.dependencies??[]){let a=cu(i,o,s,t,n);a&&r.set(`${a.holder_id.toLowerCase()}\0${a.target_id.toLowerCase()}\0${a.dependency_kind}`,a)}}return[...r.values()].sort((i,o)=>{let s=Ze(i.holder_id,o.holder_id);if(s!==0)return s;let a=Ze(i.target_id,o.target_id);return a!==0?a:Ze(i.dependency_kind,o.dependency_kind)})}function Zr(e,t=n=>n==="closed"||n==="canceled"){let n=e.filter(c=>typeof c?.id=="string"&&c.id.trim().length>0),r=new Set(n.map(c=>c.id.trim().toLowerCase())),i=new Map,o=(c,d,l,u,f)=>{let p=et(d);if(!p||r.has(p.toLowerCase())||St(p,void 0,f))return;let m={holder_id:c.id.trim(),target_id:p,kind:l,source:u,holder_status:c.status,legacy_terminal:t(c.status),no_active_blocker_sentinel:p.toLowerCase()==="no-active-blocker"};i.set(`${m.holder_id}::${m.target_id}::${m.kind}::${m.source}`,m)};for(let c of n){o(c,c.parent,"parent","parent",!1),o(c,c.blocked_by,"blocked_by","blocked_by",!0);for(let d of c.dependencies??[]){if(typeof d!="object"||d===null)continue;let l=d;me(l.source_kind)||o(c,l.id,typeof l.kind=="string"?l.kind:"related","dependency",!0)}}let s=[...i.values()].sort((c,d)=>c.holder_id.localeCompare(d.holder_id)||c.target_id.localeCompare(d.target_id)||c.kind.localeCompare(d.kind)||c.source.localeCompare(d.source)),a=s.filter(c=>c.legacy_terminal);return{active:s.filter(c=>!c.legacy_terminal),legacy_terminal:a,no_active_blocker_sentinels:s.filter(c=>c.no_active_blocker_sentinel)}}function lu(e){let t=new Map;for(let n of[...e.active,...e.legacy_terminal]){if(n.no_active_blocker_sentinel)continue;let r=n.target_id.trim(),i=r.toLowerCase();t.has(i)||t.set(i,r)}return[...t.values()].sort((n,r)=>n.localeCompare(r))}function uu(e){let t=new Map;for(let n of e){let r=Ct(n.blocked_by);r&&St(r)&&!t.has(r)&&t.set(r,r);for(let i of n.dependencies??[]){if(typeof i!="object"||i===null||!St(i.id,i.source_kind))continue;let o=Ct(i.id);o&&!t.has(o)&&t.set(o,o)}}return[...t.values()].sort((n,r)=>n.localeCompare(r))}var Js=new WeakMap;function $n(e){return e.hierarchyIntegrity??Js.get(e)}function fu(e,t=G()){let n={};for(let r of e)for(let i of r.dependencies??[]){if(typeof i!="object"||i===null)continue;let o=i.kind;if(typeof o!="string")continue;let s=o.trim().toLowerCase().replaceAll("-","_"),a=t.resolve(o);a&&s!==a.kind&&(n[s]=(n[s]??0)+1)}return Object.fromEntries(Object.entries(n).sort(([r],[i])=>r.localeCompare(i)))}function Rt(e,t,n){let r=n??G(),i=e.filter(m=>typeof m?.id=="string"&&m.id.trim().length>0),o=new Map(i.map(m=>[m.id.trim().toLowerCase(),m.id.trim()])),s=Zr(i,t),a=lu(s);for(let m of a)o.set(m.toLowerCase(),m);let c=uu(i),d=new Set(o.keys()),l=new Map;for(let m of c){let h=m;for(;d.has(h.toLowerCase());)h=`external:${h}`;l.set(m,h),d.add(h.toLowerCase())}let u=i.map(m=>{let h=Ct(m.parent),y=Ct(m.blocked_by),v=(m.dependencies??[]).flatMap(b=>{if(typeof b!="object"||b===null)return[];let w=b,k=Ct(w.id);return k?[{id:Ys(k,w.source_kind,o,l),kind:typeof w.kind=="string"?w.kind:"related"}]:[]});return{id:m.id.trim(),...h?{parent:o.get(h.toLowerCase())}:{},...y?{blocked_by:Ys(y,void 0,o,l)}:{},dependencies:v}}),f=Fn(i,t,r),p={graph:an.fromItems([...u,...a.map(m=>({id:m})),...c.map(m=>({id:l.get(m)}))],r),details:[...i.map(m=>({id:m.id.trim(),title:m.title,status:m.status,...typeof m.type=="string"&&m.type.trim().length>0?{type:m.type.trim()}:{}})),...a.map(m=>({id:m,title:`[missing] ${m}`,status:"missing"})),...c.map(m=>({id:l.get(m),title:`[external] ${m}`,status:"external"}))],missingIdSet:new Set(a.map(m=>m.toLowerCase())),dangling:s,duplicateRows:au(i,t),orderingContradictions:du(i,t,r),legacyAliasCounts:fu(i,r),hierarchyIntegrity:f};return Js.set(p,f),p}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="f9d73d74-7c4e-5ea9-b34c-c984b4c15ab3")}catch{}})();function Qs(e,t){let n=e.trim().toLowerCase();return t.alias_to_id.get(n)??n}function na(e){return{isTerminal(t){return e.terminal_statuses.has(Qs(t,e))},classify(t){let n=Qs(t,e);return e.terminal_canceled_statuses.has(n)?"canceled":e.terminal_statuses.has(n)?"closed":e.blocked_statuses.has(n)?"blocked":e.draft_statuses.has(n)?"draft":n===e.open_status?"open":e.active_statuses.has(n)?"in_progress":"other"}}}function ei(e){return H(e.acceptance_criteria)===void 0}function ti(e){return!Number.isFinite(e.estimated_minutes)}function ra(e,t){return t.isTerminal(e.status)?H(e.resolution)===void 0:!1}function mu(e){return H(e.reviewer)===void 0}function pu(e){return H(e.risk)===void 0}function hu(e){return typeof e.confidence=="number"?!Number.isFinite(e.confidence):H(e.confidence)===void 0}function gu(e){return H(e.sprint)===void 0}function _u(e){return H(e.release)===void 0}function ni(e){return!!(e.acMissing||e.estimatesMissing||e.resolutionMissing||e.reviewerMissing||e.riskMissing||e.confidenceMissing||e.sprintMissing||e.releaseMissing||e.metadataMissing)}function yu(e,t,n){return[[t.acMissing,ei(e)],[t.estimatesMissing,ti(e)],[t.resolutionMissing,ra(e,n)],[t.reviewerMissing,mu(e)],[t.riskMissing,pu(e)],[t.confidenceMissing,hu(e)],[t.sprintMissing,gu(e)],[t.releaseMissing,_u(e)]].every(([r,i])=>r!==!0||i)}function vu(e,t){return ei(e)||ti(e)||ra(e,t)}function ia(e,t,n){return ni(t)?!(!yu(e,t,n)||t.metadataMissing&&!vu(e,n)):!0}var ri=["acceptance_criteria","estimated_minutes","resolution","tags","parent"];function bu(e,t){switch(t){case"acceptance_criteria":return!ei(e);case"estimated_minutes":return!ti(e);case"resolution":return H(e.resolution)!==void 0;case"tags":return Array.isArray(e.tags)&&e.tags.length>0;default:return H(e.parent)!==void 0}}function wu(e,t,n){return t==="resolution"?n.isTerminal(e.status):!0}function ku(e,t){return t===0?100:Math.round(e/t*1e3)/10}function Zs(){let e={};for(let t of ri)e[t]={present:0,applicable:0,percent:100};return e}function ea(e,t,n){for(let r of ri){if(!wu(t,r,n))continue;let i=e[r];i.applicable+=1,bu(t,r)&&(i.present+=1)}}function ta(e){for(let t of ri){let n=e[t];n.percent=ku(n.present,n.applicable)}}function Pw(e,t){let n=Zs(),r={};for(let i of e){ea(n,i,t);let o=r[i.type]??(r[i.type]=Zs());ea(o,i,t)}ta(n);for(let i of Object.values(r))ta(i);return{overall:n,by_type:r}}var Eu={assignee:"(unassigned)",priority:"(no priority)",tag:"(untagged)",parent:"(unparented)",type:"(untyped)",status:"(no status)"};function Iu(e){return Eu[e]}function Cu(){return{open:0,in_progress:0,blocked:0,draft:0,closed:0,canceled:0,other:0}}function Su(e,t,n){switch(t){case"assignee":return[H(e.assignee)??null];case"parent":return[H(e.parent)??null];case"type":return[H(e.type)??null];case"status":return[H(e.status)??null];case"priority":return[typeof e.priority=="number"?`P${e.priority}`:null];default:{let r=n.tagPrefix?.trim(),i=(Array.isArray(e.tags)?e.tags:[]).filter(o=>typeof o=="string"&&o.length>0&&(!r||o.startsWith(r)));return i.length>0?i:[null]}}}function jw(e,t,n,r={}){let i=new Map,o=0;for(let a of e){o+=1;let c=n.classify(a.status);for(let d of Su(a,t,r)){let l=d??"\0empty",u=i.get(l);u||(u={label:d??Iu(t),key:d,buckets:Cu(),total:0},i.set(l,u)),u.buckets[c]+=1,u.total+=1}}let s=[...i.values()].sort((a,c)=>c.total!==a.total?c.total-a.total:a.key===null?1:c.key===null?-1:a.label.localeCompare(c.label));return{dimension:t,rows:s,total_items:o}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="67f9184e-08b6-5f21-9f92-e60974adbf1e")}catch{}})();var tt=["notes","learnings","files","docs","tests","comments","deps","body","linked_command"];function $e(e){return Array.isArray(e)&&e.length>0}function Ru(e){return typeof e=="string"&&e.trim().length>0}function Tu(e){return Array.isArray(e)?e.some(t=>{if(typeof t!="object"||t===null)return!1;let n=t.command;return typeof n=="string"&&n.trim().length>0}):!1}function sa(e,t){switch(t){case"notes":return $e(e.notes);case"learnings":return $e(e.learnings);case"files":return $e(e.files);case"docs":return $e(e.docs);case"tests":return $e(e.tests);case"comments":return $e(e.comments);case"deps":return $e(e.dependencies);case"body":return Ru(e.body);case"linked_command":return Tu(e.tests)}}function aa(e){return tt.some(t=>e[t]!==void 0)}function ca(e,t){for(let n of tt){let r=t[n];if(r===void 0)continue;let i=sa(e,n);if(r==="present"&&!i||r==="absent"&&i)return!1}return!0}function da(e){return tt.some(t=>t!=="body"&&e[t]!==void 0)}function la(e){return e.body!==void 0}function oa(e,t){return t===0?100:Math.round(e/t*1e3)/10}function xu(){let e={};for(let t of tt)e[t]={present:0,total:0,percent:100};return e}function Bw(e){let t=xu(),n=e.length;for(let s of e)for(let a of tt)sa(s,a)&&(t[a].present+=1);for(let s of tt)t[s].total=n,t[s].percent=oa(t[s].present,n);let r=t.body,i=n-r.present,o={present:i,total:n,percent:oa(i,n)};return{total_items:n,fields:t,body_populated:r,empty_body:o}}(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]="084aad9c-485f-5bdc-8da7-225c9c4f695c")}catch{}})();var Du=e=>({acMissing:e.filterAcMissing===!0,estimatesMissing:e.filterEstimatesMissing===!0,resolutionMissing:e.filterResolutionMissing===!0,metadataMissing:e.filterMetadataMissing===!0,reviewerMissing:e.filterReviewerMissing===!0,riskMissing:e.filterRiskMissing===!0,confidenceMissing:e.filterConfidenceMissing===!0,sprintMissing:e.filterSprintMissing===!0,releaseMissing:e.filterReleaseMissing===!0}),ua=[{field:"notes",presentKey:"hasNotes",absentKey:"noNotes",presentFlag:"--has-notes",absentFlag:"--no-notes"},{field:"learnings",presentKey:"hasLearnings",absentKey:"noLearnings",presentFlag:"--has-learnings",absentFlag:"--no-learnings"},{field:"files",presentKey:"hasFiles",absentKey:"noFiles",presentFlag:"--has-files",absentFlag:"--no-files"},{field:"docs",presentKey:"hasDocs",absentKey:"noDocs",presentFlag:"--has-docs",absentFlag:"--no-docs"},{field:"tests",presentKey:"hasTests",absentKey:"noTests",presentFlag:"--has-tests",absentFlag:"--no-tests"},{field:"comments",presentKey:"hasComments",absentKey:"noComments",presentFlag:"--has-comments",absentFlag:"--no-comments"},{field:"deps",presentKey:"hasDeps",absentKey:"noDeps",presentFlag:"--has-deps",absentFlag:"--no-deps"},{field:"body",presentKey:"hasBody",absentKey:"emptyBody",presentFlag:"--has-body",absentFlag:"--empty-body"},{field:"linked_command",presentKey:"hasLinkedCommand",absentKey:"noLinkedCommand",presentFlag:"--has-linked-command",absentFlag:"--no-linked-command"}],_a=e=>{let t=ua.find(n=>e[n.presentKey]===!0&&e[n.absentKey]===!0);if(t)throw new g(`Cannot combine ${t.presentFlag} with ${t.absentFlag} for the same field.`,_.USAGE);return Object.fromEntries(ua.flatMap(n=>e[n.presentKey]===!0?[[n.field,"present"]]:e[n.absentKey]===!0?[[n.field,"absent"]]:[]))},fa=["priority","deadline","updated_at","created_at","title","parent"],ma=["asc","desc"],ya=new Set(Ts);function Au(e,t,n){let r=e.filter(s=>s.startsWith("item_list_item_read_failed:")).length,i=e.filter(s=>s.startsWith("item_list_directory_read_failed:")).length,o={status:t?"unchecked":r+i>0?"partial":"complete",unreadable_item_count:r,unreadable_directory_count:i};if(n&&o.status==="partial")throw new g(`List source is incomplete: ${r} item document(s) and ${i} item directory/directories could not be read.`,_.GENERIC_FAILURE,{code:"list_source_incomplete",why:"Strict list reads fail closed so agents and SDK consumers never treat an omitted item as a complete workspace.",nextSteps:["Run pm validate --check-storage-integrity to locate unreadable tracker artifacts.","Repair the reported files or align the installed decoder version, then retry."]});return o}function Ou(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.keys(e).length>0}var Lu=[{key:"hasNotes",summaryKey:"has_notes"},{key:"hasLearnings",summaryKey:"has_learnings"},{key:"hasFiles",summaryKey:"has_files"},{key:"hasDocs",summaryKey:"has_docs"},{key:"hasTests",summaryKey:"has_tests"},{key:"hasComments",summaryKey:"has_comments"},{key:"hasDeps",summaryKey:"has_deps"},{key:"hasBody",summaryKey:"has_body"},{key:"hasLinkedCommand",summaryKey:"has_linked_command"},{key:"noNotes",summaryKey:"no_notes"},{key:"noLearnings",summaryKey:"no_learnings"},{key:"noFiles",summaryKey:"no_files"},{key:"noDocs",summaryKey:"no_docs"},{key:"noTests",summaryKey:"no_tests"},{key:"noComments",summaryKey:"no_comments"},{key:"noDeps",summaryKey:"no_deps"},{key:"emptyBody",summaryKey:"empty_body"},{key:"noLinkedCommand",summaryKey:"no_linked_command"}],Nu=[{key:"filterReviewerMissing",summaryKey:"filter_reviewer_missing"},{key:"filterRiskMissing",summaryKey:"filter_risk_missing"},{key:"filterConfidenceMissing",summaryKey:"filter_confidence_missing"},{key:"filterSprintMissing",summaryKey:"filter_sprint_missing"},{key:"filterReleaseMissing",summaryKey:"filter_release_missing"}];function va(e,t){for(let n of Lu)t[n.key]===!0&&(e[n.summaryKey]=!0)}function ba(e,t){for(let n of Nu)t[n.key]===!0&&(e[n.summaryKey]=!0)}function Mu(e,t,n){for(let r of n){let i=t[r.optionKey];i!==void 0&&(e[r.summaryKey]=r.normalize?r.normalize(i):i)}}function Fu(e){let t={};return va(t,e),t}function $u(e){let t={};return ba(t,e),t}var Pu=[{optionKey:"type",summaryKey:"type"},{optionKey:"tag",summaryKey:"tag"},{optionKey:"priority",summaryKey:"priority"},{optionKey:"deadlineBefore",summaryKey:"deadline_before"},{optionKey:"deadlineAfter",summaryKey:"deadline_after"},{optionKey:"updatedAfter",summaryKey:"updated_after"},{optionKey:"updatedBefore",summaryKey:"updated_before"},{optionKey:"createdAfter",summaryKey:"created_after"},{optionKey:"createdBefore",summaryKey:"created_before"},{optionKey:"ids",summaryKey:"ids"},{optionKey:"assignee",summaryKey:"assignee"},{optionKey:"assigneeFilter",summaryKey:"assignee_filter"},{optionKey:"parent",summaryKey:"parent"},{optionKey:"sprint",summaryKey:"sprint"},{optionKey:"release",summaryKey:"release"}],ju=[{optionKey:"type",summaryKey:"type"},{optionKey:"tag",summaryKey:"tag"},{optionKey:"priority",summaryKey:"priority"},{optionKey:"deadlineBefore",summaryKey:"deadline_before"},{optionKey:"deadlineAfter",summaryKey:"deadline_after"},{optionKey:"updatedAfter",summaryKey:"updated_after"},{optionKey:"updatedBefore",summaryKey:"updated_before"},{optionKey:"createdAfter",summaryKey:"created_after"},{optionKey:"createdBefore",summaryKey:"created_before"},{optionKey:"ids",summaryKey:"ids"},{optionKey:"assignee",summaryKey:"assignee"},{optionKey:"assigneeFilter",summaryKey:"assignee_filter"},{optionKey:"parent",summaryKey:"parent"},{optionKey:"sprint",summaryKey:"sprint"},{optionKey:"release",summaryKey:"release"},{optionKey:"limit",summaryKey:"limit"},{optionKey:"offset",summaryKey:"offset"},{optionKey:"includeBody",summaryKey:"include_body"},{optionKey:"compact",summaryKey:"compact"},{optionKey:"fields",summaryKey:"fields"}],Uu=[{key:"filterAcMissing",summaryKey:"filter_ac_missing"},{key:"filterEstimatesMissing",summaryKey:"filter_estimates_missing"},{key:"filterResolutionMissing",summaryKey:"filter_resolution_missing"},{key:"filterMetadataMissing",summaryKey:"filter_metadata_missing"}],Bu="-7d";function Hu(e){let{filtersStatus:t,options:n,treeEnabled:r,treeDepth:i,sortField:o,sortOrder:s,runtimeFieldFilters:a}=e,c={};return t!==null&&(c.status=t),n.dependencyBlocked===!0&&(c.blocked_semantics="status_or_dependency"),Mu(c,n,Pu),ka(c,n),n.filterAcMissing===!0&&(c.filter_ac_missing=!0),n.filterEstimatesMissing===!0&&(c.filter_estimates_missing=!0),n.filterResolutionMissing===!0&&(c.filter_resolution_missing=!0),n.filterMetadataMissing===!0&&(c.filter_metadata_missing=!0),ba(c,n),va(c,n),n.limit!==void 0&&(c.limit=n.limit),n.offset!==void 0&&(c.offset=n.offset),n.includeBody===!0&&(c.include_body=!0),n.fields!==void 0&&(c.fields=n.fields),r&&(c.tree=!0,i!==void 0&&(c.tree_depth=i)),o!==void 0&&(c.sort=o,c.order=s),Ou(a)&&(c.runtime_filters=a),c}function wa(e,t,n){let r=F(e.status,n),i=F(t.status,n);if(r!==i)return r?1:-1;let o=e.priority-t.priority;if(o!==0)return o;let s=C(t.updated_at,e.updated_at);return s!==0?s:(e.id??"").localeCompare(t.id??"")}function Gu(e,t){return[...e].sort((n,r)=>wa(n,r,t))}function pa(e,t){if(e!==void 0)return ve(e,new Date,t)}function Tt(e,t){if(e==null)return;let n=String(e).trim();if(n.length!==0)return ve(n,new Date,t)}function Ku(e){let t=e.updatedAfter!=null&&String(e.updatedAfter).trim().length>0;if([e.today===!0,e.recent===!0,t].filter(n=>n).length>1)throw new g("Choose only one updated_at window: --today, --recent, or --updated-after.",_.USAGE);if(e.today===!0){let n=new Date;return n.setHours(0,0,0,0),n.toISOString()}return e.recent===!0?Tt(Bu,"recent"):Tt(e.updatedAfter,"updated-after")}function ka(e,t){t.today===!0&&(e.today=!0),t.recent===!0&&(e.recent=!0)}function zu(e){if(e==null)return;let t=String(e).trim();if(t.length===0)throw new g("--ids requires at least one non-empty item ID",_.USAGE);let n=t.split(",").map(r=>r.trim()).filter(r=>r.length>0);if(n.length===0)throw new g("--ids requires at least one non-empty item ID",_.USAGE);return new Set(n)}function Ea(e){if(e===void 0)return;let t=String(e).trim(),n=t.length===0?Number.NaN:Number(t);if(!Number.isInteger(n)||n<0)throw new g("Offset filter must be a non-negative integer",_.USAGE);return n}function qu(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 g("List --fields requires a comma-separated list of field names",_.USAGE);return[...new Set(t)]}function Vu(e,t=e.projectionCommand??"list"){let n=e.compact===!0,r=e.brief===!0,i=e.full===!0,o=qu(e.fields);if(Number(n)+Number(r)+Number(i)+ +(o!==void 0)>1)throw new g("List projection options are mutually exclusive. Use one of --compact, --brief, --full, or --fields.",_.USAGE,{code:"projection_options_mutually_exclusive",recovery:{suggested_retry:`pm ${t} --brief`,suggested_retry_args:[t,"--brief"]}});if(i)return{mode:"full",fields:[]};if(r){let s=Ia(e.sort);return{mode:"brief",fields:[...new Set([...jr,s??"priority"])]}}return n?{mode:"compact",fields:[...Pr]}:o?{mode:"fields",fields:[...new Set(o.map(s=>Pe(s)))]}:{mode:"full",fields:[]}}function Pe(e){return e.startsWith("item.")?e.slice(5):e}function Wu(e,t,n){if(e.mode!=="fields")return;let r=Ur(t),i=new Set(r.map(s=>Pe(s))),o=e.fields.filter(s=>!i.has(Pe(s)));if(o.length>0){let s=[n,"--fields",e.fields.filter(a=>!o.includes(a)).join(",")||"id,title,status"];throw new g(`Unknown list --fields value(s): ${o.join(", ")}`,_.USAGE,{code:"unknown_field_projection",examples:["pm list --status open --fields id,title,status","pm list --fields id,title,parent,priority --limit 10","pm list --all --fields id,title,body --limit 5"],recovery:{allowed_values:r,suggested_retry:Ke(s),suggested_retry_args:s}})}}var Xu=new Map([["updated","updated_at"],["update","updated_at"],["modified","updated_at"],["created","created_at"],["create","created_at"]]);function Ia(e){if(e===void 0)return;let t=e.trim().toLowerCase(),n=Xu.get(t);if(n)return n;if(!fa.includes(t))throw new g(`Sort field must be one of ${fa.join("|")} (aliases: updated->updated_at, created->created_at)`,_.USAGE);return t}function Yu(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!ma.includes(t))throw new g(`Sort order must be one of ${ma.join("|")}`,_.USAGE);return t}function Ju(e){return oe(e,"--tree-depth")}function Qu(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!t)throw new g("Assignee filter must be one of assigned|unassigned",_.USAGE);if(t!=="assigned"&&t!=="unassigned")throw new g(`Invalid assignee filter "${e}". Allowed: assigned|unassigned`,_.USAGE);return t}function ha(e,t){return Is(e,t,{strict:!0})}function Ca(e){return kt(e,{label:"--tag",normalize:t=>t.toLowerCase()})}function Zu(e,t,n){let r=Ca(t);if(r===void 0)return;let i=new Set(e.flatMap(s=>s.tags.map(a=>a.trim().toLowerCase()))),o=[...r].filter(s=>!i.has(s));o.length>0&&n.push(`unknown_tags:${o.join(",")}`)}function ef(e,t){if(e&&[...e].some(n=>n.toLowerCase()==="none"||n.toLowerCase()==="null"))throw new g('--assignee no longer accepts "none" or "null". Use --assignee-filter unassigned.',_.USAGE);if(e!==void 0&&t==="unassigned")throw new g("Cannot combine --assignee with --assignee-filter unassigned",_.USAGE)}function tf(e,t,n,r){let i=kt(t.assignee,{label:"--assignee"}),o=Qu(t.assigneeFilter);ef(i,o);let s=Du(t),a=_a(t);return{idsFilter:zu(t.ids),statusSet:e&&e.length>0?new Set(e):void 0,excludeTerminal:t.excludeTerminal===!0,typeFilter:Ks(t.type,n),tagFilters:Ca(t.tag),priorityFilter:zs(t.priority),deadlineBefore:pa(t.deadlineBefore,"deadline-before"),deadlineAfter:pa(t.deadlineAfter,"deadline-after"),updatedAfter:Ku(t),updatedBefore:Tt(t.updatedBefore,"updated-before"),createdAfter:Tt(t.createdAfter,"created-after"),createdBefore:Tt(t.createdBefore,"created-before"),assigneeFilter:i,assigneeModeFilter:o,parentFilter:t.parent?.trim(),treeEnabled:t.tree===!0,sprintFilter:kt(t.sprint,{label:"--sprint"}),releaseFilter:kt(t.release,{label:"--release"}),missingMetadataFilters:s,missingMetadataActive:ni(s),lifecycleClassifier:na(r),contentFieldFilters:a,contentFiltersActive:aa(a)}}function nf(e,t,n){return t.idsFilter&&!t.idsFilter.has(e.id)||t.statusSet&&!t.statusSet.has(e.status)||t.excludeTerminal&&F(e.status,n)||t.typeFilter&&!t.typeFilter.has(e.type)||t.tagFilters&&![...t.tagFilters].some(r=>(e.tags??[]).some(i=>i.trim().toLowerCase()===r))?!1:t.priorityFilter===void 0||t.priorityFilter.has(e.priority)}function rf(e,t){return So(e,t)}function of(e,t){return t.assigneeModeFilter==="assigned"&&!e.assignee||t.assigneeModeFilter==="unassigned"&&e.assignee?!1:t.assigneeFilter===void 0||e.assignee!==void 0&&t.assigneeFilter.has(e.assignee)}function sf(e,t,n){let r=e.parent?.trim().toLowerCase(),i=[...new Set([...n?.get(e.id.trim().toLowerCase())??[],...r?[r]:[]])];return t.parentFilter!==void 0&&!t.treeEnabled&&!i.includes(t.parentFilter.trim().toLowerCase())||t.sprintFilter!==void 0&&(e.sprint===void 0||!t.sprintFilter.has(e.sprint))?!1:t.releaseFilter===void 0||e.release!==void 0&&t.releaseFilter.has(e.release)}function af(e,t,n,r,i){return!(!nf(e,t,n)||!rf(e,t)||!of(e,t)||!sf(e,t,i)||t.missingMetadataActive&&!ia(e,t.missingMetadataFilters,t.lifecycleClassifier)||t.contentFiltersActive&&!ca(e,t.contentFieldFilters)||!Cn(e,r))}function cf(e,t,n,r,i,o,s){let a=tf(t,n,r,i);return e.filter(c=>af(c,a,i,o,s))}function xt(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function ga(e,t,n,r){let i=e,o=typeof i.title=="string"?i.title:"",s=r??xt(typeof i.parent=="string"?i.parent:void 0)??null;return{...e,tree_depth:t,tree_parent:s,tree_children:n,tree_title:`${" ".repeat(t)}${o}`}}function df(e,t){let n=new Map,r=new Map;for(let i of e){let o=i.id.trim().toLowerCase();n.set(o,i);let s=t?t.parents_by_child.get(o)??[]:[xt(i.parent)?.toLowerCase()].filter(a=>a!==void 0);for(let a of s){let c=r.get(a)??[];c.push(i),r.set(a,c)}}return{byId:n,childrenByParent:r}}function lf(e,t,n,r,i){return t?[...r.get(t.toLowerCase())??[]]:e.filter(o=>(i?i.parents_by_child.get(o.id.trim().toLowerCase())??[]:[xt(o.parent)?.toLowerCase()].filter(s=>s!==void 0)).every(s=>!n.has(s)))}function uf(e,t,n,r,i=e){let{byId:o,childrenByParent:s}=df(e,r),a=lf(e,t,o,s,r),c=[],d=new Set,l=new Map(i.map(f=>[f.id.trim().toLowerCase(),f.id.trim()])),u=[...a].reverse().map(f=>({node:f,depth:0,parentId:t===void 0?void 0:l.get(t.trim().toLowerCase())??t.trim()}));for(;u.length>0;){let{node:f,depth:p,parentId:m}=u.pop(),h=f.id.trim().toLowerCase();if(d.has(h))continue;d.add(h);let y=s.get(h)??[];if(c.push(ga(f,p,y.length,m)),!(n!==void 0&&p>=n))for(let v of[...y].reverse())u.push({node:v,depth:p+1,parentId:l.get(h)})}if(t===void 0&&n===void 0)for(let f of e){let p=f.id.trim().toLowerCase();d.has(p)||(d.add(p),c.push(ga(f,0,s.get(p)?.length??0)))}return c}function ff(e,t){return e===t?0:e===null?1:t===null?-1:e.localeCompare(t)}function mf(e,t){return e===t?0:e===null?1:t===null?-1:C(e,t)}function pf(e,t,n){switch(n){case"priority":return e.priority-t.priority;case"deadline":return mf(e.deadline??null,t.deadline??null);case"updated_at":return C(e.updated_at,t.updated_at);case"created_at":return C(e.created_at,t.created_at);case"title":return(e.title??"").localeCompare(t.title??"");case"parent":return ff(e.parent??null,t.parent??null);default:return 0}}function hf(e,t,n,r){return t?[...e].sort((i,o)=>{let s=pf(i,o,t);if(s!==0)return n==="desc"?-s:s;let a=wa(i,o,r);return n==="desc"?-a:a}):Gu(e,r)}function gf(e,t,n=!1){let r=Pe(t.trim());if(r.length===0)return null;let i=e;return n&&r==="title"&&typeof i.tree_title=="string"?i.tree_title:Object.prototype.hasOwnProperty.call(i,r)?i[r]??null:null}function Sa(e,t,n=!1){return t.mode==="full"?e:e.map(r=>{let i={};for(let o of t.fields)i[o]=gf(r,o,n);return i})}function _f(e){let t=[];for(let n of e)t.push(n.metadata_key);return[...t,...Lo(L())]}function yf(e,t){let n=oe(e.limit);if(n!==void 0)return n;if(e.noTruncate!==!0)return t>=1e4?20:void 0}function vf(e,t,n){return t.after===void 0?Ea(t.offset)??0:We(e,t.after,n,r=>r.id)}function Ra(e,t,n){return{...e!==void 0?{applied_limit:e}:{},has_more:t,truncated:t,next_cursor:n??null}}async function bf(e,t){let n=M(process.cwd(),t.path);await Z(n);let r=await P(n),i=Y(r.schema),o=ln(r.schema),s=e.projectionCommand??"list",a=Vu(e,s);return Wu(a,_f(o.definitions),s),{pmRoot:n,settings:r,statusRegistry:i,runtimeFieldFilters:In(e,o,"list"),typeRegistry:$(r,L()),projection:a}}async function wf(e,t,n){let r=t.projection.fields.some(c=>Pe(c)==="body"),i=t.projection.mode==="full"||t.projection.fields.some(c=>ya.has(Pe(c))),o=_a(e),s=da(o),a=la(o);return e.includeBody||r||a?await Sn(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,n,t.settings.schema):i||s?await Ds(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,n,t.settings.schema):await ue(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,n,t.settings.schema)}function kf(e){let t=Ia(e.sort),n=Yu(e.order)??"asc",r=e.tree===!0;if(!r&&e.treeDepth!==void 0)throw new g("List --tree-depth requires --tree",_.USAGE);if(!t&&e.order!==void 0)throw new g("List --order requires --sort",_.USAGE);return{sortField:t,sortOrder:n,treeEnabled:r,treeDepth:r?Ju(e.treeDepth):void 0,parentRoot:r?xt(e.parent):void 0}}function Ef(e,t,n){let r=ha(t.status,n),i;t.lifecycleBucket==="in_progress"?i=[n.in_progress_status]:t.lifecycleBucket==="open"&&(i=[...n.active_statuses].filter(d=>d!==n.in_progress_status).sort((d,l)=>d.localeCompare(l)));let o=r??i??ha(e,n),s=Es(t.status),a=r||s?{...t,excludeTerminal:!1}:t,c="all";return s?c="all":r!==void 0?c=r.length===1?r[0]:r:t.lifecycleBucket!==void 0?c=t.lifecycleBucket:o!==void 0?c=o.length===1?o[0]:o:a.excludeTerminal===!0&&(c=null),{resolvedStatus:o,explicitAllStatuses:s,effectiveOptions:a,filtersStatus:c}}function If(e,t,n,r,i){if(t.after!==void 0&&t.offset!==void 0)throw new g("List --after cannot be combined with --offset.",_.USAGE);let o=yf(t,e.length),s=vf(e,t,i),a=o===void 0?e.slice(s):e.slice(s,s+o),c=Sa(a,n,r),d=e.length,l=a.length>0&&s+a.length<d,u=l&&a.length>0?le(i,a[a.length-1].id,s+a.length-1):void 0;return{projected:c,totalMatched:d,pageExtras:Ra(o,l,u)}}function Ta(e,t,n,r){return de("list",{pmRoot:r,status:e,options:mn(t,Ls),sort:n.sortField??"default",order:n.sortOrder,tree:n.treeEnabled,tree_depth:n.treeDepth??null})}async function Cf(e){let{options:t,runtime:n,statusSelection:r,ordering:i}=e,o=new Set(["status","limit","offset","compact","brief","full","fields","format","stream","includeBody","excludeTerminal","dependencyBlocked","lifecycleBucket","noTruncate","projectionCommand","truncate","notes","learnings","files","docs","tests","comments","deps","linkedCommand"]),s=[n.projection.mode==="full",n.projection.fields.some(p=>{let m=Pe(p);return m==="body"||ya.has(m)})].includes(!0);if([t.limit===void 0,t.after!==void 0,t.noTruncate===!0,t.includeBody===!0,t.dependencyBlocked===!0,t.strictRead===!0,i.treeEnabled,i.sortField!==void 0,s,Ao(),Object.keys(n.runtimeFieldFilters).length>0,Object.entries(t).some(([p,m])=>m!==void 0&&!o.has(p))].includes(!0))return null;let a=await Je(n.pmRoot,[...new Set(Object.values(n.typeRegistry.type_to_folder))]);if(!a)return null;let c=oe(t.limit),d=Ea(t.offset)??0,l=await Rs({pmRoot:n.pmRoot,expectedSourceCursor:a.source_cursor,query:{statuses:r.resolvedStatus,excludeStatuses:r.resolvedStatus===void 0&&r.effectiveOptions.excludeTerminal===!0?[...n.statusRegistry.terminal_statuses]:void 0,terminalStatuses:[...n.statusRegistry.terminal_statuses],limit:c,offset:d}});if(!l)return null;let u=l.items.length>0&&d+l.items.length<l.total,f=u?le(Ta(r.filtersStatus,t,i,n.pmRoot),l.items.at(-1).id,d+l.items.length-1):void 0;return{projected:Sa(l.items,n.projection,!1),totalMatched:l.total,pageExtras:Ra(c,u,f)}}function Sf(e){let{filtersStatus:t,options:n,noTruncate:r,treeEnabled:i,treeDepth:o,sortField:s,sortOrder:a,runtimeFieldFilters:c}=e,d={};t!==null&&(d.status=t),n.dependencyBlocked===!0&&(d.blocked_semantics="status_or_dependency");let l=n;for(let u of ju){let f=l[u.optionKey];f!=null&&(d[u.summaryKey]=f)}for(let u of Uu)l[u.key]===!0&&(d[u.summaryKey]=!0);return Object.assign(d,$u(n),Fu(n)),ka(d,n),r&&(d.no_truncate=!0),n.strictRead===!0&&(d.strict_read=!0),i&&(d.tree=!0,o!==void 0&&(d.tree_depth=o)),s!==void 0&&(d.sort=s,d.order=a),d.runtime_filters=c,d}async function Dt(e,t,n){let r=await bf(t,n),i=[],o=kf(t),s=Ef(e,t,r.statusRegistry),a=t.noTruncate===!0,c=await Cf({options:t,runtime:r,statusSelection:s,ordering:o}),d=c;if(!d){let m=await wf(t,r,i),h=o.treeEnabled||xt(t.parent)!==void 0?Jr(Xs(m,G())):void 0;Zu(m,t.tag,i);let y=cf(m,s.resolvedStatus,s.effectiveOptions,r.typeRegistry,r.statusRegistry,r.runtimeFieldFilters,h?.parents_by_child),v=t.dependencyBlocked===!0?(()=>{let k=bt(m,r.statusRegistry);return y.filter(S=>k.has(S.id.trim().toLowerCase()))})():y,b=hf(v,o.sortField,o.sortOrder,r.statusRegistry),w=o.treeEnabled?uf(b,o.parentRoot,o.treeDepth,h,m):b;d=If(w,t,r.projection,o.treeEnabled,Ta(s.filtersStatus,t,o,r.pmRoot))}let l=D(),u=[...new Set(i)].sort((m,h)=>m.localeCompare(h)),f=Au(u,c!==null,t.strictRead===!0),p=r.projection.mode==="full"?null:[...r.projection.fields];if(r.projection.mode==="compact"&&t.compact===!0){let m=Hu({filtersStatus:s.filtersStatus,options:t,treeEnabled:o.treeEnabled,treeDepth:o.treeDepth,sortField:o.sortField,sortOrder:o.sortOrder,runtimeFieldFilters:r.runtimeFieldFilters});return{items:d.projected,count:d.projected.length,total:d.totalMatched,...d.pageExtras,completeness:f,filters:m,projection:{mode:"compact",fields:p},...u.length>0?{warnings:u}:{}}}return{items:d.projected,count:d.projected.length,total:d.totalMatched,...d.pageExtras,completeness:f,filters:Sf({filtersStatus:s.filtersStatus,options:t,noTruncate:a,treeEnabled:o.treeEnabled,treeDepth:o.treeDepth,sortField:o.sortField,sortOrder:o.sortOrder,runtimeFieldFilters:r.runtimeFieldFilters}),projection:{mode:r.projection.mode,fields:p},sorting:{sort:o.sortField??"default",order:o.sortField?o.sortOrder:"asc",...o.sortField===void 0&&!o.treeEnabled?{effective_keys:[["status_registry:nonterminal_before_terminal","asc"],["priority","asc"],["updated_at","desc"],["id","asc"]]}:{}},now:l,...u.length>0?{warnings:u}:{}}}import{createHash as Rf}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]="e31ef0fb-e803-500b-b1e5-db9edfc880c4")}catch{}})();var Tf=64,xf=8;function Df(e,t){let n=(e.dependencies??[]).map(r=>{if(typeof r!="object"||r===null)return"";let i=r;return`${typeof i.kind=="string"?i.kind:"related"}:${typeof i.id=="string"?i.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??"",n].join("\0")}function Pn(e,t=r=>r==="closed"||r==="canceled",n=ie()){let r=e.filter(o=>typeof o?.id=="string"&&o.id.trim().length>0).map(o=>Df(o,t)).sort(),i=n.list().map(o=>E(o)).sort();return Rf("sha256").update(r.join("")).update("").update(i.join("")).digest("hex")}function xa(e,t,n){let r=t??n;if(!Number.isInteger(r)||r<1)throw new TypeError(`Invalid ${e} bound: ${String(t)}`);return r}var ii=class{#e=new Map;#t;#n;constructor(t={}){this.#t=xa("maxResultsPerWorkspace",t.maxResultsPerWorkspace,Tf),this.#n=xa("maxWorkspaces",t.maxWorkspaces,xf)}lookup(t,n,r){let i=this.#e.get(t),o=!0;(i===void 0||i.fingerprint!==n)&&(i={fingerprint:n,assembly:r(),results:new Map},o=!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,i);let s=i,a=this.#t;return{assembly:s.assembly,assemblyReused:o,fingerprint:n,memoize(c,d){let l=s.results.get(c);if(l!==void 0||s.results.has(c))return s.results.delete(c),s.results.set(c,l),{value:structuredClone(l),reused:!0};let u=d();return s.results.size>=a&&s.results.delete(s.results.keys().next().value),s.results.set(c,structuredClone(u)),{value:u,reused:!1}}}}clear(){this.#e.clear()}},Da=new ii;function jn(){return Da}function I0(){Da.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]="3b494263-6359-57e9-8f34-b0bdcdeda93f")}catch{}})();var Ot=1200,Af=["prerequisite","dependent","ancestor","descendant","provenance","related"],Of=new TextEncoder;function oi(e,t,n){let r=e??t;if(!Number.isInteger(r)||r<1)throw new TypeError(`Relationship context ${n} must be positive`);return r}function At(e){return Math.max(1,Math.ceil(Of.encode(JSON.stringify(e)).byteLength/4))}function Un(e,t,n){let r=n.resolve(e.kind);if(r?.ordering){let i=(r.precedence??"source_before_target")==="source_before_target"?e.source:e.target;return t===i?"prerequisite":"dependent"}if(r?.hierarchy){let i=r.hierarchyDirection==="source_parent"?e.source:e.target;return t===i?"ancestor":"descendant"}return e.kind==="discovered_from"||e.kind==="incident_from"?"provenance":"related"}function Lf(e,t,n,r){let i=e.filter(o=>o.source===t&&o.target===n||o.target===t&&o.source===n).map(o=>Un(o,n,r));return[...new Set(i)].sort()}function Nf(e){return Af.find(t=>e.includes(t))}function Mf(e,t,n,r){let i=r.direction??"both",o=r.maxDepth??3;if(!Number.isInteger(o)||o<0)throw new TypeError("Relationship context maxDepth must be non-negative");let s=new Set([t]),a=[{id:t,distance:0}],c=[],d=0,l=!1;for(let u=0;u<a.length;u+=1){r.signal?.throwIfAborted();let f=a[u];if(f.distance>=o&&l)continue;let p=e.neighborEdges(f.id,{direction:i,kinds:r.kinds,signal:r.signal});if(d+=p.meta.inspectedEdges,f.distance>=o){p.value.some(m=>!s.has(m.id))&&(l=!0);continue}for(let{id:m,edge:h}of p.value){if(s.has(m))continue;s.add(m);let y={id:m,distance:f.distance+1,via:f.id,role:Un(h,m,n)};c.push(y),a.push(y)}}return{rows:c,visitedNodes:a.length,inspectedEdges:d,depthTruncated:l}}function Ff(e,t,n,r){let i={prerequisite:0,dependent:0,ancestor:0,descendant:0,provenance:0,related:0},o=e.neighborEdges(t,{direction:r.direction??"both",kinds:r.kinds,signal:r.signal}).value;for(let{id:s,edge:a}of o)i[Un(a,s,n)]+=1;return{directEdges:i,directTotal:o.length,rootEdges:o.map(({edge:s})=>s)}}function $f(e,t,n,r){let i=new Set;for(let o of t){let s=o.source===n?o.target:o.source,a=Un(o,s,r);(a==="prerequisite"||a==="ancestor")&&i.add(s)}return[...e].sort((o,s)=>Number(i.has(s.id))-Number(i.has(o.id))||o.distance-s.distance||o.id.localeCompare(s.id))}function Pf(e,t){let n=e.distance===1?Lf(t.rootEdges,t.rootId,e.id,t.registry):[];return{...t.details.get(e.id)??{id:e.id},distance:e.distance,role:n.length>0?Nf(n):e.role,via:e.via,reasons:n.length>0?n:[`${e.role} via ${e.via} (depth ${e.distance})`]}}function jf(e){let t=[],n=e.initialTokens,r=0;for(let i of e.candidates){if(t.length>=e.nodeLimit)break;let o=Pf(i,e),s=At(o);if(n+s>e.tokenBudget)break;let a=e.rootEdges.filter(c=>c.source===i.id||c.target===i.id).reduce((c,d)=>c+At(d),0);if(n+r+s+a>e.tokenBudget){if(t.length>0)break}else r+=a;t.push(o),n+=s}if(e.candidates.length>0&&t.length===0)throw new TypeError("Relationship context tokenBudget cannot fit one node");return{nodes:t,usedTokens:n}}function Uf(e){let t=e.options.kinds?new Set(e.options.kinds.map(o=>e.registry.require(o).kind)):void 0,n=e.graph.edges().filter(o=>{if(!e.included.has(o.source)||!e.included.has(o.target))return!1;if(t===void 0||t.has(o.kind))return!0;let s=e.registry.resolve(o.kind)?.inverse;return s!==void 0&&t.has(s)}).sort((o,s)=>+(s.source===e.rootId||s.target===e.rootId)-+(o.source===e.rootId||o.target===e.rootId)),r=[],i=e.initialTokens;for(let o of n){if(r.length>=e.edgeLimit)break;let s=At(o);i+s>e.tokenBudget||(r.push(o),i+=s)}return{edges:r,usedTokens:i,candidateCount:n.length}}function Aa(e,t,n,r={}){if(!e.nodes().includes(t))throw new TypeError(`Relationship node not found: ${t}`);let i=oi(r.nodeLimit,20,"nodeLimit"),o=oi(r.edgeLimit,40,"edgeLimit"),s=oi(r.tokenBudget,Ot,"tokenBudget"),a=r.registry??ie(),c=new Map(n.map(B=>[B.id,B])),d=c.get(t)??{id:t},{evidence:l=[],...u}=d,f=[...l],p=Mf(e,t,a,r),{rootEdges:m,...h}=Ff(e,t,a,r),y=$f(p.rows,m,t,a),v=de("relationship-context",{rootId:t,direction:r.direction??"both",kinds:[...r.kinds??[]].sort(),maxDepth:r.maxDepth??3,ordering:"required-root-evidence-first-v1"}),b=We(y,r.cursor,v,({id:B})=>B,"--cursor"),w=y.slice(b),k=At(u)+At(f);if(k>s)throw new TypeError("Relationship context tokenBudget cannot fit root and evidence");let S=jf({candidates:w,details:c,rootEdges:m,rootId:t,registry:a,nodeLimit:i,tokenBudget:s,initialTokens:k}),{nodes:x}=S,U=new Set([t,...x.map(({id:B})=>B)]),N=Uf({graph:e,rootId:t,included:U,options:r,registry:a,edgeLimit:o,tokenBudget:s,initialTokens:S.usedTokens}),{edges:V,usedTokens:j}=N,W=b+x.length,te=W<y.length,_e=x.at(-1),X=N.candidateCount-V.length,ne=p.depthTruncated||te||X>0,Ie={rootId:t,...u.status===void 0?{}:{rootStatus:u.status},...h,discoveredNodes:y.length,returnedNodes:x.length,returnedEdges:V.length,omittedNodes:y.length-W,omittedEdges:X,evidenceCount:f.length,hasMore:te};return{root:u,summary:Ie,nodes:x,edges:V,evidence:f,meta:{exact:!0,truncated:ne,completeness:ne?"truncated":"complete",nodeLimit:i,edgeLimit:o,tokenBudget:s,usedTokens:j,visitedNodes:p.visitedNodes,inspectedEdges:p.inspectedEdges,omittedNodes:y.length-W,omittedEdges:X,...te&&_e?{nextCursor:le(v,_e.id,W-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]="196b7f2d-b09b-5432-b4ef-9cdf82e92731")}catch{}})();var Bf=["tree","graph","context"],Hf=["none","repeated"],Gf=["outgoing","incoming","both"],Kf=32,zf=200,qf=400,Vf=16e3;function Wf(e){let t=e?.trim().toLowerCase()??"tree";if(Bf.includes(t))return t;throw new g(`Invalid --format value "${e}". Use "tree", "graph", or "context".`,_.USAGE)}function pe(e,t){if(e===void 0)return;let n=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(n)||n<1)throw new g(`Invalid --${t} value "${e}". Use a positive integer.`,_.USAGE);return n}function Bn(e){if(e===void 0)return;let t=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(t)||t<0)throw new g(`Invalid --max-depth value "${e}". Use a non-negative integer.`,_.USAGE);return t}function Xf(e){let t=e?.trim().toLowerCase()??"none";if(Hf.includes(t))return t;throw new g(`Invalid --collapse value "${e}". Use "none" or "repeated".`,_.USAGE)}function ai(e){let t=e?.trim().toLowerCase()??"both";if(Gf.includes(t))return t;throw new g(`Invalid --direction value "${e}". Use "outgoing", "incoming", or "both".`,_.USAGE)}function ci(e,t=ie()){if(e===void 0)return;let n=(Array.isArray(e)?e:[e]).flatMap(i=>i.split(",")).map(i=>i.trim()).filter(i=>i.length>0);if(n.length===0)return;let r=new Set;for(let i of n){let o=t.resolve(i);if(!o){let s=t.list().map(a=>a.kind).join(", ");throw new g(`Invalid --kind value "${i}". Registered kinds: ${s}.`,_.USAGE)}r.add(o.kind)}return[...r].sort()}function Yf(e){if(!e||e.length===0)return[];let t=e.map(({id:r,kind:i})=>({id:r.trim(),kind:i.trim().toLowerCase()})).sort((r,i)=>{let o=r.kind.localeCompare(i.kind);return o!==0?o:r.id.localeCompare(i.id)}),n=new Map;for(let r of t){let i=`${r.kind.toLowerCase()}::${r.id.toLowerCase()}`;n.has(i)||n.set(i,{id:r.id,kind:r.kind})}return[...n.values()]}function Jf(e){return{id:e.id,title:e.title,type:e.type,status:e.status,dependencies:Yf(e.dependencies)}}function Qf(e){return gt(new TextEncoder().encode(JSON.stringify({...e,dependencies:void 0})).byteLength)}function Zf(e,t,n,r,i,o,s,a,c){for(let d of t.dependencies){let l=Math.max(1,Math.ceil(JSON.stringify({from:e.id,to:d.id,kind:d.kind}).length/3));if(a.nodes>=a.nodeLimit){e.truncated=!0,a.reasons.add("node_limit");break}if(a.edges>=a.edgeLimit){e.truncated=!0,a.reasons.add("edge_limit");break}if(a.estimatedTokens+l>=a.tokenBudget){e.truncated=!0,a.reasons.add("token_budget");break}a.edges+=1,a.estimatedTokens+=l,e.dependencies.push(La(d.id,n,r,i,o,s,a,c+1,d.kind))}}function em(e,t,n,r,i,o,s,a){return s.estimatedTokens>=s.tokenBudget&&t?.dependencies.length?(e.truncated=!0,s.reasons.add("token_budget"),!0):!t||e.cycle?!0:r!==void 0&&a>=r?(t.dependencies.length>0&&(e.truncated=!0,s.reasons.add("max_depth")),!0):i==="repeated"&&o.has(n)?(e.collapsed=!0,!0):!1}function La(e,t,n,r,i,o,s,a=0,c){let d=e.trim().toLowerCase(),l=t.get(d),u={id:l?.id??e,title:l?.title,type:l?.type,status:l?.status,via:c,missing:!l,cycle:n.has(d),dependencies:[]};if(s.nodes+=1,s.estimatedTokens+=Qf(u),em(u,l,d,r,i,o,s,a))return u;i==="repeated"&&o.add(d);let f=new Set(n);return f.add(d),Zf(u,l,t,f,r,i,o,s,a),u}function Oa(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 tm(e){let t=new Map,n=new Map,r=[e];for(;r.length>0;){let a=r.pop();t.set(a.id,Oa(t.get(a.id),{id:a.id,title:a.title,type:a.type,status:a.status,missing:a.missing}));for(let c of a.dependencies){t.set(c.id,Oa(t.get(c.id),{id:c.id,title:c.title,type:c.type,status:c.status,missing:c.missing}));let d=c.via??"related",l=`${a.id}::${c.id}::${d}`;n.has(l)||n.set(l,{from:a.id,to:c.id,kind:d}),c.cycle||r.push(c)}}let i=[...t.values()].sort((a,c)=>a.id.localeCompare(c.id)),o=[...n.values()].sort((a,c)=>{let d=a.from.localeCompare(c.from);if(d!==0)return d;let l=a.to.localeCompare(c.to);return l!==0?l:a.kind.localeCompare(c.kind)}),s=i.filter(a=>a.missing).map(a=>a.id);return{root_id:e.id,nodes:i,edges:o,missing_ids:s}}function Na(e,t,n){let r=new Set,i=new Set,o=new Set,s=new Set,a=[{id:e,depth:0}],c=0;for(;c<a.length;){let d=a[c++],l=d.id.trim().toLowerCase();r.add(l);let u=t.get(l);if(!u){o.add(l);continue}if(!(n!==void 0&&d.depth>=n)&&!s.has(l)){s.add(l);for(let f of u.dependencies)i.add(`${l}::${f.id.trim().toLowerCase()}::${f.kind}`),a.push({id:f.id,depth:d.depth+1})}}return{node_count:r.size,edge_count:i.size,edge_basis:"deduplicated_directed",missing_count:o.size}}function nm(e,t=ie()){let n=Bn(e.maxDepth),r=pe(e.nodeLimit,"node-limit"),i=pe(e.edgeLimit,"edge-limit"),o=pe(e.tokenBudget,"token-budget"),s=ci(e.kind,t);return{direction:ai(e.direction),...s===void 0?{}:{kinds:s},...n===void 0?{}:{maxDepth:n},...r===void 0?{}:{nodeLimit:r},...i===void 0?{}:{edgeLimit:i},...o===void 0?{}:{tokenBudget:o},...e.cursor?.trim()?{cursor:e.cursor.trim()}:{}}}function rm(e,t,n,r){return Aa(e.graph,t,e.details.map(i=>i.id===t&&r.length>0?{...i,evidence:r}:i),n)}function si(e,t,n,r){for(let i of n.slice(0,r)){let o=i?.trim();o&&e.push(`${t}:${o}`)}}async function im(e,t,n,r){let i=await Re(e,t,n.id_prefix,n.item_format,r);if(!i)return[];let{document:o}=await Te(i,{schema:n.schema}),s=o.metadata,a=s.files??[],c=s.tests??[],d=s.docs??[],l=[["files",a.length],["tests",c.length],["docs",d.length],["comments",(s.comments??[]).length],["notes",(s.notes??[]).length],["learnings",(s.learnings??[]).length]];if(l.every(([,f])=>f===0))return[];let u=[`linked:${l.map(([f,p])=>`${f}=${p}`).join(",")}`];return si(u,"file",a.map(f=>f.path),3),si(u,"test",c.map(f=>f.command??f.path),2),si(u,"doc",d.map(f=>f.path),2),u}function om(e){let{canonicalId:t,context:n,missingCount:r,missingReferences:i,referenceLimit:o,summaryOnly:s}=e;return{id:t,format:"context",node_count:n.nodes.length+1,edge_count:n.edges.length,edge_basis:"deduplicated_directed",missing_count:r,missing_scope:"traversal",missing_reference_count:i.length,...s?{}:{missing_references:i.slice(0,o),context:n}}}function sm(e){let{row:t,missingReachableSet:n,packetIds:r,filteredKinds:i,registry:o}=e;if(t.no_active_blocker_sentinel||!n.has(t.target_id.trim().toLowerCase())||!r.has(t.holder_id))return!1;if(i===void 0)return!0;let s=o.resolve(t.kind);return s!==void 0&&(i.has(s.kind)||s.inverse!==void 0&&i.has(s.inverse))}function Ma(e,t){let n=Do(),r=t.commandOptionsOverride??(n?.command==="deps"?n.options:t.commandOptions);return cs("deps",{...r,...t.global,resolvedOutputFormat:t.format},e)}function di(e,t){let n=Ma(e,t),r=i=>ls(i,t.format,t.global.lean===!0);return r(t.global.tokenAccounting===!0?ds(n,r):n)}function Fa(e,t,n){let r;for(;;){let i=gt(new TextEncoder().encode(di(e,t)).byteLength);if(i===r)return i;n(i),r=i}}function $a(e){return e instanceof TypeError&&e.message.startsWith("Relationship context tokenBudget cannot fit ")}function Pa(e){let{assembly:t,canonicalId:n,contextOptions:r,rootEvidence:i,summaryOnly:o,rendering:s,missingCount:a,missingReferences:c}=e,d=r.edgeLimit??40,l=Math.min(d,c.length),u=r.tokenBudget,f;for(;;){let p=rm(t,n,{...r,...u===void 0?{}:{tokenBudget:u}},i);f??=p.meta.tokenBudget,u??=f;let m=om({canonicalId:n,context:p,missingCount:a,missingReferences:c,referenceLimit:l,summaryOnly:o});if(o){if(gt(new TextEncoder().encode(di(De(m,!0,s.legacyAliasCounts),s)).byteLength)>f)throw new TypeError("Relationship context tokenBudget cannot fit the rendered summary");return m}if(p.meta.tokenBudget=f,p.meta.usedTokens=Fa(De(m,!1,s.legacyAliasCounts),s,v=>{p.meta.usedTokens=v}),p.meta.usedTokens<=f)return m;if(l>0){l-=1;continue}let h=u,y=h*f/p.meta.usedTokens;u=Math.min(h-1,Math.max(1,Math.floor(y*.9)))}}function ja(e,t){let n=e.contextOptions,r={...e.rendering.global,outputFormat:e.rendering.format},i=["--pm-path",e.pmRoot,"item","deps",e.canonicalId,"--format","context","--output-format",e.rendering.format,"--token-budget"],o=i.length;i.push(String(t));let s=new Set(["--pm-path","--format","--output-format","--token-budget"]),a={format:"context",tokenBudget:t,kind:n.kinds},c=[["--max-depth","maxDepth",n.maxDepth],["--node-limit","nodeLimit",n.nodeLimit],["--edge-limit","edgeLimit",n.edgeLimit],["--direction","direction",n.direction],["--cursor","cursor",n.cursor],["--output-include","outputInclude",r.outputInclude],["--output-limit","outputLimit",r.outputLimit],["--output-budget","outputBudget",r.outputBudget],["--output-session","outputSession",r.outputSession],["--output-cursor","outputCursor",r.outputCursor]];for(let[u,f,p]of c)p!==void 0&&(i.push(u,String(p)),s.add(u),a[f]=p);for(let u of n.kinds??[])i.push("--kind",u),s.add("--kind");let d=[["--summary","summary",e.summaryOnly],["--full","full",e.rendering.commandOptions.full],["--json","json",r.json],["--lean","lean",r.lean],["--output-row-contract","outputRowContract",r.outputRowContract],["--token-accounting","tokenAccounting",r.tokenAccounting],["--no-extensions","noExtensions",r.noExtensions],["--no-pager","noPager",r.noPager]];for(let[u,f,p]of d)p===!0&&(i.push(u),s.add(u),a[f]=!0);let l=ns.find(u=>u.command==="deps");return Reflect.set(a,ts,{canonical_include_modes:[],cli_invocation_observed:!0,explicit_legacy_aliases:Object.values(l.dimensions).flatMap(u=>u.legacy_aliases.flatMap(f=>s.has(f.flag)?[f.flag]:[]))}),rs("deps",a),ht(a.summary===!0,a.full===!0,"--summary"),r.outputInclude=a.outputInclude,{args:i,budgetIndex:o,summaryOnly:a.summary===!0,rendering:{...e.rendering,global:r,commandOptionsOverride:a}}}function am(e,t,n){let r={...t.rendering,commandOptionsOverride:{...t.rendering.commandOptionsOverride,tokenBudget:n}},i;try{i=Pa({...e,contextOptions:{...e.contextOptions,tokenBudget:n},summaryOnly:t.summaryOnly,rootEvidence:t.summaryOnly?[]:e.rootEvidence,rendering:r})}catch(s){if(!$a(s))throw s;return"native_floor"}let o=Ma(De(i,t.summaryOnly,r.legacyAliasCounts),r);return fn(o)?"output_constraints":"fits"}async function cm(e,t){let n=e.contextOptions.tokenBudget??Ot,r=ja(e,n),i=(r.summaryOnly?1:1+Math.min(e.contextOptions.edgeLimit??40,e.missingReferences.length))*(e.assembly.details.reduce((u,f)=>u+f.id.length+f.title.length+f.status.length+(f.type?.length??0),e.assembly.graph.edges().length+e.missingReferences.length)+(r.summaryOnly?[]:e.rootEvidence).reduce((u,f)=>u+f.length,0)),{findContextBudgetRecovery:o}=await import("./context-budget-recovery-L2WP5S26.js"),s=o({requested:n,initialBudget:Ot,workUnits:i,probe:u=>am(e,r,u)}),a=["--pm-path",e.pmRoot,"item","deps",e.canonicalId,"--format","tree","--summary"],c=Ke(a),d=s.feasible_tokens===null?a:[...r.args];s.feasible_tokens!==null&&(d[r.budgetIndex]=String(s.feasible_tokens));let l=Ke(d);return As("Relationship context tokenBudget cannot fit the required rendered packet",{exitCode:_.USAGE,cause:t,context:{code:"invalid_argument_value",field:"tokenBudget",value:String(n),required:s.feasible_tokens===null?"Inspect the compact summary and review the output constraints.":"Retry the preserved context query with --token-budget "+s.feasible_tokens+".",why:"Budget advice is verified against the current query. A minimum is reported only after every smaller positive budget is checked.",examples:[l,c],nextSteps:[l],recovery:{recovery_mode:"compact",suggested_flags:["--token-budget"],token_budget:s,suggested_retry_args:d,suggested_retry:l,next_best_command:c,fallback_candidates:[{source:"relationship_summary",command:c,reason:"Inspect bounded counts separately from context rows."}]}}})}async function dm(e){let{pmRoot:t,assembly:n,canonicalId:r,options:i,rootEvidence:o,summaryOnly:s,rendering:a}=e,c=nm(i,n.graph.registry()),d=n.graph.closure(r,{direction:c.direction,...c.kinds===void 0?{}:{kinds:c.kinds},maxDepth:c.maxDepth??3}),l=d.value.filter(v=>n.missingIdSet.has(v.toLowerCase())),u=new Set(l.map(v=>v.toLowerCase())),f=n.graph.registry(),p=c.kinds?new Set(c.kinds.map(v=>f.require(v).kind)):void 0,m=new Set([r,...d.value]),h=[...n.dangling.active,...n.dangling.legacy_terminal].filter(v=>sm({row:v,missingReachableSet:u,packetIds:m,filteredKinds:p,registry:f})),y={pmRoot:t,assembly:n,canonicalId:r,contextOptions:c,rootEvidence:o,summaryOnly:s,rendering:a,missingCount:l.length,missingReferences:h};try{return Pa(y)}catch(v){if(v instanceof g&&v.code==="invalid_query_cursor"){let b=ja({...y,contextOptions:{...c,cursor:void 0},rendering:{...a,global:{...a.global,outputCursor:void 0}}},c.tokenBudget??Ot),w=Ke(b.args);throw new g(v.message,v.exitCode,{...v.context,nextSteps:[...v.context.nextSteps,w],recovery:{suggested_retry:w,suggested_retry_args:b.args}})}throw $a(v)?await cm(y,v):v}}function lm(e){let t=[e],n;for(;t.length>0;){let r=t.pop();r.dependencies.length>0&&(n=r,t.push(...r.dependencies))}return n?(n.dependencies.pop(),n.truncated=!0,!0):!1}function um(e,t,n,r,i,o,s){let a=i??Kf,c=pe(n.nodeLimit,"node-limit")??zf,d=pe(n.edgeLimit,"edge-limit")??qf,l=pe(n.tokenBudget,"token-budget")??Vf,u={nodeLimit:c,edgeLimit:d,tokenBudget:l,nodes:0,edges:0,estimatedTokens:0,reasons:new Set},f=La(e,r,new Set,a,t==="graph"?"repeated":o,new Set,u),p=Na(e,r,void 0),m;for(;;){let h=tm(f),y=u.reasons.size===0?void 0:{reasons:[...u.reasons].sort(),limits:{max_depth:a,node_limit:c,edge_limit:d,token_budget:l},estimated_tokens:0,total_node_count:p.node_count,total_edge_count:p.edge_count,omitted_node_count:Math.max(0,p.node_count-h.nodes.length),omitted_edge_count:Math.max(0,p.edge_count-h.edges.length)},v={id:e,format:t,node_count:h.nodes.length,edge_count:h.edges.length,edge_basis:"deduplicated_directed",missing_count:h.missing_ids.length,...y?{truncation:y}:{}};if(m=t==="tree"?{...v,tree:f}:{...v,graph:h},(m.truncation===void 0?gt(new TextEncoder().encode(di(De(m,!1,s.legacyAliasCounts),s)).byteLength):Fa(De(m,!1,s.legacyAliasCounts),s,b=>{m.truncation.estimated_tokens=b}))<=l)return m;if(!lm(f))return u.reasons.add("token_budget"),m;u.reasons.add("token_budget")}}function De(e,t,n={}){let r={name:e.format==="tree"?"dependency_tree":e.format==="graph"?"dependency_graph":"relationship_context",restore_with:"--full"},i=e.context?.meta.truncated?[{name:"relationship_context_bounds",restore_with:"--token-budget <n> --node-limit <n> --edge-limit <n> --max-depth <n>"}]:[];return{...e,legacy_alias_counts:n,projection:{mode:t?"summary":"full",declared_field_groups:[r,...i],included_field_groups:t?[]:[r.name]}}}async function Q0(e,t,n){let r=M(process.cwd(),n.path);await Z(r);let i=Wf(t.format),o=Bn(t.maxDepth),s=Xf(t.collapse);ht(t.summary===!0,t.full===!0,"--summary");let a=t.summary===!0,c=await P(r),d=$(c,L()),l=await ue(r,c.item_format,d.type_to_folder,void 0,c.schema),u=Y(c.schema),f=new Map(l.map(y=>[y.id.trim().toLowerCase(),Jf(y)])),p=Zr(l,y=>F(y,u));for(let y of[...p.active,...p.legacy_terminal]){let v=f.get(y.holder_id.trim().toLowerCase()),b=y.kind.trim().toLowerCase();v&&!v.dependencies.some(w=>w.id.trim().toLowerCase()===y.target_id.trim().toLowerCase()&&w.kind===b)&&v.dependencies.push({id:y.target_id,kind:b})}if(!f.has(e.trim().toLowerCase()))throw new g(`Item ${e} not found`,_.NOT_FOUND);let m=n.outputFormat??(n.json===!0||n.json===void 0&&n.defaultOutputFormat==="json"?"json":"toon");if(i==="context"){let y=f.get(e.trim().toLowerCase()).id,v=a?[]:await im(r,y,c,d.type_to_folder),b=S=>F(S,u),w=G(),k=jn().lookup(r,Pn(l,b,w),()=>Rt(l,b,w));return De(await dm({pmRoot:r,assembly:k.assembly,canonicalId:y,options:t,rootEvidence:v,summaryOnly:a,rendering:{format:m,global:n,commandOptions:t,legacyAliasCounts:k.assembly.legacyAliasCounts}}),a,k.assembly.legacyAliasCounts)}let h=Object.fromEntries(Object.entries(Rt(l,y=>F(y,u)).legacyAliasCounts));return a?De({id:e,format:i,...Na(e,f,o)},!0,h):De(um(e,i,t,f,o,s,{format:m,global:n,commandOptions:t,legacyAliasCounts:h}),!1,h)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="f60c628a-2e42-5770-a001-39cce5f92595")}catch{}})();var fm=we.paths,mm=we.visited_paths,pm=we.path_depth;function li(e,t){if(!Number.isFinite(t)||!Number.isInteger(t)||t<0)throw new TypeError(`Invalid path ${e} bound: ${String(t)}`)}function Hn(e,t){return t.hierarchyDirection==="target_parent"?e.target:e.source}function Lt(e,t){return(t.precedence??"source_before_target")==="target_before_source"?e.target:e.source}function nt(e,t){let n=Lt(e,t);return{predecessor:n,successor:n===e.source?e.target:e.source}}function hm(e,t,n){if(t===void 0)return;let r=e.registry(),i=new Set;for(let o of t){let s=r.require(o),a=s.traversal;if(a==="association")throw new TypeError(`Relationship kind ${s.kind} uses association traversal; use graph impact --direction both`);if(a!==n&&a!=="semantic"){let c=a==="hierarchy"?"graph ancestors or graph descendants":"graph predecessors or graph successors";throw new TypeError(`Relationship kind ${s.kind} uses ${a} traversal; use ${c}`)}i.add(s.kind)}return i}function gm(e,t,n,r,i){let o=e.registry(),s=e.neighborEdges(t,{direction:"both",...n===void 0?{}:{kinds:[...n]}}),a=[],c=new Set;for(let d of s.value){let l=o.require(d.edge.kind);n===void 0&&!l[r]||i(d,l,t)&&(c.has(d.id)||(c.add(d.id),a.push(d.id)))}return{neighbors:a,inspectedEdges:s.meta.inspectedEdges}}function _m(e,t,n,r,i,o){if(t>=n)return e.neighbors.some(s=>!o.seen.has(s))&&(o.truncated=!0),!1;for(let s of e.neighbors)if(!o.seen.has(s)){if(o.seen.add(s),o.queue.push({id:s,depth:t+1}),!o.resumed){s===i&&(o.resumed=!0);continue}if(o.value.length>=r)return o.truncated=!0,!0;o.value.push(s)}return!1}function Gn(e,t,n,r,i){if(!e.hasNode(t))throw new TypeError(`Relationship node not found: ${t}`);let o=hm(e,n.kinds,r),s=n.limit??Number.POSITIVE_INFINITY,a=n.maxDepth??Number.POSITIVE_INFINITY,c=n.after,d={seen:new Set([t]),value:[],queue:[{id:t,depth:0}],resumed:c===void 0,truncated:!1},l=0,u=0;for(let f=0;f<d.queue.length;f+=1){n.signal?.throwIfAborted();let p=d.queue[f];l+=1;let m=gm(e,p.id,o,r,i);if(u+=m.inspectedEdges,_m(m,p.depth,a,s,c,d))break}if(!d.resumed)throw new TypeError(`Traversal cursor not found in sequence: ${c}`);return{value:d.value,meta:{visitedNodes:l,inspectedEdges:u,truncated:d.truncated,nextCursor:d.value.at(-1)}}}function Ua(e,t){if(!e.hasNode(t))throw new TypeError(`Relationship node not found: ${t}`)}function Ba(e,t,n,r,i){let o=e.neighborEdges(t.nodes.at(-1),{direction:r,...n.kinds===void 0?{}:{kinds:n.kinds}});return i.inspectedEdges+=o.meta.inspectedEdges,o.value.filter(s=>!t.nodeSet.has(s.id))}function ym(e,t,n,r,i,o,s){for(let a of Ba(e,t,r,i,s)){let c=[...t.nodes,a.id],d=new Set(t.nodeSet).add(a.id),l=[...t.edges,a.edge];if(a.id===n){if(s.value.push({nodes:c,edges:l,length:l.length}),s.value.length>=o)return!0}else s.queue.push({nodes:c,nodeSet:d,edges:l})}return!1}function Ha(e,t,n={}){return Gn(e,t,n,"hierarchy",(r,i)=>Hn(r.edge,i)===r.id)}function Ga(e,t,n={}){return Gn(e,t,n,"hierarchy",(r,i,o)=>Hn(r.edge,i)===o)}function Ka(e,t,n={}){return Gn(e,t,n,"ordering",(r,i)=>Lt(r.edge,i)===r.id)}function za(e,t,n={}){return Gn(e,t,n,"ordering",(r,i,o)=>Lt(r.edge,i)===o)}function vm(e,t,n,r,i,o,s,a){let c={value:[],queue:[{nodes:[t],nodeSet:new Set([t]),edges:[]}],inspectedEdges:0},d=0,l=!1,u=i+1;for(let f=0;f<c.queue.length;f+=1){if(r.signal?.throwIfAborted(),c.value.length>=u||d>=o){l=!0;break}let p=c.queue[f];if(d+=1,p.edges.length>=s){Ba(e,p,r,a,c).length>0&&(l=!0);continue}if(ym(e,p,n,r,a,u,c)){l=!0;break}}return{value:c.value.slice(0,i),meta:{visitedNodes:d,inspectedEdges:c.inspectedEdges,truncated:l}}}function qa(e,t,n,r={}){Ua(e,t),Ua(e,n);let i=r.maxPaths??fm,o=r.maxVisitedPaths??mm,s=r.maxDepth??pm;li("maxPaths",i),li("maxVisitedPaths",o),li("maxDepth",s);let a=r.direction??"outgoing";r.signal?.throwIfAborted();for(let c of r.kinds??[])e.registry().require(c);return t===n?i===0?{value:[],meta:{visitedNodes:1,inspectedEdges:0,truncated:!0}}:{value:[{nodes:[t],edges:[],length:0}],meta:{visitedNodes:1,inspectedEdges:0,truncated:!1}}:vm(e,t,n,r,i,o,s,a)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="789f7451-ceb1-5e5c-b2b6-45eec49580ce")}catch{}})();var bm=16,wm=2,km=8;function Kn(e,t){if(!Number.isInteger(t)||t<1)throw new TypeError(`Invalid ${e} bound: ${String(t)}`)}function zn(e,t,n){let r=e.registry(),i=t===void 0?void 0:new Set(t.map(o=>r.require(o).kind));for(let o of e.edges()){if(o.source===o.target)continue;let s=r.require(o.kind);i!==void 0&&!(i.has(s.kind)||s.inverse!==void 0&&i.has(s.inverse))||n(o,s)}}function Em(e,t){let n=new Map;zn(e,t,r=>{Va(n,r.source,r.target),Va(n,r.target,r.source)});for(let r of n.values())r.sort();return n}function Va(e,t,n){let r=e.get(t);r===void 0?e.set(t,[n]):r.push(n)}function Im(e,t){let n=new Map;for(let o of e){let s=t.get(o);n.set(s,(n.get(s)??0)+1)}let r,i=0;for(let[o,s]of n)(s>i||s===i&&o<r)&&(r=o,i=s);return r}function Cm(e,t){let n=new Map;for(let[i,o]of e){let s=n.get(o);s===void 0?n.set(o,[i]):s.push(i)}let r=[];for(let i of n.values())i.length<t||(i.sort(),r.push({representative:i[0],size:i.length,members:i}));return r.sort((i,o)=>o.size-i.size||i.representative.localeCompare(o.representative))}function Wa(e,t={}){let n=t.maxIterations??bm,r=t.minSize??wm;Kn("maxIterations",n),Kn("minSize",r);let i=Em(e,t.kinds),o=e.nodes(),s=new Map(o.map(u=>[u,u])),a=0,c=!1,d=0,l=0;for(;a<n&&!c;){t.signal?.throwIfAborted(),a+=1,c=!0;for(let u of o){d+=1;let f=i.get(u);if(f===void 0)continue;l+=f.length;let p=Im(f,s);p!==s.get(u)&&(s.set(u,p),c=!1)}}return{value:{communities:Cm(s,r),iterations:a,converged:c},meta:{visitedNodes:d,inspectedEdges:l,truncated:!c}}}function qn(e){return e.direction==="directed"&&(e.ordering||e.hierarchy)}function Vn(e){return e.inverse!==void 0&&e.inverse<e.kind?e.inverse:e.kind}function ui(e,t){return(t.hierarchy?Hn(e,t):e.source===Lt(e,t)?e.target:e.source)===e.target?{from:e.source,to:e.target}:{from:e.target,to:e.source}}function Sm(e,t){if(t===void 0)return;let n=e.registry(),r=new Set;for(let i of t){let o=n.require(i);if(!qn(o))throw new TypeError(`Relationship kind ${o.kind} is not a directed ordering or hierarchy kind`);r.add(Vn(o))}return r}function Rm(e,t){let n=e.registry(),r=new Map;for(let i of e.edges()){let o=n.require(i.kind);if(!qn(o))continue;let s=Vn(o);if(t!==void 0&&!t.has(s))continue;let a=ui(i,o);if(a.from===a.to)continue;let c=r.get(s);c===void 0&&(c={adjacency:new Map,records:[]},r.set(s,c));let d=c.adjacency.get(a.from);d===void 0?c.adjacency.set(a.from,new Set([a.to])):d.add(a.to),c.records.push({...a,edge:i})}return r}function Tm(e){let t=new Map;for(let[n,r]of e.adjacency)t.set(n,[...r].sort());return t}function xm(e,t,n,r){let i=[r];for(let o=n;o!==t;o=e.get(o))i.push(o);return i.push(t),i.reverse()}function Dm(e,t,n,r,i,o){for(let s of e.get(n.id)??[])if(o.inspectedEdges+=1,!(n.depth===0&&s===t.to)&&!r.has(s)){if(r.set(s,n.id),s===t.to)return xm(r,t.from,n.id,s);i.push({id:s,depth:n.depth+1})}}function Am(e,t,n,r){let i=new Map([[t.from,t.from]]),o=[{id:t.from,depth:0}];for(let s=0;s<o.length;s+=1){let a=o[s];if(r.visitedNodes+=1,a.depth>=n)continue;let c=Dm(e,t,a,i,o,r);if(c!==void 0)return c}}function rt(e,t={}){let n=t.maxDepth??km;Kn("maxDepth",n),t.limit!==void 0&&Kn("limit",t.limit);let r=t.limit??Number.POSITIVE_INFINITY,i=Sm(e,t.kinds),o=Rm(e,i),s=[],a={visitedNodes:0,inspectedEdges:0},c=!1;e:for(let d of[...o.keys()].sort()){let l=o.get(d),u=Tm(l);for(let f of l.records){t.signal?.throwIfAborted();let p=Am(u,f,n,a);if(p!==void 0){if(s.length>=r){c=!0;break e}s.push({edge:f.edge,witness:p})}}}return{value:s,meta:{visitedNodes:a.visitedNodes,inspectedEdges:a.inspectedEdges,truncated:c}}}function Om(e,t,n,r,i){let o=new Set,s=[];for(let a of n){if(a.id===e||o.has(a.id))continue;if(!i.seen.has(a.id)){if(t>=r){i.truncated=!0;continue}i.seen.add(a.id),i.queue.push({id:a.id,depth:t+1})}o.add(a.id),s.push(a.id);let c=i.predecessors.get(a.id);c===void 0&&(c=new Set,i.predecessors.set(a.id,c)),c.add(e)}return s}function Lm(e,t,n){let r=n.direction??"outgoing",i=n.maxDepth??Number.POSITIVE_INFINITY,o=[],s=new Map,a={seen:new Set([t]),queue:[{id:t,depth:0}],predecessors:new Map,truncated:!1},c=0;for(let d=0;d<a.queue.length;d+=1){n.signal?.throwIfAborted();let{id:l,depth:u}=a.queue[d];o.push(l);let f=e.neighborEdges(l,{direction:r,...n.kinds===void 0?{}:{kinds:n.kinds}});c+=f.meta.inspectedEdges,s.set(l,Om(l,u,f.value,i,a))}return{order:o,successors:s,predecessors:a.predecessors,inspectedEdges:c,truncated:a.truncated}}function Nm(e,t){let n=[],r=new Set([t]),i=[{id:t,index:0}];for(;i.length>0;){let o=i.at(-1),s=e.successors.get(o.id);if(o.index<s.length){let a=s[o.index];o.index+=1,r.has(a)||(r.add(a),i.push({id:a,index:0}))}else n.push(o.id),i.pop()}return n.reverse()}function Mm(e,t,n,r){let i=e,o=t;for(;i!==o;){for(;r.get(i)>r.get(o);)i=n.get(i);for(;r.get(o)>r.get(i);)o=n.get(o)}return i}function Fm(e,t,n){let r;for(let i of[...e].sort())t.has(i)&&(r=r===void 0?i:Mm(r,i,t,n));return r}function $m(e,t,n,r,i){let o=new Map([[t,t]]),s=!0;for(;s;){s=!1;for(let a of n){if(i?.throwIfAborted(),a===t)continue;let c=Fm(e.predecessors.get(a),o,r);c!==void 0&&o.get(a)!==c&&(o.set(a,c),s=!0)}}return o}function Xa(e,t,n={}){if(!e.hasNode(t))throw new TypeError(`Relationship node not found: ${t}`);if(n.maxDepth!==void 0&&(!Number.isInteger(n.maxDepth)||n.maxDepth<0))throw new TypeError(`Invalid maxDepth bound: ${String(n.maxDepth)}`);let r=Lm(e,t,n),i=Nm(r,t),o=new Map(i.map((d,l)=>[d,l])),s=$m(r,t,i,o,n.signal),a=new Map(i.map(d=>[d,1]));for(let d=i.length-1;d>=0;d-=1){let l=i[d];if(l===t)continue;let u=s.get(l);a.set(u,a.get(u)+a.get(l))}let c=i.filter(d=>d!==t).map(d=>({id:d,idom:s.get(d),dominatedCount:a.get(d)-1})).sort((d,l)=>l.dominatedCount-d.dominatedCount||d.id.localeCompare(l.id));return{value:{root:t,reachableCount:r.order.length,rows:c},meta:{visitedNodes:r.order.length,inspectedEdges:r.inspectedEdges,truncated:r.truncated}}}(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]="3cef3a97-fda4-5811-9e69-04ff722e40a1")}catch{}})();function Ya(e){return Math.round(e*1e6)/1e6}function Ja(e,t,n){let r=e.get(t);r===void 0?e.set(t,new Set([n])):r.add(n)}function Qa(e,t){let n=new Map(e.nodes().map(i=>[i,new Set]));zn(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 Pm(e,t){let n=new Map,r=new Map;return zn(e,t,(i,o)=>{if(!o.ordering)return;let{predecessor:s,successor:a}=nt(i,o);Ja(r,s,a),Ja(n,a,s)}),{incoming:n,outgoing:r}}function jm(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 p of t.get(u))if(n.inspectedEdges+=1,r.has(p)||(r.set(p,f+1),a.push(p)),r.get(p)===f+1){i.set(p,(i.get(p)??0)+i.get(u));let m=o.get(p);m===void 0?o.set(p,[u]):m.push(u)}}return{stack:s,sigma:i,predecessors:o,reachableCount:c,distanceSum:d}}function Um(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 Bm(e,t){return t<=1||e.reachableCount===0?0:e.reachableCount/(t-1)*(e.reachableCount/e.distanceSum)}function Hm(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:Ya((r.get(e)??0)/2),closeness:Ya(i.get(e))}}function Za(e,t={}){let n=Qa(e,t.kinds),r=Pm(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=jm(l,n,a);s.set(l,Bm(u,i.length)),Um(u,l,o)}let c=0;for(let l of n.values())c+=l.length;let d=i.map(l=>Hm(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 Gm(e,t){return e<=t?{source:e,target:t}:{source:t,target:e}}function Km(e,t,n){let r=t.get(e.node)[e.neighborIndex];if(e.neighborIndex+=1,n.inspectedEdges+=1,r!==e.parent){if(n.discovery.has(r)){n.low.set(e.node,Math.min(n.low.get(e.node),n.discovery.get(r)));return}return e.children+=1,n.discovery.set(r,n.timer),n.low.set(r,n.timer),n.timer+=1,{node:r,parent:e.node,neighborIndex:0,children:0}}}function zm(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(Gm(r,e.node))}function qm(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=Km(o,t,n);s!==void 0&&i.push(s)}else zm(o,e,n),i.pop()}}function Wn(e,t={}){let n=Qa(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)||qm(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]="32f3ce0d-64ac-5ad4-b27a-2a279718de22")}catch{}})();function Vm(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}=nt(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 Wm(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 Xm(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 Ym(e,t,n,r,i){let o=new Map;for(let s=e.length-1;s>=0;s-=1){let a=e[s],c=Wm(t.forward.get(a),r,o,i);o.set(a,c-1)}return e.map(s=>Xm(s,n[s],o.get(s))).sort((s,a)=>s.slack-a.slack||s.earliestStart-a.earliestStart||s.id.localeCompare(a.id))}function ec(e,t={}){t.signal?.throwIfAborted();let n=Dn(e,{registry:e.registry()}),r=Vm(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=Ym(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"}}}(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]="fa17672a-97a2-5f94-bdfe-9df970cc038b")}catch{}})();function Jm(e,t,n){for(let r=e.length-1;r>=0;r-=1){n?.throwIfAborted();let i=t.get(e[r]);for(let o of i.successors){n?.throwIfAborted();let s=t.get(o);if(s.latest===void 0||s.duration===void 0)continue;let a=s.latest-s.duration;(i.latest===void 0||a<i.latest)&&(i.latest=a,i.anchor=s.anchor)}}}function Qm(e,t,n,r){let i=[],o=e;for(;o!==void 0&&i.length<n;)r?.throwIfAborted(),i.push(o),o=t.get(o).predecessor;return i.reverse(),{path:i,path_truncated:o!==void 0}}function Zm(e,t,n,r,i){let o=new Map(t.map(a=>[a.id,a])),s=new Map;for(let a of e){i?.throwIfAborted();let c=o.get(a),d=c?.estimated_minutes,l=typeof d=="number"&&Number.isFinite(d)&&d>=0?d:void 0,u={item:c,duration:l,pending:0,successors:new Set,earliest:0};if(c?.deadline!==void 0){let f=Date.parse(c.deadline);Number.isFinite(f)?(u.deadline=(f-n)/6e4,u.latest=u.deadline,u.anchor=a):r(a,"invalid_deadline")}s.set(a,u)}return s}function ep(e,t,n){for(let r of e.edges()){n?.throwIfAborted();let i=e.registry().require(r.kind);if(!i.ordering)continue;let{predecessor:o,successor:s}=nt(r,i),a=t.get(o);a.successors.has(s)||(a.successors.add(s),t.get(s).pending+=1)}}function tp(e,t,n){let r=e.filter(i=>t.get(i).pending===0);for(let i=0;i<r.length;i+=1){n?.throwIfAborted();let o=r[i],s=t.get(o),a=s.earliest===null||s.duration===void 0?null:s.earliest+s.duration;for(let c of s.successors){n?.throwIfAborted();let d=t.get(c);a===null?d.earliest=null:d.earliest!==null&&(a>d.earliest||a===d.earliest&&(d.predecessor===void 0||o<d.predecessor))&&(d.earliest=a,d.predecessor=o),d.pending-=1,d.pending===0&&r.push(c)}}return r}function np(e,t,n,r,i,o,s,a){let c=t.duration;if(t.latest!==void 0){r.scheduled_count+=1;let d=t.latest-c;r.rows.length<o?r.rows.push({id:e,deadline_id:t.anchor,latest_start:new Date(i+d*6e4).toISOString(),slack_minutes:t.earliest===null?null:d-t.earliest}):r.truncated=!0}if(t.deadline!==void 0&&t.earliest!==null&&t.earliest+c>t.deadline)if(r.overcommitted_count+=1,r.overcommitted.length<o){let d=Qm(e,n,Math.min(o,s.remaining),a);s.remaining-=d.path.length,d.path_truncated&&(r.truncated=!0),r.overcommitted.push({deadline_id:e,deadline:t.item.deadline,shortfall_minutes:t.earliest+c-t.deadline,...d})}else r.truncated=!0}function rp(e,t,n,r,i,o,s,a){let c={remaining:o};for(let d of e){a?.throwIfAborted();let l=t.get(d);if(l.pending>0){s(d,"cycle_or_gated_by_cycle");continue}if(l.duration===void 0){s(d,"unknown_estimate");continue}if(l.latest!==void 0&&!Number.isFinite(new Date(r+(l.latest-l.duration)*6e4).getTime())){s(d,"date_range_exceeded");continue}l.earliest===null&&s(d,"unknown_predecessor_estimate"),np(d,l,t,n,r,i,c,a)}}function tc(e,t,n={}){n.signal?.throwIfAborted();let r=Date.parse(n.now??new Date().toISOString());if(!Number.isFinite(r))throw new TypeError("Invalid scheduling clock");let i=n.maxWork??1e5,o=n.limit??10;for(let[f,p]of[["maxWork",i],["limit",o]])if(!Number.isSafeInteger(p)||p<1)throw new TypeError(`Invalid scheduling ${f}`);let s={as_of:new Date(r).toISOString(),basis:"derived_elapsed_minutes",complete:!0,truncated:!1,work_limit_exceeded:!1,scheduled_count:0,residual_count:0,overcommitted_count:0,rows:[],residuals:[],overcommitted:[]},a=e.nodes(),c=e.edges();if(a.length+c.length+t.length>i)return{...s,complete:!1,work_limit_exceeded:!0};let d=(f,p)=>{s.complete=!1,s.residual_count+=1,s.residuals.length<o?s.residuals.push({id:f,reason:p}):s.truncated=!0},l=Zm(a,t,r,d,n.signal);ep(e,l,n.signal);let u=tp(a,l,n.signal);return Jm(u,l,n.signal),rp(a,l,s,r,o,i,d,n.signal),s}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ccb7d865-8baa-5379-a810-7be494eadcb1")}catch{}})();function it(){return{nodes:0,isolated:0,degree_leq_one:0,semantic_nodes:0,without_semantic_edges:0,degree_histogram:{}}}function ic(e,t,n,r){let i={all:it(),active:it(),terminal:it()},o=new Map;for(let s of e.details){if(r?.throwIfAborted(),e.missingIdSet.has(s.id.toLowerCase())||s.status==="external")continue;let a=o.get(s.status)??it();o.set(s.status,a);let c=e.graph.incidentEdges(s.id),d=c.some(l=>n(l.kind));for(let l of[i.all,i[t(s.status)?"terminal":"active"],a]){l.nodes+=1,l.isolated+=+(c.length===0),c.length<=1&&(l.degree_leq_one+=1),d?l.semantic_nodes+=1:l.without_semantic_edges+=1;let u=String(c.length);l.degree_histogram[u]=(l.degree_histogram[u]??0)+1}}return{coverage_by_lifecycle:i,coverage_by_status:Object.fromEntries([...o].sort(([s],[a])=>s.localeCompare(a)))}}function nc(e){if(!Xn(e))return!1;let t=e;if(!["nodes","isolated","degree_leq_one","semantic_nodes","without_semantic_edges"].every(r=>Number.isSafeInteger(t[r])&&Number(t[r])>=0)||!Xn(t.degree_histogram))return!1;let n=Object.entries(t.degree_histogram);return n.every(([r,i])=>/^(0|[1-9]\d*)$/.test(r)&&Number.isSafeInteger(i)&&Number(i)>=0)&&n.reduce((r,[,i])=>r+Number(i),0)===t.nodes&&Number(t.isolated)<=Number(t.degree_leq_one)&&Number(t.degree_leq_one)<=Number(t.nodes)&&Number(t.semantic_nodes)+Number(t.without_semantic_edges)===t.nodes}function Xn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function oc(e){for(let r of["ordering_acyclic","active_ordering_acyclic"])if(e[r]!==void 0&&typeof e[r]!="boolean")return!1;let t=e.coverage_by_lifecycle,n=e.coverage_by_status;return t===void 0&&n===void 0?!0:!Xn(t)||!Xn(n)?!1:["all","active","terminal"].every(r=>nc(t[r]))&&Object.values(n).every(nc)}function rc(e,t){return Object.fromEntries([...new Set([...Object.keys(e),...Object.keys(t)])].sort().map(n=>{let r=Object.hasOwn(e,n)?e[n]:it(),i=Object.hasOwn(t,n)?t[n]:it(),o=Object.fromEntries([...new Set([...Object.keys(r.degree_histogram),...Object.keys(i.degree_histogram)])].sort().map(s=>[s,(i.degree_histogram[s]??0)-(r.degree_histogram[s]??0)]));return[n,{nodes:i.nodes-r.nodes,isolated:i.isolated-r.isolated,degree_leq_one:i.degree_leq_one-r.degree_leq_one,semantic_nodes:i.semantic_nodes-r.semantic_nodes,without_semantic_edges:i.without_semantic_edges-r.without_semantic_edges,degree_histogram:o}]}))}function sc(e,t){return!e.coverage_by_lifecycle||!t.coverage_by_lifecycle||!e.coverage_by_status||!t.coverage_by_status?{lifecycle_comparable:!1}:{lifecycle_comparable:!0,coverage_by_lifecycle:rc(e.coverage_by_lifecycle,t.coverage_by_lifecycle),coverage_by_status:rc(e.coverage_by_status,t.coverage_by_status)}}(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]="896e1553-b127-532f-ac39-e0d47f29eebc")}catch{}})();var ot=["missing_reference_active","missing_reference_terminal","legacy_no_blocker_sentinel","ordering_cycle","legacy_ordering_cycle","ordering_storage_contradiction","legacy_ordering_storage_contradiction","hierarchy_cycle","legacy_hierarchy_cycle","hierarchy_cardinality_violation","legacy_hierarchy_cardinality_violation","hierarchy_direction_violation","legacy_hierarchy_direction_violation","duplicate_edge","legacy_duplicate_edge","duplicate_dependency_row","legacy_duplicate_dependency_row","stale_lifecycle_block","isolated_active_node","sparse_active_node"];(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]="34b2e83e-f6a1-57e7-84ee-4ad83acb2e19")}catch{}})();var ip=25,op="milestone",sp="outcome milestone:",ap=new Set(["discovered_from","incident_from","recurs_from","supersedes","verifies"]);function Yn(e){return ap.has(e)}var ac={error:0,warning:1,info:2};function cc(e){return new Set((e??[]).filter(t=>typeof t=="string").map(t=>t.trim().toLowerCase()))}function st(e,t,n,r,i,o,s,a){let c=[...i].sort((d,l)=>d.localeCompare(l));return{code:e,severity:t,policy:n,message:r(c.length),count:c.length,sample:c.slice(0,o),sample_truncated:c.length>o,remediation:s,...a===void 0?{}:{evidence:[...a].sort((d,l)=>d.localeCompare(l)).slice(0,o)}}}function cp(e,t){return e.cycles.map(n=>st(n.legacy_terminal?"legacy_hierarchy_cycle":"hierarchy_cycle",n.legacy_terminal?"info":"error","Structural hierarchy must be acyclic across scalar and registered dependency relationships.",r=>`${r} items participate in one hierarchy cycle.`,n.item_ids,t,n.legacy_terminal?"Preserve historical rows unless an explicit legacy repair is approved.":"Remove or retype one exact hierarchy relation before continuing mutation."))}function dc(e,t,n){let r=e.cardinality_violations.filter(i=>i.legacy_terminal===n);return r.length===0?[]:[st(n?"legacy_hierarchy_cardinality_violation":"hierarchy_cardinality_violation",n?"info":"error","Every structural child must resolve to at most one logical parent across all hierarchy spellings.",i=>`${i} child item${i===1?"":"s"} resolve to multiple hierarchy parents.`,r.map(i=>i.child_id),t,n?"Preserve historical rows unless an explicit legacy repair is approved.":"Remove the exact surplus hierarchy rows so each child has one parent.",r.map(i=>`${i.child_id} <- ${i.parent_ids.join(", ")}`))]}function lc(e,t,n){let r=e.divergences.filter(i=>i.legacy_terminal===n);return r.length===0?[]:[st(n?"legacy_hierarchy_direction_violation":"hierarchy_direction_violation",n?"info":"error","Scalar parent metadata and dependency-backed hierarchy rows must resolve to the same logical parent.",i=>`${i} child item${i===1?"":"s"} have divergent hierarchy storage surfaces.`,r.map(i=>i.child_id),t,n?"Preserve historical rows unless an explicit legacy repair is approved.":"Align the scalar parent and exact dependency rows to one canonical parent.",r.map(i=>`${i.child_id}: scalar=${i.scalar_parent_id} dependencies=${i.dependency_parent_ids.join(",")}`))]}function dp(e,t){let n=$n(e);return n?[...cp(n,t),...dc(n,t,!1),...dc(n,t,!0),...lc(n,t,!1),...lc(n,t,!0)]:[]}function lp(e){let t=e.graph.registry(),n=new Map;for(let r of e.graph.edges()){let i=t.require(r.kind);if(!i.ordering)continue;let[o,s]=(i.precedence??"source_before_target")==="target_before_source"?[r.target,r.source]:[r.source,r.target],a=n.get(o);a?a.push(s):n.set(o,[s])}for(let r of n.values())r.sort((i,o)=>i.localeCompare(o));return n}function fc(e,t){t.indexes.set(e,t.nextIndex),t.lowLinks.set(e,t.nextIndex),t.nextIndex+=1,t.stack.push(e),t.onStack.add(e)}function up(e,t,n,r){let i=n.get(e.node)??[];if(e.neighborIndex>=i.length)return!1;let o=i[e.neighborIndex];return e.neighborIndex+=1,r.indexes.has(o)?r.onStack.has(o)&&r.lowLinks.set(e.node,Math.min(r.lowLinks.get(e.node),r.indexes.get(o))):(fc(o,r),t.push({node:o,neighborIndex:0})),!0}function fp(e,t,n,r){t.pop();let i=t.at(-1);if(i&&r.lowLinks.set(i.node,Math.min(r.lowLinks.get(i.node),r.lowLinks.get(e.node))),r.lowLinks.get(e.node)!==r.indexes.get(e.node))return;let o=[];for(;;){let s=r.stack.pop();if(r.onStack.delete(s),o.push(s),s===e.node)break}(o.length>1||o.length===1&&n.get(o[0])?.includes(o[0]))&&r.components.push(o.sort((s,a)=>s.localeCompare(a)))}function mp(e){let t={indexes:new Map,lowLinks:new Map,onStack:new Set,stack:[],components:[],nextIndex:0},n=[...e.keys()].sort((r,i)=>r.localeCompare(i));for(let r of n){if(t.indexes.has(r))continue;let i=[{node:r,neighborIndex:0}];for(fc(r,t);i.length>0;){let o=i.at(-1);up(o,i,e,t)||fp(o,i,e,t)}}return t.components.sort((r,i)=>r[0].localeCompare(i[0]))}function fi(e){return`${e.holder_id} -> ${e.target_id} (${e.kind})`}function ee(e,t,n,r,i,o,s,a){t.length!==0&&e.push(st(r,i,o,s,t,n,a))}function pp(e,t,n){let r=[],i=[...e.dangling.active,...e.dangling.legacy_terminal].filter(o=>!o.no_active_blocker_sentinel);return ee(r,i.filter(o=>!t(o.holder_status)).map(fi),n,"missing_reference_active","error","Active items must not reference absent targets; missing prerequisites distort scheduling.",o=>`${o} active dangling reference(s) to absent items`,"Restore or re-create the referenced item, or remove/retype the reference on the holder."),ee(r,i.filter(o=>t(o.holder_status)).map(fi),n,"missing_reference_terminal","info","Terminal items may retain historical references, but absent targets remain unexplainable context.",o=>`${o} terminal dangling reference(s) to absent items`,"Leave as history debt or clean up in a dedicated changelog-safe closed-item batch."),ee(r,e.dangling.no_active_blocker_sentinels.map(fi),n,"legacy_no_blocker_sentinel","info","The pre-structured-dependency no-active-blocker sentinel is retired; real edges carry blocker state.",o=>`${o} legacy no-active-blocker sentinel reference(s)`,"Delete the sentinel reference; blocker state is derived from blocked_by edges."),r}function pi(e,t){let n=t.get(e);return n?!n.terminal:!0}function mc(e){return`${e.holder_id} -> ${e.target_id} (blocked_by scalar + ${e.dependency_kind} dependency)`}function hp(e,t){let n=[],r=[];for(let o of e.orderingContradictions??[])(o.legacy_terminal?r:n).push(mc(o));let i=[];return ee(i,n,t,"ordering_storage_contradiction","error","A scalar blocker and same-target structured ordering row must not assert opposite precedence.",o=>`${o} active scalar-versus-structured ordering contradiction(s)`,"Remove the structured dependency row that points the holder before its scalar blocker, or replace both representations with one unambiguous ordering edge."),ee(i,r,t,"legacy_ordering_storage_contradiction","info","Terminal scalar-versus-structured ordering contradictions are exact historical storage defects with no live scheduling effect.",o=>`${o} terminal scalar-versus-structured ordering contradiction(s)`,"Remove the contradictory blocks dependency row in a dedicated changelog-safe closed-item batch; preserve the scalar blocker as the historical precedence record."),i}function gp(e,t,n,r){let i=[],o=lp(e);for(let c of mp(o)){let d=c.some(f=>pi(f,t)),l=new Set(c.map(f=>f.toLowerCase())),u=(e.orderingContradictions??[]).filter(f=>l.has(f.holder_id.toLowerCase())&&l.has(f.target_id.toLowerCase())).map(mc);i.push(d?st("ordering_cycle","error","Order-bearing relationship kinds must stay acyclic; a cycle makes every member unschedulable.",f=>`execution-order cycle across ${f} item(s)`,c,r,"Remove or retype one ordering edge inside the cycle, or split the work so precedence is linear.",u.length===0?void 0:u):st("legacy_ordering_cycle","info","Ordering cycles between exclusively terminal items are historical contradictions with no scheduling effect.",f=>`terminal-only execution-order cycle across ${f} item(s)`,c,r,"Leave as history debt, or clean up in a dedicated changelog-safe closed-item batch; never repair closed items ad hoc.",u.length===0?void 0:u))}let s=new Map;for(let[c,d]of o)for(let l of d){let u=s.get(l);u?u.push(c):s.set(l,[c])}let a=[...t.values()].filter(c=>!c.missing&&!c.terminal&&n(c.status)&&!(s.get(c.id)??[]).some(d=>{let l=t.get(d);return l===void 0||!l.terminal})).map(c=>c.id);return ee(i,a,r,"stale_lifecycle_block","warning","A blocked lifecycle status must be backed by at least one open ordering predecessor.",c=>`${c} status-blocked item(s) with no open blocker edge`,'Add a local blocker edge, declare an external blocker with --dep "id=<external-ref>,kind=blocked_by,source_kind=external", or move the item back to an active status.'),i}function Jn(e){let t=e.edges.map(n=>n.kind).sort((n,r)=>n.localeCompare(r));return`${e.from} -> ${e.to} (${t.join(" + ")})`}function hi(e){let t=e.graph.registry(),n=new Map;for(let i of e.graph.edges()){let o=t.require(i.kind);if(!qn(o))continue;let s=ui(i,o);if(s.from===s.to)continue;let a=`${Vn(o)}::${s.from}::${s.to}`,c=n.get(a);c?c.edges.push(i):n.set(a,{...s,edges:[i]})}let r=[...n.values()].filter(i=>i.edges.length>=2);for(let i of r)i.edges.sort((o,s)=>o.kind.localeCompare(s.kind));return r.sort((i,o)=>i.from.localeCompare(o.from)||i.to.localeCompare(o.to))}function _p(e,t,n){let r=[],i=[];for(let s of hi(e))(pi(s.from,t)||pi(s.to,t)?r:i).push(Jn(s));let o=[];return ee(o,r,n,"duplicate_edge","info","One semantic relationship should be stored once; parallel same-family spellings (reciprocal inverse pairs included) add no information and skew degree metrics.",s=>`${s} duplicated relationship(s) between active endpoints`,"Remove all but one stored spelling of the relationship; keep the canonical direction the holder declared first."),ee(o,i,n,"legacy_duplicate_edge","info","Duplicated spellings between exclusively terminal items are historical noise with no scheduling effect.",s=>`${s} duplicated relationship(s) between terminal endpoints`,"Leave as history debt or clean up in a dedicated changelog-safe closed-item batch."),o}function yp(e,t){let n=[],r=[];for(let o of e.duplicateRows??[])(o.legacy_terminal?r:n).push(`${o.holder_id} -> ${o.target_id} (${o.kind} x${o.occurrences})`);let i=[];return ee(i,n,t,"duplicate_dependency_row","warning","One dependency row must be stored once per holder; identical repeated rows are a storage-layer defect invisible to the assembled graph.",o=>`${o} exactly duplicated stored dependency row(s) on active holder(s)`,"Remove the repeated rows so the dependency is stored exactly once; graph semantics are unchanged."),ee(i,r,t,"legacy_duplicate_dependency_row","info","Identical repeated dependency rows on terminal holders are historical storage noise with no scheduling effect.",o=>`${o} exactly duplicated stored dependency row(s) on terminal holder(s)`,"Leave as history debt or clean up in a dedicated changelog-safe closed-item batch."),i}function vp(e,t){let n=new Map,r={source_to_target:[],target_to_source:[],both:[]};for(let s of e.graph.registry().list())s.outcomeTraversal!==void 0&&r[s.outcomeTraversal].push(s.kind);let i={source_to_target:r.source_to_target.join(","),target_to_source:r.target_to_source.join(","),both:r.both.join(",")},o=(s,a)=>{let c=n.get(a)??new Set;c.add(s),n.set(a,c)};for(let s of e.graph.edges()){t?.throwIfAborted();let a=e.graph.registry().require(s.kind);(a.outcomeTraversal==="source_to_target"||a.outcomeTraversal==="both")&&o(s.source,s.target),(a.outcomeTraversal==="target_to_source"||a.outcomeTraversal==="both")&&o(s.target,s.source)}return{basis:i,reverse:n}}function bp(e,t,n){let r=new Set(e),i=[...e].sort();for(let o=0;o<i.length;o+=1){n?.throwIfAborted();for(let s of[...t.get(i[o])??[]].sort())r.has(s)||(r.add(s),i.push(s))}return r}function wp(e,t,n,r){let i=0,o=0,s=0,a=0;for(let p of e.values())if(r?.throwIfAborted(),!t.has(p.id)&&!(p.missing||p.status==="external")){if(p.terminal){s+=1,n.has(p.id)&&(a+=1);continue}n.has(p.id)?i+=1:o+=1}let c=i+o,d=s-a,l=i+a,u=o+d,f=l+u;return{active_outcome_reachable_nodes:i,active_outcome_unreachable_nodes:o,active_outcome_reachability_basis_points:c===0?0:Math.floor(i*1e4/c),terminal_nodes:s,terminal_outcome_reachable_nodes:a,terminal_outcome_unreachable_nodes:d,terminal_outcome_reachability_basis_points:s===0?0:Math.floor(a*1e4/s),outcome_reachable_nodes:l,outcome_unreachable_nodes:u,outcome_reachability_basis_points:f===0?0:Math.floor(l*1e4/f)}}function kp(e,t,n){let r=new Set(e.details.filter(a=>a.type?.toLowerCase()===op&&a.title.trim().toLowerCase().startsWith(sp)).map(a=>a.id)),{basis:i,reverse:o}=vp(e,n),s=bp(r,o,n);return{outcome_nodes:r.size,outcome_reachability_basis:i,...wp(t,r,s,n)}}function Ep(e,t,n,r,i){e.active+=1;let o=t.type??"(untyped)",s=e.byType.get(o);s||(s={active:0,isolated:0,degree_leq_one:0},e.byType.set(o,s)),s.active+=1,!(n>1)&&(e.degreeLeqOne+=1,s.degree_leq_one+=1,n===0&&(e.isolated+=1,s.isolated+=1),!(r.has(t.id.toLowerCase())||i.has(o.toLowerCase()))&&(n===0?e.isolates.push(t.id):e.sparse.push(t.id)))}function Ip(e,t,n,r,i,o,s){let a={active:0,missing:0,isolated:0,degreeLeqOne:0,isolates:[],sparse:[],byType:new Map};for(let b of e.graph.nodes()){s?.throwIfAborted();let w=t.get(b);if(w){if(w.missing){a.missing+=1;continue}w.terminal||Ep(a,w,e.graph.incidentEdges(b).length,n,r)}}let{isolates:c,sparse:d}=a,l=[];ee(l,c,i,"isolated_active_node","warning","Active work should be reachable from the graph unless explicitly declared a valid isolate.",b=>`${b} active item(s) with no relationships`,"Link the item to its parent, prerequisite, or origin \u2014 or register it as an exempt isolate."),ee(l,d,i,"sparse_active_node","info","Active items with a single edge often miss an honest semantic partner; sparse is not automatically defective.",b=>`${b} active item(s) with exactly one relationship`,"Investigate for an honest second edge (story->task, defect family, cross-epic complement); do not fabricate one.");let u=e.graph.edges().length,f=rt(e.graph,{signal:s}).value,p=new Set(f.map(({edge:b})=>`${b.source.toLowerCase()}\0${b.target.toLowerCase()}\0${b.kind}`));for(let b of e.orderingContradictions??[])p.add(`${b.holder_id.toLowerCase()}\0${b.target_id.toLowerCase()}\0${b.dependency_kind}`);let m=Object.fromEntries(Object.entries(o).sort(([b],[w])=>b.localeCompare(w))),h=Object.entries(m).reduce((b,[w,k])=>b+(Yn(w)?k:0),0),y=Wn(e.graph,{signal:s}).value,v=kp(e,t,s);return{findings:l,profile:{nodes:e.graph.nodes().length,recorded_nodes:e.details.filter(b=>b.status!=="missing"&&b.status!=="external").length,edges:u,informative_edges:u-p.size,redundant_edges:f.length,ordering_contradiction_edges:e.orderingContradictions?.length??0,edge_basis:"deduplicated_directed",edges_by_kind:m,edge_share_by_kind:Object.fromEntries(Object.entries(m).map(([b,w])=>[b,w/u])),semantic_edges:h,semantic_edge_share:u===0?0:h/u,active_nodes:a.active,missing_nodes:a.missing,isolated_active_nodes:a.isolated,degree_leq_one_active_nodes:a.degreeLeqOne,coverage_by_type:Object.fromEntries([...a.byType.entries()].sort(([b],[w])=>b<w?-1:1)),articulation_points:y.articulationPoints.length,bridge_edges:y.bridges.length,...v,finding_subjects_by_code:Object.fromEntries(ot.map(b=>[b,0]))}}}function Qn(e,t={}){let n=t.isTerminal??(f=>f==="closed"||f==="canceled"),r=t.isBlocked??(f=>f==="blocked"),i=t.maxSampleSize??ip;if(!Number.isInteger(i)||i<1)throw new TypeError(`Invalid audit sample bound: ${String(t.maxSampleSize)}`);let o=cc(t.exemptIsolates),s=cc(t.isolateExemptTypes),a=new Map(e.details.map(f=>[f.id,{id:f.id,status:f.status,missing:e.missingIdSet.has(f.id.toLowerCase()),terminal:n(f.status),...f.type===void 0?{}:{type:f.type}}]));t.signal?.throwIfAborted();let c={};for(let f of e.graph.edges())c[f.kind]=(c[f.kind]??0)+1;let d=pp(e,n,i);d.push(...dp(e,i)),t.signal?.throwIfAborted(),d.push(...hp(e,i)),t.signal?.throwIfAborted(),d.push(...gp(e,a,r,i)),t.signal?.throwIfAborted(),d.push(..._p(e,a,i),...yp(e,i)),t.signal?.throwIfAborted();let l=Ip(e,a,o,s,i,c,t.signal);d.push(...l.findings),d.sort((f,p)=>ac[f.severity]-ac[p.severity]||f.code.localeCompare(p.code)||f.sample[0].localeCompare(p.sample[0]));let u=l.profile.finding_subjects_by_code;for(let f of d)u[f.code]+=f.count;return{findings:d,profile:{...l.profile,...ic(e,n,Yn,t.signal),ordering_acyclic:!d.some(f=>f.code==="ordering_cycle"||f.code==="legacy_ordering_cycle"),active_ordering_acyclic:!d.some(f=>f.code==="ordering_cycle"),finding_subjects_by_code:u}}}function mi(e,t){let n=[...new Set([...Object.keys(e),...Object.keys(t)])].sort(),r={};for(let i of n){let o=(t[i]??0)-(e[i]??0);o!==0&&(r[i]=o)}return r}function uc(e){return e.profile.coverage_by_type??{}}function Cp(e,t){let n={},r=uc(e),i=uc(t),o=[...new Set([...Object.keys(r),...Object.keys(i)])].sort();for(let s of o){let a=Object.assign({active:0,isolated:0,degree_leq_one:0},r[s]),c=Object.assign({active:0,isolated:0,degree_leq_one:0},i[s]),d={active:c.active-a.active,isolated:c.isolated-a.isolated,degree_leq_one:c.degree_leq_one-a.degree_leq_one};Object.values(d).some(l=>l!==0)&&(n[s]=d)}return n}function pc(e,t){let n=Cp(e,t),{edge_share_by_kind:r={},semantic_edges:i=0,semantic_edge_share:o=0}=e.profile,{edge_share_by_kind:s={},semantic_edges:a=0,semantic_edge_share:c=0}=t.profile,d=e.profile.recorded_nodes??e.profile.nodes,l=t.profile.recorded_nodes??t.profile.nodes,u=e.profile.informative_edges??e.profile.edges,f=t.profile.informative_edges??t.profile.edges,p=e.profile.redundant_edges??0,m=t.profile.redundant_edges??0,h=e.profile.ordering_contradiction_edges??0,y=t.profile.ordering_contradiction_edges??0;return{baseline_saved_at:e.saved_at,same_snapshot:e.fingerprint===t.fingerprint,affected_subjects_by_code:mi(e.affected_subjects_by_code,t.affected_subjects_by_code),profile:{nodes:t.profile.nodes-e.profile.nodes,recorded_nodes:l-d,edges:t.profile.edges-e.profile.edges,informative_edges:f-u,redundant_edges:m-p,ordering_contradiction_edges:y-h,active_nodes:t.profile.active_nodes-e.profile.active_nodes,missing_nodes:t.profile.missing_nodes-e.profile.missing_nodes,isolated_active_nodes:t.profile.isolated_active_nodes-e.profile.isolated_active_nodes,degree_leq_one_active_nodes:t.profile.degree_leq_one_active_nodes-e.profile.degree_leq_one_active_nodes,edges_by_kind:mi(e.profile.edges_by_kind,t.profile.edges_by_kind),edge_share_by_kind:mi(r,s),semantic_edges:a-i,semantic_edge_share:c-o,coverage_by_type:n,...sc(e.profile,t.profile)}}}import hc 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]="e5089f2d-3fc5-5843-95ab-ba3dd2ab9582")}catch{}})();var gc=2,gi=500,Sp=64,Rp="graph-durable-cache";function _c(e){return qe(e,Rp,30,`graph-cache:${process.pid}`,!1,!1,3e3)}function Mt(e){return hc.join(e,"runtime","graph-cache.json")}function yc(e){return hc.join(e,"runtime","graph-audit-baseline.json")}function _i(e){if(e!==null)try{let t=JSON.parse(e);return typeof t!="object"||t===null||t.version!==gc||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 yi(e,t){let n=await ye(Mt(e)),r=_i(n),i=r?.fingerprint===t;return{exists:n!==null,fresh:i,results:i?r.results:{}}}async function vi(e,t,n,r,i){let o=await _c(e);try{let s=_i(await ye(Mt(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-Sp)))delete a[d];await q(Mt(e),JSON.stringify({version:gc,fingerprint:t,saved_at:new Date().toISOString(),results:a})),n.results=a}finally{await o()}}async function bi(e){let t=await _c(e);try{await wo(Mt(e))}finally{await t()}}async function vc(e,t){let n=Mt(e),r=await ye(n),i=_i(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 wi(e,t){return t||e>=gi}function Zn(e){return at(e)&&Object.values(e).every(je)}function at(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function je(e){return Number.isInteger(e)&&Number(e)>=0}function bc(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0&&e<=1}function Nt(e,t){return e===void 0||t(e)}function Tp(e){return at(e)&&Object.values(e).every(bc)}function xp(e){return at(e)?Object.values(e).every(t=>at(t)&&[t.active,t.isolated,t.degree_leq_one].every(je)):!1}function Dp(e,t,n){let r=["recorded_nodes","informative_edges","redundant_edges","ordering_contradiction_edges"],i=r.filter(s=>e[s]!==void 0).length;if(i!==0&&i!==r.length||!r.every(s=>Nt(e[s],je)))return;let o={recorded_nodes:e.recorded_nodes??t,informative_edges:e.informative_edges??n,redundant_edges:e.redundant_edges??0,ordering_contradiction_edges:e.ordering_contradiction_edges??0};return o.recorded_nodes<=t&&o.informative_edges<=n&&o.redundant_edges<=n&&o.ordering_contradiction_edges<=n?o:void 0}function Ap(e,t,n){let r=[...t,...n,"finding_subjects_by_code"],i=r.filter(o=>e[o]!==void 0).length;return i!==0&&i!==r.length?!1:t.every(o=>Nt(e[o],je))&&n.every(o=>Nt(e[o],je)&&(e[o]===void 0||Number(e[o])<=1e4))&&Nt(e.finding_subjects_by_code,Zn)}function Op(e,t,n,r){let i=Dp(e,n,r);if(i===void 0)return;let o=["articulation_points","bridge_edges","outcome_nodes","active_outcome_reachable_nodes","active_outcome_unreachable_nodes","terminal_nodes","terminal_outcome_reachable_nodes","terminal_outcome_unreachable_nodes","outcome_reachable_nodes","outcome_unreachable_nodes"],s=["active_outcome_reachability_basis_points","terminal_outcome_reachability_basis_points","outcome_reachability_basis_points"];if(!Ap(e,o,s)||e.edge_basis!==void 0&&e.edge_basis!=="deduplicated_directed")return;let a=Zn(e.finding_subjects_by_code)?e.finding_subjects_by_code:{};return{edge_basis:"deduplicated_directed",...i,...Object.fromEntries(o.map(c=>[c,e[c]??0])),...Object.fromEntries(s.map(c=>[c,e[c]??0])),finding_subjects_by_code:Object.fromEntries(ot.map(c=>[c,a[c]??t[c]??0]))}}function Lp(e,t,n,r,i){let o=[n,r,i],s=o.filter(d=>d!==void 0).length;if(s===0)return{edge_share_by_kind:{},semantic_edges:0,semantic_edge_share:0};if(s!==o.length||!Tp(n)||!je(r)||!bc(i))return;let a=Object.entries(t);if(a.reduce((d,[,l])=>d+l,0)!==e||Object.keys(n).length!==a.length||a.some(([d,l])=>n[d]!==(e===0?0:l/e)))return;let c=a.reduce((d,[l,u])=>d+(Yn(l)?u:0),0);if(!(r!==c||i!==(e===0?0:c/e)))return{edge_share_by_kind:n,semantic_edges:r,semantic_edge_share:i}}function Np(e){if(e!==null)try{let t=JSON.parse(e);if(!at(t))return;let n=t,r=n.profile;if(typeof n.saved_at!="string"||typeof n.fingerprint!="string")return;let i=n.affected_subjects_by_code;if(!Zn(i)||!at(r)||!oc(r)||![r.nodes,r.edges,r.active_nodes,r.missing_nodes,r.isolated_active_nodes,r.degree_leq_one_active_nodes].every(je)||!Zn(r.edges_by_kind)||!Nt(r.coverage_by_type,xp))return;let o=Lp(r.edges,r.edges_by_kind,r.edge_share_by_kind,r.semantic_edges,r.semantic_edge_share);if(o===void 0)return;let s=Op(r,i,r.nodes,r.edges);if(s===void 0)return;let{coverage_by_type:a={}}=r;return{...n,profile:{...r,...o,...s,coverage_by_type:a}}}catch{return}}async function wc(e){return Np(await ye(yc(e)))}async function kc(e,t){await q(yc(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]="253f392d-4e91-57ec-b656-6134583d57e5")}catch{}})();var Mp={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)."},ordering_storage_contradiction:{op:"remove",confidence:"high",rationale:"The structured ordering row asserts the opposite precedence from the same-target scalar blocker; remove that exact dependency row or replace both representations with one unambiguous edge."},legacy_ordering_storage_contradiction:{op:"remove",confidence:"high",rationale:"The terminal holder contains a proven contradictory structured ordering row; remove it in a dedicated changelog-safe batch while preserving the scalar blocker as history."},hierarchy_cycle:{op:"investigate",confidence:"low",rationale:"Cut or retype one exact structural relation in the cycle; the planner preserves every evidence row because intent determines the correct parent."},legacy_hierarchy_cycle:{op:"waive",confidence:"high",rationale:"Terminal-only hierarchy cycles are historical debt; waive them unless an explicit closed-history repair is approved."},hierarchy_cardinality_violation:{op:"investigate",confidence:"medium",rationale:"Choose the canonical parent and remove or retype the exact surplus hierarchy rows; the planner cannot infer ownership intent."},legacy_hierarchy_cardinality_violation:{op:"waive",confidence:"high",rationale:"Multiple parents confined to terminal items are historical debt; waive them unless a dedicated history repair is approved."},hierarchy_direction_violation:{op:"investigate",confidence:"medium",rationale:"Align the scalar parent and dependency-backed hierarchy rows to the intended canonical parent."},legacy_hierarchy_direction_violation:{op:"waive",confidence:"high",rationale:"Divergent hierarchy storage confined to terminal items is historical debt; waive it unless a dedicated history repair is approved."},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 Ec(e){return`${e.source} -${e.kind}-> ${e.target}`}function Fp(e){let[t,...n]=e.edges;return n.map(r=>({op:"remove",code:"duplicate_edge",subject:Ec(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: ${Ec(t)}`,`group: ${Jn(e)}`],confidence:"high"}))}function $p(e,t){if(e.code==="duplicate_edge")return e.sample.flatMap(r=>Fp(t.get(r)));let n=Mp[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 Ic(e,t={}){let{redundancyLimit:n,...r}=t,i=Qn(e,r),o=new Map(hi(e).map(d=>[Jn(d),d])),s=i.findings.flatMap(d=>$p(d,o)),a=i.findings.some(d=>d.sample_truncated);t.signal?.throwIfAborted();let c=rt(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]="66df3949-0caf-5f01-8cec-3bba3d1e6111")}catch{}})();var Tc=new Set(["ancestors","descendants","predecessors","successors","paths","impact","dominators"]);function Cc(e,t,n){let r=e;if(t&&e.subcommand==="audit"){let{nodes:i,recorded_nodes:o,edges:s,active_nodes:a,terminal_nodes:c,missing_nodes:d,ordering_acyclic:l,active_ordering_acyclic:u,coverage_by_lifecycle:f}=e.profile,p=Object.fromEntries(Object.entries(f).map(([m,h])=>{let{degree_histogram:y,...v}=h;return[m,v]}));r={...e,profile:{nodes:i,recorded_nodes:o,edges:s,active_nodes:a,terminal_nodes:c,missing_nodes:d,ordering_acyclic:l,active_ordering_acyclic:u,coverage_by_lifecycle:p}}}return{...r,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 Pp(e,t,n,r){return{assembly:t,...n===void 0?{}:{kinds:n},maxDepth:Bn(r.maxDepth),limit:e==="impact"&&Number(r.limit)===0?0:pe(r.limit,"limit")??(r.full===!0?Number.MAX_SAFE_INTEGER:we.rows),after:r.after?.trim()||void 0,direction:ai(r.direction),maxPaths:pe(r.maxPaths,"max-paths"),sample:pe(r.sample,"sample")??we.samples,exemptIsolates:Sc(r.exemptIsolate),exemptIsolateTypes:Sc(r.exemptIsolateType),saveBaseline:r.saveBaseline===!0,summary:r.summary===!0,unbounded:r.full===!0}}function Sc(e){return e===void 0?[]:(Array.isArray(e)?e:[e]).flatMap(t=>t.split(",")).map(t=>t.trim()).filter(t=>t.length>0)}function jp(e,t,n){let r=e.trim().toLowerCase();if(!Or.includes(r))throw To({command_path:"graph",token:r||"<empty>",allowed:Or});let i=r;if(Tc.has(i)&&!t?.trim())throw new g(`graph ${i} requires an item id.`,_.USAGE);if(i==="paths"&&!n?.trim())throw new g("graph paths requires a source and a target item id.",_.USAGE);return i}function ki(e){throw e instanceof TypeError?new g(e.message,_.USAGE):e}function Ei(e){return{truncated:e.truncated,cost:{visited_nodes:e.visitedNodes,inspected_edges:e.inspectedEdges}}}function Rc(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 g(`Item ${t} not found`,_.NOT_FOUND)}function Up(e,t,n){let r={ancestors:Ha,descendants:Ga,predecessors:Ka,successors:za}[e],i;try{i=r(n.assembly.graph,t,{...n.kinds===void 0?{}:{kinds:n.kinds},...n.maxDepth===void 0?{}:{maxDepth:n.maxDepth},limit:n.limit,...n.after===void 0?{}:{after:n.after}})}catch(s){ki(s)}let o=Ei(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 Bp(e,t,n){let r=qa(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,...Ei(r.meta),...n.summary?{}:{paths:r.value.map(i=>({nodes:i.nodes,kinds:i.edges.map(o=>o.kind),length:i.length}))}}}function Hp(e,t){let n;try{n=xn(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},...t.after===void 0?{}:{after:t.after}})}catch(r){ki(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 Gp(e,t,n){return{acyclic:e.acyclic,ordered_node_count:e.order.length,layer_count:e.layers.length,frontier_count:e.frontier.length,critical_path_length:e.criticalPathLength,cycle_count:e.cycles.length,...t?{}:{frontier:e.frontier.slice(0,n),critical_path:e.criticalPath.slice(0,n),cycles:e.cycles.slice(0,n)}}}function Kp(e,t,n){return{component_count:e.components.length,largest_component_size:e.components[0]?.length??0,orphan_count:e.orphans.length,...t?{}:{orphans:e.orphans.slice(0,n),hubs:e.hubs.slice(0,n)}}}function zp(e,t,n){let r=0,i=0,o=0;for(let s of e.cycles)r+=Number(s.legacy_terminal);for(let s of e.cardinality_violations)i+=Number(s.legacy_terminal);for(let s of e.divergences)o+=Number(s.legacy_terminal);return{acyclic:e.cycles.length===0,relation_count:e.relations.length,cycle_count:e.cycles.length,active_cycle_count:e.cycles.length-r,legacy_cycle_count:r,cardinality_violation_count:e.cardinality_violations.length,active_cardinality_violation_count:e.cardinality_violations.length-i,legacy_cardinality_violation_count:i,parent_divergence_count:e.divergences.length,active_parent_divergence_count:e.divergences.length-o,legacy_parent_divergence_count:o,...t?{}:{cycles:e.cycles.slice(0,n).map(s=>s.item_ids)}}}function qp(e){let t=e.assembly.graph,n=e.limit,r=Dn(t,{registry:t.registry()}),i=js(t);return{subcommand:"analyze",node_count:t.nodes().length,edge_count:t.edges().length,edge_basis:"deduplicated_directed",sample_limit:n,execution:Gp(r,e.summary,n),knowledge:Kp(i,e.summary,n),hierarchy:zp($n(e.assembly),e.summary,n)}}function Vp(e,t){let n=Qn(e.assembly,{isTerminal:t,maxSampleSize:e.sample,...e.exemptIsolates.length===0?{}:{exemptIsolates:e.exemptIsolates},...e.exemptIsolateTypes.length===0?{}:{isolateExemptTypes:e.exemptIsolateTypes}}),r={},i={},o={},s={};for(let d of n.findings)r[d.severity]=(r[d.severity]??0)+1,i[d.code]=(i[d.code]??0)+1,o[d.severity]=(o[d.severity]??0)+d.count,s[d.code]=(s[d.code]??0)+d.count;let{finding_subjects_by_code:a,...c}=n.profile;return{subcommand:"audit",truncated:n.findings.length>e.limit,finding_count:n.findings.length,findings_by_severity:r,findings_by_code:i,affected_subjects_by_severity:o,affected_subjects_by_code:s,profile:e.summary?c:n.profile,legacy_alias_counts:e.assembly.legacyAliasCounts,...e.summary?{}:{findings:n.findings.slice(0,e.limit)}}}function Wp(e){let t=e.limit,n={};e.kinds!==void 0&&(n.kinds=e.kinds);let r=Wa(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 Xp(e){let t;try{t=rt(e.assembly.graph,{...e.kinds===void 0?{}:{kinds:e.kinds},...e.maxDepth===void 0?{}:{maxDepth:e.maxDepth},limit:e.limit})}catch(n){ki(n)}return{subcommand:"redundancy",redundant_count:t.value.length,...Ei(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 Yp(e,t){let n=t.limit,r=Xa(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 Jp(e){let t=e.limit,n=ec(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.slice(0,t),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 Qp(e){let t=e.limit,n=Za(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 Zp(e){let t=e.limit,n=Wn(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 eh(e,t){let n=e.limit,r=Ic(e.assembly,{isTerminal:t,redundancyLimit:n,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 xc(e,t,n,r){return JSON.stringify({projection_version:2,subcommand:e,root:t??null,target:n??null,kinds:r.kinds??null,maxDepth:r.maxDepth??null,limit:r.limit,after:r.after??null,direction:r.direction,maxPaths:r.maxPaths??null,sample:r.sample,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 Dc(e,t,n,r,i){return e==="analyze"?qp(r):e==="audit"?Vp(r,i):e==="plan"?eh(r,i):e==="communities"?Wp(r):e==="redundancy"?Xp(r):e==="dominators"?Yp(t,r):e==="slack"?Jp(r):e==="centrality"?Qp(r):e==="articulation"?Zp(r):e==="paths"?Bp(t,n,r):e==="impact"?Hp(t,r):Up(e,t,r)}function th(e,t){if(e!=="index"&&(t.rebuild===!0||t.clear===!0))throw new g("--rebuild and --clear apply only to graph index.",_.USAGE);if(e!=="audit"&&t.saveBaseline===!0)throw new g("--save-baseline applies only to graph audit.",_.USAGE);if(e==="slack"&&t.kind!==void 0)throw new g("graph slack analyzes every ordering kind; --kind is not supported.",_.USAGE);if(t.rebuild===!0&&t.clear===!0)throw new g("graph index accepts either --rebuild or --clear, not both.",_.USAGE);if(t.full===!0&&t.limit!==void 0)throw new g(`graph ${e} accepts either --full or --limit, not both.`,_.USAGE)}async function nh(e,t,n,r,i,o){let s="status";if(o.clear===!0&&(await bi(e),s="cleared"),o.rebuild===!0){await bi(e);let c=await yi(e,t),d={assembly:n.assembly,direction:"both",exemptIsolates:[],exemptIsolateTypes:[],saveBaseline:!1,summary:!0,limit:we.rows,sample:we.samples,unbounded:!1};for(let l of["analyze","audit"])await vi(e,t,c,xc(l,void 0,void 0,d),Dc(l,void 0,void 0,d,i));s="rebuilt"}let a=await vc(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:gi,persist_enabled:wi(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 rh(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,finding_subjects_by_code:Object.fromEntries(ot.map(s=>[s,n.affected_subjects_by_code[s]??0]))}},o=await wc(e);return r&&await kc(e,i),o===void 0?n:{...n,baseline:pc(o,i)}}async function ih(e,t,n,r,i){try{await vi(e,t,n,r,i)}catch{}}function oh(e,t,n,r){if(e.subcommand!=="slack")return;let i=new Set(t.assembly.details.filter(f=>r(f.status)).map(f=>f.id)),o=t.assembly.graph,s=new an(o.nodes().filter(f=>!i.has(f)),o.edges().filter(f=>!i.has(f.source)&&!i.has(f.target)),o.registry()),a=tc(s,n.filter(f=>!i.has(f.id)),{now:D(),limit:t.limit}),{rows:c,residuals:d,overcommitted:l,...u}=a;e.deadline_schedule={population:"active",...u,...t.summary?{}:{rows:c,residuals:d,overcommitted:l}}}async function oE(e,t,n,r,i){let o=jp(e,t,n);ht(r.summary===!0,r.full===!0,"--summary");let s=M(process.cwd(),i.path);await Z(s);let a=await P(s),c=$(a,L()),d=await ue(s,a.item_format,c.type_to_folder,void 0,a.schema),l=Y(a.schema),u=N=>F(N,l);th(o,r);let f=G(),p=ci(r.kind,f),m=jn().lookup(s,Pn(d,u,f),()=>Rt(d,u,f)),h=Pp(o,m.assembly,p,r);if(o==="index")return Cc(await nh(s,m.fingerprint,h,d.length,u,r),!1);let y=Tc.has(o)?Rc(h.assembly,t):void 0,v=o==="paths"?Rc(h.assembly,n):void 0,b=xc(o,y,v,h),w=await yi(s,m.fingerprint),k=w.results[b],S=m.memoize(b,()=>k!==void 0?structuredClone(k):Dc(o,y,v,h,u)),x=wi(d.length,w.exists);!S.reused&&k===void 0&&x&&await ih(s,m.fingerprint,w,b,S.value);let U=S.value.subcommand==="audit"?await rh(s,m.fingerprint,S.value,h.saveBaseline):S.value;return U.cache={fingerprint:m.fingerprint.slice(0,12),assembly:m.assemblyReused?"hit":"miss",result:S.reused?"hit":"miss",durable:k!==void 0?"hit":x?"miss":"off"},oh(U,h,d,u),Cc(U,h.summary,"result_rows")}import Ii from"node:fs/promises";import Ci 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]="069e2e60-11d9-5a37-a966-9073944d32a2")}catch{}})();var Ac=8388608,sh=new Set(["resolved","failed"]),ah=[{kind:"boolean",matches:e=>typeof e=="boolean"||typeof e=="string"&&/^(?:true|false)$/iu.test(e.trim())},{kind:"single_digit",matches:e=>typeof e=="number"&&Number.isInteger(e)&&e>=0&&e<=9||typeof e=="string"&&/^\d$/u.test(e.trim())}];function he(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Si(e){return ah.find(t=>t.matches(e))?.kind}function Oc(e){let t=new Map,n=0,r=0;return{entries:e.map(i=>{let o=he(i.agent_provenance)?i.agent_provenance:void 0;if(o===void 0||!fs(i).ok)return i;let s={},a=!1;for(let[d,l]of Object.entries(o)){let u=he(l)?Si(l.value):void 0;if(u===void 0){s[d]=l;continue}a=!0,r+=1;let f=i.agent_harness??"unknown",p=`${f}\0${d}\0${u}`,m=t.get(p)??{harness:f,dimension:d,kind:u,count:0};m.count+=1,t.set(p,m)}if(!a)return i;n+=1;let c={...i};return Object.keys(s).length===0?delete c.agent_provenance:c.agent_provenance=s,ms(i,c,{retainPriorRecord:!0,retainPriorRecordHash:!1})}),receipt:{changed:n>0,events_changed:n,observations_removed:r,invalid_values:[...t.values()].sort((i,o)=>i.harness.localeCompare(o.harness)||i.dimension.localeCompare(o.dimension)||i.kind.localeCompare(o.kind))}}}async function Lc(e){let t=[];for(let n of await Nc(e)??[])try{let r=await Ii.readFile(Ci.join(e,"history",n),"utf8");for(let i of r.split(`
|
|
2
|
+
`)){if(i.trim().length===0)continue;let o=Mc(i);if(!(o===null||!he(o.agent_provenance))&&Object.values(o.agent_provenance).some(s=>he(s)&&Si(s.value)!==void 0)){t.push(n.slice(0,-6));break}}}catch{}return t}async function Nc(e){try{return(await Ii.readdir(Ci.join(e,"history"))).filter(t=>t.endsWith(".jsonl")).sort()}catch{return null}}async function ch(e,t,n){let r;try{r=await Ii.open(Ci.join(e,"history",t),"r");let i=(await r.stat()).size,o=Math.min(i,Math.max(0,n)),s=Buffer.alloc(o),{bytesRead:a}=await r.read(s,0,o,0),c=s.subarray(0,a).toString("utf8"),d=a>=i,l=c.lastIndexOf(`
|
|
3
|
+
`),u=c;return d||(u=l===-1?"":c.slice(0,l+1)),{content:u,bytesRead:a,complete:d}}catch{return null}finally{await r?.close()}}function Mc(e){try{let t=JSON.parse(e);return he(t)?t:null}catch{return null}}function dh(e,t,n){let r=typeof e.agent_harness=="string"?e.agent_harness:void 0;if(r===void 0)return;let i=he(e.agent_provenance)?e.agent_provenance:{};if(Object.entries(i).forEach(([s,a])=>{if(!he(a))return;let c=Si(a.value);if(!c)return;let d=`${r}\0${s}\0${c}`,l=n.get(d)??{harness:r,dimension:s,kind:c,count:0};l.count+=1,n.set(d,l)}),!he(e.context))return;let o=e.context.agent_provenance_outcomes;he(o)&&Object.entries(o).forEach(([s,a])=>{if(!he(a)||typeof a.resolver!="string"||!sh.has(String(a.status)))return;let c=`${r}\0${s}\0${a.resolver}`,d=t.get(c)??{harness:r,dimension:s,resolver:a.resolver,attempts:0,successes:0};d.attempts+=1,a.status==="resolved"&&(d.successes+=1),t.set(c,d)})}function lh(e,t,n,r,i,o){let s=i;for(let a of e.split(`
|
|
4
|
+
`)){if(a.trim().length===0)continue;if(s>=r)return{eventsRead:s,truncated:!0};s+=1;let c=Mc(a);if(c===null){o.malformed_events+=1;continue}if(typeof c.ts=="string"&&on(c.ts)){let d=new Date(c.ts).toISOString();(o.earliest_event_at===null||d<o.earliest_event_at)&&(o.earliest_event_at=d),(o.latest_event_at===null||d>o.latest_event_at)&&(o.latest_event_at=d)}dh(c,t,n)}return{eventsRead:s,truncated:!1}}function uh(e,t,n){return n?[...e.filter(r=>r.attempts>0&&r.successes===0).map(r=>`provenance_resolver_zero_success:${r.harness}:${r.dimension}:${r.resolver}:${String(r.attempts)}`),...t.map(r=>`provenance_value_domain_invalid:${r.harness}:${r.dimension}:${r.kind}:${String(r.count)}`)]:[]}async function uE(e,t=1e4){if(!Number.isSafeInteger(t)||t<0)throw new RangeError("Provenance event limit must be a non-negative safe integer.");let n={scope:"history_prefix",event_limit:t,byte_limit:Ac,bytes_read:0,events_read:0,truncated:!1,unreadable_sources:0,malformed_events:0,earliest_event_at:null,latest_event_at:null,complete:!1},r=new Map,i=new Map,o=0,s=0,a=!1,c=await Nc(e);c===null&&(n.unreadable_sources+=1);for(let u of c??[]){let f=await ch(e,u,Math.max(0,Ac-s));if(f===null){n.unreadable_sources+=1;continue}s+=f.bytesRead;let p=lh(f.content,r,i,t,o,n);if(o=p.eventsRead,p.truncated){a=!0;break}if(!f.complete){a=!0;break}}let d=[...r.values()].sort((u,f)=>u.harness.localeCompare(f.harness)||u.dimension.localeCompare(f.dimension)||u.resolver.localeCompare(f.resolver)),l=[...i.values()].sort((u,f)=>u.harness.localeCompare(f.harness)||u.dimension.localeCompare(f.dimension)||u.kind.localeCompare(f.kind));return n.bytes_read=s,n.events_read=o,n.truncated=a,n.complete=!a&&n.unreadable_sources===0&&n.malformed_events===0,{outcomes:d,sample:n,invalid_values:l,warnings:uh(d,l,n.complete),events_read:o,truncated:a}}import fh from"fast-json-patch";(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]="b3ef9db1-1d20-5d88-927e-a08edf563cd5")}catch{}})();function Fc(e,t,n){let r=_t(e,t);if(r.ok)return r.document;let i=structuredClone(e);for(let[o,s]of t.entries()){let a=/^\/metadata\/([^/]*)$/u.exec(s.path)?.[1],c=a!==void 0&&!Object.hasOwn(i.metadata,a.replaceAll("~1","/").replaceAll("~0","~"));if(c&&s.op==="remove")continue;let d=c&&s.op==="replace"?{...s,op:"add"}:s,l=_t(i,[d]);if(!l.ok)throw new g(`History union cannot rebase a scalar patch at ${n.branch} line ${n.line} (${n.op}), operation ${o+1} ${s.op} ${s.path}; preserve the source histories for manual recovery.`,_.CONFLICT,{code:"history_union_rebase_conflict",field:s.path,history_merge:{...n,patch_index:o,patch_path:s.path},nextSteps:["Preserve all three history inputs and both item snapshots. Review the named branch event against the merged replay state; do not drop the event or concatenate unchecked patches. After resolving the history and item deliberately, run pm history <id> --verify and pm merge reconcile --dry-run before committing."]});i=l.document}return i}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="425ef2aa-56fa-5d06-b8d0-316373ad2433")}catch{}})();var mh=Object.freeze({pm_item_scalar_missing:!0});function ct(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.keys(e).length===1&&e.pm_item_scalar_missing===!0}function T(e){return e===void 0?mh:e}function Ae(e){return re(E(e===void 0?{pm_item_scalar_presence:"missing"}:{pm_item_scalar_presence:"present",value:e}))}function Ri(e,t){let n=ze(e);if(n)throw new g(`History merge input (${t}) contains unresolved conflict markers at line ${n.line}. Merge drivers must receive clean per-side versions.`,_.GENERIC_FAILURE);let r=[];for(let[i,o]of e.split(/\r?\n/).entries()){let s=o.trim();if(s)try{let a=JSON.parse(s);if(typeof a!="object"||a===null||Array.isArray(a))throw new TypeError("history entry must be an object");r.push(a)}catch{throw new g(`History merge input (${t}) contains invalid JSON at line ${i+1}.`,_.GENERIC_FAILURE)}}return r}function se(e){return E({ts:e.ts,author:e.author,op:e.op,patch:e.patch,message:e.message??null})}function ph(e,t){let n=Math.min(e.length,t.length),r=0;for(;r<n&&se(e[r])===se(t[r]);)r+=1;return r}function hh(e,t,n,r){let i=[...e,...n],o=new Map(i.map((u,f)=>[u,f])),s=new Map(i.map((u,f)=>[se(u),f])),a=i.map(()=>new Set);for(let u of[e,t]){let f=u.map(p=>o.get(p)??s.get(se(p)));for(let p=1;p<f.length;p+=1)f[p-1]!==f[p]&&a[f[p-1]].add(f[p])}let c=i.map(()=>0);for(let u of a)for(let f of u)c[f]+=1;let d=i.map((u,f)=>f).filter(u=>c[u]===0),l=[];for(;d.length>0;){d.sort((f,p)=>{let m=i[f],h=i[p],y=C(m.ts,h.ts),v=se(m),b=se(h);return y||Number(r.has(b))-Number(r.has(v))});let u=d.shift();l.push(i[u]);for(let f of a[u])c[f]-=1,c[f]===0&&d.push(f)}if(l.length!==i.length)throw new g("History union cannot preserve contradictory original branch event orders; leave the file unresolved for manual recovery.",_.GENERIC_FAILURE);return l}function $c(e){return{entries:e,positions:new Map(e.map((t,n)=>[se(t),n])),index:-1,document:gs()}}function Li(e,t){let n=t??e.index;for(;e.index<n;){let r=_t(e.document,e.entries[e.index+1].patch);if(!r.ok)throw new g("History union cannot preserve a patch that does not apply in its original branch.",_.GENERIC_FAILURE);e.document=r.document,e.index+=1}return e.document}function Pc(e,t){if(t!==void 0&&t>e.index+1)throw new g("History union cannot attribute multiple original branch events to one semantic identity; preserve the source histories for manual recovery.",_.GENERIC_FAILURE);return Li(e,t)}function gh(e,t,n){if(n===0)return;let r=$c(e),i=$c(t),o=Li(r,n-1);Li(i,n-1);let s=0,a=new Set([...Uc,...Bc]);return(c,d)=>{if(s++<n)return c.patch;let l=se(c),u=Pc(r,r.positions.get(l)),f=Pc(i,i.positions.get(l)),p=wn(c.patch).filter(b=>{let[w,k]=b.path.slice(1).split("/");return w!=="metadata"||!a.has(k)}),m=r.positions.get(l),h=Fc(d,p,{branch:m===void 0?"theirs":"ours",line:(m??i.positions.get(l))+1,op:c.op}),y=Kc(o.metadata,u.metadata,f.metadata,"ours","latest_document_update",String(u.metadata.updated_at),String(f.metadata.updated_at));for(let b of a)Object.hasOwn(y.merged,b)?h.metadata[b]=y.merged[b]:delete h.metadata[b];let v=bn({metadata:h.metadata,body:h.body});return fh.compare(d,v)}}function TE(e,t,n){let r=Ri(e,"base"),i=Ri(t,"ours"),o=Ri(n,"theirs"),s=[r,i,o].map(p=>p.filter(m=>m.op==="create"));if(s[0].length===0&&s.slice(1).every(p=>p.length>0)||s.some(p=>p.length>1)||new Set(s.flat().map(se)).size>1)throw new g("Duplicate item identity: history contains independent or unproven create events. Preserve both branches and assign distinct item ids before merging.",_.CONFLICT,{code:"item_identity_conflict"});let a=ph(i,o);if(a===i.length&&a===o.length)return{merged:Me(i),strategy:"identical",common_entries:a,entries_from_ours:0,entries_from_theirs:0,entries_total:i.length,reanchored:!1};if(a===o.length)return{merged:Me(i),strategy:"fast_forward_ours",common_entries:a,entries_from_ours:i.length-a,entries_from_theirs:0,entries_total:i.length,reanchored:!1};if(a===i.length)return{merged:Me(o),strategy:"fast_forward_theirs",common_entries:a,entries_from_ours:0,entries_from_theirs:o.length-a,entries_total:o.length,reanchored:!1};let c=i.slice(a),d=new Set(c.map(se)),l=o.slice(a).filter(p=>!d.has(se(p))),u=hh(c,o.slice(a),l,d),f=kn([...i.slice(0,a),...u],void 0,{continuousHashSurface:!0,projectPatch:gh(i,o,a)});if(f.skippedOps>0)throw new g(`History union cannot preserve ${f.skippedOps} patch operation(s) after deterministic suffix ordering; leave the file unresolved for manual recovery.`,_.GENERIC_FAILURE);return{merged:Me(f.entries),strategy:"union_reanchor",common_entries:a,entries_from_ours:c.length,entries_from_theirs:l.length,entries_total:f.entries.length,reanchored:!0}}function Ti(e,t){let n=ze(e);if(n)throw new g(`Relationship merge input (${t}) contains unresolved conflict markers at line ${n.line}. Merge drivers must receive clean per-side versions.`,_.GENERIC_FAILURE);let r=[];for(let[i,o]of e.split(/\r?\n/).entries()){let s=o.trim();if(!s)continue;let a;try{a=JSON.parse(s)}catch{throw new g(`Relationship merge input (${t}) contains invalid JSON at line ${i+1}.`,_.GENERIC_FAILURE)}if(typeof a!="object"||a===null||Array.isArray(a)||typeof a.eventId!="string"||typeof a.sequence!="number")throw new g(`Relationship merge input (${t}) line ${i+1} is not a relationship event (eventId + sequence required).`,_.GENERIC_FAILURE);r.push(a)}return r}function er(e){return e.length===0?"":`${e.map(t=>JSON.stringify(t)).join(`
|
|
5
|
+
`)}
|
|
6
|
+
`}function _h(e){return e.map((t,n)=>({...t,sequence:n+1}))}function xE(e,t,n){Ti(e,"base");let r=Ti(t,"ours"),i=Ti(n,"theirs"),o=Math.min(r.length,i.length),s=0;for(;s<o&&r[s].eventId===i[s].eventId;)s+=1;if(s===r.length&&s===i.length)return{merged:er(r),strategy:"identical",common_entries:s,entries_from_ours:0,entries_from_theirs:0,entries_total:r.length,reanchored:!1};if(s===i.length)return{merged:er(r),strategy:"fast_forward_ours",common_entries:s,entries_from_ours:r.length-s,entries_from_theirs:0,entries_total:r.length,reanchored:!1};if(s===r.length)return{merged:er(i),strategy:"fast_forward_theirs",common_entries:s,entries_from_ours:0,entries_from_theirs:i.length-s,entries_total:i.length,reanchored:!1};let a=r.slice(s),c=new Set(a.map(f=>f.eventId)),d=i.slice(s).filter(f=>!c.has(f.eventId)),l=[...a,...d].sort((f,p)=>{if(f.timestamp!==void 0&&p.timestamp!==void 0){let y=C(f.timestamp,p.timestamp);if(y!==0)return y}else{if(f.timestamp===void 0&&p.timestamp!==void 0)return 1;if(f.timestamp!==void 0)return-1}let m=c.has(f.eventId),h=c.has(p.eventId);return m!==h?Number(h)-Number(m):0}),u=_h([...r.slice(0,s),...l]);return{merged:er(u),strategy:"union_reanchor",common_entries:s,entries_from_ours:a.length,entries_from_theirs:d.length,entries_total:u.length,reanchored:!0}}var Uc=["tags","dependencies","comments","notes","learnings","files","tests","test_runs","docs","reminders","events"],Bc=["acceptance_criteria"],yh=["updated_at"];function Ue(e,t){return e===void 0||t===void 0?e===void 0&&t===void 0:E(e)===E(t)}function jc(e,t,n){let r=l=>Array.isArray(l)?l:[],i=new Set(r(e).map(l=>E(l))),o=r(t),s=new Set(o.map(l=>E(l))),a=r(n),c=new Set(a.map(l=>E(l))),d=o.filter(l=>{let u=E(l);return!i.has(u)||c.has(u)});for(let l of a){let u=E(l);!s.has(u)&&!i.has(u)&&d.push(l)}return d}function Ft(e){if(typeof e!="object"||e===null||Array.isArray(e))return E(e);let{provenance:t,...n}=e;return E(n)}function vh(e){if(typeof e!="object"||e===null||Array.isArray(e))return e;let t=e;return t.provenance?{...t,provenance:{...t.provenance,source_kind:"merge_union"}}:{...t,provenance:{source_kind:"merge_union"}}}function bh(e,t,n){let r=l=>Array.isArray(l)?l:[],i=new Set(r(e).map(Ft)),o=r(t),s=new Set(o.map(Ft)),a=r(n),c=new Set(a.map(Ft)),d=o.filter(l=>{let u=Ft(l);return!i.has(u)||c.has(u)});for(let l of a){let u=Ft(l);!s.has(u)&&!i.has(u)&&d.push(vh(l))}return d}function wh(e,t){return C(String(e),String(t))>=0?e:t}function Hc(e,t,n,r){return Ue(t,n)?{value:t,from_theirs:!1,conflict:!1}:Ue(e,t)?{value:n,from_theirs:!0,conflict:!1}:Ue(e,n)?{value:t,from_theirs:!1,conflict:!1}:{value:r==="theirs"?n:t,from_theirs:r==="theirs",conflict:!0}}function Gc(e,t,n,r,i,o,s){let a=Hc(e,t,n,r);if(!a.conflict)return{...a,conflict:!1};if(i==="preferred_side")return{...a,resolution_basis:"requested_preference",retained_side:a.from_theirs?"theirs":"ours"};let c=C(o,s);if(i==="latest_document_update"&&c!==0){let l=c<0;return{value:l?n:t,from_theirs:l,conflict:!0,resolution_basis:"document_updated_at",retained_side:l?"theirs":"ours"}}let d=E(T(n)).localeCompare(E(T(t)))<0;return{value:d?n:t,from_theirs:d,conflict:!0,resolution_basis:"stable_value_tiebreak",retained_side:d?"theirs":"ours"}}function xi(e){return{...e.metadata}}function Di(e,t,n){try{let r=Uo(Po(e,{...n,requireSupportedFormat:!0}),n),i=Object.entries(r.metadata).find(([,o])=>ct(o))?.[0];if(i!==void 0)throw new TypeError(`metadata field ${i} uses the reserved missing-scalar evidence marker`);return r}catch(r){throw r instanceof g&&r.context?.code==="item_format_version_unsupported"?r:new g(`Item merge input (${t}) is not a readable item document: ${String(r)}`,_.GENERIC_FAILURE)}}function kh(e){if(!e.unionFieldSet.has(e.field))return!1;let t=e.field==="tests"?bh(e.baseValue,e.oursValue,e.theirsValue):e.field==="acceptance_criteria"?jc(tn(e.baseValue),tn(e.oursValue),tn(e.theirsValue)).join("; "):jc(e.baseValue,e.oursValue,e.theirsValue);return e.accumulator.merged[e.field]=t,Ue(t,e.oursValue)||e.accumulator.unionFields.push(e.field),!0}function Eh(e){let t=Gc(e.baseValue,e.oursValue,e.theirsValue,e.preferred,e.conflictResolution,e.oursUpdatedAt,e.theirsUpdatedAt);t.value!==void 0&&(e.accumulator.merged[e.field]=t.value),t.conflict?(e.accumulator.conflictFields.push(e.field),e.accumulator.conflictDecisions.push({field:e.field,base:T(e.baseValue),ours:T(e.oursValue),theirs:T(e.theirsValue),retained:T(t.value),discarded:T(t.from_theirs?e.oursValue:e.theirsValue),retained_side:t.retained_side,resolution_basis:t.resolution_basis})):t.from_theirs&&e.accumulator.fieldsFromTheirs.push(e.field)}function Kc(e,t,n,r,i,o,s){let a=new Set([...Uc,...Bc]),c=new Set(yh),d=[...new Set([...Object.keys(t),...Object.keys(n)])].sort((u,f)=>u.localeCompare(f)),l={merged:{},conflictFields:[],fieldsFromTheirs:[],unionFields:[],conflictDecisions:[]};for(let u of d){let f=e[u],p=t[u],m=n[u];if(!kh({field:u,baseValue:f,oursValue:p,theirsValue:m,unionFieldSet:a,accumulator:l})){if(c.has(u)){l.merged[u]=wh(p,m);continue}Eh({field:u,baseValue:f,oursValue:p,theirsValue:m,preferred:r,conflictResolution:i,oursUpdatedAt:o,theirsUpdatedAt:s,accumulator:l})}}return l}function DE(e,t,n,r={}){let i=r.preferred??"ours",o=r.conflictResolution??"preferred_side",s=Di(t,"ours",r),a=Di(n,"theirs",r);if(e.trim().length===0)throw new g("Duplicate item identity: add/add item documents have no common ancestor. Preserve both branches and assign distinct item ids before merging.",_.CONFLICT,{code:"item_identity_conflict",item_id:s.metadata.id});let c=Di(e,"base",r);if(c.metadata.id!==s.metadata.id||c.metadata.id!==a.metadata.id)throw new g("Duplicate or mismatched item identity: all merge sides must address the common ancestor's item id.",_.CONFLICT,{code:"item_identity_conflict",item_id:c.metadata.id});let d=xi(c),l=xi(s),u=xi(a),{merged:f,conflictFields:p,fieldsFromTheirs:m,unionFields:h,conflictDecisions:y}=Kc(d,l,u,i,o,s.metadata.updated_at,a.metadata.updated_at),v=Gc(c.body,s.body,a.body,i,o,s.metadata.updated_at,a.metadata.updated_at);v.conflict?(p.push("body"),y.push({field:"body",base:T(c.body),ours:T(s.body),theirs:T(a.body),retained:T(v.value),discarded:T(v.from_theirs?s.body:a.body),retained_side:v.retained_side,resolution_basis:v.resolution_basis})):v.from_theirs&&m.push("body");let b=f;return b.pm_format_version=$o(Math.max(...[c.metadata,s.metadata,a.metadata,b].map(Fo))),{merged:jo({metadata:b,body:v.value},r),conflict_fields:p,fields_from_theirs:m,union_fields:h,conflict_decisions:y,requested_preference:i,requested_preference_applied:o==="preferred_side",conflict_resolution:o}}function Ai(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Oi(e,t){let n=ze(e);if(n)throw new g(`JSON merge input (${t}) contains unresolved conflict markers at line ${n.line}.`,_.GENERIC_FAILURE);if(e.trim().length!==0)try{return JSON.parse(e)}catch{throw new g(`JSON merge input (${t}) is not valid JSON.`,_.GENERIC_FAILURE)}}function Ih(e,t,n){if(!Array.isArray(e)||!Array.isArray(t)||!Array.isArray(n))return null;let r=d=>{let l=new Map;for(let u of d){let f=E(u);l.set(f,(l.get(f)??0)+1)}return l},i=r(e),o=r(t),s=r(n);for(let[d,l]of i)if((o.get(d)??0)<l||(s.get(d)??0)<l)return null;let a=new Map(o),c=[];for(let d of n){let l=E(d),u=a.get(l)??0;u>0?a.set(l,u-1):c.push(d)}return{merged:[...t,...c],acceptedTheirs:c.length>0}}function Ch(e,t,n,r,i,o,s){if(!Ai(t)||!Ai(n))return null;let a=Ai(e)?e:{},c={},d=[...new Set([...Object.keys(t),...Object.keys(n)])].sort((l,u)=>l.localeCompare(u));for(let l of d){let u=i.length>0?`${i}.${l}`:l,f=Sh(a,t,n,l,r,u,o,s);f!==void 0&&(c[l]=f)}return c}function zc(e,t,n,r,i,o,s){if(Ue(t,n))return t;let a=Ih(e,t,n);if(a!==null)return a.acceptedTheirs&&s.push(i),a.merged;let c=Ch(e,t,n,r,i,o,s);if(c!==null)return c;let d=Hc(e,t,n,r);return d.conflict?o.push(i):d.from_theirs&&s.push(i),d.value}function Sh(e,t,n,r,i,o,s,a){let c=Object.prototype.hasOwnProperty.call(t,r),d=Object.prototype.hasOwnProperty.call(n,r),l=Object.prototype.hasOwnProperty.call(e,r);if(c&&d)return zc(e[r],t[r],n[r],i,o,s,a);if(c){if(l&&Ue(e[r],t[r])){a.push(o);return}return l?(s.push(o),i==="theirs"?void 0:t[r]):t[r]}if(!(l&&Ue(e[r],n[r])))return l?(s.push(o),i==="theirs"?n[r]:void 0):(a.push(o),n[r])}function AE(e,t,n,r={}){let i=r.preferred??"ours",o=Oi(e,"base"),s=Oi(t,"ours"),a=Oi(n,"theirs"),c=[],d=[],l=zc(o,s,a,i,"",c,d);return{merged:`${JSON.stringify(l??null,null,2)}
|
|
7
|
+
`,conflict_paths:c,paths_from_theirs:d,preferred:i}}import{execFile as Wh}from"node:child_process";import{randomUUID as Xh}from"node:crypto";import{readdir as Yh,realpath as Oe,stat as Jh}from"node:fs/promises";import O from"node:path";import{promisify as Qh}from"node:util";import nr from"node:path";import{execFile as Rh}from"node:child_process";import{createHash as qc}from"node:crypto";import{readdir as Th}from"node:fs/promises";import xh from"node:path";import{promisify as Dh}from"node:util";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="af5442e7-c8af-5d81-8c89-7f1a98159cec")}catch{}})();var ke=Dh(Rh),tr=/^[a-f0-9]{40}(?:[a-f0-9]{24})?$/u;async function jE(e,t,n){let r=t.trim(),i=/^(['"])(.*)\1$/su.exec(r)?.[2]??r;for(let o of["rebase-merge","rebase-apply"])try{let{stdout:s}=await ke("git",["rev-parse","--path-format=absolute","--git-path",`${o}/orig-head`],{cwd:e,timeout:1e4}),a=(await yt(s.trim(),128))?.trim();if(a===void 0||!tr.test(a))continue;let{stdout:c}=await ke("git",["rev-parse","--verify",`${a}:${i}`],{cwd:e,timeout:1e4}),d=c.trim();return{kind:"rebase",original_head:a,original_blob:d}}catch{}if(n!==void 0&&Object.keys(process.env).some(o=>/^GITHEAD_[a-f0-9]{40}(?:[a-f0-9]{24})?$/u.test(o)))try{let{stdout:o}=await ke("git",["rev-parse","HEAD","ORIG_HEAD"],{cwd:e,timeout:1e4}),[s,a]=o.trim().split(/\r?\n/u);if(s!==a||!tr.test(s))return;let{stdout:c}=await ke("git",["rev-parse","--verify",`${s}:${i}`],{cwd:e,timeout:1e4}),d=c.trim(),l=qc(d.length===40?"sha1":"sha256").update(`blob ${Buffer.byteLength(n)}\0`).update(n).digest("hex");return d!==l?void 0:{kind:"merge",original_head:s,original_blob:d}}catch{}}function Vc(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=e;return Object.keys(t).length===3&&(t.kind==="rebase"||t.kind==="merge")&&typeof t.original_head=="string"&&tr.test(t.original_head)&&typeof t.original_blob=="string"&&tr.test(t.original_blob)}async function Wc(e,t,n,r){if(r!==void 0&&qc(n.original_blob.length===40?"sha1":"sha256").update(`blob ${Buffer.byteLength(r)}\0`).update(r).digest("hex")!==n.original_blob)return!1;try{let{stdout:i}=await ke("git",["rev-parse","--absolute-git-dir"],{cwd:e,timeout:1e4}),o=new Set(["rebase-merge","rebase-apply","MERGE_HEAD","CHERRY_PICK_HEAD","REVERT_HEAD"]);if((await Th(i.trim())).some(d=>o.has(d)))return!1;let{stdout:s}=await ke("git",["rev-parse","HEAD"],{cwd:e,timeout:1e4});if(s.trim()!==n.original_head)return!1;let{stdout:a}=await ke("git",["rev-parse","--verify",`HEAD:${t}`],{cwd:e,timeout:1e4});if(a.trim()!==n.original_blob)return!1;let{stdout:c}=await ke("git",["hash-object","--",xh.resolve(e,t)],{cwd:e,timeout:1e4});return c.trim()!==n.original_blob?!1:(await ke("git",["diff","--cached","--quiet","HEAD","--",t],{cwd:e,timeout:1e4}),!0)}catch{return!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]="35c5d9a8-5ae0-5e97-9ea3-f8a70a5fd7d0")}catch{}})();var Ah=/^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$/u,Oh=/^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/u,ir=2048,Lh=64,Nh=1e5,Mh=new Set(["version","id","item_path","item_id","requested_preference","requested_preference_applied","preferred","conflict_resolution","fields_from_theirs","union_fields","merged_field_hashes","decisions","state","created_at","reconciled_at","value_availability","value_policy","evidence_source","operation","settlement"]);function or(e){return Ah.test(e)}var Fh=new Set(["field","base","ours","theirs","retained","discarded","retained_side","resolution_basis"]),sr="bounded_non_sensitive_scalars_v1",$h=new Set(["open","in_progress","blocked","closed","canceled"]),Ph=new Set(["risk","confidence","severity"]),jh=new Set(["low","medium","high","critical"]),Yc=new Map([["priority",new Set([0,1,2,3,4].map(E))],["status",new Set([...$h].map(E))],...[...Ph].map(e=>[e,new Set([...jh].map(E))])]);function ge(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Jc(e,t){return Object.keys(e).every(n=>t.has(n))}function rr(e){return Array.isArray(e)&&e.length<=ir&&e.every(t=>typeof t=="string"&&t.length>0&&t.length<=256)}function $t(e){let t=[{value:e,depth:0}],n=0;for(;t.length>0;){let r=t.pop();if(n+=1,n>Nh||r.depth>Lh)return!1;if(Array.isArray(r.value))for(let i of r.value)t.push({value:i,depth:r.depth+1});else if(ge(r.value))for(let i of Object.values(r.value))t.push({value:i,depth:r.depth+1})}return!0}function Qc(e){if(!ge(e))return!1;let t=[void 0,"ours","theirs"],n=[void 0,"requested_preference","document_updated_at","stable_value_tiebreak"];return[Jc(e,Fh),typeof e.field=="string",typeof e.field=="string"&&e.field.length>0,typeof e.field=="string"&&e.field.length<=256,Object.hasOwn(e,"base"),Object.hasOwn(e,"ours"),Object.hasOwn(e,"theirs"),Object.hasOwn(e,"retained"),Object.hasOwn(e,"discarded"),$t(e.base),$t(e.ours),$t(e.theirs),$t(e.retained),$t(e.discarded),t.includes(e.retained_side),n.includes(e.resolution_basis)].every(Boolean)}function Uh(e){if(!ge(e))return!1;let t=Object.entries(e);return t.length<=ir&&t.every(([n,r])=>n.length>0&&n.length<=256&&typeof r=="string"&&/^[a-f0-9]{64}$/u.test(r))}function Bh(e,t){if(typeof e!="string"||e.length===0||e.length>4096||e.includes("\0")||e.includes("\\")||nr.posix.isAbsolute(e))return!1;let n=nr.posix.normalize(e);return n!==".."&&!n.startsWith("../")&&nr.posix.basename(n,nr.posix.extname(n))===t}function Hh(e){return!rr(e.fields_from_theirs)||!rr(e.union_fields)||!Array.isArray(e.decisions)||e.decisions.length>ir||!e.decisions.every(Qc)?!1:e.merged_field_hashes===void 0||Uh(e.merged_field_hashes)}function Gh(e){let t=[void 0,"ours","theirs"],n=[void 0,"preferred_side","stable_value_order","latest_document_update"],r=[void 0,"clone_local","hash_only","bounded_inline","mixed"],i=[void 0,"clone_local","durable"];return t.includes(e.requested_preference)&&t.includes(e.preferred)&&(e.requested_preference_applied===void 0||typeof e.requested_preference_applied=="boolean")&&n.includes(e.conflict_resolution)&&(e.state==="pending"||e.state==="reconciled")&&r.includes(e.value_availability)&&(e.value_policy===void 0||e.value_policy===sr)&&i.includes(e.evidence_source)}function Kh(e){return typeof e.created_at=="string"&&Mr(e.created_at)&&(e.reconciled_at===void 0||typeof e.reconciled_at=="string"&&Mr(e.reconciled_at))}function Xc(e,t){if(!ge(t)||dr(t)===void 0)return!1;let n=Object.keys(t);if(!n.every(i=>i==="pm_value_hash"||i==="pm_value"))return!1;if(!Object.hasOwn(t,"pm_value"))return n.length===1;let r=t.pm_value;return(r===null||Yc.get(e)?.has(E(r))===!0)&&Ae(r)===t.pm_value_hash}function zh(e){if(!e.decisions.every(r=>r.base===null&&r.ours===null&&r.theirs===null&&Xc(r.field,r.retained)&&Xc(r.field,r.discarded)))return!1;let t=e.decisions.reduce((r,i)=>r+(ge(i.retained)&&Object.hasOwn(i.retained,"pm_value")?1:0)+(ge(i.discarded)&&Object.hasOwn(i.discarded,"pm_value")?1:0),0),n=t===0?"hash_only":t===e.decisions.length*2?"bounded_inline":"mixed";return e.value_availability===n&&(t===0||e.value_policy===sr)}function qh(e){return e.operation!==void 0&&!Vc(e.operation)?!1:e.settlement===void 0||e.settlement==="original_git_state_restored"&&e.state==="reconciled"&&e.operation!==void 0}function Vh(e){for(let t of["version","id","item_path","item_id","fields_from_theirs","union_fields","decisions","state","created_at"])if(!Object.hasOwn(e,t))return"required_fields";return e.version!==1||!Jc(e,Mh)?"required_fields":typeof e.id!="string"||!or(e.id)?"receipt_id":typeof e.item_id!="string"||!Oh.test(e.item_id)?"item_id":Bh(e.item_path,e.item_id)?null:"item_path"}function ar(e,t){if(!ge(e))return"required_fields";let n=Vh(e);return n!==null?n:qh(e)?Hh(e)?Gh(e)?Kh(e)?t==="durable"&&!zh(e)?"durable_decisions":null:"timestamps":"enums":"collections":"operation"}function cr(e){if(!ge(e)||e.version!==1||e.value_policy!==void 0||!Array.isArray(e.decisions))return e;let t=(e.preferred==="ours"||e.preferred==="theirs")&&e.requested_preference===void 0,n=(e.requested_preference==="ours"||e.requested_preference==="theirs")&&e.value_availability==="clone_local";return!t&&!n?e:{...e,decisions:e.decisions.map(r=>!ge(r)||!Object.hasOwn(r,"retained")||!Object.hasOwn(r,"discarded")?r:{base:T(void 0),ours:T(void 0),theirs:T(void 0),...r})}}function Zc(e){if(!ge(e))return;if(!rr(e.fields_from_theirs))return"fields_from_theirs";if(!rr(e.union_fields))return"union_fields";if(!Array.isArray(e.decisions)||e.decisions.length>ir)return"decisions";let t=e.decisions.findIndex(n=>!Qc(n));return t>=0?`decisions[${t}]`:"merged_field_hashes"}function Ni(e,t){return ar(e,t)===null}function dr(e){if(typeof e!="object"||e===null||Array.isArray(e)||!("pm_value_hash"in e))return;let t=e.pm_value_hash;return typeof t=="string"&&/^[a-f0-9]{64}$/u.test(t)?t:void 0}function Mi(e,t){let n=ct(t),r=Ae(n?void 0:t);return!n&&(t===null||Yc.get(e)?.has(E(t))===!0)?{pm_value_hash:r,pm_value:t}:{pm_value_hash: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]="7bab0a8e-842c-5588-a0b2-22ef261ddb06")}catch{}})();var Zh=Qh(Wh),lr=100;async function Fi(e){try{let{stdout:t}=await Zh("git",["rev-parse","--path-format=absolute","--git-path","pm-merge-receipts"],{cwd:e,encoding:"utf8",windowsHide:!0,timeout:1e4});return t.trim()}catch{return null}}async function nd(e,t){let n=O.dirname(O.resolve(e,t));for(let r=0;r<12;r+=1){if(await bo(O.join(n,"settings.json")))return n;let i=O.dirname(n);if(i===n)break;n=i}return null}function dt(e){return O.join(e,"merge-receipts")}function Le(e){return`${e}.json`}async function ed(e){let t;try{t=e.readReceipt?await e.readReceipt(e.receiptPath):await yt(e.receiptPath,Rn)}catch(o){if(He(o))return null;throw o}if(t===null)throw new Error(`Receipt ${e.receiptId} settlement source is not a bounded regular file.`);let n;try{n=cr(JSON.parse(t))}catch{throw new Error(`Receipt ${e.receiptId} settlement source is not valid JSON.`)}if(!Ni(n,e.evidenceSource)||n.id!==e.receiptId||e.settlement!==void 0&&n.operation===void 0||O.basename(e.receiptPath)!==Le(n.id))throw new Error(`Receipt ${e.receiptId} settlement source failed schema or identity validation.`);let{evidence_source:r,...i}=n;return{path:e.receiptPath,fingerprints:jt(n),modern:n.value_policy!==void 0,content:`${JSON.stringify({...i,state:"reconciled",reconciled_at:e.reconciledAt,...e.settlement?{settlement:e.settlement}:{}},null,2)}
|
|
8
|
+
`}}function Pt(e,t=!1){return re(E({id:e.id,item_id:e.item_id,item_path:e.item_path,created_at:e.created_at,requested_preference:e.requested_preference??e.preferred??"ours",requested_preference_applied:e.requested_preference_applied??(e.conflict_resolution??"preferred_side")==="preferred_side",conflict_resolution:e.conflict_resolution??"preferred_side",fields_from_theirs:e.fields_from_theirs,union_fields:e.union_fields,merged_field_hashes:e.merged_field_hashes??null,operation:e.operation??null,decisions:t?e.decisions.map(n=>({field:n.field,retained_hash:re(E(T(n.retained))),discarded_hash:re(E(T(n.discarded)))})):ur(e).decisions}))}function jt(e){let t=[Pt(e)];return e.value_policy===void 0&&(e.value_availability===void 0||e.value_availability==="clone_local")&&t.push(Pt(e,!0)),t}function eg(e,t){let{reconciled_at:n,settlement:r,...i}=e;return t.state==="reconciled"?{...i,state:"reconciled",reconciled_at:t.reconciled_at,...t.settlement===void 0?{}:{settlement:t.settlement}}:{...i,state:"pending"}}async function tg(e,t,n){let r=new Map;for(let i of t){let o=e.get(i.id);if(i.state!=="reconciled"||o===void 0)continue;let s=r.get(o.item_id);if(s===void 0){try{s=await un(O.join(n,"history",`${o.item_id}.jsonl`),o.item_id),Se(s).ok||(s=[])}catch{s=[]}r.set(o.item_id,s)}let a=o.settlement==="original_git_state_restored",c=E({...ur(o),...a?{reason:o.settlement,operation:o.operation}:{}});if(!s.some(d=>{if(d.op!=="merge_reconcile"||d.record_hash_version===void 0)return!1;let l=d.context?.merge;if(typeof l!="object"||l===null||Array.isArray(l))return!1;let u=l[a?"abandoned_receipts":"receipts"];return Array.isArray(u)&&u.some(f=>E(f)===c)})){let{reconciled_at:d,settlement:l,...u}=o;e.set(o.id,{...u,state:"pending"})}}}function ur(e){return{receipt_id:e.id,item_id:e.item_id,item_path:e.item_path,conflict_fields:e.decisions.map(t=>t.field),fields_from_theirs:e.fields_from_theirs,union_fields:e.union_fields,requested_preference:e.requested_preference??e.preferred??"ours",requested_preference_applied:e.requested_preference_applied??(e.conflict_resolution??"preferred_side")==="preferred_side",conflict_resolution:e.conflict_resolution,decisions:e.decisions.map(t=>({field:t.field,retained_hash:dr(t.retained)??Ae(ct(t.retained)?void 0:t.retained),discarded_hash:dr(t.discarded)??Ae(ct(t.discarded)?void 0:t.discarded)}))}}async function dI(e){let t=await Fi(e.cwd);if(t===null)return null;let n=e.itemPath.trim(),r=/^(['"])(.*)\1$/su.exec(n)?.[2]??n,i=O.basename(r,O.extname(r)),o={version:1,id:Xh(),item_path:r.replaceAll("\\","/"),item_id:i,requested_preference:e.preferred,requested_preference_applied:(e.conflictResolution??"preferred_side")==="preferred_side",conflict_resolution:e.conflictResolution??"preferred_side",fields_from_theirs:[...e.fieldsFromTheirs],union_fields:[...e.unionFields],...e.mergedFieldHashes?{merged_field_hashes:{...e.mergedFieldHashes}}:{},decisions:structuredClone(e.decisions).map(a=>({...a,base:T(a.base),ours:T(a.ours),theirs:T(a.theirs),retained:T(a.retained),discarded:T(a.discarded)})),...e.operation?{operation:e.operation}:{},state:"pending",created_at:D(),value_availability:"clone_local"};await Lr(t),await q(O.join(t,Le(o.id)),`${JSON.stringify(o,null,2)}
|
|
9
|
+
`);let s=await nd(e.cwd,o.item_path);if(s!==null){let a=dt(s),c=o.decisions.map(u=>({field:u.field,base:null,ours:null,theirs:null,retained:Mi(u.field,u.retained),discarded:Mi(u.field,u.discarded),retained_side:u.retained_side,resolution_basis:u.resolution_basis})),d=c.reduce((u,f)=>u+(Object.hasOwn(f.retained,"pm_value")?1:0)+(Object.hasOwn(f.discarded,"pm_value")?1:0),0),l={...o,decisions:c,value_availability:d===0?"hash_only":d===c.length*2?"bounded_inline":"mixed",value_policy:sr};await Lr(a),await q(O.join(a,Le(o.id)),`${JSON.stringify(l,null,2)}
|
|
10
|
+
`)}return o}async function td(e,t){let n;try{n=await Yh(e)}catch(a){let c=await ng(e,a);return{receipts:[],invalid_evidence_count:c?0:1,invalid_evidence:c?[]:[{evidence_source:t,reason:"directory_unreadable"}],invalid_evidence_truncated:!1}}let r=[],i=0,o=[],s=(a,c)=>{if(i+=1,o.length>=lr)return;let d=a.slice(0,-5);o.push({evidence_source:t,reason:c.reason,...c.validation_path?{validation_path:c.validation_path}:{},...c.validation_error===void 0?{}:{validation_error:c.validation_error},...or(d)?{receipt_id:d}:{candidate_name_hash:re(a)}})};for(let a of n.sort((c,d)=>c.localeCompare(d))){if(!a.endsWith(".json"))continue;let c=await rg(e,a,t);c.receipt!==void 0?r.push(c.receipt):s(a,c)}return{receipts:r,invalid_evidence_count:i,invalid_evidence:o,invalid_evidence_truncated:i>o.length}}async function ng(e,t,n=Jh){if(!ce(t))return!1;let r=e;for(;;)try{return(await n(r)).isDirectory()}catch(i){if(!ce(i))return!1;let o=O.dirname(r);if(o===r)return!0;r=o}}async function rg(e,t,n){let r;try{r=await yt(O.join(e,t),Rn)}catch{return{reason:"candidate_unreadable"}}if(r===null)return{reason:"candidate_not_bounded_regular_file"};let i;try{i=cr(JSON.parse(r))}catch{return{reason:"candidate_invalid_json"}}let o=ar(i,n);if(o!==null)return{reason:new Set(["receipt_id","item_id","item_path"]).has(o)?"identity_invalid":"schema_invalid",validation_error:o,...o==="collections"?{validation_path:Zc(i)}:{}};let s=i;if(t!==Le(s.id))return{reason:"identity_invalid",validation_error:"filename"};let{preferred:a,evidence_source:c,...d}=s;return{receipt:{...d,requested_preference:s.requested_preference??a??"ours",requested_preference_applied:s.requested_preference_applied??(s.conflict_resolution??"preferred_side")==="preferred_side",conflict_resolution:s.conflict_resolution??"preferred_side",evidence_source:n}}}async function ig(e,t,n){if(n.length===0)return[];let{readIndexedReceiptBlobs:r}=await import("./indexed-receipt-blobs-KGMJVFH2.js"),i=await og(t),o=await r(i?.workspace??e,dt(t),n.map(s=>Le(s.id)),Rn,i?.directory);return n.flatMap(s=>{try{let a=cr(JSON.parse(o.get(Le(s.id))??""));if(ar(a,"durable")!==null)return[];let c=a,d=jt(s);return c.id===s.id&&jt(c).some(l=>d.includes(l))?[s.id]:[]}catch{return[]}})}async function og(e){let t=process.env.PM_SOURCE_WORKSPACE_ROOT,n=process.env.PM_SOURCE_PM_PATH,r=process.env.PM_PATH;if(!(process.env.PM_SOURCE_CONTEXT_ACCESS!=="read_only"||!t||!n||!r))try{if(await Oe(e)!==await Oe(r))return;let i=O.relative(await Oe(t),await Oe(n)),o=i===".."||i.startsWith(`..${O.sep}`)||O.isAbsolute(i),s=dt(o?O.join(await Oe(t),".agents","pm"):await Oe(n)),[a,c]=await Promise.all([Oe(s),Oe(dt(n))]);return a!==c?void 0:{workspace:t,directory:s}}catch{return}}async function fr(e,t={}){let n=await Fi(e),r=n===null?{receipts:[],invalid_evidence_count:0,invalid_evidence:[],invalid_evidence_truncated:!1}:await td(n,"clone_local"),i=t.pmRoot??O.join(e,".agents","pm"),o=await td(dt(i),"durable"),s=new Map(o.receipts.map(u=>[u.id,u])),a=0,c=[];for(let u of r.receipts){let f=s.get(u.id);if(f!==void 0&&!(f.value_policy===void 0?jt(u):[Pt(u)]).includes(Pt(f))){s.delete(u.id),a+=1,r.invalid_evidence.length+o.invalid_evidence.length+c.length<lr&&c.push({evidence_source:"clone_local_and_durable",reason:"copy_provenance_mismatch",receipt_id:u.id});continue}s.set(u.id,f===void 0?u:eg(u,f))}await tg(s,o.receipts,i);let d=o.receipts.filter(u=>s.has(u.id)),l=new Set(await ig(e,i,d));return{durable_receipt_ids:[...l],unstaged_durable_receipt_ids:d.filter(u=>!l.has(u.id)).map(u=>u.id),receipts:[...s.values()].filter(u=>(t.includeReconciled||u.state==="pending")&&(t.includeLossless!==!1||u.decisions.length>0)).sort((u,f)=>u.created_at.localeCompare(f.created_at)),invalid_evidence_count:r.invalid_evidence_count+o.invalid_evidence_count+a,invalid_evidence:[...r.invalid_evidence,...o.invalid_evidence,...c].slice(0,lr),invalid_evidence_truncated:r.invalid_evidence_truncated||o.invalid_evidence_truncated||r.invalid_evidence_count+o.invalid_evidence_count+a>lr,clone_local_evidence_resolved:n!==null}}async function sg(e,t={}){return(await fr(e,t)).receipts}function rd(e,t,n){let r=new Set([...t?.durable_receipt_ids??[],...n?t?.unstaged_durable_receipt_ids??[]:[]]),i=[...e].filter(o=>!r.has(o));if(i.length!==0)throw new g(`Merge reconciliation refused ${i.length} receipt(s) without validated tracked evidence; no audit history was written.`,_.CONFLICT,{code:"merge_receipt_not_portable",required:"Every receipt cited by tracked history must have matching validated evidence in the Git index before any audit write.",recovery:{suggested_retry:"pm merge report --include-reconciled"},nextSteps:["Stage valid project sidecars after reviewing git diff, or use pm merge reconcile --stage for guarded lossless settlement. Restore missing original counterparts or preserve unrelated stale receipts outside the active store. Never copy private clone-local values into tracked evidence. Then rerun pm merge reconcile --dry-run."]})}function lI(e){let t=[],n=[];for(let r of e)(Array.isArray(r.decisions)&&r.decisions.length>0?t:n).push(r);return{pendingDecisions:t,lossless:n}}async function uI(e,t,n={}){let r=await Fi(e);if(r===null){if(n.requireExisting===!0)throw new Error(`Receipt ${t.id} disappeared before settlement.`);return}let i=t.evidence_source??"clone_local";if(!Ni(t,i))throw new Error("Merge receipt trusted settlement input failed schema validation.");let o=D(),s=O.join(r,Le(t.id)),a=await nd(e,t.item_path),c=a===null?null:O.join(dt(a),Le(t.id)),d=(await Promise.all([ed({receiptPath:s,receiptId:t.id,evidenceSource:"clone_local",reconciledAt:o,settlement:n.settlement}),...c===null?[]:[ed({receiptPath:c,receiptId:t.id,evidenceSource:"durable",reconciledAt:o,settlement:n.settlement})]])).filter(l=>l!==null);if(d.length===0){if(n.requireExisting===!0)throw new Error(`Receipt ${t.id} disappeared before settlement.`);return}if(!(d.some(l=>l.modern)?[Pt(t)]:jt(t)).some(l=>d.every(u=>u.fingerprints.includes(l))))throw new Error(`Receipt ${t.id} settlement copies disagree on immutable merge provenance.`);for(let l of d)await q(l.path,l.content)}async function fI(e){let t=await sg(e.cwd??process.cwd(),{...e,includeLossless:!0});return{ok:!0,count:t.length,receipts:t,generated_at:D()}}async function mI(e){let t=await fr(e.cwd??process.cwd(),{...e,includeLossless:!0}),n=t.clone_local_evidence_resolved===!0&&t.invalid_evidence_count===0;return{ok:n,complete:n,count:t.receipts.length,invalid_evidence_count:t.invalid_evidence_count,invalid_evidence:t.invalid_evidence,invalid_evidence_truncated:t.invalid_evidence_truncated,clone_local_evidence_resolved:t.clone_local_evidence_resolved,receipts:t.receipts,generated_at:D()}}import ag from"node:fs/promises";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="eeaf2318-5964-5d98-ad90-9faa7fc69975")}catch{}})();function $i(e){if(!e.itemDocument)return[];let t=e.itemDocument.metadata?.assignee?.trim();if(!t||t===e.author||e.force)return[];let n=Cs(e.settings);if(n.ownership_enforcement==="strict")throw new g(`Item ${e.subjectId} is assigned to ${t}. Use --force to override.`,_.CONFLICT);return n.ownership_enforcement==="warn"?[`ownership_warning:assignee_conflict:${e.subjectId}:${t}`]:[]}async function cg(e){let t=await ye(e.subject.historyPath);if(t!==e.historyRawBeforeLock)throw new g(`History for ${e.subject.id} changed while waiting for lock; retry ${e.operation}.`,_.CONFLICT);let n=await Re(e.pmRoot,e.subject.id,e.settings.id_prefix,e.settings.item_format,e.typeRegistry.type_to_folder),r=n?e.readItem?await e.readItem(n):await Te(n,{schema:e.settings.schema}):null;if((r?.raw??null)!==(e.currentItemRawBeforeLock??null))throw new g(`Item ${e.subject.id} changed while waiting for lock; retry ${e.operation}.`,_.CONFLICT);return{historyRawUnderLock:t,locatedUnderLock:n,loadedItemUnderLock:r}}async function mr(e){let t=e.writeHistoryRaw??q;try{await t(e.historyPath,e.nextHistoryRaw),await Br(e.historyPath)}catch(n){try{e.historyRawUnderLock===null?await ag.rm(e.historyPath,{force:!0}):await t(e.historyPath,e.historyRawUnderLock),await Br(e.historyPath)}catch(r){throw new AggregateError([n,r],`History rewrite failed and rollback also failed: ${String(n)}`)}throw n}}async function id(e){let t=[...$i({itemDocument:e.itemDocument,subjectId:e.subject.id,author:e.author,force:e.force,settings:e.settings})],n=await qe(e.pmRoot,e.subject.id,e.settings.locks.ttl_seconds,e.author,!!e.force,e.settings.governance.force_required_for_stale_lock,e.settings.locks.wait_ms);try{let r=await cg({pmRoot:e.pmRoot,subject:e.subject,settings:e.settings,typeRegistry:e.typeRegistry,historyRawBeforeLock:e.historyRawBeforeLock,currentItemRawBeforeLock:e.currentItemRawBeforeLock,operation:e.operation});return await e.applyRewrite(r),e.applyPostRewrite&&t.push(...await e.applyPostRewrite(r)),t}finally{await n()}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="6283ef18-f75e-5e8c-a65f-0ba05858bc2b")}catch{}})();async function od(e){let{subject:t,settings:n,operation:r,options:i}=e,o=await Vo(t.historyPath,t.id);if(o.raw===null)throw new g(`No history stream exists for ${t.id}.`,_.NOT_FOUND);if(o.entries.length===0)throw new g(`No history entries exist for ${t.id}; nothing to ${r.slice(8)}.`,_.USAGE);let s=t.located?await Te(t.located,{schema:n.schema}):null,a=be(i.author,n.author_default),c=await e.transform({raw:o.raw,entries:o.entries,verification:Hr(o.entries),loadedItem:s,author:a}),d=Hr(c.rewrittenEntries);if(!d.ok)throw new g(`${r} produced an invalid rewritten chain (${d.errors.join(", ")}).`,_.GENERIC_FAILURE);let l=c.changed&&!i.dryRun?await id({pmRoot:e.pmRoot,subject:t,settings:n,typeRegistry:e.typeRegistry,historyRawBeforeLock:o.raw,currentItemRawBeforeLock:s?.raw??null,operation:r,author:a,force:i.force,itemDocument:s?.document??null,applyRewrite:async u=>{await c.beforeWrite?.(),c.applyRewrite?await c.applyRewrite(u):await mr({historyPath:t.historyPath,nextHistoryRaw:Me(c.rewrittenEntries),historyRawUnderLock:u.historyRawUnderLock})},applyPostRewrite:c.afterWrite??(async()=>cn({path:t.historyPath,scope:"project",op:`${r.replace("-","_")}:history`}))}):[];return c.report({verification:d,warnings:l})}import{isUtf8 as dg}from"node:buffer";import{readFile as lg}from"node:fs/promises";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="cca38e64-dd53-5086-8825-dc1c8f1cc587")}catch{}})();function ug(e){let t;try{t=JSON.parse(e)}catch{if(e.trimStart().startsWith("{")&&e.includes("}"))throw new g("History salvage cannot discard a potentially complete record with trailing corruption.",_.CONFLICT,{code:"history_salvage_refused"});return null}if(typeof t!="object"||t===null||Array.isArray(t))throw new g("History salvage would conceal interior corruption or a malformed record.",_.CONFLICT,{code:"history_salvage_refused"});let n=t;if(!Array.isArray(n.patch)||![n.ts,n.author,n.op,n.before_hash,n.after_hash].every(r=>typeof r=="string"))throw new g("History salvage requires complete history records before the invalid tail.",_.CONFLICT,{code:"history_salvage_refused"});return n}function fg(e){if(ze(e))throw new g("Resolve history merge conflicts before salvage.",_.CONFLICT,{code:"history_salvage_refused"});let t=[],n=0,r,i=0;for(let[s,a]of e.split(`
|
|
11
|
+
`).entries()){if(!a.trim()){n+=a.length+1;continue}let c=ug(a);if(c===null){r===void 0&&(r=n,i=s+1),n+=a.length+1;continue}if(r!==void 0)throw new g("History salvage would discard a record or conceal interior corruption.",_.CONFLICT,{code:"history_salvage_refused",required:"Recover the damaged record from version control or a backup; no bytes were changed."});t.push(c),n+=a.length+1}let o=Se(t);if(!o.ok||o.item_hash_version===void 0)throw new g("History salvage requires a nonempty verified prefix.",_.CONFLICT,{code:"history_salvage_refused",verification_errors:o.errors,required:"Recover an intact history prefix from version control or a backup."});return{entries:t,itemHashVersion:o.item_hash_version,prefix:r===void 0?e:e.slice(0,r),receipt:r===void 0?null:{first_invalid_line:i,discarded_bytes:Buffer.byteLength(e.slice(r)),discarded_sha256:re(e.slice(r)),retained_entries:t.length}}}async function mg(e,t,n){if(!e.located)return{itemRaw:null,document:n};let r=await xs(e.located,{schema:t.schema});return{itemRaw:r.raw,document:r.document??n}}async function sd(e){let t;try{t=await lg(e)}catch(n){if(ce(n))return null;throw n}if(!dg(t))throw new g("History salvage requires UTF-8 input; recover binary corruption from a byte-preserving backup.",_.CONFLICT,{code:"history_salvage_refused"});return t.toString("utf8")}async function ad(e){let{subject:t,settings:n,options:r,author:i}=e;if([r.normalizeProvenance,r.auditOperation,r.auditContext,r.auditContextById,r.forceAuditEntry,r.mergeReceiptProof,r.mergeReceiptProofById].some(Boolean))throw new g("Tail salvage cannot be combined with other repair modes.",_.USAGE);let o=await sd(t.historyPath);if(o===null)throw new g(`No history stream exists for ${t.id}.`,_.NOT_FOUND);await dn({path:t.historyPath,scope:"project"});let s=fg(o),a=Ss(s.entries,s.entries.length-1),c=_s(a);if(typeof a.metadata.id=="string"&&a.metadata.id!==t.id)throw new g("History belongs to another item; salvage refused.",_.CONFLICT,{code:"history_salvage_refused"});let d=await mg(t,n,c),l=$i({itemDocument:d.document,subjectId:t.id,author:i,force:r.force,settings:n}),u=s.itemHashVersion,f=r.dryRun===!0,p=s.receipt!==null;if(p&&!f){let m=await qe(e.pmRoot,t.id,n.locks.ttl_seconds,i,!!r.force,n.governance.force_required_for_stale_lock,n.locks.wait_ms);try{let h=await sd(t.historyPath),y=await Re(e.pmRoot,t.id,n.id_prefix,n.item_format,e.typeRegistry.type_to_folder),v=y?await ye(y.itemPath):null;if(h!==o||v!==d.itemRaw)throw new g("History or item changed while waiting for salvage lock; retry.",_.CONFLICT);let b=vn({...hs({hashAlgorithm:Ne(s.entries.at(-1).hash_algorithm),nowIso:D(),author:i,op:"history_salvage",before:c,after:c,message:r.message,context:{history_salvage:s.receipt}}),before_hash:s.entries.at(-1).after_hash,after_hash:s.entries.at(-1).after_hash,item_hash_version:u});await mr({historyPath:t.historyPath,historyRawUnderLock:o,nextHistoryRaw:`${s.prefix}${JSON.stringify(b)}
|
|
12
|
+
`}),l.push(...await cn({path:t.historyPath,scope:"project",op:"history_salvage:history"}))}finally{await m()}}return{id:t.id,dry_run:f,changed:p,history:{path:t.historyPath,entries_scanned:s.entries.length,chain_drift_before:!1,entries_rehashed:0,entries_patch_repaired:0,converted_replace_to_add:0,skipped_ops:0,reconciled_with_item:!1,audit_entry_added:p&&!f,verify_ok:!0,verify_errors:[],item_hash_version_before:u,item_hash_version_after:u,version_disposition:"preserved"},item:{exists:t.located!==null,path:t.located?.itemPath??null,matched_chain_before:null},provenance_normalization:{requested:!1,changed:!1,events_changed:0,observations_removed:0,invalid_values:[]},...s.receipt?{salvage:s.receipt}:{},warnings:l,generated_at:D()}}import{realpath as wd}from"node:fs/promises";import ji from"node:path";import kd from"fast-json-patch";import Ut from"node:fs/promises";import{createHash as pg}from"node:crypto";import dd 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]="97537e2a-b8cb-559e-82bc-3c98b0c51db1")}catch{}})();var Pi=new Set([void 0,...No]),ld=11,hg="history-drift-cache.json";function ud(e){return dd.join(e,"runtime",hg)}async function gg(e){try{let t=await Ut.readFile(ud(e),"utf8"),n=JSON.parse(t);return n.version!==ld||n.history_item_hash_version!==yn||typeof n.entries!="object"||n.entries===null||Object.values(n.entries).some(r=>typeof r.chain_ok!="boolean"||typeof r.latest_hash_comparable!="boolean"||!Pi.has(r.hash_algorithm)||!Xe.includes(r.item_hash_version)&&r.version_skew!==!0||r.chain_ok&&r.version_skew!==!0&&Xe.includes(r.item_hash_version)&&!r.latest_hash_comparable)?null:n}catch{return null}}function fd(){return{missingStreams:[],unreadableStreams:[],hashMismatches:[],chainMismatches:[],versionSkews:[],workspaceStateMismatches:[],workspaceStateMissing:[],workspaceStateUnreadable:[]}}function md(e){let t=[...new Set([...e.missingStreams,...e.unreadableStreams,...e.hashMismatches,...e.chainMismatches,...e.versionSkews,...e.workspaceStateMismatches.length>0||e.workspaceStateMissing.length>0||e.workspaceStateUnreadable.length>0?[Q]:[]])].sort((n,r)=>n.localeCompare(r));return{...e,driftedItems:t}}async function _g(e,t,n,r,i){let o=bs(e),s;try{s=await Ut.stat(o)}catch(d){return ce(d)||i.unreadableStreams.push(Q),!1}let a=i.missingStreams.length,c=await pd({itemId:Q,historyPath:o,stat:s,cached:t[Q],verifyCacheHitByContent:r,accumulator:i});return c.verification?(c.verification.versionSkew&&i.versionSkews.push(Q),c.verification.chainOk||i.chainMismatches.push(Q),n[Q]={mtime_ms:s.mtimeMs,ctime_ms:s.ctimeMs,size:s.size,content_hash:c.verification.contentHash,latest_after_hash:c.verification.latestAfterHash,chain_ok:c.verification.chainOk,version_skew:c.verification.versionSkew,latest_hash_comparable:c.verification.latestHashComparable,item_hash_version:c.verification.itemHashVersion,hash_algorithm:c.verification.hashAlgorithm},c.cacheDirty):(i.missingStreams.splice(a),c.cacheDirty)}function yg(e){return!Pi.has(e.hash_algorithm)||e.item_hash_version!==void 0&&!Xe.includes(e.item_hash_version)}async function vg(e){let t=await Ut.readFile(e,"utf8"),n=pg("sha256").update(t).digest("hex");if(t.trim().length===0)return null;let r=[],i=null;for(let f of t.split(/\r?\n/)){let p=f.trim();if(p.length===0)continue;let m=JSON.parse(p);if(typeof m.after_hash!="string"||m.after_hash.trim().length===0)throw new Error("missing after_hash");r.push(m),i=m.after_hash}if(!i)return null;let o=Se(r),s=r.some(yg),a=r[r.length-1],c=Pi.has(a.hash_algorithm),d=a.item_hash_version,l=d!==void 0&&Xe.includes(d),u=l?d:o.item_hash_version;return{latestAfterHash:i,hashAlgorithm:c?Ne(a.hash_algorithm):void 0,identityDiscontinuities:Mo(r),chainOk:o.ok,versionSkew:s,latestHashComparable:c&&u!==void 0&&(!s||l||d===void 0),contentHash:n,itemHashVersion:u??yn}}function bg(e,t){return e!==void 0&&e.mtime_ms===t.mtimeMs&&e.ctime_ms===t.ctimeMs&&e.size===t.size}async function cd(e,t,n){try{return await vg(t)||(n.missingStreams.push(e),null)}catch{return n.unreadableStreams.push(e),null}}function wg(e,t){return e!==null&&e.contentHash===t.content_hash&&e.latestAfterHash===t.latest_after_hash&&e.chainOk===t.chain_ok&&e.versionSkew===(t.version_skew===!0)&&e.latestHashComparable===t.latest_hash_comparable&&e.itemHashVersion===t.item_hash_version&&e.hashAlgorithm===t.hash_algorithm}async function pd(e){let t=typeof e.cached?.content_hash=="string"&&e.cached.content_hash.length>0?e.cached.content_hash:void 0;if(!(bg(e.cached,e.stat)&&t!==void 0)||!e.cached||!e.cached.chain_ok)return{verification:await cd(e.itemId,e.historyPath,e.accumulator),cacheDirty:!0};if(e.verifyCacheHitByContent){let n=await cd(e.itemId,e.historyPath,e.accumulator);return{verification:n,cacheDirty:!wg(n,e.cached)}}return{verification:{identityDiscontinuities:[],latestAfterHash:e.cached.latest_after_hash,chainOk:e.cached.chain_ok,versionSkew:e.cached.version_skew===!0,latestHashComparable:e.cached.latest_hash_comparable&&Xe.includes(e.cached.item_hash_version),contentHash:t,itemHashVersion:e.cached.item_hash_version,hashAlgorithm:e.cached.hash_algorithm},cacheDirty:!1}}async function hd(e,t,n,r){let i,o;try{i=Io(e,t.id),o=await Ut.stat(i)}catch(d){return(ce(d)?r.missingStreams:r.unreadableStreams).push(t.id),!1}let s=await pd({itemId:t.id,historyPath:i,stat:o,cached:n.previousEntries[t.id],verifyCacheHitByContent:n.verifyCacheHitByContent,accumulator:r});if(!s.verification)return s.cacheDirty;s.verification.identityDiscontinuities.length>0&&(r.identityDiscontinuities??=[]).push(...s.verification.identityDiscontinuities.map(d=>({...d,item_id:t.id}))),s.verification.versionSkew&&r.versionSkews.push(t.id),s.verification.chainOk||r.chainMismatches.push(t.id),n.nextEntries[t.id]={mtime_ms:o.mtimeMs,ctime_ms:o.ctimeMs,size:o.size,content_hash:s.verification.contentHash,latest_after_hash:s.verification.latestAfterHash,chain_ok:s.verification.chainOk,version_skew:s.verification.versionSkew,latest_hash_comparable:s.verification.latestHashComparable,item_hash_version:s.verification.itemHashVersion,hash_algorithm:s.verification.hashAlgorithm};let{body:a,...c}=t;return s.verification.latestHashComparable&&(ps({metadata:c,body:a},s.verification.itemHashVersion,s.verification.hashAlgorithm).includes(s.verification.latestAfterHash)||r.hashMismatches.push(t.id)),s.cacheDirty}async function kg(e,t){if(!(t.unreadableStreams.includes(Q)||t.chainMismatches.includes(Q)||t.versionSkews.includes(Q)))try{let n=await ws(e);t.workspaceStateMismatches.push(...n.mismatched_documents),t.workspaceStateMissing.push(...n.missing_documents),t.workspaceStateUnreadable.push(...n.unreadable_documents)}catch{t.unreadableStreams.push(Q)}}async function sC(e,t){let n=fd();return await hd(e,t,{previousEntries:{},nextEntries:{},verifyCacheHitByContent:!0},n),md(n)}async function gd(e,t,n={}){let r=fd(),i=(await gg(e))?.entries??{},o={},s=!1,a=n.cacheHitVerification!=="metadata",c={previousEntries:i,nextEntries:o,verifyCacheHitByContent:a};for(let l of t)await hd(e,l,c,r)&&(s=!0);let d=await _g(e,i,o,a,r);if(s||=d,await kg(e,r),s||Object.keys(i).length!==Object.keys(o).length){let l=ud(e);try{await Ut.mkdir(dd.dirname(l),{recursive:!0}),await q(l,JSON.stringify({version:ld,history_item_hash_version:yn,entries:o}))}catch{}}return md(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]="a6d2870f-ebba-580a-85e9-3eb44e533d08")}catch{}})();function _d(e,t){return t==="body"?e.body:e.metadata[t]}function Eg(e,t){if(t===null||typeof t!="object"||Array.isArray(t))return!1;let n=t;return e==="comments"?typeof n.created_at=="string"&&typeof n.author=="string"&&typeof n.text=="string":typeof n.path=="string"||e==="tests"&&typeof n.command=="string"}function Ig(e){let t={...e};if(t.source_kind==="merge_union"&&(t.source_kind="local_mutation"),t.provenance!==null&&typeof t.provenance=="object"&&!Array.isArray(t.provenance)){let n={...t.provenance};n.source_kind==="merge_union"&&(n.source_kind="local_mutation"),t.provenance=n}return t}function yd(e,t){if(!Array.isArray(t)||!["comments","docs","tests"].includes(e)||!t.every(r=>Eg(e,r)))return t;let n=t.map(r=>e==="comments"?r:Ig(r));return[...new Map(n.map(r=>[E(r),r])).values()]}function Ui(e,t){if(e===void 0||Object.is(e,t))return!0;if(Array.isArray(e)){if(!Array.isArray(t))return!1;let r=new Set;return e.every(i=>{let o=t.findIndex((s,a)=>!r.has(a)&&Ui(i,s));return o<0?!1:(r.add(o),!0)})}if(e===null||t===null||typeof e!="object"||typeof t!="object"||Array.isArray(t))return!1;let n=t;return Object.entries(e).every(([r,i])=>Object.hasOwn(n,r)&&Ui(i,n[r]))}function vd(e,t){let n=new Set(t),r=[];for(let i=e.length-1;i>=0&&n.size>0;i-=1){let o=e[i],s=new Set;for(let c of wn(o.patch))s.add(En(c.path)),c.from&&s.add(En(c.from));let a=[...n].filter(c=>s.has(c));if(a.length!==0){for(let c of a)n.delete(c);r.push({index:i+1,ts:o.ts,author:o.author,op:o.op,fields:a.sort((c,d)=>c.localeCompare(d))})}}return r.reverse()}function Cg(e,t,n){let r=kd.compare(t,n);if(r.length===0)return;let i=new Set;for(let m of r)i.add(En(m.path));let o=new Set([...i].filter(m=>Ui(yd(m,_d(t,m)),yd(m,_d(n,m))))),s=new Set([...i].filter(m=>!o.has(m))),a=vd(e,s),c=vd(e,o),d=[...i].sort((m,h)=>m.localeCompare(h)),l=[...s].sort((m,h)=>m.localeCompare(h)),u=[...o].sort((m,h)=>m.localeCompare(h)),f=[...new Set(a.map(m=>m.author))].sort((m,h)=>m.localeCompare(h)),p=[...new Set(c.map(m=>m.author))].sort((m,h)=>m.localeCompare(h));return{reconciled_field_count:i.size,reconciled_fields:d,reverted_field_count:s.size,reverted_fields:l,discarded_events:a,discarded_authors:f,preserved_field_count:o.size,preserved_fields:u,preserved_events:c,preserved_authors:p,recovery_hint:a.length>0?"Reconciliation keeps the on-disk item and overwrites these replayed mutations. To recover one, inspect it with pm history <id> --diff --field <field>, then re-apply the lost value with pm update.":null}}async function Sg(e){try{return await wd(e)}catch{return null}}async function Rg(e){if(await Sg(ji.resolve(e.gitWorkspaceRoot,e.receipt.item_path))!==e.currentPath)return null;let t=[...new Set([...e.receipt.fields_from_theirs,...e.receipt.union_fields,...e.receipt.decisions.map(o=>o.field)])].sort(),n=e.receipt.merged_field_hashes;if(!n||t.length===0)return null;let r=Object.keys(n).sort();if(t.length!==r.length||t.some((o,s)=>o!==r[s]))return null;let i=e.currentItemReplay.metadata;return t.every(o=>{let s=o==="body"?e.currentItemReplay.body:i[o];return[Ae(s),re(E(T(s)))].includes(n[o])})?{receipt:e.receipt,declaredFields:t}:null}async function Tg(e){if(e.proof.gitWorkspaceRoot===null)return{trusted:!1,reason:"git_workspace_unavailable",receipt_ids:[]};if(e.itemPath===null||e.currentItemReplay===null)return{trusted:!1,reason:"item_path_unavailable",receipt_ids:[]};let t=e.proof.receipts.filter(s=>s.item_id===e.id);if(t.length===0)return{trusted:!1,reason:"no_item_receipts",receipt_ids:[]};let n=await wd(e.itemPath),r=[];for(let s of t){let a=await Rg({receipt:s,gitWorkspaceRoot:e.proof.gitWorkspaceRoot,currentPath:n,currentItemReplay:e.currentItemReplay});a&&r.push(a)}let i=new Set(r.flatMap(({declaredFields:s})=>s)),o=e.reconciliation?.reconciled_fields;return r.length>0&&(o===void 0||o.length>0&&o.every(s=>i.has(s)))?{trusted:!0,reason:"trusted_merge_driver_hash_evidence",receipt_ids:r.map(({receipt:s})=>s.id)}:{trusted:!1,reason:"no_receipt_set_proves_snapshot",receipt_ids:[]}}async function bd(e,t,n,r){if(e===void 0)return;let{receipt:i,gitWorkspaceRoot:o}=e,s=t.currentItemPath===null?null:ji.relative(o,t.currentItemPath).split(ji.sep).join("/");if(!n||r.entriesRehashed!==0||r.entriesPatchRepaired!==0||t.matchedChainBefore!==!0||t.currentItemRawBeforeLock===null||s!==i.item_path||i.operation===void 0||!await Wc(o,i.item_path,i.operation,t.currentItemRawBeforeLock))throw new g("Restored-origin receipt evidence no longer proves the exact clean item snapshot.",_.CONFLICT,{code:"merge_reconcile_receipt_evidence_untrusted",recovery:{suggested_retry:"pm merge reconcile --dry-run"}})}async function xg(e){let t=new Set(e.options.mergeReceiptProof?.receipts.filter(s=>s.item_id===e.subjectId).map(s=>s.id)??[]),n=e.options.mergeReceiptProof?await fr(e.options.mergeReceiptProof.gitWorkspaceRoot??process.cwd(),{includeReconciled:!0,includeLossless:!0,pmRoot:e.pmRoot}):void 0,r=n?.receipts.filter(s=>s.item_id===e.subjectId&&t.has(s.id))??[];rd(t,n,e.options.dryRun===!0);let i=e.options.mergeReceiptProof?await Tg({proof:{...e.options.mergeReceiptProof,receipts:r},id:e.subjectId,itemPath:e.itemReplayContext.currentItemPath,currentItemReplay:e.itemReplayContext.currentItemReplay,reconciliation:e.reconciliation}):void 0;if(i&&!i.trusted&&e.options.force!==!0)throw new g(`Merge receipt evidence for ${e.subjectId} does not prove the exact item snapshot (${i.reason}).`,_.CONFLICT,{code:"merge_reconcile_receipt_evidence_untrusted",required:"Use authoritative clone-local or durable receipt evidence whose canonical path, declared fields, and merged-value hashes match the current item, or review the mismatch and rerun with --force.",recovery:{suggested_retry:"pm merge reconcile --dry-run"}});let o=i?.trusted?r.filter(s=>i.receipt_ids.includes(s.id)):[];return{mergeReceiptProof:i,effectiveAuditContext:o.length>0&&e.options.force!==!0?{...e.options.auditContext,merge:{receipts:o.map(ur)}}:e.options.auditContext}}function Dg(e,t,n){let r=e.located?.itemPath??null,i=t.loadedItem,o=t.entries;if(!i)return{currentItemReplay:null,currentItemPath:r,matchedChainBefore:null,currentItemRawBeforeLock:null,loadedItem:null};let s=bn(i.document),a=o[o.length-1].after_hash;return{currentItemReplay:s,currentItemPath:r,matchedChainBefore:Ye(s,n,Ne(o.at(-1)?.hash_algorithm)).includes(a),currentItemRawBeforeLock:i.raw,loadedItem:i}}function Ag(e){return typeof e.message=="string"&&e.message.trim().length>0?e.message:`history-repair re-anchored ${e.entriesRehashed} entr${e.entriesRehashed===1?"y":"ies"}${e.entriesPatchRepaired>0?`, repaired ${e.entriesPatchRepaired} patch(es)`:""}${e.reconcileNeeded?", reconciled chain with on-disk item":""}.`}function Og(e){let t=[...e.reanchorEntries];if(!e.changed)return{rewrittenEntries:t,auditEntryAdded:!1};let n=e.reconcileNeeded&&e.currentItemReplay?e.currentItemReplay:e.finalReplay,r=Ne(e.reanchorEntries.at(-1)?.hash_algorithm),i=Ye(e.finalReplay,e.itemHashVersion,r),o=e.reanchorEntries[e.reanchorEntries.length-1].after_hash,s=i.indexOf(o),a=Ye(n,e.itemHashVersion,r),c={hash_algorithm:r,ts:D(),author:e.author,op:e.auditOperation,patch:e.reconcileNeeded&&e.currentItemReplay?kd.compare(e.finalReplay,e.currentItemReplay):[],before_hash:i[s],after_hash:a[s],message:e.message,...e.explicitItemHashVersion?{item_hash_version:e.itemHashVersion}:{},...e.auditContext===void 0?{}:{context:e.auditContext}};return t.push(vn({...c,event_class:Wo(c)})),{rewrittenEntries:t,auditEntryAdded:!0}}function Lg(e,t,n){let r=[];return e||r.push("history_repair_no_changes"),t>0&&r.push(`history_repair_skipped_unresolvable_ops:${t}`),n&&n.discarded_events.length>0&&r.push(`history_repair_reconcile_discards_events:${n.discarded_events.length}`,`history_repair_discarded_authors:${n.discarded_authors.join(",")}`),r}async function Ng(e,t,n){let{pmRoot:r,settings:i,typeRegistry:o}=await Kr(n.path),s=await Os(r,e,i,o.type_to_folder);return t.salvageTail===!0?ad({pmRoot:r,subject:s,settings:i,typeRegistry:o,options:t,author:be(t.author,i.author_default)}):od({pmRoot:r,subject:s,settings:i,typeRegistry:o,operation:"history-repair",options:t,transform:a=>Fg({pmRoot:r,subject:s,options:t},a)})}function Mg(e,t,n){let r=(e.mergeAbandonmentProof!==void 0||e.mergeReceiptProof!==void 0&&e.force!==!0)&&n!==void 0&&t.some(i=>i.record_hash_version!==void 0&&i.op==="merge_reconcile"&&E(i.context)===E(n));return e.forceAuditEntry===!0&&!r}async function Fg(e,t){let{pmRoot:n,subject:r,options:i}=e,o=t.entries,s=t.verification,a=Se(o),c=i.normalizeProvenance?Oc(o):{entries:o,receipt:{changed:!1,events_changed:0,observations_removed:0,invalid_values:[]}},d=ys(c.entries),l=new Set(c.entries.map(j=>j.item_hash_version).filter(j=>j!==void 0)),u=kn(c.entries,d),f=Dg(r,t,d);await bd(i.mergeAbandonmentProof,f,s.ok,u);let p=u.finalDocument,m=Ye(p,d),h=!1;if(f.currentItemReplay!==null){let j=Ye(f.currentItemReplay,d);h=!m.some((W,te)=>W===j[te])}let y=h&&f.currentItemReplay?Cg(u.entries,p,f.currentItemReplay):void 0,{mergeReceiptProof:v,effectiveAuditContext:b}=await xg({options:i,pmRoot:n,subjectId:r.id,itemReplayContext:f,reconciliation:y}),w=[u.entriesRehashed>0,u.entriesPatchRepaired>0,h,Mg(i,u.entries,b),c.receipt.changed].some(Boolean),k=t.author,S=!!i.dryRun,x=Ag({message:i.message,entriesRehashed:u.entriesRehashed,entriesPatchRepaired:u.entriesPatchRepaired,reconcileNeeded:h}),{rewrittenEntries:U,auditEntryAdded:N}=Og({reanchorEntries:u.entries,changed:w,reconcileNeeded:h,currentItemReplay:f.currentItemReplay,finalReplay:p,author:k,message:x,auditOperation:i.auditOperation??"history_repair",auditContext:c.receipt.changed?{...b,provenance_normalization:c.receipt}:b,itemHashVersion:d,explicitItemHashVersion:u.explicitItemHashVersion}),V=Lg(w,u.skippedOps,y);return{changed:w,rewrittenEntries:U,beforeWrite:async()=>bd(i.mergeAbandonmentProof,f,s.ok,u),report:({verification:j,warnings:W})=>({id:r.id,dry_run:S,changed:w,history:{path:r.historyPath,entries_scanned:o.length,chain_drift_before:!s.ok,entries_rehashed:u.entriesRehashed,entries_patch_repaired:u.entriesPatchRepaired,converted_replace_to_add:u.convertedReplaceToAdd,skipped_ops:u.skippedOps,reconciled_with_item:h,audit_entry_added:N,verify_ok:j.ok,verify_errors:j.errors,item_hash_version_before:a.item_hash_version??null,item_hash_version_after:d,version_disposition:l.size>1?"selected_for_ambiguous_stream":"preserved"},item:{exists:f.currentItemPath!==null,path:f.currentItemPath,matched_chain_before:f.matchedChainBefore},provenance_normalization:{requested:i.normalizeProvenance===!0,...c.receipt},...y?{reconciliation:y}:{},...v?{merge_receipt_proof:v}:{},warnings:[...new Set([...V,...W])].sort((te,_e)=>te.localeCompare(_e)),generated_at:D()})}}function AC(e,t){if(t&&e!==void 0)throw new g("history-repair: <id> and --all are mutually exclusive; pass an item id to repair one stream or --all to repair every drifted stream.",_.USAGE);if(!t&&e===void 0)throw new g("history-repair: provide an item <id> or pass --all to repair every drifted stream.",_.USAGE)}async function OC(e,t){if(e.salvageTail===!0)throw new g("Tail salvage requires one explicit item ID; --all is not supported.",_.USAGE);let{pmRoot:n,settings:r,typeRegistry:i}=await Kr(t.path),o=[],s=await Sn(n,r.item_format,i.type_to_folder,o,r.schema,{forceSourceScan:!0}),a=await gd(n,s),c=e.normalizeProvenance?await Lc(n):[],d=[...new Set([...a.driftedItems,...c])].sort((p,m)=>p.localeCompare(m)),l=[],u=[],f={repaired:0,skipped_clean:0,failed:0};for(let p of d)try{let m=await Ng(p,{...e,auditContext:e.auditContextById?.[p],auditContextById:void 0,mergeReceiptProof:e.mergeReceiptProofById?.[p]??e.mergeReceiptProof,mergeReceiptProofById:void 0},t),h=m.changed?"repaired":"skipped_clean";f[h]+=1,u.push(...m.warnings.map(y=>`${p}:${y}`)),l.push({id:p,outcome:h,entries_rehashed:m.history.entries_rehashed,entries_patch_repaired:m.history.entries_patch_repaired,reconciled_with_item:m.history.reconciled_with_item,...m.reconciliation?{reconciliation:m.reconciliation}:{},...m.merge_receipt_proof?{merge_receipt_proof:m.merge_receipt_proof}:{},warnings:m.warnings})}catch(m){f.failed+=1,l.push({id:p,outcome:"failed",error:m instanceof Error?m.message:String(m)})}return e.dryRun||await us(n),{all:!0,dry_run:!!e.dryRun,scanned_streams:s.length,drifted_streams:a.driftedItems.length,provenance_invalid_streams:c.length,streams:l,totals:f,warnings:[...new Set([...o,...u])].sort((p,m)=>p.localeCompare(m)),generated_at:D()}}(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]="1433b417-e41f-5963-a551-094132afd717")}catch{}})();var Ed=16;async function Id(e,t,n){let r=$(t,L()).type_to_folder,i=[],o=new Set,s=n;for(;s&&i.length<Ed;){let a=s.trim().toLowerCase();if(!a||o.has(a))break;o.add(a);let c=await Re(e,s,t.id_prefix,t.item_format,r);if(!c)break;let d=await Te(c,{schema:t.schema});i.push(d.document.metadata.id),s=d.document.metadata.parent}return i}async function PC(e){await Go({pmRoot:e.pmRoot,principal:e.principal,itemId:e.itemId,lineageIds:await Id(e.pmRoot,e.settings,e.itemId)})}async function jC(e){await Ko(e)}async function UC(e){await zo({pmRoot:e.pmRoot,principal:e.principal,...e.itemId?{itemId:e.itemId,lineageIds:await Id(e.pmRoot,e.settings,e.itemId)}:{}})}var BC={lineage_depth:Ed,active_items:64,evidence_rows:32};function Cd(e){if(!e)return;let t={};for(let n of e.active_item_ids)t[n]=1;e.focused_item_id&&(t[e.focused_item_id]=1);for(let n of e.evidence){let r=/^lineage:(.+)$/u.exec(n)?.[1];r&&t[r]===void 0&&(t[r]=.75)}return Object.keys(t).length>0?t:void 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]="c12559a3-2703-5665-9ec2-7309589be511")}catch{}})();var Bt=["priority_floor","weighted"],$g="default-weighted-v1";function Sd(e,t,n,r){let i=new Map(e.map(a=>[a.id,a.rank]));if(n!=="priority_floor"||r!==$g)return i;let o=t.in_progress_status,s=a=>R(a.item.status,t)===o?-1:a.item.priority;return e.sort((a,c)=>s(a)-s(c)||a.rank-c.rank),e.forEach((a,c)=>{a.rank=c+1}),i}function Rd(e,t,n,r){let i=e[0];if(!i)return;if(r==="priority_floor"){let a=t.get(i.item.id);return a!==void 0&&a!==1?`priority floor (relevance rank ${a})`:void 0}let o=n.in_progress_status,s=e.slice(1).filter(a=>a.item.priority<i.item.priority&&R(a.item.status,n)!==o).map(a=>a.item.priority);return s.length>0?`relevance over p${Math.min(...s)} ready work`:void 0}import{encode as jg}from"@toon-format/toon";import{createHash as Pg}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]="66022e7d-1594-5b88-a283-c64830ff0dfd")}catch{}})();function Bi(e){let t=Pg("sha256").update("[");for(let n of e)t.update(E(n)).update("\0");return t.update("]").digest("hex")}function pr(e,t){if(t===void 0)return D();let n=is(t).snapshot,r=`${e}:`,i=n?.slice(r.length);if(!n?.startsWith(r)||!i||!/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$/u.test(i)||!Number.isFinite(Date.parse(i)))throw new g("Query cursor has no supported fixed-window clock.",_.USAGE,{code:"invalid_query_cursor",nextSteps:["Repeat the original query without --after to obtain a fresh cursor."]});return i}function Ht(e,t){let n=e.map((a,c)=>({row:a,index:c})),r=de(t.command,{query:t.query,rows_digest:Bi(e)}),i=t.after===void 0?void 0:os(t.after,r);if(i&&(i.after_index===void 0||i.after_id!==String(i.after_index)||i.after_index>=e.length))throw new g("Query cursor position is outside the matching window.",_.USAGE,{code:"invalid_query_cursor",nextSteps:["Repeat the original query without --after to obtain a fresh cursor."]});let o=as(n,{cursor:t.after,fingerprint:r,snapshot:`${t.command}:${t.clock}`,limit:t.limit??e.length,readId:({index:a})=>String(a)}),s=i?.after_index===void 0?0:i.after_index+1;return{...o,rows:o.rows.map(({row:a})=>a),count:o.rows.length,total_count:e.length,page_start:s,omitted_count:e.length-s-o.rows.length,has_more:s+o.rows.length<e.length}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="351df2b3-3a1a-528c-96b9-72bb3e2f27fc")}catch{}})();var Hi=["agenda","day","week","month"],Gi=["markdown","toon","json"],Ug=["sun","mon","tue","wed","thu","fri","sat"],Bg=365,Hg=365,Ld=28,Gg=1e3;function Ki(e,t){if(e===void 0)return;let n=Number(e);if(!Number.isInteger(n)||n<0)throw new g(`${t} must be a non-negative integer`,_.USAGE);return n}function Kg(e){if(!e)return new Set(["deadlines","reminders","events"]);let t=e.trim().toLowerCase();if(t==="all")return new Set(["deadlines","reminders","events"]);let n=t.split(/[|,]/).map(i=>i.trim()).filter(i=>i.length>0);if(n.length===0)throw new g("Calendar include filter must not be empty",_.USAGE);let r=new Set;for(let i of n){if(i==="deadlines"||i==="deadline"){r.add("deadlines");continue}if(i==="reminders"||i==="reminder"){r.add("reminders");continue}if(i==="events"||i==="event"||i==="scheduled"){r.add("events");continue}throw new g("Calendar include filter must be deadlines|reminders|events|scheduled|all",_.USAGE)}return r}function Nd(e,t){let n;for(let r of t){let i=Ro(e,r,2);i!==null&&(n===void 0||i<n.distance)&&(n={choice:r,distance:i})}return n?.choice}function zg(e){if(!e)return"agenda";let t=e.trim().toLowerCase();if(!Hi.includes(t)){let n=Nd(t,Hi);throw new g(`Calendar view must be one of ${Hi.join("|")}${n?`. Did you mean "${n}"?`:"."}`,_.USAGE)}return t}function qg(e){if(!e)return;let t=e.trim().toLowerCase();if(!Gi.includes(t)){let n=Nd(t,Gi);throw new g(`Calendar format must be one of ${Gi.join("|")}${n?`. Did you mean "${n}"?`:"."}`,_.USAGE)}return t}function tS(e,t){let n=qg(e.format);if(t.json&&n&&n!=="json")throw new g("Cannot combine --json with --format markdown|toon",_.USAGE);return t.json?"json":n??"markdown"}function Vg(e,t){if(e===void 0)return;let n=J(e,t);if(!n){let r=t.definitions.map(i=>i.id);throw new g(`Calendar status filter must be one of ${r.join("|")}`,_.USAGE)}return n}function Wg(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!t)throw new g("Calendar assignee filter must be one of assigned|unassigned",_.USAGE);if(t!=="assigned"&&t!=="unassigned")throw new g(`Invalid calendar assignee filter "${e}". Allowed: assigned|unassigned`,_.USAGE);return t}function hr(e){return new Date(e).toISOString().slice(0,10)}function Md(e,t){if(!t||t==="UTC")return hr(e);try{let n=new Intl.DateTimeFormat("en-CA",{timeZone:t,year:"numeric",month:"2-digit",day:"2-digit"}).formatToParts(new Date(e)),r=n.find(s=>s.type==="year")?.value,i=n.find(s=>s.type==="month")?.value,o=n.find(s=>s.type==="day")?.value;if(r&&i&&o)return`${r}-${i}-${o}`}catch{}return hr(e)}function Wi(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate(),0,0,0,0)).toISOString()}function Ee(e,t){let n=new Date(e);return new Date(n.getTime()+t*24*60*60*1e3).toISOString()}function Fd(e){let t=new Date(Wi(e)),n=t.getUTCDay(),r=n===0?-6:1-n;return Ee(t.toISOString(),r)}function Xg(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),1,0,0,0,0)).toISOString()}function Yg(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth()+1,1,0,0,0,0)).toISOString()}function Jg(e,t){return C(e,t)>=0?e:t}function Td(e){return Object.fromEntries([...e.entries()].sort(([t],[n])=>t.localeCompare(n)))}function xd(e,t){e.set(t,(e.get(t)??0)+1)}function Qg(e){if(!e)return null;let t=[`freq=${e.freq}`];if(e.interval!==void 0&&t.push(`interval=${e.interval}`),e.count!==void 0&&t.push(`count=${e.count}`),e.until&&t.push(`until=${e.until}`),e.by_weekday&&e.by_weekday.length>0){let n=[...e.by_weekday].sort((r,i)=>Ge(r)-Ge(i));t.push(`by_weekday=${n.join("|")}`)}if(e.by_month_day&&e.by_month_day.length>0){let n=[...e.by_month_day].sort((r,i)=>r-i);t.push(`by_month_day=${n.join("|")}`)}if(e.exdates&&e.exdates.length>0){let n=[...e.exdates].sort((r,i)=>r.localeCompare(i));t.push(`exdates=${n.join("|")}`)}return t.join(",")}function $d(e,t,n,r){let i=new Date(Date.UTC(e,t,n,r.getUTCHours(),r.getUTCMinutes(),r.getUTCSeconds(),r.getUTCMilliseconds()));if(!(i.getUTCFullYear()!==e||i.getUTCMonth()!==t||i.getUTCDate()!==n))return i.toISOString()}function Pd(e){return Ug[new Date(e).getUTCDay()]}function Zg(e){let t=Date.parse(e);return Number.isFinite(t)?new Date(t).toISOString():null}function e_(e){let t=new Set;for(let n of e??[]){let r=Zg(n);r&&t.add(r)}return t}function t_(e,t,n,r,i){let o=e??Ee(n,-(r??Hg)),s=t??Ee(e??n,i??Bg);return{start:o,end:C(s,o)>0?s:Ee(o,1)}}function n_(e,t,n,r){let i=t.by_weekday!==void 0?[...t.by_weekday]:[Pd(e)],o=t.by_month_day!==void 0?[...t.by_month_day]:[new Date(e).getUTCDate()];return{startAt:e,startDate:new Date(e),window:n,maxOccurrences:r??Gg,interval:t.interval??1,countLimit:t.count??Number.POSITIVE_INFINITY,until:t.until,excluded:e_(t.exdates),weekdayFilter:t.by_weekday!==void 0?new Set(t.by_weekday):void 0,monthDayFilter:t.by_month_day!==void 0?new Set(t.by_month_day):void 0,sortedWeekdays:[...new Set(i)].sort((s,a)=>Ge(s)-Ge(a)),sortedMonthDays:[...new Set(o)].sort((s,a)=>s-a),occurrences:[],produced:0}}function gr(e,t){return C(t,e.startAt)<0?"continue":e.until&&C(t,e.until)>0||C(t,e.window.end)>=0?"stop":e.excluded.has(t)?"continue":(e.produced+=1,C(t,e.window.start)>=0&&e.occurrences.push(t),e.produced>=e.countLimit||e.occurrences.length>=e.maxOccurrences?"stop":"continue")}function _r(e,t){let n=Pd(t),r=new Date(t).getUTCDate(),i=!e.weekdayFilter||e.weekdayFilter.has(n),o=!e.monthDayFilter||e.monthDayFilter.has(r);return i&&o}function r_(e){let t=e.startAt;for(let n=0;n<e.maxOccurrences&&!(_r(e,t)&&gr(e,t)==="stop");n+=1)t=Ee(t,e.interval);return e.occurrences}function i_(e,t,n){let r=Ge(n),i=Ee(t,r),o=new Date(i);return new Date(Date.UTC(o.getUTCFullYear(),o.getUTCMonth(),o.getUTCDate(),e.startDate.getUTCHours(),e.startDate.getUTCMinutes(),e.startDate.getUTCSeconds(),e.startDate.getUTCMilliseconds())).toISOString()}function o_(e){let t=Fd(e.startAt);for(let n=0;n<e.maxOccurrences;n+=1){let r=Ee(t,n*e.interval*7);for(let i of e.sortedWeekdays){let o=i_(e,r,i);if(_r(e,o)&&gr(e,o)==="stop")return e.occurrences}}return e.occurrences}function s_(e){let t=e.startDate.getUTCFullYear(),n=e.startDate.getUTCMonth();for(let r=0;r<e.maxOccurrences;r+=1){let i=new Date(Date.UTC(t,n+r*e.interval,1,0,0,0,0));for(let o of e.sortedMonthDays){let s=$d(i.getUTCFullYear(),i.getUTCMonth(),o,e.startDate);if(!(!s||!_r(e,s))&&gr(e,s)==="stop")return e.occurrences}}return e.occurrences}function a_(e){let t=e.startDate.getUTCFullYear(),n=e.startDate.getUTCMonth();for(let r=0;r<e.maxOccurrences;r+=1){let i=t+r*e.interval;for(let o of e.sortedMonthDays){let s=$d(i,n,o,e.startDate);if(!(!s||!_r(e,s))&&gr(e,s)==="stop")return e.occurrences}}return e.occurrences}function c_(e,t,n,r){let i=n_(e,t,n,r);return t.freq==="daily"?r_(i):t.freq==="weekly"?o_(i):t.freq==="monthly"?s_(i):a_(i)}function jd(e){return[...e].sort((t,n)=>{let r=C(t.at,n.at);if(r!==0)return r;let i=t.item_priority-n.item_priority;if(i!==0)return i;let o=t.item_id.localeCompare(n.item_id);if(o!==0)return o;let s=t.kind.localeCompare(n.kind);if(s!==0)return s;let a=String(t.event_title).localeCompare(String(n.event_title));return a!==0?a:String(t.reminder_text).localeCompare(String(n.reminder_text))})}function Xi(e){return{item_id:e.id,item_title:e.title,item_type:e.type,item_status:e.status,item_priority:e.priority,item_assignee:e.assignee??null,item_deadline:e.deadline??null,item_tags:e.tags}}function d_(e){return e.deadline?{at:e.deadline,date:hr(e.deadline),kind:"deadline",reminder_text:null,event_title:null,event_end:null,event_location:null,event_all_day:null,event_timezone:null,event_recurring:null,event_recurrence_rule:null,...Xi(e),item_deadline:e.deadline}:null}function l_(e){return(e.reminders??[]).map(t=>({at:t.at,date:hr(t.at),kind:"reminder",reminder_text:t.text,event_title:null,event_end:null,event_location:null,event_all_day:null,event_timezone:null,event_recurring:null,event_recurrence_rule:null,...Xi(e)}))}function u_(e,t){if(!t)return null;let n=Date.parse(t)-Date.parse(e);return Number.isFinite(n)&&n>0?n:null}function f_(e,t,n){return t.recurrence&&n!==null?new Date(new Date(e).getTime()+n).toISOString():t.end_at??null}function m_(e,t,n,r){let i=Qg(t.recurrence),o=u_(t.start_at,t.end_at);return(t.recurrence?c_(t.start_at,t.recurrence,n,r):[t.start_at]).map(s=>({at:s,date:t.all_day===!0?s.slice(0,10):Md(s,t.timezone),kind:"event",reminder_text:t.description??null,event_title:t.title??e.title,event_end:f_(s,t,o),event_location:t.location??null,event_all_day:t.all_day??null,event_timezone:t.timezone??null,event_recurring:!!t.recurrence,event_recurrence_rule:i,...Xi(e)}))}function p_(e,t,n,r){let i=[];for(let o of e){let s=n.has("deadlines")?d_(o):null;s&&i.push(s),n.has("reminders")&&i.push(...l_(o));for(let a of n.has("events")?o.events??[]:[])i.push(...m_(o,a,t,r))}return jd(i)}function h_(e,t,n,r,i){let o=Gs(t.type,n),s=t.tag?.trim().toLowerCase(),a=Nn(t.priority),c=Vg(t.status,r),d=t.assignee?.trim(),l=Wg(t.assigneeFilter),u=t.sprint?.trim(),f=t.release?.trim();if(d&&(d.toLowerCase()==="none"||d.toLowerCase()==="null"))throw new g('--assignee no longer accepts "none" or "null". Use --assignee-filter unassigned.',_.USAGE);if(d!==void 0&&l==="unassigned")throw new g("Cannot combine --assignee with --assignee-filter unassigned",_.USAGE);return e.filter(p=>g_(p,{typeFilter:o,tagFilter:s,priorityFilter:a,statusFilter:c,assigneeFilter:d,assigneeModeFilter:l,sprintFilter:u,releaseFilter:f,runtimeFieldFilters:i}))}function g_(e,t){return __(e,t)&&y_(e,t)&&Cn(e,t.runtimeFieldFilters)}function __(e,t){return!(t.typeFilter&&e.type!==t.typeFilter||t.tagFilter&&!e.tags.some(n=>n.trim().toLowerCase()===t.tagFilter)||t.priorityFilter!==void 0&&e.priority!==t.priorityFilter||t.statusFilter&&e.status!==t.statusFilter)}function y_(e,t){return!(t.assigneeModeFilter==="assigned"&&!e.assignee||t.assigneeModeFilter==="unassigned"&&e.assignee||t.assigneeFilter!==void 0&&e.assignee!==t.assigneeFilter||t.sprintFilter!==void 0&&e.sprint!==t.sprintFilter||t.releaseFilter!==void 0&&e.release!==t.releaseFilter)}function v_(e,t,n){return!(t&&C(e.at,t)<0||n&&C(e.at,n)>=0)}function zi(e,t,n){return e.trim().toLowerCase()==="today"?Wi(t):ve(e,new Date(t),n)}function b_(e,t,n){let r=t.date?zi(t.date,n,"--date"):n,i=t.past===!0,o=t.fullPeriod===!0,s=t.from?zi(t.from,n,"--from"):void 0,a=t.to?zi(t.to,n,"--to"):void 0;if(s&&a&&C(s,a)>=0)throw new g("Calendar --from must be before --to",_.USAGE);if(e!=="agenda"&&(t.from!==void 0||t.to!==void 0))throw new g("--from and --to are only supported for --view agenda",_.USAGE);if(e==="agenda")return w_(r,t,n,i,o,s,a);if(e==="day"){let d=Wi(r);return qi(r,n,i,o,d,Ee(d,1))}if(e==="week"){let d=Fd(r);return qi(r,n,i,o,d,Ee(d,7))}let c=Xg(r);return qi(r,n,i,o,c,Yg(r))}function w_(e,t,n,r,i,o,s){if(i)throw new g("--full-period is only supported for --view day|week|month. For agenda windows, use --from and --to.",_.USAGE);return{anchor:e,start:o??(t.date?e:r?void 0:n),end:s,fullPeriod:!1}}function qi(e,t,n,r,i,o){let s=n||r;return{anchor:e,start:s?i:Jg(i,t),end:o,periodStart:i,periodEnd:o,fullPeriod:s}}function k_(e){let t=new Map;for(let n of e){let r=t.get(n.date)??[];r.push(n),t.set(n.date,r)}return[...t.entries()].sort(([n],[r])=>n.localeCompare(r)).map(([n,r])=>({date:n,count:r.length,events:jd(r)}))}function E_(e){let t=new Set,n=new Map,r=new Map,i=0,o=0,s=0,a=0;for(let c of e)t.add(c.item_id),xd(n,c.item_type),xd(r,c.item_status),c.kind==="deadline"?i+=1:c.kind==="reminder"?o+=1:(s+=1,c.event_recurring===!0&&(a+=1));return{events:e.length,items:t.size,deadlines:i,reminders:o,scheduled:s,by_kind:{deadline:i,reminder:o,event:s},by_type:Td(n),by_status:Td(r),recurring_events:a}}function I_(e){let t=e.start??"unbounded",n=e.end??"unbounded";return`${t} -> ${n}`}function Ud(e,t){if(t&&t!=="UTC")try{let n=new Intl.DateTimeFormat("en-GB",{timeZone:t,hour:"2-digit",minute:"2-digit",hourCycle:"h23"}).formatToParts(new Date(e)),r=n.find(o=>o.type==="hour")?.value,i=n.find(o=>o.type==="minute")?.value;if(r&&i)return`${r}:${i}`}catch{}return`${new Date(e).toISOString().slice(11,16)}Z`}function Vi(e){let t=Object.entries(e);return t.length===0?"empty":t.map(([n,r])=>`${n}=${r}`).join(", ")}function C_(e){return e.event_end?e.event_all_day===!0?e.event_end.slice(0,10):e.date===Md(e.event_end,e.event_timezone)?Ud(e.event_end,e.event_timezone):e.event_end:null}function S_(e){let t=`${Ud(e.at,e.event_timezone)} [${e.kind}] ${e.item_id} type=${e.item_type} p${e.item_priority} ${e.item_status} ${e.item_title}`;if(e.kind==="reminder"){let n=e.reminder_text??"";return`${t} \u2014 ${n} reminder=${JSON.stringify(n)}`}if(e.kind==="event"){let n=[],r=e.event_title??e.item_title;e.event_title!==null&&e.event_title!==e.item_title&&(n.push(r),n.push(`title=${JSON.stringify(r)}`)),e.event_recurring&&(n.push("(recurring)"),n.push("recurring=true"));let i=C_(e);return i&&n.push(`end=${i}`),e.event_all_day!==null&&n.push(`all_day=${e.event_all_day?"true":"false"}`),e.event_timezone&&n.push(`timezone=${e.event_timezone}`),e.event_location&&(n.push(`@ ${e.event_location}`),n.push(`location=${JSON.stringify(e.event_location)}`)),e.event_recurrence_rule&&n.push(`recurrence=${e.event_recurrence_rule}`),e.reminder_text&&n.push(`description=${JSON.stringify(e.reminder_text)}`),`${t} \u2014 ${n.join(" ")}`}return t}function Dd(e,t){if(t&&t.length>0){e.push("### warnings");for(let n of t)e.push(`- ${n}`);e.push("")}}function nS(e){let t=[];if(t.push(`# pm calendar (${e.view})`),t.push(""),t.push(`- now: ${e.now}`),t.push(`- window: ${I_(e.range)}`),e.range.period_start&&e.range.period_end&&(t.push(`- period: ${e.range.period_start} -> ${e.range.period_end}`),t.push(`- period-mode: ${e.range.full_period?"full-period":"active-window"}`)),t.push(`- events: ${e.summary.events} (deadlines: ${e.summary.deadlines}, reminders: ${e.summary.reminders}, scheduled: ${e.summary.scheduled})`),t.push(`- items: ${e.summary.items}`),t.push(`- matching-events: ${e.total_count}; returned: ${e.count}; remaining: ${e.omitted_count} (summary: ${e.summary_scope})`),e.next_cursor&&t.push(`- continue: repeat the same query with --after ${e.next_cursor}`),t.push(`- by-kind: ${Vi(e.summary.by_kind)}`),t.push(`- by-type: ${Vi(e.summary.by_type)}`),t.push(`- by-status: ${Vi(e.summary.by_status)}`),t.push(`- recurring-events: ${e.summary.recurring_events}`),t.push(""),e.events.length===0)return t.push(e.total_count===0?"No calendar events matched the selected filters.":"No calendar events returned on this page. Repeat the same query with --limit 1 or greater to retrieve matching events."),t.push(""),Dd(t,e.warnings),Ad(t.join(`
|
|
13
|
+
`));for(let n of e.days){t.push(`## ${n.date} (${n.count})`);for(let r of n.events)t.push(`- ${S_(r)}`);t.push("")}return Dd(t,e.warnings),Ad(t.join(`
|
|
14
|
+
`))}function rS(e){return jg(e)}function Ad(e){let t=e.length;for(;t>0&&e[t-1]===`
|
|
15
|
+
`;)t-=1;return e.slice(0,t)}function R_(e){let t=pr("calendar",e.after),n=zg(e.view),r=b_(n,e,t),i=oe(e.limit),o=Kg(e.include),s=Ki(e.recurrenceLookaheadDays,"Calendar recurrence lookahead days"),a=Ki(e.recurrenceLookbackDays,"Calendar recurrence lookback days"),c=Ki(e.occurrenceLimit,"Calendar occurrence limit");if(c!==void 0&&c<1)throw new g("Calendar occurrence limit must be >= 1",_.USAGE);let d=o.has("events")&&!o.has("deadlines")&&!o.has("reminders"),l=e.to!==void 0||s!==void 0||a!==void 0||c!==void 0,u=d&&!l;return{nowValue:t,view:n,rangeBounds:r,limit:i,includeSources:o,occurrenceLimit:c,recurrenceLookaheadDays:u?Ld:s,recurrenceLookbackWindowDays:u&&a===void 0?0:a,eventsOnlyCapApplied:u}}function T_(e,t){t&&e.push(`recurring_events_default_cap_applied:lookback=0d,lookahead=${Ld}d -- use --recurrence-lookback-days/--recurrence-lookahead-days or --to for wider range`)}function Od(e,t){return{type:e.type??null,tag:e.tag??null,priority:e.priority??null,status:e.status??null,assignee:e.assignee??null,assignee_filter:e.assigneeFilter??null,sprint:e.sprint??null,release:e.release??null,runtime_filters:t,limit:e.limit??null,include:e.include??null,full_period:e.fullPeriod===!0?"true":null,recurrence_lookahead_days:e.recurrenceLookaheadDays??null,recurrence_lookback_days:e.recurrenceLookbackDays??null,occurrence_limit:e.occurrenceLimit??null}}function x_(e,t){return{start:t.start??null,end:t.end??null,period_start:t.periodStart??null,period_end:t.periodEnd??null,full_period:t.fullPeriod,past:e.past===!0,from:e.from??null,to:e.to??null}}async function Bd(e,t){let n=M(process.cwd(),t.path);await Z(n);let r=R_(e),i=await P(n),o=Y(i.schema),s=ln(i.schema),a=In(e,s,"calendar"),c=$(i,L()),d=[];T_(d,r.eventsOnlyCapApplied);let l=await ue(n,i.item_format,c.type_to_folder,d,i.schema),u=h_(l,e,c,o,a),f=t_(r.rangeBounds.start,r.rangeBounds.end,r.nowValue,r.recurrenceLookbackWindowDays,r.recurrenceLookaheadDays),p=p_(u,f,r.includeSources,r.occurrenceLimit).filter(b=>v_(b,r.rangeBounds.start,r.rangeBounds.end)),{rows:m,...h}=Ht(p,{command:"calendar",after:e.after,clock:r.nowValue,limit:r.limit,query:{pmRoot:n,view:r.view,range:r.rangeBounds,filters:{...Od(e,a),limit:void 0},recurringWindow:f,occurrenceLimit:r.occurrenceLimit}}),y=k_(m),v=[...new Set(d)].sort((b,w)=>b.localeCompare(w));return{view:r.view,output_default:"markdown",now:r.nowValue,anchor:r.rangeBounds.anchor,range:x_(e,r.rangeBounds),filters:Od(e,a),...h,summary_scope:"returned_rows",summary:E_(m),events:m,days:y,...v.length>0?{warnings:v}:{}}}(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]="2e0c4f91-ea56-5bec-b071-448eff719fec")}catch{}})();var yr={version:1,aliases:{}};function vr(e=[]){let t=new Set(Ve),n=r=>{/^[a-z0-9]+(?:-[a-z0-9]+)*$/u.test(r)&&t.add(r)};for(let r of e){for(let i of Object.keys(r.provenance_environment_keys??{}))n(i);for(let i of Object.keys(r.provenance_resolvers??{}))n(i);for(let i of r.provenance_unavailable_dimensions??[])n(i)}return[...t].sort()}function Hd(e){if(e===void 0)return;let t=(typeof e=="string"?[e]:e).flatMap(n=>n.split(",")).map(n=>n.trim()).filter(n=>n.length>0);return t.length===0?void 0:new Set(t)}function Yi(e,t){if(e.agent_harness?.trim())return{agent_harness:e.agent_harness,harness_source:"recorded"};let n=t.aliases[e.author];return n?{agent_harness:n,harness_source:"vocabulary"}:{harness_source:"unresolved"}}function Ji(e,t=Ve){let n=new Set(t),r=new Map,i=e.provenance===void 0?[]:typeof e.provenance=="string"?[e.provenance]:e.provenance;for(let o of i.flatMap(s=>s.split(","))){let s=o.indexOf("=");if(s<0)throw new g(`Provenance predicate must use dimension=value; received "${o.trim()}".`,_.USAGE,{code:"invalid_provenance_predicate"});let a=o.slice(0,s).trim().toLowerCase(),c=o.slice(s+1).trim();if(!n.has(a))throw new g(`Unknown provenance dimension "${a||o.trim()}". Declared dimensions: ${[...n].sort().join(", ")}.`,_.USAGE,{code:"unknown_provenance_dimension"});if(c.length===0)throw new g(`Provenance predicate must use dimension=value; received "${o.trim()}".`,_.USAGE,{code:"invalid_provenance_predicate"});let d=r.get(a)??new Set;d.add(c),r.set(a,d)}return r}function br(e,t=yr,n={}){let r=Yi(e,t);return{...n.itemId===void 0?{}:{item_id:n.itemId},...n.version===void 0?{}:{version:n.version},ts:e.ts,op:e.op,author:e.author,...e.author_source===void 0?{}:{author_source:e.author_source},...r,vocabulary_version:t.version,...e.agent_instance===void 0?{}:{agent_instance:e.agent_instance},agent_provenance:e.agent_provenance??{},...e.message===void 0?{}:{message:e.message}}}function cS(e,t,n=yr,r=Ve){return Qi(t,n,r)(e)}function Qi(e,t=yr,n=Ve){let r=Hd(e.harness),i=Hd(e.agentInstance),o=Ji(e,n);return s=>{let a=Yi(s,t).agent_harness;if(r&&(!a||!r.has(a))||i&&!i.has(s.agent_instance??""))return!1;for(let[c,d]of o){let l=s.agent_provenance?.[c];if(!l||!d.has(l.value))return!1}return!0}}function wr(e,t=yr,n=Ve){let r=new Set(n),i=new Map,o=0;for(let s of e){for(let a of Object.keys(s.agent_provenance??{}))r.add(a);Yi(s,t).agent_harness?o+=1:i.set(s.author,(i.get(s.author)??0)+1)}return{entries:e.length,vocabulary_version:t.version,harness:{resolved:o,unresolved:e.length-o,unresolved_authors:[...i].map(([s,a])=>({author:s,entries:a})).sort((s,a)=>a.entries-s.entries||s.author.localeCompare(a.author)).slice(0,20)},dimensions:[...r].sort().map(s=>{let a=0,c=0;for(let d of e){let l=d.agent_provenance?.[s];l===null?c+=1:l!==void 0&&(a+=1)}return{dimension:s,observed:a,unavailable:c,legacy_missing:e.length-a-c}})}}import D_ from"node:fs/promises";import Kd 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]="aa1ede64-e578-57da-9194-1cd646cee915")}catch{}})();var A_=20,O_=5,L_=15,N_="-24h";function bS(e){let t={...e};return t.full===!0?(t.raw=!0,t.compact=!1):t.raw===!0&&t.compact===void 0&&(t.compact=!0),delete t.full,t}var M_={digest:"activity_digest",compact:"compact_activity",provenance:"provenance_activity",full:"activity"};function Zi(e,t){if(e===void 0)return;let n=e.trim();if(n.length===0)throw new g(`${t} must not be empty`,_.USAGE);return n}function Gd(e,t,n){if(e===void 0)return;let r=e.trim();if(r.length===0)throw new g("Activity time bounds must not be empty",_.USAGE);let i=n==="--from"&&/^\d+[hdwm]$/iu.test(r)?`-${r}`:r;return ve(i,new Date(t),n)}function F_(e,t,n){return!(e.ts.length===0&&(t||n)||t&&C(e.ts,t)<0||n&&C(e.ts,n)>=0)}function Gt(e,t=""){return typeof e=="string"?e:t}function $_(e,t){return{...t,id:e,ts:Gt(t.ts),author:Gt(t.author,"unknown"),op:Gt(t.op,"unknown"),patch:Array.isArray(t.patch)?t.patch:[],before_hash:Gt(t.before_hash),after_hash:Gt(t.after_hash)}}function P_(e){return[...e].sort((t,n)=>{let r=n.ts.localeCompare(t.ts);if(r!==0)return r;let i=t.id.localeCompare(n.id);return i!==0?i:t.op.localeCompare(n.op)})}async function j_(e){try{return(await D_.readdir(e)).filter(t=>t.endsWith(".jsonl")).sort((t,n)=>t.localeCompare(n))}catch(t){if(ce(t))return[];throw t}}function U_(e){return e.raw!==!0&&e.compact!==!0&&e.provenance!==!0?"digest":e.provenance===!0?"provenance":e.compact===!0||e.raw===!0&&e.compact!==!1?"compact":"full"}function B_(e,t,n){if(e.unbounded!==!0)return t!==void 0?t:n==="digest"?L_:n==="compact"?A_:O_}function H_(e,t,n){let r=t==="digest",i=Gd(e.to??(r||e.unbounded!==!0?n:void 0),n,"--to"),o=Gd(e.from??(r?N_:void 0),e.from===void 0&&r?i:n,"--from");if(o&&i&&C(o,i)>=0)throw new g("Activity --from must be before --to",_.USAGE);let s=Gr(e.limit);if(e.unbounded===!0&&s!==void 0)throw new g("Activity --unbounded cannot be combined with --limit",_.USAGE);return{id:Zi(e.id,"Activity --id"),op:Zi(e.op,"Activity --op"),author:Zi(e.author,"Activity --author"),from:o,to:i,limit:B_(e,s,t),limitSource:e.unbounded===!0||s!==void 0?"explicit":"default",harness:e.harness,agentInstance:e.agentInstance,provenance:e.provenanceFilter}}async function G_(e){let t=M(process.cwd(),e.path);return await Z(t),{pmRoot:t,settings:await P(t)}}async function K_(e){let t=$(e.settings,L()),n=await ue(e.pmRoot,e.settings.item_format,t.type_to_folder,void 0,e.settings.schema);await vs({pmRoot:e.pmRoot,settings:e.settings,itemIds:n.map(i=>i.id),commandLabel:"activity"});let r=Kd.join(e.pmRoot,"history");return await dn({path:r,scope:"project"}),{historyDir:r,itemsById:new Map(n.map(i=>[i.id,{title:i.title,type:i.type,status:i.status}]))}}function z_(e,t,n){return n.op&&e.op!==n.op||n.author&&e.author!==n.author?!1:F_(t,n.from,n.to)}async function q_(e,t){let n=[];for(let r of await j_(e)){let i=r.slice(0,-6);if(t.id&&i!==t.id)continue;let o=await un(Kd.join(e,r),i);for(let s of o){let a=$_(i,s);z_(s,a,t)&&n.push(a)}}return n}function V_(e){return e.map(t=>({id:t.id,op:t.op,ts:t.ts,author:t.author,...t.message?{msg:t.message}:{}}))}function W_(e){let t=[...e.entries()].sort(([r,i],[o,s])=>s-i||r.localeCompare(o)),n=t.slice(0,4).map(([r,i])=>`${r}:${i}`);return t.length>n.length&&n.push(`+${t.length-n.length}`),n.join(",")}function X_(e,t){let n=new Map;for(let r of e){let i=n.get(r.id);if(i===void 0){n.set(r.id,{firstTs:r.ts,lastTs:r.ts,eventCount:1,operations:new Map([[r.op,1]])});continue}i.eventCount+=1,C(r.ts,i.firstTs)<0&&(i.firstTs=r.ts),C(r.ts,i.lastTs)>0&&(i.lastTs=r.ts),i.operations.set(r.op,(i.operations.get(r.op)??0)+1)}return[...n.entries()].map(([r,i])=>{let o=t.get(r);return{id:r,type:o?.type??"unknown",status:o?.status??"unknown",title:(o?.title??"(item metadata unavailable)").slice(0,160),event_count:i.eventCount,first_ts:i.firstTs,last_ts:i.lastTs,operations:W_(i.operations)}}).sort((r,i)=>C(i.last_ts,r.last_ts)||r.id.localeCompare(i.id))}function Y_(e){let t=new Map;for(let i of e)t.set(i.op,(t.get(i.op)??0)+1);let n=[...t.entries()].sort((i,o)=>o[1]-i[1]||i[0].localeCompare(o[0])),r=n.slice(0,8);return r.length<n.length&&r.push([`+${String(n.length-r.length)}`,n.slice(r.length).reduce((i,[,o])=>i+o,0)]),Object.fromEntries(r)}function J_(e,t,n,r,i){if(e==="digest"){let{rows:a,...c}=Ht(X_(t,r),n);return{rows:{activity_digest:a},compact:!1,page:c}}let{rows:o,...s}=Ht(t,n);return e==="compact"?{rows:{compact_activity:V_(o)},compact:!0,page:s}:e==="provenance"?{rows:{provenance_activity:o.map(i)},compact:!1,page:s}:{rows:{activity:o},compact:!1,page:s}}async function zd(e,t){let n=await G_(t),r=U_(e),i=pr("activity",e.after),o=H_(e,r,i),s=await K_(n),a=vr(n.settings.agent_identity.harness_signals),c=n.settings.agent_identity.identity_vocabulary,d=Qi({harness:o.harness,agentInstance:o.agentInstance,provenance:o.provenance},c,a),l=P_(await q_(s.historyDir,o)).filter(d),u=J_(r,l,{command:"activity",after:e.after,clock:i,limit:o.limit,query:{pmRoot:n.pmRoot,projectionMode:r,filters:{...o,limit:void 0,limitSource:void 0},matching_activity_digest:r==="digest"?Bi(l):void 0,vocabulary:c,provenanceDimensions:a}},s.itemsById,f=>br(f,c,{itemId:f.id}));return{...u.rows,compact:u.compact,projection:{mode:r,row_key:M_[r]},omission_receipt:Qo("activity",r),...u.page,window:{anchor:i,from:o.from??null,to:o.to??null},limit:o.limit??null,...r==="digest"?{activity_summary:{window:{from:o.from,to:o.to},event_count:l.length,item_count:u.page.total_count,author_count:new Set(l.map(f=>f.author)).size,operation_counts:Y_(l)}}:{},...e.provenanceSummary===!0?{provenance_summary:wr(l,c,a)}:{},applied_bound:{kind:o.limit===void 0?"unbounded":"limit",source:o.limitSource,value:o.limit??null}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="9cdfc765-7370-57bb-a4dc-be2df8aa1e6f")}catch{}})();var qd="1970-01-01T00:00:00.000Z";function Kt(e){if(typeof e!="string")return null;let t=e.trim();if(!on(t)&&!/^\d{4}-\d{2}-\d{2}$/u.test(t))return null;try{return ve(t,new Date(Number.NaN),"context signal recency coordinate")}catch{return null}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="74b476d9-5f30-5135-9539-5fe3e864c60f")}catch{}})();var eo=["structural","recency","activity_density","graph_proximity","claim_focus","priority_pressure","risk_pressure","deadline_pressure","knowledge_density","author_affinity","usage_affinity","semantic_similarity"],Q_=Symbol("no-context-author"),Z_=Symbol("no-item-assignee");function Vd(e,t){if(typeof e!="string")return t;let n=e.trim().toLowerCase();return n.length>0?n:t}function ey(e){if(typeof e!="string")return;let t=/^v?(\d{4})\.(\d{1,2})\.(\d{1,2})(?:$|[-+])/u.exec(e.trim());if(!t)return;let n=Number(t[1]),r=Number(t[2]),i=Number(t[3]),o=new Date(Date.UTC(n,r-1,i));return o.getUTCFullYear()===n&&o.getUTCMonth()===r-1&&o.getUTCDate()===i?o.toISOString():void 0}function ty(e){let t=ey(e.release);return t!==void 0?{source:"release_cohort",coordinate:t}:{source:"created_at",coordinate:Kt(e.created_at)??qd}}function ny(e){if(!["substantive_history","release_cohort","created_at"].includes(e.source)||(e.source==="substantive_history"?e.history_op!==void 0&&typeof e.history_op!="string"||e.event_class!==void 0&&e.event_class!=="substantive":e.history_op!==void 0||e.event_class!==void 0))throw new TypeError("Context signal recency provenance must match its source");let t=Kt(e.coordinate);if(t===null)throw new TypeError("Context signal recency coordinate must be a valid absolute timestamp with millisecond precision");return{...e,coordinate:t}}function ry(e,t){let n=typeof e=="number"?e:typeof e=="string"?Number.parseFloat(e):Number.NaN;return Number.isFinite(n)?1-Math.min(Math.max(n,0),t)/t:0}function iy(e,t){let n=typeof e=="string"?Date.parse(e):e instanceof Date?e.getTime():typeof e=="number"?e:Number.NaN;if(!Number.isFinite(n)||!Number.isFinite(t))return 0;let r=(n-t)/864e5;return r<=0?1:1/(1+r/30)}function oy(e){let t=typeof e=="string"?e.trim().toLowerCase():void 0;return t==="critical"||t==="high"?1:t==="medium"?.5:t==="low"?.1:0}function kr(e,t,n){return e?.[t]??n}function Er(e,t){let n=new Map(e.map(d=>{let l=t.recencyEvidence?.[d.id];return[d.id,l===void 0?ty(d):ny(l)]})),r=[...e].sort((d,l)=>{let u=n.get(d.id).coordinate,f=n.get(l.id).coordinate;return C(f,u)||d.id.localeCompare(l.id)}),i=new Map(r.map((d,l)=>[d.id,l])),o=Math.max(e.length-1,1),s=Vd(t.author,Q_),a=J("in_progress",t.statusRegistry),c=Date.parse(t.now);return e.map(d=>{let l=Vd(d.assignee,Z_)===s,u=(d.comments?.length??0)+(d.notes?.length??0)+(d.learnings?.length??0);return{id:d.id,item:d,signal_provenance:{recency:n.get(d.id)},signals:{recency:e.length===1?1:1-i.get(d.id)/o,activity_density:t.activityDensity?.[d.id],graph_proximity:kr(t.graphProximity,d.id,d.parent?.3:0),claim_focus:kr(t.claimFocus,d.id,R(d.status,t.statusRegistry)===a?1:l?.75:0),priority_pressure:ry(d.priority,4),risk_pressure:oy(d.risk),deadline_pressure:iy(d.deadline,c),knowledge_density:kr(t.knowledgeDensity,d.id,Math.min(u/5,1)),author_affinity:kr(t.authorAffinity,d.id,l?1:0),usage_affinity:t.usageAffinity?.[d.id],semantic_similarity:t.semanticSimilarity?.[d.id]}}})}var sy="context_relevance",ay={structural:.4,recency:.35,activity_density:.25,graph_proximity:.15,claim_focus:.6,priority_pressure:.35,risk_pressure:.2,deadline_pressure:.45,knowledge_density:.25,author_affinity:.2,usage_affinity:.3,semantic_similarity:.5},cy=new TextEncoder;function dy(e){let t=new Set;for(let n of e){if(typeof n.id!="string"||n.id.trim().length===0||t.has(n.id))throw new TypeError("Context relevance candidates require unique non-empty ids");t.add(n.id);for(let[r,i]of Object.entries(n.signals??{})){if(r==="structural"||!eo.includes(r))throw new TypeError(`Unknown context relevance signal: ${r}`);if(i!==void 0&&(!Number.isFinite(i)||i<0||i>1))throw new TypeError(`Context relevance signal ${r} must be a finite number from 0 to 1`)}}}function ly(e){let t={...ay};for(let[n,r]of Object.entries(e??{}))r!==void 0&&eo.includes(n)&&(t[n]=r);for(let[n,r]of Object.entries(t))if(!Number.isFinite(r)||r<0)throw new TypeError(`Context relevance weight ${n} must be a finite non-negative number`);return t}function Xd(e,t={}){dy(e);let n=ly(t.weights),r=Math.max(e.length-1,1),i=new Set(["structural"]);for(let a of e)for(let[c,d]of Object.entries(a.signals??{}))d!==void 0&&i.add(c);let o=eo.filter(a=>i.has(a)),s=e.map((a,c)=>{let d={structural:e.length===1?1:1-c/r,...a.signals},l={},u=0,f=0;for(let p of o){let m=d[p];if(m===void 0)continue;let h=m*n[p];l[p]=h,u+=h,f+=n[p]}return{...a,baseline_rank:c+1,rank:0,score:f===0?0:u/f,contributions:l}});return s.sort((a,c)=>c.score-a.score||a.baseline_rank-c.baseline_rank),s.forEach((a,c)=>{a.rank=c+1}),{model:"default-weighted-v1",available_signals:o,ranked:s}}async function uy(e,t={}){let n=Xd(e,t);if(!t.scorer)return n;let r=await t.scorer({candidates:e,default_report:n}),i=new Map;for(let s of r){if(i.has(s.id)||!Number.isFinite(s.score))throw new TypeError("Context relevance scorer must return one finite score for every candidate");i.set(s.id,s.score)}if(i.size!==e.length||e.some(s=>!i.has(s.id)))throw new TypeError("Context relevance scorer must return one finite score for every candidate");let o=n.ranked.map(s=>{let a=i.get(s.id);return{...s,score:a,contributions:{custom:a}}});return o.sort((s,a)=>a.score-s.score||s.baseline_rank-a.baseline_rank),o.forEach((s,a)=>{s.rank=a+1}),{model:"custom",available_signals:n.available_signals,ranked:o}}async function Ir(e,t,n={}){let r=Xd(t,n),i=await Oo(sy,{surface:e,candidates:t,default_report:r});if(!i.handled)return i.warnings.length>0?{...r,warnings:i.warnings}:r;if(!Array.isArray(i.result)||!i.result.every(o=>typeof o=="object"&&o!==null&&typeof o.id=="string"&&typeof o.score=="number"&&Number.isFinite(o.score)))return{...r,warnings:[...i.warnings,"extension_context_relevance_invalid_result"]};try{let o=await uy(t,{...n,scorer:()=>i.result});return i.warnings.length>0?{...o,warnings:i.warnings}:o}catch{return{...r,warnings:[...i.warnings,"extension_context_relevance_invalid_result"]}}}var fy=["ndcg","reciprocal_rank","required_recall","continuity_coverage","token_budget_adherence"];function Wd(e,t){return e.length===0?1:e.filter(n=>t.has(n)).length/e.length}function my(e){if(!Number.isFinite(e.actual_tokens)||e.actual_tokens<0||!Number.isFinite(e.token_budget)||e.token_budget<=0)throw new TypeError("Context ranking token counts require actual_tokens >= 0 and token_budget > 0");let t=e.judgments??{},n=e.ranked_ids.map(d=>Math.max(0,t[d]??0)),r=Object.values(t).map(d=>Math.max(0,d)).sort((d,l)=>l-d).slice(0,n.length||1),i=d=>d.reduce((l,u,f)=>l+(2**u-1)/Math.log2(f+2),0),o=i(r),s=n.findIndex(d=>d>0),a=new Set(e.ranked_ids),c=e.actual_tokens<=e.token_budget;return{ndcg:o===0?1:i(n)/o,reciprocal_rank:s<0?0:1/(s+1),required_recall:Wd(e.required_ids??[],a),continuity_coverage:Wd(e.continuity_ids??[],a),token_budget_adherence:c?1:e.token_budget/e.actual_tokens,within_token_budget:c}}function py(e){return Math.ceil(cy.encode(JSON.stringify(e)).byteLength/4)}function hy(e){return Math.round(e*1e4)/1e4}function gy(e,t){let n=t==="context"?[...e.high_level??[],...e.low_level??[],...e.blocked_fallback??[]].map(o=>o.id):[...e.recommended?[e.recommended]:[],...e.ready??[]].map(o=>o.id),r=new Set(n),i=(e.ranking?.items??[]).filter(o=>r.has(o.id)).map(o=>({id:o.id,contributions:o.contributions}));return{rankedIds:n,attribution:i}}async function _y(e,t){if(e.id.trim().length===0||e.rationale.trim().length===0)throw new TypeError("Context evaluation scenarios require non-empty id and rationale values");let n=e.surface==="context"?await t.context({...e.options,explainRanking:!0,outputBudget:e.options?.outputBudget??"unbounded"}):await t.next({...e.options,explainRanking:!0,outputBudget:e.options?.outputBudget??"unbounded"});if(fn(n)||n.read_output?.result_omitted===!0||n.context_intent?.result_omitted===!0)throw new g(`Cannot evaluate ${e.surface} scenario "${e.id}": the read omitted its useful result.`,_.USAGE,{code:"context_evaluation_read_incomplete",nextSteps:["Increase the read output budget or start a new shared output session, then rerun the scenario."]});let{rankedIds:r,attribution:i}=gy(n,e.surface),o={...n,ranking:void 0},s=py(o);return{id:e.id,surface:e.surface,rationale:e.rationale,ranked_ids:r,actual_tokens:s,metrics:my({ranked_ids:r,judgments:e.judgments,required_ids:e.required_ids,continuity_ids:e.continuity_ids,actual_tokens:s,token_budget:e.token_budget}),attribution:i}}function yy(e,t){if(e.length===0)throw new TypeError("Context evaluation requires at least one scenario report");let n=fy;for(let o of n)if(!Number.isFinite(t[o]))throw new TypeError(`Context evaluation threshold ${o} must be a finite number`);let r=Object.fromEntries(n.map(o=>[o,hy(e.reduce((s,a)=>s+a.metrics[o],0)/e.length)])),i=n.filter(o=>r[o]<t[o]).map(o=>`${o}:${r[o]}<${t[o]}`);return{scenario_count:e.length,aggregate:r,scenarios:[...e],passed:i.length===0,failures:i}}async function AS(e,t,n){let r=[];for(let i of e)r.push(await _y(i,t));return yy(r,n)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="d07ec2dc-762a-58ab-83ee-734ca1bf76a7")}catch{}})();var vy={balanced:{redundancyPenalty:.35,uncertaintyPenalty:.2},context:{redundancyPenalty:.45,uncertaintyPenalty:.15},next:{redundancyPenalty:.25,uncertaintyPenalty:.3}},by=["identity","summary","full"];function wy(e){if(!e.id.trim()||!Number.isInteger(e.rank)||e.rank<1)throw new TypeError("Context packing candidates require a non-empty id and positive integer rank");if(!Number.isFinite(e.score)||e.score<0)throw new TypeError("Context packing candidate scores must be finite and non-negative");let t=by.map(n=>e.token_costs[n]);if(t.some(n=>!Number.isInteger(n)||n<1)||t[0]>t[1]||t[1]>t[2])throw new TypeError("Context projection costs must be positive monotone integers");if(e.uncertainty!==void 0&&(!Number.isFinite(e.uncertainty)||e.uncertainty<0))throw new TypeError("Context packing uncertainty must be finite and non-negative")}function ky(e){if(!Number.isInteger(e.tokenBudget)||e.tokenBudget<1)throw new TypeError("Context packing tokenBudget must be a positive integer");let t=e.profile??"balanced",n=vy[t];if(!n)throw new TypeError("Unknown context packing profile");let r=e.redundancyPenalty??n.redundancyPenalty,i=e.uncertaintyPenalty??n.uncertaintyPenalty;if(!Number.isFinite(r)||r<0||r>1||!Number.isFinite(i)||i<0)throw new TypeError("Context packing penalties must be finite and within their supported ranges");if(e.latencyBudgetMs!==void 0&&(!Number.isFinite(e.latencyBudgetMs)||e.latencyBudgetMs<=0))throw new TypeError("Context packing latencyBudgetMs must be positive");return{redundancy:r,uncertainty:i,profile:t}}function Ey(e){let t=new Set;for(let n of e){if(wy(n),t.has(n.id))throw new TypeError("Context packing candidates require unique ids");t.add(n.id)}return[...e].sort((n,r)=>n.rank-r.rank||n.id.localeCompare(r.id))}function Iy(e,t,n,r,i){let o=-1,s=0;for(let a=0;a<e.length;a+=1){if(a%128===0&&i()>=r)return{index:o,evaluated:s,timedOut:!0};let c=e[a];if(c.token_costs.identity>t)continue;s+=1;let d=o<0?void 0:e[o],l=n(c)/c.token_costs.identity,u=d===void 0?Number.NEGATIVE_INFINITY:n(d)/d.token_costs.identity;(l>u||l===u&&d!==void 0&&(c.rank<d.rank||c.rank===d.rank&&c.id.localeCompare(d.id)<0))&&(o=a)}return{index:o,evaluated:s,timedOut:!1}}function Cy(e){let t=new Set,n=[],r=e.tokenBudget,i=d=>{let l=d.lineage??d.cluster,u=l&&t.has(l)?1-e.redundancyPenalty:1;return Math.max(0,(d.score-e.uncertaintyPenalty*(d.uncertainty??0))*u)},o=d=>{let l=d.token_costs.identity;n.push({...d,projection:"identity",tokens:l,marginal_value:i(d)}),r-=l;let u=d.lineage??d.cluster;u&&t.add(u)};for(let d of e.ordered.filter(l=>l.required))d.token_costs.identity<=r&&o(d);let s=e.ordered.filter(d=>!d.required),a=!0,c=0;for(;s.length>0;){let d=Iy(s,r,i,e.deadline,e.readClock);if(c+=d.evaluated,d.timedOut&&(a=!1),d.index<0||d.timedOut)break;o(s.splice(d.index,1)[0])}return{included:n,remaining:r,selectionComplete:a,evaluatedCandidates:c}}function Sy(e,t){let n=t;for(let r of["summary","full"]){let i=r==="summary"?"identity":"summary",o=[...e].sort((s,a)=>{let c=s.token_costs[r]-s.token_costs[i],d=a.token_costs[r]-a.token_costs[i];return a.marginal_value/Math.max(d,1)-s.marginal_value/Math.max(c,1)||s.rank-a.rank||s.id.localeCompare(a.id)});for(let s of o){if(s.projection!==i)continue;let a=s.token_costs[r]-s.tokens;a>n||(s.projection=r,s.tokens+=a,n-=a)}}return n}function Yd(e,t){let n=ky(t),r=Ey(e),i=t.readClock??performance.now.bind(performance),o=t.latencyBudgetMs===void 0?Number.POSITIVE_INFINITY:i()+t.latencyBudgetMs,s=Cy({ordered:r,tokenBudget:t.tokenBudget,redundancyPenalty:n.redundancy,uncertaintyPenalty:n.uncertainty,deadline:o,readClock:i}),{included:a}=s,c=Sy(a,s.remaining);a.sort((l,u)=>l.rank-u.rank||l.id.localeCompare(u.id));let d=new Set(a.map(l=>l.id));return{included:a,omitted_ids:r.filter(l=>!d.has(l.id)).map(l=>l.id),token_budget:t.tokenBudget,used_tokens:t.tokenBudget-c,remaining_tokens:c,complete:s.selectionComplete&&a.length===e.length&&a.every(l=>l.projection==="full"),selection_complete:s.selectionComplete,termination_reason:s.selectionComplete?"exhausted":"latency_budget",evaluated_candidates:s.evaluatedCandidates,latency_budget_ms:t.latencyBudgetMs??null,profile:n.profile,degradation_ladder:["full","summary","identity"]}}import zt from"node:fs/promises";import qt from"node:path";import{createHash as Jd,randomUUID as Ry}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]="179e487f-baf9-59d1-a438-3ae0c12b00eb")}catch{}})();var to=3,no=2,Qd=["recency","activity_density","graph_proximity","priority_pressure","risk_pressure","knowledge_density"],Ty=new Set(["substantive_history","release_cohort","created_at"]),xy={context_signal_store_invalid:{code:"context_signal_store_invalid",meaning:"The persisted context-signal snapshot was unreadable or invalid and was rebuilt from authoritative items.",recovery_command:"pm context",recovery_effect:"Re-read context and confirm the rebuilt snapshot can be loaded without the warning."},context_signal_store_stale:{code:"context_signal_store_stale",meaning:"The persisted context-signal snapshot did not match the authoritative cursor or item corpus and was rebuilt.",recovery_command:"pm context",recovery_effect:"Re-read context and confirm the rebuilt snapshot is now fresh."},context_signal_store_write_failed:{code:"context_signal_store_write_failed",meaning:"Context signals were rebuilt in memory, but the derived snapshot could not be persisted.",recovery_command:"pm context",recovery_effect:"Retry the derived snapshot write and confirm the warning clears after storage access is restored."}};function lt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Zd(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0&&e<=1}function Dy(e){let t={};for(let n of Qd){let r=e[n];if(r!==void 0){if(!Zd(r))throw new TypeError(`Context relevance signal ${n} must be a finite number from 0 to 1`);t[n]=r}}return t}function Ay(e,t){let n=e.map(i=>[i.id,t(i)]),r=Math.max(0,...n.map(([,i])=>i));return Object.fromEntries(n.map(([i,o])=>[i,r===0?0:o/r]))}function Oy(e){let t=new Map(e.map(i=>[i.id,0])),n=i=>{t.set(i,(t.get(i)??0)+1)};for(let i of e){typeof i.parent=="string"&&i.parent.trim()&&(n(i.id),n(i.parent.trim()));for(let o of i.dependencies??[])typeof o.id!="string"||!o.id.trim()||(n(i.id),n(o.id.trim()))}let r=Math.max(0,...t.values());return Object.fromEntries(e.map(i=>[i.id,r===0?0:t.get(i.id)/r]))}function el(e,t){return{...t,activityDensity:t.activityDensity??Ay(e,n=>(n.comments?.length??0)+(n.notes?.length??0)+(n.learnings?.length??0)+(n.test_runs?.length??0)),graphProximity:t.graphProximity??Oy(e)}}function oo(e){let t=Jd("sha256");for(let{id:n,signal_provenance:{recency:r}}of[...e].sort((i,o)=>i.id.localeCompare(o.id)))t.update(JSON.stringify([n,r.source,r.coordinate,r.history_op??null,r.event_class??null]));return`sha256:${t.digest("hex")}`}function Ly(e){if(!lt(e))return null;let t=e.signal_provenance;if(![typeof e.id=="string",lt(e.signals),lt(t)].every(Boolean))return null;let n=t.recency;if(!lt(n))return null;let r=Kt(n.coordinate);if(r===null)return null;let i=new Set(Qd),o=Object.entries(e.signals);return!o.every(([s,a])=>i.has(s)&&Zd(a))||![typeof n.source=="string"&&Ty.has(n.source),["undefined","string"].includes(typeof n.history_op),[void 0,"substantive","maintenance"].includes(n.event_class),n.source==="substantive_history"?n.event_class===void 0||n.event_class==="substantive":n.history_op===void 0&&n.event_class===void 0].every(Boolean)?null:{id:e.id,signals:Object.fromEntries(o),signal_provenance:{recency:{source:n.source,coordinate:r,history_op:n.history_op,event_class:n.event_class}}}}function Ny(e,t){let n=Array.from(e,Ly);if(n.some(i=>i===null))return null;let r=n;return new Set(r.map(i=>i.id)).size!==r.length||r.some(i=>i.id.trim().length===0)||t!==oo(r)?null:r.sort((i,o)=>i.id.localeCompare(o.id))}function My(e){if(!lt(e)||e.format_version!==to||e.signal_set_version!==no||typeof e.source_cursor!="string"||e.source_cursor.trim().length===0||typeof e.recency_evidence_fingerprint!="string"||!/^sha256:[a-f0-9]{64}$/u.test(e.recency_evidence_fingerprint)||typeof e.generated_at!="string"||!Number.isFinite(Date.parse(e.generated_at))||e.source!=="derived_index"&&e.source!=="scan_fallback"||!Array.isArray(e.items))return null;let t=Ny(e.items,e.recency_evidence_fingerprint);return t===null?null:{format_version:to,signal_set_version:no,source_cursor:e.source_cursor,recency_evidence_fingerprint:e.recency_evidence_fingerprint,generated_at:e.generated_at,source:e.source,items:t}}function tl(e){if(typeof e.sourceCursor!="string"||e.sourceCursor.trim().length===0)throw new TypeError("Context signal source cursor must be non-empty");if(!Number.isFinite(Date.parse(e.now)))throw new TypeError("Context signal snapshot clock must be a valid timestamp");if(e.source!=="derived_index"&&e.source!=="scan_fallback")throw new TypeError("Context signal snapshot source must be derived_index or scan_fallback")}function nl(e,t,n=oo(e)){let r=e.map(({id:o})=>o);if(new Set(r).size!==r.length||r.some(o=>o.trim().length===0))throw new TypeError("Context signal snapshot item IDs must be unique and non-empty");let i=e.map(({id:o,signals:s,signal_provenance:a})=>({id:o,signals:Dy(s),signal_provenance:a})).sort((o,s)=>o.id.localeCompare(s.id));return Object.freeze({format_version:to,signal_set_version:no,source_cursor:t.sourceCursor,recency_evidence_fingerprint:n,generated_at:t.now,source:t.source,items:Object.freeze(i.map(o=>Object.freeze(o)))})}function HS(e,t){return tl(t),nl(Er(e,el(e,t)),t)}var ro=class{filePath;constructor(t){if(typeof t!="string"||t.trim().length===0)throw new TypeError("Context signal store path must be non-empty");this.filePath=qt.resolve(t)}async read(){try{return JSON.parse(await zt.readFile(this.filePath,"utf8"))}catch(t){if(lt(t)&&He(t))return null;throw t}}async write(t){let n=qt.dirname(this.filePath);await zt.mkdir(n,{recursive:!0});let r=qt.join(n,`.${qt.basename(this.filePath)}.${Ry()}.tmp`);try{await zt.writeFile(r,`${JSON.stringify(t)}
|
|
16
|
+
`,{encoding:"utf8",flag:"wx"}),await zt.rename(r,this.filePath)}finally{try{await zt.rm(r,{force:!0})}catch{}}}},io=class{adapter;constructor(t){this.adapter=t}async readOrRebuild(t,n){tl(n);let r=[],i=null;try{let f=await this.adapter.read();i=My(f),f!==null&&i===null&&r.push("context_signal_store_invalid")}catch{r.push("context_signal_store_invalid")}let o=t.map(f=>f.id).sort((f,p)=>f.localeCompare(p)),s=i?.items.map(f=>f.id)??[],a=Er(t,el(t,n)),c=oo(a),d=i!==null&&i.source_cursor===n.sourceCursor&&i.recency_evidence_fingerprint===c&&i.source===n.source&&s.length===o.length&&s.every((f,p)=>f===o[p]),l;if(d&&i!==null)l=i;else{l=nl(a,n,c);try{await this.adapter.write(l)}catch{r.push("context_signal_store_write_failed")}}let u=new Map(l.items.map(f=>[f.id,f]));return{snapshot:l,candidates:a.map(f=>({...f,signals:{...f.signals,...u.get(f.id)?.signals},signal_provenance:u.get(f.id).signal_provenance})),cache_status:d?"fresh":"rebuilt",warnings:r,warning_details:r.map(f=>xy[f])}}};function Fy(e){let t=Jd("sha256");for(let n of[...e].sort((r,i)=>r.id.localeCompare(i.id)))t.update(JSON.stringify([n.id,n.updated_at,n.status,n.parent??null,n.priority??null,n.risk??null,(n.dependencies??[]).map(r=>r.id).sort(),n.comments?.length??0,n.notes?.length??0,n.learnings?.length??0,n.test_runs?.length??0]));return`scan:${t.digest("hex")}`}async function Cr(e,t){let n=t.sourceCursor!==void 0,r=t.source!==void 0;if(n!==r)throw new TypeError("Context signal source and source cursor must be provided together");if(t.storeKey!==void 0&&!/^[a-z0-9](?:[a-z0-9_-]*[a-z0-9])?$/u.test(t.storeKey))throw new TypeError("Context signal store key must be a filesystem-safe identifier");let i=n?null:await Je(t.pmRoot),o=t.sourceCursor??i?.source_cursor??Fy(e),s=t.source??(i===null?"scan_fallback":"derived_index"),a=new io(new ro(qt.join(t.pmRoot,"runtime",t.storeKey?`context-signals-${t.storeKey}.json`:"context-signals.json"))),c=t.recencyEvidence??Object.fromEntries(Object.entries(await Jo(t.pmRoot,e.map(d=>d.id))).map(([d,l])=>[d,{source:"substantive_history",coordinate:l.entry.ts,history_op:l.entry.op,event_class:"substantive"}]));return a.readOrRebuild(e,{...t,recencyEvidence:c,sourceCursor:o,source:s})}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="61e27cd0-a444-5b66-a8e3-d81c76e4f8ae")}catch{}})();function $y(e){for(let t of e.patch){if(t.path==="/metadata/status"||t.path==="/front_matter/status"){if(typeof t.value=="string")return t.value.trim().toLowerCase();continue}if(t.path!==""||typeof t.value!="object")continue;let n=t.value,r=n.metadata??n.front_matter;if(typeof r?.status=="string")return r.status.trim().toLowerCase()}}function Py(e,t,n){let r,i;for(let o of t){let s=$y(o);if(s===void 0)continue;let a=n.has(s)&&(r!==void 0&&!n.has(r)||r===void 0&&o.op==="create");r=s,a&&Number.isFinite(Date.parse(o.ts))&&(i={id:e,completed_at:o.ts,history_op:o.op})}return i}function rl(e){return e.completed_at!==void 0?{resolved:!0,timestamp:e.completed_at,source:"completed_at",fallback:!1}:e.closed_at!==void 0?{resolved:!0,timestamp:e.closed_at,source:"closed_at",fallback:!0}:e.updated_at!==void 0?{resolved:!0,timestamp:e.updated_at,source:"updated_at",fallback:!0}:{resolved:!1}}function KS(e,t,n){let r=[];for(let i of e){if(i.completed_at!==void 0||!n.has(i.status.trim().toLowerCase()))continue;let o=Py(i.id,t.get(i.id)??[],n);o!==void 0&&r.push(o)}return r.sort((i,o)=>i.id.localeCompare(o.id))}import jy from"node:path";import{createHash as Uy}from"node:crypto";import By from"node:fs/promises";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="df753f1d-cfc1-555e-a411-e1417eab0b53")}catch{}})();var il=1,Hy=1e4,ol=12;function Gy(e){let t=new Date(e);return`${t.getUTCFullYear()}-Q${Math.floor(t.getUTCMonth()/3)+1}`}function Ky(e,t){let n=new Set,r=e.parent;for(;r&&!n.has(r);){n.add(r);let i=t.get(r);if(!i)return;if(i.type.toLowerCase()==="epic")return i;r=i.parent}}function zy(e){let t=[...e.items].sort((i,o)=>o.completion.timestamp.localeCompare(i.completion.timestamp)||i.item.id.localeCompare(o.item.id)),n=new Set,r=0;for(let{item:i}of t){let o=i.resolution??i.close_reason;o?.trim()&&n.add(o.trim()),r+=(i.notes?.length??0)+(i.learnings?.length??0)}return{kind:e.kind,key:e.key,label:e.label,item_count:t.length,first_closed_at:t.at(-1).completion.timestamp,last_closed_at:t[0].completion.timestamp,representative_items:t.slice(0,5).map(({item:{id:i,title:o}})=>({id:i,title:o})),outcomes:[...n].sort().slice(0,5),knowledge_entries:r}}function qy(e,t){if(!t.sourceCursor.trim())throw new TypeError("Workspace memory source cursor must be non-empty");if(!Number.isFinite(Date.parse(t.now)))throw new TypeError("Workspace memory clock must be a valid timestamp");let n=e.filter(o=>t.statusRegistry.terminal_done_statuses.has(R(o.status,t.statusRegistry))).map(o=>{let s=rl(o);if(!s.resolved)throw new TypeError(`Completed item ${o.id} has no reporting timestamp`);return{item:o,completion:s}}),r=new Map(e.map(o=>[o.id,o])),i=new Map;for(let o of n){let{item:s,completion:a}=o,c=Gy(a.timestamp),d=`epoch:${c}`,l=i.get(d)??{kind:"epoch",key:c,label:c,items:[]};l.items.push(o),i.set(d,l);let u=Ky(s,r);if(u){let f=`epic:${u.id}`,p=i.get(f)??{kind:"epic",key:u.id,label:u.title,items:[]};p.items.push(o),i.set(f,p)}}return{format_version:il,source_cursor:t.sourceCursor,source_item_count:e.length,generated_at:t.now,completion_time_sources:n.reduce((o,{completion:s})=>(o[s.source]+=1,o),{completed_at:0,closed_at:0,updated_at:0}),rollups:[...i.values()].map(zy).sort((o,s)=>s.last_closed_at.localeCompare(o.last_closed_at)||o.kind.localeCompare(s.kind)||o.key.localeCompare(s.key))}}function Vy(e){return typeof e=="object"&&e!==null&&"id"in e&&typeof e.id=="string"&&e.id.length>0&&"title"in e&&typeof e.title=="string"}function Wy(e){if(typeof e!="object"||e===null)return!1;let t=e,n=[t.key,t.label].every(i=>typeof i=="string"&&i.length>0),r=[t.first_closed_at,t.last_closed_at].every(i=>typeof i=="string"&&Number.isFinite(Date.parse(i)));return(t.kind==="epoch"||t.kind==="epic")&&n&&Number.isSafeInteger(t.item_count)&&t.item_count>0&&r&&Array.isArray(t.representative_items)&&t.representative_items.every(Vy)&&Array.isArray(t.outcomes)&&t.outcomes.every(i=>typeof i=="string")&&Number.isSafeInteger(t.knowledge_entries)&&t.knowledge_entries>=0}function Xy(e){if(typeof e!="object"||e===null||Array.isArray(e))return null;let t=e;return t.format_version!==il||typeof t.source_cursor!="string"||!t.source_cursor.trim()||!Number.isSafeInteger(t.source_item_count)||t.source_item_count<0||typeof t.generated_at!="string"||!Number.isFinite(Date.parse(t.generated_at))||!Array.isArray(t.rollups)?null:t.rollups.every(Wy)?t:null}function Yy(e){return`scan:${Uy("sha256").update(E(e.map(t=>[t.id,t.updated_at,t.status,t.parent]).sort(([t],[n])=>String(t).localeCompare(String(n))))).digest("hex")}`}async function Jy(e,t,n){return n!==void 0?n:(await Je(t))?.source_cursor??Yy(e)}async function Qy(e){try{let t=Xy(JSON.parse(await By.readFile(e,"utf8")));return{snapshot:t,invalid:t===null}}catch(t){return{snapshot:null,invalid:!(typeof t=="object"&&t!==null&&"code"in t&&He(t))}}}async function sl(e,t){let n=Math.max(1,Math.floor(t.minimumItems??Hy));if(e.length<n)return{snapshot:null,cache_status:"skipped",warnings:[]};let r=await Jy(e,t.pmRoot,t.sourceCursor),i=jy.join(t.pmRoot,"runtime","workspace-memory.json"),o=[],s=await Qy(i),a=s.snapshot;if(s.invalid&&o.push("workspace_memory_invalid"),a?.source_cursor===r&&a.source_item_count===e.length)return{snapshot:a,cache_status:"fresh",warnings:o};a&&o.push("workspace_memory_stale");let c=qy(e,{statusRegistry:t.statusRegistry,sourceCursor:r,now:t.now});try{await q(i,`${JSON.stringify(c)}
|
|
17
|
+
`)}catch{o.push("workspace_memory_write_failed")}return{snapshot:c,cache_status:"rebuilt",warnings:o}}function Zy(e,t,n=ol){let r=Math.max(0,Math.floor(t)),i=0,o=[];for(let s of e.rollups){if(o.length>=Math.max(0,Math.floor(n)))break;let a=Math.ceil(JSON.stringify(s).length/4);i+a>r||(o.push(s),i+=a)}return o}function al(e,t,n=ol){if(e.snapshot===null)return;let r=Zy(e.snapshot,t,n);if(r.length!==0)return{cache_status:e.cache_status==="fresh"?"fresh":"rebuilt",source_cursor:e.snapshot.source_cursor,...e.snapshot.completion_time_sources?{completion_time_sources:{...e.snapshot.completion_time_sources}}:{},rollups:r}}function ev(e,t,n=5){if(e===null)return[];let r=t.trim().toLowerCase().split(/\s+/u).filter(Boolean);return r.length===0?[]:e.rollups.map(i=>({rollup:i,score:r.filter(o=>[i.key,i.label,...i.outcomes,...i.representative_items.flatMap(s=>[s.id,s.title])].join(" ").toLowerCase().includes(o)).length})).filter(({score:i})=>i>0).sort((i,o)=>o.score-i.score||o.rollup.last_closed_at.localeCompare(i.rollup.last_closed_at)||i.rollup.key.localeCompare(o.rollup.key)).slice(0,Math.max(0,Math.floor(n))).map(({rollup:i})=>i)}function eR(e,t,n=5){let r=ev(e.snapshot,t,n);if(r.length!==0)return{cache_status:e.cache_status==="fresh"?"fresh":"rebuilt",matches: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]="2355a6b7-2a17-586c-8dd3-182980a708d0")}catch{}})();var tv=["markdown","toon","json","ndjson"],Tr=new Set(["Epic","Feature"]),ao=10,fl=1e4,ml=["hierarchy","activity","progress","recently_created","unparented","workload"],nv=[...ml,"blockers","files","staleness","tests"],rv=/^(\d{4})-(\d{2})-(\d{2})/,iv=/^(\d{4})(\d{2})(\d{2})(?:[T ]?\d{2}|$)/,ov=/^(\d{4})(\d{2})(\d{2})$/,sv=/^(\d{4})(\d{2})(\d{2})(?:[T\s]?)(\d{2})(\d{2})(\d{2})?(Z|[+-]\d{2}:?\d{2})?$/i;function av(e){if(!e)return;let t=e.trim().toLowerCase();if(!tv.includes(t))throw new g("Context format must be one of markdown|toon|json|ndjson",_.USAGE);return t}var cl=new Set(["id","title","type","status","priority","order","deadline","assignee","tags","tags_inherited","updated_at","parent","children_total","children_closed","completion_pct","blocked","blocker_ids","created_at"]);function cv(e){if(e===void 0)return;let t=[];for(let n of e.split(",")){let r=n.trim().toLowerCase();if(r.length!==0){if(!cl.has(r))throw new g(`Context --fields value not projectable: ${r} (valid: ${[...cl].join(", ")})`,_.USAGE);t.includes(r)||t.push(r)}}if(t.length===0)throw new g("Context --fields requires at least one field name",_.USAGE);return t}function Vt(e,t){return e.map(n=>{let r={},i=n;for(let o of t)r[o]=i[o]??null;return r})}function kR(e,t){let n=av(e.format);if(t.json&&n&&n!=="json"&&n!=="ndjson")throw new g("Cannot combine --json with --format markdown|toon",_.USAGE);return t.json?n==="ndjson"?"ndjson":"json":n??"toon"}function dv(e,t){return oe(e,"--limit")??(t==="full"?Number.MAX_SAFE_INTEGER:ao)}function co(e,t){if(e===void 0)return t;let n=typeof e=="number"?e:Number(e);if(!Number.isInteger(n)||n<1)throw new g("--token-budget must be a positive integer",_.USAGE);return n}function lv(e,t){return t>=fl&&e===Number.MAX_SAFE_INTEGER?ao:e}function uv(e,t){if(!e)return t.default_depth;let n=e.trim().toLowerCase();if(!Nr.includes(n))throw new g(`Context --depth must be one of ${Nr.join("|")}`,_.USAGE);return n}function fv(e,t,n){if(e&&e.length>0){let r=[];for(let i of e){let o=i.trim().toLowerCase();if(!nn.includes(o))throw new g(`Context --section must be one of ${nn.join("|")}`,_.USAGE);r.includes(o)||r.push(o)}return r}return t==="brief"?[]:t==="full"?[...nn]:(t==="deep"?nv:ml).filter(r=>n.sections[r])}function mv(e,t){return e?oe(e,"--activity-limit")??t.activity_limit:t.activity_limit}function pv(e,t){if(!e)return t.stale_threshold_days;let n=e.trim().toLowerCase(),r=/^(\d+)d?$/.exec(n);if(!r)throw new g("--stale-threshold must be a number of days (e.g. 7 or 7d)",_.USAGE);let i=parseInt(r[1],10);if(i<=0)throw new g("--stale-threshold must be positive",_.USAGE);return i}function dl(e,t){let n=R(e,t),r=J("blocked",t),i=J("draft",t);return n===t.in_progress_status?0:t.active_statuses.has(n)?1:r&&n===r?2:i&&n===i?3:t.blocked_statuses.has(n)?5:t.terminal_statuses.has(n)?7:6}function Wt(e,t){let n=J("closed",t);return R(e,t)===n}function lo(e,t){return R(e,t)===t.in_progress_status}function pl(e,t){let n=R(e,t);return n!==t.in_progress_status&&t.active_statuses.has(n)}function hv(e,t){return t.blocked_statuses.has(R(e,t))}var gv=["compact","brief","fields","includeBody","include_body","parent"];function _v(e){let t={...e};for(let n of gv)delete t[n];return t}function uo(e,t){let n=t.trim().toLowerCase(),r=e.find(s=>s.id.trim().toLowerCase()===n);if(!r)return{ids:new Set,found:!1};let i=ut(e),o=Xt(r.id,i);return{ids:new Set([r.id,...o.map(s=>s.id)].map(s=>s.trim().toLowerCase())),found:!0}}function yv(e){if(e===void 0)return;let t=e.trim();if(t.length===0)throw new g("Context --parent requires an item id",_.USAGE);return t}function vv(e,t){let n=e??null,r=t??null;return n===null&&r===null?0:n===null?1:r===null?-1:n-r}function bv(e,t){let n=e??null,r=t??null;return n===null&&r===null?0:n===null?1:r===null?-1:C(n,r)}function wv(e,t){return new Date(Date.UTC(e,t+1,0)).getUTCDate()}function kv(e){let t=rv.exec(e)??iv.exec(e);if(!t)return!0;let n=Number.parseInt(t[1],10),r=Number.parseInt(t[2],10),i=Number.parseInt(t[3],10);return r>=1&&r<=12&&i>=1&&i<=wv(n,r-1)}function Ev(e){let t=ov.exec(e);if(t)return`${t[1]}-${t[2]}-${t[3]}`;let n=sv.exec(e);if(n){let[,r,i,o,s,a,c,d]=n,l=c?`:${c}`:"",u=d&&d.length===5&&d!=="Z"?`${d.slice(0,3)}:${d.slice(3)}`:d??"";return`${r}-${i}-${o}T${s}:${a}${l}${u}`}return e}function hl(e){if(typeof e!="string")return Number.NaN;let t=e.trim();if(t.length===0||!kv(t))return Number.NaN;let n=Date.parse(Ev(t));return Number.isFinite(n)?n:Number.NaN}function so(e){let t=hl(e);return Number.isFinite(t)?new Date(t).toISOString():""}function Iv(e){let t=hl(e);return Number.isFinite(t)?new Date(t).toISOString().slice(0,10):"unknown"}function fo(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function Be(e,t,n){let r=dl(e.status,n)-dl(t.status,n);if(r!==0)return r;let i=e.priority-t.priority;if(i!==0)return i;let o=vv(e.order,t.order);if(o!==0)return o;let s=bv(e.deadline,t.deadline);if(s!==0)return s;let a=C(so(t.updated_at),so(e.updated_at)),c=e.id.localeCompare(t.id);return a!==0?a:c}function Sr(e){return Math.max(1,Math.ceil(Buffer.byteLength(JSON.stringify(e),"utf8")/4))}function mo(e,t,n=new Set,r="context"){return Yd(e.ranked.map(i=>({id:i.id,item:i.item,rank:i.rank,score:i.score,required:n.has(i.id),cluster:i.item.parent?.trim()||i.item.type,token_costs:{identity:Sr({id:i.id,title:i.item.title}),summary:Sr({id:i.id,title:i.item.title,type:i.item.type,status:i.item.status,priority:i.item.priority,parent:i.item.parent}),full:Sr(i.item)}})),{tokenBudget:t,profile:r,latencyBudgetMs:25})}function po(e){return{...e,included:e.included.map(t=>({id:t.id,projection:t.projection,tokens:t.tokens}))}}function ho(e,t,n){let r=n===void 0?e.ranked:e.ranked.filter(i=>n.has(i.id));return{model:e.model,available_signals:e.available_signals,items:r.map(i=>({id:i.id,rank:i.rank,baseline_rank:i.baseline_rank,score:i.score,contributions:i.contributions,...i.signal_provenance===void 0?{}:{recency:i.signal_provenance.recency}})),candidate_count:e.ranked.length,omitted_count:e.ranked.length-r.length,...t?{feature_store:{source:t.snapshot.source,cache_status:t.cache_status,source_cursor:t.snapshot.source_cursor,generated_at:t.snapshot.generated_at}}:{}}}function Rr(e,t){return t>0?Math.round(e*100/t):0}function ut(e){let t=new Map;for(let n of e){let r=fo(n.parent);if(!r)continue;let i=t.get(r)??[];i.push(n),t.set(r,i)}return t}function Yt(e,t,n){let r={id:e.id,title:e.title,type:e.type,status:e.status,priority:e.priority,order:e.order??null,deadline:e.deadline??null,assignee:e.assignee??null,tags:Array.isArray(e.tags)?[...e.tags]:[],updated_at:e.updated_at,parent:fo(e.parent)};if(t&&n){let i=Xt(e.id,n),o=i.length;if(o>0){let s=i.filter(a=>Wt(a.status,t)).length;r.children_total=o,r.children_closed=s,r.completion_pct=Rr(s,o)}}return r}function Cv(e){let t=0,n=0,r=0,i=new Set;for(let o of e){if(i.add(o.item_id),o.kind==="deadline"){t+=1;continue}if(o.kind==="reminder"){n+=1;continue}r+=1}return{events:e.length,items:i.size,deadlines:t,reminders:n,scheduled:r}}function xr(...e){return[...new Set(e.flatMap(t=>t??[]))].sort((t,n)=>t.localeCompare(n))}function Sv(e,t){return e.filter(n=>!t.terminal_statuses.has(R(n.item_status,t)))}function Rv(e,t,n,r){let i=new Map;for(let c of e)i.set(c.id,c);let o=ut(e),s=new Set(t.filter(c=>Tr.has(c.type)).map(c=>c.id)),a=[];for(let c of s){let d=i.get(c);if(!d)continue;let l=Xt(c,o),u=o.get(c)??[],f=0,p=0,m=0,h=0;for(let v of l)Wt(v.status,n)?f++:lo(v.status,n)?m++:hv(v.status,n)?h++:pl(v.status,n)&&p++;let y=u.sort((v,b)=>Be(v,b,n)).slice(0,r).map(v=>{let b=Xt(v.id,o),w=b.filter(k=>Wt(k.status,n)).length;return{id:v.id,title:v.title,type:v.type,status:v.status,children_total:b.length,children_closed:w}});a.push({id:d.id,title:d.title,type:d.type,status:d.status,children_total:l.length,children_closed:f,children_open:p,children_in_progress:m,children_blocked:h,children:y})}return a.sort((c,d)=>{let l=i.get(c.id),u=i.get(d.id);return Be(l,u,n)}).slice(0,r)}function Xt(e,t){let n=[],r=[e],i=new Set;for(;r.length>0;){let o=r.pop();if(i.has(o))continue;i.add(o);let s=t.get(o)??[];for(let a of s)n.push(a),r.push(a.id)}return n}async function Tv(e,t){return(await zd({compact:!0,limit:String(e)},t)).compact_activity??[]}function xv(e,t,n,r,i){let o=new Map;for(let c of e){if(!c.parent)continue;let d=o.get(c.parent)??[];d.push(c),o.set(c.parent,d)}let s=t.filter(c=>Tr.has(c.type)),a=[];for(let c of s){let d=Xt(c.id,o),l=d.length;if(l===0)continue;let u=0,f=0,p=0,m=0;for(let h of d)Wt(h.status,r)?u++:n.has(h.id.trim().toLowerCase())?m++:lo(h.status,r)?p++:pl(h.status,r)&&f++;a.push({id:c.id,title:c.title,type:c.type,total:l,closed:u,open:f,in_progress:p,blocked:m,completion_pct:Rr(u,l)})}return a.sort((c,d)=>c.completion_pct-d.completion_pct).slice(0,i)}function Dv(e,t,n,r){let i=new Map(t.map(o=>[o.id.trim().toLowerCase(),o]));return e.slice(0,r).map(o=>{let s=Ln(o,i,n),a=s.find(d=>!d.resolved)?.id??s[0]?.id??null,c=a?i.get(a.trim().toLowerCase()):void 0;return{id:o.id,title:o.title,blocked_by:a,blocked_by_title:c?.title??null,blocked_by_status:c?.status??null,blocked_reason:o.blocked_reason??null,unblock_note:o.unblock_note??null}})}function Av(e,t){let n=new Map;for(let r of e)for(let i of r.files??[]){let o=n.get(i.path)??new Set;o.add(r.id),n.set(i.path,o)}return[...n.entries()].map(([r,i])=>({path:r,references:i.size,items:[...i].sort()})).sort((r,i)=>i.references-r.references).slice(0,t)}function Ov(e,t,n){let r=new Map;for(let i of e){let o=i.assignee??null,s=r.get(o)??[];s.push(i),r.set(o,s)}return[...r.entries()].map(([i,o])=>({assignee:i,active:o.length,in_progress:o.filter(s=>lo(s.status,t)).length,items:o.map(s=>s.id).sort()})).sort((i,o)=>o.active-i.active).slice(0,n)}function Lv(e,t,n,r){let i=new Date(n).getTime()-t*24*60*60*1e3;return e.filter(o=>new Date(o.updated_at).getTime()<i).map(o=>({id:o.id,title:o.title,status:o.status,updated_at:o.updated_at,stale_days:Math.floor((new Date(n).getTime()-new Date(o.updated_at).getTime())/(1440*60*1e3))})).sort((o,s)=>s.stale_days-o.stale_days).slice(0,r)}function Nv(e,t,n,r){return e.map(i=>({item:i,sortKey:so(i.created_at)})).sort((i,o)=>{let s=C(o.sortKey,i.sortKey);return s!==0?s:i.item.id.localeCompare(o.item.id)}).slice(0,r).map(({item:i})=>({...Yt(i,t,n),created_at:i.created_at}))}function Mv(e,t,n,r){return e.filter(i=>!fo(i.parent)&&!Tr.has(i.type)).sort((i,o)=>Be(i,o,t)).slice(0,r).map(i=>Yt(i,t,n))}function Fv(e){let t=0,n=0,r=0,i=0,o=0,s=[];for(let a of e){(a.tests??[]).length>0&&t++;let c=a.test_runs??[];if(c.length>0){n++;let d=!1;for(let l of c)r+=l.passed??0,i+=l.failed??0,o+=l.skipped??0,(l.failed??0)>0&&(d=!0);d&&s.push(a.id)}}return{scope:"matching_active_items",total_items:e.length,items_with_tests:t,items_with_recent_runs:n,recent_runs:{passed:r,failed:i,skipped:o},items_failing:s.sort()}}function ll(e){return`${new Date(e).toISOString().slice(11,16)}Z`}function gl(e){let t=e.order===null?"-":String(e.order),n=e.deadline??"-",r=e.parent?` parent:${e.parent}`:"",i=e.children_total!==void 0&&e.children_closed!==void 0&&e.completion_pct!==void 0?` children:${e.children_closed}/${e.children_total} done:${e.completion_pct}%`:"",o=e.blocked===!0?` blocked:${e.blocker_ids?.join(",")||"lifecycle"}`:"";return`${e.id} p${e.priority} ${e.status} ${e.type} order:${t} deadline:${n}${r}${i}${o} ${e.title}`}function $v(e,t){let n=e;return t.map(r=>{let i=n[r];return Array.isArray(i)?`${r}:${i.join(",")}`:`${r}:${i??"-"}`}).join(" ")}function Pv(e){if("reference_only"in e){let n=e.kind==="reminder"?` \u2014 ${e.reminder_text??"reminder"}`:e.kind==="event"?` \u2014 ${e.event_title??"event"}${e.event_recurring?" (recurring)":""}`:"";return`${ll(e.at)} [${e.kind}] ${e.item_id} (see focus item)${n}`}let t=`${ll(e.at)} [${e.kind}] ${e.item_id} p${e.item_priority} ${e.item_status} ${e.item_title}`;if(e.kind==="reminder")return`${t} \u2014 ${e.reminder_text}`;if(e.kind==="event"){let n=e.event_recurring?" (recurring)":"",r=e.event_title??e.item_title;return`${t} \u2014 ${r}${n}`}return t}function ul(e,t,n,r,i){if(e.push(`## ${t}`),n.length===0)e.push(r);else for(let o of n)e.push(`- ${i(o)}`);e.push("")}function jv(e,t,n){if(t.blocked_fallback.length!==0){e.push("## Blocked fallback");for(let r of t.blocked_fallback)e.push(`- ${n(r)}`);e.push("")}}function Uv(e,t){if(e.push("## Agenda"),e.push(`- events: ${t.agenda.summary.events} (deadlines: ${t.agenda.summary.deadlines}, reminders: ${t.agenda.summary.reminders}, scheduled: ${t.agenda.summary.scheduled})`),t.agenda.events.length===0)e.push("No agenda events matched the selected filters.");else for(let n of t.agenda.events)e.push(`- ${Pv(n)}`);e.push("")}function Bv(e,t){if(!(!t.hierarchy||t.hierarchy.length===0)){e.push("## Hierarchy");for(let n of t.hierarchy){let r=Rr(n.children_closed,n.children_total);e.push(`- ${n.id} ${n.type} ${n.status} "${n.title}" [${n.children_closed}/${n.children_total} done ${r}%]`);for(let i of n.children){let o=Rr(i.children_closed,i.children_total);e.push(` - ${i.id} ${i.type} ${i.status} "${i.title}" [${i.children_closed}/${i.children_total} done ${o}%]`)}}e.push("")}}function Hv(e,t){if(!(!t.progress||t.progress.length===0)){e.push("## Progress");for(let n of t.progress)e.push(`- ${n.id} "${n.title}" ${n.completion_pct}% (${n.closed}/${n.total} closed, ${n.in_progress} wip, ${n.open} open, ${n.blocked} blocked)`);e.push("")}}function Gv(e,t,n,r){if(!(!t.recently_created||t.recently_created.length===0)){e.push("## Recently created");for(let i of t.recently_created)e.push(n?`- ${r(i)}`:`- ${Iv(i.created_at)} ${gl(i)}`);e.push("")}}function Kv(e,t,n){if(!(!t.unparented||t.unparented.length===0)){e.push("## Unparented");for(let r of t.unparented)e.push(`- ${n(r)}`);e.push("")}}function zv(e,t){if(!(!t.activity||t.activity.length===0)){e.push("## Recent activity");for(let n of t.activity){let r=n.msg?` ${n.msg}`:"";e.push(`- ${n.ts.slice(0,16)}Z ${n.id} ${n.op} by:${n.author}${r}`)}e.push("")}}function qv(e,t){if(!(!t.blockers||t.blockers.length===0)){e.push("## Blockers");for(let n of t.blockers){let r=n.blocked_by?`blocked_by:${n.blocked_by}(${n.blocked_by_status??"?"})`:"blocked_by:-",i=n.blocked_reason?` reason:"${n.blocked_reason}"`:"",o=n.unblock_note?` unblock:"${n.unblock_note}"`:"";e.push(`- ${n.id} "${n.title}" ${r}${i}${o}`)}e.push("")}}function Vv(e,t){if(!(!t.files||t.files.length===0)){e.push("## Hot files");for(let n of t.files)e.push(`- ${n.path} refs:${n.references} items:[${n.items.join(",")}]`);e.push("")}}function Wv(e,t){if(!(!t.workload||t.workload.length===0)){e.push("## Workload");for(let n of t.workload){let r=n.assignee??"(unassigned)";e.push(`- ${r} active:${n.active} wip:${n.in_progress} items:[${n.items.join(",")}]`)}e.push("")}}function Xv(e,t){if(!(!t.staleness||t.staleness.length===0)){e.push("## Stale items");for(let n of t.staleness)e.push(`- ${n.id} ${n.status} stale:${n.stale_days}d last:${n.updated_at.slice(0,10)} "${n.title}"`);e.push("")}}function Yv(e,t,n){let r=[],i=0;for(let o of e.items_failing){if(r.length>=t)break;let s=Sr(o);if(i+s>n)break;r.push(o),i+=s}return r}function Jv(e,t){if(!t.tests)return;e.push("## Test health"),e.push(`- ${t.tests.scope}: ${t.tests.total_items}`),e.push(`- items_with_tests: ${t.tests.items_with_tests}`),e.push(`- items_with_recent_runs: ${t.tests.items_with_recent_runs}`),e.push(`- passed: ${t.tests.recent_runs.passed}, failed: ${t.tests.recent_runs.failed}, skipped: ${t.tests.recent_runs.skipped}`);let n=Yv(t.tests,t.applied_limit??ao,t.filters.token_budget);n.length>0&&e.push(`- items_failing: [${n.join(",")}]`);let r=t.tests.items_failing.length-n.length;r>0&&e.push(`- items_failing_omitted: ${r}`),e.push("")}function Qv(e,t){t.summary.active_items===0&&t.summary.blocked===0&&t.agenda.summary.events===0&&(e.push("## Suggestions"),e.push("No active work items or upcoming events. Consider:"),e.push('- `pm create --type Task --title "..."` to add a new work item'),e.push("- `pm list --status closed --limit 5` to review recent completions"),e.push("- `pm search <keywords>` to find related past work"),e.push("- `pm aggregate` for a full project status overview"))}function ER(e){let t=[],n=e.focus_fields,r=o=>n?$v(o,n):gl(o);if(t.push("# pm context"),t.push(""),t.push(`- now: ${e.now}`),t.push(`- depth: ${e.depth}`),e.filters.parent&&t.push(`- scope: subtree of ${e.filters.parent}`),t.push(`- active_items: ${e.summary.active_items} (in_progress: ${e.summary.in_progress}, open: ${e.summary.open})`),e.summary.total_items!==void 0&&t.push(`- total_items: ${e.summary.total_items} (closed: ${e.summary.closed??0}, canceled: ${e.summary.canceled??0})`),t.push(`- agenda_events: ${e.summary.agenda_events}`),t.push(`- blocked_fallback_used: ${e.summary.blocked_fallback_used}`),e.extension_health){let o=e.extension_health.packages.filter(s=>s.status==="degraded").map(s=>s.name);t.push(`- extensions: ${e.extension_health.ok} ok, ${e.extension_health.degraded} degraded${o.length>0?` (${o.join(", ")})`:""}`)}let i=e.sections_included.filter(o=>o!=="blockers"||(e.blockers?.length??0)>0);if(i.length>0&&t.push(`- sections: ${i.join(", ")}`),t.push(""),ul(t,"High-level focus",e.high_level,"No high-level active items.",r),ul(t,"Low-level focus",e.low_level,"No low-level active items.",r),jv(t,e,r),Uv(t,e),e.workspace_memory){t.push("## Workspace memory");for(let o of e.workspace_memory.rollups)t.push(`- ${o.kind}:${o.key} \u2014 ${o.label} (${o.item_count} completed, latest ${o.last_closed_at})`);t.push("")}return Bv(t,e),Hv(t,e),Gv(t,e,n,r),Kv(t,e,r),zv(t,e),qv(t,e),Vv(t,e),Wv(t,e),Xv(t,e),Jv(t,e),Qv(t,e),t.join(`
|
|
18
|
+
`)}async function Zv(e,t){let n=M(process.cwd(),t.path),r=await P(n),i=r.context??vo.context,o=Y(r.schema),s=uv(e.depth,i),a=dv(e.limit??e.maxItems,s);return{settings:r,contextSettings:i,statusRegistry:o,depth:s,limit:a,sectionsIncluded:fv(e.section,s,i),activityLimit:mv(e.activityLimit,i),staleThresholdDays:pv(e.staleThreshold,i),parentScope:yv(e.parent),focusFields:cv(e.fields),baseListOptions:_v(e)}}function eb(e){return e.some(t=>["hierarchy","progress","blockers","staleness","recently_created","unparented"].includes(t))}function tb(e,t){return{...e,...t,noTruncate:!0,limit:void 0,offset:void 0,after:void 0}}async function nb(e,t){let n=await Dt(void 0,tb(t.baseListOptions,{excludeTerminal:!1}),e),r=n.items,i=r.filter(a=>!F(a.status,t.statusRegistry)),o=r,s=rb(t.parentScope,r);return s&&(i=i.filter(a=>s.has(a.id.trim().toLowerCase())),o=o.filter(a=>s.has(a.id.trim().toLowerCase()))),{listed:n,listedItemMetadata:i,allItems:o,fullCorpus:r,subtreeIds:s}}function rb(e,t){if(e===void 0)return;let n=uo(t,e);if(!n.found)throw new g(`Context --parent item not found: ${e}`,_.NOT_FOUND);return n.ids}function ib(e,t,n,r){let i=new Set(wt(e,t,n,r).containers.map(o=>o.item.id));return new Set(e.filter(o=>Tr.has(o.type)||i.has(o.id)||xe(o.type,r)!=="agent").map(o=>o.id))}async function ob(e,t,n,r,i,o,s,a,c,d,l,u,f,p,m,h){let y=[...e].sort((I,pt)=>Be(I,pt,i)),v=await _n({pmRoot:f,author:c,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"}),b=await Cr(y,{pmRoot:f,storeKey:"context",statusRegistry:i,now:a,author:c,usageAffinity:v.affinity,claimFocus:m}),w=await Ir("context",b.candidates),k=w.ranked.map(I=>I.item),S=i.active_statuses,x=k.filter(I=>S.has(R(I.status,i))),U=u?We(x,d,l,I=>I.id):0,N=u?x.slice(U,U+s):x,V=u&&N.length>0&&U+N.length<x.length,j=V&&N.length>0?le(l,N[N.length-1].id,U+N.length-1):void 0,W=k.filter(I=>r.has(I.id.trim().toLowerCase())),te=new Set([...N.map(I=>I.id),...W.filter(I=>!S.has(R(I.status,i))).slice(0,s).map(I=>I.id)]),_e=mo({...w,ranked:w.ranked.filter(I=>te.has(I.id))},p,new Set(Object.entries(m??{}).filter(([,I])=>I>=1).map(([I])=>I))),X=_e.included.map(I=>I.item),ne=X.filter(I=>S.has(R(I.status,i))),Ie=X.filter(I=>r.has(I.id.trim().toLowerCase())),B=ut(t),ft=eb(o)?B:void 0,mt=new Map(n.map(I=>[I.id.trim().toLowerCase(),I])),Ce=I=>{let pt=Yt(I,i,ft);return r.has(I.id.trim().toLowerCase())&&(pt.blocked=!0,pt.blocker_ids=Ln(I,mt,i).filter(Ar=>!Ar.resolved).map(Ar=>Ar.id)),pt},en=ib(ne,n,i,h),K=ne.filter(I=>en.has(I.id)).slice(0,u?N.length:s).map(Ce),z=ne.filter(I=>!en.has(I.id)).slice(0,u?N.length:s).map(Ce),yo=x.length===0;return{activeItems:ne,blockedItems:Ie,highLevel:K,lowLevel:z,blockedFallback:yo?Ie.slice(0,s).map(Ce):[],blockedFallbackUsed:yo,ranking:w,packing:_e,featureStore:b,pageExtras:{...u?{applied_limit:s}:{},...V?{has_more:!0,truncated:!0}:{},...j?{next_cursor:j}:{}}}}function sb(e,t){return de("context",{pmRoot:t,options:mn(e,Ns)})}function ab(e,t){return e.limit!==void 0||e.maxItems!==void 0||e.after!==void 0||t>=fl}async function cb(e,t,n,r){let i={...t.baseListOptions,after:void 0,view:"agenda",include:"all",limit:t.parentScope===void 0?String(t.limit):void 0},o=await Bd(i,e),s=n===void 0?o.events:o.events.filter(d=>n.has(d.item_id.trim().toLowerCase())),a=Sv(s,t.statusRegistry).slice(0,t.limit),c=a.map(d=>r.has(d.item_id)?{at:d.at,date:d.date,kind:d.kind,item_id:d.item_id,reference_only:!0,...d.kind==="reminder"?{reminder_text:d.reminder_text}:{},...d.kind==="event"?{event_title:d.event_title,event_recurring:d.event_recurring}:{}}:d);return{agenda:o,agendaEvents:c,agendaSummary:Cv(a)}}function _l(e,t,n){let r=String(t);return e.filter(i=>R(i.status,n)===r).length}async function db(e){let{runtime:t,allItems:n,fullCorpus:r,blockedIds:i,focusGroups:o,now:s,global:a}=e,c=ut(n),d=n.filter(u=>!F(u.status,t.statusRegistry)),l=u=>t.sectionsIncluded.includes(u);return{hierarchy:l("hierarchy")?Rv(n,o.activeItems,t.statusRegistry,t.limit):void 0,activity:l("activity")?await Tv(t.activityLimit,a):void 0,progress:l("progress")?xv(n,o.activeItems,i,t.statusRegistry,t.limit):void 0,blockersSection:l("blockers")?Dv(o.blockedItems,r,t.statusRegistry,t.limit):void 0,recentlyCreated:l("recently_created")?Nv(d,t.statusRegistry,c,t.limit):void 0,unparented:l("unparented")?Mv(d,t.statusRegistry,c,t.limit):void 0,filesSection:l("files")?Av(o.activeItems,t.limit):void 0,workload:l("workload")?Ov(o.activeItems,t.statusRegistry,t.limit):void 0,staleness:l("staleness")?Lv(d,t.staleThresholdDays,s,t.limit):void 0,tests:l("tests")?Fv(n.filter(u=>t.statusRegistry.active_statuses.has(R(u.status,t.statusRegistry)))):void 0}}function lb(e,t,n){let r=J("canceled",t),i=e.filter(s=>t.active_statuses.has(R(s.status,t))),o=_l(i,t.in_progress_status,t);return{scope:"matching_items",active_items:i.length,open:i.length-o,in_progress:o,blocked:e.filter(s=>n.has(s.id.trim().toLowerCase())).length,total_items:e.length,closed:e.filter(s=>Wt(s.status,t)).length,canceled:e.filter(s=>R(s.status,t)===r).length}}function ub(e,t,n){t.hierarchy&&(e.hierarchy=t.hierarchy),t.activity&&(e.activity=t.activity),t.progress&&(e.progress=t.progress),t.blockersSection&&(e.blockers=t.blockersSection),t.recentlyCreated&&(e.recently_created=t.recentlyCreated),t.unparented&&(e.unparented=t.unparented),t.filesSection&&(e.files=t.filesSection),t.workload&&(e.workload=t.workload),t.staleness&&(e.staleness=t.staleness),t.tests&&(e.tests=t.tests),n!==void 0&&n.length>0&&(e.warning_details=n)}function fb(e,t){t&&(e.focus_fields=t,e.high_level=Vt(e.high_level,t),e.low_level=Vt(e.low_level,t),e.blocked_fallback=Vt(e.blocked_fallback,t),e.recently_created&&(e.recently_created=Vt(e.recently_created,t)),e.unparented&&(e.unparented=Vt(e.unparented,t)))}function mb(e,t){let n=[e.high_level,e.low_level,e.blocked_fallback,e.recently_created??[],e.unparented??[]].flat();if(t){for(let o of n)delete o.tags,delete o.tags_inherited;return}let r=new Map(n.map(o=>[o.id,o])),i=new Map(n.map(o=>[o.id,o.tags?[...o.tags].sort().join("\0"):void 0]));for(let o of n){if(!o.parent||!o.tags)continue;let s=r.get(o.parent);s&&i.get(o.id)===i.get(s.id)&&(delete o.tags,o.tags_inherited=s.id)}}function pb(e,t,n){t.length>0||n.length>0||e.agenda.events.length>0||(e.suggestions=['pm create --type Task --title "..." to add a new work item',"pm list --status closed --limit 5 to review recent completions","pm search <keywords> to find related past work","pm aggregate for a full project status overview"])}async function hb(e,t,n,r){try{let i=new Set(t.packing.included.map(c=>c.id)),o=t.ranking.ranked.map(c=>({id:c.id,rank:c.rank,included:i.has(c.id)})),s=new Set(o.map(c=>c.id));for(let c of hn(e,"context"))s.has(c)||(o.push({id:c,rank:o.length+1,included:!1}),s.add(c));let a=await gn({pmRoot:n,author:r,surface:"context",profile:t.packing.profile,rows:o,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"});pn(e,a)}catch{e.warnings=xr(e.warnings,["context_usage_feedback_write_failed"])}}async function gb(e,t,n){if(e)return{};let r=(await xo({pmRoot:t,settings:n,cwd:process.cwd(),noExtensions:!1})).discovered.map(o=>({name:o.name??o.directory,status:o.status==="ok"?"ok":"degraded"})).sort((o,s)=>o.name.localeCompare(s.name)),i=r.filter(o=>o.status==="degraded").length;return r.length===0?{}:{extension_health:{total:r.length,ok:r.length-i,degraded:i,packages:r.slice(0,20),...r.length>20?{truncated:!0}:{}}}}async function _b(e,t){let n=qo(),r=await Bo(e),i=n.instance||Ho(t);return Cd(r.semantic_attribution?.[i])}async function IR(e,t){let n=M(process.cwd(),t.path),r=await Zv(e,t),i=await nb(t,r),o=lv(r.limit,i.fullCorpus.length),s={...r,limit:o,tokenBudget:co(e.tokenBudget,Math.max(256,o*160))},a=be(void 0,s.settings.author_default),c=await _b(n,a),d=gb(e.noExtensionHealth===!0,n,s.settings),l=bt(i.fullCorpus,s.statusRegistry),u=await ob(i.listedItemMetadata,i.allItems,i.fullCorpus,l,s.statusRegistry,s.sectionsIncluded,s.limit,D(),a,e.after,sb(e,n),ab(e,i.fullCorpus.length),n,s.tokenBudget,c,$(s.settings,L())),f=await cb(t,s,i.subtreeIds,new Set([...u.highLevel,...u.lowLevel,...u.blockedFallback].map(k=>k.id))),p=await sl(i.fullCorpus,{pmRoot:n,statusRegistry:s.statusRegistry,now:f.agenda.now}),m=xr(i.listed.warnings,f.agenda.warnings,u.ranking.warnings,[...u.featureStore.warnings],p.warnings),h=_l(u.activeItems,s.statusRegistry.in_progress_status,s.statusRegistry),y=u.activeItems.length-h,v=await db({runtime:s,allItems:i.allItems,fullCorpus:i.fullCorpus,blockedIds:l,focusGroups:u,now:f.agenda.now,global:t}),b=lb(i.allItems,s.statusRegistry,l),w={output_default:"toon",now:f.agenda.now,depth:s.depth,sections_included:s.sectionsIncluded,window:{anchor:f.agenda.anchor,start:f.agenda.range.start,end:f.agenda.range.end,past:f.agenda.range.past,from:f.agenda.range.from,to:f.agenda.range.to},filters:{type:e.type??null,tag:e.tag??null,priority:e.priority??null,assignee:e.assignee??null,assignee_filter:e.assigneeFilter??null,sprint:e.sprint??null,release:e.release??null,limit:e.limit??e.maxItems??null,parent:s.parentScope??null,token_budget:s.tokenBudget,runtime_filters:i.listed.filters.runtime_filters??f.agenda.filters.runtime_filters??{}},summary:{returned_focus:{active_items:u.activeItems.length,in_progress:h,open:y,blocked:u.blockedItems.length},blocked_fallback_used:u.blockedFallbackUsed,high_level:u.highLevel.length,low_level:u.lowLevel.length,agenda_events:f.agendaSummary.events,...b},high_level:u.highLevel,low_level:u.lowLevel,blocked_fallback:u.blockedFallback,agenda:{summary:f.agendaSummary,events:f.agendaEvents},...u.pageExtras};return w.workspace_memory=al(p,Math.min(800,Math.floor(s.tokenBudget*.2))),Object.assign(w,await d),ub(w,v,u.featureStore.warning_details),mb(w,e.noTags===!0),e.explainRanking===!0&&(w.ranking=ho(u.ranking,u.featureStore,new Set([...u.highLevel,...u.lowLevel,...u.blockedFallback].map(k=>k.id))),w.packing=po(u.packing)),Zo(w,[...u.highLevel,...u.lowLevel,...u.blockedFallback].map(k=>({id:k.id,status:R(k.status,s.statusRegistry)===s.statusRegistry.in_progress_status?"in_progress":"open",blocked:k.blocked}))),fb(w,s.focusFields),es(w),m.length>0&&(w.warnings=m),pb(w,u.activeItems,u.blockedItems),await hb(w,u,n,a),w}(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]="7328ddd0-a555-56d2-9f7d-3496dad501f5")}catch{}})();function yl(e,t,n){let r={recommended:e.recommended,ready:e.ready},i=()=>Math.max($r(r,"json"),$r(r,"toon")),o=r.ready.length+ +(r.recommended!==null),s=i(),a=s,c=r.ready;if(a>t&&(r.ready=[],a=i()),s>t&&a<=t){let u=0,f=c.length;for(;u<f;){let p=Math.ceil((u+f)/2);r.ready=c.slice(0,p),i()<=t?u=p:f=p-1}r.ready=c.slice(0,u),a=i()}let d=a>t&&r.recommended!==null;d&&(r.recommended=null,a=i()),e.recommended=r.recommended,e.ready=r.ready,e.summary.recommended=r.recommended!==null;let l=o-r.ready.length-+(r.recommended!==null);n&&l===0&&a<=t||(e.truncation={...e.truncation,...l>0?{ready_total:e.summary.ready}:{},ready_budget:{scope:"recommended_and_ready",budget_tokens:t,estimated_tokens:a,within_budget:a<=t,omitted_count:l,recommendation_omitted:d,restore_budget_tokens:s}},d&&(e.suggestions=[`Ready work exists but the selection budget omitted the recommendation. Retry pm next --token-budget ${s}; use --output-budget to bound the entire response.`]))}(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]="b01faffe-d88f-5095-8d28-167943ec5067")}catch{}})();var yb=["markdown","toon","json"],vb=5,bb=1440*60*1e3;function wb(e,t){let n=e??t;if(typeof n=="string"&&Bt.includes(n))return n;throw new g(`Unknown next ranking policy ${JSON.stringify(n)}. Accepted values: ${Bt.join(", ")}.`,_.USAGE,{code:"invalid_argument_value",value:String(n),recovery:{allowed_values:[...Bt]}})}function kb(e){if(!e)return;let t=e.trim().toLowerCase();if(!yb.includes(t))throw new g("Next format must be one of markdown|toon|json",_.USAGE);return t}function UR(e,t){let n=kb(e.format);if(t.json&&n&&n!=="json")throw new g("Cannot combine --json with --format markdown|toon",_.USAGE);return t.json?"json":n??"toon"}function vl(e,t,n){let r=oe(e,t);return r===void 0||r<=0?n:r}function Jt(e,t,n,r){return{...Yt(e.item,t,n),open_blocker_count:e.open_blockers.length,blockers:e.open_blockers.map(i=>({id:i.id,title:i.title,status:i.status,...i.external?{external:!0}:{},...i.blocked_since?{blocked_since:i.blocked_since}:{},...i.external?{resolver:i.resolver??null}:{}})),unblocks:e.unblocks,rank:r}}function Eb(e,t,n,r){let i=e.item,o=[],s=J("in_progress",t);return o.push(R(i.status,t)===s?"resume work":"ready"),r&&o.push("completed container \u2014 governance closeout"),o.push(`p${i.priority}${i.priority===0?" (highest)":""}`),typeof i.deadline=="string"&&i.deadline.trim().length>0&&o.push(Ib(i.deadline,n)),o.push(Fe(i).length>0?"all blockers resolved":"no blockers"),typeof i.parent=="string"&&i.parent.trim().length>0&&o.push(`advances ${i.parent.trim()}`),e.unblocks.length>0&&o.push(`unblocks ${e.unblocks.length} item(s)`),o}function bl(e,t,n){let r=be(n,t),i=[],o=[];for(let s of e){let a=typeof s.item.assignee=="string"?s.item.assignee.trim():"";a.length>0&&a!==r?o.push({id:s.item.id,assignee:a}):i.push(s)}return{available:i,held:o}}var BR={partitionCallerOwnedReady:bl,resolveNextCallerAuthor:(e,t)=>wl(e,t)};function HR(e,t,n){let r=e.filter(i=>xe(i.item.type,n)==="human");return{agent:t?e:e.filter(i=>xe(i.item.type,n)!=="human"),decisions:t?[]:r}}function Ib(e,t){let n=Date.parse(e);if(!Number.isFinite(n))return`deadline ${e.trim()}`;let r=new Date(n).toISOString().slice(0,10),i=new Date(Date.parse(t)).toISOString().slice(0,10),o=Math.round((Date.parse(r)-Date.parse(i))/bb);return o<0?`deadline ${r} (overdue ${-o}d)`:o===0?`deadline ${r} (due today)`:`deadline ${r} (in ${o}d)`}function Cb(e,t){let n=J("in_progress",t);return e.filter(r=>R(r.status,t)===n).length}function go(e,t){return(t.get(e.id.trim().toLowerCase())??[]).length>0}function Sb(e,t){return{type:e.type,tag:e.tag,priority:typeof e.priority=="number"?String(e.priority):e.priority,assignee:e.assignee,assigneeFilter:e.assigneeFilter,sprint:e.sprint,release:e.release,noTruncate:!0,...t}}function Dr(e,t,n){return[...e].sort((r,i)=>{let o=go(r.item,t),s=go(i.item,t);return o!==s?Number(o)-Number(s):Be(r.item,i.item,n)})}function Rb(e){return e.projectedReady.length===0?null:{...e.readyRows[0],reasons:[...Eb(e.projectedReady[0],e.statusRegistry,e.now,e.completedContainer),...e.policyReason?[e.policyReason]:[]]}}function Tb(e,t,n){if(e!==null)return;let r=n>0?["No executable recommendation: outcome gates require verification. Inspect gate_needed, or use pm next --include-gates to opt in."]:[];if(t.length>0){let i=t.find(o=>o.blockers.length>0);return[...r,i?`${t.length} item(s) are blocked; unblock the top one by closing ${i.blockers.map(o=>o.id).join(", ")}`:`${t.length} item(s) are blocked; add blocker context or move the top item back to an active status`,"pm next --ready-only after a blocker closes to re-check ready work",'pm create --type Task --title "..." to add new ready work']}return[...r,'pm create --type Task --title "..." to add a new work item',"pm list --status in_progress to review work already underway","pm context --depth deep for the full project snapshot"]}function xb(e,t,n,r){let i={};return e>r&&(i.decision_needed_total=e),t>r&&(i.held_by_others_total=t),n>r+1&&(i.ready_total=n),Object.keys(i).length>0?i:void 0}async function Db(e){try{let t=new Set([...e.result.recommended?[e.result.recommended.id]:[],...e.result.ready.map(o=>o.id)]),n=e.ranking.ranked.map(o=>({id:o.id,rank:o.rank,included:t.has(o.id)})),r=new Set(n.map(o=>o.id));for(let o of hn(e.result,"next"))r.has(o)||(n.push({id:o,rank:n.length+1,included:!1}),r.add(o));let i=await gn({pmRoot:e.pmRoot,author:e.author,surface:"next",profile:"next",rows:n,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"});pn(e.result,i)}catch{e.result.warnings=xr(e.result.warnings,["context_usage_feedback_write_failed"])}}async function Ab(e){let t=[...new Set([...e.candidatesWarnings??[],...e.corpusWarnings??[],...e.readyRanking.warnings??[],...e.featureStore.warnings])].sort((n,r)=>n.localeCompare(r));return t.length>0&&(e.result.warnings=t),e.result.suggestions=Tb(e.recommended,e.blockedRows,e.gateCount),e.tokenBudget!==null&&yl(e.result,e.tokenBudget,e.hasIntentBudget),e.explainRanking&&(e.result.ranking=ho(e.readyRanking,e.featureStore,new Set([...e.result.recommended?[e.result.recommended.id]:[],...e.result.ready.map(n=>n.id)])),e.result.packing=po(mo(e.readyRanking,e.packingBudget,new Set,"next"))),await Db({result:e.result,pmRoot:e.pmRoot,author:e.author,ranking:e.readyRanking}),e.result}function Ob(e,t,n){if(!n)return e;let r=uo(t,n);if(!r.found)throw new g(`Next --parent item not found: ${n}`,_.NOT_FOUND);return e.filter(i=>r.ids.has(i.id.trim().toLowerCase()))}async function Lb(e,t,n,r,i,o,s,a){let c=e.filter(h=>!go(h.item,t)),d=s||c.length===0?e:c,l=await _n({pmRoot:o,author:i,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"}),u=await Cr(d.map(h=>h.item),{pmRoot:o,storeKey:"next",statusRegistry:n,now:r,author:i,usageAffinity:l.affinity}),f=await Ir("next",u.candidates),p=Sd(f.ranked,n,a,f.model),m=new Map(d.map(h=>[h.item.id,h]));return{projectedReady:f.ranked.map(h=>m.get(h.id)).filter(h=>h!==void 0),ranking:f,completedContainer:c.length===0&&!s,featureStore:u,relevanceRank:p}}function wl(e,t){let n=e.assignee?.trim();return be(e.callerAuthor??(n&&n.length>0?n:void 0),t)}function Nb(e,t){return e.tokenBudget===void 0?null:t}async function GR(e,t){let n=M(process.cwd(),t.path),r=await P(n),i=wl(e,r.author_default),o=Y(r.schema),s=wb(e.rankingPolicy,r.context.next_ranking_policy),a=$(r,L()),c=D(),d=vl(e.limit,"--limit",vb),l=co(e.tokenBudget,Math.max(192,d*128)),u=Nb(e,l),f=vl(e.blockedLimit,"--blocked-limit",d),p=e.readyOnly===!0,m=typeof e.parent=="string"?e.parent.trim():"",h=await Dt(void 0,Sb(e,{excludeTerminal:!0}),t),y=await Dt(void 0,{excludeTerminal:!1,noTruncate:!0},t),v=Ob(h.items,y.items,m),b=y.items,w=wt(v,b,o,a),k=ut(b),S=Wr(w,o,e,a),x=bl(S.ready,r.author_default,i),U=Dr(x.available,k,o),N=[...w.blocked].sort((K,z)=>Be(K.item,z.item,o)),{projectedReady:V,ranking:j,completedContainer:W,featureStore:te,relevanceRank:_e}=await Lb(U,k,o,c,i,n,e.includeContainers===!0,s),X=V.map((K,z)=>Jt(K,o,k,z+1)),ne=N.map((K,z)=>Jt(K,o,k,z+1)),Ie=Dr(S.decisions,k,o).map((K,z)=>Jt(K,o,k,z+1)),B=Dr(S.gates,k,o).map((K,z)=>Jt(K,o,k,z+1)),ft=Dr(w.containers,k,o).map((K,z)=>Jt(K,o,k,z+1)),mt=Rb({projectedReady:V,readyRows:X,statusRegistry:o,now:c,completedContainer:W,policyReason:Rd(V,_e,o,s)}),Ce=xb(Ie.length,x.held.length,X.length,d)??{};B.length>d&&(Ce.gate_needed_total=B.length),ft.length>d&&(Ce.containers_total=ft.length);let en={output_default:"toon",now:c,recommended:mt,ready:X.slice(1,d+1),decision_needed:Ie.slice(0,d),gate_needed:B.slice(0,d),containers:ft.slice(0,d),blocked:p?[]:ne.slice(0,f),held_by_others:x.held.slice(0,d),summary:{recommended:mt!==null,ready:X.length,blocked:ne.length,in_progress:Cb(X,o),candidates:w.active_count,containers:w.container_count,decision_needed:Ie.length,gate_needed:B.length,held_by_others:x.held.length},filters:{type:e.type??null,tag:e.tag??null,priority:e.priority??null,assignee:e.assignee??null,assignee_filter:e.assigneeFilter??null,sprint:e.sprint??null,release:e.release??null,parent:m.length>0?m:null,limit:d,blocked_limit:f,ready_only:p,include_decisions:e.includeDecisions===!0,include_gates:e.includeGates===!0,include_containers:e.includeContainers===!0,token_budget:u,ranking_policy:s},truncation:Object.keys(Ce).length>0?Ce:void 0};return Ab({result:en,recommended:mt,blockedRows:ne,gateCount:B.length,candidatesWarnings:h.warnings,corpusWarnings:y.warnings,readyRanking:j,explainRanking:e.explainRanking===!0,pmRoot:n,author:i,packingBudget:l,featureStore:te,tokenBudget:u,hasIntentBudget:typeof e.for=="string"})}function KR(e){let t=["# pm next","",...Mb(e)];for(let[n,r]of[["Gate verification needed",e.gate_needed],["Containers",e.containers]])r&&r.length>0&&t.push(...Qt(n,r.map(i=>`- ${Zt(i)}`),""));if(t.push(...Qt("Recommended",Fb(e.recommended),e.truncation?.ready_budget?.recommendation_omitted?"Recommendation omitted by the selection budget; ready work still exists.":"No ready work.")),t.push(...Qt("Decision needed",(e.decision_needed??[]).map(n=>`- ${Zt(n)}`),"No human-gated decisions.")),t.push(...Qt("Ready",e.ready.map(n=>`- ${Zt(n)}`),"No ready items.")),e.filters.ready_only||t.push(...Qt("Blocked",e.blocked.map(n=>`- ${$b(n)}`),"No blocked items.")),e.suggestions&&e.suggestions.length>0){t.push("## Suggestions");for(let n of e.suggestions)t.push(`- ${n}`)}return t.join(`
|
|
19
|
+
`).trimEnd()}function Mb(e){let t=[`- now: ${e.now}`,`- ready: ${e.summary.ready} (in_progress: ${e.summary.in_progress}), blocked: ${e.summary.blocked}, candidates: ${e.summary.candidates}`];return e.filters.parent&&t.push(`- scope: subtree of ${e.filters.parent}`),t.push(""),t}function Fb(e){return e?[`- ${Zt(e)}`,` why: ${e.reasons.join("; ")}`]:[]}function Qt(e,t,n){return[`## ${e}`,...t.length===0?[n]:t,""]}function $b(e){let t=e.blockers.map(n=>`${n.id}(${n.status??"?"})`).join(", ");return`${Zt(e)} blocked_by:${t}`}function Zt(e){let t=e.deadline??"-",n=e.parent?` parent:${e.parent}`:"",r=e.unblocks.length>0?` unblocks:${e.unblocks.length}`:"";return`${Number.isInteger(e.rank)?`#${e.rank} `:""}${e.id} p${e.priority} ${e.status} ${e.type} deadline:${t}${n}${r} ${e.title}`}import{createHash as Pb}from"node:crypto";import{setTimeout as jb}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]="c583f859-9204-565b-b143-59aba53c3e9c")}catch{}})();var Il=1,Cl=/^[A-Za-z0-9_-]+$/,Ub=100,kl=1e3,Bb=250,rT=Object.freeze({batch_to_row_ratio:.6,fixture_events:200});function ae(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 Sl(e){return Pb("sha256").update(E({type:ae(e.type),author:ae(e.author),item:ae(e.item),harness:ae(e.harness),agent_instance:ae(e.agentInstance),provenance:ae(e.provenanceFilter)})).digest("hex").slice(0,24)}function _o(e,t){let n={version:Il,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 Rl(e,t){if(typeof e!="object"||e===null)return!1;let n=e;return[n.version===Il,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 Tl(e,t){let n=e.trim();if(n.length===0||n.length>4096||!Cl.test(n))throw new g("Invalid mutation event cursor.",_.USAGE,{code:"invalid_event_cursor"});let r;try{r=JSON.parse(Buffer.from(n,"base64url").toString("utf8"))}catch{throw new g("Invalid mutation event cursor.",_.USAGE,{code:"invalid_event_cursor"})}if(!Rl(r,t))throw new g("Mutation event cursor does not match this query.",_.USAGE,{code:"event_cursor_query_mismatch"});return r}function xl(e){let t=e??Ub;if(!Number.isSafeInteger(t)||t<0||t>kl)throw new g(`Mutation event limit must be an integer from 0 to ${kl}.`,_.USAGE,{code:"invalid_event_limit"});return t}function Dl(e){return e instanceof Error&&e.name==="AbortError"}function Al(e,t){let n=e?.trim();if(!n)return{};if(Cl.test(n))return{cursor:Tl(n,t)};let r=Date.parse(n);if(!Number.isFinite(r))throw new g("Mutation event --since must be an event cursor or ISO timestamp.",_.USAGE,{code:"invalid_event_since"});return{sinceTimestamp:new Date(r).toISOString()}}async function Hb(e,t){if(t.verify)return El(e,t);let n=await Fr(e,t),r=n.result;if(r===null&&n.repair_needed)try{await Xo(e,{lockWaitMs:0})&&(r=(await Fr(e,t)).result)}catch{}return r===null?El(e,t):{...r,source:"derived_index"}}async function El(e,t){try{return{...await Yo(e,t),source:"authoritative_history"}}catch(n){throw n instanceof g?n:new g("Mutation events are unavailable because authoritative history could not be read.",_.GENERIC_FAILURE,{code:"event_index_unavailable",why:Co(n)})}}function Gb(e){let t=e??"batch";if(t!=="batch"&&t!=="row")throw new g("Mutation event cursor mode must be batch or row.",_.USAGE,{code:"invalid_event_cursor_mode"});return t}async function Kb(e={}){let t=M(e.cwd??process.cwd(),e.pmRoot);await Z(t);let n=xl(e.limit),r=Gb(e.cursorMode);if(e.full===!0&&e.provenance===!0)throw new g("Mutation event projections are mutually exclusive. Use --provenance or --full.",_.USAGE);let i=await P(t),o=i.agent_identity.identity_vocabulary,s=vr(i.agent_identity.harness_signals),a=Ji({provenance:e.provenanceFilter},s),c=ae(e.harness),d=Sl(e),{cursor:l,sinceTimestamp:u}=Al(e.since,d),f={verify:e.verify===!0,...l?{after_ts:l.ts,after_stream_id:l.stream_id,after_stream_offset:l.stream_offset}:u?{since_ts:u}:{},ops:ae(e.type),authors:ae(e.author),harnesses:c,harness_alias_authors:c?Object.entries(o.aliases).filter(([,h])=>c.includes(h)).map(([h])=>h):void 0,agent_instances:ae(e.agentInstance),provenance:[...a].map(([h,y])=>({dimension:h,values:[...y]})),stream_ids:ae(e.item),limit:n},p=await Hb(t,f),m=p.events.map(h=>({...r==="row"?{cursor:_o(h,d)}:{},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:structuredClone(h.recorded_entry??h.entry)}:{},...e.provenance===!0?{provenance:br(h.entry,o,{itemId:h.stream_id,version:h.stream_offset+1})}:{}}));return{integrity:e.verify===!0?"verified":"unverified",...p.verified_streams===void 0?{}:{verified_streams:p.verified_streams},events:m,count:m.length,has_more:p.has_more,cursor_mode:r,...p.events.length===0?{}:{next_cursor:_o(p.events[p.events.length-1],d)},source:p.source,...e.provenanceSummary===!0?{provenance_summary:wr(p.events.map(h=>h.entry),o,s)}:{}}}async function*zb(e={}){let t=e.intervalMs??Bb;if(!Number.isSafeInteger(t)||t<10)throw new g("Mutation event follow interval must be an integer of at least 10ms.",_.USAGE,{code:"invalid_event_follow_interval"});let n=e.since;for(;e.signal?.aborted!==!0;){let r=await Kb({...e,cursorMode:e.cursorMode??"batch",since:n});if(yield r.next_cursor===void 0&&n!==void 0?{...r,next_cursor:n}:r,r.events.length>0){n=r.next_cursor;continue}try{await jb(t,void 0,{signal:e.signal})}catch(i){if(Dl(i))return;throw i}}}async function*iT(e={}){for await(let t of zb({...e,cursorMode:"row"}))for(let n of t.events)yield n}var oT={decodeMutationEventCursor:Tl,encodeMutationEventCursor:_o,eventQueryFingerprint:Sl,isAbortError:Dl,isMutationEventCursorEnvelope:Rl,parseMutationEventLimit:xl,resolveMutationEventStart:Al};(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="f091d0c3-f2a7-5d76-8656-4aebe82e9798")}catch{}})();function aT(e,t){let n=t??{};return e.filter(r=>n[r.id]!==r.updated_at).map(r=>r.id).sort((r,i)=>r.localeCompare(i))}export{Dn as a,xn as b,js as c,Wb as d,xe as e,Gl as f,Fe as g,On as h,Bs as i,Ln as j,bt as k,Wr as l,wt as m,oe as n,Nn as o,Gs as p,Xr as q,kt as r,Ks as s,zs as t,na as u,ni as v,ia as w,Pw as x,jw as y,aa as z,ca as A,Bw as B,ql as C,gw as D,Vl as E,_w as F,yw as G,vw as H,bw as I,Jl as J,G as K,Xs as L,Fn as M,Tw as N,Jr as O,xw as P,Ct as Q,au as R,du as S,Zr as T,lu as U,Rt as V,Du as W,_a as X,fa as Y,ma as Z,Mu as _,Fu as $,$u as aa,Dt as ba,Pn as ca,ii as da,jn as ea,I0 as fa,Ot as ga,Aa as ha,pe as ia,Q0 as ja,Ha as ka,Ga as la,Ka as ma,za as na,qa as oa,zn as pa,Wa as qa,rt as ra,Xa as sa,Za as ta,Wn as ua,ec as va,tc as wa,mp as xa,mc as ya,Jn as za,hi as Aa,Qn as Ba,pc as Ca,gc as Da,gi as Ea,Mt as Fa,yc as Ga,yi as Ha,vi as Ia,bi as Ja,vc as Ka,wi as La,wc as Ma,kc as Na,Ic as Oa,jp as Pa,oE as Qa,sC as Ra,gd as Sa,aT as Ta,Oc as Ua,Lc as Va,uE as Wa,mh as Xa,ct as Ya,T as Za,Ae as _a,TE as $a,xE as ab,Uc as bb,yh as cb,DE as db,AE as eb,jE as fb,Wc as gb,or as hb,ur as ib,dI as jb,fr as kb,sg as lb,rd as mb,lI as nb,uI as ob,fI as pb,mI as qb,cg as rb,od as sb,Cg as tb,Ng as ub,AC as vb,OC as wb,Id as xb,PC as yb,jC as zb,UC as Ab,BC as Bb,Cd as Cb,Bt as Db,tS as Eb,nS as Fb,rS as Gb,Bd as Hb,yr as Ib,vr as Jb,Ji as Kb,br as Lb,cS as Mb,Qi as Nb,wr as Ob,bS as Pb,zd as Qb,qd as Rb,Kt as Sb,eo as Tb,Er as Ub,sy as Vb,Xd as Wb,uy as Xb,Ir as Yb,fy as Zb,my as _b,_y as $b,yy as ac,AS as bc,vy as cc,Yd as dc,to as ec,no as fc,xy as gc,My as hc,HS as ic,ro as jc,io as kc,Cr as lc,rl as mc,KS as nc,Hy as oc,qy as pc,sl as qc,Zy as rc,al as sc,ev as tc,eR as uc,tv as vc,cv as wc,Vt as xc,kR as yc,co as zc,uv as Ac,fv as Bc,uo as Cc,Be as Dc,mo as Ec,po as Fc,ho as Gc,ut as Hc,Yt as Ic,xr as Jc,ER as Kc,mb as Lc,IR as Mc,yb as Nc,UR as Oc,BR as Pc,HR as Qc,GR as Rc,KR as Sc,rT as Tc,Kb as Uc,zb as Vc,iT as Wc,oT as Xc};
|
|
20
|
+
//# sourceMappingURL=chunk-VC7TA67O.js.map
|