@unbrained/pm-cli 2026.10.8 → 2026.10.9

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.
Files changed (90) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/CHANGELOG.md +17 -0
  3. package/dist/cli/register-list-query.js +2 -2
  4. package/dist/cli-bundle/bundle-manifest.json +151 -151
  5. package/dist/cli-bundle/chunks/{chunk-ZHIMZ65M.js → chunk-55MK3QQM.js} +30 -30
  6. package/dist/cli-bundle/chunks/{chunk-34L2BS2Z.js → chunk-5MOFELIF.js} +2 -2
  7. package/dist/cli-bundle/chunks/{chunk-ZBVAZ7XX.js → chunk-5NR6TDYB.js} +2 -2
  8. package/dist/cli-bundle/chunks/{chunk-OG66KEOF.js → chunk-5TCQ5J3V.js} +74 -78
  9. package/dist/cli-bundle/chunks/{chunk-K6E2FFUT.js → chunk-CPZOW6L2.js} +2 -2
  10. package/dist/cli-bundle/chunks/{chunk-TNU56MZI.js → chunk-E4XR5LKU.js} +2 -2
  11. package/dist/cli-bundle/chunks/{chunk-RCFZ6H2Y.js → chunk-KOGF6O6W.js} +3 -3
  12. package/dist/cli-bundle/chunks/{chunk-JDTBPW4Y.js → chunk-N7GKWO4G.js} +2 -2
  13. package/dist/cli-bundle/chunks/{chunk-L7U5FSZ5.js → chunk-NIF7JOPW.js} +2 -2
  14. package/dist/cli-bundle/chunks/{chunk-MJVRF67I.js → chunk-P5NS7EFC.js} +2 -2
  15. package/dist/cli-bundle/chunks/{chunk-HFCIAXLP.js → chunk-QQHNXCO3.js} +2 -2
  16. package/dist/cli-bundle/chunks/{chunk-FOLSEOJ2.js → chunk-XW3BLWFF.js} +2 -2
  17. package/dist/cli-bundle/chunks/{chunk-UGFN5NJ2.js → chunk-ZNXRGATT.js} +2 -2
  18. package/dist/cli-bundle/chunks/{register-list-query-PYVSPGPV.js → register-list-query-2YOWMNWY.js} +7 -7
  19. package/dist/cli-bundle/chunks/{register-mutation-WXP3YLIN.js → register-mutation-ILOWFMTV.js} +2 -2
  20. package/dist/cli-bundle/chunks/{register-operations-WL25C3NP.js → register-operations-BMK65YM3.js} +2 -2
  21. package/dist/cli-bundle/chunks/{register-setup-PFKYNEQI.js → register-setup-24TFFK6N.js} +2 -2
  22. package/dist/cli-bundle/focused-chunks/{chunk-PEBOVLEG.js → chunk-2ATAD56F.js} +2 -2
  23. package/dist/cli-bundle/focused-chunks/{chunk-6TKAFFEB.js → chunk-2CJWTLQG.js} +2 -2
  24. package/dist/cli-bundle/focused-chunks/{chunk-EOUORVJA.js → chunk-362645PL.js} +2 -2
  25. package/dist/cli-bundle/focused-chunks/{chunk-V3EPBB6V.js → chunk-AU6VJGTY.js} +2 -2
  26. package/dist/cli-bundle/focused-chunks/{chunk-L3CZNKZE.js → chunk-B3YW6H2I.js} +16 -20
  27. package/dist/cli-bundle/focused-chunks/{chunk-XT7JAVHI.js → chunk-DMSADMEU.js} +2 -2
  28. package/dist/cli-bundle/focused-chunks/{chunk-2KSPGWLH.js → chunk-DSLNUL2Q.js} +2 -2
  29. package/dist/cli-bundle/focused-chunks/{chunk-A3W6HFFO.js → chunk-EZ4367G4.js} +2 -2
  30. package/dist/cli-bundle/focused-chunks/{chunk-MW2TQHZ3.js → chunk-IARAEFMA.js} +2 -2
  31. package/dist/cli-bundle/focused-chunks/{chunk-OSKXYRYZ.js → chunk-MCVWZUGK.js} +27 -27
  32. package/dist/cli-bundle/focused-chunks/{chunk-F2ME5MJY.js → chunk-PBCYGO7X.js} +2 -2
  33. package/dist/cli-bundle/focused-chunks/{chunk-PBPPIGUL.js → chunk-PLTTMQAW.js} +2 -2
  34. package/dist/cli-bundle/focused-chunks/{chunk-OLCJ2PJS.js → chunk-SAN3KPX4.js} +2 -2
  35. package/dist/cli-bundle/focused-chunks/{chunk-DRHJOG5X.js → chunk-W5AE7GKZ.js} +2 -2
  36. package/dist/cli-bundle/focused-chunks/{chunk-LZQGEVKT.js → chunk-WAOXID5J.js} +2 -2
  37. package/dist/cli-bundle/focused-chunks/{chunk-BDT5EALU.js → chunk-WOEZJUA2.js} +2 -2
  38. package/dist/cli-bundle/main.js +2 -2
  39. package/dist/cli-bundle/sdk-authoring.js +1 -1
  40. package/dist/cli-bundle/sdk-contracts.js +1 -1
  41. package/dist/cli-bundle/sdk-core.js +22 -22
  42. package/dist/cli-bundle/sdk-governance.js +1 -1
  43. package/dist/cli-bundle/sdk-graph.js +1 -1
  44. package/dist/cli-bundle/sdk-merge.js +50 -50
  45. package/dist/cli-bundle/sdk-query.js +1 -1
  46. package/dist/cli-bundle/sdk-runtime.js +1 -1
  47. package/dist/cli-bundle/sdk-testing.js +1 -1
  48. package/dist/cli-bundle/sdk.js +7 -7
  49. package/dist/core/history/event-index.d.ts +1 -2
  50. package/dist/core/history/event-index.js +2 -2
  51. package/dist/core/output/output.d.ts +16 -14
  52. package/dist/core/output/output.js +6 -10
  53. package/dist/core/store/item-metadata-query-index.d.ts +1 -2
  54. package/dist/core/store/item-metadata-query-index.js +1 -1
  55. package/dist/core/store/sqlite-runtime.d.ts +15 -0
  56. package/dist/core/store/sqlite-runtime.js +2 -0
  57. package/dist/sdk/output/table-rows.d.ts +37 -0
  58. package/dist/sdk/output/table-rows.js +2 -0
  59. package/dist/sdk/output.d.ts +1 -0
  60. package/dist/sdk/output.js +2 -2
  61. package/dist/sdk/public-surface.json +1 -1
  62. package/dist/sdk/read-output-contracts.d.ts +3 -3
  63. package/dist/sdk/read-output-contracts.js +1 -1
  64. package/dist/sdk/test/workspace-snapshot.d.ts +1 -1
  65. package/dist/sdk/test/workspace-snapshot.js +1 -1
  66. package/docs/AGENT_OUTPUT_ENCODINGS.md +119 -0
  67. package/docs/PACKAGE_GATE_ACCEPTANCE.md +56 -0
  68. package/docs/README.md +2 -0
  69. package/docs/TESTING.md +11 -3
  70. package/marketplace.json +2 -2
  71. package/package.json +1 -1
  72. package/packages/pm-beads/package.json +1 -1
  73. package/packages/pm-calendar/package.json +1 -1
  74. package/packages/pm-command-kit/package.json +1 -1
  75. package/packages/pm-digital-twin/package.json +1 -1
  76. package/packages/pm-governance-audit/package.json +1 -1
  77. package/packages/pm-guide-shell/package.json +1 -1
  78. package/packages/pm-kanban/package.json +1 -1
  79. package/packages/pm-lifecycle-hooks/package.json +1 -1
  80. package/packages/pm-linked-test-adapters/package.json +1 -1
  81. package/packages/pm-search-advanced/package.json +1 -1
  82. package/packages/pm-templates/package.json +1 -1
  83. package/packages/pm-todos/package.json +1 -1
  84. package/packages/pm-vcs/package.json +1 -1
  85. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  86. package/plugins/pm-claude/package.json +2 -2
  87. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  88. package/plugins/pm-codex/package.json +2 -2
  89. package/plugins/pm-codex/plugin.json +1 -1
  90. package/runtime-dependencies.json +2 -2
@@ -1,16 +1,16 @@
1
- import{b as on,g as St,i as Tt,j as Ct,l as Mi,m as ji,n as dn,o as Fi,p as $i,q as Hi}from"./chunk-F2ME5MJY.js";import{h as fn}from"./chunk-YLVHHWHN.js";import{$ as w,$a as Ni,$b as Bi,$c as $e,$d as tt,A as wi,Ce as Or,De as xr,F as nn,G as rn,H as wr,J as vi,Ja as Ci,Mc as me,Me as ye,Nc as Ir,Ne as se,Oa as Oi,Oc as ln,P as ve,Pa as xi,Pc as _e,Qc as Sr,Ra as Ri,Rb as Pi,Rc as ke,Sa as Ai,Sc as Tr,V as Pe,Va as sn,Vc as Ot,W as Ei,Wb as zi,Xa as Di,Xd as Ki,Yd as Ie,Z as k,Zd as pe,_ as Me,_a as an,_b as Ui,_d as Xi,aa as g,ae as he,bd as Wi,cb as et,db as Er,dd as Cr,de as Yi,eb as kr,ee as Ji,fb as fe,fd as Vi,fe as W,gd as qi,hb as Li,i as Qt,ka as ue,kd as Gi,pa as ki,q as Zt,r as hi,ra as Ii,s as yi,sa as je,t as gi,ta as Fe,tb as D,u as bi,ua as ne,ub as ie,va as Ee,vb as cn,wa as Si,wb as T,xa as vr,xd as un,y as en,ya as K,z as tn,za as Ti}from"./chunk-L3CZNKZE.js";import{AsyncLocalStorage as Gc}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]="1fbb183b-c6d8-5834-b4cb-e4fb515572b9")}catch{}})();var Rr=new Gc,Qi=/^[A-Za-z0-9](?:[A-Za-z0-9._:-]{0,127})$/u;function mn(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=mn(n.id,128),o=mn(n.parent_id,128);if(r===void 0||!Qi.test(r)||o!==void 0&&!Qi.test(o)){if(t)throw new Error("Agent episode ids must be 1-128 letters, digits, dots, underscores, colons, or hyphens.");return}let i=mn(n.label,256);return{id:r,...i===void 0?{}:{label:i},...o===void 0?{}:{parent_id:o}}}function nt(e){let t={};for(let[n,r]of Object.entries(e??{}).slice(0,32)){let o=n.trim().toLowerCase().slice(0,64),i=mn(r,256);/^[a-z][a-z0-9_-]{0,63}$/u.test(o)&&i!==void 0&&(t[o]=i)}return t}function Kc(e,t,n){let r=Rr.getStore(),o=nt({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={...nt(r?.provenance),...o,...nt(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 Ar(e,t){return Kc(e.session_context,t,e.client_info?.episode)??{}}function Kp(e,t){let n=Rr.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={...nt(n?.provenance),...nt(e.provenance)};return Rr.run({...Object.keys(s).length===0?{}:{provenance:s},...i===void 0?o===void 0?{}:{episode:o}:{episode:i}},t)}function Xp(e){let t=nt(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 Wr}from"node:async_hooks";import{createHash as Zc}from"node:crypto";import V from"node:fs";import as from"node:os";import Be from"node:path";import{createHash as Zi}from"node:crypto";import{existsSync as Dr,promises as es,readFileSync as Xc}from"node:fs";import ae 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]="06c9f6f4-c2f0-549c-9a0f-4f4269cc5f49")}catch{}})();var Yc="session.json";function Nr(e,t){return typeof e=="string"&&e.length>0&&e.length<=t}function ts(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=Nr(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=>Nr(c,128)),a=t.focused_item_id===void 0||Nr(t.focused_item_id,128);if([n,r,o,i,s,a,t.rule_version==="v2"].every(Boolean))return t}function Jc(e){if(e===null||typeof e!="object"||Array.isArray(e))return;let t=Object.entries(e).slice(0,128).flatMap(([n,r])=>{let o=ts(r);return o&&n.length<=128?[[n,o]]:[]});return t.length>0?Object.fromEntries(t):void 0}function Lr(e){return ae.join(Li(e),Yc)}async function ns(e){try{let t=await es.readFile(Lr(e),"utf8"),n=JSON.parse(t);if(n===null||typeof n!="object"||Array.isArray(n))return{};let r=n,o=r.focused_item,i=Jc(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 Pr(e,t){let n=await W(e,"session-state",k.locks.ttl_seconds,"session-state",!1,!0,k.locks.wait_ms);try{let r=await ns(e);t(r);let o=Lr(e);await es.mkdir(ae.dirname(o),{recursive:!0}),await K(o,JSON.stringify(r))}finally{await n()}}function Mr(e){return/#([a-f0-9]{24})$/u.exec(e.trim())?.[1]??`author-${Zi("sha256").update(e).digest("hex").slice(0,24)}`}function jr(e){return[...new Set(e.map(t=>t.trim()).filter(Boolean))].slice(0,32).map(t=>t.slice(0,128))}function Fr(e){let t=[...new Set(e)].sort((r,o)=>r.localeCompare(o));if(t.length===1)return t[0];let n=`workset:${t.join("+")}`;return n.length<=256?n:`workset:${t.join("+").slice(0,230)}+${Zi("sha256").update(t.join("\0")).digest("hex").slice(0,12)}`}async function $r(e,t,n){await Pr(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 oh(e){let t=Mr(e.principal);await $r(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??Fr(r),confidence:o?"high":"medium",rule_version:"v2",evidence:jr([...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 ih(e){let t=Mr(e.principal);await $r(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??Fr(r),confidence:o?"high":"medium",evidence:jr([...r.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],`release:${e.itemId}`]),active_item_ids:r}})}async function sh(e){let t=Mr(e.principal);await $r(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??Fr(r),confidence:o?"high":"medium",rule_version:"v2",evidence:jr([...r.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],...(e.lineageIds??[]).map(i=>`lineage:${i}`)]),active_item_ids:r,...o?{focused_item_id:o}:{}}})}function Qc(e,t){let n=t.PM_PATH?.trim();if(n){let o=ae.resolve(e,n);if(Dr(ae.join(o,"settings.json")))return o;let i=ae.join(o,".agents","pm");if(Dr(ae.join(i,"settings.json")))return i}let r=ae.resolve(e);for(let o=0;o<32;o+=1){let i=ae.join(r,".agents","pm");if(Dr(ae.join(i,"settings.json")))return i;let s=ae.dirname(r);if(s===r)break;r=s}}function rs(e){if(!e.key)return;let t=Qc(e.cwd,e.env);if(t)try{let n=JSON.parse(Xc(Lr(t),"utf8"));return ts(n.semantic_attribution?.[e.key])}catch{return}}async function ah(e){return(await ns(e)).focused_item}async function ch(e,t){await Pr(e,n=>{n.focused_item=t})}async function dh(e){await Pr(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]="a69b86e2-6633-5abc-81b7-6a54a592d36c")}catch{}})();var Vr=["model","effort","role","topic","version"],hn=new Wr,cs=new Wr,yn=new Wr,qr=[{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:[]}],ds=Object.freeze({max_bytes:1048576,max_lines:4096,network_access:!1,subprocess_access:!1}),ed=Object.freeze({...ds,max_bytes:4194304}),Hr=/^[a-z0-9]+(?:-[a-z0-9]+)*$/u;function td(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"?ed:ds,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 ls=Object.freeze(qr.filter(e=>e.harness!=="ci").map(td).sort((e,t)=>e.harness.localeCompare(t.harness))),Ue=new Map,rt=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(!Hr.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])=>Hr.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"&&Hr.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 us=qr.map(Te);function nd(e,t){return JSON.stringify(e)===JSON.stringify(t)}function pn(e,t){return e.toLowerCase().slice(0,512).split(/[/\\\s:=]+/u).filter(n=>n.length>0).includes(t)||e.trim().toLowerCase()===t}function Gr(e=[]){let t=new Map(qr.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(),...us.filter(o=>o.harness==="ci"),...[...rt.values()].map(o=>o.descriptor),...yn.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 Kr(e,t){for(let n of t??[]){let r=P(e[n]);if(r)return r.slice(0,256)}}function rd(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 fs(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 od=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 od.has(n)?n:void 0}function zr(e,t){return P(e?.[t])?.slice(0,256)}var id=1048576,Br=4194304,_n=new Map,os=Object.freeze({}),Ur=new Map,is=Object.freeze({});function ss(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:void 0}function sd(e){let t;try{t=JSON.parse(e)}catch{return is}let n=ss(t);if(!n)return is;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=ss(c);d&&r.push({value:d,depth:a.depth+1})}}return Object.freeze({model:i,version:s})}function ms(e){try{return V.lstatSync(e).isFile()?"available":"missing"}catch(t){return Fe(t)?"missing":"failed"}}function ad(e,t){let n;try{n=V.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:ms(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 _s(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 r=Be.resolve(e.cwd??process.cwd()).replaceAll(/[^A-Za-z0-9-]/gu,"-"),o=Be.join(e.home_dir??as.homedir(),".claude","projects"),i=Be.join(o,r,`${n}.jsonl`),s=P(e.session_file),a=s&&Be.basename(s)===`${n}.jsonl`?s:void 0;for(let c of[a,i]){if(!c)continue;let d=ms(c);if(d==="available")return{status:d,path:c};if(d==="failed")return{status:d}}return ad(o,n)}function cd(e,t,n){let r=_s(t,n);if(r.status==="available")try{let o=V.openSync(r.path,V.constants.O_RDONLY|V.constants.O_NOFOLLOW);try{let i=V.fstatSync(o),s=`${r.path}\0${i.size}\0${i.mtimeMs}`,a=Ur.get(s);if(a)return a[e];let c=Math.min(i.size,id),d=Math.min(c,Math.ceil(c/2)),l=Math.min(c-d,i.size-d),f=Buffer.alloc(d);V.readSync(o,f,0,d,0);let m=Buffer.alloc(l);l>0&&V.readSync(o,m,0,l,i.size-l);let p={},_=i.size<=c?Buffer.concat([f,m]).toString("utf8").split(`
1
+ import{b as on,g as St,i as Tt,j as Ct,l as Fi,m as $i,n as dn,o as Hi,p as zi,q as Ui}from"./chunk-PBCYGO7X.js";import{h as fn}from"./chunk-YLVHHWHN.js";import{$ as w,$a as Pi,$b as Vi,$c as $e,$d as tt,A as Ei,Ce as xr,De as Rr,F as nn,G as rn,H as vr,J as ki,Ja as xi,Mc as me,Me as ye,Nc as Sr,Ne as se,Oa as Ri,Oc as ln,P as ve,Pa as Ai,Pc as _e,Qc as Tr,Ra as Di,Rb as ji,Rc as ke,Sa as Ni,Sc as Cr,V as Pe,Va as sn,Vc as Ot,W as Ii,Wb as Bi,Xa as Li,Xd as Yi,Yd as Ie,Z as k,Zd as pe,_ as Me,_a as an,_b as Wi,_d as Ji,aa as g,ae as he,bd as Gi,cb as et,db as kr,dd as Or,de as Qi,eb as Ir,ee as Zi,fb as fe,fd as qi,fe as W,gd as Ki,hb as Mi,i as Qt,ka as ue,kd as Xi,pa as Si,q as Zt,r as gi,ra as Ti,s as bi,sa as je,t as wi,ta as Fe,tb as D,u as vi,ua as ne,ub as ie,va as Ee,vb as cn,wa as Ci,wb as T,xa as Er,xd as un,y as en,ya as K,z as tn,za as Oi}from"./chunk-B3YW6H2I.js";import{AsyncLocalStorage as Xc}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]="1fbb183b-c6d8-5834-b4cb-e4fb515572b9")}catch{}})();var Ar=new Xc,es=/^[A-Za-z0-9](?:[A-Za-z0-9._:-]{0,127})$/u;function mn(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=mn(n.id,128),o=mn(n.parent_id,128);if(r===void 0||!es.test(r)||o!==void 0&&!es.test(o)){if(t)throw new Error("Agent episode ids must be 1-128 letters, digits, dots, underscores, colons, or hyphens.");return}let i=mn(n.label,256);return{id:r,...i===void 0?{}:{label:i},...o===void 0?{}:{parent_id:o}}}function nt(e){let t={};for(let[n,r]of Object.entries(e??{}).slice(0,32)){let o=n.trim().toLowerCase().slice(0,64),i=mn(r,256);/^[a-z][a-z0-9_-]{0,63}$/u.test(o)&&i!==void 0&&(t[o]=i)}return t}function Yc(e,t,n){let r=Ar.getStore(),o=nt({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={...nt(r?.provenance),...o,...nt(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 Yc(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={...nt(n?.provenance),...nt(e.provenance)};return Ar.run({...Object.keys(s).length===0?{}:{provenance:s},...i===void 0?o===void 0?{}:{episode:o}:{episode:i}},t)}function qp(e){let t=nt(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 td}from"node:crypto";import V from"node:fs";import ds from"node:os";import Be from"node:path";import{createHash as ts}from"node:crypto";import{existsSync as Nr,promises as ns,readFileSync as Jc}from"node:fs";import ae 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]="06c9f6f4-c2f0-549c-9a0f-4f4269cc5f49")}catch{}})();var Qc="session.json";function Lr(e,t){return typeof e=="string"&&e.length>0&&e.length<=t}function rs(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 Zc(e){if(e===null||typeof e!="object"||Array.isArray(e))return;let t=Object.entries(e).slice(0,128).flatMap(([n,r])=>{let o=rs(r);return o&&n.length<=128?[[n,o]]:[]});return t.length>0?Object.fromEntries(t):void 0}function Pr(e){return ae.join(Mi(e),Qc)}async function os(e){try{let t=await ns.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=Zc(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 W(e,"session-state",k.locks.ttl_seconds,"session-state",!1,!0,k.locks.wait_ms);try{let r=await os(e);t(r);let o=Pr(e);await ns.mkdir(ae.dirname(o),{recursive:!0}),await K(o,JSON.stringify(r))}finally{await n()}}function jr(e){return/#([a-f0-9]{24})$/u.exec(e.trim())?.[1]??`author-${ts("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((r,o)=>r.localeCompare(o));if(t.length===1)return t[0];let n=`workset:${t.join("+")}`;return n.length<=256?n:`workset:${t.join("+").slice(0,230)}+${ts("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 nh(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 rh(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 oh(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 ed(e,t){let n=t.PM_PATH?.trim();if(n){let o=ae.resolve(e,n);if(Nr(ae.join(o,"settings.json")))return o;let i=ae.join(o,".agents","pm");if(Nr(ae.join(i,"settings.json")))return i}let r=ae.resolve(e);for(let o=0;o<32;o+=1){let i=ae.join(r,".agents","pm");if(Nr(ae.join(i,"settings.json")))return i;let s=ae.dirname(r);if(s===r)break;r=s}}function is(e){if(!e.key)return;let t=ed(e.cwd,e.env);if(t)try{let n=JSON.parse(Jc(Pr(t),"utf8"));return rs(n.semantic_attribution?.[e.key])}catch{return}}async function ih(e){return(await os(e)).focused_item}async function sh(e,t){await Mr(e,n=>{n.focused_item=t})}async function ah(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]="a69b86e2-6633-5abc-81b7-6a54a592d36c")}catch{}})();var Gr=["model","effort","role","topic","version"],hn=new Vr,ls=new Vr,yn=new Vr,qr=[{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:[]}],us=Object.freeze({max_bytes:1048576,max_lines:4096,network_access:!1,subprocess_access:!1}),nd=Object.freeze({...us,max_bytes:4194304}),zr=/^[a-z0-9]+(?:-[a-z0-9]+)*$/u;function rd(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"?nd:us,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 fs=Object.freeze(qr.filter(e=>e.harness!=="ci").map(rd).sort((e,t)=>e.harness.localeCompare(t.harness))),Ue=new Map,rt=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 ms=qr.map(Te);function od(e,t){return JSON.stringify(e)===JSON.stringify(t)}function pn(e,t){return e.toLowerCase().slice(0,512).split(/[/\\\s:=]+/u).filter(n=>n.length>0).includes(t)||e.trim().toLowerCase()===t}function Kr(e=[]){let t=new Map(qr.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(),...ms.filter(o=>o.harness==="ci"),...[...rt.values()].map(o=>o.descriptor),...yn.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 id(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 _s(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 sd=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 sd.has(n)?n:void 0}function Ur(e,t){return P(e?.[t])?.slice(0,256)}var ad=1048576,Wr=4194304,_n=new Map,ss=Object.freeze({}),Br=new Map,as=Object.freeze({});function cs(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:void 0}function cd(e){let t;try{t=JSON.parse(e)}catch{return as}let n=cs(t);if(!n)return as;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=cs(c);d&&r.push({value:d,depth:a.depth+1})}}return Object.freeze({model:i,version:s})}function ps(e){try{return V.lstatSync(e).isFile()?"available":"missing"}catch(t){return Fe(t)?"missing":"failed"}}function dd(e,t){let n;try{n=V.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:ps(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 hs(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 r=Be.resolve(e.cwd??process.cwd()).replaceAll(/[^A-Za-z0-9-]/gu,"-"),o=Be.join(e.home_dir??ds.homedir(),".claude","projects"),i=Be.join(o,r,`${n}.jsonl`),s=P(e.session_file),a=s&&Be.basename(s)===`${n}.jsonl`?s:void 0;for(let c of[a,i]){if(!c)continue;let d=ps(c);if(d==="available")return{status:d,path:c};if(d==="failed")return{status:d}}return dd(o,n)}function ld(e,t,n){let r=hs(t,n);if(r.status==="available")try{let o=V.openSync(r.path,V.constants.O_RDONLY|V.constants.O_NOFOLLOW);try{let i=V.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,ad),d=Math.min(c,Math.ceil(c/2)),l=Math.min(c-d,i.size-d),f=Buffer.alloc(d);V.readSync(o,f,0,d,0);let m=Buffer.alloc(l);l>0&&V.readSync(o,m,0,l,i.size-l);let p={},_=i.size<=c?Buffer.concat([f,m]).toString("utf8").split(`
2
2
  `):[...f.toString("utf8").split(`
3
3
  `).slice(0,4096),...m.toString("utf8").split(`
4
- `).slice(-4096)];for(let y of _){if(y.length===0||y.length>262144)continue;let S=sd(y);if(p.model??=S.model,p.version??=S.version,p.model&&p.version)break}let b=Object.freeze(p);return Ur.clear(),Ur.set(s,b),b[e]}finally{V.closeSync(o)}}catch{return}}function dd(e,t){let n=0,r=(o,i)=>{if(i>4||n>=512)return;let s;try{s=V.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 ld(e){if(e<=Br)return[{offset:0,length:e}];let t=Math.floor(Br/2);return[{offset:e-t,length:t},{offset:0,length:t}]}function ud(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 fd(e,t){let n={},r=4096;for(let o of ld(t)){let i=Buffer.alloc(o.length);V.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(ud(n,a),n.model&&n.effort)break;if(n.model&&n.effort||r<=0)break}return n}function md(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??as.homedir(),".codex","sessions"),i=`${o}\0${r}`,s=_n.get(i);if(s)return s[e];let a=dd(o,r);if(!a){_n.set(i,os);return}try{let c=V.openSync(a,"r");try{let d=V.fstatSync(c).size,l=fd(c,d);return _n.set(i,l),l[e]}finally{V.closeSync(c)}}catch{_n.set(i,os);return}}function _d(e,t,n,r){let o=yn.getStore();if(!(t.probes_enabled!==!1&&o?.probesEnabled!==!1&&!["0","false","off"].includes(P(n.PM_AGENT_PROBES)?.toLowerCase()??"")))return;let i=r?.provenance_resolvers[e];if(i==="claude_session_file")return cd(e,t,n);if(i==="codex_session_file")return md(e,t,n);if(i==="ai_agent_version"){let s=P(n.AI_AGENT);return!s||!r||!pn(s,r.harness)?void 0:/(?:^|[@/\s])v?(\d+\.\d+(?:\.\d+)?(?:[-+][A-Za-z0-9.-]+)?)$/u.exec(s)?.[1]?.slice(0,256)}}function pd(e,t,n,r){if(e==="ai_agent_version"){let o=P(r.AI_AGENT);return o!==void 0&&pn(o,t.harness)?"available":"unavailable"}return e==="codex_session_file"?P(r.CODEX_THREAD_ID)!==void 0?"available":"unavailable":_s(n,r).status}function Xr(e){return e||(cs.getStore()??{env:process.env,argv:process.argv})}function hd(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 pn(d.slice(d.lastIndexOf("/")+1),a)})),s=e.client_names.some(a=>r===a||pn(r,a));return o||i||s}function yd(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 gd(e){let t=e.find(([n])=>n!==void 0);return t?.[0]?{value:t[0],source:t[1]}:void 0}function bd(e,t,n,r,o,i){let s=`PM_AGENT_${e.toUpperCase().replaceAll("-","_")}`,a=new Set([...Vr,...Object.keys(r?.provenance_environment_keys??{})]),c,d,l;a.has(e)&&(c=ze(e,P(n[s])?.slice(0,256)),l=ze(e,fs(t.argv??[],e)),d=ze(e,rd(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=zr(o?.provenance,e),_=ze(e,Kr(n,f[e])),b=ze(e,zr(m,e)),y=ze(e,zr(t.provenance,e)),S=_d(e,t,n,r);return gd([[c,"override"],[p,"session"],[l,"argv"],[_,"environment"],[b,"mcp_client"],[y,"host"],[S,"probe"]])??yd(e,i)??(d?{value:d,source:"argv"}:void 0)}function wd(e,t){if(!(!e||!t))return Zc("sha256").update(`pm-agent-instance:v1\0${e}\0${t}`).digest("hex").slice(0,24)}function vd(e,t,n,r,o){let i=Object.keys(n?.provenance_environment_keys??{}),s=new Set([...Vr,...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=bd(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 bh(e){let t=e.map(Te),n=new Map(us.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=rt.get(i.harness);if(s&&!nd(s.descriptor,i))throw new Error(`Harness signal descriptor collision for "${i.harness}"`);r.add(i.harness)}for(let i of t){let s=rt.get(i.harness);rt.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=rt.get(i.harness);!s||s.registrations<=1?rt.delete(i.harness):s.registrations-=1}}}}function Ed(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>Br||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 wh(){let e=new Map(ls.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 vh(e){let t=e.map(Ed),n=new Map(ls.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 Eh(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 kh(e,t){return cs.run(e,t)}function Ih(e,t,n={}){let r=e.map(Te);return Gr(r),yn.run({descriptors:r,probesEnabled:n.probesEnabled!==!1},t)}function Yr(e){let t=Xr(e),n=t.env??{},r=Gr(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(_=>hd(_,n,o,i)),a=Ar(t,n),c=[Kr(n,s?.session_environment_keys),P(t.client_info?.session)?.slice(0,256)].find(_=>_!==void 0),d=wd(s?.harness,c),l=rs({cwd:t.cwd??process.cwd(),env:n,key:d}),f=vd(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 kd(e){return e==="unavailable"?{status:"unavailable",reason:"harness_unavailable"}:e==="missing"?{status:"unavailable",reason:"resolver_input_missing"}:{status:"failed",reason:"resolver_failed"}}function Id(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=pd(a,n,r,o);return{...kd(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 ps(e){let t=Xr(e),n=Yr(t),r=Gr(t.descriptors).find(d=>d.harness===n.harness),o=t.env??{},i=t.probes_enabled!==!1&&yn.getStore()?.probesEnabled!==!1&&!["0","false","off"].includes(P(o.PM_AGENT_PROBES)?.toLowerCase()??""),s=Ar(t,o),a=[o.PM_AGENT_ROLE,s.provenance?.role,Kr(o,r?.provenance_environment_keys.role),t.client_info?.provenance?.role,t.provenance?.role,fs(t.argv??[],"role")].some(d=>{let l=P(d)?.slice(0,256);return l!==void 0&&ze("role",l)===void 0}),c=Object.fromEntries(Vr.map(d=>[d,Id(d,n,r,t,o,i,d==="role"&&a)]));return{...n,provenance_outcomes:c}}function Sh(){return process.env.PM_AUTHOR}function Th(e){e===void 0?delete process.env.PM_AUTHOR:process.env.PM_AUTHOR=e}function Ch(e){return Yr(e).harness}function Sd(e,t,n){let r=Xr(n),o=Yr(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 hs(e){let t=hn.getStore();return t?.author===e?t.source:e.startsWith("harness:")?"detected":e==="unknown"?"unknown":"asserted"}function ys(e){let t=hn.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 gs(e){let t=hn.getStore();return t?.author===e&&t.source==="detected"&&t.instance?`${e}#${t.instance}`:e}function bs(e,t){let n=Sd(e,t);return hn.enterWith(n),n.author}import{createHash as Td}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]="ca5b60a5-80a7-5e7d-917f-4c7649bcbab6")}catch{}})();var Rh=["sha256","sha512"],Cd="sha256",ws="sha256";function We(e){if(e===void 0)return Cd;if(e==="sha256"||e==="sha512")return e;throw new TypeError(`unsupported_history_hash_algorithm:${String(e)}`)}function Ce(e,t){return Td(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]="13e158d2-14a0-5c14-a11c-a374b3e6ceac")}catch{}})();var Jr=1,Dh=1;function Nh(e){let t=e.pm_format_version;return typeof t=="number"&&Number.isInteger(t)&&t>=1?t:1}function vs(e){if(!(typeof e!="number"||!Number.isInteger(e)||e<=1))return e}function Od(e,t=1){return e<t?"outdated":e>t?"ahead":"current"}function Lh(e,t=1){let n=[],r=[];for(let o of e){let i=Od(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]="515840b7-cf86-5d71-8ac1-beac7fd7c8a8")}catch{}})();var xd={"in-progress":"in_progress",cancelled:"canceled"};function gn(e,t){if(t){let o=Fi(e,t);if(o)return o}if(typeof e!="string")return;let n=e.trim().toLowerCase();if(!n)return;let r=xd[n]??n;if(Zt.includes(r))return r}function ot(e,t){return gn(e,t)??e}function ge(e,t){return t.terminal_statuses.has(ot(e,t))}import{encode as zd}from"@toon-format/toon";import{isDeepStrictEqual as Ts}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]="5a40c811-2441-5507-93d2-523f6792e2f1")}catch{}})();var Rd=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 Ad(e){return[...new Set([Hi(e),Qr(e.key),Qr(e.cli_flag),...e.cli_aliases.map(t=>Qr(t))])]}function Is(e,t){for(let n of Ad(t)){if(!Object.hasOwn(e,n))continue;let r=e[n];if(r!==void 0)return r}}function Ss(e){return Array.isArray(e)?e.flatMap(t=>Ss(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 Es(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 g(`${t} must be one of true|false|1|0|yes|no`,w.USAGE)}function ks(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 g(`${t} must be a number`,w.USAGE);return r}function Dd(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 g(`${t} must be valid JSON ${n}`,w.USAGE)}function Nd(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 Ld(e,t,n){if(t.const!==void 0&&D(e)!==D(t.const))return`${n} must equal ${D(t.const)}`;if(t.enum!==void 0&&!t.enum.some(r=>D(r)===D(e)))return`${n} must be one of ${t.enum.map(r=>D(r)).join("|")}`;if(!Nd(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"&&!Xi(e))return`${n} must be an RFC 3339 date-time`}}function Pd(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 Md(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>Rd)return`${n} value schema exceeds maximum depth`;let o=Ld(e,t,n);if(o)return o;let i=Pd(e,t,n,r);if(i)return i;let s=Md(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 g(r,w.USAGE);return t}function xt(e,t,n){let r=n??`--${e.cli_flag}`;if(e.type==="array"||e.type==="object"){let i=Array.isArray(t)?t[t.length-1]:t;return i===void 0?void 0:Ve(e,Dd(i,r,e.type),r)}if(e.repeatable||e.type==="string_array"){let i=Ss(t);return e.type==="number"?Ve(e,i.map(s=>ks(s,r)),r):e.type==="boolean"?Ve(e,i.map(s=>Es(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,ks(o,r),r):e.type==="boolean"?Ve(e,Es(o,r),r):Ve(e,typeof o=="string"?o:String(o),r)}function jd(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 Wh(e,t,n){let r={},o=[];for(let i of t.command_to_fields.get("create")??[]){let s=Is(e,i);if(s===void 0){jd(i,n)&&o.push(`--${i.cli_flag}`);continue}r[i.metadata_key]=xt(i,s)}return{values:r,missing_required_flags:[...new Set(o)].sort((i,s)=>i.localeCompare(s))}}function Vh(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=Is(e,s);a!==void 0&&(i.has(s.metadata_key)||(i.add(s.metadata_key),r[s.metadata_key]=xt(s,a)))}return r}import{decode as Fd}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]="aaa2be03-9478-5fbe-82e6-e4fc86e3735b")}catch{}})();function Zr(e){return{value:Fd(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]="79626299-17a8-573a-9b66-ce37c65e2f5d")}catch{}})();var $d=/^\s*(<<<<<<<|=======|>>>>>>>)(?:\s.*)?$/;function Hd(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($d);if(!i)continue;let s=i[1];n.push({line:r+1,marker:s,text:o})}return n}function wn(e){return Hd(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]="e44f5fd8-80d0-57b0-bb1d-ab2e69a99e7e")}catch{}})();var ro=new Set(["schema","tracker","auto","none"]),xs=new Set(["source","isolated","snapshot"]),Ud=new Set(["legacy","local_mutation","local_source_ref","acknowledged","invalid_provenance","foreign_source_ref"]),Bd=new Set(["passed","failed","stopped","canceled"]),Wd=new Set(vi);function at(e){return e.replaceAll("\\","/")}function Rs(e){for(let t of e)if(t!==0)return t;return 0}function En(e){for(let[t,n]of Object.entries(e))n===void 0&&delete e[t]}var As=["id","title","description","created_at","updated_at"],Vd=new Set(ve);function Ds(e){if(e?.schema)return{statusRegistry:dn(e.schema),fieldRegistry:$i(e.schema),unknownFieldPolicy:e.schema.unknown_field_policy??"allow",extensionFieldNames:new Set(e.extensionFieldNames??[]),onWarning:e.onWarning}}function qd(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 g(`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 Dt(e,t){throw new g(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 Ns(e){let t=new Set(Vd);for(let n of e.fieldRegistry?.definitions??[])t.add(n.metadata_key);for(let n of e.extensionFieldNames)t.add(n);return t}function I(e,t){e||Oe(t)}function Nt(e,t){return(typeof e!="object"||e===null||Array.isArray(e))&&Oe(t),e}function eo(e,t){let n=e[t];I(typeof n=="string",`${t} must be a string`),I(pe(n),`${t} must be a valid ISO timestamp`)}function Cs(e,t,n){let r=e[t];r!==void 0&&I(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&&(I(typeof r=="string",`${n} must be a string`),I(pe(r),`${n} must be a valid ISO timestamp`))}function Gd(e){if(e!==void 0){I(Array.isArray(e),"event.recurrence.by_weekday must be an array");for(let t of e){I(typeof t=="string","event.recurrence.by_weekday entries must be strings");let n=t.trim().toLowerCase();I(rn.includes(n),`event.recurrence.by_weekday entries must be one of: ${rn.join(", ")}`)}}}function Kd(e){if(e!==void 0){I(Array.isArray(e),"event.recurrence.by_month_day must be an array");for(let t of e)I(typeof t=="number"&&Number.isInteger(t)&&t>=1&&t<=31,"event.recurrence.by_month_day entries must be integers 1..31")}}function Xd(e){if(e!==void 0){I(Array.isArray(e),"event.recurrence.exdates must be an array");for(let t of e)I(typeof t=="string","event.recurrence.exdates entries must be strings"),I(pe(t),"event.recurrence.exdates entries must be valid ISO timestamps")}}function Yd(e){let t=Nt(e,"event.recurrence must be an object");I(typeof t.freq=="string","event.recurrence.freq must be a string");let n=t.freq.trim().toLowerCase();I(nn.includes(n),`event.recurrence.freq must be one of: ${nn.join(", ")}`),Cs(t,"interval","event.recurrence.interval"),Cs(t,"count","event.recurrence.count"),oo(t,"until","event.recurrence.until"),Gd(t.by_weekday),Kd(t.by_month_day),Xd(t.exdates)}function Jd(e){for(let r of As)I(typeof e[r]=="string",`${r} is required and must be a string`);let t=e.type;I(typeof t=="string"&&t.trim().length>0,"type must be a non-empty string");let n=e.pm_format_version;return n!==void 0&&I(typeof n=="number"&&Number.isInteger(n)&&n>=Jr,`pm_format_version must be an integer >= ${Jr}`),t}function Qd(e,t){let n=e.status;I(typeof n=="string"&&n.trim().length>0,"status must be a non-empty string");let r=t?.statusRegistry,o=gn(n,r),i=r?r.definitions.map(s=>s.id):[...Zt];I(o!==void 0,`status must be one of: ${i.join(", ")}`)}function Zd(e){let t=e.priority;I(typeof t=="number"&&Number.isInteger(t)&&[0,1,2,3,4].includes(t),"priority must be an integer 0..4");let n=e.tags;I(Array.isArray(n),"tags must be an array");for(let r of n)I(typeof r=="string","tags entries must be strings")}function el(e){let t=e.confidence;if(t!==void 0){if(typeof t=="number"){I(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"||tn.includes(n);I(r,`confidence string value must be one of: ${[...tn,"med"].join(", ")}`);return}I(!1,"confidence must be a number or string")}}function tl(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"||en.includes(n);I(r,`severity value must be one of: ${[...en,"med"].join(", ")}`)}function nl(e){e.regression!==void 0&&typeof e.regression!="boolean"&&Oe("regression must be a boolean")}function rl(e){let t=e.reminders;if(t!==void 0){I(Array.isArray(t),"reminders must be an array");for(let n of t){let r=Nt(n,"reminders entries must be objects");I(typeof r.at=="string","reminder.at must be a string"),I(pe(r.at),"reminder.at must be a valid ISO timestamp"),I(typeof r.text=="string","reminder.text must be a string"),I(r.text.trim().length>0,"reminder.text must not be empty")}}}function ol(e){for(let t of["title","description","location","timezone"])e[t]!==void 0&&(I(typeof e[t]=="string",`event.${t} must be a string`),I(e[t].trim().length>0,`event.${t} must not be empty`))}function il(e){e.recurrence!==void 0&&(Yd(e.recurrence),e.recurrence.until!==void 0&&I(he(e.recurrence.until,e.start_at)>=0,"event.recurrence.until must be at or after event.start_at"))}function sl(e){let t=Nt(e,"events entries must be objects");I(typeof t.start_at=="string","event.start_at must be a string"),I(pe(t.start_at),"event.start_at must be a valid ISO timestamp"),t.end_at!==void 0&&(I(typeof t.end_at=="string","event.end_at must be a string"),I(pe(t.end_at),"event.end_at must be a valid ISO timestamp"),I(he(t.end_at,t.start_at)>0,"event.end_at must be after event.start_at")),ol(t),t.all_day!==void 0&&I(typeof t.all_day=="boolean","event.all_day must be a boolean"),il(t)}function al(e){let t=e.events;if(t!==void 0){I(Array.isArray(t),"events must be an array");for(let n of t)sl(n)}}function cl(e){for(let t of["source_type","source_owner","design","external_ref"]){let n=e[t];n!==void 0&&I(typeof n=="string",`${t} must be a string`)}}function dl(e){let t=e.type_options;if(t===void 0)return;let n=Nt(t,"type_options must be an object");for(let[r,o]of Object.entries(n))I(r.trim().length>0,"type_options keys must be non-empty"),I(typeof o=="string","type_options values must be strings"),I(o.trim().length>0,"type_options values must be non-empty strings")}function ll(e,t,n){if(n?.fieldRegistry)for(let r of n.fieldRegistry.definitions){let o=e[r.metadata_key];if(o===void 0){qd(r,t)&&Oe(`missing required schema field: ${r.metadata_key}`);continue}try{e[r.metadata_key]=xt(r,o,`metadata field "${r.metadata_key}"`)}catch(i){Oe(String(i?.message).replace(/^Invalid\s+/u,""))}}}function ul(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let n=Ns(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=Nt(e,"item metadata must be an object"),r=Jd(n);Qd(n,t),Zd(n),el(n),tl(n),nl(n),eo(n,"created_at"),eo(n,"updated_at"),n.deadline!==void 0&&eo(n,"deadline"),rl(n),al(n),oo(n,"closed_at","closed_at"),oo(n,"completed_at","completed_at"),cl(n),dl(n),ll(n,r,t),ul(n,t)}function fl(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=he(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=he(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 ml(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=he(n.at,r.at);return o!==0?o:n.text.localeCompare(r.text)});return t.length===0?void 0:t}function _l(e){if(!e)return;let t=e.freq.trim().toLowerCase();if(!nn.includes(t))return;let n=Array.from(new Set((e.by_weekday??[]).map(s=>s.trim().toLowerCase()).filter(s=>rn.includes(s)))).sort((s,a)=>wr(s)-wr(a)),r=Array.from(new Set((e.by_month_day??[]).filter(s=>Number.isInteger(s)&&s>=1&&s<=31).map(s=>s))).sort((s,a)=>s-a),o=Array.from(new Set((e.exdates??[]).map(s=>s.trim()).filter(s=>pe(s)))).sort((s,a)=>he(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 pl(e){return!Array.isArray(e)||e.length===0?void 0:[...e].map(hl).sort(yl)}function hl(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:_l(e.recurrence)};return En(t),t}function yl(e,t){return Rs([he(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 gl(e){if(!(!e||e.length===0))return e.map(t=>({path:at(t.path),scope:t.scope,note:t.note?.trim()||void 0}))}function bl(e){if(!e||e.length===0)return;let t=e.map(kl).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)=>Rs([he(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 it(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?Math.floor(e):void 0}function wl(e){return typeof e=="number"&&Number.isFinite(e)&&e>=1?Math.floor(e):void 0}function no(e){return typeof e=="string"?e:""}function vl(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 vn(e,t){return typeof e=="string"&&t.has(e)?e:void 0}function El(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:vn(n.requested_pm_context_mode,ro),pm_context_mode:vn(n.pm_context_mode,ro),workspace_context_mode:vn(n.workspace_context_mode,xs),trust_reason:vn(n.trust_reason,Ud)}));return t.length>0?t:void 0}function kl(e){let t=typeof e.run_id=="string"?e.run_id.trim():"",n=e.kind==="test"||e.kind==="test-all"?e.kind:"test",r=Bd.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:wl(e.attempt),resumed_from:e.resumed_from?.trim()||void 0,passed:it(e.passed)??0,failed:it(e.failed)??0,skipped:it(e.skipped)??0,items:it(e.items),linked_tests:it(e.linked_tests),fail_on_skipped_triggered:e.fail_on_skipped_triggered===!0?!0:void 0,measurements:vl(e.measurements),executions:El(e.executions)};return En(o),o}function Il(e){if(!(!Array.isArray(e)||e.length===0))return e.map(xl)}function Rt(e){if(!Array.isArray(e))return;let t=[...new Set(e.filter(n=>typeof n=="string").map(n=>n.trim()).filter(n=>n.length>0))].sort((n,r)=>n.localeCompare(r));return t.length>0?t:void 0}function 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 Os(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 Sl(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 Tl(e){let t=e?.trim().toLowerCase();if(!(!t||!ro.has(t)))return t}function Cl(e){let t=e?.trim().toLowerCase();if(!(!t||!xs.has(t)))return t}function Ol(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||!pe(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 xl(e){let t={command:e.command?.trim()||void 0,path:e.path?at(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:Tl(e.pm_context_mode),workspace_context_mode:Cl(e.workspace_context_mode),...Ol(e.provenance,e.provenance_invalid),env_set:Os(e.env_set),env_clear:Rt(e.env_clear),shared_host_safe:e.shared_host_safe===!0?!0:void 0,assert_stdout_contains:Rt(e.assert_stdout_contains),assert_stdout_regex:Rt(e.assert_stdout_regex),assert_stderr_contains:Rt(e.assert_stderr_contains),assert_stderr_regex:Rt(e.assert_stderr_regex),assert_stdout_min_lines:it(e.assert_stdout_min_lines),assert_json_field_equals:Os(e.assert_json_field_equals),assert_json_field_gte:Sl(e.assert_json_field_gte),note:e.note?.trim()||void 0};return En(t),t}function Rl(e){if(!(!e||e.length===0))return[...e].map(t=>({path:at(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 Al(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=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 Dl(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=E(r.path);if(!o)continue;let i={path:at(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 Nl(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=E(r.command),i=E(r.path);if(!o&&!i)continue;let s={};o&&(s.command=o),i&&(s.path=at(i));let a=E(r.note);a&&(s.note=a),t.push(s)}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=E(r.path);if(!o)continue;let i={path:at(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 Pl(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&&Wd.has(o)?o:void 0,s=Ci(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 Ml(d,t),d}function Ml(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",Al],["files","files",Dl],["tests","tests",Nl],["docs","docs",Ll]];for(let[i,s,a]of o){let c=a(t[s]);c&&(e[i]=c)}}function jl(e){if(!Array.isArray(e))return;let t=e.flatMap(n=>{let r=Pl(n);return r?[r]:[]});return t.sort((n,r)=>n.order-r.order),t.length>0?t:void 0}function Fl(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 $l(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 Hl(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 zl(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 st(e){let t=0;for(;t<e.length&&e[t]===`
6
- `;)t+=1;return e.slice(t).trimEnd()}function Ul(e){if(e===void 0)return;if(typeof e=="number")return e;let t=e.trim().toLowerCase();if(t==="med")return"medium";if(tn.includes(t))return t}function Bl(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(t==="med")return"medium";if(en.includes(t))return t}function At(e){return e||void 0}function Wl(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 Vl(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]=xt(r,o,`metadata field "${r.metadata_key}"`))}}function ql(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let n=Ns(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(", ")}`),r.length>0&&t.onWarning?.(`item_unknown_schema_fields:${r.join(",")}`)}function kn(e,t={}){let n=Ds(t),r=gn(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:vs(e.pm_format_version),source_type:E(e.source_type),type_options:zl(e.type_options),status:r,priority:e.priority,tags:o,created_at:e.created_at,updated_at:e.updated_at,dependencies:fl(e.dependencies),comments:to(e.comments),notes:to(e.notes),learnings:to(e.learnings),files:gl(e.files),tests:Il(e.tests),test_runs:bl(e.test_runs),docs:Rl(e.docs),deadline:At(e.deadline),reminders:ml(e.reminders),events:pl(e.events),closed_at:At(e.closed_at),completed_at:At(e.completed_at),assignee:E(e.assignee),claim_principal:E(e.claim_principal),source_owner:E(e.source_owner),author:At(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:Ul(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:Bl(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:At(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:jl(e.plan_steps),plan_decisions:Fl(e.plan_decisions),plan_discoveries:$l(e.plan_discoveries),plan_validation:Hl(e.plan_validation)};return Wl(i,e),Vl(i,n),ql(i,n),En(i),i}function Ls(e){return T(e,ve)}function Gl(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 Kl(e){if(!e.startsWith("{"))return{frontMatter:"",body:e};let t=Gl(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 Xl(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 kn(e,{...t,onWarning:void 0})}function Yl(e,t,n={}){let r=Xl(e);r.stripped&&n.onWarning?.("json_markdown_leading_yaml_frontmatter_ignored");let{frontMatter:o,body:i}=Kl(r.content);o||(e.trimStart().startsWith("{")&&Dt("json_markdown","JSON front matter is not valid JSON"),Dt("json_markdown","JSON Markdown item document is missing JSON front matter"));let s;try{s=JSON.parse(o)}catch{Dt("json_markdown","JSON front matter is not valid JSON")}return io(s,t),{metadata:so(s,n),body:st(i)}}function Jl(e,t,n={}){let r;try{r=Zr(e).value}catch{Dt("toon","TOON item document is not valid TOON")}I(typeof r=="object"&&r!==null&&!Array.isArray(r),"TOON item document must be an object");let o=r;if(!As.some(a=>Object.prototype.hasOwnProperty.call(o,a))&&!Object.prototype.hasOwnProperty.call(o,"front_matter")&&Dt("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),I(o.body===void 0||typeof o.body=="string","TOON item document body must be a string"),{metadata:so(o.front_matter,n),body:st(typeof o.body=="string"?o.body:"")};let{body:i,...s}=o;return I(i===void 0||typeof i=="string","TOON item document body must be a string"),io(s,t),{metadata:so(s,n),body:st(typeof i=="string"?i:"")}}function Ql(e,t={}){let n=kn(e.metadata,t),r=Ls(n),o=JSON.stringify(r,null,2),i=st(e.body??"");return i?`${o}
4
+ `).slice(-4096)];for(let y of _){if(y.length===0||y.length>262144)continue;let S=cd(y);if(p.model??=S.model,p.version??=S.version,p.model&&p.version)break}let b=Object.freeze(p);return Br.clear(),Br.set(s,b),b[e]}finally{V.closeSync(o)}}catch{return}}function ud(e,t){let n=0,r=(o,i)=>{if(i>4||n>=512)return;let s;try{s=V.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 fd(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 md(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 _d(e,t){let n={},r=4096;for(let o of fd(t)){let i=Buffer.alloc(o.length);V.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(md(n,a),n.model&&n.effort)break;if(n.model&&n.effort||r<=0)break}return n}function pd(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??ds.homedir(),".codex","sessions"),i=`${o}\0${r}`,s=_n.get(i);if(s)return s[e];let a=ud(o,r);if(!a){_n.set(i,ss);return}try{let c=V.openSync(a,"r");try{let d=V.fstatSync(c).size,l=_d(c,d);return _n.set(i,l),l[e]}finally{V.closeSync(c)}}catch{_n.set(i,ss);return}}function hd(e,t,n,r){let o=yn.getStore();if(!(t.probes_enabled!==!1&&o?.probesEnabled!==!1&&!["0","false","off"].includes(P(n.PM_AGENT_PROBES)?.toLowerCase()??"")))return;let i=r?.provenance_resolvers[e];if(i==="claude_session_file")return ld(e,t,n);if(i==="codex_session_file")return pd(e,t,n);if(i==="ai_agent_version"){let s=P(n.AI_AGENT);return!s||!r||!pn(s,r.harness)?void 0:/(?:^|[@/\s])v?(\d+\.\d+(?:\.\d+)?(?:[-+][A-Za-z0-9.-]+)?)$/u.exec(s)?.[1]?.slice(0,256)}}function yd(e,t,n,r){if(e==="ai_agent_version"){let o=P(r.AI_AGENT);return o!==void 0&&pn(o,t.harness)?"available":"unavailable"}return e==="codex_session_file"?P(r.CODEX_THREAD_ID)!==void 0?"available":"unavailable":hs(n,r).status}function Yr(e){return e||(ls.getStore()??{env:process.env,argv:process.argv})}function gd(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 pn(d.slice(d.lastIndexOf("/")+1),a)})),s=e.client_names.some(a=>r===a||pn(r,a));return o||i||s}function bd(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 wd(e){let t=e.find(([n])=>n!==void 0);return t?.[0]?{value:t[0],source:t[1]}:void 0}function vd(e,t,n,r,o,i){let s=`PM_AGENT_${e.toUpperCase().replaceAll("-","_")}`,a=new Set([...Gr,...Object.keys(r?.provenance_environment_keys??{})]),c,d,l;a.has(e)&&(c=ze(e,P(n[s])?.slice(0,256)),l=ze(e,_s(t.argv??[],e)),d=ze(e,id(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])),b=ze(e,Ur(m,e)),y=ze(e,Ur(t.provenance,e)),S=hd(e,t,n,r);return wd([[c,"override"],[p,"session"],[l,"argv"],[_,"environment"],[b,"mcp_client"],[y,"host"],[S,"probe"]])??bd(e,i)??(d?{value:d,source:"argv"}:void 0)}function Ed(e,t){if(!(!e||!t))return td("sha256").update(`pm-agent-instance:v1\0${e}\0${t}`).digest("hex").slice(0,24)}function kd(e,t,n,r,o){let i=Object.keys(n?.provenance_environment_keys??{}),s=new Set([...Gr,...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=vd(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 yh(e){let t=e.map(Te),n=new Map(ms.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=rt.get(i.harness);if(s&&!od(s.descriptor,i))throw new Error(`Harness signal descriptor collision for "${i.harness}"`);r.add(i.harness)}for(let i of t){let s=rt.get(i.harness);rt.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=rt.get(i.harness);!s||s.registrations<=1?rt.delete(i.harness):s.registrations-=1}}}}function Id(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 gh(){let e=new Map(fs.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 bh(e){let t=e.map(Id),n=new Map(fs.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 wh(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 vh(e,t){return ls.run(e,t)}function Eh(e,t,n={}){let r=e.map(Te);return Kr(r),yn.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(_=>gd(_,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=Ed(s?.harness,c),l=is({cwd:t.cwd??process.cwd(),env:n,key:d}),f=kd(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 Sd(e){return e==="unavailable"?{status:"unavailable",reason:"harness_unavailable"}:e==="missing"?{status:"unavailable",reason:"resolver_input_missing"}:{status:"failed",reason:"resolver_failed"}}function Td(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=yd(a,n,r,o);return{...Sd(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 ys(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&&yn.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,_s(t.argv??[],"role")].some(d=>{let l=P(d)?.slice(0,256);return l!==void 0&&ze("role",l)===void 0}),c=Object.fromEntries(Gr.map(d=>[d,Td(d,n,r,t,o,i,d==="role"&&a)]));return{...n,provenance_outcomes:c}}function kh(){return process.env.PM_AUTHOR}function Ih(e){e===void 0?delete process.env.PM_AUTHOR:process.env.PM_AUTHOR=e}function Sh(e){return Jr(e).harness}function Cd(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 gs(e){let t=hn.getStore();return t?.author===e?t.source:e.startsWith("harness:")?"detected":e==="unknown"?"unknown":"asserted"}function bs(e){let t=hn.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 ws(e){let t=hn.getStore();return t?.author===e&&t.source==="detected"&&t.instance?`${e}#${t.instance}`:e}function vs(e,t){let n=Cd(e,t);return hn.enterWith(n),n.author}import{createHash as Od}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]="ca5b60a5-80a7-5e7d-917f-4c7649bcbab6")}catch{}})();var Oh=["sha256","sha512"],xd="sha256",Es="sha256";function We(e){if(e===void 0)return xd;if(e==="sha256"||e==="sha512")return e;throw new TypeError(`unsupported_history_hash_algorithm:${String(e)}`)}function Ce(e,t){return Od(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]="13e158d2-14a0-5c14-a11c-a374b3e6ceac")}catch{}})();var Qr=1,Rh=1;function Ah(e){let t=e.pm_format_version;return typeof t=="number"&&Number.isInteger(t)&&t>=1?t:1}function ks(e){if(!(typeof e!="number"||!Number.isInteger(e)||e<=1))return e}function Rd(e,t=1){return e<t?"outdated":e>t?"ahead":"current"}function Dh(e,t=1){let n=[],r=[];for(let o of e){let i=Rd(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]="515840b7-cf86-5d71-8ac1-beac7fd7c8a8")}catch{}})();var Ad={"in-progress":"in_progress",cancelled:"canceled"};function gn(e,t){if(t){let o=Hi(e,t);if(o)return o}if(typeof e!="string")return;let n=e.trim().toLowerCase();if(!n)return;let r=Ad[n]??n;if(Zt.includes(r))return r}function ot(e,t){return gn(e,t)??e}function ge(e,t){return t.terminal_statuses.has(ot(e,t))}import{encode as Bd}from"@toon-format/toon";import{isDeepStrictEqual as Os}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]="5a40c811-2441-5507-93d2-523f6792e2f1")}catch{}})();var Dd=16;function Zr(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 Nd(e){return[...new Set([Ui(e),Zr(e.key),Zr(e.cli_flag),...e.cli_aliases.map(t=>Zr(t))])]}function Ts(e,t){for(let n of Nd(t)){if(!Object.hasOwn(e,n))continue;let r=e[n];if(r!==void 0)return r}}function Cs(e){return Array.isArray(e)?e.flatMap(t=>Cs(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 Is(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 g(`${t} must be one of true|false|1|0|yes|no`,w.USAGE)}function Ss(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 g(`${t} must be a number`,w.USAGE);return r}function Ld(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 g(`${t} must be valid JSON ${n}`,w.USAGE)}function Pd(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 Md(e,t,n){if(t.const!==void 0&&D(e)!==D(t.const))return`${n} must equal ${D(t.const)}`;if(t.enum!==void 0&&!t.enum.some(r=>D(r)===D(e)))return`${n} must be one of ${t.enum.map(r=>D(r)).join("|")}`;if(!Pd(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"&&!Ji(e))return`${n} must be an RFC 3339 date-time`}}function jd(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 Fd(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>Dd)return`${n} value schema exceeds maximum depth`;let o=Md(e,t,n);if(o)return o;let i=jd(e,t,n,r);if(i)return i;let s=Fd(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 g(r,w.USAGE);return t}function xt(e,t,n){let r=n??`--${e.cli_flag}`;if(e.type==="array"||e.type==="object"){let i=Array.isArray(t)?t[t.length-1]:t;return i===void 0?void 0:Ve(e,Ld(i,r,e.type),r)}if(e.repeatable||e.type==="string_array"){let i=Cs(t);return e.type==="number"?Ve(e,i.map(s=>Ss(s,r)),r):e.type==="boolean"?Ve(e,i.map(s=>Is(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,Ss(o,r),r):e.type==="boolean"?Ve(e,Is(o,r),r):Ve(e,typeof o=="string"?o:String(o),r)}function $d(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=Ts(e,i);if(s===void 0){$d(i,n)&&o.push(`--${i.cli_flag}`);continue}r[i.metadata_key]=xt(i,s)}return{values:r,missing_required_flags:[...new Set(o)].sort((i,s)=>i.localeCompare(s))}}function 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=Ts(e,s);a!==void 0&&(i.has(s.metadata_key)||(i.add(s.metadata_key),r[s.metadata_key]=xt(s,a)))}return r}import{decode as Hd}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]="aaa2be03-9478-5fbe-82e6-e4fc86e3735b")}catch{}})();function eo(e){return{value:Hd(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]="79626299-17a8-573a-9b66-ce37c65e2f5d")}catch{}})();var zd=/^\s*(<<<<<<<|=======|>>>>>>>)(?:\s.*)?$/;function Ud(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(zd);if(!i)continue;let s=i[1];n.push({line:r+1,marker:s,text:o})}return n}function wn(e){return Ud(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]="e44f5fd8-80d0-57b0-bb1d-ab2e69a99e7e")}catch{}})();var oo=new Set(["schema","tracker","auto","none"]),As=new Set(["source","isolated","snapshot"]),Wd=new Set(["legacy","local_mutation","local_source_ref","acknowledged","invalid_provenance","foreign_source_ref"]),Vd=new Set(["passed","failed","stopped","canceled"]),Gd=new Set(ki);function at(e){return e.replaceAll("\\","/")}function Ds(e){for(let t of e)if(t!==0)return t;return 0}function En(e){for(let[t,n]of Object.entries(e))n===void 0&&delete e[t]}var Ns=["id","title","description","created_at","updated_at"],qd=new Set(ve);function Ls(e){if(e?.schema)return{statusRegistry:dn(e.schema),fieldRegistry:zi(e.schema),unknownFieldPolicy:e.schema.unknown_field_policy??"allow",extensionFieldNames:new Set(e.extensionFieldNames??[]),onWarning:e.onWarning}}function Kd(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 g(`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 Dt(e,t){throw new g(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 Ps(e){let t=new Set(qd);for(let n of e.fieldRegistry?.definitions??[])t.add(n.metadata_key);for(let n of e.extensionFieldNames)t.add(n);return t}function I(e,t){e||Oe(t)}function Nt(e,t){return(typeof e!="object"||e===null||Array.isArray(e))&&Oe(t),e}function to(e,t){let n=e[t];I(typeof n=="string",`${t} must be a string`),I(pe(n),`${t} must be a valid ISO timestamp`)}function xs(e,t,n){let r=e[t];r!==void 0&&I(typeof r=="number"&&Number.isInteger(r)&&r>=1,`${n} must be an integer >= 1`)}function io(e,t,n){let r=e[t];r!==void 0&&(I(typeof r=="string",`${n} must be a string`),I(pe(r),`${n} must be a valid ISO timestamp`))}function Xd(e){if(e!==void 0){I(Array.isArray(e),"event.recurrence.by_weekday must be an array");for(let t of e){I(typeof t=="string","event.recurrence.by_weekday entries must be strings");let n=t.trim().toLowerCase();I(rn.includes(n),`event.recurrence.by_weekday entries must be one of: ${rn.join(", ")}`)}}}function Yd(e){if(e!==void 0){I(Array.isArray(e),"event.recurrence.by_month_day must be an array");for(let t of e)I(typeof t=="number"&&Number.isInteger(t)&&t>=1&&t<=31,"event.recurrence.by_month_day entries must be integers 1..31")}}function Jd(e){if(e!==void 0){I(Array.isArray(e),"event.recurrence.exdates must be an array");for(let t of e)I(typeof t=="string","event.recurrence.exdates entries must be strings"),I(pe(t),"event.recurrence.exdates entries must be valid ISO timestamps")}}function Qd(e){let t=Nt(e,"event.recurrence must be an object");I(typeof t.freq=="string","event.recurrence.freq must be a string");let n=t.freq.trim().toLowerCase();I(nn.includes(n),`event.recurrence.freq must be one of: ${nn.join(", ")}`),xs(t,"interval","event.recurrence.interval"),xs(t,"count","event.recurrence.count"),io(t,"until","event.recurrence.until"),Xd(t.by_weekday),Yd(t.by_month_day),Jd(t.exdates)}function Zd(e){for(let r of Ns)I(typeof e[r]=="string",`${r} is required and must be a string`);let t=e.type;I(typeof t=="string"&&t.trim().length>0,"type must be a non-empty string");let n=e.pm_format_version;return n!==void 0&&I(typeof n=="number"&&Number.isInteger(n)&&n>=Qr,`pm_format_version must be an integer >= ${Qr}`),t}function el(e,t){let n=e.status;I(typeof n=="string"&&n.trim().length>0,"status must be a non-empty string");let r=t?.statusRegistry,o=gn(n,r),i=r?r.definitions.map(s=>s.id):[...Zt];I(o!==void 0,`status must be one of: ${i.join(", ")}`)}function tl(e){let t=e.priority;I(typeof t=="number"&&Number.isInteger(t)&&[0,1,2,3,4].includes(t),"priority must be an integer 0..4");let n=e.tags;I(Array.isArray(n),"tags must be an array");for(let r of n)I(typeof r=="string","tags entries must be strings")}function nl(e){let t=e.confidence;if(t!==void 0){if(typeof t=="number"){I(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"||tn.includes(n);I(r,`confidence string value must be one of: ${[...tn,"med"].join(", ")}`);return}I(!1,"confidence must be a number or string")}}function rl(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"||en.includes(n);I(r,`severity value must be one of: ${[...en,"med"].join(", ")}`)}function ol(e){e.regression!==void 0&&typeof e.regression!="boolean"&&Oe("regression must be a boolean")}function il(e){let t=e.reminders;if(t!==void 0){I(Array.isArray(t),"reminders must be an array");for(let n of t){let r=Nt(n,"reminders entries must be objects");I(typeof r.at=="string","reminder.at must be a string"),I(pe(r.at),"reminder.at must be a valid ISO timestamp"),I(typeof r.text=="string","reminder.text must be a string"),I(r.text.trim().length>0,"reminder.text must not be empty")}}}function sl(e){for(let t of["title","description","location","timezone"])e[t]!==void 0&&(I(typeof e[t]=="string",`event.${t} must be a string`),I(e[t].trim().length>0,`event.${t} must not be empty`))}function al(e){e.recurrence!==void 0&&(Qd(e.recurrence),e.recurrence.until!==void 0&&I(he(e.recurrence.until,e.start_at)>=0,"event.recurrence.until must be at or after event.start_at"))}function cl(e){let t=Nt(e,"events entries must be objects");I(typeof t.start_at=="string","event.start_at must be a string"),I(pe(t.start_at),"event.start_at must be a valid ISO timestamp"),t.end_at!==void 0&&(I(typeof t.end_at=="string","event.end_at must be a string"),I(pe(t.end_at),"event.end_at must be a valid ISO timestamp"),I(he(t.end_at,t.start_at)>0,"event.end_at must be after event.start_at")),sl(t),t.all_day!==void 0&&I(typeof t.all_day=="boolean","event.all_day must be a boolean"),al(t)}function dl(e){let t=e.events;if(t!==void 0){I(Array.isArray(t),"events must be an array");for(let n of t)cl(n)}}function ll(e){for(let t of["source_type","source_owner","design","external_ref"]){let n=e[t];n!==void 0&&I(typeof n=="string",`${t} must be a string`)}}function ul(e){let t=e.type_options;if(t===void 0)return;let n=Nt(t,"type_options must be an object");for(let[r,o]of Object.entries(n))I(r.trim().length>0,"type_options keys must be non-empty"),I(typeof o=="string","type_options values must be strings"),I(o.trim().length>0,"type_options values must be non-empty strings")}function fl(e,t,n){if(n?.fieldRegistry)for(let r of n.fieldRegistry.definitions){let o=e[r.metadata_key];if(o===void 0){Kd(r,t)&&Oe(`missing required schema field: ${r.metadata_key}`);continue}try{e[r.metadata_key]=xt(r,o,`metadata field "${r.metadata_key}"`)}catch(i){Oe(String(i?.message).replace(/^Invalid\s+/u,""))}}}function ml(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let n=Ps(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 so(e,t){let n=Nt(e,"item metadata must be an object"),r=Zd(n);el(n,t),tl(n),nl(n),rl(n),ol(n),to(n,"created_at"),to(n,"updated_at"),n.deadline!==void 0&&to(n,"deadline"),il(n),dl(n),io(n,"closed_at","closed_at"),io(n,"completed_at","completed_at"),ll(n),ul(n),fl(n,r,t),ml(n,t)}function _l(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=he(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 no(e){if(!(!e||e.length===0))return[...e].sort((t,n)=>{let r=he(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 pl(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=he(n.at,r.at);return o!==0?o:n.text.localeCompare(r.text)});return t.length===0?void 0:t}function hl(e){if(!e)return;let t=e.freq.trim().toLowerCase();if(!nn.includes(t))return;let n=Array.from(new Set((e.by_weekday??[]).map(s=>s.trim().toLowerCase()).filter(s=>rn.includes(s)))).sort((s,a)=>vr(s)-vr(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=>pe(s)))).sort((s,a)=>he(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 yl(e){return!Array.isArray(e)||e.length===0?void 0:[...e].map(gl).sort(bl)}function gl(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:hl(e.recurrence)};return En(t),t}function bl(e,t){return Ds([he(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 wl(e){if(!(!e||e.length===0))return e.map(t=>({path:at(t.path),scope:t.scope,note:t.note?.trim()||void 0}))}function vl(e){if(!e||e.length===0)return;let t=e.map(Sl).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)=>Ds([he(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 it(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?Math.floor(e):void 0}function El(e){return typeof e=="number"&&Number.isFinite(e)&&e>=1?Math.floor(e):void 0}function ro(e){return typeof e=="string"?e:""}function kl(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 vn(e,t){return typeof e=="string"&&t.has(e)?e:void 0}function Il(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:vn(n.requested_pm_context_mode,oo),pm_context_mode:vn(n.pm_context_mode,oo),workspace_context_mode:vn(n.workspace_context_mode,As),trust_reason:vn(n.trust_reason,Wd)}));return t.length>0?t:void 0}function Sl(e){let t=typeof e.run_id=="string"?e.run_id.trim():"",n=e.kind==="test"||e.kind==="test-all"?e.kind:"test",r=Vd.has(e.status)?e.status:"failed",o={run_id:t,kind:n,status:r,started_at:ro(e.started_at),finished_at:ro(e.finished_at),recorded_at:ro(e.recorded_at),attempt:El(e.attempt),resumed_from:e.resumed_from?.trim()||void 0,passed:it(e.passed)??0,failed:it(e.failed)??0,skipped:it(e.skipped)??0,items:it(e.items),linked_tests:it(e.linked_tests),fail_on_skipped_triggered:e.fail_on_skipped_triggered===!0?!0:void 0,measurements:kl(e.measurements),executions:Il(e.executions)};return En(o),o}function Tl(e){if(!(!Array.isArray(e)||e.length===0))return e.map(Al)}function Rt(e){if(!Array.isArray(e))return;let t=[...new Set(e.filter(n=>typeof n=="string").map(n=>n.trim()).filter(n=>n.length>0))].sort((n,r)=>n.localeCompare(r));return t.length>0?t:void 0}function co(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function lo(e){return e==="__proto__"||e==="constructor"||e==="prototype"}function Rs(e){if(!co(e))return;let t=Object.entries(e).map(([n,r])=>[n.trim(),String(r).trim()]).filter(([n,r])=>n.length>0&&!lo(n)&&r.length>0).sort(([n],[r])=>n.localeCompare(r));return t.length>0?Object.fromEntries(t):void 0}function Cl(e){if(!co(e))return;let t=Object.entries(e).map(([n,r])=>[n.trim(),Number(r)]).filter(([n,r])=>n.length>0&&!lo(n)&&Number.isFinite(r)).sort(([n],[r])=>n.localeCompare(r));return t.length>0?Object.fromEntries(t):void 0}function Ol(e){let t=e?.trim().toLowerCase();if(!(!t||!oo.has(t)))return t}function xl(e){let t=e?.trim().toLowerCase();if(!(!t||!As.has(t)))return t}function Rl(e,t){if(t===!0)return{provenance_invalid:!0};if(e===void 0)return{};if(!co(e))return{provenance_invalid:!0};let n=E(e.author),r=E(e.created_at),o=e.source_kind;return!n||!r||!pe(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 Al(e){let t={command:e.command?.trim()||void 0,path:e.path?at(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:Ol(e.pm_context_mode),workspace_context_mode:xl(e.workspace_context_mode),...Rl(e.provenance,e.provenance_invalid),env_set:Rs(e.env_set),env_clear:Rt(e.env_clear),shared_host_safe:e.shared_host_safe===!0?!0:void 0,assert_stdout_contains:Rt(e.assert_stdout_contains),assert_stdout_regex:Rt(e.assert_stdout_regex),assert_stderr_contains:Rt(e.assert_stderr_contains),assert_stderr_regex:Rt(e.assert_stderr_regex),assert_stdout_min_lines:it(e.assert_stdout_min_lines),assert_json_field_equals:Rs(e.assert_json_field_equals),assert_json_field_gte:Cl(e.assert_json_field_gte),note:e.note?.trim()||void 0};return En(t),t}function Dl(e){if(!(!e||e.length===0))return[...e].map(t=>({path:at(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 Nl(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=E(r.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 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=E(r.path);if(!o)continue;let i={path:at(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 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.command),i=E(r.path);if(!o&&!i)continue;let s={};o&&(s.command=o),i&&(s.path=at(i));let a=E(r.note);a&&(s.note=a),t.push(s)}return t.length>0?t:void 0}function Ml(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:at(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 jl(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&&Gd.has(o)?o:void 0,s=xi(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 Fl(d,t),d}function Fl(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",Nl],["files","files",Ll],["tests","tests",Pl],["docs","docs",Ml]];for(let[i,s,a]of o){let c=a(t[s]);c&&(e[i]=c)}}function $l(e){if(!Array.isArray(e))return;let t=e.flatMap(n=>{let r=jl(n);return r?[r]:[]});return t.sort((n,r)=>n.order-r.order),t.length>0?t:void 0}function Hl(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 zl(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 Ul(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 Bl(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 st(e){let t=0;for(;t<e.length&&e[t]===`
6
+ `;)t+=1;return e.slice(t).trimEnd()}function Wl(e){if(e===void 0)return;if(typeof e=="number")return e;let t=e.trim().toLowerCase();if(t==="med")return"medium";if(tn.includes(t))return t}function Vl(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(t==="med")return"medium";if(en.includes(t))return t}function At(e){return e||void 0}function Gl(e,t){let n=e,r=t;for(let[o,i]of Object.entries(r))lo(o)||Object.prototype.hasOwnProperty.call(n,o)||i===void 0||(n[o]=i)}function ql(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]=xt(r,o,`metadata field "${r.metadata_key}"`))}}function Kl(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let n=Ps(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(", ")}`),r.length>0&&t.onWarning?.(`item_unknown_schema_fields:${r.join(",")}`)}function kn(e,t={}){let n=Ls(t),r=gn(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:ks(e.pm_format_version),source_type:E(e.source_type),type_options:Bl(e.type_options),status:r,priority:e.priority,tags:o,created_at:e.created_at,updated_at:e.updated_at,dependencies:_l(e.dependencies),comments:no(e.comments),notes:no(e.notes),learnings:no(e.learnings),files:wl(e.files),tests:Tl(e.tests),test_runs:vl(e.test_runs),docs:Dl(e.docs),deadline:At(e.deadline),reminders:pl(e.reminders),events:yl(e.events),closed_at:At(e.closed_at),completed_at:At(e.completed_at),assignee:E(e.assignee),claim_principal:E(e.claim_principal),source_owner:E(e.source_owner),author:At(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:Wl(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:Vl(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:At(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:$l(e.plan_steps),plan_decisions:Hl(e.plan_decisions),plan_discoveries:zl(e.plan_discoveries),plan_validation:Ul(e.plan_validation)};return Gl(i,e),ql(i,n),Kl(i,n),En(i),i}function Ms(e){return T(e,ve)}function Xl(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 Yl(e){if(!e.startsWith("{"))return{frontMatter:"",body:e};let t=Xl(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 Jl(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 ao(e,t){return kn(e,{...t,onWarning:void 0})}function Ql(e,t,n={}){let r=Jl(e);r.stripped&&n.onWarning?.("json_markdown_leading_yaml_frontmatter_ignored");let{frontMatter:o,body:i}=Yl(r.content);o||(e.trimStart().startsWith("{")&&Dt("json_markdown","JSON front matter is not valid JSON"),Dt("json_markdown","JSON Markdown item document is missing JSON front matter"));let s;try{s=JSON.parse(o)}catch{Dt("json_markdown","JSON front matter is not valid JSON")}return so(s,t),{metadata:ao(s,n),body:st(i)}}function Zl(e,t,n={}){let r;try{r=eo(e).value}catch{Dt("toon","TOON item document is not valid TOON")}I(typeof r=="object"&&r!==null&&!Array.isArray(r),"TOON item document must be an object");let o=r;if(!Ns.some(a=>Object.prototype.hasOwnProperty.call(o,a))&&!Object.prototype.hasOwnProperty.call(o,"front_matter")&&Dt("toon","TOON input does not have the shape of an item document"),Object.prototype.hasOwnProperty.call(o,"front_matter"))return so(o.front_matter,t),I(o.body===void 0||typeof o.body=="string","TOON item document body must be a string"),{metadata:ao(o.front_matter,n),body:st(typeof o.body=="string"?o.body:"")};let{body:i,...s}=o;return I(i===void 0||typeof i=="string","TOON item document body must be a string"),so(s,t),{metadata:ao(s,n),body:st(typeof i=="string"?i:"")}}function eu(e,t={}){let n=kn(e.metadata,t),r=Ms(n),o=JSON.stringify(r,null,2),i=st(e.body??"");return i?`${o}
8
8
 
9
9
  ${i}
10
10
  `:`${o}
11
- `}function Zl(e,t={}){let n=kn(e.metadata,t),r=Ls(n),o=st(e.body??""),i={...r,body:o},s=JSON.parse(JSON.stringify(i)),a=zd(s),c;try{c=Zr(a).value}catch(d){throw new g("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(!Ts(c,s)){let d=typeof c=="object"&&c!==null&&!Array.isArray(c)?c:{},l=Object.keys(s).find(f=>!Ts(s[f],d[f]))??"document";throw new g(`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 In(e,t={}){let n=wn(e);if(n)throw new g(`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=Ds(t);return r==="toon"?Jl(e,o,t):Yl(e,o,t)}function Ps(e,t={}){return(t.format??"toon")==="toon"?Zl(e,t):Ql(e,t)}function re(e,t={}){return{metadata:kn(e.metadata,t),body:st(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]="cfedb84f-0525-5e02-af0a-d0e5691b5e0a")}catch{}})();async function eu(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=wn(n);if(r)throw new g(`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 g(`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 be(e,t){return(await eu(e,t)).entries}import ko 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]="3bfeb8d2-52c2-587a-9611-c4d5817cb47e")}catch{}})();function Ms(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 ta from"fast-json-patch";import Js from"node:fs/promises";import Au from"node:path";import j from"node:fs/promises";import z from"node:path";import{randomUUID as Fs}from"node:crypto";import{createRequire as au}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]="7d6d435b-b83a-53df-80c5-211437214161")}catch{}})();var tu=["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"],nu=["append","cancel","claim","close","comment_add","create","learning_add","note_add","reopen"],ru=new Set(tu),ou=new Set(nu),iu=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 su(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 ct(e){return e.event_class==="substantive"||e.event_class==="maintenance"?e.event_class:ru.has(e.op)?"maintenance":ou.has(e.op)||e.op!=="update"?"substantive":Array.isArray(e.patch)&&e.patch.length>0&&e.patch.every(t=>{let n=su(t);return n!==void 0&&iu.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]="a70d2ff9-9664-5cad-9657-ab9c54422bc2")}catch{}})();var cu="history-event-index.sqlite",fo="5",du=8,lu="history-event-index",mo=300,$s=3e4,uu="history-event-index-invalidation",fu="history-event-index-invalidations",mu=mo*2*1e3,On=Symbol("history-index-lock-contended"),qe=new Map;function Pt(e){return z.join(e,"runtime",cu)}function Rn(e){return z.join(e,"runtime",fu)}async function _u(e){let t=await j.readdir(Rn(e)).catch(n=>{if(ne(n))return[];throw n});return{pending:t.filter(n=>n.endsWith(".pending")).sort(),committed:t.filter(n=>n.endsWith(".committed")).sort()}}async function uo(e){let t=await _u(e);return{pending:(await Promise.all(t.pending.map(async n=>{let r=/^(\d+)-(unknown|\d+)-(\d+)-.+\.pending$/u.exec(n);if(r!==null){let o=r[2];if(await Ji({pid:Number(r[1]),...o==="unknown"?{}:{process_start_identity:o}},Math.max(0,Date.now()-Number(r[3])),mu))return n}return await j.rm(z.join(Rn(e),n),{force:!0}),null}))).filter(n=>n!==null),committed:t.committed}}async function Lt(e,t){let n=await W(e,uu,mo,`history-event-index-invalidation:${process.pid}`,!1,!1,$s);try{return await t()}finally{await n()}}async function pu(e){let t=Rn(e);await j.mkdir(t,{recursive:!0});let n=Fs(),r=await Yi(),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 hu(e,t){return e.length===t.length&&e.every((n,r)=>n===t[r])}async function Sn(e){try{await j.rm(Pt(e),{force:!0})}catch{}}async function An(e,t){let n=await W(e,lu,mo,`history-event-index:${process.pid}`,!1,!1,$s);try{return await t()}finally{await n()}}async function Hs(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 zs(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(_o)),qe.delete(e),qe.set(e,r),qe.size>du){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 zs(e,t){let n=await be(e,t);for(let[r,o]of n.entries())if(typeof o.ts!="string"||!tt(o.ts.trim()))throw new g(`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 yu(e){return(await Hs(e)).events}function gu(e){try{return e(["node","sqlite"].join(":")).DatabaseSync??null}catch{return null}}function bu(e,t){let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>=22?gu(t):null}var lo;function Dn(){return lo!==void 0||(lo=bu(process.versions.node,au(import.meta.url))),lo}function wu(e){e.exec(`
11
+ `}function tu(e,t={}){let n=kn(e.metadata,t),r=Ms(n),o=st(e.body??""),i={...r,body:o},s=JSON.parse(JSON.stringify(i)),a=Bd(s),c;try{c=eo(a).value}catch(d){throw new g("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(!Os(c,s)){let d=typeof c=="object"&&c!==null&&!Array.isArray(c)?c:{},l=Object.keys(s).find(f=>!Os(s[f],d[f]))??"document";throw new g(`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 In(e,t={}){let n=wn(e);if(n)throw new g(`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=Ls(t);return r==="toon"?Zl(e,o,t):Ql(e,o,t)}function js(e,t={}){return(t.format??"toon")==="toon"?tu(e,t):eu(e,t)}function re(e,t={}){return{metadata:kn(e.metadata,t),body:st(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]="cfedb84f-0525-5e02-af0a-d0e5691b5e0a")}catch{}})();async function nu(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=wn(n);if(r)throw new g(`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 g(`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 be(e,t){return(await nu(e,t)).entries}import So 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]="3bfeb8d2-52c2-587a-9611-c4d5817cb47e")}catch{}})();function Fs(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 ra from"fast-json-patch";import Zs from"node:fs/promises";import Au from"node:path";import j from"node:fs/promises";import z from"node:path";import{randomUUID as Hs}from"node:crypto";import{createRequire as du}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]="7d6d435b-b83a-53df-80c5-211437214161")}catch{}})();var ru=["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"],ou=["append","cancel","claim","close","comment_add","create","learning_add","note_add","reopen"],iu=new Set(ru),su=new Set(ou),au=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 cu(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 ct(e){return e.event_class==="substantive"||e.event_class==="maintenance"?e.event_class:iu.has(e.op)?"maintenance":su.has(e.op)||e.op!=="update"?"substantive":Array.isArray(e.patch)&&e.patch.length>0&&e.patch.every(t=>{let n=cu(t);return n!==void 0&&au.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]="812b558d-59f3-58d6-b04e-6a4f8689e866")}catch{}})();function uo(e){let t=process.emitWarning;process.emitWarning=(n,...r)=>{n==="SQLite is an experimental feature and might change at any time"&&r[0]==="ExperimentalWarning"||Reflect.apply(t,process,[n,...r])};try{return e(["node","sqlite"].join(":")).DatabaseSync??null}catch{return null}finally{process.emitWarning=t}}function Sn(e,t){let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>=22?uo(t):null}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="59e8ff0e-d2af-5f7a-a64b-1b86e075acdc")}catch{}})();var lu="history-event-index.sqlite",_o="5",uu=8,fu="history-event-index",po=300,zs=3e4,mu="history-event-index-invalidation",_u="history-event-index-invalidations",pu=po*2*1e3,xn=Symbol("history-index-lock-contended"),Ge=new Map;function Pt(e){return z.join(e,"runtime",lu)}function An(e){return z.join(e,"runtime",_u)}async function hu(e){let t=await j.readdir(An(e)).catch(n=>{if(ne(n))return[];throw n});return{pending:t.filter(n=>n.endsWith(".pending")).sort(),committed:t.filter(n=>n.endsWith(".committed")).sort()}}async function mo(e){let t=await hu(e);return{pending:(await Promise.all(t.pending.map(async n=>{let r=/^(\d+)-(unknown|\d+)-(\d+)-.+\.pending$/u.exec(n);if(r!==null){let o=r[2];if(await Zi({pid:Number(r[1]),...o==="unknown"?{}:{process_start_identity:o}},Math.max(0,Date.now()-Number(r[3])),pu))return n}return await j.rm(z.join(An(e),n),{force:!0}),null}))).filter(n=>n!==null),committed:t.committed}}async function Lt(e,t){let n=await W(e,mu,po,`history-event-index-invalidation:${process.pid}`,!1,!1,zs);try{return await t()}finally{await n()}}async function yu(e){let t=An(e);await j.mkdir(t,{recursive:!0});let n=Hs(),r=await Qi(),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 gu(e,t){return e.length===t.length&&e.every((n,r)=>n===t[r])}async function Tn(e){try{await j.rm(Pt(e),{force:!0})}catch{}}async function Dn(e,t){let n=await W(e,fu,po,`history-event-index:${process.pid}`,!1,!1,zs);try{return await t()}finally{await n()}}async function Us(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=Ge.get(e)??{streams:new Map,ordered_events:[]},o=new Set,i=!Ge.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 Bs(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(ho)),Ge.delete(e),Ge.set(e,r),Ge.size>uu){let s=Ge.keys().next().value;Ge.delete(s)}return{events:r.ordered_events,stream_byte_sizes:new Map([...r.streams].map(([s,a])=>[s,a.byte_size]))}}async function Bs(e,t){let n=await be(e,t);for(let[r,o]of n.entries())if(typeof o.ts!="string"||!tt(o.ts.trim()))throw new g(`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 bu(e){return(await Us(e)).events}var fo;function Nn(){return fo!==void 0||(fo=Sn(process.versions.node,du(import.meta.url))),fo}function wu(e){e.exec(`
14
14
  PRAGMA journal_mode = OFF;
15
15
  PRAGMA synchronous = OFF;
16
16
  CREATE TABLE metadata (
@@ -45,15 +45,15 @@ ${i}
45
45
  ON events(agent_harness, ts, stream_id, stream_offset);
46
46
  CREATE INDEX events_instance_order
47
47
  ON events(agent_instance, ts, stream_id, stream_offset);
48
- `),e.prepare("INSERT INTO metadata(key, value) VALUES ('version', ?)").run(fo)}function Us(e,t){let n={...t.entry,ts:new Date(t.entry.ts.trim()).toISOString()};e.prepare(`INSERT INTO events(
48
+ `),e.prepare("INSERT INTO metadata(key, value) VALUES ('version', ?)").run(_o)}function Ws(e,t){let n={...t.entry,ts:new Date(t.entry.ts.trim()).toISOString()};e.prepare(`INSERT INTO events(
49
49
  stream_id, stream_offset, ts, author, agent_harness,
50
50
  agent_instance, op, event_class, entry_json
51
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`).run(t.stream_id,t.stream_offset,n.ts,n.author,n.agent_harness??null,n.agent_instance??null,n.op,ct(n),JSON.stringify(n))}function Bs(e){let t=JSON.parse(String(e.entry_json));return typeof t.ts!="string"||!tt(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 Ws(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 vu(e){let t=Dn();return t?An(e,async()=>{let n;try{n=await Lt(e,()=>uo(e))}catch(s){if(s instanceof g&&s.code==="lock_conflict")return!1;throw s}if(n.pending.length>0)return!1;let r=Pt(e);await j.mkdir(z.dirname(r),{recursive:!0});let o=`${r}.${Fs()}.tmp`,i;try{i=new t(o),wu(i),i.exec("BEGIN IMMEDIATE");let s=await Hs(e);for(let c of s.events)Us(i,c);for(let[c,d]of s.stream_byte_sizes)Ws(i,c,d);i.exec("COMMIT"),i.close(),i=void 0;let a=await Lt(e,async()=>{let c=await uo(e);return c.pending.length>0||!hu(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(Rn(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 Tn(e,t){return!t||t.length===0||t.includes(e)}function _o(e,t){return e.entry.ts.localeCompare(t.entry.ts)||e.stream_id.localeCompare(t.stream_id)||e.stream_offset-t.stream_offset}function xn(e){let t=Date.parse(e);return Number.isFinite(t)?new Date(t).toISOString():e}function Eu(e,t){if(t.after_ts!==void 0&&t.after_stream_id!==void 0&&t.after_stream_offset!==void 0){if(_o(e,{stream_id:t.after_stream_id,stream_offset:t.after_stream_offset,entry:{...e.entry,ts:xn(t.after_ts)}})<=0)return!1}else if(t.since_ts!==void 0&&e.entry.ts<xn(t.since_ts))return!1;return!0}function ku(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 Iu(e,t){return!Eu(e,t)||!Tn(e.entry.op,t.ops)||!Tn(e.entry.author,t.authors)||!Tn(e.entry.agent_instance??"",t.agent_instances)||!Tn(e.stream_id,t.stream_ids)||!ku(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 Ay(e,t){let n=Math.max(0,Math.floor(t.limit)),r=(await yu(e)).filter(o=>Iu(o,t)).slice(0,n+1);return{events:r.slice(0,t.limit),has_more:r.length>t.limit}}async function Vs(e,t,n){let r=z.dirname(z.dirname(e)),o=Dn();if(!o){await n();return}let i=!1;try{await An(r,async()=>{let s=Pt(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!==fo)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);Us(a,{stream_id:d,stream_offset:Number(l.value),entry:t}),Ws(a,d,(await j.stat(e)).size),a.exec("COMMIT"),a.close()}catch(d){if(a?.close(),!c)throw d;await Sn(r)}})}catch(s){if(i){await Sn(r);return}if(!(s instanceof g)||s.code!=="lock_conflict")throw s;let a;try{await Lt(r,async()=>{let c=await pu(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 Sn(r)})}catch(c){if(i){await Sn(r);try{await j.rm(a,{force:!0})}catch{}return}throw c}}}async function po(e){await j.rm(Pt(z.dirname(z.dirname(e))),{force:!0})}function Cn(e,t,n,r){!r||r.length===0||(e.push(`${n} IN (${r.map(()=>"?").join(", ")})`),t.push(...r))}function Su(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 qs(e,t){let n=await uo(e);if(n.pending.length>0||n.committed.length>0)return;let r=new t(Pt(e),{readOnly:!0});try{if(r.prepare("SELECT value FROM metadata WHERE key = 'version'").get()?.value===fo)return r}catch(o){throw r.close(),o}r.close()}async function Dy(e,t){let n=Dn();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=xn(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(xn(t.since_ts)));Cn(r,o,"op",t.ops),Cn(r,o,"author",t.authors),Su(r,o,t.harnesses,t.harness_alias_authors),Cn(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);Cn(r,o,"stream_id",t.stream_ids);let i=r.length===0?"":` WHERE ${r.join(" AND ")}`,s;try{return await An(e,async()=>Lt(e,async()=>{if(s=await qs(e,n),!s)return null;let a=await Cu(s,e,t.stream_ids);if(!await Ks(s,e,a))return s.close(),s=void 0,null;let c=s.prepare(`SELECT stream_id, stream_offset, 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,ct(n),JSON.stringify(n))}function Vs(e){let t=JSON.parse(String(e.entry_json));return typeof t.ts!="string"||!tt(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 Gs(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 vu(e){let t=Nn();return t?Dn(e,async()=>{let n;try{n=await Lt(e,()=>mo(e))}catch(s){if(s instanceof g&&s.code==="lock_conflict")return!1;throw s}if(n.pending.length>0)return!1;let r=Pt(e);await j.mkdir(z.dirname(r),{recursive:!0});let o=`${r}.${Hs()}.tmp`,i;try{i=new t(o),wu(i),i.exec("BEGIN IMMEDIATE");let s=await Us(e);for(let c of s.events)Ws(i,c);for(let[c,d]of s.stream_byte_sizes)Gs(i,c,d);i.exec("COMMIT"),i.close(),i=void 0;let a=await Lt(e,async()=>{let c=await mo(e);return c.pending.length>0||!gu(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(An(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 Cn(e,t){return!t||t.length===0||t.includes(e)}function ho(e,t){return e.entry.ts.localeCompare(t.entry.ts)||e.stream_id.localeCompare(t.stream_id)||e.stream_offset-t.stream_offset}function Rn(e){let t=Date.parse(e);return Number.isFinite(t)?new Date(t).toISOString():e}function Eu(e,t){if(t.after_ts!==void 0&&t.after_stream_id!==void 0&&t.after_stream_offset!==void 0){if(ho(e,{stream_id:t.after_stream_id,stream_offset:t.after_stream_offset,entry:{...e.entry,ts:Rn(t.after_ts)}})<=0)return!1}else if(t.since_ts!==void 0&&e.entry.ts<Rn(t.since_ts))return!1;return!0}function ku(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 Iu(e,t){return!Eu(e,t)||!Cn(e.entry.op,t.ops)||!Cn(e.entry.author,t.authors)||!Cn(e.entry.agent_instance??"",t.agent_instances)||!Cn(e.stream_id,t.stream_ids)||!ku(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 Ay(e,t){let n=Math.max(0,Math.floor(t.limit)),r=(await bu(e)).filter(o=>Iu(o,t)).slice(0,n+1);return{events:r.slice(0,t.limit),has_more:r.length>t.limit}}async function qs(e,t,n){let r=z.dirname(z.dirname(e)),o=Nn();if(!o){await n();return}let i=!1;try{await Dn(r,async()=>{let s=Pt(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!==_o)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);Ws(a,{stream_id:d,stream_offset:Number(l.value),entry:t}),Gs(a,d,(await j.stat(e)).size),a.exec("COMMIT"),a.close()}catch(d){if(a?.close(),!c)throw d;await Tn(r)}})}catch(s){if(i){await Tn(r);return}if(!(s instanceof g)||s.code!=="lock_conflict")throw s;let a;try{await Lt(r,async()=>{let c=await yu(r);a=c.pendingPath;try{await n(),i=!0}catch(d){throw await j.rm(c.pendingPath,{force:!0}),d}await j.rename(c.pendingPath,c.committedPath),await Tn(r)})}catch(c){if(i){await Tn(r);try{await j.rm(a,{force:!0})}catch{}return}throw c}}}async function yo(e){await j.rm(Pt(z.dirname(z.dirname(e))),{force:!0})}function On(e,t,n,r){!r||r.length===0||(e.push(`${n} IN (${r.map(()=>"?").join(", ")})`),t.push(...r))}function Su(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 Ks(e,t){let n=await mo(e);if(n.pending.length>0||n.committed.length>0)return;let r=new t(Pt(e),{readOnly:!0});try{if(r.prepare("SELECT value FROM metadata WHERE key = 'version'").get()?.value===_o)return r}catch(o){throw r.close(),o}r.close()}async function Dy(e,t){let n=Nn();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=Rn(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(Rn(t.since_ts)));On(r,o,"op",t.ops),On(r,o,"author",t.authors),Su(r,o,t.harnesses,t.harness_alias_authors),On(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);On(r,o,"stream_id",t.stream_ids);let i=r.length===0?"":` WHERE ${r.join(" AND ")}`,s;try{return await Dn(e,async()=>Lt(e,async()=>{if(s=await Ks(e,n),!s)return null;let a=await Cu(s,e,t.stream_ids);if(!await Ys(s,e,a))return s.close(),s=void 0,null;let c=s.prepare(`SELECT stream_id, stream_offset, entry_json
53
53
  FROM events${i}
54
54
  ORDER BY ts, stream_id, stream_offset
55
- LIMIT ?`).all(...o,Math.max(0,Math.floor(t.limit))+1),d=c.slice(0,t.limit).map(Bs);return s.close(),s=void 0,d.includes(null)?null:{events:d,has_more:c.length>t.limit}}))}catch{return s?.close(),null}}function Gs(e,t){let n=Object.create(null);for(let r of e){if(!t.has(r.stream_id)||ct(r.entry)!=="substantive")continue;let o=n[r.stream_id];(o===void 0||_o(o,r)<0)&&(n[r.stream_id]=r)}return n}async function Tu(e,t){if(z.basename(t)!==t)return null;try{return(await j.stat(z.join(e,"history",`${t}.jsonl`))).size}catch(n){if(ne(n))return 0;throw n}}async function Ks(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=>Tu(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 Cu(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(ne(i))return[];throw i});return[...new Set([...r,...o])]}async function js(e,t,n,r){if(!e)return null;let o;try{return await An(t,async()=>Lt(t,async()=>{if(o=await qs(t,e),!o)return null;if(!await Ks(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),c=o.prepare(`SELECT stream_id, stream_offset, entry_json
55
+ LIMIT ?`).all(...o,Math.max(0,Math.floor(t.limit))+1),d=c.slice(0,t.limit).map(Vs);return s.close(),s=void 0,d.includes(null)?null:{events:d,has_more:c.length>t.limit}}))}catch{return s?.close(),null}}function Xs(e,t){let n=Object.create(null);for(let r of e){if(!t.has(r.stream_id)||ct(r.entry)!=="substantive")continue;let o=n[r.stream_id];(o===void 0||ho(o,r)<0)&&(n[r.stream_id]=r)}return n}async function Tu(e,t){if(z.basename(t)!==t)return null;try{return(await j.stat(z.join(e,"history",`${t}.jsonl`))).size}catch(n){if(ne(n))return 0;throw n}}async function Ys(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=>Tu(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 Cu(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(ne(i))return[];throw i});return[...new Set([...r,...o])]}async function $s(e,t,n,r){if(!e)return null;let o;try{return await Dn(t,async()=>Lt(t,async()=>{if(o=await Ks(t,e),!o)return null;if(!await Ys(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),c=o.prepare(`SELECT stream_id, stream_offset, entry_json
57
57
  FROM (
58
58
  SELECT stream_id, stream_offset, entry_json,
59
59
  ROW_NUMBER() OVER (
@@ -64,12 +64,12 @@ ${i}
64
64
  WHERE event_class = 'substantive'
65
65
  AND stream_id IN (${a.map(()=>"?").join(", ")})
66
66
  )
67
- WHERE recency_rank = 1`).all(...a).map(Bs);if(c.includes(null))return o.close(),o=void 0,null;i.push(...c)}return o.close(),o=void 0,Gs(i,r)}))}catch(i){return o?.close(),i instanceof g&&i.code==="lock_conflict"?On:null}}async function Ny(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=Dn(),i=await js(o,e,n,r);if(i!==null&&i!==On)return i;if(o&&i!==On)try{if(await vu(e)){let a=await js(o,e,n,r);if(a!==null&&a!==On)return a}}catch{}let s=[];return await Promise.all(n.map(async a=>{let c=z.join(e,"history",`${a}.jsonl`);(await zs(c,a).catch(d=>{if(d instanceof g&&d.code==="history_timestamp_invalid")return[];throw d})).forEach((d,l)=>{s.push({stream_id:a,stream_offset:l,entry:d})})})),Gs(s,r)}import ho from"node:fs/promises";import dt 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]="687cbe24-6d5c-5322-962d-455048eb84b5")}catch{}})();var Ou=dt.join("runtime","history-drift-cache.json"),Xs={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 Ys(e){return typeof e=="object"&&e!==null&&"code"in e&&typeof e.code=="string"?e.code:void 0}async function xu(e){let t=dt.join(e,Ou),n=!1,r="invalid_cache_path";try{n=(await ho.stat(await ho.realpath(e))).isDirectory()}catch(o){let i=Ys(o);r=i===void 0?"unknown":Xs[i]??"filesystem_error"}if(!n){Or(`[pm] warning: history_drift_cache_invalidation_failed:${r}
68
- `);return}try{await ho.rm(t,{force:!0})}catch(o){let i=Ys(o);if(ne(o))return;let s=i===void 0?"unknown":Xs[i]??"filesystem_error";Or(`[pm] warning: history_drift_cache_invalidation_failed:${s}
69
- `)}}async function Nn(e){let t=dt.dirname(dt.resolve(e));dt.basename(t)==="history"&&await xu(dt.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]="4a3c3c82-0398-549c-8910-fdc69d971cb2")}catch{}})();var Du={front_matter:{},body:""},Ge=3,Mt=[1,2,3],Nu=1,Lu=[1];function na(e){return Ce(D(e),e.hash_algorithm)}function lt(e){return cn(D(e))}function rg(e){return cn(D(e))}function wo(e){let t={...e,record_hash_version:Nu},{record_hash:n,...r}=t;return{...t,record_hash:na(r)}}function Mn(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(!Lu.includes(e.record_hash_version))return{ok:!1,error:"unsupported_record_hash_version"};let{record_hash:t,...n}=e;return na(n)===e.record_hash?{ok:!0,coverage:"record_and_item_state"}:{ok:!1,error:"record_hash_mismatch"}}function Pu(e,t){let n={before_hash:e.before_hash,after_hash:e.after_hash,patch_hash:lt(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 ra(e,t,n={}){let r=Mn(e);if(!r.ok)throw new TypeError(r.error);let o=lt(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!==lt(t.patch),s=wo({...t,...i?{reanchor_evidence:[...t.reanchor_evidence??[],Pu(e,n)]}:{}}),a=vo(s);if(!a.ok)throw new TypeError(a.error);return s}function oa(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 Mu(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"&&oa(e.patch)}function ju(e){let t=e.record_hash_version!==void 0,n=e.record_hash!==void 0;return t===n}function Fu(e){return!Ke(e)||!ju(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&&!oa(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||Mu(e.record)}function $u(e){try{for(let t of e){if(!Fu(t))return!1;We(t.hash_algorithm)}return!0}catch{return!1}}function Hu(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&&lt(t.patch)===e.patch_hash}function zu(e,t,n){if(t.patch&&lt(t.patch)!==t.patch_hash)return{kind:"patch_hash_mismatch"};if(t.record)return Hu(t)?{kind:"record",entry:t.record}:{kind:"record_hash_mismatch"};let r=t.patch??e.patch;if(lt(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 vo(e){let t=e.reanchor_evidence;if(t===void 0)return{ok:!0,coverage:"none"};if(!Array.isArray(t)||!$u(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=zu(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(!Mn(i.entry).ok)return{ok:!1,error:"rewrite_evidence_record_hash_mismatch"};n=i.entry}return{ok:!0,coverage:"complete"}}function Ln(e,t){return(e??"").localeCompare(t??"")}function Qs(e,t){return(e??0)-(t??0)}function xe(e,t,n){return JSON.stringify(e??n).localeCompare(JSON.stringify(t??n))}function Uu(e,t){return[e.scope.localeCompare(t.scope),Ln(e.path,t.path),Ln(e.command,t.command),Qs(e.timeout_seconds,t.timeout_seconds),Ln(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,[]),Qs(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,{}),Ln(e.note,t.note)].find(n=>n!==0)??0}function Bu(e){return!e||e==="/"?[]:e.startsWith("/")?e.slice(1).split("/").map(t=>t.replaceAll("~1","/").replaceAll("~0","~")):[]}function Wu(e,t){let n=Bu(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 Vu(e,t){let n=[],r=structuredClone(e);for(let o of t){let i=o.op==="replace"&&!Wu(r,o.path)?{...o,op:"add"}:o;n.push(i),r=ta.applyPatch(r,[i],!0,!0).newDocument}return n}function Pn(e,t,n=!1){if(!(e.metadata&&Object.keys(e.metadata).length>0))return{front_matter:{},body:e.body??""};let r=re(e),o=t===1||t===2&&n?{...r.metadata,...r.metadata.dependencies===void 0?{}:{dependencies:r.metadata.dependencies.map(s=>({...s,id:s.id.toLowerCase()}))},...r.metadata.tests===void 0?{}:{tests:r.metadata.tests.map(({workspace_context_mode:s,provenance:a,provenance_invalid:c,...d})=>d)},...r.metadata.test_runs===void 0?{}:{test_runs:r.metadata.test_runs.map(({executions:s,...a})=>a)}}:r.metadata,i=t===1&&o.tests?{...o,tests:[...o.tests].sort(Uu)}:o;return{front_matter:T(i,ve),body:r.body}}function Zs(e){if(!(e.metadata&&Object.keys(e.metadata).length>0))return{metadata:{},body:e.body??""};let t=re(e);return{metadata:T(t.metadata,ve),body:t.body}}function og(e){return ia(e,Ge)}function ia(e,t,n){if(!Mt.some(r=>r===t))throw new TypeError(`unsupported_item_hash_version:${String(t)}`);return Ce(D(Pn(e,t)),n)}function sa(e,t,n){let r=ia(e,t,n);return t===2?[r,Ce(D(Pn(e,t,!0)),n)]:[r]}function ig(){return cn(D(Du))}function ut(e){let t=fn(e.op),n=Pn(e.before,Ge),r=Pn(e.after,Ge),o=Zs(e.before),i=Zs(e.after),s=ta.compare(o,i),a=Vu(o,s),c=ys(e.author),d=c.harness?Object.fromEntries(Object.entries(ps().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??ws,m={hash_algorithm:f,ts:e.nowIso,author:e.author,author_source:e.authorSource??hs(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(D(n),f),after_hash:Ce(D(r),f),item_hash_version:Ge,message:e.message===void 0?void 0:e.message,...l===void 0?{}:{context:l}};return wo({...m,event_class:ct(m)})}function Ke(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function yo(e){return new g(e,w.GENERIC_FAILURE,{code:"history_timestamp_invalid"})}function aa(e){let t=e.ts.trim();if(t.length===0)return Ie();if(!tt(t))throw yo("History timestamp must be a valid RFC 3339 date-time with millisecond precision");if(t!==e.ts)throw yo("History timestamp must not contain surrounding whitespace");return e.ts}function ea(e,t){let n=e.ts;if(typeof n=="string"&&n.trim().length>0){if(!tt(n))throw yo("History timestamp must be a valid RFC 3339 date-time with millisecond precision");return e}return{...e,ts:t}}function go(e,t){let n=aa(t);if(typeof e=="string"){let r;try{r=JSON.parse(e)}catch{return e}return Ke(r)?JSON.stringify(ea(r,n)):e}return Ke(e)?JSON.stringify(ea(e,n)):JSON.stringify(e)}async function qu(e,t,n){if(n===!1)return!0;if(typeof n=="string"){let s=go(n,t);return await bo(e,s),await Nn(e),await po(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=go(typeof r.line=="string"?r.line:r.entry??t,t);return await bo(o,i),await Nn(o),await po(o),!0}async function bo(e,t){let n;try{n=JSON.parse(t)}catch{n=null}if(!Ke(n)||n.op!=="create"){await Ti(e,t);return}await Js.mkdir(Au.dirname(e),{recursive:!0});try{await Js.writeFile(e,`${t}
70
- `,{encoding:"utf8",flag:"wx"})}catch(r){throw r.code!=="EEXIST"?r:new g("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 ft(e,t){let n=await Ot("history_append",{history_path:e,entry:t});if(n.handled&&await qu(e,t,n.result))return;let r=t.ts.trim().length>0?t:{...t,ts:aa(t)},o=wo({...r,hash_algorithm:We(r.hash_algorithm),event_class:ct(r)});await Vs(e,o,async()=>{await bo(e,go(o,o))}),await Nn(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]="3bf5f300-1829-5009-ae96-be7df309b589")}catch{}})();var mt={metadata:{},body:""};function jn(){return structuredClone(mt)}function pg(e,t=Ge,n){return Eo(e,t,n)[0]}function Eo(e,t,n){if(Object.keys(e.metadata).length===0||Array.isArray(e.metadata.tags))try{return sa(Fn(e),t,n)}catch{}let r=Ce(D({replay_fallback:!0,metadata:e.metadata,body:e.body}),n);return t===2?[r,r]:[r]}function la(e,t,n,r,o){let i=We(r.hash_algorithm),s=`${n}:${i}`,a=o?.before.get(s)??Eo(e,n,i),c=Eo(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 Fn(e){return{metadata:e.metadata,body:e.body}}function hg(e,t={}){return re(Fn(e),t)}function yg(e){if(!e.metadata||Object.keys(e.metadata).length===0)return{metadata:{},body:e.body??""};let t=re(e);return{metadata:T(t.metadata,ve),body:t.body}}function ca(e){return e==="/front_matter"?"/metadata":e.startsWith("/front_matter/")?`/metadata/${e.slice(14)}`:e}function Gu(e){return typeof e=="object"&&e!==null&&typeof e.op=="string"&&typeof e.path=="string"}function ua(e){return Array.isArray(e)?e.filter(Gu).map(t=>({...t,path:ca(t.path),from:typeof t.from=="string"?ca(t.from):void 0})):[]}function Ku(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=ua(t),r=ko.applyPatch(structuredClone(e),n,!0,!0).newDocument;return Ku(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 Xu(e){return[...new Set(e.map(t=>t.item_hash_version).filter(t=>t!==void 0&&Mt.includes(t)))]}function fa(e){return e!==void 0&&!Mt.includes(e)}function Yu(e,t){return e!==void 0?[e]:t===void 0?[...Mt]:[t]}function ma(e){let t=Mn(e);if(!t.ok)return t.error;let n=vo(e);return n.ok?void 0:n.error}function Ju(e,t){let n=ma(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 Qu(e,t){let n=ma(e);if(n)throw new TypeError(`${n}:entry_${t+1}`)}function Zu(e,t,n,r,o){let i=[];for(let s of n){let a=la(e,t,s,r,o);if(i.push({version:s,match:a}),a.pairIndex>=0)break}return i}function _a(e){let t=jn(),n=new Map,r,o,i=Ms(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=fa(c);d&&i.push(`verify_failed:unsupported_item_hash_version:${String(c)}:entry_${s+1}`);let l=Ju(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=Yu(c,o),m={before:n,after:new Map},p=Zu(t,l.document,f,a,m),_=p.find(({match:y})=>y.pairIndex>=0);if(_===void 0){let y=p.some(({match:S})=>S.beforeIndex>=0);return{ok:!1,errors:[...i,`verify_failed:${y?"after":"before"}_hash_mismatch:entry_${s+1}`]}}let b=_.version;t=l.document,n=m.after,r=b,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 we(e){let t=_a(e);return{ok:t.ok,errors:t.errors}}function da(e,t){try{return{ok:!0,document:ko.applyPatch(structuredClone(e),[t],!0,!1).newDocument}}catch{return{ok:!1}}}function ef(e,t){let n=structuredClone(e),r=0,o=0;for(let s of ua(t)){let a=da(n,s);if(a.ok){n=a.document;continue}if(s.op==="replace"){let c=da(n,{...s,op:"add"});if(c.ok){n=c.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 tf(e){let t=Xu(e);if(t.length===1)return t[0];let n=_a(e);return n.ok&&n.item_hash_version!==void 0?n.item_hash_version:t.length===0?1:Ge}function nf(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=ef(e,t.patch);return{next:r.document,patch:ko.compare(e,r.document),repaired:!0,converted:r.convertedReplaceToAdd,skipped:r.skippedOps}}function gg(e,t=tf(e),n={}){let r=e.findIndex(p=>fa(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=jn(),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];Qu(_,p);let b=nf(o,_),{next:y,patch:S,repaired:A,converted:L,skipped:$}=b;d+=L,l+=$,c+=Number(A);let x=la(o,y,t,_);f===void 0||n.continuousHashSurface!==!0?f=[x.pairIndex,x.beforeIndex,x.afterIndex,Math.min(f??0,x.beforeHashes.length-1)].find(te=>te>=0):f=Math.min(f,x.beforeHashes.length-1);let q=x.beforeHashes[f],B=x.afterHashes[f],Q=q!==_.before_hash||B!==_.after_hash;Q&&(a+=1);let G={..._,patch:S,before_hash:q,after_hash:B};m?G.item_hash_version=t:delete G.item_hash_version;let ee=G.item_hash_version!==_.item_hash_version;(Q||A||ee)&&(G=ra(_,G,{retainOriginalPatch:A})),i.push(G),s.push({index:p+1,rehashed:Q,patch_repaired:A,converted_replace_to_add:L,skipped_ops:$}),o=y}return{entries:i,finalDocument:o,entriesRehashed:a,entriesPatchRepaired:c,convertedReplaceToAdd:d,skippedOps:l,details:s,itemHashVersion:t,explicitItemHashVersion:m}}function bg(e){return e.length===0?"":`${e.map(t=>JSON.stringify(t)).join(`
67
+ WHERE recency_rank = 1`).all(...a).map(Vs);if(c.includes(null))return o.close(),o=void 0,null;i.push(...c)}return o.close(),o=void 0,Xs(i,r)}))}catch(i){return o?.close(),i instanceof g&&i.code==="lock_conflict"?xn:null}}async function Ny(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=Nn(),i=await $s(o,e,n,r);if(i!==null&&i!==xn)return i;if(o&&i!==xn)try{if(await vu(e)){let a=await $s(o,e,n,r);if(a!==null&&a!==xn)return a}}catch{}let s=[];return await Promise.all(n.map(async a=>{let c=z.join(e,"history",`${a}.jsonl`);(await Bs(c,a).catch(d=>{if(d instanceof g&&d.code==="history_timestamp_invalid")return[];throw d})).forEach((d,l)=>{s.push({stream_id:a,stream_offset:l,entry:d})})})),Xs(s,r)}import go from"node:fs/promises";import dt 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]="687cbe24-6d5c-5322-962d-455048eb84b5")}catch{}})();var Ou=dt.join("runtime","history-drift-cache.json"),Js={EINVAL:"invalid_cache_path",EISDIR:"cache_path_is_directory",ENOENT:"invalid_cache_path",ENOTDIR:"invalid_cache_path",ERR_FS_EISDIR:"cache_path_is_directory"};function Qs(e){return typeof e=="object"&&e!==null&&"code"in e&&typeof e.code=="string"?e.code:void 0}async function xu(e){let t=dt.join(e,Ou),n=!1,r="invalid_cache_path";try{n=(await go.stat(await go.realpath(e))).isDirectory()}catch(o){let i=Qs(o);r=i===void 0?"unknown":Js[i]??"filesystem_error"}if(!n){xr(`[pm] warning: history_drift_cache_invalidation_failed:${r}
68
+ `);return}try{await go.rm(t,{force:!0})}catch(o){let i=Qs(o);if(ne(o))return;let s=i===void 0?"unknown":Js[i]??"filesystem_error";xr(`[pm] warning: history_drift_cache_invalidation_failed:${s}
69
+ `)}}async function Ln(e){let t=dt.dirname(dt.resolve(e));dt.basename(t)==="history"&&await xu(dt.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]="4a3c3c82-0398-549c-8910-fdc69d971cb2")}catch{}})();var Du={front_matter:{},body:""},qe=3,Mt=[1,2,3],Nu=1,Lu=[1];function oa(e){return Ce(D(e),e.hash_algorithm)}function lt(e){return cn(D(e))}function rg(e){return cn(D(e))}function Eo(e){let t={...e,record_hash_version:Nu},{record_hash:n,...r}=t;return{...t,record_hash:oa(r)}}function jn(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(!Lu.includes(e.record_hash_version))return{ok:!1,error:"unsupported_record_hash_version"};let{record_hash:t,...n}=e;return oa(n)===e.record_hash?{ok:!0,coverage:"record_and_item_state"}:{ok:!1,error:"record_hash_mismatch"}}function Pu(e,t){let n={before_hash:e.before_hash,after_hash:e.after_hash,patch_hash:lt(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 ia(e,t,n={}){let r=jn(e);if(!r.ok)throw new TypeError(r.error);let o=lt(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!==lt(t.patch),s=Eo({...t,...i?{reanchor_evidence:[...t.reanchor_evidence??[],Pu(e,n)]}:{}}),a=ko(s);if(!a.ok)throw new TypeError(a.error);return s}function sa(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 Mu(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"&&sa(e.patch)}function ju(e){let t=e.record_hash_version!==void 0,n=e.record_hash!==void 0;return t===n}function Fu(e){return!Ke(e)||!ju(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&&!sa(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||Mu(e.record)}function $u(e){try{for(let t of e){if(!Fu(t))return!1;We(t.hash_algorithm)}return!0}catch{return!1}}function Hu(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&&lt(t.patch)===e.patch_hash}function zu(e,t,n){if(t.patch&&lt(t.patch)!==t.patch_hash)return{kind:"patch_hash_mismatch"};if(t.record)return Hu(t)?{kind:"record",entry:t.record}:{kind:"record_hash_mismatch"};let r=t.patch??e.patch;if(lt(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 ko(e){let t=e.reanchor_evidence;if(t===void 0)return{ok:!0,coverage:"none"};if(!Array.isArray(t)||!$u(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=zu(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(!jn(i.entry).ok)return{ok:!1,error:"rewrite_evidence_record_hash_mismatch"};n=i.entry}return{ok:!0,coverage:"complete"}}function Pn(e,t){return(e??"").localeCompare(t??"")}function ea(e,t){return(e??0)-(t??0)}function xe(e,t,n){return JSON.stringify(e??n).localeCompare(JSON.stringify(t??n))}function Uu(e,t){return[e.scope.localeCompare(t.scope),Pn(e.path,t.path),Pn(e.command,t.command),ea(e.timeout_seconds,t.timeout_seconds),Pn(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,[]),ea(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,{}),Pn(e.note,t.note)].find(n=>n!==0)??0}function Bu(e){return!e||e==="/"?[]:e.startsWith("/")?e.slice(1).split("/").map(t=>t.replaceAll("~1","/").replaceAll("~0","~")):[]}function Wu(e,t){let n=Bu(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 Vu(e,t){let n=[],r=structuredClone(e);for(let o of t){let i=o.op==="replace"&&!Wu(r,o.path)?{...o,op:"add"}:o;n.push(i),r=ra.applyPatch(r,[i],!0,!0).newDocument}return n}function Mn(e,t,n=!1){if(!(e.metadata&&Object.keys(e.metadata).length>0))return{front_matter:{},body:e.body??""};let r=re(e),o=t===1||t===2&&n?{...r.metadata,...r.metadata.dependencies===void 0?{}:{dependencies:r.metadata.dependencies.map(s=>({...s,id:s.id.toLowerCase()}))},...r.metadata.tests===void 0?{}:{tests:r.metadata.tests.map(({workspace_context_mode:s,provenance:a,provenance_invalid:c,...d})=>d)},...r.metadata.test_runs===void 0?{}:{test_runs:r.metadata.test_runs.map(({executions:s,...a})=>a)}}:r.metadata,i=t===1&&o.tests?{...o,tests:[...o.tests].sort(Uu)}:o;return{front_matter:T(i,ve),body:r.body}}function ta(e){if(!(e.metadata&&Object.keys(e.metadata).length>0))return{metadata:{},body:e.body??""};let t=re(e);return{metadata:T(t.metadata,ve),body:t.body}}function og(e){return aa(e,qe)}function aa(e,t,n){if(!Mt.some(r=>r===t))throw new TypeError(`unsupported_item_hash_version:${String(t)}`);return Ce(D(Mn(e,t)),n)}function ca(e,t,n){let r=aa(e,t,n);return t===2?[r,Ce(D(Mn(e,t,!0)),n)]:[r]}function ig(){return cn(D(Du))}function ut(e){let t=fn(e.op),n=Mn(e.before,qe),r=Mn(e.after,qe),o=ta(e.before),i=ta(e.after),s=ra.compare(o,i),a=Vu(o,s),c=bs(e.author),d=c.harness?Object.fromEntries(Object.entries(ys().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??Es,m={hash_algorithm:f,ts:e.nowIso,author:e.author,author_source:e.authorSource??gs(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(D(n),f),after_hash:Ce(D(r),f),item_hash_version:qe,message:e.message===void 0?void 0:e.message,...l===void 0?{}:{context:l}};return Eo({...m,event_class:ct(m)})}function Ke(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function bo(e){return new g(e,w.GENERIC_FAILURE,{code:"history_timestamp_invalid"})}function da(e){let t=e.ts.trim();if(t.length===0)return Ie();if(!tt(t))throw bo("History timestamp must be a valid RFC 3339 date-time with millisecond precision");if(t!==e.ts)throw bo("History timestamp must not contain surrounding whitespace");return e.ts}function na(e,t){let n=e.ts;if(typeof n=="string"&&n.trim().length>0){if(!tt(n))throw bo("History timestamp must be a valid RFC 3339 date-time with millisecond precision");return e}return{...e,ts:t}}function wo(e,t){let n=da(t);if(typeof e=="string"){let r;try{r=JSON.parse(e)}catch{return e}return Ke(r)?JSON.stringify(na(r,n)):e}return Ke(e)?JSON.stringify(na(e,n)):JSON.stringify(e)}async function Gu(e,t,n){if(n===!1)return!0;if(typeof n=="string"){let s=wo(n,t);return await vo(e,s),await Ln(e),await yo(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=wo(typeof r.line=="string"?r.line:r.entry??t,t);return await vo(o,i),await Ln(o),await yo(o),!0}async function vo(e,t){let n;try{n=JSON.parse(t)}catch{n=null}if(!Ke(n)||n.op!=="create"){await Oi(e,t);return}await Zs.mkdir(Au.dirname(e),{recursive:!0});try{await Zs.writeFile(e,`${t}
70
+ `,{encoding:"utf8",flag:"wx"})}catch(r){throw r.code!=="EEXIST"?r:new g("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 ft(e,t){let n=await Ot("history_append",{history_path:e,entry:t});if(n.handled&&await Gu(e,t,n.result))return;let r=t.ts.trim().length>0?t:{...t,ts:da(t)},o=Eo({...r,hash_algorithm:We(r.hash_algorithm),event_class:ct(r)});await qs(e,o,async()=>{await vo(e,wo(o,o))}),await Ln(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]="3bf5f300-1829-5009-ae96-be7df309b589")}catch{}})();var mt={metadata:{},body:""};function Fn(){return structuredClone(mt)}function pg(e,t=qe,n){return Io(e,t,n)[0]}function Io(e,t,n){if(Object.keys(e.metadata).length===0||Array.isArray(e.metadata.tags))try{return ca($n(e),t,n)}catch{}let r=Ce(D({replay_fallback:!0,metadata:e.metadata,body:e.body}),n);return t===2?[r,r]:[r]}function fa(e,t,n,r,o){let i=We(r.hash_algorithm),s=`${n}:${i}`,a=o?.before.get(s)??Io(e,n,i),c=Io(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 $n(e){return{metadata:e.metadata,body:e.body}}function hg(e,t={}){return re($n(e),t)}function yg(e){if(!e.metadata||Object.keys(e.metadata).length===0)return{metadata:{},body:e.body??""};let t=re(e);return{metadata:T(t.metadata,ve),body:t.body}}function la(e){return e==="/front_matter"?"/metadata":e.startsWith("/front_matter/")?`/metadata/${e.slice(14)}`:e}function qu(e){return typeof e=="object"&&e!==null&&typeof e.op=="string"&&typeof e.path=="string"}function ma(e){return Array.isArray(e)?e.filter(qu).map(t=>({...t,path:la(t.path),from:typeof t.from=="string"?la(t.from):void 0})):[]}function Ku(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=ma(t),r=So.applyPatch(structuredClone(e),n,!0,!0).newDocument;return Ku(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 Xu(e){return[...new Set(e.map(t=>t.item_hash_version).filter(t=>t!==void 0&&Mt.includes(t)))]}function _a(e){return e!==void 0&&!Mt.includes(e)}function Yu(e,t){return e!==void 0?[e]:t===void 0?[...Mt]:[t]}function pa(e){let t=jn(e);if(!t.ok)return t.error;let n=ko(e);return n.ok?void 0:n.error}function Ju(e,t){let n=pa(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 Qu(e,t){let n=pa(e);if(n)throw new TypeError(`${n}:entry_${t+1}`)}function Zu(e,t,n,r,o){let i=[];for(let s of n){let a=fa(e,t,s,r,o);if(i.push({version:s,match:a}),a.pairIndex>=0)break}return i}function ha(e){let t=Fn(),n=new Map,r,o,i=Fs(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=_a(c);d&&i.push(`verify_failed:unsupported_item_hash_version:${String(c)}:entry_${s+1}`);let l=Ju(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=Yu(c,o),m={before:n,after:new Map},p=Zu(t,l.document,f,a,m),_=p.find(({match:y})=>y.pairIndex>=0);if(_===void 0){let y=p.some(({match:S})=>S.beforeIndex>=0);return{ok:!1,errors:[...i,`verify_failed:${y?"after":"before"}_hash_mismatch:entry_${s+1}`]}}let b=_.version;t=l.document,n=m.after,r=b,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 we(e){let t=ha(e);return{ok:t.ok,errors:t.errors}}function ua(e,t){try{return{ok:!0,document:So.applyPatch(structuredClone(e),[t],!0,!1).newDocument}}catch{return{ok:!1}}}function ef(e,t){let n=structuredClone(e),r=0,o=0;for(let s of ma(t)){let a=ua(n,s);if(a.ok){n=a.document;continue}if(s.op==="replace"){let c=ua(n,{...s,op:"add"});if(c.ok){n=c.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 tf(e){let t=Xu(e);if(t.length===1)return t[0];let n=ha(e);return n.ok&&n.item_hash_version!==void 0?n.item_hash_version:t.length===0?1:qe}function nf(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=ef(e,t.patch);return{next:r.document,patch:So.compare(e,r.document),repaired:!0,converted:r.convertedReplaceToAdd,skipped:r.skippedOps}}function gg(e,t=tf(e),n={}){let r=e.findIndex(p=>_a(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=Fn(),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];Qu(_,p);let b=nf(o,_),{next:y,patch:S,repaired:A,converted:L,skipped:$}=b;d+=L,l+=$,c+=Number(A);let x=fa(o,y,t,_);f===void 0||n.continuousHashSurface!==!0?f=[x.pairIndex,x.beforeIndex,x.afterIndex,Math.min(f??0,x.beforeHashes.length-1)].find(te=>te>=0):f=Math.min(f,x.beforeHashes.length-1);let G=x.beforeHashes[f],B=x.afterHashes[f],Q=G!==_.before_hash||B!==_.after_hash;Q&&(a+=1);let q={..._,patch:S,before_hash:G,after_hash:B};m?q.item_hash_version=t:delete q.item_hash_version;let ee=q.item_hash_version!==_.item_hash_version;(Q||A||ee)&&(q=ia(_,q,{retainOriginalPatch:A})),i.push(q),s.push({index:p+1,rehashed:Q,patch_repaired:A,converted_replace_to_add:L,skipped_ops:$}),o=y}return{entries:i,finalDocument:o,entriesRehashed:a,entriesPatchRepaired:c,convertedReplaceToAdd:d,skippedOps:l,details:s,itemHashVersion:t,explicitItemHashVersion:m}}function bg(e){return e.length===0?"":`${e.map(t=>JSON.stringify(t)).join(`
71
71
  `)}
72
- `}import rf from"node:crypto";import $n 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]="664124e5-715d-5f86-ae69-89f203db76c3")}catch{}})();function ha(e){let t=[],n=!1;for(let r of(e??"").toLowerCase()){let o=r.charCodeAt(0),i=o>=48&&o<=57,s=o>=97&&o<=122;if(!i&&!s){n=t.length>0;continue}n&&(t.push("-"),n=!1),t.push(r)}return t.length===0?"pm-":`${t.join("")}-`}function jt(e){let t=e.trim().toLowerCase();return t.startsWith("#")&&(t=t.slice(1)),t}function Ye(e,t){let n=ha(t),r=jt(e);return r.startsWith(n)?r:`${n}${r}`}function of(e){let t=Ki(e);if(t!==void 0)return t;let n="";for(let r=0;r<e;r+=1)n+=rf.randomInt(0,36).toString(36);return n}async function sf(e,t,n){let r=[...new Set(Object.values(n))].flatMap(o=>[$n.join(e,o,`${t}.md`),$n.join(e,o,`${t}.toon`)]);return r.push($n.join(e,"history",`${t}.jsonl`)),(await Promise.all(r.map(o=>je(o)))).some(Boolean)}var pa=4,ya=12;function af(e){return typeof e!="number"||!Number.isFinite(e)?pa:Math.min(ya,Math.max(pa,Math.trunc(e)))}async function Tg(e,t,n={}){let r=af(n.tokenLength),o=Math.min(r+6,ya),i=0;for(;r<=o;){for(let s=0;s<32;s+=1){let a=`${ha(t)}${of(r)}`;if(!await(n.probeExisting===!1?je($n.join(e,"history",`${a}.jsonl`)):sf(e,a,n.typeToFolder??Pe)))return a;i+=1}r+=1}throw new Error(`Unable to generate unique id after ${i} attempts`)}import ka from"node:fs/promises";import Ft from"node:path";import{isUtf8 as lf}from"node:buffer";import cf from"node:fs/promises";import _t from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="af606b47-d071-5724-b1e7-de4e1e5d7385")}catch{}})();var pt="_workspace";function Hn(e){return _t.join(e,"history",`${pt}.jsonl`)}function df(e,t){return{metadata:{id:pt,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 zn(e,t=e.length){let n=jn();for(let r of e.slice(0,t))n=Xe(n,r.patch).document;return Fn(n)}function Io(e){return"documents"in e.metadata&&typeof e.metadata.documents=="object"&&e.metadata.documents!==null&&!Array.isArray(e.metadata.documents)?e.metadata.documents:{}}function Un(e){throw new g(`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 ga(e,t){let n=_t.resolve(t),r=_t.relative(e,n).replaceAll("\\","/");if(r.length===0||r===".."||r.startsWith("../")||_t.isAbsolute(r))throw new TypeError("Workspace history document path must stay inside the tracker root");return{documentPath:r,absolutePath:n}}async function $g(e){let t=await be(Hn(e),pt),n=we(t);n.ok||Un(n.errors);let r=Io(t.length===0?Me:zn(t)),o=[],i=[],s=[],a=[];for(let c of Object.keys(r).sort()){let d;try{let l=ga(e,_t.resolve(e,c));if(d=await Ee(l.absolutePath),d===null){s.push(c);continue}let f=JSON.parse(d);(D(f)===D(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 ba(e){let t=Hn(e.pmRoot),n=await be(t,pt),r=we(n);r.ok||Un(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:zn(n),a=Io(s),c=a[e.documentPath];if(c!==void 0&&D(c)!==D(e.before))throw new g(`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=df({...a,[e.documentPath]:e.after},n.length===0?i:s.metadata.created_at),l=ut({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 ft(t,l),{entry:l,historyPath:t}}async function Hg(e){let t=await W(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await ba(e)}finally{await t()}}async function wa(e){let t=await W(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{let n=Hn(e.pmRoot),r=await be(n,pt),o=we(r);o.ok||Un(o.errors);let i=r.length===0?Me:zn(r),s=ut({nowIso:Ie(),author:e.author,op:e.op,before:i,after:i,message:e.message,context:e.context});return await ft(n,s),{entry:s,historyPath:n}}finally{await t()}}async function va(e,t){if(t===e.raw)return!1;let n=t===null?null:JSON.parse(t),r=JSON.parse(e.raw);await K(e.filePath,e.raw);try{(t!==null||e.recordCreation!==!1)&&await ba({pmRoot:e.pmRoot,documentPath:_t.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 cf.rm(e.filePath,{force:!0}):await K(e.filePath,t),o}return!0}async function Ea(e){let{documentPath:t}=ga(e.pmRoot,e.filePath),n=await W(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 be(Hn(e.pmRoot),pt),s=we(i);s.ok||Un(s.errors);let a=Io(i.length===0?Me:zn(i))[t];if(a!==void 0&&D(a)!==D(r===null?null:JSON.parse(r)))throw new g(`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 va({...e,raw:o.raw},r),result:o.result}}finally{await n()}}async function zg(e){let t=await W(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await va(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]="7db1d069-0038-57f8-8c3e-0b0ba66579ca")}catch{}})();var uf=1048576,ff=4194304;async function Ia(e,t){let n=Ft.dirname(e);for(;n!==Ft.parse(e).root;){let o=await ka.stat(n).catch(i=>{if(ne(i))return null;throw i});if(o!==null){if(!o.isDirectory())throw new g("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=Ft.dirname(n)}let r=await ka.open(e,"r").catch(o=>{if(ne(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||!lf(i.subarray(0,s)))throw new g("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 mf(e){if(e===null)return{version:1,enforcement:"advise",policies:[]};let t;try{t=JSON.parse(e)}catch{throw new g("schema/policies.json must contain valid JSON.",w.CONFLICT,{code:"workflow_policy_registry_invalid",nextSteps:["Restore valid policy JSON before retrying the mutation."]})}return zi(t)}async function _f(e){return mf(await Ia(Ft.join(e,"schema","policies.json"),uf))}async function pf(e,t){let n=await Ia(fe(e,t),ff);if(n===null)return[];let r;try{if(r=n.split(/\r?\n/).filter(o=>o.trim()).map(o=>JSON.parse(o)),!we(r).ok)throw new Error("invalid chain")}catch{throw new g("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 hf(e,t,n){let r=n.before?.status!==n.after?.status&&t.policies.some(s=>s.rule.kind==="approval"&&Ui(s,n)),o=n.before?.id??n.after?.id,i=r&&typeof o=="string"?await pf(e,o):[];return Bi(t,{...n,approvals:i})}async function So(e){let t=await _f(e.pmRoot),n=await hf(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 wa({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 g("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=Ri("update",l);return f===void 0?`Supply ${l} using its declared SDK or package mutation contract, then retry.`:$e(["update",c,Ai("update",f),`<${l}>`,"--pm-path",Ft.resolve(e.pmRoot)])});throw new g(`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 yf}from"node:async_hooks";import{channel as gf}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]="b2b2d49a-bb8c-54d7-89d2-1dbe76879129")}catch{}})();var To=new yf,Co=gf("@unbrained/pm-cli/item-metadata-enumeration/v1");function Bn(e){Co.publish(e)}async function ob(e){let t={enumeration_calls:0,metadata_rows:0},n=r=>{To.getStore()?.includes(t)&&(t.enumeration_calls+=1,t.metadata_rows+=r)};Co.subscribe(n);try{return{result:await To.run([...To.getStore()??[],t],e),work:{...t}}}finally{Co.unsubscribe(n)}}import Je from"node:fs/promises";import Ta from"node:path";import{randomUUID as bf}from"node:crypto";import{createRequire as wf}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]="e10ab0c5-e777-5364-b7fb-464e42400ab2")}catch{}})();var vf="metadata-query-index.sqlite",$t="5";function Ef(e){try{return e(["node","sqlite"].join(":")).DatabaseSync??null}catch{return null}}var Oo;function kf(e,t){let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>=22?Ef(t):null}function Ht(){return Oo!==void 0||(Oo=kf(process.versions.node,wf(import.meta.url))),Oo}function Sa(e,t){return Math.max(0,Math.floor(e===void 0?t:e))}function ht(e){return Ta.join(e,"runtime",vf)}function If(e){e.exec(`
72
+ `}import rf from"node:crypto";import Hn 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]="664124e5-715d-5f86-ae69-89f203db76c3")}catch{}})();function ga(e){let t=[],n=!1;for(let r of(e??"").toLowerCase()){let o=r.charCodeAt(0),i=o>=48&&o<=57,s=o>=97&&o<=122;if(!i&&!s){n=t.length>0;continue}n&&(t.push("-"),n=!1),t.push(r)}return t.length===0?"pm-":`${t.join("")}-`}function jt(e){let t=e.trim().toLowerCase();return t.startsWith("#")&&(t=t.slice(1)),t}function Ye(e,t){let n=ga(t),r=jt(e);return r.startsWith(n)?r:`${n}${r}`}function of(e){let t=Yi(e);if(t!==void 0)return t;let n="";for(let r=0;r<e;r+=1)n+=rf.randomInt(0,36).toString(36);return n}async function sf(e,t,n){let r=[...new Set(Object.values(n))].flatMap(o=>[Hn.join(e,o,`${t}.md`),Hn.join(e,o,`${t}.toon`)]);return r.push(Hn.join(e,"history",`${t}.jsonl`)),(await Promise.all(r.map(o=>je(o)))).some(Boolean)}var ya=4,ba=12;function af(e){return typeof e!="number"||!Number.isFinite(e)?ya:Math.min(ba,Math.max(ya,Math.trunc(e)))}async function Tg(e,t,n={}){let r=af(n.tokenLength),o=Math.min(r+6,ba),i=0;for(;r<=o;){for(let s=0;s<32;s+=1){let a=`${ga(t)}${of(r)}`;if(!await(n.probeExisting===!1?je(Hn.join(e,"history",`${a}.jsonl`)):sf(e,a,n.typeToFolder??Pe)))return a;i+=1}r+=1}throw new Error(`Unable to generate unique id after ${i} attempts`)}import Sa from"node:fs/promises";import Ft from"node:path";import{isUtf8 as lf}from"node:buffer";import cf from"node:fs/promises";import _t from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="af606b47-d071-5724-b1e7-de4e1e5d7385")}catch{}})();var pt="_workspace";function zn(e){return _t.join(e,"history",`${pt}.jsonl`)}function df(e,t){return{metadata:{id:pt,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 Un(e,t=e.length){let n=Fn();for(let r of e.slice(0,t))n=Xe(n,r.patch).document;return $n(n)}function To(e){return"documents"in e.metadata&&typeof e.metadata.documents=="object"&&e.metadata.documents!==null&&!Array.isArray(e.metadata.documents)?e.metadata.documents:{}}function Bn(e){throw new g(`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 wa(e,t){let n=_t.resolve(t),r=_t.relative(e,n).replaceAll("\\","/");if(r.length===0||r===".."||r.startsWith("../")||_t.isAbsolute(r))throw new TypeError("Workspace history document path must stay inside the tracker root");return{documentPath:r,absolutePath:n}}async function $g(e){let t=await be(zn(e),pt),n=we(t);n.ok||Bn(n.errors);let r=To(t.length===0?Me:Un(t)),o=[],i=[],s=[],a=[];for(let c of Object.keys(r).sort()){let d;try{let l=wa(e,_t.resolve(e,c));if(d=await Ee(l.absolutePath),d===null){s.push(c);continue}let f=JSON.parse(d);(D(f)===D(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 va(e){let t=zn(e.pmRoot),n=await be(t,pt),r=we(n);r.ok||Bn(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:Un(n),a=To(s),c=a[e.documentPath];if(c!==void 0&&D(c)!==D(e.before))throw new g(`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=df({...a,[e.documentPath]:e.after},n.length===0?i:s.metadata.created_at),l=ut({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 ft(t,l),{entry:l,historyPath:t}}async function Hg(e){let t=await W(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await va(e)}finally{await t()}}async function Ea(e){let t=await W(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{let n=zn(e.pmRoot),r=await be(n,pt),o=we(r);o.ok||Bn(o.errors);let i=r.length===0?Me:Un(r),s=ut({nowIso:Ie(),author:e.author,op:e.op,before:i,after:i,message:e.message,context:e.context});return await ft(n,s),{entry:s,historyPath:n}}finally{await t()}}async function ka(e,t){if(t===e.raw)return!1;let n=t===null?null:JSON.parse(t),r=JSON.parse(e.raw);await K(e.filePath,e.raw);try{(t!==null||e.recordCreation!==!1)&&await va({pmRoot:e.pmRoot,documentPath:_t.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 cf.rm(e.filePath,{force:!0}):await K(e.filePath,t),o}return!0}async function Ia(e){let{documentPath:t}=wa(e.pmRoot,e.filePath),n=await W(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 be(zn(e.pmRoot),pt),s=we(i);s.ok||Bn(s.errors);let a=To(i.length===0?Me:Un(i))[t];if(a!==void 0&&D(a)!==D(r===null?null:JSON.parse(r)))throw new g(`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 ka({...e,raw:o.raw},r),result:o.result}}finally{await n()}}async function zg(e){let t=await W(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await ka(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]="7db1d069-0038-57f8-8c3e-0b0ba66579ca")}catch{}})();var uf=1048576,ff=4194304;async function Ta(e,t){let n=Ft.dirname(e);for(;n!==Ft.parse(e).root;){let o=await Sa.stat(n).catch(i=>{if(ne(i))return null;throw i});if(o!==null){if(!o.isDirectory())throw new g("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=Ft.dirname(n)}let r=await Sa.open(e,"r").catch(o=>{if(ne(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||!lf(i.subarray(0,s)))throw new g("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 mf(e){if(e===null)return{version:1,enforcement:"advise",policies:[]};let t;try{t=JSON.parse(e)}catch{throw new g("schema/policies.json must contain valid JSON.",w.CONFLICT,{code:"workflow_policy_registry_invalid",nextSteps:["Restore valid policy JSON before retrying the mutation."]})}return Bi(t)}async function _f(e){return mf(await Ta(Ft.join(e,"schema","policies.json"),uf))}async function pf(e,t){let n=await Ta(fe(e,t),ff);if(n===null)return[];let r;try{if(r=n.split(/\r?\n/).filter(o=>o.trim()).map(o=>JSON.parse(o)),!we(r).ok)throw new Error("invalid chain")}catch{throw new g("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 hf(e,t,n){let r=n.before?.status!==n.after?.status&&t.policies.some(s=>s.rule.kind==="approval"&&Wi(s,n)),o=n.before?.id??n.after?.id,i=r&&typeof o=="string"?await pf(e,o):[];return Vi(t,{...n,approvals:i})}async function Co(e){let t=await _f(e.pmRoot),n=await hf(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 Ea({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 g("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=Di("update",l);return f===void 0?`Supply ${l} using its declared SDK or package mutation contract, then retry.`:$e(["update",c,Ni("update",f),`<${l}>`,"--pm-path",Ft.resolve(e.pmRoot)])});throw new g(`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 yf}from"node:async_hooks";import{channel as gf}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]="b2b2d49a-bb8c-54d7-89d2-1dbe76879129")}catch{}})();var Oo=new yf,xo=gf("@unbrained/pm-cli/item-metadata-enumeration/v1");function Wn(e){xo.publish(e)}async function ob(e){let t={enumeration_calls:0,metadata_rows:0},n=r=>{Oo.getStore()?.includes(t)&&(t.enumeration_calls+=1,t.metadata_rows+=r)};xo.subscribe(n);try{return{result:await Oo.run([...Oo.getStore()??[],t],e),work:{...t}}}finally{xo.unsubscribe(n)}}import Je from"node:fs/promises";import Oa from"node:path";import{randomUUID as bf}from"node:crypto";import{createRequire as wf}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]="84a3dae8-69b6-589d-a8ec-11f77c1d103a")}catch{}})();var vf="metadata-query-index.sqlite",$t="5",Ro;function Ht(){return Ro!==void 0||(Ro=Sn(process.versions.node,wf(import.meta.url))),Ro}function Ca(e,t){return Math.max(0,Math.floor(e===void 0?t:e))}function ht(e){return Oa.join(e,"runtime",vf)}function Ef(e){e.exec(`
73
73
  PRAGMA foreign_keys = ON;
74
74
  PRAGMA journal_mode = OFF;
75
75
  PRAGMA synchronous = OFF;
@@ -124,7 +124,7 @@ ${i}
124
124
  tags,
125
125
  tokenize = 'unicode61'
126
126
  );
127
- `)}function Vn(e,t,n){e.prepare("INSERT INTO metadata(key, value) VALUES (?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value").run(t,n)}function Ca(e,t){let n=t.metadata;e.prepare(`INSERT INTO items(
127
+ `)}function Gn(e,t,n){e.prepare("INSERT INTO metadata(key, value) VALUES (?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value").run(t,n)}function xa(e,t){let n=t.metadata;e.prepare(`INSERT INTO items(
128
128
  id, relative_path, metadata_json, status, type, priority,
129
129
  updated_at, created_at, parent, assignee, sprint, release
130
130
  ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
@@ -139,10 +139,10 @@ ${i}
139
139
  parent = excluded.parent,
140
140
  assignee = excluded.assignee,
141
141
  sprint = excluded.sprint,
142
- release = excluded.release`).run(n.id,t.relativePath,JSON.stringify(n),n.status,n.type,n.priority,n.updated_at,n.created_at,n.parent??null,n.assignee??null,n.sprint??null,n.release??null),e.prepare("DELETE FROM item_metadata_keys WHERE item_id = ?").run(n.id),e.prepare("DELETE FROM item_linked_files WHERE item_id = ?").run(n.id),e.prepare("DELETE FROM item_search WHERE rowid = (SELECT rowid FROM items WHERE id = ?)").run(n.id),e.prepare("INSERT INTO item_search(rowid, id, title, description, tags) SELECT rowid, ?, ?, ?, ? FROM items WHERE id = ?").run(n.id,n.title,n.description,n.tags.join(" "),n.id);let r=e.prepare("INSERT INTO item_metadata_keys(item_id, key) VALUES (?, ?)");for(let i of Object.keys(n))r.run(n.id,i);let o=e.prepare("INSERT INTO item_linked_files(item_id, path, scope, note) VALUES (?, ?, ?, ?)");for(let i of t.linkedFiles??[])o.run(n.id,i.path,i.scope,i.note??null)}async function Oa(e){let t=ht(e.pmRoot),n=Ht();if(!n){await Je.rm(t,{force:!0});return}await Je.mkdir(Ta.dirname(t),{recursive:!0});let r=`${t}.${bf()}.tmp`,o;try{o=new n(r),If(o),o.exec("BEGIN IMMEDIATE"),Vn(o,"version",$t),Vn(o,"context_fingerprint",e.contextFingerprint),Vn(o,"source_cursor",e.sourceCursor);for(let i of e.rows)Ca(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 qn(e){return Object.fromEntries(e.prepare("SELECT key, value FROM metadata").all().map(t=>[String(t.key),String(t.value)]))}async function xa(e){let t=Ht();if(!t)return!1;let n=ht(e.pmRoot),r;try{await Je.access(n),r=new t(n),r.exec("PRAGMA foreign_keys = ON");let o=qn(r);if(o.version!==$t||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&&Ca(r,e.row),Vn(r,"source_cursor",e.sourceCursor),r.exec("COMMIT"),r.close(),!0}catch{try{r?.exec("ROLLBACK")}catch{}return r?.close(),!1}}function Wn(e,t,n,r,o){!r||r.length===0||(e.push(`${n} ${o} (${r.map(()=>"?").join(", ")})`),t.push(...r))}function Sf(e){let t=[],n=[];Wn(t,n,"status",e.statuses,"IN"),Wn(t,n,"status",e.excludeStatuses,"NOT IN"),Wn(t,n,"type",e.types,"IN"),Wn(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 lb(e){let t=Ht();if(!t)return null;let n=e.query??{},{where:r,parameters:o}=Sf(n),i;try{i=new t(ht(e.pmRoot),{readOnly:!0});let s=qn(i);if(s.version!==$t||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 l=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(f=>{let m=JSON.parse(String(f.metadata_json));if(!m.id)throw new TypeError("Indexed metadata row has no id");return m});return i.close(),{source_cursor:s.source_cursor,total:Number(a.count),items:l}}catch{return i?.close(),null}}async function ub(e){let t=Ht();if(!t||e.paths.length===0)return null;let n;try{n=new t(ht(e.pmRoot),{readOnly:!0});let r=qn(n);if(r.version!==$t||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
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 Ra(e){let t=ht(e.pmRoot),n=Ht();if(!n){await Je.rm(t,{force:!0});return}await Je.mkdir(Oa.dirname(t),{recursive:!0});let r=`${t}.${bf()}.tmp`,o;try{o=new n(r),Ef(o),o.exec("BEGIN IMMEDIATE"),Gn(o,"version",$t),Gn(o,"context_fingerprint",e.contextFingerprint),Gn(o,"source_cursor",e.sourceCursor);for(let i of e.rows)xa(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 qn(e){return Object.fromEntries(e.prepare("SELECT key, value FROM metadata").all().map(t=>[String(t.key),String(t.value)]))}async function Aa(e){let t=Ht();if(!t)return!1;let n=ht(e.pmRoot),r;try{await Je.access(n),r=new t(n),r.exec("PRAGMA foreign_keys = ON");let o=qn(r);if(o.version!==$t||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&&xa(r,e.row),Gn(r,"source_cursor",e.sourceCursor),r.exec("COMMIT"),r.close(),!0}catch{try{r?.exec("ROLLBACK")}catch{}return r?.close(),!1}}function Vn(e,t,n,r,o){!r||r.length===0||(e.push(`${n} ${o} (${r.map(()=>"?").join(", ")})`),t.push(...r))}function kf(e){let t=[],n=[];Vn(t,n,"status",e.statuses,"IN"),Vn(t,n,"status",e.excludeStatuses,"NOT IN"),Vn(t,n,"type",e.types,"IN"),Vn(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 ub(e){let t=Ht();if(!t)return null;let n=e.query??{},{where:r,parameters:o}=kf(n),i;try{i=new t(ht(e.pmRoot),{readOnly:!0});let s=qn(i);if(s.version!==$t||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 l=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(f=>{let m=JSON.parse(String(f.metadata_json));if(!m.id)throw new TypeError("Indexed metadata row has no id");return m});return i.close(),{source_cursor:s.source_cursor,total:Number(a.count),items:l}}catch{return i?.close(),null}}async function fb(e){let t=Ht();if(!t||e.paths.length===0)return null;let n;try{n=new t(ht(e.pmRoot),{readOnly:!0});let r=qn(n);if(r.version!==$t||r.source_cursor!==e.expectedSourceCursor)return n.close(),null;let o=e.paths.map(()=>"?").join(", "),i=e.scope===void 0?"":" AND scope = ?",s=[...e.paths,...e.scope===void 0?[]:[e.scope]],a=`path IN (${o})${i}`,c=n.prepare(`SELECT COUNT(DISTINCT item_id) AS count
144
144
  FROM item_linked_files
145
- WHERE ${a}`).get(...s),d=Sa(e.limit,50),l=Sa(e.offset,0),f=n.prepare(`SELECT items.id, items.metadata_json
145
+ WHERE ${a}`).get(...s),d=Ca(e.limit,50),l=Ca(e.offset,0),f=n.prepare(`SELECT items.id, items.metadata_json
146
146
  FROM items
147
147
  WHERE EXISTS (
148
148
  SELECT 1 FROM item_linked_files
@@ -153,13 +153,13 @@ ${i}
153
153
  FROM item_linked_files
154
154
  WHERE item_id IN (${p.map(()=>"?").join(", ")})
155
155
  AND ${a}
156
- ORDER BY path ASC, scope ASC`).all(...p,...s),b=new Map(p.map(y=>[y,[]]));for(let y of _){let S=String(y.item_id),A=b.get(S);A.push({path:String(y.path),scope:String(y.scope),...y.note===null?{}:{note:String(y.note)}}),b.set(S,A)}for(let y of f){let S=JSON.parse(String(y.metadata_json));m.push({item:S,files:b.get(String(y.id))})}}return n.close(),{source_cursor:r.source_cursor,total:Number(c.count),matches:m}}catch{return n?.close(),null}}async function fb(e){let t=Ht();if(!t)return null;let n;try{n=new t(ht(e.pmRoot),{readOnly:!0});let r=qn(n);if(r.version!==$t||r.source_cursor!==e.expectedSourceCursor)return n.close(),null;let o=n.prepare(`SELECT items.metadata_json
156
+ ORDER BY path ASC, scope ASC`).all(...p,...s),b=new Map(p.map(y=>[y,[]]));for(let y of _){let S=String(y.item_id),A=b.get(S);A.push({path:String(y.path),scope:String(y.scope),...y.note===null?{}:{note:String(y.note)}}),b.set(S,A)}for(let y of f){let S=JSON.parse(String(y.metadata_json));m.push({item:S,files:b.get(String(y.id))})}}return n.close(),{source_cursor:r.source_cursor,total:Number(c.count),matches:m}}catch{return n?.close(),null}}async function mb(e){let t=Ht();if(!t)return null;let n;try{n=new t(ht(e.pmRoot),{readOnly:!0});let r=qn(n);if(r.version!==$t||r.source_cursor!==e.expectedSourceCursor)return n.close(),null;let o=n.prepare(`SELECT items.metadata_json
157
157
  FROM item_search
158
158
  JOIN items ON items.id = item_search.id
159
159
  WHERE item_search MATCH ?
160
160
  ORDER BY bm25(item_search), items.priority, items.updated_at DESC, items.id
161
- LIMIT ?`).all(e.query,Math.max(0,Math.floor(e.limit))).map(i=>JSON.parse(String(i.metadata_json)));return n.close(),{source_cursor:r.source_cursor,items:o}}catch{return n?.close(),null}}async function Gn(e){await Je.rm(ht(e),{force:!0})}import U from"node:fs/promises";import M from"node:path";import{createHash as Tf,randomUUID as La}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]="846c1c5d-8a5c-56ee-832a-bfc780283e70")}catch{}})();var ce=8,Pa=500,Cf="metadata-derived-index",Of="metadata-cache.json",xf="metadata-cache-bodies.json",Rf="metadata-cache-collections.json",Af="metadata-cache-delta.json",Df="metadata-cache-manifest.json",Ra=4,Nf=["comments","notes","learnings","files","tests","test_runs","docs"];function Ma(){return on(me())}function Xn(e){let t={...e},n={};for(let r of Nf)r in t&&(n[r]=t[r],delete t[r]);return{light:t,heavy:n}}function ja(e,t){return!t||Object.keys(t).length===0?e:{...e,...t}}function Fa(e,t,n,r){let o=Tf("sha256");o.update(`format:${e??"default"}`);let i=Object.entries(t).sort(([s],[a])=>s.localeCompare(a)).map(([s,a])=>`${s}=${a}`).join(",");return o.update(`|types:${i}`),n&&o.update(`|schema:${JSON.stringify(n)}`),r.length>0&&o.update(`|extension_fields:${r.join(",")}`),o.digest("hex").slice(0,16)}function Yn(e){return M.join(e,"runtime",Of)}function Jn(e){return M.join(e,"runtime",xf)}function Qn(e){return M.join(e,"runtime",Rf)}function Ro(e){return M.join(e,"runtime",Af)}function Ao(e){return M.join(e,"runtime",Df)}function Zn(e,t){let n=M.extname(e);return`${e.slice(0,-n.length)}.${t}${n}`}var Lf=24,Z=new Map,er=new WeakMap;function Do(e){return er.get(e)??e.source_cursor}function Pf(e,t){let n=Do(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){er.set(e,n);for(let[r,o]of Object.entries(t.changes))o.entry?e.entries[r]=o.entry:delete e.entries[r];e.directory_signatures=t.directory_signatures,e.source_cursor=t.source_cursor}}function Mf(e,t){if(!e)return;let n=Do(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){er.set(e,n);for(let[r,o]of Object.entries(t.changes))o.body?e.bodies[r]=o.body:delete e.bodies[r];e.source_cursor=t.source_cursor}}function jf(e,t){if(!e)return;let n=Do(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){er.set(e,n);for(let[r,o]of Object.entries(t.changes))o.collections?e.collections[r]=o.collections:delete e.collections[r];e.source_cursor=t.source_cursor}}function Ff(e,t,n,r){!e||!r||e.context_fingerprint!==r.context_fingerprint||(Pf(e,r),Mf(t,r),jf(n,r))}function xo(e,t){Z.size>=Lf&&!Z.has(e)&&Pi(Z),Z.set(e,t)}async function Re(e,t){let n;try{n=await U.stat(e)}catch{return Z.delete(e),null}let r=Z.get(e);if(r&&zt(r.signature,n.mtimeMs,n.ctimeMs,n.size))return Z.delete(e),Z.set(e,r),r.envelope;let o;try{o=t(await U.readFile(e,"utf8"))}catch{o=null}return xo(e,{signature:{mtime_ms:n.mtimeMs,ctime_ms:n.ctimeMs,size:n.size},envelope:o}),o}async function $f(e,t,n){let r=a=>{let c=JSON.parse(a);return c.version!==ce||typeof c.source_cursor!="string"||typeof c.entries!="object"||c.entries===null?null:c},o=Yn(e),i=await Re(o,r);if(!t||i===null||i.context_fingerprint===t)return i;let s=await Re(Zn(o,t),r);return s===null&&Wt(n,`metadata_cache_context_changed:${i.context_fingerprint}->${t}`),s}async function Hf(e,t){let n=i=>{let s=JSON.parse(i);return s.version!==ce||typeof s.source_cursor!="string"||typeof s.bodies!="object"||s.bodies===null?null:s},r=Jn(e),o=await Re(r,n);return t&&o?.context_fingerprint!==t?await Re(Zn(r,t),n):o}async function zf(e,t){let n=i=>{let s=JSON.parse(i);return s.version!==ce||typeof s.source_cursor!="string"||typeof s.collections!="object"||s.collections===null?null:s},r=Qn(e),o=await Re(r,n);return t&&o?.context_fingerprint!==t?await Re(Zn(r,t),n):o}async function No(e){let t=Ro(e),n=await Re(t,r=>{let o=JSON.parse(r);return o.version!==ce||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 U.stat(t),{envelope:null,invalid:!0}}catch{return{envelope:null,invalid:!1}}}async function Lo(e){let t=Ao(e),n=await Re(t,r=>{let o=JSON.parse(r);return o.version!==ce||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 U.stat(t),await yt(e)}catch{}return null}async function Ut(e,t){await U.mkdir(M.dirname(e),{recursive:!0}),await K(e,JSON.stringify(t));try{let r=await U.stat(e);xo(e,{signature:{mtime_ms:r.mtimeMs,ctime_ms:r.ctimeMs,size:r.size},envelope:t})}catch{Z.delete(e)}let n=M.dirname(M.dirname(e));if(e===Yn(n)||e===Jn(n)||e===Qn(n)){let r=Zn(e,t.context_fingerprint);await K(r,JSON.stringify(t));try{let c=await U.stat(r);xo(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 U.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>Ra){let c=(await Promise.all(a.map(async d=>{try{return{path:d,mtime:(await U.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-Ra)))await U.rm(d.path,{force:!0}),Z.delete(d.path)}}}function Uf(e,t,n){return n?t===n&&e!==n:t==="toon"&&e!=="toon"}function $a(e,t,n){return e===void 0||Uf(e,t,n)}function Wt(e,t){e&&!e.includes(t)&&e.push(t)}function zt(e,t,n,r){return e.mtime_ms===t&&e.ctime_ms===n&&e.size===r}async function Bf(e,t,n){let r=M.join(e,t);try{let o=await U.readdir(r);return{folder:t,dirPath:r,files:o}}catch(o){return typeof o=="object"&&o!==null&&"code"in o&&!ne(o)&&Wt(n,`item_list_directory_read_failed:${t}`),{folder:t,dirPath:r,files:[]}}}async function Wf(e,t){try{let n=await U.stat(M.join(e,t));return[t,{exists:!0,mtime_ms:n.mtimeMs,ctime_ms:n.ctimeMs,size:n.size}]}catch{return[t,{exists:!1,mtime_ms:0,ctime_ms:0,size:0}]}}async function Kn(e,t){return Object.fromEntries(await Promise.all(t.map(async n=>await Wf(e,n))))}function Bt(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&&zt(o,r.mtime_ms,r.ctime_ms,r.size)})}function Vf(e){return an.some(t=>e.toLowerCase().endsWith(t))}function qf(e,t,n,r,o,i){r||(e.metadata=!0),t&&!o&&(e.body=!0),n&&!i&&(e.collections=!0)}async function Gf(e,t,n){if(n)for(let r of await ke({path:e,scope:"project"}))Wt(t,r)}function Aa(e,t,n,r){if(e)return t&&n?n.collections:r}async function Kf(e,t,n){let r=await U.stat(e),o=r.mtimeMs,i=r.ctimeMs,{size:s}=r,a=kr(e);await Gf(e,n.warnings,n.dispatchReadHooks);let c=n.previousEntries[t],d=!n.forceSourceRead&&c!==void 0&&zt(c,o,i,s),l=n.previousBodies[t],f=!n.forceSourceRead&&l!==void 0&&zt(l,o,i,s),m=n.previousCollections[t],p=!n.forceSourceRead&&m!==void 0&&zt(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:Aa(n.includeCollections,p,m,void 0),bodyLength:c.body_length,body:n.includeBody?l.body:void 0};let _=await U.readFile(e,"utf8"),b=In(_,{format:a,schema:n.schema,extensionFieldNames:n.extensionFieldNames,onWarning:S=>Wt(n.warnings,S)}),y=Xn(b.metadata);return qf(n.state.misses,n.includeBody,n.includeCollections,d,f,p),{mtimeMs:o,ctimeMs:i,size:s,itemFormat:a,lightMetadata:d?c.metadata:y.light,heavyMetadata:Aa(n.includeCollections,p,m,y.heavy),bodyLength:d?c.body_length:b.body.length,body:n.includeBody?b.body:void 0}}function Xf(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?ja(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};$a(i?.itemFormat,r.itemFormat,n.preferredFormat)&&n.state.documentsById.set(o.id,{candidate:s,itemFormat:r.itemFormat})}async function Yf(e,t,n,r){try{let o=await Kf(t,n,r);Xf(t,n,r,o)}catch{Wt(r.warnings,`item_list_item_read_failed:${e}/${M.basename(t)}`)}}function Jf(e,t){return e&&e.context_fingerprint===t?e.entries:{}}function Qf(e,t){return e&&e.context_fingerprint===t?e.bodies:{}}function Zf(e,t){return e&&e.context_fingerprint===t?e.collections:{}}function em(){return{newEntries:{},newBodies:{},newCollections:{},documentsById:new Map,misses:{metadata:!1,body:!1,collections:!1}}}async function tm(e,t){let n=[];for(let{folder:r,dirPath:o,files:i}of e)for(let s of i){if(!Vf(s))continue;let a=M.join(o,s),c=M.relative(t.pmRoot,a);n.push(Yf(r,a,c,t)),n.length===32&&(await Promise.all(n),n.length=0)}await Promise.all(n)}async function nm(e){if(!(!(e.state.misses.metadata||Object.keys(e.previousEntries).length!==Object.keys(e.state.newEntries).length||!Bt(e.existingCache?.directory_signatures,e.directorySignatures))&&e.existingCache!==null&&e.existingCache.context_fingerprint===e.contextFingerprint))try{await Ut(Yn(e.pmRoot),{version:ce,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,directory_signatures:e.directorySignatures,entries:e.state.newEntries}),await Ut(Ao(e.pmRoot),{version:ce,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,entry_count:Object.keys(e.state.newEntries).length,directory_signatures:e.directorySignatures});let t=[...e.state.documentsById.values()].map(({candidate:n})=>({relativePath:M.relative(e.pmRoot,n.item_path),metadata:Xn(n.metadata).light,linkedFiles:n.metadata.files??[]}));t.length>=e.minimumIndexedItems?await Oa({pmRoot:e.pmRoot,contextFingerprint:e.contextFingerprint,sourceCursor:e.sourceCursor,rows:t}):await Gn(e.pmRoot)}catch{}}async function rm(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 Ut(Jn(e.pmRoot),{version:ce,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,bodies:e.state.newBodies}).catch(()=>{})}async function om(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 Ut(Qn(e.pmRoot),{version:ce,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,collections:e.state.newCollections}).catch(()=>{})}async function Po(e,t,n={}){let r=await Lo(e);return n.required!==!0&&(r===null||r.entry_count<Pa)?async()=>{}:W(e,Cf,30,t,!1,!1,3e3)}async function Sb(e,t){let n=await Lo(e);if(n===null)return null;let r=await No(e);if(r.invalid)return await yt(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&&!Bt(i,await Kn(e,t))?null:{source_cursor:o,entry_count:n.entry_count}}function Da(e,t){let n=M.relative(e,t);return n===""||n===".."||n.startsWith(`..${M.sep}`)||M.isAbsolute(n)?null:n}async function yt(e){await Promise.all([Yn(e),Jn(e),Qn(e),Ro(e),Ao(e)].map(async t=>{await U.rm(t,{force:!0}),Z.delete(t)})),await Gn(e)}async function im(e){if(e.mutation.document===null)return{entry:null,body:null,collections:null};let t=await U.stat(e.mutation.itemPath),n=Xn(e.mutation.document.metadata),r={mtime_ms:t.mtimeMs,ctime_ms:t.ctimeMs,size:t.size};return{entry:{...r,metadata:n.light,body_length:e.mutation.document.body.length},body:{...r,body:e.mutation.document.body},collections:{...r,collections:n.heavy}}}function sm(e,t,n){return e?.context_fingerprint===t&&e.base_source_cursor===n?structuredClone(e.changes):{}}async function Mo(e){let t=Da(e.pmRoot,e.itemPath),n=e.previousItemPath?Da(e.pmRoot,e.previousItemPath):void 0;if(t===null||n===null)return await yt(e.pmRoot),["metadata_derived_index_path_invalidated"];try{let r=Fa(e.preferredFormat,e.typeToFolder,e.schema,Ma()),o=await Lo(e.pmRoot);if(o===null||o.context_fingerprint!==r)return[];let i=o.source_cursor,s=await No(e.pmRoot);if(s.invalid)return await yt(e.pmRoot),["metadata_derived_index_refresh_failed"];let a=sm(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 im({mutation:e});let d=La();return await Ut(Ro(e.pmRoot),{version:ce,context_fingerprint:r,base_source_cursor:i,source_cursor:d,directory_signatures:await Kn(e.pmRoot,[...new Set(Object.values(e.typeToFolder))]),changes:a}),await xa({pmRoot:e.pmRoot,contextFingerprint:r,expectedSourceCursor:c,sourceCursor:d,row:e.document===null?null:{relativePath:t,metadata:Xn(e.document.metadata).light,linkedFiles:e.document.metadata.files},deletedRelativePaths:[...n===void 0?[]:[n],...e.document===null?[t]:[]]})||await Gn(e.pmRoot),[]}catch{return await yt(e.pmRoot).catch(()=>{}),["metadata_derived_index_refresh_failed"]}}function am(e){return[...e.documentsById.values()].sort((t,n)=>t.candidate.metadata.id.localeCompare(n.candidate.metadata.id)).map(t=>t.candidate)}function Na(e,t,n){return e?.context_fingerprint===t&&e.source_cursor===n}function cm(e,t,n,r,o){return e.every(i=>(!t||r[i]!==void 0)&&(!n||o[i]!==void 0))}function dm(e){let t=new Map;for(let[n,r]of Object.entries(e.previousEntries)){let o=kr(n);if(!o)continue;let i=e.includeCollections?ja(r.metadata,e.previousCollections[n]?.collections):r.metadata,s=t.get(i.id);$a(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 lm(e){return e.forceSourceScan||Tr()||e.existingCache?.context_fingerprint!==e.contextFingerprint||e.entryKeys.length<e.minimumIndexedItems||!Bt(e.existingCache?.directory_signatures,e.directorySignatures)?!1:[!e.includeBody||Na(e.existingBodyCache,e.contextFingerprint,e.existingCache.source_cursor),!e.includeCollections||Na(e.existingCollectionsCache,e.contextFingerprint,e.existingCache.source_cursor)].every(Boolean)&&cm(e.entryKeys,e.includeBody,e.includeCollections,e.previousBodies,e.previousCollections)}async function tr(e,t,n,r,o,i={}){let s=i.includeBody!==!1,a=i.includeCollections!==!1,c=Ma(),d=Fa(t,n,o,c),l=await No(e);l.invalid&&await yt(e);let f=await $f(e,d,i.cacheDiagnostics),m=s?await Hf(e,d):null,p=a?await zf(e,d):null;Ff(f,m,p,l.envelope);let _=Jf(f,d),b=Qf(m,d),y=Zf(p,d),S=[...new Set(Object.values(n))],A=await Kn(e,S),L=Object.keys(_),$=Math.max(1,Math.floor(i.derivedIndexMinimumItems??Pa));if(lm({forceSourceScan:i.forceSourceScan===!0,contextFingerprint:d,existingCache:f,existingBodyCache:m,existingCollectionsCache:p,directorySignatures:A,entryKeys:L,minimumIndexedItems:$,includeBody:s,includeCollections:a,previousBodies:b,previousCollections:y}))return dm({pmRoot:e,preferredFormat:t,includeBody:s,includeCollections:a,previousEntries:_,previousBodies:b,previousCollections:y});let x=await Promise.all(S.map(Jt=>Bf(e,Jt,r))),q=Tr(),B=em(),Q={pmRoot:e,preferredFormat:t,warnings:r,schema:o,extensionFieldNames:c,includeBody:s,includeCollections:a,forceSourceRead:i.forceSourceScan===!0,dispatchReadHooks:q,previousEntries:_,previousBodies:b,previousCollections:y,state:B};await tm(x,Q);let G=await Kn(e,S),ee=Bt(A,G)?G:{},te=B.misses.metadata||Object.keys(_).length!==Object.keys(B.newEntries).length||!Bt(f?.directory_signatures,ee)||f===null?La():f.source_cursor;return await nm({pmRoot:e,contextFingerprint:d,sourceCursor:te,existingCache:f,previousEntries:_,directorySignatures:ee,state:B,minimumIndexedItems:$}),s&&await rm({pmRoot:e,contextFingerprint:d,sourceCursor:te,existingBodyCache:m,previousBodies:b,state:B}),a&&await om({pmRoot:e,contextFingerprint:d,sourceCursor:te,existingCollectionsCache:p,previousCollections:y,state:B}),am(B)}async function Ha(e,t,n,r,o){return(await tr(e,t,n,r,o,{includeBody:!1})).map(i=>({metadata:i.metadata,body:i.body??""}))}async function za(e,t,n,r,o){return(await tr(e,t,n,r,o,{includeBody:!1,includeCollections:!1})).map(i=>({metadata:i.metadata,body:i.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]="1745a409-0f91-5f5a-8d2a-e5e61ff667a0")}catch{}})();function Fo(e,t){return(t===void 0?void 0:Di(e,t))?.execution_role??xi[e.trim().toLowerCase()]??"agent"}var $o="blocked_by",Ua="blocks",um=Object.freeze([$o,Ua]),jo="no-active-blocker";function F(e){return e.trim().toLowerCase()}function nr(e,t){return t?`external:${e}`:`local:${F(e)}`}function Vt(e){let t=new Map,n=typeof e.blocked_by=="string"?e.blocked_by.trim():"";if(n.length>0&&F(n)!==jo){let r=ye(n);t.set(nr(n,r),r?n:F(n))}for(let r of e.dependencies??[]){let o=typeof r.id=="string"?r.id.trim():"";if(r.kind===$o&&o.length>0&&F(o)!==jo){let i=ye(o)||se(r.source_kind);t.set(nr(o,i),i?o:F(o))}}return[...t.values()].sort((r,o)=>r.localeCompare(o))}function rr(e){let t=new Map;for(let n of e){let r=F(n.id);r.length!==0&&t.set(r,new Set(Vt(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===Ua&&typeof o.id=="string"?F(o.id):"";if(i.length===0||i===jo)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 Ba(e,t){let n=F(e.id);return n.length>0?rr(t).get(n)??Vt(e):Vt(e)}function Ho(e,t,n,r){let o=e,i=typeof o.id=="string"?r?.get(F(o.id))??Ba(o,[...t.values()]):Vt(e),s=new Set((e.dependencies??[]).filter(a=>a.kind===$o&&se(a.source_kind)&&typeof a.id=="string"&&a.id.trim().length>0).map(a=>nr(a.id.trim(),!0)));return i.map(a=>{if(ye(a)||s.has(nr(a,!0)))return{id:a,title:null,status:null,resolved:!1,external:!0,...typeof e.updated_at=="string"?{blocked_since:e.updated_at}:{},resolver:null};let c=t.get(F(a));return c?{id:a,title:c.title,status:c.status,resolved:ge(c.status,n)}:{id:a,title:null,status:null,resolved:!1}})}function fm(e,t,n){return Ho(e,t,n)}function mm(e,t){let n=new Map(e.map(s=>[F(s.id),s])),r=rr(e),o=new Set([...Wa(t),...t.blocked_statuses]),i=new Set;for(let s of e){let a=ot(s.status,t);o.has(a)&&(t.blocked_statuses.has(a)||Ho(s,n,t,r).some(c=>!c.resolved))&&i.add(F(s.id))}return i}function _m(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(ot(s.item.status,t))));let i={ready:[],decisions:[],gates:[]};for(let s of o){let a=Fo(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 Wa(e){return e.active_statuses.size>0?e.active_statuses:new Set([e.open_status])}function pm(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(!ge(s.status,n))return!0;r.push(F(s.id))}}}return!1}function hm(e){let t=new Map,n=new Map,r=new Map,o=rr(e);for(let i of e){t.set(F(i.id),i);let s=typeof i.parent=="string"?i.parent.trim():"";if(s.length>0){let a=F(s),c=n.get(a)??[];c.push(i),n.set(a,c)}for(let a of o.get(F(i.id))){let c=F(a),d=r.get(c)??[];d.push(i.id),r.set(c,d)}}return{itemsById:t,childrenByParent:n,blockedByReverse:r,blockerIdsByItem:o}}function ym(e,t,n,r){let{itemsById:o,childrenByParent:i,blockedByReverse:s,blockerIdsByItem:a}=hm(t),c=new Set([...Wa(n),...n.blocked_statuses]),d=new Set(t.filter(y=>!ge(y.status,n)).map(y=>F(y.id))),l=[],f=[],m=[],p=[],_=[],b=0;for(let y of e){if(!c.has(ot(y.status,n)))continue;b+=1;let S=Ho(y,o,n,a).filter(x=>!x.resolved),A=(s.get(F(y.id))??[]).filter(x=>d.has(F(x))).sort((x,q)=>x.localeCompare(q)),L={item:y,open_blockers:S,unblocks:A};if(pm(y.id,i,n)){m.push(L);continue}let $=n.blocked_statuses.has(ot(y.status,n));if(S.length===0&&!$){let x=Fo(y.type,r);x==="human"?p.push(L):x==="gate"?_.push(L):l.push(L)}else f.push(L)}return{ready:l,blocked:f,containers:m,decisions:p,gates:_,active_count:b,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]="283dfa35-9a8e-524c-b6e2-d433d51215ca")}catch{}})();function de(){let e=ue();for(let t of me()?.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]="8b57e560-4ac4-53b6-9fb1-eebb1f30562a")}catch{}})();function qt(e){if(typeof e!="string")return;let t=e.trim().toLowerCase();return t.length>0?t:void 0}function or(e){return[e.parent_id,e.child_id,e.source,e.kind,e.holder_id,e.target_id??""].join("\0")}function gm(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 bm(e,t){let n=[...e].sort(),r=gm(n,t),o=new Set,i=wm(n,t),s=[];for(let a of r.reverse()){if(o.has(a))continue;let c=vm(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 wm(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 vm(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 Va(e){let t=new Map;for(let n of e){let r=qt(n?.id);r&&!t.has(r)&&t.set(r,n)}return t}function Em(e,t,n){let r=qt(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 km(e,t,n,r){let o=qt(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 qa(e,t){let n=new Map;for(let[r,o]of e){let i=Em(r,o,e);i&&n.set(or(i),i);for(let s of o.dependencies??[]){let a=km(r,s,e,t);a&&n.set(or(a),a)}}return[...n.values()].sort((r,o)=>or(r).localeCompare(or(o)))}function $b(e,t=de()){return qa(Va(e),t)}function Im(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 Sm(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=qt(s.parent);if(!a||!e.has(a))continue;let c=[...r.get(i)??[]].filter(d=>d!==a).sort();c.length!==0&&o.push({child_id:i,scalar_parent_id:a,dependency_parent_ids:c,legacy_terminal:n.has(i)&&n.has(a)&&c.every(d=>n.has(d))})}return o.sort((i,s)=>i.child_id.localeCompare(s.child_id))}function ir(e,t=r=>r==="closed"||r==="canceled",n=de()){let r=Va(e),o=qa(r,n),i=Tm(o),s=new Set([...r].filter(([,c])=>t(c.status)).map(([c])=>c)),a=bm([...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:Im(o,i.parents_by_child,s),divergences:Sm(r,o,s)}}function Hb(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 Tm(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 zo(e,t){let n=new Set(t);return e.every(r=>n.has(r))}function zb(e,t,n,r,o){let i=qt(n);if(!i)return;let s=ir(e,r,o),a=ir(t,r,o),c=a.divergences.find(f=>!s.divergences.some(m=>m.child_id===f.child_id&&m.scalar_parent_id===f.scalar_parent_id&&zo(f.dependency_parent_ids,m.dependency_parent_ids)));if(c){let f=[c.scalar_parent_id,...c.dependency_parent_ids].sort();throw new g(`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&&zo(f.parent_ids,m.parent_ids)));if(d)throw new g(`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=>zo(f.item_ids,m.item_ids)));if(l)throw new g(`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]="6c580b70-76eb-51db-8587-99b73dd20875")}catch{}})();var Cm="global";function qb(e){let t=e?.trim();if(t)return se(t)?Cm:t}function Gb(e,t,n){return Om(e,t,n)}function Om(e,t,n){let r=e.trim();return se(n)||ye(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]="41f814be-ee87-5cae-b674-69c2e7f42655")}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 Gt(e){let t=bt(e);return t?.toLowerCase()==="no-active-blocker"?void 0:t}function Kt(e,t,n=!0){let r=bt(e);return n&&(se(t)||r!==void 0&&ye(r))}function Uo(e,t){return Kt(e,t)?`external\0${e}`:`local\0${e.toLowerCase()}`}function Ga(e,t,n,r){return Kt(e,t)?r.get(e):n.get(e.toLowerCase())}function gt(e,t){let n=e.toLowerCase(),r=t.toLowerCase();return n!==r?n<r?-1:1:e!==t?e<t?-1:1:0}function xm(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${Uo(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 Rm(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 xm(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=gt(r.holder_id,o.holder_id);if(i!==0)return i;let s=gt(r.target_id,o.target_id);return s!==0?s:gt(r.kind,o.kind)})}function Am(e,t,n,r,o){if(typeof n!="object"||n===null)return;let i=bt(n.id);if(!i||Uo(i,n.source_kind)!==Uo(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 Dm(e,t=r=>r==="closed"||r==="canceled",n=de()){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=Am(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=gt(o.holder_id,i.holder_id);if(s!==0)return s;let a=gt(o.target_id,i.target_id);return a!==0?a:gt(o.dependency_kind,i.dependency_kind)})}function Bo(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())||Kt(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;se(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 Nm(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 Lm(e){let t=new Map;for(let n of e){let r=Gt(n.blocked_by);r&&Kt(r)&&!t.has(r)&&t.set(r,r);for(let o of n.dependencies??[]){if(typeof o!="object"||o===null||!Kt(o.id,o.source_kind))continue;let i=Gt(o.id);i&&!t.has(i)&&t.set(i,i)}}return[...t.values()].sort((n,r)=>n.localeCompare(r))}var Ka=new WeakMap;function ew(e){return e.hierarchyIntegrity??Ka.get(e)}function Pm(e,t=de()){let n={};for(let r of e)for(let o of r.dependencies??[]){if(typeof o!="object"||o===null)continue;let i=o.kind;if(typeof i!="string")continue;let s=i.trim().toLowerCase().replaceAll("-","_"),a=t.resolve(i);a&&s!==a.kind&&(n[s]=(n[s]??0)+1)}return Object.fromEntries(Object.entries(n).sort(([r],[o])=>r.localeCompare(o)))}function sr(e,t,n){let r=n??de(),o=e.filter(_=>typeof _?.id=="string"&&_.id.trim().length>0),i=new Map(o.map(_=>[_.id.trim().toLowerCase(),_.id.trim()])),s=Bo(o,t),a=Nm(s);for(let _ of a)i.set(_.toLowerCase(),_);let c=Lm(o),d=new Set(i.keys()),l=new Map;for(let _ of c){let b=_;for(;d.has(b.toLowerCase());)b=`external:${b}`;l.set(_,b),d.add(b.toLowerCase())}let f=o.map(_=>{let b=Gt(_.parent),y=Gt(_.blocked_by),S=(_.dependencies??[]).flatMap(A=>{if(typeof A!="object"||A===null)return[];let L=A,$=Gt(L.id);return $?[{id:Ga($,L.source_kind,i,l),kind:typeof L.kind=="string"?L.kind:"related"}]:[]});return{id:_.id.trim(),...b?{parent:i.get(b.toLowerCase())}:{},...y?{blocked_by:Ga(y,void 0,i,l)}:{},dependencies:S}}),m=ir(o,t,r),p={graph:ki.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:Rm(o,t),orderingContradictions:Dm(o,t,r),legacyAliasCounts:Pm(o,r),hierarchyIntegrity:m};return Ka.set(p,m),p}import{createHash as Mm}from"node:crypto";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="e31ef0fb-e803-500b-b1e5-db9edfc880c4")}catch{}})();var jm=64,Fm=8;function $m(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 Ya(e,t=r=>r==="closed"||r==="canceled",n=ue()){let r=e.filter(i=>typeof i?.id=="string"&&i.id.trim().length>0).map(i=>$m(i,t)).sort(),o=n.list().map(i=>D(i)).sort();return Mm("sha256").update(r.join("")).update("").update(o.join("")).digest("hex")}function Xa(e,t,n){let r=t??n;if(!Number.isInteger(r)||r<1)throw new TypeError(`Invalid ${e} bound: ${String(t)}`);return r}var Wo=class{#e=new Map;#t;#n;constructor(t={}){this.#t=Xa("maxResultsPerWorkspace",t.maxResultsPerWorkspace,jm),this.#n=Xa("maxWorkspaces",t.maxWorkspaces,Fm)}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()}},Ja=new Wo;function Qa(){return Ja}function iw(){Ja.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]="c67d6023-2fb2-541f-9541-8aa317368dcf")}catch{}})();var Hm=["prerequisite","dependent","ancestor","descendant","provenance","related"],zm=new TextEncoder;function Vo(e,t,n){let r=e??t;if(!Number.isInteger(r)||r<1)throw new TypeError(`Relationship context ${n} must be positive`);return r}function ar(e){return Math.max(1,Math.ceil(zm.encode(JSON.stringify(e)).byteLength/4))}function qo(e,t,n){let r=n.resolve(e.kind);if(r?.ordering){let o=(r.precedence??"source_before_target")==="source_before_target"?e.source:e.target;return t===o?"prerequisite":"dependent"}if(r?.hierarchy){let o=r.hierarchyDirection==="source_parent"?e.source:e.target;return t===o?"ancestor":"descendant"}return e.kind==="discovered_from"||e.kind==="incident_from"?"provenance":"related"}function Um(e,t,n,r){let o=e.filter(i=>i.source===t&&i.target===n||i.target===t&&i.source===n).map(i=>qo(i,n,r));return[...new Set(o)].sort()}function Bm(e){return Hm.find(t=>e.includes(t))}function Wm(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:b}of p.value){if(s.has(_))continue;s.add(_);let y={id:_,distance:m.distance+1,via:m.id,role:qo(b,_,n)};c.push(y),a.push(y)}}return c.sort((f,m)=>f.distance-m.distance||f.id.localeCompare(m.id)),{rows:c,visitedNodes:a.length,inspectedEdges:d,depthTruncated:l}}function Vm(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[qo(a,s,n)]+=1;return{directEdges:o,directTotal:i.length,rootEdges:i.map(({edge:s})=>s)}}function qm(e){let t=[],n=e.initialTokens;for(let r of e.candidates){if(t.length>=e.nodeLimit)break;let o=r.distance===1?Um(e.rootEdges,e.rootId,r.id,e.registry):[],i={...e.details.get(r.id)??{id:r.id},distance:r.distance,role:o.length>0?Bm(o):r.role,via:r.via,reasons:o.length>0?o:[`${r.role} via ${r.via} (depth ${r.distance})`]},s=ar(i);if(n+s>e.tokenBudget)break;t.push(i),n+=s}if(e.candidates.length>0&&t.length===0)throw new TypeError("Relationship context tokenBudget cannot fit one node");return{nodes:t,usedTokens:n}}function Gm(e){let t=e.options.kinds?new Set(e.options.kinds.map(i=>e.registry.require(i).kind)):void 0,n=e.graph.edges().filter(i=>{if(!e.included.has(i.source)||!e.included.has(i.target))return!1;if(t===void 0||t.has(i.kind))return!0;let s=e.registry.resolve(i.kind)?.inverse;return s!==void 0&&t.has(s)}),r=[],o=e.initialTokens;for(let i of n){if(r.length>=e.edgeLimit)break;let s=ar(i);if(o+s>e.tokenBudget)break;r.push(i),o+=s}return{edges:r,usedTokens:o,candidateCount:n.length}}function Za(e,t,n,r={}){if(!e.nodes().includes(t))throw new TypeError(`Relationship node not found: ${t}`);let o=Vo(r.nodeLimit,20,"nodeLimit"),i=Vo(r.edgeLimit,40,"edgeLimit"),s=Vo(r.tokenBudget,1200,"tokenBudget"),a=r.registry??ue(),c=new Map(n.map(Ze=>[Ze.id,Ze])),d=c.get(t)??{id:t},{evidence:l=[],...f}=d,m=[...l],p=Wm(e,t,a,r),{rootEdges:_,...b}=Vm(e,t,a,r),y=Vi("relationship-context",{rootId:t,direction:r.direction??"both",kinds:[...r.kinds??[]].sort(),maxDepth:r.maxDepth??3}),S=Gi(p.rows,r.cursor,y,({id:Ze})=>Ze),A=p.rows.slice(S),L=ar(f)+ar(m);if(L>s)throw new TypeError("Relationship context tokenBudget cannot fit root and evidence");let $=qm({candidates:A,details:c,rootEdges:_,rootId:t,registry:a,nodeLimit:o,tokenBudget:s,initialTokens:L}),{nodes:x}=$,q=new Set([t,...x.map(({id:Ze})=>Ze)]),B=Gm({graph:e,included:q,options:r,registry:a,edgeLimit:i,tokenBudget:s,initialTokens:$.usedTokens}),{edges:Q,usedTokens:G}=B,ee=S+x.length,te=ee<p.rows.length,Jt=x.at(-1),br=B.candidateCount-Q.length,pi=p.depthTruncated||te||br>0,qc={rootId:t,...f.status===void 0?{}:{rootStatus:f.status},...b,discoveredNodes:p.rows.length,returnedNodes:x.length,returnedEdges:Q.length,omittedNodes:p.rows.length-ee,omittedEdges:br,evidenceCount:m.length,hasMore:te};return{root:f,summary:qc,nodes:x,edges:Q,evidence:m,meta:{exact:!0,truncated:pi,completeness:pi?"truncated":"complete",nodeLimit:o,edgeLimit:i,tokenBudget:s,usedTokens:G,visitedNodes:p.visitedNodes,inspectedEdges:p.inspectedEdges,omittedNodes:p.rows.length-ee,omittedEdges:br,...te&&Jt?{nextCursor:qi(y,Jt.id,ee-1)}:{}}}}import{AsyncLocalStorage as m_}from"node:async_hooks";import{lstat as __,realpath as dc}from"node:fs/promises";import lc 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]="f4ae942c-f11f-5d24-95bf-a2abf3c226da")}catch{}})();var X={ok:!1},h=e=>typeof e=="string"?{ok:!0,value:e}:X,O=e=>typeof e=="boolean"?{ok:!0,value:e}:X;function N(e={}){return t=>typeof t!="number"||!Number.isFinite(t)||e.int&&(!Number.isInteger(t)||!Number.isSafeInteger(t))||e.positive&&t<=0||typeof e.min=="number"&&t<e.min||typeof e.max=="number"&&t>e.max?X:{ok:!0,value:t}}function R(...e){return t=>typeof t=="string"&&e.includes(t)?{ok:!0,value:t}:X}function v(e,t){return n=>{if(!Array.isArray(n)||t!==void 0&&n.length>t)return X;let r=[];for(let o of n){let i=e(o);if(!i.ok)return X;r.push(i.value)}return{ok:!0,value:r}}}function Ko(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}:X}function u(e){return t=>t===void 0?{ok:!0,value:void 0}:e(t)}function cr(e){return t=>{if(typeof t!="object"||t===null||Array.isArray(t))return X;let n={};for(let[r,o]of Object.entries(t)){let i=e(o);if(!i.ok)return X;n[r]=i.value}return{ok:!0,value:n}}}function C(e){return t=>{if(typeof t!="object"||t===null||Array.isArray(t))return X;let n=t,r={};for(let[o,i]of Object.entries(e)){let s=i(n[o]);if(!s.ok)return X;s.value!==void 0&&(r[o]=s.value)}return{ok:!0,value:r}}}var Km=C({key:h,values:v(h),required:u(O),aliases:u(v(h)),description:u(h)}),Xm=C({command:R("create","update"),option:h,required:u(O),visible:u(O),enabled:u(O)}),Ym=C({name:h,description:u(h),default_status:u(h),execution_role:u(R("agent","human","gate")),folder:u(h),aliases:u(v(h)),required_create_fields:u(v(h)),required_create_repeatables:u(v(h)),options:u(v(Km)),command_option_policies:u(v(Xm))}),Jm=C({id:h,aliases:u(v(h)),roles:u(v(R(...hi))),description:u(h),order:u(N())}),Qm=C({key:h,metadata_key:u(h),front_matter_key:u(h),cli_flag:u(h),cli_aliases:u(v(h)),description:u(h),type:u(R(...yi)),commands:u(v(R(...gi))),repeatable:u(O),required:u(O),required_on_create:u(O),required_types:u(v(h)),allow_unset:u(O)}),Zm=e=>{if(!Array.isArray(e)||e.length!==2)return X;let[t,n]=e;return typeof t!="string"||typeof n!="string"?X:{ok:!0,value:[t,n]}},e_=C({type:h,allowed_transitions:v(Zm)}),t_=u(C({version:u(N({int:!0})),files:u(C({types:u(h),statuses:u(h),fields:u(h),workflows:u(h)})),statuses:u(v(Jm)),fields:u(v(Qm)),workflow:u(C({draft_status:u(h),open_status:u(h),in_progress_status:u(h),blocked_status:u(h),close_status:u(h),canceled_status:u(h)})),type_workflows:u(v(e_)),unknown_field_policy:u(R(...bi))})),n_=u(C({preset:u(R(...wi)),ownership_enforcement:u(R("none","warn","strict")),create_mode_default:u(R("progressive","strict")),close_validation_default:u(R("off","warn","strict")),require_close_reason:u(O),parent_reference:u(R("warn","strict_error")),metadata_profile:u(R("core","strict","custom")),force_required_for_stale_lock:u(O),create_default_type:u(h),workflow_enforcement:u(R("off","warn","strict")),duplicate_detection_mode:u(R("off","advisory","strict")),duplicate_detection_threshold:u(N({min:0,max:1})),duplicate_detection_limit:u(N({int:!0,min:0,max:20}))})),r_=C({name:h,disabled:u(O),require_trusted:u(O),require_provenance:u(O),sandbox_profile:u(R("none","restricted","strict")),allowed_capabilities:u(v(h)),blocked_capabilities:u(v(h)),allowed_surfaces:u(v(h)),blocked_surfaces:u(v(h)),allowed_commands:u(v(h)),blocked_commands:u(v(h)),allowed_actions:u(v(h)),blocked_actions:u(v(h)),allowed_services:u(v(h)),blocked_services:u(v(h))}),Go=R("block","warn"),o_=e=>typeof e=="string"?Go(e):C({global:u(Go),project:u(Go)})(e),i_=u(C({mode:u(R("off","warn","enforce")),trust_mode:u(R("off","warn","enforce")),pm_max_version_exceeded_mode:u(o_),require_provenance:u(O),trusted_extensions:u(v(h)),default_sandbox_profile:u(R("none","restricted","strict")),allowed_extensions:u(v(h)),blocked_extensions:u(v(h)),allowed_capabilities:u(v(h)),blocked_capabilities:u(v(h)),allowed_surfaces:u(v(h)),blocked_surfaces:u(v(h)),allowed_commands:u(v(h)),blocked_commands:u(v(h)),allowed_actions:u(v(h)),blocked_actions:u(v(h)),allowed_services:u(v(h)),blocked_services:u(v(h)),extension_overrides:u(v(r_))})),Qe=Ko(128),s_=C({harness:Ko(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u),environment_keys:u(v(Qe,64)),model_environment_keys:u(v(Qe,64)),session_environment_keys:u(v(Qe,64)),provenance_environment_keys:u(cr(v(Qe,64))),provenance_resolvers:u(cr(R("ai_agent_version","claude_session_file"))),provenance_unavailable_dimensions:u(v(Qe,64)),argv_markers:u(v(Qe,64)),client_names:u(v(Qe,64))}),a_=C({version:N({int:!0}),id_prefix:h,ids:u(C({token_length:u(N({int:!0,min:4,max:12}))})),author_default:h,agent_identity:u(C({probes_enabled:u(O),identity_vocabulary:u(C({version:N({int:!0,positive:!0}),aliases:cr(Ko(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u))})),harness_signals:v(s_)})),mutation_guard:u(C({require_attributed_author:u(O),secret_guard:u(R("off","advise","block")),stale_in_progress_hours:u(N({int:!0,positive:!0}))})),item_format:u(R("toon","json_markdown")),locks:C({ttl_seconds:N({int:!0}),wait_ms:u(N({int:!0,min:0}))}),checkpoints:u(C({retention_days:u(N({int:!0,positive:!0}))})),output:C({default_format:R("toon","json")}),ux:u(C({deprecation_hints:u(O)})),history:u(C({missing_stream:R("auto_create","strict_error"),compact_policy:u(C({enabled:u(O),max_entries:u(N({int:!0,positive:!0})),trigger:u(R("health_warn","auto"))}))})),validation:u(C({sprint_release_format:R("warn","strict_error"),parent_reference:u(R("warn","strict_error")),metadata_profile:u(R("core","strict","custom")),metadata_required_fields:u(v(h)),lifecycle_stale_blocker_reason_patterns:u(v(h)),lifecycle_closure_like_blocked_reason_patterns:u(v(h)),lifecycle_closure_like_resolution_patterns:u(v(h)),lifecycle_closure_like_actual_result_patterns:u(v(h)),estimate_defaults_by_type:u(cr(N({int:!0,positive:!0})))})),governance:n_,workflow:u(C({definition_of_done:v(h)})),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(R("minimal","redacted","max")),endpoint:u(h),installation_id:u(h),retention_days:u(N({int:!0,positive:!0}))})),agent_guidance:u(C({prompt_completed:u(O),declined:u(O),declined_at:u(h),template_version:u(N({int:!0,positive:!0})),last_checked_files:u(v(h))})),item_types:u(C({definitions:v(Ym)})),schema:t_,context:u(C({default_depth:u(R("brief","standard","deep")),activity_limit:u(N({int:!0,positive:!0})),stale_threshold_days:u(N({int:!0,positive:!0})),sections:u(C({hierarchy:u(O),activity:u(O),progress:u(O),recently_created:u(O),unparented:u(O),blockers:u(O),files:u(O),workload:u(O),staleness:u(O),tests:u(O)}))})),extensions:C({enabled:v(h),disabled:v(h),policy:i_}),search:C({score_threshold:N(),hybrid_semantic_weight:u(N()),max_results:N({int:!0}),embedding_model:h,embedding_corpus_max_characters:u(N()),embedding_batch_size:N({int:!0}),embedding_timeout_ms:u(N({int:!0})),scanner_max_batch_retries:N({int:!0}),provider:u(h),default_mode:u(R("auto","keyword","semantic","hybrid")),corpus_fields:u(v(h)),mutation_refresh_policy:u(R("cache_only","semantic_configured","semantic_auto")),query_expansion:u(C({enabled:u(O),provider:u(h)})),rerank:u(C({enabled:u(O),model:u(h),top_k:u(N({int:!0,positive:!0}))})),bm25:u(C({k1:u(N()),b:u(N())}))}),providers:C({openai:C({base_url:h,api_key:h,model:h}),ollama:C({base_url:h,model:h})}),vector_store:C({adapter:u(h),collection_name:u(h),qdrant:C({url:h,api_key:h}),lancedb:C({path:h})})});function Xo(e){let t=a_(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]="a0ca9902-540c-50fe-a4e2-9c234c4a01f3")}catch{}})();function dr(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Yo(e,t,n,r=[]){if(ie(e,t)&&(r.length>0||dr(n)))return n;if(ie(e,n)||ie(t,n))return t;if((e===void 0||dr(e))&&dr(t)&&dr(n)){let o=e??{},i=new Set([...Object.keys(o),...Object.keys(t),...Object.keys(n)]);return Object.fromEntries([...i].flatMap(s=>{let a=Yo(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 g(`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]="de43e8e6-d7ef-53cc-94b0-ccdf1c4f94a3")}catch{}})();var c_={Epic:2880,Feature:480,Story:480,Milestone:2880,Task:120,Issue:60,Bug:60,Chore:30,Decision:15,Plan:120},ec=120;function Jo(e){return typeof e=="number"&&Number.isFinite(e)&&e>0}function nc(e){let t=new Map;for(let[n,r]of Object.entries(e))t.set(n.toLowerCase(),r);return t}var d_=nc(c_),tc=new WeakMap;function l_(e){let t=tc.get(e);if(t)return t;let n=nc(e);return tc.set(e,n),n}function hw(e,t){let n=(e??"").trim().toLowerCase();if(n.length===0)return ec;if(t){let o=l_(t).get(n);if(Jo(o))return Math.floor(o)}let r=d_.get(n);return Jo(r)?Math.floor(r):ec}function Qo(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||!Jo(r)||(t[o]=Math.floor(r))}return t}import{stat as u_}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]="78c79deb-5cf0-54fe-b98c-a0d5b3671ab2")}catch{}})();var lr=new Map;function rc(e){return[...new Set(e.map(t=>t.trim()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}async function f_(e){try{let t=await u_(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=rc(e),n=await Promise.all(t.map(r=>f_(r)));return n.sort((r,o)=>r.path.localeCompare(o.path)),n}function Xt(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 oc(e){return lr.get(e)}function ur(e,t){let n=rc(t.tracked_paths),r=[...t.signatures].map(o=>({path:o.path,mtime_ms:o.mtime_ms,size:o.size})).sort((o,i)=>o.path.localeCompare(i.path));lr.set(e,{tracked_paths:n,signatures:r,value:t.value})}function De(e){if(e){lr.delete(e);return}lr.clear()}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="bbb5e299-541d-5fff-8422-855c85cf7a31")}catch{}})();var ni=new m_;async function jw(e,t,n=()=>!0){let r=new Set([lc.resolve(e)]);try{r.add(await dc(e))}catch{}return ni.run([...ni.getStore()??[],[r,n]],t)}function p_(e){let t=lc.resolve(e);return ni.getStore()?.some(([n,r])=>n.has(t)&&r())??!1}var h_="settings:write",uc=Symbol("pm.settings.persist_source"),y_=128,g_=new Set(["off","advisory","strict"]);function ic(e){return structuredClone(Ei[e])}function b_(e){return e==="minimal"||e==="default"||e==="strict"||e==="custom"?e:k.governance.preset}function sc(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 w_(e){return e.preset==="custom"?sc({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):sc({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),g_.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 _r(e){let t=e.governance??{},n=b_(t.preset),r=v_(t);if(n==="custom"){let s=ic("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=ic(n),i=r.require_close_reason??o.require_close_reason;return{preset:n,...o,...r,require_close_reason:i}}function fc(){return structuredClone(k)}function mc(e){return e==="cache_only"||e==="semantic_configured"||e==="semantic_auto"?e:k.search.mutation_refresh_policy}function _c(e){return e==="auto"||e==="keyword"||e==="semantic"||e==="hybrid"?e:"auto"}function pc(e){return typeof e=="boolean"?e:k.search.query_expansion.enabled}function hc(e){return typeof e!="string"?k.search.query_expansion.provider:e.trim()}function yc(e){return typeof e=="boolean"?e:k.search.rerank.enabled}function gc(e){return typeof e!="string"?k.search.rerank.model:e.trim()}function bc(e){return typeof e=="number"&&Number.isFinite(e)&&Number.isInteger(e)&&e>0?e:k.search.rerank.top_k}function wc(e){if(typeof e!="string")return k.vector_store.collection_name;let t=e.trim().replaceAll(/[^a-zA-Z0-9_-]/g,"_").slice(0,y_);return t.length>0?t:k.vector_store.collection_name}function Zo(e){return{present:Array.isArray(e),values:Array.isArray(e)?structuredClone(e):[]}}function vc(e,t){let n=e.schema,r=Zo(n?.statuses),o=Zo(n?.fields),i=Zo(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:wt(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:wt(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 ii(e,t){Object.defineProperty(e,uc,{value:t,writable:!0,configurable:!0,enumerable:!1})}function Ec(e){let t=e[uc];if(!(!t||typeof t!="object"))return t}function fr(e){let t=structuredClone(e.settings),n=Ec(e.settings);return n&&ii(t,n),{settings:t,metadata:{has_explicit_item_format:e.metadata.has_explicit_item_format},warnings:[...e.warnings]}}function E_(e,t,n){let r=Tt(t);return[n,Ct(e,r.files.types,St.types),Ct(e,r.files.statuses,St.statuses),Ct(e,r.files.fields,St.fields),Ct(e,r.files.workflows,St.workflows)]}async function k_(e,t,n){let r=await Ae(t);ur(e,{tracked_paths:t,signatures:r,value:fr(n)})}async function I_(e,t,n){try{await k_(e,t,n)}catch{De(e)}}function ac(e,t){return e.find(n=>n.path===t)}function S_(e,t,n){for(let r of n){let o=ac(e,r),i=ac(t,r);if(!o||!i||!Xt([o],[i]))return!1}return!0}async function ei(e,t,n,r,o){try{let i=await Ae(t);if(!S_(r,i,o)){De(e);return}ur(e,{tracked_paths:t,signatures:i,value:fr(n)})}catch{De(e)}}function T_(e,t){let n=Tt(e.schema),r=wt(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=ie(r,t.runtime_item_type_definitions),s=ie(n.statuses,t.runtime_schema_statuses),a=ie(n.fields,t.runtime_schema_fields),c=ie(o,t.runtime_schema_type_workflows);return{item_type_definitions:i?t.has_source_item_type_definitions?wt(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 le(e){return{settings:fc(),metadata:{has_explicit_item_format:!1},warnings:e?[e]:[]}}function kc(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=e.item_format;return t==="toon"||t==="json_markdown"}function ri(e){return[...new Set((e??[]).map(t=>t.trim()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function Ic(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:ri(e?.last_checked_files??t.last_checked_files)}}function oe(e){return[...new Set((e??[]).map(t=>t.trim().toLowerCase()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function C_(e){return e==="off"||e==="warn"||e==="enforce"?e:k.extensions.policy.mode}function O_(e){return e==="off"||e==="warn"||e==="enforce"?e:k.extensions.policy.trust_mode}function Sc(e){return e==="none"||e==="restricted"||e==="strict"?e:k.extensions.policy.default_sandbox_profile}function x_(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=Sc(e.sandbox_profile));let r=oe(e.allowed_capabilities),o=oe(e.blocked_capabilities),i=oe(e.allowed_surfaces),s=oe(e.blocked_surfaces),a=oe(e.allowed_commands),c=oe(e.blocked_commands),d=oe(e.allowed_actions),l=oe(e.blocked_actions),f=oe(e.allowed_services),m=oe(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 R_(e){let t=new Map;for(let n of e??[]){let r=x_(n);r&&t.set(r.name,r)}return[...t.values()].sort((n,r)=>n.name.localeCompare(r.name))}function ti(e){return e==="block"||e==="warn"?e:void 0}function A_(e){if(typeof e=="string")return ti(e);if(typeof e=="object"&&e!==null&&!Array.isArray(e)){let t=ti(e.global),n=ti(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 oe(e?.[t]??k.extensions.policy[t])}function Tc(e){let t=A_(e?.pm_max_version_exceeded_mode);return{mode:C_(e?.mode),trust_mode:O_(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:Sc(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:R_(e?.extension_overrides??k.extensions.policy.extension_overrides)}}function Cc(e){return[...new Set((e??[]).map(t=>t.trim().toLowerCase().replaceAll("-","_")))].filter(t=>t.length>0).sort((t,n)=>t.localeCompare(n)).filter(t=>["author","acceptance_criteria","estimated_minutes","close_reason","reviewer","risk","confidence","sprint","release"].includes(t))}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 oi(e){return Array.isArray(e)?e:[]}function D_(e,t,n){return{...t.validation,...e.validation,parent_reference:n.parent_reference,metadata_profile:n.metadata_profile,metadata_required_fields:Cc(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:Qo(e.validation?.estimate_defaults_by_type)}}function N_(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 L_(e,t){return{...t.search,...e.search,default_mode:_c(e.search?.default_mode),mutation_refresh_policy:mc(e.search?.mutation_refresh_policy),query_expansion:{...t.search.query_expansion,...e.search?.query_expansion,enabled:pc(e.search?.query_expansion?.enabled),provider:hc(e.search?.query_expansion?.provider)},rerank:{...t.search.rerank,...e.search?.rerank,enabled:yc(e.search?.rerank?.enabled),model:gc(e.search?.rerank?.model),top_k:bc(e.search?.rerank?.top_k)}}}function P_(e,t){return{adapter:e.vector_store.adapter??t.vector_store.adapter,collection_name:wc(e.vector_store.collection_name),qdrant:{...t.vector_store.qdrant,...e.vector_store.qdrant},lancedb:{...t.vector_store.lancedb,...e.vector_store.lancedb}}}function M_(e,t){return e.item_format==="json_markdown"?"toon":e.item_format??t.item_format}function j_(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 F_(e,t){return{openai:{...t.providers.openai,...e.providers.openai},ollama:{...t.providers.ollama,...e.providers.ollama}}}function wt(e){let t=(e??[]).map(r=>Oi(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 mr(e){let t=fc(),n=_r({governance:e.governance??{preset:"default"}});return{...t,...e,item_format:M_(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:D_(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:N_(e,t),agent_guidance:Ic(e.agent_guidance??t.agent_guidance),item_types:{definitions:wt(e.item_types?.definitions)},schema:Tt(e.schema??t.schema),context:j_(e,t),extensions:{enabled:[...e.extensions.enabled],disabled:[...e.extensions.disabled],policy:Tc(e.extensions.policy??t.extensions.policy)},search:L_(e,t),providers:F_(e,t),vector_store:P_(e,t)}}function $_(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=oi(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=oi(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 H_(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 z_(e,t){return{...e.validation,parent_reference:t.parent_reference,metadata_profile:t.metadata_profile,metadata_required_fields:Cc(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:Qo(e.validation?.estimate_defaults_by_type)}}function U_(e){return{...k.search,...e.search,default_mode:_c(e.search?.default_mode),mutation_refresh_policy:mc(e.search?.mutation_refresh_policy),query_expansion:{...k.search.query_expansion,...e.search?.query_expansion,enabled:pc(e.search?.query_expansion?.enabled),provider:hc(e.search?.query_expansion?.provider)},rerank:{...k.search.rerank,...e.search?.rerank,enabled:yc(e.search?.rerank?.enabled),model:gc(e.search?.rerank?.model),top_k:bc(e.search?.rerank?.top_k)}}}function B_(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 W_(e){return{...e.vector_store,adapter:e.vector_store?.adapter??k.vector_store.adapter,collection_name:wc(e.vector_store?.collection_name),qdrant:{...e.vector_store?.qdrant},lancedb:{...e.vector_store?.lancedb}}}function V_(e,t,n,r){return{...e,item_format:"toon",validation:z_(e,t),governance:t,agent_guidance:Ic(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:U_(e),context:B_(e),extensions:{enabled:ri(e.extensions?.enabled),disabled:ri(e.extensions?.disabled),policy:Tc(e.extensions?.policy)},vector_store:W_(e)}}function Oc(e,t){for(let n of Object.keys(t)){let r=Reflect.get(t,n),o=e[n];typeof r=="object"&&r!==null&&!Array.isArray(r)&&typeof o=="object"&&o!==null&&!Array.isArray(o)?Oc(o,r):e[n]=structuredClone(r)}}function xc(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(!ie(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:{};xc(c,i,s),Object.keys(c).length>0?e[o]=c:delete e[o];continue}e[o]=structuredClone(s)}}}var si=["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 cc(e,t){let n=H_(e),r=_r(n),o=Tt(n.schema),i=T_(n,t),s=V_(n,r,o,i),a=T({...s,governance:w_(r)},si);return $_(a),a}function q_(e,t={}){let n=t.source===void 0?t.persist_source:vc(t.source.validated,mr(t.source.validated)),r=cc(e,n);if(n){let o=mr(n.source_settings);o.item_types={definitions:structuredClone(n.runtime_item_type_definitions)},o.schema={...o.schema,statuses:structuredClone(n.runtime_schema_statuses),fields:structuredClone(n.runtime_schema_fields),type_workflows:structuredClone(n.runtime_schema_type_workflows)};let i=cc(o,n);t.source!==void 0&&Oc(i,t.source.validated);let s=structuredClone(t.source===void 0?n.source_settings:t.source.raw);return xc(s,i,r),`${JSON.stringify(T(s,si),null,2)}
161
+ LIMIT ?`).all(e.query,Math.max(0,Math.floor(e.limit))).map(i=>JSON.parse(String(i.metadata_json)));return n.close(),{source_cursor:r.source_cursor,items:o}}catch{return n?.close(),null}}async function Kn(e){await Je.rm(ht(e),{force:!0})}import U from"node:fs/promises";import M from"node:path";import{createHash as If,randomUUID as Ma}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]="846c1c5d-8a5c-56ee-832a-bfc780283e70")}catch{}})();var ce=8,ja=500,Sf="metadata-derived-index",Tf="metadata-cache.json",Cf="metadata-cache-bodies.json",Of="metadata-cache-collections.json",xf="metadata-cache-delta.json",Rf="metadata-cache-manifest.json",Da=4,Af=["comments","notes","learnings","files","tests","test_runs","docs"];function Fa(){return on(me())}function Yn(e){let t={...e},n={};for(let r of Af)r in t&&(n[r]=t[r],delete t[r]);return{light:t,heavy:n}}function $a(e,t){return!t||Object.keys(t).length===0?e:{...e,...t}}function Ha(e,t,n,r){let o=If("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 Jn(e){return M.join(e,"runtime",Tf)}function Qn(e){return M.join(e,"runtime",Cf)}function Zn(e){return M.join(e,"runtime",Of)}function Do(e){return M.join(e,"runtime",xf)}function No(e){return M.join(e,"runtime",Rf)}function er(e,t){let n=M.extname(e);return`${e.slice(0,-n.length)}.${t}${n}`}var Df=24,Z=new Map,tr=new WeakMap;function Lo(e){return tr.get(e)??e.source_cursor}function Nf(e,t){let n=Lo(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){tr.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 Lf(e,t){if(!e)return;let n=Lo(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){tr.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 Pf(e,t){if(!e)return;let n=Lo(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){tr.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 Mf(e,t,n,r){!e||!r||e.context_fingerprint!==r.context_fingerprint||(Nf(e,r),Lf(t,r),Pf(n,r))}function Ao(e,t){Z.size>=Df&&!Z.has(e)&&ji(Z),Z.set(e,t)}async function Re(e,t){let n;try{n=await U.stat(e)}catch{return Z.delete(e),null}let r=Z.get(e);if(r&&zt(r.signature,n.mtimeMs,n.ctimeMs,n.size))return Z.delete(e),Z.set(e,r),r.envelope;let o;try{o=t(await U.readFile(e,"utf8"))}catch{o=null}return Ao(e,{signature:{mtime_ms:n.mtimeMs,ctime_ms:n.ctimeMs,size:n.size},envelope:o}),o}async function jf(e,t,n){let r=a=>{let c=JSON.parse(a);return c.version!==ce||typeof c.source_cursor!="string"||typeof c.entries!="object"||c.entries===null?null:c},o=Jn(e),i=await Re(o,r);if(!t||i===null||i.context_fingerprint===t)return i;let s=await Re(er(o,t),r);return s===null&&Wt(n,`metadata_cache_context_changed:${i.context_fingerprint}->${t}`),s}async function Ff(e,t){let n=i=>{let s=JSON.parse(i);return s.version!==ce||typeof s.source_cursor!="string"||typeof s.bodies!="object"||s.bodies===null?null:s},r=Qn(e),o=await Re(r,n);return t&&o?.context_fingerprint!==t?await Re(er(r,t),n):o}async function $f(e,t){let n=i=>{let s=JSON.parse(i);return s.version!==ce||typeof s.source_cursor!="string"||typeof s.collections!="object"||s.collections===null?null:s},r=Zn(e),o=await Re(r,n);return t&&o?.context_fingerprint!==t?await Re(er(r,t),n):o}async function Po(e){let t=Do(e),n=await Re(t,r=>{let o=JSON.parse(r);return o.version!==ce||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 U.stat(t),{envelope:null,invalid:!0}}catch{return{envelope:null,invalid:!1}}}async function Mo(e){let t=No(e),n=await Re(t,r=>{let o=JSON.parse(r);return o.version!==ce||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 U.stat(t),await yt(e)}catch{}return null}async function Ut(e,t){await U.mkdir(M.dirname(e),{recursive:!0}),await K(e,JSON.stringify(t));try{let r=await U.stat(e);Ao(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===Jn(n)||e===Qn(n)||e===Zn(n)){let r=er(e,t.context_fingerprint);await K(r,JSON.stringify(t));try{let c=await U.stat(r);Ao(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 U.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>Da){let c=(await Promise.all(a.map(async d=>{try{return{path:d,mtime:(await U.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-Da)))await U.rm(d.path,{force:!0}),Z.delete(d.path)}}}function Hf(e,t,n){return n?t===n&&e!==n:t==="toon"&&e!=="toon"}function za(e,t,n){return e===void 0||Hf(e,t,n)}function Wt(e,t){e&&!e.includes(t)&&e.push(t)}function zt(e,t,n,r){return e.mtime_ms===t&&e.ctime_ms===n&&e.size===r}async function zf(e,t,n){let r=M.join(e,t);try{let o=await U.readdir(r);return{folder:t,dirPath:r,files:o}}catch(o){return typeof o=="object"&&o!==null&&"code"in o&&!ne(o)&&Wt(n,`item_list_directory_read_failed:${t}`),{folder:t,dirPath:r,files:[]}}}async function Uf(e,t){try{let n=await U.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 Xn(e,t){return Object.fromEntries(await Promise.all(t.map(async n=>await Uf(e,n))))}function Bt(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&&zt(o,r.mtime_ms,r.ctime_ms,r.size)})}function Bf(e){return an.some(t=>e.toLowerCase().endsWith(t))}function Wf(e,t,n,r,o,i){r||(e.metadata=!0),t&&!o&&(e.body=!0),n&&!i&&(e.collections=!0)}async function Vf(e,t,n){if(n)for(let r of await ke({path:e,scope:"project"}))Wt(t,r)}function Na(e,t,n,r){if(e)return t&&n?n.collections:r}async function Gf(e,t,n){let r=await U.stat(e),o=r.mtimeMs,i=r.ctimeMs,{size:s}=r,a=Ir(e);await Vf(e,n.warnings,n.dispatchReadHooks);let c=n.previousEntries[t],d=!n.forceSourceRead&&c!==void 0&&zt(c,o,i,s),l=n.previousBodies[t],f=!n.forceSourceRead&&l!==void 0&&zt(l,o,i,s),m=n.previousCollections[t],p=!n.forceSourceRead&&m!==void 0&&zt(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:Na(n.includeCollections,p,m,void 0),bodyLength:c.body_length,body:n.includeBody?l.body:void 0};let _=await U.readFile(e,"utf8"),b=In(_,{format:a,schema:n.schema,extensionFieldNames:n.extensionFieldNames,onWarning:S=>Wt(n.warnings,S)}),y=Yn(b.metadata);return Wf(n.state.misses,n.includeBody,n.includeCollections,d,f,p),{mtimeMs:o,ctimeMs:i,size:s,itemFormat:a,lightMetadata:d?c.metadata:y.light,heavyMetadata:Na(n.includeCollections,p,m,y.heavy),bodyLength:d?c.body_length:b.body.length,body:n.includeBody?b.body:void 0}}function qf(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?$a(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};za(i?.itemFormat,r.itemFormat,n.preferredFormat)&&n.state.documentsById.set(o.id,{candidate:s,itemFormat:r.itemFormat})}async function Kf(e,t,n,r){try{let o=await Gf(t,n,r);qf(t,n,r,o)}catch{Wt(r.warnings,`item_list_item_read_failed:${e}/${M.basename(t)}`)}}function Xf(e,t){return e&&e.context_fingerprint===t?e.entries:{}}function Yf(e,t){return e&&e.context_fingerprint===t?e.bodies:{}}function Jf(e,t){return e&&e.context_fingerprint===t?e.collections:{}}function Qf(){return{newEntries:{},newBodies:{},newCollections:{},documentsById:new Map,misses:{metadata:!1,body:!1,collections:!1}}}async function Zf(e,t){let n=[];for(let{folder:r,dirPath:o,files:i}of e)for(let s of i){if(!Bf(s))continue;let a=M.join(o,s),c=M.relative(t.pmRoot,a);n.push(Kf(r,a,c,t)),n.length===32&&(await Promise.all(n),n.length=0)}await Promise.all(n)}async function em(e){if(!(!(e.state.misses.metadata||Object.keys(e.previousEntries).length!==Object.keys(e.state.newEntries).length||!Bt(e.existingCache?.directory_signatures,e.directorySignatures))&&e.existingCache!==null&&e.existingCache.context_fingerprint===e.contextFingerprint))try{await Ut(Jn(e.pmRoot),{version:ce,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,directory_signatures:e.directorySignatures,entries:e.state.newEntries}),await Ut(No(e.pmRoot),{version:ce,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,entry_count:Object.keys(e.state.newEntries).length,directory_signatures:e.directorySignatures});let t=[...e.state.documentsById.values()].map(({candidate:n})=>({relativePath:M.relative(e.pmRoot,n.item_path),metadata:Yn(n.metadata).light,linkedFiles:n.metadata.files??[]}));t.length>=e.minimumIndexedItems?await Ra({pmRoot:e.pmRoot,contextFingerprint:e.contextFingerprint,sourceCursor:e.sourceCursor,rows:t}):await Kn(e.pmRoot)}catch{}}async function tm(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 Ut(Qn(e.pmRoot),{version:ce,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,bodies:e.state.newBodies}).catch(()=>{})}async function nm(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 Ut(Zn(e.pmRoot),{version:ce,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,collections:e.state.newCollections}).catch(()=>{})}async function jo(e,t,n={}){let r=await Mo(e);return n.required!==!0&&(r===null||r.entry_count<ja)?async()=>{}:W(e,Sf,30,t,!1,!1,3e3)}async function Tb(e,t){let n=await Mo(e);if(n===null)return null;let r=await Po(e);if(r.invalid)return await yt(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&&!Bt(i,await Xn(e,t))?null:{source_cursor:o,entry_count:n.entry_count}}function La(e,t){let n=M.relative(e,t);return n===""||n===".."||n.startsWith(`..${M.sep}`)||M.isAbsolute(n)?null:n}async function yt(e){await Promise.all([Jn(e),Qn(e),Zn(e),Do(e),No(e)].map(async t=>{await U.rm(t,{force:!0}),Z.delete(t)})),await Kn(e)}async function rm(e){if(e.mutation.document===null)return{entry:null,body:null,collections:null};let t=await U.stat(e.mutation.itemPath),n=Yn(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 om(e,t,n){return e?.context_fingerprint===t&&e.base_source_cursor===n?structuredClone(e.changes):{}}async function Fo(e){let t=La(e.pmRoot,e.itemPath),n=e.previousItemPath?La(e.pmRoot,e.previousItemPath):void 0;if(t===null||n===null)return await yt(e.pmRoot),["metadata_derived_index_path_invalidated"];try{let r=Ha(e.preferredFormat,e.typeToFolder,e.schema,Fa()),o=await Mo(e.pmRoot);if(o===null||o.context_fingerprint!==r)return[];let i=o.source_cursor,s=await Po(e.pmRoot);if(s.invalid)return await yt(e.pmRoot),["metadata_derived_index_refresh_failed"];let a=om(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 rm({mutation:e});let d=Ma();return await Ut(Do(e.pmRoot),{version:ce,context_fingerprint:r,base_source_cursor:i,source_cursor:d,directory_signatures:await Xn(e.pmRoot,[...new Set(Object.values(e.typeToFolder))]),changes:a}),await Aa({pmRoot:e.pmRoot,contextFingerprint:r,expectedSourceCursor:c,sourceCursor:d,row:e.document===null?null:{relativePath:t,metadata:Yn(e.document.metadata).light,linkedFiles:e.document.metadata.files},deletedRelativePaths:[...n===void 0?[]:[n],...e.document===null?[t]:[]]})||await Kn(e.pmRoot),[]}catch{return await yt(e.pmRoot).catch(()=>{}),["metadata_derived_index_refresh_failed"]}}function im(e){return[...e.documentsById.values()].sort((t,n)=>t.candidate.metadata.id.localeCompare(n.candidate.metadata.id)).map(t=>t.candidate)}function Pa(e,t,n){return e?.context_fingerprint===t&&e.source_cursor===n}function sm(e,t,n,r,o){return e.every(i=>(!t||r[i]!==void 0)&&(!n||o[i]!==void 0))}function am(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?$a(r.metadata,e.previousCollections[n]?.collections):r.metadata,s=t.get(i.id);za(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 cm(e){return e.forceSourceScan||Cr()||e.existingCache?.context_fingerprint!==e.contextFingerprint||e.entryKeys.length<e.minimumIndexedItems||!Bt(e.existingCache?.directory_signatures,e.directorySignatures)?!1:[!e.includeBody||Pa(e.existingBodyCache,e.contextFingerprint,e.existingCache.source_cursor),!e.includeCollections||Pa(e.existingCollectionsCache,e.contextFingerprint,e.existingCache.source_cursor)].every(Boolean)&&sm(e.entryKeys,e.includeBody,e.includeCollections,e.previousBodies,e.previousCollections)}async function nr(e,t,n,r,o,i={}){let s=i.includeBody!==!1,a=i.includeCollections!==!1,c=Fa(),d=Ha(t,n,o,c),l=await Po(e);l.invalid&&await yt(e);let f=await jf(e,d,i.cacheDiagnostics),m=s?await Ff(e,d):null,p=a?await $f(e,d):null;Mf(f,m,p,l.envelope);let _=Xf(f,d),b=Yf(m,d),y=Jf(p,d),S=[...new Set(Object.values(n))],A=await Xn(e,S),L=Object.keys(_),$=Math.max(1,Math.floor(i.derivedIndexMinimumItems??ja));if(cm({forceSourceScan:i.forceSourceScan===!0,contextFingerprint:d,existingCache:f,existingBodyCache:m,existingCollectionsCache:p,directorySignatures:A,entryKeys:L,minimumIndexedItems:$,includeBody:s,includeCollections:a,previousBodies:b,previousCollections:y}))return am({pmRoot:e,preferredFormat:t,includeBody:s,includeCollections:a,previousEntries:_,previousBodies:b,previousCollections:y});let x=await Promise.all(S.map(Jt=>zf(e,Jt,r))),G=Cr(),B=Qf(),Q={pmRoot:e,preferredFormat:t,warnings:r,schema:o,extensionFieldNames:c,includeBody:s,includeCollections:a,forceSourceRead:i.forceSourceScan===!0,dispatchReadHooks:G,previousEntries:_,previousBodies:b,previousCollections:y,state:B};await Zf(x,Q);let q=await Xn(e,S),ee=Bt(A,q)?q:{},te=B.misses.metadata||Object.keys(_).length!==Object.keys(B.newEntries).length||!Bt(f?.directory_signatures,ee)||f===null?Ma():f.source_cursor;return await em({pmRoot:e,contextFingerprint:d,sourceCursor:te,existingCache:f,previousEntries:_,directorySignatures:ee,state:B,minimumIndexedItems:$}),s&&await tm({pmRoot:e,contextFingerprint:d,sourceCursor:te,existingBodyCache:m,previousBodies:b,state:B}),a&&await nm({pmRoot:e,contextFingerprint:d,sourceCursor:te,existingCollectionsCache:p,previousCollections:y,state:B}),im(B)}async function Ua(e,t,n,r,o){return(await nr(e,t,n,r,o,{includeBody:!1})).map(i=>({metadata:i.metadata,body:i.body??""}))}async function Ba(e,t,n,r,o){return(await nr(e,t,n,r,o,{includeBody:!1,includeCollections:!1})).map(i=>({metadata:i.metadata,body:i.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]="1745a409-0f91-5f5a-8d2a-e5e61ff667a0")}catch{}})();function Ho(e,t){return(t===void 0?void 0:Li(e,t))?.execution_role??Ai[e.trim().toLowerCase()]??"agent"}var zo="blocked_by",Wa="blocks",dm=Object.freeze([zo,Wa]),$o="no-active-blocker";function F(e){return e.trim().toLowerCase()}function rr(e,t){return t?`external:${e}`:`local:${F(e)}`}function Vt(e){let t=new Map,n=typeof e.blocked_by=="string"?e.blocked_by.trim():"";if(n.length>0&&F(n)!==$o){let r=ye(n);t.set(rr(n,r),r?n:F(n))}for(let r of e.dependencies??[]){let o=typeof r.id=="string"?r.id.trim():"";if(r.kind===zo&&o.length>0&&F(o)!==$o){let i=ye(o)||se(r.source_kind);t.set(rr(o,i),i?o:F(o))}}return[...t.values()].sort((r,o)=>r.localeCompare(o))}function or(e){let t=new Map;for(let n of e){let r=F(n.id);r.length!==0&&t.set(r,new Set(Vt(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===Wa&&typeof o.id=="string"?F(o.id):"";if(i.length===0||i===$o)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 Va(e,t){let n=F(e.id);return n.length>0?or(t).get(n)??Vt(e):Vt(e)}function Uo(e,t,n,r){let o=e,i=typeof o.id=="string"?r?.get(F(o.id))??Va(o,[...t.values()]):Vt(e),s=new Set((e.dependencies??[]).filter(a=>a.kind===zo&&se(a.source_kind)&&typeof a.id=="string"&&a.id.trim().length>0).map(a=>rr(a.id.trim(),!0)));return i.map(a=>{if(ye(a)||s.has(rr(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:ge(c.status,n)}:{id:a,title:null,status:null,resolved:!1}})}function lm(e,t,n){return Uo(e,t,n)}function um(e,t){let n=new Map(e.map(s=>[F(s.id),s])),r=or(e),o=new Set([...Ga(t),...t.blocked_statuses]),i=new Set;for(let s of e){let a=ot(s.status,t);o.has(a)&&(t.blocked_statuses.has(a)||Uo(s,n,t,r).some(c=>!c.resolved))&&i.add(F(s.id))}return i}function fm(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(ot(s.item.status,t))));let i={ready:[],decisions:[],gates:[]};for(let s of o){let a=Ho(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 Ga(e){return e.active_statuses.size>0?e.active_statuses:new Set([e.open_status])}function mm(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(!ge(s.status,n))return!0;r.push(F(s.id))}}}return!1}function _m(e){let t=new Map,n=new Map,r=new Map,o=or(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 pm(e,t,n,r){let{itemsById:o,childrenByParent:i,blockedByReverse:s,blockerIdsByItem:a}=_m(t),c=new Set([...Ga(n),...n.blocked_statuses]),d=new Set(t.filter(y=>!ge(y.status,n)).map(y=>F(y.id))),l=[],f=[],m=[],p=[],_=[],b=0;for(let y of e){if(!c.has(ot(y.status,n)))continue;b+=1;let S=Uo(y,o,n,a).filter(x=>!x.resolved),A=(s.get(F(y.id))??[]).filter(x=>d.has(F(x))).sort((x,G)=>x.localeCompare(G)),L={item:y,open_blockers:S,unblocks:A};if(mm(y.id,i,n)){m.push(L);continue}let $=n.blocked_statuses.has(ot(y.status,n));if(S.length===0&&!$){let x=Ho(y.type,r);x==="human"?p.push(L):x==="gate"?_.push(L):l.push(L)}else f.push(L)}return{ready:l,blocked:f,containers:m,decisions:p,gates:_,active_count:b,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]="283dfa35-9a8e-524c-b6e2-d433d51215ca")}catch{}})();function de(){let e=ue();for(let t of me()?.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]="8b57e560-4ac4-53b6-9fb1-eebb1f30562a")}catch{}})();function Gt(e){if(typeof e!="string")return;let t=e.trim().toLowerCase();return t.length>0?t:void 0}function ir(e){return[e.parent_id,e.child_id,e.source,e.kind,e.holder_id,e.target_id??""].join("\0")}function hm(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 ym(e,t){let n=[...e].sort(),r=hm(n,t),o=new Set,i=gm(n,t),s=[];for(let a of r.reverse()){if(o.has(a))continue;let c=bm(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 gm(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 bm(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 qa(e){let t=new Map;for(let n of e){let r=Gt(n?.id);r&&!t.has(r)&&t.set(r,n)}return t}function wm(e,t,n){let r=Gt(t.parent);if(!(!r||!n.has(r)))return{parent_id:r,child_id:e,source:"scalar_parent",kind:"parent",holder_id:e,child_cardinality:"one"}}function vm(e,t,n,r){let o=Gt(t?.id),i=r.resolve(t?.kind);if(!o||!n.has(o)||!i?.hierarchy)return;let s=i.hierarchyDirection==="source_parent";return{parent_id:s?e:o,child_id:s?o:e,source:"dependency",kind:i.kind,holder_id:e,target_id:o,child_cardinality:s?i.incoming:i.outgoing}}function Ka(e,t){let n=new Map;for(let[r,o]of e){let i=wm(r,o,e);i&&n.set(ir(i),i);for(let s of o.dependencies??[]){let a=vm(r,s,e,t);a&&n.set(ir(a),a)}}return[...n.values()].sort((r,o)=>ir(r).localeCompare(ir(o)))}function Hb(e,t=de()){return Ka(qa(e),t)}function Em(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 km(e,t,n){let r=new Map;for(let i of t){if(i.source!=="dependency")continue;let s=r.get(i.child_id)??new Set;s.add(i.parent_id),r.set(i.child_id,s)}let o=[];for(let[i,s]of e){let a=Gt(s.parent);if(!a||!e.has(a))continue;let c=[...r.get(i)??[]].filter(d=>d!==a).sort();c.length!==0&&o.push({child_id:i,scalar_parent_id:a,dependency_parent_ids:c,legacy_terminal:n.has(i)&&n.has(a)&&c.every(d=>n.has(d))})}return o.sort((i,s)=>i.child_id.localeCompare(s.child_id))}function sr(e,t=r=>r==="closed"||r==="canceled",n=de()){let r=qa(e),o=Ka(r,n),i=Im(o),s=new Set([...r].filter(([,c])=>t(c.status)).map(([c])=>c)),a=ym([...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:Em(o,i.parents_by_child,s),divergences:km(r,o,s)}}function zb(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 Im(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 Bo(e,t){let n=new Set(t);return e.every(r=>n.has(r))}function Ub(e,t,n,r,o){let i=Gt(n);if(!i)return;let s=sr(e,r,o),a=sr(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&&Bo(f.dependency_parent_ids,m.dependency_parent_ids)));if(c){let f=[c.scalar_parent_id,...c.dependency_parent_ids].sort();throw new g(`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&&Bo(f.parent_ids,m.parent_ids)));if(d)throw new g(`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=>Bo(f.item_ids,m.item_ids)));if(l)throw new g(`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]="6c580b70-76eb-51db-8587-99b73dd20875")}catch{}})();var Sm="global";function qb(e){let t=e?.trim();if(t)return se(t)?Sm:t}function Kb(e,t,n){return Tm(e,t,n)}function Tm(e,t,n){let r=e.trim();return se(n)||ye(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]="41f814be-ee87-5cae-b674-69c2e7f42655")}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 qt(e){let t=bt(e);return t?.toLowerCase()==="no-active-blocker"?void 0:t}function Kt(e,t,n=!0){let r=bt(e);return n&&(se(t)||r!==void 0&&ye(r))}function Wo(e,t){return Kt(e,t)?`external\0${e}`:`local\0${e.toLowerCase()}`}function Xa(e,t,n,r){return Kt(e,t)?r.get(e):n.get(e.toLowerCase())}function gt(e,t){let n=e.toLowerCase(),r=t.toLowerCase();return n!==r?n<r?-1:1:e!==t?e<t?-1:1:0}function Cm(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${Wo(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 Om(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 Cm(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=gt(r.holder_id,o.holder_id);if(i!==0)return i;let s=gt(r.target_id,o.target_id);return s!==0?s:gt(r.kind,o.kind)})}function xm(e,t,n,r,o){if(typeof n!="object"||n===null)return;let i=bt(n.id);if(!i||Wo(i,n.source_kind)!==Wo(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 Rm(e,t=r=>r==="closed"||r==="canceled",n=de()){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=xm(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=gt(o.holder_id,i.holder_id);if(s!==0)return s;let a=gt(o.target_id,i.target_id);return a!==0?a:gt(o.dependency_kind,i.dependency_kind)})}function Vo(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())||Kt(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;se(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 Am(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 Dm(e){let t=new Map;for(let n of e){let r=qt(n.blocked_by);r&&Kt(r)&&!t.has(r)&&t.set(r,r);for(let o of n.dependencies??[]){if(typeof o!="object"||o===null||!Kt(o.id,o.source_kind))continue;let i=qt(o.id);i&&!t.has(i)&&t.set(i,i)}}return[...t.values()].sort((n,r)=>n.localeCompare(r))}var Ya=new WeakMap;function tw(e){return e.hierarchyIntegrity??Ya.get(e)}function Nm(e,t=de()){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 ar(e,t,n){let r=n??de(),o=e.filter(_=>typeof _?.id=="string"&&_.id.trim().length>0),i=new Map(o.map(_=>[_.id.trim().toLowerCase(),_.id.trim()])),s=Vo(o,t),a=Am(s);for(let _ of a)i.set(_.toLowerCase(),_);let c=Dm(o),d=new Set(i.keys()),l=new Map;for(let _ of c){let b=_;for(;d.has(b.toLowerCase());)b=`external:${b}`;l.set(_,b),d.add(b.toLowerCase())}let f=o.map(_=>{let b=qt(_.parent),y=qt(_.blocked_by),S=(_.dependencies??[]).flatMap(A=>{if(typeof A!="object"||A===null)return[];let L=A,$=qt(L.id);return $?[{id:Xa($,L.source_kind,i,l),kind:typeof L.kind=="string"?L.kind:"related"}]:[]});return{id:_.id.trim(),...b?{parent:i.get(b.toLowerCase())}:{},...y?{blocked_by:Xa(y,void 0,i,l)}:{},dependencies:S}}),m=sr(o,t,r),p={graph:Si.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:Om(o,t),orderingContradictions:Rm(o,t,r),legacyAliasCounts:Nm(o,r),hierarchyIntegrity:m};return Ya.set(p,m),p}import{createHash as Lm}from"node:crypto";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="e31ef0fb-e803-500b-b1e5-db9edfc880c4")}catch{}})();var Pm=64,Mm=8;function jm(e,t){let n=(e.dependencies??[]).map(r=>{if(typeof r!="object"||r===null)return"";let o=r;return`${typeof o.kind=="string"?o.kind:"related"}:${typeof o.id=="string"?o.id:""}`}).sort().join(",");return[e.id,e.title,e.status,t(e.status)?"1":"0",typeof e.type=="string"?e.type.trim():"",e.parent??"",e.blocked_by??"",n].join("\0")}function Qa(e,t=r=>r==="closed"||r==="canceled",n=ue()){let r=e.filter(i=>typeof i?.id=="string"&&i.id.trim().length>0).map(i=>jm(i,t)).sort(),o=n.list().map(i=>D(i)).sort();return Lm("sha256").update(r.join("")).update("").update(o.join("")).digest("hex")}function Ja(e,t,n){let r=t??n;if(!Number.isInteger(r)||r<1)throw new TypeError(`Invalid ${e} bound: ${String(t)}`);return r}var Go=class{#e=new Map;#t;#n;constructor(t={}){this.#t=Ja("maxResultsPerWorkspace",t.maxResultsPerWorkspace,Pm),this.#n=Ja("maxWorkspaces",t.maxWorkspaces,Mm)}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()}},Za=new Go;function ec(){return Za}function sw(){Za.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]="c67d6023-2fb2-541f-9541-8aa317368dcf")}catch{}})();var Fm=["prerequisite","dependent","ancestor","descendant","provenance","related"],$m=new TextEncoder;function qo(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 cr(e){return Math.max(1,Math.ceil($m.encode(JSON.stringify(e)).byteLength/4))}function Ko(e,t,n){let r=n.resolve(e.kind);if(r?.ordering){let o=(r.precedence??"source_before_target")==="source_before_target"?e.source:e.target;return t===o?"prerequisite":"dependent"}if(r?.hierarchy){let o=r.hierarchyDirection==="source_parent"?e.source:e.target;return t===o?"ancestor":"descendant"}return e.kind==="discovered_from"||e.kind==="incident_from"?"provenance":"related"}function Hm(e,t,n,r){let o=e.filter(i=>i.source===t&&i.target===n||i.target===t&&i.source===n).map(i=>Ko(i,n,r));return[...new Set(o)].sort()}function zm(e){return Fm.find(t=>e.includes(t))}function Um(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:b}of p.value){if(s.has(_))continue;s.add(_);let y={id:_,distance:m.distance+1,via:m.id,role:Ko(b,_,n)};c.push(y),a.push(y)}}return c.sort((f,m)=>f.distance-m.distance||f.id.localeCompare(m.id)),{rows:c,visitedNodes:a.length,inspectedEdges:d,depthTruncated:l}}function Bm(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[Ko(a,s,n)]+=1;return{directEdges:o,directTotal:i.length,rootEdges:i.map(({edge:s})=>s)}}function Wm(e){let t=[],n=e.initialTokens;for(let r of e.candidates){if(t.length>=e.nodeLimit)break;let o=r.distance===1?Hm(e.rootEdges,e.rootId,r.id,e.registry):[],i={...e.details.get(r.id)??{id:r.id},distance:r.distance,role:o.length>0?zm(o):r.role,via:r.via,reasons:o.length>0?o:[`${r.role} via ${r.via} (depth ${r.distance})`]},s=cr(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 Vm(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=cr(i);if(o+s>e.tokenBudget)break;r.push(i),o+=s}return{edges:r,usedTokens:o,candidateCount:n.length}}function tc(e,t,n,r={}){if(!e.nodes().includes(t))throw new TypeError(`Relationship node not found: ${t}`);let o=qo(r.nodeLimit,20,"nodeLimit"),i=qo(r.edgeLimit,40,"edgeLimit"),s=qo(r.tokenBudget,1200,"tokenBudget"),a=r.registry??ue(),c=new Map(n.map(Ze=>[Ze.id,Ze])),d=c.get(t)??{id:t},{evidence:l=[],...f}=d,m=[...l],p=Um(e,t,a,r),{rootEdges:_,...b}=Bm(e,t,a,r),y=qi("relationship-context",{rootId:t,direction:r.direction??"both",kinds:[...r.kinds??[]].sort(),maxDepth:r.maxDepth??3}),S=Xi(p.rows,r.cursor,y,({id:Ze})=>Ze),A=p.rows.slice(S),L=cr(f)+cr(m);if(L>s)throw new TypeError("Relationship context tokenBudget cannot fit root and evidence");let $=Wm({candidates:A,details:c,rootEdges:_,rootId:t,registry:a,nodeLimit:o,tokenBudget:s,initialTokens:L}),{nodes:x}=$,G=new Set([t,...x.map(({id:Ze})=>Ze)]),B=Vm({graph:e,included:G,options:r,registry:a,edgeLimit:i,tokenBudget:s,initialTokens:$.usedTokens}),{edges:Q,usedTokens:q}=B,ee=S+x.length,te=ee<p.rows.length,Jt=x.at(-1),wr=B.candidateCount-Q.length,yi=p.depthTruncated||te||wr>0,Kc={rootId:t,...f.status===void 0?{}:{rootStatus:f.status},...b,discoveredNodes:p.rows.length,returnedNodes:x.length,returnedEdges:Q.length,omittedNodes:p.rows.length-ee,omittedEdges:wr,evidenceCount:m.length,hasMore:te};return{root:f,summary:Kc,nodes:x,edges:Q,evidence:m,meta:{exact:!0,truncated:yi,completeness:yi?"truncated":"complete",nodeLimit:o,edgeLimit:i,tokenBudget:s,usedTokens:q,visitedNodes:p.visitedNodes,inspectedEdges:p.inspectedEdges,omittedNodes:p.rows.length-ee,omittedEdges:wr,...te&&Jt?{nextCursor:Ki(y,Jt.id,ee-1)}:{}}}}import{AsyncLocalStorage as u_}from"node:async_hooks";import{lstat as f_,realpath as uc}from"node:fs/promises";import fc 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]="f4ae942c-f11f-5d24-95bf-a2abf3c226da")}catch{}})();var X={ok:!1},h=e=>typeof e=="string"?{ok:!0,value:e}:X,O=e=>typeof e=="boolean"?{ok:!0,value:e}:X;function N(e={}){return t=>typeof t!="number"||!Number.isFinite(t)||e.int&&(!Number.isInteger(t)||!Number.isSafeInteger(t))||e.positive&&t<=0||typeof e.min=="number"&&t<e.min||typeof e.max=="number"&&t>e.max?X:{ok:!0,value:t}}function R(...e){return t=>typeof t=="string"&&e.includes(t)?{ok:!0,value:t}:X}function v(e,t){return n=>{if(!Array.isArray(n)||t!==void 0&&n.length>t)return X;let r=[];for(let o of n){let i=e(o);if(!i.ok)return X;r.push(i.value)}return{ok:!0,value:r}}}function Yo(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}:X}function u(e){return t=>t===void 0?{ok:!0,value:void 0}:e(t)}function dr(e){return t=>{if(typeof t!="object"||t===null||Array.isArray(t))return X;let n={};for(let[r,o]of Object.entries(t)){let i=e(o);if(!i.ok)return X;n[r]=i.value}return{ok:!0,value:n}}}function C(e){return t=>{if(typeof t!="object"||t===null||Array.isArray(t))return X;let n=t,r={};for(let[o,i]of Object.entries(e)){let s=i(n[o]);if(!s.ok)return X;s.value!==void 0&&(r[o]=s.value)}return{ok:!0,value:r}}}var Gm=C({key:h,values:v(h),required:u(O),aliases:u(v(h)),description:u(h)}),qm=C({command:R("create","update"),option:h,required:u(O),visible:u(O),enabled:u(O)}),Km=C({name:h,description:u(h),default_status:u(h),execution_role:u(R("agent","human","gate")),folder:u(h),aliases:u(v(h)),required_create_fields:u(v(h)),required_create_repeatables:u(v(h)),options:u(v(Gm)),command_option_policies:u(v(qm))}),Xm=C({id:h,aliases:u(v(h)),roles:u(v(R(...gi))),description:u(h),order:u(N())}),Ym=C({key:h,metadata_key:u(h),front_matter_key:u(h),cli_flag:u(h),cli_aliases:u(v(h)),description:u(h),type:u(R(...bi)),commands:u(v(R(...wi))),repeatable:u(O),required:u(O),required_on_create:u(O),required_types:u(v(h)),allow_unset:u(O)}),Jm=e=>{if(!Array.isArray(e)||e.length!==2)return X;let[t,n]=e;return typeof t!="string"||typeof n!="string"?X:{ok:!0,value:[t,n]}},Qm=C({type:h,allowed_transitions:v(Jm)}),Zm=u(C({version:u(N({int:!0})),files:u(C({types:u(h),statuses:u(h),fields:u(h),workflows:u(h)})),statuses:u(v(Xm)),fields:u(v(Ym)),workflow:u(C({draft_status:u(h),open_status:u(h),in_progress_status:u(h),blocked_status:u(h),close_status:u(h),canceled_status:u(h)})),type_workflows:u(v(Qm)),unknown_field_policy:u(R(...vi))})),e_=u(C({preset:u(R(...Ei)),ownership_enforcement:u(R("none","warn","strict")),create_mode_default:u(R("progressive","strict")),close_validation_default:u(R("off","warn","strict")),require_close_reason:u(O),parent_reference:u(R("warn","strict_error")),metadata_profile:u(R("core","strict","custom")),force_required_for_stale_lock:u(O),create_default_type:u(h),workflow_enforcement:u(R("off","warn","strict")),duplicate_detection_mode:u(R("off","advisory","strict")),duplicate_detection_threshold:u(N({min:0,max:1})),duplicate_detection_limit:u(N({int:!0,min:0,max:20}))})),t_=C({name:h,disabled:u(O),require_trusted:u(O),require_provenance:u(O),sandbox_profile:u(R("none","restricted","strict")),allowed_capabilities:u(v(h)),blocked_capabilities:u(v(h)),allowed_surfaces:u(v(h)),blocked_surfaces:u(v(h)),allowed_commands:u(v(h)),blocked_commands:u(v(h)),allowed_actions:u(v(h)),blocked_actions:u(v(h)),allowed_services:u(v(h)),blocked_services:u(v(h))}),Xo=R("block","warn"),n_=e=>typeof e=="string"?Xo(e):C({global:u(Xo),project:u(Xo)})(e),r_=u(C({mode:u(R("off","warn","enforce")),trust_mode:u(R("off","warn","enforce")),pm_max_version_exceeded_mode:u(n_),require_provenance:u(O),trusted_extensions:u(v(h)),default_sandbox_profile:u(R("none","restricted","strict")),allowed_extensions:u(v(h)),blocked_extensions:u(v(h)),allowed_capabilities:u(v(h)),blocked_capabilities:u(v(h)),allowed_surfaces:u(v(h)),blocked_surfaces:u(v(h)),allowed_commands:u(v(h)),blocked_commands:u(v(h)),allowed_actions:u(v(h)),blocked_actions:u(v(h)),allowed_services:u(v(h)),blocked_services:u(v(h)),extension_overrides:u(v(t_))})),Qe=Yo(128),o_=C({harness:Yo(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u),environment_keys:u(v(Qe,64)),model_environment_keys:u(v(Qe,64)),session_environment_keys:u(v(Qe,64)),provenance_environment_keys:u(dr(v(Qe,64))),provenance_resolvers:u(dr(R("ai_agent_version","claude_session_file"))),provenance_unavailable_dimensions:u(v(Qe,64)),argv_markers:u(v(Qe,64)),client_names:u(v(Qe,64))}),i_=C({version:N({int:!0}),id_prefix:h,ids:u(C({token_length:u(N({int:!0,min:4,max:12}))})),author_default:h,agent_identity:u(C({probes_enabled:u(O),identity_vocabulary:u(C({version:N({int:!0,positive:!0}),aliases:dr(Yo(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u))})),harness_signals:v(o_)})),mutation_guard:u(C({require_attributed_author:u(O),secret_guard:u(R("off","advise","block")),stale_in_progress_hours:u(N({int:!0,positive:!0}))})),item_format:u(R("toon","json_markdown")),locks:C({ttl_seconds:N({int:!0}),wait_ms:u(N({int:!0,min:0}))}),checkpoints:u(C({retention_days:u(N({int:!0,positive:!0}))})),output:C({default_format:R("toon","json")}),ux:u(C({deprecation_hints:u(O)})),history:u(C({missing_stream:R("auto_create","strict_error"),compact_policy:u(C({enabled:u(O),max_entries:u(N({int:!0,positive:!0})),trigger:u(R("health_warn","auto"))}))})),validation:u(C({sprint_release_format:R("warn","strict_error"),parent_reference:u(R("warn","strict_error")),metadata_profile:u(R("core","strict","custom")),metadata_required_fields:u(v(h)),lifecycle_stale_blocker_reason_patterns:u(v(h)),lifecycle_closure_like_blocked_reason_patterns:u(v(h)),lifecycle_closure_like_resolution_patterns:u(v(h)),lifecycle_closure_like_actual_result_patterns:u(v(h)),estimate_defaults_by_type:u(dr(N({int:!0,positive:!0})))})),governance:e_,workflow:u(C({definition_of_done:v(h)})),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(R("minimal","redacted","max")),endpoint:u(h),installation_id:u(h),retention_days:u(N({int:!0,positive:!0}))})),agent_guidance:u(C({prompt_completed:u(O),declined:u(O),declined_at:u(h),template_version:u(N({int:!0,positive:!0})),last_checked_files:u(v(h))})),item_types:u(C({definitions:v(Km)})),schema:Zm,context:u(C({default_depth:u(R("brief","standard","deep")),activity_limit:u(N({int:!0,positive:!0})),stale_threshold_days:u(N({int:!0,positive:!0})),sections:u(C({hierarchy:u(O),activity:u(O),progress:u(O),recently_created:u(O),unparented:u(O),blockers:u(O),files:u(O),workload:u(O),staleness:u(O),tests:u(O)}))})),extensions:C({enabled:v(h),disabled:v(h),policy:r_}),search:C({score_threshold:N(),hybrid_semantic_weight:u(N()),max_results:N({int:!0}),embedding_model:h,embedding_corpus_max_characters:u(N()),embedding_batch_size:N({int:!0}),embedding_timeout_ms:u(N({int:!0})),scanner_max_batch_retries:N({int:!0}),provider:u(h),default_mode:u(R("auto","keyword","semantic","hybrid")),corpus_fields:u(v(h)),mutation_refresh_policy:u(R("cache_only","semantic_configured","semantic_auto")),query_expansion:u(C({enabled:u(O),provider:u(h)})),rerank:u(C({enabled:u(O),model:u(h),top_k:u(N({int:!0,positive:!0}))})),bm25:u(C({k1:u(N()),b:u(N())}))}),providers:C({openai:C({base_url:h,api_key:h,model:h}),ollama:C({base_url:h,model:h})}),vector_store:C({adapter:u(h),collection_name:u(h),qdrant:C({url:h,api_key:h}),lancedb:C({path:h})})});function Jo(e){let t=i_(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]="a0ca9902-540c-50fe-a4e2-9c234c4a01f3")}catch{}})();function lr(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Qo(e,t,n,r=[]){if(ie(e,t)&&(r.length>0||lr(n)))return n;if(ie(e,n)||ie(t,n))return t;if((e===void 0||lr(e))&&lr(t)&&lr(n)){let o=e??{},i=new Set([...Object.keys(o),...Object.keys(t),...Object.keys(n)]);return Object.fromEntries([...i].flatMap(s=>{let a=Qo(Object.hasOwn(o,s)?o[s]:void 0,Object.hasOwn(t,s)?t[s]:void 0,Object.hasOwn(n,s)?n[s]:void 0,[...r,s]);return a===void 0?[]:[[s,a]]}))}throw new g(`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]="de43e8e6-d7ef-53cc-94b0-ccdf1c4f94a3")}catch{}})();var s_={Epic:2880,Feature:480,Story:480,Milestone:2880,Task:120,Issue:60,Bug:60,Chore:30,Decision:15,Plan:120},nc=120;function Zo(e){return typeof e=="number"&&Number.isFinite(e)&&e>0}function oc(e){let t=new Map;for(let[n,r]of Object.entries(e))t.set(n.toLowerCase(),r);return t}var a_=oc(s_),rc=new WeakMap;function c_(e){let t=rc.get(e);if(t)return t;let n=oc(e);return rc.set(e,n),n}function yw(e,t){let n=(e??"").trim().toLowerCase();if(n.length===0)return nc;if(t){let o=c_(t).get(n);if(Zo(o))return Math.floor(o)}let r=a_.get(n);return Zo(r)?Math.floor(r):nc}function ei(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||!Zo(r)||(t[o]=Math.floor(r))}return t}import{stat as d_}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]="78c79deb-5cf0-54fe-b98c-a0d5b3671ab2")}catch{}})();var ur=new Map;function ic(e){return[...new Set(e.map(t=>t.trim()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}async function l_(e){try{let t=await d_(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=ic(e),n=await Promise.all(t.map(r=>l_(r)));return n.sort((r,o)=>r.path.localeCompare(o.path)),n}function Xt(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 sc(e){return ur.get(e)}function fr(e,t){let n=ic(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));ur.set(e,{tracked_paths:n,signatures:r,value:t.value})}function De(e){if(e){ur.delete(e);return}ur.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]="bbb5e299-541d-5fff-8422-855c85cf7a31")}catch{}})();var oi=new u_;async function Fw(e,t,n=()=>!0){let r=new Set([fc.resolve(e)]);try{r.add(await uc(e))}catch{}return oi.run([...oi.getStore()??[],[r,n]],t)}function m_(e){let t=fc.resolve(e);return oi.getStore()?.some(([n,r])=>n.has(t)&&r())??!1}var __="settings:write",mc=Symbol("pm.settings.persist_source"),p_=128,h_=new Set(["off","advisory","strict"]);function ac(e){return structuredClone(Ii[e])}function y_(e){return e==="minimal"||e==="default"||e==="strict"||e==="custom"?e:k.governance.preset}function cc(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"?cc({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):cc({preset:e.preset},e)}function b_(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 pr(e){let t=e.governance??{},n=y_(t.preset),r=b_(t);if(n==="custom"){let s=ac("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=ac(n),i=r.require_close_reason??o.require_close_reason;return{preset:n,...o,...r,require_close_reason:i}}function _c(){return structuredClone(k)}function pc(e){return e==="cache_only"||e==="semantic_configured"||e==="semantic_auto"?e:k.search.mutation_refresh_policy}function hc(e){return e==="auto"||e==="keyword"||e==="semantic"||e==="hybrid"?e:"auto"}function yc(e){return typeof e=="boolean"?e:k.search.query_expansion.enabled}function gc(e){return typeof e!="string"?k.search.query_expansion.provider:e.trim()}function bc(e){return typeof e=="boolean"?e:k.search.rerank.enabled}function wc(e){return typeof e!="string"?k.search.rerank.model:e.trim()}function vc(e){return typeof e=="number"&&Number.isFinite(e)&&Number.isInteger(e)&&e>0?e:k.search.rerank.top_k}function Ec(e){if(typeof e!="string")return k.vector_store.collection_name;let t=e.trim().replaceAll(/[^a-zA-Z0-9_-]/g,"_").slice(0,p_);return t.length>0?t:k.vector_store.collection_name}function ti(e){return{present:Array.isArray(e),values:Array.isArray(e)?structuredClone(e):[]}}function kc(e,t){let n=e.schema,r=ti(n?.statuses),o=ti(n?.fields),i=ti(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:wt(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:wt(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 ai(e,t){Object.defineProperty(e,mc,{value:t,writable:!0,configurable:!0,enumerable:!1})}function Ic(e){let t=e[mc];if(!(!t||typeof t!="object"))return t}function mr(e){let t=structuredClone(e.settings),n=Ic(e.settings);return n&&ai(t,n),{settings:t,metadata:{has_explicit_item_format:e.metadata.has_explicit_item_format},warnings:[...e.warnings]}}function w_(e,t,n){let r=Tt(t);return[n,Ct(e,r.files.types,St.types),Ct(e,r.files.statuses,St.statuses),Ct(e,r.files.fields,St.fields),Ct(e,r.files.workflows,St.workflows)]}async function v_(e,t,n){let r=await Ae(t);fr(e,{tracked_paths:t,signatures:r,value:mr(n)})}async function E_(e,t,n){try{await v_(e,t,n)}catch{De(e)}}function dc(e,t){return e.find(n=>n.path===t)}function k_(e,t,n){for(let r of n){let o=dc(e,r),i=dc(t,r);if(!o||!i||!Xt([o],[i]))return!1}return!0}async function ni(e,t,n,r,o){try{let i=await Ae(t);if(!k_(r,i,o)){De(e);return}fr(e,{tracked_paths:t,signatures:i,value:mr(n)})}catch{De(e)}}function I_(e,t){let n=Tt(e.schema),r=wt(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=ie(r,t.runtime_item_type_definitions),s=ie(n.statuses,t.runtime_schema_statuses),a=ie(n.fields,t.runtime_schema_fields),c=ie(o,t.runtime_schema_type_workflows);return{item_type_definitions:i?t.has_source_item_type_definitions?wt(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 le(e){return{settings:_c(),metadata:{has_explicit_item_format:!1},warnings:e?[e]:[]}}function Sc(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=e.item_format;return t==="toon"||t==="json_markdown"}function ii(e){return[...new Set((e??[]).map(t=>t.trim()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function Tc(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:ii(e?.last_checked_files??t.last_checked_files)}}function oe(e){return[...new Set((e??[]).map(t=>t.trim().toLowerCase()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function S_(e){return e==="off"||e==="warn"||e==="enforce"?e:k.extensions.policy.mode}function T_(e){return e==="off"||e==="warn"||e==="enforce"?e:k.extensions.policy.trust_mode}function Cc(e){return e==="none"||e==="restricted"||e==="strict"?e:k.extensions.policy.default_sandbox_profile}function C_(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=Cc(e.sandbox_profile));let r=oe(e.allowed_capabilities),o=oe(e.blocked_capabilities),i=oe(e.allowed_surfaces),s=oe(e.blocked_surfaces),a=oe(e.allowed_commands),c=oe(e.blocked_commands),d=oe(e.allowed_actions),l=oe(e.blocked_actions),f=oe(e.allowed_services),m=oe(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 O_(e){let t=new Map;for(let n of e??[]){let r=C_(n);r&&t.set(r.name,r)}return[...t.values()].sort((n,r)=>n.name.localeCompare(r.name))}function ri(e){return e==="block"||e==="warn"?e:void 0}function x_(e){if(typeof e=="string")return ri(e);if(typeof e=="object"&&e!==null&&!Array.isArray(e)){let t=ri(e.global),n=ri(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 oe(e?.[t]??k.extensions.policy[t])}function Oc(e){let t=x_(e?.pm_max_version_exceeded_mode);return{mode:S_(e?.mode),trust_mode:T_(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:Cc(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:O_(e?.extension_overrides??k.extensions.policy.extension_overrides)}}function xc(e){return[...new Set((e??[]).map(t=>t.trim().toLowerCase().replaceAll("-","_")))].filter(t=>t.length>0).sort((t,n)=>t.localeCompare(n)).filter(t=>["author","acceptance_criteria","estimated_minutes","close_reason","reviewer","risk","confidence","sprint","release"].includes(t))}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 si(e){return Array.isArray(e)?e:[]}function R_(e,t,n){return{...t.validation,...e.validation,parent_reference:n.parent_reference,metadata_profile:n.metadata_profile,metadata_required_fields:xc(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:ei(e.validation?.estimate_defaults_by_type)}}function A_(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 D_(e,t){return{...t.search,...e.search,default_mode:hc(e.search?.default_mode),mutation_refresh_policy:pc(e.search?.mutation_refresh_policy),query_expansion:{...t.search.query_expansion,...e.search?.query_expansion,enabled:yc(e.search?.query_expansion?.enabled),provider:gc(e.search?.query_expansion?.provider)},rerank:{...t.search.rerank,...e.search?.rerank,enabled:bc(e.search?.rerank?.enabled),model:wc(e.search?.rerank?.model),top_k:vc(e.search?.rerank?.top_k)}}}function N_(e,t){return{adapter:e.vector_store.adapter??t.vector_store.adapter,collection_name:Ec(e.vector_store.collection_name),qdrant:{...t.vector_store.qdrant,...e.vector_store.qdrant},lancedb:{...t.vector_store.lancedb,...e.vector_store.lancedb}}}function L_(e,t){return e.item_format==="json_markdown"?"toon":e.item_format??t.item_format}function P_(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 M_(e,t){return{openai:{...t.providers.openai,...e.providers.openai},ollama:{...t.providers.ollama,...e.providers.ollama}}}function wt(e){let t=(e??[]).map(r=>Ri(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 _r(e){let t=_c(),n=pr({governance:e.governance??{preset:"default"}});return{...t,...e,item_format:L_(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:R_(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:A_(e,t),agent_guidance:Tc(e.agent_guidance??t.agent_guidance),item_types:{definitions:wt(e.item_types?.definitions)},schema:Tt(e.schema??t.schema),context:P_(e,t),extensions:{enabled:[...e.extensions.enabled],disabled:[...e.extensions.disabled],policy:Oc(e.extensions.policy??t.extensions.policy)},search:D_(e,t),providers:M_(e,t),vector_store:N_(e,t)}}function j_(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=si(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=si(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 F_(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 $_(e,t){return{...e.validation,parent_reference:t.parent_reference,metadata_profile:t.metadata_profile,metadata_required_fields:xc(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:ei(e.validation?.estimate_defaults_by_type)}}function H_(e){return{...k.search,...e.search,default_mode:hc(e.search?.default_mode),mutation_refresh_policy:pc(e.search?.mutation_refresh_policy),query_expansion:{...k.search.query_expansion,...e.search?.query_expansion,enabled:yc(e.search?.query_expansion?.enabled),provider:gc(e.search?.query_expansion?.provider)},rerank:{...k.search.rerank,...e.search?.rerank,enabled:bc(e.search?.rerank?.enabled),model:wc(e.search?.rerank?.model),top_k:vc(e.search?.rerank?.top_k)}}}function z_(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 U_(e){return{...e.vector_store,adapter:e.vector_store?.adapter??k.vector_store.adapter,collection_name:Ec(e.vector_store?.collection_name),qdrant:{...e.vector_store?.qdrant},lancedb:{...e.vector_store?.lancedb}}}function B_(e,t,n,r){return{...e,item_format:"toon",validation:$_(e,t),governance:t,agent_guidance:Tc(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:H_(e),context:z_(e),extensions:{enabled:ii(e.extensions?.enabled),disabled:ii(e.extensions?.disabled),policy:Oc(e.extensions?.policy)},vector_store:U_(e)}}function Rc(e,t){for(let n of Object.keys(t)){let r=Reflect.get(t,n),o=e[n];typeof r=="object"&&r!==null&&!Array.isArray(r)&&typeof o=="object"&&o!==null&&!Array.isArray(o)?Rc(o,r):e[n]=structuredClone(r)}}function Ac(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(!ie(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:{};Ac(c,i,s),Object.keys(c).length>0?e[o]=c:delete e[o];continue}e[o]=structuredClone(s)}}}var ci=["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 lc(e,t){let n=F_(e),r=pr(n),o=Tt(n.schema),i=I_(n,t),s=B_(n,r,o,i),a=T({...s,governance:g_(r)},ci);return j_(a),a}function W_(e,t={}){let n=t.source===void 0?t.persist_source:kc(t.source.validated,_r(t.source.validated)),r=lc(e,n);if(n){let o=_r(n.source_settings);o.item_types={definitions:structuredClone(n.runtime_item_type_definitions)},o.schema={...o.schema,statuses:structuredClone(n.runtime_schema_statuses),fields:structuredClone(n.runtime_schema_fields),type_workflows:structuredClone(n.runtime_schema_type_workflows)};let i=lc(o,n);t.source!==void 0&&Rc(i,t.source.validated);let s=structuredClone(t.source===void 0?n.source_settings:t.source.raw);return Ac(s,i,r),`${JSON.stringify(T(s,ci),null,2)}
162
162
  `}return`${JSON.stringify(r,null,2)}
163
- `}async function G_(e){let t;try{t=await dc(e)}catch(a){if(Fe(a))return le();throw a}let n=et(t),r;try{r=await __(n)}catch(a){if(Fe(a))return le();throw a}if(!r.isFile())throw vr();let o;try{o=await Si(n,vr())}catch(a){if(Fe(a))return le();throw a}let i;try{i=JSON.parse(o)}catch{return le("settings_read_invalid_json")}let s=Xo(i);return s.success?{settings:mr(s.data),metadata:{has_explicit_item_format:kc(i)},warnings:s.data.item_format==="json_markdown"?["settings_item_format_legacy_json_markdown_coerced_to_toon"]:[]}:le("settings_read_invalid_schema")}async function Rc(e){if(p_(e))return G_(e);let t=et(e),n=[t];await ke({path:t,scope:"project"});let r=oc(e);if(r){let d=await Ae(r.tracked_paths);if(Xt(d,r.signatures))return fr(r.value)}let o=await Ae([t]),i;try{i=await Ee(t)}catch{return le("settings_read_fs_error")}if(i===null){let d=le();return await ei(e,[t],d,o,[t]),d}let s=await Ae([t]);if(!Xt(o,s))return De(e),Rc(e);let a;try{a=JSON.parse(i)}catch{let d=le("settings_read_invalid_json");return await ei(e,[t],d,s,[t]),d}let c=Xo(a);if(!c.success){let d=le("settings_read_invalid_schema");return await ei(e,[t],d,s,[t]),d}try{let d=mr(c.data),l=E_(e,d.schema,t);n=l;let f=await Ae(l),m=await Mi(e,d.schema),p=await ji(e,d.schema),_=await Ae(l),b={...d,item_types:{definitions:wt([...d.item_types.definitions,...oi(p.type_definitions_from_file)])},schema:p.schema};ii(b,vc(c.data,b));let y={settings:b,metadata:{has_explicit_item_format:kc(a)},warnings:[...c.data.item_format==="json_markdown"?["settings_item_format_legacy_json_markdown_coerced_to_toon"]:[],...m.created_paths.map(S=>`runtime_schema_bootstrap_created:${S}`),...p.warnings]};return m.created_paths.length===0?Xt(f,_)?ur(e,{tracked_paths:l,signatures:_,value:fr(y)}):De(e):De(e),y}catch{let d=le("settings_read_merge_failed");return await I_(e,n,d),d}}async function Ac(e){return(await Rc(e)).settings}async function Fw(e,t,n=h_){let r=et(e),o=Ec(t),i=q_(t,{persist_source:o}),s=JSON.parse(i);try{await Ea({pmRoot:e,filePath:r,mutate:a=>{let c=null;if(a!==null)try{c=JSON.parse(a)}catch{throw new g("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(Yo(o.persisted_settings,s,c),si),null,2)}
164
- `:i,result:void 0}},op:n,author:bs(void 0,t.author_default),lockTtlSeconds:t.locks.ttl_seconds,lockWaitMs:t.locks.wait_ms,recordCreation:!1}),o&&ii(t,{...o,persisted_settings:structuredClone(s)}),await _e({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]="e23f9ca6-9fa6-566b-9bfb-7cbe6d449a59")}catch{}})();function K_(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:Qt(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 Dc(e){return["pm",...e].map(t=>/^[A-Za-z0-9_./:@=-]+$/u.test(t)?t:JSON.stringify(t)).join(" ")}function Bw(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:K_(r,o),l=Dc([...i,r,...s]),f=e.retry_command??(d?Dc([...i,d,...s]):void 0);return new g(`Unknown ${a} ${c} "${r}". Allowed: ${o.join(", ")}${e.message_suffix??""}`,e.exit_code??w.USAGE,{code:"unknown_subcommand",reason:"unknown_positional_token",value:r,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 X_ from"node:fs/promises";import Y_ 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]="1d746e4d-ff6c-54ec-a94f-4ec4cb8f77b5")}catch{}})();function J_(e){return[...new Set(e.filter(t=>t.trim().length>0))].sort((t,n)=>t.localeCompare(n))}function Q_(e,t){return new g(`Missing history stream for ${e}. ${t} requires history streams when settings.history.missing_stream is strict_error.`,w.NOT_FOUND)}async function Z_(e,t){return await Ii(Y_.dirname(e)),await(await X_.open(e,"a")).close(),_e({path:e,scope:"project",op:`${t}:history:auto_create`})}async function ai(e){return ep({pmRoot:e.pmRoot,settings:e.settings,itemIds:[e.itemId],commandLabel:e.commandLabel})}async function ep(e){let t=J_(e.itemIds),n=[],r=[];for(let o of t){let i=fe(e.pmRoot,o);if(!await je(i)){if(e.settings.history.missing_stream==="strict_error")throw Q_(o,e.commandLabel);r.push(...await Z_(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]="5db05e2f-4742-526b-b1c8-b97ff302b40e")}catch{}})();function Yt(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 g("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]="ddc5bb8f-83bc-5121-a628-a501e7ed5a73")}catch{}})();function tp(e,t){let n=-1;return e.forEach((r,o)=>{let i=Date.parse(r.ts);if(!Number.isFinite(i))throw new g(`History for this item contains invalid timestamp at entry ${o+1}.`,w.GENERIC_FAILURE);i<=t&&(n=o)}),n}function np(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 rp(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 Nc(e,t,n={}){let r=e.trim(),o=n.errorSubject??"history",i=o==="restore"?"Restore":"History",{guidance:s,lastTimestamp:a}=np(t,Yt(t,!0));if(!r)throw new g(`Missing ${o} target. Use a timestamp or version number.`,w.USAGE,s);if(/^\d+$/.test(r)){let l=Yt(t),f=Number(r);if(f>=1&&f<=l)throw new g(`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 g(`${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 g(`Invalid ${o} target "${e}". Use a positive version number or ISO timestamp.`,w.USAGE,s);let d=tp(t,c);if(d<0||n.allowFutureTimestamp!==!0&&c>Date.parse(a))throw new g(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 ci(e,t,n,r){let o=Xe(e,t);if(o.ok)return o.document;let i=rp(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 g(`Failed to apply history patch at entry ${n} (${s.join(", ")}). ${i.reason??String(o.error)}`,w.GENERIC_FAILURE)}function Lc(e,t){let n=e[0];if(n&&n.op!=="create"&&n.op!=="history_compact_baseline"){let s=Xe(mt,n.patch);if(!s.ok||typeof s.document.metadata.id!="string")throw new g("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=we([...r]),i=structuredClone(mt);for(let s=0;s<=t;s+=1){let a=e[s];if(!a)throw new g(`History target entry ${s+1} does not exist.`,w.USAGE);i=ci(i,a.patch,s+1,a.op)}if(!o.ok)throw new g(`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 sv(e,t){if(Object.keys(e.metadata).length>0){if(typeof e.metadata.id!="string"||!Array.isArray(e.metadata.tags))throw new g("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 g(`History target ${t.raw} resolves to a deleted state; choose a version or timestamp where the item exists.`,w.USAGE)}import li from"node:fs/promises";import pr 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]="658ab1c3-da92-5af6-a170-85ed7befaad6")}catch{}})();function Le(e,t){return typeof e=="object"&&e!==null&&"code"in e&&e.code===t}function ui(e){let t=["--pm-path",e,"init","--defaults","--agent-guidance","skip"];return{suggested_retry:$e(t),suggested_retry_args:t}}function hr(e){return new g(`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 di(e){return new g(`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 op(e){let t=pr.resolve(e),n=pr.parse(t).root,r=pr.dirname(t);for(;r!==n;){let o;try{o=await li.stat(r)}catch(i){if(Le(i,"ENOTDIR"))throw hr(e);if(!Le(i,"ENOENT"))throw i;r=pr.dirname(r);continue}if(!o.isDirectory())throw hr(e);return}}async function vt(e){let t;try{t=await li.stat(e)}catch(n){throw Le(n,"ENOENT")?(await op(e),new g(`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:ui(e)})):Le(n,"ENOTDIR")?hr(e):Le(n,"EACCES")||Le(n,"EPERM")?di(e):n}if(!t.isDirectory())throw hr(e);if(process.platform!=="win32"&&((t.mode&292)===0||(t.mode&73)===0))throw di(e);try{await(await li.opendir(e)).close()}catch(n){throw Le(n,"EACCES")||Le(n,"EPERM")?di(e):n}}async function fi(e){if(await vt(e),!await je(et(e)))throw new g(`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:ui(e)})}import Et from"node:fs/promises";import{statSync as ip}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]="be69f1e8-4543-5cf5-abb0-9d38ca1d0cc6")}catch{}})();function sp(e,t){let n=-1,r=structuredClone(mt);for(let[a,c]of e.entries()){if(r=ci(r,c.patch,a+1,c.op),r.metadata.id!==void 0&&r.metadata.id!==t)throw new g(`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=Yt(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;Nc(a,e).historyIndex===n&&(s=a)}return{version:i,target:s}}async function Pc(e,t,n){let r=new Set([Ye(t,n),jt(t)]);for(let o of r){let i=fe(e,o);if(!ip(i,{throwIfNoEntry:!1})?.isFile())continue;let s=await be(i,o),a=-1;if(s.forEach((p,_)=>{p.op==="delete"&&(a=_)}),a<0)continue;let c=Lc(s,s.length-1);if(Object.keys(c.metadata).length!==0)continue;let{version:d,target:l}=sp(s,o),f=l===void 0?["history",o,"--verify"]:["get",o,"--at",l],m=$e(f);return new g(`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 mi from"node:path";import{isUtf8 as ap}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]="5dd36511-d680-55ce-b535-5c1fbfaf63ec")}catch{}})();async function cp(e){try{return await Et.access(e),!0}catch{return!1}}function dp(e,t){e&&(e.includes(t)||e.push(t))}function Mc(e){return e??on(me())}function lp(e){return e==="toon"?["toon","json_markdown"]:e==="json_markdown"?["json_markdown","toon"]:["toon","json_markdown"]}async function yr(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=jt(t),d=[...new Set([s,a,c])].filter(m=>m.length>0),l=Object.entries(o),f=lp(r);for(let m of d){let p=new Map;for(let[_]of l)for(let b of f){let y=Er(e,_,m,b,o);await cp(y)&&p.set(y,p.get(y)??{id:m,type:_,itemPath:y,item_format:b})}if(p.size>1){let _=[...p.keys()].map(b=>mi.relative(e,b).split(mi.sep).join("/")).sort();throw new g(`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 gr(e,t={}){let n=await up(e,t);if(n.error!==null)throw n.error;return{raw:n.raw,document:n.document}}async function up(e,t={}){let n=await Et.readFile(e.itemPath);if(!ap(n))throw new g("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=In(r,{format:e.item_format,schema:t.schema,extensionFieldNames:Mc(t.extensionFieldNames),onWarning:i=>dp(t.warnings,i)})}catch(i){if(i instanceof g&&i.code==="item_document_invalid")return{raw:r,document:null,error:new g(`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 fp(e,t,n=Pe,r,o){await vt(e);let i=await Ha(e,t,n,r,o);return Bn(i.length),i.map(s=>s.metadata)}async function jc(e,t,n=Pe,r,o){await vt(e);let i=await za(e,t,n,r,o);return Bn(i.length),i.map(s=>s.metadata)}async function Qv(e,t,n=Pe,r,o,i={}){await vt(e);let s=await tr(e,t,n,r,o,{includeBody:!0,forceSourceScan:i.forceSourceScan});return Bn(s.length),s.map(a=>({...a.metadata,body:a.body}))}function Fc(e){return{async get(t){let n=await yr(e.pmRoot,t,e.settings.id_prefix,e.settings.item_format,e.typeToFolder);if(!n)return null;let{document:r}=await gr(n,{schema:e.settings.schema});return{item:r.metadata,body:r.body}},list:()=>fp(e.pmRoot,e.settings.item_format,e.typeToFolder,void 0,e.settings.schema)}}async function mp(e,t){let n=new Set(Object.values(t)),r=[];return await Promise.all([...n].map(async o=>{try{let i=await Et.readdir(mi.join(e,o));for(let s of i)for(let a of an)if(s.toLowerCase().endsWith(a)){r.push(s.slice(0,-a.length));break}}catch{}})),r}async function _p(e,t,n,r){let o=Ye(t,n),i=await mp(e,r);if(i.length===0)return[];let s=Math.max(3,Math.floor(o.length/2));return i.map(a=>({id:a,distance:Qt(a,o,s)})).filter(a=>a.distance!==null).sort((a,c)=>a.distance-c.distance).slice(0,3).map(a=>a.id)}async function pp(e,t,n,r){let o=await Pc(e,t,n);if(o)return o;let i=await _p(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 g(`Item ${t} not found`,w.NOT_FOUND,{nextSteps:s})}function hp(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 $c(e){let t=e.typeToFolder??sn(e.settings,me()).type_to_folder,n=await yr(e.pmRoot,e.id,e.settings.id_prefix,e.settings.item_format,t);if(!n)throw await pp(e.pmRoot,e.id,e.settings.id_prefix,t);let r=await W(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 gr(n,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames,warnings:o}),a=s.metadata.assignee?.trim(),c=s.metadata.claim_principal?.trim()||a,d=gs(e.author),l=_r(e.settings);if(a&&c!==d&&!e.force&&!hp(e.op,e.bypassAssigneeConflict)){if(l.ownership_enforcement==="strict")throw new g(`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 yp(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 gp(e){if(!e.skipItemWrite){if(e.effectiveTargetItemPath!==e.originalItemPath){await K(e.originalItemPath,e.originalRaw),await Et.rm(e.effectiveTargetItemPath,{force:!0});return}await K(e.originalItemPath,e.originalRaw)}}async function Hc(e){fn(e.op);let t=await $c({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=re(i,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),d=re(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=re(d,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),p=await So({pmRoot:e.pmRoot,settings:e.settings,operation:e.op,author:e.author,before:c,after:m});await Sr({pm_root:e.pmRoot,operation:e.op,before:c,after:m,changed_fields:l.changedFields,sdk:Fc({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:n})});let _=await ai({pmRoot:e.pmRoot,settings:e.settings,itemId:r.id,commandLabel:e.op}),b="toon",y=Ps(m,{format:b,schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),S=Er(e.pmRoot,m.metadata.type,r.id,b,n),A=fe(e.pmRoot,r.id),L=await Ot("item_store_write",{op:e.op,pm_root:e.pmRoot,item_id:r.id,source_item_path:r.itemPath,target_item_path:S,history_path:A,item_format:b,before:c,after:m,contents:y}),{effectiveTargetItemPath:$,effectiveSerializedAfter:x,skipItemWrite:q}=yp(L,S,y),B=await Po(e.pmRoot,e.author),Q=[];try{q||await K($,x),!q&&$!==r.itemPath&&await Et.rm(r.itemPath);let ee=ut({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 ft(A,ee)}catch(te){throw await gp({skipItemWrite:q,effectiveTargetItemPath:$,originalItemPath:r.itemPath,originalRaw:o}),te}q||(Q=await Mo({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:n,schema:e.settings.schema,itemPath:$,previousItemPath:r.itemPath,document:m}))}finally{await B()}let G=[...await _e({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 _e({path:A,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 Ir({id:m.metadata.id,op:e.op,item_type:m.metadata.type,previous_status:c.metadata.status,status:m.metadata.status,previous:ln(c.metadata,l.changedFields),current:ln(m.metadata,l.changedFields),changed_fields:l.changedFields}),{item:m.metadata,body:m.body,changedFields:l.changedFields,warnings:[...s,...l.warnings??[],...p.warnings,..._.warnings,...L.warnings,...Q,...G]}}finally{await a()}}async function Zv(e){return Hc(e)}async function eE(e){return Hc(e)}async function tE(e){let t=await $c({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=Mc(void 0),c=re(o,{schema:e.settings.schema,extensionFieldNames:a}),d=await So({pmRoot:e.pmRoot,settings:e.settings,operation:"delete",author:e.author,before:c,after:null,dryRun:e.dryRun});await Sr({pm_root:e.pmRoot,operation:"delete",before:c,after:null,changed_fields:["deleted"],sdk:Fc({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:t.typeToFolder})});let l=await ai({pmRoot:e.pmRoot,settings:e.settings,itemId:n.id,commandLabel:"delete"}),f=Ie(),m=Me,p=ut({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}}),_=fe(e.pmRoot,n.id),b=await Ot("item_store_delete",{op:"delete",pm_root:e.pmRoot,item_id:n.id,item_path:n.itemPath,history_path:_,before:c}),y=n.itemPath,S=!1;if(b.handled&&typeof b.result=="object"&&b.result!==null){let x=b.result;typeof x.item_path=="string"&&x.item_path.trim().length>0&&(y=x.item_path),x.skip_delete===!0&&(S=!0)}if(e.dryRun===!0)return{item:c.metadata,changedFields:["deleted"],targetPath:y,warnings:[...i,...d.warnings,...l.warnings,...b.warnings]};let A=await Po(e.pmRoot,e.author),L=[];try{S||await Et.rm(y);try{await ft(_,p)}catch(x){throw S||await K(y,r),x}S||(L=await Mo({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:t.typeToFolder,schema:e.settings.schema,itemPath:y,document:null}))}finally{await A()}let $=[...await _e({path:y,scope:"project",op:"delete",item_id:c.metadata.id,item_type:c.metadata.type,before:c,after:m,changed_fields:["deleted"]}),...await _e({path:_,scope:"project",op:"delete:history",item_id:c.metadata.id,item_type:c.metadata.type,before:c,after:m,changed_fields:["deleted"]})];return Ir({id:c.metadata.id,op:"delete",item_type:c.metadata.type,previous_status:c.metadata.status,previous:ln(c.metadata,Object.keys(c.metadata)),changed_fields:["deleted"]}),{item:c.metadata,changedFields:["deleted"],warnings:[...i,...d.warnings,...l.warnings,...b.warnings,...L,...$]}}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]="620bf4e4-e6d1-5520-89e4-0859f57c7afe")}catch{}})();var bp=["tree","graph","context"],wp=["none","repeated"],vp=["outgoing","incoming","both"],Ep=32,kp=200,Ip=400,Sp=16e3;function Tp(e){let t=e?.trim().toLowerCase()??"tree";if(bp.includes(t))return t;throw new g(`Invalid --format value "${e}". Use "tree", "graph", or "context".`,w.USAGE)}function kt(e,t){if(e===void 0)return;let n=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(n)||n<1)throw new g(`Invalid --${t} value "${e}". Use a positive integer.`,w.USAGE);return n}function Uc(e){if(e===void 0)return;let t=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(t)||t<0)throw new g(`Invalid --max-depth value "${e}". Use a non-negative integer.`,w.USAGE);return t}function Cp(e){let t=e?.trim().toLowerCase()??"none";if(wp.includes(t))return t;throw new g(`Invalid --collapse value "${e}". Use "none" or "repeated".`,w.USAGE)}function Op(e){let t=e?.trim().toLowerCase()??"both";if(vp.includes(t))return t;throw new g(`Invalid --direction value "${e}". Use "outgoing", "incoming", or "both".`,w.USAGE)}function xp(e,t=ue()){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 g(`Invalid --kind value "${o}". Registered kinds: ${s}.`,w.USAGE)}r.add(i.kind)}return[...r].sort()}function Rp(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 Ap(e){return{id:e.id,title:e.title,type:e.type,status:e.status,dependencies:Rp(e.dependencies)}}function Dp(e){return un(new TextEncoder().encode(JSON.stringify({...e,dependencies:void 0})).byteLength)}function Np(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(Bc(d.id,n,r,o,i,s,a,c+1,d.kind))}}function Lp(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 Bc(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+=Dp(f),Lp(f,l,d,r,o,i,s,a))return f;o==="repeated"&&i.add(d);let m=new Set(n);return m.add(d),Np(f,l,t,m,r,o,i,s,a),f}function zc(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 Pp(e){let t=new Map,n=new Map,r=[e];for(;r.length>0;){let a=r.pop();t.set(a.id,zc(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,zc(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 Wc(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 Mp(e,t=ue()){let n=Uc(e.maxDepth),r=kt(e.nodeLimit,"node-limit"),o=kt(e.edgeLimit,"edge-limit"),i=kt(e.tokenBudget,"token-budget"),s=xp(e.kind,t);return{direction:Op(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 jp(e,t,n,r){return Za(e.graph,t,e.details.map(o=>o.id===t&&r.length>0?{...o,evidence:r}:o),n)}function _i(e,t,n,r){for(let o of n.slice(0,r)){let i=o?.trim();i&&e.push(`${t}:${i}`)}}async function Fp(e,t,n,r){let o=await yr(e,t,n.id_prefix,n.item_format,r);if(!o)return[];let{document:i}=await gr(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 _i(f,"file",a.map(m=>m.path),3),_i(f,"test",c.map(m=>m.command??m.path),2),_i(f,"doc",d.map(m=>m.path),2),f}function $p(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 Hp(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 Vc(e,t,n){let r;for(;;){let o=un(new TextEncoder().encode(xr(Cr("deps",e),t)).byteLength);if(o===r)return o;n(o),r=o}}function zp(e){return e instanceof TypeError&&e.message.startsWith("Relationship context tokenBudget cannot fit ")}function Up(e){try{return jp(e.assembly,e.canonicalId,{...e.contextOptions,...e.internalTokenBudget===void 0?{}:{tokenBudget:e.internalTokenBudget}},e.rootEvidence)}catch(t){if(e.smallestResult!==void 0&&zp(t))return e.smallestResult;throw t}}function Bp(e){let{assembly:t,canonicalId:n,contextOptions:r,rootEvidence:o,summaryOnly:i,outputFormat:s,missingCount:a,missingReferences:c}=e,d=r.edgeLimit??40,l=r.tokenBudget,f,m;for(;;){let p=Up({assembly:t,canonicalId:n,contextOptions:r,internalTokenBudget:l,rootEvidence:o,smallestResult:m});if("format"in p)return p;let _=p;f??=_.meta.tokenBudget,l??=f;let b=$p({canonicalId:n,context:_,missingCount:a,missingReferences:c,referenceLimit:d,summaryOnly:i});if(m=b,i||(_.meta.tokenBudget=f,_.meta.usedTokens=Vc(It(b,!1),s,A=>{_.meta.usedTokens=A}),_.meta.usedTokens<=f))return b;if(d>0){d-=1;continue}let y=l,S=y*f/_.meta.usedTokens;l=Math.min(y-1,Math.max(1,Math.floor(S*.9)))}}function Wp(e){let{assembly:t,canonicalId:n,options:r,rootEvidence:o,summaryOnly:i,outputFormat:s}=e,a=Mp(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(b=>t.missingIdSet.has(b.toLowerCase())),l=new Set(d.map(b=>b.toLowerCase())),f=t.graph.registry(),m=a.kinds?new Set(a.kinds.map(b=>f.require(b).kind)):void 0,p=new Set([n,...c.value]),_=[...t.dangling.active,...t.dangling.legacy_terminal].filter(b=>Hp({row:b,missingReachableSet:l,packetIds:p,filteredKinds:m,registry:f}));return Bp({assembly:t,canonicalId:n,contextOptions:a,rootEvidence:o,summaryOnly:i,outputFormat:s,missingCount:d.length,missingReferences:_})}function Vp(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 qp(e,t,n,r,o,i,s){let a=o??Ep,c=kt(n.nodeLimit,"node-limit")??kp,d=kt(n.edgeLimit,"edge-limit")??Ip,l=kt(n.tokenBudget,"token-budget")??Sp,f={nodeLimit:c,edgeLimit:d,tokenBudget:l,nodes:0,edges:0,estimatedTokens:0,reasons:new Set},m=Bc(e,r,new Set,a,t==="graph"?"repeated":i,new Set,f),p=Wc(e,r,void 0),_;for(;;){let b=Pp(m),y=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-b.nodes.length),omitted_edge_count:Math.max(0,p.edge_count-b.edges.length)},S={id:e,format:t,node_count:b.nodes.length,edge_count:b.edges.length,edge_basis:"deduplicated_directed",missing_count:b.missing_ids.length,...y?{truncation:y}:{}};if(_=t==="tree"?{...S,tree:m}:{...S,graph:b},(_.truncation===void 0?un(new TextEncoder().encode(xr(Cr("deps",It(_,!1)),s)).byteLength):Vc(It(_,!1),s,A=>{_.truncation.estimated_tokens=A}))<=l)return _;if(!Vp(m))return f.reasons.add("token_budget"),_;f.reasons.add("token_budget")}}function It(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 EE(e,t,n){let r=Ni(process.cwd(),n.path);await fi(r);let o=Tp(t.format),i=Uc(t.maxDepth),s=Cp(t.collapse);Wi(t.summary===!0,t.full===!0,"--summary");let a=t.summary===!0,c=await Ac(r),d=sn(c,me()),l=await jc(r,c.item_format,d.type_to_folder,void 0,c.schema),f=dn(c.schema),m=new Map(l.map(_=>[_.id.trim().toLowerCase(),Ap(_)])),p=Bo(l,_=>ge(_,f));for(let _ of[...p.active,...p.legacy_terminal]){let b=m.get(_.holder_id.trim().toLowerCase()),y=_.kind.trim().toLowerCase();b&&!b.dependencies.some(S=>S.id.trim().toLowerCase()===_.target_id.trim().toLowerCase()&&S.kind===y)&&b.dependencies.push({id:_.target_id,kind:y})}if(!m.has(e.trim().toLowerCase()))throw new g(`Item ${e} not found`,w.NOT_FOUND);if(o==="context"){let _=m.get(e.trim().toLowerCase()).id,b=a?[]:await Fp(r,_,c,d.type_to_folder),y=L=>ge(L,f),S=de(),A=Qa().lookup(r,Ya(l,y,S),()=>sr(l,y,S));return It(Wp({assembly:A.assembly,canonicalId:_,options:t,rootEvidence:b,summaryOnly:a,outputFormat:n.json===!0?"json":"toon"}),a,A.assembly.legacyAliasCounts)}return a?It({id:e,format:o,...Wc(e,m,i)},!0,Object.fromEntries(Object.entries(sr(l,_=>ge(_,f)).legacyAliasCounts))):It(qp(e,o,t,m,i,s,n.json===!0?"json":"toon"),!1,Object.fromEntries(Object.entries(sr(l,_=>ge(_,f)).legacyAliasCounts)))}export{Xo as a,He as b,Ar as c,Kp as d,Xp as e,ns as f,Mr as g,oh as h,ih as i,sh as j,ah as k,ch as l,dh as m,Vr as n,qr as o,ls as p,bh as q,wh as r,vh as s,Eh as t,kh as u,Ih as v,Yr as w,ps as x,Sh as y,Th as z,Ch as A,Sd as B,gs as C,bs as D,Rh as E,Cd as F,ws as G,We as H,Ce as I,Is as J,xt as K,Wh as L,Vh as M,Jr as N,Dh as O,Nh as P,vs as Q,Od as R,Lh as S,gn as T,ot as U,ge as V,wn as W,kn as X,In as Y,Ps as Z,re as _,eu as $,be as aa,ct as ba,vu as ca,Ay as da,Dy as ea,Ny as fa,xu as ga,Nn as ha,Ge as ia,Mt as ja,rg as ka,wo as la,Mn as ma,ra as na,og as oa,sa as pa,ig as qa,ut as ra,ft as sa,Ms as ta,mt as ua,jn as va,pg as wa,Eo as xa,Fn as ya,hg as za,yg as Aa,ua as Ba,Xe as Ca,_a as Da,we as Ea,tf as Fa,gg as Ga,bg as Ha,pt as Ia,Hn as Ja,$g as Ka,Hg as La,wa as Ma,Ea as Na,zg as Oa,hw as Pa,De as Qa,jw as Ra,p_ as Sa,_r as Ta,mr as Ua,q_ as Va,Rc as Wa,Ac as Xa,Fw as Ya,Bw as Za,ai as _a,ep as $a,ha as ab,jt as bb,Ye as cb,Tg as db,Yt as eb,Nc as fb,ci as gb,Lc as hb,sv as ib,uf as jb,mf as kb,_f as lb,pf as mb,hf as nb,So as ob,ob as pb,lb as qb,ub as rb,fb as sb,Pa as tb,Nf as ub,Po as vb,Sb as wb,Mo as xb,tr as yb,vt as zb,fi as Ab,yr as Bb,gr as Cb,up as Db,fp as Eb,jc as Fb,Qv as Gb,Fc as Hb,pp as Ib,Zv as Jb,eE as Kb,tE as Lb,Fo as Mb,um as Nb,Vt as Ob,rr as Pb,Ba as Qb,fm as Rb,mm as Sb,_m as Tb,ym as Ub,qb as Vb,Gb as Wb,Om as Xb,de as Yb,$b as Zb,ir as _b,Hb as $b,Tm as ac,zb as bc,Gt as cc,Rm as dc,Dm as ec,Bo as fc,Nm as gc,ew as hc,sr as ic,Ya as jc,Wo as kc,Qa as lc,iw as mc,Za as nc,kt as oc,Uc as pc,Op as qc,xp as rc,EE as sc};
165
- //# sourceMappingURL=chunk-OSKXYRYZ.js.map
163
+ `}async function V_(e){let t;try{t=await uc(e)}catch(a){if(Fe(a))return le();throw a}let n=et(t),r;try{r=await f_(n)}catch(a){if(Fe(a))return le();throw a}if(!r.isFile())throw Er();let o;try{o=await Ci(n,Er())}catch(a){if(Fe(a))return le();throw a}let i;try{i=JSON.parse(o)}catch{return le("settings_read_invalid_json")}let s=Jo(i);return s.success?{settings:_r(s.data),metadata:{has_explicit_item_format:Sc(i)},warnings:s.data.item_format==="json_markdown"?["settings_item_format_legacy_json_markdown_coerced_to_toon"]:[]}:le("settings_read_invalid_schema")}async function Dc(e){if(m_(e))return V_(e);let t=et(e),n=[t];await ke({path:t,scope:"project"});let r=sc(e);if(r){let d=await Ae(r.tracked_paths);if(Xt(d,r.signatures))return mr(r.value)}let o=await Ae([t]),i;try{i=await Ee(t)}catch{return le("settings_read_fs_error")}if(i===null){let d=le();return await ni(e,[t],d,o,[t]),d}let s=await Ae([t]);if(!Xt(o,s))return De(e),Dc(e);let a;try{a=JSON.parse(i)}catch{let d=le("settings_read_invalid_json");return await ni(e,[t],d,s,[t]),d}let c=Jo(a);if(!c.success){let d=le("settings_read_invalid_schema");return await ni(e,[t],d,s,[t]),d}try{let d=_r(c.data),l=w_(e,d.schema,t);n=l;let f=await Ae(l),m=await Fi(e,d.schema),p=await $i(e,d.schema),_=await Ae(l),b={...d,item_types:{definitions:wt([...d.item_types.definitions,...si(p.type_definitions_from_file)])},schema:p.schema};ai(b,kc(c.data,b));let y={settings:b,metadata:{has_explicit_item_format:Sc(a)},warnings:[...c.data.item_format==="json_markdown"?["settings_item_format_legacy_json_markdown_coerced_to_toon"]:[],...m.created_paths.map(S=>`runtime_schema_bootstrap_created:${S}`),...p.warnings]};return m.created_paths.length===0?Xt(f,_)?fr(e,{tracked_paths:l,signatures:_,value:mr(y)}):De(e):De(e),y}catch{let d=le("settings_read_merge_failed");return await E_(e,n,d),d}}async function Nc(e){return(await Dc(e)).settings}async function $w(e,t,n=__){let r=et(e),o=Ic(t),i=W_(t,{persist_source:o}),s=JSON.parse(i);try{await Ia({pmRoot:e,filePath:r,mutate:a=>{let c=null;if(a!==null)try{c=JSON.parse(a)}catch{throw new g("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(Qo(o.persisted_settings,s,c),ci),null,2)}
164
+ `:i,result:void 0}},op:n,author:vs(void 0,t.author_default),lockTtlSeconds:t.locks.ttl_seconds,lockWaitMs:t.locks.wait_ms,recordCreation:!1}),o&&ai(t,{...o,persisted_settings:structuredClone(s)}),await _e({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]="e23f9ca6-9fa6-566b-9bfb-7cbe6d449a59")}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:Qt(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 Lc(e){return["pm",...e].map(t=>/^[A-Za-z0-9_./:@=-]+$/u.test(t)?t:JSON.stringify(t)).join(" ")}function Ww(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=Lc([...i,r,...s]),f=e.retry_command??(d?Lc([...i,d,...s]):void 0);return new g(`Unknown ${a} ${c} "${r}". Allowed: ${o.join(", ")}${e.message_suffix??""}`,e.exit_code??w.USAGE,{code:"unknown_subcommand",reason:"unknown_positional_token",value:r,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 q_ from"node:fs/promises";import K_ 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]="1d746e4d-ff6c-54ec-a94f-4ec4cb8f77b5")}catch{}})();function X_(e){return[...new Set(e.filter(t=>t.trim().length>0))].sort((t,n)=>t.localeCompare(n))}function Y_(e,t){return new g(`Missing history stream for ${e}. ${t} requires history streams when settings.history.missing_stream is strict_error.`,w.NOT_FOUND)}async function J_(e,t){return await Ti(K_.dirname(e)),await(await q_.open(e,"a")).close(),_e({path:e,scope:"project",op:`${t}:history:auto_create`})}async function di(e){return Q_({pmRoot:e.pmRoot,settings:e.settings,itemIds:[e.itemId],commandLabel:e.commandLabel})}async function Q_(e){let t=X_(e.itemIds),n=[],r=[];for(let o of t){let i=fe(e.pmRoot,o);if(!await je(i)){if(e.settings.history.missing_stream==="strict_error")throw Y_(o,e.commandLabel);r.push(...await J_(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]="5db05e2f-4742-526b-b1c8-b97ff302b40e")}catch{}})();function Yt(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 g("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]="ddc5bb8f-83bc-5121-a628-a501e7ed5a73")}catch{}})();function Z_(e,t){let n=-1;return e.forEach((r,o)=>{let i=Date.parse(r.ts);if(!Number.isFinite(i))throw new g(`History for this item contains invalid timestamp at entry ${o+1}.`,w.GENERIC_FAILURE);i<=t&&(n=o)}),n}function ep(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 tp(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 Pc(e,t,n={}){let r=e.trim(),o=n.errorSubject??"history",i=o==="restore"?"Restore":"History",{guidance:s,lastTimestamp:a}=ep(t,Yt(t,!0));if(!r)throw new g(`Missing ${o} target. Use a timestamp or version number.`,w.USAGE,s);if(/^\d+$/.test(r)){let l=Yt(t),f=Number(r);if(f>=1&&f<=l)throw new g(`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 g(`${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 g(`Invalid ${o} target "${e}". Use a positive version number or ISO timestamp.`,w.USAGE,s);let d=Z_(t,c);if(d<0||n.allowFutureTimestamp!==!0&&c>Date.parse(a))throw new g(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 li(e,t,n,r){let o=Xe(e,t);if(o.ok)return o.document;let i=tp(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 g(`Failed to apply history patch at entry ${n} (${s.join(", ")}). ${i.reason??String(o.error)}`,w.GENERIC_FAILURE)}function Mc(e,t){let n=e[0];if(n&&n.op!=="create"&&n.op!=="history_compact_baseline"){let s=Xe(mt,n.patch);if(!s.ok||typeof s.document.metadata.id!="string")throw new g("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=we([...r]),i=structuredClone(mt);for(let s=0;s<=t;s+=1){let a=e[s];if(!a)throw new g(`History target entry ${s+1} does not exist.`,w.USAGE);i=li(i,a.patch,s+1,a.op)}if(!o.ok)throw new g(`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 av(e,t){if(Object.keys(e.metadata).length>0){if(typeof e.metadata.id!="string"||!Array.isArray(e.metadata.tags))throw new g("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 g(`History target ${t.raw} resolves to a deleted state; choose a version or timestamp where the item exists.`,w.USAGE)}import fi from"node:fs/promises";import hr 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]="658ab1c3-da92-5af6-a170-85ed7befaad6")}catch{}})();function Le(e,t){return typeof e=="object"&&e!==null&&"code"in e&&e.code===t}function mi(e){let t=["--pm-path",e,"init","--defaults","--agent-guidance","skip"];return{suggested_retry:$e(t),suggested_retry_args:t}}function yr(e){return new g(`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 ui(e){return new g(`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 np(e){let t=hr.resolve(e),n=hr.parse(t).root,r=hr.dirname(t);for(;r!==n;){let o;try{o=await fi.stat(r)}catch(i){if(Le(i,"ENOTDIR"))throw yr(e);if(!Le(i,"ENOENT"))throw i;r=hr.dirname(r);continue}if(!o.isDirectory())throw yr(e);return}}async function vt(e){let t;try{t=await fi.stat(e)}catch(n){throw Le(n,"ENOENT")?(await np(e),new g(`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:mi(e)})):Le(n,"ENOTDIR")?yr(e):Le(n,"EACCES")||Le(n,"EPERM")?ui(e):n}if(!t.isDirectory())throw yr(e);if(process.platform!=="win32"&&((t.mode&292)===0||(t.mode&73)===0))throw ui(e);try{await(await fi.opendir(e)).close()}catch(n){throw Le(n,"EACCES")||Le(n,"EPERM")?ui(e):n}}async function _i(e){if(await vt(e),!await je(et(e)))throw new g(`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:mi(e)})}import Et from"node:fs/promises";import{statSync as rp}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]="be69f1e8-4543-5cf5-abb0-9d38ca1d0cc6")}catch{}})();function op(e,t){let n=-1,r=structuredClone(mt);for(let[a,c]of e.entries()){if(r=li(r,c.patch,a+1,c.op),r.metadata.id!==void 0&&r.metadata.id!==t)throw new g(`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=Yt(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;Pc(a,e).historyIndex===n&&(s=a)}return{version:i,target:s}}async function jc(e,t,n){let r=new Set([Ye(t,n),jt(t)]);for(let o of r){let i=fe(e,o);if(!rp(i,{throwIfNoEntry:!1})?.isFile())continue;let s=await be(i,o),a=-1;if(s.forEach((p,_)=>{p.op==="delete"&&(a=_)}),a<0)continue;let c=Mc(s,s.length-1);if(Object.keys(c.metadata).length!==0)continue;let{version:d,target:l}=op(s,o),f=l===void 0?["history",o,"--verify"]:["get",o,"--at",l],m=$e(f);return new g(`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 pi from"node:path";import{isUtf8 as ip}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]="5dd36511-d680-55ce-b535-5c1fbfaf63ec")}catch{}})();async function sp(e){try{return await Et.access(e),!0}catch{return!1}}function ap(e,t){e&&(e.includes(t)||e.push(t))}function Fc(e){return e??on(me())}function cp(e){return e==="toon"?["toon","json_markdown"]:e==="json_markdown"?["json_markdown","toon"]:["toon","json_markdown"]}async function gr(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=jt(t),d=[...new Set([s,a,c])].filter(m=>m.length>0),l=Object.entries(o),f=cp(r);for(let m of d){let p=new Map;for(let[_]of l)for(let b of f){let y=kr(e,_,m,b,o);await sp(y)&&p.set(y,p.get(y)??{id:m,type:_,itemPath:y,item_format:b})}if(p.size>1){let _=[...p.keys()].map(b=>pi.relative(e,b).split(pi.sep).join("/")).sort();throw new g(`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 dp(e,t);if(n.error!==null)throw n.error;return{raw:n.raw,document:n.document}}async function dp(e,t={}){let n=await Et.readFile(e.itemPath);if(!ip(n))throw new g("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=In(r,{format:e.item_format,schema:t.schema,extensionFieldNames:Fc(t.extensionFieldNames),onWarning:i=>ap(t.warnings,i)})}catch(i){if(i instanceof g&&i.code==="item_document_invalid")return{raw:r,document:null,error:new g(`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 lp(e,t,n=Pe,r,o){await vt(e);let i=await Ua(e,t,n,r,o);return Wn(i.length),i.map(s=>s.metadata)}async function $c(e,t,n=Pe,r,o){await vt(e);let i=await Ba(e,t,n,r,o);return Wn(i.length),i.map(s=>s.metadata)}async function Zv(e,t,n=Pe,r,o,i={}){await vt(e);let s=await nr(e,t,n,r,o,{includeBody:!0,forceSourceScan:i.forceSourceScan});return Wn(s.length),s.map(a=>({...a.metadata,body:a.body}))}function Hc(e){return{async get(t){let n=await gr(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:()=>lp(e.pmRoot,e.settings.item_format,e.typeToFolder,void 0,e.settings.schema)}}async function up(e,t){let n=new Set(Object.values(t)),r=[];return await Promise.all([...n].map(async o=>{try{let i=await Et.readdir(pi.join(e,o));for(let s of i)for(let a of an)if(s.toLowerCase().endsWith(a)){r.push(s.slice(0,-a.length));break}}catch{}})),r}async function fp(e,t,n,r){let o=Ye(t,n),i=await up(e,r);if(i.length===0)return[];let s=Math.max(3,Math.floor(o.length/2));return i.map(a=>({id:a,distance:Qt(a,o,s)})).filter(a=>a.distance!==null).sort((a,c)=>a.distance-c.distance).slice(0,3).map(a=>a.id)}async function mp(e,t,n,r){let o=await jc(e,t,n);if(o)return o;let i=await fp(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 g(`Item ${t} not found`,w.NOT_FOUND,{nextSteps:s})}function _p(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 zc(e){let t=e.typeToFolder??sn(e.settings,me()).type_to_folder,n=await gr(e.pmRoot,e.id,e.settings.id_prefix,e.settings.item_format,t);if(!n)throw await mp(e.pmRoot,e.id,e.settings.id_prefix,t);let r=await W(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=ws(e.author),l=pr(e.settings);if(a&&c!==d&&!e.force&&!_p(e.op,e.bypassAssigneeConflict)){if(l.ownership_enforcement==="strict")throw new g(`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 pp(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 hp(e){if(!e.skipItemWrite){if(e.effectiveTargetItemPath!==e.originalItemPath){await K(e.originalItemPath,e.originalRaw),await Et.rm(e.effectiveTargetItemPath,{force:!0});return}await K(e.originalItemPath,e.originalRaw)}}async function Uc(e){fn(e.op);let t=await zc({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=re(i,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),d=re(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=re(d,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),p=await Co({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:Hc({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:n})});let _=await di({pmRoot:e.pmRoot,settings:e.settings,itemId:r.id,commandLabel:e.op}),b="toon",y=js(m,{format:b,schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),S=kr(e.pmRoot,m.metadata.type,r.id,b,n),A=fe(e.pmRoot,r.id),L=await Ot("item_store_write",{op:e.op,pm_root:e.pmRoot,item_id:r.id,source_item_path:r.itemPath,target_item_path:S,history_path:A,item_format:b,before:c,after:m,contents:y}),{effectiveTargetItemPath:$,effectiveSerializedAfter:x,skipItemWrite:G}=pp(L,S,y),B=await jo(e.pmRoot,e.author),Q=[];try{G||await K($,x),!G&&$!==r.itemPath&&await Et.rm(r.itemPath);let ee=ut({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 ft(A,ee)}catch(te){throw await hp({skipItemWrite:G,effectiveTargetItemPath:$,originalItemPath:r.itemPath,originalRaw:o}),te}G||(Q=await Fo({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:n,schema:e.settings.schema,itemPath:$,previousItemPath:r.itemPath,document:m}))}finally{await B()}let q=[...await _e({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 _e({path:A,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:ln(c.metadata,l.changedFields),current:ln(m.metadata,l.changedFields),changed_fields:l.changedFields}),{item:m.metadata,body:m.body,changedFields:l.changedFields,warnings:[...s,...l.warnings??[],...p.warnings,..._.warnings,...L.warnings,...Q,...q]}}finally{await a()}}async function eE(e){return Uc(e)}async function tE(e){return Uc(e)}async function nE(e){let t=await zc({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=Fc(void 0),c=re(o,{schema:e.settings.schema,extensionFieldNames:a}),d=await Co({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:Hc({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:t.typeToFolder})});let l=await di({pmRoot:e.pmRoot,settings:e.settings,itemId:n.id,commandLabel:"delete"}),f=Ie(),m=Me,p=ut({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}}),_=fe(e.pmRoot,n.id),b=await Ot("item_store_delete",{op:"delete",pm_root:e.pmRoot,item_id:n.id,item_path:n.itemPath,history_path:_,before:c}),y=n.itemPath,S=!1;if(b.handled&&typeof b.result=="object"&&b.result!==null){let x=b.result;typeof x.item_path=="string"&&x.item_path.trim().length>0&&(y=x.item_path),x.skip_delete===!0&&(S=!0)}if(e.dryRun===!0)return{item:c.metadata,changedFields:["deleted"],targetPath:y,warnings:[...i,...d.warnings,...l.warnings,...b.warnings]};let A=await jo(e.pmRoot,e.author),L=[];try{S||await Et.rm(y);try{await ft(_,p)}catch(x){throw S||await K(y,r),x}S||(L=await Fo({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:t.typeToFolder,schema:e.settings.schema,itemPath:y,document:null}))}finally{await A()}let $=[...await _e({path:y,scope:"project",op:"delete",item_id:c.metadata.id,item_type:c.metadata.type,before:c,after:m,changed_fields:["deleted"]}),...await _e({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:ln(c.metadata,Object.keys(c.metadata)),changed_fields:["deleted"]}),{item:c.metadata,changedFields:["deleted"],warnings:[...i,...d.warnings,...l.warnings,...b.warnings,...L,...$]}}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]="620bf4e4-e6d1-5520-89e4-0859f57c7afe")}catch{}})();var yp=["tree","graph","context"],gp=["none","repeated"],bp=["outgoing","incoming","both"],wp=32,vp=200,Ep=400,kp=16e3;function Ip(e){let t=e?.trim().toLowerCase()??"tree";if(yp.includes(t))return t;throw new g(`Invalid --format value "${e}". Use "tree", "graph", or "context".`,w.USAGE)}function kt(e,t){if(e===void 0)return;let n=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(n)||n<1)throw new g(`Invalid --${t} value "${e}". Use a positive integer.`,w.USAGE);return n}function Wc(e){if(e===void 0)return;let t=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(t)||t<0)throw new g(`Invalid --max-depth value "${e}". Use a non-negative integer.`,w.USAGE);return t}function Sp(e){let t=e?.trim().toLowerCase()??"none";if(gp.includes(t))return t;throw new g(`Invalid --collapse value "${e}". Use "none" or "repeated".`,w.USAGE)}function Tp(e){let t=e?.trim().toLowerCase()??"both";if(bp.includes(t))return t;throw new g(`Invalid --direction value "${e}". Use "outgoing", "incoming", or "both".`,w.USAGE)}function Cp(e,t=ue()){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 g(`Invalid --kind value "${o}". Registered kinds: ${s}.`,w.USAGE)}r.add(i.kind)}return[...r].sort()}function Op(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 xp(e){return{id:e.id,title:e.title,type:e.type,status:e.status,dependencies:Op(e.dependencies)}}function Rp(e){return un(new TextEncoder().encode(JSON.stringify({...e,dependencies:void 0})).byteLength)}function Ap(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(Vc(d.id,n,r,o,i,s,a,c+1,d.kind))}}function Dp(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 Vc(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+=Rp(f),Dp(f,l,d,r,o,i,s,a))return f;o==="repeated"&&i.add(d);let m=new Set(n);return m.add(d),Ap(f,l,t,m,r,o,i,s,a),f}function Bc(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 Np(e){let t=new Map,n=new Map,r=[e];for(;r.length>0;){let a=r.pop();t.set(a.id,Bc(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,Bc(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 Gc(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 Lp(e,t=ue()){let n=Wc(e.maxDepth),r=kt(e.nodeLimit,"node-limit"),o=kt(e.edgeLimit,"edge-limit"),i=kt(e.tokenBudget,"token-budget"),s=Cp(e.kind,t);return{direction:Tp(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 Pp(e,t,n,r){return tc(e.graph,t,e.details.map(o=>o.id===t&&r.length>0?{...o,evidence:r}:o),n)}function hi(e,t,n,r){for(let o of n.slice(0,r)){let i=o?.trim();i&&e.push(`${t}:${i}`)}}async function Mp(e,t,n,r){let o=await gr(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 hi(f,"file",a.map(m=>m.path),3),hi(f,"test",c.map(m=>m.command??m.path),2),hi(f,"doc",d.map(m=>m.path),2),f}function jp(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 Fp(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 qc(e,t,n){let r;for(;;){let o=un(new TextEncoder().encode(Rr(Or("deps",e),t)).byteLength);if(o===r)return o;n(o),r=o}}function $p(e){return e instanceof TypeError&&e.message.startsWith("Relationship context tokenBudget cannot fit ")}function Hp(e){try{return Pp(e.assembly,e.canonicalId,{...e.contextOptions,...e.internalTokenBudget===void 0?{}:{tokenBudget:e.internalTokenBudget}},e.rootEvidence)}catch(t){if(e.smallestResult!==void 0&&$p(t))return e.smallestResult;throw t}}function zp(e){let{assembly:t,canonicalId:n,contextOptions:r,rootEvidence:o,summaryOnly:i,outputFormat:s,missingCount:a,missingReferences:c}=e,d=r.edgeLimit??40,l=r.tokenBudget,f,m;for(;;){let p=Hp({assembly:t,canonicalId:n,contextOptions:r,internalTokenBudget:l,rootEvidence:o,smallestResult:m});if("format"in p)return p;let _=p;f??=_.meta.tokenBudget,l??=f;let b=jp({canonicalId:n,context:_,missingCount:a,missingReferences:c,referenceLimit:d,summaryOnly:i});if(m=b,i||(_.meta.tokenBudget=f,_.meta.usedTokens=qc(It(b,!1),s,A=>{_.meta.usedTokens=A}),_.meta.usedTokens<=f))return b;if(d>0){d-=1;continue}let y=l,S=y*f/_.meta.usedTokens;l=Math.min(y-1,Math.max(1,Math.floor(S*.9)))}}function Up(e){let{assembly:t,canonicalId:n,options:r,rootEvidence:o,summaryOnly:i,outputFormat:s}=e,a=Lp(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(b=>t.missingIdSet.has(b.toLowerCase())),l=new Set(d.map(b=>b.toLowerCase())),f=t.graph.registry(),m=a.kinds?new Set(a.kinds.map(b=>f.require(b).kind)):void 0,p=new Set([n,...c.value]),_=[...t.dangling.active,...t.dangling.legacy_terminal].filter(b=>Fp({row:b,missingReachableSet:l,packetIds:p,filteredKinds:m,registry:f}));return zp({assembly:t,canonicalId:n,contextOptions:a,rootEvidence:o,summaryOnly:i,outputFormat:s,missingCount:d.length,missingReferences:_})}function Bp(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 Wp(e,t,n,r,o,i,s){let a=o??wp,c=kt(n.nodeLimit,"node-limit")??vp,d=kt(n.edgeLimit,"edge-limit")??Ep,l=kt(n.tokenBudget,"token-budget")??kp,f={nodeLimit:c,edgeLimit:d,tokenBudget:l,nodes:0,edges:0,estimatedTokens:0,reasons:new Set},m=Vc(e,r,new Set,a,t==="graph"?"repeated":i,new Set,f),p=Gc(e,r,void 0),_;for(;;){let b=Np(m),y=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-b.nodes.length),omitted_edge_count:Math.max(0,p.edge_count-b.edges.length)},S={id:e,format:t,node_count:b.nodes.length,edge_count:b.edges.length,edge_basis:"deduplicated_directed",missing_count:b.missing_ids.length,...y?{truncation:y}:{}};if(_=t==="tree"?{...S,tree:m}:{...S,graph:b},(_.truncation===void 0?un(new TextEncoder().encode(Rr(Or("deps",It(_,!1)),s)).byteLength):qc(It(_,!1),s,A=>{_.truncation.estimated_tokens=A}))<=l)return _;if(!Bp(m))return f.reasons.add("token_budget"),_;f.reasons.add("token_budget")}}function It(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 kE(e,t,n){let r=Pi(process.cwd(),n.path);await _i(r);let o=Ip(t.format),i=Wc(t.maxDepth),s=Sp(t.collapse);Gi(t.summary===!0,t.full===!0,"--summary");let a=t.summary===!0,c=await Nc(r),d=sn(c,me()),l=await $c(r,c.item_format,d.type_to_folder,void 0,c.schema),f=dn(c.schema),m=new Map(l.map(_=>[_.id.trim().toLowerCase(),xp(_)])),p=Vo(l,_=>ge(_,f));for(let _ of[...p.active,...p.legacy_terminal]){let b=m.get(_.holder_id.trim().toLowerCase()),y=_.kind.trim().toLowerCase();b&&!b.dependencies.some(S=>S.id.trim().toLowerCase()===_.target_id.trim().toLowerCase()&&S.kind===y)&&b.dependencies.push({id:_.target_id,kind:y})}if(!m.has(e.trim().toLowerCase()))throw new g(`Item ${e} not found`,w.NOT_FOUND);if(o==="context"){let _=m.get(e.trim().toLowerCase()).id,b=a?[]:await Mp(r,_,c,d.type_to_folder),y=L=>ge(L,f),S=de(),A=ec().lookup(r,Qa(l,y,S),()=>ar(l,y,S));return It(Up({assembly:A.assembly,canonicalId:_,options:t,rootEvidence:b,summaryOnly:a,outputFormat:n.json===!0?"json":"toon"}),a,A.assembly.legacyAliasCounts)}return a?It({id:e,format:o,...Gc(e,m,i)},!0,Object.fromEntries(Object.entries(ar(l,_=>ge(_,f)).legacyAliasCounts))):It(Wp(e,o,t,m,i,s,n.json===!0?"json":"toon"),!1,Object.fromEntries(Object.entries(ar(l,_=>ge(_,f)).legacyAliasCounts)))}export{Jo as a,He as b,Dr as c,Gp as d,qp as e,os as f,jr as g,nh as h,rh as i,oh as j,ih as k,sh as l,ah as m,Gr as n,qr as o,fs as p,yh as q,gh as r,bh as s,wh as t,vh as u,Eh as v,Jr as w,ys as x,kh as y,Ih as z,Sh as A,Cd as B,ws as C,vs as D,Oh as E,xd as F,Es as G,We as H,Ce as I,Ts as J,xt as K,Uh as L,Bh as M,Qr as N,Rh as O,Ah as P,ks as Q,Rd as R,Dh as S,gn as T,ot as U,ge as V,wn as W,kn as X,In as Y,js as Z,re as _,nu as $,be as aa,ct as ba,vu as ca,Ay as da,Dy as ea,Ny as fa,xu as ga,Ln as ha,qe as ia,Mt as ja,rg as ka,Eo as la,jn as ma,ia as na,og as oa,ca as pa,ig as qa,ut as ra,ft as sa,Fs as ta,mt as ua,Fn as va,pg as wa,Io as xa,$n as ya,hg as za,yg as Aa,ma as Ba,Xe as Ca,ha as Da,we as Ea,tf as Fa,gg as Ga,bg as Ha,pt as Ia,zn as Ja,$g as Ka,Hg as La,Ea as Ma,Ia as Na,zg as Oa,yw as Pa,De as Qa,Fw as Ra,m_ as Sa,pr as Ta,_r as Ua,W_ as Va,Dc as Wa,Nc as Xa,$w as Ya,Ww as Za,di as _a,Q_ as $a,ga as ab,jt as bb,Ye as cb,Tg as db,Yt as eb,Pc as fb,li as gb,Mc as hb,av as ib,uf as jb,mf as kb,_f as lb,pf as mb,hf as nb,Co as ob,ob as pb,ub as qb,fb as rb,mb as sb,ja as tb,Af as ub,jo as vb,Tb as wb,Fo as xb,nr as yb,vt as zb,_i as Ab,gr as Bb,br as Cb,dp as Db,lp as Eb,$c as Fb,Zv as Gb,Hc as Hb,mp as Ib,eE as Jb,tE as Kb,nE as Lb,Ho as Mb,dm as Nb,Vt as Ob,or as Pb,Va as Qb,lm as Rb,um as Sb,fm as Tb,pm as Ub,qb as Vb,Kb as Wb,Tm as Xb,de as Yb,Hb as Zb,sr as _b,zb as $b,Im as ac,Ub as bc,qt as cc,Om as dc,Rm as ec,Vo as fc,Am as gc,tw as hc,ar as ic,Qa as jc,Go as kc,ec as lc,sw as mc,tc as nc,kt as oc,Wc as pc,Tp as qc,Cp as rc,kE as sc};
165
+ //# sourceMappingURL=chunk-MCVWZUGK.js.map