@unbrained/pm-cli 2026.10.18 → 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 +43 -0
- package/dist/cli/error-guidance.d.ts +7 -0
- package/dist/cli/error-guidance.js +2 -2
- package/dist/cli/help-content.js +2 -2
- package/dist/cli/register-mutation.js +2 -2
- package/dist/cli/register-setup.js +1 -1
- package/dist/cli/register-structured-mutation.js +1 -1
- package/dist/cli-bundle/bundle-manifest.json +1 -1
- package/dist/cli-bundle/chunks/{chunk-PYRREEUB.js → chunk-2GGGOD7P.js} +28 -28
- package/dist/cli-bundle/chunks/chunk-7NHA5K77.js +126 -0
- package/dist/cli-bundle/chunks/chunk-7ZOIZ2AZ.js +8 -0
- package/dist/cli-bundle/chunks/{chunk-4GA4MUTE.js → chunk-GHJOMRSF.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-KU4Q3MSI.js +8 -0
- package/dist/cli-bundle/chunks/chunk-LS55VKRK.js +3 -0
- package/dist/cli-bundle/chunks/chunk-PNPE2OVJ.js +112 -0
- package/dist/cli-bundle/chunks/chunk-PTL3TBT6.js +20 -0
- package/dist/cli-bundle/chunks/chunk-QETMESEB.js +6 -0
- package/dist/cli-bundle/chunks/{chunk-7WIEAGDS.js → chunk-QMZ73FCW.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-QQYCB2LO.js +2 -0
- package/dist/cli-bundle/chunks/chunk-RUKSEZE7.js +2 -0
- package/dist/cli-bundle/chunks/chunk-TZU6U5ZE.js +3 -0
- package/dist/cli-bundle/chunks/chunk-VLJLWZBO.js +70 -0
- package/dist/cli-bundle/chunks/chunk-VS565KBX.js +2 -0
- 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-FIJOSX2C.js → chunk-YT2Z3JPC.js} +72 -66
- package/dist/cli-bundle/chunks/chunk-YTHI5DTH.js +2 -0
- package/dist/cli-bundle/chunks/{chunk-6VZKYJW7.js → chunk-YW6SIKYP.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-ZZED447K.js → chunk-ZA3XXHEE.js} +6 -6
- package/dist/cli-bundle/chunks/context-budget-recovery-L2WP5S26.js +2 -0
- package/dist/cli-bundle/chunks/indexed-receipt-blobs-U7VGKIYC.js +4 -0
- package/dist/cli-bundle/chunks/{register-list-query-PUCVYYBD.js → register-list-query-NNDV6F6I.js} +3 -3
- package/dist/cli-bundle/chunks/register-mutation-3GCBSNQS.js +20 -0
- 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-CLRGA6O7.js +7 -0
- package/dist/cli-bundle/chunks/stage-6QXYRMSU.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-37SU7BZI.js +3 -0
- package/dist/cli-bundle/focused-chunks/chunk-6IU7BESB.js +65 -0
- package/dist/cli-bundle/focused-chunks/chunk-AK2CI2GI.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-AS3MOBO3.js +25 -0
- package/dist/cli-bundle/focused-chunks/chunk-AW35RDKA.js +78 -0
- package/dist/cli-bundle/focused-chunks/chunk-E4II2D2B.js +3 -0
- package/dist/cli-bundle/focused-chunks/{chunk-A4ZHHTEX.js → chunk-F7FD25TG.js} +12 -12
- package/dist/cli-bundle/focused-chunks/chunk-FOA7XKWP.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-TB7F4FCR.js → chunk-GYHZ7W6O.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-H5Q2HUU6.js +8 -0
- package/dist/cli-bundle/focused-chunks/chunk-HUZAXSIJ.js +3 -0
- package/dist/cli-bundle/focused-chunks/chunk-J6EYUGAR.js +6 -0
- package/dist/cli-bundle/focused-chunks/chunk-JEXZEIAX.js +91 -0
- package/dist/cli-bundle/focused-chunks/{chunk-BFEMT5U3.js → chunk-KDGUIIRU.js} +3 -3
- package/dist/cli-bundle/focused-chunks/{chunk-ZDBS2DCT.js → chunk-KKRFSI2N.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-LJPUJ2KK.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-MQ42BFGX.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-IRVL4UXR.js → chunk-NI6NS44Q.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-VAYS754X.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-Z7YIFCNE.js → chunk-VLSER3XW.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-VS6VTWTZ.js +8 -0
- package/dist/cli-bundle/focused-chunks/chunk-VVRXF4JO.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-ZGEK57KD.js +2 -0
- package/dist/cli-bundle/focused-chunks/context-budget-recovery-5MKOCGY5.js +2 -0
- package/dist/cli-bundle/focused-chunks/indexed-receipt-blobs-H2G6CCGO.js +4 -0
- package/dist/cli-bundle/focused-chunks/settlement-hook-5SNBBT7C.js +7 -0
- package/dist/cli-bundle/focused-chunks/stage-EMTISXR7.js +2 -0
- 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 +28 -22
- 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 +66 -53
- 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/cli-contracts/bootstrap-command-scanner.js +1 -1
- package/dist/sdk/cli-contracts/flag-contracts.js +1 -1
- package/dist/sdk/cli-contracts/flag-lexicon-contracts.js +1 -1
- package/dist/sdk/cli-contracts/runtime-contracts.d.ts +1 -0
- package/dist/sdk/cli-contracts/runtime-contracts.js +1 -1
- package/dist/sdk/cli-contracts/tool-parameter-tables.js +1 -1
- package/dist/sdk/cli-contracts/tool-schema.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/extension/install-sources.js +3 -3
- package/dist/sdk/extension/shared.js +1 -1
- package/dist/sdk/generated/generated-error-code-catalog-part-1.js +1 -1
- package/dist/sdk/generated/generated-error-code-catalog-part-2.js +1 -1
- package/dist/sdk/governance/health.js +1 -1
- package/dist/sdk/history-repair.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/merge/driver.js +7 -1
- package/dist/sdk/merge/indexed-receipt-blobs.d.ts +2 -0
- package/dist/sdk/merge/indexed-receipt-blobs.js +4 -0
- package/dist/sdk/merge/install.d.ts +8 -0
- package/dist/sdk/merge/install.js +3 -3
- package/dist/sdk/merge/receipts.d.ts +6 -0
- package/dist/sdk/merge/receipts.js +2 -2
- package/dist/sdk/merge/reconcile.d.ts +6 -0
- package/dist/sdk/merge/reconcile.js +1 -1
- package/dist/sdk/merge/settlement-hook.d.ts +12 -0
- package/dist/sdk/merge/settlement-hook.js +7 -0
- package/dist/sdk/merge/stage.d.ts +13 -0
- package/dist/sdk/merge/stage.js +2 -0
- 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/query/list.js +1 -1
- package/dist/sdk/relationship-context.d.ts +2 -0
- package/dist/sdk/relationship-context.js +1 -1
- package/dist/sdk/runtime-extended-actions.js +1 -1
- package/dist/sdk/structured-mutations.d.ts +2 -0
- package/dist/sdk/structured-mutations.js +1 -1
- package/docs/COMMANDS.md +27 -0
- package/docs/CONFIGURATION.md +14 -0
- package/docs/MERGE_SAFETY.md +88 -5
- package/docs/PR_REVIEW_LOOP.md +32 -12
- package/docs/SCRIPTING.md +10 -0
- package/docs/SDK.md +103 -0
- package/docs/TESTING.md +32 -1
- package/docs/generated/FLAG_LEXICON_BUDGETS.md +2 -2
- package/docs/generated/REFUSAL_CLOSURE_CENSUS.md +6 -3
- 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-4V6ONLI6.js +0 -3
- package/dist/cli-bundle/chunks/chunk-7PATQWTH.js +0 -20
- package/dist/cli-bundle/chunks/chunk-AETP4JEM.js +0 -3
- package/dist/cli-bundle/chunks/chunk-LUKVNL72.js +0 -2
- package/dist/cli-bundle/chunks/chunk-OJ77ZQN3.js +0 -8
- package/dist/cli-bundle/chunks/chunk-RHQJ6VWC.js +0 -237
- package/dist/cli-bundle/chunks/chunk-RNABUEFB.js +0 -80
- package/dist/cli-bundle/chunks/chunk-TO6CIV4C.js +0 -2
- package/dist/cli-bundle/chunks/register-mutation-GGGVBXD5.js +0 -20
- package/dist/cli-bundle/chunks/register-operations-NRZ6Q4QE.js +0 -2
- package/dist/cli-bundle/chunks/register-setup-MV3P3YSF.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-2MPQUMTF.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-5UKCSZWT.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-B4YLP5ZB.js +0 -3
- package/dist/cli-bundle/focused-chunks/chunk-FW7CSSKL.js +0 -75
- package/dist/cli-bundle/focused-chunks/chunk-HYPRPSYD.js +0 -3
- package/dist/cli-bundle/focused-chunks/chunk-L55KQ2KT.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-MASIOFPG.js +0 -8
- package/dist/cli-bundle/focused-chunks/chunk-RJ3EIHDU.js +0 -26
- package/dist/cli-bundle/focused-chunks/chunk-SEL4Z2OO.js +0 -167
- package/dist/cli-bundle/focused-chunks/chunk-TZUIBG3P.js +0 -2
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import{$ as W,$f as U,$g as Po,Af as Zt,Aj as fn,Bd as qt,Be as Yt,Bi as ss,Cd as ko,Cf as en,Ch as Ko,Dh as zo,Eh as Vo,Fg as Oo,Fh as Sr,G as yr,Gf as tn,Gh as qo,Gi as F,Hd as Eo,Hg as Lo,Hh as Wo,Hj as ke,Ia as je,Ih as Tr,Ii as as,Im as ys,Jh as rn,Jm as vs,Kg as Q,Kh as Ve,Ki as cs,Lg as R,Mg as $,Mi as ln,Na as br,Ng as Ge,Ni as ds,Nm as Or,Oa as Kt,Ob as wr,Pa as yo,Pd as Wt,Pi as Ar,Q as ho,Qh as on,Qi as un,R as _,Rd as Io,Rg as Fo,Rh as Yo,Sg as Mo,Sh as Xo,T as g,Tg as No,U as vr,Uh as Jo,V as Gt,Va as L,Vd as kr,W as Pe,Wa as zt,Wf as Cr,Wh as sn,X as ce,Xa as vo,Xh as Qo,Xl as _s,Y as ye,Yc as wo,Ye as Ro,Yh as Zo,Ym as hn,Zm as gn,_g as $o,_h as Rr,_j as hs,aa as go,ah as jo,ai as es,bb as O,bh as Uo,ce as Co,cf as Xt,ch as Ho,ci as qe,cm as mn,df as Se,di as ts,dj as ls,ef as de,ei as ns,fi as an,gh as Ke,gi as cn,hb as Ue,hc as bo,hf as xo,hi as xr,if as He,ig as Ao,ii as le,ja as K,ji as Dr,ka as _o,ki as rs,lg as be,li as dn,mi as De,mj as us,ne as So,ni as Z,oe as To,of as x,oi as is,p as ne,ph as Bo,pi as os,qd as D,qe as Er,qf as Ir,qj as fs,rf as Jt,ro as me,sf as C,sj as We,sl as gs,so as pe,tb as k,tf as Do,u as Bt,uf as ve,vb as re,vf as Be,vg as J,vj as ue,wh as we,wj as Te,xg as nn,xh as Go,xj as ms,xm as pn,yf as Qt,yh as ze,yj as ps,zd as Vt,zj as fe}from"./chunk-RHQJ6VWC.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 Lr(e){let t=O(process.cwd(),e);await U(t);let n=await F(t),r=L(n,D());return{pmRoot:t,settings:n,typeRegistry:r}}async function _n(e,t,n,r){Ue(e,Ar(t));let i=await ue(e,t,n.id_prefix,n.item_format,r);if(i)return{id:i.id,historyPath:Ue(e,i.id),located:i};let o=un(t,n.id_prefix),s=Ar(t),a=o===s?[o]:[o,s];for(let c of a){let d=Ue(e,c);if(await Gt(d))return{id:c,historyPath:d,located:null}}throw new g(`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 aw(e,t){let n=le(e),r=e.length>0?e[e.length-1].after_hash:Qo(),i=t===void 0||n.item_hash_version===void 0?void 0:sn(t,n.item_hash_version,be(e.at(-1)?.hash_algorithm)),o=t===void 0?void 0:i===void 0?Jo(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 cw(e,t,n={}){let r=O(n.cwd??process.cwd(),n.pmRoot);await U(r);let i=await F(r),o=L(i,D()),s=await _n(r,e,i,o.type_to_folder),a=await ze(s.historyPath,s.id);if(a.length===0)throw new g(`No history exists for ${s.id}; point-in-time reads are unavailable.`,_.NOT_FOUND);let c=cs(t,a),d=ds(ln(a,c.historyIndex),c),l=ns(d,{schema:i.schema});if(l.metadata.id!==s.id)throw new g(`History target resolved to item ${l.metadata.id}, expected ${s.id}.`,_.GENERIC_FAILURE);let u=a[c.historyIndex],f=as(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 ws(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:xo(t.after,i)}}function Ye(e,t,n){e.get(t).add(n)}function ft(e){return new Map(e.map(t=>[t,new Set]))}function ks(e){for(let t of e)t.sort();return e.sort((t,n)=>n.length-t.length||t[0].localeCompare(n[0]))}function yn(e){if(Array.isArray(e))return e.map(n=>yn(n));if(e===null||typeof e!="object")return e;let t=e.toJSON;return typeof t=="function"?yn(t.call(e)):Object.fromEntries(Object.entries(e).sort(([n],[r])=>n.localeCompare(r)).map(([n,r])=>[n,yn(r)]))}function bs(e){return JSON.stringify(yn(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 ks(r)}function Es(e,t){let n=ft(e);for(let[r,i]of t)for(let o of i)Ye(n,o,r);return gl(hl(e,t),n)}function _l(e,t){let n=ft(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";Ye(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 bn(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?[]:Es(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=ft(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))||Ye(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=vn(e,t,{...n,after:void 0,direction:"incoming",limit:void 0}),a=vn(e,t,{...n,after:void 0,direction:"outgoing",limit:void 0}),c=new Map,d=[...s.affected,...a.affected].sort((m,h)=>m.distance-h.distance||m.id.localeCompare(h.id)||m.path.join("\0").localeCompare(h.path.join("\0")));for(let m of d)c.has(m.id)||c.set(m.id,m);let l=[...c.values()].sort((m,h)=>m.distance-h.distance||m.id.localeCompare(h.id)),u=r===void 0||r===t?-1:l.findIndex(m=>m.id===r);if(r!==void 0&&r!==t&&u<0)throw new TypeError(`Unknown impact cursor item: ${r}`);let f=l.slice(u+1,u+1+i),p=u+1+f.length<l.length;return{root:t,affected:f,exact:!0,truncated:s.truncated||a.truncated||p,...p?{nextCursor: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}=ws(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 h=l.queue[m];u+=1;let v=[...c.get(h.id)].sort();if(h.depth>=i){v.some(b=>!l.seen.has(b))&&(f=!0);continue}for(let b of v)if(ml(l,b,h,t,a,o)==="truncate"){f=!0,p=!0;break e}}if(!l.cursorFound)throw new TypeError(`Unknown impact cursor item: ${a}`);return{root:t,affected:l.affected,exact:!0,truncated:f,...p?{nextCursor:de(s,l.affected.at(-1)?.id??t)}:{},cost:{visitedNodes:u,inspectedEdges:d}}}function vn(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}=ws(t,n,r,i);return kl(e,t,n,a,o,s)}function Is(e){let t=[...e.nodes()],n=ft(t),r=ft(t);for(let c of e.edges())Ye(n,c.source,c.target),Ye(n,c.target,c.source),Ye(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:ks(i),stronglyConnected:Es(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 fw(e,t){let n=new Map(e.edges.map(i=>[bs(i),i])),r=new Map(t.edges.map(i=>[bs(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:vo(e,t))?.execution_role??yo[e.trim().toLowerCase()]??"agent"}var Mr="blocked_by",Cs="blocks",Il=Object.freeze([Mr,Cs]),Fr="no-active-blocker";function A(e){return e.trim().toLowerCase()}function wn(e,t){return t?`external:${e}`:`local:${A(e)}`}function Ae(e){let t=new Map,n=typeof e.blocked_by=="string"?e.blocked_by.trim():"";if(n.length>0&&A(n)!==Fr){let r=me(n);t.set(wn(n,r),r?n:A(n))}for(let r of e.dependencies??[]){let i=typeof r.id=="string"?r.id.trim():"";if(r.kind===Mr&&i.length>0&&A(i)!==Fr){let o=me(i)||pe(r.source_kind);t.set(wn(i,o),o?i:A(i))}}return[...t.values()].sort((r,i)=>r.localeCompare(i))}function kn(e){let t=new Map;for(let n of e){let r=A(n.id);r.length!==0&&t.set(r,new Set(Ae(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===Cs&&typeof i.id=="string"?A(i.id):"";if(o.length===0||o===Fr)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 Ss(e,t){let n=A(e.id);return n.length>0?kn(t).get(n)??Ae(e):Ae(e)}function Nr(e,t,n,r){let i=e,o=typeof i.id=="string"?r?.get(A(i.id))??Ss(i,[...t.values()]):Ae(e),s=new Set((e.dependencies??[]).filter(a=>a.kind===Mr&&pe(a.source_kind)&&typeof a.id=="string"&&a.id.trim().length>0).map(a=>wn(a.id.trim(),!0)));return o.map(a=>{if(me(a)||s.has(wn(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 En(e,t,n){return Nr(e,t,n)}function mt(e,t){let n=new Map(e.map(s=>[A(s.id),s])),r=kn(e),i=new Set([...Ts(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)||Nr(s,n,t,r).some(c=>!c.resolved))&&o.add(A(s.id))}return o}function $r(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 Ts(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=kn(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 pt(e,t,n,r){let{itemsById:i,childrenByParent:o,blockedByReverse:s,blockerIdsByItem:a}=Sl(t),c=new Set([...Ts(n),...n.blocked_statuses]),d=new Set(t.filter(v=>!$(v.status,n)).map(v=>A(v.id))),l=[],u=[],f=[],p=[],m=[],h=0;for(let v of e){if(!c.has(R(v.status,n)))continue;h+=1;let b=Nr(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:h,container_count:f.length}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ae1c56b3-148d-502d-9450-e807fdfab4da")}catch{}})();(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="738a98bc-eaf0-578d-88e3-1c5f83c8894b")}catch{}})();function 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 g(`${t} must be a non-negative integer`,_.USAGE);return r}function In(e,t="--priority"){if(e===void 0)return;let n=String(e).trim(),r=n.length===0?Number.NaN:Number(n);if(!Number.isInteger(r)||r<0||r>4)throw new g(`${t} filter must be 0..4`,_.USAGE);return r}function Rs(e,t,n="--type"){if(e===void 0)return;let r=zt(e,t);if(!r)throw new g(`${n} filter must be one of ${t.types.join("|")}`,_.USAGE);return r}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="75ecca0c-fac8-5a9b-9043-c65731daad4a")}catch{}})();function Pr(e,t){if(e===void 0)return;let n=[],r="";for(let s=0;s<e.length;s+=1){let a=e[s];if(a==="\\"){let c=e[s+1];if(c===","||c==="\\"){r+=c,s+=1;continue}r+=a;continue}if(a===","){n.push(r),r="";continue}r+=a}n.push(r);let i=n.map(s=>s.trim());if(i.some(s=>s.length===0))throw new g(`${t.label} requires at least one non-empty value`,_.USAGE);let o=i.map(s=>t.normalize?.(s)??s);return[...new Set(o)]}function ht(e,t){let n=Pr(e,t);return n===void 0?void 0:new Set(n)}function xs(e,t,n="--type"){let r=Pr(e,{label:n});if(r===void 0)return;let i=r.map(o=>{let s=zt(o,t);if(!s)throw new g(`${n} filter token "${o}" must be one of ${t.types.join("|")}`,_.USAGE);return s});return new Set(i)}function Ds(e,t="--priority"){let n=Pr(e,{label:t});if(n!==void 0)return new Set(n.map(r=>In(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",Lw="external",Rl=["open","closed","unknown"],gt=new Map,xl=240,Dl=2048;function As(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 Fw(e){let t=e.name.trim();if(t.length===0)throw new Error("External dependency resolver name must not be empty");if(gt.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 gt.set(t,n),()=>{gt.get(t)===n&>.delete(t)}}async function Mw(e,t={}){let n=e.trim();if(!me(n))return null;let r=[...gt.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=As(c.title,"",xl),u=As(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 Nw(e){let t=e?.trim();if(t)return pe(t)?Tl:t}function $w(e,t,n){return Ol(e,t,n)}function Ol(e,t,n){let r=e.trim();return pe(n)||me(r)?r:un(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 _t(e){if(typeof e!="string")return;let t=e.trim().toLowerCase();return t.length>0?t:void 0}function Cn(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 Fl(e,t){let n=[...e].sort(),r=Ll(n,t),i=new Set,o=Ml(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 Ml(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 Os(e){let t=new Map;for(let n of e){let r=_t(n?.id);r&&!t.has(r)&&t.set(r,n)}return t}function $l(e,t,n){let r=_t(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=_t(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 Ls(e,t){let n=new Map;for(let[r,i]of e){let o=$l(r,i,e);o&&n.set(Cn(o),o);for(let s of i.dependencies??[]){let a=Pl(r,s,e,t);a&&n.set(Cn(a),a)}}return[...n.values()].sort((r,i)=>Cn(r).localeCompare(Cn(i)))}function Fs(e,t=z()){return Ls(Os(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=_t(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 Sn(e,t=r=>r==="closed"||r==="canceled",n=z()){let r=Os(e),i=Ls(r,n),o=Ur(i),s=new Set([...r].filter(([,c])=>t(c.status)).map(([c])=>c)),a=Fl([...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 zw(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 Ur(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 jr(e,t){let n=new Set(t);return e.every(r=>n.has(r))}function Vw(e,t,n,r,i){let o=_t(n);if(!o)return;let s=Sn(e,r,i),a=Sn(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&&jr(u.dependency_parent_ids,f.dependency_parent_ids)));if(c){let u=[c.scalar_parent_id,...c.dependency_parent_ids].sort();throw new g(`Hierarchy mutation would assign ${c.child_id} to multiple parents: ${u.join(", ")}.`,_.CONFLICT,{code:"hierarchy_parent_divergence_created",source_id:o,target_id:c.child_id,verification_errors:u})}let d=a.cardinality_violations.find(u=>(u.child_id===o||u.parent_ids.includes(o))&&!s.cardinality_violations.some(f=>f.child_id===u.child_id&&jr(u.parent_ids,f.parent_ids)));if(d)throw new g(`Hierarchy mutation would assign ${d.child_id} to multiple parents: ${d.parent_ids.join(", ")}.`,_.CONFLICT,{code:"hierarchy_cardinality_created",source_id:o,target_id:d.child_id,verification_errors:d.parent_ids});let l=a.cycles.find(u=>u.item_ids.includes(o)&&!s.cycles.some(f=>jr(u.item_ids,f.item_ids)));if(l)throw new g(`Hierarchy mutation would create a cycle: ${l.item_ids.join(" -> ")}.`,_.CONFLICT,{code:"hierarchy_cycle_created",source_id:o,verification_errors:l.item_ids})}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="41f814be-ee87-5cae-b674-69c2e7f42655")}catch{}})();function Je(e){if(typeof e!="string")return;let t=e.trim();if(!(!t||["none","null","n/a","na"].includes(t.toLowerCase())))return t}function yt(e){let t=Je(e);return t?.toLowerCase()==="no-active-blocker"?void 0:t}function vt(e,t,n=!0){let r=Je(e);return n&&(pe(t)||r!==void 0&&me(r))}function Hr(e,t){return vt(e,t)?`external\0${e}`:`local\0${e.toLowerCase()}`}function Ms(e,t,n,r){return vt(e,t)?r.get(e):n.get(e.toLowerCase())}function Xe(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=Je(r.id);if(!i)continue;let o=typeof r.kind=="string"?r.kind:"related",s=`${o}\0${Hr(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=Xe(r.holder_id,i.holder_id);if(o!==0)return o;let s=Xe(r.target_id,i.target_id);return s!==0?s:Xe(r.kind,i.kind)})}function Gl(e,t,n,r,i){if(typeof n!="object"||n===null)return;let o=Je(n.id);if(!o||Hr(o,n.source_kind)!==Hr(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=Je(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=Xe(i.holder_id,o.holder_id);if(s!==0)return s;let a=Xe(i.target_id,o.target_id);return a!==0?a:Xe(i.dependency_kind,o.dependency_kind)})}function Br(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=Je(d);if(!p||r.has(p.toLowerCase())||vt(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=yt(n.blocked_by);r&&vt(r)&&!t.has(r)&&t.set(r,r);for(let i of n.dependencies??[]){if(typeof i!="object"||i===null||!vt(i.id,i.source_kind))continue;let o=yt(i.id);o&&!t.has(o)&&t.set(o,o)}}return[...t.values()].sort((n,r)=>n.localeCompare(r))}var Ns=new WeakMap;function Tn(e){return e.hierarchyIntegrity??Ns.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 Qe(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=Br(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 h=m;for(;d.has(h.toLowerCase());)h=`external:${h}`;l.set(m,h),d.add(h.toLowerCase())}let u=i.map(m=>{let h=yt(m.parent),v=yt(m.blocked_by),b=(m.dependencies??[]).flatMap(y=>{if(typeof y!="object"||y===null)return[];let w=y,E=yt(w.id);return E?[{id:Ms(E,w.source_kind,o,l),kind:typeof w.kind=="string"?w.kind:"related"}]:[]});return{id:m.id.trim(),...h?{parent:o.get(h.toLowerCase())}:{},...v?{blocked_by:Ms(v,void 0,o,l)}:{},dependencies:b}}),f=Sn(i,t,r),p={graph:Bt.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 Ns.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 Gr=["id","title","status","type","priority","parent","updated_at"],Kr=["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 zr(e=[]){return[...new Set([...yr,"body",...Yl,...e])].flatMap(t=>[t,`item.${t}`]).sort()}var t0=["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 n0(e=[]){return[...[...new Set([...yr,...e,"notes_count","tests_count","collection_counts"])].flatMap(t=>[t,`item.${t}`]),...Xl,...Jl,...Ql,...Zl].sort()}var r0=["id","title","status","type","priority","updated_at","score","matched_fields"],eu=["score","matched_fields","highlights"],$s=["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 i0(e=[]){let t=[...new Set(e)];return[...eu,...$s,...$s.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 Ps(e,t){let n=e.trim().toLowerCase();return t.alias_to_id.get(n)??n}function Bs(e){return{isTerminal(t){return e.terminal_statuses.has(Ps(t,e))},classify(t){let n=Ps(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 Vr(e){return K(e.acceptance_criteria)===void 0}function qr(e){return!Number.isFinite(e.estimated_minutes)}function Gs(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 Wr(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,Vr(e)],[t.estimatesMissing,qr(e)],[t.resolutionMissing,Gs(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 Vr(e)||qr(e)||Gs(e,t)}function Ks(e,t,n){return Wr(t)?!(!su(e,t,n)||t.metadataMissing&&!au(e,n)):!0}var Yr=["acceptance_criteria","estimated_minutes","resolution","tags","parent"];function cu(e,t){switch(t){case"acceptance_criteria":return!Vr(e);case"estimated_minutes":return!qr(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 js(){let e={};for(let t of Yr)e[t]={present:0,applicable:0,percent:100};return e}function Us(e,t,n){for(let r of Yr){if(!du(t,r,n))continue;let i=e[r];i.applicable+=1,cu(t,r)&&(i.present+=1)}}function Hs(e){for(let t of Yr){let n=e[t];n.percent=lu(n.present,n.applicable)}}function a0(e,t){let n=js(),r={};for(let i of e){Us(n,i,t);let o=r[i.type]??(r[i.type]=js());Us(o,i,t)}Hs(n);for(let i of Object.values(r))Hs(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 c0(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 Ze=["notes","learnings","files","docs","tests","comments","deps","body","linked_command"];function Oe(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 Vs(e,t){switch(t){case"notes":return Oe(e.notes);case"learnings":return Oe(e.learnings);case"files":return Oe(e.files);case"docs":return Oe(e.docs);case"tests":return Oe(e.tests);case"comments":return Oe(e.comments);case"deps":return Oe(e.dependencies);case"body":return hu(e.body);case"linked_command":return gu(e.tests)}}function qs(e){return Ze.some(t=>e[t]!==void 0)}function Ws(e,t){for(let n of Ze){let r=t[n];if(r===void 0)continue;let i=Vs(e,n);if(r==="present"&&!i||r==="absent"&&i)return!1}return!0}function Ys(e){return Ze.some(t=>t!=="body"&&e[t]!==void 0)}function Xs(e){return e.body!==void 0}function zs(e,t){return t===0?100:Math.round(e/t*1e3)/10}function _u(){let e={};for(let t of Ze)e[t]={present:0,total:0,percent:100};return e}function l0(e){let t=_u(),n=e.length;for(let s of e)for(let a of Ze)Vs(s,a)&&(t[a].present+=1);for(let s of Ze)t[s].total=n,t[s].percent=zs(t[s].present,n);let r=t.body,i=n-r.present,o={present:i,total:n,percent:zs(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]="9260454d-9ece-5b5f-a812-f9865b6f4ee4")}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}),Js=[{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"}],ra=e=>{let t=Js.find(n=>e[n.presentKey]===!0&&e[n.absentKey]===!0);if(t)throw new g(`Cannot combine ${t.presentFlag} with ${t.absentFlag} for the same field.`,_.USAGE);return Object.fromEntries(Js.flatMap(n=>e[n.presentKey]===!0?[[n.field,"present"]]:e[n.absentKey]===!0?[[n.field,"absent"]]:[]))},Qs=["priority","deadline","updated_at","created_at","title","parent"],Zs=["asc","desc"],ia=new Set(fs);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 g(`List source is incomplete: ${r} item document(s) and ${i} item directory/directories could not be read.`,_.GENERIC_FAILURE,{code:"list_source_incomplete",why:"Strict list reads fail closed so agents and SDK consumers never treat an omitted item as a complete workspace.",nextSteps:["Run pm validate --check-storage-integrity to locate unreadable tracker artifacts.","Repair the reported files or align the installed decoder version, then retry."]});return o}function 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 oa(e,t){for(let n of wu)t[n.key]===!0&&(e[n.summaryKey]=!0)}function sa(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 oa(t,e),t}function Cu(e){let t={};return sa(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),ca(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),sa(c,n),oa(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 aa(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)=>aa(n,r,t))}function ea(e,t){if(e!==void 0)return ve(e,new Date,t)}function bt(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 g("Choose only one updated_at window: --today, --recent, or --updated-after.",_.USAGE);if(e.today===!0){let n=new Date;return n.setHours(0,0,0,0),n.toISOString()}return e.recent===!0?bt(xu,"recent"):bt(e.updatedAfter,"updated-after")}function ca(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 g("--ids requires at least one non-empty item ID",_.USAGE);let n=t.split(",").map(r=>r.trim()).filter(r=>r.length>0);if(n.length===0)throw new g("--ids requires at least one non-empty item ID",_.USAGE);return new Set(n)}function da(e){if(e===void 0)return;let t=String(e).trim(),n=t.length===0?Number.NaN:Number(t);if(!Number.isInteger(n)||n<0)throw new g("Offset filter must be a non-negative integer",_.USAGE);return n}function Fu(e){if(e===void 0)return;let t=e.split(",").map(n=>n.trim()).filter(n=>n.length>0);if(t.length===0)throw new g("List --fields requires a comma-separated list of field names",_.USAGE);return[...new Set(t)]}function Mu(e,t=e.projectionCommand??"list"){let n=e.compact===!0,r=e.brief===!0,i=e.full===!0,o=Fu(e.fields);if(Number(n)+Number(r)+Number(i)+ +(o!==void 0)>1)throw new g("List projection options are mutually exclusive. Use one of --compact, --brief, --full, or --fields.",_.USAGE,{code:"projection_options_mutually_exclusive",recovery:{suggested_retry:`pm ${t} --brief`,suggested_retry_args:[t,"--brief"]}});if(i)return{mode:"full",fields:[]};if(r){let s=la(e.sort);return{mode:"brief",fields:[...new Set([...Kr,...s?[s]:[]])]}}return n?{mode:"compact",fields:[...Gr]}:o?{mode:"fields",fields:[...new Set(o.map(s=>Le(s)))]}:{mode:"full",fields:[]}}function Le(e){return e.startsWith("item.")?e.slice(5):e}function Nu(e,t,n){if(e.mode!=="fields")return;let r=zr(t),i=new Set(r.map(s=>Le(s))),o=e.fields.filter(s=>!i.has(Le(s)));if(o.length>0){let s=[n,"--fields",e.fields.filter(a=>!o.includes(a)).join(",")||"id,title,status"];throw new g(`Unknown list --fields value(s): ${o.join(", ")}`,_.USAGE,{code:"unknown_field_projection",examples:["pm list-open --fields id,title,status,type,updated_at","pm list --fields id,title,parent,priority --limit 10","pm list-all --fields id,title,body --limit 5"],recovery:{allowed_values:r,suggested_retry:Co(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 la(e){if(e===void 0)return;let t=e.trim().toLowerCase(),n=$u.get(t);if(n)return n;if(!Qs.includes(t))throw new g(`Sort field must be one of ${Qs.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(!Zs.includes(t))throw new g(`Sort order must be one of ${Zs.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 g("Assignee filter must be one of assigned|unassigned",_.USAGE);if(t!=="assigned"&&t!=="unassigned")throw new g(`Invalid assignee filter "${e}". Allowed: assigned|unassigned`,_.USAGE);return t}function ta(e,t){return vs(e,t,{strict:!0})}function ua(e){return ht(e,{label:"--tag",normalize:t=>t.toLowerCase()})}function Hu(e,t,n){let r=ua(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 g('--assignee no longer accepts "none" or "null". Use --assignee-filter unassigned.',_.USAGE);if(e!==void 0&&t==="unassigned")throw new g("Cannot combine --assignee with --assignee-filter unassigned",_.USAGE)}function Gu(e,t,n,r){let i=ht(t.assignee,{label:"--assignee"}),o=Uu(t.assigneeFilter);Bu(i,o);let s=yu(t),a=ra(t);return{idsFilter:Lu(t.ids),statusSet:e&&e.length>0?new Set(e):void 0,excludeTerminal:t.excludeTerminal===!0,typeFilter:xs(t.type,n),tagFilters:ua(t.tag),priorityFilter:Ds(t.priority),deadlineBefore:ea(t.deadlineBefore,"deadline-before"),deadlineAfter:ea(t.deadlineAfter,"deadline-after"),updatedAfter:Ou(t),updatedBefore:bt(t.updatedBefore,"updated-before"),createdAfter:bt(t.createdAfter,"created-after"),createdBefore:bt(t.createdBefore,"created-before"),assigneeFilter:i,assigneeModeFilter:o,parentFilter:t.parent?.trim(),treeEnabled:t.tree===!0,sprintFilter:ht(t.sprint,{label:"--sprint"}),releaseFilter:ht(t.release,{label:"--release"}),missingMetadataFilters:s,missingMetadataActive:Wr(s),lifecycleClassifier:Bs(r),contentFieldFilters:a,contentFiltersActive:qs(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 Do(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&&!Ks(e,t.missingMetadataFilters,t.lifecycleClassifier)||t.contentFiltersActive&&!Ws(e,t.contentFieldFilters)||!gn(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 wt(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function na(e,t,n,r){let i=e,o=typeof i.title=="string"?i.title:"",s=r??wt(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)??[]:[wt(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())??[]:[wt(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(),h=f.id.trim().toLowerCase();if(d.has(h))continue;d.add(h);let v=s.get(h)??[];if(c.push(na(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(h)})}if(t===void 0&&n===void 0)for(let f of e){let p=f.id.trim().toLowerCase();d.has(p)||(d.add(p),c.push(na(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=aa(i,o,r);return n==="desc"?-a:a}):Au(e,r)}function rf(e,t,n=!1){let r=Le(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 fa(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?da(t.offset)??0:He(e,t.after,n,r=>r.id)}function ma(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 F(n),i=J(r.schema),o=nn(r.schema),s=e.projectionCommand??"list",a=Mu(e,s);return Nu(a,of(o.definitions),s),{pmRoot:n,settings:r,statusRegistry:i,runtimeFieldFilters:hn(e,o,"list"),typeRegistry:L(r,D()),projection:a}}async function df(e,t,n){let r=t.projection.fields.some(c=>Le(c)==="body"),i=t.projection.mode==="full"||t.projection.fields.some(c=>ia.has(Le(c))),o=ra(e),s=Ys(o),a=Xs(o);return e.includeBody||r||a?await fn(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,n,t.settings.schema):i||s?await ps(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=la(e.sort),n=Pu(e.order)??"asc",r=e.tree===!0;if(!r&&e.treeDepth!==void 0)throw new g("List --tree-depth requires --tree",_.USAGE);if(!t&&e.order!==void 0)throw new g("List --order requires --sort",_.USAGE);return{sortField:t,sortOrder:n,treeEnabled:r,treeDepth:r?ju(e.treeDepth):void 0,parentRoot:r?wt(e.parent):void 0}}function uf(e,t,n){let r=ta(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??ta(e,n),s=ys(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 g("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=fa(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:ma(o,l,u)}}function pa(e,t,n,r){return Se("list",{pmRoot:r,status:e,options:Xt(t,hs),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=Le(p);return m==="body"||ia.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,ko(),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 We(n.pmRoot,[...new Set(Object.values(n.typeRegistry.type_to_folder))]);if(!a)return null;let c=ie(t.limit),d=da(t.offset)??0,l=await us({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(pa(r.filtersStatus,t,i,n.pmRoot),l.items.at(-1).id,d+l.items.length-1):void 0;return{projected:fa(l.items,n.projection,!1),totalMatched:l.total,pageExtras:ma(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)),ca(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 kt(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),h=o.treeEnabled||wt(t.parent)!==void 0?Ur(Fs(m,z())):void 0;Hu(m,t.tag,i);let v=Yu(m,s.resolvedStatus,s.effectiveOptions,r.typeRegistry,r.statusRegistry,r.runtimeFieldFilters,h?.parents_by_child),b=t.dependencyBlocked===!0?(()=>{let E=mt(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,h,m):y;d=ff(w,t,r.projection,o.treeEnabled,pa(s.filtersStatus,t,o,r.pmRoot))}let l=x(),u=[...new Set(i)].sort((m,h)=>m.localeCompare(h)),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 Rn(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 ha(e,t,n){let r=t??n;if(!Number.isInteger(r)||r<1)throw new TypeError(`Invalid ${e} bound: ${String(t)}`);return r}var Xr=class{#e=new Map;#t;#n;constructor(t={}){this.#t=ha("maxResultsPerWorkspace",t.maxResultsPerWorkspace,gf),this.#n=ha("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()}},ga=new Xr;function xn(){return ga}function z0(){ga.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 Jr(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 Dn(e){return Math.max(1,Math.ceil(bf.encode(JSON.stringify(e)).byteLength/4))}function Qr(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=>Qr(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:h}of p.value){if(s.has(m))continue;s.add(m);let v={id:m,distance:f.distance+1,via:f.id,role:Qr(h,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[Qr(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=Dn(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=Dn(o);if(i+s>e.tokenBudget)break;r.push(o),i+=s}return{edges:r,usedTokens:i,candidateCount:n.length}}function _a(e,t,n,r={}){if(!e.nodes().includes(t))throw new TypeError(`Relationship node not found: ${t}`);let i=Jr(r.nodeLimit,20,"nodeLimit"),o=Jr(r.edgeLimit,40,"edgeLimit"),s=Jr(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,...h}=If(e,t,a,r),v=Se("relationship-context",{rootId:t,direction:r.direction??"both",kinds:[...r.kinds??[]].sort(),maxDepth:r.maxDepth??3}),b=He(p.rows,r.cursor,v,({id:V})=>V),y=p.rows.slice(b),w=Dn(u)+Dn(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:M,usedTokens:Ce}=j,N=b+S.length,B=N<p.rows.length,Y=S.at(-1),X=j.candidateCount-M.length,te=p.depthTruncated||B||X>0,ae={rootId:t,...u.status===void 0?{}:{rootStatus:u.status},...h,discoveredNodes:p.rows.length,returnedNodes:S.length,returnedEdges:M.length,omittedNodes:p.rows.length-N,omittedEdges:X,evidenceCount:f.length,hasMore:B};return{root:u,summary:ae,nodes:S,edges:M,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 Ff(e){let t=e?.trim().toLowerCase()??"tree";if(Tf.includes(t))return t;throw new g(`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 g(`Invalid --${t} value "${e}". Use a positive integer.`,_.USAGE);return n}function An(e){if(e===void 0)return;let t=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(t)||t<0)throw new g(`Invalid --max-depth value "${e}". Use a non-negative integer.`,_.USAGE);return t}function Mf(e){let t=e?.trim().toLowerCase()??"none";if(Rf.includes(t))return t;throw new g(`Invalid --collapse value "${e}". Use "none" or "repeated".`,_.USAGE)}function ei(e){let t=e?.trim().toLowerCase()??"both";if(xf.includes(t))return t;throw new g(`Invalid --direction value "${e}". Use "outgoing", "incoming", or "both".`,_.USAGE)}function ti(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 g(`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 Yt(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(va(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 va(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 ya(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,ya(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,ya(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 ba(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=An(e.maxDepth),r=he(e.nodeLimit,"node-limit"),i=he(e.edgeLimit,"edge-limit"),o=he(e.tokenBudget,"token-budget"),s=ti(e.kind,t);return{direction:ei(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 _a(e.graph,t,e.details.map(i=>i.id===t&&r.length>0?{...i,evidence:r}:i),n)}function Zr(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 Zr(u,"file",a.map(f=>f.path),3),Zr(u,"test",c.map(f=>f.command??f.path),2),Zr(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 wa(e,t,n){let r;for(;;){let i=Yt(new TextEncoder().encode(Cr(kr("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 h=zf({canonicalId:n,context:m,missingCount:a,missingReferences:c,referenceLimit:d,summaryOnly:o});if(f=h,o||(m.meta.tokenBudget=u,m.meta.usedTokens=wa(et(h,!1),s,y=>{m.meta.usedTokens=y}),m.meta.usedTokens<=u))return h;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(h=>t.missingIdSet.has(h.toLowerCase())),l=new Set(d.map(h=>h.toLowerCase())),u=t.graph.registry(),f=a.kinds?new Set(a.kinds.map(h=>u.require(h).kind)):void 0,p=new Set([n,...c.value]),m=[...t.dangling.active,...t.dangling.legacy_terminal].filter(h=>Vf({row:h,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=va(e,r,new Set,a,t==="graph"?"repeated":o,new Set,u),p=ba(e,r,void 0),m;for(;;){let h=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-h.nodes.length),omitted_edge_count:Math.max(0,p.edge_count-h.edges.length)},b={id:e,format:t,node_count:h.nodes.length,edge_count:h.edges.length,edge_basis:"deduplicated_directed",missing_count:h.missing_ids.length,...v?{truncation:v}:{}};if(m=t==="tree"?{...b,tree:f}:{...b,graph:h},(m.truncation===void 0?Yt(new TextEncoder().encode(Cr(kr("deps",et(m,!1)),s)).byteLength):wa(et(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 et(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 mk(e,t,n){let r=O(process.cwd(),n.path);await U(r);let i=Ff(t.format),o=An(t.maxDepth),s=Mf(t.collapse);Wt(t.summary===!0,t.full===!0,"--summary");let a=t.summary===!0,c=await F(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=Br(l,m=>$(m,u));for(let m of[...p.active,...p.legacy_terminal]){let h=f.get(m.holder_id.trim().toLowerCase()),v=m.kind.trim().toLowerCase();h&&!h.dependencies.some(b=>b.id.trim().toLowerCase()===m.target_id.trim().toLowerCase()&&b.kind===v)&&h.dependencies.push({id:m.target_id,kind:v})}if(!f.has(e.trim().toLowerCase()))throw new g(`Item ${e} not found`,_.NOT_FOUND);if(i==="context"){let m=f.get(e.trim().toLowerCase()).id,h=a?[]:await Kf(r,m,c,d.type_to_folder),v=w=>$(w,u),b=z(),y=xn().lookup(r,Rn(l,v,b),()=>Qe(l,v,b));return et(Xf({assembly:y.assembly,canonicalId:m,options:t,rootEvidence:h,summaryOnly:a,outputFormat:n.json===!0?"json":"toon"}),a,y.assembly.legacyAliasCounts)}return a?et({id:e,format:i,...ba(e,f,o)},!0,Object.fromEntries(Object.entries(Qe(l,m=>$(m,u)).legacyAliasCounts))):et(Qf(e,i,t,f,o,s,n.json===!0?"json":"toon"),!1,Object.fromEntries(Object.entries(Qe(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 ni(e,t){if(!Number.isFinite(t)||!Number.isInteger(t)||t<0)throw new TypeError(`Invalid path ${e} bound: ${String(t)}`)}function On(e,t){return t.hierarchyDirection==="target_parent"?e.target:e.source}function Et(e,t){return(t.precedence??"source_before_target")==="target_before_source"?e.target:e.source}function tt(e,t){let n=Et(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 Ln(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 ka(e,t){if(!e.hasNode(t))throw new TypeError(`Relationship node not found: ${t}`)}function Ea(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 Ea(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 Ia(e,t,n={}){return Ln(e,t,n,"hierarchy",(r,i)=>On(r.edge,i)===r.id)}function Ca(e,t,n={}){return Ln(e,t,n,"hierarchy",(r,i,o)=>On(r.edge,i)===o)}function Sa(e,t,n={}){return Ln(e,t,n,"ordering",(r,i)=>Et(r.edge,i)===r.id)}function Ta(e,t,n={}){return Ln(e,t,n,"ordering",(r,i,o)=>Et(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){Ea(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 Ra(e,t,n,r={}){ka(e,t),ka(e,n);let i=r.maxPaths??Zf,o=r.maxVisitedPaths??em,s=r.maxDepth??tm;ni("maxPaths",i),ni("maxVisitedPaths",o),ni("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 Mn(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;Mn(e,t,r=>{xa(n,r.source,r.target),xa(n,r.target,r.source)});for(let r of n.values())r.sort();return n}function xa(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 Da(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 Nn(e){return e.direction==="directed"&&(e.ordering||e.hierarchy)}function $n(e){return e.inverse!==void 0&&e.inverse<e.kind?e.inverse:e.kind}function ri(e,t){return(t.hierarchy?On(e,t):e.source===Et(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(!Nn(o))throw new TypeError(`Relationship kind ${o.kind} is not a directed ordering or hierarchy kind`);r.add($n(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(!Nn(o))continue;let s=$n(o);if(t!==void 0&&!t.has(s))continue;let a=ri(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 nt(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 Aa(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 Oa(e){return Math.round(e*1e6)/1e6}function La(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]));Mn(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 Mn(e,t,(i,o)=>{if(!o.ordering)return;let{predecessor:s,successor:a}=tt(i,o);La(r,s,a),La(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:Oa((r.get(e)??0)/2),closeness:Oa(i.get(e))}}function Ma(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 Pn(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 Fm(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}=tt(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 Mm(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=Mm(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 Na(e,t={}){t.signal?.throwIfAborted();let n=bn(e,{registry:e.registry()}),r=Fm(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}=tt(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 $a(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 rt(){return{nodes:0,isolated:0,degree_leq_one:0,semantic_nodes:0,without_semantic_edges:0,degree_histogram:{}}}function Ua(e,t,n,r){let i={all:rt(),active:rt(),terminal:rt()},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)??rt();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 Pa(e){if(!jn(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)||!jn(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 jn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Ha(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:!jn(t)||!jn(n)?!1:["all","active","terminal"].every(r=>Pa(t[r]))&&Object.values(n).every(Pa)}function ja(e,t){return Object.fromEntries([...new Set([...Object.keys(e),...Object.keys(t)])].sort().map(n=>{let r=Object.hasOwn(e,n)?e[n]:rt(),i=Object.hasOwn(t,n)?t[n]:rt(),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 Ba(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:ja(e.coverage_by_lifecycle,t.coverage_by_lifecycle),coverage_by_status:ja(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 it=["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 Un(e){return Wm.has(e)}var Ga={error:0,warning:1,info:2};function Ka(e){return new Set((e??[]).filter(t=>typeof t=="string").map(t=>t.trim().toLowerCase()))}function ot(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=>ot(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 za(e,t,n){let r=e.cardinality_violations.filter(i=>i.legacy_terminal===n);return r.length===0?[]:[ot(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 Va(e,t,n){let r=e.divergences.filter(i=>i.legacy_terminal===n);return r.length===0?[]:[ot(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=Tn(e);return n?[...Ym(n,t),...za(n,t,!1),...za(n,t,!0),...Va(n,t,!1),...Va(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 Wa(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))):(Wa(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(Wa(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 ii(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(ot(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(ii),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(ii),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(ii),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 si(e,t){let n=t.get(e);return n?!n.terminal:!0}function Ya(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(Ya(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=>si(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(Ya);i.push(d?ot("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):ot("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 Hn(e){let t=e.edges.map(n=>n.kind).sort((n,r)=>n.localeCompare(r));return`${e.from} -> ${e.to} (${t.join(" + ")})`}function ai(e){let t=e.graph.registry(),n=new Map;for(let i of e.graph.edges()){let o=t.require(i.kind);if(!Nn(o))continue;let s=ri(i,o);if(s.from===s.to)continue;let a=`${$n(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 ai(e))(si(s.from,t)||si(s.to,t)?r:i).push(Hn(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=nt(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))),h=Object.entries(m).reduce((y,[w,E])=>y+(Un(w)?E:0),0),v=Pn(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:h,semantic_edge_share:u===0?0:h/u,active_nodes:a.active,missing_nodes:a.missing,isolated_active_nodes:a.isolated,degree_leq_one_active_nodes:a.degreeLeqOne,coverage_by_type:Object.fromEntries([...a.byType.entries()].sort(([y],[w])=>y<w?-1:1)),articulation_points:v.articulationPoints.length,bridge_edges:v.bridges.length,...b,finding_subjects_by_code:Object.fromEntries(it.map(y=>[y,0]))}}}function Bn(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=Ka(t.exemptIsolates),s=Ka(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)=>Ga[f.severity]-Ga[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,...Ua(e,n,Un,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 oi(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 qa(e){return e.profile.coverage_by_type??{}}function fp(e,t){let n={},r=qa(e),i=qa(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 Xa(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,h=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:oi(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-h,active_nodes:t.profile.active_nodes-e.profile.active_nodes,missing_nodes:t.profile.missing_nodes-e.profile.missing_nodes,isolated_active_nodes:t.profile.isolated_active_nodes-e.profile.isolated_active_nodes,degree_leq_one_active_nodes:t.profile.degree_leq_one_active_nodes-e.profile.degree_leq_one_active_nodes,edges_by_kind:oi(e.profile.edges_by_kind,t.profile.edges_by_kind),edge_share_by_kind:oi(r,s),semantic_edges:a-i,semantic_edge_share:c-o,coverage_by_type:n,...Ba(e.profile,t.profile)}}}import Ja 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 Qa=2,ci=500,mp=64,pp="graph-durable-cache";function Za(e){return Be(e,pp,30,`graph-cache:${process.pid}`,!1,!1,3e3)}function Ct(e){return Ja.join(e,"runtime","graph-cache.json")}function ec(e){return Ja.join(e,"runtime","graph-audit-baseline.json")}function di(e){if(e!==null)try{let t=JSON.parse(e);return typeof t!="object"||t===null||t.version!==Qa||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 li(e,t){let n=await ye(Ct(e)),r=di(n),i=r?.fingerprint===t;return{exists:n!==null,fresh:i,results:i?r.results:{}}}async function ui(e,t,n,r,i){let o=await Za(e);try{let s=di(await ye(Ct(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(Ct(e),JSON.stringify({version:Qa,fingerprint:t,saved_at:new Date().toISOString(),results:a})),n.results=a}finally{await o()}}async function fi(e){let t=await Za(e);try{await go(Ct(e))}finally{await t()}}async function tc(e,t){let n=Ct(e),r=await ye(n),i=di(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 mi(e,t){return t||e>=ci}function Gn(e){return st(e)&&Object.values(e).every(Fe)}function st(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Fe(e){return Number.isInteger(e)&&Number(e)>=0}function nc(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0&&e<=1}function It(e,t){return e===void 0||t(e)}function hp(e){return st(e)&&Object.values(e).every(nc)}function gp(e){return st(e)?Object.values(e).every(t=>st(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=>It(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=>It(e[o],Fe))&&n.every(o=>It(e[o],Fe)&&(e[o]===void 0||Number(e[o])<=1e4))&&It(e.finding_subjects_by_code,Gn)}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=Gn(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(it.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)||!nc(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+(Un(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(!st(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(!Gn(i)||!st(r)||!Ha(r)||![r.nodes,r.edges,r.active_nodes,r.missing_nodes,r.isolated_active_nodes,r.degree_leq_one_active_nodes].every(Fe)||!Gn(r.edges_by_kind)||!It(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 rc(e){return wp(await ye(ec(e)))}async function ic(e,t){await W(ec(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 oc(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:oc(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: ${oc(t)}`,`group: ${Hn(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 sc(e,t={}){let{redundancyLimit:n,...r}=t,i=Bn(e,r),o=new Map(ai(e).map(d=>[Hn(d),d])),s=i.findings.flatMap(d=>Ip(d,o)),a=i.findings.some(d=>d.sample_truncated);t.signal?.throwIfAborted();let c=nt(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 lc=new Set(["ancestors","descendants","predecessors","successors","paths","impact","dominators"]);function ac(e,t,n){let r=e;if(t&&e.subcommand==="audit"){let{nodes:i,recorded_nodes:o,edges:s,active_nodes:a,terminal_nodes:c,missing_nodes:d,ordering_acyclic:l,active_ordering_acyclic:u,coverage_by_lifecycle:f}=e.profile,p=Object.fromEntries(Object.entries(f).map(([m,h])=>{let{degree_histogram:v,...b}=h;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:An(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:ei(r.direction),maxPaths:he(r.maxPaths,"max-paths"),sample:he(r.sample,"sample")??ke.samples,exemptIsolates:cc(r.exemptIsolate),exemptIsolateTypes:cc(r.exemptIsolateType),saveBaseline:r.saveBaseline===!0,summary:r.summary===!0,unbounded:r.full===!0}}function cc(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(!wr.includes(r))throw _s({command_path:"graph",token:r||"<empty>",allowed:wr});let i=r;if(lc.has(i)&&!t?.trim())throw new g(`graph ${i} requires an item id.`,_.USAGE);if(i==="paths"&&!n?.trim())throw new g("graph paths requires a source and a target item id.",_.USAGE);return i}function pi(e){throw e instanceof TypeError?new g(e.message,_.USAGE):e}function hi(e){return{truncated:e.truncated,cost:{visited_nodes:e.visitedNodes,inspected_edges:e.inspectedEdges}}}function dc(e,t){let n=t.trim().toLowerCase();for(let r of e.details)if(r.id.trim().toLowerCase()===n&&!e.missingIdSet.has(r.id.toLowerCase()))return r.id;throw new g(`Item ${t} not found`,_.NOT_FOUND)}function Tp(e,t,n){let r={ancestors:Ia,descendants:Ca,predecessors:Sa,successors:Ta}[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){pi(s)}let o=hi(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=Ra(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,...hi(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=vn(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){pi(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=bn(t,{registry:t.registry()}),i=Is(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(Tn(e.assembly),e.summary,n)}}function Fp(e,t){let n=Bn(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 Mp(e){let t=e.limit,n={};e.kinds!==void 0&&(n.kinds=e.kinds);let r=Da(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=nt(e.assembly.graph,{...e.kinds===void 0?{}:{kinds:e.kinds},...e.maxDepth===void 0?{}:{maxDepth:e.maxDepth},limit:e.limit})}catch(n){pi(n)}return{subcommand:"redundancy",redundant_count:t.value.length,...hi(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=Aa(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=Na(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=Ma(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=Pn(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=sc(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 uc(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 fc(e,t,n,r,i){return e==="analyze"?Lp(r):e==="audit"?Fp(r,i):e==="plan"?Hp(r,i):e==="communities"?Mp(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 g("--rebuild and --clear apply only to graph index.",_.USAGE);if(e!=="audit"&&t.saveBaseline===!0)throw new g("--save-baseline applies only to graph audit.",_.USAGE);if(e==="slack"&&t.kind!==void 0)throw new g("graph slack analyzes every ordering kind; --kind is not supported.",_.USAGE);if(t.rebuild===!0&&t.clear===!0)throw new g("graph index accepts either --rebuild or --clear, not both.",_.USAGE);if(t.full===!0&&t.limit!==void 0)throw new g(`graph ${e} accepts either --full or --limit, not both.`,_.USAGE)}async function Gp(e,t,n,r,i,o){let s="status";if(o.clear===!0&&(await fi(e),s="cleared"),o.rebuild===!0){await fi(e);let c=await li(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 ui(e,t,c,uc(l,void 0,void 0,d),fc(l,void 0,void 0,d,i));s="rebuilt"}let a=await tc(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:ci,persist_enabled:mi(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(it.map(s=>[s,n.affected_subjects_by_code[s]??0]))}},o=await rc(e);return r&&await ic(e,i),o===void 0?n:{...n,baseline:Xa(o,i)}}async function zp(e,t,n,r,i){try{await ui(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 Bt(o.nodes().filter(f=>!i.has(f)),o.edges().filter(f=>!i.has(f.source)&&!i.has(f.target)),o.registry()),a=$a(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 bE(e,t,n,r,i){let o=Sp(e,t,n);Wt(r.summary===!0,r.full===!0,"--summary");let s=O(process.cwd(),i.path);await U(s);let a=await F(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=M=>$(M,l);Bp(o,r);let f=z(),p=ti(r.kind,f),m=xn().lookup(s,Rn(d,u,f),()=>Qe(d,u,f)),h=Cp(o,m.assembly,p,r);if(o==="index")return ac(await Gp(s,m.fingerprint,h,d.length,u,r),!1);let v=lc.has(o)?dc(h.assembly,t):void 0,b=o==="paths"?dc(h.assembly,n):void 0,y=uc(o,v,b,h),w=await li(s,m.fingerprint),E=w.results[y],S=m.memoize(y,()=>E!==void 0?structuredClone(E):fc(o,v,b,h,u)),P=mi(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,h.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,h,d,u),ac(j,h.summary,"result_rows")}import gi from"node:fs/promises";import _i 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 mc=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 yi(e){return Wp.find(t=>t.matches(e))?.kind}function pc(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||!Yo(i).ok)return i;let s={},a=!1;for(let[d,l]of Object.entries(o)){let u=ge(l)?yi(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,Xo(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 hc(e){let t=[];for(let n of await gc(e)??[])try{let r=await gi.readFile(_i.join(e,"history",n),"utf8");for(let i of r.split(`
|
|
2
|
-
`)){if(i.trim().length===0)continue;let o=_c(i);if(!(o===null||!ge(o.agent_provenance))&&Object.values(o.agent_provenance).some(s=>ge(s)&&yi(s.value)!==void 0)){t.push(n.slice(0,-6));break}}}catch{}return t}async function gc(e){try{return(await gi.readdir(_i.join(e,"history"))).filter(t=>t.endsWith(".jsonl")).sort()}catch{return null}}async function Yp(e,t,n){let r;try{r=await gi.open(_i.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 _c(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=yi(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=_c(a);if(c===null){o.malformed_events+=1;continue}if(typeof c.ts=="string"&&Jt(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 SE(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:mc,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 gc(e);c===null&&(n.unreadable_sources+=1);for(let u of c??[]){let f=await Yp(e,u,Math.max(0,mc-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 at(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 vi(e,t){let n=Ge(e);if(n)throw new g(`History merge input (${t}) contains unresolved conflict markers at line ${n.line}. Merge drivers must receive clean per-side versions.`,_.GENERIC_FAILURE);let r=[];for(let[i,o]of e.split(/\r?\n/).entries()){let s=o.trim();if(s)try{let a=JSON.parse(s);if(typeof a!="object"||a===null||Array.isArray(a))throw new TypeError("history entry must be an object");r.push(a)}catch{throw new g(`History merge input (${t}) contains invalid JSON at line ${i+1}.`,_.GENERIC_FAILURE)}}return r}function 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],h=i[p],v=C(m.ts,h.ts),b=oe(m),y=oe(h);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 g("History union cannot preserve contradictory original branch event orders; leave the file unresolved for manual recovery.",_.GENERIC_FAILURE);return l}function yc(e){return{entries:e,positions:new Map(e.map((t,n)=>[oe(t),n])),index:-1,document:es()}}function Ci(e,t){let n=t??e.index;for(;e.index<n;){let r=xr(e.document,e.entries[e.index+1].patch);if(!r.ok)throw new g("History union cannot preserve a patch that does not apply in its original branch.",_.GENERIC_FAILURE);e.document=r.document,e.index+=1}return e.document}function vc(e,t){if(t!==void 0&&t>e.index+1)throw new g("History union cannot attribute multiple original branch events to one semantic identity; preserve the source histories for manual recovery.",_.GENERIC_FAILURE);return Ci(e,t)}function rh(e,t,n){if(n===0)return;let r=yc(e),i=yc(t),o=Ci(r,n-1);Ci(i,n-1);let s=0,a=new Set([...wc,...kc]);return(c,d)=>{if(s++<n)return c.patch;let l=oe(c),u=vc(r,r.positions.get(l)),f=vc(i,i.positions.get(l)),p=cn(c.patch).filter(y=>{let[w,E]=y.path.slice(1).split("/");return w!=="metadata"||!a.has(E)}),m=xr(d,p);if(!m.ok)throw new g("History union cannot rebase a scalar patch onto the merged replay position; leave the file unresolved for manual recovery.",_.GENERIC_FAILURE);let h=Cc(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(h.merged,y)?v.metadata[y]=h.merged[y]:delete v.metadata[y];let b=an({metadata:v.metadata,body:v.body});return Zp.compare(d,b)}}function PE(e,t,n){let r=vi(e,"base"),i=vi(t,"ours"),o=vi(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 g("Duplicate item identity: history contains independent or unproven create events. Preserve both branches and assign distinct item ids before merging.",_.CONFLICT,{code:"item_identity_conflict"});let a=th(i,o);if(a===i.length&&a===o.length)return{merged:De(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:De(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:De(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=dn([...i.slice(0,a),...u],void 0,{continuousHashSurface:!0,projectPatch:rh(i,o,a)});if(f.skippedOps>0)throw new g(`History union cannot preserve ${f.skippedOps} patch operation(s) after deterministic suffix ordering; leave the file unresolved for manual recovery.`,_.GENERIC_FAILURE);return{merged:De(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 bi(e,t){let n=Ge(e);if(n)throw new g(`Relationship merge input (${t}) contains unresolved conflict markers at line ${n.line}. Merge drivers must receive clean per-side versions.`,_.GENERIC_FAILURE);let r=[];for(let[i,o]of e.split(/\r?\n/).entries()){let s=o.trim();if(!s)continue;let a;try{a=JSON.parse(s)}catch{throw new g(`Relationship merge input (${t}) contains invalid JSON at line ${i+1}.`,_.GENERIC_FAILURE)}if(typeof a!="object"||a===null||Array.isArray(a)||typeof a.eventId!="string"||typeof a.sequence!="number")throw new g(`Relationship merge input (${t}) line ${i+1} is not a relationship event (eventId + sequence required).`,_.GENERIC_FAILURE);r.push(a)}return r}function Kn(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 jE(e,t,n){bi(e,"base");let r=bi(t,"ours"),i=bi(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:Kn(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:Kn(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:Kn(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),h=c.has(p.eventId);return m!==h?Number(h)-Number(m):0}),u=ih([...r.slice(0,s),...l]);return{merged:Kn(u),strategy:"union_reanchor",common_entries:s,entries_from_ours:a.length,entries_from_theirs:d.length,entries_total:u.length,reanchored:!0}}var wc=["tags","dependencies","comments","notes","learnings","files","tests","test_runs","docs","reminders","events"],kc=["acceptance_criteria"],oh=["updated_at"];function Me(e,t){return e===void 0||t===void 0?e===void 0&&t===void 0:k(e)===k(t)}function bc(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 St(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(St)),o=r(t),s=new Set(o.map(St)),a=r(n),c=new Set(a.map(St)),d=o.filter(l=>{let u=St(l);return!i.has(u)||c.has(u)});for(let l of a){let u=St(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 Ec(e,t,n,r){return Me(t,n)?{value:t,from_theirs:!1,conflict:!1}:Me(e,t)?{value:n,from_theirs:!0,conflict:!1}:Me(e,n)?{value:t,from_theirs:!1,conflict:!1}:{value:r==="theirs"?n:t,from_theirs:r==="theirs",conflict:!0}}function Ic(e,t,n,r,i,o,s){let a=Ec(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 wi(e){return{...e.metadata}}function ki(e,t,n){try{let r=No(Fo(e,{...n,requireSupportedFormat:!0}),n),i=Object.entries(r.metadata).find(([,o])=>at(o))?.[0];if(i!==void 0)throw new TypeError(`metadata field ${i} uses the reserved missing-scalar evidence marker`);return r}catch(r){throw r instanceof g&&r.context?.code==="item_format_version_unsupported"?r:new g(`Item merge input (${t}) is not a readable item document: ${String(r)}`,_.GENERIC_FAILURE)}}function 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"?bc(mn(e.baseValue),mn(e.oursValue),mn(e.theirsValue)).join("; "):bc(e.baseValue,e.oursValue,e.theirsValue);return e.accumulator.merged[e.field]=t,Me(t,e.oursValue)||e.accumulator.unionFields.push(e.field),!0}function lh(e){let t=Ic(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 Cc(e,t,n,r,i,o,s){let a=new Set([...wc,...kc]),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 UE(e,t,n,r={}){let i=r.preferred??"ours",o=r.conflictResolution??"preferred_side",s=ki(t,"ours",r),a=ki(n,"theirs",r);if(e.trim().length===0)throw new g("Duplicate item identity: add/add item documents have no common ancestor. Preserve both branches and assign distinct item ids before merging.",_.CONFLICT,{code:"item_identity_conflict",item_id:s.metadata.id});let c=ki(e,"base",r);if(c.metadata.id!==s.metadata.id||c.metadata.id!==a.metadata.id)throw new g("Duplicate or mismatched item identity: all merge sides must address the common ancestor's item id.",_.CONFLICT,{code:"item_identity_conflict",item_id:c.metadata.id});let d=wi(c),l=wi(s),u=wi(a),{merged:f,conflictFields:p,fieldsFromTheirs:m,unionFields:h,conflictDecisions:v}=Cc(d,l,u,i,o,s.metadata.updated_at,a.metadata.updated_at),b=Ic(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=Lo(Math.max(...[c.metadata,s.metadata,a.metadata,y].map(Oo))),{merged:Mo({metadata:y,body:b.value},r),conflict_fields:p,fields_from_theirs:m,union_fields:h,conflict_decisions:v,requested_preference:i,requested_preference_applied:o==="preferred_side",conflict_resolution:o}}function Ei(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Ii(e,t){let n=Ge(e);if(n)throw new g(`JSON merge input (${t}) contains unresolved conflict markers at line ${n.line}.`,_.GENERIC_FAILURE);if(e.trim().length!==0)try{return JSON.parse(e)}catch{throw new g(`JSON merge input (${t}) is not valid JSON.`,_.GENERIC_FAILURE)}}function 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(!Ei(t)||!Ei(n))return null;let a=Ei(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 Sc(e,t,n,r,i,o,s){if(Me(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=Ec(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 Sc(e[r],t[r],n[r],i,o,s,a);if(c){if(l&&Me(e[r],t[r])){a.push(o);return}return l?(s.push(o),i==="theirs"?void 0:t[r]):t[r]}if(!(l&&Me(e[r],n[r])))return l?(s.push(o),i==="theirs"?n[r]:void 0):(a.push(o),n[r])}function HE(e,t,n,r={}){let i=r.preferred??"ours",o=Ii(e,"base"),s=Ii(t,"ours"),a=Ii(n,"theirs"),c=[],d=[],l=Sc(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 jh}from"node:child_process";import{randomUUID as Uh}from"node:crypto";import{readdir as Hh,stat as Bh}from"node:fs/promises";import H from"node:path";import{promisify as Gh}from"node:util";import{constants as Tc}from"node:fs";import{lstat as ph,open as hh}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]="b063a672-991a-5251-a2f3-6a1c7bcafd2f")}catch{}})();var gh={lstat:ph,open:hh};function _h(e){return e.O_NOFOLLOW??0}async function Tt(e,t,n=gh){let r=await n.lstat(e);if(r.isSymbolicLink()||!r.isFile()||r.size>t)return null;let i=await n.open(e,Tc.O_RDONLY|_h(Tc));try{let o=await i.stat();if(!o.isFile()||o.size>t)return null;let s=Buffer.alloc(o.size),a=0;for(;a<s.length;){let{bytesRead:c}=await i.read(s,a,s.length-a,a);if(c===0)break;a+=c}return(await i.stat()).size===o.size&&a===o.size?s.toString("utf8",0,a):null}finally{await i.close()}}import Vn from"node:path";import{execFile as yh}from"node:child_process";import{createHash as Rc}from"node:crypto";import{readdir as vh}from"node:fs/promises";import bh from"node:path";import{promisify as wh}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=wh(yh),zn=/^[a-f0-9]{40}(?:[a-f0-9]{24})?$/u;async function QE(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 Tt(s.trim(),128))?.trim();if(a===void 0||!zn.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||!zn.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"&&zn.test(t.original_head)&&typeof t.original_blob=="string"&&zn.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 vh(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","--",bh.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 kh=/^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$/u,Eh=/^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/u,Wn=2048,Ih=64,Ch=1e5,Sh=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 Yn(e){return kh.test(e)}var Th=new Set(["field","base","ours","theirs","retained","discarded","retained_side","resolution_basis"]),Xn="bounded_non_sensitive_scalars_v1",Rh=new Set(["open","in_progress","blocked","closed","canceled"]),xh=new Set(["risk","confidence","severity"]),Dh=new Set(["low","medium","high","critical"]),Oc=new Map([["priority",new Set([0,1,2,3,4].map(k))],["status",new Set([...Rh].map(k))],...[...xh].map(e=>[e,new Set([...Dh].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 qn(e){return Array.isArray(e)&&e.length<=Wn&&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>Ch||r.depth>Ih)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 Fc(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,Th),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 Ah(e){if(!_e(e))return!1;let t=Object.entries(e);return t.length<=Wn&&t.every(([n,r])=>n.length>0&&n.length<=256&&typeof r=="string"&&/^[a-f0-9]{64}$/u.test(r))}function Oh(e,t){if(typeof e!="string"||e.length===0||e.length>4096||e.includes("\0")||e.includes("\\")||Vn.posix.isAbsolute(e))return!1;let n=Vn.posix.normalize(e);return n!==".."&&!n.startsWith("../")&&Vn.posix.basename(n,Vn.posix.extname(n))===t}function Lh(e){return!qn(e.fields_from_theirs)||!qn(e.union_fields)||!Array.isArray(e.decisions)||e.decisions.length>Wn||!e.decisions.every(Fc)?!1:e.merged_field_hashes===void 0||Ah(e.merged_field_hashes)}function Fh(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===Xn)&&i.includes(e.evidence_source)}function Mh(e){return typeof e.created_at=="string"&&Ir(e.created_at)&&(e.reconciled_at===void 0||typeof e.reconciled_at=="string"&&Ir(e.reconciled_at))}function Ac(e,t){if(!_e(t)||Jn(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 Nh(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===Xn)}function $h(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 Ph(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,Sh)?"required_fields":typeof e.id!="string"||!Yn(e.id)?"receipt_id":typeof e.item_id!="string"||!Eh.test(e.item_id)?"item_id":Oh(e.item_path,e.item_id)?null:"item_path"}function Si(e,t){if(!_e(e))return"required_fields";let n=Ph(e);return n!==null?n:$h(e)?Lh(e)?Fh(e)?Mh(e)?t==="durable"&&!Nh(e)?"durable_decisions":null:"timestamps":"enums":"collections":"operation"}function Ti(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 Mc(e){if(!_e(e))return;if(!qn(e.fields_from_theirs))return"fields_from_theirs";if(!qn(e.union_fields))return"union_fields";if(!Array.isArray(e.decisions)||e.decisions.length>Wn)return"decisions";let t=e.decisions.findIndex(n=>!Fc(n));return t>=0?`decisions[${t}]`:"merged_field_hashes"}function Ri(e,t){return Si(e,t)===null}function Jn(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 xi(e,t){let n=at(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]="6e5e4691-4858-5a54-82b0-65b97d929b57")}catch{}})();var Kh=Gh(jh),Pc=16*1024*1024,Qn=100;async function Di(e){try{let{stdout:t}=await Kh("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 jc(e,t){let n=H.dirname(H.resolve(e,t));for(let r=0;r<12;r+=1){if(await Gt(H.join(n,"settings.json")))return n;let i=H.dirname(n);if(i===n)break;n=i}return null}function Ai(e){return H.join(e,"merge-receipts")}function ct(e){return`${e}.json`}async function Nc(e){let t;try{t=e.readReceipt?await e.readReceipt(e.receiptPath):await Tt(e.receiptPath,Pc)}catch(o){if(Pe(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=Ti(JSON.parse(t))}catch{throw new Error(`Receipt ${e.receiptId} settlement source is not valid JSON.`)}if(!Ri(n,e.evidenceSource)||n.id!==e.receiptId||e.settlement!==void 0&&n.operation===void 0||H.basename(e.receiptPath)!==ct(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:Oi(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)))})):Zn(e).decisions}))}function Oi(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 zh(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 Vh(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 ze(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({...Zn(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 Zn(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:Jn(t.retained)??xe(at(t.retained)?void 0:t.retained),discarded_hash:Jn(t.discarded)??xe(at(t.discarded)?void 0:t.discarded)}))}}async function bI(e){let t=await Di(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:Uh(),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 vr(t),await W(H.join(t,ct(o.id)),`${JSON.stringify(o,null,2)}
|
|
9
|
-
`);let s=await jc(e.cwd,o.item_path);if(s!==null){let a=Ai(s),c=o.decisions.map(u=>({field:u.field,base:null,ours:null,theirs:null,retained:xi(u.field,u.retained),discarded:xi(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:Xn};await vr(a),await W(H.join(a,ct(o.id)),`${JSON.stringify(l,null,2)}
|
|
10
|
-
`)}return o}async function $c(e,t){let n;try{n=await Hh(e)}catch(a){let c=await qh(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>=Qn)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},...Yn(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 Wh(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 qh(e,t,n=Bh){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 Wh(e,t,n){let r;try{r=await Tt(H.join(e,t),Pc)}catch{return{reason:"candidate_unreadable"}}if(r===null)return{reason:"candidate_not_bounded_regular_file"};let i;try{i=Ti(JSON.parse(r))}catch{return{reason:"candidate_invalid_json"}}let o=Si(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:Mc(i)}:{}};let s=i;if(t!==ct(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 er(e,t={}){let n=await Di(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(Ai(i),"durable"),s=new Map(o.receipts.map(d=>[d.id,d])),a=0,c=[];for(let d of r.receipts){let l=s.get(d.id);if(l!==void 0&&!(l.value_policy===void 0?Oi(d):[xt(d)]).includes(xt(l))){s.delete(d.id),a+=1,r.invalid_evidence.length+o.invalid_evidence.length+c.length<Qn&&c.push({evidence_source:"clone_local_and_durable",reason:"copy_provenance_mismatch",receipt_id:d.id});continue}s.set(d.id,l===void 0?d:zh(d,l))}return await Vh(s,o.receipts,i),{receipts:[...s.values()].filter(d=>(t.includeReconciled||d.state==="pending")&&(t.includeLossless!==!1||d.decisions.length>0)).sort((d,l)=>d.created_at.localeCompare(l.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,Qn),invalid_evidence_truncated:r.invalid_evidence_truncated||o.invalid_evidence_truncated||r.invalid_evidence_count+o.invalid_evidence_count+a>Qn,clone_local_evidence_resolved:n!==null}}async function Yh(e,t={}){return(await er(e,t)).receipts}function wI(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 kI(e,t,n={}){let r=await Di(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(!Ri(t,i))throw new Error("Merge receipt trusted settlement input failed schema validation.");let o=x(),s=H.join(r,ct(t.id)),a=await jc(e,t.item_path),c=a===null?null:H.join(Ai(a),ct(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)]:Oi(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 EI(e){let t=await Yh(e.cwd??process.cwd(),{...e,includeLossless:!0});return{ok:!0,count:t.length,receipts:t,generated_at:x()}}async function II(e){let t=await er(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 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]="eeaf2318-5964-5d98-ad90-9faa7fc69975")}catch{}})();function Li(e){if(!e.itemDocument)return[];let t=e.itemDocument.metadata?.assignee?.trim();if(!t||t===e.author||e.force)return[];let n=ss(e.settings);if(n.ownership_enforcement==="strict")throw new g(`Item ${e.subjectId} is assigned to ${t}. Use --force to override.`,_.CONFLICT);return n.ownership_enforcement==="warn"?[`ownership_warning:assignee_conflict:${e.subjectId}:${t}`]:[]}async function Jh(e){let t=await ye(e.subject.historyPath);if(t!==e.historyRawBeforeLock)throw new g(`History for ${e.subject.id} changed while waiting for lock; retry ${e.operation}.`,_.CONFLICT);let n=await 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 g(`Item ${e.subject.id} changed while waiting for lock; retry ${e.operation}.`,_.CONFLICT);return{historyRawUnderLock:t,locatedUnderLock:n,loadedItemUnderLock:r}}async function tr(e){let t=e.writeHistoryRaw??W;try{await t(e.historyPath,e.nextHistoryRaw),await Tr(e.historyPath)}catch(n){try{e.historyRawUnderLock===null?await Xh.rm(e.historyPath,{force:!0}):await t(e.historyPath,e.historyRawUnderLock),await Tr(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=[...Li({itemDocument:e.itemDocument,subjectId:e.subject.id,author:e.author,force:e.force,settings:e.settings})],n=await Be(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 Jh({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 Go(t.historyPath,t.id);if(o.raw===null)throw new g(`No history stream exists for ${t.id}.`,_.NOT_FOUND);if(o.entries.length===0)throw new g(`No history entries exist for ${t.id}; nothing to ${r.slice(8)}.`,_.USAGE);let s=t.located?await Te(t.located,{schema:n.schema}):null,a=we(i.author,n.author_default),c=await e.transform({raw:o.raw,entries:o.entries,verification:Dr(o.entries),loadedItem:s,author:a}),d=Dr(c.rewrittenEntries);if(!d.ok)throw new g(`${r} produced an invalid rewritten chain (${d.errors.join(", ")}).`,_.GENERIC_FAILURE);let l=c.changed&&!i.dryRun?await 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 tr({historyPath:t.historyPath,nextHistoryRaw:De(c.rewrittenEntries),historyRawUnderLock:u.historyRawUnderLock})},applyPostRewrite:c.afterWrite??(async()=>Vt({path:t.historyPath,scope:"project",op:`${r.replace("-","_")}:history`}))}):[];return c.report({verification:d,warnings:l})}import{isUtf8 as Qh}from"node:buffer";import{readFile as Zh}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 eg(e){let t;try{t=JSON.parse(e)}catch{if(e.trimStart().startsWith("{")&&e.includes("}"))throw new g("History salvage cannot discard a potentially complete record with trailing corruption.",_.CONFLICT,{code:"history_salvage_refused"});return null}if(typeof t!="object"||t===null||Array.isArray(t))throw new g("History salvage would conceal interior corruption or a malformed record.",_.CONFLICT,{code:"history_salvage_refused"});let n=t;if(!Array.isArray(n.patch)||![n.ts,n.author,n.op,n.before_hash,n.after_hash].every(r=>typeof r=="string"))throw new g("History salvage requires complete history records before the invalid tail.",_.CONFLICT,{code:"history_salvage_refused"});return n}function tg(e){if(Ge(e))throw new g("Resolve history merge conflicts before salvage.",_.CONFLICT,{code:"history_salvage_refused"});let t=[],n=0,r,i=0;for(let[s,a]of e.split(`
|
|
11
|
-
`).entries()){if(!a.trim()){n+=a.length+1;continue}let c=eg(a);if(c===null){r===void 0&&(r=n,i=s+1),n+=a.length+1;continue}if(r!==void 0)throw new g("History salvage would discard a record or conceal interior corruption.",_.CONFLICT,{code:"history_salvage_refused",required:"Recover the damaged record from version control or a backup; no bytes were changed."});t.push(c),n+=a.length+1}let o=le(t);if(!o.ok||o.item_hash_version===void 0)throw new g("History salvage requires a nonempty verified prefix.",_.CONFLICT,{code:"history_salvage_refused",verification_errors:o.errors,required:"Recover an intact history prefix from version control or a backup."});return{entries:t,itemHashVersion:o.item_hash_version,prefix:r===void 0?e:e.slice(0,r),receipt:r===void 0?null:{first_invalid_line:i,discarded_bytes:Buffer.byteLength(e.slice(r)),discarded_sha256:re(e.slice(r)),retained_entries:t.length}}}async function ng(e,t,n){if(!e.located)return{itemRaw:null,document:n};let r=await ms(e.located,{schema:t.schema});return{itemRaw:r.raw,document:r.document??n}}async function Bc(e){let t;try{t=await Zh(e)}catch(n){if(ce(n))return null;throw n}if(!Qh(t))throw new g("History salvage requires UTF-8 input; recover binary corruption from a byte-preserving backup.",_.CONFLICT,{code:"history_salvage_refused"});return t.toString("utf8")}async function 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 g("Tail salvage cannot be combined with other repair modes.",_.USAGE);let o=await Bc(t.historyPath);if(o===null)throw new g(`No history stream exists for ${t.id}.`,_.NOT_FOUND);await qt({path:t.historyPath,scope:"project"});let s=tg(o),a=ln(s.entries,s.entries.length-1),c=ts(a);if(typeof a.metadata.id=="string"&&a.metadata.id!==t.id)throw new g("History belongs to another item; salvage refused.",_.CONFLICT,{code:"history_salvage_refused"});let d=await ng(t,n,c),l=Li({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 Be(e.pmRoot,t.id,n.locks.ttl_seconds,i,!!r.force,n.governance.force_required_for_stale_lock,n.locks.wait_ms);try{let h=await 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(h!==o||b!==d.itemRaw)throw new g("History or item changed while waiting for salvage lock; retry.",_.CONFLICT);let y=on({...Zo({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 tr({historyPath:t.historyPath,historyRawUnderLock:o,nextHistoryRaw:`${s.prefix}${JSON.stringify(y)}
|
|
12
|
-
`}),l.push(...await Vt({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 Mi from"node:path";import id from"fast-json-patch";import Dt from"node:fs/promises";import{createHash as rg}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,...Ao]),Vc=11,ig="history-drift-cache.json";function qc(e){return zc.join(e,"runtime",ig)}async function og(e){try{let t=await Dt.readFile(qc(e),"utf8"),n=JSON.parse(t);return n.version!==Vc||n.history_item_hash_version!==rn||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)||!Ve.includes(r.item_hash_version)&&r.version_skew!==!0||r.chain_ok&&r.version_skew!==!0&&Ve.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 sg(e,t,n,r,i){let o=is(e),s;try{s=await Dt.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 ag(e){return!Fi.has(e.hash_algorithm)||e.item_hash_version!==void 0&&!Ve.includes(e.item_hash_version)}async function cg(e){let t=await Dt.readFile(e,"utf8"),n=rg("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(ag),a=r[r.length-1],c=Fi.has(a.hash_algorithm),d=a.item_hash_version,l=d!==void 0&&Ve.includes(d),u=l?d:o.item_hash_version;return{latestAfterHash:i,hashAlgorithm:c?be(a.hash_algorithm):void 0,identityDiscontinuities:Rr(r),chainOk:o.ok,versionSkew:s,latestHashComparable:c&&u!==void 0&&(!s||l||d===void 0),contentHash:n,itemHashVersion:u??rn}}function dg(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 cg(t)||(n.missingStreams.push(e),null)}catch{return n.unreadableStreams.push(e),null}}function lg(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(!(dg(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:!lg(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&&Ve.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=Ue(e,t.id),o=await Dt.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&&(sn({metadata:c,body:a},s.verification.itemHashVersion,s.verification.hashAlgorithm).includes(s.verification.latestAfterHash)||r.hashMismatches.push(t.id)),s.cacheDirty}async function ug(e,t){if(!(t.unreadableStreams.includes(Z)||t.chainMismatches.includes(Z)||t.versionSkews.includes(Z)))try{let n=await os(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 _C(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 og(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 sg(e,i,o,a,r);if(s||=d,await ug(e,r),s||Object.keys(i).length!==Object.keys(o).length){let l=qc(e);try{await Dt.mkdir(zc.dirname(l),{recursive:!0}),await W(l,JSON.stringify({version:Vc,history_item_hash_version:rn,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]="42f8db8f-d659-58e9-84af-21ced6d6a403")}catch{}})();function Zc(e,t){return t==="body"?e.body:e.metadata[t]}function fg(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 mg(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=>fg(e,r)))return t;let n=t.map(r=>e==="comments"?r:mg(r));return[...new Map(n.map(r=>[k(r),r])).values()]}function Ni(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)&&Ni(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)&&Ni(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 cn(o.patch))s.add(pn(c.path)),c.from&&s.add(pn(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 pg(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(pn(m.path));let o=new Set([...i].filter(m=>Ni(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,h)=>m.localeCompare(h)),l=[...s].sort((m,h)=>m.localeCompare(h)),u=[...o].sort((m,h)=>m.localeCompare(h)),f=[...new Set(a.map(m=>m.author))].sort((m,h)=>m.localeCompare(h)),p=[...new Set(c.map(m=>m.author))].sort((m,h)=>m.localeCompare(h));return{reconciled_field_count:i.size,reconciled_fields:d,reverted_field_count:s.size,reverted_fields:l,discarded_events:a,discarded_authors:f,preserved_field_count:o.size,preserved_fields:u,preserved_events:c,preserved_authors:p,recovery_hint:a.length>0?"Reconciliation keeps the on-disk item and overwrites these replayed mutations. To recover one, inspect it with pm history <id> --diff --field <field>, then re-apply the lost value with pm update.":null}}async function hg(e){try{return await rd(e)}catch{return null}}async function gg(e){if(await hg(Mi.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 _g(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 gg({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:Mi.relative(o,t.currentItemPath).split(Mi.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 g("Restored-origin receipt evidence no longer proves the exact clean item snapshot.",_.CONFLICT,{code:"merge_reconcile_receipt_evidence_untrusted",recovery:{suggested_retry:"pm merge reconcile --dry-run"}})}async function yg(e){let t=new Set(e.options.mergeReceiptProof?.receipts.filter(o=>o.item_id===e.subjectId).map(o=>o.id)??[]),n=(e.options.mergeReceiptProof?await er(e.options.mergeReceiptProof.gitWorkspaceRoot??process.cwd(),{includeReconciled:!0,includeLossless:!0,pmRoot:e.pmRoot}):void 0)?.receipts.filter(o=>o.item_id===e.subjectId&&t.has(o.id))??[],r=e.options.mergeReceiptProof?await _g({proof:{...e.options.mergeReceiptProof,receipts:n},id:e.subjectId,itemPath:e.itemReplayContext.currentItemPath,currentItemReplay:e.itemReplayContext.currentItemReplay,reconciliation:e.reconciliation}):void 0;if(r&&!r.trusted&&e.options.force!==!0)throw new g(`Merge receipt evidence for ${e.subjectId} does not prove the exact item snapshot (${r.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 i=r?.trusted?n.filter(o=>r.receipt_ids.includes(o.id)):[];return{mergeReceiptProof:r,effectiveAuditContext:i.length>0&&e.options.force!==!0?{...e.options.auditContext,merge:{receipts:i.map(Zn)}}:e.options.auditContext}}function vg(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=an(i.document),a=o[o.length-1].after_hash;return{currentItemReplay:s,currentItemPath:r,matchedChainBefore:qe(s,n,be(o.at(-1)?.hash_algorithm)).includes(a),currentItemRawBeforeLock:i.raw,loadedItem:i}}function bg(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 wg(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=qe(e.finalReplay,e.itemHashVersion,r),o=e.reanchorEntries[e.reanchorEntries.length-1].after_hash,s=i.indexOf(o),a=qe(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(on({...c,event_class:Ko(c)})),{rewrittenEntries:t,auditEntryAdded:!0}}function kg(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 Eg(e,t,n){let{pmRoot:r,settings:i,typeRegistry:o}=await Lr(n.path),s=await _n(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=>Cg({pmRoot:r,subject:s,options:t},a)})}function Ig(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 Cg(e,t){let{pmRoot:n,subject:r,options:i}=e,o=t.entries,s=t.verification,a=le(o),c=i.normalizeProvenance?pc(o):{entries:o,receipt:{changed:!1,events_changed:0,observations_removed:0,invalid_values:[]}},d=rs(c.entries),l=new Set(c.entries.map(N=>N.item_hash_version).filter(N=>N!==void 0)),u=dn(c.entries,d),f=vg(r,t,d);await nd(i.mergeAbandonmentProof,f,s.ok,u);let p=u.finalDocument,m=qe(p,d),h=!1;if(f.currentItemReplay!==null){let N=qe(f.currentItemReplay,d);h=!m.some((B,Y)=>B===N[Y])}let v=h&&f.currentItemReplay?pg(u.entries,p,f.currentItemReplay):void 0,{mergeReceiptProof:b,effectiveAuditContext:y}=await yg({options:i,pmRoot:n,subjectId:r.id,itemReplayContext:f,reconciliation:v}),w=[u.entriesRehashed>0,u.entriesPatchRepaired>0,h,Ig(i,u.entries,y),c.receipt.changed].some(Boolean),E=t.author,S=!!i.dryRun,P=bg({message:i.message,entriesRehashed:u.entriesRehashed,entriesPatchRepaired:u.entriesPatchRepaired,reconcileNeeded:h}),{rewrittenEntries:j,auditEntryAdded:M}=wg({reanchorEntries:u.entries,changed:w,reconcileNeeded:h,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=kg(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:h,audit_entry_added:M,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 BC(e,t){if(t&&e!==void 0)throw new g("history-repair: <id> and --all are mutually exclusive; pass an item id to repair one stream or --all to repair every drifted stream.",_.USAGE);if(!t&&e===void 0)throw new g("history-repair: provide an item <id> or pass --all to repair every drifted stream.",_.USAGE)}async function GC(e,t){if(e.salvageTail===!0)throw new g("Tail salvage requires one explicit item ID; --all is not supported.",_.USAGE);let{pmRoot:n,settings:r,typeRegistry:i}=await Lr(t.path),o=[],s=await fn(n,r.item_format,i.type_to_folder,o,r.schema,{forceSourceScan:!0}),a=await Qc(n,s),c=e.normalizeProvenance?await hc(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 Eg(p,{...e,auditContext:e.auditContextById?.[p],auditContextById:void 0,mergeReceiptProof:e.mergeReceiptProofById?.[p]??e.mergeReceiptProof,mergeReceiptProofById:void 0},t),h=m.changed?"repaired":"skipped_clean";f[h]+=1,u.push(...m.warnings.map(v=>`${p}:${v}`)),l.push({id:p,outcome:h,entries_rehashed:m.history.entries_rehashed,entries_patch_repaired:m.history.entries_patch_repaired,reconciled_with_item:m.history.reconciled_with_item,...m.reconciliation?{reconciliation:m.reconciliation}:{},...m.merge_receipt_proof?{merge_receipt_proof:m.merge_receipt_proof}:{},warnings:m.warnings})}catch(m){f.failed+=1,l.push({id:p,outcome:"failed",error:m instanceof Error?m.message:String(m)})}return e.dryRun||await Wo(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 YC(e){await jo({pmRoot:e.pmRoot,principal:e.principal,itemId:e.itemId,lineageIds:await sd(e.pmRoot,e.settings,e.itemId)})}async function XC(e){await Uo(e)}async function JC(e){await Ho({pmRoot:e.pmRoot,principal:e.principal,...e.itemId?{itemId:e.itemId,lineageIds:await sd(e.pmRoot,e.settings,e.itemId)}:{}})}var QC={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 Sg}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 $i=["agenda","day","week","month"],Pi=["markdown","toon","json"],Tg=["sun","mon","tue","wed","thu","fri","sat"],Rg=365,xg=365,ld=28,Dg=1e3;function ji(e,t){if(e===void 0)return;let n=Number(e);if(!Number.isInteger(n)||n<0)throw new g(`${t} must be a non-negative integer`,_.USAGE);return n}function Ag(e){if(!e)return new Set(["deadlines","reminders","events"]);let t=e.trim().toLowerCase();if(t==="all")return new Set(["deadlines","reminders","events"]);let n=t.split(/[|,]/).map(i=>i.trim()).filter(i=>i.length>0);if(n.length===0)throw new g("Calendar include filter must not be empty",_.USAGE);let r=new Set;for(let i of n){if(i==="deadlines"||i==="deadline"){r.add("deadlines");continue}if(i==="reminders"||i==="reminder"){r.add("reminders");continue}if(i==="events"||i==="event"||i==="scheduled"){r.add("events");continue}throw new g("Calendar include filter must be deadlines|reminders|events|scheduled|all",_.USAGE)}return r}function ud(e,t){let n;for(let r of t){let i=bo(e,r,2);i!==null&&(n===void 0||i<n.distance)&&(n={choice:r,distance:i})}return n?.choice}function Og(e){if(!e)return"agenda";let t=e.trim().toLowerCase();if(!$i.includes(t)){let n=ud(t,$i);throw new g(`Calendar view must be one of ${$i.join("|")}${n?`. Did you mean "${n}"?`:"."}`,_.USAGE)}return t}function Lg(e){if(!e)return;let t=e.trim().toLowerCase();if(!Pi.includes(t)){let n=ud(t,Pi);throw new g(`Calendar format must be one of ${Pi.join("|")}${n?`. Did you mean "${n}"?`:"."}`,_.USAGE)}return t}function oS(e,t){let n=Lg(e.format);if(t.json&&n&&n!=="json")throw new g("Cannot combine --json with --format markdown|toon",_.USAGE);return t.json?"json":n??"markdown"}function Fg(e,t){if(e===void 0)return;let n=Q(e,t);if(!n){let r=t.definitions.map(i=>i.id);throw new g(`Calendar status filter must be one of ${r.join("|")}`,_.USAGE)}return n}function Mg(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!t)throw new g("Calendar assignee filter must be one of assigned|unassigned",_.USAGE);if(t!=="assigned"&&t!=="unassigned")throw new g(`Invalid calendar assignee filter "${e}". Allowed: assigned|unassigned`,_.USAGE);return t}function nr(e){return new Date(e).toISOString().slice(0,10)}function fd(e,t){if(!t||t==="UTC")return nr(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 nr(e)}function Gi(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(Gi(e)),n=t.getUTCDay(),r=n===0?-6:1-n;return Ie(t.toISOString(),r)}function Ng(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),1,0,0,0,0)).toISOString()}function $g(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth()+1,1,0,0,0,0)).toISOString()}function Pg(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 jg(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)=>je(r)-je(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 Tg[new Date(e).getUTCDay()]}function Ug(e){let t=Date.parse(e);return Number.isFinite(t)?new Date(t).toISOString():null}function Hg(e){let t=new Set;for(let n of e??[]){let r=Ug(n);r&&t.add(r)}return t}function Bg(e,t,n,r,i){let o=e??Ie(n,-(r??xg)),s=t??Ie(e??n,i??Rg);return{start:o,end:C(s,o)>0?s:Ie(o,1)}}function Gg(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??Dg,interval:t.interval??1,countLimit:t.count??Number.POSITIVE_INFINITY,until:t.until,excluded:Hg(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)=>je(s)-je(a)),sortedMonthDays:[...new Set(o)].sort((s,a)=>s-a),occurrences:[],produced:0}}function rr(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 ir(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 Kg(e){let t=e.startAt;for(let n=0;n<e.maxOccurrences&&!(ir(e,t)&&rr(e,t)==="stop");n+=1)t=Ie(t,e.interval);return e.occurrences}function zg(e,t,n){let r=je(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 Vg(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=zg(e,r,i);if(ir(e,o)&&rr(e,o)==="stop")return e.occurrences}}return e.occurrences}function qg(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||!ir(e,s))&&rr(e,s)==="stop")return e.occurrences}}return e.occurrences}function Wg(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||!ir(e,s))&&rr(e,s)==="stop")return e.occurrences}}return e.occurrences}function Yg(e,t,n,r){let i=Gg(e,t,n,r);return t.freq==="daily"?Kg(i):t.freq==="weekly"?Vg(i):t.freq==="monthly"?qg(i):Wg(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 Ki(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 Xg(e){return e.deadline?{at:e.deadline,date:nr(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,...Ki(e),item_deadline:e.deadline}:null}function Jg(e){return(e.reminders??[]).map(t=>({at:t.at,date:nr(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,...Ki(e)}))}function Qg(e,t){if(!t)return null;let n=Date.parse(t)-Date.parse(e);return Number.isFinite(n)&&n>0?n:null}function Zg(e,t,n){return t.recurrence&&n!==null?new Date(new Date(e).getTime()+n).toISOString():t.end_at??null}function e_(e,t,n,r){let i=jg(t.recurrence),o=Qg(t.start_at,t.end_at);return(t.recurrence?Yg(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:Zg(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,...Ki(e)}))}function t_(e,t,n,r){let i=[];for(let o of e){let s=n.has("deadlines")?Xg(o):null;s&&i.push(s),n.has("reminders")&&i.push(...Jg(o));for(let a of n.has("events")?o.events??[]:[])i.push(...e_(o,a,t,r))}return gd(i)}function n_(e,t,n,r,i){let o=Rs(t.type,n),s=t.tag?.trim().toLowerCase(),a=In(t.priority),c=Fg(t.status,r),d=t.assignee?.trim(),l=Mg(t.assigneeFilter),u=t.sprint?.trim(),f=t.release?.trim();if(d&&(d.toLowerCase()==="none"||d.toLowerCase()==="null"))throw new g('--assignee no longer accepts "none" or "null". Use --assignee-filter unassigned.',_.USAGE);if(d!==void 0&&l==="unassigned")throw new g("Cannot combine --assignee with --assignee-filter unassigned",_.USAGE);return e.filter(p=>r_(p,{typeFilter:o,tagFilter:s,priorityFilter:a,statusFilter:c,assigneeFilter:d,assigneeModeFilter:l,sprintFilter:u,releaseFilter:f,runtimeFieldFilters:i}))}function r_(e,t){return i_(e,t)&&o_(e,t)&&gn(e,t.runtimeFieldFilters)}function i_(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 o_(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 s_(e,t,n){return!(t&&C(e.at,t)<0||n&&C(e.at,n)>=0)}function Ui(e,t,n){return e.trim().toLowerCase()==="today"?Gi(t):ve(e,new Date(t),n)}function a_(e,t,n){let r=t.date?Ui(t.date,n,"--date"):n,i=t.past===!0,o=t.fullPeriod===!0,s=t.from?Ui(t.from,n,"--from"):void 0,a=t.to?Ui(t.to,n,"--to"):void 0;if(s&&a&&C(s,a)>=0)throw new g("Calendar --from must be before --to",_.USAGE);if(e!=="agenda"&&(t.from!==void 0||t.to!==void 0))throw new g("--from and --to are only supported for --view agenda",_.USAGE);if(e==="agenda")return c_(r,t,n,i,o,s,a);if(e==="day"){let d=Gi(r);return Hi(r,n,i,o,d,Ie(d,1))}if(e==="week"){let d=md(r);return Hi(r,n,i,o,d,Ie(d,7))}let c=Ng(r);return Hi(r,n,i,o,c,$g(r))}function c_(e,t,n,r,i,o,s){if(i)throw new g("--full-period is only supported for --view day|week|month. For agenda windows, use --from and --to.",_.USAGE);return{anchor:e,start:o??(t.date?e:r?void 0:n),end:s,fullPeriod:!1}}function Hi(e,t,n,r,i,o){let s=n||r;return{anchor:e,start:s?i:Pg(i,t),end:o,periodStart:i,periodEnd:o,fullPeriod:s}}function d_(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 l_(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 u_(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 Bi(e){let t=Object.entries(e);return t.length===0?"empty":t.map(([n,r])=>`${n}=${r}`).join(", ")}function f_(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 m_(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=f_(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 sS(e){let t=[];if(t.push(`# pm calendar (${e.view})`),t.push(""),t.push(`- now: ${e.now}`),t.push(`- window: ${u_(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: ${Bi(e.summary.by_kind)}`),t.push(`- by-type: ${Bi(e.summary.by_type)}`),t.push(`- by-status: ${Bi(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(`- ${m_(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 p_(t.join(`
|
|
14
|
-
`))}function aS(e){return Sg(e)}function p_(e){let t=e.length;for(;t>0&&e[t-1]===`
|
|
15
|
-
`;)t-=1;return e.slice(0,t)}function h_(e){let t=x(),n=Og(e.view),r=a_(n,e,t),i=ie(e.limit),o=Ag(e.include),s=ji(e.recurrenceLookaheadDays,"Calendar recurrence lookahead days"),a=ji(e.recurrenceLookbackDays,"Calendar recurrence lookback days"),c=ji(e.occurrenceLimit,"Calendar occurrence limit");if(c!==void 0&&c<1)throw new g("Calendar occurrence limit must be >= 1",_.USAGE);let d=o.has("events")&&!o.has("deadlines")&&!o.has("reminders"),l=e.to!==void 0||s!==void 0||a!==void 0||c!==void 0,u=d&&!l;return{nowValue:t,view:n,rangeBounds:r,limit:i,includeSources:o,occurrenceLimit:c,recurrenceLookaheadDays:u?ld:s,recurrenceLookbackWindowDays:u&&a===void 0?0:a,eventsOnlyCapApplied:u}}function g_(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 __(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 y_(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=h_(e),i=await F(n),o=J(i.schema),s=nn(i.schema),a=hn(e,s,"calendar"),c=L(i,D()),d=[];g_(d,r.eventsOnlyCapApplied);let l=await fe(n,i.item_format,c.type_to_folder,d,i.schema),u=n_(l,e,c,o,a),f=Bg(r.rangeBounds.start,r.rangeBounds.end,r.nowValue,r.recurrenceLookbackWindowDays,r.recurrenceLookaheadDays),p=t_(u,f,r.includeSources,r.occurrenceLimit).filter(b=>s_(b,r.rangeBounds.start,r.rangeBounds.end)),m=r.limit===void 0?p:p.slice(0,r.limit),h=d_(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:y_(e,r.rangeBounds),filters:__(e,a),summary:l_(m),events:m,days:h,...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 or={version:1,aliases:{}};function sr(e=[]){let t=new Set(Ke),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 zi(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 Vi(e,t=Ke){let n=new Set(t),r=new Map,i=e.provenance===void 0?[]:typeof e.provenance=="string"?[e.provenance]:e.provenance;for(let o of i.flatMap(s=>s.split(","))){let s=o.indexOf("=");if(s<0)throw new g(`Provenance predicate must use dimension=value; received "${o.trim()}".`,_.USAGE,{code:"invalid_provenance_predicate"});let a=o.slice(0,s).trim().toLowerCase(),c=o.slice(s+1).trim();if(!n.has(a))throw new g(`Unknown provenance dimension "${a||o.trim()}". Declared dimensions: ${[...n].sort().join(", ")}.`,_.USAGE,{code:"unknown_provenance_dimension"});if(c.length===0)throw new g(`Provenance predicate must use dimension=value; received "${o.trim()}".`,_.USAGE,{code:"invalid_provenance_predicate"});let d=r.get(a)??new Set;d.add(c),r.set(a,d)}return r}function ar(e,t=or,n={}){let r=zi(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 fS(e,t,n=or,r=Ke){return qi(t,n,r)(e)}function qi(e,t=or,n=Ke){let r=vd(e.harness),i=vd(e.agentInstance),o=Vi(e,n);return s=>{let a=zi(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 cr(e,t=or,n=Ke){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);zi(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 v_ 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 b_=20,w_=5,k_=15,E_="-24h";function ES(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 I_={digest:"activity_digest",compact:"compact_activity",provenance:"provenance_activity",full:"activity"};function Wi(e,t){if(e===void 0)return;let n=e.trim();if(n.length===0)throw new g(`${t} must not be empty`,_.USAGE);return n}function bd(e,t,n){if(e===void 0)return;let r=e.trim();if(r.length===0)throw new g("Activity time bounds must not be empty",_.USAGE);let i=n==="--from"&&/^\d+[hdwm]$/iu.test(r)?`-${r}`:r;return ve(i,new Date(t),n)}function C_(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 At(e,t=""){return typeof e=="string"?e:t}function S_(e,t){return{...t,id:e,ts:At(t.ts),author:At(t.author,"unknown"),op:At(t.op,"unknown"),patch:Array.isArray(t.patch)?t.patch:[],before_hash:At(t.before_hash),after_hash:At(t.after_hash)}}function T_(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 R_(e){try{return(await v_.readdir(e)).filter(t=>t.endsWith(".jsonl")).sort((t,n)=>t.localeCompare(n))}catch(t){if(ce(t))return[];throw t}}function x_(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 D_(e,t,n){if(e.unbounded!==!0)return t!==void 0?t:n==="digest"?k_:n==="compact"?b_:w_}function A_(e,t){let n=x(),r=t==="digest",i=bd(e.to??(r?n:void 0),n,"--to"),o=bd(e.from??(r?E_:void 0),e.from===void 0&&r?i:n,"--from");if(o&&i&&C(o,i)>=0)throw new g("Activity --from must be before --to",_.USAGE);let s=Or(e.limit);if(e.unbounded===!0&&s!==void 0)throw new g("Activity --unbounded cannot be combined with --limit",_.USAGE);return{id:Wi(e.id,"Activity --id"),op:Wi(e.op,"Activity --op"),author:Wi(e.author,"Activity --author"),from:o,to:i,limit:D_(e,s,t),limitSource:e.unbounded===!0||s!==void 0?"explicit":"default",harness:e.harness,agentInstance:e.agentInstance,provenance:e.provenanceFilter}}async function O_(e){let t=O(process.cwd(),e.path);return await U(t),{pmRoot:t,settings:await F(t)}}async function L_(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 ls({pmRoot:e.pmRoot,settings:e.settings,itemIds:n.map(i=>i.id),commandLabel:"activity"});let r=kd.join(e.pmRoot,"history");return await qt({path:r,scope:"project"}),{historyDir:r,itemsById:new Map(n.map(i=>[i.id,{title:i.title,type:i.type,status:i.status}]))}}function F_(e,t,n){return n.op&&e.op!==n.op||n.author&&e.author!==n.author?!1:C_(t,n.from,n.to)}async function M_(e,t){let n=[];for(let r of await R_(e)){let i=r.slice(0,-6);if(t.id&&i!==t.id)continue;let o=await ze(kd.join(e,r),i);for(let s of o){let a=S_(i,s);F_(s,a,t)&&n.push(a)}}return n}function N_(e){return e.map(t=>({id:t.id,op:t.op,ts:t.ts,author:t.author,...t.message?{msg:t.message}:{}}))}function $_(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 P_(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:$_(i.operations)}}).sort((r,i)=>C(i.last_ts,r.last_ts)||r.id.localeCompare(i.id))}function j_(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 U_(e,t,n,r,i){if(e==="digest"){let s=P_(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:N_(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 O_(t),r=x_(e),i=A_(e,r),o=await L_(n),s=sr(n.settings.agent_identity.harness_signals),a=n.settings.agent_identity.identity_vocabulary,c=qi({harness:i.harness,agentInstance:i.agentInstance,provenance:i.provenance},a,s),d=T_(await M_(o.historyDir,i)).filter(c),l=U_(r,d,i.limit,o.itemsById,f=>ar(f,a,{itemId:f.id})),u=l.totalRows-l.returnedRows;return{...l.rows,compact:l.compact,projection:{mode:r,row_key:I_[r]},omission_receipt:Io("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:j_(d)}}:{},...e.provenanceSummary===!0?{provenance_summary:cr(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 Ot(e){if(typeof e!="string")return null;let t=e.trim();if(!Jt(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 Yi=["structural","recency","activity_density","graph_proximity","claim_focus","priority_pressure","risk_pressure","deadline_pressure","knowledge_density","author_affinity","usage_affinity","semantic_similarity"],H_=Symbol("no-context-author"),B_=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 G_(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 K_(e){let t=G_(e.release);return t!==void 0?{source:"release_cohort",coordinate:t}:{source:"created_at",coordinate:Ot(e.created_at)??Id}}function z_(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=Ot(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 V_(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 q_(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 W_(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 dr(e,t,n){return e?.[t]??n}function lr(e,t){let n=new Map(e.map(d=>{let l=t.recencyEvidence?.[d.id];return[d.id,l===void 0?K_(d):z_(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,H_),a=Q("in_progress",t.statusRegistry),c=Date.parse(t.now);return e.map(d=>{let l=Cd(d.assignee,B_)===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:dr(t.graphProximity,d.id,d.parent?.3:0),claim_focus:dr(t.claimFocus,d.id,R(d.status,t.statusRegistry)===a?1:l?.75:0),priority_pressure:V_(d.priority,4),risk_pressure:W_(d.risk),deadline_pressure:q_(d.deadline,c),knowledge_density:dr(t.knowledgeDensity,d.id,Math.min(u/5,1)),author_affinity:dr(t.authorAffinity,d.id,l?1:0),usage_affinity:t.usageAffinity?.[d.id],semantic_similarity:t.semanticSimilarity?.[d.id]}}})}var Y_="context_relevance",X_={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},J_=new TextEncoder;function Q_(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"||!Yi.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 Z_(e){let t={...X_};for(let[n,r]of Object.entries(e??{}))r!==void 0&&Yi.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={}){Q_(e);let n=Z_(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=Yi.filter(a=>i.has(a)),s=e.map((a,c)=>{let d={structural:e.length===1?1:1-c/r,...a.signals},l={},u=0,f=0;for(let p of o){let m=d[p];if(m===void 0)continue;let h=m*n[p];l[p]=h,u+=h,f+=n[p]}return{...a,baseline_rank:c+1,rank:0,score:f===0?0:u/f,contributions:l}});return s.sort((a,c)=>c.score-a.score||a.baseline_rank-c.baseline_rank),s.forEach((a,c)=>{a.rank=c+1}),{model:"default-weighted-v1",available_signals:o,ranked:s}}async function ey(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 ur(e,t,n={}){let r=Td(t,n),i=await Eo(Y_,{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 ey(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 ty=["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 ny(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 ry(e){return Math.ceil(J_.encode(JSON.stringify(e)).byteLength/4)}function iy(e){return Math.round(e*1e4)/1e4}function oy(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 sy(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(Ro(n)||n.read_output?.result_omitted===!0||n.context_intent?.result_omitted===!0)throw new g(`Cannot evaluate ${e.surface} scenario "${e.id}": the read omitted its useful result.`,_.USAGE,{code:"context_evaluation_read_incomplete",nextSteps:["Increase the read output budget or start a new shared output session, then rerun the scenario."]});let{rankedIds:r,attribution:i}=oy(n,e.surface),o={...n,ranking:void 0},s=ry(o);return{id:e.id,surface:e.surface,rationale:e.rationale,ranked_ids:r,actual_tokens:s,metrics:ny({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 ay(e,t){if(e.length===0)throw new TypeError("Context evaluation requires at least one scenario report");let n=ty;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,iy(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 FS(e,t,n){let r=[];for(let i of e)r.push(await sy(i,t));return ay(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 cy={balanced:{redundancyPenalty:.35,uncertaintyPenalty:.2},context:{redundancyPenalty:.45,uncertaintyPenalty:.15},next:{redundancyPenalty:.25,uncertaintyPenalty:.3}},dy=["identity","summary","full"];function ly(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=dy.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 uy(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=cy[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 fy(e){let t=new Set;for(let n of e){if(ly(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 my(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 py(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=my(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 hy(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=uy(t),r=fy(e),i=t.readClock??performance.now.bind(performance),o=t.latencyBudgetMs===void 0?Number.POSITIVE_INFINITY:i()+t.latencyBudgetMs,s=py({ordered:r,tokenBudget:t.tokenBudget,redundancyPenalty:n.redundancy,uncertaintyPenalty:n.uncertainty,deadline:o,readClock:i}),{included:a}=s,c=hy(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 Lt from"node:fs/promises";import Ft from"node:path";import{createHash as xd,randomUUID as gy}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 Xi=3,Ji=2,Dd=["recency","activity_density","graph_proximity","priority_pressure","risk_pressure","knowledge_density"],_y=new Set(["substantive_history","release_cohort","created_at"]),yy={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 vy(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 by(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 wy(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??by(e,n=>(n.comments?.length??0)+(n.notes?.length??0)+(n.learnings?.length??0)+(n.test_runs?.length??0)),graphProximity:t.graphProximity??wy(e)}}function eo(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 ky(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=Ot(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"&&_y.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 Ey(e,t){let n=Array.from(e,ky);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!==eo(r)?null:r.sort((i,o)=>i.id.localeCompare(o.id))}function Iy(e){if(!dt(e)||e.format_version!==Xi||e.signal_set_version!==Ji||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=Ey(e.items,e.recency_evidence_fingerprint);return t===null?null:{format_version:Xi,signal_set_version:Ji,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 Fd(e,t,n=eo(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:vy(s),signal_provenance:a})).sort((o,s)=>o.id.localeCompare(s.id));return Object.freeze({format_version:Xi,signal_set_version:Ji,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 zS(e,t){return Ld(t),Fd(lr(e,Od(e,t)),t)}var Qi=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 Lt.readFile(this.filePath,"utf8"))}catch(t){if(dt(t)&&Pe(t))return null;throw t}}async write(t){let n=Ft.dirname(this.filePath);await Lt.mkdir(n,{recursive:!0});let r=Ft.join(n,`.${Ft.basename(this.filePath)}.${gy()}.tmp`);try{await Lt.writeFile(r,`${JSON.stringify(t)}
|
|
16
|
-
`,{encoding:"utf8",flag:"wx"}),await Lt.rename(r,this.filePath)}finally{try{await Lt.rm(r,{force:!0})}catch{}}}},Zi=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=Iy(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=lr(t,Od(t,n)),c=eo(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=Fd(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=>yy[f])}}};function Cy(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 fr(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 We(t.pmRoot),o=t.sourceCursor??i?.source_cursor??Cy(e),s=t.source??(i===null?"scan_fallback":"derived_index"),a=new Zi(new Qi(Ft.join(t.pmRoot,"runtime",t.storeKey?`context-signals-${t.storeKey}.json`:"context-signals.json"))),c=t.recencyEvidence??Object.fromEntries(Object.entries(await qo(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 Sy(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 Ty(e,t,n){let r,i;for(let o of t){let s=Sy(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 Md(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 qS(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=Ty(i.id,t.get(i.id)??[],n);o!==void 0&&r.push(o)}return r.sort((i,o)=>i.id.localeCompare(o.id))}import Ry from"node:path";import{createHash as xy}from"node:crypto";import Dy 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,Ay=1e4,$d=12;function Oy(e){let t=new Date(e);return`${t.getUTCFullYear()}-Q${Math.floor(t.getUTCMonth()/3)+1}`}function Ly(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 Fy(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 My(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=Md(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=Oy(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=Ly(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(Fy).sort((o,s)=>s.last_closed_at.localeCompare(o.last_closed_at)||o.kind.localeCompare(s.kind)||o.key.localeCompare(s.key))}}function Ny(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 $y(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(Ny)&&Array.isArray(t.outcomes)&&t.outcomes.every(i=>typeof i=="string")&&Number.isSafeInteger(t.knowledge_entries)&&t.knowledge_entries>=0}function Py(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($y)?t:null}function jy(e){return`scan:${xy("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 Uy(e,t,n){return n!==void 0?n:(await We(t))?.source_cursor??jy(e)}async function Hy(e){try{let t=Py(JSON.parse(await Dy.readFile(e,"utf8")));return{snapshot:t,invalid:t===null}}catch(t){return{snapshot:null,invalid:!(typeof t=="object"&&t!==null&&"code"in t&&Pe(t))}}}async function Pd(e,t){let n=Math.max(1,Math.floor(t.minimumItems??Ay));if(e.length<n)return{snapshot:null,cache_status:"skipped",warnings:[]};let r=await Uy(e,t.pmRoot,t.sourceCursor),i=Ry.join(t.pmRoot,"runtime","workspace-memory.json"),o=[],s=await Hy(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=My(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 By(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=By(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 Gy(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 rT(e,t,n=5){let r=Gy(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 Ky=["markdown","toon","json","ndjson"],mr=new Set(["Epic","Feature"]),Kd=10,zd=1e4,Vd=["hierarchy","activity","progress","recently_created","unparented","workload"],zy=[...Vd,"blockers","files","staleness","tests"],Vy=/^(\d{4})-(\d{2})-(\d{2})/,qy=/^(\d{4})(\d{2})(\d{2})(?:[T ]?\d{2}|$)/,Wy=/^(\d{4})(\d{2})(\d{2})$/,Yy=/^(\d{4})(\d{2})(\d{2})(?:[T\s]?)(\d{2})(\d{2})(\d{2})?(Z|[+-]\d{2}:?\d{2})?$/i;function Xy(e){if(!e)return;let t=e.trim().toLowerCase();if(!Ky.includes(t))throw new g("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 Jy(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 g(`Context --fields value not projectable: ${r} (valid: ${[...Ud].join(", ")})`,_.USAGE);t.includes(r)||t.push(r)}}if(t.length===0)throw new g("Context --fields requires at least one field name",_.USAGE);return t}function Mt(e,t){return e.map(n=>{let r={},i=n;for(let o of t)r[o]=i[o]??null;return r})}function CT(e,t){let n=Xy(e.format);if(t.json&&n&&n!=="json"&&n!=="ndjson")throw new g("Cannot combine --json with --format markdown|toon",_.USAGE);return t.json?n==="ndjson"?"ndjson":"json":n??"toon"}function Qy(e,t){return ie(e,"--limit")??(t==="full"?Number.MAX_SAFE_INTEGER:Kd)}function ro(e,t){if(e===void 0)return t;let n=typeof e=="number"?e:Number(e);if(!Number.isInteger(n)||n<1)throw new g("--token-budget must be a positive integer",_.USAGE);return n}function Zy(e,t){return t>=zd&&e===Number.MAX_SAFE_INTEGER?Kd:e}function ev(e,t){if(!e)return t.default_depth;let n=e.trim().toLowerCase();if(!br.includes(n))throw new g(`Context --depth must be one of ${br.join("|")}`,_.USAGE);return n}function tv(e,t,n){if(e&&e.length>0){let r=[];for(let i of e){let o=i.trim().toLowerCase();if(!Kt.includes(o))throw new g(`Context --section must be one of ${Kt.join("|")}`,_.USAGE);r.includes(o)||r.push(o)}return r}return t==="brief"?[]:t==="full"?[...Kt]:(t==="deep"?zy:Vd).filter(r=>n.sections[r])}function nv(e,t){return e?ie(e,"--activity-limit")??t.activity_limit:t.activity_limit}function rv(e,t){if(!e)return t.stale_threshold_days;let n=e.trim().toLowerCase(),r=/^(\d+)d?$/.exec(n);if(!r)throw new g("--stale-threshold must be a number of days (e.g. 7 or 7d)",_.USAGE);let i=parseInt(r[1],10);if(i<=0)throw new g("--stale-threshold must be positive",_.USAGE);return i}function 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 Nt(e,t){let n=Q("closed",t);return R(e,t)===n}function io(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 iv(e,t){return t.blocked_statuses.has(R(e,t))}var ov=["compact","brief","fields","includeBody","include_body","parent"];function sv(e){let t={...e};for(let n of ov)delete t[n];return t}function oo(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=$t(r.id,i);return{ids:new Set([r.id,...o.map(s=>s.id)].map(s=>s.trim().toLowerCase())),found:!0}}function av(e){if(e===void 0)return;let t=e.trim();if(t.length===0)throw new g("Context --parent requires an item id",_.USAGE);return t}function cv(e,t){let n=e??null,r=t??null;return n===null&&r===null?0:n===null?1:r===null?-1:n-r}function dv(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 lv(e,t){return new Date(Date.UTC(e,t+1,0)).getUTCDate()}function uv(e){let t=Vy.exec(e)??qy.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<=lv(n,r-1)}function fv(e){let t=Wy.exec(e);if(t)return`${t[1]}-${t[2]}-${t[3]}`;let n=Yy.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||!uv(t))return Number.NaN;let n=Date.parse(fv(t));return Number.isFinite(n)?n:Number.NaN}function no(e){let t=Wd(e);return Number.isFinite(t)?new Date(t).toISOString():""}function mv(e){let t=Wd(e);return Number.isFinite(t)?new Date(t).toISOString().slice(0,10):"unknown"}function so(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function Ne(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=cv(e.order,t.order);if(o!==0)return o;let s=dv(e.deadline,t.deadline);if(s!==0)return s;let a=C(no(t.updated_at),no(e.updated_at)),c=e.id.localeCompare(t.id);return a!==0?a:c}function to(e){return Math.max(1,Math.ceil(Buffer.byteLength(JSON.stringify(e),"utf8")/4))}function ao(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:to({id:i.id,title:i.item.title}),summary:to({id:i.id,title:i.item.title,type:i.item.type,status:i.item.status,priority:i.item.priority,parent:i.item.parent}),full:to(i.item)}})),{tokenBudget:t,profile:r,latencyBudgetMs:25})}function co(e){return{...e,included:e.included.map(t=>({id:t.id,projection:t.projection,tokens:t.tokens}))}}function lo(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=so(n.parent);if(!r)continue;let i=t.get(r)??[];i.push(n),t.set(r,i)}return t}function Pt(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:so(e.parent)};if(t&&n){let i=$t(e.id,n),o=i.length;if(o>0){let s=i.filter(a=>Nt(a.status,t)).length;r.children_total=o,r.children_closed=s,r.completion_pct=Yd(s,o)}}return r}function pv(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 pr(...e){return[...new Set(e.flatMap(t=>t??[]))].sort((t,n)=>t.localeCompare(n))}function hv(e,t){return e.filter(n=>!t.terminal_statuses.has(R(n.item_status,t)))}function gv(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=>mr.has(c.type)).map(c=>c.id)),a=[];for(let c of s){let d=i.get(c);if(!d)continue;let l=$t(c,o),u=o.get(c)??[],f=0,p=0,m=0,h=0;for(let b of l)Nt(b.status,n)?f++:io(b.status,n)?m++:iv(b.status,n)?h++:qd(b.status,n)&&p++;let v=u.sort((b,y)=>Ne(b,y,n)).slice(0,r).map(b=>{let y=$t(b.id,o),w=y.filter(E=>Nt(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:h,children:v})}return a.sort((c,d)=>{let l=i.get(c.id),u=i.get(d.id);return Ne(l,u,n)}).slice(0,r)}function $t(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 _v(e,t){return(await Ed({compact:!0,limit:String(e)},t)).compact_activity??[]}function yv(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=>mr.has(c.type)),a=[];for(let c of s){let d=$t(c.id,o),l=d.length;if(l===0)continue;let u=0,f=0,p=0,m=0;for(let h of d)Nt(h.status,r)?u++:n.has(h.id.trim().toLowerCase())?m++:io(h.status,r)?p++:qd(h.status,r)&&f++;a.push({id:c.id,title:c.title,type:c.type,total:l,closed:u,open:f,in_progress:p,blocked:m,completion_pct:Yd(u,l)})}return a.sort((c,d)=>c.completion_pct-d.completion_pct).slice(0,i)}function vv(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=En(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 bv(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 wv(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=>io(s.status,t)).length,items:o.map(s=>s.id).sort()})).sort((i,o)=>o.active-i.active).slice(0,n)}function kv(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 Ev(e,t,n,r){return e.map(i=>({item:i,sortKey:no(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})=>({...Pt(i,t,n),created_at:i.created_at}))}function Iv(e,t,n,r){return e.filter(i=>!so(i.parent)&&!mr.has(i.type)).sort((i,o)=>Ne(i,o,t)).slice(0,r).map(i=>Pt(i,t,n))}function Cv(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 Sv(e,t){let n=e;return t.map(r=>{let i=n[r];return Array.isArray(i)?`${r}:${i.join(",")}`:`${r}:${i??"-"}`}).join(" ")}function Tv(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 Rv(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 xv(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(`- ${Tv(n)}`);e.push("")}function Dv(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 Av(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 Ov(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)}`:`- ${mv(i.created_at)} ${Xd(i)}`);e.push("")}}function Lv(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 Fv(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 Mv(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 Nv(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 $v(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 Pv(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 jv(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 Uv(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 ST(e){let t=[],n=e.focus_fields,r=o=>n?Sv(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),Rv(t,e,r),xv(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 Dv(t,e),Av(t,e),Ov(t,e,n,r),Lv(t,e,r),Fv(t,e),Mv(t,e),Nv(t,e),$v(t,e),Pv(t,e),jv(t,e),Uv(t,e),t.join(`
|
|
18
|
-
`)}async function Hv(e,t){let n=O(process.cwd(),t.path),r=await F(n),i=r.context??ho.context,o=J(r.schema),s=ev(e.depth,i),a=Qy(e.limit??e.maxItems,s);return{settings:r,contextSettings:i,statusRegistry:o,depth:s,limit:a,sectionsIncluded:tv(e.section,s,i),activityLimit:nv(e.activityLimit,i),staleThresholdDays:rv(e.staleThreshold,i),parentScope:av(e.parent),focusFields:Jy(e.fields),baseListOptions:sv(e)}}function Bv(e){return e.some(t=>["hierarchy","progress","blockers","staleness","recently_created","unparented"].includes(t))}function Gv(e,t){return{...e,...t,noTruncate:!0,limit:void 0,offset:void 0,after:void 0}}async function Kv(e,t){let n=await kt(void 0,Gv(t.baseListOptions,{excludeTerminal:!1}),e),r=n.items,i=r.filter(a=>!$(a.status,t.statusRegistry)),o=r,s=zv(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 zv(e,t){if(e===void 0)return;let n=oo(t,e);if(!n.found)throw new g(`Context --parent item not found: ${e}`,_.NOT_FOUND);return n.ids}function Vv(e,t,n,r){let i=new Set(pt(e,t,n,r).containers.map(o=>o.item.id));return new Set(e.filter(o=>mr.has(o.type)||i.has(o.id)||Re(o.type,r)!=="agent").map(o=>o.id))}async function qv(e,t,n,r,i,o,s,a,c,d,l,u,f,p,m,h){let v=[...e].sort((I,ut)=>Ne(I,ut,i)),b=await tn({pmRoot:f,author:c,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"}),y=await fr(v,{pmRoot:f,storeKey:"context",statusRegistry:i,now:a,author:c,usageAffinity:b.affinity,claimFocus:m}),w=await ur("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?He(P,d,l,I=>I.id):0,M=u?P.slice(j,j+s):P,Ce=u&&M.length>0&&j+M.length<P.length,N=Ce&&M.length>0?de(l,M[M.length-1].id,j+M.length-1):void 0,B=E.filter(I=>r.has(I.id.trim().toLowerCase())),Y=new Set([...M.map(I=>I.id),...B.slice(0,s).map(I=>I.id)]),X=ao({...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())),$e=lt(t),gr=Bv(o)?$e:void 0,q=new Map(n.map(I=>[I.id.trim().toLowerCase(),I])),G=I=>{let ut=Pt(I,i,gr);return r.has(I.id.trim().toLowerCase())&&(ut.blocked=!0,ut.blocker_ids=En(I,q,i).filter(_r=>!_r.resolved).map(_r=>_r.id)),ut},mo=Vv(ae,n,i,h),ul=ae.filter(I=>mo.has(I.id)).slice(0,u?M.length:s).map(G),fl=ae.filter(I=>!mo.has(I.id)).slice(0,u?M.length:s).map(G),po=P.length===0;return{activeItems:ae,blockedItems:V,highLevel:ul,lowLevel:fl,blockedFallback:po?V.slice(0,s).map(G):[],blockedFallbackUsed:po,ranking:w,packing:X,featureStore:y,pageExtras:{...u?{applied_limit:s}:{},...Ce?{has_more:!0,truncated:!0}:{},...N?{next_cursor:N}:{}}}}function Wv(e,t){return Se("context",{pmRoot:t,options:Xt(e,gs)})}function Yv(e,t){return e.limit!==void 0||e.maxItems!==void 0||e.after!==void 0||t>=zd}async function Xv(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=hv(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:pv(a)}}function Jd(e,t,n){let r=String(t);return e.filter(i=>R(i.status,n)===r).length}async function Jv(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")?gv(n,o.activeItems,t.statusRegistry,t.limit):void 0,activity:l("activity")?await _v(t.activityLimit,a):void 0,progress:l("progress")?yv(n,o.activeItems,i,t.statusRegistry,t.limit):void 0,blockersSection:l("blockers")?vv(o.blockedItems,r,t.statusRegistry,t.limit):void 0,recentlyCreated:l("recently_created")?Ev(d,t.statusRegistry,c,t.limit):void 0,unparented:l("unparented")?Iv(d,t.statusRegistry,c,t.limit):void 0,filesSection:l("files")?bv(o.activeItems,t.limit):void 0,workload:l("workload")?wv(o.activeItems,t.statusRegistry,t.limit):void 0,staleness:l("staleness")?kv(d,t.staleThresholdDays,s,t.limit):void 0,tests:l("tests")?Cv(o.activeItems):void 0}}function Qv(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=>Nt(s.status,t)).length,canceled:e.filter(s=>R(s.status,t)===r).length}}function Zv(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 eb(e,t){t&&(e.focus_fields=t,e.high_level=Mt(e.high_level,t),e.low_level=Mt(e.low_level,t),e.blocked_fallback=Mt(e.blocked_fallback,t),e.recently_created&&(e.recently_created=Mt(e.recently_created,t)),e.unparented&&(e.unparented=Mt(e.unparented,t)))}function tb(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 nb(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 rb(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 Zt(e,"context"))s.has(c)||(o.push({id:c,rank:o.length+1,included:!1}),s.add(c));let a=await en({pmRoot:n,author:r,surface:"context",profile:t.packing.profile,rows:o,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"});Qt(e,a)}catch{e.warnings=pr(e.warnings,["context_usage_feedback_write_failed"])}}async function ib(e,t,n){if(e)return{};let r=(await wo({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 ob(e,t){let n=Bo(),r=await $o(e),i=n.instance||Po(t);return ad(r.semantic_attribution?.[i])}async function TT(e,t){let n=O(process.cwd(),t.path),r=await Hv(e,t),i=await Kv(t,r),o=Zy(r.limit,i.fullCorpus.length),s={...r,limit:o,tokenBudget:ro(e.tokenBudget,Math.max(256,o*160))},a=we(void 0,s.settings.author_default),c=await ob(n,a),d=ib(e.noExtensionHealth===!0,n,s.settings),l=mt(i.fullCorpus,s.statusRegistry),u=await qv(i.listedItemMetadata,i.allItems,i.fullCorpus,l,s.statusRegistry,s.sectionsIncluded,s.limit,x(),a,e.after,Wv(e,n),Yv(e,i.fullCorpus.length),n,s.tokenBudget,c,L(s.settings,D())),f=await Xv(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=pr(i.listed.warnings,f.agenda.warnings,u.ranking.warnings,[...u.featureStore.warnings],p.warnings),h=Jd(u.activeItems,s.statusRegistry.in_progress_status,s.statusRegistry),v=u.activeItems.length-h,b=await Jv({runtime:s,allItems:i.allItems,fullCorpus:i.fullCorpus,blockedIds:l,focusGroups:u,now:f.agenda.now,global:t}),y=Qv(i.allItems,s.statusRegistry,l),w={output_default:"toon",now:f.agenda.now,depth:s.depth,sections_included:s.sectionsIncluded,window:{anchor:f.agenda.anchor,start:f.agenda.range.start,end:f.agenda.range.end,past:f.agenda.range.past,from:f.agenda.range.from,to:f.agenda.range.to},filters:{type:e.type??null,tag:e.tag??null,priority:e.priority??null,assignee:e.assignee??null,assignee_filter:e.assigneeFilter??null,sprint:e.sprint??null,release:e.release??null,limit:e.limit??e.maxItems??null,parent:s.parentScope??null,token_budget:s.tokenBudget,runtime_filters:i.listed.filters.runtime_filters??f.agenda.filters.runtime_filters??{}},summary:{returned_focus:{active_items:u.activeItems.length,in_progress:h,open: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),Zv(w,b,u.featureStore.warning_details),tb(w,e.noTags===!0),e.explainRanking===!0&&(w.ranking=lo(u.ranking,u.featureStore,new Set([...u.highLevel,...u.lowLevel,...u.blockedFallback].map(E=>E.id))),w.packing=co(u.packing)),So(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}))),eb(w,s.focusFields),To(w),m.length>0&&(w.warnings=m),nb(w,u.activeItems,u.blockedItems),await rb(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(Er(r,"json"),Er(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 sb=["markdown","toon","json"],ab=5,cb=1440*60*1e3;function db(e){if(!e)return;let t=e.trim().toLowerCase();if(!sb.includes(t))throw new g("Next format must be one of markdown|toon|json",_.USAGE);return t}function HT(e,t){let n=db(e.format);if(t.json&&n&&n!=="json")throw new g("Cannot combine --json with --format markdown|toon",_.USAGE);return t.json?"json":n??"toon"}function Zd(e,t,n){let r=ie(e,t);return r===void 0||r<=0?n:r}function jt(e,t,n,r){return{...Pt(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 lb(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(ub(i.deadline,n)),o.push(Ae(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 BT={partitionCallerOwnedReady:el,resolveNextCallerAuthor:(e,t)=>tl(e,t)};function GT(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 ub(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))/cb);return o<0?`deadline ${r} (overdue ${-o}d)`:o===0?`deadline ${r} (due today)`:`deadline ${r} (in ${o}d)`}function fb(e,t){let n=Q("in_progress",t);return e.filter(r=>R(r.status,t)===n).length}function uo(e,t){return(t.get(e.id.trim().toLowerCase())??[]).length>0}function mb(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 hr(e,t,n){return[...e].sort((r,i)=>{let o=uo(r.item,t),s=uo(i.item,t);return o!==s?Number(o)-Number(s):Ne(r.item,i.item,n)})}function pb(e){return e.projectedReady.length===0?null:{...e.readyRows[0],reasons:lb(e.projectedReady[0],e.statusRegistry,e.now,e.completedContainer)}}function hb(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 gb(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 _b(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 Zt(e.result,"next"))r.has(o)||(n.push({id:o,rank:n.length+1,included:!1}),r.add(o));let i=await en({pmRoot:e.pmRoot,author:e.author,surface:"next",profile:"next",rows:n,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"});Qt(e.result,i)}catch{e.result.warnings=pr(e.result.warnings,["context_usage_feedback_write_failed"])}}async function yb(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=hb(e.recommended,e.blockedRows,e.gateCount),e.tokenBudget!==void 0&&Qd(e.result,e.tokenBudget,e.hasIntentBudget),e.explainRanking&&(e.result.ranking=lo(e.readyRanking,e.featureStore,new Set([...e.result.recommended?[e.result.recommended.id]:[],...e.result.ready.map(n=>n.id)])),e.result.packing=co(ao(e.readyRanking,e.packingBudget,new Set,"next"))),await _b({result:e.result,pmRoot:e.pmRoot,author:e.author,ranking:e.readyRanking}),e.result}function vb(e,t,n){if(!n)return e;let r=oo(t,n);if(!r.found)throw new g(`Next --parent item not found: ${n}`,_.NOT_FOUND);return e.filter(i=>r.ids.has(i.id.trim().toLowerCase()))}async function bb(e,t,n,r,i,o,s){let a=e.filter(p=>!uo(p.item,t)),c=s||a.length===0?e:a,d=await tn({pmRoot:o,author:i,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"}),l=await fr(c.map(p=>p.item),{pmRoot:o,storeKey:"next",statusRegistry:n,now:r,author:i,usageAffinity:d.affinity}),u=await ur("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 KT(e,t){let n=O(process.cwd(),t.path),r=await F(n),i=tl(e,r.author_default),o=J(r.schema),s=L(r,D()),a=x(),c=Zd(e.limit,"--limit",ab),d=ro(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 kt(void 0,mb(e,{excludeTerminal:!0}),t),m=await kt(void 0,{excludeTerminal:!1,noTruncate:!0},t),h=vb(p.items,m.items,f),v=m.items,b=pt(h,v,o,s),y=lt(v),w=$r(b,o,e,s),E=el(w.ready,r.author_default,i),S=hr(E.available,y,o),P=[...b.blocked].sort((q,G)=>Ne(q.item,G.item,o)),{projectedReady:j,ranking:M,completedContainer:Ce,featureStore:N}=await bb(S,y,o,a,i,n,e.includeContainers===!0),B=j.map((q,G)=>jt(q,o,y,G+1)),Y=P.map((q,G)=>jt(q,o,y,G+1)),X=hr(w.decisions,y,o).map((q,G)=>jt(q,o,y,G+1)),te=hr(w.gates,y,o).map((q,G)=>jt(q,o,y,G+1)),ae=hr(b.containers,y,o).map((q,G)=>jt(q,o,y,G+1)),V=pb({projectedReady:j,readyRows:B,statusRegistry:o,now:a,completedContainer:Ce}),$e=gb(X.length,E.held.length,B.length,c)??{};te.length>c&&($e.gate_needed_total=te.length),ae.length>c&&($e.containers_total=ae.length);let gr={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:fb(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($e).length>0?$e:void 0};return yb({result:gr,recommended:V,blockedRows:Y,gateCount:te.length,candidatesWarnings:p.warnings,corpusWarnings:m.warnings,readyRanking:M,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 zT(e){let t=["# pm next","",...wb(e)];for(let[n,r]of[["Gate verification needed",e.gate_needed],["Containers",e.containers]])r&&r.length>0&&t.push(...Ut(n,r.map(i=>`- ${Ht(i)}`),""));if(t.push(...Ut("Recommended",kb(e.recommended),e.truncation?.ready_budget?.recommendation_omitted?"Recommendation omitted by the selection budget; ready work still exists.":"No ready work.")),t.push(...Ut("Decision needed",(e.decision_needed??[]).map(n=>`- ${Ht(n)}`),"No human-gated decisions.")),t.push(...Ut("Ready",e.ready.map(n=>`- ${Ht(n)}`),"No ready items.")),e.filters.ready_only||t.push(...Ut("Blocked",e.blocked.map(n=>`- ${Eb(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 wb(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 kb(e){return e?[`- ${Ht(e)}`,` why: ${e.reasons.join("; ")}`]:[]}function Ut(e,t,n){return[`## ${e}`,...t.length===0?[n]:t,""]}function Eb(e){let t=e.blockers.map(n=>`${n.id}(${n.status??"?"})`).join(", ");return`${Ht(e)} blocked_by:${t}`}function Ht(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 Ib}from"node:crypto";import{setTimeout as Cb}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_-]+$/,Sb=100,nl=1e3,Tb=250,iR=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 Ib("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 fo(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 g("Invalid mutation event cursor.",_.USAGE,{code:"invalid_event_cursor"});let r;try{r=JSON.parse(Buffer.from(n,"base64url").toString("utf8"))}catch{throw new g("Invalid mutation event cursor.",_.USAGE,{code:"invalid_event_cursor"})}if(!sl(r,t))throw new g("Mutation event cursor does not match this query.",_.USAGE,{code:"event_cursor_query_mismatch"});return r}function cl(e){let t=e??Sb;if(!Number.isSafeInteger(t)||t<0||t>nl)throw new g(`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 g("Mutation event --since must be an event cursor or ISO timestamp.",_.USAGE,{code:"invalid_event_since"});return{sinceTimestamp:new Date(r).toISOString()}}async function Rb(e,t){let n=await Sr(e,t),r=n.result;if(r===null&&n.repair_needed)try{await zo(e,{lockWaitMs:0})&&(r=(await Sr(e,t)).result)}catch{}if(r===null)try{return{...await Vo(e,t),source:"authoritative_history"}}catch(i){throw i instanceof g?i:new g("Mutation events are unavailable because authoritative history could not be read.",_.GENERIC_FAILURE,{code:"event_index_unavailable",why:_o(i)})}return{...r,source:"derived_index"}}function xb(e){let t=e??"batch";if(t!=="batch"&&t!=="row")throw new g("Mutation event cursor mode must be batch or row.",_.USAGE,{code:"invalid_event_cursor_mode"});return t}async function Db(e={}){let t=O(e.cwd??process.cwd(),e.pmRoot);await U(t);let n=cl(e.limit),r=xb(e.cursorMode);if(e.full===!0&&e.provenance===!0)throw new g("Mutation event projections are mutually exclusive. Use --provenance or --full.",_.USAGE);let i=await F(t),o=i.agent_identity.identity_vocabulary,s=sr(i.agent_identity.harness_signals),a=Vi({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(([,h])=>c.includes(h)).map(([h])=>h):void 0,agent_instances:se(e.agentInstance),provenance:[...a].map(([h,v])=>({dimension:h,values:[...v]})),stream_ids:se(e.item),limit:n},p=await Rb(t,f),m=p.events.map(h=>({...r==="row"?{cursor:fo(h,d)}:{},item_id:h.stream_id,version:h.stream_offset+1,ts:h.entry.ts,author:h.entry.author,type:h.entry.op,...h.entry.message===void 0?{}:{message:h.entry.message},patch_count:h.entry.patch.length,...e.full===!0?{entry:h.entry}:{},...e.provenance===!0?{provenance:ar(h.entry,o,{itemId:h.stream_id,version:h.stream_offset+1})}:{}}));return{events:m,count:m.length,has_more:p.has_more,cursor_mode:r,...p.events.length===0?{}:{next_cursor:fo(p.events[p.events.length-1],d)},source:p.source,...e.provenanceSummary===!0?{provenance_summary:cr(p.events.map(h=>h.entry),o,s)}:{}}}async function*Ab(e={}){let t=e.intervalMs??Tb;if(!Number.isSafeInteger(t)||t<10)throw new g("Mutation event follow interval must be an integer of at least 10ms.",_.USAGE,{code:"invalid_event_follow_interval"});let n=e.since;for(;e.signal?.aborted!==!0;){let r=await Db({...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 Cb(t,void 0,{signal:e.signal})}catch(i){if(dl(i))return;throw i}}}async function*oR(e={}){for await(let t of Ab({...e,cursorMode:"row"}))for(let n of t.events)yield n}var sR={decodeMutationEventCursor:al,encodeMutationEventCursor:fo,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 cR(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{Lr as a,_n as b,aw as c,cw as d,bn as e,vn as f,Is as g,fw as h,Re as i,Il as j,Ae as k,kn as l,Ss as m,En as n,mt as o,$r as p,pt as q,ie as r,In as s,Rs as t,Pr as u,ht as v,xs as w,Ds as x,Bs as y,Wr as z,Ks as A,a0 as B,c0 as C,qs as D,Ws as E,l0 as F,Tl as G,Lw as H,Rl as I,Fw as J,Mw as K,Nw as L,$w as M,Ol as N,z as O,Fs as P,Sn as Q,zw as R,Ur as S,Vw as T,yt as U,Bl as V,Kl as W,Br as X,zl as Y,Qe as Z,Gr as _,Kr as $,Wl as aa,zr as ba,t0 as ca,n0 as da,r0 as ea,i0 as fa,yu as ga,ra as ha,Qs as ia,Zs as ja,Eu as ka,Iu as la,Cu as ma,kt as na,Rn as oa,Xr as pa,xn as qa,z0 as ra,_a as sa,he as ta,mk as ua,Ia as va,Ca as wa,Sa as xa,Ta as ya,Ra as za,Mn as Aa,Da as Ba,nt as Ca,Aa as Da,Ma as Ea,Pn as Fa,Na as Ga,$a as Ha,ep as Ia,Ya as Ja,Hn as Ka,ai as La,Bn as Ma,Xa as Na,Qa as Oa,ci as Pa,Ct as Qa,ec as Ra,li as Sa,ui as Ta,fi as Ua,tc as Va,mi as Wa,rc as Xa,ic as Ya,sc as Za,Sp as _a,bE as $a,_C as ab,Qc as bb,cR as cb,pc as db,hc as eb,SE as fb,eh as gb,at as hb,T as ib,xe as jb,PE as kb,jE as lb,wc as mb,oh as nb,UE as ob,HE as pb,QE as qb,Dc as rb,Yn as sb,Zn as tb,bI as ub,er as vb,Yh as wb,wI as xb,kI as yb,EI as zb,II as Ab,Jh as Bb,Hc as Cb,pg as Db,Eg as Eb,BC as Fb,GC as Gb,sd as Hb,YC as Ib,XC as Jb,JC as Kb,QC as Lb,ad as Mb,oS as Nb,sS as Ob,aS as Pb,yd as Qb,or as Rb,sr as Sb,Vi as Tb,ar as Ub,fS as Vb,qi as Wb,cr as Xb,ES as Yb,Ed as Zb,Id as _b,Ot as $b,Yi as ac,lr as bc,Y_ as cc,Td as dc,ey as ec,ur as fc,ty as gc,ny as hc,sy as ic,ay as jc,FS as kc,cy as lc,Rd as mc,Xi as nc,Ji as oc,yy as pc,Iy as qc,zS as rc,Qi as sc,Zi as tc,fr as uc,Md as vc,qS as wc,Ay as xc,My as yc,Pd as zc,By as Ac,jd as Bc,Gy as Cc,rT as Dc,Ky as Ec,Jy as Fc,Mt as Gc,CT as Hc,ro as Ic,ev as Jc,tv as Kc,oo as Lc,Ne as Mc,ao as Nc,co as Oc,lo as Pc,lt as Qc,Pt as Rc,pr as Sc,ST as Tc,tb as Uc,TT as Vc,sb as Wc,HT as Xc,BT as Yc,GT as Zc,KT as _c,zT as $c,iR as ad,Db as bd,Ab as cd,oR as dd,sR as ed};
|
|
20
|
-
//# sourceMappingURL=chunk-7PATQWTH.js.map
|