@unbrained/pm-cli 2026.10.15 → 2026.10.17

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 (161) hide show
  1. package/.agents/skills/pm-developer/references/COMMAND_PLAYBOOK.md +1 -1
  2. package/.claude-plugin/marketplace.json +1 -1
  3. package/AGENTS.md +1 -0
  4. package/CHANGELOG.md +20 -0
  5. package/dist/cli/extension-command-options.d.ts +3 -1
  6. package/dist/cli/extension-command-options.js +1 -1
  7. package/dist/cli/help-content.js +2 -2
  8. package/dist/cli/register-mutation.js +2 -2
  9. package/dist/cli/register-operations.js +1 -1
  10. package/dist/cli/register-structured-mutation.d.ts +0 -5
  11. package/dist/cli/register-structured-mutation.js +1 -1
  12. package/dist/cli/runtime/invocation-options.js +1 -1
  13. package/dist/cli-bundle/bundle-manifest.json +1 -1
  14. package/dist/cli-bundle/chunks/{chunk-7VHINXZP.js → chunk-3QKI3XNX.js} +2 -2
  15. package/dist/cli-bundle/chunks/chunk-4PNPDT2N.js +236 -0
  16. package/dist/cli-bundle/chunks/{chunk-WBBW3WQX.js → chunk-6ZDKKOKM.js} +28 -28
  17. package/dist/cli-bundle/chunks/{chunk-LNKLQYBG.js → chunk-B5QVGCZX.js} +2 -2
  18. package/dist/cli-bundle/chunks/{chunk-52EZH2QQ.js → chunk-EA2CG7UM.js} +2 -2
  19. package/dist/cli-bundle/chunks/chunk-HY7FQ7QX.js +2 -0
  20. package/dist/cli-bundle/chunks/{chunk-NC3QVGDD.js → chunk-J4LPQCET.js} +2 -2
  21. package/dist/cli-bundle/chunks/{chunk-JGKTOBVB.js → chunk-JS3B2M4D.js} +4 -4
  22. package/dist/cli-bundle/chunks/chunk-O4YBC3OM.js +30 -0
  23. package/dist/cli-bundle/chunks/{chunk-N56CAQBU.js → chunk-OZCSXX4D.js} +52 -52
  24. package/dist/cli-bundle/chunks/chunk-VMCSTFSO.js +2 -0
  25. package/dist/cli-bundle/chunks/chunk-W3KZ22DW.js +2 -0
  26. package/dist/cli-bundle/chunks/{chunk-RJ5N44WY.js → chunk-X2ONXFBP.js} +2 -2
  27. package/dist/cli-bundle/chunks/{chunk-7OEGNA4X.js → chunk-X53HM753.js} +2 -2
  28. package/dist/cli-bundle/chunks/{register-list-query-FKKFQ66D.js → register-list-query-RU3QZSAQ.js} +2 -2
  29. package/dist/cli-bundle/chunks/register-mutation-EQYMT32A.js +20 -0
  30. package/dist/cli-bundle/chunks/{register-operations-GEQ2H7PS.js → register-operations-VXBGE4XI.js} +2 -2
  31. package/dist/cli-bundle/chunks/{register-setup-PSJTQBBO.js → register-setup-UUDEGFRO.js} +2 -2
  32. package/dist/cli-bundle/focused-chunks/{chunk-TYLG5VEB.js → chunk-2IOHHNRT.js} +2 -2
  33. package/dist/cli-bundle/focused-chunks/{chunk-PDYE7QDX.js → chunk-5JEFDEL3.js} +30 -30
  34. package/dist/cli-bundle/focused-chunks/{chunk-3RNUMVK4.js → chunk-AH6NX6GM.js} +2 -2
  35. package/dist/cli-bundle/focused-chunks/{chunk-N6FUKTZS.js → chunk-E33QA7PK.js} +2 -2
  36. package/dist/cli-bundle/focused-chunks/{chunk-4KQFMOM7.js → chunk-FTUZ3JF2.js} +5 -5
  37. package/dist/cli-bundle/focused-chunks/{chunk-5OO54BIV.js → chunk-JXR6UKFM.js} +3 -3
  38. package/dist/cli-bundle/focused-chunks/chunk-LDKX4KYJ.js +2 -0
  39. package/dist/cli-bundle/focused-chunks/{chunk-H3P77KVU.js → chunk-MBQF6HT6.js} +2 -2
  40. package/dist/cli-bundle/focused-chunks/{chunk-5TBAVZDR.js → chunk-NZO7GOXD.js} +14 -14
  41. package/dist/cli-bundle/focused-chunks/{chunk-52I2SNKJ.js → chunk-PYC7BF6Z.js} +2 -2
  42. package/dist/cli-bundle/focused-chunks/{chunk-THYQR3ON.js → chunk-QOSVJDOO.js} +59 -59
  43. package/dist/cli-bundle/focused-chunks/{chunk-FQKPOZKS.js → chunk-RBLSY6ML.js} +2 -2
  44. package/dist/cli-bundle/focused-chunks/{chunk-Q4VNCTR2.js → chunk-RHTH5ILM.js} +2 -2
  45. package/dist/cli-bundle/focused-chunks/{chunk-5KRACGBK.js → chunk-SIGIGZCG.js} +3 -3
  46. package/dist/cli-bundle/focused-chunks/chunk-TRFVAWF2.js +26 -0
  47. package/dist/cli-bundle/focused-chunks/{chunk-KIIFVULU.js → chunk-UNTQE37U.js} +2 -2
  48. package/dist/cli-bundle/main.js +27 -27
  49. package/dist/cli-bundle/sdk-authoring.js +1 -1
  50. package/dist/cli-bundle/sdk-contracts.js +2 -2
  51. package/dist/cli-bundle/sdk-core.js +23 -23
  52. package/dist/cli-bundle/sdk-governance.js +1 -1
  53. package/dist/cli-bundle/sdk-graph.js +1 -1
  54. package/dist/cli-bundle/sdk-merge.js +54 -54
  55. package/dist/cli-bundle/sdk-query.js +1 -1
  56. package/dist/cli-bundle/sdk-runtime.js +1 -1
  57. package/dist/cli-bundle/sdk-testing.js +1 -1
  58. package/dist/cli-bundle/sdk.js +7 -7
  59. package/dist/core/extensions/extension-types.d.ts +15 -0
  60. package/dist/core/extensions/extension-types.js +1 -1
  61. package/dist/core/extensions/flag-value-types.d.ts +16 -0
  62. package/dist/core/extensions/flag-value-types.js +1 -1
  63. package/dist/core/extensions/registration-contracts.js +1 -1
  64. package/dist/core/item/item-format.js +3 -3
  65. package/dist/core/output/mutation-projection.d.ts +0 -21
  66. package/dist/core/output/mutation-projection.js +1 -1
  67. package/dist/core/schema/type-workflows.d.ts +1 -1
  68. package/dist/core/schema/type-workflows.js +1 -1
  69. package/dist/core/shared/text-normalization.d.ts +2 -0
  70. package/dist/core/shared/text-normalization.js +1 -1
  71. package/dist/core/store/item-mutation-precondition.d.ts +11 -0
  72. package/dist/core/store/item-mutation-precondition.js +2 -0
  73. package/dist/core/store/item-store.js +1 -1
  74. package/dist/mcp/server.js +1 -1
  75. package/dist/mcp/tool-definitions.js +1 -1
  76. package/dist/sdk/cli-contracts/agent-output-contracts.js +1 -1
  77. package/dist/sdk/cli-contracts/flag-contracts.js +1 -1
  78. package/dist/sdk/cli-contracts/flag-lexicon-contracts.js +1 -1
  79. package/dist/sdk/cli-contracts/registration-helpers.d.ts +1 -1
  80. package/dist/sdk/cli-contracts/registration-helpers.js +1 -1
  81. package/dist/sdk/cli-contracts/tool-schema.d.ts +2 -2
  82. package/dist/sdk/cli-contracts/tool-schema.js +1 -1
  83. package/dist/sdk/context-intent-contracts.js +1 -1
  84. package/dist/sdk/core.d.ts +2 -1
  85. package/dist/sdk/core.js +1 -1
  86. package/dist/sdk/generated/generated-error-code-catalog-part-1.js +1 -1
  87. package/dist/sdk/generated/generated-error-code-catalog-part-2.js +1 -1
  88. package/dist/sdk/guide-topics.js +1 -1
  89. package/dist/sdk/index.d.ts +2 -1
  90. package/dist/sdk/index.js +1 -1
  91. package/dist/sdk/item-transaction.d.ts +72 -9
  92. package/dist/sdk/item-transaction.js +1 -1
  93. package/dist/sdk/lifecycle/claim.d.ts +15 -1
  94. package/dist/sdk/lifecycle/claim.js +1 -1
  95. package/dist/sdk/lifecycle/close.d.ts +2 -8
  96. package/dist/sdk/lifecycle/close.js +1 -1
  97. package/dist/sdk/lifecycle/core-item-fields.d.ts +6 -0
  98. package/dist/sdk/lifecycle/core-item-fields.js +2 -0
  99. package/dist/sdk/lifecycle/mcp-actions.js +1 -1
  100. package/dist/sdk/lifecycle/mutation-option-validation.d.ts +2 -0
  101. package/dist/sdk/lifecycle/mutation-option-validation.js +2 -0
  102. package/dist/sdk/lifecycle/release-handoff.d.ts +12 -0
  103. package/dist/sdk/lifecycle/release-handoff.js +2 -0
  104. package/dist/sdk/lifecycle/structured-mutation-plan.d.ts +33 -0
  105. package/dist/sdk/lifecycle/structured-mutation-plan.js +2 -0
  106. package/dist/sdk/lifecycle/task-composition.d.ts +2 -2
  107. package/dist/sdk/lifecycle/task-composition.js +1 -1
  108. package/dist/sdk/lifecycle/update.d.ts +3 -11
  109. package/dist/sdk/lifecycle/update.js +1 -1
  110. package/dist/sdk/lifecycle/workflow-transition.d.ts +13 -0
  111. package/dist/sdk/lifecycle/workflow-transition.js +2 -0
  112. package/dist/sdk/lifecycle-policy.d.ts +12 -2
  113. package/dist/sdk/lifecycle-policy.js +1 -1
  114. package/dist/sdk/public-surface.json +1 -1
  115. package/dist/sdk/read-output-budget.js +1 -1
  116. package/dist/sdk/runtime-input.js +1 -1
  117. package/dist/sdk/runtime-primitives.d.ts +1 -1
  118. package/dist/sdk/runtime-primitives.js +1 -1
  119. package/dist/sdk/runtime.d.ts +8 -8
  120. package/dist/sdk/runtime.js +1 -1
  121. package/dist/sdk/structured-mutations.d.ts +52 -1
  122. package/dist/sdk/structured-mutations.js +1 -1
  123. package/dist/sdk/workspace-transaction.js +2 -2
  124. package/docs/AGENT_GUIDE.md +33 -4
  125. package/docs/CLOSE_EVIDENCE_RECOVERY.md +16 -7
  126. package/docs/COMMANDS.md +85 -10
  127. package/docs/ECOSYSTEM_PLANNING_REVIEW.md +5 -1
  128. package/docs/EXTENSIONS.md +1 -1
  129. package/docs/SDK.md +114 -2
  130. package/docs/TESTING.md +15 -0
  131. package/docs/generated/FLAG_LEXICON_BUDGETS.md +1 -1
  132. package/docs/generated/REFUSAL_CLOSURE_CENSUS.md +16 -3
  133. package/marketplace.json +1 -1
  134. package/package.json +2 -1
  135. package/packages/pm-beads/package.json +1 -1
  136. package/packages/pm-calendar/package.json +1 -1
  137. package/packages/pm-command-kit/package.json +1 -1
  138. package/packages/pm-digital-twin/package.json +1 -1
  139. package/packages/pm-governance-audit/package.json +1 -1
  140. package/packages/pm-guide-shell/package.json +1 -1
  141. package/packages/pm-kanban/package.json +1 -1
  142. package/packages/pm-lifecycle-hooks/package.json +1 -1
  143. package/packages/pm-linked-test-adapters/package.json +1 -1
  144. package/packages/pm-search-advanced/package.json +1 -1
  145. package/packages/pm-templates/package.json +1 -1
  146. package/packages/pm-todos/package.json +1 -1
  147. package/packages/pm-vcs/package.json +1 -1
  148. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  149. package/plugins/pm-claude/package.json +1 -1
  150. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  151. package/plugins/pm-codex/package.json +1 -1
  152. package/plugins/pm-codex/plugin.json +1 -1
  153. package/runtime-dependencies.json +1 -1
  154. package/dist/cli-bundle/chunks/chunk-EMEEHV2Y.js +0 -2
  155. package/dist/cli-bundle/chunks/chunk-JSUJWIHQ.js +0 -30
  156. package/dist/cli-bundle/chunks/chunk-VIMQCFCK.js +0 -2
  157. package/dist/cli-bundle/chunks/chunk-X2H6UR26.js +0 -236
  158. package/dist/cli-bundle/chunks/register-mutation-EWMMVZJB.js +0 -20
  159. package/dist/cli-bundle/focused-chunks/chunk-HTA3TNC3.js +0 -26
  160. package/dist/cli-bundle/focused-chunks/chunk-JKBH7YGX.js +0 -2
  161. package/docs/ecosystem-review-2026-09-28.json +0 -1
@@ -1,16 +1,16 @@
1
- import{b as an,g as Tt,i as Ct,j as Ot,l as Qi,m as Zi,n as un,o as es,p as ts,q as ns}from"./chunk-3RNUMVK4.js";import{h as _n}from"./chunk-YLVHHWHN.js";import{$ as b,$a as dn,$c as rs,$d as pe,A as Di,Aa as Fi,Ee as Lr,F as on,Fe as Pr,G as sn,H as Tr,J as Ni,Ka as $i,Oe as ye,P as we,Pa as Hi,Pc as me,Pe as se,Qa as zi,Qc as Rr,Rc as fn,Rd as os,Sa as Ui,Sc as _e,Sd as is,Ta as Bi,Tc as Ar,Uc as ke,V as Pe,Vc as Dr,W as Li,Wa as cn,Wd as ss,Ya as Wi,Yc as xt,Z as k,Zd as as,_ as je,_d as Ie,aa as h,ab as Vi,ae as cs,bb as qi,bd as Nr,be as nt,ce as he,db as tt,eb as Or,fb as xr,fe as ds,gb as fe,gd as $e,ge as ls,he as V,i as en,ib as Gi,jb as D,kb as ie,la as ue,lb as ln,mb as T,q as tn,qa as Pi,r as Oi,rb as Ki,rd as mn,s as xi,sa as ji,t as Ri,ta as Me,u as Ai,ua as Fe,va as te,vb as Xi,wa as Ee,wb as Yi,xa as Mi,y as nn,ya as Cr,z as rn,za as G,zc as Ji}from"./chunk-HTA3TNC3.js";import{AsyncLocalStorage as ud}from"node:async_hooks";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="1fbb183b-c6d8-5834-b4cb-e4fb515572b9")}catch{}})();var jr=new ud,us=/^[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||!us.test(r)||o!==void 0&&!us.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 fd(e,t,n){let r=jr.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 Mr(e,t){return fd(e.session_context,t,e.client_info?.episode)??{}}function yh(e,t){let n=jr.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 jr.run({...Object.keys(s).length===0?{}:{provenance:s},...i===void 0?o===void 0?{}:{episode:o}:{episode:i}},t)}function gh(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 Yr}from"node:async_hooks";import{createHash as yd}from"node:crypto";import q from"node:fs";import vs from"node:os";import Be from"node:path";import{createHash as fs}from"node:crypto";import{existsSync as Fr,promises as ms,readFileSync as md}from"node:fs";import ae from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="06c9f6f4-c2f0-549c-9a0f-4f4269cc5f49")}catch{}})();var _d="session.json";function $r(e,t){return typeof e=="string"&&e.length>0&&e.length<=t}function _s(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=$r(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=>$r(c,128)),a=t.focused_item_id===void 0||$r(t.focused_item_id,128);if([n,r,o,i,s,a,t.rule_version==="v2"].every(Boolean))return t}function pd(e){if(e===null||typeof e!="object"||Array.isArray(e))return;let t=Object.entries(e).slice(0,128).flatMap(([n,r])=>{let o=_s(r);return o&&n.length<=128?[[n,o]]:[]});return t.length>0?Object.fromEntries(t):void 0}function Hr(e){return ae.join(Gi(e),_d)}async function ps(e){try{let t=await ms.readFile(Hr(e),"utf8"),n=JSON.parse(t);if(n===null||typeof n!="object"||Array.isArray(n))return{};let r=n,o=r.focused_item,i=pd(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 zr(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 ps(e);t(r);let o=Hr(e);await ms.mkdir(ae.dirname(o),{recursive:!0}),await G(o,JSON.stringify(r))}finally{await n()}}function Ur(e){return/#([a-f0-9]{24})$/u.exec(e.trim())?.[1]??`author-${fs("sha256").update(e).digest("hex").slice(0,24)}`}function Br(e){return[...new Set(e.map(t=>t.trim()).filter(Boolean))].slice(0,32).map(t=>t.slice(0,128))}function Wr(e){let t=[...new Set(e)].sort((r,o)=>r.localeCompare(o));if(t.length===1)return t[0];let n=`workset:${t.join("+")}`;return n.length<=256?n:`workset:${t.join("+").slice(0,230)}+${fs("sha256").update(t.join("\0")).digest("hex").slice(0,12)}`}async function Vr(e,t,n){await zr(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 Ch(e){let t=Ur(e.principal);await Vr(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??Wr(r),confidence:o?"high":"medium",rule_version:"v2",evidence:Br([...r.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],...(e.lineageIds??[]).map(i=>`lineage:${i}`)]),active_item_ids:r,...o?{focused_item_id:o}:{}}})}async function Oh(e){let t=Ur(e.principal);await Vr(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??Wr(r),confidence:o?"high":"medium",evidence:Br([...r.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],`release:${e.itemId}`]),active_item_ids:r}})}async function xh(e){let t=Ur(e.principal);await Vr(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??Wr(r),confidence:o?"high":"medium",rule_version:"v2",evidence:Br([...r.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],...(e.lineageIds??[]).map(i=>`lineage:${i}`)]),active_item_ids:r,...o?{focused_item_id:o}:{}}})}function hd(e,t){let n=t.PM_PATH?.trim();if(n){let o=ae.resolve(e,n);if(Fr(ae.join(o,"settings.json")))return o;let i=ae.join(o,".agents","pm");if(Fr(ae.join(i,"settings.json")))return i}let r=ae.resolve(e);for(let o=0;o<32;o+=1){let i=ae.join(r,".agents","pm");if(Fr(ae.join(i,"settings.json")))return i;let s=ae.dirname(r);if(s===r)break;r=s}}function hs(e){if(!e.key)return;let t=hd(e.cwd,e.env);if(t)try{let n=JSON.parse(md(Hr(t),"utf8"));return _s(n.semantic_attribution?.[e.key])}catch{return}}async function Rh(e){return(await ps(e)).focused_item}async function Ah(e,t){await zr(e,n=>{n.focused_item=t})}async function Dh(e){await zr(e,t=>{delete t.focused_item})}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="a69b86e2-6633-5abc-81b7-6a54a592d36c")}catch{}})();var Jr=["model","effort","role","topic","version"],gn=new Yr,ws=new Yr,bn=new Yr,Qr=[{harness:"claude-code",environment_keys:["CLAUDE_CODE","CLAUDECODE"],model_environment_keys:["ANTHROPIC_MODEL","CLAUDE_MODEL"],session_environment_keys:["CLAUDE_CODE_SESSION_ID"],provenance_environment_keys:{effort:["CLAUDE_EFFORT"]},provenance_resolvers:{model:"claude_session_file",version:"claude_session_file"},provenance_unavailable_dimensions:["role","topic"],argv_markers:["claude","claude-code"],client_names:["claude","claude-code","claude code"]},{harness:"codex",environment_keys:["CODEX_HOME","CODEX_CI","CODEX_THREAD_ID"],model_environment_keys:["CODEX_MODEL"],session_environment_keys:["CODEX_THREAD_ID"],provenance_environment_keys:{effort:["CODEX_REASONING_EFFORT","CODEX_EFFORT"],role:["CODEX_SESSION_ROLE"]},provenance_resolvers:{model:"codex_session_file",effort:"codex_session_file",version:"ai_agent_version"},provenance_unavailable_dimensions:["topic"],argv_markers:["codex"],client_names:["codex"]},{harness:"pi",environment_keys:["PI_AGENT","PI_CODING_AGENT"],model_environment_keys:["PI_MODEL"],session_environment_keys:["PI_SESSION_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["pi"],client_names:["pi"]},{harness:"opencode",environment_keys:["OPENCODE","OPENCODE_SESSION_ID"],model_environment_keys:["OPENCODE_MODEL"],session_environment_keys:["OPENCODE_SESSION_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["opencode"],client_names:["opencode"]},{harness:"cursor",environment_keys:["CURSOR_AGENT","CURSOR_TRACE_ID"],model_environment_keys:["CURSOR_MODEL"],session_environment_keys:["CURSOR_TRACE_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["cursor"],client_names:["cursor"]},{harness:"aider",environment_keys:["AIDER","AIDER_MODEL"],model_environment_keys:["AIDER_MODEL"],session_environment_keys:["AIDER_SESSION_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["aider"],client_names:["aider"]},{harness:"gemini-cli",environment_keys:["GEMINI_CLI","GEMINI_CLI_HOME"],model_environment_keys:["GEMINI_MODEL"],session_environment_keys:["GEMINI_CLI_SESSION_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["gemini","gemini-cli"],client_names:["gemini","gemini-cli","gemini cli"]},{harness:"ci",environment_keys:["CI","GITHUB_ACTIONS","BUILDKITE","GITLAB_CI"],provenance_unavailable_dimensions:["model","effort","role","topic"],argv_markers:[],client_names:[]}],Es=Object.freeze({max_bytes:1048576,max_lines:4096,network_access:!1,subprocess_access:!1}),gd=Object.freeze({...Es,max_bytes:4194304}),qr=/^[a-z0-9]+(?:-[a-z0-9]+)*$/u;function bd(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"?gd:Es,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 ks=Object.freeze(Qr.filter(e=>e.harness!=="ci").map(bd).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(!qr.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])=>qr.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"&&qr.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 Is=Qr.map(Te);function vd(e,t){return JSON.stringify(e)===JSON.stringify(t)}function yn(e,t){return e.toLowerCase().slice(0,512).split(/[/\\\s:=]+/u).filter(n=>n.length>0).includes(t)||e.trim().toLowerCase()===t}function Zr(e=[]){let t=new Map(Qr.filter(o=>o.harness!=="ci").map(o=>[o.harness,Te(o)]));for(let{adapter:o}of Ue.values())t.set(o.harness,Te(o.descriptor));let n=[...t.values(),...Is.filter(o=>o.harness==="ci"),...[...ot.values()].map(o=>o.descriptor),...bn.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 eo(e,t){for(let n of t??[]){let r=P(e[n]);if(r)return r.slice(0,256)}}function wd(e,t){if(t==="role"){let n=e.slice(0,8).map(r=>r.trim().toLowerCase()).find(r=>["claim","create","update","close","release","review"].includes(r));if(n==="review")return"reviewer";if(n)return"implementer"}}function Ss(e,t){let n=t==="model"?["--model","--agent-model"]:[`--agent-${t}`],r=e.slice(0,8);for(let o=0;o<r.length;o+=1){let i=r[o].slice(0,512);if(n.includes(i))return P(r[o+1])?.slice(0,256);let s=n.find(a=>i.startsWith(`${a}=`));if(s)return P(i.slice(s.length+1))?.slice(0,256)}}var Ed=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 Ed.has(n)?n:void 0}function Gr(e,t){return P(e?.[t])?.slice(0,256)}var kd=1048576,Xr=4194304,hn=new Map,ys=Object.freeze({}),Kr=new Map,gs=Object.freeze({});function bs(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:void 0}function Id(e){let t;try{t=JSON.parse(e)}catch{return gs}let n=bs(t);if(!n)return gs;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=bs(c);d&&r.push({value:d,depth:a.depth+1})}}return Object.freeze({model:i,version:s})}function Ts(e){try{return q.lstatSync(e).isFile()?"available":"missing"}catch(t){return Fe(t)?"missing":"failed"}}function Sd(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:Ts(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 Cs(e,t){let n=P(t.CLAUDE_CODE_SESSION_ID);if(!n||!/^[A-Za-z0-9_-]{1,128}$/u.test(n))return{status:"unavailable"};let r=Be.resolve(e.cwd??process.cwd()).replaceAll(/[^A-Za-z0-9-]/gu,"-"),o=Be.join(e.home_dir??vs.homedir(),".claude","projects"),i=Be.join(o,r,`${n}.jsonl`),s=P(e.session_file),a=s&&Be.basename(s)===`${n}.jsonl`?s:void 0;for(let c of[a,i]){if(!c)continue;let d=Ts(c);if(d==="available")return{status:d,path:c};if(d==="failed")return{status:d}}return Sd(o,n)}function Td(e,t,n){let r=Cs(t,n);if(r.status==="available")try{let o=q.openSync(r.path,q.constants.O_RDONLY|q.constants.O_NOFOLLOW);try{let i=q.fstatSync(o),s=`${r.path}\0${i.size}\0${i.mtimeMs}`,a=Kr.get(s);if(a)return a[e];let c=Math.min(i.size,kd),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 _=Buffer.alloc(l);l>0&&q.readSync(o,_,0,l,i.size-l);let p={},m=i.size<=c?Buffer.concat([f,_]).toString("utf8").split(`
1
+ import{b as an,g as Tt,i as Ct,j as xt,l as es,m as ts,n as un,o as ns,p as rs,q as os}from"./chunk-AH6NX6GM.js";import{h as _n}from"./chunk-YLVHHWHN.js";import{$ as b,$a as dn,$d as ds,A as Li,Aa as Hi,F as on,G as sn,Ge as Lr,H as Tr,He as Pr,J as Pi,Ka as zi,P as we,Pa as Ui,Pc as me,Qa as Wi,Qc as Rr,Qe as ye,Rc as fn,Re as se,Sa as Bi,Sc as _e,Ta as Vi,Tc as Ar,Td as ss,Uc as ke,Ud as as,V as Pe,Vc as Dr,W as ji,Wa as cn,Ya as qi,Yc as Ot,Yd as cs,Z as k,_ as je,aa as h,ab as Gi,ae as Ie,bb as Ki,bd as is,be as pe,ce as ls,db as tt,dd as Nr,de as nt,eb as xr,ee as he,fb as Or,gb as fe,he as us,i as en,ib as Xi,id as $e,ie as fs,jb as D,je as V,kb as ie,la as ue,lb as ln,mb as T,q as tn,qa as Mi,r as Ri,rb as Yi,s as Ai,sa as Fi,t as Di,ta as Me,td as mn,u as Ni,ua as Fe,va as te,vb as Ji,wa as Ee,wb as Qi,xa as $i,y as nn,ya as Cr,z as rn,za as G,zc as Zi}from"./chunk-TRFVAWF2.js";import{AsyncLocalStorage as hd}from"node:async_hooks";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="1fbb183b-c6d8-5834-b4cb-e4fb515572b9")}catch{}})();var jr=new hd,ms=/^[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||!ms.test(r)||o!==void 0&&!ms.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 yd(e,t,n){let r=jr.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 Mr(e,t){return yd(e.session_context,t,e.client_info?.episode)??{}}function Th(e,t){let n=jr.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 jr.run({...Object.keys(s).length===0?{}:{provenance:s},...i===void 0?o===void 0?{}:{episode:o}:{episode:i}},t)}function Ch(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 Yr}from"node:async_hooks";import{createHash as Ed}from"node:crypto";import q from"node:fs";import Es from"node:os";import We from"node:path";import{createHash as _s}from"node:crypto";import{existsSync as Fr,promises as ps,readFileSync as gd}from"node:fs";import ae from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="06c9f6f4-c2f0-549c-9a0f-4f4269cc5f49")}catch{}})();var bd="session.json";function $r(e,t){return typeof e=="string"&&e.length>0&&e.length<=t}function hs(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=$r(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=>$r(c,128)),a=t.focused_item_id===void 0||$r(t.focused_item_id,128);if([n,r,o,i,s,a,t.rule_version==="v2"].every(Boolean))return t}function vd(e){if(e===null||typeof e!="object"||Array.isArray(e))return;let t=Object.entries(e).slice(0,128).flatMap(([n,r])=>{let o=hs(r);return o&&n.length<=128?[[n,o]]:[]});return t.length>0?Object.fromEntries(t):void 0}function Hr(e){return ae.join(Xi(e),bd)}async function ys(e){try{let t=await ps.readFile(Hr(e),"utf8"),n=JSON.parse(t);if(n===null||typeof n!="object"||Array.isArray(n))return{};let r=n,o=r.focused_item,i=vd(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 zr(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 ys(e);t(r);let o=Hr(e);await ps.mkdir(ae.dirname(o),{recursive:!0}),await G(o,JSON.stringify(r))}finally{await n()}}function Ur(e){return/#([a-f0-9]{24})$/u.exec(e.trim())?.[1]??`author-${_s("sha256").update(e).digest("hex").slice(0,24)}`}function Wr(e){return[...new Set(e.map(t=>t.trim()).filter(Boolean))].slice(0,32).map(t=>t.slice(0,128))}function Br(e){let t=[...new Set(e)].sort((r,o)=>r.localeCompare(o));if(t.length===1)return t[0];let n=`workset:${t.join("+")}`;return n.length<=256?n:`workset:${t.join("+").slice(0,230)}+${_s("sha256").update(t.join("\0")).digest("hex").slice(0,12)}`}async function Vr(e,t,n){await zr(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 jh(e){let t=Ur(e.principal);await Vr(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??Br(r),confidence:o?"high":"medium",rule_version:"v2",evidence:Wr([...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 Mh(e){let t=Ur(e.principal);await Vr(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??Br(r),confidence:o?"high":"medium",evidence:Wr([...r.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],`release:${e.itemId}`]),active_item_ids:r}})}async function Fh(e){let t=Ur(e.principal);await Vr(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??Br(r),confidence:o?"high":"medium",rule_version:"v2",evidence:Wr([...r.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],...(e.lineageIds??[]).map(i=>`lineage:${i}`)]),active_item_ids:r,...o?{focused_item_id:o}:{}}})}function wd(e,t){let n=t.PM_PATH?.trim();if(n){let o=ae.resolve(e,n);if(Fr(ae.join(o,"settings.json")))return o;let i=ae.join(o,".agents","pm");if(Fr(ae.join(i,"settings.json")))return i}let r=ae.resolve(e);for(let o=0;o<32;o+=1){let i=ae.join(r,".agents","pm");if(Fr(ae.join(i,"settings.json")))return i;let s=ae.dirname(r);if(s===r)break;r=s}}function gs(e){if(!e.key)return;let t=wd(e.cwd,e.env);if(t)try{let n=JSON.parse(gd(Hr(t),"utf8"));return hs(n.semantic_attribution?.[e.key])}catch{return}}async function $h(e){return(await ys(e)).focused_item}async function Hh(e,t){await zr(e,n=>{n.focused_item=t})}async function zh(e){await zr(e,t=>{delete t.focused_item})}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="a69b86e2-6633-5abc-81b7-6a54a592d36c")}catch{}})();var Jr=["model","effort","role","topic","version"],gn=new Yr,ks=new Yr,bn=new Yr,Qr=[{harness:"claude-code",environment_keys:["CLAUDE_CODE","CLAUDECODE"],model_environment_keys:["ANTHROPIC_MODEL","CLAUDE_MODEL"],session_environment_keys:["CLAUDE_CODE_SESSION_ID"],provenance_environment_keys:{effort:["CLAUDE_EFFORT"]},provenance_resolvers:{model:"claude_session_file",version:"claude_session_file"},provenance_unavailable_dimensions:["role","topic"],argv_markers:["claude","claude-code"],client_names:["claude","claude-code","claude code"]},{harness:"codex",environment_keys:["CODEX_HOME","CODEX_CI","CODEX_THREAD_ID"],model_environment_keys:["CODEX_MODEL"],session_environment_keys:["CODEX_THREAD_ID"],provenance_environment_keys:{effort:["CODEX_REASONING_EFFORT","CODEX_EFFORT"],role:["CODEX_SESSION_ROLE"]},provenance_resolvers:{model:"codex_session_file",effort:"codex_session_file",version:"ai_agent_version"},provenance_unavailable_dimensions:["topic"],argv_markers:["codex"],client_names:["codex"]},{harness:"pi",environment_keys:["PI_AGENT","PI_CODING_AGENT"],model_environment_keys:["PI_MODEL"],session_environment_keys:["PI_SESSION_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["pi"],client_names:["pi"]},{harness:"opencode",environment_keys:["OPENCODE","OPENCODE_SESSION_ID"],model_environment_keys:["OPENCODE_MODEL"],session_environment_keys:["OPENCODE_SESSION_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["opencode"],client_names:["opencode"]},{harness:"cursor",environment_keys:["CURSOR_AGENT","CURSOR_TRACE_ID"],model_environment_keys:["CURSOR_MODEL"],session_environment_keys:["CURSOR_TRACE_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["cursor"],client_names:["cursor"]},{harness:"aider",environment_keys:["AIDER","AIDER_MODEL"],model_environment_keys:["AIDER_MODEL"],session_environment_keys:["AIDER_SESSION_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["aider"],client_names:["aider"]},{harness:"gemini-cli",environment_keys:["GEMINI_CLI","GEMINI_CLI_HOME"],model_environment_keys:["GEMINI_MODEL"],session_environment_keys:["GEMINI_CLI_SESSION_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["gemini","gemini-cli"],client_names:["gemini","gemini-cli","gemini cli"]},{harness:"ci",environment_keys:["CI","GITHUB_ACTIONS","BUILDKITE","GITLAB_CI"],provenance_unavailable_dimensions:["model","effort","role","topic"],argv_markers:[],client_names:[]}],Is=Object.freeze({max_bytes:1048576,max_lines:4096,network_access:!1,subprocess_access:!1}),kd=Object.freeze({...Is,max_bytes:4194304}),qr=/^[a-z0-9]+(?:-[a-z0-9]+)*$/u;function Id(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"?kd:Is,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 Ss=Object.freeze(Qr.filter(e=>e.harness!=="ci").map(Id).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(!qr.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])=>qr.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"&&qr.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 Ts=Qr.map(Te);function Sd(e,t){return JSON.stringify(e)===JSON.stringify(t)}function yn(e,t){return e.toLowerCase().slice(0,512).split(/[/\\\s:=]+/u).filter(n=>n.length>0).includes(t)||e.trim().toLowerCase()===t}function Zr(e=[]){let t=new Map(Qr.filter(o=>o.harness!=="ci").map(o=>[o.harness,Te(o)]));for(let{adapter:o}of Ue.values())t.set(o.harness,Te(o.descriptor));let n=[...t.values(),...Ts.filter(o=>o.harness==="ci"),...[...ot.values()].map(o=>o.descriptor),...bn.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 eo(e,t){for(let n of t??[]){let r=P(e[n]);if(r)return r.slice(0,256)}}function Td(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 Cs(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 Cd=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 Cd.has(n)?n:void 0}function Gr(e,t){return P(e?.[t])?.slice(0,256)}var xd=1048576,Xr=4194304,hn=new Map,bs=Object.freeze({}),Kr=new Map,vs=Object.freeze({});function ws(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:void 0}function Od(e){let t;try{t=JSON.parse(e)}catch{return vs}let n=ws(t);if(!n)return vs;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=ws(c);d&&r.push({value:d,depth:a.depth+1})}}return Object.freeze({model:i,version:s})}function xs(e){try{return q.lstatSync(e).isFile()?"available":"missing"}catch(t){return Fe(t)?"missing":"failed"}}function Rd(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=We.join(e,o.name,`${t}.jsonl`);return{candidate:i,status:xs(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 Os(e,t){let n=P(t.CLAUDE_CODE_SESSION_ID);if(!n||!/^[A-Za-z0-9_-]{1,128}$/u.test(n))return{status:"unavailable"};let r=We.resolve(e.cwd??process.cwd()).replaceAll(/[^A-Za-z0-9-]/gu,"-"),o=We.join(e.home_dir??Es.homedir(),".claude","projects"),i=We.join(o,r,`${n}.jsonl`),s=P(e.session_file),a=s&&We.basename(s)===`${n}.jsonl`?s:void 0;for(let c of[a,i]){if(!c)continue;let d=xs(c);if(d==="available")return{status:d,path:c};if(d==="failed")return{status:d}}return Rd(o,n)}function Ad(e,t,n){let r=Os(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=Kr.get(s);if(a)return a[e];let c=Math.min(i.size,xd),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 _=Buffer.alloc(l);l>0&&q.readSync(o,_,0,l,i.size-l);let p={},m=i.size<=c?Buffer.concat([f,_]).toString("utf8").split(`
2
2
  `):[...f.toString("utf8").split(`
3
3
  `).slice(0,4096),..._.toString("utf8").split(`
4
- `).slice(-4096)];for(let g of m){if(g.length===0||g.length>262144)continue;let S=Id(g);if(p.model??=S.model,p.version??=S.version,p.model&&p.version)break}let v=Object.freeze(p);return Kr.clear(),Kr.set(s,v),v[e]}finally{q.closeSync(o)}}catch{return}}function Cd(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 Od(e){if(e<=Xr)return[{offset:0,length:e}];let t=Math.floor(Xr/2);return[{offset:e-t,length:t},{offset:0,length:t}]}function xd(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 Rd(e,t){let n={},r=4096;for(let o of Od(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(xd(n,a),n.model&&n.effort)break;if(n.model&&n.effort||r<=0)break}return n}function Ad(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??vs.homedir(),".codex","sessions"),i=`${o}\0${r}`,s=hn.get(i);if(s)return s[e];let a=Cd(o,r);if(!a){hn.set(i,ys);return}try{let c=q.openSync(a,"r");try{let d=q.fstatSync(c).size,l=Rd(c,d);return hn.set(i,l),l[e]}finally{q.closeSync(c)}}catch{hn.set(i,ys);return}}function Dd(e,t,n,r){let o=bn.getStore();if(!(t.probes_enabled!==!1&&o?.probesEnabled!==!1&&!["0","false","off"].includes(P(n.PM_AGENT_PROBES)?.toLowerCase()??"")))return;let i=r?.provenance_resolvers[e];if(i==="claude_session_file")return Td(e,t,n);if(i==="codex_session_file")return Ad(e,t,n);if(i==="ai_agent_version"){let s=P(n.AI_AGENT);return!s||!r||!yn(s,r.harness)?void 0:/(?:^|[@/\s])v?(\d+\.\d+(?:\.\d+)?(?:[-+][A-Za-z0-9.-]+)?)$/u.exec(s)?.[1]?.slice(0,256)}}function Nd(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":Cs(n,r).status}function to(e){return e||(ws.getStore()??{env:process.env,argv:process.argv})}function Ld(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 Pd(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 jd(e){let t=e.find(([n])=>n!==void 0);return t?.[0]?{value:t[0],source:t[1]}:void 0}function Md(e,t,n,r,o,i){let s=`PM_AGENT_${e.toUpperCase().replaceAll("-","_")}`,a=new Set([...Jr,...Object.keys(r?.provenance_environment_keys??{})]),c,d,l;a.has(e)&&(c=ze(e,P(n[s])?.slice(0,256)),l=ze(e,Ss(t.argv??[],e)),d=ze(e,wd(t.argv??[],e)));let f={...r?.provenance_environment_keys,model:r?.model_environment_keys},_={...t.client_info?.provenance,model:t.client_info?.model},p=Gr(o?.provenance,e),m=ze(e,eo(n,f[e])),v=ze(e,Gr(_,e)),g=ze(e,Gr(t.provenance,e)),S=Dd(e,t,n,r);return jd([[c,"override"],[p,"session"],[l,"argv"],[m,"environment"],[v,"mcp_client"],[g,"host"],[S,"probe"]])??Pd(e,i)??(d?{value:d,source:"argv"}:void 0)}function Fd(e,t){if(!(!e||!t))return yd("sha256").update(`pm-agent-instance:v1\0${e}\0${t}`).digest("hex").slice(0,24)}function $d(e,t,n,r,o){let i=Object.keys(n?.provenance_environment_keys??{}),s=new Set([...Jr,...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=Md(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 Uh(e){let t=e.map(Te),n=new Map(Is.map(i=>[i.harness,i])),r=new Set;for(let i of t){if(r.has(i.harness)||n.has(i.harness))throw new Error(`Harness signal descriptor collision for "${i.harness}"`);let s=ot.get(i.harness);if(s&&!vd(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 Hd(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>Xr||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 Bh(){let e=new Map(ks.map(t=>[t.harness,t]));for(let{adapter:t}of Ue.values())e.set(t.harness,t);return Object.freeze([...e.values()].sort((t,n)=>t.harness.localeCompare(n.harness)))}function Wh(e){let t=e.map(Hd),n=new Map(ks.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 Vh(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 qh(e,t){return ws.run(e,t)}function Gh(e,t,n={}){let r=e.map(Te);return Zr(r),bn.run({descriptors:r,probesEnabled:n.probesEnabled!==!1},t)}function no(e){let t=to(e),n=t.env??{},r=Zr(t.descriptors),o=[...(t.argv??[]).slice(0,3),...t.process_labels??[]].slice(0,64).map(m=>m.slice(0,512)),i=t.client_info?.name.trim().toLowerCase()??"",s=r.find(m=>Ld(m,n,o,i)),a=Mr(t,n),c=[eo(n,s?.session_environment_keys),P(t.client_info?.session)?.slice(0,256)].find(m=>m!==void 0),d=Fd(s?.harness,c),l=hs({cwd:t.cwd??process.cwd(),env:n,key:d}),f=$d(t,n,s,a,l),_=f.model,p=[["harness",s?.harness],["model",_?.value],["model_source",_?.source],["session",c],["instance",d],["provenance",Object.keys(f).length>0?f:void 0],["episode",a.episode]];return Object.fromEntries(p.filter(m=>m[1]!==void 0))}function zd(e){return e==="unavailable"?{status:"unavailable",reason:"harness_unavailable"}:e==="missing"?{status:"unavailable",reason:"resolver_input_missing"}:{status:"failed",reason:"resolver_failed"}}function Ud(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=Nd(a,n,r,o);return{...zd(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 Os(e){let t=to(e),n=no(t),r=Zr(t.descriptors).find(d=>d.harness===n.harness),o=t.env??{},i=t.probes_enabled!==!1&&bn.getStore()?.probesEnabled!==!1&&!["0","false","off"].includes(P(o.PM_AGENT_PROBES)?.toLowerCase()??""),s=Mr(t,o),a=[o.PM_AGENT_ROLE,s.provenance?.role,eo(o,r?.provenance_environment_keys.role),t.client_info?.provenance?.role,t.provenance?.role,Ss(t.argv??[],"role")].some(d=>{let l=P(d)?.slice(0,256);return l!==void 0&&ze("role",l)===void 0}),c=Object.fromEntries(Jr.map(d=>[d,Ud(d,n,r,t,o,i,d==="role"&&a)]));return{...n,provenance_outcomes:c}}function Kh(){return process.env.PM_AUTHOR}function Xh(e){e===void 0?delete process.env.PM_AUTHOR:process.env.PM_AUTHOR=e}function Yh(e){return no(e).harness}function Bd(e,t,n){let r=to(n),o=no(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 xs(e){let t=gn.getStore();return t?.author===e?t.source:e.startsWith("harness:")?"detected":e==="unknown"?"unknown":"asserted"}function Rs(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 As(e){let t=gn.getStore();return t?.author===e&&t.source==="detected"&&t.instance?`${e}#${t.instance}`:e}function Ds(e,t){let n=Bd(e,t);return gn.enterWith(n),n.author}import{createHash as Wd}from"node:crypto";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ca5b60a5-80a7-5e7d-917f-4c7649bcbab6")}catch{}})();var Zh=["sha256","sha512"],Vd="sha256",Ns="sha256";function We(e){if(e===void 0)return Vd;if(e==="sha256"||e==="sha512")return e;throw new TypeError(`unsupported_history_hash_algorithm:${String(e)}`)}function Ce(e,t){return Wd(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]="c35d4830-d7d1-5ee4-99bc-ab52cc3e4e09")}catch{}})();var ro=1,oo=2;function io(e){return Math.max(Rt(e),e.tests?.some(t=>t.updated_by!==void 0||t.updated_at!==void 0)?2:1)}function Rt(e){let t=e.pm_format_version;return typeof t=="number"&&Number.isInteger(t)&&t>=1?t:1}function Ls(e){if(!(typeof e!="number"||!Number.isInteger(e)||e<=1))return e}function qd(e,t=2,n=t){return e<n?"outdated":e>t?"ahead":"current"}function ty(e,t=2,n=t){let r=[],o=[];for(let i of e){let s=qd(i.version,t,n);s==="outdated"?r.push(i.ref):s==="ahead"&&o.push(i.ref)}return{outdated:r.sort((i,s)=>i.localeCompare(s)),ahead:o.sort((i,s)=>i.localeCompare(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]="515840b7-cf86-5d71-8ac1-beac7fd7c8a8")}catch{}})();var Gd={"in-progress":"in_progress",cancelled:"canceled"};function vn(e,t){if(t){let o=es(e,t);if(o)return o}if(typeof e!="string")return;let n=e.trim().toLowerCase();if(!n)return;let r=Gd[n]??n;if(tn.includes(r))return r}function it(e,t){return vn(e,t)??e}function ge(e,t){return t.terminal_statuses.has(it(e,t))}import{encode as sl}from"@toon-format/toon";import{isDeepStrictEqual as $s}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]="4d5692ce-ec33-5eb4-bd9b-7497ffe25b0e")}catch{}})();var Kd=16;function so(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 Xd(e){return[...new Set([ns(e),so(e.key),so(e.cli_flag),...e.cli_aliases.map(t=>so(t))])]}function Ms(e,t){for(let n of Xd(t)){if(!Object.hasOwn(e,n))continue;let r=e[n];if(r!==void 0)return r}}function Fs(e){return Array.isArray(e)?e.flatMap(t=>Fs(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 Ps(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 h(`${t} must be one of true|false|1|0|yes|no`,b.USAGE)}function js(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 h(`${t} must be a number`,b.USAGE);return r}function Yd(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 h(`${t} must be valid JSON ${n}`,b.USAGE)}function Jd(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 Qd(e,t,n){if(t.const!==void 0&&D(e)!==D(t.const))return`${n} must equal ${D(t.const)}`;if(t.enum!==void 0&&!t.enum.some(r=>D(r)===D(e)))return`${n} must be one of ${t.enum.map(r=>D(r)).join("|")}`;if(!Jd(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"&&!cs(e))return`${n} must be an RFC 3339 date-time`}}function Zd(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=wn(i,t.items,`${n}[${o}]`,r+1);if(s)return s}}}function el(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=wn(s,a,`${n}.${i}`,r+1);if(c)return c}}function wn(e,t,n,r=0){if(r>Kd)return`${n} value schema exceeds maximum depth`;let o=Qd(e,t,n);if(o)return o;let i=Zd(e,t,n,r);if(i)return i;let s=el(e,t,n,r);if(s)return s;if(!t.one_of)return;let a=0;for(let c of t.one_of)if(wn(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=wn(t,e.value_schema,n);if(r)throw new h(r,b.USAGE);return t}function tl(e,t,n,r){let o=r==="option"&&Array.isArray(t)?t[t.length-1]:t;if(o!==void 0)return Ve(e,Yd(o,n,e.type),n)}function At(e,t,n,r="option"){let o=n??`--${e.cli_flag}`;if(e.type==="array"||e.type==="object")return tl(e,t,o,r);if(e.repeatable||e.type==="string_array"){let s=Fs(t);return e.type==="number"?Ve(e,s.map(a=>js(a,o)),o):e.type==="boolean"?Ve(e,s.map(a=>Ps(a,o)),o):Ve(e,s,o)}let i=Array.isArray(t)?t[t.length-1]:t;if(i!==void 0)return e.type==="number"?Ve(e,js(i,o),o):e.type==="boolean"?Ve(e,Ps(i,o),o):Ve(e,typeof i=="string"?i:String(i),o)}function nl(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 uy(e,t,n){let r={},o=[];for(let i of t.command_to_fields.get("create")??[]){let s=Ms(e,i);if(s===void 0){nl(i,n)&&o.push(`--${i.cli_flag}`);continue}r[i.metadata_key]=At(i,s)}return{values:r,missing_required_flags:[...new Set(o)].sort((i,s)=>i.localeCompare(s))}}function fy(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=Ms(e,s);a!==void 0&&(i.has(s.metadata_key)||(i.add(s.metadata_key),r[s.metadata_key]=At(s,a)))}return r}import{decode as rl}from"@toon-format/toon";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="aaa2be03-9478-5fbe-82e6-e4fc86e3735b")}catch{}})();function ao(e){return{value:rl(e),usedScalarBracketEscape:!1}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="79626299-17a8-573a-9b66-ce37c65e2f5d")}catch{}})();var ol=/^\s*(<<<<<<<|=======|>>>>>>>)(?:\s.*)?$/;function il(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(ol);if(!i)continue;let s=i[1];n.push({line:r+1,marker:s,text:o})}return n}function En(e){return il(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]="fb315276-2021-54aa-a880-5b4eb508e8d6")}catch{}})();var fo=new Set(["schema","tracker","auto","none"]),Us=new Set(["source","isolated","snapshot"]),al=new Set(["legacy","local_mutation","local_source_ref","acknowledged","invalid_provenance","foreign_source_ref"]),cl=new Set(["passed","failed","stopped","canceled"]),dl=new Set(Ni);function ct(e){return e.replaceAll("\\","/")}function Bs(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 Ws=["id","title","description","created_at","updated_at"],ll=new Set(we);function Vs(e){if(e?.schema)return{statusRegistry:un(e.schema),fieldRegistry:ts(e.schema),unknownFieldPolicy:e.schema.unknown_field_policy??"allow",extensionFieldNames:new Set(e.extensionFieldNames??[]),onWarning:e.onWarning}}function ul(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 h(`Invalid item metadata: ${e}`,b.GENERIC_FAILURE,{code:"item_document_invalid",reason:e.includes("required")?"missing_required_field":"schema_validation_error",...t?{field:t}:{},required:"Provide an item document whose metadata satisfies the active runtime schema.",why:e})}function Lt(e,t){throw new h(t,b.GENERIC_FAILURE,{code:"item_document_invalid",reason:"syntax_error",format:e,required:`Provide a syntactically valid ${e==="toon"?"TOON":"JSON Markdown"} item document.`,why:"The document could not be decoded far enough to validate item metadata."})}function qs(e,t){if(!t||typeof e!="object"||e===null)return;let n=Rt(e);if(!(n<=oo))throw new h(`Stored item uses format version ${n}; this runtime supports up to ${oo}. Upgrade pm before reading or changing this item.`,b.CONFLICT,{code:"item_format_version_unsupported",format_version:n,required:"Upgrade to a pm runtime supporting the stored item format.",nextSteps:["Preserve the original item and history; do not lower pm_format_version to bypass compatibility checks."]})}function Gs(e){let t=new Set(ll);for(let n of e.fieldRegistry?.definitions??[])t.add(n.metadata_key);for(let n of e.extensionFieldNames)t.add(n);return t}function I(e,t){e||Oe(t)}function Pt(e,t){return(typeof e!="object"||e===null||Array.isArray(e))&&Oe(t),e}function co(e,t){let n=e[t];I(typeof n=="string",`${t} must be a string`),I(pe(n),`${t} must be a valid ISO timestamp`)}function Hs(e,t,n){let r=e[t];r!==void 0&&I(typeof r=="number"&&Number.isInteger(r)&&r>=1,`${n} must be an integer >= 1`)}function mo(e,t,n){let r=e[t];r!==void 0&&(I(typeof r=="string",`${n} must be a string`),I(pe(r),`${n} must be a valid ISO timestamp`))}function fl(e){if(e!==void 0){I(Array.isArray(e),"event.recurrence.by_weekday must be an array");for(let t of e){I(typeof t=="string","event.recurrence.by_weekday entries must be strings");let n=t.trim().toLowerCase();I(sn.includes(n),`event.recurrence.by_weekday entries must be one of: ${sn.join(", ")}`)}}}function ml(e){if(e!==void 0){I(Array.isArray(e),"event.recurrence.by_month_day must be an array");for(let t of e)I(typeof t=="number"&&Number.isInteger(t)&&t>=1&&t<=31,"event.recurrence.by_month_day entries must be integers 1..31")}}function _l(e){if(e!==void 0){I(Array.isArray(e),"event.recurrence.exdates must be an array");for(let t of e)I(typeof t=="string","event.recurrence.exdates entries must be strings"),I(pe(t),"event.recurrence.exdates entries must be valid ISO timestamps")}}function pl(e){let t=Pt(e,"event.recurrence must be an object");I(typeof t.freq=="string","event.recurrence.freq must be a string");let n=t.freq.trim().toLowerCase();I(on.includes(n),`event.recurrence.freq must be one of: ${on.join(", ")}`),Hs(t,"interval","event.recurrence.interval"),Hs(t,"count","event.recurrence.count"),mo(t,"until","event.recurrence.until"),fl(t.by_weekday),ml(t.by_month_day),_l(t.exdates)}function hl(e){for(let r of Ws)I(typeof e[r]=="string",`${r} is required and must be a string`);let t=e.type;I(typeof t=="string"&&t.trim().length>0,"type must be a non-empty string");let n=e.pm_format_version;return n!==void 0&&I(typeof n=="number"&&Number.isInteger(n)&&n>=ro,`pm_format_version must be an integer >= ${ro}`),t}function yl(e,t){let n=e.status;I(typeof n=="string"&&n.trim().length>0,"status must be a non-empty string");let r=t?.statusRegistry,o=vn(n,r),i=r?r.definitions.map(s=>s.id):[...tn];I(o!==void 0,`status must be one of: ${i.join(", ")}`)}function gl(e){let t=e.priority;I(typeof t=="number"&&Number.isInteger(t)&&[0,1,2,3,4].includes(t),"priority must be an integer 0..4");let n=e.tags;I(Array.isArray(n),"tags must be an array");for(let r of n)I(typeof r=="string","tags entries must be strings")}function bl(e){let t=e.confidence;if(t!==void 0){if(typeof t=="number"){I(Number.isInteger(t)&&t>=0&&t<=100,"confidence number value must be an integer 0..100");return}if(typeof t=="string"){let n=t.trim().toLowerCase(),r=n==="med"||rn.includes(n);I(r,`confidence string value must be one of: ${[...rn,"med"].join(", ")}`);return}I(!1,"confidence must be a number or string")}}function vl(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);I(r,`severity value must be one of: ${[...nn,"med"].join(", ")}`)}function wl(e){e.regression!==void 0&&typeof e.regression!="boolean"&&Oe("regression must be a boolean")}function El(e){let t=e.reminders;if(t!==void 0){I(Array.isArray(t),"reminders must be an array");for(let n of t){let r=Pt(n,"reminders entries must be objects");I(typeof r.at=="string","reminder.at must be a string"),I(pe(r.at),"reminder.at must be a valid ISO timestamp"),I(typeof r.text=="string","reminder.text must be a string"),I(r.text.trim().length>0,"reminder.text must not be empty")}}}function kl(e){for(let t of["title","description","location","timezone"])e[t]!==void 0&&(I(typeof e[t]=="string",`event.${t} must be a string`),I(e[t].trim().length>0,`event.${t} must not be empty`))}function Il(e){e.recurrence!==void 0&&(pl(e.recurrence),e.recurrence.until!==void 0&&I(he(e.recurrence.until,e.start_at)>=0,"event.recurrence.until must be at or after event.start_at"))}function Sl(e){let t=Pt(e,"events entries must be objects");I(typeof t.start_at=="string","event.start_at must be a string"),I(pe(t.start_at),"event.start_at must be a valid ISO timestamp"),t.end_at!==void 0&&(I(typeof t.end_at=="string","event.end_at must be a string"),I(pe(t.end_at),"event.end_at must be a valid ISO timestamp"),I(he(t.end_at,t.start_at)>0,"event.end_at must be after event.start_at")),kl(t),t.all_day!==void 0&&I(typeof t.all_day=="boolean","event.all_day must be a boolean"),Il(t)}function Tl(e){let t=e.events;if(t!==void 0){I(Array.isArray(t),"events must be an array");for(let n of t)Sl(n)}}function Cl(e){for(let t of["source_type","source_owner","design","external_ref"]){let n=e[t];n!==void 0&&I(typeof n=="string",`${t} must be a string`)}}function Ol(e){let t=e.type_options;if(t===void 0)return;let n=Pt(t,"type_options must be an object");for(let[r,o]of Object.entries(n))I(r.trim().length>0,"type_options keys must be non-empty"),I(typeof o=="string","type_options values must be strings"),I(o.trim().length>0,"type_options values must be non-empty strings")}function xl(e,t,n){if(n?.fieldRegistry)for(let r of n.fieldRegistry.definitions){let o=e[r.metadata_key];if(o===void 0){ul(r,t)&&Oe(`missing required schema field: ${r.metadata_key}`);continue}try{e[r.metadata_key]=At(r,o,`metadata field "${r.metadata_key}"`,"metadata")}catch(i){Oe(String(i?.message).replace(/^Invalid\s+/u,""))}}}function Rl(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let n=Gs(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 _o(e,t){let n=Pt(e,"item metadata must be an object"),r=hl(n);yl(n,t),gl(n),bl(n),vl(n),wl(n),co(n,"created_at"),co(n,"updated_at"),n.deadline!==void 0&&co(n,"deadline"),El(n),Tl(n),mo(n,"closed_at","closed_at"),mo(n,"completed_at","completed_at"),Cl(n),Ol(n),xl(n,r,t),Rl(n,t)}function Al(e){if(!(!e||e.length===0))return[...e].map(t=>({id:t.id.trim(),kind:t.kind,created_at:t.created_at,author:t.author?.trim()||void 0,source_kind:t.source_kind?.trim()||void 0,author_source:t.author_source})).sort((t,n)=>{let r=he(t.created_at,n.created_at);if(r!==0)return r;let o=t.id.localeCompare(n.id);if(o!==0)return o;let i=t.kind.localeCompare(n.kind);return i!==0?i:(t.source_kind??"").localeCompare(n.source_kind??"")})}function lo(e){if(!(!e||e.length===0))return[...e].sort((t,n)=>{let r=he(t.created_at,n.created_at);if(r!==0)return r;let o=t.text.localeCompare(n.text);return o!==0?o:t.author.localeCompare(n.author)})}function Dl(e){if(!e||e.length===0)return;let t=[...e].map(n=>({at:n.at,text:n.text.trim()})).filter(n=>n.text.length>0).sort((n,r)=>{let o=he(n.at,r.at);return o!==0?o:n.text.localeCompare(r.text)});return t.length===0?void 0:t}function Nl(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)=>Tr(s)-Tr(a)),r=Array.from(new Set((e.by_month_day??[]).filter(s=>Number.isInteger(s)&&s>=1&&s<=31).map(s=>s))).sort((s,a)=>s-a),o=Array.from(new Set((e.exdates??[]).map(s=>s.trim()).filter(s=>pe(s)))).sort((s,a)=>he(s,a)),i={freq:t,interval:e.interval!==void 0&&e.interval>1?e.interval:void 0,count:e.count,until:e.until?.trim()||void 0,by_weekday:n.length>0?n:void 0,by_month_day:r.length>0?r:void 0,exdates:o.length>0?o:void 0};for(let[s,a]of Object.entries(i))a===void 0&&delete i[s];return i}function Ll(e){return!Array.isArray(e)||e.length===0?void 0:[...e].map(Pl).sort(jl)}function Pl(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:Nl(e.recurrence)};return In(t),t}function jl(e,t){return Bs([he(e.start_at,t.start_at),(e.end_at??"").localeCompare(t.end_at??""),(e.title??"").localeCompare(t.title??""),+!!e.all_day-+!!t.all_day,(e.timezone??"").localeCompare(t.timezone??""),(e.location??"").localeCompare(t.location??""),(e.description??"").localeCompare(t.description??""),JSON.stringify(e.recurrence??{}).localeCompare(JSON.stringify(t.recurrence??{}))])}function Ml(e){if(!(!e||e.length===0))return e.map(t=>({path:ct(t.path),scope:t.scope,note:t.note?.trim()||void 0}))}function Fl(e){if(!e||e.length===0)return;let t=e.map(Ul).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)=>Bs([he(n.recorded_at,r.recorded_at),n.run_id.localeCompare(r.run_id),n.kind.localeCompare(r.kind)]));return t.length>0?t:void 0}function st(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?Math.floor(e):void 0}function $l(e){return typeof e=="number"&&Number.isFinite(e)&&e>=1?Math.floor(e):void 0}function uo(e){return typeof e=="string"?e:""}function Hl(e){if(!Array.isArray(e))return;let t=e.filter(r=>r!==null&&typeof r=="object"&&typeof r.name=="string"&&r.name.trim().length>0&&typeof r.value=="number"&&Number.isFinite(r.value)&&typeof r.recorded_at=="string"&&r.recorded_at.trim().length>0).map(r=>({name:r.name.trim(),value:r.value,unit:typeof r.unit=="string"&&r.unit.trim()||void 0,threshold:typeof r.threshold=="number"&&Number.isFinite(r.threshold)?r.threshold:void 0,recorded_at:r.recorded_at.trim()})),n=[...new Map(t.map(r=>[r.name,r])).values()].sort((r,o)=>r.name.localeCompare(o.name)).slice(0,32);return n.length>0?n:void 0}function kn(e,t){return typeof e=="string"&&t.has(e)?e:void 0}function zl(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,fo),pm_context_mode:kn(n.pm_context_mode,fo),workspace_context_mode:kn(n.workspace_context_mode,Us),trust_reason:kn(n.trust_reason,al)}));return t.length>0?t:void 0}function Ul(e){let t=typeof e.run_id=="string"?e.run_id.trim():"",n=e.kind==="test"||e.kind==="test-all"?e.kind:"test",r=cl.has(e.status)?e.status:"failed",o={run_id:t,kind:n,status:r,started_at:uo(e.started_at),finished_at:uo(e.finished_at),recorded_at:uo(e.recorded_at),attempt:$l(e.attempt),resumed_from:e.resumed_from?.trim()||void 0,passed:st(e.passed)??0,failed:st(e.failed)??0,skipped:st(e.skipped)??0,items:st(e.items),linked_tests:st(e.linked_tests),fail_on_skipped_triggered:e.fail_on_skipped_triggered===!0?!0:void 0,measurements:Hl(e.measurements),executions:zl(e.executions)};return In(o),o}function Bl(e){if(!(!Array.isArray(e)||e.length===0))return e.map(Kl)}function Dt(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 ho(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function yo(e){return e==="__proto__"||e==="constructor"||e==="prototype"}function zs(e){if(!ho(e))return;let t=Object.entries(e).map(([n,r])=>[n.trim(),String(r).trim()]).filter(([n,r])=>n.length>0&&!yo(n)&&r.length>0).sort(([n],[r])=>n.localeCompare(r));return t.length>0?Object.fromEntries(t):void 0}function Wl(e){if(!ho(e))return;let t=Object.entries(e).map(([n,r])=>[n.trim(),Number(r)]).filter(([n,r])=>n.length>0&&!yo(n)&&Number.isFinite(r)).sort(([n],[r])=>n.localeCompare(r));return t.length>0?Object.fromEntries(t):void 0}function Vl(e){let t=e?.trim().toLowerCase();if(!(!t||!fo.has(t)))return t}function ql(e){let t=e?.trim().toLowerCase();if(!(!t||!Us.has(t)))return t}function Gl(e,t){if(t===!0)return{provenance_invalid:!0};if(e===void 0)return{};if(!ho(e))return{provenance_invalid:!0};let n=w(e.author),r=w(e.created_at),o=e.source_kind;return!n||!r||!pe(r)||o!=="local_mutation"&&o!=="merge_union"?{provenance_invalid:!0}:{provenance:{author:n,created_at:r,source_kind:o,source_ref:w(e.source_ref)}}}function Kl(e){let t={command:e.command?.trim()||void 0,path:e.path?ct(e.path):void 0,scope:e.scope,timeout_seconds:typeof e.timeout_seconds=="number"&&Number.isFinite(e.timeout_seconds)&&e.timeout_seconds>0?e.timeout_seconds:void 0,pm_context_mode:Vl(e.pm_context_mode),workspace_context_mode:ql(e.workspace_context_mode),...Gl(e.provenance,e.provenance_invalid),updated_by:w(e.updated_by),updated_at:w(e.updated_at),env_set:zs(e.env_set),env_clear:Dt(e.env_clear),shared_host_safe:e.shared_host_safe===!0?!0:void 0,assert_stdout_contains:Dt(e.assert_stdout_contains),assert_stdout_regex:Dt(e.assert_stdout_regex),assert_stderr_contains:Dt(e.assert_stderr_contains),assert_stderr_regex:Dt(e.assert_stderr_regex),assert_stdout_min_lines:st(e.assert_stdout_min_lines),assert_json_field_equals:zs(e.assert_json_field_equals),assert_json_field_gte:Wl(e.assert_json_field_gte),note:e.note?.trim()||void 0};return In(t),t}function Xl(e){if(!(!e||e.length===0))return[...e].map(t=>({path:ct(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 w(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function Yl(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=w(r.id),i=w(r.kind);if(!o||!i)continue;let s={id:o,kind:i},a=w(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 Jl(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=w(r.path);if(!o)continue;let i={path:ct(o)};(r.scope==="project"||r.scope==="global")&&(i.scope=r.scope);let s=w(r.note);s&&(i.note=s),t.push(i)}return t.length>0?t:void 0}function Ql(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=w(r.command),i=w(r.path);if(!o&&!i)continue;let s={};o&&(s.command=o),i&&(s.path=ct(i));let a=w(r.note);a&&(s.note=a),t.push(s)}return t.length>0?t:void 0}function Zl(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=w(r.path);if(!o)continue;let i={path:ct(o)};(r.scope==="project"||r.scope==="global")&&(i.scope=r.scope);let s=w(r.note);s&&(i.note=s),t.push(i)}return t.length>0?t:void 0}function eu(e){if(e===null||typeof e!="object")return;let t=e,n=w(t.id),r=w(t.title),o=w(t.status),i=o&&dl.has(o)?o:void 0,s=$i(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 tu(d,t),d}function tu(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=w(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",Yl],["files","files",Jl],["tests","tests",Ql],["docs","docs",Zl]];for(let[i,s,a]of o){let c=a(t[s]);c&&(e[i]=c)}}function nu(e){if(!Array.isArray(e))return;let t=e.flatMap(n=>{let r=eu(n);return r?[r]:[]});return t.sort((n,r)=>n.order-r.order),t.length>0?t:void 0}function ru(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=w(r.decision);if(!o||!i||!s)continue;let a={ts:o,author:i,decision:s},c=w(r.rationale);c&&(a.rationale=c);let d=w(r.evidence);d&&(a.evidence=d);let l=w(r.step_id);l&&(a.step_id=l),t.push(a)}return t.length>0?t:void 0}function ou(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=w(r.text);if(!o||!i||!s)continue;let a={ts:o,author:i,text:s},c=w(r.step_id);c&&(a.step_id=c),t.push(a)}return t.length>0?t:void 0}function iu(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=w(r.text);if(!o)continue;let i={text:o},s=w(r.command);s&&(i.command=s);let a=w(r.expected);a&&(i.expected=a),t.push(i)}return t.length>0?t:void 0}function su(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 at(e){let t=0;for(;t<e.length&&e[t]===`
6
- `;)t+=1;return e.slice(t).trimEnd()}function au(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 cu(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(t==="med")return"medium";if(nn.includes(t))return t}function Nt(e){return e||void 0}function du(e,t){let n=e,r=t;for(let[o,i]of Object.entries(r))yo(o)||Object.prototype.hasOwnProperty.call(n,o)||i===void 0||(n[o]=i)}function lu(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]=At(r,o,`metadata field "${r.metadata_key}"`,"metadata"))}}function uu(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let n=Gs(t),r=Object.keys(e).filter(o=>!n.has(o)).sort((o,i)=>o.localeCompare(i));r.length>0&&t.unknownFieldPolicy==="reject"&&Oe(`unknown schema fields are not allowed: ${r.join(", ")}`),r.length>0&&t.onWarning?.(`item_unknown_schema_fields:${r.join(",")}`)}function Sn(e,t={}){let n=Vs(t),r=vn(e.status,n?.statusRegistry)??e.status,o=Array.from(new Set((Array.isArray(e.tags)?e.tags:[]).filter(s=>typeof s=="string").map(s=>s.trim().toLowerCase()).filter(Boolean))).sort((s,a)=>s.localeCompare(a)),i={id:e.id,title:e.title,description:e.description,type:e.type,pm_format_version:Ls(e.pm_format_version),source_type:w(e.source_type),type_options:su(e.type_options),status:r,priority:e.priority,tags:o,created_at:e.created_at,updated_at:e.updated_at,dependencies:Al(e.dependencies),comments:lo(e.comments),notes:lo(e.notes),learnings:lo(e.learnings),files:Ml(e.files),tests:Bl(e.tests),test_runs:Fl(e.test_runs),docs:Xl(e.docs),deadline:Nt(e.deadline),reminders:Dl(e.reminders),events:Ll(e.events),closed_at:Nt(e.closed_at),completed_at:Nt(e.completed_at),assignee:w(e.assignee),claim_principal:w(e.claim_principal),source_owner:w(e.source_owner),author:Nt(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:w(e.definition_of_ready),order:e.order,goal:w(e.goal),objective:w(e.objective),value:w(e.value),impact:w(e.impact),outcome:w(e.outcome),why_now:w(e.why_now),parent:w(e.parent),reviewer:w(e.reviewer),risk:e.risk??void 0,confidence:au(e.confidence),sprint:w(e.sprint),release:w(e.release),blocked_by:w(e.blocked_by),blocked_reason:w(e.blocked_reason),unblock_note:w(e.unblock_note),reporter:w(e.reporter),severity:cu(e.severity),environment:w(e.environment),repro_steps:w(e.repro_steps),resolution:w(e.resolution),expected_result:w(e.expected_result),actual_result:w(e.actual_result),affected_version:w(e.affected_version),fixed_version:w(e.fixed_version),component:w(e.component),regression:e.regression,customer_impact:w(e.customer_impact),close_reason:Nt(e.close_reason),plan_mode:w(e.plan_mode),plan_scope:w(e.plan_scope),plan_harness:w(e.plan_harness),plan_resume_context:w(e.plan_resume_context),plan_steps:nu(e.plan_steps),plan_decisions:ru(e.plan_decisions),plan_discoveries:ou(e.plan_discoveries),plan_validation:iu(e.plan_validation)};return du(i,e),lu(i,n),uu(i,n),In(i),i}function Ks(e){return T(e,we)}function fu(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 mu(e){if(!e.startsWith("{"))return{frontMatter:"",body:e};let t=fu(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 _u(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 po(e,t){return Sn(e,{...t,onWarning:void 0})}function pu(e,t,n={}){let r=_u(e);r.stripped&&n.onWarning?.("json_markdown_leading_yaml_frontmatter_ignored");let{frontMatter:o,body:i}=mu(r.content);o||(e.trimStart().startsWith("{")&&Lt("json_markdown","JSON front matter is not valid JSON"),Lt("json_markdown","JSON Markdown item document is missing JSON front matter"));let s;try{s=JSON.parse(o)}catch{Lt("json_markdown","JSON front matter is not valid JSON")}return qs(s,n.requireSupportedFormat),_o(s,t),{metadata:po(s,n),body:at(i)}}function hu(e,t,n={}){let r;try{r=ao(e).value}catch{Lt("toon","TOON item document is not valid TOON")}I(typeof r=="object"&&r!==null&&!Array.isArray(r),"TOON item document must be an object");let o=r;if(qs(Object.prototype.hasOwnProperty.call(o,"front_matter")?o.front_matter:o,n.requireSupportedFormat),!Ws.some(a=>Object.prototype.hasOwnProperty.call(o,a))&&!Object.prototype.hasOwnProperty.call(o,"front_matter")&&Lt("toon","TOON input does not have the shape of an item document"),Object.prototype.hasOwnProperty.call(o,"front_matter"))return _o(o.front_matter,t),I(o.body===void 0||typeof o.body=="string","TOON item document body must be a string"),{metadata:po(o.front_matter,n),body:at(typeof o.body=="string"?o.body:"")};let{body:i,...s}=o;return I(i===void 0||typeof i=="string","TOON item document body must be a string"),_o(s,t),{metadata:po(s,n),body:at(typeof i=="string"?i:"")}}function yu(e,t={}){let n=Sn(e.metadata,t),r=Ks(n),o=JSON.stringify(r,null,2),i=at(e.body??"");return i?`${o}
4
+ `).slice(-4096)];for(let g of m){if(g.length===0||g.length>262144)continue;let S=Od(g);if(p.model??=S.model,p.version??=S.version,p.model&&p.version)break}let v=Object.freeze(p);return Kr.clear(),Kr.set(s,v),v[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=We.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 Nd(e){if(e<=Xr)return[{offset:0,length:e}];let t=Math.floor(Xr/2);return[{offset:e-t,length:t},{offset:0,length:t}]}function Ld(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 Pd(e,t){let n={},r=4096;for(let o of Nd(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(Ld(n,a),n.model&&n.effort)break;if(n.model&&n.effort||r<=0)break}return n}function jd(e,t,n){let r=P(n.CODEX_THREAD_ID);if(!r||!/^[A-Za-z0-9_-]{1,128}$/u.test(r))return;let o=We.join(t.home_dir??Es.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,bs);return}try{let c=q.openSync(a,"r");try{let d=q.fstatSync(c).size,l=Pd(c,d);return hn.set(i,l),l[e]}finally{q.closeSync(c)}}catch{hn.set(i,bs);return}}function Md(e,t,n,r){let o=bn.getStore();if(!(t.probes_enabled!==!1&&o?.probesEnabled!==!1&&!["0","false","off"].includes(P(n.PM_AGENT_PROBES)?.toLowerCase()??"")))return;let i=r?.provenance_resolvers[e];if(i==="claude_session_file")return Ad(e,t,n);if(i==="codex_session_file")return jd(e,t,n);if(i==="ai_agent_version"){let s=P(n.AI_AGENT);return!s||!r||!yn(s,r.harness)?void 0:/(?:^|[@/\s])v?(\d+\.\d+(?:\.\d+)?(?:[-+][A-Za-z0-9.-]+)?)$/u.exec(s)?.[1]?.slice(0,256)}}function Fd(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":Os(n,r).status}function to(e){return e||(ks.getStore()??{env:process.env,argv:process.argv})}function $d(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 Hd(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 zd(e){let t=e.find(([n])=>n!==void 0);return t?.[0]?{value:t[0],source:t[1]}:void 0}function Ud(e,t,n,r,o,i){let s=`PM_AGENT_${e.toUpperCase().replaceAll("-","_")}`,a=new Set([...Jr,...Object.keys(r?.provenance_environment_keys??{})]),c,d,l;a.has(e)&&(c=ze(e,P(n[s])?.slice(0,256)),l=ze(e,Cs(t.argv??[],e)),d=ze(e,Td(t.argv??[],e)));let f={...r?.provenance_environment_keys,model:r?.model_environment_keys},_={...t.client_info?.provenance,model:t.client_info?.model},p=Gr(o?.provenance,e),m=ze(e,eo(n,f[e])),v=ze(e,Gr(_,e)),g=ze(e,Gr(t.provenance,e)),S=Md(e,t,n,r);return zd([[c,"override"],[p,"session"],[l,"argv"],[m,"environment"],[v,"mcp_client"],[g,"host"],[S,"probe"]])??Hd(e,i)??(d?{value:d,source:"argv"}:void 0)}function Wd(e,t){if(!(!e||!t))return Ed("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([...Jr,...i,...Object.keys(n?.provenance_resolvers??{}),...Object.keys(e.provenance??{}),...Object.keys(e.client_info?.provenance??{}),...Object.keys(r?.provenance??{})]),a={};for(let c of s){let d=Ud(c,e,t,n,r,o);d?a[c]=d:n&&(c!=="version"||n.provenance_unavailable_dimensions.includes(c))&&(a[c]=null)}return a}function Jh(e){let t=e.map(Te),n=new Map(Ts.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&&!Sd(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 Vd(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>Xr||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 Qh(){let e=new Map(Ss.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 Zh(e){let t=e.map(Vd),n=new Map(Ss.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 ey(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 ty(e,t){return ks.run(e,t)}function ny(e,t,n={}){let r=e.map(Te);return Zr(r),bn.run({descriptors:r,probesEnabled:n.probesEnabled!==!1},t)}function no(e){let t=to(e),n=t.env??{},r=Zr(t.descriptors),o=[...(t.argv??[]).slice(0,3),...t.process_labels??[]].slice(0,64).map(m=>m.slice(0,512)),i=t.client_info?.name.trim().toLowerCase()??"",s=r.find(m=>$d(m,n,o,i)),a=Mr(t,n),c=[eo(n,s?.session_environment_keys),P(t.client_info?.session)?.slice(0,256)].find(m=>m!==void 0),d=Wd(s?.harness,c),l=gs({cwd:t.cwd??process.cwd(),env:n,key:d}),f=Bd(t,n,s,a,l),_=f.model,p=[["harness",s?.harness],["model",_?.value],["model_source",_?.source],["session",c],["instance",d],["provenance",Object.keys(f).length>0?f:void 0],["episode",a.episode]];return Object.fromEntries(p.filter(m=>m[1]!==void 0))}function qd(e){return e==="unavailable"?{status:"unavailable",reason:"harness_unavailable"}:e==="missing"?{status:"unavailable",reason:"resolver_input_missing"}:{status:"failed",reason:"resolver_failed"}}function Gd(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=Fd(a,n,r,o);return{...qd(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 Rs(e){let t=to(e),n=no(t),r=Zr(t.descriptors).find(d=>d.harness===n.harness),o=t.env??{},i=t.probes_enabled!==!1&&bn.getStore()?.probesEnabled!==!1&&!["0","false","off"].includes(P(o.PM_AGENT_PROBES)?.toLowerCase()??""),s=Mr(t,o),a=[o.PM_AGENT_ROLE,s.provenance?.role,eo(o,r?.provenance_environment_keys.role),t.client_info?.provenance?.role,t.provenance?.role,Cs(t.argv??[],"role")].some(d=>{let l=P(d)?.slice(0,256);return l!==void 0&&ze("role",l)===void 0}),c=Object.fromEntries(Jr.map(d=>[d,Gd(d,n,r,t,o,i,d==="role"&&a)]));return{...n,provenance_outcomes:c}}function ry(){return process.env.PM_AUTHOR}function oy(e){e===void 0?delete process.env.PM_AUTHOR:process.env.PM_AUTHOR=e}function iy(e){return no(e).harness}function Kd(e,t,n){let r=to(n),o=no(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 As(e){let t=gn.getStore();return t?.author===e?t.source:e.startsWith("harness:")?"detected":e==="unknown"?"unknown":"asserted"}function Ds(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 Ns(e){let t=gn.getStore();return t?.author===e&&t.source==="detected"&&t.instance?`${e}#${t.instance}`:e}function Ls(e,t){let n=Kd(e,t);return gn.enterWith(n),n.author}import{createHash as Xd}from"node:crypto";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ca5b60a5-80a7-5e7d-917f-4c7649bcbab6")}catch{}})();var cy=["sha256","sha512"],Yd="sha256",Ps="sha256";function Be(e){if(e===void 0)return Yd;if(e==="sha256"||e==="sha512")return e;throw new TypeError(`unsupported_history_hash_algorithm:${String(e)}`)}function Ce(e,t){return Xd(Be(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]="c35d4830-d7d1-5ee4-99bc-ab52cc3e4e09")}catch{}})();var ro=1,oo=2;function io(e){return Math.max(Rt(e),e.tests?.some(t=>t.updated_by!==void 0||t.updated_at!==void 0)?2:1)}function Rt(e){let t=e.pm_format_version;return typeof t=="number"&&Number.isInteger(t)&&t>=1?t:1}function js(e){if(!(typeof e!="number"||!Number.isInteger(e)||e<=1))return e}function Jd(e,t=2,n=t){return e<n?"outdated":e>t?"ahead":"current"}function ly(e,t=2,n=t){let r=[],o=[];for(let i of e){let s=Jd(i.version,t,n);s==="outdated"?r.push(i.ref):s==="ahead"&&o.push(i.ref)}return{outdated:r.sort((i,s)=>i.localeCompare(s)),ahead:o.sort((i,s)=>i.localeCompare(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]="515840b7-cf86-5d71-8ac1-beac7fd7c8a8")}catch{}})();var Qd={"in-progress":"in_progress",cancelled:"canceled"};function vn(e,t){if(t){let o=ns(e,t);if(o)return o}if(typeof e!="string")return;let n=e.trim().toLowerCase();if(!n)return;let r=Qd[n]??n;if(tn.includes(r))return r}function it(e,t){return vn(e,t)??e}function ge(e,t){return t.terminal_statuses.has(it(e,t))}import{encode as ul}from"@toon-format/toon";import{isDeepStrictEqual as zs}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]="4d5692ce-ec33-5eb4-bd9b-7497ffe25b0e")}catch{}})();var Zd=16;function so(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 el(e){return[...new Set([os(e),so(e.key),so(e.cli_flag),...e.cli_aliases.map(t=>so(t))])]}function $s(e,t){for(let n of el(t)){if(!Object.hasOwn(e,n))continue;let r=e[n];if(r!==void 0)return r}}function Hs(e){return Array.isArray(e)?e.flatMap(t=>Hs(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 Ms(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 h(`${t} must be one of true|false|1|0|yes|no`,b.USAGE)}function Fs(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 h(`${t} must be a number`,b.USAGE);return r}function tl(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 h(`${t} must be valid JSON ${n}`,b.USAGE)}function nl(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 rl(e,t,n){if(t.const!==void 0&&D(e)!==D(t.const))return`${n} must equal ${D(t.const)}`;if(t.enum!==void 0&&!t.enum.some(r=>D(r)===D(e)))return`${n} must be one of ${t.enum.map(r=>D(r)).join("|")}`;if(!nl(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"&&!ls(e))return`${n} must be an RFC 3339 date-time`}}function ol(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=wn(i,t.items,`${n}[${o}]`,r+1);if(s)return s}}}function il(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=wn(s,a,`${n}.${i}`,r+1);if(c)return c}}function wn(e,t,n,r=0){if(r>Zd)return`${n} value schema exceeds maximum depth`;let o=rl(e,t,n);if(o)return o;let i=ol(e,t,n,r);if(i)return i;let s=il(e,t,n,r);if(s)return s;if(!t.one_of)return;let a=0;for(let c of t.one_of)if(wn(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=wn(t,e.value_schema,n);if(r)throw new h(r,b.USAGE);return t}function sl(e,t,n,r){let o=r==="option"&&Array.isArray(t)?t[t.length-1]:t;if(o!==void 0)return Ve(e,tl(o,n,e.type),n)}function At(e,t,n,r="option"){let o=n??`--${e.cli_flag}`;if(e.type==="array"||e.type==="object")return sl(e,t,o,r);if(e.repeatable||e.type==="string_array"){let s=Hs(t);return e.type==="number"?Ve(e,s.map(a=>Fs(a,o)),o):e.type==="boolean"?Ve(e,s.map(a=>Ms(a,o)),o):Ve(e,s,o)}let i=Array.isArray(t)?t[t.length-1]:t;if(i!==void 0)return e.type==="number"?Ve(e,Fs(i,o),o):e.type==="boolean"?Ve(e,Ms(i,o),o):Ve(e,typeof i=="string"?i:String(i),o)}function al(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 vy(e,t,n){let r={},o=[];for(let i of t.command_to_fields.get("create")??[]){let s=$s(e,i);if(s===void 0){al(i,n)&&o.push(`--${i.cli_flag}`);continue}r[i.metadata_key]=At(i,s)}return{values:r,missing_required_flags:[...new Set(o)].sort((i,s)=>i.localeCompare(s))}}function wy(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=$s(e,s);a!==void 0&&(i.has(s.metadata_key)||(i.add(s.metadata_key),r[s.metadata_key]=At(s,a)))}return r}import{decode as cl}from"@toon-format/toon";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="aaa2be03-9478-5fbe-82e6-e4fc86e3735b")}catch{}})();function ao(e){return{value:cl(e),usedScalarBracketEscape:!1}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="79626299-17a8-573a-9b66-ce37c65e2f5d")}catch{}})();var dl=/^\s*(<<<<<<<|=======|>>>>>>>)(?:\s.*)?$/;function ll(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(dl);if(!i)continue;let s=i[1];n.push({line:r+1,marker:s,text:o})}return n}function En(e){return ll(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]="a3768d4b-d991-516e-91ff-7bd9373c192f")}catch{}})();var fo=new Set(["schema","tracker","auto","none"]),qs=new Set(["source","isolated","snapshot"]),fl=new Set(["legacy","local_mutation","local_source_ref","acknowledged","invalid_provenance","foreign_source_ref"]),ml=new Set(["passed","failed","stopped","canceled"]),_l=new Set(Pi);function ct(e){return e.replaceAll("\\","/")}function Gs(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 Ks=["id","title","description","created_at","updated_at"],pl=new Set(we);function Xs(e){if(e?.schema)return{statusRegistry:un(e.schema),fieldRegistry:rs(e.schema),unknownFieldPolicy:e.schema.unknown_field_policy??"allow",extensionFieldNames:new Set(e.extensionFieldNames??[]),onWarning:e.onWarning}}function hl(e,t){return e.required?e.required_types.length===0?!0:e.required_types.map(n=>n.toLowerCase()).includes(t.trim().toLowerCase()):!1}function xe(e){let t=e.match(/^([a-z_][\w.]*)\s/u)?.[1];throw new h(`Invalid item metadata: ${e}`,b.GENERIC_FAILURE,{code:"item_document_invalid",reason:e.includes("required")?"missing_required_field":"schema_validation_error",...t?{field:t}:{},required:"Provide an item document whose metadata satisfies the active runtime schema.",why:e})}function Lt(e,t){throw new h(t,b.GENERIC_FAILURE,{code:"item_document_invalid",reason:"syntax_error",format:e,required:`Provide a syntactically valid ${e==="toon"?"TOON":"JSON Markdown"} item document.`,why:"The document could not be decoded far enough to validate item metadata."})}function Ys(e,t){if(!t||typeof e!="object"||e===null)return;let n=Rt(e);if(!(n<=oo))throw new h(`Stored item uses format version ${n}; this runtime supports up to ${oo}. Upgrade pm before reading or changing this item.`,b.CONFLICT,{code:"item_format_version_unsupported",format_version:n,required:"Upgrade to a pm runtime supporting the stored item format.",nextSteps:["Preserve the original item and history; do not lower pm_format_version to bypass compatibility checks."]})}function Js(e){let t=new Set(pl);for(let n of e.fieldRegistry?.definitions??[])t.add(n.metadata_key);for(let n of e.extensionFieldNames)t.add(n);return t}function I(e,t){e||xe(t)}function Pt(e,t){return(typeof e!="object"||e===null||Array.isArray(e))&&xe(t),e}function co(e,t){let n=e[t];I(typeof n=="string",`${t} must be a string`),I(pe(n),`${t} must be a valid ISO timestamp`)}function Us(e,t,n){let r=e[t];r!==void 0&&I(typeof r=="number"&&Number.isInteger(r)&&r>=1,`${n} must be an integer >= 1`)}function mo(e,t,n){let r=e[t];r!==void 0&&(I(typeof r=="string",`${n} must be a string`),I(pe(r),`${n} must be a valid ISO timestamp`))}function yl(e){if(e!==void 0){I(Array.isArray(e),"event.recurrence.by_weekday must be an array");for(let t of e){I(typeof t=="string","event.recurrence.by_weekday entries must be strings");let n=t.trim().toLowerCase();I(sn.includes(n),`event.recurrence.by_weekday entries must be one of: ${sn.join(", ")}`)}}}function gl(e){if(e!==void 0){I(Array.isArray(e),"event.recurrence.by_month_day must be an array");for(let t of e)I(typeof t=="number"&&Number.isInteger(t)&&t>=1&&t<=31,"event.recurrence.by_month_day entries must be integers 1..31")}}function bl(e){if(e!==void 0){I(Array.isArray(e),"event.recurrence.exdates must be an array");for(let t of e)I(typeof t=="string","event.recurrence.exdates entries must be strings"),I(pe(t),"event.recurrence.exdates entries must be valid ISO timestamps")}}function vl(e){let t=Pt(e,"event.recurrence must be an object");I(typeof t.freq=="string","event.recurrence.freq must be a string");let n=t.freq.trim().toLowerCase();I(on.includes(n),`event.recurrence.freq must be one of: ${on.join(", ")}`),Us(t,"interval","event.recurrence.interval"),Us(t,"count","event.recurrence.count"),mo(t,"until","event.recurrence.until"),yl(t.by_weekday),gl(t.by_month_day),bl(t.exdates)}function wl(e){for(let r of Ks)I(typeof e[r]=="string",`${r} is required and must be a string`);let t=e.type;I(typeof t=="string"&&t.trim().length>0,"type must be a non-empty string");let n=e.pm_format_version;return n!==void 0&&I(typeof n=="number"&&Number.isInteger(n)&&n>=ro,`pm_format_version must be an integer >= ${ro}`),t}function El(e,t){let n=e.status;I(typeof n=="string"&&n.trim().length>0,"status must be a non-empty string");let r=t?.statusRegistry,o=vn(n,r),i=r?r.definitions.map(s=>s.id):[...tn];I(o!==void 0,`status must be one of: ${i.join(", ")}`)}function kl(e){let t=e.priority;I(typeof t=="number"&&Number.isInteger(t)&&[0,1,2,3,4].includes(t),"priority must be an integer 0..4");let n=e.tags;I(Array.isArray(n),"tags must be an array");for(let r of n)I(typeof r=="string","tags entries must be strings")}function Il(e){let t=e.confidence;if(t!==void 0){if(typeof t=="number"){I(Number.isInteger(t)&&t>=0&&t<=100,"confidence number value must be an integer 0..100");return}if(typeof t=="string"){let n=t.trim().toLowerCase(),r=n==="med"||rn.includes(n);I(r,`confidence string value must be one of: ${[...rn,"med"].join(", ")}`);return}I(!1,"confidence must be a number or string")}}function Sl(e){let t=e.severity;if(t===void 0)return;typeof t!="string"&&xe("severity must be a string");let n=t.trim().toLowerCase(),r=n==="med"||nn.includes(n);I(r,`severity value must be one of: ${[...nn,"med"].join(", ")}`)}function Tl(e){e.regression!==void 0&&typeof e.regression!="boolean"&&xe("regression must be a boolean")}function Cl(e){let t=e.reminders;if(t!==void 0){I(Array.isArray(t),"reminders must be an array");for(let n of t){let r=Pt(n,"reminders entries must be objects");I(typeof r.at=="string","reminder.at must be a string"),I(pe(r.at),"reminder.at must be a valid ISO timestamp"),I(typeof r.text=="string","reminder.text must be a string"),I(r.text.trim().length>0,"reminder.text must not be empty")}}}function xl(e){for(let t of["title","description","location","timezone"])e[t]!==void 0&&(I(typeof e[t]=="string",`event.${t} must be a string`),I(e[t].trim().length>0,`event.${t} must not be empty`))}function Ol(e){e.recurrence!==void 0&&(vl(e.recurrence),e.recurrence.until!==void 0&&I(he(e.recurrence.until,e.start_at)>=0,"event.recurrence.until must be at or after event.start_at"))}function Rl(e){let t=Pt(e,"events entries must be objects");I(typeof t.start_at=="string","event.start_at must be a string"),I(pe(t.start_at),"event.start_at must be a valid ISO timestamp"),t.end_at!==void 0&&(I(typeof t.end_at=="string","event.end_at must be a string"),I(pe(t.end_at),"event.end_at must be a valid ISO timestamp"),I(he(t.end_at,t.start_at)>0,"event.end_at must be after event.start_at")),xl(t),t.all_day!==void 0&&I(typeof t.all_day=="boolean","event.all_day must be a boolean"),Ol(t)}function Al(e){let t=e.events;if(t!==void 0){I(Array.isArray(t),"events must be an array");for(let n of t)Rl(n)}}function Dl(e){for(let t of["source_type","source_owner","design","external_ref"]){let n=e[t];n!==void 0&&I(typeof n=="string",`${t} must be a string`)}}function Nl(e){let t=e.type_options;if(t===void 0)return;let n=Pt(t,"type_options must be an object");for(let[r,o]of Object.entries(n))I(r.trim().length>0,"type_options keys must be non-empty"),I(typeof o=="string","type_options values must be strings"),I(o.trim().length>0,"type_options values must be non-empty strings")}function Ll(e,t,n){if(n?.fieldRegistry)for(let r of n.fieldRegistry.definitions){let o=e[r.metadata_key];if(o===void 0){hl(r,t)&&xe(`missing required schema field: ${r.metadata_key}`);continue}try{e[r.metadata_key]=At(r,o,`metadata field "${r.metadata_key}"`,"metadata")}catch(i){xe(String(i?.message).replace(/^Invalid\s+/u,""))}}}function Pl(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let n=Js(t),r=Object.keys(e).filter(o=>!n.has(o)).sort((o,i)=>o.localeCompare(i));r.length!==0&&(t.unknownFieldPolicy==="reject"?xe(`unknown schema fields are not allowed: ${r.join(", ")}`):t.onWarning?.(`item_unknown_schema_fields:${r.join(",")}`))}function _o(e,t){let n=Pt(e,"item metadata must be an object"),r=wl(n);El(n,t),kl(n),Il(n),Sl(n),Tl(n),co(n,"created_at"),co(n,"updated_at"),n.deadline!==void 0&&co(n,"deadline"),Cl(n),Al(n),mo(n,"closed_at","closed_at"),mo(n,"completed_at","completed_at"),Dl(n),Nl(n),Ll(n,r,t),Pl(n,t)}function jl(e){if(!(!e||e.length===0))return[...e].map(t=>({id:t.id.trim(),kind:t.kind,created_at:t.created_at,author:t.author?.trim()||void 0,source_kind:t.source_kind?.trim()||void 0,author_source:t.author_source})).sort((t,n)=>{let r=he(t.created_at,n.created_at);if(r!==0)return r;let o=t.id.localeCompare(n.id);if(o!==0)return o;let i=t.kind.localeCompare(n.kind);return i!==0?i:(t.source_kind??"").localeCompare(n.source_kind??"")})}function lo(e){if(!(!e||e.length===0))return[...e].sort((t,n)=>{let r=he(t.created_at,n.created_at);if(r!==0)return r;let o=t.text.localeCompare(n.text);return o!==0?o:t.author.localeCompare(n.author)})}function Ml(e){if(!e||e.length===0)return;let t=[...e].map(n=>({at:n.at,text:n.text.trim()})).filter(n=>n.text.length>0).sort((n,r)=>{let o=he(n.at,r.at);return o!==0?o:n.text.localeCompare(r.text)});return t.length===0?void 0:t}function Fl(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)=>Tr(s)-Tr(a)),r=Array.from(new Set((e.by_month_day??[]).filter(s=>Number.isInteger(s)&&s>=1&&s<=31).map(s=>s))).sort((s,a)=>s-a),o=Array.from(new Set((e.exdates??[]).map(s=>s.trim()).filter(s=>pe(s)))).sort((s,a)=>he(s,a)),i={freq:t,interval:e.interval!==void 0&&e.interval>1?e.interval:void 0,count:e.count,until:e.until?.trim()||void 0,by_weekday:n.length>0?n:void 0,by_month_day:r.length>0?r:void 0,exdates:o.length>0?o:void 0};for(let[s,a]of Object.entries(i))a===void 0&&delete i[s];return i}function $l(e){return!Array.isArray(e)||e.length===0?void 0:[...e].map(Hl).sort(zl)}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:Fl(e.recurrence)};return In(t),t}function zl(e,t){return Gs([he(e.start_at,t.start_at),(e.end_at??"").localeCompare(t.end_at??""),(e.title??"").localeCompare(t.title??""),+!!e.all_day-+!!t.all_day,(e.timezone??"").localeCompare(t.timezone??""),(e.location??"").localeCompare(t.location??""),(e.description??"").localeCompare(t.description??""),JSON.stringify(e.recurrence??{}).localeCompare(JSON.stringify(t.recurrence??{}))])}function Ul(e){if(!(!e||e.length===0))return e.map(t=>({path:ct(t.path),scope:t.scope,note:t.note?.trim()||void 0}))}function Wl(e){if(!e||e.length===0)return;let t=e.map(Gl).filter(n=>n.run_id.length>0&&n.started_at.length>0&&n.finished_at.length>0&&n.recorded_at.length>0).sort((n,r)=>Gs([he(n.recorded_at,r.recorded_at),n.run_id.localeCompare(r.run_id),n.kind.localeCompare(r.kind)]));return t.length>0?t:void 0}function st(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?Math.floor(e):void 0}function Bl(e){return typeof e=="number"&&Number.isFinite(e)&&e>=1?Math.floor(e):void 0}function uo(e){return typeof e=="string"?e:""}function Vl(e){if(!Array.isArray(e))return;let t=e.filter(r=>r!==null&&typeof r=="object"&&typeof r.name=="string"&&r.name.trim().length>0&&typeof r.value=="number"&&Number.isFinite(r.value)&&typeof r.recorded_at=="string"&&r.recorded_at.trim().length>0).map(r=>({name:r.name.trim(),value:r.value,unit:typeof r.unit=="string"&&r.unit.trim()||void 0,threshold:typeof r.threshold=="number"&&Number.isFinite(r.threshold)?r.threshold:void 0,recorded_at:r.recorded_at.trim()})),n=[...new Map(t.map(r=>[r.name,r])).values()].sort((r,o)=>r.name.localeCompare(o.name)).slice(0,32);return n.length>0?n:void 0}function kn(e,t){return typeof e=="string"&&t.has(e)?e:void 0}function ql(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,fo),pm_context_mode:kn(n.pm_context_mode,fo),workspace_context_mode:kn(n.workspace_context_mode,qs),trust_reason:kn(n.trust_reason,fl)}));return t.length>0?t:void 0}function Gl(e){let t=typeof e.run_id=="string"?e.run_id.trim():"",n=e.kind==="test"||e.kind==="test-all"?e.kind:"test",r=ml.has(e.status)?e.status:"failed",o={run_id:t,kind:n,status:r,started_at:uo(e.started_at),finished_at:uo(e.finished_at),recorded_at:uo(e.recorded_at),attempt:Bl(e.attempt),resumed_from:e.resumed_from?.trim()||void 0,passed:st(e.passed)??0,failed:st(e.failed)??0,skipped:st(e.skipped)??0,items:st(e.items),linked_tests:st(e.linked_tests),fail_on_skipped_triggered:e.fail_on_skipped_triggered===!0?!0:void 0,measurements:Vl(e.measurements),executions:ql(e.executions)};return In(o),o}function Kl(e){if(!(!Array.isArray(e)||e.length===0))return e.map(Zl)}function Dt(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 go(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function bo(e){return e==="__proto__"||e==="constructor"||e==="prototype"}function Ws(e){if(!go(e))return;let t=Object.entries(e).map(([n,r])=>[n.trim(),String(r).trim()]).filter(([n,r])=>n.length>0&&!bo(n)&&r.length>0).sort(([n],[r])=>n.localeCompare(r));return t.length>0?Object.fromEntries(t):void 0}function Xl(e){if(!go(e))return;let t=Object.entries(e).map(([n,r])=>[n.trim(),Number(r)]).filter(([n,r])=>n.length>0&&!bo(n)&&Number.isFinite(r)).sort(([n],[r])=>n.localeCompare(r));return t.length>0?Object.fromEntries(t):void 0}function Yl(e){let t=e?.trim().toLowerCase();if(!(!t||!fo.has(t)))return t}function Jl(e){let t=e?.trim().toLowerCase();if(!(!t||!qs.has(t)))return t}function Ql(e,t){if(t===!0)return{provenance_invalid:!0};if(e===void 0)return{};if(!go(e))return{provenance_invalid:!0};let n=w(e.author),r=w(e.created_at),o=e.source_kind;return!n||!r||!pe(r)||o!=="local_mutation"&&o!=="merge_union"?{provenance_invalid:!0}:{provenance:{author:n,created_at:r,source_kind:o,source_ref:w(e.source_ref)}}}function Zl(e){let t={command:e.command?.trim()||void 0,path:e.path?ct(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:Yl(e.pm_context_mode),workspace_context_mode:Jl(e.workspace_context_mode),...Ql(e.provenance,e.provenance_invalid),updated_by:w(e.updated_by),updated_at:w(e.updated_at),env_set:Ws(e.env_set),env_clear:Dt(e.env_clear),shared_host_safe:e.shared_host_safe===!0?!0:void 0,assert_stdout_contains:Dt(e.assert_stdout_contains),assert_stdout_regex:Dt(e.assert_stdout_regex),assert_stderr_contains:Dt(e.assert_stderr_contains),assert_stderr_regex:Dt(e.assert_stderr_regex),assert_stdout_min_lines:st(e.assert_stdout_min_lines),assert_json_field_equals:Ws(e.assert_json_field_equals),assert_json_field_gte:Xl(e.assert_json_field_gte),note:e.note?.trim()||void 0};return In(t),t}function eu(e){if(!(!e||e.length===0))return[...e].map(t=>({path:ct(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 w(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function tu(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=w(r.id),i=w(r.kind);if(!o||!i)continue;let s={id:o,kind:i},a=w(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 nu(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=w(r.path);if(!o)continue;let i={path:ct(o)};(r.scope==="project"||r.scope==="global")&&(i.scope=r.scope);let s=w(r.note);s&&(i.note=s),t.push(i)}return t.length>0?t:void 0}function ru(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=w(r.command),i=w(r.path);if(!o&&!i)continue;let s={};o&&(s.command=o),i&&(s.path=ct(i));let a=w(r.note);a&&(s.note=a),t.push(s)}return t.length>0?t:void 0}function ou(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=w(r.path);if(!o)continue;let i={path:ct(o)};(r.scope==="project"||r.scope==="global")&&(i.scope=r.scope);let s=w(r.note);s&&(i.note=s),t.push(i)}return t.length>0?t:void 0}function iu(e){if(e===null||typeof e!="object")return;let t=e,n=w(t.id),r=w(t.title),o=w(t.status),i=o&&_l.has(o)?o:void 0,s=zi(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 su(d,t),d}function su(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=w(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",tu],["files","files",nu],["tests","tests",ru],["docs","docs",ou]];for(let[i,s,a]of o){let c=a(t[s]);c&&(e[i]=c)}}function au(e){if(!Array.isArray(e))return;let t=e.flatMap(n=>{let r=iu(n);return r?[r]:[]});return t.sort((n,r)=>n.order-r.order),t.length>0?t:void 0}function cu(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=w(r.decision);if(!o||!i||!s)continue;let a={ts:o,author:i,decision:s},c=w(r.rationale);c&&(a.rationale=c);let d=w(r.evidence);d&&(a.evidence=d);let l=w(r.step_id);l&&(a.step_id=l),t.push(a)}return t.length>0?t:void 0}function du(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=w(r.text);if(!o||!i||!s)continue;let a={ts:o,author:i,text:s},c=w(r.step_id);c&&(a.step_id=c),t.push(a)}return t.length>0?t:void 0}function lu(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=w(r.text);if(!o)continue;let i={text:o},s=w(r.command);s&&(i.command=s);let a=w(r.expected);a&&(i.expected=a),t.push(i)}return t.length>0?t:void 0}function uu(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 at(e){let t=0;for(;t<e.length&&e[t]===`
6
+ `;)t+=1;return e.slice(t).trimEnd()}function fu(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 mu(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(t==="med")return"medium";if(nn.includes(t))return t}function Nt(e){return e||void 0}function _u(e,t){let n=e,r=t;for(let[o,i]of Object.entries(r))bo(o)||Object.prototype.hasOwnProperty.call(n,o)||i===void 0||(n[o]=i)}function pu(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]=At(r,o,`metadata field "${r.metadata_key}"`,"metadata"))}}function hu(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let n=Js(t),r=Object.keys(e).filter(o=>!n.has(o)).sort((o,i)=>o.localeCompare(i));r.length>0&&t.unknownFieldPolicy==="reject"&&xe(`unknown schema fields are not allowed: ${r.join(", ")}`),r.length>0&&t.onWarning?.(`item_unknown_schema_fields:${r.join(",")}`)}function Sn(e,t={}){let n=Xs(t),r=vn(e.status,n?.statusRegistry)??e.status,o=Array.from(new Set((Array.isArray(e.tags)?e.tags:[]).filter(s=>typeof s=="string").map(s=>s.trim().toLowerCase()).filter(Boolean))).sort((s,a)=>s.localeCompare(a)),i={id:e.id,title:e.title,description:e.description,type:e.type,pm_format_version:js(e.pm_format_version),source_type:w(e.source_type),type_options:uu(e.type_options),status:r,priority:e.priority,tags:o,created_at:e.created_at,updated_at:e.updated_at,dependencies:jl(e.dependencies),comments:lo(e.comments),notes:lo(e.notes),learnings:lo(e.learnings),files:Ul(e.files),tests:Kl(e.tests),test_runs:Wl(e.test_runs),docs:eu(e.docs),deadline:Nt(e.deadline),reminders:Ml(e.reminders),events:$l(e.events),closed_at:Nt(e.closed_at),completed_at:Nt(e.completed_at),assignee:w(e.assignee),claim_principal:w(e.claim_principal),source_owner:w(e.source_owner),author:Nt(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:w(e.definition_of_ready),order:e.order,goal:w(e.goal),objective:w(e.objective),value:w(e.value),impact:w(e.impact),outcome:w(e.outcome),why_now:w(e.why_now),parent:w(e.parent),reviewer:w(e.reviewer),risk:e.risk??void 0,confidence:fu(e.confidence),sprint:w(e.sprint),release:w(e.release),blocked_by:w(e.blocked_by),blocked_reason:w(e.blocked_reason),unblock_note:w(e.unblock_note),reporter:w(e.reporter),severity:mu(e.severity),environment:w(e.environment),repro_steps:w(e.repro_steps),resolution:w(e.resolution),expected_result:w(e.expected_result),actual_result:w(e.actual_result),affected_version:w(e.affected_version),fixed_version:w(e.fixed_version),component:w(e.component),regression:e.regression,customer_impact:w(e.customer_impact),close_reason:Nt(e.close_reason),plan_mode:w(e.plan_mode),plan_scope:w(e.plan_scope),plan_harness:w(e.plan_harness),plan_resume_context:w(e.plan_resume_context),plan_steps:au(e.plan_steps),plan_decisions:cu(e.plan_decisions),plan_discoveries:du(e.plan_discoveries),plan_validation:lu(e.plan_validation)};return _u(i,e),pu(i,n),hu(i,n),In(i),i}function Qs(e){return T(e,we)}function yu(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 gu(e){if(!e.startsWith("{"))return{frontMatter:"",body:e};let t=yu(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 bu(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 po(e,t){return Sn(e,{...t,onWarning:void 0})}function vu(e,t,n={}){let r=bu(e);r.stripped&&n.onWarning?.("json_markdown_leading_yaml_frontmatter_ignored");let{frontMatter:o,body:i}=gu(r.content);o||(e.trimStart().startsWith("{")&&Lt("json_markdown","JSON front matter is not valid JSON"),Lt("json_markdown","JSON Markdown item document is missing JSON front matter"));let s;try{s=JSON.parse(o)}catch{Lt("json_markdown","JSON front matter is not valid JSON")}return Ys(s,n.requireSupportedFormat),_o(s,t),{metadata:po(s,n),body:at(i)}}function wu(e,t,n={}){let r;try{r=ao(e).value}catch{Lt("toon","TOON item document is not valid TOON")}I(typeof r=="object"&&r!==null&&!Array.isArray(r),"TOON item document must be an object");let o=r;if(Ys(Object.prototype.hasOwnProperty.call(o,"front_matter")?o.front_matter:o,n.requireSupportedFormat),!Ks.some(a=>Object.prototype.hasOwnProperty.call(o,a))&&!Object.prototype.hasOwnProperty.call(o,"front_matter")&&Lt("toon","TOON input does not have the shape of an item document"),Object.prototype.hasOwnProperty.call(o,"front_matter"))return _o(o.front_matter,t),I(o.body===void 0||typeof o.body=="string","TOON item document body must be a string"),{metadata:po(o.front_matter,n),body:at(typeof o.body=="string"?o.body:"")};let{body:i,...s}=o;return I(i===void 0||typeof i=="string","TOON item document body must be a string"),_o(s,t),{metadata:po(s,n),body:at(typeof i=="string"?i:"")}}function Eu(e,t={}){let n=Sn(e.metadata,t),r=Qs(n),o=at(e.body??"");yo(JSON.parse(JSON.stringify(r))),yo({body:o});let i=JSON.stringify(r,null,2);return o?`${i}
8
8
 
9
- ${i}
10
- `:`${o}
11
- `}function gu(e,t={}){let n=Sn(e.metadata,t),r=Ks(n),o=at(e.body??""),i={...r,body:o},s=JSON.parse(JSON.stringify(i)),a=sl(s),c;try{c=ao(a).value}catch(d){throw new h("Refusing to persist a TOON item document that the configured decoder cannot read back.",b.GENERIC_FAILURE,{code:"item_document_roundtrip_failed",reason:"encode_decode_error",format:"toon",required:"Upgrade or repair the TOON codec before retrying the mutation; no item bytes were written.",why:d instanceof Error?d.message:String(d)})}if(!$s(c,s)){let d=typeof c=="object"&&c!==null&&!Array.isArray(c)?c:{},l=Object.keys(s).find(f=>!$s(s[f],d[f]))??"document";throw new h(`Refusing to persist a lossy TOON item document; round-trip mismatch at field "${l}".`,b.GENERIC_FAILURE,{code:"item_document_roundtrip_failed",reason:"encode_decode_mismatch",format:"toon",field:l,required:"Upgrade or repair the TOON codec before retrying the mutation; no item bytes were written.",why:"The encoded document decoded to a value different from the canonical item payload."})}return`${a}
12
- `}function Tn(e,t={}){let n=En(e);if(n)throw new h(`Merge conflict markers detected in item document at line ${n.line} (${n.marker}). Resolve <<<<<<< ======= >>>>>>> markers and retry.`,b.GENERIC_FAILURE,{code:"merge_conflict_markers_detected",reason:"merge_conflict",required:"Resolve merge-conflict markers in the item file before parsing or mutation commands.",why:"Partially merged documents can corrupt item metadata and history integrity.",examples:["git status","git add <resolved-file> && git commit"],nextSteps:["Resolve conflicts, save the file, then rerun the pm command."]});let r=t.format??"toon",o=Vs(t);return r==="toon"?hu(e,o,t):pu(e,o,t)}function Xs(e,t={}){return(t.format??"toon")==="toon"?gu(e,t):yu(e,t)}function ne(e,t={}){return{metadata:Sn(e.metadata,t),body:at(e.body??"")}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="cfedb84f-0525-5e02-af0a-d0e5691b5e0a")}catch{}})();async function bu(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 h(`History for ${t} contains merge conflict markers at line ${r.line} (${r.marker}). Resolve <<<<<<< ======= >>>>>>> markers and retry.`,b.GENERIC_FAILURE,{code:"history_merge_conflict_markers_detected",required:"Repair the history stream by resolving merge-conflict markers.",why:"Conflict markers break JSONL parsing and invalidate deterministic audit history.",examples:[`pm history ${t}`,`pm restore ${t} <timestamp-or-version>`],nextSteps:["Resolve or restore the history file, then rerun the command."]});let o=[];for(let[i,s]of n.split(/\r?\n/).entries()){let a=s.trim();if(a)try{o.push(JSON.parse(a))}catch{throw new h(`History for ${t} contains invalid JSON at line ${i+1}. Repair or restore the history stream and retry.`,b.GENERIC_FAILURE,{code:"history_json_invalid",nextSteps:[`Run pm history-repair ${t} --salvage-tail --dry-run to check whether only an invalid suffix is damaged.`]})}}return{raw:n,entries:o}}async function be(e,t){return(await bu(e,t)).entries}import Do from"fast-json-patch";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="3bfeb8d2-52c2-587a-9611-c4d5817cb47e")}catch{}})();function Ys(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 pa from"fast-json-patch";import ua from"node:fs/promises";import Ku from"node:path";import M from"node:fs/promises";import H from"node:path";import{randomUUID as Qs}from"node:crypto";import{createRequire as Tu}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]="3c2c29c0-0034-54d4-9dbd-2e9af047784e")}catch{}})();var vu=["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","tests_update","update_audit","update_ownership_bypass"],wu=["append","cancel","claim","close","comment_add","create","learning_add","note_add","reopen"],Eu=new Set(vu),ku=new Set(wu),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 dt(e){return e.event_class==="substantive"||e.event_class==="maintenance"?e.event_class:Eu.has(e.op)?"maintenance":ku.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]="812b558d-59f3-58d6-b04e-6a4f8689e866")}catch{}})();function go(e){let t=process.emitWarning;process.emitWarning=(n,...r)=>{n==="SQLite is an experimental feature and might change at any time"&&r[0]==="ExperimentalWarning"||Reflect.apply(t,process,[n,...r])};try{return e(["node","sqlite"].join(":")).DatabaseSync??null}catch{return null}finally{process.emitWarning=t}}function Cn(e,t){let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>=22?go(t):null}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="59e8ff0e-d2af-5f7a-a64b-1b86e075acdc")}catch{}})();var Cu="history-event-index.sqlite",wo="5",Ou=8,xu="history-event-index",Eo=300,Zs=3e4,Ru="history-event-index-invalidation",Au="history-event-index-invalidations",Du=Eo*2*1e3,An=Symbol("history-index-lock-contended"),qe=new Map;function Mt(e){return H.join(e,"runtime",Cu)}function Nn(e){return H.join(e,"runtime",Au)}async function Nu(e){let t=await M.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 vo(e){let t=await Nu(e);return{pending:(await Promise.all(t.pending.map(async n=>{let r=/^(\d+)-(unknown|\d+)-(\d+)-.+\.pending$/u.exec(n);if(r!==null){let o=r[2];if(await ls({pid:Number(r[1]),...o==="unknown"?{}:{process_start_identity:o}},Math.max(0,Date.now()-Number(r[3])),Du))return n}return await M.rm(H.join(Nn(e),n),{force:!0}),null}))).filter(n=>n!==null),committed:t.committed}}async function jt(e,t){let n=await V(e,Ru,Eo,`history-event-index-invalidation:${process.pid}`,!1,!1,Zs);try{return await t()}finally{await n()}}async function Lu(e){let t=Nn(e);await M.mkdir(t,{recursive:!0});let n=Qs(),r=await ds(),o=H.join(t,`${r.pid}-${r.process_start_identity??"unknown"}-${Date.now()}-${n}.pending`);return await M.writeFile(o,`pending
13
- `,{flag:"wx"}),{pendingPath:o,committedPath:H.join(t,`${n}.committed`)}}function Pu(e,t){return e.length===t.length&&e.every((n,r)=>n===t[r])}async function On(e){try{await M.rm(Mt(e),{force:!0})}catch{}}async function Ln(e,t){let n=await V(e,xu,Eo,`history-event-index:${process.pid}`,!1,!1,Zs);try{return await t()}finally{await n()}}async function ea(e){let t=H.join(e,"history"),n=await M.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=H.join(t,s.name),d=await M.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 ta(c,a);r.streams.set(a,{signature:l,byte_size:Number(d.size),events:f.map((_,p)=>({stream_id:a,stream_offset:p,entry:_}))}),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(ko)),qe.delete(e),qe.set(e,r),qe.size>Ou){let s=qe.keys().next().value;qe.delete(s)}return{events:r.ordered_events,stream_byte_sizes:new Map([...r.streams].map(([s,a])=>[s,a.byte_size]))}}async function ta(e,t){let n=await be(e,t);for(let[r,o]of n.entries())if(typeof o.ts!="string"||!nt(o.ts.trim()))throw new h(`History for ${t} contains an invalid or sub-millisecond timestamp at line ${r+1}. Repair or restore the history stream and retry.`,b.GENERIC_FAILURE,{code:"history_timestamp_invalid"});return n.map(r=>({...r,ts:new Date(r.ts.trim()).toISOString()}))}async function ju(e){return(await ea(e)).events}var bo;function Pn(){return bo!==void 0||(bo=Cn(process.versions.node,Tu(import.meta.url))),bo}function Mu(e){e.exec(`
9
+ ${o}
10
+ `:`${i}
11
+ `}var ku=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/u;function ho(e,t){return typeof e=="string"?Bs(e,t):e===null||typeof e!="object"?null:Array.isArray(e)?Vs(e.map((n,r)=>()=>ho(n,`${t}[${r}]`))):Vs(Object.entries(e).map(([n,r])=>()=>{let o=t?`${t}.${n}`:n;return Bs(n,`${o} (key)`)??ho(r,o)}))}function Bs(e,t){let n=e.search(ku);return n<0?null:{path:t,index:n}}function Vs(e){for(let t of e){let n=t();if(n!==null)return n}return null}function yo(e){let t=ho(e,"");if(t!==null)throw new h(`Item field ${t.path} contains an unpaired surrogate code unit at index ${t.index}; persisted item text requires well-formed Unicode.`,b.USAGE,{code:"text_unpaired_surrogate",field:t.path,required:"Provide well-formed UTF-16 text: keep emoji and other astral characters whole and avoid lone \\uD800-\\uDFFF JSON escapes.",why:"Persisted item text must remain well-formed in every supported format; a lone surrogate can cause an unclassified encoder fault.",nextSteps:[`Repair the ${t.path} value (for example String.prototype.toWellFormed() or re-truncate on a character boundary) and retry.`,"Run pm <command> --help --json to review the text fields the command accepts."]})}function Iu(e,t={}){let n=Sn(e.metadata,t),r=Qs(n),o=at(e.body??""),i={...r,body:o},s=JSON.parse(JSON.stringify(i));yo(s);let a=ul(s),c;try{c=ao(a).value}catch(d){throw new h("Refusing to persist a TOON item document that the configured decoder cannot read back.",b.GENERIC_FAILURE,{code:"item_document_roundtrip_failed",reason:"encode_decode_error",format:"toon",required:"Upgrade or repair the TOON codec before retrying the mutation; no item bytes were written.",why:d instanceof Error?d.message:String(d)})}if(!zs(c,s)){let d=typeof c=="object"&&c!==null&&!Array.isArray(c)?c:{},l=Object.keys(s).find(f=>!zs(s[f],d[f]))??"document";throw new h(`Refusing to persist a lossy TOON item document; round-trip mismatch at field "${l}".`,b.GENERIC_FAILURE,{code:"item_document_roundtrip_failed",reason:"encode_decode_mismatch",format:"toon",field:l,required:"Upgrade or repair the TOON codec before retrying the mutation; no item bytes were written.",why:"The encoded document decoded to a value different from the canonical item payload."})}return`${a}
12
+ `}function Tn(e,t={}){let n=En(e);if(n)throw new h(`Merge conflict markers detected in item document at line ${n.line} (${n.marker}). Resolve <<<<<<< ======= >>>>>>> markers and retry.`,b.GENERIC_FAILURE,{code:"merge_conflict_markers_detected",reason:"merge_conflict",required:"Resolve merge-conflict markers in the item file before parsing or mutation commands.",why:"Partially merged documents can corrupt item metadata and history integrity.",examples:["git status","git add <resolved-file> && git commit"],nextSteps:["Resolve conflicts, save the file, then rerun the pm command."]});let r=t.format??"toon",o=Xs(t);return r==="toon"?wu(e,o,t):vu(e,o,t)}function Zs(e,t={}){return(t.format??"toon")==="toon"?Iu(e,t):Eu(e,t)}function ne(e,t={}){return{metadata:Sn(e.metadata,t),body:at(e.body??"")}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="cfedb84f-0525-5e02-af0a-d0e5691b5e0a")}catch{}})();async function Su(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 h(`History for ${t} contains merge conflict markers at line ${r.line} (${r.marker}). Resolve <<<<<<< ======= >>>>>>> markers and retry.`,b.GENERIC_FAILURE,{code:"history_merge_conflict_markers_detected",required:"Repair the history stream by resolving merge-conflict markers.",why:"Conflict markers break JSONL parsing and invalidate deterministic audit history.",examples:[`pm history ${t}`,`pm restore ${t} <timestamp-or-version>`],nextSteps:["Resolve or restore the history file, then rerun the command."]});let o=[];for(let[i,s]of n.split(/\r?\n/).entries()){let a=s.trim();if(a)try{o.push(JSON.parse(a))}catch{throw new h(`History for ${t} contains invalid JSON at line ${i+1}. Repair or restore the history stream and retry.`,b.GENERIC_FAILURE,{code:"history_json_invalid",nextSteps:[`Run pm history-repair ${t} --salvage-tail --dry-run to check whether only an invalid suffix is damaged.`]})}}return{raw:n,entries:o}}async function be(e,t){return(await Su(e,t)).entries}import Lo from"fast-json-patch";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="3bfeb8d2-52c2-587a-9611-c4d5817cb47e")}catch{}})();function ea(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 ba from"fast-json-patch";import pa from"node:fs/promises";import ef from"node:path";import M from"node:fs/promises";import H from"node:path";import{randomUUID as na}from"node:crypto";import{createRequire as Du}from"node:module";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="3c2c29c0-0034-54d4-9dbd-2e9af047784e")}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","tests_update","update_audit","update_ownership_bypass"],Cu=["append","cancel","claim","close","comment_add","create","learning_add","note_add","reopen"],xu=new Set(Tu),Ou=new Set(Cu),Ru=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 Au(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 dt(e){return e.event_class==="substantive"||e.event_class==="maintenance"?e.event_class:xu.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=Au(t);return n!==void 0&&Ru.has(n)})?"maintenance":"substantive"}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="812b558d-59f3-58d6-b04e-6a4f8689e866")}catch{}})();function vo(e){let t=process.emitWarning;process.emitWarning=(n,...r)=>{n==="SQLite is an experimental feature and might change at any time"&&r[0]==="ExperimentalWarning"||Reflect.apply(t,process,[n,...r])};try{return e(["node","sqlite"].join(":")).DatabaseSync??null}catch{return null}finally{process.emitWarning=t}}function Cn(e,t){let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>=22?vo(t):null}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="59e8ff0e-d2af-5f7a-a64b-1b86e075acdc")}catch{}})();var Nu="history-event-index.sqlite",ko="5",Lu=8,Pu="history-event-index",Io=300,ra=3e4,ju="history-event-index-invalidation",Mu="history-event-index-invalidations",Fu=Io*2*1e3,An=Symbol("history-index-lock-contended"),qe=new Map;function Mt(e){return H.join(e,"runtime",Nu)}function Nn(e){return H.join(e,"runtime",Mu)}async function $u(e){let t=await M.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 Eo(e){let t=await $u(e);return{pending:(await Promise.all(t.pending.map(async n=>{let r=/^(\d+)-(unknown|\d+)-(\d+)-.+\.pending$/u.exec(n);if(r!==null){let o=r[2];if(await fs({pid:Number(r[1]),...o==="unknown"?{}:{process_start_identity:o}},Math.max(0,Date.now()-Number(r[3])),Fu))return n}return await M.rm(H.join(Nn(e),n),{force:!0}),null}))).filter(n=>n!==null),committed:t.committed}}async function jt(e,t){let n=await V(e,ju,Io,`history-event-index-invalidation:${process.pid}`,!1,!1,ra);try{return await t()}finally{await n()}}async function Hu(e){let t=Nn(e);await M.mkdir(t,{recursive:!0});let n=na(),r=await us(),o=H.join(t,`${r.pid}-${r.process_start_identity??"unknown"}-${Date.now()}-${n}.pending`);return await M.writeFile(o,`pending
13
+ `,{flag:"wx"}),{pendingPath:o,committedPath:H.join(t,`${n}.committed`)}}function zu(e,t){return e.length===t.length&&e.every((n,r)=>n===t[r])}async function xn(e){try{await M.rm(Mt(e),{force:!0})}catch{}}async function Ln(e,t){let n=await V(e,Pu,Io,`history-event-index:${process.pid}`,!1,!1,ra);try{return await t()}finally{await n()}}async function oa(e){let t=H.join(e,"history"),n=await M.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=H.join(t,s.name),d=await M.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 ia(c,a);r.streams.set(a,{signature:l,byte_size:Number(d.size),events:f.map((_,p)=>({stream_id:a,stream_offset:p,entry:_}))}),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(So)),qe.delete(e),qe.set(e,r),qe.size>Lu){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 ia(e,t){let n=await be(e,t);for(let[r,o]of n.entries())if(typeof o.ts!="string"||!nt(o.ts.trim()))throw new h(`History for ${t} contains an invalid or sub-millisecond timestamp at line ${r+1}. Repair or restore the history stream and retry.`,b.GENERIC_FAILURE,{code:"history_timestamp_invalid"});return n.map(r=>({...r,ts:new Date(r.ts.trim()).toISOString()}))}async function Uu(e){return(await oa(e)).events}var wo;function Pn(){return wo!==void 0||(wo=Cn(process.versions.node,Du(import.meta.url))),wo}function Wu(e){e.exec(`
14
14
  PRAGMA journal_mode = OFF;
15
15
  PRAGMA synchronous = OFF;
16
16
  CREATE TABLE metadata (
@@ -45,15 +45,15 @@ ${i}
45
45
  ON events(agent_harness, ts, stream_id, stream_offset);
46
46
  CREATE INDEX events_instance_order
47
47
  ON events(agent_instance, ts, stream_id, stream_offset);
48
- `),e.prepare("INSERT INTO metadata(key, value) VALUES ('version', ?)").run(wo)}function na(e,t){let n={...t.entry,ts:new Date(t.entry.ts.trim()).toISOString()};e.prepare(`INSERT INTO events(
48
+ `),e.prepare("INSERT INTO metadata(key, value) VALUES ('version', ?)").run(ko)}function sa(e,t){let n={...t.entry,ts:new Date(t.entry.ts.trim()).toISOString()};e.prepare(`INSERT INTO events(
49
49
  stream_id, stream_offset, ts, author, agent_harness,
50
50
  agent_instance, op, event_class, entry_json
51
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`).run(t.stream_id,t.stream_offset,n.ts,n.author,n.agent_harness??null,n.agent_instance??null,n.op,dt(n),JSON.stringify(n))}function ra(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 oa(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 Fu(e){let t=Pn();return t?Ln(e,async()=>{let n;try{n=await jt(e,()=>vo(e))}catch(s){if(s instanceof h&&s.code==="lock_conflict")return!1;throw s}if(n.pending.length>0)return!1;let r=Mt(e);await M.mkdir(H.dirname(r),{recursive:!0});let o=`${r}.${Qs()}.tmp`,i;try{i=new t(o),Mu(i),i.exec("BEGIN IMMEDIATE");let s=await ea(e);for(let c of s.events)na(i,c);for(let[c,d]of s.stream_byte_sizes)oa(i,c,d);i.exec("COMMIT"),i.close(),i=void 0;let a=await jt(e,async()=>{let c=await vo(e);return c.pending.length>0||!Pu(n.committed,c.committed)?!1:(await M.rm(r,{force:!0}),await M.rename(o,r),await Promise.all(n.committed.map(d=>M.rm(H.join(Nn(e),d),{force:!0}))),!0)});return a||await M.rm(o,{force:!0}),a}catch(s){throw i?.close(),await M.rm(o,{force:!0}),s}}):!1}function xn(e,t){return!t||t.length===0||t.includes(e)}function ko(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 $u(e,t){if(t.after_ts!==void 0&&t.after_stream_id!==void 0&&t.after_stream_offset!==void 0){if(ko(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 Hu(e,t){return!t.harnesses||t.harnesses.length===0||t.harnesses.includes(e.entry.agent_harness??"")?!0:e.entry.agent_harness===void 0&&(t.harness_alias_authors??[]).includes(e.entry.author)}function zu(e,t){return!$u(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)||!Hu(e,t)?!1:(t.provenance??[]).every(n=>{let r=e.entry.agent_provenance?.[n.dimension]?.value;return r!==void 0&&n.values.includes(r)})}async function eg(e,t){let n=Math.max(0,Math.floor(t.limit)),r=(await ju(e)).filter(o=>zu(o,t)).slice(0,n+1);return{events:r.slice(0,t.limit),has_more:r.length>t.limit}}async function ia(e,t,n){let r=H.dirname(H.dirname(e)),o=Pn();if(!o){await n();return}let i=!1;try{await Ln(r,async()=>{let s=Mt(r);try{await M.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!==wo)throw new TypeError("Unsupported history event index version")}catch{a?.close(),await M.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=H.basename(e,".jsonl"),l=a.prepare("SELECT COALESCE(MAX(stream_offset), -1) + 1 AS value FROM events WHERE stream_id = ?").get(d);na(a,{stream_id:d,stream_offset:Number(l.value),entry:t}),oa(a,d,(await M.stat(e)).size),a.exec("COMMIT"),a.close()}catch(d){if(a?.close(),!c)throw d;await On(r)}})}catch(s){if(i){await On(r);return}if(!(s instanceof h)||s.code!=="lock_conflict")throw s;let a;try{await jt(r,async()=>{let c=await Lu(r);a=c.pendingPath;try{await n(),i=!0}catch(d){throw await M.rm(c.pendingPath,{force:!0}),d}await M.rename(c.pendingPath,c.committedPath),await On(r)})}catch(c){if(i){await On(r);try{await M.rm(a,{force:!0})}catch{}return}throw c}}}async function Io(e){await M.rm(Mt(H.dirname(H.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 Uu(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 sa(e,t){let n=await vo(e);if(n.pending.length>0||n.committed.length>0)return;let r=new t(Mt(e),{readOnly:!0});try{if(r.prepare("SELECT value FROM metadata WHERE key = 'version'").get()?.value===wo)return r}catch(o){throw r.close(),o}r.close()}async function tg(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),Uu(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 sa(e,n),!s)return null;let a=await Wu(s,e,t.stream_ids);if(!await ca(s,e,a))return s.close(),s=void 0,null;let c=s.prepare(`SELECT stream_id, stream_offset, entry_json
51
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`).run(t.stream_id,t.stream_offset,n.ts,n.author,n.agent_harness??null,n.agent_instance??null,n.op,dt(n),JSON.stringify(n))}function aa(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 ca(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,()=>Eo(e))}catch(s){if(s instanceof h&&s.code==="lock_conflict")return!1;throw s}if(n.pending.length>0)return!1;let r=Mt(e);await M.mkdir(H.dirname(r),{recursive:!0});let o=`${r}.${na()}.tmp`,i;try{i=new t(o),Wu(i),i.exec("BEGIN IMMEDIATE");let s=await oa(e);for(let c of s.events)sa(i,c);for(let[c,d]of s.stream_byte_sizes)ca(i,c,d);i.exec("COMMIT"),i.close(),i=void 0;let a=await jt(e,async()=>{let c=await Eo(e);return c.pending.length>0||!zu(n.committed,c.committed)?!1:(await M.rm(r,{force:!0}),await M.rename(o,r),await Promise.all(n.committed.map(d=>M.rm(H.join(Nn(e),d),{force:!0}))),!0)});return a||await M.rm(o,{force:!0}),a}catch(s){throw i?.close(),await M.rm(o,{force:!0}),s}}):!1}function On(e,t){return!t||t.length===0||t.includes(e)}function So(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 Vu(e,t){if(t.after_ts!==void 0&&t.after_stream_id!==void 0&&t.after_stream_offset!==void 0){if(So(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 qu(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 Gu(e,t){return!Vu(e,t)||!On(e.entry.op,t.ops)||!On(e.entry.author,t.authors)||!On(e.entry.agent_instance??"",t.agent_instances)||!On(e.stream_id,t.stream_ids)||!qu(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 dg(e,t){let n=Math.max(0,Math.floor(t.limit)),r=(await Uu(e)).filter(o=>Gu(o,t)).slice(0,n+1);return{events:r.slice(0,t.limit),has_more:r.length>t.limit}}async function da(e,t,n){let r=H.dirname(H.dirname(e)),o=Pn();if(!o){await n();return}let i=!1;try{await Ln(r,async()=>{let s=Mt(r);try{await M.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!==ko)throw new TypeError("Unsupported history event index version")}catch{a?.close(),await M.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=H.basename(e,".jsonl"),l=a.prepare("SELECT COALESCE(MAX(stream_offset), -1) + 1 AS value FROM events WHERE stream_id = ?").get(d);sa(a,{stream_id:d,stream_offset:Number(l.value),entry:t}),ca(a,d,(await M.stat(e)).size),a.exec("COMMIT"),a.close()}catch(d){if(a?.close(),!c)throw d;await xn(r)}})}catch(s){if(i){await xn(r);return}if(!(s instanceof h)||s.code!=="lock_conflict")throw s;let a;try{await jt(r,async()=>{let c=await Hu(r);a=c.pendingPath;try{await n(),i=!0}catch(d){throw await M.rm(c.pendingPath,{force:!0}),d}await M.rename(c.pendingPath,c.committedPath),await xn(r)})}catch(c){if(i){await xn(r);try{await M.rm(a,{force:!0})}catch{}return}throw c}}}async function To(e){await M.rm(Mt(H.dirname(H.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 Ku(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 la(e,t){let n=await Eo(e);if(n.pending.length>0||n.committed.length>0)return;let r=new t(Mt(e),{readOnly:!0});try{if(r.prepare("SELECT value FROM metadata WHERE key = 'version'").get()?.value===ko)return r}catch(o){throw r.close(),o}r.close()}async function lg(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),Ku(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 la(e,n),!s)return null;let a=await Yu(s,e,t.stream_ids);if(!await fa(s,e,a))return s.close(),s=void 0,null;let c=s.prepare(`SELECT stream_id, stream_offset, entry_json
53
53
  FROM events${i}
54
54
  ORDER BY ts, stream_id, stream_offset
55
- LIMIT ?`).all(...o,Math.max(0,Math.floor(t.limit))+1),d=c.slice(0,t.limit).map(ra);return s.close(),s=void 0,d.includes(null)?null:{events:d,has_more:c.length>t.limit}}))}catch{return s?.close(),null}}function aa(e,t){let n=Object.create(null);for(let r of e){if(!t.has(r.stream_id)||dt(r.entry)!=="substantive")continue;let o=n[r.stream_id];(o===void 0||ko(o,r)<0)&&(n[r.stream_id]=r)}return n}async function Bu(e,t){if(H.basename(t)!==t)return null;try{return(await M.stat(H.join(e,"history",`${t}.jsonl`))).size}catch(n){if(te(n))return 0;throw n}}async function ca(e,t,n){for(let r=0;r<n.length;r+=500){let o=n.slice(r,r+500),i=new Map(e.prepare(`SELECT stream_id, byte_size FROM streams
56
- WHERE stream_id IN (${o.map(()=>"?").join(", ")})`).all(...o).map(a=>[String(a.stream_id),Number(a.byte_size)])),s=await Promise.all(o.map(a=>Bu(t,a)));for(let[a,c]of s.entries()){if(c===null)return!1;let d=o[a],l=i.get(d);if(!(c===0&&l===void 0)&&c!==l)return!1}}return!0}async function Wu(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 M.readdir(H.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 sa(t,e),!o)return null;if(!await ca(o,t,n))return o.close(),o=void 0,null;let i=[];for(let s=0;s<n.length;s+=500){let a=n.slice(s,s+500),c=o.prepare(`SELECT stream_id, stream_offset, entry_json
55
+ LIMIT ?`).all(...o,Math.max(0,Math.floor(t.limit))+1),d=c.slice(0,t.limit).map(aa);return s.close(),s=void 0,d.includes(null)?null:{events:d,has_more:c.length>t.limit}}))}catch{return s?.close(),null}}function ua(e,t){let n=Object.create(null);for(let r of e){if(!t.has(r.stream_id)||dt(r.entry)!=="substantive")continue;let o=n[r.stream_id];(o===void 0||So(o,r)<0)&&(n[r.stream_id]=r)}return n}async function Xu(e,t){if(H.basename(t)!==t)return null;try{return(await M.stat(H.join(e,"history",`${t}.jsonl`))).size}catch(n){if(te(n))return 0;throw n}}async function fa(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=>Xu(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 Yu(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 M.readdir(H.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 ta(e,t,n,r){if(!e)return null;let o;try{return await Ln(t,async()=>jt(t,async()=>{if(o=await la(t,e),!o)return null;if(!await fa(o,t,n))return o.close(),o=void 0,null;let i=[];for(let s=0;s<n.length;s+=500){let a=n.slice(s,s+500),c=o.prepare(`SELECT stream_id, stream_offset, entry_json
57
57
  FROM (
58
58
  SELECT stream_id, stream_offset, entry_json,
59
59
  ROW_NUMBER() OVER (
@@ -64,12 +64,12 @@ ${i}
64
64
  WHERE event_class = 'substantive'
65
65
  AND stream_id IN (${a.map(()=>"?").join(", ")})
66
66
  )
67
- WHERE recency_rank = 1`).all(...a).map(ra);if(c.includes(null))return o.close(),o=void 0,null;i.push(...c)}return o.close(),o=void 0,aa(i,r)}))}catch(i){return o?.close(),i instanceof h&&i.code==="lock_conflict"?An:null}}async function ng(e,t){let n=[...new Set(t.filter(a=>a.trim().length>0&&H.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 Fu(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=H.join(e,"history",`${a}.jsonl`);(await ta(c,a).catch(d=>{if(d instanceof h&&d.code==="history_timestamp_invalid")return[];throw d})).forEach((d,l)=>{s.push({stream_id:a,stream_offset:l,entry:d})})})),aa(s,r)}import So from"node:fs/promises";import lt from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="687cbe24-6d5c-5322-962d-455048eb84b5")}catch{}})();var Vu=lt.join("runtime","history-drift-cache.json"),da={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 la(e){return typeof e=="object"&&e!==null&&"code"in e&&typeof e.code=="string"?e.code:void 0}async function qu(e){let t=lt.join(e,Vu),n=!1,r="invalid_cache_path";try{n=(await So.stat(await So.realpath(e))).isDirectory()}catch(o){let i=la(o);r=i===void 0?"unknown":da[i]??"filesystem_error"}if(!n){Lr(`[pm] warning: history_drift_cache_invalidation_failed:${r}
68
- `);return}try{await So.rm(t,{force:!0})}catch(o){let i=la(o);if(te(o))return;let s=i===void 0?"unknown":da[i]??"filesystem_error";Lr(`[pm] warning: history_drift_cache_invalidation_failed:${s}
69
- `)}}async function jn(e){let t=lt.dirname(lt.resolve(e));lt.basename(t)==="history"&&await qu(lt.dirname(t))}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="4a3c3c82-0398-549c-8910-fdc69d971cb2")}catch{}})();var Xu={front_matter:{},body:""},Ge=3,Ft=[1,2,3],Yu=1,Ju=[1];function ha(e){return Ce(D(e),e.hash_algorithm)}function ut(e){return ln(D(e))}function Tg(e){return ln(D(e))}function xo(e){let t={...e,record_hash_version:Yu},{record_hash:n,...r}=t;return{...t,record_hash:ha(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(!Ju.includes(e.record_hash_version))return{ok:!1,error:"unsupported_record_hash_version"};let{record_hash:t,...n}=e;return ha(n)===e.record_hash?{ok:!0,coverage:"record_and_item_state"}:{ok:!1,error:"record_hash_mismatch"}}function Qu(e,t){let n={before_hash:e.before_hash,after_hash:e.after_hash,patch_hash:ut(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 ya(e,t,n={}){let r=$n(e);if(!r.ok)throw new TypeError(r.error);let o=ut(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!==ut(t.patch),s=xo({...t,...i?{reanchor_evidence:[...t.reanchor_evidence??[],Qu(e,n)]}:{}}),a=Ro(s);if(!a.ok)throw new TypeError(a.error);return s}function ga(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 Zu(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"&&ga(e.patch)}function ef(e){let t=e.record_hash_version!==void 0,n=e.record_hash!==void 0;return t===n}function tf(e){return!Ke(e)||!ef(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&&!ga(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||Zu(e.record)}function nf(e){try{for(let t of e){if(!tf(t))return!1;We(t.hash_algorithm)}return!0}catch{return!1}}function rf(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&&ut(t.patch)===e.patch_hash}function of(e,t,n){if(t.patch&&ut(t.patch)!==t.patch_hash)return{kind:"patch_hash_mismatch"};if(t.record)return rf(t)?{kind:"record",entry:t.record}:{kind:"record_hash_mismatch"};let r=t.patch??e.patch;if(ut(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 Ro(e){let t=e.reanchor_evidence;if(t===void 0)return{ok:!0,coverage:"none"};if(!Array.isArray(t)||!nf(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=of(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 Mn(e,t){return(e??"").localeCompare(t??"")}function fa(e,t){return(e??0)-(t??0)}function xe(e,t,n){return JSON.stringify(e??n).localeCompare(JSON.stringify(t??n))}function sf(e,t){return[e.scope.localeCompare(t.scope),Mn(e.path,t.path),Mn(e.command,t.command),fa(e.timeout_seconds,t.timeout_seconds),Mn(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,[]),fa(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,{}),Mn(e.note,t.note)].find(n=>n!==0)??0}function af(e){return!e||e==="/"?[]:e.startsWith("/")?e.slice(1).split("/").map(t=>t.replaceAll("~1","/").replaceAll("~0","~")):[]}function cf(e,t){let n=af(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 df(e,t){let n=[],r=structuredClone(e);for(let o of t){let i=o.op==="replace"&&!cf(r,o.path)?{...o,op:"add"}:o;n.push(i),r=pa.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 r=ne(e),o=t===1||t===2&&n?{...r.metadata,...r.metadata.dependencies===void 0?{}:{dependencies:r.metadata.dependencies.map(s=>({...s,id:s.id.toLowerCase()}))},...r.metadata.tests===void 0?{}:{tests:r.metadata.tests.map(({workspace_context_mode:s,provenance:a,provenance_invalid:c,...d})=>d)},...r.metadata.test_runs===void 0?{}:{test_runs:r.metadata.test_runs.map(({executions:s,...a})=>a)}}:r.metadata,i=t===1&&o.tests?{...o,tests:[...o.tests].sort(sf)}:o;return{front_matter:T(i,we),body:r.body}}function ma(e){if(!(e.metadata&&Object.keys(e.metadata).length>0))return{metadata:{},body:e.body??""};let t=ne(e);return{metadata:T(t.metadata,we),body:t.body}}function Cg(e){return ba(e,Ge)}function ba(e,t,n){if(!Ft.some(r=>r===t))throw new TypeError(`unsupported_item_hash_version:${String(t)}`);return Ce(D(Fn(e,t)),n)}function va(e,t,n){let r=ba(e,t,n);return t===2?[r,Ce(D(Fn(e,t,!0)),n)]:[r]}function Og(){return ln(D(Xu))}function ft(e){let t=_n(e.op),n=Fn(e.before,Ge),r=Fn(e.after,Ge),o=ma(e.before),i=ma(e.after),s=pa.compare(o,i),a=df(o,s),c=Rs(e.author),d=c.harness?Object.fromEntries(Object.entries(Os().provenance_outcomes).filter(([p,m])=>m.resolver!==void 0&&(m.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??Ns,_={hash_algorithm:f,ts:e.nowIso,author:e.author,author_source:e.authorSource??xs(e.author),...c.harness?{agent_harness:c.harness}:{},...c.model?{agent_model:c.model}:{},...c.model_source?{agent_model_source:c.model_source}:{},...c.instance?{agent_instance:c.instance}:{},...c.provenance?{agent_provenance:c.provenance}:{},...c.episode?{agent_episode:c.episode}:{},op:t,patch:a,before_hash:Ce(D(n),f),after_hash:Ce(D(r),f),item_hash_version:Ge,message:e.message===void 0?void 0:e.message,...l===void 0?{}:{context:l}};return xo({..._,event_class:dt(_)})}function Ke(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function To(e){return new h(e,b.GENERIC_FAILURE,{code:"history_timestamp_invalid"})}function wa(e){let t=e.ts.trim();if(t.length===0)return Ie();if(!nt(t))throw To("History timestamp must be a valid RFC 3339 date-time with millisecond precision");if(t!==e.ts)throw To("History timestamp must not contain surrounding whitespace");return e.ts}function _a(e,t){let n=e.ts;if(typeof n=="string"&&n.trim().length>0){if(!nt(n))throw To("History timestamp must be a valid RFC 3339 date-time with millisecond precision");return e}return{...e,ts:t}}function Co(e,t){let n=wa(t);if(typeof e=="string"){let r;try{r=JSON.parse(e)}catch{return e}return Ke(r)?JSON.stringify(_a(r,n)):e}return Ke(e)?JSON.stringify(_a(e,n)):JSON.stringify(e)}async function lf(e,t,n){if(n===!1)return!0;if(typeof n=="string"){let s=Co(n,t);return await Oo(e,s),await jn(e),await Io(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=Co(typeof r.line=="string"?r.line:r.entry??t,t);return await Oo(o,i),await jn(o),await Io(o),!0}async function Oo(e,t){let n;try{n=JSON.parse(t)}catch{n=null}if(!Ke(n)||n.op!=="create"){await Fi(e,t);return}await ua.mkdir(Ku.dirname(e),{recursive:!0});try{await ua.writeFile(e,`${t}
70
- `,{encoding:"utf8",flag:"wx"})}catch(r){throw r.code!=="EEXIST"?r:new h("This item identity is reserved by an existing history stream.",b.CONFLICT,{code:"item_identity_reserved",required:"Choose a new item ID or restore the original item from its history.",nextSteps:["Run pm history <id> --full, then pm restore <id> <version> to recover the original item."]})}}async function mt(e,t){let n=await xt("history_append",{history_path:e,entry:t});if(n.handled&&await lf(e,t,n.result))return;let r=t.ts.trim().length>0?t:{...t,ts:wa(t)},o=xo({...r,hash_algorithm:We(r.hash_algorithm),event_class:dt(r)});await ia(e,o,async()=>{await Oo(e,Co(o,o))}),await jn(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]="0c0cb8c7-4d7d-53f8-8ec2-d6dc98fc6dc5")}catch{}})();var _t={metadata:{},body:""};function Hn(){return structuredClone(_t)}function Fg(e,t=Ge,n){return Ao(e,t,n)[0]}function Ao(e,t,n){if(Object.keys(e.metadata).length===0||Array.isArray(e.metadata.tags))try{return va(zn(e),t,n)}catch{}let r=Ce(D({replay_fallback:!0,metadata:e.metadata,body:e.body}),n);return t===2?[r,r]:[r]}function Ia(e,t,n,r,o){let i=We(r.hash_algorithm),s=`${n}:${i}`,a=o?.before.get(s)??Ao(e,n,i),c=Ao(t,n,i);return o?.after.set(s,c),{beforeHashes:a,afterHashes:c,pairIndex:a.findIndex((d,l)=>d===r.before_hash&&c[l]===r.after_hash),beforeIndex:a.indexOf(r.before_hash),afterIndex:c.indexOf(r.after_hash)}}function zn(e){return{metadata:e.metadata,body:e.body}}function $g(e,t={}){return ne(zn(e),t)}function 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,we),body:t.body}}function Ea(e){return e==="/front_matter"?"/metadata":e.startsWith("/front_matter/")?`/metadata/${e.slice(14)}`:e}function uf(e){return typeof e=="object"&&e!==null&&typeof e.op=="string"&&typeof e.path=="string"}function Sa(e){return Array.isArray(e)?e.filter(uf).map(t=>({...t,path:Ea(t.path),from:typeof t.from=="string"?Ea(t.from):void 0})):[]}function ff(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=Sa(t),r=Do.applyPatch(structuredClone(e),n,!0,!0).newDocument;return ff(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 mf(e){return[...new Set(e.map(t=>t.item_hash_version).filter(t=>t!==void 0&&Ft.includes(t)))]}function Ta(e){return e!==void 0&&!Ft.includes(e)}function _f(e,t){return e!==void 0?[e]:t===void 0?[...Ft]:[t]}function Ca(e){let t=$n(e);if(!t.ok)return t.error;let n=Ro(e);return n.ok?void 0:n.error}function pf(e,t){let n=Ca(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 hf(e,t){let n=Ca(e);if(n)throw new TypeError(`${n}:entry_${t+1}`)}function yf(e,t,n,r,o){let i=[];for(let s of n){let a=Ia(e,t,s,r,o);if(i.push({version:s,match:a}),a.pairIndex>=0)break}return i}function Oa(e){let t=Hn(),n=new Map,r,o,i=Ys(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=Ta(c);d&&i.push(`verify_failed:unsupported_item_hash_version:${String(c)}:entry_${s+1}`);let l=pf(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=_f(c,o),_={before:n,after:new Map},p=yf(t,l.document,f,a,_),m=p.find(({match:g})=>g.pairIndex>=0);if(m===void 0){let g=p.some(({match:S})=>S.beforeIndex>=0);return{ok:!1,errors:[...i,`verify_failed:${g?"after":"before"}_hash_mismatch:entry_${s+1}`]}}let v=m.version;t=l.document,n=_.after,r=v,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=Oa(e);return{ok:t.ok,errors:t.errors}}function ka(e,t){try{return{ok:!0,document:Do.applyPatch(structuredClone(e),[t],!0,!1).newDocument}}catch{return{ok:!1}}}function gf(e,t){let n=structuredClone(e),r=0,o=0;for(let s of Sa(t)){let a=ka(n,s);if(a.ok){n=a.document;continue}if(s.op==="replace"){let c=ka(n,{...s,op:"add"});if(c.ok){n=c.document,r+=1;continue}}o+=1}let i=n;return{document:{metadata:typeof i.metadata=="object"&&i.metadata!==null?i.metadata:{},body:typeof i.body=="string"?i.body:e.body},convertedReplaceToAdd:r,skippedOps:o}}function bf(e){let t=mf(e);if(t.length===1)return t[0];let n=Oa(e);return n.ok&&n.item_hash_version!==void 0?n.item_hash_version:t.length===0?1:Ge}function vf(e,t,n=t.patch){let r=Xe(e,n);if(r.ok)return{next:r.document,patch:n,repaired:D(n)!==D(t.patch),converted:0,skipped:0};let o=gf(e,n);return{next:o.document,patch:Do.compare(e,o.document),repaired:!0,converted:o.convertedReplaceToAdd,skipped:o.skippedOps}}function wf(e,t,n){return vf(e,t,n.projectPatch?.(t,e))}function zg(e,t=bf(e),n={}){let r=e.findIndex(p=>Ta(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,_=t!==1||e.some(p=>p.item_hash_version!==void 0);for(let p=0;p<e.length;p+=1){let m=e[p];hf(m,p);let v=wf(o,m,n),{next:g,patch:S,repaired:A,converted:N,skipped:z}=v;d+=N,l+=z,c+=Number(A);let O=Ia(o,g,t,m);f===void 0||n.continuousHashSurface!==!0?f=[O.pairIndex,O.beforeIndex,O.afterIndex,Math.min(f??0,O.beforeHashes.length-1)].find(ee=>ee>=0):f=Math.min(f,O.beforeHashes.length-1);let oe=O.beforeHashes[f],U=O.afterHashes[f],Q=oe!==m.before_hash||U!==m.after_hash;Q&&(a+=1);let W={...m,patch:S,before_hash:oe,after_hash:U};_?W.item_hash_version=t:delete W.item_hash_version;let Z=W.item_hash_version!==m.item_hash_version;(Q||A||Z)&&(W=ya(m,W,{retainOriginalPatch:A})),i.push(W),s.push({index:p+1,rehashed:Q,patch_repaired:A,converted_replace_to_add:N,skipped_ops:z}),o=g}return{entries:i,finalDocument:o,entriesRehashed:a,entriesPatchRepaired:c,convertedReplaceToAdd:d,skippedOps:l,details:s,itemHashVersion:t,explicitItemHashVersion:_}}function Ug(e){return e.length===0?"":`${e.map(t=>JSON.stringify(t)).join(`
67
+ WHERE recency_rank = 1`).all(...a).map(aa);if(c.includes(null))return o.close(),o=void 0,null;i.push(...c)}return o.close(),o=void 0,ua(i,r)}))}catch(i){return o?.close(),i instanceof h&&i.code==="lock_conflict"?An:null}}async function ug(e,t){let n=[...new Set(t.filter(a=>a.trim().length>0&&H.basename(a)===a))];if(n.length===0)return{};let r=new Set(n),o=Pn(),i=await ta(o,e,n,r);if(i!==null&&i!==An)return i;if(o&&i!==An)try{if(await Bu(e)){let a=await ta(o,e,n,r);if(a!==null&&a!==An)return a}}catch{}let s=[];return await Promise.all(n.map(async a=>{let c=H.join(e,"history",`${a}.jsonl`);(await ia(c,a).catch(d=>{if(d instanceof h&&d.code==="history_timestamp_invalid")return[];throw d})).forEach((d,l)=>{s.push({stream_id:a,stream_offset:l,entry:d})})})),ua(s,r)}import Co from"node:fs/promises";import lt from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="687cbe24-6d5c-5322-962d-455048eb84b5")}catch{}})();var Ju=lt.join("runtime","history-drift-cache.json"),ma={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 _a(e){return typeof e=="object"&&e!==null&&"code"in e&&typeof e.code=="string"?e.code:void 0}async function Qu(e){let t=lt.join(e,Ju),n=!1,r="invalid_cache_path";try{n=(await Co.stat(await Co.realpath(e))).isDirectory()}catch(o){let i=_a(o);r=i===void 0?"unknown":ma[i]??"filesystem_error"}if(!n){Lr(`[pm] warning: history_drift_cache_invalidation_failed:${r}
68
+ `);return}try{await Co.rm(t,{force:!0})}catch(o){let i=_a(o);if(te(o))return;let s=i===void 0?"unknown":ma[i]??"filesystem_error";Lr(`[pm] warning: history_drift_cache_invalidation_failed:${s}
69
+ `)}}async function jn(e){let t=lt.dirname(lt.resolve(e));lt.basename(t)==="history"&&await Qu(lt.dirname(t))}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="4a3c3c82-0398-549c-8910-fdc69d971cb2")}catch{}})();var tf={front_matter:{},body:""},Ge=3,Ft=[1,2,3],nf=1,rf=[1];function va(e){return Ce(D(e),e.hash_algorithm)}function ut(e){return ln(D(e))}function Pg(e){return ln(D(e))}function Ao(e){let t={...e,record_hash_version:nf},{record_hash:n,...r}=t;return{...t,record_hash:va(r)}}function $n(e){try{Be(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(!rf.includes(e.record_hash_version))return{ok:!1,error:"unsupported_record_hash_version"};let{record_hash:t,...n}=e;return va(n)===e.record_hash?{ok:!0,coverage:"record_and_item_state"}:{ok:!1,error:"record_hash_mismatch"}}function of(e,t){let n={before_hash:e.before_hash,after_hash:e.after_hash,patch_hash:ut(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 wa(e,t,n={}){let r=$n(e);if(!r.ok)throw new TypeError(r.error);let o=ut(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!==ut(t.patch),s=Ao({...t,...i?{reanchor_evidence:[...t.reanchor_evidence??[],of(e,n)]}:{}}),a=Do(s);if(!a.ok)throw new TypeError(a.error);return s}function Ea(e){return!Array.isArray(e)||Object.keys(e).length!==e.length?!1:e.every(t=>!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 sf(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"&&Ea(e.patch)}function af(e){let t=e.record_hash_version!==void 0,n=e.record_hash!==void 0;return t===n}function cf(e){return!Ke(e)||!af(e)||typeof e.before_hash!="string"||typeof e.after_hash!="string"||typeof e.patch_hash!="string"||!/^[a-f0-9]{64}$/u.test(e.patch_hash)||e.patch!==void 0&&!Ea(e.patch)||e.record_hash_version!==void 0&&typeof e.record_hash_version!="number"||e.record_hash!==void 0&&(typeof e.record_hash!="string"||!/^(?:[a-f0-9]{64}|[a-f0-9]{128})$/u.test(e.record_hash))?!1:e.record===void 0||sf(e.record)}function df(e){try{for(let t of e){if(!cf(t))return!1;Be(t.hash_algorithm)}return!0}catch{return!1}}function lf(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&&ut(t.patch)===e.patch_hash}function uf(e,t,n){if(t.patch&&ut(t.patch)!==t.patch_hash)return{kind:"patch_hash_mismatch"};if(t.record)return lf(t)?{kind:"record",entry:t.record}:{kind:"record_hash_mismatch"};let r=t.patch??e.patch;if(ut(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 Do(e){let t=e.reanchor_evidence;if(t===void 0)return{ok:!0,coverage:"none"};if(!Array.isArray(t)||!df(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=uf(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 Mn(e,t){return(e??"").localeCompare(t??"")}function ha(e,t){return(e??0)-(t??0)}function Oe(e,t,n){return JSON.stringify(e??n).localeCompare(JSON.stringify(t??n))}function ff(e,t){return[e.scope.localeCompare(t.scope),Mn(e.path,t.path),Mn(e.command,t.command),ha(e.timeout_seconds,t.timeout_seconds),Mn(e.pm_context_mode,t.pm_context_mode),+!!e.shared_host_safe-+!!t.shared_host_safe,Oe(e.env_clear,t.env_clear,[]),Oe(e.env_set,t.env_set,{}),Oe(e.assert_stdout_contains,t.assert_stdout_contains,[]),Oe(e.assert_stdout_regex,t.assert_stdout_regex,[]),Oe(e.assert_stderr_contains,t.assert_stderr_contains,[]),Oe(e.assert_stderr_regex,t.assert_stderr_regex,[]),ha(e.assert_stdout_min_lines,t.assert_stdout_min_lines),Oe(e.assert_json_field_equals,t.assert_json_field_equals,{}),Oe(e.assert_json_field_gte,t.assert_json_field_gte,{}),Mn(e.note,t.note)].find(n=>n!==0)??0}function mf(e){return!e||e==="/"?[]:e.startsWith("/")?e.slice(1).split("/").map(t=>t.replaceAll("~1","/").replaceAll("~0","~")):[]}function _f(e,t){let n=mf(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 pf(e,t){let n=[],r=structuredClone(e);for(let o of t){let i=o.op==="replace"&&!_f(r,o.path)?{...o,op:"add"}:o;n.push(i),r=ba.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 r=ne(e),o=t===1||t===2&&n?{...r.metadata,...r.metadata.dependencies===void 0?{}:{dependencies:r.metadata.dependencies.map(s=>({...s,id:s.id.toLowerCase()}))},...r.metadata.tests===void 0?{}:{tests:r.metadata.tests.map(({workspace_context_mode:s,provenance:a,provenance_invalid:c,...d})=>d)},...r.metadata.test_runs===void 0?{}:{test_runs:r.metadata.test_runs.map(({executions:s,...a})=>a)}}:r.metadata,i=t===1&&o.tests?{...o,tests:[...o.tests].sort(ff)}:o;return{front_matter:T(i,we),body:r.body}}function ya(e){if(!(e.metadata&&Object.keys(e.metadata).length>0))return{metadata:{},body:e.body??""};let t=ne(e);return{metadata:T(t.metadata,we),body:t.body}}function jg(e){return ka(e,Ge)}function ka(e,t,n){if(!Ft.some(r=>r===t))throw new TypeError(`unsupported_item_hash_version:${String(t)}`);return Ce(D(Fn(e,t)),n)}function Ia(e,t,n){let r=ka(e,t,n);return t===2?[r,Ce(D(Fn(e,t,!0)),n)]:[r]}function Mg(){return ln(D(tf))}function ft(e){let t=_n(e.op),n=Fn(e.before,Ge),r=Fn(e.after,Ge),o=ya(e.before),i=ya(e.after),s=ba.compare(o,i),a=pf(o,s),c=Ds(e.author),d=c.harness?Object.fromEntries(Object.entries(Rs().provenance_outcomes).filter(([p,m])=>m.resolver!==void 0&&(m.status!=="resolved"||c.provenance?.[p]?.source==="probe"))):void 0,l=d===void 0||Object.keys(d).length===0?e.context:{...e.context,agent_provenance_outcomes:d},f=e.hashAlgorithm??Ps,_={hash_algorithm:f,ts:e.nowIso,author:e.author,author_source:e.authorSource??As(e.author),...c.harness?{agent_harness:c.harness}:{},...c.model?{agent_model:c.model}:{},...c.model_source?{agent_model_source:c.model_source}:{},...c.instance?{agent_instance:c.instance}:{},...c.provenance?{agent_provenance:c.provenance}:{},...c.episode?{agent_episode:c.episode}:{},op:t,patch:a,before_hash:Ce(D(n),f),after_hash:Ce(D(r),f),item_hash_version:Ge,message:e.message===void 0?void 0:e.message,...l===void 0?{}:{context:l}};return Ao({..._,event_class:dt(_)})}function Ke(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function xo(e){return new h(e,b.GENERIC_FAILURE,{code:"history_timestamp_invalid"})}function Sa(e){let t=e.ts.trim();if(t.length===0)return Ie();if(!nt(t))throw xo("History timestamp must be a valid RFC 3339 date-time with millisecond precision");if(t!==e.ts)throw xo("History timestamp must not contain surrounding whitespace");return e.ts}function ga(e,t){let n=e.ts;if(typeof n=="string"&&n.trim().length>0){if(!nt(n))throw xo("History timestamp must be a valid RFC 3339 date-time with millisecond precision");return e}return{...e,ts:t}}function Oo(e,t){let n=Sa(t);if(typeof e=="string"){let r;try{r=JSON.parse(e)}catch{return e}return Ke(r)?JSON.stringify(ga(r,n)):e}return Ke(e)?JSON.stringify(ga(e,n)):JSON.stringify(e)}async function hf(e,t,n){if(n===!1)return!0;if(typeof n=="string"){let s=Oo(n,t);return await Ro(e,s),await jn(e),await To(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=Oo(typeof r.line=="string"?r.line:r.entry??t,t);return await Ro(o,i),await jn(o),await To(o),!0}async function Ro(e,t){let n;try{n=JSON.parse(t)}catch{n=null}if(!Ke(n)||n.op!=="create"){await Hi(e,t);return}await pa.mkdir(ef.dirname(e),{recursive:!0});try{await pa.writeFile(e,`${t}
70
+ `,{encoding:"utf8",flag:"wx"})}catch(r){throw r.code!=="EEXIST"?r:new h("This item identity is reserved by an existing history stream.",b.CONFLICT,{code:"item_identity_reserved",required:"Choose a new item ID or restore the original item from its history.",nextSteps:["Run pm history <id> --full, then pm restore <id> <version> to recover the original item."]})}}async function mt(e,t){let n=await Ot("history_append",{history_path:e,entry:t});if(n.handled&&await hf(e,t,n.result))return;let r=t.ts.trim().length>0?t:{...t,ts:Sa(t)},o=Ao({...r,hash_algorithm:Be(r.hash_algorithm),event_class:dt(r)});await da(e,o,async()=>{await Ro(e,Oo(o,o))}),await jn(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]="0c0cb8c7-4d7d-53f8-8ec2-d6dc98fc6dc5")}catch{}})();var _t={metadata:{},body:""};function Hn(){return structuredClone(_t)}function Gg(e,t=Ge,n){return No(e,t,n)[0]}function No(e,t,n){if(Object.keys(e.metadata).length===0||Array.isArray(e.metadata.tags))try{return Ia(zn(e),t,n)}catch{}let r=Ce(D({replay_fallback:!0,metadata:e.metadata,body:e.body}),n);return t===2?[r,r]:[r]}function xa(e,t,n,r,o){let i=Be(r.hash_algorithm),s=`${n}:${i}`,a=o?.before.get(s)??No(e,n,i),c=No(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 Kg(e,t={}){return ne(zn(e),t)}function Xg(e){if(!e.metadata||Object.keys(e.metadata).length===0)return{metadata:{},body:e.body??""};let t=ne(e);return{metadata:T(t.metadata,we),body:t.body}}function Ta(e){return e==="/front_matter"?"/metadata":e.startsWith("/front_matter/")?`/metadata/${e.slice(14)}`:e}function yf(e){return typeof e=="object"&&e!==null&&typeof e.op=="string"&&typeof e.path=="string"}function Oa(e){return Array.isArray(e)?e.filter(yf).map(t=>({...t,path:Ta(t.path),from:typeof t.from=="string"?Ta(t.from):void 0})):[]}function gf(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=Oa(t),r=Lo.applyPatch(structuredClone(e),n,!0,!0).newDocument;return gf(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 bf(e){return[...new Set(e.map(t=>t.item_hash_version).filter(t=>t!==void 0&&Ft.includes(t)))]}function Ra(e){return e!==void 0&&!Ft.includes(e)}function vf(e,t){return e!==void 0?[e]:t===void 0?[...Ft]:[t]}function Aa(e){let t=$n(e);if(!t.ok)return t.error;let n=Do(e);return n.ok?void 0:n.error}function wf(e,t){let n=Aa(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 Ef(e,t){let n=Aa(e);if(n)throw new TypeError(`${n}:entry_${t+1}`)}function kf(e,t,n,r,o){let i=[];for(let s of n){let a=xa(e,t,s,r,o);if(i.push({version:s,match:a}),a.pairIndex>=0)break}return i}function Da(e){let t=Hn(),n=new Map,r,o,i=ea(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=Ra(c);d&&i.push(`verify_failed:unsupported_item_hash_version:${String(c)}:entry_${s+1}`);let l=wf(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=vf(c,o),_={before:n,after:new Map},p=kf(t,l.document,f,a,_),m=p.find(({match:g})=>g.pairIndex>=0);if(m===void 0){let g=p.some(({match:S})=>S.beforeIndex>=0);return{ok:!1,errors:[...i,`verify_failed:${g?"after":"before"}_hash_mismatch:entry_${s+1}`]}}let v=m.version;t=l.document,n=_.after,r=v,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=Da(e);return{ok:t.ok,errors:t.errors}}function Ca(e,t){try{return{ok:!0,document:Lo.applyPatch(structuredClone(e),[t],!0,!1).newDocument}}catch{return{ok:!1}}}function If(e,t){let n=structuredClone(e),r=0,o=0;for(let s of Oa(t)){let a=Ca(n,s);if(a.ok){n=a.document;continue}if(s.op==="replace"){let c=Ca(n,{...s,op:"add"});if(c.ok){n=c.document,r+=1;continue}}o+=1}let i=n;return{document:{metadata:typeof i.metadata=="object"&&i.metadata!==null?i.metadata:{},body:typeof i.body=="string"?i.body:e.body},convertedReplaceToAdd:r,skippedOps:o}}function Sf(e){let t=bf(e);if(t.length===1)return t[0];let n=Da(e);return n.ok&&n.item_hash_version!==void 0?n.item_hash_version:t.length===0?1:Ge}function Tf(e,t,n=t.patch){let r=Xe(e,n);if(r.ok)return{next:r.document,patch:n,repaired:D(n)!==D(t.patch),converted:0,skipped:0};let o=If(e,n);return{next:o.document,patch:Lo.compare(e,o.document),repaired:!0,converted:o.convertedReplaceToAdd,skipped:o.skippedOps}}function Cf(e,t,n){return Tf(e,t,n.projectPatch?.(t,e))}function Yg(e,t=Sf(e),n={}){let r=e.findIndex(p=>Ra(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,_=t!==1||e.some(p=>p.item_hash_version!==void 0);for(let p=0;p<e.length;p+=1){let m=e[p];Ef(m,p);let v=Cf(o,m,n),{next:g,patch:S,repaired:A,converted:N,skipped:z}=v;d+=N,l+=z,c+=Number(A);let x=xa(o,g,t,m);f===void 0||n.continuousHashSurface!==!0?f=[x.pairIndex,x.beforeIndex,x.afterIndex,Math.min(f??0,x.beforeHashes.length-1)].find(ee=>ee>=0):f=Math.min(f,x.beforeHashes.length-1);let oe=x.beforeHashes[f],U=x.afterHashes[f],Q=oe!==m.before_hash||U!==m.after_hash;Q&&(a+=1);let B={...m,patch:S,before_hash:oe,after_hash:U};_?B.item_hash_version=t:delete B.item_hash_version;let Z=B.item_hash_version!==m.item_hash_version;(Q||A||Z)&&(B=wa(m,B,{retainOriginalPatch:A})),i.push(B),s.push({index:p+1,rehashed:Q,patch_repaired:A,converted_replace_to_add:N,skipped_ops:z}),o=g}return{entries:i,finalDocument:o,entriesRehashed:a,entriesPatchRepaired:c,convertedReplaceToAdd:d,skippedOps:l,details:s,itemHashVersion:t,explicitItemHashVersion:_}}function Jg(e){return e.length===0?"":`${e.map(t=>JSON.stringify(t)).join(`
71
71
  `)}
72
- `}import Ef 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]="664124e5-715d-5f86-ae69-89f203db76c3")}catch{}})();function Ra(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 $t(e){let t=e.trim().toLowerCase();return t.startsWith("#")&&(t=t.slice(1)),t}function Ye(e,t){let n=Ra(t),r=$t(e);return r.startsWith(n)?r:`${n}${r}`}function kf(e){let t=as(e);if(t!==void 0)return t;let n="";for(let r=0;r<e;r+=1)n+=Ef.randomInt(0,36).toString(36);return n}async function If(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=>Me(o)))).some(Boolean)}var xa=4,Aa=12;function Sf(e){return typeof e!="number"||!Number.isFinite(e)?xa:Math.min(Aa,Math.max(xa,Math.trunc(e)))}async function Xg(e,t,n={}){let r=Sf(n.tokenLength),o=Math.min(r+6,Aa),i=0;for(;r<=o;){for(let s=0;s<32;s+=1){let a=`${Ra(t)}${kf(r)}`;if(!await(n.probeExisting===!1?Me(Un.join(e,"history",`${a}.jsonl`)):If(e,a,n.typeToFolder??Pe)))return a;i+=1}r+=1}throw new Error(`Unable to generate unique id after ${i} attempts`)}import Ma from"node:fs/promises";import Ht from"node:path";import{isUtf8 as Of}from"node:buffer";import Tf from"node:fs/promises";import pt from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="af606b47-d071-5724-b1e7-de4e1e5d7385")}catch{}})();var ht="_workspace";function Bn(e){return pt.join(e,"history",`${ht}.jsonl`)}function Cf(e,t){return{metadata:{id:ht,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 No(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 h(`Workspace history verification failed: ${e.join(", ")}`,b.CONFLICT,{code:"workspace_history_chain_invalid",reason:"workspace_history_chain_verification_failed",verification_errors:[...e],required:"Repair the _workspace history chain before reading, reconciling, restoring, or appending audited singleton state.",why:"Continuing against an unverifiable append-only stream could hide or compound workspace state corruption.",examples:["pm history _workspace --verify --json","pm validate --check-history-drift --fix-hints --json"],nextSteps:["Inspect the exact verification_errors and preserve the corrupt stream as evidence.","Use the history-drift remediation returned by validate before retrying the refused operation."],recovery:{recovery_mode:"compact",next_best_command:"pm history _workspace --verify --json"}})}function Da(e,t){let n=pt.resolve(t),r=pt.relative(e,n).replaceAll("\\","/");if(r.length===0||r===".."||r.startsWith("../")||pt.isAbsolute(r))throw new TypeError("Workspace history document path must stay inside the tracker root");return{documentPath:r,absolutePath:n}}async function cb(e){let t=await be(Bn(e),ht),n=ve(t);n.ok||Vn(n.errors);let r=No(t.length===0?je:Wn(t)),o=[],i=[],s=[],a=[];for(let c of Object.keys(r).sort()){let d;try{let l=Da(e,pt.resolve(e,c));if(d=await Ee(l.absolutePath),d===null){s.push(c);continue}let f=JSON.parse(d);(D(f)===D(r[c])?o:i).push(c)}catch{a.push(c)}}return{ok:i.length===0&&s.length===0&&a.length===0,document_count:Object.keys(r).length,matching_documents:o,mismatched_documents:i,missing_documents:s,unreadable_documents:a}}async function Na(e){let t=Bn(e.pmRoot),n=await be(t,ht),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?je:Wn(n),a=No(s),c=a[e.documentPath];if(c!==void 0&&D(c)!==D(e.before))throw new h(`Workspace history state for "${e.documentPath}" changed outside the audited mutation path.`,b.CONFLICT,{code:"workspace_history_state_conflict",reason:"out_of_band_workspace_state",required:"Reconcile the singleton document with its matching _workspace history state before retrying the mutation.",why:"Accepting the write would make the append-only audit stream describe a state that was not actually observed.",examples:["pm history _workspace --verify","pm validate --check-history-drift --fix-hints"],nextSteps:["Review the version-control change that altered the singleton and preserve the intended document plus its matching workspace history.","Rerun the original mutation only after the on-disk singleton agrees with the latest audited workspace state."],recovery:{recovery_mode:"compact",next_best_command:"pm history _workspace --verify"}});let d=Cf({...a,[e.documentPath]:e.after},n.length===0?i:s.metadata.created_at),l=ft({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 mt(t,l),{entry:l,historyPath:t}}async function db(e){let t=await V(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await Na(e)}finally{await t()}}async function La(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 be(n,ht),o=ve(r);o.ok||Vn(o.errors);let i=r.length===0?je:Wn(r),s=ft({nowIso:Ie(),author:e.author,op:e.op,before:i,after:i,message:e.message,context:e.context});return await mt(n,s),{entry:s,historyPath:n}}finally{await t()}}async function Pa(e,t){if(t===e.raw)return!1;let n=t===null?null:JSON.parse(t),r=JSON.parse(e.raw);await G(e.filePath,e.raw);try{(t!==null||e.recordCreation!==!1)&&await Na({pmRoot:e.pmRoot,documentPath:pt.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 Tf.rm(e.filePath,{force:!0}):await G(e.filePath,t),o}return!0}async function ja(e){let{documentPath:t}=Da(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 be(Bn(e.pmRoot),ht),s=ve(i);s.ok||Vn(s.errors);let a=No(i.length===0?je:Wn(i))[t];if(a!==void 0&&D(a)!==D(r===null?null:JSON.parse(r)))throw new h(`Workspace history state for "${t}" changed outside the audited mutation path.`,b.CONFLICT,{code:"workspace_history_state_conflict"});if(e.idempotencyKey!==void 0&&i.some(c=>c.op===`${e.op}:${e.idempotencyKey}`))return{changed:!1,result:void 0,replayed:!0}}let o=await e.mutate(r);return JSON.parse(o.raw),e.dryRun===!0?{changed:r!==o.raw,result:o.result}:{changed:await Pa({...e,raw:o.raw},r),result:o.result}}finally{await n()}}async function lb(e){let t=await V(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await Pa(e,await Ee(e.filePath))}finally{await t()}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="7db1d069-0038-57f8-8c3e-0b0ba66579ca")}catch{}})();var xf=1048576,Rf=4194304;async function Fa(e,t){let n=Ht.dirname(e);for(;n!==Ht.parse(e).root;){let o=await Ma.stat(n).catch(i=>{if(te(i))return null;throw i});if(o!==null){if(!o.isDirectory())throw new h("Workflow policy storage ancestor must be a directory.",b.CONFLICT,{code:"workflow_policy_input_unreadable",nextSteps:["Restore the policy or approval history directory before retrying."]});break}n=Ht.dirname(n)}let r=await Ma.open(e,"r").catch(o=>{if(te(o))return null;throw o});if(r===null)return null;try{let o=(await r.stat()).size,i=Buffer.alloc(Math.min(t,o)+1),s=0;for(;s<i.length;){let a=await r.read(i,s,i.length-s,s);if(a.bytesRead===0)break;s+=a.bytesRead}if(s===i.length||!Of(i.subarray(0,s)))throw new h("Workflow policy input exceeds its byte bound or is not valid UTF-8.",b.CONFLICT,{code:"workflow_policy_input_unreadable",nextSteps:["Inspect the policy and approval history; reduce the declaration or use verified history compaction before retrying."]});return i.toString("utf8",0,s)}finally{await r.close()}}function Af(e){if(e===null)return{version:1,enforcement:"advise",policies:[]};let t;try{t=JSON.parse(e)}catch{throw new h("schema/policies.json must contain valid JSON.",b.CONFLICT,{code:"workflow_policy_registry_invalid",nextSteps:["Restore valid policy JSON before retrying the mutation."]})}return Ki(t)}async function Df(e){return Af(await Fa(Ht.join(e,"schema","policies.json"),xf))}async function Nf(e,t){let n=await Fa(fe(e,t),Rf);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 h("Approval evidence requires a valid item history chain.",b.CONFLICT,{code:"workflow_policy_approval_history_invalid",nextSteps:[`Run pm history ${t} --verify before recording or using an approval.`]})}return r.flatMap(o=>{let i=o.context?.workflow_approval;if(o.op!=="policy_approve"||o.record_hash_version!==1||typeof o.record_hash!="string"||typeof i!="object"||i===null)return[];let s=i;return typeof s.policy_fingerprint!="string"||typeof s.content_fingerprint!="string"?[]:[{policy_fingerprint:s.policy_fingerprint,content_fingerprint:s.content_fingerprint,author:o.author}]})}async function Lf(e,t,n){let r=n.before?.status!==n.after?.status&&t.policies.some(s=>s.rule.kind==="approval"&&Xi(s,n)),o=n.before?.id??n.after?.id,i=r&&typeof o=="string"?await Nf(e,o):[];return Yi(t,{...n,approvals:i})}async function Lo(e){let t=await Df(e.pmRoot),n=await Lf(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 La({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 h("Workflow policy refusal could not be recorded in workspace history.",b.CONFLICT,{code:"workflow_policy_audit_failed",nextSteps:["Resolve workspace-history lock or storage failures, then retry the refused mutation; no item changes were written."]});throw f.cause=l,f}let o=r.slice(0,3).map(l=>({policy_id:l.policy_id,rule:l.rule,description:t.policies.find(f=>f.id===l.policy_id).description,missing_fields:l.missing_fields})),i=[...new Set(o.flatMap(l=>l.missing_fields))],s=o.map(l=>`${l.policy_id} (${l.rule})`).join(", "),a=r.length>3?` and ${r.length-3} more`:"",c=e.after?.metadata.id??e.before.metadata.id,d=i.map(l=>{if(e.before===null)return`Supply ${l} in the original ${e.operation} request, then retry; the item was not created.`;let f=Ui("update",l);return f===void 0?`Supply ${l} using its declared SDK or package mutation contract, then retry.`:$e(["update",c,Bi("update",f),`<${l}>`,"--pm-path",Ht.resolve(e.pmRoot)])});throw new h(`Workflow policy refused ${e.operation}: ${s}${a}.${i.length?` Missing: ${i.join(", ")}.`:""}`,b.CONFLICT,{code:"workflow_policy_refused",reason:o.map(l=>l.policy_id).join(","),policy_violations:o,policy_violation_count:r.length,required:i.length?`Supply missing fields: ${i.join(", ")}, then retry the refused mutation.`:"Satisfy the declared workflow policy before retrying.",why:o.map(l=>l.description).filter(Boolean).join(" ")||void 0,recovery:{missing_required_fields:i},nextSteps:[...d,...new Set(r.slice(0,3).filter(l=>l.missing_fields.length===0).map(l=>l.remediation)),...r.length>3?[`Inspect all policies with pm schema policies before retrying ${e.operation}.`]:[]]})}import{AsyncLocalStorage as Pf}from"node:async_hooks";import{channel as jf}from"node:diagnostics_channel";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="b2b2d49a-bb8c-54d7-89d2-1dbe76879129")}catch{}})();var Po=new Pf,jo=jf("@unbrained/pm-cli/item-metadata-enumeration/v1");function qn(e){jo.publish(e)}async function Cb(e){let t={enumeration_calls:0,metadata_rows:0},n=r=>{Po.getStore()?.includes(t)&&(t.enumeration_calls+=1,t.metadata_rows+=r)};jo.subscribe(n);try{return{result:await Po.run([...Po.getStore()??[],t],e),work:{...t}}}finally{jo.unsubscribe(n)}}import Je from"node:fs/promises";import Ha from"node:path";import{randomUUID as Mf}from"node:crypto";import{createRequire as Ff}from"node:module";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="84a3dae8-69b6-589d-a8ec-11f77c1d103a")}catch{}})();var $f="metadata-query-index.sqlite",zt="5",Mo;function Ut(){return Mo!==void 0||(Mo=Cn(process.versions.node,Ff(import.meta.url))),Mo}function $a(e,t){return Math.max(0,Math.floor(e===void 0?t:e))}function yt(e){return Ha.join(e,"runtime",$f)}function Hf(e){e.exec(`
72
+ `}import xf 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]="664124e5-715d-5f86-ae69-89f203db76c3")}catch{}})();function La(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 $t(e){let t=e.trim().toLowerCase();return t.startsWith("#")&&(t=t.slice(1)),t}function Ye(e,t){let n=La(t),r=$t(e);return r.startsWith(n)?r:`${n}${r}`}function Of(e){let t=ds(e);if(t!==void 0)return t;let n="";for(let r=0;r<e;r+=1)n+=xf.randomInt(0,36).toString(36);return n}async function Rf(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=>Me(o)))).some(Boolean)}var Na=4,Pa=12;function Af(e){return typeof e!="number"||!Number.isFinite(e)?Na:Math.min(Pa,Math.max(Na,Math.trunc(e)))}async function ob(e,t,n={}){let r=Af(n.tokenLength),o=Math.min(r+6,Pa),i=0;for(;r<=o;){for(let s=0;s<32;s+=1){let a=`${La(t)}${Of(r)}`;if(!await(n.probeExisting===!1?Me(Un.join(e,"history",`${a}.jsonl`)):Rf(e,a,n.typeToFolder??Pe)))return a;i+=1}r+=1}throw new Error(`Unable to generate unique id after ${i} attempts`)}import za from"node:fs/promises";import Ht from"node:path";import{isUtf8 as Lf}from"node:buffer";import Df from"node:fs/promises";import pt from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="af606b47-d071-5724-b1e7-de4e1e5d7385")}catch{}})();var ht="_workspace";function Wn(e){return pt.join(e,"history",`${ht}.jsonl`)}function Nf(e,t){return{metadata:{id:ht,title:"Workspace state",description:"Audited singleton workspace document state.",type:"Chore",status:"open",priority:2,tags:["workspace-history"],created_at:t,updated_at:t,documents:e},body:""}}function Bn(e,t=e.length){let n=Hn();for(let r of e.slice(0,t))n=Xe(n,r.patch).document;return zn(n)}function Po(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 h(`Workspace history verification failed: ${e.join(", ")}`,b.CONFLICT,{code:"workspace_history_chain_invalid",reason:"workspace_history_chain_verification_failed",verification_errors:[...e],required:"Repair the _workspace history chain before reading, reconciling, restoring, or appending audited singleton state.",why:"Continuing against an unverifiable append-only stream could hide or compound workspace state corruption.",examples:["pm history _workspace --verify --json","pm validate --check-history-drift --fix-hints --json"],nextSteps:["Inspect the exact verification_errors and preserve the corrupt stream as evidence.","Use the history-drift remediation returned by validate before retrying the refused operation."],recovery:{recovery_mode:"compact",next_best_command:"pm history _workspace --verify --json"}})}function ja(e,t){let n=pt.resolve(t),r=pt.relative(e,n).replaceAll("\\","/");if(r.length===0||r===".."||r.startsWith("../")||pt.isAbsolute(r))throw new TypeError("Workspace history document path must stay inside the tracker root");return{documentPath:r,absolutePath:n}}async function yb(e){let t=await be(Wn(e),ht),n=ve(t);n.ok||Vn(n.errors);let r=Po(t.length===0?je:Bn(t)),o=[],i=[],s=[],a=[];for(let c of Object.keys(r).sort()){let d;try{let l=ja(e,pt.resolve(e,c));if(d=await Ee(l.absolutePath),d===null){s.push(c);continue}let f=JSON.parse(d);(D(f)===D(r[c])?o:i).push(c)}catch{a.push(c)}}return{ok:i.length===0&&s.length===0&&a.length===0,document_count:Object.keys(r).length,matching_documents:o,mismatched_documents:i,missing_documents:s,unreadable_documents:a}}async function Ma(e){let t=Wn(e.pmRoot),n=await be(t,ht),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?je:Bn(n),a=Po(s),c=a[e.documentPath];if(c!==void 0&&D(c)!==D(e.before))throw new h(`Workspace history state for "${e.documentPath}" changed outside the audited mutation path.`,b.CONFLICT,{code:"workspace_history_state_conflict",reason:"out_of_band_workspace_state",required:"Reconcile the singleton document with its matching _workspace history state before retrying the mutation.",why:"Accepting the write would make the append-only audit stream describe a state that was not actually observed.",examples:["pm history _workspace --verify","pm validate --check-history-drift --fix-hints"],nextSteps:["Review the version-control change that altered the singleton and preserve the intended document plus its matching workspace history.","Rerun the original mutation only after the on-disk singleton agrees with the latest audited workspace state."],recovery:{recovery_mode:"compact",next_best_command:"pm history _workspace --verify"}});let d=Nf({...a,[e.documentPath]:e.after},n.length===0?i:s.metadata.created_at),l=ft({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 mt(t,l),{entry:l,historyPath:t}}async function gb(e){let t=await V(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await Ma(e)}finally{await t()}}async function Fa(e){let t=await V(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{let n=Wn(e.pmRoot),r=await be(n,ht),o=ve(r);o.ok||Vn(o.errors);let i=r.length===0?je:Bn(r),s=ft({nowIso:Ie(),author:e.author,op:e.op,before:i,after:i,message:e.message,context:e.context});return await mt(n,s),{entry:s,historyPath:n}}finally{await t()}}async function $a(e,t){if(t===e.raw)return!1;let n=t===null?null:JSON.parse(t),r=JSON.parse(e.raw);await G(e.filePath,e.raw);try{(t!==null||e.recordCreation!==!1)&&await Ma({pmRoot:e.pmRoot,documentPath:pt.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 Df.rm(e.filePath,{force:!0}):await G(e.filePath,t),o}return!0}async function Ha(e){let{documentPath:t}=ja(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 be(Wn(e.pmRoot),ht),s=ve(i);s.ok||Vn(s.errors);let a=Po(i.length===0?je:Bn(i))[t];if(a!==void 0&&D(a)!==D(r===null?null:JSON.parse(r)))throw new h(`Workspace history state for "${t}" changed outside the audited mutation path.`,b.CONFLICT,{code:"workspace_history_state_conflict"});if(e.idempotencyKey!==void 0&&i.some(c=>c.op===`${e.op}:${e.idempotencyKey}`))return{changed:!1,result:void 0,replayed:!0}}let o=await e.mutate(r);return JSON.parse(o.raw),e.dryRun===!0?{changed:r!==o.raw,result:o.result}:{changed:await $a({...e,raw:o.raw},r),result:o.result}}finally{await n()}}async function bb(e){let t=await V(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await $a(e,await Ee(e.filePath))}finally{await t()}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="7db1d069-0038-57f8-8c3e-0b0ba66579ca")}catch{}})();var Pf=1048576,jf=4194304;async function Ua(e,t){let n=Ht.dirname(e);for(;n!==Ht.parse(e).root;){let o=await za.stat(n).catch(i=>{if(te(i))return null;throw i});if(o!==null){if(!o.isDirectory())throw new h("Workflow policy storage ancestor must be a directory.",b.CONFLICT,{code:"workflow_policy_input_unreadable",nextSteps:["Restore the policy or approval history directory before retrying."]});break}n=Ht.dirname(n)}let r=await za.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 h("Workflow policy input exceeds its byte bound or is not valid UTF-8.",b.CONFLICT,{code:"workflow_policy_input_unreadable",nextSteps:["Inspect the policy and approval history; reduce the declaration or use verified history compaction before retrying."]});return i.toString("utf8",0,s)}finally{await r.close()}}function Mf(e){if(e===null)return{version:1,enforcement:"advise",policies:[]};let t;try{t=JSON.parse(e)}catch{throw new h("schema/policies.json must contain valid JSON.",b.CONFLICT,{code:"workflow_policy_registry_invalid",nextSteps:["Restore valid policy JSON before retrying the mutation."]})}return Yi(t)}async function Ff(e){return Mf(await Ua(Ht.join(e,"schema","policies.json"),Pf))}async function $f(e,t){let n=await Ua(fe(e,t),jf);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 h("Approval evidence requires a valid item history chain.",b.CONFLICT,{code:"workflow_policy_approval_history_invalid",nextSteps:[`Run pm history ${t} --verify before recording or using an approval.`]})}return r.flatMap(o=>{let i=o.context?.workflow_approval;if(o.op!=="policy_approve"||o.record_hash_version!==1||typeof o.record_hash!="string"||typeof i!="object"||i===null)return[];let s=i;return typeof s.policy_fingerprint!="string"||typeof s.content_fingerprint!="string"?[]:[{policy_fingerprint:s.policy_fingerprint,content_fingerprint:s.content_fingerprint,author:o.author}]})}async function Hf(e,t,n){let r=n.before?.status!==n.after?.status&&t.policies.some(s=>s.rule.kind==="approval"&&Ji(s,n)),o=n.before?.id??n.after?.id,i=r&&typeof o=="string"?await $f(e,o):[];return Qi(t,{...n,approvals:i})}async function jo(e){let t=await Ff(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 Fa({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 h("Workflow policy refusal could not be recorded in workspace history.",b.CONFLICT,{code:"workflow_policy_audit_failed",nextSteps:["Resolve workspace-history lock or storage failures, then retry the refused mutation; no item changes were written."]});throw f.cause=l,f}let o=r.slice(0,3).map(l=>({policy_id:l.policy_id,rule:l.rule,description:t.policies.find(f=>f.id===l.policy_id).description,missing_fields:l.missing_fields})),i=[...new Set(o.flatMap(l=>l.missing_fields))],s=o.map(l=>`${l.policy_id} (${l.rule})`).join(", "),a=r.length>3?` and ${r.length-3} more`:"",c=e.after?.metadata.id??e.before.metadata.id,d=i.map(l=>{if(e.before===null)return`Supply ${l} in the original ${e.operation} request, then retry; the item was not created.`;let f=Bi("update",l);return f===void 0?`Supply ${l} using its declared SDK or package mutation contract, then retry.`:$e(["update",c,Vi("update",f),`<${l}>`,"--pm-path",Ht.resolve(e.pmRoot)])});throw new h(`Workflow policy refused ${e.operation}: ${s}${a}.${i.length?` Missing: ${i.join(", ")}.`:""}`,b.CONFLICT,{code:"workflow_policy_refused",reason:o.map(l=>l.policy_id).join(","),policy_violations:o,policy_violation_count:r.length,required:i.length?`Supply missing fields: ${i.join(", ")}, then retry the refused mutation.`:"Satisfy the declared workflow policy before retrying.",why:o.map(l=>l.description).filter(Boolean).join(" ")||void 0,recovery:{missing_required_fields:i},nextSteps:[...d,...new Set(r.slice(0,3).filter(l=>l.missing_fields.length===0).map(l=>l.remediation)),...r.length>3?[`Inspect all policies with pm schema policies before retrying ${e.operation}.`]:[]]})}import{AsyncLocalStorage as zf}from"node:async_hooks";import{channel as Uf}from"node:diagnostics_channel";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="b2b2d49a-bb8c-54d7-89d2-1dbe76879129")}catch{}})();var Mo=new zf,Fo=Uf("@unbrained/pm-cli/item-metadata-enumeration/v1");function qn(e){Fo.publish(e)}async function jb(e){let t={enumeration_calls:0,metadata_rows:0},n=r=>{Mo.getStore()?.includes(t)&&(t.enumeration_calls+=1,t.metadata_rows+=r)};Fo.subscribe(n);try{return{result:await Mo.run([...Mo.getStore()??[],t],e),work:{...t}}}finally{Fo.unsubscribe(n)}}import Je from"node:fs/promises";import Ba from"node:path";import{randomUUID as Wf}from"node:crypto";import{createRequire as Bf}from"node:module";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="84a3dae8-69b6-589d-a8ec-11f77c1d103a")}catch{}})();var Vf="metadata-query-index.sqlite",zt="5",$o;function Ut(){return $o!==void 0||($o=Cn(process.versions.node,Bf(import.meta.url))),$o}function Wa(e,t){return Math.max(0,Math.floor(e===void 0?t:e))}function yt(e){return Ba.join(e,"runtime",Vf)}function qf(e){e.exec(`
73
73
  PRAGMA foreign_keys = ON;
74
74
  PRAGMA journal_mode = OFF;
75
75
  PRAGMA synchronous = OFF;
@@ -124,7 +124,7 @@ ${i}
124
124
  tags,
125
125
  tokenize = 'unicode61'
126
126
  );
127
- `)}function Kn(e,t,n){e.prepare("INSERT INTO metadata(key, value) VALUES (?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value").run(t,n)}function za(e,t){let n=t.metadata;e.prepare(`INSERT INTO items(
127
+ `)}function Kn(e,t,n){e.prepare("INSERT INTO metadata(key, value) VALUES (?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value").run(t,n)}function Va(e,t){let n=t.metadata;e.prepare(`INSERT INTO items(
128
128
  id, relative_path, metadata_json, status, type, priority,
129
129
  updated_at, created_at, parent, assignee, sprint, release
130
130
  ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
@@ -139,10 +139,10 @@ ${i}
139
139
  parent = excluded.parent,
140
140
  assignee = excluded.assignee,
141
141
  sprint = excluded.sprint,
142
- release = excluded.release`).run(n.id,t.relativePath,JSON.stringify(n),n.status,n.type,n.priority,n.updated_at,n.created_at,n.parent??null,n.assignee??null,n.sprint??null,n.release??null),e.prepare("DELETE FROM item_metadata_keys WHERE item_id = ?").run(n.id),e.prepare("DELETE FROM item_linked_files WHERE item_id = ?").run(n.id),e.prepare("DELETE FROM item_search WHERE rowid = (SELECT rowid FROM items WHERE id = ?)").run(n.id),e.prepare("INSERT INTO item_search(rowid, id, title, description, tags) SELECT rowid, ?, ?, ?, ? FROM items WHERE id = ?").run(n.id,n.title,n.description,n.tags.join(" "),n.id);let r=e.prepare("INSERT INTO item_metadata_keys(item_id, key) VALUES (?, ?)");for(let i of Object.keys(n))r.run(n.id,i);let o=e.prepare("INSERT INTO item_linked_files(item_id, path, scope, note) VALUES (?, ?, ?, ?)");for(let i of t.linkedFiles??[])o.run(n.id,i.path,i.scope,i.note??null)}async function Ua(e){let t=yt(e.pmRoot),n=Ut();if(!n){await Je.rm(t,{force:!0});return}await Je.mkdir(Ha.dirname(t),{recursive:!0});let r=`${t}.${Mf()}.tmp`,o;try{o=new n(r),Hf(o),o.exec("BEGIN IMMEDIATE"),Kn(o,"version",zt),Kn(o,"context_fingerprint",e.contextFingerprint),Kn(o,"source_cursor",e.sourceCursor);for(let i of e.rows)za(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 Xn(e){return Object.fromEntries(e.prepare("SELECT key, value FROM metadata").all().map(t=>[String(t.key),String(t.value)]))}async function Ba(e){let t=Ut();if(!t)return!1;let n=yt(e.pmRoot),r;try{await Je.access(n),r=new t(n),r.exec("PRAGMA foreign_keys = ON");let o=Xn(r);if(o.version!==zt||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&&za(r,e.row),Kn(r,"source_cursor",e.sourceCursor),r.exec("COMMIT"),r.close(),!0}catch{try{r?.exec("ROLLBACK")}catch{}return r?.close(),!1}}function Gn(e,t,n,r,o){!r||r.length===0||(e.push(`${n} ${o} (${r.map(()=>"?").join(", ")})`),t.push(...r))}function zf(e){let t=[],n=[];Gn(t,n,"status",e.statuses,"IN"),Gn(t,n,"status",e.excludeStatuses,"NOT IN"),Gn(t,n,"type",e.types,"IN"),Gn(t,n,"id",e.ids,"IN");for(let r of e.metadataKeys??[])t.push("EXISTS (SELECT 1 FROM item_metadata_keys AS indexed_key WHERE indexed_key.item_id = items.id AND indexed_key.key = ?)"),n.push(r);for(let[r,o]of[["parent",e.parent],["assignee",e.assignee],["sprint",e.sprint],["release",e.release]])o!==void 0&&(t.push(`${r} = ?`),n.push(o));return e.priority!==void 0&&(t.push("priority = ?"),n.push(e.priority)),{where:t.length===0?"":` WHERE ${t.join(" AND ")}`,parameters:n}}async function Lb(e){let t=Ut();if(!t)return null;let n=e.query??{},{where:r,parameters:o}=zf(n),i;try{i=new t(yt(e.pmRoot),{readOnly:!0});let s=Xn(i);if(s.version!==zt||s.source_cursor!==e.expectedSourceCursor)return i.close(),null;let a=i.prepare(`SELECT COUNT(*) AS count FROM items${r}`).get(...o),c=[],d="";n.limit!==void 0?(d+=" LIMIT ?",c.push(Math.max(0,Math.floor(n.limit))),n.offset!==void 0&&(d+=" OFFSET ?",c.push(Math.max(0,Math.floor(n.offset))))):n.offset!==void 0&&(d+=" LIMIT -1 OFFSET ?",c.push(Math.max(0,Math.floor(n.offset))));let l=i.prepare(`SELECT metadata_json FROM items${r}
143
- ORDER BY ${n.terminalStatuses&&n.terminalStatuses.length>0?`CASE WHEN status IN (${n.terminalStatuses.map(()=>"?").join(", ")}) THEN 1 ELSE 0 END ASC, `:""}priority ASC, updated_at DESC, id ASC${d}`).all(...o,...n.terminalStatuses??[],...c).map(f=>{let _=JSON.parse(String(f.metadata_json));if(!_.id)throw new TypeError("Indexed metadata row has no id");return _});return i.close(),{source_cursor:s.source_cursor,total:Number(a.count),items:l}}catch{return i?.close(),null}}async function Pb(e){let t=Ut();if(!t||e.paths.length===0)return null;let n;try{n=new t(yt(e.pmRoot),{readOnly:!0});let r=Xn(n);if(r.version!==zt||r.source_cursor!==e.expectedSourceCursor)return n.close(),null;let o=e.paths.map(()=>"?").join(", "),i=e.scope===void 0?"":" AND scope = ?",s=[...e.paths,...e.scope===void 0?[]:[e.scope]],a=`path IN (${o})${i}`,c=n.prepare(`SELECT COUNT(DISTINCT item_id) AS count
142
+ release = excluded.release`).run(n.id,t.relativePath,JSON.stringify(n),n.status,n.type,n.priority,n.updated_at,n.created_at,n.parent??null,n.assignee??null,n.sprint??null,n.release??null),e.prepare("DELETE FROM item_metadata_keys WHERE item_id = ?").run(n.id),e.prepare("DELETE FROM item_linked_files WHERE item_id = ?").run(n.id),e.prepare("DELETE FROM item_search WHERE rowid = (SELECT rowid FROM items WHERE id = ?)").run(n.id),e.prepare("INSERT INTO item_search(rowid, id, title, description, tags) SELECT rowid, ?, ?, ?, ? FROM items WHERE id = ?").run(n.id,n.title,n.description,n.tags.join(" "),n.id);let r=e.prepare("INSERT INTO item_metadata_keys(item_id, key) VALUES (?, ?)");for(let i of Object.keys(n))r.run(n.id,i);let o=e.prepare("INSERT INTO item_linked_files(item_id, path, scope, note) VALUES (?, ?, ?, ?)");for(let i of t.linkedFiles??[])o.run(n.id,i.path,i.scope,i.note??null)}async function qa(e){let t=yt(e.pmRoot),n=Ut();if(!n){await Je.rm(t,{force:!0});return}await Je.mkdir(Ba.dirname(t),{recursive:!0});let r=`${t}.${Wf()}.tmp`,o;try{o=new n(r),qf(o),o.exec("BEGIN IMMEDIATE"),Kn(o,"version",zt),Kn(o,"context_fingerprint",e.contextFingerprint),Kn(o,"source_cursor",e.sourceCursor);for(let i of e.rows)Va(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 Xn(e){return Object.fromEntries(e.prepare("SELECT key, value FROM metadata").all().map(t=>[String(t.key),String(t.value)]))}async function Ga(e){let t=Ut();if(!t)return!1;let n=yt(e.pmRoot),r;try{await Je.access(n),r=new t(n),r.exec("PRAGMA foreign_keys = ON");let o=Xn(r);if(o.version!==zt||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&&Va(r,e.row),Kn(r,"source_cursor",e.sourceCursor),r.exec("COMMIT"),r.close(),!0}catch{try{r?.exec("ROLLBACK")}catch{}return r?.close(),!1}}function Gn(e,t,n,r,o){!r||r.length===0||(e.push(`${n} ${o} (${r.map(()=>"?").join(", ")})`),t.push(...r))}function Gf(e){let t=[],n=[];Gn(t,n,"status",e.statuses,"IN"),Gn(t,n,"status",e.excludeStatuses,"NOT IN"),Gn(t,n,"type",e.types,"IN"),Gn(t,n,"id",e.ids,"IN");for(let r of e.metadataKeys??[])t.push("EXISTS (SELECT 1 FROM item_metadata_keys AS indexed_key WHERE indexed_key.item_id = items.id AND indexed_key.key = ?)"),n.push(r);for(let[r,o]of[["parent",e.parent],["assignee",e.assignee],["sprint",e.sprint],["release",e.release]])o!==void 0&&(t.push(`${r} = ?`),n.push(o));return e.priority!==void 0&&(t.push("priority = ?"),n.push(e.priority)),{where:t.length===0?"":` WHERE ${t.join(" AND ")}`,parameters:n}}async function Wb(e){let t=Ut();if(!t)return null;let n=e.query??{},{where:r,parameters:o}=Gf(n),i;try{i=new t(yt(e.pmRoot),{readOnly:!0});let s=Xn(i);if(s.version!==zt||s.source_cursor!==e.expectedSourceCursor)return i.close(),null;let a=i.prepare(`SELECT COUNT(*) AS count FROM items${r}`).get(...o),c=[],d="";n.limit!==void 0?(d+=" LIMIT ?",c.push(Math.max(0,Math.floor(n.limit))),n.offset!==void 0&&(d+=" OFFSET ?",c.push(Math.max(0,Math.floor(n.offset))))):n.offset!==void 0&&(d+=" LIMIT -1 OFFSET ?",c.push(Math.max(0,Math.floor(n.offset))));let l=i.prepare(`SELECT metadata_json FROM items${r}
143
+ ORDER BY ${n.terminalStatuses&&n.terminalStatuses.length>0?`CASE WHEN status IN (${n.terminalStatuses.map(()=>"?").join(", ")}) THEN 1 ELSE 0 END ASC, `:""}priority ASC, updated_at DESC, id ASC${d}`).all(...o,...n.terminalStatuses??[],...c).map(f=>{let _=JSON.parse(String(f.metadata_json));if(!_.id)throw new TypeError("Indexed metadata row has no id");return _});return i.close(),{source_cursor:s.source_cursor,total:Number(a.count),items:l}}catch{return i?.close(),null}}async function Bb(e){let t=Ut();if(!t||e.paths.length===0)return null;let n;try{n=new t(yt(e.pmRoot),{readOnly:!0});let r=Xn(n);if(r.version!==zt||r.source_cursor!==e.expectedSourceCursor)return n.close(),null;let o=e.paths.map(()=>"?").join(", "),i=e.scope===void 0?"":" AND scope = ?",s=[...e.paths,...e.scope===void 0?[]:[e.scope]],a=`path IN (${o})${i}`,c=n.prepare(`SELECT COUNT(DISTINCT item_id) AS count
144
144
  FROM item_linked_files
145
- WHERE ${a}`).get(...s),d=$a(e.limit,50),l=$a(e.offset,0),f=n.prepare(`SELECT items.id, items.metadata_json
145
+ WHERE ${a}`).get(...s),d=Wa(e.limit,50),l=Wa(e.offset,0),f=n.prepare(`SELECT items.id, items.metadata_json
146
146
  FROM items
147
147
  WHERE EXISTS (
148
148
  SELECT 1 FROM item_linked_files
@@ -153,14 +153,14 @@ ${i}
153
153
  FROM item_linked_files
154
154
  WHERE item_id IN (${p.map(()=>"?").join(", ")})
155
155
  AND ${a}
156
- ORDER BY path ASC, scope ASC`).all(...p,...s),v=new Map(p.map(g=>[g,[]]));for(let g of m){let S=String(g.item_id),A=v.get(S);A.push({path:String(g.path),scope:String(g.scope),...g.note===null?{}:{note:String(g.note)}}),v.set(S,A)}for(let g of f){let S=JSON.parse(String(g.metadata_json));_.push({item:S,files:v.get(String(g.id))})}}return n.close(),{source_cursor:r.source_cursor,total:Number(c.count),matches:_}}catch{return n?.close(),null}}async function jb(e){let t=Ut();if(!t)return null;let n;try{n=new t(yt(e.pmRoot),{readOnly:!0});let r=Xn(n);if(r.version!==zt||r.source_cursor!==e.expectedSourceCursor)return n.close(),null;let o=n.prepare(`SELECT items.metadata_json
156
+ ORDER BY path ASC, scope ASC`).all(...p,...s),v=new Map(p.map(g=>[g,[]]));for(let g of m){let S=String(g.item_id),A=v.get(S);A.push({path:String(g.path),scope:String(g.scope),...g.note===null?{}:{note:String(g.note)}}),v.set(S,A)}for(let g of f){let S=JSON.parse(String(g.metadata_json));_.push({item:S,files:v.get(String(g.id))})}}return n.close(),{source_cursor:r.source_cursor,total:Number(c.count),matches:_}}catch{return n?.close(),null}}async function Vb(e){let t=Ut();if(!t)return null;let n;try{n=new t(yt(e.pmRoot),{readOnly:!0});let r=Xn(n);if(r.version!==zt||r.source_cursor!==e.expectedSourceCursor)return n.close(),null;let o=n.prepare(`SELECT items.metadata_json
157
157
  FROM item_search
158
158
  JOIN items ON items.id = item_search.id
159
159
  WHERE item_search MATCH ?
160
160
  ORDER BY bm25(item_search), items.priority, items.updated_at DESC, items.id
161
- LIMIT ?`).all(e.query,Math.max(0,Math.floor(e.limit))).map(i=>JSON.parse(String(i.metadata_json)));return n.close(),{source_cursor:r.source_cursor,items:o}}catch{return n?.close(),null}}async function Yn(e){await Je.rm(yt(e),{force:!0})}import B from"node:fs/promises";import j from"node:path";import{createHash as Uf,randomUUID as Ka}from"node:crypto";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="846c1c5d-8a5c-56ee-832a-bfc780283e70")}catch{}})();var ce=8,Xa=500,Bf="metadata-derived-index",Wf="metadata-cache.json",Vf="metadata-cache-bodies.json",qf="metadata-cache-collections.json",Gf="metadata-cache-delta.json",Kf="metadata-cache-manifest.json",Wa=4,Xf=["comments","notes","learnings","files","tests","test_runs","docs"];function Ya(){return an(me())}function Qn(e){let t={...e},n={};for(let r of Xf)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 Qa(e,t,n,r){let o=Uf("sha256");o.update(`format:${e??"default"}`);let i=Object.entries(t).sort(([s],[a])=>s.localeCompare(a)).map(([s,a])=>`${s}=${a}`).join(",");return o.update(`|types:${i}`),n&&o.update(`|schema:${JSON.stringify(n)}`),r.length>0&&o.update(`|extension_fields:${r.join(",")}`),o.digest("hex").slice(0,16)}function Zn(e){return j.join(e,"runtime",Wf)}function er(e){return j.join(e,"runtime",Vf)}function tr(e){return j.join(e,"runtime",qf)}function $o(e){return j.join(e,"runtime",Gf)}function Ho(e){return j.join(e,"runtime",Kf)}function nr(e,t){let n=j.extname(e);return`${e.slice(0,-n.length)}.${t}${n}`}var Yf=24,J=new Map,rr=new WeakMap;function zo(e){return rr.get(e)??e.source_cursor}function Jf(e,t){let n=zo(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){rr.set(e,n);for(let[r,o]of Object.entries(t.changes))o.entry?e.entries[r]=o.entry:delete e.entries[r];e.directory_signatures=t.directory_signatures,e.source_cursor=t.source_cursor}}function Qf(e,t){if(!e)return;let n=zo(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){rr.set(e,n);for(let[r,o]of Object.entries(t.changes))o.body?e.bodies[r]=o.body:delete e.bodies[r];e.source_cursor=t.source_cursor}}function Zf(e,t){if(!e)return;let n=zo(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){rr.set(e,n);for(let[r,o]of Object.entries(t.changes))o.collections?e.collections[r]=o.collections:delete e.collections[r];e.source_cursor=t.source_cursor}}function em(e,t,n,r){!e||!r||e.context_fingerprint!==r.context_fingerprint||(Jf(e,r),Qf(t,r),Zf(n,r))}function Fo(e,t){J.size>=Yf&&!J.has(e)&&Ji(J),J.set(e,t)}async function Re(e,t){let n;try{n=await B.stat(e)}catch{return J.delete(e),null}let r=J.get(e);if(r&&Bt(r.signature,n.mtimeMs,n.ctimeMs,n.size))return J.delete(e),J.set(e,r),r.envelope;let o;try{o=t(await B.readFile(e,"utf8"))}catch{o=null}return Fo(e,{signature:{mtime_ms:n.mtimeMs,ctime_ms:n.ctimeMs,size:n.size},envelope:o}),o}async function tm(e,t,n){let r=a=>{let c=JSON.parse(a);return c.version!==ce||typeof c.source_cursor!="string"||typeof c.entries!="object"||c.entries===null?null:c},o=Zn(e),i=await Re(o,r);if(!t||i===null||i.context_fingerprint===t)return i;let s=await Re(nr(o,t),r);return s===null&&qt(n,`metadata_cache_context_changed:${i.context_fingerprint}->${t}`),s}async function nm(e,t){let n=i=>{let s=JSON.parse(i);return s.version!==ce||typeof s.source_cursor!="string"||typeof s.bodies!="object"||s.bodies===null?null:s},r=er(e),o=await Re(r,n);return t&&o?.context_fingerprint!==t?await Re(nr(r,t),n):o}async function rm(e,t){let n=i=>{let s=JSON.parse(i);return s.version!==ce||typeof s.source_cursor!="string"||typeof s.collections!="object"||s.collections===null?null:s},r=tr(e),o=await Re(r,n);return t&&o?.context_fingerprint!==t?await Re(nr(r,t),n):o}async function Uo(e){let t=$o(e),n=await Re(t,r=>{let o=JSON.parse(r);return o.version!==ce||typeof o.base_source_cursor!="string"||typeof o.source_cursor!="string"||typeof o.changes!="object"||o.changes===null?null:o});if(n)return{envelope:n,invalid:!1};try{return await B.stat(t),{envelope:null,invalid:!0}}catch{return{envelope:null,invalid:!1}}}async function Bo(e){let t=Ho(e),n=await Re(t,r=>{let o=JSON.parse(r);return o.version!==ce||typeof o.context_fingerprint!="string"||typeof o.source_cursor!="string"||!Number.isInteger(o.entry_count)||o.entry_count<0||typeof o.directory_signatures!="object"||o.directory_signatures===null?null:o});if(n)return n;try{await B.stat(t),await gt(e)}catch{}return null}async function Wt(e,t){await B.mkdir(j.dirname(e),{recursive:!0}),await G(e,JSON.stringify(t));try{let r=await B.stat(e);Fo(e,{signature:{mtime_ms:r.mtimeMs,ctime_ms:r.ctimeMs,size:r.size},envelope:t})}catch{J.delete(e)}let n=j.dirname(j.dirname(e));if(e===Zn(n)||e===er(n)||e===tr(n)){let r=nr(e,t.context_fingerprint);await G(r,JSON.stringify(t));try{let c=await B.stat(r);Fo(r,{signature:{mtime_ms:c.mtimeMs,ctime_ms:c.ctimeMs,size:c.size},envelope:t})}catch{J.delete(r)}let o=j.dirname(e),i=j.extname(e),s=j.basename(e,i),a=(await B.readdir(o,{withFileTypes:!0}).catch(()=>[])).filter(c=>c.isFile()&&c.name!==j.basename(e)&&c.name.startsWith(`${s}.`)&&c.name.endsWith(i)).map(c=>j.join(o,c.name));if(a.length>Wa){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-Wa)))await B.rm(d.path,{force:!0}),J.delete(d.path)}}}function om(e,t,n){return n?t===n&&e!==n:t==="toon"&&e!=="toon"}function Za(e,t,n){return e===void 0||om(e,t,n)}function qt(e,t){e&&!e.includes(t)&&e.push(t)}function Bt(e,t,n,r){return e.mtime_ms===t&&e.ctime_ms===n&&e.size===r}async function im(e,t,n){let r=j.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)&&qt(n,`item_list_directory_read_failed:${t}`),{folder:t,dirPath:r,files:[]}}}async function sm(e,t){try{let n=await B.stat(j.join(e,t));return[t,{exists:!0,mtime_ms:n.mtimeMs,ctime_ms:n.ctimeMs,size:n.size}]}catch{return[t,{exists:!1,mtime_ms:0,ctime_ms:0,size:0}]}}async function Jn(e,t){return Object.fromEntries(await Promise.all(t.map(async n=>await sm(e,n))))}function Vt(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&&Bt(o,r.mtime_ms,r.ctime_ms,r.size)})}function am(e){return dn.some(t=>e.toLowerCase().endsWith(t))}function cm(e,t,n,r,o,i){r||(e.metadata=!0),t&&!o&&(e.body=!0),n&&!i&&(e.collections=!0)}async function dm(e,t,n){if(n)for(let r of await ke({path:e,scope:"project"}))qt(t,r)}function Va(e,t,n,r){if(e)return t&&n?n.collections:r}async function lm(e,t,n){let r=await B.stat(e),o=r.mtimeMs,i=r.ctimeMs,{size:s}=r,a=xr(e);await dm(e,n.warnings,n.dispatchReadHooks);let c=n.previousEntries[t],d=!n.forceSourceRead&&c!==void 0&&Bt(c,o,i,s),l=n.previousBodies[t],f=!n.forceSourceRead&&l!==void 0&&Bt(l,o,i,s),_=n.previousCollections[t],p=!n.forceSourceRead&&_!==void 0&&Bt(_,o,i,s);if(!(!d||n.includeBody&&!f||n.includeCollections&&!p))return{mtimeMs:o,ctimeMs:i,size:s,itemFormat:a,lightMetadata:c.metadata,heavyMetadata:Va(n.includeCollections,p,_,void 0),bodyLength:c.body_length,body:n.includeBody?l.body:void 0};let m=await B.readFile(e,"utf8"),v=Tn(m,{format:a,schema:n.schema,extensionFieldNames:n.extensionFieldNames,onWarning:S=>qt(n.warnings,S)}),g=Qn(v.metadata);return cm(n.state.misses,n.includeBody,n.includeCollections,d,f,p),{mtimeMs:o,ctimeMs:i,size:s,itemFormat:a,lightMetadata:d?c.metadata:g.light,heavyMetadata:Va(n.includeCollections,p,_,g.heavy),bodyLength:d?c.body_length:v.body.length,body:n.includeBody?v.body:void 0}}function um(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};Za(i?.itemFormat,r.itemFormat,n.preferredFormat)&&n.state.documentsById.set(o.id,{candidate:s,itemFormat:r.itemFormat})}async function fm(e,t,n,r){try{let o=await lm(t,n,r);um(t,n,r,o)}catch{qt(r.warnings,`item_list_item_read_failed:${e}/${j.basename(t)}`)}}function mm(e,t){return e&&e.context_fingerprint===t?e.entries:{}}function _m(e,t){return e&&e.context_fingerprint===t?e.bodies:{}}function pm(e,t){return e&&e.context_fingerprint===t?e.collections:{}}function hm(){return{newEntries:{},newBodies:{},newCollections:{},documentsById:new Map,misses:{metadata:!1,body:!1,collections:!1}}}async function ym(e,t){let n=[];for(let{folder:r,dirPath:o,files:i}of e)for(let s of i){if(!am(s))continue;let a=j.join(o,s),c=j.relative(t.pmRoot,a);n.push(fm(r,a,c,t)),n.length===32&&(await Promise.all(n),n.length=0)}await Promise.all(n)}async function gm(e){if(!(!(e.state.misses.metadata||Object.keys(e.previousEntries).length!==Object.keys(e.state.newEntries).length||!Vt(e.existingCache?.directory_signatures,e.directorySignatures))&&e.existingCache!==null&&e.existingCache.context_fingerprint===e.contextFingerprint))try{await Wt(Zn(e.pmRoot),{version:ce,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,directory_signatures:e.directorySignatures,entries:e.state.newEntries}),await Wt(Ho(e.pmRoot),{version:ce,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,entry_count:Object.keys(e.state.newEntries).length,directory_signatures:e.directorySignatures});let t=[...e.state.documentsById.values()].map(({candidate:n})=>({relativePath:j.relative(e.pmRoot,n.item_path),metadata:Qn(n.metadata).light,linkedFiles:n.metadata.files??[]}));t.length>=e.minimumIndexedItems?await Ua({pmRoot:e.pmRoot,contextFingerprint:e.contextFingerprint,sourceCursor:e.sourceCursor,rows:t}):await Yn(e.pmRoot)}catch{}}async function bm(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 Wt(er(e.pmRoot),{version:ce,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,bodies:e.state.newBodies}).catch(()=>{})}async function vm(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 Wt(tr(e.pmRoot),{version:ce,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,collections:e.state.newCollections}).catch(()=>{})}async function Wo(e,t,n={}){let r=await Bo(e);return n.required!==!0&&(r===null||r.entry_count<Xa)?async()=>{}:V(e,Bf,30,t,!1,!1,3e3)}async function Xb(e,t){let n=await Bo(e);if(n===null)return null;let r=await Uo(e);if(r.invalid)return await gt(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&&!Vt(i,await Jn(e,t))?null:{source_cursor:o,entry_count:n.entry_count}}function qa(e,t){let n=j.relative(e,t);return n===""||n===".."||n.startsWith(`..${j.sep}`)||j.isAbsolute(n)?null:n}async function gt(e){await Promise.all([Zn(e),er(e),tr(e),$o(e),Ho(e)].map(async t=>{await B.rm(t,{force:!0}),J.delete(t)})),await Yn(e)}async function wm(e){if(e.mutation.document===null)return{entry:null,body:null,collections:null};let t=await B.stat(e.mutation.itemPath),n=Qn(e.mutation.document.metadata),r={mtime_ms:t.mtimeMs,ctime_ms:t.ctimeMs,size:t.size};return{entry:{...r,metadata:n.light,body_length:e.mutation.document.body.length},body:{...r,body:e.mutation.document.body},collections:{...r,collections:n.heavy}}}function Em(e,t,n){return e?.context_fingerprint===t&&e.base_source_cursor===n?structuredClone(e.changes):{}}async function Vo(e){let t=qa(e.pmRoot,e.itemPath),n=e.previousItemPath?qa(e.pmRoot,e.previousItemPath):void 0;if(t===null||n===null)return await gt(e.pmRoot),["metadata_derived_index_path_invalidated"];try{let r=Qa(e.preferredFormat,e.typeToFolder,e.schema,Ya()),o=await Bo(e.pmRoot);if(o===null||o.context_fingerprint!==r)return[];let i=o.source_cursor,s=await Uo(e.pmRoot);if(s.invalid)return await gt(e.pmRoot),["metadata_derived_index_refresh_failed"];let a=Em(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 wm({mutation:e});let d=Ka();return await Wt($o(e.pmRoot),{version:ce,context_fingerprint:r,base_source_cursor:i,source_cursor:d,directory_signatures:await Jn(e.pmRoot,[...new Set(Object.values(e.typeToFolder))]),changes:a}),await Ba({pmRoot:e.pmRoot,contextFingerprint:r,expectedSourceCursor:c,sourceCursor:d,row:e.document===null?null:{relativePath:t,metadata:Qn(e.document.metadata).light,linkedFiles:e.document.metadata.files},deletedRelativePaths:[...n===void 0?[]:[n],...e.document===null?[t]:[]]})||await Yn(e.pmRoot),[]}catch{return await gt(e.pmRoot).catch(()=>{}),["metadata_derived_index_refresh_failed"]}}function km(e){return[...e.documentsById.values()].sort((t,n)=>t.candidate.metadata.id.localeCompare(n.candidate.metadata.id)).map(t=>t.candidate)}function Ga(e,t,n){return e?.context_fingerprint===t&&e.source_cursor===n}function Im(e,t,n,r,o){return e.every(i=>(!t||r[i]!==void 0)&&(!n||o[i]!==void 0))}function Sm(e){let t=new Map;for(let[n,r]of Object.entries(e.previousEntries)){let o=xr(n);if(!o)continue;let i=e.includeCollections?Ja(r.metadata,e.previousCollections[n]?.collections):r.metadata,s=t.get(i.id);Za(s?.itemFormat,o,e.preferredFormat)&&t.set(i.id,{itemFormat:o,candidate:{metadata:i,body:e.includeBody?e.previousBodies[n]?.body:void 0,item_format:o,item_path:j.join(e.pmRoot,n)}})}return[...t.values()].sort((n,r)=>n.candidate.metadata.id.localeCompare(r.candidate.metadata.id)).map(n=>n.candidate)}function Tm(e){return e.forceSourceScan||Dr()||e.existingCache?.context_fingerprint!==e.contextFingerprint||e.entryKeys.length<e.minimumIndexedItems||!Vt(e.existingCache?.directory_signatures,e.directorySignatures)?!1:[!e.includeBody||Ga(e.existingBodyCache,e.contextFingerprint,e.existingCache.source_cursor),!e.includeCollections||Ga(e.existingCollectionsCache,e.contextFingerprint,e.existingCache.source_cursor)].every(Boolean)&&Im(e.entryKeys,e.includeBody,e.includeCollections,e.previousBodies,e.previousCollections)}async function or(e,t,n,r,o,i={}){let s=i.includeBody!==!1,a=i.includeCollections!==!1,c=Ya(),d=Qa(t,n,o,c),l=await Uo(e);l.invalid&&await gt(e);let f=await tm(e,d,i.cacheDiagnostics),_=s?await nm(e,d):null,p=a?await rm(e,d):null;em(f,_,p,l.envelope);let m=mm(f,d),v=_m(_,d),g=pm(p,d),S=[...new Set(Object.values(n))],A=await Jn(e,S),N=Object.keys(m),z=Math.max(1,Math.floor(i.derivedIndexMinimumItems??Xa));if(Tm({forceSourceScan:i.forceSourceScan===!0,contextFingerprint:d,existingCache:f,existingBodyCache:_,existingCollectionsCache:p,directorySignatures:A,entryKeys:N,minimumIndexedItems:z,includeBody:s,includeCollections:a,previousBodies:v,previousCollections:g}))return Sm({pmRoot:e,preferredFormat:t,includeBody:s,includeCollections:a,previousEntries:m,previousBodies:v,previousCollections:g});let O=await Promise.all(S.map(Ze=>im(e,Ze,r))),oe=Dr(),U=hm(),Q={pmRoot:e,preferredFormat:t,warnings:r,schema:o,extensionFieldNames:c,includeBody:s,includeCollections:a,forceSourceRead:i.forceSourceScan===!0,dispatchReadHooks:oe,previousEntries:m,previousBodies:v,previousCollections:g,state:U};await ym(O,Q);let W=await Jn(e,S),Z=Vt(A,W)?W:{},ee=U.misses.metadata||Object.keys(m).length!==Object.keys(U.newEntries).length||!Vt(f?.directory_signatures,Z)||f===null?Ka():f.source_cursor;return await gm({pmRoot:e,contextFingerprint:d,sourceCursor:ee,existingCache:f,previousEntries:m,directorySignatures:Z,state:U,minimumIndexedItems:z}),s&&await bm({pmRoot:e,contextFingerprint:d,sourceCursor:ee,existingBodyCache:_,previousBodies:v,state:U}),a&&await vm({pmRoot:e,contextFingerprint:d,sourceCursor:ee,existingCollectionsCache:p,previousCollections:g,state:U}),km(U)}async function ec(e,t,n,r,o){return(await or(e,t,n,r,o,{includeBody:!1})).map(i=>({metadata:i.metadata,body:i.body??""}))}async function tc(e,t,n,r,o){return(await or(e,t,n,r,o,{includeBody:!1,includeCollections:!1})).map(i=>({metadata:i.metadata,body:i.body??""}))}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="1745a409-0f91-5f5a-8d2a-e5e61ff667a0")}catch{}})();function Go(e,t){return(t===void 0?void 0:Wi(e,t))?.execution_role??zi[e.trim().toLowerCase()]??"agent"}var Ko="blocked_by",nc="blocks",Cm=Object.freeze([Ko,nc]),qo="no-active-blocker";function F(e){return e.trim().toLowerCase()}function ir(e,t){return t?`external:${e}`:`local:${F(e)}`}function Gt(e){let t=new Map,n=typeof e.blocked_by=="string"?e.blocked_by.trim():"";if(n.length>0&&F(n)!==qo){let r=ye(n);t.set(ir(n,r),r?n:F(n))}for(let r of e.dependencies??[]){let o=typeof r.id=="string"?r.id.trim():"";if(r.kind===Ko&&o.length>0&&F(o)!==qo){let i=ye(o)||se(r.source_kind);t.set(ir(o,i),i?o:F(o))}}return[...t.values()].sort((r,o)=>r.localeCompare(o))}function sr(e){let t=new Map;for(let n of e){let r=F(n.id);r.length!==0&&t.set(r,new Set(Gt(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===nc&&typeof o.id=="string"?F(o.id):"";if(i.length===0||i===qo)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 rc(e,t){let n=F(e.id);return n.length>0?sr(t).get(n)??Gt(e):Gt(e)}function Xo(e,t,n,r){let o=e,i=typeof o.id=="string"?r?.get(F(o.id))??rc(o,[...t.values()]):Gt(e),s=new Set((e.dependencies??[]).filter(a=>a.kind===Ko&&se(a.source_kind)&&typeof a.id=="string"&&a.id.trim().length>0).map(a=>ir(a.id.trim(),!0)));return i.map(a=>{if(ye(a)||s.has(ir(a,!0)))return{id:a,title:null,status:null,resolved:!1,external:!0,...typeof e.updated_at=="string"?{blocked_since:e.updated_at}:{},resolver:null};let c=t.get(F(a));return c?{id:a,title:c.title,status:c.status,resolved:ge(c.status,n)}:{id:a,title:null,status:null,resolved:!1}})}function Om(e,t,n){return Xo(e,t,n)}function xm(e,t){let n=new Map(e.map(s=>[F(s.id),s])),r=sr(e),o=new Set([...oc(t),...t.blocked_statuses]),i=new Set;for(let s of e){let a=it(s.status,t);o.has(a)&&(t.blocked_statuses.has(a)||Xo(s,n,t,r).some(c=>!c.resolved))&&i.add(F(s.id))}return i}function Rm(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(it(s.item.status,t))));let i={ready:[],decisions:[],gates:[]};for(let s of o){let a=Go(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 oc(e){return e.active_statuses.size>0?e.active_statuses:new Set([e.open_status])}function Am(e,t,n){let r=[F(e)],o=new Set;for(;r.length>0;){let i=r.pop();if(!o.has(i)){o.add(i);for(let s of t.get(i)??[]){if(!ge(s.status,n))return!0;r.push(F(s.id))}}}return!1}function Dm(e){let t=new Map,n=new Map,r=new Map,o=sr(e);for(let i of e){t.set(F(i.id),i);let s=typeof i.parent=="string"?i.parent.trim():"";if(s.length>0){let a=F(s),c=n.get(a)??[];c.push(i),n.set(a,c)}for(let a of o.get(F(i.id))){let c=F(a),d=r.get(c)??[];d.push(i.id),r.set(c,d)}}return{itemsById:t,childrenByParent:n,blockedByReverse:r,blockerIdsByItem:o}}function Nm(e,t,n,r){let{itemsById:o,childrenByParent:i,blockedByReverse:s,blockerIdsByItem:a}=Dm(t),c=new Set([...oc(n),...n.blocked_statuses]),d=new Set(t.filter(g=>!ge(g.status,n)).map(g=>F(g.id))),l=[],f=[],_=[],p=[],m=[],v=0;for(let g of e){if(!c.has(it(g.status,n)))continue;v+=1;let S=Xo(g,o,n,a).filter(O=>!O.resolved),A=(s.get(F(g.id))??[]).filter(O=>d.has(F(O))).sort((O,oe)=>O.localeCompare(oe)),N={item:g,open_blockers:S,unblocks:A};if(Am(g.id,i,n)){_.push(N);continue}let z=n.blocked_statuses.has(it(g.status,n));if(S.length===0&&!z){let O=Go(g.type,r);O==="human"?p.push(N):O==="gate"?m.push(N):l.push(N)}else f.push(N)}return{ready:l,blocked:f,containers:_,decisions:p,gates:m,active_count:v,container_count:_.length}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ae1c56b3-148d-502d-9450-e807fdfab4da")}catch{}})();(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="283dfa35-9a8e-524c-b6e2-d433d51215ca")}catch{}})();function de(){let e=ue();for(let t of me()?.relationship_kinds??[])for(let n of t.definitions)e.register(n);return e}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="8b57e560-4ac4-53b6-9fb1-eebb1f30562a")}catch{}})();function Kt(e){if(typeof e!="string")return;let t=e.trim().toLowerCase();return t.length>0?t:void 0}function ar(e){return[e.parent_id,e.child_id,e.source,e.kind,e.holder_id,e.target_id??""].join("\0")}function Lm(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 Pm(e,t){let n=[...e].sort(),r=Lm(n,t),o=new Set,i=jm(n,t),s=[];for(let a of r.reverse()){if(o.has(a))continue;let c=Mm(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 jm(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 Mm(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 ic(e){let t=new Map;for(let n of e){let r=Kt(n?.id);r&&!t.has(r)&&t.set(r,n)}return t}function Fm(e,t,n){let r=Kt(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 $m(e,t,n,r){let o=Kt(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 sc(e,t){let n=new Map;for(let[r,o]of e){let i=Fm(r,o,e);i&&n.set(ar(i),i);for(let s of o.dependencies??[]){let a=$m(r,s,e,t);a&&n.set(ar(a),a)}}return[...n.values()].sort((r,o)=>ar(r).localeCompare(ar(o)))}function dv(e,t=de()){return sc(ic(e),t)}function Hm(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 zm(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=Kt(s.parent);if(!a||!e.has(a))continue;let c=[...r.get(i)??[]].filter(d=>d!==a).sort();c.length!==0&&o.push({child_id:i,scalar_parent_id:a,dependency_parent_ids:c,legacy_terminal:n.has(i)&&n.has(a)&&c.every(d=>n.has(d))})}return o.sort((i,s)=>i.child_id.localeCompare(s.child_id))}function cr(e,t=r=>r==="closed"||r==="canceled",n=de()){let r=ic(e),o=sc(r,n),i=Um(o),s=new Set([...r].filter(([,c])=>t(c.status)).map(([c])=>c)),a=Pm([...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:Hm(o,i.parents_by_child,s),divergences:zm(r,o,s)}}function lv(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 Um(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 Yo(e,t){let n=new Set(t);return e.every(r=>n.has(r))}function uv(e,t,n,r,o){let i=Kt(n);if(!i)return;let s=cr(e,r,o),a=cr(t,r,o),c=a.divergences.find(f=>!s.divergences.some(_=>_.child_id===f.child_id&&_.scalar_parent_id===f.scalar_parent_id&&Yo(f.dependency_parent_ids,_.dependency_parent_ids)));if(c){let f=[c.scalar_parent_id,...c.dependency_parent_ids].sort();throw new h(`Hierarchy mutation would assign ${c.child_id} to multiple parents: ${f.join(", ")}.`,b.CONFLICT,{code:"hierarchy_parent_divergence_created",source_id:i,target_id:c.child_id,verification_errors:f})}let d=a.cardinality_violations.find(f=>(f.child_id===i||f.parent_ids.includes(i))&&!s.cardinality_violations.some(_=>_.child_id===f.child_id&&Yo(f.parent_ids,_.parent_ids)));if(d)throw new h(`Hierarchy mutation would assign ${d.child_id} to multiple parents: ${d.parent_ids.join(", ")}.`,b.CONFLICT,{code:"hierarchy_cardinality_created",source_id:i,target_id:d.child_id,verification_errors:d.parent_ids});let l=a.cycles.find(f=>f.item_ids.includes(i)&&!s.cycles.some(_=>Yo(f.item_ids,_.item_ids)));if(l)throw new h(`Hierarchy mutation would create a cycle: ${l.item_ids.join(" -> ")}.`,b.CONFLICT,{code:"hierarchy_cycle_created",source_id:i,verification_errors:l.item_ids})}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="6c580b70-76eb-51db-8587-99b73dd20875")}catch{}})();var Bm="global";function hv(e){let t=e?.trim();if(t)return se(t)?Bm:t}function yv(e,t,n){return Wm(e,t,n)}function Wm(e,t,n){let r=e.trim();return se(n)||ye(r)?r:Ye(r,t)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="41f814be-ee87-5cae-b674-69c2e7f42655")}catch{}})();function vt(e){if(typeof e!="string")return;let t=e.trim();if(!(!t||["none","null","n/a","na"].includes(t.toLowerCase())))return t}function Xt(e){let t=vt(e);return t?.toLowerCase()==="no-active-blocker"?void 0:t}function Yt(e,t,n=!0){let r=vt(e);return n&&(se(t)||r!==void 0&&ye(r))}function Jo(e,t){return Yt(e,t)?`external\0${e}`:`local\0${e.toLowerCase()}`}function ac(e,t,n,r){return Yt(e,t)?r.get(e):n.get(e.toLowerCase())}function bt(e,t){let n=e.toLowerCase(),r=t.toLowerCase();return n!==r?n<r?-1:1:e!==t?e<t?-1:1:0}function Vm(e){let t=new Map;for(let n of e.dependencies??[]){if(typeof n!="object"||n===null)continue;let r=n,o=vt(r.id);if(!o)continue;let i=typeof r.kind=="string"?r.kind:"related",s=`${i}\0${Jo(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 qm(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 Vm(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=bt(r.holder_id,o.holder_id);if(i!==0)return i;let s=bt(r.target_id,o.target_id);return s!==0?s:bt(r.kind,o.kind)})}function Gm(e,t,n,r,o){if(typeof n!="object"||n===null)return;let i=vt(n.id);if(!i||Jo(i,n.source_kind)!==Jo(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 Km(e,t=r=>r==="closed"||r==="canceled",n=de()){let r=new Map;for(let o of e){if(typeof o?.id!="string"||o.id.trim().length===0)continue;let i=vt(o.blocked_by);if(i)for(let s of o.dependencies??[]){let a=Gm(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=bt(o.holder_id,i.holder_id);if(s!==0)return s;let a=bt(o.target_id,i.target_id);return a!==0?a:bt(o.dependency_kind,i.dependency_kind)})}function Qo(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,_)=>{let p=vt(d);if(!p||r.has(p.toLowerCase())||Yt(p,void 0,_))return;let m={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(`${m.holder_id}::${m.target_id}::${m.kind}::${m.source}`,m)};for(let c of n){i(c,c.parent,"parent","parent",!1),i(c,c.blocked_by,"blocked_by","blocked_by",!0);for(let d of c.dependencies??[]){if(typeof d!="object"||d===null)continue;let l=d;se(l.source_kind)||i(c,l.id,typeof l.kind=="string"?l.kind:"related","dependency",!0)}}let s=[...o.values()].sort((c,d)=>c.holder_id.localeCompare(d.holder_id)||c.target_id.localeCompare(d.target_id)||c.kind.localeCompare(d.kind)||c.source.localeCompare(d.source)),a=s.filter(c=>c.legacy_terminal);return{active:s.filter(c=>!c.legacy_terminal),legacy_terminal:a,no_active_blocker_sentinels:s.filter(c=>c.no_active_blocker_sentinel)}}function Xm(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 Ym(e){let t=new Map;for(let n of e){let r=Xt(n.blocked_by);r&&Yt(r)&&!t.has(r)&&t.set(r,r);for(let o of n.dependencies??[]){if(typeof o!="object"||o===null||!Yt(o.id,o.source_kind))continue;let i=Xt(o.id);i&&!t.has(i)&&t.set(i,i)}}return[...t.values()].sort((n,r)=>n.localeCompare(r))}var cc=new WeakMap;function Iv(e){return e.hierarchyIntegrity??cc.get(e)}function Jm(e,t=de()){let n={};for(let r of e)for(let o of r.dependencies??[]){if(typeof o!="object"||o===null)continue;let i=o.kind;if(typeof i!="string")continue;let s=i.trim().toLowerCase().replaceAll("-","_"),a=t.resolve(i);a&&s!==a.kind&&(n[s]=(n[s]??0)+1)}return Object.fromEntries(Object.entries(n).sort(([r],[o])=>r.localeCompare(o)))}function dr(e,t,n){let r=n??de(),o=e.filter(m=>typeof m?.id=="string"&&m.id.trim().length>0),i=new Map(o.map(m=>[m.id.trim().toLowerCase(),m.id.trim()])),s=Qo(o,t),a=Xm(s);for(let m of a)i.set(m.toLowerCase(),m);let c=Ym(o),d=new Set(i.keys()),l=new Map;for(let m of c){let v=m;for(;d.has(v.toLowerCase());)v=`external:${v}`;l.set(m,v),d.add(v.toLowerCase())}let f=o.map(m=>{let v=Xt(m.parent),g=Xt(m.blocked_by),S=(m.dependencies??[]).flatMap(A=>{if(typeof A!="object"||A===null)return[];let N=A,z=Xt(N.id);return z?[{id:ac(z,N.source_kind,i,l),kind:typeof N.kind=="string"?N.kind:"related"}]:[]});return{id:m.id.trim(),...v?{parent:i.get(v.toLowerCase())}:{},...g?{blocked_by:ac(g,void 0,i,l)}:{},dependencies:S}}),_=cr(o,t,r),p={graph:Pi.fromItems([...f,...a.map(m=>({id:m})),...c.map(m=>({id:l.get(m)}))],r),details:[...o.map(m=>({id:m.id.trim(),title:m.title,status:m.status,...typeof m.type=="string"&&m.type.trim().length>0?{type:m.type.trim()}:{}})),...a.map(m=>({id:m,title:`[missing] ${m}`,status:"missing"})),...c.map(m=>({id:l.get(m),title:`[external] ${m}`,status:"external"}))],missingIdSet:new Set(a.map(m=>m.toLowerCase())),dangling:s,duplicateRows:qm(o,t),orderingContradictions:Km(o,t,r),legacyAliasCounts:Jm(o,r),hierarchyIntegrity:_};return cc.set(p,_),p}import{createHash as Qm}from"node:crypto";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="e31ef0fb-e803-500b-b1e5-db9edfc880c4")}catch{}})();var Zm=64,e_=8;function t_(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 lc(e,t=r=>r==="closed"||r==="canceled",n=ue()){let r=e.filter(i=>typeof i?.id=="string"&&i.id.trim().length>0).map(i=>t_(i,t)).sort(),o=n.list().map(i=>D(i)).sort();return Qm("sha256").update(r.join("")).update("").update(o.join("")).digest("hex")}function dc(e,t,n){let r=t??n;if(!Number.isInteger(r)||r<1)throw new TypeError(`Invalid ${e} bound: ${String(t)}`);return r}var Zo=class{#e=new Map;#t;#n;constructor(t={}){this.#t=dc("maxResultsPerWorkspace",t.maxResultsPerWorkspace,Zm),this.#n=dc("maxWorkspaces",t.maxWorkspaces,e_)}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()}},uc=new Zo;function fc(){return uc}function xv(){uc.clear()}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="c67d6023-2fb2-541f-9541-8aa317368dcf")}catch{}})();var n_=["prerequisite","dependent","ancestor","descendant","provenance","related"],r_=new TextEncoder;function ei(e,t,n){let r=e??t;if(!Number.isInteger(r)||r<1)throw new TypeError(`Relationship context ${n} must be positive`);return r}function lr(e){return Math.max(1,Math.ceil(r_.encode(JSON.stringify(e)).byteLength/4))}function ti(e,t,n){let r=n.resolve(e.kind);if(r?.ordering){let o=(r.precedence??"source_before_target")==="source_before_target"?e.source:e.target;return t===o?"prerequisite":"dependent"}if(r?.hierarchy){let o=r.hierarchyDirection==="source_parent"?e.source:e.target;return t===o?"ancestor":"descendant"}return e.kind==="discovered_from"||e.kind==="incident_from"?"provenance":"related"}function o_(e,t,n,r){let o=e.filter(i=>i.source===t&&i.target===n||i.target===t&&i.source===n).map(i=>ti(i,n,r));return[...new Set(o)].sort()}function i_(e){return n_.find(t=>e.includes(t))}function s_(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 _=a[f];if(_.distance>=i&&l)continue;let p=e.neighborEdges(_.id,{direction:o,kinds:r.kinds,signal:r.signal});if(d+=p.meta.inspectedEdges,_.distance>=i){p.value.some(m=>!s.has(m.id))&&(l=!0);continue}for(let{id:m,edge:v}of p.value){if(s.has(m))continue;s.add(m);let g={id:m,distance:_.distance+1,via:_.id,role:ti(v,m,n)};c.push(g),a.push(g)}}return c.sort((f,_)=>f.distance-_.distance||f.id.localeCompare(_.id)),{rows:c,visitedNodes:a.length,inspectedEdges:d,depthTruncated:l}}function a_(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[ti(a,s,n)]+=1;return{directEdges:o,directTotal:i.length,rootEdges:i.map(({edge:s})=>s)}}function c_(e){let t=[],n=e.initialTokens;for(let r of e.candidates){if(t.length>=e.nodeLimit)break;let o=r.distance===1?o_(e.rootEdges,e.rootId,r.id,e.registry):[],i={...e.details.get(r.id)??{id:r.id},distance:r.distance,role:o.length>0?i_(o):r.role,via:r.via,reasons:o.length>0?o:[`${r.role} via ${r.via} (depth ${r.distance})`]},s=lr(i);if(n+s>e.tokenBudget)break;t.push(i),n+=s}if(e.candidates.length>0&&t.length===0)throw new TypeError("Relationship context tokenBudget cannot fit one node");return{nodes:t,usedTokens:n}}function d_(e){let t=e.options.kinds?new Set(e.options.kinds.map(i=>e.registry.require(i).kind)):void 0,n=e.graph.edges().filter(i=>{if(!e.included.has(i.source)||!e.included.has(i.target))return!1;if(t===void 0||t.has(i.kind))return!0;let s=e.registry.resolve(i.kind)?.inverse;return s!==void 0&&t.has(s)}),r=[],o=e.initialTokens;for(let i of n){if(r.length>=e.edgeLimit)break;let s=lr(i);if(o+s>e.tokenBudget)break;r.push(i),o+=s}return{edges:r,usedTokens:o,candidateCount:n.length}}function mc(e,t,n,r={}){if(!e.nodes().includes(t))throw new TypeError(`Relationship node not found: ${t}`);let o=ei(r.nodeLimit,20,"nodeLimit"),i=ei(r.edgeLimit,40,"edgeLimit"),s=ei(r.tokenBudget,1200,"tokenBudget"),a=r.registry??ue(),c=new Map(n.map(et=>[et.id,et])),d=c.get(t)??{id:t},{evidence:l=[],...f}=d,_=[...l],p=s_(e,t,a,r),{rootEdges:m,...v}=a_(e,t,a,r),g=os("relationship-context",{rootId:t,direction:r.direction??"both",kinds:[...r.kinds??[]].sort(),maxDepth:r.maxDepth??3}),S=ss(p.rows,r.cursor,g,({id:et})=>et),A=p.rows.slice(S),N=lr(f)+lr(_);if(N>s)throw new TypeError("Relationship context tokenBudget cannot fit root and evidence");let z=c_({candidates:A,details:c,rootEdges:m,rootId:t,registry:a,nodeLimit:o,tokenBudget:s,initialTokens:N}),{nodes:O}=z,oe=new Set([t,...O.map(({id:et})=>et)]),U=d_({graph:e,included:oe,options:r,registry:a,edgeLimit:i,tokenBudget:s,initialTokens:z.usedTokens}),{edges:Q,usedTokens:W}=U,Z=S+O.length,ee=Z<p.rows.length,Ze=O.at(-1),Sr=U.candidateCount-Q.length,Ci=p.depthTruncated||ee||Sr>0,ld={rootId:t,...f.status===void 0?{}:{rootStatus:f.status},...v,discoveredNodes:p.rows.length,returnedNodes:O.length,returnedEdges:Q.length,omittedNodes:p.rows.length-Z,omittedEdges:Sr,evidenceCount:_.length,hasMore:ee};return{root:f,summary:ld,nodes:O,edges:Q,evidence:_,meta:{exact:!0,truncated:Ci,completeness:Ci?"truncated":"complete",nodeLimit:o,edgeLimit:i,tokenBudget:s,usedTokens:W,visitedNodes:p.visitedNodes,inspectedEdges:p.inspectedEdges,omittedNodes:p.rows.length-Z,omittedEdges:Sr,...ee&&Ze?{nextCursor:is(g,Ze.id,Z-1)}:{}}}}import{AsyncLocalStorage as x_}from"node:async_hooks";import{lstat as R_,realpath as kc}from"node:fs/promises";import Ic from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="f4ae942c-f11f-5d24-95bf-a2abf3c226da")}catch{}})();var K={ok:!1},y=e=>typeof e=="string"?{ok:!0,value:e}:K,x=e=>typeof e=="boolean"?{ok:!0,value:e}:K;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?K:{ok:!0,value:t}}function R(...e){return t=>typeof t=="string"&&e.includes(t)?{ok:!0,value:t}:K}function E(e,t){return n=>{if(!Array.isArray(n)||t!==void 0&&n.length>t)return K;let r=[];for(let o of n){let i=e(o);if(!i.ok)return K;r.push(i.value)}return{ok:!0,value:r}}}function ri(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}:K}function u(e){return t=>t===void 0?{ok:!0,value:void 0}:e(t)}function ur(e){return t=>{if(typeof t!="object"||t===null||Array.isArray(t))return K;let n={};for(let[r,o]of Object.entries(t)){let i=e(o);if(!i.ok)return K;n[r]=i.value}return{ok:!0,value:n}}}function C(e){return t=>{if(typeof t!="object"||t===null||Array.isArray(t))return K;let n=t,r={};for(let[o,i]of Object.entries(e)){let s=i(n[o]);if(!s.ok)return K;s.value!==void 0&&(r[o]=s.value)}return{ok:!0,value:r}}}var l_=C({key:y,values:E(y),required:u(x),aliases:u(E(y)),description:u(y)}),u_=C({command:R("create","update"),option:y,required:u(x),visible:u(x),enabled:u(x)}),f_=C({name:y,description:u(y),default_status:u(y),execution_role:u(R("agent","human","gate")),folder:u(y),aliases:u(E(y)),required_create_fields:u(E(y)),required_create_repeatables:u(E(y)),options:u(E(l_)),command_option_policies:u(E(u_))}),m_=C({id:y,aliases:u(E(y)),roles:u(E(R(...Oi))),description:u(y),order:u(L())}),__=C({key:y,metadata_key:u(y),front_matter_key:u(y),cli_flag:u(y),cli_aliases:u(E(y)),description:u(y),type:u(R(...xi)),commands:u(E(R(...Ri))),repeatable:u(x),required:u(x),required_on_create:u(x),required_types:u(E(y)),allow_unset:u(x)}),p_=e=>{if(!Array.isArray(e)||e.length!==2)return K;let[t,n]=e;return typeof t!="string"||typeof n!="string"?K:{ok:!0,value:[t,n]}},h_=C({type:y,allowed_transitions:E(p_)}),y_=u(C({version:u(L({int:!0})),files:u(C({types:u(y),statuses:u(y),fields:u(y),workflows:u(y)})),statuses:u(E(m_)),fields:u(E(__)),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(E(h_)),unknown_field_policy:u(R(...Ai))})),g_=u(C({preset:u(R(...Di)),ownership_enforcement:u(R("none","warn","strict")),create_mode_default:u(R("progressive","strict")),close_validation_default:u(R("off","warn","strict")),require_close_reason:u(x),parent_reference:u(R("warn","strict_error")),metadata_profile:u(R("core","strict","custom")),force_required_for_stale_lock:u(x),create_default_type:u(y),workflow_enforcement:u(R("off","warn","strict")),duplicate_detection_mode:u(R("off","advisory","strict")),duplicate_detection_threshold:u(L({min:0,max:1})),duplicate_detection_limit:u(L({int:!0,min:0,max:20}))})),b_=C({name:y,disabled:u(x),require_trusted:u(x),require_provenance:u(x),sandbox_profile:u(R("none","restricted","strict")),allowed_capabilities:u(E(y)),blocked_capabilities:u(E(y)),allowed_surfaces:u(E(y)),blocked_surfaces:u(E(y)),allowed_commands:u(E(y)),blocked_commands:u(E(y)),allowed_actions:u(E(y)),blocked_actions:u(E(y)),allowed_services:u(E(y)),blocked_services:u(E(y))}),ni=R("block","warn"),v_=e=>typeof e=="string"?ni(e):C({global:u(ni),project:u(ni)})(e),w_=u(C({mode:u(R("off","warn","enforce")),trust_mode:u(R("off","warn","enforce")),pm_max_version_exceeded_mode:u(v_),require_provenance:u(x),trusted_extensions:u(E(y)),default_sandbox_profile:u(R("none","restricted","strict")),allowed_extensions:u(E(y)),blocked_extensions:u(E(y)),allowed_capabilities:u(E(y)),blocked_capabilities:u(E(y)),allowed_surfaces:u(E(y)),blocked_surfaces:u(E(y)),allowed_commands:u(E(y)),blocked_commands:u(E(y)),allowed_actions:u(E(y)),blocked_actions:u(E(y)),allowed_services:u(E(y)),blocked_services:u(E(y)),extension_overrides:u(E(b_))})),Qe=ri(128),E_=C({harness:ri(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u),environment_keys:u(E(Qe,64)),model_environment_keys:u(E(Qe,64)),session_environment_keys:u(E(Qe,64)),provenance_environment_keys:u(ur(E(Qe,64))),provenance_resolvers:u(ur(R("ai_agent_version","claude_session_file"))),provenance_unavailable_dimensions:u(E(Qe,64)),argv_markers:u(E(Qe,64)),client_names:u(E(Qe,64))}),k_=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(x),identity_vocabulary:u(C({version:L({int:!0,positive:!0}),aliases:ur(ri(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u))})),harness_signals:E(E_)})),mutation_guard:u(C({require_attributed_author:u(x),secret_guard:u(R("off","advise","block")),stale_in_progress_hours:u(L({int:!0,positive:!0}))})),item_format:u(R("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:R("toon","json")}),ux:u(C({deprecation_hints:u(x)})),history:u(C({missing_stream:R("auto_create","strict_error"),compact_policy:u(C({enabled:u(x),max_entries:u(L({int:!0,positive:!0})),trigger:u(R("health_warn","auto"))}))})),validation:u(C({sprint_release_format:R("warn","strict_error"),parent_reference:u(R("warn","strict_error")),metadata_profile:u(R("core","strict","custom")),metadata_required_fields:u(E(y)),lifecycle_stale_blocker_reason_patterns:u(E(y)),lifecycle_closure_like_blocked_reason_patterns:u(E(y)),lifecycle_closure_like_resolution_patterns:u(E(y)),lifecycle_closure_like_actual_result_patterns:u(E(y)),estimate_defaults_by_type:u(ur(L({int:!0,positive:!0})))})),governance:g_,workflow:u(C({definition_of_done:E(y)})),testing:u(C({record_results_to_items:x,allow_untrusted_linked_tests:u(x)})),telemetry:u(C({enabled:x,first_run_prompt_completed:u(x),capture_level:u(R("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(x),declined:u(x),declined_at:u(y),template_version:u(L({int:!0,positive:!0})),last_checked_files:u(E(y))})),item_types:u(C({definitions:E(f_)})),schema:y_,context:u(C({default_depth:u(R("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(x),activity:u(x),progress:u(x),recently_created:u(x),unparented:u(x),blockers:u(x),files:u(x),workload:u(x),staleness:u(x),tests:u(x)}))})),extensions:C({enabled:E(y),disabled:E(y),policy:w_}),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(R("auto","keyword","semantic","hybrid")),corpus_fields:u(E(y)),mutation_refresh_policy:u(R("cache_only","semantic_configured","semantic_auto")),query_expansion:u(C({enabled:u(x),provider:u(y)})),rerank:u(C({enabled:u(x),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 oi(e){let t=k_(e);return t.ok?{success:!0,data:t.value}:{success:!1}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="a0ca9902-540c-50fe-a4e2-9c234c4a01f3")}catch{}})();function fr(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ii(e,t,n,r=[]){if(ie(e,t)&&(r.length>0||fr(n)))return n;if(ie(e,n)||ie(t,n))return t;if((e===void 0||fr(e))&&fr(t)&&fr(n)){let o=e??{},i=new Set([...Object.keys(o),...Object.keys(t),...Object.keys(n)]);return Object.fromEntries([...i].flatMap(s=>{let a=ii(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 h(`Settings changed concurrently at ${r.join(".")||"<root>"}; read the latest settings and reapply the intended change.`,b.CONFLICT,{reason:"stale_settings_snapshot",required:"Read a fresh settings snapshot and reapply the intended change.",why:"Another writer changed the same setting after this snapshot was read.",examples:["pm config project export --json"],nextSteps:["Read the current settings, then retry the original config operation."]})}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="de43e8e6-d7ef-53cc-94b0-ccdf1c4f94a3")}catch{}})();var I_={Epic:2880,Feature:480,Story:480,Milestone:2880,Task:120,Issue:60,Bug:60,Chore:30,Decision:15,Plan:120},_c=120;function si(e){return typeof e=="number"&&Number.isFinite(e)&&e>0}function hc(e){let t=new Map;for(let[n,r]of Object.entries(e))t.set(n.toLowerCase(),r);return t}var S_=hc(I_),pc=new WeakMap;function T_(e){let t=pc.get(e);if(t)return t;let n=hc(e);return pc.set(e,n),n}function Hv(e,t){let n=(e??"").trim().toLowerCase();if(n.length===0)return _c;if(t){let o=T_(t).get(n);if(si(o))return Math.floor(o)}let r=S_.get(n);return si(r)?Math.floor(r):_c}function ai(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||!si(r)||(t[o]=Math.floor(r))}return t}import{stat as C_}from"node:fs/promises";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="78c79deb-5cf0-54fe-b98c-a0d5b3671ab2")}catch{}})();var mr=new Map;function yc(e){return[...new Set(e.map(t=>t.trim()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}async function O_(e){try{let t=await C_(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=yc(e),n=await Promise.all(t.map(r=>O_(r)));return n.sort((r,o)=>r.path.localeCompare(o.path)),n}function Jt(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 gc(e){return mr.get(e)}function _r(e,t){let n=yc(t.tracked_paths),r=[...t.signatures].map(o=>({path:o.path,mtime_ms:o.mtime_ms,size:o.size})).sort((o,i)=>o.path.localeCompare(i.path));mr.set(e,{tracked_paths:n,signatures:r,value:t.value})}function De(e){if(e){mr.delete(e);return}mr.clear()}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="bbb5e299-541d-5fff-8422-855c85cf7a31")}catch{}})();var ui=new x_;async function aw(e,t,n=()=>!0){let r=new Set([Ic.resolve(e)]);try{r.add(await kc(e))}catch{}return ui.run([...ui.getStore()??[],[r,n]],t)}function A_(e){let t=Ic.resolve(e);return ui.getStore()?.some(([n,r])=>n.has(t)&&r())??!1}var D_="settings:write",Sc=Symbol("pm.settings.persist_source"),N_=128,L_=new Set(["off","advisory","strict"]);function bc(e){return structuredClone(Li[e])}function P_(e){return e==="minimal"||e==="default"||e==="strict"||e==="custom"?e:k.governance.preset}function vc(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 j_(e){return e.preset==="custom"?vc({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):vc({preset:e.preset},e)}function M_(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),L_.has(String(e.duplicate_detection_mode))&&(n.duplicate_detection_mode=e.duplicate_detection_mode);let r=e.duplicate_detection_threshold;[typeof r=="number",Number.isFinite(r),Number(r)>=0,Number(r)<=1].every(Boolean)&&(n.duplicate_detection_threshold=r);let o=e.duplicate_detection_limit;return[typeof o=="number",Number.isSafeInteger(o),Number(o)>=0,Number(o)<=20].every(Boolean)&&(n.duplicate_detection_limit=o),n}function yr(e){let t=e.governance??{},n=P_(t.preset),r=M_(t);if(n==="custom"){let s=bc("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=bc(n),i=r.require_close_reason??o.require_close_reason;return{preset:n,...o,...r,require_close_reason:i}}function Tc(){return structuredClone(k)}function Cc(e){return e==="cache_only"||e==="semantic_configured"||e==="semantic_auto"?e:k.search.mutation_refresh_policy}function Oc(e){return e==="auto"||e==="keyword"||e==="semantic"||e==="hybrid"?e:"auto"}function xc(e){return typeof e=="boolean"?e:k.search.query_expansion.enabled}function Rc(e){return typeof e!="string"?k.search.query_expansion.provider:e.trim()}function Ac(e){return typeof e=="boolean"?e:k.search.rerank.enabled}function Dc(e){return typeof e!="string"?k.search.rerank.model:e.trim()}function Nc(e){return typeof e=="number"&&Number.isFinite(e)&&Number.isInteger(e)&&e>0?e:k.search.rerank.top_k}function Lc(e){if(typeof e!="string")return k.vector_store.collection_name;let t=e.trim().replaceAll(/[^a-zA-Z0-9_-]/g,"_").slice(0,N_);return t.length>0?t:k.vector_store.collection_name}function ci(e){return{present:Array.isArray(e),values:Array.isArray(e)?structuredClone(e):[]}}function Pc(e,t){let n=e.schema,r=ci(n?.statuses),o=ci(n?.fields),i=ci(n?.type_workflows);return{persisted_settings:structuredClone(e),source_settings:structuredClone(e),has_source_item_type_definitions:Array.isArray(e.item_types?.definitions),source_item_type_definitions:wt(e.item_types?.definitions),has_source_schema_statuses:r.present,source_schema_statuses:r.values,has_source_schema_fields:o.present,source_schema_fields:o.values,has_source_schema_type_workflows:i.present,source_schema_type_workflows:i.values,runtime_item_type_definitions:wt(t.item_types?.definitions),runtime_schema_statuses:structuredClone(t.schema.statuses),runtime_schema_fields:structuredClone(t.schema.fields),runtime_schema_type_workflows:structuredClone(t.schema.type_workflows??[])}}function _i(e,t){Object.defineProperty(e,Sc,{value:t,writable:!0,configurable:!0,enumerable:!1})}function jc(e){let t=e[Sc];if(!(!t||typeof t!="object"))return t}function pr(e){let t=structuredClone(e.settings),n=jc(e.settings);return n&&_i(t,n),{settings:t,metadata:{has_explicit_item_format:e.metadata.has_explicit_item_format},warnings:[...e.warnings]}}function F_(e,t,n){let r=Ct(t);return[n,Ot(e,r.files.types,Tt.types),Ot(e,r.files.statuses,Tt.statuses),Ot(e,r.files.fields,Tt.fields),Ot(e,r.files.workflows,Tt.workflows)]}async function $_(e,t,n){let r=await Ae(t);_r(e,{tracked_paths:t,signatures:r,value:pr(n)})}async function H_(e,t,n){try{await $_(e,t,n)}catch{De(e)}}function wc(e,t){return e.find(n=>n.path===t)}function z_(e,t,n){for(let r of n){let o=wc(e,r),i=wc(t,r);if(!o||!i||!Jt([o],[i]))return!1}return!0}async function di(e,t,n,r,o){try{let i=await Ae(t);if(!z_(r,i,o)){De(e);return}_r(e,{tracked_paths:t,signatures:i,value:pr(n)})}catch{De(e)}}function U_(e,t){let n=Ct(e.schema),r=wt(e.item_types?.definitions);if(!t)return{item_type_definitions:r,schema_statuses:n.statuses,schema_fields:n.fields,schema_type_workflows:n.type_workflows};let o=n.type_workflows??[],i=ie(r,t.runtime_item_type_definitions),s=ie(n.statuses,t.runtime_schema_statuses),a=ie(n.fields,t.runtime_schema_fields),c=ie(o,t.runtime_schema_type_workflows);return{item_type_definitions:i?t.has_source_item_type_definitions?wt(t.source_item_type_definitions):[]:r,schema_statuses:s?t.has_source_schema_statuses?structuredClone(t.source_schema_statuses):[]:n.statuses,schema_fields:a?t.has_source_schema_fields?structuredClone(t.source_schema_fields):[]:n.fields,schema_type_workflows:c?t.has_source_schema_type_workflows?structuredClone(t.source_schema_type_workflows):void 0:n.type_workflows}}function le(e){return{settings:Tc(),metadata:{has_explicit_item_format:!1},warnings:e?[e]:[]}}function Mc(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=e.item_format;return t==="toon"||t==="json_markdown"}function fi(e){return[...new Set((e??[]).map(t=>t.trim()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function Fc(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:fi(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 B_(e){return e==="off"||e==="warn"||e==="enforce"?e:k.extensions.policy.mode}function W_(e){return e==="off"||e==="warn"||e==="enforce"?e:k.extensions.policy.trust_mode}function $c(e){return e==="none"||e==="restricted"||e==="strict"?e:k.extensions.policy.default_sandbox_profile}function V_(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=$c(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),_=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),_.length>0&&(n.blocked_services=_),n}function q_(e){let t=new Map;for(let n of e??[]){let r=V_(n);r&&t.set(r.name,r)}return[...t.values()].sort((n,r)=>n.name.localeCompare(r.name))}function li(e){return e==="block"||e==="warn"?e:void 0}function G_(e){if(typeof e=="string")return li(e);if(typeof e=="object"&&e!==null&&!Array.isArray(e)){let t=li(e.global),n=li(e.project);return t===void 0&&n===void 0?void 0:{...t!==void 0?{global:t}:{},...n!==void 0?{project:n}:{}}}}function X(e,t){return re(e?.[t]??k.extensions.policy[t])}function Hc(e){let t=G_(e?.pm_max_version_exceeded_mode);return{mode:B_(e?.mode),trust_mode:W_(e?.trust_mode),...t!==void 0?{pm_max_version_exceeded_mode:t}:{},require_provenance:e?.require_provenance===!0,trusted_extensions:X(e,"trusted_extensions"),default_sandbox_profile:$c(e?.default_sandbox_profile),allowed_extensions:X(e,"allowed_extensions"),blocked_extensions:X(e,"blocked_extensions"),allowed_capabilities:X(e,"allowed_capabilities"),blocked_capabilities:X(e,"blocked_capabilities"),allowed_surfaces:X(e,"allowed_surfaces"),blocked_surfaces:X(e,"blocked_surfaces"),allowed_commands:X(e,"allowed_commands"),blocked_commands:X(e,"blocked_commands"),allowed_actions:X(e,"allowed_actions"),blocked_actions:X(e,"blocked_actions"),allowed_services:X(e,"allowed_services"),blocked_services:X(e,"blocked_services"),extension_overrides:q_(e?.extension_overrides??k.extensions.policy.extension_overrides)}}function zc(e){return[...new Set((e??[]).map(t=>t.trim().toLowerCase().replaceAll("-","_")))].filter(t=>t.length>0).sort((t,n)=>t.localeCompare(n)).filter(t=>["author","acceptance_criteria","estimated_minutes","close_reason","reviewer","risk","confidence","sprint","release"].includes(t))}function Ne(e){return[...new Set((e??[]).map(t=>t.trim().toLowerCase()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function $(e,t){return e===void 0?t:e}function Y(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:{}}function mi(e){return Array.isArray(e)?e:[]}function K_(e,t,n){return{...t.validation,...e.validation,parent_reference:n.parent_reference,metadata_profile:n.metadata_profile,metadata_required_fields:zc(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:ai(e.validation?.estimate_defaults_by_type)}}function X_(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 Y_(e,t){return{...t.search,...e.search,default_mode:Oc(e.search?.default_mode),mutation_refresh_policy:Cc(e.search?.mutation_refresh_policy),query_expansion:{...t.search.query_expansion,...e.search?.query_expansion,enabled:xc(e.search?.query_expansion?.enabled),provider:Rc(e.search?.query_expansion?.provider)},rerank:{...t.search.rerank,...e.search?.rerank,enabled:Ac(e.search?.rerank?.enabled),model:Dc(e.search?.rerank?.model),top_k:Nc(e.search?.rerank?.top_k)}}}function J_(e,t){return{adapter:e.vector_store.adapter??t.vector_store.adapter,collection_name:Lc(e.vector_store.collection_name),qdrant:{...t.vector_store.qdrant,...e.vector_store.qdrant},lancedb:{...t.vector_store.lancedb,...e.vector_store.lancedb}}}function Q_(e,t){return e.item_format==="json_markdown"?"toon":e.item_format??t.item_format}function Z_(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 ep(e,t){return{openai:{...t.providers.openai,...e.providers.openai},ollama:{...t.providers.ollama,...e.providers.ollama}}}function wt(e){let t=(e??[]).map(r=>Hi(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 hr(e){let t=Tc(),n=yr({governance:e.governance??{preset:"default"}});return{...t,...e,item_format:Q_(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:K_(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:X_(e,t),agent_guidance:Fc(e.agent_guidance??t.agent_guidance),item_types:{definitions:wt(e.item_types?.definitions)},schema:Ct(e.schema??t.schema),context:Z_(e,t),extensions:{enabled:[...e.extensions.enabled],disabled:[...e.extensions.disabled],policy:Hc(e.extensions.policy??t.extensions.policy)},search:Y_(e,t),providers:ep(e,t),vector_store:J_(e,t)}}function tp(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(Y(t.identity_vocabulary),["version","aliases"])),e.agent_identity.harness_signals=mi(e.agent_identity.harness_signals).map(n=>T(Y(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(Y(e.schema.files),["types","statuses","fields","workflows"]),e.schema.workflow=T(Y(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(Y(e.context.sections),["hierarchy","activity","progress","blockers","files","workload","staleness","tests"]),e.extensions=T(e.extensions,["enabled","disabled","policy"]),e.extensions.policy=T(Y(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=mi(e.extensions.policy.extension_overrides).map(n=>T(Y(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(Y(e.search.query_expansion),["enabled","provider"]),e.search.rerank=T(Y(e.search.rerank),["enabled","model","top_k"]),e.providers=T(e.providers,["openai","ollama"]),e.providers.openai=T(Y(e.providers.openai),["base_url","api_key","model"]),e.providers.ollama=T(Y(e.providers.ollama),["base_url","model"]),e.vector_store=T(e.vector_store,["adapter","collection_name","qdrant","lancedb"]),e.vector_store.qdrant=T(Y(e.vector_store.qdrant),["url","api_key"]),e.vector_store.lancedb=T(Y(e.vector_store.lancedb),["path"])}function np(e){return{...e,locks:$(e.locks,k.locks),ids:$(e.ids,k.ids),agent_identity:$(e.agent_identity,k.agent_identity),mutation_guard:$(e.mutation_guard,k.mutation_guard),checkpoints:$(e.checkpoints,k.checkpoints),output:$(e.output,k.output),ux:$(e.ux,k.ux),history:$(e.history,k.history),validation:$(e.validation,k.validation),workflow:$(e.workflow,k.workflow),testing:$(e.testing,k.testing),telemetry:$(e.telemetry,k.telemetry),agent_guidance:$(e.agent_guidance,k.agent_guidance),item_types:$(e.item_types,k.item_types),schema:$(e.schema,k.schema),context:$(e.context,k.context),extensions:$(e.extensions,k.extensions),search:$(e.search,k.search),providers:$(e.providers,k.providers),vector_store:$(e.vector_store,k.vector_store)}}function rp(e,t){return{...e.validation,parent_reference:t.parent_reference,metadata_profile:t.metadata_profile,metadata_required_fields:zc(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:ai(e.validation?.estimate_defaults_by_type)}}function op(e){return{...k.search,...e.search,default_mode:Oc(e.search?.default_mode),mutation_refresh_policy:Cc(e.search?.mutation_refresh_policy),query_expansion:{...k.search.query_expansion,...e.search?.query_expansion,enabled:xc(e.search?.query_expansion?.enabled),provider:Rc(e.search?.query_expansion?.provider)},rerank:{...k.search.rerank,...e.search?.rerank,enabled:Ac(e.search?.rerank?.enabled),model:Dc(e.search?.rerank?.model),top_k:Nc(e.search?.rerank?.top_k)}}}function ip(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 sp(e){return{...e.vector_store,adapter:e.vector_store?.adapter??k.vector_store.adapter,collection_name:Lc(e.vector_store?.collection_name),qdrant:{...e.vector_store?.qdrant},lancedb:{...e.vector_store?.lancedb}}}function ap(e,t,n,r){return{...e,item_format:"toon",validation:rp(e,t),governance:t,agent_guidance:Fc(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:op(e),context:ip(e),extensions:{enabled:fi(e.extensions?.enabled),disabled:fi(e.extensions?.disabled),policy:Hc(e.extensions?.policy)},vector_store:sp(e)}}function Uc(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)?Uc(o,r):e[n]=structuredClone(r)}}function Bc(e,t,n){let r=new Set([...Object.keys(t),...Object.keys(n)]);for(let o of r){let i=t[o],s=n[o];if(!ie(i,s)){if(s===void 0){delete e[o];continue}if(typeof i=="object"&&i!==null&&!Array.isArray(i)&&typeof s=="object"&&s!==null&&!Array.isArray(s)){let a=e[o],c=typeof a=="object"&&a!==null&&!Array.isArray(a)?a:{};Bc(c,i,s),Object.keys(c).length>0?e[o]=c:delete e[o];continue}e[o]=structuredClone(s)}}}var pi=["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 Ec(e,t){let n=np(e),r=yr(n),o=Ct(n.schema),i=U_(n,t),s=ap(n,r,o,i),a=T({...s,governance:j_(r)},pi);return tp(a),a}function cp(e,t={}){let n=t.source===void 0?t.persist_source:Pc(t.source.validated,hr(t.source.validated)),r=Ec(e,n);if(n){let o=hr(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=Ec(o,n);t.source!==void 0&&Uc(i,t.source.validated);let s=structuredClone(t.source===void 0?n.source_settings:t.source.raw);return Bc(s,i,r),`${JSON.stringify(T(s,pi),null,2)}
161
+ LIMIT ?`).all(e.query,Math.max(0,Math.floor(e.limit))).map(i=>JSON.parse(String(i.metadata_json)));return n.close(),{source_cursor:r.source_cursor,items:o}}catch{return n?.close(),null}}async function Yn(e){await Je.rm(yt(e),{force:!0})}import W from"node:fs/promises";import j from"node:path";import{createHash as Kf,randomUUID as Qa}from"node:crypto";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="846c1c5d-8a5c-56ee-832a-bfc780283e70")}catch{}})();var ce=8,Za=500,Xf="metadata-derived-index",Yf="metadata-cache.json",Jf="metadata-cache-bodies.json",Qf="metadata-cache-collections.json",Zf="metadata-cache-delta.json",em="metadata-cache-manifest.json",Ka=4,tm=["comments","notes","learnings","files","tests","test_runs","docs"];function ec(){return an(me())}function Qn(e){let t={...e},n={};for(let r of tm)r in t&&(n[r]=t[r],delete t[r]);return{light:t,heavy:n}}function tc(e,t){return!t||Object.keys(t).length===0?e:{...e,...t}}function nc(e,t,n,r){let o=Kf("sha256");o.update(`format:${e??"default"}`);let i=Object.entries(t).sort(([s],[a])=>s.localeCompare(a)).map(([s,a])=>`${s}=${a}`).join(",");return o.update(`|types:${i}`),n&&o.update(`|schema:${JSON.stringify(n)}`),r.length>0&&o.update(`|extension_fields:${r.join(",")}`),o.digest("hex").slice(0,16)}function Zn(e){return j.join(e,"runtime",Yf)}function er(e){return j.join(e,"runtime",Jf)}function tr(e){return j.join(e,"runtime",Qf)}function zo(e){return j.join(e,"runtime",Zf)}function Uo(e){return j.join(e,"runtime",em)}function nr(e,t){let n=j.extname(e);return`${e.slice(0,-n.length)}.${t}${n}`}var nm=24,J=new Map,rr=new WeakMap;function Wo(e){return rr.get(e)??e.source_cursor}function rm(e,t){let n=Wo(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){rr.set(e,n);for(let[r,o]of Object.entries(t.changes))o.entry?e.entries[r]=o.entry:delete e.entries[r];e.directory_signatures=t.directory_signatures,e.source_cursor=t.source_cursor}}function om(e,t){if(!e)return;let n=Wo(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){rr.set(e,n);for(let[r,o]of Object.entries(t.changes))o.body?e.bodies[r]=o.body:delete e.bodies[r];e.source_cursor=t.source_cursor}}function im(e,t){if(!e)return;let n=Wo(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){rr.set(e,n);for(let[r,o]of Object.entries(t.changes))o.collections?e.collections[r]=o.collections:delete e.collections[r];e.source_cursor=t.source_cursor}}function sm(e,t,n,r){!e||!r||e.context_fingerprint!==r.context_fingerprint||(rm(e,r),om(t,r),im(n,r))}function Ho(e,t){J.size>=nm&&!J.has(e)&&Zi(J),J.set(e,t)}async function Re(e,t){let n;try{n=await W.stat(e)}catch{return J.delete(e),null}let r=J.get(e);if(r&&Wt(r.signature,n.mtimeMs,n.ctimeMs,n.size))return J.delete(e),J.set(e,r),r.envelope;let o;try{o=t(await W.readFile(e,"utf8"))}catch{o=null}return Ho(e,{signature:{mtime_ms:n.mtimeMs,ctime_ms:n.ctimeMs,size:n.size},envelope:o}),o}async function am(e,t,n){let r=a=>{let c=JSON.parse(a);return c.version!==ce||typeof c.source_cursor!="string"||typeof c.entries!="object"||c.entries===null?null:c},o=Zn(e),i=await Re(o,r);if(!t||i===null||i.context_fingerprint===t)return i;let s=await Re(nr(o,t),r);return s===null&&qt(n,`metadata_cache_context_changed:${i.context_fingerprint}->${t}`),s}async function cm(e,t){let n=i=>{let s=JSON.parse(i);return s.version!==ce||typeof s.source_cursor!="string"||typeof s.bodies!="object"||s.bodies===null?null:s},r=er(e),o=await Re(r,n);return t&&o?.context_fingerprint!==t?await Re(nr(r,t),n):o}async function dm(e,t){let n=i=>{let s=JSON.parse(i);return s.version!==ce||typeof s.source_cursor!="string"||typeof s.collections!="object"||s.collections===null?null:s},r=tr(e),o=await Re(r,n);return t&&o?.context_fingerprint!==t?await Re(nr(r,t),n):o}async function Bo(e){let t=zo(e),n=await Re(t,r=>{let o=JSON.parse(r);return o.version!==ce||typeof o.base_source_cursor!="string"||typeof o.source_cursor!="string"||typeof o.changes!="object"||o.changes===null?null:o});if(n)return{envelope:n,invalid:!1};try{return await W.stat(t),{envelope:null,invalid:!0}}catch{return{envelope:null,invalid:!1}}}async function Vo(e){let t=Uo(e),n=await Re(t,r=>{let o=JSON.parse(r);return o.version!==ce||typeof o.context_fingerprint!="string"||typeof o.source_cursor!="string"||!Number.isInteger(o.entry_count)||o.entry_count<0||typeof o.directory_signatures!="object"||o.directory_signatures===null?null:o});if(n)return n;try{await W.stat(t),await gt(e)}catch{}return null}async function Bt(e,t){await W.mkdir(j.dirname(e),{recursive:!0}),await G(e,JSON.stringify(t));try{let r=await W.stat(e);Ho(e,{signature:{mtime_ms:r.mtimeMs,ctime_ms:r.ctimeMs,size:r.size},envelope:t})}catch{J.delete(e)}let n=j.dirname(j.dirname(e));if(e===Zn(n)||e===er(n)||e===tr(n)){let r=nr(e,t.context_fingerprint);await G(r,JSON.stringify(t));try{let c=await W.stat(r);Ho(r,{signature:{mtime_ms:c.mtimeMs,ctime_ms:c.ctimeMs,size:c.size},envelope:t})}catch{J.delete(r)}let o=j.dirname(e),i=j.extname(e),s=j.basename(e,i),a=(await W.readdir(o,{withFileTypes:!0}).catch(()=>[])).filter(c=>c.isFile()&&c.name!==j.basename(e)&&c.name.startsWith(`${s}.`)&&c.name.endsWith(i)).map(c=>j.join(o,c.name));if(a.length>Ka){let c=(await Promise.all(a.map(async d=>{try{return{path:d,mtime:(await W.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-Ka)))await W.rm(d.path,{force:!0}),J.delete(d.path)}}}function lm(e,t,n){return n?t===n&&e!==n:t==="toon"&&e!=="toon"}function rc(e,t,n){return e===void 0||lm(e,t,n)}function qt(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 um(e,t,n){let r=j.join(e,t);try{let o=await W.readdir(r);return{folder:t,dirPath:r,files:o}}catch(o){return typeof o=="object"&&o!==null&&"code"in o&&!te(o)&&qt(n,`item_list_directory_read_failed:${t}`),{folder:t,dirPath:r,files:[]}}}async function fm(e,t){try{let n=await W.stat(j.join(e,t));return[t,{exists:!0,mtime_ms:n.mtimeMs,ctime_ms:n.ctimeMs,size:n.size}]}catch{return[t,{exists:!1,mtime_ms:0,ctime_ms:0,size:0}]}}async function Jn(e,t){return Object.fromEntries(await Promise.all(t.map(async n=>await fm(e,n))))}function Vt(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 mm(e){return dn.some(t=>e.toLowerCase().endsWith(t))}function _m(e,t,n,r,o,i){r||(e.metadata=!0),t&&!o&&(e.body=!0),n&&!i&&(e.collections=!0)}async function pm(e,t,n){if(n)for(let r of await ke({path:e,scope:"project"}))qt(t,r)}function Xa(e,t,n,r){if(e)return t&&n?n.collections:r}async function hm(e,t,n){let r=await W.stat(e),o=r.mtimeMs,i=r.ctimeMs,{size:s}=r,a=Or(e);await pm(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),_=n.previousCollections[t],p=!n.forceSourceRead&&_!==void 0&&Wt(_,o,i,s);if(!(!d||n.includeBody&&!f||n.includeCollections&&!p))return{mtimeMs:o,ctimeMs:i,size:s,itemFormat:a,lightMetadata:c.metadata,heavyMetadata:Xa(n.includeCollections,p,_,void 0),bodyLength:c.body_length,body:n.includeBody?l.body:void 0};let m=await W.readFile(e,"utf8"),v=Tn(m,{format:a,schema:n.schema,extensionFieldNames:n.extensionFieldNames,onWarning:S=>qt(n.warnings,S)}),g=Qn(v.metadata);return _m(n.state.misses,n.includeBody,n.includeCollections,d,f,p),{mtimeMs:o,ctimeMs:i,size:s,itemFormat:a,lightMetadata:d?c.metadata:g.light,heavyMetadata:Xa(n.includeCollections,p,_,g.heavy),bodyLength:d?c.body_length:v.body.length,body:n.includeBody?v.body:void 0}}function ym(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?tc(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};rc(i?.itemFormat,r.itemFormat,n.preferredFormat)&&n.state.documentsById.set(o.id,{candidate:s,itemFormat:r.itemFormat})}async function gm(e,t,n,r){try{let o=await hm(t,n,r);ym(t,n,r,o)}catch{qt(r.warnings,`item_list_item_read_failed:${e}/${j.basename(t)}`)}}function bm(e,t){return e&&e.context_fingerprint===t?e.entries:{}}function vm(e,t){return e&&e.context_fingerprint===t?e.bodies:{}}function wm(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 km(e,t){let n=[];for(let{folder:r,dirPath:o,files:i}of e)for(let s of i){if(!mm(s))continue;let a=j.join(o,s),c=j.relative(t.pmRoot,a);n.push(gm(r,a,c,t)),n.length===32&&(await Promise.all(n),n.length=0)}await Promise.all(n)}async function Im(e){if(!(!(e.state.misses.metadata||Object.keys(e.previousEntries).length!==Object.keys(e.state.newEntries).length||!Vt(e.existingCache?.directory_signatures,e.directorySignatures))&&e.existingCache!==null&&e.existingCache.context_fingerprint===e.contextFingerprint))try{await Bt(Zn(e.pmRoot),{version:ce,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,directory_signatures:e.directorySignatures,entries:e.state.newEntries}),await Bt(Uo(e.pmRoot),{version:ce,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,entry_count:Object.keys(e.state.newEntries).length,directory_signatures:e.directorySignatures});let t=[...e.state.documentsById.values()].map(({candidate:n})=>({relativePath:j.relative(e.pmRoot,n.item_path),metadata:Qn(n.metadata).light,linkedFiles:n.metadata.files??[]}));t.length>=e.minimumIndexedItems?await qa({pmRoot:e.pmRoot,contextFingerprint:e.contextFingerprint,sourceCursor:e.sourceCursor,rows:t}):await Yn(e.pmRoot)}catch{}}async function Sm(e){!(e.state.misses.body||Object.keys(e.previousBodies).length!==Object.keys(e.state.newBodies).length)&&e.existingBodyCache!==null&&e.existingBodyCache.context_fingerprint===e.contextFingerprint||await Bt(er(e.pmRoot),{version:ce,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,bodies:e.state.newBodies}).catch(()=>{})}async function Tm(e){!(e.state.misses.collections||Object.keys(e.previousCollections).length!==Object.keys(e.state.newCollections).length)&&e.existingCollectionsCache!==null&&e.existingCollectionsCache.context_fingerprint===e.contextFingerprint||await Bt(tr(e.pmRoot),{version:ce,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,collections:e.state.newCollections}).catch(()=>{})}async function qo(e,t,n={}){let r=await Vo(e);return n.required!==!0&&(r===null||r.entry_count<Za)?async()=>{}:V(e,Xf,30,t,!1,!1,3e3)}async function ov(e,t){let n=await Vo(e);if(n===null)return null;let r=await Bo(e);if(r.invalid)return await gt(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&&!Vt(i,await Jn(e,t))?null:{source_cursor:o,entry_count:n.entry_count}}function Ya(e,t){let n=j.relative(e,t);return n===""||n===".."||n.startsWith(`..${j.sep}`)||j.isAbsolute(n)?null:n}async function gt(e){await Promise.all([Zn(e),er(e),tr(e),zo(e),Uo(e)].map(async t=>{await W.rm(t,{force:!0}),J.delete(t)})),await Yn(e)}async function Cm(e){if(e.mutation.document===null)return{entry:null,body:null,collections:null};let t=await W.stat(e.mutation.itemPath),n=Qn(e.mutation.document.metadata),r={mtime_ms:t.mtimeMs,ctime_ms:t.ctimeMs,size:t.size};return{entry:{...r,metadata:n.light,body_length:e.mutation.document.body.length},body:{...r,body:e.mutation.document.body},collections:{...r,collections:n.heavy}}}function xm(e,t,n){return e?.context_fingerprint===t&&e.base_source_cursor===n?structuredClone(e.changes):{}}async function Go(e){let t=Ya(e.pmRoot,e.itemPath),n=e.previousItemPath?Ya(e.pmRoot,e.previousItemPath):void 0;if(t===null||n===null)return await gt(e.pmRoot),["metadata_derived_index_path_invalidated"];try{let r=nc(e.preferredFormat,e.typeToFolder,e.schema,ec()),o=await Vo(e.pmRoot);if(o===null||o.context_fingerprint!==r)return[];let i=o.source_cursor,s=await Bo(e.pmRoot);if(s.invalid)return await gt(e.pmRoot),["metadata_derived_index_refresh_failed"];let a=xm(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 Cm({mutation:e});let d=Qa();return await Bt(zo(e.pmRoot),{version:ce,context_fingerprint:r,base_source_cursor:i,source_cursor:d,directory_signatures:await Jn(e.pmRoot,[...new Set(Object.values(e.typeToFolder))]),changes:a}),await Ga({pmRoot:e.pmRoot,contextFingerprint:r,expectedSourceCursor:c,sourceCursor:d,row:e.document===null?null:{relativePath:t,metadata:Qn(e.document.metadata).light,linkedFiles:e.document.metadata.files},deletedRelativePaths:[...n===void 0?[]:[n],...e.document===null?[t]:[]]})||await Yn(e.pmRoot),[]}catch{return await gt(e.pmRoot).catch(()=>{}),["metadata_derived_index_refresh_failed"]}}function Om(e){return[...e.documentsById.values()].sort((t,n)=>t.candidate.metadata.id.localeCompare(n.candidate.metadata.id)).map(t=>t.candidate)}function Ja(e,t,n){return e?.context_fingerprint===t&&e.source_cursor===n}function Rm(e,t,n,r,o){return e.every(i=>(!t||r[i]!==void 0)&&(!n||o[i]!==void 0))}function Am(e){let t=new Map;for(let[n,r]of Object.entries(e.previousEntries)){let o=Or(n);if(!o)continue;let i=e.includeCollections?tc(r.metadata,e.previousCollections[n]?.collections):r.metadata,s=t.get(i.id);rc(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:j.join(e.pmRoot,n)}})}return[...t.values()].sort((n,r)=>n.candidate.metadata.id.localeCompare(r.candidate.metadata.id)).map(n=>n.candidate)}function Dm(e){return e.forceSourceScan||Dr()||e.existingCache?.context_fingerprint!==e.contextFingerprint||e.entryKeys.length<e.minimumIndexedItems||!Vt(e.existingCache?.directory_signatures,e.directorySignatures)?!1:[!e.includeBody||Ja(e.existingBodyCache,e.contextFingerprint,e.existingCache.source_cursor),!e.includeCollections||Ja(e.existingCollectionsCache,e.contextFingerprint,e.existingCache.source_cursor)].every(Boolean)&&Rm(e.entryKeys,e.includeBody,e.includeCollections,e.previousBodies,e.previousCollections)}async function or(e,t,n,r,o,i={}){let s=i.includeBody!==!1,a=i.includeCollections!==!1,c=ec(),d=nc(t,n,o,c),l=await Bo(e);l.invalid&&await gt(e);let f=await am(e,d,i.cacheDiagnostics),_=s?await cm(e,d):null,p=a?await dm(e,d):null;sm(f,_,p,l.envelope);let m=bm(f,d),v=vm(_,d),g=wm(p,d),S=[...new Set(Object.values(n))],A=await Jn(e,S),N=Object.keys(m),z=Math.max(1,Math.floor(i.derivedIndexMinimumItems??Za));if(Dm({forceSourceScan:i.forceSourceScan===!0,contextFingerprint:d,existingCache:f,existingBodyCache:_,existingCollectionsCache:p,directorySignatures:A,entryKeys:N,minimumIndexedItems:z,includeBody:s,includeCollections:a,previousBodies:v,previousCollections:g}))return Am({pmRoot:e,preferredFormat:t,includeBody:s,includeCollections:a,previousEntries:m,previousBodies:v,previousCollections:g});let x=await Promise.all(S.map(Ze=>um(e,Ze,r))),oe=Dr(),U=Em(),Q={pmRoot:e,preferredFormat:t,warnings:r,schema:o,extensionFieldNames:c,includeBody:s,includeCollections:a,forceSourceRead:i.forceSourceScan===!0,dispatchReadHooks:oe,previousEntries:m,previousBodies:v,previousCollections:g,state:U};await km(x,Q);let B=await Jn(e,S),Z=Vt(A,B)?B:{},ee=U.misses.metadata||Object.keys(m).length!==Object.keys(U.newEntries).length||!Vt(f?.directory_signatures,Z)||f===null?Qa():f.source_cursor;return await Im({pmRoot:e,contextFingerprint:d,sourceCursor:ee,existingCache:f,previousEntries:m,directorySignatures:Z,state:U,minimumIndexedItems:z}),s&&await Sm({pmRoot:e,contextFingerprint:d,sourceCursor:ee,existingBodyCache:_,previousBodies:v,state:U}),a&&await Tm({pmRoot:e,contextFingerprint:d,sourceCursor:ee,existingCollectionsCache:p,previousCollections:g,state:U}),Om(U)}async function oc(e,t,n,r,o){return(await or(e,t,n,r,o,{includeBody:!1})).map(i=>({metadata:i.metadata,body:i.body??""}))}async function ic(e,t,n,r,o){return(await or(e,t,n,r,o,{includeBody:!1,includeCollections:!1})).map(i=>({metadata:i.metadata,body:i.body??""}))}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="1745a409-0f91-5f5a-8d2a-e5e61ff667a0")}catch{}})();function Xo(e,t){return(t===void 0?void 0:qi(e,t))?.execution_role??Wi[e.trim().toLowerCase()]??"agent"}var Yo="blocked_by",sc="blocks",Nm=Object.freeze([Yo,sc]),Ko="no-active-blocker";function F(e){return e.trim().toLowerCase()}function ir(e,t){return t?`external:${e}`:`local:${F(e)}`}function Gt(e){let t=new Map,n=typeof e.blocked_by=="string"?e.blocked_by.trim():"";if(n.length>0&&F(n)!==Ko){let r=ye(n);t.set(ir(n,r),r?n:F(n))}for(let r of e.dependencies??[]){let o=typeof r.id=="string"?r.id.trim():"";if(r.kind===Yo&&o.length>0&&F(o)!==Ko){let i=ye(o)||se(r.source_kind);t.set(ir(o,i),i?o:F(o))}}return[...t.values()].sort((r,o)=>r.localeCompare(o))}function sr(e){let t=new Map;for(let n of e){let r=F(n.id);r.length!==0&&t.set(r,new Set(Gt(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===sc&&typeof o.id=="string"?F(o.id):"";if(i.length===0||i===Ko)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 ac(e,t){let n=F(e.id);return n.length>0?sr(t).get(n)??Gt(e):Gt(e)}function Jo(e,t,n,r){let o=e,i=typeof o.id=="string"?r?.get(F(o.id))??ac(o,[...t.values()]):Gt(e),s=new Set((e.dependencies??[]).filter(a=>a.kind===Yo&&se(a.source_kind)&&typeof a.id=="string"&&a.id.trim().length>0).map(a=>ir(a.id.trim(),!0)));return i.map(a=>{if(ye(a)||s.has(ir(a,!0)))return{id:a,title:null,status:null,resolved:!1,external:!0,...typeof e.updated_at=="string"?{blocked_since:e.updated_at}:{},resolver:null};let c=t.get(F(a));return c?{id:a,title:c.title,status:c.status,resolved:ge(c.status,n)}:{id:a,title:null,status:null,resolved:!1}})}function Lm(e,t,n){return Jo(e,t,n)}function Pm(e,t){let n=new Map(e.map(s=>[F(s.id),s])),r=sr(e),o=new Set([...cc(t),...t.blocked_statuses]),i=new Set;for(let s of e){let a=it(s.status,t);o.has(a)&&(t.blocked_statuses.has(a)||Jo(s,n,t,r).some(c=>!c.resolved))&&i.add(F(s.id))}return i}function jm(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(it(s.item.status,t))));let i={ready:[],decisions:[],gates:[]};for(let s of o){let a=Xo(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 cc(e){return e.active_statuses.size>0?e.active_statuses:new Set([e.open_status])}function Mm(e,t,n){let r=[F(e)],o=new Set;for(;r.length>0;){let i=r.pop();if(!o.has(i)){o.add(i);for(let s of t.get(i)??[]){if(!ge(s.status,n))return!0;r.push(F(s.id))}}}return!1}function Fm(e){let t=new Map,n=new Map,r=new Map,o=sr(e);for(let i of e){t.set(F(i.id),i);let s=typeof i.parent=="string"?i.parent.trim():"";if(s.length>0){let a=F(s),c=n.get(a)??[];c.push(i),n.set(a,c)}for(let a of o.get(F(i.id))){let c=F(a),d=r.get(c)??[];d.push(i.id),r.set(c,d)}}return{itemsById:t,childrenByParent:n,blockedByReverse:r,blockerIdsByItem:o}}function $m(e,t,n,r){let{itemsById:o,childrenByParent:i,blockedByReverse:s,blockerIdsByItem:a}=Fm(t),c=new Set([...cc(n),...n.blocked_statuses]),d=new Set(t.filter(g=>!ge(g.status,n)).map(g=>F(g.id))),l=[],f=[],_=[],p=[],m=[],v=0;for(let g of e){if(!c.has(it(g.status,n)))continue;v+=1;let S=Jo(g,o,n,a).filter(x=>!x.resolved),A=(s.get(F(g.id))??[]).filter(x=>d.has(F(x))).sort((x,oe)=>x.localeCompare(oe)),N={item:g,open_blockers:S,unblocks:A};if(Mm(g.id,i,n)){_.push(N);continue}let z=n.blocked_statuses.has(it(g.status,n));if(S.length===0&&!z){let x=Xo(g.type,r);x==="human"?p.push(N):x==="gate"?m.push(N):l.push(N)}else f.push(N)}return{ready:l,blocked:f,containers:_,decisions:p,gates:m,active_count:v,container_count:_.length}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ae1c56b3-148d-502d-9450-e807fdfab4da")}catch{}})();(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="283dfa35-9a8e-524c-b6e2-d433d51215ca")}catch{}})();function de(){let e=ue();for(let t of me()?.relationship_kinds??[])for(let n of t.definitions)e.register(n);return e}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="8b57e560-4ac4-53b6-9fb1-eebb1f30562a")}catch{}})();function Kt(e){if(typeof e!="string")return;let t=e.trim().toLowerCase();return t.length>0?t:void 0}function ar(e){return[e.parent_id,e.child_id,e.source,e.kind,e.holder_id,e.target_id??""].join("\0")}function Hm(e,t){let n=new Set,r=[];for(let o of[...e].sort()){if(n.has(o))continue;n.add(o);let i=[{nodeId:o,children:[...t.get(o)??[]].sort(),nextChild:0}];for(;i.length>0;){let s=i.at(-1),a=s.children[s.nextChild];a===void 0?(r.push(s.nodeId),i.pop()):(s.nextChild+=1,n.has(a)||(n.add(a),i.push({nodeId:a,children:[...t.get(a)??[]].sort(),nextChild:0})))}}return r}function zm(e,t){let n=[...e].sort(),r=Hm(n,t),o=new Set,i=Um(n,t),s=[];for(let a of r.reverse()){if(o.has(a))continue;let c=Wm(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 Um(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 Wm(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 dc(e){let t=new Map;for(let n of e){let r=Kt(n?.id);r&&!t.has(r)&&t.set(r,n)}return t}function Bm(e,t,n){let r=Kt(t.parent);if(!(!r||!n.has(r)))return{parent_id:r,child_id:e,source:"scalar_parent",kind:"parent",holder_id:e,child_cardinality:"one"}}function Vm(e,t,n,r){let o=Kt(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 lc(e,t){let n=new Map;for(let[r,o]of e){let i=Bm(r,o,e);i&&n.set(ar(i),i);for(let s of o.dependencies??[]){let a=Vm(r,s,e,t);a&&n.set(ar(a),a)}}return[...n.values()].sort((r,o)=>ar(r).localeCompare(ar(o)))}function gv(e,t=de()){return lc(dc(e),t)}function qm(e,t,n){let r=new Set(e.filter(o=>o.child_cardinality==="one").map(o=>o.child_id));return[...t].filter(([o,i])=>i.length>1&&r.has(o)).map(([o,i])=>({child_id:o,parent_ids:[...i],legacy_terminal:n.has(o)&&i.every(s=>n.has(s))})).sort((o,i)=>o.child_id.localeCompare(i.child_id))}function Gm(e,t,n){let r=new Map;for(let i of t){if(i.source!=="dependency")continue;let s=r.get(i.child_id)??new Set;s.add(i.parent_id),r.set(i.child_id,s)}let o=[];for(let[i,s]of e){let a=Kt(s.parent);if(!a||!e.has(a))continue;let c=[...r.get(i)??[]].filter(d=>d!==a).sort();c.length!==0&&o.push({child_id:i,scalar_parent_id:a,dependency_parent_ids:c,legacy_terminal:n.has(i)&&n.has(a)&&c.every(d=>n.has(d))})}return o.sort((i,s)=>i.child_id.localeCompare(s.child_id))}function cr(e,t=r=>r==="closed"||r==="canceled",n=de()){let r=dc(e),o=lc(r,n),i=Km(o),s=new Set([...r].filter(([,c])=>t(c.status)).map(([c])=>c)),a=zm([...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:qm(o,i.parents_by_child,s),divergences:Gm(r,o,s)}}function bv(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 Km(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 Qo(e,t){let n=new Set(t);return e.every(r=>n.has(r))}function vv(e,t,n,r,o){let i=Kt(n);if(!i)return;let s=cr(e,r,o),a=cr(t,r,o),c=a.divergences.find(f=>!s.divergences.some(_=>_.child_id===f.child_id&&_.scalar_parent_id===f.scalar_parent_id&&Qo(f.dependency_parent_ids,_.dependency_parent_ids)));if(c){let f=[c.scalar_parent_id,...c.dependency_parent_ids].sort();throw new h(`Hierarchy mutation would assign ${c.child_id} to multiple parents: ${f.join(", ")}.`,b.CONFLICT,{code:"hierarchy_parent_divergence_created",source_id:i,target_id:c.child_id,verification_errors:f})}let d=a.cardinality_violations.find(f=>(f.child_id===i||f.parent_ids.includes(i))&&!s.cardinality_violations.some(_=>_.child_id===f.child_id&&Qo(f.parent_ids,_.parent_ids)));if(d)throw new h(`Hierarchy mutation would assign ${d.child_id} to multiple parents: ${d.parent_ids.join(", ")}.`,b.CONFLICT,{code:"hierarchy_cardinality_created",source_id:i,target_id:d.child_id,verification_errors:d.parent_ids});let l=a.cycles.find(f=>f.item_ids.includes(i)&&!s.cycles.some(_=>Qo(f.item_ids,_.item_ids)));if(l)throw new h(`Hierarchy mutation would create a cycle: ${l.item_ids.join(" -> ")}.`,b.CONFLICT,{code:"hierarchy_cycle_created",source_id:i,verification_errors:l.item_ids})}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="6c580b70-76eb-51db-8587-99b73dd20875")}catch{}})();var Xm="global";function Sv(e){let t=e?.trim();if(t)return se(t)?Xm:t}function Tv(e,t,n){return Ym(e,t,n)}function Ym(e,t,n){let r=e.trim();return se(n)||ye(r)?r:Ye(r,t)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="41f814be-ee87-5cae-b674-69c2e7f42655")}catch{}})();function vt(e){if(typeof e!="string")return;let t=e.trim();if(!(!t||["none","null","n/a","na"].includes(t.toLowerCase())))return t}function Xt(e){let t=vt(e);return t?.toLowerCase()==="no-active-blocker"?void 0:t}function Yt(e,t,n=!0){let r=vt(e);return n&&(se(t)||r!==void 0&&ye(r))}function Zo(e,t){return Yt(e,t)?`external\0${e}`:`local\0${e.toLowerCase()}`}function uc(e,t,n,r){return Yt(e,t)?r.get(e):n.get(e.toLowerCase())}function bt(e,t){let n=e.toLowerCase(),r=t.toLowerCase();return n!==r?n<r?-1:1:e!==t?e<t?-1:1:0}function Jm(e){let t=new Map;for(let n of e.dependencies??[]){if(typeof n!="object"||n===null)continue;let r=n,o=vt(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 Qm(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 Jm(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=bt(r.holder_id,o.holder_id);if(i!==0)return i;let s=bt(r.target_id,o.target_id);return s!==0?s:bt(r.kind,o.kind)})}function Zm(e,t,n,r,o){if(typeof n!="object"||n===null)return;let i=vt(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 e_(e,t=r=>r==="closed"||r==="canceled",n=de()){let r=new Map;for(let o of e){if(typeof o?.id!="string"||o.id.trim().length===0)continue;let i=vt(o.blocked_by);if(i)for(let s of o.dependencies??[]){let a=Zm(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=bt(o.holder_id,i.holder_id);if(s!==0)return s;let a=bt(o.target_id,i.target_id);return a!==0?a:bt(o.dependency_kind,i.dependency_kind)})}function ei(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,_)=>{let p=vt(d);if(!p||r.has(p.toLowerCase())||Yt(p,void 0,_))return;let m={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(`${m.holder_id}::${m.target_id}::${m.kind}::${m.source}`,m)};for(let c of n){i(c,c.parent,"parent","parent",!1),i(c,c.blocked_by,"blocked_by","blocked_by",!0);for(let d of c.dependencies??[]){if(typeof d!="object"||d===null)continue;let l=d;se(l.source_kind)||i(c,l.id,typeof l.kind=="string"?l.kind:"related","dependency",!0)}}let s=[...o.values()].sort((c,d)=>c.holder_id.localeCompare(d.holder_id)||c.target_id.localeCompare(d.target_id)||c.kind.localeCompare(d.kind)||c.source.localeCompare(d.source)),a=s.filter(c=>c.legacy_terminal);return{active:s.filter(c=>!c.legacy_terminal),legacy_terminal:a,no_active_blocker_sentinels:s.filter(c=>c.no_active_blocker_sentinel)}}function t_(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 n_(e){let t=new Map;for(let n of e){let r=Xt(n.blocked_by);r&&Yt(r)&&!t.has(r)&&t.set(r,r);for(let o of n.dependencies??[]){if(typeof o!="object"||o===null||!Yt(o.id,o.source_kind))continue;let i=Xt(o.id);i&&!t.has(i)&&t.set(i,i)}}return[...t.values()].sort((n,r)=>n.localeCompare(r))}var fc=new WeakMap;function Nv(e){return e.hierarchyIntegrity??fc.get(e)}function r_(e,t=de()){let n={};for(let r of e)for(let o of r.dependencies??[]){if(typeof o!="object"||o===null)continue;let i=o.kind;if(typeof i!="string")continue;let s=i.trim().toLowerCase().replaceAll("-","_"),a=t.resolve(i);a&&s!==a.kind&&(n[s]=(n[s]??0)+1)}return Object.fromEntries(Object.entries(n).sort(([r],[o])=>r.localeCompare(o)))}function dr(e,t,n){let r=n??de(),o=e.filter(m=>typeof m?.id=="string"&&m.id.trim().length>0),i=new Map(o.map(m=>[m.id.trim().toLowerCase(),m.id.trim()])),s=ei(o,t),a=t_(s);for(let m of a)i.set(m.toLowerCase(),m);let c=n_(o),d=new Set(i.keys()),l=new Map;for(let m of c){let v=m;for(;d.has(v.toLowerCase());)v=`external:${v}`;l.set(m,v),d.add(v.toLowerCase())}let f=o.map(m=>{let v=Xt(m.parent),g=Xt(m.blocked_by),S=(m.dependencies??[]).flatMap(A=>{if(typeof A!="object"||A===null)return[];let N=A,z=Xt(N.id);return z?[{id:uc(z,N.source_kind,i,l),kind:typeof N.kind=="string"?N.kind:"related"}]:[]});return{id:m.id.trim(),...v?{parent:i.get(v.toLowerCase())}:{},...g?{blocked_by:uc(g,void 0,i,l)}:{},dependencies:S}}),_=cr(o,t,r),p={graph:Mi.fromItems([...f,...a.map(m=>({id:m})),...c.map(m=>({id:l.get(m)}))],r),details:[...o.map(m=>({id:m.id.trim(),title:m.title,status:m.status,...typeof m.type=="string"&&m.type.trim().length>0?{type:m.type.trim()}:{}})),...a.map(m=>({id:m,title:`[missing] ${m}`,status:"missing"})),...c.map(m=>({id:l.get(m),title:`[external] ${m}`,status:"external"}))],missingIdSet:new Set(a.map(m=>m.toLowerCase())),dangling:s,duplicateRows:Qm(o,t),orderingContradictions:e_(o,t,r),legacyAliasCounts:r_(o,r),hierarchyIntegrity:_};return fc.set(p,_),p}import{createHash as o_}from"node:crypto";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="e31ef0fb-e803-500b-b1e5-db9edfc880c4")}catch{}})();var i_=64,s_=8;function a_(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 _c(e,t=r=>r==="closed"||r==="canceled",n=ue()){let r=e.filter(i=>typeof i?.id=="string"&&i.id.trim().length>0).map(i=>a_(i,t)).sort(),o=n.list().map(i=>D(i)).sort();return o_("sha256").update(r.join("")).update("").update(o.join("")).digest("hex")}function mc(e,t,n){let r=t??n;if(!Number.isInteger(r)||r<1)throw new TypeError(`Invalid ${e} bound: ${String(t)}`);return r}var ti=class{#e=new Map;#t;#n;constructor(t={}){this.#t=mc("maxResultsPerWorkspace",t.maxResultsPerWorkspace,i_),this.#n=mc("maxWorkspaces",t.maxWorkspaces,s_)}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()}},pc=new ti;function hc(){return pc}function Fv(){pc.clear()}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="c67d6023-2fb2-541f-9541-8aa317368dcf")}catch{}})();var c_=["prerequisite","dependent","ancestor","descendant","provenance","related"],d_=new TextEncoder;function ni(e,t,n){let r=e??t;if(!Number.isInteger(r)||r<1)throw new TypeError(`Relationship context ${n} must be positive`);return r}function lr(e){return Math.max(1,Math.ceil(d_.encode(JSON.stringify(e)).byteLength/4))}function ri(e,t,n){let r=n.resolve(e.kind);if(r?.ordering){let o=(r.precedence??"source_before_target")==="source_before_target"?e.source:e.target;return t===o?"prerequisite":"dependent"}if(r?.hierarchy){let o=r.hierarchyDirection==="source_parent"?e.source:e.target;return t===o?"ancestor":"descendant"}return e.kind==="discovered_from"||e.kind==="incident_from"?"provenance":"related"}function l_(e,t,n,r){let o=e.filter(i=>i.source===t&&i.target===n||i.target===t&&i.source===n).map(i=>ri(i,n,r));return[...new Set(o)].sort()}function u_(e){return c_.find(t=>e.includes(t))}function f_(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 _=a[f];if(_.distance>=i&&l)continue;let p=e.neighborEdges(_.id,{direction:o,kinds:r.kinds,signal:r.signal});if(d+=p.meta.inspectedEdges,_.distance>=i){p.value.some(m=>!s.has(m.id))&&(l=!0);continue}for(let{id:m,edge:v}of p.value){if(s.has(m))continue;s.add(m);let g={id:m,distance:_.distance+1,via:_.id,role:ri(v,m,n)};c.push(g),a.push(g)}}return c.sort((f,_)=>f.distance-_.distance||f.id.localeCompare(_.id)),{rows:c,visitedNodes:a.length,inspectedEdges:d,depthTruncated:l}}function m_(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[ri(a,s,n)]+=1;return{directEdges:o,directTotal:i.length,rootEdges:i.map(({edge:s})=>s)}}function __(e){let t=[],n=e.initialTokens;for(let r of e.candidates){if(t.length>=e.nodeLimit)break;let o=r.distance===1?l_(e.rootEdges,e.rootId,r.id,e.registry):[],i={...e.details.get(r.id)??{id:r.id},distance:r.distance,role:o.length>0?u_(o):r.role,via:r.via,reasons:o.length>0?o:[`${r.role} via ${r.via} (depth ${r.distance})`]},s=lr(i);if(n+s>e.tokenBudget)break;t.push(i),n+=s}if(e.candidates.length>0&&t.length===0)throw new TypeError("Relationship context tokenBudget cannot fit one node");return{nodes:t,usedTokens:n}}function p_(e){let t=e.options.kinds?new Set(e.options.kinds.map(i=>e.registry.require(i).kind)):void 0,n=e.graph.edges().filter(i=>{if(!e.included.has(i.source)||!e.included.has(i.target))return!1;if(t===void 0||t.has(i.kind))return!0;let s=e.registry.resolve(i.kind)?.inverse;return s!==void 0&&t.has(s)}),r=[],o=e.initialTokens;for(let i of n){if(r.length>=e.edgeLimit)break;let s=lr(i);if(o+s>e.tokenBudget)break;r.push(i),o+=s}return{edges:r,usedTokens:o,candidateCount:n.length}}function yc(e,t,n,r={}){if(!e.nodes().includes(t))throw new TypeError(`Relationship node not found: ${t}`);let o=ni(r.nodeLimit,20,"nodeLimit"),i=ni(r.edgeLimit,40,"edgeLimit"),s=ni(r.tokenBudget,1200,"tokenBudget"),a=r.registry??ue(),c=new Map(n.map(et=>[et.id,et])),d=c.get(t)??{id:t},{evidence:l=[],...f}=d,_=[...l],p=f_(e,t,a,r),{rootEdges:m,...v}=m_(e,t,a,r),g=ss("relationship-context",{rootId:t,direction:r.direction??"both",kinds:[...r.kinds??[]].sort(),maxDepth:r.maxDepth??3}),S=cs(p.rows,r.cursor,g,({id:et})=>et),A=p.rows.slice(S),N=lr(f)+lr(_);if(N>s)throw new TypeError("Relationship context tokenBudget cannot fit root and evidence");let z=__({candidates:A,details:c,rootEdges:m,rootId:t,registry:a,nodeLimit:o,tokenBudget:s,initialTokens:N}),{nodes:x}=z,oe=new Set([t,...x.map(({id:et})=>et)]),U=p_({graph:e,included:oe,options:r,registry:a,edgeLimit:i,tokenBudget:s,initialTokens:z.usedTokens}),{edges:Q,usedTokens:B}=U,Z=S+x.length,ee=Z<p.rows.length,Ze=x.at(-1),Sr=U.candidateCount-Q.length,Oi=p.depthTruncated||ee||Sr>0,pd={rootId:t,...f.status===void 0?{}:{rootStatus:f.status},...v,discoveredNodes:p.rows.length,returnedNodes:x.length,returnedEdges:Q.length,omittedNodes:p.rows.length-Z,omittedEdges:Sr,evidenceCount:_.length,hasMore:ee};return{root:f,summary:pd,nodes:x,edges:Q,evidence:_,meta:{exact:!0,truncated:Oi,completeness:Oi?"truncated":"complete",nodeLimit:o,edgeLimit:i,tokenBudget:s,usedTokens:B,visitedNodes:p.visitedNodes,inspectedEdges:p.inspectedEdges,omittedNodes:p.rows.length-Z,omittedEdges:Sr,...ee&&Ze?{nextCursor:as(g,Ze.id,Z-1)}:{}}}}import{AsyncLocalStorage as P_}from"node:async_hooks";import{lstat as j_,realpath as Cc}from"node:fs/promises";import xc from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="f4ae942c-f11f-5d24-95bf-a2abf3c226da")}catch{}})();var K={ok:!1},y=e=>typeof e=="string"?{ok:!0,value:e}:K,O=e=>typeof e=="boolean"?{ok:!0,value:e}:K;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?K:{ok:!0,value:t}}function R(...e){return t=>typeof t=="string"&&e.includes(t)?{ok:!0,value:t}:K}function E(e,t){return n=>{if(!Array.isArray(n)||t!==void 0&&n.length>t)return K;let r=[];for(let o of n){let i=e(o);if(!i.ok)return K;r.push(i.value)}return{ok:!0,value:r}}}function ii(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}:K}function u(e){return t=>t===void 0?{ok:!0,value:void 0}:e(t)}function ur(e){return t=>{if(typeof t!="object"||t===null||Array.isArray(t))return K;let n={};for(let[r,o]of Object.entries(t)){let i=e(o);if(!i.ok)return K;n[r]=i.value}return{ok:!0,value:n}}}function C(e){return t=>{if(typeof t!="object"||t===null||Array.isArray(t))return K;let n=t,r={};for(let[o,i]of Object.entries(e)){let s=i(n[o]);if(!s.ok)return K;s.value!==void 0&&(r[o]=s.value)}return{ok:!0,value:r}}}var h_=C({key:y,values:E(y),required:u(O),aliases:u(E(y)),description:u(y)}),y_=C({command:R("create","update"),option:y,required:u(O),visible:u(O),enabled:u(O)}),g_=C({name:y,description:u(y),default_status:u(y),execution_role:u(R("agent","human","gate")),folder:u(y),aliases:u(E(y)),required_create_fields:u(E(y)),required_create_repeatables:u(E(y)),options:u(E(h_)),command_option_policies:u(E(y_))}),b_=C({id:y,aliases:u(E(y)),roles:u(E(R(...Ri))),description:u(y),order:u(L())}),v_=C({key:y,metadata_key:u(y),front_matter_key:u(y),cli_flag:u(y),cli_aliases:u(E(y)),description:u(y),type:u(R(...Ai)),commands:u(E(R(...Di))),repeatable:u(O),required:u(O),required_on_create:u(O),required_types:u(E(y)),allow_unset:u(O)}),w_=e=>{if(!Array.isArray(e)||e.length!==2)return K;let[t,n]=e;return typeof t!="string"||typeof n!="string"?K:{ok:!0,value:[t,n]}},E_=C({type:y,allowed_transitions:E(w_)}),k_=u(C({version:u(L({int:!0})),files:u(C({types:u(y),statuses:u(y),fields:u(y),workflows:u(y)})),statuses:u(E(b_)),fields:u(E(v_)),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(E(E_)),unknown_field_policy:u(R(...Ni))})),I_=u(C({preset:u(R(...Li)),ownership_enforcement:u(R("none","warn","strict")),create_mode_default:u(R("progressive","strict")),close_validation_default:u(R("off","warn","strict")),require_close_reason:u(O),parent_reference:u(R("warn","strict_error")),metadata_profile:u(R("core","strict","custom")),force_required_for_stale_lock:u(O),create_default_type:u(y),workflow_enforcement:u(R("off","warn","strict")),duplicate_detection_mode:u(R("off","advisory","strict")),duplicate_detection_threshold:u(L({min:0,max:1})),duplicate_detection_limit:u(L({int:!0,min:0,max:20}))})),S_=C({name:y,disabled:u(O),require_trusted:u(O),require_provenance:u(O),sandbox_profile:u(R("none","restricted","strict")),allowed_capabilities:u(E(y)),blocked_capabilities:u(E(y)),allowed_surfaces:u(E(y)),blocked_surfaces:u(E(y)),allowed_commands:u(E(y)),blocked_commands:u(E(y)),allowed_actions:u(E(y)),blocked_actions:u(E(y)),allowed_services:u(E(y)),blocked_services:u(E(y))}),oi=R("block","warn"),T_=e=>typeof e=="string"?oi(e):C({global:u(oi),project:u(oi)})(e),C_=u(C({mode:u(R("off","warn","enforce")),trust_mode:u(R("off","warn","enforce")),pm_max_version_exceeded_mode:u(T_),require_provenance:u(O),trusted_extensions:u(E(y)),default_sandbox_profile:u(R("none","restricted","strict")),allowed_extensions:u(E(y)),blocked_extensions:u(E(y)),allowed_capabilities:u(E(y)),blocked_capabilities:u(E(y)),allowed_surfaces:u(E(y)),blocked_surfaces:u(E(y)),allowed_commands:u(E(y)),blocked_commands:u(E(y)),allowed_actions:u(E(y)),blocked_actions:u(E(y)),allowed_services:u(E(y)),blocked_services:u(E(y)),extension_overrides:u(E(S_))})),Qe=ii(128),x_=C({harness:ii(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u),environment_keys:u(E(Qe,64)),model_environment_keys:u(E(Qe,64)),session_environment_keys:u(E(Qe,64)),provenance_environment_keys:u(ur(E(Qe,64))),provenance_resolvers:u(ur(R("ai_agent_version","claude_session_file"))),provenance_unavailable_dimensions:u(E(Qe,64)),argv_markers:u(E(Qe,64)),client_names:u(E(Qe,64))}),O_=C({version:L({int:!0}),id_prefix:y,ids:u(C({token_length:u(L({int:!0,min:4,max:12}))})),author_default:y,agent_identity:u(C({probes_enabled:u(O),identity_vocabulary:u(C({version:L({int:!0,positive:!0}),aliases:ur(ii(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u))})),harness_signals:E(x_)})),mutation_guard:u(C({require_attributed_author:u(O),secret_guard:u(R("off","advise","block")),stale_in_progress_hours:u(L({int:!0,positive:!0}))})),item_format:u(R("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:R("toon","json")}),ux:u(C({deprecation_hints:u(O)})),history:u(C({missing_stream:R("auto_create","strict_error"),compact_policy:u(C({enabled:u(O),max_entries:u(L({int:!0,positive:!0})),trigger:u(R("health_warn","auto"))}))})),validation:u(C({sprint_release_format:R("warn","strict_error"),parent_reference:u(R("warn","strict_error")),metadata_profile:u(R("core","strict","custom")),metadata_required_fields:u(E(y)),lifecycle_stale_blocker_reason_patterns:u(E(y)),lifecycle_closure_like_blocked_reason_patterns:u(E(y)),lifecycle_closure_like_resolution_patterns:u(E(y)),lifecycle_closure_like_actual_result_patterns:u(E(y)),estimate_defaults_by_type:u(ur(L({int:!0,positive:!0})))})),governance:I_,workflow:u(C({definition_of_done:E(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(R("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(E(y))})),item_types:u(C({definitions:E(g_)})),schema:k_,context:u(C({default_depth:u(R("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:E(y),disabled:E(y),policy:C_}),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(R("auto","keyword","semantic","hybrid")),corpus_fields:u(E(y)),mutation_refresh_policy:u(R("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 si(e){let t=O_(e);return t.ok?{success:!0,data:t.value}:{success:!1}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="a0ca9902-540c-50fe-a4e2-9c234c4a01f3")}catch{}})();function fr(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ai(e,t,n,r=[]){if(ie(e,t)&&(r.length>0||fr(n)))return n;if(ie(e,n)||ie(t,n))return t;if((e===void 0||fr(e))&&fr(t)&&fr(n)){let o=e??{},i=new Set([...Object.keys(o),...Object.keys(t),...Object.keys(n)]);return Object.fromEntries([...i].flatMap(s=>{let a=ai(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 h(`Settings changed concurrently at ${r.join(".")||"<root>"}; read the latest settings and reapply the intended change.`,b.CONFLICT,{reason:"stale_settings_snapshot",required:"Read a fresh settings snapshot and reapply the intended change.",why:"Another writer changed the same setting after this snapshot was read.",examples:["pm config project export --json"],nextSteps:["Read the current settings, then retry the original config operation."]})}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="de43e8e6-d7ef-53cc-94b0-ccdf1c4f94a3")}catch{}})();var R_={Epic:2880,Feature:480,Story:480,Milestone:2880,Task:120,Issue:60,Bug:60,Chore:30,Decision:15,Plan:120},gc=120;function ci(e){return typeof e=="number"&&Number.isFinite(e)&&e>0}function vc(e){let t=new Map;for(let[n,r]of Object.entries(e))t.set(n.toLowerCase(),r);return t}var A_=vc(R_),bc=new WeakMap;function D_(e){let t=bc.get(e);if(t)return t;let n=vc(e);return bc.set(e,n),n}function Xv(e,t){let n=(e??"").trim().toLowerCase();if(n.length===0)return gc;if(t){let o=D_(t).get(n);if(ci(o))return Math.floor(o)}let r=A_.get(n);return ci(r)?Math.floor(r):gc}function di(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||!ci(r)||(t[o]=Math.floor(r))}return t}import{stat as N_}from"node:fs/promises";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="78c79deb-5cf0-54fe-b98c-a0d5b3671ab2")}catch{}})();var mr=new Map;function wc(e){return[...new Set(e.map(t=>t.trim()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}async function L_(e){try{let t=await N_(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=wc(e),n=await Promise.all(t.map(r=>L_(r)));return n.sort((r,o)=>r.path.localeCompare(o.path)),n}function Jt(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1){let r=e[n],o=t[n];if(r.path!==o.path||r.mtime_ms!==o.mtime_ms||r.size!==o.size)return!1}return!0}function Ec(e){return mr.get(e)}function _r(e,t){let n=wc(t.tracked_paths),r=[...t.signatures].map(o=>({path:o.path,mtime_ms:o.mtime_ms,size:o.size})).sort((o,i)=>o.path.localeCompare(i.path));mr.set(e,{tracked_paths:n,signatures:r,value:t.value})}function De(e){if(e){mr.delete(e);return}mr.clear()}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="bbb5e299-541d-5fff-8422-855c85cf7a31")}catch{}})();var mi=new P_;async function hw(e,t,n=()=>!0){let r=new Set([xc.resolve(e)]);try{r.add(await Cc(e))}catch{}return mi.run([...mi.getStore()??[],[r,n]],t)}function M_(e){let t=xc.resolve(e);return mi.getStore()?.some(([n,r])=>n.has(t)&&r())??!1}var F_="settings:write",Oc=Symbol("pm.settings.persist_source"),$_=128,H_=new Set(["off","advisory","strict"]);function kc(e){return structuredClone(ji[e])}function z_(e){return e==="minimal"||e==="default"||e==="strict"||e==="custom"?e:k.governance.preset}function Ic(e,t){let n=typeof t.create_default_type=="string"?t.create_default_type.trim():void 0;return n&&n.length>0&&(e.create_default_type=n),(t.workflow_enforcement==="off"||t.workflow_enforcement==="warn"||t.workflow_enforcement==="strict")&&(e.workflow_enforcement=t.workflow_enforcement),t.require_close_reason===!1&&(e.require_close_reason=!1),e.duplicate_detection_mode=t.duplicate_detection_mode,e.duplicate_detection_threshold=t.duplicate_detection_threshold,e.duplicate_detection_limit=t.duplicate_detection_limit,e}function U_(e){return e.preset==="custom"?Ic({preset:"custom",ownership_enforcement:e.ownership_enforcement,create_mode_default:e.create_mode_default,close_validation_default:e.close_validation_default,parent_reference:e.parent_reference,metadata_profile:e.metadata_profile,force_required_for_stale_lock:e.force_required_for_stale_lock},e):Ic({preset:e.preset},e)}function W_(e){let t=typeof e.create_default_type=="string"?e.create_default_type.trim():void 0,n={};t&&t.length>0&&(n.create_default_type=t),(e.workflow_enforcement==="off"||e.workflow_enforcement==="warn"||e.workflow_enforcement==="strict")&&(n.workflow_enforcement=e.workflow_enforcement),typeof e.require_close_reason=="boolean"&&(n.require_close_reason=e.require_close_reason),H_.has(String(e.duplicate_detection_mode))&&(n.duplicate_detection_mode=e.duplicate_detection_mode);let r=e.duplicate_detection_threshold;[typeof r=="number",Number.isFinite(r),Number(r)>=0,Number(r)<=1].every(Boolean)&&(n.duplicate_detection_threshold=r);let o=e.duplicate_detection_limit;return[typeof o=="number",Number.isSafeInteger(o),Number(o)>=0,Number(o)<=20].every(Boolean)&&(n.duplicate_detection_limit=o),n}function yr(e){let t=e.governance??{},n=z_(t.preset),r=W_(t);if(n==="custom"){let s=kc("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=kc(n),i=r.require_close_reason??o.require_close_reason;return{preset:n,...o,...r,require_close_reason:i}}function Rc(){return structuredClone(k)}function Ac(e){return e==="cache_only"||e==="semantic_configured"||e==="semantic_auto"?e:k.search.mutation_refresh_policy}function Dc(e){return e==="auto"||e==="keyword"||e==="semantic"||e==="hybrid"?e:"auto"}function Nc(e){return typeof e=="boolean"?e:k.search.query_expansion.enabled}function Lc(e){return typeof e!="string"?k.search.query_expansion.provider:e.trim()}function Pc(e){return typeof e=="boolean"?e:k.search.rerank.enabled}function jc(e){return typeof e!="string"?k.search.rerank.model:e.trim()}function Mc(e){return typeof e=="number"&&Number.isFinite(e)&&Number.isInteger(e)&&e>0?e:k.search.rerank.top_k}function Fc(e){if(typeof e!="string")return k.vector_store.collection_name;let t=e.trim().replaceAll(/[^a-zA-Z0-9_-]/g,"_").slice(0,$_);return t.length>0?t:k.vector_store.collection_name}function li(e){return{present:Array.isArray(e),values:Array.isArray(e)?structuredClone(e):[]}}function $c(e,t){let n=e.schema,r=li(n?.statuses),o=li(n?.fields),i=li(n?.type_workflows);return{persisted_settings:structuredClone(e),source_settings:structuredClone(e),has_source_item_type_definitions:Array.isArray(e.item_types?.definitions),source_item_type_definitions:wt(e.item_types?.definitions),has_source_schema_statuses:r.present,source_schema_statuses:r.values,has_source_schema_fields:o.present,source_schema_fields:o.values,has_source_schema_type_workflows:i.present,source_schema_type_workflows:i.values,runtime_item_type_definitions:wt(t.item_types?.definitions),runtime_schema_statuses:structuredClone(t.schema.statuses),runtime_schema_fields:structuredClone(t.schema.fields),runtime_schema_type_workflows:structuredClone(t.schema.type_workflows??[])}}function hi(e,t){Object.defineProperty(e,Oc,{value:t,writable:!0,configurable:!0,enumerable:!1})}function Hc(e){let t=e[Oc];if(!(!t||typeof t!="object"))return t}function pr(e){let t=structuredClone(e.settings),n=Hc(e.settings);return n&&hi(t,n),{settings:t,metadata:{has_explicit_item_format:e.metadata.has_explicit_item_format},warnings:[...e.warnings]}}function B_(e,t,n){let r=Ct(t);return[n,xt(e,r.files.types,Tt.types),xt(e,r.files.statuses,Tt.statuses),xt(e,r.files.fields,Tt.fields),xt(e,r.files.workflows,Tt.workflows)]}async function V_(e,t,n){let r=await Ae(t);_r(e,{tracked_paths:t,signatures:r,value:pr(n)})}async function q_(e,t,n){try{await V_(e,t,n)}catch{De(e)}}function Sc(e,t){return e.find(n=>n.path===t)}function G_(e,t,n){for(let r of n){let o=Sc(e,r),i=Sc(t,r);if(!o||!i||!Jt([o],[i]))return!1}return!0}async function ui(e,t,n,r,o){try{let i=await Ae(t);if(!G_(r,i,o)){De(e);return}_r(e,{tracked_paths:t,signatures:i,value:pr(n)})}catch{De(e)}}function K_(e,t){let n=Ct(e.schema),r=wt(e.item_types?.definitions);if(!t)return{item_type_definitions:r,schema_statuses:n.statuses,schema_fields:n.fields,schema_type_workflows:n.type_workflows};let o=n.type_workflows??[],i=ie(r,t.runtime_item_type_definitions),s=ie(n.statuses,t.runtime_schema_statuses),a=ie(n.fields,t.runtime_schema_fields),c=ie(o,t.runtime_schema_type_workflows);return{item_type_definitions:i?t.has_source_item_type_definitions?wt(t.source_item_type_definitions):[]:r,schema_statuses:s?t.has_source_schema_statuses?structuredClone(t.source_schema_statuses):[]:n.statuses,schema_fields:a?t.has_source_schema_fields?structuredClone(t.source_schema_fields):[]:n.fields,schema_type_workflows:c?t.has_source_schema_type_workflows?structuredClone(t.source_schema_type_workflows):void 0:n.type_workflows}}function le(e){return{settings:Rc(),metadata:{has_explicit_item_format:!1},warnings:e?[e]:[]}}function zc(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=e.item_format;return t==="toon"||t==="json_markdown"}function _i(e){return[...new Set((e??[]).map(t=>t.trim()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function Uc(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:_i(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 X_(e){return e==="off"||e==="warn"||e==="enforce"?e:k.extensions.policy.mode}function Y_(e){return e==="off"||e==="warn"||e==="enforce"?e:k.extensions.policy.trust_mode}function Wc(e){return e==="none"||e==="restricted"||e==="strict"?e:k.extensions.policy.default_sandbox_profile}function J_(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=Wc(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),_=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),_.length>0&&(n.blocked_services=_),n}function Q_(e){let t=new Map;for(let n of e??[]){let r=J_(n);r&&t.set(r.name,r)}return[...t.values()].sort((n,r)=>n.name.localeCompare(r.name))}function fi(e){return e==="block"||e==="warn"?e:void 0}function Z_(e){if(typeof e=="string")return fi(e);if(typeof e=="object"&&e!==null&&!Array.isArray(e)){let t=fi(e.global),n=fi(e.project);return t===void 0&&n===void 0?void 0:{...t!==void 0?{global:t}:{},...n!==void 0?{project:n}:{}}}}function X(e,t){return re(e?.[t]??k.extensions.policy[t])}function Bc(e){let t=Z_(e?.pm_max_version_exceeded_mode);return{mode:X_(e?.mode),trust_mode:Y_(e?.trust_mode),...t!==void 0?{pm_max_version_exceeded_mode:t}:{},require_provenance:e?.require_provenance===!0,trusted_extensions:X(e,"trusted_extensions"),default_sandbox_profile:Wc(e?.default_sandbox_profile),allowed_extensions:X(e,"allowed_extensions"),blocked_extensions:X(e,"blocked_extensions"),allowed_capabilities:X(e,"allowed_capabilities"),blocked_capabilities:X(e,"blocked_capabilities"),allowed_surfaces:X(e,"allowed_surfaces"),blocked_surfaces:X(e,"blocked_surfaces"),allowed_commands:X(e,"allowed_commands"),blocked_commands:X(e,"blocked_commands"),allowed_actions:X(e,"allowed_actions"),blocked_actions:X(e,"blocked_actions"),allowed_services:X(e,"allowed_services"),blocked_services:X(e,"blocked_services"),extension_overrides:Q_(e?.extension_overrides??k.extensions.policy.extension_overrides)}}function Vc(e){return[...new Set((e??[]).map(t=>t.trim().toLowerCase().replaceAll("-","_")))].filter(t=>t.length>0).sort((t,n)=>t.localeCompare(n)).filter(t=>["author","acceptance_criteria","estimated_minutes","close_reason","reviewer","risk","confidence","sprint","release"].includes(t))}function Ne(e){return[...new Set((e??[]).map(t=>t.trim().toLowerCase()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function $(e,t){return e===void 0?t:e}function Y(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:{}}function pi(e){return Array.isArray(e)?e:[]}function ep(e,t,n){return{...t.validation,...e.validation,parent_reference:n.parent_reference,metadata_profile:n.metadata_profile,metadata_required_fields:Vc(e.validation?.metadata_required_fields),lifecycle_stale_blocker_reason_patterns: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:di(e.validation?.estimate_defaults_by_type)}}function tp(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 np(e,t){return{...t.search,...e.search,default_mode:Dc(e.search?.default_mode),mutation_refresh_policy:Ac(e.search?.mutation_refresh_policy),query_expansion:{...t.search.query_expansion,...e.search?.query_expansion,enabled:Nc(e.search?.query_expansion?.enabled),provider:Lc(e.search?.query_expansion?.provider)},rerank:{...t.search.rerank,...e.search?.rerank,enabled:Pc(e.search?.rerank?.enabled),model:jc(e.search?.rerank?.model),top_k:Mc(e.search?.rerank?.top_k)}}}function rp(e,t){return{adapter:e.vector_store.adapter??t.vector_store.adapter,collection_name:Fc(e.vector_store.collection_name),qdrant:{...t.vector_store.qdrant,...e.vector_store.qdrant},lancedb:{...t.vector_store.lancedb,...e.vector_store.lancedb}}}function op(e,t){return e.item_format==="json_markdown"?"toon":e.item_format??t.item_format}function ip(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 sp(e,t){return{openai:{...t.providers.openai,...e.providers.openai},ollama:{...t.providers.ollama,...e.providers.ollama}}}function wt(e){let t=(e??[]).map(r=>Ui(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 hr(e){let t=Rc(),n=yr({governance:e.governance??{preset:"default"}});return{...t,...e,item_format:op(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:ep(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:tp(e,t),agent_guidance:Uc(e.agent_guidance??t.agent_guidance),item_types:{definitions:wt(e.item_types?.definitions)},schema:Ct(e.schema??t.schema),context:ip(e,t),extensions:{enabled:[...e.extensions.enabled],disabled:[...e.extensions.disabled],policy:Bc(e.extensions.policy??t.extensions.policy)},search:np(e,t),providers:sp(e,t),vector_store:rp(e,t)}}function ap(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(Y(t.identity_vocabulary),["version","aliases"])),e.agent_identity.harness_signals=pi(e.agent_identity.harness_signals).map(n=>T(Y(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(Y(e.schema.files),["types","statuses","fields","workflows"]),e.schema.workflow=T(Y(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(Y(e.context.sections),["hierarchy","activity","progress","blockers","files","workload","staleness","tests"]),e.extensions=T(e.extensions,["enabled","disabled","policy"]),e.extensions.policy=T(Y(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=pi(e.extensions.policy.extension_overrides).map(n=>T(Y(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(Y(e.search.query_expansion),["enabled","provider"]),e.search.rerank=T(Y(e.search.rerank),["enabled","model","top_k"]),e.providers=T(e.providers,["openai","ollama"]),e.providers.openai=T(Y(e.providers.openai),["base_url","api_key","model"]),e.providers.ollama=T(Y(e.providers.ollama),["base_url","model"]),e.vector_store=T(e.vector_store,["adapter","collection_name","qdrant","lancedb"]),e.vector_store.qdrant=T(Y(e.vector_store.qdrant),["url","api_key"]),e.vector_store.lancedb=T(Y(e.vector_store.lancedb),["path"])}function cp(e){return{...e,locks:$(e.locks,k.locks),ids:$(e.ids,k.ids),agent_identity:$(e.agent_identity,k.agent_identity),mutation_guard:$(e.mutation_guard,k.mutation_guard),checkpoints:$(e.checkpoints,k.checkpoints),output:$(e.output,k.output),ux:$(e.ux,k.ux),history:$(e.history,k.history),validation:$(e.validation,k.validation),workflow:$(e.workflow,k.workflow),testing:$(e.testing,k.testing),telemetry:$(e.telemetry,k.telemetry),agent_guidance:$(e.agent_guidance,k.agent_guidance),item_types:$(e.item_types,k.item_types),schema:$(e.schema,k.schema),context:$(e.context,k.context),extensions:$(e.extensions,k.extensions),search:$(e.search,k.search),providers:$(e.providers,k.providers),vector_store:$(e.vector_store,k.vector_store)}}function dp(e,t){return{...e.validation,parent_reference:t.parent_reference,metadata_profile:t.metadata_profile,metadata_required_fields:Vc(e.validation?.metadata_required_fields),lifecycle_stale_blocker_reason_patterns: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:di(e.validation?.estimate_defaults_by_type)}}function lp(e){return{...k.search,...e.search,default_mode:Dc(e.search?.default_mode),mutation_refresh_policy:Ac(e.search?.mutation_refresh_policy),query_expansion:{...k.search.query_expansion,...e.search?.query_expansion,enabled:Nc(e.search?.query_expansion?.enabled),provider:Lc(e.search?.query_expansion?.provider)},rerank:{...k.search.rerank,...e.search?.rerank,enabled:Pc(e.search?.rerank?.enabled),model:jc(e.search?.rerank?.model),top_k:Mc(e.search?.rerank?.top_k)}}}function up(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 fp(e){return{...e.vector_store,adapter:e.vector_store?.adapter??k.vector_store.adapter,collection_name:Fc(e.vector_store?.collection_name),qdrant:{...e.vector_store?.qdrant},lancedb:{...e.vector_store?.lancedb}}}function mp(e,t,n,r){return{...e,item_format:"toon",validation:dp(e,t),governance:t,agent_guidance:Uc(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:lp(e),context:up(e),extensions:{enabled:_i(e.extensions?.enabled),disabled:_i(e.extensions?.disabled),policy:Bc(e.extensions?.policy)},vector_store:fp(e)}}function qc(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)?qc(o,r):e[n]=structuredClone(r)}}function Gc(e,t,n){let r=new Set([...Object.keys(t),...Object.keys(n)]);for(let o of r){let i=t[o],s=n[o];if(!ie(i,s)){if(s===void 0){delete e[o];continue}if(typeof i=="object"&&i!==null&&!Array.isArray(i)&&typeof s=="object"&&s!==null&&!Array.isArray(s)){let a=e[o],c=typeof a=="object"&&a!==null&&!Array.isArray(a)?a:{};Gc(c,i,s),Object.keys(c).length>0?e[o]=c:delete e[o];continue}e[o]=structuredClone(s)}}}var yi=["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 Tc(e,t){let n=cp(e),r=yr(n),o=Ct(n.schema),i=K_(n,t),s=mp(n,r,o,i),a=T({...s,governance:U_(r)},yi);return ap(a),a}function _p(e,t={}){let n=t.source===void 0?t.persist_source:$c(t.source.validated,hr(t.source.validated)),r=Tc(e,n);if(n){let o=hr(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=Tc(o,n);t.source!==void 0&&qc(i,t.source.validated);let s=structuredClone(t.source===void 0?n.source_settings:t.source.raw);return Gc(s,i,r),`${JSON.stringify(T(s,yi),null,2)}
162
162
  `}return`${JSON.stringify(r,null,2)}
163
- `}async function dp(e){let t;try{t=await kc(e)}catch(a){if(Fe(a))return le();throw a}let n=tt(t),r;try{r=await R_(n)}catch(a){if(Fe(a))return le();throw a}if(!r.isFile())throw Cr();let o;try{o=await Mi(n,Cr())}catch(a){if(Fe(a))return le();throw a}let i;try{i=JSON.parse(o)}catch{return le("settings_read_invalid_json")}let s=oi(i);return s.success?{settings:hr(s.data),metadata:{has_explicit_item_format:Mc(i)},warnings:s.data.item_format==="json_markdown"?["settings_item_format_legacy_json_markdown_coerced_to_toon"]:[]}:le("settings_read_invalid_schema")}async function Wc(e){if(A_(e))return dp(e);let t=tt(e),n=[t];await ke({path:t,scope:"project"});let r=gc(e);if(r){let d=await Ae(r.tracked_paths);if(Jt(d,r.signatures))return pr(r.value)}let o=await Ae([t]),i;try{i=await Ee(t)}catch{return le("settings_read_fs_error")}if(i===null){let d=le();return await di(e,[t],d,o,[t]),d}let s=await Ae([t]);if(!Jt(o,s))return De(e),Wc(e);let a;try{a=JSON.parse(i)}catch{let d=le("settings_read_invalid_json");return await di(e,[t],d,s,[t]),d}let c=oi(a);if(!c.success){let d=le("settings_read_invalid_schema");return await di(e,[t],d,s,[t]),d}try{let d=hr(c.data),l=F_(e,d.schema,t);n=l;let f=await Ae(l),_=await Qi(e,d.schema),p=await Zi(e,d.schema),m=await Ae(l),v={...d,item_types:{definitions:wt([...d.item_types.definitions,...mi(p.type_definitions_from_file)])},schema:p.schema};_i(v,Pc(c.data,v));let g={settings:v,metadata:{has_explicit_item_format:Mc(a)},warnings:[...c.data.item_format==="json_markdown"?["settings_item_format_legacy_json_markdown_coerced_to_toon"]:[],..._.created_paths.map(S=>`runtime_schema_bootstrap_created:${S}`),...p.warnings]};return _.created_paths.length===0?Jt(f,m)?_r(e,{tracked_paths:l,signatures:m,value:pr(g)}):De(e):De(e),g}catch{let d=le("settings_read_merge_failed");return await H_(e,n,d),d}}async function Vc(e){return(await Wc(e)).settings}async function cw(e,t,n=D_){let r=tt(e),o=jc(t),i=cp(t,{persist_source:o}),s=JSON.parse(i);try{await ja({pmRoot:e,filePath:r,mutate:a=>{let c=null;if(a!==null)try{c=JSON.parse(a)}catch{throw new h("Existing settings.json is malformed; the settings write was refused.",b.USAGE,{code:"settings_write_invalid_existing_json",reason:"existing_settings_json_malformed",why:"Writing defaults over malformed settings could destroy intended project configuration.",nextSteps:["Repair the syntax in .agents/pm/settings.json, then retry the original command.","Run pm health to confirm the settings warning has cleared."]})}return{raw:o?`${JSON.stringify(T(ii(o.persisted_settings,s,c),pi),null,2)}
164
- `:i,result:void 0}},op:n,author:Ds(void 0,t.author_default),lockTtlSeconds:t.locks.ttl_seconds,lockWaitMs:t.locks.wait_ms,recordCreation:!1}),o&&_i(t,{...o,persisted_settings:structuredClone(s)}),await _e({path:r,scope:"project",op:n})}finally{De(e)}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="e23f9ca6-9fa6-566b-9bfb-7cbe6d449a59")}catch{}})();function lp(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 qc(e){return["pm",...e].map(t=>/^[A-Za-z0-9_./:@=-]+$/u.test(t)?t:JSON.stringify(t)).join(" ")}function mw(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(_=>_.trim()))].filter(Boolean).sort((_,p)=>_.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:lp(r,o),l=qc([...i,r,...s]),f=e.retry_command??(d?qc([...i,d,...s]):void 0);return new h(`Unknown ${a} ${c} "${r}". Allowed: ${o.join(", ")}${e.message_suffix??""}`,e.exit_code??b.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 up from"node:fs/promises";import fp from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="1d746e4d-ff6c-54ec-a94f-4ec4cb8f77b5")}catch{}})();function mp(e){return[...new Set(e.filter(t=>t.trim().length>0))].sort((t,n)=>t.localeCompare(n))}function _p(e,t){return new h(`Missing history stream for ${e}. ${t} requires history streams when settings.history.missing_stream is strict_error.`,b.NOT_FOUND)}async function pp(e,t){return await ji(fp.dirname(e)),await(await up.open(e,"a")).close(),_e({path:e,scope:"project",op:`${t}:history:auto_create`})}async function hi(e){return hp({pmRoot:e.pmRoot,settings:e.settings,itemIds:[e.itemId],commandLabel:e.commandLabel})}async function hp(e){let t=mp(e.itemIds),n=[],r=[];for(let o of t){let i=fe(e.pmRoot,o);if(!await Me(i)){if(e.settings.history.missing_stream==="strict_error")throw _p(o,e.commandLabel);r.push(...await pp(i,e.commandLabel)),r.push(`history_stream_auto_created:${o}`),n.push(o)}}return{auto_created_ids:n,warnings:r}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="5db05e2f-4742-526b-b1c8-b97ff302b40e")}catch{}})();function Qt(e,t=!1){let n=e[0];if(n?.op!=="history_compact_baseline")return 0;let r=n.context?.history_compaction,o=typeof r=="object"&&r!==null&&"version_offset"in r?r.version_offset:void 0;if(typeof o=="number"&&Number.isSafeInteger(o)&&o>=0&&Number.isSafeInteger(o+e.length))return o;if(t)return null;throw new h("This compacted stream has no trustworthy version offset; numeric history addresses are unavailable.",b.USAGE,{code:"history_version_mapping_unavailable",required:"Use a retained timestamp or recover the pre-compaction stream from version control.",nextSteps:["Run pm history <id> --full to inspect the retained timestamps and checkpoint evidence."]})}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ddc5bb8f-83bc-5121-a628-a501e7ed5a73")}catch{}})();function yp(e,t){let n=-1;return e.forEach((r,o)=>{let i=Date.parse(r.ts);if(!Number.isFinite(i))throw new h(`History for this item contains invalid timestamp at entry ${o+1}.`,b.GENERIC_FAILURE);i<=t&&(n=o)}),n}function gp(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 bp(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 Gc(e,t,n={}){let r=e.trim(),o=n.errorSubject??"history",i=o==="restore"?"Restore":"History",{guidance:s,lastTimestamp:a}=gp(t,Qt(t,!0));if(!r)throw new h(`Missing ${o} target. Use a timestamp or version number.`,b.USAGE,s);if(/^\d+$/.test(r)){let l=Qt(t),f=Number(r);if(f>=1&&f<=l)throw new h(`History version ${f} was pruned by compaction.`,b.USAGE,{...s,code:"history_version_pruned"});if(!Number.isSafeInteger(f)||f<1||f>l+t.length)throw new h(`${i} version must be between ${l+1} and ${l+t.length} for this item.`,b.USAGE,s);return{kind:"version",raw:r,historyIndex:f-l-1}}let c=Date.parse(r);if(!Number.isFinite(c))throw new h(`Invalid ${o} target "${e}". Use a positive version number or ISO timestamp.`,b.USAGE,s);let d=yp(t,c);if(d<0||n.allowFutureTimestamp!==!0&&c>Date.parse(a))throw new h(o==="restore"?`No history entries exist at or before timestamp ${r}.`:`No history entry exists at timestamp ${r}.`,b.USAGE,s);return{kind:"timestamp",raw:r,historyIndex:d}}function yi(e,t,n,r){let o=Xe(e,t);if(o.ok)return o.document;let i=bp(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 h(`Failed to apply history patch at entry ${n} (${s.join(", ")}). ${i.reason??String(o.error)}`,b.GENERIC_FAILURE)}function Kc(e,t){let n=e[0];if(n&&n.op!=="create"&&n.op!=="history_compact_baseline"){let s=Xe(_t,n.patch);if(!s.ok||typeof s.document.metadata.id!="string")throw new h("History starts without a reconstructable item baseline.",b.GENERIC_FAILURE,{code:"history_baseline_unavailable",required:"Recover the original create entry or a complete checkpoint from version control.",nextSteps:["Run pm history <id> --full to inspect the missing baseline."]})}let r=e.slice(0,t+1),o=ve([...r]),i=structuredClone(_t);for(let s=0;s<=t;s+=1){let a=e[s];if(!a)throw new h(`History target entry ${s+1} does not exist.`,b.USAGE);i=yi(i,a.patch,s+1,a.op)}if(!o.ok)throw new h(`History cannot be replayed: ${o.errors.join(", ")}.`,b.GENERIC_FAILURE,{code:"history_replay_invalid",verification_errors:o.errors,required:"Inspect the history integrity findings before attempting recovery.",nextSteps:["Run pm history <id> --verify --full."]});return i}function Rw(e,t){if(Object.keys(e.metadata).length>0){if(typeof e.metadata.id!="string"||!Array.isArray(e.metadata.tags))throw new h("History has no complete item baseline for this target.",b.GENERIC_FAILURE,{code:"history_baseline_unavailable",required:"Recover the original create entry or a complete checkpoint from version control.",nextSteps:["Run pm history <id> --full to inspect the first recorded state."]});return e}throw new h(`History target ${t.raw} resolves to a deleted state; choose a version or timestamp where the item exists.`,b.USAGE)}import bi from"node:fs/promises";import gr from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="658ab1c3-da92-5af6-a170-85ed7befaad6")}catch{}})();function Le(e,t){return typeof e=="object"&&e!==null&&"code"in e&&e.code===t}function vi(e){let t=["--pm-path",e,"init","--defaults","--agent-guidance","skip"];return{suggested_retry:$e(t),suggested_retry_args:t}}function br(e){return new h(`Tracker root is not a directory at ${e}.`,b.USAGE,{code:"tracker_root_not_directory",reason:"not_a_directory",resolved_path:e,nextSteps:["Pass a tracker directory, usually <workspace>/.agents/pm, rather than a file path."]})}function gi(e){return new h(`Tracker root is not readable at ${e}.`,b.GENERIC_FAILURE,{code:"tracker_root_unreadable",reason:"unreadable",resolved_path:e,nextSteps:["Grant read and directory-search permission to the tracker root, then retry."]})}async function vp(e){let t=gr.resolve(e),n=gr.parse(t).root,r=gr.dirname(t);for(;r!==n;){let o;try{o=await bi.stat(r)}catch(i){if(Le(i,"ENOTDIR"))throw br(e);if(!Le(i,"ENOENT"))throw i;r=gr.dirname(r);continue}if(!o.isDirectory())throw br(e);return}}async function Et(e){let t;try{t=await bi.stat(e)}catch(n){throw Le(n,"ENOENT")?(await vp(e),new h(`Tracker is not initialized at ${e}. Tracker root does not exist. Run pm init first.`,b.NOT_FOUND,{code:"tracker_root_missing",reason:"missing",resolved_path:e,nextSteps:["Confirm the tracker root path or initialize it with the emitted retry."],recovery:vi(e)})):Le(n,"ENOTDIR")?br(e):Le(n,"EACCES")||Le(n,"EPERM")?gi(e):n}if(!t.isDirectory())throw br(e);if(process.platform!=="win32"&&((t.mode&292)===0||(t.mode&73)===0))throw gi(e);try{await(await bi.opendir(e)).close()}catch(n){throw Le(n,"EACCES")||Le(n,"EPERM")?gi(e):n}}async function wi(e){if(await Et(e),!await Me(tt(e)))throw new h(`Tracker is not initialized at ${e}. Run pm init first.`,b.NOT_FOUND,{code:"tracker_not_initialized",reason:"settings_missing",resolved_path:e,nextSteps:["Initialize the selected tracker root with the emitted retry."],recovery:vi(e)})}import kt from"node:fs/promises";import{statSync as wp}from"node:fs";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="be69f1e8-4543-5cf5-abb0-9d38ca1d0cc6")}catch{}})();function Ep(e,t){let n=-1,r=structuredClone(_t);for(let[a,c]of e.entries()){if(r=yi(r,c.patch,a+1,c.op),r.metadata.id!==void 0&&r.metadata.id!==t)throw new h(`History belongs to item ${String(r.metadata.id)}, expected ${t}.`,b.GENERIC_FAILURE,{code:"history_replay_invalid",required:"Recover the correct history stream for this item before attempting restoration."});r.metadata.id===t&&Array.isArray(r.metadata.tags)&&(n=a)}let o=Qt(e,!0),i=n<0||o===null?null:o+n+1,s=i===null?void 0:String(i);if(n>=0&&s===void 0){let a=e[n].ts;Gc(a,e).historyIndex===n&&(s=a)}return{version:i,target:s}}async function Xc(e,t,n){let r=new Set([Ye(t,n),$t(t)]);for(let o of r){let i=fe(e,o);if(!wp(i,{throwIfNoEntry:!1})?.isFile())continue;let s=await be(i,o),a=-1;if(s.forEach((p,m)=>{p.op==="delete"&&(a=m)}),a<0)continue;let c=Kc(s,s.length-1);if(Object.keys(c.metadata).length!==0)continue;let{version:d,target:l}=Ep(s,o),f=l===void 0?["history",o,"--verify"]:["get",o,"--at",l],_=$e(f);return new h(`Item ${o} was deleted at ${s[a].ts}; its history is retained.`,b.NOT_FOUND,{code:"item_deleted",required:"Read a retained materialized version, then restore it if the item should exist again.",item_id:o,tombstone:{deleted:!0,deleted_at:s[a].ts,recoverable:l!==void 0,last_materialized_version:d},nextSteps:[_,...l===void 0?["Recover the pre-compaction history from version control."]:[$e(["restore",o,l])]],recovery:{suggested_retry:_,suggested_retry_args:f}})}}import Si from"node:path";import Yc from"node:fs";import Zt from"node:path";import{createRequire as kp}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]="19d9b802-1efa-5716-8176-ecbf5b153ff0")}catch{}})();var Jc="@unbrained/pm-cli";var ki=/\b(\d{4})\.(\d{1,2})\.(\d{1,2})(?:-(\d+))?\b/u,Ii="2026.8.31";function vr(e){let t=e.match(ki);return t?[Number(t[1]),Number(t[2]),Number(t[3]),Number(t[4]??0)]:null}function Er(e,t){let n=vr(e),r=vr(t);if(!n||!r)return null;for(let o=0;o<n.length;o+=1){let i=n[o]-r[o];if(i!==0)return Math.sign(i)}return 0}function Ei(e){return Er(e,Ii)!==-1?3:2}function wr(e){try{let t=JSON.parse(Yc.readFileSync(e,"utf8"));return typeof t=="object"&&t!==null&&!Array.isArray(t)?t:null}catch{return null}}function Ip(e){let t=[...e.matchAll(/(<=|<)\s*v?(\d{4}\.\d{1,2}\.\d{1,2}(?:-\d+)?)/gu)].map(r=>({inclusive:r[1]==="<=",version:r[2]})),n=e.match(/\b\d{4}\.\d{1,2}\.\d{1,2}(?:-\d+)?\s+-\s+v?(\d{4}\.\d{1,2}\.\d{1,2}(?:-\d+)?)/u);return n?[...t,{inclusive:!0,version:n[1]}]:t}function Sp(e){let t=e.split("||").map(n=>Ip(n));return{bounded:t.some(n=>n.length>0),compatible:t.some(n=>n.every(r=>{let o=Er(Ii,r.version);return o!==null&&(r.inclusive?o!==1:o===-1)}))}}function Qc(e){return["dependencies","devDependencies","optionalDependencies","peerDependencies"].flatMap(t=>{let n=e[t];if(typeof n!="object"||n===null)return[];let r=n[Jc];return typeof r=="string"?[r.trim()]:[]})}function Tp(e){return Qc(e).flatMap(t=>{let n=/^[<!]/u.test(t)?void 0:t.match(ki)?.[0];if(!n)return[];let r=/^(?:=|v)?\d{4}\.\d{1,2}\.\d{1,2}(?:-\d+)?$/u.test(t),o=Sp(t);return[{version:n,constraint:r?"exact":o.bounded?"range":"minimum",...r?{}:{declaration:t},history_epoch_compatible:r?Er(n,Ii)!==-1:o.compatible}]})}function Cp(e){let t=wr(Zt.join(e,"package-lock.json"))?.packages;if(typeof t!="object"||t===null)return;let n=t["node_modules/@unbrained/pm-cli"];if(typeof n!="object"||n===null)return;let r=n.version;return typeof r=="string"?r:void 0}function Op(e,t){try{let n=Yc.readFileSync(Zt.join(e,t),"utf8").split(/\r?\n/u),r=n.findIndex(s=>s.includes(Jc));if(r<0)return;let o=n[r].match(/^\s*/u)[0].length,i=[n[r]];for(let s=r+1;s<n.length;s+=1){let a=n[s],c=a.trim(),d=a.match(/^\s*/u)[0].length;if(c.length>0&&d<=o)break;i.push(a)}return i.join(`
165
- `).match(/^\s*version(?::\s*|\s+)["']?(\d{4}\.\d{1,2}\.\d{1,2}(?:-\d+)?)/mu)?.[1]??i[0].match(ki)?.[0]}catch{return}}function xp(e){let t=[],n=wr(Zt.join(e,"package.json"));n&&t.push(...Tp(n).map(i=>({...i,source:"package.json"})));let r=wr(Zt.join(e,"node_modules","@unbrained","pm-cli","package.json"))?.version;typeof r=="string"&&vr(r)&&t.push({version:r,source:"installed-package",constraint:"exact",history_epoch_compatible:Ei(r)===3});let o=Cp(e);o&&vr(o)&&t.push({version:o,source:"package-lock.json",constraint:"exact",history_epoch_compatible:Ei(o)===3});for(let i of["pnpm-lock.yaml","yarn.lock"]){let s=Op(e,i);s&&t.push({version:s,source:i,constraint:"exact",history_epoch_compatible:Ei(s)===3})}return t}function Zc(e,t){if(t<=1)return;let{minVersion:n,lt:r}=kp(import.meta.url)("semver"),o=Qc(wr(Zt.join(e,"package.json"))??{}).find(s=>{try{let a=n(s);return a!==null&&r(a,"2026.10.10")}catch{return!1}}),i=o===void 0?xp(e).find(s=>Er(s.version,"2026.10.10")===-1):{version:o,source:"package.json"};if(i)throw new h(`The project selects pm ${i.version}, which cannot safely refuse item format ${t}.`,b.CONFLICT,{code:"project_runtime_item_format_incompatible",reason:i.source,required:"Upgrade project pins, installed SDKs, CI hosts and Git merge drivers before writing guarded item formats.",nextSteps:["Use a pm runtime supporting the required item format throughout the project; preserve original item and history bytes, and never re-anchor history to satisfy an older host."]})}import{isUtf8 as Rp}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]="75d742ab-22c4-5a3f-8f63-74c68afa6b3f")}catch{}})();async function Ap(e){try{return await kt.access(e),!0}catch{return!1}}function Dp(e,t){e&&(e.includes(t)||e.push(t))}function ed(e){return e??an(me())}function Np(e){return e==="toon"?["toon","json_markdown"]:e==="json_markdown"?["json_markdown","toon"]:["toon","json_markdown"]}async function kr(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=$t(t),d=[...new Set([s,a,c])].filter(_=>_.length>0),l=Object.entries(o),f=Np(r);for(let _ of d){let p=new Map;for(let[m]of l)for(let v of f){let g=Or(e,m,_,v,o);await Ap(g)&&p.set(g,p.get(g)??{id:_,type:m,itemPath:g,item_format:v})}if(p.size>1){let m=[...p.keys()].map(v=>Si.relative(e,v).split(Si.sep).join("/")).sort();throw new h(`Item ${_} has ambiguous identity across ${m.join(", ")}. Preserve both documents and inspect pm ops validate --check-storage-integrity before resolving the collision.`,b.CONFLICT,{code:"item_identity_ambiguous",item_id:_,paths:m})}for(let m of p.values())return m}return null}async function Ir(e,t={}){let n=await Lp(e,t);if(n.error!==null)throw n.error;return{raw:n.raw,document:n.document}}async function Lp(e,t={}){let n=await kt.readFile(e.itemPath);if(!Rp(n))throw new h("Item contains invalid UTF-8; preserve a binary backup before recovering it.",b.CONFLICT,{code:"item_document_encoding_invalid",item_id:e.id,item_path:e.itemPath,byte_length:n.length,empty:!1});let r=n.toString("utf8");await ke({path:e.itemPath,scope:"project"});let o;try{o=Tn(r,{format:e.item_format,requireSupportedFormat:!0,schema:t.schema,extensionFieldNames:ed(t.extensionFieldNames),onWarning:i=>Dp(t.warnings,i)})}catch(i){if(i instanceof h&&i.code==="item_format_version_unsupported")throw new h(`Item ${e.id}: ${i.message}`,i.exitCode,{...i.context,item_id:e.id,item_path:e.itemPath});if(i instanceof h&&i.code==="item_document_invalid")return{raw:r,document:null,error:new h(`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 Pp(e,t,n=Pe,r,o){await Et(e);let i=await ec(e,t,n,r,o);return qn(i.length),i.map(s=>s.metadata)}async function td(e,t,n=Pe,r,o){await Et(e);let i=await tc(e,t,n,r,o);return qn(i.length),i.map(s=>s.metadata)}async function RE(e,t,n=Pe,r,o,i={}){await Et(e);let s=await or(e,t,n,r,o,{includeBody:!0,forceSourceScan:i.forceSourceScan});return qn(s.length),s.map(a=>({...a.metadata,body:a.body}))}function nd(e){return{async get(t){let n=await kr(e.pmRoot,t,e.settings.id_prefix,e.settings.item_format,e.typeToFolder);if(!n)return null;let{document:r}=await Ir(n,{schema:e.settings.schema});return{item:r.metadata,body:r.body}},list:()=>Pp(e.pmRoot,e.settings.item_format,e.typeToFolder,void 0,e.settings.schema)}}async function jp(e,t){let n=new Set(Object.values(t)),r=[];return await Promise.all([...n].map(async o=>{try{let i=await kt.readdir(Si.join(e,o));for(let s of i)for(let a of dn)if(s.toLowerCase().endsWith(a)){r.push(s.slice(0,-a.length));break}}catch{}})),r}async function Mp(e,t,n,r){let o=Ye(t,n),i=await jp(e,r);if(i.length===0)return[];let s=Math.max(3,Math.floor(o.length/2));return i.map(a=>({id:a,distance:en(a,o,s)})).filter(a=>a.distance!==null).sort((a,c)=>a.distance-c.distance).slice(0,3).map(a=>a.id)}async function Fp(e,t,n,r){let o=await Xc(e,t,n);if(o)return o;let i=await Mp(e,t,n,r),s=["Confirm the active --path/PM_PATH scope, then retry with a valid id."];return i.length>0&&s.unshift(`Did you mean one of: ${i.join(", ")}?`),new h(`Item ${t} not found`,b.NOT_FOUND,{nextSteps:s})}function $p(e,t){return e==="claim"||t===!0&&(e==="comment_add"||e==="comment_edit"||e==="comment_delete"||e==="note_add"||e==="learning_add"||e==="release"||e==="update"||e==="update_ownership_bypass"||e==="update_audit")}async function rd(e){let t=e.typeToFolder??cn(e.settings,me()).type_to_folder,n=await kr(e.pmRoot,e.id,e.settings.id_prefix,e.settings.item_format,t);if(!n)throw await Fp(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 Ir(n,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames,warnings:o}),a=s.metadata.assignee?.trim(),c=s.metadata.claim_principal?.trim()||a,d=As(e.author),l=yr(e.settings);if(a&&c!==d&&!e.force&&!$p(e.op,e.bypassAssigneeConflict)){if(l.ownership_enforcement==="strict")throw new h(`Item ${n.id} is assigned to ${a}. Use --force to override.`,b.CONFLICT);l.ownership_enforcement==="warn"&&o.push(`ownership_warning:assignee_conflict:${n.id}:${a}`)}return{typeToFolder:t,located:n,originalRaw:i,document:s,warnings:o,releaseLock:r}}catch(o){throw await r(),o}}function Hp(e,t,n){if(!e.handled||typeof e.result!="object"||e.result===null)return{effectiveTargetItemPath:t,effectiveSerializedAfter:n,skipItemWrite:!1};let r=e.result;return{effectiveTargetItemPath:typeof r.target_item_path=="string"&&r.target_item_path.trim().length>0?r.target_item_path:t,effectiveSerializedAfter:typeof r.contents=="string"?r.contents:n,skipItemWrite:r.skip_write===!0}}async function zp(e){if(!e.skipItemWrite){if(e.effectiveTargetItemPath!==e.originalItemPath){await G(e.originalItemPath,e.originalRaw),await kt.rm(e.effectiveTargetItemPath,{force:!0});return}await G(e.originalItemPath,e.originalRaw)}}async function od(e){_n(e.op);let t=await rd({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?.(),_=Math.max(io(c.metadata),io(d.metadata));Zc(qi(e.pmRoot),_),_>Rt(d.metadata)&&(d.metadata.pm_format_version=_,l.changedFields.push("pm_format_version")),d.metadata.updated_at=Ie();let p=ne(d,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),m=await Lo({pmRoot:e.pmRoot,settings:e.settings,operation:e.op,author:e.author,before:c,after:p});await Ar({pm_root:e.pmRoot,operation:e.op,before:c,after:p,changed_fields:l.changedFields,sdk:nd({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:n})});let v=await hi({pmRoot:e.pmRoot,settings:e.settings,itemId:r.id,commandLabel:e.op}),g="toon",S=Xs(p,{format:g,schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),A=Or(e.pmRoot,p.metadata.type,r.id,g,n),N=fe(e.pmRoot,r.id),z=await xt("item_store_write",{op:e.op,pm_root:e.pmRoot,item_id:r.id,source_item_path:r.itemPath,target_item_path:A,history_path:N,item_format:g,before:c,after:p,contents:S}),{effectiveTargetItemPath:O,effectiveSerializedAfter:oe,skipItemWrite:U}=Hp(z,A,S),Q=await Wo(e.pmRoot,e.author),W=[];try{U||await G(O,oe),!U&&O!==r.itemPath&&await kt.rm(r.itemPath);let ee=ft({nowIso:p.metadata.updated_at,author:e.author,op:e.op,before:c,after:p,message:e.message,context:m.decisions.length===0?f:{...f,workflow_policies:m.decisions}});try{await mt(N,ee)}catch(Ze){throw await zp({skipItemWrite:U,effectiveTargetItemPath:O,originalItemPath:r.itemPath,originalRaw:o}),Ze}U||(W=await Vo({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:n,schema:e.settings.schema,itemPath:O,previousItemPath:r.itemPath,document:p}))}finally{await Q()}let Z=[...await _e({path:O,scope:"project",op:e.op,item_id:p.metadata.id,item_type:p.metadata.type,before:c,after:p,changed_fields:l.changedFields}),...await _e({path:N,scope:"project",op:`${e.op}:history`,item_id:p.metadata.id,item_type:p.metadata.type,before:c,after:p,changed_fields:l.changedFields})];return Rr({id:p.metadata.id,op:e.op,item_type:p.metadata.type,previous_status:c.metadata.status,status:p.metadata.status,previous:fn(c.metadata,l.changedFields),current:fn(p.metadata,l.changedFields),changed_fields:l.changedFields}),{item:p.metadata,body:p.body,changedFields:l.changedFields,warnings:[...s,...l.warnings??[],...m.warnings,...v.warnings,...z.warnings,...W,...Z]}}finally{await a()}}async function AE(e){return od(e)}async function DE(e){return od(e)}async function NE(e){let t=await rd({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=ed(void 0),c=ne(o,{schema:e.settings.schema,extensionFieldNames:a}),d=await Lo({pmRoot:e.pmRoot,settings:e.settings,operation:"delete",author:e.author,before:c,after:null,dryRun:e.dryRun});await Ar({pm_root:e.pmRoot,operation:"delete",before:c,after:null,changed_fields:["deleted"],sdk:nd({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:t.typeToFolder})});let l=await hi({pmRoot:e.pmRoot,settings:e.settings,itemId:n.id,commandLabel:"delete"}),f=Ie(),_=je,p=ft({nowIso:f,author:e.author,op:"delete",before:c,after:_,message:e.message,context:d.decisions.length===0?void 0:{workflow_policies:d.decisions}}),m=fe(e.pmRoot,n.id),v=await xt("item_store_delete",{op:"delete",pm_root:e.pmRoot,item_id:n.id,item_path:n.itemPath,history_path:m,before:c}),g=n.itemPath,S=!1;if(v.handled&&typeof v.result=="object"&&v.result!==null){let O=v.result;typeof O.item_path=="string"&&O.item_path.trim().length>0&&(g=O.item_path),O.skip_delete===!0&&(S=!0)}if(e.dryRun===!0)return{item:c.metadata,changedFields:["deleted"],targetPath:g,warnings:[...i,...d.warnings,...l.warnings,...v.warnings]};let A=await Wo(e.pmRoot,e.author),N=[];try{S||await kt.rm(g);try{await mt(m,p)}catch(O){throw S||await G(g,r),O}S||(N=await Vo({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:t.typeToFolder,schema:e.settings.schema,itemPath:g,document:null}))}finally{await A()}let z=[...await _e({path:g,scope:"project",op:"delete",item_id:c.metadata.id,item_type:c.metadata.type,before:c,after:_,changed_fields:["deleted"]}),...await _e({path:m,scope:"project",op:"delete:history",item_id:c.metadata.id,item_type:c.metadata.type,before:c,after:_,changed_fields:["deleted"]})];return Rr({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,...v.warnings,...N,...z]}}finally{await s()}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="5c8194ff-d877-51b8-bd54-d206f85a979c")}catch{}})();(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="620bf4e4-e6d1-5520-89e4-0859f57c7afe")}catch{}})();var Up=["tree","graph","context"],Bp=["none","repeated"],Wp=["outgoing","incoming","both"],Vp=32,qp=200,Gp=400,Kp=16e3;function Xp(e){let t=e?.trim().toLowerCase()??"tree";if(Up.includes(t))return t;throw new h(`Invalid --format value "${e}". Use "tree", "graph", or "context".`,b.USAGE)}function It(e,t){if(e===void 0)return;let n=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(n)||n<1)throw new h(`Invalid --${t} value "${e}". Use a positive integer.`,b.USAGE);return n}function sd(e){if(e===void 0)return;let t=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(t)||t<0)throw new h(`Invalid --max-depth value "${e}". Use a non-negative integer.`,b.USAGE);return t}function Yp(e){let t=e?.trim().toLowerCase()??"none";if(Bp.includes(t))return t;throw new h(`Invalid --collapse value "${e}". Use "none" or "repeated".`,b.USAGE)}function Jp(e){let t=e?.trim().toLowerCase()??"both";if(Wp.includes(t))return t;throw new h(`Invalid --direction value "${e}". Use "outgoing", "incoming", or "both".`,b.USAGE)}function Qp(e,t=ue()){if(e===void 0)return;let n=(Array.isArray(e)?e:[e]).flatMap(o=>o.split(",")).map(o=>o.trim()).filter(o=>o.length>0);if(n.length===0)return;let r=new Set;for(let o of n){let i=t.resolve(o);if(!i){let s=t.list().map(a=>a.kind).join(", ");throw new h(`Invalid --kind value "${o}". Registered kinds: ${s}.`,b.USAGE)}r.add(i.kind)}return[...r].sort()}function Zp(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 eh(e){return{id:e.id,title:e.title,type:e.type,status:e.status,dependencies:Zp(e.dependencies)}}function th(e){return mn(new TextEncoder().encode(JSON.stringify({...e,dependencies:void 0})).byteLength)}function nh(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(ad(d.id,n,r,o,i,s,a,c+1,d.kind))}}function rh(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 ad(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+=th(f),rh(f,l,d,r,o,i,s,a))return f;o==="repeated"&&i.add(d);let _=new Set(n);return _.add(d),nh(f,l,t,_,r,o,i,s,a),f}function id(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 oh(e){let t=new Map,n=new Map,r=[e];for(;r.length>0;){let a=r.pop();t.set(a.id,id(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,id(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 cd(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 _ of f.dependencies)o.add(`${l}::${_.id.trim().toLowerCase()}::${_.kind}`),a.push({id:_.id,depth:d.depth+1})}}return{node_count:r.size,edge_count:o.size,edge_basis:"deduplicated_directed",missing_count:i.size}}function ih(e,t=ue()){let n=sd(e.maxDepth),r=It(e.nodeLimit,"node-limit"),o=It(e.edgeLimit,"edge-limit"),i=It(e.tokenBudget,"token-budget"),s=Qp(e.kind,t);return{direction:Jp(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 sh(e,t,n,r){return mc(e.graph,t,e.details.map(o=>o.id===t&&r.length>0?{...o,evidence:r}:o),n)}function Ti(e,t,n,r){for(let o of n.slice(0,r)){let i=o?.trim();i&&e.push(`${t}:${i}`)}}async function ah(e,t,n,r){let o=await kr(e,t,n.id_prefix,n.item_format,r);if(!o)return[];let{document:i}=await Ir(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(([,_])=>_===0))return[];let f=[`linked:${l.map(([_,p])=>`${_}=${p}`).join(",")}`];return Ti(f,"file",a.map(_=>_.path),3),Ti(f,"test",c.map(_=>_.command??_.path),2),Ti(f,"doc",d.map(_=>_.path),2),f}function ch(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 dh(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 dd(e,t,n){let r;for(;;){let o=mn(new TextEncoder().encode(Pr(Nr("deps",e),t)).byteLength);if(o===r)return o;n(o),r=o}}function lh(e){return e instanceof TypeError&&e.message.startsWith("Relationship context tokenBudget cannot fit ")}function uh(e){try{return sh(e.assembly,e.canonicalId,{...e.contextOptions,...e.internalTokenBudget===void 0?{}:{tokenBudget:e.internalTokenBudget}},e.rootEvidence)}catch(t){if(e.smallestResult!==void 0&&lh(t))return e.smallestResult;throw t}}function fh(e){let{assembly:t,canonicalId:n,contextOptions:r,rootEvidence:o,summaryOnly:i,outputFormat:s,missingCount:a,missingReferences:c}=e,d=r.edgeLimit??40,l=r.tokenBudget,f,_;for(;;){let p=uh({assembly:t,canonicalId:n,contextOptions:r,internalTokenBudget:l,rootEvidence:o,smallestResult:_});if("format"in p)return p;let m=p;f??=m.meta.tokenBudget,l??=f;let v=ch({canonicalId:n,context:m,missingCount:a,missingReferences:c,referenceLimit:d,summaryOnly:i});if(_=v,i||(m.meta.tokenBudget=f,m.meta.usedTokens=dd(St(v,!1),s,A=>{m.meta.usedTokens=A}),m.meta.usedTokens<=f))return v;if(d>0){d-=1;continue}let g=l,S=g*f/m.meta.usedTokens;l=Math.min(g-1,Math.max(1,Math.floor(S*.9)))}}function mh(e){let{assembly:t,canonicalId:n,options:r,rootEvidence:o,summaryOnly:i,outputFormat:s}=e,a=ih(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(v=>t.missingIdSet.has(v.toLowerCase())),l=new Set(d.map(v=>v.toLowerCase())),f=t.graph.registry(),_=a.kinds?new Set(a.kinds.map(v=>f.require(v).kind)):void 0,p=new Set([n,...c.value]),m=[...t.dangling.active,...t.dangling.legacy_terminal].filter(v=>dh({row:v,missingReachableSet:l,packetIds:p,filteredKinds:_,registry:f}));return fh({assembly:t,canonicalId:n,contextOptions:a,rootEvidence:o,summaryOnly:i,outputFormat:s,missingCount:d.length,missingReferences:m})}function _h(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 ph(e,t,n,r,o,i,s){let a=o??Vp,c=It(n.nodeLimit,"node-limit")??qp,d=It(n.edgeLimit,"edge-limit")??Gp,l=It(n.tokenBudget,"token-budget")??Kp,f={nodeLimit:c,edgeLimit:d,tokenBudget:l,nodes:0,edges:0,estimatedTokens:0,reasons:new Set},_=ad(e,r,new Set,a,t==="graph"?"repeated":i,new Set,f),p=cd(e,r,void 0),m;for(;;){let v=oh(_),g=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-v.nodes.length),omitted_edge_count:Math.max(0,p.edge_count-v.edges.length)},S={id:e,format:t,node_count:v.nodes.length,edge_count:v.edges.length,edge_basis:"deduplicated_directed",missing_count:v.missing_ids.length,...g?{truncation:g}:{}};if(m=t==="tree"?{...S,tree:_}:{...S,graph:v},(m.truncation===void 0?mn(new TextEncoder().encode(Pr(Nr("deps",St(m,!1)),s)).byteLength):dd(St(m,!1),s,A=>{m.truncation.estimated_tokens=A}))<=l)return m;if(!_h(_))return f.reasons.add("token_budget"),m;f.reasons.add("token_budget")}}function St(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 ek(e,t,n){let r=Vi(process.cwd(),n.path);await wi(r);let o=Xp(t.format),i=sd(t.maxDepth),s=Yp(t.collapse);rs(t.summary===!0,t.full===!0,"--summary");let a=t.summary===!0,c=await Vc(r),d=cn(c,me()),l=await td(r,c.item_format,d.type_to_folder,void 0,c.schema),f=un(c.schema),_=new Map(l.map(m=>[m.id.trim().toLowerCase(),eh(m)])),p=Qo(l,m=>ge(m,f));for(let m of[...p.active,...p.legacy_terminal]){let v=_.get(m.holder_id.trim().toLowerCase()),g=m.kind.trim().toLowerCase();v&&!v.dependencies.some(S=>S.id.trim().toLowerCase()===m.target_id.trim().toLowerCase()&&S.kind===g)&&v.dependencies.push({id:m.target_id,kind:g})}if(!_.has(e.trim().toLowerCase()))throw new h(`Item ${e} not found`,b.NOT_FOUND);if(o==="context"){let m=_.get(e.trim().toLowerCase()).id,v=a?[]:await ah(r,m,c,d.type_to_folder),g=N=>ge(N,f),S=de(),A=fc().lookup(r,lc(l,g,S),()=>dr(l,g,S));return St(mh({assembly:A.assembly,canonicalId:m,options:t,rootEvidence:v,summaryOnly:a,outputFormat:n.json===!0?"json":"toon"}),a,A.assembly.legacyAliasCounts)}return a?St({id:e,format:o,...cd(e,_,i)},!0,Object.fromEntries(Object.entries(dr(l,m=>ge(m,f)).legacyAliasCounts))):St(ph(e,o,t,_,i,s,n.json===!0?"json":"toon"),!1,Object.fromEntries(Object.entries(dr(l,m=>ge(m,f)).legacyAliasCounts)))}export{oi as a,He as b,Mr as c,yh as d,gh as e,ps as f,Ur as g,Ch as h,Oh as i,xh as j,Rh as k,Ah as l,Dh as m,Jr as n,Qr as o,ks as p,Uh as q,Bh as r,Wh as s,Vh as t,qh as u,Gh as v,no as w,Os as x,Kh as y,Xh as z,Yh as A,Bd as B,As as C,Ds as D,Zh as E,Vd as F,Ns as G,We as H,Ce as I,Ms as J,At as K,uy as L,fy as M,ro as N,oo as O,io as P,Rt as Q,Ls as R,qd as S,ty as T,vn as U,it as V,ge as W,En as X,Kl as Y,Sn as Z,Tn as _,Xs as $,ne as aa,bu as ba,be as ca,dt as da,Fu as ea,eg as fa,tg as ga,ng as ha,qu as ia,jn as ja,Ge as ka,Ft as la,Tg as ma,xo as na,$n as oa,ya as pa,Cg as qa,va as ra,Og as sa,ft as ta,mt as ua,Ys as va,_t as wa,Hn as xa,Fg as ya,Ao as za,zn as Aa,$g as Ba,Hg as Ca,Sa as Da,Xe as Ea,Oa as Fa,ve as Ga,bf as Ha,zg as Ia,Ug as Ja,ht as Ka,Bn as La,cb as Ma,db as Na,La as Oa,ja as Pa,lb as Qa,Hv as Ra,De as Sa,aw as Ta,A_ as Ua,yr as Va,hr as Wa,cp as Xa,Wc as Ya,Vc as Za,cw as _a,mw as $a,hi as ab,hp as bb,Ra as cb,$t as db,Ye as eb,Xg as fb,Qt as gb,Gc as hb,yi as ib,Kc as jb,Rw as kb,xf as lb,Af as mb,Df as nb,Nf as ob,Lf as pb,Lo as qb,Cb as rb,xp as sb,Zc as tb,Lb as ub,Pb as vb,jb as wb,Xa as xb,Xf as yb,Wo as zb,Xb as Ab,Vo as Bb,or as Cb,Et as Db,wi as Eb,kr as Fb,Ir as Gb,Lp as Hb,Pp as Ib,td as Jb,RE as Kb,nd as Lb,Fp as Mb,AE as Nb,DE as Ob,NE as Pb,Go as Qb,Cm as Rb,Gt as Sb,sr as Tb,rc as Ub,Om as Vb,xm as Wb,Rm as Xb,Nm as Yb,hv as Zb,yv as _b,Wm as $b,de as ac,dv as bc,cr as cc,lv as dc,Um as ec,uv as fc,Xt as gc,qm as hc,Km as ic,Qo as jc,Xm as kc,Iv as lc,dr as mc,lc as nc,Zo as oc,fc as pc,xv as qc,mc as rc,It as sc,sd as tc,Jp as uc,Qp as vc,ek as wc};
166
- //# sourceMappingURL=chunk-PDYE7QDX.js.map
163
+ `}async function pp(e){let t;try{t=await Cc(e)}catch(a){if(Fe(a))return le();throw a}let n=tt(t),r;try{r=await j_(n)}catch(a){if(Fe(a))return le();throw a}if(!r.isFile())throw Cr();let o;try{o=await $i(n,Cr())}catch(a){if(Fe(a))return le();throw a}let i;try{i=JSON.parse(o)}catch{return le("settings_read_invalid_json")}let s=si(i);return s.success?{settings:hr(s.data),metadata:{has_explicit_item_format:zc(i)},warnings:s.data.item_format==="json_markdown"?["settings_item_format_legacy_json_markdown_coerced_to_toon"]:[]}:le("settings_read_invalid_schema")}async function Kc(e){if(M_(e))return pp(e);let t=tt(e),n=[t];await ke({path:t,scope:"project"});let r=Ec(e);if(r){let d=await Ae(r.tracked_paths);if(Jt(d,r.signatures))return pr(r.value)}let o=await Ae([t]),i;try{i=await Ee(t)}catch{return le("settings_read_fs_error")}if(i===null){let d=le();return await ui(e,[t],d,o,[t]),d}let s=await Ae([t]);if(!Jt(o,s))return De(e),Kc(e);let a;try{a=JSON.parse(i)}catch{let d=le("settings_read_invalid_json");return await ui(e,[t],d,s,[t]),d}let c=si(a);if(!c.success){let d=le("settings_read_invalid_schema");return await ui(e,[t],d,s,[t]),d}try{let d=hr(c.data),l=B_(e,d.schema,t);n=l;let f=await Ae(l),_=await es(e,d.schema),p=await ts(e,d.schema),m=await Ae(l),v={...d,item_types:{definitions:wt([...d.item_types.definitions,...pi(p.type_definitions_from_file)])},schema:p.schema};hi(v,$c(c.data,v));let g={settings:v,metadata:{has_explicit_item_format:zc(a)},warnings:[...c.data.item_format==="json_markdown"?["settings_item_format_legacy_json_markdown_coerced_to_toon"]:[],..._.created_paths.map(S=>`runtime_schema_bootstrap_created:${S}`),...p.warnings]};return _.created_paths.length===0?Jt(f,m)?_r(e,{tracked_paths:l,signatures:m,value:pr(g)}):De(e):De(e),g}catch{let d=le("settings_read_merge_failed");return await q_(e,n,d),d}}async function Xc(e){return(await Kc(e)).settings}async function yw(e,t,n=F_){let r=tt(e),o=Hc(t),i=_p(t,{persist_source:o}),s=JSON.parse(i);try{await Ha({pmRoot:e,filePath:r,mutate:a=>{let c=null;if(a!==null)try{c=JSON.parse(a)}catch{throw new h("Existing settings.json is malformed; the settings write was refused.",b.USAGE,{code:"settings_write_invalid_existing_json",reason:"existing_settings_json_malformed",why:"Writing defaults over malformed settings could destroy intended project configuration.",nextSteps:["Repair the syntax in .agents/pm/settings.json, then retry the original command.","Run pm health to confirm the settings warning has cleared."]})}return{raw:o?`${JSON.stringify(T(ai(o.persisted_settings,s,c),yi),null,2)}
164
+ `:i,result:void 0}},op:n,author:Ls(void 0,t.author_default),lockTtlSeconds:t.locks.ttl_seconds,lockWaitMs:t.locks.wait_ms,recordCreation:!1}),o&&hi(t,{...o,persisted_settings:structuredClone(s)}),await _e({path:r,scope:"project",op:n})}finally{De(e)}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="e23f9ca6-9fa6-566b-9bfb-7cbe6d449a59")}catch{}})();function hp(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 Yc(e){return["pm",...e].map(t=>/^[A-Za-z0-9_./:@=-]+$/u.test(t)?t:JSON.stringify(t)).join(" ")}function Ew(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(_=>_.trim()))].filter(Boolean).sort((_,p)=>_.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:hp(r,o),l=Yc([...i,r,...s]),f=e.retry_command??(d?Yc([...i,d,...s]):void 0);return new h(`Unknown ${a} ${c} "${r}". Allowed: ${o.join(", ")}${e.message_suffix??""}`,e.exit_code??b.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 yp from"node:fs/promises";import gp from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="1d746e4d-ff6c-54ec-a94f-4ec4cb8f77b5")}catch{}})();function bp(e){return[...new Set(e.filter(t=>t.trim().length>0))].sort((t,n)=>t.localeCompare(n))}function vp(e,t){return new h(`Missing history stream for ${e}. ${t} requires history streams when settings.history.missing_stream is strict_error.`,b.NOT_FOUND)}async function wp(e,t){return await Fi(gp.dirname(e)),await(await yp.open(e,"a")).close(),_e({path:e,scope:"project",op:`${t}:history:auto_create`})}async function gi(e){return Ep({pmRoot:e.pmRoot,settings:e.settings,itemIds:[e.itemId],commandLabel:e.commandLabel})}async function Ep(e){let t=bp(e.itemIds),n=[],r=[];for(let o of t){let i=fe(e.pmRoot,o);if(!await Me(i)){if(e.settings.history.missing_stream==="strict_error")throw vp(o,e.commandLabel);r.push(...await wp(i,e.commandLabel)),r.push(`history_stream_auto_created:${o}`),n.push(o)}}return{auto_created_ids:n,warnings:r}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="5db05e2f-4742-526b-b1c8-b97ff302b40e")}catch{}})();function Qt(e,t=!1){let n=e[0];if(n?.op!=="history_compact_baseline")return 0;let r=n.context?.history_compaction,o=typeof r=="object"&&r!==null&&"version_offset"in r?r.version_offset:void 0;if(typeof o=="number"&&Number.isSafeInteger(o)&&o>=0&&Number.isSafeInteger(o+e.length))return o;if(t)return null;throw new h("This compacted stream has no trustworthy version offset; numeric history addresses are unavailable.",b.USAGE,{code:"history_version_mapping_unavailable",required:"Use a retained timestamp or recover the pre-compaction stream from version control.",nextSteps:["Run pm history <id> --full to inspect the retained timestamps and checkpoint evidence."]})}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ddc5bb8f-83bc-5121-a628-a501e7ed5a73")}catch{}})();function kp(e,t){let n=-1;return e.forEach((r,o)=>{let i=Date.parse(r.ts);if(!Number.isFinite(i))throw new h(`History for this item contains invalid timestamp at entry ${o+1}.`,b.GENERIC_FAILURE);i<=t&&(n=o)}),n}function Ip(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 Sp(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 Jc(e,t,n={}){let r=e.trim(),o=n.errorSubject??"history",i=o==="restore"?"Restore":"History",{guidance:s,lastTimestamp:a}=Ip(t,Qt(t,!0));if(!r)throw new h(`Missing ${o} target. Use a timestamp or version number.`,b.USAGE,s);if(/^\d+$/.test(r)){let l=Qt(t),f=Number(r);if(f>=1&&f<=l)throw new h(`History version ${f} was pruned by compaction.`,b.USAGE,{...s,code:"history_version_pruned"});if(!Number.isSafeInteger(f)||f<1||f>l+t.length)throw new h(`${i} version must be between ${l+1} and ${l+t.length} for this item.`,b.USAGE,s);return{kind:"version",raw:r,historyIndex:f-l-1}}let c=Date.parse(r);if(!Number.isFinite(c))throw new h(`Invalid ${o} target "${e}". Use a positive version number or ISO timestamp.`,b.USAGE,s);let d=kp(t,c);if(d<0||n.allowFutureTimestamp!==!0&&c>Date.parse(a))throw new h(o==="restore"?`No history entries exist at or before timestamp ${r}.`:`No history entry exists at timestamp ${r}.`,b.USAGE,s);return{kind:"timestamp",raw:r,historyIndex:d}}function bi(e,t,n,r){let o=Xe(e,t);if(o.ok)return o.document;let i=Sp(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 h(`Failed to apply history patch at entry ${n} (${s.join(", ")}). ${i.reason??String(o.error)}`,b.GENERIC_FAILURE)}function Qc(e,t){let n=e[0];if(n&&n.op!=="create"&&n.op!=="history_compact_baseline"){let s=Xe(_t,n.patch);if(!s.ok||typeof s.document.metadata.id!="string")throw new h("History starts without a reconstructable item baseline.",b.GENERIC_FAILURE,{code:"history_baseline_unavailable",required:"Recover the original create entry or a complete checkpoint from version control.",nextSteps:["Run pm history <id> --full to inspect the missing baseline."]})}let r=e.slice(0,t+1),o=ve([...r]),i=structuredClone(_t);for(let s=0;s<=t;s+=1){let a=e[s];if(!a)throw new h(`History target entry ${s+1} does not exist.`,b.USAGE);i=bi(i,a.patch,s+1,a.op)}if(!o.ok)throw new h(`History cannot be replayed: ${o.errors.join(", ")}.`,b.GENERIC_FAILURE,{code:"history_replay_invalid",verification_errors:o.errors,required:"Inspect the history integrity findings before attempting recovery.",nextSteps:["Run pm history <id> --verify --full."]});return i}function $w(e,t){if(Object.keys(e.metadata).length>0){if(typeof e.metadata.id!="string"||!Array.isArray(e.metadata.tags))throw new h("History has no complete item baseline for this target.",b.GENERIC_FAILURE,{code:"history_baseline_unavailable",required:"Recover the original create entry or a complete checkpoint from version control.",nextSteps:["Run pm history <id> --full to inspect the first recorded state."]});return e}throw new h(`History target ${t.raw} resolves to a deleted state; choose a version or timestamp where the item exists.`,b.USAGE)}import wi from"node:fs/promises";import gr from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="658ab1c3-da92-5af6-a170-85ed7befaad6")}catch{}})();function Le(e,t){return typeof e=="object"&&e!==null&&"code"in e&&e.code===t}function Ei(e){let t=["--pm-path",e,"init","--defaults","--agent-guidance","skip"];return{suggested_retry:$e(t),suggested_retry_args:t}}function br(e){return new h(`Tracker root is not a directory at ${e}.`,b.USAGE,{code:"tracker_root_not_directory",reason:"not_a_directory",resolved_path:e,nextSteps:["Pass a tracker directory, usually <workspace>/.agents/pm, rather than a file path."]})}function vi(e){return new h(`Tracker root is not readable at ${e}.`,b.GENERIC_FAILURE,{code:"tracker_root_unreadable",reason:"unreadable",resolved_path:e,nextSteps:["Grant read and directory-search permission to the tracker root, then retry."]})}async function Tp(e){let t=gr.resolve(e),n=gr.parse(t).root,r=gr.dirname(t);for(;r!==n;){let o;try{o=await wi.stat(r)}catch(i){if(Le(i,"ENOTDIR"))throw br(e);if(!Le(i,"ENOENT"))throw i;r=gr.dirname(r);continue}if(!o.isDirectory())throw br(e);return}}async function Et(e){let t;try{t=await wi.stat(e)}catch(n){throw Le(n,"ENOENT")?(await Tp(e),new h(`Tracker is not initialized at ${e}. Tracker root does not exist. Run pm init first.`,b.NOT_FOUND,{code:"tracker_root_missing",reason:"missing",resolved_path:e,nextSteps:["Confirm the tracker root path or initialize it with the emitted retry."],recovery:Ei(e)})):Le(n,"ENOTDIR")?br(e):Le(n,"EACCES")||Le(n,"EPERM")?vi(e):n}if(!t.isDirectory())throw br(e);if(process.platform!=="win32"&&((t.mode&292)===0||(t.mode&73)===0))throw vi(e);try{await(await wi.opendir(e)).close()}catch(n){throw Le(n,"EACCES")||Le(n,"EPERM")?vi(e):n}}async function ki(e){if(await Et(e),!await Me(tt(e)))throw new h(`Tracker is not initialized at ${e}. Run pm init first.`,b.NOT_FOUND,{code:"tracker_not_initialized",reason:"settings_missing",resolved_path:e,nextSteps:["Initialize the selected tracker root with the emitted retry."],recovery:Ei(e)})}import kt from"node:fs/promises";import{statSync as Cp}from"node:fs";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="be69f1e8-4543-5cf5-abb0-9d38ca1d0cc6")}catch{}})();function xp(e,t){let n=-1,r=structuredClone(_t);for(let[a,c]of e.entries()){if(r=bi(r,c.patch,a+1,c.op),r.metadata.id!==void 0&&r.metadata.id!==t)throw new h(`History belongs to item ${String(r.metadata.id)}, expected ${t}.`,b.GENERIC_FAILURE,{code:"history_replay_invalid",required:"Recover the correct history stream for this item before attempting restoration."});r.metadata.id===t&&Array.isArray(r.metadata.tags)&&(n=a)}let o=Qt(e,!0),i=n<0||o===null?null:o+n+1,s=i===null?void 0:String(i);if(n>=0&&s===void 0){let a=e[n].ts;Jc(a,e).historyIndex===n&&(s=a)}return{version:i,target:s}}async function Zc(e,t,n){let r=new Set([Ye(t,n),$t(t)]);for(let o of r){let i=fe(e,o);if(!Cp(i,{throwIfNoEntry:!1})?.isFile())continue;let s=await be(i,o),a=-1;if(s.forEach((p,m)=>{p.op==="delete"&&(a=m)}),a<0)continue;let c=Qc(s,s.length-1);if(Object.keys(c.metadata).length!==0)continue;let{version:d,target:l}=xp(s,o),f=l===void 0?["history",o,"--verify"]:["get",o,"--at",l],_=$e(f);return new h(`Item ${o} was deleted at ${s[a].ts}; its history is retained.`,b.NOT_FOUND,{code:"item_deleted",required:"Read a retained materialized version, then restore it if the item should exist again.",item_id:o,tombstone:{deleted:!0,deleted_at:s[a].ts,recoverable:l!==void 0,last_materialized_version:d},nextSteps:[_,...l===void 0?["Recover the pre-compaction history from version control."]:[$e(["restore",o,l])]],recovery:{suggested_retry:_,suggested_retry_args:f}})}}import{AsyncLocalStorage as Op}from"node:async_hooks";import Rp 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]="53df109f-bd64-5879-96a6-39f70334910e")}catch{}})();var Ap=new Op;function ed(e,t){for(let n of Ap.getStore()??[])n.pmRoot===Rp.resolve(e)&&n.id===t.metadata.id&&n.validate(t)}import Ci from"node:path";import td from"node:fs";import Zt from"node:path";import{createRequire as Dp}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]="19d9b802-1efa-5716-8176-ecbf5b153ff0")}catch{}})();var nd="@unbrained/pm-cli";var Si=/\b(\d{4})\.(\d{1,2})\.(\d{1,2})(?:-(\d+))?\b/u,Ti="2026.8.31";function vr(e){let t=e.match(Si);return t?[Number(t[1]),Number(t[2]),Number(t[3]),Number(t[4]??0)]:null}function Er(e,t){let n=vr(e),r=vr(t);if(!n||!r)return null;for(let o=0;o<n.length;o+=1){let i=n[o]-r[o];if(i!==0)return Math.sign(i)}return 0}function Ii(e){return Er(e,Ti)!==-1?3:2}function wr(e){try{let t=JSON.parse(td.readFileSync(e,"utf8"));return typeof t=="object"&&t!==null&&!Array.isArray(t)?t:null}catch{return null}}function Np(e){let t=[...e.matchAll(/(<=|<)\s*v?(\d{4}\.\d{1,2}\.\d{1,2}(?:-\d+)?)/gu)].map(r=>({inclusive:r[1]==="<=",version:r[2]})),n=e.match(/\b\d{4}\.\d{1,2}\.\d{1,2}(?:-\d+)?\s+-\s+v?(\d{4}\.\d{1,2}\.\d{1,2}(?:-\d+)?)/u);return n?[...t,{inclusive:!0,version:n[1]}]:t}function Lp(e){let t=e.split("||").map(n=>Np(n));return{bounded:t.some(n=>n.length>0),compatible:t.some(n=>n.every(r=>{let o=Er(Ti,r.version);return o!==null&&(r.inclusive?o!==1:o===-1)}))}}function rd(e){return["dependencies","devDependencies","optionalDependencies","peerDependencies"].flatMap(t=>{let n=e[t];if(typeof n!="object"||n===null)return[];let r=n[nd];return typeof r=="string"?[r.trim()]:[]})}function Pp(e){return rd(e).flatMap(t=>{let n=/^[<!]/u.test(t)?void 0:t.match(Si)?.[0];if(!n)return[];let r=/^(?:=|v)?\d{4}\.\d{1,2}\.\d{1,2}(?:-\d+)?$/u.test(t),o=Lp(t);return[{version:n,constraint:r?"exact":o.bounded?"range":"minimum",...r?{}:{declaration:t},history_epoch_compatible:r?Er(n,Ti)!==-1:o.compatible}]})}function jp(e){let t=wr(Zt.join(e,"package-lock.json"))?.packages;if(typeof t!="object"||t===null)return;let n=t["node_modules/@unbrained/pm-cli"];if(typeof n!="object"||n===null)return;let r=n.version;return typeof r=="string"?r:void 0}function Mp(e,t){try{let n=td.readFileSync(Zt.join(e,t),"utf8").split(/\r?\n/u),r=n.findIndex(s=>s.includes(nd));if(r<0)return;let o=n[r].match(/^\s*/u)[0].length,i=[n[r]];for(let s=r+1;s<n.length;s+=1){let a=n[s],c=a.trim(),d=a.match(/^\s*/u)[0].length;if(c.length>0&&d<=o)break;i.push(a)}return i.join(`
165
+ `).match(/^\s*version(?::\s*|\s+)["']?(\d{4}\.\d{1,2}\.\d{1,2}(?:-\d+)?)/mu)?.[1]??i[0].match(Si)?.[0]}catch{return}}function Fp(e){let t=[],n=wr(Zt.join(e,"package.json"));n&&t.push(...Pp(n).map(i=>({...i,source:"package.json"})));let r=wr(Zt.join(e,"node_modules","@unbrained","pm-cli","package.json"))?.version;typeof r=="string"&&vr(r)&&t.push({version:r,source:"installed-package",constraint:"exact",history_epoch_compatible:Ii(r)===3});let o=jp(e);o&&vr(o)&&t.push({version:o,source:"package-lock.json",constraint:"exact",history_epoch_compatible:Ii(o)===3});for(let i of["pnpm-lock.yaml","yarn.lock"]){let s=Mp(e,i);s&&t.push({version:s,source:i,constraint:"exact",history_epoch_compatible:Ii(s)===3})}return t}function od(e,t){if(t<=1)return;let{minVersion:n,lt:r}=Dp(import.meta.url)("semver"),o=rd(wr(Zt.join(e,"package.json"))??{}).find(s=>{try{let a=n(s);return a!==null&&r(a,"2026.10.10")}catch{return!1}}),i=o===void 0?Fp(e).find(s=>Er(s.version,"2026.10.10")===-1):{version:o,source:"package.json"};if(i)throw new h(`The project selects pm ${i.version}, which cannot safely refuse item format ${t}.`,b.CONFLICT,{code:"project_runtime_item_format_incompatible",reason:i.source,required:"Upgrade project pins, installed SDKs, CI hosts and Git merge drivers before writing guarded item formats.",nextSteps:["Use a pm runtime supporting the required item format throughout the project; preserve original item and history bytes, and never re-anchor history to satisfy an older host."]})}import{isUtf8 as $p}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]="018adb6c-4e3c-58d5-b636-04dbf4307d7a")}catch{}})();async function Hp(e){try{return await kt.access(e),!0}catch{return!1}}function zp(e,t){e&&(e.includes(t)||e.push(t))}function id(e){return e??an(me())}function Up(e){return e==="toon"?["toon","json_markdown"]:e==="json_markdown"?["json_markdown","toon"]:["toon","json_markdown"]}async function kr(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=$t(t),d=[...new Set([s,a,c])].filter(_=>_.length>0),l=Object.entries(o),f=Up(r);for(let _ of d){let p=new Map;for(let[m]of l)for(let v of f){let g=xr(e,m,_,v,o);await Hp(g)&&p.set(g,p.get(g)??{id:_,type:m,itemPath:g,item_format:v})}if(p.size>1){let m=[...p.keys()].map(v=>Ci.relative(e,v).split(Ci.sep).join("/")).sort();throw new h(`Item ${_} has ambiguous identity across ${m.join(", ")}. Preserve both documents and inspect pm ops validate --check-storage-integrity before resolving the collision.`,b.CONFLICT,{code:"item_identity_ambiguous",item_id:_,paths:m})}for(let m of p.values())return m}return null}async function Ir(e,t={}){let n=await Wp(e,t);if(n.error!==null)throw n.error;return{raw:n.raw,document:n.document}}async function Wp(e,t={}){let n=await kt.readFile(e.itemPath);if(!$p(n))throw new h("Item contains invalid UTF-8; preserve a binary backup before recovering it.",b.CONFLICT,{code:"item_document_encoding_invalid",item_id:e.id,item_path:e.itemPath,byte_length:n.length,empty:!1});let r=n.toString("utf8");await ke({path:e.itemPath,scope:"project"});let o;try{o=Tn(r,{format:e.item_format,requireSupportedFormat:!0,schema:t.schema,extensionFieldNames:id(t.extensionFieldNames),onWarning:i=>zp(t.warnings,i)})}catch(i){if(i instanceof h&&i.code==="item_format_version_unsupported")throw new h(`Item ${e.id}: ${i.message}`,i.exitCode,{...i.context,item_id:e.id,item_path:e.itemPath});if(i instanceof h&&i.code==="item_document_invalid")return{raw:r,document:null,error:new h(`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 Bp(e,t,n=Pe,r,o){await Et(e);let i=await oc(e,t,n,r,o);return qn(i.length),i.map(s=>s.metadata)}async function sd(e,t,n=Pe,r,o){await Et(e);let i=await ic(e,t,n,r,o);return qn(i.length),i.map(s=>s.metadata)}async function WE(e,t,n=Pe,r,o,i={}){await Et(e);let s=await or(e,t,n,r,o,{includeBody:!0,forceSourceScan:i.forceSourceScan});return qn(s.length),s.map(a=>({...a.metadata,body:a.body}))}function ad(e){return{async get(t){let n=await kr(e.pmRoot,t,e.settings.id_prefix,e.settings.item_format,e.typeToFolder);if(!n)return null;let{document:r}=await Ir(n,{schema:e.settings.schema});return{item:r.metadata,body:r.body}},list:()=>Bp(e.pmRoot,e.settings.item_format,e.typeToFolder,void 0,e.settings.schema)}}async function Vp(e,t){let n=new Set(Object.values(t)),r=[];return await Promise.all([...n].map(async o=>{try{let i=await kt.readdir(Ci.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 qp(e,t,n,r){let o=Ye(t,n),i=await Vp(e,r);if(i.length===0)return[];let s=Math.max(3,Math.floor(o.length/2));return i.map(a=>({id:a,distance:en(a,o,s)})).filter(a=>a.distance!==null).sort((a,c)=>a.distance-c.distance).slice(0,3).map(a=>a.id)}async function Gp(e,t,n,r){let o=await Zc(e,t,n);if(o)return o;let i=await qp(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 h(`Item ${t} not found`,b.NOT_FOUND,{nextSteps:s})}function Kp(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 cd(e){let t=e.typeToFolder??cn(e.settings,me()).type_to_folder,n=await kr(e.pmRoot,e.id,e.settings.id_prefix,e.settings.item_format,t);if(!n)throw await Gp(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 Ir(n,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames,warnings:o}),a=s.metadata.assignee?.trim(),c=s.metadata.claim_principal?.trim()||a,d=Ns(e.author),l=yr(e.settings);if(a&&c!==d&&!e.force&&!Kp(e.op,e.bypassAssigneeConflict)){if(l.ownership_enforcement==="strict")throw new h(`Item ${n.id} is assigned to ${a}. Use --force to override.`,b.CONFLICT);l.ownership_enforcement==="warn"&&o.push(`ownership_warning:assignee_conflict:${n.id}:${a}`)}return{typeToFolder:t,located:n,originalRaw:i,document:s,warnings:o,releaseLock:r}}catch(o){throw await r(),o}}function Xp(e,t,n){if(!e.handled||typeof e.result!="object"||e.result===null)return{effectiveTargetItemPath:t,effectiveSerializedAfter:n,skipItemWrite:!1};let r=e.result;return{effectiveTargetItemPath:typeof r.target_item_path=="string"&&r.target_item_path.trim().length>0?r.target_item_path:t,effectiveSerializedAfter:typeof r.contents=="string"?r.contents:n,skipItemWrite:r.skip_write===!0}}async function Yp(e){if(!e.skipItemWrite){if(e.effectiveTargetItemPath!==e.originalItemPath){await G(e.originalItemPath,e.originalRaw),await kt.rm(e.effectiveTargetItemPath,{force:!0});return}await G(e.originalItemPath,e.originalRaw)}}async function dd(e){_n(e.op);let t=await cd({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{ed(e.pmRoot,i);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?.(),_=Math.max(io(c.metadata),io(d.metadata));od(Ki(e.pmRoot),_),_>Rt(d.metadata)&&(d.metadata.pm_format_version=_,l.changedFields.push("pm_format_version")),d.metadata.updated_at=Ie();let p=ne(d,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),m=await jo({pmRoot:e.pmRoot,settings:e.settings,operation:e.op,author:e.author,before:c,after:p});await Ar({pm_root:e.pmRoot,operation:e.op,before:c,after:p,changed_fields:l.changedFields,sdk:ad({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:n})});let v=await gi({pmRoot:e.pmRoot,settings:e.settings,itemId:r.id,commandLabel:e.op}),g="toon",S=Zs(p,{format:g,schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),A=xr(e.pmRoot,p.metadata.type,r.id,g,n),N=fe(e.pmRoot,r.id),z=await Ot("item_store_write",{op:e.op,pm_root:e.pmRoot,item_id:r.id,source_item_path:r.itemPath,target_item_path:A,history_path:N,item_format:g,before:c,after:p,contents:S}),{effectiveTargetItemPath:x,effectiveSerializedAfter:oe,skipItemWrite:U}=Xp(z,A,S),Q=await qo(e.pmRoot,e.author),B=[];try{U||await G(x,oe),!U&&x!==r.itemPath&&await kt.rm(r.itemPath);let ee=ft({nowIso:p.metadata.updated_at,author:e.author,op:e.op,before:c,after:p,message:e.message,context:m.decisions.length===0?f:{...f,workflow_policies:m.decisions}});try{await mt(N,ee)}catch(Ze){throw await Yp({skipItemWrite:U,effectiveTargetItemPath:x,originalItemPath:r.itemPath,originalRaw:o}),Ze}U||(B=await Go({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:n,schema:e.settings.schema,itemPath:x,previousItemPath:r.itemPath,document:p}))}finally{await Q()}let Z=[...await _e({path:x,scope:"project",op:e.op,item_id:p.metadata.id,item_type:p.metadata.type,before:c,after:p,changed_fields:l.changedFields}),...await _e({path:N,scope:"project",op:`${e.op}:history`,item_id:p.metadata.id,item_type:p.metadata.type,before:c,after:p,changed_fields:l.changedFields})];return Rr({id:p.metadata.id,op:e.op,item_type:p.metadata.type,previous_status:c.metadata.status,status:p.metadata.status,previous:fn(c.metadata,l.changedFields),current:fn(p.metadata,l.changedFields),changed_fields:l.changedFields}),{item:p.metadata,body:p.body,changedFields:l.changedFields,warnings:[...s,...l.warnings??[],...m.warnings,...v.warnings,...z.warnings,...B,...Z]}}finally{await a()}}async function BE(e){return dd(e)}async function VE(e){return dd(e)}async function qE(e){let t=await cd({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=id(void 0),c=ne(o,{schema:e.settings.schema,extensionFieldNames:a}),d=await jo({pmRoot:e.pmRoot,settings:e.settings,operation:"delete",author:e.author,before:c,after:null,dryRun:e.dryRun});await Ar({pm_root:e.pmRoot,operation:"delete",before:c,after:null,changed_fields:["deleted"],sdk:ad({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:t.typeToFolder})});let l=await gi({pmRoot:e.pmRoot,settings:e.settings,itemId:n.id,commandLabel:"delete"}),f=Ie(),_=je,p=ft({nowIso:f,author:e.author,op:"delete",before:c,after:_,message:e.message,context:d.decisions.length===0?void 0:{workflow_policies:d.decisions}}),m=fe(e.pmRoot,n.id),v=await Ot("item_store_delete",{op:"delete",pm_root:e.pmRoot,item_id:n.id,item_path:n.itemPath,history_path:m,before:c}),g=n.itemPath,S=!1;if(v.handled&&typeof v.result=="object"&&v.result!==null){let x=v.result;typeof x.item_path=="string"&&x.item_path.trim().length>0&&(g=x.item_path),x.skip_delete===!0&&(S=!0)}if(e.dryRun===!0)return{item:c.metadata,changedFields:["deleted"],targetPath:g,warnings:[...i,...d.warnings,...l.warnings,...v.warnings]};let A=await qo(e.pmRoot,e.author),N=[];try{S||await kt.rm(g);try{await mt(m,p)}catch(x){throw S||await G(g,r),x}S||(N=await Go({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:t.typeToFolder,schema:e.settings.schema,itemPath:g,document:null}))}finally{await A()}let z=[...await _e({path:g,scope:"project",op:"delete",item_id:c.metadata.id,item_type:c.metadata.type,before:c,after:_,changed_fields:["deleted"]}),...await _e({path:m,scope:"project",op:"delete:history",item_id:c.metadata.id,item_type:c.metadata.type,before:c,after:_,changed_fields:["deleted"]})];return Rr({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,...v.warnings,...N,...z]}}finally{await s()}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="5c8194ff-d877-51b8-bd54-d206f85a979c")}catch{}})();(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="620bf4e4-e6d1-5520-89e4-0859f57c7afe")}catch{}})();var Jp=["tree","graph","context"],Qp=["none","repeated"],Zp=["outgoing","incoming","both"],eh=32,th=200,nh=400,rh=16e3;function oh(e){let t=e?.trim().toLowerCase()??"tree";if(Jp.includes(t))return t;throw new h(`Invalid --format value "${e}". Use "tree", "graph", or "context".`,b.USAGE)}function It(e,t){if(e===void 0)return;let n=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(n)||n<1)throw new h(`Invalid --${t} value "${e}". Use a positive integer.`,b.USAGE);return n}function ud(e){if(e===void 0)return;let t=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(t)||t<0)throw new h(`Invalid --max-depth value "${e}". Use a non-negative integer.`,b.USAGE);return t}function ih(e){let t=e?.trim().toLowerCase()??"none";if(Qp.includes(t))return t;throw new h(`Invalid --collapse value "${e}". Use "none" or "repeated".`,b.USAGE)}function sh(e){let t=e?.trim().toLowerCase()??"both";if(Zp.includes(t))return t;throw new h(`Invalid --direction value "${e}". Use "outgoing", "incoming", or "both".`,b.USAGE)}function ah(e,t=ue()){if(e===void 0)return;let n=(Array.isArray(e)?e:[e]).flatMap(o=>o.split(",")).map(o=>o.trim()).filter(o=>o.length>0);if(n.length===0)return;let r=new Set;for(let o of n){let i=t.resolve(o);if(!i){let s=t.list().map(a=>a.kind).join(", ");throw new h(`Invalid --kind value "${o}". Registered kinds: ${s}.`,b.USAGE)}r.add(i.kind)}return[...r].sort()}function ch(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 dh(e){return{id:e.id,title:e.title,type:e.type,status:e.status,dependencies:ch(e.dependencies)}}function lh(e){return mn(new TextEncoder().encode(JSON.stringify({...e,dependencies:void 0})).byteLength)}function uh(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(fd(d.id,n,r,o,i,s,a,c+1,d.kind))}}function fh(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 fd(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+=lh(f),fh(f,l,d,r,o,i,s,a))return f;o==="repeated"&&i.add(d);let _=new Set(n);return _.add(d),uh(f,l,t,_,r,o,i,s,a),f}function ld(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 mh(e){let t=new Map,n=new Map,r=[e];for(;r.length>0;){let a=r.pop();t.set(a.id,ld(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,ld(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 md(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 _ of f.dependencies)o.add(`${l}::${_.id.trim().toLowerCase()}::${_.kind}`),a.push({id:_.id,depth:d.depth+1})}}return{node_count:r.size,edge_count:o.size,edge_basis:"deduplicated_directed",missing_count:i.size}}function _h(e,t=ue()){let n=ud(e.maxDepth),r=It(e.nodeLimit,"node-limit"),o=It(e.edgeLimit,"edge-limit"),i=It(e.tokenBudget,"token-budget"),s=ah(e.kind,t);return{direction:sh(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 ph(e,t,n,r){return yc(e.graph,t,e.details.map(o=>o.id===t&&r.length>0?{...o,evidence:r}:o),n)}function xi(e,t,n,r){for(let o of n.slice(0,r)){let i=o?.trim();i&&e.push(`${t}:${i}`)}}async function hh(e,t,n,r){let o=await kr(e,t,n.id_prefix,n.item_format,r);if(!o)return[];let{document:i}=await Ir(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(([,_])=>_===0))return[];let f=[`linked:${l.map(([_,p])=>`${_}=${p}`).join(",")}`];return xi(f,"file",a.map(_=>_.path),3),xi(f,"test",c.map(_=>_.command??_.path),2),xi(f,"doc",d.map(_=>_.path),2),f}function yh(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 gh(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 _d(e,t,n){let r;for(;;){let o=mn(new TextEncoder().encode(Pr(Nr("deps",e),t)).byteLength);if(o===r)return o;n(o),r=o}}function bh(e){return e instanceof TypeError&&e.message.startsWith("Relationship context tokenBudget cannot fit ")}function vh(e){try{return ph(e.assembly,e.canonicalId,{...e.contextOptions,...e.internalTokenBudget===void 0?{}:{tokenBudget:e.internalTokenBudget}},e.rootEvidence)}catch(t){if(e.smallestResult!==void 0&&bh(t))return e.smallestResult;throw t}}function wh(e){let{assembly:t,canonicalId:n,contextOptions:r,rootEvidence:o,summaryOnly:i,outputFormat:s,missingCount:a,missingReferences:c}=e,d=r.edgeLimit??40,l=r.tokenBudget,f,_;for(;;){let p=vh({assembly:t,canonicalId:n,contextOptions:r,internalTokenBudget:l,rootEvidence:o,smallestResult:_});if("format"in p)return p;let m=p;f??=m.meta.tokenBudget,l??=f;let v=yh({canonicalId:n,context:m,missingCount:a,missingReferences:c,referenceLimit:d,summaryOnly:i});if(_=v,i||(m.meta.tokenBudget=f,m.meta.usedTokens=_d(St(v,!1),s,A=>{m.meta.usedTokens=A}),m.meta.usedTokens<=f))return v;if(d>0){d-=1;continue}let g=l,S=g*f/m.meta.usedTokens;l=Math.min(g-1,Math.max(1,Math.floor(S*.9)))}}function Eh(e){let{assembly:t,canonicalId:n,options:r,rootEvidence:o,summaryOnly:i,outputFormat:s}=e,a=_h(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(v=>t.missingIdSet.has(v.toLowerCase())),l=new Set(d.map(v=>v.toLowerCase())),f=t.graph.registry(),_=a.kinds?new Set(a.kinds.map(v=>f.require(v).kind)):void 0,p=new Set([n,...c.value]),m=[...t.dangling.active,...t.dangling.legacy_terminal].filter(v=>gh({row:v,missingReachableSet:l,packetIds:p,filteredKinds:_,registry:f}));return wh({assembly:t,canonicalId:n,contextOptions:a,rootEvidence:o,summaryOnly:i,outputFormat:s,missingCount:d.length,missingReferences:m})}function kh(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 Ih(e,t,n,r,o,i,s){let a=o??eh,c=It(n.nodeLimit,"node-limit")??th,d=It(n.edgeLimit,"edge-limit")??nh,l=It(n.tokenBudget,"token-budget")??rh,f={nodeLimit:c,edgeLimit:d,tokenBudget:l,nodes:0,edges:0,estimatedTokens:0,reasons:new Set},_=fd(e,r,new Set,a,t==="graph"?"repeated":i,new Set,f),p=md(e,r,void 0),m;for(;;){let v=mh(_),g=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-v.nodes.length),omitted_edge_count:Math.max(0,p.edge_count-v.edges.length)},S={id:e,format:t,node_count:v.nodes.length,edge_count:v.edges.length,edge_basis:"deduplicated_directed",missing_count:v.missing_ids.length,...g?{truncation:g}:{}};if(m=t==="tree"?{...S,tree:_}:{...S,graph:v},(m.truncation===void 0?mn(new TextEncoder().encode(Pr(Nr("deps",St(m,!1)),s)).byteLength):_d(St(m,!1),s,A=>{m.truncation.estimated_tokens=A}))<=l)return m;if(!kh(_))return f.reasons.add("token_budget"),m;f.reasons.add("token_budget")}}function St(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 mk(e,t,n){let r=Gi(process.cwd(),n.path);await ki(r);let o=oh(t.format),i=ud(t.maxDepth),s=ih(t.collapse);is(t.summary===!0,t.full===!0,"--summary");let a=t.summary===!0,c=await Xc(r),d=cn(c,me()),l=await sd(r,c.item_format,d.type_to_folder,void 0,c.schema),f=un(c.schema),_=new Map(l.map(m=>[m.id.trim().toLowerCase(),dh(m)])),p=ei(l,m=>ge(m,f));for(let m of[...p.active,...p.legacy_terminal]){let v=_.get(m.holder_id.trim().toLowerCase()),g=m.kind.trim().toLowerCase();v&&!v.dependencies.some(S=>S.id.trim().toLowerCase()===m.target_id.trim().toLowerCase()&&S.kind===g)&&v.dependencies.push({id:m.target_id,kind:g})}if(!_.has(e.trim().toLowerCase()))throw new h(`Item ${e} not found`,b.NOT_FOUND);if(o==="context"){let m=_.get(e.trim().toLowerCase()).id,v=a?[]:await hh(r,m,c,d.type_to_folder),g=N=>ge(N,f),S=de(),A=hc().lookup(r,_c(l,g,S),()=>dr(l,g,S));return St(Eh({assembly:A.assembly,canonicalId:m,options:t,rootEvidence:v,summaryOnly:a,outputFormat:n.json===!0?"json":"toon"}),a,A.assembly.legacyAliasCounts)}return a?St({id:e,format:o,...md(e,_,i)},!0,Object.fromEntries(Object.entries(dr(l,m=>ge(m,f)).legacyAliasCounts))):St(Ih(e,o,t,_,i,s,n.json===!0?"json":"toon"),!1,Object.fromEntries(Object.entries(dr(l,m=>ge(m,f)).legacyAliasCounts)))}export{si as a,He as b,Mr as c,Th as d,Ch as e,ys as f,Ur as g,jh as h,Mh as i,Fh as j,$h as k,Hh as l,zh as m,Jr as n,Qr as o,Ss as p,Jh as q,Qh as r,Zh as s,ey as t,ty as u,ny as v,no as w,Rs as x,ry as y,oy as z,iy as A,Kd as B,Ns as C,Ls as D,cy as E,Yd as F,Ps as G,Be as H,Ce as I,$s as J,At as K,vy as L,wy as M,ro as N,oo as O,io as P,Rt as Q,js as R,Jd as S,ly as T,vn as U,it as V,ge as W,En as X,Zl as Y,Sn as Z,Tn as _,Zs as $,ne as aa,Su as ba,be as ca,dt as da,Bu as ea,dg as fa,lg as ga,ug as ha,Qu as ia,jn as ja,Ge as ka,Ft as la,Pg as ma,Ao as na,$n as oa,wa as pa,jg as qa,Ia as ra,Mg as sa,ft as ta,mt as ua,ea as va,_t as wa,Hn as xa,Gg as ya,No as za,zn as Aa,Kg as Ba,Xg as Ca,Oa as Da,Xe as Ea,Da as Fa,ve as Ga,Sf as Ha,Yg as Ia,Jg as Ja,ht as Ka,Wn as La,yb as Ma,gb as Na,Fa as Oa,Ha as Pa,bb as Qa,Xv as Ra,De as Sa,hw as Ta,M_ as Ua,yr as Va,hr as Wa,_p as Xa,Kc as Ya,Xc as Za,yw as _a,Ew as $a,gi as ab,Ep as bb,La as cb,$t as db,Ye as eb,ob as fb,Qt as gb,Jc as hb,bi as ib,Qc as jb,$w as kb,Pf as lb,Mf as mb,Ff as nb,$f as ob,Hf as pb,jo as qb,jb as rb,Fp as sb,od as tb,Wb as ub,Bb as vb,Vb as wb,Za as xb,tm as yb,qo as zb,ov as Ab,Go as Bb,or as Cb,Et as Db,ki as Eb,kr as Fb,Ir as Gb,Wp as Hb,Bp as Ib,sd as Jb,WE as Kb,ad as Lb,Gp as Mb,BE as Nb,VE as Ob,qE as Pb,Xo as Qb,Nm as Rb,Gt as Sb,sr as Tb,ac as Ub,Lm as Vb,Pm as Wb,jm as Xb,$m as Yb,Sv as Zb,Tv as _b,Ym as $b,de as ac,gv as bc,cr as cc,bv as dc,Km as ec,vv as fc,Xt as gc,Qm as hc,e_ as ic,ei as jc,t_ as kc,Nv as lc,dr as mc,_c as nc,ti as oc,hc as pc,Fv as qc,yc as rc,It as sc,ud as tc,sh as uc,ah as vc,mk as wc};
166
+ //# sourceMappingURL=chunk-5JEFDEL3.js.map