@unbrained/pm-cli 2026.10.2 → 2026.10.4
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 +31 -1
- package/dist/cli/error-guidance.js +1 -1
- package/dist/cli/runtime/invocation-options.js +1 -1
- package/dist/cli/runtime/selection.js +1 -1
- package/dist/cli/runtime-compatibility-boundary.d.ts +1 -1
- package/dist/cli/runtime-compatibility-boundary.js +3 -3
- package/dist/cli-bundle/bundle-manifest.json +149 -149
- package/dist/cli-bundle/chunks/{chunk-HY6M34B4.js → chunk-7CE2DJMA.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-WP6NRH72.js → chunk-7UVXKI7K.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-7FUEQOYG.js → chunk-D7Z2ZMJL.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-TRYXVQ7W.js → chunk-GZMWISWW.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-ZI7F3FVE.js → chunk-J52QIRRZ.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-R4TUD355.js → chunk-JDKD3WGG.js} +6 -6
- package/dist/cli-bundle/chunks/chunk-JQ7DW663.js +2 -0
- package/dist/cli-bundle/chunks/{chunk-SV7CZEVV.js → chunk-QXIDOOWT.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-XOUBIF6Z.js → chunk-SMKHR6BM.js} +49 -49
- package/dist/cli-bundle/chunks/{chunk-MTJMOI4I.js → chunk-V3U77H3V.js} +31 -31
- package/dist/cli-bundle/chunks/{chunk-Z2GYDSAO.js → chunk-XZDWAYJC.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-R7ULWMBG.js → chunk-Y6VRBTP3.js} +71 -71
- package/dist/cli-bundle/chunks/{chunk-CZLAWXDR.js → chunk-YAAFYFS4.js} +2 -2
- package/dist/cli-bundle/chunks/{register-list-query-R4PHNB7W.js → register-list-query-QBGXO5JJ.js} +2 -2
- package/dist/cli-bundle/chunks/{register-mutation-PDDAUDYV.js → register-mutation-53ZLT4RX.js} +2 -2
- package/dist/cli-bundle/chunks/{register-operations-A5HJT46K.js → register-operations-OBK2FXUU.js} +2 -2
- package/dist/cli-bundle/chunks/{register-setup-EZ2F25JI.js → register-setup-HM3OCBH2.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-FKK2HI3S.js → chunk-2JFYR56O.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-UTRSM3ZK.js → chunk-32EVUSS4.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-DBD4W4QP.js → chunk-467EW5RL.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-IR4UXLRP.js → chunk-5GUSO2P4.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-GMYUNHST.js → chunk-6XBRADQQ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-EJN7DY3B.js → chunk-7O4NUJVO.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-E754JDLY.js → chunk-CURTIIQT.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-4FFPGNCJ.js → chunk-IJUWEEEB.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-XRSCIYHR.js → chunk-JCVMOSWQ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-ZIXFMIUL.js → chunk-JMJK2L4Z.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-WCY6HRZO.js → chunk-KG3H4UZZ.js} +14 -14
- package/dist/cli-bundle/focused-chunks/{chunk-VVWYI2X7.js → chunk-MHQ2XICU.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-3BIYG72P.js → chunk-Q6DJ5DFQ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-BLCTBSGT.js → chunk-RJV6QVJE.js} +26 -26
- package/dist/cli-bundle/focused-chunks/{chunk-GBD4EN6S.js → chunk-ZE2JZ7R6.js} +11 -11
- package/dist/cli-bundle/focused-chunks/chunk-ZLEN4HZD.js +165 -0
- package/dist/cli-bundle/main.js +22 -22
- 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 +31 -31
- 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 +23 -23
- 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 +1 -1
- package/dist/core/extensions/extension-types.d.ts +8 -1
- package/dist/core/extensions/extension-types.js +1 -1
- package/dist/core/shared/secret-rules.js +1 -1
- package/dist/core/shared/time.js +1 -1
- package/dist/core/store/settings.d.ts +11 -2
- package/dist/core/store/settings.js +2 -2
- package/dist/sdk/agent/subcommand-recovery.js +1 -1
- package/dist/sdk/cli-bootstrap.js +1 -1
- package/dist/sdk/context-intent-contracts.js +1 -1
- 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/item-transaction.js +1 -1
- package/dist/sdk/lifecycle/recurrence-parsers.js +1 -1
- package/dist/sdk/lifecycle/task-composition.js +1 -1
- package/dist/sdk/linked-artifacts.d.ts +1 -1
- package/dist/sdk/linked-artifacts.js +1 -1
- package/dist/sdk/output-projection.js +1 -1
- package/dist/sdk/public-surface.json +1 -1
- package/dist/sdk/query/get.js +1 -1
- package/dist/sdk/query/search-pagination.d.ts +1 -1
- package/dist/sdk/query/search-pagination.js +1 -1
- package/dist/sdk/test/execution.js +2 -2
- package/dist/sdk/test/workspace-snapshot.d.ts +11 -0
- package/dist/sdk/test/workspace-snapshot.js +2 -0
- package/docs/DEVELOPMENT_DEPENDENCY_SECURITY.md +109 -0
- package/docs/DIAGNOSTIC_OUTPUT_CONTRACTS.md +25 -0
- package/docs/OUTPUT_PROJECTION_CONTRACTS.md +23 -0
- package/docs/SDK_AUDITED_MUTATIONS.md +35 -0
- package/docs/TESTING.md +40 -5
- package/docs/ecosystem-review-2026-09-28.json +2864 -3157
- package/marketplace.json +2 -2
- package/package.json +5 -4
- 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-7NL3A2BY.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-YC32ZSLS.js +0 -165
|
@@ -1,165 +0,0 @@
|
|
|
1
|
-
import{b as an,g as Ot,i as xt,j as Rt,l as Li,m as Pi,n as un,o as Mi,p as ji,q as Fi}from"./chunk-GMYUNHST.js";import{h as _n}from"./chunk-HFAW3FJQ.js";import{$ as w,$c as Ui,A as gi,Ae as xr,Be as Rr,F as on,G as sn,H as Er,Ia as Si,J as vi,Kc as fe,Ke as he,Lc as Sr,Le as ie,Ma as Ti,Mc as fn,Na as Ci,Nc as me,Oc as Tr,P as be,Pa as Oi,Pb as Ni,Pc as ke,Qa as xi,Qc as Cr,Ta as cn,Tc as At,Ub as $i,V as Pe,Va as Ri,Vd as qi,W as wi,Wd as Ie,Xd as _e,Ya as dn,Yb as Hi,Yd as Gi,Z as k,Za as Ai,Zb as zi,Zc as $e,Zd as nt,_ as Me,_d as pe,aa as v,ab as tt,bb as kr,bd as Or,be as Ki,cb as Ir,ce as Xi,db as ue,dd as Bi,de as V,ed as Wi,fb as Di,i as en,id as Vi,ka as le,pa as bi,q as tn,r as _i,ra as Ei,rb as N,s as pi,sa as je,sb as oe,t as hi,ta as Fe,tb as ln,u as yi,ua as te,ub as T,va as Ee,vd as mn,wa as ki,xa as X,y as nn,ya as Ii,z as rn}from"./chunk-WCY6HRZO.js";import{AsyncLocalStorage as Uc}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 Uc,Yi=/^[A-Za-z0-9](?:[A-Za-z0-9._:-]{0,127})$/u;function pn(e,t){let n=typeof e=="string"?e.trim():"";return n.length>0?n.slice(0,t):void 0}function He(e,t){if(e===void 0)return;let n=typeof e=="object"&&e!==null?e:{},r=pn(n.id,128),o=pn(n.parent_id,128);if(r===void 0||!Yi.test(r)||o!==void 0&&!Yi.test(o)){if(t)throw new Error("Agent episode ids must be 1-128 letters, digits, dots, underscores, colons, or hyphens.");return}let i=pn(n.label,256);return{id:r,...i===void 0?{}:{label:i},...o===void 0?{}:{parent_id:o}}}function rt(e){let t={};for(let[n,r]of Object.entries(e??{}).slice(0,32)){let o=n.trim().toLowerCase().slice(0,64),i=pn(r,256);/^[a-z][a-z0-9_-]{0,63}$/u.test(o)&&i!==void 0&&(t[o]=i)}return t}function Bc(e,t,n){let r=Ar.getStore(),o=rt({role:t.PM_AGENT_SESSION_ROLE,topic:t.PM_AGENT_SESSION_TOPIC}),i=He(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={...rt(r?.provenance),...o,...rt(e?.provenance)},a=He(e?.episode,!1)??He(n,!1)??i??He(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 Bc(e.session_context,t,e.client_info?.episode)??{}}function Gp(e,t){let n=Ar.getStore(),r=He(e.episode,!0),o=He(n?.episode,!1),i=r!==void 0&&r.parent_id===void 0&&o!==void 0?{...r,parent_id:o.id}:r,s={...rt(n?.provenance),...rt(e.provenance)};return Ar.run({...Object.keys(s).length===0?{}:{provenance:s},...i===void 0?o===void 0?{}:{episode:o}:{episode:i}},t)}function Kp(e){let t=rt(e.provenance),n=He(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 Kc}from"node:crypto";import q from"node:fs";import is from"node:os";import Be from"node:path";import{createHash as Ji}from"node:crypto";import{existsSync as Nr,promises as Qi,readFileSync as Wc}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 Vc="session.json";function Lr(e,t){return typeof e=="string"&&e.length>0&&e.length<=t}function Zi(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 qc(e){if(e===null||typeof e!="object"||Array.isArray(e))return;let t=Object.entries(e).slice(0,128).flatMap(([n,r])=>{let o=Zi(r);return o&&n.length<=128?[[n,o]]:[]});return t.length>0?Object.fromEntries(t):void 0}function Pr(e){return se.join(Di(e),Vc)}async function es(e){try{let t=await Qi.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=qc(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 es(e);t(r);let o=Pr(e);await Qi.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-${Ji("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)}+${Ji("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 rh(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 oh(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 ih(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 Gc(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 ts(e){if(!e.key)return;let t=Gc(e.cwd,e.env);if(t)try{let n=JSON.parse(Wc(Pr(t),"utf8"));return Zi(n.semantic_attribution?.[e.key])}catch{return}}async function sh(e){return(await es(e)).focused_item}async function ah(e,t){await Mr(e,n=>{n.focused_item=t})}async function ch(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"],gn=new Vr,ss=new Vr,vn=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:[]}],as=Object.freeze({max_bytes:1048576,max_lines:4096,network_access:!1,subprocess_access:!1}),Xc=Object.freeze({...as,max_bytes:4194304}),zr=/^[a-z0-9]+(?:-[a-z0-9]+)*$/u;function Yc(e){let t=Te(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"?Xc:as,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 cs=Object.freeze(Gr.filter(e=>e.harness!=="ci").map(Yc).sort((e,t)=>e.harness.localeCompare(t.harness))),Ue=new Map,ot=new Map;function P(e){let t=typeof e=="string"?e.trim():void 0;return t&&t.length>0?t:void 0}function Se(e){return[...new Set((e??[]).slice(0,64).map(t=>t.trim()).filter(t=>t.length>0).map(t=>t.slice(0,128)))]}function Te(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:Se(e.environment_keys),model_environment_keys:Se(e.model_environment_keys),session_environment_keys:Se(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),Se(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:Se(e.provenance_unavailable_dimensions).map(n=>n.toLowerCase()),argv_markers:Se(e.argv_markers).map(n=>n.toLowerCase()),client_names:Se(e.client_names).map(n=>n.toLowerCase())}}var ds=Gr.map(Te);function Jc(e,t){return JSON.stringify(e)===JSON.stringify(t)}function yn(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,Te(o)]));for(let{adapter:o}of Ue.values())t.set(o.harness,Te(o.descriptor));let n=[...t.values(),...ds.filter(o=>o.harness==="ci"),...[...ot.values()].map(o=>o.descriptor),...vn.getStore()?.descriptors??[],...e.map(Te)],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 Qc(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 ls(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 Zc=new Set(["implementation","implementer","investigator","orchestrator","planner","release-operator","reviewer"]);function ze(e,t){if(e!=="role"||t===void 0)return t;let n=t.trim().toLowerCase().replaceAll(/[_\s]+/gu,"-");return Zc.has(n)?n:void 0}function Ur(e,t){return P(e?.[t])?.slice(0,256)}var ed=1048576,Wr=4194304,hn=new Map,ns=Object.freeze({}),Br=new Map,rs=Object.freeze({});function os(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:void 0}function td(e){let t;try{t=JSON.parse(e)}catch{return rs}let n=os(t);if(!n)return rs;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=os(c);d&&r.push({value:d,depth:a.depth+1})}}return Object.freeze({model:i,version:s})}function us(e){try{return q.lstatSync(e).isFile()?"available":"missing"}catch(t){return Fe(t)?"missing":"failed"}}function nd(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=Be.join(e,o.name,`${t}.jsonl`);return{candidate:i,status:us(i)}})}catch(o){return{status:Fe(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 fs(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=Be.resolve(e.cwd??process.cwd()).replaceAll(/[^A-Za-z0-9-]/gu,"-"),i=Be.join(e.home_dir??is.homedir(),".claude","projects"),s=Be.join(i,o,`${n}.jsonl`),a=P(e.session_file),c=a&&Be.basename(a)===`${n}.jsonl`?a:void 0;for(let d of[c,s]){if(!d)continue;let l=us(d);if(l==="available")return{status:l,path:d};if(l==="failed")return{status:l}}return nd(i,n)}function rd(e,t,n){let r=fs(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,ed),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
|
-
`):[...f.toString("utf8").split(`
|
|
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=td(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 od(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=Be.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 id(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 sd(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 ad(e,t){let n={},r=4096;for(let o of id(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(sd(n,a),n.model&&n.effort)break;if(n.model&&n.effort||r<=0)break}return n}function cd(e,t,n){let r=P(n.CODEX_THREAD_ID);if(!r||!/^[A-Za-z0-9_-]{1,128}$/u.test(r))return;let o=Be.join(t.home_dir??is.homedir(),".codex","sessions"),i=`${o}\0${r}`,s=hn.get(i);if(s)return s[e];let a=od(o,r);if(!a){hn.set(i,ns);return}try{let c=q.openSync(a,"r");try{let d=q.fstatSync(c).size,l=ad(c,d);return hn.set(i,l),l[e]}finally{q.closeSync(c)}}catch{hn.set(i,ns);return}}function dd(e,t,n,r){let o=vn.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 rd(e,t,n);if(s==="codex_session_file")return cd(e,t,n);if(s==="ai_agent_version"){let a=P(n.AI_AGENT);return!a||!r||!yn(a,r.harness)?void 0:/(?:^|[@/\s])v?(\d+\.\d+(?:\.\d+)?(?:[-+][A-Za-z0-9.-]+)?)$/u.exec(a)?.[1]?.slice(0,256)}}function ld(e,t,n,r){if(e==="ai_agent_version"){let o=P(r.AI_AGENT);return o!==void 0&&yn(o,t.harness)?"available":"unavailable"}return e==="codex_session_file"?P(r.CODEX_THREAD_ID)!==void 0?"available":"unavailable":fs(n,r).status}function Yr(e){return e||(ss.getStore()??{env:process.env,argv:process.argv})}function ud(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 yn(d.slice(d.lastIndexOf("/")+1),a)})),s=e.client_names.some(a=>r===a||yn(r,a));return o||i||s}function fd(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 md(e){let t=e.find(([n])=>n!==void 0);return t?.[0]?{value:t[0],source:t[1]}:void 0}function _d(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=ze(e,P(n[s])?.slice(0,256)),l=ze(e,ls(t.argv??[],e)),d=ze(e,Qc(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),_=ze(e,Xr(n,f[e])),g=ze(e,Ur(m,e)),h=ze(e,Ur(t.provenance,e)),I=dd(e,t,n,r);return md([[c,"override"],[p,"session"],[l,"argv"],[_,"environment"],[g,"mcp_client"],[h,"host"],[I,"probe"]])??fd(e,i)??(d?{value:d,source:"argv"}:void 0)}function pd(e,t){if(!(!e||!t))return Kc("sha256").update(`pm-agent-instance:v1\0${e}\0${t}`).digest("hex").slice(0,24)}function hd(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=_d(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 gh(e){let t=e.map(Te),n=new Map(ds.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=ot.get(i.harness);if(s&&!Jc(s.descriptor,i))throw new Error(`Harness signal descriptor collision for "${i.harness}"`);r.add(i.harness)}for(let i of t){let s=ot.get(i.harness);ot.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=ot.get(i.harness);!s||s.registrations<=1?ot.delete(i.harness):s.registrations-=1}}}}function yd(e){let t=Te(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(Se(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 vh(){let e=new Map(cs.map(t=>[t.harness,t]));for(let{adapter:t}of Ue.values())e.set(t.harness,t);return Object.freeze([...e.values()].sort((t,n)=>t.harness.localeCompare(n.harness)))}function wh(e){let t=e.map(yd),n=new Map(cs.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=Ue.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=Ue.get(i.harness);Ue.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=Ue.get(i.harness);!s||s.registrations<=1?Ue.delete(i.harness):s.registrations-=1}}}}function bh(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 Eh(e,t){return ss.run(e,t)}function kh(e,t,n={}){let r=e.map(Te);return Kr(r),vn.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(_=>ud(_,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=pd(s?.harness,c),l=ts({cwd:t.cwd??process.cwd(),env:n,key:d}),f=hd(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 gd(e){return e==="unavailable"?{status:"unavailable",reason:"harness_unavailable"}:e==="missing"?{status:"unavailable",reason:"resolver_input_missing"}:{status:"failed",reason:"resolver_failed"}}function vd(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=ld(a,n,r,o);return{...gd(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 ms(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&&vn.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,ls(t.argv??[],"role")].some(d=>{let l=P(d)?.slice(0,256);return l!==void 0&&ze("role",l)===void 0}),c=Object.fromEntries(qr.map(d=>[d,vd(d,n,r,t,o,i,d==="role"&&a)]));return{...n,provenance_outcomes:c}}function Ih(){return process.env.PM_AUTHOR}function Sh(e){e===void 0?delete process.env.PM_AUTHOR:process.env.PM_AUTHOR=e}function Th(e){return Jr(e).harness}function wd(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 _s(e){let t=gn.getStore();return t?.author===e?t.source:e.startsWith("harness:")?"detected":e==="unknown"?"unknown":"asserted"}function ps(e){let t=gn.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 hs(e){let t=gn.getStore();return t?.author===e&&t.source==="detected"&&t.instance?`${e}#${t.instance}`:e}function ys(e,t){let n=wd(e,t);return gn.enterWith(n),n.author}import{createHash as bd}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 xh=["sha256","sha512"],Ed="sha256",gs="sha256";function We(e){if(e===void 0)return Ed;if(e==="sha256"||e==="sha512")return e;throw new TypeError(`unsupported_history_hash_algorithm:${String(e)}`)}function Ce(e,t){return bd(We(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 it=1,vs=1;function Ah(e){let t=e.pm_format_version;return typeof t=="number"&&Number.isInteger(t)&&t>=it?t:it}function ws(e){if(!(typeof e!="number"||!Number.isInteger(e)||e<=it))return e}function kd(e,t=vs){return e<t?"outdated":e>t?"ahead":"current"}function Dh(e,t=vs){let n=[],r=[];for(let o of e){let i=kd(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 Id={"in-progress":"in_progress",cancelled:"canceled"};function wn(e,t){if(t){let o=Mi(e,t);if(o)return o}if(typeof e!="string")return;let n=e.trim().toLowerCase();if(!n)return;let r=Id[n]??n;if(tn.includes(r))return r}function st(e,t){return wn(e,t)??e}function ye(e,t){return t.terminal_statuses.has(st(e,t))}import{encode as Md}from"@toon-format/toon";import{isDeepStrictEqual as Ss}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 Sd=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 Td(e){return[...new Set([Fi(e),Qr(e.key),Qr(e.cli_flag),...e.cli_aliases.map(t=>Qr(t))])]}function ks(e,t){for(let n of Td(t)){if(!Object.hasOwn(e,n))continue;let r=e[n];if(r!==void 0)return r}}function Is(e){return Array.isArray(e)?e.flatMap(t=>Is(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 bs(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`,w.USAGE)}function Es(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`,w.USAGE);return r}function Cd(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}`,w.USAGE)}function Od(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 xd(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(!Od(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"&&!Gi(e))return`${n} must be an RFC 3339 date-time`}}function Rd(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 Ad(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>Sd)return`${n} value schema exceeds maximum depth`;let o=xd(e,t,n);if(o)return o;let i=Rd(e,t,n,r);if(i)return i;let s=Ad(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 Ve(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,w.USAGE);return t}function Dt(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:Ve(e,Cd(i,r,e.type),r)}if(e.repeatable||e.type==="string_array"){let i=Is(t);return e.type==="number"?Ve(e,i.map(s=>Es(s,r)),r):e.type==="boolean"?Ve(e,i.map(s=>bs(s,r)),r):Ve(e,i,r)}let o=Array.isArray(t)?t[t.length-1]:t;if(o!==void 0)return e.type==="number"?Ve(e,Es(o,r),r):e.type==="boolean"?Ve(e,bs(o,r),r):Ve(e,typeof o=="string"?o:String(o),r)}function Dd(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 Uh(e,t,n){let r={},o=[];for(let i of t.command_to_fields.get("create")??[]){let s=ks(e,i);if(s===void 0){Dd(i,n)&&o.push(`--${i.cli_flag}`);continue}r[i.metadata_key]=Dt(i,s)}return{values:r,missing_required_flags:[...new Set(o)].sort((i,s)=>i.localeCompare(s))}}function Bh(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=ks(e,s);a!==void 0&&(i.has(s.metadata_key)||(i.add(s.metadata_key),r[s.metadata_key]=Dt(s,a)))}return r}import{decode as Nd}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:Nd(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 Ld=/^\s*(<<<<<<<|=======|>>>>>>>)(?:\s.*)?$/;function Pd(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(Ld);if(!i)continue;let s=i[1];n.push({line:r+1,marker:s,text:o})}return n}function En(e){return Pd(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"]),Os=new Set(["source","isolated","snapshot"]),jd=new Set(["legacy","local_mutation","local_source_ref","acknowledged","invalid_provenance","foreign_source_ref"]),Fd=new Set(["passed","failed","stopped","canceled"]),$d=new Set(vi);function dt(e){return e.replaceAll("\\","/")}function xs(e){for(let t of e)if(t!==0)return t;return 0}function In(e){for(let[t,n]of Object.entries(e))n===void 0&&delete e[t]}var Rs=["id","title","description","created_at","updated_at"],Hd=new Set(be);function As(e){if(e?.schema)return{statusRegistry:un(e.schema),fieldRegistry:ji(e.schema),unknownFieldPolicy:e.schema.unknown_field_policy??"allow",extensionFieldNames:new Set(e.extensionFieldNames??[]),onWarning:e.onWarning}}function zd(e,t){return e.required?e.required_types.length===0?!0:e.required_types.map(n=>n.toLowerCase()).includes(t.trim().toLowerCase()):!1}function Oe(e){let t=e.match(/^([a-z_][\w.]*)\s/u)?.[1];throw new v(`Invalid item metadata: ${e}`,w.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 Pt(e,t){throw new v(t,w.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 Ds(e){let t=new Set(Hd);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||Oe(t)}function Mt(e,t){return(typeof e!="object"||e===null||Array.isArray(e))&&Oe(t),e}function eo(e,t){let n=e[t];S(typeof n=="string",`${t} must be a string`),S(_e(n),`${t} must be a valid ISO timestamp`)}function Ts(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(_e(r),`${n} must be a valid ISO timestamp`))}function Ud(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(sn.includes(n),`event.recurrence.by_weekday entries must be one of: ${sn.join(", ")}`)}}}function Bd(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 Wd(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(_e(t),"event.recurrence.exdates entries must be valid ISO timestamps")}}function Vd(e){let t=Mt(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(on.includes(n),`event.recurrence.freq must be one of: ${on.join(", ")}`),Ts(t,"interval","event.recurrence.interval"),Ts(t,"count","event.recurrence.count"),oo(t,"until","event.recurrence.until"),Ud(t.by_weekday),Bd(t.by_month_day),Wd(t.exdates)}function qd(e){for(let r of Rs)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>=it,`pm_format_version must be an integer >= ${it}`),t}function Gd(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=wn(n,r),i=r?r.definitions.map(s=>s.id):[...tn];S(o!==void 0,`status must be one of: ${i.join(", ")}`)}function Kd(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 Xd(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"||rn.includes(n);S(r,`confidence string value must be one of: ${[...rn,"med"].join(", ")}`);return}S(!1,"confidence must be a number or string")}}function Yd(e){let t=e.severity;if(t===void 0)return;typeof t!="string"&&Oe("severity must be a string");let n=t.trim().toLowerCase(),r=n==="med"||nn.includes(n);S(r,`severity value must be one of: ${[...nn,"med"].join(", ")}`)}function Jd(e){e.regression!==void 0&&typeof e.regression!="boolean"&&Oe("regression must be a boolean")}function Qd(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=Mt(n,"reminders entries must be objects");S(typeof r.at=="string","reminder.at must be a string"),S(_e(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 Zd(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 el(e){e.recurrence!==void 0&&(Vd(e.recurrence),e.recurrence.until!==void 0&&S(pe(e.recurrence.until,e.start_at)>=0,"event.recurrence.until must be at or after event.start_at"))}function tl(e){let t=Mt(e,"events entries must be objects");S(typeof t.start_at=="string","event.start_at must be a string"),S(_e(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(_e(t.end_at),"event.end_at must be a valid ISO timestamp"),S(pe(t.end_at,t.start_at)>0,"event.end_at must be after event.start_at")),Zd(t),t.all_day!==void 0&&S(typeof t.all_day=="boolean","event.all_day must be a boolean"),el(t)}function nl(e){let t=e.events;if(t!==void 0){S(Array.isArray(t),"events must be an array");for(let n of t)tl(n)}}function rl(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 ol(e){let t=e.type_options;if(t===void 0)return;let n=Mt(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 il(e,t,n){if(n?.fieldRegistry)for(let r of n.fieldRegistry.definitions){let o=e[r.metadata_key];if(o===void 0){zd(r,t)&&Oe(`missing required schema field: ${r.metadata_key}`);continue}try{e[r.metadata_key]=Dt(r,o,`metadata field "${r.metadata_key}"`)}catch(i){Oe(String(i?.message).replace(/^Invalid\s+/u,""))}}}function sl(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let n=Ds(t),r=Object.keys(e).filter(o=>!n.has(o)).sort((o,i)=>o.localeCompare(i));r.length!==0&&(t.unknownFieldPolicy==="reject"?Oe(`unknown schema fields are not allowed: ${r.join(", ")}`):t.onWarning?.(`item_unknown_schema_fields:${r.join(",")}`))}function io(e,t){let n=Mt(e,"item metadata must be an object"),r=qd(n);Gd(n,t),Kd(n),Xd(n),Yd(n),Jd(n),eo(n,"created_at"),eo(n,"updated_at"),n.deadline!==void 0&&eo(n,"deadline"),Qd(n),nl(n),oo(n,"closed_at","closed_at"),oo(n,"completed_at","completed_at"),rl(n),ol(n),il(n,r,t),sl(n,t)}function al(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=pe(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=pe(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 cl(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=pe(n.at,r.at);return o!==0?o:n.text.localeCompare(r.text)});return t.length===0?void 0:t}function dl(e){if(!e)return;let t=e.freq.trim().toLowerCase();if(!on.includes(t))return;let n=Array.from(new Set((e.by_weekday??[]).map(s=>s.trim().toLowerCase()).filter(s=>sn.includes(s)))).sort((s,a)=>Er(s)-Er(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=>_e(s)))).sort((s,a)=>pe(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 ll(e){return!Array.isArray(e)||e.length===0?void 0:[...e].map(ul).sort(fl)}function ul(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:dl(e.recurrence)};return In(t),t}function fl(e,t){return xs([pe(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 ml(e){if(!(!e||e.length===0))return e.map(t=>({path:dt(t.path),scope:t.scope,note:t.note?.trim()||void 0}))}function _l(e){if(!e||e.length===0)return;let t=e.map(gl).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)=>xs([pe(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 at(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?Math.floor(e):void 0}function pl(e){return typeof e=="number"&&Number.isFinite(e)&&e>=1?Math.floor(e):void 0}function no(e){return typeof e=="string"?e:""}function hl(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 kn(e,t){return typeof e=="string"&&t.has(e)?e:void 0}function yl(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:kn(n.requested_pm_context_mode,ro),pm_context_mode:kn(n.pm_context_mode,ro),workspace_context_mode:kn(n.workspace_context_mode,Os),trust_reason:kn(n.trust_reason,jd)}));return t.length>0?t:void 0}function gl(e){let t=typeof e.run_id=="string"?e.run_id.trim():"",n=e.kind==="test"||e.kind==="test-all"?e.kind:"test",r=Fd.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:pl(e.attempt),resumed_from:e.resumed_from?.trim()||void 0,passed:at(e.passed)??0,failed:at(e.failed)??0,skipped:at(e.skipped)??0,items:at(e.items),linked_tests:at(e.linked_tests),fail_on_skipped_triggered:e.fail_on_skipped_triggered===!0?!0:void 0,measurements:hl(e.measurements),executions:yl(e.executions)};return In(o),o}function vl(e){if(!(!Array.isArray(e)||e.length===0))return e.map(Il)}function Nt(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 Cs(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 wl(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 bl(e){let t=e?.trim().toLowerCase();if(!(!t||!ro.has(t)))return t}function El(e){let t=e?.trim().toLowerCase();if(!(!t||!Os.has(t)))return t}function kl(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||!_e(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 Il(e){let t={command:e.command?.trim()||void 0,path:e.path?dt(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:bl(e.pm_context_mode),workspace_context_mode:El(e.workspace_context_mode),...kl(e.provenance,e.provenance_invalid),env_set:Cs(e.env_set),env_clear:Nt(e.env_clear),shared_host_safe:e.shared_host_safe===!0?!0:void 0,assert_stdout_contains:Nt(e.assert_stdout_contains),assert_stdout_regex:Nt(e.assert_stdout_regex),assert_stderr_contains:Nt(e.assert_stderr_contains),assert_stderr_regex:Nt(e.assert_stderr_regex),assert_stdout_min_lines:at(e.assert_stdout_min_lines),assert_json_field_equals:Cs(e.assert_json_field_equals),assert_json_field_gte:wl(e.assert_json_field_gte),note:e.note?.trim()||void 0};return In(t),t}function Sl(e){if(!(!e||e.length===0))return[...e].map(t=>({path:dt(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 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.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 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:dt(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(!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=dt(i));let a=E(r.note);a&&(s.note=a),t.push(s)}return t.length>0?t:void 0}function xl(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:dt(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 Rl(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&&$d.has(o)?o:void 0,s=Si(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 Al(d,t),d}function Al(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",Tl],["files","files",Cl],["tests","tests",Ol],["docs","docs",xl]];for(let[i,s,a]of o){let c=a(t[s]);c&&(e[i]=c)}}function Dl(e){if(!Array.isArray(e))return;let t=e.flatMap(n=>{let r=Rl(n);return r?[r]:[]});return t.sort((n,r)=>n.order-r.order),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=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 Ll(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 Pl(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 Ml(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 ct(e){let t=0;for(;t<e.length&&e[t]===`
|
|
6
|
-
`;)t+=1;return e.slice(t).trimEnd()}function jl(e){if(e===void 0)return;if(typeof e=="number")return e;let t=e.trim().toLowerCase();if(t==="med")return"medium";if(rn.includes(t))return t}function Fl(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(t==="med")return"medium";if(nn.includes(t))return t}function Lt(e){return e||void 0}function $l(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 Hl(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]=Dt(r,o,`metadata field "${r.metadata_key}"`))}}function zl(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let n=Ds(t),o=Object.keys(e).filter(i=>!n.has(i)).sort((i,s)=>i.localeCompare(s));o.length>0&&t.unknownFieldPolicy==="reject"&&Oe(`unknown schema fields are not allowed: ${o.join(", ")}`),o.length>0&&t.onWarning?.(`item_unknown_schema_fields:${o.join(",")}`)}function Sn(e,t={}){let n=As(t),r=wn(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:ws(e.pm_format_version),source_type:E(e.source_type),type_options:Ml(e.type_options),status:r,priority:e.priority,tags:o,created_at:e.created_at,updated_at:e.updated_at,dependencies:al(e.dependencies),comments:to(e.comments),notes:to(e.notes),learnings:to(e.learnings),files:ml(e.files),tests:vl(e.tests),test_runs:_l(e.test_runs),docs:Sl(e.docs),deadline:Lt(e.deadline),reminders:cl(e.reminders),events:ll(e.events),closed_at:Lt(e.closed_at),completed_at:Lt(e.completed_at),assignee:E(e.assignee),claim_principal:E(e.claim_principal),source_owner:E(e.source_owner),author:Lt(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:jl(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:Fl(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:Lt(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:Dl(e.plan_steps),plan_decisions:Nl(e.plan_decisions),plan_discoveries:Ll(e.plan_discoveries),plan_validation:Pl(e.plan_validation)};return $l(i,e),Hl(i,n),zl(i,n),In(i),i}function Ns(e){return T(e,be)}function Ul(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 Bl(e){if(!e.startsWith("{"))return{frontMatter:"",body:e};let t=Ul(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 Wl(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 Sn(e,{...t,onWarning:void 0})}function Vl(e,t,n={}){let r=Wl(e);r.stripped&&n.onWarning?.("json_markdown_leading_yaml_frontmatter_ignored");let{frontMatter:o,body:i}=Bl(r.content);o||(e.trimStart().startsWith("{")&&Pt("json_markdown","JSON front matter is not valid JSON"),Pt("json_markdown","JSON Markdown item document is missing JSON front matter"));let s;try{s=JSON.parse(o)}catch{Pt("json_markdown","JSON front matter is not valid JSON")}return io(s,t),{metadata:so(s,n),body:ct(i)}}function ql(e,t,n={}){let r;try{r=Zr(e).value}catch{Pt("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(!Rs.some(a=>Object.prototype.hasOwnProperty.call(o,a))&&!Object.prototype.hasOwnProperty.call(o,"front_matter")&&Pt("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:ct(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:ct(typeof i=="string"?i:"")}}function Gl(e,t={}){let n=Sn(e.metadata,t),r=Ns(n),o=JSON.stringify(r,null,2),i=ct(e.body??"");return i?`${o}
|
|
8
|
-
|
|
9
|
-
${i}
|
|
10
|
-
`:`${o}
|
|
11
|
-
`}function Kl(e,t={}){let n=Sn(e.metadata,t),r=Ns(n),o=ct(e.body??""),i={...r,body:o},s=JSON.parse(JSON.stringify(i)),a=Md(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.",w.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(!Ss(c,s)){let d=typeof c=="object"&&c!==null&&!Array.isArray(c)?c:{},l=Object.keys(s).find(f=>!Ss(s[f],d[f]))??"document";throw new v(`Refusing to persist a lossy TOON item document; round-trip mismatch at field "${l}".`,w.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 Tn(e,t={}){let n=En(e);if(n)throw new v(`Merge conflict markers detected in item document at line ${n.line} (${n.marker}). Resolve <<<<<<< ======= >>>>>>> markers and retry.`,w.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=As(t);return r==="toon"?ql(e,o,t):Vl(e,o,t)}function Ls(e,t={}){return(t.format??"toon")==="toon"?Kl(e,t):Gl(e,t)}function ne(e,t={}){return{metadata:Sn(e.metadata,t),body:ct(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 Xl(e,t){let n=await Ee(e);if(n===null)return{raw:n,entries:[]};if(await ke({path:e,scope:"project"}),n.trim()==="")return{raw:n,entries:[]};let r=En(n);if(r)throw new v(`History for ${t} contains merge conflict markers at line ${r.line} (${r.marker}). Resolve <<<<<<< ======= >>>>>>> markers and retry.`,w.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.`,w.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 ge(e,t){return(await Xl(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 Ps(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 ea from"fast-json-patch";import Ys from"node:fs/promises";import Tu from"node:path";import j from"node:fs/promises";import z from"node:path";import{randomUUID as js}from"node:crypto";import{createRequire as nu}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 Yl=["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"],Jl=["append","cancel","claim","close","comment_add","create","learning_add","note_add","reopen"],Ql=new Set(Yl),Zl=new Set(Jl),eu=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 tu(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 lt(e){return e.event_class==="substantive"||e.event_class==="maintenance"?e.event_class:Ql.has(e.op)?"maintenance":Zl.has(e.op)||e.op!=="update"?"substantive":Array.isArray(e.patch)&&e.patch.length>0&&e.patch.every(t=>{let n=tu(t);return n!==void 0&&eu.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 ru="history-event-index.sqlite",uo="5",ou=8,iu="history-event-index",fo=300,Fs=3e4,su="history-event-index-invalidation",au="history-event-index-invalidations",cu=fo*2*1e3,An=Symbol("history-index-lock-contended"),qe=new Map;function Ft(e){return z.join(e,"runtime",ru)}function Nn(e){return z.join(e,"runtime",au)}async function du(e){let t=await j.readdir(Nn(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 du(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 Xi({pid:Number(o[1]),...i==="unknown"?{}:{process_start_identity:i}},Math.max(0,Date.now()-Number(o[3])),cu))return r}return await j.rm(z.join(Nn(e),r),{force:!0}),null}))).filter(r=>r!==null),committed:t.committed}}async function jt(e,t){let n=await V(e,su,fo,`history-event-index-invalidation:${process.pid}`,!1,!1,Fs);try{return await t()}finally{await n()}}async function lu(e){let t=Nn(e);await j.mkdir(t,{recursive:!0});let n=js(),r=await Ki(),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 uu(e,t){return e.length===t.length&&e.every((n,r)=>n===t[r])}async function Cn(e){try{await j.rm(Ft(e),{force:!0})}catch{}}async function Ln(e,t){let n=await V(e,iu,fo,`history-event-index:${process.pid}`,!1,!1,Fs);try{return await t()}finally{await n()}}async function $s(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=qe.get(e)??{streams:new Map,ordered_events:[]},o=new Set,i=!qe.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 Hs(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)),qe.delete(e),qe.set(e,r),qe.size>ou){let s=qe.keys().next().value;qe.delete(s)}return{events:r.ordered_events,stream_byte_sizes:new Map([...r.streams].map(([s,a])=>[s,a.byte_size]))}}async function Hs(e,t){let n=await ge(e,t);for(let[r,o]of n.entries())if(typeof o.ts!="string"||!nt(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.`,w.GENERIC_FAILURE,{code:"history_timestamp_invalid"});return n.map(r=>({...r,ts:new Date(r.ts.trim()).toISOString()}))}async function fu(e){return(await $s(e)).events}function mu(e){try{return e(["node","sqlite"].join(":")).DatabaseSync??null}catch{return null}}function _u(e,t){let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>=22?mu(t):null}var On;function Pn(){return On!==void 0||(On=_u(process.versions.node,nu(import.meta.url))),On}function pu(e){e.exec(`
|
|
14
|
-
PRAGMA journal_mode = OFF;
|
|
15
|
-
PRAGMA synchronous = OFF;
|
|
16
|
-
CREATE TABLE metadata (
|
|
17
|
-
key TEXT PRIMARY KEY,
|
|
18
|
-
value TEXT NOT NULL
|
|
19
|
-
) STRICT;
|
|
20
|
-
CREATE TABLE events (
|
|
21
|
-
stream_id TEXT NOT NULL,
|
|
22
|
-
stream_offset INTEGER NOT NULL,
|
|
23
|
-
ts TEXT NOT NULL,
|
|
24
|
-
author TEXT NOT NULL,
|
|
25
|
-
agent_harness TEXT,
|
|
26
|
-
agent_instance TEXT,
|
|
27
|
-
op TEXT NOT NULL,
|
|
28
|
-
event_class TEXT NOT NULL CHECK(event_class IN ('substantive', 'maintenance')),
|
|
29
|
-
entry_json TEXT NOT NULL,
|
|
30
|
-
PRIMARY KEY(stream_id, stream_offset)
|
|
31
|
-
) STRICT;
|
|
32
|
-
CREATE TABLE streams (
|
|
33
|
-
stream_id TEXT PRIMARY KEY,
|
|
34
|
-
byte_size INTEGER NOT NULL CHECK(byte_size >= 0)
|
|
35
|
-
) STRICT;
|
|
36
|
-
CREATE INDEX events_order
|
|
37
|
-
ON events(ts, stream_id, stream_offset);
|
|
38
|
-
CREATE INDEX events_op_order
|
|
39
|
-
ON events(op, ts, stream_id, stream_offset);
|
|
40
|
-
CREATE INDEX events_class_stream_order
|
|
41
|
-
ON events(event_class, stream_id, ts, stream_offset);
|
|
42
|
-
CREATE INDEX events_author_order
|
|
43
|
-
ON events(author, ts, stream_id, stream_offset);
|
|
44
|
-
CREATE INDEX events_harness_order
|
|
45
|
-
ON events(agent_harness, ts, stream_id, stream_offset);
|
|
46
|
-
CREATE INDEX events_instance_order
|
|
47
|
-
ON events(agent_instance, ts, stream_id, stream_offset);
|
|
48
|
-
`),e.prepare("INSERT INTO metadata(key, value) VALUES ('version', ?)").run(uo)}function zs(e,t){let n={...t.entry,ts:new Date(t.entry.ts.trim()).toISOString()};e.prepare(`INSERT INTO events(
|
|
49
|
-
stream_id, stream_offset, ts, author, agent_harness,
|
|
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,lt(n),JSON.stringify(n))}function Us(e){let t=JSON.parse(String(e.entry_json));return typeof t.ts!="string"||!nt(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 Bs(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 hu(e){let t=Pn();return t?Ln(e,async()=>{let n;try{n=await jt(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=Ft(e);await j.mkdir(z.dirname(r),{recursive:!0});let o=`${r}.${js()}.tmp`,i;try{i=new t(o),pu(i),i.exec("BEGIN IMMEDIATE");let s=await $s(e);for(let c of s.events)zs(i,c);for(let[c,d]of s.stream_byte_sizes)Bs(i,c,d);i.exec("COMMIT"),i.close(),i=void 0;let a=await jt(e,async()=>{let c=await lo(e);return c.pending.length>0||!uu(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(Nn(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 xn(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 Dn(e){let t=Date.parse(e);return Number.isFinite(t)?new Date(t).toISOString():e}function yu(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:Dn(t.after_ts)}})<=0)return!1}else if(t.since_ts!==void 0&&e.entry.ts<Dn(t.since_ts))return!1;return!0}function gu(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 vu(e,t){return!yu(e,t)||!xn(e.entry.op,t.ops)||!xn(e.entry.author,t.authors)||!xn(e.entry.agent_instance??"",t.agent_instances)||!xn(e.stream_id,t.stream_ids)||!gu(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 xy(e,t){let n=Math.max(0,Math.floor(t.limit)),r=(await fu(e)).filter(o=>vu(o,t)).slice(0,n+1);return{events:r.slice(0,t.limit),has_more:r.length>t.limit}}async function Ws(e,t,n){let r=z.dirname(z.dirname(e)),o=Pn();if(!o){await n();return}let i=!1;try{await Ln(r,async()=>{let s=Ft(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);zs(a,{stream_id:d,stream_offset:Number(l.value),entry:t}),Bs(a,d,(await j.stat(e)).size),a.exec("COMMIT"),a.close()}catch(d){if(a?.close(),!c)throw d;await Cn(r)}})}catch(s){if(i){await Cn(r);return}if(!(s instanceof v)||s.code!=="lock_conflict")throw s;let a;try{await jt(r,async()=>{let c=await lu(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 Cn(r)})}catch(c){if(i){await Cn(r);try{await j.rm(a,{force:!0})}catch{}return}throw c}}}async function _o(e){await j.rm(Ft(z.dirname(z.dirname(e))),{force:!0})}function Rn(e,t,n,r){!r||r.length===0||(e.push(`${n} IN (${r.map(()=>"?").join(", ")})`),t.push(...r))}function wu(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 Vs(e,t){let n=await lo(e);if(n.pending.length>0||n.committed.length>0)return;let r=new t(Ft(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 Ry(e,t){let n=Pn();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=Dn(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(Dn(t.since_ts)));Rn(r,o,"op",t.ops),Rn(r,o,"author",t.authors),wu(r,o,t.harnesses,t.harness_alias_authors),Rn(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);Rn(r,o,"stream_id",t.stream_ids);let i=r.length===0?"":` WHERE ${r.join(" AND ")}`,s;try{return await Ln(e,async()=>jt(e,async()=>{if(s=await Vs(e,n),!s)return null;let a=await Eu(s,e,t.stream_ids);if(!await Gs(s,e,a))return s.close(),s=void 0,null;let c=s.prepare(`SELECT stream_id, stream_offset, entry_json
|
|
53
|
-
FROM events${i}
|
|
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(Us);return s.close(),s=void 0,d.includes(null)?null:{events:d,has_more:c.length>t.limit}}))}catch{return s?.close(),null}}function qs(e,t){let n=Object.create(null);for(let r of e){if(!t.has(r.stream_id)||lt(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 bu(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 Gs(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=>bu(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 Eu(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 Ms(e,t,n,r){if(!e)return null;let o;try{return await Ln(t,async()=>jt(t,async()=>{if(o=await Vs(t,e),!o)return null;if(!await Gs(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
|
-
FROM (
|
|
58
|
-
SELECT stream_id, stream_offset, entry_json,
|
|
59
|
-
ROW_NUMBER() OVER (
|
|
60
|
-
PARTITION BY stream_id
|
|
61
|
-
ORDER BY ts DESC, stream_offset DESC
|
|
62
|
-
) AS recency_rank
|
|
63
|
-
FROM events
|
|
64
|
-
WHERE event_class = 'substantive'
|
|
65
|
-
AND stream_id IN (${a.map(()=>"?").join(", ")})
|
|
66
|
-
)
|
|
67
|
-
WHERE recency_rank = 1`).all(...a).map(Us);if(d.includes(null))return o.close(),o=void 0,null;i.push(...d)}return o.close(),o=void 0,qs(i,r)}))}catch(i){return o?.close(),i instanceof v&&i.code==="lock_conflict"?An:null}}async function Ay(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=Pn(),i=await Ms(o,e,n,r);if(i!==null&&i!==An)return i;if(o&&i!==An)try{if(await hu(e)){let a=await Ms(o,e,n,r);if(a!==null&&a!==An)return a}}catch{}let s=[];return await Promise.all(n.map(async a=>{let c=z.join(e,"history",`${a}.jsonl`);(await Hs(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})})})),qs(s,r)}import po from"node:fs/promises";import ut 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 ku=ut.join("runtime","history-drift-cache.json"),Ks={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 Xs(e){return typeof e=="object"&&e!==null&&"code"in e&&typeof e.code=="string"?e.code:void 0}async function Iu(e){let t=ut.join(e,ku),n=!1,r="invalid_cache_path";try{n=(await po.stat(await po.realpath(e))).isDirectory()}catch(o){let i=Xs(o);r=i===void 0?"unknown":Ks[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=Xs(o);if(te(o))return;let s=i===void 0?"unknown":Ks[i]??"filesystem_error";xr(`[pm] warning: history_drift_cache_invalidation_failed:${s}
|
|
69
|
-
`)}}async function Mn(e){let t=ut.dirname(ut.resolve(e));ut.basename(t)==="history"&&await Iu(ut.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 Cu={front_matter:{},body:""},Ge=3,$t=[1,2,3],Ou=1,xu=[1];function ta(e){return Ce(N(e),e.hash_algorithm)}function ft(e){return ln(N(e))}function tg(e){return ln(N(e))}function vo(e){let t={...e,record_hash_version:Ou},{record_hash:n,...r}=t;return{...t,record_hash:ta(r)}}function $n(e){try{We(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(!xu.includes(e.record_hash_version))return{ok:!1,error:"unsupported_record_hash_version"};let{record_hash:t,...n}=e;return ta(n)===e.record_hash?{ok:!0,coverage:"record_and_item_state"}:{ok:!1,error:"record_hash_mismatch"}}function Ru(e,t){let n={before_hash:e.before_hash,after_hash:e.after_hash,patch_hash:ft(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 na(e,t,n={}){let r=$n(e);if(!r.ok)throw new TypeError(r.error);let o=ft(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!==ft(t.patch),s=vo({...t,...i?{reanchor_evidence:[...t.reanchor_evidence??[],Ru(e,n)]}:{}}),a=wo(s);if(!a.ok)throw new TypeError(a.error);return s}function ra(e){return!Array.isArray(e)||Object.keys(e).length!==e.length?!1:e.every(t=>!Ke(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 Au(e){return Ke(e)&&typeof e.ts=="string"&&typeof e.author=="string"&&typeof e.op=="string"&&typeof e.before_hash=="string"&&typeof e.after_hash=="string"&&ra(e.patch)}function Du(e){let t=e.record_hash_version!==void 0,n=e.record_hash!==void 0;return t===n}function Nu(e){return!Ke(e)||!Du(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&&!ra(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||Au(e.record)}function Lu(e){try{for(let t of e){if(!Nu(t))return!1;We(t.hash_algorithm)}return!0}catch{return!1}}function Pu(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&&ft(t.patch)===e.patch_hash}function Mu(e,t,n){if(t.patch&&ft(t.patch)!==t.patch_hash)return{kind:"patch_hash_mismatch"};if(t.record)return Pu(t)?{kind:"record",entry:t.record}:{kind:"record_hash_mismatch"};let r=t.patch??e.patch;if(ft(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 wo(e){let t=e.reanchor_evidence;if(t===void 0)return{ok:!0,coverage:"none"};if(!Array.isArray(t)||!Lu(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=Mu(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(!$n(i.entry).ok)return{ok:!1,error:"rewrite_evidence_record_hash_mismatch"};n=i.entry}return{ok:!0,coverage:"complete"}}function jn(e,t){return(e??"").localeCompare(t??"")}function Js(e,t){return(e??0)-(t??0)}function xe(e,t,n){return JSON.stringify(e??n).localeCompare(JSON.stringify(t??n))}function ju(e,t){return[e.scope.localeCompare(t.scope),jn(e.path,t.path),jn(e.command,t.command),Js(e.timeout_seconds,t.timeout_seconds),jn(e.pm_context_mode,t.pm_context_mode),+!!e.shared_host_safe-+!!t.shared_host_safe,xe(e.env_clear,t.env_clear,[]),xe(e.env_set,t.env_set,{}),xe(e.assert_stdout_contains,t.assert_stdout_contains,[]),xe(e.assert_stdout_regex,t.assert_stdout_regex,[]),xe(e.assert_stderr_contains,t.assert_stderr_contains,[]),xe(e.assert_stderr_regex,t.assert_stderr_regex,[]),Js(e.assert_stdout_min_lines,t.assert_stdout_min_lines),xe(e.assert_json_field_equals,t.assert_json_field_equals,{}),xe(e.assert_json_field_gte,t.assert_json_field_gte,{}),jn(e.note,t.note)].find(r=>r!==0)??0}function Fu(e){return!e||e==="/"?[]:e.startsWith("/")?e.slice(1).split("/").map(t=>t.replaceAll("~1","/").replaceAll("~0","~")):[]}function $u(e,t){let n=Fu(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:Ke(r)&&Object.prototype.hasOwnProperty.call(r,o)?r[o]:void 0;if(s===void 0)return!1;r=s}return!0}function Hu(e,t){let n=[],r=structuredClone(e);for(let o of t){let i=o.op==="replace"&&!$u(r,o.path)?{...o,op:"add"}:o;n.push(i),r=ea.applyPatch(r,[i],!0,!0).newDocument}return n}function Fn(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(ju)}:s;return{front_matter:T(a,be),body:o.body}}function Qs(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 ng(e){return oa(e,Ge)}function oa(e,t,n){if(!$t.some(r=>r===t))throw new TypeError(`unsupported_item_hash_version:${String(t)}`);return Ce(N(Fn(e,t)),n)}function ia(e,t,n){let r=oa(e,t,n);return t===2?[r,Ce(N(Fn(e,t,!0)),n)]:[r]}function rg(){return ln(N(Cu))}function mt(e){let t=_n(e.op),n=Fn(e.before,Ge),r=Fn(e.after,Ge),o=Qs(e.before),i=Qs(e.after),s=ea.compare(o,i),a=Hu(o,s),c=ps(e.author),d=c.harness?Object.fromEntries(Object.entries(ms().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??gs,m={hash_algorithm:f,ts:e.nowIso,author:e.author,author_source:e.authorSource??_s(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:Ce(N(n),f),after_hash:Ce(N(r),f),item_hash_version:Ge,message:e.message===void 0?void 0:e.message,...l===void 0?{}:{context:l}};return vo({...m,event_class:lt(m)})}function Ke(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ho(e){return new v(e,w.GENERIC_FAILURE,{code:"history_timestamp_invalid"})}function sa(e){let t=e.ts.trim();if(t.length===0)return Ie();if(!nt(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 Zs(e,t){let n=e.ts;if(typeof n=="string"&&n.trim().length>0){if(!nt(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=sa(t);if(typeof e=="string"){let r;try{r=JSON.parse(e)}catch{return e}return Ke(r)?JSON.stringify(Zs(r,n)):e}return Ke(e)?JSON.stringify(Zs(e,n)):JSON.stringify(e)}async function zu(e,t,n){if(n===!1)return!0;if(typeof n=="string"){let s=yo(n,t);return await go(e,s),await Mn(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 Mn(o),await _o(o),!0}async function go(e,t){let n;try{n=JSON.parse(t)}catch{n=null}if(!Ke(n)||n.op!=="create"){await Ii(e,t);return}await Ys.mkdir(Tu.dirname(e),{recursive:!0});try{await Ys.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.",w.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 _t(e,t){let n=await At("history_append",{history_path:e,entry:t});if(n.handled&&await zu(e,t,n.result))return;let r=t.ts.trim().length>0?t:{...t,ts:sa(t)},o=vo({...r,hash_algorithm:We(r.hash_algorithm),event_class:lt(r)});await Ws(e,o,async()=>{await go(e,yo(o,o))}),await Mn(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 pt={metadata:{},body:""};function Hn(){return structuredClone(pt)}function mg(e,t=Ge,n){return bo(e,t,n)[0]}function bo(e,t,n){if(Object.keys(e.metadata).length===0||Array.isArray(e.metadata.tags))try{return ia(zn(e),t,n)}catch{}let r=Ce(N({replay_fallback:!0,metadata:e.metadata,body:e.body}),n);return t===2?[r,r]:[r]}function da(e,t,n,r,o){let i=We(r.hash_algorithm),s=`${n}:${i}`,a=o?.before.get(s)??bo(e,n,i),c=bo(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 zn(e){return{metadata:e.metadata,body:e.body}}function _g(e,t={}){return ne(zn(e),t)}function pg(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 aa(e){return e==="/front_matter"?"/metadata":e.startsWith("/front_matter/")?`/metadata/${e.slice(14)}`:e}function Uu(e){return typeof e=="object"&&e!==null&&typeof e.op=="string"&&typeof e.path=="string"}function la(e){return Array.isArray(e)?e.filter(Uu).map(t=>({...t,path:aa(t.path),from:typeof t.from=="string"?aa(t.from):void 0})):[]}function Bu(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 Xe(e,t){try{let n=la(t),r=Eo.applyPatch(structuredClone(e),n,!0,!0).newDocument;return Bu(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 Wu(e){return[...new Set(e.map(t=>t.item_hash_version).filter(t=>t!==void 0&&$t.includes(t)))]}function ua(e){return e!==void 0&&!$t.includes(e)}function Vu(e,t){return e!==void 0?[e]:t===void 0?[...$t]:[t]}function fa(e){let t=$n(e);if(!t.ok)return t.error;let n=wo(e);return n.ok?void 0:n.error}function qu(e,t){let n=fa(e);if(n)return{ok:!1,error:n};let r=Xe(t,e.patch);return r.ok?{ok:!0,document:r.document}:{ok:!1,error:"patch_apply_failed"}}function Gu(e,t){let n=fa(e);if(n)throw new TypeError(`${n}:entry_${t+1}`)}function Ku(e,t,n,r,o){let i=[];for(let s of n){let a=da(e,t,s,r,o);if(i.push({version:s,match:a}),a.pairIndex>=0)break}return i}function ma(e){let t=Hn(),n=new Map,r,o,i=Ps(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=ua(c);d&&i.push(`verify_failed:unsupported_item_hash_version:${String(c)}:entry_${s+1}`);let l=qu(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=Vu(c,o),m={before:n,after:new Map},p=Ku(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 ve(e){let t=ma(e);return{ok:t.ok,errors:t.errors}}function ca(e,t){try{return{ok:!0,document:Eo.applyPatch(structuredClone(e),[t],!0,!1).newDocument}}catch{return{ok:!1}}}function Xu(e,t){let n=structuredClone(e),r=0,o=0;for(let a of la(t)){let c=ca(n,a);if(c.ok){n=c.document;continue}if(a.op==="replace"){let d=ca(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 Yu(e){let t=Wu(e);if(t.length===1)return t[0];let n=ma(e);return n.ok&&n.item_hash_version!==void 0?n.item_hash_version:t.length===0?1:Ge}function Ju(e,t){let n=Xe(e,t.patch);if(n.ok)return{next:n.document,patch:t.patch,repaired:!1,converted:0,skipped:0};let r=Xu(e,t.patch);return{next:r.document,patch:Eo.compare(e,r.document),repaired:!0,converted:r.convertedReplaceToAdd,skipped:r.skippedOps}}function hg(e,t=Yu(e),n={}){let r=e.findIndex(p=>ua(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=Hn(),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];Gu(_,p);let g=Ju(o,_),{next:h,patch:I,repaired:R,converted:D,skipped:$}=g;d+=D,l+=$,c+=Number(R);let x=da(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(we=>we>=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=na(_,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 yg(e){return e.length===0?"":`${e.map(t=>JSON.stringify(t)).join(`
|
|
71
|
-
`)}
|
|
72
|
-
`}import Qu from"node:crypto";import Un 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 pa(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 Ht(e){let t=e.trim().toLowerCase();return t.startsWith("#")&&(t=t.slice(1)),t}function Ye(e,t){let n=pa(t),r=Ht(e);return r.startsWith(n)?r:`${n}${r}`}function Zu(e){let t=qi(e);if(t!==void 0)return t;let n="";for(let r=0;r<e;r+=1)n+=Qu.randomInt(0,36).toString(36);return n}async function ef(e,t,n){let r=[...new Set(Object.values(n))].flatMap(o=>[Un.join(e,o,`${t}.md`),Un.join(e,o,`${t}.toon`)]);return r.push(Un.join(e,"history",`${t}.jsonl`)),(await Promise.all(r.map(o=>je(o)))).some(Boolean)}var _a=4,ha=12;function tf(e){return typeof e!="number"||!Number.isFinite(e)?_a:Math.min(ha,Math.max(_a,Math.trunc(e)))}async function Ig(e,t,n={}){let r=tf(n.tokenLength),o=Math.min(r+6,ha),i=0;for(;r<=o;){for(let s=0;s<32;s+=1){let a=`${pa(t)}${Zu(r)}`;if(!await(n.probeExisting===!1?je(Un.join(e,"history",`${a}.jsonl`)):ef(e,a,n.typeToFolder??Pe)))return a;i+=1}r+=1}throw new Error(`Unable to generate unique id after ${i} attempts`)}import Ea from"node:fs/promises";import zt from"node:path";import{isUtf8 as of}from"node:buffer";import nf from"node:fs/promises";import ht 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 yt="_workspace";function Bn(e){return ht.join(e,"history",`${yt}.jsonl`)}function rf(e,t){return{metadata:{id:yt,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 Wn(e,t=e.length){let n=Hn();for(let r of e.slice(0,t))n=Xe(n,r.patch).document;return zn(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 Vn(e){throw new v(`Workspace history verification failed: ${e.join(", ")}`,w.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 ya(e,t){let n=ht.resolve(t),r=ht.relative(e,n).replaceAll("\\","/");if(r.length===0||r===".."||r.startsWith("../")||ht.isAbsolute(r))throw new TypeError("Workspace history document path must stay inside the tracker root");return{documentPath:r,absolutePath:n}}async function jg(e){let t=await ge(Bn(e),yt),n=ve(t);n.ok||Vn(n.errors);let r=ko(t.length===0?Me:Wn(t)),o=[],i=[],s=[],a=[];for(let c of Object.keys(r).sort()){let d;try{let l=ya(e,ht.resolve(e,c));if(d=await Ee(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 ga(e){let t=Bn(e.pmRoot),n=await ge(t,yt),r=ve(n);r.ok||Vn(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=Ie(),s=n.length===0?Me:Wn(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.`,w.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=rf({...a,[e.documentPath]:e.after},n.length===0?i:s.metadata.created_at),l=mt({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 _t(t,l),{entry:l,historyPath:t}}async function Fg(e){let t=await V(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await ga(e)}finally{await t()}}async function va(e){let t=await V(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{let n=Bn(e.pmRoot),r=await ge(n,yt),o=ve(r);o.ok||Vn(o.errors);let i=r.length===0?Me:Wn(r),s=mt({nowIso:Ie(),author:e.author,op:e.op,before:i,after:i,message:e.message,context:e.context});return await _t(n,s),{entry:s,historyPath:n}}finally{await t()}}async function wa(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 ga({pmRoot:e.pmRoot,documentPath:ht.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 nf.rm(e.filePath,{force:!0}):await X(e.filePath,t),o}return!0}async function ba(e){let{documentPath:t}=ya(e.pmRoot,e.filePath),n=await V(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{let r=await Ee(e.filePath);if(e.dryRun===!0||e.idempotencyKey!==void 0){let i=await ge(Bn(e.pmRoot),yt),s=ve(i);s.ok||Vn(s.errors);let a=ko(i.length===0?Me:Wn(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.`,w.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 wa({...e,raw:o.raw},r),result:o.result}}finally{await n()}}async function $g(e){let t=await V(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await wa(e,await Ee(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 sf=1048576,af=4194304;async function ka(e,t){let n=zt.dirname(e);for(;n!==zt.parse(e).root;){let o=await Ea.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.",w.CONFLICT,{code:"workflow_policy_input_unreadable",nextSteps:["Restore the policy or approval history directory before retrying."]});break}n=zt.dirname(n)}let r=await Ea.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||!of(i.subarray(0,s)))throw new v("Workflow policy input exceeds its byte bound or is not valid UTF-8.",w.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 cf(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.",w.CONFLICT,{code:"workflow_policy_registry_invalid",nextSteps:["Restore valid policy JSON before retrying the mutation."]})}return $i(t)}async function df(e){return cf(await ka(zt.join(e,"schema","policies.json"),sf))}async function lf(e,t){let n=await ka(ue(e,t),af);if(n===null)return[];let r;try{if(r=n.split(/\r?\n/).filter(o=>o.trim()).map(o=>JSON.parse(o)),!ve(r).ok)throw new Error("invalid chain")}catch{throw new v("Approval evidence requires a valid item history chain.",w.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 uf(e,t,n){let r=n.before?.status!==n.after?.status&&t.policies.some(s=>s.rule.kind==="approval"&&Hi(s,n)),o=n.before?.id??n.after?.id,i=r&&typeof o=="string"?await lf(e,o):[];return zi(t,{...n,approvals:i})}async function Io(e){let t=await df(e.pmRoot),n=await uf(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 va({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.",w.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=Oi("update",l);return f===void 0?`Supply ${l} using its declared SDK or package mutation contract, then retry.`:$e(["update",c,xi("update",f),`<${l}>`,"--pm-path",zt.resolve(e.pmRoot)])});throw new v(`Workflow policy refused ${e.operation}: ${s}${a}.${i.length?` Missing: ${i.join(", ")}.`:""}`,w.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 ff}from"node:async_hooks";import{channel as mf}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 ff,To=mf("@unbrained/pm-cli/item-metadata-enumeration/v1");function qn(e){To.publish(e)}async function nv(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 Je from"node:fs/promises";import Sa from"node:path";import{randomUUID as _f}from"node:crypto";import{createRequire as pf}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 hf="metadata-query-index.sqlite",Ut="5";function yf(e){try{return e(["node","sqlite"].join(":")).DatabaseSync??null}catch{return null}}var Gn;function gf(e,t){let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>=22?yf(t):null}function Bt(){return Gn!==void 0||(Gn=gf(process.versions.node,pf(import.meta.url))),Gn}function Ia(e,t){return Math.max(0,Math.floor(e===void 0?t:e))}function gt(e){return Sa.join(e,"runtime",hf)}function vf(e){e.exec(`
|
|
73
|
-
PRAGMA foreign_keys = ON;
|
|
74
|
-
PRAGMA journal_mode = OFF;
|
|
75
|
-
PRAGMA synchronous = OFF;
|
|
76
|
-
CREATE TABLE metadata (
|
|
77
|
-
key TEXT PRIMARY KEY,
|
|
78
|
-
value TEXT NOT NULL
|
|
79
|
-
) STRICT;
|
|
80
|
-
CREATE TABLE items (
|
|
81
|
-
id TEXT PRIMARY KEY,
|
|
82
|
-
relative_path TEXT NOT NULL UNIQUE,
|
|
83
|
-
metadata_json TEXT NOT NULL,
|
|
84
|
-
status TEXT NOT NULL,
|
|
85
|
-
type TEXT NOT NULL,
|
|
86
|
-
priority INTEGER NOT NULL,
|
|
87
|
-
updated_at TEXT NOT NULL,
|
|
88
|
-
created_at TEXT NOT NULL,
|
|
89
|
-
parent TEXT,
|
|
90
|
-
assignee TEXT,
|
|
91
|
-
sprint TEXT,
|
|
92
|
-
release TEXT
|
|
93
|
-
) STRICT;
|
|
94
|
-
CREATE INDEX items_default_order
|
|
95
|
-
ON items(priority, updated_at DESC, id);
|
|
96
|
-
CREATE INDEX items_status_default_order
|
|
97
|
-
ON items(status, priority, updated_at DESC, id);
|
|
98
|
-
CREATE INDEX items_type_default_order
|
|
99
|
-
ON items(type, priority, updated_at DESC, id);
|
|
100
|
-
CREATE INDEX items_parent_default_order
|
|
101
|
-
ON items(parent, priority, updated_at DESC, id);
|
|
102
|
-
CREATE TABLE item_metadata_keys (
|
|
103
|
-
item_id TEXT NOT NULL,
|
|
104
|
-
key TEXT NOT NULL,
|
|
105
|
-
PRIMARY KEY(item_id, key),
|
|
106
|
-
FOREIGN KEY(item_id) REFERENCES items(id) ON DELETE CASCADE
|
|
107
|
-
) STRICT;
|
|
108
|
-
CREATE INDEX item_metadata_keys_key_item
|
|
109
|
-
ON item_metadata_keys(key, item_id);
|
|
110
|
-
CREATE TABLE item_linked_files (
|
|
111
|
-
item_id TEXT NOT NULL,
|
|
112
|
-
path TEXT NOT NULL,
|
|
113
|
-
scope TEXT NOT NULL,
|
|
114
|
-
note TEXT,
|
|
115
|
-
PRIMARY KEY(item_id, path, scope),
|
|
116
|
-
FOREIGN KEY(item_id) REFERENCES items(id) ON DELETE CASCADE
|
|
117
|
-
) STRICT;
|
|
118
|
-
CREATE INDEX item_linked_files_path_scope_item
|
|
119
|
-
ON item_linked_files(path, scope, item_id);
|
|
120
|
-
CREATE VIRTUAL TABLE item_search USING fts5(
|
|
121
|
-
id UNINDEXED,
|
|
122
|
-
title,
|
|
123
|
-
description,
|
|
124
|
-
tags,
|
|
125
|
-
tokenize = 'unicode61'
|
|
126
|
-
);
|
|
127
|
-
`)}function Xn(e,t,n){e.prepare("INSERT INTO metadata(key, value) VALUES (?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value").run(t,n)}function Ta(e,t){let n=t.metadata;e.prepare(`INSERT INTO items(
|
|
128
|
-
id, relative_path, metadata_json, status, type, priority,
|
|
129
|
-
updated_at, created_at, parent, assignee, sprint, release
|
|
130
|
-
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
131
|
-
ON CONFLICT(id) DO UPDATE SET
|
|
132
|
-
relative_path = excluded.relative_path,
|
|
133
|
-
metadata_json = excluded.metadata_json,
|
|
134
|
-
status = excluded.status,
|
|
135
|
-
type = excluded.type,
|
|
136
|
-
priority = excluded.priority,
|
|
137
|
-
updated_at = excluded.updated_at,
|
|
138
|
-
created_at = excluded.created_at,
|
|
139
|
-
parent = excluded.parent,
|
|
140
|
-
assignee = excluded.assignee,
|
|
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 Ca(e){let t=gt(e.pmRoot),n=Bt();if(!n){await Je.rm(t,{force:!0});return}await Je.mkdir(Sa.dirname(t),{recursive:!0});let r=`${t}.${_f()}.tmp`,o;try{o=new n(r),vf(o),o.exec("BEGIN IMMEDIATE"),Xn(o,"version",Ut),Xn(o,"context_fingerprint",e.contextFingerprint),Xn(o,"source_cursor",e.sourceCursor);for(let i of e.rows)Ta(o,i);o.exec("COMMIT"),o.close(),o=void 0,await Je.rm(t,{force:!0}),await Je.rename(r,t)}catch(i){throw o?.close(),await Promise.allSettled([Je.rm(r,{force:!0})]),i}}function Yn(e){return Object.fromEntries(e.prepare("SELECT key, value FROM metadata").all().map(t=>[String(t.key),String(t.value)]))}async function Oa(e){let t=Bt();if(!t)return!1;let n=gt(e.pmRoot),r;try{await Je.access(n),r=new t(n),r.exec("PRAGMA foreign_keys = ON");let o=Yn(r);if(o.version!==Ut||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&&Ta(r,e.row),Xn(r,"source_cursor",e.sourceCursor),r.exec("COMMIT"),r.close(),!0}catch{try{r?.exec("ROLLBACK")}catch{}return r?.close(),!1}}function Kn(e,t,n,r,o){!r||r.length===0||(e.push(`${n} ${o} (${r.map(()=>"?").join(", ")})`),t.push(...r))}function wf(e){let t=[],n=[];Kn(t,n,"status",e.statuses,"IN"),Kn(t,n,"status",e.excludeStatuses,"NOT IN"),Kn(t,n,"type",e.types,"IN"),Kn(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 cv(e){let t=Bt();if(!t)return null;let n=e.query??{},{where:r,parameters:o}=wf(n),i;try{i=new t(gt(e.pmRoot),{readOnly:!0});let s=Yn(i);if(s.version!==Ut||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 dv(e){let t=Bt();if(!t||e.paths.length===0)return null;let n;try{n=new t(gt(e.pmRoot),{readOnly:!0});let r=Yn(n);if(r.version!==Ut||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
|
-
FROM item_linked_files
|
|
145
|
-
WHERE ${a}`).get(...s),d=Ia(e.limit,50),l=Ia(e.offset,0),f=n.prepare(`SELECT items.id, items.metadata_json
|
|
146
|
-
FROM items
|
|
147
|
-
WHERE EXISTS (
|
|
148
|
-
SELECT 1 FROM item_linked_files
|
|
149
|
-
WHERE item_linked_files.item_id = items.id AND ${a}
|
|
150
|
-
)
|
|
151
|
-
ORDER BY items.priority ASC, items.updated_at DESC, items.id ASC
|
|
152
|
-
LIMIT ? OFFSET ?`).all(...s,d,l),m=[];if(f.length>0){let p=f.map(h=>String(h.id)),_=n.prepare(`SELECT item_id, path, scope, note
|
|
153
|
-
FROM item_linked_files
|
|
154
|
-
WHERE item_id IN (${p.map(()=>"?").join(", ")})
|
|
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 lv(e){let t=Bt();if(!t)return null;let n;try{n=new t(gt(e.pmRoot),{readOnly:!0});let r=Yn(n);if(r.version!==Ut||r.source_cursor!==e.expectedSourceCursor)return n.close(),null;let i=n.prepare(`SELECT items.metadata_json
|
|
157
|
-
FROM item_search
|
|
158
|
-
JOIN items ON items.id = item_search.id
|
|
159
|
-
WHERE item_search MATCH ?
|
|
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 Jn(e){await Je.rm(gt(e),{force:!0})}import B from"node:fs/promises";import M from"node:path";import{createHash as bf,randomUUID as Na}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,La=500,Ef="metadata-derived-index",kf="metadata-cache.json",If="metadata-cache-bodies.json",Sf="metadata-cache-collections.json",Tf="metadata-cache-delta.json",Cf="metadata-cache-manifest.json",xa=4,Of=["comments","notes","learnings","files","tests","test_runs","docs"];function Pa(){return an(fe())}function Zn(e){let t={...e},n={};for(let r of Of)r in t&&(n[r]=t[r],delete t[r]);return{light:t,heavy:n}}function Ma(e,t){return!t||Object.keys(t).length===0?e:{...e,...t}}function ja(e,t,n,r){let o=bf("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 er(e){return M.join(e,"runtime",kf)}function tr(e){return M.join(e,"runtime",If)}function nr(e){return M.join(e,"runtime",Sf)}function Oo(e){return M.join(e,"runtime",Tf)}function xo(e){return M.join(e,"runtime",Cf)}function rr(e,t){let n=M.extname(e);return`${e.slice(0,-n.length)}.${t}${n}`}var xf=24,Z=new Map,or=new WeakMap;function Ro(e){return or.get(e)??e.source_cursor}function Rf(e,t){let n=Ro(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){or.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 Af(e,t){if(!e)return;let n=Ro(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){or.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 Df(e,t){if(!e)return;let n=Ro(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){or.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 Nf(e,t,n,r){!e||!r||e.context_fingerprint!==r.context_fingerprint||(Rf(e,r),Af(t,r),Df(n,r))}function Co(e,t){Z.size>=xf&&!Z.has(e)&&Ni(Z),Z.set(e,t)}async function Re(e,t){let n;try{n=await B.stat(e)}catch{return Z.delete(e),null}let r=Z.get(e);if(r&&Wt(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 Lf(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=er(e),i=await Re(o,r);if(!t||i===null||i.context_fingerprint===t)return i;let s=await Re(rr(o,t),r);return s===null&&Gt(n,`metadata_cache_context_changed:${i.context_fingerprint}->${t}`),s}async function Pf(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=tr(e),o=await Re(r,n);return t&&o?.context_fingerprint!==t?await Re(rr(r,t),n):o}async function Mf(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=nr(e),o=await Re(r,n);return t&&o?.context_fingerprint!==t?await Re(rr(r,t),n):o}async function Ao(e){let t=Oo(e),n=await Re(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 Re(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 vt(e)}catch{}return null}async function Vt(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===er(n)||e===tr(n)||e===nr(n)){let r=rr(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>xa){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-xa)))await B.rm(d.path,{force:!0}),Z.delete(d.path)}}}function jf(e,t,n){return n?t===n&&e!==n:t==="toon"&&e!=="toon"}function Fa(e,t,n){return e===void 0||jf(e,t,n)}function Gt(e,t){e&&!e.includes(t)&&e.push(t)}function Wt(e,t,n,r){return e.mtime_ms===t&&e.ctime_ms===n&&e.size===r}async function Ff(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)&&Gt(n,`item_list_directory_read_failed:${t}`),{folder:t,dirPath:r,files:[]}}}async function $f(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 Qn(e,t){return Object.fromEntries(await Promise.all(t.map(async n=>await $f(e,n))))}function qt(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&&Wt(o,r.mtime_ms,r.ctime_ms,r.size)})}function Hf(e){return dn.some(t=>e.toLowerCase().endsWith(t))}function zf(e,t,n,r,o,i){r||(e.metadata=!0),t&&!o&&(e.body=!0),n&&!i&&(e.collections=!0)}async function Uf(e,t,n){if(n)for(let r of await ke({path:e,scope:"project"}))Gt(t,r)}function Ra(e,t,n,r){if(e)return t&&n?n.collections:r}async function Bf(e,t,n){let r=await B.stat(e),o=r.mtimeMs,i=r.ctimeMs,{size:s}=r,a=Ir(e);await Uf(e,n.warnings,n.dispatchReadHooks);let c=n.previousEntries[t],d=!n.forceSourceRead&&c!==void 0&&Wt(c,o,i,s),l=n.previousBodies[t],f=!n.forceSourceRead&&l!==void 0&&Wt(l,o,i,s),m=n.previousCollections[t],p=!n.forceSourceRead&&m!==void 0&&Wt(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:Ra(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=Tn(g,{format:a,schema:n.schema,extensionFieldNames:n.extensionFieldNames,onWarning:R=>Gt(n.warnings,R)}),I=Zn(h.metadata);return zf(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:Ra(n.includeCollections,p,m,I.heavy),bodyLength:d?c.body_length:h.body.length,body:n.includeBody?h.body:void 0}}function Wf(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?Ma(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};Fa(i?.itemFormat,r.itemFormat,n.preferredFormat)&&n.state.documentsById.set(o.id,{candidate:s,itemFormat:r.itemFormat})}async function Vf(e,t,n,r){try{let o=await Bf(t,n,r);Wf(t,n,r,o)}catch{Gt(r.warnings,`item_list_item_read_failed:${e}/${M.basename(t)}`)}}function qf(e,t){return e&&e.context_fingerprint===t?e.entries:{}}function Gf(e,t){return e&&e.context_fingerprint===t?e.bodies:{}}function Kf(e,t){return e&&e.context_fingerprint===t?e.collections:{}}function Xf(){return{newEntries:{},newBodies:{},newCollections:{},documentsById:new Map,misses:{metadata:!1,body:!1,collections:!1}}}async function Yf(e,t){let n=[];for(let{folder:r,dirPath:o,files:i}of e)for(let s of i){if(!Hf(s))continue;let a=M.join(o,s),c=M.relative(t.pmRoot,a);n.push(Vf(r,a,c,t)),n.length===32&&(await Promise.all(n),n.length=0)}await Promise.all(n)}async function Jf(e){if(!(!(e.state.misses.metadata||Object.keys(e.previousEntries).length!==Object.keys(e.state.newEntries).length||!qt(e.existingCache?.directory_signatures,e.directorySignatures))&&e.existingCache!==null&&e.existingCache.context_fingerprint===e.contextFingerprint))try{await Vt(er(e.pmRoot),{version:ae,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,directory_signatures:e.directorySignatures,entries:e.state.newEntries}),await Vt(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:Zn(r.metadata).light,linkedFiles:r.metadata.files??[]}));n.length>=e.minimumIndexedItems?await Ca({pmRoot:e.pmRoot,contextFingerprint:e.contextFingerprint,sourceCursor:e.sourceCursor,rows:n}):await Jn(e.pmRoot)}catch{}}async function Qf(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 Vt(tr(e.pmRoot),{version:ae,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,bodies:e.state.newBodies}).catch(()=>{})}async function Zf(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 Vt(nr(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<La)?async()=>{}:V(e,Ef,30,t,!1,!1,3e3)}async function kv(e,t){let n=await Do(e);if(n===null)return null;let r=await Ao(e);if(r.invalid)return await vt(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&&!qt(i,await Qn(e,t))?null:{source_cursor:o,entry_count:n.entry_count}}function Aa(e,t){let n=M.relative(e,t);return n===""||n===".."||n.startsWith(`..${M.sep}`)||M.isAbsolute(n)?null:n}async function vt(e){await Promise.all([er(e),tr(e),nr(e),Oo(e),xo(e)].map(async t=>{await B.rm(t,{force:!0}),Z.delete(t)})),await Jn(e)}async function em(e){if(e.mutation.document===null)return{entry:null,body:null,collections:null};let t=await B.stat(e.mutation.itemPath),n=Zn(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 tm(e,t,n){return e?.context_fingerprint===t&&e.base_source_cursor===n?structuredClone(e.changes):{}}async function Lo(e){let t=Aa(e.pmRoot,e.itemPath),n=e.previousItemPath?Aa(e.pmRoot,e.previousItemPath):void 0;if(t===null||n===null)return await vt(e.pmRoot),["metadata_derived_index_path_invalidated"];try{let r=ja(e.preferredFormat,e.typeToFolder,e.schema,Pa()),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 vt(e.pmRoot),["metadata_derived_index_refresh_failed"];let a=tm(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 em({mutation:e});let d=Na();return await Vt(Oo(e.pmRoot),{version:ae,context_fingerprint:r,base_source_cursor:i,source_cursor:d,directory_signatures:await Qn(e.pmRoot,[...new Set(Object.values(e.typeToFolder))]),changes:a}),await Oa({pmRoot:e.pmRoot,contextFingerprint:r,expectedSourceCursor:c,sourceCursor:d,row:e.document===null?null:{relativePath:t,metadata:Zn(e.document.metadata).light,linkedFiles:e.document.metadata.files},deletedRelativePaths:[...n===void 0?[]:[n],...e.document===null?[t]:[]]})||await Jn(e.pmRoot),[]}catch{return await vt(e.pmRoot).catch(()=>{}),["metadata_derived_index_refresh_failed"]}}function nm(e){return[...e.documentsById.values()].sort((t,n)=>t.candidate.metadata.id.localeCompare(n.candidate.metadata.id)).map(t=>t.candidate)}function Da(e,t,n){return e?.context_fingerprint===t&&e.source_cursor===n}function rm(e,t,n,r,o){return e.every(i=>(!t||r[i]!==void 0)&&(!n||o[i]!==void 0))}function om(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?Ma(r.metadata,e.previousCollections[n]?.collections):r.metadata,s=t.get(i.id);Fa(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 im(e){return e.forceSourceScan||Cr()||e.existingCache?.context_fingerprint!==e.contextFingerprint||e.entryKeys.length<e.minimumIndexedItems||!qt(e.existingCache?.directory_signatures,e.directorySignatures)?!1:[!e.includeBody||Da(e.existingBodyCache,e.contextFingerprint,e.existingCache.source_cursor),!e.includeCollections||Da(e.existingCollectionsCache,e.contextFingerprint,e.existingCache.source_cursor)].every(Boolean)&&rm(e.entryKeys,e.includeBody,e.includeCollections,e.previousBodies,e.previousCollections)}async function ir(e,t,n,r,o,i={}){let s=i.includeBody!==!1,a=i.includeCollections!==!1,c=Pa(),d=ja(t,n,o,c),l=await Ao(e);l.invalid&&await vt(e);let f=await Lf(e,d,i.cacheDiagnostics),m=s?await Pf(e,d):null,p=a?await Mf(e,d):null;Nf(f,m,p,l.envelope);let _=qf(f,d),g=Gf(m,d),h=Kf(p,d),I=[...new Set(Object.values(n))],R=await Qn(e,I),D=Object.keys(_),$=Math.max(1,Math.floor(i.derivedIndexMinimumItems??La));if(im({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 om({pmRoot:e,preferredFormat:t,includeBody:s,includeCollections:a,previousEntries:_,previousBodies:g,previousCollections:h});let x=await Promise.all(I.map(Ct=>Ff(e,Ct,r))),G=Cr(),W=Xf(),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 Yf(x,Q);let K=await Qn(e,I),ee=qt(R,K)?K:{},Ze=W.misses.metadata||Object.keys(_).length!==Object.keys(W.newEntries).length||!qt(f?.directory_signatures,ee)||f===null?Na():f.source_cursor;return await Jf({pmRoot:e,contextFingerprint:d,sourceCursor:Ze,existingCache:f,previousEntries:_,directorySignatures:ee,state:W,minimumIndexedItems:$}),s&&await Qf({pmRoot:e,contextFingerprint:d,sourceCursor:Ze,existingBodyCache:m,previousBodies:g,state:W}),a&&await Zf({pmRoot:e,contextFingerprint:d,sourceCursor:Ze,existingCollectionsCache:p,previousCollections:h,state:W}),nm(W)}async function $a(e,t,n,r,o){return(await ir(e,t,n,r,o,{includeBody:!1})).map(s=>({metadata:s.metadata,body:s.body??""}))}async function Ha(e,t,n,r,o){return(await ir(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:Ri(e,t))?.execution_role??Ci[e.trim().toLowerCase()]??"agent"}var jo="blocked_by",za="blocks",sm=Object.freeze([jo,za]),Po="no-active-blocker";function F(e){return e.trim().toLowerCase()}function sr(e,t){return t?`external:${e}`:`local:${F(e)}`}function Kt(e){let t=new Map,n=typeof e.blocked_by=="string"?e.blocked_by.trim():"";if(n.length>0&&F(n)!==Po){let r=he(n);t.set(sr(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=he(o)||ie(r.source_kind);t.set(sr(o,i),i?o:F(o))}}return[...t.values()].sort((r,o)=>r.localeCompare(o))}function ar(e){let t=new Map;for(let n of e){let r=F(n.id);r.length!==0&&t.set(r,new Set(Kt(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===za&&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 Ua(e,t){let n=F(e.id);return n.length>0?ar(t).get(n)??Kt(e):Kt(e)}function Fo(e,t,n,r){let o=e,i=typeof o.id=="string"?r?.get(F(o.id))??Ua(o,[...t.values()]):Kt(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=>sr(a.id.trim(),!0)));return i.map(a=>{if(he(a)||s.has(sr(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:ye(c.status,n)}:{id:a,title:null,status:null,resolved:!1}})}function am(e,t,n){return Fo(e,t,n)}function cm(e,t){let n=new Map(e.map(s=>[F(s.id),s])),r=ar(e),o=new Set([...Ba(t),...t.blocked_statuses]),i=new Set;for(let s of e){let a=st(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 dm(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(st(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 Ba(e){return e.active_statuses.size>0?e.active_statuses:new Set([e.open_status])}function lm(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(!ye(s.status,n))return!0;r.push(F(s.id))}}}return!1}function um(e){let t=new Map,n=new Map,r=new Map,o=ar(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 fm(e,t,n,r){let{itemsById:o,childrenByParent:i,blockedByReverse:s,blockerIdsByItem:a}=um(t),c=new Set([...Ba(n),...n.blocked_statuses]),d=new Set(t.filter(h=>!ye(h.status,n)).map(h=>F(h.id))),l=[],f=[],m=[],p=[],_=[],g=0;for(let h of e){if(!c.has(st(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(lm(h.id,i,n)){m.push(D);continue}let $=n.blocked_statuses.has(st(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=le();for(let t of fe()?.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 Xt(e){if(typeof e!="string")return;let t=e.trim().toLowerCase();return t.length>0?t:void 0}function cr(e){return[e.parent_id,e.child_id,e.source,e.kind,e.holder_id,e.target_id??""].join("\0")}function mm(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 _m(e,t){let n=[...e].sort(),r=mm(n,t),o=new Set,i=pm(n,t),s=[];for(let a of r.reverse()){if(o.has(a))continue;let c=hm(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 pm(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 hm(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 Wa(e){let t=new Map;for(let n of e){let r=Xt(n?.id);r&&!t.has(r)&&t.set(r,n)}return t}function ym(e,t,n){let r=Xt(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 gm(e,t,n,r){let o=Xt(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 Va(e,t){let n=new Map;for(let[r,o]of e){let i=ym(r,o,e);i&&n.set(cr(i),i);for(let s of o.dependencies??[]){let a=gm(r,s,e,t);a&&n.set(cr(a),a)}}return[...n.values()].sort((r,o)=>cr(r).localeCompare(cr(o)))}function jv(e,t=ce()){return Va(Wa(e),t)}function vm(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 wm(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=Xt(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 dr(e,t=r=>r==="closed"||r==="canceled",n=ce()){let r=Wa(e),o=Va(r,n),i=bm(o),s=new Set([...r].filter(([,c])=>t(c.status)).map(([c])=>c)),a=_m([...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:vm(o,i.parents_by_child,s),divergences:wm(r,o,s)}}function Fv(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 bm(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 $v(e,t,n,r,o){let i=Xt(n);if(!i)return;let s=dr(e,r,o),a=dr(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(", ")}.`,w.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(", ")}.`,w.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(" -> ")}.`,w.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 Em="global";function Wv(e){let t=e?.trim();if(t)return ie(t)?Em:t}function Vv(e,t,n){return km(e,t,n)}function km(e,t,n){let r=e.trim();return ie(n)||he(r)?r:Ye(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 bt(e){if(typeof e!="string")return;let t=e.trim();if(!(!t||["none","null","n/a","na"].includes(t.toLowerCase())))return t}function Yt(e){let t=bt(e);return t?.toLowerCase()==="no-active-blocker"?void 0:t}function Jt(e,t,n=!0){let r=bt(e);return n&&(ie(t)||r!==void 0&&he(r))}function Ho(e,t){return Jt(e,t)?`external\0${e}`:`local\0${e.toLowerCase()}`}function qa(e,t,n,r){return Jt(e,t)?r.get(e):n.get(e.toLowerCase())}function wt(e,t){let n=e.toLowerCase(),r=t.toLowerCase();return n!==r?n<r?-1:1:e!==t?e<t?-1:1:0}function Im(e){let t=new Map;for(let n of e.dependencies??[]){if(typeof n!="object"||n===null)continue;let r=n,o=bt(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 Sm(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 Im(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=wt(r.holder_id,o.holder_id);if(i!==0)return i;let s=wt(r.target_id,o.target_id);return s!==0?s:wt(r.kind,o.kind)})}function Tm(e,t,n,r,o){if(typeof n!="object"||n===null)return;let i=bt(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 Cm(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=bt(o.blocked_by);if(i)for(let s of o.dependencies??[]){let a=Tm(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=wt(o.holder_id,i.holder_id);if(s!==0)return s;let a=wt(o.target_id,i.target_id);return a!==0?a:wt(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=bt(d);if(!p||r.has(p.toLowerCase())||Jt(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 Om(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 xm(e){let t=new Map;for(let n of e){let r=Yt(n.blocked_by);r&&Jt(r)&&!t.has(r)&&t.set(r,r);for(let o of n.dependencies??[]){if(typeof o!="object"||o===null||!Jt(o.id,o.source_kind))continue;let i=Yt(o.id);i&&!t.has(i)&&t.set(i,i)}}return[...t.values()].sort((n,r)=>n.localeCompare(r))}var Ga=new WeakMap;function Qv(e){return e.hierarchyIntegrity??Ga.get(e)}function Rm(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 lr(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=Om(s);for(let _ of a)i.set(_.toLowerCase(),_);let c=xm(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=Yt(_.parent),h=Yt(_.blocked_by),I=(_.dependencies??[]).flatMap(R=>{if(typeof R!="object"||R===null)return[];let D=R,$=Yt(D.id);return $?[{id:qa($,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:qa(h,void 0,i,l)}:{},dependencies:I}}),m=dr(o,t,r),p={graph:bi.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:Sm(o,t),orderingContradictions:Cm(o,t,r),legacyAliasCounts:Rm(o,r),hierarchyIntegrity:m};return Ga.set(p,m),p}import{createHash as Am}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 Dm=64,Nm=8;function Lm(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 Xa(e,t=r=>r==="closed"||r==="canceled",n=le()){let r=e.filter(i=>typeof i?.id=="string"&&i.id.trim().length>0).map(i=>Lm(i,t)).sort(),o=n.list().map(i=>N(i)).sort();return Am("sha256").update(r.join("")).update("").update(o.join("")).digest("hex")}function Ka(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=Ka("maxResultsPerWorkspace",t.maxResultsPerWorkspace,Dm),this.#n=Ka("maxWorkspaces",t.maxWorkspaces,Nm)}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()}},Ya=new Uo;function Ja(){return Ya}function rw(){Ya.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 Pm=["prerequisite","dependent","ancestor","descendant","provenance","related"],Mm=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 ur(e){return Math.max(1,Math.ceil(Mm.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 jm(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 Fm(e){return Pm.find(t=>e.includes(t))}function $m(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 Hm(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 zm(e){let t=[],n=e.initialTokens;for(let r of e.candidates){if(t.length>=e.nodeLimit)break;let o=r.distance===1?jm(e.rootEdges,e.rootId,r.id,e.registry):[],i={...e.details.get(r.id)??{id:r.id},distance:r.distance,role:o.length>0?Fm(o):r.role,via:r.via,reasons:o.length>0?o:[`${r.role} via ${r.via} (depth ${r.distance})`]},s=ur(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 Um(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=ur(i);if(o+s>e.tokenBudget)break;r.push(i),o+=s}return{edges:r,usedTokens:o,candidateCount:n.length}}function Qa(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??le(),c=new Map(n.map(et=>[et.id,et])),d=c.get(t)??{id:t},{evidence:l=[],...f}=d,m=[...l],p=$m(e,t,a,r),{rootEdges:_,...g}=Hm(e,t,a,r),h=Bi("relationship-context",{rootId:t,direction:r.direction??"both",kinds:[...r.kinds??[]].sort(),maxDepth:r.maxDepth??3}),I=Vi(p.rows,r.cursor,h,({id:et})=>et),R=p.rows.slice(I),D=ur(f)+ur(m);if(D>s)throw new TypeError("Relationship context tokenBudget cannot fit root and evidence");let $=zm({candidates:R,details:c,rootEdges:_,rootId:t,registry:a,nodeLimit:o,tokenBudget:s,initialTokens:D}),{nodes:x}=$,G=new Set([t,...x.map(({id:et})=>et)]),W=Um({graph:e,included:G,options:r,registry:a,edgeLimit:i,tokenBudget:s,initialTokens:$.usedTokens}),{edges:Q,usedTokens:K}=W,ee=I+x.length,we=ee<p.rows.length,Ze=x.at(-1),Ct=W.candidateCount-Q.length,mi=p.depthTruncated||we||Ct>0,zc={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:Ct,evidenceCount:m.length,hasMore:we};return{root:f,summary:zc,nodes:x,edges:Q,evidence:m,meta:{exact:!0,truncated:mi,completeness:mi?"truncated":"complete",nodeLimit:o,edgeLimit:i,tokenBudget:s,usedTokens:K,visitedNodes:p.visitedNodes,inspectedEdges:p.inspectedEdges,omittedNodes:p.rows.length-ee,omittedEdges:Ct,...we&&Ze?{nextCursor:Wi(h,Ze.id,ee-1)}:{}}}}import{AsyncLocalStorage as c_}from"node:async_hooks";import{lstat as d_,realpath as l_}from"node:fs/promises";import u_ 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]="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 b(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 fr(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 Bm=C({key:y,values:b(y),required:u(O),aliases:u(b(y)),description:u(y)}),Wm=C({command:A("create","update"),option:y,required:u(O),visible:u(O),enabled:u(O)}),Vm=C({name:y,description:u(y),default_status:u(y),execution_role:u(A("agent","human","gate")),folder:u(y),aliases:u(b(y)),required_create_fields:u(b(y)),required_create_repeatables:u(b(y)),options:u(b(Bm)),command_option_policies:u(b(Wm))}),qm=C({id:y,aliases:u(b(y)),roles:u(b(A(..._i))),description:u(y),order:u(L())}),Gm=C({key:y,metadata_key:u(y),front_matter_key:u(y),cli_flag:u(y),cli_aliases:u(b(y)),description:u(y),type:u(A(...pi)),commands:u(b(A(...hi))),repeatable:u(O),required:u(O),required_on_create:u(O),required_types:u(b(y)),allow_unset:u(O)}),Km=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]}},Xm=C({type:y,allowed_transitions:b(Km)}),Ym=u(C({version:u(L({int:!0})),files:u(C({types:u(y),statuses:u(y),fields:u(y),workflows:u(y)})),statuses:u(b(qm)),fields:u(b(Gm)),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(b(Xm)),unknown_field_policy:u(A(...yi))})),Jm=u(C({preset:u(A(...gi)),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}))})),Qm=C({name:y,disabled:u(O),require_trusted:u(O),require_provenance:u(O),sandbox_profile:u(A("none","restricted","strict")),allowed_capabilities:u(b(y)),blocked_capabilities:u(b(y)),allowed_surfaces:u(b(y)),blocked_surfaces:u(b(y)),allowed_commands:u(b(y)),blocked_commands:u(b(y)),allowed_actions:u(b(y)),blocked_actions:u(b(y)),allowed_services:u(b(y)),blocked_services:u(b(y))}),Vo=A("block","warn"),Zm=e=>typeof e=="string"?Vo(e):C({global:u(Vo),project:u(Vo)})(e),e_=u(C({mode:u(A("off","warn","enforce")),trust_mode:u(A("off","warn","enforce")),pm_max_version_exceeded_mode:u(Zm),require_provenance:u(O),trusted_extensions:u(b(y)),default_sandbox_profile:u(A("none","restricted","strict")),allowed_extensions:u(b(y)),blocked_extensions:u(b(y)),allowed_capabilities:u(b(y)),blocked_capabilities:u(b(y)),allowed_surfaces:u(b(y)),blocked_surfaces:u(b(y)),allowed_commands:u(b(y)),blocked_commands:u(b(y)),allowed_actions:u(b(y)),blocked_actions:u(b(y)),allowed_services:u(b(y)),blocked_services:u(b(y)),extension_overrides:u(b(Qm))})),Qe=qo(128),t_=C({harness:qo(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u),environment_keys:u(b(Qe,64)),model_environment_keys:u(b(Qe,64)),session_environment_keys:u(b(Qe,64)),provenance_environment_keys:u(fr(b(Qe,64))),provenance_resolvers:u(fr(A("ai_agent_version","claude_session_file"))),provenance_unavailable_dimensions:u(b(Qe,64)),argv_markers:u(b(Qe,64)),client_names:u(b(Qe,64))}),n_=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:fr(qo(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u))})),harness_signals:b(t_)})),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(b(y)),lifecycle_stale_blocker_reason_patterns:u(b(y)),lifecycle_closure_like_blocked_reason_patterns:u(b(y)),lifecycle_closure_like_resolution_patterns:u(b(y)),lifecycle_closure_like_actual_result_patterns:u(b(y)),estimate_defaults_by_type:u(fr(L({int:!0,positive:!0})))})),governance:Jm,workflow:u(C({definition_of_done:b(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(b(y))})),item_types:u(C({definitions:b(Vm)})),schema:Ym,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:b(y),disabled:b(y),policy:e_}),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(b(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 Go(e){let t=n_(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 mr(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Ko(e,t,n,r=[]){if(oe(e,t)&&(r.length>0||mr(n)))return n;if(oe(e,n)||oe(t,n))return t;if((e===void 0||mr(e))&&mr(t)&&mr(n)){let o=e??{},i=new Set([...Object.keys(o),...Object.keys(t),...Object.keys(n)]);return Object.fromEntries([...i].flatMap(s=>{let a=Ko(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.`,w.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 r_={Epic:2880,Feature:480,Story:480,Milestone:2880,Task:120,Issue:60,Bug:60,Chore:30,Decision:15,Plan:120},Za=120;function Xo(e){return typeof e=="number"&&Number.isFinite(e)&&e>0}function tc(e){let t=new Map;for(let[n,r]of Object.entries(e))t.set(n.toLowerCase(),r);return t}var o_=tc(r_),ec=new WeakMap;function i_(e){let t=ec.get(e);if(t)return t;let n=tc(e);return ec.set(e,n),n}function _w(e,t){let n=(e??"").trim().toLowerCase();if(n.length===0)return Za;if(t){let o=i_(t).get(n);if(Xo(o))return Math.floor(o)}let r=o_.get(n);return Xo(r)?Math.floor(r):Za}function Yo(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||!Xo(r)||(t[o]=Math.floor(r))}return t}import{stat as s_}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 _r=new Map;function nc(e){return[...new Set(e.map(t=>t.trim()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}async function a_(e){try{let t=await s_(e);return{path:e,mtime_ms:t.mtimeMs,size:t.size}}catch{return{path:e,mtime_ms:null,size:null}}}async function Ae(e){let t=nc(e),n=await Promise.all(t.map(r=>a_(r)));return n.sort((r,o)=>r.path.localeCompare(o.path)),n}function Qt(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 rc(e){return _r.get(e)}function pr(e,t){let n=nc(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));_r.set(e,{tracked_paths:n,signatures:r,value:t.value})}function De(e){if(e){_r.delete(e);return}_r.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]="c76842be-84d9-5495-bdf7-617d241e36ac")}catch{}})();var f_=new c_;function m_(e){let t=u_.resolve(e);return f_.getStore()?.some(([n,r])=>n.has(t)&&r())??!1}var __="settings:write",cc=Symbol("pm.settings.persist_source"),p_=128,h_=new Set(["off","advisory","strict"]);function oc(e){return structuredClone(wi[e])}function y_(e){return e==="minimal"||e==="default"||e==="strict"||e==="custom"?e:k.governance.preset}function ic(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 g_(e){return e.preset==="custom"?ic({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):ic({preset:e.preset},e)}function v_(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),h_.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 yr(e){let t=e.governance??{},n=y_(t.preset),r=v_(t);if(n==="custom"){let s=oc("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=oc(n),i=r.require_close_reason??o.require_close_reason;return{preset:n,...o,...r,require_close_reason:i}}function dc(){return structuredClone(k)}function lc(e){return e==="cache_only"||e==="semantic_configured"||e==="semantic_auto"?e:k.search.mutation_refresh_policy}function uc(e){return e==="auto"||e==="keyword"||e==="semantic"||e==="hybrid"?e:"auto"}function fc(e){return typeof e=="boolean"?e:k.search.query_expansion.enabled}function mc(e){return typeof e!="string"?k.search.query_expansion.provider:e.trim()}function _c(e){return typeof e=="boolean"?e:k.search.rerank.enabled}function pc(e){return typeof e!="string"?k.search.rerank.model:e.trim()}function hc(e){return typeof e=="number"&&Number.isFinite(e)&&Number.isInteger(e)&&e>0?e:k.search.rerank.top_k}function yc(e){if(typeof e!="string")return k.vector_store.collection_name;let n=e.trim().replaceAll(/[^a-zA-Z0-9_-]/g,"_").slice(0,p_);return n.length>0?n:k.vector_store.collection_name}function Jo(e){return{present:Array.isArray(e),values:Array.isArray(e)?structuredClone(e):[]}}function w_(e,t){let n=e.schema,r=Jo(n?.statuses),o=Jo(n?.fields),i=Jo(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:Et(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:Et(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 ni(e,t){Object.defineProperty(e,cc,{value:t,writable:!0,configurable:!0,enumerable:!1})}function gc(e){let t=e[cc];if(!(!t||typeof t!="object"))return t}function hr(e){let t=structuredClone(e.settings),n=gc(e.settings);return n&&ni(t,n),{settings:t,metadata:{has_explicit_item_format:e.metadata.has_explicit_item_format},warnings:[...e.warnings]}}function b_(e,t,n){let r=xt(t);return[n,Rt(e,r.files.types,Ot.types),Rt(e,r.files.statuses,Ot.statuses),Rt(e,r.files.fields,Ot.fields),Rt(e,r.files.workflows,Ot.workflows)]}async function E_(e,t,n){let r=await Ae(t);pr(e,{tracked_paths:t,signatures:r,value:hr(n)})}async function k_(e,t,n){try{await E_(e,t,n)}catch{De(e)}}function sc(e,t){return e.find(n=>n.path===t)}function I_(e,t,n){for(let r of n){let o=sc(e,r),i=sc(t,r);if(!o||!i||!Qt([o],[i]))return!1}return!0}async function Qo(e,t,n,r,o){try{let i=await Ae(t);if(!I_(r,i,o)){De(e);return}pr(e,{tracked_paths:t,signatures:i,value:hr(n)})}catch{De(e)}}function S_(e,t){let n=xt(e.schema),r=Et(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?Et(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 de(e){return{settings:dc(),metadata:{has_explicit_item_format:!1},warnings:e?[e]:[]}}function vc(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=e.item_format;return t==="toon"||t==="json_markdown"}function ei(e){return[...new Set((e??[]).map(t=>t.trim()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function wc(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:ei(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 T_(e){return e==="off"||e==="warn"||e==="enforce"?e:k.extensions.policy.mode}function C_(e){return e==="off"||e==="warn"||e==="enforce"?e:k.extensions.policy.trust_mode}function bc(e){return e==="none"||e==="restricted"||e==="strict"?e:k.extensions.policy.default_sandbox_profile}function O_(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=bc(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 x_(e){let t=new Map;for(let n of e??[]){let r=O_(n);r&&t.set(r.name,r)}return[...t.values()].sort((n,r)=>n.name.localeCompare(r.name))}function Zo(e){return e==="block"||e==="warn"?e:void 0}function R_(e){if(typeof e=="string")return Zo(e);if(typeof e=="object"&&e!==null&&!Array.isArray(e)){let t=Zo(e.global),n=Zo(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 Ec(e){let t=R_(e?.pm_max_version_exceeded_mode);return{mode:T_(e?.mode),trust_mode:C_(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:bc(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:x_(e?.extension_overrides??k.extensions.policy.extension_overrides)}}function kc(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 Ne(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 ti(e){return Array.isArray(e)?e:[]}function A_(e,t,n){return{...t.validation,...e.validation,parent_reference:n.parent_reference,metadata_profile:n.metadata_profile,metadata_required_fields:kc(e.validation?.metadata_required_fields),lifecycle_stale_blocker_reason_patterns:Ne(e.validation?.lifecycle_stale_blocker_reason_patterns??t.validation.lifecycle_stale_blocker_reason_patterns),lifecycle_closure_like_blocked_reason_patterns:Ne(e.validation?.lifecycle_closure_like_blocked_reason_patterns??t.validation.lifecycle_closure_like_blocked_reason_patterns),lifecycle_closure_like_resolution_patterns:Ne(e.validation?.lifecycle_closure_like_resolution_patterns??t.validation.lifecycle_closure_like_resolution_patterns),lifecycle_closure_like_actual_result_patterns:Ne(e.validation?.lifecycle_closure_like_actual_result_patterns??t.validation.lifecycle_closure_like_actual_result_patterns),estimate_defaults_by_type:Yo(e.validation?.estimate_defaults_by_type)}}function D_(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 N_(e,t){return{...t.search,...e.search,default_mode:uc(e.search?.default_mode),mutation_refresh_policy:lc(e.search?.mutation_refresh_policy),query_expansion:{...t.search.query_expansion,...e.search?.query_expansion,enabled:fc(e.search?.query_expansion?.enabled),provider:mc(e.search?.query_expansion?.provider)},rerank:{...t.search.rerank,...e.search?.rerank,enabled:_c(e.search?.rerank?.enabled),model:pc(e.search?.rerank?.model),top_k:hc(e.search?.rerank?.top_k)}}}function L_(e,t){return{adapter:e.vector_store.adapter??t.vector_store.adapter,collection_name:yc(e.vector_store.collection_name),qdrant:{...t.vector_store.qdrant,...e.vector_store.qdrant},lancedb:{...t.vector_store.lancedb,...e.vector_store.lancedb}}}function P_(e,t){return e.item_format==="json_markdown"?"toon":e.item_format??t.item_format}function M_(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 j_(e,t){return{openai:{...t.providers.openai,...e.providers.openai},ollama:{...t.providers.ollama,...e.providers.ollama}}}function Et(e){let t=(e??[]).map(r=>Ti(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 ri(e){let t=dc(),n=yr({governance:e.governance??{preset:"default"}});return{...t,...e,item_format:P_(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:A_(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:D_(e,t),agent_guidance:wc(e.agent_guidance??t.agent_guidance),item_types:{definitions:Et(e.item_types?.definitions)},schema:xt(e.schema??t.schema),context:M_(e,t),extensions:{enabled:[...e.extensions.enabled],disabled:[...e.extensions.disabled],policy:Ec(e.extensions.policy??t.extensions.policy)},search:N_(e,t),providers:j_(e,t),vector_store:L_(e,t)}}function F_(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=ti(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=ti(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 $_(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 H_(e,t){return{...e.validation,parent_reference:t.parent_reference,metadata_profile:t.metadata_profile,metadata_required_fields:kc(e.validation?.metadata_required_fields),lifecycle_stale_blocker_reason_patterns:Ne(e.validation?.lifecycle_stale_blocker_reason_patterns??k.validation.lifecycle_stale_blocker_reason_patterns),lifecycle_closure_like_blocked_reason_patterns:Ne(e.validation?.lifecycle_closure_like_blocked_reason_patterns??k.validation.lifecycle_closure_like_blocked_reason_patterns),lifecycle_closure_like_resolution_patterns:Ne(e.validation?.lifecycle_closure_like_resolution_patterns??k.validation.lifecycle_closure_like_resolution_patterns),lifecycle_closure_like_actual_result_patterns:Ne(e.validation?.lifecycle_closure_like_actual_result_patterns??k.validation.lifecycle_closure_like_actual_result_patterns),estimate_defaults_by_type:Yo(e.validation?.estimate_defaults_by_type)}}function z_(e){return{...k.search,...e.search,default_mode:uc(e.search?.default_mode),mutation_refresh_policy:lc(e.search?.mutation_refresh_policy),query_expansion:{...k.search.query_expansion,...e.search?.query_expansion,enabled:fc(e.search?.query_expansion?.enabled),provider:mc(e.search?.query_expansion?.provider)},rerank:{...k.search.rerank,...e.search?.rerank,enabled:_c(e.search?.rerank?.enabled),model:pc(e.search?.rerank?.model),top_k:hc(e.search?.rerank?.top_k)}}}function U_(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 B_(e){return{...e.vector_store,adapter:e.vector_store?.adapter??k.vector_store.adapter,collection_name:yc(e.vector_store?.collection_name),qdrant:{...e.vector_store?.qdrant},lancedb:{...e.vector_store?.lancedb}}}function W_(e,t,n,r){return{...e,item_format:"toon",validation:H_(e,t),governance:t,agent_guidance:wc(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:z_(e),context:U_(e),extensions:{enabled:ei(e.extensions?.enabled),disabled:ei(e.extensions?.disabled),policy:Ec(e.extensions?.policy)},vector_store:B_(e)}}function Ic(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:{};Ic(c,i,s),Object.keys(c).length>0?e[o]=c:delete e[o];continue}e[o]=structuredClone(s)}}}var oi=["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 ac(e,t){let n=$_(e),r=yr(n),o=xt(n.schema),i=S_(n,t),s=W_(n,r,o,i),a=T({...s,governance:g_(r)},oi);return F_(a),a}function V_(e,t={}){let n=ac(e,t.persist_source);if(t.persist_source){let r=ri(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=ac(r,t.persist_source),i=structuredClone(t.persist_source.source_settings);return Ic(i,o,n),`${JSON.stringify(T(i,oi),null,2)}
|
|
162
|
-
`}return`${JSON.stringify(n,null,2)}
|
|
163
|
-
`}async function q_(e){let t;try{t=await l_(e)}catch(a){if(Fe(a))return de();throw a}let n=tt(t),r;try{r=await d_(n)}catch(a){if(Fe(a))return de();throw a}if(!r.isFile())throw new TypeError(`Transaction preview requires regular files and directories: ${n}`);let o;try{o=await ki(n,`Transaction preview requires regular files and directories: ${n}`)}catch(a){if(Fe(a))return de();throw a}let i;try{i=JSON.parse(o)}catch{return de("settings_read_invalid_json")}let s=Go(i);return s.success?{settings:ri(s.data),metadata:{has_explicit_item_format:vc(i)},warnings:s.data.item_format==="json_markdown"?["settings_item_format_legacy_json_markdown_coerced_to_toon"]:[]}:de("settings_read_invalid_schema")}async function Sc(e){if(m_(e))return q_(e);let t=tt(e),n=[t];await ke({path:t,scope:"project"});let r=rc(e);if(r){let d=await Ae(r.tracked_paths);if(Qt(d,r.signatures))return hr(r.value)}let o=await Ae([t]),i;try{i=await Ee(t)}catch{return de("settings_read_fs_error")}if(i===null){let d=de();return await Qo(e,[t],d,o,[t]),d}let s=await Ae([t]);if(!Qt(o,s))return De(e),Sc(e);let a;try{a=JSON.parse(i)}catch{let d=de("settings_read_invalid_json");return await Qo(e,[t],d,s,[t]),d}let c=Go(a);if(!c.success){let d=de("settings_read_invalid_schema");return await Qo(e,[t],d,s,[t]),d}try{let d=ri(c.data),l=b_(e,d.schema,t);n=l;let f=await Ae(l),m=await Li(e,d.schema),p=await Pi(e,d.schema),_=await Ae(l),g={...d,item_types:{definitions:Et([...d.item_types.definitions,...ti(p.type_definitions_from_file)])},schema:p.schema};ni(g,w_(c.data,g));let h={settings:g,metadata:{has_explicit_item_format:vc(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?Qt(f,_)?pr(e,{tracked_paths:l,signatures:_,value:hr(h)}):De(e):De(e),h}catch{let d=de("settings_read_merge_failed");return await k_(e,n,d),d}}async function Tc(e){return(await Sc(e)).settings}async function Pw(e,t,n=__){let r=tt(e),o=gc(t),i=V_(t,{persist_source:o}),s=JSON.parse(i);try{await ba({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.",w.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(Ko(o.persisted_settings,s,c),oi),null,2)}
|
|
164
|
-
`:i,result:void 0}},op:n,author:ys(void 0,t.author_default),lockTtlSeconds:t.locks.ttl_seconds,lockWaitMs:t.locks.wait_ms,recordCreation:!1}),o&&ni(t,{...o,persisted_settings:structuredClone(s)}),await me({path:r,scope:"project",op:n})}finally{De(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 G_(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:en(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 Cc(e){return["pm",...e].map(t=>/^[A-Za-z0-9_./:@=-]+$/u.test(t)?t:JSON.stringify(t)).join(" ")}function Hw(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:G_(r,o),l=Cc([...i,r,...s]),f=e.retry_command??(d?Cc([...i,d,...s]):void 0);return new v(`Unknown ${a} ${c} "${r}". Allowed: ${o.join(", ")}${e.message_suffix??""}`,e.exit_code??w.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 K_ from"node:fs/promises";import X_ 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 Y_(e){return[...new Set(e.filter(t=>t.trim().length>0))].sort((t,n)=>t.localeCompare(n))}function J_(e,t){return new v(`Missing history stream for ${e}. ${t} requires history streams when settings.history.missing_stream is strict_error.`,w.NOT_FOUND)}async function Q_(e,t){return await Ei(X_.dirname(e)),await(await K_.open(e,"a")).close(),me({path:e,scope:"project",op:`${t}:history:auto_create`})}async function ii(e){return Z_({pmRoot:e.pmRoot,settings:e.settings,itemIds:[e.itemId],commandLabel:e.commandLabel})}async function Z_(e){let t=Y_(e.itemIds),n=[],r=[];for(let o of t){let i=ue(e.pmRoot,o);if(!await je(i)){if(e.settings.history.missing_stream==="strict_error")throw J_(o,e.commandLabel);r.push(...await Q_(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 Zt(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.",w.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 ep(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}.`,w.GENERIC_FAILURE);i<=t&&(n=o)}),n}function tp(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 np(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 Oc(e,t,n={}){let r=e.trim(),o=n.errorSubject??"history",i=o==="restore"?"Restore":"History",{guidance:s,lastTimestamp:a}=tp(t,Zt(t,!0));if(!r)throw new v(`Missing ${o} target. Use a timestamp or version number.`,w.USAGE,s);if(/^\d+$/.test(r)){let l=Zt(t),f=Number(r);if(f>=1&&f<=l)throw new v(`History version ${f} was pruned by compaction.`,w.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.`,w.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.`,w.USAGE,s);let d=ep(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}.`,w.USAGE,s);return{kind:"timestamp",raw:r,historyIndex:d}}function si(e,t,n,r){let o=Xe(e,t);if(o.ok)return o.document;let i=np(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)}`,w.GENERIC_FAILURE)}function xc(e,t){let n=e[0];if(n&&n.op!=="create"&&n.op!=="history_compact_baseline"){let s=Xe(pt,n.patch);if(!s.ok||typeof s.document.metadata.id!="string")throw new v("History starts without a reconstructable item baseline.",w.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=ve([...r]),i=structuredClone(pt);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.`,w.USAGE);i=si(i,a.patch,s+1,a.op)}if(!o.ok)throw new v(`History cannot be replayed: ${o.errors.join(", ")}.`,w.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 rb(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.",w.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.`,w.USAGE)}import ci from"node:fs/promises";import gr 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 Le(e,t){return typeof e=="object"&&e!==null&&"code"in e&&e.code===t}function di(e){let t=["--pm-path",e,"init","--defaults","--agent-guidance","skip"];return{suggested_retry:$e(t),suggested_retry_args:t}}function vr(e){return new v(`Tracker root is not a directory at ${e}.`,w.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 ai(e){return new v(`Tracker root is not readable at ${e}.`,w.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 rp(e){let t=gr.resolve(e),n=gr.parse(t).root,r=gr.dirname(t);for(;r!==n;){let o;try{o=await ci.stat(r)}catch(i){if(Le(i,"ENOTDIR"))throw vr(e);if(!Le(i,"ENOENT"))throw i;r=gr.dirname(r);continue}if(!o.isDirectory())throw vr(e);return}}async function kt(e){let t;try{t=await ci.stat(e)}catch(n){throw Le(n,"ENOENT")?(await rp(e),new v(`Tracker is not initialized at ${e}. Tracker root does not exist. Run pm init first.`,w.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:di(e)})):Le(n,"ENOTDIR")?vr(e):Le(n,"EACCES")||Le(n,"EPERM")?ai(e):n}if(!t.isDirectory())throw vr(e);if(process.platform!=="win32"&&((t.mode&292)===0||(t.mode&73)===0))throw ai(e);try{await(await ci.opendir(e)).close()}catch(n){throw Le(n,"EACCES")||Le(n,"EPERM")?ai(e):n}}async function li(e){if(await kt(e),!await je(tt(e)))throw new v(`Tracker is not initialized at ${e}. Run pm init first.`,w.NOT_FOUND,{code:"tracker_not_initialized",reason:"settings_missing",resolved_path:e,nextSteps:["Initialize the selected tracker root with the emitted retry."],recovery:di(e)})}import It from"node:fs/promises";import{statSync as op}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 ip(e,t){let n=-1,r=structuredClone(pt);for(let[a,c]of e.entries()){if(r=si(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}.`,w.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=Zt(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;Oc(a,e).historyIndex===n&&(s=a)}return{version:i,target:s}}async function Rc(e,t,n){let r=new Set([Ye(t,n),Ht(t)]);for(let o of r){let i=ue(e,o);if(!op(i,{throwIfNoEntry:!1})?.isFile())continue;let s=await ge(i,o),a=-1;if(s.forEach((p,_)=>{p.op==="delete"&&(a=_)}),a<0)continue;let c=xc(s,s.length-1);if(Object.keys(c.metadata).length!==0)continue;let{version:d,target:l}=ip(s,o),f=l===void 0?["history",o,"--verify"]:["get",o,"--at",l],m=$e(f);return new v(`Item ${o} was deleted at ${s[a].ts}; its history is retained.`,w.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."]:[$e(["restore",o,l])]],recovery:{suggested_retry:m,suggested_retry_args:f}})}}import ui from"node:path";import{isUtf8 as sp}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 ap(e){try{return await It.access(e),!0}catch{return!1}}function cp(e,t){e&&(e.includes(t)||e.push(t))}function Ac(e){return e??an(fe())}function dp(e){return e==="toon"?["toon","json_markdown"]:e==="json_markdown"?["json_markdown","toon"]:["toon","json_markdown"]}async function wr(e,t,n="pm-",r,o=Pe){let i=t.trim(),s=i.startsWith("#")?i.slice(1):i;if(s.length===0)return null;let a=Ye(t,n),c=Ht(t),d=[...new Set([s,a,c])].filter(m=>m.length>0),l=Object.entries(o),f=dp(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 ap(h)&&p.set(h,p.get(h)??{id:m,type:_,itemPath:h,item_format:g})}if(p.size>1){let _=[...p.keys()].map(g=>ui.relative(e,g).split(ui.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.`,w.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 lp(e,t);if(n.error!==null)throw n.error;return{raw:n.raw,document:n.document}}async function lp(e,t={}){let n=await It.readFile(e.itemPath);if(!sp(n))throw new v("Item contains invalid UTF-8; preserve a binary backup before recovering it.",w.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 ke({path:e.itemPath,scope:"project"});let o;try{o=Tn(r,{format:e.item_format,schema:t.schema,extensionFieldNames:Ac(t.extensionFieldNames),onWarning:i=>cp(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 up(e,t,n=Pe,r,o){await kt(e);let i=await $a(e,t,n,r,o);return qn(i.length),i.map(s=>s.metadata)}async function Dc(e,t,n=Pe,r,o){await kt(e);let i=await Ha(e,t,n,r,o);return qn(i.length),i.map(s=>s.metadata)}async function Xb(e,t,n=Pe,r,o,i={}){await kt(e);let s=await ir(e,t,n,r,o,{includeBody:!0,forceSourceScan:i.forceSourceScan});return qn(s.length),s.map(a=>({...a.metadata,body:a.body}))}function Nc(e){return{async get(t){let n=await wr(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:()=>up(e.pmRoot,e.settings.item_format,e.typeToFolder,void 0,e.settings.schema)}}async function fp(e,t){let n=new Set(Object.values(t)),r=[];return await Promise.all([...n].map(async o=>{try{let i=await It.readdir(ui.join(e,o));for(let s of i)for(let a of dn)if(s.toLowerCase().endsWith(a)){r.push(s.slice(0,-a.length));break}}catch{}})),r}async function mp(e,t,n,r){let o=Ye(t,n),i=await fp(e,r);if(i.length===0)return[];let s=Math.max(3,Math.floor(o.length/2));return i.map(c=>({id:c,distance:en(c,o,s)})).filter(c=>c.distance!==null).sort((c,d)=>c.distance-d.distance).slice(0,3).map(c=>c.id)}async function _p(e,t,n,r){let o=await Rc(e,t,n);if(o)return o;let i=await mp(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`,w.NOT_FOUND,{nextSteps:s})}function pp(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 Lc(e){let t=e.typeToFolder??cn(e.settings,fe()).type_to_folder,n=await wr(e.pmRoot,e.id,e.settings.id_prefix,e.settings.item_format,t);if(!n)throw await _p(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=hs(e.author),l=yr(e.settings);if(a&&c!==d&&!e.force&&!pp(e.op,e.bypassAssigneeConflict)){if(l.ownership_enforcement==="strict")throw new v(`Item ${n.id} is assigned to ${a}. Use --force to override.`,w.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 hp(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 yp(e){if(!e.skipItemWrite){if(e.effectiveTargetItemPath!==e.originalItemPath){await X(e.originalItemPath,e.originalRaw),await It.rm(e.effectiveTargetItemPath,{force:!0});return}await X(e.originalItemPath,e.originalRaw)}}async function Pc(e){_n(e.op);let t=await Lc({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=Ie();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:Nc({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:n})});let _=await ii({pmRoot:e.pmRoot,settings:e.settings,itemId:r.id,commandLabel:e.op}),g="toon",h=Ls(m,{format:g,schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),I=kr(e.pmRoot,m.metadata.type,r.id,g,n),R=ue(e.pmRoot,r.id),D=await At("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}=hp(D,I,h),W=await No(e.pmRoot,e.author),Q=[];try{G||await X($,x),!G&&$!==r.itemPath&&await It.rm(r.itemPath);let ee=mt({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 _t(R,ee)}catch(we){throw await yp({skipItemWrite:G,effectiveTargetItemPath:$,originalItemPath:r.itemPath,originalRaw:o}),we}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 me({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 me({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:fn(c.metadata,l.changedFields),current:fn(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 Yb(e){return Pc(e)}async function Jb(e){return Pc(e)}async function Qb(e){let t=await Lc({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=Ac(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:Nc({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:t.typeToFolder})});let l=await ii({pmRoot:e.pmRoot,settings:e.settings,itemId:n.id,commandLabel:"delete"}),f=Ie(),m=Me,p=mt({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}}),_=ue(e.pmRoot,n.id),g=await At("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 It.rm(h);try{await _t(_,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 me({path:h,scope:"project",op:"delete",item_id:c.metadata.id,item_type:c.metadata.type,before:c,after:m,changed_fields:["deleted"]}),...await me({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:fn(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 gp=["tree","graph","context"],vp=["none","repeated"],wp=["outgoing","incoming","both"],bp=32,Ep=200,kp=400,Ip=16e3;function Sp(e){let t=e?.trim().toLowerCase()??"tree";if(gp.includes(t))return t;throw new v(`Invalid --format value "${e}". Use "tree", "graph", or "context".`,w.USAGE)}function St(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.`,w.USAGE);return n}function jc(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.`,w.USAGE);return t}function Tp(e){let t=e?.trim().toLowerCase()??"none";if(vp.includes(t))return t;throw new v(`Invalid --collapse value "${e}". Use "none" or "repeated".`,w.USAGE)}function Cp(e){let t=e?.trim().toLowerCase()??"both";if(wp.includes(t))return t;throw new v(`Invalid --direction value "${e}". Use "outgoing", "incoming", or "both".`,w.USAGE)}function Op(e,t=le()){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}.`,w.USAGE)}r.add(i.kind)}return[...r].sort()}function xp(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 Rp(e){return{id:e.id,title:e.title,type:e.type,status:e.status,dependencies:xp(e.dependencies)}}function Ap(e){return mn(new TextEncoder().encode(JSON.stringify({...e,dependencies:void 0})).byteLength)}function Dp(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(Fc(d.id,n,r,o,i,s,a,c+1,d.kind))}}function Np(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 Fc(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+=Ap(f),Np(f,l,d,r,o,i,s,a))return f;o==="repeated"&&i.add(d);let m=new Set(n);return m.add(d),Dp(f,l,t,m,r,o,i,s,a),f}function Mc(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 Lp(e){let t=new Map,n=new Map,r=[e];for(;r.length>0;){let a=r.pop();t.set(a.id,Mc(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,Mc(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 $c(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 Pp(e,t=le()){let n=jc(e.maxDepth),r=St(e.nodeLimit,"node-limit"),o=St(e.edgeLimit,"edge-limit"),i=St(e.tokenBudget,"token-budget"),s=Op(e.kind,t);return{direction:Cp(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 Mp(e,t,n,r){return Qa(e.graph,t,e.details.map(o=>o.id===t&&r.length>0?{...o,evidence:r}:o),n)}function fi(e,t,n,r){for(let o of n.slice(0,r)){let i=o?.trim();i&&e.push(`${t}:${i}`)}}async function jp(e,t,n,r){let o=await wr(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 fi(f,"file",a.map(m=>m.path),3),fi(f,"test",c.map(m=>m.command??m.path),2),fi(f,"doc",d.map(m=>m.path),2),f}function Fp(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 $p(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 Hc(e,t,n){let r;for(;;){let o=mn(new TextEncoder().encode(Rr(Or("deps",e),t)).byteLength);if(o===r)return o;n(o),r=o}}function Hp(e){return e instanceof TypeError&&e.message.startsWith("Relationship context tokenBudget cannot fit ")}function zp(e){try{return Mp(e.assembly,e.canonicalId,{...e.contextOptions,...e.internalTokenBudget===void 0?{}:{tokenBudget:e.internalTokenBudget}},e.rootEvidence)}catch(t){if(e.smallestResult!==void 0&&Hp(t))return e.smallestResult;throw t}}function Up(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 _=zp({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=Fp({canonicalId:n,context:g,missingCount:a,missingReferences:c,referenceLimit:l,summaryOnly:i});if(p=h,i||(g.meta.tokenBudget=m,g.meta.usedTokens=Hc(Tt(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 Bp(e){let{assembly:t,canonicalId:n,options:r,rootEvidence:o,summaryOnly:i,outputFormat:s}=e,a=Pp(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=>$p({row:g,missingReachableSet:l,packetIds:p,filteredKinds:m,registry:f}));return Up({assembly:t,canonicalId:n,contextOptions:a,rootEvidence:o,summaryOnly:i,outputFormat:s,missingCount:d.length,missingReferences:_})}function Wp(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 Vp(e,t,n,r,o,i,s){let a=o??bp,c=St(n.nodeLimit,"node-limit")??Ep,d=St(n.edgeLimit,"edge-limit")??kp,l=St(n.tokenBudget,"token-budget")??Ip,f={nodeLimit:c,edgeLimit:d,tokenBudget:l,nodes:0,edges:0,estimatedTokens:0,reasons:new Set},m=Fc(e,r,new Set,a,t==="graph"?"repeated":i,new Set,f),p=$c(e,r,void 0),_;for(;;){let g=Lp(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?mn(new TextEncoder().encode(Rr(Or("deps",Tt(_,!1)),s)).byteLength):Hc(Tt(_,!1),s,D=>{_.truncation.estimated_tokens=D}))<=l)return _;if(!Wp(m))return f.reasons.add("token_budget"),_;f.reasons.add("token_budget")}}function Tt(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 vE(e,t,n){let r=Ai(process.cwd(),n.path);await li(r);let o=Sp(t.format),i=jc(t.maxDepth),s=Tp(t.collapse);Ui(t.summary===!0,t.full===!0,"--summary");let a=t.summary===!0,c=await Tc(r),d=cn(c,fe()),l=await Dc(r,c.item_format,d.type_to_folder,void 0,c.schema),f=un(c.schema),m=new Map(l.map(_=>[_.id.trim().toLowerCase(),Rp(_)])),p=zo(l,_=>ye(_,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`,w.NOT_FOUND);if(o==="context"){let _=m.get(e.trim().toLowerCase()).id,g=a?[]:await jp(r,_,c,d.type_to_folder),h=D=>ye(D,f),I=ce(),R=Ja().lookup(r,Xa(l,h,I),()=>lr(l,h,I));return Tt(Bp({assembly:R.assembly,canonicalId:_,options:t,rootEvidence:g,summaryOnly:a,outputFormat:n.json===!0?"json":"toon"}),a,R.assembly.legacyAliasCounts)}return a?Tt({id:e,format:o,...$c(e,m,i)},!0,Object.fromEntries(Object.entries(lr(l,_=>ye(_,f)).legacyAliasCounts))):Tt(Vp(e,o,t,m,i,s,n.json===!0?"json":"toon"),!1,Object.fromEntries(Object.entries(lr(l,_=>ye(_,f)).legacyAliasCounts)))}export{Go as a,He as b,Dr as c,Gp as d,Kp as e,es as f,jr as g,rh as h,oh as i,ih as j,sh as k,ah as l,ch as m,qr as n,Gr as o,cs as p,gh as q,vh as r,wh as s,bh as t,Eh as u,kh as v,Jr as w,ms as x,Ih as y,Sh as z,Th as A,wd as B,hs as C,ys as D,xh as E,Ed as F,gs as G,We as H,Ce as I,ks as J,Dt as K,Uh as L,Bh as M,it as N,vs as O,Ah as P,ws as Q,kd as R,Dh as S,wn as T,st as U,ye as V,En as W,Sn as X,Tn as Y,Ls as Z,ne as _,Xl as $,ge as aa,lt as ba,hu as ca,xy as da,Ry as ea,Ay as fa,Iu as ga,Mn as ha,Ge as ia,$t as ja,tg as ka,vo as la,$n as ma,na,ng as oa,ia as pa,rg as qa,mt as ra,_t as sa,Ps as ta,pt as ua,Hn as va,mg as wa,bo as xa,zn as ya,_g as za,pg as Aa,la as Ba,Xe as Ca,ma as Da,ve as Ea,Yu as Fa,hg as Ga,yg as Ha,yt as Ia,Bn as Ja,jg as Ka,Fg as La,va as Ma,ba as Na,$g as Oa,_w as Pa,De as Qa,m_ as Ra,yr as Sa,V_ as Ta,Sc as Ua,Tc as Va,Pw as Wa,Hw as Xa,ii as Ya,Z_ as Za,pa as _a,Ht as $a,Ye as ab,Ig as bb,Zt as cb,Oc as db,si as eb,xc as fb,rb as gb,sf as hb,cf as ib,df as jb,lf as kb,uf as lb,Io as mb,nv as nb,cv as ob,dv as pb,lv as qb,La as rb,Of as sb,No as tb,kv as ub,Lo as vb,ir as wb,kt as xb,li as yb,wr as zb,br as Ab,lp as Bb,up as Cb,Dc as Db,Xb as Eb,Nc as Fb,_p as Gb,Yb as Hb,Jb as Ib,Qb as Jb,Mo as Kb,sm as Lb,Kt as Mb,ar as Nb,Ua as Ob,am as Pb,cm as Qb,dm as Rb,fm as Sb,Wv as Tb,Vv as Ub,km as Vb,ce as Wb,jv as Xb,dr as Yb,Fv as Zb,bm as _b,$v as $b,Yt as ac,Sm as bc,Cm as cc,zo as dc,Om as ec,Qv as fc,lr as gc,Xa as hc,Uo as ic,Ja as jc,rw as kc,Qa as lc,St as mc,jc as nc,Cp as oc,Op as pc,vE as qc};
|
|
165
|
-
//# sourceMappingURL=chunk-YC32ZSLS.js.map
|