@unbrained/pm-cli 2026.9.4 → 2026.9.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/skills/HARNESS_COMPATIBILITY.md +1 -1
- package/.agents/skills/README.md +2 -2
- package/.agents/skills/pm-developer/SKILL.md +4 -1
- package/.agents/skills/pm-developer/references/COMMAND_PLAYBOOK.md +10 -0
- package/.agents/skills/pm-developer/references/GRAPH_AND_RELATIONSHIPS.md +3 -1
- package/.agents/skills/pm-extensions/SKILL.md +2 -2
- package/.agents/skills/pm-extensions/references/LIFECYCLE.md +3 -3
- package/.agents/skills/pm-extensions/references/TROUBLESHOOTING.md +3 -3
- package/.agents/skills/pm-user/SKILL.md +2 -0
- package/.agents/skills/pm-user/references/BACKLOG_SHAPING.md +5 -0
- package/.agents/skills/pm-user/references/WORKFLOWS.md +20 -5
- package/.claude-plugin/marketplace.json +2 -2
- package/CHANGELOG.md +58 -3
- package/dist/cli/commander-usage.d.ts +2 -0
- package/dist/cli/commander-usage.js +15 -12
- package/dist/cli/help-json-payload.js +12 -7
- package/dist/cli/main.js +22 -11
- package/dist/cli/register-list-query.js +4 -2
- package/dist/cli/register-mutation.js +4 -2
- package/dist/cli/register-operations.js +17 -8
- package/dist/cli-bundle/bundle-manifest.json +153 -161
- package/dist/cli-bundle/chunks/chunk-AZDFJGH6.js +9 -0
- package/dist/cli-bundle/chunks/{chunk-V72UV7QS.js → chunk-BAX2BYUW.js} +73 -73
- package/dist/cli-bundle/chunks/{chunk-HI6BHPCU.js → chunk-CKOL5U7J.js} +51 -51
- package/dist/cli-bundle/chunks/{chunk-A24WAVE6.js → chunk-JT6XF6GE.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-I2AS367G.js → chunk-JX4DH4WC.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-YW4QK2G7.js → chunk-NPN5I67J.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-OF76PSDQ.js +5 -0
- package/dist/cli-bundle/chunks/chunk-QUWFABDM.js +232 -0
- package/dist/cli-bundle/chunks/{chunk-RI4XNOYS.js → chunk-RWWBOWJ5.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-WGAOYSYH.js +40 -0
- package/dist/cli-bundle/chunks/{chunk-X6CMGV6L.js → chunk-WI2AYPA7.js} +2 -2
- package/dist/cli-bundle/chunks/{register-list-query-Z5YYSJJG.js → register-list-query-5JL52D33.js} +3 -3
- package/dist/cli-bundle/chunks/{register-mutation-ELSP6I4I.js → register-mutation-ZPG7KMVP.js} +4 -4
- package/dist/cli-bundle/chunks/register-operations-I5W3KMGB.js +2 -0
- package/dist/cli-bundle/chunks/{register-setup-E2AE72QG.js → register-setup-H4SVAVX7.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-3646BZ4W.js → chunk-3BZEOXLT.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-AL5ON6K6.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-CHC2IDXA.js +6 -0
- package/dist/cli-bundle/focused-chunks/chunk-CK6QFAPZ.js +20 -0
- package/dist/cli-bundle/focused-chunks/{chunk-NBMJD6MK.js → chunk-EZR3GHFE.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-H2WJWK7L.js +56 -0
- package/dist/cli-bundle/focused-chunks/{chunk-53IHPICX.js → chunk-LIJIA4TY.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-25UJBH4M.js → chunk-M6PBRFSH.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-AJR3OP2E.js → chunk-NTPY5GSO.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-P5O7MP5Y.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-PDMW2E36.js +177 -0
- package/dist/cli-bundle/focused-chunks/{chunk-MHKUIPJW.js → chunk-PEFABF7E.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-6PWPQKDN.js → chunk-QTVCLMSZ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-7N2TV7WZ.js → chunk-QTZRBUYA.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-SGQST3PQ.js +12 -0
- package/dist/cli-bundle/focused-chunks/chunk-UKHASMMP.js +10 -0
- package/dist/cli-bundle/focused-chunks/chunk-ZPEKQHOC.js +2 -0
- package/dist/cli-bundle/main.js +22 -15
- package/dist/cli-bundle/sdk-authoring.js +1 -1
- package/dist/cli-bundle/sdk-contracts.js +2 -2
- package/dist/cli-bundle/sdk-core.js +37 -37
- 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 +42 -39
- package/dist/cli-bundle/sdk-query.js +1 -1
- package/dist/cli-bundle/sdk-runtime.js +1 -1
- package/dist/cli-bundle/sdk-testing.js +1 -1
- package/dist/cli-bundle/sdk.js +9 -9
- package/dist/core/extensions/extension-types.d.ts +2 -0
- package/dist/core/extensions/extension-types.js +2 -2
- package/dist/core/extensions/module-graph-snapshot.js +5 -4
- package/dist/core/fs/host-environment-errors.d.ts +27 -0
- package/dist/core/fs/host-environment-errors.js +142 -0
- package/dist/core/history/drift-scan.d.ts +5 -0
- package/dist/core/history/drift-scan.js +16 -6
- package/dist/core/history/event-classification.d.ts +1 -1
- package/dist/core/history/event-classification.js +3 -2
- package/dist/core/history/history.js +37 -5
- package/dist/core/history/identity.d.ts +15 -0
- package/dist/core/history/identity.js +31 -0
- package/dist/core/history/projection.js +50 -17
- package/dist/core/history/read.js +6 -3
- package/dist/core/history/replay.d.ts +1 -2
- package/dist/core/history/replay.js +4 -4
- package/dist/core/history/version-address.d.ts +13 -0
- package/dist/core/history/version-address.js +33 -0
- package/dist/core/item/actionability.d.ts +21 -1
- package/dist/core/item/actionability.js +45 -10
- package/dist/core/item/id.js +8 -4
- package/dist/core/item/item-type-definition.d.ts +2 -0
- package/dist/core/item/item-type-definition.js +9 -2
- package/dist/core/item/type-registry.d.ts +5 -1
- package/dist/core/item/type-registry.js +9 -4
- package/dist/core/output/mutation-projection.js +12 -5
- package/dist/core/shared/errors.d.ts +8 -0
- package/dist/core/shared/errors.js +2 -2
- package/dist/core/store/item-metadata-query-index.js +13 -10
- package/dist/core/store/item-metadata-read-work.d.ts +19 -0
- package/dist/core/store/item-metadata-read-work.js +44 -0
- package/dist/core/store/item-store.d.ts +14 -0
- package/dist/core/store/item-store.js +52 -10
- package/dist/core/store/settings-validator.js +3 -2
- package/dist/core/validate/fix-planning.d.ts +1 -1
- package/dist/core/validate/fix-planning.js +2 -2
- package/dist/core/validate/missing-link-owners.d.ts +1 -1
- package/dist/core/validate/missing-link-owners.js +5 -3
- package/dist/core/validate/stale-file-classification.d.ts +6 -4
- package/dist/core/validate/stale-file-classification.js +20 -5
- package/dist/mcp/server.js +12 -5
- package/dist/sdk/actionability.d.ts +1 -1
- package/dist/sdk/actionability.js +3 -3
- package/dist/sdk/cli-contracts/command-aliases.js +11 -2
- package/dist/sdk/cli-contracts/completeness.js +4 -3
- package/dist/sdk/cli-contracts/flag-contracts.d.ts +2 -0
- package/dist/sdk/cli-contracts/flag-contracts.js +31 -5
- package/dist/sdk/cli-contracts/flag-lexicon-contracts.js +21 -13
- package/dist/sdk/cli-contracts/grammar-contracts.js +11 -2
- package/dist/sdk/cli-contracts/runtime-contracts.js +5 -2
- package/dist/sdk/cli-contracts/schemas/assurance-definition.d.ts +254 -5
- package/dist/sdk/cli-contracts/schemas/assurance-definition.js +52 -2
- package/dist/sdk/cli-contracts/tool-parameter-tables.js +30 -6
- package/dist/sdk/cli-contracts/tool-schema.d.ts +2 -2
- package/dist/sdk/cli-contracts/tool-schema.js +32 -7
- package/dist/sdk/context/usage-ledger.d.ts +41 -0
- package/dist/sdk/context/usage-ledger.js +186 -0
- package/dist/sdk/context-intent-contracts.js +3 -3
- package/dist/sdk/context-usage.d.ts +18 -9
- package/dist/sdk/context-usage.js +44 -121
- package/dist/sdk/define.d.ts +1 -1
- package/dist/sdk/define.js +2 -2
- package/dist/sdk/dependency-provenance.d.ts +7 -0
- package/dist/sdk/dependency-provenance.js +14 -4
- package/dist/sdk/duplicates.d.ts +2 -0
- package/dist/sdk/duplicates.js +3 -2
- package/dist/sdk/environment/host-environment-errors.d.ts +5 -27
- package/dist/sdk/environment/host-environment-errors.js +4 -137
- package/dist/sdk/extension/install-runtime.js +9 -6
- package/dist/sdk/extension/install-snapshot.js +7 -6
- package/dist/sdk/generated/generated-error-code-catalog-part-1.js +104 -56
- package/dist/sdk/generated/generated-error-code-catalog-part-2.js +50 -2
- package/dist/sdk/governance/assurance-action.d.ts +3 -2
- package/dist/sdk/governance/assurance-action.js +23 -11
- package/dist/sdk/governance/assurance-runtime.d.ts +2 -0
- package/dist/sdk/governance/assurance-runtime.js +6 -3
- package/dist/sdk/governance/defect-recurrence-coverage.d.ts +93 -0
- package/dist/sdk/governance/defect-recurrence-coverage.js +189 -0
- package/dist/sdk/governance/defect-recurrence-graph.d.ts +33 -0
- package/dist/sdk/governance/defect-recurrence-graph.js +121 -0
- package/dist/sdk/governance/defect-recurrence.d.ts +8 -0
- package/dist/sdk/governance/defect-recurrence.js +118 -17
- package/dist/sdk/governance/health.d.ts +17 -2
- package/dist/sdk/governance/health.js +31 -10
- package/dist/sdk/governance/linked-file-report.d.ts +41 -0
- package/dist/sdk/governance/linked-file-report.js +72 -0
- package/dist/sdk/governance/validate-history-drift.js +16 -5
- package/dist/sdk/governance/validate.d.ts +5 -2
- package/dist/sdk/governance/validate.js +21 -37
- package/dist/sdk/governance.d.ts +2 -0
- package/dist/sdk/governance.js +4 -2
- package/dist/sdk/guide-topics.js +116 -2
- package/dist/sdk/history/salvage.d.ts +35 -0
- package/dist/sdk/history/salvage.js +248 -0
- package/dist/sdk/history-compact.js +32 -37
- package/dist/sdk/history-read.d.ts +3 -2
- package/dist/sdk/history-read.js +6 -3
- package/dist/sdk/history-repair.d.ts +12 -0
- package/dist/sdk/history-repair.js +60 -13
- package/dist/sdk/lifecycle/claim.d.ts +4 -0
- package/dist/sdk/lifecycle/claim.js +9 -3
- package/dist/sdk/lifecycle/close.d.ts +8 -0
- package/dist/sdk/lifecycle/close.js +16 -8
- package/dist/sdk/lifecycle/create.js +9 -12
- package/dist/sdk/lifecycle/restore.d.ts +1 -0
- package/dist/sdk/lifecycle/restore.js +19 -7
- package/dist/sdk/lifecycle/update.js +12 -12
- package/dist/sdk/lifecycle-policy.d.ts +3 -0
- package/dist/sdk/lifecycle-policy.js +2 -2
- package/dist/sdk/merge/abandoned-receipts.d.ts +15 -0
- package/dist/sdk/merge/abandoned-receipts.js +47 -0
- package/dist/sdk/merge/driver.js +4 -2
- package/dist/sdk/merge/index.d.ts +1 -0
- package/dist/sdk/merge/index.js +2 -2
- package/dist/sdk/merge/receipt-operation.d.ts +15 -0
- package/dist/sdk/merge/receipt-operation.js +97 -0
- package/dist/sdk/merge/receipt-schema.d.ts +20 -0
- package/dist/sdk/merge/receipt-schema.js +398 -0
- package/dist/sdk/merge/receipts.d.ts +16 -7
- package/dist/sdk/merge/receipts.js +54 -340
- package/dist/sdk/merge/reconcile.d.ts +2 -0
- package/dist/sdk/merge/reconcile.js +11 -4
- package/dist/sdk/output-projection.d.ts +3 -1
- package/dist/sdk/output-projection.js +11 -3
- package/dist/sdk/public-surface.json +1 -0
- package/dist/sdk/query/context.d.ts +9 -0
- package/dist/sdk/query/context.js +33 -21
- package/dist/sdk/query/duplicate-candidates.d.ts +7 -0
- package/dist/sdk/query/duplicate-candidates.js +71 -0
- package/dist/sdk/query/get.d.ts +2 -2
- package/dist/sdk/query/get.js +9 -8
- package/dist/sdk/query/history.d.ts +11 -0
- package/dist/sdk/query/history.js +34 -10
- package/dist/sdk/query/next.d.ts +15 -1
- package/dist/sdk/query/next.js +43 -20
- package/dist/sdk/query.d.ts +3 -0
- package/dist/sdk/query.js +5 -2
- package/dist/sdk/read-output-session.js +5 -3
- package/dist/sdk/runtime-primitives.d.ts +1 -1
- package/dist/sdk/runtime-primitives.js +3 -3
- package/dist/sdk/runtime.js +4 -2
- package/dist/sdk/similarity.d.ts +24 -3
- package/dist/sdk/similarity.js +50 -55
- package/dist/types.d.ts +2 -0
- package/dist/types.js +2 -2
- package/docs/AGENT_GUIDE.md +58 -1
- package/docs/BOUNDED_CONTEXT_READS.md +185 -0
- package/docs/CLOSE_EVIDENCE_RECOVERY.md +35 -0
- package/docs/COMMANDS.md +30 -8
- package/docs/CONTEXT_RELEVANCE.md +16 -4
- package/docs/DEFECT_RECURRENCE.md +80 -6
- package/docs/EXTENSIONS.md +18 -19
- package/docs/HISTORY_RECOVERY.md +146 -0
- package/docs/MERGE_SAFETY.md +50 -0
- package/docs/OUTPUT_PROJECTION_CONTRACTS.md +66 -0
- package/docs/PR_REVIEW_LOOP.md +18 -3
- package/docs/README.md +19 -1
- package/docs/RELEASING.md +31 -13
- package/docs/SDK_CONTEXT_TRUTH_CONTRACTS.md +24 -1
- package/docs/SDK_EXECUTION_CONTRACTS.md +105 -0
- package/docs/SDK_LIFECYCLE.md +27 -0
- package/docs/SDK_RUNTIME_BOUNDARIES.md +11 -0
- package/docs/TESTING.md +5 -0
- package/docs/agent-task-token-baseline.json +17 -17
- package/docs/agent-task-transcripts.json +2 -1
- package/docs/generated/FLAG_LEXICON_BUDGETS.md +11 -11
- package/docs/generated/REFUSAL_CLOSURE_CENSUS.md +11 -3
- package/marketplace.json +2 -2
- package/package.json +8 -6
- 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/README.md +10 -1
- package/packages/pm-governance-audit/extensions/governance-audit/dedupe-audit.ts +50 -65
- package/packages/pm-governance-audit/extensions/governance-audit/index.ts +2 -2
- package/packages/pm-governance-audit/extensions/governance-audit/sdk.ts +1 -0
- package/packages/pm-governance-audit/package.json +1 -1
- package/packages/pm-guide-shell/package.json +1 -1
- package/packages/pm-kanban/package.json +1 -1
- package/packages/pm-lifecycle-hooks/package.json +1 -1
- package/packages/pm-linked-test-adapters/package.json +1 -1
- package/packages/pm-search-advanced/package.json +1 -1
- package/packages/pm-templates/package.json +1 -1
- package/packages/pm-todos/package.json +1 -1
- package/packages/pm-vcs/package.json +1 -1
- package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
- package/plugins/pm-claude/skills/pm-audit/SKILL.md +2 -2
- package/plugins/pm-claude/skills/pm-developer/SKILL.md +2 -2
- package/plugins/pm-claude/skills/pm-planner/SKILL.md +2 -2
- package/plugins/pm-claude/skills/pm-release/SKILL.md +2 -2
- package/plugins/pm-claude/skills/pm-workflow/SKILL.md +3 -3
- package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
- package/plugins/pm-codex/skills/pm-auditor/SKILL.md +2 -2
- package/plugins/pm-codex/skills/pm-native/SKILL.md +3 -4
- package/plugins/pm-codex/skills/pm-release/SKILL.md +2 -2
- package/scripts/finalize-build.mjs +13 -1
- package/dist/cli-bundle/chunks/chunk-6XSKPNCF.js +0 -230
- package/dist/cli-bundle/chunks/chunk-OGBVU67G.js +0 -5
- package/dist/cli-bundle/chunks/chunk-TXW6VL33.js +0 -38
- package/dist/cli-bundle/chunks/chunk-VGLHECAP.js +0 -9
- package/dist/cli-bundle/chunks/register-operations-OH7R3ZT4.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-4YRAVI43.js +0 -12
- package/dist/cli-bundle/focused-chunks/chunk-5P4HVOWG.js +0 -176
- package/dist/cli-bundle/focused-chunks/chunk-636VVQ7F.js +0 -54
- package/dist/cli-bundle/focused-chunks/chunk-B3A6MJYE.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-BFDDJ2T2.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-BHUIRZWQ.js +0 -9
- package/dist/cli-bundle/focused-chunks/chunk-JADHHPY6.js +0 -6
- package/dist/cli-bundle/focused-chunks/chunk-NSKBLHVI.js +0 -20
- package/dist/cli-bundle/focused-chunks/chunk-P2GOAOQN.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-YARWJM2B.js +0 -2
- package/sdk/public-surface.json +0 -33034
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import{$e as Co,Ah as De,B as to,C as h,Ch as ze,Da as Ie,Db as lo,Di as Mt,E as y,Eh as Fn,Ei as Nt,Fc as S,Fe as he,Fh as Mo,G as U,Ge as It,He as Se,Ia as Cn,Id as q,If as An,Ih as Mn,Ja as kt,Jh as No,Ji as Bo,Ka as so,Kd as Et,Kg as Tt,Kh as Lt,Me as Eo,Mg as Rt,Mi as L,Ne as Io,Nh as Oo,Oc as Tn,Oe as Rn,Og as Dt,Om as Yo,Pe as xo,Qa as A,Qc as fo,R as H,Ra as vt,Rc as po,Rh as $o,Sa as ao,Sg as At,Ti as Go,U as no,Ub as xe,V as x,Vd as V,W as ro,Wc as mo,Wd as C,X as ce,Xd as M,Xi as Ko,Ya as R,Yi as Ho,Ze as xt,Zi as Ae,_i as zo,ab as co,ae as go,be as ho,bi as Po,c as In,ca as oo,cb as Sn,ci as Ft,cj as O,d as wt,df as Dn,dj as fe,dn as re,e as Zr,ea as io,ef as Ct,eh as Ln,ej as pe,en as oe,f as ae,ff as ue,fg as St,g as W,gf as te,gj as Wo,h as eo,he as yo,hj as ne,ie as _o,ih as Re,ij as qo,je as bo,jf as So,ke as wo,kf as Te,lc as uo,le as ko,mi as jo,ni as Uo,pe as Ce,rh as To,ri as Nn,s as xn,sh as Ro,uh as Do,vl as Vo,wh as Ao,xh as Lo,yb as J,ye as vo,yh as Fo}from"./chunk-QUWFABDM.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="7ad4e6c0-7545-51cb-9af7-4ba1ad4c4758")}catch{}})();function We(e,t=!1){let n=e[0];if(n?.op!=="history_compact_baseline")return 0;let r=n.context?.history_compaction,o=typeof r=="object"&&r!==null&&"version_offset"in r?r.version_offset:void 0;if(typeof o=="number"&&Number.isSafeInteger(o)&&o>=0&&Number.isSafeInteger(o+e.length))return o;if(t)return null;throw new y("This compacted stream has no trustworthy version offset; numeric history addresses are unavailable.",h.USAGE,{code:"history_version_mapping_unavailable",required:"Use a retained timestamp or recover the pre-compaction stream from version control.",nextSteps:["Run pm history <id> --full to inspect the retained timestamps and checkpoint evidence."]})}(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]="2efbffc1-722c-5f3a-9ca5-e4e7a4f97729")}catch{}})();function tc(e,t){let n=-1;return e.forEach((r,o)=>{let i=Date.parse(r.ts);if(!Number.isFinite(i))throw new y(`History for this item contains invalid timestamp at entry ${o+1}.`,h.GENERIC_FAILURE);i<=t&&(n=o)}),n}function nc(e,t){let n=e[0]?.ts??null,r=e.at(-1)?.ts??null,o={code:"history_target_out_of_range",required:"Choose a target within the available item history.",why:"Point-in-time reads and restores can only reconstruct recorded versions.",examples:[],nextSteps:["Run pm history <id> to inspect available versions and timestamps."],valid_range:{first_version:null,last_version:null,first_timestamp:n,last_timestamp:r}};return r!==null&&(o.examples=[r],t!==null&&(o.examples.unshift(String(t+1),String(t+e.length)),o.valid_range.first_version=t+1,o.valid_range.last_version=t+e.length)),{guidance:o,lastTimestamp:r}}function Xo(e,t){let n={};if(t instanceof Error&&t.message.trim().length>0&&(n.reason=t.message.trim()),typeof t!="object"||t===null)return n;let r=t;if(typeof r.index=="number"&&Number.isInteger(r.index)&&r.index>=0&&(n.patchIndex=r.index),typeof r.operation=="object"&&r.operation!==null){let o=r.operation;Object.assign(n,Object.fromEntries(["op","path","from"].flatMap(i=>{let s=o[i];return typeof s=="string"?[[i,s]]:[]})))}if(n.patchIndex!==void 0){let o=e[n.patchIndex];o&&(n.op??=o.op,n.path??=o.path,n.from??=o.from)}return n}function Jo(e,t,n={}){let r=e.trim(),o=n.errorSubject??"history",i=o==="restore"?"Restore":"History",{guidance:s,lastTimestamp:a}=nc(t,We(t,!0));if(!r)throw new y(`Missing ${o} target. Use a timestamp or version number.`,h.USAGE,s);if(/^\d+$/.test(r)){let l=We(t),u=Number(r);if(u>=1&&u<=l)throw new y(`History version ${u} was pruned by compaction.`,h.USAGE,{...s,code:"history_version_pruned"});if(!Number.isSafeInteger(u)||u<1||u>l+t.length)throw new y(`${i} version must be between ${l+1} and ${l+t.length} for this item.`,h.USAGE,s);return{kind:"version",raw:r,historyIndex:u-l-1}}let c=Date.parse(r);if(!Number.isFinite(c))throw new y(`Invalid ${o} target "${e}". Use a positive version number or ISO timestamp.`,h.USAGE,s);let d=tc(t,c);if(d<0||n.allowFutureTimestamp!==!0&&c>Date.parse(a))throw new y(o==="restore"?`No history entries exist at or before timestamp ${r}.`:`No history entry exists at timestamp ${r}.`,h.USAGE,s);return{kind:"timestamp",raw:r,historyIndex:d}}function qe(e,t,n,r){let o=Mn(e,t);if(o.ok)return o.document;let i=Xo(t,o.error),s=[`history_op=${r}`,i.patchIndex===void 0?null:`patch_index=${i.patchIndex}`,i.op?`op=${i.op}`:null,i.path?`path=${i.path}`:null,i.from?`from=${i.from}`:null].filter(a=>a!==null);throw new y(`Failed to apply history patch at entry ${n} (${s.join(", ")}). ${i.reason??String(o.error)}`,h.GENERIC_FAILURE)}function Qo(e,t){let n=e[0];if(n&&n.op!=="create"&&n.op!=="history_compact_baseline"){let s=Mn(De,n.patch);if(!s.ok||typeof s.document.metadata.id!="string")throw new y("History starts without a reconstructable item baseline.",h.GENERIC_FAILURE,{code:"history_baseline_unavailable",required:"Recover the original create entry or a complete checkpoint from version control.",nextSteps:["Run pm history <id> --full to inspect the missing baseline."]})}let r=e.slice(0,t+1),o=Lt([...r]),i=structuredClone(De);for(let s=0;s<=t;s+=1){let a=e[s];if(!a)throw new y(`History target entry ${s+1} does not exist.`,h.USAGE);i=qe(i,a.patch,s+1,a.op)}if(!o.ok)throw new y(`History cannot be replayed: ${o.errors.join(", ")}.`,h.GENERIC_FAILURE,{code:"history_replay_invalid",verification_errors:o.errors,required:"Inspect the history integrity findings before attempting recovery.",nextSteps:["Run pm history <id> --verify --full."]});return i}function Zo(e,t){if(Object.keys(e.metadata).length>0){if(typeof e.metadata.id!="string"||!Array.isArray(e.metadata.tags))throw new y("History has no complete item baseline for this target.",h.GENERIC_FAILURE,{code:"history_baseline_unavailable",required:"Recover the original create entry or a complete checkpoint from version control.",nextSteps:["Run pm history <id> --full to inspect the first recorded state."]});return e}throw new y(`History target ${t.raw} resolves to a deleted state; choose a version or timestamp where the item exists.`,h.USAGE)}import On from"node:fs/promises";import rc from"node:fs/promises";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="a2ec9f1a-aae2-59d5-8c9a-7acd8bf5a7a2")}catch{}})();function oc(e){if(!e.itemDocument)return[];let t=e.itemDocument.metadata?.assignee?.trim();if(!t||t===e.author||e.force)return[];let n=Bo(e.settings);if(n.ownership_enforcement==="strict")throw new y(`Item ${e.subjectId} is assigned to ${t}. Use --force to override.`,h.CONFLICT);return n.ownership_enforcement==="warn"?[`ownership_warning:assignee_conflict:${e.subjectId}:${t}`]:[]}async function ic(e){let t=await ae(e.subject.historyPath);if(t!==e.historyRawBeforeLock)throw new y(`History for ${e.subject.id} changed while waiting for lock; retry ${e.operation}.`,h.CONFLICT);let n=await fe(e.pmRoot,e.subject.id,e.settings.id_prefix,e.settings.item_format,e.typeRegistry.type_to_folder),r=n?await pe(n,{schema:e.settings.schema}):null;if((r?.raw??null)!==(e.currentItemRawBeforeLock??null))throw new y(`Item ${e.subject.id} changed while waiting for lock; retry ${e.operation}.`,h.CONFLICT);return{historyRawUnderLock:t,locatedUnderLock:n,loadedItemUnderLock:r}}async function ly(e){let t=e.writeHistoryRaw??W;try{await t(e.historyPath,e.nextHistoryRaw),await Re(e.historyPath)}catch(n){try{e.historyRawUnderLock===null?await rc.rm(e.historyPath,{force:!0}):await t(e.historyPath,e.historyRawUnderLock),await Re(e.historyPath)}catch(r){throw new AggregateError([n,r],`History rewrite failed and rollback also failed: ${String(n)}`)}throw n}}async function ei(e){let t=[...oc({itemDocument:e.itemDocument,subjectId:e.subject.id,author:e.author,force:e.force,settings:e.settings})],n=await It(e.pmRoot,e.subject.id,e.settings.locks.ttl_seconds,e.author,!!e.force,e.settings.governance.force_required_for_stale_lock,e.settings.locks.wait_ms);try{let r=await ic({pmRoot:e.pmRoot,subject:e.subject,settings:e.settings,typeRegistry:e.typeRegistry,historyRawBeforeLock:e.historyRawBeforeLock,currentItemRawBeforeLock:e.currentItemRawBeforeLock,operation:e.operation});return await e.applyRewrite(r),e.applyPostRewrite&&t.push(...await e.applyPostRewrite(r)),t}finally{await n()}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="bd1e86b0-6696-5fba-8dd4-b9636bf3ee60")}catch{}})();function $n(e){return Array.isArray(e)?e:typeof e=="string"?[e]:[]}function ni(e){let t=[];for(let n of e)t.includes(n)||t.push(n);return t.includes("g")||t.push("g"),t.join("")}function ri(e){let t=e.trim();if(t.length===0)throw new y("history-redact --regex requires a non-empty pattern.",h.USAGE);let n=t,r="g";if(t.startsWith("/")&&t.length>1){let o=t.lastIndexOf("/");o>0&&(n=t.slice(1,o),r=ni(t.slice(o+1)))}if(n.length===0)throw new y("history-redact --regex cannot use an empty pattern.",h.USAGE);try{new RegExp(n,r)}catch{throw new y("Invalid --regex value; provide a valid JavaScript regular expression.",h.USAGE)}return{kind:"regex",source:n,flags:r}}function oi(e,t){let n=[...new Set($n(e).map(i=>i.trim()))].filter(i=>i.length>0).map(i=>({kind:"literal",value:i})),r=[...new Set($n(t).map(i=>i.trim()))].filter(i=>i.length>0).map(ri),o=[...n,...r];if(o.length===0)throw new y("history-redact requires at least one matcher via --literal or --regex.",h.USAGE,{code:"missing_required_argument",required:"Provide --literal <value> and/or --regex <pattern>.",examples:['pm history-redact pm-a1b2 --literal "[redacted_path_prefix]/private"','pm history-redact pm-a1b2 --regex "/192\\\\.168\\\\.[0-9.]+/g" --replacement "[scrubbed_ip]"']});return o}function ii(e,t,n){if(t.length===0)return{value:e,replacements:0};let r=0,o=0;for(;r<=e.length;){let i=e.indexOf(t,r);if(i===-1)break;o+=1,r=i+Math.max(1,t.length)}return o===0?{value:e,replacements:0}:{value:e.split(t).join(n),replacements:o}}function si(e,t,n){let r=new RegExp(t.source,t.flags),o=[...e.matchAll(r)];return o.length===0?{value:e,replacements:0}:{value:e.replace(r,n),replacements:o.length}}function Pn(e,t,n){let r=e,o=0;for(let i of t){let s=i.kind==="literal"?ii(r,i.value,n):si(r,i,n);r=s.value,o+=s.replacements}return{value:r,replacements:o}}function Ve(e,t,n){if(typeof e=="string")return Pn(e,t,n);if(Array.isArray(e)){let r=0;return{value:e.map(i=>{let s=Ve(i,t,n);return r+=s.replacements,s.value}),replacements:r}}if(typeof e=="object"&&e!==null){let r=0,o={};for(let[i,s]of Object.entries(e)){let a=Ve(s,t,n);r+=a.replacements,o[i]=a.value}return{value:o,replacements:r}}return{value:e,replacements:0}}function ti(e,t,n){let r=0;return{patch:e.map(i=>{if(!Object.prototype.hasOwnProperty.call(i,"value"))return i;let s=Ve(i.value,t,n);return r+=s.replacements,s.replacements>0?{...i,value:s.value}:i}),replacements:r}}function sc(e){let t=structuredClone(De),n=0,r=0;for(let o=0;o<e.length;o+=1){let i=e[o];ze(t)!==i.before_hash&&(n+=1),t=qe(t,i.patch,o+1,i.op),ze(t)!==i.after_hash&&(r+=1)}return{hashMismatchesBefore:n,hashMismatchesAfter:r,finalDocument:t}}function ac(e,t,n){let r=0,o=!1,i=!1,s=e.message;if(typeof e.message=="string"){let d=Pn(e.message,t,n);s=d.value,r+=d.replacements,d.replacements>0&&(o=!0)}let a=ti(e.patch,t,n);r+=a.replacements,o||=a.replacements>0;let c=e.reanchor_evidence?.map(d=>{let l=d.patch?ti(d.patch,t,n):{patch:void 0,replacements:0},u=d.record?Ve(d.record,t,n):{value:void 0,replacements:0};r+=l.replacements,r+=u.replacements;let f=l.replacements>0||u.replacements>0;if(o||=f,!f)return d;i=!0;let{patch:m,record:p,record_hash:g,record_hash_version:_,...k}=d;return l.replacements>0?k:{...k,patch:d.patch}});return{entry:{...e,message:s,patch:a.patch,...c?{reanchor_evidence:c}:{}},replacements:r,changed:o,reanchorEvidenceRedacted:i}}function cc(e,t,n){let r=structuredClone(De),o=0,i=0,s=[];for(let a=0;a<e.length;a+=1){let c=e[a],d=To(c);if(!d.ok)throw new y(`history-redact refuses invalid immutable record ${a+1} (${d.error}).`,h.GENERIC_FAILURE);let l=ac(c,t,n);i+=l.replacements,l.changed&&(o+=1);let u=ze(r);r=qe(r,l.entry.patch,a+1,l.entry.op);let f=ze(r);s.push(Ro(c,{...l.entry,before_hash:u,after_hash:f},{retainPriorRecord:l.changed,retainPriorRecordHash:!l.changed}))}return{entries:s,finalDocument:r,entriesChanged:o,replacements:i}}function ai(e){return Object.keys(e.metadata).length>0}async function dc(e,t){let n=e.located?.itemPath??null;if(!e.located)return{raw:null,path:n,document:null};let r=await pe(e.located,{schema:t.schema});return{raw:r.raw,path:n,document:r.document}}function lc(e){if(!ai(e.finalDocument))return{raw:null,path:null,document:null};let t=ho(Fn(e.finalDocument),{schema:e.settings.schema});if(t.metadata.id!==e.subject.id)throw new y("history-redact would change the item id; narrow your patterns.",h.USAGE);return{document:t,path:co(e.pmRoot,t.metadata.type,e.subject.id,"toon",e.typeToFolder),raw:go(t,{format:"toon",schema:e.settings.schema})}}function uc(e,t){return typeof e.message=="string"&&e.message.trim().length>0?e.message:`history-redact replaced ${t.replacements} match(es) across ${t.entriesChanged} entr${t.entriesChanged===1?"y":"ies"}.`}function fc(e){let t=[...e.rewritten.entries];if(e.dryRun||!e.changed)return{rewrittenEntries:t,auditEntryAdded:!1};let n=e.nextItemDocument??Fn(e.rewritten.finalDocument);return t.push(Fo({nowIso:H(),author:e.author,op:"history_redact",before:n,after:n,message:e.message})),{rewrittenEntries:t,auditEntryAdded:!0}}async function pc(e){let t=[];return ei({pmRoot:e.pmRoot,subject:e.subject,settings:e.settings,typeRegistry:e.typeRegistry,historyRawBeforeLock:e.historyRawBeforeLock,currentItemRawBeforeLock:e.currentItem.raw,operation:"history-redact",author:e.author,force:e.force,itemDocument:e.currentItem.document,applyRewrite:async({historyRawUnderLock:n})=>{let r=await Ho(e.pmRoot,e.author),o=new Set;e.currentItem.path&&o.add(e.currentItem.path),e.nextItem.path&&o.add(e.nextItem.path);let i=new Map;e.currentItem.path&&e.currentItem.raw!==null&&i.set(e.currentItem.path,e.currentItem.raw);let s=()=>{};try{try{e.nextItem.path&&e.nextItem.raw!==null&&e.nextItem.raw!==e.currentItem.raw&&await W(e.nextItem.path,e.nextItem.raw),e.currentItem.path&&(!e.nextItem.path||e.nextItem.path!==e.currentItem.path)&&await On.rm(e.currentItem.path,{force:!0}),await W(e.subject.historyPath,Oo(e.rewrittenEntries))}catch(c){try{await mc(e.subject.historyPath,n,o,i)}finally{await Re(e.subject.historyPath)}throw c}await Re(e.subject.historyPath);let a=e.nextItem.path??e.currentItem.path;a&&(t=await zo({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:e.typeRegistry.type_to_folder,schema:e.settings.schema,itemPath:a,...e.currentItem.path?{previousItemPath:e.currentItem.path}:{},document:e.nextItem.document}))}finally{await r().catch(a=>{s=()=>{throw a}})}s()},applyPostRewrite:async()=>[...t,...await gc(e.subject.historyPath,[e.nextItem.path,e.currentItem.path])]})}async function mc(e,t,n,r){t===null?await On.rm(e,{force:!0}):await W(e,t);for(let o of n){let i=r.get(o);i===void 0?await On.rm(o,{force:!0}):await W(o,i)}}async function gc(e,t){let n=[],r=new Set(t.filter(o=>o!==null));for(let o of r)n.push(...await Tn({path:o,scope:"project",op:"history_redact"}));return n.push(...await Tn({path:e,scope:"project",op:"history_redact:history"})),n}async function jn(e,t,n,r){let o=await fe(e,t,n.id_prefix,n.item_format,r);if(o)return{id:o.id,historyPath:Sn(e,o.id),located:o};let i=Ft(t,n.id_prefix),s=Po(t),a=i===s?[i]:[i,s];for(let c of a){let d=Sn(e,c);if(await In(d))return{id:c,historyPath:d,located:null}}throw new y(`Item ${t} not found`,h.NOT_FOUND)}async function Fy(e,t,n){let r=R(process.cwd(),n.path);await O(r);let o=await L(r),i=A(o,S()),s=t.replacement??"",a=s.length===0,c=a?"[redacted]":s,d=oi(t.literal,t.regex),l=await jn(r,e,o,i.type_to_folder);if(!await In(l.historyPath))throw new y(`No history stream exists for ${l.id}.`,h.NOT_FOUND);let u=await ae(l.historyPath),f=await Se(l.historyPath,l.id);if(f.length===0)throw new y(`No history entries exist for ${l.id}; nothing to redact.`,h.USAGE);let m=sc(f),p=cc(f,d,c),g=m.hashMismatchesBefore+m.hashMismatchesAfter,_=!!t.dryRun,k=p.replacements>0,b=[];g>0&&b.push(`history_redact_preexisting_hash_mismatches:${g}`),k||b.push("history_redact_no_matches");let w=await dc(l,o),v=lc({pmRoot:r,subject:l,settings:o,typeToFolder:i.type_to_folder,finalDocument:p.finalDocument}),I=(w.path??null)!==(v.path??null)||(w.raw??null)!==(v.raw??null),F=he(t.author,o.author_default),N=uc(t,p),{rewrittenEntries:D,auditEntryAdded:le}=fc({rewritten:p,dryRun:_,changed:k,nextItemDocument:v.document,author:F,message:N}),P=Lt(D);if(!P.ok)throw new y(`history-redact produced an invalid rewritten chain (${P.errors.join(", ")}).`,h.GENERIC_FAILURE);return!_&&k&&b.push(...await pc({pmRoot:r,subject:l,settings:o,typeRegistry:i,historyRawBeforeLock:u,currentItem:w,nextItem:v,author:F,force:t.force,rewrittenEntries:D})),{id:l.id,dry_run:_,changed:k,patterns:{literal_count:d.filter(G=>G.kind==="literal").length,regex_count:d.filter(G=>G.kind==="regex").length,total_count:d.length,replacement_is_default:a},history:{path:l.historyPath,entries_scanned:f.length,entries_changed:p.entriesChanged,replacements:p.replacements,hash_mismatches_before:m.hashMismatchesBefore,hash_mismatches_after:m.hashMismatchesAfter,preexisting_hash_mismatches:g,audit_entry_added:le,verify_ok:P.ok,verify_errors:P.errors},item:{existed_before:w.path!==null,exists_after:v.path!==null,path_before:w.path,path_after:v.path,changed:I},warnings:[...new Set(b)].sort((G,X)=>G.localeCompare(X)),generated_at:H()}}var My={applyLiteralRule:ii,applyRegexRule:si,buildRedactionRules:oi,hasItemMetadata:ai,normalizeRegexFlags:ni,normalizeStringArrayInput:$n,parseRegexRule:ri,redactStringValue:Pn,redactUnknownValue:Ve};(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]="6fe766e2-93e8-5653-beb5-16bd92efae51")}catch{}})();function Xy(e,t){let n=No(e),r=e.length>0?e[e.length-1].after_hash:Lo(),o=t===void 0||n.item_hash_version===void 0?void 0:Ao(t,n.item_hash_version),i=t===void 0?void 0:o===void 0?Do(t):o[Math.max(0,o.indexOf(r))],s=i===void 0?void 0:i===r,a=[...n.errors];return s===!1&&a.push("verify_failed:current_item_hash_mismatch"),{ok:a.length===0,entries:e.length,errors:a,latest_after_hash:e.length>0?e[e.length-1].after_hash:void 0,current_item_hash:i,current_matches_latest:s}}async function Jy(e,t,n={}){let r=R(n.cwd??process.cwd(),n.pmRoot);await O(r);let o=await L(r),i=A(o,S()),s=await jn(r,e,o,i.type_to_folder),a=await Se(s.historyPath,s.id);if(a.length===0)throw new y(`No history exists for ${s.id}; point-in-time reads are unavailable.`,h.NOT_FOUND);let c=Jo(t,a),d=Zo(Qo(a,c.historyIndex),c),l=Mo(d,{schema:o.schema});if(l.metadata.id!==s.id)throw new y(`History target resolved to item ${l.metadata.id}, expected ${s.id}.`,h.GENERIC_FAILURE);let u=a[c.historyIndex],f=We(a,!0);return{document:l,reconstructed:!0,as_of_version:f===null?null:f+c.historyIndex+1,as_of_timestamp:u.ts,target:c,history_length:a.length}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="3167c288-0bcc-5a66-8aa0-ca5876ed7d36")}catch{}})();function hc(e,t,n,r,o,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,n.id);let s=n.depth+1;return e.queue.push({id:t,depth:s}),e.cursorFound?(e.affected.push({id:t,distance:s,path:Ec(r,t,e.parents)}),"continue"):(e.cursorFound=t===o,"skip")}function di(e,t,n,r){let o=ue("graph impact",{root:e,direction:n,kinds:[...t.kinds??[]].sort(),max_depth:Number.isFinite(r)?r:"unbounded"});return{fingerprint:o,after:t.after===void 0?void 0:So(t.after,o)}}function Le(e,t,n){e.get(t).add(n)}function Ye(e){return new Map(e.map(t=>[t,new Set]))}function li(e){for(let t of e)t.sort();return e.sort((t,n)=>n.length-t.length||t[0].localeCompare(n[0]))}function Ot(e){if(Array.isArray(e))return e.map(n=>Ot(n));if(e===null||typeof e!="object")return e;let t=e.toJSON;return typeof t=="function"?Ot(t.call(e)):Object.fromEntries(Object.entries(e).sort(([n],[r])=>n.localeCompare(r)).map(([n,r])=>[n,Ot(r)]))}function ci(e){return JSON.stringify(Ot(e))}function yc(e,t,n,r){let o=[{id:e,expanded:!1}];for(;o.length>0;){let i=o.pop();if(i.expanded){r.push(i.id);continue}if(n.has(i.id))continue;n.add(i.id),o.push({id:i.id,expanded:!0});let s=[...t.get(i.id)].sort().reverse();for(let a of s)n.has(a)||o.push({id:a,expanded:!1})}}function _c(e,t){let n=new Set,r=[];for(let o of e)n.has(o)||yc(o,t,n,r);return r}function bc(e,t){let n=new Set,r=[];for(let o of[...e].reverse()){if(n.has(o))continue;let i=[],s=[o];for(n.add(o);s.length>0;){let a=s.pop();i.push(a);for(let c of t.get(a))n.has(c)||(n.add(c),s.push(c))}r.push(i)}return li(r)}function ui(e,t){let n=Ye(e);for(let[r,o]of t)for(let i of o)Le(n,i,r);return bc(_c(e,t),n)}function wc(e,t){let n=Ye(e.nodes());for(let r of e.edges()){let o=t.require(r.kind);if(!o.ordering)continue;let i=(o.precedence??"source_before_target")==="source_before_target";Le(n,i?r.source:r.target,i?r.target:r.source)}return n}function kc(e,t){let n=new Map(e.map(i=>[i,0]));for(let i of t.values())for(let s of i)n.set(s,n.get(s)+1);let r=e.filter(i=>n.get(i)===0).sort(),o=[];for(;r.length>0;){o.push(r);let i=[];for(let s of r)for(let a of t.get(s)){let c=n.get(a)-1;n.set(a,c),c===0&&i.push(a)}r=i.sort()}return o}function vc(e,t){let n=new Map(e.map(s=>[s,0])),r=new Map;for(let s of e)for(let a of t.get(s)){if(!n.has(a))continue;let c=n.get(s)+1,d=r.get(a);(c>n.get(a)||c===n.get(a)&&(d===void 0||s.localeCompare(d)<0))&&(n.set(a,c),r.set(a,s))}let o=[...e].sort((s,a)=>n.get(a)-n.get(s)||s.localeCompare(a))[0],i=o===void 0?[]:[o];for(;i[0]!==void 0&&r.has(i[0]);)i.unshift(r.get(i[0]));return{depth:Object.fromEntries(n),path:i}}function Ec(e,t,n){let r=[t],o=t;for(;o!==e;)o=n.get(o),r.push(o);return r.reverse()}function Pt(e,t={}){let n=t.registry??J(),r=[...e.nodes()],o=wc(e,n),i=kc(r,o),s=i.flat(),a=s.length===r.length,c=a?[]:ui(r,o).filter(l=>l.length>1||o.get(l[0]).has(l[0])),d=vc(s,o);return{exact:!0,acyclic:a,order:s,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 Ic(e,t,n){let r=Ye(e.nodes()),o=n===void 0?void 0:new Set(n.map(s=>e.registry().require(s).kind)),i=e.edges();for(let s of i){let a=e.registry().require(s.kind);o!==void 0&&!o.has(s.kind)&&(a.inverse===void 0||!o.has(a.inverse))||Le(r,t==="incoming"?s.target:s.source,t==="incoming"?s.source:s.target)}return{adjacency:r,inspectedEdges:i.length}}function xc(e,t,n,r,o,i){let s=$t(e,t,{...n,after:void 0,direction:"incoming",limit:void 0}),a=$t(e,t,{...n,after:void 0,direction:"outgoing",limit:void 0}),c=new Map,d=[...s.affected,...a.affected].sort((p,g)=>p.distance-g.distance||p.id.localeCompare(g.id)||p.path.join("\0").localeCompare(g.path.join("\0")));for(let p of d)c.has(p.id)||c.set(p.id,p);let l=[...c.values()].sort((p,g)=>p.distance-g.distance||p.id.localeCompare(g.id)),u=r===void 0||r===t?-1:l.findIndex(p=>p.id===r);if(r!==void 0&&r!==t&&u<0)throw new TypeError(`Unknown impact cursor item: ${r}`);let f=l.slice(u+1,u+1+o),m=u+1+f.length<l.length;return{root:t,affected:f,exact:!0,truncated:s.truncated||a.truncated||m,...m?{nextCursor:te(i,f.at(-1)?.id??t)}:{},cost:{visitedNodes:s.cost.visitedNodes+a.cost.visitedNodes,inspectedEdges:s.cost.inspectedEdges+a.cost.inspectedEdges}}}function Cc(e,t,n){let r=n.direction,o=n.maxDepth??Number.POSITIVE_INFINITY,i=n.limit??Number.POSITIVE_INFINITY,{fingerprint:s,after:a}=di(t,n,r,o),{adjacency:c,inspectedEdges:d}=Ic(e,r,n.kinds),l={queue:[{id:t,depth:0}],seen:new Set([t]),parents:new Map,affected:[],cursorFound:a===void 0||a===t},u=0,f=!1,m=!1;e:for(let p=0;p<l.queue.length;p+=1){n.signal?.throwIfAborted();let g=l.queue[p];u+=1;let _=[...c.get(g.id)].sort();if(g.depth>=o){_.some(k=>!l.seen.has(k))&&(f=!0);continue}for(let k of _)if(hc(l,k,g,t,a,i)==="truncate"){f=!0,m=!0;break e}}if(!l.cursorFound)throw new TypeError(`Unknown impact cursor item: ${a}`);return{root:t,affected:l.affected,exact:!0,truncated:f,...m?{nextCursor:te(s,l.affected.at(-1)?.id??t)}:{},cost:{visitedNodes:u,inspectedEdges:d}}}function $t(e,t,n={}){let r=n.direction??"outgoing";if(r!=="both")return Cc(e,t,{...n,direction:r});let o=n.maxDepth??Number.POSITIVE_INFINITY,i=n.limit??Number.POSITIVE_INFINITY,{fingerprint:s,after:a}=di(t,n,r,o);return xc(e,t,n,a,i,s)}function fi(e){let t=[...e.nodes()],n=Ye(t),r=Ye(t);for(let c of e.edges())Le(n,c.source,c.target),Le(n,c.target,c.source),Le(r,c.source,c.target);let o=[],i=new Set;for(let c of t){if(i.has(c))continue;let d=[],l=[c];for(i.add(c);l.length>0;){let u=l.pop();d.push(u);for(let f of n.get(u))i.has(f)||(i.add(f),l.push(f))}o.push(d)}let s=t.map(c=>({id:c,degree:n.get(c).size})),a=Math.max(0,...s.map(({degree:c})=>c));return{components:li(o),stronglyConnected:ui(t,r),orphans:s.filter(({degree:c})=>c===0).map(({id:c})=>c),hubs:s.filter(({degree:c})=>c>0&&c===a),exact:!0,provenance:{algorithm:"component-degree",edgeFamily:"all"}}}function n_(e,t){let n=new Map(e.edges.map(o=>[ci(o),o])),r=new Map(t.edges.map(o=>[ci(o),o]));return{fromVersion:e.version,toVersion:t.version,added:[...r].filter(([o])=>!n.has(o)).map(([,o])=>o),removed:[...n].filter(([o])=>!r.has(o)).map(([,o])=>o),unchangedCount:[...n.keys()].filter(o=>r.has(o)).length,exact:!0}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="eb044a23-d43b-5e9c-9ae7-4ac91b5e587a")}catch{}})();function Q(e,t="--limit"){if(e===void 0)return;let n=String(e).trim(),r=n.length===0?Number.NaN:Number(n);if(!Number.isInteger(r)||r<0)throw new y(`${t} must be a non-negative integer`,h.USAGE);return r}function jt(e,t="--priority"){if(e===void 0)return;let n=String(e).trim(),r=n.length===0?Number.NaN:Number(n);if(!Number.isInteger(r)||r<0||r>4)throw new y(`${t} filter must be 0..4`,h.USAGE);return r}function pi(e,t,n="--type"){if(e===void 0)return;let r=vt(e,t);if(!r)throw new y(`${n} filter must be one of ${t.types.join("|")}`,h.USAGE);return r}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="8b010e79-a73a-5760-ac05-8dc88484cd69")}catch{}})();var Ut={version:1,aliases:{}};function Bt(e=[]){let t=new Set(Ce),n=r=>{/^[a-z0-9]+(?:-[a-z0-9]+)*$/u.test(r)&&t.add(r)};for(let r of e){for(let o of Object.keys(r.provenance_environment_keys??{}))n(o);for(let o of Object.keys(r.provenance_resolvers??{}))n(o);for(let o of r.provenance_unavailable_dimensions??[])n(o)}return[...t].sort()}function mi(e){if(e===void 0)return;let n=(typeof e=="string"?[e]:e).flatMap(r=>r.split(",")).map(r=>r.trim()).filter(r=>r.length>0);return n.length===0?void 0:new Set(n)}function Un(e,t){if(e.agent_harness?.trim())return{agent_harness:e.agent_harness,harness_source:"recorded"};let n=t.aliases[e.author];return n?{agent_harness:n,harness_source:"vocabulary"}:{harness_source:"unresolved"}}function Bn(e,t=Ce){let n=new Set(t),r=new Map,o=e.provenance===void 0?[]:typeof e.provenance=="string"?[e.provenance]:e.provenance;for(let i of o.flatMap(s=>s.split(","))){let s=i.indexOf("=");if(s<0)throw new y(`Provenance predicate must use dimension=value; received "${i.trim()}".`,h.USAGE,{code:"invalid_provenance_predicate"});let a=i.slice(0,s).trim().toLowerCase(),c=i.slice(s+1).trim();if(!n.has(a))throw new y(`Unknown provenance dimension "${a||i.trim()}". Declared dimensions: ${[...n].sort().join(", ")}.`,h.USAGE,{code:"unknown_provenance_dimension"});if(c.length===0)throw new y(`Provenance predicate must use dimension=value; received "${i.trim()}".`,h.USAGE,{code:"invalid_provenance_predicate"});let d=r.get(a)??new Set;d.add(c),r.set(a,d)}return r}function Gt(e,t=Ut,n={}){let r=Un(e,t);return{...n.itemId===void 0?{}:{item_id:n.itemId},...n.version===void 0?{}:{version:n.version},ts:e.ts,op:e.op,author:e.author,...e.author_source===void 0?{}:{author_source:e.author_source},...r,vocabulary_version:t.version,...e.agent_instance===void 0?{}:{agent_instance:e.agent_instance},agent_provenance:e.agent_provenance??{},...e.message===void 0?{}:{message:e.message}}}function f_(e,t,n=Ut,r=Ce){return Gn(t,n,r)(e)}function Gn(e,t=Ut,n=Ce){let r=mi(e.harness),o=mi(e.agentInstance),i=Bn(e,n);return s=>{let c=Un(s,t).agent_harness;if(r&&(!c||!r.has(c))||o&&!o.has(s.agent_instance??""))return!1;for(let[d,l]of i){let u=s.agent_provenance?.[d];if(!u||!l.has(u.value))return!1}return!0}}function Kt(e,t=Ut,n=Ce){let r=new Set(n),o=new Map,i=0;for(let s of e){for(let c of Object.keys(s.agent_provenance??{}))r.add(c);Un(s,t).agent_harness?i+=1:o.set(s.author,(o.get(s.author)??0)+1)}return{entries:e.length,vocabulary_version:t.version,harness:{resolved:i,unresolved:e.length-i,unresolved_authors:[...o].map(([s,a])=>({author:s,entries:a})).sort((s,a)=>a.entries-s.entries||s.author.localeCompare(a.author)).slice(0,20)},dimensions:[...r].sort().map(s=>{let a=0,c=0;for(let d of e){let l=d.agent_provenance?.[s];l===null?c+=1:l!==void 0&&(a+=1)}return{dimension:s,observed:a,unavailable:c,legacy_missing:e.length-a-c}})}}import Sc from"node:fs/promises";import yi 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]="7005305a-5fd4-56b8-a0a0-5612e8bf48cc")}catch{}})();var Tc=20,Rc=5,Dc=15,Ac="-24h";function E_(e){let t={...e};return t.full===!0?(t.raw=!0,t.compact=!1):t.raw===!0&&t.compact===void 0&&(t.compact=!0),delete t.full,t}var Lc={digest:"activity_digest",compact:"compact_activity",provenance:"provenance_activity",full:"activity"};function Kn(e,t){if(e===void 0)return;let n=e.trim();if(n.length===0)throw new y(`${t} must not be empty`,h.USAGE);return n}function gi(e,t,n){if(e===void 0)return;let r=e.trim();if(r.length===0)throw new y("Activity time bounds must not be empty",h.USAGE);let o=n==="--from"&&/^\d+[hdwm]$/iu.test(r)?`-${r}`:r;return ce(o,new Date(t),n)}function Fc(e,t,n){return!(e.ts.length===0&&(t||n)||t&&x(e.ts,t)<0||n&&x(e.ts,n)>=0)}function hi(e,t){return t===void 0?e:e.slice(0,t)}function Xe(e,t=""){return typeof e=="string"?e:t}function Mc(e,t){return{...t,id:e,ts:Xe(t.ts),author:Xe(t.author,"unknown"),op:Xe(t.op,"unknown"),patch:Array.isArray(t.patch)?t.patch:[],before_hash:Xe(t.before_hash),after_hash:Xe(t.after_hash)}}function Nc(e){return[...e].sort((t,n)=>{let r=n.ts.localeCompare(t.ts);if(r!==0)return r;let o=t.id.localeCompare(n.id);return o!==0?o:t.op.localeCompare(n.op)})}async function Oc(e){try{return(await Sc.readdir(e)).filter(t=>t.endsWith(".jsonl")).sort((t,n)=>t.localeCompare(n))}catch(t){if(Zr(t))return[];throw t}}function $c(e){return e.raw!==!0&&e.compact!==!0&&e.provenance!==!0?"digest":e.provenance===!0?"provenance":e.compact===!0||e.raw===!0&&e.compact!==!1?"compact":"full"}function Pc(e,t,n){if(e.unbounded!==!0)return t!==void 0?t:n==="digest"?Dc:n==="compact"?Tc:Rc}function jc(e,t){let n=H(),r=t==="digest",o=gi(e.to??(r?n:void 0),n,"--to"),i=gi(e.from??(r?Ac:void 0),e.from===void 0&&r?o:n,"--from");if(i&&o&&x(i,o)>=0)throw new y("Activity --from must be before --to",h.USAGE);let s=Nn(e.limit);if(e.unbounded===!0&&s!==void 0)throw new y("Activity --unbounded cannot be combined with --limit",h.USAGE);return{id:Kn(e.id,"Activity --id"),op:Kn(e.op,"Activity --op"),author:Kn(e.author,"Activity --author"),from:i,to:o,limit:Pc(e,s,t),limitSource:e.unbounded===!0||s!==void 0?"explicit":"default",harness:e.harness,agentInstance:e.agentInstance,provenance:e.provenanceFilter}}async function Uc(e){let t=R(process.cwd(),e.path);return await O(t),{pmRoot:t,settings:await L(t)}}async function Bc(e){let t=A(e.settings,S()),n=await ne(e.pmRoot,e.settings.item_format,t.type_to_folder,void 0,e.settings.schema);await $o({pmRoot:e.pmRoot,settings:e.settings,itemIds:n.map(o=>o.id),commandLabel:"activity"});let r=yi.join(e.pmRoot,"history");return await fo({path:r,scope:"project"}),{historyDir:r,itemsById:new Map(n.map(o=>[o.id,{title:o.title,type:o.type,status:o.status}]))}}function Gc(e,t,n){return n.op&&e.op!==n.op||n.author&&e.author!==n.author?!1:Fc(t,n.from,n.to)}async function Kc(e,t){let n=[];for(let r of await Oc(e)){let o=r.slice(0,-6);if(t.id&&o!==t.id)continue;let i=await Se(yi.join(e,r),o);for(let s of i){let a=Mc(o,s);Gc(s,a,t)&&n.push(a)}}return n}function Hc(e){return e.map(t=>({id:t.id,op:t.op,ts:t.ts,author:t.author,...t.message?{msg:t.message}:{}}))}function zc(e){let t=[...e.entries()].sort(([r,o],[i,s])=>s-o||r.localeCompare(i)),n=t.slice(0,4).map(([r,o])=>`${r}:${o}`);return t.length>n.length&&n.push(`+${t.length-n.length}`),n.join(",")}function Wc(e,t){let n=new Map;for(let r of e){let o=n.get(r.id);if(o===void 0){n.set(r.id,{firstTs:r.ts,lastTs:r.ts,eventCount:1,operations:new Map([[r.op,1]])});continue}o.eventCount+=1,x(r.ts,o.firstTs)<0&&(o.firstTs=r.ts),x(r.ts,o.lastTs)>0&&(o.lastTs=r.ts),o.operations.set(r.op,(o.operations.get(r.op)??0)+1)}return[...n.entries()].map(([r,o])=>{let i=t.get(r);return{id:r,type:i?.type??"unknown",status:i?.status??"unknown",title:(i?.title??"(item metadata unavailable)").slice(0,160),event_count:o.eventCount,first_ts:o.firstTs,last_ts:o.lastTs,operations:zc(o.operations)}}).sort((r,o)=>x(o.last_ts,r.last_ts)||r.id.localeCompare(o.id))}function qc(e){let t=new Map;for(let o of e)t.set(o.op,(t.get(o.op)??0)+1);let n=[...t.entries()].sort((o,i)=>i[1]-o[1]||o[0].localeCompare(i[0])),r=n.slice(0,8);return r.length<n.length&&r.push([`+${String(n.length-r.length)}`,n.slice(r.length).reduce((o,[,i])=>o+i,0)]),Object.fromEntries(r)}function Vc(e,t,n,r,o){if(e==="digest"){let s=Wc(t,r),a=hi(s,n);return{rows:{activity_digest:a},compact:!1,totalRows:s.length,returnedRows:a.length}}let i=hi(t,n);return e==="compact"?{rows:{compact_activity:Hc(i)},compact:!0,totalRows:t.length,returnedRows:i.length}:e==="provenance"?{rows:{provenance_activity:i.map(o)},compact:!1,totalRows:t.length,returnedRows:i.length}:{rows:{activity:i},compact:!1,totalRows:t.length,returnedRows:i.length}}async function _i(e,t){let n=await Uc(t),r=$c(e),o=jc(e,r),i=await Bc(n),s=Bt(n.settings.agent_identity.harness_signals),a=n.settings.agent_identity.identity_vocabulary,c=Gn({harness:o.harness,agentInstance:o.agentInstance,provenance:o.provenance},a,s),d=Nc(await Kc(i.historyDir,o)).filter(c),l=Vc(r,d,o.limit,i.itemsById,f=>Gt(f,a,{itemId:f.id})),u=l.totalRows-l.returnedRows;return{...l.rows,compact:l.compact,projection:{mode:r,row_key:Lc[r]},omission_receipt:Co("activity",r),count:l.returnedRows,total_count:l.totalRows,limit:o.limit??null,omitted_count:u,has_more:u>0,...r==="digest"?{activity_summary:{window:{from:o.from,to:o.to},event_count:d.length,item_count:l.totalRows,author_count:new Set(d.map(f=>f.author)).size,operation_counts:qc(d)}}:{},...e.provenanceSummary===!0?{provenance_summary:Kt(d,a,s)}:{},applied_bound:{kind:o.limit===void 0?"unbounded":"limit",source:o.limitSource,value:o.limit??null}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ee17fdea-aeac-55b0-8302-a8740ba8428e")}catch{}})();var Yc="global",S_="external",Xc=["open","closed","unknown"],Je=new Map,Jc=240,Qc=2048;function bi(e,t,n){return(e?.trim()||t).slice(0,n)}function Zc(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=e;return typeof t.status=="string"&&(t.title==null||typeof t.title=="string")&&(t.source==null||typeof t.source=="string")&&(t.checkedAt==null||typeof t.checkedAt=="string")}function T_(e){let t=e.name.trim();if(t.length===0)throw new Error("External dependency resolver name must not be empty");if(Je.has(t))throw new Error(`External dependency resolver already registered: ${t}`);let n={name:t,supports:r=>e.supports(r),resolve:r=>e.resolve(r)};return Je.set(t,n),()=>{Je.get(t)===n&&Je.delete(t)}}async function R_(e,t={}){let n=e.trim();if(!re(n))return null;let r=[...Je.values()].filter(i=>{try{return i.supports(n)}catch{return!1}}),o=await Promise.allSettled(r.map(i=>Promise.resolve().then(()=>i.resolve(n))));for(let[i,s]of o.entries()){if(s.status!=="fulfilled"||!Zc(s.value))continue;let a=r[i],c=s.value,d=Xc.includes(c.status)?c.status:"unknown",l=bi(c.title,"",Jc),u=bi(c.source,n,Qc),f=Date.parse(c.checkedAt?.trim()??""),m=Number.isFinite(f)?new Date(f).toISOString():t.now?.()??new Date().toISOString();return{id:n,status:d,resolved:d==="closed",title:l.length>0?l:null,source:u,checked_at:m,resolver:a.name}}return null}function D_(e){let t=e?.trim();if(t)return oe(t)?Yc:t}function A_(e,t,n){return ed(e,t,n)}function ed(e,t,n){let r=e.trim();return oe(n)||re(r)?r:Ft(r,t)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="d49d73c9-f988-5c3c-a22d-0580ee5526f6")}catch{}})();function B(){let e=J();for(let t of S()?.relationship_kinds??[])for(let n of t.definitions)e.register(n);return e}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="924f7718-0527-5967-8ab0-53e8228bd665")}catch{}})();function Qe(e){if(typeof e!="string")return;let t=e.trim().toLowerCase();return t.length>0?t:void 0}function Ht(e){return[e.parent_id,e.child_id,e.source,e.kind,e.holder_id,e.target_id??""].join("\0")}function td(e,t){let n=new Set,r=[];for(let o of[...e].sort()){if(n.has(o))continue;n.add(o);let i=[{nodeId:o,children:[...t.get(o)??[]].sort(),nextChild:0}];for(;i.length>0;){let s=i.at(-1),a=s.children[s.nextChild];a===void 0?(r.push(s.nodeId),i.pop()):(s.nextChild+=1,n.has(a)||(n.add(a),i.push({nodeId:a,children:[...t.get(a)??[]].sort(),nextChild:0})))}}return r}function nd(e,t){let n=[...e].sort(),r=td(n,t),o=new Set,i=rd(n,t),s=[];for(let a of r.reverse()){if(o.has(a))continue;let c=od(a,i,o);(c.length>1||t.get(c[0])?.has(c[0]))&&s.push(c)}return s.sort((a,c)=>a.join("\0").localeCompare(c.join("\0")))}function rd(e,t){let n=new Map(e.map(r=>[r,new Set]));for(let[r,o]of t)for(let i of o)n.get(i)?.add(r);return n}function od(e,t,n){let r=[],o=[e];for(n.add(e);o.length>0;){let i=o.pop();r.push(i);for(let s of[...t.get(i)].sort())n.has(s)||(n.add(s),o.push(s))}return r.sort()}function wi(e){let t=new Map;for(let n of e){let r=Qe(n?.id);r&&!t.has(r)&&t.set(r,n)}return t}function id(e,t,n){let r=Qe(t.parent);if(!(!r||!n.has(r)))return{parent_id:r,child_id:e,source:"scalar_parent",kind:"parent",holder_id:e,child_cardinality:"one"}}function sd(e,t,n,r){let o=Qe(t?.id),i=r.resolve(t?.kind);if(!o||!n.has(o)||!i?.hierarchy)return;let s=i.hierarchyDirection==="source_parent";return{parent_id:s?e:o,child_id:s?o:e,source:"dependency",kind:i.kind,holder_id:e,target_id:o,child_cardinality:s?i.incoming:i.outgoing}}function ki(e,t){let n=new Map;for(let[r,o]of e){let i=id(r,o,e);i&&n.set(Ht(i),i);for(let s of o.dependencies??[]){let a=sd(r,s,e,t);a&&n.set(Ht(a),a)}}return[...n.values()].sort((r,o)=>Ht(r).localeCompare(Ht(o)))}function vi(e,t=B()){return ki(wi(e),t)}function ad(e,t,n){let r=new Set(e.filter(o=>o.child_cardinality==="one").map(o=>o.child_id));return[...t].filter(([o,i])=>i.length>1&&r.has(o)).map(([o,i])=>({child_id:o,parent_ids:[...i],legacy_terminal:n.has(o)&&i.every(s=>n.has(s))})).sort((o,i)=>o.child_id.localeCompare(i.child_id))}function cd(e,t,n){let r=new Map;for(let i of t){if(i.source!=="dependency")continue;let s=r.get(i.child_id)??new Set;s.add(i.parent_id),r.set(i.child_id,s)}let o=[];for(let[i,s]of e){let a=Qe(s.parent);if(!a||!e.has(a))continue;let c=[...r.get(i)??[]].filter(d=>d!==a).sort();c.length!==0&&o.push({child_id:i,scalar_parent_id:a,dependency_parent_ids:c,legacy_terminal:n.has(i)&&n.has(a)&&c.every(d=>n.has(d))})}return o.sort((i,s)=>i.child_id.localeCompare(s.child_id))}function zt(e,t=r=>r==="closed"||r==="canceled",n=B()){let r=wi(e),o=ki(r,n),i=zn(o),s=new Set([...r].filter(([,c])=>t(c.status)).map(([c])=>c)),a=nd([...r.keys()],new Map([...i.children_by_parent].map(([c,d])=>[c,new Set(d)]))).map(c=>({item_ids:c,legacy_terminal:c.every(d=>s.has(d))}));return{relations:o,cycles:a,cardinality_violations:ad(o,i.parents_by_child,s),divergences:cd(r,o,s)}}function U_(e){return e.source==="scalar_parent"?`${e.parent_id} -> ${e.child_id} (scalar parent on ${e.holder_id})`:`${e.parent_id} -> ${e.child_id} (${e.kind} dependency on ${e.holder_id})`}function zn(e){let t=new Map,n=new Map;for(let r of e){let o=t.get(r.child_id)??new Set;o.add(r.parent_id),t.set(r.child_id,o);let i=n.get(r.parent_id)??new Set;i.add(r.child_id),n.set(r.parent_id,i)}return{parents_by_child:new Map([...t].map(([r,o])=>[r,[...o].sort()])),children_by_parent:new Map([...n].map(([r,o])=>[r,[...o].sort()]))}}function Hn(e,t){let n=new Set(t);return e.every(r=>n.has(r))}function B_(e,t,n,r,o){let i=Qe(n);if(!i)return;let s=zt(e,r,o),a=zt(t,r,o),c=a.divergences.find(u=>!s.divergences.some(f=>f.child_id===u.child_id&&f.scalar_parent_id===u.scalar_parent_id&&Hn(u.dependency_parent_ids,f.dependency_parent_ids)));if(c){let u=[c.scalar_parent_id,...c.dependency_parent_ids].sort();throw new y(`Hierarchy mutation would assign ${c.child_id} to multiple parents: ${u.join(", ")}.`,h.CONFLICT,{code:"hierarchy_parent_divergence_created",source_id:i,target_id:c.child_id,verification_errors:u})}let d=a.cardinality_violations.find(u=>(u.child_id===i||u.parent_ids.includes(i))&&!s.cardinality_violations.some(f=>f.child_id===u.child_id&&Hn(u.parent_ids,f.parent_ids)));if(d)throw new y(`Hierarchy mutation would assign ${d.child_id} to multiple parents: ${d.parent_ids.join(", ")}.`,h.CONFLICT,{code:"hierarchy_cardinality_created",source_id:i,target_id:d.child_id,verification_errors:d.parent_ids});let l=a.cycles.find(u=>u.item_ids.includes(i)&&!s.cycles.some(f=>Hn(u.item_ids,f.item_ids)));if(l)throw new y(`Hierarchy mutation would create a cycle: ${l.item_ids.join(" -> ")}.`,h.CONFLICT,{code:"hierarchy_cycle_created",source_id:i,verification_errors:l.item_ids})}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="e04a91fa-4625-50fd-9bfd-c712126baf0d")}catch{}})();function Me(e){if(typeof e!="string")return;let t=e.trim();if(!(!t||["none","null","n/a","na"].includes(t.toLowerCase())))return t}function Ze(e){let t=Me(e);return t?.toLowerCase()==="no-active-blocker"?void 0:t}function et(e,t,n=!0){let r=Me(e);return n&&(oe(t)||r!==void 0&&re(r))}function Wn(e,t){return et(e,t)?`external\0${e}`:`local\0${e.toLowerCase()}`}function Ei(e,t,n,r){return et(e,t)?r.get(e):n.get(e.toLowerCase())}function Fe(e,t){let n=e.toLowerCase(),r=t.toLowerCase();return n!==r?n<r?-1:1:e!==t?e<t?-1:1:0}function dd(e){let t=new Map;for(let n of e.dependencies??[]){if(typeof n!="object"||n===null)continue;let r=n,o=Me(r.id);if(!o)continue;let i=typeof r.kind=="string"?r.kind:"related",s=`${i}\0${Wn(o,r.source_kind)}`,a=t.get(s);a?a.count+=1:t.set(s,{target_id:o,kind:i,count:1})}return t}function ld(e,t=n=>n==="closed"||n==="canceled"){let n=[];for(let r of e)if(!(typeof r?.id!="string"||r.id.trim().length===0))for(let o of dd(r).values())o.count<2||n.push({holder_id:r.id.trim(),target_id:o.target_id,kind:o.kind,occurrences:o.count,holder_status:r.status,legacy_terminal:t(r.status)});return n.sort((r,o)=>{let i=Fe(r.holder_id,o.holder_id);if(i!==0)return i;let s=Fe(r.target_id,o.target_id);return s!==0?s:Fe(r.kind,o.kind)})}function ud(e,t,n,r,o){if(typeof n!="object"||n===null)return;let i=Me(n.id);if(!i||Wn(i,n.source_kind)!==Wn(t))return;let s=o.resolve(typeof n.kind=="string"?n.kind:"related");if(!(s?.ordering!==!0||(s.precedence??"source_before_target")!=="source_before_target"))return{holder_id:e.id.trim(),target_id:i,dependency_kind:s.kind,holder_status:e.status,legacy_terminal:r(e.status)}}function fd(e,t=r=>r==="closed"||r==="canceled",n=B()){let r=new Map;for(let o of e){if(typeof o?.id!="string"||o.id.trim().length===0)continue;let i=Me(o.blocked_by);if(i)for(let s of o.dependencies??[]){let a=ud(o,i,s,t,n);a&&r.set(`${a.holder_id.toLowerCase()}\0${a.target_id.toLowerCase()}\0${a.dependency_kind}`,a)}}return[...r.values()].sort((o,i)=>{let s=Fe(o.holder_id,i.holder_id);if(s!==0)return s;let a=Fe(o.target_id,i.target_id);return a!==0?a:Fe(o.dependency_kind,i.dependency_kind)})}function qn(e,t=n=>n==="closed"||n==="canceled"){let n=e.filter(c=>typeof c?.id=="string"&&c.id.trim().length>0),r=new Set(n.map(c=>c.id.trim().toLowerCase())),o=new Map,i=(c,d,l,u,f)=>{let m=Me(d);if(!m||r.has(m.toLowerCase())||et(m,void 0,f))return;let p={holder_id:c.id.trim(),target_id:m,kind:l,source:u,holder_status:c.status,legacy_terminal:t(c.status),no_active_blocker_sentinel:m.toLowerCase()==="no-active-blocker"};o.set(`${p.holder_id}::${p.target_id}::${p.kind}::${p.source}`,p)};for(let c of n){i(c,c.parent,"parent","parent",!1),i(c,c.blocked_by,"blocked_by","blocked_by",!0);for(let d of c.dependencies??[]){if(typeof d!="object"||d===null)continue;let l=d;oe(l.source_kind)||i(c,l.id,typeof l.kind=="string"?l.kind:"related","dependency",!0)}}let s=[...o.values()].sort((c,d)=>c.holder_id.localeCompare(d.holder_id)||c.target_id.localeCompare(d.target_id)||c.kind.localeCompare(d.kind)||c.source.localeCompare(d.source)),a=s.filter(c=>c.legacy_terminal);return{active:s.filter(c=>!c.legacy_terminal),legacy_terminal:a,no_active_blocker_sentinels:s.filter(c=>c.no_active_blocker_sentinel)}}function pd(e){let t=new Map;for(let n of[...e.active,...e.legacy_terminal]){if(n.no_active_blocker_sentinel)continue;let r=n.target_id.trim(),o=r.toLowerCase();t.has(o)||t.set(o,r)}return[...t.values()].sort((n,r)=>n.localeCompare(r))}function md(e){let t=new Map;for(let n of e){let r=Ze(n.blocked_by);r&&et(r)&&!t.has(r)&&t.set(r,r);for(let o of n.dependencies??[]){if(typeof o!="object"||o===null||!et(o.id,o.source_kind))continue;let i=Ze(o.id);i&&!t.has(i)&&t.set(i,i)}}return[...t.values()].sort((n,r)=>n.localeCompare(r))}var Ii=new WeakMap;function Wt(e){return e.hierarchyIntegrity??Ii.get(e)}function gd(e,t=B()){let n={};for(let r of e)for(let o of r.dependencies??[]){if(typeof o!="object"||o===null)continue;let i=o.kind;if(typeof i!="string")continue;let s=i.trim().toLowerCase().replaceAll("-","_"),a=t.resolve(i);a&&s!==a.kind&&(n[s]=(n[s]??0)+1)}return Object.fromEntries(Object.entries(n).sort(([r],[o])=>r.localeCompare(o)))}function Ne(e,t,n){let r=n??B(),o=e.filter(p=>typeof p?.id=="string"&&p.id.trim().length>0),i=new Map(o.map(p=>[p.id.trim().toLowerCase(),p.id.trim()])),s=qn(o,t),a=pd(s);for(let p of a)i.set(p.toLowerCase(),p);let c=md(o),d=new Set(i.keys()),l=new Map;for(let p of c){let g=p;for(;d.has(g.toLowerCase());)g=`external:${g}`;l.set(p,g),d.add(g.toLowerCase())}let u=o.map(p=>{let g=Ze(p.parent),_=Ze(p.blocked_by),k=(p.dependencies??[]).flatMap(b=>{if(typeof b!="object"||b===null)return[];let w=b,v=Ze(w.id);return v?[{id:Ei(v,w.source_kind,i,l),kind:typeof w.kind=="string"?w.kind:"related"}]:[]});return{id:p.id.trim(),...g?{parent:i.get(g.toLowerCase())}:{},..._?{blocked_by:Ei(_,void 0,i,l)}:{},dependencies:k}}),f=zt(o,t,r),m={graph:lo.fromItems([...u,...a.map(p=>({id:p})),...c.map(p=>({id:l.get(p)}))],r),details:[...o.map(p=>({id:p.id.trim(),title:p.title,status:p.status,...typeof p.type=="string"&&p.type.trim().length>0?{type:p.type.trim()}:{}})),...a.map(p=>({id:p,title:`[missing] ${p}`,status:"missing"})),...c.map(p=>({id:l.get(p),title:`[external] ${p}`,status:"external"}))],missingIdSet:new Set(a.map(p=>p.toLowerCase())),dangling:s,duplicateRows:ld(o,t),orderingContradictions:fd(o,t,r),legacyAliasCounts:gd(o,r),hierarchyIntegrity:f};return Ii.set(m,f),m}import{createHash as hd}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 yd=64,_d=8;function bd(e,t){let n=(e.dependencies??[]).map(r=>{if(typeof r!="object"||r===null)return"";let o=r;return`${typeof o.kind=="string"?o.kind:"related"}:${typeof o.id=="string"?o.id:""}`}).sort().join(",");return[e.id,e.title,e.status,t(e.status)?"1":"0",typeof e.type=="string"?e.type.trim():"",e.parent??"",e.blocked_by??"",n].join("\0")}function qt(e,t=r=>r==="closed"||r==="canceled",n=J()){let r=e.filter(i=>typeof i?.id=="string"&&i.id.trim().length>0).map(i=>bd(i,t)).sort(),o=n.list().map(i=>xe(i)).sort();return hd("sha256").update(r.join("")).update("").update(o.join("")).digest("hex")}function xi(e,t,n){let r=t??n;if(!Number.isInteger(r)||r<1)throw new TypeError(`Invalid ${e} bound: ${String(t)}`);return r}var Vn=class{#e=new Map;#t;#n;constructor(t={}){this.#t=xi("maxResultsPerWorkspace",t.maxResultsPerWorkspace,yd),this.#n=xi("maxWorkspaces",t.maxWorkspaces,_d)}lookup(t,n,r){let o=this.#e.get(t),i=!0;(o===void 0||o.fingerprint!==n)&&(o={fingerprint:n,assembly:r(),results:new Map},i=!1,!this.#e.has(t)&&this.#e.size>=this.#n&&this.#e.delete(this.#e.keys().next().value)),this.#e.delete(t),this.#e.set(t,o);let s=o,a=this.#t;return{assembly:s.assembly,assemblyReused:i,fingerprint:n,memoize(c,d){let l=s.results.get(c);if(l!==void 0||s.results.has(c))return s.results.delete(c),s.results.set(c,l),{value:structuredClone(l),reused:!0};let u=d();return s.results.size>=a&&s.results.delete(s.results.keys().next().value),s.results.set(c,structuredClone(u)),{value:u,reused:!1}}}}clear(){this.#e.clear()}},Ci=new Vn;function Vt(){return Ci}function Q_(){Ci.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]="afdba960-ae43-52be-b21d-282dac1f22ff")}catch{}})();var wd=["prerequisite","dependent","ancestor","descendant","provenance","related"],kd=new TextEncoder;function Yn(e,t,n){let r=e??t;if(!Number.isInteger(r)||r<1)throw new TypeError(`Relationship context ${n} must be positive`);return r}function Yt(e){return Math.max(1,Math.ceil(kd.encode(JSON.stringify(e)).byteLength/4))}function Xn(e,t,n){let r=n.resolve(e.kind);if(r?.ordering){let i=(r.precedence??"source_before_target")==="source_before_target"?e.source:e.target;return t===i?"prerequisite":"dependent"}if(r?.hierarchy){let i=r.hierarchyDirection==="source_parent"?e.source:e.target;return t===i?"ancestor":"descendant"}return e.kind==="discovered_from"||e.kind==="incident_from"?"provenance":"related"}function vd(e,t,n,r){let o=e.filter(i=>i.source===t&&i.target===n||i.target===t&&i.source===n).map(i=>Xn(i,n,r));return[...new Set(o)].sort()}function Ed(e){return wd.find(t=>e.includes(t))}function Id(e,t,n,r){let o=r.direction??"both",i=r.maxDepth??3;if(!Number.isInteger(i)||i<0)throw new TypeError("Relationship context maxDepth must be non-negative");let s=new Set([t]),a=[{id:t,distance:0}],c=[],d=0,l=!1;for(let u=0;u<a.length;u+=1){r.signal?.throwIfAborted();let f=a[u];if(f.distance>=i&&l)continue;let m=e.neighborEdges(f.id,{direction:o,kinds:r.kinds,signal:r.signal});if(d+=m.meta.inspectedEdges,f.distance>=i){m.value.some(p=>!s.has(p.id))&&(l=!0);continue}for(let{id:p,edge:g}of m.value){if(s.has(p))continue;s.add(p);let _={id:p,distance:f.distance+1,via:f.id,role:Xn(g,p,n)};c.push(_),a.push(_)}}return c.sort((u,f)=>u.distance-f.distance||u.id.localeCompare(f.id)),{rows:c,visitedNodes:a.length,inspectedEdges:d,depthTruncated:l}}function xd(e,t,n,r){let o={prerequisite:0,dependent:0,ancestor:0,descendant:0,provenance:0,related:0},i=e.neighborEdges(t,{direction:r.direction??"both",kinds:r.kinds,signal:r.signal}).value;for(let{id:s,edge:a}of i)o[Xn(a,s,n)]+=1;return{directEdges:o,directTotal:i.length,rootEdges:i.map(({edge:s})=>s)}}function Cd(e){let t=[],n=e.initialTokens;for(let r of e.candidates){if(t.length>=e.nodeLimit)break;let o=r.distance===1?vd(e.rootEdges,e.rootId,r.id,e.registry):[],i={...e.details.get(r.id)??{id:r.id},distance:r.distance,role:o.length>0?Ed(o):r.role,via:r.via,reasons:o.length>0?o:[`${r.role} via ${r.via} (depth ${r.distance})`]},s=Yt(i);if(n+s>e.tokenBudget)break;t.push(i),n+=s}if(e.candidates.length>0&&t.length===0)throw new TypeError("Relationship context tokenBudget cannot fit one node");return{nodes:t,usedTokens:n}}function Sd(e){let t=e.options.kinds?new Set(e.options.kinds.map(i=>e.registry.require(i).kind)):void 0,n=e.graph.edges().filter(i=>{if(!e.included.has(i.source)||!e.included.has(i.target))return!1;if(t===void 0||t.has(i.kind))return!0;let s=e.registry.resolve(i.kind)?.inverse;return s!==void 0&&t.has(s)}),r=[],o=e.initialTokens;for(let i of n){if(r.length>=e.edgeLimit)break;let s=Yt(i);if(o+s>e.tokenBudget)break;r.push(i),o+=s}return{edges:r,usedTokens:o,candidateCount:n.length}}function Si(e,t,n,r={}){if(!e.nodes().includes(t))throw new TypeError(`Relationship node not found: ${t}`);let o=Yn(r.nodeLimit,20,"nodeLimit"),i=Yn(r.edgeLimit,40,"edgeLimit"),s=Yn(r.tokenBudget,1200,"tokenBudget"),a=r.registry??J(),c=new Map(n.map(K=>[K.id,K])),d=c.get(t)??{id:t},{evidence:l=[],...u}=d,f=[...l],m=Id(e,t,a,r),{rootEdges:p,...g}=xd(e,t,a,r),_=ue("relationship-context",{rootId:t,direction:r.direction??"both",kinds:[...r.kinds??[]].sort(),maxDepth:r.maxDepth??3}),k=Te(m.rows,r.cursor,_,({id:K})=>K),b=m.rows.slice(k),w=Yt(u)+Yt(f);if(w>s)throw new TypeError("Relationship context tokenBudget cannot fit root and evidence");let v=Cd({candidates:b,details:c,rootEdges:p,rootId:t,registry:a,nodeLimit:o,tokenBudget:s,initialTokens:w}),{nodes:I}=v,F=new Set([t,...I.map(({id:K})=>K)]),N=Sd({graph:e,included:F,options:r,registry:a,edgeLimit:i,tokenBudget:s,initialTokens:v.usedTokens}),{edges:D,usedTokens:le}=N,P=k+I.length,G=P<m.rows.length,X=I.at(-1),ee=N.candidateCount-D.length,se=m.depthTruncated||G||ee>0,z={rootId:t,...u.status===void 0?{}:{rootStatus:u.status},...g,discoveredNodes:m.rows.length,returnedNodes:I.length,returnedEdges:D.length,omittedNodes:m.rows.length-P,omittedEdges:ee,evidenceCount:f.length,hasMore:G};return{root:u,summary:z,nodes:I,edges:D,evidence:f,meta:{exact:!0,truncated:se,completeness:se?"truncated":"complete",nodeLimit:o,edgeLimit:i,tokenBudget:s,usedTokens:le,visitedNodes:m.visitedNodes,inspectedEdges:m.inspectedEdges,omittedNodes:m.rows.length-P,omittedEdges:ee,...G&&X?{nextCursor:te(_,X.id,P-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]="74a825f3-1301-5dc5-a887-c6ff68f6d7ec")}catch{}})();var Td=["tree","graph","context"],Rd=["none","repeated"],Dd=["outgoing","incoming","both"],Ad=32,Ld=200,Fd=400,Md=16e3;function Nd(e){let t=e?.trim().toLowerCase()??"tree";if(Td.includes(t))return t;throw new y(`Invalid --format value "${e}". Use "tree", "graph", or "context".`,h.USAGE)}function ie(e,t){if(e===void 0)return;let n=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(n)||n<1)throw new y(`Invalid --${t} value "${e}". Use a positive integer.`,h.USAGE);return n}function Xt(e){if(e===void 0)return;let t=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(t)||t<0)throw new y(`Invalid --max-depth value "${e}". Use a non-negative integer.`,h.USAGE);return t}function Od(e){let t=e?.trim().toLowerCase()??"none";if(Rd.includes(t))return t;throw new y(`Invalid --collapse value "${e}". Use "none" or "repeated".`,h.USAGE)}function Qn(e){let t=e?.trim().toLowerCase()??"both";if(Dd.includes(t))return t;throw new y(`Invalid --direction value "${e}". Use "outgoing", "incoming", or "both".`,h.USAGE)}function Zn(e,t=J()){if(e===void 0)return;let n=(Array.isArray(e)?e:[e]).flatMap(o=>o.split(",")).map(o=>o.trim()).filter(o=>o.length>0);if(n.length===0)return;let r=new Set;for(let o of n){let i=t.resolve(o);if(!i){let s=t.list().map(a=>a.kind).join(", ");throw new y(`Invalid --kind value "${o}". Registered kinds: ${s}.`,h.USAGE)}r.add(i.kind)}return[...r].sort()}function $d(e){if(!e||e.length===0)return[];let t=e.map(({id:r,kind:o})=>({id:r.trim(),kind:o.trim().toLowerCase()})).sort((r,o)=>{let i=r.kind.localeCompare(o.kind);return i!==0?i:r.id.localeCompare(o.id)}),n=new Map;for(let r of t){let o=`${r.kind.toLowerCase()}::${r.id.toLowerCase()}`;n.has(o)||n.set(o,{id:r.id,kind:r.kind})}return[...n.values()]}function Pd(e){return{id:e.id,title:e.title,type:e.type,status:e.status,dependencies:$d(e.dependencies)}}function jd(e){return St(new TextEncoder().encode(JSON.stringify({...e,dependencies:void 0})).byteLength)}function Ud(e,t,n,r,o,i,s,a,c){for(let d of t.dependencies){let l=Math.max(1,Math.ceil(JSON.stringify({from:e.id,to:d.id,kind:d.kind}).length/3));if(a.nodes>=a.nodeLimit){e.truncated=!0,a.reasons.add("node_limit");break}if(a.edges>=a.edgeLimit){e.truncated=!0,a.reasons.add("edge_limit");break}if(a.estimatedTokens+l>=a.tokenBudget){e.truncated=!0,a.reasons.add("token_budget");break}a.edges+=1,a.estimatedTokens+=l,e.dependencies.push(Ri(d.id,n,r,o,i,s,a,c+1,d.kind))}}function Bd(e,t,n,r,o,i,s,a){return s.estimatedTokens>=s.tokenBudget&&t?.dependencies.length?(e.truncated=!0,s.reasons.add("token_budget"),!0):!t||e.cycle?!0:r!==void 0&&a>=r?(t.dependencies.length>0&&(e.truncated=!0,s.reasons.add("max_depth")),!0):o==="repeated"&&i.has(n)?(e.collapsed=!0,!0):!1}function Ri(e,t,n,r,o,i,s,a=0,c){let d=e.trim().toLowerCase(),l=t.get(d),u={id:l?.id??e,title:l?.title,type:l?.type,status:l?.status,via:c,missing:!l,cycle:n.has(d),dependencies:[]};if(s.nodes+=1,s.estimatedTokens+=jd(u),Bd(u,l,d,r,o,i,s,a))return u;o==="repeated"&&i.add(d);let f=new Set(n);return f.add(d),Ud(u,l,t,f,r,o,i,s,a),u}function Ti(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 Gd(e){let t=new Map,n=new Map,r=[e];for(;r.length>0;){let a=r.pop();t.set(a.id,Ti(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,Ti(t.get(c.id),{id:c.id,title:c.title,type:c.type,status:c.status,missing:c.missing}));let d=c.via??"related",l=`${a.id}::${c.id}::${d}`;n.has(l)||n.set(l,{from:a.id,to:c.id,kind:d}),c.cycle||r.push(c)}}let o=[...t.values()].sort((a,c)=>a.id.localeCompare(c.id)),i=[...n.values()].sort((a,c)=>{let d=a.from.localeCompare(c.from);if(d!==0)return d;let l=a.to.localeCompare(c.to);return l!==0?l:a.kind.localeCompare(c.kind)}),s=o.filter(a=>a.missing).map(a=>a.id);return{root_id:e.id,nodes:o,edges:i,missing_ids:s}}function Di(e,t,n){let r=new Set,o=new Set,i=new Set,s=new Set,a=[{id:e,depth:0}],c=0;for(;c<a.length;){let d=a[c++],l=d.id.trim().toLowerCase();r.add(l);let u=t.get(l);if(!u){i.add(l);continue}if(!(n!==void 0&&d.depth>=n)&&!s.has(l)){s.add(l);for(let f of u.dependencies)o.add(`${l}::${f.id.trim().toLowerCase()}::${f.kind}`),a.push({id:f.id,depth:d.depth+1})}}return{node_count:r.size,edge_count:o.size,edge_basis:"deduplicated_directed",missing_count:i.size}}function Kd(e,t=J()){let n=Xt(e.maxDepth),r=ie(e.nodeLimit,"node-limit"),o=ie(e.edgeLimit,"edge-limit"),i=ie(e.tokenBudget,"token-budget"),s=Zn(e.kind,t);return{direction:Qn(e.direction),...s===void 0?{}:{kinds:s},...n===void 0?{}:{maxDepth:n},...r===void 0?{}:{nodeLimit:r},...o===void 0?{}:{edgeLimit:o},...i===void 0?{}:{tokenBudget:i},...e.cursor?.trim()?{cursor:e.cursor.trim()}:{}}}function Hd(e,t,n,r){return Si(e.graph,t,e.details.map(o=>o.id===t&&r.length>0?{...o,evidence:r}:o),n)}function Jn(e,t,n,r){for(let o of n.slice(0,r)){let i=o?.trim();i&&e.push(`${t}:${i}`)}}async function zd(e,t,n,r){let o=await fe(e,t,n.id_prefix,n.item_format,r);if(!o)return[];let{document:i}=await pe(o,{schema:n.schema}),s=i.metadata,a=s.files??[],c=s.tests??[],d=s.docs??[],l=[["files",a.length],["tests",c.length],["docs",d.length],["comments",(s.comments??[]).length],["notes",(s.notes??[]).length],["learnings",(s.learnings??[]).length]];if(l.every(([,f])=>f===0))return[];let u=[`linked:${l.map(([f,m])=>`${f}=${m}`).join(",")}`];return Jn(u,"file",a.map(f=>f.path),3),Jn(u,"test",c.map(f=>f.command??f.path),2),Jn(u,"doc",d.map(f=>f.path),2),u}function Wd(e){let{canonicalId:t,context:n,missingCount:r,missingReferences:o,referenceLimit:i,summaryOnly:s}=e;return{id:t,format:"context",node_count:n.nodes.length+1,edge_count:n.edges.length,edge_basis:"deduplicated_directed",missing_count:r,missing_scope:"traversal",missing_reference_count:o.length,...s?{}:{missing_references:o.slice(0,i),context:n}}}function qd(e){let{row:t,missingReachableSet:n,packetIds:r,filteredKinds:o,registry:i}=e;if(t.no_active_blocker_sentinel||!n.has(t.target_id.trim().toLowerCase())||!r.has(t.holder_id))return!1;if(o===void 0)return!0;let s=i.resolve(t.kind);return s!==void 0&&(o.has(s.kind)||s.inverse!==void 0&&o.has(s.inverse))}function Ai(e,t,n){let r;for(;;){let o=St(new TextEncoder().encode(Ln(Dn("deps",e),t)).byteLength);if(o===r)return o;n(o),r=o}}function Vd(e){return e instanceof TypeError&&e.message.startsWith("Relationship context tokenBudget cannot fit ")}function Yd(e){try{return Hd(e.assembly,e.canonicalId,{...e.contextOptions,...e.internalTokenBudget===void 0?{}:{tokenBudget:e.internalTokenBudget}},e.rootEvidence)}catch(t){if(e.smallestResult!==void 0&&Vd(t))return e.smallestResult;throw t}}function Xd(e){let{assembly:t,canonicalId:n,contextOptions:r,rootEvidence:o,summaryOnly:i,outputFormat:s,missingCount:a,missingReferences:c}=e,l=r.edgeLimit??40,u=r.tokenBudget,f,m;for(;;){let p=Yd({assembly:t,canonicalId:n,contextOptions:r,internalTokenBudget:u,rootEvidence:o,smallestResult:m});if("format"in p)return p;let g=p;f??=g.meta.tokenBudget,u??=f;let _=Wd({canonicalId:n,context:g,missingCount:a,missingReferences:c,referenceLimit:l,summaryOnly:i});if(m=_,i||(g.meta.tokenBudget=f,g.meta.usedTokens=Ai(Oe(_,!1),s,w=>{g.meta.usedTokens=w}),g.meta.usedTokens<=f))return _;if(l>0){l-=1;continue}let k=u,b=k*f/g.meta.usedTokens;u=Math.min(k-1,Math.max(1,Math.floor(b*.9)))}}function Jd(e){let{assembly:t,canonicalId:n,options:r,rootEvidence:o,summaryOnly:i,outputFormat:s}=e,a=Kd(r,t.graph.registry()),c=t.graph.closure(n,{direction:a.direction,...a.kinds===void 0?{}:{kinds:a.kinds},maxDepth:a.maxDepth??3}),d=c.value.filter(g=>t.missingIdSet.has(g.toLowerCase())),l=new Set(d.map(g=>g.toLowerCase())),u=t.graph.registry(),f=a.kinds?new Set(a.kinds.map(g=>u.require(g).kind)):void 0,m=new Set([n,...c.value]),p=[...t.dangling.active,...t.dangling.legacy_terminal].filter(g=>qd({row:g,missingReachableSet:l,packetIds:m,filteredKinds:f,registry:u}));return Xd({assembly:t,canonicalId:n,contextOptions:a,rootEvidence:o,summaryOnly:i,outputFormat:s,missingCount:d.length,missingReferences:p})}function Qd(e){let t=[e],n;for(;t.length>0;){let r=t.pop();r.dependencies.length>0&&(n=r,t.push(...r.dependencies))}return n?(n.dependencies.pop(),n.truncated=!0,!0):!1}function Zd(e,t,n,r,o,i,s){let a=o??Ad,c=ie(n.nodeLimit,"node-limit")??Ld,d=ie(n.edgeLimit,"edge-limit")??Fd,l=ie(n.tokenBudget,"token-budget")??Md,u={nodeLimit:c,edgeLimit:d,tokenBudget:l,nodes:0,edges:0,estimatedTokens:0,reasons:new Set},f=Ri(e,r,new Set,a,t==="graph"?"repeated":i,new Set,u),m=Di(e,r,void 0),p;for(;;){let g=Gd(f),_=u.reasons.size===0?void 0:{reasons:[...u.reasons].sort(),limits:{max_depth:a,node_limit:c,edge_limit:d,token_budget:l},estimated_tokens:0,total_node_count:m.node_count,total_edge_count:m.edge_count,omitted_node_count:Math.max(0,m.node_count-g.nodes.length),omitted_edge_count:Math.max(0,m.edge_count-g.edges.length)},k={id:e,format:t,node_count:g.nodes.length,edge_count:g.edges.length,edge_basis:"deduplicated_directed",missing_count:g.missing_ids.length,..._?{truncation:_}:{}};if(p=t==="tree"?{...k,tree:f}:{...k,graph:g},(p.truncation===void 0?St(new TextEncoder().encode(Ln(Dn("deps",Oe(p,!1)),s)).byteLength):Ai(Oe(p,!1),s,w=>{p.truncation.estimated_tokens=w}))<=l)return p;if(!Qd(f))return u.reasons.add("token_budget"),p;u.reasons.add("token_budget")}}function Oe(e,t,n={}){let r={name:e.format==="tree"?"dependency_tree":e.format==="graph"?"dependency_graph":"relationship_context",restore_with:"--full"};return{...e,legacy_alias_counts:n,projection:{mode:t?"summary":"full",declared_field_groups:[r],included_field_groups:t?[]:[r.name]}}}async function wb(e,t,n){let r=R(process.cwd(),n.path);await O(r);let o=Nd(t.format),i=Xt(t.maxDepth),s=Od(t.collapse);xt(t.summary===!0,t.full===!0,"--summary");let a=t.summary===!0,c=await L(r),d=A(c,S()),l=await ne(r,c.item_format,d.type_to_folder,void 0,c.schema),u=q(c.schema),f=new Map(l.map(p=>[p.id.trim().toLowerCase(),Pd(p)])),m=qn(l,p=>M(p,u));for(let p of[...m.active,...m.legacy_terminal]){let g=f.get(p.holder_id.trim().toLowerCase()),_=p.kind.trim().toLowerCase();g&&!g.dependencies.some(k=>k.id.trim().toLowerCase()===p.target_id.trim().toLowerCase()&&k.kind===_)&&g.dependencies.push({id:p.target_id,kind:_})}if(!f.has(e.trim().toLowerCase()))throw new y(`Item ${e} not found`,h.NOT_FOUND);if(o==="context"){let p=f.get(e.trim().toLowerCase()).id,g=a?[]:await zd(r,p,c,d.type_to_folder),_=w=>M(w,u),k=B(),b=Vt().lookup(r,qt(l,_,k),()=>Ne(l,_,k));return Oe(Jd({assembly:b.assembly,canonicalId:p,options:t,rootEvidence:g,summaryOnly:a,outputFormat:n.json===!0?"json":"toon"}),a,b.assembly.legacyAliasCounts)}return a?Oe({id:e,format:o,...Di(e,f,i)},!0,Object.fromEntries(Object.entries(Ne(l,p=>M(p,u)).legacyAliasCounts))):Oe(Zd(e,o,t,f,i,s,n.json===!0?"json":"toon"),!1,Object.fromEntries(Object.entries(Ne(l,p=>M(p,u)).legacyAliasCounts)))}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ac2b3cd9-5a98-5fea-888c-e96de8cd593d")}catch{}})();var el=5,tl=1e4,nl=8;function er(e,t){if(!Number.isFinite(t)||!Number.isInteger(t)||t<0)throw new TypeError(`Invalid path ${e} bound: ${String(t)}`)}function Jt(e,t){return t.hierarchyDirection==="target_parent"?e.target:e.source}function tt(e,t){return(t.precedence??"source_before_target")==="target_before_source"?e.target:e.source}function Qt(e,t){let n=tt(e,t);return{predecessor:n,successor:n===e.source?e.target:e.source}}function rl(e,t,n){if(t===void 0)return;let r=e.registry(),o=new Set;for(let i of t){let s=r.require(i),a=s.traversal;if(a==="association")throw new TypeError(`Relationship kind ${s.kind} uses association traversal; use graph impact --direction both`);if(a!==n&&a!=="semantic"){let c=a==="hierarchy"?"graph ancestors or graph descendants":"graph predecessors or graph successors";throw new TypeError(`Relationship kind ${s.kind} uses ${a} traversal; use ${c}`)}o.add(s.kind)}return o}function ol(e,t,n,r,o){let i=e.registry(),s=e.neighborEdges(t,{direction:"both",...n===void 0?{}:{kinds:[...n]}}),a=[],c=new Set;for(let d of s.value){let l=i.require(d.edge.kind);n===void 0&&!l[r]||o(d,l,t)&&(c.has(d.id)||(c.add(d.id),a.push(d.id)))}return{neighbors:a,inspectedEdges:s.meta.inspectedEdges}}function il(e,t,n,r,o,i){if(t>=n)return e.neighbors.some(s=>!i.seen.has(s))&&(i.truncated=!0),!1;for(let s of e.neighbors)if(!i.seen.has(s)){if(i.seen.add(s),i.queue.push({id:s,depth:t+1}),!i.resumed){s===o&&(i.resumed=!0);continue}if(i.value.length>=r)return i.truncated=!0,!0;i.value.push(s)}return!1}function Zt(e,t,n,r,o){if(!e.hasNode(t))throw new TypeError(`Relationship node not found: ${t}`);let i=rl(e,n.kinds,r),s=n.limit??Number.POSITIVE_INFINITY,a=n.maxDepth??Number.POSITIVE_INFINITY,c=n.after,d={seen:new Set([t]),value:[],queue:[{id:t,depth:0}],resumed:c===void 0,truncated:!1},l=0,u=0;for(let f=0;f<d.queue.length;f+=1){n.signal?.throwIfAborted();let m=d.queue[f];l+=1;let p=ol(e,m.id,i,r,o);if(u+=p.inspectedEdges,il(p,m.depth,a,s,c,d))break}if(!d.resumed)throw new TypeError(`Traversal cursor not found in sequence: ${c}`);return{value:d.value,meta:{visitedNodes:l,inspectedEdges:u,truncated:d.truncated,nextCursor:d.value.at(-1)}}}function Li(e,t){if(!e.hasNode(t))throw new TypeError(`Relationship node not found: ${t}`)}function Fi(e,t,n,r,o){let i=e.neighborEdges(t.nodes.at(-1),{direction:r,...n.kinds===void 0?{}:{kinds:n.kinds}});return o.inspectedEdges+=i.meta.inspectedEdges,i.value.filter(s=>!t.nodeSet.has(s.id))}function sl(e,t,n,r,o,i,s){for(let a of Fi(e,t,r,o,s)){let c=[...t.nodes,a.id],d=new Set(t.nodeSet).add(a.id),l=[...t.edges,a.edge];if(a.id===n){if(s.value.push({nodes:c,edges:l,length:l.length}),s.value.length>=i)return!0}else s.queue.push({nodes:c,nodeSet:d,edges:l})}return!1}function Mi(e,t,n={}){return Zt(e,t,n,"hierarchy",(r,o)=>Jt(r.edge,o)===r.id)}function Ni(e,t,n={}){return Zt(e,t,n,"hierarchy",(r,o,i)=>Jt(r.edge,o)===i)}function Oi(e,t,n={}){return Zt(e,t,n,"ordering",(r,o)=>tt(r.edge,o)===r.id)}function $i(e,t,n={}){return Zt(e,t,n,"ordering",(r,o,i)=>tt(r.edge,o)===i)}function al(e,t,n,r,o,i,s,a){let c={value:[],queue:[{nodes:[t],nodeSet:new Set([t]),edges:[]}],inspectedEdges:0},d=0,l=!1,u=o+1;for(let f=0;f<c.queue.length;f+=1){if(r.signal?.throwIfAborted(),c.value.length>=u||d>=i){l=!0;break}let m=c.queue[f];if(d+=1,m.edges.length>=s){Fi(e,m,r,a,c).length>0&&(l=!0);continue}if(sl(e,m,n,r,a,u,c)){l=!0;break}}return{value:c.value.slice(0,o),meta:{visitedNodes:d,inspectedEdges:c.inspectedEdges,truncated:l}}}function Pi(e,t,n,r={}){Li(e,t),Li(e,n);let o=r.maxPaths??el,i=r.maxVisitedPaths??tl,s=r.maxDepth??nl;er("maxPaths",o),er("maxVisitedPaths",i),er("maxDepth",s);let a=r.direction??"outgoing";r.signal?.throwIfAborted();for(let c of r.kinds??[])e.registry().require(c);return t===n?o===0?{value:[],meta:{visitedNodes:1,inspectedEdges:0,truncated:!0}}:{value:[{nodes:[t],edges:[],length:0}],meta:{visitedNodes:1,inspectedEdges:0,truncated:!1}}:al(e,t,n,r,o,i,s,a)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="24898402-1568-5b05-9072-f89dd91f25a6")}catch{}})();var cl=16,dl=2,ll=8;function en(e,t){if(!Number.isInteger(t)||t<1)throw new TypeError(`Invalid ${e} bound: ${String(t)}`)}function tn(e,t,n){let r=e.registry(),o=t===void 0?void 0:new Set(t.map(i=>r.require(i).kind));for(let i of e.edges()){if(i.source===i.target)continue;let s=r.require(i.kind);o!==void 0&&!(o.has(s.kind)||s.inverse!==void 0&&o.has(s.inverse))||n(i,s)}}function ul(e,t){let n=new Map;tn(e,t,r=>{ji(n,r.source,r.target),ji(n,r.target,r.source)});for(let r of n.values())r.sort();return n}function ji(e,t,n){let r=e.get(t);r===void 0?e.set(t,[n]):r.push(n)}function fl(e,t){let n=new Map;for(let i of e){let s=t.get(i);n.set(s,(n.get(s)??0)+1)}let r,o=0;for(let[i,s]of n)(s>o||s===o&&i<r)&&(r=i,o=s);return r}function pl(e,t){let n=new Map;for(let[o,i]of e){let s=n.get(i);s===void 0?n.set(i,[o]):s.push(o)}let r=[];for(let o of n.values())o.length<t||(o.sort(),r.push({representative:o[0],size:o.length,members:o}));return r.sort((o,i)=>i.size-o.size||o.representative.localeCompare(i.representative))}function Ui(e,t={}){let n=t.maxIterations??cl,r=t.minSize??dl;en("maxIterations",n),en("minSize",r);let o=ul(e,t.kinds),i=e.nodes(),s=new Map(i.map(u=>[u,u])),a=0,c=!1,d=0,l=0;for(;a<n&&!c;){t.signal?.throwIfAborted(),a+=1,c=!0;for(let u of i){d+=1;let f=o.get(u);if(f===void 0)continue;l+=f.length;let m=fl(f,s);m!==s.get(u)&&(s.set(u,m),c=!1)}}return{value:{communities:pl(s,r),iterations:a,converged:c},meta:{visitedNodes:d,inspectedEdges:l,truncated:!c}}}function nn(e){return e.direction==="directed"&&(e.ordering||e.hierarchy)}function rn(e){return e.inverse!==void 0&&e.inverse<e.kind?e.inverse:e.kind}function tr(e,t){return(t.hierarchy?Jt(e,t):e.source===tt(e,t)?e.target:e.source)===e.target?{from:e.source,to:e.target}:{from:e.target,to:e.source}}function ml(e,t){if(t===void 0)return;let n=e.registry(),r=new Set;for(let o of t){let i=n.require(o);if(!nn(i))throw new TypeError(`Relationship kind ${i.kind} is not a directed ordering or hierarchy kind`);r.add(rn(i))}return r}function gl(e,t){let n=e.registry(),r=new Map;for(let o of e.edges()){let i=n.require(o.kind);if(!nn(i))continue;let s=rn(i);if(t!==void 0&&!t.has(s))continue;let a=tr(o,i);if(a.from===a.to)continue;let c=r.get(s);c===void 0&&(c={adjacency:new Map,records:[]},r.set(s,c));let d=c.adjacency.get(a.from);d===void 0?c.adjacency.set(a.from,new Set([a.to])):d.add(a.to),c.records.push({...a,edge:o})}return r}function hl(e){let t=new Map;for(let[n,r]of e.adjacency)t.set(n,[...r].sort());return t}function yl(e,t,n,r){let o=[r];for(let i=n;i!==t;i=e.get(i))o.push(i);return o.push(t),o.reverse()}function _l(e,t,n,r,o,i){for(let s of e.get(n.id)??[])if(i.inspectedEdges+=1,!(n.depth===0&&s===t.to)&&!r.has(s)){if(r.set(s,n.id),s===t.to)return yl(r,t.from,n.id,s);o.push({id:s,depth:n.depth+1})}}function bl(e,t,n,r){let o=new Map([[t.from,t.from]]),i=[{id:t.from,depth:0}];for(let s=0;s<i.length;s+=1){let a=i[s];if(r.visitedNodes+=1,a.depth>=n)continue;let c=_l(e,t,a,o,i,r);if(c!==void 0)return c}}function $e(e,t={}){let n=t.maxDepth??ll;en("maxDepth",n),t.limit!==void 0&&en("limit",t.limit);let r=t.limit??Number.POSITIVE_INFINITY,o=ml(e,t.kinds),i=gl(e,o),s=[],a={visitedNodes:0,inspectedEdges:0},c=!1;e:for(let d of[...i.keys()].sort()){let l=i.get(d),u=hl(l);for(let f of l.records){t.signal?.throwIfAborted();let m=bl(u,f,n,a);if(m!==void 0){if(s.length>=r){c=!0;break e}s.push({edge:f.edge,witness:m})}}}return{value:s,meta:{visitedNodes:a.visitedNodes,inspectedEdges:a.inspectedEdges,truncated:c}}}function wl(e,t,n,r,o){let i=new Set,s=[];for(let a of n){if(a.id===e||i.has(a.id))continue;if(!o.seen.has(a.id)){if(t>=r){o.truncated=!0;continue}o.seen.add(a.id),o.queue.push({id:a.id,depth:t+1})}i.add(a.id),s.push(a.id);let c=o.predecessors.get(a.id);c===void 0&&(c=new Set,o.predecessors.set(a.id,c)),c.add(e)}return s}function kl(e,t,n){let r=n.direction??"outgoing",o=n.maxDepth??Number.POSITIVE_INFINITY,i=[],s=new Map,a={seen:new Set([t]),queue:[{id:t,depth:0}],predecessors:new Map,truncated:!1},c=0;for(let d=0;d<a.queue.length;d+=1){n.signal?.throwIfAborted();let{id:l,depth:u}=a.queue[d];i.push(l);let f=e.neighborEdges(l,{direction:r,...n.kinds===void 0?{}:{kinds:n.kinds}});c+=f.meta.inspectedEdges,s.set(l,wl(l,u,f.value,o,a))}return{order:i,successors:s,predecessors:a.predecessors,inspectedEdges:c,truncated:a.truncated}}function vl(e,t){let n=[],r=new Set([t]),o=[{id:t,index:0}];for(;o.length>0;){let i=o.at(-1),s=e.successors.get(i.id);if(i.index<s.length){let a=s[i.index];i.index+=1,r.has(a)||(r.add(a),o.push({id:a,index:0}))}else n.push(i.id),o.pop()}return n.reverse()}function El(e,t,n,r){let o=e,i=t;for(;o!==i;){for(;r.get(o)>r.get(i);)o=n.get(o);for(;r.get(i)>r.get(o);)i=n.get(i)}return o}function Il(e,t,n){let r;for(let o of[...e].sort())t.has(o)&&(r=r===void 0?o:El(r,o,t,n));return r}function xl(e,t,n,r,o){let i=new Map([[t,t]]),s=!0;for(;s;){s=!1;for(let a of n){if(o?.throwIfAborted(),a===t)continue;let c=Il(e.predecessors.get(a),i,r);c!==void 0&&i.get(a)!==c&&(i.set(a,c),s=!0)}}return i}function Bi(e,t,n={}){if(!e.hasNode(t))throw new TypeError(`Relationship node not found: ${t}`);if(n.maxDepth!==void 0&&(!Number.isInteger(n.maxDepth)||n.maxDepth<0))throw new TypeError(`Invalid maxDepth bound: ${String(n.maxDepth)}`);let r=kl(e,t,n),o=vl(r,t),i=new Map(o.map((d,l)=>[d,l])),s=xl(r,t,o,i,n.signal),a=new Map(o.map(d=>[d,1]));for(let d=o.length-1;d>=0;d-=1){let l=o[d];if(l===t)continue;let u=s.get(l);a.set(u,a.get(u)+a.get(l))}let c=o.filter(d=>d!==t).map(d=>({id:d,idom:s.get(d),dominatedCount:a.get(d)-1})).sort((d,l)=>l.dominatedCount-d.dominatedCount||d.id.localeCompare(l.id));return{value:{root:t,reachableCount:r.order.length,rows:c},meta:{visitedNodes:r.order.length,inspectedEdges:r.inspectedEdges,truncated:r.truncated}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="348c9246-2fb9-529e-b627-f60c901a6cf2")}catch{}})();function Gi(e){return Math.round(e*1e6)/1e6}function Ki(e,t,n){let r=e.get(t);r===void 0?e.set(t,new Set([n])):r.add(n)}function Hi(e,t){let n=new Map(e.nodes().map(o=>[o,new Set]));tn(e,t,o=>{n.get(o.source).add(o.target),n.get(o.target).add(o.source)});let r=new Map;for(let[o,i]of n)r.set(o,[...i].sort());return r}function Cl(e,t){let n=new Map,r=new Map;return tn(e,t,(o,i)=>{if(!i.ordering)return;let{predecessor:s,successor:a}=Qt(o,i);Ki(r,s,a),Ki(n,a,s)}),{incoming:n,outgoing:r}}function Sl(e,t,n){let r=new Map([[e,0]]),o=new Map([[e,1]]),i=new Map,s=[],a=[e],c=0,d=0;for(let l=0;l<a.length;l+=1){let u=a[l];n.visitedNodes+=1,s.push(u);let f=r.get(u);u!==e&&(c+=1,d+=f);for(let m of t.get(u))if(n.inspectedEdges+=1,r.has(m)||(r.set(m,f+1),a.push(m)),r.get(m)===f+1){o.set(m,(o.get(m)??0)+o.get(u));let p=i.get(m);p===void 0?i.set(m,[u]):p.push(u)}}return{stack:s,sigma:o,predecessors:i,reachableCount:c,distanceSum:d}}function Tl(e,t,n){let r=new Map;for(let o=e.stack.length-1;o>=0;o-=1){let i=e.stack[o],s=(1+(r.get(i)??0))/e.sigma.get(i);for(let a of e.predecessors.get(i)??[])r.set(a,(r.get(a)??0)+e.sigma.get(a)*s);i!==t&&n.set(i,(n.get(i)??0)+(r.get(i)??0))}}function Rl(e,t){return t<=1||e.reachableCount===0?0:e.reachableCount/(t-1)*(e.reachableCount/e.distanceSum)}function Dl(e,t,n,r,o){return{id:e,degree:t.get(e).length,inDegree:n.incoming.get(e)?.size??0,outDegree:n.outgoing.get(e)?.size??0,betweenness:Gi((r.get(e)??0)/2),closeness:Gi(o.get(e))}}function zi(e,t={}){let n=Hi(e,t.kinds),r=Cl(e,t.kinds),o=e.nodes(),i=new Map,s=new Map,a={visitedNodes:0,inspectedEdges:0};for(let l of o){t.signal?.throwIfAborted();let u=Sl(l,n,a);s.set(l,Rl(u,o.length)),Tl(u,l,i)}let c=0;for(let l of n.values())c+=l.length;let d=o.map(l=>Dl(l,n,r,i,s)).sort((l,u)=>u.betweenness-l.betweenness||u.degree-l.degree||l.id.localeCompare(u.id));return{value:{nodeCount:o.length,edgeCount:c/2,rows:d},meta:{visitedNodes:a.visitedNodes,inspectedEdges:a.inspectedEdges,truncated:!1}}}function Al(e,t){return e<=t?{source:e,target:t}:{source:t,target:e}}function Ll(e,t,n){let o=t.get(e.node)[e.neighborIndex];if(e.neighborIndex+=1,n.inspectedEdges+=1,o!==e.parent){if(n.discovery.has(o)){n.low.set(e.node,Math.min(n.low.get(e.node),n.discovery.get(o)));return}return e.children+=1,n.discovery.set(o,n.timer),n.low.set(o,n.timer),n.timer+=1,{node:o,parent:e.node,neighborIndex:0,children:0}}}function Fl(e,t,n){if(e.parent===null){e.children>1&&n.articulation.add(e.node);return}let r=e.parent,o=n.low.get(e.node);n.low.set(r,Math.min(n.low.get(r),o)),r!==t&&o>=n.discovery.get(r)&&n.articulation.add(r),o>n.discovery.get(r)&&n.bridges.push(Al(r,e.node))}function Ml(e,t,n,r){n.discovery.set(e,n.timer),n.low.set(e,n.timer),n.timer+=1;let o=[{node:e,parent:null,neighborIndex:0,children:0}];for(;o.length>0;){r?.throwIfAborted();let i=o.at(-1);if(i.neighborIndex<t.get(i.node).length){let s=Ll(i,t,n);s!==void 0&&o.push(s)}else Fl(i,e,n),o.pop()}}function on(e,t={}){let n=Hi(e,t.kinds),r={discovery:new Map,low:new Map,timer:0,articulation:new Set,bridges:[],inspectedEdges:0};for(let o of e.nodes())r.discovery.has(o)||Ml(o,n,r,t.signal);return{value:{articulationPoints:[...r.articulation].sort(),bridges:r.bridges.sort((o,i)=>o.source.localeCompare(i.source)||o.target.localeCompare(i.target))},meta:{visitedNodes:r.discovery.size,inspectedEdges:r.inspectedEdges,truncated:!1}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="f155ac72-64eb-5316-b016-954abd48c0e7")}catch{}})();function Nl(e){let t=e.registry(),n=new Map,r=new Set;for(let o of e.edges()){let i=t.require(o.kind);if(!i.ordering)continue;let{predecessor:s,successor:a}=Qt(o,i);if(r.add(s),r.add(a),s===a)continue;let c=n.get(s);c===void 0?n.set(s,new Set([a])):c.add(a)}return{forward:n,participants:r}}function Ol(e,t,n,r){if(e===void 0)return r;let o=r;for(let i of e)t.has(i)&&(o=Math.min(o,n.get(i)));return o}function $l(e,t,n){let r=n-t;return{id:e,earliestStart:t,earliestFinish:t+1,latestStart:n,latestFinish:n+1,slack:r,critical:r===0}}function Pl(e,t,n,r,o){let i=new Map;for(let s=e.length-1;s>=0;s-=1){let a=e[s],c=Ol(t.forward.get(a),r,i,o);i.set(a,c-1)}return e.map(s=>$l(s,n[s],i.get(s))).sort((s,a)=>s.slack-a.slack||s.earliestStart-a.earliestStart||s.id.localeCompare(a.id))}function Wi(e,t={}){t.signal?.throwIfAborted();let n=Pt(e,{registry:e.registry()}),r=Nl(e),o=new Set(n.order),i=n.order.filter(d=>r.participants.has(d)),s=i.reduce((d,l)=>Math.max(d,n.depth[l]+1),0),a=Pl(i,r,n.depth,o,s),c=a.length>0;return{exact:!0,acyclic:n.acyclic,makespan:s,scheduledCount:a.length,criticalPath:c?n.criticalPath:[],criticalPathLength:c?n.criticalPathLength:0,cycles:n.cycles,rows:a,provenance:{algorithm:"critical-path-method",edgeFamily:"ordering",weighting:"unit"}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="a8bc0ebd-e5e4-57f3-8e6c-417f9809eb72")}catch{}})();var Pe=["missing_reference_active","missing_reference_terminal","legacy_no_blocker_sentinel","ordering_cycle","legacy_ordering_cycle","ordering_storage_contradiction","legacy_ordering_storage_contradiction","hierarchy_cycle","legacy_hierarchy_cycle","hierarchy_cardinality_violation","legacy_hierarchy_cardinality_violation","hierarchy_direction_violation","legacy_hierarchy_direction_violation","duplicate_edge","legacy_duplicate_edge","duplicate_dependency_row","legacy_duplicate_dependency_row","stale_lifecycle_block","isolated_active_node","sparse_active_node"];(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="27de9c62-434c-566d-a000-54eddb9a16a9")}catch{}})();var jl=25,Ul="milestone",Bl="outcome milestone:",Gl=new Set(["discovered_from","incident_from","recurs_from","supersedes","verifies"]);function ir(e){return Gl.has(e)}var qi={error:0,warning:1,info:2};function Vi(e){return new Set((e??[]).filter(t=>typeof t=="string").map(t=>t.trim().toLowerCase()))}function je(e,t,n,r,o,i,s,a){let c=[...o].sort((d,l)=>d.localeCompare(l));return{code:e,severity:t,policy:n,message:r(c.length),count:c.length,sample:c.slice(0,i),sample_truncated:c.length>i,remediation:s,...a===void 0?{}:{evidence:[...a].sort((d,l)=>d.localeCompare(l)).slice(0,i)}}}function Kl(e,t){return e.cycles.map(n=>je(n.legacy_terminal?"legacy_hierarchy_cycle":"hierarchy_cycle",n.legacy_terminal?"info":"error","Structural hierarchy must be acyclic across scalar and registered dependency relationships.",r=>`${r} items participate in one hierarchy cycle.`,n.item_ids,t,n.legacy_terminal?"Preserve historical rows unless an explicit legacy repair is approved.":"Remove or retype one exact hierarchy relation before continuing mutation."))}function Yi(e,t,n){let r=e.cardinality_violations.filter(o=>o.legacy_terminal===n);return r.length===0?[]:[je(n?"legacy_hierarchy_cardinality_violation":"hierarchy_cardinality_violation",n?"info":"error","Every structural child must resolve to at most one logical parent across all hierarchy spellings.",o=>`${o} child item${o===1?"":"s"} resolve to multiple hierarchy parents.`,r.map(o=>o.child_id),t,n?"Preserve historical rows unless an explicit legacy repair is approved.":"Remove the exact surplus hierarchy rows so each child has one parent.",r.map(o=>`${o.child_id} <- ${o.parent_ids.join(", ")}`))]}function Xi(e,t,n){let r=e.divergences.filter(o=>o.legacy_terminal===n);return r.length===0?[]:[je(n?"legacy_hierarchy_direction_violation":"hierarchy_direction_violation",n?"info":"error","Scalar parent metadata and dependency-backed hierarchy rows must resolve to the same logical parent.",o=>`${o} child item${o===1?"":"s"} have divergent hierarchy storage surfaces.`,r.map(o=>o.child_id),t,n?"Preserve historical rows unless an explicit legacy repair is approved.":"Align the scalar parent and exact dependency rows to one canonical parent.",r.map(o=>`${o.child_id}: scalar=${o.scalar_parent_id} dependencies=${o.dependency_parent_ids.join(",")}`))]}function Hl(e,t){let n=Wt(e);return n?[...Kl(n,t),...Yi(n,t,!1),...Yi(n,t,!0),...Xi(n,t,!1),...Xi(n,t,!0)]:[]}function zl(e){let t=e.graph.registry(),n=new Map;for(let r of e.graph.edges()){let o=t.require(r.kind);if(!o.ordering)continue;let[i,s]=(o.precedence??"source_before_target")==="target_before_source"?[r.target,r.source]:[r.source,r.target],a=n.get(i);a?a.push(s):n.set(i,[s])}for(let r of n.values())r.sort((o,i)=>o.localeCompare(i));return n}function Qi(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 Wl(e,t,n,r){let o=n.get(e.node)??[];if(e.neighborIndex>=o.length)return!1;let i=o[e.neighborIndex];return e.neighborIndex+=1,r.indexes.has(i)?r.onStack.has(i)&&r.lowLinks.set(e.node,Math.min(r.lowLinks.get(e.node),r.indexes.get(i))):(Qi(i,r),t.push({node:i,neighborIndex:0})),!0}function ql(e,t,n,r){t.pop();let o=t.at(-1);if(o&&r.lowLinks.set(o.node,Math.min(r.lowLinks.get(o.node),r.lowLinks.get(e.node))),r.lowLinks.get(e.node)!==r.indexes.get(e.node))return;let i=[];for(;;){let s=r.stack.pop();if(r.onStack.delete(s),i.push(s),s===e.node)break}(i.length>1||i.length===1&&n.get(i[0])?.includes(i[0]))&&r.components.push(i.sort((s,a)=>s.localeCompare(a)))}function Vl(e){let t={indexes:new Map,lowLinks:new Map,onStack:new Set,stack:[],components:[],nextIndex:0},n=[...e.keys()].sort((r,o)=>r.localeCompare(o));for(let r of n){if(t.indexes.has(r))continue;let o=[{node:r,neighborIndex:0}];for(Qi(r,t);o.length>0;){let i=o.at(-1);Wl(i,o,e,t)||ql(i,o,e,t)}}return t.components.sort((r,o)=>r[0].localeCompare(o[0]))}function nr(e){return`${e.holder_id} -> ${e.target_id} (${e.kind})`}function Y(e,t,n,r,o,i,s,a){t.length!==0&&e.push(je(r,o,i,s,t,n,a))}function Yl(e,t,n){let r=[],o=[...e.dangling.active,...e.dangling.legacy_terminal].filter(i=>!i.no_active_blocker_sentinel);return Y(r,o.filter(i=>!t(i.holder_status)).map(nr),n,"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."),Y(r,o.filter(i=>t(i.holder_status)).map(nr),n,"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."),Y(r,e.dangling.no_active_blocker_sentinels.map(nr),n,"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."),r}function or(e,t){let n=t.get(e);return n?!n.terminal:!0}function Zi(e){return`${e.holder_id} -> ${e.target_id} (blocked_by scalar + ${e.dependency_kind} dependency)`}function Xl(e,t){let n=[],r=[];for(let i of e.orderingContradictions??[])(i.legacy_terminal?r:n).push(Zi(i));let o=[];return Y(o,n,t,"ordering_storage_contradiction","error","A scalar blocker and same-target structured ordering row must not assert opposite precedence.",i=>`${i} active scalar-versus-structured ordering contradiction(s)`,"Remove the structured dependency row that points the holder before its scalar blocker, or replace both representations with one unambiguous ordering edge."),Y(o,r,t,"legacy_ordering_storage_contradiction","info","Terminal scalar-versus-structured ordering contradictions are exact historical storage defects with no live scheduling effect.",i=>`${i} terminal scalar-versus-structured ordering contradiction(s)`,"Remove the contradictory blocks dependency row in a dedicated changelog-safe closed-item batch; preserve the scalar blocker as the historical precedence record."),o}function Jl(e,t,n,r){let o=[],i=zl(e);for(let c of Vl(i)){let d=c.some(f=>or(f,t)),l=new Set(c.map(f=>f.toLowerCase())),u=(e.orderingContradictions??[]).filter(f=>l.has(f.holder_id.toLowerCase())&&l.has(f.target_id.toLowerCase())).map(Zi);o.push(d?je("ordering_cycle","error","Order-bearing relationship kinds must stay acyclic; a cycle makes every member unschedulable.",f=>`execution-order cycle across ${f} item(s)`,c,r,"Remove or retype one ordering edge inside the cycle, or split the work so precedence is linear.",u.length===0?void 0:u):je("legacy_ordering_cycle","info","Ordering cycles between exclusively terminal items are historical contradictions with no scheduling effect.",f=>`terminal-only execution-order cycle across ${f} item(s)`,c,r,"Leave as history debt, or clean up in a dedicated changelog-safe closed-item batch; never repair closed items ad hoc.",u.length===0?void 0:u))}let s=new Map;for(let[c,d]of i)for(let l of d){let u=s.get(l);u?u.push(c):s.set(l,[c])}let a=[...t.values()].filter(c=>!c.missing&&!c.terminal&&n(c.status)&&!(s.get(c.id)??[]).some(d=>{let l=t.get(d);return l===void 0||!l.terminal})).map(c=>c.id);return Y(o,a,r,"stale_lifecycle_block","warning","A blocked lifecycle status must be backed by at least one open ordering predecessor.",c=>`${c} status-blocked item(s) with no open blocker edge`,'Add a local blocker edge, declare an external blocker with --dep "id=<external-ref>,kind=blocked_by,source_kind=external", or move the item back to an active status.'),o}function sn(e){let t=e.edges.map(n=>n.kind).sort((n,r)=>n.localeCompare(r));return`${e.from} -> ${e.to} (${t.join(" + ")})`}function sr(e){let t=e.graph.registry(),n=new Map;for(let o of e.graph.edges()){let i=t.require(o.kind);if(!nn(i))continue;let s=tr(o,i);if(s.from===s.to)continue;let a=`${rn(i)}::${s.from}::${s.to}`,c=n.get(a);c?c.edges.push(o):n.set(a,{...s,edges:[o]})}let r=[...n.values()].filter(o=>o.edges.length>=2);for(let o of r)o.edges.sort((i,s)=>i.kind.localeCompare(s.kind));return r.sort((o,i)=>o.from.localeCompare(i.from)||o.to.localeCompare(i.to))}function Ql(e,t,n){let r=[],o=[];for(let s of sr(e))(or(s.from,t)||or(s.to,t)?r:o).push(sn(s));let i=[];return Y(i,r,n,"duplicate_edge","info","One semantic relationship should be stored once; parallel same-family spellings (reciprocal inverse pairs included) add no information and skew degree metrics.",s=>`${s} duplicated relationship(s) between active endpoints`,"Remove all but one stored spelling of the relationship; keep the canonical direction the holder declared first."),Y(i,o,n,"legacy_duplicate_edge","info","Duplicated spellings between exclusively terminal items are historical noise with no scheduling effect.",s=>`${s} duplicated relationship(s) between terminal endpoints`,"Leave as history debt or clean up in a dedicated changelog-safe closed-item batch."),i}function Zl(e,t){let n=[],r=[];for(let i of e.duplicateRows??[])(i.legacy_terminal?r:n).push(`${i.holder_id} -> ${i.target_id} (${i.kind} x${i.occurrences})`);let o=[];return Y(o,n,t,"duplicate_dependency_row","warning","One dependency row must be stored once per holder; identical repeated rows are a storage-layer defect invisible to the assembled graph.",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."),Y(o,r,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."),o}function eu(e,t){let n=new Map,r={source_to_target:[],target_to_source:[],both:[]};for(let s of e.graph.registry().list())s.outcomeTraversal!==void 0&&r[s.outcomeTraversal].push(s.kind);let o={source_to_target:r.source_to_target.join(","),target_to_source:r.target_to_source.join(","),both:r.both.join(",")},i=(s,a)=>{let c=n.get(a)??new Set;c.add(s),n.set(a,c)};for(let s of e.graph.edges()){t?.throwIfAborted();let a=e.graph.registry().require(s.kind);(a.outcomeTraversal==="source_to_target"||a.outcomeTraversal==="both")&&i(s.source,s.target),(a.outcomeTraversal==="target_to_source"||a.outcomeTraversal==="both")&&i(s.target,s.source)}return{basis:o,reverse:n}}function tu(e,t,n){let r=new Set(e),o=[...e].sort();for(let i=0;i<o.length;i+=1){n?.throwIfAborted();for(let s of[...t.get(o[i])??[]].sort())r.has(s)||(r.add(s),o.push(s))}return r}function nu(e,t,n,r){let o=0,i=0,s=0,a=0;for(let m of e.values())if(r?.throwIfAborted(),!t.has(m.id)&&!(m.missing||m.status==="external")){if(m.terminal){s+=1,n.has(m.id)&&(a+=1);continue}n.has(m.id)?o+=1:i+=1}let c=o+i,d=s-a,l=o+a,u=i+d,f=l+u;return{active_outcome_reachable_nodes:o,active_outcome_unreachable_nodes:i,active_outcome_reachability_basis_points:c===0?0:Math.floor(o*1e4/c),terminal_nodes:s,terminal_outcome_reachable_nodes:a,terminal_outcome_unreachable_nodes:d,terminal_outcome_reachability_basis_points:s===0?0:Math.floor(a*1e4/s),outcome_reachable_nodes:l,outcome_unreachable_nodes:u,outcome_reachability_basis_points:f===0?0:Math.floor(l*1e4/f)}}function ru(e,t,n){let r=new Set(e.details.filter(a=>a.type?.toLowerCase()===Ul&&a.title.trim().toLowerCase().startsWith(Bl)).map(a=>a.id)),{basis:o,reverse:i}=eu(e,n),s=tu(r,i,n);return{outcome_nodes:r.size,outcome_reachability_basis:o,...nu(t,r,s,n)}}function ou(e,t,n,r,o){e.active+=1;let i=t.type??"(untyped)",s=e.byType.get(i);s||(s={active:0,isolated:0,degree_leq_one:0},e.byType.set(i,s)),s.active+=1,!(n>1)&&(e.degreeLeqOne+=1,s.degree_leq_one+=1,n===0&&(e.isolated+=1,s.isolated+=1),!(r.has(t.id.toLowerCase())||o.has(i.toLowerCase()))&&(n===0?e.isolates.push(t.id):e.sparse.push(t.id)))}function iu(e,t,n,r,o,i,s){let a={active:0,missing:0,isolated:0,degreeLeqOne:0,isolates:[],sparse:[],byType:new Map};for(let b of e.graph.nodes()){s?.throwIfAborted();let w=t.get(b);if(w){if(w.missing){a.missing+=1;continue}w.terminal||ou(a,w,e.graph.incidentEdges(b).length,n,r)}}let{isolates:c,sparse:d}=a,l=[];Y(l,c,o,"isolated_active_node","warning","Active work should be reachable from the graph unless explicitly declared a valid isolate.",b=>`${b} active item(s) with no relationships`,"Link the item to its parent, prerequisite, or origin \u2014 or register it as an exempt isolate."),Y(l,d,o,"sparse_active_node","info","Active items with a single edge often miss an honest semantic partner; sparse is not automatically defective.",b=>`${b} active item(s) with exactly one relationship`,"Investigate for an honest second edge (story->task, defect family, cross-epic complement); do not fabricate one.");let u=e.graph.edges().length,f=$e(e.graph,{signal:s}).value,m=new Set(f.map(({edge:b})=>`${b.source.toLowerCase()}\0${b.target.toLowerCase()}\0${b.kind}`));for(let b of e.orderingContradictions??[])m.add(`${b.holder_id.toLowerCase()}\0${b.target_id.toLowerCase()}\0${b.dependency_kind}`);let p=Object.fromEntries(Object.entries(i).sort(([b],[w])=>b.localeCompare(w))),g=Object.entries(p).reduce((b,[w,v])=>b+(ir(w)?v:0),0),_=on(e.graph,{signal:s}).value,k=ru(e,t,s);return{findings:l,profile:{nodes:e.graph.nodes().length,recorded_nodes:e.details.filter(b=>b.status!=="missing"&&b.status!=="external").length,edges:u,informative_edges:u-m.size,redundant_edges:f.length,ordering_contradiction_edges:e.orderingContradictions?.length??0,edge_basis:"deduplicated_directed",edges_by_kind:p,edge_share_by_kind:Object.fromEntries(Object.entries(p).map(([b,w])=>[b,w/u])),semantic_edges:g,semantic_edge_share:u===0?0:g/u,active_nodes:a.active,missing_nodes:a.missing,isolated_active_nodes:a.isolated,degree_leq_one_active_nodes:a.degreeLeqOne,coverage_by_type:Object.fromEntries([...a.byType.entries()].sort(([b],[w])=>b<w?-1:1)),articulation_points:_.articulationPoints.length,bridge_edges:_.bridges.length,...k,finding_subjects_by_code:Object.fromEntries(Pe.map(b=>[b,0]))}}}function an(e,t={}){let n=t.isTerminal??(f=>f==="closed"||f==="canceled"),r=t.isBlocked??(f=>f==="blocked"),o=t.maxSampleSize??jl;if(!Number.isInteger(o)||o<1)throw new TypeError(`Invalid audit sample bound: ${String(t.maxSampleSize)}`);let i=Vi(t.exemptIsolates),s=Vi(t.isolateExemptTypes),a=new Map(e.details.map(f=>[f.id,{id:f.id,status:f.status,missing:e.missingIdSet.has(f.id.toLowerCase()),terminal:n(f.status),...f.type===void 0?{}:{type:f.type}}]));t.signal?.throwIfAborted();let c={};for(let f of e.graph.edges())c[f.kind]=(c[f.kind]??0)+1;let d=Yl(e,n,o);d.push(...Hl(e,o)),t.signal?.throwIfAborted(),d.push(...Xl(e,o)),t.signal?.throwIfAborted(),d.push(...Jl(e,a,r,o)),t.signal?.throwIfAborted(),d.push(...Ql(e,a,o),...Zl(e,o)),t.signal?.throwIfAborted();let l=iu(e,a,i,s,o,c,t.signal);d.push(...l.findings),d.sort((f,m)=>qi[f.severity]-qi[m.severity]||f.code.localeCompare(m.code)||f.sample[0].localeCompare(m.sample[0]));let u=l.profile.finding_subjects_by_code;for(let f of d)u[f.code]+=f.count;return{findings:d,profile:{...l.profile,finding_subjects_by_code:u}}}function rr(e,t){let n=[...new Set([...Object.keys(e),...Object.keys(t)])].sort(),r={};for(let o of n){let i=(t[o]??0)-(e[o]??0);i!==0&&(r[o]=i)}return r}function Ji(e){return e.profile.coverage_by_type??{}}function su(e,t){let n={},r=Ji(e),o=Ji(t),i=[...new Set([...Object.keys(r),...Object.keys(o)])].sort();for(let s of i){let a=Object.assign({active:0,isolated:0,degree_leq_one:0},r[s]),c=Object.assign({active:0,isolated:0,degree_leq_one:0},o[s]),d={active:c.active-a.active,isolated:c.isolated-a.isolated,degree_leq_one:c.degree_leq_one-a.degree_leq_one};Object.values(d).some(l=>l!==0)&&(n[s]=d)}return n}function es(e,t){let n=su(e,t),{edge_share_by_kind:r={},semantic_edges:o=0,semantic_edge_share:i=0}=e.profile,{edge_share_by_kind:s={},semantic_edges:a=0,semantic_edge_share:c=0}=t.profile,d=e.profile.recorded_nodes??e.profile.nodes,l=t.profile.recorded_nodes??t.profile.nodes,u=e.profile.informative_edges??e.profile.edges,f=t.profile.informative_edges??t.profile.edges,m=e.profile.redundant_edges??0,p=t.profile.redundant_edges??0,g=e.profile.ordering_contradiction_edges??0,_=t.profile.ordering_contradiction_edges??0;return{baseline_saved_at:e.saved_at,same_snapshot:e.fingerprint===t.fingerprint,affected_subjects_by_code:rr(e.affected_subjects_by_code,t.affected_subjects_by_code),profile:{nodes:t.profile.nodes-e.profile.nodes,recorded_nodes:l-d,edges:t.profile.edges-e.profile.edges,informative_edges:f-u,redundant_edges:p-m,ordering_contradiction_edges:_-g,active_nodes:t.profile.active_nodes-e.profile.active_nodes,missing_nodes:t.profile.missing_nodes-e.profile.missing_nodes,isolated_active_nodes:t.profile.isolated_active_nodes-e.profile.isolated_active_nodes,degree_leq_one_active_nodes:t.profile.degree_leq_one_active_nodes-e.profile.degree_leq_one_active_nodes,edges_by_kind:rr(e.profile.edges_by_kind,t.profile.edges_by_kind),edge_share_by_kind:rr(r,s),semantic_edges:a-o,semantic_edge_share:c-i,coverage_by_type:n}}}import ts 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]="9e4aa41d-fca4-5e55-ab2b-d99f06d90ae2")}catch{}})();var ns=1,ar=500,au=64,cu="graph-durable-cache";function rs(e){return It(e,cu,30,`graph-cache:${process.pid}`,!1,!1,3e3)}function rt(e){return ts.join(e,"runtime","graph-cache.json")}function os(e){return ts.join(e,"runtime","graph-audit-baseline.json")}function cr(e){if(e!==null)try{let t=JSON.parse(e);return typeof t!="object"||t===null||t.version!==ns||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 dr(e,t){let n=await ae(rt(e)),r=cr(n),o=r?.fingerprint===t;return{exists:n!==null,fresh:o,results:o?r.results:{}}}async function lr(e,t,n,r,o){let i=await rs(e);try{let s=cr(await ae(rt(e))),a=s?.fingerprint===t?s.results:{};delete a[r],a[r]=o;let c=Object.keys(a);for(let d of c.slice(0,Math.max(0,c.length-au)))delete a[d];await W(rt(e),JSON.stringify({version:ns,fingerprint:t,saved_at:new Date().toISOString(),results:a})),n.results=a}finally{await i()}}async function ur(e){let t=await rs(e);try{await eo(rt(e))}finally{await t()}}async function is(e,t){let n=rt(e),r=await ae(n),o=cr(r);return o===void 0?{exists:r!==null,fresh:!1,entry_count:0}:{exists:!0,fresh:o.fingerprint===t,entry_count:Object.keys(o.results).length,fingerprint:o.fingerprint.slice(0,12),saved_at:o.saved_at,bytes:Buffer.byteLength(r,"utf8")}}function fr(e,t){return t||e>=ar}function cn(e){return Ue(e)&&Object.values(e).every(ye)}function Ue(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ye(e){return Number.isInteger(e)&&Number(e)>=0}function ss(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0&&e<=1}function nt(e,t){return e===void 0||t(e)}function du(e){return Ue(e)&&Object.values(e).every(ss)}function lu(e){return Ue(e)?Object.values(e).every(t=>Ue(t)&&[t.active,t.isolated,t.degree_leq_one].every(ye)):!1}function uu(e,t,n){let r=["recorded_nodes","informative_edges","redundant_edges","ordering_contradiction_edges"],o=r.filter(s=>e[s]!==void 0).length;if(o!==0&&o!==r.length||!r.every(s=>nt(e[s],ye)))return;let i={recorded_nodes:e.recorded_nodes??t,informative_edges:e.informative_edges??n,redundant_edges:e.redundant_edges??0,ordering_contradiction_edges:e.ordering_contradiction_edges??0};return i.recorded_nodes<=t&&i.informative_edges<=n&&i.redundant_edges<=n&&i.ordering_contradiction_edges<=n?i:void 0}function fu(e,t,n){let r=[...t,...n,"finding_subjects_by_code"],o=r.filter(i=>e[i]!==void 0).length;return o!==0&&o!==r.length?!1:t.every(i=>nt(e[i],ye))&&n.every(i=>nt(e[i],ye)&&(e[i]===void 0||Number(e[i])<=1e4))&&nt(e.finding_subjects_by_code,cn)}function pu(e,t,n,r){let o=uu(e,n,r);if(o===void 0)return;let i=["articulation_points","bridge_edges","outcome_nodes","active_outcome_reachable_nodes","active_outcome_unreachable_nodes","terminal_nodes","terminal_outcome_reachable_nodes","terminal_outcome_unreachable_nodes","outcome_reachable_nodes","outcome_unreachable_nodes"],s=["active_outcome_reachability_basis_points","terminal_outcome_reachability_basis_points","outcome_reachability_basis_points"];if(!fu(e,i,s)||e.edge_basis!==void 0&&e.edge_basis!=="deduplicated_directed")return;let a=cn(e.finding_subjects_by_code)?e.finding_subjects_by_code:{};return{edge_basis:"deduplicated_directed",...o,...Object.fromEntries(i.map(c=>[c,e[c]??0])),...Object.fromEntries(s.map(c=>[c,e[c]??0])),finding_subjects_by_code:Object.fromEntries(Pe.map(c=>[c,a[c]??t[c]??0]))}}function mu(e,t,n,r,o){let i=[n,r,o],s=i.filter(d=>d!==void 0).length;if(s===0)return{edge_share_by_kind:{},semantic_edges:0,semantic_edge_share:0};if(s!==i.length||!du(n)||!ye(r)||!ss(o))return;let a=Object.entries(t);if(a.reduce((d,[,l])=>d+l,0)!==e||Object.keys(n).length!==a.length||a.some(([d,l])=>n[d]!==(e===0?0:l/e)))return;let c=a.reduce((d,[l,u])=>d+(ir(l)?u:0),0);if(!(r!==c||o!==(e===0?0:c/e)))return{edge_share_by_kind:n,semantic_edges:r,semantic_edge_share:o}}function gu(e){if(e!==null)try{let t=JSON.parse(e);if(!Ue(t))return;let n=t,r=n.profile;if(typeof n.saved_at!="string"||typeof n.fingerprint!="string")return;let o=n.affected_subjects_by_code;if(!cn(o)||!Ue(r)||![r.nodes,r.edges,r.active_nodes,r.missing_nodes,r.isolated_active_nodes,r.degree_leq_one_active_nodes].every(ye)||!cn(r.edges_by_kind)||!nt(r.coverage_by_type,lu))return;let i=mu(r.edges,r.edges_by_kind,r.edge_share_by_kind,r.semantic_edges,r.semantic_edge_share);if(i===void 0)return;let s=pu(r,o,r.nodes,r.edges);if(s===void 0)return;let{coverage_by_type:a={}}=r;return{...n,profile:{...r,...i,...s,coverage_by_type:a}}}catch{return}}async function as(e){return gu(await ae(os(e)))}async function cs(e,t){await W(os(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]="7054952e-444a-5be2-b0c1-fcc3b72afde5")}catch{}})();var hu={missing_reference_active:{op:"investigate",confidence:"medium",rationale:"Restore or re-create the referenced item, or remove/retype the reference on the active holder; the correct fix depends on why the target is absent."},missing_reference_terminal:{op:"waive",confidence:"high",rationale:"Terminal-holder reference to an absent item is historical debt; waive it or clean it up only in a dedicated changelog-safe closed-item batch."},legacy_no_blocker_sentinel:{op:"remove",confidence:"high",rationale:"The pre-structured-dependency no-active-blocker sentinel is retired and carries no information; blocker state derives from blocked_by edges."},ordering_cycle:{op:"investigate",confidence:"low",rationale:"Every cycle member is unschedulable until one ordering edge is removed or retyped; the planner never chooses which edge to cut."},legacy_ordering_cycle:{op:"waive",confidence:"high",rationale:"Terminal-only ordering cycles have no scheduling effect; repairing them would mutate closed history (changelog drag)."},ordering_storage_contradiction:{op:"remove",confidence:"high",rationale:"The structured ordering row asserts the opposite precedence from the same-target scalar blocker; remove that exact dependency row or replace both representations with one unambiguous edge."},legacy_ordering_storage_contradiction:{op:"remove",confidence:"high",rationale:"The terminal holder contains a proven contradictory structured ordering row; remove it in a dedicated changelog-safe batch while preserving the scalar blocker as history."},hierarchy_cycle:{op:"investigate",confidence:"low",rationale:"Cut or retype one exact structural relation in the cycle; the planner preserves every evidence row because intent determines the correct parent."},legacy_hierarchy_cycle:{op:"waive",confidence:"high",rationale:"Terminal-only hierarchy cycles are historical debt; waive them unless an explicit closed-history repair is approved."},hierarchy_cardinality_violation:{op:"investigate",confidence:"medium",rationale:"Choose the canonical parent and remove or retype the exact surplus hierarchy rows; the planner cannot infer ownership intent."},legacy_hierarchy_cardinality_violation:{op:"waive",confidence:"high",rationale:"Multiple parents confined to terminal items are historical debt; waive them unless a dedicated history repair is approved."},hierarchy_direction_violation:{op:"investigate",confidence:"medium",rationale:"Align the scalar parent and dependency-backed hierarchy rows to the intended canonical parent."},legacy_hierarchy_direction_violation:{op:"waive",confidence:"high",rationale:"Divergent hierarchy storage confined to terminal items is historical debt; waive it unless a dedicated history repair is approved."},duplicate_edge:{op:"remove",confidence:"high",rationale:"Parallel same-family spellings state one relationship twice; remove all but one stored spelling, keeping the holder's canonical direction."},legacy_duplicate_edge:{op:"waive",confidence:"high",rationale:"Duplicated spellings between terminal items are historical noise; waive or batch changelog-safe cleanup."},duplicate_dependency_row:{op:"remove",confidence:"high",rationale:"The identical dependency row is stored more than once on the holder; drop the repeats so the row exists exactly once \u2014 graph semantics are unchanged."},legacy_duplicate_dependency_row:{op:"waive",confidence:"high",rationale:"Repeated identical rows on terminal holders are storage noise; waive or clean up only in a changelog-safe closed-item batch."},stale_lifecycle_block:{op:"investigate",confidence:"medium",rationale:`Add a local ordering edge, declare an external blocker with --dep "id=<external-ref>,kind=blocked_by,source_kind=external", or move the item back to an active status; only the holder's owner knows which is true.`},isolated_active_node:{op:"investigate",confidence:"medium",rationale:"Link the item to its parent, prerequisite, or origin \u2014 or register it as an explicitly exempt isolate; the audit never fabricates an edge."},sparse_active_node:{op:"investigate",confidence:"low",rationale:"Investigate for an honest second edge (story-to-task, defect family, cross-epic complement); sparse is not automatically defective."}};function ds(e){return`${e.source} -${e.kind}-> ${e.target}`}function yu(e){let[t,...n]=e.edges;return n.map(r=>({op:"remove",code:"duplicate_edge",subject:ds(r),rationale:"This stored spelling restates the kept canonical edge of the same semantic family; removing it leaves the relationship stated exactly once.",evidence:[`keep: ${ds(t)}`,`group: ${sn(e)}`],confidence:"high"}))}function _u(e,t){if(e.code==="duplicate_edge")return e.sample.flatMap(r=>yu(t.get(r)));let n=hu[e.code];return e.sample.map(r=>({op:n.op,code:e.code,subject:r,rationale:n.rationale,evidence:[e.policy],confidence:n.confidence}))}function ls(e,t={}){let{redundancyLimit:n,...r}=t,o=an(e,r),i=new Map(sr(e).map(d=>[sn(d),d])),s=o.findings.flatMap(d=>_u(d,i)),a=o.findings.some(d=>d.sample_truncated);t.signal?.throwIfAborted();let c=$e(e.graph,{limit:n??t.maxSampleSize??25,...t.signal===void 0?{}:{signal:t.signal}});for(let d of c.value)s.push({op:"remove",code:"redundant_edge",subject:`${d.edge.source} -> ${d.edge.target} (${d.edge.kind})`,rationale:"The stored edge is implied by a longer same-family witness path; shortcut edges are sometimes deliberate emphasis, so confirm intent before removing.",evidence:[`witness: ${d.witness.join(" -> ")}`],confidence:"medium"});return a=a||c.meta.truncated,{steps:s,report:o,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]="8797dddf-3643-554b-ba7f-4c513535c154")}catch{}})();var ms=new Set(["ancestors","descendants","predecessors","successors","paths","impact","dominators"]),me=10;function us(e,t,n){return{...e,projection:{mode:t?"summary":"full",declared_field_groups:n===void 0?[]:[{name:n,restore_with:"--full"}],included_field_groups:n===void 0||t?[]:[n]}}}function fs(e){return e===void 0?[]:(Array.isArray(e)?e:[e]).flatMap(t=>t.split(",")).map(t=>t.trim()).filter(t=>t.length>0)}function bu(e,t,n){let r=e.trim().toLowerCase();if(!An.includes(r))throw io({command_path:"graph",token:r||"<empty>",allowed:An});let o=r;if(ms.has(o)&&!t?.trim())throw new y(`graph ${o} requires an item id.`,h.USAGE);if(o==="paths"&&!n?.trim())throw new y("graph paths requires a source and a target item id.",h.USAGE);return o}function pr(e){throw e instanceof TypeError?new y(e.message,h.USAGE):e}function mr(e){return{truncated:e.truncated,cost:{visited_nodes:e.visitedNodes,inspected_edges:e.inspectedEdges}}}function ps(e,t){let n=t.trim().toLowerCase();for(let r of e.details)if(r.id.trim().toLowerCase()===n&&!e.missingIdSet.has(r.id.toLowerCase()))return r.id;throw new y(`Item ${t} not found`,h.NOT_FOUND)}function wu(e,t,n){let r={ancestors:Mi,descendants:Ni,predecessors:Oi,successors:$i}[e],o;try{o=r(n.assembly.graph,t,{...n.kinds===void 0?{}:{kinds:n.kinds},...n.maxDepth===void 0?{}:{maxDepth:n.maxDepth},...n.limit===void 0?{}:{limit:n.limit},...n.after===void 0?{}:{after:n.after}})}catch(s){pr(s)}let i=mr(o.meta);return{subcommand:e,root:t,count:o.value.length,...i,...o.meta.nextCursor===void 0?{}:{next_cursor:o.meta.nextCursor},...n.summary?{}:{ids:o.value}}}function ku(e,t,n){let r=Pi(n.assembly.graph,e,t,{direction:n.direction,...n.kinds===void 0?{}:{kinds:n.kinds},...n.maxDepth===void 0?{}:{maxDepth:n.maxDepth},...n.maxPaths===void 0?{}:{maxPaths:n.maxPaths}});return{subcommand:"paths",root:e,target:t,direction:n.direction,count:r.value.length,...mr(r.meta),...n.summary?{}:{paths:r.value.map(o=>({nodes:o.nodes,kinds:o.edges.map(i=>i.kind),length:o.length}))}}}function vu(e,t){let n;try{n=$t(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??me},...t.after===void 0?{}:{after:t.after}})}catch(r){pr(r)}return{subcommand:"impact",root:e,direction:t.direction,count:n.affected.length,truncated:n.truncated,...n.nextCursor===void 0?{}:{next_cursor:n.nextCursor},cost:{visited_nodes:n.cost.visitedNodes,inspected_edges:n.cost.inspectedEdges},...t.summary?{}:{affected:n.affected}}}function Eu(e,t,n){return{acyclic:e.acyclic,ordered_node_count:e.order.length,layer_count:e.layers.length,frontier_count:e.frontier.length,critical_path_length:e.criticalPathLength,cycle_count:e.cycles.length,...t?{}:{frontier:e.frontier.slice(0,n),critical_path:e.criticalPath.slice(0,n),cycles:e.cycles.slice(0,n)}}}function Iu(e,t,n){return{component_count:e.components.length,largest_component_size:e.components[0]?.length??0,orphan_count:e.orphans.length,...t?{}:{orphans:e.orphans.slice(0,n),hubs:e.hubs.slice(0,n)}}}function xu(e,t,n){let r=0,o=0,i=0;for(let s of e.cycles)r+=Number(s.legacy_terminal);for(let s of e.cardinality_violations)o+=Number(s.legacy_terminal);for(let s of e.divergences)i+=Number(s.legacy_terminal);return{acyclic:e.cycles.length===0,relation_count:e.relations.length,cycle_count:e.cycles.length,active_cycle_count:e.cycles.length-r,legacy_cycle_count:r,cardinality_violation_count:e.cardinality_violations.length,active_cardinality_violation_count:e.cardinality_violations.length-o,legacy_cardinality_violation_count:o,parent_divergence_count:e.divergences.length,active_parent_divergence_count:e.divergences.length-i,legacy_parent_divergence_count:i,...t?{}:{cycles:e.cycles.slice(0,n).map(s=>s.item_ids)}}}function Cu(e){let t=e.assembly.graph,n=e.limit??me,r=Pt(t,{registry:t.registry()}),o=fi(t);return{subcommand:"analyze",node_count:t.nodes().length,edge_count:t.edges().length,edge_basis:"deduplicated_directed",sample_limit:n,execution:Eu(r,e.summary,n),knowledge:Iu(o,e.summary,n),hierarchy:xu(Wt(e.assembly),e.summary,n)}}function Su(e,t){let n=an(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}}),r={},o={},i={},s={};for(let d of n.findings)r[d.severity]=(r[d.severity]??0)+1,o[d.code]=(o[d.code]??0)+1,i[d.severity]=(i[d.severity]??0)+d.count,s[d.code]=(s[d.code]??0)+d.count;let{finding_subjects_by_code:a,...c}=n.profile;return{subcommand:"audit",finding_count:n.findings.length,findings_by_severity:r,findings_by_code:o,affected_subjects_by_severity:i,affected_subjects_by_code:s,profile:e.summary?c:n.profile,legacy_alias_counts:e.assembly.legacyAliasCounts,...e.summary?{}:{findings:n.findings}}}function Tu(e){let t=e.limit??me,n={};e.kinds!==void 0&&(n.kinds=e.kinds);let r=Ui(e.assembly.graph,n),o=r.value;return{subcommand:"communities",community_count:o.communities.length,largest_community_size:o.communities[0]?.size??0,iterations:o.iterations,converged:o.converged,truncated:!o.converged||o.communities.length>t,cost:{visited_nodes:r.meta.visitedNodes,inspected_edges:r.meta.inspectedEdges},...e.summary?{}:{communities:o.communities.slice(0,t).map(i=>({representative:i.representative,size:i.size,members:i.members.slice(0,t)}))}}}function Ru(e){let t;try{t=$e(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(n){pr(n)}return{subcommand:"redundancy",redundant_count:t.value.length,...mr(t.meta),...e.summary?{}:{redundant:t.value.map(n=>({source:n.edge.source,target:n.edge.target,kind:n.edge.kind,witness:n.witness}))}}}function Du(e,t){let n=t.limit??me,r=Bi(t.assembly.graph,e,{direction:t.direction,...t.kinds===void 0?{}:{kinds:t.kinds},...t.maxDepth===void 0?{}:{maxDepth:t.maxDepth}}),o=r.value.rows.filter(i=>i.dominatedCount>0);return{subcommand:"dominators",root:e,direction:t.direction,reachable_count:r.value.reachableCount,bottleneck_count:o.length,truncated:r.meta.truncated||o.length>n,cost:{visited_nodes:r.meta.visitedNodes,inspected_edges:r.meta.inspectedEdges},...t.summary?{}:{bottlenecks:o.slice(0,n).map(i=>({id:i.id,idom:i.idom,dominated_count:i.dominatedCount}))}}}function Au(e){let t=e.limit??me,n=Wi(e.assembly.graph),r=n.rows.filter(o=>o.critical).length;return{subcommand:"slack",acyclic:n.acyclic,makespan:n.makespan,scheduled_count:n.scheduledCount,critical_count:r,critical_path_length:n.criticalPathLength,cycle_count:n.cycles.length,truncated:n.rows.length>t,...e.summary?{}:{critical_path:n.criticalPath,rows:n.rows.slice(0,t).map(o=>({id:o.id,earliest_start:o.earliestStart,latest_start:o.latestStart,slack:o.slack,critical:o.critical}))}}}function Lu(e){let t=e.limit??me,n=zi(e.assembly.graph,e.kinds===void 0?{}:{kinds:e.kinds}),r=n.value;return{subcommand:"centrality",node_count:r.nodeCount,edge_count:r.edgeCount,edge_basis:"simple_undirected",truncated:r.rows.length>t,cost:{visited_nodes:n.meta.visitedNodes,inspected_edges:n.meta.inspectedEdges},...e.summary?{}:{rows:r.rows.slice(0,t).map(o=>({id:o.id,degree:o.degree,in_degree:o.inDegree,out_degree:o.outDegree,betweenness:o.betweenness,closeness:o.closeness}))}}}function Fu(e){let t=e.limit??me,n=on(e.assembly.graph,e.kinds===void 0?{}:{kinds:e.kinds}),{articulationPoints:r,bridges:o}=n.value;return{subcommand:"articulation",articulation_count:r.length,bridge_count:o.length,truncated:r.length>t||o.length>t,cost:{visited_nodes:n.meta.visitedNodes,inspected_edges:n.meta.inspectedEdges},...e.summary?{}:{articulation_points:r.slice(0,t),bridges:o.slice(0,t)}}}function Mu(e,t){let n=e.limit??me,r=ls(e.assembly,{isTerminal:t,redundancyLimit:n,...e.sample===void 0?{}:{maxSampleSize:e.sample},...e.exemptIsolates.length===0?{}:{exemptIsolates:e.exemptIsolates},...e.exemptIsolateTypes.length===0?{}:{isolateExemptTypes:e.exemptIsolateTypes}}),o={},i={};for(let s of r.steps)o[s.op]=(o[s.op]??0)+1,i[s.code]=(i[s.code]??0)+1;return{subcommand:"plan",step_count:r.steps.length,steps_by_op:o,steps_by_code:i,finding_count:r.report.findings.length,truncated:r.truncated||r.steps.length>n,cost:{visited_nodes:r.cost.visitedNodes,inspected_edges:r.cost.inspectedEdges},...e.summary?{}:{steps:r.steps.slice(0,n)}}}function gs(e,t,n,r){return JSON.stringify({subcommand:e,root:t??null,target:n??null,kinds:r.kinds??null,maxDepth:r.maxDepth??null,limit:r.limit??null,after:r.after??null,direction:r.direction,maxPaths:r.maxPaths??null,sample:r.sample??null,exemptIsolates:[...new Set(r.exemptIsolates.map(o=>o.toLowerCase()))].sort(),exemptIsolateTypes:[...new Set(r.exemptIsolateTypes.map(o=>o.toLowerCase()))].sort(),summary:r.summary,unbounded:r.unbounded})}function hs(e,t,n,r,o){return e==="analyze"?Cu(r):e==="audit"?Su(r,o):e==="plan"?Mu(r,o):e==="communities"?Tu(r):e==="redundancy"?Ru(r):e==="dominators"?Du(t,r):e==="slack"?Au(r):e==="centrality"?Lu(r):e==="articulation"?Fu(r):e==="paths"?ku(t,n,r):e==="impact"?vu(t,r):wu(e,t,r)}function Nu(e,t){if(e!=="index"&&(t.rebuild===!0||t.clear===!0))throw new y("--rebuild and --clear apply only to graph index.",h.USAGE);if(e!=="audit"&&t.saveBaseline===!0)throw new y("--save-baseline applies only to graph audit.",h.USAGE);if(e==="slack"&&t.kind!==void 0)throw new y("graph slack analyzes every ordering kind; --kind is not supported.",h.USAGE);if(t.rebuild===!0&&t.clear===!0)throw new y("graph index accepts either --rebuild or --clear, not both.",h.USAGE);if(e==="impact"&&t.full===!0&&t.limit!==void 0)throw new y("graph impact accepts either --full or --limit, not both.",h.USAGE)}async function Ou(e,t,n,r,o,i){let s="status";if(i.clear===!0&&(await ur(e),s="cleared"),i.rebuild===!0){await ur(e);let c=await dr(e,t),d={assembly:n.assembly,direction:"both",exemptIsolates:[],exemptIsolateTypes:[],saveBaseline:!1,summary:!0,unbounded:!1};for(let l of["analyze","audit"])await lr(e,t,c,gs(l,void 0,void 0,d),hs(l,void 0,void 0,d,o));s="rebuilt"}let a=await is(e,t);return{subcommand:"index",action:s,state:a.exists?a.fresh?"fresh":"stale":"absent",entry_count:a.entry_count,item_count:r,min_items_threshold:ar,persist_enabled:fr(r,a.exists),current_fingerprint:t.slice(0,12),...a.saved_at===void 0?{}:{saved_at:a.saved_at},...a.bytes===void 0?{}:{bytes:a.bytes}}}async function $u(e,t,n,r){let o={saved_at:new Date().toISOString(),fingerprint:t,affected_subjects_by_code:n.affected_subjects_by_code,profile:{...n.profile,finding_subjects_by_code:Object.fromEntries(Pe.map(s=>[s,n.affected_subjects_by_code[s]??0]))}},i=await as(e);return r&&await cs(e,o),i===void 0?n:{...n,baseline:es(i,o)}}async function Pu(e,t,n,r,o){try{await lr(e,t,n,r,o)}catch{}}async function yw(e,t,n,r,o){let i=bu(e,t,n);xt(r.summary===!0,r.full===!0,"--summary");let s=R(process.cwd(),o.path);await O(s);let a=await L(s),c=A(a,S()),d=await ne(s,a.item_format,c.type_to_folder,void 0,a.schema),l=q(a.schema),u=D=>M(D,l);Nu(i,r);let f=B(),m=Zn(r.kind,f),p=Vt().lookup(s,qt(d,u,f),()=>Ne(d,u,f)),g={assembly:p.assembly,...m===void 0?{}:{kinds:m},maxDepth:Xt(r.maxDepth),limit:ie(r.limit,"limit"),after:r.after?.trim()||void 0,direction:Qn(r.direction),maxPaths:ie(r.maxPaths,"max-paths"),sample:ie(r.sample,"sample"),exemptIsolates:fs(r.exemptIsolate),exemptIsolateTypes:fs(r.exemptIsolateType),saveBaseline:r.saveBaseline===!0,summary:r.summary===!0,unbounded:r.full===!0};if(i==="index")return us(await Ou(s,p.fingerprint,g,d.length,u,r),!1);let _=ms.has(i)?ps(g.assembly,t):void 0,k=i==="paths"?ps(g.assembly,n):void 0,b=gs(i,_,k,g),w=await dr(s,p.fingerprint),v=w.results[b],I=p.memoize(b,()=>v!==void 0?structuredClone(v):hs(i,_,k,g,u)),F=fr(d.length,w.exists);!I.reused&&v===void 0&&F&&await Pu(s,p.fingerprint,w,b,I.value);let N=I.value.subcommand==="audit"?await $u(s,p.fingerprint,I.value,g.saveBaseline):I.value;return N.cache={fingerprint:p.fingerprint.slice(0,12),assembly:p.assemblyReused?"hit":"miss",result:I.reused?"hit":"miss",durable:v!==void 0?"hit":F?"miss":"off"},us(N,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]="7d98ca40-57e8-5afe-8e9d-b694da0130d1")}catch{}})();function ge(e,t){return(t===void 0?void 0:ao(e,t))?.execution_role??so[e.trim().toLowerCase()]??"agent"}var hr="blocked_by",ys="blocks",ju=Object.freeze([hr,ys]),gr="no-active-blocker";function T(e){return e.trim().toLowerCase()}function dn(e,t){return t?`external:${e}`:`local:${T(e)}`}function _e(e){let t=new Map,n=typeof e.blocked_by=="string"?e.blocked_by.trim():"";if(n.length>0&&T(n)!==gr){let r=re(n);t.set(dn(n,r),r?n:T(n))}for(let r of e.dependencies??[]){let o=typeof r.id=="string"?r.id.trim():"";if(r.kind===hr&&o.length>0&&T(o)!==gr){let i=re(o)||oe(r.source_kind);t.set(dn(o,i),i?o:T(o))}}return[...t.values()].sort((r,o)=>r.localeCompare(o))}function ln(e){let t=new Map;for(let n of e){let r=T(n.id);r.length!==0&&t.set(r,new Set(_e(n)))}for(let n of e){let r=T(n.id);if(r.length!==0)for(let o of n.dependencies??[]){let i=o.kind===ys&&typeof o.id=="string"?T(o.id):"";if(i.length===0||i===gr)continue;let s=t.get(i)??new Set;s.add(r),t.set(i,s)}}return new Map([...t].map(([n,r])=>[n,[...r].sort((o,i)=>o.localeCompare(i))]))}function _s(e,t){let n=T(e.id);return n.length>0?ln(t).get(n)??_e(e):_e(e)}function yr(e,t,n,r){let o=e,i=typeof o.id=="string"?r?.get(T(o.id))??_s(o,[...t.values()]):_e(e),s=new Set((e.dependencies??[]).filter(a=>a.kind===hr&&oe(a.source_kind)&&typeof a.id=="string"&&a.id.trim().length>0).map(a=>dn(a.id.trim(),!0)));return i.map(a=>{if(re(a)||s.has(dn(a,!0)))return{id:a,title:null,status:null,resolved:!1,external:!0,...typeof e.updated_at=="string"?{blocked_since:e.updated_at}:{},resolver:null};let c=t.get(T(a));return c?{id:a,title:c.title,status:c.status,resolved:M(c.status,n)}:{id:a,title:null,status:null,resolved:!1}})}function un(e,t,n){return yr(e,t,n)}function ot(e,t){let n=new Map(e.map(s=>[T(s.id),s])),r=ln(e),o=new Set([...bs(t),...t.blocked_statuses]),i=new Set;for(let s of e){let a=C(s.status,t);if(!o.has(a))continue;(t.blocked_statuses.has(a)||yr(s,n,t,r).some(d=>!d.resolved))&&i.add(T(s.id))}return i}function _r(e,t,n={},r){let o=[...e.ready,...e.decisions,...e.gates];n.includeContainers===!0&&o.push(...e.containers.filter(s=>s.open_blockers.length===0&&!t.blocked_statuses.has(C(s.item.status,t))));let i={ready:[],decisions:[],gates:[]};for(let s of o){let a=ge(s.item.type,r);a==="human"&&n.includeDecisions!==!0?i.decisions.push(s):a==="gate"&&n.includeGates!==!0?i.gates.push(s):i.ready.push(s)}return i}function bs(e){return e.active_statuses.size>0?e.active_statuses:new Set([e.open_status])}function Uu(e,t,n){let r=[T(e)],o=new Set;for(;r.length>0;){let i=r.pop();if(!o.has(i)){o.add(i);for(let s of t.get(i)??[]){if(!M(s.status,n))return!0;r.push(T(s.id))}}}return!1}function Bu(e){let t=new Map,n=new Map,r=new Map,o=ln(e);for(let i of e){t.set(T(i.id),i);let s=typeof i.parent=="string"?i.parent.trim():"";if(s.length>0){let a=T(s),c=n.get(a)??[];c.push(i),n.set(a,c)}for(let a of o.get(T(i.id))){let c=T(a),d=r.get(c)??[];d.push(i.id),r.set(c,d)}}return{itemsById:t,childrenByParent:n,blockedByReverse:r,blockerIdsByItem:o}}function it(e,t,n,r){let{itemsById:o,childrenByParent:i,blockedByReverse:s,blockerIdsByItem:a}=Bu(t),c=new Set([...bs(n),...n.blocked_statuses]),d=new Set(t.filter(_=>!M(_.status,n)).map(_=>T(_.id))),l=[],u=[],f=[],m=[],p=[],g=0;for(let _ of e){if(!c.has(C(_.status,n)))continue;g+=1;let k=yr(_,o,n,a).filter(I=>!I.resolved),b=(s.get(T(_.id))??[]).filter(I=>d.has(T(I))).sort((I,F)=>I.localeCompare(F)),w={item:_,open_blockers:k,unblocks:b};if(Uu(_.id,i,n)){f.push(w);continue}let v=n.blocked_statuses.has(C(_.status,n));if(k.length===0&&!v){let I=ge(_.type,r);I==="human"?m.push(w):I==="gate"?p.push(w):l.push(w)}else u.push(w)}return{ready:l,blocked:u,containers:f,decisions:m,gates:p,active_count:g,container_count:f.length}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="7d393eb0-d24d-55d2-8e4e-e94805d91784")}catch{}})();(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="1035bd62-b012-5249-bd53-31b39f21b2d3")}catch{}})();function br(e,t){if(e===void 0)return;let n=[],r="";for(let s=0;s<e.length;s+=1){let a=e[s];if(a==="\\"){let c=e[s+1];if(c===","||c==="\\"){r+=c,s+=1;continue}r+=a;continue}if(a===","){n.push(r),r="";continue}r+=a}n.push(r);let o=n.map(s=>s.trim());if(o.some(s=>s.length===0))throw new y(`${t.label} requires at least one non-empty value`,h.USAGE);let i=o.map(s=>t.normalize?.(s)??s);return[...new Set(i)]}function st(e,t){let n=br(e,t);return n===void 0?void 0:new Set(n)}function ws(e,t,n="--type"){let r=br(e,{label:n});if(r===void 0)return;let o=r.map(i=>{let s=vt(i,t);if(!s)throw new y(`${n} filter token "${i}" must be one of ${t.types.join("|")}`,h.USAGE);return s});return new Set(o)}function ks(e,t="--priority"){let n=br(e,{label:t});if(n!==void 0)return new Set(n.map(r=>jt(r,t)))}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="5bb71ec1-7eb1-558e-a965-acd779570c2e")}catch{}})();var wr=["id","title","status","type","priority","parent","updated_at"],kr=["id","status","type","title"],Gu={list:"brief","list-all":"full","list-draft":"full","list-open":"brief","list-in-progress":"brief","list-blocked":"brief","list-closed":"full","list-canceled":"full"},Ku=["tree_depth","tree_parent","tree_children","tree_title"];function vr(e=[]){return[...new Set([...xn,"body",...Ku,...e])].flatMap(t=>[t,`item.${t}`]).sort()}var Aw=["brief","standard","deep"],Hu=["body","linked","claim_state","children","schedule"],zu=["linked.files","linked.tests","linked.docs"],Wu=["claim_state.claimed","claim_state.assignee","claim_state.last_claim","claim_state.last_release"],qu=["schedule.deadline","schedule.start_at","schedule.end_at","schedule.location","schedule.reminders","schedule.events"];function Lw(e=[]){return[...[...new Set([...xn,...e,"notes_count","tests_count","collection_counts"])].flatMap(n=>[n,`item.${n}`]),...Hu,...zu,...Wu,...qu].sort()}var Fw=["id","title","status","type","priority","updated_at","score","matched_fields"],Vu=["score","matched_fields","highlights"],vs=["id","title","description","type","status","priority","tags","created_at","updated_at","deadline","assignee","author","estimated_minutes","acceptance_criteria","dependencies","comments","notes","learnings","reminders","events","files","tests","docs","close_reason","parent","reviewer","risk","confidence","sprint","release","blocked_by","blocked_reason","reporter","severity","environment","repro_steps","resolution","expected_result","actual_result","affected_version","fixed_version","component","regression","customer_impact","definition_of_ready","order","rank","goal","objective","value","impact","outcome","why_now","plan"];function Mw(e=[]){let t=[...new Set(e)];return[...Vu,...vs,...vs.map(n=>`item.${n}`),...t,...t.map(n=>`item.${n}`)].sort()}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="5b7b3eaf-a792-5f44-9981-8c82ce511070")}catch{}})();function Es(e,t){let n=e.trim().toLowerCase();return t.alias_to_id.get(n)??n}function Ss(e){return{isTerminal(t){return e.terminal_statuses.has(Es(t,e))},classify(t){let n=Es(t,e);return e.terminal_canceled_statuses.has(n)?"canceled":e.terminal_statuses.has(n)?"closed":e.blocked_statuses.has(n)?"blocked":e.draft_statuses.has(n)?"draft":n===e.open_status?"open":e.active_statuses.has(n)?"in_progress":"other"}}}function Er(e){return U(e.acceptance_criteria)===void 0}function Ir(e){return!Number.isFinite(e.estimated_minutes)}function Ts(e,t){return t.isTerminal(e.status)?U(e.resolution)===void 0:!1}function Yu(e){return U(e.reviewer)===void 0}function Xu(e){return U(e.risk)===void 0}function Ju(e){return typeof e.confidence=="number"?!Number.isFinite(e.confidence):U(e.confidence)===void 0}function Qu(e){return U(e.sprint)===void 0}function Zu(e){return U(e.release)===void 0}function xr(e){return!!(e.acMissing||e.estimatesMissing||e.resolutionMissing||e.reviewerMissing||e.riskMissing||e.confidenceMissing||e.sprintMissing||e.releaseMissing||e.metadataMissing)}function ef(e,t,n){return[[t.acMissing,Er(e)],[t.estimatesMissing,Ir(e)],[t.resolutionMissing,Ts(e,n)],[t.reviewerMissing,Yu(e)],[t.riskMissing,Xu(e)],[t.confidenceMissing,Ju(e)],[t.sprintMissing,Qu(e)],[t.releaseMissing,Zu(e)]].every(([o,i])=>o!==!0||i)}function tf(e,t){return Er(e)||Ir(e)||Ts(e,t)}function Rs(e,t,n){return xr(t)?!(!ef(e,t,n)||t.metadataMissing&&!tf(e,n)):!0}var Cr=["acceptance_criteria","estimated_minutes","resolution","tags","parent"];function nf(e,t){switch(t){case"acceptance_criteria":return!Er(e);case"estimated_minutes":return!Ir(e);case"resolution":return U(e.resolution)!==void 0;case"tags":return Array.isArray(e.tags)&&e.tags.length>0;default:return U(e.parent)!==void 0}}function rf(e,t,n){return t==="resolution"?n.isTerminal(e.status):!0}function of(e,t){return t===0?100:Math.round(e/t*1e3)/10}function Is(){let e={};for(let t of Cr)e[t]={present:0,applicable:0,percent:100};return e}function xs(e,t,n){for(let r of Cr){if(!rf(t,r,n))continue;let o=e[r];o.applicable+=1,nf(t,r)&&(o.present+=1)}}function Cs(e){for(let t of Cr){let n=e[t];n.percent=of(n.present,n.applicable)}}function $w(e,t){let n=Is(),r={};for(let o of e){xs(n,o,t);let i=r[o.type]??(r[o.type]=Is());xs(i,o,t)}Cs(n);for(let o of Object.values(r))Cs(o);return{overall:n,by_type:r}}var sf={assignee:"(unassigned)",priority:"(no priority)",tag:"(untagged)",parent:"(unparented)",type:"(untyped)",status:"(no status)"};function af(e){return sf[e]}function cf(){return{open:0,in_progress:0,blocked:0,draft:0,closed:0,canceled:0,other:0}}function df(e,t,n){switch(t){case"assignee":return[U(e.assignee)??null];case"parent":return[U(e.parent)??null];case"type":return[U(e.type)??null];case"status":return[U(e.status)??null];case"priority":return[typeof e.priority=="number"?`P${e.priority}`:null];default:{let r=n.tagPrefix?.trim(),i=(Array.isArray(e.tags)?e.tags:[]).filter(s=>typeof s=="string"&&s.length>0&&(!r||s.startsWith(r)));return i.length>0?i:[null]}}}function Pw(e,t,n,r={}){let o=new Map,i=0;for(let a of e){i+=1;let c=n.classify(a.status);for(let d of df(a,t,r)){let l=d??"\0empty",u=o.get(l);u||(u={label:d??af(t),key:d,buckets:cf(),total:0},o.set(l,u)),u.buckets[c]+=1,u.total+=1}}let s=[...o.values()].sort((a,c)=>c.total!==a.total?c.total-a.total:a.key===null?1:c.key===null?-1:a.label.localeCompare(c.label));return{dimension:t,rows:s,total_items:i}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="03824e4b-562b-5e12-a89a-9dd091ae7fd3")}catch{}})();var Be=["notes","learnings","files","docs","tests","comments","deps","body","linked_command"];function be(e){return Array.isArray(e)&&e.length>0}function lf(e){return typeof e=="string"&&e.trim().length>0}function uf(e){return Array.isArray(e)?e.some(t=>{if(typeof t!="object"||t===null)return!1;let n=t.command;return typeof n=="string"&&n.trim().length>0}):!1}function As(e,t){switch(t){case"notes":return be(e.notes);case"learnings":return be(e.learnings);case"files":return be(e.files);case"docs":return be(e.docs);case"tests":return be(e.tests);case"comments":return be(e.comments);case"deps":return be(e.dependencies);case"body":return lf(e.body);case"linked_command":return uf(e.tests)}}function Ls(e){return Be.some(t=>e[t]!==void 0)}function Fs(e,t){for(let n of Be){let r=t[n];if(r===void 0)continue;let o=As(e,n);if(r==="present"&&!o||r==="absent"&&o)return!1}return!0}function Ms(e){return Be.some(t=>t!=="body"&&e[t]!==void 0)}function Ns(e){return e.body!==void 0}function Ds(e,t){return t===0?100:Math.round(e/t*1e3)/10}function ff(){let e={};for(let t of Be)e[t]={present:0,total:0,percent:100};return e}function Uw(e){let t=ff(),n=e.length;for(let s of e)for(let a of Be)As(s,a)&&(t[a].present+=1);for(let s of Be)t[s].total=n,t[s].percent=Ds(t[s].present,n);let r=t.body,o=n-r.present,i={present:o,total:n,percent:Ds(o,n)};return{total_items:n,fields:t,body_populated:r,empty_body:i}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ccdb7d16-4f38-58d4-a19d-4ab1516cb1d7")}catch{}})();var pf=e=>({acMissing:e.filterAcMissing===!0,estimatesMissing:e.filterEstimatesMissing===!0,resolutionMissing:e.filterResolutionMissing===!0,metadataMissing:e.filterMetadataMissing===!0,reviewerMissing:e.filterReviewerMissing===!0,riskMissing:e.filterRiskMissing===!0,confidenceMissing:e.filterConfidenceMissing===!0,sprintMissing:e.filterSprintMissing===!0,releaseMissing:e.filterReleaseMissing===!0}),Os=[{field:"notes",presentKey:"hasNotes",absentKey:"noNotes",presentFlag:"--has-notes",absentFlag:"--no-notes"},{field:"learnings",presentKey:"hasLearnings",absentKey:"noLearnings",presentFlag:"--has-learnings",absentFlag:"--no-learnings"},{field:"files",presentKey:"hasFiles",absentKey:"noFiles",presentFlag:"--has-files",absentFlag:"--no-files"},{field:"docs",presentKey:"hasDocs",absentKey:"noDocs",presentFlag:"--has-docs",absentFlag:"--no-docs"},{field:"tests",presentKey:"hasTests",absentKey:"noTests",presentFlag:"--has-tests",absentFlag:"--no-tests"},{field:"comments",presentKey:"hasComments",absentKey:"noComments",presentFlag:"--has-comments",absentFlag:"--no-comments"},{field:"deps",presentKey:"hasDeps",absentKey:"noDeps",presentFlag:"--has-deps",absentFlag:"--no-deps"},{field:"body",presentKey:"hasBody",absentKey:"emptyBody",presentFlag:"--has-body",absentFlag:"--empty-body"},{field:"linked_command",presentKey:"hasLinkedCommand",absentKey:"noLinkedCommand",presentFlag:"--has-linked-command",absentFlag:"--no-linked-command"}],Gs=e=>{let t=Os.find(n=>e[n.presentKey]===!0&&e[n.absentKey]===!0);if(t)throw new y(`Cannot combine ${t.presentFlag} with ${t.absentFlag} for the same field.`,h.USAGE);return Object.fromEntries(Os.flatMap(n=>e[n.presentKey]===!0?[[n.field,"present"]]:e[n.absentKey]===!0?[[n.field,"absent"]]:[]))},$s=["priority","deadline","updated_at","created_at","title","parent"],Ps=["asc","desc"],Ks=new Set(Ko);function mf(e,t,n){let r=e.filter(s=>s.startsWith("item_list_item_read_failed:")).length,o=e.filter(s=>s.startsWith("item_list_directory_read_failed:")).length,i={status:t?"unchecked":r+o>0?"partial":"complete",unreadable_item_count:r,unreadable_directory_count:o};if(n&&i.status==="partial")throw new y(`List source is incomplete: ${r} item document(s) and ${o} item directory/directories could not be read.`,h.GENERIC_FAILURE,{code:"list_source_incomplete",why:"Strict list reads fail closed so agents and SDK consumers never treat an omitted item as a complete workspace.",nextSteps:["Run pm validate --check-storage-integrity to locate unreadable tracker artifacts.","Repair the reported files or align the installed decoder version, then retry."]});return i}function gf(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.keys(e).length>0}var hf=[{key:"hasNotes",summaryKey:"has_notes"},{key:"hasLearnings",summaryKey:"has_learnings"},{key:"hasFiles",summaryKey:"has_files"},{key:"hasDocs",summaryKey:"has_docs"},{key:"hasTests",summaryKey:"has_tests"},{key:"hasComments",summaryKey:"has_comments"},{key:"hasDeps",summaryKey:"has_deps"},{key:"hasBody",summaryKey:"has_body"},{key:"hasLinkedCommand",summaryKey:"has_linked_command"},{key:"noNotes",summaryKey:"no_notes"},{key:"noLearnings",summaryKey:"no_learnings"},{key:"noFiles",summaryKey:"no_files"},{key:"noDocs",summaryKey:"no_docs"},{key:"noTests",summaryKey:"no_tests"},{key:"noComments",summaryKey:"no_comments"},{key:"noDeps",summaryKey:"no_deps"},{key:"emptyBody",summaryKey:"empty_body"},{key:"noLinkedCommand",summaryKey:"no_linked_command"}],yf=[{key:"filterReviewerMissing",summaryKey:"filter_reviewer_missing"},{key:"filterRiskMissing",summaryKey:"filter_risk_missing"},{key:"filterConfidenceMissing",summaryKey:"filter_confidence_missing"},{key:"filterSprintMissing",summaryKey:"filter_sprint_missing"},{key:"filterReleaseMissing",summaryKey:"filter_release_missing"}];function Hs(e,t){for(let n of hf)t[n.key]===!0&&(e[n.summaryKey]=!0)}function zs(e,t){for(let n of yf)t[n.key]===!0&&(e[n.summaryKey]=!0)}function _f(e,t,n){for(let r of n){let o=t[r.optionKey];o!==void 0&&(e[r.summaryKey]=r.normalize?r.normalize(o):o)}}function bf(e){let t={};return Hs(t,e),t}function wf(e){let t={};return zs(t,e),t}var kf=[{optionKey:"type",summaryKey:"type"},{optionKey:"tag",summaryKey:"tag"},{optionKey:"priority",summaryKey:"priority"},{optionKey:"deadlineBefore",summaryKey:"deadline_before"},{optionKey:"deadlineAfter",summaryKey:"deadline_after"},{optionKey:"updatedAfter",summaryKey:"updated_after"},{optionKey:"updatedBefore",summaryKey:"updated_before"},{optionKey:"createdAfter",summaryKey:"created_after"},{optionKey:"createdBefore",summaryKey:"created_before"},{optionKey:"ids",summaryKey:"ids"},{optionKey:"assignee",summaryKey:"assignee"},{optionKey:"assigneeFilter",summaryKey:"assignee_filter"},{optionKey:"parent",summaryKey:"parent"},{optionKey:"sprint",summaryKey:"sprint"},{optionKey:"release",summaryKey:"release"}],vf=[{optionKey:"type",summaryKey:"type"},{optionKey:"tag",summaryKey:"tag"},{optionKey:"priority",summaryKey:"priority"},{optionKey:"deadlineBefore",summaryKey:"deadline_before"},{optionKey:"deadlineAfter",summaryKey:"deadline_after"},{optionKey:"updatedAfter",summaryKey:"updated_after"},{optionKey:"updatedBefore",summaryKey:"updated_before"},{optionKey:"createdAfter",summaryKey:"created_after"},{optionKey:"createdBefore",summaryKey:"created_before"},{optionKey:"ids",summaryKey:"ids"},{optionKey:"assignee",summaryKey:"assignee"},{optionKey:"assigneeFilter",summaryKey:"assignee_filter"},{optionKey:"parent",summaryKey:"parent"},{optionKey:"sprint",summaryKey:"sprint"},{optionKey:"release",summaryKey:"release"},{optionKey:"limit",summaryKey:"limit"},{optionKey:"offset",summaryKey:"offset"},{optionKey:"includeBody",summaryKey:"include_body"},{optionKey:"compact",summaryKey:"compact"},{optionKey:"fields",summaryKey:"fields"}],Ef=[{key:"filterAcMissing",summaryKey:"filter_ac_missing"},{key:"filterEstimatesMissing",summaryKey:"filter_estimates_missing"},{key:"filterResolutionMissing",summaryKey:"filter_resolution_missing"},{key:"filterMetadataMissing",summaryKey:"filter_metadata_missing"}],If="-7d";function xf(e){let{filtersStatus:t,options:n,treeEnabled:r,treeDepth:o,sortField:i,sortOrder:s,runtimeFieldFilters:a}=e,c={};return t!==null&&(c.status=t),n.dependencyBlocked===!0&&(c.blocked_semantics="status_or_dependency"),_f(c,n,kf),qs(c,n),n.filterAcMissing===!0&&(c.filter_ac_missing=!0),n.filterEstimatesMissing===!0&&(c.filter_estimates_missing=!0),n.filterResolutionMissing===!0&&(c.filter_resolution_missing=!0),n.filterMetadataMissing===!0&&(c.filter_metadata_missing=!0),zs(c,n),Hs(c,n),n.limit!==void 0&&(c.limit=n.limit),n.offset!==void 0&&(c.offset=n.offset),n.includeBody===!0&&(c.include_body=!0),n.fields!==void 0&&(c.fields=n.fields),r&&(c.tree=!0,o!==void 0&&(c.tree_depth=o)),i!==void 0&&(c.sort=i,c.order=s),gf(a)&&(c.runtime_filters=a),c}function Ws(e,t,n){let r=M(e.status,n),o=M(t.status,n);if(r!==o)return r?1:-1;let i=e.priority-t.priority;if(i!==0)return i;let s=x(t.updated_at,e.updated_at);return s!==0?s:(e.id??"").localeCompare(t.id??"")}function Cf(e,t){return[...e].sort((n,r)=>Ws(n,r,t))}function js(e,t){if(e!==void 0)return ce(e,new Date,t)}function at(e,t){if(e==null)return;let n=String(e).trim();if(n.length!==0)return ce(n,new Date,t)}function Sf(e){let t=e.updatedAfter!=null&&String(e.updatedAfter).trim().length>0;if([e.today===!0,e.recent===!0,t].filter(r=>r).length>1)throw new y("Choose only one updated_at window: --today, --recent, or --updated-after.",h.USAGE);if(e.today===!0){let r=new Date;return r.setHours(0,0,0,0),r.toISOString()}return e.recent===!0?at(If,"recent"):at(e.updatedAfter,"updated-after")}function qs(e,t){t.today===!0&&(e.today=!0),t.recent===!0&&(e.recent=!0)}function Tf(e){if(e==null)return;let t=String(e).trim();if(t.length===0)throw new y("--ids requires at least one non-empty item ID",h.USAGE);let n=t.split(",").map(r=>r.trim()).filter(r=>r.length>0);if(n.length===0)throw new y("--ids requires at least one non-empty item ID",h.USAGE);return new Set(n)}function Vs(e){if(e===void 0)return;let t=String(e).trim(),n=t.length===0?Number.NaN:Number(t);if(!Number.isInteger(n)||n<0)throw new y("Offset filter must be a non-negative integer",h.USAGE);return n}function Rf(e){if(e===void 0)return;let t=e.split(",").map(n=>n.trim()).filter(n=>n.length>0);if(t.length===0)throw new y("List --fields requires a comma-separated list of field names",h.USAGE);return[...new Set(t)]}function Df(e,t=e.projectionCommand??"list"){let n=e.compact===!0,r=e.brief===!0,o=e.full===!0,i=Rf(e.fields);if(Number(n)+Number(r)+Number(o)+ +(i!==void 0)>1)throw new y("List projection options are mutually exclusive. Use one of --compact, --brief, --full, or --fields.",h.USAGE,{code:"projection_options_mutually_exclusive",recovery:{suggested_retry:`pm ${t} --brief`,suggested_retry_args:[t,"--brief"]}});return o?{mode:"full",fields:[]}:r?{mode:"brief",fields:[...kr]}:n?{mode:"compact",fields:[...wr]}:i?{mode:"fields",fields:[...new Set(i.map(a=>we(a)))]}:{mode:"full",fields:[]}}function we(e){return e.startsWith("item.")?e.slice(5):e}function Af(e,t,n){if(e.mode!=="fields")return;let r=vr(t),o=new Set(r.map(s=>we(s))),i=e.fields.filter(s=>!o.has(we(s)));if(i.length>0)throw new y(`Unknown list --fields value(s): ${i.join(", ")}`,h.USAGE,{code:"unknown_field_projection",examples:["pm list-open --fields id,title,status,type,updated_at","pm list --fields id,title,parent,priority --limit 10","pm list-all --fields id,title,body --limit 5"],recovery:{allowed_values:r,suggested_retry:`pm ${n} --fields id,title,status --limit 10`,suggested_retry_args:[n,"--fields","id,title,status","--limit","10"]}})}var Lf=new Map([["updated","updated_at"],["update","updated_at"],["modified","updated_at"],["created","created_at"],["create","created_at"]]);function Ff(e){if(e===void 0)return;let t=e.trim().toLowerCase(),n=Lf.get(t);if(n)return n;if(!$s.includes(t))throw new y(`Sort field must be one of ${$s.join("|")} (aliases: updated->updated_at, created->created_at)`,h.USAGE);return t}function Mf(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!Ps.includes(t))throw new y(`Sort order must be one of ${Ps.join("|")}`,h.USAGE);return t}function Nf(e){return Q(e,"--tree-depth")}function Of(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!t)throw new y("Assignee filter must be one of assigned|unassigned",h.USAGE);if(t!=="assigned"&&t!=="unassigned")throw new y(`Invalid assignee filter "${e}". Allowed: assigned|unassigned`,h.USAGE);return t}function Us(e,t){return Uo(e,t,{strict:!0})}function Ys(e){return st(e,{label:"--tag",normalize:t=>t.toLowerCase()})}function $f(e,t,n){let r=Ys(t);if(r===void 0)return;let o=new Set(e.flatMap(s=>s.tags.map(a=>a.trim().toLowerCase()))),i=[...r].filter(s=>!o.has(s));i.length>0&&n.push(`unknown_tags:${i.join(",")}`)}function Pf(e,t){if(e&&[...e].some(n=>n.toLowerCase()==="none"||n.toLowerCase()==="null"))throw new y('--assignee no longer accepts "none" or "null". Use --assignee-filter unassigned.',h.USAGE);if(e!==void 0&&t==="unassigned")throw new y("Cannot combine --assignee with --assignee-filter unassigned",h.USAGE)}function jf(e,t,n,r){let o=st(t.assignee,{label:"--assignee"}),i=Of(t.assigneeFilter);Pf(o,i);let s=pf(t),a=Gs(t);return{idsFilter:Tf(t.ids),statusSet:e&&e.length>0?new Set(e):void 0,excludeTerminal:t.excludeTerminal===!0,typeFilter:ws(t.type,n),tagFilters:Ys(t.tag),priorityFilter:ks(t.priority),deadlineBefore:js(t.deadlineBefore,"deadline-before"),deadlineAfter:js(t.deadlineAfter,"deadline-after"),updatedAfter:Sf(t),updatedBefore:at(t.updatedBefore,"updated-before"),createdAfter:at(t.createdAfter,"created-after"),createdBefore:at(t.createdBefore,"created-before"),assigneeFilter:o,assigneeModeFilter:i,parentFilter:t.parent?.trim(),treeEnabled:t.tree===!0,sprintFilter:st(t.sprint,{label:"--sprint"}),releaseFilter:st(t.release,{label:"--release"}),missingMetadataFilters:s,missingMetadataActive:xr(s),lifecycleClassifier:Ss(r),contentFieldFilters:a,contentFiltersActive:Ls(a)}}function Uf(e,t,n){return t.idsFilter&&!t.idsFilter.has(e.id)||t.statusSet&&!t.statusSet.has(e.status)||t.excludeTerminal&&M(e.status,n)||t.typeFilter&&!t.typeFilter.has(e.type)||t.tagFilters&&![...t.tagFilters].some(r=>(e.tags??[]).some(o=>o.trim().toLowerCase()===r))?!1:t.priorityFilter===void 0||t.priorityFilter.has(e.priority)}function Bf(e,t){return ro(e,t)}function Gf(e,t){return t.assigneeModeFilter==="assigned"&&!e.assignee||t.assigneeModeFilter==="unassigned"&&e.assignee?!1:t.assigneeFilter===void 0||e.assignee!==void 0&&t.assigneeFilter.has(e.assignee)}function Kf(e,t,n){let r=e.parent?.trim().toLowerCase(),o=[...new Set([...n?.get(e.id.trim().toLowerCase())??[],...r?[r]:[]])];return t.parentFilter!==void 0&&!t.treeEnabled&&!o.includes(t.parentFilter.trim().toLowerCase())||t.sprintFilter!==void 0&&(e.sprint===void 0||!t.sprintFilter.has(e.sprint))?!1:t.releaseFilter===void 0||e.release!==void 0&&t.releaseFilter.has(e.release)}function Hf(e,t,n,r,o){return!(!Uf(e,t,n)||!Bf(e,t)||!Gf(e,t)||!Kf(e,t,o)||t.missingMetadataActive&&!Rs(e,t.missingMetadataFilters,t.lifecycleClassifier)||t.contentFiltersActive&&!Fs(e,t.contentFieldFilters)||!Nt(e,r))}function zf(e,t,n,r,o,i,s){let a=jf(t,n,r,o);return e.filter(c=>Hf(c,a,o,i,s))}function ct(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function Bs(e,t,n,r){let o=e,i=typeof o.title=="string"?o.title:"",s=r??ct(typeof o.parent=="string"?o.parent:void 0)??null;return{...e,tree_depth:t,tree_parent:s,tree_children:n,tree_title:`${" ".repeat(t)}${i}`}}function Wf(e,t){let n=new Map,r=new Map;for(let o of e){let i=o.id.trim().toLowerCase();n.set(i,o);let s=t?t.parents_by_child.get(i)??[]:[ct(o.parent)?.toLowerCase()].filter(a=>a!==void 0);for(let a of s){let c=r.get(a)??[];c.push(o),r.set(a,c)}}return{byId:n,childrenByParent:r}}function qf(e,t,n,r,o){return t?[...r.get(t.toLowerCase())??[]]:e.filter(i=>(o?o.parents_by_child.get(i.id.trim().toLowerCase())??[]:[ct(i.parent)?.toLowerCase()].filter(a=>a!==void 0)).every(a=>!n.has(a)))}function Vf(e,t,n,r,o=e){let{byId:i,childrenByParent:s}=Wf(e,r),a=qf(e,t,i,s,r),c=[],d=new Set,l=new Map(o.map(f=>[f.id.trim().toLowerCase(),f.id.trim()])),u=[...a].reverse().map(f=>({node:f,depth:0,parentId:t===void 0?void 0:l.get(t.trim().toLowerCase())??t.trim()}));for(;u.length>0;){let{node:f,depth:m,parentId:p}=u.pop(),g=f.id.trim().toLowerCase();if(d.has(g))continue;d.add(g);let _=s.get(g)??[];if(c.push(Bs(f,m,_.length,p)),!(n!==void 0&&m>=n))for(let k of[..._].reverse())u.push({node:k,depth:m+1,parentId:l.get(g)})}if(t===void 0&&n===void 0)for(let f of e){let m=f.id.trim().toLowerCase();d.has(m)||(d.add(m),c.push(Bs(f,0,s.get(m)?.length??0)))}return c}function Yf(e,t){return e===t?0:e===null?1:t===null?-1:e.localeCompare(t)}function Xf(e,t){return e===t?0:e===null?1:t===null?-1:x(e,t)}function Jf(e,t,n){switch(n){case"priority":return e.priority-t.priority;case"deadline":return Xf(e.deadline??null,t.deadline??null);case"updated_at":return x(e.updated_at,t.updated_at);case"created_at":return x(e.created_at,t.created_at);case"title":return(e.title??"").localeCompare(t.title??"");case"parent":return Yf(e.parent??null,t.parent??null);default:return 0}}function Qf(e,t,n,r){return t?[...e].sort((o,i)=>{let s=Jf(o,i,t);if(s!==0)return n==="desc"?-s:s;let a=Ws(o,i,r);return n==="desc"?-a:a}):Cf(e,r)}function Zf(e,t,n=!1){let r=we(t.trim());if(r.length===0)return null;let o=e;return n&&r==="title"&&typeof o.tree_title=="string"?o.tree_title:Object.prototype.hasOwnProperty.call(o,r)?o[r]??null:null}function Xs(e,t,n=!1){return t.mode==="full"?e:e.map(r=>{let o={};for(let i of t.fields)o[i]=Zf(r,i,n);return o})}function ep(e){let t=[];for(let n of e)t.push(n.metadata_key);return t}function tp(e,t){if(e.noTruncate!==!0)return Q(e.limit)??(t>=1e4?20:void 0)}function np(e,t,n){return t.after===void 0?Vs(t.offset)??0:Te(e,t.after,n,r=>r.id)}function Js(e,t,n){return{...e!==void 0?{applied_limit:e}:{},has_more:t,truncated:t,next_cursor:n??null}}async function rp(e,t){let n=R(process.cwd(),t.path);await O(n);let r=await L(n),o=q(r.schema),i=Et(r.schema),s=e.projectionCommand??"list",a=Df(e,s);return Af(a,ep(i.definitions),s),{pmRoot:n,settings:r,statusRegistry:o,runtimeFieldFilters:Mt(e,i,"list"),typeRegistry:A(r,S()),projection:a}}async function op(e,t,n){let r=t.projection.fields.some(c=>we(c)==="body"),o=t.projection.mode==="full"||t.projection.fields.some(c=>Ks.has(we(c))),i=Gs(e),s=Ms(i),a=Ns(i);return e.includeBody||r||a?await qo(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,n,t.settings.schema):o||s?await Wo(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,n,t.settings.schema):await ne(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,n,t.settings.schema)}function ip(e){let t=Ff(e.sort),n=Mf(e.order)??"asc",r=e.tree===!0;if(!r&&e.treeDepth!==void 0)throw new y("List --tree-depth requires --tree",h.USAGE);if(!t&&e.order!==void 0)throw new y("List --order requires --sort",h.USAGE);return{sortField:t,sortOrder:n,treeEnabled:r,treeDepth:r?Nf(e.treeDepth):void 0,parentRoot:r?ct(e.parent):void 0}}function sp(e,t,n){let r=Us(t.status,n),o;t.lifecycleBucket==="in_progress"?o=[n.in_progress_status]:t.lifecycleBucket==="open"&&(o=[...n.active_statuses].filter(d=>d!==n.in_progress_status).sort((d,l)=>d.localeCompare(l)));let i=r??o??Us(e,n),s=jo(t.status),a=r||s?{...t,excludeTerminal:!1}:t,c="all";return s?c="all":r!==void 0?c=r.length===1?r[0]:r:t.lifecycleBucket!==void 0?c=t.lifecycleBucket:i!==void 0?c=i.length===1?i[0]:i:a.excludeTerminal===!0&&(c=null),{resolvedStatus:i,explicitAllStatuses:s,effectiveOptions:a,filtersStatus:c}}function ap(e,t,n,r,o){if(t.after!==void 0&&t.offset!==void 0)throw new y("List --after cannot be combined with --offset.",h.USAGE);let i=tp(t,e.length),s=np(e,t,o),a=i===void 0?e.slice(s):e.slice(s,s+i),c=Xs(a,n,r),d=e.length,l=a.length>0&&s+a.length<d,u=l&&a.length>0?te(o,a[a.length-1].id,s+a.length-1):void 0;return{projected:c,totalMatched:d,pageExtras:Js(i,l,u)}}function Qs(e,t,n){return ue("list",{status:e,options:Ct(t,Vo),sort:n.sortField??"default",order:n.sortOrder,tree:n.treeEnabled,tree_depth:n.treeDepth??null})}async function cp(e){let{options:t,runtime:n,statusSelection:r,ordering:o}=e,i=new Set(["status","limit","offset","compact","brief","full","fields","format","stream","includeBody","excludeTerminal","dependencyBlocked","lifecycleBucket","noTruncate","projectionCommand","truncate","notes","learnings","files","docs","tests","comments","deps","linkedCommand"]),s=[n.projection.mode==="full",n.projection.fields.some(p=>{let g=we(p);return g==="body"||Ks.has(g)})].includes(!0);if([t.limit===void 0,t.after!==void 0,t.noTruncate===!0,t.includeBody===!0,t.dependencyBlocked===!0,t.strictRead===!0,o.treeEnabled,o.sortField!==void 0,s,po(),Object.keys(n.runtimeFieldFilters).length>0,Object.entries(t).some(([p,g])=>g!==void 0&&!i.has(p))].includes(!0))return null;let c=await Ae(n.pmRoot,[...new Set(Object.values(n.typeRegistry.type_to_folder))]);if(!c)return null;let d=Q(t.limit),l=Vs(t.offset)??0,u=await Go({pmRoot:n.pmRoot,expectedSourceCursor:c.source_cursor,query:{statuses:r.resolvedStatus,excludeStatuses:r.resolvedStatus===void 0&&r.effectiveOptions.excludeTerminal===!0?[...n.statusRegistry.terminal_statuses]:void 0,terminalStatuses:[...n.statusRegistry.terminal_statuses],limit:d,offset:l}});if(!u)return null;let f=u.items.length>0&&l+u.items.length<u.total,m=f?te(Qs(r.filtersStatus,t,o),u.items.at(-1).id,l+u.items.length-1):void 0;return{projected:Xs(u.items,n.projection,!1),totalMatched:u.total,pageExtras:Js(d,f,m)}}function dp(e){let{filtersStatus:t,options:n,noTruncate:r,treeEnabled:o,treeDepth:i,sortField:s,sortOrder:a,runtimeFieldFilters:c}=e,d={};t!==null&&(d.status=t),n.dependencyBlocked===!0&&(d.blocked_semantics="status_or_dependency");let l=n;for(let u of vf){let f=l[u.optionKey];f!=null&&(d[u.summaryKey]=f)}for(let u of Ef)l[u.key]===!0&&(d[u.summaryKey]=!0);return Object.assign(d,wf(n),bf(n)),qs(d,n),r&&(d.no_truncate=!0),n.strictRead===!0&&(d.strict_read=!0),o&&(d.tree=!0,i!==void 0&&(d.tree_depth=i)),s!==void 0&&(d.sort=s,d.order=a),d.runtime_filters=c,d}async function dt(e,t,n){let r=await rp(t,n),o=[],i=ip(t),s=sp(e,t,r.statusRegistry),a=t.noTruncate===!0,c=await cp({options:t,runtime:r,statusSelection:s,ordering:i}),d=c;if(!d){let g=await op(t,r,o),k=i.treeEnabled||ct(t.parent)!==void 0?zn(vi(g,B())):void 0;$f(g,t.tag,o);let b=zf(g,s.resolvedStatus,s.effectiveOptions,r.typeRegistry,r.statusRegistry,r.runtimeFieldFilters,k?.parents_by_child),w=t.dependencyBlocked===!0?(()=>{let F=ot(g,r.statusRegistry);return b.filter(N=>F.has(N.id.trim().toLowerCase()))})():b,v=Qf(w,i.sortField,i.sortOrder,r.statusRegistry),I=i.treeEnabled?Vf(v,i.parentRoot,i.treeDepth,k,g):v;d=ap(I,t,r.projection,i.treeEnabled,Qs(s.filtersStatus,t,i))}let l=H(),u=[...new Set(o)].sort((g,_)=>g.localeCompare(_)),f=mf(u,c!==null,t.strictRead===!0),m=r.projection.mode==="full"?null:[...r.projection.fields];if(r.projection.mode==="compact"&&t.compact===!0){let g=xf({filtersStatus:s.filtersStatus,options:t,treeEnabled:i.treeEnabled,treeDepth:i.treeDepth,sortField:i.sortField,sortOrder:i.sortOrder,runtimeFieldFilters:r.runtimeFieldFilters});return{items:d.projected,count:d.projected.length,total:d.totalMatched,...d.pageExtras,completeness:f,filters:g,projection:{mode:"compact",fields:m},...u.length>0?{warnings:u}:{}}}return{items:d.projected,count:d.projected.length,total:d.totalMatched,...d.pageExtras,completeness:f,filters:dp({filtersStatus:s.filtersStatus,options:t,noTruncate:a,treeEnabled:i.treeEnabled,treeDepth:i.treeDepth,sortField:i.sortField,sortOrder:i.sortOrder,runtimeFieldFilters:r.runtimeFieldFilters}),projection:{mode:r.projection.mode,fields:m},sorting:{sort:i.sortField??"default",order:i.sortField?i.sortOrder:"asc"},now:l,...u.length>0?{warnings:u}:{}}}import{encode as lp}from"@toon-format/toon";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="47de55f1-589f-5743-bcb8-3b7a6302dfbb")}catch{}})();var Sr=["agenda","day","week","month"],Tr=["markdown","toon","json"],up=["sun","mon","tue","wed","thu","fri","sat"],fp=365,pp=365,ta=28,mp=1e3;function Rr(e,t){if(e===void 0)return;let n=Number(e);if(!Number.isInteger(n)||n<0)throw new y(`${t} must be a non-negative integer`,h.USAGE);return n}function gp(e){if(!e)return new Set(["deadlines","reminders","events"]);let t=e.trim().toLowerCase();if(t==="all")return new Set(["deadlines","reminders","events"]);let n=t.split(/[|,]/).map(o=>o.trim()).filter(o=>o.length>0);if(n.length===0)throw new y("Calendar include filter must not be empty",h.USAGE);let r=new Set;for(let o of n){if(o==="deadlines"||o==="deadline"){r.add("deadlines");continue}if(o==="reminders"||o==="reminder"){r.add("reminders");continue}if(o==="events"||o==="event"||o==="scheduled"){r.add("events");continue}throw new y("Calendar include filter must be deadlines|reminders|events|scheduled|all",h.USAGE)}return r}function na(e,t){let n;for(let r of t){let o=oo(e,r,2);o!==null&&(n===void 0||o<n.distance)&&(n={choice:r,distance:o})}return n?.choice}function hp(e){if(!e)return"agenda";let t=e.trim().toLowerCase();if(!Sr.includes(t)){let n=na(t,Sr);throw new y(`Calendar view must be one of ${Sr.join("|")}${n?`. Did you mean "${n}"?`:"."}`,h.USAGE)}return t}function yp(e){if(!e)return;let t=e.trim().toLowerCase();if(!Tr.includes(t)){let n=na(t,Tr);throw new y(`Calendar format must be one of ${Tr.join("|")}${n?`. Did you mean "${n}"?`:"."}`,h.USAGE)}return t}function vk(e,t){let n=yp(e.format);if(t.json&&n&&n!=="json")throw new y("Cannot combine --json with --format markdown|toon",h.USAGE);return t.json?"json":n??"markdown"}function _p(e,t){if(e===void 0)return;let n=V(e,t);if(!n){let r=t.definitions.map(o=>o.id);throw new y(`Calendar status filter must be one of ${r.join("|")}`,h.USAGE)}return n}function bp(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!t)throw new y("Calendar assignee filter must be one of assigned|unassigned",h.USAGE);if(t!=="assigned"&&t!=="unassigned")throw new y(`Invalid calendar assignee filter "${e}". Allowed: assigned|unassigned`,h.USAGE);return t}function fn(e){return new Date(e).toISOString().slice(0,10)}function ra(e,t){if(!t||t==="UTC")return fn(e);try{let n=new Intl.DateTimeFormat("en-CA",{timeZone:t,year:"numeric",month:"2-digit",day:"2-digit"}).formatToParts(new Date(e)),r=n.find(s=>s.type==="year")?.value,o=n.find(s=>s.type==="month")?.value,i=n.find(s=>s.type==="day")?.value;if(r&&o&&i)return`${r}-${o}-${i}`}catch{}return fn(e)}function Fr(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate(),0,0,0,0)).toISOString()}function de(e,t){let n=new Date(e);return new Date(n.getTime()+t*24*60*60*1e3).toISOString()}function oa(e){let t=new Date(Fr(e)),n=t.getUTCDay(),r=n===0?-6:1-n;return de(t.toISOString(),r)}function wp(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),1,0,0,0,0)).toISOString()}function kp(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth()+1,1,0,0,0,0)).toISOString()}function vp(e,t){return x(e,t)>=0?e:t}function Zs(e){return Object.fromEntries([...e.entries()].sort(([t],[n])=>t.localeCompare(n)))}function ea(e,t){e.set(t,(e.get(t)??0)+1)}function Ep(e){if(!e)return null;let t=[`freq=${e.freq}`];if(e.interval!==void 0&&t.push(`interval=${e.interval}`),e.count!==void 0&&t.push(`count=${e.count}`),e.until&&t.push(`until=${e.until}`),e.by_weekday&&e.by_weekday.length>0){let n=[...e.by_weekday].sort((r,o)=>Ie(r)-Ie(o));t.push(`by_weekday=${n.join("|")}`)}if(e.by_month_day&&e.by_month_day.length>0){let n=[...e.by_month_day].sort((r,o)=>r-o);t.push(`by_month_day=${n.join("|")}`)}if(e.exdates&&e.exdates.length>0){let n=[...e.exdates].sort((r,o)=>r.localeCompare(o));t.push(`exdates=${n.join("|")}`)}return t.join(",")}function ia(e,t,n,r){let o=new Date(Date.UTC(e,t,n,r.getUTCHours(),r.getUTCMinutes(),r.getUTCSeconds(),r.getUTCMilliseconds()));if(!(o.getUTCFullYear()!==e||o.getUTCMonth()!==t||o.getUTCDate()!==n))return o.toISOString()}function sa(e){return up[new Date(e).getUTCDay()]}function Ip(e){let t=Date.parse(e);return Number.isFinite(t)?new Date(t).toISOString():null}function xp(e){let t=new Set;for(let n of e??[]){let r=Ip(n);r&&t.add(r)}return t}function Cp(e,t,n,r,o){let i=e??de(n,-(r??pp)),s=t??de(e??n,o??fp);return{start:i,end:x(s,i)>0?s:de(i,1)}}function Sp(e,t,n,r){let o=t.by_weekday!==void 0?[...t.by_weekday]:[sa(e)],i=t.by_month_day!==void 0?[...t.by_month_day]:[new Date(e).getUTCDate()];return{startAt:e,startDate:new Date(e),window:n,maxOccurrences:r??mp,interval:t.interval??1,countLimit:t.count??Number.POSITIVE_INFINITY,until:t.until,excluded:xp(t.exdates),weekdayFilter:t.by_weekday!==void 0?new Set(t.by_weekday):void 0,monthDayFilter:t.by_month_day!==void 0?new Set(t.by_month_day):void 0,sortedWeekdays:[...new Set(o)].sort((s,a)=>Ie(s)-Ie(a)),sortedMonthDays:[...new Set(i)].sort((s,a)=>s-a),occurrences:[],produced:0}}function pn(e,t){return x(t,e.startAt)<0?"continue":e.until&&x(t,e.until)>0||x(t,e.window.end)>=0?"stop":e.excluded.has(t)?"continue":(e.produced+=1,x(t,e.window.start)>=0&&e.occurrences.push(t),e.produced>=e.countLimit||e.occurrences.length>=e.maxOccurrences?"stop":"continue")}function mn(e,t){let n=sa(t),r=new Date(t).getUTCDate(),o=!e.weekdayFilter||e.weekdayFilter.has(n),i=!e.monthDayFilter||e.monthDayFilter.has(r);return o&&i}function Tp(e){let t=e.startAt;for(let n=0;n<e.maxOccurrences&&!(mn(e,t)&&pn(e,t)==="stop");n+=1)t=de(t,e.interval);return e.occurrences}function Rp(e,t,n){let r=Ie(n),o=de(t,r),i=new Date(o);return new Date(Date.UTC(i.getUTCFullYear(),i.getUTCMonth(),i.getUTCDate(),e.startDate.getUTCHours(),e.startDate.getUTCMinutes(),e.startDate.getUTCSeconds(),e.startDate.getUTCMilliseconds())).toISOString()}function Dp(e){let t=oa(e.startAt);for(let n=0;n<e.maxOccurrences;n+=1){let r=de(t,n*e.interval*7);for(let o of e.sortedWeekdays){let i=Rp(e,r,o);if(mn(e,i)&&pn(e,i)==="stop")return e.occurrences}}return e.occurrences}function Ap(e){let t=e.startDate.getUTCFullYear(),n=e.startDate.getUTCMonth();for(let r=0;r<e.maxOccurrences;r+=1){let o=new Date(Date.UTC(t,n+r*e.interval,1,0,0,0,0));for(let i of e.sortedMonthDays){let s=ia(o.getUTCFullYear(),o.getUTCMonth(),i,e.startDate);if(!(!s||!mn(e,s))&&pn(e,s)==="stop")return e.occurrences}}return e.occurrences}function Lp(e){let t=e.startDate.getUTCFullYear(),n=e.startDate.getUTCMonth();for(let r=0;r<e.maxOccurrences;r+=1){let o=t+r*e.interval;for(let i of e.sortedMonthDays){let s=ia(o,n,i,e.startDate);if(!(!s||!mn(e,s))&&pn(e,s)==="stop")return e.occurrences}}return e.occurrences}function Fp(e,t,n,r){let o=Sp(e,t,n,r);return t.freq==="daily"?Tp(o):t.freq==="weekly"?Dp(o):t.freq==="monthly"?Ap(o):Lp(o)}function aa(e){return[...e].sort((t,n)=>{let r=x(t.at,n.at);if(r!==0)return r;let o=t.item_priority-n.item_priority;if(o!==0)return o;let i=t.item_id.localeCompare(n.item_id);if(i!==0)return i;let s=t.kind.localeCompare(n.kind);if(s!==0)return s;let a=String(t.event_title).localeCompare(String(n.event_title));return a!==0?a:String(t.reminder_text).localeCompare(String(n.reminder_text))})}function Mr(e){return{item_id:e.id,item_title:e.title,item_type:e.type,item_status:e.status,item_priority:e.priority,item_assignee:e.assignee??null,item_deadline:e.deadline??null,item_tags:e.tags}}function Mp(e){return e.deadline?{at:e.deadline,date:fn(e.deadline),kind:"deadline",reminder_text:null,event_title:null,event_end:null,event_location:null,event_all_day:null,event_timezone:null,event_recurring:null,event_recurrence_rule:null,...Mr(e),item_deadline:e.deadline}:null}function Np(e){return(e.reminders??[]).map(t=>({at:t.at,date:fn(t.at),kind:"reminder",reminder_text:t.text,event_title:null,event_end:null,event_location:null,event_all_day:null,event_timezone:null,event_recurring:null,event_recurrence_rule:null,...Mr(e)}))}function Op(e,t){if(!t)return null;let n=Date.parse(t)-Date.parse(e);return Number.isFinite(n)&&n>0?n:null}function $p(e,t,n){return t.recurrence&&n!==null?new Date(new Date(e).getTime()+n).toISOString():t.end_at??null}function Pp(e,t,n,r){let o=Ep(t.recurrence),i=Op(t.start_at,t.end_at);return(t.recurrence?Fp(t.start_at,t.recurrence,n,r):[t.start_at]).map(a=>({at:a,date:t.all_day===!0?a.slice(0,10):ra(a,t.timezone),kind:"event",reminder_text:t.description??null,event_title:t.title??e.title,event_end:$p(a,t,i),event_location:t.location??null,event_all_day:t.all_day??null,event_timezone:t.timezone??null,event_recurring:!!t.recurrence,event_recurrence_rule:o,...Mr(e)}))}function jp(e,t,n,r){let o=[];for(let i of e){let s=n.has("deadlines")?Mp(i):null;s&&o.push(s),n.has("reminders")&&o.push(...Np(i));for(let a of n.has("events")?i.events??[]:[])o.push(...Pp(i,a,t,r))}return aa(o)}function Up(e,t,n,r,o){let i=pi(t.type,n),s=t.tag?.trim().toLowerCase(),a=jt(t.priority),c=_p(t.status,r),d=t.assignee?.trim(),l=bp(t.assigneeFilter),u=t.sprint?.trim(),f=t.release?.trim();if(d&&(d.toLowerCase()==="none"||d.toLowerCase()==="null"))throw new y('--assignee no longer accepts "none" or "null". Use --assignee-filter unassigned.',h.USAGE);if(d!==void 0&&l==="unassigned")throw new y("Cannot combine --assignee with --assignee-filter unassigned",h.USAGE);return e.filter(m=>Bp(m,{typeFilter:i,tagFilter:s,priorityFilter:a,statusFilter:c,assigneeFilter:d,assigneeModeFilter:l,sprintFilter:u,releaseFilter:f,runtimeFieldFilters:o}))}function Bp(e,t){return Gp(e,t)&&Kp(e,t)&&Nt(e,t.runtimeFieldFilters)}function Gp(e,t){return!(t.typeFilter&&e.type!==t.typeFilter||t.tagFilter&&!e.tags.some(n=>n.trim().toLowerCase()===t.tagFilter)||t.priorityFilter!==void 0&&e.priority!==t.priorityFilter||t.statusFilter&&e.status!==t.statusFilter)}function Kp(e,t){return!(t.assigneeModeFilter==="assigned"&&!e.assignee||t.assigneeModeFilter==="unassigned"&&e.assignee||t.assigneeFilter!==void 0&&e.assignee!==t.assigneeFilter||t.sprintFilter!==void 0&&e.sprint!==t.sprintFilter||t.releaseFilter!==void 0&&e.release!==t.releaseFilter)}function Hp(e,t,n){return!(t&&x(e.at,t)<0||n&&x(e.at,n)>=0)}function Dr(e,t,n){return e.trim().toLowerCase()==="today"?Fr(t):ce(e,new Date(t),n)}function zp(e,t,n){let r=t.date?Dr(t.date,n,"--date"):n,o=t.past===!0,i=t.fullPeriod===!0,s=t.from?Dr(t.from,n,"--from"):void 0,a=t.to?Dr(t.to,n,"--to"):void 0;if(s&&a&&x(s,a)>=0)throw new y("Calendar --from must be before --to",h.USAGE);if(e!=="agenda"&&(t.from!==void 0||t.to!==void 0))throw new y("--from and --to are only supported for --view agenda",h.USAGE);if(e==="agenda")return Wp(r,t,n,o,i,s,a);if(e==="day"){let d=Fr(r);return Ar(r,n,o,i,d,de(d,1))}if(e==="week"){let d=oa(r);return Ar(r,n,o,i,d,de(d,7))}let c=wp(r);return Ar(r,n,o,i,c,kp(r))}function Wp(e,t,n,r,o,i,s){if(o)throw new y("--full-period is only supported for --view day|week|month. For agenda windows, use --from and --to.",h.USAGE);return{anchor:e,start:i??(t.date?e:r?void 0:n),end:s,fullPeriod:!1}}function Ar(e,t,n,r,o,i){let s=n||r;return{anchor:e,start:s?o:vp(o,t),end:i,periodStart:o,periodEnd:i,fullPeriod:s}}function qp(e){let t=new Map;for(let n of e){let r=t.get(n.date)??[];r.push(n),t.set(n.date,r)}return[...t.entries()].sort(([n],[r])=>n.localeCompare(r)).map(([n,r])=>({date:n,count:r.length,events:aa(r)}))}function Vp(e){let t=new Set,n=new Map,r=new Map,o=0,i=0,s=0,a=0;for(let c of e)t.add(c.item_id),ea(n,c.item_type),ea(r,c.item_status),c.kind==="deadline"?o+=1:c.kind==="reminder"?i+=1:(s+=1,c.event_recurring===!0&&(a+=1));return{events:e.length,items:t.size,deadlines:o,reminders:i,scheduled:s,by_kind:{deadline:o,reminder:i,event:s},by_type:Zs(n),by_status:Zs(r),recurring_events:a}}function Yp(e){let t=e.start??"unbounded",n=e.end??"unbounded";return`${t} -> ${n}`}function ca(e,t){if(t&&t!=="UTC")try{let n=new Intl.DateTimeFormat("en-GB",{timeZone:t,hour:"2-digit",minute:"2-digit",hourCycle:"h23"}).formatToParts(new Date(e)),r=n.find(i=>i.type==="hour")?.value,o=n.find(i=>i.type==="minute")?.value;if(r&&o)return`${r}:${o}`}catch{}return`${new Date(e).toISOString().slice(11,16)}Z`}function Lr(e){let t=Object.entries(e);return t.length===0?"empty":t.map(([n,r])=>`${n}=${r}`).join(", ")}function Xp(e){return e.event_end?e.event_all_day===!0?e.event_end.slice(0,10):e.date===ra(e.event_end,e.event_timezone)?ca(e.event_end,e.event_timezone):e.event_end:null}function Jp(e){let t=`${ca(e.at,e.event_timezone)} [${e.kind}] ${e.item_id} type=${e.item_type} p${e.item_priority} ${e.item_status} ${e.item_title}`;if(e.kind==="reminder"){let n=e.reminder_text??"";return`${t} \u2014 ${n} reminder=${JSON.stringify(n)}`}if(e.kind==="event"){let n=[],r=e.event_title??e.item_title;e.event_title!==null&&e.event_title!==e.item_title&&(n.push(r),n.push(`title=${JSON.stringify(r)}`)),e.event_recurring&&(n.push("(recurring)"),n.push("recurring=true"));let i=Xp(e);return i&&n.push(`end=${i}`),e.event_all_day!==null&&n.push(`all_day=${e.event_all_day?"true":"false"}`),e.event_timezone&&n.push(`timezone=${e.event_timezone}`),e.event_location&&(n.push(`@ ${e.event_location}`),n.push(`location=${JSON.stringify(e.event_location)}`)),e.event_recurrence_rule&&n.push(`recurrence=${e.event_recurrence_rule}`),e.reminder_text&&n.push(`description=${JSON.stringify(e.reminder_text)}`),`${t} \u2014 ${n.join(" ")}`}return t}function Ek(e){let t=[];if(t.push(`# pm calendar (${e.view})`),t.push(""),t.push(`- now: ${e.now}`),t.push(`- window: ${Yp(e.range)}`),e.range.period_start&&e.range.period_end&&(t.push(`- period: ${e.range.period_start} -> ${e.range.period_end}`),t.push(`- period-mode: ${e.range.full_period?"full-period":"active-window"}`)),t.push(`- events: ${e.summary.events} (deadlines: ${e.summary.deadlines}, reminders: ${e.summary.reminders}, scheduled: ${e.summary.scheduled})`),t.push(`- items: ${e.summary.items}`),t.push(`- by-kind: ${Lr(e.summary.by_kind)}`),t.push(`- by-type: ${Lr(e.summary.by_type)}`),t.push(`- by-status: ${Lr(e.summary.by_status)}`),t.push(`- recurring-events: ${e.summary.recurring_events}`),t.push(""),e.events.length===0)return t.push("No calendar events matched the selected filters."),t.join(`
|
|
2
|
+
`);for(let n of e.days){t.push(`## ${n.date} (${n.count})`);for(let r of n.events)t.push(`- ${Jp(r)}`);t.push("")}if(e.warnings&&e.warnings.length>0){t.push("### warnings");for(let n of e.warnings)t.push(`- ${n}`);t.push("")}return Qp(t.join(`
|
|
3
|
+
`))}function Ik(e){return lp(e)}function Qp(e){let t=e.length;for(;t>0&&e[t-1]===`
|
|
4
|
+
`;)t-=1;return e.slice(0,t)}function Zp(e){let t=H(),n=hp(e.view),r=zp(n,e,t),o=Q(e.limit),i=gp(e.include),s=Rr(e.recurrenceLookaheadDays,"Calendar recurrence lookahead days"),a=Rr(e.recurrenceLookbackDays,"Calendar recurrence lookback days"),c=Rr(e.occurrenceLimit,"Calendar occurrence limit");if(c!==void 0&&c<1)throw new y("Calendar occurrence limit must be >= 1",h.USAGE);let d=i.has("events")&&!i.has("deadlines")&&!i.has("reminders"),l=e.to!==void 0||s!==void 0||a!==void 0||c!==void 0,u=d&&!l;return{nowValue:t,view:n,rangeBounds:r,limit:o,includeSources:i,occurrenceLimit:c,recurrenceLookaheadDays:u?ta:s,recurrenceLookbackWindowDays:u&&a===void 0?0:a,eventsOnlyCapApplied:u}}function em(e,t){t&&e.push(`recurring_events_default_cap_applied:lookback=0d,lookahead=${ta}d -- use --recurrence-lookback-days/--recurrence-lookahead-days or --to for wider range`)}function tm(e,t){return{type:e.type??null,tag:e.tag??null,priority:e.priority??null,status:e.status??null,assignee:e.assignee??null,assignee_filter:e.assigneeFilter??null,sprint:e.sprint??null,release:e.release??null,runtime_filters:t,limit:e.limit??null,include:e.include??null,full_period:e.fullPeriod===!0?"true":null,recurrence_lookahead_days:e.recurrenceLookaheadDays??null,recurrence_lookback_days:e.recurrenceLookbackDays??null,occurrence_limit:e.occurrenceLimit??null}}function nm(e,t){return{start:t.start??null,end:t.end??null,period_start:t.periodStart??null,period_end:t.periodEnd??null,full_period:t.fullPeriod,past:e.past===!0,from:e.from??null,to:e.to??null}}async function da(e,t){let n=R(process.cwd(),t.path);await O(n);let r=Zp(e),o=await L(n),i=q(o.schema),s=Et(o.schema),a=Mt(e,s,"calendar"),c=A(o,S()),d=[];em(d,r.eventsOnlyCapApplied);let l=await ne(n,o.item_format,c.type_to_folder,d,o.schema),u=Up(l,e,c,i,a),f=Cp(r.rangeBounds.start,r.rangeBounds.end,r.nowValue,r.recurrenceLookbackWindowDays,r.recurrenceLookaheadDays),p=jp(u,f,r.includeSources,r.occurrenceLimit).filter(b=>Hp(b,r.rangeBounds.start,r.rangeBounds.end)),g=r.limit===void 0?p:p.slice(0,r.limit),_=qp(g),k=[...new Set(d)].sort((b,w)=>b.localeCompare(w));return{view:r.view,output_default:"markdown",now:r.nowValue,anchor:r.rangeBounds.anchor,range:nm(e,r.rangeBounds),filters:tm(e,a),summary:Vp(g),events:g,days:_,...k.length>0?{warnings:k}:{}}}(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]="377499d7-13b3-55f0-9d44-425bfcaf7964")}catch{}})();var la="1970-01-01T00:00:00.000Z";function lt(e){if(typeof e!="string")return null;let t=e.trim();if(!no(t)&&!/^\d{4}-\d{2}-\d{2}$/u.test(t))return null;try{return ce(t,new Date(Number.NaN),"context signal recency coordinate")}catch{return null}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="80a03884-711e-5170-a3c1-f05ccb065702")}catch{}})();var Nr=["structural","recency","activity_density","graph_proximity","claim_focus","priority_pressure","risk_pressure","deadline_pressure","knowledge_density","author_affinity","usage_affinity","semantic_similarity"],rm=Symbol("no-context-author"),om=Symbol("no-item-assignee");function ua(e,t){if(typeof e!="string")return t;let n=e.trim().toLowerCase();return n.length>0?n:t}function im(e){if(typeof e!="string")return;let t=/^v?(\d{4})\.(\d{1,2})\.(\d{1,2})(?:$|[-+])/u.exec(e.trim());if(!t)return;let n=Number(t[1]),r=Number(t[2]),o=Number(t[3]),i=new Date(Date.UTC(n,r-1,o));return i.getUTCFullYear()===n&&i.getUTCMonth()===r-1&&i.getUTCDate()===o?i.toISOString():void 0}function sm(e){let t=im(e.release);return t!==void 0?{source:"release_cohort",coordinate:t}:{source:"created_at",coordinate:lt(e.created_at)??la}}function am(e){if(!["substantive_history","release_cohort","created_at"].includes(e.source)||(e.source==="substantive_history"?e.history_op!==void 0&&typeof e.history_op!="string"||e.event_class!==void 0&&e.event_class!=="substantive":e.history_op!==void 0||e.event_class!==void 0))throw new TypeError("Context signal recency provenance must match its source");let t=lt(e.coordinate);if(t===null)throw new TypeError("Context signal recency coordinate must be a valid absolute timestamp with millisecond precision");return{...e,coordinate:t}}function cm(e,t){let n=typeof e=="number"?e:typeof e=="string"?Number.parseFloat(e):Number.NaN;return Number.isFinite(n)?1-Math.min(Math.max(n,0),t)/t:0}function dm(e,t){let n=typeof e=="string"?Date.parse(e):e instanceof Date?e.getTime():typeof e=="number"?e:Number.NaN;if(!Number.isFinite(n)||!Number.isFinite(t))return 0;let r=(n-t)/864e5;return r<=0?1:1/(1+r/30)}function lm(e){let t=typeof e=="string"?e.trim().toLowerCase():void 0;return t==="critical"||t==="high"?1:t==="medium"?.5:t==="low"?.1:0}function gn(e,t,n){return e?.[t]??n}function hn(e,t){let n=new Map(e.map(d=>{let l=t.recencyEvidence?.[d.id];return[d.id,l===void 0?sm(d):am(l)]})),r=[...e].sort((d,l)=>{let u=n.get(d.id).coordinate,f=n.get(l.id).coordinate;return x(f,u)||d.id.localeCompare(l.id)}),o=new Map(r.map((d,l)=>[d.id,l])),i=Math.max(e.length-1,1),s=ua(t.author,rm),a=V("in_progress",t.statusRegistry),c=Date.parse(t.now);return e.map(d=>{let l=ua(d.assignee,om)===s,u=(d.comments?.length??0)+(d.notes?.length??0)+(d.learnings?.length??0);return{id:d.id,item:d,signal_provenance:{recency:n.get(d.id)},signals:{recency:e.length===1?1:1-o.get(d.id)/i,activity_density:t.activityDensity?.[d.id],graph_proximity:gn(t.graphProximity,d.id,d.parent?.3:0),claim_focus:gn(t.claimFocus,d.id,C(d.status,t.statusRegistry)===a?1:l?.75:0),priority_pressure:cm(d.priority,4),risk_pressure:lm(d.risk),deadline_pressure:dm(d.deadline,c),knowledge_density:gn(t.knowledgeDensity,d.id,Math.min(u/5,1)),author_affinity:gn(t.authorAffinity,d.id,l?1:0),usage_affinity:t.usageAffinity?.[d.id],semantic_similarity:t.semanticSimilarity?.[d.id]}}})}var um="context_relevance",fm={structural:.4,recency:.35,activity_density:.25,graph_proximity:.15,claim_focus:.6,priority_pressure:.35,risk_pressure:.2,deadline_pressure:.45,knowledge_density:.25,author_affinity:.2,usage_affinity:.3,semantic_similarity:.5},pm=new TextEncoder;function mm(e){let t=new Set;for(let n of e){if(typeof n.id!="string"||n.id.trim().length===0||t.has(n.id))throw new TypeError("Context relevance candidates require unique non-empty ids");t.add(n.id);for(let[r,o]of Object.entries(n.signals??{})){if(r==="structural"||!Nr.includes(r))throw new TypeError(`Unknown context relevance signal: ${r}`);if(o!==void 0&&(!Number.isFinite(o)||o<0||o>1))throw new TypeError(`Context relevance signal ${r} must be a finite number from 0 to 1`)}}}function gm(e){let t={...fm};for(let[n,r]of Object.entries(e??{}))r!==void 0&&Nr.includes(n)&&(t[n]=r);for(let[n,r]of Object.entries(t))if(!Number.isFinite(r)||r<0)throw new TypeError(`Context relevance weight ${n} must be a finite non-negative number`);return t}function pa(e,t={}){mm(e);let n=gm(t.weights),r=Math.max(e.length-1,1),o=new Set(["structural"]);for(let a of e)for(let[c,d]of Object.entries(a.signals??{}))d!==void 0&&o.add(c);let i=Nr.filter(a=>o.has(a)),s=e.map((a,c)=>{let d={structural:e.length===1?1:1-c/r,...a.signals},l={},u=0,f=0;for(let m of i){let p=d[m];if(p===void 0)continue;let g=p*n[m];l[m]=g,u+=g,f+=n[m]}return{...a,baseline_rank:c+1,rank:0,score:f===0?0:u/f,contributions:l}});return s.sort((a,c)=>c.score-a.score||a.baseline_rank-c.baseline_rank),s.forEach((a,c)=>{a.rank=c+1}),{model:"default-weighted-v1",available_signals:i,ranked:s}}async function hm(e,t={}){let n=pa(e,t);if(!t.scorer)return n;let r=await t.scorer({candidates:e,default_report:n}),o=new Map;for(let s of r){if(o.has(s.id)||!Number.isFinite(s.score))throw new TypeError("Context relevance scorer must return one finite score for every candidate");o.set(s.id,s.score)}if(o.size!==e.length||e.some(s=>!o.has(s.id)))throw new TypeError("Context relevance scorer must return one finite score for every candidate");let i=n.ranked.map(s=>{let a=o.get(s.id);return{...s,score:a,contributions:{custom:a}}});return i.sort((s,a)=>a.score-s.score||s.baseline_rank-a.baseline_rank),i.forEach((s,a)=>{s.rank=a+1}),{model:"custom",available_signals:n.available_signals,ranked:i}}async function yn(e,t,n={}){let r=pa(t,n),o=await mo(um,{surface:e,candidates:t,default_report:r});if(!o.handled)return o.warnings.length>0?{...r,warnings:o.warnings}:r;if(!Array.isArray(o.result)||!o.result.every(i=>typeof i=="object"&&i!==null&&typeof i.id=="string"&&typeof i.score=="number"&&Number.isFinite(i.score)))return{...r,warnings:[...o.warnings,"extension_context_relevance_invalid_result"]};try{let i=await hm(t,{...n,scorer:()=>o.result});return o.warnings.length>0?{...i,warnings:o.warnings}:i}catch{return{...r,warnings:[...o.warnings,"extension_context_relevance_invalid_result"]}}}var ym=["ndcg","reciprocal_rank","required_recall","continuity_coverage","token_budget_adherence"];function fa(e,t){return e.length===0?1:e.filter(n=>t.has(n)).length/e.length}function _m(e){if(!Number.isFinite(e.actual_tokens)||e.actual_tokens<0||!Number.isFinite(e.token_budget)||e.token_budget<=0)throw new TypeError("Context ranking token counts require actual_tokens >= 0 and token_budget > 0");let t=e.judgments??{},n=e.ranked_ids.map(d=>Math.max(0,t[d]??0)),r=Object.values(t).map(d=>Math.max(0,d)).sort((d,l)=>l-d).slice(0,n.length||1),o=d=>d.reduce((l,u,f)=>l+(2**u-1)/Math.log2(f+2),0),i=o(r),s=n.findIndex(d=>d>0),a=new Set(e.ranked_ids),c=e.actual_tokens<=e.token_budget;return{ndcg:i===0?1:o(n)/i,reciprocal_rank:s<0?0:1/(s+1),required_recall:fa(e.required_ids??[],a),continuity_coverage:fa(e.continuity_ids??[],a),token_budget_adherence:c?1:e.token_budget/e.actual_tokens,within_token_budget:c}}function bm(e){return Math.ceil(pm.encode(JSON.stringify(e)).byteLength/4)}function wm(e){return Math.round(e*1e4)/1e4}function km(e,t){let n=t==="context"?[...e.high_level??[],...e.low_level??[],...e.blocked_fallback??[]].map(i=>i.id):[...e.recommended?[e.recommended]:[],...e.ready??[]].map(i=>i.id),r=new Set(n),o=(e.ranking?.items??[]).filter(i=>r.has(i.id)).map(i=>({id:i.id,contributions:i.contributions}));return{rankedIds:n,attribution:o}}async function vm(e,t){if(e.id.trim().length===0||e.rationale.trim().length===0)throw new TypeError("Context evaluation scenarios require non-empty id and rationale values");let n=e.surface==="context"?await t.context({...e.options,explainRanking:!0,outputBudget:"unbounded"}):await t.next({...e.options,explainRanking:!0,outputBudget:"unbounded"}),{rankedIds:r,attribution:o}=km(n,e.surface),i={...n,ranking:void 0},s=bm(i);return{id:e.id,surface:e.surface,rationale:e.rationale,ranked_ids:r,actual_tokens:s,metrics:_m({ranked_ids:r,judgments:e.judgments,required_ids:e.required_ids,continuity_ids:e.continuity_ids,actual_tokens:s,token_budget:e.token_budget}),attribution:o}}function Em(e,t){if(e.length===0)throw new TypeError("Context evaluation requires at least one scenario report");let n=ym;for(let i of n)if(!Number.isFinite(t[i]))throw new TypeError(`Context evaluation threshold ${i} must be a finite number`);let r=Object.fromEntries(n.map(i=>[i,wm(e.reduce((s,a)=>s+a.metrics[i],0)/e.length)])),o=n.filter(i=>r[i]<t[i]).map(i=>`${i}:${r[i]}<${t[i]}`);return{scenario_count:e.length,aggregate:r,scenarios:[...e],passed:o.length===0,failures:o}}async function Lk(e,t,n){let r=[];for(let o of e)r.push(await vm(o,t));return Em(r,n)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="b5c90a16-c075-5dc6-a326-ad2da7a6ef6d")}catch{}})();var Im={balanced:{redundancyPenalty:.35,uncertaintyPenalty:.2},context:{redundancyPenalty:.45,uncertaintyPenalty:.15},next:{redundancyPenalty:.25,uncertaintyPenalty:.3}},xm=["identity","summary","full"];function Cm(e){if(!e.id.trim()||!Number.isInteger(e.rank)||e.rank<1)throw new TypeError("Context packing candidates require a non-empty id and positive integer rank");if(!Number.isFinite(e.score)||e.score<0)throw new TypeError("Context packing candidate scores must be finite and non-negative");let t=xm.map(n=>e.token_costs[n]);if(t.some(n=>!Number.isInteger(n)||n<1)||t[0]>t[1]||t[1]>t[2])throw new TypeError("Context projection costs must be positive monotone integers");if(e.uncertainty!==void 0&&(!Number.isFinite(e.uncertainty)||e.uncertainty<0))throw new TypeError("Context packing uncertainty must be finite and non-negative")}function Sm(e){if(!Number.isInteger(e.tokenBudget)||e.tokenBudget<1)throw new TypeError("Context packing tokenBudget must be a positive integer");let t=e.profile??"balanced",n=Im[t];if(!n)throw new TypeError("Unknown context packing profile");let r=e.redundancyPenalty??n.redundancyPenalty,o=e.uncertaintyPenalty??n.uncertaintyPenalty;if(!Number.isFinite(r)||r<0||r>1||!Number.isFinite(o)||o<0)throw new TypeError("Context packing penalties must be finite and within their supported ranges");if(e.latencyBudgetMs!==void 0&&(!Number.isFinite(e.latencyBudgetMs)||e.latencyBudgetMs<=0))throw new TypeError("Context packing latencyBudgetMs must be positive");return{redundancy:r,uncertainty:o,profile:t}}function Tm(e){let t=new Set;for(let n of e){if(Cm(n),t.has(n.id))throw new TypeError("Context packing candidates require unique ids");t.add(n.id)}return[...e].sort((n,r)=>n.rank-r.rank||n.id.localeCompare(r.id))}function Rm(e,t,n,r,o){let i=-1,s=0;for(let a=0;a<e.length;a+=1){if(a%128===0&&o()>=r)return{index:i,evaluated:s,timedOut:!0};let c=e[a];if(c.token_costs.identity>t)continue;s+=1;let d=i<0?void 0:e[i],l=n(c)/c.token_costs.identity,u=d===void 0?Number.NEGATIVE_INFINITY:n(d)/d.token_costs.identity;(l>u||l===u&&d!==void 0&&(c.rank<d.rank||c.rank===d.rank&&c.id.localeCompare(d.id)<0))&&(i=a)}return{index:i,evaluated:s,timedOut:!1}}function Dm(e){let t=new Set,n=[],r=e.tokenBudget,o=d=>{let l=d.lineage??d.cluster,u=l&&t.has(l)?1-e.redundancyPenalty:1;return Math.max(0,(d.score-e.uncertaintyPenalty*(d.uncertainty??0))*u)},i=d=>{let l=d.token_costs.identity;n.push({...d,projection:"identity",tokens:l,marginal_value:o(d)}),r-=l;let u=d.lineage??d.cluster;u&&t.add(u)};for(let d of e.ordered.filter(l=>l.required))d.token_costs.identity<=r&&i(d);let s=e.ordered.filter(d=>!d.required),a=!0,c=0;for(;s.length>0;){let d=Rm(s,r,o,e.deadline,e.readClock);if(c+=d.evaluated,d.timedOut&&(a=!1),d.index<0||d.timedOut)break;i(s.splice(d.index,1)[0])}return{included:n,remaining:r,selectionComplete:a,evaluatedCandidates:c}}function Am(e,t){let n=t;for(let r of["summary","full"]){let o=r==="summary"?"identity":"summary",i=[...e].sort((s,a)=>{let c=s.token_costs[r]-s.token_costs[o],d=a.token_costs[r]-a.token_costs[o];return a.marginal_value/Math.max(d,1)-s.marginal_value/Math.max(c,1)||s.rank-a.rank||s.id.localeCompare(a.id)});for(let s of i){if(s.projection!==o)continue;let a=s.token_costs[r]-s.tokens;a>n||(s.projection=r,s.tokens+=a,n-=a)}}return n}function ma(e,t){let n=Sm(t),r=Tm(e),o=t.readClock??performance.now.bind(performance),i=t.latencyBudgetMs===void 0?Number.POSITIVE_INFINITY:o()+t.latencyBudgetMs,s=Dm({ordered:r,tokenBudget:t.tokenBudget,redundancyPenalty:n.redundancy,uncertaintyPenalty:n.uncertainty,deadline:i,readClock:o}),{included:a}=s,c=Am(a,s.remaining);a.sort((l,u)=>l.rank-u.rank||l.id.localeCompare(u.id));let d=new Set(a.map(l=>l.id));return{included:a,omitted_ids:r.filter(l=>!d.has(l.id)).map(l=>l.id),token_budget:t.tokenBudget,used_tokens:t.tokenBudget-c,remaining_tokens:c,complete:s.selectionComplete&&a.length===e.length&&a.every(l=>l.projection==="full"),selection_complete:s.selectionComplete,termination_reason:s.selectionComplete?"exhausted":"latency_budget",evaluated_candidates:s.evaluatedCandidates,latency_budget_ms:t.latencyBudgetMs??null,profile:n.profile,degradation_ladder:["full","summary","identity"]}}import ut from"node:fs/promises";import ft from"node:path";import{createHash as ga,randomUUID as Lm}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]="9b112b71-e0b8-5502-89f6-b4da6eb85f6b")}catch{}})();var Or=3,$r=2,ha=["recency","activity_density","graph_proximity","priority_pressure","risk_pressure","knowledge_density"],Fm=new Set(["substantive_history","release_cohort","created_at"]),Mm={context_signal_store_invalid:{code:"context_signal_store_invalid",meaning:"The persisted context-signal snapshot was unreadable or invalid and was rebuilt from authoritative items.",recovery_command:"pm context",recovery_effect:"Re-read context and confirm the rebuilt snapshot can be loaded without the warning."},context_signal_store_stale:{code:"context_signal_store_stale",meaning:"The persisted context-signal snapshot did not match the authoritative cursor or item corpus and was rebuilt.",recovery_command:"pm context",recovery_effect:"Re-read context and confirm the rebuilt snapshot is now fresh."},context_signal_store_write_failed:{code:"context_signal_store_write_failed",meaning:"Context signals were rebuilt in memory, but the derived snapshot could not be persisted.",recovery_command:"pm context",recovery_effect:"Retry the derived snapshot write and confirm the warning clears after storage access is restored."}};function Ge(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ya(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0&&e<=1}function Nm(e){let t={};for(let n of ha){let r=e[n];if(r!==void 0){if(!ya(r))throw new TypeError(`Context relevance signal ${n} must be a finite number from 0 to 1`);t[n]=r}}return t}function Om(e,t){let n=e.map(o=>[o.id,t(o)]),r=Math.max(0,...n.map(([,o])=>o));return Object.fromEntries(n.map(([o,i])=>[o,r===0?0:i/r]))}function $m(e){let t=new Map(e.map(o=>[o.id,0])),n=o=>{t.set(o,(t.get(o)??0)+1)};for(let o of e){typeof o.parent=="string"&&o.parent.trim()&&(n(o.id),n(o.parent.trim()));for(let i of o.dependencies??[])typeof i.id!="string"||!i.id.trim()||(n(o.id),n(i.id.trim()))}let r=Math.max(0,...t.values());return Object.fromEntries(e.map(o=>[o.id,r===0?0:t.get(o.id)/r]))}function _a(e,t){return{...t,activityDensity:t.activityDensity??Om(e,n=>(n.comments?.length??0)+(n.notes?.length??0)+(n.learnings?.length??0)+(n.test_runs?.length??0)),graphProximity:t.graphProximity??$m(e)}}function Ur(e){let t=ga("sha256");for(let{id:n,signal_provenance:{recency:r}}of[...e].sort((o,i)=>o.id.localeCompare(i.id)))t.update(JSON.stringify([n,r.source,r.coordinate,r.history_op??null,r.event_class??null]));return`sha256:${t.digest("hex")}`}function Pm(e){if(!Ge(e))return null;let t=e.signal_provenance;if(![typeof e.id=="string",Ge(e.signals),Ge(t)].every(Boolean))return null;let n=t.recency;if(!Ge(n))return null;let r=lt(n.coordinate);if(r===null)return null;let o=new Set(ha),i=Object.entries(e.signals);return!i.every(([s,a])=>o.has(s)&&ya(a))||![typeof n.source=="string"&&Fm.has(n.source),["undefined","string"].includes(typeof n.history_op),[void 0,"substantive","maintenance"].includes(n.event_class),n.source==="substantive_history"?n.event_class===void 0||n.event_class==="substantive":n.history_op===void 0&&n.event_class===void 0].every(Boolean)?null:{id:e.id,signals:Object.fromEntries(i),signal_provenance:{recency:{source:n.source,coordinate:r,history_op:n.history_op,event_class:n.event_class}}}}function jm(e,t){let n=Array.from(e,Pm);if(n.some(o=>o===null))return null;let r=n;return new Set(r.map(o=>o.id)).size!==r.length||r.some(o=>o.id.trim().length===0)||t!==Ur(r)?null:r.sort((o,i)=>o.id.localeCompare(i.id))}function Um(e){if(!Ge(e)||e.format_version!==Or||e.signal_set_version!==$r||typeof e.source_cursor!="string"||e.source_cursor.trim().length===0||typeof e.recency_evidence_fingerprint!="string"||!/^sha256:[a-f0-9]{64}$/u.test(e.recency_evidence_fingerprint)||typeof e.generated_at!="string"||!Number.isFinite(Date.parse(e.generated_at))||e.source!=="derived_index"&&e.source!=="scan_fallback"||!Array.isArray(e.items))return null;let t=jm(e.items,e.recency_evidence_fingerprint);return t===null?null:{format_version:Or,signal_set_version:$r,source_cursor:e.source_cursor,recency_evidence_fingerprint:e.recency_evidence_fingerprint,generated_at:e.generated_at,source:e.source,items:t}}function ba(e){if(typeof e.sourceCursor!="string"||e.sourceCursor.trim().length===0)throw new TypeError("Context signal source cursor must be non-empty");if(!Number.isFinite(Date.parse(e.now)))throw new TypeError("Context signal snapshot clock must be a valid timestamp");if(e.source!=="derived_index"&&e.source!=="scan_fallback")throw new TypeError("Context signal snapshot source must be derived_index or scan_fallback")}function wa(e,t,n=Ur(e)){let r=e.map(({id:i})=>i);if(new Set(r).size!==r.length||r.some(i=>i.trim().length===0))throw new TypeError("Context signal snapshot item IDs must be unique and non-empty");let o=e.map(({id:i,signals:s,signal_provenance:a})=>({id:i,signals:Nm(s),signal_provenance:a})).sort((i,s)=>i.id.localeCompare(s.id));return Object.freeze({format_version:Or,signal_set_version:$r,source_cursor:t.sourceCursor,recency_evidence_fingerprint:n,generated_at:t.now,source:t.source,items:Object.freeze(o.map(i=>Object.freeze(i)))})}function Kk(e,t){return ba(t),wa(hn(e,_a(e,t)),t)}var Pr=class{filePath;constructor(t){if(typeof t!="string"||t.trim().length===0)throw new TypeError("Context signal store path must be non-empty");this.filePath=ft.resolve(t)}async read(){try{return JSON.parse(await ut.readFile(this.filePath,"utf8"))}catch(t){if(Ge(t)&&wt(t))return null;throw t}}async write(t){let n=ft.dirname(this.filePath);await ut.mkdir(n,{recursive:!0});let r=ft.join(n,`.${ft.basename(this.filePath)}.${Lm()}.tmp`);try{await ut.writeFile(r,`${JSON.stringify(t)}
|
|
5
|
+
`,{encoding:"utf8",flag:"wx"}),await ut.rename(r,this.filePath)}finally{try{await ut.rm(r,{force:!0})}catch{}}}},jr=class{adapter;constructor(t){this.adapter=t}async readOrRebuild(t,n){ba(n);let r=[],o=null;try{let f=await this.adapter.read();o=Um(f),f!==null&&o===null&&r.push("context_signal_store_invalid")}catch{r.push("context_signal_store_invalid")}let i=t.map(f=>f.id).sort((f,m)=>f.localeCompare(m)),s=o?.items.map(f=>f.id)??[],a=hn(t,_a(t,n)),c=Ur(a),d=o!==null&&o.source_cursor===n.sourceCursor&&o.recency_evidence_fingerprint===c&&o.source===n.source&&s.length===i.length&&s.every((f,m)=>f===i[m]),l;if(d&&o!==null)l=o;else{o!==null&&r.push("context_signal_store_stale"),l=wa(a,n,c);try{await this.adapter.write(l)}catch{r.push("context_signal_store_write_failed")}}let u=new Map(l.items.map(f=>[f.id,f]));return{snapshot:l,candidates:a.map(f=>({...f,signals:{...f.signals,...u.get(f.id)?.signals},signal_provenance:u.get(f.id).signal_provenance})),cache_status:d?"fresh":"rebuilt",warnings:r,warning_details:r.map(f=>Mm[f])}}};function Bm(e){let t=ga("sha256");for(let n of[...e].sort((r,o)=>r.id.localeCompare(o.id)))t.update(JSON.stringify([n.id,n.updated_at,n.status,n.parent??null,n.priority??null,n.risk??null,(n.dependencies??[]).map(r=>r.id).sort(),n.comments?.length??0,n.notes?.length??0,n.learnings?.length??0,n.test_runs?.length??0]));return`scan:${t.digest("hex")}`}async function _n(e,t){let n=t.sourceCursor!==void 0,r=t.source!==void 0;if(n!==r)throw new TypeError("Context signal source and source cursor must be provided together");if(t.storeKey!==void 0&&!/^[a-z0-9](?:[a-z0-9_-]*[a-z0-9])?$/u.test(t.storeKey))throw new TypeError("Context signal store key must be a filesystem-safe identifier");let o=n?null:await Ae(t.pmRoot),i=t.sourceCursor??o?.source_cursor??Bm(e),s=t.source??(o===null?"scan_fallback":"derived_index"),a=new jr(new Pr(ft.join(t.pmRoot,"runtime",t.storeKey?`context-signals-${t.storeKey}.json`:"context-signals.json"))),c=t.recencyEvidence??Object.fromEntries(Object.entries(await xo(t.pmRoot,e.map(d=>d.id))).map(([d,l])=>[d,{source:"substantive_history",coordinate:l.entry.ts,history_op:l.entry.op,event_class:"substantive"}]));return a.readOrRebuild(e,{...t,recencyEvidence:c,sourceCursor:i,source:s})}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="a19662f9-f8b3-5988-bc04-1b5a5edaaaa5")}catch{}})();function Gm(e){for(let t of e.patch){if(t.path==="/metadata/status"||t.path==="/front_matter/status"){if(typeof t.value=="string")return t.value.trim().toLowerCase();continue}if(t.path!==""||typeof t.value!="object")continue;let n=t.value,r=n.metadata??n.front_matter;if(typeof r?.status=="string")return r.status.trim().toLowerCase()}}function Km(e,t,n){let r,o;for(let i of t){let s=Gm(i);if(s===void 0)continue;let a=n.has(s)&&(r!==void 0&&!n.has(r)||r===void 0&&i.op==="create");r=s,a&&Number.isFinite(Date.parse(i.ts))&&(o={id:e,completed_at:i.ts,history_op:i.op})}return o}function ka(e){return e.completed_at!==void 0?{resolved:!0,timestamp:e.completed_at,source:"completed_at",fallback:!1}:e.closed_at!==void 0?{resolved:!0,timestamp:e.closed_at,source:"closed_at",fallback:!0}:e.updated_at!==void 0?{resolved:!0,timestamp:e.updated_at,source:"updated_at",fallback:!0}:{resolved:!1}}function zk(e,t,n){let r=[];for(let o of e){if(o.completed_at!==void 0||!n.has(o.status.trim().toLowerCase()))continue;let i=Km(o.id,t.get(o.id)??[],n);i!==void 0&&r.push(i)}return r.sort((o,i)=>o.id.localeCompare(i.id))}import Hm from"node:path";import{createHash as zm}from"node:crypto";import Wm from"node:fs/promises";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ad77a79d-54da-55f1-8ac8-935366880d90")}catch{}})();var va=1,qm=1e4,Ea=12;function Vm(e){let t=new Date(e);return`${t.getUTCFullYear()}-Q${Math.floor(t.getUTCMonth()/3)+1}`}function Ym(e,t){let n=new Set,r=e.parent;for(;r&&!n.has(r);){n.add(r);let o=t.get(r);if(!o)return;if(o.type.toLowerCase()==="epic")return o;r=o.parent}}function Xm(e){let t=[...e.items].sort((o,i)=>i.completion.timestamp.localeCompare(o.completion.timestamp)||o.item.id.localeCompare(i.item.id)),n=new Set,r=0;for(let{item:o}of t){let i=o.resolution??o.close_reason;i?.trim()&&n.add(i.trim()),r+=(o.notes?.length??0)+(o.learnings?.length??0)}return{kind:e.kind,key:e.key,label:e.label,item_count:t.length,first_closed_at:t.at(-1).completion.timestamp,last_closed_at:t[0].completion.timestamp,representative_items:t.slice(0,5).map(({item:{id:o,title:i}})=>({id:o,title:i})),outcomes:[...n].sort().slice(0,5),knowledge_entries:r}}function Jm(e,t){if(!t.sourceCursor.trim())throw new TypeError("Workspace memory source cursor must be non-empty");if(!Number.isFinite(Date.parse(t.now)))throw new TypeError("Workspace memory clock must be a valid timestamp");let n=e.filter(i=>t.statusRegistry.terminal_done_statuses.has(C(i.status,t.statusRegistry))).map(i=>{let s=ka(i);if(!s.resolved)throw new TypeError(`Completed item ${i.id} has no reporting timestamp`);return{item:i,completion:s}}),r=new Map(e.map(i=>[i.id,i])),o=new Map;for(let i of n){let{item:s,completion:a}=i,c=Vm(a.timestamp),d=`epoch:${c}`,l=o.get(d)??{kind:"epoch",key:c,label:c,items:[]};l.items.push(i),o.set(d,l);let u=Ym(s,r);if(u){let f=`epic:${u.id}`,m=o.get(f)??{kind:"epic",key:u.id,label:u.title,items:[]};m.items.push(i),o.set(f,m)}}return{format_version:va,source_cursor:t.sourceCursor,source_item_count:e.length,generated_at:t.now,completion_time_sources:n.reduce((i,{completion:s})=>(i[s.source]+=1,i),{completed_at:0,closed_at:0,updated_at:0}),rollups:[...o.values()].map(Xm).sort((i,s)=>s.last_closed_at.localeCompare(i.last_closed_at)||i.kind.localeCompare(s.kind)||i.key.localeCompare(s.key))}}function Qm(e){return typeof e=="object"&&e!==null&&"id"in e&&typeof e.id=="string"&&e.id.length>0&&"title"in e&&typeof e.title=="string"}function Zm(e){if(typeof e!="object"||e===null)return!1;let t=e,n=[t.key,t.label].every(o=>typeof o=="string"&&o.length>0),r=[t.first_closed_at,t.last_closed_at].every(o=>typeof o=="string"&&Number.isFinite(Date.parse(o)));return(t.kind==="epoch"||t.kind==="epic")&&n&&Number.isSafeInteger(t.item_count)&&t.item_count>0&&r&&Array.isArray(t.representative_items)&&t.representative_items.every(Qm)&&Array.isArray(t.outcomes)&&t.outcomes.every(o=>typeof o=="string")&&Number.isSafeInteger(t.knowledge_entries)&&t.knowledge_entries>=0}function eg(e){if(typeof e!="object"||e===null||Array.isArray(e))return null;let t=e;return t.format_version!==va||typeof t.source_cursor!="string"||!t.source_cursor.trim()||!Number.isSafeInteger(t.source_item_count)||t.source_item_count<0||typeof t.generated_at!="string"||!Number.isFinite(Date.parse(t.generated_at))||!Array.isArray(t.rollups)?null:t.rollups.every(Zm)?t:null}function tg(e){return`scan:${zm("sha256").update(xe(e.map(t=>[t.id,t.updated_at,t.status,t.parent]).sort(([t],[n])=>String(t).localeCompare(String(n))))).digest("hex")}`}async function ng(e,t,n){return n!==void 0?n:(await Ae(t))?.source_cursor??tg(e)}async function rg(e){try{let t=eg(JSON.parse(await Wm.readFile(e,"utf8")));return{snapshot:t,invalid:t===null}}catch(t){return{snapshot:null,invalid:!(typeof t=="object"&&t!==null&&"code"in t&&wt(t))}}}async function Ia(e,t){let n=Math.max(1,Math.floor(t.minimumItems??qm));if(e.length<n)return{snapshot:null,cache_status:"skipped",warnings:[]};let r=await ng(e,t.pmRoot,t.sourceCursor),o=Hm.join(t.pmRoot,"runtime","workspace-memory.json"),i=[],s=await rg(o),a=s.snapshot;if(s.invalid&&i.push("workspace_memory_invalid"),a?.source_cursor===r&&a.source_item_count===e.length)return{snapshot:a,cache_status:"fresh",warnings:i};a&&i.push("workspace_memory_stale");let c=Jm(e,{statusRegistry:t.statusRegistry,sourceCursor:r,now:t.now});try{await W(o,`${JSON.stringify(c)}
|
|
6
|
+
`)}catch{i.push("workspace_memory_write_failed")}return{snapshot:c,cache_status:"rebuilt",warnings:i}}function og(e,t,n=Ea){let r=Math.max(0,Math.floor(t)),o=0,i=[];for(let s of e.rollups){if(i.length>=Math.max(0,Math.floor(n)))break;let a=Math.ceil(JSON.stringify(s).length/4);o+a>r||(i.push(s),o+=a)}return i}function xa(e,t,n=Ea){if(e.snapshot===null)return;let r=og(e.snapshot,t,n);if(r.length!==0)return{cache_status:e.cache_status==="fresh"?"fresh":"rebuilt",source_cursor:e.snapshot.source_cursor,...e.snapshot.completion_time_sources?{completion_time_sources:{...e.snapshot.completion_time_sources}}:{},rollups:r}}function ig(e,t,n=5){if(e===null)return[];let r=t.trim().toLowerCase().split(/\s+/u).filter(Boolean);return r.length===0?[]:e.rollups.map(o=>({rollup:o,score:r.filter(i=>[o.key,o.label,...o.outcomes,...o.representative_items.flatMap(s=>[s.id,s.title])].join(" ").toLowerCase().includes(i)).length})).filter(({score:o})=>o>0).sort((o,i)=>i.score-o.score||i.rollup.last_closed_at.localeCompare(o.rollup.last_closed_at)||o.rollup.key.localeCompare(i.rollup.key)).slice(0,Math.max(0,Math.floor(n))).map(({rollup:o})=>o)}function tv(e,t,n=5){let r=ig(e.snapshot,t,n);if(r.length!==0)return{cache_status:e.cache_status==="fresh"?"fresh":"rebuilt",matches:r}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="97c1e310-3cd9-5846-a54c-d019b0351541")}catch{}})();var Ca=16;async function Sa(e,t,n){let r=A(t,S()).type_to_folder,o=[],i=new Set,s=n;for(;s&&o.length<Ca;){let a=s.trim().toLowerCase();if(!a||i.has(a))break;i.add(a);let c=await fe(e,s,t.id_prefix,t.item_format,r);if(!c)break;let d=await pe(c,{schema:t.schema});o.push(d.document.metadata.id),s=d.document.metadata.parent}return o}async function av(e){await bo({pmRoot:e.pmRoot,principal:e.principal,itemId:e.itemId,lineageIds:await Sa(e.pmRoot,e.settings,e.itemId)})}async function cv(e){await wo(e)}async function dv(e){await ko({pmRoot:e.pmRoot,principal:e.principal,...e.itemId?{itemId:e.itemId,lineageIds:await Sa(e.pmRoot,e.settings,e.itemId)}:{}})}var lv={lineage_depth:Ca,active_items:64,evidence_rows:32};function Ta(e){if(!e)return;let t={};for(let n of e.active_item_ids)t[n]=1;e.focused_item_id&&(t[e.focused_item_id]=1);for(let n of e.evidence){let r=/^lineage:(.+)$/u.exec(n)?.[1];r&&t[r]===void 0&&(t[r]=.75)}return Object.keys(t).length>0?t:void 0}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="4f8e82a2-f4ea-5ecb-8ef5-3ca795cdeda5")}catch{}})();var sg=["markdown","toon","json","ndjson"],bn=new Set(["Epic","Feature"]),Fa=10,Ma=1e4,Na=["hierarchy","activity","progress","recently_created","unparented","workload"],ag=[...Na,"blockers","files","staleness","tests"],cg=/^(\d{4})-(\d{2})-(\d{2})/,dg=/^(\d{4})(\d{2})(\d{2})(?:[T ]?\d{2}|$)/,lg=/^(\d{4})(\d{2})(\d{2})$/,ug=/^(\d{4})(\d{2})(\d{2})(?:[T\s]?)(\d{2})(\d{2})(\d{2})?(Z|[+-]\d{2}:?\d{2})?$/i;function fg(e){if(!e)return;let t=e.trim().toLowerCase();if(!sg.includes(t))throw new y("Context format must be one of markdown|toon|json|ndjson",h.USAGE);return t}var Ra=new Set(["id","title","type","status","priority","order","deadline","assignee","tags","tags_inherited","updated_at","parent","children_total","children_closed","completion_pct","blocked","blocker_ids","created_at"]);function pg(e){if(e===void 0)return;let t=[];for(let n of e.split(",")){let r=n.trim().toLowerCase();if(r.length!==0){if(!Ra.has(r))throw new y(`Context --fields value not projectable: ${r} (valid: ${[...Ra].join(", ")})`,h.USAGE);t.includes(r)||t.push(r)}}if(t.length===0)throw new y("Context --fields requires at least one field name",h.USAGE);return t}function pt(e,t){return e.map(n=>{let r={},o=n;for(let i of t)r[i]=o[i]??null;return r})}function Dv(e,t){let n=fg(e.format);if(t.json&&n&&n!=="json"&&n!=="ndjson")throw new y("Cannot combine --json with --format markdown|toon",h.USAGE);return t.json?n==="ndjson"?"ndjson":"json":n??"toon"}function mg(e,t){return Q(e,"--limit")??(t==="full"?Number.MAX_SAFE_INTEGER:Fa)}function Kr(e,t){if(e===void 0)return t;let n=typeof e=="number"?e:Number(e);if(!Number.isInteger(n)||n<1)throw new y("--token-budget must be a positive integer",h.USAGE);return n}function gg(e,t){return t>=Ma&&e===Number.MAX_SAFE_INTEGER?Fa:e}function hg(e,t){if(!e)return t.default_depth;let n=e.trim().toLowerCase();if(!Cn.includes(n))throw new y(`Context --depth must be one of ${Cn.join("|")}`,h.USAGE);return n}function yg(e,t,n){if(e&&e.length>0){let o=[];for(let i of e){let s=i.trim().toLowerCase();if(!kt.includes(s))throw new y(`Context --section must be one of ${kt.join("|")}`,h.USAGE);o.includes(s)||o.push(s)}return o}return t==="brief"?[]:t==="full"?[...kt]:(t==="deep"?ag:Na).filter(o=>n.sections[o])}function _g(e,t){return e?Q(e,"--activity-limit")??t.activity_limit:t.activity_limit}function bg(e,t){if(!e)return t.stale_threshold_days;let n=e.trim().toLowerCase(),r=/^(\d+)d?$/.exec(n);if(!r)throw new y("--stale-threshold must be a number of days (e.g. 7 or 7d)",h.USAGE);let o=parseInt(r[1],10);if(o<=0)throw new y("--stale-threshold must be positive",h.USAGE);return o}function Da(e,t){let n=C(e,t),r=V("blocked",t),o=V("draft",t);return n===t.in_progress_status?0:t.active_statuses.has(n)?1:r&&n===r?2:o&&n===o?3:t.blocked_statuses.has(n)?5:t.terminal_statuses.has(n)?7:6}function mt(e,t){let n=V("closed",t);return C(e,t)===n}function Hr(e,t){return C(e,t)===t.in_progress_status}function Oa(e,t){let n=C(e,t);return n!==t.in_progress_status&&t.active_statuses.has(n)}function wg(e,t){return t.blocked_statuses.has(C(e,t))}var kg=["compact","brief","fields","includeBody","include_body","parent"];function vg(e){let t={...e};for(let n of kg)delete t[n];return t}function zr(e,t){let n=t.trim().toLowerCase(),r=e.find(a=>a.id.trim().toLowerCase()===n);if(!r)return{ids:new Set,found:!1};let o=Ke(e),i=gt(r.id,o);return{ids:new Set([r.id,...i.map(a=>a.id)].map(a=>a.trim().toLowerCase())),found:!0}}function Eg(e){if(e===void 0)return;let t=e.trim();if(t.length===0)throw new y("Context --parent requires an item id",h.USAGE);return t}function Ig(e,t){let n=e??null,r=t??null;return n===null&&r===null?0:n===null?1:r===null?-1:n-r}function xg(e,t){let n=e??null,r=t??null;return n===null&&r===null?0:n===null?1:r===null?-1:x(n,r)}function Cg(e,t){return new Date(Date.UTC(e,t+1,0)).getUTCDate()}function Sg(e){let t=cg.exec(e)??dg.exec(e);if(!t)return!0;let n=Number.parseInt(t[1],10),r=Number.parseInt(t[2],10),o=Number.parseInt(t[3],10);return r>=1&&r<=12&&o>=1&&o<=Cg(n,r-1)}function Tg(e){let t=lg.exec(e);if(t)return`${t[1]}-${t[2]}-${t[3]}`;let n=ug.exec(e);if(n){let[,r,o,i,s,a,c,d]=n,l=c?`:${c}`:"",u=d&&d.length===5&&d!=="Z"?`${d.slice(0,3)}:${d.slice(3)}`:d??"";return`${r}-${o}-${i}T${s}:${a}${l}${u}`}return e}function $a(e){if(typeof e!="string")return Number.NaN;let t=e.trim();if(t.length===0||!Sg(t))return Number.NaN;let n=Date.parse(Tg(t));return Number.isFinite(n)?n:Number.NaN}function Gr(e){let t=$a(e);return Number.isFinite(t)?new Date(t).toISOString():""}function Rg(e){let t=$a(e);return Number.isFinite(t)?new Date(t).toISOString().slice(0,10):"unknown"}function Wr(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function ke(e,t,n){let r=Da(e.status,n)-Da(t.status,n);if(r!==0)return r;let o=e.priority-t.priority;if(o!==0)return o;let i=Ig(e.order,t.order);if(i!==0)return i;let s=xg(e.deadline,t.deadline);if(s!==0)return s;let a=x(Gr(t.updated_at),Gr(e.updated_at)),c=e.id.localeCompare(t.id);return a!==0?a:c}function Br(e){return Math.max(1,Math.ceil(Buffer.byteLength(JSON.stringify(e),"utf8")/4))}function qr(e,t,n=new Set,r="context"){return ma(e.ranked.map(o=>({id:o.id,item:o.item,rank:o.rank,score:o.score,required:n.has(o.id),cluster:o.item.parent?.trim()||o.item.type,token_costs:{identity:Br({id:o.id,title:o.item.title}),summary:Br({id:o.id,title:o.item.title,type:o.item.type,status:o.item.status,priority:o.item.priority,parent:o.item.parent}),full:Br(o.item)}})),{tokenBudget:t,profile:r,latencyBudgetMs:25})}function Vr(e){return{...e,included:e.included.map(t=>({id:t.id,projection:t.projection,tokens:t.tokens}))}}function Yr(e,t,n){let r=n===void 0?e.ranked:e.ranked.filter(o=>n.has(o.id));return{model:e.model,available_signals:e.available_signals,items:r.map(o=>({id:o.id,rank:o.rank,baseline_rank:o.baseline_rank,score:o.score,contributions:o.contributions,...o.signal_provenance===void 0?{}:{recency:o.signal_provenance.recency}})),candidate_count:e.ranked.length,omitted_count:e.ranked.length-r.length,...t?{feature_store:{source:t.snapshot.source,cache_status:t.cache_status,source_cursor:t.snapshot.source_cursor,generated_at:t.snapshot.generated_at}}:{}}}function Pa(e,t){return t>0?Math.round(e/t*100):0}function Ke(e){let t=new Map;for(let n of e){let r=Wr(n.parent);if(!r)continue;let o=t.get(r)??[];o.push(n),t.set(r,o)}return t}function ht(e,t,n){let r={id:e.id,title:e.title,type:e.type,status:e.status,priority:e.priority,order:e.order??null,deadline:e.deadline??null,assignee:e.assignee??null,tags:Array.isArray(e.tags)?[...e.tags]:[],updated_at:e.updated_at,parent:Wr(e.parent)};if(t&&n){let o=gt(e.id,n),i=o.length;if(i>0){let s=o.filter(a=>mt(a.status,t)).length;r.children_total=i,r.children_closed=s,r.completion_pct=Pa(s,i)}}return r}function Dg(e){let t=0,n=0,r=0,o=new Set;for(let i of e){if(o.add(i.item_id),i.kind==="deadline"){t+=1;continue}if(i.kind==="reminder"){n+=1;continue}r+=1}return{events:e.length,items:o.size,deadlines:t,reminders:n,scheduled:r}}function wn(...e){return[...new Set(e.flatMap(t=>t??[]))].sort((t,n)=>t.localeCompare(n))}function Ag(e,t){return e.filter(n=>!t.terminal_statuses.has(C(n.item_status,t)))}function Lg(e,t,n,r){let o=new Map;for(let c of e)o.set(c.id,c);let i=Ke(e),s=new Set(t.filter(c=>bn.has(c.type)).map(c=>c.id)),a=[];for(let c of s){let d=o.get(c);if(!d)continue;let l=gt(c,i),u=i.get(c)??[],f=0,m=0,p=0,g=0;for(let k of l)mt(k.status,n)?f++:Hr(k.status,n)?p++:wg(k.status,n)?g++:Oa(k.status,n)&&m++;let _=u.sort((k,b)=>ke(k,b,n)).slice(0,r).map(k=>{let b=gt(k.id,i),w=b.filter(v=>mt(v.status,n)).length;return{id:k.id,title:k.title,type:k.type,status:k.status,children_total:b.length,children_closed:w}});a.push({id:d.id,title:d.title,type:d.type,status:d.status,children_total:l.length,children_closed:f,children_open:m,children_in_progress:p,children_blocked:g,children:_})}return a.sort((c,d)=>{let l=o.get(c.id),u=o.get(d.id);return ke(l,u,n)}).slice(0,r)}function gt(e,t){let n=[],r=[e],o=new Set;for(;r.length>0;){let i=r.pop();if(o.has(i))continue;o.add(i);let s=t.get(i)??[];for(let a of s)n.push(a),r.push(a.id)}return n}async function Fg(e,t){return(await _i({compact:!0,limit:String(e)},t)).compact_activity??[]}function Mg(e,t,n,r,o){let i=new Map;for(let c of e){if(!c.parent)continue;let d=i.get(c.parent)??[];d.push(c),i.set(c.parent,d)}let s=t.filter(c=>bn.has(c.type)),a=[];for(let c of s){let d=gt(c.id,i),l=d.length;if(l===0)continue;let u=0,f=0,m=0,p=0;for(let g of d)mt(g.status,r)?u++:n.has(g.id.trim().toLowerCase())?p++:Hr(g.status,r)?m++:Oa(g.status,r)&&f++;a.push({id:c.id,title:c.title,type:c.type,total:l,closed:u,open:f,in_progress:m,blocked:p,completion_pct:Pa(u,l)})}return a.sort((c,d)=>c.completion_pct-d.completion_pct).slice(0,o)}function Ng(e,t,n,r){let o=new Map(t.map(i=>[i.id.trim().toLowerCase(),i]));return e.slice(0,r).map(i=>{let s=un(i,o,n),a=s.find(d=>!d.resolved)?.id??s[0]?.id??null,c=a?o.get(a.trim().toLowerCase()):void 0;return{id:i.id,title:i.title,blocked_by:a,blocked_by_title:c?.title??null,blocked_by_status:c?.status??null,blocked_reason:i.blocked_reason??null,unblock_note:i.unblock_note??null}})}function Og(e,t){let n=new Map;for(let r of e)for(let o of r.files??[]){let i=n.get(o.path)??new Set;i.add(r.id),n.set(o.path,i)}return[...n.entries()].map(([r,o])=>({path:r,references:o.size,items:[...o].sort()})).sort((r,o)=>o.references-r.references).slice(0,t)}function $g(e,t,n){let r=new Map;for(let o of e){let i=o.assignee??null,s=r.get(i)??[];s.push(o),r.set(i,s)}return[...r.entries()].map(([o,i])=>({assignee:o,active:i.length,in_progress:i.filter(s=>Hr(s.status,t)).length,items:i.map(s=>s.id).sort()})).sort((o,i)=>i.active-o.active).slice(0,n)}function Pg(e,t,n,r){let o=new Date(n).getTime()-t*24*60*60*1e3;return e.filter(i=>new Date(i.updated_at).getTime()<o).map(i=>({id:i.id,title:i.title,status:i.status,updated_at:i.updated_at,stale_days:Math.floor((new Date(n).getTime()-new Date(i.updated_at).getTime())/(1440*60*1e3))})).sort((i,s)=>s.stale_days-i.stale_days).slice(0,r)}function jg(e,t,n,r){return e.map(o=>({item:o,sortKey:Gr(o.created_at)})).sort((o,i)=>{let s=x(i.sortKey,o.sortKey);return s!==0?s:o.item.id.localeCompare(i.item.id)}).slice(0,r).map(({item:o})=>({...ht(o,t,n),created_at:o.created_at}))}function Ug(e,t,n,r){return e.filter(o=>!Wr(o.parent)&&!bn.has(o.type)).sort((o,i)=>ke(o,i,t)).slice(0,r).map(o=>ht(o,t,n))}function Bg(e){let t=0,n=0,r=0,o=0,i=0,s=[];for(let a of e){(a.tests??[]).length>0&&t++;let c=a.test_runs??[];if(c.length>0){n++;let d=!1;for(let l of c)r+=l.passed??0,o+=l.failed??0,i+=l.skipped??0,(l.failed??0)>0&&(d=!0);d&&s.push(a.id)}}return{items_with_tests:t,items_with_recent_runs:n,recent_runs:{passed:r,failed:o,skipped:i},items_failing:s.sort()}}function Aa(e){return`${new Date(e).toISOString().slice(11,16)}Z`}function ja(e){let t=e.order===null?"-":String(e.order),n=e.deadline??"-",r=e.parent?` parent:${e.parent}`:"",o=e.children_total!==void 0&&e.children_closed!==void 0&&e.completion_pct!==void 0?` children:${e.children_closed}/${e.children_total} done:${e.completion_pct}%`:"",i=e.blocked===!0?` blocked:${e.blocker_ids?.join(",")||"lifecycle"}`:"";return`${e.id} p${e.priority} ${e.status} ${e.type} order:${t} deadline:${n}${r}${o}${i} ${e.title}`}function Gg(e,t){let n=e;return t.map(r=>{let o=n[r];return Array.isArray(o)?`${r}:${o.join(",")}`:`${r}:${o??"-"}`}).join(" ")}function Kg(e){if("reference_only"in e){let n=e.kind==="reminder"?` \u2014 ${e.reminder_text??"reminder"}`:e.kind==="event"?` \u2014 ${e.event_title??"event"}${e.event_recurring?" (recurring)":""}`:"";return`${Aa(e.at)} [${e.kind}] ${e.item_id} (see focus item)${n}`}let t=`${Aa(e.at)} [${e.kind}] ${e.item_id} p${e.item_priority} ${e.item_status} ${e.item_title}`;if(e.kind==="reminder")return`${t} \u2014 ${e.reminder_text}`;if(e.kind==="event"){let n=e.event_recurring?" (recurring)":"",r=e.event_title??e.item_title;return`${t} \u2014 ${r}${n}`}return t}function La(e,t,n,r,o){if(e.push(`## ${t}`),n.length===0)e.push(r);else for(let i of n)e.push(`- ${o(i)}`);e.push("")}function Hg(e,t,n){if(t.blocked_fallback.length!==0){e.push("## Blocked fallback");for(let r of t.blocked_fallback)e.push(`- ${n(r)}`);e.push("")}}function zg(e,t){if(e.push("## Agenda"),e.push(`- events: ${t.agenda.summary.events} (deadlines: ${t.agenda.summary.deadlines}, reminders: ${t.agenda.summary.reminders}, scheduled: ${t.agenda.summary.scheduled})`),t.agenda.events.length===0)e.push("No agenda events matched the selected filters.");else for(let n of t.agenda.events)e.push(`- ${Kg(n)}`);e.push("")}function Wg(e,t){if(!(!t.hierarchy||t.hierarchy.length===0)){e.push("## Hierarchy");for(let n of t.hierarchy){let r=n.children_total>0?Math.round(n.children_closed/n.children_total*100):0;e.push(`- ${n.id} ${n.type} ${n.status} "${n.title}" [${n.children_closed}/${n.children_total} done ${r}%]`);for(let o of n.children){let i=o.children_total>0?Math.round(o.children_closed/o.children_total*100):0;e.push(` - ${o.id} ${o.type} ${o.status} "${o.title}" [${o.children_closed}/${o.children_total} done ${i}%]`)}}e.push("")}}function qg(e,t){if(!(!t.progress||t.progress.length===0)){e.push("## Progress");for(let n of t.progress)e.push(`- ${n.id} "${n.title}" ${n.completion_pct}% (${n.closed}/${n.total} closed, ${n.in_progress} wip, ${n.open} open, ${n.blocked} blocked)`);e.push("")}}function Vg(e,t,n,r){if(!(!t.recently_created||t.recently_created.length===0)){e.push("## Recently created");for(let o of t.recently_created)e.push(n?`- ${r(o)}`:`- ${Rg(o.created_at)} ${ja(o)}`);e.push("")}}function Yg(e,t,n){if(!(!t.unparented||t.unparented.length===0)){e.push("## Unparented");for(let r of t.unparented)e.push(`- ${n(r)}`);e.push("")}}function Xg(e,t){if(!(!t.activity||t.activity.length===0)){e.push("## Recent activity");for(let n of t.activity){let r=n.msg?` ${n.msg}`:"";e.push(`- ${n.ts.slice(0,16)}Z ${n.id} ${n.op} by:${n.author}${r}`)}e.push("")}}function Jg(e,t){if(!(!t.blockers||t.blockers.length===0)){e.push("## Blockers");for(let n of t.blockers){let r=n.blocked_by?`blocked_by:${n.blocked_by}(${n.blocked_by_status??"?"})`:"blocked_by:-",o=n.blocked_reason?` reason:"${n.blocked_reason}"`:"",i=n.unblock_note?` unblock:"${n.unblock_note}"`:"";e.push(`- ${n.id} "${n.title}" ${r}${o}${i}`)}e.push("")}}function Qg(e,t){if(!(!t.files||t.files.length===0)){e.push("## Hot files");for(let n of t.files)e.push(`- ${n.path} refs:${n.references} items:[${n.items.join(",")}]`);e.push("")}}function Zg(e,t){if(!(!t.workload||t.workload.length===0)){e.push("## Workload");for(let n of t.workload){let r=n.assignee??"(unassigned)";e.push(`- ${r} active:${n.active} wip:${n.in_progress} items:[${n.items.join(",")}]`)}e.push("")}}function eh(e,t){if(!(!t.staleness||t.staleness.length===0)){e.push("## Stale items");for(let n of t.staleness)e.push(`- ${n.id} ${n.status} stale:${n.stale_days}d last:${n.updated_at.slice(0,10)} "${n.title}"`);e.push("")}}function th(e,t){t.tests&&(e.push("## Test health"),e.push(`- items_with_tests: ${t.tests.items_with_tests}`),e.push(`- items_with_recent_runs: ${t.tests.items_with_recent_runs}`),e.push(`- passed: ${t.tests.recent_runs.passed}, failed: ${t.tests.recent_runs.failed}, skipped: ${t.tests.recent_runs.skipped}`),t.tests.items_failing.length>0&&e.push(`- items_failing: [${t.tests.items_failing.join(",")}]`),e.push(""))}function nh(e,t){t.summary.active_items===0&&t.summary.blocked===0&&t.agenda.summary.events===0&&(e.push("## Suggestions"),e.push("No active work items or upcoming events. Consider:"),e.push('- `pm create --type Task --title "..."` to add a new work item'),e.push("- `pm list --status closed --limit 5` to review recent completions"),e.push("- `pm search <keywords>` to find related past work"),e.push("- `pm aggregate` for a full project status overview"))}function Av(e){let t=[],n=e.focus_fields,r=i=>n?Gg(i,n):ja(i);if(t.push("# pm context"),t.push(""),t.push(`- now: ${e.now}`),t.push(`- depth: ${e.depth}`),e.filters.parent&&t.push(`- scope: subtree of ${e.filters.parent}`),t.push(`- active_items: ${e.summary.active_items} (in_progress: ${e.summary.in_progress}, open: ${e.summary.open})`),e.summary.total_items!==void 0&&t.push(`- total_items: ${e.summary.total_items} (closed: ${e.summary.closed??0}, canceled: ${e.summary.canceled??0})`),t.push(`- agenda_events: ${e.summary.agenda_events}`),t.push(`- blocked_fallback_used: ${e.summary.blocked_fallback_used}`),e.extension_health){let i=e.extension_health.packages.filter(s=>s.status==="degraded").map(s=>s.name);t.push(`- extensions: ${e.extension_health.ok} ok, ${e.extension_health.degraded} degraded${i.length>0?` (${i.join(", ")})`:""}`)}let o=e.sections_included.filter(i=>i!=="blockers"||(e.blockers?.length??0)>0);if(o.length>0&&t.push(`- sections: ${o.join(", ")}`),t.push(""),La(t,"High-level focus",e.high_level,"No high-level active items.",r),La(t,"Low-level focus",e.low_level,"No low-level active items.",r),Hg(t,e,r),zg(t,e),e.workspace_memory){t.push("## Workspace memory");for(let i of e.workspace_memory.rollups)t.push(`- ${i.kind}:${i.key} \u2014 ${i.label} (${i.item_count} completed, latest ${i.last_closed_at})`);t.push("")}return Wg(t,e),qg(t,e),Vg(t,e,n,r),Yg(t,e,r),Xg(t,e),Jg(t,e),Qg(t,e),Zg(t,e),eh(t,e),th(t,e),nh(t,e),t.join(`
|
|
7
|
+
`)}async function rh(e,t){let n=R(process.cwd(),t.path),r=await L(n),o=r.context??to.context,i=q(r.schema),s=hg(e.depth,o),a=mg(e.limit??e.maxItems,s);return{settings:r,contextSettings:o,statusRegistry:i,depth:s,limit:a,sectionsIncluded:yg(e.section,s,o),activityLimit:_g(e.activityLimit,o),staleThresholdDays:bg(e.staleThreshold,o),parentScope:Eg(e.parent),focusFields:pg(e.fields),baseListOptions:vg(e)}}function oh(e){return e.some(t=>["hierarchy","progress","blockers","staleness","recently_created","unparented"].includes(t))}function ih(e,t){return{...e,...t,noTruncate:!0,limit:void 0,offset:void 0,after:void 0}}async function sh(e,t){let n=await dt(void 0,ih(t.baseListOptions,{excludeTerminal:!1}),e),r=n.items,o=r.filter(a=>!M(a.status,t.statusRegistry)),i=r,s=ah(t.parentScope,r);return s&&(o=o.filter(a=>s.has(a.id.trim().toLowerCase())),i=i.filter(a=>s.has(a.id.trim().toLowerCase()))),{listed:n,listedItemMetadata:o,allItems:i,fullCorpus:r,subtreeIds:s}}function ah(e,t){if(e===void 0)return;let n=zr(t,e);if(!n.found)throw new y(`Context --parent item not found: ${e}`,h.NOT_FOUND);return n.ids}function ch(e,t,n,r){let o=new Set(it(e,t,n,r).containers.map(i=>i.item.id));return new Set(e.filter(i=>bn.has(i.type)||o.has(i.id)||ge(i.type,r)!=="agent").map(i=>i.id))}async function dh(e,t,n,r,o,i,s,a,c,d,l,u,f,m,p,g){let _=[...e].sort((E,Ee)=>ke(E,Ee,o)),k=await At({pmRoot:f,author:c,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"}),b=await _n(_,{pmRoot:f,storeKey:"context",statusRegistry:o,now:a,author:c,usageAffinity:k.affinity,claimFocus:p}),w=await yn("context",b.candidates),v=w.ranked.map(E=>E.item),I=o.active_statuses,F=v.filter(E=>I.has(C(E.status,o))),N=u?Te(F,d,l,E=>E.id):0,D=u?F.slice(N,N+s):F,le=u&&D.length>0&&N+D.length<F.length,P=le&&D.length>0?te(l,D[D.length-1].id,N+D.length-1):void 0,G=v.filter(E=>r.has(E.id.trim().toLowerCase())),X=new Set([...D.map(E=>E.id),...G.slice(0,s).map(E=>E.id)]),ee=qr({...w,ranked:w.ranked.filter(E=>X.has(E.id))},m,new Set(Object.entries(p??{}).filter(([,E])=>E>=1).map(([E])=>E))),se=ee.included.map(E=>E.item),z=se.filter(E=>I.has(C(E.status,o))),K=se.filter(E=>r.has(E.id.trim().toLowerCase())),He=Ke(t),ve=oh(i)?He:void 0,vn=new Map(n.map(E=>[E.id.trim().toLowerCase(),E])),$=E=>{let Ee=ht(E,o,ve);return r.has(E.id.trim().toLowerCase())&&(Ee.blocked=!0,Ee.blocker_ids=un(E,vn,o).filter(En=>!En.resolved).map(En=>En.id)),Ee},j=ch(z,n,o,g),Za=z.filter(E=>j.has(E.id)).slice(0,u?D.length:s).map($),ec=z.filter(E=>!j.has(E.id)).slice(0,u?D.length:s).map($),Qr=F.length===0;return{activeItems:z,blockedItems:K,highLevel:Za,lowLevel:ec,blockedFallback:Qr?K.slice(0,s).map($):[],blockedFallbackUsed:Qr,ranking:w,packing:ee,featureStore:b,pageExtras:{...u?{applied_limit:s}:{},...le?{has_more:!0,truncated:!0}:{},...P?{next_cursor:P}:{}}}}function lh(e){return ue("context",Ct(e,Yo))}function uh(e,t){return e.limit!==void 0||e.maxItems!==void 0||e.after!==void 0||t>=Ma}async function fh(e,t,n,r){let o={...t.baseListOptions,view:"agenda",include:"all",limit:t.parentScope===void 0?String(t.limit):void 0},i=await da(o,e),s=n===void 0?i.events:i.events.filter(d=>n.has(d.item_id.trim().toLowerCase())),a=Ag(s,t.statusRegistry).slice(0,t.limit),c=a.map(d=>r.has(d.item_id)?{at:d.at,date:d.date,kind:d.kind,item_id:d.item_id,reference_only:!0,...d.kind==="reminder"?{reminder_text:d.reminder_text}:{},...d.kind==="event"?{event_title:d.event_title,event_recurring:d.event_recurring}:{}}:d);return{agenda:i,agendaEvents:c,agendaSummary:Dg(a)}}function Ua(e,t,n){let r=String(t);return e.filter(o=>C(o.status,n)===r).length}async function ph(e){let{runtime:t,allItems:n,fullCorpus:r,blockedIds:o,focusGroups:i,now:s,global:a}=e,c=Ke(n),d=n.filter(u=>!M(u.status,t.statusRegistry)),l=u=>t.sectionsIncluded.includes(u);return{hierarchy:l("hierarchy")?Lg(n,i.activeItems,t.statusRegistry,t.limit):void 0,activity:l("activity")?await Fg(t.activityLimit,a):void 0,progress:l("progress")?Mg(n,i.activeItems,o,t.statusRegistry,t.limit):void 0,blockersSection:l("blockers")?Ng(i.blockedItems,r,t.statusRegistry,t.limit):void 0,recentlyCreated:l("recently_created")?jg(d,t.statusRegistry,c,t.limit):void 0,unparented:l("unparented")?Ug(d,t.statusRegistry,c,t.limit):void 0,filesSection:l("files")?Og(i.activeItems,t.limit):void 0,workload:l("workload")?$g(i.activeItems,t.statusRegistry,t.limit):void 0,staleness:l("staleness")?Pg(d,t.staleThresholdDays,s,t.limit):void 0,tests:l("tests")?Bg(i.activeItems):void 0}}function mh(e,t,n){let r=V("canceled",t),o=e.filter(s=>t.active_statuses.has(C(s.status,t))),i=Ua(o,t.in_progress_status,t);return{scope:"matching_items",active_items:o.length,open:o.length-i,in_progress:i,blocked:e.filter(s=>n.has(s.id.trim().toLowerCase())).length,total_items:e.length,closed:e.filter(s=>mt(s.status,t)).length,canceled:e.filter(s=>C(s.status,t)===r).length}}function gh(e,t,n){t.hierarchy&&(e.hierarchy=t.hierarchy),t.activity&&(e.activity=t.activity),t.progress&&(e.progress=t.progress),t.blockersSection&&(e.blockers=t.blockersSection),t.recentlyCreated&&(e.recently_created=t.recentlyCreated),t.unparented&&(e.unparented=t.unparented),t.filesSection&&(e.files=t.filesSection),t.workload&&(e.workload=t.workload),t.staleness&&(e.staleness=t.staleness),t.tests&&(e.tests=t.tests),n!==void 0&&n.length>0&&(e.warning_details=n)}function hh(e,t){t&&(e.focus_fields=t,e.high_level=pt(e.high_level,t),e.low_level=pt(e.low_level,t),e.blocked_fallback=pt(e.blocked_fallback,t),e.recently_created&&(e.recently_created=pt(e.recently_created,t)),e.unparented&&(e.unparented=pt(e.unparented,t)))}function yh(e,t){let n=[e.high_level,e.low_level,e.blocked_fallback,e.recently_created??[],e.unparented??[]].flat();if(t){for(let i of n)delete i.tags,delete i.tags_inherited;return}let r=new Map(n.map(i=>[i.id,i])),o=new Map(n.map(i=>[i.id,i.tags?[...i.tags].sort().join("\0"):void 0]));for(let i of n){if(!i.parent||!i.tags)continue;let s=r.get(i.parent);s&&o.get(i.id)===o.get(s.id)&&(delete i.tags,i.tags_inherited=s.id)}}function _h(e,t,n){t.length>0||n.length>0||e.agenda.events.length>0||(e.suggestions=['pm create --type Task --title "..." to add a new work item',"pm list --status closed --limit 5 to review recent completions","pm search <keywords> to find related past work","pm aggregate for a full project status overview"])}async function bh(e,t,n,r){try{let o=new Set(t.packing.included.map(c=>c.id)),i=t.ranking.ranked.map(c=>({id:c.id,rank:c.rank,included:o.has(c.id)})),s=new Set(i.map(c=>c.id));for(let c of Rt(e,"context"))s.has(c)||(i.push({id:c,rank:i.length+1,included:!1}),s.add(c));let a=await Dt({pmRoot:n,author:r,surface:"context",profile:t.packing.profile,rows:i,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"});Tt(e,a)}catch{e.warnings=wn(e.warnings,["context_usage_feedback_write_failed"])}}async function wh(e,t,n){if(e)return{};let o=(await uo({pmRoot:t,settings:n,cwd:process.cwd(),noExtensions:!1})).discovered.map(s=>({name:s.name??s.directory,status:s.status==="ok"?"ok":"degraded"})).sort((s,a)=>s.name.localeCompare(a.name)),i=o.filter(s=>s.status==="degraded").length;return o.length===0?{}:{extension_health:{total:o.length,ok:o.length-i,degraded:i,packages:o.slice(0,20),...o.length>20?{truncated:!0}:{}}}}async function kh(e,t){let n=vo(),r=await yo(e),o=n.instance||_o(t);return Ta(r.semantic_attribution?.[o])}async function Lv(e,t){let n=R(process.cwd(),t.path),r=await rh(e,t),o=await sh(t,r),i=gg(r.limit,o.fullCorpus.length),s={...r,limit:i,tokenBudget:Kr(e.tokenBudget,Math.max(256,i*160))},a=he(void 0,s.settings.author_default),c=await kh(n,a),d=wh(e.noExtensionHealth===!0,n,s.settings),l=ot(o.fullCorpus,s.statusRegistry),u=await dh(o.listedItemMetadata,o.allItems,o.fullCorpus,l,s.statusRegistry,s.sectionsIncluded,s.limit,H(),a,e.after,lh(e),uh(e,o.fullCorpus.length),n,s.tokenBudget,c,A(s.settings,S())),f=await fh(t,s,o.subtreeIds,new Set([...u.highLevel,...u.lowLevel,...u.blockedFallback].map(v=>v.id))),m=await Ia(o.fullCorpus,{pmRoot:n,statusRegistry:s.statusRegistry,now:f.agenda.now}),p=wn(o.listed.warnings,f.agenda.warnings,u.ranking.warnings,[...u.featureStore.warnings],m.warnings),g=Ua(u.activeItems,s.statusRegistry.in_progress_status,s.statusRegistry),_=u.activeItems.length-g,k=await ph({runtime:s,allItems:o.allItems,fullCorpus:o.fullCorpus,blockedIds:l,focusGroups:u,now:f.agenda.now,global:t}),b=mh(o.allItems,s.statusRegistry,l),w={output_default:"toon",now:f.agenda.now,depth:s.depth,sections_included:s.sectionsIncluded,window:{anchor:f.agenda.anchor,start:f.agenda.range.start,end:f.agenda.range.end,past:f.agenda.range.past,from:f.agenda.range.from,to:f.agenda.range.to},filters:{type:e.type??null,tag:e.tag??null,priority:e.priority??null,assignee:e.assignee??null,assignee_filter:e.assigneeFilter??null,sprint:e.sprint??null,release:e.release??null,limit:e.limit??e.maxItems??null,parent:s.parentScope??null,token_budget:s.tokenBudget,runtime_filters:o.listed.filters.runtime_filters??f.agenda.filters.runtime_filters??{}},summary:{returned_focus:{active_items:u.activeItems.length,in_progress:g,open:_,blocked:u.blockedItems.length},blocked_fallback_used:u.blockedFallbackUsed,high_level:u.highLevel.length,low_level:u.lowLevel.length,agenda_events:f.agendaSummary.events,...b},high_level:u.highLevel,low_level:u.lowLevel,blocked_fallback:u.blockedFallback,agenda:{summary:f.agendaSummary,events:f.agendaEvents},...u.pageExtras};return w.workspace_memory=xa(m,Math.min(800,Math.floor(s.tokenBudget*.2))),Object.assign(w,await d),gh(w,k,u.featureStore.warning_details),yh(w,e.noTags===!0),e.explainRanking===!0&&(w.ranking=Yr(u.ranking,u.featureStore,new Set([...u.highLevel,...u.lowLevel,...u.blockedFallback].map(v=>v.id))),w.packing=Vr(u.packing)),hh(w,s.focusFields),p.length>0&&(w.warnings=p),_h(w,u.activeItems,u.blockedItems),await bh(w,u,n,a),w}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="6035e85b-81ed-512e-b291-b0d86af1848b")}catch{}})();var vh=["markdown","toon","json"],Eh=5,Ih=1440*60*1e3;function xh(e){if(!e)return;let t=e.trim().toLowerCase();if(!vh.includes(t))throw new y("Next format must be one of markdown|toon|json",h.USAGE);return t}function Hv(e,t){let n=xh(e.format);if(t.json&&n&&n!=="json")throw new y("Cannot combine --json with --format markdown|toon",h.USAGE);return t.json?"json":n??"toon"}function Ba(e,t,n){let r=Q(e,t);return r===void 0||r<=0?n:r}function yt(e,t,n,r){return{...ht(e.item,t,n),open_blocker_count:e.open_blockers.length,blockers:e.open_blockers.map(o=>({id:o.id,title:o.title,status:o.status,...o.external?{external:!0}:{},...o.blocked_since?{blocked_since:o.blocked_since}:{},...o.external?{resolver:o.resolver??null}:{}})),unblocks:e.unblocks,rank:r}}function Ch(e,t,n,r){let o=e.item,i=[],s=V("in_progress",t);return i.push(C(o.status,t)===s?"in progress \u2014 resume to finish":"open and ready to start"),r&&i.push("completed container \u2014 governance closeout"),i.push(`priority p${o.priority}${o.priority===0?" (highest)":""}`),typeof o.deadline=="string"&&o.deadline.trim().length>0&&i.push(Sh(o.deadline,n)),i.push(_e(o).length>0?"all blockers resolved":"no blockers"),typeof o.parent=="string"&&o.parent.trim().length>0&&i.push(`advances ${o.parent.trim()}`),e.unblocks.length>0&&i.push(`unblocks ${e.unblocks.length} item(s)`),i}function Ga(e,t,n){let r=he(n,t),o=[],i=[];for(let s of e){let a=typeof s.item.assignee=="string"?s.item.assignee.trim():"";a.length>0&&a!==r?i.push({id:s.item.id,assignee:a}):o.push(s)}return{available:o,held:i}}var zv={partitionCallerOwnedReady:Ga,resolveNextCallerAuthor:(e,t)=>Ka(e,t)};function Wv(e,t,n){let r=e.filter(o=>ge(o.item.type,n)==="human");return{agent:t?e:e.filter(o=>ge(o.item.type,n)!=="human"),decisions:t?[]:r}}function Sh(e,t){let n=Date.parse(e);if(!Number.isFinite(n))return`deadline ${e.trim()}`;let r=new Date(n).toISOString().slice(0,10),o=new Date(Date.parse(t)).toISOString().slice(0,10),i=Math.round((Date.parse(r)-Date.parse(o))/Ih);return i<0?`deadline ${r} (overdue ${-i}d)`:i===0?`deadline ${r} (due today)`:`deadline ${r} (in ${i}d)`}function Th(e,t){let n=V("in_progress",t);return e.filter(r=>C(r.status,t)===n).length}function Xr(e,t){return(t.get(e.id.trim().toLowerCase())??[]).length>0}function Rh(e,t){return{type:e.type,tag:e.tag,priority:typeof e.priority=="number"?String(e.priority):e.priority,assignee:e.assignee,assigneeFilter:e.assigneeFilter,sprint:e.sprint,release:e.release,noTruncate:!0,...t}}function kn(e,t,n){return[...e].sort((r,o)=>{let i=Xr(r.item,t),s=Xr(o.item,t);return i!==s?Number(i)-Number(s):ke(r.item,o.item,n)})}function Dh(e){return e.projectedReady.length===0?null:{...e.readyRows[0],reasons:Ch(e.projectedReady[0],e.statusRegistry,e.now,e.completedContainer)}}function Ah(e,t,n){if(e!==null)return;let r=n>0?["No executable recommendation: outcome gates require verification. Inspect gate_needed, or use pm next --include-gates to opt in."]:[];if(t.length>0){let o=t.find(i=>i.blockers.length>0);return[...r,o?`${t.length} item(s) are blocked; unblock the top one by closing ${o.blockers.map(i=>i.id).join(", ")}`:`${t.length} item(s) are blocked; add blocker context or move the top item back to an active status`,"pm next --ready-only after a blocker closes to re-check ready work",'pm create --type Task --title "..." to add new ready work']}return[...r,'pm create --type Task --title "..." to add a new work item',"pm list --status in_progress to review work already underway","pm context --depth deep for the full project snapshot"]}function Lh(e,t,n){let r={};return e>n&&(r.decision_needed_total=e),t>n&&(r.held_by_others_total=t),Object.keys(r).length>0?r:void 0}async function Fh(e){try{let t=new Set(e.packing.included.map(i=>i.id)),n=e.ranking.ranked.map(i=>({id:i.id,rank:i.rank,included:t.has(i.id)})),r=new Set(n.map(i=>i.id));for(let i of Rt(e.result,"next"))r.has(i)||(n.push({id:i,rank:n.length+1,included:!1}),r.add(i));let o=await Dt({pmRoot:e.pmRoot,author:e.author,surface:"next",profile:e.packing.profile,rows:n,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"});Tt(e.result,o)}catch{e.result.warnings=wn(e.result.warnings,["context_usage_feedback_write_failed"])}}async function Mh(e){let t=[...new Set([...e.candidatesWarnings??[],...e.corpusWarnings??[],...e.readyRanking.warnings??[],...e.featureStore.warnings])].sort((n,r)=>n.localeCompare(r));return t.length>0&&(e.result.warnings=t),e.explainRanking&&(e.result.ranking=Yr(e.readyRanking,e.featureStore),e.result.packing=Vr(e.packing)),e.result.suggestions=Ah(e.recommended,e.blockedRows,e.gateCount),await Fh({result:e.result,pmRoot:e.pmRoot,author:e.author,packing:e.packing,ranking:e.readyRanking}),e.result}function Nh(e,t,n){if(!n)return e;let r=zr(t,n);if(!r.found)throw new y(`Next --parent item not found: ${n}`,h.NOT_FOUND);return e.filter(o=>r.ids.has(o.id.trim().toLowerCase()))}async function Oh(e,t,n,r,o,i,s,a){let c=e.filter(_=>!Xr(_.item,t)),d=a||c.length===0?e:c,l=await At({pmRoot:i,author:o,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"}),u=await _n(d.map(_=>_.item),{pmRoot:i,storeKey:"next",statusRegistry:n,now:r,author:o,usageAffinity:l.affinity}),f=await yn("next",u.candidates),m=qr(f,s,new Set,"next"),p=new Map(d.map(_=>[_.item.id,_]));return{projectedReady:f.ranked.map(_=>p.get(_.id)).filter(_=>_!==void 0),ranking:f,completedContainer:c.length===0&&!a,packing:m,featureStore:u}}function Ka(e,t){let n=e.assignee?.trim();return he(e.callerAuthor??(n&&n.length>0?n:void 0),t)}async function qv(e,t){let n=R(process.cwd(),t.path),r=await L(n),o=Ka(e,r.author_default),i=q(r.schema),s=A(r,S()),a=H(),c=Ba(e.limit,"--limit",Eh),d=Kr(e.tokenBudget,Math.max(192,c*128)),l=Ba(e.blockedLimit,"--blocked-limit",c),u=e.readyOnly===!0,f=typeof e.parent=="string"?e.parent.trim():"",m=await dt(void 0,Rh(e,{excludeTerminal:!0}),t),p=await dt(void 0,{excludeTerminal:!1,noTruncate:!0},t),g=Nh(m.items,p.items,f),_=p.items,k=it(g,_,i,s),b=Ke(_),w=_r(k,i,e,s),v=Ga(w.ready,r.author_default,o),I=kn(v.available,b,i),F=[...k.blocked].sort(($,j)=>ke($.item,j.item,i)),{projectedReady:N,ranking:D,completedContainer:le,packing:P,featureStore:G}=await Oh(I,b,i,a,o,n,d,e.includeContainers===!0),X=N.map(($,j)=>yt($,i,b,j+1)),ee=F.map(($,j)=>yt($,i,b,j+1)),se=kn(w.decisions,b,i).map(($,j)=>yt($,i,b,j+1)),z=kn(w.gates,b,i).map(($,j)=>yt($,i,b,j+1)),K=kn(k.containers,b,i).map(($,j)=>yt($,i,b,j+1)),He=Dh({projectedReady:N,readyRows:X,statusRegistry:i,now:a,completedContainer:le}),ve=Lh(se.length,v.held.length,c)??{};z.length>c&&(ve.gate_needed_total=z.length),K.length>c&&(ve.containers_total=K.length);let vn={output_default:"toon",now:a,recommended:He,ready:X.slice(1,c+1),decision_needed:se.slice(0,c),gate_needed:z.slice(0,c),containers:K.slice(0,c),blocked:u?[]:ee.slice(0,l),held_by_others:v.held.slice(0,c),summary:{recommended:He!==null,ready:X.length,blocked:ee.length,in_progress:Th(X,i),candidates:k.active_count,containers:k.container_count,decision_needed:se.length,gate_needed:z.length,held_by_others:v.held.length},filters:{type:e.type??null,tag:e.tag??null,priority:e.priority??null,assignee:e.assignee??null,assignee_filter:e.assigneeFilter??null,sprint:e.sprint??null,release:e.release??null,parent:f.length>0?f:null,limit:c,blocked_limit:l,ready_only:u,include_decisions:e.includeDecisions===!0,include_gates:e.includeGates===!0,include_containers:e.includeContainers===!0,token_budget:d},truncation:Object.keys(ve).length>0?ve:void 0};return Mh({result:vn,recommended:He,blockedRows:ee,gateCount:z.length,candidatesWarnings:m.warnings,corpusWarnings:p.warnings,readyRanking:D,explainRanking:e.explainRanking===!0,pmRoot:n,author:o,packing:P,featureStore:G})}function Vv(e){let t=["# pm next","",...$h(e)];for(let[n,r]of[["Gate verification needed",e.gate_needed],["Containers",e.containers]])r&&r.length>0&&t.push(..._t(n,r.map(o=>`- ${bt(o)}`),""));if(t.push(..._t("Recommended",Ph(e.recommended),"No ready work.")),t.push(..._t("Decision needed",(e.decision_needed??[]).map(n=>`- ${bt(n)}`),"No human-gated decisions.")),t.push(..._t("Ready",e.ready.map(n=>`- ${bt(n)}`),"No ready items.")),e.filters.ready_only||t.push(..._t("Blocked",e.blocked.map(n=>`- ${jh(n)}`),"No blocked items.")),e.suggestions&&e.suggestions.length>0){t.push("## Suggestions");for(let n of e.suggestions)t.push(`- ${n}`)}return t.join(`
|
|
8
|
+
`).trimEnd()}function $h(e){let t=[`- now: ${e.now}`,`- ready: ${e.summary.ready} (in_progress: ${e.summary.in_progress}), blocked: ${e.summary.blocked}, candidates: ${e.summary.candidates}`];return e.filters.parent&&t.push(`- scope: subtree of ${e.filters.parent}`),t.push(""),t}function Ph(e){return e?[`- ${bt(e)}`,` why: ${e.reasons.join("; ")}`]:[]}function _t(e,t,n){return[`## ${e}`,...t.length===0?[n]:t,""]}function jh(e){let t=e.blockers.map(n=>`${n.id}(${n.status??"?"})`).join(", ");return`${bt(e)} blocked_by:${t}`}function bt(e){let t=e.deadline??"-",n=e.parent?` parent:${e.parent}`:"",r=e.unblocks.length>0?` unblocks:${e.unblocks.length}`:"";return`${Number.isInteger(e.rank)?`#${e.rank} `:""}${e.id} p${e.priority} ${e.status} ${e.type} deadline:${t}${n}${r} ${e.title}`}import{createHash as Uh}from"node:crypto";import{setTimeout as Bh}from"node:timers/promises";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="01043e67-99d4-5b68-a1b2-33f35f5cef5f")}catch{}})();var za=1,Wa=/^[A-Za-z0-9_-]+$/,Gh=100,Ha=1e3,Kh=250,s0=Object.freeze({batch_to_row_ratio:.6,fixture_events:200});function Z(e){if(e===void 0)return;let t=typeof e=="string"?[e]:e,n=[...new Set(t.flatMap(r=>r.split(",")).map(r=>r.trim()).filter(Boolean))].sort((r,o)=>r.localeCompare(o));return n.length===0?void 0:n}function qa(e){return Uh("sha256").update(xe({type:Z(e.type),author:Z(e.author),item:Z(e.item),harness:Z(e.harness),agent_instance:Z(e.agentInstance),provenance:Z(e.provenanceFilter)})).digest("hex").slice(0,24)}function Jr(e,t){let n={version:za,fingerprint:t,ts:e.entry.ts,stream_id:e.stream_id,stream_offset:e.stream_offset};return Buffer.from(JSON.stringify(n),"utf8").toString("base64url")}function Va(e,t){if(typeof e!="object"||e===null)return!1;let n=e;return[n.version===za,n.fingerprint===t,typeof n.ts=="string",typeof n.stream_id=="string",typeof n.stream_offset=="number",Number.isSafeInteger(n.stream_offset),Number(n.stream_offset)>=0].every(Boolean)}function Ya(e,t){let n=e.trim();if(n.length===0||n.length>4096||!Wa.test(n))throw new y("Invalid mutation event cursor.",h.USAGE,{code:"invalid_event_cursor"});let r;try{r=JSON.parse(Buffer.from(n,"base64url").toString("utf8"))}catch{throw new y("Invalid mutation event cursor.",h.USAGE,{code:"invalid_event_cursor"})}if(!Va(r,t))throw new y("Mutation event cursor does not match this query.",h.USAGE,{code:"event_cursor_query_mismatch"});return r}function Xa(e){let t=e??Gh;if(!Number.isSafeInteger(t)||t<0||t>Ha)throw new y(`Mutation event limit must be an integer from 0 to ${Ha}.`,h.USAGE,{code:"invalid_event_limit"});return t}function Ja(e){return e instanceof Error&&e.name==="AbortError"}function Qa(e,t){let n=e?.trim();if(!n)return{};if(Wa.test(n))return{cursor:Ya(n,t)};let r=Date.parse(n);if(!Number.isFinite(r))throw new y("Mutation event --since must be an event cursor or ISO timestamp.",h.USAGE,{code:"invalid_event_since"});return{sinceTimestamp:new Date(r).toISOString()}}async function Hh(e,t){let n=await Rn(e,t);if(n===null){if(!await Eo(e))return{...await Io(e,t),source:"authoritative_history"};n=await Rn(e,t)}if(n===null)throw new y("Mutation event index could not be opened after rebuild.",h.GENERIC_FAILURE,{code:"event_index_unavailable"});return{...n,source:"derived_index"}}function zh(e){let t=e??"batch";if(t!=="batch"&&t!=="row")throw new y("Mutation event cursor mode must be batch or row.",h.USAGE,{code:"invalid_event_cursor_mode"});return t}async function Wh(e={}){let t=R(e.cwd??process.cwd(),e.pmRoot);await O(t);let n=Xa(e.limit),r=zh(e.cursorMode);if(e.full===!0&&e.provenance===!0)throw new y("Mutation event projections are mutually exclusive. Use --provenance or --full.",h.USAGE);let o=await L(t),i=o.agent_identity.identity_vocabulary,s=Bt(o.agent_identity.harness_signals),a=Bn({provenance:e.provenanceFilter},s),c=Z(e.harness),d=qa(e),{cursor:l,sinceTimestamp:u}=Qa(e.since,d),f={...l?{after_ts:l.ts,after_stream_id:l.stream_id,after_stream_offset:l.stream_offset}:u?{since_ts:u}:{},ops:Z(e.type),authors:Z(e.author),harnesses:c,harness_alias_authors:c?Object.entries(i.aliases).filter(([,g])=>c.includes(g)).map(([g])=>g):void 0,agent_instances:Z(e.agentInstance),provenance:[...a].map(([g,_])=>({dimension:g,values:[..._]})),stream_ids:Z(e.item),limit:n},m=await Hh(t,f),p=m.events.map(g=>({...r==="row"?{cursor:Jr(g,d)}:{},item_id:g.stream_id,version:g.stream_offset+1,ts:g.entry.ts,author:g.entry.author,type:g.entry.op,...g.entry.message===void 0?{}:{message:g.entry.message},patch_count:g.entry.patch.length,...e.full===!0?{entry:g.entry}:{},...e.provenance===!0?{provenance:Gt(g.entry,i,{itemId:g.stream_id,version:g.stream_offset+1})}:{}}));return{events:p,count:p.length,has_more:m.has_more,cursor_mode:r,...m.events.length===0?{}:{next_cursor:Jr(m.events[m.events.length-1],d)},source:m.source,...e.provenanceSummary===!0?{provenance_summary:Kt(m.events.map(g=>g.entry),i,s)}:{}}}async function*qh(e={}){let t=e.intervalMs??Kh;if(!Number.isSafeInteger(t)||t<10)throw new y("Mutation event follow interval must be an integer of at least 10ms.",h.USAGE,{code:"invalid_event_follow_interval"});let n=e.since;for(;e.signal?.aborted!==!0;){let r=await Wh({...e,cursorMode:e.cursorMode??"batch",since:n});if(yield r.next_cursor===void 0&&n!==void 0?{...r,next_cursor:n}:r,r.events.length>0){n=r.next_cursor;continue}try{await Bh(t,void 0,{signal:e.signal})}catch(i){if(Ja(i))return;throw i}}}async function*a0(e={}){for await(let t of qh({...e,cursorMode:"row"}))for(let n of t.events)yield n}var c0={decodeMutationEventCursor:Ya,encodeMutationEventCursor:Jr,eventQueryFingerprint:qa,isAbortError:Ja,isMutationEventCursorEnvelope:Va,parseMutationEventLimit:Xa,resolveMutationEventStart:Qa};(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]="412fc2d2-daee-5d87-82ab-5411a1503087")}catch{}})();function l0(e,t){let n=t??{};return e.filter(r=>n[r.id]!==r.updated_at).map(r=>r.id).sort((r,o)=>r.localeCompare(o))}export{We as a,Xo as b,Jo as c,qe as d,Qo as e,Zo as f,oc as g,ly as h,ei as i,jn as j,Fy as k,My as l,Xy as m,Jy as n,Pt as o,$t as p,fi as q,n_ as r,Q as s,jt as t,pi as u,Ut as v,Bt as w,Bn as x,Gt as y,f_ as z,Gn as A,Kt as B,E_ as C,_i as D,Yc as E,S_ as F,Xc as G,T_ as H,R_ as I,D_ as J,A_ as K,ed as L,B as M,vi as N,zt as O,U_ as P,zn as Q,B_ as R,Ze as S,ld as T,fd as U,qn as V,pd as W,Ne as X,qt as Y,Vn as Z,Vt as _,Q_ as $,Si as aa,wb as ba,Mi as ca,Ni as da,Oi as ea,$i as fa,Pi as ga,tn as ha,Ui as ia,$e as ja,Bi as ka,zi as la,on as ma,Wi as na,Vl as oa,Zi as pa,sn as qa,sr as ra,an as sa,es as ta,ns as ua,ar as va,rt as wa,os as xa,dr as ya,lr as za,ur as Aa,is as Ba,fr as Ca,as as Da,cs as Ea,ls as Fa,bu as Ga,yw as Ha,l0 as Ia,ge as Ja,ju as Ka,_e as La,ln as Ma,_s as Na,un as Oa,ot as Pa,_r as Qa,it as Ra,br as Sa,st as Ta,ws as Ua,ks as Va,Ss as Wa,xr as Xa,Rs as Ya,$w as Za,Pw as _a,Ls as $a,Fs as ab,Uw as bb,wr as cb,kr as db,Gu as eb,vr as fb,Aw as gb,Lw as hb,Fw as ib,Mw as jb,pf as kb,Gs as lb,$s as mb,Ps as nb,_f as ob,bf as pb,wf as qb,dt as rb,vk as sb,Ek as tb,Ik as ub,da as vb,la as wb,lt as xb,Nr as yb,hn as zb,um as Ab,pa as Bb,hm as Cb,yn as Db,ym as Eb,_m as Fb,vm as Gb,Em as Hb,Lk as Ib,Im as Jb,ma as Kb,Or as Lb,$r as Mb,Mm as Nb,Um as Ob,Kk as Pb,Pr as Qb,jr as Rb,_n as Sb,ka as Tb,zk as Ub,qm as Vb,Jm as Wb,Ia as Xb,og as Yb,xa as Zb,ig as _b,tv as $b,Sa as ac,av as bc,cv as cc,dv as dc,lv as ec,Ta as fc,sg as gc,pg as hc,pt as ic,Dv as jc,Kr as kc,hg as lc,yg as mc,zr as nc,ke as oc,qr as pc,Vr as qc,Yr as rc,Ke as sc,ht as tc,wn as uc,Av as vc,yh as wc,Lv as xc,vh as yc,Hv as zc,zv as Ac,Wv as Bc,qv as Cc,Vv as Dc,s0 as Ec,Wh as Fc,qh as Gc,a0 as Hc,c0 as Ic};
|
|
9
|
+
//# sourceMappingURL=chunk-AZDFJGH6.js.map
|