@unbrained/pm-cli 2026.10.19 → 2026.10.20
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 +33 -0
- package/dist/cli/error-guidance.d.ts +7 -0
- package/dist/cli/error-guidance.js +2 -2
- package/dist/cli/register-structured-mutation.js +1 -1
- package/dist/cli-bundle/bundle-manifest.json +1 -1
- package/dist/cli-bundle/chunks/{chunk-QBNEZII5.js → chunk-2GGGOD7P.js} +13 -13
- package/dist/cli-bundle/chunks/{chunk-4CXQSRSP.js → chunk-7NHA5K77.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-NX7Q4LGN.js → chunk-7ZOIZ2AZ.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-6DS5CAN2.js → chunk-GHJOMRSF.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-O2ZRRLAP.js → chunk-KU4Q3MSI.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-DMFM5R4G.js → chunk-LS55VKRK.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-QG4LMU7A.js → chunk-PNPE2OVJ.js} +43 -43
- package/dist/cli-bundle/chunks/chunk-PTL3TBT6.js +20 -0
- package/dist/cli-bundle/chunks/{chunk-LBEMB3BW.js → chunk-QETMESEB.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-4MJ6WBMA.js → chunk-QMZ73FCW.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-QQYCB2LO.js +2 -0
- package/dist/cli-bundle/chunks/chunk-TZU6U5ZE.js +3 -0
- package/dist/cli-bundle/chunks/{chunk-H3XYP24A.js → chunk-VLJLWZBO.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-XAWE4EAK.js +2 -0
- package/dist/cli-bundle/chunks/chunk-YECCKB4E.js +3 -0
- package/dist/cli-bundle/chunks/{chunk-5GZSX5HU.js → chunk-YT2Z3JPC.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-4XFVAXA4.js → chunk-YTHI5DTH.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-D3EDNAN7.js → chunk-YW6SIKYP.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-XH7C3A5N.js → chunk-ZA3XXHEE.js} +6 -6
- package/dist/cli-bundle/chunks/context-budget-recovery-L2WP5S26.js +2 -0
- package/dist/cli-bundle/{focused-chunks/indexed-receipt-blobs-QW2VWWJE.js → chunks/indexed-receipt-blobs-U7VGKIYC.js} +2 -2
- package/dist/cli-bundle/chunks/{register-list-query-WQUVDJIH.js → register-list-query-NNDV6F6I.js} +3 -3
- package/dist/cli-bundle/chunks/{register-mutation-IWIBQIO3.js → register-mutation-3GCBSNQS.js} +4 -4
- package/dist/cli-bundle/chunks/register-operations-YKDGNKUL.js +2 -0
- package/dist/cli-bundle/chunks/register-setup-AOUZQQWB.js +2 -0
- package/dist/cli-bundle/chunks/{settlement-hook-UNFMCKKQ.js → settlement-hook-CLRGA6O7.js} +2 -2
- package/dist/cli-bundle/chunks/stage-6QXYRMSU.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-WZTEFFQI.js → chunk-37SU7BZI.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-5YTOYBTZ.js → chunk-6IU7BESB.js} +3 -3
- package/dist/cli-bundle/focused-chunks/chunk-AS3MOBO3.js +25 -0
- package/dist/cli-bundle/focused-chunks/{chunk-PXDR77TO.js → chunk-AW35RDKA.js} +22 -22
- package/dist/cli-bundle/focused-chunks/{chunk-RLRMNFLF.js → chunk-E4II2D2B.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-FEN7WOOP.js → chunk-F7FD25TG.js} +12 -12
- package/dist/cli-bundle/focused-chunks/{chunk-JDBO7SMR.js → chunk-GYHZ7W6O.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-EOQ6W25I.js → chunk-H5Q2HUU6.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-3TEIACFU.js → chunk-HUZAXSIJ.js} +3 -3
- package/dist/cli-bundle/focused-chunks/{chunk-JBJJW2WL.js → chunk-J6EYUGAR.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-JEXZEIAX.js +91 -0
- package/dist/cli-bundle/focused-chunks/{chunk-ENZMATOY.js → chunk-KDGUIIRU.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-H6BVQ63U.js → chunk-KKRFSI2N.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-GWTV45SB.js → chunk-LJPUJ2KK.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-MQ42BFGX.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-HYMYAGSY.js → chunk-NI6NS44Q.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-L4PL3GZR.js → chunk-VAYS754X.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-SKYLOPU2.js → chunk-VLSER3XW.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-JCLC6HKT.js → chunk-VS6VTWTZ.js} +3 -3
- package/dist/cli-bundle/focused-chunks/{chunk-OV2WVLUR.js → chunk-ZGEK57KD.js} +2 -2
- package/dist/cli-bundle/focused-chunks/context-budget-recovery-5MKOCGY5.js +2 -0
- package/dist/cli-bundle/{chunks/indexed-receipt-blobs-BVSHK4WQ.js → focused-chunks/indexed-receipt-blobs-H2G6CCGO.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{settlement-hook-X4FNHTOD.js → settlement-hook-5SNBBT7C.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{stage-MZSVQYO4.js → stage-EMTISXR7.js} +2 -2
- package/dist/cli-bundle/main.js +21 -21
- package/dist/cli-bundle/sdk-authoring.js +1 -1
- package/dist/cli-bundle/sdk-contracts.js +2 -2
- package/dist/cli-bundle/sdk-core.js +21 -21
- 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 +55 -55
- 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 +8 -8
- package/dist/core/fs/fs-utils.d.ts +2 -2
- package/dist/core/fs/fs-utils.js +1 -1
- package/dist/core/history/event-index.js +2 -2
- package/dist/core/output/output.d.ts +7 -2
- package/dist/core/output/output.js +5 -5
- package/dist/core/shared/errors.d.ts +48 -0
- package/dist/core/shared/errors.js +1 -1
- package/dist/core/store/settings.js +2 -2
- package/dist/mcp/server.js +1 -1
- package/dist/sdk/core.d.ts +1 -1
- package/dist/sdk/core.js +1 -1
- package/dist/sdk/dependencies/context-budget-recovery.d.ts +21 -0
- package/dist/sdk/dependencies/context-budget-recovery.js +2 -0
- package/dist/sdk/dependencies.js +1 -1
- package/dist/sdk/errors.d.ts +4 -1
- package/dist/sdk/errors.js +1 -1
- package/dist/sdk/generated/generated-error-code-catalog-part-1.js +1 -1
- package/dist/sdk/index.d.ts +1 -1
- package/dist/sdk/index.js +1 -1
- package/dist/sdk/item-transaction.d.ts +13 -0
- package/dist/sdk/item-transaction.js +1 -1
- package/dist/sdk/lifecycle/structured-mutation-plan.d.ts +14 -1
- package/dist/sdk/lifecycle/structured-mutation-plan.js +1 -1
- package/dist/sdk/output/list-envelope.d.ts +7 -0
- package/dist/sdk/output/list-envelope.js +2 -0
- package/dist/sdk/output.d.ts +1 -0
- package/dist/sdk/output.js +2 -2
- package/dist/sdk/public-surface.json +1 -1
- package/dist/sdk/relationship-context.d.ts +2 -0
- package/dist/sdk/relationship-context.js +1 -1
- package/dist/sdk/structured-mutations.d.ts +2 -0
- package/dist/sdk/structured-mutations.js +1 -1
- package/docs/COMMANDS.md +14 -0
- package/docs/PR_REVIEW_LOOP.md +32 -12
- package/docs/SCRIPTING.md +10 -0
- package/docs/SDK.md +77 -0
- package/docs/TESTING.md +25 -1
- package/marketplace.json +1 -1
- package/package.json +1 -1
- package/packages/pm-beads/package.json +1 -1
- package/packages/pm-calendar/package.json +1 -1
- package/packages/pm-command-kit/package.json +1 -1
- package/packages/pm-digital-twin/package.json +1 -1
- package/packages/pm-governance-audit/package.json +1 -1
- package/packages/pm-guide-shell/package.json +1 -1
- package/packages/pm-kanban/package.json +1 -1
- package/packages/pm-lifecycle-hooks/package.json +1 -1
- package/packages/pm-linked-test-adapters/package.json +1 -1
- package/packages/pm-search-advanced/package.json +1 -1
- package/packages/pm-templates/package.json +1 -1
- package/packages/pm-todos/package.json +1 -1
- package/packages/pm-vcs/package.json +1 -1
- package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
- package/plugins/pm-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-4ICKT4GH.js +0 -3
- package/dist/cli-bundle/chunks/chunk-OEJ3G7XT.js +0 -20
- package/dist/cli-bundle/chunks/chunk-QKAAZWGC.js +0 -3
- package/dist/cli-bundle/chunks/chunk-TK3G3GAP.js +0 -2
- package/dist/cli-bundle/chunks/register-operations-SUWOZNDU.js +0 -2
- package/dist/cli-bundle/chunks/register-setup-QGM5YJW7.js +0 -2
- package/dist/cli-bundle/chunks/stage-7DELI4Z5.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-2IEWB6MB.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-BJMPRB7A.js +0 -91
- package/dist/cli-bundle/focused-chunks/chunk-KLJN44VY.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-Y54ONBEX.js +0 -25
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import{a as ft}from"./chunk-RUKSEZE7.js";import{C as ms,De as me,E as Ye,Eb as _s,Ee as pe,H as ue,I as Te,J as ps,Jc as hn,K as hs,L as fe,M as mn,T as ke,Uc as vs,Vc as bs,Zc as Nr,a as cs,c as ds,e as un,f as ls,h as Fr,hc as ys,i as fn,id as gn,jd as _n,ka as gs,oc as pn,x as us,y as fs}from"./chunk-4CXQSRSP.js";import{$c as Eo,$e as en,$g as Ve,Af as U,Ah as es,Bd as So,Be as Jt,Bg as Po,Ce as Se,Cg as jo,Ch as Or,D as K,Da as He,Db as wo,De as de,Dg as Uo,Eg as Ho,Eh as ts,Fg as Bo,G as yo,Ge as Do,Gh as We,He as Be,Hh as ns,Ih as rs,Jf as Oo,Jg as ze,Jh as cn,Kh as dn,Lh as Lr,Md as To,Mf as be,Mh as le,Nd as Ro,Nh as Mr,Oc as D,Oh as is,Pa as k,Pd as Tr,Pe as x,Ph as ln,Qh as Ae,Ra as re,Re as Rr,Rh as Z,Se as Qt,Sg as Go,Sh as os,Te as C,Th as ss,Ue as Ao,Ve as ve,We as Ge,Xf as J,Yc as qt,Ze as Zt,Zf as rn,Zg as we,_c as Wt,_d as Xt,_g as Ko,bf as tn,ca as Ue,dh as zo,di as as,ed as Io,ff as nn,fh as Vo,gg as Lo,gh as qo,ha as Ir,hh as Dr,ia as zt,ib as Cr,ig as Mo,ih as Wo,ii as M,ja as vo,jh as Yo,kh as Ar,lg as Q,lh as on,md as Yt,mg as R,mh as qe,ng as $,o as ne,od as Co,og as Ke,pa as L,qa as Vt,ra as bo,sd as Sr,sg as Fo,sh as sn,t as Gt,tg as No,th as Xo,uc as ko,ug as $o,uh as Jo,ve as xo,vf as xr,wh as Qo,xa as O,yh as an,zh as Zo}from"./chunk-QG4LMU7A.js";import{B as _,D as h,E as Er,F as Kt,G as je,H as ce,I as ye,L as W,N as _o,n as kr,z as go}from"./chunk-QKAAZWGC.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]="59842825-3a81-53f4-845d-db2257ec6286")}catch{}})();async function $r(e){let t=O(process.cwd(),e);await U(t);let n=await M(t),r=L(n,D());return{pmRoot:t,settings:n,typeRegistry:r}}async function yn(e,t,n,r){He(e,Fr(t));let i=await ue(e,t,n.id_prefix,n.item_format,r);if(i)return{id:i.id,historyPath:He(e,i.id),located:i};let o=fn(t,n.id_prefix),s=Fr(t),a=o===s?[o]:[o,s];for(let c of a){let d=He(e,c);if(await Kt(d))return{id:c,historyPath:d,located:null}}throw new h(`Item ${t} not found`,_.NOT_FOUND)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="eb2e6046-156c-56ee-a03a-ecaa1cccfb45")}catch{}})();function iw(e,t){let n=le(e),r=e.length>0?e[e.length-1].after_hash:Zo(),i=t===void 0||n.item_hash_version===void 0?void 0:an(t,n.item_hash_version,be(e.at(-1)?.hash_algorithm)),o=t===void 0?void 0:i===void 0?Qo(t):i[Math.max(0,i.indexOf(r))],s=o===void 0?void 0:o===r,a=[...n.errors];return s===!1&&a.push("verify_failed:current_item_hash_mismatch"),{ok:a.length===0,entries:e.length,errors:a,latest_after_hash:e.length>0?e[e.length-1].after_hash:void 0,current_item_hash:o,current_matches_latest:s}}async function ow(e,t,n={}){let r=O(n.cwd??process.cwd(),n.pmRoot);await U(r);let i=await M(r),o=L(i,D()),s=await yn(r,e,i,o.type_to_folder),a=await Ve(s.historyPath,s.id);if(a.length===0)throw new h(`No history exists for ${s.id}; point-in-time reads are unavailable.`,_.NOT_FOUND);let c=ds(t,a),d=ls(un(a,c.historyIndex),c),l=rs(d,{schema:i.schema});if(l.metadata.id!==s.id)throw new h(`History target resolved to item ${l.metadata.id}, expected ${s.id}.`,_.GENERIC_FAILURE);let u=a[c.historyIndex],f=cs(a,!0);return{document:l,reconstructed:!0,as_of_version:f===null?null:f+c.historyIndex+1,as_of_timestamp:u.ts,target:c,history_length:a.length}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="403706c5-987d-5db1-95d2-b0eaded98e92")}catch{}})();function ml(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:bl(r,t,e.parents)}),"continue"):(e.cursorFound=t===i,"skip")}function ks(e,t,n,r){let i=Se("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:Do(t.after,i)}}function Xe(e,t,n){e.get(t).add(n)}function mt(e){return new Map(e.map(t=>[t,new Set]))}function Es(e){for(let t of e)t.sort();return e.sort((t,n)=>n.length-t.length||t[0].localeCompare(n[0]))}function vn(e){if(Array.isArray(e))return e.map(n=>vn(n));if(e===null||typeof e!="object")return e;let t=e.toJSON;return typeof t=="function"?vn(t.call(e)):Object.fromEntries(Object.entries(e).sort(([n],[r])=>n.localeCompare(r)).map(([n,r])=>[n,vn(r)]))}function ws(e){return JSON.stringify(vn(e))}function pl(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 hl(e,t){let n=new Set,r=[];for(let i of e)n.has(i)||pl(i,t,n,r);return r}function gl(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 Es(r)}function Is(e,t){let n=mt(e);for(let[r,i]of t)for(let o of i)Xe(n,o,r);return gl(hl(e,t),n)}function _l(e,t){let n=mt(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";Xe(n,o?r.source:r.target,o?r.target:r.source)}return n}function yl(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 vl(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 bl(e,t,n){let r=[t],i=t;for(;i!==e;)i=n.get(i),r.push(i);return r.reverse()}function wn(e,t={}){let n=t.registry??ne(),r=[...e.nodes()],i=_l(e,n),o=yl(r,i),s=o.flat(),a=s.length===r.length,c=a?[]:Is(r,i).filter(l=>l.length>1||i.get(l[0]).has(l[0])),d=vl(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 wl(e,t,n){let r=mt(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))||Xe(r,t==="incoming"?s.target:s.source,t==="incoming"?s.source:s.target)}return{adjacency:r,inspectedEdges:o.length}}function kl(e,t,n,r,i,o){let s=bn(e,t,{...n,after:void 0,direction:"incoming",limit:void 0}),a=bn(e,t,{...n,after:void 0,direction:"outgoing",limit:void 0}),c=new Map,d=[...s.affected,...a.affected].sort((m,g)=>m.distance-g.distance||m.id.localeCompare(g.id)||m.path.join("\0").localeCompare(g.path.join("\0")));for(let m of d)c.has(m.id)||c.set(m.id,m);let l=[...c.values()].sort((m,g)=>m.distance-g.distance||m.id.localeCompare(g.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:de(o,f.at(-1)?.id??t)}:{},cost:{visitedNodes:s.cost.visitedNodes+a.cost.visitedNodes,inspectedEdges:s.cost.inspectedEdges+a.cost.inspectedEdges}}}function El(e,t,n){let r=n.direction,i=n.maxDepth??Number.POSITIVE_INFINITY,o=n.limit??Number.POSITIVE_INFINITY,{fingerprint:s,after:a}=ks(t,n,r,i),{adjacency:c,inspectedEdges:d}=wl(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 g=l.queue[m];u+=1;let v=[...c.get(g.id)].sort();if(g.depth>=i){v.some(b=>!l.seen.has(b))&&(f=!0);continue}for(let b of v)if(ml(l,b,g,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:de(s,l.affected.at(-1)?.id??t)}:{},cost:{visitedNodes:u,inspectedEdges:d}}}function bn(e,t,n={}){let r=n.direction??"outgoing";if(r!=="both")return El(e,t,{...n,direction:r});let i=n.maxDepth??Number.POSITIVE_INFINITY,o=n.limit??Number.POSITIVE_INFINITY,{fingerprint:s,after:a}=ks(t,n,r,i);return kl(e,t,n,a,o,s)}function Cs(e){let t=[...e.nodes()],n=mt(t),r=mt(t);for(let c of e.edges())Xe(n,c.source,c.target),Xe(n,c.target,c.source),Xe(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:Es(i),stronglyConnected:Is(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 dw(e,t){let n=new Map(e.edges.map(i=>[ws(i),i])),r=new Map(t.edges.map(i=>[ws(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]="1745a409-0f91-5f5a-8d2a-e5e61ff667a0")}catch{}})();function Re(e,t){return(t===void 0?void 0:bo(e,t))?.execution_role??vo[e.trim().toLowerCase()]??"agent"}var jr="blocked_by",Ss="blocks",Il=Object.freeze([jr,Ss]),Pr="no-active-blocker";function A(e){return e.trim().toLowerCase()}function kn(e,t){return t?`external:${e}`:`local:${A(e)}`}function Oe(e){let t=new Map,n=typeof e.blocked_by=="string"?e.blocked_by.trim():"";if(n.length>0&&A(n)!==Pr){let r=me(n);t.set(kn(n,r),r?n:A(n))}for(let r of e.dependencies??[]){let i=typeof r.id=="string"?r.id.trim():"";if(r.kind===jr&&i.length>0&&A(i)!==Pr){let o=me(i)||pe(r.source_kind);t.set(kn(i,o),o?i:A(i))}}return[...t.values()].sort((r,i)=>r.localeCompare(i))}function En(e){let t=new Map;for(let n of e){let r=A(n.id);r.length!==0&&t.set(r,new Set(Oe(n)))}for(let n of e){let r=A(n.id);if(r.length!==0)for(let i of n.dependencies??[]){let o=i.kind===Ss&&typeof i.id=="string"?A(i.id):"";if(o.length===0||o===Pr)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 Ts(e,t){let n=A(e.id);return n.length>0?En(t).get(n)??Oe(e):Oe(e)}function Ur(e,t,n,r){let i=e,o=typeof i.id=="string"?r?.get(A(i.id))??Ts(i,[...t.values()]):Oe(e),s=new Set((e.dependencies??[]).filter(a=>a.kind===jr&&pe(a.source_kind)&&typeof a.id=="string"&&a.id.trim().length>0).map(a=>kn(a.id.trim(),!0)));return o.map(a=>{if(me(a)||s.has(kn(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:$(c.status,n)}:{id:a,title:null,status:null,resolved:!1}})}function In(e,t,n){return Ur(e,t,n)}function pt(e,t){let n=new Map(e.map(s=>[A(s.id),s])),r=En(e),i=new Set([...Rs(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)||Ur(s,n,t,r).some(c=>!c.resolved))&&o.add(A(s.id))}return o}function Hr(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=Re(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 Rs(e){return e.active_statuses.size>0?e.active_statuses:new Set([e.open_status])}function Cl(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(!$(s.status,n))return!0;r.push(A(s.id))}}}return!1}function Sl(e){let t=new Map,n=new Map,r=new Map,i=En(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 ht(e,t,n,r){let{itemsById:i,childrenByParent:o,blockedByReverse:s,blockerIdsByItem:a}=Sl(t),c=new Set([...Rs(n),...n.blocked_statuses]),d=new Set(t.filter(v=>!$(v.status,n)).map(v=>A(v.id))),l=[],u=[],f=[],p=[],m=[],g=0;for(let v of e){if(!c.has(R(v.status,n)))continue;g+=1;let b=Ur(v,i,n,a).filter(S=>!S.resolved),y=(s.get(A(v.id))??[]).filter(S=>d.has(A(S))).sort((S,P)=>S.localeCompare(P)),w={item:v,open_blockers:b,unblocks:y};if(Cl(v.id,o,n)){f.push(w);continue}let E=n.blocked_statuses.has(R(v.status,n));if(b.length===0&&!E){let S=Re(v.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:g,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 ie(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 h(`${t} must be a non-negative integer`,_.USAGE);return r}function Cn(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 h(`${t} filter must be 0..4`,_.USAGE);return r}function xs(e,t,n="--type"){if(e===void 0)return;let r=Vt(e,t);if(!r)throw new h(`${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 Br(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 h(`${t.label} requires at least one non-empty value`,_.USAGE);let o=i.map(s=>t.normalize?.(s)??s);return[...new Set(o)]}function gt(e,t){let n=Br(e,t);return n===void 0?void 0:new Set(n)}function Ds(e,t,n="--type"){let r=Br(e,{label:n});if(r===void 0)return;let i=r.map(o=>{let s=Vt(o,t);if(!s)throw new h(`${n} filter token "${o}" must be one of ${t.types.join("|")}`,_.USAGE);return s});return new Set(i)}function As(e,t="--priority"){let n=Br(e,{label:t});if(n!==void 0)return new Set(n.map(r=>Cn(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 Tl="global",Dw="external",Rl=["open","closed","unknown"],_t=new Map,xl=240,Dl=2048;function Os(e,t,n){return(e?.trim()||t).slice(0,n)}function Al(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 Aw(e){let t=e.name.trim();if(t.length===0)throw new Error("External dependency resolver name must not be empty");if(_t.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 _t.set(t,n),()=>{_t.get(t)===n&&_t.delete(t)}}async function Ow(e,t={}){let n=e.trim();if(!me(n))return null;let r=[..._t.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"||!Al(s.value))continue;let a=r[o],c=s.value,d=Rl.includes(c.status)?c.status:"unknown",l=Os(c.title,"",xl),u=Os(c.source,n,Dl),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 Lw(e){let t=e?.trim();if(t)return pe(t)?Tl:t}function Mw(e,t,n){return Ol(e,t,n)}function Ol(e,t,n){let r=e.trim();return pe(n)||me(r)?r:fn(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 z(){let e=ne();for(let t of D()?.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 yt(e){if(typeof e!="string")return;let t=e.trim().toLowerCase();return t.length>0?t:void 0}function Sn(e){return[e.parent_id,e.child_id,e.source,e.kind,e.holder_id,e.target_id??""].join("\0")}function Ll(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 Ml(e,t){let n=[...e].sort(),r=Ll(n,t),i=new Set,o=Fl(n,t),s=[];for(let a of r.reverse()){if(i.has(a))continue;let c=Nl(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 Fl(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 Nl(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 Ls(e){let t=new Map;for(let n of e){let r=yt(n?.id);r&&!t.has(r)&&t.set(r,n)}return t}function $l(e,t,n){let r=yt(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 Pl(e,t,n,r){let i=yt(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 Ms(e,t){let n=new Map;for(let[r,i]of e){let o=$l(r,i,e);o&&n.set(Sn(o),o);for(let s of i.dependencies??[]){let a=Pl(r,s,e,t);a&&n.set(Sn(a),a)}}return[...n.values()].sort((r,i)=>Sn(r).localeCompare(Sn(i)))}function Fs(e,t=z()){return Ms(Ls(e),t)}function jl(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 Ul(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=yt(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 Tn(e,t=r=>r==="closed"||r==="canceled",n=z()){let r=Ls(e),i=Ms(r,n),o=Kr(i),s=new Set([...r].filter(([,c])=>t(c.status)).map(([c])=>c)),a=Ml([...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:jl(i,o.parents_by_child,s),divergences:Ul(r,i,s)}}function Bw(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 Kr(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 Gr(e,t){let n=new Set(t);return e.every(r=>n.has(r))}function Gw(e,t,n,r,i){let o=yt(n);if(!o)return;let s=Tn(e,r,i),a=Tn(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&&Gr(u.dependency_parent_ids,f.dependency_parent_ids)));if(c){let u=[c.scalar_parent_id,...c.dependency_parent_ids].sort();throw new h(`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&&Gr(u.parent_ids,f.parent_ids)));if(d)throw new h(`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=>Gr(u.item_ids,f.item_ids)));if(l)throw new h(`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 Qe(e){if(typeof e!="string")return;let t=e.trim();if(!(!t||["none","null","n/a","na"].includes(t.toLowerCase())))return t}function vt(e){let t=Qe(e);return t?.toLowerCase()==="no-active-blocker"?void 0:t}function bt(e,t,n=!0){let r=Qe(e);return n&&(pe(t)||r!==void 0&&me(r))}function zr(e,t){return bt(e,t)?`external\0${e}`:`local\0${e.toLowerCase()}`}function Ns(e,t,n,r){return bt(e,t)?r.get(e):n.get(e.toLowerCase())}function Je(e,t){let n=e.toLowerCase(),r=t.toLowerCase();return n!==r?n<r?-1:1:e!==t?e<t?-1:1:0}function Hl(e){let t=new Map;for(let n of e.dependencies??[]){if(typeof n!="object"||n===null)continue;let r=n,i=Qe(r.id);if(!i)continue;let o=typeof r.kind=="string"?r.kind:"related",s=`${o}\0${zr(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 Bl(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 Hl(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=Je(r.holder_id,i.holder_id);if(o!==0)return o;let s=Je(r.target_id,i.target_id);return s!==0?s:Je(r.kind,i.kind)})}function Gl(e,t,n,r,i){if(typeof n!="object"||n===null)return;let o=Qe(n.id);if(!o||zr(o,n.source_kind)!==zr(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 Kl(e,t=r=>r==="closed"||r==="canceled",n=z()){let r=new Map;for(let i of e){if(typeof i?.id!="string"||i.id.trim().length===0)continue;let o=Qe(i.blocked_by);if(o)for(let s of i.dependencies??[]){let a=Gl(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=Je(i.holder_id,o.holder_id);if(s!==0)return s;let a=Je(i.target_id,o.target_id);return a!==0?a:Je(i.dependency_kind,o.dependency_kind)})}function Vr(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=Qe(d);if(!p||r.has(p.toLowerCase())||bt(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;pe(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 zl(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 Vl(e){let t=new Map;for(let n of e){let r=vt(n.blocked_by);r&&bt(r)&&!t.has(r)&&t.set(r,r);for(let i of n.dependencies??[]){if(typeof i!="object"||i===null||!bt(i.id,i.source_kind))continue;let o=vt(i.id);o&&!t.has(o)&&t.set(o,o)}}return[...t.values()].sort((n,r)=>n.localeCompare(r))}var $s=new WeakMap;function Rn(e){return e.hierarchyIntegrity??$s.get(e)}function ql(e,t=z()){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 Ze(e,t,n){let r=n??z(),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=Vr(i,t),a=zl(s);for(let m of a)o.set(m.toLowerCase(),m);let c=Vl(i),d=new Set(o.keys()),l=new Map;for(let m of c){let g=m;for(;d.has(g.toLowerCase());)g=`external:${g}`;l.set(m,g),d.add(g.toLowerCase())}let u=i.map(m=>{let g=vt(m.parent),v=vt(m.blocked_by),b=(m.dependencies??[]).flatMap(y=>{if(typeof y!="object"||y===null)return[];let w=y,E=vt(w.id);return E?[{id:Ns(E,w.source_kind,o,l),kind:typeof w.kind=="string"?w.kind:"related"}]:[]});return{id:m.id.trim(),...g?{parent:o.get(g.toLowerCase())}:{},...v?{blocked_by:Ns(v,void 0,o,l)}:{},dependencies:b}}),f=Tn(i,t,r),p={graph:Gt.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:Bl(i,t),orderingContradictions:Kl(i,t,r),legacyAliasCounts:ql(i,r),hierarchyIntegrity:f};return $s.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]="19d6f507-d3b1-5ccc-aba5-594983776618")}catch{}})();var qr=["id","title","status","type","priority","parent","updated_at"],Wr=["id","status","type","title"],Wl={list:"brief","list-all":"full","list-draft":"full","list-open":"brief","list-in-progress":"brief","list-blocked":"brief","list-closed":"brief","list-canceled":"full"},Yl=["tree_depth","tree_parent","tree_children","tree_title"];function Yr(e=[]){return[...new Set([...kr,"body",...Yl,...e])].flatMap(t=>[t,`item.${t}`]).sort()}var Qw=["brief","standard","deep"],Xl=["body","linked","claim_state","children","schedule","blockers"],Jl=["linked.files","linked.tests","linked.docs"],Ql=["claim_state.claimed","claim_state.assignee","claim_state.last_claim","claim_state.last_release"],Zl=["schedule.deadline","schedule.start_at","schedule.end_at","schedule.location","schedule.reminders","schedule.events"];function Zw(e=[]){return[...[...new Set([...kr,...e,"notes_count","tests_count","collection_counts"])].flatMap(t=>[t,`item.${t}`]),...Xl,...Jl,...Ql,...Zl].sort()}var e0=["id","title","status","type","priority","updated_at","score","matched_fields"],eu=["score","matched_fields","highlights"],Ps=["id","title","description","type","status","priority","tags","created_at","updated_at","deadline","assignee","author","estimated_minutes","acceptance_criteria","dependencies","comments","notes","learnings","reminders","events","files","tests","docs","close_reason","parent","reviewer","risk","confidence","sprint","release","blocked_by","blocked_reason","reporter","severity","environment","repro_steps","resolution","expected_result","actual_result","affected_version","fixed_version","component","regression","customer_impact","definition_of_ready","order","rank","goal","objective","value","impact","outcome","why_now","plan"];function t0(e=[]){let t=[...new Set(e)];return[...eu,...Ps,...Ps.map(n=>`item.${n}`),...t,...t.map(n=>`item.${n}`)].sort()}(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 js(e,t){let n=e.trim().toLowerCase();return t.alias_to_id.get(n)??n}function Gs(e){return{isTerminal(t){return e.terminal_statuses.has(js(t,e))},classify(t){let n=js(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 Xr(e){return K(e.acceptance_criteria)===void 0}function Jr(e){return!Number.isFinite(e.estimated_minutes)}function Ks(e,t){return t.isTerminal(e.status)?K(e.resolution)===void 0:!1}function tu(e){return K(e.reviewer)===void 0}function nu(e){return K(e.risk)===void 0}function ru(e){return typeof e.confidence=="number"?!Number.isFinite(e.confidence):K(e.confidence)===void 0}function iu(e){return K(e.sprint)===void 0}function ou(e){return K(e.release)===void 0}function Qr(e){return!!(e.acMissing||e.estimatesMissing||e.resolutionMissing||e.reviewerMissing||e.riskMissing||e.confidenceMissing||e.sprintMissing||e.releaseMissing||e.metadataMissing)}function su(e,t,n){return[[t.acMissing,Xr(e)],[t.estimatesMissing,Jr(e)],[t.resolutionMissing,Ks(e,n)],[t.reviewerMissing,tu(e)],[t.riskMissing,nu(e)],[t.confidenceMissing,ru(e)],[t.sprintMissing,iu(e)],[t.releaseMissing,ou(e)]].every(([r,i])=>r!==!0||i)}function au(e,t){return Xr(e)||Jr(e)||Ks(e,t)}function zs(e,t,n){return Qr(t)?!(!su(e,t,n)||t.metadataMissing&&!au(e,n)):!0}var Zr=["acceptance_criteria","estimated_minutes","resolution","tags","parent"];function cu(e,t){switch(t){case"acceptance_criteria":return!Xr(e);case"estimated_minutes":return!Jr(e);case"resolution":return K(e.resolution)!==void 0;case"tags":return Array.isArray(e.tags)&&e.tags.length>0;default:return K(e.parent)!==void 0}}function du(e,t,n){return t==="resolution"?n.isTerminal(e.status):!0}function lu(e,t){return t===0?100:Math.round(e/t*1e3)/10}function Us(){let e={};for(let t of Zr)e[t]={present:0,applicable:0,percent:100};return e}function Hs(e,t,n){for(let r of Zr){if(!du(t,r,n))continue;let i=e[r];i.applicable+=1,cu(t,r)&&(i.present+=1)}}function Bs(e){for(let t of Zr){let n=e[t];n.percent=lu(n.present,n.applicable)}}function i0(e,t){let n=Us(),r={};for(let i of e){Hs(n,i,t);let o=r[i.type]??(r[i.type]=Us());Hs(o,i,t)}Bs(n);for(let i of Object.values(r))Bs(i);return{overall:n,by_type:r}}var uu={assignee:"(unassigned)",priority:"(no priority)",tag:"(untagged)",parent:"(unparented)",type:"(untyped)",status:"(no status)"};function fu(e){return uu[e]}function mu(){return{open:0,in_progress:0,blocked:0,draft:0,closed:0,canceled:0,other:0}}function pu(e,t,n){switch(t){case"assignee":return[K(e.assignee)??null];case"parent":return[K(e.parent)??null];case"type":return[K(e.type)??null];case"status":return[K(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 o0(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 pu(a,t,r)){let l=d??"\0empty",u=i.get(l);u||(u={label:d??fu(t),key:d,buckets:mu(),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 et=["notes","learnings","files","docs","tests","comments","deps","body","linked_command"];function Le(e){return Array.isArray(e)&&e.length>0}function hu(e){return typeof e=="string"&&e.trim().length>0}function gu(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 qs(e,t){switch(t){case"notes":return Le(e.notes);case"learnings":return Le(e.learnings);case"files":return Le(e.files);case"docs":return Le(e.docs);case"tests":return Le(e.tests);case"comments":return Le(e.comments);case"deps":return Le(e.dependencies);case"body":return hu(e.body);case"linked_command":return gu(e.tests)}}function Ws(e){return et.some(t=>e[t]!==void 0)}function Ys(e,t){for(let n of et){let r=t[n];if(r===void 0)continue;let i=qs(e,n);if(r==="present"&&!i||r==="absent"&&i)return!1}return!0}function Xs(e){return et.some(t=>t!=="body"&&e[t]!==void 0)}function Js(e){return e.body!==void 0}function Vs(e,t){return t===0?100:Math.round(e/t*1e3)/10}function _u(){let e={};for(let t of et)e[t]={present:0,total:0,percent:100};return e}function a0(e){let t=_u(),n=e.length;for(let s of e)for(let a of et)qs(s,a)&&(t[a].present+=1);for(let s of et)t[s].total=n,t[s].percent=Vs(t[s].present,n);let r=t.body,i=n-r.present,o={present:i,total:n,percent:Vs(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]="8c315632-500b-53c4-a8ed-99865c8c0246")}catch{}})();var yu=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}),Qs=[{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"}],ia=e=>{let t=Qs.find(n=>e[n.presentKey]===!0&&e[n.absentKey]===!0);if(t)throw new h(`Cannot combine ${t.presentFlag} with ${t.absentFlag} for the same field.`,_.USAGE);return Object.fromEntries(Qs.flatMap(n=>e[n.presentKey]===!0?[[n.field,"present"]]:e[n.absentKey]===!0?[[n.field,"absent"]]:[]))},Zs=["priority","deadline","updated_at","created_at","title","parent"],ea=["asc","desc"],oa=new Set(ms);function vu(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 h(`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 bu(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.keys(e).length>0}var wu=[{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"}],ku=[{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 sa(e,t){for(let n of wu)t[n.key]===!0&&(e[n.summaryKey]=!0)}function aa(e,t){for(let n of ku)t[n.key]===!0&&(e[n.summaryKey]=!0)}function Eu(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 Iu(e){let t={};return sa(t,e),t}function Cu(e){let t={};return aa(t,e),t}var Su=[{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"}],Tu=[{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"}],Ru=[{key:"filterAcMissing",summaryKey:"filter_ac_missing"},{key:"filterEstimatesMissing",summaryKey:"filter_estimates_missing"},{key:"filterResolutionMissing",summaryKey:"filter_resolution_missing"},{key:"filterMetadataMissing",summaryKey:"filter_metadata_missing"}],xu="-7d";function Du(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"),Eu(c,n,Su),da(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),aa(c,n),sa(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),bu(a)&&(c.runtime_filters=a),c}function ca(e,t,n){let r=$(e.status,n),i=$(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 Au(e,t){return[...e].sort((n,r)=>ca(n,r,t))}function ta(e,t){if(e!==void 0)return ve(e,new Date,t)}function wt(e,t){if(e==null)return;let n=String(e).trim();if(n.length!==0)return ve(n,new Date,t)}function Ou(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 h("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?wt(xu,"recent"):wt(e.updatedAfter,"updated-after")}function da(e,t){t.today===!0&&(e.today=!0),t.recent===!0&&(e.recent=!0)}function Lu(e){if(e==null)return;let t=String(e).trim();if(t.length===0)throw new h("--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 h("--ids requires at least one non-empty item ID",_.USAGE);return new Set(n)}function la(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 h("Offset filter must be a non-negative integer",_.USAGE);return n}function Mu(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 h("List --fields requires a comma-separated list of field names",_.USAGE);return[...new Set(t)]}function Fu(e,t=e.projectionCommand??"list"){let n=e.compact===!0,r=e.brief===!0,i=e.full===!0,o=Mu(e.fields);if(Number(n)+Number(r)+Number(i)+ +(o!==void 0)>1)throw new h("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=ua(e.sort);return{mode:"brief",fields:[...new Set([...Wr,...s?[s]:[]])]}}return n?{mode:"compact",fields:[...qr]}:o?{mode:"fields",fields:[...new Set(o.map(s=>Me(s)))]}:{mode:"full",fields:[]}}function Me(e){return e.startsWith("item.")?e.slice(5):e}function Nu(e,t,n){if(e.mode!=="fields")return;let r=Yr(t),i=new Set(r.map(s=>Me(s))),o=e.fields.filter(s=>!i.has(Me(s)));if(o.length>0){let s=[n,"--fields",e.fields.filter(a=>!o.includes(a)).join(",")||"id,title,status"];throw new h(`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:So(s),suggested_retry_args:s}})}}var $u=new Map([["updated","updated_at"],["update","updated_at"],["modified","updated_at"],["created","created_at"],["create","created_at"]]);function ua(e){if(e===void 0)return;let t=e.trim().toLowerCase(),n=$u.get(t);if(n)return n;if(!Zs.includes(t))throw new h(`Sort field must be one of ${Zs.join("|")} (aliases: updated->updated_at, created->created_at)`,_.USAGE);return t}function Pu(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!ea.includes(t))throw new h(`Sort order must be one of ${ea.join("|")}`,_.USAGE);return t}function ju(e){return ie(e,"--tree-depth")}function Uu(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!t)throw new h("Assignee filter must be one of assigned|unassigned",_.USAGE);if(t!=="assigned"&&t!=="unassigned")throw new h(`Invalid assignee filter "${e}". Allowed: assigned|unassigned`,_.USAGE);return t}function na(e,t){return bs(e,t,{strict:!0})}function fa(e){return gt(e,{label:"--tag",normalize:t=>t.toLowerCase()})}function Hu(e,t,n){let r=fa(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 Bu(e,t){if(e&&[...e].some(n=>n.toLowerCase()==="none"||n.toLowerCase()==="null"))throw new h('--assignee no longer accepts "none" or "null". Use --assignee-filter unassigned.',_.USAGE);if(e!==void 0&&t==="unassigned")throw new h("Cannot combine --assignee with --assignee-filter unassigned",_.USAGE)}function Gu(e,t,n,r){let i=gt(t.assignee,{label:"--assignee"}),o=Uu(t.assigneeFilter);Bu(i,o);let s=yu(t),a=ia(t);return{idsFilter:Lu(t.ids),statusSet:e&&e.length>0?new Set(e):void 0,excludeTerminal:t.excludeTerminal===!0,typeFilter:Ds(t.type,n),tagFilters:fa(t.tag),priorityFilter:As(t.priority),deadlineBefore:ta(t.deadlineBefore,"deadline-before"),deadlineAfter:ta(t.deadlineAfter,"deadline-after"),updatedAfter:Ou(t),updatedBefore:wt(t.updatedBefore,"updated-before"),createdAfter:wt(t.createdAfter,"created-after"),createdBefore:wt(t.createdBefore,"created-before"),assigneeFilter:i,assigneeModeFilter:o,parentFilter:t.parent?.trim(),treeEnabled:t.tree===!0,sprintFilter:gt(t.sprint,{label:"--sprint"}),releaseFilter:gt(t.release,{label:"--release"}),missingMetadataFilters:s,missingMetadataActive:Qr(s),lifecycleClassifier:Gs(r),contentFieldFilters:a,contentFiltersActive:Ws(a)}}function Ku(e,t,n){return t.idsFilter&&!t.idsFilter.has(e.id)||t.statusSet&&!t.statusSet.has(e.status)||t.excludeTerminal&&$(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 zu(e,t){return Ao(e,t)}function Vu(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 qu(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 Wu(e,t,n,r,i){return!(!Ku(e,t,n)||!zu(e,t)||!Vu(e,t)||!qu(e,t,i)||t.missingMetadataActive&&!zs(e,t.missingMetadataFilters,t.lifecycleClassifier)||t.contentFiltersActive&&!Ys(e,t.contentFieldFilters)||!_n(e,r))}function Yu(e,t,n,r,i,o,s){let a=Gu(t,n,r,i);return e.filter(c=>Wu(c,a,i,o,s))}function kt(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function ra(e,t,n,r){let i=e,o=typeof i.title=="string"?i.title:"",s=r??kt(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 Xu(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)??[]:[kt(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 Ju(e,t,n,r,i){return t?[...r.get(t.toLowerCase())??[]]:e.filter(o=>(i?i.parents_by_child.get(o.id.trim().toLowerCase())??[]:[kt(o.parent)?.toLowerCase()].filter(s=>s!==void 0)).every(s=>!n.has(s)))}function Qu(e,t,n,r,i=e){let{byId:o,childrenByParent:s}=Xu(e,r),a=Ju(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(),g=f.id.trim().toLowerCase();if(d.has(g))continue;d.add(g);let v=s.get(g)??[];if(c.push(ra(f,p,v.length,m)),!(n!==void 0&&p>=n))for(let b of[...v].reverse())u.push({node:b,depth:p+1,parentId:l.get(g)})}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(ra(f,0,s.get(p)?.length??0)))}return c}function Zu(e,t){return e===t?0:e===null?1:t===null?-1:e.localeCompare(t)}function ef(e,t){return e===t?0:e===null?1:t===null?-1:C(e,t)}function tf(e,t,n){switch(n){case"priority":return e.priority-t.priority;case"deadline":return ef(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 Zu(e.parent??null,t.parent??null);default:return 0}}function nf(e,t,n,r){return t?[...e].sort((i,o)=>{let s=tf(i,o,t);if(s!==0)return n==="desc"?-s:s;let a=ca(i,o,r);return n==="desc"?-a:a}):Au(e,r)}function rf(e,t,n=!1){let r=Me(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 ma(e,t,n=!1){return t.mode==="full"?e:e.map(r=>{let i={};for(let o of t.fields)i[o]=rf(r,o,n);return i})}function of(e){let t=[];for(let n of e)t.push(n.metadata_key);return t}function sf(e,t){let n=ie(e.limit);if(n!==void 0)return n;if(e.noTruncate!==!0)return t>=1e4?20:void 0}function af(e,t,n){return t.after===void 0?la(t.offset)??0:Be(e,t.after,n,r=>r.id)}function pa(e,t,n){return{...e!==void 0?{applied_limit:e}:{},has_more:t,truncated:t,next_cursor:n??null}}async function cf(e,t){let n=O(process.cwd(),t.path);await U(n);let r=await M(n),i=J(r.schema),o=rn(r.schema),s=e.projectionCommand??"list",a=Fu(e,s);return Nu(a,of(o.definitions),s),{pmRoot:n,settings:r,statusRegistry:i,runtimeFieldFilters:gn(e,o,"list"),typeRegistry:L(r,D()),projection:a}}async function df(e,t,n){let r=t.projection.fields.some(c=>Me(c)==="body"),i=t.projection.mode==="full"||t.projection.fields.some(c=>oa.has(Me(c))),o=ia(e),s=Xs(o),a=Js(o);return e.includeBody||r||a?await mn(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,n,t.settings.schema):i||s?await hs(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,n,t.settings.schema):await fe(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,n,t.settings.schema)}function lf(e){let t=ua(e.sort),n=Pu(e.order)??"asc",r=e.tree===!0;if(!r&&e.treeDepth!==void 0)throw new h("List --tree-depth requires --tree",_.USAGE);if(!t&&e.order!==void 0)throw new h("List --order requires --sort",_.USAGE);return{sortField:t,sortOrder:n,treeEnabled:r,treeDepth:r?ju(e.treeDepth):void 0,parentRoot:r?kt(e.parent):void 0}}function uf(e,t,n){let r=na(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??na(e,n),s=vs(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 ff(e,t,n,r,i){if(t.after!==void 0&&t.offset!==void 0)throw new h("List --after cannot be combined with --offset.",_.USAGE);let o=sf(t,e.length),s=af(e,t,i),a=o===void 0?e.slice(s):e.slice(s,s+o),c=ma(a,n,r),d=e.length,l=a.length>0&&s+a.length<d,u=l&&a.length>0?de(i,a[a.length-1].id,s+a.length-1):void 0;return{projected:c,totalMatched:d,pageExtras:pa(o,l,u)}}function ha(e,t,n,r){return Se("list",{pmRoot:r,status:e,options:Jt(t,gs),sort:n.sortField??"default",order:n.sortOrder,tree:n.treeEnabled,tree_depth:n.treeDepth??null})}async function mf(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=Me(p);return m==="body"||oa.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,Eo(),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 Ye(n.pmRoot,[...new Set(Object.values(n.typeRegistry.type_to_folder))]);if(!a)return null;let c=ie(t.limit),d=la(t.offset)??0,l=await fs({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?de(ha(r.filtersStatus,t,i,n.pmRoot),l.items.at(-1).id,d+l.items.length-1):void 0;return{projected:ma(l.items,n.projection,!1),totalMatched:l.total,pageExtras:pa(c,u,f)}}function pf(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 Tu){let f=l[u.optionKey];f!=null&&(d[u.summaryKey]=f)}for(let u of Ru)l[u.key]===!0&&(d[u.summaryKey]=!0);return Object.assign(d,Cu(n),Iu(n)),da(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 Et(e,t,n){let r=await cf(t,n),i=[],o=lf(t),s=uf(e,t,r.statusRegistry),a=t.noTruncate===!0,c=await mf({options:t,runtime:r,statusSelection:s,ordering:o}),d=c;if(!d){let m=await df(t,r,i),g=o.treeEnabled||kt(t.parent)!==void 0?Kr(Fs(m,z())):void 0;Hu(m,t.tag,i);let v=Yu(m,s.resolvedStatus,s.effectiveOptions,r.typeRegistry,r.statusRegistry,r.runtimeFieldFilters,g?.parents_by_child),b=t.dependencyBlocked===!0?(()=>{let E=pt(m,r.statusRegistry);return v.filter(S=>E.has(S.id.trim().toLowerCase()))})():v,y=nf(b,o.sortField,o.sortOrder,r.statusRegistry),w=o.treeEnabled?Qu(y,o.parentRoot,o.treeDepth,g,m):y;d=ff(w,t,r.projection,o.treeEnabled,ha(s.filtersStatus,t,o,r.pmRoot))}let l=x(),u=[...new Set(i)].sort((m,g)=>m.localeCompare(g)),f=vu(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=Du({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:pf({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"},now:l,...u.length>0?{warnings:u}:{}}}import{createHash as hf}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 gf=64,_f=8;function yf(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 xn(e,t=r=>r==="closed"||r==="canceled",n=ne()){let r=e.filter(o=>typeof o?.id=="string"&&o.id.trim().length>0).map(o=>yf(o,t)).sort(),i=n.list().map(o=>k(o)).sort();return hf("sha256").update(r.join("")).update("").update(i.join("")).digest("hex")}function ga(e,t,n){let r=t??n;if(!Number.isInteger(r)||r<1)throw new TypeError(`Invalid ${e} bound: ${String(t)}`);return r}var ei=class{#e=new Map;#t;#n;constructor(t={}){this.#t=ga("maxResultsPerWorkspace",t.maxResultsPerWorkspace,gf),this.#n=ga("maxWorkspaces",t.maxWorkspaces,_f)}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()}},_a=new ei;function Dn(){return _a}function B0(){_a.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]="c67d6023-2fb2-541f-9541-8aa317368dcf")}catch{}})();var vf=["prerequisite","dependent","ancestor","descendant","provenance","related"],bf=new TextEncoder;function ti(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 An(e){return Math.max(1,Math.ceil(bf.encode(JSON.stringify(e)).byteLength/4))}function ni(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 wf(e,t,n,r){let i=e.filter(o=>o.source===t&&o.target===n||o.target===t&&o.source===n).map(o=>ni(o,n,r));return[...new Set(i)].sort()}function kf(e){return vf.find(t=>e.includes(t))}function Ef(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:g}of p.value){if(s.has(m))continue;s.add(m);let v={id:m,distance:f.distance+1,via:f.id,role:ni(g,m,n)};c.push(v),a.push(v)}}return c.sort((u,f)=>u.distance-f.distance||u.id.localeCompare(f.id)),{rows:c,visitedNodes:a.length,inspectedEdges:d,depthTruncated:l}}function If(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[ni(a,s,n)]+=1;return{directEdges:i,directTotal:o.length,rootEdges:o.map(({edge:s})=>s)}}function Cf(e){let t=[],n=e.initialTokens;for(let r of e.candidates){if(t.length>=e.nodeLimit)break;let i=r.distance===1?wf(e.rootEdges,e.rootId,r.id,e.registry):[],o={...e.details.get(r.id)??{id:r.id},distance:r.distance,role:i.length>0?kf(i):r.role,via:r.via,reasons:i.length>0?i:[`${r.role} via ${r.via} (depth ${r.distance})`]},s=An(o);if(n+s>e.tokenBudget)break;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 Sf(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)}),r=[],i=e.initialTokens;for(let o of n){if(r.length>=e.edgeLimit)break;let s=An(o);if(i+s>e.tokenBudget)break;r.push(o),i+=s}return{edges:r,usedTokens:i,candidateCount:n.length}}function ya(e,t,n,r={}){if(!e.nodes().includes(t))throw new TypeError(`Relationship node not found: ${t}`);let i=ti(r.nodeLimit,20,"nodeLimit"),o=ti(r.edgeLimit,40,"edgeLimit"),s=ti(r.tokenBudget,1200,"tokenBudget"),a=r.registry??ne(),c=new Map(n.map(V=>[V.id,V])),d=c.get(t)??{id:t},{evidence:l=[],...u}=d,f=[...l],p=Ef(e,t,a,r),{rootEdges:m,...g}=If(e,t,a,r),v=Se("relationship-context",{rootId:t,direction:r.direction??"both",kinds:[...r.kinds??[]].sort(),maxDepth:r.maxDepth??3}),b=Be(p.rows,r.cursor,v,({id:V})=>V),y=p.rows.slice(b),w=An(u)+An(f);if(w>s)throw new TypeError("Relationship context tokenBudget cannot fit root and evidence");let E=Cf({candidates:y,details:c,rootEdges:m,rootId:t,registry:a,nodeLimit:i,tokenBudget:s,initialTokens:w}),{nodes:S}=E,P=new Set([t,...S.map(({id:V})=>V)]),j=Sf({graph:e,included:P,options:r,registry:a,edgeLimit:o,tokenBudget:s,initialTokens:E.usedTokens}),{edges:F,usedTokens:Ce}=j,N=b+S.length,B=N<p.rows.length,Y=S.at(-1),X=j.candidateCount-F.length,te=p.depthTruncated||B||X>0,ae={rootId:t,...u.status===void 0?{}:{rootStatus:u.status},...g,discoveredNodes:p.rows.length,returnedNodes:S.length,returnedEdges:F.length,omittedNodes:p.rows.length-N,omittedEdges:X,evidenceCount:f.length,hasMore:B};return{root:u,summary:ae,nodes:S,edges:F,evidence:f,meta:{exact:!0,truncated:te,completeness:te?"truncated":"complete",nodeLimit:i,edgeLimit:o,tokenBudget:s,usedTokens:Ce,visitedNodes:p.visitedNodes,inspectedEdges:p.inspectedEdges,omittedNodes:p.rows.length-N,omittedEdges:X,...B&&Y?{nextCursor:de(v,Y.id,N-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]="620bf4e4-e6d1-5520-89e4-0859f57c7afe")}catch{}})();var Tf=["tree","graph","context"],Rf=["none","repeated"],xf=["outgoing","incoming","both"],Df=32,Af=200,Of=400,Lf=16e3;function Mf(e){let t=e?.trim().toLowerCase()??"tree";if(Tf.includes(t))return t;throw new h(`Invalid --format value "${e}". Use "tree", "graph", or "context".`,_.USAGE)}function he(e,t){if(e===void 0)return;let n=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(n)||n<1)throw new h(`Invalid --${t} value "${e}". Use a positive integer.`,_.USAGE);return n}function On(e){if(e===void 0)return;let t=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(t)||t<0)throw new h(`Invalid --max-depth value "${e}". Use a non-negative integer.`,_.USAGE);return t}function Ff(e){let t=e?.trim().toLowerCase()??"none";if(Rf.includes(t))return t;throw new h(`Invalid --collapse value "${e}". Use "none" or "repeated".`,_.USAGE)}function ii(e){let t=e?.trim().toLowerCase()??"both";if(xf.includes(t))return t;throw new h(`Invalid --direction value "${e}". Use "outgoing", "incoming", or "both".`,_.USAGE)}function oi(e,t=ne()){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 h(`Invalid --kind value "${i}". Registered kinds: ${s}.`,_.USAGE)}r.add(o.kind)}return[...r].sort()}function Nf(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 $f(e){return{id:e.id,title:e.title,type:e.type,status:e.status,dependencies:Nf(e.dependencies)}}function Pf(e){return Xt(new TextEncoder().encode(JSON.stringify({...e,dependencies:void 0})).byteLength)}function jf(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(ba(d.id,n,r,i,o,s,a,c+1,d.kind))}}function Uf(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 ba(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+=Pf(u),Uf(u,l,d,r,i,o,s,a))return u;i==="repeated"&&o.add(d);let f=new Set(n);return f.add(d),jf(u,l,t,f,r,i,o,s,a),u}function va(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 Hf(e){let t=new Map,n=new Map,r=[e];for(;r.length>0;){let a=r.pop();t.set(a.id,va(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,va(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 wa(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 Bf(e,t=ne()){let n=On(e.maxDepth),r=he(e.nodeLimit,"node-limit"),i=he(e.edgeLimit,"edge-limit"),o=he(e.tokenBudget,"token-budget"),s=oi(e.kind,t);return{direction:ii(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 Gf(e,t,n,r){return ya(e.graph,t,e.details.map(i=>i.id===t&&r.length>0?{...i,evidence:r}:i),n)}function ri(e,t,n,r){for(let i of n.slice(0,r)){let o=i?.trim();o&&e.push(`${t}:${o}`)}}async function Kf(e,t,n,r){let i=await ue(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 ri(u,"file",a.map(f=>f.path),3),ri(u,"test",c.map(f=>f.command??f.path),2),ri(u,"doc",d.map(f=>f.path),2),u}function zf(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 Vf(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 ka(e,t,n){let r;for(;;){let i=Xt(new TextEncoder().encode(xr(Sr("deps",e),t)).byteLength);if(i===r)return i;n(i),r=i}}function qf(e){return e instanceof TypeError&&e.message.startsWith("Relationship context tokenBudget cannot fit ")}function Wf(e){try{return Gf(e.assembly,e.canonicalId,{...e.contextOptions,...e.internalTokenBudget===void 0?{}:{tokenBudget:e.internalTokenBudget}},e.rootEvidence)}catch(t){if(e.smallestResult!==void 0&&qf(t))return e.smallestResult;throw t}}function Yf(e){let{assembly:t,canonicalId:n,contextOptions:r,rootEvidence:i,summaryOnly:o,outputFormat:s,missingCount:a,missingReferences:c}=e,d=r.edgeLimit??40,l=r.tokenBudget,u,f;for(;;){let p=Wf({assembly:t,canonicalId:n,contextOptions:r,internalTokenBudget:l,rootEvidence:i,smallestResult:f});if("format"in p)return p;let m=p;u??=m.meta.tokenBudget,l??=u;let g=zf({canonicalId:n,context:m,missingCount:a,missingReferences:c,referenceLimit:d,summaryOnly:o});if(f=g,o||(m.meta.tokenBudget=u,m.meta.usedTokens=ka(tt(g,!1),s,y=>{m.meta.usedTokens=y}),m.meta.usedTokens<=u))return g;if(d>0){d-=1;continue}let v=l,b=v*u/m.meta.usedTokens;l=Math.min(v-1,Math.max(1,Math.floor(b*.9)))}}function Xf(e){let{assembly:t,canonicalId:n,options:r,rootEvidence:i,summaryOnly:o,outputFormat:s}=e,a=Bf(r,t.graph.registry()),c=t.graph.closure(n,{direction:a.direction,...a.kinds===void 0?{}:{kinds:a.kinds},maxDepth:a.maxDepth??3}),d=c.value.filter(g=>t.missingIdSet.has(g.toLowerCase())),l=new Set(d.map(g=>g.toLowerCase())),u=t.graph.registry(),f=a.kinds?new Set(a.kinds.map(g=>u.require(g).kind)):void 0,p=new Set([n,...c.value]),m=[...t.dangling.active,...t.dangling.legacy_terminal].filter(g=>Vf({row:g,missingReachableSet:l,packetIds:p,filteredKinds:f,registry:u}));return Yf({assembly:t,canonicalId:n,contextOptions:a,rootEvidence:i,summaryOnly:o,outputFormat:s,missingCount:d.length,missingReferences:m})}function Jf(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 Qf(e,t,n,r,i,o,s){let a=i??Df,c=he(n.nodeLimit,"node-limit")??Af,d=he(n.edgeLimit,"edge-limit")??Of,l=he(n.tokenBudget,"token-budget")??Lf,u={nodeLimit:c,edgeLimit:d,tokenBudget:l,nodes:0,edges:0,estimatedTokens:0,reasons:new Set},f=ba(e,r,new Set,a,t==="graph"?"repeated":o,new Set,u),p=wa(e,r,void 0),m;for(;;){let g=Hf(f),v=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-g.nodes.length),omitted_edge_count:Math.max(0,p.edge_count-g.edges.length)},b={id:e,format:t,node_count:g.nodes.length,edge_count:g.edges.length,edge_basis:"deduplicated_directed",missing_count:g.missing_ids.length,...v?{truncation:v}:{}};if(m=t==="tree"?{...b,tree:f}:{...b,graph:g},(m.truncation===void 0?Xt(new TextEncoder().encode(xr(Sr("deps",tt(m,!1)),s)).byteLength):ka(tt(m,!1),s,y=>{m.truncation.estimated_tokens=y}))<=l)return m;if(!Jf(f))return u.reasons.add("token_budget"),m;u.reasons.add("token_budget")}}function tt(e,t,n={}){let r={name:e.format==="tree"?"dependency_tree":e.format==="graph"?"dependency_graph":"relationship_context",restore_with:"--full"};return{...e,legacy_alias_counts:n,projection:{mode:t?"summary":"full",declared_field_groups:[r],included_field_groups:t?[]:[r.name]}}}async function lk(e,t,n){let r=O(process.cwd(),n.path);await U(r);let i=Mf(t.format),o=On(t.maxDepth),s=Ff(t.collapse);Yt(t.summary===!0,t.full===!0,"--summary");let a=t.summary===!0,c=await M(r),d=L(c,D()),l=await fe(r,c.item_format,d.type_to_folder,void 0,c.schema),u=J(c.schema),f=new Map(l.map(m=>[m.id.trim().toLowerCase(),$f(m)])),p=Vr(l,m=>$(m,u));for(let m of[...p.active,...p.legacy_terminal]){let g=f.get(m.holder_id.trim().toLowerCase()),v=m.kind.trim().toLowerCase();g&&!g.dependencies.some(b=>b.id.trim().toLowerCase()===m.target_id.trim().toLowerCase()&&b.kind===v)&&g.dependencies.push({id:m.target_id,kind:v})}if(!f.has(e.trim().toLowerCase()))throw new h(`Item ${e} not found`,_.NOT_FOUND);if(i==="context"){let m=f.get(e.trim().toLowerCase()).id,g=a?[]:await Kf(r,m,c,d.type_to_folder),v=w=>$(w,u),b=z(),y=Dn().lookup(r,xn(l,v,b),()=>Ze(l,v,b));return tt(Xf({assembly:y.assembly,canonicalId:m,options:t,rootEvidence:g,summaryOnly:a,outputFormat:n.json===!0?"json":"toon"}),a,y.assembly.legacyAliasCounts)}return a?tt({id:e,format:i,...wa(e,f,o)},!0,Object.fromEntries(Object.entries(Ze(l,m=>$(m,u)).legacyAliasCounts))):tt(Qf(e,i,t,f,o,s,n.json===!0?"json":"toon"),!1,Object.fromEntries(Object.entries(Ze(l,m=>$(m,u)).legacyAliasCounts)))}(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 Zf=ke.paths,em=ke.visited_paths,tm=ke.path_depth;function si(e,t){if(!Number.isFinite(t)||!Number.isInteger(t)||t<0)throw new TypeError(`Invalid path ${e} bound: ${String(t)}`)}function Ln(e,t){return t.hierarchyDirection==="target_parent"?e.target:e.source}function It(e,t){return(t.precedence??"source_before_target")==="target_before_source"?e.target:e.source}function nt(e,t){let n=It(e,t);return{predecessor:n,successor:n===e.source?e.target:e.source}}function nm(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 rm(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 im(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 Mn(e,t,n,r,i){if(!e.hasNode(t))throw new TypeError(`Relationship node not found: ${t}`);let o=nm(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=rm(e,p.id,o,r,i);if(u+=m.inspectedEdges,im(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 Ea(e,t){if(!e.hasNode(t))throw new TypeError(`Relationship node not found: ${t}`)}function Ia(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 om(e,t,n,r,i,o,s){for(let a of Ia(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 Ca(e,t,n={}){return Mn(e,t,n,"hierarchy",(r,i)=>Ln(r.edge,i)===r.id)}function Sa(e,t,n={}){return Mn(e,t,n,"hierarchy",(r,i,o)=>Ln(r.edge,i)===o)}function Ta(e,t,n={}){return Mn(e,t,n,"ordering",(r,i)=>It(r.edge,i)===r.id)}function Ra(e,t,n={}){return Mn(e,t,n,"ordering",(r,i,o)=>It(r.edge,i)===o)}function sm(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){Ia(e,p,r,a,c).length>0&&(l=!0);continue}if(om(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 xa(e,t,n,r={}){Ea(e,t),Ea(e,n);let i=r.maxPaths??Zf,o=r.maxVisitedPaths??em,s=r.maxDepth??tm;si("maxPaths",i),si("maxVisitedPaths",o),si("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}}:sm(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 am=16,cm=2,dm=8;function Fn(e,t){if(!Number.isInteger(t)||t<1)throw new TypeError(`Invalid ${e} bound: ${String(t)}`)}function Nn(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 lm(e,t){let n=new Map;Nn(e,t,r=>{Da(n,r.source,r.target),Da(n,r.target,r.source)});for(let r of n.values())r.sort();return n}function Da(e,t,n){let r=e.get(t);r===void 0?e.set(t,[n]):r.push(n)}function um(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 fm(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 Aa(e,t={}){let n=t.maxIterations??am,r=t.minSize??cm;Fn("maxIterations",n),Fn("minSize",r);let i=lm(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=um(f,s);p!==s.get(u)&&(s.set(u,p),c=!1)}}return{value:{communities:fm(s,r),iterations:a,converged:c},meta:{visitedNodes:d,inspectedEdges:l,truncated:!c}}}function $n(e){return e.direction==="directed"&&(e.ordering||e.hierarchy)}function Pn(e){return e.inverse!==void 0&&e.inverse<e.kind?e.inverse:e.kind}function ai(e,t){return(t.hierarchy?Ln(e,t):e.source===It(e,t)?e.target:e.source)===e.target?{from:e.source,to:e.target}:{from:e.target,to:e.source}}function mm(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(!$n(o))throw new TypeError(`Relationship kind ${o.kind} is not a directed ordering or hierarchy kind`);r.add(Pn(o))}return r}function pm(e,t){let n=e.registry(),r=new Map;for(let i of e.edges()){let o=n.require(i.kind);if(!$n(o))continue;let s=Pn(o);if(t!==void 0&&!t.has(s))continue;let a=ai(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 hm(e){let t=new Map;for(let[n,r]of e.adjacency)t.set(n,[...r].sort());return t}function gm(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 _m(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 gm(r,t.from,n.id,s);i.push({id:s,depth:n.depth+1})}}function ym(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=_m(e,t,a,i,o,r);if(c!==void 0)return c}}function rt(e,t={}){let n=t.maxDepth??dm;Fn("maxDepth",n),t.limit!==void 0&&Fn("limit",t.limit);let r=t.limit??Number.POSITIVE_INFINITY,i=mm(e,t.kinds),o=pm(e,i),s=[],a={visitedNodes:0,inspectedEdges:0},c=!1;e:for(let d of[...o.keys()].sort()){let l=o.get(d),u=hm(l);for(let f of l.records){t.signal?.throwIfAborted();let p=ym(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 vm(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 bm(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,vm(l,u,f.value,i,a))}return{order:o,successors:s,predecessors:a.predecessors,inspectedEdges:c,truncated:a.truncated}}function wm(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 km(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 Em(e,t,n){let r;for(let i of[...e].sort())t.has(i)&&(r=r===void 0?i:km(r,i,t,n));return r}function Im(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=Em(e.predecessors.get(a),o,r);c!==void 0&&o.get(a)!==c&&(o.set(a,c),s=!0)}}return o}function Oa(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=bm(e,t,n),i=wm(r,t),o=new Map(i.map((d,l)=>[d,l])),s=Im(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 La(e){return Math.round(e*1e6)/1e6}function Ma(e,t,n){let r=e.get(t);r===void 0?e.set(t,new Set([n])):r.add(n)}function Fa(e,t){let n=new Map(e.nodes().map(i=>[i,new Set]));Nn(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 Cm(e,t){let n=new Map,r=new Map;return Nn(e,t,(i,o)=>{if(!o.ordering)return;let{predecessor:s,successor:a}=nt(i,o);Ma(r,s,a),Ma(n,a,s)}),{incoming:n,outgoing:r}}function Sm(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 Tm(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 Rm(e,t){return t<=1||e.reachableCount===0?0:e.reachableCount/(t-1)*(e.reachableCount/e.distanceSum)}function xm(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:La((r.get(e)??0)/2),closeness:La(i.get(e))}}function Na(e,t={}){let n=Fa(e,t.kinds),r=Cm(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=Sm(l,n,a);s.set(l,Rm(u,i.length)),Tm(u,l,o)}let c=0;for(let l of n.values())c+=l.length;let d=i.map(l=>xm(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 Dm(e,t){return e<=t?{source:e,target:t}:{source:t,target:e}}function Am(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 Om(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(Dm(r,e.node))}function Lm(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=Am(o,t,n);s!==void 0&&i.push(s)}else Om(o,e,n),i.pop()}}function jn(e,t={}){let n=Fa(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)||Lm(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 Mm(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 Fm(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 Nm(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 $m(e,t,n,r,i){let o=new Map;for(let s=e.length-1;s>=0;s-=1){let a=e[s],c=Fm(t.forward.get(a),r,o,i);o.set(a,c-1)}return e.map(s=>Nm(s,n[s],o.get(s))).sort((s,a)=>s.slack-a.slack||s.earliestStart-a.earliestStart||s.id.localeCompare(a.id))}function $a(e,t={}){t.signal?.throwIfAborted();let n=wn(e,{registry:e.registry()}),r=Mm(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=$m(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 Pm(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 jm(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 Um(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 Hm(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 Bm(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 Gm(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=jm(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 Km(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"),Gm(d,l,t,n,r,i,c,a)}}function Pa(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=Um(a,t,r,d,n.signal);Hm(e,l,n.signal);let u=Bm(a,l,n.signal);return Pm(u,l,n.signal),Km(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 Ha(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 ja(e){if(!Un(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)||!Un(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 Un(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Ba(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:!Un(t)||!Un(n)?!1:["all","active","terminal"].every(r=>ja(t[r]))&&Object.values(n).every(ja)}function Ua(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 Ga(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:Ua(e.coverage_by_lifecycle,t.coverage_by_lifecycle),coverage_by_status:Ua(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 zm=25,Vm="milestone",qm="outcome milestone:",Wm=new Set(["discovered_from","incident_from","recurs_from","supersedes","verifies"]);function Hn(e){return Wm.has(e)}var Ka={error:0,warning:1,info:2};function za(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 Ym(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 Va(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 qa(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 Xm(e,t){let n=Rn(e);return n?[...Ym(n,t),...Va(n,t,!1),...Va(n,t,!0),...qa(n,t,!1),...qa(n,t,!0)]:[]}function Jm(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 Ya(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 Qm(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))):(Ya(o,r),t.push({node:o,neighborIndex:0})),!0}function Zm(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 ep(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(Ya(r,t);i.length>0;){let o=i.at(-1);Qm(o,i,e,t)||Zm(o,i,e,t)}}return t.components.sort((r,i)=>r[0].localeCompare(i[0]))}function ci(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 tp(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(ci),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(ci),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(ci),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 li(e,t){let n=t.get(e);return n?!n.terminal:!0}function Xa(e){return`${e.holder_id} -> ${e.target_id} (blocked_by scalar + ${e.dependency_kind} dependency)`}function np(e,t){let n=[],r=[];for(let o of e.orderingContradictions??[])(o.legacy_terminal?r:n).push(Xa(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 rp(e,t,n,r){let i=[],o=Jm(e);for(let c of ep(o)){let d=c.some(f=>li(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(Xa);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 Bn(e){let t=e.edges.map(n=>n.kind).sort((n,r)=>n.localeCompare(r));return`${e.from} -> ${e.to} (${t.join(" + ")})`}function ui(e){let t=e.graph.registry(),n=new Map;for(let i of e.graph.edges()){let o=t.require(i.kind);if(!$n(o))continue;let s=ai(i,o);if(s.from===s.to)continue;let a=`${Pn(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 ip(e,t,n){let r=[],i=[];for(let s of ui(e))(li(s.from,t)||li(s.to,t)?r:i).push(Bn(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 op(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 sp(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 ap(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 cp(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 dp(e,t,n){let r=new Set(e.details.filter(a=>a.type?.toLowerCase()===Vm&&a.title.trim().toLowerCase().startsWith(qm)).map(a=>a.id)),{basis:i,reverse:o}=sp(e,n),s=ap(r,o,n);return{outcome_nodes:r.size,outcome_reachability_basis:i,...cp(t,r,s,n)}}function lp(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 up(e,t,n,r,i,o,s){let a={active:0,missing:0,isolated:0,degreeLeqOne:0,isolates:[],sparse:[],byType:new Map};for(let y of e.graph.nodes()){s?.throwIfAborted();let w=t.get(y);if(w){if(w.missing){a.missing+=1;continue}w.terminal||lp(a,w,e.graph.incidentEdges(y).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.",y=>`${y} 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.",y=>`${y} 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:y})=>`${y.source.toLowerCase()}\0${y.target.toLowerCase()}\0${y.kind}`));for(let y of e.orderingContradictions??[])p.add(`${y.holder_id.toLowerCase()}\0${y.target_id.toLowerCase()}\0${y.dependency_kind}`);let m=Object.fromEntries(Object.entries(o).sort(([y],[w])=>y.localeCompare(w))),g=Object.entries(m).reduce((y,[w,E])=>y+(Hn(w)?E:0),0),v=jn(e.graph,{signal:s}).value,b=dp(e,t,s);return{findings:l,profile:{nodes:e.graph.nodes().length,recorded_nodes:e.details.filter(y=>y.status!=="missing"&&y.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(([y,w])=>[y,w/u])),semantic_edges:g,semantic_edge_share:u===0?0:g/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(([y],[w])=>y<w?-1:1)),articulation_points:v.articulationPoints.length,bridge_edges:v.bridges.length,...b,finding_subjects_by_code:Object.fromEntries(ot.map(y=>[y,0]))}}}function Gn(e,t={}){let n=t.isTerminal??(f=>f==="closed"||f==="canceled"),r=t.isBlocked??(f=>f==="blocked"),i=t.maxSampleSize??zm;if(!Number.isInteger(i)||i<1)throw new TypeError(`Invalid audit sample bound: ${String(t.maxSampleSize)}`);let o=za(t.exemptIsolates),s=za(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=tp(e,n,i);d.push(...Xm(e,i)),t.signal?.throwIfAborted(),d.push(...np(e,i)),t.signal?.throwIfAborted(),d.push(...rp(e,a,r,i)),t.signal?.throwIfAborted(),d.push(...ip(e,a,i),...op(e,i)),t.signal?.throwIfAborted();let l=up(e,a,o,s,i,c,t.signal);d.push(...l.findings),d.sort((f,p)=>Ka[f.severity]-Ka[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,...Ha(e,n,Hn,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 di(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 Wa(e){return e.profile.coverage_by_type??{}}function fp(e,t){let n={},r=Wa(e),i=Wa(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 Ja(e,t){let n=fp(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,g=e.profile.ordering_contradiction_edges??0,v=t.profile.ordering_contradiction_edges??0;return{baseline_saved_at:e.saved_at,same_snapshot:e.fingerprint===t.fingerprint,affected_subjects_by_code:di(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:v-g,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:di(e.profile.edges_by_kind,t.profile.edges_by_kind),edge_share_by_kind:di(r,s),semantic_edges:a-i,semantic_edge_share:c-o,coverage_by_type:n,...Ga(e.profile,t.profile)}}}import Qa 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 Za=2,fi=500,mp=64,pp="graph-durable-cache";function ec(e){return Ge(e,pp,30,`graph-cache:${process.pid}`,!1,!1,3e3)}function St(e){return Qa.join(e,"runtime","graph-cache.json")}function tc(e){return Qa.join(e,"runtime","graph-audit-baseline.json")}function mi(e){if(e!==null)try{let t=JSON.parse(e);return typeof t!="object"||t===null||t.version!==Za||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 pi(e,t){let n=await ye(St(e)),r=mi(n),i=r?.fingerprint===t;return{exists:n!==null,fresh:i,results:i?r.results:{}}}async function hi(e,t,n,r,i){let o=await ec(e);try{let s=mi(await ye(St(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-mp)))delete a[d];await W(St(e),JSON.stringify({version:Za,fingerprint:t,saved_at:new Date().toISOString(),results:a})),n.results=a}finally{await o()}}async function gi(e){let t=await ec(e);try{await _o(St(e))}finally{await t()}}async function nc(e,t){let n=St(e),r=await ye(n),i=mi(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 _i(e,t){return t||e>=fi}function Kn(e){return at(e)&&Object.values(e).every(Fe)}function at(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Fe(e){return Number.isInteger(e)&&Number(e)>=0}function rc(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0&&e<=1}function Ct(e,t){return e===void 0||t(e)}function hp(e){return at(e)&&Object.values(e).every(rc)}function gp(e){return at(e)?Object.values(e).every(t=>at(t)&&[t.active,t.isolated,t.degree_leq_one].every(Fe)):!1}function _p(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=>Ct(e[s],Fe)))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 yp(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=>Ct(e[o],Fe))&&n.every(o=>Ct(e[o],Fe)&&(e[o]===void 0||Number(e[o])<=1e4))&&Ct(e.finding_subjects_by_code,Kn)}function vp(e,t,n,r){let i=_p(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(!yp(e,o,s)||e.edge_basis!==void 0&&e.edge_basis!=="deduplicated_directed")return;let a=Kn(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 bp(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||!hp(n)||!Fe(r)||!rc(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+(Hn(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 wp(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(!Kn(i)||!at(r)||!Ba(r)||![r.nodes,r.edges,r.active_nodes,r.missing_nodes,r.isolated_active_nodes,r.degree_leq_one_active_nodes].every(Fe)||!Kn(r.edges_by_kind)||!Ct(r.coverage_by_type,gp))return;let o=bp(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=vp(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 ic(e){return wp(await ye(tc(e)))}async function oc(e,t){await W(tc(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 kp={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 sc(e){return`${e.source} -${e.kind}-> ${e.target}`}function Ep(e){let[t,...n]=e.edges;return n.map(r=>({op:"remove",code:"duplicate_edge",subject:sc(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: ${sc(t)}`,`group: ${Bn(e)}`],confidence:"high"}))}function Ip(e,t){if(e.code==="duplicate_edge")return e.sample.flatMap(r=>Ep(t.get(r)));let n=kp[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 ac(e,t={}){let{redundancyLimit:n,...r}=t,i=Gn(e,r),o=new Map(ui(e).map(d=>[Bn(d),d])),s=i.findings.flatMap(d=>Ip(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 uc=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,g])=>{let{degree_histogram:v,...b}=g;return[m,b]}));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 Cp(e,t,n,r){return{assembly:t,...n===void 0?{}:{kinds:n},maxDepth:On(r.maxDepth),limit:e==="impact"&&Number(r.limit)===0?0:he(r.limit,"limit")??(r.full===!0?Number.MAX_SAFE_INTEGER:ke.rows),after:r.after?.trim()||void 0,direction:ii(r.direction),maxPaths:he(r.maxPaths,"max-paths"),sample:he(r.sample,"sample")??ke.samples,exemptIsolates:dc(r.exemptIsolate),exemptIsolateTypes:dc(r.exemptIsolateType),saveBaseline:r.saveBaseline===!0,summary:r.summary===!0,unbounded:r.full===!0}}function dc(e){return e===void 0?[]:(Array.isArray(e)?e:[e]).flatMap(t=>t.split(",")).map(t=>t.trim()).filter(t=>t.length>0)}function Sp(e,t,n){let r=e.trim().toLowerCase();if(!Cr.includes(r))throw ys({command_path:"graph",token:r||"<empty>",allowed:Cr});let i=r;if(uc.has(i)&&!t?.trim())throw new h(`graph ${i} requires an item id.`,_.USAGE);if(i==="paths"&&!n?.trim())throw new h("graph paths requires a source and a target item id.",_.USAGE);return i}function yi(e){throw e instanceof TypeError?new h(e.message,_.USAGE):e}function vi(e){return{truncated:e.truncated,cost:{visited_nodes:e.visitedNodes,inspected_edges:e.inspectedEdges}}}function lc(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 h(`Item ${t} not found`,_.NOT_FOUND)}function Tp(e,t,n){let r={ancestors:Ca,descendants:Sa,predecessors:Ta,successors:Ra}[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){yi(s)}let o=vi(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 Rp(e,t,n){let r=xa(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,...vi(r.meta),...n.summary?{}:{paths:r.value.map(i=>({nodes:i.nodes,kinds:i.edges.map(o=>o.kind),length:i.length}))}}}function xp(e,t){let n;try{n=bn(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){yi(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 Dp(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 Ap(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 Op(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 Lp(e){let t=e.assembly.graph,n=e.limit,r=wn(t,{registry:t.registry()}),i=Cs(t);return{subcommand:"analyze",node_count:t.nodes().length,edge_count:t.edges().length,edge_basis:"deduplicated_directed",sample_limit:n,execution:Dp(r,e.summary,n),knowledge:Ap(i,e.summary,n),hierarchy:Op(Rn(e.assembly),e.summary,n)}}function Mp(e,t){let n=Gn(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 Fp(e){let t=e.limit,n={};e.kinds!==void 0&&(n.kinds=e.kinds);let r=Aa(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 Np(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){yi(n)}return{subcommand:"redundancy",redundant_count:t.value.length,...vi(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 $p(e,t){let n=t.limit,r=Oa(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 Pp(e){let t=e.limit,n=$a(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 jp(e){let t=e.limit,n=Na(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 Up(e){let t=e.limit,n=jn(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 Hp(e,t){let n=e.limit,r=ac(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 fc(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 mc(e,t,n,r,i){return e==="analyze"?Lp(r):e==="audit"?Mp(r,i):e==="plan"?Hp(r,i):e==="communities"?Fp(r):e==="redundancy"?Np(r):e==="dominators"?$p(t,r):e==="slack"?Pp(r):e==="centrality"?jp(r):e==="articulation"?Up(r):e==="paths"?Rp(t,n,r):e==="impact"?xp(t,r):Tp(e,t,r)}function Bp(e,t){if(e!=="index"&&(t.rebuild===!0||t.clear===!0))throw new h("--rebuild and --clear apply only to graph index.",_.USAGE);if(e!=="audit"&&t.saveBaseline===!0)throw new h("--save-baseline applies only to graph audit.",_.USAGE);if(e==="slack"&&t.kind!==void 0)throw new h("graph slack analyzes every ordering kind; --kind is not supported.",_.USAGE);if(t.rebuild===!0&&t.clear===!0)throw new h("graph index accepts either --rebuild or --clear, not both.",_.USAGE);if(t.full===!0&&t.limit!==void 0)throw new h(`graph ${e} accepts either --full or --limit, not both.`,_.USAGE)}async function Gp(e,t,n,r,i,o){let s="status";if(o.clear===!0&&(await gi(e),s="cleared"),o.rebuild===!0){await gi(e);let c=await pi(e,t),d={assembly:n.assembly,direction:"both",exemptIsolates:[],exemptIsolateTypes:[],saveBaseline:!1,summary:!0,limit:ke.rows,sample:ke.samples,unbounded:!1};for(let l of["analyze","audit"])await hi(e,t,c,fc(l,void 0,void 0,d),mc(l,void 0,void 0,d,i));s="rebuilt"}let a=await nc(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:fi,persist_enabled:_i(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 Kp(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 ic(e);return r&&await oc(e,i),o===void 0?n:{...n,baseline:Ja(o,i)}}async function zp(e,t,n,r,i){try{await hi(e,t,n,r,i)}catch{}}function Vp(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 Gt(o.nodes().filter(f=>!i.has(f)),o.edges().filter(f=>!i.has(f.source)&&!i.has(f.target)),o.registry()),a=Pa(s,n.filter(f=>!i.has(f.id)),{now:x(),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 _E(e,t,n,r,i){let o=Sp(e,t,n);Yt(r.summary===!0,r.full===!0,"--summary");let s=O(process.cwd(),i.path);await U(s);let a=await M(s),c=L(a,D()),d=await fe(s,a.item_format,c.type_to_folder,void 0,a.schema),l=J(a.schema),u=F=>$(F,l);Bp(o,r);let f=z(),p=oi(r.kind,f),m=Dn().lookup(s,xn(d,u,f),()=>Ze(d,u,f)),g=Cp(o,m.assembly,p,r);if(o==="index")return cc(await Gp(s,m.fingerprint,g,d.length,u,r),!1);let v=uc.has(o)?lc(g.assembly,t):void 0,b=o==="paths"?lc(g.assembly,n):void 0,y=fc(o,v,b,g),w=await pi(s,m.fingerprint),E=w.results[y],S=m.memoize(y,()=>E!==void 0?structuredClone(E):mc(o,v,b,g,u)),P=_i(d.length,w.exists);!S.reused&&E===void 0&&P&&await zp(s,m.fingerprint,w,y,S.value);let j=S.value.subcommand==="audit"?await Kp(s,m.fingerprint,S.value,g.saveBaseline):S.value;return j.cache={fingerprint:m.fingerprint.slice(0,12),assembly:m.assemblyReused?"hit":"miss",result:S.reused?"hit":"miss",durable:E!==void 0?"hit":P?"miss":"off"},Vp(j,g,d,u),cc(j,g.summary,"result_rows")}import bi from"node:fs/promises";import wi 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 pc=8388608,qp=new Set(["resolved","failed"]),Wp=[{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 ge(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ki(e){return Wp.find(t=>t.matches(e))?.kind}function hc(e){let t=new Map,n=0,r=0;return{entries:e.map(i=>{let o=ge(i.agent_provenance)?i.agent_provenance:void 0;if(o===void 0||!Xo(i).ok)return i;let s={},a=!1;for(let[d,l]of Object.entries(o)){let u=ge(l)?ki(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,Jo(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 gc(e){let t=[];for(let n of await _c(e)??[])try{let r=await bi.readFile(wi.join(e,"history",n),"utf8");for(let i of r.split(`
|
|
2
|
-
`)){if(i.trim().length===0)continue;let o=yc(i);if(!(o===null||!ge(o.agent_provenance))&&Object.values(o.agent_provenance).some(s=>ge(s)&&ki(s.value)!==void 0)){t.push(n.slice(0,-6));break}}}catch{}return t}async function _c(e){try{return(await bi.readdir(wi.join(e,"history"))).filter(t=>t.endsWith(".jsonl")).sort()}catch{return null}}async function Yp(e,t,n){let r;try{r=await bi.open(wi.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 yc(e){try{let t=JSON.parse(e);return ge(t)?t:null}catch{return null}}function Xp(e,t,n){let r=typeof e.agent_harness=="string"?e.agent_harness:void 0;if(r===void 0)return;let i=ge(e.agent_provenance)?e.agent_provenance:{};if(Object.entries(i).forEach(([s,a])=>{if(!ge(a))return;let c=ki(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)}),!ge(e.context))return;let o=e.context.agent_provenance_outcomes;ge(o)&&Object.entries(o).forEach(([s,a])=>{if(!ge(a)||typeof a.resolver!="string"||!qp.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 Jp(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=yc(a);if(c===null){o.malformed_events+=1;continue}if(typeof c.ts=="string"&&Qt(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)}Xp(c,t,n)}return{eventsRead:s,truncated:!1}}function Qp(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 EE(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:pc,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 _c(e);c===null&&(n.unreadable_sources+=1);for(let u of c??[]){let f=await Yp(e,u,Math.max(0,pc-s));if(f===null){n.unreadable_sources+=1;continue}s+=f.bytesRead;let p=Jp(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:Qp(d,l,n.complete),events_read:o,truncated:a}}import Zp 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]="f6def6d2-fbf3-55ce-8654-0c4e76d78a2a")}catch{}})();var eh=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?eh:e}function xe(e){return re(k(e===void 0?{pm_item_scalar_presence:"missing"}:{pm_item_scalar_presence:"present",value:e}))}function Ei(e,t){let n=Ke(e);if(n)throw new h(`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 h(`History merge input (${t}) contains invalid JSON at line ${i+1}.`,_.GENERIC_FAILURE)}}return r}function oe(e){return k({ts:e.ts,author:e.author,op:e.op,patch:e.patch,message:e.message??null})}function th(e,t){let n=Math.min(e.length,t.length),r=0;for(;r<n&&oe(e[r])===oe(t[r]);)r+=1;return r}function nh(e,t,n,r){let i=[...e,...n],o=new Map(i.map((u,f)=>[u,f])),s=new Map(i.map((u,f)=>[oe(u),f])),a=i.map(()=>new Set);for(let u of[e,t]){let f=u.map(p=>o.get(p)??s.get(oe(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],g=i[p],v=C(m.ts,g.ts),b=oe(m),y=oe(g);return v||Number(r.has(y))-Number(r.has(b))});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 h("History union cannot preserve contradictory original branch event orders; leave the file unresolved for manual recovery.",_.GENERIC_FAILURE);return l}function vc(e){return{entries:e,positions:new Map(e.map((t,n)=>[oe(t),n])),index:-1,document:ts()}}function xi(e,t){let n=t??e.index;for(;e.index<n;){let r=Lr(e.document,e.entries[e.index+1].patch);if(!r.ok)throw new h("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 bc(e,t){if(t!==void 0&&t>e.index+1)throw new h("History union cannot attribute multiple original branch events to one semantic identity; preserve the source histories for manual recovery.",_.GENERIC_FAILURE);return xi(e,t)}function rh(e,t,n){if(n===0)return;let r=vc(e),i=vc(t),o=xi(r,n-1);xi(i,n-1);let s=0,a=new Set([...kc,...Ec]);return(c,d)=>{if(s++<n)return c.patch;let l=oe(c),u=bc(r,r.positions.get(l)),f=bc(i,i.positions.get(l)),p=dn(c.patch).filter(y=>{let[w,E]=y.path.slice(1).split("/");return w!=="metadata"||!a.has(E)}),m=Lr(d,p);if(!m.ok)throw new h("History union cannot rebase a scalar patch onto the merged replay position; leave the file unresolved for manual recovery.",_.GENERIC_FAILURE);let g=Sc(o.metadata,u.metadata,f.metadata,"ours","latest_document_update",String(u.metadata.updated_at),String(f.metadata.updated_at)),v=m.document;for(let y of a)Object.hasOwn(g.merged,y)?v.metadata[y]=g.merged[y]:delete v.metadata[y];let b=cn({metadata:v.metadata,body:v.body});return Zp.compare(d,b)}}function FE(e,t,n){let r=Ei(e,"base"),i=Ei(t,"ours"),o=Ei(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(oe)).size>1)throw new h("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=th(i,o);if(a===i.length&&a===o.length)return{merged:Ae(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:Ae(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:Ae(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(oe)),l=o.slice(a).filter(p=>!d.has(oe(p))),u=nh(c,o.slice(a),l,d),f=ln([...i.slice(0,a),...u],void 0,{continuousHashSurface:!0,projectPatch:rh(i,o,a)});if(f.skippedOps>0)throw new h(`History union cannot preserve ${f.skippedOps} patch operation(s) after deterministic suffix ordering; leave the file unresolved for manual recovery.`,_.GENERIC_FAILURE);return{merged:Ae(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 Ii(e,t){let n=Ke(e);if(n)throw new h(`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 h(`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 h(`Relationship merge input (${t}) line ${i+1} is not a relationship event (eventId + sequence required).`,_.GENERIC_FAILURE);r.push(a)}return r}function zn(e){return e.length===0?"":`${e.map(t=>JSON.stringify(t)).join(`
|
|
5
|
-
`)}
|
|
6
|
-
`}function ih(e){return e.map((t,n)=>({...t,sequence:n+1}))}function NE(e,t,n){Ii(e,"base");let r=Ii(t,"ours"),i=Ii(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:zn(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:zn(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:zn(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 v=C(f.timestamp,p.timestamp);if(v!==0)return v}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),g=c.has(p.eventId);return m!==g?Number(g)-Number(m):0}),u=ih([...r.slice(0,s),...l]);return{merged:zn(u),strategy:"union_reanchor",common_entries:s,entries_from_ours:a.length,entries_from_theirs:d.length,entries_total:u.length,reanchored:!0}}var kc=["tags","dependencies","comments","notes","learnings","files","tests","test_runs","docs","reminders","events"],Ec=["acceptance_criteria"],oh=["updated_at"];function Ne(e,t){return e===void 0||t===void 0?e===void 0&&t===void 0:k(e)===k(t)}function wc(e,t,n){let r=l=>Array.isArray(l)?l:[],i=new Set(r(e).map(l=>k(l))),o=r(t),s=new Set(o.map(l=>k(l))),a=r(n),c=new Set(a.map(l=>k(l))),d=o.filter(l=>{let u=k(l);return!i.has(u)||c.has(u)});for(let l of a){let u=k(l);!s.has(u)&&!i.has(u)&&d.push(l)}return d}function Tt(e){if(typeof e!="object"||e===null||Array.isArray(e))return k(e);let{provenance:t,...n}=e;return k(n)}function sh(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 ah(e,t,n){let r=l=>Array.isArray(l)?l:[],i=new Set(r(e).map(Tt)),o=r(t),s=new Set(o.map(Tt)),a=r(n),c=new Set(a.map(Tt)),d=o.filter(l=>{let u=Tt(l);return!i.has(u)||c.has(u)});for(let l of a){let u=Tt(l);!s.has(u)&&!i.has(u)&&d.push(sh(l))}return d}function ch(e,t){return C(String(e),String(t))>=0?e:t}function Ic(e,t,n,r){return Ne(t,n)?{value:t,from_theirs:!1,conflict:!1}:Ne(e,t)?{value:n,from_theirs:!0,conflict:!1}:Ne(e,n)?{value:t,from_theirs:!1,conflict:!1}:{value:r==="theirs"?n:t,from_theirs:r==="theirs",conflict:!0}}function Cc(e,t,n,r,i,o,s){let a=Ic(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=k(T(n)).localeCompare(k(T(t)))<0;return{value:d?n:t,from_theirs:d,conflict:!0,resolution_basis:"stable_value_tiebreak",retained_side:d?"theirs":"ours"}}function Ci(e){return{...e.metadata}}function Si(e,t,n){try{let r=$o(Fo(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 h&&r.context?.code==="item_format_version_unsupported"?r:new h(`Item merge input (${t}) is not a readable item document: ${String(r)}`,_.GENERIC_FAILURE)}}function dh(e){if(!e.unionFieldSet.has(e.field))return!1;let t=e.field==="tests"?ah(e.baseValue,e.oursValue,e.theirsValue):e.field==="acceptance_criteria"?wc(pn(e.baseValue),pn(e.oursValue),pn(e.theirsValue)).join("; "):wc(e.baseValue,e.oursValue,e.theirsValue);return e.accumulator.merged[e.field]=t,Ne(t,e.oursValue)||e.accumulator.unionFields.push(e.field),!0}function lh(e){let t=Cc(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 Sc(e,t,n,r,i,o,s){let a=new Set([...kc,...Ec]),c=new Set(oh),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(!dh({field:u,baseValue:f,oursValue:p,theirsValue:m,unionFieldSet:a,accumulator:l})){if(c.has(u)){l.merged[u]=ch(p,m);continue}lh({field:u,baseValue:f,oursValue:p,theirsValue:m,preferred:r,conflictResolution:i,oursUpdatedAt:o,theirsUpdatedAt:s,accumulator:l})}}return l}function $E(e,t,n,r={}){let i=r.preferred??"ours",o=r.conflictResolution??"preferred_side",s=Si(t,"ours",r),a=Si(n,"theirs",r);if(e.trim().length===0)throw new h("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=Si(e,"base",r);if(c.metadata.id!==s.metadata.id||c.metadata.id!==a.metadata.id)throw new h("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=Ci(c),l=Ci(s),u=Ci(a),{merged:f,conflictFields:p,fieldsFromTheirs:m,unionFields:g,conflictDecisions:v}=Sc(d,l,u,i,o,s.metadata.updated_at,a.metadata.updated_at),b=Cc(c.body,s.body,a.body,i,o,s.metadata.updated_at,a.metadata.updated_at);b.conflict?(p.push("body"),v.push({field:"body",base:T(c.body),ours:T(s.body),theirs:T(a.body),retained:T(b.value),discarded:T(b.from_theirs?s.body:a.body),retained_side:b.retained_side,resolution_basis:b.resolution_basis})):b.from_theirs&&m.push("body");let y=f;return y.pm_format_version=Mo(Math.max(...[c.metadata,s.metadata,a.metadata,y].map(Lo))),{merged:No({metadata:y,body:b.value},r),conflict_fields:p,fields_from_theirs:m,union_fields:g,conflict_decisions:v,requested_preference:i,requested_preference_applied:o==="preferred_side",conflict_resolution:o}}function Ti(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Ri(e,t){let n=Ke(e);if(n)throw new h(`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 h(`JSON merge input (${t}) is not valid JSON.`,_.GENERIC_FAILURE)}}function uh(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=k(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=k(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 fh(e,t,n,r,i,o,s){if(!Ti(t)||!Ti(n))return null;let a=Ti(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=mh(a,t,n,l,r,u,o,s);f!==void 0&&(c[l]=f)}return c}function Tc(e,t,n,r,i,o,s){if(Ne(t,n))return t;let a=uh(e,t,n);if(a!==null)return a.acceptedTheirs&&s.push(i),a.merged;let c=fh(e,t,n,r,i,o,s);if(c!==null)return c;let d=Ic(e,t,n,r);return d.conflict?o.push(i):d.from_theirs&&s.push(i),d.value}function mh(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 Tc(e[r],t[r],n[r],i,o,s,a);if(c){if(l&&Ne(e[r],t[r])){a.push(o);return}return l?(s.push(o),i==="theirs"?void 0:t[r]):t[r]}if(!(l&&Ne(e[r],n[r])))return l?(s.push(o),i==="theirs"?n[r]:void 0):(a.push(o),n[r])}function PE(e,t,n,r={}){let i=r.preferred??"ours",o=Ri(e,"base"),s=Ri(t,"ours"),a=Ri(n,"theirs"),c=[],d=[],l=Tc(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 Fh}from"node:child_process";import{randomUUID as Nh}from"node:crypto";import{readdir as $h,stat as Ph}from"node:fs/promises";import H from"node:path";import{promisify as jh}from"node:util";import qn from"node:path";import{execFile as ph}from"node:child_process";import{createHash as Rc}from"node:crypto";import{readdir as hh}from"node:fs/promises";import gh from"node:path";import{promisify as _h}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 Ee=_h(ph),Vn=/^[a-f0-9]{40}(?:[a-f0-9]{24})?$/u;async function VE(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 Ee("git",["rev-parse","--path-format=absolute","--git-path",`${o}/orig-head`],{cwd:e,timeout:1e4}),a=(await ft(s.trim(),128))?.trim();if(a===void 0||!Vn.test(a))continue;let{stdout:c}=await Ee("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 Ee("git",["rev-parse","HEAD","ORIG_HEAD"],{cwd:e,timeout:1e4}),[s,a]=o.trim().split(/\r?\n/u);if(s!==a||!Vn.test(s))return;let{stdout:c}=await Ee("git",["rev-parse","--verify",`${s}:${i}`],{cwd:e,timeout:1e4}),d=c.trim(),l=Rc(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 xc(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"&&Vn.test(t.original_head)&&typeof t.original_blob=="string"&&Vn.test(t.original_blob)}async function Dc(e,t,n,r){if(r!==void 0&&Rc(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 Ee("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 hh(i.trim())).some(d=>o.has(d)))return!1;let{stdout:s}=await Ee("git",["rev-parse","HEAD"],{cwd:e,timeout:1e4});if(s.trim()!==n.original_head)return!1;let{stdout:a}=await Ee("git",["rev-parse","--verify",`HEAD:${t}`],{cwd:e,timeout:1e4});if(a.trim()!==n.original_blob)return!1;let{stdout:c}=await Ee("git",["hash-object","--",gh.resolve(e,t)],{cwd:e,timeout:1e4});return c.trim()!==n.original_blob?!1:(await Ee("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 yh=/^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$/u,vh=/^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/u,Yn=2048,bh=64,wh=1e5,kh=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 Xn(e){return yh.test(e)}var Eh=new Set(["field","base","ours","theirs","retained","discarded","retained_side","resolution_basis"]),Jn="bounded_non_sensitive_scalars_v1",Ih=new Set(["open","in_progress","blocked","closed","canceled"]),Ch=new Set(["risk","confidence","severity"]),Sh=new Set(["low","medium","high","critical"]),Oc=new Map([["priority",new Set([0,1,2,3,4].map(k))],["status",new Set([...Ih].map(k))],...[...Ch].map(e=>[e,new Set([...Sh].map(k))])]);function _e(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Lc(e,t){return Object.keys(e).every(n=>t.has(n))}function Wn(e){return Array.isArray(e)&&e.length<=Yn&&e.every(t=>typeof t=="string"&&t.length>0&&t.length<=256)}function Rt(e){let t=[{value:e,depth:0}],n=0;for(;t.length>0;){let r=t.pop();if(n+=1,n>wh||r.depth>bh)return!1;if(Array.isArray(r.value))for(let i of r.value)t.push({value:i,depth:r.depth+1});else if(_e(r.value))for(let i of Object.values(r.value))t.push({value:i,depth:r.depth+1})}return!0}function Mc(e){if(!_e(e))return!1;let t=[void 0,"ours","theirs"],n=[void 0,"requested_preference","document_updated_at","stable_value_tiebreak"];return[Lc(e,Eh),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"),Rt(e.base),Rt(e.ours),Rt(e.theirs),Rt(e.retained),Rt(e.discarded),t.includes(e.retained_side),n.includes(e.resolution_basis)].every(Boolean)}function Th(e){if(!_e(e))return!1;let t=Object.entries(e);return t.length<=Yn&&t.every(([n,r])=>n.length>0&&n.length<=256&&typeof r=="string"&&/^[a-f0-9]{64}$/u.test(r))}function Rh(e,t){if(typeof e!="string"||e.length===0||e.length>4096||e.includes("\0")||e.includes("\\")||qn.posix.isAbsolute(e))return!1;let n=qn.posix.normalize(e);return n!==".."&&!n.startsWith("../")&&qn.posix.basename(n,qn.posix.extname(n))===t}function xh(e){return!Wn(e.fields_from_theirs)||!Wn(e.union_fields)||!Array.isArray(e.decisions)||e.decisions.length>Yn||!e.decisions.every(Mc)?!1:e.merged_field_hashes===void 0||Th(e.merged_field_hashes)}function Dh(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===Jn)&&i.includes(e.evidence_source)}function Ah(e){return typeof e.created_at=="string"&&Rr(e.created_at)&&(e.reconciled_at===void 0||typeof e.reconciled_at=="string"&&Rr(e.reconciled_at))}function Ac(e,t){if(!_e(t)||er(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||Oc.get(e)?.has(k(r))===!0)&&xe(r)===t.pm_value_hash}function Oh(e){if(!e.decisions.every(r=>r.base===null&&r.ours===null&&r.theirs===null&&Ac(r.field,r.retained)&&Ac(r.field,r.discarded)))return!1;let t=e.decisions.reduce((r,i)=>r+(_e(i.retained)&&Object.hasOwn(i.retained,"pm_value")?1:0)+(_e(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===Jn)}function Lh(e){return e.operation!==void 0&&!xc(e.operation)?!1:e.settlement===void 0||e.settlement==="original_git_state_restored"&&e.state==="reconciled"&&e.operation!==void 0}function Mh(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||!Lc(e,kh)?"required_fields":typeof e.id!="string"||!Xn(e.id)?"receipt_id":typeof e.item_id!="string"||!vh.test(e.item_id)?"item_id":Rh(e.item_path,e.item_id)?null:"item_path"}function Qn(e,t){if(!_e(e))return"required_fields";let n=Mh(e);return n!==null?n:Lh(e)?xh(e)?Dh(e)?Ah(e)?t==="durable"&&!Oh(e)?"durable_decisions":null:"timestamps":"enums":"collections":"operation"}function Zn(e){if(!_e(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=>!_e(r)||!Object.hasOwn(r,"retained")||!Object.hasOwn(r,"discarded")?r:{base:T(void 0),ours:T(void 0),theirs:T(void 0),...r})}}function Fc(e){if(!_e(e))return;if(!Wn(e.fields_from_theirs))return"fields_from_theirs";if(!Wn(e.union_fields))return"union_fields";if(!Array.isArray(e.decisions)||e.decisions.length>Yn)return"decisions";let t=e.decisions.findIndex(n=>!Mc(n));return t>=0?`decisions[${t}]`:"merged_field_hashes"}function Di(e,t){return Qn(e,t)===null}function er(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 Ai(e,t){let n=ct(t),r=xe(n?void 0:t);return!n&&(t===null||Oc.get(e)?.has(k(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]="21c15a9e-da38-5fec-9a7d-57556f77ce0a")}catch{}})();var Uh=jh(Fh),Oi=16*1024*1024,tr=100;async function Li(e){try{let{stdout:t}=await Uh("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 Pc(e,t){let n=H.dirname(H.resolve(e,t));for(let r=0;r<12;r+=1){if(await Kt(H.join(n,"settings.json")))return n;let i=H.dirname(n);if(i===n)break;n=i}return null}function nr(e){return H.join(e,"merge-receipts")}function De(e){return`${e}.json`}async function Nc(e){let t;try{t=e.readReceipt?await e.readReceipt(e.receiptPath):await ft(e.receiptPath,Oi)}catch(o){if(je(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=Zn(JSON.parse(t))}catch{throw new Error(`Receipt ${e.receiptId} settlement source is not valid JSON.`)}if(!Di(n,e.evidenceSource)||n.id!==e.receiptId||e.settlement!==void 0&&n.operation===void 0||H.basename(e.receiptPath)!==De(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:Dt(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 xt(e,t=!1){return re(k({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(k(T(n.retained))),discarded_hash:re(k(T(n.discarded)))})):rr(e).decisions}))}function Dt(e){let t=[xt(e)];return e.value_policy===void 0&&(e.value_availability===void 0||e.value_availability==="clone_local")&&t.push(xt(e,!0)),t}function Hh(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 Bh(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 Ve(H.join(n,"history",`${o.item_id}.jsonl`),o.item_id),le(s).ok||(s=[])}catch{s=[]}r.set(o.item_id,s)}let a=o.settlement==="original_git_state_restored",c=k({...rr(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=>k(f)===c)})){let{reconciled_at:d,settlement:l,...u}=o;e.set(o.id,{...u,state:"pending"})}}}function rr(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:er(t.retained)??xe(ct(t.retained)?void 0:t.retained),discarded_hash:er(t.discarded)??xe(ct(t.discarded)?void 0:t.discarded)}))}}async function gI(e){let t=await Li(e.cwd);if(t===null)return null;let n=e.itemPath.trim(),r=/^(['"])(.*)\1$/su.exec(n)?.[2]??n,i=H.basename(r,H.extname(r)),o={version:1,id:Nh(),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:x(),value_availability:"clone_local"};await Er(t),await W(H.join(t,De(o.id)),`${JSON.stringify(o,null,2)}
|
|
9
|
-
`);let s=await Pc(e.cwd,o.item_path);if(s!==null){let a=nr(s),c=o.decisions.map(u=>({field:u.field,base:null,ours:null,theirs:null,retained:Ai(u.field,u.retained),discarded:Ai(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:Jn};await Er(a),await W(H.join(a,De(o.id)),`${JSON.stringify(l,null,2)}
|
|
10
|
-
`)}return o}async function $c(e,t){let n;try{n=await $h(e)}catch(a){let c=await Gh(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>=tr)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},...Xn(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 Kh(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 Gh(e,t,n=Ph){if(!ce(t))return!1;let r=e;for(;;)try{return(await n(r)).isDirectory()}catch(i){if(!ce(i))return!1;let o=H.dirname(r);if(o===r)return!0;r=o}}async function Kh(e,t,n){let r;try{r=await ft(H.join(e,t),Oi)}catch{return{reason:"candidate_unreadable"}}if(r===null)return{reason:"candidate_not_bounded_regular_file"};let i;try{i=Zn(JSON.parse(r))}catch{return{reason:"candidate_invalid_json"}}let o=Qn(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:Fc(i)}:{}};let s=i;if(t!==De(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 zh(e,t,n){if(n.length===0)return[];let{readIndexedReceiptBlobs:r}=await import("./indexed-receipt-blobs-BVSHK4WQ.js"),i=await r(e,nr(t),n.map(o=>De(o.id)),Oi);return n.flatMap(o=>{try{let s=Zn(JSON.parse(i.get(De(o.id))??""));if(Qn(s,"durable")!==null)return[];let a=s,c=Dt(o);return a.id===o.id&&Dt(a).some(d=>c.includes(d))?[o.id]:[]}catch{return[]}})}async function ir(e,t={}){let n=await Li(e),r=n===null?{receipts:[],invalid_evidence_count:0,invalid_evidence:[],invalid_evidence_truncated:!1}:await $c(n,"clone_local"),i=t.pmRoot??H.join(e,".agents","pm"),o=await $c(nr(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?Dt(u):[xt(u)]).includes(xt(f))){s.delete(u.id),a+=1,r.invalid_evidence.length+o.invalid_evidence.length+c.length<tr&&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:Hh(u,f))}await Bh(s,o.receipts,i);let d=o.receipts.filter(u=>s.has(u.id)),l=new Set(await zh(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,tr),invalid_evidence_truncated:r.invalid_evidence_truncated||o.invalid_evidence_truncated||r.invalid_evidence_count+o.invalid_evidence_count+a>tr,clone_local_evidence_resolved:n!==null}}async function Vh(e,t={}){return(await ir(e,t)).receipts}function jc(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 h(`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 _I(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 yI(e,t,n={}){let r=await Li(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(!Di(t,i))throw new Error("Merge receipt trusted settlement input failed schema validation.");let o=x(),s=H.join(r,De(t.id)),a=await Pc(e,t.item_path),c=a===null?null:H.join(nr(a),De(t.id)),d=(await Promise.all([Nc({receiptPath:s,receiptId:t.id,evidenceSource:"clone_local",reconciledAt:o,settlement:n.settlement}),...c===null?[]:[Nc({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)?[xt(t)]:Dt(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 W(l.path,l.content)}async function vI(e){let t=await Vh(e.cwd??process.cwd(),{...e,includeLossless:!0});return{ok:!0,count:t.length,receipts:t,generated_at:x()}}async function bI(e){let t=await ir(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:x()}}import qh 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 Mi(e){if(!e.itemDocument)return[];let t=e.itemDocument.metadata?.assignee?.trim();if(!t||t===e.author||e.force)return[];let n=as(e.settings);if(n.ownership_enforcement==="strict")throw new h(`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 Wh(e){let t=await ye(e.subject.historyPath);if(t!==e.historyRawBeforeLock)throw new h(`History for ${e.subject.id} changed while waiting for lock; retry ${e.operation}.`,_.CONFLICT);let n=await ue(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 h(`Item ${e.subject.id} changed while waiting for lock; retry ${e.operation}.`,_.CONFLICT);return{historyRawUnderLock:t,locatedUnderLock:n,loadedItemUnderLock:r}}async function or(e){let t=e.writeHistoryRaw??W;try{await t(e.historyPath,e.nextHistoryRaw),await Ar(e.historyPath)}catch(n){try{e.historyRawUnderLock===null?await qh.rm(e.historyPath,{force:!0}):await t(e.historyPath,e.historyRawUnderLock),await Ar(e.historyPath)}catch(r){throw new AggregateError([n,r],`History rewrite failed and rollback also failed: ${String(n)}`)}throw n}}async function Uc(e){let t=[...Mi({itemDocument:e.itemDocument,subjectId:e.subject.id,author:e.author,force:e.force,settings:e.settings})],n=await Ge(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 Wh({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 Hc(e){let{subject:t,settings:n,operation:r,options:i}=e,o=await Ko(t.historyPath,t.id);if(o.raw===null)throw new h(`No history stream exists for ${t.id}.`,_.NOT_FOUND);if(o.entries.length===0)throw new h(`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=we(i.author,n.author_default),c=await e.transform({raw:o.raw,entries:o.entries,verification:Mr(o.entries),loadedItem:s,author:a}),d=Mr(c.rewrittenEntries);if(!d.ok)throw new h(`${r} produced an invalid rewritten chain (${d.errors.join(", ")}).`,_.GENERIC_FAILURE);let l=c.changed&&!i.dryRun?await Uc({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 or({historyPath:t.historyPath,nextHistoryRaw:Ae(c.rewrittenEntries),historyRawUnderLock:u.historyRawUnderLock})},applyPostRewrite:c.afterWrite??(async()=>qt({path:t.historyPath,scope:"project",op:`${r.replace("-","_")}:history`}))}):[];return c.report({verification:d,warnings:l})}import{isUtf8 as Yh}from"node:buffer";import{readFile as Xh}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 Jh(e){let t;try{t=JSON.parse(e)}catch{if(e.trimStart().startsWith("{")&&e.includes("}"))throw new h("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 h("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 h("History salvage requires complete history records before the invalid tail.",_.CONFLICT,{code:"history_salvage_refused"});return n}function Qh(e){if(Ke(e))throw new h("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=Jh(a);if(c===null){r===void 0&&(r=n,i=s+1),n+=a.length+1;continue}if(r!==void 0)throw new h("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=le(t);if(!o.ok||o.item_hash_version===void 0)throw new h("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 Zh(e,t,n){if(!e.located)return{itemRaw:null,document:n};let r=await ps(e.located,{schema:t.schema});return{itemRaw:r.raw,document:r.document??n}}async function Bc(e){let t;try{t=await Xh(e)}catch(n){if(ce(n))return null;throw n}if(!Yh(t))throw new h("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 Gc(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 h("Tail salvage cannot be combined with other repair modes.",_.USAGE);let o=await Bc(t.historyPath);if(o===null)throw new h(`No history stream exists for ${t.id}.`,_.NOT_FOUND);await Wt({path:t.historyPath,scope:"project"});let s=Qh(o),a=un(s.entries,s.entries.length-1),c=ns(a);if(typeof a.metadata.id=="string"&&a.metadata.id!==t.id)throw new h("History belongs to another item; salvage refused.",_.CONFLICT,{code:"history_salvage_refused"});let d=await Zh(t,n,c),l=Mi({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 Ge(e.pmRoot,t.id,n.locks.ttl_seconds,i,!!r.force,n.governance.force_required_for_stale_lock,n.locks.wait_ms);try{let g=await Bc(t.historyPath),v=await ue(e.pmRoot,t.id,n.id_prefix,n.item_format,e.typeRegistry.type_to_folder),b=v?await ye(v.itemPath):null;if(g!==o||b!==d.itemRaw)throw new h("History or item changed while waiting for salvage lock; retry.",_.CONFLICT);let y=sn({...es({hashAlgorithm:be(s.entries.at(-1).hash_algorithm),nowIso:x(),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 or({historyPath:t.historyPath,historyRawUnderLock:o,nextHistoryRaw:`${s.prefix}${JSON.stringify(y)}
|
|
12
|
-
`}),l.push(...await qt({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:x()}}import{realpath as rd}from"node:fs/promises";import Ni from"node:path";import id from"fast-json-patch";import At from"node:fs/promises";import{createHash as eg}from"node:crypto";import zc 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 Fi=new Set([void 0,...Oo]),Vc=11,tg="history-drift-cache.json";function qc(e){return zc.join(e,"runtime",tg)}async function ng(e){try{let t=await At.readFile(qc(e),"utf8"),n=JSON.parse(t);return n.version!==Vc||n.history_item_hash_version!==on||typeof n.entries!="object"||n.entries===null||Object.values(n.entries).some(r=>typeof r.chain_ok!="boolean"||typeof r.latest_hash_comparable!="boolean"||!Fi.has(r.hash_algorithm)||!qe.includes(r.item_hash_version)&&r.version_skew!==!0||r.chain_ok&&r.version_skew!==!0&&qe.includes(r.item_hash_version)&&!r.latest_hash_comparable)?null:n}catch{return null}}function Wc(){return{missingStreams:[],unreadableStreams:[],hashMismatches:[],chainMismatches:[],versionSkews:[],workspaceStateMismatches:[],workspaceStateMissing:[],workspaceStateUnreadable:[]}}function Yc(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?[Z]:[]])].sort((n,r)=>n.localeCompare(r));return{...e,driftedItems:t}}async function rg(e,t,n,r,i){let o=os(e),s;try{s=await At.stat(o)}catch(d){return ce(d)||i.unreadableStreams.push(Z),!1}let a=i.missingStreams.length,c=await Xc({itemId:Z,historyPath:o,stat:s,cached:t[Z],verifyCacheHitByContent:r,accumulator:i});return c.verification?(c.verification.versionSkew&&i.versionSkews.push(Z),c.verification.chainOk||i.chainMismatches.push(Z),n[Z]={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 ig(e){return!Fi.has(e.hash_algorithm)||e.item_hash_version!==void 0&&!qe.includes(e.item_hash_version)}async function og(e){let t=await At.readFile(e,"utf8"),n=eg("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=le(r),s=r.some(ig),a=r[r.length-1],c=Fi.has(a.hash_algorithm),d=a.item_hash_version,l=d!==void 0&&qe.includes(d),u=l?d:o.item_hash_version;return{latestAfterHash:i,hashAlgorithm:c?be(a.hash_algorithm):void 0,identityDiscontinuities:Or(r),chainOk:o.ok,versionSkew:s,latestHashComparable:c&&u!==void 0&&(!s||l||d===void 0),contentHash:n,itemHashVersion:u??on}}function sg(e,t){return e!==void 0&&e.mtime_ms===t.mtimeMs&&e.ctime_ms===t.ctimeMs&&e.size===t.size}async function Kc(e,t,n){try{return await og(t)||(n.missingStreams.push(e),null)}catch{return n.unreadableStreams.push(e),null}}function ag(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 Xc(e){let t=typeof e.cached?.content_hash=="string"&&e.cached.content_hash.length>0?e.cached.content_hash:void 0;if(!(sg(e.cached,e.stat)&&t!==void 0)||!e.cached||!e.cached.chain_ok)return{verification:await Kc(e.itemId,e.historyPath,e.accumulator),cacheDirty:!0};if(e.verifyCacheHitByContent){let n=await Kc(e.itemId,e.historyPath,e.accumulator);return{verification:n,cacheDirty:!ag(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&&qe.includes(e.cached.item_hash_version),contentHash:t,itemHashVersion:e.cached.item_hash_version,hashAlgorithm:e.cached.hash_algorithm},cacheDirty:!1}}async function Jc(e,t,n,r){let i,o;try{i=He(e,t.id),o=await At.stat(i)}catch(d){return(ce(d)?r.missingStreams:r.unreadableStreams).push(t.id),!1}let s=await Xc({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&&(an({metadata:c,body:a},s.verification.itemHashVersion,s.verification.hashAlgorithm).includes(s.verification.latestAfterHash)||r.hashMismatches.push(t.id)),s.cacheDirty}async function cg(e,t){if(!(t.unreadableStreams.includes(Z)||t.chainMismatches.includes(Z)||t.versionSkews.includes(Z)))try{let n=await ss(e);t.workspaceStateMismatches.push(...n.mismatched_documents),t.workspaceStateMissing.push(...n.missing_documents),t.workspaceStateUnreadable.push(...n.unreadable_documents)}catch{t.unreadableStreams.push(Z)}}async function mC(e,t){let n=Wc();return await Jc(e,t,{previousEntries:{},nextEntries:{},verifyCacheHitByContent:!0},n),Yc(n)}async function Qc(e,t,n={}){let r=Wc(),i=(await ng(e))?.entries??{},o={},s=!1,a=n.cacheHitVerification!=="metadata",c={previousEntries:i,nextEntries:o,verifyCacheHitByContent:a};for(let l of t)await Jc(e,l,c,r)&&(s=!0);let d=await rg(e,i,o,a,r);if(s||=d,await cg(e,r),s||Object.keys(i).length!==Object.keys(o).length){let l=qc(e);try{await At.mkdir(zc.dirname(l),{recursive:!0}),await W(l,JSON.stringify({version:Vc,history_item_hash_version:on,entries:o}))}catch{}}return Yc(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 Zc(e,t){return t==="body"?e.body:e.metadata[t]}function dg(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 lg(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 ed(e,t){if(!Array.isArray(t)||!["comments","docs","tests"].includes(e)||!t.every(r=>dg(e,r)))return t;let n=t.map(r=>e==="comments"?r:lg(r));return[...new Map(n.map(r=>[k(r),r])).values()]}function $i(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)&&$i(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)&&$i(i,n[r]))}function td(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 dn(o.patch))s.add(hn(c.path)),c.from&&s.add(hn(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 ug(e,t,n){let r=id.compare(t,n);if(r.length===0)return;let i=new Set;for(let m of r)i.add(hn(m.path));let o=new Set([...i].filter(m=>$i(ed(m,Zc(t,m)),ed(m,Zc(n,m))))),s=new Set([...i].filter(m=>!o.has(m))),a=td(e,s),c=td(e,o),d=[...i].sort((m,g)=>m.localeCompare(g)),l=[...s].sort((m,g)=>m.localeCompare(g)),u=[...o].sort((m,g)=>m.localeCompare(g)),f=[...new Set(a.map(m=>m.author))].sort((m,g)=>m.localeCompare(g)),p=[...new Set(c.map(m=>m.author))].sort((m,g)=>m.localeCompare(g));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 fg(e){try{return await rd(e)}catch{return null}}async function mg(e){if(await fg(Ni.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[xe(s),re(k(T(s)))].includes(n[o])})?{receipt:e.receipt,declaredFields:t}:null}async function pg(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 rd(e.itemPath),r=[];for(let s of t){let a=await mg({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 nd(e,t,n,r){if(e===void 0)return;let{receipt:i,gitWorkspaceRoot:o}=e,s=t.currentItemPath===null?null:Ni.relative(o,t.currentItemPath).split(Ni.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 Dc(o,i.item_path,i.operation,t.currentItemRawBeforeLock))throw new h("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 hg(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 ir(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))??[];jc(t,n,e.options.dryRun===!0);let i=e.options.mergeReceiptProof?await pg({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 h(`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(rr)}}:e.options.auditContext}}function gg(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=cn(i.document),a=o[o.length-1].after_hash;return{currentItemReplay:s,currentItemPath:r,matchedChainBefore:We(s,n,be(o.at(-1)?.hash_algorithm)).includes(a),currentItemRawBeforeLock:i.raw,loadedItem:i}}function _g(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 yg(e){let t=[...e.reanchorEntries];if(!e.changed)return{rewrittenEntries:t,auditEntryAdded:!1};let n=e.reconcileNeeded&&e.currentItemReplay?e.currentItemReplay:e.finalReplay,r=be(e.reanchorEntries.at(-1)?.hash_algorithm),i=We(e.finalReplay,e.itemHashVersion,r),o=e.reanchorEntries[e.reanchorEntries.length-1].after_hash,s=i.indexOf(o),a=We(n,e.itemHashVersion,r),c={hash_algorithm:r,ts:x(),author:e.author,op:e.auditOperation,patch:e.reconcileNeeded&&e.currentItemReplay?id.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(sn({...c,event_class:zo(c)})),{rewrittenEntries:t,auditEntryAdded:!0}}function vg(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 bg(e,t,n){let{pmRoot:r,settings:i,typeRegistry:o}=await $r(n.path),s=await yn(r,e,i,o.type_to_folder);return t.salvageTail===!0?Gc({pmRoot:r,subject:s,settings:i,typeRegistry:o,options:t,author:we(t.author,i.author_default)}):Hc({pmRoot:r,subject:s,settings:i,typeRegistry:o,operation:"history-repair",options:t,transform:a=>kg({pmRoot:r,subject:s,options:t},a)})}function wg(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"&&k(i.context)===k(n));return e.forceAuditEntry===!0&&!r}async function kg(e,t){let{pmRoot:n,subject:r,options:i}=e,o=t.entries,s=t.verification,a=le(o),c=i.normalizeProvenance?hc(o):{entries:o,receipt:{changed:!1,events_changed:0,observations_removed:0,invalid_values:[]}},d=is(c.entries),l=new Set(c.entries.map(N=>N.item_hash_version).filter(N=>N!==void 0)),u=ln(c.entries,d),f=gg(r,t,d);await nd(i.mergeAbandonmentProof,f,s.ok,u);let p=u.finalDocument,m=We(p,d),g=!1;if(f.currentItemReplay!==null){let N=We(f.currentItemReplay,d);g=!m.some((B,Y)=>B===N[Y])}let v=g&&f.currentItemReplay?ug(u.entries,p,f.currentItemReplay):void 0,{mergeReceiptProof:b,effectiveAuditContext:y}=await hg({options:i,pmRoot:n,subjectId:r.id,itemReplayContext:f,reconciliation:v}),w=[u.entriesRehashed>0,u.entriesPatchRepaired>0,g,wg(i,u.entries,y),c.receipt.changed].some(Boolean),E=t.author,S=!!i.dryRun,P=_g({message:i.message,entriesRehashed:u.entriesRehashed,entriesPatchRepaired:u.entriesPatchRepaired,reconcileNeeded:g}),{rewrittenEntries:j,auditEntryAdded:F}=yg({reanchorEntries:u.entries,changed:w,reconcileNeeded:g,currentItemReplay:f.currentItemReplay,finalReplay:p,author:E,message:P,auditOperation:i.auditOperation??"history_repair",auditContext:c.receipt.changed?{...y,provenance_normalization:c.receipt}:y,itemHashVersion:d,explicitItemHashVersion:u.explicitItemHashVersion}),Ce=vg(w,u.skippedOps,v);return{changed:w,rewrittenEntries:j,beforeWrite:async()=>nd(i.mergeAbandonmentProof,f,s.ok,u),report:({verification:N,warnings:B})=>({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:g,audit_entry_added:F,verify_ok:N.ok,verify_errors:N.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},...v?{reconciliation:v}:{},...b?{merge_receipt_proof:b}:{},warnings:[...new Set([...Ce,...B])].sort((Y,X)=>Y.localeCompare(X)),generated_at:x()})}}function PC(e,t){if(t&&e!==void 0)throw new h("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 h("history-repair: provide an item <id> or pass --all to repair every drifted stream.",_.USAGE)}async function jC(e,t){if(e.salvageTail===!0)throw new h("Tail salvage requires one explicit item ID; --all is not supported.",_.USAGE);let{pmRoot:n,settings:r,typeRegistry:i}=await $r(t.path),o=[],s=await mn(n,r.item_format,i.type_to_folder,o,r.schema,{forceSourceScan:!0}),a=await Qc(n,s),c=e.normalizeProvenance?await gc(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 bg(p,{...e,auditContext:e.auditContextById?.[p],auditContextById:void 0,mergeReceiptProof:e.mergeReceiptProofById?.[p]??e.mergeReceiptProof,mergeReceiptProofById:void 0},t),g=m.changed?"repaired":"skipped_clean";f[g]+=1,u.push(...m.warnings.map(v=>`${p}:${v}`)),l.push({id:p,outcome:g,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 Yo(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:x()}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="1433b417-e41f-5963-a551-094132afd717")}catch{}})();var od=16;async function sd(e,t,n){let r=L(t,D()).type_to_folder,i=[],o=new Set,s=n;for(;s&&i.length<od;){let a=s.trim().toLowerCase();if(!a||o.has(a))break;o.add(a);let c=await ue(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 zC(e){await Uo({pmRoot:e.pmRoot,principal:e.principal,itemId:e.itemId,lineageIds:await sd(e.pmRoot,e.settings,e.itemId)})}async function VC(e){await Ho(e)}async function qC(e){await Bo({pmRoot:e.pmRoot,principal:e.principal,...e.itemId?{itemId:e.itemId,lineageIds:await sd(e.pmRoot,e.settings,e.itemId)}:{}})}var WC={lineage_depth:od,active_items:64,evidence_rows:32};function ad(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}import{encode as Eg}from"@toon-format/toon";(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]="809a4d75-4915-585d-9fc8-ad3e9ef15b1f")}catch{}})();var Pi=["agenda","day","week","month"],ji=["markdown","toon","json"],Ig=["sun","mon","tue","wed","thu","fri","sat"],Cg=365,Sg=365,ld=28,Tg=1e3;function Ui(e,t){if(e===void 0)return;let n=Number(e);if(!Number.isInteger(n)||n<0)throw new h(`${t} must be a non-negative integer`,_.USAGE);return n}function Rg(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 h("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 h("Calendar include filter must be deadlines|reminders|events|scheduled|all",_.USAGE)}return r}function ud(e,t){let n;for(let r of t){let i=wo(e,r,2);i!==null&&(n===void 0||i<n.distance)&&(n={choice:r,distance:i})}return n?.choice}function xg(e){if(!e)return"agenda";let t=e.trim().toLowerCase();if(!Pi.includes(t)){let n=ud(t,Pi);throw new h(`Calendar view must be one of ${Pi.join("|")}${n?`. Did you mean "${n}"?`:"."}`,_.USAGE)}return t}function Dg(e){if(!e)return;let t=e.trim().toLowerCase();if(!ji.includes(t)){let n=ud(t,ji);throw new h(`Calendar format must be one of ${ji.join("|")}${n?`. Did you mean "${n}"?`:"."}`,_.USAGE)}return t}function tS(e,t){let n=Dg(e.format);if(t.json&&n&&n!=="json")throw new h("Cannot combine --json with --format markdown|toon",_.USAGE);return t.json?"json":n??"markdown"}function Ag(e,t){if(e===void 0)return;let n=Q(e,t);if(!n){let r=t.definitions.map(i=>i.id);throw new h(`Calendar status filter must be one of ${r.join("|")}`,_.USAGE)}return n}function Og(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!t)throw new h("Calendar assignee filter must be one of assigned|unassigned",_.USAGE);if(t!=="assigned"&&t!=="unassigned")throw new h(`Invalid calendar assignee filter "${e}". Allowed: assigned|unassigned`,_.USAGE);return t}function sr(e){return new Date(e).toISOString().slice(0,10)}function fd(e,t){if(!t||t==="UTC")return sr(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 sr(e)}function Ki(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate(),0,0,0,0)).toISOString()}function Ie(e,t){let n=new Date(e);return new Date(n.getTime()+t*24*60*60*1e3).toISOString()}function md(e){let t=new Date(Ki(e)),n=t.getUTCDay(),r=n===0?-6:1-n;return Ie(t.toISOString(),r)}function Lg(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),1,0,0,0,0)).toISOString()}function Mg(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth()+1,1,0,0,0,0)).toISOString()}function Fg(e,t){return C(e,t)>=0?e:t}function cd(e){return Object.fromEntries([...e.entries()].sort(([t],[n])=>t.localeCompare(n)))}function dd(e,t){e.set(t,(e.get(t)??0)+1)}function Ng(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)=>Ue(r)-Ue(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 pd(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 hd(e){return Ig[new Date(e).getUTCDay()]}function $g(e){let t=Date.parse(e);return Number.isFinite(t)?new Date(t).toISOString():null}function Pg(e){let t=new Set;for(let n of e??[]){let r=$g(n);r&&t.add(r)}return t}function jg(e,t,n,r,i){let o=e??Ie(n,-(r??Sg)),s=t??Ie(e??n,i??Cg);return{start:o,end:C(s,o)>0?s:Ie(o,1)}}function Ug(e,t,n,r){let i=t.by_weekday!==void 0?[...t.by_weekday]:[hd(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??Tg,interval:t.interval??1,countLimit:t.count??Number.POSITIVE_INFINITY,until:t.until,excluded:Pg(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)=>Ue(s)-Ue(a)),sortedMonthDays:[...new Set(o)].sort((s,a)=>s-a),occurrences:[],produced:0}}function ar(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 cr(e,t){let n=hd(t),r=new Date(t).getUTCDate(),i=!e.weekdayFilter||e.weekdayFilter.has(n),o=!e.monthDayFilter||e.monthDayFilter.has(r);return i&&o}function Hg(e){let t=e.startAt;for(let n=0;n<e.maxOccurrences&&!(cr(e,t)&&ar(e,t)==="stop");n+=1)t=Ie(t,e.interval);return e.occurrences}function Bg(e,t,n){let r=Ue(n),i=Ie(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 Gg(e){let t=md(e.startAt);for(let n=0;n<e.maxOccurrences;n+=1){let r=Ie(t,n*e.interval*7);for(let i of e.sortedWeekdays){let o=Bg(e,r,i);if(cr(e,o)&&ar(e,o)==="stop")return e.occurrences}}return e.occurrences}function Kg(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=pd(i.getUTCFullYear(),i.getUTCMonth(),o,e.startDate);if(!(!s||!cr(e,s))&&ar(e,s)==="stop")return e.occurrences}}return e.occurrences}function zg(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=pd(i,n,o,e.startDate);if(!(!s||!cr(e,s))&&ar(e,s)==="stop")return e.occurrences}}return e.occurrences}function Vg(e,t,n,r){let i=Ug(e,t,n,r);return t.freq==="daily"?Hg(i):t.freq==="weekly"?Gg(i):t.freq==="monthly"?Kg(i):zg(i)}function gd(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 zi(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 qg(e){return e.deadline?{at:e.deadline,date:sr(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,...zi(e),item_deadline:e.deadline}:null}function Wg(e){return(e.reminders??[]).map(t=>({at:t.at,date:sr(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,...zi(e)}))}function Yg(e,t){if(!t)return null;let n=Date.parse(t)-Date.parse(e);return Number.isFinite(n)&&n>0?n:null}function Xg(e,t,n){return t.recurrence&&n!==null?new Date(new Date(e).getTime()+n).toISOString():t.end_at??null}function Jg(e,t,n,r){let i=Ng(t.recurrence),o=Yg(t.start_at,t.end_at);return(t.recurrence?Vg(t.start_at,t.recurrence,n,r):[t.start_at]).map(s=>({at:s,date:t.all_day===!0?s.slice(0,10):fd(s,t.timezone),kind:"event",reminder_text:t.description??null,event_title:t.title??e.title,event_end:Xg(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,...zi(e)}))}function Qg(e,t,n,r){let i=[];for(let o of e){let s=n.has("deadlines")?qg(o):null;s&&i.push(s),n.has("reminders")&&i.push(...Wg(o));for(let a of n.has("events")?o.events??[]:[])i.push(...Jg(o,a,t,r))}return gd(i)}function Zg(e,t,n,r,i){let o=xs(t.type,n),s=t.tag?.trim().toLowerCase(),a=Cn(t.priority),c=Ag(t.status,r),d=t.assignee?.trim(),l=Og(t.assigneeFilter),u=t.sprint?.trim(),f=t.release?.trim();if(d&&(d.toLowerCase()==="none"||d.toLowerCase()==="null"))throw new h('--assignee no longer accepts "none" or "null". Use --assignee-filter unassigned.',_.USAGE);if(d!==void 0&&l==="unassigned")throw new h("Cannot combine --assignee with --assignee-filter unassigned",_.USAGE);return e.filter(p=>e_(p,{typeFilter:o,tagFilter:s,priorityFilter:a,statusFilter:c,assigneeFilter:d,assigneeModeFilter:l,sprintFilter:u,releaseFilter:f,runtimeFieldFilters:i}))}function e_(e,t){return t_(e,t)&&n_(e,t)&&_n(e,t.runtimeFieldFilters)}function t_(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 n_(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 r_(e,t,n){return!(t&&C(e.at,t)<0||n&&C(e.at,n)>=0)}function Hi(e,t,n){return e.trim().toLowerCase()==="today"?Ki(t):ve(e,new Date(t),n)}function i_(e,t,n){let r=t.date?Hi(t.date,n,"--date"):n,i=t.past===!0,o=t.fullPeriod===!0,s=t.from?Hi(t.from,n,"--from"):void 0,a=t.to?Hi(t.to,n,"--to"):void 0;if(s&&a&&C(s,a)>=0)throw new h("Calendar --from must be before --to",_.USAGE);if(e!=="agenda"&&(t.from!==void 0||t.to!==void 0))throw new h("--from and --to are only supported for --view agenda",_.USAGE);if(e==="agenda")return o_(r,t,n,i,o,s,a);if(e==="day"){let d=Ki(r);return Bi(r,n,i,o,d,Ie(d,1))}if(e==="week"){let d=md(r);return Bi(r,n,i,o,d,Ie(d,7))}let c=Lg(r);return Bi(r,n,i,o,c,Mg(r))}function o_(e,t,n,r,i,o,s){if(i)throw new h("--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 Bi(e,t,n,r,i,o){let s=n||r;return{anchor:e,start:s?i:Fg(i,t),end:o,periodStart:i,periodEnd:o,fullPeriod:s}}function s_(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:gd(r)}))}function a_(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),dd(n,c.item_type),dd(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:cd(n),by_status:cd(r),recurring_events:a}}function c_(e){let t=e.start??"unbounded",n=e.end??"unbounded";return`${t} -> ${n}`}function _d(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 Gi(e){let t=Object.entries(e);return t.length===0?"empty":t.map(([n,r])=>`${n}=${r}`).join(", ")}function d_(e){return e.event_end?e.event_all_day===!0?e.event_end.slice(0,10):e.date===fd(e.event_end,e.event_timezone)?_d(e.event_end,e.event_timezone):e.event_end:null}function l_(e){let t=`${_d(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=d_(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 nS(e){let t=[];if(t.push(`# pm calendar (${e.view})`),t.push(""),t.push(`- now: ${e.now}`),t.push(`- window: ${c_(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(`- by-kind: ${Gi(e.summary.by_kind)}`),t.push(`- by-type: ${Gi(e.summary.by_type)}`),t.push(`- by-status: ${Gi(e.summary.by_status)}`),t.push(`- recurring-events: ${e.summary.recurring_events}`),t.push(""),e.events.length===0)return t.push("No calendar events matched the selected filters."),t.join(`
|
|
13
|
-
`);for(let n of e.days){t.push(`## ${n.date} (${n.count})`);for(let r of n.events)t.push(`- ${l_(r)}`);t.push("")}if(e.warnings&&e.warnings.length>0){t.push("### warnings");for(let n of e.warnings)t.push(`- ${n}`);t.push("")}return u_(t.join(`
|
|
14
|
-
`))}function rS(e){return Eg(e)}function u_(e){let t=e.length;for(;t>0&&e[t-1]===`
|
|
15
|
-
`;)t-=1;return e.slice(0,t)}function f_(e){let t=x(),n=xg(e.view),r=i_(n,e,t),i=ie(e.limit),o=Rg(e.include),s=Ui(e.recurrenceLookaheadDays,"Calendar recurrence lookahead days"),a=Ui(e.recurrenceLookbackDays,"Calendar recurrence lookback days"),c=Ui(e.occurrenceLimit,"Calendar occurrence limit");if(c!==void 0&&c<1)throw new h("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 m_(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 p_(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 h_(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 yd(e,t){let n=O(process.cwd(),t.path);await U(n);let r=f_(e),i=await M(n),o=J(i.schema),s=rn(i.schema),a=gn(e,s,"calendar"),c=L(i,D()),d=[];m_(d,r.eventsOnlyCapApplied);let l=await fe(n,i.item_format,c.type_to_folder,d,i.schema),u=Zg(l,e,c,o,a),f=jg(r.rangeBounds.start,r.rangeBounds.end,r.nowValue,r.recurrenceLookbackWindowDays,r.recurrenceLookaheadDays),p=Qg(u,f,r.includeSources,r.occurrenceLimit).filter(b=>r_(b,r.rangeBounds.start,r.rangeBounds.end)),m=r.limit===void 0?p:p.slice(0,r.limit),g=s_(m),v=[...new Set(d)].sort((b,y)=>b.localeCompare(y));return{view:r.view,output_default:"markdown",now:r.nowValue,anchor:r.rangeBounds.anchor,range:h_(e,r.rangeBounds),filters:p_(e,a),summary:a_(m),events:m,days:g,...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 dr={version:1,aliases:{}};function lr(e=[]){let t=new Set(ze),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 vd(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 Vi(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 qi(e,t=ze){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 h(`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 h(`Unknown provenance dimension "${a||o.trim()}". Declared dimensions: ${[...n].sort().join(", ")}.`,_.USAGE,{code:"unknown_provenance_dimension"});if(c.length===0)throw new h(`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 ur(e,t=dr,n={}){let r=Vi(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=dr,r=ze){return Wi(t,n,r)(e)}function Wi(e,t=dr,n=ze){let r=vd(e.harness),i=vd(e.agentInstance),o=qi(e,n);return s=>{let a=Vi(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 fr(e,t=dr,n=ze){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);Vi(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 g_ 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]="a4394793-55d4-5049-ab20-707c1c3d9f2c")}catch{}})();var __=20,y_=5,v_=15,b_="-24h";function vS(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 w_={digest:"activity_digest",compact:"compact_activity",provenance:"provenance_activity",full:"activity"};function Yi(e,t){if(e===void 0)return;let n=e.trim();if(n.length===0)throw new h(`${t} must not be empty`,_.USAGE);return n}function bd(e,t,n){if(e===void 0)return;let r=e.trim();if(r.length===0)throw new h("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 k_(e,t,n){return!(e.ts.length===0&&(t||n)||t&&C(e.ts,t)<0||n&&C(e.ts,n)>=0)}function wd(e,t){return t===void 0?e:e.slice(0,t)}function Ot(e,t=""){return typeof e=="string"?e:t}function E_(e,t){return{...t,id:e,ts:Ot(t.ts),author:Ot(t.author,"unknown"),op:Ot(t.op,"unknown"),patch:Array.isArray(t.patch)?t.patch:[],before_hash:Ot(t.before_hash),after_hash:Ot(t.after_hash)}}function I_(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 C_(e){try{return(await g_.readdir(e)).filter(t=>t.endsWith(".jsonl")).sort((t,n)=>t.localeCompare(n))}catch(t){if(ce(t))return[];throw t}}function S_(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 T_(e,t,n){if(e.unbounded!==!0)return t!==void 0?t:n==="digest"?v_:n==="compact"?__:y_}function R_(e,t){let n=x(),r=t==="digest",i=bd(e.to??(r?n:void 0),n,"--to"),o=bd(e.from??(r?b_:void 0),e.from===void 0&&r?i:n,"--from");if(o&&i&&C(o,i)>=0)throw new h("Activity --from must be before --to",_.USAGE);let s=Nr(e.limit);if(e.unbounded===!0&&s!==void 0)throw new h("Activity --unbounded cannot be combined with --limit",_.USAGE);return{id:Yi(e.id,"Activity --id"),op:Yi(e.op,"Activity --op"),author:Yi(e.author,"Activity --author"),from:o,to:i,limit:T_(e,s,t),limitSource:e.unbounded===!0||s!==void 0?"explicit":"default",harness:e.harness,agentInstance:e.agentInstance,provenance:e.provenanceFilter}}async function x_(e){let t=O(process.cwd(),e.path);return await U(t),{pmRoot:t,settings:await M(t)}}async function D_(e){let t=L(e.settings,D()),n=await fe(e.pmRoot,e.settings.item_format,t.type_to_folder,void 0,e.settings.schema);await us({pmRoot:e.pmRoot,settings:e.settings,itemIds:n.map(i=>i.id),commandLabel:"activity"});let r=kd.join(e.pmRoot,"history");return await Wt({path:r,scope:"project"}),{historyDir:r,itemsById:new Map(n.map(i=>[i.id,{title:i.title,type:i.type,status:i.status}]))}}function A_(e,t,n){return n.op&&e.op!==n.op||n.author&&e.author!==n.author?!1:k_(t,n.from,n.to)}async function O_(e,t){let n=[];for(let r of await C_(e)){let i=r.slice(0,-6);if(t.id&&i!==t.id)continue;let o=await Ve(kd.join(e,r),i);for(let s of o){let a=E_(i,s);A_(s,a,t)&&n.push(a)}}return n}function L_(e){return e.map(t=>({id:t.id,op:t.op,ts:t.ts,author:t.author,...t.message?{msg:t.message}:{}}))}function M_(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 F_(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:M_(i.operations)}}).sort((r,i)=>C(i.last_ts,r.last_ts)||r.id.localeCompare(i.id))}function N_(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 $_(e,t,n,r,i){if(e==="digest"){let s=F_(t,r),a=wd(s,n);return{rows:{activity_digest:a},compact:!1,totalRows:s.length,returnedRows:a.length}}let o=wd(t,n);return e==="compact"?{rows:{compact_activity:L_(o)},compact:!0,totalRows:t.length,returnedRows:o.length}:e==="provenance"?{rows:{provenance_activity:o.map(i)},compact:!1,totalRows:t.length,returnedRows:o.length}:{rows:{activity:o},compact:!1,totalRows:t.length,returnedRows:o.length}}async function Ed(e,t){let n=await x_(t),r=S_(e),i=R_(e,r),o=await D_(n),s=lr(n.settings.agent_identity.harness_signals),a=n.settings.agent_identity.identity_vocabulary,c=Wi({harness:i.harness,agentInstance:i.agentInstance,provenance:i.provenance},a,s),d=I_(await O_(o.historyDir,i)).filter(c),l=$_(r,d,i.limit,o.itemsById,f=>ur(f,a,{itemId:f.id})),u=l.totalRows-l.returnedRows;return{...l.rows,compact:l.compact,projection:{mode:r,row_key:w_[r]},omission_receipt:Co("activity",r),count:l.returnedRows,total_count:l.totalRows,limit:i.limit??null,omitted_count:u,has_more:u>0,...r==="digest"?{activity_summary:{window:{from:i.from,to:i.to},event_count:d.length,item_count:l.totalRows,author_count:new Set(d.map(f=>f.author)).size,operation_counts:N_(d)}}:{},...e.provenanceSummary===!0?{provenance_summary:fr(d,a,s)}:{},applied_bound:{kind:i.limit===void 0?"unbounded":"limit",source:i.limitSource,value:i.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 Id="1970-01-01T00:00:00.000Z";function Lt(e){if(typeof e!="string")return null;let t=e.trim();if(!Qt(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 Xi=["structural","recency","activity_density","graph_proximity","claim_focus","priority_pressure","risk_pressure","deadline_pressure","knowledge_density","author_affinity","usage_affinity","semantic_similarity"],P_=Symbol("no-context-author"),j_=Symbol("no-item-assignee");function Cd(e,t){if(typeof e!="string")return t;let n=e.trim().toLowerCase();return n.length>0?n:t}function U_(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 H_(e){let t=U_(e.release);return t!==void 0?{source:"release_cohort",coordinate:t}:{source:"created_at",coordinate:Lt(e.created_at)??Id}}function B_(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=Lt(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 G_(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 K_(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 z_(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 mr(e,t,n){return e?.[t]??n}function pr(e,t){let n=new Map(e.map(d=>{let l=t.recencyEvidence?.[d.id];return[d.id,l===void 0?H_(d):B_(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=Cd(t.author,P_),a=Q("in_progress",t.statusRegistry),c=Date.parse(t.now);return e.map(d=>{let l=Cd(d.assignee,j_)===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:mr(t.graphProximity,d.id,d.parent?.3:0),claim_focus:mr(t.claimFocus,d.id,R(d.status,t.statusRegistry)===a?1:l?.75:0),priority_pressure:G_(d.priority,4),risk_pressure:z_(d.risk),deadline_pressure:K_(d.deadline,c),knowledge_density:mr(t.knowledgeDensity,d.id,Math.min(u/5,1)),author_affinity:mr(t.authorAffinity,d.id,l?1:0),usage_affinity:t.usageAffinity?.[d.id],semantic_similarity:t.semanticSimilarity?.[d.id]}}})}var V_="context_relevance",q_={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},W_=new TextEncoder;function Y_(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"||!Xi.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 X_(e){let t={...q_};for(let[n,r]of Object.entries(e??{}))r!==void 0&&Xi.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 Td(e,t={}){Y_(e);let n=X_(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=Xi.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 g=m*n[p];l[p]=g,u+=g,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 J_(e,t={}){let n=Td(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 hr(e,t,n={}){let r=Td(t,n),i=await Io(V_,{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 J_(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 Q_=["ndcg","reciprocal_rank","required_recall","continuity_coverage","token_budget_adherence"];function Sd(e,t){return e.length===0?1:e.filter(n=>t.has(n)).length/e.length}function Z_(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:Sd(e.required_ids??[],a),continuity_coverage:Sd(e.continuity_ids??[],a),token_budget_adherence:c?1:e.token_budget/e.actual_tokens,within_token_budget:c}}function ey(e){return Math.ceil(W_.encode(JSON.stringify(e)).byteLength/4)}function ty(e){return Math.round(e*1e4)/1e4}function ny(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 ry(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(xo(n)||n.read_output?.result_omitted===!0||n.context_intent?.result_omitted===!0)throw new h(`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}=ny(n,e.surface),o={...n,ranking:void 0},s=ey(o);return{id:e.id,surface:e.surface,rationale:e.rationale,ranked_ids:r,actual_tokens:s,metrics:Z_({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 iy(e,t){if(e.length===0)throw new TypeError("Context evaluation requires at least one scenario report");let n=Q_;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,ty(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 DS(e,t,n){let r=[];for(let i of e)r.push(await ry(i,t));return iy(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 oy={balanced:{redundancyPenalty:.35,uncertaintyPenalty:.2},context:{redundancyPenalty:.45,uncertaintyPenalty:.15},next:{redundancyPenalty:.25,uncertaintyPenalty:.3}},sy=["identity","summary","full"];function ay(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=sy.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 cy(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=oy[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 dy(e){let t=new Set;for(let n of e){if(ay(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 ly(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 uy(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=ly(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 fy(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 Rd(e,t){let n=cy(t),r=dy(e),i=t.readClock??performance.now.bind(performance),o=t.latencyBudgetMs===void 0?Number.POSITIVE_INFINITY:i()+t.latencyBudgetMs,s=uy({ordered:r,tokenBudget:t.tokenBudget,redundancyPenalty:n.redundancy,uncertaintyPenalty:n.uncertainty,deadline:o,readClock:i}),{included:a}=s,c=fy(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 Mt from"node:fs/promises";import Ft from"node:path";import{createHash as xd,randomUUID as my}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]="01eff51c-7656-5c3f-b0c0-28594fca8a1e")}catch{}})();var Ji=3,Qi=2,Dd=["recency","activity_density","graph_proximity","priority_pressure","risk_pressure","knowledge_density"],py=new Set(["substantive_history","release_cohort","created_at"]),hy={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 dt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Ad(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0&&e<=1}function gy(e){let t={};for(let n of Dd){let r=e[n];if(r!==void 0){if(!Ad(r))throw new TypeError(`Context relevance signal ${n} must be a finite number from 0 to 1`);t[n]=r}}return t}function _y(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 yy(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 Od(e,t){return{...t,activityDensity:t.activityDensity??_y(e,n=>(n.comments?.length??0)+(n.notes?.length??0)+(n.learnings?.length??0)+(n.test_runs?.length??0)),graphProximity:t.graphProximity??yy(e)}}function to(e){let t=xd("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 vy(e){if(!dt(e))return null;let t=e.signal_provenance;if(![typeof e.id=="string",dt(e.signals),dt(t)].every(Boolean))return null;let n=t.recency;if(!dt(n))return null;let r=Lt(n.coordinate);if(r===null)return null;let i=new Set(Dd),o=Object.entries(e.signals);return!o.every(([s,a])=>i.has(s)&&Ad(a))||![typeof n.source=="string"&&py.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 by(e,t){let n=Array.from(e,vy);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!==to(r)?null:r.sort((i,o)=>i.id.localeCompare(o.id))}function wy(e){if(!dt(e)||e.format_version!==Ji||e.signal_set_version!==Qi||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=by(e.items,e.recency_evidence_fingerprint);return t===null?null:{format_version:Ji,signal_set_version:Qi,source_cursor:e.source_cursor,recency_evidence_fingerprint:e.recency_evidence_fingerprint,generated_at:e.generated_at,source:e.source,items:t}}function Ld(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 Md(e,t,n=to(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:gy(s),signal_provenance:a})).sort((o,s)=>o.id.localeCompare(s.id));return Object.freeze({format_version:Ji,signal_set_version:Qi,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 Ld(t),Md(pr(e,Od(e,t)),t)}var Zi=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=Ft.resolve(t)}async read(){try{return JSON.parse(await Mt.readFile(this.filePath,"utf8"))}catch(t){if(dt(t)&&je(t))return null;throw t}}async write(t){let n=Ft.dirname(this.filePath);await Mt.mkdir(n,{recursive:!0});let r=Ft.join(n,`.${Ft.basename(this.filePath)}.${my()}.tmp`);try{await Mt.writeFile(r,`${JSON.stringify(t)}
|
|
16
|
-
`,{encoding:"utf8",flag:"wx"}),await Mt.rename(r,this.filePath)}finally{try{await Mt.rm(r,{force:!0})}catch{}}}},eo=class{adapter;constructor(t){this.adapter=t}async readOrRebuild(t,n){Ld(n);let r=[],i=null;try{let f=await this.adapter.read();i=wy(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=pr(t,Od(t,n)),c=to(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{i!==null&&r.push("context_signal_store_stale"),l=Md(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=>hy[f])}}};function ky(e){let t=xd("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 gr(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 Ye(t.pmRoot),o=t.sourceCursor??i?.source_cursor??ky(e),s=t.source??(i===null?"scan_fallback":"derived_index"),a=new eo(new Zi(Ft.join(t.pmRoot,"runtime",t.storeKey?`context-signals-${t.storeKey}.json`:"context-signals.json"))),c=t.recencyEvidence??Object.fromEntries(Object.entries(await Wo(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 Ey(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 Iy(e,t,n){let r,i;for(let o of t){let s=Ey(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 Fd(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 GS(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=Iy(i.id,t.get(i.id)??[],n);o!==void 0&&r.push(o)}return r.sort((i,o)=>i.id.localeCompare(o.id))}import Cy from"node:path";import{createHash as Sy}from"node:crypto";import Ty 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 Nd=1,Ry=1e4,$d=12;function xy(e){let t=new Date(e);return`${t.getUTCFullYear()}-Q${Math.floor(t.getUTCMonth()/3)+1}`}function Dy(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 Ay(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 Oy(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=Fd(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=xy(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=Dy(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:Nd,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(Ay).sort((o,s)=>s.last_closed_at.localeCompare(o.last_closed_at)||o.kind.localeCompare(s.kind)||o.key.localeCompare(s.key))}}function Ly(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 My(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(Ly)&&Array.isArray(t.outcomes)&&t.outcomes.every(i=>typeof i=="string")&&Number.isSafeInteger(t.knowledge_entries)&&t.knowledge_entries>=0}function Fy(e){if(typeof e!="object"||e===null||Array.isArray(e))return null;let t=e;return t.format_version!==Nd||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(My)?t:null}function Ny(e){return`scan:${Sy("sha256").update(k(e.map(t=>[t.id,t.updated_at,t.status,t.parent]).sort(([t],[n])=>String(t).localeCompare(String(n))))).digest("hex")}`}async function $y(e,t,n){return n!==void 0?n:(await Ye(t))?.source_cursor??Ny(e)}async function Py(e){try{let t=Fy(JSON.parse(await Ty.readFile(e,"utf8")));return{snapshot:t,invalid:t===null}}catch(t){return{snapshot:null,invalid:!(typeof t=="object"&&t!==null&&"code"in t&&je(t))}}}async function Pd(e,t){let n=Math.max(1,Math.floor(t.minimumItems??Ry));if(e.length<n)return{snapshot:null,cache_status:"skipped",warnings:[]};let r=await $y(e,t.pmRoot,t.sourceCursor),i=Cy.join(t.pmRoot,"runtime","workspace-memory.json"),o=[],s=await Py(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=Oy(e,{statusRegistry:t.statusRegistry,sourceCursor:r,now:t.now});try{await W(i,`${JSON.stringify(c)}
|
|
17
|
-
`)}catch{o.push("workspace_memory_write_failed")}return{snapshot:c,cache_status:"rebuilt",warnings:o}}function jy(e,t,n=$d){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 jd(e,t,n=$d){if(e.snapshot===null)return;let r=jy(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 Uy(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 ZS(e,t,n=5){let r=Uy(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]="599ebac9-d3e8-561d-a971-8164179f1adf")}catch{}})();var Hy=["markdown","toon","json","ndjson"],_r=new Set(["Epic","Feature"]),Kd=10,zd=1e4,Vd=["hierarchy","activity","progress","recently_created","unparented","workload"],By=[...Vd,"blockers","files","staleness","tests"],Gy=/^(\d{4})-(\d{2})-(\d{2})/,Ky=/^(\d{4})(\d{2})(\d{2})(?:[T ]?\d{2}|$)/,zy=/^(\d{4})(\d{2})(\d{2})$/,Vy=/^(\d{4})(\d{2})(\d{2})(?:[T\s]?)(\d{2})(\d{2})(\d{2})?(Z|[+-]\d{2}:?\d{2})?$/i;function qy(e){if(!e)return;let t=e.trim().toLowerCase();if(!Hy.includes(t))throw new h("Context format must be one of markdown|toon|json|ndjson",_.USAGE);return t}var Ud=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 Wy(e){if(e===void 0)return;let t=[];for(let n of e.split(",")){let r=n.trim().toLowerCase();if(r.length!==0){if(!Ud.has(r))throw new h(`Context --fields value not projectable: ${r} (valid: ${[...Ud].join(", ")})`,_.USAGE);t.includes(r)||t.push(r)}}if(t.length===0)throw new h("Context --fields requires at least one field name",_.USAGE);return t}function Nt(e,t){return e.map(n=>{let r={},i=n;for(let o of t)r[o]=i[o]??null;return r})}function wT(e,t){let n=qy(e.format);if(t.json&&n&&n!=="json"&&n!=="ndjson")throw new h("Cannot combine --json with --format markdown|toon",_.USAGE);return t.json?n==="ndjson"?"ndjson":"json":n??"toon"}function Yy(e,t){return ie(e,"--limit")??(t==="full"?Number.MAX_SAFE_INTEGER:Kd)}function io(e,t){if(e===void 0)return t;let n=typeof e=="number"?e:Number(e);if(!Number.isInteger(n)||n<1)throw new h("--token-budget must be a positive integer",_.USAGE);return n}function Xy(e,t){return t>=zd&&e===Number.MAX_SAFE_INTEGER?Kd:e}function Jy(e,t){if(!e)return t.default_depth;let n=e.trim().toLowerCase();if(!Ir.includes(n))throw new h(`Context --depth must be one of ${Ir.join("|")}`,_.USAGE);return n}function Qy(e,t,n){if(e&&e.length>0){let r=[];for(let i of e){let o=i.trim().toLowerCase();if(!zt.includes(o))throw new h(`Context --section must be one of ${zt.join("|")}`,_.USAGE);r.includes(o)||r.push(o)}return r}return t==="brief"?[]:t==="full"?[...zt]:(t==="deep"?By:Vd).filter(r=>n.sections[r])}function Zy(e,t){return e?ie(e,"--activity-limit")??t.activity_limit:t.activity_limit}function ev(e,t){if(!e)return t.stale_threshold_days;let n=e.trim().toLowerCase(),r=/^(\d+)d?$/.exec(n);if(!r)throw new h("--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 h("--stale-threshold must be positive",_.USAGE);return i}function Hd(e,t){let n=R(e,t),r=Q("blocked",t),i=Q("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 $t(e,t){let n=Q("closed",t);return R(e,t)===n}function oo(e,t){return R(e,t)===t.in_progress_status}function qd(e,t){let n=R(e,t);return n!==t.in_progress_status&&t.active_statuses.has(n)}function tv(e,t){return t.blocked_statuses.has(R(e,t))}var nv=["compact","brief","fields","includeBody","include_body","parent"];function rv(e){let t={...e};for(let n of nv)delete t[n];return t}function so(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=lt(e),o=Pt(r.id,i);return{ids:new Set([r.id,...o.map(s=>s.id)].map(s=>s.trim().toLowerCase())),found:!0}}function iv(e){if(e===void 0)return;let t=e.trim();if(t.length===0)throw new h("Context --parent requires an item id",_.USAGE);return t}function ov(e,t){let n=e??null,r=t??null;return n===null&&r===null?0:n===null?1:r===null?-1:n-r}function sv(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 av(e,t){return new Date(Date.UTC(e,t+1,0)).getUTCDate()}function cv(e){let t=Gy.exec(e)??Ky.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<=av(n,r-1)}function dv(e){let t=zy.exec(e);if(t)return`${t[1]}-${t[2]}-${t[3]}`;let n=Vy.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 Wd(e){if(typeof e!="string")return Number.NaN;let t=e.trim();if(t.length===0||!cv(t))return Number.NaN;let n=Date.parse(dv(t));return Number.isFinite(n)?n:Number.NaN}function ro(e){let t=Wd(e);return Number.isFinite(t)?new Date(t).toISOString():""}function lv(e){let t=Wd(e);return Number.isFinite(t)?new Date(t).toISOString().slice(0,10):"unknown"}function ao(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function $e(e,t,n){let r=Hd(e.status,n)-Hd(t.status,n);if(r!==0)return r;let i=e.priority-t.priority;if(i!==0)return i;let o=ov(e.order,t.order);if(o!==0)return o;let s=sv(e.deadline,t.deadline);if(s!==0)return s;let a=C(ro(t.updated_at),ro(e.updated_at)),c=e.id.localeCompare(t.id);return a!==0?a:c}function no(e){return Math.max(1,Math.ceil(Buffer.byteLength(JSON.stringify(e),"utf8")/4))}function co(e,t,n=new Set,r="context"){return Rd(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:no({id:i.id,title:i.item.title}),summary:no({id:i.id,title:i.item.title,type:i.item.type,status:i.item.status,priority:i.item.priority,parent:i.item.parent}),full:no(i.item)}})),{tokenBudget:t,profile:r,latencyBudgetMs:25})}function lo(e){return{...e,included:e.included.map(t=>({id:t.id,projection:t.projection,tokens:t.tokens}))}}function uo(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 Yd(e,t){return t>0?Math.round(e/t*100):0}function lt(e){let t=new Map;for(let n of e){let r=ao(n.parent);if(!r)continue;let i=t.get(r)??[];i.push(n),t.set(r,i)}return t}function jt(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:ao(e.parent)};if(t&&n){let i=Pt(e.id,n),o=i.length;if(o>0){let s=i.filter(a=>$t(a.status,t)).length;r.children_total=o,r.children_closed=s,r.completion_pct=Yd(s,o)}}return r}function uv(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 yr(...e){return[...new Set(e.flatMap(t=>t??[]))].sort((t,n)=>t.localeCompare(n))}function fv(e,t){return e.filter(n=>!t.terminal_statuses.has(R(n.item_status,t)))}function mv(e,t,n,r){let i=new Map;for(let c of e)i.set(c.id,c);let o=lt(e),s=new Set(t.filter(c=>_r.has(c.type)).map(c=>c.id)),a=[];for(let c of s){let d=i.get(c);if(!d)continue;let l=Pt(c,o),u=o.get(c)??[],f=0,p=0,m=0,g=0;for(let b of l)$t(b.status,n)?f++:oo(b.status,n)?m++:tv(b.status,n)?g++:qd(b.status,n)&&p++;let v=u.sort((b,y)=>$e(b,y,n)).slice(0,r).map(b=>{let y=Pt(b.id,o),w=y.filter(E=>$t(E.status,n)).length;return{id:b.id,title:b.title,type:b.type,status:b.status,children_total:y.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:g,children:v})}return a.sort((c,d)=>{let l=i.get(c.id),u=i.get(d.id);return $e(l,u,n)}).slice(0,r)}function Pt(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 pv(e,t){return(await Ed({compact:!0,limit:String(e)},t)).compact_activity??[]}function hv(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=>_r.has(c.type)),a=[];for(let c of s){let d=Pt(c.id,o),l=d.length;if(l===0)continue;let u=0,f=0,p=0,m=0;for(let g of d)$t(g.status,r)?u++:n.has(g.id.trim().toLowerCase())?m++:oo(g.status,r)?p++:qd(g.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:Yd(u,l)})}return a.sort((c,d)=>c.completion_pct-d.completion_pct).slice(0,i)}function gv(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=In(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 _v(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 yv(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=>oo(s.status,t)).length,items:o.map(s=>s.id).sort()})).sort((i,o)=>o.active-i.active).slice(0,n)}function vv(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 bv(e,t,n,r){return e.map(i=>({item:i,sortKey:ro(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})=>({...jt(i,t,n),created_at:i.created_at}))}function wv(e,t,n,r){return e.filter(i=>!ao(i.parent)&&!_r.has(i.type)).sort((i,o)=>$e(i,o,t)).slice(0,r).map(i=>jt(i,t,n))}function kv(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{items_with_tests:t,items_with_recent_runs:n,recent_runs:{passed:r,failed:i,skipped:o},items_failing:s.sort()}}function Bd(e){return`${new Date(e).toISOString().slice(11,16)}Z`}function Xd(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 Ev(e,t){let n=e;return t.map(r=>{let i=n[r];return Array.isArray(i)?`${r}:${i.join(",")}`:`${r}:${i??"-"}`}).join(" ")}function Iv(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`${Bd(e.at)} [${e.kind}] ${e.item_id} (see focus item)${n}`}let t=`${Bd(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 Gd(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 Cv(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 Sv(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(`- ${Iv(n)}`);e.push("")}function Tv(e,t){if(!(!t.hierarchy||t.hierarchy.length===0)){e.push("## Hierarchy");for(let n of t.hierarchy){let r=n.children_total>0?Math.round(n.children_closed/n.children_total*100):0;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=i.children_total>0?Math.round(i.children_closed/i.children_total*100):0;e.push(` - ${i.id} ${i.type} ${i.status} "${i.title}" [${i.children_closed}/${i.children_total} done ${o}%]`)}}e.push("")}}function Rv(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 xv(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)}`:`- ${lv(i.created_at)} ${Xd(i)}`);e.push("")}}function Dv(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 Av(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 Ov(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 Lv(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 Mv(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 Fv(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 Nv(e,t){t.tests&&(e.push("## Test health"),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}`),t.tests.items_failing.length>0&&e.push(`- items_failing: [${t.tests.items_failing.join(",")}]`),e.push(""))}function $v(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 kT(e){let t=[],n=e.focus_fields,r=o=>n?Ev(o,n):Xd(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(""),Gd(t,"High-level focus",e.high_level,"No high-level active items.",r),Gd(t,"Low-level focus",e.low_level,"No low-level active items.",r),Cv(t,e,r),Sv(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 Tv(t,e),Rv(t,e),xv(t,e,n,r),Dv(t,e,r),Av(t,e),Ov(t,e),Lv(t,e),Mv(t,e),Fv(t,e),Nv(t,e),$v(t,e),t.join(`
|
|
18
|
-
`)}async function Pv(e,t){let n=O(process.cwd(),t.path),r=await M(n),i=r.context??go.context,o=J(r.schema),s=Jy(e.depth,i),a=Yy(e.limit??e.maxItems,s);return{settings:r,contextSettings:i,statusRegistry:o,depth:s,limit:a,sectionsIncluded:Qy(e.section,s,i),activityLimit:Zy(e.activityLimit,i),staleThresholdDays:ev(e.staleThreshold,i),parentScope:iv(e.parent),focusFields:Wy(e.fields),baseListOptions:rv(e)}}function jv(e){return e.some(t=>["hierarchy","progress","blockers","staleness","recently_created","unparented"].includes(t))}function Uv(e,t){return{...e,...t,noTruncate:!0,limit:void 0,offset:void 0,after:void 0}}async function Hv(e,t){let n=await Et(void 0,Uv(t.baseListOptions,{excludeTerminal:!1}),e),r=n.items,i=r.filter(a=>!$(a.status,t.statusRegistry)),o=r,s=Bv(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 Bv(e,t){if(e===void 0)return;let n=so(t,e);if(!n.found)throw new h(`Context --parent item not found: ${e}`,_.NOT_FOUND);return n.ids}function Gv(e,t,n,r){let i=new Set(ht(e,t,n,r).containers.map(o=>o.item.id));return new Set(e.filter(o=>_r.has(o.type)||i.has(o.id)||Re(o.type,r)!=="agent").map(o=>o.id))}async function Kv(e,t,n,r,i,o,s,a,c,d,l,u,f,p,m,g){let v=[...e].sort((I,ut)=>$e(I,ut,i)),b=await nn({pmRoot:f,author:c,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"}),y=await gr(v,{pmRoot:f,storeKey:"context",statusRegistry:i,now:a,author:c,usageAffinity:b.affinity,claimFocus:m}),w=await hr("context",y.candidates),E=w.ranked.map(I=>I.item),S=i.active_statuses,P=E.filter(I=>S.has(R(I.status,i))),j=u?Be(P,d,l,I=>I.id):0,F=u?P.slice(j,j+s):P,Ce=u&&F.length>0&&j+F.length<P.length,N=Ce&&F.length>0?de(l,F[F.length-1].id,j+F.length-1):void 0,B=E.filter(I=>r.has(I.id.trim().toLowerCase())),Y=new Set([...F.map(I=>I.id),...B.slice(0,s).map(I=>I.id)]),X=co({...w,ranked:w.ranked.filter(I=>Y.has(I.id))},p,new Set(Object.entries(m??{}).filter(([,I])=>I>=1).map(([I])=>I))),te=X.included.map(I=>I.item),ae=te.filter(I=>S.has(R(I.status,i))),V=te.filter(I=>r.has(I.id.trim().toLowerCase())),Pe=lt(t),br=jv(o)?Pe:void 0,q=new Map(n.map(I=>[I.id.trim().toLowerCase(),I])),G=I=>{let ut=jt(I,i,br);return r.has(I.id.trim().toLowerCase())&&(ut.blocked=!0,ut.blocker_ids=In(I,q,i).filter(wr=>!wr.resolved).map(wr=>wr.id)),ut},po=Gv(ae,n,i,g),ul=ae.filter(I=>po.has(I.id)).slice(0,u?F.length:s).map(G),fl=ae.filter(I=>!po.has(I.id)).slice(0,u?F.length:s).map(G),ho=P.length===0;return{activeItems:ae,blockedItems:V,highLevel:ul,lowLevel:fl,blockedFallback:ho?V.slice(0,s).map(G):[],blockedFallbackUsed:ho,ranking:w,packing:X,featureStore:y,pageExtras:{...u?{applied_limit:s}:{},...Ce?{has_more:!0,truncated:!0}:{},...N?{next_cursor:N}:{}}}}function zv(e,t){return Se("context",{pmRoot:t,options:Jt(e,_s)})}function Vv(e,t){return e.limit!==void 0||e.maxItems!==void 0||e.after!==void 0||t>=zd}async function qv(e,t,n,r){let i={...t.baseListOptions,view:"agenda",include:"all",limit:t.parentScope===void 0?String(t.limit):void 0},o=await yd(i,e),s=n===void 0?o.events:o.events.filter(d=>n.has(d.item_id.trim().toLowerCase())),a=fv(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:uv(a)}}function Jd(e,t,n){let r=String(t);return e.filter(i=>R(i.status,n)===r).length}async function Wv(e){let{runtime:t,allItems:n,fullCorpus:r,blockedIds:i,focusGroups:o,now:s,global:a}=e,c=lt(n),d=n.filter(u=>!$(u.status,t.statusRegistry)),l=u=>t.sectionsIncluded.includes(u);return{hierarchy:l("hierarchy")?mv(n,o.activeItems,t.statusRegistry,t.limit):void 0,activity:l("activity")?await pv(t.activityLimit,a):void 0,progress:l("progress")?hv(n,o.activeItems,i,t.statusRegistry,t.limit):void 0,blockersSection:l("blockers")?gv(o.blockedItems,r,t.statusRegistry,t.limit):void 0,recentlyCreated:l("recently_created")?bv(d,t.statusRegistry,c,t.limit):void 0,unparented:l("unparented")?wv(d,t.statusRegistry,c,t.limit):void 0,filesSection:l("files")?_v(o.activeItems,t.limit):void 0,workload:l("workload")?yv(o.activeItems,t.statusRegistry,t.limit):void 0,staleness:l("staleness")?vv(d,t.staleThresholdDays,s,t.limit):void 0,tests:l("tests")?kv(o.activeItems):void 0}}function Yv(e,t,n){let r=Q("canceled",t),i=e.filter(s=>t.active_statuses.has(R(s.status,t))),o=Jd(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=>$t(s.status,t)).length,canceled:e.filter(s=>R(s.status,t)===r).length}}function Xv(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 Jv(e,t){t&&(e.focus_fields=t,e.high_level=Nt(e.high_level,t),e.low_level=Nt(e.low_level,t),e.blocked_fallback=Nt(e.blocked_fallback,t),e.recently_created&&(e.recently_created=Nt(e.recently_created,t)),e.unparented&&(e.unparented=Nt(e.unparented,t)))}function Qv(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 Zv(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 eb(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 en(e,"context"))s.has(c)||(o.push({id:c,rank:o.length+1,included:!1}),s.add(c));let a=await tn({pmRoot:n,author:r,surface:"context",profile:t.packing.profile,rows:o,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"});Zt(e,a)}catch{e.warnings=yr(e.warnings,["context_usage_feedback_write_failed"])}}async function tb(e,t,n){if(e)return{};let r=(await ko({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 nb(e,t){let n=Go(),r=await Po(e),i=n.instance||jo(t);return ad(r.semantic_attribution?.[i])}async function ET(e,t){let n=O(process.cwd(),t.path),r=await Pv(e,t),i=await Hv(t,r),o=Xy(r.limit,i.fullCorpus.length),s={...r,limit:o,tokenBudget:io(e.tokenBudget,Math.max(256,o*160))},a=we(void 0,s.settings.author_default),c=await nb(n,a),d=tb(e.noExtensionHealth===!0,n,s.settings),l=pt(i.fullCorpus,s.statusRegistry),u=await Kv(i.listedItemMetadata,i.allItems,i.fullCorpus,l,s.statusRegistry,s.sectionsIncluded,s.limit,x(),a,e.after,zv(e,n),Vv(e,i.fullCorpus.length),n,s.tokenBudget,c,L(s.settings,D())),f=await qv(t,s,i.subtreeIds,new Set([...u.highLevel,...u.lowLevel,...u.blockedFallback].map(E=>E.id))),p=await Pd(i.fullCorpus,{pmRoot:n,statusRegistry:s.statusRegistry,now:f.agenda.now}),m=yr(i.listed.warnings,f.agenda.warnings,u.ranking.warnings,[...u.featureStore.warnings],p.warnings),g=Jd(u.activeItems,s.statusRegistry.in_progress_status,s.statusRegistry),v=u.activeItems.length-g,b=await Wv({runtime:s,allItems:i.allItems,fullCorpus:i.fullCorpus,blockedIds:l,focusGroups:u,now:f.agenda.now,global:t}),y=Yv(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:g,open:v,blocked:u.blockedItems.length},blocked_fallback_used:u.blockedFallbackUsed,high_level:u.highLevel.length,low_level:u.lowLevel.length,agenda_events:f.agendaSummary.events,...y},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=jd(p,Math.min(800,Math.floor(s.tokenBudget*.2))),Object.assign(w,await d),Xv(w,b,u.featureStore.warning_details),Qv(w,e.noTags===!0),e.explainRanking===!0&&(w.ranking=uo(u.ranking,u.featureStore,new Set([...u.highLevel,...u.lowLevel,...u.blockedFallback].map(E=>E.id))),w.packing=lo(u.packing)),To(w,[...u.highLevel,...u.lowLevel,...u.blockedFallback].map(E=>({id:E.id,status:R(E.status,s.statusRegistry)===s.statusRegistry.in_progress_status?"in_progress":"open",blocked:E.blocked}))),Jv(w,s.focusFields),Ro(w),m.length>0&&(w.warnings=m),Zv(w,u.activeItems,u.blockedItems),await eb(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 Qd(e,t,n){let r={recommended:e.recommended,ready:e.ready},i=()=>Math.max(Tr(r,"json"),Tr(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]="f610c3be-8212-56de-86d4-2b5b9752b87c")}catch{}})();var rb=["markdown","toon","json"],ib=5,ob=1440*60*1e3;function sb(e){if(!e)return;let t=e.trim().toLowerCase();if(!rb.includes(t))throw new h("Next format must be one of markdown|toon|json",_.USAGE);return t}function $T(e,t){let n=sb(e.format);if(t.json&&n&&n!=="json")throw new h("Cannot combine --json with --format markdown|toon",_.USAGE);return t.json?"json":n??"toon"}function Zd(e,t,n){let r=ie(e,t);return r===void 0||r<=0?n:r}function Ut(e,t,n,r){return{...jt(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 ab(e,t,n,r){let i=e.item,o=[],s=Q("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(cb(i.deadline,n)),o.push(Oe(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 el(e,t,n){let r=we(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 PT={partitionCallerOwnedReady:el,resolveNextCallerAuthor:(e,t)=>tl(e,t)};function jT(e,t,n){let r=e.filter(i=>Re(i.item.type,n)==="human");return{agent:t?e:e.filter(i=>Re(i.item.type,n)!=="human"),decisions:t?[]:r}}function cb(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))/ob);return o<0?`deadline ${r} (overdue ${-o}d)`:o===0?`deadline ${r} (due today)`:`deadline ${r} (in ${o}d)`}function db(e,t){let n=Q("in_progress",t);return e.filter(r=>R(r.status,t)===n).length}function fo(e,t){return(t.get(e.id.trim().toLowerCase())??[]).length>0}function lb(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 vr(e,t,n){return[...e].sort((r,i)=>{let o=fo(r.item,t),s=fo(i.item,t);return o!==s?Number(o)-Number(s):$e(r.item,i.item,n)})}function ub(e){return e.projectedReady.length===0?null:{...e.readyRows[0],reasons:ab(e.projectedReady[0],e.statusRegistry,e.now,e.completedContainer)}}function fb(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 mb(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 pb(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 en(e.result,"next"))r.has(o)||(n.push({id:o,rank:n.length+1,included:!1}),r.add(o));let i=await tn({pmRoot:e.pmRoot,author:e.author,surface:"next",profile:"next",rows:n,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"});Zt(e.result,i)}catch{e.result.warnings=yr(e.result.warnings,["context_usage_feedback_write_failed"])}}async function hb(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=fb(e.recommended,e.blockedRows,e.gateCount),e.tokenBudget!==void 0&&Qd(e.result,e.tokenBudget,e.hasIntentBudget),e.explainRanking&&(e.result.ranking=uo(e.readyRanking,e.featureStore,new Set([...e.result.recommended?[e.result.recommended.id]:[],...e.result.ready.map(n=>n.id)])),e.result.packing=lo(co(e.readyRanking,e.packingBudget,new Set,"next"))),await pb({result:e.result,pmRoot:e.pmRoot,author:e.author,ranking:e.readyRanking}),e.result}function gb(e,t,n){if(!n)return e;let r=so(t,n);if(!r.found)throw new h(`Next --parent item not found: ${n}`,_.NOT_FOUND);return e.filter(i=>r.ids.has(i.id.trim().toLowerCase()))}async function _b(e,t,n,r,i,o,s){let a=e.filter(p=>!fo(p.item,t)),c=s||a.length===0?e:a,d=await nn({pmRoot:o,author:i,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"}),l=await gr(c.map(p=>p.item),{pmRoot:o,storeKey:"next",statusRegistry:n,now:r,author:i,usageAffinity:d.affinity}),u=await hr("next",l.candidates),f=new Map(c.map(p=>[p.item.id,p]));return{projectedReady:u.ranked.map(p=>f.get(p.id)).filter(p=>p!==void 0),ranking:u,completedContainer:a.length===0&&!s,featureStore:l}}function tl(e,t){let n=e.assignee?.trim();return we(e.callerAuthor??(n&&n.length>0?n:void 0),t)}async function UT(e,t){let n=O(process.cwd(),t.path),r=await M(n),i=tl(e,r.author_default),o=J(r.schema),s=L(r,D()),a=x(),c=Zd(e.limit,"--limit",ib),d=io(e.tokenBudget,Math.max(192,c*128)),l=Zd(e.blockedLimit,"--blocked-limit",c),u=e.readyOnly===!0,f=typeof e.parent=="string"?e.parent.trim():"",p=await Et(void 0,lb(e,{excludeTerminal:!0}),t),m=await Et(void 0,{excludeTerminal:!1,noTruncate:!0},t),g=gb(p.items,m.items,f),v=m.items,b=ht(g,v,o,s),y=lt(v),w=Hr(b,o,e,s),E=el(w.ready,r.author_default,i),S=vr(E.available,y,o),P=[...b.blocked].sort((q,G)=>$e(q.item,G.item,o)),{projectedReady:j,ranking:F,completedContainer:Ce,featureStore:N}=await _b(S,y,o,a,i,n,e.includeContainers===!0),B=j.map((q,G)=>Ut(q,o,y,G+1)),Y=P.map((q,G)=>Ut(q,o,y,G+1)),X=vr(w.decisions,y,o).map((q,G)=>Ut(q,o,y,G+1)),te=vr(w.gates,y,o).map((q,G)=>Ut(q,o,y,G+1)),ae=vr(b.containers,y,o).map((q,G)=>Ut(q,o,y,G+1)),V=ub({projectedReady:j,readyRows:B,statusRegistry:o,now:a,completedContainer:Ce}),Pe=mb(X.length,E.held.length,B.length,c)??{};te.length>c&&(Pe.gate_needed_total=te.length),ae.length>c&&(Pe.containers_total=ae.length);let br={output_default:"toon",now:a,recommended:V,ready:B.slice(1,c+1),decision_needed:X.slice(0,c),gate_needed:te.slice(0,c),containers:ae.slice(0,c),blocked:u?[]:Y.slice(0,l),held_by_others:E.held.slice(0,c),summary:{recommended:V!==null,ready:B.length,blocked:Y.length,in_progress:db(B,o),candidates:b.active_count,containers:b.container_count,decision_needed:X.length,gate_needed:te.length,held_by_others:E.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:f.length>0?f:null,limit:c,blocked_limit:l,ready_only:u,include_decisions:e.includeDecisions===!0,include_gates:e.includeGates===!0,include_containers:e.includeContainers===!0,token_budget:d},truncation:Object.keys(Pe).length>0?Pe:void 0};return hb({result:br,recommended:V,blockedRows:Y,gateCount:te.length,candidatesWarnings:p.warnings,corpusWarnings:m.warnings,readyRanking:F,explainRanking:e.explainRanking===!0,pmRoot:n,author:i,packingBudget:d,featureStore:N,tokenBudget:e.tokenBudget===void 0?void 0:d,hasIntentBudget:typeof e.for=="string"})}function HT(e){let t=["# pm next","",...yb(e)];for(let[n,r]of[["Gate verification needed",e.gate_needed],["Containers",e.containers]])r&&r.length>0&&t.push(...Ht(n,r.map(i=>`- ${Bt(i)}`),""));if(t.push(...Ht("Recommended",vb(e.recommended),e.truncation?.ready_budget?.recommendation_omitted?"Recommendation omitted by the selection budget; ready work still exists.":"No ready work.")),t.push(...Ht("Decision needed",(e.decision_needed??[]).map(n=>`- ${Bt(n)}`),"No human-gated decisions.")),t.push(...Ht("Ready",e.ready.map(n=>`- ${Bt(n)}`),"No ready items.")),e.filters.ready_only||t.push(...Ht("Blocked",e.blocked.map(n=>`- ${bb(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 yb(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 vb(e){return e?[`- ${Bt(e)}`,` why: ${e.reasons.join("; ")}`]:[]}function Ht(e,t,n){return[`## ${e}`,...t.length===0?[n]:t,""]}function bb(e){let t=e.blockers.map(n=>`${n.id}(${n.status??"?"})`).join(", ");return`${Bt(e)} blocked_by:${t}`}function Bt(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 wb}from"node:crypto";import{setTimeout as kb}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]="62e71554-f62d-55c5-811c-198f573d9426")}catch{}})();var rl=1,il=/^[A-Za-z0-9_-]+$/,Eb=100,nl=1e3,Ib=250,eR=Object.freeze({batch_to_row_ratio:.6,fixture_events:200});function se(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 ol(e){return wb("sha256").update(k({type:se(e.type),author:se(e.author),item:se(e.item),harness:se(e.harness),agent_instance:se(e.agentInstance),provenance:se(e.provenanceFilter)})).digest("hex").slice(0,24)}function mo(e,t){let n={version:rl,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 sl(e,t){if(typeof e!="object"||e===null)return!1;let n=e;return[n.version===rl,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 al(e,t){let n=e.trim();if(n.length===0||n.length>4096||!il.test(n))throw new h("Invalid mutation event cursor.",_.USAGE,{code:"invalid_event_cursor"});let r;try{r=JSON.parse(Buffer.from(n,"base64url").toString("utf8"))}catch{throw new h("Invalid mutation event cursor.",_.USAGE,{code:"invalid_event_cursor"})}if(!sl(r,t))throw new h("Mutation event cursor does not match this query.",_.USAGE,{code:"event_cursor_query_mismatch"});return r}function cl(e){let t=e??Eb;if(!Number.isSafeInteger(t)||t<0||t>nl)throw new h(`Mutation event limit must be an integer from 0 to ${nl}.`,_.USAGE,{code:"invalid_event_limit"});return t}function dl(e){return e instanceof Error&&e.name==="AbortError"}function ll(e,t){let n=e?.trim();if(!n)return{};if(il.test(n))return{cursor:al(n,t)};let r=Date.parse(n);if(!Number.isFinite(r))throw new h("Mutation event --since must be an event cursor or ISO timestamp.",_.USAGE,{code:"invalid_event_since"});return{sinceTimestamp:new Date(r).toISOString()}}async function Cb(e,t){let n=await Dr(e,t),r=n.result;if(r===null&&n.repair_needed)try{await Vo(e,{lockWaitMs:0})&&(r=(await Dr(e,t)).result)}catch{}if(r===null)try{return{...await qo(e,t),source:"authoritative_history"}}catch(i){throw i instanceof h?i:new h("Mutation events are unavailable because authoritative history could not be read.",_.GENERIC_FAILURE,{code:"event_index_unavailable",why:yo(i)})}return{...r,source:"derived_index"}}function Sb(e){let t=e??"batch";if(t!=="batch"&&t!=="row")throw new h("Mutation event cursor mode must be batch or row.",_.USAGE,{code:"invalid_event_cursor_mode"});return t}async function Tb(e={}){let t=O(e.cwd??process.cwd(),e.pmRoot);await U(t);let n=cl(e.limit),r=Sb(e.cursorMode);if(e.full===!0&&e.provenance===!0)throw new h("Mutation event projections are mutually exclusive. Use --provenance or --full.",_.USAGE);let i=await M(t),o=i.agent_identity.identity_vocabulary,s=lr(i.agent_identity.harness_signals),a=qi({provenance:e.provenanceFilter},s),c=se(e.harness),d=ol(e),{cursor:l,sinceTimestamp:u}=ll(e.since,d),f={...l?{after_ts:l.ts,after_stream_id:l.stream_id,after_stream_offset:l.stream_offset}:u?{since_ts:u}:{},ops:se(e.type),authors:se(e.author),harnesses:c,harness_alias_authors:c?Object.entries(o.aliases).filter(([,g])=>c.includes(g)).map(([g])=>g):void 0,agent_instances:se(e.agentInstance),provenance:[...a].map(([g,v])=>({dimension:g,values:[...v]})),stream_ids:se(e.item),limit:n},p=await Cb(t,f),m=p.events.map(g=>({...r==="row"?{cursor:mo(g,d)}:{},item_id:g.stream_id,version:g.stream_offset+1,ts:g.entry.ts,author:g.entry.author,type:g.entry.op,...g.entry.message===void 0?{}:{message:g.entry.message},patch_count:g.entry.patch.length,...e.full===!0?{entry:g.entry}:{},...e.provenance===!0?{provenance:ur(g.entry,o,{itemId:g.stream_id,version:g.stream_offset+1})}:{}}));return{events:m,count:m.length,has_more:p.has_more,cursor_mode:r,...p.events.length===0?{}:{next_cursor:mo(p.events[p.events.length-1],d)},source:p.source,...e.provenanceSummary===!0?{provenance_summary:fr(p.events.map(g=>g.entry),o,s)}:{}}}async function*Rb(e={}){let t=e.intervalMs??Ib;if(!Number.isSafeInteger(t)||t<10)throw new h("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 Tb({...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 kb(t,void 0,{signal:e.signal})}catch(i){if(dl(i))return;throw i}}}async function*tR(e={}){for await(let t of Rb({...e,cursorMode:"row"}))for(let n of t.events)yield n}var nR={decodeMutationEventCursor:al,encodeMutationEventCursor:mo,eventQueryFingerprint:ol,isAbortError:dl,isMutationEventCursorEnvelope:sl,parseMutationEventLimit:cl,resolveMutationEventStart:ll};(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 iR(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{$r as a,yn as b,iw as c,ow as d,wn as e,bn as f,Cs as g,dw as h,Re as i,Il as j,Oe as k,En as l,Ts as m,In as n,pt as o,Hr as p,ht as q,ie as r,Cn as s,xs as t,Br as u,gt as v,Ds as w,As as x,Gs as y,Qr as z,zs as A,i0 as B,o0 as C,Ws as D,Ys as E,a0 as F,Tl as G,Dw as H,Rl as I,Aw as J,Ow as K,Lw as L,Mw as M,Ol as N,z as O,Fs as P,Tn as Q,Bw as R,Kr as S,Gw as T,vt as U,Bl as V,Kl as W,Vr as X,zl as Y,Ze as Z,qr as _,Wr as $,Wl as aa,Yr as ba,Qw as ca,Zw as da,e0 as ea,t0 as fa,yu as ga,ia as ha,Zs as ia,ea as ja,Eu as ka,Iu as la,Cu as ma,Et as na,xn as oa,ei as pa,Dn as qa,B0 as ra,ya as sa,he as ta,lk as ua,Ca as va,Sa as wa,Ta as xa,Ra as ya,xa as za,Nn as Aa,Aa as Ba,rt as Ca,Oa as Da,Na as Ea,jn as Fa,$a as Ga,Pa as Ha,ep as Ia,Xa as Ja,Bn as Ka,ui as La,Gn as Ma,Ja as Na,Za as Oa,fi as Pa,St as Qa,tc as Ra,pi as Sa,hi as Ta,gi as Ua,nc as Va,_i as Wa,ic as Xa,oc as Ya,ac as Za,Sp as _a,_E as $a,mC as ab,Qc as bb,iR as cb,hc as db,gc as eb,EE as fb,eh as gb,ct as hb,T as ib,xe as jb,FE as kb,NE as lb,kc as mb,oh as nb,$E as ob,PE as pb,VE as qb,Dc as rb,Xn as sb,rr as tb,gI as ub,ir as vb,Vh as wb,jc as xb,_I as yb,yI as zb,vI as Ab,bI as Bb,Wh as Cb,Hc as Db,ug as Eb,bg as Fb,PC as Gb,jC as Hb,sd as Ib,zC as Jb,VC as Kb,qC as Lb,WC as Mb,ad as Nb,tS as Ob,nS as Pb,rS as Qb,yd as Rb,dr as Sb,lr as Tb,qi as Ub,ur as Vb,cS as Wb,Wi as Xb,fr as Yb,vS as Zb,Ed as _b,Id as $b,Lt as ac,Xi as bc,pr as cc,V_ as dc,Td as ec,J_ as fc,hr as gc,Q_ as hc,Z_ as ic,ry as jc,iy as kc,DS as lc,oy as mc,Rd as nc,Ji as oc,Qi as pc,hy as qc,wy as rc,HS as sc,Zi as tc,eo as uc,gr as vc,Fd as wc,GS as xc,Ry as yc,Oy as zc,Pd as Ac,jy as Bc,jd as Cc,Uy as Dc,ZS as Ec,Hy as Fc,Wy as Gc,Nt as Hc,wT as Ic,io as Jc,Jy as Kc,Qy as Lc,so as Mc,$e as Nc,co as Oc,lo as Pc,uo as Qc,lt as Rc,jt as Sc,yr as Tc,kT as Uc,Qv as Vc,ET as Wc,rb as Xc,$T as Yc,PT as Zc,jT as _c,UT as $c,HT as ad,eR as bd,Tb as cd,Rb as dd,tR as ed,nR as fd};
|
|
20
|
-
//# sourceMappingURL=chunk-OEJ3G7XT.js.map
|