@unbrained/pm-cli 2026.10.31 → 2026.11.2
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/.agents/skills/pm-user/references/ECOSYSTEM_PLANNING.md +1 -1
- package/.claude-plugin/marketplace.json +1 -1
- package/AGENTS.md +3 -3
- package/CHANGELOG.md +27 -0
- package/CONTRIBUTING.md +1 -1
- package/README.md +1 -1
- package/dist/cli/migration-gates.js +1 -1
- package/dist/cli/register-operations.d.ts +3 -3
- package/dist/cli/register-operations.js +1 -1
- package/dist/cli-bundle/bundle-manifest.json +1 -1
- package/dist/cli-bundle/chunks/{chunk-GMBDZID5.js → chunk-3A4NVHYS.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-VC7TA67O.js → chunk-3ZQQVJT2.js} +19 -19
- package/dist/cli-bundle/chunks/{chunk-XDDPSWIW.js → chunk-4HW253W2.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-4OELCF3O.js +2 -0
- package/dist/cli-bundle/chunks/{chunk-6PSDQ7T7.js → chunk-533L6D2N.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-35Q2B2GJ.js → chunk-ABFFRQRO.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-BFZUJ5QP.js +115 -0
- package/dist/cli-bundle/chunks/{chunk-SBVX5CMV.js → chunk-D52QQ7LP.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-P3LNMWL2.js → chunk-DAZFCSDV.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-43R7UTWV.js → chunk-EN27ZQSV.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-MRUA2Z43.js → chunk-GK2CHAT3.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-BS2KXT24.js → chunk-HOGKWJU5.js} +42 -42
- package/dist/cli-bundle/chunks/{chunk-WX25MU4N.js → chunk-J3JM36EH.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-V6EWBTNH.js → chunk-JRXD7SIL.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-U7JXZMU5.js → chunk-K46GDAKX.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-PT7TS6E7.js → chunk-KJLGBLR3.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-2AHSPMKJ.js → chunk-NGRPD3ZO.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-OJR2YGXF.js +31 -0
- package/dist/cli-bundle/chunks/chunk-QHHFXNSQ.js +3 -0
- package/dist/cli-bundle/chunks/{chunk-TL3O5GZA.js → chunk-RGHLQGEX.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-24J6TNYE.js → chunk-VEOFWE32.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-ZNWDYDFF.js +129 -0
- package/dist/cli-bundle/chunks/{indexed-receipt-blobs-KGMJVFH2.js → indexed-receipt-blobs-IEJ2QOW3.js} +2 -2
- package/dist/cli-bundle/chunks/item-transaction-JHPBH6N7.js +2 -0
- package/dist/cli-bundle/chunks/{mutation-admission-I4RHIT3Q.js → mutation-admission-QUNQZCZ5.js} +2 -2
- package/dist/cli-bundle/chunks/{register-list-query-MVDL5EXG.js → register-list-query-NZTK3AXA.js} +2 -2
- package/dist/cli-bundle/chunks/{register-mutation-GAF7LXRB.js → register-mutation-2OFAMOVH.js} +2 -2
- package/dist/cli-bundle/chunks/register-operations-RFMM5KZ6.js +2 -0
- package/dist/cli-bundle/chunks/{register-setup-MZN6ONB3.js → register-setup-6B6Q7M5L.js} +2 -2
- package/dist/cli-bundle/chunks/{settlement-hook-YWSWFOZY.js → settlement-hook-UTCEZBFT.js} +2 -2
- package/dist/cli-bundle/chunks/{stage-2ZORTOF6.js → stage-VLI4OBVX.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-4QPGJO2G.js → chunk-3UD6F2KQ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-EA65HVBO.js → chunk-4NVPDZLX.js} +12 -12
- package/dist/cli-bundle/focused-chunks/{chunk-KKRIFBSL.js → chunk-4UUE3YXZ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-NRBUMDLF.js → chunk-5UDDRPYR.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-SFQKCA5K.js → chunk-745IDMTD.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-QFMJGQGO.js → chunk-B6OOKKOX.js} +3 -3
- package/dist/cli-bundle/focused-chunks/{chunk-5MCGYBOQ.js → chunk-EJJWOFP5.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-FUGYXUUL.js +80 -0
- package/dist/cli-bundle/focused-chunks/{chunk-6F6APBCX.js → chunk-HMXVTWIV.js} +3 -3
- package/dist/cli-bundle/focused-chunks/{chunk-HSAEEWSI.js → chunk-I4Z2SCV5.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-JLN5CFYM.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-K4FMZB4Y.js +23 -0
- package/dist/cli-bundle/focused-chunks/{chunk-DFUTCKUF.js → chunk-MQVBWFJF.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-2J7T2UCH.js → chunk-NJFMG3IK.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-HPWT3RBG.js → chunk-PCCZ72C3.js} +54 -54
- package/dist/cli-bundle/focused-chunks/chunk-PF553UVP.js +44 -0
- package/dist/cli-bundle/focused-chunks/{chunk-MW77Q3AQ.js → chunk-Q23K6WLV.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-Y6UYRMVG.js → chunk-QNXXOFLQ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-JLXGRDTG.js → chunk-QVFE5LIX.js} +3 -3
- package/dist/cli-bundle/focused-chunks/{chunk-KH5QJXY7.js → chunk-RUCG6UWN.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-JNKRUCVZ.js → chunk-SGWYNU7T.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-TGS5RXBY.js +26 -0
- package/dist/cli-bundle/focused-chunks/{chunk-PC3R5CJV.js → chunk-WD43E7RU.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-PFBQOZPK.js → chunk-YM4AMP7H.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{indexed-receipt-blobs-KHWT44EK.js → indexed-receipt-blobs-FT3KF6VJ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{item-transaction-LU75EG7D.js → item-transaction-F4SN7TXJ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{mutation-admission-KDJ7SCPA.js → mutation-admission-7R2FXJ5O.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{settlement-hook-SJV52ZTV.js → settlement-hook-KMIBD4F2.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{stage-R4KEBO37.js → stage-6B3O2GZ6.js} +2 -2
- package/dist/cli-bundle/main.js +24 -24
- package/dist/cli-bundle/sdk-authoring.js +1 -1
- package/dist/cli-bundle/sdk-contracts.js +4 -4
- package/dist/cli-bundle/sdk-core.js +1 -1
- package/dist/cli-bundle/sdk-governance.js +1 -1
- package/dist/cli-bundle/sdk-graph.js +1 -1
- package/dist/cli-bundle/sdk-merge.js +57 -57
- package/dist/cli-bundle/sdk-query.js +1 -1
- package/dist/cli-bundle/sdk-runtime.js +1 -1
- package/dist/cli-bundle/sdk-testing.js +1 -1
- package/dist/cli-bundle/sdk.js +9 -9
- package/dist/core/extensions/extension-types.d.ts +5 -0
- package/dist/core/extensions/extension-types.js +1 -1
- package/dist/core/item/parse.js +2 -2
- package/dist/core/lock/lock-confinement.d.ts +55 -0
- package/dist/core/lock/lock-confinement.js +2 -0
- package/dist/core/lock/lock-gc.js +1 -1
- package/dist/core/lock/lock.js +2 -2
- package/dist/core/output/mutation-projection.js +1 -1
- package/dist/core/output/output.js +2 -2
- package/dist/core/shared/errors.d.ts +6 -0
- package/dist/core/shared/errors.js +1 -1
- package/dist/core/store/settings-sections.d.ts +61 -0
- package/dist/core/store/settings-sections.js +3 -0
- package/dist/core/store/settings-validator.d.ts +4 -0
- package/dist/core/store/settings-validator.js +1 -1
- package/dist/core/store/settings.d.ts +29 -2
- package/dist/core/store/settings.js +4 -3
- package/dist/core/telemetry/consent.js +2 -2
- package/dist/core/telemetry/runtime.js +2 -2
- package/dist/core/test/background-runs.js +3 -3
- package/dist/sdk/cli-contracts/tool-schema.js +1 -1
- package/dist/sdk/config.js +1 -1
- package/dist/sdk/context-intent-contracts.d.ts +17 -0
- package/dist/sdk/context-intent-contracts.js +1 -1
- package/dist/sdk/core.d.ts +1 -1
- package/dist/sdk/core.js +1 -1
- package/dist/sdk/extension-command-context.js +2 -2
- package/dist/sdk/generated/error-code-catalog-rows.d.ts +39 -0
- package/dist/sdk/generated/error-code-catalog-rows.js +2 -0
- package/dist/sdk/generated/generated-error-code-catalog-part-1.d.ts +3 -3
- package/dist/sdk/generated/generated-error-code-catalog-part-1.js +1 -1
- package/dist/sdk/generated/generated-error-code-catalog-part-2.d.ts +3 -3
- package/dist/sdk/generated/generated-error-code-catalog-part-2.js +1 -1
- package/dist/sdk/generated-error-code-catalog.js +1 -1
- package/dist/sdk/index.d.ts +1 -1
- package/dist/sdk/index.js +1 -1
- package/dist/sdk/init-agent-guidance.js +2 -2
- package/dist/sdk/lifecycle/claim.d.ts +27 -0
- package/dist/sdk/lifecycle/claim.js +1 -1
- package/dist/sdk/lifecycle/mcp-actions.d.ts +1 -1
- package/dist/sdk/lifecycle/mcp-actions.js +1 -1
- package/dist/sdk/lifecycle/task-composition.js +1 -1
- package/dist/sdk/mcp/discovery.js +1 -1
- package/dist/sdk/output/list-envelope.d.ts +8 -0
- package/dist/sdk/output/list-envelope.js +1 -1
- package/dist/sdk/output.d.ts +1 -1
- package/dist/sdk/output.js +2 -2
- package/dist/sdk/public-surface.json +1 -1
- package/dist/sdk/query/context.js +2 -2
- package/dist/sdk/runtime/actions.js +1 -1
- package/dist/sdk/runtime-input.js +1 -1
- package/dist/sdk/runtime-primitives.d.ts +2 -1
- package/dist/sdk/runtime-primitives.js +1 -1
- package/dist/sdk/runtime-public-contracts.d.ts +2 -0
- package/dist/sdk/runtime.d.ts +2 -2
- package/dist/sdk/runtime.js +1 -1
- package/dist/sdk/start-task-status.d.ts +1 -1
- package/dist/sdk/start-task-status.js +1 -1
- package/docs/AGENT_EVIDENCE_CONSISTENCY.md +10 -0
- package/docs/AGENT_GUIDE.md +3 -3
- package/docs/COMMANDS.md +1 -0
- package/docs/COMMAND_NAMESPACES.md +1 -1
- package/docs/CONFIGURATION.md +9 -0
- package/docs/DEVELOPMENT_DEPENDENCY_SECURITY.md +9 -6
- package/docs/LIFECYCLE_COMMANDS.md +19 -4
- package/docs/RELEASING.md +22 -2
- package/docs/SDK.md +37 -2
- package/docs/SDK_ACTION_CONFORMANCE.md +21 -0
- package/docs/SDK_CONFIGURATION_SAFETY.md +55 -0
- package/docs/TESTING.md +2 -1
- package/docs/agent-task-token-baseline.json +1 -1
- package/docs/agent-task-transcripts.json +1 -1
- package/docs/generated/REFUSAL_CLOSURE_CENSUS.md +12 -3
- package/marketplace.json +1 -1
- package/package.json +9 -3
- package/packages/pm-beads/package.json +1 -1
- package/packages/pm-calendar/package.json +1 -1
- package/packages/pm-command-kit/package.json +1 -1
- package/packages/pm-digital-twin/package.json +1 -1
- package/packages/pm-governance-audit/package.json +1 -1
- package/packages/pm-guide-shell/package.json +1 -1
- package/packages/pm-kanban/package.json +1 -1
- package/packages/pm-lifecycle-hooks/package.json +1 -1
- package/packages/pm-linked-test-adapters/package.json +1 -1
- package/packages/pm-search-advanced/package.json +1 -1
- package/packages/pm-templates/package.json +1 -1
- package/packages/pm-todos/package.json +1 -1
- package/packages/pm-vcs/package.json +1 -1
- package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
- package/plugins/pm-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-HSBTITO4.js +0 -3
- package/dist/cli-bundle/chunks/chunk-WNF6FOL7.js +0 -31
- package/dist/cli-bundle/chunks/chunk-WRXQAW7Q.js +0 -114
- package/dist/cli-bundle/chunks/chunk-YT5D5HNG.js +0 -2
- package/dist/cli-bundle/chunks/chunk-ZTJVOBDU.js +0 -128
- package/dist/cli-bundle/chunks/item-transaction-UWV6UNSV.js +0 -2
- package/dist/cli-bundle/chunks/register-operations-JLFRL36Q.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-57HPXGOQ.js +0 -79
- package/dist/cli-bundle/focused-chunks/chunk-AFVN2KCP.js +0 -44
- package/dist/cli-bundle/focused-chunks/chunk-GP2WU43K.js +0 -26
- package/dist/cli-bundle/focused-chunks/chunk-NOKG4RFN.js +0 -22
- package/dist/cli-bundle/focused-chunks/chunk-WHIE2C6Q.js +0 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{F as Ke,G as Ue,J as je,U as ze,f as Me}from"./chunk-5MCGYBOQ.js";import{$a as $e,eb as Pe,s as $,t as D}from"./chunk-57HPXGOQ.js";import{j as Ee}from"./chunk-MW77Q3AQ.js";import{b as T,c as C}from"./chunk-AK2CI2GI.js";import{Be as Ne,Fa as Ie,Fd as Se,Gd as Le,Hc as ne,Kd as Oe,Nc as X,R,T as H,W as _e,_c as M,ka as ke,kd as xe,pd as Re,qa as be,sa as ve,sc as W,tc as Ce,ud as Te,wa as we,we as Ae,xe as Be,yd as De}from"./chunk-GP2WU43K.js";import{A as v,z as I}from"./chunk-JLXGRDTG.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]="a319e7d9-e248-573b-bf1f-35217ce49fd0")}catch{}})();function re(e,t){return(t===void 0?void 0:ve(e,t))?.execution_role??ke[e.trim().toLowerCase()]??"agent"}var ie="blocked_by",Fe="blocks",ft=Object.freeze([ie,Fe]),oe="no-active-blocker";function _(e){return e.trim().toLowerCase()}function q(e,t){return t?`external:${e}`:`local:${_(e)}`}function P(e){let t=new Map,o=typeof e.blocked_by=="string"?e.blocked_by.trim():"";if(o.length>0&&_(o)!==oe){let n=T(o);t.set(q(o,n),n?o:_(o))}for(let n of e.dependencies??[]){let r=typeof n.id=="string"?n.id.trim():"";if(H(n.kind)===ie&&r.length>0&&_(r)!==oe){let i=T(r)||C(n.source_kind);t.set(q(r,i),i?r:_(r))}}return[...t.values()].sort((n,r)=>n.localeCompare(r))}function Y(e){let t=new Map;for(let o of e){let n=_(o.id);n.length!==0&&t.set(n,new Set(P(o)))}for(let o of e){let n=_(o.id);if(n.length!==0)for(let r of o.dependencies??[]){let i=H(r.kind)===Fe&&typeof r.id=="string"?_(r.id):"";if(i.length===0||i===oe)continue;let s=t.get(i)??new Set;s.add(n),t.set(i,s)}}return new Map([...t].map(([o,n])=>[o,[...n].sort((r,i)=>r.localeCompare(i))]))}function Ge(e,t){let o=_(e.id);return o.length>0?Y(t).get(o)??P(e):P(e)}function se(e,t,o,n){let r=e,i=typeof r.id=="string"?n?.get(_(r.id))??Ge(r,[...t.values()]):P(e),s=new Set((e.dependencies??[]).filter(d=>H(d.kind)===ie&&C(d.source_kind)&&typeof d.id=="string"&&d.id.trim().length>0).map(d=>q(d.id.trim(),!0)));return i.map(d=>{if(T(d)||s.has(q(d,!0)))return{id:d,title:null,status:null,resolved:!1,external:!0,...typeof e.updated_at=="string"?{blocked_since:e.updated_at}:{},resolver:null};let c=t.get(_(d));return c?{id:d,title:c.title,status:c.status,resolved:D(c.status,o)}:{id:d,title:null,status:null,resolved:!1}})}function mt(e,t,o){return se(e,t,o)}function gt(e,t){let o=new Map(e.map(s=>[_(s.id),s])),n=Y(e),r=new Set([...He(t),...t.blocked_statuses]),i=new Set;for(let s of e){let d=$(s.status,t);r.has(d)&&(t.blocked_statuses.has(d)||se(s,o,t,n).some(c=>!c.resolved))&&i.add(_(s.id))}return i}function ht(e,t,o={},n){let r=[...e.ready,...e.decisions,...e.gates];o.includeContainers===!0&&r.push(...e.containers.filter(s=>s.open_blockers.length===0&&!t.blocked_statuses.has($(s.item.status,t))));let i={ready:[],decisions:[],gates:[]};for(let s of r){let d=re(s.item.type,n);d==="human"&&o.includeDecisions!==!0?i.decisions.push(s):d==="gate"&&o.includeGates!==!0?i.gates.push(s):i.ready.push(s)}return i}function He(e){return e.active_statuses.size>0?e.active_statuses:new Set([e.open_status])}function yt(e,t,o){let n=[_(e)],r=new Set;for(;n.length>0;){let i=n.pop();if(!r.has(i)){r.add(i);for(let s of t.get(i)??[]){if(!D(s.status,o))return!0;n.push(_(s.id))}}}return!1}function _t(e){let t=new Map,o=new Map,n=new Map,r=Y(e);for(let i of e){t.set(_(i.id),i);let s=typeof i.parent=="string"?i.parent.trim():"";if(s.length>0){let d=_(s),c=o.get(d)??[];c.push(i),o.set(d,c)}for(let d of r.get(_(i.id))){let c=_(d),l=n.get(c)??[];l.push(i.id),n.set(c,l)}}return{itemsById:t,childrenByParent:o,blockedByReverse:n,blockerIdsByItem:r}}function kt(e,t,o,n){let{itemsById:r,childrenByParent:i,blockedByReverse:s,blockerIdsByItem:d}=_t(t),c=new Set([...He(o),...o.blocked_statuses]),l=new Set(t.filter(m=>!D(m.status,o)).map(m=>_(m.id))),u=[],a=[],p=[],g=[],f=[],y=0;for(let m of e){if(!c.has($(m.status,o)))continue;y+=1;let h=se(m,r,o,d).filter(w=>!w.resolved),b=(s.get(_(m.id))??[]).filter(w=>l.has(_(w))).sort((w,L)=>w.localeCompare(L)),k={item:m,open_blockers:h,unblocks:b};if(yt(m.id,i,o)){p.push(k);continue}let E=o.blocked_statuses.has($(m.status,o));if(h.length===0&&!E){let w=re(m.type,n);w==="human"?g.push(k):w==="gate"?f.push(k):u.push(k)}else a.push(k)}return{ready:u,blocked:a,containers:p,decisions:g,gates:f,active_count:y,container_count:p.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]="283dfa35-9a8e-524c-b6e2-d433d51215ca")}catch{}})();function x(){let e=R();for(let t of W()?.relationship_kinds??[])for(let o of t.definitions)e.register(o);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 K(e){if(typeof e!="string")return;let t=e.trim().toLowerCase();return t.length>0?t:void 0}function V(e){return[e.parent_id,e.child_id,e.source,e.kind,e.holder_id,e.target_id??""].join("\0")}function bt(e,t){let o=new Set,n=[];for(let r of[...e].sort()){if(o.has(r))continue;o.add(r);let i=[{nodeId:r,children:[...t.get(r)??[]].sort(),nextChild:0}];for(;i.length>0;){let s=i.at(-1),d=s.children[s.nextChild];d===void 0?(n.push(s.nodeId),i.pop()):(s.nextChild+=1,o.has(d)||(o.add(d),i.push({nodeId:d,children:[...t.get(d)??[]].sort(),nextChild:0})))}}return n}function vt(e,t){let o=[...e].sort(),n=bt(o,t),r=new Set,i=wt(o,t),s=[];for(let d of n.reverse()){if(r.has(d))continue;let c=It(d,i,r);(c.length>1||t.get(c[0])?.has(c[0]))&&s.push(c)}return s.sort((d,c)=>d.join("\0").localeCompare(c.join("\0")))}function wt(e,t){let o=new Map(e.map(n=>[n,new Set]));for(let[n,r]of t)for(let i of r)o.get(i)?.add(n);return o}function It(e,t,o){let n=[],r=[e];for(o.add(e);r.length>0;){let i=r.pop();n.push(i);for(let s of[...t.get(i)].sort())o.has(s)||(o.add(s),r.push(s))}return n.sort()}function We(e){let t=new Map;for(let o of e){let n=K(o?.id);n&&!t.has(n)&&t.set(n,o)}return t}function Et(e,t,o){let n=K(t.parent);if(!(!n||!o.has(n)))return{parent_id:n,child_id:e,source:"scalar_parent",kind:"parent",holder_id:e,child_cardinality:"one"}}function Ct(e,t,o,n){let r=K(t?.id),i=n.resolve(t?.kind);if(!r||!o.has(r)||!i?.hierarchy)return;let s=i.hierarchyDirection==="source_parent";return{parent_id:s?e:r,child_id:s?r:e,source:"dependency",kind:i.kind,holder_id:e,target_id:r,child_cardinality:s?i.incoming:i.outgoing}}function Xe(e,t){let o=new Map;for(let[n,r]of e){let i=Et(n,r,e);i&&o.set(V(i),i);for(let s of r.dependencies??[]){let d=Ct(n,s,e,t);d&&o.set(V(d),d)}}return[...o.values()].sort((n,r)=>V(n).localeCompare(V(r)))}function Kn(e,t=x()){return Xe(We(e),t)}function xt(e,t,o){let n=new Set(e.filter(r=>r.child_cardinality==="one").map(r=>r.child_id));return[...t].filter(([r,i])=>i.length>1&&n.has(r)).map(([r,i])=>({child_id:r,parent_ids:[...i],legacy_terminal:o.has(r)&&i.every(s=>o.has(s))})).sort((r,i)=>r.child_id.localeCompare(i.child_id))}function Rt(e,t,o){let n=new Map;for(let i of t){if(i.source!=="dependency")continue;let s=n.get(i.child_id)??new Set;s.add(i.parent_id),n.set(i.child_id,s)}let r=[];for(let[i,s]of e){let d=K(s.parent);if(!d||!e.has(d))continue;let c=[...n.get(i)??[]].filter(l=>l!==d).sort();c.length!==0&&r.push({child_id:i,scalar_parent_id:d,dependency_parent_ids:c,legacy_terminal:o.has(i)&&o.has(d)&&c.every(l=>o.has(l))})}return r.sort((i,s)=>i.child_id.localeCompare(s.child_id))}function J(e,t=n=>n==="closed"||n==="canceled",o=x()){let n=We(e),r=Xe(n,o),i=Tt(r),s=new Set([...n].filter(([,c])=>t(c.status)).map(([c])=>c)),d=vt([...n.keys()],new Map([...i.children_by_parent].map(([c,l])=>[c,new Set(l)]))).map(c=>({item_ids:c,legacy_terminal:c.every(l=>s.has(l))}));return{relations:r,cycles:d,cardinality_violations:xt(r,i.parents_by_child,s),divergences:Rt(n,r,s)}}function Un(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 Tt(e){let t=new Map,o=new Map;for(let n of e){let r=t.get(n.child_id)??new Set;r.add(n.parent_id),t.set(n.child_id,r);let i=o.get(n.parent_id)??new Set;i.add(n.child_id),o.set(n.parent_id,i)}return{parents_by_child:new Map([...t].map(([n,r])=>[n,[...r].sort()])),children_by_parent:new Map([...o].map(([n,r])=>[n,[...r].sort()]))}}function de(e,t){let o=new Set(t);return e.every(n=>o.has(n))}function jn(e,t,o,n,r){let i=K(o);if(!i)return;let s=J(e,n,r),d=J(t,n,r),c=d.divergences.find(a=>!s.divergences.some(p=>p.child_id===a.child_id&&p.scalar_parent_id===a.scalar_parent_id&&de(a.dependency_parent_ids,p.dependency_parent_ids)));if(c){let a=[c.scalar_parent_id,...c.dependency_parent_ids].sort();throw new v(`Hierarchy mutation would assign ${c.child_id} to multiple parents: ${a.join(", ")}.`,I.CONFLICT,{code:"hierarchy_parent_divergence_created",source_id:i,target_id:c.child_id,verification_errors:a})}let l=d.cardinality_violations.find(a=>(a.child_id===i||a.parent_ids.includes(i))&&!s.cardinality_violations.some(p=>p.child_id===a.child_id&&de(a.parent_ids,p.parent_ids)));if(l)throw new v(`Hierarchy mutation would assign ${l.child_id} to multiple parents: ${l.parent_ids.join(", ")}.`,I.CONFLICT,{code:"hierarchy_cardinality_created",source_id:i,target_id:l.child_id,verification_errors:l.parent_ids});let u=d.cycles.find(a=>a.item_ids.includes(i)&&!s.cycles.some(p=>de(a.item_ids,p.item_ids)));if(u)throw new v(`Hierarchy mutation would create a cycle: ${u.item_ids.join(" -> ")}.`,I.CONFLICT,{code:"hierarchy_cycle_created",source_id:i,verification_errors:u.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]="6c580b70-76eb-51db-8587-99b73dd20875")}catch{}})();var Dt="global";function Wn(e){let t=e?.trim();if(t)return C(t)?Dt:t}function Xn(e,t,o){return St(e,t,o)}function St(e,t,o){let n=e.trim();return C(o)||T(n)?n:Me(n,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]="41f814be-ee87-5cae-b674-69c2e7f42655")}catch{}})();function B(e){if(typeof e!="string")return;let t=e.trim();if(!(!t||["none","null","n/a","na"].includes(t.toLowerCase())))return t}function U(e){let t=B(e);return t?.toLowerCase()==="no-active-blocker"?void 0:t}function j(e,t,o=!0){let n=B(e);return o&&(C(t)||n!==void 0&&T(n))}function ce(e,t){return j(e,t)?`external\0${e}`:`local\0${e.toLowerCase()}`}function qe(e,t,o,n){return j(e,t)?n.get(e):o.get(e.toLowerCase())}function A(e,t){let o=e.toLowerCase(),n=t.toLowerCase();return o!==n?o<n?-1:1:e!==t?e<t?-1:1:0}function Lt(e){let t=new Map;for(let o of e.dependencies??[]){if(typeof o!="object"||o===null)continue;let n=o,r=B(n.id);if(!r)continue;let i=typeof n.kind=="string"?n.kind:"related",s=`${i}\0${ce(r,n.source_kind)}`,d=t.get(s);d?d.count+=1:t.set(s,{target_id:r,kind:i,count:1})}return t}function Ot(e,t=o=>o==="closed"||o==="canceled"){let o=[];for(let n of e)if(!(typeof n?.id!="string"||n.id.trim().length===0))for(let r of Lt(n).values())r.count<2||o.push({holder_id:n.id.trim(),target_id:r.target_id,kind:r.kind,occurrences:r.count,holder_status:n.status,legacy_terminal:t(n.status)});return o.sort((n,r)=>{let i=A(n.holder_id,r.holder_id);if(i!==0)return i;let s=A(n.target_id,r.target_id);return s!==0?s:A(n.kind,r.kind)})}function At(e,t,o,n,r){if(typeof o!="object"||o===null)return;let i=B(o.id);if(!i||ce(i,o.source_kind)!==ce(t))return;let s=r.resolve(typeof o.kind=="string"?o.kind:"related");if(!(s?.ordering!==!0||(s.precedence??"source_before_target")!=="source_before_target"))return{holder_id:e.id.trim(),target_id:i,dependency_kind:s.kind,holder_status:e.status,legacy_terminal:n(e.status)}}function Bt(e,t=n=>n==="closed"||n==="canceled",o=x()){let n=new Map;for(let r of e){if(typeof r?.id!="string"||r.id.trim().length===0)continue;let i=B(r.blocked_by);if(i)for(let s of r.dependencies??[]){let d=At(r,i,s,t,o);d&&n.set(`${d.holder_id.toLowerCase()}\0${d.target_id.toLowerCase()}\0${d.dependency_kind}`,d)}}return[...n.values()].sort((r,i)=>{let s=A(r.holder_id,i.holder_id);if(s!==0)return s;let d=A(r.target_id,i.target_id);return d!==0?d:A(r.dependency_kind,i.dependency_kind)})}function ae(e,t=o=>o==="closed"||o==="canceled"){let o=e.filter(c=>typeof c?.id=="string"&&c.id.trim().length>0),n=new Set(o.map(c=>c.id.trim().toLowerCase())),r=new Map,i=(c,l,u,a,p)=>{let g=B(l);if(!g||n.has(g.toLowerCase())||j(g,void 0,p))return;let f={holder_id:c.id.trim(),target_id:g,kind:u,source:a,holder_status:c.status,legacy_terminal:t(c.status),no_active_blocker_sentinel:g.toLowerCase()==="no-active-blocker"};r.set(`${f.holder_id}::${f.target_id}::${f.kind}::${f.source}`,f)};for(let c of o){i(c,c.parent,"parent","parent",!1),i(c,c.blocked_by,"blocked_by","blocked_by",!0);for(let l of c.dependencies??[]){if(typeof l!="object"||l===null)continue;let u=l;C(u.source_kind)||i(c,u.id,typeof u.kind=="string"?u.kind:"related","dependency",!0)}}let s=[...r.values()].sort((c,l)=>c.holder_id.localeCompare(l.holder_id)||c.target_id.localeCompare(l.target_id)||c.kind.localeCompare(l.kind)||c.source.localeCompare(l.source)),d=s.filter(c=>c.legacy_terminal);return{active:s.filter(c=>!c.legacy_terminal),legacy_terminal:d,no_active_blocker_sentinels:s.filter(c=>c.no_active_blocker_sentinel)}}function Nt(e){let t=new Map;for(let o of[...e.active,...e.legacy_terminal]){if(o.no_active_blocker_sentinel)continue;let n=o.target_id.trim(),r=n.toLowerCase();t.has(r)||t.set(r,n)}return[...t.values()].sort((o,n)=>o.localeCompare(n))}function Mt(e){let t=new Map;for(let o of e){let n=U(o.blocked_by);n&&j(n)&&!t.has(n)&&t.set(n,n);for(let r of o.dependencies??[]){if(typeof r!="object"||r===null||!j(r.id,r.source_kind))continue;let i=U(r.id);i&&!t.has(i)&&t.set(i,i)}}return[...t.values()].sort((o,n)=>o.localeCompare(n))}var Ye=new WeakMap;function eo(e){return e.hierarchyIntegrity??Ye.get(e)}function $t(e,t=x()){let o={};for(let n of e)for(let r of n.dependencies??[]){if(typeof r!="object"||r===null)continue;let i=r.kind;if(typeof i!="string")continue;let s=i.trim().toLowerCase().replaceAll("-","_"),d=t.resolve(i);d&&s!==d.kind&&(o[s]=(o[s]??0)+1)}return Object.fromEntries(Object.entries(o).sort(([n],[r])=>n.localeCompare(r)))}function le(e,t,o){let n=o??x(),r=e.filter(f=>typeof f?.id=="string"&&f.id.trim().length>0),i=new Map(r.map(f=>[f.id.trim().toLowerCase(),f.id.trim()])),s=ae(r,t),d=Nt(s);for(let f of d)i.set(f.toLowerCase(),f);let c=Mt(r),l=new Set(i.keys()),u=new Map;for(let f of c){let y=f;for(;l.has(y.toLowerCase());)y=`external:${y}`;u.set(f,y),l.add(y.toLowerCase())}let a=r.map(f=>{let y=U(f.parent),m=U(f.blocked_by),h=(f.dependencies??[]).flatMap(b=>{if(typeof b!="object"||b===null)return[];let k=b,E=U(k.id);return E?[{id:qe(E,k.source_kind,i,u),kind:typeof k.kind=="string"?k.kind:"related"}]:[]});return{id:f.id.trim(),...y?{parent:i.get(y.toLowerCase())}:{},...m?{blocked_by:qe(m,void 0,i,u)}:{},dependencies:h}}),p=J(r,t,n),g={graph:_e.fromItems([...a,...d.map(f=>({id:f})),...c.map(f=>({id:u.get(f)}))],n),details:[...r.map(f=>({id:f.id.trim(),title:f.title,status:f.status,...typeof f.type=="string"&&f.type.trim().length>0?{type:f.type.trim()}:{}})),...d.map(f=>({id:f,title:`[missing] ${f}`,status:"missing"})),...c.map(f=>({id:u.get(f),title:`[external] ${f}`,status:"external"}))],missingIdSet:new Set(d.map(f=>f.toLowerCase())),dangling:s,duplicateRows:Ot(r,t),orderingContradictions:Bt(r,t,n),legacyAliasCounts:$t(r,n),hierarchyIntegrity:p};return Ye.set(g,p),g}import{createHash as Pt}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 Kt=64,Ut=8;function jt(e,t){let o=(e.dependencies??[]).map(n=>{if(typeof n!="object"||n===null)return"";let r=n;return`${typeof r.kind=="string"?r.kind:"related"}:${typeof r.id=="string"?r.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??"",o].join("\0")}function Je(e,t=n=>n==="closed"||n==="canceled",o=R()){let n=e.filter(i=>typeof i?.id=="string"&&i.id.trim().length>0).map(i=>jt(i,t)).sort(),r=o.list().map(i=>Ie(i)).sort();return Pt("sha256").update(n.join("")).update("").update(r.join("")).digest("hex")}function Ve(e,t,o){let n=t??o;if(!Number.isInteger(n)||n<1)throw new TypeError(`Invalid ${e} bound: ${String(t)}`);return n}var ue=class{#e=new Map;#t;#n;constructor(t={}){this.#t=Ve("maxResultsPerWorkspace",t.maxResultsPerWorkspace,Kt),this.#n=Ve("maxWorkspaces",t.maxWorkspaces,Ut)}lookup(t,o,n){let r=this.#e.get(t),i=!0;(r===void 0||r.fingerprint!==o)&&(r={fingerprint:o,assembly:n(),results:new Map},i=!1,!this.#e.has(t)&&this.#e.size>=this.#n&&this.#e.delete(this.#e.keys().next().value)),this.#e.delete(t),this.#e.set(t,r);let s=r,d=this.#t;return{assembly:s.assembly,assemblyReused:i,fingerprint:o,memoize(c,l){let u=s.results.get(c);if(u!==void 0||s.results.has(c))return s.results.delete(c),s.results.set(c,u),{value:structuredClone(u),reused:!0};let a=l();return s.results.size>=d&&s.results.delete(s.results.keys().next().value),s.results.set(c,structuredClone(a)),{value:a,reused:!1}}}}clear(){this.#e.clear()}},Qe=new ue;function Ze(){return Qe}function io(){Qe.clear()}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="3b494263-6359-57e9-8f34-b0bdcdeda93f")}catch{}})();var F=1200,zt=["prerequisite","dependent","ancestor","descendant","provenance","related"],Ft=new TextEncoder;function pe(e,t,o){let n=e??t;if(!Number.isInteger(n)||n<1)throw new TypeError(`Relationship context ${o} must be positive`);return n}function z(e){return Math.max(1,Math.ceil(Ft.encode(JSON.stringify(e)).byteLength/4))}function Q(e,t,o){let n=o.resolve(e.kind);if(n?.ordering){let r=(n.precedence??"source_before_target")==="source_before_target"?e.source:e.target;return t===r?"prerequisite":"dependent"}if(n?.hierarchy){let r=n.hierarchyDirection==="source_parent"?e.source:e.target;return t===r?"ancestor":"descendant"}return e.kind==="discovered_from"||e.kind==="incident_from"?"provenance":"related"}function Gt(e,t,o,n){let r=e.filter(i=>i.source===t&&i.target===o||i.target===t&&i.source===o).map(i=>Q(i,o,n));return[...new Set(r)].sort()}function Ht(e){return zt.find(t=>e.includes(t))}function Wt(e,t,o,n){let r=n.direction??"both",i=n.maxDepth??3;if(!Number.isInteger(i)||i<0)throw new TypeError("Relationship context maxDepth must be non-negative");let s=new Set([t]),d=[{id:t,distance:0}],c=[],l=0,u=!1;for(let a=0;a<d.length;a+=1){n.signal?.throwIfAborted();let p=d[a];if(p.distance>=i&&u)continue;let g=e.neighborEdges(p.id,{direction:r,kinds:n.kinds,signal:n.signal});if(l+=g.meta.inspectedEdges,p.distance>=i){g.value.some(f=>!s.has(f.id))&&(u=!0);continue}for(let{id:f,edge:y}of g.value){if(s.has(f))continue;s.add(f);let m={id:f,distance:p.distance+1,via:p.id,role:Q(y,f,o)};c.push(m),d.push(m)}}return{rows:c,visitedNodes:d.length,inspectedEdges:l,depthTruncated:u}}function Xt(e,t,o,n){let r={prerequisite:0,dependent:0,ancestor:0,descendant:0,provenance:0,related:0},i=e.neighborEdges(t,{direction:n.direction??"both",kinds:n.kinds,signal:n.signal}).value;for(let{id:s,edge:d}of i)r[Q(d,s,o)]+=1;return{directEdges:r,directTotal:i.length,rootEdges:i.map(({edge:s})=>s)}}function qt(e,t,o,n){let r=new Set;for(let i of t){let s=i.source===o?i.target:i.source,d=Q(i,s,n);(d==="prerequisite"||d==="ancestor")&&r.add(s)}return[...e].sort((i,s)=>Number(r.has(s.id))-Number(r.has(i.id))||i.distance-s.distance||i.id.localeCompare(s.id))}function Yt(e,t){let o=e.distance===1?Gt(t.rootEdges,t.rootId,e.id,t.registry):[];return{...t.details.get(e.id)??{id:e.id},distance:e.distance,role:o.length>0?Ht(o):e.role,via:e.via,reasons:o.length>0?o:[`${e.role} via ${e.via} (depth ${e.distance})`]}}function Vt(e){let t=[],o=e.initialTokens,n=0;for(let r of e.candidates){if(t.length>=e.nodeLimit)break;let i=Yt(r,e),s=z(i);if(o+s>e.tokenBudget)break;let d=e.rootEdges.filter(c=>c.source===r.id||c.target===r.id).reduce((c,l)=>c+z(l),0);if(o+n+s+d>e.tokenBudget){if(t.length>0)break}else n+=d;t.push(i),o+=s}if(e.candidates.length>0&&t.length===0)throw new TypeError("Relationship context tokenBudget cannot fit one node");return{nodes:t,usedTokens:o}}function Jt(e){let t=e.options.kinds?new Set(e.options.kinds.map(i=>e.registry.require(i).kind)):void 0,o=e.graph.edges().filter(i=>{if(!e.included.has(i.source)||!e.included.has(i.target))return!1;if(t===void 0||t.has(i.kind))return!0;let s=e.registry.resolve(i.kind)?.inverse;return s!==void 0&&t.has(s)}).sort((i,s)=>+(s.source===e.rootId||s.target===e.rootId)-+(i.source===e.rootId||i.target===e.rootId)),n=[],r=e.initialTokens;for(let i of o){if(n.length>=e.edgeLimit)break;let s=z(i);r+s>e.tokenBudget||(n.push(i),r+=s)}return{edges:n,usedTokens:r,candidateCount:o.length}}function et(e,t,o,n={}){if(!e.nodes().includes(t))throw new TypeError(`Relationship node not found: ${t}`);let r=pe(n.nodeLimit,20,"nodeLimit"),i=pe(n.edgeLimit,40,"edgeLimit"),s=pe(n.tokenBudget,F,"tokenBudget"),d=n.registry??R(),c=new Map(o.map(O=>[O.id,O])),l=c.get(t)??{id:t},{evidence:u=[],...a}=l,p=[...u],g=Wt(e,t,d,n),{rootEdges:f,...y}=Xt(e,t,d,n),m=qt(g.rows,f,t,d),h=Se("relationship-context",{rootId:t,direction:n.direction??"both",kinds:[...n.kinds??[]].sort(),maxDepth:n.maxDepth??3,ordering:"required-root-evidence-first-v1"}),b=Oe(m,n.cursor,h,({id:O})=>O,"--cursor"),k=m.slice(b),E=z(a)+z(p);if(E>s)throw new TypeError("Relationship context tokenBudget cannot fit root and evidence");let w=Vt({candidates:k,details:c,rootEdges:f,rootId:t,registry:d,nodeLimit:r,tokenBudget:s,initialTokens:E}),{nodes:L}=w,lt=new Set([t,...L.map(({id:O})=>O)]),ge=Jt({graph:e,rootId:t,included:lt,options:n,registry:d,edgeLimit:i,tokenBudget:s,initialTokens:w.usedTokens}),{edges:Z,usedTokens:ut}=ge,G=b+L.length,ee=G<m.length,he=L.at(-1),te=ge.candidateCount-Z.length,ye=g.depthTruncated||ee||te>0,pt={rootId:t,...a.status===void 0?{}:{rootStatus:a.status},...y,discoveredNodes:m.length,returnedNodes:L.length,returnedEdges:Z.length,omittedNodes:m.length-G,omittedEdges:te,evidenceCount:p.length,hasMore:ee};return{root:a,summary:pt,nodes:L,edges:Z,evidence:p,meta:{exact:!0,truncated:ye,completeness:ye?"truncated":"complete",nodeLimit:r,edgeLimit:i,tokenBudget:s,usedTokens:ut,visitedNodes:g.visitedNodes,inspectedEdges:g.inspectedEdges,omittedNodes:m.length-G,omittedEdges:te,...ee&&he?{nextCursor:Le(h,he.id,G-1)}:{}}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="196b7f2d-b09b-5432-b4ef-9cdf82e92731")}catch{}})();var Qt=["tree","graph","context"],Zt=["none","repeated"],en=["outgoing","incoming","both"],tn=32,nn=200,on=400,rn=16e3;function sn(e){let t=e?.trim().toLowerCase()??"tree";if(Qt.includes(t))return t;throw new v(`Invalid --format value "${e}". Use "tree", "graph", or "context".`,I.USAGE)}function N(e,t){if(e===void 0)return;let o=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(o)||o<1)throw new v(`Invalid --${t} value "${e}". Use a positive integer.`,I.USAGE);return o}function nt(e){if(e===void 0)return;let t=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(t)||t<0)throw new v(`Invalid --max-depth value "${e}". Use a non-negative integer.`,I.USAGE);return t}function dn(e){let t=e?.trim().toLowerCase()??"none";if(Zt.includes(t))return t;throw new v(`Invalid --collapse value "${e}". Use "none" or "repeated".`,I.USAGE)}function cn(e){let t=e?.trim().toLowerCase()??"both";if(en.includes(t))return t;throw new v(`Invalid --direction value "${e}". Use "outgoing", "incoming", or "both".`,I.USAGE)}function an(e,t=R()){if(e===void 0)return;let o=(Array.isArray(e)?e:[e]).flatMap(r=>r.split(",")).map(r=>r.trim()).filter(r=>r.length>0);if(o.length===0)return;let n=new Set;for(let r of o){let i=t.resolve(r);if(!i){let s=t.list().map(d=>d.kind).join(", ");throw new v(`Invalid --kind value "${r}". Registered kinds: ${s}.`,I.USAGE)}n.add(i.kind)}return[...n].sort()}function ln(e){if(!e||e.length===0)return[];let t=e.map(({id:n,kind:r})=>({id:n.trim(),kind:r.trim().toLowerCase()})).sort((n,r)=>{let i=n.kind.localeCompare(r.kind);return i!==0?i:n.id.localeCompare(r.id)}),o=new Map;for(let n of t){let r=`${n.kind.toLowerCase()}::${n.id.toLowerCase()}`;o.has(r)||o.set(r,{id:n.id,kind:n.kind})}return[...o.values()]}function un(e){return{id:e.id,title:e.title,type:e.type,status:e.status,dependencies:ln(e.dependencies)}}function pn(e){return M(new TextEncoder().encode(JSON.stringify({...e,dependencies:void 0})).byteLength)}function fn(e,t,o,n,r,i,s,d,c){for(let l of t.dependencies){let u=Math.max(1,Math.ceil(JSON.stringify({from:e.id,to:l.id,kind:l.kind}).length/3));if(d.nodes>=d.nodeLimit){e.truncated=!0,d.reasons.add("node_limit");break}if(d.edges>=d.edgeLimit){e.truncated=!0,d.reasons.add("edge_limit");break}if(d.estimatedTokens+u>=d.tokenBudget){e.truncated=!0,d.reasons.add("token_budget");break}d.edges+=1,d.estimatedTokens+=u,e.dependencies.push(ot(l.id,o,n,r,i,s,d,c+1,l.kind))}}function mn(e,t,o,n,r,i,s,d){return s.estimatedTokens>=s.tokenBudget&&t?.dependencies.length?(e.truncated=!0,s.reasons.add("token_budget"),!0):!t||e.cycle?!0:n!==void 0&&d>=n?(t.dependencies.length>0&&(e.truncated=!0,s.reasons.add("max_depth")),!0):r==="repeated"&&i.has(o)?(e.collapsed=!0,!0):!1}function ot(e,t,o,n,r,i,s,d=0,c){let l=e.trim().toLowerCase(),u=t.get(l),a={id:u?.id??e,title:u?.title,type:u?.type,status:u?.status,via:c,missing:!u,cycle:o.has(l),dependencies:[]};if(s.nodes+=1,s.estimatedTokens+=pn(a),mn(a,u,l,n,r,i,s,d))return a;r==="repeated"&&i.add(l);let p=new Set(o);return p.add(l),fn(a,u,t,p,n,r,i,s,d),a}function tt(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 gn(e){let t=new Map,o=new Map,n=[e];for(;n.length>0;){let d=n.pop();t.set(d.id,tt(t.get(d.id),{id:d.id,title:d.title,type:d.type,status:d.status,missing:d.missing}));for(let c of d.dependencies){t.set(c.id,tt(t.get(c.id),{id:c.id,title:c.title,type:c.type,status:c.status,missing:c.missing}));let l=c.via??"related",u=`${d.id}::${c.id}::${l}`;o.has(u)||o.set(u,{from:d.id,to:c.id,kind:l}),c.cycle||n.push(c)}}let r=[...t.values()].sort((d,c)=>d.id.localeCompare(c.id)),i=[...o.values()].sort((d,c)=>{let l=d.from.localeCompare(c.from);if(l!==0)return l;let u=d.to.localeCompare(c.to);return u!==0?u:d.kind.localeCompare(c.kind)}),s=r.filter(d=>d.missing).map(d=>d.id);return{root_id:e.id,nodes:r,edges:i,missing_ids:s}}function rt(e,t,o){let n=new Set,r=new Set,i=new Set,s=new Set,d=[{id:e,depth:0}],c=0;for(;c<d.length;){let l=d[c++],u=l.id.trim().toLowerCase();n.add(u);let a=t.get(u);if(!a){i.add(u);continue}if(!(o!==void 0&&l.depth>=o)&&!s.has(u)){s.add(u);for(let p of a.dependencies)r.add(`${u}::${p.id.trim().toLowerCase()}::${p.kind}`),d.push({id:p.id,depth:l.depth+1})}}return{node_count:n.size,edge_count:r.size,edge_basis:"deduplicated_directed",missing_count:i.size}}function hn(e,t=R()){let o=nt(e.maxDepth),n=N(e.nodeLimit,"node-limit"),r=N(e.edgeLimit,"edge-limit"),i=N(e.tokenBudget,"token-budget"),s=an(e.kind,t);return{direction:cn(e.direction),...s===void 0?{}:{kinds:s},...o===void 0?{}:{maxDepth:o},...n===void 0?{}:{nodeLimit:n},...r===void 0?{}:{edgeLimit:r},...i===void 0?{}:{tokenBudget:i},...e.cursor?.trim()?{cursor:e.cursor.trim()}:{}}}function yn(e,t,o,n){return et(e.graph,t,e.details.map(r=>r.id===t&&n.length>0?{...r,evidence:n}:r),o)}function fe(e,t,o,n){for(let r of o.slice(0,n)){let i=r?.trim();i&&e.push(`${t}:${i}`)}}async function _n(e,t,o,n){let r=await Ke(e,t,o.id_prefix,o.item_format,n);if(!r)return[];let{document:i}=await Ue(r,{schema:o.schema}),s=i.metadata,d=s.files??[],c=s.tests??[],l=s.docs??[],u=[["files",d.length],["tests",c.length],["docs",l.length],["comments",(s.comments??[]).length],["notes",(s.notes??[]).length],["learnings",(s.learnings??[]).length]];if(u.every(([,p])=>p===0))return[];let a=[`linked:${u.map(([p,g])=>`${p}=${g}`).join(",")}`];return fe(a,"file",d.map(p=>p.path),3),fe(a,"test",c.map(p=>p.command??p.path),2),fe(a,"doc",l.map(p=>p.path),2),a}function kn(e){let{canonicalId:t,context:o,missingCount:n,missingReferences:r,referenceLimit:i,summaryOnly:s}=e;return{id:t,format:"context",node_count:o.nodes.length+1,edge_count:o.edges.length,edge_basis:"deduplicated_directed",missing_count:n,missing_scope:"traversal",missing_reference_count:r.length,...s?{}:{missing_references:r.slice(0,i),context:o}}}function bn(e){let{row:t,missingReachableSet:o,packetIds:n,filteredKinds:r,registry:i}=e;if(t.no_active_blocker_sentinel||!o.has(t.target_id.trim().toLowerCase())||!n.has(t.holder_id))return!1;if(r===void 0)return!0;let s=i.resolve(t.kind);return s!==void 0&&(r.has(s.kind)||s.inverse!==void 0&&r.has(s.inverse))}function it(e,t){let o=Ce(),n=t.commandOptionsOverride??(o?.command==="deps"?o.options:t.commandOptions);return Ae("deps",{...n,...t.global,resolvedOutputFormat:t.format},e)}function me(e,t){let o=it(e,t),n=r=>Ne(r,t.format,t.global.lean===!0);return n(t.global.tokenAccounting===!0?Be(o,n):o)}function st(e,t,o){let n;for(;;){let r=M(new TextEncoder().encode(me(e,t)).byteLength);if(r===n)return r;o(r),n=r}}function dt(e){return e instanceof TypeError&&e.message.startsWith("Relationship context tokenBudget cannot fit ")}function ct(e){let{assembly:t,canonicalId:o,contextOptions:n,rootEvidence:r,summaryOnly:i,rendering:s,missingCount:d,missingReferences:c}=e,l=n.edgeLimit??40,u=Math.min(l,c.length),a=n.tokenBudget,p;for(;;){let g=yn(t,o,{...n,...a===void 0?{}:{tokenBudget:a}},r);p??=g.meta.tokenBudget,a??=p;let f=kn({canonicalId:o,context:g,missingCount:d,missingReferences:c,referenceLimit:u,summaryOnly:i});if(i){if(M(new TextEncoder().encode(me(S(f,!0,s.legacyAliasCounts),s)).byteLength)>p)throw new TypeError("Relationship context tokenBudget cannot fit the rendered summary");return f}if(g.meta.tokenBudget=p,g.meta.usedTokens=st(S(f,!1,s.legacyAliasCounts),s,h=>{g.meta.usedTokens=h}),g.meta.usedTokens<=p)return f;if(u>0){u-=1;continue}let y=a,m=y*p/g.meta.usedTokens;a=Math.min(y-1,Math.max(1,Math.floor(m*.9)))}}function at(e,t){let o=e.contextOptions,n={...e.rendering.global,outputFormat:e.rendering.format},r=["--pm-path",e.pmRoot,"item","deps",e.canonicalId,"--format","context","--output-format",e.rendering.format,"--token-budget"],i=r.length;r.push(String(t));let s=new Set(["--pm-path","--format","--output-format","--token-budget"]),d={format:"context",tokenBudget:t,kind:o.kinds},c=[["--max-depth","maxDepth",o.maxDepth],["--node-limit","nodeLimit",o.nodeLimit],["--edge-limit","edgeLimit",o.edgeLimit],["--direction","direction",o.direction],["--cursor","cursor",o.cursor],["--output-include","outputInclude",n.outputInclude],["--output-limit","outputLimit",n.outputLimit],["--output-budget","outputBudget",n.outputBudget],["--output-session","outputSession",n.outputSession],["--output-cursor","outputCursor",n.outputCursor]];for(let[a,p,g]of c)g!==void 0&&(r.push(a,String(g)),s.add(a),d[p]=g);for(let a of o.kinds??[])r.push("--kind",a),s.add("--kind");let l=[["--summary","summary",e.summaryOnly],["--full","full",e.rendering.commandOptions.full],["--json","json",n.json],["--lean","lean",n.lean],["--output-row-contract","outputRowContract",n.outputRowContract],["--token-accounting","tokenAccounting",n.tokenAccounting],["--no-extensions","noExtensions",n.noExtensions],["--no-pager","noPager",n.noPager]];for(let[a,p,g]of l)g===!0&&(r.push(a),s.add(a),d[p]=!0);let u=Re.find(a=>a.command==="deps");return Reflect.set(d,xe,{canonical_include_modes:[],cli_invocation_observed:!0,explicit_legacy_aliases:Object.values(u.dimensions).flatMap(a=>a.legacy_aliases.flatMap(p=>s.has(p.flag)?[p.flag]:[]))}),Te("deps",d),ne(d.summary===!0,d.full===!0,"--summary"),n.outputInclude=d.outputInclude,{args:r,budgetIndex:i,summaryOnly:d.summary===!0,rendering:{...e.rendering,global:n,commandOptionsOverride:d}}}function vn(e,t,o){let n={...t.rendering,commandOptionsOverride:{...t.rendering.commandOptionsOverride,tokenBudget:o}},r;try{r=ct({...e,contextOptions:{...e.contextOptions,tokenBudget:o},summaryOnly:t.summaryOnly,rootEvidence:t.summaryOnly?[]:e.rootEvidence,rendering:n})}catch(s){if(!dt(s))throw s;return"native_floor"}let i=it(S(r,t.summaryOnly,n.legacyAliasCounts),n);return De(i)?"output_constraints":"fits"}async function wn(e,t){let o=e.contextOptions.tokenBudget??F,n=at(e,o),r=(n.summaryOnly?1:1+Math.min(e.contextOptions.edgeLimit??40,e.missingReferences.length))*(e.assembly.details.reduce((a,p)=>a+p.id.length+p.title.length+p.status.length+(p.type?.length??0),e.assembly.graph.edges().length+e.missingReferences.length)+(n.summaryOnly?[]:e.rootEvidence).reduce((a,p)=>a+p.length,0)),{findContextBudgetRecovery:i}=await import("./context-budget-recovery-5MKOCGY5.js"),s=i({requested:o,initialBudget:F,workUnits:r,probe:a=>vn(e,n,a)}),d=["--pm-path",e.pmRoot,"item","deps",e.canonicalId,"--format","tree","--summary"],c=X(d),l=s.feasible_tokens===null?d:[...n.args];s.feasible_tokens!==null&&(l[n.budgetIndex]=String(s.feasible_tokens));let u=X(l);return ze("Relationship context tokenBudget cannot fit the required rendered packet",{exitCode:I.USAGE,cause:t,context:{code:"invalid_argument_value",field:"tokenBudget",value:String(o),required:s.feasible_tokens===null?"Inspect the compact summary and review the output constraints.":"Retry the preserved context query with --token-budget "+s.feasible_tokens+".",why:"Budget advice is verified against the current query. A minimum is reported only after every smaller positive budget is checked.",examples:[u,c],nextSteps:[u],recovery:{recovery_mode:"compact",suggested_flags:["--token-budget"],token_budget:s,suggested_retry_args:l,suggested_retry:u,next_best_command:c,fallback_candidates:[{source:"relationship_summary",command:c,reason:"Inspect bounded counts separately from context rows."}]}}})}async function In(e){let{pmRoot:t,assembly:o,canonicalId:n,options:r,rootEvidence:i,summaryOnly:s,rendering:d}=e,c=hn(r,o.graph.registry()),l=o.graph.closure(n,{direction:c.direction,...c.kinds===void 0?{}:{kinds:c.kinds},maxDepth:c.maxDepth??3}),u=l.value.filter(h=>o.missingIdSet.has(h.toLowerCase())),a=new Set(u.map(h=>h.toLowerCase())),p=o.graph.registry(),g=c.kinds?new Set(c.kinds.map(h=>p.require(h).kind)):void 0,f=new Set([n,...l.value]),y=[...o.dangling.active,...o.dangling.legacy_terminal].filter(h=>bn({row:h,missingReachableSet:a,packetIds:f,filteredKinds:g,registry:p})),m={pmRoot:t,assembly:o,canonicalId:n,contextOptions:c,rootEvidence:i,summaryOnly:s,rendering:d,missingCount:u.length,missingReferences:y};try{return ct(m)}catch(h){if(h instanceof v&&h.code==="invalid_query_cursor"){let b=at({...m,contextOptions:{...c,cursor:void 0},rendering:{...d,global:{...d.global,outputCursor:void 0}}},c.tokenBudget??F),k=X(b.args);throw new v(h.message,h.exitCode,{...h.context,nextSteps:[...h.context.nextSteps,k],recovery:{suggested_retry:k,suggested_retry_args:b.args}})}throw dt(h)?await wn(m,h):h}}function En(e){let t=[e],o;for(;t.length>0;){let n=t.pop();n.dependencies.length>0&&(o=n,t.push(...n.dependencies))}return o?(o.dependencies.pop(),o.truncated=!0,!0):!1}function Cn(e,t,o,n,r,i,s){let d=r??tn,c=N(o.nodeLimit,"node-limit")??nn,l=N(o.edgeLimit,"edge-limit")??on,u=N(o.tokenBudget,"token-budget")??rn,a={nodeLimit:c,edgeLimit:l,tokenBudget:u,nodes:0,edges:0,estimatedTokens:0,reasons:new Set},p=ot(e,n,new Set,d,t==="graph"?"repeated":i,new Set,a),g=rt(e,n,void 0),f;for(;;){let y=gn(p),m=a.reasons.size===0?void 0:{reasons:[...a.reasons].sort(),limits:{max_depth:d,node_limit:c,edge_limit:l,token_budget:u},estimated_tokens:0,total_node_count:g.node_count,total_edge_count:g.edge_count,omitted_node_count:Math.max(0,g.node_count-y.nodes.length),omitted_edge_count:Math.max(0,g.edge_count-y.edges.length)},h={id:e,format:t,node_count:y.nodes.length,edge_count:y.edges.length,edge_basis:"deduplicated_directed",missing_count:y.missing_ids.length,...m?{truncation:m}:{}};if(f=t==="tree"?{...h,tree:p}:{...h,graph:y},(f.truncation===void 0?M(new TextEncoder().encode(me(S(f,!1,s.legacyAliasCounts),s)).byteLength):st(S(f,!1,s.legacyAliasCounts),s,b=>{f.truncation.estimated_tokens=b}))<=u)return f;if(!En(p))return a.reasons.add("token_budget"),f;a.reasons.add("token_budget")}}function S(e,t,o={}){let n={name:e.format==="tree"?"dependency_tree":e.format==="graph"?"dependency_graph":"relationship_context",restore_with:"--full"},r=e.context?.meta.truncated?[{name:"relationship_context_bounds",restore_with:"--token-budget <n> --node-limit <n> --edge-limit <n> --max-depth <n>"}]:[];return{...e,legacy_alias_counts:o,projection:{mode:t?"summary":"full",declared_field_groups:[n,...r],included_field_groups:t?[]:[n.name]}}}async function Bo(e,t,o){let n=we(process.cwd(),o.path);await Pe(n);let r=sn(t.format),i=nt(t.maxDepth),s=dn(t.collapse);ne(t.summary===!0,t.full===!0,"--summary");let d=t.summary===!0,c=await $e(n),l=be(c,W()),u=await je(n,c.item_format,l.type_to_folder,void 0,c.schema),a=Ee(c.schema),p=new Map(u.map(m=>[m.id.trim().toLowerCase(),un(m)])),g=ae(u,m=>D(m,a));for(let m of[...g.active,...g.legacy_terminal]){let h=p.get(m.holder_id.trim().toLowerCase()),b=m.kind.trim().toLowerCase();h&&!h.dependencies.some(k=>k.id.trim().toLowerCase()===m.target_id.trim().toLowerCase()&&k.kind===b)&&h.dependencies.push({id:m.target_id,kind:b})}if(!p.has(e.trim().toLowerCase()))throw new v(`Item ${e} not found`,I.NOT_FOUND);let f=o.outputFormat??(o.json===!0||o.json===void 0&&o.defaultOutputFormat==="json"?"json":"toon");if(r==="context"){let m=p.get(e.trim().toLowerCase()).id,h=d?[]:await _n(n,m,c,l.type_to_folder),b=w=>D(w,a),k=x(),E=Ze().lookup(n,Je(u,b,k),()=>le(u,b,k));return S(await In({pmRoot:n,assembly:E.assembly,canonicalId:m,options:t,rootEvidence:h,summaryOnly:d,rendering:{format:f,global:o,commandOptions:t,legacyAliasCounts:E.assembly.legacyAliasCounts}}),d,E.assembly.legacyAliasCounts)}let y=Object.fromEntries(Object.entries(le(u,m=>D(m,a)).legacyAliasCounts));return d?S({id:e,format:r,...rt(e,p,i)},!0,y):S(Cn(e,r,t,p,i,s,{format:f,global:o,commandOptions:t,legacyAliasCounts:y}),!1,y)}export{re as a,ft as b,P as c,Y as d,Ge as e,mt as f,gt as g,ht as h,kt as i,Wn as j,Xn as k,St as l,x as m,Kn as n,J as o,Un as p,Tt as q,jn as r,U as s,Ot as t,Bt as u,ae as v,Nt as w,eo as x,le as y,Je as z,ue as A,Ze as B,io as C,F as D,et as E,N as F,nt as G,cn as H,an as I,Bo as J};
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{F as Ke,G as Ue,J as je,U as ze,f as Me}from"./chunk-EJJWOFP5.js";import{bb as $e,gb as Pe,s as $,t as D}from"./chunk-FUGYXUUL.js";import{j as Ee}from"./chunk-Q23K6WLV.js";import{b as T,c as C}from"./chunk-AK2CI2GI.js";import{De as Ne,Fa as Ie,Fd as Se,Gd as Le,Hc as ne,Kd as Oe,Nc as X,R,T as H,W as _e,_c as M,ka as ke,kd as xe,pd as Re,qa as be,sa as ve,sc as W,tc as Ce,ud as Te,wa as we,yd as De,ye as Ae,ze as Be}from"./chunk-TGS5RXBY.js";import{A as v,z as I}from"./chunk-QVFE5LIX.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]="a319e7d9-e248-573b-bf1f-35217ce49fd0")}catch{}})();function re(e,t){return(t===void 0?void 0:ve(e,t))?.execution_role??ke[e.trim().toLowerCase()]??"agent"}var ie="blocked_by",Fe="blocks",ft=Object.freeze([ie,Fe]),oe="no-active-blocker";function _(e){return e.trim().toLowerCase()}function q(e,t){return t?`external:${e}`:`local:${_(e)}`}function P(e){let t=new Map,o=typeof e.blocked_by=="string"?e.blocked_by.trim():"";if(o.length>0&&_(o)!==oe){let n=T(o);t.set(q(o,n),n?o:_(o))}for(let n of e.dependencies??[]){let r=typeof n.id=="string"?n.id.trim():"";if(H(n.kind)===ie&&r.length>0&&_(r)!==oe){let i=T(r)||C(n.source_kind);t.set(q(r,i),i?r:_(r))}}return[...t.values()].sort((n,r)=>n.localeCompare(r))}function Y(e){let t=new Map;for(let o of e){let n=_(o.id);n.length!==0&&t.set(n,new Set(P(o)))}for(let o of e){let n=_(o.id);if(n.length!==0)for(let r of o.dependencies??[]){let i=H(r.kind)===Fe&&typeof r.id=="string"?_(r.id):"";if(i.length===0||i===oe)continue;let s=t.get(i)??new Set;s.add(n),t.set(i,s)}}return new Map([...t].map(([o,n])=>[o,[...n].sort((r,i)=>r.localeCompare(i))]))}function Ge(e,t){let o=_(e.id);return o.length>0?Y(t).get(o)??P(e):P(e)}function se(e,t,o,n){let r=e,i=typeof r.id=="string"?n?.get(_(r.id))??Ge(r,[...t.values()]):P(e),s=new Set((e.dependencies??[]).filter(d=>H(d.kind)===ie&&C(d.source_kind)&&typeof d.id=="string"&&d.id.trim().length>0).map(d=>q(d.id.trim(),!0)));return i.map(d=>{if(T(d)||s.has(q(d,!0)))return{id:d,title:null,status:null,resolved:!1,external:!0,...typeof e.updated_at=="string"?{blocked_since:e.updated_at}:{},resolver:null};let c=t.get(_(d));return c?{id:d,title:c.title,status:c.status,resolved:D(c.status,o)}:{id:d,title:null,status:null,resolved:!1}})}function mt(e,t,o){return se(e,t,o)}function gt(e,t){let o=new Map(e.map(s=>[_(s.id),s])),n=Y(e),r=new Set([...He(t),...t.blocked_statuses]),i=new Set;for(let s of e){let d=$(s.status,t);r.has(d)&&(t.blocked_statuses.has(d)||se(s,o,t,n).some(c=>!c.resolved))&&i.add(_(s.id))}return i}function ht(e,t,o={},n){let r=[...e.ready,...e.decisions,...e.gates];o.includeContainers===!0&&r.push(...e.containers.filter(s=>s.open_blockers.length===0&&!t.blocked_statuses.has($(s.item.status,t))));let i={ready:[],decisions:[],gates:[]};for(let s of r){let d=re(s.item.type,n);d==="human"&&o.includeDecisions!==!0?i.decisions.push(s):d==="gate"&&o.includeGates!==!0?i.gates.push(s):i.ready.push(s)}return i}function He(e){return e.active_statuses.size>0?e.active_statuses:new Set([e.open_status])}function yt(e,t,o){let n=[_(e)],r=new Set;for(;n.length>0;){let i=n.pop();if(!r.has(i)){r.add(i);for(let s of t.get(i)??[]){if(!D(s.status,o))return!0;n.push(_(s.id))}}}return!1}function _t(e){let t=new Map,o=new Map,n=new Map,r=Y(e);for(let i of e){t.set(_(i.id),i);let s=typeof i.parent=="string"?i.parent.trim():"";if(s.length>0){let d=_(s),c=o.get(d)??[];c.push(i),o.set(d,c)}for(let d of r.get(_(i.id))){let c=_(d),l=n.get(c)??[];l.push(i.id),n.set(c,l)}}return{itemsById:t,childrenByParent:o,blockedByReverse:n,blockerIdsByItem:r}}function kt(e,t,o,n){let{itemsById:r,childrenByParent:i,blockedByReverse:s,blockerIdsByItem:d}=_t(t),c=new Set([...He(o),...o.blocked_statuses]),l=new Set(t.filter(m=>!D(m.status,o)).map(m=>_(m.id))),u=[],a=[],p=[],g=[],f=[],y=0;for(let m of e){if(!c.has($(m.status,o)))continue;y+=1;let h=se(m,r,o,d).filter(w=>!w.resolved),b=(s.get(_(m.id))??[]).filter(w=>l.has(_(w))).sort((w,L)=>w.localeCompare(L)),k={item:m,open_blockers:h,unblocks:b};if(yt(m.id,i,o)){p.push(k);continue}let E=o.blocked_statuses.has($(m.status,o));if(h.length===0&&!E){let w=re(m.type,n);w==="human"?g.push(k):w==="gate"?f.push(k):u.push(k)}else a.push(k)}return{ready:u,blocked:a,containers:p,decisions:g,gates:f,active_count:y,container_count:p.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]="283dfa35-9a8e-524c-b6e2-d433d51215ca")}catch{}})();function x(){let e=R();for(let t of W()?.relationship_kinds??[])for(let o of t.definitions)e.register(o);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 K(e){if(typeof e!="string")return;let t=e.trim().toLowerCase();return t.length>0?t:void 0}function V(e){return[e.parent_id,e.child_id,e.source,e.kind,e.holder_id,e.target_id??""].join("\0")}function bt(e,t){let o=new Set,n=[];for(let r of[...e].sort()){if(o.has(r))continue;o.add(r);let i=[{nodeId:r,children:[...t.get(r)??[]].sort(),nextChild:0}];for(;i.length>0;){let s=i.at(-1),d=s.children[s.nextChild];d===void 0?(n.push(s.nodeId),i.pop()):(s.nextChild+=1,o.has(d)||(o.add(d),i.push({nodeId:d,children:[...t.get(d)??[]].sort(),nextChild:0})))}}return n}function vt(e,t){let o=[...e].sort(),n=bt(o,t),r=new Set,i=wt(o,t),s=[];for(let d of n.reverse()){if(r.has(d))continue;let c=It(d,i,r);(c.length>1||t.get(c[0])?.has(c[0]))&&s.push(c)}return s.sort((d,c)=>d.join("\0").localeCompare(c.join("\0")))}function wt(e,t){let o=new Map(e.map(n=>[n,new Set]));for(let[n,r]of t)for(let i of r)o.get(i)?.add(n);return o}function It(e,t,o){let n=[],r=[e];for(o.add(e);r.length>0;){let i=r.pop();n.push(i);for(let s of[...t.get(i)].sort())o.has(s)||(o.add(s),r.push(s))}return n.sort()}function We(e){let t=new Map;for(let o of e){let n=K(o?.id);n&&!t.has(n)&&t.set(n,o)}return t}function Et(e,t,o){let n=K(t.parent);if(!(!n||!o.has(n)))return{parent_id:n,child_id:e,source:"scalar_parent",kind:"parent",holder_id:e,child_cardinality:"one"}}function Ct(e,t,o,n){let r=K(t?.id),i=n.resolve(t?.kind);if(!r||!o.has(r)||!i?.hierarchy)return;let s=i.hierarchyDirection==="source_parent";return{parent_id:s?e:r,child_id:s?r:e,source:"dependency",kind:i.kind,holder_id:e,target_id:r,child_cardinality:s?i.incoming:i.outgoing}}function Xe(e,t){let o=new Map;for(let[n,r]of e){let i=Et(n,r,e);i&&o.set(V(i),i);for(let s of r.dependencies??[]){let d=Ct(n,s,e,t);d&&o.set(V(d),d)}}return[...o.values()].sort((n,r)=>V(n).localeCompare(V(r)))}function Kn(e,t=x()){return Xe(We(e),t)}function xt(e,t,o){let n=new Set(e.filter(r=>r.child_cardinality==="one").map(r=>r.child_id));return[...t].filter(([r,i])=>i.length>1&&n.has(r)).map(([r,i])=>({child_id:r,parent_ids:[...i],legacy_terminal:o.has(r)&&i.every(s=>o.has(s))})).sort((r,i)=>r.child_id.localeCompare(i.child_id))}function Rt(e,t,o){let n=new Map;for(let i of t){if(i.source!=="dependency")continue;let s=n.get(i.child_id)??new Set;s.add(i.parent_id),n.set(i.child_id,s)}let r=[];for(let[i,s]of e){let d=K(s.parent);if(!d||!e.has(d))continue;let c=[...n.get(i)??[]].filter(l=>l!==d).sort();c.length!==0&&r.push({child_id:i,scalar_parent_id:d,dependency_parent_ids:c,legacy_terminal:o.has(i)&&o.has(d)&&c.every(l=>o.has(l))})}return r.sort((i,s)=>i.child_id.localeCompare(s.child_id))}function J(e,t=n=>n==="closed"||n==="canceled",o=x()){let n=We(e),r=Xe(n,o),i=Tt(r),s=new Set([...n].filter(([,c])=>t(c.status)).map(([c])=>c)),d=vt([...n.keys()],new Map([...i.children_by_parent].map(([c,l])=>[c,new Set(l)]))).map(c=>({item_ids:c,legacy_terminal:c.every(l=>s.has(l))}));return{relations:r,cycles:d,cardinality_violations:xt(r,i.parents_by_child,s),divergences:Rt(n,r,s)}}function Un(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 Tt(e){let t=new Map,o=new Map;for(let n of e){let r=t.get(n.child_id)??new Set;r.add(n.parent_id),t.set(n.child_id,r);let i=o.get(n.parent_id)??new Set;i.add(n.child_id),o.set(n.parent_id,i)}return{parents_by_child:new Map([...t].map(([n,r])=>[n,[...r].sort()])),children_by_parent:new Map([...o].map(([n,r])=>[n,[...r].sort()]))}}function de(e,t){let o=new Set(t);return e.every(n=>o.has(n))}function jn(e,t,o,n,r){let i=K(o);if(!i)return;let s=J(e,n,r),d=J(t,n,r),c=d.divergences.find(a=>!s.divergences.some(p=>p.child_id===a.child_id&&p.scalar_parent_id===a.scalar_parent_id&&de(a.dependency_parent_ids,p.dependency_parent_ids)));if(c){let a=[c.scalar_parent_id,...c.dependency_parent_ids].sort();throw new v(`Hierarchy mutation would assign ${c.child_id} to multiple parents: ${a.join(", ")}.`,I.CONFLICT,{code:"hierarchy_parent_divergence_created",source_id:i,target_id:c.child_id,verification_errors:a})}let l=d.cardinality_violations.find(a=>(a.child_id===i||a.parent_ids.includes(i))&&!s.cardinality_violations.some(p=>p.child_id===a.child_id&&de(a.parent_ids,p.parent_ids)));if(l)throw new v(`Hierarchy mutation would assign ${l.child_id} to multiple parents: ${l.parent_ids.join(", ")}.`,I.CONFLICT,{code:"hierarchy_cardinality_created",source_id:i,target_id:l.child_id,verification_errors:l.parent_ids});let u=d.cycles.find(a=>a.item_ids.includes(i)&&!s.cycles.some(p=>de(a.item_ids,p.item_ids)));if(u)throw new v(`Hierarchy mutation would create a cycle: ${u.item_ids.join(" -> ")}.`,I.CONFLICT,{code:"hierarchy_cycle_created",source_id:i,verification_errors:u.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]="6c580b70-76eb-51db-8587-99b73dd20875")}catch{}})();var Dt="global";function Wn(e){let t=e?.trim();if(t)return C(t)?Dt:t}function Xn(e,t,o){return St(e,t,o)}function St(e,t,o){let n=e.trim();return C(o)||T(n)?n:Me(n,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]="41f814be-ee87-5cae-b674-69c2e7f42655")}catch{}})();function B(e){if(typeof e!="string")return;let t=e.trim();if(!(!t||["none","null","n/a","na"].includes(t.toLowerCase())))return t}function U(e){let t=B(e);return t?.toLowerCase()==="no-active-blocker"?void 0:t}function j(e,t,o=!0){let n=B(e);return o&&(C(t)||n!==void 0&&T(n))}function ce(e,t){return j(e,t)?`external\0${e}`:`local\0${e.toLowerCase()}`}function qe(e,t,o,n){return j(e,t)?n.get(e):o.get(e.toLowerCase())}function A(e,t){let o=e.toLowerCase(),n=t.toLowerCase();return o!==n?o<n?-1:1:e!==t?e<t?-1:1:0}function Lt(e){let t=new Map;for(let o of e.dependencies??[]){if(typeof o!="object"||o===null)continue;let n=o,r=B(n.id);if(!r)continue;let i=typeof n.kind=="string"?n.kind:"related",s=`${i}\0${ce(r,n.source_kind)}`,d=t.get(s);d?d.count+=1:t.set(s,{target_id:r,kind:i,count:1})}return t}function Ot(e,t=o=>o==="closed"||o==="canceled"){let o=[];for(let n of e)if(!(typeof n?.id!="string"||n.id.trim().length===0))for(let r of Lt(n).values())r.count<2||o.push({holder_id:n.id.trim(),target_id:r.target_id,kind:r.kind,occurrences:r.count,holder_status:n.status,legacy_terminal:t(n.status)});return o.sort((n,r)=>{let i=A(n.holder_id,r.holder_id);if(i!==0)return i;let s=A(n.target_id,r.target_id);return s!==0?s:A(n.kind,r.kind)})}function At(e,t,o,n,r){if(typeof o!="object"||o===null)return;let i=B(o.id);if(!i||ce(i,o.source_kind)!==ce(t))return;let s=r.resolve(typeof o.kind=="string"?o.kind:"related");if(!(s?.ordering!==!0||(s.precedence??"source_before_target")!=="source_before_target"))return{holder_id:e.id.trim(),target_id:i,dependency_kind:s.kind,holder_status:e.status,legacy_terminal:n(e.status)}}function Bt(e,t=n=>n==="closed"||n==="canceled",o=x()){let n=new Map;for(let r of e){if(typeof r?.id!="string"||r.id.trim().length===0)continue;let i=B(r.blocked_by);if(i)for(let s of r.dependencies??[]){let d=At(r,i,s,t,o);d&&n.set(`${d.holder_id.toLowerCase()}\0${d.target_id.toLowerCase()}\0${d.dependency_kind}`,d)}}return[...n.values()].sort((r,i)=>{let s=A(r.holder_id,i.holder_id);if(s!==0)return s;let d=A(r.target_id,i.target_id);return d!==0?d:A(r.dependency_kind,i.dependency_kind)})}function ae(e,t=o=>o==="closed"||o==="canceled"){let o=e.filter(c=>typeof c?.id=="string"&&c.id.trim().length>0),n=new Set(o.map(c=>c.id.trim().toLowerCase())),r=new Map,i=(c,l,u,a,p)=>{let g=B(l);if(!g||n.has(g.toLowerCase())||j(g,void 0,p))return;let f={holder_id:c.id.trim(),target_id:g,kind:u,source:a,holder_status:c.status,legacy_terminal:t(c.status),no_active_blocker_sentinel:g.toLowerCase()==="no-active-blocker"};r.set(`${f.holder_id}::${f.target_id}::${f.kind}::${f.source}`,f)};for(let c of o){i(c,c.parent,"parent","parent",!1),i(c,c.blocked_by,"blocked_by","blocked_by",!0);for(let l of c.dependencies??[]){if(typeof l!="object"||l===null)continue;let u=l;C(u.source_kind)||i(c,u.id,typeof u.kind=="string"?u.kind:"related","dependency",!0)}}let s=[...r.values()].sort((c,l)=>c.holder_id.localeCompare(l.holder_id)||c.target_id.localeCompare(l.target_id)||c.kind.localeCompare(l.kind)||c.source.localeCompare(l.source)),d=s.filter(c=>c.legacy_terminal);return{active:s.filter(c=>!c.legacy_terminal),legacy_terminal:d,no_active_blocker_sentinels:s.filter(c=>c.no_active_blocker_sentinel)}}function Nt(e){let t=new Map;for(let o of[...e.active,...e.legacy_terminal]){if(o.no_active_blocker_sentinel)continue;let n=o.target_id.trim(),r=n.toLowerCase();t.has(r)||t.set(r,n)}return[...t.values()].sort((o,n)=>o.localeCompare(n))}function Mt(e){let t=new Map;for(let o of e){let n=U(o.blocked_by);n&&j(n)&&!t.has(n)&&t.set(n,n);for(let r of o.dependencies??[]){if(typeof r!="object"||r===null||!j(r.id,r.source_kind))continue;let i=U(r.id);i&&!t.has(i)&&t.set(i,i)}}return[...t.values()].sort((o,n)=>o.localeCompare(n))}var Ye=new WeakMap;function eo(e){return e.hierarchyIntegrity??Ye.get(e)}function $t(e,t=x()){let o={};for(let n of e)for(let r of n.dependencies??[]){if(typeof r!="object"||r===null)continue;let i=r.kind;if(typeof i!="string")continue;let s=i.trim().toLowerCase().replaceAll("-","_"),d=t.resolve(i);d&&s!==d.kind&&(o[s]=(o[s]??0)+1)}return Object.fromEntries(Object.entries(o).sort(([n],[r])=>n.localeCompare(r)))}function le(e,t,o){let n=o??x(),r=e.filter(f=>typeof f?.id=="string"&&f.id.trim().length>0),i=new Map(r.map(f=>[f.id.trim().toLowerCase(),f.id.trim()])),s=ae(r,t),d=Nt(s);for(let f of d)i.set(f.toLowerCase(),f);let c=Mt(r),l=new Set(i.keys()),u=new Map;for(let f of c){let y=f;for(;l.has(y.toLowerCase());)y=`external:${y}`;u.set(f,y),l.add(y.toLowerCase())}let a=r.map(f=>{let y=U(f.parent),m=U(f.blocked_by),h=(f.dependencies??[]).flatMap(b=>{if(typeof b!="object"||b===null)return[];let k=b,E=U(k.id);return E?[{id:qe(E,k.source_kind,i,u),kind:typeof k.kind=="string"?k.kind:"related"}]:[]});return{id:f.id.trim(),...y?{parent:i.get(y.toLowerCase())}:{},...m?{blocked_by:qe(m,void 0,i,u)}:{},dependencies:h}}),p=J(r,t,n),g={graph:_e.fromItems([...a,...d.map(f=>({id:f})),...c.map(f=>({id:u.get(f)}))],n),details:[...r.map(f=>({id:f.id.trim(),title:f.title,status:f.status,...typeof f.type=="string"&&f.type.trim().length>0?{type:f.type.trim()}:{}})),...d.map(f=>({id:f,title:`[missing] ${f}`,status:"missing"})),...c.map(f=>({id:u.get(f),title:`[external] ${f}`,status:"external"}))],missingIdSet:new Set(d.map(f=>f.toLowerCase())),dangling:s,duplicateRows:Ot(r,t),orderingContradictions:Bt(r,t,n),legacyAliasCounts:$t(r,n),hierarchyIntegrity:p};return Ye.set(g,p),g}import{createHash as Pt}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 Kt=64,Ut=8;function jt(e,t){let o=(e.dependencies??[]).map(n=>{if(typeof n!="object"||n===null)return"";let r=n;return`${typeof r.kind=="string"?r.kind:"related"}:${typeof r.id=="string"?r.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??"",o].join("\0")}function Je(e,t=n=>n==="closed"||n==="canceled",o=R()){let n=e.filter(i=>typeof i?.id=="string"&&i.id.trim().length>0).map(i=>jt(i,t)).sort(),r=o.list().map(i=>Ie(i)).sort();return Pt("sha256").update(n.join("")).update("").update(r.join("")).digest("hex")}function Ve(e,t,o){let n=t??o;if(!Number.isInteger(n)||n<1)throw new TypeError(`Invalid ${e} bound: ${String(t)}`);return n}var ue=class{#e=new Map;#t;#n;constructor(t={}){this.#t=Ve("maxResultsPerWorkspace",t.maxResultsPerWorkspace,Kt),this.#n=Ve("maxWorkspaces",t.maxWorkspaces,Ut)}lookup(t,o,n){let r=this.#e.get(t),i=!0;(r===void 0||r.fingerprint!==o)&&(r={fingerprint:o,assembly:n(),results:new Map},i=!1,!this.#e.has(t)&&this.#e.size>=this.#n&&this.#e.delete(this.#e.keys().next().value)),this.#e.delete(t),this.#e.set(t,r);let s=r,d=this.#t;return{assembly:s.assembly,assemblyReused:i,fingerprint:o,memoize(c,l){let u=s.results.get(c);if(u!==void 0||s.results.has(c))return s.results.delete(c),s.results.set(c,u),{value:structuredClone(u),reused:!0};let a=l();return s.results.size>=d&&s.results.delete(s.results.keys().next().value),s.results.set(c,structuredClone(a)),{value:a,reused:!1}}}}clear(){this.#e.clear()}},Qe=new ue;function Ze(){return Qe}function io(){Qe.clear()}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="3b494263-6359-57e9-8f34-b0bdcdeda93f")}catch{}})();var F=1200,zt=["prerequisite","dependent","ancestor","descendant","provenance","related"],Ft=new TextEncoder;function pe(e,t,o){let n=e??t;if(!Number.isInteger(n)||n<1)throw new TypeError(`Relationship context ${o} must be positive`);return n}function z(e){return Math.max(1,Math.ceil(Ft.encode(JSON.stringify(e)).byteLength/4))}function Q(e,t,o){let n=o.resolve(e.kind);if(n?.ordering){let r=(n.precedence??"source_before_target")==="source_before_target"?e.source:e.target;return t===r?"prerequisite":"dependent"}if(n?.hierarchy){let r=n.hierarchyDirection==="source_parent"?e.source:e.target;return t===r?"ancestor":"descendant"}return e.kind==="discovered_from"||e.kind==="incident_from"?"provenance":"related"}function Gt(e,t,o,n){let r=e.filter(i=>i.source===t&&i.target===o||i.target===t&&i.source===o).map(i=>Q(i,o,n));return[...new Set(r)].sort()}function Ht(e){return zt.find(t=>e.includes(t))}function Wt(e,t,o,n){let r=n.direction??"both",i=n.maxDepth??3;if(!Number.isInteger(i)||i<0)throw new TypeError("Relationship context maxDepth must be non-negative");let s=new Set([t]),d=[{id:t,distance:0}],c=[],l=0,u=!1;for(let a=0;a<d.length;a+=1){n.signal?.throwIfAborted();let p=d[a];if(p.distance>=i&&u)continue;let g=e.neighborEdges(p.id,{direction:r,kinds:n.kinds,signal:n.signal});if(l+=g.meta.inspectedEdges,p.distance>=i){g.value.some(f=>!s.has(f.id))&&(u=!0);continue}for(let{id:f,edge:y}of g.value){if(s.has(f))continue;s.add(f);let m={id:f,distance:p.distance+1,via:p.id,role:Q(y,f,o)};c.push(m),d.push(m)}}return{rows:c,visitedNodes:d.length,inspectedEdges:l,depthTruncated:u}}function Xt(e,t,o,n){let r={prerequisite:0,dependent:0,ancestor:0,descendant:0,provenance:0,related:0},i=e.neighborEdges(t,{direction:n.direction??"both",kinds:n.kinds,signal:n.signal}).value;for(let{id:s,edge:d}of i)r[Q(d,s,o)]+=1;return{directEdges:r,directTotal:i.length,rootEdges:i.map(({edge:s})=>s)}}function qt(e,t,o,n){let r=new Set;for(let i of t){let s=i.source===o?i.target:i.source,d=Q(i,s,n);(d==="prerequisite"||d==="ancestor")&&r.add(s)}return[...e].sort((i,s)=>Number(r.has(s.id))-Number(r.has(i.id))||i.distance-s.distance||i.id.localeCompare(s.id))}function Yt(e,t){let o=e.distance===1?Gt(t.rootEdges,t.rootId,e.id,t.registry):[];return{...t.details.get(e.id)??{id:e.id},distance:e.distance,role:o.length>0?Ht(o):e.role,via:e.via,reasons:o.length>0?o:[`${e.role} via ${e.via} (depth ${e.distance})`]}}function Vt(e){let t=[],o=e.initialTokens,n=0;for(let r of e.candidates){if(t.length>=e.nodeLimit)break;let i=Yt(r,e),s=z(i);if(o+s>e.tokenBudget)break;let d=e.rootEdges.filter(c=>c.source===r.id||c.target===r.id).reduce((c,l)=>c+z(l),0);if(o+n+s+d>e.tokenBudget){if(t.length>0)break}else n+=d;t.push(i),o+=s}if(e.candidates.length>0&&t.length===0)throw new TypeError("Relationship context tokenBudget cannot fit one node");return{nodes:t,usedTokens:o}}function Jt(e){let t=e.options.kinds?new Set(e.options.kinds.map(i=>e.registry.require(i).kind)):void 0,o=e.graph.edges().filter(i=>{if(!e.included.has(i.source)||!e.included.has(i.target))return!1;if(t===void 0||t.has(i.kind))return!0;let s=e.registry.resolve(i.kind)?.inverse;return s!==void 0&&t.has(s)}).sort((i,s)=>+(s.source===e.rootId||s.target===e.rootId)-+(i.source===e.rootId||i.target===e.rootId)),n=[],r=e.initialTokens;for(let i of o){if(n.length>=e.edgeLimit)break;let s=z(i);r+s>e.tokenBudget||(n.push(i),r+=s)}return{edges:n,usedTokens:r,candidateCount:o.length}}function et(e,t,o,n={}){if(!e.nodes().includes(t))throw new TypeError(`Relationship node not found: ${t}`);let r=pe(n.nodeLimit,20,"nodeLimit"),i=pe(n.edgeLimit,40,"edgeLimit"),s=pe(n.tokenBudget,F,"tokenBudget"),d=n.registry??R(),c=new Map(o.map(O=>[O.id,O])),l=c.get(t)??{id:t},{evidence:u=[],...a}=l,p=[...u],g=Wt(e,t,d,n),{rootEdges:f,...y}=Xt(e,t,d,n),m=qt(g.rows,f,t,d),h=Se("relationship-context",{rootId:t,direction:n.direction??"both",kinds:[...n.kinds??[]].sort(),maxDepth:n.maxDepth??3,ordering:"required-root-evidence-first-v1"}),b=Oe(m,n.cursor,h,({id:O})=>O,"--cursor"),k=m.slice(b),E=z(a)+z(p);if(E>s)throw new TypeError("Relationship context tokenBudget cannot fit root and evidence");let w=Vt({candidates:k,details:c,rootEdges:f,rootId:t,registry:d,nodeLimit:r,tokenBudget:s,initialTokens:E}),{nodes:L}=w,lt=new Set([t,...L.map(({id:O})=>O)]),ge=Jt({graph:e,rootId:t,included:lt,options:n,registry:d,edgeLimit:i,tokenBudget:s,initialTokens:w.usedTokens}),{edges:Z,usedTokens:ut}=ge,G=b+L.length,ee=G<m.length,he=L.at(-1),te=ge.candidateCount-Z.length,ye=g.depthTruncated||ee||te>0,pt={rootId:t,...a.status===void 0?{}:{rootStatus:a.status},...y,discoveredNodes:m.length,returnedNodes:L.length,returnedEdges:Z.length,omittedNodes:m.length-G,omittedEdges:te,evidenceCount:p.length,hasMore:ee};return{root:a,summary:pt,nodes:L,edges:Z,evidence:p,meta:{exact:!0,truncated:ye,completeness:ye?"truncated":"complete",nodeLimit:r,edgeLimit:i,tokenBudget:s,usedTokens:ut,visitedNodes:g.visitedNodes,inspectedEdges:g.inspectedEdges,omittedNodes:m.length-G,omittedEdges:te,...ee&&he?{nextCursor:Le(h,he.id,G-1)}:{}}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="196b7f2d-b09b-5432-b4ef-9cdf82e92731")}catch{}})();var Qt=["tree","graph","context"],Zt=["none","repeated"],en=["outgoing","incoming","both"],tn=32,nn=200,on=400,rn=16e3;function sn(e){let t=e?.trim().toLowerCase()??"tree";if(Qt.includes(t))return t;throw new v(`Invalid --format value "${e}". Use "tree", "graph", or "context".`,I.USAGE)}function N(e,t){if(e===void 0)return;let o=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(o)||o<1)throw new v(`Invalid --${t} value "${e}". Use a positive integer.`,I.USAGE);return o}function nt(e){if(e===void 0)return;let t=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(t)||t<0)throw new v(`Invalid --max-depth value "${e}". Use a non-negative integer.`,I.USAGE);return t}function dn(e){let t=e?.trim().toLowerCase()??"none";if(Zt.includes(t))return t;throw new v(`Invalid --collapse value "${e}". Use "none" or "repeated".`,I.USAGE)}function cn(e){let t=e?.trim().toLowerCase()??"both";if(en.includes(t))return t;throw new v(`Invalid --direction value "${e}". Use "outgoing", "incoming", or "both".`,I.USAGE)}function an(e,t=R()){if(e===void 0)return;let o=(Array.isArray(e)?e:[e]).flatMap(r=>r.split(",")).map(r=>r.trim()).filter(r=>r.length>0);if(o.length===0)return;let n=new Set;for(let r of o){let i=t.resolve(r);if(!i){let s=t.list().map(d=>d.kind).join(", ");throw new v(`Invalid --kind value "${r}". Registered kinds: ${s}.`,I.USAGE)}n.add(i.kind)}return[...n].sort()}function ln(e){if(!e||e.length===0)return[];let t=e.map(({id:n,kind:r})=>({id:n.trim(),kind:r.trim().toLowerCase()})).sort((n,r)=>{let i=n.kind.localeCompare(r.kind);return i!==0?i:n.id.localeCompare(r.id)}),o=new Map;for(let n of t){let r=`${n.kind.toLowerCase()}::${n.id.toLowerCase()}`;o.has(r)||o.set(r,{id:n.id,kind:n.kind})}return[...o.values()]}function un(e){return{id:e.id,title:e.title,type:e.type,status:e.status,dependencies:ln(e.dependencies)}}function pn(e){return M(new TextEncoder().encode(JSON.stringify({...e,dependencies:void 0})).byteLength)}function fn(e,t,o,n,r,i,s,d,c){for(let l of t.dependencies){let u=Math.max(1,Math.ceil(JSON.stringify({from:e.id,to:l.id,kind:l.kind}).length/3));if(d.nodes>=d.nodeLimit){e.truncated=!0,d.reasons.add("node_limit");break}if(d.edges>=d.edgeLimit){e.truncated=!0,d.reasons.add("edge_limit");break}if(d.estimatedTokens+u>=d.tokenBudget){e.truncated=!0,d.reasons.add("token_budget");break}d.edges+=1,d.estimatedTokens+=u,e.dependencies.push(ot(l.id,o,n,r,i,s,d,c+1,l.kind))}}function mn(e,t,o,n,r,i,s,d){return s.estimatedTokens>=s.tokenBudget&&t?.dependencies.length?(e.truncated=!0,s.reasons.add("token_budget"),!0):!t||e.cycle?!0:n!==void 0&&d>=n?(t.dependencies.length>0&&(e.truncated=!0,s.reasons.add("max_depth")),!0):r==="repeated"&&i.has(o)?(e.collapsed=!0,!0):!1}function ot(e,t,o,n,r,i,s,d=0,c){let l=e.trim().toLowerCase(),u=t.get(l),a={id:u?.id??e,title:u?.title,type:u?.type,status:u?.status,via:c,missing:!u,cycle:o.has(l),dependencies:[]};if(s.nodes+=1,s.estimatedTokens+=pn(a),mn(a,u,l,n,r,i,s,d))return a;r==="repeated"&&i.add(l);let p=new Set(o);return p.add(l),fn(a,u,t,p,n,r,i,s,d),a}function tt(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 gn(e){let t=new Map,o=new Map,n=[e];for(;n.length>0;){let d=n.pop();t.set(d.id,tt(t.get(d.id),{id:d.id,title:d.title,type:d.type,status:d.status,missing:d.missing}));for(let c of d.dependencies){t.set(c.id,tt(t.get(c.id),{id:c.id,title:c.title,type:c.type,status:c.status,missing:c.missing}));let l=c.via??"related",u=`${d.id}::${c.id}::${l}`;o.has(u)||o.set(u,{from:d.id,to:c.id,kind:l}),c.cycle||n.push(c)}}let r=[...t.values()].sort((d,c)=>d.id.localeCompare(c.id)),i=[...o.values()].sort((d,c)=>{let l=d.from.localeCompare(c.from);if(l!==0)return l;let u=d.to.localeCompare(c.to);return u!==0?u:d.kind.localeCompare(c.kind)}),s=r.filter(d=>d.missing).map(d=>d.id);return{root_id:e.id,nodes:r,edges:i,missing_ids:s}}function rt(e,t,o){let n=new Set,r=new Set,i=new Set,s=new Set,d=[{id:e,depth:0}],c=0;for(;c<d.length;){let l=d[c++],u=l.id.trim().toLowerCase();n.add(u);let a=t.get(u);if(!a){i.add(u);continue}if(!(o!==void 0&&l.depth>=o)&&!s.has(u)){s.add(u);for(let p of a.dependencies)r.add(`${u}::${p.id.trim().toLowerCase()}::${p.kind}`),d.push({id:p.id,depth:l.depth+1})}}return{node_count:n.size,edge_count:r.size,edge_basis:"deduplicated_directed",missing_count:i.size}}function hn(e,t=R()){let o=nt(e.maxDepth),n=N(e.nodeLimit,"node-limit"),r=N(e.edgeLimit,"edge-limit"),i=N(e.tokenBudget,"token-budget"),s=an(e.kind,t);return{direction:cn(e.direction),...s===void 0?{}:{kinds:s},...o===void 0?{}:{maxDepth:o},...n===void 0?{}:{nodeLimit:n},...r===void 0?{}:{edgeLimit:r},...i===void 0?{}:{tokenBudget:i},...e.cursor?.trim()?{cursor:e.cursor.trim()}:{}}}function yn(e,t,o,n){return et(e.graph,t,e.details.map(r=>r.id===t&&n.length>0?{...r,evidence:n}:r),o)}function fe(e,t,o,n){for(let r of o.slice(0,n)){let i=r?.trim();i&&e.push(`${t}:${i}`)}}async function _n(e,t,o,n){let r=await Ke(e,t,o.id_prefix,o.item_format,n);if(!r)return[];let{document:i}=await Ue(r,{schema:o.schema}),s=i.metadata,d=s.files??[],c=s.tests??[],l=s.docs??[],u=[["files",d.length],["tests",c.length],["docs",l.length],["comments",(s.comments??[]).length],["notes",(s.notes??[]).length],["learnings",(s.learnings??[]).length]];if(u.every(([,p])=>p===0))return[];let a=[`linked:${u.map(([p,g])=>`${p}=${g}`).join(",")}`];return fe(a,"file",d.map(p=>p.path),3),fe(a,"test",c.map(p=>p.command??p.path),2),fe(a,"doc",l.map(p=>p.path),2),a}function kn(e){let{canonicalId:t,context:o,missingCount:n,missingReferences:r,referenceLimit:i,summaryOnly:s}=e;return{id:t,format:"context",node_count:o.nodes.length+1,edge_count:o.edges.length,edge_basis:"deduplicated_directed",missing_count:n,missing_scope:"traversal",missing_reference_count:r.length,...s?{}:{missing_references:r.slice(0,i),context:o}}}function bn(e){let{row:t,missingReachableSet:o,packetIds:n,filteredKinds:r,registry:i}=e;if(t.no_active_blocker_sentinel||!o.has(t.target_id.trim().toLowerCase())||!n.has(t.holder_id))return!1;if(r===void 0)return!0;let s=i.resolve(t.kind);return s!==void 0&&(r.has(s.kind)||s.inverse!==void 0&&r.has(s.inverse))}function it(e,t){let o=Ce(),n=t.commandOptionsOverride??(o?.command==="deps"?o.options:t.commandOptions);return Ae("deps",{...n,...t.global,resolvedOutputFormat:t.format},e)}function me(e,t){let o=it(e,t),n=r=>Ne(r,t.format,t.global.lean===!0);return n(t.global.tokenAccounting===!0?Be(o,n):o)}function st(e,t,o){let n;for(;;){let r=M(new TextEncoder().encode(me(e,t)).byteLength);if(r===n)return r;o(r),n=r}}function dt(e){return e instanceof TypeError&&e.message.startsWith("Relationship context tokenBudget cannot fit ")}function ct(e){let{assembly:t,canonicalId:o,contextOptions:n,rootEvidence:r,summaryOnly:i,rendering:s,missingCount:d,missingReferences:c}=e,l=n.edgeLimit??40,u=Math.min(l,c.length),a=n.tokenBudget,p;for(;;){let g=yn(t,o,{...n,...a===void 0?{}:{tokenBudget:a}},r);p??=g.meta.tokenBudget,a??=p;let f=kn({canonicalId:o,context:g,missingCount:d,missingReferences:c,referenceLimit:u,summaryOnly:i});if(i){if(M(new TextEncoder().encode(me(S(f,!0,s.legacyAliasCounts),s)).byteLength)>p)throw new TypeError("Relationship context tokenBudget cannot fit the rendered summary");return f}if(g.meta.tokenBudget=p,g.meta.usedTokens=st(S(f,!1,s.legacyAliasCounts),s,h=>{g.meta.usedTokens=h}),g.meta.usedTokens<=p)return f;if(u>0){u-=1;continue}let y=a,m=y*p/g.meta.usedTokens;a=Math.min(y-1,Math.max(1,Math.floor(m*.9)))}}function at(e,t){let o=e.contextOptions,n={...e.rendering.global,outputFormat:e.rendering.format},r=["--pm-path",e.pmRoot,"item","deps",e.canonicalId,"--format","context","--output-format",e.rendering.format,"--token-budget"],i=r.length;r.push(String(t));let s=new Set(["--pm-path","--format","--output-format","--token-budget"]),d={format:"context",tokenBudget:t,kind:o.kinds},c=[["--max-depth","maxDepth",o.maxDepth],["--node-limit","nodeLimit",o.nodeLimit],["--edge-limit","edgeLimit",o.edgeLimit],["--direction","direction",o.direction],["--cursor","cursor",o.cursor],["--output-include","outputInclude",n.outputInclude],["--output-limit","outputLimit",n.outputLimit],["--output-budget","outputBudget",n.outputBudget],["--output-session","outputSession",n.outputSession],["--output-cursor","outputCursor",n.outputCursor]];for(let[a,p,g]of c)g!==void 0&&(r.push(a,String(g)),s.add(a),d[p]=g);for(let a of o.kinds??[])r.push("--kind",a),s.add("--kind");let l=[["--summary","summary",e.summaryOnly],["--full","full",e.rendering.commandOptions.full],["--json","json",n.json],["--lean","lean",n.lean],["--output-row-contract","outputRowContract",n.outputRowContract],["--token-accounting","tokenAccounting",n.tokenAccounting],["--no-extensions","noExtensions",n.noExtensions],["--no-pager","noPager",n.noPager]];for(let[a,p,g]of l)g===!0&&(r.push(a),s.add(a),d[p]=!0);let u=Re.find(a=>a.command==="deps");return Reflect.set(d,xe,{canonical_include_modes:[],cli_invocation_observed:!0,explicit_legacy_aliases:Object.values(u.dimensions).flatMap(a=>a.legacy_aliases.flatMap(p=>s.has(p.flag)?[p.flag]:[]))}),Te("deps",d),ne(d.summary===!0,d.full===!0,"--summary"),n.outputInclude=d.outputInclude,{args:r,budgetIndex:i,summaryOnly:d.summary===!0,rendering:{...e.rendering,global:n,commandOptionsOverride:d}}}function vn(e,t,o){let n={...t.rendering,commandOptionsOverride:{...t.rendering.commandOptionsOverride,tokenBudget:o}},r;try{r=ct({...e,contextOptions:{...e.contextOptions,tokenBudget:o},summaryOnly:t.summaryOnly,rootEvidence:t.summaryOnly?[]:e.rootEvidence,rendering:n})}catch(s){if(!dt(s))throw s;return"native_floor"}let i=it(S(r,t.summaryOnly,n.legacyAliasCounts),n);return De(i)?"output_constraints":"fits"}async function wn(e,t){let o=e.contextOptions.tokenBudget??F,n=at(e,o),r=(n.summaryOnly?1:1+Math.min(e.contextOptions.edgeLimit??40,e.missingReferences.length))*(e.assembly.details.reduce((a,p)=>a+p.id.length+p.title.length+p.status.length+(p.type?.length??0),e.assembly.graph.edges().length+e.missingReferences.length)+(n.summaryOnly?[]:e.rootEvidence).reduce((a,p)=>a+p.length,0)),{findContextBudgetRecovery:i}=await import("./context-budget-recovery-5MKOCGY5.js"),s=i({requested:o,initialBudget:F,workUnits:r,probe:a=>vn(e,n,a)}),d=["--pm-path",e.pmRoot,"item","deps",e.canonicalId,"--format","tree","--summary"],c=X(d),l=s.feasible_tokens===null?d:[...n.args];s.feasible_tokens!==null&&(l[n.budgetIndex]=String(s.feasible_tokens));let u=X(l);return ze("Relationship context tokenBudget cannot fit the required rendered packet",{exitCode:I.USAGE,cause:t,context:{code:"invalid_argument_value",field:"tokenBudget",value:String(o),required:s.feasible_tokens===null?"Inspect the compact summary and review the output constraints.":"Retry the preserved context query with --token-budget "+s.feasible_tokens+".",why:"Budget advice is verified against the current query. A minimum is reported only after every smaller positive budget is checked.",examples:[u,c],nextSteps:[u],recovery:{recovery_mode:"compact",suggested_flags:["--token-budget"],token_budget:s,suggested_retry_args:l,suggested_retry:u,next_best_command:c,fallback_candidates:[{source:"relationship_summary",command:c,reason:"Inspect bounded counts separately from context rows."}]}}})}async function In(e){let{pmRoot:t,assembly:o,canonicalId:n,options:r,rootEvidence:i,summaryOnly:s,rendering:d}=e,c=hn(r,o.graph.registry()),l=o.graph.closure(n,{direction:c.direction,...c.kinds===void 0?{}:{kinds:c.kinds},maxDepth:c.maxDepth??3}),u=l.value.filter(h=>o.missingIdSet.has(h.toLowerCase())),a=new Set(u.map(h=>h.toLowerCase())),p=o.graph.registry(),g=c.kinds?new Set(c.kinds.map(h=>p.require(h).kind)):void 0,f=new Set([n,...l.value]),y=[...o.dangling.active,...o.dangling.legacy_terminal].filter(h=>bn({row:h,missingReachableSet:a,packetIds:f,filteredKinds:g,registry:p})),m={pmRoot:t,assembly:o,canonicalId:n,contextOptions:c,rootEvidence:i,summaryOnly:s,rendering:d,missingCount:u.length,missingReferences:y};try{return ct(m)}catch(h){if(h instanceof v&&h.code==="invalid_query_cursor"){let b=at({...m,contextOptions:{...c,cursor:void 0},rendering:{...d,global:{...d.global,outputCursor:void 0}}},c.tokenBudget??F),k=X(b.args);throw new v(h.message,h.exitCode,{...h.context,nextSteps:[...h.context.nextSteps,k],recovery:{suggested_retry:k,suggested_retry_args:b.args}})}throw dt(h)?await wn(m,h):h}}function En(e){let t=[e],o;for(;t.length>0;){let n=t.pop();n.dependencies.length>0&&(o=n,t.push(...n.dependencies))}return o?(o.dependencies.pop(),o.truncated=!0,!0):!1}function Cn(e,t,o,n,r,i,s){let d=r??tn,c=N(o.nodeLimit,"node-limit")??nn,l=N(o.edgeLimit,"edge-limit")??on,u=N(o.tokenBudget,"token-budget")??rn,a={nodeLimit:c,edgeLimit:l,tokenBudget:u,nodes:0,edges:0,estimatedTokens:0,reasons:new Set},p=ot(e,n,new Set,d,t==="graph"?"repeated":i,new Set,a),g=rt(e,n,void 0),f;for(;;){let y=gn(p),m=a.reasons.size===0?void 0:{reasons:[...a.reasons].sort(),limits:{max_depth:d,node_limit:c,edge_limit:l,token_budget:u},estimated_tokens:0,total_node_count:g.node_count,total_edge_count:g.edge_count,omitted_node_count:Math.max(0,g.node_count-y.nodes.length),omitted_edge_count:Math.max(0,g.edge_count-y.edges.length)},h={id:e,format:t,node_count:y.nodes.length,edge_count:y.edges.length,edge_basis:"deduplicated_directed",missing_count:y.missing_ids.length,...m?{truncation:m}:{}};if(f=t==="tree"?{...h,tree:p}:{...h,graph:y},(f.truncation===void 0?M(new TextEncoder().encode(me(S(f,!1,s.legacyAliasCounts),s)).byteLength):st(S(f,!1,s.legacyAliasCounts),s,b=>{f.truncation.estimated_tokens=b}))<=u)return f;if(!En(p))return a.reasons.add("token_budget"),f;a.reasons.add("token_budget")}}function S(e,t,o={}){let n={name:e.format==="tree"?"dependency_tree":e.format==="graph"?"dependency_graph":"relationship_context",restore_with:"--full"},r=e.context?.meta.truncated?[{name:"relationship_context_bounds",restore_with:"--token-budget <n> --node-limit <n> --edge-limit <n> --max-depth <n>"}]:[];return{...e,legacy_alias_counts:o,projection:{mode:t?"summary":"full",declared_field_groups:[n,...r],included_field_groups:t?[]:[n.name]}}}async function Bo(e,t,o){let n=we(process.cwd(),o.path);await Pe(n);let r=sn(t.format),i=nt(t.maxDepth),s=dn(t.collapse);ne(t.summary===!0,t.full===!0,"--summary");let d=t.summary===!0,c=await $e(n),l=be(c,W()),u=await je(n,c.item_format,l.type_to_folder,void 0,c.schema),a=Ee(c.schema),p=new Map(u.map(m=>[m.id.trim().toLowerCase(),un(m)])),g=ae(u,m=>D(m,a));for(let m of[...g.active,...g.legacy_terminal]){let h=p.get(m.holder_id.trim().toLowerCase()),b=m.kind.trim().toLowerCase();h&&!h.dependencies.some(k=>k.id.trim().toLowerCase()===m.target_id.trim().toLowerCase()&&k.kind===b)&&h.dependencies.push({id:m.target_id,kind:b})}if(!p.has(e.trim().toLowerCase()))throw new v(`Item ${e} not found`,I.NOT_FOUND);let f=o.outputFormat??(o.json===!0||o.json===void 0&&o.defaultOutputFormat==="json"?"json":"toon");if(r==="context"){let m=p.get(e.trim().toLowerCase()).id,h=d?[]:await _n(n,m,c,l.type_to_folder),b=w=>D(w,a),k=x(),E=Ze().lookup(n,Je(u,b,k),()=>le(u,b,k));return S(await In({pmRoot:n,assembly:E.assembly,canonicalId:m,options:t,rootEvidence:h,summaryOnly:d,rendering:{format:f,global:o,commandOptions:t,legacyAliasCounts:E.assembly.legacyAliasCounts}}),d,E.assembly.legacyAliasCounts)}let y=Object.fromEntries(Object.entries(le(u,m=>D(m,a)).legacyAliasCounts));return d?S({id:e,format:r,...rt(e,p,i)},!0,y):S(Cn(e,r,t,p,i,s,{format:f,global:o,commandOptions:t,legacyAliasCounts:y}),!1,y)}export{re as a,ft as b,P as c,Y as d,Ge as e,mt as f,gt as g,ht as h,kt as i,Wn as j,Xn as k,St as l,x as m,Kn as n,J as o,Un as p,Tt as q,jn as r,U as s,Ot as t,Bt as u,ae as v,Nt as w,eo as x,le as y,Je as z,ue as A,Ze as B,io as C,F as D,et as E,N as F,nt as G,cn as H,an as I,Bo as J};
|
|
2
|
+
//# sourceMappingURL=chunk-4UUE3YXZ.js.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import{r as q,s as V}from"./chunk-
|
|
1
|
+
import{r as q,s as V}from"./chunk-745IDMTD.js";import{m,s as M,u as k}from"./chunk-4UUE3YXZ.js";import{Fa as O,Fd as N,Id as D,Ld as j,R as x,W as g,be as z}from"./chunk-TGS5RXBY.js";import{A as C,E as _,I as L,z as S}from"./chunk-QVFE5LIX.js";import{constants as p}from"node:fs";import{lstat as A,mkdir as I,open as P}from"node:fs/promises";import h from"node:path";(function(){try{var i=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new i.Error().stack;e&&(i._sentryDebugIds=i._sentryDebugIds||{},i._sentryDebugIds[e]="5434ff6f-95af-5983-88cb-fd360d95cb9e")}catch{}})();function E(i,e){if(typeof i!="string"||i.trim().length===0)throw new TypeError(`Relationship event ${e} must be non-empty`);return i.trim()}function $(i,e){let t=e.require(i.kind),n=t.direction==="undirected"?[i.source,i.target].sort().join("\0"):`${i.source}\0${i.target}`;return`${t.kind}\0${n}`}function Q(i){return Object.freeze({...i,...i.payload===void 0?{}:{payload:Object.freeze(structuredClone(i.payload))}})}function U(i,e,t,n){let r=t.require(i.kind),o=n.outgoingOne.get(`${r.kind}\0${i.source}`);if(o!==void 0&&o!==e)throw new TypeError(`Relationship outgoing cardinality exceeded for ${r.kind}`);let s=n.incomingOne.get(`${r.kind}\0${i.target}`);if(s!==void 0&&s!==e)throw new TypeError(`Relationship incoming cardinality exceeded for ${r.kind}`);let c=$(i,t),a=n.identities.get(c);if(a!==void 0&&a!==e)throw new TypeError(`Relationship edge already active: ${c}`)}function Y(i){let e=new Map;for(let t of i)t.action==="remove"?e.delete(t.relationshipId):e.set(t.relationshipId,t.edge);return e}function X(i,e,t){if(i.expectedVersion!==void 0&&i.expectedVersion!==e)throw new TypeError(`Relationship event version conflict: expected ${i.expectedVersion}, current ${e}`);let n=E(i.eventId,"eventId");if(t.has(n))throw new TypeError(`Relationship event already exists: ${n}`);if(i.action!=="add"&&i.action!=="remove"&&i.action!=="supersede")throw new TypeError(`Unknown relationship event action: ${i.action}`);if(!Number.isFinite(Date.parse(i.timestamp)))throw new TypeError("Relationship event timestamp must be valid");return{eventId:n,relationshipId:E(i.relationshipId,"relationshipId"),author:E(i.author,"author"),timestamp:new Date(i.timestamp).toISOString()}}function Z(i,e,t,n,r,o){let s=t.has(e);if(i.action==="add"&&s)throw new TypeError(`Relationship is already active: ${e}`);if(i.action!=="add"&&!s)throw new TypeError(`Relationship is not active: ${e}`);if(i.action==="remove")return;if(!i.edge)throw new TypeError(`Relationship ${i.action} event requires an edge`);let c=typeof i.edge.source=="string"?i.edge.source.trim():"",a=typeof i.edge.target=="string"?i.edge.target.trim():"";if(!n.has(c)||!n.has(a))throw new TypeError(`Relationship endpoint not found: ${c} -> ${a}`);let d=new g([c,a],[i.edge],r).edges()[0];return U(d,e,r,o),Q(d)}var T=class{#t;#i;#n=[];#o=new Set;#e=new Map;#r={identities:new Map,outgoingOne:new Map,incomingOne:new Map};constructor(e,t={}){this.#t=new Set([...e].filter(n=>typeof n=="string").map(n=>n.trim()).filter(Boolean)),this.#i=t.registry??x()}get version(){return this.#n.length}events(){return Object.freeze([...this.#n])}*stream(e={}){let t=e.fromVersion??1,n=e.toVersion??this.version,r=e.batchSize??100;if(!Number.isInteger(t)||t<1)throw new TypeError("Relationship event stream fromVersion must be positive");if(!Number.isInteger(n)||n<0||n>this.version)throw new TypeError(`Relationship event stream toVersion out of range: ${n}`);if(!Number.isInteger(r)||r<1)throw new TypeError("Relationship event stream batchSize must be positive");if(t>n+1)throw new TypeError("Relationship event stream fromVersion exceeds the selected prefix");for(let o=t-1;o<n;o+=r)yield Object.freeze(this.#n.slice(o,Math.min(o+r,n)))}project(e,t,n={}){if(typeof t!="function")throw new TypeError("Relationship event projection requires a reducer");let r=e,o=0,s;for(let c of this.stream({...n,batchSize:256}))for(let a of c)r=t(r,a),o+=1,s=a;return Object.freeze({state:r,version:s?.sequence??Math.max(0,(n.fromVersion??1)-1),processed:o,...s===void 0?{}:{asOf:s.timestamp}})}#s(e,t){let n=this.#i.require(t.kind);this.#r.identities.set($(t,this.#i),e),n.outgoing==="one"&&this.#r.outgoingOne.set(`${n.kind}\0${t.source}`,e),n.incoming==="one"&&this.#r.incomingOne.set(`${n.kind}\0${t.target}`,e)}#a(e){let t=this.#i.require(e.kind);this.#r.identities.delete($(e,this.#i)),t.outgoing==="one"&&this.#r.outgoingOne.delete(`${t.kind}\0${e.source}`),t.incoming==="one"&&this.#r.incomingOne.delete(`${t.kind}\0${e.target}`)}append(e){let t=X(e,this.version,this.#o),n=this.#e.get(t.relationshipId),r=Z(e,t.relationshipId,this.#e,this.#t,this.#i,this.#r),o=Object.freeze({eventId:t.eventId,relationshipId:t.relationshipId,action:e.action,...r===void 0?{}:{edge:r},author:t.author,timestamp:t.timestamp,...e.reason?.trim()?{reason:e.reason.trim()}:{},sequence:this.version+1});return this.#n.push(o),this.#o.add(t.eventId),n&&this.#a(n),e.action==="remove"?this.#e.delete(t.relationshipId):(this.#e.set(t.relationshipId,r),this.#s(t.relationshipId,r)),o}snapshot(e={}){if(e.atVersion!==void 0&&e.atTimestamp!==void 0)throw new TypeError("Relationship snapshot accepts one target");let t;if(e.atTimestamp!==void 0){let o=Date.parse(e.atTimestamp);if(!Number.isFinite(o))throw new TypeError("Relationship snapshot timestamp must be valid");t=this.#n.filter(s=>Date.parse(s.timestamp)<=o)}else{let o=e.atVersion??this.version;if(!Number.isInteger(o)||o<0||o>this.version)throw new TypeError(`Relationship snapshot version out of range: ${o}`);t=this.#n.slice(0,o)}let n=Y(t),r=new g(this.#t,n.values(),this.#i);return Object.freeze({version:t.at(-1)?.sequence??0,...t.at(-1)?{asOf:t.at(-1).timestamp}:{},edges:r.edges(),graph:r})}page(e){if(!Number.isInteger(e.limit)||e.limit<1)throw new TypeError("Relationship event page limit must be positive");let t=N("relationship-events",{order:"append-sequence"}),n=e.cursor===void 0?this.version:Number(D(e.cursor,t).snapshot);if(!Number.isSafeInteger(n)||n<0||n>this.version)throw new TypeError("Relationship event cursor snapshot version is invalid");let r=j(this.#n.slice(0,n),{cursor:e.cursor,fingerprint:t,limit:e.limit,readId:o=>o.eventId,snapshot:String(n)});return{version:n,events:r.rows,hasMore:r.has_more,...r.next_cursor?{nextCursor:r.next_cursor}:{}}}},ee="relationship-event-store",W=p.O_NOFOLLOW;function w(i){return z(i,ee,30,`relationship-store:${process.pid}`,!1,!1,3e3)}async function f(i,e="relationships/events.jsonl"){let t=h.resolve(i),n=h.resolve(t,e),r=h.relative(t,n);if(r.length===0)throw new TypeError("Relationship event path must name a file within the tracker root");if(r===".."||r.startsWith(`..${h.sep}`)||h.isAbsolute(r))throw new TypeError("Relationship event path must stay within the tracker root");if(await I(t,{recursive:!0}),(await A(t)).isSymbolicLink())throw new TypeError("Relationship event tracker root must not be a symbolic link");let o=t;for(let s of r.split(h.sep)){o=h.join(o,s);try{if((await A(o)).isSymbolicLink())throw new TypeError("Relationship event path must not contain symbolic links")}catch(c){if(_(c))break;throw c}}return n}async function y(i,e,t){let n=new T(e,{registry:t}),r,o;try{o=await P(i,p.O_RDONLY|W),r=await o.readFile("utf8")}catch(c){if(_(c))return{log:n,raw:""};throw c}finally{await o?.close()}let s=r.split(`
|
|
2
2
|
`);for(let c=0;c<s.length;c+=1){let a=s[c].trim();if(!a)continue;let d;try{d=JSON.parse(a)}catch{throw new TypeError(`Invalid relationship event JSONL at line ${c+1}`)}if(d.sequence!==n.version+1)throw new TypeError(`Invalid relationship event sequence at line ${c+1}`);n.append({eventId:d.eventId,relationshipId:d.relationshipId,action:d.action,...d.edge===void 0?{}:{edge:d.edge},author:d.author,timestamp:d.timestamp,...d.reason===void 0?{}:{reason:d.reason},expectedVersion:n.version})}return{log:n,raw:r}}function te(i,e,t,n){let r=Date.parse(e.timestamp),o;return e.action!=="remove"&&e.edge!==void 0&&(o=new g(t,[e.edge],n).edges()[0]),i.eventId===e.eventId.trim()&&i.relationshipId===e.relationshipId.trim()&&i.action===e.action&&i.author===e.author.trim()&&Number.isFinite(r)&&i.timestamp===new Date(r).toISOString()&&i.reason===(e.reason?.trim()||void 0)&&O(i.edge)===O(o)}var F=class i{#t;#i;#n;#o;#e;constructor(e,t,n,r){this.#t=e.pmRoot,this.#i=t,this.#n=e.registry,this.#o=n,this.#e=r}static async open(e){let t=Object.freeze([...e.nodes]),n=await f(e.pmRoot,e.relativePath),r=await w(e.pmRoot);try{await f(e.pmRoot,n);let{log:o}=await y(n,t,e.registry);return new i(e,t,n,o)}finally{await r()}}get path(){return this.#o}async currentVersion(){return this.#e=await this.#r(),this.#e.version}async append(e){let t=await w(this.#t);try{let n=await f(this.#t,this.#o),{log:r}=await y(n,this.#i,this.#n),o=r.append(e);await I(h.dirname(n),{recursive:!0}),await f(this.#t,n);let s=await P(n,p.O_APPEND|p.O_CREAT|p.O_WRONLY|W);try{await s.appendFile(`${JSON.stringify(o)}
|
|
3
3
|
`,"utf8")}finally{await s.close()}return this.#e=r,o}finally{await t()}}async appendBatch(e,t={}){let n=await w(this.#t);try{let r=await f(this.#t,this.#o),{log:o,raw:s}=await y(r,this.#i,this.#n),c=o.version,a=new Map(o.events().map(l=>[l.eventId,l])),d=[],R=[];for(let l of e){let u=l.eventId.trim(),v=a.get(u);if(v!==void 0){if(t.existingEventPolicy==="skip_identical"&&te(v,l,this.#i,this.#n)){R.push(v.eventId);continue}if(t.existingEventPolicy==="skip_identical")throw new TypeError(`Relationship event id collision with different content: ${u}`)}let b=o.append(l);a.set(b.eventId,b),d.push(b)}if(d.length>0){let l=s.length===0||s.endsWith(`
|
|
4
4
|
`)?s:`${s}
|
|
5
5
|
`;await I(h.dirname(r),{recursive:!0}),await f(this.#t,r),await L(r,`${l}${d.map(u=>JSON.stringify(u)).join(`
|
|
6
6
|
`)}
|
|
7
7
|
`)}return this.#e=o,Object.freeze({version_before:c,version_after:o.version,appended:Object.freeze(d),skipped_event_ids:Object.freeze(R)})}finally{await n()}}async snapshot(e={}){return this.#e=await this.#r(),this.#e.snapshot(e)}async page(e){return this.#e=await this.#r(),this.#e.page(e)}async*stream(e={}){this.#e=await this.#r(),yield*this.#e.stream(e)}async project(e,t,n={}){return this.#e=await this.#r(),this.#e.project(e,t,n)}async#r(){let e=await w(this.#t);try{let t=await f(this.#t,this.#o);return(await y(t,this.#i,this.#n)).log}finally{await e()}}};(function(){try{var i=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new i.Error().stack;e&&(i._sentryDebugIds=i._sentryDebugIds||{},i._sentryDebugIds[e]="73852fdf-f072-51ab-9449-d7922712eeb4")}catch{}})();function K(i){return[...i].sort().join("\0")}function ie(i,e,t){let n=i.successors.get(e);n?n.push(t):i.successors.set(e,[t]);let r=i.predecessors.get(t);r?r.push(e):i.predecessors.set(t,[e])}function G(i,e,t,n,r){let o=e.resolve(r);if(o?.ordering!==!0)return;let s=M(n),c=s===void 0?void 0:i.canonicalIds.get(s.toLowerCase());if(c===void 0)return;let a=(o.precedence??"source_before_target")==="source_before_target";ie(i,a?t:c,a?c:t)}function ne(i,e){let t={successors:new Map,predecessors:new Map,canonicalIds:new Map},n=i.filter(r=>typeof r?.id=="string"&&r.id.trim().length>0);for(let r of n){let o=r.id.trim();t.canonicalIds.set(o.toLowerCase(),o)}for(let r of n){let o=r.id.trim();G(t,e,o,r.blocked_by,"blocked_by");for(let s of r.dependencies??[])typeof s!="object"||s===null||G(t,e,o,s.id,typeof s.kind=="string"?s.kind:"related")}for(let r of[t.successors,t.predecessors])for(let o of r.values())o.sort();return t}function re(i,e){let t=new Set([e]),n=[e];for(;n.length>0;){let r=n.pop();for(let o of[i.successors,i.predecessors])for(let s of o.get(r)??[])t.has(s)||(t.add(s),n.push(s))}return t}function oe(i,e){let t=new Map;for(let n of e){let r=(i.successors.get(n)??[]).filter(o=>e.has(o));r.length>0&&t.set(n,r)}return t}function H(i,e,t){let n=ne(i,e),r=n.canonicalIds.get(t.trim().toLowerCase());if(r===void 0)return{cycles:[],successors:new Map,canonical:t};let o=oe(n,re(n,r));return{cycles:q(o).filter(s=>s.includes(r)),successors:o,canonical:r}}function se(i,e,t){let n=new Set(e),r=n.has(t)?t:e[0];if(i.get(r)?.includes(r))return[r,r];for(let o of i.get(r)??[]){if(!n.has(o))continue;let s=ae(i,n,r,o);if(s)return s}return[...e,e[0]]}function ae(i,e,t,n){let r=[[n]],o=new Set([t,n]);for(;r.length>0;){let s=r.shift(),c=s.at(-1);for(let a of i.get(c)??[]){if(a===t)return[t,...s,t];!e.has(a)||o.has(a)||(o.add(a),r.push([...s,a]))}}}function ve(i,e,t){let n=m(),r=H(i,n,t),o=H(e,n,t),s=new Set(r.cycles.map(K)),c=new Set(k(i,void 0,n).map(a=>`${a.holder_id.toLowerCase()}\0${a.target_id.toLowerCase()}\0${a.dependency_kind}`));return[...k(e,void 0,n).filter(a=>a.holder_id.toLowerCase()===t.trim().toLowerCase()&&!c.has(`${a.holder_id.toLowerCase()}\0${a.target_id.toLowerCase()}\0${a.dependency_kind}`)).map(a=>`ordering_storage_contradiction_created:${V(a)}:remove_contradicting_dependency_row:run_pm_graph_audit`),...o.cycles.filter(a=>!s.has(K(a))).map(a=>`ordering_cycle_created:${se(o.successors,a,o.canonical).join(" -> ")}:items_will_not_be_ready:run_pm_graph_audit`)]}(function(){try{var i=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new i.Error().stack;e&&(i._sentryDebugIds=i._sentryDebugIds||{},i._sentryDebugIds[e]="5f2ca18e-450d-5b6e-9e07-7bbf080764f9")}catch{}})();function Ee(i,e){let t=e.resolve(i);return t?.hierarchy===!0||t?.outgoing==="one"||t?.incoming==="one"}function J(i,e,t,n,r){let o=JSON.stringify([e,t,n]),s=i.get(o);s===void 0&&(s={kind:e,direction:t,node_id:n,endpoints:new Set},i.set(o,s)),s.endpoints.add(r)}function B(i,e){let t=new Map;for(let n of i)for(let r of n.dependencies??[]){let o=e.resolve(r.kind);o===void 0||o.hierarchy||(o.outgoing==="one"&&J(t,o.kind,"outgoing",n.id,r.id),o.incoming==="one"&&J(t,o.kind,"incoming",r.id,n.id))}return t}function Ie(i,e,t=m()){let n=B(i,t),r=B(e,t);for(let o of[...r.keys()].sort()){let s=r.get(o);if(s.endpoints.size<=1)continue;let c=n.get(o);if(![...s.endpoints].every(a=>c?.endpoints.has(a)))throw new C(`Relationship ${s.kind} permits only one ${s.direction} endpoint for ${s.node_id}.`,S.USAGE,{code:"dependency_cardinality_created",field:"dependencies",value:s.kind,relationship_cardinality:{kind:s.kind,direction:s.direction,node_id:s.node_id,endpoint_ids:[...s.endpoints].sort()},required:"The final dependency set must satisfy the active relationship kind's one-edge cardinality.",nextSteps:["Drop extra --dep seeds, or remove conflicting rows with update --dep-remove before adding another edge.","Choose another kind only when its declared semantics match the intended relationship."]})}}export{T as a,F as b,ve as c,Ee as d,Ie as e};
|
|
8
|
-
//# sourceMappingURL=chunk-
|
|
8
|
+
//# sourceMappingURL=chunk-5UDDRPYR.js.map
|