@unbrained/pm-cli 2026.9.29 → 2026.9.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +2 -2
- package/CHANGELOG.md +9 -0
- package/dist/cli/main.js +1 -1
- package/dist/cli-bundle/bundle-manifest.json +156 -156
- package/dist/cli-bundle/chunks/{chunk-4DOL43PF.js → chunk-6XTJLOKW.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-S5A2UIRV.js → chunk-6YEET7XI.js} +22 -22
- package/dist/cli-bundle/chunks/{chunk-U3QJGJYN.js → chunk-A6NDNRCK.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-5KEPG36D.js → chunk-BNAT4EYR.js} +9 -9
- package/dist/cli-bundle/chunks/{chunk-OTLIM22J.js → chunk-BTCE36JS.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-SJI55O65.js → chunk-BX4LEJX4.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-GP6QTYSD.js → chunk-EGAIIWI3.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-FYTXVVZG.js +2 -0
- package/dist/cli-bundle/chunks/{chunk-SC6JHXFT.js → chunk-O23CQ5T4.js} +27 -27
- package/dist/cli-bundle/chunks/{chunk-SEJ53XDN.js → chunk-UIAH7UFK.js} +65 -65
- package/dist/cli-bundle/chunks/{chunk-2AQKVJMW.js → chunk-USTAFHIM.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-PJSQAWWQ.js → chunk-XRN3JYNN.js} +73 -73
- package/dist/cli-bundle/chunks/{chunk-P75SO5HO.js → chunk-YM342ELM.js} +2 -2
- package/dist/cli-bundle/chunks/{register-list-query-R3ELWWPY.js → register-list-query-SYNBVMNG.js} +2 -2
- package/dist/cli-bundle/chunks/{register-mutation-WHXJXIHJ.js → register-mutation-4GSUK23D.js} +2 -2
- package/dist/cli-bundle/chunks/{register-operations-7ASWBYQG.js → register-operations-7FCJUC4Z.js} +2 -2
- package/dist/cli-bundle/chunks/{register-setup-FDRTUG54.js → register-setup-YTWW2KL5.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-MRH4A542.js → chunk-3CAZ7Z4R.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-5MC57KRC.js → chunk-4AORVUT4.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-FBIRNSYP.js → chunk-AKB3JN57.js} +33 -33
- package/dist/cli-bundle/focused-chunks/{chunk-T4H6Q44B.js → chunk-EFD4ATS7.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-NXQZMKW5.js → chunk-EVMH4SKN.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-6OXJVE74.js → chunk-IDB6E3ZV.js} +27 -27
- package/dist/cli-bundle/focused-chunks/{chunk-2O3QFI3G.js → chunk-IQBFYQF2.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-NY6FLQTN.js → chunk-KZULQIAG.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-KLKKCHWM.js → chunk-MOUCTR72.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-7URX7FMY.js → chunk-OMBDUJWZ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-AZE7KUHG.js → chunk-RIJQQOEZ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-IFBA3ZAT.js → chunk-T4PZJQG4.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-DZVOCJFY.js → chunk-UPOMLSW7.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-AVP5C674.js → chunk-XB5Q2P7Z.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-K3AIMRIK.js → chunk-XUCXRZZZ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-4A4DO5ZT.js → chunk-ZJ3CLTV4.js} +2 -2
- package/dist/cli-bundle/main.js +2 -2
- package/dist/cli-bundle/sdk-authoring.js +1 -1
- package/dist/cli-bundle/sdk-contracts.js +1 -1
- package/dist/cli-bundle/sdk-core.js +22 -22
- package/dist/cli-bundle/sdk-governance.js +1 -1
- package/dist/cli-bundle/sdk-graph.js +1 -1
- package/dist/cli-bundle/sdk-merge.js +32 -32
- package/dist/cli-bundle/sdk-query.js +1 -1
- package/dist/cli-bundle/sdk-runtime.js +1 -1
- package/dist/cli-bundle/sdk-testing.js +1 -1
- package/dist/cli-bundle/sdk.js +2 -2
- package/dist/core/extensions/extension-types.d.ts +13 -0
- package/dist/core/extensions/extension-types.js +1 -1
- package/dist/core/history/workspace-history.d.ts +17 -0
- package/dist/core/history/workspace-history.js +1 -1
- package/dist/sdk/extension-command-context.d.ts +1 -7
- package/dist/sdk/extension-command-context.js +1 -1
- package/dist/sdk/generated/generated-error-code-catalog-part-2.js +1 -1
- package/dist/sdk/lifecycle/update.d.ts +2 -0
- package/dist/sdk/lifecycle/update.js +1 -1
- package/dist/sdk/merge/install.js +1 -1
- package/dist/sdk/public-surface.json +1 -1
- package/dist/sdk/runtime.js +1 -1
- package/dist/sdk/structured-mutations.js +1 -1
- package/dist/sdk/testing.js +1 -1
- package/docs/MERGE_SAFETY.md +11 -6
- package/docs/README.md +1 -0
- package/docs/RELEASE_RELIABILITY.md +26 -4
- package/docs/SDK_AUDITED_MUTATIONS.md +52 -0
- package/docs/generated/REFUSAL_CLOSURE_CENSUS.md +4 -3
- package/marketplace.json +2 -2
- package/package.json +1 -1
- package/packages/pm-beads/package.json +1 -1
- package/packages/pm-calendar/package.json +1 -1
- package/packages/pm-command-kit/package.json +1 -1
- package/packages/pm-digital-twin/package.json +1 -1
- package/packages/pm-governance-audit/package.json +1 -1
- package/packages/pm-guide-shell/package.json +1 -1
- package/packages/pm-kanban/package.json +1 -1
- package/packages/pm-lifecycle-hooks/package.json +1 -1
- package/packages/pm-linked-test-adapters/package.json +1 -1
- package/packages/pm-search-advanced/package.json +1 -1
- package/packages/pm-templates/package.json +1 -1
- package/packages/pm-todos/package.json +1 -1
- package/packages/pm-vcs/package.json +1 -1
- package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
- package/plugins/pm-claude/package.json +2 -2
- package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
- package/plugins/pm-codex/package.json +2 -2
- package/plugins/pm-codex/plugin.json +1 -1
- package/dist/cli-bundle/chunks/chunk-D32HVIB2.js +0 -2
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import{b as sn,g as St,i as Tt,j as Ct,l as Ri,m as Ai,n as ln,o as Di,p as Ni,q as Li}from"./chunk-4A4DO5ZT.js";import{h as mn}from"./chunk-HFAW3FJQ.js";import{$ as b,$a as It,$d as Vi,A as pi,F as rn,G as on,H as gr,Ha as wi,He as pe,Ie as ie,J as hi,Jc as ue,Kc as Er,La as Ei,Lc as un,Ma as ki,Mc as fe,Nc as kr,Oa as Ii,Ob as xi,Oc as be,P as ge,Pa as Si,Pc as Ir,Sa as an,Sc as Ot,Sd as Ui,Tb as Pi,Td as we,Ua as Ti,Ud as me,V as Le,Vd as Bi,W as yi,Wd as Ze,Xa as cn,Xb as Mi,Xd as _e,Ya as Ci,Yb as ji,Yc as Me,Z as k,_ as Qe,_c as Fi,_d as Wi,aa as v,ab as br,ad as Sr,ae as V,bb as wr,cb as le,cd as $i,dd as Hi,eb as Oi,hd as zi,i as Zt,ka as de,pa as gi,q as en,qb as L,r as ui,ra as vi,rb as oe,s as fi,sa as Pe,sb as dn,t as mi,ta as vr,tb as T,u as _i,ua as te,ud as fn,va as ve,wa as X,xa as bi,xe as Tr,y as tn,ye as Cr,z as nn}from"./chunk-MRH4A542.js";import{AsyncLocalStorage as $c}from"node:async_hooks";(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]="27a9b88e-ee47-55c8-b511-07ce9754346c")}catch{}})();var Or=new $c,qi=/^[A-Za-z0-9](?:[A-Za-z0-9._:-]{0,127})$/u;function _n(e,t){let n=typeof e=="string"?e.trim():"";return n.length>0?n.slice(0,t):void 0}function je(e,t){if(e===void 0)return;let n=typeof e=="object"&&e!==null?e:{},r=_n(n.id,128),o=_n(n.parent_id,128);if(r===void 0||!qi.test(r)||o!==void 0&&!qi.test(o)){if(t)throw new Error("Agent episode ids must be 1-128 letters, digits, dots, underscores, colons, or hyphens.");return}let i=_n(n.label,256);return{id:r,...i===void 0?{}:{label:i},...o===void 0?{}:{parent_id:o}}}function et(e){let t={};for(let[n,r]of Object.entries(e??{}).slice(0,32)){let o=n.trim().toLowerCase().slice(0,64),i=_n(r,256);/^[a-z][a-z0-9_-]{0,63}$/u.test(o)&&i!==void 0&&(t[o]=i)}return t}function Hc(e,t,n){let r=Or.getStore(),o=et({role:t.PM_AGENT_SESSION_ROLE,topic:t.PM_AGENT_SESSION_TOPIC}),i=je(t.PM_AGENT_EPISODE_ID===void 0?void 0:{id:t.PM_AGENT_EPISODE_ID,label:t.PM_AGENT_EPISODE_LABEL,parent_id:t.PM_AGENT_EPISODE_PARENT_ID},!1),s={...et(r?.provenance),...o,...et(e?.provenance)},a=je(e?.episode,!1)??je(n,!1)??i??je(r?.episode,!1);return Object.keys(s).length===0&&a===void 0?void 0:{...Object.keys(s).length===0?{}:{provenance:s},...a===void 0?{}:{episode:a}}}function xr(e,t){return Hc(e.session_context,t,e.client_info?.episode)??{}}function $p(e,t){let n=Or.getStore(),r=je(e.episode,!0),o=je(n?.episode,!1),i=r!==void 0&&r.parent_id===void 0&&o!==void 0?{...r,parent_id:o.id}:r,s={...et(n?.provenance),...et(e.provenance)};return Or.run({...Object.keys(s).length===0?{}:{provenance:s},...i===void 0?o===void 0?{}:{episode:o}:{episode:i}},t)}function Hp(e){let t=et(e.provenance),n=je(e.episode,!0);return{...n===void 0?{}:{PM_AGENT_EPISODE_ID:n.id,...n.label===void 0?{}:{PM_AGENT_EPISODE_LABEL:n.label},...n.parent_id===void 0?{}:{PM_AGENT_EPISODE_PARENT_ID:n.parent_id}},...t.role===void 0?{}:{PM_AGENT_SESSION_ROLE:t.role},...t.topic===void 0?{}:{PM_AGENT_SESSION_TOPIC:t.topic}}}import{AsyncLocalStorage as Ur}from"node:async_hooks";import{createHash as Vc}from"node:crypto";import q from"node:fs";import ts from"node:os";import He from"node:path";import{createHash as Gi}from"node:crypto";import{existsSync as Rr,promises as Ki,readFileSync as zc}from"node:fs";import se 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]="8192f2f3-b5a0-510e-a7d4-963041cce389")}catch{}})();var Uc="session.json";function Ar(e,t){return typeof e=="string"&&e.length>0&&e.length<=t}function Xi(e){if(e===null||typeof e!="object"||Array.isArray(e))return;let t=e,n=["implementer","planner","release-operator"].includes(String(t.role)),r=["high","medium"].includes(String(t.confidence)),o=Ar(t.topic,256),i=Array.isArray(t.evidence)&&t.evidence.length<=32&&t.evidence.every(c=>typeof c=="string"&&c.length<=128),s=Array.isArray(t.active_item_ids)&&t.active_item_ids.length<=64&&t.active_item_ids.every(c=>Ar(c,128)),a=t.focused_item_id===void 0||Ar(t.focused_item_id,128);if([n,r,o,i,s,a,t.rule_version==="v2"].every(Boolean))return t}function Bc(e){if(e===null||typeof e!="object"||Array.isArray(e))return;let t=Object.entries(e).slice(0,128).flatMap(([n,r])=>{let o=Xi(r);return o&&n.length<=128?[[n,o]]:[]});return t.length>0?Object.fromEntries(t):void 0}function Dr(e){return se.join(Oi(e),Uc)}async function Yi(e){try{let t=await Ki.readFile(Dr(e),"utf8"),n=JSON.parse(t);if(n===null||typeof n!="object"||Array.isArray(n))return{};let r=n,o=r.focused_item,i=Bc(r.semantic_attribution);return typeof o=="string"&&o.trim().length>0?{focused_item:o,...i?{semantic_attribution:i}:{}}:i?{semantic_attribution:i}:{}}catch{return{}}}async function Nr(e,t){let n=await V(e,"session-state",k.locks.ttl_seconds,"session-state",!1,!0,k.locks.wait_ms);try{let r=await Yi(e);t(r);let o=Dr(e);await Ki.mkdir(se.dirname(o),{recursive:!0}),await X(o,JSON.stringify(r))}finally{await n()}}function Lr(e){return/#([a-f0-9]{24})$/u.exec(e.trim())?.[1]??`author-${Gi("sha256").update(e).digest("hex").slice(0,24)}`}function Pr(e){return[...new Set(e.map(t=>t.trim()).filter(Boolean))].slice(0,32).map(t=>t.slice(0,128))}function Mr(e){let t=[...new Set(e)].sort((o,i)=>o.localeCompare(i));if(t.length===1)return t[0];let n=`workset:${t.join("+")}`;return n.length<=256?n:`workset:${t.join("+").slice(0,230)}+${Gi("sha256").update(t.join("\0")).digest("hex").slice(0,12)}`}async function jr(e,t,n){await Nr(e,r=>{let o={...r.semantic_attribution},i=n(o[t]);i===void 0?delete o[t]:o[t]=i,Object.keys(o).length===0?delete r.semantic_attribution:r.semantic_attribution=o})}async function Xp(e){let t=Lr(e.principal);await jr(e.pmRoot,t,n=>{let r=[...new Set([...n?.active_item_ids??[],e.itemId])].slice(-64).sort((i,s)=>i.localeCompare(s)),o=n?.focused_item_id;return{role:"implementer",topic:o??Mr(r),confidence:o?"high":"medium",rule_version:"v2",evidence:Pr([...r.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],...(e.lineageIds??[]).map(i=>`lineage:${i}`)]),active_item_ids:r,...o?{focused_item_id:o}:{}}})}async function Yp(e){let t=Lr(e.principal);await jr(e.pmRoot,t,n=>{if(!n)return;let r=n.active_item_ids.filter(i=>i!==e.itemId);if(r.length===0&&!n.focused_item_id)return;let o=n.focused_item_id;return{...n,role:"release-operator",topic:o??Mr(r),confidence:o?"high":"medium",evidence:Pr([...r.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],`release:${e.itemId}`]),active_item_ids:r}})}async function Jp(e){let t=Lr(e.principal);await jr(e.pmRoot,t,n=>{let r=n?.active_item_ids??[];if(!e.itemId&&r.length===0)return;let o=e.itemId;return{role:o?"planner":n.role,topic:o??Mr(r),confidence:o?"high":"medium",rule_version:"v2",evidence:Pr([...r.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],...(e.lineageIds??[]).map(i=>`lineage:${i}`)]),active_item_ids:r,...o?{focused_item_id:o}:{}}})}function Wc(e,t){let n=t.PM_PATH?.trim();if(n){let o=se.resolve(e,n);if(Rr(se.join(o,"settings.json")))return o;let i=se.join(o,".agents","pm");if(Rr(se.join(i,"settings.json")))return i}let r=se.resolve(e);for(let o=0;o<32;o+=1){let i=se.join(r,".agents","pm");if(Rr(se.join(i,"settings.json")))return i;let s=se.dirname(r);if(s===r)break;r=s}}function Ji(e){if(!e.key)return;let t=Wc(e.cwd,e.env);if(t)try{let n=JSON.parse(zc(Dr(t),"utf8"));return Xi(n.semantic_attribution?.[e.key])}catch{return}}async function Qp(e){return(await Yi(e)).focused_item}async function Zp(e,t){await Nr(e,n=>{n.focused_item=t})}async function eh(e){await Nr(e,t=>{delete t.focused_item})}(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]="c39d3d14-b0b5-5309-b89a-9da08e1a939a")}catch{}})();var Br=["model","effort","role","topic","version"],yn=new Ur,ns=new Ur,gn=new Ur,Wr=[{harness:"claude-code",environment_keys:["CLAUDE_CODE","CLAUDECODE"],model_environment_keys:["ANTHROPIC_MODEL","CLAUDE_MODEL"],session_environment_keys:["CLAUDE_CODE_SESSION_ID"],provenance_environment_keys:{effort:["CLAUDE_EFFORT"]},provenance_resolvers:{model:"claude_session_file",version:"claude_session_file"},provenance_unavailable_dimensions:["role","topic"],argv_markers:["claude","claude-code"],client_names:["claude","claude-code","claude code"]},{harness:"codex",environment_keys:["CODEX_HOME","CODEX_CI","CODEX_THREAD_ID"],model_environment_keys:["CODEX_MODEL"],session_environment_keys:["CODEX_THREAD_ID"],provenance_environment_keys:{effort:["CODEX_REASONING_EFFORT","CODEX_EFFORT"],role:["CODEX_SESSION_ROLE"]},provenance_resolvers:{model:"codex_session_file",effort:"codex_session_file",version:"ai_agent_version"},provenance_unavailable_dimensions:["topic"],argv_markers:["codex"],client_names:["codex"]},{harness:"pi",environment_keys:["PI_AGENT","PI_CODING_AGENT"],model_environment_keys:["PI_MODEL"],session_environment_keys:["PI_SESSION_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["pi"],client_names:["pi"]},{harness:"opencode",environment_keys:["OPENCODE","OPENCODE_SESSION_ID"],model_environment_keys:["OPENCODE_MODEL"],session_environment_keys:["OPENCODE_SESSION_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["opencode"],client_names:["opencode"]},{harness:"cursor",environment_keys:["CURSOR_AGENT","CURSOR_TRACE_ID"],model_environment_keys:["CURSOR_MODEL"],session_environment_keys:["CURSOR_TRACE_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["cursor"],client_names:["cursor"]},{harness:"aider",environment_keys:["AIDER","AIDER_MODEL"],model_environment_keys:["AIDER_MODEL"],session_environment_keys:["AIDER_SESSION_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["aider"],client_names:["aider"]},{harness:"gemini-cli",environment_keys:["GEMINI_CLI","GEMINI_CLI_HOME"],model_environment_keys:["GEMINI_MODEL"],session_environment_keys:["GEMINI_CLI_SESSION_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["gemini","gemini-cli"],client_names:["gemini","gemini-cli","gemini cli"]},{harness:"ci",environment_keys:["CI","GITHUB_ACTIONS","BUILDKITE","GITLAB_CI"],provenance_unavailable_dimensions:["model","effort","role","topic"],argv_markers:[],client_names:[]}],rs=Object.freeze({max_bytes:1048576,max_lines:4096,network_access:!1,subprocess_access:!1}),qc=Object.freeze({...rs,max_bytes:4194304}),Fr=/^[a-z0-9]+(?:-[a-z0-9]+)*$/u;function Gc(e){let t=ke(e).provenance_unavailable_dimensions,n=new Set(["model","version",...Object.keys(e.provenance_environment_keys??{}),...Object.keys(e.provenance_resolvers??{})]);return Object.freeze({contract_version:1,adapter_version:"v1",priority:0,harness:e.harness,descriptor:e,supported_dimensions:Object.freeze([...n].sort()),native_sources:Object.freeze(["environment","argv","mcp_client",...Object.values(e.provenance_resolvers??{}).some(r=>r?.endsWith("session_file"))?["session_file"]:[]]),probe_policy:e.harness==="codex"?qc:rs,normalization:Object.freeze({model_family:"v1",effort:"v1",preserve_raw:!0}),confidence:"high",waivers:Object.freeze(Object.fromEntries(t.map(r=>[r,"Harness does not expose this dimension."])))})}var os=Object.freeze(Wr.filter(e=>e.harness!=="ci").map(Gc).sort((e,t)=>e.harness.localeCompare(t.harness))),$e=new Map,tt=new Map;function P(e){let t=typeof e=="string"?e.trim():void 0;return t&&t.length>0?t:void 0}function Ee(e){return[...new Set((e??[]).slice(0,64).map(t=>t.trim()).filter(t=>t.length>0).map(t=>t.slice(0,128)))]}function ke(e){let t=e.harness.trim().toLowerCase();if(!Fr.test(t))throw new Error(`Invalid harness signal descriptor namespace: ${e.harness}`);return{harness:t,environment_keys:Ee(e.environment_keys),model_environment_keys:Ee(e.model_environment_keys),session_environment_keys:Ee(e.session_environment_keys),provenance_environment_keys:Object.fromEntries(Object.entries(e.provenance_environment_keys??{}).slice(0,32).map(([n,r])=>[n.trim().toLowerCase().slice(0,64),Ee(r)]).filter(([n])=>Fr.test(n))),provenance_resolvers:Object.fromEntries(Object.entries(e.provenance_resolvers??{}).slice(0,32).map(([n,r])=>[n.trim().toLowerCase().slice(0,64),r]).filter(n=>typeof n[0]=="string"&&Fr.test(n[0])&&(n[1]==="ai_agent_version"||n[1]==="claude_session_file"||n[1]==="codex_session_file"))),provenance_unavailable_dimensions:Ee(e.provenance_unavailable_dimensions).map(n=>n.toLowerCase()),argv_markers:Ee(e.argv_markers).map(n=>n.toLowerCase()),client_names:Ee(e.client_names).map(n=>n.toLowerCase())}}var is=Wr.map(ke);function Kc(e,t){return JSON.stringify(e)===JSON.stringify(t)}function hn(e,t){return e.toLowerCase().slice(0,512).split(/[/\\\s:=]+/u).filter(r=>r.length>0).includes(t)||e.trim().toLowerCase()===t}function Vr(e=[]){let t=new Map(Wr.filter(o=>o.harness!=="ci").map(o=>[o.harness,ke(o)]));for(let{adapter:o}of $e.values())t.set(o.harness,ke(o.descriptor));let n=[...t.values(),...is.filter(o=>o.harness==="ci"),...[...tt.values()].map(o=>o.descriptor),...gn.getStore()?.descriptors??[],...e.map(ke)],r=new Set;for(let o of n){if(r.has(o.harness))throw new Error(`Harness signal descriptor collision for "${o.harness}"`);r.add(o.harness)}return n}function qr(e,t){for(let n of t??[]){let r=P(e[n]);if(r)return r.slice(0,256)}}function Xc(e,t){if(t==="role"){let n=e.slice(0,8).map(r=>r.trim().toLowerCase()).find(r=>["claim","create","update","close","release","review"].includes(r));if(n==="review")return"reviewer";if(n)return"implementer"}}function ss(e,t){let n=t==="model"?["--model","--agent-model"]:[`--agent-${t}`],r=e.slice(0,8);for(let o=0;o<r.length;o+=1){let i=r[o].slice(0,512);if(n.includes(i))return P(r[o+1])?.slice(0,256);let s=n.find(a=>i.startsWith(`${a}=`));if(s)return P(i.slice(s.length+1))?.slice(0,256)}}var Yc=new Set(["implementation","implementer","investigator","orchestrator","planner","release-operator","reviewer"]);function Fe(e,t){if(e!=="role"||t===void 0)return t;let n=t.trim().toLowerCase().replaceAll(/[_\s]+/gu,"-");return Yc.has(n)?n:void 0}function $r(e,t){return P(e?.[t])?.slice(0,256)}var Jc=1048576,zr=4194304,pn=new Map,Qi=Object.freeze({}),Hr=new Map,Zi=Object.freeze({});function es(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:void 0}function Qc(e){let t;try{t=JSON.parse(e)}catch{return Zi}let n=es(t);if(!n)return Zi;let r=[{value:n,depth:0}],o=0,i,s;for(;r.length>0&&o<64;){let a=r.shift();if(o+=1,i??=P(a.value.model)?.slice(0,256),s??=P(a.value.version)?.slice(0,256),i&&s)break;if(!(a.depth>=4))for(let c of Object.values(a.value)){let d=es(c);d&&r.push({value:d,depth:a.depth+1})}}return Object.freeze({model:i,version:s})}function as(e){try{return q.lstatSync(e).isFile()?"available":"missing"}catch(t){return vr(t)?"missing":"failed"}}function Zc(e,t){let n;try{n=q.readdirSync(e,{withFileTypes:!0}).filter(o=>o.isDirectory()).sort((o,i)=>o.name.localeCompare(i.name)).slice(0,512).map(o=>{let i=He.join(e,o.name,`${t}.jsonl`);return{candidate:i,status:as(i)}})}catch(o){return{status:vr(o)?"missing":"failed"}}let r=n.filter(({status:o})=>o==="available").map(({candidate:o})=>o);return r.length===0?{status:n.some(({status:o})=>o==="failed")?"failed":"missing"}:r.length>1?{status:"ambiguous"}:{status:"available",path:r[0]}}function cs(e,t){let n=P(t.CLAUDE_CODE_SESSION_ID);if(!n||!/^[A-Za-z0-9_-]{1,128}$/u.test(n))return{status:"unavailable"};let o=He.resolve(e.cwd??process.cwd()).replaceAll(/[^A-Za-z0-9-]/gu,"-"),i=He.join(e.home_dir??ts.homedir(),".claude","projects"),s=He.join(i,o,`${n}.jsonl`),a=P(e.session_file),c=a&&He.basename(a)===`${n}.jsonl`?a:void 0;for(let d of[c,s]){if(!d)continue;let l=as(d);if(l==="available")return{status:l,path:d};if(l==="failed")return{status:l}}return Zc(i,n)}function ed(e,t,n){let r=cs(t,n);if(r.status==="available")try{let o=q.openSync(r.path,q.constants.O_RDONLY|q.constants.O_NOFOLLOW);try{let i=q.fstatSync(o),s=`${r.path}\0${i.size}\0${i.mtimeMs}`,a=Hr.get(s);if(a)return a[e];let c=Math.min(i.size,Jc),d=Math.min(c,Math.ceil(c/2)),l=Math.min(c-d,i.size-d),f=Buffer.alloc(d);q.readSync(o,f,0,d,0);let m=Buffer.alloc(l);l>0&&q.readSync(o,m,0,l,i.size-l);let p={},_=i.size<=c?Buffer.concat([f,m]).toString("utf8").split(`
|
|
1
|
+
import{b as sn,g as Tt,i as Ct,j as Ot,l as Ai,m as Di,n as ln,o as Ni,p as Li,q as Pi}from"./chunk-ZJ3CLTV4.js";import{h as mn}from"./chunk-HFAW3FJQ.js";import{$ as b,$a as St,$d as qi,A as hi,F as rn,G as on,H as wr,Ha as Ei,He as pe,Ie as ie,J as yi,Jc as ue,Kc as Sr,La as ki,Lc as un,Ma as Ii,Mc as fe,Nc as Tr,Oa as Si,Ob as Ri,Oc as Ee,P as be,Pa as Ti,Pc as Cr,Sa as an,Sc as xt,Sd as Bi,Tb as Mi,Td as ke,Ua as Ci,Ud as me,V as Le,Vd as Wi,W as gi,Wd as Ze,Xa as cn,Xb as ji,Xd as _e,Ya as Oi,Yb as Fi,Yc as je,Z as k,_ as Pe,_c as $i,_d as Vi,aa as v,ab as kr,ad as Or,ae as V,bb as Ir,cb as le,cd as Hi,dd as zi,eb as xi,hd as Ui,i as Zt,ka as de,pa as vi,q as en,qb as N,r as fi,ra as bi,rb as oe,s as mi,sa as Me,sb as dn,t as _i,ta as Er,tb as T,u as pi,ua as te,ud as fn,va as we,wa as X,xa as wi,xe as xr,y as tn,ye as Rr,z as nn}from"./chunk-3CAZ7Z4R.js";import{AsyncLocalStorage as Hc}from"node:async_hooks";(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]="27a9b88e-ee47-55c8-b511-07ce9754346c")}catch{}})();var Ar=new Hc,Gi=/^[A-Za-z0-9](?:[A-Za-z0-9._:-]{0,127})$/u;function _n(e,t){let n=typeof e=="string"?e.trim():"";return n.length>0?n.slice(0,t):void 0}function Fe(e,t){if(e===void 0)return;let n=typeof e=="object"&&e!==null?e:{},r=_n(n.id,128),o=_n(n.parent_id,128);if(r===void 0||!Gi.test(r)||o!==void 0&&!Gi.test(o)){if(t)throw new Error("Agent episode ids must be 1-128 letters, digits, dots, underscores, colons, or hyphens.");return}let i=_n(n.label,256);return{id:r,...i===void 0?{}:{label:i},...o===void 0?{}:{parent_id:o}}}function et(e){let t={};for(let[n,r]of Object.entries(e??{}).slice(0,32)){let o=n.trim().toLowerCase().slice(0,64),i=_n(r,256);/^[a-z][a-z0-9_-]{0,63}$/u.test(o)&&i!==void 0&&(t[o]=i)}return t}function zc(e,t,n){let r=Ar.getStore(),o=et({role:t.PM_AGENT_SESSION_ROLE,topic:t.PM_AGENT_SESSION_TOPIC}),i=Fe(t.PM_AGENT_EPISODE_ID===void 0?void 0:{id:t.PM_AGENT_EPISODE_ID,label:t.PM_AGENT_EPISODE_LABEL,parent_id:t.PM_AGENT_EPISODE_PARENT_ID},!1),s={...et(r?.provenance),...o,...et(e?.provenance)},a=Fe(e?.episode,!1)??Fe(n,!1)??i??Fe(r?.episode,!1);return Object.keys(s).length===0&&a===void 0?void 0:{...Object.keys(s).length===0?{}:{provenance:s},...a===void 0?{}:{episode:a}}}function Dr(e,t){return zc(e.session_context,t,e.client_info?.episode)??{}}function $p(e,t){let n=Ar.getStore(),r=Fe(e.episode,!0),o=Fe(n?.episode,!1),i=r!==void 0&&r.parent_id===void 0&&o!==void 0?{...r,parent_id:o.id}:r,s={...et(n?.provenance),...et(e.provenance)};return Ar.run({...Object.keys(s).length===0?{}:{provenance:s},...i===void 0?o===void 0?{}:{episode:o}:{episode:i}},t)}function Hp(e){let t=et(e.provenance),n=Fe(e.episode,!0);return{...n===void 0?{}:{PM_AGENT_EPISODE_ID:n.id,...n.label===void 0?{}:{PM_AGENT_EPISODE_LABEL:n.label},...n.parent_id===void 0?{}:{PM_AGENT_EPISODE_PARENT_ID:n.parent_id}},...t.role===void 0?{}:{PM_AGENT_SESSION_ROLE:t.role},...t.topic===void 0?{}:{PM_AGENT_SESSION_TOPIC:t.topic}}}import{AsyncLocalStorage as Vr}from"node:async_hooks";import{createHash as qc}from"node:crypto";import q from"node:fs";import ns from"node:os";import ze from"node:path";import{createHash as Ki}from"node:crypto";import{existsSync as Nr,promises as Xi,readFileSync as Uc}from"node:fs";import se 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]="8192f2f3-b5a0-510e-a7d4-963041cce389")}catch{}})();var Bc="session.json";function Lr(e,t){return typeof e=="string"&&e.length>0&&e.length<=t}function Yi(e){if(e===null||typeof e!="object"||Array.isArray(e))return;let t=e,n=["implementer","planner","release-operator"].includes(String(t.role)),r=["high","medium"].includes(String(t.confidence)),o=Lr(t.topic,256),i=Array.isArray(t.evidence)&&t.evidence.length<=32&&t.evidence.every(c=>typeof c=="string"&&c.length<=128),s=Array.isArray(t.active_item_ids)&&t.active_item_ids.length<=64&&t.active_item_ids.every(c=>Lr(c,128)),a=t.focused_item_id===void 0||Lr(t.focused_item_id,128);if([n,r,o,i,s,a,t.rule_version==="v2"].every(Boolean))return t}function Wc(e){if(e===null||typeof e!="object"||Array.isArray(e))return;let t=Object.entries(e).slice(0,128).flatMap(([n,r])=>{let o=Yi(r);return o&&n.length<=128?[[n,o]]:[]});return t.length>0?Object.fromEntries(t):void 0}function Pr(e){return se.join(xi(e),Bc)}async function Ji(e){try{let t=await Xi.readFile(Pr(e),"utf8"),n=JSON.parse(t);if(n===null||typeof n!="object"||Array.isArray(n))return{};let r=n,o=r.focused_item,i=Wc(r.semantic_attribution);return typeof o=="string"&&o.trim().length>0?{focused_item:o,...i?{semantic_attribution:i}:{}}:i?{semantic_attribution:i}:{}}catch{return{}}}async function Mr(e,t){let n=await V(e,"session-state",k.locks.ttl_seconds,"session-state",!1,!0,k.locks.wait_ms);try{let r=await Ji(e);t(r);let o=Pr(e);await Xi.mkdir(se.dirname(o),{recursive:!0}),await X(o,JSON.stringify(r))}finally{await n()}}function jr(e){return/#([a-f0-9]{24})$/u.exec(e.trim())?.[1]??`author-${Ki("sha256").update(e).digest("hex").slice(0,24)}`}function Fr(e){return[...new Set(e.map(t=>t.trim()).filter(Boolean))].slice(0,32).map(t=>t.slice(0,128))}function $r(e){let t=[...new Set(e)].sort((o,i)=>o.localeCompare(i));if(t.length===1)return t[0];let n=`workset:${t.join("+")}`;return n.length<=256?n:`workset:${t.join("+").slice(0,230)}+${Ki("sha256").update(t.join("\0")).digest("hex").slice(0,12)}`}async function Hr(e,t,n){await Mr(e,r=>{let o={...r.semantic_attribution},i=n(o[t]);i===void 0?delete o[t]:o[t]=i,Object.keys(o).length===0?delete r.semantic_attribution:r.semantic_attribution=o})}async function Xp(e){let t=jr(e.principal);await Hr(e.pmRoot,t,n=>{let r=[...new Set([...n?.active_item_ids??[],e.itemId])].slice(-64).sort((i,s)=>i.localeCompare(s)),o=n?.focused_item_id;return{role:"implementer",topic:o??$r(r),confidence:o?"high":"medium",rule_version:"v2",evidence:Fr([...r.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],...(e.lineageIds??[]).map(i=>`lineage:${i}`)]),active_item_ids:r,...o?{focused_item_id:o}:{}}})}async function Yp(e){let t=jr(e.principal);await Hr(e.pmRoot,t,n=>{if(!n)return;let r=n.active_item_ids.filter(i=>i!==e.itemId);if(r.length===0&&!n.focused_item_id)return;let o=n.focused_item_id;return{...n,role:"release-operator",topic:o??$r(r),confidence:o?"high":"medium",evidence:Fr([...r.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],`release:${e.itemId}`]),active_item_ids:r}})}async function Jp(e){let t=jr(e.principal);await Hr(e.pmRoot,t,n=>{let r=n?.active_item_ids??[];if(!e.itemId&&r.length===0)return;let o=e.itemId;return{role:o?"planner":n.role,topic:o??$r(r),confidence:o?"high":"medium",rule_version:"v2",evidence:Fr([...r.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],...(e.lineageIds??[]).map(i=>`lineage:${i}`)]),active_item_ids:r,...o?{focused_item_id:o}:{}}})}function Vc(e,t){let n=t.PM_PATH?.trim();if(n){let o=se.resolve(e,n);if(Nr(se.join(o,"settings.json")))return o;let i=se.join(o,".agents","pm");if(Nr(se.join(i,"settings.json")))return i}let r=se.resolve(e);for(let o=0;o<32;o+=1){let i=se.join(r,".agents","pm");if(Nr(se.join(i,"settings.json")))return i;let s=se.dirname(r);if(s===r)break;r=s}}function Qi(e){if(!e.key)return;let t=Vc(e.cwd,e.env);if(t)try{let n=JSON.parse(Uc(Pr(t),"utf8"));return Yi(n.semantic_attribution?.[e.key])}catch{return}}async function Qp(e){return(await Ji(e)).focused_item}async function Zp(e,t){await Mr(e,n=>{n.focused_item=t})}async function eh(e){await Mr(e,t=>{delete t.focused_item})}(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]="c39d3d14-b0b5-5309-b89a-9da08e1a939a")}catch{}})();var qr=["model","effort","role","topic","version"],yn=new Vr,rs=new Vr,gn=new Vr,Gr=[{harness:"claude-code",environment_keys:["CLAUDE_CODE","CLAUDECODE"],model_environment_keys:["ANTHROPIC_MODEL","CLAUDE_MODEL"],session_environment_keys:["CLAUDE_CODE_SESSION_ID"],provenance_environment_keys:{effort:["CLAUDE_EFFORT"]},provenance_resolvers:{model:"claude_session_file",version:"claude_session_file"},provenance_unavailable_dimensions:["role","topic"],argv_markers:["claude","claude-code"],client_names:["claude","claude-code","claude code"]},{harness:"codex",environment_keys:["CODEX_HOME","CODEX_CI","CODEX_THREAD_ID"],model_environment_keys:["CODEX_MODEL"],session_environment_keys:["CODEX_THREAD_ID"],provenance_environment_keys:{effort:["CODEX_REASONING_EFFORT","CODEX_EFFORT"],role:["CODEX_SESSION_ROLE"]},provenance_resolvers:{model:"codex_session_file",effort:"codex_session_file",version:"ai_agent_version"},provenance_unavailable_dimensions:["topic"],argv_markers:["codex"],client_names:["codex"]},{harness:"pi",environment_keys:["PI_AGENT","PI_CODING_AGENT"],model_environment_keys:["PI_MODEL"],session_environment_keys:["PI_SESSION_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["pi"],client_names:["pi"]},{harness:"opencode",environment_keys:["OPENCODE","OPENCODE_SESSION_ID"],model_environment_keys:["OPENCODE_MODEL"],session_environment_keys:["OPENCODE_SESSION_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["opencode"],client_names:["opencode"]},{harness:"cursor",environment_keys:["CURSOR_AGENT","CURSOR_TRACE_ID"],model_environment_keys:["CURSOR_MODEL"],session_environment_keys:["CURSOR_TRACE_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["cursor"],client_names:["cursor"]},{harness:"aider",environment_keys:["AIDER","AIDER_MODEL"],model_environment_keys:["AIDER_MODEL"],session_environment_keys:["AIDER_SESSION_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["aider"],client_names:["aider"]},{harness:"gemini-cli",environment_keys:["GEMINI_CLI","GEMINI_CLI_HOME"],model_environment_keys:["GEMINI_MODEL"],session_environment_keys:["GEMINI_CLI_SESSION_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["gemini","gemini-cli"],client_names:["gemini","gemini-cli","gemini cli"]},{harness:"ci",environment_keys:["CI","GITHUB_ACTIONS","BUILDKITE","GITLAB_CI"],provenance_unavailable_dimensions:["model","effort","role","topic"],argv_markers:[],client_names:[]}],os=Object.freeze({max_bytes:1048576,max_lines:4096,network_access:!1,subprocess_access:!1}),Gc=Object.freeze({...os,max_bytes:4194304}),zr=/^[a-z0-9]+(?:-[a-z0-9]+)*$/u;function Kc(e){let t=Se(e).provenance_unavailable_dimensions,n=new Set(["model","version",...Object.keys(e.provenance_environment_keys??{}),...Object.keys(e.provenance_resolvers??{})]);return Object.freeze({contract_version:1,adapter_version:"v1",priority:0,harness:e.harness,descriptor:e,supported_dimensions:Object.freeze([...n].sort()),native_sources:Object.freeze(["environment","argv","mcp_client",...Object.values(e.provenance_resolvers??{}).some(r=>r?.endsWith("session_file"))?["session_file"]:[]]),probe_policy:e.harness==="codex"?Gc:os,normalization:Object.freeze({model_family:"v1",effort:"v1",preserve_raw:!0}),confidence:"high",waivers:Object.freeze(Object.fromEntries(t.map(r=>[r,"Harness does not expose this dimension."])))})}var is=Object.freeze(Gr.filter(e=>e.harness!=="ci").map(Kc).sort((e,t)=>e.harness.localeCompare(t.harness))),He=new Map,tt=new Map;function P(e){let t=typeof e=="string"?e.trim():void 0;return t&&t.length>0?t:void 0}function Ie(e){return[...new Set((e??[]).slice(0,64).map(t=>t.trim()).filter(t=>t.length>0).map(t=>t.slice(0,128)))]}function Se(e){let t=e.harness.trim().toLowerCase();if(!zr.test(t))throw new Error(`Invalid harness signal descriptor namespace: ${e.harness}`);return{harness:t,environment_keys:Ie(e.environment_keys),model_environment_keys:Ie(e.model_environment_keys),session_environment_keys:Ie(e.session_environment_keys),provenance_environment_keys:Object.fromEntries(Object.entries(e.provenance_environment_keys??{}).slice(0,32).map(([n,r])=>[n.trim().toLowerCase().slice(0,64),Ie(r)]).filter(([n])=>zr.test(n))),provenance_resolvers:Object.fromEntries(Object.entries(e.provenance_resolvers??{}).slice(0,32).map(([n,r])=>[n.trim().toLowerCase().slice(0,64),r]).filter(n=>typeof n[0]=="string"&&zr.test(n[0])&&(n[1]==="ai_agent_version"||n[1]==="claude_session_file"||n[1]==="codex_session_file"))),provenance_unavailable_dimensions:Ie(e.provenance_unavailable_dimensions).map(n=>n.toLowerCase()),argv_markers:Ie(e.argv_markers).map(n=>n.toLowerCase()),client_names:Ie(e.client_names).map(n=>n.toLowerCase())}}var ss=Gr.map(Se);function Xc(e,t){return JSON.stringify(e)===JSON.stringify(t)}function hn(e,t){return e.toLowerCase().slice(0,512).split(/[/\\\s:=]+/u).filter(r=>r.length>0).includes(t)||e.trim().toLowerCase()===t}function Kr(e=[]){let t=new Map(Gr.filter(o=>o.harness!=="ci").map(o=>[o.harness,Se(o)]));for(let{adapter:o}of He.values())t.set(o.harness,Se(o.descriptor));let n=[...t.values(),...ss.filter(o=>o.harness==="ci"),...[...tt.values()].map(o=>o.descriptor),...gn.getStore()?.descriptors??[],...e.map(Se)],r=new Set;for(let o of n){if(r.has(o.harness))throw new Error(`Harness signal descriptor collision for "${o.harness}"`);r.add(o.harness)}return n}function Xr(e,t){for(let n of t??[]){let r=P(e[n]);if(r)return r.slice(0,256)}}function Yc(e,t){if(t==="role"){let n=e.slice(0,8).map(r=>r.trim().toLowerCase()).find(r=>["claim","create","update","close","release","review"].includes(r));if(n==="review")return"reviewer";if(n)return"implementer"}}function as(e,t){let n=t==="model"?["--model","--agent-model"]:[`--agent-${t}`],r=e.slice(0,8);for(let o=0;o<r.length;o+=1){let i=r[o].slice(0,512);if(n.includes(i))return P(r[o+1])?.slice(0,256);let s=n.find(a=>i.startsWith(`${a}=`));if(s)return P(i.slice(s.length+1))?.slice(0,256)}}var Jc=new Set(["implementation","implementer","investigator","orchestrator","planner","release-operator","reviewer"]);function $e(e,t){if(e!=="role"||t===void 0)return t;let n=t.trim().toLowerCase().replaceAll(/[_\s]+/gu,"-");return Jc.has(n)?n:void 0}function Ur(e,t){return P(e?.[t])?.slice(0,256)}var Qc=1048576,Wr=4194304,pn=new Map,Zi=Object.freeze({}),Br=new Map,es=Object.freeze({});function ts(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:void 0}function Zc(e){let t;try{t=JSON.parse(e)}catch{return es}let n=ts(t);if(!n)return es;let r=[{value:n,depth:0}],o=0,i,s;for(;r.length>0&&o<64;){let a=r.shift();if(o+=1,i??=P(a.value.model)?.slice(0,256),s??=P(a.value.version)?.slice(0,256),i&&s)break;if(!(a.depth>=4))for(let c of Object.values(a.value)){let d=ts(c);d&&r.push({value:d,depth:a.depth+1})}}return Object.freeze({model:i,version:s})}function cs(e){try{return q.lstatSync(e).isFile()?"available":"missing"}catch(t){return Er(t)?"missing":"failed"}}function ed(e,t){let n;try{n=q.readdirSync(e,{withFileTypes:!0}).filter(o=>o.isDirectory()).sort((o,i)=>o.name.localeCompare(i.name)).slice(0,512).map(o=>{let i=ze.join(e,o.name,`${t}.jsonl`);return{candidate:i,status:cs(i)}})}catch(o){return{status:Er(o)?"missing":"failed"}}let r=n.filter(({status:o})=>o==="available").map(({candidate:o})=>o);return r.length===0?{status:n.some(({status:o})=>o==="failed")?"failed":"missing"}:r.length>1?{status:"ambiguous"}:{status:"available",path:r[0]}}function ds(e,t){let n=P(t.CLAUDE_CODE_SESSION_ID);if(!n||!/^[A-Za-z0-9_-]{1,128}$/u.test(n))return{status:"unavailable"};let o=ze.resolve(e.cwd??process.cwd()).replaceAll(/[^A-Za-z0-9-]/gu,"-"),i=ze.join(e.home_dir??ns.homedir(),".claude","projects"),s=ze.join(i,o,`${n}.jsonl`),a=P(e.session_file),c=a&&ze.basename(a)===`${n}.jsonl`?a:void 0;for(let d of[c,s]){if(!d)continue;let l=cs(d);if(l==="available")return{status:l,path:d};if(l==="failed")return{status:l}}return ed(i,n)}function td(e,t,n){let r=ds(t,n);if(r.status==="available")try{let o=q.openSync(r.path,q.constants.O_RDONLY|q.constants.O_NOFOLLOW);try{let i=q.fstatSync(o),s=`${r.path}\0${i.size}\0${i.mtimeMs}`,a=Br.get(s);if(a)return a[e];let c=Math.min(i.size,Qc),d=Math.min(c,Math.ceil(c/2)),l=Math.min(c-d,i.size-d),f=Buffer.alloc(d);q.readSync(o,f,0,d,0);let m=Buffer.alloc(l);l>0&&q.readSync(o,m,0,l,i.size-l);let p={},_=i.size<=c?Buffer.concat([f,m]).toString("utf8").split(`
|
|
2
2
|
`):[...f.toString("utf8").split(`
|
|
3
3
|
`).slice(0,4096),...m.toString("utf8").split(`
|
|
4
|
-
`).slice(-4096)];for(let h of _){if(h.length===0||h.length>262144)continue;let I=
|
|
5
|
-
`).reverse().slice(0,r);r-=s.length;for(let a of s)if(rd(n,a),n.model&&n.effort)break;if(n.model&&n.effort||r<=0)break}return n}function id(e,t,n){let r=P(n.CODEX_THREAD_ID);if(!r||!/^[A-Za-z0-9_-]{1,128}$/u.test(r))return;let o=He.join(t.home_dir??ts.homedir(),".codex","sessions"),i=`${o}\0${r}`,s=pn.get(i);if(s)return s[e];let a=td(o,r);if(!a){pn.set(i,Qi);return}try{let c=q.openSync(a,"r");try{let d=q.fstatSync(c).size,l=od(c,d);return pn.set(i,l),l[e]}finally{q.closeSync(c)}}catch{pn.set(i,Qi);return}}function sd(e,t,n,r){let o=gn.getStore();if(!(t.probes_enabled!==!1&&o?.probesEnabled!==!1&&!["0","false","off"].includes(P(n.PM_AGENT_PROBES)?.toLowerCase()??"")))return;let s=r?.provenance_resolvers[e];if(s==="claude_session_file")return ed(e,t,n);if(s==="codex_session_file")return id(e,t,n);if(s==="ai_agent_version"){let a=P(n.AI_AGENT);return!a||!r||!hn(a,r.harness)?void 0:/(?:^|[@/\s])v?(\d+\.\d+(?:\.\d+)?(?:[-+][A-Za-z0-9.-]+)?)$/u.exec(a)?.[1]?.slice(0,256)}}function ad(e,t,n,r){if(e==="ai_agent_version"){let o=P(r.AI_AGENT);return o!==void 0&&hn(o,t.harness)?"available":"unavailable"}return e==="codex_session_file"?P(r.CODEX_THREAD_ID)!==void 0?"available":"unavailable":cs(n,r).status}function Gr(e){return e||(ns.getStore()??{env:process.env,argv:process.argv})}function cd(e,t,n,r){let o=e.environment_keys.some(a=>P(t[a])!==void 0),i=e.argv_markers.some(a=>n.some(c=>{let d=c.replaceAll("\\","/");return hn(d.slice(d.lastIndexOf("/")+1),a)})),s=e.client_names.some(a=>r===a||hn(r,a));return o||i||s}function dd(e,t){if(!t)return;let n;if(e==="topic"&&(n=t.topic),e==="role"&&(n=t.role),!!n)return{value:n,source:"inferred",confidence:t.confidence,rule_version:t.rule_version,evidence:t.evidence}}function ld(e){let t=e.find(([n])=>n!==void 0);return t?.[0]?{value:t[0],source:t[1]}:void 0}function ud(e,t,n,r,o,i){let s=`PM_AGENT_${e.toUpperCase().replaceAll("-","_")}`,a=new Set([...Br,...Object.keys(r?.provenance_environment_keys??{})]),c,d,l;a.has(e)&&(c=Fe(e,P(n[s])?.slice(0,256)),l=Fe(e,ss(t.argv??[],e)),d=Fe(e,Xc(t.argv??[],e)));let f={...r?.provenance_environment_keys,model:r?.model_environment_keys},m={...t.client_info?.provenance,model:t.client_info?.model},p=$r(o?.provenance,e),_=Fe(e,qr(n,f[e])),g=Fe(e,$r(m,e)),h=Fe(e,$r(t.provenance,e)),I=sd(e,t,n,r);return ld([[c,"override"],[p,"session"],[l,"argv"],[_,"environment"],[g,"mcp_client"],[h,"host"],[I,"probe"]])??dd(e,i)??(d?{value:d,source:"argv"}:void 0)}function fd(e,t){if(!(!e||!t))return Vc("sha256").update(`pm-agent-instance:v1\0${e}\0${t}`).digest("hex").slice(0,24)}function md(e,t,n,r,o){let i=Object.keys(n?.provenance_environment_keys??{}),s=new Set([...Br,...i,...Object.keys(n?.provenance_resolvers??{}),...Object.keys(e.provenance??{}),...Object.keys(e.client_info?.provenance??{}),...Object.keys(r?.provenance??{})]),a={};for(let c of s){let d=ud(c,e,t,n,r,o);d?a[c]=d:n&&(c!=="version"||n.provenance_unavailable_dimensions.includes(c))&&(a[c]=null)}return a}function lh(e){let t=e.map(ke),n=new Map(is.map(i=>[i.harness,i])),r=new Set;for(let i of t){if(r.has(i.harness)||n.has(i.harness))throw new Error(`Harness signal descriptor collision for "${i.harness}"`);let s=tt.get(i.harness);if(s&&!Kc(s.descriptor,i))throw new Error(`Harness signal descriptor collision for "${i.harness}"`);r.add(i.harness)}for(let i of t){let s=tt.get(i.harness);tt.set(i.harness,{descriptor:i,registrations:(s?.registrations??0)+1})}let o=!0;return()=>{if(o){o=!1;for(let i of t){let s=tt.get(i.harness);!s||s.registrations<=1?tt.delete(i.harness):s.registrations-=1}}}}function _d(e){let t=ke(e.descriptor),n=e.harness.trim().toLowerCase();if(e.contract_version!==1)throw new Error(`Unsupported provenance adapter contract for "${n}": ${e.contract_version}`);if(t.harness!==n)throw new Error(`Provenance adapter harness "${n}" does not match descriptor "${t.harness}".`);let r=P(e.adapter_version)?.slice(0,64);if(!r)throw new Error(`Provenance adapter "${n}" requires a version.`);if(!Number.isSafeInteger(e.priority))throw new Error(`Provenance adapter "${n}" requires an integer priority.`);if(e.probe_policy.network_access!==!1||e.probe_policy.subprocess_access!==!1||e.probe_policy.max_bytes>zr||e.probe_policy.max_lines>4096)throw new Error(`Provenance adapter "${n}" exceeds the bounded local probe policy.`);return Object.freeze({...e,adapter_version:r,harness:n,descriptor:t,supported_dimensions:Object.freeze(Ee(e.supported_dimensions).map(o=>o.toLowerCase()).sort()),native_sources:Object.freeze([...new Set(e.native_sources)]),probe_policy:Object.freeze({...e.probe_policy}),normalization:Object.freeze({...e.normalization}),...e.waivers?{waivers:Object.freeze(Object.fromEntries(Object.entries(e.waivers).slice(0,32).map(([o,i])=>[o.slice(0,64),i.slice(0,256)])))}:{}})}function uh(){let e=new Map(os.map(t=>[t.harness,t]));for(let{adapter:t}of $e.values())e.set(t.harness,t);return Object.freeze([...e.values()].sort((t,n)=>t.harness.localeCompare(n.harness)))}function fh(e){let t=e.map(_d),n=new Map(os.map(i=>[i.harness,i])),r=new Set;for(let i of t){if(r.has(i.harness))throw new Error(`Provenance adapter collision for "${i.harness}".`);let s=n.get(i.harness);if(s&&i.priority<=s.priority)throw new Error(`Provenance adapter override for "${i.harness}" requires priority greater than ${s.priority}.`);let a=$e.get(i.harness);if(a&&JSON.stringify(a.adapter)!==JSON.stringify(i))throw new Error(`Provenance adapter collision for "${i.harness}".`);r.add(i.harness)}for(let i of t){let s=$e.get(i.harness);$e.set(i.harness,{adapter:i,registrations:(s?.registrations??0)+1})}let o=!0;return()=>{if(o){o=!1;for(let i of t){let s=$e.get(i.harness);!s||s.registrations<=1?$e.delete(i.harness):s.registrations-=1}}}}function mh(e,t){let n=t.trim().slice(0,256),r=n.toLowerCase();if(e==="model"){let o=/^(gpt-\d+(?:\.\d+)?)/u.exec(r)?.[1];o&&(r=o)}else r=r.replaceAll(/[_\s-]+/gu,""),r={minimal:"low",low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max",ultra:"ultra"}[r]??r;return{raw:n,normalized:r,vocabulary:"v1"}}function _h(e,t){return ns.run(e,t)}function ph(e,t,n={}){let r=e.map(ke);return Vr(r),gn.run({descriptors:r,probesEnabled:n.probesEnabled!==!1},t)}function Kr(e){let t=Gr(e),n=t.env??{},r=Vr(t.descriptors),o=[...(t.argv??[]).slice(0,3),...t.process_labels??[]].slice(0,64).map(_=>_.slice(0,512)),i=t.client_info?.name.trim().toLowerCase()??"",s=r.find(_=>cd(_,n,o,i)),a=xr(t,n),c=[qr(n,s?.session_environment_keys),P(t.client_info?.session)?.slice(0,256)].find(_=>_!==void 0),d=fd(s?.harness,c),l=Ji({cwd:t.cwd??process.cwd(),env:n,key:d}),f=md(t,n,s,a,l),m=f.model,p=[["harness",s?.harness],["model",m?.value],["model_source",m?.source],["session",c],["instance",d],["provenance",Object.keys(f).length>0?f:void 0],["episode",a.episode]];return Object.fromEntries(p.filter(_=>_[1]!==void 0))}function pd(e){return e==="unavailable"?{status:"unavailable",reason:"harness_unavailable"}:e==="missing"?{status:"unavailable",reason:"resolver_input_missing"}:{status:"failed",reason:"resolver_failed"}}function hd(e,t,n,r,o,i,s){let a=n?.provenance_resolvers[e];if(t.provenance?.[e])return{status:"resolved",...a?{resolver:a}:{},rule_version:"v1"};if(s)return{status:"unavailable",reason:"invalid_value",rule_version:"v1"};if(a){if(!i)return{status:"unavailable",reason:"probes_disabled",resolver:a,rule_version:"v1"};let c=ad(a,n,r,o);return{...pd(c),resolver:a,rule_version:"v1"}}return{status:n?.provenance_unavailable_dimensions.includes(e)?"unavailable":"not_configured",reason:n?.provenance_unavailable_dimensions.includes(e)?"harness_unavailable":"resolver_not_configured",rule_version:"v1"}}function ds(e){let t=Gr(e),n=Kr(t),r=Vr(t.descriptors).find(d=>d.harness===n.harness),o=t.env??{},i=t.probes_enabled!==!1&&gn.getStore()?.probesEnabled!==!1&&!["0","false","off"].includes(P(o.PM_AGENT_PROBES)?.toLowerCase()??""),s=xr(t,o),a=[o.PM_AGENT_ROLE,s.provenance?.role,qr(o,r?.provenance_environment_keys.role),t.client_info?.provenance?.role,t.provenance?.role,ss(t.argv??[],"role")].some(d=>{let l=P(d)?.slice(0,256);return l!==void 0&&Fe("role",l)===void 0}),c=Object.fromEntries(Br.map(d=>[d,hd(d,n,r,t,o,i,d==="role"&&a)]));return{...n,provenance_outcomes:c}}function hh(){return process.env.PM_AUTHOR}function yh(e){e===void 0?delete process.env.PM_AUTHOR:process.env.PM_AUTHOR=e}function gh(e){return Kr(e).harness}function yd(e,t,n){let r=Gr(n),o=Kr(r);if(e!==void 0){let s=P(e);return s?{author:s,source:"asserted",...o}:{author:"unknown",source:"unknown",...o}}if(r.env?.PM_AUTHOR!==void 0){let s=P(r.env.PM_AUTHOR);return s?{author:s,source:"asserted",...o}:{author:"unknown",source:"unknown",...o}}let i=P(t);return i?{author:i,source:"configured",...o}:o.harness?{author:`harness:${o.harness}`,source:"detected",...o}:{author:"unknown",source:"unknown",...o}}function ls(e){let t=yn.getStore();return t?.author===e?t.source:e.startsWith("harness:")?"detected":e==="unknown"?"unknown":"asserted"}function us(e){let t=yn.getStore();return t?.author!==e?e.startsWith("harness:")?{harness:e.slice(8)}:{}:{...t.harness?{harness:t.harness}:{},...t.model?{model:t.model}:{},...t.model_source?{model_source:t.model_source}:{},...t.session?{session:t.session}:{},...t.instance?{instance:t.instance}:{},...t.provenance?{provenance:t.provenance}:{},...t.episode?{episode:t.episode}:{}}}function fs(e){let t=yn.getStore();return t?.author===e&&t.source==="detected"&&t.instance?`${e}#${t.instance}`:e}function ms(e,t){let n=yd(e,t);return yn.enterWith(n),n.author}import{createHash as gd}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]="1e3cba21-c5a4-541a-9841-484cfbb70f4e")}catch{}})();var wh=["sha256","sha512"],vd="sha256",_s="sha256";function ze(e){if(e===void 0)return vd;if(e==="sha256"||e==="sha512")return e;throw new TypeError(`unsupported_history_hash_algorithm:${String(e)}`)}function Ie(e,t){return gd(ze(t)).update(e,"utf8").digest("hex")}(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]="8ee74259-29b1-5795-9253-9fa0869e4585")}catch{}})();var nt=1,ps=1;function kh(e){let t=e.pm_format_version;return typeof t=="number"&&Number.isInteger(t)&&t>=nt?t:nt}function hs(e){if(!(typeof e!="number"||!Number.isInteger(e)||e<=nt))return e}function bd(e,t=ps){return e<t?"outdated":e>t?"ahead":"current"}function Ih(e,t=ps){let n=[],r=[];for(let o of e){let i=bd(o.version,t);i==="outdated"?n.push(o.ref):i==="ahead"&&r.push(o.ref)}return{outdated:n.sort((o,i)=>o.localeCompare(i)),ahead:r.sort((o,i)=>o.localeCompare(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]="6bb283b8-5c81-562a-926e-e48b83e6ebc8")}catch{}})();var wd={"in-progress":"in_progress",cancelled:"canceled"};function vn(e,t){if(t){let o=Di(e,t);if(o)return o}if(typeof e!="string")return;let n=e.trim().toLowerCase();if(!n)return;let r=wd[n]??n;if(en.includes(r))return r}function rt(e,t){return vn(e,t)??e}function he(e,t){return t.terminal_statuses.has(rt(e,t))}import{encode as Nd}from"@toon-format/toon";import{isDeepStrictEqual as ws}from"node:util";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="42eb2987-269d-5b18-b0fe-5b4334fdb6a0")}catch{}})();var Ed=16;function Xr(e){let t=e.trim().replaceAll(/[^A-Za-z0-9]+/g," ").split(/\s+/).filter(o=>o.length>0).map(o=>o.toLowerCase());if(t.length===0)return e;let[n,...r]=t;return`${n}${r.map(o=>`${o.slice(0,1).toUpperCase()}${o.slice(1)}`).join("")}`}function kd(e){return[...new Set([Li(e),Xr(e.key),Xr(e.cli_flag),...e.cli_aliases.map(t=>Xr(t))])]}function vs(e,t){for(let n of kd(t)){if(!Object.hasOwn(e,n))continue;let r=e[n];if(r!==void 0)return r}}function bs(e){return Array.isArray(e)?e.flatMap(t=>bs(t)).map(t=>t.trim()).filter(t=>t.length>0):typeof e=="string"?e.split(/[,\n|]/).map(t=>t.trim()).filter(t=>t.length>0):e==null?[]:[String(e).trim()].filter(t=>t.length>0)}function ys(e,t){if(typeof e=="boolean")return e;if(typeof e=="number"){if(e===1)return!0;if(e===0)return!1}if(typeof e=="string"){let n=e.trim().toLowerCase();if(n==="true"||n==="1"||n==="yes")return!0;if(n==="false"||n==="0"||n==="no")return!1}throw new v(`${t} must be one of true|false|1|0|yes|no`,b.USAGE)}function gs(e,t){if(typeof e=="number"&&Number.isFinite(e))return e;let n=typeof e=="string"?e.trim():String(e),r=Number(n);if(!Number.isFinite(r))throw new v(`${t} must be a number`,b.USAGE);return r}function Id(e,t,n){let r=typeof e=="string"?(()=>{try{return JSON.parse(e)}catch{return}})():e;if(n==="array"&&Array.isArray(r)||n==="object"&&typeof r=="object"&&r!==null&&!Array.isArray(r))return r;throw new v(`${t} must be valid JSON ${n}`,b.USAGE)}function Sd(e,t){return t===void 0?!0:t==="array"?Array.isArray(e):t==="object"?typeof e=="object"&&e!==null&&!Array.isArray(e):typeof e===t}function Td(e,t,n){if(t.const!==void 0&&L(e)!==L(t.const))return`${n} must equal ${L(t.const)}`;if(t.enum!==void 0&&!t.enum.some(r=>L(r)===L(e)))return`${n} must be one of ${t.enum.map(r=>L(r)).join("|")}`;if(!Sd(e,t.type))return`${n} must match configured type ${String(t.type)}`;if(typeof e=="string"){if(t.min_length!==void 0&&e.length<t.min_length)return`${n} must contain at least ${t.min_length} characters`;if(t.format==="date-time"&&!Bi(e))return`${n} must be an RFC 3339 date-time`}}function Cd(e,t,n,r){if(Array.isArray(e)){if(t.min_items!==void 0&&e.length<t.min_items)return`${n} must contain at least ${t.min_items} items`;if(t.items)for(let[o,i]of e.entries()){let s=bn(i,t.items,`${n}[${o}]`,r+1);if(s)return s}}}function Od(e,t,n,r){if(typeof e!="object"||e===null||Array.isArray(e))return;let o=e;for(let i of t.required??[])if(!Object.hasOwn(o,i))return`${n}.${i} is required`;for(let[i,s]of Object.entries(o)){let a=t.properties?.[i];if(!a){if(t.additional_properties===!1)return`${n}.${i} is not allowed`;continue}let c=bn(s,a,`${n}.${i}`,r+1);if(c)return c}}function bn(e,t,n,r=0){if(r>Ed)return`${n} value schema exceeds maximum depth`;let o=Td(e,t,n);if(o)return o;let i=Cd(e,t,n,r);if(i)return i;let s=Od(e,t,n,r);if(s)return s;if(!t.one_of)return;let a=0;for(let c of t.one_of)if(bn(e,c,n,r+1)===void 0&&(a+=1,a>1))break;return a===1?void 0:`${n} must match exactly one configured schema variant`}function Ue(e,t,n){if(!e.value_schema||t===void 0)return t;let r=bn(t,e.value_schema,n);if(r)throw new v(r,b.USAGE);return t}function xt(e,t,n){let r=n??`--${e.cli_flag}`;if(e.type==="array"||e.type==="object"){let i=Array.isArray(t)?t[t.length-1]:t;return i===void 0?void 0:Ue(e,Id(i,r,e.type),r)}if(e.repeatable||e.type==="string_array"){let i=bs(t);return e.type==="number"?Ue(e,i.map(s=>gs(s,r)),r):e.type==="boolean"?Ue(e,i.map(s=>ys(s,r)),r):Ue(e,i,r)}let o=Array.isArray(t)?t[t.length-1]:t;if(o!==void 0)return e.type==="number"?Ue(e,gs(o,r),r):e.type==="boolean"?Ue(e,ys(o,r),r):Ue(e,typeof o=="string"?o:String(o),r)}function xd(e,t){return!e.required&&!e.required_on_create?!1:e.required_types.length===0?!0:t?e.required_types.map(n=>n.toLowerCase()).includes(t.trim().toLowerCase()):!1}function Lh(e,t,n){let r={},o=[];for(let i of t.command_to_fields.get("create")??[]){let s=vs(e,i);if(s===void 0){xd(i,n)&&o.push(`--${i.cli_flag}`);continue}r[i.metadata_key]=xt(i,s)}return{values:r,missing_required_flags:[...new Set(o)].sort((i,s)=>i.localeCompare(s))}}function Ph(e,t,n=["update"]){let r={},o=(n??["update"]).flatMap(s=>t.command_to_fields.get(s)??[]),i=new Set;for(let s of o){let a=vs(e,s);a!==void 0&&(i.has(s.metadata_key)||(i.add(s.metadata_key),r[s.metadata_key]=xt(s,a)))}return r}import{decode as Rd}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]="e48e0cc7-7577-5702-ac17-a4529697444e")}catch{}})();function Yr(e){return{value:Rd(e),usedScalarBracketEscape:!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]="45fa31ba-dea9-56db-b971-84c11e8a1c88")}catch{}})();var Ad=/^\s*(<<<<<<<|=======|>>>>>>>)(?:\s.*)?$/;function Dd(e){if(e.length===0)return[];let t=e.split(/\r?\n/),n=[];for(let r=0;r<t.length;r+=1){let o=t[r]??"",i=o.match(Ad);if(!i)continue;let s=i[1];n.push({line:r+1,marker:s,text:o})}return n}function wn(e){return Dd(e)[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]="24554781-3fa2-53de-98b1-467843de8560")}catch{}})();var eo=new Set(["schema","tracker","auto","none"]),Is=new Set(["source","isolated","snapshot"]),Ld=new Set(["legacy","local_mutation","local_source_ref","acknowledged","invalid_provenance","foreign_source_ref"]),Pd=new Set(["passed","failed","stopped","canceled"]),Md=new Set(hi);function st(e){return e.replaceAll("\\","/")}function Ss(e){for(let t of e)if(t!==0)return t;return 0}function kn(e){for(let[t,n]of Object.entries(e))n===void 0&&delete e[t]}var Ts=["id","title","description","created_at","updated_at"],jd=new Set(ge);function Cs(e){if(e?.schema)return{statusRegistry:ln(e.schema),fieldRegistry:Ni(e.schema),unknownFieldPolicy:e.schema.unknown_field_policy??"allow",extensionFieldNames:new Set(e.extensionFieldNames??[]),onWarning:e.onWarning}}function Fd(e,t){return e.required?e.required_types.length===0?!0:e.required_types.map(n=>n.toLowerCase()).includes(t.trim().toLowerCase()):!1}function Se(e){let t=e.match(/^([a-z_][\w.]*)\s/u)?.[1];throw new v(`Invalid item metadata: ${e}`,b.GENERIC_FAILURE,{code:"item_document_invalid",reason:e.includes("required")?"missing_required_field":"schema_validation_error",...t?{field:t}:{},required:"Provide an item document whose metadata satisfies the active runtime schema.",why:e})}function Dt(e,t){throw new v(t,b.GENERIC_FAILURE,{code:"item_document_invalid",reason:"syntax_error",format:e,required:`Provide a syntactically valid ${e==="toon"?"TOON":"JSON Markdown"} item document.`,why:"The document could not be decoded far enough to validate item metadata."})}function Os(e){let t=new Set(jd);for(let n of e.fieldRegistry?.definitions??[])t.add(n.metadata_key);for(let n of e.extensionFieldNames)t.add(n);return t}function S(e,t){e||Se(t)}function Nt(e,t){return(typeof e!="object"||e===null||Array.isArray(e))&&Se(t),e}function Jr(e,t){let n=e[t];S(typeof n=="string",`${t} must be a string`),S(me(n),`${t} must be a valid ISO timestamp`)}function Es(e,t,n){let r=e[t];r!==void 0&&S(typeof r=="number"&&Number.isInteger(r)&&r>=1,`${n} must be an integer >= 1`)}function to(e,t,n){let r=e[t];r!==void 0&&(S(typeof r=="string",`${n} must be a string`),S(me(r),`${n} must be a valid ISO timestamp`))}function $d(e){if(e!==void 0){S(Array.isArray(e),"event.recurrence.by_weekday must be an array");for(let t of e){S(typeof t=="string","event.recurrence.by_weekday entries must be strings");let n=t.trim().toLowerCase();S(on.includes(n),`event.recurrence.by_weekday entries must be one of: ${on.join(", ")}`)}}}function Hd(e){if(e!==void 0){S(Array.isArray(e),"event.recurrence.by_month_day must be an array");for(let t of e)S(typeof t=="number"&&Number.isInteger(t)&&t>=1&&t<=31,"event.recurrence.by_month_day entries must be integers 1..31")}}function zd(e){if(e!==void 0){S(Array.isArray(e),"event.recurrence.exdates must be an array");for(let t of e)S(typeof t=="string","event.recurrence.exdates entries must be strings"),S(me(t),"event.recurrence.exdates entries must be valid ISO timestamps")}}function Ud(e){let t=Nt(e,"event.recurrence must be an object");S(typeof t.freq=="string","event.recurrence.freq must be a string");let n=t.freq.trim().toLowerCase();S(rn.includes(n),`event.recurrence.freq must be one of: ${rn.join(", ")}`),Es(t,"interval","event.recurrence.interval"),Es(t,"count","event.recurrence.count"),to(t,"until","event.recurrence.until"),$d(t.by_weekday),Hd(t.by_month_day),zd(t.exdates)}function Bd(e){for(let r of Ts)S(typeof e[r]=="string",`${r} is required and must be a string`);let t=e.type;S(typeof t=="string"&&t.trim().length>0,"type must be a non-empty string");let n=e.pm_format_version;return n!==void 0&&S(typeof n=="number"&&Number.isInteger(n)&&n>=nt,`pm_format_version must be an integer >= ${nt}`),t}function Wd(e,t){let n=e.status;S(typeof n=="string"&&n.trim().length>0,"status must be a non-empty string");let r=t?.statusRegistry,o=vn(n,r),i=r?r.definitions.map(s=>s.id):[...en];S(o!==void 0,`status must be one of: ${i.join(", ")}`)}function Vd(e){let t=e.priority;S(typeof t=="number"&&Number.isInteger(t)&&[0,1,2,3,4].includes(t),"priority must be an integer 0..4");let n=e.tags;S(Array.isArray(n),"tags must be an array");for(let r of n)S(typeof r=="string","tags entries must be strings")}function qd(e){let t=e.confidence;if(t!==void 0){if(typeof t=="number"){S(Number.isInteger(t)&&t>=0&&t<=100,"confidence number value must be an integer 0..100");return}if(typeof t=="string"){let n=t.trim().toLowerCase(),r=n==="med"||nn.includes(n);S(r,`confidence string value must be one of: ${[...nn,"med"].join(", ")}`);return}S(!1,"confidence must be a number or string")}}function Gd(e){let t=e.severity;if(t===void 0)return;typeof t!="string"&&Se("severity must be a string");let n=t.trim().toLowerCase(),r=n==="med"||tn.includes(n);S(r,`severity value must be one of: ${[...tn,"med"].join(", ")}`)}function Kd(e){e.regression!==void 0&&typeof e.regression!="boolean"&&Se("regression must be a boolean")}function Xd(e){let t=e.reminders;if(t!==void 0){S(Array.isArray(t),"reminders must be an array");for(let n of t){let r=Nt(n,"reminders entries must be objects");S(typeof r.at=="string","reminder.at must be a string"),S(me(r.at),"reminder.at must be a valid ISO timestamp"),S(typeof r.text=="string","reminder.text must be a string"),S(r.text.trim().length>0,"reminder.text must not be empty")}}}function Yd(e){for(let t of["title","description","location","timezone"])e[t]!==void 0&&(S(typeof e[t]=="string",`event.${t} must be a string`),S(e[t].trim().length>0,`event.${t} must not be empty`))}function Jd(e){e.recurrence!==void 0&&(Ud(e.recurrence),e.recurrence.until!==void 0&&S(_e(e.recurrence.until,e.start_at)>=0,"event.recurrence.until must be at or after event.start_at"))}function Qd(e){let t=Nt(e,"events entries must be objects");S(typeof t.start_at=="string","event.start_at must be a string"),S(me(t.start_at),"event.start_at must be a valid ISO timestamp"),t.end_at!==void 0&&(S(typeof t.end_at=="string","event.end_at must be a string"),S(me(t.end_at),"event.end_at must be a valid ISO timestamp"),S(_e(t.end_at,t.start_at)>0,"event.end_at must be after event.start_at")),Yd(t),t.all_day!==void 0&&S(typeof t.all_day=="boolean","event.all_day must be a boolean"),Jd(t)}function Zd(e){let t=e.events;if(t!==void 0){S(Array.isArray(t),"events must be an array");for(let n of t)Qd(n)}}function el(e){for(let t of["source_type","source_owner","design","external_ref"]){let n=e[t];n!==void 0&&S(typeof n=="string",`${t} must be a string`)}}function tl(e){let t=e.type_options;if(t===void 0)return;let n=Nt(t,"type_options must be an object");for(let[r,o]of Object.entries(n))S(r.trim().length>0,"type_options keys must be non-empty"),S(typeof o=="string","type_options values must be strings"),S(o.trim().length>0,"type_options values must be non-empty strings")}function nl(e,t,n){if(n?.fieldRegistry)for(let r of n.fieldRegistry.definitions){let o=e[r.metadata_key];if(o===void 0){Fd(r,t)&&Se(`missing required schema field: ${r.metadata_key}`);continue}try{e[r.metadata_key]=xt(r,o,`metadata field "${r.metadata_key}"`)}catch(i){Se(String(i?.message).replace(/^Invalid\s+/u,""))}}}function rl(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let n=Os(t),r=Object.keys(e).filter(o=>!n.has(o)).sort((o,i)=>o.localeCompare(i));r.length!==0&&(t.unknownFieldPolicy==="reject"?Se(`unknown schema fields are not allowed: ${r.join(", ")}`):t.onWarning?.(`item_unknown_schema_fields:${r.join(",")}`))}function no(e,t){let n=Nt(e,"item metadata must be an object"),r=Bd(n);Wd(n,t),Vd(n),qd(n),Gd(n),Kd(n),Jr(n,"created_at"),Jr(n,"updated_at"),n.deadline!==void 0&&Jr(n,"deadline"),Xd(n),Zd(n),to(n,"closed_at","closed_at"),to(n,"completed_at","completed_at"),el(n),tl(n),nl(n,r,t),rl(n,t)}function ol(e){if(!(!e||e.length===0))return[...e].map(t=>({id:t.id.trim(),kind:t.kind,created_at:t.created_at,author:t.author?.trim()||void 0,source_kind:t.source_kind?.trim()||void 0,author_source:t.author_source})).sort((t,n)=>{let r=_e(t.created_at,n.created_at);if(r!==0)return r;let o=t.id.localeCompare(n.id);if(o!==0)return o;let i=t.kind.localeCompare(n.kind);return i!==0?i:(t.source_kind??"").localeCompare(n.source_kind??"")})}function Qr(e){if(!(!e||e.length===0))return[...e].sort((t,n)=>{let r=_e(t.created_at,n.created_at);if(r!==0)return r;let o=t.text.localeCompare(n.text);return o!==0?o:t.author.localeCompare(n.author)})}function il(e){if(!e||e.length===0)return;let t=[...e].map(n=>({at:n.at,text:n.text.trim()})).filter(n=>n.text.length>0).sort((n,r)=>{let o=_e(n.at,r.at);return o!==0?o:n.text.localeCompare(r.text)});return t.length===0?void 0:t}function sl(e){if(!e)return;let t=e.freq.trim().toLowerCase();if(!rn.includes(t))return;let n=Array.from(new Set((e.by_weekday??[]).map(s=>s.trim().toLowerCase()).filter(s=>on.includes(s)))).sort((s,a)=>gr(s)-gr(a)),r=Array.from(new Set((e.by_month_day??[]).filter(s=>Number.isInteger(s)&&s>=1&&s<=31).map(s=>s))).sort((s,a)=>s-a),o=Array.from(new Set((e.exdates??[]).map(s=>s.trim()).filter(s=>me(s)))).sort((s,a)=>_e(s,a)),i={freq:t,interval:e.interval!==void 0&&e.interval>1?e.interval:void 0,count:e.count,until:e.until?.trim()||void 0,by_weekday:n.length>0?n:void 0,by_month_day:r.length>0?r:void 0,exdates:o.length>0?o:void 0};for(let[s,a]of Object.entries(i))a===void 0&&delete i[s];return i}function al(e){return!Array.isArray(e)||e.length===0?void 0:[...e].map(cl).sort(dl)}function cl(e){let t={start_at:e.start_at,end_at:e.end_at||void 0,title:e.title?.trim()||void 0,description:e.description?.trim()||void 0,location:e.location?.trim()||void 0,all_day:e.all_day,timezone:e.timezone?.trim()||void 0,recurrence:sl(e.recurrence)};return kn(t),t}function dl(e,t){return Ss([_e(e.start_at,t.start_at),(e.end_at??"").localeCompare(t.end_at??""),(e.title??"").localeCompare(t.title??""),+!!e.all_day-+!!t.all_day,(e.timezone??"").localeCompare(t.timezone??""),(e.location??"").localeCompare(t.location??""),(e.description??"").localeCompare(t.description??""),JSON.stringify(e.recurrence??{}).localeCompare(JSON.stringify(t.recurrence??{}))])}function ll(e){if(!(!e||e.length===0))return e.map(t=>({path:st(t.path),scope:t.scope,note:t.note?.trim()||void 0}))}function ul(e){if(!e||e.length===0)return;let t=e.map(pl).filter(n=>n.run_id.length>0&&n.started_at.length>0&&n.finished_at.length>0&&n.recorded_at.length>0).sort((n,r)=>Ss([_e(n.recorded_at,r.recorded_at),n.run_id.localeCompare(r.run_id),n.kind.localeCompare(r.kind)]));return t.length>0?t:void 0}function ot(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?Math.floor(e):void 0}function fl(e){return typeof e=="number"&&Number.isFinite(e)&&e>=1?Math.floor(e):void 0}function Zr(e){return typeof e=="string"?e:""}function ml(e){if(!Array.isArray(e))return;let t=e.filter(r=>r!==null&&typeof r=="object"&&typeof r.name=="string"&&r.name.trim().length>0&&typeof r.value=="number"&&Number.isFinite(r.value)&&typeof r.recorded_at=="string"&&r.recorded_at.trim().length>0).map(r=>({name:r.name.trim(),value:r.value,unit:typeof r.unit=="string"&&r.unit.trim()||void 0,threshold:typeof r.threshold=="number"&&Number.isFinite(r.threshold)?r.threshold:void 0,recorded_at:r.recorded_at.trim()})),n=[...new Map(t.map(r=>[r.name,r])).values()].sort((r,o)=>r.name.localeCompare(o.name)).slice(0,32);return n.length>0?n:void 0}function En(e,t){return typeof e=="string"&&t.has(e)?e:void 0}function _l(e){if(!Array.isArray(e))return;let t=e.filter(n=>n&&typeof n.command=="string"&&n.command.trim().length>0).slice(0,32).map(n=>({command:n.command.trim(),requested_pm_context_mode:En(n.requested_pm_context_mode,eo),pm_context_mode:En(n.pm_context_mode,eo),workspace_context_mode:En(n.workspace_context_mode,Is),trust_reason:En(n.trust_reason,Ld)}));return t.length>0?t:void 0}function pl(e){let t=typeof e.run_id=="string"?e.run_id.trim():"",n=e.kind==="test"||e.kind==="test-all"?e.kind:"test",r=Pd.has(e.status)?e.status:"failed",o={run_id:t,kind:n,status:r,started_at:Zr(e.started_at),finished_at:Zr(e.finished_at),recorded_at:Zr(e.recorded_at),attempt:fl(e.attempt),resumed_from:e.resumed_from?.trim()||void 0,passed:ot(e.passed)??0,failed:ot(e.failed)??0,skipped:ot(e.skipped)??0,items:ot(e.items),linked_tests:ot(e.linked_tests),fail_on_skipped_triggered:e.fail_on_skipped_triggered===!0?!0:void 0,measurements:ml(e.measurements),executions:_l(e.executions)};return kn(o),o}function hl(e){if(!(!Array.isArray(e)||e.length===0))return e.map(wl)}function Rt(e){if(!Array.isArray(e))return;let t=[...new Set(e.filter(n=>typeof n=="string").map(n=>n.trim()).filter(n=>n.length>0))].sort((n,r)=>n.localeCompare(r));return t.length>0?t:void 0}function oo(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function io(e){return e==="__proto__"||e==="constructor"||e==="prototype"}function ks(e){if(!oo(e))return;let t=Object.entries(e).map(([n,r])=>[n.trim(),String(r).trim()]).filter(([n,r])=>n.length>0&&!io(n)&&r.length>0).sort(([n],[r])=>n.localeCompare(r));return t.length>0?Object.fromEntries(t):void 0}function yl(e){if(!oo(e))return;let t=Object.entries(e).map(([n,r])=>[n.trim(),Number(r)]).filter(([n,r])=>n.length>0&&!io(n)&&Number.isFinite(r)).sort(([n],[r])=>n.localeCompare(r));return t.length>0?Object.fromEntries(t):void 0}function gl(e){let t=e?.trim().toLowerCase();if(!(!t||!eo.has(t)))return t}function vl(e){let t=e?.trim().toLowerCase();if(!(!t||!Is.has(t)))return t}function bl(e,t){if(t===!0)return{provenance_invalid:!0};if(e===void 0)return{};if(!oo(e))return{provenance_invalid:!0};let n=E(e.author),r=E(e.created_at),o=e.source_kind;return!n||!r||!me(r)||o!=="local_mutation"&&o!=="merge_union"?{provenance_invalid:!0}:{provenance:{author:n,created_at:r,source_kind:o,source_ref:E(e.source_ref)}}}function wl(e){let t={command:e.command?.trim()||void 0,path:e.path?st(e.path):void 0,scope:e.scope,timeout_seconds:typeof e.timeout_seconds=="number"&&Number.isFinite(e.timeout_seconds)&&e.timeout_seconds>0?e.timeout_seconds:void 0,pm_context_mode:gl(e.pm_context_mode),workspace_context_mode:vl(e.workspace_context_mode),...bl(e.provenance,e.provenance_invalid),env_set:ks(e.env_set),env_clear:Rt(e.env_clear),shared_host_safe:e.shared_host_safe===!0?!0:void 0,assert_stdout_contains:Rt(e.assert_stdout_contains),assert_stdout_regex:Rt(e.assert_stdout_regex),assert_stderr_contains:Rt(e.assert_stderr_contains),assert_stderr_regex:Rt(e.assert_stderr_regex),assert_stdout_min_lines:ot(e.assert_stdout_min_lines),assert_json_field_equals:ks(e.assert_json_field_equals),assert_json_field_gte:yl(e.assert_json_field_gte),note:e.note?.trim()||void 0};return kn(t),t}function El(e){if(!(!e||e.length===0))return[...e].map(t=>({path:st(t.path),scope:t.scope,note:t.note?.trim()||void 0})).sort((t,n)=>{let r=t.scope.localeCompare(n.scope);if(r!==0)return r;let o=t.path.localeCompare(n.path);return o!==0?o:(t.note??"").localeCompare(n.note??"")})}function E(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function kl(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=E(r.id),i=E(r.kind);if(!o||!i)continue;let s={id:o,kind:i},a=E(r.note);a&&(s.note=a),r.required_before_step===!0&&(s.required_before_step=!0),t.push(s)}return t.length>0?t:void 0}function Il(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=E(r.path);if(!o)continue;let i={path:st(o)};(r.scope==="project"||r.scope==="global")&&(i.scope=r.scope);let s=E(r.note);s&&(i.note=s),t.push(i)}return t.length>0?t:void 0}function Sl(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=E(r.command),i=E(r.path);if(!o&&!i)continue;let s={};o&&(s.command=o),i&&(s.path=st(i));let a=E(r.note);a&&(s.note=a),t.push(s)}return t.length>0?t:void 0}function Tl(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=E(r.path);if(!o)continue;let i={path:st(o)};(r.scope==="project"||r.scope==="global")&&(i.scope=r.scope);let s=E(r.note);s&&(i.note=s),t.push(i)}return t.length>0?t:void 0}function Cl(e){if(e===null||typeof e!="object")return;let t=e,n=E(t.id),r=E(t.title),o=E(t.status),i=o&&Md.has(o)?o:void 0,s=wi(t.order)??Number.NaN,a=typeof t.created_at=="string"?t.created_at:"",c=typeof t.updated_at=="string"?t.updated_at:"";if(!n||!r||!i||!Number.isFinite(s)||!a||!c)return;let d={id:n,order:s,title:r,status:i,created_at:a,updated_at:c};return Ol(d,t),d}function Ol(e,t){let n=[["body","body"],["owner","owner"],["evidence","evidence"],["blocked_reason","blocked_reason"],["superseded_by","superseded_by"]];for(let[i,s]of n){let a=E(t[s]);a&&(e[i]=a)}let r=typeof t.completed_at=="string"?t.completed_at:void 0;r&&r.length>0&&(e.completed_at=r);let o=[["linked_items","linked_items",kl],["files","files",Il],["tests","tests",Sl],["docs","docs",Tl]];for(let[i,s,a]of o){let c=a(t[s]);c&&(e[i]=c)}}function xl(e){if(!Array.isArray(e))return;let t=e.flatMap(n=>{let r=Cl(n);return r?[r]:[]});return t.sort((n,r)=>n.order-r.order),t.length>0?t:void 0}function Rl(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=typeof r.ts=="string"?r.ts:"",i=typeof r.author=="string"?r.author:"",s=E(r.decision);if(!o||!i||!s)continue;let a={ts:o,author:i,decision:s},c=E(r.rationale);c&&(a.rationale=c);let d=E(r.evidence);d&&(a.evidence=d);let l=E(r.step_id);l&&(a.step_id=l),t.push(a)}return t.length>0?t:void 0}function Al(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=typeof r.ts=="string"?r.ts:"",i=typeof r.author=="string"?r.author:"",s=E(r.text);if(!o||!i||!s)continue;let a={ts:o,author:i,text:s},c=E(r.step_id);c&&(a.step_id=c),t.push(a)}return t.length>0?t:void 0}function Dl(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=E(r.text);if(!o)continue;let i={text:o},s=E(r.command);s&&(i.command=s);let a=E(r.expected);a&&(i.expected=a),t.push(i)}return t.length>0?t:void 0}function Nl(e){if(!e)return;let t=Object.entries(e).map(([n,r])=>[n.trim(),r.trim()]).filter(([n,r])=>n.length>0&&r.length>0).sort((n,r)=>n[0].localeCompare(r[0]));if(t.length!==0)return Object.fromEntries(t)}function it(e){let t=0;for(;t<e.length&&e[t]===`
|
|
6
|
-
`;)t+=1;return e.slice(t).trimEnd()}function
|
|
7
|
-
`,r),i=o===-1?t.length:o,s=t.slice(r,i).replace(/\r$/,""),a=o===-1?i:i+1;if(s.trim()==="---")return{content:t.slice(a).replace(/^\s+/,""),stripped:!0};r=a}return{content:t,stripped:!1}}function
|
|
4
|
+
`).slice(-4096)];for(let h of _){if(h.length===0||h.length>262144)continue;let I=Zc(h);if(p.model??=I.model,p.version??=I.version,p.model&&p.version)break}let g=Object.freeze(p);return Br.clear(),Br.set(s,g),g[e]}finally{q.closeSync(o)}}catch{return}}function nd(e,t){let n=0,r=(o,i)=>{if(i>4||n>=512)return;let s;try{s=q.readdirSync(o,{withFileTypes:!0}).sort((a,c)=>c.name.localeCompare(a.name))}catch{return}for(let a of s){if(n+=1,n>512)return;let c=ze.join(o,a.name);if(a.isFile()&&a.name.endsWith(`-${t}.jsonl`))return c;if(a.isDirectory()){let d=r(c,i+1);if(d)return d}}};return r(e,0)}function rd(e){if(e<=Wr)return[{offset:0,length:e}];let t=Math.floor(Wr/2);return[{offset:e-t,length:t},{offset:0,length:t}]}function od(e,t){if(t.length===0||t.length>262144)return;let n;try{n=JSON.parse(t)}catch{return}if(typeof n!="object"||n===null||Array.isArray(n))return;let r=n;if(r.type!=="turn_context")return;let o=typeof r.payload=="object"&&r.payload!==null?r.payload:void 0;e.model??=P(o?.model)?.slice(0,256),e.effort??=P(o?.effort)?.slice(0,256)}function id(e,t){let n={},r=4096;for(let o of rd(t)){let i=Buffer.alloc(o.length);q.readSync(e,i,0,o.length,o.offset);let s=i.toString("utf8").split(`
|
|
5
|
+
`).reverse().slice(0,r);r-=s.length;for(let a of s)if(od(n,a),n.model&&n.effort)break;if(n.model&&n.effort||r<=0)break}return n}function sd(e,t,n){let r=P(n.CODEX_THREAD_ID);if(!r||!/^[A-Za-z0-9_-]{1,128}$/u.test(r))return;let o=ze.join(t.home_dir??ns.homedir(),".codex","sessions"),i=`${o}\0${r}`,s=pn.get(i);if(s)return s[e];let a=nd(o,r);if(!a){pn.set(i,Zi);return}try{let c=q.openSync(a,"r");try{let d=q.fstatSync(c).size,l=id(c,d);return pn.set(i,l),l[e]}finally{q.closeSync(c)}}catch{pn.set(i,Zi);return}}function ad(e,t,n,r){let o=gn.getStore();if(!(t.probes_enabled!==!1&&o?.probesEnabled!==!1&&!["0","false","off"].includes(P(n.PM_AGENT_PROBES)?.toLowerCase()??"")))return;let s=r?.provenance_resolvers[e];if(s==="claude_session_file")return td(e,t,n);if(s==="codex_session_file")return sd(e,t,n);if(s==="ai_agent_version"){let a=P(n.AI_AGENT);return!a||!r||!hn(a,r.harness)?void 0:/(?:^|[@/\s])v?(\d+\.\d+(?:\.\d+)?(?:[-+][A-Za-z0-9.-]+)?)$/u.exec(a)?.[1]?.slice(0,256)}}function cd(e,t,n,r){if(e==="ai_agent_version"){let o=P(r.AI_AGENT);return o!==void 0&&hn(o,t.harness)?"available":"unavailable"}return e==="codex_session_file"?P(r.CODEX_THREAD_ID)!==void 0?"available":"unavailable":ds(n,r).status}function Yr(e){return e||(rs.getStore()??{env:process.env,argv:process.argv})}function dd(e,t,n,r){let o=e.environment_keys.some(a=>P(t[a])!==void 0),i=e.argv_markers.some(a=>n.some(c=>{let d=c.replaceAll("\\","/");return hn(d.slice(d.lastIndexOf("/")+1),a)})),s=e.client_names.some(a=>r===a||hn(r,a));return o||i||s}function ld(e,t){if(!t)return;let n;if(e==="topic"&&(n=t.topic),e==="role"&&(n=t.role),!!n)return{value:n,source:"inferred",confidence:t.confidence,rule_version:t.rule_version,evidence:t.evidence}}function ud(e){let t=e.find(([n])=>n!==void 0);return t?.[0]?{value:t[0],source:t[1]}:void 0}function fd(e,t,n,r,o,i){let s=`PM_AGENT_${e.toUpperCase().replaceAll("-","_")}`,a=new Set([...qr,...Object.keys(r?.provenance_environment_keys??{})]),c,d,l;a.has(e)&&(c=$e(e,P(n[s])?.slice(0,256)),l=$e(e,as(t.argv??[],e)),d=$e(e,Yc(t.argv??[],e)));let f={...r?.provenance_environment_keys,model:r?.model_environment_keys},m={...t.client_info?.provenance,model:t.client_info?.model},p=Ur(o?.provenance,e),_=$e(e,Xr(n,f[e])),g=$e(e,Ur(m,e)),h=$e(e,Ur(t.provenance,e)),I=ad(e,t,n,r);return ud([[c,"override"],[p,"session"],[l,"argv"],[_,"environment"],[g,"mcp_client"],[h,"host"],[I,"probe"]])??ld(e,i)??(d?{value:d,source:"argv"}:void 0)}function md(e,t){if(!(!e||!t))return qc("sha256").update(`pm-agent-instance:v1\0${e}\0${t}`).digest("hex").slice(0,24)}function _d(e,t,n,r,o){let i=Object.keys(n?.provenance_environment_keys??{}),s=new Set([...qr,...i,...Object.keys(n?.provenance_resolvers??{}),...Object.keys(e.provenance??{}),...Object.keys(e.client_info?.provenance??{}),...Object.keys(r?.provenance??{})]),a={};for(let c of s){let d=fd(c,e,t,n,r,o);d?a[c]=d:n&&(c!=="version"||n.provenance_unavailable_dimensions.includes(c))&&(a[c]=null)}return a}function lh(e){let t=e.map(Se),n=new Map(ss.map(i=>[i.harness,i])),r=new Set;for(let i of t){if(r.has(i.harness)||n.has(i.harness))throw new Error(`Harness signal descriptor collision for "${i.harness}"`);let s=tt.get(i.harness);if(s&&!Xc(s.descriptor,i))throw new Error(`Harness signal descriptor collision for "${i.harness}"`);r.add(i.harness)}for(let i of t){let s=tt.get(i.harness);tt.set(i.harness,{descriptor:i,registrations:(s?.registrations??0)+1})}let o=!0;return()=>{if(o){o=!1;for(let i of t){let s=tt.get(i.harness);!s||s.registrations<=1?tt.delete(i.harness):s.registrations-=1}}}}function pd(e){let t=Se(e.descriptor),n=e.harness.trim().toLowerCase();if(e.contract_version!==1)throw new Error(`Unsupported provenance adapter contract for "${n}": ${e.contract_version}`);if(t.harness!==n)throw new Error(`Provenance adapter harness "${n}" does not match descriptor "${t.harness}".`);let r=P(e.adapter_version)?.slice(0,64);if(!r)throw new Error(`Provenance adapter "${n}" requires a version.`);if(!Number.isSafeInteger(e.priority))throw new Error(`Provenance adapter "${n}" requires an integer priority.`);if(e.probe_policy.network_access!==!1||e.probe_policy.subprocess_access!==!1||e.probe_policy.max_bytes>Wr||e.probe_policy.max_lines>4096)throw new Error(`Provenance adapter "${n}" exceeds the bounded local probe policy.`);return Object.freeze({...e,adapter_version:r,harness:n,descriptor:t,supported_dimensions:Object.freeze(Ie(e.supported_dimensions).map(o=>o.toLowerCase()).sort()),native_sources:Object.freeze([...new Set(e.native_sources)]),probe_policy:Object.freeze({...e.probe_policy}),normalization:Object.freeze({...e.normalization}),...e.waivers?{waivers:Object.freeze(Object.fromEntries(Object.entries(e.waivers).slice(0,32).map(([o,i])=>[o.slice(0,64),i.slice(0,256)])))}:{}})}function uh(){let e=new Map(is.map(t=>[t.harness,t]));for(let{adapter:t}of He.values())e.set(t.harness,t);return Object.freeze([...e.values()].sort((t,n)=>t.harness.localeCompare(n.harness)))}function fh(e){let t=e.map(pd),n=new Map(is.map(i=>[i.harness,i])),r=new Set;for(let i of t){if(r.has(i.harness))throw new Error(`Provenance adapter collision for "${i.harness}".`);let s=n.get(i.harness);if(s&&i.priority<=s.priority)throw new Error(`Provenance adapter override for "${i.harness}" requires priority greater than ${s.priority}.`);let a=He.get(i.harness);if(a&&JSON.stringify(a.adapter)!==JSON.stringify(i))throw new Error(`Provenance adapter collision for "${i.harness}".`);r.add(i.harness)}for(let i of t){let s=He.get(i.harness);He.set(i.harness,{adapter:i,registrations:(s?.registrations??0)+1})}let o=!0;return()=>{if(o){o=!1;for(let i of t){let s=He.get(i.harness);!s||s.registrations<=1?He.delete(i.harness):s.registrations-=1}}}}function mh(e,t){let n=t.trim().slice(0,256),r=n.toLowerCase();if(e==="model"){let o=/^(gpt-\d+(?:\.\d+)?)/u.exec(r)?.[1];o&&(r=o)}else r=r.replaceAll(/[_\s-]+/gu,""),r={minimal:"low",low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max",ultra:"ultra"}[r]??r;return{raw:n,normalized:r,vocabulary:"v1"}}function _h(e,t){return rs.run(e,t)}function ph(e,t,n={}){let r=e.map(Se);return Kr(r),gn.run({descriptors:r,probesEnabled:n.probesEnabled!==!1},t)}function Jr(e){let t=Yr(e),n=t.env??{},r=Kr(t.descriptors),o=[...(t.argv??[]).slice(0,3),...t.process_labels??[]].slice(0,64).map(_=>_.slice(0,512)),i=t.client_info?.name.trim().toLowerCase()??"",s=r.find(_=>dd(_,n,o,i)),a=Dr(t,n),c=[Xr(n,s?.session_environment_keys),P(t.client_info?.session)?.slice(0,256)].find(_=>_!==void 0),d=md(s?.harness,c),l=Qi({cwd:t.cwd??process.cwd(),env:n,key:d}),f=_d(t,n,s,a,l),m=f.model,p=[["harness",s?.harness],["model",m?.value],["model_source",m?.source],["session",c],["instance",d],["provenance",Object.keys(f).length>0?f:void 0],["episode",a.episode]];return Object.fromEntries(p.filter(_=>_[1]!==void 0))}function hd(e){return e==="unavailable"?{status:"unavailable",reason:"harness_unavailable"}:e==="missing"?{status:"unavailable",reason:"resolver_input_missing"}:{status:"failed",reason:"resolver_failed"}}function yd(e,t,n,r,o,i,s){let a=n?.provenance_resolvers[e];if(t.provenance?.[e])return{status:"resolved",...a?{resolver:a}:{},rule_version:"v1"};if(s)return{status:"unavailable",reason:"invalid_value",rule_version:"v1"};if(a){if(!i)return{status:"unavailable",reason:"probes_disabled",resolver:a,rule_version:"v1"};let c=cd(a,n,r,o);return{...hd(c),resolver:a,rule_version:"v1"}}return{status:n?.provenance_unavailable_dimensions.includes(e)?"unavailable":"not_configured",reason:n?.provenance_unavailable_dimensions.includes(e)?"harness_unavailable":"resolver_not_configured",rule_version:"v1"}}function ls(e){let t=Yr(e),n=Jr(t),r=Kr(t.descriptors).find(d=>d.harness===n.harness),o=t.env??{},i=t.probes_enabled!==!1&&gn.getStore()?.probesEnabled!==!1&&!["0","false","off"].includes(P(o.PM_AGENT_PROBES)?.toLowerCase()??""),s=Dr(t,o),a=[o.PM_AGENT_ROLE,s.provenance?.role,Xr(o,r?.provenance_environment_keys.role),t.client_info?.provenance?.role,t.provenance?.role,as(t.argv??[],"role")].some(d=>{let l=P(d)?.slice(0,256);return l!==void 0&&$e("role",l)===void 0}),c=Object.fromEntries(qr.map(d=>[d,yd(d,n,r,t,o,i,d==="role"&&a)]));return{...n,provenance_outcomes:c}}function hh(){return process.env.PM_AUTHOR}function yh(e){e===void 0?delete process.env.PM_AUTHOR:process.env.PM_AUTHOR=e}function gh(e){return Jr(e).harness}function gd(e,t,n){let r=Yr(n),o=Jr(r);if(e!==void 0){let s=P(e);return s?{author:s,source:"asserted",...o}:{author:"unknown",source:"unknown",...o}}if(r.env?.PM_AUTHOR!==void 0){let s=P(r.env.PM_AUTHOR);return s?{author:s,source:"asserted",...o}:{author:"unknown",source:"unknown",...o}}let i=P(t);return i?{author:i,source:"configured",...o}:o.harness?{author:`harness:${o.harness}`,source:"detected",...o}:{author:"unknown",source:"unknown",...o}}function us(e){let t=yn.getStore();return t?.author===e?t.source:e.startsWith("harness:")?"detected":e==="unknown"?"unknown":"asserted"}function fs(e){let t=yn.getStore();return t?.author!==e?e.startsWith("harness:")?{harness:e.slice(8)}:{}:{...t.harness?{harness:t.harness}:{},...t.model?{model:t.model}:{},...t.model_source?{model_source:t.model_source}:{},...t.session?{session:t.session}:{},...t.instance?{instance:t.instance}:{},...t.provenance?{provenance:t.provenance}:{},...t.episode?{episode:t.episode}:{}}}function ms(e){let t=yn.getStore();return t?.author===e&&t.source==="detected"&&t.instance?`${e}#${t.instance}`:e}function _s(e,t){let n=gd(e,t);return yn.enterWith(n),n.author}import{createHash as vd}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]="1e3cba21-c5a4-541a-9841-484cfbb70f4e")}catch{}})();var wh=["sha256","sha512"],bd="sha256",ps="sha256";function Ue(e){if(e===void 0)return bd;if(e==="sha256"||e==="sha512")return e;throw new TypeError(`unsupported_history_hash_algorithm:${String(e)}`)}function Te(e,t){return vd(Ue(t)).update(e,"utf8").digest("hex")}(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]="8ee74259-29b1-5795-9253-9fa0869e4585")}catch{}})();var nt=1,hs=1;function kh(e){let t=e.pm_format_version;return typeof t=="number"&&Number.isInteger(t)&&t>=nt?t:nt}function ys(e){if(!(typeof e!="number"||!Number.isInteger(e)||e<=nt))return e}function wd(e,t=hs){return e<t?"outdated":e>t?"ahead":"current"}function Ih(e,t=hs){let n=[],r=[];for(let o of e){let i=wd(o.version,t);i==="outdated"?n.push(o.ref):i==="ahead"&&r.push(o.ref)}return{outdated:n.sort((o,i)=>o.localeCompare(i)),ahead:r.sort((o,i)=>o.localeCompare(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]="6bb283b8-5c81-562a-926e-e48b83e6ebc8")}catch{}})();var Ed={"in-progress":"in_progress",cancelled:"canceled"};function vn(e,t){if(t){let o=Ni(e,t);if(o)return o}if(typeof e!="string")return;let n=e.trim().toLowerCase();if(!n)return;let r=Ed[n]??n;if(en.includes(r))return r}function rt(e,t){return vn(e,t)??e}function he(e,t){return t.terminal_statuses.has(rt(e,t))}import{encode as Ld}from"@toon-format/toon";import{isDeepStrictEqual as Es}from"node:util";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="42eb2987-269d-5b18-b0fe-5b4334fdb6a0")}catch{}})();var kd=16;function Qr(e){let t=e.trim().replaceAll(/[^A-Za-z0-9]+/g," ").split(/\s+/).filter(o=>o.length>0).map(o=>o.toLowerCase());if(t.length===0)return e;let[n,...r]=t;return`${n}${r.map(o=>`${o.slice(0,1).toUpperCase()}${o.slice(1)}`).join("")}`}function Id(e){return[...new Set([Pi(e),Qr(e.key),Qr(e.cli_flag),...e.cli_aliases.map(t=>Qr(t))])]}function bs(e,t){for(let n of Id(t)){if(!Object.hasOwn(e,n))continue;let r=e[n];if(r!==void 0)return r}}function ws(e){return Array.isArray(e)?e.flatMap(t=>ws(t)).map(t=>t.trim()).filter(t=>t.length>0):typeof e=="string"?e.split(/[,\n|]/).map(t=>t.trim()).filter(t=>t.length>0):e==null?[]:[String(e).trim()].filter(t=>t.length>0)}function gs(e,t){if(typeof e=="boolean")return e;if(typeof e=="number"){if(e===1)return!0;if(e===0)return!1}if(typeof e=="string"){let n=e.trim().toLowerCase();if(n==="true"||n==="1"||n==="yes")return!0;if(n==="false"||n==="0"||n==="no")return!1}throw new v(`${t} must be one of true|false|1|0|yes|no`,b.USAGE)}function vs(e,t){if(typeof e=="number"&&Number.isFinite(e))return e;let n=typeof e=="string"?e.trim():String(e),r=Number(n);if(!Number.isFinite(r))throw new v(`${t} must be a number`,b.USAGE);return r}function Sd(e,t,n){let r=typeof e=="string"?(()=>{try{return JSON.parse(e)}catch{return}})():e;if(n==="array"&&Array.isArray(r)||n==="object"&&typeof r=="object"&&r!==null&&!Array.isArray(r))return r;throw new v(`${t} must be valid JSON ${n}`,b.USAGE)}function Td(e,t){return t===void 0?!0:t==="array"?Array.isArray(e):t==="object"?typeof e=="object"&&e!==null&&!Array.isArray(e):typeof e===t}function Cd(e,t,n){if(t.const!==void 0&&N(e)!==N(t.const))return`${n} must equal ${N(t.const)}`;if(t.enum!==void 0&&!t.enum.some(r=>N(r)===N(e)))return`${n} must be one of ${t.enum.map(r=>N(r)).join("|")}`;if(!Td(e,t.type))return`${n} must match configured type ${String(t.type)}`;if(typeof e=="string"){if(t.min_length!==void 0&&e.length<t.min_length)return`${n} must contain at least ${t.min_length} characters`;if(t.format==="date-time"&&!Wi(e))return`${n} must be an RFC 3339 date-time`}}function Od(e,t,n,r){if(Array.isArray(e)){if(t.min_items!==void 0&&e.length<t.min_items)return`${n} must contain at least ${t.min_items} items`;if(t.items)for(let[o,i]of e.entries()){let s=bn(i,t.items,`${n}[${o}]`,r+1);if(s)return s}}}function xd(e,t,n,r){if(typeof e!="object"||e===null||Array.isArray(e))return;let o=e;for(let i of t.required??[])if(!Object.hasOwn(o,i))return`${n}.${i} is required`;for(let[i,s]of Object.entries(o)){let a=t.properties?.[i];if(!a){if(t.additional_properties===!1)return`${n}.${i} is not allowed`;continue}let c=bn(s,a,`${n}.${i}`,r+1);if(c)return c}}function bn(e,t,n,r=0){if(r>kd)return`${n} value schema exceeds maximum depth`;let o=Cd(e,t,n);if(o)return o;let i=Od(e,t,n,r);if(i)return i;let s=xd(e,t,n,r);if(s)return s;if(!t.one_of)return;let a=0;for(let c of t.one_of)if(bn(e,c,n,r+1)===void 0&&(a+=1,a>1))break;return a===1?void 0:`${n} must match exactly one configured schema variant`}function Be(e,t,n){if(!e.value_schema||t===void 0)return t;let r=bn(t,e.value_schema,n);if(r)throw new v(r,b.USAGE);return t}function Rt(e,t,n){let r=n??`--${e.cli_flag}`;if(e.type==="array"||e.type==="object"){let i=Array.isArray(t)?t[t.length-1]:t;return i===void 0?void 0:Be(e,Sd(i,r,e.type),r)}if(e.repeatable||e.type==="string_array"){let i=ws(t);return e.type==="number"?Be(e,i.map(s=>vs(s,r)),r):e.type==="boolean"?Be(e,i.map(s=>gs(s,r)),r):Be(e,i,r)}let o=Array.isArray(t)?t[t.length-1]:t;if(o!==void 0)return e.type==="number"?Be(e,vs(o,r),r):e.type==="boolean"?Be(e,gs(o,r),r):Be(e,typeof o=="string"?o:String(o),r)}function Rd(e,t){return!e.required&&!e.required_on_create?!1:e.required_types.length===0?!0:t?e.required_types.map(n=>n.toLowerCase()).includes(t.trim().toLowerCase()):!1}function Lh(e,t,n){let r={},o=[];for(let i of t.command_to_fields.get("create")??[]){let s=bs(e,i);if(s===void 0){Rd(i,n)&&o.push(`--${i.cli_flag}`);continue}r[i.metadata_key]=Rt(i,s)}return{values:r,missing_required_flags:[...new Set(o)].sort((i,s)=>i.localeCompare(s))}}function Ph(e,t,n=["update"]){let r={},o=(n??["update"]).flatMap(s=>t.command_to_fields.get(s)??[]),i=new Set;for(let s of o){let a=bs(e,s);a!==void 0&&(i.has(s.metadata_key)||(i.add(s.metadata_key),r[s.metadata_key]=Rt(s,a)))}return r}import{decode as Ad}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]="e48e0cc7-7577-5702-ac17-a4529697444e")}catch{}})();function Zr(e){return{value:Ad(e),usedScalarBracketEscape:!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]="45fa31ba-dea9-56db-b971-84c11e8a1c88")}catch{}})();var Dd=/^\s*(<<<<<<<|=======|>>>>>>>)(?:\s.*)?$/;function Nd(e){if(e.length===0)return[];let t=e.split(/\r?\n/),n=[];for(let r=0;r<t.length;r+=1){let o=t[r]??"",i=o.match(Dd);if(!i)continue;let s=i[1];n.push({line:r+1,marker:s,text:o})}return n}function wn(e){return Nd(e)[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]="24554781-3fa2-53de-98b1-467843de8560")}catch{}})();var ro=new Set(["schema","tracker","auto","none"]),Ss=new Set(["source","isolated","snapshot"]),Pd=new Set(["legacy","local_mutation","local_source_ref","acknowledged","invalid_provenance","foreign_source_ref"]),Md=new Set(["passed","failed","stopped","canceled"]),jd=new Set(yi);function st(e){return e.replaceAll("\\","/")}function Ts(e){for(let t of e)if(t!==0)return t;return 0}function kn(e){for(let[t,n]of Object.entries(e))n===void 0&&delete e[t]}var Cs=["id","title","description","created_at","updated_at"],Fd=new Set(be);function Os(e){if(e?.schema)return{statusRegistry:ln(e.schema),fieldRegistry:Li(e.schema),unknownFieldPolicy:e.schema.unknown_field_policy??"allow",extensionFieldNames:new Set(e.extensionFieldNames??[]),onWarning:e.onWarning}}function $d(e,t){return e.required?e.required_types.length===0?!0:e.required_types.map(n=>n.toLowerCase()).includes(t.trim().toLowerCase()):!1}function Ce(e){let t=e.match(/^([a-z_][\w.]*)\s/u)?.[1];throw new v(`Invalid item metadata: ${e}`,b.GENERIC_FAILURE,{code:"item_document_invalid",reason:e.includes("required")?"missing_required_field":"schema_validation_error",...t?{field:t}:{},required:"Provide an item document whose metadata satisfies the active runtime schema.",why:e})}function Nt(e,t){throw new v(t,b.GENERIC_FAILURE,{code:"item_document_invalid",reason:"syntax_error",format:e,required:`Provide a syntactically valid ${e==="toon"?"TOON":"JSON Markdown"} item document.`,why:"The document could not be decoded far enough to validate item metadata."})}function xs(e){let t=new Set(Fd);for(let n of e.fieldRegistry?.definitions??[])t.add(n.metadata_key);for(let n of e.extensionFieldNames)t.add(n);return t}function S(e,t){e||Ce(t)}function Lt(e,t){return(typeof e!="object"||e===null||Array.isArray(e))&&Ce(t),e}function eo(e,t){let n=e[t];S(typeof n=="string",`${t} must be a string`),S(me(n),`${t} must be a valid ISO timestamp`)}function ks(e,t,n){let r=e[t];r!==void 0&&S(typeof r=="number"&&Number.isInteger(r)&&r>=1,`${n} must be an integer >= 1`)}function oo(e,t,n){let r=e[t];r!==void 0&&(S(typeof r=="string",`${n} must be a string`),S(me(r),`${n} must be a valid ISO timestamp`))}function Hd(e){if(e!==void 0){S(Array.isArray(e),"event.recurrence.by_weekday must be an array");for(let t of e){S(typeof t=="string","event.recurrence.by_weekday entries must be strings");let n=t.trim().toLowerCase();S(on.includes(n),`event.recurrence.by_weekday entries must be one of: ${on.join(", ")}`)}}}function zd(e){if(e!==void 0){S(Array.isArray(e),"event.recurrence.by_month_day must be an array");for(let t of e)S(typeof t=="number"&&Number.isInteger(t)&&t>=1&&t<=31,"event.recurrence.by_month_day entries must be integers 1..31")}}function Ud(e){if(e!==void 0){S(Array.isArray(e),"event.recurrence.exdates must be an array");for(let t of e)S(typeof t=="string","event.recurrence.exdates entries must be strings"),S(me(t),"event.recurrence.exdates entries must be valid ISO timestamps")}}function Bd(e){let t=Lt(e,"event.recurrence must be an object");S(typeof t.freq=="string","event.recurrence.freq must be a string");let n=t.freq.trim().toLowerCase();S(rn.includes(n),`event.recurrence.freq must be one of: ${rn.join(", ")}`),ks(t,"interval","event.recurrence.interval"),ks(t,"count","event.recurrence.count"),oo(t,"until","event.recurrence.until"),Hd(t.by_weekday),zd(t.by_month_day),Ud(t.exdates)}function Wd(e){for(let r of Cs)S(typeof e[r]=="string",`${r} is required and must be a string`);let t=e.type;S(typeof t=="string"&&t.trim().length>0,"type must be a non-empty string");let n=e.pm_format_version;return n!==void 0&&S(typeof n=="number"&&Number.isInteger(n)&&n>=nt,`pm_format_version must be an integer >= ${nt}`),t}function Vd(e,t){let n=e.status;S(typeof n=="string"&&n.trim().length>0,"status must be a non-empty string");let r=t?.statusRegistry,o=vn(n,r),i=r?r.definitions.map(s=>s.id):[...en];S(o!==void 0,`status must be one of: ${i.join(", ")}`)}function qd(e){let t=e.priority;S(typeof t=="number"&&Number.isInteger(t)&&[0,1,2,3,4].includes(t),"priority must be an integer 0..4");let n=e.tags;S(Array.isArray(n),"tags must be an array");for(let r of n)S(typeof r=="string","tags entries must be strings")}function Gd(e){let t=e.confidence;if(t!==void 0){if(typeof t=="number"){S(Number.isInteger(t)&&t>=0&&t<=100,"confidence number value must be an integer 0..100");return}if(typeof t=="string"){let n=t.trim().toLowerCase(),r=n==="med"||nn.includes(n);S(r,`confidence string value must be one of: ${[...nn,"med"].join(", ")}`);return}S(!1,"confidence must be a number or string")}}function Kd(e){let t=e.severity;if(t===void 0)return;typeof t!="string"&&Ce("severity must be a string");let n=t.trim().toLowerCase(),r=n==="med"||tn.includes(n);S(r,`severity value must be one of: ${[...tn,"med"].join(", ")}`)}function Xd(e){e.regression!==void 0&&typeof e.regression!="boolean"&&Ce("regression must be a boolean")}function Yd(e){let t=e.reminders;if(t!==void 0){S(Array.isArray(t),"reminders must be an array");for(let n of t){let r=Lt(n,"reminders entries must be objects");S(typeof r.at=="string","reminder.at must be a string"),S(me(r.at),"reminder.at must be a valid ISO timestamp"),S(typeof r.text=="string","reminder.text must be a string"),S(r.text.trim().length>0,"reminder.text must not be empty")}}}function Jd(e){for(let t of["title","description","location","timezone"])e[t]!==void 0&&(S(typeof e[t]=="string",`event.${t} must be a string`),S(e[t].trim().length>0,`event.${t} must not be empty`))}function Qd(e){e.recurrence!==void 0&&(Bd(e.recurrence),e.recurrence.until!==void 0&&S(_e(e.recurrence.until,e.start_at)>=0,"event.recurrence.until must be at or after event.start_at"))}function Zd(e){let t=Lt(e,"events entries must be objects");S(typeof t.start_at=="string","event.start_at must be a string"),S(me(t.start_at),"event.start_at must be a valid ISO timestamp"),t.end_at!==void 0&&(S(typeof t.end_at=="string","event.end_at must be a string"),S(me(t.end_at),"event.end_at must be a valid ISO timestamp"),S(_e(t.end_at,t.start_at)>0,"event.end_at must be after event.start_at")),Jd(t),t.all_day!==void 0&&S(typeof t.all_day=="boolean","event.all_day must be a boolean"),Qd(t)}function el(e){let t=e.events;if(t!==void 0){S(Array.isArray(t),"events must be an array");for(let n of t)Zd(n)}}function tl(e){for(let t of["source_type","source_owner","design","external_ref"]){let n=e[t];n!==void 0&&S(typeof n=="string",`${t} must be a string`)}}function nl(e){let t=e.type_options;if(t===void 0)return;let n=Lt(t,"type_options must be an object");for(let[r,o]of Object.entries(n))S(r.trim().length>0,"type_options keys must be non-empty"),S(typeof o=="string","type_options values must be strings"),S(o.trim().length>0,"type_options values must be non-empty strings")}function rl(e,t,n){if(n?.fieldRegistry)for(let r of n.fieldRegistry.definitions){let o=e[r.metadata_key];if(o===void 0){$d(r,t)&&Ce(`missing required schema field: ${r.metadata_key}`);continue}try{e[r.metadata_key]=Rt(r,o,`metadata field "${r.metadata_key}"`)}catch(i){Ce(String(i?.message).replace(/^Invalid\s+/u,""))}}}function ol(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let n=xs(t),r=Object.keys(e).filter(o=>!n.has(o)).sort((o,i)=>o.localeCompare(i));r.length!==0&&(t.unknownFieldPolicy==="reject"?Ce(`unknown schema fields are not allowed: ${r.join(", ")}`):t.onWarning?.(`item_unknown_schema_fields:${r.join(",")}`))}function io(e,t){let n=Lt(e,"item metadata must be an object"),r=Wd(n);Vd(n,t),qd(n),Gd(n),Kd(n),Xd(n),eo(n,"created_at"),eo(n,"updated_at"),n.deadline!==void 0&&eo(n,"deadline"),Yd(n),el(n),oo(n,"closed_at","closed_at"),oo(n,"completed_at","completed_at"),tl(n),nl(n),rl(n,r,t),ol(n,t)}function il(e){if(!(!e||e.length===0))return[...e].map(t=>({id:t.id.trim(),kind:t.kind,created_at:t.created_at,author:t.author?.trim()||void 0,source_kind:t.source_kind?.trim()||void 0,author_source:t.author_source})).sort((t,n)=>{let r=_e(t.created_at,n.created_at);if(r!==0)return r;let o=t.id.localeCompare(n.id);if(o!==0)return o;let i=t.kind.localeCompare(n.kind);return i!==0?i:(t.source_kind??"").localeCompare(n.source_kind??"")})}function to(e){if(!(!e||e.length===0))return[...e].sort((t,n)=>{let r=_e(t.created_at,n.created_at);if(r!==0)return r;let o=t.text.localeCompare(n.text);return o!==0?o:t.author.localeCompare(n.author)})}function sl(e){if(!e||e.length===0)return;let t=[...e].map(n=>({at:n.at,text:n.text.trim()})).filter(n=>n.text.length>0).sort((n,r)=>{let o=_e(n.at,r.at);return o!==0?o:n.text.localeCompare(r.text)});return t.length===0?void 0:t}function al(e){if(!e)return;let t=e.freq.trim().toLowerCase();if(!rn.includes(t))return;let n=Array.from(new Set((e.by_weekday??[]).map(s=>s.trim().toLowerCase()).filter(s=>on.includes(s)))).sort((s,a)=>wr(s)-wr(a)),r=Array.from(new Set((e.by_month_day??[]).filter(s=>Number.isInteger(s)&&s>=1&&s<=31).map(s=>s))).sort((s,a)=>s-a),o=Array.from(new Set((e.exdates??[]).map(s=>s.trim()).filter(s=>me(s)))).sort((s,a)=>_e(s,a)),i={freq:t,interval:e.interval!==void 0&&e.interval>1?e.interval:void 0,count:e.count,until:e.until?.trim()||void 0,by_weekday:n.length>0?n:void 0,by_month_day:r.length>0?r:void 0,exdates:o.length>0?o:void 0};for(let[s,a]of Object.entries(i))a===void 0&&delete i[s];return i}function cl(e){return!Array.isArray(e)||e.length===0?void 0:[...e].map(dl).sort(ll)}function dl(e){let t={start_at:e.start_at,end_at:e.end_at||void 0,title:e.title?.trim()||void 0,description:e.description?.trim()||void 0,location:e.location?.trim()||void 0,all_day:e.all_day,timezone:e.timezone?.trim()||void 0,recurrence:al(e.recurrence)};return kn(t),t}function ll(e,t){return Ts([_e(e.start_at,t.start_at),(e.end_at??"").localeCompare(t.end_at??""),(e.title??"").localeCompare(t.title??""),+!!e.all_day-+!!t.all_day,(e.timezone??"").localeCompare(t.timezone??""),(e.location??"").localeCompare(t.location??""),(e.description??"").localeCompare(t.description??""),JSON.stringify(e.recurrence??{}).localeCompare(JSON.stringify(t.recurrence??{}))])}function ul(e){if(!(!e||e.length===0))return e.map(t=>({path:st(t.path),scope:t.scope,note:t.note?.trim()||void 0}))}function fl(e){if(!e||e.length===0)return;let t=e.map(hl).filter(n=>n.run_id.length>0&&n.started_at.length>0&&n.finished_at.length>0&&n.recorded_at.length>0).sort((n,r)=>Ts([_e(n.recorded_at,r.recorded_at),n.run_id.localeCompare(r.run_id),n.kind.localeCompare(r.kind)]));return t.length>0?t:void 0}function ot(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?Math.floor(e):void 0}function ml(e){return typeof e=="number"&&Number.isFinite(e)&&e>=1?Math.floor(e):void 0}function no(e){return typeof e=="string"?e:""}function _l(e){if(!Array.isArray(e))return;let t=e.filter(r=>r!==null&&typeof r=="object"&&typeof r.name=="string"&&r.name.trim().length>0&&typeof r.value=="number"&&Number.isFinite(r.value)&&typeof r.recorded_at=="string"&&r.recorded_at.trim().length>0).map(r=>({name:r.name.trim(),value:r.value,unit:typeof r.unit=="string"&&r.unit.trim()||void 0,threshold:typeof r.threshold=="number"&&Number.isFinite(r.threshold)?r.threshold:void 0,recorded_at:r.recorded_at.trim()})),n=[...new Map(t.map(r=>[r.name,r])).values()].sort((r,o)=>r.name.localeCompare(o.name)).slice(0,32);return n.length>0?n:void 0}function En(e,t){return typeof e=="string"&&t.has(e)?e:void 0}function pl(e){if(!Array.isArray(e))return;let t=e.filter(n=>n&&typeof n.command=="string"&&n.command.trim().length>0).slice(0,32).map(n=>({command:n.command.trim(),requested_pm_context_mode:En(n.requested_pm_context_mode,ro),pm_context_mode:En(n.pm_context_mode,ro),workspace_context_mode:En(n.workspace_context_mode,Ss),trust_reason:En(n.trust_reason,Pd)}));return t.length>0?t:void 0}function hl(e){let t=typeof e.run_id=="string"?e.run_id.trim():"",n=e.kind==="test"||e.kind==="test-all"?e.kind:"test",r=Md.has(e.status)?e.status:"failed",o={run_id:t,kind:n,status:r,started_at:no(e.started_at),finished_at:no(e.finished_at),recorded_at:no(e.recorded_at),attempt:ml(e.attempt),resumed_from:e.resumed_from?.trim()||void 0,passed:ot(e.passed)??0,failed:ot(e.failed)??0,skipped:ot(e.skipped)??0,items:ot(e.items),linked_tests:ot(e.linked_tests),fail_on_skipped_triggered:e.fail_on_skipped_triggered===!0?!0:void 0,measurements:_l(e.measurements),executions:pl(e.executions)};return kn(o),o}function yl(e){if(!(!Array.isArray(e)||e.length===0))return e.map(El)}function At(e){if(!Array.isArray(e))return;let t=[...new Set(e.filter(n=>typeof n=="string").map(n=>n.trim()).filter(n=>n.length>0))].sort((n,r)=>n.localeCompare(r));return t.length>0?t:void 0}function ao(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function co(e){return e==="__proto__"||e==="constructor"||e==="prototype"}function Is(e){if(!ao(e))return;let t=Object.entries(e).map(([n,r])=>[n.trim(),String(r).trim()]).filter(([n,r])=>n.length>0&&!co(n)&&r.length>0).sort(([n],[r])=>n.localeCompare(r));return t.length>0?Object.fromEntries(t):void 0}function gl(e){if(!ao(e))return;let t=Object.entries(e).map(([n,r])=>[n.trim(),Number(r)]).filter(([n,r])=>n.length>0&&!co(n)&&Number.isFinite(r)).sort(([n],[r])=>n.localeCompare(r));return t.length>0?Object.fromEntries(t):void 0}function vl(e){let t=e?.trim().toLowerCase();if(!(!t||!ro.has(t)))return t}function bl(e){let t=e?.trim().toLowerCase();if(!(!t||!Ss.has(t)))return t}function wl(e,t){if(t===!0)return{provenance_invalid:!0};if(e===void 0)return{};if(!ao(e))return{provenance_invalid:!0};let n=E(e.author),r=E(e.created_at),o=e.source_kind;return!n||!r||!me(r)||o!=="local_mutation"&&o!=="merge_union"?{provenance_invalid:!0}:{provenance:{author:n,created_at:r,source_kind:o,source_ref:E(e.source_ref)}}}function El(e){let t={command:e.command?.trim()||void 0,path:e.path?st(e.path):void 0,scope:e.scope,timeout_seconds:typeof e.timeout_seconds=="number"&&Number.isFinite(e.timeout_seconds)&&e.timeout_seconds>0?e.timeout_seconds:void 0,pm_context_mode:vl(e.pm_context_mode),workspace_context_mode:bl(e.workspace_context_mode),...wl(e.provenance,e.provenance_invalid),env_set:Is(e.env_set),env_clear:At(e.env_clear),shared_host_safe:e.shared_host_safe===!0?!0:void 0,assert_stdout_contains:At(e.assert_stdout_contains),assert_stdout_regex:At(e.assert_stdout_regex),assert_stderr_contains:At(e.assert_stderr_contains),assert_stderr_regex:At(e.assert_stderr_regex),assert_stdout_min_lines:ot(e.assert_stdout_min_lines),assert_json_field_equals:Is(e.assert_json_field_equals),assert_json_field_gte:gl(e.assert_json_field_gte),note:e.note?.trim()||void 0};return kn(t),t}function kl(e){if(!(!e||e.length===0))return[...e].map(t=>({path:st(t.path),scope:t.scope,note:t.note?.trim()||void 0})).sort((t,n)=>{let r=t.scope.localeCompare(n.scope);if(r!==0)return r;let o=t.path.localeCompare(n.path);return o!==0?o:(t.note??"").localeCompare(n.note??"")})}function E(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function Il(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=E(r.id),i=E(r.kind);if(!o||!i)continue;let s={id:o,kind:i},a=E(r.note);a&&(s.note=a),r.required_before_step===!0&&(s.required_before_step=!0),t.push(s)}return t.length>0?t:void 0}function Sl(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=E(r.path);if(!o)continue;let i={path:st(o)};(r.scope==="project"||r.scope==="global")&&(i.scope=r.scope);let s=E(r.note);s&&(i.note=s),t.push(i)}return t.length>0?t:void 0}function Tl(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=E(r.command),i=E(r.path);if(!o&&!i)continue;let s={};o&&(s.command=o),i&&(s.path=st(i));let a=E(r.note);a&&(s.note=a),t.push(s)}return t.length>0?t:void 0}function Cl(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=E(r.path);if(!o)continue;let i={path:st(o)};(r.scope==="project"||r.scope==="global")&&(i.scope=r.scope);let s=E(r.note);s&&(i.note=s),t.push(i)}return t.length>0?t:void 0}function Ol(e){if(e===null||typeof e!="object")return;let t=e,n=E(t.id),r=E(t.title),o=E(t.status),i=o&&jd.has(o)?o:void 0,s=Ei(t.order)??Number.NaN,a=typeof t.created_at=="string"?t.created_at:"",c=typeof t.updated_at=="string"?t.updated_at:"";if(!n||!r||!i||!Number.isFinite(s)||!a||!c)return;let d={id:n,order:s,title:r,status:i,created_at:a,updated_at:c};return xl(d,t),d}function xl(e,t){let n=[["body","body"],["owner","owner"],["evidence","evidence"],["blocked_reason","blocked_reason"],["superseded_by","superseded_by"]];for(let[i,s]of n){let a=E(t[s]);a&&(e[i]=a)}let r=typeof t.completed_at=="string"?t.completed_at:void 0;r&&r.length>0&&(e.completed_at=r);let o=[["linked_items","linked_items",Il],["files","files",Sl],["tests","tests",Tl],["docs","docs",Cl]];for(let[i,s,a]of o){let c=a(t[s]);c&&(e[i]=c)}}function Rl(e){if(!Array.isArray(e))return;let t=e.flatMap(n=>{let r=Ol(n);return r?[r]:[]});return t.sort((n,r)=>n.order-r.order),t.length>0?t:void 0}function Al(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=typeof r.ts=="string"?r.ts:"",i=typeof r.author=="string"?r.author:"",s=E(r.decision);if(!o||!i||!s)continue;let a={ts:o,author:i,decision:s},c=E(r.rationale);c&&(a.rationale=c);let d=E(r.evidence);d&&(a.evidence=d);let l=E(r.step_id);l&&(a.step_id=l),t.push(a)}return t.length>0?t:void 0}function Dl(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=typeof r.ts=="string"?r.ts:"",i=typeof r.author=="string"?r.author:"",s=E(r.text);if(!o||!i||!s)continue;let a={ts:o,author:i,text:s},c=E(r.step_id);c&&(a.step_id=c),t.push(a)}return t.length>0?t:void 0}function Nl(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=E(r.text);if(!o)continue;let i={text:o},s=E(r.command);s&&(i.command=s);let a=E(r.expected);a&&(i.expected=a),t.push(i)}return t.length>0?t:void 0}function Ll(e){if(!e)return;let t=Object.entries(e).map(([n,r])=>[n.trim(),r.trim()]).filter(([n,r])=>n.length>0&&r.length>0).sort((n,r)=>n[0].localeCompare(r[0]));if(t.length!==0)return Object.fromEntries(t)}function it(e){let t=0;for(;t<e.length&&e[t]===`
|
|
6
|
+
`;)t+=1;return e.slice(t).trimEnd()}function Pl(e){if(e===void 0)return;if(typeof e=="number")return e;let t=e.trim().toLowerCase();if(t==="med")return"medium";if(nn.includes(t))return t}function Ml(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(t==="med")return"medium";if(tn.includes(t))return t}function Dt(e){return e||void 0}function jl(e,t){let n=e,r=t;for(let[o,i]of Object.entries(r))co(o)||Object.prototype.hasOwnProperty.call(n,o)||i===void 0||(n[o]=i)}function Fl(e,t){if(!t?.fieldRegistry)return;let n=e;for(let r of t.fieldRegistry.definitions){let o=n[r.metadata_key];o!==void 0&&(n[r.metadata_key]=Rt(r,o,`metadata field "${r.metadata_key}"`))}}function $l(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let n=xs(t),o=Object.keys(e).filter(i=>!n.has(i)).sort((i,s)=>i.localeCompare(s));o.length>0&&t.unknownFieldPolicy==="reject"&&Ce(`unknown schema fields are not allowed: ${o.join(", ")}`),o.length>0&&t.onWarning?.(`item_unknown_schema_fields:${o.join(",")}`)}function In(e,t={}){let n=Os(t),r=vn(e.status,n?.statusRegistry)??e.status,o=Array.from(new Set((Array.isArray(e.tags)?e.tags:[]).filter(s=>typeof s=="string").map(s=>s.trim().toLowerCase()).filter(Boolean))).sort((s,a)=>s.localeCompare(a)),i={id:e.id,title:e.title,description:e.description,type:e.type,pm_format_version:ys(e.pm_format_version),source_type:E(e.source_type),type_options:Ll(e.type_options),status:r,priority:e.priority,tags:o,created_at:e.created_at,updated_at:e.updated_at,dependencies:il(e.dependencies),comments:to(e.comments),notes:to(e.notes),learnings:to(e.learnings),files:ul(e.files),tests:yl(e.tests),test_runs:fl(e.test_runs),docs:kl(e.docs),deadline:Dt(e.deadline),reminders:sl(e.reminders),events:cl(e.events),closed_at:Dt(e.closed_at),completed_at:Dt(e.completed_at),assignee:E(e.assignee),claim_principal:E(e.claim_principal),source_owner:E(e.source_owner),author:Dt(e.author),estimated_minutes:e.estimated_minutes,acceptance_criteria:e.acceptance_criteria??void 0,design:e.design??void 0,external_ref:e.external_ref??void 0,definition_of_ready:E(e.definition_of_ready),order:e.order,goal:E(e.goal),objective:E(e.objective),value:E(e.value),impact:E(e.impact),outcome:E(e.outcome),why_now:E(e.why_now),parent:E(e.parent),reviewer:E(e.reviewer),risk:e.risk??void 0,confidence:Pl(e.confidence),sprint:E(e.sprint),release:E(e.release),blocked_by:E(e.blocked_by),blocked_reason:E(e.blocked_reason),unblock_note:E(e.unblock_note),reporter:E(e.reporter),severity:Ml(e.severity),environment:E(e.environment),repro_steps:E(e.repro_steps),resolution:E(e.resolution),expected_result:E(e.expected_result),actual_result:E(e.actual_result),affected_version:E(e.affected_version),fixed_version:E(e.fixed_version),component:E(e.component),regression:e.regression,customer_impact:E(e.customer_impact),close_reason:Dt(e.close_reason),plan_mode:E(e.plan_mode),plan_scope:E(e.plan_scope),plan_harness:E(e.plan_harness),plan_resume_context:E(e.plan_resume_context),plan_steps:Rl(e.plan_steps),plan_decisions:Al(e.plan_decisions),plan_discoveries:Dl(e.plan_discoveries),plan_validation:Nl(e.plan_validation)};return jl(i,e),Fl(i,n),$l(i,n),kn(i),i}function Rs(e){return T(e,be)}function Hl(e){let t=0,n=!1,r=!1;for(let o=0;o<e.length;o+=1){let i=e[o];if(n){if(r){r=!1;continue}if(i==="\\"){r=!0;continue}i==='"'&&(n=!1);continue}if(i==='"'){n=!0;continue}if(i==="{"){t+=1;continue}if(i==="}"&&(t-=1,t===0))return o}return-1}function zl(e){if(!e.startsWith("{"))return{frontMatter:"",body:e};let t=Hl(e);if(t<0)return{frontMatter:"",body:e};let n=e.slice(0,t+1),r=e.slice(t+1).replace(/^\r?\n+/,"");return{frontMatter:n,body:r}}function Ul(e){let t=e.charCodeAt(0)===65279?e.slice(1):e,n=t.match(/^[ \t]*---[ \t]*(?:\r?\n|$)/);if(!n)return{content:t,stripped:!1};let r=n[0].length;for(;r<t.length;){let o=t.indexOf(`
|
|
7
|
+
`,r),i=o===-1?t.length:o,s=t.slice(r,i).replace(/\r$/,""),a=o===-1?i:i+1;if(s.trim()==="---")return{content:t.slice(a).replace(/^\s+/,""),stripped:!0};r=a}return{content:t,stripped:!1}}function so(e,t){return In(e,{...t,onWarning:void 0})}function Bl(e,t,n={}){let r=Ul(e);r.stripped&&n.onWarning?.("json_markdown_leading_yaml_frontmatter_ignored");let{frontMatter:o,body:i}=zl(r.content);o||(e.trimStart().startsWith("{")&&Nt("json_markdown","JSON front matter is not valid JSON"),Nt("json_markdown","JSON Markdown item document is missing JSON front matter"));let s;try{s=JSON.parse(o)}catch{Nt("json_markdown","JSON front matter is not valid JSON")}return io(s,t),{metadata:so(s,n),body:it(i)}}function Wl(e,t,n={}){let r;try{r=Zr(e).value}catch{Nt("toon","TOON item document is not valid TOON")}S(typeof r=="object"&&r!==null&&!Array.isArray(r),"TOON item document must be an object");let o=r;if(!Cs.some(a=>Object.prototype.hasOwnProperty.call(o,a))&&!Object.prototype.hasOwnProperty.call(o,"front_matter")&&Nt("toon","TOON input does not have the shape of an item document"),Object.prototype.hasOwnProperty.call(o,"front_matter"))return io(o.front_matter,t),S(o.body===void 0||typeof o.body=="string","TOON item document body must be a string"),{metadata:so(o.front_matter,n),body:it(typeof o.body=="string"?o.body:"")};let{body:i,...s}=o;return S(i===void 0||typeof i=="string","TOON item document body must be a string"),io(s,t),{metadata:so(s,n),body:it(typeof i=="string"?i:"")}}function Vl(e,t={}){let n=In(e.metadata,t),r=Rs(n),o=JSON.stringify(r,null,2),i=it(e.body??"");return i?`${o}
|
|
8
8
|
|
|
9
9
|
${i}
|
|
10
10
|
`:`${o}
|
|
11
|
-
`}function
|
|
12
|
-
`}function Sn(e,t={}){let n=wn(e);if(n)throw new v(`Merge conflict markers detected in item document at line ${n.line} (${n.marker}). Resolve <<<<<<< ======= >>>>>>> markers and retry.`,b.GENERIC_FAILURE,{code:"merge_conflict_markers_detected",reason:"merge_conflict",required:"Resolve merge-conflict markers in the item file before parsing or mutation commands.",why:"Partially merged documents can corrupt item metadata and history integrity.",examples:["git status","git add <resolved-file> && git commit"],nextSteps:["Resolve conflicts, save the file, then rerun the pm command."]});let r=t.format??"toon",o=
|
|
13
|
-
`,{flag:"wx"}),{pendingPath:o,committedPath:z.join(t,`${n}.committed`)}}function
|
|
11
|
+
`}function ql(e,t={}){let n=In(e.metadata,t),r=Rs(n),o=it(e.body??""),i={...r,body:o},s=JSON.parse(JSON.stringify(i)),a=Ld(s),c;try{c=Zr(a).value}catch(d){throw new v("Refusing to persist a TOON item document that the configured decoder cannot read back.",b.GENERIC_FAILURE,{code:"item_document_roundtrip_failed",reason:"encode_decode_error",format:"toon",required:"Upgrade or repair the TOON codec before retrying the mutation; no item bytes were written.",why:d instanceof Error?d.message:String(d)})}if(!Es(c,s)){let d=typeof c=="object"&&c!==null&&!Array.isArray(c)?c:{},l=Object.keys(s).find(f=>!Es(s[f],d[f]))??"document";throw new v(`Refusing to persist a lossy TOON item document; round-trip mismatch at field "${l}".`,b.GENERIC_FAILURE,{code:"item_document_roundtrip_failed",reason:"encode_decode_mismatch",format:"toon",field:l,required:"Upgrade or repair the TOON codec before retrying the mutation; no item bytes were written.",why:"The encoded document decoded to a value different from the canonical item payload."})}return`${a}
|
|
12
|
+
`}function Sn(e,t={}){let n=wn(e);if(n)throw new v(`Merge conflict markers detected in item document at line ${n.line} (${n.marker}). Resolve <<<<<<< ======= >>>>>>> markers and retry.`,b.GENERIC_FAILURE,{code:"merge_conflict_markers_detected",reason:"merge_conflict",required:"Resolve merge-conflict markers in the item file before parsing or mutation commands.",why:"Partially merged documents can corrupt item metadata and history integrity.",examples:["git status","git add <resolved-file> && git commit"],nextSteps:["Resolve conflicts, save the file, then rerun the pm command."]});let r=t.format??"toon",o=Os(t);return r==="toon"?Wl(e,o,t):Bl(e,o,t)}function As(e,t={}){return(t.format??"toon")==="toon"?ql(e,t):Vl(e,t)}function ne(e,t={}){return{metadata:In(e.metadata,t),body:it(e.body??"")}}(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]="bfa74c9e-a366-5b09-a7bc-869226fb6140")}catch{}})();async function Gl(e,t){let n=await we(e);if(n===null)return{raw:n,entries:[]};if(await Ee({path:e,scope:"project"}),n.trim()==="")return{raw:n,entries:[]};let r=wn(n);if(r)throw new v(`History for ${t} contains merge conflict markers at line ${r.line} (${r.marker}). Resolve <<<<<<< ======= >>>>>>> markers and retry.`,b.GENERIC_FAILURE,{code:"history_merge_conflict_markers_detected",required:"Repair the history stream by resolving merge-conflict markers.",why:"Conflict markers break JSONL parsing and invalidate deterministic audit history.",examples:[`pm history ${t}`,`pm restore ${t} <timestamp-or-version>`],nextSteps:["Resolve or restore the history file, then rerun the command."]});let o=[];for(let[i,s]of n.split(/\r?\n/).entries()){let a=s.trim();if(a)try{o.push(JSON.parse(a))}catch{throw new v(`History for ${t} contains invalid JSON at line ${i+1}. Repair or restore the history stream and retry.`,b.GENERIC_FAILURE,{code:"history_json_invalid",nextSteps:[`Run pm history-repair ${t} --salvage-tail --dry-run to check whether only an invalid suffix is damaged.`]})}}return{raw:n,entries:o}}async function ye(e,t){return(await Gl(e,t)).entries}import Eo from"fast-json-patch";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="24b1fb96-5c1e-5669-be21-fdeef4d413a6")}catch{}})();function Ds(e){let t=[],n=e[0]?.op==="history_compact_baseline",r=n?1:void 0,o=!1;for(let[i,s]of e.entries())s.op==="delete"&&(o=!0),s.op==="create"&&(r!==void 0&&t.push({prior_genesis_index:r,repeated_create_index:i+1,sequence:o?"delete_then_create":n?"checkpoint_then_create":"multiple_creates"}),r??=i+1,o=!1);return 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]="82c79093-2a40-5b4c-8d41-637b0ae03c4f")}catch{}})();import Js from"fast-json-patch";import Gs from"node:fs/promises";import Iu from"node:path";import j from"node:fs/promises";import z from"node:path";import{randomUUID as Ls}from"node:crypto";import{createRequire as eu}from"node:module";(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]="9d5caf29-c1f2-5120-bc0b-c64a0bdd19ff")}catch{}})();var Kl=["docs_add","files_add","history:author-acknowledge","history_author_acknowledge","history_compact","history_compact_baseline","history_redact","history_repair","history_salvage","normalize","release","test_run_track","tests_add","tests_remove","update_audit","update_ownership_bypass"],Xl=["append","cancel","claim","close","comment_add","create","learning_add","note_add","reopen"],Yl=new Set(Kl),Jl=new Set(Xl),Ql=new Set(["actual_result","affected_version","assignee","blocked_by","blocked_reason","close_reason","confidence","customer_impact","definition_of_ready","dependencies","docs","environment","expected_result","files","fixed_version","goal","impact","learnings","notes","objective","order","outcome","parent","release","reminders","reporter","repro_steps","resolution","reviewer","severity","sprint","tests","test_runs","unblock_note","updated_at","value","why_now"]);function Zl(e){let t=e.path.split("/").filter(Boolean);return t[0]==="metadata"||t[0]==="front_matter"?t[1]:t[0]==="body"?"body":void 0}function at(e){return e.event_class==="substantive"||e.event_class==="maintenance"?e.event_class:Yl.has(e.op)?"maintenance":Jl.has(e.op)||e.op!=="update"?"substantive":Array.isArray(e.patch)&&e.patch.length>0&&e.patch.every(t=>{let n=Zl(t);return n!==void 0&&Ql.has(n)})?"maintenance":"substantive"}(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]="542d77d0-7bb8-5ed0-a1da-09de33d3767f")}catch{}})();var tu="history-event-index.sqlite",uo="5",nu=8,ru="history-event-index",fo=300,Ps=3e4,ou="history-event-index-invalidation",iu="history-event-index-invalidations",su=fo*2*1e3,Rn=Symbol("history-index-lock-contended"),We=new Map;function Mt(e){return z.join(e,"runtime",tu)}function Dn(e){return z.join(e,"runtime",iu)}async function au(e){let t=await j.readdir(Dn(e)).catch(n=>{if(te(n))return[];throw n});return{pending:t.filter(n=>n.endsWith(".pending")).sort(),committed:t.filter(n=>n.endsWith(".committed")).sort()}}async function lo(e){let t=await au(e);return{pending:(await Promise.all(t.pending.map(async r=>{let o=/^(\d+)-(unknown|\d+)-(\d+)-.+\.pending$/u.exec(r);if(o!==null){let i=o[2];if(await qi({pid:Number(o[1]),...i==="unknown"?{}:{process_start_identity:i}},Math.max(0,Date.now()-Number(o[3])),su))return r}return await j.rm(z.join(Dn(e),r),{force:!0}),null}))).filter(r=>r!==null),committed:t.committed}}async function Pt(e,t){let n=await V(e,ou,fo,`history-event-index-invalidation:${process.pid}`,!1,!1,Ps);try{return await t()}finally{await n()}}async function cu(e){let t=Dn(e);await j.mkdir(t,{recursive:!0});let n=Ls(),r=await Vi(),o=z.join(t,`${r.pid}-${r.process_start_identity??"unknown"}-${Date.now()}-${n}.pending`);return await j.writeFile(o,`pending
|
|
13
|
+
`,{flag:"wx"}),{pendingPath:o,committedPath:z.join(t,`${n}.committed`)}}function du(e,t){return e.length===t.length&&e.every((n,r)=>n===t[r])}async function Tn(e){try{await j.rm(Mt(e),{force:!0})}catch{}}async function Nn(e,t){let n=await V(e,ru,fo,`history-event-index:${process.pid}`,!1,!1,Ps);try{return await t()}finally{await n()}}async function Ms(e){let t=z.join(e,"history"),n=await j.readdir(t,{withFileTypes:!0}).catch(s=>{if(typeof s=="object"&&s!==null&&"code"in s&&s.code==="ENOENT")return[];throw s}),r=We.get(e)??{streams:new Map,ordered_events:[]},o=new Set,i=!We.has(e);for(let s of n.filter(a=>a.isFile()&&a.name.endsWith(".jsonl")).sort((a,c)=>a.name.localeCompare(c.name))){let a=s.name.slice(0,-6);o.add(a);let c=z.join(t,s.name),d=await j.stat(c,{bigint:!0}),l=[d.dev,d.ino,d.size,d.mtimeNs,d.ctimeNs].join(":");if(r.streams.get(a)?.signature===l)continue;let f=await js(c,a);r.streams.set(a,{signature:l,byte_size:Number(d.size),events:f.map((m,p)=>({stream_id:a,stream_offset:p,entry:m}))}),i=!0}for(let s of r.streams.keys())o.has(s)||(r.streams.delete(s),i=!0);if(i&&(r.ordered_events=[...r.streams.values()].flatMap(s=>s.events).sort(mo)),We.delete(e),We.set(e,r),We.size>nu){let s=We.keys().next().value;We.delete(s)}return{events:r.ordered_events,stream_byte_sizes:new Map([...r.streams].map(([s,a])=>[s,a.byte_size]))}}async function js(e,t){let n=await ye(e,t);for(let[r,o]of n.entries())if(typeof o.ts!="string"||!Ze(o.ts.trim()))throw new v(`History for ${t} contains an invalid or sub-millisecond timestamp at line ${r+1}. Repair or restore the history stream and retry.`,b.GENERIC_FAILURE,{code:"history_timestamp_invalid"});return n.map(r=>({...r,ts:new Date(r.ts.trim()).toISOString()}))}async function lu(e){return(await Ms(e)).events}function uu(e){try{return e(["node","sqlite"].join(":")).DatabaseSync??null}catch{return null}}function fu(e,t){let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>=22?uu(t):null}var Cn;function Ln(){return Cn!==void 0||(Cn=fu(process.versions.node,eu(import.meta.url))),Cn}function mu(e){e.exec(`
|
|
14
14
|
PRAGMA journal_mode = OFF;
|
|
15
15
|
PRAGMA synchronous = OFF;
|
|
16
16
|
CREATE TABLE metadata (
|
|
@@ -45,15 +45,15 @@ ${i}
|
|
|
45
45
|
ON events(agent_harness, ts, stream_id, stream_offset);
|
|
46
46
|
CREATE INDEX events_instance_order
|
|
47
47
|
ON events(agent_instance, ts, stream_id, stream_offset);
|
|
48
|
-
`),e.prepare("INSERT INTO metadata(key, value) VALUES ('version', ?)").run(
|
|
48
|
+
`),e.prepare("INSERT INTO metadata(key, value) VALUES ('version', ?)").run(uo)}function Fs(e,t){let n={...t.entry,ts:new Date(t.entry.ts.trim()).toISOString()};e.prepare(`INSERT INTO events(
|
|
49
49
|
stream_id, stream_offset, ts, author, agent_harness,
|
|
50
50
|
agent_instance, op, event_class, entry_json
|
|
51
|
-
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`).run(t.stream_id,t.stream_offset,n.ts,n.author,n.agent_harness??null,n.agent_instance??null,n.op,at(n),JSON.stringify(n))}function
|
|
52
|
-
ON CONFLICT(stream_id) DO UPDATE SET byte_size = excluded.byte_size`).run(t,n)}async function
|
|
51
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`).run(t.stream_id,t.stream_offset,n.ts,n.author,n.agent_harness??null,n.agent_instance??null,n.op,at(n),JSON.stringify(n))}function $s(e){let t=JSON.parse(String(e.entry_json));return typeof t.ts!="string"||!Ze(t.ts.trim())?null:{stream_id:String(e.stream_id),stream_offset:Number(e.stream_offset),entry:{...t,ts:new Date(t.ts.trim()).toISOString()}}}function Hs(e,t,n){e.prepare(`INSERT INTO streams(stream_id, byte_size) VALUES (?, ?)
|
|
52
|
+
ON CONFLICT(stream_id) DO UPDATE SET byte_size = excluded.byte_size`).run(t,n)}async function _u(e){let t=Ln();return t?Nn(e,async()=>{let n;try{n=await Pt(e,()=>lo(e))}catch(s){if(s instanceof v&&s.code==="lock_conflict")return!1;throw s}if(n.pending.length>0)return!1;let r=Mt(e);await j.mkdir(z.dirname(r),{recursive:!0});let o=`${r}.${Ls()}.tmp`,i;try{i=new t(o),mu(i),i.exec("BEGIN IMMEDIATE");let s=await Ms(e);for(let c of s.events)Fs(i,c);for(let[c,d]of s.stream_byte_sizes)Hs(i,c,d);i.exec("COMMIT"),i.close(),i=void 0;let a=await Pt(e,async()=>{let c=await lo(e);return c.pending.length>0||!du(n.committed,c.committed)?!1:(await j.rm(r,{force:!0}),await j.rename(o,r),await Promise.all(n.committed.map(d=>j.rm(z.join(Dn(e),d),{force:!0}))),!0)});return a||await j.rm(o,{force:!0}),a}catch(s){throw i?.close(),await j.rm(o,{force:!0}),s}}):!1}function On(e,t){return!t||t.length===0||t.includes(e)}function mo(e,t){return e.entry.ts.localeCompare(t.entry.ts)||e.stream_id.localeCompare(t.stream_id)||e.stream_offset-t.stream_offset}function An(e){let t=Date.parse(e);return Number.isFinite(t)?new Date(t).toISOString():e}function pu(e,t){if(t.after_ts!==void 0&&t.after_stream_id!==void 0&&t.after_stream_offset!==void 0){if(mo(e,{stream_id:t.after_stream_id,stream_offset:t.after_stream_offset,entry:{...e.entry,ts:An(t.after_ts)}})<=0)return!1}else if(t.since_ts!==void 0&&e.entry.ts<An(t.since_ts))return!1;return!0}function hu(e,t){return!t.harnesses||t.harnesses.length===0||t.harnesses.includes(e.entry.agent_harness??"")?!0:e.entry.agent_harness===void 0&&(t.harness_alias_authors??[]).includes(e.entry.author)}function yu(e,t){return!pu(e,t)||!On(e.entry.op,t.ops)||!On(e.entry.author,t.authors)||!On(e.entry.agent_instance??"",t.agent_instances)||!On(e.stream_id,t.stream_ids)||!hu(e,t)?!1:(t.provenance??[]).every(n=>{let r=e.entry.agent_provenance?.[n.dimension]?.value;return r!==void 0&&n.values.includes(r)})}async function wy(e,t){let n=Math.max(0,Math.floor(t.limit)),r=(await lu(e)).filter(o=>yu(o,t)).slice(0,n+1);return{events:r.slice(0,t.limit),has_more:r.length>t.limit}}async function zs(e,t,n){let r=z.dirname(z.dirname(e)),o=Ln();if(!o){await n();return}let i=!1;try{await Nn(r,async()=>{let s=Mt(r);try{await j.access(s)}catch{await n();return}let a;try{if(a=new o(s),a.prepare("SELECT value FROM metadata WHERE key = 'version'").get()?.value!==uo)throw new TypeError("Unsupported history event index version")}catch{a?.close(),await j.rm(s,{force:!0}),await n();return}try{a.exec("PRAGMA busy_timeout = 5000"),a.exec("BEGIN IMMEDIATE")}catch(d){throw a.close(),d}let c=!1;try{await n(),c=!0,i=!0;let d=z.basename(e,".jsonl"),l=a.prepare("SELECT COALESCE(MAX(stream_offset), -1) + 1 AS value FROM events WHERE stream_id = ?").get(d);Fs(a,{stream_id:d,stream_offset:Number(l.value),entry:t}),Hs(a,d,(await j.stat(e)).size),a.exec("COMMIT"),a.close()}catch(d){if(a?.close(),!c)throw d;await Tn(r)}})}catch(s){if(i){await Tn(r);return}if(!(s instanceof v)||s.code!=="lock_conflict")throw s;let a;try{await Pt(r,async()=>{let c=await cu(r);a=c.pendingPath;try{await n(),i=!0}catch(d){throw await j.rm(c.pendingPath,{force:!0}),d}await j.rename(c.pendingPath,c.committedPath),await Tn(r)})}catch(c){if(i){await Tn(r);try{await j.rm(a,{force:!0})}catch{}return}throw c}}}async function _o(e){await j.rm(Mt(z.dirname(z.dirname(e))),{force:!0})}function xn(e,t,n,r){!r||r.length===0||(e.push(`${n} IN (${r.map(()=>"?").join(", ")})`),t.push(...r))}function gu(e,t,n,r){if(!n||n.length===0)return;let o=n.map(()=>"?").join(", "),i=r??[];if(i.length>0){e.push(`(agent_harness IN (${o}) OR (agent_harness IS NULL AND author IN (${i.map(()=>"?").join(", ")})))`),t.push(...n,...i);return}e.push(`agent_harness IN (${o})`),t.push(...n)}async function Us(e,t){let n=await lo(e);if(n.pending.length>0||n.committed.length>0)return;let r=new t(Mt(e),{readOnly:!0});try{if(r.prepare("SELECT value FROM metadata WHERE key = 'version'").get()?.value===uo)return r}catch(o){throw r.close(),o}r.close()}async function Ey(e,t){let n=Ln();if(!n)return null;let r=[],o=[];if(t.after_ts!==void 0&&t.after_stream_id!==void 0&&t.after_stream_offset!==void 0){r.push("(ts > ? OR (ts = ? AND stream_id > ?) OR (ts = ? AND stream_id = ? AND stream_offset > ?))");let a=An(t.after_ts);o.push(a,a,t.after_stream_id,a,t.after_stream_id,t.after_stream_offset)}else t.since_ts!==void 0&&(r.push("ts >= ?"),o.push(An(t.since_ts)));xn(r,o,"op",t.ops),xn(r,o,"author",t.authors),gu(r,o,t.harnesses,t.harness_alias_authors),xn(r,o,"agent_instance",t.agent_instances);for(let a of t.provenance??[])r.push(`json_extract(entry_json, '$.agent_provenance.${a.dimension}.value') IN (${a.values.map(()=>"?").join(", ")})`),o.push(...a.values);xn(r,o,"stream_id",t.stream_ids);let i=r.length===0?"":` WHERE ${r.join(" AND ")}`,s;try{return await Nn(e,async()=>Pt(e,async()=>{if(s=await Us(e,n),!s)return null;let a=await bu(s,e,t.stream_ids);if(!await Ws(s,e,a))return s.close(),s=void 0,null;let c=s.prepare(`SELECT stream_id, stream_offset, entry_json
|
|
53
53
|
FROM events${i}
|
|
54
54
|
ORDER BY ts, stream_id, stream_offset
|
|
55
|
-
LIMIT ?`).all(...o,Math.max(0,Math.floor(t.limit))+1),d=c.slice(0,t.limit).map(
|
|
56
|
-
WHERE stream_id IN (${o.map(()=>"?").join(", ")})`).all(...o).map(a=>[String(a.stream_id),Number(a.byte_size)])),s=await Promise.all(o.map(a=>
|
|
55
|
+
LIMIT ?`).all(...o,Math.max(0,Math.floor(t.limit))+1),d=c.slice(0,t.limit).map($s);return s.close(),s=void 0,d.includes(null)?null:{events:d,has_more:c.length>t.limit}}))}catch{return s?.close(),null}}function Bs(e,t){let n=Object.create(null);for(let r of e){if(!t.has(r.stream_id)||at(r.entry)!=="substantive")continue;let o=n[r.stream_id];(o===void 0||mo(o,r)<0)&&(n[r.stream_id]=r)}return n}async function vu(e,t){if(z.basename(t)!==t)return null;try{return(await j.stat(z.join(e,"history",`${t}.jsonl`))).size}catch(n){if(te(n))return 0;throw n}}async function Ws(e,t,n){for(let r=0;r<n.length;r+=500){let o=n.slice(r,r+500),i=new Map(e.prepare(`SELECT stream_id, byte_size FROM streams
|
|
56
|
+
WHERE stream_id IN (${o.map(()=>"?").join(", ")})`).all(...o).map(a=>[String(a.stream_id),Number(a.byte_size)])),s=await Promise.all(o.map(a=>vu(t,a)));for(let[a,c]of s.entries()){if(c===null)return!1;let d=o[a],l=i.get(d);if(!(c===0&&l===void 0)&&c!==l)return!1}}return!0}async function bu(e,t,n){if(n&&n.length>0)return[...new Set(n.filter(i=>i.trim().length>0))];let r=e.prepare("SELECT stream_id FROM streams").all().map(i=>String(i.stream_id)),o=await j.readdir(z.join(t,"history"),{withFileTypes:!0}).then(i=>i.filter(s=>s.isFile()&&s.name.endsWith(".jsonl")).map(s=>s.name.slice(0,-6))).catch(i=>{if(te(i))return[];throw i});return[...new Set([...r,...o])]}async function Ns(e,t,n,r){if(!e)return null;let o;try{return await Nn(t,async()=>Pt(t,async()=>{if(o=await Us(t,e),!o)return null;if(!await Ws(o,t,n))return o.close(),o=void 0,null;let i=[];for(let s=0;s<n.length;s+=500){let a=n.slice(s,s+500),d=o.prepare(`SELECT stream_id, stream_offset, entry_json
|
|
57
57
|
FROM (
|
|
58
58
|
SELECT stream_id, stream_offset, entry_json,
|
|
59
59
|
ROW_NUMBER() OVER (
|
|
@@ -64,12 +64,12 @@ ${i}
|
|
|
64
64
|
WHERE event_class = 'substantive'
|
|
65
65
|
AND stream_id IN (${a.map(()=>"?").join(", ")})
|
|
66
66
|
)
|
|
67
|
-
WHERE recency_rank = 1`).all(...a).map(
|
|
68
|
-
`);return}try{await
|
|
69
|
-
`)}}async function Pn(e){let t=ct.dirname(ct.resolve(e));ct.basename(t)==="history"&&await
|
|
70
|
-
`,{encoding:"utf8",flag:"wx"})}catch(r){throw r.code!=="EEXIST"?r:new v("This item identity is reserved by an existing history stream.",b.CONFLICT,{code:"item_identity_reserved",required:"Choose a new item ID or restore the original item from its history.",nextSteps:["Run pm history <id> --full, then pm restore <id> <version> to recover the original item."]})}}async function ut(e,t){let n=await
|
|
67
|
+
WHERE recency_rank = 1`).all(...a).map($s);if(d.includes(null))return o.close(),o=void 0,null;i.push(...d)}return o.close(),o=void 0,Bs(i,r)}))}catch(i){return o?.close(),i instanceof v&&i.code==="lock_conflict"?Rn:null}}async function ky(e,t){let n=[...new Set(t.filter(a=>a.trim().length>0&&z.basename(a)===a))];if(n.length===0)return{};let r=new Set(n),o=Ln(),i=await Ns(o,e,n,r);if(i!==null&&i!==Rn)return i;if(o&&i!==Rn)try{if(await _u(e)){let a=await Ns(o,e,n,r);if(a!==null&&a!==Rn)return a}}catch{}let s=[];return await Promise.all(n.map(async a=>{let c=z.join(e,"history",`${a}.jsonl`);(await js(c,a).catch(l=>{if(l instanceof v&&l.code==="history_timestamp_invalid")return[];throw l})).forEach((l,f)=>{s.push({stream_id:a,stream_offset:f,entry:l})})})),Bs(s,r)}import po from"node:fs/promises";import ct 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]="979782f5-f4ee-5df5-a68a-0c51ab0548ae")}catch{}})();var wu=ct.join("runtime","history-drift-cache.json"),Vs={EINVAL:"invalid_cache_path",EISDIR:"cache_path_is_directory",ENOENT:"invalid_cache_path",ENOTDIR:"invalid_cache_path",ERR_FS_EISDIR:"cache_path_is_directory"};function qs(e){return typeof e=="object"&&e!==null&&"code"in e&&typeof e.code=="string"?e.code:void 0}async function Eu(e){let t=ct.join(e,wu),n=!1,r="invalid_cache_path";try{n=(await po.stat(await po.realpath(e))).isDirectory()}catch(o){let i=qs(o);r=i===void 0?"unknown":Vs[i]??"filesystem_error"}if(!n){xr(`[pm] warning: history_drift_cache_invalidation_failed:${r}
|
|
68
|
+
`);return}try{await po.rm(t,{force:!0})}catch(o){let i=qs(o);if(te(o))return;let s=i===void 0?"unknown":Vs[i]??"filesystem_error";xr(`[pm] warning: history_drift_cache_invalidation_failed:${s}
|
|
69
|
+
`)}}async function Pn(e){let t=ct.dirname(ct.resolve(e));ct.basename(t)==="history"&&await Eu(ct.dirname(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]="8c02324c-231c-54ae-8edb-256ac7e04b50")}catch{}})();var Su={front_matter:{},body:""},Ve=3,jt=[1,2,3],Tu=1,Cu=[1];function Qs(e){return Te(N(e),e.hash_algorithm)}function dt(e){return dn(N(e))}function Gy(e){return dn(N(e))}function vo(e){let t={...e,record_hash_version:Tu},{record_hash:n,...r}=t;return{...t,record_hash:Qs(r)}}function Fn(e){try{Ue(e.hash_algorithm)}catch{return{ok:!1,error:"unsupported_history_hash_algorithm"}}if(e.record_hash_version===void 0&&e.record_hash===void 0)return{ok:!0,coverage:"item_state_only"};if(e.record_hash_version===void 0||e.record_hash===void 0)return{ok:!1,error:"incomplete_record_hash_envelope"};if(!Cu.includes(e.record_hash_version))return{ok:!1,error:"unsupported_record_hash_version"};let{record_hash:t,...n}=e;return Qs(n)===e.record_hash?{ok:!0,coverage:"record_and_item_state"}:{ok:!1,error:"record_hash_mismatch"}}function Ou(e,t){let n={before_hash:e.before_hash,after_hash:e.after_hash,patch_hash:dt(e.patch)};return e.hash_algorithm!==void 0&&(n.hash_algorithm=e.hash_algorithm),e.item_hash_version!==void 0&&(n.item_hash_version=e.item_hash_version),t.retainOriginalPatch&&(n.patch=structuredClone(e.patch)),t.retainPriorRecordHash!==!1&&e.record_hash_version!==void 0&&e.record_hash!==void 0&&(n.record_hash_version=e.record_hash_version,n.record_hash=e.record_hash,n.record=structuredClone(e)),n}function Zs(e,t,n={}){let r=Fn(e);if(!r.ok)throw new TypeError(r.error);let o=dt(e.patch),i=n.retainPriorRecord===!0||e.before_hash!==t.before_hash||e.after_hash!==t.after_hash||e.item_hash_version!==t.item_hash_version||e.hash_algorithm!==t.hash_algorithm||o!==dt(t.patch),s=vo({...t,...i?{reanchor_evidence:[...t.reanchor_evidence??[],Ou(e,n)]}:{}}),a=bo(s);if(!a.ok)throw new TypeError(a.error);return s}function ea(e){return!Array.isArray(e)||Object.keys(e).length!==e.length?!1:e.every(t=>!qe(t)||typeof t.path!="string"?!1:t.op==="move"||t.op==="copy"?typeof t.from=="string":["add","replace","test"].includes(t.op)?Object.hasOwn(t,"value"):t.op==="remove")}function xu(e){return qe(e)&&typeof e.ts=="string"&&typeof e.author=="string"&&typeof e.op=="string"&&typeof e.before_hash=="string"&&typeof e.after_hash=="string"&&ea(e.patch)}function Ru(e){let t=e.record_hash_version!==void 0,n=e.record_hash!==void 0;return t===n}function Au(e){return!qe(e)||!Ru(e)||typeof e.before_hash!="string"||typeof e.after_hash!="string"||typeof e.patch_hash!="string"||!/^[a-f0-9]{64}$/u.test(e.patch_hash)||e.patch!==void 0&&!ea(e.patch)||e.record_hash_version!==void 0&&typeof e.record_hash_version!="number"||e.record_hash!==void 0&&(typeof e.record_hash!="string"||!/^(?:[a-f0-9]{64}|[a-f0-9]{128})$/u.test(e.record_hash))?!1:e.record===void 0||xu(e.record)}function Du(e){try{for(let t of e){if(!Au(t))return!1;Ue(t.hash_algorithm)}return!0}catch{return!1}}function Nu(e){let t=e.record;return t!==void 0&&t.before_hash===e.before_hash&&t.after_hash===e.after_hash&&t.item_hash_version===e.item_hash_version&&t.hash_algorithm===e.hash_algorithm&&t.record_hash_version===e.record_hash_version&&t.record_hash===e.record_hash&&dt(t.patch)===e.patch_hash}function Lu(e,t,n){if(t.patch&&dt(t.patch)!==t.patch_hash)return{kind:"patch_hash_mismatch"};if(t.record)return Nu(t)?{kind:"record",entry:t.record}:{kind:"record_hash_mismatch"};let r=t.patch??e.patch;if(dt(r)!==t.patch_hash)return{kind:"digest_only"};let o={...e,before_hash:t.before_hash,after_hash:t.after_hash,patch:r,hash_algorithm:t.hash_algorithm,...t.item_hash_version===void 0?{}:{item_hash_version:t.item_hash_version},...t.record_hash_version===void 0?{}:{record_hash_version:t.record_hash_version},...t.record_hash===void 0?{}:{record_hash:t.record_hash},...n.length===0?{}:{reanchor_evidence:n}};return t.hash_algorithm===void 0&&delete o.hash_algorithm,n.length===0&&delete o.reanchor_evidence,t.item_hash_version===void 0&&delete o.item_hash_version,t.record_hash_version===void 0||t.record_hash===void 0?{kind:"legacy",entry:o}:{kind:"record",entry:o}}function bo(e){let t=e.reanchor_evidence;if(t===void 0)return{ok:!0,coverage:"none"};if(!Array.isArray(t)||!Du(t))return{ok:!1,error:"rewrite_evidence_invalid"};if(t.length===0)return{ok:!0,coverage:"none"};let n=e;for(let r=t.length-1;r>=0;r-=1){let o=t[r],i=Lu(n,o,t.slice(0,r));if(i.kind==="patch_hash_mismatch")return{ok:!1,error:"rewrite_evidence_patch_hash_mismatch"};if(i.kind==="record_hash_mismatch")return{ok:!1,error:"rewrite_evidence_record_hash_mismatch"};if(i.kind==="digest_only")return{ok:!0,coverage:"digest_only"};if(i.kind==="legacy")return{ok:!0,coverage:"legacy_anchor_only"};if(!Fn(i.entry).ok)return{ok:!1,error:"rewrite_evidence_record_hash_mismatch"};n=i.entry}return{ok:!0,coverage:"complete"}}function Mn(e,t){return(e??"").localeCompare(t??"")}function Ks(e,t){return(e??0)-(t??0)}function Oe(e,t,n){return JSON.stringify(e??n).localeCompare(JSON.stringify(t??n))}function Pu(e,t){return[e.scope.localeCompare(t.scope),Mn(e.path,t.path),Mn(e.command,t.command),Ks(e.timeout_seconds,t.timeout_seconds),Mn(e.pm_context_mode,t.pm_context_mode),+!!e.shared_host_safe-+!!t.shared_host_safe,Oe(e.env_clear,t.env_clear,[]),Oe(e.env_set,t.env_set,{}),Oe(e.assert_stdout_contains,t.assert_stdout_contains,[]),Oe(e.assert_stdout_regex,t.assert_stdout_regex,[]),Oe(e.assert_stderr_contains,t.assert_stderr_contains,[]),Oe(e.assert_stderr_regex,t.assert_stderr_regex,[]),Ks(e.assert_stdout_min_lines,t.assert_stdout_min_lines),Oe(e.assert_json_field_equals,t.assert_json_field_equals,{}),Oe(e.assert_json_field_gte,t.assert_json_field_gte,{}),Mn(e.note,t.note)].find(r=>r!==0)??0}function Mu(e){return!e||e==="/"?[]:e.startsWith("/")?e.slice(1).split("/").map(t=>t.replaceAll("~1","/").replaceAll("~0","~")):[]}function ju(e,t){let n=Mu(t);if(n.length===0)return!0;let r=e;for(let o of n){let i=/^(0|[1-9]\d*)$/.test(o)?Number(o):-1,s=Array.isArray(r)?i>=0&&i<r.length?r[i]:void 0:qe(r)&&Object.prototype.hasOwnProperty.call(r,o)?r[o]:void 0;if(s===void 0)return!1;r=s}return!0}function Fu(e,t){let n=[],r=structuredClone(e);for(let o of t){let i=o.op==="replace"&&!ju(r,o.path)?{...o,op:"add"}:o;n.push(i),r=Js.applyPatch(r,[i],!0,!0).newDocument}return n}function jn(e,t,n=!1){if(!(e.metadata&&Object.keys(e.metadata).length>0))return{front_matter:{},body:e.body??""};let o=ne(e),s=t===1||t===2&&n?{...o.metadata,...o.metadata.dependencies===void 0?{}:{dependencies:o.metadata.dependencies.map(d=>({...d,id:d.id.toLowerCase()}))},...o.metadata.tests===void 0?{}:{tests:o.metadata.tests.map(({workspace_context_mode:d,provenance:l,provenance_invalid:f,...m})=>m)},...o.metadata.test_runs===void 0?{}:{test_runs:o.metadata.test_runs.map(({executions:d,...l})=>l)}}:o.metadata,a=t===1&&s.tests?{...s,tests:[...s.tests].sort(Pu)}:s;return{front_matter:T(a,be),body:o.body}}function Xs(e){if(!(e.metadata&&Object.keys(e.metadata).length>0))return{metadata:{},body:e.body??""};let n=ne(e);return{metadata:T(n.metadata,be),body:n.body}}function Ky(e){return ta(e,Ve)}function ta(e,t,n){if(!jt.some(r=>r===t))throw new TypeError(`unsupported_item_hash_version:${String(t)}`);return Te(N(jn(e,t)),n)}function na(e,t,n){let r=ta(e,t,n);return t===2?[r,Te(N(jn(e,t,!0)),n)]:[r]}function Xy(){return dn(N(Su))}function lt(e){let t=mn(e.op),n=jn(e.before,Ve),r=jn(e.after,Ve),o=Xs(e.before),i=Xs(e.after),s=Js.compare(o,i),a=Fu(o,s),c=fs(e.author),d=c.harness?Object.fromEntries(Object.entries(ls().provenance_outcomes).filter(([p,_])=>_.resolver!==void 0&&(_.status!=="resolved"||c.provenance?.[p]?.source==="probe"))):void 0,l=d===void 0||Object.keys(d).length===0?e.context:{...e.context,agent_provenance_outcomes:d},f=e.hashAlgorithm??ps,m={hash_algorithm:f,ts:e.nowIso,author:e.author,author_source:e.authorSource??us(e.author),...c.harness?{agent_harness:c.harness}:{},...c.model?{agent_model:c.model}:{},...c.model_source?{agent_model_source:c.model_source}:{},...c.instance?{agent_instance:c.instance}:{},...c.provenance?{agent_provenance:c.provenance}:{},...c.episode?{agent_episode:c.episode}:{},op:t,patch:a,before_hash:Te(N(n),f),after_hash:Te(N(r),f),item_hash_version:Ve,message:e.message===void 0?void 0:e.message,...l===void 0?{}:{context:l}};return vo({...m,event_class:at(m)})}function qe(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ho(e){return new v(e,b.GENERIC_FAILURE,{code:"history_timestamp_invalid"})}function ra(e){let t=e.ts.trim();if(t.length===0)return ke();if(!Ze(t))throw ho("History timestamp must be a valid RFC 3339 date-time with millisecond precision");if(t!==e.ts)throw ho("History timestamp must not contain surrounding whitespace");return e.ts}function Ys(e,t){let n=e.ts;if(typeof n=="string"&&n.trim().length>0){if(!Ze(n))throw ho("History timestamp must be a valid RFC 3339 date-time with millisecond precision");return e}return{...e,ts:t}}function yo(e,t){let n=ra(t);if(typeof e=="string"){let r;try{r=JSON.parse(e)}catch{return e}return qe(r)?JSON.stringify(Ys(r,n)):e}return qe(e)?JSON.stringify(Ys(e,n)):JSON.stringify(e)}async function $u(e,t,n){if(n===!1)return!0;if(typeof n=="string"){let s=yo(n,t);return await go(e,s),await Pn(e),await _o(e),!0}if(typeof n!="object"||n===null)return!1;let r=n;if(r.skip===!0)return!0;let o=typeof r.history_path=="string"?r.history_path:e,i=yo(typeof r.line=="string"?r.line:r.entry??t,t);return await go(o,i),await Pn(o),await _o(o),!0}async function go(e,t){let n;try{n=JSON.parse(t)}catch{n=null}if(!qe(n)||n.op!=="create"){await wi(e,t);return}await Gs.mkdir(Iu.dirname(e),{recursive:!0});try{await Gs.writeFile(e,`${t}
|
|
70
|
+
`,{encoding:"utf8",flag:"wx"})}catch(r){throw r.code!=="EEXIST"?r:new v("This item identity is reserved by an existing history stream.",b.CONFLICT,{code:"item_identity_reserved",required:"Choose a new item ID or restore the original item from its history.",nextSteps:["Run pm history <id> --full, then pm restore <id> <version> to recover the original item."]})}}async function ut(e,t){let n=await xt("history_append",{history_path:e,entry:t});if(n.handled&&await $u(e,t,n.result))return;let r=t.ts.trim().length>0?t:{...t,ts:ra(t)},o=vo({...r,hash_algorithm:Ue(r.hash_algorithm),event_class:at(r)});await zs(e,o,async()=>{await go(e,yo(o,o))}),await Pn(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]="8c80fb7b-da68-5bb8-a985-7de2d81aabd7")}catch{}})();var ft={metadata:{},body:""};function $n(){return structuredClone(ft)}function ig(e,t=Ve,n){return wo(e,t,n)[0]}function wo(e,t,n){if(Object.keys(e.metadata).length===0||Array.isArray(e.metadata.tags))try{return na(Hn(e),t,n)}catch{}let r=Te(N({replay_fallback:!0,metadata:e.metadata,body:e.body}),n);return t===2?[r,r]:[r]}function sa(e,t,n,r,o){let i=Ue(r.hash_algorithm),s=`${n}:${i}`,a=o?.before.get(s)??wo(e,n,i),c=wo(t,n,i);return o?.after.set(s,c),{beforeHashes:a,afterHashes:c,pairIndex:a.findIndex((d,l)=>d===r.before_hash&&c[l]===r.after_hash),beforeIndex:a.indexOf(r.before_hash),afterIndex:c.indexOf(r.after_hash)}}function Hn(e){return{metadata:e.metadata,body:e.body}}function sg(e,t={}){return ne(Hn(e),t)}function ag(e){if(!e.metadata||Object.keys(e.metadata).length===0)return{metadata:{},body:e.body??""};let t=ne(e);return{metadata:T(t.metadata,be),body:t.body}}function oa(e){return e==="/front_matter"?"/metadata":e.startsWith("/front_matter/")?`/metadata/${e.slice(14)}`:e}function Hu(e){return typeof e=="object"&&e!==null&&typeof e.op=="string"&&typeof e.path=="string"}function aa(e){return Array.isArray(e)?e.filter(Hu).map(t=>({...t,path:oa(t.path),from:typeof t.from=="string"?oa(t.from):void 0})):[]}function zu(e){return typeof e=="object"&&e!==null&&"metadata"in e&&"body"in e&&typeof e.body=="string"&&typeof e.metadata=="object"&&e.metadata!==null}function Ge(e,t){try{let n=aa(t),r=Eo.applyPatch(structuredClone(e),n,!0,!0).newDocument;return zu(r)?{ok:!0,document:{metadata:r.metadata,body:r.body}}:{ok:!1,error:new Error("history_replay_invalid_document_shape")}}catch(n){return{ok:!1,error:n}}}function Uu(e){return[...new Set(e.map(t=>t.item_hash_version).filter(t=>t!==void 0&&jt.includes(t)))]}function ca(e){return e!==void 0&&!jt.includes(e)}function Bu(e,t){return e!==void 0?[e]:t===void 0?[...jt]:[t]}function da(e){let t=Fn(e);if(!t.ok)return t.error;let n=bo(e);return n.ok?void 0:n.error}function Wu(e,t){let n=da(e);if(n)return{ok:!1,error:n};let r=Ge(t,e.patch);return r.ok?{ok:!0,document:r.document}:{ok:!1,error:"patch_apply_failed"}}function Vu(e,t){let n=da(e);if(n)throw new TypeError(`${n}:entry_${t+1}`)}function qu(e,t,n,r,o){let i=[];for(let s of n){let a=sa(e,t,s,r,o);if(i.push({version:s,match:a}),a.pairIndex>=0)break}return i}function la(e){let t=$n(),n=new Map,r,o,i=Ds(e).map(s=>`verify_failed:duplicate_create:entry_${s.repeated_create_index}:prior_${s.prior_genesis_index}`);for(let s=0;s<e.length;s+=1){let a=e[s],c=a.item_hash_version,d=ca(c);d&&i.push(`verify_failed:unsupported_item_hash_version:${String(c)}:entry_${s+1}`);let l=Wu(a,t);if(!l.ok)return{ok:!1,errors:[...i,`verify_failed:${l.error}:entry_${s+1}`]};if(d){t=l.document,n=new Map,r=void 0,o=void 0;continue}let f=Bu(c,o),m={before:n,after:new Map},p=qu(t,l.document,f,a,m),_=p.find(({match:h})=>h.pairIndex>=0);if(_===void 0){let h=p.some(({match:I})=>I.beforeIndex>=0);return{ok:!1,errors:[...i,`verify_failed:${h?"after":"before"}_hash_mismatch:entry_${s+1}`]}}let g=_.version;t=l.document,n=m.after,r=g,o=c??o}return i.length>0?{ok:!1,errors:i,...r===void 0?{}:{item_hash_version:r}}:{ok:!0,errors:[],...r===void 0?{}:{item_hash_version:r}}}function ge(e){let t=la(e);return{ok:t.ok,errors:t.errors}}function ia(e,t){try{return{ok:!0,document:Eo.applyPatch(structuredClone(e),[t],!0,!1).newDocument}}catch{return{ok:!1}}}function Gu(e,t){let n=structuredClone(e),r=0,o=0;for(let a of aa(t)){let c=ia(n,a);if(c.ok){n=c.document;continue}if(a.op==="replace"){let d=ia(n,{...a,op:"add"});if(d.ok){n=d.document,r+=1;continue}}o+=1}let i=n;return{document:{metadata:typeof i.metadata=="object"&&i.metadata!==null?i.metadata:{},body:typeof i.body=="string"?i.body:e.body},convertedReplaceToAdd:r,skippedOps:o}}function Ku(e){let t=Uu(e);if(t.length===1)return t[0];let n=la(e);return n.ok&&n.item_hash_version!==void 0?n.item_hash_version:t.length===0?1:Ve}function Xu(e,t){let n=Ge(e,t.patch);if(n.ok)return{next:n.document,patch:t.patch,repaired:!1,converted:0,skipped:0};let r=Gu(e,t.patch);return{next:r.document,patch:Eo.compare(e,r.document),repaired:!0,converted:r.convertedReplaceToAdd,skipped:r.skippedOps}}function cg(e,t=Ku(e),n={}){let r=e.findIndex(p=>ca(p.item_hash_version));if(r>=0)throw new TypeError(`unsupported_item_hash_version:${String(e[r]?.item_hash_version)}:entry_${r+1}`);let o=$n(),i=[],s=[],a=0,c=0,d=0,l=0,f,m=t!==1||e.some(p=>p.item_hash_version!==void 0);for(let p=0;p<e.length;p+=1){let _=e[p];Vu(_,p);let g=Xu(o,_),{next:h,patch:I,repaired:R,converted:D,skipped:$}=g;d+=D,l+=$,c+=Number(R);let x=sa(o,h,t,_);f===void 0||n.continuousHashSurface!==!0?f=[x.pairIndex,x.beforeIndex,x.afterIndex,Math.min(f??0,x.beforeHashes.length-1)].find(ve=>ve>=0):f=Math.min(f,x.beforeHashes.length-1);let G=x.beforeHashes[f],W=x.afterHashes[f],Q=G!==_.before_hash||W!==_.after_hash;Q&&(a+=1);let K={..._,patch:I,before_hash:G,after_hash:W};m?K.item_hash_version=t:delete K.item_hash_version;let ee=K.item_hash_version!==_.item_hash_version;(Q||R||ee)&&(K=Zs(_,K,{retainOriginalPatch:R})),i.push(K),s.push({index:p+1,rehashed:Q,patch_repaired:R,converted_replace_to_add:D,skipped_ops:$}),o=h}return{entries:i,finalDocument:o,entriesRehashed:a,entriesPatchRepaired:c,convertedReplaceToAdd:d,skippedOps:l,details:s,itemHashVersion:t,explicitItemHashVersion:m}}function dg(e){return e.length===0?"":`${e.map(t=>JSON.stringify(t)).join(`
|
|
71
71
|
`)}
|
|
72
|
-
`}import Xu from"node:crypto";import zn 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]="1a689c0c-972a-5aff-a15e-ea48fcdf478b")}catch{}})();function ua(e){let t=[],n=!1;for(let r of(e??"").toLowerCase()){let o=r.charCodeAt(0),i=o>=48&&o<=57,s=o>=97&&o<=122;if(!i&&!s){n=t.length>0;continue}n&&(t.push("-"),n=!1),t.push(r)}return t.length===0?"pm-":`${t.join("")}-`}function jt(e){let t=e.trim().toLowerCase();return t.startsWith("#")&&(t=t.slice(1)),t}function Ge(e,t){let n=ua(t),r=jt(e);return r.startsWith(n)?r:`${n}${r}`}function Yu(e){let t=Ui(e);if(t!==void 0)return t;let n="";for(let r=0;r<e;r+=1)n+=Xu.randomInt(0,36).toString(36);return n}async function Ju(e,t,n){let r=[...new Set(Object.values(n))].flatMap(o=>[zn.join(e,o,`${t}.md`),zn.join(e,o,`${t}.toon`)]);return r.push(zn.join(e,"history",`${t}.jsonl`)),(await Promise.all(r.map(o=>Pe(o)))).some(Boolean)}var la=4,fa=12;function Qu(e){return typeof e!="number"||!Number.isFinite(e)?la:Math.min(fa,Math.max(la,Math.trunc(e)))}async function hg(e,t,n={}){let r=Qu(n.tokenLength),o=Math.min(r+6,fa),i=0;for(;r<=o;){for(let s=0;s<32;s+=1){let a=`${ua(t)}${Yu(r)}`;if(!await(n.probeExisting===!1?Pe(zn.join(e,"history",`${a}.jsonl`)):Ju(e,a,n.typeToFolder??Le)))return a;i+=1}r+=1}throw new Error(`Unable to generate unique id after ${i} attempts`)}import ga from"node:fs/promises";import $t from"node:path";import{isUtf8 as nf}from"node:buffer";import Zu from"node:fs/promises";import mt 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]="e2a2001e-b162-599e-b262-76d2223a343c")}catch{}})();var Ft="_workspace";function bo(e){return mt.join(e,"history",`${Ft}.jsonl`)}function ef(e,t){return{metadata:{id:Ft,title:"Workspace state",description:"Audited singleton workspace document state.",type:"Chore",status:"open",priority:2,tags:["workspace-history"],created_at:t,updated_at:t,documents:e},body:""}}function wo(e,t=e.length){let n=$n();for(let r of e.slice(0,t))n=qe(n,r.patch).document;return Hn(n)}function ma(e){return"documents"in e.metadata&&typeof e.metadata.documents=="object"&&e.metadata.documents!==null&&!Array.isArray(e.metadata.documents)?e.metadata.documents:{}}function Eo(e){throw new v(`Workspace history verification failed: ${e.join(", ")}`,b.CONFLICT,{code:"workspace_history_chain_invalid",reason:"workspace_history_chain_verification_failed",verification_errors:[...e],required:"Repair the _workspace history chain before reading, reconciling, restoring, or appending audited singleton state.",why:"Continuing against an unverifiable append-only stream could hide or compound workspace state corruption.",examples:["pm history _workspace --verify --json","pm validate --check-history-drift --fix-hints --json"],nextSteps:["Inspect the exact verification_errors and preserve the corrupt stream as evidence.","Use the history-drift remediation returned by validate before retrying the refused operation."],recovery:{recovery_mode:"compact",next_best_command:"pm history _workspace --verify --json"}})}function tf(e,t){let n=mt.resolve(t),r=mt.relative(e,n).replaceAll("\\","/");if(r.length===0||r===".."||r.startsWith("../")||mt.isAbsolute(r))throw new TypeError("Workspace history document path must stay inside the tracker root");return{documentPath:r,absolutePath:n}}async function xg(e){let t=await Te(bo(e),Ft),n=Oe(t);n.ok||Eo(n.errors);let r=ma(t.length===0?Qe:wo(t)),o=[],i=[],s=[],a=[];for(let c of Object.keys(r).sort()){let d;try{let l=tf(e,mt.resolve(e,c));if(d=await ve(l.absolutePath),d===null){s.push(c);continue}let f=JSON.parse(d);(L(f)===L(r[c])?o:i).push(c)}catch{a.push(c)}}return{ok:i.length===0&&s.length===0&&a.length===0,document_count:Object.keys(r).length,matching_documents:o,mismatched_documents:i,missing_documents:s,unreadable_documents:a}}async function _a(e){let t=bo(e.pmRoot),n=await Te(t,Ft),r=Oe(n);r.ok||Eo(r.errors);let o=e.idempotencyKey===void 0?void 0:n.find(f=>f.op===`${e.op}:${e.idempotencyKey}`);if(o)return{entry:o,historyPath:t};let i=we(),s=n.length===0?Qe:wo(n),a=ma(s),c=a[e.documentPath];if(c!==void 0&&L(c)!==L(e.before))throw new v(`Workspace history state for "${e.documentPath}" changed outside the audited mutation path.`,b.CONFLICT,{code:"workspace_history_state_conflict",reason:"out_of_band_workspace_state",required:"Reconcile the singleton document with its matching _workspace history state before retrying the mutation.",why:"Accepting the write would make the append-only audit stream describe a state that was not actually observed.",examples:["pm history _workspace --verify","pm validate --check-history-drift --fix-hints"],nextSteps:["Review the version-control change that altered the singleton and preserve the intended document plus its matching workspace history.","Rerun the original mutation only after the on-disk singleton agrees with the latest audited workspace state."],recovery:{recovery_mode:"compact",next_best_command:"pm history _workspace --verify"}});let d=ef({...a,[e.documentPath]:e.after},n.length===0?i:s.metadata.created_at),l=lt({nowIso:i,author:e.author,op:e.idempotencyKey===void 0?e.op:`${e.op}:${e.idempotencyKey}`,before:s,after:d,message:e.message});return await ut(t,l),{entry:l,historyPath:t}}async function Rg(e){let t=await V(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await _a(e)}finally{await t()}}async function pa(e){let t=await V(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{let n=bo(e.pmRoot),r=await Te(n,Ft),o=Oe(r);o.ok||Eo(o.errors);let i=r.length===0?Qe:wo(r),s=lt({nowIso:we(),author:e.author,op:e.op,before:i,after:i,message:e.message,context:e.context});return await ut(n,s),{entry:s,historyPath:n}}finally{await t()}}async function ha(e,t){if(t===e.raw)return!1;let n=t===null?null:JSON.parse(t),r=JSON.parse(e.raw);await X(e.filePath,e.raw);try{(t!==null||e.recordCreation!==!1)&&await _a({pmRoot:e.pmRoot,documentPath:mt.relative(e.pmRoot,e.filePath).replaceAll("\\","/"),before:n,after:r,op:e.op,author:e.author,lockTtlSeconds:e.lockTtlSeconds,lockWaitMs:e.lockWaitMs,message:e.message})}catch(o){throw t===null?await Zu.rm(e.filePath,{force:!0}):await X(e.filePath,t),o}return!0}async function ya(e){let t=await V(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{let n=await ve(e.filePath),r=await e.mutate(n);return{changed:await ha({...e,raw:r.raw},n),result:r.result}}finally{await t()}}async function Ag(e){let t=await V(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await ha(e,await ve(e.filePath))}finally{await t()}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="05666dcc-3273-5416-b6b4-54b4ff1368be")}catch{}})();var rf=1048576,of=4194304;async function va(e,t){let n=$t.dirname(e);for(;n!==$t.parse(e).root;){let o=await ga.stat(n).catch(i=>{if(te(i))return null;throw i});if(o!==null){if(!o.isDirectory())throw new v("Workflow policy storage ancestor must be a directory.",b.CONFLICT,{code:"workflow_policy_input_unreadable",nextSteps:["Restore the policy or approval history directory before retrying."]});break}n=$t.dirname(n)}let r=await ga.open(e,"r").catch(o=>{if(te(o))return null;throw o});if(r===null)return null;try{let o=(await r.stat()).size,i=Buffer.alloc(Math.min(t,o)+1),s=0;for(;s<i.length;){let a=await r.read(i,s,i.length-s,s);if(a.bytesRead===0)break;s+=a.bytesRead}if(s===i.length||!nf(i.subarray(0,s)))throw new v("Workflow policy input exceeds its byte bound or is not valid UTF-8.",b.CONFLICT,{code:"workflow_policy_input_unreadable",nextSteps:["Inspect the policy and approval history; reduce the declaration or use verified history compaction before retrying."]});return i.toString("utf8",0,s)}finally{await r.close()}}function sf(e){if(e===null)return{version:1,enforcement:"advise",policies:[]};let t;try{t=JSON.parse(e)}catch{throw new v("schema/policies.json must contain valid JSON.",b.CONFLICT,{code:"workflow_policy_registry_invalid",nextSteps:["Restore valid policy JSON before retrying the mutation."]})}return Pi(t)}async function af(e){return sf(await va($t.join(e,"schema","policies.json"),rf))}async function cf(e,t){let n=await va(le(e,t),of);if(n===null)return[];let r;try{if(r=n.split(/\r?\n/).filter(o=>o.trim()).map(o=>JSON.parse(o)),!Oe(r).ok)throw new Error("invalid chain")}catch{throw new v("Approval evidence requires a valid item history chain.",b.CONFLICT,{code:"workflow_policy_approval_history_invalid",nextSteps:[`Run pm history ${t} --verify before recording or using an approval.`]})}return r.flatMap(o=>{let i=o.context?.workflow_approval;if(o.op!=="policy_approve"||o.record_hash_version!==1||typeof o.record_hash!="string"||typeof i!="object"||i===null)return[];let s=i;return typeof s.policy_fingerprint!="string"||typeof s.content_fingerprint!="string"?[]:[{policy_fingerprint:s.policy_fingerprint,content_fingerprint:s.content_fingerprint,author:o.author}]})}async function df(e,t,n){let r=n.before?.status!==n.after?.status&&t.policies.some(s=>s.rule.kind==="approval"&&Mi(s,n)),o=n.before?.id??n.after?.id,i=r&&typeof o=="string"?await cf(e,o):[];return ji(t,{...n,approvals:i})}async function ko(e){let t=await af(e.pmRoot),n=await df(e.pmRoot,t,{operation:e.operation,author:e.author,before:e.before?{...e.before.metadata,body:e.before.body}:null,after:e.after?{...e.after.metadata,body:e.after.body}:null});if(n.allowed)return n;let r=n.decisions.filter(l=>!l.satisfied&&l.effect==="refuse");if(!e.dryRun)try{await pa({pmRoot:e.pmRoot,op:"policy_refused",author:e.author,context:{item_id:e.after?.metadata.id??e.before?.metadata.id,operation:e.operation,workflow_policies:n.decisions},message:"Workflow policy refused a proposed item mutation.",lockTtlSeconds:e.settings.locks.ttl_seconds,lockWaitMs:e.settings.locks.wait_ms})}catch(l){let f=new v("Workflow policy refusal could not be recorded in workspace history.",b.CONFLICT,{code:"workflow_policy_audit_failed",nextSteps:["Resolve workspace-history lock or storage failures, then retry the refused mutation; no item changes were written."]});throw f.cause=l,f}let o=r.slice(0,3).map(l=>({policy_id:l.policy_id,rule:l.rule,description:t.policies.find(f=>f.id===l.policy_id).description,missing_fields:l.missing_fields})),i=[...new Set(o.flatMap(l=>l.missing_fields))],s=o.map(l=>`${l.policy_id} (${l.rule})`).join(", "),a=r.length>3?` and ${r.length-3} more`:"",c=e.after?.metadata.id??e.before.metadata.id,d=i.map(l=>{if(e.before===null)return`Supply ${l} in the original ${e.operation} request, then retry; the item was not created.`;let f=Ii("update",l);return f===void 0?`Supply ${l} using its declared SDK or package mutation contract, then retry.`:Me(["update",c,Si("update",f),`<${l}>`,"--pm-path",$t.resolve(e.pmRoot)])});throw new v(`Workflow policy refused ${e.operation}: ${s}${a}.${i.length?` Missing: ${i.join(", ")}.`:""}`,b.CONFLICT,{code:"workflow_policy_refused",reason:o.map(l=>l.policy_id).join(","),policy_violations:o,policy_violation_count:r.length,required:i.length?`Supply missing fields: ${i.join(", ")}, then retry the refused mutation.`:"Satisfy the declared workflow policy before retrying.",why:o.map(l=>l.description).filter(Boolean).join(" ")||void 0,recovery:{missing_required_fields:i},nextSteps:[...d,...new Set(r.slice(0,3).filter(l=>l.missing_fields.length===0).map(l=>l.remediation)),...r.length>3?[`Inspect all policies with pm schema policies before retrying ${e.operation}.`]:[]]})}import{AsyncLocalStorage as lf}from"node:async_hooks";import{channel as uf}from"node:diagnostics_channel";(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]="118ec110-fa84-550b-a0a8-4def314270b6")}catch{}})();var Io=new lf,So=uf("@unbrained/pm-cli/item-metadata-enumeration/v1");function Un(e){So.publish(e)}async function Kg(e){let t={enumeration_calls:0,metadata_rows:0},n=r=>{Io.getStore()?.includes(t)&&(t.enumeration_calls+=1,t.metadata_rows+=r)};So.subscribe(n);try{return{result:await Io.run([...Io.getStore()??[],t],e),work:{...t}}}finally{So.unsubscribe(n)}}import Ke from"node:fs/promises";import wa from"node:path";import{randomUUID as ff}from"node:crypto";import{createRequire as mf}from"node:module";(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]="e9e67ec7-10cb-57b0-a094-ae52b01a0f8a")}catch{}})();var _f="metadata-query-index.sqlite",Ht="5";function pf(e){try{return e(["node","sqlite"].join(":")).DatabaseSync??null}catch{return null}}var Bn;function hf(e,t){let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>=22?pf(t):null}function zt(){return Bn!==void 0||(Bn=hf(process.versions.node,mf(import.meta.url))),Bn}function ba(e,t){return Math.max(0,Math.floor(e===void 0?t:e))}function _t(e){return wa.join(e,"runtime",_f)}function yf(e){e.exec(`
|
|
72
|
+
`}import Yu from"node:crypto";import zn 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]="1a689c0c-972a-5aff-a15e-ea48fcdf478b")}catch{}})();function fa(e){let t=[],n=!1;for(let r of(e??"").toLowerCase()){let o=r.charCodeAt(0),i=o>=48&&o<=57,s=o>=97&&o<=122;if(!i&&!s){n=t.length>0;continue}n&&(t.push("-"),n=!1),t.push(r)}return t.length===0?"pm-":`${t.join("")}-`}function Ft(e){let t=e.trim().toLowerCase();return t.startsWith("#")&&(t=t.slice(1)),t}function Ke(e,t){let n=fa(t),r=Ft(e);return r.startsWith(n)?r:`${n}${r}`}function Ju(e){let t=Bi(e);if(t!==void 0)return t;let n="";for(let r=0;r<e;r+=1)n+=Yu.randomInt(0,36).toString(36);return n}async function Qu(e,t,n){let r=[...new Set(Object.values(n))].flatMap(o=>[zn.join(e,o,`${t}.md`),zn.join(e,o,`${t}.toon`)]);return r.push(zn.join(e,"history",`${t}.jsonl`)),(await Promise.all(r.map(o=>Me(o)))).some(Boolean)}var ua=4,ma=12;function Zu(e){return typeof e!="number"||!Number.isFinite(e)?ua:Math.min(ma,Math.max(ua,Math.trunc(e)))}async function hg(e,t,n={}){let r=Zu(n.tokenLength),o=Math.min(r+6,ma),i=0;for(;r<=o;){for(let s=0;s<32;s+=1){let a=`${fa(t)}${Ju(r)}`;if(!await(n.probeExisting===!1?Me(zn.join(e,"history",`${a}.jsonl`)):Qu(e,a,n.typeToFolder??Le)))return a;i+=1}r+=1}throw new Error(`Unable to generate unique id after ${i} attempts`)}import va from"node:fs/promises";import $t from"node:path";import{isUtf8 as nf}from"node:buffer";import ef from"node:fs/promises";import mt 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]="b6012be6-13b6-54b9-91ed-c9093423b1c2")}catch{}})();var _t="_workspace";function Un(e){return mt.join(e,"history",`${_t}.jsonl`)}function tf(e,t){return{metadata:{id:_t,title:"Workspace state",description:"Audited singleton workspace document state.",type:"Chore",status:"open",priority:2,tags:["workspace-history"],created_at:t,updated_at:t,documents:e},body:""}}function Bn(e,t=e.length){let n=$n();for(let r of e.slice(0,t))n=Ge(n,r.patch).document;return Hn(n)}function ko(e){return"documents"in e.metadata&&typeof e.metadata.documents=="object"&&e.metadata.documents!==null&&!Array.isArray(e.metadata.documents)?e.metadata.documents:{}}function Wn(e){throw new v(`Workspace history verification failed: ${e.join(", ")}`,b.CONFLICT,{code:"workspace_history_chain_invalid",reason:"workspace_history_chain_verification_failed",verification_errors:[...e],required:"Repair the _workspace history chain before reading, reconciling, restoring, or appending audited singleton state.",why:"Continuing against an unverifiable append-only stream could hide or compound workspace state corruption.",examples:["pm history _workspace --verify --json","pm validate --check-history-drift --fix-hints --json"],nextSteps:["Inspect the exact verification_errors and preserve the corrupt stream as evidence.","Use the history-drift remediation returned by validate before retrying the refused operation."],recovery:{recovery_mode:"compact",next_best_command:"pm history _workspace --verify --json"}})}function _a(e,t){let n=mt.resolve(t),r=mt.relative(e,n).replaceAll("\\","/");if(r.length===0||r===".."||r.startsWith("../")||mt.isAbsolute(r))throw new TypeError("Workspace history document path must stay inside the tracker root");return{documentPath:r,absolutePath:n}}async function xg(e){let t=await ye(Un(e),_t),n=ge(t);n.ok||Wn(n.errors);let r=ko(t.length===0?Pe:Bn(t)),o=[],i=[],s=[],a=[];for(let c of Object.keys(r).sort()){let d;try{let l=_a(e,mt.resolve(e,c));if(d=await we(l.absolutePath),d===null){s.push(c);continue}let f=JSON.parse(d);(N(f)===N(r[c])?o:i).push(c)}catch{a.push(c)}}return{ok:i.length===0&&s.length===0&&a.length===0,document_count:Object.keys(r).length,matching_documents:o,mismatched_documents:i,missing_documents:s,unreadable_documents:a}}async function pa(e){let t=Un(e.pmRoot),n=await ye(t,_t),r=ge(n);r.ok||Wn(r.errors);let o=e.idempotencyKey===void 0?void 0:n.find(f=>f.op===`${e.op}:${e.idempotencyKey}`);if(o)return{entry:o,historyPath:t};let i=ke(),s=n.length===0?Pe:Bn(n),a=ko(s),c=a[e.documentPath];if(c!==void 0&&N(c)!==N(e.before))throw new v(`Workspace history state for "${e.documentPath}" changed outside the audited mutation path.`,b.CONFLICT,{code:"workspace_history_state_conflict",reason:"out_of_band_workspace_state",required:"Reconcile the singleton document with its matching _workspace history state before retrying the mutation.",why:"Accepting the write would make the append-only audit stream describe a state that was not actually observed.",examples:["pm history _workspace --verify","pm validate --check-history-drift --fix-hints"],nextSteps:["Review the version-control change that altered the singleton and preserve the intended document plus its matching workspace history.","Rerun the original mutation only after the on-disk singleton agrees with the latest audited workspace state."],recovery:{recovery_mode:"compact",next_best_command:"pm history _workspace --verify"}});let d=tf({...a,[e.documentPath]:e.after},n.length===0?i:s.metadata.created_at),l=lt({nowIso:i,author:e.author,op:e.idempotencyKey===void 0?e.op:`${e.op}:${e.idempotencyKey}`,before:s,after:d,message:e.message});return await ut(t,l),{entry:l,historyPath:t}}async function Rg(e){let t=await V(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await pa(e)}finally{await t()}}async function ha(e){let t=await V(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{let n=Un(e.pmRoot),r=await ye(n,_t),o=ge(r);o.ok||Wn(o.errors);let i=r.length===0?Pe:Bn(r),s=lt({nowIso:ke(),author:e.author,op:e.op,before:i,after:i,message:e.message,context:e.context});return await ut(n,s),{entry:s,historyPath:n}}finally{await t()}}async function ya(e,t){if(t===e.raw)return!1;let n=t===null?null:JSON.parse(t),r=JSON.parse(e.raw);await X(e.filePath,e.raw);try{(t!==null||e.recordCreation!==!1)&&await pa({pmRoot:e.pmRoot,documentPath:mt.relative(e.pmRoot,e.filePath).replaceAll("\\","/"),before:n,after:r,op:e.op,idempotencyKey:e.idempotencyKey,author:e.author,lockTtlSeconds:e.lockTtlSeconds,lockWaitMs:e.lockWaitMs,message:e.message})}catch(o){throw t===null?await ef.rm(e.filePath,{force:!0}):await X(e.filePath,t),o}return!0}async function ga(e){let{documentPath:t}=_a(e.pmRoot,e.filePath),n=await V(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{let r=await we(e.filePath);if(e.dryRun===!0||e.idempotencyKey!==void 0){let i=await ye(Un(e.pmRoot),_t),s=ge(i);s.ok||Wn(s.errors);let a=ko(i.length===0?Pe:Bn(i))[t];if(a!==void 0&&N(a)!==N(r===null?null:JSON.parse(r)))throw new v(`Workspace history state for "${t}" changed outside the audited mutation path.`,b.CONFLICT,{code:"workspace_history_state_conflict"});if(e.idempotencyKey!==void 0&&i.some(c=>c.op===`${e.op}:${e.idempotencyKey}`))return{changed:!1,result:void 0,replayed:!0}}let o=await e.mutate(r);return JSON.parse(o.raw),e.dryRun===!0?{changed:r!==o.raw,result:o.result}:{changed:await ya({...e,raw:o.raw},r),result:o.result}}finally{await n()}}async function Ag(e){let t=await V(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await ya(e,await we(e.filePath))}finally{await t()}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="05666dcc-3273-5416-b6b4-54b4ff1368be")}catch{}})();var rf=1048576,of=4194304;async function ba(e,t){let n=$t.dirname(e);for(;n!==$t.parse(e).root;){let o=await va.stat(n).catch(i=>{if(te(i))return null;throw i});if(o!==null){if(!o.isDirectory())throw new v("Workflow policy storage ancestor must be a directory.",b.CONFLICT,{code:"workflow_policy_input_unreadable",nextSteps:["Restore the policy or approval history directory before retrying."]});break}n=$t.dirname(n)}let r=await va.open(e,"r").catch(o=>{if(te(o))return null;throw o});if(r===null)return null;try{let o=(await r.stat()).size,i=Buffer.alloc(Math.min(t,o)+1),s=0;for(;s<i.length;){let a=await r.read(i,s,i.length-s,s);if(a.bytesRead===0)break;s+=a.bytesRead}if(s===i.length||!nf(i.subarray(0,s)))throw new v("Workflow policy input exceeds its byte bound or is not valid UTF-8.",b.CONFLICT,{code:"workflow_policy_input_unreadable",nextSteps:["Inspect the policy and approval history; reduce the declaration or use verified history compaction before retrying."]});return i.toString("utf8",0,s)}finally{await r.close()}}function sf(e){if(e===null)return{version:1,enforcement:"advise",policies:[]};let t;try{t=JSON.parse(e)}catch{throw new v("schema/policies.json must contain valid JSON.",b.CONFLICT,{code:"workflow_policy_registry_invalid",nextSteps:["Restore valid policy JSON before retrying the mutation."]})}return Mi(t)}async function af(e){return sf(await ba($t.join(e,"schema","policies.json"),rf))}async function cf(e,t){let n=await ba(le(e,t),of);if(n===null)return[];let r;try{if(r=n.split(/\r?\n/).filter(o=>o.trim()).map(o=>JSON.parse(o)),!ge(r).ok)throw new Error("invalid chain")}catch{throw new v("Approval evidence requires a valid item history chain.",b.CONFLICT,{code:"workflow_policy_approval_history_invalid",nextSteps:[`Run pm history ${t} --verify before recording or using an approval.`]})}return r.flatMap(o=>{let i=o.context?.workflow_approval;if(o.op!=="policy_approve"||o.record_hash_version!==1||typeof o.record_hash!="string"||typeof i!="object"||i===null)return[];let s=i;return typeof s.policy_fingerprint!="string"||typeof s.content_fingerprint!="string"?[]:[{policy_fingerprint:s.policy_fingerprint,content_fingerprint:s.content_fingerprint,author:o.author}]})}async function df(e,t,n){let r=n.before?.status!==n.after?.status&&t.policies.some(s=>s.rule.kind==="approval"&&ji(s,n)),o=n.before?.id??n.after?.id,i=r&&typeof o=="string"?await cf(e,o):[];return Fi(t,{...n,approvals:i})}async function Io(e){let t=await af(e.pmRoot),n=await df(e.pmRoot,t,{operation:e.operation,author:e.author,before:e.before?{...e.before.metadata,body:e.before.body}:null,after:e.after?{...e.after.metadata,body:e.after.body}:null});if(n.allowed)return n;let r=n.decisions.filter(l=>!l.satisfied&&l.effect==="refuse");if(!e.dryRun)try{await ha({pmRoot:e.pmRoot,op:"policy_refused",author:e.author,context:{item_id:e.after?.metadata.id??e.before?.metadata.id,operation:e.operation,workflow_policies:n.decisions},message:"Workflow policy refused a proposed item mutation.",lockTtlSeconds:e.settings.locks.ttl_seconds,lockWaitMs:e.settings.locks.wait_ms})}catch(l){let f=new v("Workflow policy refusal could not be recorded in workspace history.",b.CONFLICT,{code:"workflow_policy_audit_failed",nextSteps:["Resolve workspace-history lock or storage failures, then retry the refused mutation; no item changes were written."]});throw f.cause=l,f}let o=r.slice(0,3).map(l=>({policy_id:l.policy_id,rule:l.rule,description:t.policies.find(f=>f.id===l.policy_id).description,missing_fields:l.missing_fields})),i=[...new Set(o.flatMap(l=>l.missing_fields))],s=o.map(l=>`${l.policy_id} (${l.rule})`).join(", "),a=r.length>3?` and ${r.length-3} more`:"",c=e.after?.metadata.id??e.before.metadata.id,d=i.map(l=>{if(e.before===null)return`Supply ${l} in the original ${e.operation} request, then retry; the item was not created.`;let f=Si("update",l);return f===void 0?`Supply ${l} using its declared SDK or package mutation contract, then retry.`:je(["update",c,Ti("update",f),`<${l}>`,"--pm-path",$t.resolve(e.pmRoot)])});throw new v(`Workflow policy refused ${e.operation}: ${s}${a}.${i.length?` Missing: ${i.join(", ")}.`:""}`,b.CONFLICT,{code:"workflow_policy_refused",reason:o.map(l=>l.policy_id).join(","),policy_violations:o,policy_violation_count:r.length,required:i.length?`Supply missing fields: ${i.join(", ")}, then retry the refused mutation.`:"Satisfy the declared workflow policy before retrying.",why:o.map(l=>l.description).filter(Boolean).join(" ")||void 0,recovery:{missing_required_fields:i},nextSteps:[...d,...new Set(r.slice(0,3).filter(l=>l.missing_fields.length===0).map(l=>l.remediation)),...r.length>3?[`Inspect all policies with pm schema policies before retrying ${e.operation}.`]:[]]})}import{AsyncLocalStorage as lf}from"node:async_hooks";import{channel as uf}from"node:diagnostics_channel";(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]="118ec110-fa84-550b-a0a8-4def314270b6")}catch{}})();var So=new lf,To=uf("@unbrained/pm-cli/item-metadata-enumeration/v1");function Vn(e){To.publish(e)}async function Kg(e){let t={enumeration_calls:0,metadata_rows:0},n=r=>{So.getStore()?.includes(t)&&(t.enumeration_calls+=1,t.metadata_rows+=r)};To.subscribe(n);try{return{result:await So.run([...So.getStore()??[],t],e),work:{...t}}}finally{To.unsubscribe(n)}}import Xe from"node:fs/promises";import Ea from"node:path";import{randomUUID as ff}from"node:crypto";import{createRequire as mf}from"node:module";(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]="e9e67ec7-10cb-57b0-a094-ae52b01a0f8a")}catch{}})();var _f="metadata-query-index.sqlite",Ht="5";function pf(e){try{return e(["node","sqlite"].join(":")).DatabaseSync??null}catch{return null}}var qn;function hf(e,t){let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>=22?pf(t):null}function zt(){return qn!==void 0||(qn=hf(process.versions.node,mf(import.meta.url))),qn}function wa(e,t){return Math.max(0,Math.floor(e===void 0?t:e))}function pt(e){return Ea.join(e,"runtime",_f)}function yf(e){e.exec(`
|
|
73
73
|
PRAGMA foreign_keys = ON;
|
|
74
74
|
PRAGMA journal_mode = OFF;
|
|
75
75
|
PRAGMA synchronous = OFF;
|
|
@@ -124,7 +124,7 @@ ${i}
|
|
|
124
124
|
tags,
|
|
125
125
|
tokenize = 'unicode61'
|
|
126
126
|
);
|
|
127
|
-
`)}function
|
|
127
|
+
`)}function Kn(e,t,n){e.prepare("INSERT INTO metadata(key, value) VALUES (?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value").run(t,n)}function ka(e,t){let n=t.metadata;e.prepare(`INSERT INTO items(
|
|
128
128
|
id, relative_path, metadata_json, status, type, priority,
|
|
129
129
|
updated_at, created_at, parent, assignee, sprint, release
|
|
130
130
|
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
@@ -139,10 +139,10 @@ ${i}
|
|
|
139
139
|
parent = excluded.parent,
|
|
140
140
|
assignee = excluded.assignee,
|
|
141
141
|
sprint = excluded.sprint,
|
|
142
|
-
release = excluded.release`).run(n.id,t.relativePath,JSON.stringify(n),n.status,n.type,n.priority,n.updated_at,n.created_at,n.parent??null,n.assignee??null,n.sprint??null,n.release??null),e.prepare("DELETE FROM item_metadata_keys WHERE item_id = ?").run(n.id),e.prepare("DELETE FROM item_linked_files WHERE item_id = ?").run(n.id),e.prepare("DELETE FROM item_search WHERE rowid = (SELECT rowid FROM items WHERE id = ?)").run(n.id),e.prepare("INSERT INTO item_search(rowid, id, title, description, tags) SELECT rowid, ?, ?, ?, ? FROM items WHERE id = ?").run(n.id,n.title,n.description,n.tags.join(" "),n.id);let r=e.prepare("INSERT INTO item_metadata_keys(item_id, key) VALUES (?, ?)");for(let i of Object.keys(n))r.run(n.id,i);let o=e.prepare("INSERT INTO item_linked_files(item_id, path, scope, note) VALUES (?, ?, ?, ?)");for(let i of t.linkedFiles??[])o.run(n.id,i.path,i.scope,i.note??null)}async function
|
|
143
|
-
ORDER BY ${n.terminalStatuses&&n.terminalStatuses.length>0?`CASE WHEN status IN (${n.terminalStatuses.map(()=>"?").join(", ")}) THEN 1 ELSE 0 END ASC, `:""}priority ASC, updated_at DESC, id ASC${d}`).all(...o,...n.terminalStatuses??[],...c).map(m=>{let p=JSON.parse(String(m.metadata_json));if(!p.id)throw new TypeError("Indexed metadata row has no id");return p});return i.close(),{source_cursor:s.source_cursor,total:Number(a.count),items:f}}catch{return i?.close(),null}}async function tv(e){let t=zt();if(!t||e.paths.length===0)return null;let n;try{n=new t(
|
|
142
|
+
release = excluded.release`).run(n.id,t.relativePath,JSON.stringify(n),n.status,n.type,n.priority,n.updated_at,n.created_at,n.parent??null,n.assignee??null,n.sprint??null,n.release??null),e.prepare("DELETE FROM item_metadata_keys WHERE item_id = ?").run(n.id),e.prepare("DELETE FROM item_linked_files WHERE item_id = ?").run(n.id),e.prepare("DELETE FROM item_search WHERE rowid = (SELECT rowid FROM items WHERE id = ?)").run(n.id),e.prepare("INSERT INTO item_search(rowid, id, title, description, tags) SELECT rowid, ?, ?, ?, ? FROM items WHERE id = ?").run(n.id,n.title,n.description,n.tags.join(" "),n.id);let r=e.prepare("INSERT INTO item_metadata_keys(item_id, key) VALUES (?, ?)");for(let i of Object.keys(n))r.run(n.id,i);let o=e.prepare("INSERT INTO item_linked_files(item_id, path, scope, note) VALUES (?, ?, ?, ?)");for(let i of t.linkedFiles??[])o.run(n.id,i.path,i.scope,i.note??null)}async function Ia(e){let t=pt(e.pmRoot),n=zt();if(!n){await Xe.rm(t,{force:!0});return}await Xe.mkdir(Ea.dirname(t),{recursive:!0});let r=`${t}.${ff()}.tmp`,o;try{o=new n(r),yf(o),o.exec("BEGIN IMMEDIATE"),Kn(o,"version",Ht),Kn(o,"context_fingerprint",e.contextFingerprint),Kn(o,"source_cursor",e.sourceCursor);for(let i of e.rows)ka(o,i);o.exec("COMMIT"),o.close(),o=void 0,await Xe.rm(t,{force:!0}),await Xe.rename(r,t)}catch(i){throw o?.close(),await Promise.allSettled([Xe.rm(r,{force:!0})]),i}}function Xn(e){return Object.fromEntries(e.prepare("SELECT key, value FROM metadata").all().map(t=>[String(t.key),String(t.value)]))}async function Sa(e){let t=zt();if(!t)return!1;let n=pt(e.pmRoot),r;try{await Xe.access(n),r=new t(n),r.exec("PRAGMA foreign_keys = ON");let o=Xn(r);if(o.version!==Ht||o.context_fingerprint!==e.contextFingerprint||o.source_cursor!==e.expectedSourceCursor)return r.close(),!1;r.exec("BEGIN IMMEDIATE");let i=r.prepare("DELETE FROM items WHERE relative_path = ?"),s=r.prepare("SELECT rowid FROM items WHERE relative_path = ?"),a=r.prepare("DELETE FROM item_search WHERE rowid = ?");for(let c of e.deletedRelativePaths??[]){let d=s.get(c);i.run(c),d&&a.run(d.rowid)}return e.row&&ka(r,e.row),Kn(r,"source_cursor",e.sourceCursor),r.exec("COMMIT"),r.close(),!0}catch{try{r?.exec("ROLLBACK")}catch{}return r?.close(),!1}}function Gn(e,t,n,r,o){!r||r.length===0||(e.push(`${n} ${o} (${r.map(()=>"?").join(", ")})`),t.push(...r))}function gf(e){let t=[],n=[];Gn(t,n,"status",e.statuses,"IN"),Gn(t,n,"status",e.excludeStatuses,"NOT IN"),Gn(t,n,"type",e.types,"IN"),Gn(t,n,"id",e.ids,"IN");for(let r of e.metadataKeys??[])t.push("EXISTS (SELECT 1 FROM item_metadata_keys AS indexed_key WHERE indexed_key.item_id = items.id AND indexed_key.key = ?)"),n.push(r);for(let[r,o]of[["parent",e.parent],["assignee",e.assignee],["sprint",e.sprint],["release",e.release]])o!==void 0&&(t.push(`${r} = ?`),n.push(o));return e.priority!==void 0&&(t.push("priority = ?"),n.push(e.priority)),{where:t.length===0?"":` WHERE ${t.join(" AND ")}`,parameters:n}}async function ev(e){let t=zt();if(!t)return null;let n=e.query??{},{where:r,parameters:o}=gf(n),i;try{i=new t(pt(e.pmRoot),{readOnly:!0});let s=Xn(i);if(s.version!==Ht||s.source_cursor!==e.expectedSourceCursor)return i.close(),null;let a=i.prepare(`SELECT COUNT(*) AS count FROM items${r}`).get(...o),c=[],d="";n.limit!==void 0?(d+=" LIMIT ?",c.push(Math.max(0,Math.floor(n.limit))),n.offset!==void 0&&(d+=" OFFSET ?",c.push(Math.max(0,Math.floor(n.offset))))):n.offset!==void 0&&(d+=" LIMIT -1 OFFSET ?",c.push(Math.max(0,Math.floor(n.offset))));let f=i.prepare(`SELECT metadata_json FROM items${r}
|
|
143
|
+
ORDER BY ${n.terminalStatuses&&n.terminalStatuses.length>0?`CASE WHEN status IN (${n.terminalStatuses.map(()=>"?").join(", ")}) THEN 1 ELSE 0 END ASC, `:""}priority ASC, updated_at DESC, id ASC${d}`).all(...o,...n.terminalStatuses??[],...c).map(m=>{let p=JSON.parse(String(m.metadata_json));if(!p.id)throw new TypeError("Indexed metadata row has no id");return p});return i.close(),{source_cursor:s.source_cursor,total:Number(a.count),items:f}}catch{return i?.close(),null}}async function tv(e){let t=zt();if(!t||e.paths.length===0)return null;let n;try{n=new t(pt(e.pmRoot),{readOnly:!0});let r=Xn(n);if(r.version!==Ht||r.source_cursor!==e.expectedSourceCursor)return n.close(),null;let o=e.paths.map(()=>"?").join(", "),i=e.scope===void 0?"":" AND scope = ?",s=[...e.paths,...e.scope===void 0?[]:[e.scope]],a=`path IN (${o})${i}`,c=n.prepare(`SELECT COUNT(DISTINCT item_id) AS count
|
|
144
144
|
FROM item_linked_files
|
|
145
|
-
WHERE ${a}`).get(...s),d=
|
|
145
|
+
WHERE ${a}`).get(...s),d=wa(e.limit,50),l=wa(e.offset,0),f=n.prepare(`SELECT items.id, items.metadata_json
|
|
146
146
|
FROM items
|
|
147
147
|
WHERE EXISTS (
|
|
148
148
|
SELECT 1 FROM item_linked_files
|
|
@@ -153,13 +153,13 @@ ${i}
|
|
|
153
153
|
FROM item_linked_files
|
|
154
154
|
WHERE item_id IN (${p.map(()=>"?").join(", ")})
|
|
155
155
|
AND ${a}
|
|
156
|
-
ORDER BY path ASC, scope ASC`).all(...p,...s),g=new Map(p.map(h=>[h,[]]));for(let h of _){let I=String(h.item_id),R=g.get(I);R.push({path:String(h.path),scope:String(h.scope),...h.note===null?{}:{note:String(h.note)}}),g.set(I,R)}for(let h of f){let I=JSON.parse(String(h.metadata_json));m.push({item:I,files:g.get(String(h.id))})}}return n.close(),{source_cursor:r.source_cursor,total:Number(c.count),matches:m}}catch{return n?.close(),null}}async function nv(e){let t=zt();if(!t)return null;let n;try{n=new t(
|
|
156
|
+
ORDER BY path ASC, scope ASC`).all(...p,...s),g=new Map(p.map(h=>[h,[]]));for(let h of _){let I=String(h.item_id),R=g.get(I);R.push({path:String(h.path),scope:String(h.scope),...h.note===null?{}:{note:String(h.note)}}),g.set(I,R)}for(let h of f){let I=JSON.parse(String(h.metadata_json));m.push({item:I,files:g.get(String(h.id))})}}return n.close(),{source_cursor:r.source_cursor,total:Number(c.count),matches:m}}catch{return n?.close(),null}}async function nv(e){let t=zt();if(!t)return null;let n;try{n=new t(pt(e.pmRoot),{readOnly:!0});let r=Xn(n);if(r.version!==Ht||r.source_cursor!==e.expectedSourceCursor)return n.close(),null;let i=n.prepare(`SELECT items.metadata_json
|
|
157
157
|
FROM item_search
|
|
158
158
|
JOIN items ON items.id = item_search.id
|
|
159
159
|
WHERE item_search MATCH ?
|
|
160
160
|
ORDER BY bm25(item_search), items.priority, items.updated_at DESC, items.id
|
|
161
|
-
LIMIT ?`).all(e.query,Math.max(0,Math.floor(e.limit))).map(s=>JSON.parse(String(s.metadata_json)));return n.close(),{source_cursor:r.source_cursor,items:i}}catch{return n?.close(),null}}async function Gn(e){await Ke.rm(_t(e),{force:!0})}import B from"node:fs/promises";import M from"node:path";import{createHash as vf,randomUUID as xa}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]="1c60c095-9763-5372-9dc3-c0ea1a5caca6")}catch{}})();var ae=8,Ra=500,bf="metadata-derived-index",wf="metadata-cache.json",Ef="metadata-cache-bodies.json",kf="metadata-cache-collections.json",If="metadata-cache-delta.json",Sf="metadata-cache-manifest.json",Sa=4,Tf=["comments","notes","learnings","files","tests","test_runs","docs"];function Aa(){return sn(ue())}function Xn(e){let t={...e},n={};for(let r of Tf)r in t&&(n[r]=t[r],delete t[r]);return{light:t,heavy:n}}function Da(e,t){return!t||Object.keys(t).length===0?e:{...e,...t}}function Na(e,t,n,r){let o=vf("sha256");o.update(`format:${e??"default"}`);let i=Object.entries(t).sort(([s],[a])=>s.localeCompare(a)).map(([s,a])=>`${s}=${a}`).join(",");return o.update(`|types:${i}`),n&&o.update(`|schema:${JSON.stringify(n)}`),r.length>0&&o.update(`|extension_fields:${r.join(",")}`),o.digest("hex").slice(0,16)}function Yn(e){return M.join(e,"runtime",wf)}function Jn(e){return M.join(e,"runtime",Ef)}function Qn(e){return M.join(e,"runtime",kf)}function Co(e){return M.join(e,"runtime",If)}function Oo(e){return M.join(e,"runtime",Sf)}function Zn(e,t){let n=M.extname(e);return`${e.slice(0,-n.length)}.${t}${n}`}var Cf=24,Z=new Map,er=new WeakMap;function xo(e){return er.get(e)??e.source_cursor}function Of(e,t){let n=xo(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){er.set(e,n);for(let[r,o]of Object.entries(t.changes))o.entry?e.entries[r]=o.entry:delete e.entries[r];e.directory_signatures=t.directory_signatures,e.source_cursor=t.source_cursor}}function xf(e,t){if(!e)return;let n=xo(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){er.set(e,n);for(let[r,o]of Object.entries(t.changes))o.body?e.bodies[r]=o.body:delete e.bodies[r];e.source_cursor=t.source_cursor}}function Rf(e,t){if(!e)return;let n=xo(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){er.set(e,n);for(let[r,o]of Object.entries(t.changes))o.collections?e.collections[r]=o.collections:delete e.collections[r];e.source_cursor=t.source_cursor}}function Af(e,t,n,r){!e||!r||e.context_fingerprint!==r.context_fingerprint||(Of(e,r),xf(t,r),Rf(n,r))}function To(e,t){Z.size>=Cf&&!Z.has(e)&&xi(Z),Z.set(e,t)}async function xe(e,t){let n;try{n=await B.stat(e)}catch{return Z.delete(e),null}let r=Z.get(e);if(r&&Ut(r.signature,n.mtimeMs,n.ctimeMs,n.size))return Z.delete(e),Z.set(e,r),r.envelope;let o;try{o=t(await B.readFile(e,"utf8"))}catch{o=null}return To(e,{signature:{mtime_ms:n.mtimeMs,ctime_ms:n.ctimeMs,size:n.size},envelope:o}),o}async function Df(e,t,n){let r=a=>{let c=JSON.parse(a);return c.version!==ae||typeof c.source_cursor!="string"||typeof c.entries!="object"||c.entries===null?null:c},o=Yn(e),i=await xe(o,r);if(!t||i===null||i.context_fingerprint===t)return i;let s=await xe(Zn(o,t),r);return s===null&&Vt(n,`metadata_cache_context_changed:${i.context_fingerprint}->${t}`),s}async function Nf(e,t){let n=i=>{let s=JSON.parse(i);return s.version!==ae||typeof s.source_cursor!="string"||typeof s.bodies!="object"||s.bodies===null?null:s},r=Jn(e),o=await xe(r,n);return t&&o?.context_fingerprint!==t?await xe(Zn(r,t),n):o}async function Lf(e,t){let n=i=>{let s=JSON.parse(i);return s.version!==ae||typeof s.source_cursor!="string"||typeof s.collections!="object"||s.collections===null?null:s},r=Qn(e),o=await xe(r,n);return t&&o?.context_fingerprint!==t?await xe(Zn(r,t),n):o}async function Ro(e){let t=Co(e),n=await xe(t,r=>{let o=JSON.parse(r);return o.version!==ae||typeof o.base_source_cursor!="string"||typeof o.source_cursor!="string"||typeof o.changes!="object"||o.changes===null?null:o});if(n)return{envelope:n,invalid:!1};try{return await B.stat(t),{envelope:null,invalid:!0}}catch{return{envelope:null,invalid:!1}}}async function Ao(e){let t=Oo(e),n=await xe(t,r=>{let o=JSON.parse(r);return o.version!==ae||typeof o.context_fingerprint!="string"||typeof o.source_cursor!="string"||!Number.isInteger(o.entry_count)||o.entry_count<0||typeof o.directory_signatures!="object"||o.directory_signatures===null?null:o});if(n)return n;try{await B.stat(t),await pt(e)}catch{}return null}async function Bt(e,t){await B.mkdir(M.dirname(e),{recursive:!0}),await X(e,JSON.stringify(t));try{let r=await B.stat(e);To(e,{signature:{mtime_ms:r.mtimeMs,ctime_ms:r.ctimeMs,size:r.size},envelope:t})}catch{Z.delete(e)}let n=M.dirname(M.dirname(e));if(e===Yn(n)||e===Jn(n)||e===Qn(n)){let r=Zn(e,t.context_fingerprint);await X(r,JSON.stringify(t));try{let c=await B.stat(r);To(r,{signature:{mtime_ms:c.mtimeMs,ctime_ms:c.ctimeMs,size:c.size},envelope:t})}catch{Z.delete(r)}let o=M.dirname(e),i=M.extname(e),s=M.basename(e,i),a=(await B.readdir(o,{withFileTypes:!0}).catch(()=>[])).filter(c=>c.isFile()&&c.name!==M.basename(e)&&c.name.startsWith(`${s}.`)&&c.name.endsWith(i)).map(c=>M.join(o,c.name));if(a.length>Sa){let c=(await Promise.all(a.map(async d=>{try{return{path:d,mtime:(await B.stat(d)).mtimeMs}}catch{return null}}))).filter(d=>d!==null);for(let d of c.sort((l,f)=>l.mtime-f.mtime).slice(0,Math.max(0,c.length-Sa)))await B.rm(d.path,{force:!0}),Z.delete(d.path)}}}function Pf(e,t,n){return n?t===n&&e!==n:t==="toon"&&e!=="toon"}function La(e,t,n){return e===void 0||Pf(e,t,n)}function Vt(e,t){e&&!e.includes(t)&&e.push(t)}function Ut(e,t,n,r){return e.mtime_ms===t&&e.ctime_ms===n&&e.size===r}async function Mf(e,t,n){let r=M.join(e,t);try{let o=await B.readdir(r);return{folder:t,dirPath:r,files:o}}catch(o){return typeof o=="object"&&o!==null&&"code"in o&&!te(o)&&Vt(n,`item_list_directory_read_failed:${t}`),{folder:t,dirPath:r,files:[]}}}async function jf(e,t){try{let n=await B.stat(M.join(e,t));return[t,{exists:!0,mtime_ms:n.mtimeMs,ctime_ms:n.ctimeMs,size:n.size}]}catch{return[t,{exists:!1,mtime_ms:0,ctime_ms:0,size:0}]}}async function Kn(e,t){return Object.fromEntries(await Promise.all(t.map(async n=>await jf(e,n))))}function Wt(e,t){return!e||Object.keys(e).length!==Object.keys(t).length?!1:Object.entries(t).every(([n,r])=>{let o=e[n];return o!==void 0&&o.exists===r.exists&&Ut(o,r.mtime_ms,r.ctime_ms,r.size)})}function Ff(e){return cn.some(t=>e.toLowerCase().endsWith(t))}function $f(e,t,n,r,o,i){r||(e.metadata=!0),t&&!o&&(e.body=!0),n&&!i&&(e.collections=!0)}async function Hf(e,t,n){if(n)for(let r of await be({path:e,scope:"project"}))Vt(t,r)}function Ta(e,t,n,r){if(e)return t&&n?n.collections:r}async function zf(e,t,n){let r=await B.stat(e),o=r.mtimeMs,i=r.ctimeMs,{size:s}=r,a=wr(e);await Hf(e,n.warnings,n.dispatchReadHooks);let c=n.previousEntries[t],d=!n.forceSourceRead&&c!==void 0&&Ut(c,o,i,s),l=n.previousBodies[t],f=!n.forceSourceRead&&l!==void 0&&Ut(l,o,i,s),m=n.previousCollections[t],p=!n.forceSourceRead&&m!==void 0&&Ut(m,o,i,s);if(!(!d||n.includeBody&&!f||n.includeCollections&&!p))return{mtimeMs:o,ctimeMs:i,size:s,itemFormat:a,lightMetadata:c.metadata,heavyMetadata:Ta(n.includeCollections,p,m,void 0),bodyLength:c.body_length,body:n.includeBody?l.body:void 0};let g=await B.readFile(e,"utf8"),h=Sn(g,{format:a,schema:n.schema,extensionFieldNames:n.extensionFieldNames,onWarning:R=>Vt(n.warnings,R)}),I=Xn(h.metadata);return $f(n.state.misses,n.includeBody,n.includeCollections,d,f,p),{mtimeMs:o,ctimeMs:i,size:s,itemFormat:a,lightMetadata:d?c.metadata:I.light,heavyMetadata:Ta(n.includeCollections,p,m,I.heavy),bodyLength:d?c.body_length:h.body.length,body:n.includeBody?h.body:void 0}}function Uf(e,t,n,r){n.state.newEntries[t]={mtime_ms:r.mtimeMs,ctime_ms:r.ctimeMs,size:r.size,metadata:r.lightMetadata,body_length:r.bodyLength},n.includeBody&&r.body!==void 0&&(n.state.newBodies[t]={mtime_ms:r.mtimeMs,ctime_ms:r.ctimeMs,size:r.size,body:r.body}),n.includeCollections&&r.heavyMetadata!==void 0&&(n.state.newCollections[t]={mtime_ms:r.mtimeMs,ctime_ms:r.ctimeMs,size:r.size,collections:r.heavyMetadata});let o=n.includeCollections?Da(r.lightMetadata,r.heavyMetadata):r.lightMetadata,i=n.state.documentsById.get(o.id),s={metadata:o,body:r.body,item_format:r.itemFormat,item_path:e};La(i?.itemFormat,r.itemFormat,n.preferredFormat)&&n.state.documentsById.set(o.id,{candidate:s,itemFormat:r.itemFormat})}async function Bf(e,t,n,r){try{let o=await zf(t,n,r);Uf(t,n,r,o)}catch{Vt(r.warnings,`item_list_item_read_failed:${e}/${M.basename(t)}`)}}function Wf(e,t){return e&&e.context_fingerprint===t?e.entries:{}}function Vf(e,t){return e&&e.context_fingerprint===t?e.bodies:{}}function qf(e,t){return e&&e.context_fingerprint===t?e.collections:{}}function Gf(){return{newEntries:{},newBodies:{},newCollections:{},documentsById:new Map,misses:{metadata:!1,body:!1,collections:!1}}}async function Kf(e,t){let n=[];for(let{folder:r,dirPath:o,files:i}of e)for(let s of i){if(!Ff(s))continue;let a=M.join(o,s),c=M.relative(t.pmRoot,a);n.push(Bf(r,a,c,t)),n.length===32&&(await Promise.all(n),n.length=0)}await Promise.all(n)}async function Xf(e){if(!(!(e.state.misses.metadata||Object.keys(e.previousEntries).length!==Object.keys(e.state.newEntries).length||!Wt(e.existingCache?.directory_signatures,e.directorySignatures))&&e.existingCache!==null&&e.existingCache.context_fingerprint===e.contextFingerprint))try{await Bt(Yn(e.pmRoot),{version:ae,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,directory_signatures:e.directorySignatures,entries:e.state.newEntries}),await Bt(Oo(e.pmRoot),{version:ae,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,entry_count:Object.keys(e.state.newEntries).length,directory_signatures:e.directorySignatures});let n=[...e.state.documentsById.values()].map(({candidate:r})=>({relativePath:M.relative(e.pmRoot,r.item_path),metadata:Xn(r.metadata).light,linkedFiles:r.metadata.files??[]}));n.length>=e.minimumIndexedItems?await ka({pmRoot:e.pmRoot,contextFingerprint:e.contextFingerprint,sourceCursor:e.sourceCursor,rows:n}):await Gn(e.pmRoot)}catch{}}async function Yf(e){!(e.state.misses.body||Object.keys(e.previousBodies).length!==Object.keys(e.state.newBodies).length)&&e.existingBodyCache!==null&&e.existingBodyCache.context_fingerprint===e.contextFingerprint||await Bt(Jn(e.pmRoot),{version:ae,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,bodies:e.state.newBodies}).catch(()=>{})}async function Jf(e){!(e.state.misses.collections||Object.keys(e.previousCollections).length!==Object.keys(e.state.newCollections).length)&&e.existingCollectionsCache!==null&&e.existingCollectionsCache.context_fingerprint===e.contextFingerprint||await Bt(Qn(e.pmRoot),{version:ae,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,collections:e.state.newCollections}).catch(()=>{})}async function Do(e,t,n={}){let r=await Ao(e);return n.required!==!0&&(r===null||r.entry_count<Ra)?async()=>{}:V(e,bf,30,t,!1,!1,3e3)}async function pv(e,t){let n=await Ao(e);if(n===null)return null;let r=await Ro(e);if(r.invalid)return await pt(e),null;let o=r.envelope?.context_fingerprint===n.context_fingerprint&&r.envelope.base_source_cursor===n.source_cursor?r.envelope.source_cursor:n.source_cursor,i=r.envelope?.context_fingerprint===n.context_fingerprint&&r.envelope.base_source_cursor===n.source_cursor?r.envelope.directory_signatures:n.directory_signatures;return t&&!Wt(i,await Kn(e,t))?null:{source_cursor:o,entry_count:n.entry_count}}function Ca(e,t){let n=M.relative(e,t);return n===""||n===".."||n.startsWith(`..${M.sep}`)||M.isAbsolute(n)?null:n}async function pt(e){await Promise.all([Yn(e),Jn(e),Qn(e),Co(e),Oo(e)].map(async t=>{await B.rm(t,{force:!0}),Z.delete(t)})),await Gn(e)}async function Qf(e){if(e.mutation.document===null)return{entry:null,body:null,collections:null};let t=await B.stat(e.mutation.itemPath),n=Xn(e.mutation.document.metadata),r={mtime_ms:t.mtimeMs,ctime_ms:t.ctimeMs,size:t.size};return{entry:{...r,metadata:n.light,body_length:e.mutation.document.body.length},body:{...r,body:e.mutation.document.body},collections:{...r,collections:n.heavy}}}function Zf(e,t,n){return e?.context_fingerprint===t&&e.base_source_cursor===n?structuredClone(e.changes):{}}async function No(e){let t=Ca(e.pmRoot,e.itemPath),n=e.previousItemPath?Ca(e.pmRoot,e.previousItemPath):void 0;if(t===null||n===null)return await pt(e.pmRoot),["metadata_derived_index_path_invalidated"];try{let r=Na(e.preferredFormat,e.typeToFolder,e.schema,Aa()),o=await Ao(e.pmRoot);if(o===null||o.context_fingerprint!==r)return[];let i=o.source_cursor,s=await Ro(e.pmRoot);if(s.invalid)return await pt(e.pmRoot),["metadata_derived_index_refresh_failed"];let a=Zf(s.envelope,r,i),c=s.envelope?.context_fingerprint===r&&s.envelope.base_source_cursor===i?s.envelope.source_cursor:i;n!==void 0&&(a[n]={entry:null,body:null,collections:null}),a[t]=await Qf({mutation:e});let d=xa();return await Bt(Co(e.pmRoot),{version:ae,context_fingerprint:r,base_source_cursor:i,source_cursor:d,directory_signatures:await Kn(e.pmRoot,[...new Set(Object.values(e.typeToFolder))]),changes:a}),await Ia({pmRoot:e.pmRoot,contextFingerprint:r,expectedSourceCursor:c,sourceCursor:d,row:e.document===null?null:{relativePath:t,metadata:Xn(e.document.metadata).light,linkedFiles:e.document.metadata.files},deletedRelativePaths:[...n===void 0?[]:[n],...e.document===null?[t]:[]]})||await Gn(e.pmRoot),[]}catch{return await pt(e.pmRoot).catch(()=>{}),["metadata_derived_index_refresh_failed"]}}function em(e){return[...e.documentsById.values()].sort((t,n)=>t.candidate.metadata.id.localeCompare(n.candidate.metadata.id)).map(t=>t.candidate)}function Oa(e,t,n){return e?.context_fingerprint===t&&e.source_cursor===n}function tm(e,t,n,r,o){return e.every(i=>(!t||r[i]!==void 0)&&(!n||o[i]!==void 0))}function nm(e){let t=new Map;for(let[n,r]of Object.entries(e.previousEntries)){let o=wr(n);if(!o)continue;let i=e.includeCollections?Da(r.metadata,e.previousCollections[n]?.collections):r.metadata,s=t.get(i.id);La(s?.itemFormat,o,e.preferredFormat)&&t.set(i.id,{itemFormat:o,candidate:{metadata:i,body:e.includeBody?e.previousBodies[n]?.body:void 0,item_format:o,item_path:M.join(e.pmRoot,n)}})}return[...t.values()].sort((n,r)=>n.candidate.metadata.id.localeCompare(r.candidate.metadata.id)).map(n=>n.candidate)}function rm(e){return e.forceSourceScan||Ir()||e.existingCache?.context_fingerprint!==e.contextFingerprint||e.entryKeys.length<e.minimumIndexedItems||!Wt(e.existingCache?.directory_signatures,e.directorySignatures)?!1:[!e.includeBody||Oa(e.existingBodyCache,e.contextFingerprint,e.existingCache.source_cursor),!e.includeCollections||Oa(e.existingCollectionsCache,e.contextFingerprint,e.existingCache.source_cursor)].every(Boolean)&&tm(e.entryKeys,e.includeBody,e.includeCollections,e.previousBodies,e.previousCollections)}async function tr(e,t,n,r,o,i={}){let s=i.includeBody!==!1,a=i.includeCollections!==!1,c=Aa(),d=Na(t,n,o,c),l=await Ro(e);l.invalid&&await pt(e);let f=await Df(e,d,i.cacheDiagnostics),m=s?await Nf(e,d):null,p=a?await Lf(e,d):null;Af(f,m,p,l.envelope);let _=Wf(f,d),g=Vf(m,d),h=qf(p,d),I=[...new Set(Object.values(n))],R=await Kn(e,I),D=Object.keys(_),$=Math.max(1,Math.floor(i.derivedIndexMinimumItems??Ra));if(rm({forceSourceScan:i.forceSourceScan===!0,contextFingerprint:d,existingCache:f,existingBodyCache:m,existingCollectionsCache:p,directorySignatures:R,entryKeys:D,minimumIndexedItems:$,includeBody:s,includeCollections:a,previousBodies:g,previousCollections:h}))return nm({pmRoot:e,preferredFormat:t,includeBody:s,includeCollections:a,previousEntries:_,previousBodies:g,previousCollections:h});let x=await Promise.all(I.map(kt=>Mf(e,kt,r))),G=Ir(),W=Gf(),Q={pmRoot:e,preferredFormat:t,warnings:r,schema:o,extensionFieldNames:c,includeBody:s,includeCollections:a,forceSourceRead:i.forceSourceScan===!0,dispatchReadHooks:G,previousEntries:_,previousBodies:g,previousCollections:h,state:W};await Kf(x,Q);let K=await Kn(e,I),ee=Wt(R,K)?K:{},Ye=W.misses.metadata||Object.keys(_).length!==Object.keys(W.newEntries).length||!Wt(f?.directory_signatures,ee)||f===null?xa():f.source_cursor;return await Xf({pmRoot:e,contextFingerprint:d,sourceCursor:Ye,existingCache:f,previousEntries:_,directorySignatures:ee,state:W,minimumIndexedItems:$}),s&&await Yf({pmRoot:e,contextFingerprint:d,sourceCursor:Ye,existingBodyCache:m,previousBodies:g,state:W}),a&&await Jf({pmRoot:e,contextFingerprint:d,sourceCursor:Ye,existingCollectionsCache:p,previousCollections:h,state:W}),em(W)}async function Pa(e,t,n,r,o){return(await tr(e,t,n,r,o,{includeBody:!1})).map(s=>({metadata:s.metadata,body:s.body??""}))}async function Ma(e,t,n,r,o){return(await tr(e,t,n,r,o,{includeBody:!1,includeCollections:!1})).map(s=>({metadata:s.metadata,body:s.body??""}))}(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]="59b12366-2f29-5acb-8196-91e9ab183666")}catch{}})();function Po(e,t){return(t===void 0?void 0:Ti(e,t))?.execution_role??ki[e.trim().toLowerCase()]??"agent"}var Mo="blocked_by",ja="blocks",om=Object.freeze([Mo,ja]),Lo="no-active-blocker";function F(e){return e.trim().toLowerCase()}function nr(e,t){return t?`external:${e}`:`local:${F(e)}`}function qt(e){let t=new Map,n=typeof e.blocked_by=="string"?e.blocked_by.trim():"";if(n.length>0&&F(n)!==Lo){let r=pe(n);t.set(nr(n,r),r?n:F(n))}for(let r of e.dependencies??[]){let o=typeof r.id=="string"?r.id.trim():"";if(r.kind===Mo&&o.length>0&&F(o)!==Lo){let i=pe(o)||ie(r.source_kind);t.set(nr(o,i),i?o:F(o))}}return[...t.values()].sort((r,o)=>r.localeCompare(o))}function rr(e){let t=new Map;for(let n of e){let r=F(n.id);r.length!==0&&t.set(r,new Set(qt(n)))}for(let n of e){let r=F(n.id);if(r.length!==0)for(let o of n.dependencies??[]){let i=o.kind===ja&&typeof o.id=="string"?F(o.id):"";if(i.length===0||i===Lo)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 Fa(e,t){let n=F(e.id);return n.length>0?rr(t).get(n)??qt(e):qt(e)}function jo(e,t,n,r){let o=e,i=typeof o.id=="string"?r?.get(F(o.id))??Fa(o,[...t.values()]):qt(e),s=new Set((e.dependencies??[]).filter(a=>a.kind===Mo&&ie(a.source_kind)&&typeof a.id=="string"&&a.id.trim().length>0).map(a=>nr(a.id.trim(),!0)));return i.map(a=>{if(pe(a)||s.has(nr(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(F(a));return c?{id:a,title:c.title,status:c.status,resolved:he(c.status,n)}:{id:a,title:null,status:null,resolved:!1}})}function im(e,t,n){return jo(e,t,n)}function sm(e,t){let n=new Map(e.map(s=>[F(s.id),s])),r=rr(e),o=new Set([...$a(t),...t.blocked_statuses]),i=new Set;for(let s of e){let a=rt(s.status,t);if(!o.has(a))continue;(t.blocked_statuses.has(a)||jo(s,n,t,r).some(d=>!d.resolved))&&i.add(F(s.id))}return i}function am(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(rt(s.item.status,t))));let i={ready:[],decisions:[],gates:[]};for(let s of o){let a=Po(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 $a(e){return e.active_statuses.size>0?e.active_statuses:new Set([e.open_status])}function cm(e,t,n){let r=[F(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(!he(s.status,n))return!0;r.push(F(s.id))}}}return!1}function dm(e){let t=new Map,n=new Map,r=new Map,o=rr(e);for(let i of e){t.set(F(i.id),i);let s=typeof i.parent=="string"?i.parent.trim():"";if(s.length>0){let a=F(s),c=n.get(a)??[];c.push(i),n.set(a,c)}for(let a of o.get(F(i.id))){let c=F(a),d=r.get(c)??[];d.push(i.id),r.set(c,d)}}return{itemsById:t,childrenByParent:n,blockedByReverse:r,blockerIdsByItem:o}}function lm(e,t,n,r){let{itemsById:o,childrenByParent:i,blockedByReverse:s,blockerIdsByItem:a}=dm(t),c=new Set([...$a(n),...n.blocked_statuses]),d=new Set(t.filter(h=>!he(h.status,n)).map(h=>F(h.id))),l=[],f=[],m=[],p=[],_=[],g=0;for(let h of e){if(!c.has(rt(h.status,n)))continue;g+=1;let I=jo(h,o,n,a).filter(x=>!x.resolved),R=(s.get(F(h.id))??[]).filter(x=>d.has(F(x))).sort((x,G)=>x.localeCompare(G)),D={item:h,open_blockers:I,unblocks:R};if(cm(h.id,i,n)){m.push(D);continue}let $=n.blocked_statuses.has(rt(h.status,n));if(I.length===0&&!$){let x=Po(h.type,r);x==="human"?p.push(D):x==="gate"?_.push(D):l.push(D)}else f.push(D)}return{ready:l,blocked:f,containers:m,decisions:p,gates:_,active_count:g,container_count:m.length}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ae1c56b3-148d-502d-9450-e807fdfab4da")}catch{}})();(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="0a3dd0c1-2dea-5143-a2eb-65e758a0cc71")}catch{}})();function ce(){let e=de();for(let t of ue()?.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]="83d1acab-79a1-5e9f-b6a4-97dade07d74a")}catch{}})();function Gt(e){if(typeof e!="string")return;let t=e.trim().toLowerCase();return t.length>0?t:void 0}function or(e){return[e.parent_id,e.child_id,e.source,e.kind,e.holder_id,e.target_id??""].join("\0")}function um(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 fm(e,t){let n=[...e].sort(),r=um(n,t),o=new Set,i=mm(n,t),s=[];for(let a of r.reverse()){if(o.has(a))continue;let c=_m(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 mm(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 _m(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 Ha(e){let t=new Map;for(let n of e){let r=Gt(n?.id);r&&!t.has(r)&&t.set(r,n)}return t}function pm(e,t,n){let r=Gt(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 hm(e,t,n,r){let o=Gt(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 za(e,t){let n=new Map;for(let[r,o]of e){let i=pm(r,o,e);i&&n.set(or(i),i);for(let s of o.dependencies??[]){let a=hm(r,s,e,t);a&&n.set(or(a),a)}}return[...n.values()].sort((r,o)=>or(r).localeCompare(or(o)))}function xv(e,t=ce()){return za(Ha(e),t)}function ym(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 gm(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=Gt(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 ir(e,t=r=>r==="closed"||r==="canceled",n=ce()){let r=Ha(e),o=za(r,n),i=vm(o),s=new Set([...r].filter(([,c])=>t(c.status)).map(([c])=>c)),a=fm([...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:ym(o,i.parents_by_child,s),divergences:gm(r,o,s)}}function Rv(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 vm(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 Fo(e,t){let n=new Set(t);return e.every(r=>n.has(r))}function Av(e,t,n,r,o){let i=Gt(n);if(!i)return;let s=ir(e,r,o),a=ir(t,r,o),c=a.divergences.find(f=>!s.divergences.some(m=>m.child_id===f.child_id&&m.scalar_parent_id===f.scalar_parent_id&&Fo(f.dependency_parent_ids,m.dependency_parent_ids)));if(c){let f=[c.scalar_parent_id,...c.dependency_parent_ids].sort();throw new v(`Hierarchy mutation would assign ${c.child_id} to multiple parents: ${f.join(", ")}.`,b.CONFLICT,{code:"hierarchy_parent_divergence_created",source_id:i,target_id:c.child_id,verification_errors:f})}let d=a.cardinality_violations.find(f=>(f.child_id===i||f.parent_ids.includes(i))&&!s.cardinality_violations.some(m=>m.child_id===f.child_id&&Fo(f.parent_ids,m.parent_ids)));if(d)throw new v(`Hierarchy mutation would assign ${d.child_id} to multiple parents: ${d.parent_ids.join(", ")}.`,b.CONFLICT,{code:"hierarchy_cardinality_created",source_id:i,target_id:d.child_id,verification_errors:d.parent_ids});let l=a.cycles.find(f=>f.item_ids.includes(i)&&!s.cycles.some(m=>Fo(f.item_ids,m.item_ids)));if(l)throw new v(`Hierarchy mutation would create a cycle: ${l.item_ids.join(" -> ")}.`,b.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]="fdd874ad-e51d-5df2-9486-a0465ad65979")}catch{}})();var bm="global";function Mv(e){let t=e?.trim();if(t)return ie(t)?bm:t}function jv(e,t,n){return wm(e,t,n)}function wm(e,t,n){let r=e.trim();return ie(n)||pe(r)?r:Ge(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]="06ecc7a4-c593-5d99-89f5-714a4590d0a5")}catch{}})();function yt(e){if(typeof e!="string")return;let t=e.trim();if(!(!t||["none","null","n/a","na"].includes(t.toLowerCase())))return t}function Kt(e){let t=yt(e);return t?.toLowerCase()==="no-active-blocker"?void 0:t}function Xt(e,t,n=!0){let r=yt(e);return n&&(ie(t)||r!==void 0&&pe(r))}function $o(e,t){return Xt(e,t)?`external\0${e}`:`local\0${e.toLowerCase()}`}function Ua(e,t,n,r){return Xt(e,t)?r.get(e):n.get(e.toLowerCase())}function ht(e,t){let n=e.toLowerCase(),r=t.toLowerCase();return n!==r?n<r?-1:1:e!==t?e<t?-1:1:0}function Em(e){let t=new Map;for(let n of e.dependencies??[]){if(typeof n!="object"||n===null)continue;let r=n,o=yt(r.id);if(!o)continue;let i=typeof r.kind=="string"?r.kind:"related",s=`${i}\0${$o(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 km(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 Em(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=ht(r.holder_id,o.holder_id);if(i!==0)return i;let s=ht(r.target_id,o.target_id);return s!==0?s:ht(r.kind,o.kind)})}function Im(e,t,n,r,o){if(typeof n!="object"||n===null)return;let i=yt(n.id);if(!i||$o(i,n.source_kind)!==$o(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 Sm(e,t=r=>r==="closed"||r==="canceled",n=ce()){let r=new Map;for(let o of e){if(typeof o?.id!="string"||o.id.trim().length===0)continue;let i=yt(o.blocked_by);if(i)for(let s of o.dependencies??[]){let a=Im(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=ht(o.holder_id,i.holder_id);if(s!==0)return s;let a=ht(o.target_id,i.target_id);return a!==0?a:ht(o.dependency_kind,i.dependency_kind)})}function Ho(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,f,m)=>{let p=yt(d);if(!p||r.has(p.toLowerCase())||Xt(p,void 0,m))return;let _={holder_id:c.id.trim(),target_id:p,kind:l,source:f,holder_status:c.status,legacy_terminal:t(c.status),no_active_blocker_sentinel:p.toLowerCase()==="no-active-blocker"};o.set(`${_.holder_id}::${_.target_id}::${_.kind}::${_.source}`,_)};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;ie(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 Tm(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 Cm(e){let t=new Map;for(let n of e){let r=Kt(n.blocked_by);r&&Xt(r)&&!t.has(r)&&t.set(r,r);for(let o of n.dependencies??[]){if(typeof o!="object"||o===null||!Xt(o.id,o.source_kind))continue;let i=Kt(o.id);i&&!t.has(i)&&t.set(i,i)}}return[...t.values()].sort((n,r)=>n.localeCompare(r))}var Ba=new WeakMap;function Wv(e){return e.hierarchyIntegrity??Ba.get(e)}function Om(e,t=ce()){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 sr(e,t,n){let r=n??ce(),o=e.filter(_=>typeof _?.id=="string"&&_.id.trim().length>0),i=new Map(o.map(_=>[_.id.trim().toLowerCase(),_.id.trim()])),s=Ho(o,t),a=Tm(s);for(let _ of a)i.set(_.toLowerCase(),_);let c=Cm(o),d=new Set(i.keys()),l=new Map;for(let _ of c){let g=_;for(;d.has(g.toLowerCase());)g=`external:${g}`;l.set(_,g),d.add(g.toLowerCase())}let f=o.map(_=>{let g=Kt(_.parent),h=Kt(_.blocked_by),I=(_.dependencies??[]).flatMap(R=>{if(typeof R!="object"||R===null)return[];let D=R,$=Kt(D.id);return $?[{id:Ua($,D.source_kind,i,l),kind:typeof D.kind=="string"?D.kind:"related"}]:[]});return{id:_.id.trim(),...g?{parent:i.get(g.toLowerCase())}:{},...h?{blocked_by:Ua(h,void 0,i,l)}:{},dependencies:I}}),m=ir(o,t,r),p={graph:gi.fromItems([...f,...a.map(_=>({id:_})),...c.map(_=>({id:l.get(_)}))],r),details:[...o.map(_=>({id:_.id.trim(),title:_.title,status:_.status,...typeof _.type=="string"&&_.type.trim().length>0?{type:_.type.trim()}:{}})),...a.map(_=>({id:_,title:`[missing] ${_}`,status:"missing"})),...c.map(_=>({id:l.get(_),title:`[external] ${_}`,status:"external"}))],missingIdSet:new Set(a.map(_=>_.toLowerCase())),dangling:s,duplicateRows:km(o,t),orderingContradictions:Sm(o,t,r),legacyAliasCounts:Om(o,r),hierarchyIntegrity:m};return Ba.set(p,m),p}import{createHash as xm}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]="10f534cf-ee82-54a2-9807-390eca5fb0b8")}catch{}})();var Rm=64,Am=8;function Dm(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 Va(e,t=r=>r==="closed"||r==="canceled",n=de()){let r=e.filter(i=>typeof i?.id=="string"&&i.id.trim().length>0).map(i=>Dm(i,t)).sort(),o=n.list().map(i=>L(i)).sort();return xm("sha256").update(r.join("")).update("").update(o.join("")).digest("hex")}function Wa(e,t,n){let r=t??n;if(!Number.isInteger(r)||r<1)throw new TypeError(`Invalid ${e} bound: ${String(t)}`);return r}var zo=class{#e=new Map;#t;#n;constructor(t={}){this.#t=Wa("maxResultsPerWorkspace",t.maxResultsPerWorkspace,Rm),this.#n=Wa("maxWorkspaces",t.maxWorkspaces,Am)}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 f=d();return s.results.size>=a&&s.results.delete(s.results.keys().next().value),s.results.set(c,structuredClone(f)),{value:f,reused:!1}}}}clear(){this.#e.clear()}},qa=new zo;function Ga(){return qa}function Xv(){qa.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]="47b3091f-a1a8-503c-83e9-46b85adf4207")}catch{}})();var Nm=["prerequisite","dependent","ancestor","descendant","provenance","related"],Lm=new TextEncoder;function Uo(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 ar(e){return Math.max(1,Math.ceil(Lm.encode(JSON.stringify(e)).byteLength/4))}function Bo(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 Pm(e,t,n,r){let o=e.filter(i=>i.source===t&&i.target===n||i.target===t&&i.source===n).map(i=>Bo(i,n,r));return[...new Set(o)].sort()}function Mm(e){return Nm.find(t=>e.includes(t))}function jm(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 f=0;f<a.length;f+=1){r.signal?.throwIfAborted();let m=a[f];if(m.distance>=i&&l)continue;let p=e.neighborEdges(m.id,{direction:o,kinds:r.kinds,signal:r.signal});if(d+=p.meta.inspectedEdges,m.distance>=i){p.value.some(_=>!s.has(_.id))&&(l=!0);continue}for(let{id:_,edge:g}of p.value){if(s.has(_))continue;s.add(_);let h={id:_,distance:m.distance+1,via:m.id,role:Bo(g,_,n)};c.push(h),a.push(h)}}return c.sort((f,m)=>f.distance-m.distance||f.id.localeCompare(m.id)),{rows:c,visitedNodes:a.length,inspectedEdges:d,depthTruncated:l}}function Fm(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[Bo(a,s,n)]+=1;return{directEdges:o,directTotal:i.length,rootEdges:i.map(({edge:s})=>s)}}function $m(e){let t=[],n=e.initialTokens;for(let r of e.candidates){if(t.length>=e.nodeLimit)break;let o=r.distance===1?Pm(e.rootEdges,e.rootId,r.id,e.registry):[],i={...e.details.get(r.id)??{id:r.id},distance:r.distance,role:o.length>0?Mm(o):r.role,via:r.via,reasons:o.length>0?o:[`${r.role} via ${r.via} (depth ${r.distance})`]},s=ar(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 Hm(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=ar(i);if(o+s>e.tokenBudget)break;r.push(i),o+=s}return{edges:r,usedTokens:o,candidateCount:n.length}}function Ka(e,t,n,r={}){if(!e.nodes().includes(t))throw new TypeError(`Relationship node not found: ${t}`);let o=Uo(r.nodeLimit,20,"nodeLimit"),i=Uo(r.edgeLimit,40,"edgeLimit"),s=Uo(r.tokenBudget,1200,"tokenBudget"),a=r.registry??de(),c=new Map(n.map(Je=>[Je.id,Je])),d=c.get(t)??{id:t},{evidence:l=[],...f}=d,m=[...l],p=jm(e,t,a,r),{rootEdges:_,...g}=Fm(e,t,a,r),h=$i("relationship-context",{rootId:t,direction:r.direction??"both",kinds:[...r.kinds??[]].sort(),maxDepth:r.maxDepth??3}),I=zi(p.rows,r.cursor,h,({id:Je})=>Je),R=p.rows.slice(I),D=ar(f)+ar(m);if(D>s)throw new TypeError("Relationship context tokenBudget cannot fit root and evidence");let $=$m({candidates:R,details:c,rootEdges:_,rootId:t,registry:a,nodeLimit:o,tokenBudget:s,initialTokens:D}),{nodes:x}=$,G=new Set([t,...x.map(({id:Je})=>Je)]),W=Hm({graph:e,included:G,options:r,registry:a,edgeLimit:i,tokenBudget:s,initialTokens:$.usedTokens}),{edges:Q,usedTokens:K}=W,ee=I+x.length,ye=ee<p.rows.length,Ye=x.at(-1),kt=W.candidateCount-Q.length,li=p.depthTruncated||ye||kt>0,Fc={rootId:t,...f.status===void 0?{}:{rootStatus:f.status},...g,discoveredNodes:p.rows.length,returnedNodes:x.length,returnedEdges:Q.length,omittedNodes:p.rows.length-ee,omittedEdges:kt,evidenceCount:m.length,hasMore:ye};return{root:f,summary:Fc,nodes:x,edges:Q,evidence:m,meta:{exact:!0,truncated:li,completeness:li?"truncated":"complete",nodeLimit:o,edgeLimit:i,tokenBudget:s,usedTokens:K,visitedNodes:p.visitedNodes,inspectedEdges:p.inspectedEdges,omittedNodes:p.rows.length-ee,omittedEdges:kt,...ye&&Ye?{nextCursor:Hi(h,Ye.id,ee-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]="245ec731-790e-55ae-9bb6-3eeaaefe27ee")}catch{}})();var U={ok:!1},y=e=>typeof e=="string"?{ok:!0,value:e}:U,O=e=>typeof e=="boolean"?{ok:!0,value:e}:U;function N(e={}){return t=>typeof t!="number"||!Number.isFinite(t)||e.int&&(!Number.isInteger(t)||!Number.isSafeInteger(t))||e.positive&&t<=0||typeof e.min=="number"&&t<e.min||typeof e.max=="number"&&t>e.max?U:{ok:!0,value:t}}function A(...e){return t=>typeof t=="string"&&e.includes(t)?{ok:!0,value:t}:U}function w(e,t){return n=>{if(!Array.isArray(n)||t!==void 0&&n.length>t)return U;let r=[];for(let o of n){let i=e(o);if(!i.ok)return U;r.push(i.value)}return{ok:!0,value:r}}}function Vo(e,t){return n=>typeof n=="string"&&n.length>0&&n.length<=e&&n===n.trim()&&(t===void 0||t.test(n))?{ok:!0,value:n}:U}function u(e){return t=>t===void 0?{ok:!0,value:void 0}:e(t)}function cr(e){return t=>{if(typeof t!="object"||t===null||Array.isArray(t))return U;let n={};for(let[r,o]of Object.entries(t)){let i=e(o);if(!i.ok)return U;n[r]=i.value}return{ok:!0,value:n}}}function C(e){return t=>{if(typeof t!="object"||t===null||Array.isArray(t))return U;let n=t,r={};for(let[o,i]of Object.entries(e)){let s=i(n[o]);if(!s.ok)return U;s.value!==void 0&&(r[o]=s.value)}return{ok:!0,value:r}}}var zm=C({key:y,values:w(y),required:u(O),aliases:u(w(y)),description:u(y)}),Um=C({command:A("create","update"),option:y,required:u(O),visible:u(O),enabled:u(O)}),Bm=C({name:y,description:u(y),default_status:u(y),execution_role:u(A("agent","human","gate")),folder:u(y),aliases:u(w(y)),required_create_fields:u(w(y)),required_create_repeatables:u(w(y)),options:u(w(zm)),command_option_policies:u(w(Um))}),Wm=C({id:y,aliases:u(w(y)),roles:u(w(A(...ui))),description:u(y),order:u(N())}),Vm=C({key:y,metadata_key:u(y),front_matter_key:u(y),cli_flag:u(y),cli_aliases:u(w(y)),description:u(y),type:u(A(...fi)),commands:u(w(A(...mi))),repeatable:u(O),required:u(O),required_on_create:u(O),required_types:u(w(y)),allow_unset:u(O)}),qm=e=>{if(!Array.isArray(e)||e.length!==2)return U;let[t,n]=e;return typeof t!="string"||typeof n!="string"?U:{ok:!0,value:[t,n]}},Gm=C({type:y,allowed_transitions:w(qm)}),Km=u(C({version:u(N({int:!0})),files:u(C({types:u(y),statuses:u(y),fields:u(y),workflows:u(y)})),statuses:u(w(Wm)),fields:u(w(Vm)),workflow:u(C({draft_status:u(y),open_status:u(y),in_progress_status:u(y),blocked_status:u(y),close_status:u(y),canceled_status:u(y)})),type_workflows:u(w(Gm)),unknown_field_policy:u(A(..._i))})),Xm=u(C({preset:u(A(...pi)),ownership_enforcement:u(A("none","warn","strict")),create_mode_default:u(A("progressive","strict")),close_validation_default:u(A("off","warn","strict")),require_close_reason:u(O),parent_reference:u(A("warn","strict_error")),metadata_profile:u(A("core","strict","custom")),force_required_for_stale_lock:u(O),create_default_type:u(y),workflow_enforcement:u(A("off","warn","strict")),duplicate_detection_mode:u(A("off","advisory","strict")),duplicate_detection_threshold:u(N({min:0,max:1})),duplicate_detection_limit:u(N({int:!0,min:0,max:20}))})),Ym=C({name:y,disabled:u(O),require_trusted:u(O),require_provenance:u(O),sandbox_profile:u(A("none","restricted","strict")),allowed_capabilities:u(w(y)),blocked_capabilities:u(w(y)),allowed_surfaces:u(w(y)),blocked_surfaces:u(w(y)),allowed_commands:u(w(y)),blocked_commands:u(w(y)),allowed_actions:u(w(y)),blocked_actions:u(w(y)),allowed_services:u(w(y)),blocked_services:u(w(y))}),Wo=A("block","warn"),Jm=e=>typeof e=="string"?Wo(e):C({global:u(Wo),project:u(Wo)})(e),Qm=u(C({mode:u(A("off","warn","enforce")),trust_mode:u(A("off","warn","enforce")),pm_max_version_exceeded_mode:u(Jm),require_provenance:u(O),trusted_extensions:u(w(y)),default_sandbox_profile:u(A("none","restricted","strict")),allowed_extensions:u(w(y)),blocked_extensions:u(w(y)),allowed_capabilities:u(w(y)),blocked_capabilities:u(w(y)),allowed_surfaces:u(w(y)),blocked_surfaces:u(w(y)),allowed_commands:u(w(y)),blocked_commands:u(w(y)),allowed_actions:u(w(y)),blocked_actions:u(w(y)),allowed_services:u(w(y)),blocked_services:u(w(y)),extension_overrides:u(w(Ym))})),Xe=Vo(128),Zm=C({harness:Vo(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u),environment_keys:u(w(Xe,64)),model_environment_keys:u(w(Xe,64)),session_environment_keys:u(w(Xe,64)),provenance_environment_keys:u(cr(w(Xe,64))),provenance_resolvers:u(cr(A("ai_agent_version","claude_session_file"))),provenance_unavailable_dimensions:u(w(Xe,64)),argv_markers:u(w(Xe,64)),client_names:u(w(Xe,64))}),e_=C({version:N({int:!0}),id_prefix:y,ids:u(C({token_length:u(N({int:!0,min:4,max:12}))})),author_default:y,agent_identity:u(C({probes_enabled:u(O),identity_vocabulary:u(C({version:N({int:!0,positive:!0}),aliases:cr(Vo(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u))})),harness_signals:w(Zm)})),mutation_guard:u(C({require_attributed_author:u(O),secret_guard:u(A("off","advise","block")),stale_in_progress_hours:u(N({int:!0,positive:!0}))})),item_format:u(A("toon","json_markdown")),locks:C({ttl_seconds:N({int:!0}),wait_ms:u(N({int:!0,min:0}))}),checkpoints:u(C({retention_days:u(N({int:!0,positive:!0}))})),output:C({default_format:A("toon","json")}),ux:u(C({deprecation_hints:u(O)})),history:u(C({missing_stream:A("auto_create","strict_error"),compact_policy:u(C({enabled:u(O),max_entries:u(N({int:!0,positive:!0})),trigger:u(A("health_warn","auto"))}))})),validation:u(C({sprint_release_format:A("warn","strict_error"),parent_reference:u(A("warn","strict_error")),metadata_profile:u(A("core","strict","custom")),metadata_required_fields:u(w(y)),lifecycle_stale_blocker_reason_patterns:u(w(y)),lifecycle_closure_like_blocked_reason_patterns:u(w(y)),lifecycle_closure_like_resolution_patterns:u(w(y)),lifecycle_closure_like_actual_result_patterns:u(w(y)),estimate_defaults_by_type:u(cr(N({int:!0,positive:!0})))})),governance:Xm,workflow:u(C({definition_of_done:w(y)})),testing:u(C({record_results_to_items:O,allow_untrusted_linked_tests:u(O)})),telemetry:u(C({enabled:O,first_run_prompt_completed:u(O),capture_level:u(A("minimal","redacted","max")),endpoint:u(y),installation_id:u(y),retention_days:u(N({int:!0,positive:!0}))})),agent_guidance:u(C({prompt_completed:u(O),declined:u(O),declined_at:u(y),template_version:u(N({int:!0,positive:!0})),last_checked_files:u(w(y))})),item_types:u(C({definitions:w(Bm)})),schema:Km,context:u(C({default_depth:u(A("brief","standard","deep")),activity_limit:u(N({int:!0,positive:!0})),stale_threshold_days:u(N({int:!0,positive:!0})),sections:u(C({hierarchy:u(O),activity:u(O),progress:u(O),recently_created:u(O),unparented:u(O),blockers:u(O),files:u(O),workload:u(O),staleness:u(O),tests:u(O)}))})),extensions:C({enabled:w(y),disabled:w(y),policy:Qm}),search:C({score_threshold:N(),hybrid_semantic_weight:u(N()),max_results:N({int:!0}),embedding_model:y,embedding_corpus_max_characters:u(N()),embedding_batch_size:N({int:!0}),embedding_timeout_ms:u(N({int:!0})),scanner_max_batch_retries:N({int:!0}),provider:u(y),default_mode:u(A("auto","keyword","semantic","hybrid")),corpus_fields:u(w(y)),mutation_refresh_policy:u(A("cache_only","semantic_configured","semantic_auto")),query_expansion:u(C({enabled:u(O),provider:u(y)})),rerank:u(C({enabled:u(O),model:u(y),top_k:u(N({int:!0,positive:!0}))})),bm25:u(C({k1:u(N()),b:u(N())}))}),providers:C({openai:C({base_url:y,api_key:y,model:y}),ollama:C({base_url:y,model:y})}),vector_store:C({adapter:u(y),collection_name:u(y),qdrant:C({url:y,api_key:y}),lancedb:C({path:y})})});function Xa(e){let t=e_(e);return t.ok?{success:!0,data:t.value}:{success:!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]="e2270ad2-349e-5e8c-b23c-3cf0645907dc")}catch{}})();function dr(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function qo(e,t,n,r=[]){if(oe(e,t)&&(r.length>0||dr(n)))return n;if(oe(e,n)||oe(t,n))return t;if((e===void 0||dr(e))&&dr(t)&&dr(n)){let o=e??{},i=new Set([...Object.keys(o),...Object.keys(t),...Object.keys(n)]);return Object.fromEntries([...i].flatMap(s=>{let a=qo(Object.hasOwn(o,s)?o[s]:void 0,Object.hasOwn(t,s)?t[s]:void 0,Object.hasOwn(n,s)?n[s]:void 0,[...r,s]);return a===void 0?[]:[[s,a]]}))}throw new v(`Settings changed concurrently at ${r.join(".")||"<root>"}; read the latest settings and reapply the intended change.`,b.CONFLICT,{reason:"stale_settings_snapshot",required:"Read a fresh settings snapshot and reapply the intended change.",why:"Another writer changed the same setting after this snapshot was read.",examples:["pm config project export --json"],nextSteps:["Read the current settings, then retry the original config operation."]})}(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]="833a4f8a-7e5d-5480-a526-4e1ebaadd0a8")}catch{}})();var t_={Epic:2880,Feature:480,Story:480,Milestone:2880,Task:120,Issue:60,Bug:60,Chore:30,Decision:15,Plan:120},Ya=120;function Go(e){return typeof e=="number"&&Number.isFinite(e)&&e>0}function Qa(e){let t=new Map;for(let[n,r]of Object.entries(e))t.set(n.toLowerCase(),r);return t}var n_=Qa(t_),Ja=new WeakMap;function r_(e){let t=Ja.get(e);if(t)return t;let n=Qa(e);return Ja.set(e,n),n}function sb(e,t){let n=(e??"").trim().toLowerCase();if(n.length===0)return Ya;if(t){let o=r_(t).get(n);if(Go(o))return Math.floor(o)}let r=n_.get(n);return Go(r)?Math.floor(r):Ya}function Ko(e){let t={};if(e===null||typeof e!="object"||Array.isArray(e))return t;for(let[n,r]of Object.entries(e)){let o=n.trim();o.length===0||!Go(r)||(t[o]=Math.floor(r))}return t}import{stat as o_}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]="7c23ef10-ea7a-5680-8850-822e7d0c07a6")}catch{}})();var lr=new Map;function Za(e){return[...new Set(e.map(t=>t.trim()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}async function i_(e){try{let t=await o_(e);return{path:e,mtime_ms:t.mtimeMs,size:t.size}}catch{return{path:e,mtime_ms:null,size:null}}}async function Re(e){let t=Za(e),n=await Promise.all(t.map(r=>i_(r)));return n.sort((r,o)=>r.path.localeCompare(o.path)),n}function Yt(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1){let r=e[n],o=t[n];if(r.path!==o.path||r.mtime_ms!==o.mtime_ms||r.size!==o.size)return!1}return!0}function ec(e){return lr.get(e)}function ur(e,t){let n=Za(t.tracked_paths),r=[...t.signatures].map(o=>({path:o.path,mtime_ms:o.mtime_ms,size:o.size})).sort((o,i)=>o.path.localeCompare(i.path));lr.set(e,{tracked_paths:n,signatures:r,value:t.value})}function Ae(e){if(e){lr.delete(e);return}lr.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]="2a28912a-5f26-5557-bc94-cfedbd602fd0")}catch{}})();var s_="settings:write",ic=Symbol("pm.settings.persist_source"),a_=128,c_=new Set(["off","advisory","strict"]);function tc(e){return structuredClone(yi[e])}function d_(e){return e==="minimal"||e==="default"||e==="strict"||e==="custom"?e:k.governance.preset}function nc(e,t){let n=typeof t.create_default_type=="string"?t.create_default_type.trim():void 0;return n&&n.length>0&&(e.create_default_type=n),(t.workflow_enforcement==="off"||t.workflow_enforcement==="warn"||t.workflow_enforcement==="strict")&&(e.workflow_enforcement=t.workflow_enforcement),t.require_close_reason===!1&&(e.require_close_reason=!1),e.duplicate_detection_mode=t.duplicate_detection_mode,e.duplicate_detection_threshold=t.duplicate_detection_threshold,e.duplicate_detection_limit=t.duplicate_detection_limit,e}function l_(e){return e.preset==="custom"?nc({preset:"custom",ownership_enforcement:e.ownership_enforcement,create_mode_default:e.create_mode_default,close_validation_default:e.close_validation_default,parent_reference:e.parent_reference,metadata_profile:e.metadata_profile,force_required_for_stale_lock:e.force_required_for_stale_lock},e):nc({preset:e.preset},e)}function u_(e){let t=typeof e.create_default_type=="string"?e.create_default_type.trim():void 0,n={};t&&t.length>0&&(n.create_default_type=t),(e.workflow_enforcement==="off"||e.workflow_enforcement==="warn"||e.workflow_enforcement==="strict")&&(n.workflow_enforcement=e.workflow_enforcement),typeof e.require_close_reason=="boolean"&&(n.require_close_reason=e.require_close_reason),c_.has(String(e.duplicate_detection_mode))&&(n.duplicate_detection_mode=e.duplicate_detection_mode);let r=e.duplicate_detection_threshold;[typeof r=="number",Number.isFinite(r),Number(r)>=0,Number(r)<=1].every(Boolean)&&(n.duplicate_detection_threshold=r);let o=e.duplicate_detection_limit;return[typeof o=="number",Number.isSafeInteger(o),Number(o)>=0,Number(o)<=20].every(Boolean)&&(n.duplicate_detection_limit=o),n}function mr(e){let t=e.governance??{},n=d_(t.preset),r=u_(t);if(n==="custom"){let s=tc("default"),a=r.require_close_reason??s.require_close_reason;return{preset:n,ownership_enforcement:t.ownership_enforcement??s.ownership_enforcement,create_mode_default:t.create_mode_default??s.create_mode_default,close_validation_default:t.close_validation_default??s.close_validation_default,parent_reference:t.parent_reference??s.parent_reference,metadata_profile:t.metadata_profile??s.metadata_profile,force_required_for_stale_lock:t.force_required_for_stale_lock??s.force_required_for_stale_lock,...r,require_close_reason:a,duplicate_detection_mode:r.duplicate_detection_mode??s.duplicate_detection_mode,duplicate_detection_threshold:r.duplicate_detection_threshold??s.duplicate_detection_threshold,duplicate_detection_limit:r.duplicate_detection_limit??s.duplicate_detection_limit}}let o=tc(n),i=r.require_close_reason??o.require_close_reason;return{preset:n,...o,...r,require_close_reason:i}}function sc(){return structuredClone(k)}function ac(e){return e==="cache_only"||e==="semantic_configured"||e==="semantic_auto"?e:k.search.mutation_refresh_policy}function cc(e){return e==="auto"||e==="keyword"||e==="semantic"||e==="hybrid"?e:"auto"}function dc(e){return typeof e=="boolean"?e:k.search.query_expansion.enabled}function lc(e){return typeof e!="string"?k.search.query_expansion.provider:e.trim()}function uc(e){return typeof e=="boolean"?e:k.search.rerank.enabled}function fc(e){return typeof e!="string"?k.search.rerank.model:e.trim()}function mc(e){return typeof e=="number"&&Number.isFinite(e)&&Number.isInteger(e)&&e>0?e:k.search.rerank.top_k}function _c(e){if(typeof e!="string")return k.vector_store.collection_name;let n=e.trim().replaceAll(/[^a-zA-Z0-9_-]/g,"_").slice(0,a_);return n.length>0?n:k.vector_store.collection_name}function Xo(e){return{present:Array.isArray(e),values:Array.isArray(e)?structuredClone(e):[]}}function f_(e,t){let n=e.schema,r=Xo(n?.statuses),o=Xo(n?.fields),i=Xo(n?.type_workflows);return{persisted_settings:structuredClone(e),source_settings:structuredClone(e),has_source_item_type_definitions:Array.isArray(e.item_types?.definitions),source_item_type_definitions:gt(e.item_types?.definitions),has_source_schema_statuses:r.present,source_schema_statuses:r.values,has_source_schema_fields:o.present,source_schema_fields:o.values,has_source_schema_type_workflows:i.present,source_schema_type_workflows:i.values,runtime_item_type_definitions:gt(t.item_types?.definitions),runtime_schema_statuses:structuredClone(t.schema.statuses),runtime_schema_fields:structuredClone(t.schema.fields),runtime_schema_type_workflows:structuredClone(t.schema.type_workflows??[])}}function ei(e,t){Object.defineProperty(e,ic,{value:t,writable:!0,configurable:!0,enumerable:!1})}function pc(e){let t=e[ic];if(!(!t||typeof t!="object"))return t}function fr(e){let t=structuredClone(e.settings),n=pc(e.settings);return n&&ei(t,n),{settings:t,metadata:{has_explicit_item_format:e.metadata.has_explicit_item_format},warnings:[...e.warnings]}}function m_(e,t,n){let r=Tt(t);return[n,Ct(e,r.files.types,St.types),Ct(e,r.files.statuses,St.statuses),Ct(e,r.files.fields,St.fields),Ct(e,r.files.workflows,St.workflows)]}async function __(e,t,n){let r=await Re(t);ur(e,{tracked_paths:t,signatures:r,value:fr(n)})}async function p_(e,t,n){try{await __(e,t,n)}catch{Ae(e)}}function rc(e,t){return e.find(n=>n.path===t)}function h_(e,t,n){for(let r of n){let o=rc(e,r),i=rc(t,r);if(!o||!i||!Yt([o],[i]))return!1}return!0}async function Yo(e,t,n,r,o){try{let i=await Re(t);if(!h_(r,i,o)){Ae(e);return}ur(e,{tracked_paths:t,signatures:i,value:fr(n)})}catch{Ae(e)}}function y_(e,t){let n=Tt(e.schema),r=gt(e.item_types?.definitions);if(!t)return{item_type_definitions:r,schema_statuses:n.statuses,schema_fields:n.fields,schema_type_workflows:n.type_workflows};let o=n.type_workflows??[],i=oe(r,t.runtime_item_type_definitions),s=oe(n.statuses,t.runtime_schema_statuses),a=oe(n.fields,t.runtime_schema_fields),c=oe(o,t.runtime_schema_type_workflows);return{item_type_definitions:i?t.has_source_item_type_definitions?gt(t.source_item_type_definitions):[]:r,schema_statuses:s?t.has_source_schema_statuses?structuredClone(t.source_schema_statuses):[]:n.statuses,schema_fields:a?t.has_source_schema_fields?structuredClone(t.source_schema_fields):[]:n.fields,schema_type_workflows:c?t.has_source_schema_type_workflows?structuredClone(t.source_schema_type_workflows):void 0:n.type_workflows}}function Jt(e){return{settings:sc(),metadata:{has_explicit_item_format:!1},warnings:e?[e]:[]}}function g_(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=e.item_format;return t==="toon"||t==="json_markdown"}function Qo(e){return[...new Set((e??[]).map(t=>t.trim()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function hc(e){let t=k.agent_guidance,n=e?.template_version;return{prompt_completed:e?.prompt_completed===!0,declined:e?.declined===!0,declined_at:typeof e?.declined_at=="string"?e.declined_at:t.declined_at,template_version:typeof n=="number"&&Number.isInteger(n)&&n>0?n:t.template_version,last_checked_files:Qo(e?.last_checked_files??t.last_checked_files)}}function re(e){return[...new Set((e??[]).map(t=>t.trim().toLowerCase()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function v_(e){return e==="off"||e==="warn"||e==="enforce"?e:k.extensions.policy.mode}function b_(e){return e==="off"||e==="warn"||e==="enforce"?e:k.extensions.policy.trust_mode}function yc(e){return e==="none"||e==="restricted"||e==="strict"?e:k.extensions.policy.default_sandbox_profile}function w_(e){let t=e.name.trim().toLowerCase();if(t.length===0)return null;let n={name:t};e.disabled===!0&&(n.disabled=!0),e.require_trusted===!0&&(n.require_trusted=!0),e.require_provenance===!0&&(n.require_provenance=!0),e.sandbox_profile!==void 0&&(n.sandbox_profile=yc(e.sandbox_profile));let r=re(e.allowed_capabilities),o=re(e.blocked_capabilities),i=re(e.allowed_surfaces),s=re(e.blocked_surfaces),a=re(e.allowed_commands),c=re(e.blocked_commands),d=re(e.allowed_actions),l=re(e.blocked_actions),f=re(e.allowed_services),m=re(e.blocked_services);return r.length>0&&(n.allowed_capabilities=r),o.length>0&&(n.blocked_capabilities=o),i.length>0&&(n.allowed_surfaces=i),s.length>0&&(n.blocked_surfaces=s),a.length>0&&(n.allowed_commands=a),c.length>0&&(n.blocked_commands=c),d.length>0&&(n.allowed_actions=d),l.length>0&&(n.blocked_actions=l),f.length>0&&(n.allowed_services=f),m.length>0&&(n.blocked_services=m),n}function E_(e){let t=new Map;for(let n of e??[]){let r=w_(n);r&&t.set(r.name,r)}return[...t.values()].sort((n,r)=>n.name.localeCompare(r.name))}function Jo(e){return e==="block"||e==="warn"?e:void 0}function k_(e){if(typeof e=="string")return Jo(e);if(typeof e=="object"&&e!==null&&!Array.isArray(e)){let t=Jo(e.global),n=Jo(e.project);return t===void 0&&n===void 0?void 0:{...t!==void 0?{global:t}:{},...n!==void 0?{project:n}:{}}}}function Y(e,t){return re(e?.[t]??k.extensions.policy[t])}function gc(e){let t=k_(e?.pm_max_version_exceeded_mode);return{mode:v_(e?.mode),trust_mode:b_(e?.trust_mode),...t!==void 0?{pm_max_version_exceeded_mode:t}:{},require_provenance:e?.require_provenance===!0,trusted_extensions:Y(e,"trusted_extensions"),default_sandbox_profile:yc(e?.default_sandbox_profile),allowed_extensions:Y(e,"allowed_extensions"),blocked_extensions:Y(e,"blocked_extensions"),allowed_capabilities:Y(e,"allowed_capabilities"),blocked_capabilities:Y(e,"blocked_capabilities"),allowed_surfaces:Y(e,"allowed_surfaces"),blocked_surfaces:Y(e,"blocked_surfaces"),allowed_commands:Y(e,"allowed_commands"),blocked_commands:Y(e,"blocked_commands"),allowed_actions:Y(e,"allowed_actions"),blocked_actions:Y(e,"blocked_actions"),allowed_services:Y(e,"allowed_services"),blocked_services:Y(e,"blocked_services"),extension_overrides:E_(e?.extension_overrides??k.extensions.policy.extension_overrides)}}function vc(e){return[...new Set((e??[]).map(n=>n.trim().toLowerCase().replaceAll("-","_")))].filter(n=>n.length>0).sort((n,r)=>n.localeCompare(r)).filter(n=>["author","acceptance_criteria","estimated_minutes","close_reason","reviewer","risk","confidence","sprint","release"].includes(n))}function De(e){return[...new Set((e??[]).map(t=>t.trim().toLowerCase()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function H(e,t){return e===void 0?t:e}function J(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:{}}function Zo(e){return Array.isArray(e)?e:[]}function I_(e,t,n){return{...t.validation,...e.validation,parent_reference:n.parent_reference,metadata_profile:n.metadata_profile,metadata_required_fields:vc(e.validation?.metadata_required_fields),lifecycle_stale_blocker_reason_patterns:De(e.validation?.lifecycle_stale_blocker_reason_patterns??t.validation.lifecycle_stale_blocker_reason_patterns),lifecycle_closure_like_blocked_reason_patterns:De(e.validation?.lifecycle_closure_like_blocked_reason_patterns??t.validation.lifecycle_closure_like_blocked_reason_patterns),lifecycle_closure_like_resolution_patterns:De(e.validation?.lifecycle_closure_like_resolution_patterns??t.validation.lifecycle_closure_like_resolution_patterns),lifecycle_closure_like_actual_result_patterns:De(e.validation?.lifecycle_closure_like_actual_result_patterns??t.validation.lifecycle_closure_like_actual_result_patterns),estimate_defaults_by_type:Ko(e.validation?.estimate_defaults_by_type)}}function S_(e,t){return{enabled:e.telemetry?.enabled??t.telemetry.enabled,first_run_prompt_completed:e.telemetry?.first_run_prompt_completed??t.telemetry.first_run_prompt_completed,capture_level:e.telemetry?.capture_level??t.telemetry.capture_level,endpoint:e.telemetry?.endpoint??t.telemetry.endpoint,installation_id:e.telemetry?.installation_id??t.telemetry.installation_id,retention_days:e.telemetry?.retention_days??t.telemetry.retention_days}}function T_(e,t){return{...t.search,...e.search,default_mode:cc(e.search?.default_mode),mutation_refresh_policy:ac(e.search?.mutation_refresh_policy),query_expansion:{...t.search.query_expansion,...e.search?.query_expansion,enabled:dc(e.search?.query_expansion?.enabled),provider:lc(e.search?.query_expansion?.provider)},rerank:{...t.search.rerank,...e.search?.rerank,enabled:uc(e.search?.rerank?.enabled),model:fc(e.search?.rerank?.model),top_k:mc(e.search?.rerank?.top_k)}}}function C_(e,t){return{adapter:e.vector_store.adapter??t.vector_store.adapter,collection_name:_c(e.vector_store.collection_name),qdrant:{...t.vector_store.qdrant,...e.vector_store.qdrant},lancedb:{...t.vector_store.lancedb,...e.vector_store.lancedb}}}function O_(e,t){return e.item_format==="json_markdown"?"toon":e.item_format??t.item_format}function x_(e,t){return{default_depth:e.context?.default_depth??t.context.default_depth,activity_limit:e.context?.activity_limit??t.context.activity_limit,stale_threshold_days:e.context?.stale_threshold_days??t.context.stale_threshold_days,sections:{...t.context.sections,...e.context?.sections}}}function R_(e,t){return{openai:{...t.providers.openai,...e.providers.openai},ollama:{...t.providers.ollama,...e.providers.ollama}}}function gt(e){let t=(e??[]).map(r=>Ei(r)).filter(r=>r!==null),n=new Map;for(let r of t)n.set(r.name.toLowerCase(),r);return[...n.values()].sort((r,o)=>r.name.localeCompare(o.name))}function bc(e){let t=sc(),n=mr({governance:e.governance??{preset:"default"}});return{...t,...e,item_format:O_(e,t),locks:{...t.locks,...e.locks},ids:{...t.ids,...e.ids},agent_identity:structuredClone(e.agent_identity??t.agent_identity),mutation_guard:{...t.mutation_guard,...e.mutation_guard},checkpoints:{...t.checkpoints,...e.checkpoints},output:{...t.output,...e.output},ux:{...t.ux,...e.ux},history:{...t.history,...e.history,compact_policy:{...t.history.compact_policy,...e.history?.compact_policy}},validation:I_(e,t,n),governance:n,workflow:{definition_of_done:[...e.workflow?.definition_of_done??t.workflow.definition_of_done]},testing:{record_results_to_items:e.testing?.record_results_to_items??t.testing.record_results_to_items,allow_untrusted_linked_tests:e.testing?.allow_untrusted_linked_tests??t.testing.allow_untrusted_linked_tests},telemetry:S_(e,t),agent_guidance:hc(e.agent_guidance??t.agent_guidance),item_types:{definitions:gt(e.item_types?.definitions)},schema:Tt(e.schema??t.schema),context:x_(e,t),extensions:{enabled:[...e.extensions.enabled],disabled:[...e.extensions.disabled],policy:gc(e.extensions.policy??t.extensions.policy)},search:T_(e,t),providers:R_(e,t),vector_store:C_(e,t)}}function A_(e){e.agent_identity=T(e.agent_identity,["probes_enabled","identity_vocabulary","harness_signals"]);let t=e.agent_identity;Object.hasOwn(t,"identity_vocabulary")&&(t.identity_vocabulary=T(J(t.identity_vocabulary),["version","aliases"])),e.agent_identity.harness_signals=Zo(e.agent_identity.harness_signals).map(n=>T(J(n),["harness","environment_keys","model_environment_keys","session_environment_keys","provenance_environment_keys","provenance_resolvers","provenance_unavailable_dimensions","argv_markers","client_names"])),e.locks=T(e.locks,["ttl_seconds","wait_ms"]),e.ids=T(e.ids,["token_length"]),e.mutation_guard=T(e.mutation_guard,["require_attributed_author","secret_guard","stale_in_progress_hours"]),e.checkpoints=T(e.checkpoints,["retention_days"]),e.output=T(e.output,["default_format"]),e.ux=T(e.ux,["deprecation_hints"]),e.history=T(e.history,["missing_stream","compact_policy"]),e.validation=T(e.validation,["sprint_release_format","parent_reference","metadata_profile","metadata_required_fields","lifecycle_stale_blocker_reason_patterns","lifecycle_closure_like_blocked_reason_patterns","lifecycle_closure_like_resolution_patterns","lifecycle_closure_like_actual_result_patterns","estimate_defaults_by_type"]),e.governance=T(e.governance,["preset","ownership_enforcement","create_mode_default","close_validation_default","require_close_reason","parent_reference","metadata_profile","force_required_for_stale_lock","create_default_type","workflow_enforcement","duplicate_detection_mode","duplicate_detection_threshold","duplicate_detection_limit"]),e.workflow=T(e.workflow,["definition_of_done"]),e.testing=T(e.testing,["record_results_to_items","allow_untrusted_linked_tests"]),e.telemetry=T(e.telemetry,["enabled","first_run_prompt_completed","capture_level","endpoint","installation_id","retention_days"]),e.agent_guidance=T(e.agent_guidance,["prompt_completed","declined","declined_at","template_version","last_checked_files"]),e.item_types=T(e.item_types,["definitions"]),e.schema=T(e.schema,["version","files","statuses","fields","workflow","type_workflows","unknown_field_policy"]),e.schema.files=T(J(e.schema.files),["types","statuses","fields","workflows"]),e.schema.workflow=T(J(e.schema.workflow),["draft_status","open_status","in_progress_status","blocked_status","close_status","canceled_status"]),e.context=T(e.context,["default_depth","activity_limit","stale_threshold_days","sections"]),e.context.sections=T(J(e.context.sections),["hierarchy","activity","progress","blockers","files","workload","staleness","tests"]),e.extensions=T(e.extensions,["enabled","disabled","policy"]),e.extensions.policy=T(J(e.extensions.policy),["mode","trust_mode","pm_max_version_exceeded_mode","require_provenance","trusted_extensions","default_sandbox_profile","allowed_extensions","blocked_extensions","allowed_capabilities","blocked_capabilities","allowed_surfaces","blocked_surfaces","allowed_commands","blocked_commands","allowed_actions","blocked_actions","allowed_services","blocked_services","extension_overrides"]),e.extensions.policy.extension_overrides=Zo(e.extensions.policy.extension_overrides).map(n=>T(J(n),["name","disabled","require_trusted","require_provenance","sandbox_profile","allowed_capabilities","blocked_capabilities","allowed_surfaces","blocked_surfaces","allowed_commands","blocked_commands","allowed_actions","blocked_actions","allowed_services","blocked_services"])),e.search=T(e.search,["score_threshold","hybrid_semantic_weight","max_results","embedding_model","embedding_corpus_max_characters","embedding_batch_size","embedding_timeout_ms","scanner_max_batch_retries","provider","default_mode","mutation_refresh_policy","query_expansion","rerank"]),e.search.query_expansion=T(J(e.search.query_expansion),["enabled","provider"]),e.search.rerank=T(J(e.search.rerank),["enabled","model","top_k"]),e.providers=T(e.providers,["openai","ollama"]),e.providers.openai=T(J(e.providers.openai),["base_url","api_key","model"]),e.providers.ollama=T(J(e.providers.ollama),["base_url","model"]),e.vector_store=T(e.vector_store,["adapter","collection_name","qdrant","lancedb"]),e.vector_store.qdrant=T(J(e.vector_store.qdrant),["url","api_key"]),e.vector_store.lancedb=T(J(e.vector_store.lancedb),["path"])}function D_(e){return{...e,locks:H(e.locks,k.locks),ids:H(e.ids,k.ids),agent_identity:H(e.agent_identity,k.agent_identity),mutation_guard:H(e.mutation_guard,k.mutation_guard),checkpoints:H(e.checkpoints,k.checkpoints),output:H(e.output,k.output),ux:H(e.ux,k.ux),history:H(e.history,k.history),validation:H(e.validation,k.validation),workflow:H(e.workflow,k.workflow),testing:H(e.testing,k.testing),telemetry:H(e.telemetry,k.telemetry),agent_guidance:H(e.agent_guidance,k.agent_guidance),item_types:H(e.item_types,k.item_types),schema:H(e.schema,k.schema),context:H(e.context,k.context),extensions:H(e.extensions,k.extensions),search:H(e.search,k.search),providers:H(e.providers,k.providers),vector_store:H(e.vector_store,k.vector_store)}}function N_(e,t){return{...e.validation,parent_reference:t.parent_reference,metadata_profile:t.metadata_profile,metadata_required_fields:vc(e.validation?.metadata_required_fields),lifecycle_stale_blocker_reason_patterns:De(e.validation?.lifecycle_stale_blocker_reason_patterns??k.validation.lifecycle_stale_blocker_reason_patterns),lifecycle_closure_like_blocked_reason_patterns:De(e.validation?.lifecycle_closure_like_blocked_reason_patterns??k.validation.lifecycle_closure_like_blocked_reason_patterns),lifecycle_closure_like_resolution_patterns:De(e.validation?.lifecycle_closure_like_resolution_patterns??k.validation.lifecycle_closure_like_resolution_patterns),lifecycle_closure_like_actual_result_patterns:De(e.validation?.lifecycle_closure_like_actual_result_patterns??k.validation.lifecycle_closure_like_actual_result_patterns),estimate_defaults_by_type:Ko(e.validation?.estimate_defaults_by_type)}}function L_(e){return{...k.search,...e.search,default_mode:cc(e.search?.default_mode),mutation_refresh_policy:ac(e.search?.mutation_refresh_policy),query_expansion:{...k.search.query_expansion,...e.search?.query_expansion,enabled:dc(e.search?.query_expansion?.enabled),provider:lc(e.search?.query_expansion?.provider)},rerank:{...k.search.rerank,...e.search?.rerank,enabled:uc(e.search?.rerank?.enabled),model:fc(e.search?.rerank?.model),top_k:mc(e.search?.rerank?.top_k)}}}function P_(e){return{default_depth:e.context?.default_depth??k.context.default_depth,activity_limit:e.context?.activity_limit??k.context.activity_limit,stale_threshold_days:e.context?.stale_threshold_days??k.context.stale_threshold_days,sections:{...k.context.sections,...e.context?.sections}}}function M_(e){return{...e.vector_store,adapter:e.vector_store?.adapter??k.vector_store.adapter,collection_name:_c(e.vector_store?.collection_name),qdrant:{...e.vector_store?.qdrant},lancedb:{...e.vector_store?.lancedb}}}function j_(e,t,n,r){return{...e,item_format:"toon",validation:N_(e,t),governance:t,agent_guidance:hc(e.agent_guidance),item_types:{definitions:r.item_type_definitions},schema:{...n,statuses:r.schema_statuses,fields:r.schema_fields,type_workflows:r.schema_type_workflows},search:L_(e),context:P_(e),extensions:{enabled:Qo(e.extensions?.enabled),disabled:Qo(e.extensions?.disabled),policy:gc(e.extensions?.policy)},vector_store:M_(e)}}function wc(e,t,n){let r=new Set([...Object.keys(t),...Object.keys(n)]);for(let o of r){let i=t[o],s=n[o];if(!oe(i,s)){if(s===void 0){delete e[o];continue}if(typeof i=="object"&&i!==null&&!Array.isArray(i)&&typeof s=="object"&&s!==null&&!Array.isArray(s)){let a=e[o],c=typeof a=="object"&&a!==null&&!Array.isArray(a)?a:{};wc(c,i,s),Object.keys(c).length>0?e[o]=c:delete e[o];continue}e[o]=structuredClone(s)}}}var ti=["version","id_prefix","ids","author_default","agent_identity","mutation_guard","item_format","locks","checkpoints","output","ux","history","validation","governance","workflow","testing","telemetry","agent_guidance","item_types","schema","context","extensions","search","providers","vector_store"];function oc(e,t){let n=D_(e),r=mr(n),o=Tt(n.schema),i=y_(n,t),s=j_(n,r,o,i),a=T({...s,governance:l_(r)},ti);return A_(a),a}function F_(e,t={}){let n=oc(e,t.persist_source);if(t.persist_source){let r=bc(t.persist_source.source_settings);r.item_types={definitions:structuredClone(t.persist_source.runtime_item_type_definitions)},r.schema={...r.schema,statuses:structuredClone(t.persist_source.runtime_schema_statuses),fields:structuredClone(t.persist_source.runtime_schema_fields),type_workflows:structuredClone(t.persist_source.runtime_schema_type_workflows)};let o=oc(r,t.persist_source),i=structuredClone(t.persist_source.source_settings);return wc(i,o,n),`${JSON.stringify(T(i,ti),null,2)}
|
|
161
|
+
LIMIT ?`).all(e.query,Math.max(0,Math.floor(e.limit))).map(s=>JSON.parse(String(s.metadata_json)));return n.close(),{source_cursor:r.source_cursor,items:i}}catch{return n?.close(),null}}async function Yn(e){await Xe.rm(pt(e),{force:!0})}import B from"node:fs/promises";import M from"node:path";import{createHash as vf,randomUUID as Ra}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]="1c60c095-9763-5372-9dc3-c0ea1a5caca6")}catch{}})();var ae=8,Aa=500,bf="metadata-derived-index",wf="metadata-cache.json",Ef="metadata-cache-bodies.json",kf="metadata-cache-collections.json",If="metadata-cache-delta.json",Sf="metadata-cache-manifest.json",Ta=4,Tf=["comments","notes","learnings","files","tests","test_runs","docs"];function Da(){return sn(ue())}function Qn(e){let t={...e},n={};for(let r of Tf)r in t&&(n[r]=t[r],delete t[r]);return{light:t,heavy:n}}function Na(e,t){return!t||Object.keys(t).length===0?e:{...e,...t}}function La(e,t,n,r){let o=vf("sha256");o.update(`format:${e??"default"}`);let i=Object.entries(t).sort(([s],[a])=>s.localeCompare(a)).map(([s,a])=>`${s}=${a}`).join(",");return o.update(`|types:${i}`),n&&o.update(`|schema:${JSON.stringify(n)}`),r.length>0&&o.update(`|extension_fields:${r.join(",")}`),o.digest("hex").slice(0,16)}function Zn(e){return M.join(e,"runtime",wf)}function er(e){return M.join(e,"runtime",Ef)}function tr(e){return M.join(e,"runtime",kf)}function Oo(e){return M.join(e,"runtime",If)}function xo(e){return M.join(e,"runtime",Sf)}function nr(e,t){let n=M.extname(e);return`${e.slice(0,-n.length)}.${t}${n}`}var Cf=24,Z=new Map,rr=new WeakMap;function Ro(e){return rr.get(e)??e.source_cursor}function Of(e,t){let n=Ro(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){rr.set(e,n);for(let[r,o]of Object.entries(t.changes))o.entry?e.entries[r]=o.entry:delete e.entries[r];e.directory_signatures=t.directory_signatures,e.source_cursor=t.source_cursor}}function xf(e,t){if(!e)return;let n=Ro(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){rr.set(e,n);for(let[r,o]of Object.entries(t.changes))o.body?e.bodies[r]=o.body:delete e.bodies[r];e.source_cursor=t.source_cursor}}function Rf(e,t){if(!e)return;let n=Ro(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){rr.set(e,n);for(let[r,o]of Object.entries(t.changes))o.collections?e.collections[r]=o.collections:delete e.collections[r];e.source_cursor=t.source_cursor}}function Af(e,t,n,r){!e||!r||e.context_fingerprint!==r.context_fingerprint||(Of(e,r),xf(t,r),Rf(n,r))}function Co(e,t){Z.size>=Cf&&!Z.has(e)&&Ri(Z),Z.set(e,t)}async function xe(e,t){let n;try{n=await B.stat(e)}catch{return Z.delete(e),null}let r=Z.get(e);if(r&&Ut(r.signature,n.mtimeMs,n.ctimeMs,n.size))return Z.delete(e),Z.set(e,r),r.envelope;let o;try{o=t(await B.readFile(e,"utf8"))}catch{o=null}return Co(e,{signature:{mtime_ms:n.mtimeMs,ctime_ms:n.ctimeMs,size:n.size},envelope:o}),o}async function Df(e,t,n){let r=a=>{let c=JSON.parse(a);return c.version!==ae||typeof c.source_cursor!="string"||typeof c.entries!="object"||c.entries===null?null:c},o=Zn(e),i=await xe(o,r);if(!t||i===null||i.context_fingerprint===t)return i;let s=await xe(nr(o,t),r);return s===null&&Vt(n,`metadata_cache_context_changed:${i.context_fingerprint}->${t}`),s}async function Nf(e,t){let n=i=>{let s=JSON.parse(i);return s.version!==ae||typeof s.source_cursor!="string"||typeof s.bodies!="object"||s.bodies===null?null:s},r=er(e),o=await xe(r,n);return t&&o?.context_fingerprint!==t?await xe(nr(r,t),n):o}async function Lf(e,t){let n=i=>{let s=JSON.parse(i);return s.version!==ae||typeof s.source_cursor!="string"||typeof s.collections!="object"||s.collections===null?null:s},r=tr(e),o=await xe(r,n);return t&&o?.context_fingerprint!==t?await xe(nr(r,t),n):o}async function Ao(e){let t=Oo(e),n=await xe(t,r=>{let o=JSON.parse(r);return o.version!==ae||typeof o.base_source_cursor!="string"||typeof o.source_cursor!="string"||typeof o.changes!="object"||o.changes===null?null:o});if(n)return{envelope:n,invalid:!1};try{return await B.stat(t),{envelope:null,invalid:!0}}catch{return{envelope:null,invalid:!1}}}async function Do(e){let t=xo(e),n=await xe(t,r=>{let o=JSON.parse(r);return o.version!==ae||typeof o.context_fingerprint!="string"||typeof o.source_cursor!="string"||!Number.isInteger(o.entry_count)||o.entry_count<0||typeof o.directory_signatures!="object"||o.directory_signatures===null?null:o});if(n)return n;try{await B.stat(t),await ht(e)}catch{}return null}async function Bt(e,t){await B.mkdir(M.dirname(e),{recursive:!0}),await X(e,JSON.stringify(t));try{let r=await B.stat(e);Co(e,{signature:{mtime_ms:r.mtimeMs,ctime_ms:r.ctimeMs,size:r.size},envelope:t})}catch{Z.delete(e)}let n=M.dirname(M.dirname(e));if(e===Zn(n)||e===er(n)||e===tr(n)){let r=nr(e,t.context_fingerprint);await X(r,JSON.stringify(t));try{let c=await B.stat(r);Co(r,{signature:{mtime_ms:c.mtimeMs,ctime_ms:c.ctimeMs,size:c.size},envelope:t})}catch{Z.delete(r)}let o=M.dirname(e),i=M.extname(e),s=M.basename(e,i),a=(await B.readdir(o,{withFileTypes:!0}).catch(()=>[])).filter(c=>c.isFile()&&c.name!==M.basename(e)&&c.name.startsWith(`${s}.`)&&c.name.endsWith(i)).map(c=>M.join(o,c.name));if(a.length>Ta){let c=(await Promise.all(a.map(async d=>{try{return{path:d,mtime:(await B.stat(d)).mtimeMs}}catch{return null}}))).filter(d=>d!==null);for(let d of c.sort((l,f)=>l.mtime-f.mtime).slice(0,Math.max(0,c.length-Ta)))await B.rm(d.path,{force:!0}),Z.delete(d.path)}}}function Pf(e,t,n){return n?t===n&&e!==n:t==="toon"&&e!=="toon"}function Pa(e,t,n){return e===void 0||Pf(e,t,n)}function Vt(e,t){e&&!e.includes(t)&&e.push(t)}function Ut(e,t,n,r){return e.mtime_ms===t&&e.ctime_ms===n&&e.size===r}async function Mf(e,t,n){let r=M.join(e,t);try{let o=await B.readdir(r);return{folder:t,dirPath:r,files:o}}catch(o){return typeof o=="object"&&o!==null&&"code"in o&&!te(o)&&Vt(n,`item_list_directory_read_failed:${t}`),{folder:t,dirPath:r,files:[]}}}async function jf(e,t){try{let n=await B.stat(M.join(e,t));return[t,{exists:!0,mtime_ms:n.mtimeMs,ctime_ms:n.ctimeMs,size:n.size}]}catch{return[t,{exists:!1,mtime_ms:0,ctime_ms:0,size:0}]}}async function Jn(e,t){return Object.fromEntries(await Promise.all(t.map(async n=>await jf(e,n))))}function Wt(e,t){return!e||Object.keys(e).length!==Object.keys(t).length?!1:Object.entries(t).every(([n,r])=>{let o=e[n];return o!==void 0&&o.exists===r.exists&&Ut(o,r.mtime_ms,r.ctime_ms,r.size)})}function Ff(e){return cn.some(t=>e.toLowerCase().endsWith(t))}function $f(e,t,n,r,o,i){r||(e.metadata=!0),t&&!o&&(e.body=!0),n&&!i&&(e.collections=!0)}async function Hf(e,t,n){if(n)for(let r of await Ee({path:e,scope:"project"}))Vt(t,r)}function Ca(e,t,n,r){if(e)return t&&n?n.collections:r}async function zf(e,t,n){let r=await B.stat(e),o=r.mtimeMs,i=r.ctimeMs,{size:s}=r,a=Ir(e);await Hf(e,n.warnings,n.dispatchReadHooks);let c=n.previousEntries[t],d=!n.forceSourceRead&&c!==void 0&&Ut(c,o,i,s),l=n.previousBodies[t],f=!n.forceSourceRead&&l!==void 0&&Ut(l,o,i,s),m=n.previousCollections[t],p=!n.forceSourceRead&&m!==void 0&&Ut(m,o,i,s);if(!(!d||n.includeBody&&!f||n.includeCollections&&!p))return{mtimeMs:o,ctimeMs:i,size:s,itemFormat:a,lightMetadata:c.metadata,heavyMetadata:Ca(n.includeCollections,p,m,void 0),bodyLength:c.body_length,body:n.includeBody?l.body:void 0};let g=await B.readFile(e,"utf8"),h=Sn(g,{format:a,schema:n.schema,extensionFieldNames:n.extensionFieldNames,onWarning:R=>Vt(n.warnings,R)}),I=Qn(h.metadata);return $f(n.state.misses,n.includeBody,n.includeCollections,d,f,p),{mtimeMs:o,ctimeMs:i,size:s,itemFormat:a,lightMetadata:d?c.metadata:I.light,heavyMetadata:Ca(n.includeCollections,p,m,I.heavy),bodyLength:d?c.body_length:h.body.length,body:n.includeBody?h.body:void 0}}function Uf(e,t,n,r){n.state.newEntries[t]={mtime_ms:r.mtimeMs,ctime_ms:r.ctimeMs,size:r.size,metadata:r.lightMetadata,body_length:r.bodyLength},n.includeBody&&r.body!==void 0&&(n.state.newBodies[t]={mtime_ms:r.mtimeMs,ctime_ms:r.ctimeMs,size:r.size,body:r.body}),n.includeCollections&&r.heavyMetadata!==void 0&&(n.state.newCollections[t]={mtime_ms:r.mtimeMs,ctime_ms:r.ctimeMs,size:r.size,collections:r.heavyMetadata});let o=n.includeCollections?Na(r.lightMetadata,r.heavyMetadata):r.lightMetadata,i=n.state.documentsById.get(o.id),s={metadata:o,body:r.body,item_format:r.itemFormat,item_path:e};Pa(i?.itemFormat,r.itemFormat,n.preferredFormat)&&n.state.documentsById.set(o.id,{candidate:s,itemFormat:r.itemFormat})}async function Bf(e,t,n,r){try{let o=await zf(t,n,r);Uf(t,n,r,o)}catch{Vt(r.warnings,`item_list_item_read_failed:${e}/${M.basename(t)}`)}}function Wf(e,t){return e&&e.context_fingerprint===t?e.entries:{}}function Vf(e,t){return e&&e.context_fingerprint===t?e.bodies:{}}function qf(e,t){return e&&e.context_fingerprint===t?e.collections:{}}function Gf(){return{newEntries:{},newBodies:{},newCollections:{},documentsById:new Map,misses:{metadata:!1,body:!1,collections:!1}}}async function Kf(e,t){let n=[];for(let{folder:r,dirPath:o,files:i}of e)for(let s of i){if(!Ff(s))continue;let a=M.join(o,s),c=M.relative(t.pmRoot,a);n.push(Bf(r,a,c,t)),n.length===32&&(await Promise.all(n),n.length=0)}await Promise.all(n)}async function Xf(e){if(!(!(e.state.misses.metadata||Object.keys(e.previousEntries).length!==Object.keys(e.state.newEntries).length||!Wt(e.existingCache?.directory_signatures,e.directorySignatures))&&e.existingCache!==null&&e.existingCache.context_fingerprint===e.contextFingerprint))try{await Bt(Zn(e.pmRoot),{version:ae,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,directory_signatures:e.directorySignatures,entries:e.state.newEntries}),await Bt(xo(e.pmRoot),{version:ae,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,entry_count:Object.keys(e.state.newEntries).length,directory_signatures:e.directorySignatures});let n=[...e.state.documentsById.values()].map(({candidate:r})=>({relativePath:M.relative(e.pmRoot,r.item_path),metadata:Qn(r.metadata).light,linkedFiles:r.metadata.files??[]}));n.length>=e.minimumIndexedItems?await Ia({pmRoot:e.pmRoot,contextFingerprint:e.contextFingerprint,sourceCursor:e.sourceCursor,rows:n}):await Yn(e.pmRoot)}catch{}}async function Yf(e){!(e.state.misses.body||Object.keys(e.previousBodies).length!==Object.keys(e.state.newBodies).length)&&e.existingBodyCache!==null&&e.existingBodyCache.context_fingerprint===e.contextFingerprint||await Bt(er(e.pmRoot),{version:ae,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,bodies:e.state.newBodies}).catch(()=>{})}async function Jf(e){!(e.state.misses.collections||Object.keys(e.previousCollections).length!==Object.keys(e.state.newCollections).length)&&e.existingCollectionsCache!==null&&e.existingCollectionsCache.context_fingerprint===e.contextFingerprint||await Bt(tr(e.pmRoot),{version:ae,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,collections:e.state.newCollections}).catch(()=>{})}async function No(e,t,n={}){let r=await Do(e);return n.required!==!0&&(r===null||r.entry_count<Aa)?async()=>{}:V(e,bf,30,t,!1,!1,3e3)}async function pv(e,t){let n=await Do(e);if(n===null)return null;let r=await Ao(e);if(r.invalid)return await ht(e),null;let o=r.envelope?.context_fingerprint===n.context_fingerprint&&r.envelope.base_source_cursor===n.source_cursor?r.envelope.source_cursor:n.source_cursor,i=r.envelope?.context_fingerprint===n.context_fingerprint&&r.envelope.base_source_cursor===n.source_cursor?r.envelope.directory_signatures:n.directory_signatures;return t&&!Wt(i,await Jn(e,t))?null:{source_cursor:o,entry_count:n.entry_count}}function Oa(e,t){let n=M.relative(e,t);return n===""||n===".."||n.startsWith(`..${M.sep}`)||M.isAbsolute(n)?null:n}async function ht(e){await Promise.all([Zn(e),er(e),tr(e),Oo(e),xo(e)].map(async t=>{await B.rm(t,{force:!0}),Z.delete(t)})),await Yn(e)}async function Qf(e){if(e.mutation.document===null)return{entry:null,body:null,collections:null};let t=await B.stat(e.mutation.itemPath),n=Qn(e.mutation.document.metadata),r={mtime_ms:t.mtimeMs,ctime_ms:t.ctimeMs,size:t.size};return{entry:{...r,metadata:n.light,body_length:e.mutation.document.body.length},body:{...r,body:e.mutation.document.body},collections:{...r,collections:n.heavy}}}function Zf(e,t,n){return e?.context_fingerprint===t&&e.base_source_cursor===n?structuredClone(e.changes):{}}async function Lo(e){let t=Oa(e.pmRoot,e.itemPath),n=e.previousItemPath?Oa(e.pmRoot,e.previousItemPath):void 0;if(t===null||n===null)return await ht(e.pmRoot),["metadata_derived_index_path_invalidated"];try{let r=La(e.preferredFormat,e.typeToFolder,e.schema,Da()),o=await Do(e.pmRoot);if(o===null||o.context_fingerprint!==r)return[];let i=o.source_cursor,s=await Ao(e.pmRoot);if(s.invalid)return await ht(e.pmRoot),["metadata_derived_index_refresh_failed"];let a=Zf(s.envelope,r,i),c=s.envelope?.context_fingerprint===r&&s.envelope.base_source_cursor===i?s.envelope.source_cursor:i;n!==void 0&&(a[n]={entry:null,body:null,collections:null}),a[t]=await Qf({mutation:e});let d=Ra();return await Bt(Oo(e.pmRoot),{version:ae,context_fingerprint:r,base_source_cursor:i,source_cursor:d,directory_signatures:await Jn(e.pmRoot,[...new Set(Object.values(e.typeToFolder))]),changes:a}),await Sa({pmRoot:e.pmRoot,contextFingerprint:r,expectedSourceCursor:c,sourceCursor:d,row:e.document===null?null:{relativePath:t,metadata:Qn(e.document.metadata).light,linkedFiles:e.document.metadata.files},deletedRelativePaths:[...n===void 0?[]:[n],...e.document===null?[t]:[]]})||await Yn(e.pmRoot),[]}catch{return await ht(e.pmRoot).catch(()=>{}),["metadata_derived_index_refresh_failed"]}}function em(e){return[...e.documentsById.values()].sort((t,n)=>t.candidate.metadata.id.localeCompare(n.candidate.metadata.id)).map(t=>t.candidate)}function xa(e,t,n){return e?.context_fingerprint===t&&e.source_cursor===n}function tm(e,t,n,r,o){return e.every(i=>(!t||r[i]!==void 0)&&(!n||o[i]!==void 0))}function nm(e){let t=new Map;for(let[n,r]of Object.entries(e.previousEntries)){let o=Ir(n);if(!o)continue;let i=e.includeCollections?Na(r.metadata,e.previousCollections[n]?.collections):r.metadata,s=t.get(i.id);Pa(s?.itemFormat,o,e.preferredFormat)&&t.set(i.id,{itemFormat:o,candidate:{metadata:i,body:e.includeBody?e.previousBodies[n]?.body:void 0,item_format:o,item_path:M.join(e.pmRoot,n)}})}return[...t.values()].sort((n,r)=>n.candidate.metadata.id.localeCompare(r.candidate.metadata.id)).map(n=>n.candidate)}function rm(e){return e.forceSourceScan||Cr()||e.existingCache?.context_fingerprint!==e.contextFingerprint||e.entryKeys.length<e.minimumIndexedItems||!Wt(e.existingCache?.directory_signatures,e.directorySignatures)?!1:[!e.includeBody||xa(e.existingBodyCache,e.contextFingerprint,e.existingCache.source_cursor),!e.includeCollections||xa(e.existingCollectionsCache,e.contextFingerprint,e.existingCache.source_cursor)].every(Boolean)&&tm(e.entryKeys,e.includeBody,e.includeCollections,e.previousBodies,e.previousCollections)}async function or(e,t,n,r,o,i={}){let s=i.includeBody!==!1,a=i.includeCollections!==!1,c=Da(),d=La(t,n,o,c),l=await Ao(e);l.invalid&&await ht(e);let f=await Df(e,d,i.cacheDiagnostics),m=s?await Nf(e,d):null,p=a?await Lf(e,d):null;Af(f,m,p,l.envelope);let _=Wf(f,d),g=Vf(m,d),h=qf(p,d),I=[...new Set(Object.values(n))],R=await Jn(e,I),D=Object.keys(_),$=Math.max(1,Math.floor(i.derivedIndexMinimumItems??Aa));if(rm({forceSourceScan:i.forceSourceScan===!0,contextFingerprint:d,existingCache:f,existingBodyCache:m,existingCollectionsCache:p,directorySignatures:R,entryKeys:D,minimumIndexedItems:$,includeBody:s,includeCollections:a,previousBodies:g,previousCollections:h}))return nm({pmRoot:e,preferredFormat:t,includeBody:s,includeCollections:a,previousEntries:_,previousBodies:g,previousCollections:h});let x=await Promise.all(I.map(It=>Mf(e,It,r))),G=Cr(),W=Gf(),Q={pmRoot:e,preferredFormat:t,warnings:r,schema:o,extensionFieldNames:c,includeBody:s,includeCollections:a,forceSourceRead:i.forceSourceScan===!0,dispatchReadHooks:G,previousEntries:_,previousBodies:g,previousCollections:h,state:W};await Kf(x,Q);let K=await Jn(e,I),ee=Wt(R,K)?K:{},Je=W.misses.metadata||Object.keys(_).length!==Object.keys(W.newEntries).length||!Wt(f?.directory_signatures,ee)||f===null?Ra():f.source_cursor;return await Xf({pmRoot:e,contextFingerprint:d,sourceCursor:Je,existingCache:f,previousEntries:_,directorySignatures:ee,state:W,minimumIndexedItems:$}),s&&await Yf({pmRoot:e,contextFingerprint:d,sourceCursor:Je,existingBodyCache:m,previousBodies:g,state:W}),a&&await Jf({pmRoot:e,contextFingerprint:d,sourceCursor:Je,existingCollectionsCache:p,previousCollections:h,state:W}),em(W)}async function Ma(e,t,n,r,o){return(await or(e,t,n,r,o,{includeBody:!1})).map(s=>({metadata:s.metadata,body:s.body??""}))}async function ja(e,t,n,r,o){return(await or(e,t,n,r,o,{includeBody:!1,includeCollections:!1})).map(s=>({metadata:s.metadata,body:s.body??""}))}(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]="59b12366-2f29-5acb-8196-91e9ab183666")}catch{}})();function Mo(e,t){return(t===void 0?void 0:Ci(e,t))?.execution_role??Ii[e.trim().toLowerCase()]??"agent"}var jo="blocked_by",Fa="blocks",om=Object.freeze([jo,Fa]),Po="no-active-blocker";function F(e){return e.trim().toLowerCase()}function ir(e,t){return t?`external:${e}`:`local:${F(e)}`}function qt(e){let t=new Map,n=typeof e.blocked_by=="string"?e.blocked_by.trim():"";if(n.length>0&&F(n)!==Po){let r=pe(n);t.set(ir(n,r),r?n:F(n))}for(let r of e.dependencies??[]){let o=typeof r.id=="string"?r.id.trim():"";if(r.kind===jo&&o.length>0&&F(o)!==Po){let i=pe(o)||ie(r.source_kind);t.set(ir(o,i),i?o:F(o))}}return[...t.values()].sort((r,o)=>r.localeCompare(o))}function sr(e){let t=new Map;for(let n of e){let r=F(n.id);r.length!==0&&t.set(r,new Set(qt(n)))}for(let n of e){let r=F(n.id);if(r.length!==0)for(let o of n.dependencies??[]){let i=o.kind===Fa&&typeof o.id=="string"?F(o.id):"";if(i.length===0||i===Po)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 $a(e,t){let n=F(e.id);return n.length>0?sr(t).get(n)??qt(e):qt(e)}function Fo(e,t,n,r){let o=e,i=typeof o.id=="string"?r?.get(F(o.id))??$a(o,[...t.values()]):qt(e),s=new Set((e.dependencies??[]).filter(a=>a.kind===jo&&ie(a.source_kind)&&typeof a.id=="string"&&a.id.trim().length>0).map(a=>ir(a.id.trim(),!0)));return i.map(a=>{if(pe(a)||s.has(ir(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(F(a));return c?{id:a,title:c.title,status:c.status,resolved:he(c.status,n)}:{id:a,title:null,status:null,resolved:!1}})}function im(e,t,n){return Fo(e,t,n)}function sm(e,t){let n=new Map(e.map(s=>[F(s.id),s])),r=sr(e),o=new Set([...Ha(t),...t.blocked_statuses]),i=new Set;for(let s of e){let a=rt(s.status,t);if(!o.has(a))continue;(t.blocked_statuses.has(a)||Fo(s,n,t,r).some(d=>!d.resolved))&&i.add(F(s.id))}return i}function am(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(rt(s.item.status,t))));let i={ready:[],decisions:[],gates:[]};for(let s of o){let a=Mo(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 Ha(e){return e.active_statuses.size>0?e.active_statuses:new Set([e.open_status])}function cm(e,t,n){let r=[F(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(!he(s.status,n))return!0;r.push(F(s.id))}}}return!1}function dm(e){let t=new Map,n=new Map,r=new Map,o=sr(e);for(let i of e){t.set(F(i.id),i);let s=typeof i.parent=="string"?i.parent.trim():"";if(s.length>0){let a=F(s),c=n.get(a)??[];c.push(i),n.set(a,c)}for(let a of o.get(F(i.id))){let c=F(a),d=r.get(c)??[];d.push(i.id),r.set(c,d)}}return{itemsById:t,childrenByParent:n,blockedByReverse:r,blockerIdsByItem:o}}function lm(e,t,n,r){let{itemsById:o,childrenByParent:i,blockedByReverse:s,blockerIdsByItem:a}=dm(t),c=new Set([...Ha(n),...n.blocked_statuses]),d=new Set(t.filter(h=>!he(h.status,n)).map(h=>F(h.id))),l=[],f=[],m=[],p=[],_=[],g=0;for(let h of e){if(!c.has(rt(h.status,n)))continue;g+=1;let I=Fo(h,o,n,a).filter(x=>!x.resolved),R=(s.get(F(h.id))??[]).filter(x=>d.has(F(x))).sort((x,G)=>x.localeCompare(G)),D={item:h,open_blockers:I,unblocks:R};if(cm(h.id,i,n)){m.push(D);continue}let $=n.blocked_statuses.has(rt(h.status,n));if(I.length===0&&!$){let x=Mo(h.type,r);x==="human"?p.push(D):x==="gate"?_.push(D):l.push(D)}else f.push(D)}return{ready:l,blocked:f,containers:m,decisions:p,gates:_,active_count:g,container_count:m.length}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ae1c56b3-148d-502d-9450-e807fdfab4da")}catch{}})();(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="0a3dd0c1-2dea-5143-a2eb-65e758a0cc71")}catch{}})();function ce(){let e=de();for(let t of ue()?.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]="83d1acab-79a1-5e9f-b6a4-97dade07d74a")}catch{}})();function Gt(e){if(typeof e!="string")return;let t=e.trim().toLowerCase();return t.length>0?t:void 0}function ar(e){return[e.parent_id,e.child_id,e.source,e.kind,e.holder_id,e.target_id??""].join("\0")}function um(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 fm(e,t){let n=[...e].sort(),r=um(n,t),o=new Set,i=mm(n,t),s=[];for(let a of r.reverse()){if(o.has(a))continue;let c=_m(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 mm(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 _m(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 za(e){let t=new Map;for(let n of e){let r=Gt(n?.id);r&&!t.has(r)&&t.set(r,n)}return t}function pm(e,t,n){let r=Gt(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 hm(e,t,n,r){let o=Gt(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 Ua(e,t){let n=new Map;for(let[r,o]of e){let i=pm(r,o,e);i&&n.set(ar(i),i);for(let s of o.dependencies??[]){let a=hm(r,s,e,t);a&&n.set(ar(a),a)}}return[...n.values()].sort((r,o)=>ar(r).localeCompare(ar(o)))}function xv(e,t=ce()){return Ua(za(e),t)}function ym(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 gm(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=Gt(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 cr(e,t=r=>r==="closed"||r==="canceled",n=ce()){let r=za(e),o=Ua(r,n),i=vm(o),s=new Set([...r].filter(([,c])=>t(c.status)).map(([c])=>c)),a=fm([...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:ym(o,i.parents_by_child,s),divergences:gm(r,o,s)}}function Rv(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 vm(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 $o(e,t){let n=new Set(t);return e.every(r=>n.has(r))}function Av(e,t,n,r,o){let i=Gt(n);if(!i)return;let s=cr(e,r,o),a=cr(t,r,o),c=a.divergences.find(f=>!s.divergences.some(m=>m.child_id===f.child_id&&m.scalar_parent_id===f.scalar_parent_id&&$o(f.dependency_parent_ids,m.dependency_parent_ids)));if(c){let f=[c.scalar_parent_id,...c.dependency_parent_ids].sort();throw new v(`Hierarchy mutation would assign ${c.child_id} to multiple parents: ${f.join(", ")}.`,b.CONFLICT,{code:"hierarchy_parent_divergence_created",source_id:i,target_id:c.child_id,verification_errors:f})}let d=a.cardinality_violations.find(f=>(f.child_id===i||f.parent_ids.includes(i))&&!s.cardinality_violations.some(m=>m.child_id===f.child_id&&$o(f.parent_ids,m.parent_ids)));if(d)throw new v(`Hierarchy mutation would assign ${d.child_id} to multiple parents: ${d.parent_ids.join(", ")}.`,b.CONFLICT,{code:"hierarchy_cardinality_created",source_id:i,target_id:d.child_id,verification_errors:d.parent_ids});let l=a.cycles.find(f=>f.item_ids.includes(i)&&!s.cycles.some(m=>$o(f.item_ids,m.item_ids)));if(l)throw new v(`Hierarchy mutation would create a cycle: ${l.item_ids.join(" -> ")}.`,b.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]="fdd874ad-e51d-5df2-9486-a0465ad65979")}catch{}})();var bm="global";function Mv(e){let t=e?.trim();if(t)return ie(t)?bm:t}function jv(e,t,n){return wm(e,t,n)}function wm(e,t,n){let r=e.trim();return ie(n)||pe(r)?r:Ke(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]="06ecc7a4-c593-5d99-89f5-714a4590d0a5")}catch{}})();function gt(e){if(typeof e!="string")return;let t=e.trim();if(!(!t||["none","null","n/a","na"].includes(t.toLowerCase())))return t}function Kt(e){let t=gt(e);return t?.toLowerCase()==="no-active-blocker"?void 0:t}function Xt(e,t,n=!0){let r=gt(e);return n&&(ie(t)||r!==void 0&&pe(r))}function Ho(e,t){return Xt(e,t)?`external\0${e}`:`local\0${e.toLowerCase()}`}function Ba(e,t,n,r){return Xt(e,t)?r.get(e):n.get(e.toLowerCase())}function yt(e,t){let n=e.toLowerCase(),r=t.toLowerCase();return n!==r?n<r?-1:1:e!==t?e<t?-1:1:0}function Em(e){let t=new Map;for(let n of e.dependencies??[]){if(typeof n!="object"||n===null)continue;let r=n,o=gt(r.id);if(!o)continue;let i=typeof r.kind=="string"?r.kind:"related",s=`${i}\0${Ho(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 km(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 Em(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=yt(r.holder_id,o.holder_id);if(i!==0)return i;let s=yt(r.target_id,o.target_id);return s!==0?s:yt(r.kind,o.kind)})}function Im(e,t,n,r,o){if(typeof n!="object"||n===null)return;let i=gt(n.id);if(!i||Ho(i,n.source_kind)!==Ho(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 Sm(e,t=r=>r==="closed"||r==="canceled",n=ce()){let r=new Map;for(let o of e){if(typeof o?.id!="string"||o.id.trim().length===0)continue;let i=gt(o.blocked_by);if(i)for(let s of o.dependencies??[]){let a=Im(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=yt(o.holder_id,i.holder_id);if(s!==0)return s;let a=yt(o.target_id,i.target_id);return a!==0?a:yt(o.dependency_kind,i.dependency_kind)})}function zo(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,f,m)=>{let p=gt(d);if(!p||r.has(p.toLowerCase())||Xt(p,void 0,m))return;let _={holder_id:c.id.trim(),target_id:p,kind:l,source:f,holder_status:c.status,legacy_terminal:t(c.status),no_active_blocker_sentinel:p.toLowerCase()==="no-active-blocker"};o.set(`${_.holder_id}::${_.target_id}::${_.kind}::${_.source}`,_)};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;ie(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 Tm(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 Cm(e){let t=new Map;for(let n of e){let r=Kt(n.blocked_by);r&&Xt(r)&&!t.has(r)&&t.set(r,r);for(let o of n.dependencies??[]){if(typeof o!="object"||o===null||!Xt(o.id,o.source_kind))continue;let i=Kt(o.id);i&&!t.has(i)&&t.set(i,i)}}return[...t.values()].sort((n,r)=>n.localeCompare(r))}var Wa=new WeakMap;function Wv(e){return e.hierarchyIntegrity??Wa.get(e)}function Om(e,t=ce()){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 dr(e,t,n){let r=n??ce(),o=e.filter(_=>typeof _?.id=="string"&&_.id.trim().length>0),i=new Map(o.map(_=>[_.id.trim().toLowerCase(),_.id.trim()])),s=zo(o,t),a=Tm(s);for(let _ of a)i.set(_.toLowerCase(),_);let c=Cm(o),d=new Set(i.keys()),l=new Map;for(let _ of c){let g=_;for(;d.has(g.toLowerCase());)g=`external:${g}`;l.set(_,g),d.add(g.toLowerCase())}let f=o.map(_=>{let g=Kt(_.parent),h=Kt(_.blocked_by),I=(_.dependencies??[]).flatMap(R=>{if(typeof R!="object"||R===null)return[];let D=R,$=Kt(D.id);return $?[{id:Ba($,D.source_kind,i,l),kind:typeof D.kind=="string"?D.kind:"related"}]:[]});return{id:_.id.trim(),...g?{parent:i.get(g.toLowerCase())}:{},...h?{blocked_by:Ba(h,void 0,i,l)}:{},dependencies:I}}),m=cr(o,t,r),p={graph:vi.fromItems([...f,...a.map(_=>({id:_})),...c.map(_=>({id:l.get(_)}))],r),details:[...o.map(_=>({id:_.id.trim(),title:_.title,status:_.status,...typeof _.type=="string"&&_.type.trim().length>0?{type:_.type.trim()}:{}})),...a.map(_=>({id:_,title:`[missing] ${_}`,status:"missing"})),...c.map(_=>({id:l.get(_),title:`[external] ${_}`,status:"external"}))],missingIdSet:new Set(a.map(_=>_.toLowerCase())),dangling:s,duplicateRows:km(o,t),orderingContradictions:Sm(o,t,r),legacyAliasCounts:Om(o,r),hierarchyIntegrity:m};return Wa.set(p,m),p}import{createHash as xm}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]="10f534cf-ee82-54a2-9807-390eca5fb0b8")}catch{}})();var Rm=64,Am=8;function Dm(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 qa(e,t=r=>r==="closed"||r==="canceled",n=de()){let r=e.filter(i=>typeof i?.id=="string"&&i.id.trim().length>0).map(i=>Dm(i,t)).sort(),o=n.list().map(i=>N(i)).sort();return xm("sha256").update(r.join("")).update("").update(o.join("")).digest("hex")}function Va(e,t,n){let r=t??n;if(!Number.isInteger(r)||r<1)throw new TypeError(`Invalid ${e} bound: ${String(t)}`);return r}var Uo=class{#e=new Map;#t;#n;constructor(t={}){this.#t=Va("maxResultsPerWorkspace",t.maxResultsPerWorkspace,Rm),this.#n=Va("maxWorkspaces",t.maxWorkspaces,Am)}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 f=d();return s.results.size>=a&&s.results.delete(s.results.keys().next().value),s.results.set(c,structuredClone(f)),{value:f,reused:!1}}}}clear(){this.#e.clear()}},Ga=new Uo;function Ka(){return Ga}function Xv(){Ga.clear()}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="47b3091f-a1a8-503c-83e9-46b85adf4207")}catch{}})();var Nm=["prerequisite","dependent","ancestor","descendant","provenance","related"],Lm=new TextEncoder;function Bo(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 lr(e){return Math.max(1,Math.ceil(Lm.encode(JSON.stringify(e)).byteLength/4))}function Wo(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 Pm(e,t,n,r){let o=e.filter(i=>i.source===t&&i.target===n||i.target===t&&i.source===n).map(i=>Wo(i,n,r));return[...new Set(o)].sort()}function Mm(e){return Nm.find(t=>e.includes(t))}function jm(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 f=0;f<a.length;f+=1){r.signal?.throwIfAborted();let m=a[f];if(m.distance>=i&&l)continue;let p=e.neighborEdges(m.id,{direction:o,kinds:r.kinds,signal:r.signal});if(d+=p.meta.inspectedEdges,m.distance>=i){p.value.some(_=>!s.has(_.id))&&(l=!0);continue}for(let{id:_,edge:g}of p.value){if(s.has(_))continue;s.add(_);let h={id:_,distance:m.distance+1,via:m.id,role:Wo(g,_,n)};c.push(h),a.push(h)}}return c.sort((f,m)=>f.distance-m.distance||f.id.localeCompare(m.id)),{rows:c,visitedNodes:a.length,inspectedEdges:d,depthTruncated:l}}function Fm(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[Wo(a,s,n)]+=1;return{directEdges:o,directTotal:i.length,rootEdges:i.map(({edge:s})=>s)}}function $m(e){let t=[],n=e.initialTokens;for(let r of e.candidates){if(t.length>=e.nodeLimit)break;let o=r.distance===1?Pm(e.rootEdges,e.rootId,r.id,e.registry):[],i={...e.details.get(r.id)??{id:r.id},distance:r.distance,role:o.length>0?Mm(o):r.role,via:r.via,reasons:o.length>0?o:[`${r.role} via ${r.via} (depth ${r.distance})`]},s=lr(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 Hm(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=lr(i);if(o+s>e.tokenBudget)break;r.push(i),o+=s}return{edges:r,usedTokens:o,candidateCount:n.length}}function Xa(e,t,n,r={}){if(!e.nodes().includes(t))throw new TypeError(`Relationship node not found: ${t}`);let o=Bo(r.nodeLimit,20,"nodeLimit"),i=Bo(r.edgeLimit,40,"edgeLimit"),s=Bo(r.tokenBudget,1200,"tokenBudget"),a=r.registry??de(),c=new Map(n.map(Qe=>[Qe.id,Qe])),d=c.get(t)??{id:t},{evidence:l=[],...f}=d,m=[...l],p=jm(e,t,a,r),{rootEdges:_,...g}=Fm(e,t,a,r),h=Hi("relationship-context",{rootId:t,direction:r.direction??"both",kinds:[...r.kinds??[]].sort(),maxDepth:r.maxDepth??3}),I=Ui(p.rows,r.cursor,h,({id:Qe})=>Qe),R=p.rows.slice(I),D=lr(f)+lr(m);if(D>s)throw new TypeError("Relationship context tokenBudget cannot fit root and evidence");let $=$m({candidates:R,details:c,rootEdges:_,rootId:t,registry:a,nodeLimit:o,tokenBudget:s,initialTokens:D}),{nodes:x}=$,G=new Set([t,...x.map(({id:Qe})=>Qe)]),W=Hm({graph:e,included:G,options:r,registry:a,edgeLimit:i,tokenBudget:s,initialTokens:$.usedTokens}),{edges:Q,usedTokens:K}=W,ee=I+x.length,ve=ee<p.rows.length,Je=x.at(-1),It=W.candidateCount-Q.length,ui=p.depthTruncated||ve||It>0,$c={rootId:t,...f.status===void 0?{}:{rootStatus:f.status},...g,discoveredNodes:p.rows.length,returnedNodes:x.length,returnedEdges:Q.length,omittedNodes:p.rows.length-ee,omittedEdges:It,evidenceCount:m.length,hasMore:ve};return{root:f,summary:$c,nodes:x,edges:Q,evidence:m,meta:{exact:!0,truncated:ui,completeness:ui?"truncated":"complete",nodeLimit:o,edgeLimit:i,tokenBudget:s,usedTokens:K,visitedNodes:p.visitedNodes,inspectedEdges:p.inspectedEdges,omittedNodes:p.rows.length-ee,omittedEdges:It,...ve&&Je?{nextCursor:zi(h,Je.id,ee-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]="245ec731-790e-55ae-9bb6-3eeaaefe27ee")}catch{}})();var U={ok:!1},y=e=>typeof e=="string"?{ok:!0,value:e}:U,O=e=>typeof e=="boolean"?{ok:!0,value:e}:U;function L(e={}){return t=>typeof t!="number"||!Number.isFinite(t)||e.int&&(!Number.isInteger(t)||!Number.isSafeInteger(t))||e.positive&&t<=0||typeof e.min=="number"&&t<e.min||typeof e.max=="number"&&t>e.max?U:{ok:!0,value:t}}function A(...e){return t=>typeof t=="string"&&e.includes(t)?{ok:!0,value:t}:U}function w(e,t){return n=>{if(!Array.isArray(n)||t!==void 0&&n.length>t)return U;let r=[];for(let o of n){let i=e(o);if(!i.ok)return U;r.push(i.value)}return{ok:!0,value:r}}}function qo(e,t){return n=>typeof n=="string"&&n.length>0&&n.length<=e&&n===n.trim()&&(t===void 0||t.test(n))?{ok:!0,value:n}:U}function u(e){return t=>t===void 0?{ok:!0,value:void 0}:e(t)}function ur(e){return t=>{if(typeof t!="object"||t===null||Array.isArray(t))return U;let n={};for(let[r,o]of Object.entries(t)){let i=e(o);if(!i.ok)return U;n[r]=i.value}return{ok:!0,value:n}}}function C(e){return t=>{if(typeof t!="object"||t===null||Array.isArray(t))return U;let n=t,r={};for(let[o,i]of Object.entries(e)){let s=i(n[o]);if(!s.ok)return U;s.value!==void 0&&(r[o]=s.value)}return{ok:!0,value:r}}}var zm=C({key:y,values:w(y),required:u(O),aliases:u(w(y)),description:u(y)}),Um=C({command:A("create","update"),option:y,required:u(O),visible:u(O),enabled:u(O)}),Bm=C({name:y,description:u(y),default_status:u(y),execution_role:u(A("agent","human","gate")),folder:u(y),aliases:u(w(y)),required_create_fields:u(w(y)),required_create_repeatables:u(w(y)),options:u(w(zm)),command_option_policies:u(w(Um))}),Wm=C({id:y,aliases:u(w(y)),roles:u(w(A(...fi))),description:u(y),order:u(L())}),Vm=C({key:y,metadata_key:u(y),front_matter_key:u(y),cli_flag:u(y),cli_aliases:u(w(y)),description:u(y),type:u(A(...mi)),commands:u(w(A(..._i))),repeatable:u(O),required:u(O),required_on_create:u(O),required_types:u(w(y)),allow_unset:u(O)}),qm=e=>{if(!Array.isArray(e)||e.length!==2)return U;let[t,n]=e;return typeof t!="string"||typeof n!="string"?U:{ok:!0,value:[t,n]}},Gm=C({type:y,allowed_transitions:w(qm)}),Km=u(C({version:u(L({int:!0})),files:u(C({types:u(y),statuses:u(y),fields:u(y),workflows:u(y)})),statuses:u(w(Wm)),fields:u(w(Vm)),workflow:u(C({draft_status:u(y),open_status:u(y),in_progress_status:u(y),blocked_status:u(y),close_status:u(y),canceled_status:u(y)})),type_workflows:u(w(Gm)),unknown_field_policy:u(A(...pi))})),Xm=u(C({preset:u(A(...hi)),ownership_enforcement:u(A("none","warn","strict")),create_mode_default:u(A("progressive","strict")),close_validation_default:u(A("off","warn","strict")),require_close_reason:u(O),parent_reference:u(A("warn","strict_error")),metadata_profile:u(A("core","strict","custom")),force_required_for_stale_lock:u(O),create_default_type:u(y),workflow_enforcement:u(A("off","warn","strict")),duplicate_detection_mode:u(A("off","advisory","strict")),duplicate_detection_threshold:u(L({min:0,max:1})),duplicate_detection_limit:u(L({int:!0,min:0,max:20}))})),Ym=C({name:y,disabled:u(O),require_trusted:u(O),require_provenance:u(O),sandbox_profile:u(A("none","restricted","strict")),allowed_capabilities:u(w(y)),blocked_capabilities:u(w(y)),allowed_surfaces:u(w(y)),blocked_surfaces:u(w(y)),allowed_commands:u(w(y)),blocked_commands:u(w(y)),allowed_actions:u(w(y)),blocked_actions:u(w(y)),allowed_services:u(w(y)),blocked_services:u(w(y))}),Vo=A("block","warn"),Jm=e=>typeof e=="string"?Vo(e):C({global:u(Vo),project:u(Vo)})(e),Qm=u(C({mode:u(A("off","warn","enforce")),trust_mode:u(A("off","warn","enforce")),pm_max_version_exceeded_mode:u(Jm),require_provenance:u(O),trusted_extensions:u(w(y)),default_sandbox_profile:u(A("none","restricted","strict")),allowed_extensions:u(w(y)),blocked_extensions:u(w(y)),allowed_capabilities:u(w(y)),blocked_capabilities:u(w(y)),allowed_surfaces:u(w(y)),blocked_surfaces:u(w(y)),allowed_commands:u(w(y)),blocked_commands:u(w(y)),allowed_actions:u(w(y)),blocked_actions:u(w(y)),allowed_services:u(w(y)),blocked_services:u(w(y)),extension_overrides:u(w(Ym))})),Ye=qo(128),Zm=C({harness:qo(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u),environment_keys:u(w(Ye,64)),model_environment_keys:u(w(Ye,64)),session_environment_keys:u(w(Ye,64)),provenance_environment_keys:u(ur(w(Ye,64))),provenance_resolvers:u(ur(A("ai_agent_version","claude_session_file"))),provenance_unavailable_dimensions:u(w(Ye,64)),argv_markers:u(w(Ye,64)),client_names:u(w(Ye,64))}),e_=C({version:L({int:!0}),id_prefix:y,ids:u(C({token_length:u(L({int:!0,min:4,max:12}))})),author_default:y,agent_identity:u(C({probes_enabled:u(O),identity_vocabulary:u(C({version:L({int:!0,positive:!0}),aliases:ur(qo(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u))})),harness_signals:w(Zm)})),mutation_guard:u(C({require_attributed_author:u(O),secret_guard:u(A("off","advise","block")),stale_in_progress_hours:u(L({int:!0,positive:!0}))})),item_format:u(A("toon","json_markdown")),locks:C({ttl_seconds:L({int:!0}),wait_ms:u(L({int:!0,min:0}))}),checkpoints:u(C({retention_days:u(L({int:!0,positive:!0}))})),output:C({default_format:A("toon","json")}),ux:u(C({deprecation_hints:u(O)})),history:u(C({missing_stream:A("auto_create","strict_error"),compact_policy:u(C({enabled:u(O),max_entries:u(L({int:!0,positive:!0})),trigger:u(A("health_warn","auto"))}))})),validation:u(C({sprint_release_format:A("warn","strict_error"),parent_reference:u(A("warn","strict_error")),metadata_profile:u(A("core","strict","custom")),metadata_required_fields:u(w(y)),lifecycle_stale_blocker_reason_patterns:u(w(y)),lifecycle_closure_like_blocked_reason_patterns:u(w(y)),lifecycle_closure_like_resolution_patterns:u(w(y)),lifecycle_closure_like_actual_result_patterns:u(w(y)),estimate_defaults_by_type:u(ur(L({int:!0,positive:!0})))})),governance:Xm,workflow:u(C({definition_of_done:w(y)})),testing:u(C({record_results_to_items:O,allow_untrusted_linked_tests:u(O)})),telemetry:u(C({enabled:O,first_run_prompt_completed:u(O),capture_level:u(A("minimal","redacted","max")),endpoint:u(y),installation_id:u(y),retention_days:u(L({int:!0,positive:!0}))})),agent_guidance:u(C({prompt_completed:u(O),declined:u(O),declined_at:u(y),template_version:u(L({int:!0,positive:!0})),last_checked_files:u(w(y))})),item_types:u(C({definitions:w(Bm)})),schema:Km,context:u(C({default_depth:u(A("brief","standard","deep")),activity_limit:u(L({int:!0,positive:!0})),stale_threshold_days:u(L({int:!0,positive:!0})),sections:u(C({hierarchy:u(O),activity:u(O),progress:u(O),recently_created:u(O),unparented:u(O),blockers:u(O),files:u(O),workload:u(O),staleness:u(O),tests:u(O)}))})),extensions:C({enabled:w(y),disabled:w(y),policy:Qm}),search:C({score_threshold:L(),hybrid_semantic_weight:u(L()),max_results:L({int:!0}),embedding_model:y,embedding_corpus_max_characters:u(L()),embedding_batch_size:L({int:!0}),embedding_timeout_ms:u(L({int:!0})),scanner_max_batch_retries:L({int:!0}),provider:u(y),default_mode:u(A("auto","keyword","semantic","hybrid")),corpus_fields:u(w(y)),mutation_refresh_policy:u(A("cache_only","semantic_configured","semantic_auto")),query_expansion:u(C({enabled:u(O),provider:u(y)})),rerank:u(C({enabled:u(O),model:u(y),top_k:u(L({int:!0,positive:!0}))})),bm25:u(C({k1:u(L()),b:u(L())}))}),providers:C({openai:C({base_url:y,api_key:y,model:y}),ollama:C({base_url:y,model:y})}),vector_store:C({adapter:u(y),collection_name:u(y),qdrant:C({url:y,api_key:y}),lancedb:C({path:y})})});function Ya(e){let t=e_(e);return t.ok?{success:!0,data:t.value}:{success:!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]="e2270ad2-349e-5e8c-b23c-3cf0645907dc")}catch{}})();function fr(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Go(e,t,n,r=[]){if(oe(e,t)&&(r.length>0||fr(n)))return n;if(oe(e,n)||oe(t,n))return t;if((e===void 0||fr(e))&&fr(t)&&fr(n)){let o=e??{},i=new Set([...Object.keys(o),...Object.keys(t),...Object.keys(n)]);return Object.fromEntries([...i].flatMap(s=>{let a=Go(Object.hasOwn(o,s)?o[s]:void 0,Object.hasOwn(t,s)?t[s]:void 0,Object.hasOwn(n,s)?n[s]:void 0,[...r,s]);return a===void 0?[]:[[s,a]]}))}throw new v(`Settings changed concurrently at ${r.join(".")||"<root>"}; read the latest settings and reapply the intended change.`,b.CONFLICT,{reason:"stale_settings_snapshot",required:"Read a fresh settings snapshot and reapply the intended change.",why:"Another writer changed the same setting after this snapshot was read.",examples:["pm config project export --json"],nextSteps:["Read the current settings, then retry the original config operation."]})}(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]="833a4f8a-7e5d-5480-a526-4e1ebaadd0a8")}catch{}})();var t_={Epic:2880,Feature:480,Story:480,Milestone:2880,Task:120,Issue:60,Bug:60,Chore:30,Decision:15,Plan:120},Ja=120;function Ko(e){return typeof e=="number"&&Number.isFinite(e)&&e>0}function Za(e){let t=new Map;for(let[n,r]of Object.entries(e))t.set(n.toLowerCase(),r);return t}var n_=Za(t_),Qa=new WeakMap;function r_(e){let t=Qa.get(e);if(t)return t;let n=Za(e);return Qa.set(e,n),n}function sb(e,t){let n=(e??"").trim().toLowerCase();if(n.length===0)return Ja;if(t){let o=r_(t).get(n);if(Ko(o))return Math.floor(o)}let r=n_.get(n);return Ko(r)?Math.floor(r):Ja}function Xo(e){let t={};if(e===null||typeof e!="object"||Array.isArray(e))return t;for(let[n,r]of Object.entries(e)){let o=n.trim();o.length===0||!Ko(r)||(t[o]=Math.floor(r))}return t}import{stat as o_}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]="7c23ef10-ea7a-5680-8850-822e7d0c07a6")}catch{}})();var mr=new Map;function ec(e){return[...new Set(e.map(t=>t.trim()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}async function i_(e){try{let t=await o_(e);return{path:e,mtime_ms:t.mtimeMs,size:t.size}}catch{return{path:e,mtime_ms:null,size:null}}}async function Re(e){let t=ec(e),n=await Promise.all(t.map(r=>i_(r)));return n.sort((r,o)=>r.path.localeCompare(o.path)),n}function Yt(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1){let r=e[n],o=t[n];if(r.path!==o.path||r.mtime_ms!==o.mtime_ms||r.size!==o.size)return!1}return!0}function tc(e){return mr.get(e)}function _r(e,t){let n=ec(t.tracked_paths),r=[...t.signatures].map(o=>({path:o.path,mtime_ms:o.mtime_ms,size:o.size})).sort((o,i)=>o.path.localeCompare(i.path));mr.set(e,{tracked_paths:n,signatures:r,value:t.value})}function Ae(e){if(e){mr.delete(e);return}mr.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]="2a28912a-5f26-5557-bc94-cfedbd602fd0")}catch{}})();var s_="settings:write",sc=Symbol("pm.settings.persist_source"),a_=128,c_=new Set(["off","advisory","strict"]);function nc(e){return structuredClone(gi[e])}function d_(e){return e==="minimal"||e==="default"||e==="strict"||e==="custom"?e:k.governance.preset}function rc(e,t){let n=typeof t.create_default_type=="string"?t.create_default_type.trim():void 0;return n&&n.length>0&&(e.create_default_type=n),(t.workflow_enforcement==="off"||t.workflow_enforcement==="warn"||t.workflow_enforcement==="strict")&&(e.workflow_enforcement=t.workflow_enforcement),t.require_close_reason===!1&&(e.require_close_reason=!1),e.duplicate_detection_mode=t.duplicate_detection_mode,e.duplicate_detection_threshold=t.duplicate_detection_threshold,e.duplicate_detection_limit=t.duplicate_detection_limit,e}function l_(e){return e.preset==="custom"?rc({preset:"custom",ownership_enforcement:e.ownership_enforcement,create_mode_default:e.create_mode_default,close_validation_default:e.close_validation_default,parent_reference:e.parent_reference,metadata_profile:e.metadata_profile,force_required_for_stale_lock:e.force_required_for_stale_lock},e):rc({preset:e.preset},e)}function u_(e){let t=typeof e.create_default_type=="string"?e.create_default_type.trim():void 0,n={};t&&t.length>0&&(n.create_default_type=t),(e.workflow_enforcement==="off"||e.workflow_enforcement==="warn"||e.workflow_enforcement==="strict")&&(n.workflow_enforcement=e.workflow_enforcement),typeof e.require_close_reason=="boolean"&&(n.require_close_reason=e.require_close_reason),c_.has(String(e.duplicate_detection_mode))&&(n.duplicate_detection_mode=e.duplicate_detection_mode);let r=e.duplicate_detection_threshold;[typeof r=="number",Number.isFinite(r),Number(r)>=0,Number(r)<=1].every(Boolean)&&(n.duplicate_detection_threshold=r);let o=e.duplicate_detection_limit;return[typeof o=="number",Number.isSafeInteger(o),Number(o)>=0,Number(o)<=20].every(Boolean)&&(n.duplicate_detection_limit=o),n}function hr(e){let t=e.governance??{},n=d_(t.preset),r=u_(t);if(n==="custom"){let s=nc("default"),a=r.require_close_reason??s.require_close_reason;return{preset:n,ownership_enforcement:t.ownership_enforcement??s.ownership_enforcement,create_mode_default:t.create_mode_default??s.create_mode_default,close_validation_default:t.close_validation_default??s.close_validation_default,parent_reference:t.parent_reference??s.parent_reference,metadata_profile:t.metadata_profile??s.metadata_profile,force_required_for_stale_lock:t.force_required_for_stale_lock??s.force_required_for_stale_lock,...r,require_close_reason:a,duplicate_detection_mode:r.duplicate_detection_mode??s.duplicate_detection_mode,duplicate_detection_threshold:r.duplicate_detection_threshold??s.duplicate_detection_threshold,duplicate_detection_limit:r.duplicate_detection_limit??s.duplicate_detection_limit}}let o=nc(n),i=r.require_close_reason??o.require_close_reason;return{preset:n,...o,...r,require_close_reason:i}}function ac(){return structuredClone(k)}function cc(e){return e==="cache_only"||e==="semantic_configured"||e==="semantic_auto"?e:k.search.mutation_refresh_policy}function dc(e){return e==="auto"||e==="keyword"||e==="semantic"||e==="hybrid"?e:"auto"}function lc(e){return typeof e=="boolean"?e:k.search.query_expansion.enabled}function uc(e){return typeof e!="string"?k.search.query_expansion.provider:e.trim()}function fc(e){return typeof e=="boolean"?e:k.search.rerank.enabled}function mc(e){return typeof e!="string"?k.search.rerank.model:e.trim()}function _c(e){return typeof e=="number"&&Number.isFinite(e)&&Number.isInteger(e)&&e>0?e:k.search.rerank.top_k}function pc(e){if(typeof e!="string")return k.vector_store.collection_name;let n=e.trim().replaceAll(/[^a-zA-Z0-9_-]/g,"_").slice(0,a_);return n.length>0?n:k.vector_store.collection_name}function Yo(e){return{present:Array.isArray(e),values:Array.isArray(e)?structuredClone(e):[]}}function f_(e,t){let n=e.schema,r=Yo(n?.statuses),o=Yo(n?.fields),i=Yo(n?.type_workflows);return{persisted_settings:structuredClone(e),source_settings:structuredClone(e),has_source_item_type_definitions:Array.isArray(e.item_types?.definitions),source_item_type_definitions:vt(e.item_types?.definitions),has_source_schema_statuses:r.present,source_schema_statuses:r.values,has_source_schema_fields:o.present,source_schema_fields:o.values,has_source_schema_type_workflows:i.present,source_schema_type_workflows:i.values,runtime_item_type_definitions:vt(t.item_types?.definitions),runtime_schema_statuses:structuredClone(t.schema.statuses),runtime_schema_fields:structuredClone(t.schema.fields),runtime_schema_type_workflows:structuredClone(t.schema.type_workflows??[])}}function ti(e,t){Object.defineProperty(e,sc,{value:t,writable:!0,configurable:!0,enumerable:!1})}function hc(e){let t=e[sc];if(!(!t||typeof t!="object"))return t}function pr(e){let t=structuredClone(e.settings),n=hc(e.settings);return n&&ti(t,n),{settings:t,metadata:{has_explicit_item_format:e.metadata.has_explicit_item_format},warnings:[...e.warnings]}}function m_(e,t,n){let r=Ct(t);return[n,Ot(e,r.files.types,Tt.types),Ot(e,r.files.statuses,Tt.statuses),Ot(e,r.files.fields,Tt.fields),Ot(e,r.files.workflows,Tt.workflows)]}async function __(e,t,n){let r=await Re(t);_r(e,{tracked_paths:t,signatures:r,value:pr(n)})}async function p_(e,t,n){try{await __(e,t,n)}catch{Ae(e)}}function oc(e,t){return e.find(n=>n.path===t)}function h_(e,t,n){for(let r of n){let o=oc(e,r),i=oc(t,r);if(!o||!i||!Yt([o],[i]))return!1}return!0}async function Jo(e,t,n,r,o){try{let i=await Re(t);if(!h_(r,i,o)){Ae(e);return}_r(e,{tracked_paths:t,signatures:i,value:pr(n)})}catch{Ae(e)}}function y_(e,t){let n=Ct(e.schema),r=vt(e.item_types?.definitions);if(!t)return{item_type_definitions:r,schema_statuses:n.statuses,schema_fields:n.fields,schema_type_workflows:n.type_workflows};let o=n.type_workflows??[],i=oe(r,t.runtime_item_type_definitions),s=oe(n.statuses,t.runtime_schema_statuses),a=oe(n.fields,t.runtime_schema_fields),c=oe(o,t.runtime_schema_type_workflows);return{item_type_definitions:i?t.has_source_item_type_definitions?vt(t.source_item_type_definitions):[]:r,schema_statuses:s?t.has_source_schema_statuses?structuredClone(t.source_schema_statuses):[]:n.statuses,schema_fields:a?t.has_source_schema_fields?structuredClone(t.source_schema_fields):[]:n.fields,schema_type_workflows:c?t.has_source_schema_type_workflows?structuredClone(t.source_schema_type_workflows):void 0:n.type_workflows}}function Jt(e){return{settings:ac(),metadata:{has_explicit_item_format:!1},warnings:e?[e]:[]}}function g_(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=e.item_format;return t==="toon"||t==="json_markdown"}function Zo(e){return[...new Set((e??[]).map(t=>t.trim()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function yc(e){let t=k.agent_guidance,n=e?.template_version;return{prompt_completed:e?.prompt_completed===!0,declined:e?.declined===!0,declined_at:typeof e?.declined_at=="string"?e.declined_at:t.declined_at,template_version:typeof n=="number"&&Number.isInteger(n)&&n>0?n:t.template_version,last_checked_files:Zo(e?.last_checked_files??t.last_checked_files)}}function re(e){return[...new Set((e??[]).map(t=>t.trim().toLowerCase()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function v_(e){return e==="off"||e==="warn"||e==="enforce"?e:k.extensions.policy.mode}function b_(e){return e==="off"||e==="warn"||e==="enforce"?e:k.extensions.policy.trust_mode}function gc(e){return e==="none"||e==="restricted"||e==="strict"?e:k.extensions.policy.default_sandbox_profile}function w_(e){let t=e.name.trim().toLowerCase();if(t.length===0)return null;let n={name:t};e.disabled===!0&&(n.disabled=!0),e.require_trusted===!0&&(n.require_trusted=!0),e.require_provenance===!0&&(n.require_provenance=!0),e.sandbox_profile!==void 0&&(n.sandbox_profile=gc(e.sandbox_profile));let r=re(e.allowed_capabilities),o=re(e.blocked_capabilities),i=re(e.allowed_surfaces),s=re(e.blocked_surfaces),a=re(e.allowed_commands),c=re(e.blocked_commands),d=re(e.allowed_actions),l=re(e.blocked_actions),f=re(e.allowed_services),m=re(e.blocked_services);return r.length>0&&(n.allowed_capabilities=r),o.length>0&&(n.blocked_capabilities=o),i.length>0&&(n.allowed_surfaces=i),s.length>0&&(n.blocked_surfaces=s),a.length>0&&(n.allowed_commands=a),c.length>0&&(n.blocked_commands=c),d.length>0&&(n.allowed_actions=d),l.length>0&&(n.blocked_actions=l),f.length>0&&(n.allowed_services=f),m.length>0&&(n.blocked_services=m),n}function E_(e){let t=new Map;for(let n of e??[]){let r=w_(n);r&&t.set(r.name,r)}return[...t.values()].sort((n,r)=>n.name.localeCompare(r.name))}function Qo(e){return e==="block"||e==="warn"?e:void 0}function k_(e){if(typeof e=="string")return Qo(e);if(typeof e=="object"&&e!==null&&!Array.isArray(e)){let t=Qo(e.global),n=Qo(e.project);return t===void 0&&n===void 0?void 0:{...t!==void 0?{global:t}:{},...n!==void 0?{project:n}:{}}}}function Y(e,t){return re(e?.[t]??k.extensions.policy[t])}function vc(e){let t=k_(e?.pm_max_version_exceeded_mode);return{mode:v_(e?.mode),trust_mode:b_(e?.trust_mode),...t!==void 0?{pm_max_version_exceeded_mode:t}:{},require_provenance:e?.require_provenance===!0,trusted_extensions:Y(e,"trusted_extensions"),default_sandbox_profile:gc(e?.default_sandbox_profile),allowed_extensions:Y(e,"allowed_extensions"),blocked_extensions:Y(e,"blocked_extensions"),allowed_capabilities:Y(e,"allowed_capabilities"),blocked_capabilities:Y(e,"blocked_capabilities"),allowed_surfaces:Y(e,"allowed_surfaces"),blocked_surfaces:Y(e,"blocked_surfaces"),allowed_commands:Y(e,"allowed_commands"),blocked_commands:Y(e,"blocked_commands"),allowed_actions:Y(e,"allowed_actions"),blocked_actions:Y(e,"blocked_actions"),allowed_services:Y(e,"allowed_services"),blocked_services:Y(e,"blocked_services"),extension_overrides:E_(e?.extension_overrides??k.extensions.policy.extension_overrides)}}function bc(e){return[...new Set((e??[]).map(n=>n.trim().toLowerCase().replaceAll("-","_")))].filter(n=>n.length>0).sort((n,r)=>n.localeCompare(r)).filter(n=>["author","acceptance_criteria","estimated_minutes","close_reason","reviewer","risk","confidence","sprint","release"].includes(n))}function De(e){return[...new Set((e??[]).map(t=>t.trim().toLowerCase()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function H(e,t){return e===void 0?t:e}function J(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:{}}function ei(e){return Array.isArray(e)?e:[]}function I_(e,t,n){return{...t.validation,...e.validation,parent_reference:n.parent_reference,metadata_profile:n.metadata_profile,metadata_required_fields:bc(e.validation?.metadata_required_fields),lifecycle_stale_blocker_reason_patterns:De(e.validation?.lifecycle_stale_blocker_reason_patterns??t.validation.lifecycle_stale_blocker_reason_patterns),lifecycle_closure_like_blocked_reason_patterns:De(e.validation?.lifecycle_closure_like_blocked_reason_patterns??t.validation.lifecycle_closure_like_blocked_reason_patterns),lifecycle_closure_like_resolution_patterns:De(e.validation?.lifecycle_closure_like_resolution_patterns??t.validation.lifecycle_closure_like_resolution_patterns),lifecycle_closure_like_actual_result_patterns:De(e.validation?.lifecycle_closure_like_actual_result_patterns??t.validation.lifecycle_closure_like_actual_result_patterns),estimate_defaults_by_type:Xo(e.validation?.estimate_defaults_by_type)}}function S_(e,t){return{enabled:e.telemetry?.enabled??t.telemetry.enabled,first_run_prompt_completed:e.telemetry?.first_run_prompt_completed??t.telemetry.first_run_prompt_completed,capture_level:e.telemetry?.capture_level??t.telemetry.capture_level,endpoint:e.telemetry?.endpoint??t.telemetry.endpoint,installation_id:e.telemetry?.installation_id??t.telemetry.installation_id,retention_days:e.telemetry?.retention_days??t.telemetry.retention_days}}function T_(e,t){return{...t.search,...e.search,default_mode:dc(e.search?.default_mode),mutation_refresh_policy:cc(e.search?.mutation_refresh_policy),query_expansion:{...t.search.query_expansion,...e.search?.query_expansion,enabled:lc(e.search?.query_expansion?.enabled),provider:uc(e.search?.query_expansion?.provider)},rerank:{...t.search.rerank,...e.search?.rerank,enabled:fc(e.search?.rerank?.enabled),model:mc(e.search?.rerank?.model),top_k:_c(e.search?.rerank?.top_k)}}}function C_(e,t){return{adapter:e.vector_store.adapter??t.vector_store.adapter,collection_name:pc(e.vector_store.collection_name),qdrant:{...t.vector_store.qdrant,...e.vector_store.qdrant},lancedb:{...t.vector_store.lancedb,...e.vector_store.lancedb}}}function O_(e,t){return e.item_format==="json_markdown"?"toon":e.item_format??t.item_format}function x_(e,t){return{default_depth:e.context?.default_depth??t.context.default_depth,activity_limit:e.context?.activity_limit??t.context.activity_limit,stale_threshold_days:e.context?.stale_threshold_days??t.context.stale_threshold_days,sections:{...t.context.sections,...e.context?.sections}}}function R_(e,t){return{openai:{...t.providers.openai,...e.providers.openai},ollama:{...t.providers.ollama,...e.providers.ollama}}}function vt(e){let t=(e??[]).map(r=>ki(r)).filter(r=>r!==null),n=new Map;for(let r of t)n.set(r.name.toLowerCase(),r);return[...n.values()].sort((r,o)=>r.name.localeCompare(o.name))}function wc(e){let t=ac(),n=hr({governance:e.governance??{preset:"default"}});return{...t,...e,item_format:O_(e,t),locks:{...t.locks,...e.locks},ids:{...t.ids,...e.ids},agent_identity:structuredClone(e.agent_identity??t.agent_identity),mutation_guard:{...t.mutation_guard,...e.mutation_guard},checkpoints:{...t.checkpoints,...e.checkpoints},output:{...t.output,...e.output},ux:{...t.ux,...e.ux},history:{...t.history,...e.history,compact_policy:{...t.history.compact_policy,...e.history?.compact_policy}},validation:I_(e,t,n),governance:n,workflow:{definition_of_done:[...e.workflow?.definition_of_done??t.workflow.definition_of_done]},testing:{record_results_to_items:e.testing?.record_results_to_items??t.testing.record_results_to_items,allow_untrusted_linked_tests:e.testing?.allow_untrusted_linked_tests??t.testing.allow_untrusted_linked_tests},telemetry:S_(e,t),agent_guidance:yc(e.agent_guidance??t.agent_guidance),item_types:{definitions:vt(e.item_types?.definitions)},schema:Ct(e.schema??t.schema),context:x_(e,t),extensions:{enabled:[...e.extensions.enabled],disabled:[...e.extensions.disabled],policy:vc(e.extensions.policy??t.extensions.policy)},search:T_(e,t),providers:R_(e,t),vector_store:C_(e,t)}}function A_(e){e.agent_identity=T(e.agent_identity,["probes_enabled","identity_vocabulary","harness_signals"]);let t=e.agent_identity;Object.hasOwn(t,"identity_vocabulary")&&(t.identity_vocabulary=T(J(t.identity_vocabulary),["version","aliases"])),e.agent_identity.harness_signals=ei(e.agent_identity.harness_signals).map(n=>T(J(n),["harness","environment_keys","model_environment_keys","session_environment_keys","provenance_environment_keys","provenance_resolvers","provenance_unavailable_dimensions","argv_markers","client_names"])),e.locks=T(e.locks,["ttl_seconds","wait_ms"]),e.ids=T(e.ids,["token_length"]),e.mutation_guard=T(e.mutation_guard,["require_attributed_author","secret_guard","stale_in_progress_hours"]),e.checkpoints=T(e.checkpoints,["retention_days"]),e.output=T(e.output,["default_format"]),e.ux=T(e.ux,["deprecation_hints"]),e.history=T(e.history,["missing_stream","compact_policy"]),e.validation=T(e.validation,["sprint_release_format","parent_reference","metadata_profile","metadata_required_fields","lifecycle_stale_blocker_reason_patterns","lifecycle_closure_like_blocked_reason_patterns","lifecycle_closure_like_resolution_patterns","lifecycle_closure_like_actual_result_patterns","estimate_defaults_by_type"]),e.governance=T(e.governance,["preset","ownership_enforcement","create_mode_default","close_validation_default","require_close_reason","parent_reference","metadata_profile","force_required_for_stale_lock","create_default_type","workflow_enforcement","duplicate_detection_mode","duplicate_detection_threshold","duplicate_detection_limit"]),e.workflow=T(e.workflow,["definition_of_done"]),e.testing=T(e.testing,["record_results_to_items","allow_untrusted_linked_tests"]),e.telemetry=T(e.telemetry,["enabled","first_run_prompt_completed","capture_level","endpoint","installation_id","retention_days"]),e.agent_guidance=T(e.agent_guidance,["prompt_completed","declined","declined_at","template_version","last_checked_files"]),e.item_types=T(e.item_types,["definitions"]),e.schema=T(e.schema,["version","files","statuses","fields","workflow","type_workflows","unknown_field_policy"]),e.schema.files=T(J(e.schema.files),["types","statuses","fields","workflows"]),e.schema.workflow=T(J(e.schema.workflow),["draft_status","open_status","in_progress_status","blocked_status","close_status","canceled_status"]),e.context=T(e.context,["default_depth","activity_limit","stale_threshold_days","sections"]),e.context.sections=T(J(e.context.sections),["hierarchy","activity","progress","blockers","files","workload","staleness","tests"]),e.extensions=T(e.extensions,["enabled","disabled","policy"]),e.extensions.policy=T(J(e.extensions.policy),["mode","trust_mode","pm_max_version_exceeded_mode","require_provenance","trusted_extensions","default_sandbox_profile","allowed_extensions","blocked_extensions","allowed_capabilities","blocked_capabilities","allowed_surfaces","blocked_surfaces","allowed_commands","blocked_commands","allowed_actions","blocked_actions","allowed_services","blocked_services","extension_overrides"]),e.extensions.policy.extension_overrides=ei(e.extensions.policy.extension_overrides).map(n=>T(J(n),["name","disabled","require_trusted","require_provenance","sandbox_profile","allowed_capabilities","blocked_capabilities","allowed_surfaces","blocked_surfaces","allowed_commands","blocked_commands","allowed_actions","blocked_actions","allowed_services","blocked_services"])),e.search=T(e.search,["score_threshold","hybrid_semantic_weight","max_results","embedding_model","embedding_corpus_max_characters","embedding_batch_size","embedding_timeout_ms","scanner_max_batch_retries","provider","default_mode","mutation_refresh_policy","query_expansion","rerank"]),e.search.query_expansion=T(J(e.search.query_expansion),["enabled","provider"]),e.search.rerank=T(J(e.search.rerank),["enabled","model","top_k"]),e.providers=T(e.providers,["openai","ollama"]),e.providers.openai=T(J(e.providers.openai),["base_url","api_key","model"]),e.providers.ollama=T(J(e.providers.ollama),["base_url","model"]),e.vector_store=T(e.vector_store,["adapter","collection_name","qdrant","lancedb"]),e.vector_store.qdrant=T(J(e.vector_store.qdrant),["url","api_key"]),e.vector_store.lancedb=T(J(e.vector_store.lancedb),["path"])}function D_(e){return{...e,locks:H(e.locks,k.locks),ids:H(e.ids,k.ids),agent_identity:H(e.agent_identity,k.agent_identity),mutation_guard:H(e.mutation_guard,k.mutation_guard),checkpoints:H(e.checkpoints,k.checkpoints),output:H(e.output,k.output),ux:H(e.ux,k.ux),history:H(e.history,k.history),validation:H(e.validation,k.validation),workflow:H(e.workflow,k.workflow),testing:H(e.testing,k.testing),telemetry:H(e.telemetry,k.telemetry),agent_guidance:H(e.agent_guidance,k.agent_guidance),item_types:H(e.item_types,k.item_types),schema:H(e.schema,k.schema),context:H(e.context,k.context),extensions:H(e.extensions,k.extensions),search:H(e.search,k.search),providers:H(e.providers,k.providers),vector_store:H(e.vector_store,k.vector_store)}}function N_(e,t){return{...e.validation,parent_reference:t.parent_reference,metadata_profile:t.metadata_profile,metadata_required_fields:bc(e.validation?.metadata_required_fields),lifecycle_stale_blocker_reason_patterns:De(e.validation?.lifecycle_stale_blocker_reason_patterns??k.validation.lifecycle_stale_blocker_reason_patterns),lifecycle_closure_like_blocked_reason_patterns:De(e.validation?.lifecycle_closure_like_blocked_reason_patterns??k.validation.lifecycle_closure_like_blocked_reason_patterns),lifecycle_closure_like_resolution_patterns:De(e.validation?.lifecycle_closure_like_resolution_patterns??k.validation.lifecycle_closure_like_resolution_patterns),lifecycle_closure_like_actual_result_patterns:De(e.validation?.lifecycle_closure_like_actual_result_patterns??k.validation.lifecycle_closure_like_actual_result_patterns),estimate_defaults_by_type:Xo(e.validation?.estimate_defaults_by_type)}}function L_(e){return{...k.search,...e.search,default_mode:dc(e.search?.default_mode),mutation_refresh_policy:cc(e.search?.mutation_refresh_policy),query_expansion:{...k.search.query_expansion,...e.search?.query_expansion,enabled:lc(e.search?.query_expansion?.enabled),provider:uc(e.search?.query_expansion?.provider)},rerank:{...k.search.rerank,...e.search?.rerank,enabled:fc(e.search?.rerank?.enabled),model:mc(e.search?.rerank?.model),top_k:_c(e.search?.rerank?.top_k)}}}function P_(e){return{default_depth:e.context?.default_depth??k.context.default_depth,activity_limit:e.context?.activity_limit??k.context.activity_limit,stale_threshold_days:e.context?.stale_threshold_days??k.context.stale_threshold_days,sections:{...k.context.sections,...e.context?.sections}}}function M_(e){return{...e.vector_store,adapter:e.vector_store?.adapter??k.vector_store.adapter,collection_name:pc(e.vector_store?.collection_name),qdrant:{...e.vector_store?.qdrant},lancedb:{...e.vector_store?.lancedb}}}function j_(e,t,n,r){return{...e,item_format:"toon",validation:N_(e,t),governance:t,agent_guidance:yc(e.agent_guidance),item_types:{definitions:r.item_type_definitions},schema:{...n,statuses:r.schema_statuses,fields:r.schema_fields,type_workflows:r.schema_type_workflows},search:L_(e),context:P_(e),extensions:{enabled:Zo(e.extensions?.enabled),disabled:Zo(e.extensions?.disabled),policy:vc(e.extensions?.policy)},vector_store:M_(e)}}function Ec(e,t,n){let r=new Set([...Object.keys(t),...Object.keys(n)]);for(let o of r){let i=t[o],s=n[o];if(!oe(i,s)){if(s===void 0){delete e[o];continue}if(typeof i=="object"&&i!==null&&!Array.isArray(i)&&typeof s=="object"&&s!==null&&!Array.isArray(s)){let a=e[o],c=typeof a=="object"&&a!==null&&!Array.isArray(a)?a:{};Ec(c,i,s),Object.keys(c).length>0?e[o]=c:delete e[o];continue}e[o]=structuredClone(s)}}}var ni=["version","id_prefix","ids","author_default","agent_identity","mutation_guard","item_format","locks","checkpoints","output","ux","history","validation","governance","workflow","testing","telemetry","agent_guidance","item_types","schema","context","extensions","search","providers","vector_store"];function ic(e,t){let n=D_(e),r=hr(n),o=Ct(n.schema),i=y_(n,t),s=j_(n,r,o,i),a=T({...s,governance:l_(r)},ni);return A_(a),a}function F_(e,t={}){let n=ic(e,t.persist_source);if(t.persist_source){let r=wc(t.persist_source.source_settings);r.item_types={definitions:structuredClone(t.persist_source.runtime_item_type_definitions)},r.schema={...r.schema,statuses:structuredClone(t.persist_source.runtime_schema_statuses),fields:structuredClone(t.persist_source.runtime_schema_fields),type_workflows:structuredClone(t.persist_source.runtime_schema_type_workflows)};let o=ic(r,t.persist_source),i=structuredClone(t.persist_source.source_settings);return Ec(i,o,n),`${JSON.stringify(T(i,ni),null,2)}
|
|
162
162
|
`}return`${JSON.stringify(n,null,2)}
|
|
163
|
-
`}async function
|
|
164
|
-
`:i,result:void 0}},op:n,author:ms(void 0,t.author_default),lockTtlSeconds:t.locks.ttl_seconds,lockWaitMs:t.locks.wait_ms,recordCreation:!1}),o&&ei(t,{...o,persisted_settings:structuredClone(s)}),await fe({path:r,scope:"project",op:n})}finally{Ae(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]="8ed4af4c-40cf-5902-930b-78a4758871b2")}catch{}})();function $_(e,t){let n=e.trim().toLowerCase();if(n.length===0)return;let r=Math.floor(n.length/3);return t.map(o=>({candidate:o,distance:Zt(n,o.toLowerCase(),r)??Number.POSITIVE_INFINITY})).filter(({distance:o})=>Number.isFinite(o)).sort((o,i)=>o.distance!==i.distance?o.distance-i.distance:o.candidate.localeCompare(i.candidate))[0]?.candidate}function Ic(e){return["pm",...e].map(t=>/^[A-Za-z0-9_./:@=-]+$/u.test(t)?t:JSON.stringify(t)).join(" ")}function xb(e){let t=e.command_path.trim().replaceAll(/\s+/gu," "),n=e.token.trim(),r=n.length===0?"<empty>":n,o=[...new Set(e.allowed.map(m=>m.trim()))].filter(Boolean).sort((m,p)=>m.localeCompare(p));if(t.length===0||r.length===0||o.length===0)throw new TypeError("Unknown-subcommand contracts require a path, token, and allowed set");let i=t.split(" "),s=e.trailing_args??[],a=e.display_name??`pm ${t}`,c=e.token_kind??"subcommand",d=e.retry_command?void 0:$_(r,o),l=Ic([...i,r,...s]),f=e.retry_command??(d?Ic([...i,d,...s]):void 0);return new v(`Unknown ${a} ${c} "${r}". Allowed: ${o.join(", ")}${e.message_suffix??""}`,e.exit_code??b.USAGE,{code:"unknown_subcommand",reason:"unknown_positional_token",examples:[...f?[f]:[],...e.examples??[],`pm ${t} --help`],nextSteps:f?[`Retry with the suggested command: ${f}`]:["Choose one value from recovery.allowed_values."],recovery:{attempted_command:l,allowed_values:o,suggested_retry:f,fallback_candidates:e.fallback_candidates}})}import H_ from"node:fs/promises";import z_ 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]="99eadab1-5338-5d75-b600-fa0463053375")}catch{}})();function U_(e){return[...new Set(e.filter(t=>t.trim().length>0))].sort((t,n)=>t.localeCompare(n))}function B_(e,t){return new v(`Missing history stream for ${e}. ${t} requires history streams when settings.history.missing_stream is strict_error.`,b.NOT_FOUND)}async function W_(e,t){return await vi(z_.dirname(e)),await(await H_.open(e,"a")).close(),fe({path:e,scope:"project",op:`${t}:history:auto_create`})}async function ni(e){return V_({pmRoot:e.pmRoot,settings:e.settings,itemIds:[e.itemId],commandLabel:e.commandLabel})}async function V_(e){let t=U_(e.itemIds),n=[],r=[];for(let o of t){let i=le(e.pmRoot,o);if(!await Pe(i)){if(e.settings.history.missing_stream==="strict_error")throw B_(o,e.commandLabel);r.push(...await W_(i,e.commandLabel)),r.push(`history_stream_auto_created:${o}`),n.push(o)}}return{auto_created_ids:n,warnings: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]="cb9a55d6-9ba9-50af-a54f-2bba5d076fdb")}catch{}})();function Qt(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 v("This compacted stream has no trustworthy version offset; numeric history addresses are unavailable.",b.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]="8835b501-34c7-51ba-b02e-782f8a457e1b")}catch{}})();function q_(e,t){let n=-1;return e.forEach((r,o)=>{let i=Date.parse(r.ts);if(!Number.isFinite(i))throw new v(`History for this item contains invalid timestamp at entry ${o+1}.`,b.GENERIC_FAILURE);i<=t&&(n=o)}),n}function G_(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 K_(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 Sc(e,t,n={}){let r=e.trim(),o=n.errorSubject??"history",i=o==="restore"?"Restore":"History",{guidance:s,lastTimestamp:a}=G_(t,Qt(t,!0));if(!r)throw new v(`Missing ${o} target. Use a timestamp or version number.`,b.USAGE,s);if(/^\d+$/.test(r)){let l=Qt(t),f=Number(r);if(f>=1&&f<=l)throw new v(`History version ${f} was pruned by compaction.`,b.USAGE,{...s,code:"history_version_pruned"});if(!Number.isSafeInteger(f)||f<1||f>l+t.length)throw new v(`${i} version must be between ${l+1} and ${l+t.length} for this item.`,b.USAGE,s);return{kind:"version",raw:r,historyIndex:f-l-1}}let c=Date.parse(r);if(!Number.isFinite(c))throw new v(`Invalid ${o} target "${e}". Use a positive version number or ISO timestamp.`,b.USAGE,s);let d=q_(t,c);if(d<0||n.allowFutureTimestamp!==!0&&c>Date.parse(a))throw new v(o==="restore"?`No history entries exist at or before timestamp ${r}.`:`No history entry exists at timestamp ${r}.`,b.USAGE,s);return{kind:"timestamp",raw:r,historyIndex:d}}function ri(e,t,n,r){let o=qe(e,t);if(o.ok)return o.document;let i=K_(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 v(`Failed to apply history patch at entry ${n} (${s.join(", ")}). ${i.reason??String(o.error)}`,b.GENERIC_FAILURE)}function Tc(e,t){let n=e[0];if(n&&n.op!=="create"&&n.op!=="history_compact_baseline"){let s=qe(ft,n.patch);if(!s.ok||typeof s.document.metadata.id!="string")throw new v("History starts without a reconstructable item baseline.",b.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=Oe([...r]),i=structuredClone(ft);for(let s=0;s<=t;s+=1){let a=e[s];if(!a)throw new v(`History target entry ${s+1} does not exist.`,b.USAGE);i=ri(i,a.patch,s+1,a.op)}if(!o.ok)throw new v(`History cannot be replayed: ${o.errors.join(", ")}.`,b.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 qb(e,t){if(Object.keys(e.metadata).length>0){if(typeof e.metadata.id!="string"||!Array.isArray(e.metadata.tags))throw new v("History has no complete item baseline for this target.",b.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 v(`History target ${t.raw} resolves to a deleted state; choose a version or timestamp where the item exists.`,b.USAGE)}import ii from"node:fs/promises";import _r 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]="b6e08d70-4e3f-5ad3-83ad-9cb49edb526e")}catch{}})();function Ne(e,t){return typeof e=="object"&&e!==null&&"code"in e&&e.code===t}function si(e){let t=["--pm-path",e,"init","--defaults","--agent-guidance","skip"];return{suggested_retry:Me(t),suggested_retry_args:t}}function pr(e){return new v(`Tracker root is not a directory at ${e}.`,b.USAGE,{code:"tracker_root_not_directory",reason:"not_a_directory",resolved_path:e,nextSteps:["Pass a tracker directory, usually <workspace>/.agents/pm, rather than a file path."]})}function oi(e){return new v(`Tracker root is not readable at ${e}.`,b.GENERIC_FAILURE,{code:"tracker_root_unreadable",reason:"unreadable",resolved_path:e,nextSteps:["Grant read and directory-search permission to the tracker root, then retry."]})}async function X_(e){let t=_r.resolve(e),n=_r.parse(t).root,r=_r.dirname(t);for(;r!==n;){let o;try{o=await ii.stat(r)}catch(i){if(Ne(i,"ENOTDIR"))throw pr(e);if(!Ne(i,"ENOENT"))throw i;r=_r.dirname(r);continue}if(!o.isDirectory())throw pr(e);return}}async function vt(e){let t;try{t=await ii.stat(e)}catch(n){throw Ne(n,"ENOENT")?(await X_(e),new v(`Tracker is not initialized at ${e}. Tracker root does not exist. Run pm init first.`,b.NOT_FOUND,{code:"tracker_root_missing",reason:"missing",resolved_path:e,nextSteps:["Confirm the tracker root path or initialize it with the emitted retry."],recovery:si(e)})):Ne(n,"ENOTDIR")?pr(e):Ne(n,"EACCES")||Ne(n,"EPERM")?oi(e):n}if(!t.isDirectory())throw pr(e);if(process.platform!=="win32"&&((t.mode&292)===0||(t.mode&73)===0))throw oi(e);try{await(await ii.opendir(e)).close()}catch(n){throw Ne(n,"EACCES")||Ne(n,"EPERM")?oi(e):n}}async function ai(e){if(await vt(e),!await Pe(It(e)))throw new v(`Tracker is not initialized at ${e}. Run pm init first.`,b.NOT_FOUND,{code:"tracker_not_initialized",reason:"settings_missing",resolved_path:e,nextSteps:["Initialize the selected tracker root with the emitted retry."],recovery:si(e)})}import bt from"node:fs/promises";import{statSync as Y_}from"node:fs";(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]="401ead12-fb72-586b-8625-33ae44ed2eb9")}catch{}})();function J_(e,t){let n=-1,r=structuredClone(ft);for(let[a,c]of e.entries()){if(r=ri(r,c.patch,a+1,c.op),r.metadata.id!==void 0&&r.metadata.id!==t)throw new v(`History belongs to item ${String(r.metadata.id)}, expected ${t}.`,b.GENERIC_FAILURE,{code:"history_replay_invalid",required:"Recover the correct history stream for this item before attempting restoration."});r.metadata.id===t&&Array.isArray(r.metadata.tags)&&(n=a)}let o=Qt(e,!0),i=n<0||o===null?null:o+n+1,s=i===null?void 0:String(i);if(n>=0&&s===void 0){let a=e[n].ts;Sc(a,e).historyIndex===n&&(s=a)}return{version:i,target:s}}async function Cc(e,t,n){let r=new Set([Ge(t,n),jt(t)]);for(let o of r){let i=le(e,o);if(!Y_(i,{throwIfNoEntry:!1})?.isFile())continue;let s=await Te(i,o),a=-1;if(s.forEach((p,_)=>{p.op==="delete"&&(a=_)}),a<0)continue;let c=Tc(s,s.length-1);if(Object.keys(c.metadata).length!==0)continue;let{version:d,target:l}=J_(s,o),f=l===void 0?["history",o,"--verify"]:["get",o,"--at",l],m=Me(f);return new v(`Item ${o} was deleted at ${s[a].ts}; its history is retained.`,b.NOT_FOUND,{code:"item_deleted",required:"Read a retained materialized version, then restore it if the item should exist again.",item_id:o,tombstone:{deleted:!0,deleted_at:s[a].ts,recoverable:l!==void 0,last_materialized_version:d},nextSteps:[m,...l===void 0?["Recover the pre-compaction history from version control."]:[Me(["restore",o,l])]],recovery:{suggested_retry:m,suggested_retry_args:f}})}}import ci from"node:path";import{isUtf8 as Q_}from"node:buffer";(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]="02383f73-64f0-5ffc-a802-f8ef2b3cc038")}catch{}})();async function Z_(e){try{return await bt.access(e),!0}catch{return!1}}function ep(e,t){e&&(e.includes(t)||e.push(t))}function Oc(e){return e??sn(ue())}function tp(e){return e==="toon"?["toon","json_markdown"]:e==="json_markdown"?["json_markdown","toon"]:["toon","json_markdown"]}async function hr(e,t,n="pm-",r,o=Le){let i=t.trim(),s=i.startsWith("#")?i.slice(1):i;if(s.length===0)return null;let a=Ge(t,n),c=jt(t),d=[...new Set([s,a,c])].filter(m=>m.length>0),l=Object.entries(o),f=tp(r);for(let m of d){let p=new Map;for(let[_]of l)for(let g of f){let h=br(e,_,m,g,o);await Z_(h)&&p.set(h,p.get(h)??{id:m,type:_,itemPath:h,item_format:g})}if(p.size>1){let _=[...p.keys()].map(g=>ci.relative(e,g).split(ci.sep).join("/")).sort();throw new v(`Item ${m} has ambiguous identity across ${_.join(", ")}. Preserve both documents and inspect pm ops validate --check-storage-integrity before resolving the collision.`,b.CONFLICT,{code:"item_identity_ambiguous",item_id:m,paths:_})}for(let _ of p.values())return _}return null}async function yr(e,t={}){let n=await np(e,t);if(n.error!==null)throw n.error;return{raw:n.raw,document:n.document}}async function np(e,t={}){let n=await bt.readFile(e.itemPath);if(!Q_(n))throw new v("Item contains invalid UTF-8; preserve a binary backup before recovering it.",b.CONFLICT,{code:"item_document_encoding_invalid",item_id:e.id,item_path:e.itemPath,byte_length:n.length,empty:!1});let r=n.toString("utf8");await be({path:e.itemPath,scope:"project"});let o;try{o=Sn(r,{format:e.item_format,schema:t.schema,extensionFieldNames:Oc(t.extensionFieldNames),onWarning:i=>ep(t.warnings,i)})}catch(i){if(i instanceof v&&i.code==="item_document_invalid")return{raw:r,document:null,error:new v(`Cannot read ${e.id} at ${e.itemPath}${n.length===0?" (zero-length file)":""}: ${i.message}`,i.exitCode,{...i.context,item_id:e.id,item_path:e.itemPath,byte_length:n.length,empty:n.length===0,nextSteps:[`Run pm history ${e.id} --full, then pm restore ${e.id} <version> to recover a recorded state.`]})};throw i}return{raw:r,document:o,error:null}}async function rp(e,t,n=Le,r,o){await vt(e);let i=await Pa(e,t,n,r,o);return Un(i.length),i.map(s=>s.metadata)}async function xc(e,t,n=Le,r,o){await vt(e);let i=await Ma(e,t,n,r,o);return Un(i.length),i.map(s=>s.metadata)}async function Fw(e,t,n=Le,r,o,i={}){await vt(e);let s=await tr(e,t,n,r,o,{includeBody:!0,forceSourceScan:i.forceSourceScan});return Un(s.length),s.map(a=>({...a.metadata,body:a.body}))}function Rc(e){return{async get(t){let n=await hr(e.pmRoot,t,e.settings.id_prefix,e.settings.item_format,e.typeToFolder);if(!n)return null;let{document:r}=await yr(n,{schema:e.settings.schema});return{item:r.metadata,body:r.body}},list:()=>rp(e.pmRoot,e.settings.item_format,e.typeToFolder,void 0,e.settings.schema)}}async function op(e,t){let n=new Set(Object.values(t)),r=[];return await Promise.all([...n].map(async o=>{try{let i=await bt.readdir(ci.join(e,o));for(let s of i)for(let a of cn)if(s.toLowerCase().endsWith(a)){r.push(s.slice(0,-a.length));break}}catch{}})),r}async function ip(e,t,n,r){let o=Ge(t,n),i=await op(e,r);if(i.length===0)return[];let s=Math.max(3,Math.floor(o.length/2));return i.map(c=>({id:c,distance:Zt(c,o,s)})).filter(c=>c.distance!==null).sort((c,d)=>c.distance-d.distance).slice(0,3).map(c=>c.id)}async function sp(e,t,n,r){let o=await Cc(e,t,n);if(o)return o;let i=await ip(e,t,n,r),s=["Confirm the active --path/PM_PATH scope, then retry with a valid id."];return i.length>0&&s.unshift(`Did you mean one of: ${i.join(", ")}?`),new v(`Item ${t} not found`,b.NOT_FOUND,{nextSteps:s})}function ap(e,t){return e==="claim"||t===!0&&(e==="comment_add"||e==="comment_edit"||e==="comment_delete"||e==="note_add"||e==="learning_add"||e==="release"||e==="update"||e==="update_ownership_bypass"||e==="update_audit")}async function Ac(e){let t=e.typeToFolder??an(e.settings,ue()).type_to_folder,n=await hr(e.pmRoot,e.id,e.settings.id_prefix,e.settings.item_format,t);if(!n)throw await sp(e.pmRoot,e.id,e.settings.id_prefix,t);let r=await V(e.pmRoot,n.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 o=[],{raw:i,document:s}=await yr(n,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames,warnings:o}),a=s.metadata.assignee?.trim(),c=s.metadata.claim_principal?.trim()||a,d=fs(e.author),l=mr(e.settings);if(a&&c!==d&&!e.force&&!ap(e.op,e.bypassAssigneeConflict)){if(l.ownership_enforcement==="strict")throw new v(`Item ${n.id} is assigned to ${a}. Use --force to override.`,b.CONFLICT);l.ownership_enforcement==="warn"&&o.push(`ownership_warning:assignee_conflict:${n.id}:${a}`)}return{typeToFolder:t,located:n,originalRaw:i,document:s,warnings:o,releaseLock:r}}catch(o){throw await r(),o}}function cp(e,t,n){if(!e.handled||typeof e.result!="object"||e.result===null)return{effectiveTargetItemPath:t,effectiveSerializedAfter:n,skipItemWrite:!1};let r=e.result;return{effectiveTargetItemPath:typeof r.target_item_path=="string"&&r.target_item_path.trim().length>0?r.target_item_path:t,effectiveSerializedAfter:typeof r.contents=="string"?r.contents:n,skipItemWrite:r.skip_write===!0}}async function dp(e){if(!e.skipItemWrite){if(e.effectiveTargetItemPath!==e.originalItemPath){await X(e.originalItemPath,e.originalRaw),await bt.rm(e.effectiveTargetItemPath,{force:!0});return}await X(e.originalItemPath,e.originalRaw)}}async function Dc(e){mn(e.op);let t=await Ac({pmRoot:e.pmRoot,settings:e.settings,id:e.id,op:e.op,author:e.author,force:e.force,bypassAssigneeConflict:e.bypassAssigneeConflict,extensionFieldNames:e.extensionFieldNames,typeToFolder:e.typeToFolder}),{typeToFolder:n,located:r,originalRaw:o,document:i,warnings:s,releaseLock:a}=t;try{let c=ne(i,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),d=ne(structuredClone(i),{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),l=await e.mutate(d);if(e.skipNoop===!0&&l.changedFields.length===0)return{item:c.metadata,body:c.body,changedFields:[],warnings:[...s,...l.warnings??[]]};let f=e.resolveHistoryContext?.();d.metadata.updated_at=we();let m=ne(d,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),p=await ko({pmRoot:e.pmRoot,settings:e.settings,operation:e.op,author:e.author,before:c,after:m});await kr({pm_root:e.pmRoot,operation:e.op,before:c,after:m,changed_fields:l.changedFields,sdk:Rc({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:n})});let _=await ni({pmRoot:e.pmRoot,settings:e.settings,itemId:r.id,commandLabel:e.op}),g="toon",h=Rs(m,{format:g,schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),I=br(e.pmRoot,m.metadata.type,r.id,g,n),R=le(e.pmRoot,r.id),D=await Ot("item_store_write",{op:e.op,pm_root:e.pmRoot,item_id:r.id,source_item_path:r.itemPath,target_item_path:I,history_path:R,item_format:g,before:c,after:m,contents:h}),{effectiveTargetItemPath:$,effectiveSerializedAfter:x,skipItemWrite:G}=cp(D,I,h),W=await Do(e.pmRoot,e.author),Q=[];try{G||await X($,x),!G&&$!==r.itemPath&&await bt.rm(r.itemPath);let ee=lt({nowIso:m.metadata.updated_at,author:e.author,op:e.op,before:c,after:m,message:e.message,context:p.decisions.length===0?f:{...f,workflow_policies:p.decisions}});try{await ut(R,ee)}catch(ye){throw await dp({skipItemWrite:G,effectiveTargetItemPath:$,originalItemPath:r.itemPath,originalRaw:o}),ye}G||(Q=await No({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:n,schema:e.settings.schema,itemPath:$,previousItemPath:r.itemPath,document:m}))}finally{await W()}let K=[...await fe({path:$,scope:"project",op:e.op,item_id:m.metadata.id,item_type:m.metadata.type,before:c,after:m,changed_fields:l.changedFields}),...await fe({path:R,scope:"project",op:`${e.op}:history`,item_id:m.metadata.id,item_type:m.metadata.type,before:c,after:m,changed_fields:l.changedFields})];return Er({id:m.metadata.id,op:e.op,item_type:m.metadata.type,previous_status:c.metadata.status,status:m.metadata.status,previous:un(c.metadata,l.changedFields),current:un(m.metadata,l.changedFields),changed_fields:l.changedFields}),{item:m.metadata,body:m.body,changedFields:l.changedFields,warnings:[...s,...l.warnings??[],...p.warnings,..._.warnings,...D.warnings,...Q,...K]}}finally{await a()}}async function $w(e){return Dc(e)}async function Hw(e){return Dc(e)}async function zw(e){let t=await Ac({pmRoot:e.pmRoot,settings:e.settings,id:e.id,op:"delete",author:e.author,force:e.force}),{located:n,originalRaw:r,document:o,warnings:i,releaseLock:s}=t;try{let a=Oc(void 0),c=ne(o,{schema:e.settings.schema,extensionFieldNames:a}),d=await ko({pmRoot:e.pmRoot,settings:e.settings,operation:"delete",author:e.author,before:c,after:null,dryRun:e.dryRun});await kr({pm_root:e.pmRoot,operation:"delete",before:c,after:null,changed_fields:["deleted"],sdk:Rc({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:t.typeToFolder})});let l=await ni({pmRoot:e.pmRoot,settings:e.settings,itemId:n.id,commandLabel:"delete"}),f=we(),m=Qe,p=lt({nowIso:f,author:e.author,op:"delete",before:c,after:m,message:e.message,context:d.decisions.length===0?void 0:{workflow_policies:d.decisions}}),_=le(e.pmRoot,n.id),g=await Ot("item_store_delete",{op:"delete",pm_root:e.pmRoot,item_id:n.id,item_path:n.itemPath,history_path:_,before:c}),h=n.itemPath,I=!1;if(g.handled&&typeof g.result=="object"&&g.result!==null){let x=g.result;typeof x.item_path=="string"&&x.item_path.trim().length>0&&(h=x.item_path),x.skip_delete===!0&&(I=!0)}if(e.dryRun===!0)return{item:c.metadata,changedFields:["deleted"],targetPath:h,warnings:[...i,...d.warnings,...l.warnings,...g.warnings]};let R=await Do(e.pmRoot,e.author),D=[];try{I||await bt.rm(h);try{await ut(_,p)}catch(x){throw I||await X(h,r),x}I||(D=await No({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:t.typeToFolder,schema:e.settings.schema,itemPath:h,document:null}))}finally{await R()}let $=[...await fe({path:h,scope:"project",op:"delete",item_id:c.metadata.id,item_type:c.metadata.type,before:c,after:m,changed_fields:["deleted"]}),...await fe({path:_,scope:"project",op:"delete:history",item_id:c.metadata.id,item_type:c.metadata.type,before:c,after:m,changed_fields:["deleted"]})];return Er({id:c.metadata.id,op:"delete",item_type:c.metadata.type,previous_status:c.metadata.status,previous:un(c.metadata,Object.keys(c.metadata)),changed_fields:["deleted"]}),{item:c.metadata,changedFields:["deleted"],warnings:[...i,...d.warnings,...l.warnings,...g.warnings,...D,...$]}}finally{await 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]="5c8194ff-d877-51b8-bd54-d206f85a979c")}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]="2f2a7df8-9c95-5ed1-bd43-33dde57dd7f0")}catch{}})();var lp=["tree","graph","context"],up=["none","repeated"],fp=["outgoing","incoming","both"],mp=32,_p=200,pp=400,hp=16e3;function yp(e){let t=e?.trim().toLowerCase()??"tree";if(lp.includes(t))return t;throw new v(`Invalid --format value "${e}". Use "tree", "graph", or "context".`,b.USAGE)}function wt(e,t){if(e===void 0)return;let n=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(n)||n<1)throw new v(`Invalid --${t} value "${e}". Use a positive integer.`,b.USAGE);return n}function Lc(e){if(e===void 0)return;let t=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(t)||t<0)throw new v(`Invalid --max-depth value "${e}". Use a non-negative integer.`,b.USAGE);return t}function gp(e){let t=e?.trim().toLowerCase()??"none";if(up.includes(t))return t;throw new v(`Invalid --collapse value "${e}". Use "none" or "repeated".`,b.USAGE)}function vp(e){let t=e?.trim().toLowerCase()??"both";if(fp.includes(t))return t;throw new v(`Invalid --direction value "${e}". Use "outgoing", "incoming", or "both".`,b.USAGE)}function bp(e,t=de()){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 v(`Invalid --kind value "${o}". Registered kinds: ${s}.`,b.USAGE)}r.add(i.kind)}return[...r].sort()}function wp(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 Ep(e){return{id:e.id,title:e.title,type:e.type,status:e.status,dependencies:wp(e.dependencies)}}function kp(e){return fn(new TextEncoder().encode(JSON.stringify({...e,dependencies:void 0})).byteLength)}function Ip(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(Pc(d.id,n,r,o,i,s,a,c+1,d.kind))}}function Sp(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 Pc(e,t,n,r,o,i,s,a=0,c){let d=e.trim().toLowerCase(),l=t.get(d),f={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+=kp(f),Sp(f,l,d,r,o,i,s,a))return f;o==="repeated"&&i.add(d);let m=new Set(n);return m.add(d),Ip(f,l,t,m,r,o,i,s,a),f}function Nc(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 Tp(e){let t=new Map,n=new Map,r=[e];for(;r.length>0;){let a=r.pop();t.set(a.id,Nc(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,Nc(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 Mc(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 f=t.get(l);if(!f){i.add(l);continue}if(!(n!==void 0&&d.depth>=n)&&!s.has(l)){s.add(l);for(let m of f.dependencies)o.add(`${l}::${m.id.trim().toLowerCase()}::${m.kind}`),a.push({id:m.id,depth:d.depth+1})}}return{node_count:r.size,edge_count:o.size,edge_basis:"deduplicated_directed",missing_count:i.size}}function Cp(e,t=de()){let n=Lc(e.maxDepth),r=wt(e.nodeLimit,"node-limit"),o=wt(e.edgeLimit,"edge-limit"),i=wt(e.tokenBudget,"token-budget"),s=bp(e.kind,t);return{direction:vp(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 Op(e,t,n,r){return Ka(e.graph,t,e.details.map(o=>o.id===t&&r.length>0?{...o,evidence:r}:o),n)}function di(e,t,n,r){for(let o of n.slice(0,r)){let i=o?.trim();i&&e.push(`${t}:${i}`)}}async function xp(e,t,n,r){let o=await hr(e,t,n.id_prefix,n.item_format,r);if(!o)return[];let{document:i}=await yr(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(([,m])=>m===0))return[];let f=[`linked:${l.map(([m,p])=>`${m}=${p}`).join(",")}`];return di(f,"file",a.map(m=>m.path),3),di(f,"test",c.map(m=>m.command??m.path),2),di(f,"doc",d.map(m=>m.path),2),f}function Rp(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 Ap(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 jc(e,t,n){let r;for(;;){let o=fn(new TextEncoder().encode(Cr(Sr("deps",e),t)).byteLength);if(o===r)return o;n(o),r=o}}function Dp(e){return e instanceof TypeError&&e.message.startsWith("Relationship context tokenBudget cannot fit ")}function Np(e){try{return Op(e.assembly,e.canonicalId,{...e.contextOptions,...e.internalTokenBudget===void 0?{}:{tokenBudget:e.internalTokenBudget}},e.rootEvidence)}catch(t){if(e.smallestResult!==void 0&&Dp(t))return e.smallestResult;throw t}}function Lp(e){let{assembly:t,canonicalId:n,contextOptions:r,rootEvidence:o,summaryOnly:i,outputFormat:s,missingCount:a,missingReferences:c}=e,l=r.edgeLimit??40,f=r.tokenBudget,m,p;for(;;){let _=Np({assembly:t,canonicalId:n,contextOptions:r,internalTokenBudget:f,rootEvidence:o,smallestResult:p});if("format"in _)return _;let g=_;m??=g.meta.tokenBudget,f??=m;let h=Rp({canonicalId:n,context:g,missingCount:a,missingReferences:c,referenceLimit:l,summaryOnly:i});if(p=h,i||(g.meta.tokenBudget=m,g.meta.usedTokens=jc(Et(h,!1),s,D=>{g.meta.usedTokens=D}),g.meta.usedTokens<=m))return h;if(l>0){l-=1;continue}let I=f,R=I*m/g.meta.usedTokens;f=Math.min(I-1,Math.max(1,Math.floor(R*.9)))}}function Pp(e){let{assembly:t,canonicalId:n,options:r,rootEvidence:o,summaryOnly:i,outputFormat:s}=e,a=Cp(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())),f=t.graph.registry(),m=a.kinds?new Set(a.kinds.map(g=>f.require(g).kind)):void 0,p=new Set([n,...c.value]),_=[...t.dangling.active,...t.dangling.legacy_terminal].filter(g=>Ap({row:g,missingReachableSet:l,packetIds:p,filteredKinds:m,registry:f}));return Lp({assembly:t,canonicalId:n,contextOptions:a,rootEvidence:o,summaryOnly:i,outputFormat:s,missingCount:d.length,missingReferences:_})}function Mp(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 jp(e,t,n,r,o,i,s){let a=o??mp,c=wt(n.nodeLimit,"node-limit")??_p,d=wt(n.edgeLimit,"edge-limit")??pp,l=wt(n.tokenBudget,"token-budget")??hp,f={nodeLimit:c,edgeLimit:d,tokenBudget:l,nodes:0,edges:0,estimatedTokens:0,reasons:new Set},m=Pc(e,r,new Set,a,t==="graph"?"repeated":i,new Set,f),p=Mc(e,r,void 0),_;for(;;){let g=Tp(m),h=f.reasons.size===0?void 0:{reasons:[...f.reasons].sort(),limits:{max_depth:a,node_limit:c,edge_limit:d,token_budget:l},estimated_tokens:0,total_node_count:p.node_count,total_edge_count:p.edge_count,omitted_node_count:Math.max(0,p.node_count-g.nodes.length),omitted_edge_count:Math.max(0,p.edge_count-g.edges.length)},I={id:e,format:t,node_count:g.nodes.length,edge_count:g.edges.length,edge_basis:"deduplicated_directed",missing_count:g.missing_ids.length,...h?{truncation:h}:{}};if(_=t==="tree"?{...I,tree:m}:{...I,graph:g},(_.truncation===void 0?fn(new TextEncoder().encode(Cr(Sr("deps",Et(_,!1)),s)).byteLength):jc(Et(_,!1),s,D=>{_.truncation.estimated_tokens=D}))<=l)return _;if(!Mp(m))return f.reasons.add("token_budget"),_;f.reasons.add("token_budget")}}function Et(e,t,n={}){let r={name:e.format==="tree"?"dependency_tree":e.format==="graph"?"dependency_graph":"relationship_context",restore_with:"--full"};return{...e,legacy_alias_counts:n,projection:{mode:t?"summary":"full",declared_field_groups:[r],included_field_groups:t?[]:[r.name]}}}async function cE(e,t,n){let r=Ci(process.cwd(),n.path);await ai(r);let o=yp(t.format),i=Lc(t.maxDepth),s=gp(t.collapse);Fi(t.summary===!0,t.full===!0,"--summary");let a=t.summary===!0,c=await kc(r),d=an(c,ue()),l=await xc(r,c.item_format,d.type_to_folder,void 0,c.schema),f=ln(c.schema),m=new Map(l.map(_=>[_.id.trim().toLowerCase(),Ep(_)])),p=Ho(l,_=>he(_,f));for(let _ of[...p.active,...p.legacy_terminal]){let g=m.get(_.holder_id.trim().toLowerCase()),h=_.kind.trim().toLowerCase();g&&!g.dependencies.some(I=>I.id.trim().toLowerCase()===_.target_id.trim().toLowerCase()&&I.kind===h)&&g.dependencies.push({id:_.target_id,kind:h})}if(!m.has(e.trim().toLowerCase()))throw new v(`Item ${e} not found`,b.NOT_FOUND);if(o==="context"){let _=m.get(e.trim().toLowerCase()).id,g=a?[]:await xp(r,_,c,d.type_to_folder),h=D=>he(D,f),I=ce(),R=Ga().lookup(r,Va(l,h,I),()=>sr(l,h,I));return Et(Pp({assembly:R.assembly,canonicalId:_,options:t,rootEvidence:g,summaryOnly:a,outputFormat:n.json===!0?"json":"toon"}),a,R.assembly.legacyAliasCounts)}return a?Et({id:e,format:o,...Mc(e,m,i)},!0,Object.fromEntries(Object.entries(sr(l,_=>he(_,f)).legacyAliasCounts))):Et(jp(e,o,t,m,i,s,n.json===!0?"json":"toon"),!1,Object.fromEntries(Object.entries(sr(l,_=>he(_,f)).legacyAliasCounts)))}export{je as a,xr as b,$p as c,Hp as d,Yi as e,Lr as f,Xp as g,Yp as h,Jp as i,Qp as j,Zp as k,eh as l,Br as m,Wr as n,os as o,lh as p,uh as q,fh as r,mh as s,_h as t,ph as u,Kr as v,ds as w,hh as x,yh as y,gh as z,yd as A,fs as B,ms as C,wh as D,vd as E,_s as F,ze as G,Ie as H,vs as I,xt as J,Lh as K,Ph as L,nt as M,ps as N,kh as O,hs as P,bd as Q,Ih as R,vn as S,rt as T,he as U,wn as V,In as W,Sn as X,Rs as Y,ne as Z,ql as _,Te as $,at as aa,mu as ba,wy as ca,Ey as da,ky as ea,wu as fa,Pn as ga,We as ha,Mt as ia,Gy as ja,ho as ka,Fn as la,Qs as ma,Ky as na,ta as oa,Xy as pa,lt as qa,ut as ra,As as sa,ft as ta,$n as ua,ig as va,go as wa,Hn as xa,sg as ya,ag as za,sa as Aa,qe as Ba,da as Ca,Oe as Da,Gu as Ea,cg as Fa,dg as Ga,Ft as Ha,bo as Ia,xg as Ja,Rg as Ka,pa as La,ya as Ma,Ag as Na,sb as Oa,Ae as Pa,mr as Qa,Ec as Ra,kc as Sa,Ib as Ta,xb as Ua,ni as Va,V_ as Wa,ua as Xa,jt as Ya,Ge as Za,hg as _a,Qt as $a,Sc as ab,ri as bb,Tc as cb,qb as db,rf as eb,sf as fb,af as gb,cf as hb,df as ib,ko as jb,Kg as kb,ev as lb,tv as mb,nv as nb,Ra as ob,Tf as pb,Do as qb,pv as rb,No as sb,tr as tb,vt as ub,ai as vb,hr as wb,yr as xb,np as yb,rp as zb,xc as Ab,Fw as Bb,Rc as Cb,sp as Db,$w as Eb,Hw as Fb,zw as Gb,Po as Hb,om as Ib,qt as Jb,rr as Kb,Fa as Lb,im as Mb,sm as Nb,am as Ob,lm as Pb,Mv as Qb,jv as Rb,wm as Sb,ce as Tb,xv as Ub,ir as Vb,Rv as Wb,vm as Xb,Av as Yb,Kt as Zb,km as _b,Sm as $b,Ho as ac,Tm as bc,Wv as cc,sr as dc,Va as ec,zo as fc,Ga as gc,Xv as hc,Ka as ic,wt as jc,Lc as kc,vp as lc,bp as mc,cE as nc};
|
|
165
|
-
//# sourceMappingURL=chunk-
|
|
163
|
+
`}async function kc(e){let t=St(e),n=[t];await Ee({path:t,scope:"project"});let r=tc(e);if(r){let d=await Re(r.tracked_paths);if(Yt(d,r.signatures))return pr(r.value)}let o=await Re([t]),i;try{i=await we(t)}catch{return Jt("settings_read_fs_error")}if(i===null){let d=Jt();return await Jo(e,[t],d,o,[t]),d}let s=await Re([t]);if(!Yt(o,s))return Ae(e),kc(e);let a;try{a=JSON.parse(i)}catch{let d=Jt("settings_read_invalid_json");return await Jo(e,[t],d,s,[t]),d}let c=Ya(a);if(!c.success){let d=Jt("settings_read_invalid_schema");return await Jo(e,[t],d,s,[t]),d}try{let d=wc(c.data),l=m_(e,d.schema,t);n=l;let f=await Re(l),m=await Ai(e,d.schema),p=await Di(e,d.schema),_=await Re(l),g={...d,item_types:{definitions:vt([...d.item_types.definitions,...ei(p.type_definitions_from_file)])},schema:p.schema};ti(g,f_(c.data,g));let h={settings:g,metadata:{has_explicit_item_format:g_(a)},warnings:[...c.data.item_format==="json_markdown"?["settings_item_format_legacy_json_markdown_coerced_to_toon"]:[],...m.created_paths.map(I=>`runtime_schema_bootstrap_created:${I}`),...p.warnings]};return m.created_paths.length===0?Yt(f,_)?_r(e,{tracked_paths:l,signatures:_,value:pr(h)}):Ae(e):Ae(e),h}catch{let d=Jt("settings_read_merge_failed");return await p_(e,n,d),d}}async function Ic(e){return(await kc(e)).settings}async function Ib(e,t,n=s_){let r=St(e),o=hc(t),i=F_(t,{persist_source:o}),s=JSON.parse(i);try{await ga({pmRoot:e,filePath:r,mutate:a=>{let c=null;if(a!==null)try{c=JSON.parse(a)}catch{throw new v("Existing settings.json is malformed; the settings write was refused.",b.USAGE,{code:"settings_write_invalid_existing_json",reason:"existing_settings_json_malformed",why:"Writing defaults over malformed settings could destroy intended project configuration.",nextSteps:["Repair the syntax in .agents/pm/settings.json, then retry the original command.","Run pm health to confirm the settings warning has cleared."]})}return{raw:o?`${JSON.stringify(T(Go(o.persisted_settings,s,c),ni),null,2)}
|
|
164
|
+
`:i,result:void 0}},op:n,author:_s(void 0,t.author_default),lockTtlSeconds:t.locks.ttl_seconds,lockWaitMs:t.locks.wait_ms,recordCreation:!1}),o&&ti(t,{...o,persisted_settings:structuredClone(s)}),await fe({path:r,scope:"project",op:n})}finally{Ae(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]="8ed4af4c-40cf-5902-930b-78a4758871b2")}catch{}})();function $_(e,t){let n=e.trim().toLowerCase();if(n.length===0)return;let r=Math.floor(n.length/3);return t.map(o=>({candidate:o,distance:Zt(n,o.toLowerCase(),r)??Number.POSITIVE_INFINITY})).filter(({distance:o})=>Number.isFinite(o)).sort((o,i)=>o.distance!==i.distance?o.distance-i.distance:o.candidate.localeCompare(i.candidate))[0]?.candidate}function Sc(e){return["pm",...e].map(t=>/^[A-Za-z0-9_./:@=-]+$/u.test(t)?t:JSON.stringify(t)).join(" ")}function xb(e){let t=e.command_path.trim().replaceAll(/\s+/gu," "),n=e.token.trim(),r=n.length===0?"<empty>":n,o=[...new Set(e.allowed.map(m=>m.trim()))].filter(Boolean).sort((m,p)=>m.localeCompare(p));if(t.length===0||r.length===0||o.length===0)throw new TypeError("Unknown-subcommand contracts require a path, token, and allowed set");let i=t.split(" "),s=e.trailing_args??[],a=e.display_name??`pm ${t}`,c=e.token_kind??"subcommand",d=e.retry_command?void 0:$_(r,o),l=Sc([...i,r,...s]),f=e.retry_command??(d?Sc([...i,d,...s]):void 0);return new v(`Unknown ${a} ${c} "${r}". Allowed: ${o.join(", ")}${e.message_suffix??""}`,e.exit_code??b.USAGE,{code:"unknown_subcommand",reason:"unknown_positional_token",examples:[...f?[f]:[],...e.examples??[],`pm ${t} --help`],nextSteps:f?[`Retry with the suggested command: ${f}`]:["Choose one value from recovery.allowed_values."],recovery:{attempted_command:l,allowed_values:o,suggested_retry:f,fallback_candidates:e.fallback_candidates}})}import H_ from"node:fs/promises";import z_ 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]="99eadab1-5338-5d75-b600-fa0463053375")}catch{}})();function U_(e){return[...new Set(e.filter(t=>t.trim().length>0))].sort((t,n)=>t.localeCompare(n))}function B_(e,t){return new v(`Missing history stream for ${e}. ${t} requires history streams when settings.history.missing_stream is strict_error.`,b.NOT_FOUND)}async function W_(e,t){return await bi(z_.dirname(e)),await(await H_.open(e,"a")).close(),fe({path:e,scope:"project",op:`${t}:history:auto_create`})}async function ri(e){return V_({pmRoot:e.pmRoot,settings:e.settings,itemIds:[e.itemId],commandLabel:e.commandLabel})}async function V_(e){let t=U_(e.itemIds),n=[],r=[];for(let o of t){let i=le(e.pmRoot,o);if(!await Me(i)){if(e.settings.history.missing_stream==="strict_error")throw B_(o,e.commandLabel);r.push(...await W_(i,e.commandLabel)),r.push(`history_stream_auto_created:${o}`),n.push(o)}}return{auto_created_ids:n,warnings: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]="cb9a55d6-9ba9-50af-a54f-2bba5d076fdb")}catch{}})();function Qt(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 v("This compacted stream has no trustworthy version offset; numeric history addresses are unavailable.",b.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]="8835b501-34c7-51ba-b02e-782f8a457e1b")}catch{}})();function q_(e,t){let n=-1;return e.forEach((r,o)=>{let i=Date.parse(r.ts);if(!Number.isFinite(i))throw new v(`History for this item contains invalid timestamp at entry ${o+1}.`,b.GENERIC_FAILURE);i<=t&&(n=o)}),n}function G_(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 K_(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 Tc(e,t,n={}){let r=e.trim(),o=n.errorSubject??"history",i=o==="restore"?"Restore":"History",{guidance:s,lastTimestamp:a}=G_(t,Qt(t,!0));if(!r)throw new v(`Missing ${o} target. Use a timestamp or version number.`,b.USAGE,s);if(/^\d+$/.test(r)){let l=Qt(t),f=Number(r);if(f>=1&&f<=l)throw new v(`History version ${f} was pruned by compaction.`,b.USAGE,{...s,code:"history_version_pruned"});if(!Number.isSafeInteger(f)||f<1||f>l+t.length)throw new v(`${i} version must be between ${l+1} and ${l+t.length} for this item.`,b.USAGE,s);return{kind:"version",raw:r,historyIndex:f-l-1}}let c=Date.parse(r);if(!Number.isFinite(c))throw new v(`Invalid ${o} target "${e}". Use a positive version number or ISO timestamp.`,b.USAGE,s);let d=q_(t,c);if(d<0||n.allowFutureTimestamp!==!0&&c>Date.parse(a))throw new v(o==="restore"?`No history entries exist at or before timestamp ${r}.`:`No history entry exists at timestamp ${r}.`,b.USAGE,s);return{kind:"timestamp",raw:r,historyIndex:d}}function oi(e,t,n,r){let o=Ge(e,t);if(o.ok)return o.document;let i=K_(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 v(`Failed to apply history patch at entry ${n} (${s.join(", ")}). ${i.reason??String(o.error)}`,b.GENERIC_FAILURE)}function Cc(e,t){let n=e[0];if(n&&n.op!=="create"&&n.op!=="history_compact_baseline"){let s=Ge(ft,n.patch);if(!s.ok||typeof s.document.metadata.id!="string")throw new v("History starts without a reconstructable item baseline.",b.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=ge([...r]),i=structuredClone(ft);for(let s=0;s<=t;s+=1){let a=e[s];if(!a)throw new v(`History target entry ${s+1} does not exist.`,b.USAGE);i=oi(i,a.patch,s+1,a.op)}if(!o.ok)throw new v(`History cannot be replayed: ${o.errors.join(", ")}.`,b.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 qb(e,t){if(Object.keys(e.metadata).length>0){if(typeof e.metadata.id!="string"||!Array.isArray(e.metadata.tags))throw new v("History has no complete item baseline for this target.",b.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 v(`History target ${t.raw} resolves to a deleted state; choose a version or timestamp where the item exists.`,b.USAGE)}import si from"node:fs/promises";import yr 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]="b6e08d70-4e3f-5ad3-83ad-9cb49edb526e")}catch{}})();function Ne(e,t){return typeof e=="object"&&e!==null&&"code"in e&&e.code===t}function ai(e){let t=["--pm-path",e,"init","--defaults","--agent-guidance","skip"];return{suggested_retry:je(t),suggested_retry_args:t}}function gr(e){return new v(`Tracker root is not a directory at ${e}.`,b.USAGE,{code:"tracker_root_not_directory",reason:"not_a_directory",resolved_path:e,nextSteps:["Pass a tracker directory, usually <workspace>/.agents/pm, rather than a file path."]})}function ii(e){return new v(`Tracker root is not readable at ${e}.`,b.GENERIC_FAILURE,{code:"tracker_root_unreadable",reason:"unreadable",resolved_path:e,nextSteps:["Grant read and directory-search permission to the tracker root, then retry."]})}async function X_(e){let t=yr.resolve(e),n=yr.parse(t).root,r=yr.dirname(t);for(;r!==n;){let o;try{o=await si.stat(r)}catch(i){if(Ne(i,"ENOTDIR"))throw gr(e);if(!Ne(i,"ENOENT"))throw i;r=yr.dirname(r);continue}if(!o.isDirectory())throw gr(e);return}}async function bt(e){let t;try{t=await si.stat(e)}catch(n){throw Ne(n,"ENOENT")?(await X_(e),new v(`Tracker is not initialized at ${e}. Tracker root does not exist. Run pm init first.`,b.NOT_FOUND,{code:"tracker_root_missing",reason:"missing",resolved_path:e,nextSteps:["Confirm the tracker root path or initialize it with the emitted retry."],recovery:ai(e)})):Ne(n,"ENOTDIR")?gr(e):Ne(n,"EACCES")||Ne(n,"EPERM")?ii(e):n}if(!t.isDirectory())throw gr(e);if(process.platform!=="win32"&&((t.mode&292)===0||(t.mode&73)===0))throw ii(e);try{await(await si.opendir(e)).close()}catch(n){throw Ne(n,"EACCES")||Ne(n,"EPERM")?ii(e):n}}async function ci(e){if(await bt(e),!await Me(St(e)))throw new v(`Tracker is not initialized at ${e}. Run pm init first.`,b.NOT_FOUND,{code:"tracker_not_initialized",reason:"settings_missing",resolved_path:e,nextSteps:["Initialize the selected tracker root with the emitted retry."],recovery:ai(e)})}import wt from"node:fs/promises";import{statSync as Y_}from"node:fs";(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]="401ead12-fb72-586b-8625-33ae44ed2eb9")}catch{}})();function J_(e,t){let n=-1,r=structuredClone(ft);for(let[a,c]of e.entries()){if(r=oi(r,c.patch,a+1,c.op),r.metadata.id!==void 0&&r.metadata.id!==t)throw new v(`History belongs to item ${String(r.metadata.id)}, expected ${t}.`,b.GENERIC_FAILURE,{code:"history_replay_invalid",required:"Recover the correct history stream for this item before attempting restoration."});r.metadata.id===t&&Array.isArray(r.metadata.tags)&&(n=a)}let o=Qt(e,!0),i=n<0||o===null?null:o+n+1,s=i===null?void 0:String(i);if(n>=0&&s===void 0){let a=e[n].ts;Tc(a,e).historyIndex===n&&(s=a)}return{version:i,target:s}}async function Oc(e,t,n){let r=new Set([Ke(t,n),Ft(t)]);for(let o of r){let i=le(e,o);if(!Y_(i,{throwIfNoEntry:!1})?.isFile())continue;let s=await ye(i,o),a=-1;if(s.forEach((p,_)=>{p.op==="delete"&&(a=_)}),a<0)continue;let c=Cc(s,s.length-1);if(Object.keys(c.metadata).length!==0)continue;let{version:d,target:l}=J_(s,o),f=l===void 0?["history",o,"--verify"]:["get",o,"--at",l],m=je(f);return new v(`Item ${o} was deleted at ${s[a].ts}; its history is retained.`,b.NOT_FOUND,{code:"item_deleted",required:"Read a retained materialized version, then restore it if the item should exist again.",item_id:o,tombstone:{deleted:!0,deleted_at:s[a].ts,recoverable:l!==void 0,last_materialized_version:d},nextSteps:[m,...l===void 0?["Recover the pre-compaction history from version control."]:[je(["restore",o,l])]],recovery:{suggested_retry:m,suggested_retry_args:f}})}}import di from"node:path";import{isUtf8 as Q_}from"node:buffer";(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]="02383f73-64f0-5ffc-a802-f8ef2b3cc038")}catch{}})();async function Z_(e){try{return await wt.access(e),!0}catch{return!1}}function ep(e,t){e&&(e.includes(t)||e.push(t))}function xc(e){return e??sn(ue())}function tp(e){return e==="toon"?["toon","json_markdown"]:e==="json_markdown"?["json_markdown","toon"]:["toon","json_markdown"]}async function vr(e,t,n="pm-",r,o=Le){let i=t.trim(),s=i.startsWith("#")?i.slice(1):i;if(s.length===0)return null;let a=Ke(t,n),c=Ft(t),d=[...new Set([s,a,c])].filter(m=>m.length>0),l=Object.entries(o),f=tp(r);for(let m of d){let p=new Map;for(let[_]of l)for(let g of f){let h=kr(e,_,m,g,o);await Z_(h)&&p.set(h,p.get(h)??{id:m,type:_,itemPath:h,item_format:g})}if(p.size>1){let _=[...p.keys()].map(g=>di.relative(e,g).split(di.sep).join("/")).sort();throw new v(`Item ${m} has ambiguous identity across ${_.join(", ")}. Preserve both documents and inspect pm ops validate --check-storage-integrity before resolving the collision.`,b.CONFLICT,{code:"item_identity_ambiguous",item_id:m,paths:_})}for(let _ of p.values())return _}return null}async function br(e,t={}){let n=await np(e,t);if(n.error!==null)throw n.error;return{raw:n.raw,document:n.document}}async function np(e,t={}){let n=await wt.readFile(e.itemPath);if(!Q_(n))throw new v("Item contains invalid UTF-8; preserve a binary backup before recovering it.",b.CONFLICT,{code:"item_document_encoding_invalid",item_id:e.id,item_path:e.itemPath,byte_length:n.length,empty:!1});let r=n.toString("utf8");await Ee({path:e.itemPath,scope:"project"});let o;try{o=Sn(r,{format:e.item_format,schema:t.schema,extensionFieldNames:xc(t.extensionFieldNames),onWarning:i=>ep(t.warnings,i)})}catch(i){if(i instanceof v&&i.code==="item_document_invalid")return{raw:r,document:null,error:new v(`Cannot read ${e.id} at ${e.itemPath}${n.length===0?" (zero-length file)":""}: ${i.message}`,i.exitCode,{...i.context,item_id:e.id,item_path:e.itemPath,byte_length:n.length,empty:n.length===0,nextSteps:[`Run pm history ${e.id} --full, then pm restore ${e.id} <version> to recover a recorded state.`]})};throw i}return{raw:r,document:o,error:null}}async function rp(e,t,n=Le,r,o){await bt(e);let i=await Ma(e,t,n,r,o);return Vn(i.length),i.map(s=>s.metadata)}async function Rc(e,t,n=Le,r,o){await bt(e);let i=await ja(e,t,n,r,o);return Vn(i.length),i.map(s=>s.metadata)}async function Fw(e,t,n=Le,r,o,i={}){await bt(e);let s=await or(e,t,n,r,o,{includeBody:!0,forceSourceScan:i.forceSourceScan});return Vn(s.length),s.map(a=>({...a.metadata,body:a.body}))}function Ac(e){return{async get(t){let n=await vr(e.pmRoot,t,e.settings.id_prefix,e.settings.item_format,e.typeToFolder);if(!n)return null;let{document:r}=await br(n,{schema:e.settings.schema});return{item:r.metadata,body:r.body}},list:()=>rp(e.pmRoot,e.settings.item_format,e.typeToFolder,void 0,e.settings.schema)}}async function op(e,t){let n=new Set(Object.values(t)),r=[];return await Promise.all([...n].map(async o=>{try{let i=await wt.readdir(di.join(e,o));for(let s of i)for(let a of cn)if(s.toLowerCase().endsWith(a)){r.push(s.slice(0,-a.length));break}}catch{}})),r}async function ip(e,t,n,r){let o=Ke(t,n),i=await op(e,r);if(i.length===0)return[];let s=Math.max(3,Math.floor(o.length/2));return i.map(c=>({id:c,distance:Zt(c,o,s)})).filter(c=>c.distance!==null).sort((c,d)=>c.distance-d.distance).slice(0,3).map(c=>c.id)}async function sp(e,t,n,r){let o=await Oc(e,t,n);if(o)return o;let i=await ip(e,t,n,r),s=["Confirm the active --path/PM_PATH scope, then retry with a valid id."];return i.length>0&&s.unshift(`Did you mean one of: ${i.join(", ")}?`),new v(`Item ${t} not found`,b.NOT_FOUND,{nextSteps:s})}function ap(e,t){return e==="claim"||t===!0&&(e==="comment_add"||e==="comment_edit"||e==="comment_delete"||e==="note_add"||e==="learning_add"||e==="release"||e==="update"||e==="update_ownership_bypass"||e==="update_audit")}async function Dc(e){let t=e.typeToFolder??an(e.settings,ue()).type_to_folder,n=await vr(e.pmRoot,e.id,e.settings.id_prefix,e.settings.item_format,t);if(!n)throw await sp(e.pmRoot,e.id,e.settings.id_prefix,t);let r=await V(e.pmRoot,n.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 o=[],{raw:i,document:s}=await br(n,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames,warnings:o}),a=s.metadata.assignee?.trim(),c=s.metadata.claim_principal?.trim()||a,d=ms(e.author),l=hr(e.settings);if(a&&c!==d&&!e.force&&!ap(e.op,e.bypassAssigneeConflict)){if(l.ownership_enforcement==="strict")throw new v(`Item ${n.id} is assigned to ${a}. Use --force to override.`,b.CONFLICT);l.ownership_enforcement==="warn"&&o.push(`ownership_warning:assignee_conflict:${n.id}:${a}`)}return{typeToFolder:t,located:n,originalRaw:i,document:s,warnings:o,releaseLock:r}}catch(o){throw await r(),o}}function cp(e,t,n){if(!e.handled||typeof e.result!="object"||e.result===null)return{effectiveTargetItemPath:t,effectiveSerializedAfter:n,skipItemWrite:!1};let r=e.result;return{effectiveTargetItemPath:typeof r.target_item_path=="string"&&r.target_item_path.trim().length>0?r.target_item_path:t,effectiveSerializedAfter:typeof r.contents=="string"?r.contents:n,skipItemWrite:r.skip_write===!0}}async function dp(e){if(!e.skipItemWrite){if(e.effectiveTargetItemPath!==e.originalItemPath){await X(e.originalItemPath,e.originalRaw),await wt.rm(e.effectiveTargetItemPath,{force:!0});return}await X(e.originalItemPath,e.originalRaw)}}async function Nc(e){mn(e.op);let t=await Dc({pmRoot:e.pmRoot,settings:e.settings,id:e.id,op:e.op,author:e.author,force:e.force,bypassAssigneeConflict:e.bypassAssigneeConflict,extensionFieldNames:e.extensionFieldNames,typeToFolder:e.typeToFolder}),{typeToFolder:n,located:r,originalRaw:o,document:i,warnings:s,releaseLock:a}=t;try{let c=ne(i,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),d=ne(structuredClone(i),{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),l=await e.mutate(d);if(e.skipNoop===!0&&l.changedFields.length===0)return{item:c.metadata,body:c.body,changedFields:[],warnings:[...s,...l.warnings??[]]};let f=e.resolveHistoryContext?.();d.metadata.updated_at=ke();let m=ne(d,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),p=await Io({pmRoot:e.pmRoot,settings:e.settings,operation:e.op,author:e.author,before:c,after:m});await Tr({pm_root:e.pmRoot,operation:e.op,before:c,after:m,changed_fields:l.changedFields,sdk:Ac({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:n})});let _=await ri({pmRoot:e.pmRoot,settings:e.settings,itemId:r.id,commandLabel:e.op}),g="toon",h=As(m,{format:g,schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),I=kr(e.pmRoot,m.metadata.type,r.id,g,n),R=le(e.pmRoot,r.id),D=await xt("item_store_write",{op:e.op,pm_root:e.pmRoot,item_id:r.id,source_item_path:r.itemPath,target_item_path:I,history_path:R,item_format:g,before:c,after:m,contents:h}),{effectiveTargetItemPath:$,effectiveSerializedAfter:x,skipItemWrite:G}=cp(D,I,h),W=await No(e.pmRoot,e.author),Q=[];try{G||await X($,x),!G&&$!==r.itemPath&&await wt.rm(r.itemPath);let ee=lt({nowIso:m.metadata.updated_at,author:e.author,op:e.op,before:c,after:m,message:e.message,context:p.decisions.length===0?f:{...f,workflow_policies:p.decisions}});try{await ut(R,ee)}catch(ve){throw await dp({skipItemWrite:G,effectiveTargetItemPath:$,originalItemPath:r.itemPath,originalRaw:o}),ve}G||(Q=await Lo({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:n,schema:e.settings.schema,itemPath:$,previousItemPath:r.itemPath,document:m}))}finally{await W()}let K=[...await fe({path:$,scope:"project",op:e.op,item_id:m.metadata.id,item_type:m.metadata.type,before:c,after:m,changed_fields:l.changedFields}),...await fe({path:R,scope:"project",op:`${e.op}:history`,item_id:m.metadata.id,item_type:m.metadata.type,before:c,after:m,changed_fields:l.changedFields})];return Sr({id:m.metadata.id,op:e.op,item_type:m.metadata.type,previous_status:c.metadata.status,status:m.metadata.status,previous:un(c.metadata,l.changedFields),current:un(m.metadata,l.changedFields),changed_fields:l.changedFields}),{item:m.metadata,body:m.body,changedFields:l.changedFields,warnings:[...s,...l.warnings??[],...p.warnings,..._.warnings,...D.warnings,...Q,...K]}}finally{await a()}}async function $w(e){return Nc(e)}async function Hw(e){return Nc(e)}async function zw(e){let t=await Dc({pmRoot:e.pmRoot,settings:e.settings,id:e.id,op:"delete",author:e.author,force:e.force}),{located:n,originalRaw:r,document:o,warnings:i,releaseLock:s}=t;try{let a=xc(void 0),c=ne(o,{schema:e.settings.schema,extensionFieldNames:a}),d=await Io({pmRoot:e.pmRoot,settings:e.settings,operation:"delete",author:e.author,before:c,after:null,dryRun:e.dryRun});await Tr({pm_root:e.pmRoot,operation:"delete",before:c,after:null,changed_fields:["deleted"],sdk:Ac({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:t.typeToFolder})});let l=await ri({pmRoot:e.pmRoot,settings:e.settings,itemId:n.id,commandLabel:"delete"}),f=ke(),m=Pe,p=lt({nowIso:f,author:e.author,op:"delete",before:c,after:m,message:e.message,context:d.decisions.length===0?void 0:{workflow_policies:d.decisions}}),_=le(e.pmRoot,n.id),g=await xt("item_store_delete",{op:"delete",pm_root:e.pmRoot,item_id:n.id,item_path:n.itemPath,history_path:_,before:c}),h=n.itemPath,I=!1;if(g.handled&&typeof g.result=="object"&&g.result!==null){let x=g.result;typeof x.item_path=="string"&&x.item_path.trim().length>0&&(h=x.item_path),x.skip_delete===!0&&(I=!0)}if(e.dryRun===!0)return{item:c.metadata,changedFields:["deleted"],targetPath:h,warnings:[...i,...d.warnings,...l.warnings,...g.warnings]};let R=await No(e.pmRoot,e.author),D=[];try{I||await wt.rm(h);try{await ut(_,p)}catch(x){throw I||await X(h,r),x}I||(D=await Lo({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:t.typeToFolder,schema:e.settings.schema,itemPath:h,document:null}))}finally{await R()}let $=[...await fe({path:h,scope:"project",op:"delete",item_id:c.metadata.id,item_type:c.metadata.type,before:c,after:m,changed_fields:["deleted"]}),...await fe({path:_,scope:"project",op:"delete:history",item_id:c.metadata.id,item_type:c.metadata.type,before:c,after:m,changed_fields:["deleted"]})];return Sr({id:c.metadata.id,op:"delete",item_type:c.metadata.type,previous_status:c.metadata.status,previous:un(c.metadata,Object.keys(c.metadata)),changed_fields:["deleted"]}),{item:c.metadata,changedFields:["deleted"],warnings:[...i,...d.warnings,...l.warnings,...g.warnings,...D,...$]}}finally{await 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]="5c8194ff-d877-51b8-bd54-d206f85a979c")}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]="2f2a7df8-9c95-5ed1-bd43-33dde57dd7f0")}catch{}})();var lp=["tree","graph","context"],up=["none","repeated"],fp=["outgoing","incoming","both"],mp=32,_p=200,pp=400,hp=16e3;function yp(e){let t=e?.trim().toLowerCase()??"tree";if(lp.includes(t))return t;throw new v(`Invalid --format value "${e}". Use "tree", "graph", or "context".`,b.USAGE)}function Et(e,t){if(e===void 0)return;let n=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(n)||n<1)throw new v(`Invalid --${t} value "${e}". Use a positive integer.`,b.USAGE);return n}function Pc(e){if(e===void 0)return;let t=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(t)||t<0)throw new v(`Invalid --max-depth value "${e}". Use a non-negative integer.`,b.USAGE);return t}function gp(e){let t=e?.trim().toLowerCase()??"none";if(up.includes(t))return t;throw new v(`Invalid --collapse value "${e}". Use "none" or "repeated".`,b.USAGE)}function vp(e){let t=e?.trim().toLowerCase()??"both";if(fp.includes(t))return t;throw new v(`Invalid --direction value "${e}". Use "outgoing", "incoming", or "both".`,b.USAGE)}function bp(e,t=de()){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 v(`Invalid --kind value "${o}". Registered kinds: ${s}.`,b.USAGE)}r.add(i.kind)}return[...r].sort()}function wp(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 Ep(e){return{id:e.id,title:e.title,type:e.type,status:e.status,dependencies:wp(e.dependencies)}}function kp(e){return fn(new TextEncoder().encode(JSON.stringify({...e,dependencies:void 0})).byteLength)}function Ip(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(Mc(d.id,n,r,o,i,s,a,c+1,d.kind))}}function Sp(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 Mc(e,t,n,r,o,i,s,a=0,c){let d=e.trim().toLowerCase(),l=t.get(d),f={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+=kp(f),Sp(f,l,d,r,o,i,s,a))return f;o==="repeated"&&i.add(d);let m=new Set(n);return m.add(d),Ip(f,l,t,m,r,o,i,s,a),f}function Lc(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 Tp(e){let t=new Map,n=new Map,r=[e];for(;r.length>0;){let a=r.pop();t.set(a.id,Lc(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,Lc(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 jc(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 f=t.get(l);if(!f){i.add(l);continue}if(!(n!==void 0&&d.depth>=n)&&!s.has(l)){s.add(l);for(let m of f.dependencies)o.add(`${l}::${m.id.trim().toLowerCase()}::${m.kind}`),a.push({id:m.id,depth:d.depth+1})}}return{node_count:r.size,edge_count:o.size,edge_basis:"deduplicated_directed",missing_count:i.size}}function Cp(e,t=de()){let n=Pc(e.maxDepth),r=Et(e.nodeLimit,"node-limit"),o=Et(e.edgeLimit,"edge-limit"),i=Et(e.tokenBudget,"token-budget"),s=bp(e.kind,t);return{direction:vp(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 Op(e,t,n,r){return Xa(e.graph,t,e.details.map(o=>o.id===t&&r.length>0?{...o,evidence:r}:o),n)}function li(e,t,n,r){for(let o of n.slice(0,r)){let i=o?.trim();i&&e.push(`${t}:${i}`)}}async function xp(e,t,n,r){let o=await vr(e,t,n.id_prefix,n.item_format,r);if(!o)return[];let{document:i}=await br(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(([,m])=>m===0))return[];let f=[`linked:${l.map(([m,p])=>`${m}=${p}`).join(",")}`];return li(f,"file",a.map(m=>m.path),3),li(f,"test",c.map(m=>m.command??m.path),2),li(f,"doc",d.map(m=>m.path),2),f}function Rp(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 Ap(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 Fc(e,t,n){let r;for(;;){let o=fn(new TextEncoder().encode(Rr(Or("deps",e),t)).byteLength);if(o===r)return o;n(o),r=o}}function Dp(e){return e instanceof TypeError&&e.message.startsWith("Relationship context tokenBudget cannot fit ")}function Np(e){try{return Op(e.assembly,e.canonicalId,{...e.contextOptions,...e.internalTokenBudget===void 0?{}:{tokenBudget:e.internalTokenBudget}},e.rootEvidence)}catch(t){if(e.smallestResult!==void 0&&Dp(t))return e.smallestResult;throw t}}function Lp(e){let{assembly:t,canonicalId:n,contextOptions:r,rootEvidence:o,summaryOnly:i,outputFormat:s,missingCount:a,missingReferences:c}=e,l=r.edgeLimit??40,f=r.tokenBudget,m,p;for(;;){let _=Np({assembly:t,canonicalId:n,contextOptions:r,internalTokenBudget:f,rootEvidence:o,smallestResult:p});if("format"in _)return _;let g=_;m??=g.meta.tokenBudget,f??=m;let h=Rp({canonicalId:n,context:g,missingCount:a,missingReferences:c,referenceLimit:l,summaryOnly:i});if(p=h,i||(g.meta.tokenBudget=m,g.meta.usedTokens=Fc(kt(h,!1),s,D=>{g.meta.usedTokens=D}),g.meta.usedTokens<=m))return h;if(l>0){l-=1;continue}let I=f,R=I*m/g.meta.usedTokens;f=Math.min(I-1,Math.max(1,Math.floor(R*.9)))}}function Pp(e){let{assembly:t,canonicalId:n,options:r,rootEvidence:o,summaryOnly:i,outputFormat:s}=e,a=Cp(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())),f=t.graph.registry(),m=a.kinds?new Set(a.kinds.map(g=>f.require(g).kind)):void 0,p=new Set([n,...c.value]),_=[...t.dangling.active,...t.dangling.legacy_terminal].filter(g=>Ap({row:g,missingReachableSet:l,packetIds:p,filteredKinds:m,registry:f}));return Lp({assembly:t,canonicalId:n,contextOptions:a,rootEvidence:o,summaryOnly:i,outputFormat:s,missingCount:d.length,missingReferences:_})}function Mp(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 jp(e,t,n,r,o,i,s){let a=o??mp,c=Et(n.nodeLimit,"node-limit")??_p,d=Et(n.edgeLimit,"edge-limit")??pp,l=Et(n.tokenBudget,"token-budget")??hp,f={nodeLimit:c,edgeLimit:d,tokenBudget:l,nodes:0,edges:0,estimatedTokens:0,reasons:new Set},m=Mc(e,r,new Set,a,t==="graph"?"repeated":i,new Set,f),p=jc(e,r,void 0),_;for(;;){let g=Tp(m),h=f.reasons.size===0?void 0:{reasons:[...f.reasons].sort(),limits:{max_depth:a,node_limit:c,edge_limit:d,token_budget:l},estimated_tokens:0,total_node_count:p.node_count,total_edge_count:p.edge_count,omitted_node_count:Math.max(0,p.node_count-g.nodes.length),omitted_edge_count:Math.max(0,p.edge_count-g.edges.length)},I={id:e,format:t,node_count:g.nodes.length,edge_count:g.edges.length,edge_basis:"deduplicated_directed",missing_count:g.missing_ids.length,...h?{truncation:h}:{}};if(_=t==="tree"?{...I,tree:m}:{...I,graph:g},(_.truncation===void 0?fn(new TextEncoder().encode(Rr(Or("deps",kt(_,!1)),s)).byteLength):Fc(kt(_,!1),s,D=>{_.truncation.estimated_tokens=D}))<=l)return _;if(!Mp(m))return f.reasons.add("token_budget"),_;f.reasons.add("token_budget")}}function kt(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 cE(e,t,n){let r=Oi(process.cwd(),n.path);await ci(r);let o=yp(t.format),i=Pc(t.maxDepth),s=gp(t.collapse);$i(t.summary===!0,t.full===!0,"--summary");let a=t.summary===!0,c=await Ic(r),d=an(c,ue()),l=await Rc(r,c.item_format,d.type_to_folder,void 0,c.schema),f=ln(c.schema),m=new Map(l.map(_=>[_.id.trim().toLowerCase(),Ep(_)])),p=zo(l,_=>he(_,f));for(let _ of[...p.active,...p.legacy_terminal]){let g=m.get(_.holder_id.trim().toLowerCase()),h=_.kind.trim().toLowerCase();g&&!g.dependencies.some(I=>I.id.trim().toLowerCase()===_.target_id.trim().toLowerCase()&&I.kind===h)&&g.dependencies.push({id:_.target_id,kind:h})}if(!m.has(e.trim().toLowerCase()))throw new v(`Item ${e} not found`,b.NOT_FOUND);if(o==="context"){let _=m.get(e.trim().toLowerCase()).id,g=a?[]:await xp(r,_,c,d.type_to_folder),h=D=>he(D,f),I=ce(),R=Ka().lookup(r,qa(l,h,I),()=>dr(l,h,I));return kt(Pp({assembly:R.assembly,canonicalId:_,options:t,rootEvidence:g,summaryOnly:a,outputFormat:n.json===!0?"json":"toon"}),a,R.assembly.legacyAliasCounts)}return a?kt({id:e,format:o,...jc(e,m,i)},!0,Object.fromEntries(Object.entries(dr(l,_=>he(_,f)).legacyAliasCounts))):kt(jp(e,o,t,m,i,s,n.json===!0?"json":"toon"),!1,Object.fromEntries(Object.entries(dr(l,_=>he(_,f)).legacyAliasCounts)))}export{Ya as a,Fe as b,Dr as c,$p as d,Hp as e,Ji as f,jr as g,Xp as h,Yp as i,Jp as j,Qp as k,Zp as l,eh as m,qr as n,Gr as o,is as p,lh as q,uh as r,fh as s,mh as t,_h as u,ph as v,Jr as w,ls as x,hh as y,yh as z,gh as A,gd as B,ms as C,_s as D,wh as E,bd as F,ps as G,Ue as H,Te as I,bs as J,Rt as K,Lh as L,Ph as M,nt as N,hs as O,kh as P,ys as Q,wd as R,Ih as S,vn as T,rt as U,he as V,wn as W,In as X,Sn as Y,As as Z,ne as _,Gl as $,ye as aa,at as ba,_u as ca,wy as da,Ey as ea,ky as fa,Eu as ga,Pn as ha,Ve as ia,jt as ja,Gy as ka,vo as la,Fn as ma,Zs as na,Ky as oa,na as pa,Xy as qa,lt as ra,ut as sa,Ds as ta,ft as ua,$n as va,ig as wa,wo as xa,Hn as ya,sg as za,ag as Aa,aa as Ba,Ge as Ca,la as Da,ge as Ea,Ku as Fa,cg as Ga,dg as Ha,_t as Ia,Un as Ja,xg as Ka,Rg as La,ha as Ma,ga as Na,Ag as Oa,sb as Pa,Ae as Qa,hr as Ra,F_ as Sa,kc as Ta,Ic as Ua,Ib as Va,xb as Wa,ri as Xa,V_ as Ya,fa as Za,Ft as _a,Ke as $a,hg as ab,Qt as bb,Tc as cb,oi as db,Cc as eb,qb as fb,rf as gb,sf as hb,af as ib,cf as jb,df as kb,Io as lb,Kg as mb,ev as nb,tv as ob,nv as pb,Aa as qb,Tf as rb,No as sb,pv as tb,Lo as ub,or as vb,bt as wb,ci as xb,vr as yb,br as zb,np as Ab,rp as Bb,Rc as Cb,Fw as Db,Ac as Eb,sp as Fb,$w as Gb,Hw as Hb,zw as Ib,Mo as Jb,om as Kb,qt as Lb,sr as Mb,$a as Nb,im as Ob,sm as Pb,am as Qb,lm as Rb,Mv as Sb,jv as Tb,wm as Ub,ce as Vb,xv as Wb,cr as Xb,Rv as Yb,vm as Zb,Av as _b,Kt as $b,km as ac,Sm as bc,zo as cc,Tm as dc,Wv as ec,dr as fc,qa as gc,Uo as hc,Ka as ic,Xv as jc,Xa as kc,Et as lc,Pc as mc,vp as nc,bp as oc,cE as pc};
|
|
165
|
+
//# sourceMappingURL=chunk-IDB6E3ZV.js.map
|