@unbrained/pm-cli 2026.10.3 → 2026.10.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/CHANGELOG.md +17 -2
  3. package/dist/cli/error-guidance.js +1 -1
  4. package/dist/cli/runtime/invocation-options.js +1 -1
  5. package/dist/cli/runtime/selection.js +1 -1
  6. package/dist/cli/runtime-compatibility-boundary.d.ts +1 -1
  7. package/dist/cli/runtime-compatibility-boundary.js +3 -3
  8. package/dist/cli-bundle/bundle-manifest.json +154 -154
  9. package/dist/cli-bundle/chunks/{chunk-YCBGZF3T.js → chunk-7CE2DJMA.js} +2 -2
  10. package/dist/cli-bundle/chunks/{chunk-6ST3SCQ6.js → chunk-7UVXKI7K.js} +2 -2
  11. package/dist/cli-bundle/chunks/{chunk-H2DZW6I6.js → chunk-D7Z2ZMJL.js} +2 -2
  12. package/dist/cli-bundle/chunks/{chunk-44UGMMQ6.js → chunk-GZMWISWW.js} +2 -2
  13. package/dist/cli-bundle/chunks/{chunk-KP7NBQK3.js → chunk-J52QIRRZ.js} +2 -2
  14. package/dist/cli-bundle/chunks/{chunk-3AF2R3Y6.js → chunk-JDKD3WGG.js} +6 -6
  15. package/dist/cli-bundle/chunks/chunk-JQ7DW663.js +2 -0
  16. package/dist/cli-bundle/chunks/{chunk-MKXBCBAN.js → chunk-QXIDOOWT.js} +2 -2
  17. package/dist/cli-bundle/chunks/{chunk-5XKF5SQV.js → chunk-SMKHR6BM.js} +49 -49
  18. package/dist/cli-bundle/chunks/{chunk-FW5LJXQY.js → chunk-V3U77H3V.js} +28 -28
  19. package/dist/cli-bundle/chunks/{chunk-YDWKGUQU.js → chunk-XZDWAYJC.js} +2 -2
  20. package/dist/cli-bundle/chunks/{chunk-QPKQKSQU.js → chunk-Y6VRBTP3.js} +71 -71
  21. package/dist/cli-bundle/chunks/{chunk-6Z4IV2MC.js → chunk-YAAFYFS4.js} +2 -2
  22. package/dist/cli-bundle/chunks/{register-list-query-DYCGUQEW.js → register-list-query-QBGXO5JJ.js} +2 -2
  23. package/dist/cli-bundle/chunks/{register-mutation-5PT3NW3A.js → register-mutation-53ZLT4RX.js} +2 -2
  24. package/dist/cli-bundle/chunks/{register-operations-QDDQOAAV.js → register-operations-OBK2FXUU.js} +2 -2
  25. package/dist/cli-bundle/chunks/{register-setup-BBX67YMA.js → register-setup-HM3OCBH2.js} +2 -2
  26. package/dist/cli-bundle/focused-chunks/{chunk-FKK2HI3S.js → chunk-2JFYR56O.js} +2 -2
  27. package/dist/cli-bundle/focused-chunks/{chunk-UTRSM3ZK.js → chunk-32EVUSS4.js} +2 -2
  28. package/dist/cli-bundle/focused-chunks/{chunk-DBD4W4QP.js → chunk-467EW5RL.js} +2 -2
  29. package/dist/cli-bundle/focused-chunks/{chunk-WAJNX4RN.js → chunk-5GUSO2P4.js} +2 -2
  30. package/dist/cli-bundle/focused-chunks/{chunk-GMYUNHST.js → chunk-6XBRADQQ.js} +2 -2
  31. package/dist/cli-bundle/focused-chunks/{chunk-EJN7DY3B.js → chunk-7O4NUJVO.js} +2 -2
  32. package/dist/cli-bundle/focused-chunks/{chunk-E754JDLY.js → chunk-CURTIIQT.js} +2 -2
  33. package/dist/cli-bundle/focused-chunks/{chunk-4FFPGNCJ.js → chunk-IJUWEEEB.js} +2 -2
  34. package/dist/cli-bundle/focused-chunks/{chunk-XRSCIYHR.js → chunk-JCVMOSWQ.js} +2 -2
  35. package/dist/cli-bundle/focused-chunks/{chunk-ZIXFMIUL.js → chunk-JMJK2L4Z.js} +2 -2
  36. package/dist/cli-bundle/focused-chunks/{chunk-WCY6HRZO.js → chunk-KG3H4UZZ.js} +14 -14
  37. package/dist/cli-bundle/focused-chunks/{chunk-VVWYI2X7.js → chunk-MHQ2XICU.js} +2 -2
  38. package/dist/cli-bundle/focused-chunks/{chunk-3BIYG72P.js → chunk-Q6DJ5DFQ.js} +2 -2
  39. package/dist/cli-bundle/focused-chunks/{chunk-73DA7ISY.js → chunk-RJV6QVJE.js} +2 -2
  40. package/dist/cli-bundle/focused-chunks/{chunk-HIA2ZF64.js → chunk-ZE2JZ7R6.js} +11 -11
  41. package/dist/cli-bundle/focused-chunks/chunk-ZLEN4HZD.js +165 -0
  42. package/dist/cli-bundle/main.js +22 -22
  43. package/dist/cli-bundle/sdk-authoring.js +1 -1
  44. package/dist/cli-bundle/sdk-contracts.js +1 -1
  45. package/dist/cli-bundle/sdk-core.js +22 -22
  46. package/dist/cli-bundle/sdk-governance.js +1 -1
  47. package/dist/cli-bundle/sdk-graph.js +1 -1
  48. package/dist/cli-bundle/sdk-merge.js +11 -11
  49. package/dist/cli-bundle/sdk-query.js +1 -1
  50. package/dist/cli-bundle/sdk-runtime.js +1 -1
  51. package/dist/cli-bundle/sdk-testing.js +1 -1
  52. package/dist/cli-bundle/sdk.js +1 -1
  53. package/dist/core/extensions/extension-types.d.ts +8 -1
  54. package/dist/core/extensions/extension-types.js +1 -1
  55. package/dist/core/shared/time.js +1 -1
  56. package/dist/core/store/settings.d.ts +11 -2
  57. package/dist/core/store/settings.js +2 -2
  58. package/dist/sdk/agent/subcommand-recovery.js +1 -1
  59. package/dist/sdk/cli-bootstrap.js +1 -1
  60. package/dist/sdk/context-intent-contracts.js +1 -1
  61. package/dist/sdk/extension-command-context.js +1 -1
  62. package/dist/sdk/generated/generated-error-code-catalog-part-2.js +1 -1
  63. package/dist/sdk/item-transaction.js +1 -1
  64. package/dist/sdk/lifecycle/recurrence-parsers.js +1 -1
  65. package/dist/sdk/lifecycle/task-composition.js +1 -1
  66. package/dist/sdk/output-projection.js +1 -1
  67. package/dist/sdk/public-surface.json +1 -1
  68. package/dist/sdk/query/get.js +1 -1
  69. package/dist/sdk/query/search-pagination.d.ts +1 -1
  70. package/dist/sdk/query/search-pagination.js +1 -1
  71. package/dist/sdk/test/workspace-snapshot.js +1 -1
  72. package/docs/DIAGNOSTIC_OUTPUT_CONTRACTS.md +25 -0
  73. package/docs/OUTPUT_PROJECTION_CONTRACTS.md +23 -0
  74. package/docs/SDK_AUDITED_MUTATIONS.md +35 -0
  75. package/docs/TESTING.md +8 -0
  76. package/docs/ecosystem-review-2026-09-28.json +2864 -3157
  77. package/marketplace.json +2 -2
  78. package/package.json +1 -1
  79. package/packages/pm-beads/package.json +1 -1
  80. package/packages/pm-calendar/package.json +1 -1
  81. package/packages/pm-command-kit/package.json +1 -1
  82. package/packages/pm-digital-twin/package.json +1 -1
  83. package/packages/pm-governance-audit/package.json +1 -1
  84. package/packages/pm-guide-shell/package.json +1 -1
  85. package/packages/pm-kanban/package.json +1 -1
  86. package/packages/pm-lifecycle-hooks/package.json +1 -1
  87. package/packages/pm-linked-test-adapters/package.json +1 -1
  88. package/packages/pm-search-advanced/package.json +1 -1
  89. package/packages/pm-templates/package.json +1 -1
  90. package/packages/pm-todos/package.json +1 -1
  91. package/packages/pm-vcs/package.json +1 -1
  92. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  93. package/plugins/pm-claude/package.json +2 -2
  94. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  95. package/plugins/pm-codex/package.json +2 -2
  96. package/plugins/pm-codex/plugin.json +1 -1
  97. package/dist/cli-bundle/chunks/chunk-H7CXQBGQ.js +0 -2
  98. package/dist/cli-bundle/focused-chunks/chunk-YC32ZSLS.js +0 -165
@@ -0,0 +1,165 @@
1
+ import{b as an,g as Ot,i as xt,j as Rt,l as Pi,m as Mi,n as un,o as ji,p as Fi,q as $i}from"./chunk-6XBRADQQ.js";import{h as _n}from"./chunk-HFAW3FJQ.js";import{$ as w,$c as Bi,A as vi,Ae as Rr,Be as Ar,F as on,G as sn,H as kr,Ia as Ti,J as wi,Kc as fe,Ke as he,Lc as Tr,Le as ie,Ma as Ci,Mc as fn,Na as Oi,Nc as me,Oc as Cr,P as be,Pa as xi,Pb as Li,Pc as ke,Qa as Ri,Qc as Or,Ta as cn,Tc as At,Ub as Hi,V as Pe,Va as Ai,Vd as Gi,W as bi,Wd as Ie,Xd as _e,Ya as dn,Yb as zi,Yd as Ki,Z as k,Za as Di,Zb as Ui,Zc as $e,Zd as nt,_ as Me,_d as pe,aa as v,ab as tt,bb as Ir,bd as xr,be as Xi,cb as Sr,ce as Yi,db as ue,dd as Wi,de as V,ed as Vi,fb as Ni,i as en,id as qi,ka as le,pa as Ei,q as tn,r as pi,ra as ki,rb as N,s as hi,sa as je,sb as oe,t as yi,ta as Fe,tb as ln,u as gi,ua as te,ub as T,va as Ee,vd as mn,wa as Ii,xa as X,y as nn,ya as Si,z as rn}from"./chunk-KG3H4UZZ.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]="27a9b88e-ee47-55c8-b511-07ce9754346c")}catch{}})();var Dr=new Gc,Ji=/^[A-Za-z0-9](?:[A-Za-z0-9._:-]{0,127})$/u;function pn(e,t){let n=typeof e=="string"?e.trim():"";return n.length>0?n.slice(0,t):void 0}function He(e,t){if(e===void 0)return;let n=typeof e=="object"&&e!==null?e:{},r=pn(n.id,128),o=pn(n.parent_id,128);if(r===void 0||!Ji.test(r)||o!==void 0&&!Ji.test(o)){if(t)throw new Error("Agent episode ids must be 1-128 letters, digits, dots, underscores, colons, or hyphens.");return}let i=pn(n.label,256);return{id:r,...i===void 0?{}:{label:i},...o===void 0?{}:{parent_id:o}}}function rt(e){let t={};for(let[n,r]of Object.entries(e??{}).slice(0,32)){let o=n.trim().toLowerCase().slice(0,64),i=pn(r,256);/^[a-z][a-z0-9_-]{0,63}$/u.test(o)&&i!==void 0&&(t[o]=i)}return t}function Kc(e,t,n){let r=Dr.getStore(),o=rt({role:t.PM_AGENT_SESSION_ROLE,topic:t.PM_AGENT_SESSION_TOPIC}),i=He(t.PM_AGENT_EPISODE_ID===void 0?void 0:{id:t.PM_AGENT_EPISODE_ID,label:t.PM_AGENT_EPISODE_LABEL,parent_id:t.PM_AGENT_EPISODE_PARENT_ID},!1),s={...rt(r?.provenance),...o,...rt(e?.provenance)},a=He(e?.episode,!1)??He(n,!1)??i??He(r?.episode,!1);return Object.keys(s).length===0&&a===void 0?void 0:{...Object.keys(s).length===0?{}:{provenance:s},...a===void 0?{}:{episode:a}}}function Nr(e,t){return Kc(e.session_context,t,e.client_info?.episode)??{}}function Kp(e,t){let n=Dr.getStore(),r=He(e.episode,!0),o=He(n?.episode,!1),i=r!==void 0&&r.parent_id===void 0&&o!==void 0?{...r,parent_id:o.id}:r,s={...rt(n?.provenance),...rt(e.provenance)};return Dr.run({...Object.keys(s).length===0?{}:{provenance:s},...i===void 0?o===void 0?{}:{episode:o}:{episode:i}},t)}function Xp(e){let t=rt(e.provenance),n=He(e.episode,!0);return{...n===void 0?{}:{PM_AGENT_EPISODE_ID:n.id,...n.label===void 0?{}:{PM_AGENT_EPISODE_LABEL:n.label},...n.parent_id===void 0?{}:{PM_AGENT_EPISODE_PARENT_ID:n.parent_id}},...t.role===void 0?{}:{PM_AGENT_SESSION_ROLE:t.role},...t.topic===void 0?{}:{PM_AGENT_SESSION_TOPIC:t.topic}}}import{AsyncLocalStorage as qr}from"node:async_hooks";import{createHash as Zc}from"node:crypto";import q from"node:fs";import ss from"node:os";import Be from"node:path";import{createHash as Qi}from"node:crypto";import{existsSync as Lr,promises as Zi,readFileSync as Xc}from"node:fs";import se from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="8192f2f3-b5a0-510e-a7d4-963041cce389")}catch{}})();var Yc="session.json";function Pr(e,t){return typeof e=="string"&&e.length>0&&e.length<=t}function es(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=Pr(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=>Pr(c,128)),a=t.focused_item_id===void 0||Pr(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=es(r);return o&&n.length<=128?[[n,o]]:[]});return t.length>0?Object.fromEntries(t):void 0}function Mr(e){return se.join(Ni(e),Yc)}async function ts(e){try{let t=await Zi.readFile(Mr(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 jr(e,t){let n=await V(e,"session-state",k.locks.ttl_seconds,"session-state",!1,!0,k.locks.wait_ms);try{let r=await ts(e);t(r);let o=Mr(e);await Zi.mkdir(se.dirname(o),{recursive:!0}),await X(o,JSON.stringify(r))}finally{await n()}}function Fr(e){return/#([a-f0-9]{24})$/u.exec(e.trim())?.[1]??`author-${Qi("sha256").update(e).digest("hex").slice(0,24)}`}function $r(e){return[...new Set(e.map(t=>t.trim()).filter(Boolean))].slice(0,32).map(t=>t.slice(0,128))}function Hr(e){let t=[...new Set(e)].sort((o,i)=>o.localeCompare(i));if(t.length===1)return t[0];let n=`workset:${t.join("+")}`;return n.length<=256?n:`workset:${t.join("+").slice(0,230)}+${Qi("sha256").update(t.join("\0")).digest("hex").slice(0,12)}`}async function zr(e,t,n){await jr(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=Fr(e.principal);await zr(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??Hr(r),confidence:o?"high":"medium",rule_version:"v2",evidence:$r([...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=Fr(e.principal);await zr(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??Hr(r),confidence:o?"high":"medium",evidence:$r([...r.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],`release:${e.itemId}`]),active_item_ids:r}})}async function sh(e){let t=Fr(e.principal);await zr(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??Hr(r),confidence:o?"high":"medium",rule_version:"v2",evidence:$r([...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=se.resolve(e,n);if(Lr(se.join(o,"settings.json")))return o;let i=se.join(o,".agents","pm");if(Lr(se.join(i,"settings.json")))return i}let r=se.resolve(e);for(let o=0;o<32;o+=1){let i=se.join(r,".agents","pm");if(Lr(se.join(i,"settings.json")))return i;let s=se.dirname(r);if(s===r)break;r=s}}function ns(e){if(!e.key)return;let t=Qc(e.cwd,e.env);if(t)try{let n=JSON.parse(Xc(Mr(t),"utf8"));return es(n.semantic_attribution?.[e.key])}catch{return}}async function ah(e){return(await ts(e)).focused_item}async function ch(e,t){await jr(e,n=>{n.focused_item=t})}async function dh(e){await jr(e,t=>{delete t.focused_item})}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="c39d3d14-b0b5-5309-b89a-9da08e1a939a")}catch{}})();var Gr=["model","effort","role","topic","version"],gn=new qr,as=new qr,vn=new qr,Kr=[{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:[]}],cs=Object.freeze({max_bytes:1048576,max_lines:4096,network_access:!1,subprocess_access:!1}),ed=Object.freeze({...cs,max_bytes:4194304}),Ur=/^[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:cs,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 ds=Object.freeze(Kr.filter(e=>e.harness!=="ci").map(td).sort((e,t)=>e.harness.localeCompare(t.harness))),Ue=new Map,ot=new Map;function P(e){let t=typeof e=="string"?e.trim():void 0;return t&&t.length>0?t:void 0}function Se(e){return[...new Set((e??[]).slice(0,64).map(t=>t.trim()).filter(t=>t.length>0).map(t=>t.slice(0,128)))]}function Te(e){let t=e.harness.trim().toLowerCase();if(!Ur.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])=>Ur.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"&&Ur.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 ls=Kr.map(Te);function nd(e,t){return JSON.stringify(e)===JSON.stringify(t)}function yn(e,t){return e.toLowerCase().slice(0,512).split(/[/\\\s:=]+/u).filter(r=>r.length>0).includes(t)||e.trim().toLowerCase()===t}function Xr(e=[]){let t=new Map(Kr.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(),...ls.filter(o=>o.harness==="ci"),...[...ot.values()].map(o=>o.descriptor),...vn.getStore()?.descriptors??[],...e.map(Te)],r=new Set;for(let o of n){if(r.has(o.harness))throw new Error(`Harness signal descriptor collision for "${o.harness}"`);r.add(o.harness)}return n}function Yr(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 us(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 Br(e,t){return P(e?.[t])?.slice(0,256)}var id=1048576,Vr=4194304,hn=new Map,rs=Object.freeze({}),Wr=new Map,os=Object.freeze({});function is(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 os}let n=is(t);if(!n)return os;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=is(c);d&&r.push({value:d,depth:a.depth+1})}}return Object.freeze({model:i,version:s})}function fs(e){try{return q.lstatSync(e).isFile()?"available":"missing"}catch(t){return Fe(t)?"missing":"failed"}}function ad(e,t){let n;try{n=q.readdirSync(e,{withFileTypes:!0}).filter(o=>o.isDirectory()).sort((o,i)=>o.name.localeCompare(i.name)).slice(0,512).map(o=>{let i=Be.join(e,o.name,`${t}.jsonl`);return{candidate:i,status:fs(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 ms(e,t){let n=P(t.CLAUDE_CODE_SESSION_ID);if(!n||!/^[A-Za-z0-9_-]{1,128}$/u.test(n))return{status:"unavailable"};let o=Be.resolve(e.cwd??process.cwd()).replaceAll(/[^A-Za-z0-9-]/gu,"-"),i=Be.join(e.home_dir??ss.homedir(),".claude","projects"),s=Be.join(i,o,`${n}.jsonl`),a=P(e.session_file),c=a&&Be.basename(a)===`${n}.jsonl`?a:void 0;for(let d of[c,s]){if(!d)continue;let l=fs(d);if(l==="available")return{status:l,path:d};if(l==="failed")return{status:l}}return ad(i,n)}function cd(e,t,n){let r=ms(t,n);if(r.status==="available")try{let o=q.openSync(r.path,q.constants.O_RDONLY|q.constants.O_NOFOLLOW);try{let i=q.fstatSync(o),s=`${r.path}\0${i.size}\0${i.mtimeMs}`,a=Wr.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);q.readSync(o,f,0,d,0);let m=Buffer.alloc(l);l>0&&q.readSync(o,m,0,l,i.size-l);let p={},_=i.size<=c?Buffer.concat([f,m]).toString("utf8").split(`
2
+ `):[...f.toString("utf8").split(`
3
+ `).slice(0,4096),...m.toString("utf8").split(`
4
+ `).slice(-4096)];for(let h of _){if(h.length===0||h.length>262144)continue;let I=sd(h);if(p.model??=I.model,p.version??=I.version,p.model&&p.version)break}let g=Object.freeze(p);return Wr.clear(),Wr.set(s,g),g[e]}finally{q.closeSync(o)}}catch{return}}function dd(e,t){let n=0,r=(o,i)=>{if(i>4||n>=512)return;let s;try{s=q.readdirSync(o,{withFileTypes:!0}).sort((a,c)=>c.name.localeCompare(a.name))}catch{return}for(let a of s){if(n+=1,n>512)return;let c=Be.join(o,a.name);if(a.isFile()&&a.name.endsWith(`-${t}.jsonl`))return c;if(a.isDirectory()){let d=r(c,i+1);if(d)return d}}};return r(e,0)}function ld(e){if(e<=Vr)return[{offset:0,length:e}];let t=Math.floor(Vr/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);q.readSync(e,i,0,o.length,o.offset);let s=i.toString("utf8").split(`
5
+ `).reverse().slice(0,r);r-=s.length;for(let a of s)if(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??ss.homedir(),".codex","sessions"),i=`${o}\0${r}`,s=hn.get(i);if(s)return s[e];let a=dd(o,r);if(!a){hn.set(i,rs);return}try{let c=q.openSync(a,"r");try{let d=q.fstatSync(c).size,l=fd(c,d);return hn.set(i,l),l[e]}finally{q.closeSync(c)}}catch{hn.set(i,rs);return}}function _d(e,t,n,r){let o=vn.getStore();if(!(t.probes_enabled!==!1&&o?.probesEnabled!==!1&&!["0","false","off"].includes(P(n.PM_AGENT_PROBES)?.toLowerCase()??"")))return;let s=r?.provenance_resolvers[e];if(s==="claude_session_file")return cd(e,t,n);if(s==="codex_session_file")return md(e,t,n);if(s==="ai_agent_version"){let a=P(n.AI_AGENT);return!a||!r||!yn(a,r.harness)?void 0:/(?:^|[@/\s])v?(\d+\.\d+(?:\.\d+)?(?:[-+][A-Za-z0-9.-]+)?)$/u.exec(a)?.[1]?.slice(0,256)}}function pd(e,t,n,r){if(e==="ai_agent_version"){let o=P(r.AI_AGENT);return o!==void 0&&yn(o,t.harness)?"available":"unavailable"}return e==="codex_session_file"?P(r.CODEX_THREAD_ID)!==void 0?"available":"unavailable":ms(n,r).status}function Jr(e){return e||(as.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 yn(d.slice(d.lastIndexOf("/")+1),a)})),s=e.client_names.some(a=>r===a||yn(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 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,us(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=Br(o?.provenance,e),_=ze(e,Yr(n,f[e])),g=ze(e,Br(m,e)),h=ze(e,Br(t.provenance,e)),I=_d(e,t,n,r);return gd([[c,"override"],[p,"session"],[l,"argv"],[_,"environment"],[g,"mcp_client"],[h,"host"],[I,"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 bd(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 vh(e){let t=e.map(Te),n=new Map(ls.map(i=>[i.harness,i])),r=new Set;for(let i of t){if(r.has(i.harness)||n.has(i.harness))throw new Error(`Harness signal descriptor collision for "${i.harness}"`);let s=ot.get(i.harness);if(s&&!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=ot.get(i.harness);ot.set(i.harness,{descriptor:i,registrations:(s?.registrations??0)+1})}let o=!0;return()=>{if(o){o=!1;for(let i of t){let s=ot.get(i.harness);!s||s.registrations<=1?ot.delete(i.harness):s.registrations-=1}}}}function 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>Vr||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(ds.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(Ed),n=new Map(ds.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 as.run(e,t)}function Ih(e,t,n={}){let r=e.map(Te);return Xr(r),vn.run({descriptors:r,probesEnabled:n.probesEnabled!==!1},t)}function Qr(e){let t=Jr(e),n=t.env??{},r=Xr(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=Nr(t,n),c=[Yr(n,s?.session_environment_keys),P(t.client_info?.session)?.slice(0,256)].find(_=>_!==void 0),d=wd(s?.harness,c),l=ns({cwd:t.cwd??process.cwd(),env:n,key:d}),f=bd(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 _s(e){let t=Jr(e),n=Qr(t),r=Xr(t.descriptors).find(d=>d.harness===n.harness),o=t.env??{},i=t.probes_enabled!==!1&&vn.getStore()?.probesEnabled!==!1&&!["0","false","off"].includes(P(o.PM_AGENT_PROBES)?.toLowerCase()??""),s=Nr(t,o),a=[o.PM_AGENT_ROLE,s.provenance?.role,Yr(o,r?.provenance_environment_keys.role),t.client_info?.provenance?.role,t.provenance?.role,us(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,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 Qr(e).harness}function Sd(e,t,n){let r=Jr(n),o=Qr(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 ps(e){let t=gn.getStore();return t?.author===e?t.source:e.startsWith("harness:")?"detected":e==="unknown"?"unknown":"asserted"}function hs(e){let t=gn.getStore();return t?.author!==e?e.startsWith("harness:")?{harness:e.slice(8)}:{}:{...t.harness?{harness:t.harness}:{},...t.model?{model:t.model}:{},...t.model_source?{model_source:t.model_source}:{},...t.session?{session:t.session}:{},...t.instance?{instance:t.instance}:{},...t.provenance?{provenance:t.provenance}:{},...t.episode?{episode:t.episode}:{}}}function ys(e){let t=gn.getStore();return t?.author===e&&t.source==="detected"&&t.instance?`${e}#${t.instance}`:e}function gs(e,t){let n=Sd(e,t);return gn.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]="1e3cba21-c5a4-541a-9841-484cfbb70f4e")}catch{}})();var Rh=["sha256","sha512"],Cd="sha256",vs="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]="8ee74259-29b1-5795-9253-9fa0869e4585")}catch{}})();var it=1,ws=1;function Dh(e){let t=e.pm_format_version;return typeof t=="number"&&Number.isInteger(t)&&t>=it?t:it}function bs(e){if(!(typeof e!="number"||!Number.isInteger(e)||e<=it))return e}function Od(e,t=ws){return e<t?"outdated":e>t?"ahead":"current"}function Nh(e,t=ws){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]="6bb283b8-5c81-562a-926e-e48b83e6ebc8")}catch{}})();var xd={"in-progress":"in_progress",cancelled:"canceled"};function wn(e,t){if(t){let o=ji(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(tn.includes(r))return r}function st(e,t){return wn(e,t)??e}function ye(e,t){return t.terminal_statuses.has(st(e,t))}import{encode as 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]="42eb2987-269d-5b18-b0fe-5b4334fdb6a0")}catch{}})();var Rd=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 Ad(e){return[...new Set([$i(e),Zr(e.key),Zr(e.cli_flag),...e.cli_aliases.map(t=>Zr(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 v(`${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 v(`${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 v(`${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&&N(e)!==N(t.const))return`${n} must equal ${N(t.const)}`;if(t.enum!==void 0&&!t.enum.some(r=>N(r)===N(e)))return`${n} must be one of ${t.enum.map(r=>N(r)).join("|")}`;if(!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"&&!Ki(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 v(r,w.USAGE);return t}function Dt(e,t,n){let r=n??`--${e.cli_flag}`;if(e.type==="array"||e.type==="object"){let i=Array.isArray(t)?t[t.length-1]:t;return i===void 0?void 0:Ve(e,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 Bh(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]=Dt(i,s)}return{values:r,missing_required_flags:[...new Set(o)].sort((i,s)=>i.localeCompare(s))}}function Wh(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]=Dt(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]="e48e0cc7-7577-5702-ac17-a4529697444e")}catch{}})();function eo(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]="45fa31ba-dea9-56db-b971-84c11e8a1c88")}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 En(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]="24554781-3fa2-53de-98b1-467843de8560")}catch{}})();var oo=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(wi);function dt(e){return e.replaceAll("\\","/")}function Rs(e){for(let t of e)if(t!==0)return t;return 0}function In(e){for(let[t,n]of Object.entries(e))n===void 0&&delete e[t]}var As=["id","title","description","created_at","updated_at"],Vd=new Set(be);function Ds(e){if(e?.schema)return{statusRegistry:un(e.schema),fieldRegistry:Fi(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 v(`Invalid item metadata: ${e}`,w.GENERIC_FAILURE,{code:"item_document_invalid",reason:e.includes("required")?"missing_required_field":"schema_validation_error",...t?{field:t}:{},required:"Provide an item document whose metadata satisfies the active runtime schema.",why:e})}function Pt(e,t){throw new v(t,w.GENERIC_FAILURE,{code:"item_document_invalid",reason:"syntax_error",format:e,required:`Provide a syntactically valid ${e==="toon"?"TOON":"JSON Markdown"} item document.`,why:"The document could not be decoded far enough to validate item metadata."})}function 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 S(e,t){e||Oe(t)}function Mt(e,t){return(typeof e!="object"||e===null||Array.isArray(e))&&Oe(t),e}function to(e,t){let n=e[t];S(typeof n=="string",`${t} must be a string`),S(_e(n),`${t} must be a valid ISO timestamp`)}function Cs(e,t,n){let r=e[t];r!==void 0&&S(typeof r=="number"&&Number.isInteger(r)&&r>=1,`${n} must be an integer >= 1`)}function io(e,t,n){let r=e[t];r!==void 0&&(S(typeof r=="string",`${n} must be a string`),S(_e(r),`${n} must be a valid ISO timestamp`))}function Gd(e){if(e!==void 0){S(Array.isArray(e),"event.recurrence.by_weekday must be an array");for(let t of e){S(typeof t=="string","event.recurrence.by_weekday entries must be strings");let n=t.trim().toLowerCase();S(sn.includes(n),`event.recurrence.by_weekday entries must be one of: ${sn.join(", ")}`)}}}function Kd(e){if(e!==void 0){S(Array.isArray(e),"event.recurrence.by_month_day must be an array");for(let t of e)S(typeof t=="number"&&Number.isInteger(t)&&t>=1&&t<=31,"event.recurrence.by_month_day entries must be integers 1..31")}}function Xd(e){if(e!==void 0){S(Array.isArray(e),"event.recurrence.exdates must be an array");for(let t of e)S(typeof t=="string","event.recurrence.exdates entries must be strings"),S(_e(t),"event.recurrence.exdates entries must be valid ISO timestamps")}}function Yd(e){let t=Mt(e,"event.recurrence must be an object");S(typeof t.freq=="string","event.recurrence.freq must be a string");let n=t.freq.trim().toLowerCase();S(on.includes(n),`event.recurrence.freq must be one of: ${on.join(", ")}`),Cs(t,"interval","event.recurrence.interval"),Cs(t,"count","event.recurrence.count"),io(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)S(typeof e[r]=="string",`${r} is required and must be a string`);let t=e.type;S(typeof t=="string"&&t.trim().length>0,"type must be a non-empty string");let n=e.pm_format_version;return n!==void 0&&S(typeof n=="number"&&Number.isInteger(n)&&n>=it,`pm_format_version must be an integer >= ${it}`),t}function Qd(e,t){let n=e.status;S(typeof n=="string"&&n.trim().length>0,"status must be a non-empty string");let r=t?.statusRegistry,o=wn(n,r),i=r?r.definitions.map(s=>s.id):[...tn];S(o!==void 0,`status must be one of: ${i.join(", ")}`)}function Zd(e){let t=e.priority;S(typeof t=="number"&&Number.isInteger(t)&&[0,1,2,3,4].includes(t),"priority must be an integer 0..4");let n=e.tags;S(Array.isArray(n),"tags must be an array");for(let r of n)S(typeof r=="string","tags entries must be strings")}function el(e){let t=e.confidence;if(t!==void 0){if(typeof t=="number"){S(Number.isInteger(t)&&t>=0&&t<=100,"confidence number value must be an integer 0..100");return}if(typeof t=="string"){let n=t.trim().toLowerCase(),r=n==="med"||rn.includes(n);S(r,`confidence string value must be one of: ${[...rn,"med"].join(", ")}`);return}S(!1,"confidence must be a number or string")}}function 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"||nn.includes(n);S(r,`severity value must be one of: ${[...nn,"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){S(Array.isArray(t),"reminders must be an array");for(let n of t){let r=Mt(n,"reminders entries must be objects");S(typeof r.at=="string","reminder.at must be a string"),S(_e(r.at),"reminder.at must be a valid ISO timestamp"),S(typeof r.text=="string","reminder.text must be a string"),S(r.text.trim().length>0,"reminder.text must not be empty")}}}function ol(e){for(let t of["title","description","location","timezone"])e[t]!==void 0&&(S(typeof e[t]=="string",`event.${t} must be a string`),S(e[t].trim().length>0,`event.${t} must not be empty`))}function il(e){e.recurrence!==void 0&&(Yd(e.recurrence),e.recurrence.until!==void 0&&S(pe(e.recurrence.until,e.start_at)>=0,"event.recurrence.until must be at or after event.start_at"))}function sl(e){let t=Mt(e,"events entries must be objects");S(typeof t.start_at=="string","event.start_at must be a string"),S(_e(t.start_at),"event.start_at must be a valid ISO timestamp"),t.end_at!==void 0&&(S(typeof t.end_at=="string","event.end_at must be a string"),S(_e(t.end_at),"event.end_at must be a valid ISO timestamp"),S(pe(t.end_at,t.start_at)>0,"event.end_at must be after event.start_at")),ol(t),t.all_day!==void 0&&S(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){S(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&&S(typeof n=="string",`${t} must be a string`)}}function dl(e){let t=e.type_options;if(t===void 0)return;let n=Mt(t,"type_options must be an object");for(let[r,o]of Object.entries(n))S(r.trim().length>0,"type_options keys must be non-empty"),S(typeof o=="string","type_options values must be strings"),S(o.trim().length>0,"type_options values must be non-empty strings")}function 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]=Dt(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 so(e,t){let n=Mt(e,"item metadata must be an object"),r=Jd(n);Qd(n,t),Zd(n),el(n),tl(n),nl(n),to(n,"created_at"),to(n,"updated_at"),n.deadline!==void 0&&to(n,"deadline"),rl(n),al(n),io(n,"closed_at","closed_at"),io(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=pe(t.created_at,n.created_at);if(r!==0)return r;let o=t.id.localeCompare(n.id);if(o!==0)return o;let i=t.kind.localeCompare(n.kind);return i!==0?i:(t.source_kind??"").localeCompare(n.source_kind??"")})}function no(e){if(!(!e||e.length===0))return[...e].sort((t,n)=>{let r=pe(t.created_at,n.created_at);if(r!==0)return r;let o=t.text.localeCompare(n.text);return o!==0?o:t.author.localeCompare(n.author)})}function 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=pe(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(!on.includes(t))return;let n=Array.from(new Set((e.by_weekday??[]).map(s=>s.trim().toLowerCase()).filter(s=>sn.includes(s)))).sort((s,a)=>kr(s)-kr(a)),r=Array.from(new Set((e.by_month_day??[]).filter(s=>Number.isInteger(s)&&s>=1&&s<=31).map(s=>s))).sort((s,a)=>s-a),o=Array.from(new Set((e.exdates??[]).map(s=>s.trim()).filter(s=>_e(s)))).sort((s,a)=>pe(s,a)),i={freq:t,interval:e.interval!==void 0&&e.interval>1?e.interval:void 0,count:e.count,until:e.until?.trim()||void 0,by_weekday:n.length>0?n:void 0,by_month_day:r.length>0?r:void 0,exdates:o.length>0?o:void 0};for(let[s,a]of Object.entries(i))a===void 0&&delete i[s];return i}function 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 In(t),t}function yl(e,t){return Rs([pe(e.start_at,t.start_at),(e.end_at??"").localeCompare(t.end_at??""),(e.title??"").localeCompare(t.title??""),+!!e.all_day-+!!t.all_day,(e.timezone??"").localeCompare(t.timezone??""),(e.location??"").localeCompare(t.location??""),(e.description??"").localeCompare(t.description??""),JSON.stringify(e.recurrence??{}).localeCompare(JSON.stringify(t.recurrence??{}))])}function gl(e){if(!(!e||e.length===0))return e.map(t=>({path:dt(t.path),scope:t.scope,note:t.note?.trim()||void 0}))}function vl(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([pe(n.recorded_at,r.recorded_at),n.run_id.localeCompare(r.run_id),n.kind.localeCompare(r.kind)]));return t.length>0?t:void 0}function at(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?Math.floor(e):void 0}function wl(e){return typeof e=="number"&&Number.isFinite(e)&&e>=1?Math.floor(e):void 0}function ro(e){return typeof e=="string"?e:""}function bl(e){if(!Array.isArray(e))return;let t=e.filter(r=>r!==null&&typeof r=="object"&&typeof r.name=="string"&&r.name.trim().length>0&&typeof r.value=="number"&&Number.isFinite(r.value)&&typeof r.recorded_at=="string"&&r.recorded_at.trim().length>0).map(r=>({name:r.name.trim(),value:r.value,unit:typeof r.unit=="string"&&r.unit.trim()||void 0,threshold:typeof r.threshold=="number"&&Number.isFinite(r.threshold)?r.threshold:void 0,recorded_at:r.recorded_at.trim()})),n=[...new Map(t.map(r=>[r.name,r])).values()].sort((r,o)=>r.name.localeCompare(o.name)).slice(0,32);return n.length>0?n:void 0}function kn(e,t){return typeof e=="string"&&t.has(e)?e:void 0}function 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:kn(n.requested_pm_context_mode,oo),pm_context_mode:kn(n.pm_context_mode,oo),workspace_context_mode:kn(n.workspace_context_mode,xs),trust_reason:kn(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:ro(e.started_at),finished_at:ro(e.finished_at),recorded_at:ro(e.recorded_at),attempt:wl(e.attempt),resumed_from:e.resumed_from?.trim()||void 0,passed:at(e.passed)??0,failed:at(e.failed)??0,skipped:at(e.skipped)??0,items:at(e.items),linked_tests:at(e.linked_tests),fail_on_skipped_triggered:e.fail_on_skipped_triggered===!0?!0:void 0,measurements:bl(e.measurements),executions:El(e.executions)};return In(o),o}function Il(e){if(!(!Array.isArray(e)||e.length===0))return e.map(xl)}function Nt(e){if(!Array.isArray(e))return;let t=[...new Set(e.filter(n=>typeof n=="string").map(n=>n.trim()).filter(n=>n.length>0))].sort((n,r)=>n.localeCompare(r));return t.length>0?t:void 0}function 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 Os(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 Sl(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 Tl(e){let t=e?.trim().toLowerCase();if(!(!t||!oo.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(!co(e))return{provenance_invalid:!0};let n=E(e.author),r=E(e.created_at),o=e.source_kind;return!n||!r||!_e(r)||o!=="local_mutation"&&o!=="merge_union"?{provenance_invalid:!0}:{provenance:{author:n,created_at:r,source_kind:o,source_ref:E(e.source_ref)}}}function xl(e){let t={command:e.command?.trim()||void 0,path:e.path?dt(e.path):void 0,scope:e.scope,timeout_seconds:typeof e.timeout_seconds=="number"&&Number.isFinite(e.timeout_seconds)&&e.timeout_seconds>0?e.timeout_seconds:void 0,pm_context_mode: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:Nt(e.env_clear),shared_host_safe:e.shared_host_safe===!0?!0:void 0,assert_stdout_contains:Nt(e.assert_stdout_contains),assert_stdout_regex:Nt(e.assert_stdout_regex),assert_stderr_contains:Nt(e.assert_stderr_contains),assert_stderr_regex:Nt(e.assert_stderr_regex),assert_stdout_min_lines:at(e.assert_stdout_min_lines),assert_json_field_equals:Os(e.assert_json_field_equals),assert_json_field_gte:Sl(e.assert_json_field_gte),note:e.note?.trim()||void 0};return In(t),t}function Rl(e){if(!(!e||e.length===0))return[...e].map(t=>({path:dt(t.path),scope:t.scope,note:t.note?.trim()||void 0})).sort((t,n)=>{let r=t.scope.localeCompare(n.scope);if(r!==0)return r;let o=t.path.localeCompare(n.path);return o!==0?o:(t.note??"").localeCompare(n.note??"")})}function E(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function 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:dt(o)};(r.scope==="project"||r.scope==="global")&&(i.scope=r.scope);let s=E(r.note);s&&(i.note=s),t.push(i)}return t.length>0?t:void 0}function 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=dt(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:dt(o)};(r.scope==="project"||r.scope==="global")&&(i.scope=r.scope);let s=E(r.note);s&&(i.note=s),t.push(i)}return t.length>0?t:void 0}function 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=Ti(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 ct(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(rn.includes(t))return t}function Bl(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(t==="med")return"medium";if(nn.includes(t))return t}function Lt(e){return e||void 0}function Wl(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 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]=Dt(r,o,`metadata field "${r.metadata_key}"`))}}function ql(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let n=Ns(t),o=Object.keys(e).filter(i=>!n.has(i)).sort((i,s)=>i.localeCompare(s));o.length>0&&t.unknownFieldPolicy==="reject"&&Oe(`unknown schema fields are not allowed: ${o.join(", ")}`),o.length>0&&t.onWarning?.(`item_unknown_schema_fields:${o.join(",")}`)}function Sn(e,t={}){let n=Ds(t),r=wn(e.status,n?.statusRegistry)??e.status,o=Array.from(new Set((Array.isArray(e.tags)?e.tags:[]).filter(s=>typeof s=="string").map(s=>s.trim().toLowerCase()).filter(Boolean))).sort((s,a)=>s.localeCompare(a)),i={id:e.id,title:e.title,description:e.description,type:e.type,pm_format_version:bs(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:no(e.comments),notes:no(e.notes),learnings:no(e.learnings),files:gl(e.files),tests:Il(e.tests),test_runs:vl(e.test_runs),docs:Rl(e.docs),deadline:Lt(e.deadline),reminders:ml(e.reminders),events:pl(e.events),closed_at:Lt(e.closed_at),completed_at:Lt(e.completed_at),assignee:E(e.assignee),claim_principal:E(e.claim_principal),source_owner:E(e.source_owner),author:Lt(e.author),estimated_minutes:e.estimated_minutes,acceptance_criteria:e.acceptance_criteria??void 0,design:e.design??void 0,external_ref:e.external_ref??void 0,definition_of_ready:E(e.definition_of_ready),order:e.order,goal:E(e.goal),objective:E(e.objective),value:E(e.value),impact:E(e.impact),outcome:E(e.outcome),why_now:E(e.why_now),parent:E(e.parent),reviewer:E(e.reviewer),risk:e.risk??void 0,confidence: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:Lt(e.close_reason),plan_mode:E(e.plan_mode),plan_scope:E(e.plan_scope),plan_harness:E(e.plan_harness),plan_resume_context:E(e.plan_resume_context),plan_steps: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),In(i),i}function Ls(e){return T(e,be)}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 ao(e,t){return Sn(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("{")&&Pt("json_markdown","JSON front matter is not valid JSON"),Pt("json_markdown","JSON Markdown item document is missing JSON front matter"));let s;try{s=JSON.parse(o)}catch{Pt("json_markdown","JSON front matter is not valid JSON")}return so(s,t),{metadata:ao(s,n),body:ct(i)}}function Jl(e,t,n={}){let r;try{r=eo(e).value}catch{Pt("toon","TOON item document is not valid TOON")}S(typeof r=="object"&&r!==null&&!Array.isArray(r),"TOON item document must be an object");let o=r;if(!As.some(a=>Object.prototype.hasOwnProperty.call(o,a))&&!Object.prototype.hasOwnProperty.call(o,"front_matter")&&Pt("toon","TOON input does not have the shape of an item document"),Object.prototype.hasOwnProperty.call(o,"front_matter"))return so(o.front_matter,t),S(o.body===void 0||typeof o.body=="string","TOON item document body must be a string"),{metadata:ao(o.front_matter,n),body:ct(typeof o.body=="string"?o.body:"")};let{body:i,...s}=o;return S(i===void 0||typeof i=="string","TOON item document body must be a string"),so(s,t),{metadata:ao(s,n),body:ct(typeof i=="string"?i:"")}}function Ql(e,t={}){let n=Sn(e.metadata,t),r=Ls(n),o=JSON.stringify(r,null,2),i=ct(e.body??"");return i?`${o}
8
+
9
+ ${i}
10
+ `:`${o}
11
+ `}function Zl(e,t={}){let n=Sn(e.metadata,t),r=Ls(n),o=ct(e.body??""),i={...r,body:o},s=JSON.parse(JSON.stringify(i)),a=zd(s),c;try{c=eo(a).value}catch(d){throw new v("Refusing to persist a TOON item document that the configured decoder cannot read back.",w.GENERIC_FAILURE,{code:"item_document_roundtrip_failed",reason:"encode_decode_error",format:"toon",required:"Upgrade or repair the TOON codec before retrying the mutation; no item bytes were written.",why:d instanceof Error?d.message:String(d)})}if(!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 v(`Refusing to persist a lossy TOON item document; round-trip mismatch at field "${l}".`,w.GENERIC_FAILURE,{code:"item_document_roundtrip_failed",reason:"encode_decode_mismatch",format:"toon",field:l,required:"Upgrade or repair the TOON codec before retrying the mutation; no item bytes were written.",why:"The encoded document decoded to a value different from the canonical item payload."})}return`${a}
12
+ `}function Tn(e,t={}){let n=En(e);if(n)throw new v(`Merge conflict markers detected in item document at line ${n.line} (${n.marker}). Resolve <<<<<<< ======= >>>>>>> markers and retry.`,w.GENERIC_FAILURE,{code:"merge_conflict_markers_detected",reason:"merge_conflict",required:"Resolve merge-conflict markers in the item file before parsing or mutation commands.",why:"Partially merged documents can corrupt item metadata and history integrity.",examples:["git status","git add <resolved-file> && git commit"],nextSteps:["Resolve conflicts, save the file, then rerun the pm command."]});let r=t.format??"toon",o=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 ne(e,t={}){return{metadata:Sn(e.metadata,t),body:ct(e.body??"")}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="bfa74c9e-a366-5b09-a7bc-869226fb6140")}catch{}})();async function 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=En(n);if(r)throw new v(`History for ${t} contains merge conflict markers at line ${r.line} (${r.marker}). Resolve <<<<<<< ======= >>>>>>> markers and retry.`,w.GENERIC_FAILURE,{code:"history_merge_conflict_markers_detected",required:"Repair the history stream by resolving merge-conflict markers.",why:"Conflict markers break JSONL parsing and invalidate deterministic audit history.",examples:[`pm history ${t}`,`pm restore ${t} <timestamp-or-version>`],nextSteps:["Resolve or restore the history file, then rerun the command."]});let o=[];for(let[i,s]of n.split(/\r?\n/).entries()){let a=s.trim();if(a)try{o.push(JSON.parse(a))}catch{throw new v(`History for ${t} contains invalid JSON at line ${i+1}. Repair or restore the history stream and retry.`,w.GENERIC_FAILURE,{code:"history_json_invalid",nextSteps:[`Run pm history-repair ${t} --salvage-tail --dry-run to check whether only an invalid suffix is damaged.`]})}}return{raw:n,entries:o}}async function ge(e,t){return(await 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]="24b1fb96-5c1e-5669-be21-fdeef4d413a6")}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]="9d5caf29-c1f2-5120-bc0b-c64a0bdd19ff")}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 lt(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]="542d77d0-7bb8-5ed0-a1da-09de33d3767f")}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,An=Symbol("history-index-lock-contended"),qe=new Map;function Ft(e){return z.join(e,"runtime",cu)}function Nn(e){return z.join(e,"runtime",fu)}async function _u(e){let t=await j.readdir(Nn(e)).catch(n=>{if(te(n))return[];throw n});return{pending:t.filter(n=>n.endsWith(".pending")).sort(),committed:t.filter(n=>n.endsWith(".committed")).sort()}}async function uo(e){let t=await _u(e);return{pending:(await Promise.all(t.pending.map(async r=>{let o=/^(\d+)-(unknown|\d+)-(\d+)-.+\.pending$/u.exec(r);if(o!==null){let i=o[2];if(await Yi({pid:Number(o[1]),...i==="unknown"?{}:{process_start_identity:i}},Math.max(0,Date.now()-Number(o[3])),mu))return r}return await j.rm(z.join(Nn(e),r),{force:!0}),null}))).filter(r=>r!==null),committed:t.committed}}async function jt(e,t){let n=await V(e,uu,mo,`history-event-index-invalidation:${process.pid}`,!1,!1,$s);try{return await t()}finally{await n()}}async function pu(e){let t=Nn(e);await j.mkdir(t,{recursive:!0});let n=Fs(),r=await Xi(),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 Cn(e){try{await j.rm(Ft(e),{force:!0})}catch{}}async function Ln(e,t){let n=await V(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 ge(e,t);for(let[r,o]of n.entries())if(typeof o.ts!="string"||!nt(o.ts.trim()))throw new v(`History for ${t} contains an invalid or sub-millisecond timestamp at line ${r+1}. Repair or restore the history stream and retry.`,w.GENERIC_FAILURE,{code:"history_timestamp_invalid"});return n.map(r=>({...r,ts:new Date(r.ts.trim()).toISOString()}))}async function yu(e){return(await Hs(e)).events}function gu(e){try{return e(["node","sqlite"].join(":")).DatabaseSync??null}catch{return null}}function vu(e,t){let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>=22?gu(t):null}var On;function Pn(){return On!==void 0||(On=vu(process.versions.node,au(import.meta.url))),On}function wu(e){e.exec(`
14
+ PRAGMA journal_mode = OFF;
15
+ PRAGMA synchronous = OFF;
16
+ CREATE TABLE metadata (
17
+ key TEXT PRIMARY KEY,
18
+ value TEXT NOT NULL
19
+ ) STRICT;
20
+ CREATE TABLE events (
21
+ stream_id TEXT NOT NULL,
22
+ stream_offset INTEGER NOT NULL,
23
+ ts TEXT NOT NULL,
24
+ author TEXT NOT NULL,
25
+ agent_harness TEXT,
26
+ agent_instance TEXT,
27
+ op TEXT NOT NULL,
28
+ event_class TEXT NOT NULL CHECK(event_class IN ('substantive', 'maintenance')),
29
+ entry_json TEXT NOT NULL,
30
+ PRIMARY KEY(stream_id, stream_offset)
31
+ ) STRICT;
32
+ CREATE TABLE streams (
33
+ stream_id TEXT PRIMARY KEY,
34
+ byte_size INTEGER NOT NULL CHECK(byte_size >= 0)
35
+ ) STRICT;
36
+ CREATE INDEX events_order
37
+ ON events(ts, stream_id, stream_offset);
38
+ CREATE INDEX events_op_order
39
+ ON events(op, ts, stream_id, stream_offset);
40
+ CREATE INDEX events_class_stream_order
41
+ ON events(event_class, stream_id, ts, stream_offset);
42
+ CREATE INDEX events_author_order
43
+ ON events(author, ts, stream_id, stream_offset);
44
+ CREATE INDEX events_harness_order
45
+ ON events(agent_harness, ts, stream_id, stream_offset);
46
+ CREATE INDEX events_instance_order
47
+ ON events(agent_instance, ts, stream_id, stream_offset);
48
+ `),e.prepare("INSERT INTO metadata(key, value) VALUES ('version', ?)").run(fo)}function Us(e,t){let n={...t.entry,ts:new Date(t.entry.ts.trim()).toISOString()};e.prepare(`INSERT INTO events(
49
+ stream_id, stream_offset, ts, author, agent_harness,
50
+ agent_instance, op, event_class, entry_json
51
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`).run(t.stream_id,t.stream_offset,n.ts,n.author,n.agent_harness??null,n.agent_instance??null,n.op,lt(n),JSON.stringify(n))}function Bs(e){let t=JSON.parse(String(e.entry_json));return typeof t.ts!="string"||!nt(t.ts.trim())?null:{stream_id:String(e.stream_id),stream_offset:Number(e.stream_offset),entry:{...t,ts:new Date(t.ts.trim()).toISOString()}}}function 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 bu(e){let t=Pn();return t?Ln(e,async()=>{let n;try{n=await jt(e,()=>uo(e))}catch(s){if(s instanceof v&&s.code==="lock_conflict")return!1;throw s}if(n.pending.length>0)return!1;let r=Ft(e);await j.mkdir(z.dirname(r),{recursive:!0});let o=`${r}.${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 jt(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(Nn(e),d),{force:!0}))),!0)});return a||await j.rm(o,{force:!0}),a}catch(s){throw i?.close(),await j.rm(o,{force:!0}),s}}):!1}function xn(e,t){return!t||t.length===0||t.includes(e)}function _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 Dn(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:Dn(t.after_ts)}})<=0)return!1}else if(t.since_ts!==void 0&&e.entry.ts<Dn(t.since_ts))return!1;return!0}function 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)||!xn(e.entry.op,t.ops)||!xn(e.entry.author,t.authors)||!xn(e.entry.agent_instance??"",t.agent_instances)||!xn(e.stream_id,t.stream_ids)||!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 Ry(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=Pn();if(!o){await n();return}let i=!1;try{await Ln(r,async()=>{let s=Ft(r);try{await j.access(s)}catch{await n();return}let a;try{if(a=new o(s),a.prepare("SELECT value FROM metadata WHERE key = 'version'").get()?.value!==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 Cn(r)}})}catch(s){if(i){await Cn(r);return}if(!(s instanceof v)||s.code!=="lock_conflict")throw s;let a;try{await jt(r,async()=>{let c=await 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 Cn(r)})}catch(c){if(i){await Cn(r);try{await j.rm(a,{force:!0})}catch{}return}throw c}}}async function po(e){await j.rm(Ft(z.dirname(z.dirname(e))),{force:!0})}function Rn(e,t,n,r){!r||r.length===0||(e.push(`${n} IN (${r.map(()=>"?").join(", ")})`),t.push(...r))}function 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(Ft(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 Ay(e,t){let n=Pn();if(!n)return null;let r=[],o=[];if(t.after_ts!==void 0&&t.after_stream_id!==void 0&&t.after_stream_offset!==void 0){r.push("(ts > ? OR (ts = ? AND stream_id > ?) OR (ts = ? AND stream_id = ? AND stream_offset > ?))");let a=Dn(t.after_ts);o.push(a,a,t.after_stream_id,a,t.after_stream_id,t.after_stream_offset)}else t.since_ts!==void 0&&(r.push("ts >= ?"),o.push(Dn(t.since_ts)));Rn(r,o,"op",t.ops),Rn(r,o,"author",t.authors),Su(r,o,t.harnesses,t.harness_alias_authors),Rn(r,o,"agent_instance",t.agent_instances);for(let a of t.provenance??[])r.push(`json_extract(entry_json, '$.agent_provenance.${a.dimension}.value') IN (${a.values.map(()=>"?").join(", ")})`),o.push(...a.values);Rn(r,o,"stream_id",t.stream_ids);let i=r.length===0?"":` WHERE ${r.join(" AND ")}`,s;try{return await Ln(e,async()=>jt(e,async()=>{if(s=await 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
53
+ FROM events${i}
54
+ ORDER BY ts, stream_id, stream_offset
55
+ LIMIT ?`).all(...o,Math.max(0,Math.floor(t.limit))+1),d=c.slice(0,t.limit).map(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)||lt(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(te(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(te(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 Ln(t,async()=>jt(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),d=o.prepare(`SELECT stream_id, stream_offset, entry_json
57
+ FROM (
58
+ SELECT stream_id, stream_offset, entry_json,
59
+ ROW_NUMBER() OVER (
60
+ PARTITION BY stream_id
61
+ ORDER BY ts DESC, stream_offset DESC
62
+ ) AS recency_rank
63
+ FROM events
64
+ WHERE event_class = 'substantive'
65
+ AND stream_id IN (${a.map(()=>"?").join(", ")})
66
+ )
67
+ WHERE recency_rank = 1`).all(...a).map(Bs);if(d.includes(null))return o.close(),o=void 0,null;i.push(...d)}return o.close(),o=void 0,Gs(i,r)}))}catch(i){return o?.close(),i instanceof v&&i.code==="lock_conflict"?An:null}}async function Dy(e,t){let n=[...new Set(t.filter(a=>a.trim().length>0&&z.basename(a)===a))];if(n.length===0)return{};let r=new Set(n),o=Pn(),i=await js(o,e,n,r);if(i!==null&&i!==An)return i;if(o&&i!==An)try{if(await bu(e)){let a=await js(o,e,n,r);if(a!==null&&a!==An)return a}}catch{}let s=[];return await Promise.all(n.map(async a=>{let c=z.join(e,"history",`${a}.jsonl`);(await zs(c,a).catch(l=>{if(l instanceof v&&l.code==="history_timestamp_invalid")return[];throw l})).forEach((l,f)=>{s.push({stream_id:a,stream_offset:f,entry:l})})})),Gs(s,r)}import ho from"node:fs/promises";import ut from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="979782f5-f4ee-5df5-a68a-0c51ab0548ae")}catch{}})();var Ou=ut.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=ut.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){Rr(`[pm] warning: history_drift_cache_invalidation_failed:${r}
68
+ `);return}try{await ho.rm(t,{force:!0})}catch(o){let i=Ys(o);if(te(o))return;let s=i===void 0?"unknown":Xs[i]??"filesystem_error";Rr(`[pm] warning: history_drift_cache_invalidation_failed:${s}
69
+ `)}}async function Mn(e){let t=ut.dirname(ut.resolve(e));ut.basename(t)==="history"&&await xu(ut.dirname(t))}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="8c02324c-231c-54ae-8edb-256ac7e04b50")}catch{}})();var Du={front_matter:{},body:""},Ge=3,$t=[1,2,3],Nu=1,Lu=[1];function na(e){return Ce(N(e),e.hash_algorithm)}function ft(e){return ln(N(e))}function ng(e){return ln(N(e))}function wo(e){let t={...e,record_hash_version:Nu},{record_hash:n,...r}=t;return{...t,record_hash:na(r)}}function $n(e){try{We(e.hash_algorithm)}catch{return{ok:!1,error:"unsupported_history_hash_algorithm"}}if(e.record_hash_version===void 0&&e.record_hash===void 0)return{ok:!0,coverage:"item_state_only"};if(e.record_hash_version===void 0||e.record_hash===void 0)return{ok:!1,error:"incomplete_record_hash_envelope"};if(!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:ft(e.patch)};return e.hash_algorithm!==void 0&&(n.hash_algorithm=e.hash_algorithm),e.item_hash_version!==void 0&&(n.item_hash_version=e.item_hash_version),t.retainOriginalPatch&&(n.patch=structuredClone(e.patch)),t.retainPriorRecordHash!==!1&&e.record_hash_version!==void 0&&e.record_hash!==void 0&&(n.record_hash_version=e.record_hash_version,n.record_hash=e.record_hash,n.record=structuredClone(e)),n}function ra(e,t,n={}){let r=$n(e);if(!r.ok)throw new TypeError(r.error);let o=ft(e.patch),i=n.retainPriorRecord===!0||e.before_hash!==t.before_hash||e.after_hash!==t.after_hash||e.item_hash_version!==t.item_hash_version||e.hash_algorithm!==t.hash_algorithm||o!==ft(t.patch),s=wo({...t,...i?{reanchor_evidence:[...t.reanchor_evidence??[],Pu(e,n)]}:{}}),a=bo(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&&ft(t.patch)===e.patch_hash}function zu(e,t,n){if(t.patch&&ft(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(ft(r)!==t.patch_hash)return{kind:"digest_only"};let o={...e,before_hash:t.before_hash,after_hash:t.after_hash,patch:r,hash_algorithm:t.hash_algorithm,...t.item_hash_version===void 0?{}:{item_hash_version:t.item_hash_version},...t.record_hash_version===void 0?{}:{record_hash_version:t.record_hash_version},...t.record_hash===void 0?{}:{record_hash:t.record_hash},...n.length===0?{}:{reanchor_evidence:n}};return t.hash_algorithm===void 0&&delete o.hash_algorithm,n.length===0&&delete o.reanchor_evidence,t.item_hash_version===void 0&&delete o.item_hash_version,t.record_hash_version===void 0||t.record_hash===void 0?{kind:"legacy",entry:o}:{kind:"record",entry:o}}function bo(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(!$n(i.entry).ok)return{ok:!1,error:"rewrite_evidence_record_hash_mismatch"};n=i.entry}return{ok:!0,coverage:"complete"}}function jn(e,t){return(e??"").localeCompare(t??"")}function 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),jn(e.path,t.path),jn(e.command,t.command),Qs(e.timeout_seconds,t.timeout_seconds),jn(e.pm_context_mode,t.pm_context_mode),+!!e.shared_host_safe-+!!t.shared_host_safe,xe(e.env_clear,t.env_clear,[]),xe(e.env_set,t.env_set,{}),xe(e.assert_stdout_contains,t.assert_stdout_contains,[]),xe(e.assert_stdout_regex,t.assert_stdout_regex,[]),xe(e.assert_stderr_contains,t.assert_stderr_contains,[]),xe(e.assert_stderr_regex,t.assert_stderr_regex,[]),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,{}),jn(e.note,t.note)].find(r=>r!==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 Fn(e,t,n=!1){if(!(e.metadata&&Object.keys(e.metadata).length>0))return{front_matter:{},body:e.body??""};let o=ne(e),s=t===1||t===2&&n?{...o.metadata,...o.metadata.dependencies===void 0?{}:{dependencies:o.metadata.dependencies.map(d=>({...d,id:d.id.toLowerCase()}))},...o.metadata.tests===void 0?{}:{tests:o.metadata.tests.map(({workspace_context_mode:d,provenance:l,provenance_invalid:f,...m})=>m)},...o.metadata.test_runs===void 0?{}:{test_runs:o.metadata.test_runs.map(({executions:d,...l})=>l)}}:o.metadata,a=t===1&&s.tests?{...s,tests:[...s.tests].sort(Uu)}:s;return{front_matter:T(a,be),body:o.body}}function Zs(e){if(!(e.metadata&&Object.keys(e.metadata).length>0))return{metadata:{},body:e.body??""};let n=ne(e);return{metadata:T(n.metadata,be),body:n.body}}function rg(e){return ia(e,Ge)}function ia(e,t,n){if(!$t.some(r=>r===t))throw new TypeError(`unsupported_item_hash_version:${String(t)}`);return Ce(N(Fn(e,t)),n)}function sa(e,t,n){let r=ia(e,t,n);return t===2?[r,Ce(N(Fn(e,t,!0)),n)]:[r]}function og(){return ln(N(Du))}function mt(e){let t=_n(e.op),n=Fn(e.before,Ge),r=Fn(e.after,Ge),o=Zs(e.before),i=Zs(e.after),s=ta.compare(o,i),a=Vu(o,s),c=hs(e.author),d=c.harness?Object.fromEntries(Object.entries(_s().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??vs,m={hash_algorithm:f,ts:e.nowIso,author:e.author,author_source:e.authorSource??ps(e.author),...c.harness?{agent_harness:c.harness}:{},...c.model?{agent_model:c.model}:{},...c.model_source?{agent_model_source:c.model_source}:{},...c.instance?{agent_instance:c.instance}:{},...c.provenance?{agent_provenance:c.provenance}:{},...c.episode?{agent_episode:c.episode}:{},op:t,patch:a,before_hash:Ce(N(n),f),after_hash:Ce(N(r),f),item_hash_version:Ge,message:e.message===void 0?void 0:e.message,...l===void 0?{}:{context:l}};return wo({...m,event_class:lt(m)})}function Ke(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function yo(e){return new v(e,w.GENERIC_FAILURE,{code:"history_timestamp_invalid"})}function aa(e){let t=e.ts.trim();if(t.length===0)return Ie();if(!nt(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(!nt(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 vo(e,s),await Mn(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 vo(o,i),await Mn(o),await po(o),!0}async function vo(e,t){let n;try{n=JSON.parse(t)}catch{n=null}if(!Ke(n)||n.op!=="create"){await Si(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 v("This item identity is reserved by an existing history stream.",w.CONFLICT,{code:"item_identity_reserved",required:"Choose a new item ID or restore the original item from its history.",nextSteps:["Run pm history <id> --full, then pm restore <id> <version> to recover the original item."]})}}async function _t(e,t){let n=await At("history_append",{history_path:e,entry:t});if(n.handled&&await 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:lt(r)});await Vs(e,o,async()=>{await vo(e,go(o,o))}),await Mn(e)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="8c80fb7b-da68-5bb8-a985-7de2d81aabd7")}catch{}})();var pt={metadata:{},body:""};function Hn(){return structuredClone(pt)}function _g(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(zn(e),t,n)}catch{}let r=Ce(N({replay_fallback:!0,metadata:e.metadata,body:e.body}),n);return t===2?[r,r]:[r]}function 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 zn(e){return{metadata:e.metadata,body:e.body}}function pg(e,t={}){return ne(zn(e),t)}function hg(e){if(!e.metadata||Object.keys(e.metadata).length===0)return{metadata:{},body:e.body??""};let t=ne(e);return{metadata:T(t.metadata,be),body:t.body}}function 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&&$t.includes(t)))]}function fa(e){return e!==void 0&&!$t.includes(e)}function Yu(e,t){return e!==void 0?[e]:t===void 0?[...$t]:[t]}function ma(e){let t=$n(e);if(!t.ok)return t.error;let n=bo(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=Hn(),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:h})=>h.pairIndex>=0);if(_===void 0){let h=p.some(({match:I})=>I.beforeIndex>=0);return{ok:!1,errors:[...i,`verify_failed:${h?"after":"before"}_hash_mismatch:entry_${s+1}`]}}let g=_.version;t=l.document,n=m.after,r=g,o=c??o}return i.length>0?{ok:!1,errors:i,...r===void 0?{}:{item_hash_version:r}}:{ok:!0,errors:[],...r===void 0?{}:{item_hash_version:r}}}function ve(e){let t=_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 a of ua(t)){let c=da(n,a);if(c.ok){n=c.document;continue}if(a.op==="replace"){let d=da(n,{...a,op:"add"});if(d.ok){n=d.document,r+=1;continue}}o+=1}let i=n;return{document:{metadata:typeof i.metadata=="object"&&i.metadata!==null?i.metadata:{},body:typeof i.body=="string"?i.body:e.body},convertedReplaceToAdd:r,skippedOps:o}}function 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 yg(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=Hn(),i=[],s=[],a=0,c=0,d=0,l=0,f,m=t!==1||e.some(p=>p.item_hash_version!==void 0);for(let p=0;p<e.length;p+=1){let _=e[p];Qu(_,p);let g=nf(o,_),{next:h,patch:I,repaired:R,converted:D,skipped:$}=g;d+=D,l+=$,c+=Number(R);let x=la(o,h,t,_);f===void 0||n.continuousHashSurface!==!0?f=[x.pairIndex,x.beforeIndex,x.afterIndex,Math.min(f??0,x.beforeHashes.length-1)].find(we=>we>=0):f=Math.min(f,x.beforeHashes.length-1);let G=x.beforeHashes[f],W=x.afterHashes[f],Q=G!==_.before_hash||W!==_.after_hash;Q&&(a+=1);let K={..._,patch:I,before_hash:G,after_hash:W};m?K.item_hash_version=t:delete K.item_hash_version;let ee=K.item_hash_version!==_.item_hash_version;(Q||R||ee)&&(K=ra(_,K,{retainOriginalPatch:R})),i.push(K),s.push({index:p+1,rehashed:Q,patch_repaired:R,converted_replace_to_add:D,skipped_ops:$}),o=h}return{entries:i,finalDocument:o,entriesRehashed:a,entriesPatchRepaired:c,convertedReplaceToAdd:d,skippedOps:l,details:s,itemHashVersion:t,explicitItemHashVersion:m}}function gg(e){return e.length===0?"":`${e.map(t=>JSON.stringify(t)).join(`
71
+ `)}
72
+ `}import rf from"node:crypto";import Un from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="1a689c0c-972a-5aff-a15e-ea48fcdf478b")}catch{}})();function 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 Ht(e){let t=e.trim().toLowerCase();return t.startsWith("#")&&(t=t.slice(1)),t}function Ye(e,t){let n=ha(t),r=Ht(e);return r.startsWith(n)?r:`${n}${r}`}function of(e){let t=Gi(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=>[Un.join(e,o,`${t}.md`),Un.join(e,o,`${t}.toon`)]);return r.push(Un.join(e,"history",`${t}.jsonl`)),(await Promise.all(r.map(o=>je(o)))).some(Boolean)}var 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 Sg(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(Un.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 zt from"node:path";import{isUtf8 as lf}from"node:buffer";import cf from"node:fs/promises";import ht from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="b6012be6-13b6-54b9-91ed-c9093423b1c2")}catch{}})();var yt="_workspace";function Bn(e){return ht.join(e,"history",`${yt}.jsonl`)}function df(e,t){return{metadata:{id:yt,title:"Workspace state",description:"Audited singleton workspace document state.",type:"Chore",status:"open",priority:2,tags:["workspace-history"],created_at:t,updated_at:t,documents:e},body:""}}function Wn(e,t=e.length){let n=Hn();for(let r of e.slice(0,t))n=Xe(n,r.patch).document;return zn(n)}function 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 Vn(e){throw new v(`Workspace history verification failed: ${e.join(", ")}`,w.CONFLICT,{code:"workspace_history_chain_invalid",reason:"workspace_history_chain_verification_failed",verification_errors:[...e],required:"Repair the _workspace history chain before reading, reconciling, restoring, or appending audited singleton state.",why:"Continuing against an unverifiable append-only stream could hide or compound workspace state corruption.",examples:["pm history _workspace --verify --json","pm validate --check-history-drift --fix-hints --json"],nextSteps:["Inspect the exact verification_errors and preserve the corrupt stream as evidence.","Use the history-drift remediation returned by validate before retrying the refused operation."],recovery:{recovery_mode:"compact",next_best_command:"pm history _workspace --verify --json"}})}function ga(e,t){let n=ht.resolve(t),r=ht.relative(e,n).replaceAll("\\","/");if(r.length===0||r===".."||r.startsWith("../")||ht.isAbsolute(r))throw new TypeError("Workspace history document path must stay inside the tracker root");return{documentPath:r,absolutePath:n}}async function Fg(e){let t=await ge(Bn(e),yt),n=ve(t);n.ok||Vn(n.errors);let r=Io(t.length===0?Me:Wn(t)),o=[],i=[],s=[],a=[];for(let c of Object.keys(r).sort()){let d;try{let l=ga(e,ht.resolve(e,c));if(d=await Ee(l.absolutePath),d===null){s.push(c);continue}let f=JSON.parse(d);(N(f)===N(r[c])?o:i).push(c)}catch{a.push(c)}}return{ok:i.length===0&&s.length===0&&a.length===0,document_count:Object.keys(r).length,matching_documents:o,mismatched_documents:i,missing_documents:s,unreadable_documents:a}}async function va(e){let t=Bn(e.pmRoot),n=await ge(t,yt),r=ve(n);r.ok||Vn(r.errors);let o=e.idempotencyKey===void 0?void 0:n.find(f=>f.op===`${e.op}:${e.idempotencyKey}`);if(o)return{entry:o,historyPath:t};let i=Ie(),s=n.length===0?Me:Wn(n),a=Io(s),c=a[e.documentPath];if(c!==void 0&&N(c)!==N(e.before))throw new v(`Workspace history state for "${e.documentPath}" changed outside the audited mutation path.`,w.CONFLICT,{code:"workspace_history_state_conflict",reason:"out_of_band_workspace_state",required:"Reconcile the singleton document with its matching _workspace history state before retrying the mutation.",why:"Accepting the write would make the append-only audit stream describe a state that was not actually observed.",examples:["pm history _workspace --verify","pm validate --check-history-drift --fix-hints"],nextSteps:["Review the version-control change that altered the singleton and preserve the intended document plus its matching workspace history.","Rerun the original mutation only after the on-disk singleton agrees with the latest audited workspace state."],recovery:{recovery_mode:"compact",next_best_command:"pm history _workspace --verify"}});let d=df({...a,[e.documentPath]:e.after},n.length===0?i:s.metadata.created_at),l=mt({nowIso:i,author:e.author,op:e.idempotencyKey===void 0?e.op:`${e.op}:${e.idempotencyKey}`,before:s,after:d,message:e.message});return await _t(t,l),{entry:l,historyPath:t}}async function $g(e){let t=await V(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await va(e)}finally{await t()}}async function wa(e){let t=await V(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{let n=Bn(e.pmRoot),r=await ge(n,yt),o=ve(r);o.ok||Vn(o.errors);let i=r.length===0?Me:Wn(r),s=mt({nowIso:Ie(),author:e.author,op:e.op,before:i,after:i,message:e.message,context:e.context});return await _t(n,s),{entry:s,historyPath:n}}finally{await t()}}async function ba(e,t){if(t===e.raw)return!1;let n=t===null?null:JSON.parse(t),r=JSON.parse(e.raw);await X(e.filePath,e.raw);try{(t!==null||e.recordCreation!==!1)&&await va({pmRoot:e.pmRoot,documentPath:ht.relative(e.pmRoot,e.filePath).replaceAll("\\","/"),before:n,after:r,op:e.op,idempotencyKey:e.idempotencyKey,author:e.author,lockTtlSeconds:e.lockTtlSeconds,lockWaitMs:e.lockWaitMs,message:e.message})}catch(o){throw t===null?await cf.rm(e.filePath,{force:!0}):await X(e.filePath,t),o}return!0}async function Ea(e){let{documentPath:t}=ga(e.pmRoot,e.filePath),n=await V(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{let r=await Ee(e.filePath);if(e.dryRun===!0||e.idempotencyKey!==void 0){let i=await ge(Bn(e.pmRoot),yt),s=ve(i);s.ok||Vn(s.errors);let a=Io(i.length===0?Me:Wn(i))[t];if(a!==void 0&&N(a)!==N(r===null?null:JSON.parse(r)))throw new v(`Workspace history state for "${t}" changed outside the audited mutation path.`,w.CONFLICT,{code:"workspace_history_state_conflict"});if(e.idempotencyKey!==void 0&&i.some(c=>c.op===`${e.op}:${e.idempotencyKey}`))return{changed:!1,result:void 0,replayed:!0}}let o=await e.mutate(r);return JSON.parse(o.raw),e.dryRun===!0?{changed:r!==o.raw,result:o.result}:{changed:await ba({...e,raw:o.raw},r),result:o.result}}finally{await n()}}async function Hg(e){let t=await V(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await ba(e,await Ee(e.filePath))}finally{await t()}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="05666dcc-3273-5416-b6b4-54b4ff1368be")}catch{}})();var uf=1048576,ff=4194304;async function Ia(e,t){let n=zt.dirname(e);for(;n!==zt.parse(e).root;){let o=await ka.stat(n).catch(i=>{if(te(i))return null;throw i});if(o!==null){if(!o.isDirectory())throw new v("Workflow policy storage ancestor must be a directory.",w.CONFLICT,{code:"workflow_policy_input_unreadable",nextSteps:["Restore the policy or approval history directory before retrying."]});break}n=zt.dirname(n)}let r=await ka.open(e,"r").catch(o=>{if(te(o))return null;throw o});if(r===null)return null;try{let o=(await r.stat()).size,i=Buffer.alloc(Math.min(t,o)+1),s=0;for(;s<i.length;){let a=await r.read(i,s,i.length-s,s);if(a.bytesRead===0)break;s+=a.bytesRead}if(s===i.length||!lf(i.subarray(0,s)))throw new v("Workflow policy input exceeds its byte bound or is not valid UTF-8.",w.CONFLICT,{code:"workflow_policy_input_unreadable",nextSteps:["Inspect the policy and approval history; reduce the declaration or use verified history compaction before retrying."]});return i.toString("utf8",0,s)}finally{await r.close()}}function mf(e){if(e===null)return{version:1,enforcement:"advise",policies:[]};let t;try{t=JSON.parse(e)}catch{throw new v("schema/policies.json must contain valid JSON.",w.CONFLICT,{code:"workflow_policy_registry_invalid",nextSteps:["Restore valid policy JSON before retrying the mutation."]})}return Hi(t)}async function _f(e){return mf(await Ia(zt.join(e,"schema","policies.json"),uf))}async function pf(e,t){let n=await Ia(ue(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)),!ve(r).ok)throw new Error("invalid chain")}catch{throw new v("Approval evidence requires a valid item history chain.",w.CONFLICT,{code:"workflow_policy_approval_history_invalid",nextSteps:[`Run pm history ${t} --verify before recording or using an approval.`]})}return r.flatMap(o=>{let i=o.context?.workflow_approval;if(o.op!=="policy_approve"||o.record_hash_version!==1||typeof o.record_hash!="string"||typeof i!="object"||i===null)return[];let s=i;return typeof s.policy_fingerprint!="string"||typeof s.content_fingerprint!="string"?[]:[{policy_fingerprint:s.policy_fingerprint,content_fingerprint:s.content_fingerprint,author:o.author}]})}async function hf(e,t,n){let r=n.before?.status!==n.after?.status&&t.policies.some(s=>s.rule.kind==="approval"&&zi(s,n)),o=n.before?.id??n.after?.id,i=r&&typeof o=="string"?await pf(e,o):[];return Ui(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 v("Workflow policy refusal could not be recorded in workspace history.",w.CONFLICT,{code:"workflow_policy_audit_failed",nextSteps:["Resolve workspace-history lock or storage failures, then retry the refused mutation; no item changes were written."]});throw f.cause=l,f}let o=r.slice(0,3).map(l=>({policy_id:l.policy_id,rule:l.rule,description:t.policies.find(f=>f.id===l.policy_id).description,missing_fields:l.missing_fields})),i=[...new Set(o.flatMap(l=>l.missing_fields))],s=o.map(l=>`${l.policy_id} (${l.rule})`).join(", "),a=r.length>3?` and ${r.length-3} more`:"",c=e.after?.metadata.id??e.before.metadata.id,d=i.map(l=>{if(e.before===null)return`Supply ${l} in the original ${e.operation} request, then retry; the item was not created.`;let f=xi("update",l);return f===void 0?`Supply ${l} using its declared SDK or package mutation contract, then retry.`:$e(["update",c,Ri("update",f),`<${l}>`,"--pm-path",zt.resolve(e.pmRoot)])});throw new v(`Workflow policy refused ${e.operation}: ${s}${a}.${i.length?` Missing: ${i.join(", ")}.`:""}`,w.CONFLICT,{code:"workflow_policy_refused",reason:o.map(l=>l.policy_id).join(","),policy_violations:o,policy_violation_count:r.length,required:i.length?`Supply missing fields: ${i.join(", ")}, then retry the refused mutation.`:"Satisfy the declared workflow policy before retrying.",why:o.map(l=>l.description).filter(Boolean).join(" ")||void 0,recovery:{missing_required_fields:i},nextSteps:[...d,...new Set(r.slice(0,3).filter(l=>l.missing_fields.length===0).map(l=>l.remediation)),...r.length>3?[`Inspect all policies with pm schema policies before retrying ${e.operation}.`]:[]]})}import{AsyncLocalStorage as 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]="118ec110-fa84-550b-a0a8-4def314270b6")}catch{}})();var To=new yf,Co=gf("@unbrained/pm-cli/item-metadata-enumeration/v1");function qn(e){Co.publish(e)}async function rv(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 vf}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]="e9e67ec7-10cb-57b0-a094-ae52b01a0f8a")}catch{}})();var bf="metadata-query-index.sqlite",Ut="5";function Ef(e){try{return e(["node","sqlite"].join(":")).DatabaseSync??null}catch{return null}}var Gn;function kf(e,t){let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>=22?Ef(t):null}function Bt(){return Gn!==void 0||(Gn=kf(process.versions.node,wf(import.meta.url))),Gn}function Sa(e,t){return Math.max(0,Math.floor(e===void 0?t:e))}function gt(e){return Ta.join(e,"runtime",bf)}function If(e){e.exec(`
73
+ PRAGMA foreign_keys = ON;
74
+ PRAGMA journal_mode = OFF;
75
+ PRAGMA synchronous = OFF;
76
+ CREATE TABLE metadata (
77
+ key TEXT PRIMARY KEY,
78
+ value TEXT NOT NULL
79
+ ) STRICT;
80
+ CREATE TABLE items (
81
+ id TEXT PRIMARY KEY,
82
+ relative_path TEXT NOT NULL UNIQUE,
83
+ metadata_json TEXT NOT NULL,
84
+ status TEXT NOT NULL,
85
+ type TEXT NOT NULL,
86
+ priority INTEGER NOT NULL,
87
+ updated_at TEXT NOT NULL,
88
+ created_at TEXT NOT NULL,
89
+ parent TEXT,
90
+ assignee TEXT,
91
+ sprint TEXT,
92
+ release TEXT
93
+ ) STRICT;
94
+ CREATE INDEX items_default_order
95
+ ON items(priority, updated_at DESC, id);
96
+ CREATE INDEX items_status_default_order
97
+ ON items(status, priority, updated_at DESC, id);
98
+ CREATE INDEX items_type_default_order
99
+ ON items(type, priority, updated_at DESC, id);
100
+ CREATE INDEX items_parent_default_order
101
+ ON items(parent, priority, updated_at DESC, id);
102
+ CREATE TABLE item_metadata_keys (
103
+ item_id TEXT NOT NULL,
104
+ key TEXT NOT NULL,
105
+ PRIMARY KEY(item_id, key),
106
+ FOREIGN KEY(item_id) REFERENCES items(id) ON DELETE CASCADE
107
+ ) STRICT;
108
+ CREATE INDEX item_metadata_keys_key_item
109
+ ON item_metadata_keys(key, item_id);
110
+ CREATE TABLE item_linked_files (
111
+ item_id TEXT NOT NULL,
112
+ path TEXT NOT NULL,
113
+ scope TEXT NOT NULL,
114
+ note TEXT,
115
+ PRIMARY KEY(item_id, path, scope),
116
+ FOREIGN KEY(item_id) REFERENCES items(id) ON DELETE CASCADE
117
+ ) STRICT;
118
+ CREATE INDEX item_linked_files_path_scope_item
119
+ ON item_linked_files(path, scope, item_id);
120
+ CREATE VIRTUAL TABLE item_search USING fts5(
121
+ id UNINDEXED,
122
+ title,
123
+ description,
124
+ tags,
125
+ tokenize = 'unicode61'
126
+ );
127
+ `)}function Xn(e,t,n){e.prepare("INSERT INTO metadata(key, value) VALUES (?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value").run(t,n)}function Ca(e,t){let n=t.metadata;e.prepare(`INSERT INTO items(
128
+ id, relative_path, metadata_json, status, type, priority,
129
+ updated_at, created_at, parent, assignee, sprint, release
130
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
131
+ ON CONFLICT(id) DO UPDATE SET
132
+ relative_path = excluded.relative_path,
133
+ metadata_json = excluded.metadata_json,
134
+ status = excluded.status,
135
+ type = excluded.type,
136
+ priority = excluded.priority,
137
+ updated_at = excluded.updated_at,
138
+ created_at = excluded.created_at,
139
+ parent = excluded.parent,
140
+ assignee = excluded.assignee,
141
+ sprint = excluded.sprint,
142
+ release = excluded.release`).run(n.id,t.relativePath,JSON.stringify(n),n.status,n.type,n.priority,n.updated_at,n.created_at,n.parent??null,n.assignee??null,n.sprint??null,n.release??null),e.prepare("DELETE FROM item_metadata_keys WHERE item_id = ?").run(n.id),e.prepare("DELETE FROM item_linked_files WHERE item_id = ?").run(n.id),e.prepare("DELETE FROM item_search WHERE rowid = (SELECT rowid FROM items WHERE id = ?)").run(n.id),e.prepare("INSERT INTO item_search(rowid, id, title, description, tags) SELECT rowid, ?, ?, ?, ? FROM items WHERE id = ?").run(n.id,n.title,n.description,n.tags.join(" "),n.id);let r=e.prepare("INSERT INTO item_metadata_keys(item_id, key) VALUES (?, ?)");for(let i of Object.keys(n))r.run(n.id,i);let o=e.prepare("INSERT INTO item_linked_files(item_id, path, scope, note) VALUES (?, ?, ?, ?)");for(let i of t.linkedFiles??[])o.run(n.id,i.path,i.scope,i.note??null)}async function Oa(e){let t=gt(e.pmRoot),n=Bt();if(!n){await Je.rm(t,{force:!0});return}await Je.mkdir(Ta.dirname(t),{recursive:!0});let r=`${t}.${vf()}.tmp`,o;try{o=new n(r),If(o),o.exec("BEGIN IMMEDIATE"),Xn(o,"version",Ut),Xn(o,"context_fingerprint",e.contextFingerprint),Xn(o,"source_cursor",e.sourceCursor);for(let i of e.rows)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 Yn(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=Bt();if(!t)return!1;let n=gt(e.pmRoot),r;try{await Je.access(n),r=new t(n),r.exec("PRAGMA foreign_keys = ON");let o=Yn(r);if(o.version!==Ut||o.context_fingerprint!==e.contextFingerprint||o.source_cursor!==e.expectedSourceCursor)return r.close(),!1;r.exec("BEGIN IMMEDIATE");let i=r.prepare("DELETE FROM items WHERE relative_path = ?"),s=r.prepare("SELECT rowid FROM items WHERE relative_path = ?"),a=r.prepare("DELETE FROM item_search WHERE rowid = ?");for(let c of e.deletedRelativePaths??[]){let d=s.get(c);i.run(c),d&&a.run(d.rowid)}return e.row&&Ca(r,e.row),Xn(r,"source_cursor",e.sourceCursor),r.exec("COMMIT"),r.close(),!0}catch{try{r?.exec("ROLLBACK")}catch{}return r?.close(),!1}}function Kn(e,t,n,r,o){!r||r.length===0||(e.push(`${n} ${o} (${r.map(()=>"?").join(", ")})`),t.push(...r))}function Sf(e){let t=[],n=[];Kn(t,n,"status",e.statuses,"IN"),Kn(t,n,"status",e.excludeStatuses,"NOT IN"),Kn(t,n,"type",e.types,"IN"),Kn(t,n,"id",e.ids,"IN");for(let r of e.metadataKeys??[])t.push("EXISTS (SELECT 1 FROM item_metadata_keys AS indexed_key WHERE indexed_key.item_id = items.id AND indexed_key.key = ?)"),n.push(r);for(let[r,o]of[["parent",e.parent],["assignee",e.assignee],["sprint",e.sprint],["release",e.release]])o!==void 0&&(t.push(`${r} = ?`),n.push(o));return e.priority!==void 0&&(t.push("priority = ?"),n.push(e.priority)),{where:t.length===0?"":` WHERE ${t.join(" AND ")}`,parameters:n}}async function dv(e){let t=Bt();if(!t)return null;let n=e.query??{},{where:r,parameters:o}=Sf(n),i;try{i=new t(gt(e.pmRoot),{readOnly:!0});let s=Yn(i);if(s.version!==Ut||s.source_cursor!==e.expectedSourceCursor)return i.close(),null;let a=i.prepare(`SELECT COUNT(*) AS count FROM items${r}`).get(...o),c=[],d="";n.limit!==void 0?(d+=" LIMIT ?",c.push(Math.max(0,Math.floor(n.limit))),n.offset!==void 0&&(d+=" OFFSET ?",c.push(Math.max(0,Math.floor(n.offset))))):n.offset!==void 0&&(d+=" LIMIT -1 OFFSET ?",c.push(Math.max(0,Math.floor(n.offset))));let f=i.prepare(`SELECT metadata_json FROM items${r}
143
+ ORDER BY ${n.terminalStatuses&&n.terminalStatuses.length>0?`CASE WHEN status IN (${n.terminalStatuses.map(()=>"?").join(", ")}) THEN 1 ELSE 0 END ASC, `:""}priority ASC, updated_at DESC, id ASC${d}`).all(...o,...n.terminalStatuses??[],...c).map(m=>{let p=JSON.parse(String(m.metadata_json));if(!p.id)throw new TypeError("Indexed metadata row has no id");return p});return i.close(),{source_cursor:s.source_cursor,total:Number(a.count),items:f}}catch{return i?.close(),null}}async function lv(e){let t=Bt();if(!t||e.paths.length===0)return null;let n;try{n=new t(gt(e.pmRoot),{readOnly:!0});let r=Yn(n);if(r.version!==Ut||r.source_cursor!==e.expectedSourceCursor)return n.close(),null;let o=e.paths.map(()=>"?").join(", "),i=e.scope===void 0?"":" AND scope = ?",s=[...e.paths,...e.scope===void 0?[]:[e.scope]],a=`path IN (${o})${i}`,c=n.prepare(`SELECT COUNT(DISTINCT item_id) AS count
144
+ FROM item_linked_files
145
+ WHERE ${a}`).get(...s),d=Sa(e.limit,50),l=Sa(e.offset,0),f=n.prepare(`SELECT items.id, items.metadata_json
146
+ FROM items
147
+ WHERE EXISTS (
148
+ SELECT 1 FROM item_linked_files
149
+ WHERE item_linked_files.item_id = items.id AND ${a}
150
+ )
151
+ ORDER BY items.priority ASC, items.updated_at DESC, items.id ASC
152
+ LIMIT ? OFFSET ?`).all(...s,d,l),m=[];if(f.length>0){let p=f.map(h=>String(h.id)),_=n.prepare(`SELECT item_id, path, scope, note
153
+ FROM item_linked_files
154
+ WHERE item_id IN (${p.map(()=>"?").join(", ")})
155
+ AND ${a}
156
+ ORDER BY path ASC, scope ASC`).all(...p,...s),g=new Map(p.map(h=>[h,[]]));for(let h of _){let I=String(h.item_id),R=g.get(I);R.push({path:String(h.path),scope:String(h.scope),...h.note===null?{}:{note:String(h.note)}}),g.set(I,R)}for(let h of f){let I=JSON.parse(String(h.metadata_json));m.push({item:I,files:g.get(String(h.id))})}}return n.close(),{source_cursor:r.source_cursor,total:Number(c.count),matches:m}}catch{return n?.close(),null}}async function uv(e){let t=Bt();if(!t)return null;let n;try{n=new t(gt(e.pmRoot),{readOnly:!0});let r=Yn(n);if(r.version!==Ut||r.source_cursor!==e.expectedSourceCursor)return n.close(),null;let i=n.prepare(`SELECT items.metadata_json
157
+ FROM item_search
158
+ JOIN items ON items.id = item_search.id
159
+ WHERE item_search MATCH ?
160
+ ORDER BY bm25(item_search), items.priority, items.updated_at DESC, items.id
161
+ LIMIT ?`).all(e.query,Math.max(0,Math.floor(e.limit))).map(s=>JSON.parse(String(s.metadata_json)));return n.close(),{source_cursor:r.source_cursor,items:i}}catch{return n?.close(),null}}async function Jn(e){await Je.rm(gt(e),{force:!0})}import B from"node:fs/promises";import M from"node:path";import{createHash as 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]="1c60c095-9763-5372-9dc3-c0ea1a5caca6")}catch{}})();var ae=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 an(fe())}function Zn(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 er(e){return M.join(e,"runtime",Of)}function tr(e){return M.join(e,"runtime",xf)}function nr(e){return M.join(e,"runtime",Rf)}function xo(e){return M.join(e,"runtime",Af)}function Ro(e){return M.join(e,"runtime",Df)}function rr(e,t){let n=M.extname(e);return`${e.slice(0,-n.length)}.${t}${n}`}var Lf=24,Z=new Map,or=new WeakMap;function Ao(e){return or.get(e)??e.source_cursor}function Pf(e,t){let n=Ao(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){or.set(e,n);for(let[r,o]of Object.entries(t.changes))o.entry?e.entries[r]=o.entry:delete e.entries[r];e.directory_signatures=t.directory_signatures,e.source_cursor=t.source_cursor}}function Mf(e,t){if(!e)return;let n=Ao(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){or.set(e,n);for(let[r,o]of Object.entries(t.changes))o.body?e.bodies[r]=o.body:delete e.bodies[r];e.source_cursor=t.source_cursor}}function jf(e,t){if(!e)return;let n=Ao(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){or.set(e,n);for(let[r,o]of Object.entries(t.changes))o.collections?e.collections[r]=o.collections:delete e.collections[r];e.source_cursor=t.source_cursor}}function Ff(e,t,n,r){!e||!r||e.context_fingerprint!==r.context_fingerprint||(Pf(e,r),Mf(t,r),jf(n,r))}function Oo(e,t){Z.size>=Lf&&!Z.has(e)&&Li(Z),Z.set(e,t)}async function Re(e,t){let n;try{n=await B.stat(e)}catch{return Z.delete(e),null}let r=Z.get(e);if(r&&Wt(r.signature,n.mtimeMs,n.ctimeMs,n.size))return Z.delete(e),Z.set(e,r),r.envelope;let o;try{o=t(await B.readFile(e,"utf8"))}catch{o=null}return Oo(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!==ae||typeof c.source_cursor!="string"||typeof c.entries!="object"||c.entries===null?null:c},o=er(e),i=await Re(o,r);if(!t||i===null||i.context_fingerprint===t)return i;let s=await Re(rr(o,t),r);return s===null&&Gt(n,`metadata_cache_context_changed:${i.context_fingerprint}->${t}`),s}async function Hf(e,t){let n=i=>{let s=JSON.parse(i);return s.version!==ae||typeof s.source_cursor!="string"||typeof s.bodies!="object"||s.bodies===null?null:s},r=tr(e),o=await Re(r,n);return t&&o?.context_fingerprint!==t?await Re(rr(r,t),n):o}async function zf(e,t){let n=i=>{let s=JSON.parse(i);return s.version!==ae||typeof s.source_cursor!="string"||typeof s.collections!="object"||s.collections===null?null:s},r=nr(e),o=await Re(r,n);return t&&o?.context_fingerprint!==t?await Re(rr(r,t),n):o}async function Do(e){let t=xo(e),n=await Re(t,r=>{let o=JSON.parse(r);return o.version!==ae||typeof o.base_source_cursor!="string"||typeof o.source_cursor!="string"||typeof o.changes!="object"||o.changes===null?null:o});if(n)return{envelope:n,invalid:!1};try{return await B.stat(t),{envelope:null,invalid:!0}}catch{return{envelope:null,invalid:!1}}}async function No(e){let t=Ro(e),n=await Re(t,r=>{let o=JSON.parse(r);return o.version!==ae||typeof o.context_fingerprint!="string"||typeof o.source_cursor!="string"||!Number.isInteger(o.entry_count)||o.entry_count<0||typeof o.directory_signatures!="object"||o.directory_signatures===null?null:o});if(n)return n;try{await B.stat(t),await vt(e)}catch{}return null}async function Vt(e,t){await B.mkdir(M.dirname(e),{recursive:!0}),await X(e,JSON.stringify(t));try{let r=await B.stat(e);Oo(e,{signature:{mtime_ms:r.mtimeMs,ctime_ms:r.ctimeMs,size:r.size},envelope:t})}catch{Z.delete(e)}let n=M.dirname(M.dirname(e));if(e===er(n)||e===tr(n)||e===nr(n)){let r=rr(e,t.context_fingerprint);await X(r,JSON.stringify(t));try{let c=await B.stat(r);Oo(r,{signature:{mtime_ms:c.mtimeMs,ctime_ms:c.ctimeMs,size:c.size},envelope:t})}catch{Z.delete(r)}let o=M.dirname(e),i=M.extname(e),s=M.basename(e,i),a=(await B.readdir(o,{withFileTypes:!0}).catch(()=>[])).filter(c=>c.isFile()&&c.name!==M.basename(e)&&c.name.startsWith(`${s}.`)&&c.name.endsWith(i)).map(c=>M.join(o,c.name));if(a.length>Ra){let c=(await Promise.all(a.map(async d=>{try{return{path:d,mtime:(await B.stat(d)).mtimeMs}}catch{return null}}))).filter(d=>d!==null);for(let d of c.sort((l,f)=>l.mtime-f.mtime).slice(0,Math.max(0,c.length-Ra)))await B.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 Gt(e,t){e&&!e.includes(t)&&e.push(t)}function Wt(e,t,n,r){return e.mtime_ms===t&&e.ctime_ms===n&&e.size===r}async function Bf(e,t,n){let r=M.join(e,t);try{let o=await B.readdir(r);return{folder:t,dirPath:r,files:o}}catch(o){return typeof o=="object"&&o!==null&&"code"in o&&!te(o)&&Gt(n,`item_list_directory_read_failed:${t}`),{folder:t,dirPath:r,files:[]}}}async function Wf(e,t){try{let n=await B.stat(M.join(e,t));return[t,{exists:!0,mtime_ms:n.mtimeMs,ctime_ms:n.ctimeMs,size:n.size}]}catch{return[t,{exists:!1,mtime_ms:0,ctime_ms:0,size:0}]}}async function Qn(e,t){return Object.fromEntries(await Promise.all(t.map(async n=>await Wf(e,n))))}function qt(e,t){return!e||Object.keys(e).length!==Object.keys(t).length?!1:Object.entries(t).every(([n,r])=>{let o=e[n];return o!==void 0&&o.exists===r.exists&&Wt(o,r.mtime_ms,r.ctime_ms,r.size)})}function Vf(e){return dn.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"}))Gt(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 B.stat(e),o=r.mtimeMs,i=r.ctimeMs,{size:s}=r,a=Sr(e);await Gf(e,n.warnings,n.dispatchReadHooks);let c=n.previousEntries[t],d=!n.forceSourceRead&&c!==void 0&&Wt(c,o,i,s),l=n.previousBodies[t],f=!n.forceSourceRead&&l!==void 0&&Wt(l,o,i,s),m=n.previousCollections[t],p=!n.forceSourceRead&&m!==void 0&&Wt(m,o,i,s);if(!(!d||n.includeBody&&!f||n.includeCollections&&!p))return{mtimeMs:o,ctimeMs:i,size:s,itemFormat:a,lightMetadata:c.metadata,heavyMetadata:Aa(n.includeCollections,p,m,void 0),bodyLength:c.body_length,body:n.includeBody?l.body:void 0};let g=await B.readFile(e,"utf8"),h=Tn(g,{format:a,schema:n.schema,extensionFieldNames:n.extensionFieldNames,onWarning:R=>Gt(n.warnings,R)}),I=Zn(h.metadata);return qf(n.state.misses,n.includeBody,n.includeCollections,d,f,p),{mtimeMs:o,ctimeMs:i,size:s,itemFormat:a,lightMetadata:d?c.metadata:I.light,heavyMetadata:Aa(n.includeCollections,p,m,I.heavy),bodyLength:d?c.body_length:h.body.length,body:n.includeBody?h.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{Gt(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||!qt(e.existingCache?.directory_signatures,e.directorySignatures))&&e.existingCache!==null&&e.existingCache.context_fingerprint===e.contextFingerprint))try{await Vt(er(e.pmRoot),{version:ae,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,directory_signatures:e.directorySignatures,entries:e.state.newEntries}),await Vt(Ro(e.pmRoot),{version:ae,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,entry_count:Object.keys(e.state.newEntries).length,directory_signatures:e.directorySignatures});let n=[...e.state.documentsById.values()].map(({candidate:r})=>({relativePath:M.relative(e.pmRoot,r.item_path),metadata:Zn(r.metadata).light,linkedFiles:r.metadata.files??[]}));n.length>=e.minimumIndexedItems?await Oa({pmRoot:e.pmRoot,contextFingerprint:e.contextFingerprint,sourceCursor:e.sourceCursor,rows:n}):await Jn(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 Vt(tr(e.pmRoot),{version:ae,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 Vt(nr(e.pmRoot),{version:ae,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,collections:e.state.newCollections}).catch(()=>{})}async function Lo(e,t,n={}){let r=await No(e);return n.required!==!0&&(r===null||r.entry_count<Pa)?async()=>{}:V(e,Cf,30,t,!1,!1,3e3)}async function Iv(e,t){let n=await No(e);if(n===null)return null;let r=await Do(e);if(r.invalid)return await vt(e),null;let o=r.envelope?.context_fingerprint===n.context_fingerprint&&r.envelope.base_source_cursor===n.source_cursor?r.envelope.source_cursor:n.source_cursor,i=r.envelope?.context_fingerprint===n.context_fingerprint&&r.envelope.base_source_cursor===n.source_cursor?r.envelope.directory_signatures:n.directory_signatures;return t&&!qt(i,await Qn(e,t))?null:{source_cursor:o,entry_count:n.entry_count}}function Da(e,t){let n=M.relative(e,t);return n===""||n===".."||n.startsWith(`..${M.sep}`)||M.isAbsolute(n)?null:n}async function vt(e){await Promise.all([er(e),tr(e),nr(e),xo(e),Ro(e)].map(async t=>{await B.rm(t,{force:!0}),Z.delete(t)})),await Jn(e)}async function im(e){if(e.mutation.document===null)return{entry:null,body:null,collections:null};let t=await B.stat(e.mutation.itemPath),n=Zn(e.mutation.document.metadata),r={mtime_ms:t.mtimeMs,ctime_ms:t.ctimeMs,size:t.size};return{entry:{...r,metadata:n.light,body_length:e.mutation.document.body.length},body:{...r,body:e.mutation.document.body},collections:{...r,collections:n.heavy}}}function sm(e,t,n){return e?.context_fingerprint===t&&e.base_source_cursor===n?structuredClone(e.changes):{}}async function Po(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 vt(e.pmRoot),["metadata_derived_index_path_invalidated"];try{let r=Fa(e.preferredFormat,e.typeToFolder,e.schema,Ma()),o=await No(e.pmRoot);if(o===null||o.context_fingerprint!==r)return[];let i=o.source_cursor,s=await Do(e.pmRoot);if(s.invalid)return await vt(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 Vt(xo(e.pmRoot),{version:ae,context_fingerprint:r,base_source_cursor:i,source_cursor:d,directory_signatures:await Qn(e.pmRoot,[...new Set(Object.values(e.typeToFolder))]),changes:a}),await xa({pmRoot:e.pmRoot,contextFingerprint:r,expectedSourceCursor:c,sourceCursor:d,row:e.document===null?null:{relativePath:t,metadata:Zn(e.document.metadata).light,linkedFiles:e.document.metadata.files},deletedRelativePaths:[...n===void 0?[]:[n],...e.document===null?[t]:[]]})||await Jn(e.pmRoot),[]}catch{return await vt(e.pmRoot).catch(()=>{}),["metadata_derived_index_refresh_failed"]}}function 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=Sr(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||Or()||e.existingCache?.context_fingerprint!==e.contextFingerprint||e.entryKeys.length<e.minimumIndexedItems||!qt(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 ir(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 Do(e);l.invalid&&await vt(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),g=Qf(m,d),h=Zf(p,d),I=[...new Set(Object.values(n))],R=await Qn(e,I),D=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:R,entryKeys:D,minimumIndexedItems:$,includeBody:s,includeCollections:a,previousBodies:g,previousCollections:h}))return dm({pmRoot:e,preferredFormat:t,includeBody:s,includeCollections:a,previousEntries:_,previousBodies:g,previousCollections:h});let x=await Promise.all(I.map(Ct=>Bf(e,Ct,r))),G=Or(),W=em(),Q={pmRoot:e,preferredFormat:t,warnings:r,schema:o,extensionFieldNames:c,includeBody:s,includeCollections:a,forceSourceRead:i.forceSourceScan===!0,dispatchReadHooks:G,previousEntries:_,previousBodies:g,previousCollections:h,state:W};await tm(x,Q);let K=await Qn(e,I),ee=qt(R,K)?K:{},Ze=W.misses.metadata||Object.keys(_).length!==Object.keys(W.newEntries).length||!qt(f?.directory_signatures,ee)||f===null?La():f.source_cursor;return await nm({pmRoot:e,contextFingerprint:d,sourceCursor:Ze,existingCache:f,previousEntries:_,directorySignatures:ee,state:W,minimumIndexedItems:$}),s&&await rm({pmRoot:e,contextFingerprint:d,sourceCursor:Ze,existingBodyCache:m,previousBodies:g,state:W}),a&&await om({pmRoot:e,contextFingerprint:d,sourceCursor:Ze,existingCollectionsCache:p,previousCollections:h,state:W}),am(W)}async function Ha(e,t,n,r,o){return(await ir(e,t,n,r,o,{includeBody:!1})).map(s=>({metadata:s.metadata,body:s.body??""}))}async function za(e,t,n,r,o){return(await ir(e,t,n,r,o,{includeBody:!1,includeCollections:!1})).map(s=>({metadata:s.metadata,body:s.body??""}))}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="59b12366-2f29-5acb-8196-91e9ab183666")}catch{}})();function jo(e,t){return(t===void 0?void 0:Ai(e,t))?.execution_role??Oi[e.trim().toLowerCase()]??"agent"}var Fo="blocked_by",Ua="blocks",um=Object.freeze([Fo,Ua]),Mo="no-active-blocker";function F(e){return e.trim().toLowerCase()}function sr(e,t){return t?`external:${e}`:`local:${F(e)}`}function Kt(e){let t=new Map,n=typeof e.blocked_by=="string"?e.blocked_by.trim():"";if(n.length>0&&F(n)!==Mo){let r=he(n);t.set(sr(n,r),r?n:F(n))}for(let r of e.dependencies??[]){let o=typeof r.id=="string"?r.id.trim():"";if(r.kind===Fo&&o.length>0&&F(o)!==Mo){let i=he(o)||ie(r.source_kind);t.set(sr(o,i),i?o:F(o))}}return[...t.values()].sort((r,o)=>r.localeCompare(o))}function ar(e){let t=new Map;for(let n of e){let r=F(n.id);r.length!==0&&t.set(r,new Set(Kt(n)))}for(let n of e){let r=F(n.id);if(r.length!==0)for(let o of n.dependencies??[]){let i=o.kind===Ua&&typeof o.id=="string"?F(o.id):"";if(i.length===0||i===Mo)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?ar(t).get(n)??Kt(e):Kt(e)}function $o(e,t,n,r){let o=e,i=typeof o.id=="string"?r?.get(F(o.id))??Ba(o,[...t.values()]):Kt(e),s=new Set((e.dependencies??[]).filter(a=>a.kind===Fo&&ie(a.source_kind)&&typeof a.id=="string"&&a.id.trim().length>0).map(a=>sr(a.id.trim(),!0)));return i.map(a=>{if(he(a)||s.has(sr(a,!0)))return{id:a,title:null,status:null,resolved:!1,external:!0,...typeof e.updated_at=="string"?{blocked_since:e.updated_at}:{},resolver:null};let c=t.get(F(a));return c?{id:a,title:c.title,status:c.status,resolved:ye(c.status,n)}:{id:a,title:null,status:null,resolved:!1}})}function fm(e,t,n){return $o(e,t,n)}function mm(e,t){let n=new Map(e.map(s=>[F(s.id),s])),r=ar(e),o=new Set([...Wa(t),...t.blocked_statuses]),i=new Set;for(let s of e){let a=st(s.status,t);if(!o.has(a))continue;(t.blocked_statuses.has(a)||$o(s,n,t,r).some(d=>!d.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(st(s.item.status,t))));let i={ready:[],decisions:[],gates:[]};for(let s of o){let a=jo(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(!ye(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=ar(e);for(let i of e){t.set(F(i.id),i);let s=typeof i.parent=="string"?i.parent.trim():"";if(s.length>0){let a=F(s),c=n.get(a)??[];c.push(i),n.set(a,c)}for(let a of o.get(F(i.id))){let c=F(a),d=r.get(c)??[];d.push(i.id),r.set(c,d)}}return{itemsById:t,childrenByParent:n,blockedByReverse:r,blockerIdsByItem:o}}function 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(h=>!ye(h.status,n)).map(h=>F(h.id))),l=[],f=[],m=[],p=[],_=[],g=0;for(let h of e){if(!c.has(st(h.status,n)))continue;g+=1;let I=$o(h,o,n,a).filter(x=>!x.resolved),R=(s.get(F(h.id))??[]).filter(x=>d.has(F(x))).sort((x,G)=>x.localeCompare(G)),D={item:h,open_blockers:I,unblocks:R};if(pm(h.id,i,n)){m.push(D);continue}let $=n.blocked_statuses.has(st(h.status,n));if(I.length===0&&!$){let x=jo(h.type,r);x==="human"?p.push(D):x==="gate"?_.push(D):l.push(D)}else f.push(D)}return{ready:l,blocked:f,containers:m,decisions:p,gates:_,active_count:g,container_count:m.length}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ae1c56b3-148d-502d-9450-e807fdfab4da")}catch{}})();(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="0a3dd0c1-2dea-5143-a2eb-65e758a0cc71")}catch{}})();function ce(){let e=le();for(let t of fe()?.relationship_kinds??[])for(let n of t.definitions)e.register(n);return e}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="83d1acab-79a1-5e9f-b6a4-97dade07d74a")}catch{}})();function Xt(e){if(typeof e!="string")return;let t=e.trim().toLowerCase();return t.length>0?t:void 0}function cr(e){return[e.parent_id,e.child_id,e.source,e.kind,e.holder_id,e.target_id??""].join("\0")}function 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 vm(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=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 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 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 Va(e){let t=new Map;for(let n of e){let r=Xt(n?.id);r&&!t.has(r)&&t.set(r,n)}return t}function Em(e,t,n){let r=Xt(t.parent);if(!(!r||!n.has(r)))return{parent_id:r,child_id:e,source:"scalar_parent",kind:"parent",holder_id:e,child_cardinality:"one"}}function km(e,t,n,r){let o=Xt(t?.id),i=r.resolve(t?.kind);if(!o||!n.has(o)||!i?.hierarchy)return;let s=i.hierarchyDirection==="source_parent";return{parent_id:s?e:o,child_id:s?o:e,source:"dependency",kind:i.kind,holder_id:e,target_id:o,child_cardinality:s?i.incoming:i.outgoing}}function qa(e,t){let n=new Map;for(let[r,o]of e){let i=Em(r,o,e);i&&n.set(cr(i),i);for(let s of o.dependencies??[]){let a=km(r,s,e,t);a&&n.set(cr(a),a)}}return[...n.values()].sort((r,o)=>cr(r).localeCompare(cr(o)))}function Fv(e,t=ce()){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=Xt(s.parent);if(!a||!e.has(a))continue;let c=[...r.get(i)??[]].filter(d=>d!==a).sort();c.length!==0&&o.push({child_id:i,scalar_parent_id:a,dependency_parent_ids:c,legacy_terminal:n.has(i)&&n.has(a)&&c.every(d=>n.has(d))})}return o.sort((i,s)=>i.child_id.localeCompare(s.child_id))}function dr(e,t=r=>r==="closed"||r==="canceled",n=ce()){let r=Va(e),o=qa(r,n),i=Tm(o),s=new Set([...r].filter(([,c])=>t(c.status)).map(([c])=>c)),a=vm([...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 $v(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 Ho(e,t){let n=new Set(t);return e.every(r=>n.has(r))}function Hv(e,t,n,r,o){let i=Xt(n);if(!i)return;let s=dr(e,r,o),a=dr(t,r,o),c=a.divergences.find(f=>!s.divergences.some(m=>m.child_id===f.child_id&&m.scalar_parent_id===f.scalar_parent_id&&Ho(f.dependency_parent_ids,m.dependency_parent_ids)));if(c){let f=[c.scalar_parent_id,...c.dependency_parent_ids].sort();throw new v(`Hierarchy mutation would assign ${c.child_id} to multiple parents: ${f.join(", ")}.`,w.CONFLICT,{code:"hierarchy_parent_divergence_created",source_id:i,target_id:c.child_id,verification_errors:f})}let d=a.cardinality_violations.find(f=>(f.child_id===i||f.parent_ids.includes(i))&&!s.cardinality_violations.some(m=>m.child_id===f.child_id&&Ho(f.parent_ids,m.parent_ids)));if(d)throw new v(`Hierarchy mutation would assign ${d.child_id} to multiple parents: ${d.parent_ids.join(", ")}.`,w.CONFLICT,{code:"hierarchy_cardinality_created",source_id:i,target_id:d.child_id,verification_errors:d.parent_ids});let l=a.cycles.find(f=>f.item_ids.includes(i)&&!s.cycles.some(m=>Ho(f.item_ids,m.item_ids)));if(l)throw new v(`Hierarchy mutation would create a cycle: ${l.item_ids.join(" -> ")}.`,w.CONFLICT,{code:"hierarchy_cycle_created",source_id:i,verification_errors:l.item_ids})}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="fdd874ad-e51d-5df2-9486-a0465ad65979")}catch{}})();var Cm="global";function Vv(e){let t=e?.trim();if(t)return ie(t)?Cm:t}function qv(e,t,n){return Om(e,t,n)}function Om(e,t,n){let r=e.trim();return ie(n)||he(r)?r:Ye(r,t)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="06ecc7a4-c593-5d99-89f5-714a4590d0a5")}catch{}})();function bt(e){if(typeof e!="string")return;let t=e.trim();if(!(!t||["none","null","n/a","na"].includes(t.toLowerCase())))return t}function Yt(e){let t=bt(e);return t?.toLowerCase()==="no-active-blocker"?void 0:t}function Jt(e,t,n=!0){let r=bt(e);return n&&(ie(t)||r!==void 0&&he(r))}function zo(e,t){return Jt(e,t)?`external\0${e}`:`local\0${e.toLowerCase()}`}function Ga(e,t,n,r){return Jt(e,t)?r.get(e):n.get(e.toLowerCase())}function wt(e,t){let n=e.toLowerCase(),r=t.toLowerCase();return n!==r?n<r?-1:1:e!==t?e<t?-1:1:0}function 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${zo(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=wt(r.holder_id,o.holder_id);if(i!==0)return i;let s=wt(r.target_id,o.target_id);return s!==0?s:wt(r.kind,o.kind)})}function Am(e,t,n,r,o){if(typeof n!="object"||n===null)return;let i=bt(n.id);if(!i||zo(i,n.source_kind)!==zo(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=ce()){let r=new Map;for(let o of e){if(typeof o?.id!="string"||o.id.trim().length===0)continue;let i=bt(o.blocked_by);if(i)for(let s of o.dependencies??[]){let a=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=wt(o.holder_id,i.holder_id);if(s!==0)return s;let a=wt(o.target_id,i.target_id);return a!==0?a:wt(o.dependency_kind,i.dependency_kind)})}function Uo(e,t=n=>n==="closed"||n==="canceled"){let n=e.filter(c=>typeof c?.id=="string"&&c.id.trim().length>0),r=new Set(n.map(c=>c.id.trim().toLowerCase())),o=new Map,i=(c,d,l,f,m)=>{let p=bt(d);if(!p||r.has(p.toLowerCase())||Jt(p,void 0,m))return;let _={holder_id:c.id.trim(),target_id:p,kind:l,source:f,holder_status:c.status,legacy_terminal:t(c.status),no_active_blocker_sentinel:p.toLowerCase()==="no-active-blocker"};o.set(`${_.holder_id}::${_.target_id}::${_.kind}::${_.source}`,_)};for(let c of n){i(c,c.parent,"parent","parent",!1),i(c,c.blocked_by,"blocked_by","blocked_by",!0);for(let d of c.dependencies??[]){if(typeof d!="object"||d===null)continue;let l=d;ie(l.source_kind)||i(c,l.id,typeof l.kind=="string"?l.kind:"related","dependency",!0)}}let s=[...o.values()].sort((c,d)=>c.holder_id.localeCompare(d.holder_id)||c.target_id.localeCompare(d.target_id)||c.kind.localeCompare(d.kind)||c.source.localeCompare(d.source)),a=s.filter(c=>c.legacy_terminal);return{active:s.filter(c=>!c.legacy_terminal),legacy_terminal:a,no_active_blocker_sentinels:s.filter(c=>c.no_active_blocker_sentinel)}}function 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=Yt(n.blocked_by);r&&Jt(r)&&!t.has(r)&&t.set(r,r);for(let o of n.dependencies??[]){if(typeof o!="object"||o===null||!Jt(o.id,o.source_kind))continue;let i=Yt(o.id);i&&!t.has(i)&&t.set(i,i)}}return[...t.values()].sort((n,r)=>n.localeCompare(r))}var Ka=new WeakMap;function Zv(e){return e.hierarchyIntegrity??Ka.get(e)}function Pm(e,t=ce()){let n={};for(let r of e)for(let o of r.dependencies??[]){if(typeof o!="object"||o===null)continue;let i=o.kind;if(typeof i!="string")continue;let s=i.trim().toLowerCase().replaceAll("-","_"),a=t.resolve(i);a&&s!==a.kind&&(n[s]=(n[s]??0)+1)}return Object.fromEntries(Object.entries(n).sort(([r],[o])=>r.localeCompare(o)))}function lr(e,t,n){let r=n??ce(),o=e.filter(_=>typeof _?.id=="string"&&_.id.trim().length>0),i=new Map(o.map(_=>[_.id.trim().toLowerCase(),_.id.trim()])),s=Uo(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 g=_;for(;d.has(g.toLowerCase());)g=`external:${g}`;l.set(_,g),d.add(g.toLowerCase())}let f=o.map(_=>{let g=Yt(_.parent),h=Yt(_.blocked_by),I=(_.dependencies??[]).flatMap(R=>{if(typeof R!="object"||R===null)return[];let D=R,$=Yt(D.id);return $?[{id:Ga($,D.source_kind,i,l),kind:typeof D.kind=="string"?D.kind:"related"}]:[]});return{id:_.id.trim(),...g?{parent:i.get(g.toLowerCase())}:{},...h?{blocked_by:Ga(h,void 0,i,l)}:{},dependencies:I}}),m=dr(o,t,r),p={graph:Ei.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]="10f534cf-ee82-54a2-9807-390eca5fb0b8")}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=le()){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=>N(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 Bo=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 Bo;function Qa(){return Ja}function ow(){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]="47b3091f-a1a8-503c-83e9-46b85adf4207")}catch{}})();var Hm=["prerequisite","dependent","ancestor","descendant","provenance","related"],zm=new TextEncoder;function Wo(e,t,n){let r=e??t;if(!Number.isInteger(r)||r<1)throw new TypeError(`Relationship context ${n} must be positive`);return r}function ur(e){return Math.max(1,Math.ceil(zm.encode(JSON.stringify(e)).byteLength/4))}function Vo(e,t,n){let r=n.resolve(e.kind);if(r?.ordering){let i=(r.precedence??"source_before_target")==="source_before_target"?e.source:e.target;return t===i?"prerequisite":"dependent"}if(r?.hierarchy){let i=r.hierarchyDirection==="source_parent"?e.source:e.target;return t===i?"ancestor":"descendant"}return e.kind==="discovered_from"||e.kind==="incident_from"?"provenance":"related"}function Um(e,t,n,r){let o=e.filter(i=>i.source===t&&i.target===n||i.target===t&&i.source===n).map(i=>Vo(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:g}of p.value){if(s.has(_))continue;s.add(_);let h={id:_,distance:m.distance+1,via:m.id,role:Vo(g,_,n)};c.push(h),a.push(h)}}return c.sort((f,m)=>f.distance-m.distance||f.id.localeCompare(m.id)),{rows:c,visitedNodes:a.length,inspectedEdges:d,depthTruncated:l}}function 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[Vo(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=ur(i);if(n+s>e.tokenBudget)break;t.push(i),n+=s}if(e.candidates.length>0&&t.length===0)throw new TypeError("Relationship context tokenBudget cannot fit one node");return{nodes:t,usedTokens:n}}function 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=ur(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=Wo(r.nodeLimit,20,"nodeLimit"),i=Wo(r.edgeLimit,40,"edgeLimit"),s=Wo(r.tokenBudget,1200,"tokenBudget"),a=r.registry??le(),c=new Map(n.map(et=>[et.id,et])),d=c.get(t)??{id:t},{evidence:l=[],...f}=d,m=[...l],p=Wm(e,t,a,r),{rootEdges:_,...g}=Vm(e,t,a,r),h=Wi("relationship-context",{rootId:t,direction:r.direction??"both",kinds:[...r.kinds??[]].sort(),maxDepth:r.maxDepth??3}),I=qi(p.rows,r.cursor,h,({id:et})=>et),R=p.rows.slice(I),D=ur(f)+ur(m);if(D>s)throw new TypeError("Relationship context tokenBudget cannot fit root and evidence");let $=qm({candidates:R,details:c,rootEdges:_,rootId:t,registry:a,nodeLimit:o,tokenBudget:s,initialTokens:D}),{nodes:x}=$,G=new Set([t,...x.map(({id:et})=>et)]),W=Gm({graph:e,included:G,options:r,registry:a,edgeLimit:i,tokenBudget:s,initialTokens:$.usedTokens}),{edges:Q,usedTokens:K}=W,ee=I+x.length,we=ee<p.rows.length,Ze=x.at(-1),Ct=W.candidateCount-Q.length,_i=p.depthTruncated||we||Ct>0,qc={rootId:t,...f.status===void 0?{}:{rootStatus:f.status},...g,discoveredNodes:p.rows.length,returnedNodes:x.length,returnedEdges:Q.length,omittedNodes:p.rows.length-ee,omittedEdges:Ct,evidenceCount:m.length,hasMore:we};return{root:f,summary:qc,nodes:x,edges:Q,evidence:m,meta:{exact:!0,truncated:_i,completeness:_i?"truncated":"complete",nodeLimit:o,edgeLimit:i,tokenBudget:s,usedTokens:K,visitedNodes:p.visitedNodes,inspectedEdges:p.inspectedEdges,omittedNodes:p.rows.length-ee,omittedEdges:Ct,...we&&Ze?{nextCursor:Vi(h,Ze.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]="245ec731-790e-55ae-9bb6-3eeaaefe27ee")}catch{}})();var U={ok:!1},y=e=>typeof e=="string"?{ok:!0,value:e}:U,O=e=>typeof e=="boolean"?{ok:!0,value:e}:U;function L(e={}){return t=>typeof t!="number"||!Number.isFinite(t)||e.int&&(!Number.isInteger(t)||!Number.isSafeInteger(t))||e.positive&&t<=0||typeof e.min=="number"&&t<e.min||typeof e.max=="number"&&t>e.max?U:{ok:!0,value:t}}function A(...e){return t=>typeof t=="string"&&e.includes(t)?{ok:!0,value:t}:U}function b(e,t){return n=>{if(!Array.isArray(n)||t!==void 0&&n.length>t)return U;let r=[];for(let o of n){let i=e(o);if(!i.ok)return U;r.push(i.value)}return{ok:!0,value:r}}}function Go(e,t){return n=>typeof n=="string"&&n.length>0&&n.length<=e&&n===n.trim()&&(t===void 0||t.test(n))?{ok:!0,value:n}:U}function u(e){return t=>t===void 0?{ok:!0,value:void 0}:e(t)}function fr(e){return t=>{if(typeof t!="object"||t===null||Array.isArray(t))return U;let n={};for(let[r,o]of Object.entries(t)){let i=e(o);if(!i.ok)return U;n[r]=i.value}return{ok:!0,value:n}}}function C(e){return t=>{if(typeof t!="object"||t===null||Array.isArray(t))return U;let n=t,r={};for(let[o,i]of Object.entries(e)){let s=i(n[o]);if(!s.ok)return U;s.value!==void 0&&(r[o]=s.value)}return{ok:!0,value:r}}}var Km=C({key:y,values:b(y),required:u(O),aliases:u(b(y)),description:u(y)}),Xm=C({command:A("create","update"),option:y,required:u(O),visible:u(O),enabled:u(O)}),Ym=C({name:y,description:u(y),default_status:u(y),execution_role:u(A("agent","human","gate")),folder:u(y),aliases:u(b(y)),required_create_fields:u(b(y)),required_create_repeatables:u(b(y)),options:u(b(Km)),command_option_policies:u(b(Xm))}),Jm=C({id:y,aliases:u(b(y)),roles:u(b(A(...pi))),description:u(y),order:u(L())}),Qm=C({key:y,metadata_key:u(y),front_matter_key:u(y),cli_flag:u(y),cli_aliases:u(b(y)),description:u(y),type:u(A(...hi)),commands:u(b(A(...yi))),repeatable:u(O),required:u(O),required_on_create:u(O),required_types:u(b(y)),allow_unset:u(O)}),Zm=e=>{if(!Array.isArray(e)||e.length!==2)return U;let[t,n]=e;return typeof t!="string"||typeof n!="string"?U:{ok:!0,value:[t,n]}},e_=C({type:y,allowed_transitions:b(Zm)}),t_=u(C({version:u(L({int:!0})),files:u(C({types:u(y),statuses:u(y),fields:u(y),workflows:u(y)})),statuses:u(b(Jm)),fields:u(b(Qm)),workflow:u(C({draft_status:u(y),open_status:u(y),in_progress_status:u(y),blocked_status:u(y),close_status:u(y),canceled_status:u(y)})),type_workflows:u(b(e_)),unknown_field_policy:u(A(...gi))})),n_=u(C({preset:u(A(...vi)),ownership_enforcement:u(A("none","warn","strict")),create_mode_default:u(A("progressive","strict")),close_validation_default:u(A("off","warn","strict")),require_close_reason:u(O),parent_reference:u(A("warn","strict_error")),metadata_profile:u(A("core","strict","custom")),force_required_for_stale_lock:u(O),create_default_type:u(y),workflow_enforcement:u(A("off","warn","strict")),duplicate_detection_mode:u(A("off","advisory","strict")),duplicate_detection_threshold:u(L({min:0,max:1})),duplicate_detection_limit:u(L({int:!0,min:0,max:20}))})),r_=C({name:y,disabled:u(O),require_trusted:u(O),require_provenance:u(O),sandbox_profile:u(A("none","restricted","strict")),allowed_capabilities:u(b(y)),blocked_capabilities:u(b(y)),allowed_surfaces:u(b(y)),blocked_surfaces:u(b(y)),allowed_commands:u(b(y)),blocked_commands:u(b(y)),allowed_actions:u(b(y)),blocked_actions:u(b(y)),allowed_services:u(b(y)),blocked_services:u(b(y))}),qo=A("block","warn"),o_=e=>typeof e=="string"?qo(e):C({global:u(qo),project:u(qo)})(e),i_=u(C({mode:u(A("off","warn","enforce")),trust_mode:u(A("off","warn","enforce")),pm_max_version_exceeded_mode:u(o_),require_provenance:u(O),trusted_extensions:u(b(y)),default_sandbox_profile:u(A("none","restricted","strict")),allowed_extensions:u(b(y)),blocked_extensions:u(b(y)),allowed_capabilities:u(b(y)),blocked_capabilities:u(b(y)),allowed_surfaces:u(b(y)),blocked_surfaces:u(b(y)),allowed_commands:u(b(y)),blocked_commands:u(b(y)),allowed_actions:u(b(y)),blocked_actions:u(b(y)),allowed_services:u(b(y)),blocked_services:u(b(y)),extension_overrides:u(b(r_))})),Qe=Go(128),s_=C({harness:Go(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u),environment_keys:u(b(Qe,64)),model_environment_keys:u(b(Qe,64)),session_environment_keys:u(b(Qe,64)),provenance_environment_keys:u(fr(b(Qe,64))),provenance_resolvers:u(fr(A("ai_agent_version","claude_session_file"))),provenance_unavailable_dimensions:u(b(Qe,64)),argv_markers:u(b(Qe,64)),client_names:u(b(Qe,64))}),a_=C({version:L({int:!0}),id_prefix:y,ids:u(C({token_length:u(L({int:!0,min:4,max:12}))})),author_default:y,agent_identity:u(C({probes_enabled:u(O),identity_vocabulary:u(C({version:L({int:!0,positive:!0}),aliases:fr(Go(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u))})),harness_signals:b(s_)})),mutation_guard:u(C({require_attributed_author:u(O),secret_guard:u(A("off","advise","block")),stale_in_progress_hours:u(L({int:!0,positive:!0}))})),item_format:u(A("toon","json_markdown")),locks:C({ttl_seconds:L({int:!0}),wait_ms:u(L({int:!0,min:0}))}),checkpoints:u(C({retention_days:u(L({int:!0,positive:!0}))})),output:C({default_format:A("toon","json")}),ux:u(C({deprecation_hints:u(O)})),history:u(C({missing_stream:A("auto_create","strict_error"),compact_policy:u(C({enabled:u(O),max_entries:u(L({int:!0,positive:!0})),trigger:u(A("health_warn","auto"))}))})),validation:u(C({sprint_release_format:A("warn","strict_error"),parent_reference:u(A("warn","strict_error")),metadata_profile:u(A("core","strict","custom")),metadata_required_fields:u(b(y)),lifecycle_stale_blocker_reason_patterns:u(b(y)),lifecycle_closure_like_blocked_reason_patterns:u(b(y)),lifecycle_closure_like_resolution_patterns:u(b(y)),lifecycle_closure_like_actual_result_patterns:u(b(y)),estimate_defaults_by_type:u(fr(L({int:!0,positive:!0})))})),governance:n_,workflow:u(C({definition_of_done:b(y)})),testing:u(C({record_results_to_items:O,allow_untrusted_linked_tests:u(O)})),telemetry:u(C({enabled:O,first_run_prompt_completed:u(O),capture_level:u(A("minimal","redacted","max")),endpoint:u(y),installation_id:u(y),retention_days:u(L({int:!0,positive:!0}))})),agent_guidance:u(C({prompt_completed:u(O),declined:u(O),declined_at:u(y),template_version:u(L({int:!0,positive:!0})),last_checked_files:u(b(y))})),item_types:u(C({definitions:b(Ym)})),schema:t_,context:u(C({default_depth:u(A("brief","standard","deep")),activity_limit:u(L({int:!0,positive:!0})),stale_threshold_days:u(L({int:!0,positive:!0})),sections:u(C({hierarchy:u(O),activity:u(O),progress:u(O),recently_created:u(O),unparented:u(O),blockers:u(O),files:u(O),workload:u(O),staleness:u(O),tests:u(O)}))})),extensions:C({enabled:b(y),disabled:b(y),policy:i_}),search:C({score_threshold:L(),hybrid_semantic_weight:u(L()),max_results:L({int:!0}),embedding_model:y,embedding_corpus_max_characters:u(L()),embedding_batch_size:L({int:!0}),embedding_timeout_ms:u(L({int:!0})),scanner_max_batch_retries:L({int:!0}),provider:u(y),default_mode:u(A("auto","keyword","semantic","hybrid")),corpus_fields:u(b(y)),mutation_refresh_policy:u(A("cache_only","semantic_configured","semantic_auto")),query_expansion:u(C({enabled:u(O),provider:u(y)})),rerank:u(C({enabled:u(O),model:u(y),top_k:u(L({int:!0,positive:!0}))})),bm25:u(C({k1:u(L()),b:u(L())}))}),providers:C({openai:C({base_url:y,api_key:y,model:y}),ollama:C({base_url:y,model:y})}),vector_store:C({adapter:u(y),collection_name:u(y),qdrant:C({url:y,api_key:y}),lancedb:C({path:y})})});function Ko(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]="e2270ad2-349e-5e8c-b23c-3cf0645907dc")}catch{}})();function mr(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Xo(e,t,n,r=[]){if(oe(e,t)&&(r.length>0||mr(n)))return n;if(oe(e,n)||oe(t,n))return t;if((e===void 0||mr(e))&&mr(t)&&mr(n)){let o=e??{},i=new Set([...Object.keys(o),...Object.keys(t),...Object.keys(n)]);return Object.fromEntries([...i].flatMap(s=>{let a=Xo(Object.hasOwn(o,s)?o[s]:void 0,Object.hasOwn(t,s)?t[s]:void 0,Object.hasOwn(n,s)?n[s]:void 0,[...r,s]);return a===void 0?[]:[[s,a]]}))}throw new v(`Settings changed concurrently at ${r.join(".")||"<root>"}; read the latest settings and reapply the intended change.`,w.CONFLICT,{reason:"stale_settings_snapshot",required:"Read a fresh settings snapshot and reapply the intended change.",why:"Another writer changed the same setting after this snapshot was read.",examples:["pm config project export --json"],nextSteps:["Read the current settings, then retry the original config operation."]})}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="833a4f8a-7e5d-5480-a526-4e1ebaadd0a8")}catch{}})();var c_={Epic:2880,Feature:480,Story:480,Milestone:2880,Task:120,Issue:60,Bug:60,Chore:30,Decision:15,Plan:120},ec=120;function Yo(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 pw(e,t){let n=(e??"").trim().toLowerCase();if(n.length===0)return ec;if(t){let o=l_(t).get(n);if(Yo(o))return Math.floor(o)}let r=d_.get(n);return Yo(r)?Math.floor(r):ec}function Jo(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||!Yo(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]="7c23ef10-ea7a-5680-8850-822e7d0c07a6")}catch{}})();var _r=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 Qt(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1){let r=e[n],o=t[n];if(r.path!==o.path||r.mtime_ms!==o.mtime_ms||r.size!==o.size)return!1}return!0}function oc(e){return _r.get(e)}function pr(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));_r.set(e,{tracked_paths:n,signatures:r,value:t.value})}function De(e){if(e){_r.delete(e);return}_r.clear()}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="e864ede2-042e-5ff7-96cc-1446c86d5103")}catch{}})();var ti=new m_;async function Mw(e,t,n=()=>!0){let r=new Set([lc.resolve(e)]);try{r.add(await dc(e))}catch{}return ti.run([...ti.getStore()??[],[r,n]],t)}function p_(e){let t=lc.resolve(e);return ti.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(bi[e])}function v_(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 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),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 gr(e){let t=e.governance??{},n=v_(t.preset),r=b_(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 vc(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 n=e.trim().replaceAll(/[^a-zA-Z0-9_-]/g,"_").slice(0,y_);return n.length>0?n:k.vector_store.collection_name}function Qo(e){return{present:Array.isArray(e),values:Array.isArray(e)?structuredClone(e):[]}}function bc(e,t){let n=e.schema,r=Qo(n?.statuses),o=Qo(n?.fields),i=Qo(n?.type_workflows);return{persisted_settings:structuredClone(e),source_settings:structuredClone(e),has_source_item_type_definitions:Array.isArray(e.item_types?.definitions),source_item_type_definitions:Et(e.item_types?.definitions),has_source_schema_statuses:r.present,source_schema_statuses:r.values,has_source_schema_fields:o.present,source_schema_fields:o.values,has_source_schema_type_workflows:i.present,source_schema_type_workflows:i.values,runtime_item_type_definitions:Et(t.item_types?.definitions),runtime_schema_statuses:structuredClone(t.schema.statuses),runtime_schema_fields:structuredClone(t.schema.fields),runtime_schema_type_workflows:structuredClone(t.schema.type_workflows??[])}}function oi(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 hr(e){let t=structuredClone(e.settings),n=Ec(e.settings);return n&&oi(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=xt(t);return[n,Rt(e,r.files.types,Ot.types),Rt(e,r.files.statuses,Ot.statuses),Rt(e,r.files.fields,Ot.fields),Rt(e,r.files.workflows,Ot.workflows)]}async function k_(e,t,n){let r=await Ae(t);pr(e,{tracked_paths:t,signatures:r,value:hr(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||!Qt([o],[i]))return!1}return!0}async function Zo(e,t,n,r,o){try{let i=await Ae(t);if(!S_(r,i,o)){De(e);return}pr(e,{tracked_paths:t,signatures:i,value:hr(n)})}catch{De(e)}}function T_(e,t){let n=xt(e.schema),r=Et(e.item_types?.definitions);if(!t)return{item_type_definitions:r,schema_statuses:n.statuses,schema_fields:n.fields,schema_type_workflows:n.type_workflows};let o=n.type_workflows??[],i=oe(r,t.runtime_item_type_definitions),s=oe(n.statuses,t.runtime_schema_statuses),a=oe(n.fields,t.runtime_schema_fields),c=oe(o,t.runtime_schema_type_workflows);return{item_type_definitions:i?t.has_source_item_type_definitions?Et(t.source_item_type_definitions):[]:r,schema_statuses:s?t.has_source_schema_statuses?structuredClone(t.source_schema_statuses):[]:n.statuses,schema_fields:a?t.has_source_schema_fields?structuredClone(t.source_schema_fields):[]:n.fields,schema_type_workflows:c?t.has_source_schema_type_workflows?structuredClone(t.source_schema_type_workflows):void 0:n.type_workflows}}function de(e){return{settings: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 ni(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:ni(e?.last_checked_files??t.last_checked_files)}}function re(e){return[...new Set((e??[]).map(t=>t.trim().toLowerCase()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function 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=re(e.allowed_capabilities),o=re(e.blocked_capabilities),i=re(e.allowed_surfaces),s=re(e.blocked_surfaces),a=re(e.allowed_commands),c=re(e.blocked_commands),d=re(e.allowed_actions),l=re(e.blocked_actions),f=re(e.allowed_services),m=re(e.blocked_services);return r.length>0&&(n.allowed_capabilities=r),o.length>0&&(n.blocked_capabilities=o),i.length>0&&(n.allowed_surfaces=i),s.length>0&&(n.blocked_surfaces=s),a.length>0&&(n.allowed_commands=a),c.length>0&&(n.blocked_commands=c),d.length>0&&(n.allowed_actions=d),l.length>0&&(n.blocked_actions=l),f.length>0&&(n.allowed_services=f),m.length>0&&(n.blocked_services=m),n}function 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 ei(e){return e==="block"||e==="warn"?e:void 0}function A_(e){if(typeof e=="string")return ei(e);if(typeof e=="object"&&e!==null&&!Array.isArray(e)){let t=ei(e.global),n=ei(e.project);return t===void 0&&n===void 0?void 0:{...t!==void 0?{global:t}:{},...n!==void 0?{project:n}:{}}}}function Y(e,t){return re(e?.[t]??k.extensions.policy[t])}function 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(n=>n.trim().toLowerCase().replaceAll("-","_")))].filter(n=>n.length>0).sort((n,r)=>n.localeCompare(r)).filter(n=>["author","acceptance_criteria","estimated_minutes","close_reason","reviewer","risk","confidence","sprint","release"].includes(n))}function Ne(e){return[...new Set((e??[]).map(t=>t.trim().toLowerCase()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function H(e,t){return e===void 0?t:e}function J(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:{}}function ri(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:Jo(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:vc(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 Et(e){let t=(e??[]).map(r=>Ci(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 yr(e){let t=fc(),n=gr({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:Et(e.item_types?.definitions)},schema:xt(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=ri(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=ri(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:Jo(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:vc(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:ni(e.extensions?.enabled),disabled:ni(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(!oe(i,s)){if(s===void 0){delete e[o];continue}if(typeof i=="object"&&i!==null&&!Array.isArray(i)&&typeof s=="object"&&s!==null&&!Array.isArray(s)){let a=e[o],c=typeof a=="object"&&a!==null&&!Array.isArray(a)?a:{};xc(c,i,s),Object.keys(c).length>0?e[o]=c:delete e[o];continue}e[o]=structuredClone(s)}}}var ii=["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=gr(n),o=xt(n.schema),i=T_(n,t),s=V_(n,r,o,i),a=T({...s,governance:w_(r)},ii);return $_(a),a}function q_(e,t={}){let n=t.source===void 0?t.persist_source:bc(t.source.validated,yr(t.source.validated)),r=cc(e,n);if(n){let o=yr(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,ii),null,2)}
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 de();throw a}let n=tt(t),r;try{r=await __(n)}catch(a){if(Fe(a))return de();throw a}if(!r.isFile())throw new TypeError(`Transaction preview requires regular files and directories: ${n}`);let o;try{o=await Ii(n,`Transaction preview requires regular files and directories: ${n}`)}catch(a){if(Fe(a))return de();throw a}let i;try{i=JSON.parse(o)}catch{return de("settings_read_invalid_json")}let s=Ko(i);return s.success?{settings:yr(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"]:[]}:de("settings_read_invalid_schema")}async function Rc(e){if(p_(e))return G_(e);let t=tt(e),n=[t];await ke({path:t,scope:"project"});let r=oc(e);if(r){let d=await Ae(r.tracked_paths);if(Qt(d,r.signatures))return hr(r.value)}let o=await Ae([t]),i;try{i=await Ee(t)}catch{return de("settings_read_fs_error")}if(i===null){let d=de();return await Zo(e,[t],d,o,[t]),d}let s=await Ae([t]);if(!Qt(o,s))return De(e),Rc(e);let a;try{a=JSON.parse(i)}catch{let d=de("settings_read_invalid_json");return await Zo(e,[t],d,s,[t]),d}let c=Ko(a);if(!c.success){let d=de("settings_read_invalid_schema");return await Zo(e,[t],d,s,[t]),d}try{let d=yr(c.data),l=E_(e,d.schema,t);n=l;let f=await Ae(l),m=await Pi(e,d.schema),p=await Mi(e,d.schema),_=await Ae(l),g={...d,item_types:{definitions:Et([...d.item_types.definitions,...ri(p.type_definitions_from_file)])},schema:p.schema};oi(g,bc(c.data,g));let h={settings:g,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(I=>`runtime_schema_bootstrap_created:${I}`),...p.warnings]};return m.created_paths.length===0?Qt(f,_)?pr(e,{tracked_paths:l,signatures:_,value:hr(h)}):De(e):De(e),h}catch{let d=de("settings_read_merge_failed");return await I_(e,n,d),d}}async function Ac(e){return(await Rc(e)).settings}async function jw(e,t,n=h_){let r=tt(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 v("Existing settings.json is malformed; the settings write was refused.",w.USAGE,{code:"settings_write_invalid_existing_json",reason:"existing_settings_json_malformed",why:"Writing defaults over malformed settings could destroy intended project configuration.",nextSteps:["Repair the syntax in .agents/pm/settings.json, then retry the original command.","Run pm health to confirm the settings warning has cleared."]})}return{raw:o?`${JSON.stringify(T(Xo(o.persisted_settings,s,c),ii),null,2)}
164
+ `:i,result:void 0}},op:n,author:gs(void 0,t.author_default),lockTtlSeconds:t.locks.ttl_seconds,lockWaitMs:t.locks.wait_ms,recordCreation:!1}),o&&oi(t,{...o,persisted_settings:structuredClone(s)}),await me({path:r,scope:"project",op:n})}finally{De(e)}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="cb2116ab-6343-5ce0-b0cd-aa98fc79976e")}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:en(n,o.toLowerCase(),r)??Number.POSITIVE_INFINITY})).filter(({distance:o})=>Number.isFinite(o)).sort((o,i)=>o.distance!==i.distance?o.distance-i.distance:o.candidate.localeCompare(i.candidate))[0]?.candidate}function Dc(e){return["pm",...e].map(t=>/^[A-Za-z0-9_./:@=-]+$/u.test(t)?t:JSON.stringify(t)).join(" ")}function Uw(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 v(`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]="99eadab1-5338-5d75-b600-fa0463053375")}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 v(`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 ki(Y_.dirname(e)),await(await X_.open(e,"a")).close(),me({path:e,scope:"project",op:`${t}:history:auto_create`})}async function si(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=ue(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]="cb9a55d6-9ba9-50af-a54f-2bba5d076fdb")}catch{}})();function Zt(e,t=!1){let n=e[0];if(n?.op!=="history_compact_baseline")return 0;let r=n.context?.history_compaction,o=typeof r=="object"&&r!==null&&"version_offset"in r?r.version_offset:void 0;if(typeof o=="number"&&Number.isSafeInteger(o)&&o>=0&&Number.isSafeInteger(o+e.length))return o;if(t)return null;throw new v("This compacted stream has no trustworthy version offset; numeric history addresses are unavailable.",w.USAGE,{code:"history_version_mapping_unavailable",required:"Use a retained timestamp or recover the pre-compaction stream from version control.",nextSteps:["Run pm history <id> --full to inspect the retained timestamps and checkpoint evidence."]})}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="8835b501-34c7-51ba-b02e-782f8a457e1b")}catch{}})();function tp(e,t){let n=-1;return e.forEach((r,o)=>{let i=Date.parse(r.ts);if(!Number.isFinite(i))throw new v(`History for this item contains invalid timestamp at entry ${o+1}.`,w.GENERIC_FAILURE);i<=t&&(n=o)}),n}function 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,Zt(t,!0));if(!r)throw new v(`Missing ${o} target. Use a timestamp or version number.`,w.USAGE,s);if(/^\d+$/.test(r)){let l=Zt(t),f=Number(r);if(f>=1&&f<=l)throw new v(`History version ${f} was pruned by compaction.`,w.USAGE,{...s,code:"history_version_pruned"});if(!Number.isSafeInteger(f)||f<1||f>l+t.length)throw new v(`${i} version must be between ${l+1} and ${l+t.length} for this item.`,w.USAGE,s);return{kind:"version",raw:r,historyIndex:f-l-1}}let c=Date.parse(r);if(!Number.isFinite(c))throw new v(`Invalid ${o} target "${e}". Use a positive version number or ISO timestamp.`,w.USAGE,s);let d=tp(t,c);if(d<0||n.allowFutureTimestamp!==!0&&c>Date.parse(a))throw new v(o==="restore"?`No history entries exist at or before timestamp ${r}.`:`No history entry exists at timestamp ${r}.`,w.USAGE,s);return{kind:"timestamp",raw:r,historyIndex:d}}function ai(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 v(`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(pt,n.patch);if(!s.ok||typeof s.document.metadata.id!="string")throw new v("History starts without a reconstructable item baseline.",w.GENERIC_FAILURE,{code:"history_baseline_unavailable",required:"Recover the original create entry or a complete checkpoint from version control.",nextSteps:["Run pm history <id> --full to inspect the missing baseline."]})}let r=e.slice(0,t+1),o=ve([...r]),i=structuredClone(pt);for(let s=0;s<=t;s+=1){let a=e[s];if(!a)throw new v(`History target entry ${s+1} does not exist.`,w.USAGE);i=ai(i,a.patch,s+1,a.op)}if(!o.ok)throw new v(`History cannot be replayed: ${o.errors.join(", ")}.`,w.GENERIC_FAILURE,{code:"history_replay_invalid",verification_errors:o.errors,required:"Inspect the history integrity findings before attempting recovery.",nextSteps:["Run pm history <id> --verify --full."]});return i}function ib(e,t){if(Object.keys(e.metadata).length>0){if(typeof e.metadata.id!="string"||!Array.isArray(e.metadata.tags))throw new v("History has no complete item baseline for this target.",w.GENERIC_FAILURE,{code:"history_baseline_unavailable",required:"Recover the original create entry or a complete checkpoint from version control.",nextSteps:["Run pm history <id> --full to inspect the first recorded state."]});return e}throw new v(`History target ${t.raw} resolves to a deleted state; choose a version or timestamp where the item exists.`,w.USAGE)}import di from"node:fs/promises";import vr from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="b6e08d70-4e3f-5ad3-83ad-9cb49edb526e")}catch{}})();function Le(e,t){return typeof e=="object"&&e!==null&&"code"in e&&e.code===t}function li(e){let t=["--pm-path",e,"init","--defaults","--agent-guidance","skip"];return{suggested_retry:$e(t),suggested_retry_args:t}}function wr(e){return new v(`Tracker root is not a directory at ${e}.`,w.USAGE,{code:"tracker_root_not_directory",reason:"not_a_directory",resolved_path:e,nextSteps:["Pass a tracker directory, usually <workspace>/.agents/pm, rather than a file path."]})}function ci(e){return new v(`Tracker root is not readable at ${e}.`,w.GENERIC_FAILURE,{code:"tracker_root_unreadable",reason:"unreadable",resolved_path:e,nextSteps:["Grant read and directory-search permission to the tracker root, then retry."]})}async function op(e){let t=vr.resolve(e),n=vr.parse(t).root,r=vr.dirname(t);for(;r!==n;){let o;try{o=await di.stat(r)}catch(i){if(Le(i,"ENOTDIR"))throw wr(e);if(!Le(i,"ENOENT"))throw i;r=vr.dirname(r);continue}if(!o.isDirectory())throw wr(e);return}}async function kt(e){let t;try{t=await di.stat(e)}catch(n){throw Le(n,"ENOENT")?(await op(e),new v(`Tracker is not initialized at ${e}. Tracker root does not exist. Run pm init first.`,w.NOT_FOUND,{code:"tracker_root_missing",reason:"missing",resolved_path:e,nextSteps:["Confirm the tracker root path or initialize it with the emitted retry."],recovery:li(e)})):Le(n,"ENOTDIR")?wr(e):Le(n,"EACCES")||Le(n,"EPERM")?ci(e):n}if(!t.isDirectory())throw wr(e);if(process.platform!=="win32"&&((t.mode&292)===0||(t.mode&73)===0))throw ci(e);try{await(await di.opendir(e)).close()}catch(n){throw Le(n,"EACCES")||Le(n,"EPERM")?ci(e):n}}async function ui(e){if(await kt(e),!await je(tt(e)))throw new v(`Tracker is not initialized at ${e}. Run pm init first.`,w.NOT_FOUND,{code:"tracker_not_initialized",reason:"settings_missing",resolved_path:e,nextSteps:["Initialize the selected tracker root with the emitted retry."],recovery:li(e)})}import It 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]="401ead12-fb72-586b-8625-33ae44ed2eb9")}catch{}})();function sp(e,t){let n=-1,r=structuredClone(pt);for(let[a,c]of e.entries()){if(r=ai(r,c.patch,a+1,c.op),r.metadata.id!==void 0&&r.metadata.id!==t)throw new v(`History belongs to item ${String(r.metadata.id)}, expected ${t}.`,w.GENERIC_FAILURE,{code:"history_replay_invalid",required:"Recover the correct history stream for this item before attempting restoration."});r.metadata.id===t&&Array.isArray(r.metadata.tags)&&(n=a)}let o=Zt(e,!0),i=n<0||o===null?null:o+n+1,s=i===null?void 0:String(i);if(n>=0&&s===void 0){let a=e[n].ts;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),Ht(t)]);for(let o of r){let i=ue(e,o);if(!ip(i,{throwIfNoEntry:!1})?.isFile())continue;let s=await ge(i,o),a=-1;if(s.forEach((p,_)=>{p.op==="delete"&&(a=_)}),a<0)continue;let c=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 v(`Item ${o} was deleted at ${s[a].ts}; its history is retained.`,w.NOT_FOUND,{code:"item_deleted",required:"Read a retained materialized version, then restore it if the item should exist again.",item_id:o,tombstone:{deleted:!0,deleted_at:s[a].ts,recoverable:l!==void 0,last_materialized_version:d},nextSteps:[m,...l===void 0?["Recover the pre-compaction history from version control."]:[$e(["restore",o,l])]],recovery:{suggested_retry:m,suggested_retry_args:f}})}}import fi 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]="02383f73-64f0-5ffc-a802-f8ef2b3cc038")}catch{}})();async function cp(e){try{return await It.access(e),!0}catch{return!1}}function dp(e,t){e&&(e.includes(t)||e.push(t))}function Mc(e){return e??an(fe())}function lp(e){return e==="toon"?["toon","json_markdown"]:e==="json_markdown"?["json_markdown","toon"]:["toon","json_markdown"]}async function br(e,t,n="pm-",r,o=Pe){let i=t.trim(),s=i.startsWith("#")?i.slice(1):i;if(s.length===0)return null;let a=Ye(t,n),c=Ht(t),d=[...new Set([s,a,c])].filter(m=>m.length>0),l=Object.entries(o),f=lp(r);for(let m of d){let p=new Map;for(let[_]of l)for(let g of f){let h=Ir(e,_,m,g,o);await cp(h)&&p.set(h,p.get(h)??{id:m,type:_,itemPath:h,item_format:g})}if(p.size>1){let _=[...p.keys()].map(g=>fi.relative(e,g).split(fi.sep).join("/")).sort();throw new v(`Item ${m} has ambiguous identity across ${_.join(", ")}. Preserve both documents and inspect pm ops validate --check-storage-integrity before resolving the collision.`,w.CONFLICT,{code:"item_identity_ambiguous",item_id:m,paths:_})}for(let _ of p.values())return _}return null}async function Er(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 It.readFile(e.itemPath);if(!ap(n))throw new v("Item contains invalid UTF-8; preserve a binary backup before recovering it.",w.CONFLICT,{code:"item_document_encoding_invalid",item_id:e.id,item_path:e.itemPath,byte_length:n.length,empty:!1});let r=n.toString("utf8");await ke({path:e.itemPath,scope:"project"});let o;try{o=Tn(r,{format:e.item_format,schema:t.schema,extensionFieldNames:Mc(t.extensionFieldNames),onWarning:i=>dp(t.warnings,i)})}catch(i){if(i instanceof v&&i.code==="item_document_invalid")return{raw:r,document:null,error:new v(`Cannot read ${e.id} at ${e.itemPath}${n.length===0?" (zero-length file)":""}: ${i.message}`,i.exitCode,{...i.context,item_id:e.id,item_path:e.itemPath,byte_length:n.length,empty:n.length===0,nextSteps:[`Run pm history ${e.id} --full, then pm restore ${e.id} <version> to recover a recorded state.`]})};throw i}return{raw:r,document:o,error:null}}async function fp(e,t,n=Pe,r,o){await kt(e);let i=await Ha(e,t,n,r,o);return qn(i.length),i.map(s=>s.metadata)}async function jc(e,t,n=Pe,r,o){await kt(e);let i=await za(e,t,n,r,o);return qn(i.length),i.map(s=>s.metadata)}async function Jb(e,t,n=Pe,r,o,i={}){await kt(e);let s=await ir(e,t,n,r,o,{includeBody:!0,forceSourceScan:i.forceSourceScan});return qn(s.length),s.map(a=>({...a.metadata,body:a.body}))}function Fc(e){return{async get(t){let n=await br(e.pmRoot,t,e.settings.id_prefix,e.settings.item_format,e.typeToFolder);if(!n)return null;let{document:r}=await Er(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 It.readdir(fi.join(e,o));for(let s of i)for(let a of dn)if(s.toLowerCase().endsWith(a)){r.push(s.slice(0,-a.length));break}}catch{}})),r}async function _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(c=>({id:c,distance:en(c,o,s)})).filter(c=>c.distance!==null).sort((c,d)=>c.distance-d.distance).slice(0,3).map(c=>c.id)}async function 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 v(`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??cn(e.settings,fe()).type_to_folder,n=await br(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 V(e.pmRoot,n.id,e.settings.locks.ttl_seconds,e.author,!!e.force,e.settings.governance.force_required_for_stale_lock,e.settings.locks.wait_ms);try{let o=[],{raw:i,document:s}=await Er(n,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames,warnings:o}),a=s.metadata.assignee?.trim(),c=s.metadata.claim_principal?.trim()||a,d=ys(e.author),l=gr(e.settings);if(a&&c!==d&&!e.force&&!hp(e.op,e.bypassAssigneeConflict)){if(l.ownership_enforcement==="strict")throw new v(`Item ${n.id} is assigned to ${a}. Use --force to override.`,w.CONFLICT);l.ownership_enforcement==="warn"&&o.push(`ownership_warning:assignee_conflict:${n.id}:${a}`)}return{typeToFolder:t,located:n,originalRaw:i,document:s,warnings:o,releaseLock:r}}catch(o){throw await r(),o}}function 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 X(e.originalItemPath,e.originalRaw),await It.rm(e.effectiveTargetItemPath,{force:!0});return}await X(e.originalItemPath,e.originalRaw)}}async function Hc(e){_n(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=ne(i,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),d=ne(structuredClone(i),{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),l=await e.mutate(d);if(e.skipNoop===!0&&l.changedFields.length===0)return{item:c.metadata,body:c.body,changedFields:[],warnings:[...s,...l.warnings??[]]};let f=e.resolveHistoryContext?.();d.metadata.updated_at=Ie();let m=ne(d,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),p=await So({pmRoot:e.pmRoot,settings:e.settings,operation:e.op,author:e.author,before:c,after:m});await Cr({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 si({pmRoot:e.pmRoot,settings:e.settings,itemId:r.id,commandLabel:e.op}),g="toon",h=Ps(m,{format:g,schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),I=Ir(e.pmRoot,m.metadata.type,r.id,g,n),R=ue(e.pmRoot,r.id),D=await At("item_store_write",{op:e.op,pm_root:e.pmRoot,item_id:r.id,source_item_path:r.itemPath,target_item_path:I,history_path:R,item_format:g,before:c,after:m,contents:h}),{effectiveTargetItemPath:$,effectiveSerializedAfter:x,skipItemWrite:G}=yp(D,I,h),W=await Lo(e.pmRoot,e.author),Q=[];try{G||await X($,x),!G&&$!==r.itemPath&&await It.rm(r.itemPath);let ee=mt({nowIso:m.metadata.updated_at,author:e.author,op:e.op,before:c,after:m,message:e.message,context:p.decisions.length===0?f:{...f,workflow_policies:p.decisions}});try{await _t(R,ee)}catch(we){throw await gp({skipItemWrite:G,effectiveTargetItemPath:$,originalItemPath:r.itemPath,originalRaw:o}),we}G||(Q=await Po({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:n,schema:e.settings.schema,itemPath:$,previousItemPath:r.itemPath,document:m}))}finally{await W()}let K=[...await me({path:$,scope:"project",op:e.op,item_id:m.metadata.id,item_type:m.metadata.type,before:c,after:m,changed_fields:l.changedFields}),...await me({path:R,scope:"project",op:`${e.op}:history`,item_id:m.metadata.id,item_type:m.metadata.type,before:c,after:m,changed_fields:l.changedFields})];return Tr({id:m.metadata.id,op:e.op,item_type:m.metadata.type,previous_status:c.metadata.status,status:m.metadata.status,previous:fn(c.metadata,l.changedFields),current:fn(m.metadata,l.changedFields),changed_fields:l.changedFields}),{item:m.metadata,body:m.body,changedFields:l.changedFields,warnings:[...s,...l.warnings??[],...p.warnings,..._.warnings,...D.warnings,...Q,...K]}}finally{await a()}}async function Qb(e){return Hc(e)}async function Zb(e){return Hc(e)}async function eE(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=ne(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 Cr({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 si({pmRoot:e.pmRoot,settings:e.settings,itemId:n.id,commandLabel:"delete"}),f=Ie(),m=Me,p=mt({nowIso:f,author:e.author,op:"delete",before:c,after:m,message:e.message,context:d.decisions.length===0?void 0:{workflow_policies:d.decisions}}),_=ue(e.pmRoot,n.id),g=await At("item_store_delete",{op:"delete",pm_root:e.pmRoot,item_id:n.id,item_path:n.itemPath,history_path:_,before:c}),h=n.itemPath,I=!1;if(g.handled&&typeof g.result=="object"&&g.result!==null){let x=g.result;typeof x.item_path=="string"&&x.item_path.trim().length>0&&(h=x.item_path),x.skip_delete===!0&&(I=!0)}if(e.dryRun===!0)return{item:c.metadata,changedFields:["deleted"],targetPath:h,warnings:[...i,...d.warnings,...l.warnings,...g.warnings]};let R=await Lo(e.pmRoot,e.author),D=[];try{I||await It.rm(h);try{await _t(_,p)}catch(x){throw I||await X(h,r),x}I||(D=await Po({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:t.typeToFolder,schema:e.settings.schema,itemPath:h,document:null}))}finally{await R()}let $=[...await me({path:h,scope:"project",op:"delete",item_id:c.metadata.id,item_type:c.metadata.type,before:c,after:m,changed_fields:["deleted"]}),...await me({path:_,scope:"project",op:"delete:history",item_id:c.metadata.id,item_type:c.metadata.type,before:c,after:m,changed_fields:["deleted"]})];return Tr({id:c.metadata.id,op:"delete",item_type:c.metadata.type,previous_status:c.metadata.status,previous:fn(c.metadata,Object.keys(c.metadata)),changed_fields:["deleted"]}),{item:c.metadata,changedFields:["deleted"],warnings:[...i,...d.warnings,...l.warnings,...g.warnings,...D,...$]}}finally{await s()}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="5c8194ff-d877-51b8-bd54-d206f85a979c")}catch{}})();(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="2f2a7df8-9c95-5ed1-bd43-33dde57dd7f0")}catch{}})();var vp=["tree","graph","context"],wp=["none","repeated"],bp=["outgoing","incoming","both"],Ep=32,kp=200,Ip=400,Sp=16e3;function Tp(e){let t=e?.trim().toLowerCase()??"tree";if(vp.includes(t))return t;throw new v(`Invalid --format value "${e}". Use "tree", "graph", or "context".`,w.USAGE)}function St(e,t){if(e===void 0)return;let n=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(n)||n<1)throw new v(`Invalid --${t} value "${e}". Use a positive integer.`,w.USAGE);return n}function Uc(e){if(e===void 0)return;let t=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(t)||t<0)throw new v(`Invalid --max-depth value "${e}". Use a non-negative integer.`,w.USAGE);return t}function Cp(e){let t=e?.trim().toLowerCase()??"none";if(wp.includes(t))return t;throw new v(`Invalid --collapse value "${e}". Use "none" or "repeated".`,w.USAGE)}function Op(e){let t=e?.trim().toLowerCase()??"both";if(bp.includes(t))return t;throw new v(`Invalid --direction value "${e}". Use "outgoing", "incoming", or "both".`,w.USAGE)}function xp(e,t=le()){if(e===void 0)return;let n=(Array.isArray(e)?e:[e]).flatMap(o=>o.split(",")).map(o=>o.trim()).filter(o=>o.length>0);if(n.length===0)return;let r=new Set;for(let o of n){let i=t.resolve(o);if(!i){let s=t.list().map(a=>a.kind).join(", ");throw new v(`Invalid --kind value "${o}". Registered kinds: ${s}.`,w.USAGE)}r.add(i.kind)}return[...r].sort()}function 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 mn(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=le()){let n=Uc(e.maxDepth),r=St(e.nodeLimit,"node-limit"),o=St(e.edgeLimit,"edge-limit"),i=St(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 mi(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 br(e,t,n.id_prefix,n.item_format,r);if(!o)return[];let{document:i}=await Er(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 mi(f,"file",a.map(m=>m.path),3),mi(f,"test",c.map(m=>m.command??m.path),2),mi(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=mn(new TextEncoder().encode(Ar(xr("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,l=r.edgeLimit??40,f=r.tokenBudget,m,p;for(;;){let _=Up({assembly:t,canonicalId:n,contextOptions:r,internalTokenBudget:f,rootEvidence:o,smallestResult:p});if("format"in _)return _;let g=_;m??=g.meta.tokenBudget,f??=m;let h=$p({canonicalId:n,context:g,missingCount:a,missingReferences:c,referenceLimit:l,summaryOnly:i});if(p=h,i||(g.meta.tokenBudget=m,g.meta.usedTokens=Vc(Tt(h,!1),s,D=>{g.meta.usedTokens=D}),g.meta.usedTokens<=m))return h;if(l>0){l-=1;continue}let I=f,R=I*m/g.meta.usedTokens;f=Math.min(I-1,Math.max(1,Math.floor(R*.9)))}}function 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(g=>t.missingIdSet.has(g.toLowerCase())),l=new Set(d.map(g=>g.toLowerCase())),f=t.graph.registry(),m=a.kinds?new Set(a.kinds.map(g=>f.require(g).kind)):void 0,p=new Set([n,...c.value]),_=[...t.dangling.active,...t.dangling.legacy_terminal].filter(g=>Hp({row:g,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=St(n.nodeLimit,"node-limit")??kp,d=St(n.edgeLimit,"edge-limit")??Ip,l=St(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 g=Pp(m),h=f.reasons.size===0?void 0:{reasons:[...f.reasons].sort(),limits:{max_depth:a,node_limit:c,edge_limit:d,token_budget:l},estimated_tokens:0,total_node_count:p.node_count,total_edge_count:p.edge_count,omitted_node_count:Math.max(0,p.node_count-g.nodes.length),omitted_edge_count:Math.max(0,p.edge_count-g.edges.length)},I={id:e,format:t,node_count:g.nodes.length,edge_count:g.edges.length,edge_basis:"deduplicated_directed",missing_count:g.missing_ids.length,...h?{truncation:h}:{}};if(_=t==="tree"?{...I,tree:m}:{...I,graph:g},(_.truncation===void 0?mn(new TextEncoder().encode(Ar(xr("deps",Tt(_,!1)),s)).byteLength):Vc(Tt(_,!1),s,D=>{_.truncation.estimated_tokens=D}))<=l)return _;if(!Vp(m))return f.reasons.add("token_budget"),_;f.reasons.add("token_budget")}}function Tt(e,t,n={}){let r={name:e.format==="tree"?"dependency_tree":e.format==="graph"?"dependency_graph":"relationship_context",restore_with:"--full"};return{...e,legacy_alias_counts:n,projection:{mode:t?"summary":"full",declared_field_groups:[r],included_field_groups:t?[]:[r.name]}}}async function bE(e,t,n){let r=Di(process.cwd(),n.path);await ui(r);let o=Tp(t.format),i=Uc(t.maxDepth),s=Cp(t.collapse);Bi(t.summary===!0,t.full===!0,"--summary");let a=t.summary===!0,c=await Ac(r),d=cn(c,fe()),l=await jc(r,c.item_format,d.type_to_folder,void 0,c.schema),f=un(c.schema),m=new Map(l.map(_=>[_.id.trim().toLowerCase(),Ap(_)])),p=Uo(l,_=>ye(_,f));for(let _ of[...p.active,...p.legacy_terminal]){let g=m.get(_.holder_id.trim().toLowerCase()),h=_.kind.trim().toLowerCase();g&&!g.dependencies.some(I=>I.id.trim().toLowerCase()===_.target_id.trim().toLowerCase()&&I.kind===h)&&g.dependencies.push({id:_.target_id,kind:h})}if(!m.has(e.trim().toLowerCase()))throw new v(`Item ${e} not found`,w.NOT_FOUND);if(o==="context"){let _=m.get(e.trim().toLowerCase()).id,g=a?[]:await Fp(r,_,c,d.type_to_folder),h=D=>ye(D,f),I=ce(),R=Qa().lookup(r,Ya(l,h,I),()=>lr(l,h,I));return Tt(Wp({assembly:R.assembly,canonicalId:_,options:t,rootEvidence:g,summaryOnly:a,outputFormat:n.json===!0?"json":"toon"}),a,R.assembly.legacyAliasCounts)}return a?Tt({id:e,format:o,...Wc(e,m,i)},!0,Object.fromEntries(Object.entries(lr(l,_=>ye(_,f)).legacyAliasCounts))):Tt(qp(e,o,t,m,i,s,n.json===!0?"json":"toon"),!1,Object.fromEntries(Object.entries(lr(l,_=>ye(_,f)).legacyAliasCounts)))}export{Ko as a,He as b,Nr as c,Kp as d,Xp as e,ts as f,Fr as g,oh as h,ih as i,sh as j,ah as k,ch as l,dh as m,Gr as n,Kr as o,ds as p,vh as q,wh as r,bh as s,Eh as t,kh as u,Ih as v,Qr as w,_s as x,Sh as y,Th as z,Ch as A,Sd as B,ys as C,gs as D,Rh as E,Cd as F,vs as G,We as H,Ce as I,Is as J,Dt as K,Bh as L,Wh as M,it as N,ws as O,Dh as P,bs as Q,Od as R,Nh as S,wn as T,st as U,ye as V,En as W,Sn as X,Tn as Y,Ps as Z,ne as _,eu as $,ge as aa,lt as ba,bu as ca,Ry as da,Ay as ea,Dy as fa,xu as ga,Mn as ha,Ge as ia,$t as ja,ng as ka,wo as la,$n as ma,ra as na,rg as oa,sa as pa,og as qa,mt as ra,_t as sa,Ms as ta,pt as ua,Hn as va,_g as wa,Eo as xa,zn as ya,pg as za,hg as Aa,ua as Ba,Xe as Ca,_a as Da,ve as Ea,tf as Fa,yg as Ga,gg as Ha,yt as Ia,Bn as Ja,Fg as Ka,$g as La,wa as Ma,Ea as Na,Hg as Oa,pw as Pa,De as Qa,Mw as Ra,p_ as Sa,gr as Ta,yr as Ua,q_ as Va,Rc as Wa,Ac as Xa,jw as Ya,Uw as Za,si as _a,ep as $a,ha as ab,Ht as bb,Ye as cb,Sg as db,Zt as eb,Nc as fb,ai as gb,Lc as hb,ib,uf as jb,mf as kb,_f as lb,pf as mb,hf as nb,So as ob,rv as pb,dv as qb,lv as rb,uv as sb,Pa as tb,Nf as ub,Lo as vb,Iv as wb,Po as xb,ir as yb,kt as zb,ui as Ab,br as Bb,Er as Cb,up as Db,fp as Eb,jc as Fb,Jb as Gb,Fc as Hb,pp as Ib,Qb as Jb,Zb as Kb,eE as Lb,jo as Mb,um as Nb,Kt as Ob,ar as Pb,Ba as Qb,fm as Rb,mm as Sb,_m as Tb,ym as Ub,Vv as Vb,qv as Wb,Om as Xb,ce as Yb,Fv as Zb,dr as _b,$v as $b,Tm as ac,Hv as bc,Yt as cc,Rm as dc,Dm as ec,Uo as fc,Nm as gc,Zv as hc,lr as ic,Ya as jc,Bo as kc,Qa as lc,ow as mc,Za as nc,St as oc,Uc as pc,Op as qc,xp as rc,bE as sc};
165
+ //# sourceMappingURL=chunk-ZLEN4HZD.js.map