@unbrained/pm-cli 2026.9.17 → 2026.9.19

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 (157) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/CHANGELOG.md +49 -0
  3. package/dist/cli/invocation-profile.d.ts +26 -0
  4. package/dist/cli/invocation-profile.js +3 -0
  5. package/dist/cli/register-operations.js +1 -1
  6. package/dist/cli-bundle/bundle-manifest.json +149 -149
  7. package/dist/cli-bundle/chunks/{chunk-LD2FH2YE.js → chunk-7CN53F4S.js} +2 -2
  8. package/dist/cli-bundle/chunks/chunk-AACGU5IA.js +3 -0
  9. package/dist/cli-bundle/chunks/{chunk-Q6KPZGMP.js → chunk-CCLWCESZ.js} +2 -2
  10. package/dist/cli-bundle/chunks/{chunk-T526C5DX.js → chunk-J7NP7QLW.js} +2 -2
  11. package/dist/cli-bundle/chunks/{chunk-UF75LUAK.js → chunk-K4VAU4HU.js} +63 -63
  12. package/dist/cli-bundle/chunks/chunk-KHN4NMKT.js +238 -0
  13. package/dist/cli-bundle/chunks/{chunk-YZXB4XGA.js → chunk-KYG2QKNY.js} +29 -29
  14. package/dist/cli-bundle/chunks/{chunk-CPFBDM53.js → chunk-OQS2Y6VN.js} +2 -2
  15. package/dist/cli-bundle/chunks/{chunk-G2IJF244.js → chunk-QA4GUEKJ.js} +20 -20
  16. package/dist/cli-bundle/chunks/chunk-QTHR3LXF.js +20 -0
  17. package/dist/cli-bundle/chunks/{chunk-5ZY4WE3F.js → chunk-RVMDPIGD.js} +2 -2
  18. package/dist/cli-bundle/chunks/chunk-WASMH647.js +8 -0
  19. package/dist/cli-bundle/chunks/{register-list-query-ISM35VIX.js → register-list-query-RMZNHSII.js} +2 -2
  20. package/dist/cli-bundle/chunks/{register-mutation-KHMBJJS6.js → register-mutation-HJGSGX3H.js} +2 -2
  21. package/dist/cli-bundle/chunks/register-operations-LBEMFUMM.js +2 -0
  22. package/dist/cli-bundle/chunks/{register-setup-YAURJMY5.js → register-setup-MU557JAA.js} +2 -2
  23. package/dist/cli-bundle/focused-chunks/{chunk-G4TKJZ4A.js → chunk-5SZ4JSPZ.js} +2 -2
  24. package/dist/cli-bundle/focused-chunks/{chunk-NOK652OP.js → chunk-7Y7PAC56.js} +2 -2
  25. package/dist/cli-bundle/focused-chunks/{chunk-5KYHDFDN.js → chunk-ARK4FIO4.js} +3 -3
  26. package/dist/cli-bundle/focused-chunks/{chunk-LNM3BS45.js → chunk-CJ4QA4RW.js} +2 -2
  27. package/dist/cli-bundle/focused-chunks/chunk-I32L3FWW.js +12 -0
  28. package/dist/cli-bundle/focused-chunks/{chunk-267N774W.js → chunk-I4WDON3K.js} +2 -2
  29. package/dist/cli-bundle/focused-chunks/{chunk-7ZC4CKOX.js → chunk-IKPR4VVN.js} +2 -2
  30. package/dist/cli-bundle/focused-chunks/chunk-J3GN4SQT.js +2 -0
  31. package/dist/cli-bundle/focused-chunks/{chunk-GKSAMNBG.js → chunk-OOZHQFBF.js} +16 -16
  32. package/dist/cli-bundle/focused-chunks/{chunk-JZSLDLR4.js → chunk-P4BA7OX7.js} +27 -26
  33. package/dist/cli-bundle/focused-chunks/chunk-QL4MO5M2.js +30 -0
  34. package/dist/cli-bundle/focused-chunks/chunk-TDHVROGL.js +3 -0
  35. package/dist/cli-bundle/focused-chunks/chunk-V3YMNAO7.js +2 -0
  36. package/dist/cli-bundle/focused-chunks/chunk-YDFEWXXZ.js +59 -0
  37. package/dist/cli-bundle/focused-chunks/{chunk-WUMGGQYN.js → chunk-ZDBKYZFE.js} +2 -2
  38. package/dist/cli-bundle/focused-chunks/{chunk-BFUXTNZU.js → chunk-ZI2YBJFH.js} +2 -2
  39. package/dist/cli-bundle/main.js +2 -2
  40. package/dist/cli-bundle/sdk-authoring.js +1 -1
  41. package/dist/cli-bundle/sdk-contracts.js +2 -2
  42. package/dist/cli-bundle/sdk-core.js +25 -25
  43. package/dist/cli-bundle/sdk-governance.js +1 -1
  44. package/dist/cli-bundle/sdk-graph.js +1 -1
  45. package/dist/cli-bundle/sdk-merge.js +41 -41
  46. package/dist/cli-bundle/sdk-query.js +1 -1
  47. package/dist/cli-bundle/sdk-runtime.js +1 -1
  48. package/dist/cli-bundle/sdk-testing.js +1 -1
  49. package/dist/cli-bundle/sdk.js +8 -8
  50. package/dist/cli.js +1 -1
  51. package/dist/core/checkpoint/mutation-checkpoint.d.ts +1 -1
  52. package/dist/core/checkpoint/mutation-checkpoint.js +2 -2
  53. package/dist/core/config/nested-settings.js +1 -1
  54. package/dist/core/fs/atomic-create.d.ts +7 -0
  55. package/dist/core/fs/atomic-create.js +2 -0
  56. package/dist/core/history/history.js +1 -1
  57. package/dist/core/schema/runtime-schema.d.ts +1 -1
  58. package/dist/core/schema/runtime-schema.js +2 -2
  59. package/dist/core/session/session-state.js +1 -1
  60. package/dist/core/shared/secret-rules.d.ts +110 -0
  61. package/dist/core/shared/secret-rules.js +2 -0
  62. package/dist/core/store/settings-concurrency.d.ts +7 -0
  63. package/dist/core/store/settings-concurrency.js +2 -0
  64. package/dist/core/store/settings.d.ts +8 -1
  65. package/dist/core/store/settings.js +3 -2
  66. package/dist/mcp/server.d.ts +4 -0
  67. package/dist/mcp/server.js +1 -1
  68. package/dist/sdk/cli-contracts/command-aliases.js +1 -1
  69. package/dist/sdk/cli-contracts/flag-contracts.js +1 -1
  70. package/dist/sdk/cli-contracts/runtime-contracts.js +1 -1
  71. package/dist/sdk/cli-program.js +1 -1
  72. package/dist/sdk/context-intent-contracts.js +1 -1
  73. package/dist/sdk/context-relevance.js +1 -1
  74. package/dist/sdk/contracts.d.ts +1 -0
  75. package/dist/sdk/contracts.js +1 -1
  76. package/dist/sdk/extension/install-runtime.d.ts +1 -1
  77. package/dist/sdk/extension/install-runtime.js +2 -2
  78. package/dist/sdk/governance/health.js +1 -1
  79. package/dist/sdk/governance/provenance-health.d.ts +27 -0
  80. package/dist/sdk/governance/provenance-health.js +1 -1
  81. package/dist/sdk/graph/index.d.ts +1 -0
  82. package/dist/sdk/graph/index.js +1 -1
  83. package/dist/sdk/graph/query-contracts.d.ts +18 -0
  84. package/dist/sdk/graph/query-contracts.js +2 -0
  85. package/dist/sdk/graph/run.d.ts +2 -0
  86. package/dist/sdk/graph/run.js +1 -1
  87. package/dist/sdk/graph/traversal.js +1 -1
  88. package/dist/sdk/guide-topics.js +1 -1
  89. package/dist/sdk/lifecycle/event-validation-messages.d.ts +1 -1
  90. package/dist/sdk/lifecycle/event-validation-messages.js +1 -1
  91. package/dist/sdk/lifecycle-policy.js +1 -1
  92. package/dist/sdk/mutation-guard.d.ts +8 -1
  93. package/dist/sdk/mutation-guard.js +1 -1
  94. package/dist/sdk/public-surface.json +1 -1
  95. package/dist/sdk/query/next-ready-budget.d.ts +20 -0
  96. package/dist/sdk/query/next-ready-budget.js +2 -0
  97. package/dist/sdk/query/next.d.ts +7 -2
  98. package/dist/sdk/query/next.js +1 -1
  99. package/dist/sdk/read-output-budget.d.ts +3 -1
  100. package/dist/sdk/read-output-budget.js +1 -1
  101. package/dist/sdk/read-output-contracts.js +1 -1
  102. package/dist/sdk/read-output-session.js +1 -1
  103. package/dist/sdk/test/execution.d.ts +6 -5
  104. package/dist/sdk/test/execution.js +2 -2
  105. package/dist/sdk/test/json-path.d.ts +11 -0
  106. package/dist/sdk/test/json-path.js +2 -0
  107. package/docs/BUILD_AND_RELEASE_ACCEPTANCE.md +66 -0
  108. package/docs/MCP_OPTION_CONFORMANCE.md +41 -0
  109. package/docs/MUTATION_INTEGRITY.md +36 -4
  110. package/docs/NEXT_SELECTION_BUDGETS.md +93 -0
  111. package/docs/OUTPUT_PROJECTION_CONTRACTS.md +18 -2
  112. package/docs/PACKED_FIRST_RUN.md +8 -4
  113. package/docs/PERFORMANCE.md +37 -0
  114. package/docs/README.md +2 -0
  115. package/docs/READ_OUTPUT_CONTRACTS.md +8 -4
  116. package/docs/SDK_AGENT_SESSION_CONTEXT.md +28 -4
  117. package/docs/SDK_LIFECYCLE.md +16 -2
  118. package/docs/WORKSPACE_CONCURRENCY.md +67 -0
  119. package/docs/agent-task-token-baseline.json +7 -7
  120. package/docs/generated/AGENT_CAPABILITY_ROUTING.md +1 -1
  121. package/docs/generated/AGENT_COMMAND_SURFACE.md +3 -0
  122. package/docs/generated/FLAG_LEXICON_BUDGETS.md +3 -0
  123. package/marketplace.json +2 -2
  124. package/package.json +11 -9
  125. package/packages/pm-beads/package.json +1 -1
  126. package/packages/pm-calendar/README.md +43 -2
  127. package/packages/pm-calendar/extensions/calendar/command-definitions.ts +52 -0
  128. package/packages/pm-calendar/extensions/calendar/index.ts +2 -0
  129. package/packages/pm-calendar/extensions/calendar/manifest.json +3 -3
  130. package/packages/pm-calendar/extensions/calendar/shortcuts.ts +15 -0
  131. package/packages/pm-calendar/package.json +1 -1
  132. package/packages/pm-command-kit/package.json +1 -1
  133. package/packages/pm-digital-twin/package.json +1 -1
  134. package/packages/pm-governance-audit/package.json +1 -1
  135. package/packages/pm-guide-shell/package.json +1 -1
  136. package/packages/pm-kanban/package.json +1 -1
  137. package/packages/pm-lifecycle-hooks/package.json +1 -1
  138. package/packages/pm-linked-test-adapters/package.json +1 -1
  139. package/packages/pm-search-advanced/package.json +1 -1
  140. package/packages/pm-templates/package.json +1 -1
  141. package/packages/pm-todos/package.json +1 -1
  142. package/packages/pm-vcs/package.json +1 -1
  143. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  144. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  145. package/scripts/build-lease.mjs +43 -0
  146. package/scripts/build.mjs +40 -0
  147. package/dist/cli-bundle/chunks/chunk-C3MFMGCR.js +0 -20
  148. package/dist/cli-bundle/chunks/chunk-DN2RIHRN.js +0 -3
  149. package/dist/cli-bundle/chunks/chunk-E67MIO3Z.js +0 -8
  150. package/dist/cli-bundle/chunks/chunk-UJSB6NO6.js +0 -237
  151. package/dist/cli-bundle/chunks/register-operations-HHDROJD6.js +0 -2
  152. package/dist/cli-bundle/focused-chunks/chunk-5FSGN4MP.js +0 -12
  153. package/dist/cli-bundle/focused-chunks/chunk-7S7XWMXC.js +0 -2
  154. package/dist/cli-bundle/focused-chunks/chunk-IVWUQE7T.js +0 -59
  155. package/dist/cli-bundle/focused-chunks/chunk-OCTTDZOU.js +0 -3
  156. package/dist/cli-bundle/focused-chunks/chunk-OWDDVMAP.js +0 -2
  157. package/dist/cli-bundle/focused-chunks/chunk-Z4PWEIMX.js +0 -30
@@ -1,16 +1,16 @@
1
- import{b as on,f as It,h as St,i as Tt,k as Si,l as Ti,m as dn,n as Ci,o as Oi,p as xi}from"./chunk-OCTTDZOU.js";import{h as fn}from"./chunk-HFAW3FJQ.js";import{$ as b,$a as de,$c as Sr,A as fi,Aa as sn,Ca as vi,Ee as _e,F as nn,Fa as an,Fe as oe,G as rn,Ga as bi,H as gr,Ic as le,J as mi,Ja as kt,Jc as Er,Ka as br,Kc as ln,La as wr,Lc as ue,Ma as ce,Mc as kr,Nb as Ii,Nc as ve,Oa as wi,Oc as Ir,P as ye,Qd as ji,Rc as Ct,Rd as be,Sb as Ri,Sd as fe,Td as Fi,Ua as Ei,Ud as Qe,V as Ne,Vd as me,W as _i,Wb as Ai,Xb as Di,Xc as Ot,Yd as $i,Z as k,Zc as Ni,Zd as Hi,_ as Ye,_d as Q,aa as v,bd as Li,cd as Pi,eb as ki,gd as Mi,i as Qt,ia as pi,ja as Le,ka as vr,la as te,ma as ge,na as K,oa as hi,pb as L,q as Zt,qb as Je,r as ci,rb as cn,s as di,sb as T,t as li,ta as yi,td as un,u as ui,ua as gi,ve as Tr,we as Cr,y as en,z as tn}from"./chunk-Z4PWEIMX.js";import{AsyncLocalStorage as Pc}from"node:async_hooks";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="27a9b88e-ee47-55c8-b511-07ce9754346c")}catch{}})();var Or=new Pc,zi=/^[A-Za-z0-9](?:[A-Za-z0-9._:-]{0,127})$/u;function mn(e,t){let n=typeof e=="string"?e.trim():"";return n.length>0?n.slice(0,t):void 0}function Pe(e,t){if(e===void 0)return;let n=typeof e=="object"&&e!==null?e:{},r=mn(n.id,128),o=mn(n.parent_id,128);if(r===void 0||!zi.test(r)||o!==void 0&&!zi.test(o)){if(t)throw new Error("Agent episode ids must be 1-128 letters, digits, dots, underscores, colons, or hyphens.");return}let i=mn(n.label,256);return{id:r,...i===void 0?{}:{label:i},...o===void 0?{}:{parent_id:o}}}function Ze(e){let t={};for(let[n,r]of Object.entries(e??{}).slice(0,32)){let o=n.trim().toLowerCase().slice(0,64),i=mn(r,256);/^[a-z][a-z0-9_-]{0,63}$/u.test(o)&&i!==void 0&&(t[o]=i)}return t}function Mc(e,t,n){let r=Or.getStore(),o=Ze({role:t.PM_AGENT_SESSION_ROLE,topic:t.PM_AGENT_SESSION_TOPIC}),i=Pe(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={...Ze(r?.provenance),...o,...Ze(e?.provenance)},a=Pe(e?.episode,!1)??Pe(n,!1)??i??Pe(r?.episode,!1);return Object.keys(s).length===0&&a===void 0?void 0:{...Object.keys(s).length===0?{}:{provenance:s},...a===void 0?{}:{episode:a}}}function xr(e,t){return Mc(e.session_context,t,e.client_info?.episode)??{}}function Lp(e,t){let n=Or.getStore(),r=Pe(e.episode,!0),o=Pe(n?.episode,!1),i=r!==void 0&&r.parent_id===void 0&&o!==void 0?{...r,parent_id:o.id}:r,s={...Ze(n?.provenance),...Ze(e.provenance)};return Or.run({...Object.keys(s).length===0?{}:{provenance:s},...i===void 0?o===void 0?{}:{episode:o}:{episode:i}},t)}function Pp(e){let t=Ze(e.provenance),n=Pe(e.episode,!0);return{...n===void 0?{}:{PM_AGENT_EPISODE_ID:n.id,...n.label===void 0?{}:{PM_AGENT_EPISODE_LABEL:n.label},...n.parent_id===void 0?{}:{PM_AGENT_EPISODE_PARENT_ID:n.parent_id}},...t.role===void 0?{}:{PM_AGENT_SESSION_ROLE:t.role},...t.topic===void 0?{}:{PM_AGENT_SESSION_TOPIC:t.topic}}}import{AsyncLocalStorage as Ur}from"node:async_hooks";import{createHash as zc}from"node:crypto";import V from"node:fs";import Xi from"node:os";import Fe from"node:path";import{createHash as Ui}from"node:crypto";import{existsSync as Rr,promises as Bi,readFileSync as jc}from"node:fs";import ie 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]="9cefffc1-c3d6-5c4a-980f-d9d3eaef0f58")}catch{}})();var Fc="session.json";function Ar(e,t){return typeof e=="string"&&e.length>0&&e.length<=t}function Wi(e){if(e===null||typeof e!="object"||Array.isArray(e))return;let t=e,n=["implementer","planner","release-operator"].includes(String(t.role)),r=["high","medium"].includes(String(t.confidence)),o=Ar(t.topic,256),i=Array.isArray(t.evidence)&&t.evidence.length<=32&&t.evidence.every(c=>typeof c=="string"&&c.length<=128),s=Array.isArray(t.active_item_ids)&&t.active_item_ids.length<=64&&t.active_item_ids.every(c=>Ar(c,128)),a=t.focused_item_id===void 0||Ar(t.focused_item_id,128);if([n,r,o,i,s,a,t.rule_version==="v2"].every(Boolean))return t}function $c(e){if(e===null||typeof e!="object"||Array.isArray(e))return;let t=Object.entries(e).slice(0,128).flatMap(([n,r])=>{let o=Wi(r);return o&&n.length<=128?[[n,o]]:[]});return t.length>0?Object.fromEntries(t):void 0}function Dr(e){return ie.join(wi(e),Fc)}async function _n(e){try{let t=await Bi.readFile(Dr(e),"utf8"),n=JSON.parse(t);if(n===null||typeof n!="object"||Array.isArray(n))return{};let r=n,o=r.focused_item,i=$c(r.semantic_attribution);return typeof o=="string"&&o.trim().length>0?{focused_item:o,...i?{semantic_attribution:i}:{}}:i?{semantic_attribution:i}:{}}catch{return{}}}async function Nr(e,t){let n=Dr(e);await Bi.mkdir(ie.dirname(n),{recursive:!0}),await K(n,JSON.stringify(t))}function Lr(e){return/#([a-f0-9]{24})$/u.exec(e.trim())?.[1]??`author-${Ui("sha256").update(e).digest("hex").slice(0,24)}`}function Pr(e){return[...new Set(e.map(t=>t.trim()).filter(Boolean))].slice(0,32).map(t=>t.slice(0,128))}function Mr(e){let t=[...new Set(e)].sort((o,i)=>o.localeCompare(i));if(t.length===1)return t[0];let n=`workset:${t.join("+")}`;return n.length<=256?n:`workset:${t.join("+").slice(0,230)}+${Ui("sha256").update(t.join("\0")).digest("hex").slice(0,12)}`}async function jr(e,t,n){let r=await _n(e),o={...r.semantic_attribution},i=n(o[t]);i===void 0?delete o[t]:o[t]=i;let s={...r};Object.keys(o).length===0?delete s.semantic_attribution:s.semantic_attribution=o,await Nr(e,s)}async function Up(e){let t=Lr(e.principal);await jr(e.pmRoot,t,n=>{let r=[...new Set([...n?.active_item_ids??[],e.itemId])].slice(-64).sort((i,s)=>i.localeCompare(s)),o=n?.focused_item_id;return{role:"implementer",topic:o??Mr(r),confidence:o?"high":"medium",rule_version:"v2",evidence:Pr([...r.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],...(e.lineageIds??[]).map(i=>`lineage:${i}`)]),active_item_ids:r,...o?{focused_item_id:o}:{}}})}async function Bp(e){let t=Lr(e.principal);await jr(e.pmRoot,t,n=>{if(!n)return;let r=n.active_item_ids.filter(i=>i!==e.itemId);if(r.length===0&&!n.focused_item_id)return;let o=n.focused_item_id;return{...n,role:"release-operator",topic:o??Mr(r),confidence:o?"high":"medium",evidence:Pr([...r.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],`release:${e.itemId}`]),active_item_ids:r}})}async function Wp(e){let t=Lr(e.principal);await jr(e.pmRoot,t,n=>{let r=n?.active_item_ids??[];if(!e.itemId&&r.length===0)return;let o=e.itemId;return{role:o?"planner":n.role,topic:o??Mr(r),confidence:o?"high":"medium",rule_version:"v2",evidence:Pr([...r.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],...(e.lineageIds??[]).map(i=>`lineage:${i}`)]),active_item_ids:r,...o?{focused_item_id:o}:{}}})}function Hc(e,t){let n=t.PM_PATH?.trim();if(n){let o=ie.resolve(e,n);if(Rr(ie.join(o,"settings.json")))return o;let i=ie.join(o,".agents","pm");if(Rr(ie.join(i,"settings.json")))return i}let r=ie.resolve(e);for(let o=0;o<32;o+=1){let i=ie.join(r,".agents","pm");if(Rr(ie.join(i,"settings.json")))return i;let s=ie.dirname(r);if(s===r)break;r=s}}function Vi(e){if(!e.key)return;let t=Hc(e.cwd,e.env);if(t)try{let n=JSON.parse(jc(Dr(t),"utf8"));return Wi(n.semantic_attribution?.[e.key])}catch{return}}async function Vp(e){return(await _n(e)).focused_item}async function qp(e,t){let n=await _n(e);await Nr(e,{...n,focused_item:t})}async function Gp(e){let n={...await _n(e)};delete n.focused_item,await Nr(e,n)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="c39d3d14-b0b5-5309-b89a-9da08e1a939a")}catch{}})();var Br=["model","effort","role","topic","version"],yn=new Ur,Yi=new Ur,gn=new Ur,Wr=[{harness:"claude-code",environment_keys:["CLAUDE_CODE","CLAUDECODE"],model_environment_keys:["ANTHROPIC_MODEL","CLAUDE_MODEL"],session_environment_keys:["CLAUDE_CODE_SESSION_ID"],provenance_environment_keys:{effort:["CLAUDE_EFFORT"]},provenance_resolvers:{model:"claude_session_file",version:"claude_session_file"},provenance_unavailable_dimensions:["role","topic"],argv_markers:["claude","claude-code"],client_names:["claude","claude-code","claude code"]},{harness:"codex",environment_keys:["CODEX_HOME","CODEX_CI","CODEX_THREAD_ID"],model_environment_keys:["CODEX_MODEL"],session_environment_keys:["CODEX_THREAD_ID"],provenance_environment_keys:{effort:["CODEX_REASONING_EFFORT","CODEX_EFFORT"],role:["CODEX_SESSION_ROLE"]},provenance_resolvers:{model:"codex_session_file",effort:"codex_session_file",version:"ai_agent_version"},provenance_unavailable_dimensions:["topic"],argv_markers:["codex"],client_names:["codex"]},{harness:"pi",environment_keys:["PI_AGENT","PI_CODING_AGENT"],model_environment_keys:["PI_MODEL"],session_environment_keys:["PI_SESSION_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["pi"],client_names:["pi"]},{harness:"opencode",environment_keys:["OPENCODE","OPENCODE_SESSION_ID"],model_environment_keys:["OPENCODE_MODEL"],session_environment_keys:["OPENCODE_SESSION_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["opencode"],client_names:["opencode"]},{harness:"cursor",environment_keys:["CURSOR_AGENT","CURSOR_TRACE_ID"],model_environment_keys:["CURSOR_MODEL"],session_environment_keys:["CURSOR_TRACE_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["cursor"],client_names:["cursor"]},{harness:"aider",environment_keys:["AIDER","AIDER_MODEL"],model_environment_keys:["AIDER_MODEL"],session_environment_keys:["AIDER_SESSION_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["aider"],client_names:["aider"]},{harness:"gemini-cli",environment_keys:["GEMINI_CLI","GEMINI_CLI_HOME"],model_environment_keys:["GEMINI_MODEL"],session_environment_keys:["GEMINI_CLI_SESSION_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["gemini","gemini-cli"],client_names:["gemini","gemini-cli","gemini cli"]},{harness:"ci",environment_keys:["CI","GITHUB_ACTIONS","BUILDKITE","GITLAB_CI"],provenance_unavailable_dimensions:["model","effort","role","topic"],argv_markers:[],client_names:[]}],Ji=Object.freeze({max_bytes:1048576,max_lines:4096,network_access:!1,subprocess_access:!1}),Uc=Object.freeze({...Ji,max_bytes:4194304}),Fr=/^[a-z0-9]+(?:-[a-z0-9]+)*$/u;function Bc(e){let t=Ee(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"?Uc:Ji,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 Qi=Object.freeze(Wr.filter(e=>e.harness!=="ci").map(Bc).sort((e,t)=>e.harness.localeCompare(t.harness))),je=new Map,et=new Map;function P(e){let t=typeof e=="string"?e.trim():void 0;return t&&t.length>0?t:void 0}function we(e){return[...new Set((e??[]).slice(0,64).map(t=>t.trim()).filter(t=>t.length>0).map(t=>t.slice(0,128)))]}function Ee(e){let t=e.harness.trim().toLowerCase();if(!Fr.test(t))throw new Error(`Invalid harness signal descriptor namespace: ${e.harness}`);return{harness:t,environment_keys:we(e.environment_keys),model_environment_keys:we(e.model_environment_keys),session_environment_keys:we(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),we(r)]).filter(([n])=>Fr.test(n))),provenance_resolvers:Object.fromEntries(Object.entries(e.provenance_resolvers??{}).slice(0,32).map(([n,r])=>[n.trim().toLowerCase().slice(0,64),r]).filter(n=>typeof n[0]=="string"&&Fr.test(n[0])&&(n[1]==="ai_agent_version"||n[1]==="claude_session_file"||n[1]==="codex_session_file"))),provenance_unavailable_dimensions:we(e.provenance_unavailable_dimensions).map(n=>n.toLowerCase()),argv_markers:we(e.argv_markers).map(n=>n.toLowerCase()),client_names:we(e.client_names).map(n=>n.toLowerCase())}}var Zi=Wr.map(Ee);function Wc(e,t){return JSON.stringify(e)===JSON.stringify(t)}function hn(e,t){return e.toLowerCase().slice(0,512).split(/[/\\\s:=]+/u).filter(r=>r.length>0).includes(t)||e.trim().toLowerCase()===t}function Vr(e=[]){let t=new Map(Wr.filter(o=>o.harness!=="ci").map(o=>[o.harness,Ee(o)]));for(let{adapter:o}of je.values())t.set(o.harness,Ee(o.descriptor));let n=[...t.values(),...Zi.filter(o=>o.harness==="ci"),...[...et.values()].map(o=>o.descriptor),...gn.getStore()?.descriptors??[],...e.map(Ee)],r=new Set;for(let o of n){if(r.has(o.harness))throw new Error(`Harness signal descriptor collision for "${o.harness}"`);r.add(o.harness)}return n}function qr(e,t){for(let n of t??[]){let r=P(e[n]);if(r)return r.slice(0,256)}}function Vc(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 es(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 qc=new Set(["implementation","implementer","investigator","orchestrator","planner","release-operator","reviewer"]);function Me(e,t){if(e!=="role"||t===void 0)return t;let n=t.trim().toLowerCase().replaceAll(/[_\s]+/gu,"-");return qc.has(n)?n:void 0}function $r(e,t){return P(e?.[t])?.slice(0,256)}var Gc=1048576,zr=4194304,pn=new Map,qi=Object.freeze({}),Hr=new Map,Gi=Object.freeze({});function Ki(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:void 0}function Kc(e){let t;try{t=JSON.parse(e)}catch{return Gi}let n=Ki(t);if(!n)return Gi;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=Ki(c);d&&r.push({value:d,depth:a.depth+1})}}return Object.freeze({model:i,version:s})}function ts(e){try{return V.lstatSync(e).isFile()?"available":"missing"}catch(t){return vr(t)?"missing":"failed"}}function Xc(e,t){let n;try{n=V.readdirSync(e,{withFileTypes:!0}).filter(o=>o.isDirectory()).sort((o,i)=>o.name.localeCompare(i.name)).slice(0,512).map(o=>{let i=Fe.join(e,o.name,`${t}.jsonl`);return{candidate:i,status:ts(i)}})}catch(o){return{status:vr(o)?"missing":"failed"}}let r=n.filter(({status:o})=>o==="available").map(({candidate:o})=>o);return r.length===0?{status:n.some(({status:o})=>o==="failed")?"failed":"missing"}:r.length>1?{status:"ambiguous"}:{status:"available",path:r[0]}}function ns(e,t){let n=P(t.CLAUDE_CODE_SESSION_ID);if(!n||!/^[A-Za-z0-9_-]{1,128}$/u.test(n))return{status:"unavailable"};let o=Fe.resolve(e.cwd??process.cwd()).replaceAll(/[^A-Za-z0-9-]/gu,"-"),i=Fe.join(e.home_dir??Xi.homedir(),".claude","projects"),s=Fe.join(i,o,`${n}.jsonl`),a=P(e.session_file),c=a&&Fe.basename(a)===`${n}.jsonl`?a:void 0;for(let d of[c,s]){if(!d)continue;let u=ts(d);if(u==="available")return{status:u,path:d};if(u==="failed")return{status:u}}return Xc(i,n)}function Yc(e,t,n){let r=ns(t,n);if(r.status==="available")try{let o=V.openSync(r.path,V.constants.O_RDONLY|V.constants.O_NOFOLLOW);try{let i=V.fstatSync(o),s=`${r.path}\0${i.size}\0${i.mtimeMs}`,a=Hr.get(s);if(a)return a[e];let c=Math.min(i.size,Gc),d=Math.min(c,Math.ceil(c/2)),u=Math.min(c-d,i.size-d),f=Buffer.alloc(d);V.readSync(o,f,0,d,0);let m=Buffer.alloc(u);u>0&&V.readSync(o,m,0,u,i.size-u);let p={},_=i.size<=c?Buffer.concat([f,m]).toString("utf8").split(`
1
+ import{b as on,g as It,i as St,j as Tt,l as Oi,m as xi,n as dn,o as Ri,p as Ai,q as Di}from"./chunk-TDHVROGL.js";import{h as fn}from"./chunk-HFAW3FJQ.js";import{$ as b,$a as le,$d as V,A as pi,Aa as sn,Ca as Ei,F as nn,Fa as an,G as rn,Ga as ki,Ge as pe,H as gr,He as ie,J as hi,Ja as kt,Jc as ue,Ka as br,Kc as Er,La as wr,Lc as ln,Ma as de,Mc as fe,Nc as kr,Oa as Ii,Ob as Ci,Oc as be,P as ge,Pc as Ir,Rd as Hi,Sc as Ct,Sd as we,Tb as Ni,Td as me,Ua as Si,Ud as zi,V as Le,Vd as Qe,W as yi,Wd as _e,Xb as Li,Yb as Pi,Yc as Ot,Z as k,Zd as Ui,_ as Je,_c as Mi,_d as Bi,aa as v,ad as Sr,cd as ji,dd as Fi,eb as Ti,hd as $i,i as Qt,ia as gi,ja as Pe,ka as vr,la as te,ma as ve,na as X,oa as vi,pb as L,q as Zt,qb as oe,r as ui,rb as cn,s as fi,sb as T,t as mi,ta as bi,u as _i,ua as wi,ud as un,we as Tr,xe as Cr,y as en,z as tn}from"./chunk-QL4MO5M2.js";import{AsyncLocalStorage as jc}from"node:async_hooks";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="27a9b88e-ee47-55c8-b511-07ce9754346c")}catch{}})();var Or=new jc,Wi=/^[A-Za-z0-9](?:[A-Za-z0-9._:-]{0,127})$/u;function mn(e,t){let n=typeof e=="string"?e.trim():"";return n.length>0?n.slice(0,t):void 0}function Me(e,t){if(e===void 0)return;let n=typeof e=="object"&&e!==null?e:{},r=mn(n.id,128),o=mn(n.parent_id,128);if(r===void 0||!Wi.test(r)||o!==void 0&&!Wi.test(o)){if(t)throw new Error("Agent episode ids must be 1-128 letters, digits, dots, underscores, colons, or hyphens.");return}let i=mn(n.label,256);return{id:r,...i===void 0?{}:{label:i},...o===void 0?{}:{parent_id:o}}}function Ze(e){let t={};for(let[n,r]of Object.entries(e??{}).slice(0,32)){let o=n.trim().toLowerCase().slice(0,64),i=mn(r,256);/^[a-z][a-z0-9_-]{0,63}$/u.test(o)&&i!==void 0&&(t[o]=i)}return t}function Fc(e,t,n){let r=Or.getStore(),o=Ze({role:t.PM_AGENT_SESSION_ROLE,topic:t.PM_AGENT_SESSION_TOPIC}),i=Me(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={...Ze(r?.provenance),...o,...Ze(e?.provenance)},a=Me(e?.episode,!1)??Me(n,!1)??i??Me(r?.episode,!1);return Object.keys(s).length===0&&a===void 0?void 0:{...Object.keys(s).length===0?{}:{provenance:s},...a===void 0?{}:{episode:a}}}function xr(e,t){return Fc(e.session_context,t,e.client_info?.episode)??{}}function Mp(e,t){let n=Or.getStore(),r=Me(e.episode,!0),o=Me(n?.episode,!1),i=r!==void 0&&r.parent_id===void 0&&o!==void 0?{...r,parent_id:o.id}:r,s={...Ze(n?.provenance),...Ze(e.provenance)};return Or.run({...Object.keys(s).length===0?{}:{provenance:s},...i===void 0?o===void 0?{}:{episode:o}:{episode:i}},t)}function jp(e){let t=Ze(e.provenance),n=Me(e.episode,!0);return{...n===void 0?{}:{PM_AGENT_EPISODE_ID:n.id,...n.label===void 0?{}:{PM_AGENT_EPISODE_LABEL:n.label},...n.parent_id===void 0?{}:{PM_AGENT_EPISODE_PARENT_ID:n.parent_id}},...t.role===void 0?{}:{PM_AGENT_SESSION_ROLE:t.role},...t.topic===void 0?{}:{PM_AGENT_SESSION_TOPIC:t.topic}}}import{AsyncLocalStorage as Ur}from"node:async_hooks";import{createHash as Bc}from"node:crypto";import q from"node:fs";import Zi from"node:os";import $e from"node:path";import{createHash as Vi}from"node:crypto";import{existsSync as Rr,promises as qi,readFileSync as $c}from"node:fs";import se from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="8192f2f3-b5a0-510e-a7d4-963041cce389")}catch{}})();var Hc="session.json";function Ar(e,t){return typeof e=="string"&&e.length>0&&e.length<=t}function Gi(e){if(e===null||typeof e!="object"||Array.isArray(e))return;let t=e,n=["implementer","planner","release-operator"].includes(String(t.role)),r=["high","medium"].includes(String(t.confidence)),o=Ar(t.topic,256),i=Array.isArray(t.evidence)&&t.evidence.length<=32&&t.evidence.every(c=>typeof c=="string"&&c.length<=128),s=Array.isArray(t.active_item_ids)&&t.active_item_ids.length<=64&&t.active_item_ids.every(c=>Ar(c,128)),a=t.focused_item_id===void 0||Ar(t.focused_item_id,128);if([n,r,o,i,s,a,t.rule_version==="v2"].every(Boolean))return t}function zc(e){if(e===null||typeof e!="object"||Array.isArray(e))return;let t=Object.entries(e).slice(0,128).flatMap(([n,r])=>{let o=Gi(r);return o&&n.length<=128?[[n,o]]:[]});return t.length>0?Object.fromEntries(t):void 0}function Dr(e){return se.join(Ii(e),Hc)}async function Ki(e){try{let t=await qi.readFile(Dr(e),"utf8"),n=JSON.parse(t);if(n===null||typeof n!="object"||Array.isArray(n))return{};let r=n,o=r.focused_item,i=zc(r.semantic_attribution);return typeof o=="string"&&o.trim().length>0?{focused_item:o,...i?{semantic_attribution:i}:{}}:i?{semantic_attribution:i}:{}}catch{return{}}}async function Nr(e,t){let n=await V(e,"session-state",k.locks.ttl_seconds,"session-state",!1,!0,k.locks.wait_ms);try{let r=await Ki(e);t(r);let o=Dr(e);await qi.mkdir(se.dirname(o),{recursive:!0}),await X(o,JSON.stringify(r))}finally{await n()}}function Lr(e){return/#([a-f0-9]{24})$/u.exec(e.trim())?.[1]??`author-${Vi("sha256").update(e).digest("hex").slice(0,24)}`}function Pr(e){return[...new Set(e.map(t=>t.trim()).filter(Boolean))].slice(0,32).map(t=>t.slice(0,128))}function Mr(e){let t=[...new Set(e)].sort((o,i)=>o.localeCompare(i));if(t.length===1)return t[0];let n=`workset:${t.join("+")}`;return n.length<=256?n:`workset:${t.join("+").slice(0,230)}+${Vi("sha256").update(t.join("\0")).digest("hex").slice(0,12)}`}async function jr(e,t,n){await Nr(e,r=>{let o={...r.semantic_attribution},i=n(o[t]);i===void 0?delete o[t]:o[t]=i,Object.keys(o).length===0?delete r.semantic_attribution:r.semantic_attribution=o})}async function qp(e){let t=Lr(e.principal);await jr(e.pmRoot,t,n=>{let r=[...new Set([...n?.active_item_ids??[],e.itemId])].slice(-64).sort((i,s)=>i.localeCompare(s)),o=n?.focused_item_id;return{role:"implementer",topic:o??Mr(r),confidence:o?"high":"medium",rule_version:"v2",evidence:Pr([...r.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],...(e.lineageIds??[]).map(i=>`lineage:${i}`)]),active_item_ids:r,...o?{focused_item_id:o}:{}}})}async function Gp(e){let t=Lr(e.principal);await jr(e.pmRoot,t,n=>{if(!n)return;let r=n.active_item_ids.filter(i=>i!==e.itemId);if(r.length===0&&!n.focused_item_id)return;let o=n.focused_item_id;return{...n,role:"release-operator",topic:o??Mr(r),confidence:o?"high":"medium",evidence:Pr([...r.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],`release:${e.itemId}`]),active_item_ids:r}})}async function Kp(e){let t=Lr(e.principal);await jr(e.pmRoot,t,n=>{let r=n?.active_item_ids??[];if(!e.itemId&&r.length===0)return;let o=e.itemId;return{role:o?"planner":n.role,topic:o??Mr(r),confidence:o?"high":"medium",rule_version:"v2",evidence:Pr([...r.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],...(e.lineageIds??[]).map(i=>`lineage:${i}`)]),active_item_ids:r,...o?{focused_item_id:o}:{}}})}function Uc(e,t){let n=t.PM_PATH?.trim();if(n){let o=se.resolve(e,n);if(Rr(se.join(o,"settings.json")))return o;let i=se.join(o,".agents","pm");if(Rr(se.join(i,"settings.json")))return i}let r=se.resolve(e);for(let o=0;o<32;o+=1){let i=se.join(r,".agents","pm");if(Rr(se.join(i,"settings.json")))return i;let s=se.dirname(r);if(s===r)break;r=s}}function Xi(e){if(!e.key)return;let t=Uc(e.cwd,e.env);if(t)try{let n=JSON.parse($c(Dr(t),"utf8"));return Gi(n.semantic_attribution?.[e.key])}catch{return}}async function Xp(e){return(await Ki(e)).focused_item}async function Yp(e,t){await Nr(e,n=>{n.focused_item=t})}async function Jp(e){await Nr(e,t=>{delete t.focused_item})}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="c39d3d14-b0b5-5309-b89a-9da08e1a939a")}catch{}})();var Br=["model","effort","role","topic","version"],hn=new Ur,es=new Ur,yn=new Ur,Wr=[{harness:"claude-code",environment_keys:["CLAUDE_CODE","CLAUDECODE"],model_environment_keys:["ANTHROPIC_MODEL","CLAUDE_MODEL"],session_environment_keys:["CLAUDE_CODE_SESSION_ID"],provenance_environment_keys:{effort:["CLAUDE_EFFORT"]},provenance_resolvers:{model:"claude_session_file",version:"claude_session_file"},provenance_unavailable_dimensions:["role","topic"],argv_markers:["claude","claude-code"],client_names:["claude","claude-code","claude code"]},{harness:"codex",environment_keys:["CODEX_HOME","CODEX_CI","CODEX_THREAD_ID"],model_environment_keys:["CODEX_MODEL"],session_environment_keys:["CODEX_THREAD_ID"],provenance_environment_keys:{effort:["CODEX_REASONING_EFFORT","CODEX_EFFORT"],role:["CODEX_SESSION_ROLE"]},provenance_resolvers:{model:"codex_session_file",effort:"codex_session_file",version:"ai_agent_version"},provenance_unavailable_dimensions:["topic"],argv_markers:["codex"],client_names:["codex"]},{harness:"pi",environment_keys:["PI_AGENT","PI_CODING_AGENT"],model_environment_keys:["PI_MODEL"],session_environment_keys:["PI_SESSION_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["pi"],client_names:["pi"]},{harness:"opencode",environment_keys:["OPENCODE","OPENCODE_SESSION_ID"],model_environment_keys:["OPENCODE_MODEL"],session_environment_keys:["OPENCODE_SESSION_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["opencode"],client_names:["opencode"]},{harness:"cursor",environment_keys:["CURSOR_AGENT","CURSOR_TRACE_ID"],model_environment_keys:["CURSOR_MODEL"],session_environment_keys:["CURSOR_TRACE_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["cursor"],client_names:["cursor"]},{harness:"aider",environment_keys:["AIDER","AIDER_MODEL"],model_environment_keys:["AIDER_MODEL"],session_environment_keys:["AIDER_SESSION_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["aider"],client_names:["aider"]},{harness:"gemini-cli",environment_keys:["GEMINI_CLI","GEMINI_CLI_HOME"],model_environment_keys:["GEMINI_MODEL"],session_environment_keys:["GEMINI_CLI_SESSION_ID"],provenance_unavailable_dimensions:["effort","role","topic"],argv_markers:["gemini","gemini-cli"],client_names:["gemini","gemini-cli","gemini cli"]},{harness:"ci",environment_keys:["CI","GITHUB_ACTIONS","BUILDKITE","GITLAB_CI"],provenance_unavailable_dimensions:["model","effort","role","topic"],argv_markers:[],client_names:[]}],ts=Object.freeze({max_bytes:1048576,max_lines:4096,network_access:!1,subprocess_access:!1}),Wc=Object.freeze({...ts,max_bytes:4194304}),Fr=/^[a-z0-9]+(?:-[a-z0-9]+)*$/u;function Vc(e){let t=ke(e).provenance_unavailable_dimensions,n=new Set(["model","version",...Object.keys(e.provenance_environment_keys??{}),...Object.keys(e.provenance_resolvers??{})]);return Object.freeze({contract_version:1,adapter_version:"v1",priority:0,harness:e.harness,descriptor:e,supported_dimensions:Object.freeze([...n].sort()),native_sources:Object.freeze(["environment","argv","mcp_client",...Object.values(e.provenance_resolvers??{}).some(r=>r?.endsWith("session_file"))?["session_file"]:[]]),probe_policy:e.harness==="codex"?Wc:ts,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 ns=Object.freeze(Wr.filter(e=>e.harness!=="ci").map(Vc).sort((e,t)=>e.harness.localeCompare(t.harness))),Fe=new Map,et=new Map;function P(e){let t=typeof e=="string"?e.trim():void 0;return t&&t.length>0?t:void 0}function Ee(e){return[...new Set((e??[]).slice(0,64).map(t=>t.trim()).filter(t=>t.length>0).map(t=>t.slice(0,128)))]}function ke(e){let t=e.harness.trim().toLowerCase();if(!Fr.test(t))throw new Error(`Invalid harness signal descriptor namespace: ${e.harness}`);return{harness:t,environment_keys:Ee(e.environment_keys),model_environment_keys:Ee(e.model_environment_keys),session_environment_keys:Ee(e.session_environment_keys),provenance_environment_keys:Object.fromEntries(Object.entries(e.provenance_environment_keys??{}).slice(0,32).map(([n,r])=>[n.trim().toLowerCase().slice(0,64),Ee(r)]).filter(([n])=>Fr.test(n))),provenance_resolvers:Object.fromEntries(Object.entries(e.provenance_resolvers??{}).slice(0,32).map(([n,r])=>[n.trim().toLowerCase().slice(0,64),r]).filter(n=>typeof n[0]=="string"&&Fr.test(n[0])&&(n[1]==="ai_agent_version"||n[1]==="claude_session_file"||n[1]==="codex_session_file"))),provenance_unavailable_dimensions:Ee(e.provenance_unavailable_dimensions).map(n=>n.toLowerCase()),argv_markers:Ee(e.argv_markers).map(n=>n.toLowerCase()),client_names:Ee(e.client_names).map(n=>n.toLowerCase())}}var rs=Wr.map(ke);function qc(e,t){return JSON.stringify(e)===JSON.stringify(t)}function pn(e,t){return e.toLowerCase().slice(0,512).split(/[/\\\s:=]+/u).filter(r=>r.length>0).includes(t)||e.trim().toLowerCase()===t}function Vr(e=[]){let t=new Map(Wr.filter(o=>o.harness!=="ci").map(o=>[o.harness,ke(o)]));for(let{adapter:o}of Fe.values())t.set(o.harness,ke(o.descriptor));let n=[...t.values(),...rs.filter(o=>o.harness==="ci"),...[...et.values()].map(o=>o.descriptor),...yn.getStore()?.descriptors??[],...e.map(ke)],r=new Set;for(let o of n){if(r.has(o.harness))throw new Error(`Harness signal descriptor collision for "${o.harness}"`);r.add(o.harness)}return n}function qr(e,t){for(let n of t??[]){let r=P(e[n]);if(r)return r.slice(0,256)}}function Gc(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 os(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 Kc=new Set(["implementation","implementer","investigator","orchestrator","planner","release-operator","reviewer"]);function je(e,t){if(e!=="role"||t===void 0)return t;let n=t.trim().toLowerCase().replaceAll(/[_\s]+/gu,"-");return Kc.has(n)?n:void 0}function $r(e,t){return P(e?.[t])?.slice(0,256)}var Xc=1048576,zr=4194304,_n=new Map,Yi=Object.freeze({}),Hr=new Map,Ji=Object.freeze({});function Qi(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:void 0}function Yc(e){let t;try{t=JSON.parse(e)}catch{return Ji}let n=Qi(t);if(!n)return Ji;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=Qi(c);d&&r.push({value:d,depth:a.depth+1})}}return Object.freeze({model:i,version:s})}function is(e){try{return q.lstatSync(e).isFile()?"available":"missing"}catch(t){return vr(t)?"missing":"failed"}}function Jc(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=$e.join(e,o.name,`${t}.jsonl`);return{candidate:i,status:is(i)}})}catch(o){return{status:vr(o)?"missing":"failed"}}let r=n.filter(({status:o})=>o==="available").map(({candidate:o})=>o);return r.length===0?{status:n.some(({status:o})=>o==="failed")?"failed":"missing"}:r.length>1?{status:"ambiguous"}:{status:"available",path:r[0]}}function ss(e,t){let n=P(t.CLAUDE_CODE_SESSION_ID);if(!n||!/^[A-Za-z0-9_-]{1,128}$/u.test(n))return{status:"unavailable"};let o=$e.resolve(e.cwd??process.cwd()).replaceAll(/[^A-Za-z0-9-]/gu,"-"),i=$e.join(e.home_dir??Zi.homedir(),".claude","projects"),s=$e.join(i,o,`${n}.jsonl`),a=P(e.session_file),c=a&&$e.basename(a)===`${n}.jsonl`?a:void 0;for(let d of[c,s]){if(!d)continue;let u=is(d);if(u==="available")return{status:u,path:d};if(u==="failed")return{status:u}}return Jc(i,n)}function Qc(e,t,n){let r=ss(t,n);if(r.status==="available")try{let o=q.openSync(r.path,q.constants.O_RDONLY|q.constants.O_NOFOLLOW);try{let i=q.fstatSync(o),s=`${r.path}\0${i.size}\0${i.mtimeMs}`,a=Hr.get(s);if(a)return a[e];let c=Math.min(i.size,Xc),d=Math.min(c,Math.ceil(c/2)),u=Math.min(c-d,i.size-d),f=Buffer.alloc(d);q.readSync(o,f,0,d,0);let m=Buffer.alloc(u);u>0&&q.readSync(o,m,0,u,i.size-u);let p={},_=i.size<=c?Buffer.concat([f,m]).toString("utf8").split(`
2
2
  `):[...f.toString("utf8").split(`
3
3
  `).slice(0,4096),...m.toString("utf8").split(`
4
- `).slice(-4096)];for(let g of _){if(g.length===0||g.length>262144)continue;let S=Kc(g);if(p.model??=S.model,p.version??=S.version,p.model&&p.version)break}let y=Object.freeze(p);return Hr.clear(),Hr.set(s,y),y[e]}finally{V.closeSync(o)}}catch{return}}function Jc(e,t){let n=0,r=(o,i)=>{if(i>4||n>=512)return;let s;try{s=V.readdirSync(o,{withFileTypes:!0}).sort((a,c)=>c.name.localeCompare(a.name))}catch{return}for(let a of s){if(n+=1,n>512)return;let c=Fe.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 Qc(e){if(e<=zr)return[{offset:0,length:e}];let t=Math.floor(zr/2);return[{offset:e-t,length:t},{offset:0,length:t}]}function Zc(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 ed(e,t){let n={},r=4096;for(let o of Qc(t)){let i=Buffer.alloc(o.length);V.readSync(e,i,0,o.length,o.offset);let s=i.toString("utf8").split(`
5
- `).reverse().slice(0,r);r-=s.length;for(let a of s)if(Zc(n,a),n.model&&n.effort)break;if(n.model&&n.effort||r<=0)break}return n}function td(e,t,n){let r=P(n.CODEX_THREAD_ID);if(!r||!/^[A-Za-z0-9_-]{1,128}$/u.test(r))return;let o=Fe.join(t.home_dir??Xi.homedir(),".codex","sessions"),i=`${o}\0${r}`,s=pn.get(i);if(s)return s[e];let a=Jc(o,r);if(!a){pn.set(i,qi);return}try{let c=V.openSync(a,"r");try{let d=V.fstatSync(c).size,u=ed(c,d);return pn.set(i,u),u[e]}finally{V.closeSync(c)}}catch{pn.set(i,qi);return}}function nd(e,t,n,r){let o=gn.getStore();if(!(t.probes_enabled!==!1&&o?.probesEnabled!==!1&&!["0","false","off"].includes(P(n.PM_AGENT_PROBES)?.toLowerCase()??"")))return;let s=r?.provenance_resolvers[e];if(s==="claude_session_file")return Yc(e,t,n);if(s==="codex_session_file")return td(e,t,n);if(s==="ai_agent_version"){let a=P(n.AI_AGENT);return!a||!r||!hn(a,r.harness)?void 0:/(?:^|[@/\s])v?(\d+\.\d+(?:\.\d+)?(?:[-+][A-Za-z0-9.-]+)?)$/u.exec(a)?.[1]?.slice(0,256)}}function rd(e,t,n,r){if(e==="ai_agent_version"){let o=P(r.AI_AGENT);return o!==void 0&&hn(o,t.harness)?"available":"unavailable"}return e==="codex_session_file"?P(r.CODEX_THREAD_ID)!==void 0?"available":"unavailable":ns(n,r).status}function Gr(e){return e||(Yi.getStore()??{env:process.env,argv:process.argv})}function od(e,t,n,r){let o=e.environment_keys.some(a=>P(t[a])!==void 0),i=e.argv_markers.some(a=>n.some(c=>{let d=c.replaceAll("\\","/");return hn(d.slice(d.lastIndexOf("/")+1),a)})),s=e.client_names.some(a=>r===a||hn(r,a));return o||i||s}function id(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 sd(e){let t=e.find(([n])=>n!==void 0);return t?.[0]?{value:t[0],source:t[1]}:void 0}function ad(e,t,n,r,o,i){let s=`PM_AGENT_${e.toUpperCase().replaceAll("-","_")}`,a=new Set([...Br,...Object.keys(r?.provenance_environment_keys??{})]),c,d,u;a.has(e)&&(c=Me(e,P(n[s])?.slice(0,256)),u=Me(e,es(t.argv??[],e)),d=Me(e,Vc(t.argv??[],e)));let f={...r?.provenance_environment_keys,model:r?.model_environment_keys},m={...t.client_info?.provenance,model:t.client_info?.model},p=$r(o?.provenance,e),_=Me(e,qr(n,f[e])),y=Me(e,$r(m,e)),g=Me(e,$r(t.provenance,e)),S=nd(e,t,n,r);return sd([[c,"override"],[p,"session"],[u,"argv"],[_,"environment"],[y,"mcp_client"],[g,"host"],[S,"probe"]])??id(e,i)??(d?{value:d,source:"argv"}:void 0)}function cd(e,t){if(!(!e||!t))return zc("sha256").update(`pm-agent-instance:v1\0${e}\0${t}`).digest("hex").slice(0,24)}function dd(e,t,n,r,o){let i=Object.keys(n?.provenance_environment_keys??{}),s=new Set([...Br,...i,...Object.keys(n?.provenance_resolvers??{}),...Object.keys(e.provenance??{}),...Object.keys(e.client_info?.provenance??{}),...Object.keys(r?.provenance??{})]),a={};for(let c of s){let d=ad(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 rh(e){let t=e.map(Ee),n=new Map(Zi.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=et.get(i.harness);if(s&&!Wc(s.descriptor,i))throw new Error(`Harness signal descriptor collision for "${i.harness}"`);r.add(i.harness)}for(let i of t){let s=et.get(i.harness);et.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=et.get(i.harness);!s||s.registrations<=1?et.delete(i.harness):s.registrations-=1}}}}function ld(e){let t=Ee(e.descriptor),n=e.harness.trim().toLowerCase();if(e.contract_version!==1)throw new Error(`Unsupported provenance adapter contract for "${n}": ${e.contract_version}`);if(t.harness!==n)throw new Error(`Provenance adapter harness "${n}" does not match descriptor "${t.harness}".`);let r=P(e.adapter_version)?.slice(0,64);if(!r)throw new Error(`Provenance adapter "${n}" requires a version.`);if(!Number.isSafeInteger(e.priority))throw new Error(`Provenance adapter "${n}" requires an integer priority.`);if(e.probe_policy.network_access!==!1||e.probe_policy.subprocess_access!==!1||e.probe_policy.max_bytes>zr||e.probe_policy.max_lines>4096)throw new Error(`Provenance adapter "${n}" exceeds the bounded local probe policy.`);return Object.freeze({...e,adapter_version:r,harness:n,descriptor:t,supported_dimensions:Object.freeze(we(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 oh(){let e=new Map(Qi.map(t=>[t.harness,t]));for(let{adapter:t}of je.values())e.set(t.harness,t);return Object.freeze([...e.values()].sort((t,n)=>t.harness.localeCompare(n.harness)))}function ih(e){let t=e.map(ld),n=new Map(Qi.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=je.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=je.get(i.harness);je.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=je.get(i.harness);!s||s.registrations<=1?je.delete(i.harness):s.registrations-=1}}}}function sh(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 ah(e,t){return Yi.run(e,t)}function ch(e,t,n={}){let r=e.map(Ee);return Vr(r),gn.run({descriptors:r,probesEnabled:n.probesEnabled!==!1},t)}function Kr(e){let t=Gr(e),n=t.env??{},r=Vr(t.descriptors),o=[...(t.argv??[]).slice(0,3),...t.process_labels??[]].slice(0,64).map(_=>_.slice(0,512)),i=t.client_info?.name.trim().toLowerCase()??"",s=r.find(_=>od(_,n,o,i)),a=xr(t,n),c=[qr(n,s?.session_environment_keys),P(t.client_info?.session)?.slice(0,256)].find(_=>_!==void 0),d=cd(s?.harness,c),u=Vi({cwd:t.cwd??process.cwd(),env:n,key:d}),f=dd(t,n,s,a,u),m=f.model,p=[["harness",s?.harness],["model",m?.value],["model_source",m?.source],["session",c],["instance",d],["provenance",Object.keys(f).length>0?f:void 0],["episode",a.episode]];return Object.fromEntries(p.filter(_=>_[1]!==void 0))}function ud(e){return e==="unavailable"?{status:"unavailable",reason:"harness_unavailable"}:e==="missing"?{status:"unavailable",reason:"resolver_input_missing"}:{status:"failed",reason:"resolver_failed"}}function fd(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=rd(a,n,r,o);return{...ud(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=Gr(e),n=Kr(t),r=Vr(t.descriptors).find(d=>d.harness===n.harness),o=t.env??{},i=t.probes_enabled!==!1&&gn.getStore()?.probesEnabled!==!1&&!["0","false","off"].includes(P(o.PM_AGENT_PROBES)?.toLowerCase()??""),s=xr(t,o),a=[o.PM_AGENT_ROLE,s.provenance?.role,qr(o,r?.provenance_environment_keys.role),t.client_info?.provenance?.role,t.provenance?.role,es(t.argv??[],"role")].some(d=>{let u=P(d)?.slice(0,256);return u!==void 0&&Me("role",u)===void 0}),c=Object.fromEntries(Br.map(d=>[d,fd(d,n,r,t,o,i,d==="role"&&a)]));return{...n,provenance_outcomes:c}}function dh(){return process.env.PM_AUTHOR}function lh(e){e===void 0?delete process.env.PM_AUTHOR:process.env.PM_AUTHOR=e}function uh(e){return Kr(e).harness}function md(e,t,n){let r=Gr(n),o=Kr(r);if(e!==void 0){let s=P(e);return s?{author:s,source:"asserted",...o}:{author:"unknown",source:"unknown",...o}}if(r.env?.PM_AUTHOR!==void 0){let s=P(r.env.PM_AUTHOR);return s?{author:s,source:"asserted",...o}:{author:"unknown",source:"unknown",...o}}let i=P(t);return i?{author:i,source:"configured",...o}:o.harness?{author:`harness:${o.harness}`,source:"detected",...o}:{author:"unknown",source:"unknown",...o}}function os(e){let t=yn.getStore();return t?.author===e?t.source:e.startsWith("harness:")?"detected":e==="unknown"?"unknown":"asserted"}function is(e){let t=yn.getStore();return t?.author!==e?e.startsWith("harness:")?{harness:e.slice(8)}:{}:{...t.harness?{harness:t.harness}:{},...t.model?{model:t.model}:{},...t.model_source?{model_source:t.model_source}:{},...t.session?{session:t.session}:{},...t.instance?{instance:t.instance}:{},...t.provenance?{provenance:t.provenance}:{},...t.episode?{episode:t.episode}:{}}}function ss(e){let t=yn.getStore();return t?.author===e&&t.source==="detected"&&t.instance?`${e}#${t.instance}`:e}function as(e,t){let n=md(e,t);return yn.enterWith(n),n.author}import{createHash as _d}from"node:crypto";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="1e3cba21-c5a4-541a-9841-484cfbb70f4e")}catch{}})();var _h=["sha256","sha512"],pd="sha256",cs="sha256";function $e(e){if(e===void 0)return pd;if(e==="sha256"||e==="sha512")return e;throw new TypeError(`unsupported_history_hash_algorithm:${String(e)}`)}function ke(e,t){return _d($e(t)).update(e,"utf8").digest("hex")}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="8ee74259-29b1-5795-9253-9fa0869e4585")}catch{}})();var tt=1,ds=1;function hh(e){let t=e.pm_format_version;return typeof t=="number"&&Number.isInteger(t)&&t>=tt?t:tt}function ls(e){if(!(typeof e!="number"||!Number.isInteger(e)||e<=tt))return e}function hd(e,t=ds){return e<t?"outdated":e>t?"ahead":"current"}function yh(e,t=ds){let n=[],r=[];for(let o of e){let i=hd(o.version,t);i==="outdated"?n.push(o.ref):i==="ahead"&&r.push(o.ref)}return{outdated:n.sort((o,i)=>o.localeCompare(i)),ahead:r.sort((o,i)=>o.localeCompare(i))}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="6bb283b8-5c81-562a-926e-e48b83e6ebc8")}catch{}})();var yd={"in-progress":"in_progress",cancelled:"canceled"};function vn(e,t){if(t){let o=Ci(e,t);if(o)return o}if(typeof e!="string")return;let n=e.trim().toLowerCase();if(!n)return;let r=yd[n]??n;if(Zt.includes(r))return r}function nt(e,t){return vn(e,t)??e}function pe(e,t){return t.terminal_statuses.has(nt(e,t))}import{encode as xd}from"@toon-format/toon";import{isDeepStrictEqual as ps}from"node:util";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="42eb2987-269d-5b18-b0fe-5b4334fdb6a0")}catch{}})();var gd=16;function Xr(e){let t=e.trim().replaceAll(/[^A-Za-z0-9]+/g," ").split(/\s+/).filter(o=>o.length>0).map(o=>o.toLowerCase());if(t.length===0)return e;let[n,...r]=t;return`${n}${r.map(o=>`${o.slice(0,1).toUpperCase()}${o.slice(1)}`).join("")}`}function vd(e){return[...new Set([xi(e),Xr(e.key),Xr(e.cli_flag),...e.cli_aliases.map(t=>Xr(t))])]}function ms(e,t){for(let n of vd(t)){if(!Object.hasOwn(e,n))continue;let r=e[n];if(r!==void 0)return r}}function _s(e){return Array.isArray(e)?e.flatMap(t=>_s(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 us(e,t){if(typeof e=="boolean")return e;if(typeof e=="number"){if(e===1)return!0;if(e===0)return!1}if(typeof e=="string"){let n=e.trim().toLowerCase();if(n==="true"||n==="1"||n==="yes")return!0;if(n==="false"||n==="0"||n==="no")return!1}throw new v(`${t} must be one of true|false|1|0|yes|no`,b.USAGE)}function 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 v(`${t} must be a number`,b.USAGE);return r}function bd(e,t,n){let r=typeof e=="string"?(()=>{try{return JSON.parse(e)}catch{return}})():e;if(n==="array"&&Array.isArray(r)||n==="object"&&typeof r=="object"&&r!==null&&!Array.isArray(r))return r;throw new v(`${t} must be valid JSON ${n}`,b.USAGE)}function wd(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 Ed(e,t,n){if(t.const!==void 0&&L(e)!==L(t.const))return`${n} must equal ${L(t.const)}`;if(t.enum!==void 0&&!t.enum.some(r=>L(r)===L(e)))return`${n} must be one of ${t.enum.map(r=>L(r)).join("|")}`;if(!wd(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"&&!Fi(e))return`${n} must be an RFC 3339 date-time`}}function kd(e,t,n,r){if(Array.isArray(e)){if(t.min_items!==void 0&&e.length<t.min_items)return`${n} must contain at least ${t.min_items} items`;if(t.items)for(let[o,i]of e.entries()){let s=bn(i,t.items,`${n}[${o}]`,r+1);if(s)return s}}}function Id(e,t,n,r){if(typeof e!="object"||e===null||Array.isArray(e))return;let o=e;for(let i of t.required??[])if(!Object.hasOwn(o,i))return`${n}.${i} is required`;for(let[i,s]of Object.entries(o)){let a=t.properties?.[i];if(!a){if(t.additional_properties===!1)return`${n}.${i} is not allowed`;continue}let c=bn(s,a,`${n}.${i}`,r+1);if(c)return c}}function bn(e,t,n,r=0){if(r>gd)return`${n} value schema exceeds maximum depth`;let o=Ed(e,t,n);if(o)return o;let i=kd(e,t,n,r);if(i)return i;let s=Id(e,t,n,r);if(s)return s;if(!t.one_of)return;let a=0;for(let c of t.one_of)if(bn(e,c,n,r+1)===void 0&&(a+=1,a>1))break;return a===1?void 0:`${n} must match exactly one configured schema variant`}function He(e,t,n){if(!e.value_schema||t===void 0)return t;let r=bn(t,e.value_schema,n);if(r)throw new v(r,b.USAGE);return t}function xt(e,t,n){let r=n??`--${e.cli_flag}`;if(e.type==="array"||e.type==="object"){let i=Array.isArray(t)?t[t.length-1]:t;return i===void 0?void 0:He(e,bd(i,r,e.type),r)}if(e.repeatable||e.type==="string_array"){let i=_s(t);return e.type==="number"?He(e,i.map(s=>fs(s,r)),r):e.type==="boolean"?He(e,i.map(s=>us(s,r)),r):He(e,i,r)}let o=Array.isArray(t)?t[t.length-1]:t;if(o!==void 0)return e.type==="number"?He(e,fs(o,r),r):e.type==="boolean"?He(e,us(o,r),r):He(e,typeof o=="string"?o:String(o),r)}function Sd(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 Ch(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){Sd(i,n)&&o.push(`--${i.cli_flag}`);continue}r[i.metadata_key]=xt(i,s)}return{values:r,missing_required_flags:[...new Set(o)].sort((i,s)=>i.localeCompare(s))}}function Oh(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]=xt(s,a)))}return r}import{decode as Td}from"@toon-format/toon";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="e48e0cc7-7577-5702-ac17-a4529697444e")}catch{}})();function Yr(e){return{value:Td(e),usedScalarBracketEscape:!1}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="45fa31ba-dea9-56db-b971-84c11e8a1c88")}catch{}})();var Cd=/^\s*(<<<<<<<|=======|>>>>>>>)(?:\s.*)?$/;function Od(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(Cd);if(!i)continue;let s=i[1];n.push({line:r+1,marker:s,text:o})}return n}function wn(e){return Od(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]="48df511d-df81-56f7-bb1d-f10230b43cfa")}catch{}})();var eo=new Set(["schema","tracker","auto"]),gs=new Set(["source","isolated","snapshot"]),Rd=new Set(["legacy","local_mutation","local_source_ref","acknowledged","invalid_provenance","foreign_source_ref"]),Ad=new Set(["passed","failed","stopped","canceled"]),Dd=new Set(mi);function it(e){return e.replaceAll("\\","/")}function vs(e){for(let t of e)if(t!==0)return t;return 0}function kn(e){for(let[t,n]of Object.entries(e))n===void 0&&delete e[t]}var bs=["id","title","description","created_at","updated_at"],Nd=new Set(ye);function ws(e){if(e?.schema)return{statusRegistry:dn(e.schema),fieldRegistry:Oi(e.schema),unknownFieldPolicy:e.schema.unknown_field_policy??"allow",extensionFieldNames:new Set(e.extensionFieldNames??[]),onWarning:e.onWarning}}function Ld(e,t){return e.required?e.required_types.length===0?!0:e.required_types.map(n=>n.toLowerCase()).includes(t.trim().toLowerCase()):!1}function Ie(e){let t=e.match(/^([a-z_][\w.]*)\s/u)?.[1];throw new v(`Invalid item metadata: ${e}`,b.GENERIC_FAILURE,{code:"item_document_invalid",reason:e.includes("required")?"missing_required_field":"schema_validation_error",...t?{field:t}:{},required:"Provide an item document whose metadata satisfies the active runtime schema.",why:e})}function Dt(e,t){throw new v(t,b.GENERIC_FAILURE,{code:"item_document_invalid",reason:"syntax_error",format:e,required:`Provide a syntactically valid ${e==="toon"?"TOON":"JSON Markdown"} item document.`,why:"The document could not be decoded far enough to validate item metadata."})}function Es(e){let t=new Set(Nd);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||Ie(t)}function Nt(e,t){return(typeof e!="object"||e===null||Array.isArray(e))&&Ie(t),e}function Jr(e,t){let n=e[t];I(typeof n=="string",`${t} must be a string`),I(fe(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 to(e,t,n){let r=e[t];r!==void 0&&(I(typeof r=="string",`${n} must be a string`),I(fe(r),`${n} must be a valid ISO timestamp`))}function Pd(e){if(e!==void 0){I(Array.isArray(e),"event.recurrence.by_weekday must be an array");for(let t of e){I(typeof t=="string","event.recurrence.by_weekday entries must be strings");let n=t.trim().toLowerCase();I(rn.includes(n),`event.recurrence.by_weekday entries must be one of: ${rn.join(", ")}`)}}}function Md(e){if(e!==void 0){I(Array.isArray(e),"event.recurrence.by_month_day must be an array");for(let t of e)I(typeof t=="number"&&Number.isInteger(t)&&t>=1&&t<=31,"event.recurrence.by_month_day entries must be integers 1..31")}}function jd(e){if(e!==void 0){I(Array.isArray(e),"event.recurrence.exdates must be an array");for(let t of e)I(typeof t=="string","event.recurrence.exdates entries must be strings"),I(fe(t),"event.recurrence.exdates entries must be valid ISO timestamps")}}function Fd(e){let t=Nt(e,"event.recurrence must be an object");I(typeof t.freq=="string","event.recurrence.freq must be a string");let n=t.freq.trim().toLowerCase();I(nn.includes(n),`event.recurrence.freq must be one of: ${nn.join(", ")}`),hs(t,"interval","event.recurrence.interval"),hs(t,"count","event.recurrence.count"),to(t,"until","event.recurrence.until"),Pd(t.by_weekday),Md(t.by_month_day),jd(t.exdates)}function $d(e){for(let r of bs)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>=tt,`pm_format_version must be an integer >= ${tt}`),t}function Hd(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):[...Zt];I(o!==void 0,`status must be one of: ${i.join(", ")}`)}function zd(e){let t=e.priority;I(typeof t=="number"&&Number.isInteger(t)&&[0,1,2,3,4].includes(t),"priority must be an integer 0..4");let n=e.tags;I(Array.isArray(n),"tags must be an array");for(let r of n)I(typeof r=="string","tags entries must be strings")}function Ud(e){let t=e.confidence;if(t!==void 0){if(typeof t=="number"){I(Number.isInteger(t)&&t>=0&&t<=100,"confidence number value must be an integer 0..100");return}if(typeof t=="string"){let n=t.trim().toLowerCase(),r=n==="med"||tn.includes(n);I(r,`confidence string value must be one of: ${[...tn,"med"].join(", ")}`);return}I(!1,"confidence must be a number or string")}}function Bd(e){let t=e.severity;if(t===void 0)return;typeof t!="string"&&Ie("severity must be a string");let n=t.trim().toLowerCase(),r=n==="med"||en.includes(n);I(r,`severity value must be one of: ${[...en,"med"].join(", ")}`)}function Wd(e){e.regression!==void 0&&typeof e.regression!="boolean"&&Ie("regression must be a boolean")}function Vd(e){let t=e.reminders;if(t!==void 0){I(Array.isArray(t),"reminders must be an array");for(let n of t){let r=Nt(n,"reminders entries must be objects");I(typeof r.at=="string","reminder.at must be a string"),I(fe(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 qd(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 Gd(e){e.recurrence!==void 0&&(Fd(e.recurrence),e.recurrence.until!==void 0&&I(me(e.recurrence.until,e.start_at)>=0,"event.recurrence.until must be at or after event.start_at"))}function Kd(e){let t=Nt(e,"events entries must be objects");I(typeof t.start_at=="string","event.start_at must be a string"),I(fe(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(fe(t.end_at),"event.end_at must be a valid ISO timestamp"),I(me(t.end_at,t.start_at)>0,"event.end_at must be after event.start_at")),qd(t),t.all_day!==void 0&&I(typeof t.all_day=="boolean","event.all_day must be a boolean"),Gd(t)}function Xd(e){let t=e.events;if(t!==void 0){I(Array.isArray(t),"events must be an array");for(let n of t)Kd(n)}}function Yd(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 Jd(e){let t=e.type_options;if(t===void 0)return;let n=Nt(t,"type_options must be an object");for(let[r,o]of Object.entries(n))I(r.trim().length>0,"type_options keys must be non-empty"),I(typeof o=="string","type_options values must be strings"),I(o.trim().length>0,"type_options values must be non-empty strings")}function Qd(e,t,n){if(n?.fieldRegistry)for(let r of n.fieldRegistry.definitions){let o=e[r.metadata_key];if(o===void 0){Ld(r,t)&&Ie(`missing required schema field: ${r.metadata_key}`);continue}try{e[r.metadata_key]=xt(r,o,`metadata field "${r.metadata_key}"`)}catch(i){Ie(String(i?.message).replace(/^Invalid\s+/u,""))}}}function Zd(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let n=Es(t),r=Object.keys(e).filter(o=>!n.has(o)).sort((o,i)=>o.localeCompare(i));r.length!==0&&(t.unknownFieldPolicy==="reject"?Ie(`unknown schema fields are not allowed: ${r.join(", ")}`):t.onWarning?.(`item_unknown_schema_fields:${r.join(",")}`))}function no(e,t){let n=Nt(e,"item metadata must be an object"),r=$d(n);Hd(n,t),zd(n),Ud(n),Bd(n),Wd(n),Jr(n,"created_at"),Jr(n,"updated_at"),n.deadline!==void 0&&Jr(n,"deadline"),Vd(n),Xd(n),to(n,"closed_at","closed_at"),to(n,"completed_at","completed_at"),Yd(n),Jd(n),Qd(n,r,t),Zd(n,t)}function el(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=me(t.created_at,n.created_at);if(r!==0)return r;let o=t.id.localeCompare(n.id);if(o!==0)return o;let i=t.kind.localeCompare(n.kind);return i!==0?i:(t.source_kind??"").localeCompare(n.source_kind??"")})}function Qr(e){if(!(!e||e.length===0))return[...e].sort((t,n)=>{let r=me(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 tl(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=me(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(!nn.includes(t))return;let n=Array.from(new Set((e.by_weekday??[]).map(s=>s.trim().toLowerCase()).filter(s=>rn.includes(s)))).sort((s,a)=>gr(s)-gr(a)),r=Array.from(new Set((e.by_month_day??[]).filter(s=>Number.isInteger(s)&&s>=1&&s<=31).map(s=>s))).sort((s,a)=>s-a),o=Array.from(new Set((e.exdates??[]).map(s=>s.trim()).filter(s=>fe(s)))).sort((s,a)=>me(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 rl(e){return!Array.isArray(e)||e.length===0?void 0:[...e].map(ol).sort(il)}function ol(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 kn(t),t}function il(e,t){return vs([me(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 sl(e){if(!(!e||e.length===0))return e.map(t=>({path:it(t.path),scope:t.scope,note:t.note?.trim()||void 0}))}function al(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)=>vs([me(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 rt(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?Math.floor(e):void 0}function cl(e){return typeof e=="number"&&Number.isFinite(e)&&e>=1?Math.floor(e):void 0}function Zr(e){return typeof e=="string"?e:""}function dl(e){if(!Array.isArray(e))return;let t=e.filter(r=>r!==null&&typeof r=="object"&&typeof r.name=="string"&&r.name.trim().length>0&&typeof r.value=="number"&&Number.isFinite(r.value)&&typeof r.recorded_at=="string"&&r.recorded_at.trim().length>0).map(r=>({name:r.name.trim(),value:r.value,unit:typeof r.unit=="string"&&r.unit.trim()||void 0,threshold:typeof r.threshold=="number"&&Number.isFinite(r.threshold)?r.threshold:void 0,recorded_at:r.recorded_at.trim()})),n=[...new Map(t.map(r=>[r.name,r])).values()].sort((r,o)=>r.name.localeCompare(o.name)).slice(0,32);return n.length>0?n:void 0}function En(e,t){return typeof e=="string"&&t.has(e)?e:void 0}function ll(e){if(!Array.isArray(e))return;let t=e.filter(n=>n&&typeof n.command=="string"&&n.command.trim().length>0).slice(0,32).map(n=>({command:n.command.trim(),requested_pm_context_mode:En(n.requested_pm_context_mode,eo),pm_context_mode:En(n.pm_context_mode,eo),workspace_context_mode:En(n.workspace_context_mode,gs),trust_reason:En(n.trust_reason,Rd)}));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=Ad.has(e.status)?e.status:"failed",o={run_id:t,kind:n,status:r,started_at:Zr(e.started_at),finished_at:Zr(e.finished_at),recorded_at:Zr(e.recorded_at),attempt:cl(e.attempt),resumed_from:e.resumed_from?.trim()||void 0,passed:rt(e.passed)??0,failed:rt(e.failed)??0,skipped:rt(e.skipped)??0,items:rt(e.items),linked_tests:rt(e.linked_tests),fail_on_skipped_triggered:e.fail_on_skipped_triggered===!0?!0:void 0,measurements:dl(e.measurements),executions:ll(e.executions)};return kn(o),o}function fl(e){if(!(!Array.isArray(e)||e.length===0))return e.map(yl)}function Rt(e){if(!Array.isArray(e))return;let t=[...new Set(e.filter(n=>typeof n=="string").map(n=>n.trim()).filter(n=>n.length>0))].sort((n,r)=>n.localeCompare(r));return t.length>0?t:void 0}function oo(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function io(e){return e==="__proto__"||e==="constructor"||e==="prototype"}function ys(e){if(!oo(e))return;let t=Object.entries(e).map(([n,r])=>[n.trim(),String(r).trim()]).filter(([n,r])=>n.length>0&&!io(n)&&r.length>0).sort(([n],[r])=>n.localeCompare(r));return t.length>0?Object.fromEntries(t):void 0}function ml(e){if(!oo(e))return;let t=Object.entries(e).map(([n,r])=>[n.trim(),Number(r)]).filter(([n,r])=>n.length>0&&!io(n)&&Number.isFinite(r)).sort(([n],[r])=>n.localeCompare(r));return t.length>0?Object.fromEntries(t):void 0}function _l(e){let t=e?.trim().toLowerCase();if(!(!t||!eo.has(t)))return t}function pl(e){let t=e?.trim().toLowerCase();if(!(!t||!gs.has(t)))return t}function hl(e,t){if(t===!0)return{provenance_invalid:!0};if(e===void 0)return{};if(!oo(e))return{provenance_invalid:!0};let n=E(e.author),r=E(e.created_at),o=e.source_kind;return!n||!r||!fe(r)||o!=="local_mutation"&&o!=="merge_union"?{provenance_invalid:!0}:{provenance:{author:n,created_at:r,source_kind:o,source_ref:E(e.source_ref)}}}function yl(e){let t={command:e.command?.trim()||void 0,path:e.path?it(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:_l(e.pm_context_mode),workspace_context_mode:pl(e.workspace_context_mode),...hl(e.provenance,e.provenance_invalid),env_set:ys(e.env_set),env_clear:Rt(e.env_clear),shared_host_safe:e.shared_host_safe===!0?!0:void 0,assert_stdout_contains:Rt(e.assert_stdout_contains),assert_stdout_regex:Rt(e.assert_stdout_regex),assert_stderr_contains:Rt(e.assert_stderr_contains),assert_stderr_regex:Rt(e.assert_stderr_regex),assert_stdout_min_lines:rt(e.assert_stdout_min_lines),assert_json_field_equals:ys(e.assert_json_field_equals),assert_json_field_gte:ml(e.assert_json_field_gte),note:e.note?.trim()||void 0};return kn(t),t}function gl(e){if(!(!e||e.length===0))return[...e].map(t=>({path:it(t.path),scope:t.scope,note:t.note?.trim()||void 0})).sort((t,n)=>{let r=t.scope.localeCompare(n.scope);if(r!==0)return r;let o=t.path.localeCompare(n.path);return o!==0?o:(t.note??"").localeCompare(n.note??"")})}function E(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function vl(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=E(r.id),i=E(r.kind);if(!o||!i)continue;let s={id:o,kind:i},a=E(r.note);a&&(s.note=a),r.required_before_step===!0&&(s.required_before_step=!0),t.push(s)}return t.length>0?t:void 0}function bl(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=E(r.path);if(!o)continue;let i={path:it(o)};(r.scope==="project"||r.scope==="global")&&(i.scope=r.scope);let s=E(r.note);s&&(i.note=s),t.push(i)}return t.length>0?t:void 0}function wl(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=E(r.command),i=E(r.path);if(!o&&!i)continue;let s={};o&&(s.command=o),i&&(s.path=it(i));let a=E(r.note);a&&(s.note=a),t.push(s)}return t.length>0?t:void 0}function El(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=E(r.path);if(!o)continue;let i={path:it(o)};(r.scope==="project"||r.scope==="global")&&(i.scope=r.scope);let s=E(r.note);s&&(i.note=s),t.push(i)}return t.length>0?t:void 0}function kl(e){if(e===null||typeof e!="object")return;let t=e,n=E(t.id),r=E(t.title),o=E(t.status),i=o&&Dd.has(o)?o:void 0,s=Ei(t.order)??Number.NaN,a=typeof t.created_at=="string"?t.created_at:"",c=typeof t.updated_at=="string"?t.updated_at:"";if(!n||!r||!i||!Number.isFinite(s)||!a||!c)return;let d={id:n,order:s,title:r,status:i,created_at:a,updated_at:c};return Il(d,t),d}function Il(e,t){let n=[["body","body"],["owner","owner"],["evidence","evidence"],["blocked_reason","blocked_reason"],["superseded_by","superseded_by"]];for(let[i,s]of n){let a=E(t[s]);a&&(e[i]=a)}let r=typeof t.completed_at=="string"?t.completed_at:void 0;r&&r.length>0&&(e.completed_at=r);let o=[["linked_items","linked_items",vl],["files","files",bl],["tests","tests",wl],["docs","docs",El]];for(let[i,s,a]of o){let c=a(t[s]);c&&(e[i]=c)}}function Sl(e){if(!Array.isArray(e))return;let t=e.flatMap(n=>{let r=kl(n);return r?[r]:[]});return t.sort((n,r)=>n.order-r.order),t.length>0?t:void 0}function Tl(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=typeof r.ts=="string"?r.ts:"",i=typeof r.author=="string"?r.author:"",s=E(r.decision);if(!o||!i||!s)continue;let a={ts:o,author:i,decision:s},c=E(r.rationale);c&&(a.rationale=c);let d=E(r.evidence);d&&(a.evidence=d);let u=E(r.step_id);u&&(a.step_id=u),t.push(a)}return t.length>0?t:void 0}function Cl(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=typeof r.ts=="string"?r.ts:"",i=typeof r.author=="string"?r.author:"",s=E(r.text);if(!o||!i||!s)continue;let a={ts:o,author:i,text:s},c=E(r.step_id);c&&(a.step_id=c),t.push(a)}return t.length>0?t:void 0}function Ol(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=E(r.text);if(!o)continue;let i={text:o},s=E(r.command);s&&(i.command=s);let a=E(r.expected);a&&(i.expected=a),t.push(i)}return t.length>0?t:void 0}function xl(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 ot(e){let t=0;for(;t<e.length&&e[t]===`
6
- `;)t+=1;return e.slice(t).trimEnd()}function Rl(e){if(e===void 0)return;if(typeof e=="number")return e;let t=e.trim().toLowerCase();if(t==="med")return"medium";if(tn.includes(t))return t}function Al(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(t==="med")return"medium";if(en.includes(t))return t}function At(e){return e||void 0}function Dl(e,t){let n=e,r=t;for(let[o,i]of Object.entries(r))io(o)||Object.prototype.hasOwnProperty.call(n,o)||i===void 0||(n[o]=i)}function Nl(e,t){if(!t?.fieldRegistry)return;let n=e;for(let r of t.fieldRegistry.definitions){let o=n[r.metadata_key];o!==void 0&&(n[r.metadata_key]=xt(r,o,`metadata field "${r.metadata_key}"`))}}function Ll(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let n=Es(t),o=Object.keys(e).filter(i=>!n.has(i)).sort((i,s)=>i.localeCompare(s));o.length>0&&t.unknownFieldPolicy==="reject"&&Ie(`unknown schema fields are not allowed: ${o.join(", ")}`),o.length>0&&t.onWarning?.(`item_unknown_schema_fields:${o.join(",")}`)}function In(e,t={}){let n=ws(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:E(e.source_type),type_options:xl(e.type_options),status:r,priority:e.priority,tags:o,created_at:e.created_at,updated_at:e.updated_at,dependencies:el(e.dependencies),comments:Qr(e.comments),notes:Qr(e.notes),learnings:Qr(e.learnings),files:sl(e.files),tests:fl(e.tests),test_runs:al(e.test_runs),docs:gl(e.docs),deadline:At(e.deadline),reminders:tl(e.reminders),events:rl(e.events),closed_at:At(e.closed_at),completed_at:At(e.completed_at),assignee:E(e.assignee),claim_principal:E(e.claim_principal),source_owner:E(e.source_owner),author:At(e.author),estimated_minutes:e.estimated_minutes,acceptance_criteria:e.acceptance_criteria??void 0,design:e.design??void 0,external_ref:e.external_ref??void 0,definition_of_ready:E(e.definition_of_ready),order:e.order,goal:E(e.goal),objective:E(e.objective),value:E(e.value),impact:E(e.impact),outcome:E(e.outcome),why_now:E(e.why_now),parent:E(e.parent),reviewer:E(e.reviewer),risk:e.risk??void 0,confidence:Rl(e.confidence),sprint:E(e.sprint),release:E(e.release),blocked_by:E(e.blocked_by),blocked_reason:E(e.blocked_reason),unblock_note:E(e.unblock_note),reporter:E(e.reporter),severity:Al(e.severity),environment:E(e.environment),repro_steps:E(e.repro_steps),resolution:E(e.resolution),expected_result:E(e.expected_result),actual_result:E(e.actual_result),affected_version:E(e.affected_version),fixed_version:E(e.fixed_version),component:E(e.component),regression:e.regression,customer_impact:E(e.customer_impact),close_reason:At(e.close_reason),plan_mode:E(e.plan_mode),plan_scope:E(e.plan_scope),plan_harness:E(e.plan_harness),plan_resume_context:E(e.plan_resume_context),plan_steps:Sl(e.plan_steps),plan_decisions:Tl(e.plan_decisions),plan_discoveries:Cl(e.plan_discoveries),plan_validation:Ol(e.plan_validation)};return Dl(i,e),Nl(i,n),Ll(i,n),kn(i),i}function ks(e){return T(e,ye)}function Pl(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 Ml(e){if(!e.startsWith("{"))return{frontMatter:"",body:e};let t=Pl(e);if(t<0)return{frontMatter:"",body:e};let n=e.slice(0,t+1),r=e.slice(t+1).replace(/^\r?\n+/,"");return{frontMatter:n,body:r}}function jl(e){let t=e.charCodeAt(0)===65279?e.slice(1):e,n=t.match(/^[ \t]*---[ \t]*(?:\r?\n|$)/);if(!n)return{content:t,stripped:!1};let r=n[0].length;for(;r<t.length;){let o=t.indexOf(`
7
- `,r),i=o===-1?t.length:o,s=t.slice(r,i).replace(/\r$/,""),a=o===-1?i:i+1;if(s.trim()==="---")return{content:t.slice(a).replace(/^\s+/,""),stripped:!0};r=a}return{content:t,stripped:!1}}function ro(e,t){return In(e,{...t,onWarning:void 0})}function Fl(e,t,n={}){let r=jl(e);r.stripped&&n.onWarning?.("json_markdown_leading_yaml_frontmatter_ignored");let{frontMatter:o,body:i}=Ml(r.content);o||(e.trimStart().startsWith("{")&&Dt("json_markdown","JSON front matter is not valid JSON"),Dt("json_markdown","JSON Markdown item document is missing JSON front matter"));let s;try{s=JSON.parse(o)}catch{Dt("json_markdown","JSON front matter is not valid JSON")}return no(s,t),{metadata:ro(s,n),body:ot(i)}}function $l(e,t,n={}){let r;try{r=Yr(e).value}catch{Dt("toon","TOON item document is not valid TOON")}I(typeof r=="object"&&r!==null&&!Array.isArray(r),"TOON item document must be an object");let o=r;if(!bs.some(a=>Object.prototype.hasOwnProperty.call(o,a))&&!Object.prototype.hasOwnProperty.call(o,"front_matter")&&Dt("toon","TOON input does not have the shape of an item document"),Object.prototype.hasOwnProperty.call(o,"front_matter"))return no(o.front_matter,t),I(o.body===void 0||typeof o.body=="string","TOON item document body must be a string"),{metadata:ro(o.front_matter,n),body:ot(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"),no(s,t),{metadata:ro(s,n),body:ot(typeof i=="string"?i:"")}}function Hl(e,t={}){let n=In(e.metadata,t),r=ks(n),o=JSON.stringify(r,null,2),i=ot(e.body??"");return i?`${o}
4
+ `).slice(-4096)];for(let g of _){if(g.length===0||g.length>262144)continue;let S=Yc(g);if(p.model??=S.model,p.version??=S.version,p.model&&p.version)break}let y=Object.freeze(p);return Hr.clear(),Hr.set(s,y),y[e]}finally{q.closeSync(o)}}catch{return}}function Zc(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=$e.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 ed(e){if(e<=zr)return[{offset:0,length:e}];let t=Math.floor(zr/2);return[{offset:e-t,length:t},{offset:0,length:t}]}function td(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 nd(e,t){let n={},r=4096;for(let o of ed(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(td(n,a),n.model&&n.effort)break;if(n.model&&n.effort||r<=0)break}return n}function rd(e,t,n){let r=P(n.CODEX_THREAD_ID);if(!r||!/^[A-Za-z0-9_-]{1,128}$/u.test(r))return;let o=$e.join(t.home_dir??Zi.homedir(),".codex","sessions"),i=`${o}\0${r}`,s=_n.get(i);if(s)return s[e];let a=Zc(o,r);if(!a){_n.set(i,Yi);return}try{let c=q.openSync(a,"r");try{let d=q.fstatSync(c).size,u=nd(c,d);return _n.set(i,u),u[e]}finally{q.closeSync(c)}}catch{_n.set(i,Yi);return}}function od(e,t,n,r){let o=yn.getStore();if(!(t.probes_enabled!==!1&&o?.probesEnabled!==!1&&!["0","false","off"].includes(P(n.PM_AGENT_PROBES)?.toLowerCase()??"")))return;let s=r?.provenance_resolvers[e];if(s==="claude_session_file")return Qc(e,t,n);if(s==="codex_session_file")return rd(e,t,n);if(s==="ai_agent_version"){let a=P(n.AI_AGENT);return!a||!r||!pn(a,r.harness)?void 0:/(?:^|[@/\s])v?(\d+\.\d+(?:\.\d+)?(?:[-+][A-Za-z0-9.-]+)?)$/u.exec(a)?.[1]?.slice(0,256)}}function id(e,t,n,r){if(e==="ai_agent_version"){let o=P(r.AI_AGENT);return o!==void 0&&pn(o,t.harness)?"available":"unavailable"}return e==="codex_session_file"?P(r.CODEX_THREAD_ID)!==void 0?"available":"unavailable":ss(n,r).status}function Gr(e){return e||(es.getStore()??{env:process.env,argv:process.argv})}function sd(e,t,n,r){let o=e.environment_keys.some(a=>P(t[a])!==void 0),i=e.argv_markers.some(a=>n.some(c=>{let d=c.replaceAll("\\","/");return pn(d.slice(d.lastIndexOf("/")+1),a)})),s=e.client_names.some(a=>r===a||pn(r,a));return o||i||s}function ad(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 cd(e){let t=e.find(([n])=>n!==void 0);return t?.[0]?{value:t[0],source:t[1]}:void 0}function dd(e,t,n,r,o,i){let s=`PM_AGENT_${e.toUpperCase().replaceAll("-","_")}`,a=new Set([...Br,...Object.keys(r?.provenance_environment_keys??{})]),c,d,u;a.has(e)&&(c=je(e,P(n[s])?.slice(0,256)),u=je(e,os(t.argv??[],e)),d=je(e,Gc(t.argv??[],e)));let f={...r?.provenance_environment_keys,model:r?.model_environment_keys},m={...t.client_info?.provenance,model:t.client_info?.model},p=$r(o?.provenance,e),_=je(e,qr(n,f[e])),y=je(e,$r(m,e)),g=je(e,$r(t.provenance,e)),S=od(e,t,n,r);return cd([[c,"override"],[p,"session"],[u,"argv"],[_,"environment"],[y,"mcp_client"],[g,"host"],[S,"probe"]])??ad(e,i)??(d?{value:d,source:"argv"}:void 0)}function ld(e,t){if(!(!e||!t))return Bc("sha256").update(`pm-agent-instance:v1\0${e}\0${t}`).digest("hex").slice(0,24)}function ud(e,t,n,r,o){let i=Object.keys(n?.provenance_environment_keys??{}),s=new Set([...Br,...i,...Object.keys(n?.provenance_resolvers??{}),...Object.keys(e.provenance??{}),...Object.keys(e.client_info?.provenance??{}),...Object.keys(r?.provenance??{})]),a={};for(let c of s){let d=dd(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 ah(e){let t=e.map(ke),n=new Map(rs.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=et.get(i.harness);if(s&&!qc(s.descriptor,i))throw new Error(`Harness signal descriptor collision for "${i.harness}"`);r.add(i.harness)}for(let i of t){let s=et.get(i.harness);et.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=et.get(i.harness);!s||s.registrations<=1?et.delete(i.harness):s.registrations-=1}}}}function fd(e){let t=ke(e.descriptor),n=e.harness.trim().toLowerCase();if(e.contract_version!==1)throw new Error(`Unsupported provenance adapter contract for "${n}": ${e.contract_version}`);if(t.harness!==n)throw new Error(`Provenance adapter harness "${n}" does not match descriptor "${t.harness}".`);let r=P(e.adapter_version)?.slice(0,64);if(!r)throw new Error(`Provenance adapter "${n}" requires a version.`);if(!Number.isSafeInteger(e.priority))throw new Error(`Provenance adapter "${n}" requires an integer priority.`);if(e.probe_policy.network_access!==!1||e.probe_policy.subprocess_access!==!1||e.probe_policy.max_bytes>zr||e.probe_policy.max_lines>4096)throw new Error(`Provenance adapter "${n}" exceeds the bounded local probe policy.`);return Object.freeze({...e,adapter_version:r,harness:n,descriptor:t,supported_dimensions:Object.freeze(Ee(e.supported_dimensions).map(o=>o.toLowerCase()).sort()),native_sources:Object.freeze([...new Set(e.native_sources)]),probe_policy:Object.freeze({...e.probe_policy}),normalization:Object.freeze({...e.normalization}),...e.waivers?{waivers:Object.freeze(Object.fromEntries(Object.entries(e.waivers).slice(0,32).map(([o,i])=>[o.slice(0,64),i.slice(0,256)])))}:{}})}function ch(){let e=new Map(ns.map(t=>[t.harness,t]));for(let{adapter:t}of Fe.values())e.set(t.harness,t);return Object.freeze([...e.values()].sort((t,n)=>t.harness.localeCompare(n.harness)))}function dh(e){let t=e.map(fd),n=new Map(ns.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=Fe.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=Fe.get(i.harness);Fe.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=Fe.get(i.harness);!s||s.registrations<=1?Fe.delete(i.harness):s.registrations-=1}}}}function lh(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 uh(e,t){return es.run(e,t)}function fh(e,t,n={}){let r=e.map(ke);return Vr(r),yn.run({descriptors:r,probesEnabled:n.probesEnabled!==!1},t)}function Kr(e){let t=Gr(e),n=t.env??{},r=Vr(t.descriptors),o=[...(t.argv??[]).slice(0,3),...t.process_labels??[]].slice(0,64).map(_=>_.slice(0,512)),i=t.client_info?.name.trim().toLowerCase()??"",s=r.find(_=>sd(_,n,o,i)),a=xr(t,n),c=[qr(n,s?.session_environment_keys),P(t.client_info?.session)?.slice(0,256)].find(_=>_!==void 0),d=ld(s?.harness,c),u=Xi({cwd:t.cwd??process.cwd(),env:n,key:d}),f=ud(t,n,s,a,u),m=f.model,p=[["harness",s?.harness],["model",m?.value],["model_source",m?.source],["session",c],["instance",d],["provenance",Object.keys(f).length>0?f:void 0],["episode",a.episode]];return Object.fromEntries(p.filter(_=>_[1]!==void 0))}function md(e){return e==="unavailable"?{status:"unavailable",reason:"harness_unavailable"}:e==="missing"?{status:"unavailable",reason:"resolver_input_missing"}:{status:"failed",reason:"resolver_failed"}}function _d(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=id(a,n,r,o);return{...md(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 as(e){let t=Gr(e),n=Kr(t),r=Vr(t.descriptors).find(d=>d.harness===n.harness),o=t.env??{},i=t.probes_enabled!==!1&&yn.getStore()?.probesEnabled!==!1&&!["0","false","off"].includes(P(o.PM_AGENT_PROBES)?.toLowerCase()??""),s=xr(t,o),a=[o.PM_AGENT_ROLE,s.provenance?.role,qr(o,r?.provenance_environment_keys.role),t.client_info?.provenance?.role,t.provenance?.role,os(t.argv??[],"role")].some(d=>{let u=P(d)?.slice(0,256);return u!==void 0&&je("role",u)===void 0}),c=Object.fromEntries(Br.map(d=>[d,_d(d,n,r,t,o,i,d==="role"&&a)]));return{...n,provenance_outcomes:c}}function mh(){return process.env.PM_AUTHOR}function _h(e){e===void 0?delete process.env.PM_AUTHOR:process.env.PM_AUTHOR=e}function ph(e){return Kr(e).harness}function pd(e,t,n){let r=Gr(n),o=Kr(r);if(e!==void 0){let s=P(e);return s?{author:s,source:"asserted",...o}:{author:"unknown",source:"unknown",...o}}if(r.env?.PM_AUTHOR!==void 0){let s=P(r.env.PM_AUTHOR);return s?{author:s,source:"asserted",...o}:{author:"unknown",source:"unknown",...o}}let i=P(t);return i?{author:i,source:"configured",...o}:o.harness?{author:`harness:${o.harness}`,source:"detected",...o}:{author:"unknown",source:"unknown",...o}}function cs(e){let t=hn.getStore();return t?.author===e?t.source:e.startsWith("harness:")?"detected":e==="unknown"?"unknown":"asserted"}function ds(e){let t=hn.getStore();return t?.author!==e?e.startsWith("harness:")?{harness:e.slice(8)}:{}:{...t.harness?{harness:t.harness}:{},...t.model?{model:t.model}:{},...t.model_source?{model_source:t.model_source}:{},...t.session?{session:t.session}:{},...t.instance?{instance:t.instance}:{},...t.provenance?{provenance:t.provenance}:{},...t.episode?{episode:t.episode}:{}}}function ls(e){let t=hn.getStore();return t?.author===e&&t.source==="detected"&&t.instance?`${e}#${t.instance}`:e}function us(e,t){let n=pd(e,t);return hn.enterWith(n),n.author}import{createHash as hd}from"node:crypto";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="1e3cba21-c5a4-541a-9841-484cfbb70f4e")}catch{}})();var gh=["sha256","sha512"],yd="sha256",fs="sha256";function He(e){if(e===void 0)return yd;if(e==="sha256"||e==="sha512")return e;throw new TypeError(`unsupported_history_hash_algorithm:${String(e)}`)}function Ie(e,t){return hd(He(t)).update(e,"utf8").digest("hex")}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="8ee74259-29b1-5795-9253-9fa0869e4585")}catch{}})();var tt=1,ms=1;function bh(e){let t=e.pm_format_version;return typeof t=="number"&&Number.isInteger(t)&&t>=tt?t:tt}function _s(e){if(!(typeof e!="number"||!Number.isInteger(e)||e<=tt))return e}function gd(e,t=ms){return e<t?"outdated":e>t?"ahead":"current"}function wh(e,t=ms){let n=[],r=[];for(let o of e){let i=gd(o.version,t);i==="outdated"?n.push(o.ref):i==="ahead"&&r.push(o.ref)}return{outdated:n.sort((o,i)=>o.localeCompare(i)),ahead:r.sort((o,i)=>o.localeCompare(i))}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="6bb283b8-5c81-562a-926e-e48b83e6ebc8")}catch{}})();var vd={"in-progress":"in_progress",cancelled:"canceled"};function gn(e,t){if(t){let o=Ri(e,t);if(o)return o}if(typeof e!="string")return;let n=e.trim().toLowerCase();if(!n)return;let r=vd[n]??n;if(Zt.includes(r))return r}function nt(e,t){return gn(e,t)??e}function he(e,t){return t.terminal_statuses.has(nt(e,t))}import{encode as Ad}from"@toon-format/toon";import{isDeepStrictEqual as vs}from"node:util";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="42eb2987-269d-5b18-b0fe-5b4334fdb6a0")}catch{}})();var bd=16;function Xr(e){let t=e.trim().replaceAll(/[^A-Za-z0-9]+/g," ").split(/\s+/).filter(o=>o.length>0).map(o=>o.toLowerCase());if(t.length===0)return e;let[n,...r]=t;return`${n}${r.map(o=>`${o.slice(0,1).toUpperCase()}${o.slice(1)}`).join("")}`}function wd(e){return[...new Set([Di(e),Xr(e.key),Xr(e.cli_flag),...e.cli_aliases.map(t=>Xr(t))])]}function ys(e,t){for(let n of wd(t)){if(!Object.hasOwn(e,n))continue;let r=e[n];if(r!==void 0)return r}}function gs(e){return Array.isArray(e)?e.flatMap(t=>gs(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 v(`${t} must be one of true|false|1|0|yes|no`,b.USAGE)}function hs(e,t){if(typeof e=="number"&&Number.isFinite(e))return e;let n=typeof e=="string"?e.trim():String(e),r=Number(n);if(!Number.isFinite(r))throw new v(`${t} must be a number`,b.USAGE);return r}function Ed(e,t,n){let r=typeof e=="string"?(()=>{try{return JSON.parse(e)}catch{return}})():e;if(n==="array"&&Array.isArray(r)||n==="object"&&typeof r=="object"&&r!==null&&!Array.isArray(r))return r;throw new v(`${t} must be valid JSON ${n}`,b.USAGE)}function kd(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 Id(e,t,n){if(t.const!==void 0&&L(e)!==L(t.const))return`${n} must equal ${L(t.const)}`;if(t.enum!==void 0&&!t.enum.some(r=>L(r)===L(e)))return`${n} must be one of ${t.enum.map(r=>L(r)).join("|")}`;if(!kd(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"&&!zi(e))return`${n} must be an RFC 3339 date-time`}}function Sd(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=vn(i,t.items,`${n}[${o}]`,r+1);if(s)return s}}}function Td(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=vn(s,a,`${n}.${i}`,r+1);if(c)return c}}function vn(e,t,n,r=0){if(r>bd)return`${n} value schema exceeds maximum depth`;let o=Id(e,t,n);if(o)return o;let i=Sd(e,t,n,r);if(i)return i;let s=Td(e,t,n,r);if(s)return s;if(!t.one_of)return;let a=0;for(let c of t.one_of)if(vn(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 ze(e,t,n){if(!e.value_schema||t===void 0)return t;let r=vn(t,e.value_schema,n);if(r)throw new v(r,b.USAGE);return t}function xt(e,t,n){let r=n??`--${e.cli_flag}`;if(e.type==="array"||e.type==="object"){let i=Array.isArray(t)?t[t.length-1]:t;return i===void 0?void 0:ze(e,Ed(i,r,e.type),r)}if(e.repeatable||e.type==="string_array"){let i=gs(t);return e.type==="number"?ze(e,i.map(s=>hs(s,r)),r):e.type==="boolean"?ze(e,i.map(s=>ps(s,r)),r):ze(e,i,r)}let o=Array.isArray(t)?t[t.length-1]:t;if(o!==void 0)return e.type==="number"?ze(e,hs(o,r),r):e.type==="boolean"?ze(e,ps(o,r),r):ze(e,typeof o=="string"?o:String(o),r)}function Cd(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 Ah(e,t,n){let r={},o=[];for(let i of t.command_to_fields.get("create")??[]){let s=ys(e,i);if(s===void 0){Cd(i,n)&&o.push(`--${i.cli_flag}`);continue}r[i.metadata_key]=xt(i,s)}return{values:r,missing_required_flags:[...new Set(o)].sort((i,s)=>i.localeCompare(s))}}function Dh(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=ys(e,s);a!==void 0&&(i.has(s.metadata_key)||(i.add(s.metadata_key),r[s.metadata_key]=xt(s,a)))}return r}import{decode as Od}from"@toon-format/toon";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="e48e0cc7-7577-5702-ac17-a4529697444e")}catch{}})();function Yr(e){return{value:Od(e),usedScalarBracketEscape:!1}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="45fa31ba-dea9-56db-b971-84c11e8a1c88")}catch{}})();var xd=/^\s*(<<<<<<<|=======|>>>>>>>)(?:\s.*)?$/;function Rd(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(xd);if(!i)continue;let s=i[1];n.push({line:r+1,marker:s,text:o})}return n}function bn(e){return Rd(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]="48df511d-df81-56f7-bb1d-f10230b43cfa")}catch{}})();var eo=new Set(["schema","tracker","auto"]),Es=new Set(["source","isolated","snapshot"]),Dd=new Set(["legacy","local_mutation","local_source_ref","acknowledged","invalid_provenance","foreign_source_ref"]),Nd=new Set(["passed","failed","stopped","canceled"]),Ld=new Set(hi);function it(e){return e.replaceAll("\\","/")}function ks(e){for(let t of e)if(t!==0)return t;return 0}function En(e){for(let[t,n]of Object.entries(e))n===void 0&&delete e[t]}var Is=["id","title","description","created_at","updated_at"],Pd=new Set(ge);function Ss(e){if(e?.schema)return{statusRegistry:dn(e.schema),fieldRegistry:Ai(e.schema),unknownFieldPolicy:e.schema.unknown_field_policy??"allow",extensionFieldNames:new Set(e.extensionFieldNames??[]),onWarning:e.onWarning}}function Md(e,t){return e.required?e.required_types.length===0?!0:e.required_types.map(n=>n.toLowerCase()).includes(t.trim().toLowerCase()):!1}function Se(e){let t=e.match(/^([a-z_][\w.]*)\s/u)?.[1];throw new v(`Invalid item metadata: ${e}`,b.GENERIC_FAILURE,{code:"item_document_invalid",reason:e.includes("required")?"missing_required_field":"schema_validation_error",...t?{field:t}:{},required:"Provide an item document whose metadata satisfies the active runtime schema.",why:e})}function Dt(e,t){throw new v(t,b.GENERIC_FAILURE,{code:"item_document_invalid",reason:"syntax_error",format:e,required:`Provide a syntactically valid ${e==="toon"?"TOON":"JSON Markdown"} item document.`,why:"The document could not be decoded far enough to validate item metadata."})}function Ts(e){let t=new Set(Pd);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||Se(t)}function Nt(e,t){return(typeof e!="object"||e===null||Array.isArray(e))&&Se(t),e}function Jr(e,t){let n=e[t];I(typeof n=="string",`${t} must be a string`),I(me(n),`${t} must be a valid ISO timestamp`)}function bs(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 to(e,t,n){let r=e[t];r!==void 0&&(I(typeof r=="string",`${n} must be a string`),I(me(r),`${n} must be a valid ISO timestamp`))}function jd(e){if(e!==void 0){I(Array.isArray(e),"event.recurrence.by_weekday must be an array");for(let t of e){I(typeof t=="string","event.recurrence.by_weekday entries must be strings");let n=t.trim().toLowerCase();I(rn.includes(n),`event.recurrence.by_weekday entries must be one of: ${rn.join(", ")}`)}}}function Fd(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 $d(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(me(t),"event.recurrence.exdates entries must be valid ISO timestamps")}}function Hd(e){let t=Nt(e,"event.recurrence must be an object");I(typeof t.freq=="string","event.recurrence.freq must be a string");let n=t.freq.trim().toLowerCase();I(nn.includes(n),`event.recurrence.freq must be one of: ${nn.join(", ")}`),bs(t,"interval","event.recurrence.interval"),bs(t,"count","event.recurrence.count"),to(t,"until","event.recurrence.until"),jd(t.by_weekday),Fd(t.by_month_day),$d(t.exdates)}function zd(e){for(let r of Is)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>=tt,`pm_format_version must be an integer >= ${tt}`),t}function Ud(e,t){let n=e.status;I(typeof n=="string"&&n.trim().length>0,"status must be a non-empty string");let r=t?.statusRegistry,o=gn(n,r),i=r?r.definitions.map(s=>s.id):[...Zt];I(o!==void 0,`status must be one of: ${i.join(", ")}`)}function Bd(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 Wd(e){let t=e.confidence;if(t!==void 0){if(typeof t=="number"){I(Number.isInteger(t)&&t>=0&&t<=100,"confidence number value must be an integer 0..100");return}if(typeof t=="string"){let n=t.trim().toLowerCase(),r=n==="med"||tn.includes(n);I(r,`confidence string value must be one of: ${[...tn,"med"].join(", ")}`);return}I(!1,"confidence must be a number or string")}}function Vd(e){let t=e.severity;if(t===void 0)return;typeof t!="string"&&Se("severity must be a string");let n=t.trim().toLowerCase(),r=n==="med"||en.includes(n);I(r,`severity value must be one of: ${[...en,"med"].join(", ")}`)}function qd(e){e.regression!==void 0&&typeof e.regression!="boolean"&&Se("regression must be a boolean")}function Gd(e){let t=e.reminders;if(t!==void 0){I(Array.isArray(t),"reminders must be an array");for(let n of t){let r=Nt(n,"reminders entries must be objects");I(typeof r.at=="string","reminder.at must be a string"),I(me(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 Kd(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 Xd(e){e.recurrence!==void 0&&(Hd(e.recurrence),e.recurrence.until!==void 0&&I(_e(e.recurrence.until,e.start_at)>=0,"event.recurrence.until must be at or after event.start_at"))}function Yd(e){let t=Nt(e,"events entries must be objects");I(typeof t.start_at=="string","event.start_at must be a string"),I(me(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(me(t.end_at),"event.end_at must be a valid ISO timestamp"),I(_e(t.end_at,t.start_at)>0,"event.end_at must be after event.start_at")),Kd(t),t.all_day!==void 0&&I(typeof t.all_day=="boolean","event.all_day must be a boolean"),Xd(t)}function Jd(e){let t=e.events;if(t!==void 0){I(Array.isArray(t),"events must be an array");for(let n of t)Yd(n)}}function Qd(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 Zd(e){let t=e.type_options;if(t===void 0)return;let n=Nt(t,"type_options must be an object");for(let[r,o]of Object.entries(n))I(r.trim().length>0,"type_options keys must be non-empty"),I(typeof o=="string","type_options values must be strings"),I(o.trim().length>0,"type_options values must be non-empty strings")}function el(e,t,n){if(n?.fieldRegistry)for(let r of n.fieldRegistry.definitions){let o=e[r.metadata_key];if(o===void 0){Md(r,t)&&Se(`missing required schema field: ${r.metadata_key}`);continue}try{e[r.metadata_key]=xt(r,o,`metadata field "${r.metadata_key}"`)}catch(i){Se(String(i?.message).replace(/^Invalid\s+/u,""))}}}function tl(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let n=Ts(t),r=Object.keys(e).filter(o=>!n.has(o)).sort((o,i)=>o.localeCompare(i));r.length!==0&&(t.unknownFieldPolicy==="reject"?Se(`unknown schema fields are not allowed: ${r.join(", ")}`):t.onWarning?.(`item_unknown_schema_fields:${r.join(",")}`))}function no(e,t){let n=Nt(e,"item metadata must be an object"),r=zd(n);Ud(n,t),Bd(n),Wd(n),Vd(n),qd(n),Jr(n,"created_at"),Jr(n,"updated_at"),n.deadline!==void 0&&Jr(n,"deadline"),Gd(n),Jd(n),to(n,"closed_at","closed_at"),to(n,"completed_at","completed_at"),Qd(n),Zd(n),el(n,r,t),tl(n,t)}function nl(e){if(!(!e||e.length===0))return[...e].map(t=>({id:t.id.trim(),kind:t.kind,created_at:t.created_at,author:t.author?.trim()||void 0,source_kind:t.source_kind?.trim()||void 0,author_source:t.author_source})).sort((t,n)=>{let r=_e(t.created_at,n.created_at);if(r!==0)return r;let o=t.id.localeCompare(n.id);if(o!==0)return o;let i=t.kind.localeCompare(n.kind);return i!==0?i:(t.source_kind??"").localeCompare(n.source_kind??"")})}function Qr(e){if(!(!e||e.length===0))return[...e].sort((t,n)=>{let r=_e(t.created_at,n.created_at);if(r!==0)return r;let o=t.text.localeCompare(n.text);return o!==0?o:t.author.localeCompare(n.author)})}function rl(e){if(!e||e.length===0)return;let t=[...e].map(n=>({at:n.at,text:n.text.trim()})).filter(n=>n.text.length>0).sort((n,r)=>{let o=_e(n.at,r.at);return o!==0?o:n.text.localeCompare(r.text)});return t.length===0?void 0:t}function ol(e){if(!e)return;let t=e.freq.trim().toLowerCase();if(!nn.includes(t))return;let n=Array.from(new Set((e.by_weekday??[]).map(s=>s.trim().toLowerCase()).filter(s=>rn.includes(s)))).sort((s,a)=>gr(s)-gr(a)),r=Array.from(new Set((e.by_month_day??[]).filter(s=>Number.isInteger(s)&&s>=1&&s<=31).map(s=>s))).sort((s,a)=>s-a),o=Array.from(new Set((e.exdates??[]).map(s=>s.trim()).filter(s=>me(s)))).sort((s,a)=>_e(s,a)),i={freq:t,interval:e.interval!==void 0&&e.interval>1?e.interval:void 0,count:e.count,until:e.until?.trim()||void 0,by_weekday:n.length>0?n:void 0,by_month_day:r.length>0?r:void 0,exdates:o.length>0?o:void 0};for(let[s,a]of Object.entries(i))a===void 0&&delete i[s];return i}function il(e){return!Array.isArray(e)||e.length===0?void 0:[...e].map(sl).sort(al)}function sl(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:ol(e.recurrence)};return En(t),t}function al(e,t){return ks([_e(e.start_at,t.start_at),(e.end_at??"").localeCompare(t.end_at??""),(e.title??"").localeCompare(t.title??""),+!!e.all_day-+!!t.all_day,(e.timezone??"").localeCompare(t.timezone??""),(e.location??"").localeCompare(t.location??""),(e.description??"").localeCompare(t.description??""),JSON.stringify(e.recurrence??{}).localeCompare(JSON.stringify(t.recurrence??{}))])}function cl(e){if(!(!e||e.length===0))return e.map(t=>({path:it(t.path),scope:t.scope,note:t.note?.trim()||void 0}))}function dl(e){if(!e||e.length===0)return;let t=e.map(ml).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)=>ks([_e(n.recorded_at,r.recorded_at),n.run_id.localeCompare(r.run_id),n.kind.localeCompare(r.kind)]));return t.length>0?t:void 0}function rt(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?Math.floor(e):void 0}function ll(e){return typeof e=="number"&&Number.isFinite(e)&&e>=1?Math.floor(e):void 0}function Zr(e){return typeof e=="string"?e:""}function ul(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 wn(e,t){return typeof e=="string"&&t.has(e)?e:void 0}function fl(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:wn(n.requested_pm_context_mode,eo),pm_context_mode:wn(n.pm_context_mode,eo),workspace_context_mode:wn(n.workspace_context_mode,Es),trust_reason:wn(n.trust_reason,Dd)}));return t.length>0?t:void 0}function ml(e){let t=typeof e.run_id=="string"?e.run_id.trim():"",n=e.kind==="test"||e.kind==="test-all"?e.kind:"test",r=Nd.has(e.status)?e.status:"failed",o={run_id:t,kind:n,status:r,started_at:Zr(e.started_at),finished_at:Zr(e.finished_at),recorded_at:Zr(e.recorded_at),attempt:ll(e.attempt),resumed_from:e.resumed_from?.trim()||void 0,passed:rt(e.passed)??0,failed:rt(e.failed)??0,skipped:rt(e.skipped)??0,items:rt(e.items),linked_tests:rt(e.linked_tests),fail_on_skipped_triggered:e.fail_on_skipped_triggered===!0?!0:void 0,measurements:ul(e.measurements),executions:fl(e.executions)};return En(o),o}function _l(e){if(!(!Array.isArray(e)||e.length===0))return e.map(vl)}function Rt(e){if(!Array.isArray(e))return;let t=[...new Set(e.filter(n=>typeof n=="string").map(n=>n.trim()).filter(n=>n.length>0))].sort((n,r)=>n.localeCompare(r));return t.length>0?t:void 0}function oo(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function io(e){return e==="__proto__"||e==="constructor"||e==="prototype"}function ws(e){if(!oo(e))return;let t=Object.entries(e).map(([n,r])=>[n.trim(),String(r).trim()]).filter(([n,r])=>n.length>0&&!io(n)&&r.length>0).sort(([n],[r])=>n.localeCompare(r));return t.length>0?Object.fromEntries(t):void 0}function pl(e){if(!oo(e))return;let t=Object.entries(e).map(([n,r])=>[n.trim(),Number(r)]).filter(([n,r])=>n.length>0&&!io(n)&&Number.isFinite(r)).sort(([n],[r])=>n.localeCompare(r));return t.length>0?Object.fromEntries(t):void 0}function hl(e){let t=e?.trim().toLowerCase();if(!(!t||!eo.has(t)))return t}function yl(e){let t=e?.trim().toLowerCase();if(!(!t||!Es.has(t)))return t}function gl(e,t){if(t===!0)return{provenance_invalid:!0};if(e===void 0)return{};if(!oo(e))return{provenance_invalid:!0};let n=E(e.author),r=E(e.created_at),o=e.source_kind;return!n||!r||!me(r)||o!=="local_mutation"&&o!=="merge_union"?{provenance_invalid:!0}:{provenance:{author:n,created_at:r,source_kind:o,source_ref:E(e.source_ref)}}}function vl(e){let t={command:e.command?.trim()||void 0,path:e.path?it(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:hl(e.pm_context_mode),workspace_context_mode:yl(e.workspace_context_mode),...gl(e.provenance,e.provenance_invalid),env_set:ws(e.env_set),env_clear:Rt(e.env_clear),shared_host_safe:e.shared_host_safe===!0?!0:void 0,assert_stdout_contains:Rt(e.assert_stdout_contains),assert_stdout_regex:Rt(e.assert_stdout_regex),assert_stderr_contains:Rt(e.assert_stderr_contains),assert_stderr_regex:Rt(e.assert_stderr_regex),assert_stdout_min_lines:rt(e.assert_stdout_min_lines),assert_json_field_equals:ws(e.assert_json_field_equals),assert_json_field_gte:pl(e.assert_json_field_gte),note:e.note?.trim()||void 0};return En(t),t}function bl(e){if(!(!e||e.length===0))return[...e].map(t=>({path:it(t.path),scope:t.scope,note:t.note?.trim()||void 0})).sort((t,n)=>{let r=t.scope.localeCompare(n.scope);if(r!==0)return r;let o=t.path.localeCompare(n.path);return o!==0?o:(t.note??"").localeCompare(n.note??"")})}function E(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function wl(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=E(r.id),i=E(r.kind);if(!o||!i)continue;let s={id:o,kind:i},a=E(r.note);a&&(s.note=a),r.required_before_step===!0&&(s.required_before_step=!0),t.push(s)}return t.length>0?t:void 0}function El(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=E(r.path);if(!o)continue;let i={path:it(o)};(r.scope==="project"||r.scope==="global")&&(i.scope=r.scope);let s=E(r.note);s&&(i.note=s),t.push(i)}return t.length>0?t:void 0}function kl(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=E(r.command),i=E(r.path);if(!o&&!i)continue;let s={};o&&(s.command=o),i&&(s.path=it(i));let a=E(r.note);a&&(s.note=a),t.push(s)}return t.length>0?t:void 0}function Il(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=E(r.path);if(!o)continue;let i={path:it(o)};(r.scope==="project"||r.scope==="global")&&(i.scope=r.scope);let s=E(r.note);s&&(i.note=s),t.push(i)}return t.length>0?t:void 0}function Sl(e){if(e===null||typeof e!="object")return;let t=e,n=E(t.id),r=E(t.title),o=E(t.status),i=o&&Ld.has(o)?o:void 0,s=Si(t.order)??Number.NaN,a=typeof t.created_at=="string"?t.created_at:"",c=typeof t.updated_at=="string"?t.updated_at:"";if(!n||!r||!i||!Number.isFinite(s)||!a||!c)return;let d={id:n,order:s,title:r,status:i,created_at:a,updated_at:c};return Tl(d,t),d}function Tl(e,t){let n=[["body","body"],["owner","owner"],["evidence","evidence"],["blocked_reason","blocked_reason"],["superseded_by","superseded_by"]];for(let[i,s]of n){let a=E(t[s]);a&&(e[i]=a)}let r=typeof t.completed_at=="string"?t.completed_at:void 0;r&&r.length>0&&(e.completed_at=r);let o=[["linked_items","linked_items",wl],["files","files",El],["tests","tests",kl],["docs","docs",Il]];for(let[i,s,a]of o){let c=a(t[s]);c&&(e[i]=c)}}function Cl(e){if(!Array.isArray(e))return;let t=e.flatMap(n=>{let r=Sl(n);return r?[r]:[]});return t.sort((n,r)=>n.order-r.order),t.length>0?t:void 0}function Ol(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=typeof r.ts=="string"?r.ts:"",i=typeof r.author=="string"?r.author:"",s=E(r.decision);if(!o||!i||!s)continue;let a={ts:o,author:i,decision:s},c=E(r.rationale);c&&(a.rationale=c);let d=E(r.evidence);d&&(a.evidence=d);let u=E(r.step_id);u&&(a.step_id=u),t.push(a)}return t.length>0?t:void 0}function xl(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=typeof r.ts=="string"?r.ts:"",i=typeof r.author=="string"?r.author:"",s=E(r.text);if(!o||!i||!s)continue;let a={ts:o,author:i,text:s},c=E(r.step_id);c&&(a.step_id=c),t.push(a)}return t.length>0?t:void 0}function Rl(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=E(r.text);if(!o)continue;let i={text:o},s=E(r.command);s&&(i.command=s);let a=E(r.expected);a&&(i.expected=a),t.push(i)}return t.length>0?t:void 0}function Al(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 ot(e){let t=0;for(;t<e.length&&e[t]===`
6
+ `;)t+=1;return e.slice(t).trimEnd()}function Dl(e){if(e===void 0)return;if(typeof e=="number")return e;let t=e.trim().toLowerCase();if(t==="med")return"medium";if(tn.includes(t))return t}function Nl(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(t==="med")return"medium";if(en.includes(t))return t}function At(e){return e||void 0}function Ll(e,t){let n=e,r=t;for(let[o,i]of Object.entries(r))io(o)||Object.prototype.hasOwnProperty.call(n,o)||i===void 0||(n[o]=i)}function Pl(e,t){if(!t?.fieldRegistry)return;let n=e;for(let r of t.fieldRegistry.definitions){let o=n[r.metadata_key];o!==void 0&&(n[r.metadata_key]=xt(r,o,`metadata field "${r.metadata_key}"`))}}function Ml(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let n=Ts(t),o=Object.keys(e).filter(i=>!n.has(i)).sort((i,s)=>i.localeCompare(s));o.length>0&&t.unknownFieldPolicy==="reject"&&Se(`unknown schema fields are not allowed: ${o.join(", ")}`),o.length>0&&t.onWarning?.(`item_unknown_schema_fields:${o.join(",")}`)}function kn(e,t={}){let n=Ss(t),r=gn(e.status,n?.statusRegistry)??e.status,o=Array.from(new Set((Array.isArray(e.tags)?e.tags:[]).filter(s=>typeof s=="string").map(s=>s.trim().toLowerCase()).filter(Boolean))).sort((s,a)=>s.localeCompare(a)),i={id:e.id,title:e.title,description:e.description,type:e.type,pm_format_version:_s(e.pm_format_version),source_type:E(e.source_type),type_options:Al(e.type_options),status:r,priority:e.priority,tags:o,created_at:e.created_at,updated_at:e.updated_at,dependencies:nl(e.dependencies),comments:Qr(e.comments),notes:Qr(e.notes),learnings:Qr(e.learnings),files:cl(e.files),tests:_l(e.tests),test_runs:dl(e.test_runs),docs:bl(e.docs),deadline:At(e.deadline),reminders:rl(e.reminders),events:il(e.events),closed_at:At(e.closed_at),completed_at:At(e.completed_at),assignee:E(e.assignee),claim_principal:E(e.claim_principal),source_owner:E(e.source_owner),author:At(e.author),estimated_minutes:e.estimated_minutes,acceptance_criteria:e.acceptance_criteria??void 0,design:e.design??void 0,external_ref:e.external_ref??void 0,definition_of_ready:E(e.definition_of_ready),order:e.order,goal:E(e.goal),objective:E(e.objective),value:E(e.value),impact:E(e.impact),outcome:E(e.outcome),why_now:E(e.why_now),parent:E(e.parent),reviewer:E(e.reviewer),risk:e.risk??void 0,confidence:Dl(e.confidence),sprint:E(e.sprint),release:E(e.release),blocked_by:E(e.blocked_by),blocked_reason:E(e.blocked_reason),unblock_note:E(e.unblock_note),reporter:E(e.reporter),severity:Nl(e.severity),environment:E(e.environment),repro_steps:E(e.repro_steps),resolution:E(e.resolution),expected_result:E(e.expected_result),actual_result:E(e.actual_result),affected_version:E(e.affected_version),fixed_version:E(e.fixed_version),component:E(e.component),regression:e.regression,customer_impact:E(e.customer_impact),close_reason:At(e.close_reason),plan_mode:E(e.plan_mode),plan_scope:E(e.plan_scope),plan_harness:E(e.plan_harness),plan_resume_context:E(e.plan_resume_context),plan_steps:Cl(e.plan_steps),plan_decisions:Ol(e.plan_decisions),plan_discoveries:xl(e.plan_discoveries),plan_validation:Rl(e.plan_validation)};return Ll(i,e),Pl(i,n),Ml(i,n),En(i),i}function Cs(e){return T(e,ge)}function jl(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 Fl(e){if(!e.startsWith("{"))return{frontMatter:"",body:e};let t=jl(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 $l(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 ro(e,t){return kn(e,{...t,onWarning:void 0})}function Hl(e,t,n={}){let r=$l(e);r.stripped&&n.onWarning?.("json_markdown_leading_yaml_frontmatter_ignored");let{frontMatter:o,body:i}=Fl(r.content);o||(e.trimStart().startsWith("{")&&Dt("json_markdown","JSON front matter is not valid JSON"),Dt("json_markdown","JSON Markdown item document is missing JSON front matter"));let s;try{s=JSON.parse(o)}catch{Dt("json_markdown","JSON front matter is not valid JSON")}return no(s,t),{metadata:ro(s,n),body:ot(i)}}function zl(e,t,n={}){let r;try{r=Yr(e).value}catch{Dt("toon","TOON item document is not valid TOON")}I(typeof r=="object"&&r!==null&&!Array.isArray(r),"TOON item document must be an object");let o=r;if(!Is.some(a=>Object.prototype.hasOwnProperty.call(o,a))&&!Object.prototype.hasOwnProperty.call(o,"front_matter")&&Dt("toon","TOON input does not have the shape of an item document"),Object.prototype.hasOwnProperty.call(o,"front_matter"))return no(o.front_matter,t),I(o.body===void 0||typeof o.body=="string","TOON item document body must be a string"),{metadata:ro(o.front_matter,n),body:ot(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"),no(s,t),{metadata:ro(s,n),body:ot(typeof i=="string"?i:"")}}function Ul(e,t={}){let n=kn(e.metadata,t),r=Cs(n),o=JSON.stringify(r,null,2),i=ot(e.body??"");return i?`${o}
8
8
 
9
9
  ${i}
10
10
  `:`${o}
11
- `}function zl(e,t={}){let n=In(e.metadata,t),r=ks(n),o=ot(e.body??""),i={...r,body:o},s=JSON.parse(JSON.stringify(i)),a=xd(s),c;try{c=Yr(a).value}catch(d){throw new v("Refusing to persist a TOON item document that the configured decoder cannot read back.",b.GENERIC_FAILURE,{code:"item_document_roundtrip_failed",reason:"encode_decode_error",format:"toon",required:"Upgrade or repair the TOON codec before retrying the mutation; no item bytes were written.",why:d instanceof Error?d.message:String(d)})}if(!ps(c,s)){let d=typeof c=="object"&&c!==null&&!Array.isArray(c)?c:{},u=Object.keys(s).find(f=>!ps(s[f],d[f]))??"document";throw new v(`Refusing to persist a lossy TOON item document; round-trip mismatch at field "${u}".`,b.GENERIC_FAILURE,{code:"item_document_roundtrip_failed",reason:"encode_decode_mismatch",format:"toon",field:u,required:"Upgrade or repair the TOON codec before retrying the mutation; no item bytes were written.",why:"The encoded document decoded to a value different from the canonical item payload."})}return`${a}
12
- `}function Sn(e,t={}){let n=wn(e);if(n)throw new v(`Merge conflict markers detected in item document at line ${n.line} (${n.marker}). Resolve <<<<<<< ======= >>>>>>> markers and retry.`,b.GENERIC_FAILURE,{code:"merge_conflict_markers_detected",reason:"merge_conflict",required:"Resolve merge-conflict markers in the item file before parsing or mutation commands.",why:"Partially merged documents can corrupt item metadata and history integrity.",examples:["git status","git add <resolved-file> && git commit"],nextSteps:["Resolve conflicts, save the file, then rerun the pm command."]});let r=t.format??"toon",o=ws(t);return r==="toon"?$l(e,o,t):Fl(e,o,t)}function Is(e,t={}){return(t.format??"toon")==="toon"?zl(e,t):Hl(e,t)}function ne(e,t={}){return{metadata:In(e.metadata,t),body:ot(e.body??"")}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="bfa74c9e-a366-5b09-a7bc-869226fb6140")}catch{}})();async function Ul(e,t){let n=await ge(e);if(n===null)return{raw:n,entries:[]};if(await ve({path:e,scope:"project"}),n.trim()==="")return{raw:n,entries:[]};let r=wn(n);if(r)throw new v(`History for ${t} contains merge conflict markers at line ${r.line} (${r.marker}). Resolve <<<<<<< ======= >>>>>>> markers and retry.`,b.GENERIC_FAILURE,{code:"history_merge_conflict_markers_detected",required:"Repair the history stream by resolving merge-conflict markers.",why:"Conflict markers break JSONL parsing and invalidate deterministic audit history.",examples:[`pm history ${t}`,`pm restore ${t} <timestamp-or-version>`],nextSteps:["Resolve or restore the history file, then rerun the command."]});let o=[];for(let[i,s]of n.split(/\r?\n/).entries()){let a=s.trim();if(a)try{o.push(JSON.parse(a))}catch{throw new v(`History for ${t} contains invalid JSON at line ${i+1}. Repair or restore the history stream and retry.`,b.GENERIC_FAILURE,{code:"history_json_invalid",nextSteps:[`Run pm history-repair ${t} --salvage-tail --dry-run to check whether only an invalid suffix is damaged.`]})}}return{raw:n,entries:o}}async function Se(e,t){return(await Ul(e,t)).entries}import vo from"fast-json-patch";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="24b1fb96-5c1e-5669-be21-fdeef4d413a6")}catch{}})();function Ss(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 Ws from"fast-json-patch";import Hs from"node:fs/promises";import vu from"node:path";import j from"node:fs/promises";import z from"node:path";import{randomUUID as Cs}from"node:crypto";import{createRequire as Xl}from"node:module";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="9d5caf29-c1f2-5120-bc0b-c64a0bdd19ff")}catch{}})();var Bl=["docs_add","files_add","history:author-acknowledge","history_author_acknowledge","history_compact","history_compact_baseline","history_redact","history_repair","history_salvage","normalize","release","test_run_track","tests_add","tests_remove","update_audit","update_ownership_bypass"],Wl=["append","cancel","claim","close","comment_add","create","learning_add","note_add","reopen"],Vl=new Set(Bl),ql=new Set(Wl),Gl=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 Kl(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 st(e){return e.event_class==="substantive"||e.event_class==="maintenance"?e.event_class:Vl.has(e.op)?"maintenance":ql.has(e.op)||e.op!=="update"?"substantive":Array.isArray(e.patch)&&e.patch.length>0&&e.patch.every(t=>{let n=Kl(t);return n!==void 0&&Gl.has(n)})?"maintenance":"substantive"}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="542d77d0-7bb8-5ed0-a1da-09de33d3767f")}catch{}})();var Yl="history-event-index.sqlite",ao="5",Jl=8,Ql="history-event-index",co=300,Os=3e4,Zl="history-event-index-invalidation",eu="history-event-index-invalidations",tu=co*2*1e3,Rn=Symbol("history-index-lock-contended"),ze=new Map;function Pt(e){return z.join(e,"runtime",Yl)}function Dn(e){return z.join(e,"runtime",eu)}async function nu(e){let t=await j.readdir(Dn(e)).catch(n=>{if(te(n))return[];throw n});return{pending:t.filter(n=>n.endsWith(".pending")).sort(),committed:t.filter(n=>n.endsWith(".committed")).sort()}}async function so(e){let t=await nu(e);return{pending:(await Promise.all(t.pending.map(async r=>{let o=/^(\d+)-(unknown|\d+)-(\d+)-.+\.pending$/u.exec(r);if(o!==null){let i=o[2];if(await Hi({pid:Number(o[1]),...i==="unknown"?{}:{process_start_identity:i}},Math.max(0,Date.now()-Number(o[3])),tu))return r}return await j.rm(z.join(Dn(e),r),{force:!0}),null}))).filter(r=>r!==null),committed:t.committed}}async function Lt(e,t){let n=await Q(e,Zl,co,`history-event-index-invalidation:${process.pid}`,!1,!1,Os);try{return await t()}finally{await n()}}async function ru(e){let t=Dn(e);await j.mkdir(t,{recursive:!0});let n=Cs(),r=await $i(),o=z.join(t,`${r.pid}-${r.process_start_identity??"unknown"}-${Date.now()}-${n}.pending`);return await j.writeFile(o,`pending
13
- `,{flag:"wx"}),{pendingPath:o,committedPath:z.join(t,`${n}.committed`)}}function ou(e,t){return e.length===t.length&&e.every((n,r)=>n===t[r])}async function Tn(e){try{await j.rm(Pt(e),{force:!0})}catch{}}async function Nn(e,t){let n=await Q(e,Ql,co,`history-event-index:${process.pid}`,!1,!1,Os);try{return await t()}finally{await n()}}async function xs(e){let t=z.join(e,"history"),n=await j.readdir(t,{withFileTypes:!0}).catch(s=>{if(typeof s=="object"&&s!==null&&"code"in s&&s.code==="ENOENT")return[];throw s}),r=ze.get(e)??{streams:new Map,ordered_events:[]},o=new Set,i=!ze.has(e);for(let s of n.filter(a=>a.isFile()&&a.name.endsWith(".jsonl")).sort((a,c)=>a.name.localeCompare(c.name))){let a=s.name.slice(0,-6);o.add(a);let c=z.join(t,s.name),d=await j.stat(c,{bigint:!0}),u=[d.dev,d.ino,d.size,d.mtimeNs,d.ctimeNs].join(":");if(r.streams.get(a)?.signature===u)continue;let f=await Rs(c,a);r.streams.set(a,{signature:u,byte_size:Number(d.size),events:f.map((m,p)=>({stream_id:a,stream_offset:p,entry:m}))}),i=!0}for(let s of r.streams.keys())o.has(s)||(r.streams.delete(s),i=!0);if(i&&(r.ordered_events=[...r.streams.values()].flatMap(s=>s.events).sort(lo)),ze.delete(e),ze.set(e,r),ze.size>Jl){let s=ze.keys().next().value;ze.delete(s)}return{events:r.ordered_events,stream_byte_sizes:new Map([...r.streams].map(([s,a])=>[s,a.byte_size]))}}async function Rs(e,t){let n=await Se(e,t);for(let[r,o]of n.entries())if(typeof o.ts!="string"||!Qe(o.ts.trim()))throw new v(`History for ${t} contains an invalid or sub-millisecond timestamp at line ${r+1}. Repair or restore the history stream and retry.`,b.GENERIC_FAILURE,{code:"history_timestamp_invalid"});return n.map(r=>({...r,ts:new Date(r.ts.trim()).toISOString()}))}async function iu(e){return(await xs(e)).events}function su(e){try{return e(["node","sqlite"].join(":")).DatabaseSync??null}catch{return null}}function au(e,t){let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>=22?su(t):null}var Cn;function Ln(){return Cn!==void 0||(Cn=au(process.versions.node,Xl(import.meta.url))),Cn}function cu(e){e.exec(`
11
+ `}function Bl(e,t={}){let n=kn(e.metadata,t),r=Cs(n),o=ot(e.body??""),i={...r,body:o},s=JSON.parse(JSON.stringify(i)),a=Ad(s),c;try{c=Yr(a).value}catch(d){throw new v("Refusing to persist a TOON item document that the configured decoder cannot read back.",b.GENERIC_FAILURE,{code:"item_document_roundtrip_failed",reason:"encode_decode_error",format:"toon",required:"Upgrade or repair the TOON codec before retrying the mutation; no item bytes were written.",why:d instanceof Error?d.message:String(d)})}if(!vs(c,s)){let d=typeof c=="object"&&c!==null&&!Array.isArray(c)?c:{},u=Object.keys(s).find(f=>!vs(s[f],d[f]))??"document";throw new v(`Refusing to persist a lossy TOON item document; round-trip mismatch at field "${u}".`,b.GENERIC_FAILURE,{code:"item_document_roundtrip_failed",reason:"encode_decode_mismatch",format:"toon",field:u,required:"Upgrade or repair the TOON codec before retrying the mutation; no item bytes were written.",why:"The encoded document decoded to a value different from the canonical item payload."})}return`${a}
12
+ `}function In(e,t={}){let n=bn(e);if(n)throw new v(`Merge conflict markers detected in item document at line ${n.line} (${n.marker}). Resolve <<<<<<< ======= >>>>>>> markers and retry.`,b.GENERIC_FAILURE,{code:"merge_conflict_markers_detected",reason:"merge_conflict",required:"Resolve merge-conflict markers in the item file before parsing or mutation commands.",why:"Partially merged documents can corrupt item metadata and history integrity.",examples:["git status","git add <resolved-file> && git commit"],nextSteps:["Resolve conflicts, save the file, then rerun the pm command."]});let r=t.format??"toon",o=Ss(t);return r==="toon"?zl(e,o,t):Hl(e,o,t)}function Os(e,t={}){return(t.format??"toon")==="toon"?Bl(e,t):Ul(e,t)}function ne(e,t={}){return{metadata:kn(e.metadata,t),body:ot(e.body??"")}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="bfa74c9e-a366-5b09-a7bc-869226fb6140")}catch{}})();async function Wl(e,t){let n=await ve(e);if(n===null)return{raw:n,entries:[]};if(await be({path:e,scope:"project"}),n.trim()==="")return{raw:n,entries:[]};let r=bn(n);if(r)throw new v(`History for ${t} contains merge conflict markers at line ${r.line} (${r.marker}). Resolve <<<<<<< ======= >>>>>>> markers and retry.`,b.GENERIC_FAILURE,{code:"history_merge_conflict_markers_detected",required:"Repair the history stream by resolving merge-conflict markers.",why:"Conflict markers break JSONL parsing and invalidate deterministic audit history.",examples:[`pm history ${t}`,`pm restore ${t} <timestamp-or-version>`],nextSteps:["Resolve or restore the history file, then rerun the command."]});let o=[];for(let[i,s]of n.split(/\r?\n/).entries()){let a=s.trim();if(a)try{o.push(JSON.parse(a))}catch{throw new v(`History for ${t} contains invalid JSON at line ${i+1}. Repair or restore the history stream and retry.`,b.GENERIC_FAILURE,{code:"history_json_invalid",nextSteps:[`Run pm history-repair ${t} --salvage-tail --dry-run to check whether only an invalid suffix is damaged.`]})}}return{raw:n,entries:o}}async function Te(e,t){return(await Wl(e,t)).entries}import vo from"fast-json-patch";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="24b1fb96-5c1e-5669-be21-fdeef4d413a6")}catch{}})();function xs(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 Ks from"fast-json-patch";import Ws from"node:fs/promises";import wu from"node:path";import j from"node:fs/promises";import z from"node:path";import{randomUUID as As}from"node:crypto";import{createRequire as Jl}from"node:module";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="9d5caf29-c1f2-5120-bc0b-c64a0bdd19ff")}catch{}})();var Vl=["docs_add","files_add","history:author-acknowledge","history_author_acknowledge","history_compact","history_compact_baseline","history_redact","history_repair","history_salvage","normalize","release","test_run_track","tests_add","tests_remove","update_audit","update_ownership_bypass"],ql=["append","cancel","claim","close","comment_add","create","learning_add","note_add","reopen"],Gl=new Set(Vl),Kl=new Set(ql),Xl=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 Yl(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 st(e){return e.event_class==="substantive"||e.event_class==="maintenance"?e.event_class:Gl.has(e.op)?"maintenance":Kl.has(e.op)||e.op!=="update"?"substantive":Array.isArray(e.patch)&&e.patch.length>0&&e.patch.every(t=>{let n=Yl(t);return n!==void 0&&Xl.has(n)})?"maintenance":"substantive"}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="542d77d0-7bb8-5ed0-a1da-09de33d3767f")}catch{}})();var Ql="history-event-index.sqlite",ao="5",Zl=8,eu="history-event-index",co=300,Ds=3e4,tu="history-event-index-invalidation",nu="history-event-index-invalidations",ru=co*2*1e3,xn=Symbol("history-index-lock-contended"),Ue=new Map;function Pt(e){return z.join(e,"runtime",Ql)}function An(e){return z.join(e,"runtime",nu)}async function ou(e){let t=await j.readdir(An(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 so(e){let t=await ou(e);return{pending:(await Promise.all(t.pending.map(async r=>{let o=/^(\d+)-(unknown|\d+)-(\d+)-.+\.pending$/u.exec(r);if(o!==null){let i=o[2];if(await Bi({pid:Number(o[1]),...i==="unknown"?{}:{process_start_identity:i}},Math.max(0,Date.now()-Number(o[3])),ru))return r}return await j.rm(z.join(An(e),r),{force:!0}),null}))).filter(r=>r!==null),committed:t.committed}}async function Lt(e,t){let n=await V(e,tu,co,`history-event-index-invalidation:${process.pid}`,!1,!1,Ds);try{return await t()}finally{await n()}}async function iu(e){let t=An(e);await j.mkdir(t,{recursive:!0});let n=As(),r=await Ui(),o=z.join(t,`${r.pid}-${r.process_start_identity??"unknown"}-${Date.now()}-${n}.pending`);return await j.writeFile(o,`pending
13
+ `,{flag:"wx"}),{pendingPath:o,committedPath:z.join(t,`${n}.committed`)}}function su(e,t){return e.length===t.length&&e.every((n,r)=>n===t[r])}async function Sn(e){try{await j.rm(Pt(e),{force:!0})}catch{}}async function Dn(e,t){let n=await V(e,eu,co,`history-event-index:${process.pid}`,!1,!1,Ds);try{return await t()}finally{await n()}}async function Ns(e){let t=z.join(e,"history"),n=await j.readdir(t,{withFileTypes:!0}).catch(s=>{if(typeof s=="object"&&s!==null&&"code"in s&&s.code==="ENOENT")return[];throw s}),r=Ue.get(e)??{streams:new Map,ordered_events:[]},o=new Set,i=!Ue.has(e);for(let s of n.filter(a=>a.isFile()&&a.name.endsWith(".jsonl")).sort((a,c)=>a.name.localeCompare(c.name))){let a=s.name.slice(0,-6);o.add(a);let c=z.join(t,s.name),d=await j.stat(c,{bigint:!0}),u=[d.dev,d.ino,d.size,d.mtimeNs,d.ctimeNs].join(":");if(r.streams.get(a)?.signature===u)continue;let f=await Ls(c,a);r.streams.set(a,{signature:u,byte_size:Number(d.size),events:f.map((m,p)=>({stream_id:a,stream_offset:p,entry:m}))}),i=!0}for(let s of r.streams.keys())o.has(s)||(r.streams.delete(s),i=!0);if(i&&(r.ordered_events=[...r.streams.values()].flatMap(s=>s.events).sort(lo)),Ue.delete(e),Ue.set(e,r),Ue.size>Zl){let s=Ue.keys().next().value;Ue.delete(s)}return{events:r.ordered_events,stream_byte_sizes:new Map([...r.streams].map(([s,a])=>[s,a.byte_size]))}}async function Ls(e,t){let n=await Te(e,t);for(let[r,o]of n.entries())if(typeof o.ts!="string"||!Qe(o.ts.trim()))throw new v(`History for ${t} contains an invalid or sub-millisecond timestamp at line ${r+1}. Repair or restore the history stream and retry.`,b.GENERIC_FAILURE,{code:"history_timestamp_invalid"});return n.map(r=>({...r,ts:new Date(r.ts.trim()).toISOString()}))}async function au(e){return(await Ns(e)).events}function cu(e){try{return e(["node","sqlite"].join(":")).DatabaseSync??null}catch{return null}}function du(e,t){let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>=22?cu(t):null}var Tn;function Nn(){return Tn!==void 0||(Tn=du(process.versions.node,Jl(import.meta.url))),Tn}function lu(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(ao)}function As(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(ao)}function Ps(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,st(n),JSON.stringify(n))}function Ds(e){let t=JSON.parse(String(e.entry_json));return typeof t.ts!="string"||!Qe(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 Ns(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 du(e){let t=Ln();return t?Nn(e,async()=>{let n;try{n=await Lt(e,()=>so(e))}catch(s){if(s instanceof v&&s.code==="lock_conflict")return!1;throw s}if(n.pending.length>0)return!1;let r=Pt(e);await j.mkdir(z.dirname(r),{recursive:!0});let o=`${r}.${Cs()}.tmp`,i;try{i=new t(o),cu(i),i.exec("BEGIN IMMEDIATE");let s=await xs(e);for(let c of s.events)As(i,c);for(let[c,d]of s.stream_byte_sizes)Ns(i,c,d);i.exec("COMMIT"),i.close(),i=void 0;let a=await Lt(e,async()=>{let c=await so(e);return c.pending.length>0||!ou(n.committed,c.committed)?!1:(await j.rm(r,{force:!0}),await j.rename(o,r),await Promise.all(n.committed.map(d=>j.rm(z.join(Dn(e),d),{force:!0}))),!0)});return a||await j.rm(o,{force:!0}),a}catch(s){throw i?.close(),await j.rm(o,{force:!0}),s}}):!1}function On(e,t){return!t||t.length===0||t.includes(e)}function lo(e,t){return e.entry.ts.localeCompare(t.entry.ts)||e.stream_id.localeCompare(t.stream_id)||e.stream_offset-t.stream_offset}function An(e){let t=Date.parse(e);return Number.isFinite(t)?new Date(t).toISOString():e}function lu(e,t){if(t.after_ts!==void 0&&t.after_stream_id!==void 0&&t.after_stream_offset!==void 0){if(lo(e,{stream_id:t.after_stream_id,stream_offset:t.after_stream_offset,entry:{...e.entry,ts:An(t.after_ts)}})<=0)return!1}else if(t.since_ts!==void 0&&e.entry.ts<An(t.since_ts))return!1;return!0}function uu(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 fu(e,t){return!lu(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)||!uu(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 _y(e,t){let n=Math.max(0,Math.floor(t.limit)),r=(await iu(e)).filter(o=>fu(o,t)).slice(0,n+1);return{events:r.slice(0,t.limit),has_more:r.length>t.limit}}async function Ls(e,t,n){let r=z.dirname(z.dirname(e)),o=Ln();if(!o){await n();return}let i=!1;try{await Nn(r,async()=>{let s=Pt(r);try{await j.access(s)}catch{await n();return}let a;try{if(a=new o(s),a.prepare("SELECT value FROM metadata WHERE key = 'version'").get()?.value!==ao)throw new TypeError("Unsupported history event index version")}catch{a?.close(),await j.rm(s,{force:!0}),await n();return}try{a.exec("PRAGMA busy_timeout = 5000"),a.exec("BEGIN IMMEDIATE")}catch(d){throw a.close(),d}let c=!1;try{await n(),c=!0,i=!0;let d=z.basename(e,".jsonl"),u=a.prepare("SELECT COALESCE(MAX(stream_offset), -1) + 1 AS value FROM events WHERE stream_id = ?").get(d);As(a,{stream_id:d,stream_offset:Number(u.value),entry:t}),Ns(a,d,(await j.stat(e)).size),a.exec("COMMIT"),a.close()}catch(d){if(a?.close(),!c)throw d;await Tn(r)}})}catch(s){if(i){await Tn(r);return}if(!(s instanceof v)||s.code!=="lock_conflict")throw s;let a;try{await Lt(r,async()=>{let c=await ru(r);a=c.pendingPath;try{await n(),i=!0}catch(d){throw await j.rm(c.pendingPath,{force:!0}),d}await j.rename(c.pendingPath,c.committedPath),await Tn(r)})}catch(c){if(i){await Tn(r);try{await j.rm(a,{force:!0})}catch{}return}throw c}}}async function uo(e){await j.rm(Pt(z.dirname(z.dirname(e))),{force:!0})}function xn(e,t,n,r){!r||r.length===0||(e.push(`${n} IN (${r.map(()=>"?").join(", ")})`),t.push(...r))}function mu(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 Ps(e,t){let n=await so(e);if(n.pending.length>0||n.committed.length>0)return;let r=new t(Pt(e),{readOnly:!0});try{if(r.prepare("SELECT value FROM metadata WHERE key = 'version'").get()?.value===ao)return r}catch(o){throw r.close(),o}r.close()}async function py(e,t){let n=Ln();if(!n)return null;let r=[],o=[];if(t.after_ts!==void 0&&t.after_stream_id!==void 0&&t.after_stream_offset!==void 0){r.push("(ts > ? OR (ts = ? AND stream_id > ?) OR (ts = ? AND stream_id = ? AND stream_offset > ?))");let a=An(t.after_ts);o.push(a,a,t.after_stream_id,a,t.after_stream_id,t.after_stream_offset)}else t.since_ts!==void 0&&(r.push("ts >= ?"),o.push(An(t.since_ts)));xn(r,o,"op",t.ops),xn(r,o,"author",t.authors),mu(r,o,t.harnesses,t.harness_alias_authors),xn(r,o,"agent_instance",t.agent_instances);for(let a of t.provenance??[])r.push(`json_extract(entry_json, '$.agent_provenance.${a.dimension}.value') IN (${a.values.map(()=>"?").join(", ")})`),o.push(...a.values);xn(r,o,"stream_id",t.stream_ids);let i=r.length===0?"":` WHERE ${r.join(" AND ")}`,s;try{return await Nn(e,async()=>Lt(e,async()=>{if(s=await Ps(e,n),!s)return null;let a=await pu(s,e,t.stream_ids);if(!await js(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,st(n),JSON.stringify(n))}function Ms(e){let t=JSON.parse(String(e.entry_json));return typeof t.ts!="string"||!Qe(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 js(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 uu(e){let t=Nn();return t?Dn(e,async()=>{let n;try{n=await Lt(e,()=>so(e))}catch(s){if(s instanceof v&&s.code==="lock_conflict")return!1;throw s}if(n.pending.length>0)return!1;let r=Pt(e);await j.mkdir(z.dirname(r),{recursive:!0});let o=`${r}.${As()}.tmp`,i;try{i=new t(o),lu(i),i.exec("BEGIN IMMEDIATE");let s=await Ns(e);for(let c of s.events)Ps(i,c);for(let[c,d]of s.stream_byte_sizes)js(i,c,d);i.exec("COMMIT"),i.close(),i=void 0;let a=await Lt(e,async()=>{let c=await so(e);return c.pending.length>0||!su(n.committed,c.committed)?!1:(await j.rm(r,{force:!0}),await j.rename(o,r),await Promise.all(n.committed.map(d=>j.rm(z.join(An(e),d),{force:!0}))),!0)});return a||await j.rm(o,{force:!0}),a}catch(s){throw i?.close(),await j.rm(o,{force:!0}),s}}):!1}function Cn(e,t){return!t||t.length===0||t.includes(e)}function lo(e,t){return e.entry.ts.localeCompare(t.entry.ts)||e.stream_id.localeCompare(t.stream_id)||e.stream_offset-t.stream_offset}function Rn(e){let t=Date.parse(e);return Number.isFinite(t)?new Date(t).toISOString():e}function fu(e,t){if(t.after_ts!==void 0&&t.after_stream_id!==void 0&&t.after_stream_offset!==void 0){if(lo(e,{stream_id:t.after_stream_id,stream_offset:t.after_stream_offset,entry:{...e.entry,ts:Rn(t.after_ts)}})<=0)return!1}else if(t.since_ts!==void 0&&e.entry.ts<Rn(t.since_ts))return!1;return!0}function mu(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 _u(e,t){return!fu(e,t)||!Cn(e.entry.op,t.ops)||!Cn(e.entry.author,t.authors)||!Cn(e.entry.agent_instance??"",t.agent_instances)||!Cn(e.stream_id,t.stream_ids)||!mu(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 gy(e,t){let n=Math.max(0,Math.floor(t.limit)),r=(await au(e)).filter(o=>_u(o,t)).slice(0,n+1);return{events:r.slice(0,t.limit),has_more:r.length>t.limit}}async function Fs(e,t,n){let r=z.dirname(z.dirname(e)),o=Nn();if(!o){await n();return}let i=!1;try{await Dn(r,async()=>{let s=Pt(r);try{await j.access(s)}catch{await n();return}let a;try{if(a=new o(s),a.prepare("SELECT value FROM metadata WHERE key = 'version'").get()?.value!==ao)throw new TypeError("Unsupported history event index version")}catch{a?.close(),await j.rm(s,{force:!0}),await n();return}try{a.exec("PRAGMA busy_timeout = 5000"),a.exec("BEGIN IMMEDIATE")}catch(d){throw a.close(),d}let c=!1;try{await n(),c=!0,i=!0;let d=z.basename(e,".jsonl"),u=a.prepare("SELECT COALESCE(MAX(stream_offset), -1) + 1 AS value FROM events WHERE stream_id = ?").get(d);Ps(a,{stream_id:d,stream_offset:Number(u.value),entry:t}),js(a,d,(await j.stat(e)).size),a.exec("COMMIT"),a.close()}catch(d){if(a?.close(),!c)throw d;await Sn(r)}})}catch(s){if(i){await Sn(r);return}if(!(s instanceof v)||s.code!=="lock_conflict")throw s;let a;try{await Lt(r,async()=>{let c=await iu(r);a=c.pendingPath;try{await n(),i=!0}catch(d){throw await j.rm(c.pendingPath,{force:!0}),d}await j.rename(c.pendingPath,c.committedPath),await Sn(r)})}catch(c){if(i){await Sn(r);try{await j.rm(a,{force:!0})}catch{}return}throw c}}}async function uo(e){await j.rm(Pt(z.dirname(z.dirname(e))),{force:!0})}function On(e,t,n,r){!r||r.length===0||(e.push(`${n} IN (${r.map(()=>"?").join(", ")})`),t.push(...r))}function pu(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 $s(e,t){let n=await so(e);if(n.pending.length>0||n.committed.length>0)return;let r=new t(Pt(e),{readOnly:!0});try{if(r.prepare("SELECT value FROM metadata WHERE key = 'version'").get()?.value===ao)return r}catch(o){throw r.close(),o}r.close()}async function vy(e,t){let n=Nn();if(!n)return null;let r=[],o=[];if(t.after_ts!==void 0&&t.after_stream_id!==void 0&&t.after_stream_offset!==void 0){r.push("(ts > ? OR (ts = ? AND stream_id > ?) OR (ts = ? AND stream_id = ? AND stream_offset > ?))");let a=Rn(t.after_ts);o.push(a,a,t.after_stream_id,a,t.after_stream_id,t.after_stream_offset)}else t.since_ts!==void 0&&(r.push("ts >= ?"),o.push(Rn(t.since_ts)));On(r,o,"op",t.ops),On(r,o,"author",t.authors),pu(r,o,t.harnesses,t.harness_alias_authors),On(r,o,"agent_instance",t.agent_instances);for(let a of t.provenance??[])r.push(`json_extract(entry_json, '$.agent_provenance.${a.dimension}.value') IN (${a.values.map(()=>"?").join(", ")})`),o.push(...a.values);On(r,o,"stream_id",t.stream_ids);let i=r.length===0?"":` WHERE ${r.join(" AND ")}`,s;try{return await Dn(e,async()=>Lt(e,async()=>{if(s=await $s(e,n),!s)return null;let a=await yu(s,e,t.stream_ids);if(!await zs(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(Ds);return s.close(),s=void 0,d.includes(null)?null:{events:d,has_more:c.length>t.limit}}))}catch{return s?.close(),null}}function Ms(e,t){let n=Object.create(null);for(let r of e){if(!t.has(r.stream_id)||st(r.entry)!=="substantive")continue;let o=n[r.stream_id];(o===void 0||lo(o,r)<0)&&(n[r.stream_id]=r)}return n}async function _u(e,t){if(z.basename(t)!==t)return null;try{return(await j.stat(z.join(e,"history",`${t}.jsonl`))).size}catch(n){if(te(n))return 0;throw n}}async function js(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=>_u(t,a)));for(let[a,c]of s.entries()){if(c===null)return!1;let d=o[a],u=i.get(d);if(!(c===0&&u===void 0)&&c!==u)return!1}}return!0}async function pu(e,t,n){if(n&&n.length>0)return[...new Set(n.filter(i=>i.trim().length>0))];let r=e.prepare("SELECT stream_id FROM streams").all().map(i=>String(i.stream_id)),o=await j.readdir(z.join(t,"history"),{withFileTypes:!0}).then(i=>i.filter(s=>s.isFile()&&s.name.endsWith(".jsonl")).map(s=>s.name.slice(0,-6))).catch(i=>{if(te(i))return[];throw i});return[...new Set([...r,...o])]}async function Ts(e,t,n,r){if(!e)return null;let o;try{return await Nn(t,async()=>Lt(t,async()=>{if(o=await Ps(t,e),!o)return null;if(!await js(o,t,n))return o.close(),o=void 0,null;let i=[];for(let s=0;s<n.length;s+=500){let a=n.slice(s,s+500),d=o.prepare(`SELECT stream_id, stream_offset, entry_json
55
+ LIMIT ?`).all(...o,Math.max(0,Math.floor(t.limit))+1),d=c.slice(0,t.limit).map(Ms);return s.close(),s=void 0,d.includes(null)?null:{events:d,has_more:c.length>t.limit}}))}catch{return s?.close(),null}}function Hs(e,t){let n=Object.create(null);for(let r of e){if(!t.has(r.stream_id)||st(r.entry)!=="substantive")continue;let o=n[r.stream_id];(o===void 0||lo(o,r)<0)&&(n[r.stream_id]=r)}return n}async function hu(e,t){if(z.basename(t)!==t)return null;try{return(await j.stat(z.join(e,"history",`${t}.jsonl`))).size}catch(n){if(te(n))return 0;throw n}}async function zs(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=>hu(t,a)));for(let[a,c]of s.entries()){if(c===null)return!1;let d=o[a],u=i.get(d);if(!(c===0&&u===void 0)&&c!==u)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 j.readdir(z.join(t,"history"),{withFileTypes:!0}).then(i=>i.filter(s=>s.isFile()&&s.name.endsWith(".jsonl")).map(s=>s.name.slice(0,-6))).catch(i=>{if(te(i))return[];throw i});return[...new Set([...r,...o])]}async function Rs(e,t,n,r){if(!e)return null;let o;try{return await Dn(t,async()=>Lt(t,async()=>{if(o=await $s(t,e),!o)return null;if(!await zs(o,t,n))return o.close(),o=void 0,null;let i=[];for(let s=0;s<n.length;s+=500){let a=n.slice(s,s+500),d=o.prepare(`SELECT stream_id, stream_offset, entry_json
57
57
  FROM (
58
58
  SELECT stream_id, stream_offset, entry_json,
59
59
  ROW_NUMBER() OVER (
@@ -64,12 +64,12 @@ ${i}
64
64
  WHERE event_class = 'substantive'
65
65
  AND stream_id IN (${a.map(()=>"?").join(", ")})
66
66
  )
67
- WHERE recency_rank = 1`).all(...a).map(Ds);if(d.includes(null))return o.close(),o=void 0,null;i.push(...d)}return o.close(),o=void 0,Ms(i,r)}))}catch(i){return o?.close(),i instanceof v&&i.code==="lock_conflict"?Rn:null}}async function hy(e,t){let n=[...new Set(t.filter(a=>a.trim().length>0&&z.basename(a)===a))];if(n.length===0)return{};let r=new Set(n),o=Ln(),i=await Ts(o,e,n,r);if(i!==null&&i!==Rn)return i;if(o&&i!==Rn)try{if(await du(e)){let a=await Ts(o,e,n,r);if(a!==null&&a!==Rn)return a}}catch{}let s=[];return await Promise.all(n.map(async a=>{let c=z.join(e,"history",`${a}.jsonl`);(await Rs(c,a).catch(u=>{if(u instanceof v&&u.code==="history_timestamp_invalid")return[];throw u})).forEach((u,f)=>{s.push({stream_id:a,stream_offset:f,entry:u})})})),Ms(s,r)}import fo from"node:fs/promises";import at from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="979782f5-f4ee-5df5-a68a-0c51ab0548ae")}catch{}})();var hu=at.join("runtime","history-drift-cache.json"),Fs={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 $s(e){return typeof e=="object"&&e!==null&&"code"in e&&typeof e.code=="string"?e.code:void 0}async function yu(e){let t=at.join(e,hu),n=!1,r="invalid_cache_path";try{n=(await fo.stat(await fo.realpath(e))).isDirectory()}catch(o){let i=$s(o);r=i===void 0?"unknown":Fs[i]??"filesystem_error"}if(!n){Tr(`[pm] warning: history_drift_cache_invalidation_failed:${r}
68
- `);return}try{await fo.rm(t,{force:!0})}catch(o){let i=$s(o);if(te(o))return;let s=i===void 0?"unknown":Fs[i]??"filesystem_error";Tr(`[pm] warning: history_drift_cache_invalidation_failed:${s}
69
- `)}}async function Pn(e){let t=at.dirname(at.resolve(e));at.basename(t)==="history"&&await yu(at.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]="6583b1e2-5eae-5e97-af83-a78adac1d571")}catch{}})();var bu={front_matter:{},body:""},Ue=3,Mt=[1,2,3],wu=1,Eu=[1];function Vs(e){return ke(L(e),e.hash_algorithm)}function ct(e){return cn(L(e))}function Hy(e){return cn(L(e))}function ho(e){let t={...e,record_hash_version:wu},{record_hash:n,...r}=t;return{...t,record_hash:Vs(r)}}function Fn(e){try{$e(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(!Eu.includes(e.record_hash_version))return{ok:!1,error:"unsupported_record_hash_version"};let{record_hash:t,...n}=e;return Vs(n)===e.record_hash?{ok:!0,coverage:"record_and_item_state"}:{ok:!1,error:"record_hash_mismatch"}}function ku(e,t){let n={before_hash:e.before_hash,after_hash:e.after_hash,patch_hash:ct(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 qs(e,t,n={}){let r=Fn(e);if(!r.ok)throw new TypeError(r.error);let o=ct(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!==ct(t.patch),s=ho({...t,...i?{reanchor_evidence:[...t.reanchor_evidence??[],ku(e,n)]}:{}}),a=yo(s);if(!a.ok)throw new TypeError(a.error);return s}function Gs(e){return!Array.isArray(e)||Object.keys(e).length!==e.length?!1:e.every(t=>!Be(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 Iu(e){return Be(e)&&typeof e.ts=="string"&&typeof e.author=="string"&&typeof e.op=="string"&&typeof e.before_hash=="string"&&typeof e.after_hash=="string"&&Gs(e.patch)}function Su(e){let t=e.record_hash_version!==void 0,n=e.record_hash!==void 0;return t===n}function Tu(e){return!Be(e)||!Su(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&&!Gs(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||Iu(e.record)}function Cu(e){try{for(let t of e){if(!Tu(t))return!1;$e(t.hash_algorithm)}return!0}catch{return!1}}function Ou(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&&ct(t.patch)===e.patch_hash}function xu(e,t,n){if(t.patch&&ct(t.patch)!==t.patch_hash)return{kind:"patch_hash_mismatch"};if(t.record)return Ou(t)?{kind:"record",entry:t.record}:{kind:"record_hash_mismatch"};let r=t.patch??e.patch;if(ct(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 yo(e){let t=e.reanchor_evidence;if(t===void 0)return{ok:!0,coverage:"none"};if(!Array.isArray(t)||!Cu(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=xu(n,o,t.slice(0,r));if(i.kind==="patch_hash_mismatch")return{ok:!1,error:"rewrite_evidence_patch_hash_mismatch"};if(i.kind==="record_hash_mismatch")return{ok:!1,error:"rewrite_evidence_record_hash_mismatch"};if(i.kind==="digest_only")return{ok:!0,coverage:"digest_only"};if(i.kind==="legacy")return{ok:!0,coverage:"legacy_anchor_only"};if(!Fn(i.entry).ok)return{ok:!1,error:"rewrite_evidence_record_hash_mismatch"};n=i.entry}return{ok:!0,coverage:"complete"}}function Mn(e,t){return(e??"").localeCompare(t??"")}function zs(e,t){return(e??0)-(t??0)}function Te(e,t,n){return JSON.stringify(e??n).localeCompare(JSON.stringify(t??n))}function Ru(e,t){return[e.scope.localeCompare(t.scope),Mn(e.path,t.path),Mn(e.command,t.command),zs(e.timeout_seconds,t.timeout_seconds),Mn(e.pm_context_mode,t.pm_context_mode),+!!e.shared_host_safe-+!!t.shared_host_safe,Te(e.env_clear,t.env_clear,[]),Te(e.env_set,t.env_set,{}),Te(e.assert_stdout_contains,t.assert_stdout_contains,[]),Te(e.assert_stdout_regex,t.assert_stdout_regex,[]),Te(e.assert_stderr_contains,t.assert_stderr_contains,[]),Te(e.assert_stderr_regex,t.assert_stderr_regex,[]),zs(e.assert_stdout_min_lines,t.assert_stdout_min_lines),Te(e.assert_json_field_equals,t.assert_json_field_equals,{}),Te(e.assert_json_field_gte,t.assert_json_field_gte,{}),Mn(e.note,t.note)].find(r=>r!==0)??0}function Au(e){return!e||e==="/"?[]:e.startsWith("/")?e.slice(1).split("/").map(t=>t.replaceAll("~1","/").replaceAll("~0","~")):[]}function Du(e,t){let n=Au(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:Be(r)&&Object.prototype.hasOwnProperty.call(r,o)?r[o]:void 0;if(s===void 0)return!1;r=s}return!0}function Nu(e,t){let n=[],r=structuredClone(e);for(let o of t){let i=o.op==="replace"&&!Du(r,o.path)?{...o,op:"add"}:o;n.push(i),r=Ws.applyPatch(r,[i],!0,!0).newDocument}return n}function jn(e,t,n=!1){if(!(e.metadata&&Object.keys(e.metadata).length>0))return{front_matter:{},body:e.body??""};let o=ne(e),s=t===1||t===2&&n?{...o.metadata,...o.metadata.dependencies===void 0?{}:{dependencies:o.metadata.dependencies.map(d=>({...d,id:d.id.toLowerCase()}))},...o.metadata.tests===void 0?{}:{tests:o.metadata.tests.map(({workspace_context_mode:d,provenance:u,provenance_invalid:f,...m})=>m)},...o.metadata.test_runs===void 0?{}:{test_runs:o.metadata.test_runs.map(({executions:d,...u})=>u)}}:o.metadata,a=t===1&&s.tests?{...s,tests:[...s.tests].sort(Ru)}:s;return{front_matter:T(a,ye),body:o.body}}function Us(e){if(!(e.metadata&&Object.keys(e.metadata).length>0))return{metadata:{},body:e.body??""};let n=ne(e);return{metadata:T(n.metadata,ye),body:n.body}}function zy(e){return Ks(e,Ue)}function Ks(e,t,n){if(!Mt.some(r=>r===t))throw new TypeError(`unsupported_item_hash_version:${String(t)}`);return ke(L(jn(e,t)),n)}function Xs(e,t,n){let r=Ks(e,t,n);return t===2?[r,ke(L(jn(e,t,!0)),n)]:[r]}function Uy(){return cn(L(bu))}function dt(e){let t=fn(e.op),n=jn(e.before,Ue),r=jn(e.after,Ue),o=Us(e.before),i=Us(e.after),s=Ws.compare(o,i),a=Nu(o,s),c=is(e.author),d=c.harness?Object.fromEntries(Object.entries(rs().provenance_outcomes).filter(([,p])=>p.resolver!==void 0&&p.status!=="resolved")):void 0,u=d===void 0||Object.keys(d).length===0?e.context:{...e.context,agent_provenance_outcomes:d},f=e.hashAlgorithm??cs,m={hash_algorithm:f,ts:e.nowIso,author:e.author,author_source:e.authorSource??os(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:ke(L(n),f),after_hash:ke(L(r),f),item_hash_version:Ue,message:e.message===void 0?void 0:e.message,...u===void 0?{}:{context:u}};return ho({...m,event_class:st(m)})}function Be(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function mo(e){return new v(e,b.GENERIC_FAILURE,{code:"history_timestamp_invalid"})}function Ys(e){let t=e.ts.trim();if(t.length===0)return be();if(!Qe(t))throw mo("History timestamp must be a valid RFC 3339 date-time with millisecond precision");if(t!==e.ts)throw mo("History timestamp must not contain surrounding whitespace");return e.ts}function Bs(e,t){let n=e.ts;if(typeof n=="string"&&n.trim().length>0){if(!Qe(n))throw mo("History timestamp must be a valid RFC 3339 date-time with millisecond precision");return e}return{...e,ts:t}}function _o(e,t){let n=Ys(t);if(typeof e=="string"){let r;try{r=JSON.parse(e)}catch{return e}return Be(r)?JSON.stringify(Bs(r,n)):e}return Be(e)?JSON.stringify(Bs(e,n)):JSON.stringify(e)}async function Lu(e,t,n){if(n===!1)return!0;if(typeof n=="string"){let s=_o(n,t);return await po(e,s),await Pn(e),await uo(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=_o(typeof r.line=="string"?r.line:r.entry??t,t);return await po(o,i),await Pn(o),await uo(o),!0}async function po(e,t){let n;try{n=JSON.parse(t)}catch{n=null}if(!Be(n)||n.op!=="create"){await hi(e,t);return}await Hs.mkdir(vu.dirname(e),{recursive:!0});try{await Hs.writeFile(e,`${t}
70
- `,{encoding:"utf8",flag:"wx"})}catch(r){throw r.code!=="EEXIST"?r:new v("This item identity is reserved by an existing history stream.",b.CONFLICT,{code:"item_identity_reserved",required:"Choose a new item ID or restore the original item from its history.",nextSteps:["Run pm history <id> --full, then pm restore <id> <version> to recover the original item."]})}}async function lt(e,t){let n=await Ct("history_append",{history_path:e,entry:t});if(n.handled&&await Lu(e,t,n.result))return;let r=t.ts.trim().length>0?t:{...t,ts:Ys(t)},o=ho({...r,hash_algorithm:$e(r.hash_algorithm),event_class:st(r)});await Ls(e,o,async()=>{await po(e,_o(o,o))}),await Pn(e)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="7a0fa585-7e3c-57fd-b29c-c26e9c522cb1")}catch{}})();var ut={metadata:{},body:""};function $n(){return structuredClone(ut)}function Qy(e,t=Ue,n){return go(e,t,n)[0]}function go(e,t,n){if(Object.keys(e.metadata).length===0||Array.isArray(e.metadata.tags))try{return Xs(Hn(e),t,n)}catch{}let r=ke(L({replay_fallback:!0,metadata:e.metadata,body:e.body}),n);return t===2?[r,r]:[r]}function Zs(e,t,n,r){let o=$e(r.hash_algorithm),i=go(e,n,o),s=go(t,n,o);return{beforeHashes:i,afterHashes:s,pairIndex:i.findIndex((a,c)=>a===r.before_hash&&s[c]===r.after_hash),beforeIndex:i.indexOf(r.before_hash),afterIndex:s.indexOf(r.after_hash)}}function Hn(e){return{metadata:e.metadata,body:e.body}}function Zy(e,t={}){return ne(Hn(e),t)}function eg(e){if(!e.metadata||Object.keys(e.metadata).length===0)return{metadata:{},body:e.body??""};let t=ne(e);return{metadata:T(t.metadata,ye),body:t.body}}function Js(e){return e==="/front_matter"?"/metadata":e.startsWith("/front_matter/")?`/metadata/${e.slice(14)}`:e}function Pu(e){return typeof e=="object"&&e!==null&&typeof e.op=="string"&&typeof e.path=="string"}function ea(e){return Array.isArray(e)?e.filter(Pu).map(t=>({...t,path:Js(t.path),from:typeof t.from=="string"?Js(t.from):void 0})):[]}function Mu(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 We(e,t){try{let n=ea(t),r=vo.applyPatch(structuredClone(e),n,!0,!1).newDocument;return Mu(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 ju(e){return[...new Set(e.map(t=>t.item_hash_version).filter(t=>t!==void 0&&Mt.includes(t)))]}function ta(e){return e!==void 0&&!Mt.includes(e)}function Fu(e,t){return e!==void 0?[e]:t===void 0?[...Mt]:[t]}function na(e){let t=Fn(e);if(!t.ok)return t.error;let n=yo(e);return n.ok?void 0:n.error}function $u(e,t){let n=na(e);if(n)return{ok:!1,error:n};let r=We(t,e.patch);return r.ok?{ok:!0,document:r.document}:{ok:!1,error:"patch_apply_failed"}}function Hu(e,t){let n=na(e);if(n)throw new TypeError(`${n}:entry_${t+1}`)}function ra(e){let t=$n(),n,r,o=Ss(e).map(i=>`verify_failed:duplicate_create:entry_${i.repeated_create_index}:prior_${i.prior_genesis_index}`);for(let i=0;i<e.length;i+=1){let s=e[i],a=s.item_hash_version,c=ta(a);c&&o.push(`verify_failed:unsupported_item_hash_version:${String(a)}:entry_${i+1}`);let d=$u(s,t);if(!d.ok)return{ok:!1,errors:[...o,`verify_failed:${d.error}:entry_${i+1}`]};if(c){t=d.document,n=void 0,r=void 0;continue}let f=Fu(a,r).map(_=>({version:_,match:Zs(t,d.document,_,s)})),m=f.find(({match:_})=>_.pairIndex>=0);if(m===void 0){let _=f.some(({match:y})=>y.beforeIndex>=0);return{ok:!1,errors:[...o,`verify_failed:${_?"after":"before"}_hash_mismatch:entry_${i+1}`]}}let p=m.version;t=d.document,n=p,r=a??r}return o.length>0?{ok:!1,errors:o,...n===void 0?{}:{item_hash_version:n}}:{ok:!0,errors:[],...n===void 0?{}:{item_hash_version:n}}}function Ce(e){let t=ra(e);return{ok:t.ok,errors:t.errors}}function Qs(e,t){try{return{ok:!0,document:vo.applyPatch(structuredClone(e),[t],!0,!1).newDocument}}catch{return{ok:!1}}}function zu(e,t){let n=structuredClone(e),r=0,o=0;for(let a of ea(t)){let c=Qs(n,a);if(c.ok){n=c.document;continue}if(a.op==="replace"){let d=Qs(n,{...a,op:"add"});if(d.ok){n=d.document,r+=1;continue}}o+=1}let i=n;return{document:{metadata:typeof i.metadata=="object"&&i.metadata!==null?i.metadata:{},body:typeof i.body=="string"?i.body:e.body},convertedReplaceToAdd:r,skippedOps:o}}function Uu(e){let t=ju(e);if(t.length===1)return t[0];let n=ra(e);return n.ok&&n.item_hash_version!==void 0?n.item_hash_version:t.length===0?1:Ue}function Bu(e,t){let n=We(e,t.patch);if(n.ok)return{next:n.document,patch:t.patch,repaired:!1,converted:0,skipped:0};let r=zu(e,t.patch);return{next:r.document,patch:vo.compare(e,r.document),repaired:!0,converted:r.convertedReplaceToAdd,skipped:r.skippedOps}}function tg(e,t=Uu(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=$n(),i=[],s=[],a=0,c=0,d=0,u=0,f,m=t!==1||e.some(p=>p.item_hash_version!==void 0);for(let p=0;p<e.length;p+=1){let _=e[p];Hu(_,p);let y=Bu(o,_),{next:g,patch:S,repaired:R,converted:D,skipped:$}=y;d+=D,u+=$,c+=Number(R);let x=Zs(o,g,t,_);f===void 0||n.continuousHashSurface!==!0?f=[x.pairIndex,x.beforeIndex,x.afterIndex,Math.min(f??0,x.beforeHashes.length-1)].find(he=>he>=0):f=Math.min(f,x.beforeHashes.length-1);let q=x.beforeHashes[f],W=x.afterHashes[f],J=q!==_.before_hash||W!==_.after_hash;J&&(a+=1);let G={..._,patch:S,before_hash:q,after_hash:W};m?G.item_hash_version=t:delete G.item_hash_version;let ee=G.item_hash_version!==_.item_hash_version;(J||R||ee)&&(G=qs(_,G,{retainOriginalPatch:R})),i.push(G),s.push({index:p+1,rehashed:J,patch_repaired:R,converted_replace_to_add:D,skipped_ops:$}),o=g}return{entries:i,finalDocument:o,entriesRehashed:a,entriesPatchRepaired:c,convertedReplaceToAdd:d,skippedOps:u,details:s,itemHashVersion:t,explicitItemHashVersion:m}}function ng(e){return e.length===0?"":`${e.map(t=>JSON.stringify(t)).join(`
67
+ WHERE recency_rank = 1`).all(...a).map(Ms);if(d.includes(null))return o.close(),o=void 0,null;i.push(...d)}return o.close(),o=void 0,Hs(i,r)}))}catch(i){return o?.close(),i instanceof v&&i.code==="lock_conflict"?xn:null}}async function by(e,t){let n=[...new Set(t.filter(a=>a.trim().length>0&&z.basename(a)===a))];if(n.length===0)return{};let r=new Set(n),o=Nn(),i=await Rs(o,e,n,r);if(i!==null&&i!==xn)return i;if(o&&i!==xn)try{if(await uu(e)){let a=await Rs(o,e,n,r);if(a!==null&&a!==xn)return a}}catch{}let s=[];return await Promise.all(n.map(async a=>{let c=z.join(e,"history",`${a}.jsonl`);(await Ls(c,a).catch(u=>{if(u instanceof v&&u.code==="history_timestamp_invalid")return[];throw u})).forEach((u,f)=>{s.push({stream_id:a,stream_offset:f,entry:u})})})),Hs(s,r)}import fo from"node:fs/promises";import at from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="979782f5-f4ee-5df5-a68a-0c51ab0548ae")}catch{}})();var gu=at.join("runtime","history-drift-cache.json"),Us={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 Bs(e){return typeof e=="object"&&e!==null&&"code"in e&&typeof e.code=="string"?e.code:void 0}async function vu(e){let t=at.join(e,gu),n=!1,r="invalid_cache_path";try{n=(await fo.stat(await fo.realpath(e))).isDirectory()}catch(o){let i=Bs(o);r=i===void 0?"unknown":Us[i]??"filesystem_error"}if(!n){Tr(`[pm] warning: history_drift_cache_invalidation_failed:${r}
68
+ `);return}try{await fo.rm(t,{force:!0})}catch(o){let i=Bs(o);if(te(o))return;let s=i===void 0?"unknown":Us[i]??"filesystem_error";Tr(`[pm] warning: history_drift_cache_invalidation_failed:${s}
69
+ `)}}async function Ln(e){let t=at.dirname(at.resolve(e));at.basename(t)==="history"&&await vu(at.dirname(t))}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="8c02324c-231c-54ae-8edb-256ac7e04b50")}catch{}})();var Eu={front_matter:{},body:""},Be=3,Mt=[1,2,3],ku=1,Iu=[1];function Xs(e){return Ie(L(e),e.hash_algorithm)}function ct(e){return cn(L(e))}function Wy(e){return cn(L(e))}function ho(e){let t={...e,record_hash_version:ku},{record_hash:n,...r}=t;return{...t,record_hash:Xs(r)}}function jn(e){try{He(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(!Iu.includes(e.record_hash_version))return{ok:!1,error:"unsupported_record_hash_version"};let{record_hash:t,...n}=e;return Xs(n)===e.record_hash?{ok:!0,coverage:"record_and_item_state"}:{ok:!1,error:"record_hash_mismatch"}}function Su(e,t){let n={before_hash:e.before_hash,after_hash:e.after_hash,patch_hash:ct(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 Ys(e,t,n={}){let r=jn(e);if(!r.ok)throw new TypeError(r.error);let o=ct(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!==ct(t.patch),s=ho({...t,...i?{reanchor_evidence:[...t.reanchor_evidence??[],Su(e,n)]}:{}}),a=yo(s);if(!a.ok)throw new TypeError(a.error);return s}function Js(e){return!Array.isArray(e)||Object.keys(e).length!==e.length?!1:e.every(t=>!We(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 Tu(e){return We(e)&&typeof e.ts=="string"&&typeof e.author=="string"&&typeof e.op=="string"&&typeof e.before_hash=="string"&&typeof e.after_hash=="string"&&Js(e.patch)}function Cu(e){let t=e.record_hash_version!==void 0,n=e.record_hash!==void 0;return t===n}function Ou(e){return!We(e)||!Cu(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&&!Js(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||Tu(e.record)}function xu(e){try{for(let t of e){if(!Ou(t))return!1;He(t.hash_algorithm)}return!0}catch{return!1}}function Ru(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&&ct(t.patch)===e.patch_hash}function Au(e,t,n){if(t.patch&&ct(t.patch)!==t.patch_hash)return{kind:"patch_hash_mismatch"};if(t.record)return Ru(t)?{kind:"record",entry:t.record}:{kind:"record_hash_mismatch"};let r=t.patch??e.patch;if(ct(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 yo(e){let t=e.reanchor_evidence;if(t===void 0)return{ok:!0,coverage:"none"};if(!Array.isArray(t)||!xu(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=Au(n,o,t.slice(0,r));if(i.kind==="patch_hash_mismatch")return{ok:!1,error:"rewrite_evidence_patch_hash_mismatch"};if(i.kind==="record_hash_mismatch")return{ok:!1,error:"rewrite_evidence_record_hash_mismatch"};if(i.kind==="digest_only")return{ok:!0,coverage:"digest_only"};if(i.kind==="legacy")return{ok:!0,coverage:"legacy_anchor_only"};if(!jn(i.entry).ok)return{ok:!1,error:"rewrite_evidence_record_hash_mismatch"};n=i.entry}return{ok:!0,coverage:"complete"}}function Pn(e,t){return(e??"").localeCompare(t??"")}function Vs(e,t){return(e??0)-(t??0)}function Ce(e,t,n){return JSON.stringify(e??n).localeCompare(JSON.stringify(t??n))}function Du(e,t){return[e.scope.localeCompare(t.scope),Pn(e.path,t.path),Pn(e.command,t.command),Vs(e.timeout_seconds,t.timeout_seconds),Pn(e.pm_context_mode,t.pm_context_mode),+!!e.shared_host_safe-+!!t.shared_host_safe,Ce(e.env_clear,t.env_clear,[]),Ce(e.env_set,t.env_set,{}),Ce(e.assert_stdout_contains,t.assert_stdout_contains,[]),Ce(e.assert_stdout_regex,t.assert_stdout_regex,[]),Ce(e.assert_stderr_contains,t.assert_stderr_contains,[]),Ce(e.assert_stderr_regex,t.assert_stderr_regex,[]),Vs(e.assert_stdout_min_lines,t.assert_stdout_min_lines),Ce(e.assert_json_field_equals,t.assert_json_field_equals,{}),Ce(e.assert_json_field_gte,t.assert_json_field_gte,{}),Pn(e.note,t.note)].find(r=>r!==0)??0}function Nu(e){return!e||e==="/"?[]:e.startsWith("/")?e.slice(1).split("/").map(t=>t.replaceAll("~1","/").replaceAll("~0","~")):[]}function Lu(e,t){let n=Nu(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:We(r)&&Object.prototype.hasOwnProperty.call(r,o)?r[o]:void 0;if(s===void 0)return!1;r=s}return!0}function Pu(e,t){let n=[],r=structuredClone(e);for(let o of t){let i=o.op==="replace"&&!Lu(r,o.path)?{...o,op:"add"}:o;n.push(i),r=Ks.applyPatch(r,[i],!0,!0).newDocument}return n}function Mn(e,t,n=!1){if(!(e.metadata&&Object.keys(e.metadata).length>0))return{front_matter:{},body:e.body??""};let o=ne(e),s=t===1||t===2&&n?{...o.metadata,...o.metadata.dependencies===void 0?{}:{dependencies:o.metadata.dependencies.map(d=>({...d,id:d.id.toLowerCase()}))},...o.metadata.tests===void 0?{}:{tests:o.metadata.tests.map(({workspace_context_mode:d,provenance:u,provenance_invalid:f,...m})=>m)},...o.metadata.test_runs===void 0?{}:{test_runs:o.metadata.test_runs.map(({executions:d,...u})=>u)}}:o.metadata,a=t===1&&s.tests?{...s,tests:[...s.tests].sort(Du)}:s;return{front_matter:T(a,ge),body:o.body}}function qs(e){if(!(e.metadata&&Object.keys(e.metadata).length>0))return{metadata:{},body:e.body??""};let n=ne(e);return{metadata:T(n.metadata,ge),body:n.body}}function Vy(e){return Qs(e,Be)}function Qs(e,t,n){if(!Mt.some(r=>r===t))throw new TypeError(`unsupported_item_hash_version:${String(t)}`);return Ie(L(Mn(e,t)),n)}function Zs(e,t,n){let r=Qs(e,t,n);return t===2?[r,Ie(L(Mn(e,t,!0)),n)]:[r]}function qy(){return cn(L(Eu))}function dt(e){let t=fn(e.op),n=Mn(e.before,Be),r=Mn(e.after,Be),o=qs(e.before),i=qs(e.after),s=Ks.compare(o,i),a=Pu(o,s),c=ds(e.author),d=c.harness?Object.fromEntries(Object.entries(as().provenance_outcomes).filter(([p,_])=>_.resolver!==void 0&&(_.status!=="resolved"||c.provenance?.[p]?.source==="probe"))):void 0,u=d===void 0||Object.keys(d).length===0?e.context:{...e.context,agent_provenance_outcomes:d},f=e.hashAlgorithm??fs,m={hash_algorithm:f,ts:e.nowIso,author:e.author,author_source:e.authorSource??cs(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:Ie(L(n),f),after_hash:Ie(L(r),f),item_hash_version:Be,message:e.message===void 0?void 0:e.message,...u===void 0?{}:{context:u}};return ho({...m,event_class:st(m)})}function We(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function mo(e){return new v(e,b.GENERIC_FAILURE,{code:"history_timestamp_invalid"})}function ea(e){let t=e.ts.trim();if(t.length===0)return we();if(!Qe(t))throw mo("History timestamp must be a valid RFC 3339 date-time with millisecond precision");if(t!==e.ts)throw mo("History timestamp must not contain surrounding whitespace");return e.ts}function Gs(e,t){let n=e.ts;if(typeof n=="string"&&n.trim().length>0){if(!Qe(n))throw mo("History timestamp must be a valid RFC 3339 date-time with millisecond precision");return e}return{...e,ts:t}}function _o(e,t){let n=ea(t);if(typeof e=="string"){let r;try{r=JSON.parse(e)}catch{return e}return We(r)?JSON.stringify(Gs(r,n)):e}return We(e)?JSON.stringify(Gs(e,n)):JSON.stringify(e)}async function Mu(e,t,n){if(n===!1)return!0;if(typeof n=="string"){let s=_o(n,t);return await po(e,s),await Ln(e),await uo(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=_o(typeof r.line=="string"?r.line:r.entry??t,t);return await po(o,i),await Ln(o),await uo(o),!0}async function po(e,t){let n;try{n=JSON.parse(t)}catch{n=null}if(!We(n)||n.op!=="create"){await vi(e,t);return}await Ws.mkdir(wu.dirname(e),{recursive:!0});try{await Ws.writeFile(e,`${t}
70
+ `,{encoding:"utf8",flag:"wx"})}catch(r){throw r.code!=="EEXIST"?r:new v("This item identity is reserved by an existing history stream.",b.CONFLICT,{code:"item_identity_reserved",required:"Choose a new item ID or restore the original item from its history.",nextSteps:["Run pm history <id> --full, then pm restore <id> <version> to recover the original item."]})}}async function lt(e,t){let n=await Ct("history_append",{history_path:e,entry:t});if(n.handled&&await Mu(e,t,n.result))return;let r=t.ts.trim().length>0?t:{...t,ts:ea(t)},o=ho({...r,hash_algorithm:He(r.hash_algorithm),event_class:st(r)});await Fs(e,o,async()=>{await po(e,_o(o,o))}),await Ln(e)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="7a0fa585-7e3c-57fd-b29c-c26e9c522cb1")}catch{}})();var ut={metadata:{},body:""};function Fn(){return structuredClone(ut)}function ng(e,t=Be,n){return go(e,t,n)[0]}function go(e,t,n){if(Object.keys(e.metadata).length===0||Array.isArray(e.metadata.tags))try{return Zs($n(e),t,n)}catch{}let r=Ie(L({replay_fallback:!0,metadata:e.metadata,body:e.body}),n);return t===2?[r,r]:[r]}function ra(e,t,n,r){let o=He(r.hash_algorithm),i=go(e,n,o),s=go(t,n,o);return{beforeHashes:i,afterHashes:s,pairIndex:i.findIndex((a,c)=>a===r.before_hash&&s[c]===r.after_hash),beforeIndex:i.indexOf(r.before_hash),afterIndex:s.indexOf(r.after_hash)}}function $n(e){return{metadata:e.metadata,body:e.body}}function rg(e,t={}){return ne($n(e),t)}function og(e){if(!e.metadata||Object.keys(e.metadata).length===0)return{metadata:{},body:e.body??""};let t=ne(e);return{metadata:T(t.metadata,ge),body:t.body}}function ta(e){return e==="/front_matter"?"/metadata":e.startsWith("/front_matter/")?`/metadata/${e.slice(14)}`:e}function ju(e){return typeof e=="object"&&e!==null&&typeof e.op=="string"&&typeof e.path=="string"}function oa(e){return Array.isArray(e)?e.filter(ju).map(t=>({...t,path:ta(t.path),from:typeof t.from=="string"?ta(t.from):void 0})):[]}function Fu(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 Ve(e,t){try{let n=oa(t),r=vo.applyPatch(structuredClone(e),n,!0,!1).newDocument;return Fu(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 $u(e){return[...new Set(e.map(t=>t.item_hash_version).filter(t=>t!==void 0&&Mt.includes(t)))]}function ia(e){return e!==void 0&&!Mt.includes(e)}function Hu(e,t){return e!==void 0?[e]:t===void 0?[...Mt]:[t]}function sa(e){let t=jn(e);if(!t.ok)return t.error;let n=yo(e);return n.ok?void 0:n.error}function zu(e,t){let n=sa(e);if(n)return{ok:!1,error:n};let r=Ve(t,e.patch);return r.ok?{ok:!0,document:r.document}:{ok:!1,error:"patch_apply_failed"}}function Uu(e,t){let n=sa(e);if(n)throw new TypeError(`${n}:entry_${t+1}`)}function aa(e){let t=Fn(),n,r,o=xs(e).map(i=>`verify_failed:duplicate_create:entry_${i.repeated_create_index}:prior_${i.prior_genesis_index}`);for(let i=0;i<e.length;i+=1){let s=e[i],a=s.item_hash_version,c=ia(a);c&&o.push(`verify_failed:unsupported_item_hash_version:${String(a)}:entry_${i+1}`);let d=zu(s,t);if(!d.ok)return{ok:!1,errors:[...o,`verify_failed:${d.error}:entry_${i+1}`]};if(c){t=d.document,n=void 0,r=void 0;continue}let f=Hu(a,r).map(_=>({version:_,match:ra(t,d.document,_,s)})),m=f.find(({match:_})=>_.pairIndex>=0);if(m===void 0){let _=f.some(({match:y})=>y.beforeIndex>=0);return{ok:!1,errors:[...o,`verify_failed:${_?"after":"before"}_hash_mismatch:entry_${i+1}`]}}let p=m.version;t=d.document,n=p,r=a??r}return o.length>0?{ok:!1,errors:o,...n===void 0?{}:{item_hash_version:n}}:{ok:!0,errors:[],...n===void 0?{}:{item_hash_version:n}}}function Oe(e){let t=aa(e);return{ok:t.ok,errors:t.errors}}function na(e,t){try{return{ok:!0,document:vo.applyPatch(structuredClone(e),[t],!0,!1).newDocument}}catch{return{ok:!1}}}function Bu(e,t){let n=structuredClone(e),r=0,o=0;for(let a of oa(t)){let c=na(n,a);if(c.ok){n=c.document;continue}if(a.op==="replace"){let d=na(n,{...a,op:"add"});if(d.ok){n=d.document,r+=1;continue}}o+=1}let i=n;return{document:{metadata:typeof i.metadata=="object"&&i.metadata!==null?i.metadata:{},body:typeof i.body=="string"?i.body:e.body},convertedReplaceToAdd:r,skippedOps:o}}function Wu(e){let t=$u(e);if(t.length===1)return t[0];let n=aa(e);return n.ok&&n.item_hash_version!==void 0?n.item_hash_version:t.length===0?1:Be}function Vu(e,t){let n=Ve(e,t.patch);if(n.ok)return{next:n.document,patch:t.patch,repaired:!1,converted:0,skipped:0};let r=Bu(e,t.patch);return{next:r.document,patch:vo.compare(e,r.document),repaired:!0,converted:r.convertedReplaceToAdd,skipped:r.skippedOps}}function ig(e,t=Wu(e),n={}){let r=e.findIndex(p=>ia(p.item_hash_version));if(r>=0)throw new TypeError(`unsupported_item_hash_version:${String(e[r]?.item_hash_version)}:entry_${r+1}`);let o=Fn(),i=[],s=[],a=0,c=0,d=0,u=0,f,m=t!==1||e.some(p=>p.item_hash_version!==void 0);for(let p=0;p<e.length;p+=1){let _=e[p];Uu(_,p);let y=Vu(o,_),{next:g,patch:S,repaired:R,converted:D,skipped:$}=y;d+=D,u+=$,c+=Number(R);let x=ra(o,g,t,_);f===void 0||n.continuousHashSurface!==!0?f=[x.pairIndex,x.beforeIndex,x.afterIndex,Math.min(f??0,x.beforeHashes.length-1)].find(ye=>ye>=0):f=Math.min(f,x.beforeHashes.length-1);let G=x.beforeHashes[f],W=x.afterHashes[f],Q=G!==_.before_hash||W!==_.after_hash;Q&&(a+=1);let K={..._,patch:S,before_hash:G,after_hash:W};m?K.item_hash_version=t:delete K.item_hash_version;let ee=K.item_hash_version!==_.item_hash_version;(Q||R||ee)&&(K=Ys(_,K,{retainOriginalPatch:R})),i.push(K),s.push({index:p+1,rehashed:Q,patch_repaired:R,converted_replace_to_add:D,skipped_ops:$}),o=g}return{entries:i,finalDocument:o,entriesRehashed:a,entriesPatchRepaired:c,convertedReplaceToAdd:d,skippedOps:u,details:s,itemHashVersion:t,explicitItemHashVersion:m}}function sg(e){return e.length===0?"":`${e.map(t=>JSON.stringify(t)).join(`
71
71
  `)}
72
- `}import Wu from"node:crypto";import zn from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="1a689c0c-972a-5aff-a15e-ea48fcdf478b")}catch{}})();function ia(e){let t=[],n=!1;for(let r of(e??"").toLowerCase()){let o=r.charCodeAt(0),i=o>=48&&o<=57,s=o>=97&&o<=122;if(!i&&!s){n=t.length>0;continue}n&&(t.push("-"),n=!1),t.push(r)}return t.length===0?"pm-":`${t.join("")}-`}function jt(e){let t=e.trim().toLowerCase();return t.startsWith("#")&&(t=t.slice(1)),t}function Ve(e,t){let n=ia(t),r=jt(e);return r.startsWith(n)?r:`${n}${r}`}function Vu(e){let t=ji(e);if(t!==void 0)return t;let n="";for(let r=0;r<e;r+=1)n+=Wu.randomInt(0,36).toString(36);return n}async function qu(e,t,n){let r=[...new Set(Object.values(n))].flatMap(o=>[zn.join(e,o,`${t}.md`),zn.join(e,o,`${t}.toon`)]);return r.push(zn.join(e,"history",`${t}.jsonl`)),(await Promise.all(r.map(o=>Le(o)))).some(Boolean)}var oa=4,sa=12;function Gu(e){return typeof e!="number"||!Number.isFinite(e)?oa:Math.min(sa,Math.max(oa,Math.trunc(e)))}async function dg(e,t,n={}){let r=Gu(n.tokenLength),o=Math.min(r+6,sa),i=0;for(;r<=o;){for(let s=0;s<32;s+=1){let a=`${ia(t)}${Vu(r)}`;if(!await(n.probeExisting===!1?Le(zn.join(e,"history",`${a}.jsonl`)):qu(e,a,n.typeToFolder??Ne)))return a;i+=1}r+=1}throw new Error(`Unable to generate unique id after ${i} attempts`)}import fa from"node:fs/promises";import Un from"node:path";import{isUtf8 as Ju}from"node:buffer";import Ku from"node:fs/promises";import ft from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="e2a2001e-b162-599e-b262-76d2223a343c")}catch{}})();var Ft="_workspace";function bo(e){return ft.join(e,"history",`${Ft}.jsonl`)}function Xu(e,t){return{metadata:{id:Ft,title:"Workspace state",description:"Audited singleton workspace document state.",type:"Chore",status:"open",priority:2,tags:["workspace-history"],created_at:t,updated_at:t,documents:e},body:""}}function wo(e,t=e.length){let n=$n();for(let r of e.slice(0,t))n=We(n,r.patch).document;return Hn(n)}function aa(e){return"documents"in e.metadata&&typeof e.metadata.documents=="object"&&e.metadata.documents!==null&&!Array.isArray(e.metadata.documents)?e.metadata.documents:{}}function Eo(e){throw new v(`Workspace history verification failed: ${e.join(", ")}`,b.CONFLICT,{code:"workspace_history_chain_invalid",reason:"workspace_history_chain_verification_failed",verification_errors:[...e],required:"Repair the _workspace history chain before reading, reconciling, restoring, or appending audited singleton state.",why:"Continuing against an unverifiable append-only stream could hide or compound workspace state corruption.",examples:["pm history _workspace --verify --json","pm validate --check-history-drift --fix-hints --json"],nextSteps:["Inspect the exact verification_errors and preserve the corrupt stream as evidence.","Use the history-drift remediation returned by validate before retrying the refused operation."],recovery:{recovery_mode:"compact",next_best_command:"pm history _workspace --verify --json"}})}function Yu(e,t){let n=ft.resolve(t),r=ft.relative(e,n).replaceAll("\\","/");if(r.length===0||r===".."||r.startsWith("../")||ft.isAbsolute(r))throw new TypeError("Workspace history document path must stay inside the tracker root");return{documentPath:r,absolutePath:n}}async function Eg(e){let t=await Se(bo(e),Ft),n=Ce(t);n.ok||Eo(n.errors);let r=aa(t.length===0?Ye:wo(t)),o=[],i=[],s=[],a=[];for(let c of Object.keys(r).sort()){let d;try{let u=Yu(e,ft.resolve(e,c));if(d=await ge(u.absolutePath),d===null){s.push(c);continue}let f=JSON.parse(d);(L(f)===L(r[c])?o:i).push(c)}catch{a.push(c)}}return{ok:i.length===0&&s.length===0&&a.length===0,document_count:Object.keys(r).length,matching_documents:o,mismatched_documents:i,missing_documents:s,unreadable_documents:a}}async function ca(e){let t=bo(e.pmRoot),n=await Se(t,Ft),r=Ce(n);r.ok||Eo(r.errors);let o=e.idempotencyKey===void 0?void 0:n.find(f=>f.op===`${e.op}:${e.idempotencyKey}`);if(o)return{entry:o,historyPath:t};let i=be(),s=n.length===0?Ye:wo(n),a=aa(s),c=a[e.documentPath];if(c!==void 0&&L(c)!==L(e.before))throw new v(`Workspace history state for "${e.documentPath}" changed outside the audited mutation path.`,b.CONFLICT,{code:"workspace_history_state_conflict",reason:"out_of_band_workspace_state",required:"Reconcile the singleton document with its matching _workspace history state before retrying the mutation.",why:"Accepting the write would make the append-only audit stream describe a state that was not actually observed.",examples:["pm history _workspace --verify","pm validate --check-history-drift --fix-hints"],nextSteps:["Review the version-control change that altered the singleton and preserve the intended document plus its matching workspace history.","Rerun the original mutation only after the on-disk singleton agrees with the latest audited workspace state."],recovery:{recovery_mode:"compact",next_best_command:"pm history _workspace --verify"}});let d=Xu({...a,[e.documentPath]:e.after},n.length===0?i:s.metadata.created_at),u=dt({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 lt(t,u),{entry:u,historyPath:t}}async function kg(e){let t=await Q(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await ca(e)}finally{await t()}}async function da(e){let t=await Q(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{let n=bo(e.pmRoot),r=await Se(n,Ft),o=Ce(r);o.ok||Eo(o.errors);let i=r.length===0?Ye:wo(r),s=dt({nowIso:be(),author:e.author,op:e.op,before:i,after:i,message:e.message,context:e.context});return await lt(n,s),{entry:s,historyPath:n}}finally{await t()}}async function la(e,t){if(t===e.raw)return!1;let n=t===null?null:JSON.parse(t),r=JSON.parse(e.raw);await K(e.filePath,e.raw);try{(t!==null||e.recordCreation!==!1)&&await ca({pmRoot:e.pmRoot,documentPath:ft.relative(e.pmRoot,e.filePath).replaceAll("\\","/"),before:n,after:r,op:e.op,author:e.author,lockTtlSeconds:e.lockTtlSeconds,lockWaitMs:e.lockWaitMs,message:e.message})}catch(o){throw t===null?await Ku.rm(e.filePath,{force:!0}):await K(e.filePath,t),o}return!0}async function Ig(e){let t=await Q(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{let n=await ge(e.filePath),r=await e.mutate(n);return{changed:await la({...e,raw:r.raw},n),result:r.result}}finally{await t()}}async function ua(e){let t=await Q(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await la(e,await ge(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]="3635d0ca-b4ee-5c99-9115-6eace5120147")}catch{}})();var Qu=1048576,Zu=4194304;async function ma(e,t){let n=Un.dirname(e);for(;n!==Un.parse(e).root;){let o=await fa.stat(n).catch(i=>{if(te(i))return null;throw i});if(o!==null){if(!o.isDirectory())throw new v("Workflow policy storage ancestor must be a directory.",b.CONFLICT,{code:"workflow_policy_input_unreadable",nextSteps:["Restore the policy or approval history directory before retrying."]});break}n=Un.dirname(n)}let r=await fa.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||!Ju(i.subarray(0,s)))throw new v("Workflow policy input exceeds its byte bound or is not valid UTF-8.",b.CONFLICT,{code:"workflow_policy_input_unreadable",nextSteps:["Inspect the policy and approval history; reduce the declaration or use verified history compaction before retrying."]});return i.toString("utf8",0,s)}finally{await r.close()}}function ef(e){if(e===null)return{version:1,enforcement:"advise",policies:[]};let t;try{t=JSON.parse(e)}catch{throw new v("schema/policies.json must contain valid JSON.",b.CONFLICT,{code:"workflow_policy_registry_invalid",nextSteps:["Restore valid policy JSON before retrying the mutation."]})}return Ri(t)}async function tf(e){return ef(await ma(Un.join(e,"schema","policies.json"),Qu))}async function nf(e,t){let n=await ma(ce(e,t),Zu);if(n===null)return[];let r;try{if(r=n.split(/\r?\n/).filter(o=>o.trim()).map(o=>JSON.parse(o)),!Ce(r).ok)throw new Error("invalid chain")}catch{throw new v("Approval evidence requires a valid item history chain.",b.CONFLICT,{code:"workflow_policy_approval_history_invalid",nextSteps:[`Run pm history ${t} --verify before recording or using an approval.`]})}return r.flatMap(o=>{let i=o.context?.workflow_approval;if(o.op!=="policy_approve"||o.record_hash_version!==1||typeof o.record_hash!="string"||typeof i!="object"||i===null)return[];let s=i;return typeof s.policy_fingerprint!="string"||typeof s.content_fingerprint!="string"?[]:[{policy_fingerprint:s.policy_fingerprint,content_fingerprint:s.content_fingerprint,author:o.author}]})}async function rf(e,t,n){let r=n.before?.status!==n.after?.status&&t.policies.some(s=>s.rule.kind==="approval"&&Ai(s,n)),o=n.before?.id??n.after?.id,i=r&&typeof o=="string"?await nf(e,o):[];return Di(t,{...n,approvals:i})}async function ko(e){let t=await tf(e.pmRoot),n=await rf(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(s=>!s.satisfied&&s.effect==="refuse");if(!e.dryRun)try{await da({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(s){let a=new v("Workflow policy refusal could not be recorded in workspace history.",b.CONFLICT,{code:"workflow_policy_audit_failed",nextSteps:["Resolve workspace-history lock or storage failures, then retry the refused mutation; no item changes were written."]});throw a.cause=s,a}let o=r.slice(0,3).map(s=>`${s.policy_id} (${s.rule})`).join(", "),i=r.length>3?` and ${r.length-3} more`:"";throw new v(`Workflow policy refused ${e.operation}: ${o}${i}.`,b.CONFLICT,{code:"workflow_policy_refused",reason:r.slice(0,3).map(s=>s.policy_id).join(","),nextSteps:[...new Set(r.map(s=>s.remediation))].slice(0,3)})}import{AsyncLocalStorage as of}from"node:async_hooks";import{channel as sf}from"node:diagnostics_channel";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="118ec110-fa84-550b-a0a8-4def314270b6")}catch{}})();var Io=new of,So=sf("@unbrained/pm-cli/item-metadata-enumeration/v1");function Bn(e){So.publish(e)}async function $g(e){let t={enumeration_calls:0,metadata_rows:0},n=r=>{Io.getStore()?.includes(t)&&(t.enumeration_calls+=1,t.metadata_rows+=r)};So.subscribe(n);try{return{result:await Io.run([...Io.getStore()??[],t],e),work:{...t}}}finally{So.unsubscribe(n)}}import qe from"node:fs/promises";import pa from"node:path";import{randomUUID as af}from"node:crypto";import{createRequire as cf}from"node:module";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="e9e67ec7-10cb-57b0-a094-ae52b01a0f8a")}catch{}})();var df="metadata-query-index.sqlite",$t="5";function lf(e){try{return e(["node","sqlite"].join(":")).DatabaseSync??null}catch{return null}}var Wn;function uf(e,t){let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>=22?lf(t):null}function Ht(){return Wn!==void 0||(Wn=uf(process.versions.node,cf(import.meta.url))),Wn}function _a(e,t){return Math.max(0,Math.floor(e===void 0?t:e))}function mt(e){return pa.join(e,"runtime",df)}function ff(e){e.exec(`
72
+ `}import qu from"node:crypto";import Hn from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="1a689c0c-972a-5aff-a15e-ea48fcdf478b")}catch{}})();function da(e){let t=[],n=!1;for(let r of(e??"").toLowerCase()){let o=r.charCodeAt(0),i=o>=48&&o<=57,s=o>=97&&o<=122;if(!i&&!s){n=t.length>0;continue}n&&(t.push("-"),n=!1),t.push(r)}return t.length===0?"pm-":`${t.join("")}-`}function jt(e){let t=e.trim().toLowerCase();return t.startsWith("#")&&(t=t.slice(1)),t}function qe(e,t){let n=da(t),r=jt(e);return r.startsWith(n)?r:`${n}${r}`}function Gu(e){let t=Hi(e);if(t!==void 0)return t;let n="";for(let r=0;r<e;r+=1)n+=qu.randomInt(0,36).toString(36);return n}async function Ku(e,t,n){let r=[...new Set(Object.values(n))].flatMap(o=>[Hn.join(e,o,`${t}.md`),Hn.join(e,o,`${t}.toon`)]);return r.push(Hn.join(e,"history",`${t}.jsonl`)),(await Promise.all(r.map(o=>Pe(o)))).some(Boolean)}var ca=4,la=12;function Xu(e){return typeof e!="number"||!Number.isFinite(e)?ca:Math.min(la,Math.max(ca,Math.trunc(e)))}async function mg(e,t,n={}){let r=Xu(n.tokenLength),o=Math.min(r+6,la),i=0;for(;r<=o;){for(let s=0;s<32;s+=1){let a=`${da(t)}${Gu(r)}`;if(!await(n.probeExisting===!1?Pe(Hn.join(e,"history",`${a}.jsonl`)):Ku(e,a,n.typeToFolder??Le)))return a;i+=1}r+=1}throw new Error(`Unable to generate unique id after ${i} attempts`)}import ha from"node:fs/promises";import zn from"node:path";import{isUtf8 as Zu}from"node:buffer";import Yu from"node:fs/promises";import ft from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="e2a2001e-b162-599e-b262-76d2223a343c")}catch{}})();var Ft="_workspace";function bo(e){return ft.join(e,"history",`${Ft}.jsonl`)}function Ju(e,t){return{metadata:{id:Ft,title:"Workspace state",description:"Audited singleton workspace document state.",type:"Chore",status:"open",priority:2,tags:["workspace-history"],created_at:t,updated_at:t,documents:e},body:""}}function wo(e,t=e.length){let n=Fn();for(let r of e.slice(0,t))n=Ve(n,r.patch).document;return $n(n)}function ua(e){return"documents"in e.metadata&&typeof e.metadata.documents=="object"&&e.metadata.documents!==null&&!Array.isArray(e.metadata.documents)?e.metadata.documents:{}}function Eo(e){throw new v(`Workspace history verification failed: ${e.join(", ")}`,b.CONFLICT,{code:"workspace_history_chain_invalid",reason:"workspace_history_chain_verification_failed",verification_errors:[...e],required:"Repair the _workspace history chain before reading, reconciling, restoring, or appending audited singleton state.",why:"Continuing against an unverifiable append-only stream could hide or compound workspace state corruption.",examples:["pm history _workspace --verify --json","pm validate --check-history-drift --fix-hints --json"],nextSteps:["Inspect the exact verification_errors and preserve the corrupt stream as evidence.","Use the history-drift remediation returned by validate before retrying the refused operation."],recovery:{recovery_mode:"compact",next_best_command:"pm history _workspace --verify --json"}})}function Qu(e,t){let n=ft.resolve(t),r=ft.relative(e,n).replaceAll("\\","/");if(r.length===0||r===".."||r.startsWith("../")||ft.isAbsolute(r))throw new TypeError("Workspace history document path must stay inside the tracker root");return{documentPath:r,absolutePath:n}}async function Tg(e){let t=await Te(bo(e),Ft),n=Oe(t);n.ok||Eo(n.errors);let r=ua(t.length===0?Je:wo(t)),o=[],i=[],s=[],a=[];for(let c of Object.keys(r).sort()){let d;try{let u=Qu(e,ft.resolve(e,c));if(d=await ve(u.absolutePath),d===null){s.push(c);continue}let f=JSON.parse(d);(L(f)===L(r[c])?o:i).push(c)}catch{a.push(c)}}return{ok:i.length===0&&s.length===0&&a.length===0,document_count:Object.keys(r).length,matching_documents:o,mismatched_documents:i,missing_documents:s,unreadable_documents:a}}async function fa(e){let t=bo(e.pmRoot),n=await Te(t,Ft),r=Oe(n);r.ok||Eo(r.errors);let o=e.idempotencyKey===void 0?void 0:n.find(f=>f.op===`${e.op}:${e.idempotencyKey}`);if(o)return{entry:o,historyPath:t};let i=we(),s=n.length===0?Je:wo(n),a=ua(s),c=a[e.documentPath];if(c!==void 0&&L(c)!==L(e.before))throw new v(`Workspace history state for "${e.documentPath}" changed outside the audited mutation path.`,b.CONFLICT,{code:"workspace_history_state_conflict",reason:"out_of_band_workspace_state",required:"Reconcile the singleton document with its matching _workspace history state before retrying the mutation.",why:"Accepting the write would make the append-only audit stream describe a state that was not actually observed.",examples:["pm history _workspace --verify","pm validate --check-history-drift --fix-hints"],nextSteps:["Review the version-control change that altered the singleton and preserve the intended document plus its matching workspace history.","Rerun the original mutation only after the on-disk singleton agrees with the latest audited workspace state."],recovery:{recovery_mode:"compact",next_best_command:"pm history _workspace --verify"}});let d=Ju({...a,[e.documentPath]:e.after},n.length===0?i:s.metadata.created_at),u=dt({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 lt(t,u),{entry:u,historyPath:t}}async function Cg(e){let t=await V(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await fa(e)}finally{await t()}}async function ma(e){let t=await V(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{let n=bo(e.pmRoot),r=await Te(n,Ft),o=Oe(r);o.ok||Eo(o.errors);let i=r.length===0?Je:wo(r),s=dt({nowIso:we(),author:e.author,op:e.op,before:i,after:i,message:e.message,context:e.context});return await lt(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 X(e.filePath,e.raw);try{(t!==null||e.recordCreation!==!1)&&await fa({pmRoot:e.pmRoot,documentPath:ft.relative(e.pmRoot,e.filePath).replaceAll("\\","/"),before:n,after:r,op:e.op,author:e.author,lockTtlSeconds:e.lockTtlSeconds,lockWaitMs:e.lockWaitMs,message:e.message})}catch(o){throw t===null?await Yu.rm(e.filePath,{force:!0}):await X(e.filePath,t),o}return!0}async function pa(e){let t=await V(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{let n=await ve(e.filePath),r=await e.mutate(n);return{changed:await _a({...e,raw:r.raw},n),result:r.result}}finally{await t()}}async function Og(e){let t=await V(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await _a(e,await ve(e.filePath))}finally{await t()}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="3635d0ca-b4ee-5c99-9115-6eace5120147")}catch{}})();var ef=1048576,tf=4194304;async function ya(e,t){let n=zn.dirname(e);for(;n!==zn.parse(e).root;){let o=await ha.stat(n).catch(i=>{if(te(i))return null;throw i});if(o!==null){if(!o.isDirectory())throw new v("Workflow policy storage ancestor must be a directory.",b.CONFLICT,{code:"workflow_policy_input_unreadable",nextSteps:["Restore the policy or approval history directory before retrying."]});break}n=zn.dirname(n)}let r=await ha.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||!Zu(i.subarray(0,s)))throw new v("Workflow policy input exceeds its byte bound or is not valid UTF-8.",b.CONFLICT,{code:"workflow_policy_input_unreadable",nextSteps:["Inspect the policy and approval history; reduce the declaration or use verified history compaction before retrying."]});return i.toString("utf8",0,s)}finally{await r.close()}}function nf(e){if(e===null)return{version:1,enforcement:"advise",policies:[]};let t;try{t=JSON.parse(e)}catch{throw new v("schema/policies.json must contain valid JSON.",b.CONFLICT,{code:"workflow_policy_registry_invalid",nextSteps:["Restore valid policy JSON before retrying the mutation."]})}return Ni(t)}async function rf(e){return nf(await ya(zn.join(e,"schema","policies.json"),ef))}async function of(e,t){let n=await ya(de(e,t),tf);if(n===null)return[];let r;try{if(r=n.split(/\r?\n/).filter(o=>o.trim()).map(o=>JSON.parse(o)),!Oe(r).ok)throw new Error("invalid chain")}catch{throw new v("Approval evidence requires a valid item history chain.",b.CONFLICT,{code:"workflow_policy_approval_history_invalid",nextSteps:[`Run pm history ${t} --verify before recording or using an approval.`]})}return r.flatMap(o=>{let i=o.context?.workflow_approval;if(o.op!=="policy_approve"||o.record_hash_version!==1||typeof o.record_hash!="string"||typeof i!="object"||i===null)return[];let s=i;return typeof s.policy_fingerprint!="string"||typeof s.content_fingerprint!="string"?[]:[{policy_fingerprint:s.policy_fingerprint,content_fingerprint:s.content_fingerprint,author:o.author}]})}async function sf(e,t,n){let r=n.before?.status!==n.after?.status&&t.policies.some(s=>s.rule.kind==="approval"&&Li(s,n)),o=n.before?.id??n.after?.id,i=r&&typeof o=="string"?await of(e,o):[];return Pi(t,{...n,approvals:i})}async function ko(e){let t=await rf(e.pmRoot),n=await sf(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(s=>!s.satisfied&&s.effect==="refuse");if(!e.dryRun)try{await ma({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(s){let a=new v("Workflow policy refusal could not be recorded in workspace history.",b.CONFLICT,{code:"workflow_policy_audit_failed",nextSteps:["Resolve workspace-history lock or storage failures, then retry the refused mutation; no item changes were written."]});throw a.cause=s,a}let o=r.slice(0,3).map(s=>`${s.policy_id} (${s.rule})`).join(", "),i=r.length>3?` and ${r.length-3} more`:"";throw new v(`Workflow policy refused ${e.operation}: ${o}${i}.`,b.CONFLICT,{code:"workflow_policy_refused",reason:r.slice(0,3).map(s=>s.policy_id).join(","),nextSteps:[...new Set(r.map(s=>s.remediation))].slice(0,3)})}import{AsyncLocalStorage as af}from"node:async_hooks";import{channel as cf}from"node:diagnostics_channel";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="118ec110-fa84-550b-a0a8-4def314270b6")}catch{}})();var Io=new af,So=cf("@unbrained/pm-cli/item-metadata-enumeration/v1");function Un(e){So.publish(e)}async function Bg(e){let t={enumeration_calls:0,metadata_rows:0},n=r=>{Io.getStore()?.includes(t)&&(t.enumeration_calls+=1,t.metadata_rows+=r)};So.subscribe(n);try{return{result:await Io.run([...Io.getStore()??[],t],e),work:{...t}}}finally{So.unsubscribe(n)}}import Ge from"node:fs/promises";import va from"node:path";import{randomUUID as df}from"node:crypto";import{createRequire as lf}from"node:module";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="e9e67ec7-10cb-57b0-a094-ae52b01a0f8a")}catch{}})();var uf="metadata-query-index.sqlite",$t="5";function ff(e){try{return e(["node","sqlite"].join(":")).DatabaseSync??null}catch{return null}}var Bn;function mf(e,t){let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>=22?ff(t):null}function Ht(){return Bn!==void 0||(Bn=mf(process.versions.node,lf(import.meta.url))),Bn}function ga(e,t){return Math.max(0,Math.floor(e===void 0?t:e))}function mt(e){return va.join(e,"runtime",uf)}function _f(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 qn(e,t,n){e.prepare("INSERT INTO metadata(key, value) VALUES (?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value").run(t,n)}function ha(e,t){let n=t.metadata;e.prepare(`INSERT INTO items(
127
+ `)}function Vn(e,t,n){e.prepare("INSERT INTO metadata(key, value) VALUES (?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value").run(t,n)}function ba(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 ya(e){let t=mt(e.pmRoot),n=Ht();if(!n){await qe.rm(t,{force:!0});return}await qe.mkdir(pa.dirname(t),{recursive:!0});let r=`${t}.${af()}.tmp`,o;try{o=new n(r),ff(o),o.exec("BEGIN IMMEDIATE"),qn(o,"version",$t),qn(o,"context_fingerprint",e.contextFingerprint),qn(o,"source_cursor",e.sourceCursor);for(let i of e.rows)ha(o,i);o.exec("COMMIT"),o.close(),o=void 0,await qe.rm(t,{force:!0}),await qe.rename(r,t)}catch(i){throw o?.close(),await Promise.allSettled([qe.rm(r,{force:!0})]),i}}function Gn(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=Ht();if(!t)return!1;let n=mt(e.pmRoot),r;try{await qe.access(n),r=new t(n),r.exec("PRAGMA foreign_keys = ON");let o=Gn(r);if(o.version!==$t||o.context_fingerprint!==e.contextFingerprint||o.source_cursor!==e.expectedSourceCursor)return r.close(),!1;r.exec("BEGIN IMMEDIATE");let i=r.prepare("DELETE FROM items WHERE relative_path = ?"),s=r.prepare("SELECT rowid FROM items WHERE relative_path = ?"),a=r.prepare("DELETE FROM item_search WHERE rowid = ?");for(let c of e.deletedRelativePaths??[]){let d=s.get(c);i.run(c),d&&a.run(d.rowid)}return e.row&&ha(r,e.row),qn(r,"source_cursor",e.sourceCursor),r.exec("COMMIT"),r.close(),!0}catch{try{r?.exec("ROLLBACK")}catch{}return r?.close(),!1}}function Vn(e,t,n,r,o){!r||r.length===0||(e.push(`${n} ${o} (${r.map(()=>"?").join(", ")})`),t.push(...r))}function mf(e){let t=[],n=[];Vn(t,n,"status",e.statuses,"IN"),Vn(t,n,"status",e.excludeStatuses,"NOT IN"),Vn(t,n,"type",e.types,"IN"),Vn(t,n,"id",e.ids,"IN");for(let r of e.metadataKeys??[])t.push("EXISTS (SELECT 1 FROM item_metadata_keys AS indexed_key WHERE indexed_key.item_id = items.id AND indexed_key.key = ?)"),n.push(r);for(let[r,o]of[["parent",e.parent],["assignee",e.assignee],["sprint",e.sprint],["release",e.release]])o!==void 0&&(t.push(`${r} = ?`),n.push(o));return e.priority!==void 0&&(t.push("priority = ?"),n.push(e.priority)),{where:t.length===0?"":` WHERE ${t.join(" AND ")}`,parameters:n}}async function Vg(e){let t=Ht();if(!t)return null;let n=e.query??{},{where:r,parameters:o}=mf(n),i;try{i=new t(mt(e.pmRoot),{readOnly:!0});let s=Gn(i);if(s.version!==$t||s.source_cursor!==e.expectedSourceCursor)return i.close(),null;let a=i.prepare(`SELECT COUNT(*) AS count FROM items${r}`).get(...o),c=[],d="";n.limit!==void 0?(d+=" LIMIT ?",c.push(Math.max(0,Math.floor(n.limit))),n.offset!==void 0&&(d+=" OFFSET ?",c.push(Math.max(0,Math.floor(n.offset))))):n.offset!==void 0&&(d+=" LIMIT -1 OFFSET ?",c.push(Math.max(0,Math.floor(n.offset))));let f=i.prepare(`SELECT metadata_json FROM items${r}
143
- ORDER BY ${n.terminalStatuses&&n.terminalStatuses.length>0?`CASE WHEN status IN (${n.terminalStatuses.map(()=>"?").join(", ")}) THEN 1 ELSE 0 END ASC, `:""}priority ASC, updated_at DESC, id ASC${d}`).all(...o,...n.terminalStatuses??[],...c).map(m=>{let p=JSON.parse(String(m.metadata_json));if(!p.id)throw new TypeError("Indexed metadata row has no id");return p});return i.close(),{source_cursor:s.source_cursor,total:Number(a.count),items:f}}catch{return i?.close(),null}}async function qg(e){let t=Ht();if(!t||e.paths.length===0)return null;let n;try{n=new t(mt(e.pmRoot),{readOnly:!0});let r=Gn(n);if(r.version!==$t||r.source_cursor!==e.expectedSourceCursor)return n.close(),null;let o=e.paths.map(()=>"?").join(", "),i=e.scope===void 0?"":" AND scope = ?",s=[...e.paths,...e.scope===void 0?[]:[e.scope]],a=`path IN (${o})${i}`,c=n.prepare(`SELECT COUNT(DISTINCT item_id) AS count
142
+ release = excluded.release`).run(n.id,t.relativePath,JSON.stringify(n),n.status,n.type,n.priority,n.updated_at,n.created_at,n.parent??null,n.assignee??null,n.sprint??null,n.release??null),e.prepare("DELETE FROM item_metadata_keys WHERE item_id = ?").run(n.id),e.prepare("DELETE FROM item_linked_files WHERE item_id = ?").run(n.id),e.prepare("DELETE FROM item_search WHERE rowid = (SELECT rowid FROM items WHERE id = ?)").run(n.id),e.prepare("INSERT INTO item_search(rowid, id, title, description, tags) SELECT rowid, ?, ?, ?, ? FROM items WHERE id = ?").run(n.id,n.title,n.description,n.tags.join(" "),n.id);let r=e.prepare("INSERT INTO item_metadata_keys(item_id, key) VALUES (?, ?)");for(let i of Object.keys(n))r.run(n.id,i);let o=e.prepare("INSERT INTO item_linked_files(item_id, path, scope, note) VALUES (?, ?, ?, ?)");for(let i of t.linkedFiles??[])o.run(n.id,i.path,i.scope,i.note??null)}async function wa(e){let t=mt(e.pmRoot),n=Ht();if(!n){await Ge.rm(t,{force:!0});return}await Ge.mkdir(va.dirname(t),{recursive:!0});let r=`${t}.${df()}.tmp`,o;try{o=new n(r),_f(o),o.exec("BEGIN IMMEDIATE"),Vn(o,"version",$t),Vn(o,"context_fingerprint",e.contextFingerprint),Vn(o,"source_cursor",e.sourceCursor);for(let i of e.rows)ba(o,i);o.exec("COMMIT"),o.close(),o=void 0,await Ge.rm(t,{force:!0}),await Ge.rename(r,t)}catch(i){throw o?.close(),await Promise.allSettled([Ge.rm(r,{force:!0})]),i}}function qn(e){return Object.fromEntries(e.prepare("SELECT key, value FROM metadata").all().map(t=>[String(t.key),String(t.value)]))}async function Ea(e){let t=Ht();if(!t)return!1;let n=mt(e.pmRoot),r;try{await Ge.access(n),r=new t(n),r.exec("PRAGMA foreign_keys = ON");let o=qn(r);if(o.version!==$t||o.context_fingerprint!==e.contextFingerprint||o.source_cursor!==e.expectedSourceCursor)return r.close(),!1;r.exec("BEGIN IMMEDIATE");let i=r.prepare("DELETE FROM items WHERE relative_path = ?"),s=r.prepare("SELECT rowid FROM items WHERE relative_path = ?"),a=r.prepare("DELETE FROM item_search WHERE rowid = ?");for(let c of e.deletedRelativePaths??[]){let d=s.get(c);i.run(c),d&&a.run(d.rowid)}return e.row&&ba(r,e.row),Vn(r,"source_cursor",e.sourceCursor),r.exec("COMMIT"),r.close(),!0}catch{try{r?.exec("ROLLBACK")}catch{}return r?.close(),!1}}function Wn(e,t,n,r,o){!r||r.length===0||(e.push(`${n} ${o} (${r.map(()=>"?").join(", ")})`),t.push(...r))}function pf(e){let t=[],n=[];Wn(t,n,"status",e.statuses,"IN"),Wn(t,n,"status",e.excludeStatuses,"NOT IN"),Wn(t,n,"type",e.types,"IN"),Wn(t,n,"id",e.ids,"IN");for(let r of e.metadataKeys??[])t.push("EXISTS (SELECT 1 FROM item_metadata_keys AS indexed_key WHERE indexed_key.item_id = items.id AND indexed_key.key = ?)"),n.push(r);for(let[r,o]of[["parent",e.parent],["assignee",e.assignee],["sprint",e.sprint],["release",e.release]])o!==void 0&&(t.push(`${r} = ?`),n.push(o));return e.priority!==void 0&&(t.push("priority = ?"),n.push(e.priority)),{where:t.length===0?"":` WHERE ${t.join(" AND ")}`,parameters:n}}async function Xg(e){let t=Ht();if(!t)return null;let n=e.query??{},{where:r,parameters:o}=pf(n),i;try{i=new t(mt(e.pmRoot),{readOnly:!0});let s=qn(i);if(s.version!==$t||s.source_cursor!==e.expectedSourceCursor)return i.close(),null;let a=i.prepare(`SELECT COUNT(*) AS count FROM items${r}`).get(...o),c=[],d="";n.limit!==void 0?(d+=" LIMIT ?",c.push(Math.max(0,Math.floor(n.limit))),n.offset!==void 0&&(d+=" OFFSET ?",c.push(Math.max(0,Math.floor(n.offset))))):n.offset!==void 0&&(d+=" LIMIT -1 OFFSET ?",c.push(Math.max(0,Math.floor(n.offset))));let f=i.prepare(`SELECT metadata_json FROM items${r}
143
+ ORDER BY ${n.terminalStatuses&&n.terminalStatuses.length>0?`CASE WHEN status IN (${n.terminalStatuses.map(()=>"?").join(", ")}) THEN 1 ELSE 0 END ASC, `:""}priority ASC, updated_at DESC, id ASC${d}`).all(...o,...n.terminalStatuses??[],...c).map(m=>{let p=JSON.parse(String(m.metadata_json));if(!p.id)throw new TypeError("Indexed metadata row has no id");return p});return i.close(),{source_cursor:s.source_cursor,total:Number(a.count),items:f}}catch{return i?.close(),null}}async function Yg(e){let t=Ht();if(!t||e.paths.length===0)return null;let n;try{n=new t(mt(e.pmRoot),{readOnly:!0});let r=qn(n);if(r.version!==$t||r.source_cursor!==e.expectedSourceCursor)return n.close(),null;let o=e.paths.map(()=>"?").join(", "),i=e.scope===void 0?"":" AND scope = ?",s=[...e.paths,...e.scope===void 0?[]:[e.scope]],a=`path IN (${o})${i}`,c=n.prepare(`SELECT COUNT(DISTINCT item_id) AS count
144
144
  FROM item_linked_files
145
- WHERE ${a}`).get(...s),d=_a(e.limit,50),u=_a(e.offset,0),f=n.prepare(`SELECT items.id, items.metadata_json
145
+ WHERE ${a}`).get(...s),d=ga(e.limit,50),u=ga(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,12 +153,13 @@ ${i}
153
153
  FROM item_linked_files
154
154
  WHERE item_id IN (${p.map(()=>"?").join(", ")})
155
155
  AND ${a}
156
- ORDER BY path ASC, scope ASC`).all(...p,...s),y=new Map(p.map(g=>[g,[]]));for(let g of _){let S=String(g.item_id),R=y.get(S);R.push({path:String(g.path),scope:String(g.scope),...g.note===null?{}:{note:String(g.note)}}),y.set(S,R)}for(let g of f){let S=JSON.parse(String(g.metadata_json));m.push({item:S,files:y.get(String(g.id))})}}return n.close(),{source_cursor:r.source_cursor,total:Number(c.count),matches:m}}catch{return n?.close(),null}}async function Gg(e){let t=Ht();if(!t)return null;let n;try{n=new t(mt(e.pmRoot),{readOnly:!0});let r=Gn(n);if(r.version!==$t||r.source_cursor!==e.expectedSourceCursor)return n.close(),null;let i=n.prepare(`SELECT items.metadata_json
156
+ ORDER BY path ASC, scope ASC`).all(...p,...s),y=new Map(p.map(g=>[g,[]]));for(let g of _){let S=String(g.item_id),R=y.get(S);R.push({path:String(g.path),scope:String(g.scope),...g.note===null?{}:{note:String(g.note)}}),y.set(S,R)}for(let g of f){let S=JSON.parse(String(g.metadata_json));m.push({item:S,files:y.get(String(g.id))})}}return n.close(),{source_cursor:r.source_cursor,total:Number(c.count),matches:m}}catch{return n?.close(),null}}async function Jg(e){let t=Ht();if(!t)return null;let n;try{n=new t(mt(e.pmRoot),{readOnly:!0});let r=qn(n);if(r.version!==$t||r.source_cursor!==e.expectedSourceCursor)return n.close(),null;let i=n.prepare(`SELECT items.metadata_json
157
157
  FROM item_search
158
158
  JOIN items ON items.id = item_search.id
159
159
  WHERE item_search MATCH ?
160
160
  ORDER BY bm25(item_search), items.priority, items.updated_at DESC, items.id
161
- LIMIT ?`).all(e.query,Math.max(0,Math.floor(e.limit))).map(s=>JSON.parse(String(s.metadata_json)));return n.close(),{source_cursor:r.source_cursor,items:i}}catch{return n?.close(),null}}async function Kn(e){await qe.rm(mt(e),{force:!0})}import B from"node:fs/promises";import M from"node:path";import{createHash as _f,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]="1c60c095-9763-5372-9dc3-c0ea1a5caca6")}catch{}})();var se=8,Ia=500,pf="metadata-derived-index",hf="metadata-cache.json",yf="metadata-cache-bodies.json",gf="metadata-cache-collections.json",vf="metadata-cache-delta.json",bf="metadata-cache-manifest.json",va=4,wf=["comments","notes","learnings","files","tests","test_runs","docs"];function Sa(){return on(le())}function Yn(e){let t={...e},n={};for(let r of wf)r in t&&(n[r]=t[r],delete t[r]);return{light:t,heavy:n}}function Ta(e,t){return!t||Object.keys(t).length===0?e:{...e,...t}}function Ca(e,t,n,r){let o=_f("sha256");o.update(`format:${e??"default"}`);let i=Object.entries(t).sort(([s],[a])=>s.localeCompare(a)).map(([s,a])=>`${s}=${a}`).join(",");return o.update(`|types:${i}`),n&&o.update(`|schema:${JSON.stringify(n)}`),r.length>0&&o.update(`|extension_fields:${r.join(",")}`),o.digest("hex").slice(0,16)}function Jn(e){return M.join(e,"runtime",hf)}function Qn(e){return M.join(e,"runtime",yf)}function Zn(e){return M.join(e,"runtime",gf)}function Co(e){return M.join(e,"runtime",vf)}function Oo(e){return M.join(e,"runtime",bf)}function er(e,t){let n=M.extname(e);return`${e.slice(0,-n.length)}.${t}${n}`}var Ef=24,Z=new Map,tr=new WeakMap;function xo(e){return tr.get(e)??e.source_cursor}function kf(e,t){let n=xo(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){tr.set(e,n);for(let[r,o]of Object.entries(t.changes))o.entry?e.entries[r]=o.entry:delete e.entries[r];e.directory_signatures=t.directory_signatures,e.source_cursor=t.source_cursor}}function If(e,t){if(!e)return;let n=xo(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){tr.set(e,n);for(let[r,o]of Object.entries(t.changes))o.body?e.bodies[r]=o.body:delete e.bodies[r];e.source_cursor=t.source_cursor}}function Sf(e,t){if(!e)return;let n=xo(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){tr.set(e,n);for(let[r,o]of Object.entries(t.changes))o.collections?e.collections[r]=o.collections:delete e.collections[r];e.source_cursor=t.source_cursor}}function Tf(e,t,n,r){!e||!r||e.context_fingerprint!==r.context_fingerprint||(kf(e,r),If(t,r),Sf(n,r))}function To(e,t){Z.size>=Ef&&!Z.has(e)&&Ii(Z),Z.set(e,t)}async function Oe(e,t){let n;try{n=await B.stat(e)}catch{return Z.delete(e),null}let r=Z.get(e);if(r&&zt(r.signature,n.mtimeMs,n.ctimeMs,n.size))return Z.delete(e),Z.set(e,r),r.envelope;let o;try{o=t(await B.readFile(e,"utf8"))}catch{o=null}return To(e,{signature:{mtime_ms:n.mtimeMs,ctime_ms:n.ctimeMs,size:n.size},envelope:o}),o}async function Cf(e,t,n){let r=a=>{let c=JSON.parse(a);return c.version!==se||typeof c.source_cursor!="string"||typeof c.entries!="object"||c.entries===null?null:c},o=Jn(e),i=await Oe(o,r);if(!t||i===null||i.context_fingerprint===t)return i;let s=await Oe(er(o,t),r);return s===null&&Wt(n,`metadata_cache_context_changed:${i.context_fingerprint}->${t}`),s}async function Of(e,t){let n=i=>{let s=JSON.parse(i);return s.version!==se||typeof s.source_cursor!="string"||typeof s.bodies!="object"||s.bodies===null?null:s},r=Qn(e),o=await Oe(r,n);return t&&o?.context_fingerprint!==t?await Oe(er(r,t),n):o}async function xf(e,t){let n=i=>{let s=JSON.parse(i);return s.version!==se||typeof s.source_cursor!="string"||typeof s.collections!="object"||s.collections===null?null:s},r=Zn(e),o=await Oe(r,n);return t&&o?.context_fingerprint!==t?await Oe(er(r,t),n):o}async function Ro(e){let t=Co(e),n=await Oe(t,r=>{let o=JSON.parse(r);return o.version!==se||typeof o.base_source_cursor!="string"||typeof o.source_cursor!="string"||typeof o.changes!="object"||o.changes===null?null:o});if(n)return{envelope:n,invalid:!1};try{return await B.stat(t),{envelope:null,invalid:!0}}catch{return{envelope:null,invalid:!1}}}async function Ao(e){let t=Oo(e),n=await Oe(t,r=>{let o=JSON.parse(r);return o.version!==se||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 _t(e)}catch{}return null}async function Ut(e,t){await B.mkdir(M.dirname(e),{recursive:!0}),await K(e,JSON.stringify(t));try{let r=await B.stat(e);To(e,{signature:{mtime_ms:r.mtimeMs,ctime_ms:r.ctimeMs,size:r.size},envelope:t})}catch{Z.delete(e)}let n=M.dirname(M.dirname(e));if(e===Jn(n)||e===Qn(n)||e===Zn(n)){let r=er(e,t.context_fingerprint);await K(r,JSON.stringify(t));try{let c=await B.stat(r);To(r,{signature:{mtime_ms:c.mtimeMs,ctime_ms:c.ctimeMs,size:c.size},envelope:t})}catch{Z.delete(r)}let o=M.dirname(e),i=M.extname(e),s=M.basename(e,i),a=(await B.readdir(o,{withFileTypes:!0}).catch(()=>[])).filter(c=>c.isFile()&&c.name!==M.basename(e)&&c.name.startsWith(`${s}.`)&&c.name.endsWith(i)).map(c=>M.join(o,c.name));if(a.length>va){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((u,f)=>u.mtime-f.mtime).slice(0,Math.max(0,c.length-va)))await B.rm(d.path,{force:!0}),Z.delete(d.path)}}}function Rf(e,t,n){return n?t===n&&e!==n:t==="toon"&&e!=="toon"}function Oa(e,t,n){return e===void 0||Rf(e,t,n)}function Wt(e,t){e&&!e.includes(t)&&e.push(t)}function zt(e,t,n,r){return e.mtime_ms===t&&e.ctime_ms===n&&e.size===r}async function Af(e,t,n){let r=M.join(e,t);try{let o=await B.readdir(r);return{folder:t,dirPath:r,files:o}}catch(o){return typeof o=="object"&&o!==null&&"code"in o&&!te(o)&&Wt(n,`item_list_directory_read_failed:${t}`),{folder:t,dirPath:r,files:[]}}}async function Df(e,t){try{let n=await B.stat(M.join(e,t));return[t,{exists:!0,mtime_ms:n.mtimeMs,ctime_ms:n.ctimeMs,size:n.size}]}catch{return[t,{exists:!1,mtime_ms:0,ctime_ms:0,size:0}]}}async function Xn(e,t){return Object.fromEntries(await Promise.all(t.map(async n=>await Df(e,n))))}function Bt(e,t){return!e||Object.keys(e).length!==Object.keys(t).length?!1:Object.entries(t).every(([n,r])=>{let o=e[n];return o!==void 0&&o.exists===r.exists&&zt(o,r.mtime_ms,r.ctime_ms,r.size)})}function Nf(e){return an.some(t=>e.toLowerCase().endsWith(t))}function Lf(e,t,n,r,o,i){r||(e.metadata=!0),t&&!o&&(e.body=!0),n&&!i&&(e.collections=!0)}async function Pf(e,t,n){if(n)for(let r of await ve({path:e,scope:"project"}))Wt(t,r)}function ba(e,t,n,r){if(e)return t&&n?n.collections:r}async function Mf(e,t,n){let r=await B.stat(e),o=r.mtimeMs,i=r.ctimeMs,{size:s}=r,a=wr(e);await Pf(e,n.warnings,n.dispatchReadHooks);let c=n.previousEntries[t],d=!n.forceSourceRead&&c!==void 0&&zt(c,o,i,s),u=n.previousBodies[t],f=!n.forceSourceRead&&u!==void 0&&zt(u,o,i,s),m=n.previousCollections[t],p=!n.forceSourceRead&&m!==void 0&&zt(m,o,i,s);if(!(!d||n.includeBody&&!f||n.includeCollections&&!p))return{mtimeMs:o,ctimeMs:i,size:s,itemFormat:a,lightMetadata:c.metadata,heavyMetadata:ba(n.includeCollections,p,m,void 0),bodyLength:c.body_length,body:n.includeBody?u.body:void 0};let y=await B.readFile(e,"utf8"),g=Sn(y,{format:a,schema:n.schema,extensionFieldNames:n.extensionFieldNames,onWarning:R=>Wt(n.warnings,R)}),S=Yn(g.metadata);return Lf(n.state.misses,n.includeBody,n.includeCollections,d,f,p),{mtimeMs:o,ctimeMs:i,size:s,itemFormat:a,lightMetadata:d?c.metadata:S.light,heavyMetadata:ba(n.includeCollections,p,m,S.heavy),bodyLength:d?c.body_length:g.body.length,body:n.includeBody?g.body:void 0}}function jf(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?Ta(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};Oa(i?.itemFormat,r.itemFormat,n.preferredFormat)&&n.state.documentsById.set(o.id,{candidate:s,itemFormat:r.itemFormat})}async function Ff(e,t,n,r){try{let o=await Mf(t,n,r);jf(t,n,r,o)}catch{Wt(r.warnings,`item_list_item_read_failed:${e}/${M.basename(t)}`)}}function $f(e,t){return e&&e.context_fingerprint===t?e.entries:{}}function Hf(e,t){return e&&e.context_fingerprint===t?e.bodies:{}}function zf(e,t){return e&&e.context_fingerprint===t?e.collections:{}}function Uf(){return{newEntries:{},newBodies:{},newCollections:{},documentsById:new Map,misses:{metadata:!1,body:!1,collections:!1}}}async function Bf(e,t){let n=[];for(let{folder:r,dirPath:o,files:i}of e)for(let s of i){if(!Nf(s))continue;let a=M.join(o,s),c=M.relative(t.pmRoot,a);n.push(Ff(r,a,c,t)),n.length===32&&(await Promise.all(n),n.length=0)}await Promise.all(n)}async function Wf(e){if(!(!(e.state.misses.metadata||Object.keys(e.previousEntries).length!==Object.keys(e.state.newEntries).length||!Bt(e.existingCache?.directory_signatures,e.directorySignatures))&&e.existingCache!==null&&e.existingCache.context_fingerprint===e.contextFingerprint))try{await Ut(Jn(e.pmRoot),{version:se,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,directory_signatures:e.directorySignatures,entries:e.state.newEntries}),await Ut(Oo(e.pmRoot),{version:se,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,entry_count:Object.keys(e.state.newEntries).length,directory_signatures:e.directorySignatures});let n=[...e.state.documentsById.values()].map(({candidate:r})=>({relativePath:M.relative(e.pmRoot,r.item_path),metadata:Yn(r.metadata).light,linkedFiles:r.metadata.files??[]}));n.length>=e.minimumIndexedItems?await ya({pmRoot:e.pmRoot,contextFingerprint:e.contextFingerprint,sourceCursor:e.sourceCursor,rows:n}):await Kn(e.pmRoot)}catch{}}async function Vf(e){!(e.state.misses.body||Object.keys(e.previousBodies).length!==Object.keys(e.state.newBodies).length)&&e.existingBodyCache!==null&&e.existingBodyCache.context_fingerprint===e.contextFingerprint||await Ut(Qn(e.pmRoot),{version:se,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,bodies:e.state.newBodies}).catch(()=>{})}async function qf(e){!(e.state.misses.collections||Object.keys(e.previousCollections).length!==Object.keys(e.state.newCollections).length)&&e.existingCollectionsCache!==null&&e.existingCollectionsCache.context_fingerprint===e.contextFingerprint||await Ut(Zn(e.pmRoot),{version:se,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,collections:e.state.newCollections}).catch(()=>{})}async function Do(e,t,n={}){let r=await Ao(e);return n.required!==!0&&(r===null||r.entry_count<Ia)?async()=>{}:Q(e,pf,30,t,!1,!1,3e3)}async function sv(e,t){let n=await Ao(e);if(n===null)return null;let r=await Ro(e);if(r.invalid)return await _t(e),null;let o=r.envelope?.context_fingerprint===n.context_fingerprint&&r.envelope.base_source_cursor===n.source_cursor?r.envelope.source_cursor:n.source_cursor,i=r.envelope?.context_fingerprint===n.context_fingerprint&&r.envelope.base_source_cursor===n.source_cursor?r.envelope.directory_signatures:n.directory_signatures;return t&&!Bt(i,await Xn(e,t))?null:{source_cursor:o,entry_count:n.entry_count}}function wa(e,t){let n=M.relative(e,t);return n===""||n===".."||n.startsWith(`..${M.sep}`)||M.isAbsolute(n)?null:n}async function _t(e){await Promise.all([Jn(e),Qn(e),Zn(e),Co(e),Oo(e)].map(async t=>{await B.rm(t,{force:!0}),Z.delete(t)})),await Kn(e)}async function Gf(e){if(e.mutation.document===null)return{entry:null,body:null,collections:null};let t=await B.stat(e.mutation.itemPath),n=Yn(e.mutation.document.metadata),r={mtime_ms:t.mtimeMs,ctime_ms:t.ctimeMs,size:t.size};return{entry:{...r,metadata:n.light,body_length:e.mutation.document.body.length},body:{...r,body:e.mutation.document.body},collections:{...r,collections:n.heavy}}}function Kf(e,t,n){return e?.context_fingerprint===t&&e.base_source_cursor===n?structuredClone(e.changes):{}}async function No(e){let t=wa(e.pmRoot,e.itemPath),n=e.previousItemPath?wa(e.pmRoot,e.previousItemPath):void 0;if(t===null||n===null)return await _t(e.pmRoot),["metadata_derived_index_path_invalidated"];try{let r=Ca(e.preferredFormat,e.typeToFolder,e.schema,Sa()),o=await Ao(e.pmRoot);if(o===null||o.context_fingerprint!==r)return[];let i=o.source_cursor,s=await Ro(e.pmRoot);if(s.invalid)return await _t(e.pmRoot),["metadata_derived_index_refresh_failed"];let a=Kf(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 Gf({mutation:e});let d=ka();return await Ut(Co(e.pmRoot),{version:se,context_fingerprint:r,base_source_cursor:i,source_cursor:d,directory_signatures:await Xn(e.pmRoot,[...new Set(Object.values(e.typeToFolder))]),changes:a}),await ga({pmRoot:e.pmRoot,contextFingerprint:r,expectedSourceCursor:c,sourceCursor:d,row:e.document===null?null:{relativePath:t,metadata:Yn(e.document.metadata).light,linkedFiles:e.document.metadata.files},deletedRelativePaths:[...n===void 0?[]:[n],...e.document===null?[t]:[]]})||await Kn(e.pmRoot),[]}catch{return await _t(e.pmRoot).catch(()=>{}),["metadata_derived_index_refresh_failed"]}}function Xf(e){return[...e.documentsById.values()].sort((t,n)=>t.candidate.metadata.id.localeCompare(n.candidate.metadata.id)).map(t=>t.candidate)}function Ea(e,t,n){return e?.context_fingerprint===t&&e.source_cursor===n}function Yf(e,t,n,r,o){return e.every(i=>(!t||r[i]!==void 0)&&(!n||o[i]!==void 0))}function Jf(e){let t=new Map;for(let[n,r]of Object.entries(e.previousEntries)){let o=wr(n);if(!o)continue;let i=e.includeCollections?Ta(r.metadata,e.previousCollections[n]?.collections):r.metadata,s=t.get(i.id);Oa(s?.itemFormat,o,e.preferredFormat)&&t.set(i.id,{itemFormat:o,candidate:{metadata:i,body:e.includeBody?e.previousBodies[n]?.body:void 0,item_format:o,item_path:M.join(e.pmRoot,n)}})}return[...t.values()].sort((n,r)=>n.candidate.metadata.id.localeCompare(r.candidate.metadata.id)).map(n=>n.candidate)}function Qf(e){return e.forceSourceScan||Ir()||e.existingCache?.context_fingerprint!==e.contextFingerprint||e.entryKeys.length<e.minimumIndexedItems||!Bt(e.existingCache?.directory_signatures,e.directorySignatures)?!1:[!e.includeBody||Ea(e.existingBodyCache,e.contextFingerprint,e.existingCache.source_cursor),!e.includeCollections||Ea(e.existingCollectionsCache,e.contextFingerprint,e.existingCache.source_cursor)].every(Boolean)&&Yf(e.entryKeys,e.includeBody,e.includeCollections,e.previousBodies,e.previousCollections)}async function nr(e,t,n,r,o,i={}){let s=i.includeBody!==!1,a=i.includeCollections!==!1,c=Sa(),d=Ca(t,n,o,c),u=await Ro(e);u.invalid&&await _t(e);let f=await Cf(e,d,i.cacheDiagnostics),m=s?await Of(e,d):null,p=a?await xf(e,d):null;Tf(f,m,p,u.envelope);let _=$f(f,d),y=Hf(m,d),g=zf(p,d),S=[...new Set(Object.values(n))],R=await Xn(e,S),D=Object.keys(_),$=Math.max(1,Math.floor(i.derivedIndexMinimumItems??Ia));if(Qf({forceSourceScan:i.forceSourceScan===!0,contextFingerprint:d,existingCache:f,existingBodyCache:m,existingCollectionsCache:p,directorySignatures:R,entryKeys:D,minimumIndexedItems:$,includeBody:s,includeCollections:a,previousBodies:y,previousCollections:g}))return Jf({pmRoot:e,preferredFormat:t,includeBody:s,includeCollections:a,previousEntries:_,previousBodies:y,previousCollections:g});let x=await Promise.all(S.map(Et=>Af(e,Et,r))),q=Ir(),W=Uf(),J={pmRoot:e,preferredFormat:t,warnings:r,schema:o,extensionFieldNames:c,includeBody:s,includeCollections:a,forceSourceRead:i.forceSourceScan===!0,dispatchReadHooks:q,previousEntries:_,previousBodies:y,previousCollections:g,state:W};await Bf(x,J);let G=await Xn(e,S),ee=Bt(R,G)?G:{},Ke=W.misses.metadata||Object.keys(_).length!==Object.keys(W.newEntries).length||!Bt(f?.directory_signatures,ee)||f===null?ka():f.source_cursor;return await Wf({pmRoot:e,contextFingerprint:d,sourceCursor:Ke,existingCache:f,previousEntries:_,directorySignatures:ee,state:W,minimumIndexedItems:$}),s&&await Vf({pmRoot:e,contextFingerprint:d,sourceCursor:Ke,existingBodyCache:m,previousBodies:y,state:W}),a&&await qf({pmRoot:e,contextFingerprint:d,sourceCursor:Ke,existingCollectionsCache:p,previousCollections:g,state:W}),Xf(W)}async function xa(e,t,n,r,o){return(await nr(e,t,n,r,o,{includeBody:!1})).map(s=>({metadata:s.metadata,body:s.body??""}))}async function Ra(e,t,n,r,o){return(await nr(e,t,n,r,o,{includeBody:!1,includeCollections:!1})).map(s=>({metadata:s.metadata,body:s.body??""}))}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="0a3dd0c1-2dea-5143-a2eb-65e758a0cc71")}catch{}})();function ae(){let e=de();for(let t of le()?.relationship_kinds??[])for(let n of t.definitions)e.register(n);return e}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="83d1acab-79a1-5e9f-b6a4-97dade07d74a")}catch{}})();function Vt(e){if(typeof e!="string")return;let t=e.trim().toLowerCase();return t.length>0?t:void 0}function rr(e){return[e.parent_id,e.child_id,e.source,e.kind,e.holder_id,e.target_id??""].join("\0")}function Zf(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 em(e,t){let n=[...e].sort(),r=Zf(n,t),o=new Set,i=tm(n,t),s=[];for(let a of r.reverse()){if(o.has(a))continue;let c=nm(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 tm(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 nm(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 Aa(e){let t=new Map;for(let n of e){let r=Vt(n?.id);r&&!t.has(r)&&t.set(r,n)}return t}function rm(e,t,n){let r=Vt(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 om(e,t,n,r){let o=Vt(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 Da(e,t){let n=new Map;for(let[r,o]of e){let i=rm(r,o,e);i&&n.set(rr(i),i);for(let s of o.dependencies??[]){let a=om(r,s,e,t);a&&n.set(rr(a),a)}}return[...n.values()].sort((r,o)=>rr(r).localeCompare(rr(o)))}function _v(e,t=ae()){return Da(Aa(e),t)}function im(e,t,n){let r=new Set(e.filter(o=>o.child_cardinality==="one").map(o=>o.child_id));return[...t].filter(([o,i])=>i.length>1&&r.has(o)).map(([o,i])=>({child_id:o,parent_ids:[...i],legacy_terminal:n.has(o)&&i.every(s=>n.has(s))})).sort((o,i)=>o.child_id.localeCompare(i.child_id))}function sm(e,t,n){let r=new Map;for(let i of t){if(i.source!=="dependency")continue;let s=r.get(i.child_id)??new Set;s.add(i.parent_id),r.set(i.child_id,s)}let o=[];for(let[i,s]of e){let a=Vt(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 or(e,t=r=>r==="closed"||r==="canceled",n=ae()){let r=Aa(e),o=Da(r,n),i=am(o),s=new Set([...r].filter(([,c])=>t(c.status)).map(([c])=>c)),a=em([...r.keys()],new Map([...i.children_by_parent].map(([c,d])=>[c,new Set(d)]))).map(c=>({item_ids:c,legacy_terminal:c.every(d=>s.has(d))}));return{relations:o,cycles:a,cardinality_violations:im(o,i.parents_by_child,s),divergences:sm(r,o,s)}}function pv(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 am(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 Lo(e,t){let n=new Set(t);return e.every(r=>n.has(r))}function hv(e,t,n,r,o){let i=Vt(n);if(!i)return;let s=or(e,r,o),a=or(t,r,o),c=a.divergences.find(f=>!s.divergences.some(m=>m.child_id===f.child_id&&m.scalar_parent_id===f.scalar_parent_id&&Lo(f.dependency_parent_ids,m.dependency_parent_ids)));if(c){let f=[c.scalar_parent_id,...c.dependency_parent_ids].sort();throw new v(`Hierarchy mutation would assign ${c.child_id} to multiple parents: ${f.join(", ")}.`,b.CONFLICT,{code:"hierarchy_parent_divergence_created",source_id:i,target_id:c.child_id,verification_errors:f})}let d=a.cardinality_violations.find(f=>(f.child_id===i||f.parent_ids.includes(i))&&!s.cardinality_violations.some(m=>m.child_id===f.child_id&&Lo(f.parent_ids,m.parent_ids)));if(d)throw new v(`Hierarchy mutation would assign ${d.child_id} to multiple parents: ${d.parent_ids.join(", ")}.`,b.CONFLICT,{code:"hierarchy_cardinality_created",source_id:i,target_id:d.child_id,verification_errors:d.parent_ids});let u=a.cycles.find(f=>f.item_ids.includes(i)&&!s.cycles.some(m=>Lo(f.item_ids,m.item_ids)));if(u)throw new v(`Hierarchy mutation would create a cycle: ${u.item_ids.join(" -> ")}.`,b.CONFLICT,{code:"hierarchy_cycle_created",source_id:i,verification_errors:u.item_ids})}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="fdd874ad-e51d-5df2-9486-a0465ad65979")}catch{}})();var cm="global";function wv(e){let t=e?.trim();if(t)return oe(t)?cm:t}function Ev(e,t,n){return dm(e,t,n)}function dm(e,t,n){let r=e.trim();return oe(n)||_e(r)?r:Ve(r,t)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="06ecc7a4-c593-5d99-89f5-714a4590d0a5")}catch{}})();function ht(e){if(typeof e!="string")return;let t=e.trim();if(!(!t||["none","null","n/a","na"].includes(t.toLowerCase())))return t}function qt(e){let t=ht(e);return t?.toLowerCase()==="no-active-blocker"?void 0:t}function Gt(e,t,n=!0){let r=ht(e);return n&&(oe(t)||r!==void 0&&_e(r))}function Po(e,t){return Gt(e,t)?`external\0${e}`:`local\0${e.toLowerCase()}`}function Na(e,t,n,r){return Gt(e,t)?r.get(e):n.get(e.toLowerCase())}function pt(e,t){let n=e.toLowerCase(),r=t.toLowerCase();return n!==r?n<r?-1:1:e!==t?e<t?-1:1:0}function lm(e){let t=new Map;for(let n of e.dependencies??[]){if(typeof n!="object"||n===null)continue;let r=n,o=ht(r.id);if(!o)continue;let i=typeof r.kind=="string"?r.kind:"related",s=`${i}\0${Po(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 um(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 lm(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=pt(r.holder_id,o.holder_id);if(i!==0)return i;let s=pt(r.target_id,o.target_id);return s!==0?s:pt(r.kind,o.kind)})}function fm(e,t,n,r,o){if(typeof n!="object"||n===null)return;let i=ht(n.id);if(!i||Po(i,n.source_kind)!==Po(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 mm(e,t=r=>r==="closed"||r==="canceled",n=ae()){let r=new Map;for(let o of e){if(typeof o?.id!="string"||o.id.trim().length===0)continue;let i=ht(o.blocked_by);if(i)for(let s of o.dependencies??[]){let a=fm(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=pt(o.holder_id,i.holder_id);if(s!==0)return s;let a=pt(o.target_id,i.target_id);return a!==0?a:pt(o.dependency_kind,i.dependency_kind)})}function Mo(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,u,f,m)=>{let p=ht(d);if(!p||r.has(p.toLowerCase())||Gt(p,void 0,m))return;let _={holder_id:c.id.trim(),target_id:p,kind:u,source:f,holder_status:c.status,legacy_terminal:t(c.status),no_active_blocker_sentinel:p.toLowerCase()==="no-active-blocker"};o.set(`${_.holder_id}::${_.target_id}::${_.kind}::${_.source}`,_)};for(let c of n){i(c,c.parent,"parent","parent",!1),i(c,c.blocked_by,"blocked_by","blocked_by",!0);for(let d of c.dependencies??[]){if(typeof d!="object"||d===null)continue;let u=d;oe(u.source_kind)||i(c,u.id,typeof u.kind=="string"?u.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 _m(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 pm(e){let t=new Map;for(let n of e){let r=qt(n.blocked_by);r&&Gt(r)&&!t.has(r)&&t.set(r,r);for(let o of n.dependencies??[]){if(typeof o!="object"||o===null||!Gt(o.id,o.source_kind))continue;let i=qt(o.id);i&&!t.has(i)&&t.set(i,i)}}return[...t.values()].sort((n,r)=>n.localeCompare(r))}var La=new WeakMap;function xv(e){return e.hierarchyIntegrity??La.get(e)}function hm(e,t=ae()){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 ir(e,t,n){let r=n??ae(),o=e.filter(_=>typeof _?.id=="string"&&_.id.trim().length>0),i=new Map(o.map(_=>[_.id.trim().toLowerCase(),_.id.trim()])),s=Mo(o,t),a=_m(s);for(let _ of a)i.set(_.toLowerCase(),_);let c=pm(o),d=new Set(i.keys()),u=new Map;for(let _ of c){let y=_;for(;d.has(y.toLowerCase());)y=`external:${y}`;u.set(_,y),d.add(y.toLowerCase())}let f=o.map(_=>{let y=qt(_.parent),g=qt(_.blocked_by),S=(_.dependencies??[]).flatMap(R=>{if(typeof R!="object"||R===null)return[];let D=R,$=qt(D.id);return $?[{id:Na($,D.source_kind,i,u),kind:typeof D.kind=="string"?D.kind:"related"}]:[]});return{id:_.id.trim(),...y?{parent:i.get(y.toLowerCase())}:{},...g?{blocked_by:Na(g,void 0,i,u)}:{},dependencies:S}}),m=or(o,t,r),p={graph:ki.fromItems([...f,...a.map(_=>({id:_})),...c.map(_=>({id:u.get(_)}))],r),details:[...o.map(_=>({id:_.id.trim(),title:_.title,status:_.status,...typeof _.type=="string"&&_.type.trim().length>0?{type:_.type.trim()}:{}})),...a.map(_=>({id:_,title:`[missing] ${_}`,status:"missing"})),...c.map(_=>({id:u.get(_),title:`[external] ${_}`,status:"external"}))],missingIdSet:new Set(a.map(_=>_.toLowerCase())),dangling:s,duplicateRows:um(o,t),orderingContradictions:mm(o,t,r),legacyAliasCounts:hm(o,r),hierarchyIntegrity:m};return La.set(p,m),p}import{createHash as ym}from"node:crypto";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="10f534cf-ee82-54a2-9807-390eca5fb0b8")}catch{}})();var gm=64,vm=8;function bm(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 Ma(e,t=r=>r==="closed"||r==="canceled",n=de()){let r=e.filter(i=>typeof i?.id=="string"&&i.id.trim().length>0).map(i=>bm(i,t)).sort(),o=n.list().map(i=>L(i)).sort();return ym("sha256").update(r.join("")).update("").update(o.join("")).digest("hex")}function Pa(e,t,n){let r=t??n;if(!Number.isInteger(r)||r<1)throw new TypeError(`Invalid ${e} bound: ${String(t)}`);return r}var jo=class{#e=new Map;#t;#n;constructor(t={}){this.#t=Pa("maxResultsPerWorkspace",t.maxResultsPerWorkspace,gm),this.#n=Pa("maxWorkspaces",t.maxWorkspaces,vm)}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 u=s.results.get(c);if(u!==void 0||s.results.has(c))return s.results.delete(c),s.results.set(c,u),{value:structuredClone(u),reused:!0};let f=d();return s.results.size>=a&&s.results.delete(s.results.keys().next().value),s.results.set(c,structuredClone(f)),{value:f,reused:!1}}}}clear(){this.#e.clear()}},ja=new jo;function Fa(){return ja}function Lv(){ja.clear()}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="47b3091f-a1a8-503c-83e9-46b85adf4207")}catch{}})();var wm=["prerequisite","dependent","ancestor","descendant","provenance","related"],Em=new TextEncoder;function Fo(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 sr(e){return Math.max(1,Math.ceil(Em.encode(JSON.stringify(e)).byteLength/4))}function $o(e,t,n){let r=n.resolve(e.kind);if(r?.ordering){let i=(r.precedence??"source_before_target")==="source_before_target"?e.source:e.target;return t===i?"prerequisite":"dependent"}if(r?.hierarchy){let i=r.hierarchyDirection==="source_parent"?e.source:e.target;return t===i?"ancestor":"descendant"}return e.kind==="discovered_from"||e.kind==="incident_from"?"provenance":"related"}function km(e,t,n,r){let o=e.filter(i=>i.source===t&&i.target===n||i.target===t&&i.source===n).map(i=>$o(i,n,r));return[...new Set(o)].sort()}function Im(e){return wm.find(t=>e.includes(t))}function Sm(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,u=!1;for(let f=0;f<a.length;f+=1){r.signal?.throwIfAborted();let m=a[f];if(m.distance>=i&&u)continue;let p=e.neighborEdges(m.id,{direction:o,kinds:r.kinds,signal:r.signal});if(d+=p.meta.inspectedEdges,m.distance>=i){p.value.some(_=>!s.has(_.id))&&(u=!0);continue}for(let{id:_,edge:y}of p.value){if(s.has(_))continue;s.add(_);let g={id:_,distance:m.distance+1,via:m.id,role:$o(y,_,n)};c.push(g),a.push(g)}}return c.sort((f,m)=>f.distance-m.distance||f.id.localeCompare(m.id)),{rows:c,visitedNodes:a.length,inspectedEdges:d,depthTruncated:u}}function Tm(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[$o(a,s,n)]+=1;return{directEdges:o,directTotal:i.length,rootEdges:i.map(({edge:s})=>s)}}function Cm(e){let t=[],n=e.initialTokens;for(let r of e.candidates){if(t.length>=e.nodeLimit)break;let o=r.distance===1?km(e.rootEdges,e.rootId,r.id,e.registry):[],i={...e.details.get(r.id)??{id:r.id},distance:r.distance,role:o.length>0?Im(o):r.role,via:r.via,reasons:o.length>0?o:[`${r.role} via ${r.via} (depth ${r.distance})`]},s=sr(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 Om(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=sr(i);if(o+s>e.tokenBudget)break;r.push(i),o+=s}return{edges:r,usedTokens:o,candidateCount:n.length}}function $a(e,t,n,r={}){if(!e.nodes().includes(t))throw new TypeError(`Relationship node not found: ${t}`);let o=Fo(r.nodeLimit,20,"nodeLimit"),i=Fo(r.edgeLimit,40,"edgeLimit"),s=Fo(r.tokenBudget,1200,"tokenBudget"),a=r.registry??de(),c=new Map(n.map(Xe=>[Xe.id,Xe])),d=c.get(t)??{id:t},{evidence:u=[],...f}=d,m=[...u],p=Sm(e,t,a,r),{rootEdges:_,...y}=Tm(e,t,a,r),g=Li("relationship-context",{rootId:t,direction:r.direction??"both",kinds:[...r.kinds??[]].sort(),maxDepth:r.maxDepth??3}),S=Mi(p.rows,r.cursor,g,({id:Xe})=>Xe),R=p.rows.slice(S),D=sr(f)+sr(m);if(D>s)throw new TypeError("Relationship context tokenBudget cannot fit root and evidence");let $=Cm({candidates:R,details:c,rootEdges:_,rootId:t,registry:a,nodeLimit:o,tokenBudget:s,initialTokens:D}),{nodes:x}=$,q=new Set([t,...x.map(({id:Xe})=>Xe)]),W=Om({graph:e,included:q,options:r,registry:a,edgeLimit:i,tokenBudget:s,initialTokens:$.usedTokens}),{edges:J,usedTokens:G}=W,ee=S+x.length,he=ee<p.rows.length,Ke=x.at(-1),Et=W.candidateCount-J.length,ai=p.depthTruncated||he||Et>0,Lc={rootId:t,...f.status===void 0?{}:{rootStatus:f.status},...y,discoveredNodes:p.rows.length,returnedNodes:x.length,returnedEdges:J.length,omittedNodes:p.rows.length-ee,omittedEdges:Et,evidenceCount:m.length,hasMore:he};return{root:f,summary:Lc,nodes:x,edges:J,evidence:m,meta:{exact:!0,truncated:ai,completeness:ai?"truncated":"complete",nodeLimit:o,edgeLimit:i,tokenBudget:s,usedTokens:G,visitedNodes:p.visitedNodes,inspectedEdges:p.inspectedEdges,omittedNodes:p.rows.length-ee,omittedEdges:Et,...he&&Ke?{nextCursor:Pi(g,Ke.id,ee-1)}:{}}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="59b12366-2f29-5acb-8196-91e9ab183666")}catch{}})();function zo(e,t){return(t===void 0?void 0:vi(e,t))?.execution_role??gi[e.trim().toLowerCase()]??"agent"}var Uo="blocked_by",Ha="blocks",xm=Object.freeze([Uo,Ha]),Ho="no-active-blocker";function F(e){return e.trim().toLowerCase()}function ar(e,t){return t?`external:${e}`:`local:${F(e)}`}function Kt(e){let t=new Map,n=typeof e.blocked_by=="string"?e.blocked_by.trim():"";if(n.length>0&&F(n)!==Ho){let r=_e(n);t.set(ar(n,r),r?n:F(n))}for(let r of e.dependencies??[]){let o=typeof r.id=="string"?r.id.trim():"";if(r.kind===Uo&&o.length>0&&F(o)!==Ho){let i=_e(o)||oe(r.source_kind);t.set(ar(o,i),i?o:F(o))}}return[...t.values()].sort((r,o)=>r.localeCompare(o))}function cr(e){let t=new Map;for(let n of e){let r=F(n.id);r.length!==0&&t.set(r,new Set(Kt(n)))}for(let n of e){let r=F(n.id);if(r.length!==0)for(let o of n.dependencies??[]){let i=o.kind===Ha&&typeof o.id=="string"?F(o.id):"";if(i.length===0||i===Ho)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 za(e,t){let n=F(e.id);return n.length>0?cr(t).get(n)??Kt(e):Kt(e)}function Bo(e,t,n,r){let o=e,i=typeof o.id=="string"?r?.get(F(o.id))??za(o,[...t.values()]):Kt(e),s=new Set((e.dependencies??[]).filter(a=>a.kind===Uo&&oe(a.source_kind)&&typeof a.id=="string"&&a.id.trim().length>0).map(a=>ar(a.id.trim(),!0)));return i.map(a=>{if(_e(a)||s.has(ar(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:pe(c.status,n)}:{id:a,title:null,status:null,resolved:!1}})}function Rm(e,t,n){return Bo(e,t,n)}function Am(e,t){let n=new Map(e.map(s=>[F(s.id),s])),r=cr(e),o=new Set([...Ua(t),...t.blocked_statuses]),i=new Set;for(let s of e){let a=nt(s.status,t);if(!o.has(a))continue;(t.blocked_statuses.has(a)||Bo(s,n,t,r).some(d=>!d.resolved))&&i.add(F(s.id))}return i}function Dm(e,t,n={},r){let o=[...e.ready,...e.decisions,...e.gates];n.includeContainers===!0&&o.push(...e.containers.filter(s=>s.open_blockers.length===0&&!t.blocked_statuses.has(nt(s.item.status,t))));let i={ready:[],decisions:[],gates:[]};for(let s of o){let a=zo(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 Ua(e){return e.active_statuses.size>0?e.active_statuses:new Set([e.open_status])}function Nm(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(!pe(s.status,n))return!0;r.push(F(s.id))}}}return!1}function Lm(e){let t=new Map,n=new Map,r=new Map,o=cr(e);for(let i of e){t.set(F(i.id),i);let s=typeof i.parent=="string"?i.parent.trim():"";if(s.length>0){let a=F(s),c=n.get(a)??[];c.push(i),n.set(a,c)}for(let a of o.get(F(i.id))){let c=F(a),d=r.get(c)??[];d.push(i.id),r.set(c,d)}}return{itemsById:t,childrenByParent:n,blockedByReverse:r,blockerIdsByItem:o}}function Pm(e,t,n,r){let{itemsById:o,childrenByParent:i,blockedByReverse:s,blockerIdsByItem:a}=Lm(t),c=new Set([...Ua(n),...n.blocked_statuses]),d=new Set(t.filter(g=>!pe(g.status,n)).map(g=>F(g.id))),u=[],f=[],m=[],p=[],_=[],y=0;for(let g of e){if(!c.has(nt(g.status,n)))continue;y+=1;let S=Bo(g,o,n,a).filter(x=>!x.resolved),R=(s.get(F(g.id))??[]).filter(x=>d.has(F(x))).sort((x,q)=>x.localeCompare(q)),D={item:g,open_blockers:S,unblocks:R};if(Nm(g.id,i,n)){m.push(D);continue}let $=n.blocked_statuses.has(nt(g.status,n));if(S.length===0&&!$){let x=zo(g.type,r);x==="human"?p.push(D):x==="gate"?_.push(D):u.push(D)}else f.push(D)}return{ready:u,blocked:f,containers:m,decisions:p,gates:_,active_count:y,container_count:m.length}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ae1c56b3-148d-502d-9450-e807fdfab4da")}catch{}})();(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="245ec731-790e-55ae-9bb6-3eeaaefe27ee")}catch{}})();var U={ok:!1},h=e=>typeof e=="string"?{ok:!0,value:e}:U,O=e=>typeof e=="boolean"?{ok:!0,value:e}:U;function N(e={}){return t=>typeof t!="number"||!Number.isFinite(t)||e.int&&(!Number.isInteger(t)||!Number.isSafeInteger(t))||e.positive&&t<=0||typeof e.min=="number"&&t<e.min||typeof e.max=="number"&&t>e.max?U:{ok:!0,value:t}}function A(...e){return t=>typeof t=="string"&&e.includes(t)?{ok:!0,value:t}:U}function w(e,t){return n=>{if(!Array.isArray(n)||t!==void 0&&n.length>t)return U;let r=[];for(let o of n){let i=e(o);if(!i.ok)return U;r.push(i.value)}return{ok:!0,value:r}}}function Vo(e,t){return n=>typeof n=="string"&&n.length>0&&n.length<=e&&n===n.trim()&&(t===void 0||t.test(n))?{ok:!0,value:n}:U}function l(e){return t=>t===void 0?{ok:!0,value:void 0}:e(t)}function dr(e){return t=>{if(typeof t!="object"||t===null||Array.isArray(t))return U;let n={};for(let[r,o]of Object.entries(t)){let i=e(o);if(!i.ok)return U;n[r]=i.value}return{ok:!0,value:n}}}function C(e){return t=>{if(typeof t!="object"||t===null||Array.isArray(t))return U;let n=t,r={};for(let[o,i]of Object.entries(e)){let s=i(n[o]);if(!s.ok)return U;s.value!==void 0&&(r[o]=s.value)}return{ok:!0,value:r}}}var Mm=C({key:h,values:w(h),required:l(O),aliases:l(w(h)),description:l(h)}),jm=C({command:A("create","update"),option:h,required:l(O),visible:l(O),enabled:l(O)}),Fm=C({name:h,description:l(h),default_status:l(h),execution_role:l(A("agent","human","gate")),folder:l(h),aliases:l(w(h)),required_create_fields:l(w(h)),required_create_repeatables:l(w(h)),options:l(w(Mm)),command_option_policies:l(w(jm))}),$m=C({id:h,aliases:l(w(h)),roles:l(w(A(...ci))),description:l(h),order:l(N())}),Hm=C({key:h,metadata_key:l(h),front_matter_key:l(h),cli_flag:l(h),cli_aliases:l(w(h)),description:l(h),type:l(A(...di)),commands:l(w(A(...li))),repeatable:l(O),required:l(O),required_on_create:l(O),required_types:l(w(h)),allow_unset:l(O)}),zm=e=>{if(!Array.isArray(e)||e.length!==2)return U;let[t,n]=e;return typeof t!="string"||typeof n!="string"?U:{ok:!0,value:[t,n]}},Um=C({type:h,allowed_transitions:w(zm)}),Bm=l(C({version:l(N({int:!0})),files:l(C({types:l(h),statuses:l(h),fields:l(h),workflows:l(h)})),statuses:l(w($m)),fields:l(w(Hm)),workflow:l(C({draft_status:l(h),open_status:l(h),in_progress_status:l(h),blocked_status:l(h),close_status:l(h),canceled_status:l(h)})),type_workflows:l(w(Um)),unknown_field_policy:l(A(...ui))})),Wm=l(C({preset:l(A(...fi)),ownership_enforcement:l(A("none","warn","strict")),create_mode_default:l(A("progressive","strict")),close_validation_default:l(A("off","warn","strict")),require_close_reason:l(O),parent_reference:l(A("warn","strict_error")),metadata_profile:l(A("core","strict","custom")),force_required_for_stale_lock:l(O),create_default_type:l(h),workflow_enforcement:l(A("off","warn","strict")),duplicate_detection_mode:l(A("off","advisory","strict")),duplicate_detection_threshold:l(N({min:0,max:1})),duplicate_detection_limit:l(N({int:!0,min:0,max:20}))})),Vm=C({name:h,disabled:l(O),require_trusted:l(O),require_provenance:l(O),sandbox_profile:l(A("none","restricted","strict")),allowed_capabilities:l(w(h)),blocked_capabilities:l(w(h)),allowed_surfaces:l(w(h)),blocked_surfaces:l(w(h)),allowed_commands:l(w(h)),blocked_commands:l(w(h)),allowed_actions:l(w(h)),blocked_actions:l(w(h)),allowed_services:l(w(h)),blocked_services:l(w(h))}),Wo=A("block","warn"),qm=e=>typeof e=="string"?Wo(e):C({global:l(Wo),project:l(Wo)})(e),Gm=l(C({mode:l(A("off","warn","enforce")),trust_mode:l(A("off","warn","enforce")),pm_max_version_exceeded_mode:l(qm),require_provenance:l(O),trusted_extensions:l(w(h)),default_sandbox_profile:l(A("none","restricted","strict")),allowed_extensions:l(w(h)),blocked_extensions:l(w(h)),allowed_capabilities:l(w(h)),blocked_capabilities:l(w(h)),allowed_surfaces:l(w(h)),blocked_surfaces:l(w(h)),allowed_commands:l(w(h)),blocked_commands:l(w(h)),allowed_actions:l(w(h)),blocked_actions:l(w(h)),allowed_services:l(w(h)),blocked_services:l(w(h)),extension_overrides:l(w(Vm))})),Ge=Vo(128),Km=C({harness:Vo(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u),environment_keys:l(w(Ge,64)),model_environment_keys:l(w(Ge,64)),session_environment_keys:l(w(Ge,64)),provenance_environment_keys:l(dr(w(Ge,64))),provenance_resolvers:l(dr(A("ai_agent_version","claude_session_file"))),provenance_unavailable_dimensions:l(w(Ge,64)),argv_markers:l(w(Ge,64)),client_names:l(w(Ge,64))}),Xm=C({version:N({int:!0}),id_prefix:h,ids:l(C({token_length:l(N({int:!0,min:4,max:12}))})),author_default:h,agent_identity:l(C({probes_enabled:l(O),identity_vocabulary:l(C({version:N({int:!0,positive:!0}),aliases:dr(Vo(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u))})),harness_signals:w(Km)})),mutation_guard:l(C({require_attributed_author:l(O),secret_guard:l(A("off","advise","block")),stale_in_progress_hours:l(N({int:!0,positive:!0}))})),item_format:l(A("toon","json_markdown")),locks:C({ttl_seconds:N({int:!0}),wait_ms:l(N({int:!0,min:0}))}),checkpoints:l(C({retention_days:l(N({int:!0,positive:!0}))})),output:C({default_format:A("toon","json")}),ux:l(C({deprecation_hints:l(O)})),history:l(C({missing_stream:A("auto_create","strict_error"),compact_policy:l(C({enabled:l(O),max_entries:l(N({int:!0,positive:!0})),trigger:l(A("health_warn","auto"))}))})),validation:l(C({sprint_release_format:A("warn","strict_error"),parent_reference:l(A("warn","strict_error")),metadata_profile:l(A("core","strict","custom")),metadata_required_fields:l(w(h)),lifecycle_stale_blocker_reason_patterns:l(w(h)),lifecycle_closure_like_blocked_reason_patterns:l(w(h)),lifecycle_closure_like_resolution_patterns:l(w(h)),lifecycle_closure_like_actual_result_patterns:l(w(h)),estimate_defaults_by_type:l(dr(N({int:!0,positive:!0})))})),governance:Wm,workflow:l(C({definition_of_done:w(h)})),testing:l(C({record_results_to_items:O,allow_untrusted_linked_tests:l(O)})),telemetry:l(C({enabled:O,first_run_prompt_completed:l(O),capture_level:l(A("minimal","redacted","max")),endpoint:l(h),installation_id:l(h),retention_days:l(N({int:!0,positive:!0}))})),agent_guidance:l(C({prompt_completed:l(O),declined:l(O),declined_at:l(h),template_version:l(N({int:!0,positive:!0})),last_checked_files:l(w(h))})),item_types:l(C({definitions:w(Fm)})),schema:Bm,context:l(C({default_depth:l(A("brief","standard","deep")),activity_limit:l(N({int:!0,positive:!0})),stale_threshold_days:l(N({int:!0,positive:!0})),sections:l(C({hierarchy:l(O),activity:l(O),progress:l(O),recently_created:l(O),unparented:l(O),blockers:l(O),files:l(O),workload:l(O),staleness:l(O),tests:l(O)}))})),extensions:C({enabled:w(h),disabled:w(h),policy:Gm}),search:C({score_threshold:N(),hybrid_semantic_weight:l(N()),max_results:N({int:!0}),embedding_model:h,embedding_corpus_max_characters:l(N()),embedding_batch_size:N({int:!0}),embedding_timeout_ms:l(N({int:!0})),scanner_max_batch_retries:N({int:!0}),provider:l(h),default_mode:l(A("auto","keyword","semantic","hybrid")),corpus_fields:l(w(h)),mutation_refresh_policy:l(A("cache_only","semantic_configured","semantic_auto")),query_expansion:l(C({enabled:l(O),provider:l(h)})),rerank:l(C({enabled:l(O),model:l(h),top_k:l(N({int:!0,positive:!0}))})),bm25:l(C({k1:l(N()),b:l(N())}))}),providers:C({openai:C({base_url:h,api_key:h,model:h}),ollama:C({base_url:h,model:h})}),vector_store:C({adapter:l(h),collection_name:l(h),qdrant:C({url:h,api_key:h}),lancedb:C({path:h})})});function Ba(e){let t=Xm(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]="833a4f8a-7e5d-5480-a526-4e1ebaadd0a8")}catch{}})();var Ym={Epic:2880,Feature:480,Story:480,Milestone:2880,Task:120,Issue:60,Bug:60,Chore:30,Decision:15,Plan:120},Wa=120;function qo(e){return typeof e=="number"&&Number.isFinite(e)&&e>0}function qa(e){let t=new Map;for(let[n,r]of Object.entries(e))t.set(n.toLowerCase(),r);return t}var Jm=qa(Ym),Va=new WeakMap;function Qm(e){let t=Va.get(e);if(t)return t;let n=qa(e);return Va.set(e,n),n}function Gv(e,t){let n=(e??"").trim().toLowerCase();if(n.length===0)return Wa;if(t){let o=Qm(t).get(n);if(qo(o))return Math.floor(o)}let r=Jm.get(n);return qo(r)?Math.floor(r):Wa}function Go(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||!qo(r)||(t[o]=Math.floor(r))}return t}import{stat as Zm}from"node:fs/promises";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="7c23ef10-ea7a-5680-8850-822e7d0c07a6")}catch{}})();var lr=new Map;function Ga(e){return[...new Set(e.map(t=>t.trim()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}async function e_(e){try{let t=await Zm(e);return{path:e,mtime_ms:t.mtimeMs,size:t.size}}catch{return{path:e,mtime_ms:null,size:null}}}async function xe(e){let t=Ga(e),n=await Promise.all(t.map(r=>e_(r)));return n.sort((r,o)=>r.path.localeCompare(o.path)),n}function Xt(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1){let r=e[n],o=t[n];if(r.path!==o.path||r.mtime_ms!==o.mtime_ms||r.size!==o.size)return!1}return!0}function Ka(e){return lr.get(e)}function ur(e,t){let n=Ga(t.tracked_paths),r=[...t.signatures].map(o=>({path:o.path,mtime_ms:o.mtime_ms,size:o.size})).sort((o,i)=>o.path.localeCompare(i.path));lr.set(e,{tracked_paths:n,signatures:r,value:t.value})}function Re(e){if(e){lr.delete(e);return}lr.clear()}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="665677ea-4d55-5858-8b21-6dee20bfd46b")}catch{}})();var t_="settings:write",Za=Symbol("pm.settings.persist_source"),n_=128,r_=new Set(["off","advisory","strict"]);function Xa(e){return structuredClone(_i[e])}function o_(e){return e==="minimal"||e==="default"||e==="strict"||e==="custom"?e:k.governance.preset}function Ya(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 i_(e){return e.preset==="custom"?Ya({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):Ya({preset:e.preset},e)}function s_(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),r_.has(String(e.duplicate_detection_mode))&&(n.duplicate_detection_mode=e.duplicate_detection_mode);let r=e.duplicate_detection_threshold;[typeof r=="number",Number.isFinite(r),Number(r)>=0,Number(r)<=1].every(Boolean)&&(n.duplicate_detection_threshold=r);let o=e.duplicate_detection_limit;return[typeof o=="number",Number.isSafeInteger(o),Number(o)>=0,Number(o)<=20].every(Boolean)&&(n.duplicate_detection_limit=o),n}function mr(e){let t=e.governance??{},n=o_(t.preset),r=s_(t);if(n==="custom"){let s=Xa("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=Xa(n),i=r.require_close_reason??o.require_close_reason;return{preset:n,...o,...r,require_close_reason:i}}function ec(){return structuredClone(k)}function tc(e){return e==="cache_only"||e==="semantic_configured"||e==="semantic_auto"?e:k.search.mutation_refresh_policy}function nc(e){return e==="auto"||e==="keyword"||e==="semantic"||e==="hybrid"?e:"auto"}function rc(e){return typeof e=="boolean"?e:k.search.query_expansion.enabled}function oc(e){return typeof e!="string"?k.search.query_expansion.provider:e.trim()}function ic(e){return typeof e=="boolean"?e:k.search.rerank.enabled}function sc(e){return typeof e!="string"?k.search.rerank.model:e.trim()}function ac(e){return typeof e=="number"&&Number.isFinite(e)&&Number.isInteger(e)&&e>0?e:k.search.rerank.top_k}function cc(e){if(typeof e!="string")return k.vector_store.collection_name;let n=e.trim().replaceAll(/[^a-zA-Z0-9_-]/g,"_").slice(0,n_);return n.length>0?n:k.vector_store.collection_name}function Ko(e){return{present:Array.isArray(e),values:Array.isArray(e)?structuredClone(e):[]}}function a_(e,t){let n=e.schema,r=Ko(n?.statuses),o=Ko(n?.fields),i=Ko(n?.type_workflows);return{source_settings:structuredClone(e),has_source_item_type_definitions:Array.isArray(e.item_types?.definitions),source_item_type_definitions:yt(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:yt(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 dc(e,t){Object.defineProperty(e,Za,{value:t,writable:!0,configurable:!0,enumerable:!1})}function lc(e){let t=e[Za];if(!(!t||typeof t!="object"))return t}function fr(e){let t=structuredClone(e.settings),n=lc(e.settings);return n&&dc(t,n),{settings:t,metadata:{has_explicit_item_format:e.metadata.has_explicit_item_format},warnings:[...e.warnings]}}function c_(e,t,n){let r=St(t);return[n,Tt(e,r.files.types,It.types),Tt(e,r.files.statuses,It.statuses),Tt(e,r.files.fields,It.fields),Tt(e,r.files.workflows,It.workflows)]}async function d_(e,t,n){let r=await xe(t);ur(e,{tracked_paths:t,signatures:r,value:fr(n)})}async function l_(e,t,n){try{await d_(e,t,n)}catch{Re(e)}}function Ja(e,t){return e.find(n=>n.path===t)}function u_(e,t,n){for(let r of n){let o=Ja(e,r),i=Ja(t,r);if(!o||!i||!Xt([o],[i]))return!1}return!0}async function Xo(e,t,n,r,o){try{let i=await xe(t);if(!u_(r,i,o)){Re(e);return}ur(e,{tracked_paths:t,signatures:i,value:fr(n)})}catch{Re(e)}}function f_(e,t){let n=St(e.schema),r=yt(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=Je(r,t.runtime_item_type_definitions),s=Je(n.statuses,t.runtime_schema_statuses),a=Je(n.fields,t.runtime_schema_fields),c=Je(o,t.runtime_schema_type_workflows);return{item_type_definitions:i?t.has_source_item_type_definitions?yt(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 Yt(e){return{settings:ec(),metadata:{has_explicit_item_format:!1},warnings:e?[e]:[]}}function m_(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=e.item_format;return t==="toon"||t==="json_markdown"}function Jo(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:Jo(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 __(e){return e==="off"||e==="warn"||e==="enforce"?e:k.extensions.policy.mode}function p_(e){return e==="off"||e==="warn"||e==="enforce"?e:k.extensions.policy.trust_mode}function fc(e){return e==="none"||e==="restricted"||e==="strict"?e:k.extensions.policy.default_sandbox_profile}function h_(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=fc(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),u=re(e.blocked_actions),f=re(e.allowed_services),m=re(e.blocked_services);return r.length>0&&(n.allowed_capabilities=r),o.length>0&&(n.blocked_capabilities=o),i.length>0&&(n.allowed_surfaces=i),s.length>0&&(n.blocked_surfaces=s),a.length>0&&(n.allowed_commands=a),c.length>0&&(n.blocked_commands=c),d.length>0&&(n.allowed_actions=d),u.length>0&&(n.blocked_actions=u),f.length>0&&(n.allowed_services=f),m.length>0&&(n.blocked_services=m),n}function y_(e){let t=new Map;for(let n of e??[]){let r=h_(n);r&&t.set(r.name,r)}return[...t.values()].sort((n,r)=>n.name.localeCompare(r.name))}function Yo(e){return e==="block"||e==="warn"?e:void 0}function g_(e){if(typeof e=="string")return Yo(e);if(typeof e=="object"&&e!==null&&!Array.isArray(e)){let t=Yo(e.global),n=Yo(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 mc(e){let t=g_(e?.pm_max_version_exceeded_mode);return{mode:__(e?.mode),trust_mode:p_(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:fc(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:y_(e?.extension_overrides??k.extensions.policy.extension_overrides)}}function _c(e){return[...new Set((e??[]).map(n=>n.trim().toLowerCase().replaceAll("-","_")))].filter(n=>n.length>0).sort((n,r)=>n.localeCompare(r)).filter(n=>["author","acceptance_criteria","estimated_minutes","close_reason","reviewer","risk","confidence","sprint","release"].includes(n))}function Ae(e){return[...new Set((e??[]).map(t=>t.trim().toLowerCase()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function H(e,t){return e===void 0?t:e}function Y(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:{}}function Qo(e){return Array.isArray(e)?e:[]}function v_(e,t,n){return{...t.validation,...e.validation,parent_reference:n.parent_reference,metadata_profile:n.metadata_profile,metadata_required_fields:_c(e.validation?.metadata_required_fields),lifecycle_stale_blocker_reason_patterns:Ae(e.validation?.lifecycle_stale_blocker_reason_patterns??t.validation.lifecycle_stale_blocker_reason_patterns),lifecycle_closure_like_blocked_reason_patterns:Ae(e.validation?.lifecycle_closure_like_blocked_reason_patterns??t.validation.lifecycle_closure_like_blocked_reason_patterns),lifecycle_closure_like_resolution_patterns:Ae(e.validation?.lifecycle_closure_like_resolution_patterns??t.validation.lifecycle_closure_like_resolution_patterns),lifecycle_closure_like_actual_result_patterns:Ae(e.validation?.lifecycle_closure_like_actual_result_patterns??t.validation.lifecycle_closure_like_actual_result_patterns),estimate_defaults_by_type:Go(e.validation?.estimate_defaults_by_type)}}function b_(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 w_(e,t){return{...t.search,...e.search,default_mode:nc(e.search?.default_mode),mutation_refresh_policy:tc(e.search?.mutation_refresh_policy),query_expansion:{...t.search.query_expansion,...e.search?.query_expansion,enabled:rc(e.search?.query_expansion?.enabled),provider:oc(e.search?.query_expansion?.provider)},rerank:{...t.search.rerank,...e.search?.rerank,enabled:ic(e.search?.rerank?.enabled),model:sc(e.search?.rerank?.model),top_k:ac(e.search?.rerank?.top_k)}}}function E_(e,t){return{adapter:e.vector_store.adapter??t.vector_store.adapter,collection_name:cc(e.vector_store.collection_name),qdrant:{...t.vector_store.qdrant,...e.vector_store.qdrant},lancedb:{...t.vector_store.lancedb,...e.vector_store.lancedb}}}function k_(e,t){return e.item_format==="json_markdown"?"toon":e.item_format??t.item_format}function I_(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 S_(e,t){return{openai:{...t.providers.openai,...e.providers.openai},ollama:{...t.providers.ollama,...e.providers.ollama}}}function yt(e){let t=(e??[]).map(r=>yi(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 pc(e){let t=ec(),n=mr({governance:e.governance??{preset:"default"}});return{...t,...e,item_format:k_(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:v_(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:b_(e,t),agent_guidance:uc(e.agent_guidance??t.agent_guidance),item_types:{definitions:yt(e.item_types?.definitions)},schema:St(e.schema??t.schema),context:I_(e,t),extensions:{enabled:[...e.extensions.enabled],disabled:[...e.extensions.disabled],policy:mc(e.extensions.policy??t.extensions.policy)},search:w_(e,t),providers:S_(e,t),vector_store:E_(e,t)}}function T_(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=Qo(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=Qo(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 C_(e){return{...e,locks:H(e.locks,k.locks),ids:H(e.ids,k.ids),agent_identity:H(e.agent_identity,k.agent_identity),mutation_guard:H(e.mutation_guard,k.mutation_guard),checkpoints:H(e.checkpoints,k.checkpoints),output:H(e.output,k.output),ux:H(e.ux,k.ux),history:H(e.history,k.history),validation:H(e.validation,k.validation),workflow:H(e.workflow,k.workflow),testing:H(e.testing,k.testing),telemetry:H(e.telemetry,k.telemetry),agent_guidance:H(e.agent_guidance,k.agent_guidance),item_types:H(e.item_types,k.item_types),schema:H(e.schema,k.schema),context:H(e.context,k.context),extensions:H(e.extensions,k.extensions),search:H(e.search,k.search),providers:H(e.providers,k.providers),vector_store:H(e.vector_store,k.vector_store)}}function O_(e,t){return{...e.validation,parent_reference:t.parent_reference,metadata_profile:t.metadata_profile,metadata_required_fields:_c(e.validation?.metadata_required_fields),lifecycle_stale_blocker_reason_patterns:Ae(e.validation?.lifecycle_stale_blocker_reason_patterns??k.validation.lifecycle_stale_blocker_reason_patterns),lifecycle_closure_like_blocked_reason_patterns:Ae(e.validation?.lifecycle_closure_like_blocked_reason_patterns??k.validation.lifecycle_closure_like_blocked_reason_patterns),lifecycle_closure_like_resolution_patterns:Ae(e.validation?.lifecycle_closure_like_resolution_patterns??k.validation.lifecycle_closure_like_resolution_patterns),lifecycle_closure_like_actual_result_patterns:Ae(e.validation?.lifecycle_closure_like_actual_result_patterns??k.validation.lifecycle_closure_like_actual_result_patterns),estimate_defaults_by_type:Go(e.validation?.estimate_defaults_by_type)}}function x_(e){return{...k.search,...e.search,default_mode:nc(e.search?.default_mode),mutation_refresh_policy:tc(e.search?.mutation_refresh_policy),query_expansion:{...k.search.query_expansion,...e.search?.query_expansion,enabled:rc(e.search?.query_expansion?.enabled),provider:oc(e.search?.query_expansion?.provider)},rerank:{...k.search.rerank,...e.search?.rerank,enabled:ic(e.search?.rerank?.enabled),model:sc(e.search?.rerank?.model),top_k:ac(e.search?.rerank?.top_k)}}}function R_(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 A_(e){return{...e.vector_store,adapter:e.vector_store?.adapter??k.vector_store.adapter,collection_name:cc(e.vector_store?.collection_name),qdrant:{...e.vector_store?.qdrant},lancedb:{...e.vector_store?.lancedb}}}function D_(e,t,n,r){return{...e,item_format:"toon",validation:O_(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:x_(e),context:R_(e),extensions:{enabled:Jo(e.extensions?.enabled),disabled:Jo(e.extensions?.disabled),policy:mc(e.extensions?.policy)},vector_store:A_(e)}}function hc(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(!Je(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:{};hc(c,i,s),Object.keys(c).length>0?e[o]=c:delete e[o];continue}e[o]=structuredClone(s)}}}var yc=["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 Qa(e,t){let n=C_(e),r=mr(n),o=St(n.schema),i=f_(n,t),s=D_(n,r,o,i),a=T({...s,governance:i_(r)},yc);return T_(a),a}function N_(e,t={}){let n=Qa(e,t.persist_source);if(t.persist_source){let r=pc(t.persist_source.source_settings);r.item_types={definitions:structuredClone(t.persist_source.runtime_item_type_definitions)},r.schema={...r.schema,statuses:structuredClone(t.persist_source.runtime_schema_statuses),fields:structuredClone(t.persist_source.runtime_schema_fields),type_workflows:structuredClone(t.persist_source.runtime_schema_type_workflows)};let o=Qa(r,t.persist_source),i=structuredClone(t.persist_source.source_settings);return hc(i,o,n),`${JSON.stringify(T(i,yc),null,2)}
161
+ LIMIT ?`).all(e.query,Math.max(0,Math.floor(e.limit))).map(s=>JSON.parse(String(s.metadata_json)));return n.close(),{source_cursor:r.source_cursor,items:i}}catch{return n?.close(),null}}async function Gn(e){await Ge.rm(mt(e),{force:!0})}import B from"node:fs/promises";import M from"node:path";import{createHash as hf,randomUUID as Ca}from"node:crypto";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="1c60c095-9763-5372-9dc3-c0ea1a5caca6")}catch{}})();var ae=8,Oa=500,yf="metadata-derived-index",gf="metadata-cache.json",vf="metadata-cache-bodies.json",bf="metadata-cache-collections.json",wf="metadata-cache-delta.json",Ef="metadata-cache-manifest.json",ka=4,kf=["comments","notes","learnings","files","tests","test_runs","docs"];function xa(){return on(ue())}function Xn(e){let t={...e},n={};for(let r of kf)r in t&&(n[r]=t[r],delete t[r]);return{light:t,heavy:n}}function Ra(e,t){return!t||Object.keys(t).length===0?e:{...e,...t}}function Aa(e,t,n,r){let o=hf("sha256");o.update(`format:${e??"default"}`);let i=Object.entries(t).sort(([s],[a])=>s.localeCompare(a)).map(([s,a])=>`${s}=${a}`).join(",");return o.update(`|types:${i}`),n&&o.update(`|schema:${JSON.stringify(n)}`),r.length>0&&o.update(`|extension_fields:${r.join(",")}`),o.digest("hex").slice(0,16)}function Yn(e){return M.join(e,"runtime",gf)}function Jn(e){return M.join(e,"runtime",vf)}function Qn(e){return M.join(e,"runtime",bf)}function Co(e){return M.join(e,"runtime",wf)}function Oo(e){return M.join(e,"runtime",Ef)}function Zn(e,t){let n=M.extname(e);return`${e.slice(0,-n.length)}.${t}${n}`}var If=24,Z=new Map,er=new WeakMap;function xo(e){return er.get(e)??e.source_cursor}function Sf(e,t){let n=xo(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){er.set(e,n);for(let[r,o]of Object.entries(t.changes))o.entry?e.entries[r]=o.entry:delete e.entries[r];e.directory_signatures=t.directory_signatures,e.source_cursor=t.source_cursor}}function Tf(e,t){if(!e)return;let n=xo(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){er.set(e,n);for(let[r,o]of Object.entries(t.changes))o.body?e.bodies[r]=o.body:delete e.bodies[r];e.source_cursor=t.source_cursor}}function Cf(e,t){if(!e)return;let n=xo(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){er.set(e,n);for(let[r,o]of Object.entries(t.changes))o.collections?e.collections[r]=o.collections:delete e.collections[r];e.source_cursor=t.source_cursor}}function Of(e,t,n,r){!e||!r||e.context_fingerprint!==r.context_fingerprint||(Sf(e,r),Tf(t,r),Cf(n,r))}function To(e,t){Z.size>=If&&!Z.has(e)&&Ci(Z),Z.set(e,t)}async function xe(e,t){let n;try{n=await B.stat(e)}catch{return Z.delete(e),null}let r=Z.get(e);if(r&&zt(r.signature,n.mtimeMs,n.ctimeMs,n.size))return Z.delete(e),Z.set(e,r),r.envelope;let o;try{o=t(await B.readFile(e,"utf8"))}catch{o=null}return To(e,{signature:{mtime_ms:n.mtimeMs,ctime_ms:n.ctimeMs,size:n.size},envelope:o}),o}async function xf(e,t,n){let r=a=>{let c=JSON.parse(a);return c.version!==ae||typeof c.source_cursor!="string"||typeof c.entries!="object"||c.entries===null?null:c},o=Yn(e),i=await xe(o,r);if(!t||i===null||i.context_fingerprint===t)return i;let s=await xe(Zn(o,t),r);return s===null&&Wt(n,`metadata_cache_context_changed:${i.context_fingerprint}->${t}`),s}async function Rf(e,t){let n=i=>{let s=JSON.parse(i);return s.version!==ae||typeof s.source_cursor!="string"||typeof s.bodies!="object"||s.bodies===null?null:s},r=Jn(e),o=await xe(r,n);return t&&o?.context_fingerprint!==t?await xe(Zn(r,t),n):o}async function Af(e,t){let n=i=>{let s=JSON.parse(i);return s.version!==ae||typeof s.source_cursor!="string"||typeof s.collections!="object"||s.collections===null?null:s},r=Qn(e),o=await xe(r,n);return t&&o?.context_fingerprint!==t?await xe(Zn(r,t),n):o}async function Ro(e){let t=Co(e),n=await xe(t,r=>{let o=JSON.parse(r);return o.version!==ae||typeof o.base_source_cursor!="string"||typeof o.source_cursor!="string"||typeof o.changes!="object"||o.changes===null?null:o});if(n)return{envelope:n,invalid:!1};try{return await B.stat(t),{envelope:null,invalid:!0}}catch{return{envelope:null,invalid:!1}}}async function Ao(e){let t=Oo(e),n=await xe(t,r=>{let o=JSON.parse(r);return o.version!==ae||typeof o.context_fingerprint!="string"||typeof o.source_cursor!="string"||!Number.isInteger(o.entry_count)||o.entry_count<0||typeof o.directory_signatures!="object"||o.directory_signatures===null?null:o});if(n)return n;try{await B.stat(t),await _t(e)}catch{}return null}async function Ut(e,t){await B.mkdir(M.dirname(e),{recursive:!0}),await X(e,JSON.stringify(t));try{let r=await B.stat(e);To(e,{signature:{mtime_ms:r.mtimeMs,ctime_ms:r.ctimeMs,size:r.size},envelope:t})}catch{Z.delete(e)}let n=M.dirname(M.dirname(e));if(e===Yn(n)||e===Jn(n)||e===Qn(n)){let r=Zn(e,t.context_fingerprint);await X(r,JSON.stringify(t));try{let c=await B.stat(r);To(r,{signature:{mtime_ms:c.mtimeMs,ctime_ms:c.ctimeMs,size:c.size},envelope:t})}catch{Z.delete(r)}let o=M.dirname(e),i=M.extname(e),s=M.basename(e,i),a=(await B.readdir(o,{withFileTypes:!0}).catch(()=>[])).filter(c=>c.isFile()&&c.name!==M.basename(e)&&c.name.startsWith(`${s}.`)&&c.name.endsWith(i)).map(c=>M.join(o,c.name));if(a.length>ka){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((u,f)=>u.mtime-f.mtime).slice(0,Math.max(0,c.length-ka)))await B.rm(d.path,{force:!0}),Z.delete(d.path)}}}function Df(e,t,n){return n?t===n&&e!==n:t==="toon"&&e!=="toon"}function Da(e,t,n){return e===void 0||Df(e,t,n)}function Wt(e,t){e&&!e.includes(t)&&e.push(t)}function zt(e,t,n,r){return e.mtime_ms===t&&e.ctime_ms===n&&e.size===r}async function Nf(e,t,n){let r=M.join(e,t);try{let o=await B.readdir(r);return{folder:t,dirPath:r,files:o}}catch(o){return typeof o=="object"&&o!==null&&"code"in o&&!te(o)&&Wt(n,`item_list_directory_read_failed:${t}`),{folder:t,dirPath:r,files:[]}}}async function Lf(e,t){try{let n=await B.stat(M.join(e,t));return[t,{exists:!0,mtime_ms:n.mtimeMs,ctime_ms:n.ctimeMs,size:n.size}]}catch{return[t,{exists:!1,mtime_ms:0,ctime_ms:0,size:0}]}}async function Kn(e,t){return Object.fromEntries(await Promise.all(t.map(async n=>await Lf(e,n))))}function Bt(e,t){return!e||Object.keys(e).length!==Object.keys(t).length?!1:Object.entries(t).every(([n,r])=>{let o=e[n];return o!==void 0&&o.exists===r.exists&&zt(o,r.mtime_ms,r.ctime_ms,r.size)})}function Pf(e){return an.some(t=>e.toLowerCase().endsWith(t))}function Mf(e,t,n,r,o,i){r||(e.metadata=!0),t&&!o&&(e.body=!0),n&&!i&&(e.collections=!0)}async function jf(e,t,n){if(n)for(let r of await be({path:e,scope:"project"}))Wt(t,r)}function Ia(e,t,n,r){if(e)return t&&n?n.collections:r}async function Ff(e,t,n){let r=await B.stat(e),o=r.mtimeMs,i=r.ctimeMs,{size:s}=r,a=wr(e);await jf(e,n.warnings,n.dispatchReadHooks);let c=n.previousEntries[t],d=!n.forceSourceRead&&c!==void 0&&zt(c,o,i,s),u=n.previousBodies[t],f=!n.forceSourceRead&&u!==void 0&&zt(u,o,i,s),m=n.previousCollections[t],p=!n.forceSourceRead&&m!==void 0&&zt(m,o,i,s);if(!(!d||n.includeBody&&!f||n.includeCollections&&!p))return{mtimeMs:o,ctimeMs:i,size:s,itemFormat:a,lightMetadata:c.metadata,heavyMetadata:Ia(n.includeCollections,p,m,void 0),bodyLength:c.body_length,body:n.includeBody?u.body:void 0};let y=await B.readFile(e,"utf8"),g=In(y,{format:a,schema:n.schema,extensionFieldNames:n.extensionFieldNames,onWarning:R=>Wt(n.warnings,R)}),S=Xn(g.metadata);return Mf(n.state.misses,n.includeBody,n.includeCollections,d,f,p),{mtimeMs:o,ctimeMs:i,size:s,itemFormat:a,lightMetadata:d?c.metadata:S.light,heavyMetadata:Ia(n.includeCollections,p,m,S.heavy),bodyLength:d?c.body_length:g.body.length,body:n.includeBody?g.body:void 0}}function $f(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?Ra(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};Da(i?.itemFormat,r.itemFormat,n.preferredFormat)&&n.state.documentsById.set(o.id,{candidate:s,itemFormat:r.itemFormat})}async function Hf(e,t,n,r){try{let o=await Ff(t,n,r);$f(t,n,r,o)}catch{Wt(r.warnings,`item_list_item_read_failed:${e}/${M.basename(t)}`)}}function zf(e,t){return e&&e.context_fingerprint===t?e.entries:{}}function Uf(e,t){return e&&e.context_fingerprint===t?e.bodies:{}}function Bf(e,t){return e&&e.context_fingerprint===t?e.collections:{}}function Wf(){return{newEntries:{},newBodies:{},newCollections:{},documentsById:new Map,misses:{metadata:!1,body:!1,collections:!1}}}async function Vf(e,t){let n=[];for(let{folder:r,dirPath:o,files:i}of e)for(let s of i){if(!Pf(s))continue;let a=M.join(o,s),c=M.relative(t.pmRoot,a);n.push(Hf(r,a,c,t)),n.length===32&&(await Promise.all(n),n.length=0)}await Promise.all(n)}async function qf(e){if(!(!(e.state.misses.metadata||Object.keys(e.previousEntries).length!==Object.keys(e.state.newEntries).length||!Bt(e.existingCache?.directory_signatures,e.directorySignatures))&&e.existingCache!==null&&e.existingCache.context_fingerprint===e.contextFingerprint))try{await Ut(Yn(e.pmRoot),{version:ae,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,directory_signatures:e.directorySignatures,entries:e.state.newEntries}),await Ut(Oo(e.pmRoot),{version:ae,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,entry_count:Object.keys(e.state.newEntries).length,directory_signatures:e.directorySignatures});let n=[...e.state.documentsById.values()].map(({candidate:r})=>({relativePath:M.relative(e.pmRoot,r.item_path),metadata:Xn(r.metadata).light,linkedFiles:r.metadata.files??[]}));n.length>=e.minimumIndexedItems?await wa({pmRoot:e.pmRoot,contextFingerprint:e.contextFingerprint,sourceCursor:e.sourceCursor,rows:n}):await Gn(e.pmRoot)}catch{}}async function Gf(e){!(e.state.misses.body||Object.keys(e.previousBodies).length!==Object.keys(e.state.newBodies).length)&&e.existingBodyCache!==null&&e.existingBodyCache.context_fingerprint===e.contextFingerprint||await Ut(Jn(e.pmRoot),{version:ae,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,bodies:e.state.newBodies}).catch(()=>{})}async function Kf(e){!(e.state.misses.collections||Object.keys(e.previousCollections).length!==Object.keys(e.state.newCollections).length)&&e.existingCollectionsCache!==null&&e.existingCollectionsCache.context_fingerprint===e.contextFingerprint||await Ut(Qn(e.pmRoot),{version:ae,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,collections:e.state.newCollections}).catch(()=>{})}async function Do(e,t,n={}){let r=await Ao(e);return n.required!==!0&&(r===null||r.entry_count<Oa)?async()=>{}:V(e,yf,30,t,!1,!1,3e3)}async function lv(e,t){let n=await Ao(e);if(n===null)return null;let r=await Ro(e);if(r.invalid)return await _t(e),null;let o=r.envelope?.context_fingerprint===n.context_fingerprint&&r.envelope.base_source_cursor===n.source_cursor?r.envelope.source_cursor:n.source_cursor,i=r.envelope?.context_fingerprint===n.context_fingerprint&&r.envelope.base_source_cursor===n.source_cursor?r.envelope.directory_signatures:n.directory_signatures;return t&&!Bt(i,await Kn(e,t))?null:{source_cursor:o,entry_count:n.entry_count}}function Sa(e,t){let n=M.relative(e,t);return n===""||n===".."||n.startsWith(`..${M.sep}`)||M.isAbsolute(n)?null:n}async function _t(e){await Promise.all([Yn(e),Jn(e),Qn(e),Co(e),Oo(e)].map(async t=>{await B.rm(t,{force:!0}),Z.delete(t)})),await Gn(e)}async function Xf(e){if(e.mutation.document===null)return{entry:null,body:null,collections:null};let t=await B.stat(e.mutation.itemPath),n=Xn(e.mutation.document.metadata),r={mtime_ms:t.mtimeMs,ctime_ms:t.ctimeMs,size:t.size};return{entry:{...r,metadata:n.light,body_length:e.mutation.document.body.length},body:{...r,body:e.mutation.document.body},collections:{...r,collections:n.heavy}}}function Yf(e,t,n){return e?.context_fingerprint===t&&e.base_source_cursor===n?structuredClone(e.changes):{}}async function No(e){let t=Sa(e.pmRoot,e.itemPath),n=e.previousItemPath?Sa(e.pmRoot,e.previousItemPath):void 0;if(t===null||n===null)return await _t(e.pmRoot),["metadata_derived_index_path_invalidated"];try{let r=Aa(e.preferredFormat,e.typeToFolder,e.schema,xa()),o=await Ao(e.pmRoot);if(o===null||o.context_fingerprint!==r)return[];let i=o.source_cursor,s=await Ro(e.pmRoot);if(s.invalid)return await _t(e.pmRoot),["metadata_derived_index_refresh_failed"];let a=Yf(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 Xf({mutation:e});let d=Ca();return await Ut(Co(e.pmRoot),{version:ae,context_fingerprint:r,base_source_cursor:i,source_cursor:d,directory_signatures:await Kn(e.pmRoot,[...new Set(Object.values(e.typeToFolder))]),changes:a}),await Ea({pmRoot:e.pmRoot,contextFingerprint:r,expectedSourceCursor:c,sourceCursor:d,row:e.document===null?null:{relativePath:t,metadata:Xn(e.document.metadata).light,linkedFiles:e.document.metadata.files},deletedRelativePaths:[...n===void 0?[]:[n],...e.document===null?[t]:[]]})||await Gn(e.pmRoot),[]}catch{return await _t(e.pmRoot).catch(()=>{}),["metadata_derived_index_refresh_failed"]}}function Jf(e){return[...e.documentsById.values()].sort((t,n)=>t.candidate.metadata.id.localeCompare(n.candidate.metadata.id)).map(t=>t.candidate)}function Ta(e,t,n){return e?.context_fingerprint===t&&e.source_cursor===n}function Qf(e,t,n,r,o){return e.every(i=>(!t||r[i]!==void 0)&&(!n||o[i]!==void 0))}function Zf(e){let t=new Map;for(let[n,r]of Object.entries(e.previousEntries)){let o=wr(n);if(!o)continue;let i=e.includeCollections?Ra(r.metadata,e.previousCollections[n]?.collections):r.metadata,s=t.get(i.id);Da(s?.itemFormat,o,e.preferredFormat)&&t.set(i.id,{itemFormat:o,candidate:{metadata:i,body:e.includeBody?e.previousBodies[n]?.body:void 0,item_format:o,item_path:M.join(e.pmRoot,n)}})}return[...t.values()].sort((n,r)=>n.candidate.metadata.id.localeCompare(r.candidate.metadata.id)).map(n=>n.candidate)}function em(e){return e.forceSourceScan||Ir()||e.existingCache?.context_fingerprint!==e.contextFingerprint||e.entryKeys.length<e.minimumIndexedItems||!Bt(e.existingCache?.directory_signatures,e.directorySignatures)?!1:[!e.includeBody||Ta(e.existingBodyCache,e.contextFingerprint,e.existingCache.source_cursor),!e.includeCollections||Ta(e.existingCollectionsCache,e.contextFingerprint,e.existingCache.source_cursor)].every(Boolean)&&Qf(e.entryKeys,e.includeBody,e.includeCollections,e.previousBodies,e.previousCollections)}async function tr(e,t,n,r,o,i={}){let s=i.includeBody!==!1,a=i.includeCollections!==!1,c=xa(),d=Aa(t,n,o,c),u=await Ro(e);u.invalid&&await _t(e);let f=await xf(e,d,i.cacheDiagnostics),m=s?await Rf(e,d):null,p=a?await Af(e,d):null;Of(f,m,p,u.envelope);let _=zf(f,d),y=Uf(m,d),g=Bf(p,d),S=[...new Set(Object.values(n))],R=await Kn(e,S),D=Object.keys(_),$=Math.max(1,Math.floor(i.derivedIndexMinimumItems??Oa));if(em({forceSourceScan:i.forceSourceScan===!0,contextFingerprint:d,existingCache:f,existingBodyCache:m,existingCollectionsCache:p,directorySignatures:R,entryKeys:D,minimumIndexedItems:$,includeBody:s,includeCollections:a,previousBodies:y,previousCollections:g}))return Zf({pmRoot:e,preferredFormat:t,includeBody:s,includeCollections:a,previousEntries:_,previousBodies:y,previousCollections:g});let x=await Promise.all(S.map(Et=>Nf(e,Et,r))),G=Ir(),W=Wf(),Q={pmRoot:e,preferredFormat:t,warnings:r,schema:o,extensionFieldNames:c,includeBody:s,includeCollections:a,forceSourceRead:i.forceSourceScan===!0,dispatchReadHooks:G,previousEntries:_,previousBodies:y,previousCollections:g,state:W};await Vf(x,Q);let K=await Kn(e,S),ee=Bt(R,K)?K:{},Xe=W.misses.metadata||Object.keys(_).length!==Object.keys(W.newEntries).length||!Bt(f?.directory_signatures,ee)||f===null?Ca():f.source_cursor;return await qf({pmRoot:e,contextFingerprint:d,sourceCursor:Xe,existingCache:f,previousEntries:_,directorySignatures:ee,state:W,minimumIndexedItems:$}),s&&await Gf({pmRoot:e,contextFingerprint:d,sourceCursor:Xe,existingBodyCache:m,previousBodies:y,state:W}),a&&await Kf({pmRoot:e,contextFingerprint:d,sourceCursor:Xe,existingCollectionsCache:p,previousCollections:g,state:W}),Jf(W)}async function Na(e,t,n,r,o){return(await tr(e,t,n,r,o,{includeBody:!1})).map(s=>({metadata:s.metadata,body:s.body??""}))}async function La(e,t,n,r,o){return(await tr(e,t,n,r,o,{includeBody:!1,includeCollections:!1})).map(s=>({metadata:s.metadata,body:s.body??""}))}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="0a3dd0c1-2dea-5143-a2eb-65e758a0cc71")}catch{}})();function ce(){let e=le();for(let t of ue()?.relationship_kinds??[])for(let n of t.definitions)e.register(n);return e}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="83d1acab-79a1-5e9f-b6a4-97dade07d74a")}catch{}})();function Vt(e){if(typeof e!="string")return;let t=e.trim().toLowerCase();return t.length>0?t:void 0}function nr(e){return[e.parent_id,e.child_id,e.source,e.kind,e.holder_id,e.target_id??""].join("\0")}function tm(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 nm(e,t){let n=[...e].sort(),r=tm(n,t),o=new Set,i=rm(n,t),s=[];for(let a of r.reverse()){if(o.has(a))continue;let c=om(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 rm(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 om(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 Pa(e){let t=new Map;for(let n of e){let r=Vt(n?.id);r&&!t.has(r)&&t.set(r,n)}return t}function im(e,t,n){let r=Vt(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 sm(e,t,n,r){let o=Vt(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 Ma(e,t){let n=new Map;for(let[r,o]of e){let i=im(r,o,e);i&&n.set(nr(i),i);for(let s of o.dependencies??[]){let a=sm(r,s,e,t);a&&n.set(nr(a),a)}}return[...n.values()].sort((r,o)=>nr(r).localeCompare(nr(o)))}function gv(e,t=ce()){return Ma(Pa(e),t)}function am(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 cm(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=Vt(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 rr(e,t=r=>r==="closed"||r==="canceled",n=ce()){let r=Pa(e),o=Ma(r,n),i=dm(o),s=new Set([...r].filter(([,c])=>t(c.status)).map(([c])=>c)),a=nm([...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:am(o,i.parents_by_child,s),divergences:cm(r,o,s)}}function vv(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 dm(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 Lo(e,t){let n=new Set(t);return e.every(r=>n.has(r))}function bv(e,t,n,r,o){let i=Vt(n);if(!i)return;let s=rr(e,r,o),a=rr(t,r,o),c=a.divergences.find(f=>!s.divergences.some(m=>m.child_id===f.child_id&&m.scalar_parent_id===f.scalar_parent_id&&Lo(f.dependency_parent_ids,m.dependency_parent_ids)));if(c){let f=[c.scalar_parent_id,...c.dependency_parent_ids].sort();throw new v(`Hierarchy mutation would assign ${c.child_id} to multiple parents: ${f.join(", ")}.`,b.CONFLICT,{code:"hierarchy_parent_divergence_created",source_id:i,target_id:c.child_id,verification_errors:f})}let d=a.cardinality_violations.find(f=>(f.child_id===i||f.parent_ids.includes(i))&&!s.cardinality_violations.some(m=>m.child_id===f.child_id&&Lo(f.parent_ids,m.parent_ids)));if(d)throw new v(`Hierarchy mutation would assign ${d.child_id} to multiple parents: ${d.parent_ids.join(", ")}.`,b.CONFLICT,{code:"hierarchy_cardinality_created",source_id:i,target_id:d.child_id,verification_errors:d.parent_ids});let u=a.cycles.find(f=>f.item_ids.includes(i)&&!s.cycles.some(m=>Lo(f.item_ids,m.item_ids)));if(u)throw new v(`Hierarchy mutation would create a cycle: ${u.item_ids.join(" -> ")}.`,b.CONFLICT,{code:"hierarchy_cycle_created",source_id:i,verification_errors:u.item_ids})}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="fdd874ad-e51d-5df2-9486-a0465ad65979")}catch{}})();var lm="global";function Sv(e){let t=e?.trim();if(t)return ie(t)?lm:t}function Tv(e,t,n){return um(e,t,n)}function um(e,t,n){let r=e.trim();return ie(n)||pe(r)?r:qe(r,t)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="06ecc7a4-c593-5d99-89f5-714a4590d0a5")}catch{}})();function ht(e){if(typeof e!="string")return;let t=e.trim();if(!(!t||["none","null","n/a","na"].includes(t.toLowerCase())))return t}function qt(e){let t=ht(e);return t?.toLowerCase()==="no-active-blocker"?void 0:t}function Gt(e,t,n=!0){let r=ht(e);return n&&(ie(t)||r!==void 0&&pe(r))}function Po(e,t){return Gt(e,t)?`external\0${e}`:`local\0${e.toLowerCase()}`}function ja(e,t,n,r){return Gt(e,t)?r.get(e):n.get(e.toLowerCase())}function pt(e,t){let n=e.toLowerCase(),r=t.toLowerCase();return n!==r?n<r?-1:1:e!==t?e<t?-1:1:0}function fm(e){let t=new Map;for(let n of e.dependencies??[]){if(typeof n!="object"||n===null)continue;let r=n,o=ht(r.id);if(!o)continue;let i=typeof r.kind=="string"?r.kind:"related",s=`${i}\0${Po(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 mm(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 fm(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=pt(r.holder_id,o.holder_id);if(i!==0)return i;let s=pt(r.target_id,o.target_id);return s!==0?s:pt(r.kind,o.kind)})}function _m(e,t,n,r,o){if(typeof n!="object"||n===null)return;let i=ht(n.id);if(!i||Po(i,n.source_kind)!==Po(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 pm(e,t=r=>r==="closed"||r==="canceled",n=ce()){let r=new Map;for(let o of e){if(typeof o?.id!="string"||o.id.trim().length===0)continue;let i=ht(o.blocked_by);if(i)for(let s of o.dependencies??[]){let a=_m(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=pt(o.holder_id,i.holder_id);if(s!==0)return s;let a=pt(o.target_id,i.target_id);return a!==0?a:pt(o.dependency_kind,i.dependency_kind)})}function Mo(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,u,f,m)=>{let p=ht(d);if(!p||r.has(p.toLowerCase())||Gt(p,void 0,m))return;let _={holder_id:c.id.trim(),target_id:p,kind:u,source:f,holder_status:c.status,legacy_terminal:t(c.status),no_active_blocker_sentinel:p.toLowerCase()==="no-active-blocker"};o.set(`${_.holder_id}::${_.target_id}::${_.kind}::${_.source}`,_)};for(let c of n){i(c,c.parent,"parent","parent",!1),i(c,c.blocked_by,"blocked_by","blocked_by",!0);for(let d of c.dependencies??[]){if(typeof d!="object"||d===null)continue;let u=d;ie(u.source_kind)||i(c,u.id,typeof u.kind=="string"?u.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 hm(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=qt(n.blocked_by);r&&Gt(r)&&!t.has(r)&&t.set(r,r);for(let o of n.dependencies??[]){if(typeof o!="object"||o===null||!Gt(o.id,o.source_kind))continue;let i=qt(o.id);i&&!t.has(i)&&t.set(i,i)}}return[...t.values()].sort((n,r)=>n.localeCompare(r))}var Fa=new WeakMap;function Nv(e){return e.hierarchyIntegrity??Fa.get(e)}function gm(e,t=ce()){let n={};for(let r of e)for(let o of r.dependencies??[]){if(typeof o!="object"||o===null)continue;let i=o.kind;if(typeof i!="string")continue;let s=i.trim().toLowerCase().replaceAll("-","_"),a=t.resolve(i);a&&s!==a.kind&&(n[s]=(n[s]??0)+1)}return Object.fromEntries(Object.entries(n).sort(([r],[o])=>r.localeCompare(o)))}function or(e,t,n){let r=n??ce(),o=e.filter(_=>typeof _?.id=="string"&&_.id.trim().length>0),i=new Map(o.map(_=>[_.id.trim().toLowerCase(),_.id.trim()])),s=Mo(o,t),a=hm(s);for(let _ of a)i.set(_.toLowerCase(),_);let c=ym(o),d=new Set(i.keys()),u=new Map;for(let _ of c){let y=_;for(;d.has(y.toLowerCase());)y=`external:${y}`;u.set(_,y),d.add(y.toLowerCase())}let f=o.map(_=>{let y=qt(_.parent),g=qt(_.blocked_by),S=(_.dependencies??[]).flatMap(R=>{if(typeof R!="object"||R===null)return[];let D=R,$=qt(D.id);return $?[{id:ja($,D.source_kind,i,u),kind:typeof D.kind=="string"?D.kind:"related"}]:[]});return{id:_.id.trim(),...y?{parent:i.get(y.toLowerCase())}:{},...g?{blocked_by:ja(g,void 0,i,u)}:{},dependencies:S}}),m=rr(o,t,r),p={graph:Ti.fromItems([...f,...a.map(_=>({id:_})),...c.map(_=>({id:u.get(_)}))],r),details:[...o.map(_=>({id:_.id.trim(),title:_.title,status:_.status,...typeof _.type=="string"&&_.type.trim().length>0?{type:_.type.trim()}:{}})),...a.map(_=>({id:_,title:`[missing] ${_}`,status:"missing"})),...c.map(_=>({id:u.get(_),title:`[external] ${_}`,status:"external"}))],missingIdSet:new Set(a.map(_=>_.toLowerCase())),dangling:s,duplicateRows:mm(o,t),orderingContradictions:pm(o,t,r),legacyAliasCounts:gm(o,r),hierarchyIntegrity:m};return Fa.set(p,m),p}import{createHash as vm}from"node:crypto";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="10f534cf-ee82-54a2-9807-390eca5fb0b8")}catch{}})();var bm=64,wm=8;function Em(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 Ha(e,t=r=>r==="closed"||r==="canceled",n=le()){let r=e.filter(i=>typeof i?.id=="string"&&i.id.trim().length>0).map(i=>Em(i,t)).sort(),o=n.list().map(i=>L(i)).sort();return vm("sha256").update(r.join("")).update("").update(o.join("")).digest("hex")}function $a(e,t,n){let r=t??n;if(!Number.isInteger(r)||r<1)throw new TypeError(`Invalid ${e} bound: ${String(t)}`);return r}var jo=class{#e=new Map;#t;#n;constructor(t={}){this.#t=$a("maxResultsPerWorkspace",t.maxResultsPerWorkspace,bm),this.#n=$a("maxWorkspaces",t.maxWorkspaces,wm)}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 u=s.results.get(c);if(u!==void 0||s.results.has(c))return s.results.delete(c),s.results.set(c,u),{value:structuredClone(u),reused:!0};let f=d();return s.results.size>=a&&s.results.delete(s.results.keys().next().value),s.results.set(c,structuredClone(f)),{value:f,reused:!1}}}}clear(){this.#e.clear()}},za=new jo;function Ua(){return za}function Fv(){za.clear()}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="47b3091f-a1a8-503c-83e9-46b85adf4207")}catch{}})();var km=["prerequisite","dependent","ancestor","descendant","provenance","related"],Im=new TextEncoder;function Fo(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 ir(e){return Math.max(1,Math.ceil(Im.encode(JSON.stringify(e)).byteLength/4))}function $o(e,t,n){let r=n.resolve(e.kind);if(r?.ordering){let i=(r.precedence??"source_before_target")==="source_before_target"?e.source:e.target;return t===i?"prerequisite":"dependent"}if(r?.hierarchy){let i=r.hierarchyDirection==="source_parent"?e.source:e.target;return t===i?"ancestor":"descendant"}return e.kind==="discovered_from"||e.kind==="incident_from"?"provenance":"related"}function Sm(e,t,n,r){let o=e.filter(i=>i.source===t&&i.target===n||i.target===t&&i.source===n).map(i=>$o(i,n,r));return[...new Set(o)].sort()}function Tm(e){return km.find(t=>e.includes(t))}function Cm(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,u=!1;for(let f=0;f<a.length;f+=1){r.signal?.throwIfAborted();let m=a[f];if(m.distance>=i&&u)continue;let p=e.neighborEdges(m.id,{direction:o,kinds:r.kinds,signal:r.signal});if(d+=p.meta.inspectedEdges,m.distance>=i){p.value.some(_=>!s.has(_.id))&&(u=!0);continue}for(let{id:_,edge:y}of p.value){if(s.has(_))continue;s.add(_);let g={id:_,distance:m.distance+1,via:m.id,role:$o(y,_,n)};c.push(g),a.push(g)}}return c.sort((f,m)=>f.distance-m.distance||f.id.localeCompare(m.id)),{rows:c,visitedNodes:a.length,inspectedEdges:d,depthTruncated:u}}function Om(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[$o(a,s,n)]+=1;return{directEdges:o,directTotal:i.length,rootEdges:i.map(({edge:s})=>s)}}function xm(e){let t=[],n=e.initialTokens;for(let r of e.candidates){if(t.length>=e.nodeLimit)break;let o=r.distance===1?Sm(e.rootEdges,e.rootId,r.id,e.registry):[],i={...e.details.get(r.id)??{id:r.id},distance:r.distance,role:o.length>0?Tm(o):r.role,via:r.via,reasons:o.length>0?o:[`${r.role} via ${r.via} (depth ${r.distance})`]},s=ir(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 Rm(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=ir(i);if(o+s>e.tokenBudget)break;r.push(i),o+=s}return{edges:r,usedTokens:o,candidateCount:n.length}}function Ba(e,t,n,r={}){if(!e.nodes().includes(t))throw new TypeError(`Relationship node not found: ${t}`);let o=Fo(r.nodeLimit,20,"nodeLimit"),i=Fo(r.edgeLimit,40,"edgeLimit"),s=Fo(r.tokenBudget,1200,"tokenBudget"),a=r.registry??le(),c=new Map(n.map(Ye=>[Ye.id,Ye])),d=c.get(t)??{id:t},{evidence:u=[],...f}=d,m=[...u],p=Cm(e,t,a,r),{rootEdges:_,...y}=Om(e,t,a,r),g=ji("relationship-context",{rootId:t,direction:r.direction??"both",kinds:[...r.kinds??[]].sort(),maxDepth:r.maxDepth??3}),S=$i(p.rows,r.cursor,g,({id:Ye})=>Ye),R=p.rows.slice(S),D=ir(f)+ir(m);if(D>s)throw new TypeError("Relationship context tokenBudget cannot fit root and evidence");let $=xm({candidates:R,details:c,rootEdges:_,rootId:t,registry:a,nodeLimit:o,tokenBudget:s,initialTokens:D}),{nodes:x}=$,G=new Set([t,...x.map(({id:Ye})=>Ye)]),W=Rm({graph:e,included:G,options:r,registry:a,edgeLimit:i,tokenBudget:s,initialTokens:$.usedTokens}),{edges:Q,usedTokens:K}=W,ee=S+x.length,ye=ee<p.rows.length,Xe=x.at(-1),Et=W.candidateCount-Q.length,li=p.depthTruncated||ye||Et>0,Mc={rootId:t,...f.status===void 0?{}:{rootStatus:f.status},...y,discoveredNodes:p.rows.length,returnedNodes:x.length,returnedEdges:Q.length,omittedNodes:p.rows.length-ee,omittedEdges:Et,evidenceCount:m.length,hasMore:ye};return{root:f,summary:Mc,nodes:x,edges:Q,evidence:m,meta:{exact:!0,truncated:li,completeness:li?"truncated":"complete",nodeLimit:o,edgeLimit:i,tokenBudget:s,usedTokens:K,visitedNodes:p.visitedNodes,inspectedEdges:p.inspectedEdges,omittedNodes:p.rows.length-ee,omittedEdges:Et,...ye&&Xe?{nextCursor:Fi(g,Xe.id,ee-1)}:{}}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="59b12366-2f29-5acb-8196-91e9ab183666")}catch{}})();function zo(e,t){return(t===void 0?void 0:Ei(e,t))?.execution_role??wi[e.trim().toLowerCase()]??"agent"}var Uo="blocked_by",Wa="blocks",Am=Object.freeze([Uo,Wa]),Ho="no-active-blocker";function F(e){return e.trim().toLowerCase()}function sr(e,t){return t?`external:${e}`:`local:${F(e)}`}function Kt(e){let t=new Map,n=typeof e.blocked_by=="string"?e.blocked_by.trim():"";if(n.length>0&&F(n)!==Ho){let r=pe(n);t.set(sr(n,r),r?n:F(n))}for(let r of e.dependencies??[]){let o=typeof r.id=="string"?r.id.trim():"";if(r.kind===Uo&&o.length>0&&F(o)!==Ho){let i=pe(o)||ie(r.source_kind);t.set(sr(o,i),i?o:F(o))}}return[...t.values()].sort((r,o)=>r.localeCompare(o))}function ar(e){let t=new Map;for(let n of e){let r=F(n.id);r.length!==0&&t.set(r,new Set(Kt(n)))}for(let n of e){let r=F(n.id);if(r.length!==0)for(let o of n.dependencies??[]){let i=o.kind===Wa&&typeof o.id=="string"?F(o.id):"";if(i.length===0||i===Ho)continue;let s=t.get(i)??new Set;s.add(r),t.set(i,s)}}return new Map([...t].map(([n,r])=>[n,[...r].sort((o,i)=>o.localeCompare(i))]))}function Va(e,t){let n=F(e.id);return n.length>0?ar(t).get(n)??Kt(e):Kt(e)}function Bo(e,t,n,r){let o=e,i=typeof o.id=="string"?r?.get(F(o.id))??Va(o,[...t.values()]):Kt(e),s=new Set((e.dependencies??[]).filter(a=>a.kind===Uo&&ie(a.source_kind)&&typeof a.id=="string"&&a.id.trim().length>0).map(a=>sr(a.id.trim(),!0)));return i.map(a=>{if(pe(a)||s.has(sr(a,!0)))return{id:a,title:null,status:null,resolved:!1,external:!0,...typeof e.updated_at=="string"?{blocked_since:e.updated_at}:{},resolver:null};let c=t.get(F(a));return c?{id:a,title:c.title,status:c.status,resolved:he(c.status,n)}:{id:a,title:null,status:null,resolved:!1}})}function Dm(e,t,n){return Bo(e,t,n)}function Nm(e,t){let n=new Map(e.map(s=>[F(s.id),s])),r=ar(e),o=new Set([...qa(t),...t.blocked_statuses]),i=new Set;for(let s of e){let a=nt(s.status,t);if(!o.has(a))continue;(t.blocked_statuses.has(a)||Bo(s,n,t,r).some(d=>!d.resolved))&&i.add(F(s.id))}return i}function Lm(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(nt(s.item.status,t))));let i={ready:[],decisions:[],gates:[]};for(let s of o){let a=zo(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 qa(e){return e.active_statuses.size>0?e.active_statuses:new Set([e.open_status])}function Pm(e,t,n){let r=[F(e)],o=new Set;for(;r.length>0;){let i=r.pop();if(!o.has(i)){o.add(i);for(let s of t.get(i)??[]){if(!he(s.status,n))return!0;r.push(F(s.id))}}}return!1}function Mm(e){let t=new Map,n=new Map,r=new Map,o=ar(e);for(let i of e){t.set(F(i.id),i);let s=typeof i.parent=="string"?i.parent.trim():"";if(s.length>0){let a=F(s),c=n.get(a)??[];c.push(i),n.set(a,c)}for(let a of o.get(F(i.id))){let c=F(a),d=r.get(c)??[];d.push(i.id),r.set(c,d)}}return{itemsById:t,childrenByParent:n,blockedByReverse:r,blockerIdsByItem:o}}function jm(e,t,n,r){let{itemsById:o,childrenByParent:i,blockedByReverse:s,blockerIdsByItem:a}=Mm(t),c=new Set([...qa(n),...n.blocked_statuses]),d=new Set(t.filter(g=>!he(g.status,n)).map(g=>F(g.id))),u=[],f=[],m=[],p=[],_=[],y=0;for(let g of e){if(!c.has(nt(g.status,n)))continue;y+=1;let S=Bo(g,o,n,a).filter(x=>!x.resolved),R=(s.get(F(g.id))??[]).filter(x=>d.has(F(x))).sort((x,G)=>x.localeCompare(G)),D={item:g,open_blockers:S,unblocks:R};if(Pm(g.id,i,n)){m.push(D);continue}let $=n.blocked_statuses.has(nt(g.status,n));if(S.length===0&&!$){let x=zo(g.type,r);x==="human"?p.push(D):x==="gate"?_.push(D):u.push(D)}else f.push(D)}return{ready:u,blocked:f,containers:m,decisions:p,gates:_,active_count:y,container_count:m.length}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ae1c56b3-148d-502d-9450-e807fdfab4da")}catch{}})();(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="245ec731-790e-55ae-9bb6-3eeaaefe27ee")}catch{}})();var U={ok:!1},h=e=>typeof e=="string"?{ok:!0,value:e}:U,O=e=>typeof e=="boolean"?{ok:!0,value:e}:U;function N(e={}){return t=>typeof t!="number"||!Number.isFinite(t)||e.int&&(!Number.isInteger(t)||!Number.isSafeInteger(t))||e.positive&&t<=0||typeof e.min=="number"&&t<e.min||typeof e.max=="number"&&t>e.max?U:{ok:!0,value:t}}function A(...e){return t=>typeof t=="string"&&e.includes(t)?{ok:!0,value:t}:U}function w(e,t){return n=>{if(!Array.isArray(n)||t!==void 0&&n.length>t)return U;let r=[];for(let o of n){let i=e(o);if(!i.ok)return U;r.push(i.value)}return{ok:!0,value:r}}}function Vo(e,t){return n=>typeof n=="string"&&n.length>0&&n.length<=e&&n===n.trim()&&(t===void 0||t.test(n))?{ok:!0,value:n}:U}function l(e){return t=>t===void 0?{ok:!0,value:void 0}:e(t)}function cr(e){return t=>{if(typeof t!="object"||t===null||Array.isArray(t))return U;let n={};for(let[r,o]of Object.entries(t)){let i=e(o);if(!i.ok)return U;n[r]=i.value}return{ok:!0,value:n}}}function C(e){return t=>{if(typeof t!="object"||t===null||Array.isArray(t))return U;let n=t,r={};for(let[o,i]of Object.entries(e)){let s=i(n[o]);if(!s.ok)return U;s.value!==void 0&&(r[o]=s.value)}return{ok:!0,value:r}}}var Fm=C({key:h,values:w(h),required:l(O),aliases:l(w(h)),description:l(h)}),$m=C({command:A("create","update"),option:h,required:l(O),visible:l(O),enabled:l(O)}),Hm=C({name:h,description:l(h),default_status:l(h),execution_role:l(A("agent","human","gate")),folder:l(h),aliases:l(w(h)),required_create_fields:l(w(h)),required_create_repeatables:l(w(h)),options:l(w(Fm)),command_option_policies:l(w($m))}),zm=C({id:h,aliases:l(w(h)),roles:l(w(A(...ui))),description:l(h),order:l(N())}),Um=C({key:h,metadata_key:l(h),front_matter_key:l(h),cli_flag:l(h),cli_aliases:l(w(h)),description:l(h),type:l(A(...fi)),commands:l(w(A(...mi))),repeatable:l(O),required:l(O),required_on_create:l(O),required_types:l(w(h)),allow_unset:l(O)}),Bm=e=>{if(!Array.isArray(e)||e.length!==2)return U;let[t,n]=e;return typeof t!="string"||typeof n!="string"?U:{ok:!0,value:[t,n]}},Wm=C({type:h,allowed_transitions:w(Bm)}),Vm=l(C({version:l(N({int:!0})),files:l(C({types:l(h),statuses:l(h),fields:l(h),workflows:l(h)})),statuses:l(w(zm)),fields:l(w(Um)),workflow:l(C({draft_status:l(h),open_status:l(h),in_progress_status:l(h),blocked_status:l(h),close_status:l(h),canceled_status:l(h)})),type_workflows:l(w(Wm)),unknown_field_policy:l(A(..._i))})),qm=l(C({preset:l(A(...pi)),ownership_enforcement:l(A("none","warn","strict")),create_mode_default:l(A("progressive","strict")),close_validation_default:l(A("off","warn","strict")),require_close_reason:l(O),parent_reference:l(A("warn","strict_error")),metadata_profile:l(A("core","strict","custom")),force_required_for_stale_lock:l(O),create_default_type:l(h),workflow_enforcement:l(A("off","warn","strict")),duplicate_detection_mode:l(A("off","advisory","strict")),duplicate_detection_threshold:l(N({min:0,max:1})),duplicate_detection_limit:l(N({int:!0,min:0,max:20}))})),Gm=C({name:h,disabled:l(O),require_trusted:l(O),require_provenance:l(O),sandbox_profile:l(A("none","restricted","strict")),allowed_capabilities:l(w(h)),blocked_capabilities:l(w(h)),allowed_surfaces:l(w(h)),blocked_surfaces:l(w(h)),allowed_commands:l(w(h)),blocked_commands:l(w(h)),allowed_actions:l(w(h)),blocked_actions:l(w(h)),allowed_services:l(w(h)),blocked_services:l(w(h))}),Wo=A("block","warn"),Km=e=>typeof e=="string"?Wo(e):C({global:l(Wo),project:l(Wo)})(e),Xm=l(C({mode:l(A("off","warn","enforce")),trust_mode:l(A("off","warn","enforce")),pm_max_version_exceeded_mode:l(Km),require_provenance:l(O),trusted_extensions:l(w(h)),default_sandbox_profile:l(A("none","restricted","strict")),allowed_extensions:l(w(h)),blocked_extensions:l(w(h)),allowed_capabilities:l(w(h)),blocked_capabilities:l(w(h)),allowed_surfaces:l(w(h)),blocked_surfaces:l(w(h)),allowed_commands:l(w(h)),blocked_commands:l(w(h)),allowed_actions:l(w(h)),blocked_actions:l(w(h)),allowed_services:l(w(h)),blocked_services:l(w(h)),extension_overrides:l(w(Gm))})),Ke=Vo(128),Ym=C({harness:Vo(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u),environment_keys:l(w(Ke,64)),model_environment_keys:l(w(Ke,64)),session_environment_keys:l(w(Ke,64)),provenance_environment_keys:l(cr(w(Ke,64))),provenance_resolvers:l(cr(A("ai_agent_version","claude_session_file"))),provenance_unavailable_dimensions:l(w(Ke,64)),argv_markers:l(w(Ke,64)),client_names:l(w(Ke,64))}),Jm=C({version:N({int:!0}),id_prefix:h,ids:l(C({token_length:l(N({int:!0,min:4,max:12}))})),author_default:h,agent_identity:l(C({probes_enabled:l(O),identity_vocabulary:l(C({version:N({int:!0,positive:!0}),aliases:cr(Vo(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u))})),harness_signals:w(Ym)})),mutation_guard:l(C({require_attributed_author:l(O),secret_guard:l(A("off","advise","block")),stale_in_progress_hours:l(N({int:!0,positive:!0}))})),item_format:l(A("toon","json_markdown")),locks:C({ttl_seconds:N({int:!0}),wait_ms:l(N({int:!0,min:0}))}),checkpoints:l(C({retention_days:l(N({int:!0,positive:!0}))})),output:C({default_format:A("toon","json")}),ux:l(C({deprecation_hints:l(O)})),history:l(C({missing_stream:A("auto_create","strict_error"),compact_policy:l(C({enabled:l(O),max_entries:l(N({int:!0,positive:!0})),trigger:l(A("health_warn","auto"))}))})),validation:l(C({sprint_release_format:A("warn","strict_error"),parent_reference:l(A("warn","strict_error")),metadata_profile:l(A("core","strict","custom")),metadata_required_fields:l(w(h)),lifecycle_stale_blocker_reason_patterns:l(w(h)),lifecycle_closure_like_blocked_reason_patterns:l(w(h)),lifecycle_closure_like_resolution_patterns:l(w(h)),lifecycle_closure_like_actual_result_patterns:l(w(h)),estimate_defaults_by_type:l(cr(N({int:!0,positive:!0})))})),governance:qm,workflow:l(C({definition_of_done:w(h)})),testing:l(C({record_results_to_items:O,allow_untrusted_linked_tests:l(O)})),telemetry:l(C({enabled:O,first_run_prompt_completed:l(O),capture_level:l(A("minimal","redacted","max")),endpoint:l(h),installation_id:l(h),retention_days:l(N({int:!0,positive:!0}))})),agent_guidance:l(C({prompt_completed:l(O),declined:l(O),declined_at:l(h),template_version:l(N({int:!0,positive:!0})),last_checked_files:l(w(h))})),item_types:l(C({definitions:w(Hm)})),schema:Vm,context:l(C({default_depth:l(A("brief","standard","deep")),activity_limit:l(N({int:!0,positive:!0})),stale_threshold_days:l(N({int:!0,positive:!0})),sections:l(C({hierarchy:l(O),activity:l(O),progress:l(O),recently_created:l(O),unparented:l(O),blockers:l(O),files:l(O),workload:l(O),staleness:l(O),tests:l(O)}))})),extensions:C({enabled:w(h),disabled:w(h),policy:Xm}),search:C({score_threshold:N(),hybrid_semantic_weight:l(N()),max_results:N({int:!0}),embedding_model:h,embedding_corpus_max_characters:l(N()),embedding_batch_size:N({int:!0}),embedding_timeout_ms:l(N({int:!0})),scanner_max_batch_retries:N({int:!0}),provider:l(h),default_mode:l(A("auto","keyword","semantic","hybrid")),corpus_fields:l(w(h)),mutation_refresh_policy:l(A("cache_only","semantic_configured","semantic_auto")),query_expansion:l(C({enabled:l(O),provider:l(h)})),rerank:l(C({enabled:l(O),model:l(h),top_k:l(N({int:!0,positive:!0}))})),bm25:l(C({k1:l(N()),b:l(N())}))}),providers:C({openai:C({base_url:h,api_key:h,model:h}),ollama:C({base_url:h,model:h})}),vector_store:C({adapter:l(h),collection_name:l(h),qdrant:C({url:h,api_key:h}),lancedb:C({path:h})})});function Ga(e){let t=Jm(e);return t.ok?{success:!0,data:t.value}:{success:!1}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="e2270ad2-349e-5e8c-b23c-3cf0645907dc")}catch{}})();function dr(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function qo(e,t,n,r=[]){if(oe(e,t)&&(r.length>0||dr(n)))return n;if(oe(e,n)||oe(t,n))return t;if((e===void 0||dr(e))&&dr(t)&&dr(n)){let o=e??{},i=new Set([...Object.keys(o),...Object.keys(t),...Object.keys(n)]);return Object.fromEntries([...i].flatMap(s=>{let a=qo(Object.hasOwn(o,s)?o[s]:void 0,Object.hasOwn(t,s)?t[s]:void 0,Object.hasOwn(n,s)?n[s]:void 0,[...r,s]);return a===void 0?[]:[[s,a]]}))}throw new v(`Settings changed concurrently at ${r.join(".")||"<root>"}; read the latest settings and reapply the intended change.`,b.CONFLICT,{reason:"stale_settings_snapshot",required:"Read a fresh settings snapshot and reapply the intended change.",why:"Another writer changed the same setting after this snapshot was read.",examples:["pm config project export --json"],nextSteps:["Read the current settings, then retry the original config operation."]})}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="833a4f8a-7e5d-5480-a526-4e1ebaadd0a8")}catch{}})();var Qm={Epic:2880,Feature:480,Story:480,Milestone:2880,Task:120,Issue:60,Bug:60,Chore:30,Decision:15,Plan:120},Ka=120;function Go(e){return typeof e=="number"&&Number.isFinite(e)&&e>0}function Ya(e){let t=new Map;for(let[n,r]of Object.entries(e))t.set(n.toLowerCase(),r);return t}var Zm=Ya(Qm),Xa=new WeakMap;function e_(e){let t=Xa.get(e);if(t)return t;let n=Ya(e);return Xa.set(e,n),n}function tb(e,t){let n=(e??"").trim().toLowerCase();if(n.length===0)return Ka;if(t){let o=e_(t).get(n);if(Go(o))return Math.floor(o)}let r=Zm.get(n);return Go(r)?Math.floor(r):Ka}function Ko(e){let t={};if(e===null||typeof e!="object"||Array.isArray(e))return t;for(let[n,r]of Object.entries(e)){let o=n.trim();o.length===0||!Go(r)||(t[o]=Math.floor(r))}return t}import{stat as t_}from"node:fs/promises";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="7c23ef10-ea7a-5680-8850-822e7d0c07a6")}catch{}})();var lr=new Map;function Ja(e){return[...new Set(e.map(t=>t.trim()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}async function n_(e){try{let t=await t_(e);return{path:e,mtime_ms:t.mtimeMs,size:t.size}}catch{return{path:e,mtime_ms:null,size:null}}}async function Re(e){let t=Ja(e),n=await Promise.all(t.map(r=>n_(r)));return n.sort((r,o)=>r.path.localeCompare(o.path)),n}function Xt(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1){let r=e[n],o=t[n];if(r.path!==o.path||r.mtime_ms!==o.mtime_ms||r.size!==o.size)return!1}return!0}function Qa(e){return lr.get(e)}function ur(e,t){let n=Ja(t.tracked_paths),r=[...t.signatures].map(o=>({path:o.path,mtime_ms:o.mtime_ms,size:o.size})).sort((o,i)=>o.path.localeCompare(i.path));lr.set(e,{tracked_paths:n,signatures:r,value:t.value})}function Ae(e){if(e){lr.delete(e);return}lr.clear()}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ab36ba69-e783-50dc-9db3-761cb228db10")}catch{}})();var r_="settings:write",rc=Symbol("pm.settings.persist_source"),o_=128,i_=new Set(["off","advisory","strict"]);function Za(e){return structuredClone(yi[e])}function s_(e){return e==="minimal"||e==="default"||e==="strict"||e==="custom"?e:k.governance.preset}function ec(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 a_(e){return e.preset==="custom"?ec({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):ec({preset:e.preset},e)}function c_(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),i_.has(String(e.duplicate_detection_mode))&&(n.duplicate_detection_mode=e.duplicate_detection_mode);let r=e.duplicate_detection_threshold;[typeof r=="number",Number.isFinite(r),Number(r)>=0,Number(r)<=1].every(Boolean)&&(n.duplicate_detection_threshold=r);let o=e.duplicate_detection_limit;return[typeof o=="number",Number.isSafeInteger(o),Number(o)>=0,Number(o)<=20].every(Boolean)&&(n.duplicate_detection_limit=o),n}function mr(e){let t=e.governance??{},n=s_(t.preset),r=c_(t);if(n==="custom"){let s=Za("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=Za(n),i=r.require_close_reason??o.require_close_reason;return{preset:n,...o,...r,require_close_reason:i}}function oc(){return structuredClone(k)}function ic(e){return e==="cache_only"||e==="semantic_configured"||e==="semantic_auto"?e:k.search.mutation_refresh_policy}function sc(e){return e==="auto"||e==="keyword"||e==="semantic"||e==="hybrid"?e:"auto"}function ac(e){return typeof e=="boolean"?e:k.search.query_expansion.enabled}function cc(e){return typeof e!="string"?k.search.query_expansion.provider:e.trim()}function dc(e){return typeof e=="boolean"?e:k.search.rerank.enabled}function lc(e){return typeof e!="string"?k.search.rerank.model:e.trim()}function uc(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 n=e.trim().replaceAll(/[^a-zA-Z0-9_-]/g,"_").slice(0,o_);return n.length>0?n:k.vector_store.collection_name}function Xo(e){return{present:Array.isArray(e),values:Array.isArray(e)?structuredClone(e):[]}}function d_(e,t){let n=e.schema,r=Xo(n?.statuses),o=Xo(n?.fields),i=Xo(n?.type_workflows);return{persisted_settings:structuredClone(e),source_settings:structuredClone(e),has_source_item_type_definitions:Array.isArray(e.item_types?.definitions),source_item_type_definitions:yt(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:yt(t.item_types?.definitions),runtime_schema_statuses:structuredClone(t.schema.statuses),runtime_schema_fields:structuredClone(t.schema.fields),runtime_schema_type_workflows:structuredClone(t.schema.type_workflows??[])}}function ei(e,t){Object.defineProperty(e,rc,{value:t,writable:!0,configurable:!0,enumerable:!1})}function mc(e){let t=e[rc];if(!(!t||typeof t!="object"))return t}function fr(e){let t=structuredClone(e.settings),n=mc(e.settings);return n&&ei(t,n),{settings:t,metadata:{has_explicit_item_format:e.metadata.has_explicit_item_format},warnings:[...e.warnings]}}function l_(e,t,n){let r=St(t);return[n,Tt(e,r.files.types,It.types),Tt(e,r.files.statuses,It.statuses),Tt(e,r.files.fields,It.fields),Tt(e,r.files.workflows,It.workflows)]}async function u_(e,t,n){let r=await Re(t);ur(e,{tracked_paths:t,signatures:r,value:fr(n)})}async function f_(e,t,n){try{await u_(e,t,n)}catch{Ae(e)}}function tc(e,t){return e.find(n=>n.path===t)}function m_(e,t,n){for(let r of n){let o=tc(e,r),i=tc(t,r);if(!o||!i||!Xt([o],[i]))return!1}return!0}async function Yo(e,t,n,r,o){try{let i=await Re(t);if(!m_(r,i,o)){Ae(e);return}ur(e,{tracked_paths:t,signatures:i,value:fr(n)})}catch{Ae(e)}}function __(e,t){let n=St(e.schema),r=yt(e.item_types?.definitions);if(!t)return{item_type_definitions:r,schema_statuses:n.statuses,schema_fields:n.fields,schema_type_workflows:n.type_workflows};let o=n.type_workflows??[],i=oe(r,t.runtime_item_type_definitions),s=oe(n.statuses,t.runtime_schema_statuses),a=oe(n.fields,t.runtime_schema_fields),c=oe(o,t.runtime_schema_type_workflows);return{item_type_definitions:i?t.has_source_item_type_definitions?yt(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 Yt(e){return{settings:oc(),metadata:{has_explicit_item_format:!1},warnings:e?[e]:[]}}function p_(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=e.item_format;return t==="toon"||t==="json_markdown"}function Qo(e){return[...new Set((e??[]).map(t=>t.trim()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function _c(e){let t=k.agent_guidance,n=e?.template_version;return{prompt_completed:e?.prompt_completed===!0,declined:e?.declined===!0,declined_at:typeof e?.declined_at=="string"?e.declined_at:t.declined_at,template_version:typeof n=="number"&&Number.isInteger(n)&&n>0?n:t.template_version,last_checked_files:Qo(e?.last_checked_files??t.last_checked_files)}}function re(e){return[...new Set((e??[]).map(t=>t.trim().toLowerCase()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function h_(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 pc(e){return e==="none"||e==="restricted"||e==="strict"?e:k.extensions.policy.default_sandbox_profile}function g_(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=pc(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),u=re(e.blocked_actions),f=re(e.allowed_services),m=re(e.blocked_services);return r.length>0&&(n.allowed_capabilities=r),o.length>0&&(n.blocked_capabilities=o),i.length>0&&(n.allowed_surfaces=i),s.length>0&&(n.blocked_surfaces=s),a.length>0&&(n.allowed_commands=a),c.length>0&&(n.blocked_commands=c),d.length>0&&(n.allowed_actions=d),u.length>0&&(n.blocked_actions=u),f.length>0&&(n.allowed_services=f),m.length>0&&(n.blocked_services=m),n}function v_(e){let t=new Map;for(let n of e??[]){let r=g_(n);r&&t.set(r.name,r)}return[...t.values()].sort((n,r)=>n.name.localeCompare(r.name))}function Jo(e){return e==="block"||e==="warn"?e:void 0}function b_(e){if(typeof e=="string")return Jo(e);if(typeof e=="object"&&e!==null&&!Array.isArray(e)){let t=Jo(e.global),n=Jo(e.project);return t===void 0&&n===void 0?void 0:{...t!==void 0?{global:t}:{},...n!==void 0?{project:n}:{}}}}function Y(e,t){return re(e?.[t]??k.extensions.policy[t])}function hc(e){let t=b_(e?.pm_max_version_exceeded_mode);return{mode:h_(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:Y(e,"trusted_extensions"),default_sandbox_profile:pc(e?.default_sandbox_profile),allowed_extensions:Y(e,"allowed_extensions"),blocked_extensions:Y(e,"blocked_extensions"),allowed_capabilities:Y(e,"allowed_capabilities"),blocked_capabilities:Y(e,"blocked_capabilities"),allowed_surfaces:Y(e,"allowed_surfaces"),blocked_surfaces:Y(e,"blocked_surfaces"),allowed_commands:Y(e,"allowed_commands"),blocked_commands:Y(e,"blocked_commands"),allowed_actions:Y(e,"allowed_actions"),blocked_actions:Y(e,"blocked_actions"),allowed_services:Y(e,"allowed_services"),blocked_services:Y(e,"blocked_services"),extension_overrides:v_(e?.extension_overrides??k.extensions.policy.extension_overrides)}}function yc(e){return[...new Set((e??[]).map(n=>n.trim().toLowerCase().replaceAll("-","_")))].filter(n=>n.length>0).sort((n,r)=>n.localeCompare(r)).filter(n=>["author","acceptance_criteria","estimated_minutes","close_reason","reviewer","risk","confidence","sprint","release"].includes(n))}function De(e){return[...new Set((e??[]).map(t=>t.trim().toLowerCase()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function H(e,t){return e===void 0?t:e}function J(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:{}}function Zo(e){return Array.isArray(e)?e:[]}function w_(e,t,n){return{...t.validation,...e.validation,parent_reference:n.parent_reference,metadata_profile:n.metadata_profile,metadata_required_fields:yc(e.validation?.metadata_required_fields),lifecycle_stale_blocker_reason_patterns:De(e.validation?.lifecycle_stale_blocker_reason_patterns??t.validation.lifecycle_stale_blocker_reason_patterns),lifecycle_closure_like_blocked_reason_patterns:De(e.validation?.lifecycle_closure_like_blocked_reason_patterns??t.validation.lifecycle_closure_like_blocked_reason_patterns),lifecycle_closure_like_resolution_patterns:De(e.validation?.lifecycle_closure_like_resolution_patterns??t.validation.lifecycle_closure_like_resolution_patterns),lifecycle_closure_like_actual_result_patterns:De(e.validation?.lifecycle_closure_like_actual_result_patterns??t.validation.lifecycle_closure_like_actual_result_patterns),estimate_defaults_by_type:Ko(e.validation?.estimate_defaults_by_type)}}function E_(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 k_(e,t){return{...t.search,...e.search,default_mode:sc(e.search?.default_mode),mutation_refresh_policy:ic(e.search?.mutation_refresh_policy),query_expansion:{...t.search.query_expansion,...e.search?.query_expansion,enabled:ac(e.search?.query_expansion?.enabled),provider:cc(e.search?.query_expansion?.provider)},rerank:{...t.search.rerank,...e.search?.rerank,enabled:dc(e.search?.rerank?.enabled),model:lc(e.search?.rerank?.model),top_k:uc(e.search?.rerank?.top_k)}}}function I_(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 S_(e,t){return e.item_format==="json_markdown"?"toon":e.item_format??t.item_format}function T_(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 C_(e,t){return{openai:{...t.providers.openai,...e.providers.openai},ollama:{...t.providers.ollama,...e.providers.ollama}}}function yt(e){let t=(e??[]).map(r=>bi(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 gc(e){let t=oc(),n=mr({governance:e.governance??{preset:"default"}});return{...t,...e,item_format:S_(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:w_(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:E_(e,t),agent_guidance:_c(e.agent_guidance??t.agent_guidance),item_types:{definitions:yt(e.item_types?.definitions)},schema:St(e.schema??t.schema),context:T_(e,t),extensions:{enabled:[...e.extensions.enabled],disabled:[...e.extensions.disabled],policy:hc(e.extensions.policy??t.extensions.policy)},search:k_(e,t),providers:C_(e,t),vector_store:I_(e,t)}}function O_(e){e.agent_identity=T(e.agent_identity,["probes_enabled","identity_vocabulary","harness_signals"]);let t=e.agent_identity;Object.hasOwn(t,"identity_vocabulary")&&(t.identity_vocabulary=T(J(t.identity_vocabulary),["version","aliases"])),e.agent_identity.harness_signals=Zo(e.agent_identity.harness_signals).map(n=>T(J(n),["harness","environment_keys","model_environment_keys","session_environment_keys","provenance_environment_keys","provenance_resolvers","provenance_unavailable_dimensions","argv_markers","client_names"])),e.locks=T(e.locks,["ttl_seconds","wait_ms"]),e.ids=T(e.ids,["token_length"]),e.mutation_guard=T(e.mutation_guard,["require_attributed_author","secret_guard","stale_in_progress_hours"]),e.checkpoints=T(e.checkpoints,["retention_days"]),e.output=T(e.output,["default_format"]),e.ux=T(e.ux,["deprecation_hints"]),e.history=T(e.history,["missing_stream","compact_policy"]),e.validation=T(e.validation,["sprint_release_format","parent_reference","metadata_profile","metadata_required_fields","lifecycle_stale_blocker_reason_patterns","lifecycle_closure_like_blocked_reason_patterns","lifecycle_closure_like_resolution_patterns","lifecycle_closure_like_actual_result_patterns","estimate_defaults_by_type"]),e.governance=T(e.governance,["preset","ownership_enforcement","create_mode_default","close_validation_default","require_close_reason","parent_reference","metadata_profile","force_required_for_stale_lock","create_default_type","workflow_enforcement","duplicate_detection_mode","duplicate_detection_threshold","duplicate_detection_limit"]),e.workflow=T(e.workflow,["definition_of_done"]),e.testing=T(e.testing,["record_results_to_items","allow_untrusted_linked_tests"]),e.telemetry=T(e.telemetry,["enabled","first_run_prompt_completed","capture_level","endpoint","installation_id","retention_days"]),e.agent_guidance=T(e.agent_guidance,["prompt_completed","declined","declined_at","template_version","last_checked_files"]),e.item_types=T(e.item_types,["definitions"]),e.schema=T(e.schema,["version","files","statuses","fields","workflow","type_workflows","unknown_field_policy"]),e.schema.files=T(J(e.schema.files),["types","statuses","fields","workflows"]),e.schema.workflow=T(J(e.schema.workflow),["draft_status","open_status","in_progress_status","blocked_status","close_status","canceled_status"]),e.context=T(e.context,["default_depth","activity_limit","stale_threshold_days","sections"]),e.context.sections=T(J(e.context.sections),["hierarchy","activity","progress","blockers","files","workload","staleness","tests"]),e.extensions=T(e.extensions,["enabled","disabled","policy"]),e.extensions.policy=T(J(e.extensions.policy),["mode","trust_mode","pm_max_version_exceeded_mode","require_provenance","trusted_extensions","default_sandbox_profile","allowed_extensions","blocked_extensions","allowed_capabilities","blocked_capabilities","allowed_surfaces","blocked_surfaces","allowed_commands","blocked_commands","allowed_actions","blocked_actions","allowed_services","blocked_services","extension_overrides"]),e.extensions.policy.extension_overrides=Zo(e.extensions.policy.extension_overrides).map(n=>T(J(n),["name","disabled","require_trusted","require_provenance","sandbox_profile","allowed_capabilities","blocked_capabilities","allowed_surfaces","blocked_surfaces","allowed_commands","blocked_commands","allowed_actions","blocked_actions","allowed_services","blocked_services"])),e.search=T(e.search,["score_threshold","hybrid_semantic_weight","max_results","embedding_model","embedding_corpus_max_characters","embedding_batch_size","embedding_timeout_ms","scanner_max_batch_retries","provider","default_mode","mutation_refresh_policy","query_expansion","rerank"]),e.search.query_expansion=T(J(e.search.query_expansion),["enabled","provider"]),e.search.rerank=T(J(e.search.rerank),["enabled","model","top_k"]),e.providers=T(e.providers,["openai","ollama"]),e.providers.openai=T(J(e.providers.openai),["base_url","api_key","model"]),e.providers.ollama=T(J(e.providers.ollama),["base_url","model"]),e.vector_store=T(e.vector_store,["adapter","collection_name","qdrant","lancedb"]),e.vector_store.qdrant=T(J(e.vector_store.qdrant),["url","api_key"]),e.vector_store.lancedb=T(J(e.vector_store.lancedb),["path"])}function x_(e){return{...e,locks:H(e.locks,k.locks),ids:H(e.ids,k.ids),agent_identity:H(e.agent_identity,k.agent_identity),mutation_guard:H(e.mutation_guard,k.mutation_guard),checkpoints:H(e.checkpoints,k.checkpoints),output:H(e.output,k.output),ux:H(e.ux,k.ux),history:H(e.history,k.history),validation:H(e.validation,k.validation),workflow:H(e.workflow,k.workflow),testing:H(e.testing,k.testing),telemetry:H(e.telemetry,k.telemetry),agent_guidance:H(e.agent_guidance,k.agent_guidance),item_types:H(e.item_types,k.item_types),schema:H(e.schema,k.schema),context:H(e.context,k.context),extensions:H(e.extensions,k.extensions),search:H(e.search,k.search),providers:H(e.providers,k.providers),vector_store:H(e.vector_store,k.vector_store)}}function R_(e,t){return{...e.validation,parent_reference:t.parent_reference,metadata_profile:t.metadata_profile,metadata_required_fields:yc(e.validation?.metadata_required_fields),lifecycle_stale_blocker_reason_patterns:De(e.validation?.lifecycle_stale_blocker_reason_patterns??k.validation.lifecycle_stale_blocker_reason_patterns),lifecycle_closure_like_blocked_reason_patterns:De(e.validation?.lifecycle_closure_like_blocked_reason_patterns??k.validation.lifecycle_closure_like_blocked_reason_patterns),lifecycle_closure_like_resolution_patterns:De(e.validation?.lifecycle_closure_like_resolution_patterns??k.validation.lifecycle_closure_like_resolution_patterns),lifecycle_closure_like_actual_result_patterns:De(e.validation?.lifecycle_closure_like_actual_result_patterns??k.validation.lifecycle_closure_like_actual_result_patterns),estimate_defaults_by_type:Ko(e.validation?.estimate_defaults_by_type)}}function A_(e){return{...k.search,...e.search,default_mode:sc(e.search?.default_mode),mutation_refresh_policy:ic(e.search?.mutation_refresh_policy),query_expansion:{...k.search.query_expansion,...e.search?.query_expansion,enabled:ac(e.search?.query_expansion?.enabled),provider:cc(e.search?.query_expansion?.provider)},rerank:{...k.search.rerank,...e.search?.rerank,enabled:dc(e.search?.rerank?.enabled),model:lc(e.search?.rerank?.model),top_k:uc(e.search?.rerank?.top_k)}}}function D_(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 N_(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 L_(e,t,n,r){return{...e,item_format:"toon",validation:R_(e,t),governance:t,agent_guidance:_c(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:A_(e),context:D_(e),extensions:{enabled:Qo(e.extensions?.enabled),disabled:Qo(e.extensions?.disabled),policy:hc(e.extensions?.policy)},vector_store:N_(e)}}function vc(e,t,n){let r=new Set([...Object.keys(t),...Object.keys(n)]);for(let o of r){let i=t[o],s=n[o];if(!oe(i,s)){if(s===void 0){delete e[o];continue}if(typeof i=="object"&&i!==null&&!Array.isArray(i)&&typeof s=="object"&&s!==null&&!Array.isArray(s)){let a=e[o],c=typeof a=="object"&&a!==null&&!Array.isArray(a)?a:{};vc(c,i,s),Object.keys(c).length>0?e[o]=c:delete e[o];continue}e[o]=structuredClone(s)}}}var ti=["version","id_prefix","ids","author_default","agent_identity","mutation_guard","item_format","locks","checkpoints","output","ux","history","validation","governance","workflow","testing","telemetry","agent_guidance","item_types","schema","context","extensions","search","providers","vector_store"];function nc(e,t){let n=x_(e),r=mr(n),o=St(n.schema),i=__(n,t),s=L_(n,r,o,i),a=T({...s,governance:a_(r)},ti);return O_(a),a}function P_(e,t={}){let n=nc(e,t.persist_source);if(t.persist_source){let r=gc(t.persist_source.source_settings);r.item_types={definitions:structuredClone(t.persist_source.runtime_item_type_definitions)},r.schema={...r.schema,statuses:structuredClone(t.persist_source.runtime_schema_statuses),fields:structuredClone(t.persist_source.runtime_schema_fields),type_workflows:structuredClone(t.persist_source.runtime_schema_type_workflows)};let o=nc(r,t.persist_source),i=structuredClone(t.persist_source.source_settings);return vc(i,o,n),`${JSON.stringify(T(i,ti),null,2)}
162
162
  `}return`${JSON.stringify(n,null,2)}
163
- `}async function gc(e){let t=kt(e),n=[t];await ve({path:t,scope:"project"});let r=Ka(e);if(r){let d=await xe(r.tracked_paths);if(Xt(d,r.signatures))return fr(r.value)}let o=await xe([t]),i;try{i=await ge(t)}catch{return Yt("settings_read_fs_error")}if(i===null){let d=Yt();return await Xo(e,[t],d,o,[t]),d}let s=await xe([t]);if(!Xt(o,s))return Re(e),gc(e);let a;try{a=JSON.parse(i)}catch{let d=Yt("settings_read_invalid_json");return await Xo(e,[t],d,s,[t]),d}let c=Ba(a);if(!c.success){let d=Yt("settings_read_invalid_schema");return await Xo(e,[t],d,s,[t]),d}try{let d=pc(c.data),u=c_(e,d.schema,t);n=u;let f=await xe(u),m=await Si(e,d.schema),p=await Ti(e,d.schema),_=await xe(u),y={...d,item_types:{definitions:yt([...d.item_types.definitions,...Qo(p.type_definitions_from_file)])},schema:p.schema};dc(y,a_(c.data,y));let g={settings:y,metadata:{has_explicit_item_format:m_(a)},warnings:[...c.data.item_format==="json_markdown"?["settings_item_format_legacy_json_markdown_coerced_to_toon"]:[],...m.created_paths.map(S=>`runtime_schema_bootstrap_created:${S}`),...p.warnings]};return m.created_paths.length===0?Xt(f,_)?ur(e,{tracked_paths:u,signatures:_,value:fr(g)}):Re(e):Re(e),g}catch{let d=Yt("settings_read_merge_failed");return await l_(e,n,d),d}}async function vc(e){return(await gc(e)).settings}async function db(e,t,n=t_){let r=kt(e),o=N_(t,{persist_source:lc(t)});try{await ua({pmRoot:e,filePath:r,raw:o,op:n,author:as(void 0,t.author_default),lockTtlSeconds:t.locks.ttl_seconds,lockWaitMs:t.locks.wait_ms,recordCreation:!1}),await ue({path:r,scope:"project",op:n})}finally{Re(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]="cb9a55d6-9ba9-50af-a54f-2bba5d076fdb")}catch{}})();function Jt(e,t=!1){let n=e[0];if(n?.op!=="history_compact_baseline")return 0;let r=n.context?.history_compaction,o=typeof r=="object"&&r!==null&&"version_offset"in r?r.version_offset:void 0;if(typeof o=="number"&&Number.isSafeInteger(o)&&o>=0&&Number.isSafeInteger(o+e.length))return o;if(t)return null;throw new v("This compacted stream has no trustworthy version offset; numeric history addresses are unavailable.",b.USAGE,{code:"history_version_mapping_unavailable",required:"Use a retained timestamp or recover the pre-compaction stream from version control.",nextSteps:["Run pm history <id> --full to inspect the retained timestamps and checkpoint evidence."]})}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="8835b501-34c7-51ba-b02e-782f8a457e1b")}catch{}})();function L_(e,t){let n=-1;return e.forEach((r,o)=>{let i=Date.parse(r.ts);if(!Number.isFinite(i))throw new v(`History for this item contains invalid timestamp at entry ${o+1}.`,b.GENERIC_FAILURE);i<=t&&(n=o)}),n}function P_(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 M_(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 bc(e,t,n={}){let r=e.trim(),o=n.errorSubject??"history",i=o==="restore"?"Restore":"History",{guidance:s,lastTimestamp:a}=P_(t,Jt(t,!0));if(!r)throw new v(`Missing ${o} target. Use a timestamp or version number.`,b.USAGE,s);if(/^\d+$/.test(r)){let u=Jt(t),f=Number(r);if(f>=1&&f<=u)throw new v(`History version ${f} was pruned by compaction.`,b.USAGE,{...s,code:"history_version_pruned"});if(!Number.isSafeInteger(f)||f<1||f>u+t.length)throw new v(`${i} version must be between ${u+1} and ${u+t.length} for this item.`,b.USAGE,s);return{kind:"version",raw:r,historyIndex:f-u-1}}let c=Date.parse(r);if(!Number.isFinite(c))throw new v(`Invalid ${o} target "${e}". Use a positive version number or ISO timestamp.`,b.USAGE,s);let d=L_(t,c);if(d<0||n.allowFutureTimestamp!==!0&&c>Date.parse(a))throw new v(o==="restore"?`No history entries exist at or before timestamp ${r}.`:`No history entry exists at timestamp ${r}.`,b.USAGE,s);return{kind:"timestamp",raw:r,historyIndex:d}}function Zo(e,t,n,r){let o=We(e,t);if(o.ok)return o.document;let i=M_(t,o.error),s=[`history_op=${r}`,i.patchIndex===void 0?null:`patch_index=${i.patchIndex}`,i.op?`op=${i.op}`:null,i.path?`path=${i.path}`:null,i.from?`from=${i.from}`:null].filter(a=>a!==null);throw new v(`Failed to apply history patch at entry ${n} (${s.join(", ")}). ${i.reason??String(o.error)}`,b.GENERIC_FAILURE)}function wc(e,t){let n=e[0];if(n&&n.op!=="create"&&n.op!=="history_compact_baseline"){let s=We(ut,n.patch);if(!s.ok||typeof s.document.metadata.id!="string")throw new v("History starts without a reconstructable item baseline.",b.GENERIC_FAILURE,{code:"history_baseline_unavailable",required:"Recover the original create entry or a complete checkpoint from version control.",nextSteps:["Run pm history <id> --full to inspect the missing baseline."]})}let r=e.slice(0,t+1),o=Ce([...r]),i=structuredClone(ut);for(let s=0;s<=t;s+=1){let a=e[s];if(!a)throw new v(`History target entry ${s+1} does not exist.`,b.USAGE);i=Zo(i,a.patch,s+1,a.op)}if(!o.ok)throw new v(`History cannot be replayed: ${o.errors.join(", ")}.`,b.GENERIC_FAILURE,{code:"history_replay_invalid",verification_errors:o.errors,required:"Inspect the history integrity findings before attempting recovery.",nextSteps:["Run pm history <id> --verify --full."]});return i}function gb(e,t){if(Object.keys(e.metadata).length>0){if(typeof e.metadata.id!="string"||!Array.isArray(e.metadata.tags))throw new v("History has no complete item baseline for this target.",b.GENERIC_FAILURE,{code:"history_baseline_unavailable",required:"Recover the original create entry or a complete checkpoint from version control.",nextSteps:["Run pm history <id> --full to inspect the first recorded state."]});return e}throw new v(`History target ${t.raw} resolves to a deleted state; choose a version or timestamp where the item exists.`,b.USAGE)}import j_ from"node:fs/promises";import F_ from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="99eadab1-5338-5d75-b600-fa0463053375")}catch{}})();function $_(e){return[...new Set(e.filter(t=>t.trim().length>0))].sort((t,n)=>t.localeCompare(n))}function H_(e,t){return new v(`Missing history stream for ${e}. ${t} requires history streams when settings.history.missing_stream is strict_error.`,b.NOT_FOUND)}async function z_(e,t){return await pi(F_.dirname(e)),await(await j_.open(e,"a")).close(),ue({path:e,scope:"project",op:`${t}:history:auto_create`})}async function ei(e){return U_({pmRoot:e.pmRoot,settings:e.settings,itemIds:[e.itemId],commandLabel:e.commandLabel})}async function U_(e){let t=$_(e.itemIds),n=[],r=[];for(let o of t){let i=ce(e.pmRoot,o);if(!await Le(i)){if(e.settings.history.missing_stream==="strict_error")throw H_(o,e.commandLabel);r.push(...await z_(i,e.commandLabel)),r.push(`history_stream_auto_created:${o}`),n.push(o)}}return{auto_created_ids:n,warnings:r}}import ni from"node:fs/promises";import _r from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="b6e08d70-4e3f-5ad3-83ad-9cb49edb526e")}catch{}})();function De(e,t){return typeof e=="object"&&e!==null&&"code"in e&&e.code===t}function ri(e){let t=["--pm-path",e,"init","--defaults","--agent-guidance","skip"];return{suggested_retry:Ot(t),suggested_retry_args:t}}function pr(e){return new v(`Tracker root is not a directory at ${e}.`,b.USAGE,{code:"tracker_root_not_directory",reason:"not_a_directory",resolved_path:e,nextSteps:["Pass a tracker directory, usually <workspace>/.agents/pm, rather than a file path."]})}function ti(e){return new v(`Tracker root is not readable at ${e}.`,b.GENERIC_FAILURE,{code:"tracker_root_unreadable",reason:"unreadable",resolved_path:e,nextSteps:["Grant read and directory-search permission to the tracker root, then retry."]})}async function B_(e){let t=_r.resolve(e),n=_r.parse(t).root,r=_r.dirname(t);for(;r!==n;){let o;try{o=await ni.stat(r)}catch(i){if(De(i,"ENOTDIR"))throw pr(e);if(!De(i,"ENOENT"))throw i;r=_r.dirname(r);continue}if(!o.isDirectory())throw pr(e);return}}async function gt(e){let t;try{t=await ni.stat(e)}catch(n){throw De(n,"ENOENT")?(await B_(e),new v(`Tracker is not initialized at ${e}. Tracker root does not exist. Run pm init first.`,b.NOT_FOUND,{code:"tracker_root_missing",reason:"missing",resolved_path:e,nextSteps:["Confirm the tracker root path or initialize it with the emitted retry."],recovery:ri(e)})):De(n,"ENOTDIR")?pr(e):De(n,"EACCES")||De(n,"EPERM")?ti(e):n}if(!t.isDirectory())throw pr(e);if(process.platform!=="win32"&&((t.mode&292)===0||(t.mode&73)===0))throw ti(e);try{await(await ni.opendir(e)).close()}catch(n){throw De(n,"EACCES")||De(n,"EPERM")?ti(e):n}}async function oi(e){if(await gt(e),!await Le(kt(e)))throw new v(`Tracker is not initialized at ${e}. Run pm init first.`,b.NOT_FOUND,{code:"tracker_not_initialized",reason:"settings_missing",resolved_path:e,nextSteps:["Initialize the selected tracker root with the emitted retry."],recovery:ri(e)})}import vt from"node:fs/promises";import{statSync as W_}from"node:fs";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="401ead12-fb72-586b-8625-33ae44ed2eb9")}catch{}})();function V_(e,t){let n=-1,r=structuredClone(ut);for(let[a,c]of e.entries()){if(r=Zo(r,c.patch,a+1,c.op),r.metadata.id!==void 0&&r.metadata.id!==t)throw new v(`History belongs to item ${String(r.metadata.id)}, expected ${t}.`,b.GENERIC_FAILURE,{code:"history_replay_invalid",required:"Recover the correct history stream for this item before attempting restoration."});r.metadata.id===t&&Array.isArray(r.metadata.tags)&&(n=a)}let o=Jt(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;bc(a,e).historyIndex===n&&(s=a)}return{version:i,target:s}}async function Ec(e,t,n){let r=new Set([Ve(t,n),jt(t)]);for(let o of r){let i=ce(e,o);if(!W_(i,{throwIfNoEntry:!1})?.isFile())continue;let s=await Se(i,o),a=-1;if(s.forEach((p,_)=>{p.op==="delete"&&(a=_)}),a<0)continue;let c=wc(s,s.length-1);if(Object.keys(c.metadata).length!==0)continue;let{version:d,target:u}=V_(s,o),f=u===void 0?["history",o,"--verify"]:["get",o,"--at",u],m=Ot(f);return new v(`Item ${o} was deleted at ${s[a].ts}; its history is retained.`,b.NOT_FOUND,{code:"item_deleted",required:"Read a retained materialized version, then restore it if the item should exist again.",item_id:o,tombstone:{deleted:!0,deleted_at:s[a].ts,recoverable:u!==void 0,last_materialized_version:d},nextSteps:[m,...u===void 0?["Recover the pre-compaction history from version control."]:[Ot(["restore",o,u])]],recovery:{suggested_retry:m,suggested_retry_args:f}})}}import ii from"node:path";import{isUtf8 as q_}from"node:buffer";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="02383f73-64f0-5ffc-a802-f8ef2b3cc038")}catch{}})();async function G_(e){try{return await vt.access(e),!0}catch{return!1}}function K_(e,t){e&&(e.includes(t)||e.push(t))}function kc(e){return e??on(le())}function X_(e){return e==="toon"?["toon","json_markdown"]:e==="json_markdown"?["json_markdown","toon"]:["toon","json_markdown"]}async function hr(e,t,n="pm-",r,o=Ne){let i=t.trim(),s=i.startsWith("#")?i.slice(1):i;if(s.length===0)return null;let a=Ve(t,n),c=jt(t),d=[...new Set([s,a,c])].filter(m=>m.length>0),u=Object.entries(o),f=X_(r);for(let m of d){let p=new Map;for(let[_]of u)for(let y of f){let g=br(e,_,m,y,o);await G_(g)&&p.set(g,p.get(g)??{id:m,type:_,itemPath:g,item_format:y})}if(p.size>1){let _=[...p.keys()].map(y=>ii.relative(e,y).split(ii.sep).join("/")).sort();throw new v(`Item ${m} has ambiguous identity across ${_.join(", ")}. Preserve both documents and inspect pm ops validate --check-storage-integrity before resolving the collision.`,b.CONFLICT,{code:"item_identity_ambiguous",item_id:m,paths:_})}for(let _ of p.values())return _}return null}async function yr(e,t={}){let n=await Y_(e,t);if(n.error!==null)throw n.error;return{raw:n.raw,document:n.document}}async function Y_(e,t={}){let n=await vt.readFile(e.itemPath);if(!q_(n))throw new v("Item contains invalid UTF-8; preserve a binary backup before recovering it.",b.CONFLICT,{code:"item_document_encoding_invalid",item_id:e.id,item_path:e.itemPath,byte_length:n.length,empty:!1});let r=n.toString("utf8");await ve({path:e.itemPath,scope:"project"});let o;try{o=Sn(r,{format:e.item_format,schema:t.schema,extensionFieldNames:kc(t.extensionFieldNames),onWarning:i=>K_(t.warnings,i)})}catch(i){if(i instanceof v&&i.code==="item_document_invalid")return{raw:r,document:null,error:new v(`Cannot read ${e.id} at ${e.itemPath}${n.length===0?" (zero-length file)":""}: ${i.message}`,i.exitCode,{...i.context,item_id:e.id,item_path:e.itemPath,byte_length:n.length,empty:n.length===0,nextSteps:[`Run pm history ${e.id} --full, then pm restore ${e.id} <version> to recover a recorded state.`]})};throw i}return{raw:r,document:o,error:null}}async function J_(e,t,n=Ne,r,o){await gt(e);let i=await xa(e,t,n,r,o);return Bn(i.length),i.map(s=>s.metadata)}async function Ic(e,t,n=Ne,r,o){await gt(e);let i=await Ra(e,t,n,r,o);return Bn(i.length),i.map(s=>s.metadata)}async function gw(e,t,n=Ne,r,o,i={}){await gt(e);let s=await nr(e,t,n,r,o,{includeBody:!0,forceSourceScan:i.forceSourceScan});return Bn(s.length),s.map(a=>({...a.metadata,body:a.body}))}function Sc(e){return{async get(t){let n=await hr(e.pmRoot,t,e.settings.id_prefix,e.settings.item_format,e.typeToFolder);if(!n)return null;let{document:r}=await yr(n,{schema:e.settings.schema});return{item:r.metadata,body:r.body}},list:()=>J_(e.pmRoot,e.settings.item_format,e.typeToFolder,void 0,e.settings.schema)}}async function Q_(e,t){let n=new Set(Object.values(t)),r=[];return await Promise.all([...n].map(async o=>{try{let i=await vt.readdir(ii.join(e,o));for(let s of i)for(let a of an)if(s.toLowerCase().endsWith(a)){r.push(s.slice(0,-a.length));break}}catch{}})),r}async function Z_(e,t,n,r){let o=Ve(t,n),i=await Q_(e,r);if(i.length===0)return[];let s=Math.max(3,Math.floor(o.length/2));return i.map(c=>({id:c,distance:Qt(c,o,s)})).filter(c=>c.distance!==null).sort((c,d)=>c.distance-d.distance).slice(0,3).map(c=>c.id)}async function ep(e,t,n,r){let o=await Ec(e,t,n);if(o)return o;let i=await Z_(e,t,n,r),s=["Confirm the active --path/PM_PATH scope, then retry with a valid id."];return i.length>0&&s.unshift(`Did you mean one of: ${i.join(", ")}?`),new v(`Item ${t} not found`,b.NOT_FOUND,{nextSteps:s})}function tp(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 Tc(e){let t=e.typeToFolder??sn(e.settings,le()).type_to_folder,n=await hr(e.pmRoot,e.id,e.settings.id_prefix,e.settings.item_format,t);if(!n)throw await ep(e.pmRoot,e.id,e.settings.id_prefix,t);let r=await Q(e.pmRoot,n.id,e.settings.locks.ttl_seconds,e.author,!!e.force,e.settings.governance.force_required_for_stale_lock,e.settings.locks.wait_ms);try{let o=[],{raw:i,document:s}=await yr(n,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames,warnings:o}),a=s.metadata.assignee?.trim(),c=s.metadata.claim_principal?.trim()||a,d=ss(e.author),u=mr(e.settings);if(a&&c!==d&&!e.force&&!tp(e.op,e.bypassAssigneeConflict)){if(u.ownership_enforcement==="strict")throw new v(`Item ${n.id} is assigned to ${a}. Use --force to override.`,b.CONFLICT);u.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 np(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 rp(e){if(!e.skipItemWrite){if(e.effectiveTargetItemPath!==e.originalItemPath){await K(e.originalItemPath,e.originalRaw),await vt.rm(e.effectiveTargetItemPath,{force:!0});return}await K(e.originalItemPath,e.originalRaw)}}async function Cc(e){fn(e.op);let t=await Tc({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}),u=await e.mutate(d);if(e.skipNoop===!0&&u.changedFields.length===0)return{item:c.metadata,body:c.body,changedFields:[],warnings:[...s,...u.warnings??[]]};let f=e.resolveHistoryContext?.();d.metadata.updated_at=be();let m=ne(d,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),p=await ko({pmRoot:e.pmRoot,settings:e.settings,operation:e.op,author:e.author,before:c,after:m});await kr({pm_root:e.pmRoot,operation:e.op,before:c,after:m,changed_fields:u.changedFields,sdk:Sc({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:n})});let _=await ei({pmRoot:e.pmRoot,settings:e.settings,itemId:r.id,commandLabel:e.op}),y="toon",g=Is(m,{format:y,schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),S=br(e.pmRoot,m.metadata.type,r.id,y,n),R=ce(e.pmRoot,r.id),D=await Ct("item_store_write",{op:e.op,pm_root:e.pmRoot,item_id:r.id,source_item_path:r.itemPath,target_item_path:S,history_path:R,item_format:y,before:c,after:m,contents:g}),{effectiveTargetItemPath:$,effectiveSerializedAfter:x,skipItemWrite:q}=np(D,S,g),W=await Do(e.pmRoot,e.author),J=[];try{q||await K($,x),!q&&$!==r.itemPath&&await vt.rm(r.itemPath);let ee=dt({nowIso:m.metadata.updated_at,author:e.author,op:e.op,before:c,after:m,message:e.message,context:p.decisions.length===0?f:{...f,workflow_policies:p.decisions}});try{await lt(R,ee)}catch(he){throw await rp({skipItemWrite:q,effectiveTargetItemPath:$,originalItemPath:r.itemPath,originalRaw:o}),he}q||(J=await No({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:n,schema:e.settings.schema,itemPath:$,previousItemPath:r.itemPath,document:m}))}finally{await W()}let G=[...await ue({path:$,scope:"project",op:e.op,item_id:m.metadata.id,item_type:m.metadata.type,before:c,after:m,changed_fields:u.changedFields}),...await ue({path:R,scope:"project",op:`${e.op}:history`,item_id:m.metadata.id,item_type:m.metadata.type,before:c,after:m,changed_fields:u.changedFields})];return Er({id:m.metadata.id,op:e.op,item_type:m.metadata.type,previous_status:c.metadata.status,status:m.metadata.status,previous:ln(c.metadata,u.changedFields),current:ln(m.metadata,u.changedFields),changed_fields:u.changedFields}),{item:m.metadata,body:m.body,changedFields:u.changedFields,warnings:[...s,...u.warnings??[],...p.warnings,..._.warnings,...D.warnings,...J,...G]}}finally{await a()}}async function vw(e){return Cc(e)}async function bw(e){return Cc(e)}async function ww(e){let t=await Tc({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=kc(void 0),c=ne(o,{schema:e.settings.schema,extensionFieldNames:a}),d=await ko({pmRoot:e.pmRoot,settings:e.settings,operation:"delete",author:e.author,before:c,after:null,dryRun:e.dryRun});await kr({pm_root:e.pmRoot,operation:"delete",before:c,after:null,changed_fields:["deleted"],sdk:Sc({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:t.typeToFolder})});let u=await ei({pmRoot:e.pmRoot,settings:e.settings,itemId:n.id,commandLabel:"delete"}),f=be(),m=Ye,p=dt({nowIso:f,author:e.author,op:"delete",before:c,after:m,message:e.message,context:d.decisions.length===0?void 0:{workflow_policies:d.decisions}}),_=ce(e.pmRoot,n.id),y=await Ct("item_store_delete",{op:"delete",pm_root:e.pmRoot,item_id:n.id,item_path:n.itemPath,history_path:_,before:c}),g=n.itemPath,S=!1;if(y.handled&&typeof y.result=="object"&&y.result!==null){let x=y.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,...u.warnings,...y.warnings]};let R=await Do(e.pmRoot,e.author),D=[];try{S||await vt.rm(g);try{await lt(_,p)}catch(x){throw S||await K(g,r),x}S||(D=await No({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:t.typeToFolder,schema:e.settings.schema,itemPath:g,document:null}))}finally{await R()}let $=[...await ue({path:g,scope:"project",op:"delete",item_id:c.metadata.id,item_type:c.metadata.type,before:c,after:m,changed_fields:["deleted"]}),...await ue({path:_,scope:"project",op:"delete:history",item_id:c.metadata.id,item_type:c.metadata.type,before:c,after:m,changed_fields:["deleted"]})];return Er({id:c.metadata.id,op:"delete",item_type:c.metadata.type,previous_status:c.metadata.status,previous:ln(c.metadata,Object.keys(c.metadata)),changed_fields:["deleted"]}),{item:c.metadata,changedFields:["deleted"],warnings:[...i,...d.warnings,...u.warnings,...y.warnings,...D,...$]}}finally{await s()}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="5c8194ff-d877-51b8-bd54-d206f85a979c")}catch{}})();(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="8ed4af4c-40cf-5902-930b-78a4758871b2")}catch{}})();function op(e,t){let n=e.trim().toLowerCase();if(n.length===0)return;let r=Math.floor(n.length/3);return t.map(o=>({candidate:o,distance:Qt(n,o.toLowerCase(),r)??Number.POSITIVE_INFINITY})).filter(({distance:o})=>Number.isFinite(o)).sort((o,i)=>o.distance!==i.distance?o.distance-i.distance:o.candidate.localeCompare(i.candidate))[0]?.candidate}function Oc(e){return["pm",...e].map(t=>/^[A-Za-z0-9_./:@=-]+$/u.test(t)?t:JSON.stringify(t)).join(" ")}function Ow(e){let t=e.command_path.trim().replaceAll(/\s+/gu," "),n=e.token.trim(),r=n.length===0?"<empty>":n,o=[...new Set(e.allowed.map(m=>m.trim()))].filter(Boolean).sort((m,p)=>m.localeCompare(p));if(t.length===0||r.length===0||o.length===0)throw new TypeError("Unknown-subcommand contracts require a path, token, and allowed set");let i=t.split(" "),s=e.trailing_args??[],a=e.display_name??`pm ${t}`,c=e.token_kind??"subcommand",d=e.retry_command?void 0:op(r,o),u=Oc([...i,r,...s]),f=e.retry_command??(d?Oc([...i,d,...s]):void 0);return new v(`Unknown ${a} ${c} "${r}". Allowed: ${o.join(", ")}${e.message_suffix??""}`,e.exit_code??b.USAGE,{code:"unknown_subcommand",reason:"unknown_positional_token",examples:[...f?[f]:[],...e.examples??[],`pm ${t} --help`],nextSteps:f?[`Retry with the suggested command: ${f}`]:["Choose one value from recovery.allowed_values."],recovery:{attempted_command:u,allowed_values:o,suggested_retry:f,fallback_candidates:e.fallback_candidates}})}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="2f2a7df8-9c95-5ed1-bd43-33dde57dd7f0")}catch{}})();var ip=["tree","graph","context"],sp=["none","repeated"],ap=["outgoing","incoming","both"],cp=32,dp=200,lp=400,up=16e3;function fp(e){let t=e?.trim().toLowerCase()??"tree";if(ip.includes(t))return t;throw new v(`Invalid --format value "${e}". Use "tree", "graph", or "context".`,b.USAGE)}function bt(e,t){if(e===void 0)return;let n=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(n)||n<1)throw new v(`Invalid --${t} value "${e}". Use a positive integer.`,b.USAGE);return n}function Rc(e){if(e===void 0)return;let t=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(t)||t<0)throw new v(`Invalid --max-depth value "${e}". Use a non-negative integer.`,b.USAGE);return t}function mp(e){let t=e?.trim().toLowerCase()??"none";if(sp.includes(t))return t;throw new v(`Invalid --collapse value "${e}". Use "none" or "repeated".`,b.USAGE)}function _p(e){let t=e?.trim().toLowerCase()??"both";if(ap.includes(t))return t;throw new v(`Invalid --direction value "${e}". Use "outgoing", "incoming", or "both".`,b.USAGE)}function pp(e,t=de()){if(e===void 0)return;let n=(Array.isArray(e)?e:[e]).flatMap(o=>o.split(",")).map(o=>o.trim()).filter(o=>o.length>0);if(n.length===0)return;let r=new Set;for(let o of n){let i=t.resolve(o);if(!i){let s=t.list().map(a=>a.kind).join(", ");throw new v(`Invalid --kind value "${o}". Registered kinds: ${s}.`,b.USAGE)}r.add(i.kind)}return[...r].sort()}function hp(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 yp(e){return{id:e.id,title:e.title,type:e.type,status:e.status,dependencies:hp(e.dependencies)}}function gp(e){return un(new TextEncoder().encode(JSON.stringify({...e,dependencies:void 0})).byteLength)}function vp(e,t,n,r,o,i,s,a,c){for(let d of t.dependencies){let u=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+u>=a.tokenBudget){e.truncated=!0,a.reasons.add("token_budget");break}a.edges+=1,a.estimatedTokens+=u,e.dependencies.push(Ac(d.id,n,r,o,i,s,a,c+1,d.kind))}}function bp(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 Ac(e,t,n,r,o,i,s,a=0,c){let d=e.trim().toLowerCase(),u=t.get(d),f={id:u?.id??e,title:u?.title,type:u?.type,status:u?.status,via:c,missing:!u,cycle:n.has(d),dependencies:[]};if(s.nodes+=1,s.estimatedTokens+=gp(f),bp(f,u,d,r,o,i,s,a))return f;o==="repeated"&&i.add(d);let m=new Set(n);return m.add(d),vp(f,u,t,m,r,o,i,s,a),f}function xc(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 wp(e){let t=new Map,n=new Map,r=[e];for(;r.length>0;){let a=r.pop();t.set(a.id,xc(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,xc(t.get(c.id),{id:c.id,title:c.title,type:c.type,status:c.status,missing:c.missing}));let d=c.via??"related",u=`${a.id}::${c.id}::${d}`;n.has(u)||n.set(u,{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 u=a.to.localeCompare(c.to);return u!==0?u: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 Dc(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++],u=d.id.trim().toLowerCase();r.add(u);let f=t.get(u);if(!f){i.add(u);continue}if(!(n!==void 0&&d.depth>=n)&&!s.has(u)){s.add(u);for(let m of f.dependencies)o.add(`${u}::${m.id.trim().toLowerCase()}::${m.kind}`),a.push({id:m.id,depth:d.depth+1})}}return{node_count:r.size,edge_count:o.size,edge_basis:"deduplicated_directed",missing_count:i.size}}function Ep(e,t=de()){let n=Rc(e.maxDepth),r=bt(e.nodeLimit,"node-limit"),o=bt(e.edgeLimit,"edge-limit"),i=bt(e.tokenBudget,"token-budget"),s=pp(e.kind,t);return{direction:_p(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 kp(e,t,n,r){return $a(e.graph,t,e.details.map(o=>o.id===t&&r.length>0?{...o,evidence:r}:o),n)}function si(e,t,n,r){for(let o of n.slice(0,r)){let i=o?.trim();i&&e.push(`${t}:${i}`)}}async function Ip(e,t,n,r){let o=await hr(e,t,n.id_prefix,n.item_format,r);if(!o)return[];let{document:i}=await yr(o,{schema:n.schema}),s=i.metadata,a=s.files??[],c=s.tests??[],d=s.docs??[],u=[["files",a.length],["tests",c.length],["docs",d.length],["comments",(s.comments??[]).length],["notes",(s.notes??[]).length],["learnings",(s.learnings??[]).length]];if(u.every(([,m])=>m===0))return[];let f=[`linked:${u.map(([m,p])=>`${m}=${p}`).join(",")}`];return si(f,"file",a.map(m=>m.path),3),si(f,"test",c.map(m=>m.command??m.path),2),si(f,"doc",d.map(m=>m.path),2),f}function Sp(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 Tp(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 Nc(e,t,n){let r;for(;;){let o=un(new TextEncoder().encode(Cr(Sr("deps",e),t)).byteLength);if(o===r)return o;n(o),r=o}}function Cp(e){return e instanceof TypeError&&e.message.startsWith("Relationship context tokenBudget cannot fit ")}function Op(e){try{return kp(e.assembly,e.canonicalId,{...e.contextOptions,...e.internalTokenBudget===void 0?{}:{tokenBudget:e.internalTokenBudget}},e.rootEvidence)}catch(t){if(e.smallestResult!==void 0&&Cp(t))return e.smallestResult;throw t}}function xp(e){let{assembly:t,canonicalId:n,contextOptions:r,rootEvidence:o,summaryOnly:i,outputFormat:s,missingCount:a,missingReferences:c}=e,u=r.edgeLimit??40,f=r.tokenBudget,m,p;for(;;){let _=Op({assembly:t,canonicalId:n,contextOptions:r,internalTokenBudget:f,rootEvidence:o,smallestResult:p});if("format"in _)return _;let y=_;m??=y.meta.tokenBudget,f??=m;let g=Sp({canonicalId:n,context:y,missingCount:a,missingReferences:c,referenceLimit:u,summaryOnly:i});if(p=g,i||(y.meta.tokenBudget=m,y.meta.usedTokens=Nc(wt(g,!1),s,D=>{y.meta.usedTokens=D}),y.meta.usedTokens<=m))return g;if(u>0){u-=1;continue}let S=f,R=S*m/y.meta.usedTokens;f=Math.min(S-1,Math.max(1,Math.floor(R*.9)))}}function Rp(e){let{assembly:t,canonicalId:n,options:r,rootEvidence:o,summaryOnly:i,outputFormat:s}=e,a=Ep(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(y=>t.missingIdSet.has(y.toLowerCase())),u=new Set(d.map(y=>y.toLowerCase())),f=t.graph.registry(),m=a.kinds?new Set(a.kinds.map(y=>f.require(y).kind)):void 0,p=new Set([n,...c.value]),_=[...t.dangling.active,...t.dangling.legacy_terminal].filter(y=>Tp({row:y,missingReachableSet:u,packetIds:p,filteredKinds:m,registry:f}));return xp({assembly:t,canonicalId:n,contextOptions:a,rootEvidence:o,summaryOnly:i,outputFormat:s,missingCount:d.length,missingReferences:_})}function Ap(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 Dp(e,t,n,r,o,i,s){let a=o??cp,c=bt(n.nodeLimit,"node-limit")??dp,d=bt(n.edgeLimit,"edge-limit")??lp,u=bt(n.tokenBudget,"token-budget")??up,f={nodeLimit:c,edgeLimit:d,tokenBudget:u,nodes:0,edges:0,estimatedTokens:0,reasons:new Set},m=Ac(e,r,new Set,a,t==="graph"?"repeated":i,new Set,f),p=Dc(e,r,void 0),_;for(;;){let y=wp(m),g=f.reasons.size===0?void 0:{reasons:[...f.reasons].sort(),limits:{max_depth:a,node_limit:c,edge_limit:d,token_budget:u},estimated_tokens:0,total_node_count:p.node_count,total_edge_count:p.edge_count,omitted_node_count:Math.max(0,p.node_count-y.nodes.length),omitted_edge_count:Math.max(0,p.edge_count-y.edges.length)},S={id:e,format:t,node_count:y.nodes.length,edge_count:y.edges.length,edge_basis:"deduplicated_directed",missing_count:y.missing_ids.length,...g?{truncation:g}:{}};if(_=t==="tree"?{...S,tree:m}:{...S,graph:y},(_.truncation===void 0?un(new TextEncoder().encode(Cr(Sr("deps",wt(_,!1)),s)).byteLength):Nc(wt(_,!1),s,D=>{_.truncation.estimated_tokens=D}))<=u)return _;if(!Ap(m))return f.reasons.add("token_budget"),_;f.reasons.add("token_budget")}}function wt(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 Gw(e,t,n){let r=bi(process.cwd(),n.path);await oi(r);let o=fp(t.format),i=Rc(t.maxDepth),s=mp(t.collapse);Ni(t.summary===!0,t.full===!0,"--summary");let a=t.summary===!0,c=await vc(r),d=sn(c,le()),u=await Ic(r,c.item_format,d.type_to_folder,void 0,c.schema),f=dn(c.schema),m=new Map(u.map(_=>[_.id.trim().toLowerCase(),yp(_)])),p=Mo(u,_=>pe(_,f));for(let _ of[...p.active,...p.legacy_terminal]){let y=m.get(_.holder_id.trim().toLowerCase()),g=_.kind.trim().toLowerCase();y&&!y.dependencies.some(S=>S.id.trim().toLowerCase()===_.target_id.trim().toLowerCase()&&S.kind===g)&&y.dependencies.push({id:_.target_id,kind:g})}if(!m.has(e.trim().toLowerCase()))throw new v(`Item ${e} not found`,b.NOT_FOUND);if(o==="context"){let _=m.get(e.trim().toLowerCase()).id,y=a?[]:await Ip(r,_,c,d.type_to_folder),g=D=>pe(D,f),S=ae(),R=Fa().lookup(r,Ma(u,g,S),()=>ir(u,g,S));return wt(Rp({assembly:R.assembly,canonicalId:_,options:t,rootEvidence:y,summaryOnly:a,outputFormat:n.json===!0?"json":"toon"}),a,R.assembly.legacyAliasCounts)}return a?wt({id:e,format:o,...Dc(e,m,i)},!0,Object.fromEntries(Object.entries(ir(u,_=>pe(_,f)).legacyAliasCounts))):wt(Dp(e,o,t,m,i,s,n.json===!0?"json":"toon"),!1,Object.fromEntries(Object.entries(ir(u,_=>pe(_,f)).legacyAliasCounts)))}export{Pe as a,xr as b,Lp as c,Pp as d,_n as e,Lr as f,Up as g,Bp as h,Wp as i,Vp as j,qp as k,Gp as l,Br as m,Wr as n,Qi as o,rh as p,oh as q,ih as r,sh as s,ah as t,ch as u,Kr as v,rs as w,dh as x,lh as y,uh as z,md as A,ss as B,as as C,_h as D,pd as E,cs as F,$e as G,ke as H,ms as I,xt as J,Ch as K,Oh as L,tt as M,ds as N,hh as O,ls as P,hd as Q,yh as R,vn as S,nt as T,pe as U,wn as V,In as W,Sn as X,Is as Y,ne as Z,Ul as _,Se as $,st as aa,du as ba,_y as ca,py as da,hy as ea,yu as fa,Pn as ga,Ue as ha,Mt as ia,Hy as ja,ho as ka,Fn as la,qs as ma,zy as na,Xs as oa,Uy as pa,dt as qa,lt as ra,Ss as sa,ut as ta,$n as ua,Qy as va,go as wa,Hn as xa,Zy as ya,eg as za,ea as Aa,We as Ba,ra as Ca,Ce as Da,Uu as Ea,tg as Fa,ng as Ga,Ft as Ha,bo as Ia,Eg as Ja,kg as Ka,da as La,Ig as Ma,ua as Na,Gv as Oa,Re as Pa,mr as Qa,gc as Ra,vc as Sa,db as Ta,ia as Ua,jt as Va,Ve as Wa,dg as Xa,Jt as Ya,bc as Za,Zo as _a,wc as $a,gb as ab,Qu as bb,ef as cb,tf as db,nf as eb,rf as fb,ko as gb,$g as hb,ei as ib,U_ as jb,Vg as kb,qg as lb,Gg as mb,Ia as nb,wf as ob,Do as pb,sv as qb,No as rb,nr as sb,gt as tb,oi as ub,hr as vb,yr as wb,Y_ as xb,J_ as yb,Ic as zb,gw as Ab,Sc as Bb,ep as Cb,vw as Db,bw as Eb,ww as Fb,Ow as Gb,wv as Hb,Ev as Ib,dm as Jb,ae as Kb,_v as Lb,or as Mb,pv as Nb,am as Ob,hv as Pb,qt as Qb,um as Rb,mm as Sb,Mo as Tb,_m as Ub,xv as Vb,ir as Wb,Ma as Xb,jo as Yb,Fa as Zb,Lv as _b,$a as $b,bt as ac,Rc as bc,_p as cc,pp as dc,Gw as ec,zo as fc,xm as gc,Kt as hc,cr as ic,za as jc,Rm as kc,Am as lc,Dm as mc,Pm as nc};
164
- //# sourceMappingURL=chunk-JZSLDLR4.js.map
163
+ `}async function bc(e){let t=kt(e),n=[t];await be({path:t,scope:"project"});let r=Qa(e);if(r){let d=await Re(r.tracked_paths);if(Xt(d,r.signatures))return fr(r.value)}let o=await Re([t]),i;try{i=await ve(t)}catch{return Yt("settings_read_fs_error")}if(i===null){let d=Yt();return await Yo(e,[t],d,o,[t]),d}let s=await Re([t]);if(!Xt(o,s))return Ae(e),bc(e);let a;try{a=JSON.parse(i)}catch{let d=Yt("settings_read_invalid_json");return await Yo(e,[t],d,s,[t]),d}let c=Ga(a);if(!c.success){let d=Yt("settings_read_invalid_schema");return await Yo(e,[t],d,s,[t]),d}try{let d=gc(c.data),u=l_(e,d.schema,t);n=u;let f=await Re(u),m=await Oi(e,d.schema),p=await xi(e,d.schema),_=await Re(u),y={...d,item_types:{definitions:yt([...d.item_types.definitions,...Zo(p.type_definitions_from_file)])},schema:p.schema};ei(y,d_(c.data,y));let g={settings:y,metadata:{has_explicit_item_format:p_(a)},warnings:[...c.data.item_format==="json_markdown"?["settings_item_format_legacy_json_markdown_coerced_to_toon"]:[],...m.created_paths.map(S=>`runtime_schema_bootstrap_created:${S}`),...p.warnings]};return m.created_paths.length===0?Xt(f,_)?ur(e,{tracked_paths:u,signatures:_,value:fr(g)}):Ae(e):Ae(e),g}catch{let d=Yt("settings_read_merge_failed");return await f_(e,n,d),d}}async function wc(e){return(await bc(e)).settings}async function gb(e,t,n=r_){let r=kt(e),o=mc(t),i=P_(t,{persist_source:o}),s=JSON.parse(i);try{await pa({pmRoot:e,filePath:r,mutate:a=>({raw:o?`${JSON.stringify(T(qo(o.persisted_settings,s,a===null?null:JSON.parse(a)),ti),null,2)}
164
+ `:i,result:void 0}),op:n,author:us(void 0,t.author_default),lockTtlSeconds:t.locks.ttl_seconds,lockWaitMs:t.locks.wait_ms,recordCreation:!1}),o&&ei(t,{...o,persisted_settings:structuredClone(s)}),await fe({path:r,scope:"project",op:n})}finally{Ae(e)}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="cb9a55d6-9ba9-50af-a54f-2bba5d076fdb")}catch{}})();function Jt(e,t=!1){let n=e[0];if(n?.op!=="history_compact_baseline")return 0;let r=n.context?.history_compaction,o=typeof r=="object"&&r!==null&&"version_offset"in r?r.version_offset:void 0;if(typeof o=="number"&&Number.isSafeInteger(o)&&o>=0&&Number.isSafeInteger(o+e.length))return o;if(t)return null;throw new v("This compacted stream has no trustworthy version offset; numeric history addresses are unavailable.",b.USAGE,{code:"history_version_mapping_unavailable",required:"Use a retained timestamp or recover the pre-compaction stream from version control.",nextSteps:["Run pm history <id> --full to inspect the retained timestamps and checkpoint evidence."]})}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="8835b501-34c7-51ba-b02e-782f8a457e1b")}catch{}})();function M_(e,t){let n=-1;return e.forEach((r,o)=>{let i=Date.parse(r.ts);if(!Number.isFinite(i))throw new v(`History for this item contains invalid timestamp at entry ${o+1}.`,b.GENERIC_FAILURE);i<=t&&(n=o)}),n}function j_(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 F_(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 Ec(e,t,n={}){let r=e.trim(),o=n.errorSubject??"history",i=o==="restore"?"Restore":"History",{guidance:s,lastTimestamp:a}=j_(t,Jt(t,!0));if(!r)throw new v(`Missing ${o} target. Use a timestamp or version number.`,b.USAGE,s);if(/^\d+$/.test(r)){let u=Jt(t),f=Number(r);if(f>=1&&f<=u)throw new v(`History version ${f} was pruned by compaction.`,b.USAGE,{...s,code:"history_version_pruned"});if(!Number.isSafeInteger(f)||f<1||f>u+t.length)throw new v(`${i} version must be between ${u+1} and ${u+t.length} for this item.`,b.USAGE,s);return{kind:"version",raw:r,historyIndex:f-u-1}}let c=Date.parse(r);if(!Number.isFinite(c))throw new v(`Invalid ${o} target "${e}". Use a positive version number or ISO timestamp.`,b.USAGE,s);let d=M_(t,c);if(d<0||n.allowFutureTimestamp!==!0&&c>Date.parse(a))throw new v(o==="restore"?`No history entries exist at or before timestamp ${r}.`:`No history entry exists at timestamp ${r}.`,b.USAGE,s);return{kind:"timestamp",raw:r,historyIndex:d}}function ni(e,t,n,r){let o=Ve(e,t);if(o.ok)return o.document;let i=F_(t,o.error),s=[`history_op=${r}`,i.patchIndex===void 0?null:`patch_index=${i.patchIndex}`,i.op?`op=${i.op}`:null,i.path?`path=${i.path}`:null,i.from?`from=${i.from}`:null].filter(a=>a!==null);throw new v(`Failed to apply history patch at entry ${n} (${s.join(", ")}). ${i.reason??String(o.error)}`,b.GENERIC_FAILURE)}function kc(e,t){let n=e[0];if(n&&n.op!=="create"&&n.op!=="history_compact_baseline"){let s=Ve(ut,n.patch);if(!s.ok||typeof s.document.metadata.id!="string")throw new v("History starts without a reconstructable item baseline.",b.GENERIC_FAILURE,{code:"history_baseline_unavailable",required:"Recover the original create entry or a complete checkpoint from version control.",nextSteps:["Run pm history <id> --full to inspect the missing baseline."]})}let r=e.slice(0,t+1),o=Oe([...r]),i=structuredClone(ut);for(let s=0;s<=t;s+=1){let a=e[s];if(!a)throw new v(`History target entry ${s+1} does not exist.`,b.USAGE);i=ni(i,a.patch,s+1,a.op)}if(!o.ok)throw new v(`History cannot be replayed: ${o.errors.join(", ")}.`,b.GENERIC_FAILURE,{code:"history_replay_invalid",verification_errors:o.errors,required:"Inspect the history integrity findings before attempting recovery.",nextSteps:["Run pm history <id> --verify --full."]});return i}function Cb(e,t){if(Object.keys(e.metadata).length>0){if(typeof e.metadata.id!="string"||!Array.isArray(e.metadata.tags))throw new v("History has no complete item baseline for this target.",b.GENERIC_FAILURE,{code:"history_baseline_unavailable",required:"Recover the original create entry or a complete checkpoint from version control.",nextSteps:["Run pm history <id> --full to inspect the first recorded state."]});return e}throw new v(`History target ${t.raw} resolves to a deleted state; choose a version or timestamp where the item exists.`,b.USAGE)}import $_ from"node:fs/promises";import H_ from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="99eadab1-5338-5d75-b600-fa0463053375")}catch{}})();function z_(e){return[...new Set(e.filter(t=>t.trim().length>0))].sort((t,n)=>t.localeCompare(n))}function U_(e,t){return new v(`Missing history stream for ${e}. ${t} requires history streams when settings.history.missing_stream is strict_error.`,b.NOT_FOUND)}async function B_(e,t){return await gi(H_.dirname(e)),await(await $_.open(e,"a")).close(),fe({path:e,scope:"project",op:`${t}:history:auto_create`})}async function ri(e){return W_({pmRoot:e.pmRoot,settings:e.settings,itemIds:[e.itemId],commandLabel:e.commandLabel})}async function W_(e){let t=z_(e.itemIds),n=[],r=[];for(let o of t){let i=de(e.pmRoot,o);if(!await Pe(i)){if(e.settings.history.missing_stream==="strict_error")throw U_(o,e.commandLabel);r.push(...await B_(i,e.commandLabel)),r.push(`history_stream_auto_created:${o}`),n.push(o)}}return{auto_created_ids:n,warnings:r}}import ii from"node:fs/promises";import _r from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="b6e08d70-4e3f-5ad3-83ad-9cb49edb526e")}catch{}})();function Ne(e,t){return typeof e=="object"&&e!==null&&"code"in e&&e.code===t}function si(e){let t=["--pm-path",e,"init","--defaults","--agent-guidance","skip"];return{suggested_retry:Ot(t),suggested_retry_args:t}}function pr(e){return new v(`Tracker root is not a directory at ${e}.`,b.USAGE,{code:"tracker_root_not_directory",reason:"not_a_directory",resolved_path:e,nextSteps:["Pass a tracker directory, usually <workspace>/.agents/pm, rather than a file path."]})}function oi(e){return new v(`Tracker root is not readable at ${e}.`,b.GENERIC_FAILURE,{code:"tracker_root_unreadable",reason:"unreadable",resolved_path:e,nextSteps:["Grant read and directory-search permission to the tracker root, then retry."]})}async function V_(e){let t=_r.resolve(e),n=_r.parse(t).root,r=_r.dirname(t);for(;r!==n;){let o;try{o=await ii.stat(r)}catch(i){if(Ne(i,"ENOTDIR"))throw pr(e);if(!Ne(i,"ENOENT"))throw i;r=_r.dirname(r);continue}if(!o.isDirectory())throw pr(e);return}}async function gt(e){let t;try{t=await ii.stat(e)}catch(n){throw Ne(n,"ENOENT")?(await V_(e),new v(`Tracker is not initialized at ${e}. Tracker root does not exist. Run pm init first.`,b.NOT_FOUND,{code:"tracker_root_missing",reason:"missing",resolved_path:e,nextSteps:["Confirm the tracker root path or initialize it with the emitted retry."],recovery:si(e)})):Ne(n,"ENOTDIR")?pr(e):Ne(n,"EACCES")||Ne(n,"EPERM")?oi(e):n}if(!t.isDirectory())throw pr(e);if(process.platform!=="win32"&&((t.mode&292)===0||(t.mode&73)===0))throw oi(e);try{await(await ii.opendir(e)).close()}catch(n){throw Ne(n,"EACCES")||Ne(n,"EPERM")?oi(e):n}}async function ai(e){if(await gt(e),!await Pe(kt(e)))throw new v(`Tracker is not initialized at ${e}. Run pm init first.`,b.NOT_FOUND,{code:"tracker_not_initialized",reason:"settings_missing",resolved_path:e,nextSteps:["Initialize the selected tracker root with the emitted retry."],recovery:si(e)})}import vt from"node:fs/promises";import{statSync as q_}from"node:fs";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="401ead12-fb72-586b-8625-33ae44ed2eb9")}catch{}})();function G_(e,t){let n=-1,r=structuredClone(ut);for(let[a,c]of e.entries()){if(r=ni(r,c.patch,a+1,c.op),r.metadata.id!==void 0&&r.metadata.id!==t)throw new v(`History belongs to item ${String(r.metadata.id)}, expected ${t}.`,b.GENERIC_FAILURE,{code:"history_replay_invalid",required:"Recover the correct history stream for this item before attempting restoration."});r.metadata.id===t&&Array.isArray(r.metadata.tags)&&(n=a)}let o=Jt(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;Ec(a,e).historyIndex===n&&(s=a)}return{version:i,target:s}}async function Ic(e,t,n){let r=new Set([qe(t,n),jt(t)]);for(let o of r){let i=de(e,o);if(!q_(i,{throwIfNoEntry:!1})?.isFile())continue;let s=await Te(i,o),a=-1;if(s.forEach((p,_)=>{p.op==="delete"&&(a=_)}),a<0)continue;let c=kc(s,s.length-1);if(Object.keys(c.metadata).length!==0)continue;let{version:d,target:u}=G_(s,o),f=u===void 0?["history",o,"--verify"]:["get",o,"--at",u],m=Ot(f);return new v(`Item ${o} was deleted at ${s[a].ts}; its history is retained.`,b.NOT_FOUND,{code:"item_deleted",required:"Read a retained materialized version, then restore it if the item should exist again.",item_id:o,tombstone:{deleted:!0,deleted_at:s[a].ts,recoverable:u!==void 0,last_materialized_version:d},nextSteps:[m,...u===void 0?["Recover the pre-compaction history from version control."]:[Ot(["restore",o,u])]],recovery:{suggested_retry:m,suggested_retry_args:f}})}}import ci from"node:path";import{isUtf8 as K_}from"node:buffer";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="02383f73-64f0-5ffc-a802-f8ef2b3cc038")}catch{}})();async function X_(e){try{return await vt.access(e),!0}catch{return!1}}function Y_(e,t){e&&(e.includes(t)||e.push(t))}function Sc(e){return e??on(ue())}function J_(e){return e==="toon"?["toon","json_markdown"]:e==="json_markdown"?["json_markdown","toon"]:["toon","json_markdown"]}async function hr(e,t,n="pm-",r,o=Le){let i=t.trim(),s=i.startsWith("#")?i.slice(1):i;if(s.length===0)return null;let a=qe(t,n),c=jt(t),d=[...new Set([s,a,c])].filter(m=>m.length>0),u=Object.entries(o),f=J_(r);for(let m of d){let p=new Map;for(let[_]of u)for(let y of f){let g=br(e,_,m,y,o);await X_(g)&&p.set(g,p.get(g)??{id:m,type:_,itemPath:g,item_format:y})}if(p.size>1){let _=[...p.keys()].map(y=>ci.relative(e,y).split(ci.sep).join("/")).sort();throw new v(`Item ${m} has ambiguous identity across ${_.join(", ")}. Preserve both documents and inspect pm ops validate --check-storage-integrity before resolving the collision.`,b.CONFLICT,{code:"item_identity_ambiguous",item_id:m,paths:_})}for(let _ of p.values())return _}return null}async function yr(e,t={}){let n=await Q_(e,t);if(n.error!==null)throw n.error;return{raw:n.raw,document:n.document}}async function Q_(e,t={}){let n=await vt.readFile(e.itemPath);if(!K_(n))throw new v("Item contains invalid UTF-8; preserve a binary backup before recovering it.",b.CONFLICT,{code:"item_document_encoding_invalid",item_id:e.id,item_path:e.itemPath,byte_length:n.length,empty:!1});let r=n.toString("utf8");await be({path:e.itemPath,scope:"project"});let o;try{o=In(r,{format:e.item_format,schema:t.schema,extensionFieldNames:Sc(t.extensionFieldNames),onWarning:i=>Y_(t.warnings,i)})}catch(i){if(i instanceof v&&i.code==="item_document_invalid")return{raw:r,document:null,error:new v(`Cannot read ${e.id} at ${e.itemPath}${n.length===0?" (zero-length file)":""}: ${i.message}`,i.exitCode,{...i.context,item_id:e.id,item_path:e.itemPath,byte_length:n.length,empty:n.length===0,nextSteps:[`Run pm history ${e.id} --full, then pm restore ${e.id} <version> to recover a recorded state.`]})};throw i}return{raw:r,document:o,error:null}}async function Z_(e,t,n=Le,r,o){await gt(e);let i=await Na(e,t,n,r,o);return Un(i.length),i.map(s=>s.metadata)}async function Tc(e,t,n=Le,r,o){await gt(e);let i=await La(e,t,n,r,o);return Un(i.length),i.map(s=>s.metadata)}async function Cw(e,t,n=Le,r,o,i={}){await gt(e);let s=await tr(e,t,n,r,o,{includeBody:!0,forceSourceScan:i.forceSourceScan});return Un(s.length),s.map(a=>({...a.metadata,body:a.body}))}function Cc(e){return{async get(t){let n=await hr(e.pmRoot,t,e.settings.id_prefix,e.settings.item_format,e.typeToFolder);if(!n)return null;let{document:r}=await yr(n,{schema:e.settings.schema});return{item:r.metadata,body:r.body}},list:()=>Z_(e.pmRoot,e.settings.item_format,e.typeToFolder,void 0,e.settings.schema)}}async function ep(e,t){let n=new Set(Object.values(t)),r=[];return await Promise.all([...n].map(async o=>{try{let i=await vt.readdir(ci.join(e,o));for(let s of i)for(let a of an)if(s.toLowerCase().endsWith(a)){r.push(s.slice(0,-a.length));break}}catch{}})),r}async function tp(e,t,n,r){let o=qe(t,n),i=await ep(e,r);if(i.length===0)return[];let s=Math.max(3,Math.floor(o.length/2));return i.map(c=>({id:c,distance:Qt(c,o,s)})).filter(c=>c.distance!==null).sort((c,d)=>c.distance-d.distance).slice(0,3).map(c=>c.id)}async function np(e,t,n,r){let o=await Ic(e,t,n);if(o)return o;let i=await tp(e,t,n,r),s=["Confirm the active --path/PM_PATH scope, then retry with a valid id."];return i.length>0&&s.unshift(`Did you mean one of: ${i.join(", ")}?`),new v(`Item ${t} not found`,b.NOT_FOUND,{nextSteps:s})}function rp(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 Oc(e){let t=e.typeToFolder??sn(e.settings,ue()).type_to_folder,n=await hr(e.pmRoot,e.id,e.settings.id_prefix,e.settings.item_format,t);if(!n)throw await np(e.pmRoot,e.id,e.settings.id_prefix,t);let r=await V(e.pmRoot,n.id,e.settings.locks.ttl_seconds,e.author,!!e.force,e.settings.governance.force_required_for_stale_lock,e.settings.locks.wait_ms);try{let o=[],{raw:i,document:s}=await yr(n,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames,warnings:o}),a=s.metadata.assignee?.trim(),c=s.metadata.claim_principal?.trim()||a,d=ls(e.author),u=mr(e.settings);if(a&&c!==d&&!e.force&&!rp(e.op,e.bypassAssigneeConflict)){if(u.ownership_enforcement==="strict")throw new v(`Item ${n.id} is assigned to ${a}. Use --force to override.`,b.CONFLICT);u.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 op(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 ip(e){if(!e.skipItemWrite){if(e.effectiveTargetItemPath!==e.originalItemPath){await X(e.originalItemPath,e.originalRaw),await vt.rm(e.effectiveTargetItemPath,{force:!0});return}await X(e.originalItemPath,e.originalRaw)}}async function xc(e){fn(e.op);let t=await Oc({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}),u=await e.mutate(d);if(e.skipNoop===!0&&u.changedFields.length===0)return{item:c.metadata,body:c.body,changedFields:[],warnings:[...s,...u.warnings??[]]};let f=e.resolveHistoryContext?.();d.metadata.updated_at=we();let m=ne(d,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),p=await ko({pmRoot:e.pmRoot,settings:e.settings,operation:e.op,author:e.author,before:c,after:m});await kr({pm_root:e.pmRoot,operation:e.op,before:c,after:m,changed_fields:u.changedFields,sdk:Cc({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:n})});let _=await ri({pmRoot:e.pmRoot,settings:e.settings,itemId:r.id,commandLabel:e.op}),y="toon",g=Os(m,{format:y,schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),S=br(e.pmRoot,m.metadata.type,r.id,y,n),R=de(e.pmRoot,r.id),D=await Ct("item_store_write",{op:e.op,pm_root:e.pmRoot,item_id:r.id,source_item_path:r.itemPath,target_item_path:S,history_path:R,item_format:y,before:c,after:m,contents:g}),{effectiveTargetItemPath:$,effectiveSerializedAfter:x,skipItemWrite:G}=op(D,S,g),W=await Do(e.pmRoot,e.author),Q=[];try{G||await X($,x),!G&&$!==r.itemPath&&await vt.rm(r.itemPath);let ee=dt({nowIso:m.metadata.updated_at,author:e.author,op:e.op,before:c,after:m,message:e.message,context:p.decisions.length===0?f:{...f,workflow_policies:p.decisions}});try{await lt(R,ee)}catch(ye){throw await ip({skipItemWrite:G,effectiveTargetItemPath:$,originalItemPath:r.itemPath,originalRaw:o}),ye}G||(Q=await No({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:n,schema:e.settings.schema,itemPath:$,previousItemPath:r.itemPath,document:m}))}finally{await W()}let K=[...await fe({path:$,scope:"project",op:e.op,item_id:m.metadata.id,item_type:m.metadata.type,before:c,after:m,changed_fields:u.changedFields}),...await fe({path:R,scope:"project",op:`${e.op}:history`,item_id:m.metadata.id,item_type:m.metadata.type,before:c,after:m,changed_fields:u.changedFields})];return Er({id:m.metadata.id,op:e.op,item_type:m.metadata.type,previous_status:c.metadata.status,status:m.metadata.status,previous:ln(c.metadata,u.changedFields),current:ln(m.metadata,u.changedFields),changed_fields:u.changedFields}),{item:m.metadata,body:m.body,changedFields:u.changedFields,warnings:[...s,...u.warnings??[],...p.warnings,..._.warnings,...D.warnings,...Q,...K]}}finally{await a()}}async function Ow(e){return xc(e)}async function xw(e){return xc(e)}async function Rw(e){let t=await Oc({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=Sc(void 0),c=ne(o,{schema:e.settings.schema,extensionFieldNames:a}),d=await ko({pmRoot:e.pmRoot,settings:e.settings,operation:"delete",author:e.author,before:c,after:null,dryRun:e.dryRun});await kr({pm_root:e.pmRoot,operation:"delete",before:c,after:null,changed_fields:["deleted"],sdk:Cc({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:t.typeToFolder})});let u=await ri({pmRoot:e.pmRoot,settings:e.settings,itemId:n.id,commandLabel:"delete"}),f=we(),m=Je,p=dt({nowIso:f,author:e.author,op:"delete",before:c,after:m,message:e.message,context:d.decisions.length===0?void 0:{workflow_policies:d.decisions}}),_=de(e.pmRoot,n.id),y=await Ct("item_store_delete",{op:"delete",pm_root:e.pmRoot,item_id:n.id,item_path:n.itemPath,history_path:_,before:c}),g=n.itemPath,S=!1;if(y.handled&&typeof y.result=="object"&&y.result!==null){let x=y.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,...u.warnings,...y.warnings]};let R=await Do(e.pmRoot,e.author),D=[];try{S||await vt.rm(g);try{await lt(_,p)}catch(x){throw S||await X(g,r),x}S||(D=await No({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:t.typeToFolder,schema:e.settings.schema,itemPath:g,document:null}))}finally{await R()}let $=[...await fe({path:g,scope:"project",op:"delete",item_id:c.metadata.id,item_type:c.metadata.type,before:c,after:m,changed_fields:["deleted"]}),...await fe({path:_,scope:"project",op:"delete:history",item_id:c.metadata.id,item_type:c.metadata.type,before:c,after:m,changed_fields:["deleted"]})];return Er({id:c.metadata.id,op:"delete",item_type:c.metadata.type,previous_status:c.metadata.status,previous:ln(c.metadata,Object.keys(c.metadata)),changed_fields:["deleted"]}),{item:c.metadata,changedFields:["deleted"],warnings:[...i,...d.warnings,...u.warnings,...y.warnings,...D,...$]}}finally{await s()}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="5c8194ff-d877-51b8-bd54-d206f85a979c")}catch{}})();(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="8ed4af4c-40cf-5902-930b-78a4758871b2")}catch{}})();function sp(e,t){let n=e.trim().toLowerCase();if(n.length===0)return;let r=Math.floor(n.length/3);return t.map(o=>({candidate:o,distance:Qt(n,o.toLowerCase(),r)??Number.POSITIVE_INFINITY})).filter(({distance:o})=>Number.isFinite(o)).sort((o,i)=>o.distance!==i.distance?o.distance-i.distance:o.candidate.localeCompare(i.candidate))[0]?.candidate}function Rc(e){return["pm",...e].map(t=>/^[A-Za-z0-9_./:@=-]+$/u.test(t)?t:JSON.stringify(t)).join(" ")}function jw(e){let t=e.command_path.trim().replaceAll(/\s+/gu," "),n=e.token.trim(),r=n.length===0?"<empty>":n,o=[...new Set(e.allowed.map(m=>m.trim()))].filter(Boolean).sort((m,p)=>m.localeCompare(p));if(t.length===0||r.length===0||o.length===0)throw new TypeError("Unknown-subcommand contracts require a path, token, and allowed set");let i=t.split(" "),s=e.trailing_args??[],a=e.display_name??`pm ${t}`,c=e.token_kind??"subcommand",d=e.retry_command?void 0:sp(r,o),u=Rc([...i,r,...s]),f=e.retry_command??(d?Rc([...i,d,...s]):void 0);return new v(`Unknown ${a} ${c} "${r}". Allowed: ${o.join(", ")}${e.message_suffix??""}`,e.exit_code??b.USAGE,{code:"unknown_subcommand",reason:"unknown_positional_token",examples:[...f?[f]:[],...e.examples??[],`pm ${t} --help`],nextSteps:f?[`Retry with the suggested command: ${f}`]:["Choose one value from recovery.allowed_values."],recovery:{attempted_command:u,allowed_values:o,suggested_retry:f,fallback_candidates:e.fallback_candidates}})}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="2f2a7df8-9c95-5ed1-bd43-33dde57dd7f0")}catch{}})();var ap=["tree","graph","context"],cp=["none","repeated"],dp=["outgoing","incoming","both"],lp=32,up=200,fp=400,mp=16e3;function _p(e){let t=e?.trim().toLowerCase()??"tree";if(ap.includes(t))return t;throw new v(`Invalid --format value "${e}". Use "tree", "graph", or "context".`,b.USAGE)}function bt(e,t){if(e===void 0)return;let n=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(n)||n<1)throw new v(`Invalid --${t} value "${e}". Use a positive integer.`,b.USAGE);return n}function Dc(e){if(e===void 0)return;let t=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(t)||t<0)throw new v(`Invalid --max-depth value "${e}". Use a non-negative integer.`,b.USAGE);return t}function pp(e){let t=e?.trim().toLowerCase()??"none";if(cp.includes(t))return t;throw new v(`Invalid --collapse value "${e}". Use "none" or "repeated".`,b.USAGE)}function hp(e){let t=e?.trim().toLowerCase()??"both";if(dp.includes(t))return t;throw new v(`Invalid --direction value "${e}". Use "outgoing", "incoming", or "both".`,b.USAGE)}function yp(e,t=le()){if(e===void 0)return;let n=(Array.isArray(e)?e:[e]).flatMap(o=>o.split(",")).map(o=>o.trim()).filter(o=>o.length>0);if(n.length===0)return;let r=new Set;for(let o of n){let i=t.resolve(o);if(!i){let s=t.list().map(a=>a.kind).join(", ");throw new v(`Invalid --kind value "${o}". Registered kinds: ${s}.`,b.USAGE)}r.add(i.kind)}return[...r].sort()}function gp(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 vp(e){return{id:e.id,title:e.title,type:e.type,status:e.status,dependencies:gp(e.dependencies)}}function bp(e){return un(new TextEncoder().encode(JSON.stringify({...e,dependencies:void 0})).byteLength)}function wp(e,t,n,r,o,i,s,a,c){for(let d of t.dependencies){let u=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+u>=a.tokenBudget){e.truncated=!0,a.reasons.add("token_budget");break}a.edges+=1,a.estimatedTokens+=u,e.dependencies.push(Nc(d.id,n,r,o,i,s,a,c+1,d.kind))}}function Ep(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 Nc(e,t,n,r,o,i,s,a=0,c){let d=e.trim().toLowerCase(),u=t.get(d),f={id:u?.id??e,title:u?.title,type:u?.type,status:u?.status,via:c,missing:!u,cycle:n.has(d),dependencies:[]};if(s.nodes+=1,s.estimatedTokens+=bp(f),Ep(f,u,d,r,o,i,s,a))return f;o==="repeated"&&i.add(d);let m=new Set(n);return m.add(d),wp(f,u,t,m,r,o,i,s,a),f}function Ac(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 kp(e){let t=new Map,n=new Map,r=[e];for(;r.length>0;){let a=r.pop();t.set(a.id,Ac(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,Ac(t.get(c.id),{id:c.id,title:c.title,type:c.type,status:c.status,missing:c.missing}));let d=c.via??"related",u=`${a.id}::${c.id}::${d}`;n.has(u)||n.set(u,{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 u=a.to.localeCompare(c.to);return u!==0?u: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 Lc(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++],u=d.id.trim().toLowerCase();r.add(u);let f=t.get(u);if(!f){i.add(u);continue}if(!(n!==void 0&&d.depth>=n)&&!s.has(u)){s.add(u);for(let m of f.dependencies)o.add(`${u}::${m.id.trim().toLowerCase()}::${m.kind}`),a.push({id:m.id,depth:d.depth+1})}}return{node_count:r.size,edge_count:o.size,edge_basis:"deduplicated_directed",missing_count:i.size}}function Ip(e,t=le()){let n=Dc(e.maxDepth),r=bt(e.nodeLimit,"node-limit"),o=bt(e.edgeLimit,"edge-limit"),i=bt(e.tokenBudget,"token-budget"),s=yp(e.kind,t);return{direction:hp(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 Sp(e,t,n,r){return Ba(e.graph,t,e.details.map(o=>o.id===t&&r.length>0?{...o,evidence:r}:o),n)}function di(e,t,n,r){for(let o of n.slice(0,r)){let i=o?.trim();i&&e.push(`${t}:${i}`)}}async function Tp(e,t,n,r){let o=await hr(e,t,n.id_prefix,n.item_format,r);if(!o)return[];let{document:i}=await yr(o,{schema:n.schema}),s=i.metadata,a=s.files??[],c=s.tests??[],d=s.docs??[],u=[["files",a.length],["tests",c.length],["docs",d.length],["comments",(s.comments??[]).length],["notes",(s.notes??[]).length],["learnings",(s.learnings??[]).length]];if(u.every(([,m])=>m===0))return[];let f=[`linked:${u.map(([m,p])=>`${m}=${p}`).join(",")}`];return di(f,"file",a.map(m=>m.path),3),di(f,"test",c.map(m=>m.command??m.path),2),di(f,"doc",d.map(m=>m.path),2),f}function Cp(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 Op(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 Pc(e,t,n){let r;for(;;){let o=un(new TextEncoder().encode(Cr(Sr("deps",e),t)).byteLength);if(o===r)return o;n(o),r=o}}function xp(e){return e instanceof TypeError&&e.message.startsWith("Relationship context tokenBudget cannot fit ")}function Rp(e){try{return Sp(e.assembly,e.canonicalId,{...e.contextOptions,...e.internalTokenBudget===void 0?{}:{tokenBudget:e.internalTokenBudget}},e.rootEvidence)}catch(t){if(e.smallestResult!==void 0&&xp(t))return e.smallestResult;throw t}}function Ap(e){let{assembly:t,canonicalId:n,contextOptions:r,rootEvidence:o,summaryOnly:i,outputFormat:s,missingCount:a,missingReferences:c}=e,u=r.edgeLimit??40,f=r.tokenBudget,m,p;for(;;){let _=Rp({assembly:t,canonicalId:n,contextOptions:r,internalTokenBudget:f,rootEvidence:o,smallestResult:p});if("format"in _)return _;let y=_;m??=y.meta.tokenBudget,f??=m;let g=Cp({canonicalId:n,context:y,missingCount:a,missingReferences:c,referenceLimit:u,summaryOnly:i});if(p=g,i||(y.meta.tokenBudget=m,y.meta.usedTokens=Pc(wt(g,!1),s,D=>{y.meta.usedTokens=D}),y.meta.usedTokens<=m))return g;if(u>0){u-=1;continue}let S=f,R=S*m/y.meta.usedTokens;f=Math.min(S-1,Math.max(1,Math.floor(R*.9)))}}function Dp(e){let{assembly:t,canonicalId:n,options:r,rootEvidence:o,summaryOnly:i,outputFormat:s}=e,a=Ip(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(y=>t.missingIdSet.has(y.toLowerCase())),u=new Set(d.map(y=>y.toLowerCase())),f=t.graph.registry(),m=a.kinds?new Set(a.kinds.map(y=>f.require(y).kind)):void 0,p=new Set([n,...c.value]),_=[...t.dangling.active,...t.dangling.legacy_terminal].filter(y=>Op({row:y,missingReachableSet:u,packetIds:p,filteredKinds:m,registry:f}));return Ap({assembly:t,canonicalId:n,contextOptions:a,rootEvidence:o,summaryOnly:i,outputFormat:s,missingCount:d.length,missingReferences:_})}function Np(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 Lp(e,t,n,r,o,i,s){let a=o??lp,c=bt(n.nodeLimit,"node-limit")??up,d=bt(n.edgeLimit,"edge-limit")??fp,u=bt(n.tokenBudget,"token-budget")??mp,f={nodeLimit:c,edgeLimit:d,tokenBudget:u,nodes:0,edges:0,estimatedTokens:0,reasons:new Set},m=Nc(e,r,new Set,a,t==="graph"?"repeated":i,new Set,f),p=Lc(e,r,void 0),_;for(;;){let y=kp(m),g=f.reasons.size===0?void 0:{reasons:[...f.reasons].sort(),limits:{max_depth:a,node_limit:c,edge_limit:d,token_budget:u},estimated_tokens:0,total_node_count:p.node_count,total_edge_count:p.edge_count,omitted_node_count:Math.max(0,p.node_count-y.nodes.length),omitted_edge_count:Math.max(0,p.edge_count-y.edges.length)},S={id:e,format:t,node_count:y.nodes.length,edge_count:y.edges.length,edge_basis:"deduplicated_directed",missing_count:y.missing_ids.length,...g?{truncation:g}:{}};if(_=t==="tree"?{...S,tree:m}:{...S,graph:y},(_.truncation===void 0?un(new TextEncoder().encode(Cr(Sr("deps",wt(_,!1)),s)).byteLength):Pc(wt(_,!1),s,D=>{_.truncation.estimated_tokens=D}))<=u)return _;if(!Np(m))return f.reasons.add("token_budget"),_;f.reasons.add("token_budget")}}function wt(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 nE(e,t,n){let r=ki(process.cwd(),n.path);await ai(r);let o=_p(t.format),i=Dc(t.maxDepth),s=pp(t.collapse);Mi(t.summary===!0,t.full===!0,"--summary");let a=t.summary===!0,c=await wc(r),d=sn(c,ue()),u=await Tc(r,c.item_format,d.type_to_folder,void 0,c.schema),f=dn(c.schema),m=new Map(u.map(_=>[_.id.trim().toLowerCase(),vp(_)])),p=Mo(u,_=>he(_,f));for(let _ of[...p.active,...p.legacy_terminal]){let y=m.get(_.holder_id.trim().toLowerCase()),g=_.kind.trim().toLowerCase();y&&!y.dependencies.some(S=>S.id.trim().toLowerCase()===_.target_id.trim().toLowerCase()&&S.kind===g)&&y.dependencies.push({id:_.target_id,kind:g})}if(!m.has(e.trim().toLowerCase()))throw new v(`Item ${e} not found`,b.NOT_FOUND);if(o==="context"){let _=m.get(e.trim().toLowerCase()).id,y=a?[]:await Tp(r,_,c,d.type_to_folder),g=D=>he(D,f),S=ce(),R=Ua().lookup(r,Ha(u,g,S),()=>or(u,g,S));return wt(Dp({assembly:R.assembly,canonicalId:_,options:t,rootEvidence:y,summaryOnly:a,outputFormat:n.json===!0?"json":"toon"}),a,R.assembly.legacyAliasCounts)}return a?wt({id:e,format:o,...Lc(e,m,i)},!0,Object.fromEntries(Object.entries(or(u,_=>he(_,f)).legacyAliasCounts))):wt(Lp(e,o,t,m,i,s,n.json===!0?"json":"toon"),!1,Object.fromEntries(Object.entries(or(u,_=>he(_,f)).legacyAliasCounts)))}export{Me as a,xr as b,Mp as c,jp as d,Ki as e,Lr as f,qp as g,Gp as h,Kp as i,Xp as j,Yp as k,Jp as l,Br as m,Wr as n,ns as o,ah as p,ch as q,dh as r,lh as s,uh as t,fh as u,Kr as v,as as w,mh as x,_h as y,ph as z,pd as A,ls as B,us as C,gh as D,yd as E,fs as F,He as G,Ie as H,ys as I,xt as J,Ah as K,Dh as L,tt as M,ms as N,bh as O,_s as P,gd as Q,wh as R,gn as S,nt as T,he as U,bn as V,kn as W,In as X,Os as Y,ne as Z,Wl as _,Te as $,st as aa,uu as ba,gy as ca,vy as da,by as ea,vu as fa,Ln as ga,Be as ha,Mt as ia,Wy as ja,ho as ka,jn as la,Ys as ma,Vy as na,Zs as oa,qy as pa,dt as qa,lt as ra,xs as sa,ut as ta,Fn as ua,ng as va,go as wa,$n as xa,rg as ya,og as za,oa as Aa,Ve as Ba,aa as Ca,Oe as Da,Wu as Ea,ig as Fa,sg as Ga,Ft as Ha,bo as Ia,Tg as Ja,Cg as Ka,ma as La,pa as Ma,Og as Na,tb as Oa,Ae as Pa,mr as Qa,bc as Ra,wc as Sa,gb as Ta,da as Ua,jt as Va,qe as Wa,mg as Xa,Jt as Ya,Ec as Za,ni as _a,kc as $a,Cb as ab,ef as bb,nf as cb,rf as db,of as eb,sf as fb,ko as gb,Bg as hb,ri as ib,W_ as jb,Xg as kb,Yg as lb,Jg as mb,Oa as nb,kf as ob,Do as pb,lv as qb,No as rb,tr as sb,gt as tb,ai as ub,hr as vb,yr as wb,Q_ as xb,Z_ as yb,Tc as zb,Cw as Ab,Cc as Bb,np as Cb,Ow as Db,xw as Eb,Rw as Fb,jw as Gb,Sv as Hb,Tv as Ib,um as Jb,ce as Kb,gv as Lb,rr as Mb,vv as Nb,dm as Ob,bv as Pb,qt as Qb,mm as Rb,pm as Sb,Mo as Tb,hm as Ub,Nv as Vb,or as Wb,Ha as Xb,jo as Yb,Ua as Zb,Fv as _b,Ba as $b,bt as ac,Dc as bc,hp as cc,yp as dc,nE as ec,zo as fc,Am as gc,Kt as hc,ar as ic,Va as jc,Dm as kc,Nm as lc,Lm as mc,jm as nc};
165
+ //# sourceMappingURL=chunk-P4BA7OX7.js.map