@unbrained/pm-cli 2026.9.4 → 2026.9.5

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 (190) hide show
  1. package/.agents/skills/HARNESS_COMPATIBILITY.md +1 -1
  2. package/.agents/skills/README.md +2 -2
  3. package/.agents/skills/pm-developer/SKILL.md +4 -1
  4. package/.agents/skills/pm-developer/references/COMMAND_PLAYBOOK.md +10 -0
  5. package/.agents/skills/pm-developer/references/GRAPH_AND_RELATIONSHIPS.md +3 -1
  6. package/.agents/skills/pm-extensions/SKILL.md +2 -2
  7. package/.agents/skills/pm-extensions/references/LIFECYCLE.md +3 -3
  8. package/.agents/skills/pm-extensions/references/TROUBLESHOOTING.md +3 -3
  9. package/.agents/skills/pm-user/SKILL.md +2 -0
  10. package/.agents/skills/pm-user/references/BACKLOG_SHAPING.md +5 -0
  11. package/.agents/skills/pm-user/references/WORKFLOWS.md +20 -5
  12. package/.claude-plugin/marketplace.json +2 -2
  13. package/CHANGELOG.md +26 -1
  14. package/dist/cli/commander-usage.d.ts +2 -0
  15. package/dist/cli/commander-usage.js +15 -12
  16. package/dist/cli/help-json-payload.js +12 -7
  17. package/dist/cli/main.js +15 -6
  18. package/dist/cli/register-list-query.js +4 -2
  19. package/dist/cli/register-mutation.js +4 -2
  20. package/dist/cli/register-operations.js +6 -2
  21. package/dist/cli-bundle/bundle-manifest.json +153 -153
  22. package/dist/cli-bundle/chunks/{chunk-RI4XNOYS.js → chunk-3HBDTJRK.js} +2 -2
  23. package/dist/cli-bundle/chunks/chunk-66VPKFP2.js +5 -0
  24. package/dist/cli-bundle/chunks/{chunk-I2AS367G.js → chunk-HUAQITVW.js} +2 -2
  25. package/dist/cli-bundle/chunks/{chunk-HI6BHPCU.js → chunk-IBYREGSP.js} +2 -2
  26. package/dist/cli-bundle/chunks/chunk-LUI4E32I.js +231 -0
  27. package/dist/cli-bundle/chunks/{chunk-YW4QK2G7.js → chunk-QPZHQY2O.js} +2 -2
  28. package/dist/cli-bundle/chunks/{chunk-X6CMGV6L.js → chunk-SF6SM6U5.js} +2 -2
  29. package/dist/cli-bundle/chunks/chunk-SVK5Y64D.js +40 -0
  30. package/dist/cli-bundle/chunks/chunk-V5GBD5KV.js +9 -0
  31. package/dist/cli-bundle/chunks/{chunk-V72UV7QS.js → chunk-WWAEGW4V.js} +57 -57
  32. package/dist/cli-bundle/chunks/{chunk-A24WAVE6.js → chunk-ZRAQS3UA.js} +2 -2
  33. package/dist/cli-bundle/chunks/{register-list-query-Z5YYSJJG.js → register-list-query-AYKGODWT.js} +3 -3
  34. package/dist/cli-bundle/chunks/{register-mutation-ELSP6I4I.js → register-mutation-YZYG53SQ.js} +4 -4
  35. package/dist/cli-bundle/chunks/register-operations-KFSCC7QV.js +2 -0
  36. package/dist/cli-bundle/chunks/{register-setup-E2AE72QG.js → register-setup-UJCRVGBG.js} +2 -2
  37. package/dist/cli-bundle/focused-chunks/chunk-24IG6ONG.js +2 -0
  38. package/dist/cli-bundle/focused-chunks/{chunk-53IHPICX.js → chunk-3ASU6WGI.js} +2 -2
  39. package/dist/cli-bundle/focused-chunks/chunk-3ITLIBKS.js +56 -0
  40. package/dist/cli-bundle/focused-chunks/chunk-3NQD5YDG.js +2 -0
  41. package/dist/cli-bundle/focused-chunks/{chunk-7N2TV7WZ.js → chunk-4OSHLNUE.js} +2 -2
  42. package/dist/cli-bundle/focused-chunks/chunk-65N6JHAN.js +2 -0
  43. package/dist/cli-bundle/focused-chunks/{chunk-AJR3OP2E.js → chunk-B2TTQGFG.js} +2 -2
  44. package/dist/cli-bundle/focused-chunks/chunk-GUBM3RGY.js +20 -0
  45. package/dist/cli-bundle/focused-chunks/{chunk-25UJBH4M.js → chunk-H5FOGAVD.js} +2 -2
  46. package/dist/cli-bundle/focused-chunks/chunk-JX3RCVCX.js +2 -0
  47. package/dist/cli-bundle/focused-chunks/{chunk-6PWPQKDN.js → chunk-KWWCBWFO.js} +2 -2
  48. package/dist/cli-bundle/focused-chunks/chunk-MV752SUC.js +12 -0
  49. package/dist/cli-bundle/focused-chunks/chunk-PKIPMCFS.js +6 -0
  50. package/dist/cli-bundle/focused-chunks/{chunk-3646BZ4W.js → chunk-QL66QNWG.js} +2 -2
  51. package/dist/cli-bundle/focused-chunks/chunk-RJMR2JIF.js +9 -0
  52. package/dist/cli-bundle/focused-chunks/chunk-WIUPWIZR.js +177 -0
  53. package/dist/cli-bundle/focused-chunks/{chunk-NBMJD6MK.js → chunk-WOCIPMW7.js} +2 -2
  54. package/dist/cli-bundle/focused-chunks/{chunk-MHKUIPJW.js → chunk-YEF5PQQ2.js} +2 -2
  55. package/dist/cli-bundle/main.js +22 -15
  56. package/dist/cli-bundle/sdk-authoring.js +1 -1
  57. package/dist/cli-bundle/sdk-contracts.js +1 -1
  58. package/dist/cli-bundle/sdk-core.js +29 -29
  59. package/dist/cli-bundle/sdk-governance.js +1 -1
  60. package/dist/cli-bundle/sdk-graph.js +1 -1
  61. package/dist/cli-bundle/sdk-merge.js +42 -39
  62. package/dist/cli-bundle/sdk-query.js +1 -1
  63. package/dist/cli-bundle/sdk-runtime.js +1 -1
  64. package/dist/cli-bundle/sdk-testing.js +1 -1
  65. package/dist/cli-bundle/sdk.js +8 -8
  66. package/dist/core/extensions/extension-types.d.ts +2 -0
  67. package/dist/core/extensions/extension-types.js +2 -2
  68. package/dist/core/history/drift-scan.d.ts +5 -0
  69. package/dist/core/history/drift-scan.js +16 -6
  70. package/dist/core/history/event-classification.d.ts +1 -1
  71. package/dist/core/history/event-classification.js +3 -2
  72. package/dist/core/history/history.js +37 -5
  73. package/dist/core/history/identity.d.ts +15 -0
  74. package/dist/core/history/identity.js +31 -0
  75. package/dist/core/history/projection.js +50 -17
  76. package/dist/core/history/read.js +6 -3
  77. package/dist/core/history/replay.d.ts +1 -2
  78. package/dist/core/history/replay.js +4 -4
  79. package/dist/core/history/version-address.d.ts +13 -0
  80. package/dist/core/history/version-address.js +33 -0
  81. package/dist/core/item/actionability.d.ts +21 -1
  82. package/dist/core/item/actionability.js +45 -10
  83. package/dist/core/item/id.js +8 -4
  84. package/dist/core/item/item-type-definition.d.ts +2 -0
  85. package/dist/core/item/item-type-definition.js +9 -2
  86. package/dist/core/item/type-registry.d.ts +5 -1
  87. package/dist/core/item/type-registry.js +9 -4
  88. package/dist/core/shared/errors.d.ts +8 -0
  89. package/dist/core/shared/errors.js +2 -2
  90. package/dist/core/store/item-store.d.ts +14 -0
  91. package/dist/core/store/item-store.js +48 -10
  92. package/dist/core/store/settings-validator.js +3 -2
  93. package/dist/sdk/actionability.d.ts +1 -1
  94. package/dist/sdk/actionability.js +3 -3
  95. package/dist/sdk/cli-contracts/command-aliases.js +11 -2
  96. package/dist/sdk/cli-contracts/completeness.js +4 -3
  97. package/dist/sdk/cli-contracts/flag-contracts.js +29 -5
  98. package/dist/sdk/cli-contracts/flag-lexicon-contracts.js +19 -12
  99. package/dist/sdk/cli-contracts/tool-parameter-tables.js +14 -2
  100. package/dist/sdk/cli-contracts/tool-schema.d.ts +2 -2
  101. package/dist/sdk/cli-contracts/tool-schema.js +19 -6
  102. package/dist/sdk/context-intent-contracts.js +3 -3
  103. package/dist/sdk/context-usage.js +9 -11
  104. package/dist/sdk/define.d.ts +1 -1
  105. package/dist/sdk/define.js +2 -2
  106. package/dist/sdk/generated/generated-error-code-catalog-part-1.js +98 -50
  107. package/dist/sdk/generated/generated-error-code-catalog-part-2.js +50 -2
  108. package/dist/sdk/governance/validate-history-drift.js +16 -5
  109. package/dist/sdk/guide-topics.js +116 -2
  110. package/dist/sdk/history/salvage.d.ts +35 -0
  111. package/dist/sdk/history/salvage.js +248 -0
  112. package/dist/sdk/history-compact.js +32 -37
  113. package/dist/sdk/history-read.d.ts +3 -2
  114. package/dist/sdk/history-read.js +6 -3
  115. package/dist/sdk/history-repair.d.ts +5 -0
  116. package/dist/sdk/history-repair.js +14 -2
  117. package/dist/sdk/lifecycle/claim.d.ts +4 -0
  118. package/dist/sdk/lifecycle/claim.js +9 -3
  119. package/dist/sdk/lifecycle/restore.d.ts +1 -0
  120. package/dist/sdk/lifecycle/restore.js +19 -7
  121. package/dist/sdk/output-projection.d.ts +3 -1
  122. package/dist/sdk/output-projection.js +11 -3
  123. package/dist/sdk/public-surface.json +1 -0
  124. package/dist/sdk/query/context.d.ts +9 -0
  125. package/dist/sdk/query/context.js +33 -21
  126. package/dist/sdk/query/get.d.ts +2 -2
  127. package/dist/sdk/query/get.js +4 -3
  128. package/dist/sdk/query/history.d.ts +11 -0
  129. package/dist/sdk/query/history.js +34 -10
  130. package/dist/sdk/query/next.d.ts +15 -1
  131. package/dist/sdk/query/next.js +43 -20
  132. package/dist/sdk/query.d.ts +1 -0
  133. package/dist/sdk/query.js +3 -2
  134. package/dist/sdk/runtime-primitives.d.ts +1 -1
  135. package/dist/sdk/runtime-primitives.js +3 -3
  136. package/dist/types.d.ts +2 -0
  137. package/dist/types.js +2 -2
  138. package/docs/AGENT_GUIDE.md +36 -0
  139. package/docs/HISTORY_RECOVERY.md +146 -0
  140. package/docs/README.md +1 -0
  141. package/docs/RELEASING.md +25 -11
  142. package/docs/SDK_CONTEXT_TRUTH_CONTRACTS.md +24 -1
  143. package/docs/SDK_EXECUTION_CONTRACTS.md +105 -0
  144. package/docs/TESTING.md +5 -0
  145. package/docs/agent-task-token-baseline.json +17 -17
  146. package/docs/agent-task-transcripts.json +2 -1
  147. package/docs/generated/FLAG_LEXICON_BUDGETS.md +10 -10
  148. package/docs/generated/REFUSAL_CLOSURE_CENSUS.md +11 -3
  149. package/marketplace.json +2 -2
  150. package/package.json +4 -5
  151. package/packages/pm-beads/package.json +1 -1
  152. package/packages/pm-calendar/package.json +1 -1
  153. package/packages/pm-command-kit/package.json +1 -1
  154. package/packages/pm-digital-twin/package.json +1 -1
  155. package/packages/pm-governance-audit/package.json +1 -1
  156. package/packages/pm-guide-shell/package.json +1 -1
  157. package/packages/pm-kanban/package.json +1 -1
  158. package/packages/pm-lifecycle-hooks/package.json +1 -1
  159. package/packages/pm-linked-test-adapters/package.json +1 -1
  160. package/packages/pm-search-advanced/package.json +1 -1
  161. package/packages/pm-templates/package.json +1 -1
  162. package/packages/pm-todos/package.json +1 -1
  163. package/packages/pm-vcs/package.json +1 -1
  164. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  165. package/plugins/pm-claude/skills/pm-audit/SKILL.md +2 -2
  166. package/plugins/pm-claude/skills/pm-developer/SKILL.md +2 -2
  167. package/plugins/pm-claude/skills/pm-planner/SKILL.md +2 -2
  168. package/plugins/pm-claude/skills/pm-release/SKILL.md +2 -2
  169. package/plugins/pm-claude/skills/pm-workflow/SKILL.md +3 -3
  170. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  171. package/plugins/pm-codex/skills/pm-auditor/SKILL.md +2 -2
  172. package/plugins/pm-codex/skills/pm-native/SKILL.md +3 -4
  173. package/plugins/pm-codex/skills/pm-release/SKILL.md +2 -2
  174. package/scripts/finalize-build.mjs +13 -1
  175. package/dist/cli-bundle/chunks/chunk-6XSKPNCF.js +0 -230
  176. package/dist/cli-bundle/chunks/chunk-OGBVU67G.js +0 -5
  177. package/dist/cli-bundle/chunks/chunk-TXW6VL33.js +0 -38
  178. package/dist/cli-bundle/chunks/chunk-VGLHECAP.js +0 -9
  179. package/dist/cli-bundle/chunks/register-operations-OH7R3ZT4.js +0 -2
  180. package/dist/cli-bundle/focused-chunks/chunk-4YRAVI43.js +0 -12
  181. package/dist/cli-bundle/focused-chunks/chunk-5P4HVOWG.js +0 -176
  182. package/dist/cli-bundle/focused-chunks/chunk-636VVQ7F.js +0 -54
  183. package/dist/cli-bundle/focused-chunks/chunk-B3A6MJYE.js +0 -2
  184. package/dist/cli-bundle/focused-chunks/chunk-BFDDJ2T2.js +0 -2
  185. package/dist/cli-bundle/focused-chunks/chunk-BHUIRZWQ.js +0 -9
  186. package/dist/cli-bundle/focused-chunks/chunk-JADHHPY6.js +0 -6
  187. package/dist/cli-bundle/focused-chunks/chunk-NSKBLHVI.js +0 -20
  188. package/dist/cli-bundle/focused-chunks/chunk-P2GOAOQN.js +0 -2
  189. package/dist/cli-bundle/focused-chunks/chunk-YARWJM2B.js +0 -2
  190. package/sdk/public-surface.json +0 -33034
@@ -1,176 +0,0 @@
1
- import{b as Ht,f as ut,h as ft,i as _t,k as Ho,l as Uo,m as Vo,n as Wo,o as Bo,p as qo}from"./chunk-AJR3OP2E.js";import{A as mt,B as Xo,C as Ko,D as le,E as re,F as Go,G as $e,H as oe,K as Yo,L as Jo,M as K,r as ke,s as er,t as Wt,u as ne,v as tr,w as de,x as nr}from"./chunk-BHUIRZWQ.js";import{$ as I,A as Ao,Ea as Vt,F as $t,G as zt,H as Yn,Ia as dt,J as Ro,Ja as Qn,Ka as Zn,Kb as zo,La as lt,Na as Lo,P as se,Ta as Mo,V as ve,W as No,Z as b,Za as Fo,_ as Le,aa as x,cb as $o,i as Pt,ia as Do,ja as Me,ka as Jn,la as ae,ma as ce,na as B,nb as j,oa as Ut,ob as Fe,pb as J,q as Lt,qb as k,r as xo,s as Oo,t as To,ta as jo,u as Co,y as Mt,z as Ft,za as Po}from"./chunk-JADHHPY6.js";import{AsyncLocalStorage as Na}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]="16109ee9-e684-5d25-a5f4-30a6c4f62bd5")}catch{}})();var rr=new Na,Qo=/^[A-Za-z0-9](?:[A-Za-z0-9._:-]{0,127})$/u;function Bt(e,t){let n=typeof e=="string"?e.trim():"";return n.length>0?n.slice(0,t):void 0}function Se(e,t){if(e===void 0)return;let n=typeof e=="object"&&e!==null?e:{},r=Bt(n.id,128),o=Bt(n.parent_id,128);if(r===void 0||!Qo.test(r)||o!==void 0&&!Qo.test(o)){if(t)throw new Error("Agent episode ids must be 1-128 letters, digits, dots, underscores, colons, or hyphens.");return}let i=Bt(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=Bt(r,256);/^[a-z][a-z0-9_-]{0,63}$/u.test(o)&&i!==void 0&&(t[o]=i)}return t}function Da(e,t,n){let r=rr.getStore(),o=ze({role:t.PM_AGENT_SESSION_ROLE,topic:t.PM_AGENT_SESSION_TOPIC}),i=Se(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=Se(e?.episode,!1)??Se(n,!1)??i??Se(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 or(e,t){return Da(e.session_context,t,e.client_info?.episode)??{}}function M_(e,t){let n=rr.getStore(),r=Se(e.episode,!0),o=Se(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 rr.run({...Object.keys(s).length===0?{}:{provenance:s},...i===void 0?o===void 0?{}:{episode:o}:{episode:i}},t)}function F_(e){let t=ze(e.provenance),n=Se(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 hr}from"node:async_hooks";import{createHash as Fa}from"node:crypto";import V from"node:fs";import si from"node:os";import Oe from"node:path";import{createHash as Zo}from"node:crypto";import{existsSync as ir,promises as ei,readFileSync as ja}from"node:fs";import ee 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]="424b9eb3-6b34-5ab0-a3f5-db61fbca12cf")}catch{}})();var Pa="session.json";function sr(e,t){return typeof e=="string"&&e.length>0&&e.length<=t}function ti(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=sr(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=>sr(c,128)),a=t.focused_item_id===void 0||sr(t.focused_item_id,128);if([n,r,o,i,s,a,t.rule_version==="v2"].every(Boolean))return t}function La(e){if(e===null||typeof e!="object"||Array.isArray(e))return;let t=Object.entries(e).slice(0,128).flatMap(([n,r])=>{let o=ti(r);return o&&n.length<=128?[[n,o]]:[]});return t.length>0?Object.fromEntries(t):void 0}function ar(e){return ee.join(Lo(e),Pa)}async function qt(e){try{let t=await ei.readFile(ar(e),"utf8"),n=JSON.parse(t);if(n===null||typeof n!="object"||Array.isArray(n))return{};let r=n,o=r.focused_item,i=La(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 cr(e,t){let n=ar(e);await ei.mkdir(ee.dirname(n),{recursive:!0}),await B(n,JSON.stringify(t))}function dr(e){return/#([a-f0-9]{24})$/u.exec(e.trim())?.[1]??`author-${Zo("sha256").update(e).digest("hex").slice(0,24)}`}function lr(e){return[...new Set(e.map(t=>t.trim()).filter(Boolean))].slice(0,32).map(t=>t.slice(0,128))}function ur(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)}+${Zo("sha256").update(t.join("\0")).digest("hex").slice(0,12)}`}async function fr(e,t,n){let r=await qt(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 cr(e,s)}async function B_(e){let t=dr(e.principal);await fr(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??ur(r),confidence:o?"high":"medium",rule_version:"v2",evidence:lr([...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 q_(e){let t=dr(e.principal);await fr(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??ur(r),confidence:o?"high":"medium",evidence:lr([...r.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],`release:${e.itemId}`]),active_item_ids:r}})}async function X_(e){let t=dr(e.principal);await fr(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??ur(r),confidence:o?"high":"medium",rule_version:"v2",evidence:lr([...r.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],...(e.lineageIds??[]).map(i=>`lineage:${i}`)]),active_item_ids:r,...o?{focused_item_id:o}:{}}})}function Ma(e,t){let n=t.PM_PATH?.trim();if(n){let o=ee.resolve(e,n);if(ir(ee.join(o,"settings.json")))return o;let i=ee.join(o,".agents","pm");if(ir(ee.join(i,"settings.json")))return i}let r=ee.resolve(e);for(let o=0;o<32;o+=1){let i=ee.join(r,".agents","pm");if(ir(ee.join(i,"settings.json")))return i;let s=ee.dirname(r);if(s===r)break;r=s}}function ni(e){if(!e.key)return;let t=Ma(e.cwd,e.env);if(t)try{let n=JSON.parse(ja(ar(t),"utf8"));return ti(n.semantic_attribution?.[e.key])}catch{return}}async function K_(e){return(await qt(e)).focused_item}async function G_(e,t){let n=await qt(e);await cr(e,{...n,focused_item:t})}async function Y_(e){let n={...await qt(e)};delete n.focused_item,await cr(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]="dfbf4eb8-1f02-5880-a70a-0e7ed9b9784a")}catch{}})();var gr=["model","effort","role","topic","version"],Gt=new hr,ai=new hr,Yt=new hr,br=[{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:[]}],ci=Object.freeze({max_bytes:1048576,max_lines:4096,network_access:!1,subprocess_access:!1}),$a=Object.freeze({...ci,max_bytes:4194304}),_r=/^[a-z0-9]+(?:-[a-z0-9]+)*$/u;function za(e){let t=fe(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"?$a:ci,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 di=Object.freeze(br.filter(e=>e.harness!=="ci").map(za).sort((e,t)=>e.harness.localeCompare(t.harness))),xe=new Map,He=new Map;function R(e){let t=typeof e=="string"?e.trim():void 0;return t&&t.length>0?t:void 0}function ue(e){return[...new Set((e??[]).slice(0,64).map(t=>t.trim()).filter(t=>t.length>0).map(t=>t.slice(0,128)))]}function fe(e){let t=e.harness.trim().toLowerCase();if(!_r.test(t))throw new Error(`Invalid harness signal descriptor namespace: ${e.harness}`);return{harness:t,environment_keys:ue(e.environment_keys),model_environment_keys:ue(e.model_environment_keys),session_environment_keys:ue(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),ue(r)]).filter(([n])=>_r.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"&&_r.test(n[0])&&(n[1]==="ai_agent_version"||n[1]==="claude_session_file"||n[1]==="codex_session_file"))),provenance_unavailable_dimensions:ue(e.provenance_unavailable_dimensions).map(n=>n.toLowerCase()),argv_markers:ue(e.argv_markers).map(n=>n.toLowerCase()),client_names:ue(e.client_names).map(n=>n.toLowerCase())}}var li=br.map(fe);function Ha(e,t){return JSON.stringify(e)===JSON.stringify(t)}function Kt(e,t){return e.toLowerCase().slice(0,512).split(/[/\\\s:=]+/u).filter(r=>r.length>0).includes(t)||e.trim().toLowerCase()===t}function wr(e=[]){let t=new Map(br.filter(o=>o.harness!=="ci").map(o=>[o.harness,fe(o)]));for(let{adapter:o}of xe.values())t.set(o.harness,fe(o.descriptor));let n=[...t.values(),...li.filter(o=>o.harness==="ci"),...[...He.values()].map(o=>o.descriptor),...Yt.getStore()?.descriptors??[],...e.map(fe)],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 Er(e,t){for(let n of t??[]){let r=R(e[n]);if(r)return r.slice(0,256)}}function Ua(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 ui(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 R(r[o+1])?.slice(0,256);let s=n.find(a=>i.startsWith(`${a}=`));if(s)return R(i.slice(s.length+1))?.slice(0,256)}}var Va=new Set(["implementation","implementer","investigator","orchestrator","planner","release-operator","reviewer"]);function Ie(e,t){if(e!=="role"||t===void 0)return t;let n=t.trim().toLowerCase().replaceAll(/[_\s]+/gu,"-");return Va.has(n)?n:void 0}function mr(e,t){return R(e?.[t])?.slice(0,256)}var Wa=1048576,yr=4194304,Xt=new Map,ri=Object.freeze({}),pr=new Map,oi=Object.freeze({});function ii(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:void 0}function Ba(e){let t;try{t=JSON.parse(e)}catch{return oi}let n=ii(t);if(!n)return oi;let r=[{value:n,depth:0}],o=0,i,s;for(;r.length>0&&o<64;){let a=r.shift();if(o+=1,i??=R(a.value.model)?.slice(0,256),s??=R(a.value.version)?.slice(0,256),i&&s)break;if(!(a.depth>=4))for(let c of Object.values(a.value)){let d=ii(c);d&&r.push({value:d,depth:a.depth+1})}}return Object.freeze({model:i,version:s})}function fi(e){try{return V.lstatSync(e).isFile()?"available":"missing"}catch(t){return Jn(t)?"missing":"failed"}}function qa(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=Oe.join(e,o.name,`${t}.jsonl`);return{candidate:i,status:fi(i)}})}catch(o){return{status:Jn(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 _i(e,t){let n=R(t.CLAUDE_CODE_SESSION_ID);if(!n||!/^[A-Za-z0-9_-]{1,128}$/u.test(n))return{status:"unavailable"};let o=Oe.resolve(e.cwd??process.cwd()).replaceAll(/[^A-Za-z0-9-]/gu,"-"),i=Oe.join(e.home_dir??si.homedir(),".claude","projects"),s=Oe.join(i,o,`${n}.jsonl`),a=R(e.session_file),c=a&&Oe.basename(a)===`${n}.jsonl`?a:void 0;for(let d of[c,s]){if(!d)continue;let u=fi(d);if(u==="available")return{status:u,path:d};if(u==="failed")return{status:u}}return qa(i,n)}function Xa(e,t,n){let r=_i(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=pr.get(s);if(a)return a[e];let c=Math.min(i.size,Wa),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 p=Buffer.alloc(u);u>0&&V.readSync(o,p,0,u,i.size-u);let y={},_=i.size<=c?Buffer.concat([f,p]).toString("utf8").split(`
2
- `):[...f.toString("utf8").split(`
3
- `).slice(0,4096),...p.toString("utf8").split(`
4
- `).slice(-4096)];for(let v of _){if(v.length===0||v.length>262144)continue;let C=Ba(v);if(y.model??=C.model,y.version??=C.version,y.model&&y.version)break}let E=Object.freeze(y);return pr.clear(),pr.set(s,E),E[e]}finally{V.closeSync(o)}}catch{return}}function Ka(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=Oe.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 Ga(e){if(e<=yr)return[{offset:0,length:e}];let t=Math.floor(yr/2);return[{offset:e-t,length:t},{offset:0,length:t}]}function Ya(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??=R(o?.model)?.slice(0,256),e.effort??=R(o?.effort)?.slice(0,256)}function Ja(e,t){let n={},r=4096;for(let o of Ga(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(Ya(n,a),n.model&&n.effort)break;if(n.model&&n.effort||r<=0)break}return n}function Qa(e,t,n){let r=R(n.CODEX_THREAD_ID);if(!r||!/^[A-Za-z0-9_-]{1,128}$/u.test(r))return;let o=Oe.join(t.home_dir??si.homedir(),".codex","sessions"),i=`${o}\0${r}`,s=Xt.get(i);if(s)return s[e];let a=Ka(o,r);if(!a){Xt.set(i,ri);return}try{let c=V.openSync(a,"r");try{let d=V.fstatSync(c).size,u=Ja(c,d);return Xt.set(i,u),u[e]}finally{V.closeSync(c)}}catch{Xt.set(i,ri);return}}function Za(e,t,n,r){let o=Yt.getStore();if(!(t.probes_enabled!==!1&&o?.probesEnabled!==!1&&!["0","false","off"].includes(R(n.PM_AGENT_PROBES)?.toLowerCase()??"")))return;let s=r?.provenance_resolvers[e];if(s==="claude_session_file")return Xa(e,t,n);if(s==="codex_session_file")return Qa(e,t,n);if(s==="ai_agent_version"){let a=R(n.AI_AGENT);return!a||!r||!Kt(a,r.harness)?void 0:/(?:^|[@/\s])v?(\d+\.\d+(?:\.\d+)?(?:[-+][A-Za-z0-9.-]+)?)$/u.exec(a)?.[1]?.slice(0,256)}}function ec(e,t,n,r){if(e==="ai_agent_version"){let o=R(r.AI_AGENT);return o!==void 0&&Kt(o,t.harness)?"available":"unavailable"}return e==="codex_session_file"?R(r.CODEX_THREAD_ID)!==void 0?"available":"unavailable":_i(n,r).status}function vr(e){return e||(ai.getStore()??{env:process.env,argv:process.argv})}function tc(e,t,n,r){let o=e.environment_keys.some(a=>R(t[a])!==void 0),i=e.argv_markers.some(a=>n.some(c=>{let d=c.replaceAll("\\","/");return Kt(d.slice(d.lastIndexOf("/")+1),a)})),s=e.client_names.some(a=>r===a||Kt(r,a));return o||i||s}function nc(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 rc(e){let t=e.find(([n])=>n!==void 0);return t?.[0]?{value:t[0],source:t[1]}:void 0}function oc(e,t,n,r,o,i){let s=`PM_AGENT_${e.toUpperCase().replaceAll("-","_")}`,a=new Set([...gr,...Object.keys(r?.provenance_environment_keys??{})]),c,d,u;a.has(e)&&(c=Ie(e,R(n[s])?.slice(0,256)),u=Ie(e,ui(t.argv??[],e)),d=Ie(e,Ua(t.argv??[],e)));let f={...r?.provenance_environment_keys,model:r?.model_environment_keys},p={...t.client_info?.provenance,model:t.client_info?.model},y=mr(o?.provenance,e),_=Ie(e,Er(n,f[e])),E=Ie(e,mr(p,e)),v=Ie(e,mr(t.provenance,e)),C=Za(e,t,n,r);return rc([[c,"override"],[y,"session"],[u,"argv"],[_,"environment"],[E,"mcp_client"],[v,"host"],[C,"probe"]])??nc(e,i)??(d?{value:d,source:"argv"}:void 0)}function ic(e,t){if(!(!e||!t))return Fa("sha256").update(`pm-agent-instance:v1\0${e}\0${t}`).digest("hex").slice(0,24)}function sc(e,t,n,r,o){let i=Object.keys(n?.provenance_environment_keys??{}),s=new Set([...gr,...i,...Object.keys(n?.provenance_resolvers??{}),...Object.keys(e.provenance??{}),...Object.keys(e.client_info?.provenance??{}),...Object.keys(r?.provenance??{})]),a={};for(let c of s){let d=oc(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 sm(e){let t=e.map(fe),n=new Map(li.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=He.get(i.harness);if(s&&!Ha(s.descriptor,i))throw new Error(`Harness signal descriptor collision for "${i.harness}"`);r.add(i.harness)}for(let i of t){let s=He.get(i.harness);He.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=He.get(i.harness);!s||s.registrations<=1?He.delete(i.harness):s.registrations-=1}}}}function ac(e){let t=fe(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=R(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>yr||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(ue(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 am(){let e=new Map(di.map(t=>[t.harness,t]));for(let{adapter:t}of xe.values())e.set(t.harness,t);return Object.freeze([...e.values()].sort((t,n)=>t.harness.localeCompare(n.harness)))}function cm(e){let t=e.map(ac),n=new Map(di.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=xe.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=xe.get(i.harness);xe.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=xe.get(i.harness);!s||s.registrations<=1?xe.delete(i.harness):s.registrations-=1}}}}function dm(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 lm(e,t){return ai.run(e,t)}function um(e,t,n={}){let r=e.map(fe);return wr(r),Yt.run({descriptors:r,probesEnabled:n.probesEnabled!==!1},t)}function kr(e){let t=vr(e),n=t.env??{},r=wr(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(_=>tc(_,n,o,i)),a=or(t,n),c=[Er(n,s?.session_environment_keys),R(t.client_info?.session)?.slice(0,256)].find(_=>_!==void 0),d=ic(s?.harness,c),u=ni({cwd:t.cwd??process.cwd(),env:n,key:d}),f=sc(t,n,s,a,u),p=f.model,y=[["harness",s?.harness],["model",p?.value],["model_source",p?.source],["session",c],["instance",d],["provenance",Object.keys(f).length>0?f:void 0],["episode",a.episode]];return Object.fromEntries(y.filter(_=>_[1]!==void 0))}function cc(e){return e==="unavailable"?{status:"unavailable",reason:"harness_unavailable"}:e==="missing"?{status:"unavailable",reason:"resolver_input_missing"}:{status:"failed",reason:"resolver_failed"}}function dc(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=ec(a,n,r,o);return{...cc(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 mi(e){let t=vr(e),n=kr(t),r=wr(t.descriptors).find(d=>d.harness===n.harness),o=t.env??{},i=t.probes_enabled!==!1&&Yt.getStore()?.probesEnabled!==!1&&!["0","false","off"].includes(R(o.PM_AGENT_PROBES)?.toLowerCase()??""),s=or(t,o),a=[o.PM_AGENT_ROLE,s.provenance?.role,Er(o,r?.provenance_environment_keys.role),t.client_info?.provenance?.role,t.provenance?.role,ui(t.argv??[],"role")].some(d=>{let u=R(d)?.slice(0,256);return u!==void 0&&Ie("role",u)===void 0}),c=Object.fromEntries(gr.map(d=>[d,dc(d,n,r,t,o,i,d==="role"&&a)]));return{...n,provenance_outcomes:c}}function fm(){return process.env.PM_AUTHOR}function _m(e){e===void 0?delete process.env.PM_AUTHOR:process.env.PM_AUTHOR=e}function mm(e){return kr(e).harness}function lc(e,t,n){let r=vr(n),o=kr(r);if(e!==void 0){let s=R(e);return s?{author:s,source:"asserted",...o}:{author:"unknown",source:"unknown",...o}}if(r.env?.PM_AUTHOR!==void 0){let s=R(r.env.PM_AUTHOR);return s?{author:s,source:"asserted",...o}:{author:"unknown",source:"unknown",...o}}let i=R(t);return i?{author:i,source:"configured",...o}:o.harness?{author:`harness:${o.harness}`,source:"detected",...o}:{author:"unknown",source:"unknown",...o}}function pi(e){let t=Gt.getStore();return t?.author===e?t.source:e.startsWith("harness:")?"detected":e==="unknown"?"unknown":"asserted"}function yi(e){let t=Gt.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 hi(e){let t=Gt.getStore();return t?.author===e&&t.source==="detected"&&t.instance?`${e}#${t.instance}`:e}function gi(e,t){let n=lc(e,t);return Gt.enterWith(n),n.author}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="77d3ebfa-789a-54cf-9d49-dbebab8d32ea")}catch{}})();var Ue=1,bi=1;function ym(e){let t=e.pm_format_version;return typeof t=="number"&&Number.isInteger(t)&&t>=Ue?t:Ue}function wi(e){if(!(typeof e!="number"||!Number.isInteger(e)||e<=Ue))return e}function uc(e,t=bi){return e<t?"outdated":e>t?"ahead":"current"}function hm(e,t=bi){let n=[],r=[];for(let o of e){let i=uc(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]="d7501aa2-d3d9-5fbe-a1c0-d4bc145f5563")}catch{}})();var fc={"in-progress":"in_progress",cancelled:"canceled"};function Jt(e,t){if(t){let o=Wo(e,t);if(o)return o}if(typeof e!="string")return;let n=e.trim().toLowerCase();if(!n)return;let r=fc[n]??n;if(Lt.includes(r))return r}function _c(e,t){return Jt(e,t)??e}function Em(e,t){return t.terminal_statuses.has(_c(e,t))}import{encode as Ic}from"@toon-format/toon";import{isDeepStrictEqual as Ii}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]="91a3969e-59b3-506e-9349-ca08e73a1228")}catch{}})();var mc=16;function Sr(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 pc(e){return[...new Set([qo(e),Sr(e.key),Sr(e.cli_flag),...e.cli_aliases.map(t=>Sr(t))])]}function ki(e,t){for(let n of pc(t)){if(!Object.hasOwn(e,n))continue;let r=e[n];if(r!==void 0)return r}}function Si(e){return Array.isArray(e)?e.flatMap(t=>Si(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 Ei(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 x(`${t} must be one of true|false|1|0|yes|no`,I.USAGE)}function vi(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 x(`${t} must be a number`,I.USAGE);return r}function yc(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 x(`${t} must be valid JSON ${n}`,I.USAGE)}function hc(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 gc(e,t,n){if(t.const!==void 0&&j(e)!==j(t.const))return`${n} must equal ${j(t.const)}`;if(t.enum!==void 0&&!t.enum.some(r=>j(r)===j(e)))return`${n} must be one of ${t.enum.map(r=>j(r)).join("|")}`;if(!hc(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"&&!Go(e))return`${n} must be an RFC 3339 date-time`}}function bc(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=Qt(i,t.items,`${n}[${o}]`,r+1);if(s)return s}}}function wc(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=Qt(s,a,`${n}.${i}`,r+1);if(c)return c}}function Qt(e,t,n,r=0){if(r>mc)return`${n} value schema exceeds maximum depth`;let o=gc(e,t,n);if(o)return o;let i=bc(e,t,n,r);if(i)return i;let s=wc(e,t,n,r);if(s)return s;if(!t.one_of)return;let a=0;for(let c of t.one_of)if(Qt(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 Te(e,t,n){if(!e.value_schema||t===void 0)return t;let r=Qt(t,e.value_schema,n);if(r)throw new x(r,I.USAGE);return t}function pt(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:Te(e,yc(i,r,e.type),r)}if(e.repeatable||e.type==="string_array"){let i=Si(t);return e.type==="number"?Te(e,i.map(s=>vi(s,r)),r):e.type==="boolean"?Te(e,i.map(s=>Ei(s,r)),r):Te(e,i,r)}let o=Array.isArray(t)?t[t.length-1]:t;if(o!==void 0)return e.type==="number"?Te(e,vi(o,r),r):e.type==="boolean"?Te(e,Ei(o,r),r):Te(e,typeof o=="string"?o:String(o),r)}function Ec(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 Tm(e,t,n){let r={},o=[];for(let i of t.command_to_fields.get("create")??[]){let s=ki(e,i);if(s===void 0){Ec(i,n)&&o.push(`--${i.cli_flag}`);continue}r[i.metadata_key]=pt(i,s)}return{values:r,missing_required_flags:[...new Set(o)].sort((i,s)=>i.localeCompare(s))}}function Cm(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=ki(e,s);a!==void 0&&(i.has(s.metadata_key)||(i.add(s.metadata_key),r[s.metadata_key]=pt(s,a)))}return r}import{decode as vc}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]="2840e12e-7444-5d36-9f54-5a56267bbb75")}catch{}})();function Ir(e){return{value:vc(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]="fedb7b50-6946-589d-b240-9f074e09e467")}catch{}})();var kc=/^\s*(<<<<<<<|=======|>>>>>>>)(?:\s.*)?$/;function Sc(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(kc);if(!i)continue;let s=i[1];n.push({line:r+1,marker:s,text:o})}return n}function Zt(e){return Sc(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]="051655a4-8ba7-5118-9758-d9ca377fa7e4")}catch{}})();var Cr=new Set(["schema","tracker","auto"]),Ti=new Set(["source","isolated","snapshot"]),xc=new Set(["legacy","local_mutation","local_source_ref","acknowledged","invalid_provenance","foreign_source_ref"]),Oc=new Set(["passed","failed","stopped","canceled"]),Tc=new Set(Ro);function Be(e){return e.replaceAll("\\","/")}function Ci(e){for(let t of e)if(t!==0)return t;return 0}function tn(e){for(let[t,n]of Object.entries(e))n===void 0&&delete e[t]}var Ai=["id","title","description","created_at","updated_at"],Cc=new Set(se);function Ri(e){if(e?.schema)return{statusRegistry:Vo(e.schema),fieldRegistry:Bo(e.schema),unknownFieldPolicy:e.schema.unknown_field_policy??"allow",extensionFieldNames:new Set(e.extensionFieldNames??[]),onWarning:e.onWarning}}function Ac(e,t){return e.required?e.required_types.length===0?!0:e.required_types.map(n=>n.toLowerCase()).includes(t.trim().toLowerCase()):!1}function _e(e){let t=e.match(/^([a-z_][\w.]*)\s/u)?.[1];throw new x(`Invalid item metadata: ${e}`,I.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 gt(e,t){throw new x(t,I.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 Ni(e){let t=new Set(Cc);for(let n of e.fieldRegistry?.definitions??[])t.add(n.metadata_key);for(let n of e.extensionFieldNames)t.add(n);return t}function w(e,t){e||_e(t)}function bt(e,t){return(typeof e!="object"||e===null||Array.isArray(e))&&_e(t),e}function xr(e,t){let n=e[t];w(typeof n=="string",`${t} must be a string`),w(re(n),`${t} must be a valid ISO timestamp`)}function xi(e,t,n){let r=e[t];r!==void 0&&w(typeof r=="number"&&Number.isInteger(r)&&r>=1,`${n} must be an integer >= 1`)}function Ar(e,t,n){let r=e[t];r!==void 0&&(w(typeof r=="string",`${n} must be a string`),w(re(r),`${n} must be a valid ISO timestamp`))}function Rc(e){if(e!==void 0){w(Array.isArray(e),"event.recurrence.by_weekday must be an array");for(let t of e){w(typeof t=="string","event.recurrence.by_weekday entries must be strings");let n=t.trim().toLowerCase();w(zt.includes(n),`event.recurrence.by_weekday entries must be one of: ${zt.join(", ")}`)}}}function Nc(e){if(e!==void 0){w(Array.isArray(e),"event.recurrence.by_month_day must be an array");for(let t of e)w(typeof t=="number"&&Number.isInteger(t)&&t>=1&&t<=31,"event.recurrence.by_month_day entries must be integers 1..31")}}function Dc(e){if(e!==void 0){w(Array.isArray(e),"event.recurrence.exdates must be an array");for(let t of e)w(typeof t=="string","event.recurrence.exdates entries must be strings"),w(re(t),"event.recurrence.exdates entries must be valid ISO timestamps")}}function jc(e){let t=bt(e,"event.recurrence must be an object");w(typeof t.freq=="string","event.recurrence.freq must be a string");let n=t.freq.trim().toLowerCase();w($t.includes(n),`event.recurrence.freq must be one of: ${$t.join(", ")}`),xi(t,"interval","event.recurrence.interval"),xi(t,"count","event.recurrence.count"),Ar(t,"until","event.recurrence.until"),Rc(t.by_weekday),Nc(t.by_month_day),Dc(t.exdates)}function Pc(e){for(let r of Ai)w(typeof e[r]=="string",`${r} is required and must be a string`);let t=e.type;w(typeof t=="string"&&t.trim().length>0,"type must be a non-empty string");let n=e.pm_format_version;return n!==void 0&&w(typeof n=="number"&&Number.isInteger(n)&&n>=Ue,`pm_format_version must be an integer >= ${Ue}`),t}function Lc(e,t){let n=e.status;w(typeof n=="string"&&n.trim().length>0,"status must be a non-empty string");let r=t?.statusRegistry,o=Jt(n,r),i=r?r.definitions.map(s=>s.id):[...Lt];w(o!==void 0,`status must be one of: ${i.join(", ")}`)}function Mc(e){let t=e.priority;w(typeof t=="number"&&Number.isInteger(t)&&[0,1,2,3,4].includes(t),"priority must be an integer 0..4");let n=e.tags;w(Array.isArray(n),"tags must be an array");for(let r of n)w(typeof r=="string","tags entries must be strings")}function Fc(e){let t=e.confidence;if(t!==void 0){if(typeof t=="number"){w(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"||Ft.includes(n);w(r,`confidence string value must be one of: ${[...Ft,"med"].join(", ")}`);return}w(!1,"confidence must be a number or string")}}function $c(e){let t=e.severity;if(t===void 0)return;typeof t!="string"&&_e("severity must be a string");let n=t.trim().toLowerCase(),r=n==="med"||Mt.includes(n);w(r,`severity value must be one of: ${[...Mt,"med"].join(", ")}`)}function zc(e){e.regression!==void 0&&typeof e.regression!="boolean"&&_e("regression must be a boolean")}function Hc(e){let t=e.reminders;if(t!==void 0){w(Array.isArray(t),"reminders must be an array");for(let n of t){let r=bt(n,"reminders entries must be objects");w(typeof r.at=="string","reminder.at must be a string"),w(re(r.at),"reminder.at must be a valid ISO timestamp"),w(typeof r.text=="string","reminder.text must be a string"),w(r.text.trim().length>0,"reminder.text must not be empty")}}}function Uc(e){for(let t of["title","description","location","timezone"])e[t]!==void 0&&(w(typeof e[t]=="string",`event.${t} must be a string`),w(e[t].trim().length>0,`event.${t} must not be empty`))}function Vc(e){e.recurrence!==void 0&&(jc(e.recurrence),e.recurrence.until!==void 0&&w(oe(e.recurrence.until,e.start_at)>=0,"event.recurrence.until must be at or after event.start_at"))}function Wc(e){let t=bt(e,"events entries must be objects");w(typeof t.start_at=="string","event.start_at must be a string"),w(re(t.start_at),"event.start_at must be a valid ISO timestamp"),t.end_at!==void 0&&(w(typeof t.end_at=="string","event.end_at must be a string"),w(re(t.end_at),"event.end_at must be a valid ISO timestamp"),w(oe(t.end_at,t.start_at)>0,"event.end_at must be after event.start_at")),Uc(t),t.all_day!==void 0&&w(typeof t.all_day=="boolean","event.all_day must be a boolean"),Vc(t)}function Bc(e){let t=e.events;if(t!==void 0){w(Array.isArray(t),"events must be an array");for(let n of t)Wc(n)}}function qc(e){for(let t of["source_type","source_owner","design","external_ref"]){let n=e[t];n!==void 0&&w(typeof n=="string",`${t} must be a string`)}}function Xc(e){let t=e.type_options;if(t===void 0)return;let n=bt(t,"type_options must be an object");for(let[r,o]of Object.entries(n))w(r.trim().length>0,"type_options keys must be non-empty"),w(typeof o=="string","type_options values must be strings"),w(o.trim().length>0,"type_options values must be non-empty strings")}function Kc(e,t,n){if(n?.fieldRegistry)for(let r of n.fieldRegistry.definitions){let o=e[r.metadata_key];if(o===void 0){Ac(r,t)&&_e(`missing required schema field: ${r.metadata_key}`);continue}try{e[r.metadata_key]=pt(r,o,`metadata field "${r.metadata_key}"`)}catch(i){_e(String(i?.message).replace(/^Invalid\s+/u,""))}}}function Gc(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let n=Ni(t),r=Object.keys(e).filter(o=>!n.has(o)).sort((o,i)=>o.localeCompare(i));r.length!==0&&(t.unknownFieldPolicy==="reject"?_e(`unknown schema fields are not allowed: ${r.join(", ")}`):t.onWarning?.(`item_unknown_schema_fields:${r.join(",")}`))}function Rr(e,t){let n=bt(e,"item metadata must be an object"),r=Pc(n);Lc(n,t),Mc(n),Fc(n),$c(n),zc(n),xr(n,"created_at"),xr(n,"updated_at"),n.deadline!==void 0&&xr(n,"deadline"),Hc(n),Bc(n),Ar(n,"closed_at","closed_at"),Ar(n,"completed_at","completed_at"),qc(n),Xc(n),Kc(n,r,t),Gc(n,t)}function Yc(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=oe(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 Or(e){if(!(!e||e.length===0))return[...e].sort((t,n)=>{let r=oe(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 Jc(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=oe(n.at,r.at);return o!==0?o:n.text.localeCompare(r.text)});return t.length===0?void 0:t}function Qc(e){if(!e)return;let t=e.freq.trim().toLowerCase();if(!$t.includes(t))return;let n=Array.from(new Set((e.by_weekday??[]).map(s=>s.trim().toLowerCase()).filter(s=>zt.includes(s)))).sort((s,a)=>Yn(s)-Yn(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=>re(s)))).sort((s,a)=>oe(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 Zc(e){return!Array.isArray(e)||e.length===0?void 0:[...e].map(ed).sort(td)}function ed(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:Qc(e.recurrence)};return tn(t),t}function td(e,t){return Ci([oe(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 nd(e){if(!(!e||e.length===0))return e.map(t=>({path:Be(t.path),scope:t.scope,note:t.note?.trim()||void 0}))}function rd(e){if(!e||e.length===0)return;let t=e.map(ad).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)=>Ci([oe(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 Ve(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?Math.floor(e):void 0}function od(e){return typeof e=="number"&&Number.isFinite(e)&&e>=1?Math.floor(e):void 0}function Tr(e){return typeof e=="string"?e:""}function id(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 sd(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,Cr),pm_context_mode:en(n.pm_context_mode,Cr),workspace_context_mode:en(n.workspace_context_mode,Ti),trust_reason:en(n.trust_reason,xc)}));return t.length>0?t:void 0}function ad(e){let t=typeof e.run_id=="string"?e.run_id.trim():"",n=e.kind==="test"||e.kind==="test-all"?e.kind:"test",r=Oc.has(e.status)?e.status:"failed",o={run_id:t,kind:n,status:r,started_at:Tr(e.started_at),finished_at:Tr(e.finished_at),recorded_at:Tr(e.recorded_at),attempt:od(e.attempt),resumed_from:e.resumed_from?.trim()||void 0,passed:Ve(e.passed)??0,failed:Ve(e.failed)??0,skipped:Ve(e.skipped)??0,items:Ve(e.items),linked_tests:Ve(e.linked_tests),fail_on_skipped_triggered:e.fail_on_skipped_triggered===!0?!0:void 0,measurements:id(e.measurements),executions:sd(e.executions)};return tn(o),o}function cd(e){if(!(!Array.isArray(e)||e.length===0))return e.map(_d)}function yt(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 Dr(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function jr(e){return e==="__proto__"||e==="constructor"||e==="prototype"}function Oi(e){if(!Dr(e))return;let t=Object.entries(e).map(([n,r])=>[n.trim(),String(r).trim()]).filter(([n,r])=>n.length>0&&!jr(n)&&r.length>0).sort(([n],[r])=>n.localeCompare(r));return t.length>0?Object.fromEntries(t):void 0}function dd(e){if(!Dr(e))return;let t=Object.entries(e).map(([n,r])=>[n.trim(),Number(r)]).filter(([n,r])=>n.length>0&&!jr(n)&&Number.isFinite(r)).sort(([n],[r])=>n.localeCompare(r));return t.length>0?Object.fromEntries(t):void 0}function ld(e){let t=e?.trim().toLowerCase();if(!(!t||!Cr.has(t)))return t}function ud(e){let t=e?.trim().toLowerCase();if(!(!t||!Ti.has(t)))return t}function fd(e,t){if(t===!0)return{provenance_invalid:!0};if(e===void 0)return{};if(!Dr(e))return{provenance_invalid:!0};let n=g(e.author),r=g(e.created_at),o=e.source_kind;return!n||!r||!re(r)||o!=="local_mutation"&&o!=="merge_union"?{provenance_invalid:!0}:{provenance:{author:n,created_at:r,source_kind:o,source_ref:g(e.source_ref)}}}function _d(e){let t={command:e.command?.trim()||void 0,path:e.path?Be(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:ld(e.pm_context_mode),workspace_context_mode:ud(e.workspace_context_mode),...fd(e.provenance,e.provenance_invalid),env_set:Oi(e.env_set),env_clear:yt(e.env_clear),shared_host_safe:e.shared_host_safe===!0?!0:void 0,assert_stdout_contains:yt(e.assert_stdout_contains),assert_stdout_regex:yt(e.assert_stdout_regex),assert_stderr_contains:yt(e.assert_stderr_contains),assert_stderr_regex:yt(e.assert_stderr_regex),assert_stdout_min_lines:Ve(e.assert_stdout_min_lines),assert_json_field_equals:Oi(e.assert_json_field_equals),assert_json_field_gte:dd(e.assert_json_field_gte),note:e.note?.trim()||void 0};return tn(t),t}function md(e){if(!(!e||e.length===0))return[...e].map(t=>({path:Be(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 g(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function pd(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=g(r.id),i=g(r.kind);if(!o||!i)continue;let s={id:o,kind:i},a=g(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 yd(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=g(r.path);if(!o)continue;let i={path:Be(o)};(r.scope==="project"||r.scope==="global")&&(i.scope=r.scope);let s=g(r.note);s&&(i.note=s),t.push(i)}return t.length>0?t:void 0}function hd(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=g(r.command),i=g(r.path);if(!o&&!i)continue;let s={};o&&(s.command=o),i&&(s.path=Be(i));let a=g(r.note);a&&(s.note=a),t.push(s)}return t.length>0?t:void 0}function gd(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=g(r.path);if(!o)continue;let i={path:Be(o)};(r.scope==="project"||r.scope==="global")&&(i.scope=r.scope);let s=g(r.note);s&&(i.note=s),t.push(i)}return t.length>0?t:void 0}function bd(e){if(e===null||typeof e!="object")return;let t=e,n=g(t.id),r=g(t.title),o=g(t.status),i=o&&Tc.has(o)?o:void 0,s=Mo(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 wd(d,t),d}function wd(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=g(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",pd],["files","files",yd],["tests","tests",hd],["docs","docs",gd]];for(let[i,s,a]of o){let c=a(t[s]);c&&(e[i]=c)}}function Ed(e){if(!Array.isArray(e))return;let t=e.flatMap(n=>{let r=bd(n);return r?[r]:[]});return t.sort((n,r)=>n.order-r.order),t.length>0?t:void 0}function vd(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=g(r.decision);if(!o||!i||!s)continue;let a={ts:o,author:i,decision:s},c=g(r.rationale);c&&(a.rationale=c);let d=g(r.evidence);d&&(a.evidence=d);let u=g(r.step_id);u&&(a.step_id=u),t.push(a)}return t.length>0?t:void 0}function kd(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=g(r.text);if(!o||!i||!s)continue;let a={ts:o,author:i,text:s},c=g(r.step_id);c&&(a.step_id=c),t.push(a)}return t.length>0?t:void 0}function Sd(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=g(r.text);if(!o)continue;let i={text:o},s=g(r.command);s&&(i.command=s);let a=g(r.expected);a&&(i.expected=a),t.push(i)}return t.length>0?t:void 0}function Id(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 We(e){let t=0;for(;t<e.length&&e[t]===`
6
- `;)t+=1;return e.slice(t).trimEnd()}function xd(e){if(e===void 0)return;if(typeof e=="number")return e;let t=e.trim().toLowerCase();if(t==="med")return"medium";if(Ft.includes(t))return t}function Od(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(t==="med")return"medium";if(Mt.includes(t))return t}function ht(e){return e||void 0}function Td(e,t){let n=e,r=t;for(let[o,i]of Object.entries(r))jr(o)||Object.prototype.hasOwnProperty.call(n,o)||i===void 0||(n[o]=i)}function Cd(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]=pt(r,o,`metadata field "${r.metadata_key}"`))}}function Ad(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let n=Ni(t),o=Object.keys(e).filter(i=>!n.has(i)).sort((i,s)=>i.localeCompare(s));o.length>0&&t.unknownFieldPolicy==="reject"&&_e(`unknown schema fields are not allowed: ${o.join(", ")}`),o.length>0&&t.onWarning?.(`item_unknown_schema_fields:${o.join(",")}`)}function nn(e,t={}){let n=Ri(t),r=Jt(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:wi(e.pm_format_version),source_type:g(e.source_type),type_options:Id(e.type_options),status:r,priority:e.priority,tags:o,created_at:e.created_at,updated_at:e.updated_at,dependencies:Yc(e.dependencies),comments:Or(e.comments),notes:Or(e.notes),learnings:Or(e.learnings),files:nd(e.files),tests:cd(e.tests),test_runs:rd(e.test_runs),docs:md(e.docs),deadline:ht(e.deadline),reminders:Jc(e.reminders),events:Zc(e.events),closed_at:ht(e.closed_at),completed_at:ht(e.completed_at),assignee:g(e.assignee),claim_principal:g(e.claim_principal),source_owner:g(e.source_owner),author:ht(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:g(e.definition_of_ready),order:e.order,goal:g(e.goal),objective:g(e.objective),value:g(e.value),impact:g(e.impact),outcome:g(e.outcome),why_now:g(e.why_now),parent:g(e.parent),reviewer:g(e.reviewer),risk:e.risk??void 0,confidence:xd(e.confidence),sprint:g(e.sprint),release:g(e.release),blocked_by:g(e.blocked_by),blocked_reason:g(e.blocked_reason),unblock_note:g(e.unblock_note),reporter:g(e.reporter),severity:Od(e.severity),environment:g(e.environment),repro_steps:g(e.repro_steps),resolution:g(e.resolution),expected_result:g(e.expected_result),actual_result:g(e.actual_result),affected_version:g(e.affected_version),fixed_version:g(e.fixed_version),component:g(e.component),regression:e.regression,customer_impact:g(e.customer_impact),close_reason:ht(e.close_reason),plan_mode:g(e.plan_mode),plan_scope:g(e.plan_scope),plan_harness:g(e.plan_harness),plan_resume_context:g(e.plan_resume_context),plan_steps:Ed(e.plan_steps),plan_decisions:vd(e.plan_decisions),plan_discoveries:kd(e.plan_discoveries),plan_validation:Sd(e.plan_validation)};return Td(i,e),Cd(i,n),Ad(i,n),tn(i),i}function Di(e){return k(e,se)}function Rd(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 Nd(e){if(!e.startsWith("{"))return{frontMatter:"",body:e};let t=Rd(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 Dd(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 Nr(e,t){return nn(e,{...t,onWarning:void 0})}function jd(e,t,n={}){let r=Dd(e);r.stripped&&n.onWarning?.("json_markdown_leading_yaml_frontmatter_ignored");let{frontMatter:o,body:i}=Nd(r.content);o||(e.trimStart().startsWith("{")&&gt("json_markdown","JSON front matter is not valid JSON"),gt("json_markdown","JSON Markdown item document is missing JSON front matter"));let s;try{s=JSON.parse(o)}catch{gt("json_markdown","JSON front matter is not valid JSON")}return Rr(s,t),{metadata:Nr(s,n),body:We(i)}}function Pd(e,t,n={}){let r;try{r=Ir(e).value}catch{gt("toon","TOON item document is not valid TOON")}w(typeof r=="object"&&r!==null&&!Array.isArray(r),"TOON item document must be an object");let o=r;if(!Ai.some(a=>Object.prototype.hasOwnProperty.call(o,a))&&!Object.prototype.hasOwnProperty.call(o,"front_matter")&&gt("toon","TOON input does not have the shape of an item document"),Object.prototype.hasOwnProperty.call(o,"front_matter"))return Rr(o.front_matter,t),w(o.body===void 0||typeof o.body=="string","TOON item document body must be a string"),{metadata:Nr(o.front_matter,n),body:We(typeof o.body=="string"?o.body:"")};let{body:i,...s}=o;return w(i===void 0||typeof i=="string","TOON item document body must be a string"),Rr(s,t),{metadata:Nr(s,n),body:We(typeof i=="string"?i:"")}}function Ld(e,t={}){let n=nn(e.metadata,t),r=Di(n),o=JSON.stringify(r,null,2),i=We(e.body??"");return i?`${o}
8
-
9
- ${i}
10
- `:`${o}
11
- `}function Md(e,t={}){let n=nn(e.metadata,t),r=Di(n),o=We(e.body??""),i={...r,body:o},s=JSON.parse(JSON.stringify(i)),a=Ic(s),c;try{c=Ir(a).value}catch(d){throw new x("Refusing to persist a TOON item document that the configured decoder cannot read back.",I.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(!Ii(c,s)){let d=typeof c=="object"&&c!==null&&!Array.isArray(c)?c:{},u=Object.keys(s).find(f=>!Ii(s[f],d[f]))??"document";throw new x(`Refusing to persist a lossy TOON item document; round-trip mismatch at field "${u}".`,I.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 rn(e,t={}){let n=Zt(e);if(n)throw new x(`Merge conflict markers detected in item document at line ${n.line} (${n.marker}). Resolve <<<<<<< ======= >>>>>>> markers and retry.`,I.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=Ri(t);return r==="toon"?Pd(e,o,t):jd(e,o,t)}function ji(e,t={}){return(t.format??"toon")==="toon"?Md(e,t):Ld(e,t)}function Q(e,t={}){return{metadata:nn(e.metadata,t),body:We(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]="aa65b74d-ef5d-57ed-b613-3034da52a8ba")}catch{}})();async function qe(e,t){let n=await ce(e);if(n===null)return[];if(await de({path:e,scope:"project"}),n.trim()==="")return[];let r=Zt(n);if(r)throw new x(`History for ${t} contains merge conflict markers at line ${r.line} (${r.marker}). Resolve <<<<<<< ======= >>>>>>> markers and retry.`,I.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 x(`History for ${t} contains invalid JSON at line ${i+1}. Repair or restore the history stream and retry.`,I.GENERIC_FAILURE)}}return o}import Yr 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]="4d71277c-e16c-56f4-a834-5200acfa6d7a")}catch{}})();import ss from"fast-json-patch";import P from"node:fs/promises";import M from"node:path";import{randomUUID as Li}from"node:crypto";import{createRequire as Wd}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]="6398c65d-fb5c-5479-93c2-0be963352a92")}catch{}})();var Fd=["docs_add","files_add","history:author-acknowledge","history_author_acknowledge","history_compact","history_compact_baseline","history_redact","history_repair","normalize","release","test_run_track","tests_add","tests_remove","update_audit","update_ownership_bypass"],$d=["append","cancel","claim","close","comment_add","create","learning_add","note_add","reopen"],zd=new Set(Fd),Hd=new Set($d),Ud=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 Vd(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 Xe(e){return e.event_class==="substantive"||e.event_class==="maintenance"?e.event_class:zd.has(e.op)?"maintenance":Hd.has(e.op)||e.op!=="update"?"substantive":Array.isArray(e.patch)&&e.patch.length>0&&e.patch.every(t=>{let n=Vd(t);return n!==void 0&&Ud.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]="72b285a7-970e-5965-bacf-a4e0cfc5f060")}catch{}})();var Bd="history-event-index.sqlite",fn="5",qd=8,Xd="history-event-index",Pr=300,Mi=3e4,Kd="history-event-index-invalidation",Gd="history-event-index-invalidations",Yd=Pr*2*1e3,dn=Symbol("history-index-lock-contended"),Ce=new Map;function Ke(e){return M.join(e,"runtime",Bd)}function _n(e){return M.join(e,"runtime",Gd)}async function Jd(e){let t=await P.readdir(_n(e)).catch(n=>{if(ae(n))return[];throw n});return{pending:t.filter(n=>n.endsWith(".pending")).sort(),committed:t.filter(n=>n.endsWith(".committed")).sort()}}async function ln(e){let t=await Jd(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 Jo({pid:Number(o[1]),...i==="unknown"?{}:{process_start_identity:i}},Math.max(0,Date.now()-Number(o[3])),Yd))return r}return await P.rm(M.join(_n(e),r),{force:!0}),null}))).filter(r=>r!==null),committed:t.committed}}async function wt(e,t){let n=await K(e,Kd,Pr,`history-event-index-invalidation:${process.pid}`,!1,!1,Mi);try{return await t()}finally{await n()}}async function Qd(e){let t=_n(e);await P.mkdir(t,{recursive:!0});let n=Li(),r=await Yo(),o=M.join(t,`${r.pid}-${r.process_start_identity??"unknown"}-${Date.now()}-${n}.pending`);return await P.writeFile(o,`pending
13
- `,{flag:"wx"}),{pendingPath:o,committedPath:M.join(t,`${n}.committed`)}}function Zd(e,t){return e.length===t.length&&e.every((n,r)=>n===t[r])}async function on(e){try{await P.rm(Ke(e),{force:!0})}catch{}}async function mn(e,t){let n=await K(e,Xd,Pr,`history-event-index:${process.pid}`,!1,!1,Mi);try{return await t()}finally{await n()}}async function Fi(e){let t=M.join(e,"history"),n=await P.readdir(t,{withFileTypes:!0}).catch(s=>{if(typeof s=="object"&&s!==null&&"code"in s&&s.code==="ENOENT")return[];throw s}),r=Ce.get(e)??{streams:new Map,ordered_events:[]},o=new Set,i=!Ce.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=M.join(t,s.name),d=await P.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 $i(c,a);r.streams.set(a,{signature:u,byte_size:Number(d.size),events:f.map((p,y)=>({stream_id:a,stream_offset:y,entry:p}))}),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(Lr)),Ce.delete(e),Ce.set(e,r),Ce.size>qd){let s=Ce.keys().next().value;Ce.delete(s)}return{events:r.ordered_events,stream_byte_sizes:new Map([...r.streams].map(([s,a])=>[s,a.byte_size]))}}async function $i(e,t){let n=await qe(e,t);for(let[r,o]of n.entries())if(typeof o.ts!="string"||!$e(o.ts.trim()))throw new x(`History for ${t} contains an invalid or sub-millisecond timestamp at line ${r+1}. Repair or restore the history stream and retry.`,I.GENERIC_FAILURE,{code:"history_timestamp_invalid"});return n.map(r=>({...r,ts:new Date(r.ts.trim()).toISOString()}))}async function el(e){return(await Fi(e)).events}function tl(e){try{return e(["node","sqlite"].join(":")).DatabaseSync??null}catch{return null}}function nl(e,t){let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>=22?tl(t):null}var sn;function pn(){return sn!==void 0||(sn=nl(process.versions.node,Wd(import.meta.url))),sn}function rl(e){e.exec(`
14
- PRAGMA journal_mode = OFF;
15
- PRAGMA synchronous = OFF;
16
- CREATE TABLE metadata (
17
- key TEXT PRIMARY KEY,
18
- value TEXT NOT NULL
19
- ) STRICT;
20
- CREATE TABLE events (
21
- stream_id TEXT NOT NULL,
22
- stream_offset INTEGER NOT NULL,
23
- ts TEXT NOT NULL,
24
- author TEXT NOT NULL,
25
- agent_harness TEXT,
26
- agent_instance TEXT,
27
- op TEXT NOT NULL,
28
- event_class TEXT NOT NULL CHECK(event_class IN ('substantive', 'maintenance')),
29
- entry_json TEXT NOT NULL,
30
- PRIMARY KEY(stream_id, stream_offset)
31
- ) STRICT;
32
- CREATE TABLE streams (
33
- stream_id TEXT PRIMARY KEY,
34
- byte_size INTEGER NOT NULL CHECK(byte_size >= 0)
35
- ) STRICT;
36
- CREATE INDEX events_order
37
- ON events(ts, stream_id, stream_offset);
38
- CREATE INDEX events_op_order
39
- ON events(op, ts, stream_id, stream_offset);
40
- CREATE INDEX events_class_stream_order
41
- ON events(event_class, stream_id, ts, stream_offset);
42
- CREATE INDEX events_author_order
43
- ON events(author, ts, stream_id, stream_offset);
44
- CREATE INDEX events_harness_order
45
- ON events(agent_harness, ts, stream_id, stream_offset);
46
- CREATE INDEX events_instance_order
47
- ON events(agent_instance, ts, stream_id, stream_offset);
48
- `),e.prepare("INSERT INTO metadata(key, value) VALUES ('version', ?)").run(fn)}function zi(e,t){let n={...t.entry,ts:new Date(t.entry.ts.trim()).toISOString()};e.prepare(`INSERT INTO events(
49
- stream_id, stream_offset, ts, author, agent_harness,
50
- agent_instance, op, event_class, entry_json
51
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`).run(t.stream_id,t.stream_offset,n.ts,n.author,n.agent_harness??null,n.agent_instance??null,n.op,Xe(n),JSON.stringify(n))}function Hi(e){let t=JSON.parse(String(e.entry_json));return typeof t.ts!="string"||!$e(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 Ui(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 ol(e){let t=pn();return t?mn(e,async()=>{let n;try{n=await wt(e,()=>ln(e))}catch(s){if(s instanceof x&&s.code==="lock_conflict")return!1;throw s}if(n.pending.length>0)return!1;let r=Ke(e);await P.mkdir(M.dirname(r),{recursive:!0});let o=`${r}.${Li()}.tmp`,i;try{i=new t(o),rl(i),i.exec("BEGIN IMMEDIATE");let s=await Fi(e);for(let c of s.events)zi(i,c);for(let[c,d]of s.stream_byte_sizes)Ui(i,c,d);i.exec("COMMIT"),i.close(),i=void 0;let a=await wt(e,async()=>{let c=await ln(e);return c.pending.length>0||!Zd(n.committed,c.committed)?!1:(await P.rm(r,{force:!0}),await P.rename(o,r),await Promise.all(n.committed.map(d=>P.rm(M.join(_n(e),d),{force:!0}))),!0)});return a||await P.rm(o,{force:!0}),a}catch(s){throw i?.close(),await P.rm(o,{force:!0}),s}}):!1}function an(e,t){return!t||t.length===0||t.includes(e)}function Lr(e,t){return e.entry.ts.localeCompare(t.entry.ts)||e.stream_id.localeCompare(t.stream_id)||e.stream_offset-t.stream_offset}function un(e){let t=Date.parse(e);return Number.isFinite(t)?new Date(t).toISOString():e}function il(e,t){if(t.after_ts!==void 0&&t.after_stream_id!==void 0&&t.after_stream_offset!==void 0){if(Lr(e,{stream_id:t.after_stream_id,stream_offset:t.after_stream_offset,entry:{...e.entry,ts:un(t.after_ts)}})<=0)return!1}else if(t.since_ts!==void 0&&e.entry.ts<un(t.since_ts))return!1;return!0}function sl(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 al(e,t){return!il(e,t)||!an(e.entry.op,t.ops)||!an(e.entry.author,t.authors)||!an(e.entry.agent_instance??"",t.agent_instances)||!an(e.stream_id,t.stream_ids)||!sl(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 mp(e,t){let n=Math.max(0,Math.floor(t.limit)),r=(await el(e)).filter(o=>al(o,t)).slice(0,n+1);return{events:r.slice(0,t.limit),has_more:r.length>t.limit}}async function Vi(e,t,n){let r=M.dirname(M.dirname(e)),o=pn();if(!o){await n();return}let i=!1;try{await mn(r,async()=>{let s=Ke(r);try{await P.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!==fn)throw new TypeError("Unsupported history event index version")}catch{a?.close(),await P.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=M.basename(e,".jsonl"),u=a.prepare("SELECT COALESCE(MAX(stream_offset), -1) + 1 AS value FROM events WHERE stream_id = ?").get(d);zi(a,{stream_id:d,stream_offset:Number(u.value),entry:t}),Ui(a,d,(await P.stat(e)).size),a.exec("COMMIT"),a.close()}catch(d){if(a?.close(),!c)throw d;await on(r)}})}catch(s){if(i){await on(r);return}if(!(s instanceof x)||s.code!=="lock_conflict")throw s;let a;try{await wt(r,async()=>{let c=await Qd(r);a=c.pendingPath;try{await n(),i=!0}catch(d){throw await P.rm(c.pendingPath,{force:!0}),d}await P.rename(c.pendingPath,c.committedPath),await on(r)})}catch(c){if(i){await on(r);try{await P.rm(a,{force:!0})}catch{}return}throw c}}}async function Mr(e){await P.rm(Ke(M.dirname(M.dirname(e))),{force:!0})}function cn(e,t,n,r){!r||r.length===0||(e.push(`${n} IN (${r.map(()=>"?").join(", ")})`),t.push(...r))}function cl(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 pp(e,t){let n=pn();if(!n)return null;let r=[],o=[];if(t.after_ts!==void 0&&t.after_stream_id!==void 0&&t.after_stream_offset!==void 0){r.push("(ts > ? OR (ts = ? AND stream_id > ?) OR (ts = ? AND stream_id = ? AND stream_offset > ?))");let a=un(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(un(t.since_ts)));cn(r,o,"op",t.ops),cn(r,o,"author",t.authors),cl(r,o,t.harnesses,t.harness_alias_authors),cn(r,o,"agent_instance",t.agent_instances);for(let a of t.provenance??[])r.push(`json_extract(entry_json, '$.agent_provenance.${a.dimension}.value') IN (${a.values.map(()=>"?").join(", ")})`),o.push(...a.values);cn(r,o,"stream_id",t.stream_ids);let i=r.length===0?"":` WHERE ${r.join(" AND ")}`,s;try{return await mn(e,async()=>wt(e,async()=>{let a=await ln(e);if(a.pending.length>0||a.committed.length>0)return null;s=new n(Ke(e),{readOnly:!0});let c=s.prepare("SELECT value FROM metadata WHERE key = 'version'").get(),d=await ll(s,e,t.stream_ids);if(c?.value!==fn||!await Bi(s,e,d))return s.close(),s=void 0,null;let u=s.prepare(`SELECT stream_id, stream_offset, entry_json
53
- FROM events${i}
54
- ORDER BY ts, stream_id, stream_offset
55
- LIMIT ?`).all(...o,Math.max(0,Math.floor(t.limit))+1),f=u.slice(0,t.limit).map(Hi);return s.close(),s=void 0,f.includes(null)?null:{events:f,has_more:u.length>t.limit}}))}catch{return s?.close(),null}}function Wi(e,t){let n=Object.create(null);for(let r of e){if(!t.has(r.stream_id)||Xe(r.entry)!=="substantive")continue;let o=n[r.stream_id];(o===void 0||Lr(o,r)<0)&&(n[r.stream_id]=r)}return n}async function dl(e,t){if(M.basename(t)!==t)return null;try{return(await P.stat(M.join(e,"history",`${t}.jsonl`))).size}catch(n){if(ae(n))return 0;throw n}}async function Bi(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=>dl(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 ll(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 P.readdir(M.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(ae(i))return[];throw i});return[...new Set([...r,...o])]}async function Pi(e,t,n,r){if(!e)return null;let o;try{return await mn(t,async()=>wt(t,async()=>{let i=await ln(t);if(i.pending.length>0||i.committed.length>0)return null;if(o=new e(Ke(t),{readOnly:!0}),o.prepare("SELECT value FROM metadata WHERE key = 'version'").get()?.value!==fn||!await Bi(o,t,n))return o.close(),o=void 0,null;let a=[];for(let c=0;c<n.length;c+=500){let d=n.slice(c,c+500),f=o.prepare(`SELECT stream_id, stream_offset, entry_json
57
- FROM (
58
- SELECT stream_id, stream_offset, entry_json,
59
- ROW_NUMBER() OVER (
60
- PARTITION BY stream_id
61
- ORDER BY ts DESC, stream_offset DESC
62
- ) AS recency_rank
63
- FROM events
64
- WHERE event_class = 'substantive'
65
- AND stream_id IN (${d.map(()=>"?").join(", ")})
66
- )
67
- WHERE recency_rank = 1`).all(...d).map(Hi);if(f.includes(null))return o.close(),o=void 0,null;a.push(...f)}return o.close(),o=void 0,Wi(a,r)}))}catch(i){return o?.close(),i instanceof x&&i.code==="lock_conflict"?dn:null}}async function yp(e,t){let n=[...new Set(t.filter(a=>a.trim().length>0&&M.basename(a)===a))];if(n.length===0)return{};let r=new Set(n),o=pn(),i=await Pi(o,e,n,r);if(i!==null&&i!==dn)return i;if(o&&i!==dn)try{if(await ol(e)){let a=await Pi(o,e,n,r);if(a!==null&&a!==dn)return a}}catch{}let s=[];return await Promise.all(n.map(async a=>{let c=M.join(e,"history",`${a}.jsonl`);(await $i(c,a).catch(u=>{if(u instanceof x&&u.code==="history_timestamp_invalid")return[];throw u})).forEach((u,f)=>{s.push({stream_id:a,stream_offset:f,entry:u})})})),Wi(s,r)}import Wr from"node:fs/promises";import Ye 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]="a3e0573a-01fd-54fb-a568-51c5287b696c")}catch{}})();var yn="changed_fields",ul="changed_field_count",Fr="rows",fl=new Set(["apply","rollback"]),Ki=new Set(["deleted","would_delete"]),qi=256;function Xi(e){return typeof e!="string"||e.length<=qi?e:`${e.slice(0,qi-1)}\u2026`}function _l(e){if(!ie(e))return null;let t={...e};return t.reason=Xi(t.reason),ie(t.previous_terminal)&&(t.previous_terminal=Object.fromEntries(Object.entries(t.previous_terminal).map(([n,r])=>[n,Xi(r)]))),t}function ie(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function Gi(e){let t=e[yn];if(!Array.isArray(t))return null;let n=Object.getPrototypeOf(e)===null?Object.create(null):{};for(let[r,o]of Object.entries(e))r!==yn&&(n[r]=o);return n[ul]=t.length,n}function ml(e){return"item"in e&&Array.isArray(e[yn])}function pl(e){return typeof e.mode=="string"&&fl.has(e.mode)&&Array.isArray(e[Fr])}function yl(e,t){let n=Object.getPrototypeOf(e)===null?Object.create(null):{};return Object.assign(n,e),n[Fr]=t,n}function hl(e){if(!ie(e))return null;let t=ie(e.item)?e.item:ie(e.plan)?e.plan:null;if(t===null)return null;let n=typeof t.id=="string"?t.id:void 0,r=typeof e.outcome=="string"&&Ki.has(e.outcome)?e.outcome:typeof t.status=="string"?t.status:void 0;return n?r?{id:n,status:r,...typeof e.deleted=="boolean"?{deleted:e.deleted}:{}}:{id:n}:null}function gl(e){if(!ie(e)||!ie(e.item)||typeof e.item.id!="string")return null;let t=e[yn];if(!Array.isArray(t))return null;let n={id:e.item.id,...typeof e.outcome=="string"&&Ki.has(e.outcome)?{status:e.outcome}:typeof e.item.status=="string"?{status:e.item.status}:{},...typeof e.deleted=="boolean"?{deleted:e.deleted}:{},...typeof e.previous_status=="string"?{previous_status:e.previous_status}:{},changed_field_count:t.length},r=typeof e.close_reason=="string"?e.close_reason:typeof e.item.close_reason=="string"?e.item.close_reason:void 0;r!==void 0&&(n.close_reason=r);let o=_l(e.recurrence);return o!==null&&(n.recurrence=o),Array.isArray(e.warnings)&&e.warnings.length>0&&(n.warnings=e.warnings),n}function bl(e){let t=pl(e)?e[Fr]:void 0;if(!Array.isArray(t))return{projected:e,changed:!1};let n=!1,r=t.map(o=>{if(!ie(o))return o;let i=Gi(o);return i?(n=!0,i):o});return n?{projected:yl(e,r),changed:!0}:{projected:e,changed:!1}}function wl(e,t={}){if(t.idOnly===!0){let a=hl(e);if(a!==null)return a}if(t.compactEnvelope===!0){let a=gl(e);if(a!==null)return a}if((t.changedFields??"full")==="full"||!ie(e))return e;let r=!1,o=e,i=ml(e)?Gi(e):null;i!==null&&(o=i,r=!0);let s=bl(o);return s.changed&&(o=s.projected,r=!0),r?o:e}import{encode as Qi}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]="fa89762b-915f-5ef0-a091-f05338c11683")}catch{}})();var Fp=new Set(Object.values(I));var Yi=!1;function Ge(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function $r(e){return typeof e=="object"&&e!==null&&e.code==="EPIPE"}function El(){(process.exitCode===void 0||process.exitCode===I.SUCCESS)&&(process.exitCode=I.SUCCESS)}function vl(){(process.exitCode===void 0||process.exitCode===I.SUCCESS)&&(process.exitCode=I.GENERIC_FAILURE)}function zr(e){if(e==="stdout"){El();return}vl()}function Ji(e){let t=e instanceof Error?e:new Error(String(e));setImmediate(()=>{throw t})}function kl(){Yi||(Yi=!0,process.stdout.on("error",e=>{if($r(e)){zr("stdout");return}Ji(e)}),process.stderr.on("error",e=>{if($r(e)){zr("stderr");return}Ji(e)}))}function Sl(e,t){kl();try{return e==="stdout"?process.stdout.write(t):process.stderr.write(t),!0}catch(n){if($r(n))return zr(e),!1;throw n}}function hn(e){return Sl("stderr",e)}function Hr(e){return typeof e=="string"?JSON.stringify(e):typeof e=="number"||typeof e=="boolean"?String(e):e===null?"null":JSON.stringify(e)}function Il(e){return e===null||typeof e=="string"||typeof e=="number"||typeof e=="boolean"}function Zi(e){if(e.length===0||!e.every(Ge))return!1;let t=Object.keys(e[0]);return t.length>0&&e.every(n=>Object.keys(n).length===t.length&&t.every(r=>Object.hasOwn(n,r)&&Il(n[r])))}function es(e,t){let n=" ".repeat(t);return e.split(`
68
- `).map(r=>`${n}${r}`).join(`
69
- `)}function xl(e,t,n){let r=" ".repeat(n);return!Ge(t)&&!Array.isArray(t)?`${r}${e}: ${Hr(t)}`:Array.isArray(t)&&t.length===0?`${r}${e}: []`:Array.isArray(t)&&Zi(t)?es(Qi({[e]:t}),n):Ge(t)&&Object.keys(t).length===0?`${r}${e}: {}`:`${r}${e}:
70
- ${Vr(t,n+1)}`}function Ur(e){if(e!=null){if(Array.isArray(e)){let t=e.map(n=>Ur(n)).filter(n=>n!==void 0);return t.length>0?t:void 0}if(Ge(e)){let t={};for(let[n,r]of Object.entries(e)){if(n==="omitted_field_groups"&&Array.isArray(r)&&r.length===0){t[n]=[];continue}let o=Ur(r);o!==void 0&&(t[n]=o)}return Object.keys(t).length>0?t:void 0}return e}}function Vr(e,t){let n=" ".repeat(t);if(Array.isArray(e))return e.length===0?"[]":Zi(e)?es(Qi(e),t):e.map(r=>{if(!Ge(r)&&!Array.isArray(r))return`${n}- ${Hr(r)}`;let i=Vr(r,t+1).split(`
71
- `),[s,...a]=i;return a.length===0?`${n}- ${s.trimStart()}`:`${n}- ${s.trimStart()}
72
- ${a.join(`
73
- `)}`}).join(`
74
- `);if(Ge(e)){let r=Object.entries(e);return r.length===0?"{}":r.map(([o,i])=>xl(o,i,t)).join(`
75
- `)}return`${n}${Hr(e)}`}function $p(e,t){if(t==="json")return`${JSON.stringify(e,null,2)}
76
- `;let n=Ur(e);return n===void 0?`{}
77
- `:`${Vr(n,0)}
78
- `}function zp(e){let t=Xo("error_format",{message:e}),n=t.handled&&typeof t.result=="string"?t.result:e;hn(n.endsWith(`
79
- `)?n:`${n}
80
- `)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="5121b339-6594-58ec-b479-11cbf7dafd27")}catch{}})();var Ol=Ye.join("runtime","history-drift-cache.json"),ts={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 ns(e){return typeof e=="object"&&e!==null&&"code"in e&&typeof e.code=="string"?e.code:void 0}async function Tl(e){let t=Ye.join(e,Ol),n=!1,r="invalid_cache_path";try{n=(await Wr.stat(await Wr.realpath(e))).isDirectory()}catch(o){let i=ns(o);r=i===void 0?"unknown":ts[i]??"filesystem_error"}if(!n){hn(`[pm] warning: history_drift_cache_invalidation_failed:${r}
81
- `);return}try{await Wr.rm(t,{force:!0})}catch(o){let i=ns(o);if(ae(o))return;let s=i===void 0?"unknown":ts[i]??"filesystem_error";hn(`[pm] warning: history_drift_cache_invalidation_failed:${s}
82
- `)}}async function gn(e){let t=Ye.dirname(Ye.resolve(e));Ye.basename(t)==="history"&&await Tl(Ye.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]="bf6a9831-134c-5dc2-a3e2-74dca00cf22c")}catch{}})();var Al={front_matter:{},body:""},Ae=3,Et=[1,2,3],Rl=1,Nl=[1];function as(e){return J(j(e))}function Je(e){return J(j(e))}function sy(e){return J(j(e))}function Xr(e){let t={...e,record_hash_version:Rl},{record_hash:n,...r}=t;return{...t,record_hash:as(r)}}function En(e){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(!Nl.includes(e.record_hash_version))return{ok:!1,error:"unsupported_record_hash_version"};let{record_hash:t,...n}=e;return as(n)===e.record_hash?{ok:!0,coverage:"record_and_item_state"}:{ok:!1,error:"record_hash_mismatch"}}function Dl(e,t){let n={before_hash:e.before_hash,after_hash:e.after_hash,patch_hash:Je(e.patch)};return 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 cs(e,t,n={}){let r=En(e);if(!r.ok)throw new TypeError(r.error);let o=Je(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||o!==Je(t.patch),s=Xr({...t,...i?{reanchor_evidence:[...t.reanchor_evidence??[],Dl(e,n)]}:{}}),a=Kr(s);if(!a.ok)throw new TypeError(a.error);return s}function ds(e){return!Array.isArray(e)||Object.keys(e).length!==e.length?!1:e.every(t=>!Qe(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 jl(e){return Qe(e)&&typeof e.ts=="string"&&typeof e.author=="string"&&typeof e.op=="string"&&typeof e.before_hash=="string"&&typeof e.after_hash=="string"&&ds(e.patch)}function Pl(e){let t=e.record_hash_version!==void 0,n=e.record_hash!==void 0;return t===n}function Ll(e){return!Qe(e)||!Pl(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&&!ds(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}$/u.test(e.record_hash))?!1:e.record===void 0||jl(e.record)}function Ml(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.record_hash_version===e.record_hash_version&&t.record_hash===e.record_hash&&Je(t.patch)===e.patch_hash}function Fl(e,t,n){if(t.patch&&Je(t.patch)!==t.patch_hash)return{kind:"patch_hash_mismatch"};if(t.record)return Ml(t)?{kind:"record",entry:t.record}:{kind:"record_hash_mismatch"};let r=t.patch??e.patch;if(Je(r)!==t.patch_hash)return{kind:"digest_only"};let o={...e,before_hash:t.before_hash,after_hash:t.after_hash,patch:r,...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 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 Kr(e){let t=e.reanchor_evidence;if(t===void 0)return{ok:!0,coverage:"none"};if(!Array.isArray(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];if(!(r in t)||!Ll(o))return{ok:!1,error:"rewrite_evidence_invalid"};let i=Fl(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(!En(i.entry).ok)return{ok:!1,error:"rewrite_evidence_record_hash_mismatch"};n=i.entry}return{ok:!0,coverage:"complete"}}function bn(e,t){return(e??"").localeCompare(t??"")}function rs(e,t){return(e??0)-(t??0)}function me(e,t,n){return JSON.stringify(e??n).localeCompare(JSON.stringify(t??n))}function $l(e,t){return[e.scope.localeCompare(t.scope),bn(e.path,t.path),bn(e.command,t.command),rs(e.timeout_seconds,t.timeout_seconds),bn(e.pm_context_mode,t.pm_context_mode),+!!e.shared_host_safe-+!!t.shared_host_safe,me(e.env_clear,t.env_clear,[]),me(e.env_set,t.env_set,{}),me(e.assert_stdout_contains,t.assert_stdout_contains,[]),me(e.assert_stdout_regex,t.assert_stdout_regex,[]),me(e.assert_stderr_contains,t.assert_stderr_contains,[]),me(e.assert_stderr_regex,t.assert_stderr_regex,[]),rs(e.assert_stdout_min_lines,t.assert_stdout_min_lines),me(e.assert_json_field_equals,t.assert_json_field_equals,{}),me(e.assert_json_field_gte,t.assert_json_field_gte,{}),bn(e.note,t.note)].find(r=>r!==0)??0}function zl(e){return!e||e==="/"?[]:e.startsWith("/")?e.slice(1).split("/").map(t=>t.replaceAll("~1","/").replaceAll("~0","~")):[]}function Hl(e,t){let n=zl(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:Qe(r)&&Object.prototype.hasOwnProperty.call(r,o)?r[o]:void 0;if(s===void 0)return!1;r=s}return!0}function Ul(e,t){let n=[],r=structuredClone(e);for(let o of t){let i=o.op==="replace"&&!Hl(r,o.path)?{...o,op:"add"}:o;n.push(i),r=ss.applyPatch(r,[i],!0,!0).newDocument}return n}function wn(e,t,n=!1){if(!(e.metadata&&Object.keys(e.metadata).length>0))return{front_matter:{},body:e.body??""};let o=Q(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,...p})=>p)},...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($l)}:s;return{front_matter:k(a,se),body:o.body}}function os(e){if(!(e.metadata&&Object.keys(e.metadata).length>0))return{metadata:{},body:e.body??""};let n=Q(e);return{metadata:k(n.metadata,se),body:n.body}}function ay(e){return ls(e,Ae)}function ls(e,t){if(!Et.some(n=>n===t))throw new TypeError(`unsupported_item_hash_version:${String(t)}`);return J(j(wn(e,t)))}function us(e,t){let n=ls(e,t);return t===2?[n,J(j(wn(e,t,!0)))]:[n]}function cy(){return J(j(Al))}function Ze(e){let t=wn(e.before,Ae),n=wn(e.after,Ae),r=os(e.before),o=os(e.after),i=ss.compare(r,o),s=Ul(r,i),a=yi(e.author),c=a.harness?Object.fromEntries(Object.entries(mi().provenance_outcomes).filter(([,f])=>f.resolver!==void 0&&f.status!=="resolved")):void 0,d=c===void 0||Object.keys(c).length===0?e.context:{...e.context,agent_provenance_outcomes:c},u={ts:e.nowIso,author:e.author,author_source:e.authorSource??pi(e.author),...a.harness?{agent_harness:a.harness}:{},...a.model?{agent_model:a.model}:{},...a.model_source?{agent_model_source:a.model_source}:{},...a.instance?{agent_instance:a.instance}:{},...a.provenance?{agent_provenance:a.provenance}:{},...a.episode?{agent_episode:a.episode}:{},op:e.op,patch:s,before_hash:J(j(t)),after_hash:J(j(n)),item_hash_version:Ae,message:e.message===void 0?void 0:e.message,...d===void 0?{}:{context:d}};return Xr({...u,event_class:Xe(u)})}function Qe(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Br(e){return new x(e,I.GENERIC_FAILURE,{code:"history_timestamp_invalid"})}function fs(e){let t=e.ts.trim();if(t.length===0)return le();if(!$e(t))throw Br("History timestamp must be a valid RFC 3339 date-time with millisecond precision");if(t!==e.ts)throw Br("History timestamp must not contain surrounding whitespace");return e.ts}function is(e,t){let n=e.ts;if(typeof n=="string"&&n.trim().length>0){if(!$e(n))throw Br("History timestamp must be a valid RFC 3339 date-time with millisecond precision");return e}return{...e,ts:t}}function qr(e,t){let n=fs(t);if(typeof e=="string"){let r;try{r=JSON.parse(e)}catch{return e}return Qe(r)?JSON.stringify(is(r,n)):e}return Qe(e)?JSON.stringify(is(e,n)):JSON.stringify(e)}async function Vl(e,t,n){if(n===!1)return!0;if(typeof n=="string")return await Ut(e,qr(n,t)),await gn(e),await Mr(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;return await Ut(o,qr(typeof r.line=="string"?r.line:r.entry??t,t)),await gn(o),await Mr(o),!0}async function et(e,t){let n=await mt("history_append",{history_path:e,entry:t});if(n.handled&&await Vl(e,t,n.result))return;let r=t.ts.trim().length>0?t:{...t,ts:fs(t)},o=Xr({...r,event_class:Xe(r)});await Vi(e,o,async()=>{await Ut(e,qr(o,o))}),await gn(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]="ce8dfbdf-8471-5843-8179-5608140330e1")}catch{}})();var Wl={metadata:{},body:""};function vn(){return structuredClone(Wl)}function yy(e,t=Ae){return Gr(e,t)[0]}function Gr(e,t){if(Object.keys(e.metadata).length===0||Array.isArray(e.metadata.tags))try{return us(kn(e),t)}catch{}let n=J(j({replay_fallback:!0,metadata:e.metadata,body:e.body}));return t===2?[n,n]:[n]}function ps(e,t,n,r){let o=Gr(e,n),i=Gr(t,n);return{beforeHashes:o,afterHashes:i,pairIndex:o.findIndex((s,a)=>s===r.before_hash&&i[a]===r.after_hash),beforeIndex:o.indexOf(r.before_hash),afterIndex:i.indexOf(r.after_hash)}}function kn(e){return{metadata:e.metadata,body:e.body}}function hy(e,t={}){return Q(kn(e),t)}function gy(e){if(!e.metadata||Object.keys(e.metadata).length===0)return{metadata:{},body:e.body??""};let t=Q(e);return{metadata:k(t.metadata,se),body:t.body}}function _s(e){return e==="/front_matter"?"/metadata":e.startsWith("/front_matter/")?`/metadata/${e.slice(14)}`:e}function Bl(e){return typeof e=="object"&&e!==null&&typeof e.op=="string"&&typeof e.path=="string"}function ys(e){return Array.isArray(e)?e.filter(Bl).map(t=>({...t,path:_s(t.path),from:typeof t.from=="string"?_s(t.from):void 0})):[]}function ql(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 Sn(e,t){try{let n=ys(t),r=Yr.applyPatch(structuredClone(e),n,!0,!1).newDocument;return ql(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 Xl(e){return[...new Set(e.map(t=>t.item_hash_version).filter(t=>t!==void 0&&Et.includes(t)))]}function hs(e){return e!==void 0&&!Et.includes(e)}function Kl(e,t){return e!==void 0?[e]:t===void 0?[...Et]:[t]}function gs(e){let t=En(e);if(!t.ok)return t.error;let n=Kr(e);return n.ok?void 0:n.error}function Gl(e,t){let n=gs(e);if(n)return{ok:!1,error:n};let r=Sn(t,e.patch);return r.ok?{ok:!0,document:r.document}:{ok:!1,error:"patch_apply_failed"}}function Yl(e,t){let n=gs(e);if(n)throw new TypeError(`${n}:entry_${t+1}`)}function bs(e){let t=vn(),n,r,o=[];for(let i=0;i<e.length;i+=1){let s=e[i],a=s.item_hash_version,c=hs(a);c&&o.push(`verify_failed:unsupported_item_hash_version:${String(a)}:entry_${i+1}`);let d=Gl(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=Kl(a,r).map(_=>({version:_,match:ps(t,d.document,_,s)})),p=f.find(({match:_})=>_.pairIndex>=0);if(p===void 0){let _=f.some(({match:E})=>E.beforeIndex>=0);return{ok:!1,errors:[...o,`verify_failed:${_?"after":"before"}_hash_mismatch:entry_${i+1}`]}}let y=p.version;t=d.document,n=y,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 In(e){let t=bs(e);return{ok:t.ok,errors:t.errors}}function ms(e,t){try{return{ok:!0,document:Yr.applyPatch(structuredClone(e),[t],!0,!1).newDocument}}catch{return{ok:!1}}}function Jl(e,t){let n=structuredClone(e),r=0,o=0;for(let a of ys(t)){let c=ms(n,a);if(c.ok){n=c.document;continue}if(a.op==="replace"){let d=ms(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 Ql(e){let t=Xl(e);if(t.length===1)return t[0];let n=bs(e);return n.ok&&n.item_hash_version!==void 0?n.item_hash_version:t.length===0?1:Ae}function Zl(e,t){let n=Sn(e,t.patch);if(n.ok)return{next:n.document,patch:t.patch,repaired:!1,converted:0,skipped:0};let r=Jl(e,t.patch);return{next:r.document,patch:Yr.compare(e,r.document),repaired:!0,converted:r.convertedReplaceToAdd,skipped:r.skippedOps}}function by(e,t=Ql(e),n={}){let r=e.findIndex(y=>hs(y.item_hash_version));if(r>=0)throw new TypeError(`unsupported_item_hash_version:${String(e[r]?.item_hash_version)}:entry_${r+1}`);let o=vn(),i=[],s=[],a=0,c=0,d=0,u=0,f,p=t!==1||e.some(y=>y.item_hash_version!==void 0);for(let y=0;y<e.length;y+=1){let _=e[y];Yl(_,y);let E=Zl(o,_),{next:v,patch:C,repaired:D,converted:F,skipped:$}=E;d+=F,u+=$,c+=Number(D);let U=ps(o,v,t,_);f===void 0||n.continuousHashSurface!==!0?f=[U.pairIndex,U.beforeIndex,U.afterIndex,Math.min(f??0,U.beforeHashes.length-1)].find(Io=>Io>=0):f=Math.min(f,U.beforeHashes.length-1);let je=U.beforeHashes[f],W=U.afterHashes[f],Ee=je!==_.before_hash||W!==_.after_hash;Ee&&(a+=1);let Y={..._,patch:C,before_hash:je,after_hash:W};p?Y.item_hash_version=t:delete Y.item_hash_version;let Pe=Y.item_hash_version!==_.item_hash_version;(Ee||D||Pe)&&(Y=cs(_,Y,{retainOriginalPatch:D})),i.push(Y),s.push({index:y+1,rehashed:Ee,patch_repaired:D,converted_replace_to_add:F,skipped_ops:$}),o=v}return{entries:i,finalDocument:o,entriesRehashed:a,entriesPatchRepaired:c,convertedReplaceToAdd:d,skippedOps:u,details:s,itemHashVersion:t,explicitItemHashVersion:p}}function wy(e){return e.length===0?"":`${e.map(t=>JSON.stringify(t)).join(`
83
- `)}
84
- `}import eu from"node:crypto";import ws 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]="6b3f1585-ab12-57ca-80eb-d3cebc384c52")}catch{}})();function vs(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 Jr(e){let t=e.trim().toLowerCase();return t.startsWith("#")&&(t=t.slice(1)),t}function vt(e,t){let n=vs(t),r=Jr(e);return r.startsWith(n)?r:`${n}${r}`}function tu(e){let t=Ko(e);if(t!==void 0)return t;let n="";for(let r=0;r<e;r+=1)n+=eu.randomInt(0,36).toString(36);return n}async function nu(e,t,n){let r=[...new Set(Object.values(n))].flatMap(o=>[ws.join(e,o,`${t}.md`),ws.join(e,o,`${t}.toon`)]);return(await Promise.all(r.map(o=>Me(o)))).some(Boolean)}var Es=4,ks=12;function ru(e){return typeof e!="number"||!Number.isFinite(e)?Es:Math.min(ks,Math.max(Es,Math.trunc(e)))}async function Oy(e,t,n={}){let r=ru(n.tokenLength),o=Math.min(r+6,ks),i=0;for(;r<=o;){for(let s=0;s<32;s+=1){let a=`${vs(t)}${tu(r)}`;if(n.probeExisting===!1||!await nu(e,a,n.typeToFolder??ve))return a;i+=1}r+=1}throw new Error(`Unable to generate unique id after ${i} attempts`)}import Re from"node:fs/promises";import Is from"node:path";import{randomUUID as ou}from"node:crypto";import{createRequire as iu}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]="97cfeab2-8e3f-5b70-9f64-10494158d141")}catch{}})();var su="metadata-query-index.sqlite",kt="4";function au(e){try{return e(["node","sqlite"].join(":")).DatabaseSync??null}catch{return null}}var xn;function cu(e,t){let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>=22?au(t):null}function St(){return xn!==void 0||(xn=cu(process.versions.node,iu(import.meta.url))),xn}function Ss(e,t){return Math.max(0,Math.floor(e===void 0?t:e))}function tt(e){return Is.join(e,"runtime",su)}function du(e){e.exec(`
85
- PRAGMA foreign_keys = ON;
86
- PRAGMA journal_mode = OFF;
87
- PRAGMA synchronous = OFF;
88
- CREATE TABLE metadata (
89
- key TEXT PRIMARY KEY,
90
- value TEXT NOT NULL
91
- ) STRICT;
92
- CREATE TABLE items (
93
- id TEXT PRIMARY KEY,
94
- relative_path TEXT NOT NULL UNIQUE,
95
- metadata_json TEXT NOT NULL,
96
- status TEXT NOT NULL,
97
- type TEXT NOT NULL,
98
- priority INTEGER NOT NULL,
99
- updated_at TEXT NOT NULL,
100
- created_at TEXT NOT NULL,
101
- parent TEXT,
102
- assignee TEXT,
103
- sprint TEXT,
104
- release TEXT
105
- ) STRICT;
106
- CREATE INDEX items_default_order
107
- ON items(priority, updated_at DESC, id);
108
- CREATE INDEX items_status_default_order
109
- ON items(status, priority, updated_at DESC, id);
110
- CREATE INDEX items_type_default_order
111
- ON items(type, priority, updated_at DESC, id);
112
- CREATE INDEX items_parent_default_order
113
- ON items(parent, priority, updated_at DESC, id);
114
- CREATE TABLE item_metadata_keys (
115
- item_id TEXT NOT NULL,
116
- key TEXT NOT NULL,
117
- PRIMARY KEY(item_id, key),
118
- FOREIGN KEY(item_id) REFERENCES items(id) ON DELETE CASCADE
119
- ) STRICT;
120
- CREATE INDEX item_metadata_keys_key_item
121
- ON item_metadata_keys(key, item_id);
122
- CREATE TABLE item_linked_files (
123
- item_id TEXT NOT NULL,
124
- path TEXT NOT NULL,
125
- scope TEXT NOT NULL,
126
- note TEXT,
127
- PRIMARY KEY(item_id, path, scope),
128
- FOREIGN KEY(item_id) REFERENCES items(id) ON DELETE CASCADE
129
- ) STRICT;
130
- CREATE INDEX item_linked_files_path_scope_item
131
- ON item_linked_files(path, scope, item_id);
132
- CREATE VIRTUAL TABLE item_search USING fts5(
133
- id UNINDEXED,
134
- title,
135
- description,
136
- tags,
137
- tokenize = 'unicode61'
138
- );
139
- `)}function Tn(e,t,n){e.prepare("INSERT INTO metadata(key, value) VALUES (?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value").run(t,n)}function xs(e,t){let n=t.metadata;e.prepare(`INSERT INTO items(
140
- id, relative_path, metadata_json, status, type, priority,
141
- updated_at, created_at, parent, assignee, sprint, release
142
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
143
- ON CONFLICT(id) DO UPDATE SET
144
- relative_path = excluded.relative_path,
145
- metadata_json = excluded.metadata_json,
146
- status = excluded.status,
147
- type = excluded.type,
148
- priority = excluded.priority,
149
- updated_at = excluded.updated_at,
150
- created_at = excluded.created_at,
151
- parent = excluded.parent,
152
- assignee = excluded.assignee,
153
- sprint = excluded.sprint,
154
- 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 id = ?").run(n.id),e.prepare("INSERT INTO item_search(id, title, description, tags) VALUES (?, ?, ?, ?)").run(n.id,n.title,n.description,n.tags.join(" "));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 Os(e){let t=tt(e.pmRoot),n=St();if(!n){await Re.rm(t,{force:!0});return}await Re.mkdir(Is.dirname(t),{recursive:!0});let r=`${t}.${ou()}.tmp`,o;try{o=new n(r),du(o),o.exec("BEGIN IMMEDIATE"),Tn(o,"version",kt),Tn(o,"context_fingerprint",e.contextFingerprint),Tn(o,"source_cursor",e.sourceCursor);for(let i of e.rows)xs(o,i);o.exec("COMMIT"),o.close(),o=void 0,await Re.rm(t,{force:!0}),await Re.rename(r,t)}catch(i){throw o?.close(),await Promise.allSettled([Re.rm(r,{force:!0})]),i}}function Cn(e){return Object.fromEntries(e.prepare("SELECT key, value FROM metadata").all().map(t=>[String(t.key),String(t.value)]))}async function Ts(e){let t=St();if(!t)return!1;let n=tt(e.pmRoot),r;try{await Re.access(n),r=new t(n),r.exec("PRAGMA foreign_keys = ON");let o=Cn(r);if(o.version!==kt||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 id FROM items WHERE relative_path = ?"),a=r.prepare("DELETE FROM item_search WHERE id = ?");for(let c of e.deletedRelativePaths??[]){let d=s.get(c);i.run(c),d&&a.run(d.id)}return e.row&&xs(r,e.row),Tn(r,"source_cursor",e.sourceCursor),r.exec("COMMIT"),r.close(),!0}catch{try{r?.exec("ROLLBACK")}catch{}return r?.close(),!1}}function On(e,t,n,r,o){!r||r.length===0||(e.push(`${n} ${o} (${r.map(()=>"?").join(", ")})`),t.push(...r))}function lu(e){let t=[],n=[];On(t,n,"status",e.statuses,"IN"),On(t,n,"status",e.excludeStatuses,"NOT IN"),On(t,n,"type",e.types,"IN"),On(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 Dy(e){let t=St();if(!t)return null;let n=e.query??{},{where:r,parameters:o}=lu(n),i;try{i=new t(tt(e.pmRoot),{readOnly:!0});let s=Cn(i);if(s.version!==kt||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}
155
- 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(p=>{let y=JSON.parse(String(p.metadata_json));if(!y.id)throw new TypeError("Indexed metadata row has no id");return y});return i.close(),{source_cursor:s.source_cursor,total:Number(a.count),items:f}}catch{return i?.close(),null}}async function jy(e){let t=St();if(!t||e.paths.length===0)return null;let n;try{n=new t(tt(e.pmRoot),{readOnly:!0});let r=Cn(n);if(r.version!==kt||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
156
- FROM item_linked_files
157
- WHERE ${a}`).get(...s),d=Ss(e.limit,50),u=Ss(e.offset,0),f=n.prepare(`SELECT items.id, items.metadata_json
158
- FROM items
159
- WHERE EXISTS (
160
- SELECT 1 FROM item_linked_files
161
- WHERE item_linked_files.item_id = items.id AND ${a}
162
- )
163
- ORDER BY items.priority ASC, items.updated_at DESC, items.id ASC
164
- LIMIT ? OFFSET ?`).all(...s,d,u),p=[];if(f.length>0){let y=f.map(v=>String(v.id)),_=n.prepare(`SELECT item_id, path, scope, note
165
- FROM item_linked_files
166
- WHERE item_id IN (${y.map(()=>"?").join(", ")})
167
- AND ${a}
168
- ORDER BY path ASC, scope ASC`).all(...y,...s),E=new Map(y.map(v=>[v,[]]));for(let v of _){let C=String(v.item_id),D=E.get(C);D.push({path:String(v.path),scope:String(v.scope),...v.note===null?{}:{note:String(v.note)}}),E.set(C,D)}for(let v of f){let C=JSON.parse(String(v.metadata_json));p.push({item:C,files:E.get(String(v.id))})}}return n.close(),{source_cursor:r.source_cursor,total:Number(c.count),matches:p}}catch{return n?.close(),null}}async function Py(e){let t=St();if(!t)return null;let n;try{n=new t(tt(e.pmRoot),{readOnly:!0});let r=Cn(n);if(r.version!==kt||r.source_cursor!==e.expectedSourceCursor)return n.close(),null;let i=n.prepare(`SELECT items.metadata_json
169
- FROM item_search
170
- JOIN items ON items.id = item_search.id
171
- WHERE item_search MATCH ?
172
- ORDER BY bm25(item_search), items.priority, items.updated_at DESC, items.id
173
- 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 An(e){await Re.rm(tt(e),{force:!0})}import H from"node:fs/promises";import N from"node:path";import{createHash as uu,randomUUID as Ds}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]="8b8c705a-8d80-576f-8642-f6f686cdbed9")}catch{}})();var te=8,js=500,fu="metadata-derived-index",_u="metadata-cache.json",mu="metadata-cache-bodies.json",pu="metadata-cache-collections.json",yu="metadata-cache-delta.json",hu="metadata-cache-manifest.json",Cs=4,gu=["comments","notes","learnings","files","tests","test_runs","docs"];function Ps(){return Ht(ke())}function Nn(e){let t={...e},n={};for(let r of gu)r in t&&(n[r]=t[r],delete t[r]);return{light:t,heavy:n}}function Ls(e,t){return!t||Object.keys(t).length===0?e:{...e,...t}}function Ms(e,t,n,r){let o=uu("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 Dn(e){return N.join(e,"runtime",_u)}function jn(e){return N.join(e,"runtime",mu)}function Pn(e){return N.join(e,"runtime",pu)}function Zr(e){return N.join(e,"runtime",yu)}function eo(e){return N.join(e,"runtime",hu)}function Ln(e,t){let n=N.extname(e);return`${e.slice(0,-n.length)}.${t}${n}`}var bu=24,G=new Map,Mn=new WeakMap;function to(e){return Mn.get(e)??e.source_cursor}function wu(e,t){let n=to(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){Mn.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 Eu(e,t){if(!e)return;let n=to(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){Mn.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 vu(e,t){if(!e)return;let n=to(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){Mn.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 ku(e,t,n,r){!e||!r||e.context_fingerprint!==r.context_fingerprint||(wu(e,r),Eu(t,r),vu(n,r))}function Qr(e,t){G.size>=bu&&!G.has(e)&&zo(G),G.set(e,t)}async function pe(e,t){let n;try{n=await H.stat(e)}catch{return G.delete(e),null}let r=G.get(e);if(r&&It(r.signature,n.mtimeMs,n.ctimeMs,n.size))return G.delete(e),G.set(e,r),r.envelope;let o;try{o=t(await H.readFile(e,"utf8"))}catch{o=null}return Qr(e,{signature:{mtime_ms:n.mtimeMs,ctime_ms:n.ctimeMs,size:n.size},envelope:o}),o}async function Su(e,t,n){let r=a=>{let c=JSON.parse(a);return c.version!==te||typeof c.source_cursor!="string"||typeof c.entries!="object"||c.entries===null?null:c},o=Dn(e),i=await pe(o,r);if(!t||i===null||i.context_fingerprint===t)return i;let s=await pe(Ln(o,t),r);return s===null&&Tt(n,`metadata_cache_context_changed:${i.context_fingerprint}->${t}`),s}async function Iu(e,t){let n=i=>{let s=JSON.parse(i);return s.version!==te||typeof s.source_cursor!="string"||typeof s.bodies!="object"||s.bodies===null?null:s},r=jn(e),o=await pe(r,n);return t&&o?.context_fingerprint!==t?await pe(Ln(r,t),n):o}async function xu(e,t){let n=i=>{let s=JSON.parse(i);return s.version!==te||typeof s.source_cursor!="string"||typeof s.collections!="object"||s.collections===null?null:s},r=Pn(e),o=await pe(r,n);return t&&o?.context_fingerprint!==t?await pe(Ln(r,t),n):o}async function no(e){let t=Zr(e),n=await pe(t,r=>{let o=JSON.parse(r);return o.version!==te||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 H.stat(t),{envelope:null,invalid:!0}}catch{return{envelope:null,invalid:!1}}}async function ro(e){let t=eo(e),n=await pe(t,r=>{let o=JSON.parse(r);return o.version!==te||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 H.stat(t),await nt(e)}catch{}return null}async function xt(e,t){await H.mkdir(N.dirname(e),{recursive:!0}),await B(e,JSON.stringify(t));try{let r=await H.stat(e);Qr(e,{signature:{mtime_ms:r.mtimeMs,ctime_ms:r.ctimeMs,size:r.size},envelope:t})}catch{G.delete(e)}let n=N.dirname(N.dirname(e));if(e===Dn(n)||e===jn(n)||e===Pn(n)){let r=Ln(e,t.context_fingerprint);await B(r,JSON.stringify(t));try{let c=await H.stat(r);Qr(r,{signature:{mtime_ms:c.mtimeMs,ctime_ms:c.ctimeMs,size:c.size},envelope:t})}catch{G.delete(r)}let o=N.dirname(e),i=N.extname(e),s=N.basename(e,i),a=(await H.readdir(o,{withFileTypes:!0}).catch(()=>[])).filter(c=>c.isFile()&&c.name!==N.basename(e)&&c.name.startsWith(`${s}.`)&&c.name.endsWith(i)).map(c=>N.join(o,c.name));if(a.length>Cs){let c=(await Promise.all(a.map(async d=>{try{return{path:d,mtime:(await H.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-Cs)))await H.rm(d.path,{force:!0}),G.delete(d.path)}}}function Ou(e,t,n){return n?t===n&&e!==n:t==="toon"&&e!=="toon"}function Fs(e,t,n){return e===void 0||Ou(e,t,n)}function Tt(e,t){e&&!e.includes(t)&&e.push(t)}function It(e,t,n,r){return e.mtime_ms===t&&e.ctime_ms===n&&e.size===r}async function Tu(e,t,n){let r=N.join(e,t);try{let o=await H.readdir(r);return{folder:t,dirPath:r,files:o}}catch(o){return typeof o=="object"&&o!==null&&"code"in o&&!ae(o)&&Tt(n,`item_list_directory_read_failed:${t}`),{folder:t,dirPath:r,files:[]}}}async function Cu(e,t){try{let n=await H.stat(N.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 Rn(e,t){return Object.fromEntries(await Promise.all(t.map(async n=>await Cu(e,n))))}function Ot(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&&It(o,r.mtime_ms,r.ctime_ms,r.size)})}function Au(e){return Vt.some(t=>e.toLowerCase().endsWith(t))}function Ru(e,t,n,r,o,i){r||(e.metadata=!0),t&&!o&&(e.body=!0),n&&!i&&(e.collections=!0)}async function Nu(e,t,n){if(n)for(let r of await de({path:e,scope:"project"}))Tt(t,r)}function As(e,t,n,r){if(e)return t&&n?n.collections:r}async function Du(e,t,n){let r=await H.stat(e),o=r.mtimeMs,i=r.ctimeMs,{size:s}=r,a=Zn(e);await Nu(e,n.warnings,n.dispatchReadHooks);let c=n.previousEntries[t],d=!n.forceSourceRead&&c!==void 0&&It(c,o,i,s),u=n.previousBodies[t],f=!n.forceSourceRead&&u!==void 0&&It(u,o,i,s),p=n.previousCollections[t],y=!n.forceSourceRead&&p!==void 0&&It(p,o,i,s);if(!(!d||n.includeBody&&!f||n.includeCollections&&!y))return{mtimeMs:o,ctimeMs:i,size:s,itemFormat:a,lightMetadata:c.metadata,heavyMetadata:As(n.includeCollections,y,p,void 0),bodyLength:c.body_length,body:n.includeBody?u.body:void 0};let E=await H.readFile(e,"utf8"),v=rn(E,{format:a,schema:n.schema,extensionFieldNames:n.extensionFieldNames,onWarning:D=>Tt(n.warnings,D)}),C=Nn(v.metadata);return Ru(n.state.misses,n.includeBody,n.includeCollections,d,f,y),{mtimeMs:o,ctimeMs:i,size:s,itemFormat:a,lightMetadata:d?c.metadata:C.light,heavyMetadata:As(n.includeCollections,y,p,C.heavy),bodyLength:d?c.body_length:v.body.length,body:n.includeBody?v.body:void 0}}function ju(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?Ls(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};Fs(i?.itemFormat,r.itemFormat,n.preferredFormat)&&n.state.documentsById.set(o.id,{candidate:s,itemFormat:r.itemFormat})}async function Pu(e,t,n,r){try{let o=await Du(t,n,r);ju(t,n,r,o)}catch{Tt(r.warnings,`item_list_item_read_failed:${e}/${N.basename(t)}`)}}function Lu(e,t){return e&&e.context_fingerprint===t?e.entries:{}}function Mu(e,t){return e&&e.context_fingerprint===t?e.bodies:{}}function Fu(e,t){return e&&e.context_fingerprint===t?e.collections:{}}function $u(){return{newEntries:{},newBodies:{},newCollections:{},documentsById:new Map,misses:{metadata:!1,body:!1,collections:!1}}}function zu(e,t){let n=[];for(let{folder:r,dirPath:o,files:i}of e)for(let s of i){if(!Au(s))continue;let a=N.join(o,s),c=N.relative(t.pmRoot,a);n.push(Pu(r,a,c,t))}return n}async function Hu(e){if(!(!(e.state.misses.metadata||Object.keys(e.previousEntries).length!==Object.keys(e.state.newEntries).length||!Ot(e.existingCache?.directory_signatures,e.directorySignatures))&&e.existingCache!==null&&e.existingCache.context_fingerprint===e.contextFingerprint))try{await xt(Dn(e.pmRoot),{version:te,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,directory_signatures:e.directorySignatures,entries:e.state.newEntries}),await xt(eo(e.pmRoot),{version:te,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:N.relative(e.pmRoot,r.item_path),metadata:Nn(r.metadata).light,linkedFiles:r.metadata.files??[]}));n.length>=e.minimumIndexedItems?await Os({pmRoot:e.pmRoot,contextFingerprint:e.contextFingerprint,sourceCursor:e.sourceCursor,rows:n}):await An(e.pmRoot)}catch{}}async function Uu(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 xt(jn(e.pmRoot),{version:te,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,bodies:e.state.newBodies}).catch(()=>{})}async function Vu(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 xt(Pn(e.pmRoot),{version:te,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,collections:e.state.newCollections}).catch(()=>{})}async function oo(e,t,n={}){let r=await ro(e);return n.required!==!0&&(r===null||r.entry_count<js)?async()=>{}:K(e,fu,30,t,!1,!1,3e3)}async function Ky(e,t){let n=await ro(e);if(n===null)return null;let r=await no(e);if(r.invalid)return await nt(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&&!Ot(i,await Rn(e,t))?null:{source_cursor:o,entry_count:n.entry_count}}function Rs(e,t){let n=N.relative(e,t);return n===""||n===".."||n.startsWith(`..${N.sep}`)||N.isAbsolute(n)?null:n}async function nt(e){await Promise.all([Dn(e),jn(e),Pn(e),Zr(e),eo(e)].map(async t=>{await H.rm(t,{force:!0}),G.delete(t)})),await An(e)}async function Wu(e){if(e.mutation.document===null)return{entry:null,body:null,collections:null};let t=await H.stat(e.mutation.itemPath),n=Nn(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 Bu(e,t,n){return e?.context_fingerprint===t&&e.base_source_cursor===n?structuredClone(e.changes):{}}async function io(e){let t=Rs(e.pmRoot,e.itemPath),n=e.previousItemPath?Rs(e.pmRoot,e.previousItemPath):void 0;if(t===null||n===null)return await nt(e.pmRoot),["metadata_derived_index_path_invalidated"];try{let r=Ms(e.preferredFormat,e.typeToFolder,e.schema,Ps()),o=await ro(e.pmRoot);if(o===null||o.context_fingerprint!==r)return[];let i=o.source_cursor,s=await no(e.pmRoot);if(s.invalid)return await nt(e.pmRoot),["metadata_derived_index_refresh_failed"];let a=Bu(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 Wu({mutation:e});let d=Ds();return await xt(Zr(e.pmRoot),{version:te,context_fingerprint:r,base_source_cursor:i,source_cursor:d,directory_signatures:await Rn(e.pmRoot,[...new Set(Object.values(e.typeToFolder))]),changes:a}),await Ts({pmRoot:e.pmRoot,contextFingerprint:r,expectedSourceCursor:c,sourceCursor:d,row:e.document===null?null:{relativePath:t,metadata:Nn(e.document.metadata).light,linkedFiles:e.document.metadata.files},deletedRelativePaths:[...n===void 0?[]:[n],...e.document===null?[t]:[]]})||await An(e.pmRoot),[]}catch{return await nt(e.pmRoot).catch(()=>{}),["metadata_derived_index_refresh_failed"]}}function qu(e){return[...e.documentsById.values()].sort((t,n)=>t.candidate.metadata.id.localeCompare(n.candidate.metadata.id)).map(t=>t.candidate)}function Ns(e,t,n){return e?.context_fingerprint===t&&e.source_cursor===n}function Xu(e,t,n,r,o){return e.every(i=>(!t||r[i]!==void 0)&&(!n||o[i]!==void 0))}function Ku(e){let t=new Map;for(let[n,r]of Object.entries(e.previousEntries)){let o=Zn(n);if(!o)continue;let i=e.includeCollections?Ls(r.metadata,e.previousCollections[n]?.collections):r.metadata,s=t.get(i.id);Fs(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:N.join(e.pmRoot,n)}})}return[...t.values()].sort((n,r)=>n.candidate.metadata.id.localeCompare(r.candidate.metadata.id)).map(n=>n.candidate)}function Gu(e){return e.forceSourceScan||nr()||e.existingCache?.context_fingerprint!==e.contextFingerprint||e.entryKeys.length<e.minimumIndexedItems||!Ot(e.existingCache?.directory_signatures,e.directorySignatures)?!1:[!e.includeBody||Ns(e.existingBodyCache,e.contextFingerprint,e.existingCache.source_cursor),!e.includeCollections||Ns(e.existingCollectionsCache,e.contextFingerprint,e.existingCache.source_cursor)].every(Boolean)&&Xu(e.entryKeys,e.includeBody,e.includeCollections,e.previousBodies,e.previousCollections)}async function Fn(e,t,n,r,o,i={}){let s=i.includeBody!==!1,a=i.includeCollections!==!1,c=Ps(),d=Ms(t,n,o,c),u=await no(e);u.invalid&&await nt(e);let f=await Su(e,d,i.cacheDiagnostics),p=s?await Iu(e,d):null,y=a?await xu(e,d):null;ku(f,p,y,u.envelope);let _=Lu(f,d),E=Mu(p,d),v=Fu(y,d),C=[...new Set(Object.values(n))],D=await Rn(e,C),F=Object.keys(_),$=Math.max(1,Math.floor(i.derivedIndexMinimumItems??js));if(Gu({forceSourceScan:i.forceSourceScan===!0,contextFingerprint:d,existingCache:f,existingBodyCache:p,existingCollectionsCache:y,directorySignatures:D,entryKeys:F,minimumIndexedItems:$,includeBody:s,includeCollections:a,previousBodies:E,previousCollections:v}))return Ku({pmRoot:e,preferredFormat:t,includeBody:s,includeCollections:a,previousEntries:_,previousBodies:E,previousCollections:v});let U=await Promise.all(C.map(Ra=>Tu(e,Ra,r))),je=nr(),W=$u(),Ee={pmRoot:e,preferredFormat:t,warnings:r,schema:o,extensionFieldNames:c,includeBody:s,includeCollections:a,forceSourceRead:i.forceSourceScan===!0,dispatchReadHooks:je,previousEntries:_,previousBodies:E,previousCollections:v,state:W};await Promise.all(zu(U,Ee));let Y=await Rn(e,C),Pe=Ot(D,Y)?Y:{},Gn=W.misses.metadata||Object.keys(_).length!==Object.keys(W.newEntries).length||!Ot(f?.directory_signatures,Pe)||f===null?Ds():f.source_cursor;return await Hu({pmRoot:e,contextFingerprint:d,sourceCursor:Gn,existingCache:f,previousEntries:_,directorySignatures:Pe,state:W,minimumIndexedItems:$}),s&&await Uu({pmRoot:e,contextFingerprint:d,sourceCursor:Gn,existingBodyCache:p,previousBodies:E,state:W}),a&&await Vu({pmRoot:e,contextFingerprint:d,sourceCursor:Gn,existingCollectionsCache:y,previousCollections:v,state:W}),qu(W)}async function $s(e,t,n,r,o){return(await Fn(e,t,n,r,o,{includeBody:!1})).map(s=>({metadata:s.metadata,body:s.body??""}))}async function zs(e,t,n,r,o){return(await Fn(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]="d49d73c9-f988-5c3c-a22d-0580ee5526f6")}catch{}})();function ye(){let e=Fo();for(let t of ke()?.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]="924f7718-0527-5967-8ab0-53e8228bd665")}catch{}})();function Ct(e){if(typeof e!="string")return;let t=e.trim().toLowerCase();return t.length>0?t:void 0}function $n(e){return[e.parent_id,e.child_id,e.source,e.kind,e.holder_id,e.target_id??""].join("\0")}function Yu(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 Ju(e,t){let n=[...e].sort(),r=Yu(n,t),o=new Set,i=Qu(n,t),s=[];for(let a of r.reverse()){if(o.has(a))continue;let c=Zu(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 Qu(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 Zu(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 Hs(e){let t=new Map;for(let n of e){let r=Ct(n?.id);r&&!t.has(r)&&t.set(r,n)}return t}function ef(e,t,n){let r=Ct(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 tf(e,t,n,r){let o=Ct(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 Us(e,t){let n=new Map;for(let[r,o]of e){let i=ef(r,o,e);i&&n.set($n(i),i);for(let s of o.dependencies??[]){let a=tf(r,s,e,t);a&&n.set($n(a),a)}}return[...n.values()].sort((r,o)=>$n(r).localeCompare($n(o)))}function nh(e,t=ye()){return Us(Hs(e),t)}function nf(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 rf(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=Ct(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 zn(e,t=r=>r==="closed"||r==="canceled",n=ye()){let r=Hs(e),o=Us(r,n),i=of(o),s=new Set([...r].filter(([,c])=>t(c.status)).map(([c])=>c)),a=Ju([...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:nf(o,i.parents_by_child,s),divergences:rf(r,o,s)}}function rh(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 of(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 so(e,t){let n=new Set(t);return e.every(r=>n.has(r))}function oh(e,t,n,r,o){let i=Ct(n);if(!i)return;let s=zn(e,r,o),a=zn(t,r,o),c=a.divergences.find(f=>!s.divergences.some(p=>p.child_id===f.child_id&&p.scalar_parent_id===f.scalar_parent_id&&so(f.dependency_parent_ids,p.dependency_parent_ids)));if(c){let f=[c.scalar_parent_id,...c.dependency_parent_ids].sort();throw new x(`Hierarchy mutation would assign ${c.child_id} to multiple parents: ${f.join(", ")}.`,I.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(p=>p.child_id===f.child_id&&so(f.parent_ids,p.parent_ids)));if(d)throw new x(`Hierarchy mutation would assign ${d.child_id} to multiple parents: ${d.parent_ids.join(", ")}.`,I.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(p=>so(f.item_ids,p.item_ids)));if(u)throw new x(`Hierarchy mutation would create a cycle: ${u.item_ids.join(" -> ")}.`,I.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]="971d929f-12be-5648-93c9-8a9878b40dde")}catch{}})();function Hn(e){let t=e?.trim()??"";return/^[A-Za-z][A-Za-z0-9+.-]*:\/\//u.test(t)||/^(?:github|gitlab|jira|linear):/iu.test(t)}function Ne(e){let t=e?.trim().toLowerCase();return t==="global"||t==="external"}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="f3f3beb2-1d60-52fe-88ce-1ab3cb9dba0d")}catch{}})();var sf="global";function dh(e){let t=e?.trim();if(t)return Ne(t)?sf:t}function lh(e,t,n){let r=e.trim();return Ne(n)?r:vt(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]="e04a91fa-4625-50fd-9bfd-c712126baf0d")}catch{}})();function ot(e){if(typeof e!="string")return;let t=e.trim();if(!(!t||["none","null","n/a","na"].includes(t.toLowerCase())))return t}function At(e){let t=ot(e);return t?.toLowerCase()==="no-active-blocker"?void 0:t}function Rt(e,t,n=!0){let r=ot(e);return n&&(Ne(t)||r!==void 0&&Hn(r))}function ao(e,t){return Rt(e,t)?`external\0${e}`:`local\0${e.toLowerCase()}`}function Vs(e,t,n,r){return Rt(e,t)?r.get(e):n.get(e.toLowerCase())}function rt(e,t){let n=e.toLowerCase(),r=t.toLowerCase();return n!==r?n<r?-1:1:e!==t?e<t?-1:1:0}function af(e){let t=new Map;for(let n of e.dependencies??[]){if(typeof n!="object"||n===null)continue;let r=n,o=ot(r.id);if(!o)continue;let i=typeof r.kind=="string"?r.kind:"related",s=`${i}\0${ao(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 cf(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 af(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=rt(r.holder_id,o.holder_id);if(i!==0)return i;let s=rt(r.target_id,o.target_id);return s!==0?s:rt(r.kind,o.kind)})}function df(e,t,n,r,o){if(typeof n!="object"||n===null)return;let i=ot(n.id);if(!i||ao(i,n.source_kind)!==ao(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 lf(e,t=r=>r==="closed"||r==="canceled",n=ye()){let r=new Map;for(let o of e){if(typeof o?.id!="string"||o.id.trim().length===0)continue;let i=ot(o.blocked_by);if(i)for(let s of o.dependencies??[]){let a=df(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=rt(o.holder_id,i.holder_id);if(s!==0)return s;let a=rt(o.target_id,i.target_id);return a!==0?a:rt(o.dependency_kind,i.dependency_kind)})}function uf(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,p)=>{let y=ot(d);if(!y||r.has(y.toLowerCase())||Rt(y,void 0,p))return;let _={holder_id:c.id.trim(),target_id:y,kind:u,source:f,holder_status:c.status,legacy_terminal:t(c.status),no_active_blocker_sentinel:y.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;Ne(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 ff(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 _f(e){let t=new Map;for(let n of e){let r=At(n.blocked_by);r&&Rt(r)&&!t.has(r)&&t.set(r,r);for(let o of n.dependencies??[]){if(typeof o!="object"||o===null||!Rt(o.id,o.source_kind))continue;let i=At(o.id);i&&!t.has(i)&&t.set(i,i)}}return[...t.values()].sort((n,r)=>n.localeCompare(r))}var Ws=new WeakMap;function hh(e){return e.hierarchyIntegrity??Ws.get(e)}function mf(e,t=ye()){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 gh(e,t,n){let r=n??ye(),o=e.filter(_=>typeof _?.id=="string"&&_.id.trim().length>0),i=new Map(o.map(_=>[_.id.trim().toLowerCase(),_.id.trim()])),s=uf(o,t),a=ff(s);for(let _ of a)i.set(_.toLowerCase(),_);let c=_f(o),d=new Set(i.keys()),u=new Map;for(let _ of c){let E=_;for(;d.has(E.toLowerCase());)E=`external:${E}`;u.set(_,E),d.add(E.toLowerCase())}let f=o.map(_=>{let E=At(_.parent),v=At(_.blocked_by),C=(_.dependencies??[]).flatMap(D=>{if(typeof D!="object"||D===null)return[];let F=D,$=At(F.id);return $?[{id:Vs($,F.source_kind,i,u),kind:typeof F.kind=="string"?F.kind:"related"}]:[]});return{id:_.id.trim(),...E?{parent:i.get(E.toLowerCase())}:{},...v?{blocked_by:Vs(v,void 0,i,u)}:{},dependencies:C}}),p=zn(o,t,r),y={graph:$o.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:cf(o,t),orderingContradictions:lf(o,t,r),legacyAliasCounts:mf(o,r),hierarchyIntegrity:p};return Ws.set(y,p),y}import pf from"node:fs/promises";import it 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]="4df21a17-43c0-5b63-adf3-657699e6a058")}catch{}})();var Nt="_workspace";function co(e){return it.join(e,"history",`${Nt}.jsonl`)}function yf(e,t){return{metadata:{id:Nt,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 lo(e,t=e.length){let n=vn();for(let r of e.slice(0,t))n=Sn(n,r.patch).document;return kn(n)}function Bs(e){return"documents"in e.metadata&&typeof e.metadata.documents=="object"&&e.metadata.documents!==null&&!Array.isArray(e.metadata.documents)?e.metadata.documents:{}}function uo(e){throw new x(`Workspace history verification failed: ${e.join(", ")}`,I.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 hf(e,t){let n=it.resolve(t),r=it.relative(e,n).replaceAll("\\","/");if(r.length===0||r===".."||r.startsWith("../")||it.isAbsolute(r))throw new TypeError("Workspace history document path must stay inside the tracker root");return{documentPath:r,absolutePath:n}}async function Nh(e){let t=await qe(co(e),Nt),n=In(t);n.ok||uo(n.errors);let r=Bs(t.length===0?Le:lo(t)),o=[],i=[],s=[],a=[];for(let c of Object.keys(r).sort()){let d;try{let u=hf(e,it.resolve(e,c));if(d=await ce(u.absolutePath),d===null){s.push(c);continue}let f=JSON.parse(d);(j(f)===j(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 qs(e){let t=co(e.pmRoot),n=await qe(t,Nt),r=In(n);r.ok||uo(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=le(),s=n.length===0?Le:lo(n),a=Bs(s),c=a[e.documentPath];if(c!==void 0&&j(c)!==j(e.before))throw new x(`Workspace history state for "${e.documentPath}" changed outside the audited mutation path.`,I.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=yf({...a,[e.documentPath]:e.after},n.length===0?i:s.metadata.created_at),u=Ze({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 et(t,u),{entry:u,historyPath:t}}async function Dh(e){let t=await K(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await qs(e)}finally{await t()}}async function jh(e){let t=await K(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{let n=co(e.pmRoot),r=await qe(n,Nt),o=In(r);o.ok||uo(o.errors);let i=r.length===0?Le:lo(r),s=Ze({nowIso:le(),author:e.author,op:e.op,before:i,after:i,message:e.message,context:e.context});return await et(n,s),{entry:s,historyPath:n}}finally{await t()}}async function Xs(e,t){if(t===e.raw)return!1;let n=t===null?null:JSON.parse(t),r=JSON.parse(e.raw);await B(e.filePath,e.raw);try{(t!==null||e.recordCreation!==!1)&&await qs({pmRoot:e.pmRoot,documentPath:it.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 pf.rm(e.filePath,{force:!0}):await B(e.filePath,t),o}return!0}async function Ph(e){let t=await K(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{let n=await ce(e.filePath),r=await e.mutate(n);return{changed:await Xs({...e,raw:r.raw},n),result:r.result}}finally{await t()}}async function Ks(e){let t=await K(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await Xs(e,await ce(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]="0e135793-d2ed-505b-b73e-6db55218d8af")}catch{}})();var z={ok:!1},m=e=>typeof e=="string"?{ok:!0,value:e}:z,O=e=>typeof e=="boolean"?{ok:!0,value:e}:z;function A(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?z:{ok:!0,value:t}}function T(...e){return t=>typeof t=="string"&&e.includes(t)?{ok:!0,value:t}:z}function h(e,t){return n=>{if(!Array.isArray(n)||t!==void 0&&n.length>t)return z;let r=[];for(let o of n){let i=e(o);if(!i.ok)return z;r.push(i.value)}return{ok:!0,value:r}}}function _o(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}:z}function l(e){return t=>t===void 0?{ok:!0,value:void 0}:e(t)}function Un(e){return t=>{if(typeof t!="object"||t===null||Array.isArray(t))return z;let n={};for(let[r,o]of Object.entries(t)){let i=e(o);if(!i.ok)return z;n[r]=i.value}return{ok:!0,value:n}}}function S(e){return t=>{if(typeof t!="object"||t===null||Array.isArray(t))return z;let n=t,r={};for(let[o,i]of Object.entries(e)){let s=i(n[o]);if(!s.ok)return z;s.value!==void 0&&(r[o]=s.value)}return{ok:!0,value:r}}}var gf=S({key:m,values:h(m),required:l(O),aliases:l(h(m)),description:l(m)}),bf=S({command:T("create","update"),option:m,required:l(O),visible:l(O),enabled:l(O)}),wf=S({name:m,description:l(m),default_status:l(m),folder:l(m),aliases:l(h(m)),required_create_fields:l(h(m)),required_create_repeatables:l(h(m)),options:l(h(gf)),command_option_policies:l(h(bf))}),Ef=S({id:m,aliases:l(h(m)),roles:l(h(T(...xo))),description:l(m),order:l(A())}),vf=S({key:m,metadata_key:l(m),front_matter_key:l(m),cli_flag:l(m),cli_aliases:l(h(m)),description:l(m),type:l(T(...Oo)),commands:l(h(T(...To))),repeatable:l(O),required:l(O),required_on_create:l(O),required_types:l(h(m)),allow_unset:l(O)}),kf=e=>{if(!Array.isArray(e)||e.length!==2)return z;let[t,n]=e;return typeof t!="string"||typeof n!="string"?z:{ok:!0,value:[t,n]}},Sf=S({type:m,allowed_transitions:h(kf)}),If=l(S({version:l(A({int:!0})),files:l(S({types:l(m),statuses:l(m),fields:l(m),workflows:l(m)})),statuses:l(h(Ef)),fields:l(h(vf)),workflow:l(S({draft_status:l(m),open_status:l(m),in_progress_status:l(m),blocked_status:l(m),close_status:l(m),canceled_status:l(m)})),type_workflows:l(h(Sf)),unknown_field_policy:l(T(...Co))})),xf=l(S({preset:l(T(...Ao)),ownership_enforcement:l(T("none","warn","strict")),create_mode_default:l(T("progressive","strict")),close_validation_default:l(T("off","warn","strict")),require_close_reason:l(O),parent_reference:l(T("warn","strict_error")),metadata_profile:l(T("core","strict","custom")),force_required_for_stale_lock:l(O),create_default_type:l(m),workflow_enforcement:l(T("off","warn","strict")),duplicate_detection_mode:l(T("off","advisory","strict")),duplicate_detection_threshold:l(A({min:0,max:1})),duplicate_detection_limit:l(A({int:!0,min:0,max:20}))})),Of=S({name:m,disabled:l(O),require_trusted:l(O),require_provenance:l(O),sandbox_profile:l(T("none","restricted","strict")),allowed_capabilities:l(h(m)),blocked_capabilities:l(h(m)),allowed_surfaces:l(h(m)),blocked_surfaces:l(h(m)),allowed_commands:l(h(m)),blocked_commands:l(h(m)),allowed_actions:l(h(m)),blocked_actions:l(h(m)),allowed_services:l(h(m)),blocked_services:l(h(m))}),fo=T("block","warn"),Tf=e=>typeof e=="string"?fo(e):S({global:l(fo),project:l(fo)})(e),Cf=l(S({mode:l(T("off","warn","enforce")),trust_mode:l(T("off","warn","enforce")),pm_max_version_exceeded_mode:l(Tf),require_provenance:l(O),trusted_extensions:l(h(m)),default_sandbox_profile:l(T("none","restricted","strict")),allowed_extensions:l(h(m)),blocked_extensions:l(h(m)),allowed_capabilities:l(h(m)),blocked_capabilities:l(h(m)),allowed_surfaces:l(h(m)),blocked_surfaces:l(h(m)),allowed_commands:l(h(m)),blocked_commands:l(h(m)),allowed_actions:l(h(m)),blocked_actions:l(h(m)),allowed_services:l(h(m)),blocked_services:l(h(m)),extension_overrides:l(h(Of))})),De=_o(128),Af=S({harness:_o(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u),environment_keys:l(h(De,64)),model_environment_keys:l(h(De,64)),session_environment_keys:l(h(De,64)),provenance_environment_keys:l(Un(h(De,64))),provenance_resolvers:l(Un(T("ai_agent_version","claude_session_file"))),provenance_unavailable_dimensions:l(h(De,64)),argv_markers:l(h(De,64)),client_names:l(h(De,64))}),Rf=S({version:A({int:!0}),id_prefix:m,ids:l(S({token_length:l(A({int:!0,min:4,max:12}))})),author_default:m,agent_identity:l(S({probes_enabled:l(O),identity_vocabulary:l(S({version:A({int:!0,positive:!0}),aliases:Un(_o(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u))})),harness_signals:h(Af)})),mutation_guard:l(S({require_attributed_author:l(O),secret_guard:l(T("off","advise","block")),stale_in_progress_hours:l(A({int:!0,positive:!0}))})),item_format:l(T("toon","json_markdown")),locks:S({ttl_seconds:A({int:!0}),wait_ms:l(A({int:!0,min:0}))}),checkpoints:l(S({retention_days:l(A({int:!0,positive:!0}))})),output:S({default_format:T("toon","json")}),ux:l(S({deprecation_hints:l(O)})),history:l(S({missing_stream:T("auto_create","strict_error"),compact_policy:l(S({enabled:l(O),max_entries:l(A({int:!0,positive:!0})),trigger:l(T("health_warn","auto"))}))})),validation:l(S({sprint_release_format:T("warn","strict_error"),parent_reference:l(T("warn","strict_error")),metadata_profile:l(T("core","strict","custom")),metadata_required_fields:l(h(m)),lifecycle_stale_blocker_reason_patterns:l(h(m)),lifecycle_closure_like_blocked_reason_patterns:l(h(m)),lifecycle_closure_like_resolution_patterns:l(h(m)),lifecycle_closure_like_actual_result_patterns:l(h(m)),estimate_defaults_by_type:l(Un(A({int:!0,positive:!0})))})),governance:xf,workflow:l(S({definition_of_done:h(m)})),testing:l(S({record_results_to_items:O,allow_untrusted_linked_tests:l(O)})),telemetry:l(S({enabled:O,first_run_prompt_completed:l(O),capture_level:l(T("minimal","redacted","max")),endpoint:l(m),installation_id:l(m),retention_days:l(A({int:!0,positive:!0}))})),agent_guidance:l(S({prompt_completed:l(O),declined:l(O),declined_at:l(m),template_version:l(A({int:!0,positive:!0})),last_checked_files:l(h(m))})),item_types:l(S({definitions:h(wf)})),schema:If,context:l(S({default_depth:l(T("brief","standard","deep")),activity_limit:l(A({int:!0,positive:!0})),stale_threshold_days:l(A({int:!0,positive:!0})),sections:l(S({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:S({enabled:h(m),disabled:h(m),policy:Cf}),search:S({score_threshold:A(),hybrid_semantic_weight:l(A()),max_results:A({int:!0}),embedding_model:m,embedding_corpus_max_characters:l(A()),embedding_batch_size:A({int:!0}),embedding_timeout_ms:l(A({int:!0})),scanner_max_batch_retries:A({int:!0}),provider:l(m),corpus_fields:l(h(m)),mutation_refresh_policy:l(T("cache_only","semantic_configured","semantic_auto")),query_expansion:l(S({enabled:l(O),provider:l(m)})),rerank:l(S({enabled:l(O),model:l(m),top_k:l(A({int:!0,positive:!0}))})),bm25:l(S({k1:l(A()),b:l(A())}))}),providers:S({openai:S({base_url:m,api_key:m,model:m}),ollama:S({base_url:m,model:m})}),vector_store:S({adapter:l(m),collection_name:l(m),qdrant:S({url:m,api_key:m}),lancedb:S({path:m})})});function Gs(e){let t=Rf(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]="2d377bc4-c624-561c-9856-405c82099070")}catch{}})();var Nf={Epic:2880,Feature:480,Story:480,Milestone:2880,Task:120,Issue:60,Bug:60,Chore:30,Decision:15,Plan:120},Ys=120;function mo(e){return typeof e=="number"&&Number.isFinite(e)&&e>0}function Qs(e){let t=new Map;for(let[n,r]of Object.entries(e))t.set(n.toLowerCase(),r);return t}var Df=Qs(Nf),Js=new WeakMap;function jf(e){let t=Js.get(e);if(t)return t;let n=Qs(e);return Js.set(e,n),n}function $h(e,t){let n=(e??"").trim().toLowerCase();if(n.length===0)return Ys;if(t){let o=jf(t).get(n);if(mo(o))return Math.floor(o)}let r=Df.get(n);return mo(r)?Math.floor(r):Ys}function po(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||!mo(r)||(t[o]=Math.floor(r))}return t}import{stat as Pf}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]="60da76ea-0bd3-56a9-a2bc-d88ba76e1013")}catch{}})();var Vn=new Map;function Zs(e){return[...new Set(e.map(t=>t.trim()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}async function Lf(e){try{let t=await Pf(e);return{path:e,mtime_ms:t.mtimeMs,size:t.size}}catch{return{path:e,mtime_ms:null,size:null}}}async function he(e){let t=Zs(e),n=await Promise.all(t.map(r=>Lf(r)));return n.sort((r,o)=>r.path.localeCompare(o.path)),n}function Dt(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 ea(e){return Vn.get(e)}function Wn(e,t){let n=Zs(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));Vn.set(e,{tracked_paths:n,signatures:r,value:t.value})}function ge(e){if(e){Vn.delete(e);return}Vn.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]="5b95183e-9fd3-55cf-9059-8736f692e96e")}catch{}})();var Mf="settings:write",ia=Symbol("pm.settings.persist_source"),Ff=128,$f=new Set(["off","advisory","strict"]);function ta(e){return structuredClone(No[e])}function zf(e){return e==="minimal"||e==="default"||e==="strict"||e==="custom"?e:b.governance.preset}function na(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 Hf(e){return e.preset==="custom"?na({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):na({preset:e.preset},e)}function Uf(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),$f.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 qn(e){let t=e.governance??{},n=zf(t.preset),r=Uf(t);if(n==="custom"){let s=ta("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=ta(n),i=r.require_close_reason??o.require_close_reason;return{preset:n,...o,...r,require_close_reason:i}}function sa(){return structuredClone(b)}function aa(e){return e==="cache_only"||e==="semantic_configured"||e==="semantic_auto"?e:b.search.mutation_refresh_policy}function ca(e){return typeof e=="boolean"?e:b.search.query_expansion.enabled}function da(e){return typeof e!="string"?b.search.query_expansion.provider:e.trim()}function la(e){return typeof e=="boolean"?e:b.search.rerank.enabled}function ua(e){return typeof e!="string"?b.search.rerank.model:e.trim()}function fa(e){return typeof e=="number"&&Number.isFinite(e)&&Number.isInteger(e)&&e>0?e:b.search.rerank.top_k}function _a(e){if(typeof e!="string")return b.vector_store.collection_name;let n=e.trim().replaceAll(/[^a-zA-Z0-9_-]/g,"_").slice(0,Ff);return n.length>0?n:b.vector_store.collection_name}function yo(e){return{present:Array.isArray(e),values:Array.isArray(e)?structuredClone(e):[]}}function Vf(e,t){let n=e.schema,r=yo(n?.statuses),o=yo(n?.fields),i=yo(n?.type_workflows);return{source_settings:structuredClone(e),has_source_item_type_definitions:Array.isArray(e.item_types?.definitions),source_item_type_definitions:st(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:st(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 ma(e,t){Object.defineProperty(e,ia,{value:t,writable:!0,configurable:!0,enumerable:!1})}function pa(e){let t=e[ia];if(!(!t||typeof t!="object"))return t}function Bn(e){let t=structuredClone(e.settings),n=pa(e.settings);return n&&ma(t,n),{settings:t,metadata:{has_explicit_item_format:e.metadata.has_explicit_item_format},warnings:[...e.warnings]}}function Wf(e,t,n){let r=ft(t);return[n,_t(e,r.files.types,ut.types),_t(e,r.files.statuses,ut.statuses),_t(e,r.files.fields,ut.fields),_t(e,r.files.workflows,ut.workflows)]}async function Bf(e,t,n){let r=await he(t);Wn(e,{tracked_paths:t,signatures:r,value:Bn(n)})}async function qf(e,t,n){try{await Bf(e,t,n)}catch{ge(e)}}function ra(e,t){return e.find(n=>n.path===t)}function Xf(e,t,n){for(let r of n){let o=ra(e,r),i=ra(t,r);if(!o||!i||!Dt([o],[i]))return!1}return!0}async function ho(e,t,n,r,o){try{let i=await he(t);if(!Xf(r,i,o)){ge(e);return}Wn(e,{tracked_paths:t,signatures:i,value:Bn(n)})}catch{ge(e)}}function Kf(e,t){let n=ft(e.schema),r=st(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=Fe(r,t.runtime_item_type_definitions),s=Fe(n.statuses,t.runtime_schema_statuses),a=Fe(n.fields,t.runtime_schema_fields),c=Fe(o,t.runtime_schema_type_workflows);return{item_type_definitions:i?t.has_source_item_type_definitions?st(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 jt(e){return{settings:sa(),metadata:{has_explicit_item_format:!1},warnings:e?[e]:[]}}function Gf(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=e.item_format;return t==="toon"||t==="json_markdown"}function bo(e){return[...new Set((e??[]).map(t=>t.trim()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function ya(e){let t=b.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:bo(e?.last_checked_files??t.last_checked_files)}}function Z(e){return[...new Set((e??[]).map(t=>t.trim().toLowerCase()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function Yf(e){return e==="off"||e==="warn"||e==="enforce"?e:b.extensions.policy.mode}function Jf(e){return e==="off"||e==="warn"||e==="enforce"?e:b.extensions.policy.trust_mode}function ha(e){return e==="none"||e==="restricted"||e==="strict"?e:b.extensions.policy.default_sandbox_profile}function Qf(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=ha(e.sandbox_profile));let r=Z(e.allowed_capabilities),o=Z(e.blocked_capabilities),i=Z(e.allowed_surfaces),s=Z(e.blocked_surfaces),a=Z(e.allowed_commands),c=Z(e.blocked_commands),d=Z(e.allowed_actions),u=Z(e.blocked_actions),f=Z(e.allowed_services),p=Z(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),p.length>0&&(n.blocked_services=p),n}function Zf(e){let t=new Map;for(let n of e??[]){let r=Qf(n);r&&t.set(r.name,r)}return[...t.values()].sort((n,r)=>n.name.localeCompare(r.name))}function go(e){return e==="block"||e==="warn"?e:void 0}function e_(e){if(typeof e=="string")return go(e);if(typeof e=="object"&&e!==null&&!Array.isArray(e)){let t=go(e.global),n=go(e.project);return t===void 0&&n===void 0?void 0:{...t!==void 0?{global:t}:{},...n!==void 0?{project:n}:{}}}}function q(e,t){return Z(e?.[t]??b.extensions.policy[t])}function ga(e){let t=e_(e?.pm_max_version_exceeded_mode);return{mode:Yf(e?.mode),trust_mode:Jf(e?.trust_mode),...t!==void 0?{pm_max_version_exceeded_mode:t}:{},require_provenance:e?.require_provenance===!0,trusted_extensions:q(e,"trusted_extensions"),default_sandbox_profile:ha(e?.default_sandbox_profile),allowed_extensions:q(e,"allowed_extensions"),blocked_extensions:q(e,"blocked_extensions"),allowed_capabilities:q(e,"allowed_capabilities"),blocked_capabilities:q(e,"blocked_capabilities"),allowed_surfaces:q(e,"allowed_surfaces"),blocked_surfaces:q(e,"blocked_surfaces"),allowed_commands:q(e,"allowed_commands"),blocked_commands:q(e,"blocked_commands"),allowed_actions:q(e,"allowed_actions"),blocked_actions:q(e,"blocked_actions"),allowed_services:q(e,"allowed_services"),blocked_services:q(e,"blocked_services"),extension_overrides:Zf(e?.extension_overrides??b.extensions.policy.extension_overrides)}}function ba(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 be(e){return[...new Set((e??[]).map(t=>t.trim().toLowerCase()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function L(e,t){return e===void 0?t:e}function X(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:{}}function wo(e){return Array.isArray(e)?e:[]}function t_(e,t,n){return{...t.validation,...e.validation,parent_reference:n.parent_reference,metadata_profile:n.metadata_profile,metadata_required_fields:ba(e.validation?.metadata_required_fields),lifecycle_stale_blocker_reason_patterns:be(e.validation?.lifecycle_stale_blocker_reason_patterns??t.validation.lifecycle_stale_blocker_reason_patterns),lifecycle_closure_like_blocked_reason_patterns:be(e.validation?.lifecycle_closure_like_blocked_reason_patterns??t.validation.lifecycle_closure_like_blocked_reason_patterns),lifecycle_closure_like_resolution_patterns:be(e.validation?.lifecycle_closure_like_resolution_patterns??t.validation.lifecycle_closure_like_resolution_patterns),lifecycle_closure_like_actual_result_patterns:be(e.validation?.lifecycle_closure_like_actual_result_patterns??t.validation.lifecycle_closure_like_actual_result_patterns),estimate_defaults_by_type:po(e.validation?.estimate_defaults_by_type)}}function n_(e,t){return{enabled:e.telemetry?.enabled??t.telemetry.enabled,first_run_prompt_completed:e.telemetry?.first_run_prompt_completed??t.telemetry.first_run_prompt_completed,capture_level:e.telemetry?.capture_level??t.telemetry.capture_level,endpoint:e.telemetry?.endpoint??t.telemetry.endpoint,installation_id:e.telemetry?.installation_id??t.telemetry.installation_id,retention_days:e.telemetry?.retention_days??t.telemetry.retention_days}}function r_(e,t){return{...t.search,...e.search,mutation_refresh_policy:aa(e.search?.mutation_refresh_policy),query_expansion:{...t.search.query_expansion,...e.search?.query_expansion,enabled:ca(e.search?.query_expansion?.enabled),provider:da(e.search?.query_expansion?.provider)},rerank:{...t.search.rerank,...e.search?.rerank,enabled:la(e.search?.rerank?.enabled),model:ua(e.search?.rerank?.model),top_k:fa(e.search?.rerank?.top_k)}}}function o_(e,t){return{adapter:e.vector_store.adapter??t.vector_store.adapter,collection_name:_a(e.vector_store.collection_name),qdrant:{...t.vector_store.qdrant,...e.vector_store.qdrant},lancedb:{...t.vector_store.lancedb,...e.vector_store.lancedb}}}function i_(e,t){return e.item_format==="json_markdown"?"toon":e.item_format??t.item_format}function s_(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 a_(e,t){return{openai:{...t.providers.openai,...e.providers.openai},ollama:{...t.providers.ollama,...e.providers.ollama}}}function st(e){let t=(e??[]).map(r=>jo(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 wa(e){let t=sa(),n=qn({governance:e.governance??{preset:"default"}});return{...t,...e,item_format:i_(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:t_(e,t,n),governance:n,workflow:{definition_of_done:[...e.workflow?.definition_of_done??t.workflow.definition_of_done]},testing:{record_results_to_items:e.testing?.record_results_to_items??t.testing.record_results_to_items,allow_untrusted_linked_tests:e.testing?.allow_untrusted_linked_tests??t.testing.allow_untrusted_linked_tests},telemetry:n_(e,t),agent_guidance:ya(e.agent_guidance??t.agent_guidance),item_types:{definitions:st(e.item_types?.definitions)},schema:ft(e.schema??t.schema),context:s_(e,t),extensions:{enabled:[...e.extensions.enabled],disabled:[...e.extensions.disabled],policy:ga(e.extensions.policy??t.extensions.policy)},search:r_(e,t),providers:a_(e,t),vector_store:o_(e,t)}}function c_(e){e.agent_identity=k(e.agent_identity,["probes_enabled","identity_vocabulary","harness_signals"]);let t=e.agent_identity;Object.hasOwn(t,"identity_vocabulary")&&(t.identity_vocabulary=k(X(t.identity_vocabulary),["version","aliases"])),e.agent_identity.harness_signals=wo(e.agent_identity.harness_signals).map(n=>k(X(n),["harness","environment_keys","model_environment_keys","session_environment_keys","provenance_environment_keys","provenance_resolvers","provenance_unavailable_dimensions","argv_markers","client_names"])),e.locks=k(e.locks,["ttl_seconds","wait_ms"]),e.ids=k(e.ids,["token_length"]),e.mutation_guard=k(e.mutation_guard,["require_attributed_author","secret_guard","stale_in_progress_hours"]),e.checkpoints=k(e.checkpoints,["retention_days"]),e.output=k(e.output,["default_format"]),e.ux=k(e.ux,["deprecation_hints"]),e.history=k(e.history,["missing_stream","compact_policy"]),e.validation=k(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=k(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=k(e.workflow,["definition_of_done"]),e.testing=k(e.testing,["record_results_to_items","allow_untrusted_linked_tests"]),e.telemetry=k(e.telemetry,["enabled","first_run_prompt_completed","capture_level","endpoint","installation_id","retention_days"]),e.agent_guidance=k(e.agent_guidance,["prompt_completed","declined","declined_at","template_version","last_checked_files"]),e.item_types=k(e.item_types,["definitions"]),e.schema=k(e.schema,["version","files","statuses","fields","workflow","type_workflows","unknown_field_policy"]),e.schema.files=k(X(e.schema.files),["types","statuses","fields","workflows"]),e.schema.workflow=k(X(e.schema.workflow),["draft_status","open_status","in_progress_status","blocked_status","close_status","canceled_status"]),e.context=k(e.context,["default_depth","activity_limit","stale_threshold_days","sections"]),e.context.sections=k(X(e.context.sections),["hierarchy","activity","progress","blockers","files","workload","staleness","tests"]),e.extensions=k(e.extensions,["enabled","disabled","policy"]),e.extensions.policy=k(X(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=wo(e.extensions.policy.extension_overrides).map(n=>k(X(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=k(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","mutation_refresh_policy","query_expansion","rerank"]),e.search.query_expansion=k(X(e.search.query_expansion),["enabled","provider"]),e.search.rerank=k(X(e.search.rerank),["enabled","model","top_k"]),e.providers=k(e.providers,["openai","ollama"]),e.providers.openai=k(X(e.providers.openai),["base_url","api_key","model"]),e.providers.ollama=k(X(e.providers.ollama),["base_url","model"]),e.vector_store=k(e.vector_store,["adapter","collection_name","qdrant","lancedb"]),e.vector_store.qdrant=k(X(e.vector_store.qdrant),["url","api_key"]),e.vector_store.lancedb=k(X(e.vector_store.lancedb),["path"])}function d_(e){return{...e,locks:L(e.locks,b.locks),ids:L(e.ids,b.ids),agent_identity:L(e.agent_identity,b.agent_identity),mutation_guard:L(e.mutation_guard,b.mutation_guard),checkpoints:L(e.checkpoints,b.checkpoints),output:L(e.output,b.output),ux:L(e.ux,b.ux),history:L(e.history,b.history),validation:L(e.validation,b.validation),workflow:L(e.workflow,b.workflow),testing:L(e.testing,b.testing),telemetry:L(e.telemetry,b.telemetry),agent_guidance:L(e.agent_guidance,b.agent_guidance),item_types:L(e.item_types,b.item_types),schema:L(e.schema,b.schema),context:L(e.context,b.context),extensions:L(e.extensions,b.extensions),search:L(e.search,b.search),providers:L(e.providers,b.providers),vector_store:L(e.vector_store,b.vector_store)}}function l_(e,t){return{...e.validation,parent_reference:t.parent_reference,metadata_profile:t.metadata_profile,metadata_required_fields:ba(e.validation?.metadata_required_fields),lifecycle_stale_blocker_reason_patterns:be(e.validation?.lifecycle_stale_blocker_reason_patterns??b.validation.lifecycle_stale_blocker_reason_patterns),lifecycle_closure_like_blocked_reason_patterns:be(e.validation?.lifecycle_closure_like_blocked_reason_patterns??b.validation.lifecycle_closure_like_blocked_reason_patterns),lifecycle_closure_like_resolution_patterns:be(e.validation?.lifecycle_closure_like_resolution_patterns??b.validation.lifecycle_closure_like_resolution_patterns),lifecycle_closure_like_actual_result_patterns:be(e.validation?.lifecycle_closure_like_actual_result_patterns??b.validation.lifecycle_closure_like_actual_result_patterns),estimate_defaults_by_type:po(e.validation?.estimate_defaults_by_type)}}function u_(e){return{...b.search,...e.search,mutation_refresh_policy:aa(e.search?.mutation_refresh_policy),query_expansion:{...b.search.query_expansion,...e.search?.query_expansion,enabled:ca(e.search?.query_expansion?.enabled),provider:da(e.search?.query_expansion?.provider)},rerank:{...b.search.rerank,...e.search?.rerank,enabled:la(e.search?.rerank?.enabled),model:ua(e.search?.rerank?.model),top_k:fa(e.search?.rerank?.top_k)}}}function f_(e){return{default_depth:e.context?.default_depth??b.context.default_depth,activity_limit:e.context?.activity_limit??b.context.activity_limit,stale_threshold_days:e.context?.stale_threshold_days??b.context.stale_threshold_days,sections:{...b.context.sections,...e.context?.sections}}}function __(e){return{...e.vector_store,adapter:e.vector_store?.adapter??b.vector_store.adapter,collection_name:_a(e.vector_store?.collection_name),qdrant:{...e.vector_store?.qdrant},lancedb:{...e.vector_store?.lancedb}}}function m_(e,t,n,r){return{...e,item_format:"toon",validation:l_(e,t),governance:t,agent_guidance:ya(e.agent_guidance),item_types:{definitions:r.item_type_definitions},schema:{...n,statuses:r.schema_statuses,fields:r.schema_fields,type_workflows:r.schema_type_workflows},search:u_(e),context:f_(e),extensions:{enabled:bo(e.extensions?.enabled),disabled:bo(e.extensions?.disabled),policy:ga(e.extensions?.policy)},vector_store:__(e)}}function Ea(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(!Fe(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:{};Ea(c,i,s),Object.keys(c).length>0?e[o]=c:delete e[o];continue}e[o]=structuredClone(s)}}}var va=["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 oa(e,t){let n=d_(e),r=qn(n),o=ft(n.schema),i=Kf(n,t),s=m_(n,r,o,i),a=k({...s,governance:Hf(r)},va);return c_(a),a}function p_(e,t={}){let n=oa(e,t.persist_source);if(t.persist_source){let r=wa(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=oa(r,t.persist_source),i=structuredClone(t.persist_source.source_settings);return Ea(i,o,n),`${JSON.stringify(k(i,va),null,2)}
174
- `}return`${JSON.stringify(n,null,2)}
175
- `}async function ka(e){let t=dt(e),n=[t];await de({path:t,scope:"project"});let r=ea(e);if(r){let d=await he(r.tracked_paths);if(Dt(d,r.signatures))return Bn(r.value)}let o=await he([t]),i;try{i=await ce(t)}catch{return jt("settings_read_fs_error")}if(i===null){let d=jt();return await ho(e,[t],d,o,[t]),d}let s=await he([t]);if(!Dt(o,s))return ge(e),ka(e);let a;try{a=JSON.parse(i)}catch{let d=jt("settings_read_invalid_json");return await ho(e,[t],d,s,[t]),d}let c=Gs(a);if(!c.success){let d=jt("settings_read_invalid_schema");return await ho(e,[t],d,s,[t]),d}try{let d=wa(c.data),u=Wf(e,d.schema,t);n=u;let f=await he(u),p=await Ho(e,d.schema),y=await Uo(e,d.schema),_=await he(u),E={...d,item_types:{definitions:st([...d.item_types.definitions,...wo(y.type_definitions_from_file)])},schema:y.schema};ma(E,Vf(c.data,E));let v={settings:E,metadata:{has_explicit_item_format:Gf(a)},warnings:[...c.data.item_format==="json_markdown"?["settings_item_format_legacy_json_markdown_coerced_to_toon"]:[],...p.created_paths.map(C=>`runtime_schema_bootstrap_created:${C}`),...y.warnings]};return p.created_paths.length===0?Dt(f,_)?Wn(e,{tracked_paths:u,signatures:_,value:Bn(v)}):ge(e):ge(e),v}catch{let d=jt("settings_read_merge_failed");return await qf(e,n,d),d}}async function tg(e){return(await ka(e)).settings}async function ng(e,t,n=Mf){let r=dt(e),o=p_(t,{persist_source:pa(t)});try{await Ks({pmRoot:e,filePath:r,raw:o,op:n,author:gi(void 0,t.author_default),lockTtlSeconds:t.locks.ttl_seconds,lockWaitMs:t.locks.wait_ms,recordCreation:!1}),await ne({path:r,scope:"project",op:n})}finally{ge(e)}}import y_ 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]="58fd6fef-9c13-5c6a-9110-b760461896aa")}catch{}})();function g_(e){return[...new Set(e.filter(t=>t.trim().length>0))].sort((t,n)=>t.localeCompare(n))}function b_(e,t){return new x(`Missing history stream for ${e}. ${t} requires history streams when settings.history.missing_stream is strict_error.`,I.NOT_FOUND)}async function w_(e,t){return await Do(h_.dirname(e)),await(await y_.open(e,"a")).close(),ne({path:e,scope:"project",op:`${t}:history:auto_create`})}async function Eo(e){return E_({pmRoot:e.pmRoot,settings:e.settings,itemIds:[e.itemId],commandLabel:e.commandLabel})}async function E_(e){let t=g_(e.itemIds),n=[],r=[];for(let o of t){let i=lt(e.pmRoot,o);if(!await Me(i)){if(e.settings.history.missing_stream==="strict_error")throw b_(o,e.commandLabel);r.push(...await w_(i,e.commandLabel)),r.push(`history_stream_auto_created:${o}`),n.push(o)}}return{auto_created_ids:n,warnings:r}}import ko from"node:fs/promises";import Xn 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]="8b0efe32-43f5-51ed-b1d5-5c26a3ae5bf0")}catch{}})();function we(e,t){return typeof e=="object"&&e!==null&&"code"in e&&e.code===t}function So(e){let t=["--pm-path",e,"init","--defaults","--agent-guidance","skip"];return{suggested_retry:`pm ${t.map(n=>`'${n.replaceAll("'",`'"'"'`)}'`).join(" ")}`,suggested_retry_args:t}}function Kn(e){return new x(`Tracker root is not a directory at ${e}.`,I.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 vo(e){return new x(`Tracker root is not readable at ${e}.`,I.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=Xn.resolve(e),n=Xn.parse(t).root,r=Xn.dirname(t);for(;r!==n;){let o;try{o=await ko.stat(r)}catch(i){if(we(i,"ENOTDIR"))throw Kn(e);if(!we(i,"ENOENT"))throw i;r=Xn.dirname(r);continue}if(!o.isDirectory())throw Kn(e);return}}async function at(e){let t;try{t=await ko.stat(e)}catch(n){throw we(n,"ENOENT")?(await v_(e),new x(`Tracker is not initialized at ${e}. Tracker root does not exist. Run pm init first.`,I.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:So(e)})):we(n,"ENOTDIR")?Kn(e):we(n,"EACCES")||we(n,"EPERM")?vo(e):n}if(!t.isDirectory())throw Kn(e);if(process.platform!=="win32"&&((t.mode&292)===0||(t.mode&73)===0))throw vo(e);try{await(await ko.opendir(e)).close()}catch(n){throw we(n,"EACCES")||we(n,"EPERM")?vo(e):n}}async function k_(e){if(await at(e),!await Me(dt(e)))throw new x(`Tracker is not initialized at ${e}. Run pm init first.`,I.NOT_FOUND,{code:"tracker_not_initialized",reason:"settings_missing",resolved_path:e,nextSteps:["Initialize the selected tracker root with the emitted retry."],recovery:So(e)})}import ct from"node:fs/promises";import S_ 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]="bffd3114-3e85-58ae-90c7-eea5069cdb89")}catch{}})();async function I_(e){try{return await ct.access(e),!0}catch{return!1}}function x_(e,t){e&&(e.includes(t)||e.push(t))}function Sa(e){return e??Ht(ke())}function O_(e){return e==="toon"?["toon","json_markdown"]:e==="json_markdown"?["json_markdown","toon"]:["toon","json_markdown"]}async function Ia(e,t,n="pm-",r,o=ve){let i=t.trim(),s=i.startsWith("#")?i.slice(1):i;if(s.length===0)return null;let a=vt(t,n),c=Jr(t),d=[...new Set([s,a,c])].filter(p=>p.length>0),u=Object.entries(o),f=O_(r);for(let p of d)for(let[y]of u)for(let _ of f){let E=Qn(e,y,p,_,o);if(await I_(E))return{id:p,type:y,itemPath:E,item_format:_}}return null}async function xa(e,t={}){let n=await ct.readFile(e.itemPath,"utf8");await de({path:e.itemPath,scope:"project"});let r=rn(n,{format:e.item_format,schema:t.schema,extensionFieldNames:Sa(t.extensionFieldNames),onWarning:o=>x_(t.warnings,o)});return{raw:n,document:r}}async function T_(e,t,n=ve,r,o){return await at(e),(await $s(e,t,n,r,o)).map(s=>s.metadata)}async function $g(e,t,n=ve,r,o){return await at(e),(await zs(e,t,n,r,o)).map(s=>s.metadata)}async function zg(e,t,n=ve,r,o,i={}){return await at(e),(await Fn(e,t,n,r,o,{includeBody:!0,forceSourceScan:i.forceSourceScan})).map(a=>({...a.metadata,body:a.body}))}function Oa(e){return{async get(t){let n=await Ia(e.pmRoot,t,e.settings.id_prefix,e.settings.item_format,e.typeToFolder);if(!n)return null;let{document:r}=await xa(n,{schema:e.settings.schema});return{item:r.metadata,body:r.body}},list:()=>T_(e.pmRoot,e.settings.item_format,e.typeToFolder,void 0,e.settings.schema)}}async function C_(e,t){let n=new Set(Object.values(t)),r=[];return await Promise.all([...n].map(async o=>{try{let i=await ct.readdir(S_.join(e,o));for(let s of i)for(let a of Vt)if(s.toLowerCase().endsWith(a)){r.push(s.slice(0,-a.length));break}}catch{}})),r}async function A_(e,t,n,r){let o=vt(t,n),i=await C_(e,r);if(i.length===0)return[];let s=Math.max(3,Math.floor(o.length/2));return i.map(c=>({id:c,distance:Pt(c,o,s)})).filter(c=>c.distance!==null).sort((c,d)=>c.distance-d.distance).slice(0,3).map(c=>c.id)}async function R_(e,t,n,r){let o=await A_(e,t,n,r),i=["Confirm the active --path/PM_PATH scope, then retry with a valid id."];return o.length>0&&i.unshift(`Did you mean one of: ${o.join(", ")}?`),new x(`Item ${t} not found`,I.NOT_FOUND,{nextSteps:i})}function N_(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 Ta(e){let t=e.typeToFolder??Po(e.settings,ke()).type_to_folder,n=await Ia(e.pmRoot,e.id,e.settings.id_prefix,e.settings.item_format,t);if(!n)throw await R_(e.pmRoot,e.id,e.settings.id_prefix,t);let r=await K(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 xa(n,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames,warnings:o}),a=s.metadata.assignee?.trim(),c=s.metadata.claim_principal?.trim()||a,d=hi(e.author),u=qn(e.settings);if(a&&c!==d&&!e.force&&!N_(e.op,e.bypassAssigneeConflict)){if(u.ownership_enforcement==="strict")throw new x(`Item ${n.id} is assigned to ${a}. Use --force to override.`,I.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 D_(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 j_(e){if(!e.skipItemWrite){if(e.effectiveTargetItemPath!==e.originalItemPath){await B(e.originalItemPath,e.originalRaw),await ct.rm(e.effectiveTargetItemPath,{force:!0});return}await B(e.originalItemPath,e.originalRaw)}}async function Ca(e){let t=await Ta({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=Q(i,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),d=Q(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=le();let p=Q(d,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames});await tr({pm_root:e.pmRoot,operation:e.op,before:c,after:p,changed_fields:u.changedFields,sdk:Oa({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:n})});let y=await Eo({pmRoot:e.pmRoot,settings:e.settings,itemId:r.id,commandLabel:e.op}),_="toon",E=ji(p,{format:_,schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),v=Qn(e.pmRoot,p.metadata.type,r.id,_,n),C=lt(e.pmRoot,r.id),D=await mt("item_store_write",{op:e.op,pm_root:e.pmRoot,item_id:r.id,source_item_path:r.itemPath,target_item_path:v,history_path:C,item_format:_,before:c,after:p,contents:E}),{effectiveTargetItemPath:F,effectiveSerializedAfter:$,skipItemWrite:U}=D_(D,v,E),je=await oo(e.pmRoot,e.author),W=[];try{U||await B(F,$),!U&&F!==r.itemPath&&await ct.rm(r.itemPath);let Y=Ze({nowIso:p.metadata.updated_at,author:e.author,op:e.op,before:c,after:p,message:e.message,context:f});try{await et(C,Y)}catch(Pe){throw await j_({skipItemWrite:U,effectiveTargetItemPath:F,originalItemPath:r.itemPath,originalRaw:o}),Pe}U||(W=await io({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:n,schema:e.settings.schema,itemPath:F,previousItemPath:r.itemPath,document:p}))}finally{await je()}let Ee=[...await ne({path:F,scope:"project",op:e.op,item_id:p.metadata.id,item_type:p.metadata.type,before:c,after:p,changed_fields:u.changedFields}),...await ne({path:C,scope:"project",op:`${e.op}:history`,item_id:p.metadata.id,item_type:p.metadata.type,before:c,after:p,changed_fields:u.changedFields})];return er({id:p.metadata.id,op:e.op,item_type:p.metadata.type,previous_status:c.metadata.status,status:p.metadata.status,previous:Wt(c.metadata,u.changedFields),current:Wt(p.metadata,u.changedFields),changed_fields:u.changedFields}),{item:p.metadata,body:p.body,changedFields:u.changedFields,warnings:[...s,...u.warnings??[],...y.warnings,...D.warnings,...W,...Ee]}}finally{await a()}}async function Hg(e){return Ca(e)}async function Ug(e){return Ca(e)}async function Vg(e){let t=await Ta({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=Sa(void 0),c=Q(o,{schema:e.settings.schema,extensionFieldNames:a});await tr({pm_root:e.pmRoot,operation:"delete",before:c,after:null,changed_fields:["deleted"],sdk:Oa({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:t.typeToFolder})});let d=await Eo({pmRoot:e.pmRoot,settings:e.settings,itemId:n.id,commandLabel:"delete"}),u=le(),f=Le,p=Ze({nowIso:u,author:e.author,op:"delete",before:c,after:f,message:e.message}),y=lt(e.pmRoot,n.id),_=await mt("item_store_delete",{op:"delete",pm_root:e.pmRoot,item_id:n.id,item_path:n.itemPath,history_path:y,before:c}),E=n.itemPath,v=!1;if(_.handled&&typeof _.result=="object"&&_.result!==null){let $=_.result;typeof $.item_path=="string"&&$.item_path.trim().length>0&&(E=$.item_path),$.skip_delete===!0&&(v=!0)}if(e.dryRun===!0)return{item:c.metadata,changedFields:["deleted"],targetPath:E,warnings:[...i,...d.warnings,..._.warnings]};let C=await oo(e.pmRoot,e.author),D=[];try{v||await ct.rm(E);try{await et(y,p)}catch($){throw v||await B(E,r),$}v||(D=await io({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:t.typeToFolder,schema:e.settings.schema,itemPath:E,document:null}))}finally{await C()}let F=[...await ne({path:E,scope:"project",op:"delete",item_id:c.metadata.id,item_type:c.metadata.type,before:c,after:f,changed_fields:["deleted"]}),...await ne({path:y,scope:"project",op:"delete:history",item_id:c.metadata.id,item_type:c.metadata.type,before:c,after:f,changed_fields:["deleted"]})];return er({id:c.metadata.id,op:"delete",item_type:c.metadata.type,previous_status:c.metadata.status,previous:Wt(c.metadata,Object.keys(c.metadata)),changed_fields:["deleted"]}),{item:c.metadata,changedFields:["deleted"],warnings:[...i,...d.warnings,..._.warnings,...D,...F]}}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]="745b9c3b-538c-558f-b018-b406ca4318f0")}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]="a9b23a46-0bba-5174-8793-dfc37016d1fb")}catch{}})();function P_(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:Pt(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 Aa(e){return["pm",...e].map(t=>/^[A-Za-z0-9_./:@=-]+$/u.test(t)?t:JSON.stringify(t)).join(" ")}function Yg(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(p=>p.trim()))].filter(Boolean).sort((p,y)=>p.localeCompare(y));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:P_(r,o),u=Aa([...i,r,...s]),f=e.retry_command??(d?Aa([...i,d,...s]):void 0);return new x(`Unknown ${a} ${c} "${r}". Allowed: ${o.join(", ")}${e.message_suffix??""}`,e.exit_code??I.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}})}export{wl as a,Se as b,or as c,M_ as d,F_ as e,qt as f,dr as g,B_ as h,q_ as i,X_ as j,K_ as k,G_ as l,Y_ as m,gr as n,br as o,di as p,sm as q,am as r,cm as s,dm as t,lm as u,um as v,kr as w,mi as x,fm as y,_m as z,mm as A,lc as B,hi as C,gi as D,ki as E,pt as F,Tm as G,Cm as H,Ue as I,bi as J,ym as K,wi as L,uc as M,hm as N,Jt as O,_c as P,Em as Q,Zt as R,nn as S,rn as T,ji as U,Q as V,qe as W,Xe as X,ol as Y,mp as Z,pp as _,yp as $,$p as aa,zp as ba,Tl as ca,gn as da,Ae as ea,Et as fa,sy as ga,Xr as ha,En as ia,cs as ja,ay as ka,us as la,cy as ma,Ze as na,et as oa,Wl as pa,vn as qa,yy as ra,Gr as sa,kn as ta,hy as ua,gy as va,ys as wa,Sn as xa,bs as ya,In as za,Ql as Aa,by as Ba,wy as Ca,Nt as Da,co as Ea,Nh as Fa,Dh as Ga,jh as Ha,Ph as Ia,Ks as Ja,$h as Ka,qn as La,ka as Ma,tg as Na,ng as Oa,Eo as Pa,E_ as Qa,vs as Ra,Jr as Sa,vt as Ta,Oy as Ua,Dy as Va,jy as Wa,Py as Xa,js as Ya,gu as Za,oo as _a,Ky as $a,io as ab,Fn as bb,at as cb,k_ as db,Ia as eb,xa as fb,T_ as gb,$g as hb,zg as ib,Oa as jb,R_ as kb,Hg as lb,Ug as mb,Vg as nb,Yg as ob,Hn as pb,Ne as qb,dh as rb,lh as sb,ye as tb,nh as ub,zn as vb,rh as wb,of as xb,oh as yb,At as zb,cf as Ab,lf as Bb,uf as Cb,ff as Db,hh as Eb,gh as Fb};
176
- //# sourceMappingURL=chunk-5P4HVOWG.js.map