@unbrained/pm-cli 2026.8.10 → 2026.8.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +2 -2
- package/CHANGELOG.md +153 -100
- package/dist/cli/commander-usage.js +113 -15
- package/dist/cli/error-guidance.d.ts +12 -0
- package/dist/cli/error-guidance.js +147 -29
- package/dist/cli/main.js +38 -19
- package/dist/cli/register-annotations.js +56 -3
- package/dist/cli/register-assurance.d.ts +8 -0
- package/dist/cli/register-assurance.js +52 -0
- package/dist/cli/register-files-lookup.js +14 -3
- package/dist/cli/register-list-query.js +10 -7
- package/dist/cli/register-mutation.js +30 -9
- package/dist/cli/register-operations.js +30 -15
- package/dist/cli-bundle/bundle-manifest.json +155 -155
- package/dist/cli-bundle/chunks/{chunk-TRWXF476.js → chunk-3PS7X6GS.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-7KL6KMWF.js +13 -0
- package/dist/cli-bundle/chunks/{chunk-EBO7OUUE.js → chunk-BM5YJ2UW.js} +69 -55
- package/dist/cli-bundle/chunks/chunk-D55A5AEN.js +33 -0
- package/dist/cli-bundle/chunks/chunk-KIKDWECH.js +196 -0
- package/dist/cli-bundle/chunks/{chunk-ETML5C6H.js → chunk-KOQMGCTA.js} +47 -47
- package/dist/cli-bundle/chunks/chunk-R76342NV.js +2 -0
- package/dist/cli-bundle/chunks/chunk-RBTK5EZV.js +5 -0
- package/dist/cli-bundle/chunks/chunk-VLUQOIDT.js +2 -0
- package/dist/cli-bundle/chunks/chunk-WLAHPSOX.js +3 -0
- package/dist/cli-bundle/chunks/register-list-query-XPCJRUUD.js +10 -0
- package/dist/cli-bundle/chunks/register-mutation-4RJCBKRS.js +20 -0
- package/dist/cli-bundle/chunks/register-operations-2OGISOVR.js +2 -0
- package/dist/cli-bundle/chunks/{register-setup-S3KT2LTH.js → register-setup-LLHAKP2V.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-2DALMVF7.js +5 -0
- package/dist/cli-bundle/focused-chunks/chunk-5OQIMELN.js +155 -0
- package/dist/cli-bundle/focused-chunks/chunk-5TAGTDRE.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-ECADZMVC.js +18 -0
- package/dist/cli-bundle/focused-chunks/chunk-EJGXRA6B.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-FFGSZCPK.js +16 -0
- package/dist/cli-bundle/focused-chunks/{chunk-IW43E4XL.js → chunk-GQW4BPUT.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-ISKOBJCM.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-75774JWP.js → chunk-JAFRIWVF.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-2COZ67XT.js → chunk-KHM2CS2C.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-M6RPIXKC.js → chunk-KPSXVBDV.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-34SX654S.js → chunk-KTLOKKCQ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-LGYK3NUF.js +8 -0
- package/dist/cli-bundle/focused-chunks/{chunk-2EXI2DKR.js → chunk-NBLUKITQ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-NYLOUPOB.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-Q4T463SD.js +31 -0
- package/dist/cli-bundle/focused-chunks/chunk-QVZVY53N.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-DZGAHZZV.js → chunk-RWPAWUOT.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-UTEWXDEQ.js +17 -0
- package/dist/cli-bundle/focused-chunks/{chunk-7UN6BHHO.js → chunk-YIAXMC3T.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-ZMGWAYH7.js +2 -0
- package/dist/cli-bundle/main.js +13 -13
- package/dist/cli-bundle/sdk-authoring.js +1 -1
- package/dist/cli-bundle/sdk-contracts.js +1 -1
- package/dist/cli-bundle/sdk-core.js +41 -39
- package/dist/cli-bundle/sdk-governance.js +1 -1
- package/dist/cli-bundle/sdk-graph.js +1 -1
- package/dist/cli-bundle/sdk-merge.js +1 -1
- package/dist/cli-bundle/sdk-query.js +1 -1
- package/dist/cli-bundle/sdk-runtime.js +1 -1
- package/dist/cli-bundle/sdk-testing.js +1 -1
- package/dist/cli-bundle/sdk.js +2 -2
- package/dist/core/extensions/reserved-host-flags.js +3 -2
- package/dist/core/history/drift-scan.js +13 -8
- package/dist/core/history/history.d.ts +8 -0
- package/dist/core/history/history.js +57 -7
- package/dist/core/history/replay.d.ts +9 -1
- package/dist/core/history/replay.js +48 -13
- package/dist/core/output/output.d.ts +2 -0
- package/dist/core/output/output.js +46 -14
- package/dist/core/session/session-state.d.ts +47 -0
- package/dist/core/session/session-state.js +207 -6
- package/dist/core/shared/author.d.ts +7 -1
- package/dist/core/shared/author.js +66 -46
- package/dist/core/shared/command-types.d.ts +2 -0
- package/dist/core/shared/command-types.js +2 -2
- package/dist/core/shared/errors.d.ts +13 -0
- package/dist/core/shared/errors.js +2 -2
- package/dist/core/store/item-metadata-cache.d.ts +1 -1
- package/dist/core/store/item-metadata-cache.js +14 -7
- package/dist/sdk/agent/refusal-reachability.d.ts +40 -0
- package/dist/sdk/agent/refusal-reachability.js +72 -0
- package/dist/sdk/agent/subcommand-recovery.d.ts +40 -0
- package/dist/sdk/agent/subcommand-recovery.js +84 -0
- package/dist/sdk/cli-bootstrap.d.ts +10 -0
- package/dist/sdk/cli-bootstrap.js +11 -7
- package/dist/sdk/cli-contracts/completeness.js +14 -3
- package/dist/sdk/cli-contracts/enum-contracts.d.ts +1 -1
- package/dist/sdk/cli-contracts/enum-contracts.js +3 -2
- package/dist/sdk/cli-contracts/flag-contracts.d.ts +2 -0
- package/dist/sdk/cli-contracts/flag-contracts.js +20 -2
- package/dist/sdk/cli-contracts/registration-helpers.d.ts +20 -3
- package/dist/sdk/cli-contracts/registration-helpers.js +18 -12
- package/dist/sdk/cli-contracts/runtime-contracts.js +4 -3
- package/dist/sdk/cli-contracts/schemas/assurance-definition.d.ts +515 -0
- package/dist/sdk/cli-contracts/schemas/assurance-definition.js +252 -0
- package/dist/sdk/cli-contracts/tool-option-contracts.js +3 -2
- package/dist/sdk/cli-contracts/tool-parameter-tables.js +99 -2
- package/dist/sdk/cli-contracts/tool-schema.d.ts +3 -3
- package/dist/sdk/cli-contracts/tool-schema.js +38 -5
- package/dist/sdk/cli-contracts.d.ts +1 -1
- package/dist/sdk/cli-contracts.js +3 -3
- package/dist/sdk/cli-program.js +3 -2
- package/dist/sdk/completion.js +23 -8
- package/dist/sdk/config.js +9 -3
- package/dist/sdk/context/semantic-session-attribution.d.ts +32 -0
- package/dist/sdk/context/semantic-session-attribution.js +83 -0
- package/dist/sdk/context-intent-contracts.js +45 -4
- package/dist/sdk/core-governance.d.ts +3 -1
- package/dist/sdk/core-governance.js +5 -3
- package/dist/sdk/core.d.ts +2 -1
- package/dist/sdk/core.js +3 -2
- package/dist/sdk/error-code-catalog.d.ts +13 -0
- package/dist/sdk/error-code-catalog.js +35 -2
- package/dist/sdk/extension.js +18 -17
- package/dist/sdk/files.d.ts +11 -0
- package/dist/sdk/files.js +82 -24
- package/dist/sdk/generated/generated-error-code-catalog-part-1.d.ts +8 -0
- package/dist/sdk/generated/generated-error-code-catalog-part-1.js +1585 -0
- package/dist/sdk/generated/generated-error-code-catalog-part-2.d.ts +8 -0
- package/dist/sdk/generated/generated-error-code-catalog-part-2.js +1608 -0
- package/dist/sdk/generated-error-code-catalog.js +6 -3121
- package/dist/sdk/governance/assurance-action-contracts.d.ts +7 -0
- package/dist/sdk/governance/assurance-action-contracts.js +5 -0
- package/dist/sdk/governance/assurance-action.d.ts +70 -0
- package/dist/sdk/governance/assurance-action.js +200 -0
- package/dist/sdk/governance/assurance-limits.d.ts +7 -0
- package/dist/sdk/governance/assurance-limits.js +11 -0
- package/dist/sdk/governance/assurance-mutation-error.d.ts +7 -0
- package/dist/sdk/governance/assurance-mutation-error.js +35 -0
- package/dist/sdk/governance/assurance-runtime.d.ts +20 -0
- package/dist/sdk/governance/assurance-runtime.js +134 -0
- package/dist/sdk/governance/assurance.d.ts +438 -0
- package/dist/sdk/governance/assurance.js +804 -0
- package/dist/sdk/governance/health.d.ts +3 -1
- package/dist/sdk/governance/health.js +21 -4
- package/dist/sdk/governance/validate-item-reader.js +3 -3
- package/dist/sdk/governance/validate.d.ts +2 -0
- package/dist/sdk/governance/validate.js +13 -3
- package/dist/sdk/graph/durable-cache.d.ts +1 -1
- package/dist/sdk/graph/durable-cache.js +98 -29
- package/dist/sdk/graph/governance.d.ts +14 -0
- package/dist/sdk/graph/governance.js +34 -9
- package/dist/sdk/graph/run.js +8 -3
- package/dist/sdk/index.d.ts +7 -2
- package/dist/sdk/index.js +9 -4
- package/dist/sdk/lifecycle/claim.js +26 -4
- package/dist/sdk/lifecycle/focus.js +13 -3
- package/dist/sdk/lifecycle/plan.js +8 -3
- package/dist/sdk/merge/driver.d.ts +2 -2
- package/dist/sdk/merge/driver.js +3 -3
- package/dist/sdk/merge/receipts.d.ts +6 -4
- package/dist/sdk/merge/receipts.js +7 -5
- package/dist/sdk/merge/three-way.d.ts +2 -2
- package/dist/sdk/merge/three-way.js +3 -3
- package/dist/sdk/output-projection.d.ts +9 -1
- package/dist/sdk/output-projection.js +45 -9
- package/dist/sdk/provenance.d.ts +38 -0
- package/dist/sdk/provenance.js +64 -2
- package/dist/sdk/query/activity.d.ts +49 -2
- package/dist/sdk/query/activity.js +183 -37
- package/dist/sdk/query/context.js +19 -8
- package/dist/sdk/query/get.js +19 -2
- package/dist/sdk/read-output-contracts.d.ts +5 -1
- package/dist/sdk/read-output-contracts.js +17 -2
- package/dist/sdk/read-output-session.d.ts +2 -0
- package/dist/sdk/read-output-session.js +12 -5
- package/dist/sdk/runtime-extended-actions.js +22 -5
- package/dist/sdk/runtime-primitives.d.ts +5 -3
- package/dist/sdk/runtime-primitives.js +7 -5
- package/dist/sdk/runtime-stats-options.js +3 -2
- package/dist/sdk/runtime.d.ts +4 -0
- package/dist/sdk/runtime.js +34 -34
- package/dist/sdk/stats.d.ts +36 -3
- package/dist/sdk/stats.js +55 -15
- package/dist/sdk/telemetry.js +7 -4
- package/dist/sdk/test/execution.d.ts +4 -0
- package/dist/sdk/test/execution.js +86 -21
- package/dist/sdk/traceability/runtime-files-lookup.d.ts +8 -0
- package/dist/sdk/traceability/runtime-files-lookup.js +33 -0
- package/dist/sdk/traceability/source-traceability.d.ts +102 -0
- package/dist/sdk/traceability/source-traceability.js +293 -0
- package/dist/types.d.ts +10 -2
- package/dist/types.js +2 -2
- package/docs/ASSURANCE.md +137 -0
- package/docs/COMMANDS.md +29 -8
- package/docs/CONFIGURATION.md +7 -0
- package/docs/DEPENDENCY_KIND_CONTRACT.md +10 -8
- package/docs/MERGE_SAFETY.md +3 -1
- package/docs/OUTPUT_PROJECTION_CONTRACTS.md +26 -13
- package/docs/README.md +3 -0
- package/docs/READ_OUTPUT_CONTRACTS.md +17 -2
- package/docs/RELEASING.md +9 -5
- package/docs/SDK.md +12 -1
- package/docs/SDK_AGENT_SESSION_CONTEXT.md +52 -5
- package/docs/SDK_CONTEXT_EVIDENCE_CONTRACTS.md +53 -0
- package/docs/SDK_CONTEXT_INTEGRITY.md +28 -1
- package/docs/SDK_EVIDENCE_TRACEABILITY.md +39 -1
- package/docs/SDK_RUNTIME_BOUNDARIES.md +36 -1
- package/docs/TESTING.md +12 -9
- package/docs/TRUSTWORTHY_CONTEXT_EVIDENCE.md +106 -0
- package/docs/generated/AGENT_COMMAND_SURFACE.md +1 -0
- package/docs/performance/sdk-entrypoint-import-costs.md +6 -2
- package/marketplace.json +2 -2
- package/package.json +7 -7
- 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/extensions/templates/index.ts +9 -3
- package/packages/pm-templates/package.json +1 -1
- package/packages/pm-todos/package.json +1 -1
- package/packages/pm-vcs/package.json +1 -1
- package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
- package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
- package/sdk/public-surface.json +1030 -67
- package/dist/cli-bundle/chunks/chunk-2QYH4QMI.js +0 -30
- package/dist/cli-bundle/chunks/chunk-JUDU4RO4.js +0 -194
- package/dist/cli-bundle/chunks/chunk-JZSNADRR.js +0 -5
- package/dist/cli-bundle/chunks/chunk-MENWVGJW.js +0 -2
- package/dist/cli-bundle/chunks/chunk-S4EITGLA.js +0 -3
- package/dist/cli-bundle/chunks/chunk-TIGKWVLA.js +0 -13
- package/dist/cli-bundle/chunks/chunk-TSLDTJLQ.js +0 -2
- package/dist/cli-bundle/chunks/register-list-query-OJ6ZXKV4.js +0 -10
- package/dist/cli-bundle/chunks/register-mutation-DKI7QC7O.js +0 -20
- package/dist/cli-bundle/chunks/register-operations-P5OGMT6I.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-36FTZ2NT.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-3CQECMKR.js +0 -16
- package/dist/cli-bundle/focused-chunks/chunk-CHIBMEZR.js +0 -8
- package/dist/cli-bundle/focused-chunks/chunk-FF4MNAYB.js +0 -153
- package/dist/cli-bundle/focused-chunks/chunk-GHTN2ILR.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-I4YM2I7S.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-IMDTEN7K.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-JMVA4HKR.js +0 -5
- package/dist/cli-bundle/focused-chunks/chunk-KR5RVXLQ.js +0 -31
- package/dist/cli-bundle/focused-chunks/chunk-KSNJG4KI.js +0 -16
- package/dist/cli-bundle/focused-chunks/chunk-MXYSIQ56.js +0 -18
- package/dist/cli-bundle/focused-chunks/chunk-RIIN5V4N.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-RKWSCYYN.js +0 -2
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import{d as gt,e as N,g as mt,i as A}from"./chunk-KPSXVBDV.js";import{Xa as ie,Y as re,ja as R,k as se,mb as ft,nb as pt,pb as oe,sa as Oe,vb as ht}from"./chunk-5OQIMELN.js";import{E as J,K as X,N as Y,Qa as Z,ca as x,ha as Q,p as H,r as F,s as G,u as at}from"./chunk-NBLUKITQ.js";import{h as ee,j as te,l as De,n as L,o as ne,p as ct,q as dt,r as ut,s as lt}from"./chunk-5TAGTDRE.js";import{Y as y,Z as b,aa as q,la as Re}from"./chunk-ISKOBJCM.js";import{constants as B}from"node:fs";import{lstat as yt,mkdir as Ne,open as _t}from"node:fs/promises";import T from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="c53bb1b7-12b9-5370-a85b-cdd8bef57936")}catch{}})();function Le(e,t){if(typeof e!="string"||e.trim().length===0)throw new TypeError(`Relationship event ${t} must be non-empty`);return e.trim()}function Ae(e,t){let s=t.require(e.kind),n=s.direction==="undirected"?[e.source,e.target].sort().join("\0"):`${e.source}\0${e.target}`;return`${s.kind}\0${n}`}function vn(e){return Object.freeze({...e,...e.payload===void 0?{}:{payload:Object.freeze(structuredClone(e.payload))}})}function xn(e,t,s,n){let r=s.require(e.kind),i=n.outgoingOne.get(`${r.kind}\0${e.source}`);if(i!==void 0&&i!==t)throw new TypeError(`Relationship outgoing cardinality exceeded for ${r.kind}`);let o=n.incomingOne.get(`${r.kind}\0${e.target}`);if(o!==void 0&&o!==t)throw new TypeError(`Relationship incoming cardinality exceeded for ${r.kind}`);let a=Ae(e,s),c=n.identities.get(a);if(c!==void 0&&c!==t)throw new TypeError(`Relationship edge already active: ${a}`)}function En(e){let t=new Map;for(let s of e)s.action==="remove"?t.delete(s.relationshipId):t.set(s.relationshipId,s.edge);return t}function In(e,t,s){if(e.expectedVersion!==void 0&&e.expectedVersion!==t)throw new TypeError(`Relationship event version conflict: expected ${e.expectedVersion}, current ${t}`);let n=Le(e.eventId,"eventId");if(s.has(n))throw new TypeError(`Relationship event already exists: ${n}`);if(e.action!=="add"&&e.action!=="remove"&&e.action!=="supersede")throw new TypeError(`Unknown relationship event action: ${e.action}`);if(!Number.isFinite(Date.parse(e.timestamp)))throw new TypeError("Relationship event timestamp must be valid");return{eventId:n,relationshipId:Le(e.relationshipId,"relationshipId"),author:Le(e.author,"author"),timestamp:new Date(e.timestamp).toISOString()}}function Tn(e,t,s,n,r,i){let o=s.has(t);if(e.action==="add"&&o)throw new TypeError(`Relationship is already active: ${t}`);if(e.action!=="add"&&!o)throw new TypeError(`Relationship is not active: ${t}`);if(e.action==="remove")return;if(!e.edge)throw new TypeError(`Relationship ${e.action} event requires an edge`);let a=typeof e.edge.source=="string"?e.edge.source.trim():"",c=typeof e.edge.target=="string"?e.edge.target.trim():"";if(!n.has(a)||!n.has(c))throw new TypeError(`Relationship endpoint not found: ${a} -> ${c}`);let d=new Q([a,c],[e.edge],r).edges()[0];return xn(d,t,r,i),vn(d)}var Me=class{#e;#n;#s=[];#i=new Set;#t=new Map;#r={identities:new Map,outgoingOne:new Map,incomingOne:new Map};constructor(t,s={}){this.#e=new Set([...t].filter(n=>typeof n=="string").map(n=>n.trim()).filter(Boolean)),this.#n=s.registry??x()}get version(){return this.#s.length}events(){return Object.freeze([...this.#s])}*stream(t={}){let s=t.fromVersion??1,n=t.toVersion??this.version,r=t.batchSize??100;if(!Number.isInteger(s)||s<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(s>n+1)throw new TypeError("Relationship event stream fromVersion exceeds the selected prefix");for(let i=s-1;i<n;i+=r)yield Object.freeze(this.#s.slice(i,Math.min(i+r,n)))}project(t,s,n={}){if(typeof s!="function")throw new TypeError("Relationship event projection requires a reducer");let r=t,i=0,o;for(let a of this.stream({...n,batchSize:256}))for(let c of a)r=s(r,c),i+=1,o=c;return Object.freeze({state:r,version:o?.sequence??Math.max(0,(n.fromVersion??1)-1),processed:i,...o===void 0?{}:{asOf:o.timestamp}})}#o(t,s){let n=this.#n.require(s.kind);this.#r.identities.set(Ae(s,this.#n),t),n.outgoing==="one"&&this.#r.outgoingOne.set(`${n.kind}\0${s.source}`,t),n.incoming==="one"&&this.#r.incomingOne.set(`${n.kind}\0${s.target}`,t)}#a(t){let s=this.#n.require(t.kind);this.#r.identities.delete(Ae(t,this.#n)),s.outgoing==="one"&&this.#r.outgoingOne.delete(`${s.kind}\0${t.source}`),s.incoming==="one"&&this.#r.incomingOne.delete(`${s.kind}\0${t.target}`)}append(t){let s=In(t,this.version,this.#i),n=this.#t.get(s.relationshipId),r=Tn(t,s.relationshipId,this.#t,this.#e,this.#n,this.#r),i=Object.freeze({eventId:s.eventId,relationshipId:s.relationshipId,action:t.action,...r===void 0?{}:{edge:r},author:s.author,timestamp:s.timestamp,...t.reason?.trim()?{reason:t.reason.trim()}:{},sequence:this.version+1});return this.#s.push(i),this.#i.add(s.eventId),n&&this.#a(n),t.action==="remove"?this.#t.delete(s.relationshipId):(this.#t.set(s.relationshipId,r),this.#o(s.relationshipId,r)),i}snapshot(t={}){if(t.atVersion!==void 0&&t.atTimestamp!==void 0)throw new TypeError("Relationship snapshot accepts one target");let s;if(t.atTimestamp!==void 0){let i=Date.parse(t.atTimestamp);if(!Number.isFinite(i))throw new TypeError("Relationship snapshot timestamp must be valid");s=this.#s.filter(o=>Date.parse(o.timestamp)<=i)}else{let i=t.atVersion??this.version;if(!Number.isInteger(i)||i<0||i>this.version)throw new TypeError(`Relationship snapshot version out of range: ${i}`);s=this.#s.slice(0,i)}let n=En(s),r=new Q(this.#e,n.values(),this.#n);return Object.freeze({version:s.at(-1)?.sequence??0,...s.at(-1)?{asOf:s.at(-1).timestamp}:{},edges:r.edges(),graph:r})}page(t){if(!Number.isInteger(t.limit)||t.limit<1)throw new TypeError("Relationship event page limit must be positive");let s=L("relationship-events",{order:"append-sequence"}),n=t.cursor===void 0?this.version:Number(ct(t.cursor,s).snapshot);if(!Number.isSafeInteger(n)||n<0||n>this.version)throw new TypeError("Relationship event cursor snapshot version is invalid");let r=lt(this.#s.slice(0,n),{cursor:t.cursor,fingerprint:s,limit:t.limit,readId:i=>i.eventId,snapshot:String(n)});return{version:n,events:r.rows,hasMore:r.has_more,...r.next_cursor?{nextCursor:r.next_cursor}:{}}}},Sn="relationship-event-store",wt=B.O_NOFOLLOW;function ae(e){return re(e,Sn,30,`relationship-store:${process.pid}`,!1,!1,3e3)}async function D(e,t="relationships/events.jsonl"){let s=T.resolve(e),n=T.resolve(s,t),r=T.relative(s,n);if(r.length===0)throw new TypeError("Relationship event path must name a file within the tracker root");if(r===".."||r.startsWith(`..${T.sep}`)||T.isAbsolute(r))throw new TypeError("Relationship event path must stay within the tracker root");if(await Ne(s,{recursive:!0}),(await yt(s)).isSymbolicLink())throw new TypeError("Relationship event tracker root must not be a symbolic link");let o=s;for(let a of r.split(T.sep)){o=T.join(o,a);try{if((await yt(o)).isSymbolicLink())throw new TypeError("Relationship event path must not contain symbolic links")}catch(c){if(c.code==="ENOENT")break;throw c}}return n}async function ce(e,t,s){let n=new Me(t,{registry:s}),r,i;try{i=await _t(e,B.O_RDONLY|wt),r=await i.readFile("utf8")}catch(a){if(a.code==="ENOENT")return{log:n,raw:""};throw a}finally{await i?.close()}let o=r.split(`
|
|
2
|
+
`);for(let a=0;a<o.length;a+=1){let c=o[a].trim();if(!c)continue;let d;try{d=JSON.parse(c)}catch{throw new TypeError(`Invalid relationship event JSONL at line ${a+1}`)}if(d.sequence!==n.version+1)throw new TypeError(`Invalid relationship event sequence at line ${a+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 Cn(e,t,s,n){let r=Date.parse(t.timestamp),i;return t.action!=="remove"&&t.edge!==void 0&&(i=new Q(s,[t.edge],n).edges()[0]),e.eventId===t.eventId.trim()&&e.relationshipId===t.relationshipId.trim()&&e.action===t.action&&e.author===t.author.trim()&&Number.isFinite(r)&&e.timestamp===new Date(r).toISOString()&&e.reason===(t.reason?.trim()||void 0)&&q(e.edge)===q(i)}var bt=class e{#e;#n;#s;#i;#t;constructor(t,s,n,r){this.#e=t.pmRoot,this.#n=s,this.#s=t.registry,this.#i=n,this.#t=r}static async open(t){let s=Object.freeze([...t.nodes]),n=await D(t.pmRoot,t.relativePath),r=await ae(t.pmRoot);try{await D(t.pmRoot,n);let{log:i}=await ce(n,s,t.registry);return new e(t,s,n,i)}finally{await r()}}get path(){return this.#i}async currentVersion(){return this.#t=await this.#r(),this.#t.version}async append(t){let s=await ae(this.#e);try{let n=await D(this.#e,this.#i),{log:r}=await ce(n,this.#n,this.#s),i=r.append(t);await Ne(T.dirname(n),{recursive:!0}),await D(this.#e,n);let o=await _t(n,B.O_APPEND|B.O_CREAT|B.O_WRONLY|wt);try{await o.appendFile(`${JSON.stringify(i)}
|
|
3
|
+
`,"utf8")}finally{await o.close()}return this.#t=r,i}finally{await s()}}async appendBatch(t,s={}){let n=await ae(this.#e);try{let r=await D(this.#e,this.#i),{log:i,raw:o}=await ce(r,this.#n,this.#s),a=i.version,c=new Map(i.events().map(l=>[l.eventId,l])),d=[],u=[];for(let l of t){let f=l.eventId.trim(),p=c.get(f);if(p!==void 0){if(s.existingEventPolicy==="skip_identical"&&Cn(p,l,this.#n,this.#s)){u.push(p.eventId);continue}if(s.existingEventPolicy==="skip_identical")throw new TypeError(`Relationship event id collision with different content: ${f}`)}let h=i.append(l);c.set(h.eventId,h),d.push(h)}if(d.length>0){let l=o.length===0||o.endsWith(`
|
|
4
|
+
`)?o:`${o}
|
|
5
|
+
`;await Ne(T.dirname(r),{recursive:!0}),await D(this.#e,r),await G(r,`${l}${d.map(f=>JSON.stringify(f)).join(`
|
|
6
|
+
`)}
|
|
7
|
+
`)}return this.#t=i,Object.freeze({version_before:a,version_after:i.version,appended:Object.freeze(d),skipped_event_ids:Object.freeze(u)})}finally{await n()}}async snapshot(t={}){return this.#t=await this.#r(),this.#t.snapshot(t)}async page(t){return this.#t=await this.#r(),this.#t.page(t)}async*stream(t={}){this.#t=await this.#r(),yield*this.#t.stream(t)}async project(t,s,n={}){return this.#t=await this.#r(),this.#t.project(t,s,n)}async#r(){let t=await ae(this.#e);try{let s=await D(this.#e,this.#i);return(await ce(s,this.#n,this.#s)).log}finally{await 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]="3a33af50-3d2c-57bb-884a-4d5394599ba2")}catch{}})();function Rn(e,t,s,n,r,i){if(e.seen.has(t))return"skip";if(e.cursorFound&&e.affected.length>=i)return"truncate";e.seen.add(t),e.parents.set(t,s.id);let o=s.depth+1;return e.queue.push({id:t,depth:o}),e.cursorFound?(e.affected.push({id:t,distance:o,path:Pn(n,t,e.parents)}),"continue"):(e.cursorFound=t===r,"skip")}function Dn(e,t,s,n){let r=L("graph impact",{root:e,direction:s,kinds:[...t.kinds??[]].sort(),max_depth:Number.isFinite(n)?n:"unbounded"});return{fingerprint:r,after:t.after===void 0?void 0:dt(t.after,r)}}function z(e,t,s){e.get(t).add(s)}function ue(e){return new Map(e.map(t=>[t,new Set]))}function vt(e){for(let t of e)t.sort();return e.sort((t,s)=>s.length-t.length||t[0].localeCompare(s[0]))}function de(e){if(Array.isArray(e))return e.map(s=>de(s));if(e===null||typeof e!="object")return e;let t=e.toJSON;return typeof t=="function"?de(t.call(e)):Object.fromEntries(Object.entries(e).sort(([s],[n])=>s.localeCompare(n)).map(([s,n])=>[s,de(n)]))}function kt(e){return JSON.stringify(de(e))}function On(e,t,s,n){let r=[{id:e,expanded:!1}];for(;r.length>0;){let i=r.pop();if(i.expanded){n.push(i.id);continue}if(s.has(i.id))continue;s.add(i.id),r.push({id:i.id,expanded:!0});let o=[...t.get(i.id)].sort().reverse();for(let a of o)s.has(a)||r.push({id:a,expanded:!1})}}function Ln(e,t){let s=new Set,n=[];for(let r of e)s.has(r)||On(r,t,s,n);return n}function Nn(e,t){let s=new Set,n=[];for(let r of[...e].reverse()){if(s.has(r))continue;let i=[],o=[r];for(s.add(r);o.length>0;){let a=o.pop();i.push(a);for(let c of t.get(a))s.has(c)||(s.add(c),o.push(c))}n.push(i)}return vt(n)}function xt(e,t){let s=ue(e);for(let[n,r]of t)for(let i of r)z(s,i,n);return Nn(Ln(e,t),s)}function An(e,t){let s=ue(e.nodes());for(let n of e.edges()){let r=t.require(n.kind);if(!r.ordering)continue;let i=(r.precedence??"source_before_target")==="source_before_target";z(s,i?n.source:n.target,i?n.target:n.source)}return s}function Mn(e,t){let s=new Map(e.map(i=>[i,0]));for(let i of t.values())for(let o of i)s.set(o,s.get(o)+1);let n=e.filter(i=>s.get(i)===0).sort(),r=[];for(;n.length>0;){r.push(n);let i=[];for(let o of n)for(let a of t.get(o)){let c=s.get(a)-1;s.set(a,c),c===0&&i.push(a)}n=i.sort()}return r}function $n(e,t){let s=new Map(e.map(o=>[o,0])),n=new Map;for(let o of e)for(let a of t.get(o)){if(!s.has(a))continue;let c=s.get(o)+1,d=n.get(a);(c>s.get(a)||c===s.get(a)&&(d===void 0||o.localeCompare(d)<0))&&(s.set(a,c),n.set(a,o))}let r=[...e].sort((o,a)=>s.get(a)-s.get(o)||o.localeCompare(a))[0],i=r===void 0?[]:[r];for(;i[0]!==void 0&&n.has(i[0]);)i.unshift(n.get(i[0]));return{depth:Object.fromEntries(s),path:i}}function Pn(e,t,s){let n=[t],r=t;for(;r!==e;)r=s.get(r),n.push(r);return n.reverse()}function le(e,t={}){let s=t.registry??x(),n=[...e.nodes()],r=An(e,s),i=Mn(n,r),o=i.flat(),a=o.length===n.length,c=a?[]:xt(n,r).filter(u=>u.length>1||r.get(u[0]).has(u[0])),d=$n(o,r);return{exact:!0,acyclic:a,order:o,layers:i,frontier:i[0]??[],depth:d.depth,criticalPath:d.path,criticalPathLength:Math.max(0,d.path.length-1),cycles:c,provenance:{algorithm:"kahn-longest-path",edgeFamily:"ordering"}}}function Et(e,t,s={}){let n=s.direction??"outgoing",r=s.maxDepth??Number.POSITIVE_INFINITY,i=s.limit??Number.POSITIVE_INFINITY,{fingerprint:o,after:a}=Dn(t,s,n,r),c={queue:[{id:t,depth:0}],seen:new Set([t]),parents:new Map,affected:[],cursorFound:a===void 0||a===t},d=0,u=0,l=!1,f=!1;e:for(let p=0;p<c.queue.length;p+=1){s.signal?.throwIfAborted();let h=c.queue[p];d+=1;let g=e.adjacency(h.id,{direction:n,kinds:s.kinds,signal:s.signal});if(u+=g.meta.inspectedEdges,h.depth>=r){g.value.some(m=>!c.seen.has(m))&&(l=!0);continue}for(let m of g.value)if(Rn(c,m,h,t,a,i)==="truncate"){l=!0,f=!0;break e}}if(!c.cursorFound)throw new TypeError(`Unknown impact cursor item: ${a}`);return{root:t,affected:c.affected,exact:!0,truncated:l,...f?{nextCursor:ne(o,c.affected.at(-1)?.id??t)}:{},cost:{visitedNodes:d,inspectedEdges:u}}}function It(e){let t=[...e.nodes()],s=ue(t),n=ue(t);for(let c of e.edges())z(s,c.source,c.target),z(s,c.target,c.source),z(n,c.source,c.target);let r=[],i=new Set;for(let c of t){if(i.has(c))continue;let d=[],u=[c];for(i.add(c);u.length>0;){let l=u.pop();d.push(l);for(let f of s.get(l))i.has(f)||(i.add(f),u.push(f))}r.push(d)}let o=t.map(c=>({id:c,degree:s.get(c).size})),a=Math.max(0,...o.map(({degree:c})=>c));return{components:vt(r),stronglyConnected:xt(t,n),orphans:o.filter(({degree:c})=>c===0).map(({id:c})=>c),hubs:o.filter(({degree:c})=>c>0&&c===a),exact:!0,provenance:{algorithm:"component-degree",edgeFamily:"all"}}}function ci(e,t){let s=new Map(e.edges.map(r=>[kt(r),r])),n=new Map(t.edges.map(r=>[kt(r),r]));return{fromVersion:e.version,toVersion:t.version,added:[...n].filter(([r])=>!s.has(r)).map(([,r])=>r),removed:[...s].filter(([r])=>!n.has(r)).map(([,r])=>r),unchangedCount:[...s.keys()].filter(r=>n.has(r)).length,exact:!0}}import{createHash as jn}from"node:crypto";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="dea35fb9-9f9f-56ce-afc0-f4dc993012c3")}catch{}})();var Fn=64,Gn=8;function qn(e,t){let s=(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??"",s].join("\0")}function fe(e,t=n=>n==="closed"||n==="canceled",s=x()){let n=e.filter(i=>typeof i?.id=="string"&&i.id.trim().length>0).map(i=>qn(i,t)).sort(),r=s.list().map(i=>q(i)).sort();return jn("sha256").update(n.join("")).update("").update(r.join("")).digest("hex")}function Tt(e,t,s){let n=t??s;if(!Number.isInteger(n)||n<1)throw new TypeError(`Invalid ${e} bound: ${String(t)}`);return n}var $e=class{#e=new Map;#n;#s;constructor(t={}){this.#n=Tt("maxResultsPerWorkspace",t.maxResultsPerWorkspace,Fn),this.#s=Tt("maxWorkspaces",t.maxWorkspaces,Gn)}lookup(t,s,n){let r=this.#e.get(t),i=!0;(r===void 0||r.fingerprint!==s)&&(r={fingerprint:s,assembly:n(),results:new Map},i=!1,!this.#e.has(t)&&this.#e.size>=this.#s&&this.#e.delete(this.#e.keys().next().value)),this.#e.delete(t),this.#e.set(t,r);let o=r,a=this.#n;return{assembly:o.assembly,assemblyReused:i,fingerprint:s,memoize(c,d){let u=o.results.get(c);if(u!==void 0||o.results.has(c))return o.results.delete(c),o.results.set(c,u),{value:structuredClone(u),reused:!0};let l=d();return o.results.size>=a&&o.results.delete(o.results.keys().next().value),o.results.set(c,structuredClone(l)),{value:l,reused:!1}}}}clear(){this.#e.clear()}},St=new $e;function pe(){return St}function pi(){St.clear()}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="31a800f7-1374-5e7c-ad23-ae3d8ebcebe0")}catch{}})();var Bn=["prerequisite","dependent","ancestor","descendant","provenance","related"],zn=new TextEncoder;function Pe(e,t,s){let n=e??t;if(!Number.isInteger(n)||n<1)throw new TypeError(`Relationship context ${s} must be positive`);return n}function he(e){return Math.max(1,Math.ceil(zn.encode(JSON.stringify(e)).byteLength/4))}function je(e,t,s){let n=s.resolve(e.kind);if(n?.ordering){let i=(n.precedence??"source_before_target")==="source_before_target"?e.source:e.target;return t===i?"prerequisite":"dependent"}if(n?.hierarchy){let i=(n.hierarchyDirection??"source_parent")==="source_parent"?e.source:e.target;return t===i?"ancestor":"descendant"}return e.kind==="discovered_from"||e.kind==="incident_from"?"provenance":"related"}function Un(e,t,s,n){let r=e.filter(i=>i.source===t&&i.target===s||i.target===t&&i.source===s).map(i=>je(i,s,n));return[...new Set(r)].sort()}function Kn(e){return Bn.find(t=>e.includes(t))}function Wn(e,t,s,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 o=new Set([t]),a=[{id:t,distance:0}],c=[],d=0,u=!1;for(let l=0;l<a.length;l+=1){n.signal?.throwIfAborted();let f=a[l];if(f.distance>=i&&u)continue;let p=e.neighborEdges(f.id,{direction:r,kinds:n.kinds,signal:n.signal});if(d+=p.meta.inspectedEdges,f.distance>=i){p.value.some(h=>!o.has(h.id))&&(u=!0);continue}for(let{id:h,edge:g}of p.value){if(o.has(h))continue;o.add(h);let m={id:h,distance:f.distance+1,via:f.id,role:je(g,h,s)};c.push(m),a.push(m)}}return c.sort((l,f)=>l.distance-f.distance||l.id.localeCompare(f.id)),{rows:c,visitedNodes:a.length,inspectedEdges:d,depthTruncated:u}}function Vn(e,t,s,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:o,edge:a}of i)r[je(a,o,s)]+=1;return{directEdges:r,directTotal:i.length,rootEdges:i.map(({edge:o})=>o)}}function Hn(e){let t=[],s=e.initialTokens;for(let n of e.candidates){if(t.length>=e.nodeLimit)break;let r=n.distance===1?Un(e.rootEdges,e.rootId,n.id,e.registry):[],i={...e.details.get(n.id)??{id:n.id},distance:n.distance,role:r.length>0?Kn(r):n.role,via:n.via,reasons:r.length>0?r:[`${n.role} via ${n.via} (depth ${n.distance})`]},o=he(i);if(s+o>e.tokenBudget)break;t.push(i),s+=o}if(e.candidates.length>0&&t.length===0)throw new TypeError("Relationship context tokenBudget cannot fit one node");return{nodes:t,usedTokens:s}}function Jn(e){let t=e.options.kinds?new Set(e.options.kinds.map(i=>e.registry.require(i).kind)):void 0,s=e.graph.edges().filter(i=>{if(!e.included.has(i.source)||!e.included.has(i.target))return!1;if(t===void 0||t.has(i.kind))return!0;let o=e.registry.resolve(i.kind)?.inverse;return o!==void 0&&t.has(o)}),n=[],r=e.initialTokens;for(let i of s){if(n.length>=e.edgeLimit)break;let o=he(i);if(r+o>e.tokenBudget)break;n.push(i),r+=o}return{edges:n,usedTokens:r,candidateCount:s.length}}function Ct(e,t,s,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"),o=Pe(n.tokenBudget,1200,"tokenBudget"),a=n.registry??x(),c=new Map(s.map(O=>[O.id,O])),d=c.get(t)??{id:t},{evidence:u=[],...l}=d,f=[...u],p=Wn(e,t,a,n),{rootEdges:h,...g}=Vn(e,t,a,n),m=L("relationship-context",{rootId:t,direction:n.direction??"both",kinds:[...n.kinds??[]].sort(),maxDepth:n.maxDepth??3}),_=ut(p.rows,n.cursor,m,({id:O})=>O),v=p.rows.slice(_),w=he(l)+he(f);if(w>o)throw new TypeError("Relationship context tokenBudget cannot fit root and evidence");let C=Hn({candidates:v,details:c,rootEdges:h,rootId:t,registry:a,nodeLimit:r,tokenBudget:o,initialTokens:w}),{nodes:k}=C,W=new Set([t,...k.map(({id:O})=>O)]),P=Jn({graph:e,included:W,options:n,registry:a,edgeLimit:i,tokenBudget:o,initialTokens:C.usedTokens}),{edges:j,usedTokens:wn}=P,V=_+k.length,Se=V<p.rows.length,it=k.at(-1),Ce=P.candidateCount-j.length,ot=p.depthTruncated||Se||Ce>0,kn={rootId:t,...l.status===void 0?{}:{rootStatus:l.status},...g,discoveredNodes:p.rows.length,returnedNodes:k.length,returnedEdges:j.length,omittedNodes:p.rows.length-V,omittedEdges:Ce,evidenceCount:f.length,hasMore:Se};return{root:l,summary:kn,nodes:k,edges:j,evidence:f,meta:{exact:!0,truncated:ot,completeness:ot?"truncated":"complete",nodeLimit:r,edgeLimit:i,tokenBudget:o,usedTokens:wn,visitedNodes:p.visitedNodes,inspectedEdges:p.inspectedEdges,omittedNodes:p.rows.length-V,omittedEdges:Ce,...Se&&it?{nextCursor:ne(m,it.id,V-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]="c0fb747e-1f9f-55c4-808b-b77d3a881f87")}catch{}})();var Xn=5,Yn=1e4,Qn=8;function Fe(e,t){if(!Number.isFinite(t)||!Number.isInteger(t)||t<0)throw new TypeError(`Invalid path ${e} bound: ${String(t)}`)}function ge(e,t){return t.hierarchyDirection==="target_parent"?e.target:e.source}function U(e,t){return(t.precedence??"source_before_target")==="target_before_source"?e.target:e.source}function me(e,t){let s=U(e,t);return{predecessor:s,successor:s===e.source?e.target:e.source}}function Zn(e,t,s){if(t===void 0)return;let n=e.registry(),r=new Set;for(let i of t){let o=n.require(i);if(!o[s])throw new TypeError(`Relationship kind ${o.kind} is not a ${s} kind`);r.add(o.kind)}return r}function es(e,t,s,n,r){let i=e.registry(),o=e.neighborEdges(t,{direction:"both",...s===void 0?{}:{kinds:[...s]}}),a=[],c=new Set;for(let d of o.value){let u=i.require(d.edge.kind);u[n]&&r(d,u,t)&&(c.has(d.id)||(c.add(d.id),a.push(d.id)))}return{neighbors:a,inspectedEdges:o.meta.inspectedEdges}}function ts(e,t,s,n,r,i){if(t>=s)return e.neighbors.some(o=>!i.seen.has(o))&&(i.truncated=!0),!1;for(let o of e.neighbors)if(!i.seen.has(o)){if(i.seen.add(o),i.queue.push({id:o,depth:t+1}),!i.resumed){o===r&&(i.resumed=!0);continue}if(i.value.length>=n)return i.truncated=!0,!0;i.value.push(o)}return!1}function ye(e,t,s,n,r){if(!e.hasNode(t))throw new TypeError(`Relationship node not found: ${t}`);let i=Zn(e,s.kinds,n),o=s.limit??Number.POSITIVE_INFINITY,a=s.maxDepth??Number.POSITIVE_INFINITY,c=s.after,d={seen:new Set([t]),value:[],queue:[{id:t,depth:0}],resumed:c===void 0,truncated:!1},u=0,l=0;for(let f=0;f<d.queue.length;f+=1){s.signal?.throwIfAborted();let p=d.queue[f];u+=1;let h=es(e,p.id,i,n,r);if(l+=h.inspectedEdges,ts(h,p.depth,a,o,c,d))break}if(!d.resumed)throw new TypeError(`Traversal cursor not found in sequence: ${c}`);return{value:d.value,meta:{visitedNodes:u,inspectedEdges:l,truncated:d.truncated,nextCursor:d.value.at(-1)}}}function Rt(e,t){if(!e.hasNode(t))throw new TypeError(`Relationship node not found: ${t}`)}function Dt(e,t,s,n,r){let i=e.neighborEdges(t.nodes.at(-1),{direction:n,...s.kinds===void 0?{}:{kinds:s.kinds}});return r.inspectedEdges+=i.meta.inspectedEdges,i.value.filter(o=>!t.nodeSet.has(o.id))}function ns(e,t,s,n,r,i,o){for(let a of Dt(e,t,n,r,o)){let c=[...t.nodes,a.id],d=new Set(t.nodeSet).add(a.id),u=[...t.edges,a.edge];if(a.id===s){if(o.value.push({nodes:c,edges:u,length:u.length}),o.value.length>=i)return!0}else o.queue.push({nodes:c,nodeSet:d,edges:u})}return!1}function Ot(e,t,s={}){return ye(e,t,s,"hierarchy",(n,r)=>ge(n.edge,r)===n.id)}function Lt(e,t,s={}){return ye(e,t,s,"hierarchy",(n,r,i)=>ge(n.edge,r)===i)}function Nt(e,t,s={}){return ye(e,t,s,"ordering",(n,r)=>U(n.edge,r)===n.id)}function At(e,t,s={}){return ye(e,t,s,"ordering",(n,r,i)=>U(n.edge,r)===i)}function ss(e,t,s,n,r,i,o,a){let c={value:[],queue:[{nodes:[t],nodeSet:new Set([t]),edges:[]}],inspectedEdges:0},d=0,u=!1,l=r+1;for(let f=0;f<c.queue.length;f+=1){if(n.signal?.throwIfAborted(),c.value.length>=l||d>=i){u=!0;break}let p=c.queue[f];if(d+=1,p.edges.length>=o){Dt(e,p,n,a,c).length>0&&(u=!0);continue}if(ns(e,p,s,n,a,l,c)){u=!0;break}}return{value:c.value.slice(0,r),meta:{visitedNodes:d,inspectedEdges:c.inspectedEdges,truncated:u}}}function Mt(e,t,s,n={}){Rt(e,t),Rt(e,s);let r=n.maxPaths??Xn,i=n.maxVisitedPaths??Yn,o=n.maxDepth??Qn;Fe("maxPaths",r),Fe("maxVisitedPaths",i),Fe("maxDepth",o);let a=n.direction??"outgoing";n.signal?.throwIfAborted();for(let c of n.kinds??[])e.registry().require(c);return t===s?r===0?{value:[],meta:{visitedNodes:1,inspectedEdges:0,truncated:!0}}:{value:[{nodes:[t],edges:[],length:0}],meta:{visitedNodes:1,inspectedEdges:0,truncated:!1}}:ss(e,t,s,n,r,i,o,a)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="24898402-1568-5b05-9072-f89dd91f25a6")}catch{}})();var rs=16,is=2,os=8;function be(e,t){if(!Number.isInteger(t)||t<1)throw new TypeError(`Invalid ${e} bound: ${String(t)}`)}function _e(e,t,s){let n=e.registry(),r=t===void 0?void 0:new Set(t.map(i=>n.require(i).kind));for(let i of e.edges()){if(i.source===i.target)continue;let o=n.require(i.kind);r!==void 0&&!(r.has(o.kind)||o.inverse!==void 0&&r.has(o.inverse))||s(i,o)}}function as(e,t){let s=new Map;_e(e,t,n=>{$t(s,n.source,n.target),$t(s,n.target,n.source)});for(let n of s.values())n.sort();return s}function $t(e,t,s){let n=e.get(t);n===void 0?e.set(t,[s]):n.push(s)}function cs(e,t){let s=new Map;for(let i of e){let o=t.get(i);s.set(o,(s.get(o)??0)+1)}let n,r=0;for(let[i,o]of s)(o>r||o===r&&i<n)&&(n=i,r=o);return n}function ds(e,t){let s=new Map;for(let[r,i]of e){let o=s.get(i);o===void 0?s.set(i,[r]):o.push(r)}let n=[];for(let r of s.values())r.length<t||(r.sort(),n.push({representative:r[0],size:r.length,members:r}));return n.sort((r,i)=>i.size-r.size||r.representative.localeCompare(i.representative))}function Pt(e,t={}){let s=t.maxIterations??rs,n=t.minSize??is;be("maxIterations",s),be("minSize",n);let r=as(e,t.kinds),i=e.nodes(),o=new Map(i.map(l=>[l,l])),a=0,c=!1,d=0,u=0;for(;a<s&&!c;){t.signal?.throwIfAborted(),a+=1,c=!0;for(let l of i){d+=1;let f=r.get(l);if(f===void 0)continue;u+=f.length;let p=cs(f,o);p!==o.get(l)&&(o.set(l,p),c=!1)}}return{value:{communities:ds(o,n),iterations:a,converged:c},meta:{visitedNodes:d,inspectedEdges:u,truncated:!c}}}function we(e){return e.direction==="directed"&&(e.ordering||e.hierarchy)}function ke(e){return e.inverse!==void 0&&e.inverse<e.kind?e.inverse:e.kind}function Ge(e,t){return(t.hierarchy?ge(e,t):e.source===U(e,t)?e.target:e.source)===e.target?{from:e.source,to:e.target}:{from:e.target,to:e.source}}function us(e,t){if(t===void 0)return;let s=e.registry(),n=new Set;for(let r of t){let i=s.require(r);if(!we(i))throw new TypeError(`Relationship kind ${i.kind} is not a directed ordering or hierarchy kind`);n.add(ke(i))}return n}function ls(e,t){let s=e.registry(),n=new Map;for(let r of e.edges()){let i=s.require(r.kind);if(!we(i))continue;let o=ke(i);if(t!==void 0&&!t.has(o))continue;let a=Ge(r,i);if(a.from===a.to)continue;let c=n.get(o);c===void 0&&(c={adjacency:new Map,records:[]},n.set(o,c));let d=c.adjacency.get(a.from);d===void 0?c.adjacency.set(a.from,new Set([a.to])):d.add(a.to),c.records.push({...a,edge:r})}return n}function fs(e){let t=new Map;for(let[s,n]of e.adjacency)t.set(s,[...n].sort());return t}function ps(e,t,s,n){let r=[n];for(let i=s;i!==t;i=e.get(i))r.push(i);return r.push(t),r.reverse()}function hs(e,t,s,n,r,i){for(let o of e.get(s.id)??[])if(i.inspectedEdges+=1,!(s.depth===0&&o===t.to)&&!n.has(o)){if(n.set(o,s.id),o===t.to)return ps(n,t.from,s.id,o);r.push({id:o,depth:s.depth+1})}}function gs(e,t,s,n){let r=new Map([[t.from,t.from]]),i=[{id:t.from,depth:0}];for(let o=0;o<i.length;o+=1){let a=i[o];if(n.visitedNodes+=1,a.depth>=s)continue;let c=hs(e,t,a,r,i,n);if(c!==void 0)return c}}function ve(e,t={}){let s=t.maxDepth??os;be("maxDepth",s),t.limit!==void 0&&be("limit",t.limit);let n=t.limit??Number.POSITIVE_INFINITY,r=us(e,t.kinds),i=ls(e,r),o=[],a={visitedNodes:0,inspectedEdges:0},c=!1;e:for(let d of[...i.keys()].sort()){let u=i.get(d),l=fs(u);for(let f of u.records){t.signal?.throwIfAborted();let p=gs(l,f,s,a);if(p!==void 0){if(o.length>=n){c=!0;break e}o.push({edge:f.edge,witness:p})}}}return{value:o,meta:{visitedNodes:a.visitedNodes,inspectedEdges:a.inspectedEdges,truncated:c}}}function ms(e,t,s,n,r){let i=new Set,o=[];for(let a of s){if(a.id===e||i.has(a.id))continue;if(!r.seen.has(a.id)){if(t>=n){r.truncated=!0;continue}r.seen.add(a.id),r.queue.push({id:a.id,depth:t+1})}i.add(a.id),o.push(a.id);let c=r.predecessors.get(a.id);c===void 0&&(c=new Set,r.predecessors.set(a.id,c)),c.add(e)}return o}function ys(e,t,s){let n=s.direction??"outgoing",r=s.maxDepth??Number.POSITIVE_INFINITY,i=[],o=new Map,a={seen:new Set([t]),queue:[{id:t,depth:0}],predecessors:new Map,truncated:!1},c=0;for(let d=0;d<a.queue.length;d+=1){s.signal?.throwIfAborted();let{id:u,depth:l}=a.queue[d];i.push(u);let f=e.neighborEdges(u,{direction:n,...s.kinds===void 0?{}:{kinds:s.kinds}});c+=f.meta.inspectedEdges,o.set(u,ms(u,l,f.value,r,a))}return{order:i,successors:o,predecessors:a.predecessors,inspectedEdges:c,truncated:a.truncated}}function bs(e,t){let s=[],n=new Set([t]),r=[{id:t,index:0}];for(;r.length>0;){let i=r.at(-1),o=e.successors.get(i.id);if(i.index<o.length){let a=o[i.index];i.index+=1,n.has(a)||(n.add(a),r.push({id:a,index:0}))}else s.push(i.id),r.pop()}return s.reverse()}function _s(e,t,s,n){let r=e,i=t;for(;r!==i;){for(;n.get(r)>n.get(i);)r=s.get(r);for(;n.get(i)>n.get(r);)i=s.get(i)}return r}function ws(e,t,s){let n;for(let r of[...e].sort())t.has(r)&&(n=n===void 0?r:_s(n,r,t,s));return n}function ks(e,t,s,n,r){let i=new Map([[t,t]]),o=!0;for(;o;){o=!1;for(let a of s){if(r?.throwIfAborted(),a===t)continue;let c=ws(e.predecessors.get(a),i,n);c!==void 0&&i.get(a)!==c&&(i.set(a,c),o=!0)}}return i}function jt(e,t,s={}){if(!e.hasNode(t))throw new TypeError(`Relationship node not found: ${t}`);if(s.maxDepth!==void 0&&(!Number.isInteger(s.maxDepth)||s.maxDepth<0))throw new TypeError(`Invalid maxDepth bound: ${String(s.maxDepth)}`);let n=ys(e,t,s),r=bs(n,t),i=new Map(r.map((d,u)=>[d,u])),o=ks(n,t,r,i,s.signal),a=new Map(r.map(d=>[d,1]));for(let d=r.length-1;d>=0;d-=1){let u=r[d];if(u===t)continue;let l=o.get(u);a.set(l,a.get(l)+a.get(u))}let c=r.filter(d=>d!==t).map(d=>({id:d,idom:o.get(d),dominatedCount:a.get(d)-1})).sort((d,u)=>u.dominatedCount-d.dominatedCount||d.id.localeCompare(u.id));return{value:{root:t,reachableCount:n.order.length,rows:c},meta:{visitedNodes:n.order.length,inspectedEdges:n.inspectedEdges,truncated:n.truncated}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="348c9246-2fb9-529e-b627-f60c901a6cf2")}catch{}})();function Ft(e){return Math.round(e*1e6)/1e6}function Gt(e,t,s){let n=e.get(t);n===void 0?e.set(t,new Set([s])):n.add(s)}function qt(e,t){let s=new Map(e.nodes().map(r=>[r,new Set]));_e(e,t,r=>{s.get(r.source).add(r.target),s.get(r.target).add(r.source)});let n=new Map;for(let[r,i]of s)n.set(r,[...i].sort());return n}function vs(e,t){let s=new Map,n=new Map;return _e(e,t,(r,i)=>{if(!i.ordering)return;let{predecessor:o,successor:a}=me(r,i);Gt(n,o,a),Gt(s,a,o)}),{incoming:s,outgoing:n}}function xs(e,t,s){let n=new Map([[e,0]]),r=new Map([[e,1]]),i=new Map,o=[],a=[e],c=0,d=0;for(let u=0;u<a.length;u+=1){let l=a[u];s.visitedNodes+=1,o.push(l);let f=n.get(l);l!==e&&(c+=1,d+=f);for(let p of t.get(l))if(s.inspectedEdges+=1,n.has(p)||(n.set(p,f+1),a.push(p)),n.get(p)===f+1){r.set(p,(r.get(p)??0)+r.get(l));let h=i.get(p);h===void 0?i.set(p,[l]):h.push(l)}}return{stack:o,sigma:r,predecessors:i,reachableCount:c,distanceSum:d}}function Es(e,t,s){let n=new Map;for(let r=e.stack.length-1;r>=0;r-=1){let i=e.stack[r],o=(1+(n.get(i)??0))/e.sigma.get(i);for(let a of e.predecessors.get(i)??[])n.set(a,(n.get(a)??0)+e.sigma.get(a)*o);i!==t&&s.set(i,(s.get(i)??0)+(n.get(i)??0))}}function Is(e,t){return t<=1||e.reachableCount===0?0:e.reachableCount/(t-1)*(e.reachableCount/e.distanceSum)}function Ts(e,t,s,n,r){return{id:e,degree:t.get(e).length,inDegree:s.incoming.get(e)?.size??0,outDegree:s.outgoing.get(e)?.size??0,betweenness:Ft((n.get(e)??0)/2),closeness:Ft(r.get(e))}}function Bt(e,t={}){let s=qt(e,t.kinds),n=vs(e,t.kinds),r=e.nodes(),i=new Map,o=new Map,a={visitedNodes:0,inspectedEdges:0};for(let u of r){t.signal?.throwIfAborted();let l=xs(u,s,a);o.set(u,Is(l,r.length)),Es(l,u,i)}let c=0;for(let u of s.values())c+=u.length;let d=r.map(u=>Ts(u,s,n,i,o)).sort((u,l)=>l.betweenness-u.betweenness||l.degree-u.degree||u.id.localeCompare(l.id));return{value:{nodeCount:r.length,edgeCount:c/2,rows:d},meta:{visitedNodes:a.visitedNodes,inspectedEdges:a.inspectedEdges,truncated:!1}}}function Ss(e,t){return e<=t?{source:e,target:t}:{source:t,target:e}}function Cs(e,t,s){let r=t.get(e.node)[e.neighborIndex];if(e.neighborIndex+=1,s.inspectedEdges+=1,r!==e.parent){if(s.discovery.has(r)){s.low.set(e.node,Math.min(s.low.get(e.node),s.discovery.get(r)));return}return e.children+=1,s.discovery.set(r,s.timer),s.low.set(r,s.timer),s.timer+=1,{node:r,parent:e.node,neighborIndex:0,children:0}}}function Rs(e,t,s){if(e.parent===null){e.children>1&&s.articulation.add(e.node);return}let n=e.parent,r=s.low.get(e.node);s.low.set(n,Math.min(s.low.get(n),r)),n!==t&&r>=s.discovery.get(n)&&s.articulation.add(n),r>s.discovery.get(n)&&s.bridges.push(Ss(n,e.node))}function Ds(e,t,s,n){s.discovery.set(e,s.timer),s.low.set(e,s.timer),s.timer+=1;let r=[{node:e,parent:null,neighborIndex:0,children:0}];for(;r.length>0;){n?.throwIfAborted();let i=r.at(-1);if(i.neighborIndex<t.get(i.node).length){let o=Cs(i,t,s);o!==void 0&&r.push(o)}else Rs(i,e,s),r.pop()}}function zt(e,t={}){let s=qt(e,t.kinds),n={discovery:new Map,low:new Map,timer:0,articulation:new Set,bridges:[],inspectedEdges:0};for(let r of e.nodes())n.discovery.has(r)||Ds(r,s,n,t.signal);return{value:{articulationPoints:[...n.articulation].sort(),bridges:n.bridges.sort((r,i)=>r.source.localeCompare(i.source)||r.target.localeCompare(i.target))},meta:{visitedNodes:n.discovery.size,inspectedEdges:n.inspectedEdges,truncated:!1}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="f155ac72-64eb-5316-b016-954abd48c0e7")}catch{}})();function Os(e){let t=e.registry(),s=new Map,n=new Set;for(let r of e.edges()){let i=t.require(r.kind);if(!i.ordering)continue;let{predecessor:o,successor:a}=me(r,i);if(n.add(o),n.add(a),o===a)continue;let c=s.get(o);c===void 0?s.set(o,new Set([a])):c.add(a)}return{forward:s,participants:n}}function Ls(e,t,s,n){if(e===void 0)return n;let r=n;for(let i of e)t.has(i)&&(r=Math.min(r,s.get(i)));return r}function Ns(e,t,s){let n=s-t;return{id:e,earliestStart:t,earliestFinish:t+1,latestStart:s,latestFinish:s+1,slack:n,critical:n===0}}function As(e,t,s,n,r){let i=new Map;for(let o=e.length-1;o>=0;o-=1){let a=e[o],c=Ls(t.forward.get(a),n,i,r);i.set(a,c-1)}return e.map(o=>Ns(o,s[o],i.get(o))).sort((o,a)=>o.slack-a.slack||o.earliestStart-a.earliestStart||o.id.localeCompare(a.id))}function Ut(e,t={}){t.signal?.throwIfAborted();let s=le(e,{registry:e.registry()}),n=Os(e),r=new Set(s.order),i=s.order.filter(d=>n.participants.has(d)),o=i.reduce((d,u)=>Math.max(d,s.depth[u]+1),0),a=As(i,n,s.depth,r,o),c=a.length>0;return{exact:!0,acyclic:s.acyclic,makespan:o,scheduledCount:a.length,criticalPath:c?s.criticalPath:[],criticalPathLength:c?s.criticalPathLength:0,cycles:s.cycles,rows:a,provenance:{algorithm:"critical-path-method",edgeFamily:"ordering",weighting:"unit"}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="996cfe8f-1b9b-534e-9e22-ede6f76d7cac")}catch{}})();var Ms=25,$s=new Set(["discovered_from","incident_from","supersedes","verifies"]);function Ke(e){return $s.has(e)}var Kt={error:0,warning:1,info:2};function ze(e,t,s,n,r,i,o){let a=[...r].sort((c,d)=>c.localeCompare(d));return{code:e,severity:t,policy:s,message:n(a.length),count:a.length,sample:a.slice(0,i),sample_truncated:a.length>i,remediation:o}}function Ps(e){let t=e.graph.registry(),s=new Map;for(let n of e.graph.edges()){let r=t.require(n.kind);if(!r.ordering)continue;let[i,o]=(r.precedence??"source_before_target")==="target_before_source"?[n.target,n.source]:[n.source,n.target],a=s.get(i);a?a.push(o):s.set(i,[o])}for(let n of s.values())n.sort((r,i)=>r.localeCompare(i));return s}function Vt(e,t){t.indexes.set(e,t.nextIndex),t.lowLinks.set(e,t.nextIndex),t.nextIndex+=1,t.stack.push(e),t.onStack.add(e)}function js(e,t,s,n){let r=s.get(e.node)??[];if(e.neighborIndex>=r.length)return!1;let i=r[e.neighborIndex];return e.neighborIndex+=1,n.indexes.has(i)?n.onStack.has(i)&&n.lowLinks.set(e.node,Math.min(n.lowLinks.get(e.node),n.indexes.get(i))):(Vt(i,n),t.push({node:i,neighborIndex:0})),!0}function Fs(e,t,s,n){t.pop();let r=t.at(-1);if(r&&n.lowLinks.set(r.node,Math.min(n.lowLinks.get(r.node),n.lowLinks.get(e.node))),n.lowLinks.get(e.node)!==n.indexes.get(e.node))return;let i=[];for(;;){let o=n.stack.pop();if(n.onStack.delete(o),i.push(o),o===e.node)break}(i.length>1||i.length===1&&s.get(i[0])?.includes(i[0]))&&n.components.push(i.sort((o,a)=>o.localeCompare(a)))}function We(e){let t={indexes:new Map,lowLinks:new Map,onStack:new Set,stack:[],components:[],nextIndex:0},s=[...e.keys()].sort((n,r)=>n.localeCompare(r));for(let n of s){if(t.indexes.has(n))continue;let r=[{node:n,neighborIndex:0}];for(Vt(n,t);r.length>0;){let i=r.at(-1);js(i,r,e,t)||Fs(i,r,e,t)}}return t.components.sort((n,r)=>n[0].localeCompare(r[0]))}function qe(e){return`${e.holder_id} -> ${e.target_id} (${e.kind})`}function E(e,t,s,n,r,i,o,a){t.length!==0&&e.push(ze(n,r,i,o,t,s,a))}function Gs(e,t,s){let n=[],r=[...e.dangling.active,...e.dangling.legacy_terminal].filter(i=>!i.no_active_blocker_sentinel);return E(n,r.filter(i=>!t(i.holder_status)).map(qe),s,"missing_reference_active","error","Active items must not reference absent targets; missing prerequisites distort scheduling.",i=>`${i} active dangling reference(s) to absent items`,"Restore or re-create the referenced item, or remove/retype the reference on the holder."),E(n,r.filter(i=>t(i.holder_status)).map(qe),s,"missing_reference_terminal","info","Terminal items may retain historical references, but absent targets remain unexplainable context.",i=>`${i} terminal dangling reference(s) to absent items`,"Leave as history debt or clean up in a dedicated changelog-safe closed-item batch."),E(n,e.dangling.no_active_blocker_sentinels.map(qe),s,"legacy_no_blocker_sentinel","info","The pre-structured-dependency no-active-blocker sentinel is retired; real edges carry blocker state.",i=>`${i} legacy no-active-blocker sentinel reference(s)`,"Delete the sentinel reference; blocker state is derived from blocked_by edges."),n}function Ue(e,t){let s=t.get(e);return s?!s.terminal:!0}function qs(e,t,s,n){let r=[],i=Ps(e);for(let c of We(i)){let d=c.some(u=>Ue(u,t));r.push(d?ze("ordering_cycle","error","Order-bearing relationship kinds must stay acyclic; a cycle makes every member unschedulable.",u=>`execution-order cycle across ${u} item(s)`,c,n,"Remove or retype one ordering edge inside the cycle, or split the work so precedence is linear."):ze("legacy_ordering_cycle","info","Ordering cycles between exclusively terminal items are historical contradictions with no scheduling effect.",u=>`terminal-only execution-order cycle across ${u} item(s)`,c,n,"Leave as history debt, or clean up in a dedicated changelog-safe closed-item batch; never repair closed items ad hoc."))}let o=new Map;for(let[c,d]of i)for(let u of d){let l=o.get(u);l?l.push(c):o.set(u,[c])}let a=[...t.values()].filter(c=>!c.missing&&!c.terminal&&s(c.status)&&!(o.get(c.id)??[]).some(d=>{let u=t.get(d);return u===void 0||!u.terminal})).map(c=>c.id);return E(r,a,n,"stale_lifecycle_block","warning","A blocked lifecycle status must be backed by at least one open ordering predecessor.",c=>`${c} status-blocked item(s) with no open blocker edge`,'Add a local blocker edge, declare an external blocker with --dep "id=<external-ref>,kind=blocked_by,source_kind=external", or move the item back to an active status.'),r}function xe(e){let t=e.edges.map(s=>s.kind).sort((s,n)=>s.localeCompare(n));return`${e.from} -> ${e.to} (${t.join(" + ")})`}function Ve(e){let t=e.graph.registry(),s=new Map;for(let r of e.graph.edges()){let i=t.require(r.kind);if(!we(i))continue;let o=Ge(r,i);if(o.from===o.to)continue;let a=`${ke(i)}::${o.from}::${o.to}`,c=s.get(a);c?c.edges.push(r):s.set(a,{...o,edges:[r]})}let n=[...s.values()].filter(r=>r.edges.length>=2);for(let r of n)r.edges.sort((i,o)=>i.kind.localeCompare(o.kind));return n.sort((r,i)=>r.from.localeCompare(i.from)||r.to.localeCompare(i.to))}function Bs(e,t,s){let n=[],r=[];for(let o of Ve(e))(Ue(o.from,t)||Ue(o.to,t)?n:r).push(xe(o));let i=[];return E(i,n,s,"duplicate_edge","info","One semantic relationship should be stored once; parallel same-family spellings (reciprocal inverse pairs included) add no information and skew degree metrics.",o=>`${o} duplicated relationship(s) between active endpoints`,"Remove all but one stored spelling of the relationship; keep the canonical direction the holder declared first."),E(i,r,s,"legacy_duplicate_edge","info","Duplicated spellings between exclusively terminal items are historical noise with no scheduling effect.",o=>`${o} duplicated relationship(s) between terminal endpoints`,"Leave as history debt or clean up in a dedicated changelog-safe closed-item batch."),i}function zs(e,t){let s=[],n=[];for(let i of e.duplicateRows??[])(i.legacy_terminal?n:s).push(`${i.holder_id} -> ${i.target_id} (${i.kind} x${i.occurrences})`);let r=[];return E(r,s,t,"duplicate_dependency_row","warning","One dependency row must be stored once per holder; identical repeated rows are a storage-layer defect invisible to the assembled graph.",i=>`${i} exactly duplicated stored dependency row(s) on active holder(s)`,"Remove the repeated rows so the dependency is stored exactly once; graph semantics are unchanged."),E(r,n,t,"legacy_duplicate_dependency_row","info","Identical repeated dependency rows on terminal holders are historical storage noise with no scheduling effect.",i=>`${i} exactly duplicated stored dependency row(s) on terminal holder(s)`,"Leave as history debt or clean up in a dedicated changelog-safe closed-item batch."),r}function Us(e,t,s,n,r){e.active+=1;let i=t.type??"(untyped)",o=e.byType.get(i);o||(o={active:0,isolated:0,degree_leq_one:0},e.byType.set(i,o)),o.active+=1,!(s>1)&&(e.degreeLeqOne+=1,o.degree_leq_one+=1,s===0&&(e.isolated+=1,o.isolated+=1),!(n.has(t.id.toLowerCase())||r.has(i.toLowerCase()))&&(s===0?e.isolates.push(t.id):e.sparse.push(t.id)))}function Ks(e,t,s,n,r,i){let o={active:0,missing:0,isolated:0,degreeLeqOne:0,isolates:[],sparse:[],byType:new Map};for(let p of e.graph.nodes()){let h=t.get(p);if(h){if(h.missing){o.missing+=1;continue}h.terminal||Us(o,h,e.graph.incidentEdges(p).length,s,n)}}let{isolates:a,sparse:c}=o,d=[];E(d,a,r,"isolated_active_node","warning","Active work should be reachable from the graph unless explicitly declared a valid isolate.",p=>`${p} active item(s) with no relationships`,"Link the item to its parent, prerequisite, or origin \u2014 or register it as an exempt isolate."),E(d,c,r,"sparse_active_node","info","Active items with a single edge often miss an honest semantic partner; sparse is not automatically defective.",p=>`${p} active item(s) with exactly one relationship`,"Investigate for an honest second edge (story->task, defect family, cross-epic complement); do not fabricate one.");let u=e.graph.edges().length,l=Object.fromEntries(Object.entries(i).sort(([p],[h])=>p.localeCompare(h))),f=Object.entries(l).reduce((p,[h,g])=>p+(Ke(h)?g:0),0);return{findings:d,profile:{nodes:e.graph.nodes().length,edges:u,edge_basis:"deduplicated_directed",edges_by_kind:l,edge_share_by_kind:Object.fromEntries(Object.entries(l).map(([p,h])=>[p,h/u])),semantic_edges:f,semantic_edge_share:u===0?0:f/u,active_nodes:o.active,missing_nodes:o.missing,isolated_active_nodes:o.isolated,degree_leq_one_active_nodes:o.degreeLeqOne,coverage_by_type:Object.fromEntries([...o.byType.entries()].sort(([p],[h])=>p<h?-1:1))}}}function Ee(e,t={}){let s=t.isTerminal??(l=>l==="closed"||l==="canceled"),n=t.isBlocked??(l=>l==="blocked"),r=t.maxSampleSize??Ms;if(!Number.isInteger(r)||r<1)throw new TypeError(`Invalid audit sample bound: ${String(t.maxSampleSize)}`);let i=new Set((t.exemptIsolates??[]).filter(l=>typeof l=="string").map(l=>l.trim().toLowerCase())),o=new Set((t.isolateExemptTypes??[]).filter(l=>typeof l=="string").map(l=>l.trim().toLowerCase())),a=new Map(e.details.map(l=>[l.id,{id:l.id,status:l.status,missing:e.missingIdSet.has(l.id.toLowerCase()),terminal:s(l.status),...l.type===void 0?{}:{type:l.type}}]));t.signal?.throwIfAborted();let c={};for(let l of e.graph.edges())c[l.kind]=(c[l.kind]??0)+1;let d=Gs(e,s,r);t.signal?.throwIfAborted(),d.push(...qs(e,a,n,r)),t.signal?.throwIfAborted(),d.push(...Bs(e,a,r),...zs(e,r)),t.signal?.throwIfAborted();let u=Ks(e,a,i,o,r,c);return d.push(...u.findings),d.sort((l,f)=>Kt[l.severity]-Kt[f.severity]||l.code.localeCompare(f.code)||l.sample[0].localeCompare(f.sample[0])),{findings:d,profile:u.profile}}function Be(e,t){let s=[...new Set([...Object.keys(e),...Object.keys(t)])].sort(),n={};for(let r of s){let i=(t[r]??0)-(e[r]??0);i!==0&&(n[r]=i)}return n}function Wt(e){return e.profile.coverage_by_type??{}}function Ht(e,t){let s={},n=Wt(e),r=Wt(t),i=[...new Set([...Object.keys(n),...Object.keys(r)])].sort();for(let f of i){let p=Object.assign({active:0,isolated:0,degree_leq_one:0},n[f]),h=Object.assign({active:0,isolated:0,degree_leq_one:0},r[f]),g={active:h.active-p.active,isolated:h.isolated-p.isolated,degree_leq_one:h.degree_leq_one-p.degree_leq_one};Object.values(g).some(m=>m!==0)&&(s[f]=g)}let{edge_share_by_kind:o={},semantic_edges:a=0,semantic_edge_share:c=0}=e.profile,{edge_share_by_kind:d={},semantic_edges:u=0,semantic_edge_share:l=0}=t.profile;return{baseline_saved_at:e.saved_at,same_snapshot:e.fingerprint===t.fingerprint,affected_subjects_by_code:Be(e.affected_subjects_by_code,t.affected_subjects_by_code),profile:{nodes:t.profile.nodes-e.profile.nodes,edges:t.profile.edges-e.profile.edges,active_nodes:t.profile.active_nodes-e.profile.active_nodes,missing_nodes:t.profile.missing_nodes-e.profile.missing_nodes,isolated_active_nodes:t.profile.isolated_active_nodes-e.profile.isolated_active_nodes,degree_leq_one_active_nodes:t.profile.degree_leq_one_active_nodes-e.profile.degree_leq_one_active_nodes,edges_by_kind:Be(e.profile.edges_by_kind,t.profile.edges_by_kind),edge_share_by_kind:Be(o,d),semantic_edges:u-a,semantic_edge_share:l-c,coverage_by_type:s}}}import Xt from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="4cb399d6-7311-5e2d-a8d2-e0140530ec72")}catch{}})();var Yt=1,He=500,Ws=64,Vs="graph-durable-cache";function Qt(e){return re(e,Vs,30,`graph-cache:${process.pid}`,!1,!1,3e3)}function K(e){return Xt.join(e,"runtime","graph-cache.json")}function Zt(e){return Xt.join(e,"runtime","graph-audit-baseline.json")}function Je(e){if(e!==null)try{let t=JSON.parse(e);return typeof t!="object"||t===null||t.version!==Yt||typeof t.fingerprint!="string"||typeof t.saved_at!="string"||typeof t.results!="object"||t.results===null||Array.isArray(t.results)?void 0:t}catch{return}}async function Xe(e,t){let s=await F(K(e)),n=Je(s),r=n?.fingerprint===t;return{exists:s!==null,fresh:r,results:r?n.results:{}}}async function Ye(e,t,s,n,r){let i=await Qt(e);try{let o=Je(await F(K(e))),a=o?.fingerprint===t?o.results:{};delete a[n],a[n]=r;let c=Object.keys(a);for(let d of c.slice(0,Math.max(0,c.length-Ws)))delete a[d];await G(K(e),JSON.stringify({version:Yt,fingerprint:t,saved_at:new Date().toISOString(),results:a})),s.results=a}finally{await i()}}async function Qe(e){let t=await Qt(e);try{await at(K(e))}finally{await t()}}async function en(e,t){let s=K(e),n=await F(s),r=Je(n);return r===void 0?{exists:n!==null,fresh:!1,entry_count:0}:{exists:!0,fresh:r.fingerprint===t,entry_count:Object.keys(r.results).length,fingerprint:r.fingerprint.slice(0,12),saved_at:r.saved_at,bytes:Buffer.byteLength(n,"utf8")}}function Ze(e,t){return t||e>=He}function Jt(e){return M(e)&&Object.values(e).every(Ie)}function M(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Ie(e){return Number.isInteger(e)&&Number(e)>=0}function tn(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0&&e<=1}function Hs(e,t){return e===void 0||t(e)}function Js(e){return M(e)&&Object.values(e).every(tn)}function Xs(e){return M(e)?Object.values(e).every(t=>M(t)&&[t.active,t.isolated,t.degree_leq_one].every(Ie)):!1}function Ys(e,t,s,n,r){let i=[s,n,r],o=i.filter(d=>d!==void 0).length;if(o===0)return{edge_share_by_kind:{},semantic_edges:0,semantic_edge_share:0};if(o!==i.length||!Js(s)||!Ie(n)||!tn(r))return;let a=Object.entries(t);if(a.reduce((d,[,u])=>d+u,0)!==e||Object.keys(s).length!==a.length||a.some(([d,u])=>s[d]!==(e===0?0:u/e)))return;let c=a.reduce((d,[u,l])=>d+(Ke(u)?l:0),0);if(!(n!==c||r!==(e===0?0:c/e)))return{edge_share_by_kind:s,semantic_edges:n,semantic_edge_share:r}}function Qs(e){if(e!==null)try{let t=JSON.parse(e);if(!M(t))return;let s=t,n=s.profile;if(typeof s.saved_at!="string"||typeof s.fingerprint!="string"||!Jt(s.affected_subjects_by_code)||!M(n)||![n.nodes,n.edges,n.active_nodes,n.missing_nodes,n.isolated_active_nodes,n.degree_leq_one_active_nodes].every(Ie)||!Jt(n.edges_by_kind)||!Hs(n.coverage_by_type,Xs))return;let r=Ys(n.edges,n.edges_by_kind,n.edge_share_by_kind,n.semantic_edges,n.semantic_edge_share);if(r===void 0)return;let{coverage_by_type:i={}}=n;return{...s,profile:{...n,...r,coverage_by_type:i}}}catch{return}}async function nn(e){return Qs(await F(Zt(e)))}async function sn(e,t){await G(Zt(e),JSON.stringify(t))}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="9b8e22ad-6268-515d-994e-6b98a062ba93")}catch{}})();var Zs={missing_reference_active:{op:"investigate",confidence:"medium",rationale:"Restore or re-create the referenced item, or remove/retype the reference on the active holder; the correct fix depends on why the target is absent."},missing_reference_terminal:{op:"waive",confidence:"high",rationale:"Terminal-holder reference to an absent item is historical debt; waive it or clean it up only in a dedicated changelog-safe closed-item batch."},legacy_no_blocker_sentinel:{op:"remove",confidence:"high",rationale:"The pre-structured-dependency no-active-blocker sentinel is retired and carries no information; blocker state derives from blocked_by edges."},ordering_cycle:{op:"investigate",confidence:"low",rationale:"Every cycle member is unschedulable until one ordering edge is removed or retyped; the planner never chooses which edge to cut."},legacy_ordering_cycle:{op:"waive",confidence:"high",rationale:"Terminal-only ordering cycles have no scheduling effect; repairing them would mutate closed history (changelog drag)."},duplicate_edge:{op:"remove",confidence:"high",rationale:"Parallel same-family spellings state one relationship twice; remove all but one stored spelling, keeping the holder's canonical direction."},legacy_duplicate_edge:{op:"waive",confidence:"high",rationale:"Duplicated spellings between terminal items are historical noise; waive or batch changelog-safe cleanup."},duplicate_dependency_row:{op:"remove",confidence:"high",rationale:"The identical dependency row is stored more than once on the holder; drop the repeats so the row exists exactly once \u2014 graph semantics are unchanged."},legacy_duplicate_dependency_row:{op:"waive",confidence:"high",rationale:"Repeated identical rows on terminal holders are storage noise; waive or clean up only in a changelog-safe closed-item batch."},stale_lifecycle_block:{op:"investigate",confidence:"medium",rationale:`Add a local ordering edge, declare an external blocker with --dep "id=<external-ref>,kind=blocked_by,source_kind=external", or move the item back to an active status; only the holder's owner knows which is true.`},isolated_active_node:{op:"investigate",confidence:"medium",rationale:"Link the item to its parent, prerequisite, or origin \u2014 or register it as an explicitly exempt isolate; the audit never fabricates an edge."},sparse_active_node:{op:"investigate",confidence:"low",rationale:"Investigate for an honest second edge (story-to-task, defect family, cross-epic complement); sparse is not automatically defective."}};function rn(e){return`${e.source} -${e.kind}-> ${e.target}`}function er(e){let[t,...s]=e.edges;return s.map(n=>({op:"remove",code:"duplicate_edge",subject:rn(n),rationale:"This stored spelling restates the kept canonical edge of the same semantic family; removing it leaves the relationship stated exactly once.",evidence:[`keep: ${rn(t)}`,`group: ${xe(e)}`],confidence:"high"}))}function tr(e,t){if(e.code==="duplicate_edge")return e.sample.flatMap(n=>er(t.get(n)));let s=Zs[e.code];return e.sample.map(n=>({op:s.op,code:e.code,subject:n,rationale:s.rationale,evidence:[e.policy],confidence:s.confidence}))}function on(e,t={}){let{redundancyLimit:s,...n}=t,r=Ee(e,n),i=new Map(Ve(e).map(d=>[xe(d),d])),o=r.findings.flatMap(d=>tr(d,i)),a=r.findings.some(d=>d.sample_truncated);t.signal?.throwIfAborted();let c=ve(e.graph,{limit:s??t.maxSampleSize??25,...t.signal===void 0?{}:{signal:t.signal}});for(let d of c.value)o.push({op:"remove",code:"redundant_edge",subject:`${d.edge.source} -> ${d.edge.target} (${d.edge.kind})`,rationale:"The stored edge is implied by a longer same-family witness path; shortcut edges are sometimes deliberate emphasis, so confirm intent before removing.",evidence:[`witness: ${d.witness.join(" -> ")}`],confidence:"medium"});return a=a||c.meta.truncated,{steps:o,report:r,truncated:a,cost:{visitedNodes:c.meta.visitedNodes,inspectedEdges:c.meta.inspectedEdges}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ee0547d9-ae0f-5762-8bff-e25f0a3cd4d5")}catch{}})();var nr=["tree","graph","context"],sr=["none","repeated"],rr=["outgoing","incoming","both"],ir=32,or=200,ar=400,cr=16e3;function dr(e){let t=e?.trim().toLowerCase()??"tree";if(nr.includes(t))return t;throw new b(`Invalid --format value "${e}". Use "tree", "graph", or "context".`,y.USAGE)}function I(e,t){if(e===void 0)return;let s=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(s)||s<1)throw new b(`Invalid --${t} value "${e}". Use a positive integer.`,y.USAGE);return s}function Te(e){if(e===void 0)return;let t=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(t)||t<0)throw new b(`Invalid --max-depth value "${e}". Use a non-negative integer.`,y.USAGE);return t}function ur(e){let t=e?.trim().toLowerCase()??"none";if(sr.includes(t))return t;throw new b(`Invalid --collapse value "${e}". Use "none" or "repeated".`,y.USAGE)}function tt(e){let t=e?.trim().toLowerCase()??"both";if(rr.includes(t))return t;throw new b(`Invalid --direction value "${e}". Use "outgoing", "incoming", or "both".`,y.USAGE)}function nt(e,t=x()){if(e===void 0)return;let s=(Array.isArray(e)?e:[e]).flatMap(r=>r.split(",")).map(r=>r.trim()).filter(r=>r.length>0);if(s.length===0)return;let n=new Set;for(let r of s){let i=t.resolve(r);if(!i){let o=t.list().map(a=>a.kind).join(", ");throw new b(`Invalid --kind value "${r}". Registered kinds: ${o}.`,y.USAGE)}n.add(i.kind)}return[...n].sort()}function lr(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)}),s=new Map;for(let n of t){let r=`${n.kind.toLowerCase()}::${n.id.toLowerCase()}`;s.has(r)||s.set(r,{id:n.id,kind:n.kind})}return[...s.values()]}function fr(e){return{id:e.id,title:e.title,type:e.type,status:e.status,dependencies:lr(e.dependencies)}}function pr(e){return ee(new TextEncoder().encode(JSON.stringify({...e,dependencies:void 0})).byteLength)}function hr(e,t,s,n,r,i,o,a,c){for(let d of t.dependencies){let u=Math.max(1,Math.ceil(JSON.stringify({from:e.id,to:d.id,kind:d.kind}).length/3));if(a.nodes>=a.nodeLimit){e.truncated=!0,a.reasons.add("node_limit");break}if(a.edges>=a.edgeLimit){e.truncated=!0,a.reasons.add("edge_limit");break}if(a.estimatedTokens+u>=a.tokenBudget){e.truncated=!0,a.reasons.add("token_budget");break}a.edges+=1,a.estimatedTokens+=u,e.dependencies.push(cn(d.id,s,n,r,i,o,a,c+1,d.kind))}}function gr(e,t,s,n,r,i,o,a){return o.estimatedTokens>=o.tokenBudget&&t?.dependencies.length?(e.truncated=!0,o.reasons.add("token_budget"),!0):!t||e.cycle?!0:n!==void 0&&a>=n?(t.dependencies.length>0&&(e.truncated=!0,o.reasons.add("max_depth")),!0):r==="repeated"&&i.has(s)?(e.collapsed=!0,!0):!1}function cn(e,t,s,n,r,i,o,a=0,c){let d=e.trim().toLowerCase(),u=t.get(d),l={id:u?.id??e,title:u?.title,type:u?.type,status:u?.status,via:c,missing:!u,cycle:s.has(d),dependencies:[]};if(o.nodes+=1,o.estimatedTokens+=pr(l),gr(l,u,d,n,r,i,o,a))return l;r==="repeated"&&i.add(d);let f=new Set(s);return f.add(d),hr(l,u,t,f,n,r,i,o,a),l}function an(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 mr(e){let t=new Map,s=new Map,n=[e];for(;n.length>0;){let a=n.pop();t.set(a.id,an(t.get(a.id),{id:a.id,title:a.title,type:a.type,status:a.status,missing:a.missing}));for(let c of a.dependencies){t.set(c.id,an(t.get(c.id),{id:c.id,title:c.title,type:c.type,status:c.status,missing:c.missing}));let d=c.via??"related",u=`${a.id}::${c.id}::${d}`;s.has(u)||s.set(u,{from:a.id,to:c.id,kind:d}),c.cycle||n.push(c)}}let r=[...t.values()].sort((a,c)=>a.id.localeCompare(c.id)),i=[...s.values()].sort((a,c)=>{let d=a.from.localeCompare(c.from);if(d!==0)return d;let u=a.to.localeCompare(c.to);return u!==0?u:a.kind.localeCompare(c.kind)}),o=r.filter(a=>a.missing).map(a=>a.id);return{root_id:e.id,nodes:r,edges:i,missing_ids:o}}function dn(e,t,s){let n=new Set,r=new Set,i=new Set,o=new Set,a=[{id:e,depth:0}],c=0;for(;c<a.length;){let d=a[c++],u=d.id.trim().toLowerCase();n.add(u);let l=t.get(u);if(!l){i.add(u);continue}if(!(s!==void 0&&d.depth>=s)&&!o.has(u)){o.add(u);for(let f of l.dependencies)r.add(`${u}::${f.id.trim().toLowerCase()}::${f.kind}`),a.push({id:f.id,depth:d.depth+1})}}return{node_count:n.size,edge_count:r.size,edge_basis:"deduplicated_directed",missing_count:i.size}}function yr(e,t=x()){let s=Te(e.maxDepth),n=I(e.nodeLimit,"node-limit"),r=I(e.edgeLimit,"edge-limit"),i=I(e.tokenBudget,"token-budget"),o=nt(e.kind,t);return{direction:tt(e.direction),...o===void 0?{}:{kinds:o},...s===void 0?{}:{maxDepth:s},...n===void 0?{}:{nodeLimit:n},...r===void 0?{}:{edgeLimit:r},...i===void 0?{}:{tokenBudget:i},...e.cursor?.trim()?{cursor:e.cursor.trim()}:{}}}function br(e,t,s,n){return Ct(e.graph,t,e.details.map(r=>r.id===t&&n.length>0?{...r,evidence:n}:r),s)}function et(e,t,s,n){for(let r of s.slice(0,n)){let i=r?.trim();i&&e.push(`${t}:${i}`)}}async function _r(e,t,s,n){let r=await ft(e,t,s.id_prefix,s.item_format,n);if(!r)return[];let{document:i}=await pt(r,{schema:s.schema}),o=i.metadata,a=o.files??[],c=o.tests??[],d=o.docs??[],u=[["files",a.length],["tests",c.length],["docs",d.length],["comments",(o.comments??[]).length],["notes",(o.notes??[]).length],["learnings",(o.learnings??[]).length]];if(u.every(([,f])=>f===0))return[];let l=[`linked:${u.map(([f,p])=>`${f}=${p}`).join(",")}`];return et(l,"file",a.map(f=>f.path),3),et(l,"test",c.map(f=>f.command??f.path),2),et(l,"doc",d.map(f=>f.path),2),l}function wr(e){let{canonicalId:t,context:s,missingCount:n,missingReferences:r,referenceLimit:i,summaryOnly:o}=e;return{id:t,format:"context",node_count:s.nodes.length+1,edge_count:s.edges.length,edge_basis:"deduplicated_directed",missing_count:n,missing_scope:"traversal",missing_reference_count:r.length,...o?{}:{missing_references:r.slice(0,i),context:s}}}function kr(e){let{row:t,missingReachableSet:s,packetIds:n,filteredKinds:r,registry:i}=e;if(t.no_active_blocker_sentinel||!s.has(t.target_id.trim().toLowerCase())||!n.has(t.holder_id))return!1;if(r===void 0)return!0;let o=i.resolve(t.kind);return o!==void 0&&(r.has(o.kind)||o.inverse!==void 0&&r.has(o.inverse))}function un(e,t,s){let n;for(;;){let r=ee(new TextEncoder().encode(Oe(De("deps",e),t)).byteLength);if(r===n)return r;s(r),n=r}}function vr(e){return e instanceof TypeError&&e.message.startsWith("Relationship context tokenBudget cannot fit ")}function xr(e){try{return br(e.assembly,e.canonicalId,{...e.contextOptions,...e.internalTokenBudget===void 0?{}:{tokenBudget:e.internalTokenBudget}},e.rootEvidence)}catch(t){if(e.smallestResult!==void 0&&vr(t))return e.smallestResult;throw t}}function Er(e){let{assembly:t,canonicalId:s,contextOptions:n,rootEvidence:r,summaryOnly:i,outputFormat:o,missingCount:a,missingReferences:c}=e,u=n.edgeLimit??40,l=n.tokenBudget,f,p;for(;;){let h=xr({assembly:t,canonicalId:s,contextOptions:n,internalTokenBudget:l,rootEvidence:r,smallestResult:p});if("format"in h)return h;let g=h;f??=g.meta.tokenBudget,l??=f;let m=wr({canonicalId:s,context:g,missingCount:a,missingReferences:c,referenceLimit:u,summaryOnly:i});if(p=m,i||(g.meta.tokenBudget=f,g.meta.usedTokens=un($(m,!1),o,w=>{g.meta.usedTokens=w}),g.meta.usedTokens<=f))return m;if(u>0){u-=1;continue}let _=l,v=_*f/g.meta.usedTokens;l=Math.min(_-1,Math.max(1,Math.floor(v*.9)))}}function Ir(e){let{assembly:t,canonicalId:s,options:n,rootEvidence:r,summaryOnly:i,outputFormat:o}=e,a=yr(n,t.graph.registry()),c=t.graph.closure(s,{direction:a.direction,...a.kinds===void 0?{}:{kinds:a.kinds},maxDepth:a.maxDepth??3}),d=c.value.filter(g=>t.missingIdSet.has(g.toLowerCase())),u=new Set(d.map(g=>g.toLowerCase())),l=t.graph.registry(),f=a.kinds?new Set(a.kinds.map(g=>l.require(g).kind)):void 0,p=new Set([s,...c.value]),h=[...t.dangling.active,...t.dangling.legacy_terminal].filter(g=>kr({row:g,missingReachableSet:u,packetIds:p,filteredKinds:f,registry:l}));return Er({assembly:t,canonicalId:s,contextOptions:a,rootEvidence:r,summaryOnly:i,outputFormat:o,missingCount:d.length,missingReferences:h})}function Tr(e){let t=[e],s;for(;t.length>0;){let n=t.pop();n.dependencies.length>0&&(s=n,t.push(...n.dependencies))}return s?(s.dependencies.pop(),s.truncated=!0,!0):!1}function Sr(e,t,s,n,r,i,o){let a=r??ir,c=I(s.nodeLimit,"node-limit")??or,d=I(s.edgeLimit,"edge-limit")??ar,u=I(s.tokenBudget,"token-budget")??cr,l={nodeLimit:c,edgeLimit:d,tokenBudget:u,nodes:0,edges:0,estimatedTokens:0,reasons:new Set},f=cn(e,n,new Set,a,t==="graph"?"repeated":i,new Set,l),p=dn(e,n,void 0),h;for(;;){let g=mr(f),m=l.reasons.size===0?void 0:{reasons:[...l.reasons].sort(),limits:{max_depth:a,node_limit:c,edge_limit:d,token_budget:u},estimated_tokens:0,total_node_count:p.node_count,total_edge_count:p.edge_count,omitted_node_count:Math.max(0,p.node_count-g.nodes.length),omitted_edge_count:Math.max(0,p.edge_count-g.edges.length)},_={id:e,format:t,node_count:g.nodes.length,edge_count:g.edges.length,edge_basis:"deduplicated_directed",missing_count:g.missing_ids.length,...m?{truncation:m}:{}};if(h=t==="tree"?{..._,tree:f}:{..._,graph:g},(h.truncation===void 0?ee(new TextEncoder().encode(Oe(De("deps",$(h,!1)),o)).byteLength):un($(h,!1),o,w=>{h.truncation.estimated_tokens=w}))<=u)return h;if(!Tr(f))return l.reasons.add("token_budget"),h;l.reasons.add("token_budget")}}function $(e,t,s={}){let n={name:e.format==="tree"?"dependency_tree":e.format==="graph"?"dependency_graph":"relationship_context",restore_with:"--full"};return{...e,legacy_alias_counts:s,projection:{mode:t?"summary":"full",declared_field_groups:[n],included_field_groups:t?[]:[n.name]}}}async function eo(e,t,s){let n=X(process.cwd(),s.path);if(!await H(Y(n)))throw new b(`Tracker is not initialized at ${n}. Run pm init first.`,y.NOT_FOUND);let r=dr(t.format),i=Te(t.maxDepth),o=ur(t.collapse);te(t.summary===!0,t.full===!0,"--summary");let a=t.summary===!0,c=await ie(n),d=J(c,se()),u=await oe(n,c.item_format,d.type_to_folder,void 0,c.schema),l=Z(c.schema),f=new Map(u.map(h=>[h.id.trim().toLowerCase(),fr(h)])),p=mt(u,h=>R(h,l));for(let h of[...p.active,...p.legacy_terminal]){let g=f.get(h.holder_id.trim().toLowerCase()),m=h.kind.trim().toLowerCase();g&&!g.dependencies.some(_=>_.id.trim().toLowerCase()===h.target_id.trim().toLowerCase()&&_.kind===m)&&g.dependencies.push({id:h.target_id,kind:m})}if(!f.has(e.trim().toLowerCase()))throw new b(`Item ${e} not found`,y.NOT_FOUND);if(r==="context"){let h=f.get(e.trim().toLowerCase()).id,g=a?[]:await _r(n,h,c,d.type_to_folder),m=w=>R(w,l),_=N(),v=pe().lookup(n,fe(u,m,_),()=>A(u,m,_));return $(Ir({assembly:v.assembly,canonicalId:h,options:t,rootEvidence:g,summaryOnly:a,outputFormat:s.json===!0?"json":"toon"}),a,v.assembly.legacyAliasCounts)}return a?$({id:e,format:r,...dn(e,f,i)},!0,Object.fromEntries(Object.entries(A(u,h=>R(h,l)).legacyAliasCounts))):$(Sr(e,r,t,f,i,o,s.json===!0?"json":"toon"),!1,Object.fromEntries(Object.entries(A(u,h=>R(h,l)).legacyAliasCounts)))}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="6c8bfb7a-687a-5fbb-b408-ffdbab1187a9")}catch{}})();var hn=new Set(["ancestors","descendants","predecessors","successors","paths","impact","dominators"]),S=10;function ln(e,t,s){return{...e,projection:{mode:t?"summary":"full",declared_field_groups:s===void 0?[]:[{name:s,restore_with:"--full"}],included_field_groups:s===void 0||t?[]:[s]}}}function fn(e){return e===void 0?[]:(Array.isArray(e)?e:[e]).flatMap(t=>t.split(",")).map(t=>t.trim()).filter(t=>t.length>0)}function Cr(e,t,s){let n=e.trim().toLowerCase();if(!Re.includes(n))throw ht({command_path:"graph",token:n||"<empty>",allowed:Re});let r=n;if(hn.has(r)&&!t?.trim())throw new b(`graph ${r} requires an item id.`,y.USAGE);if(r==="paths"&&!s?.trim())throw new b("graph paths requires a source and a target item id.",y.USAGE);return r}function st(e){throw e instanceof TypeError?new b(e.message,y.USAGE):e}function rt(e){return{truncated:e.truncated,cost:{visited_nodes:e.visitedNodes,inspected_edges:e.inspectedEdges}}}function pn(e,t){let s=t.trim().toLowerCase();for(let n of e.details)if(n.id.trim().toLowerCase()===s&&!e.missingIdSet.has(n.id.toLowerCase()))return n.id;throw new b(`Item ${t} not found`,y.NOT_FOUND)}function Rr(e,t,s){let n={ancestors:Ot,descendants:Lt,predecessors:Nt,successors:At}[e],r;try{r=n(s.assembly.graph,t,{...s.kinds===void 0?{}:{kinds:s.kinds},...s.maxDepth===void 0?{}:{maxDepth:s.maxDepth},...s.limit===void 0?{}:{limit:s.limit},...s.after===void 0?{}:{after:s.after}})}catch(o){st(o)}let i=rt(r.meta);return{subcommand:e,root:t,count:r.value.length,...i,...r.meta.nextCursor===void 0?{}:{next_cursor:r.meta.nextCursor},...s.summary?{}:{ids:r.value}}}function Dr(e,t,s){let n=Mt(s.assembly.graph,e,t,{direction:s.direction,...s.kinds===void 0?{}:{kinds:s.kinds},...s.maxDepth===void 0?{}:{maxDepth:s.maxDepth},...s.maxPaths===void 0?{}:{maxPaths:s.maxPaths}});return{subcommand:"paths",root:e,target:t,direction:s.direction,count:n.value.length,...rt(n.meta),...s.summary?{}:{paths:n.value.map(r=>({nodes:r.nodes,kinds:r.edges.map(i=>i.kind),length:r.length}))}}}function Or(e,t){let s;try{s=Et(t.assembly.graph,e,{direction:t.direction,...t.kinds===void 0?{}:{kinds:t.kinds},...t.maxDepth===void 0?{}:{maxDepth:t.maxDepth},...t.unbounded?{}:{limit:t.limit??S},...t.after===void 0?{}:{after:t.after}})}catch(n){st(n)}return{subcommand:"impact",root:e,direction:t.direction,count:s.affected.length,truncated:s.truncated,...s.nextCursor===void 0?{}:{next_cursor:s.nextCursor},cost:{visited_nodes:s.cost.visitedNodes,inspected_edges:s.cost.inspectedEdges},...t.summary?{}:{affected:s.affected}}}function Lr(e){let t=e.assembly.graph,s=e.limit??S,n=le(t,{registry:t.registry()}),r=It(t);return{subcommand:"analyze",node_count:t.nodes().length,edge_count:t.edges().length,edge_basis:"deduplicated_directed",sample_limit:s,execution:{acyclic:n.acyclic,ordered_node_count:n.order.length,layer_count:n.layers.length,frontier_count:n.frontier.length,critical_path_length:n.criticalPathLength,cycle_count:n.cycles.length,...e.summary?{}:{frontier:n.frontier.slice(0,s),critical_path:n.criticalPath.slice(0,s),cycles:n.cycles.slice(0,s)}},knowledge:{component_count:r.components.length,largest_component_size:r.components[0]?.length??0,orphan_count:r.orphans.length,...e.summary?{}:{orphans:r.orphans.slice(0,s),hubs:r.hubs.slice(0,s)}}}}function Nr(e,t){let s=Ee(e.assembly,{isTerminal:t,...e.sample===void 0?{}:{maxSampleSize:e.sample},...e.exemptIsolates.length===0?{}:{exemptIsolates:e.exemptIsolates},...e.exemptIsolateTypes.length===0?{}:{isolateExemptTypes:e.exemptIsolateTypes}}),n={},r={},i={},o={};for(let a of s.findings)n[a.severity]=(n[a.severity]??0)+1,r[a.code]=(r[a.code]??0)+1,i[a.severity]=(i[a.severity]??0)+a.count,o[a.code]=(o[a.code]??0)+a.count;return{subcommand:"audit",finding_count:s.findings.length,findings_by_severity:n,findings_by_code:r,affected_subjects_by_severity:i,affected_subjects_by_code:o,profile:s.profile,legacy_alias_counts:e.assembly.legacyAliasCounts,...e.summary?{}:{findings:s.findings}}}function Ar(e){let t=e.limit??S,s={};e.kinds!==void 0&&(s.kinds=e.kinds);let n=Pt(e.assembly.graph,s),r=n.value;return{subcommand:"communities",community_count:r.communities.length,largest_community_size:r.communities[0]?.size??0,iterations:r.iterations,converged:r.converged,truncated:!r.converged||r.communities.length>t,cost:{visited_nodes:n.meta.visitedNodes,inspected_edges:n.meta.inspectedEdges},...e.summary?{}:{communities:r.communities.slice(0,t).map(i=>({representative:i.representative,size:i.size,members:i.members.slice(0,t)}))}}}function Mr(e){let t;try{t=ve(e.assembly.graph,{...e.kinds===void 0?{}:{kinds:e.kinds},...e.maxDepth===void 0?{}:{maxDepth:e.maxDepth},...e.limit===void 0?{}:{limit:e.limit}})}catch(s){st(s)}return{subcommand:"redundancy",redundant_count:t.value.length,...rt(t.meta),...e.summary?{}:{redundant:t.value.map(s=>({source:s.edge.source,target:s.edge.target,kind:s.edge.kind,witness:s.witness}))}}}function $r(e,t){let s=t.limit??S,n=jt(t.assembly.graph,e,{direction:t.direction,...t.kinds===void 0?{}:{kinds:t.kinds},...t.maxDepth===void 0?{}:{maxDepth:t.maxDepth}}),r=n.value.rows.filter(i=>i.dominatedCount>0);return{subcommand:"dominators",root:e,direction:t.direction,reachable_count:n.value.reachableCount,bottleneck_count:r.length,truncated:n.meta.truncated||r.length>s,cost:{visited_nodes:n.meta.visitedNodes,inspected_edges:n.meta.inspectedEdges},...t.summary?{}:{bottlenecks:r.slice(0,s).map(i=>({id:i.id,idom:i.idom,dominated_count:i.dominatedCount}))}}}function Pr(e){let t=e.limit??S,s=Ut(e.assembly.graph),n=s.rows.filter(r=>r.critical).length;return{subcommand:"slack",acyclic:s.acyclic,makespan:s.makespan,scheduled_count:s.scheduledCount,critical_count:n,critical_path_length:s.criticalPathLength,cycle_count:s.cycles.length,truncated:s.rows.length>t,...e.summary?{}:{critical_path:s.criticalPath,rows:s.rows.slice(0,t).map(r=>({id:r.id,earliest_start:r.earliestStart,latest_start:r.latestStart,slack:r.slack,critical:r.critical}))}}}function jr(e){let t=e.limit??S,s=Bt(e.assembly.graph,e.kinds===void 0?{}:{kinds:e.kinds}),n=s.value;return{subcommand:"centrality",node_count:n.nodeCount,edge_count:n.edgeCount,edge_basis:"simple_undirected",truncated:n.rows.length>t,cost:{visited_nodes:s.meta.visitedNodes,inspected_edges:s.meta.inspectedEdges},...e.summary?{}:{rows:n.rows.slice(0,t).map(r=>({id:r.id,degree:r.degree,in_degree:r.inDegree,out_degree:r.outDegree,betweenness:r.betweenness,closeness:r.closeness}))}}}function Fr(e){let t=e.limit??S,s=zt(e.assembly.graph,e.kinds===void 0?{}:{kinds:e.kinds}),{articulationPoints:n,bridges:r}=s.value;return{subcommand:"articulation",articulation_count:n.length,bridge_count:r.length,truncated:n.length>t||r.length>t,cost:{visited_nodes:s.meta.visitedNodes,inspected_edges:s.meta.inspectedEdges},...e.summary?{}:{articulation_points:n.slice(0,t),bridges:r.slice(0,t)}}}function Gr(e,t){let s=e.limit??S,n=on(e.assembly,{isTerminal:t,redundancyLimit:s,...e.sample===void 0?{}:{maxSampleSize:e.sample},...e.exemptIsolates.length===0?{}:{exemptIsolates:e.exemptIsolates},...e.exemptIsolateTypes.length===0?{}:{isolateExemptTypes:e.exemptIsolateTypes}}),r={},i={};for(let o of n.steps)r[o.op]=(r[o.op]??0)+1,i[o.code]=(i[o.code]??0)+1;return{subcommand:"plan",step_count:n.steps.length,steps_by_op:r,steps_by_code:i,finding_count:n.report.findings.length,truncated:n.truncated||n.steps.length>s,cost:{visited_nodes:n.cost.visitedNodes,inspected_edges:n.cost.inspectedEdges},...e.summary?{}:{steps:n.steps.slice(0,s)}}}function gn(e,t,s,n){return JSON.stringify({subcommand:e,root:t??null,target:s??null,kinds:n.kinds??null,maxDepth:n.maxDepth??null,limit:n.limit??null,after:n.after??null,direction:n.direction,maxPaths:n.maxPaths??null,sample:n.sample??null,exemptIsolates:[...new Set(n.exemptIsolates.map(r=>r.toLowerCase()))].sort(),exemptIsolateTypes:[...new Set(n.exemptIsolateTypes.map(r=>r.toLowerCase()))].sort(),summary:n.summary,unbounded:n.unbounded})}function mn(e,t,s,n,r){return e==="analyze"?Lr(n):e==="audit"?Nr(n,r):e==="plan"?Gr(n,r):e==="communities"?Ar(n):e==="redundancy"?Mr(n):e==="dominators"?$r(t,n):e==="slack"?Pr(n):e==="centrality"?jr(n):e==="articulation"?Fr(n):e==="paths"?Dr(t,s,n):e==="impact"?Or(t,n):Rr(e,t,n)}function qr(e,t){if(e!=="index"&&(t.rebuild===!0||t.clear===!0))throw new b("--rebuild and --clear apply only to graph index.",y.USAGE);if(e!=="audit"&&t.saveBaseline===!0)throw new b("--save-baseline applies only to graph audit.",y.USAGE);if(e==="slack"&&t.kind!==void 0)throw new b("graph slack analyzes every ordering kind; --kind is not supported.",y.USAGE);if(t.rebuild===!0&&t.clear===!0)throw new b("graph index accepts either --rebuild or --clear, not both.",y.USAGE);if(e==="impact"&&t.full===!0&&t.limit!==void 0)throw new b("graph impact accepts either --full or --limit, not both.",y.USAGE)}async function Br(e,t,s,n,r,i){let o="status";if(i.clear===!0&&(await Qe(e),o="cleared"),i.rebuild===!0){await Qe(e);let c=await Xe(e,t),d={assembly:s.assembly,direction:"both",exemptIsolates:[],exemptIsolateTypes:[],saveBaseline:!1,summary:!0,unbounded:!1};for(let u of["analyze","audit"])await Ye(e,t,c,gn(u,void 0,void 0,d),mn(u,void 0,void 0,d,r));o="rebuilt"}let a=await en(e,t);return{subcommand:"index",action:o,state:a.exists?a.fresh?"fresh":"stale":"absent",entry_count:a.entry_count,item_count:n,min_items_threshold:He,persist_enabled:Ze(n,a.exists),current_fingerprint:t.slice(0,12),...a.saved_at===void 0?{}:{saved_at:a.saved_at},...a.bytes===void 0?{}:{bytes:a.bytes}}}async function zr(e,t,s,n){let r={saved_at:new Date().toISOString(),fingerprint:t,affected_subjects_by_code:s.affected_subjects_by_code,profile:s.profile},i=await nn(e);return n&&await sn(e,r),i===void 0?s:{...s,baseline:Ht(i,r)}}async function Ur(e,t,s,n,r){try{await Ye(e,t,s,n,r)}catch{}}async function So(e,t,s,n,r){let i=Cr(e,t,s);te(n.summary===!0,n.full===!0,"--summary");let o=X(process.cwd(),r.path);if(!await H(Y(o)))throw new b(`Tracker is not initialized at ${o}. Run pm init first.`,y.NOT_FOUND);let a=await ie(o),c=J(a,se()),d=await oe(o,a.item_format,c.type_to_folder,void 0,a.schema),u=Z(a.schema),l=j=>R(j,u);qr(i,n);let f=N(),p=nt(n.kind,f),h=pe().lookup(o,fe(d,l,f),()=>A(d,l,f)),g={assembly:h.assembly,...p===void 0?{}:{kinds:p},maxDepth:Te(n.maxDepth),limit:I(n.limit,"limit"),after:n.after?.trim()||void 0,direction:tt(n.direction),maxPaths:I(n.maxPaths,"max-paths"),sample:I(n.sample,"sample"),exemptIsolates:fn(n.exemptIsolate),exemptIsolateTypes:fn(n.exemptIsolateType),saveBaseline:n.saveBaseline===!0,summary:n.summary===!0,unbounded:n.full===!0};if(i==="index")return ln(await Br(o,h.fingerprint,g,d.length,l,n),!1);let m=hn.has(i)?pn(g.assembly,t):void 0,_=i==="paths"?pn(g.assembly,s):void 0,v=gn(i,m,_,g),w=await Xe(o,h.fingerprint),C=w.results[v],k=h.memoize(v,()=>C!==void 0?structuredClone(C):mn(i,m,_,g,l)),W=Ze(d.length,w.exists);!k.reused&&C===void 0&&W&&await Ur(o,h.fingerprint,w,v,k.value);let P=k.value.subcommand==="audit"?await zr(o,h.fingerprint,k.value,g.saveBaseline):k.value;return P.cache={fingerprint:h.fingerprint.slice(0,12),assembly:h.assemblyReused?"hit":"miss",result:k.reused?"hit":"miss",durable:C!==void 0?"hit":W?"miss":"off"},ln(P,g.summary,"result_rows")}(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]="4198a3b2-2541-50eb-bec5-93ac58601f40")}catch{}})();function yn(e){return[...e].sort().join("\0")}function Kr(e,t,s){let n=e.successors.get(t);n?n.push(s):e.successors.set(t,[s]);let r=e.predecessors.get(s);r?r.push(t):e.predecessors.set(s,[t])}function bn(e,t,s,n,r){let i=t.resolve(r);if(i?.ordering!==!0)return;let o=gt(n),a=o===void 0?void 0:e.canonicalIds.get(o.toLowerCase());if(a===void 0)return;let c=(i.precedence??"source_before_target")==="source_before_target";Kr(e,c?s:a,c?a:s)}function Wr(e,t){let s={successors:new Map,predecessors:new Map,canonicalIds:new Map},n=e.filter(r=>typeof r?.id=="string"&&r.id.trim().length>0);for(let r of n){let i=r.id.trim();s.canonicalIds.set(i.toLowerCase(),i)}for(let r of n){let i=r.id.trim();bn(s,t,i,r.blocked_by,"blocked_by");for(let o of r.dependencies??[])typeof o!="object"||o===null||bn(s,t,i,o.id,typeof o.kind=="string"?o.kind:"related")}for(let r of[s.successors,s.predecessors])for(let i of r.values())i.sort();return s}function Vr(e,t){let s=new Set([t]),n=[t];for(;n.length>0;){let r=n.pop();for(let i of[e.successors,e.predecessors])for(let o of i.get(r)??[])s.has(o)||(s.add(o),n.push(o))}return s}function Hr(e,t){let s=new Map;for(let n of t){let r=(e.successors.get(n)??[]).filter(i=>t.has(i));r.length>0&&s.set(n,r)}return s}function _n(e,t,s){let n=Wr(e,t),r=n.canonicalIds.get(s.trim().toLowerCase());if(r===void 0)return{cycles:[],successors:new Map,canonical:s};let i=Hr(n,Vr(n,r));return{cycles:We(i).filter(o=>o.includes(r)),successors:i,canonical:r}}function Jr(e,t,s){let n=new Set(t),r=n.has(s)?s:t[0];if(e.get(r)?.includes(r))return[r,r];for(let i of e.get(r)??[]){if(!n.has(i))continue;let o=Xr(e,n,r,i);if(o)return o}return[...t,t[0]]}function Xr(e,t,s,n){let r=[[n]],i=new Set([s,n]);for(;r.length>0;){let o=r.shift(),a=o.at(-1);for(let c of e.get(a)??[]){if(c===s)return[s,...o,s];!t.has(c)||i.has(c)||(i.add(c),r.push([...o,c]))}}}function Oo(e,t,s){let n=N(),r=_n(e,n,s),i=_n(t,n,s),o=new Set(r.cycles.map(yn));return i.cycles.filter(a=>!o.has(yn(a))).map(a=>`ordering_cycle_created:${Jr(i.successors,a,i.canonical).join(" -> ")}:items_will_not_be_ready:run_pm_graph_audit`)}export{Me as a,bt as b,le as c,Et as d,It as e,ci as f,fe as g,$e as h,pe as i,pi as j,Ct as k,eo as l,Ot as m,Lt as n,Nt as o,At as p,Mt as q,_e as r,Pt as s,ve as t,jt as u,Bt as v,zt as w,Ut as x,We as y,xe as z,Ve as A,Ee as B,Ht as C,Yt as D,He as E,K as F,Zt as G,Xe as H,Ye as I,Qe as J,en as K,Ze as L,nn as M,sn as N,on as O,Cr as P,So as Q,Oo as R};
|
|
8
|
+
//# sourceMappingURL=chunk-LGYK3NUF.js.map
|