@unbrained/pm-cli 2026.11.1 → 2026.11.2

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 (146) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +18 -0
  3. package/CONTRIBUTING.md +1 -1
  4. package/dist/cli/migration-gates.js +1 -1
  5. package/dist/cli-bundle/bundle-manifest.json +1 -1
  6. package/dist/cli-bundle/chunks/{chunk-TMPO4CTZ.js → chunk-3A4NVHYS.js} +2 -2
  7. package/dist/cli-bundle/chunks/{chunk-UUN3WNMQ.js → chunk-3ZQQVJT2.js} +3 -3
  8. package/dist/cli-bundle/chunks/{chunk-TYERATXH.js → chunk-4HW253W2.js} +2 -2
  9. package/dist/cli-bundle/chunks/{chunk-F3ECOBKA.js → chunk-4OELCF3O.js} +2 -2
  10. package/dist/cli-bundle/chunks/{chunk-2GK2IVU5.js → chunk-533L6D2N.js} +3 -3
  11. package/dist/cli-bundle/chunks/{chunk-NILQ2ZMV.js → chunk-ABFFRQRO.js} +2 -2
  12. package/dist/cli-bundle/chunks/chunk-BFZUJ5QP.js +115 -0
  13. package/dist/cli-bundle/chunks/{chunk-SBVX5CMV.js → chunk-D52QQ7LP.js} +2 -2
  14. package/dist/cli-bundle/chunks/{chunk-WFBYKDB2.js → chunk-DAZFCSDV.js} +2 -2
  15. package/dist/cli-bundle/chunks/{chunk-ICT6E4IW.js → chunk-EN27ZQSV.js} +2 -2
  16. package/dist/cli-bundle/chunks/{chunk-MRUA2Z43.js → chunk-GK2CHAT3.js} +2 -2
  17. package/dist/cli-bundle/chunks/{chunk-MTRIGD7M.js → chunk-HOGKWJU5.js} +42 -42
  18. package/dist/cli-bundle/chunks/{chunk-WX25MU4N.js → chunk-J3JM36EH.js} +3 -3
  19. package/dist/cli-bundle/chunks/{chunk-O56O7NIE.js → chunk-JRXD7SIL.js} +2 -2
  20. package/dist/cli-bundle/chunks/{chunk-5KW4WUAK.js → chunk-K46GDAKX.js} +2 -2
  21. package/dist/cli-bundle/chunks/{chunk-N45IXPCA.js → chunk-KJLGBLR3.js} +2 -2
  22. package/dist/cli-bundle/chunks/{chunk-UEEG47TU.js → chunk-NGRPD3ZO.js} +2 -2
  23. package/dist/cli-bundle/chunks/chunk-OJR2YGXF.js +31 -0
  24. package/dist/cli-bundle/chunks/chunk-QHHFXNSQ.js +3 -0
  25. package/dist/cli-bundle/chunks/{chunk-Y7CKVU56.js → chunk-RGHLQGEX.js} +2 -2
  26. package/dist/cli-bundle/chunks/{chunk-6PKWKVS6.js → chunk-VEOFWE32.js} +2 -2
  27. package/dist/cli-bundle/chunks/chunk-ZNWDYDFF.js +129 -0
  28. package/dist/cli-bundle/chunks/{indexed-receipt-blobs-KGMJVFH2.js → indexed-receipt-blobs-IEJ2QOW3.js} +2 -2
  29. package/dist/cli-bundle/chunks/item-transaction-JHPBH6N7.js +2 -0
  30. package/dist/cli-bundle/chunks/{mutation-admission-BOOCJPCU.js → mutation-admission-QUNQZCZ5.js} +2 -2
  31. package/dist/cli-bundle/chunks/{register-list-query-23OX36Q3.js → register-list-query-NZTK3AXA.js} +2 -2
  32. package/dist/cli-bundle/chunks/{register-mutation-JPJ5YNDX.js → register-mutation-2OFAMOVH.js} +2 -2
  33. package/dist/cli-bundle/chunks/{register-operations-IGR7ERY5.js → register-operations-RFMM5KZ6.js} +2 -2
  34. package/dist/cli-bundle/chunks/{register-setup-BMIFKZZP.js → register-setup-6B6Q7M5L.js} +2 -2
  35. package/dist/cli-bundle/chunks/{settlement-hook-YWSWFOZY.js → settlement-hook-UTCEZBFT.js} +2 -2
  36. package/dist/cli-bundle/chunks/{stage-ON7CYYPM.js → stage-VLI4OBVX.js} +2 -2
  37. package/dist/cli-bundle/focused-chunks/{chunk-5TWS5KOM.js → chunk-3UD6F2KQ.js} +2 -2
  38. package/dist/cli-bundle/focused-chunks/{chunk-5WCQFH6D.js → chunk-4NVPDZLX.js} +2 -2
  39. package/dist/cli-bundle/focused-chunks/{chunk-PAT6QF63.js → chunk-4UUE3YXZ.js} +2 -2
  40. package/dist/cli-bundle/focused-chunks/{chunk-2Y77HWIX.js → chunk-5UDDRPYR.js} +2 -2
  41. package/dist/cli-bundle/focused-chunks/{chunk-RPUDOJVB.js → chunk-745IDMTD.js} +2 -2
  42. package/dist/cli-bundle/focused-chunks/{chunk-3NYWMUX3.js → chunk-B6OOKKOX.js} +3 -3
  43. package/dist/cli-bundle/focused-chunks/{chunk-JCR32IAO.js → chunk-EJJWOFP5.js} +2 -2
  44. package/dist/cli-bundle/focused-chunks/chunk-FUGYXUUL.js +80 -0
  45. package/dist/cli-bundle/focused-chunks/{chunk-Z7GIVH6B.js → chunk-HMXVTWIV.js} +2 -2
  46. package/dist/cli-bundle/focused-chunks/{chunk-UQIBGLDR.js → chunk-I4Z2SCV5.js} +2 -2
  47. package/dist/cli-bundle/focused-chunks/chunk-JLN5CFYM.js +2 -0
  48. package/dist/cli-bundle/focused-chunks/chunk-K4FMZB4Y.js +23 -0
  49. package/dist/cli-bundle/focused-chunks/{chunk-DFUTCKUF.js → chunk-MQVBWFJF.js} +2 -2
  50. package/dist/cli-bundle/focused-chunks/{chunk-6GMYW42K.js → chunk-NJFMG3IK.js} +2 -2
  51. package/dist/cli-bundle/focused-chunks/{chunk-6OKPYCLU.js → chunk-PCCZ72C3.js} +54 -54
  52. package/dist/cli-bundle/focused-chunks/chunk-PF553UVP.js +44 -0
  53. package/dist/cli-bundle/focused-chunks/{chunk-VFQAZLKO.js → chunk-Q23K6WLV.js} +2 -2
  54. package/dist/cli-bundle/focused-chunks/{chunk-LVA76N27.js → chunk-QNXXOFLQ.js} +2 -2
  55. package/dist/cli-bundle/focused-chunks/{chunk-JLXGRDTG.js → chunk-QVFE5LIX.js} +3 -3
  56. package/dist/cli-bundle/focused-chunks/{chunk-VS2ZFPXD.js → chunk-RUCG6UWN.js} +2 -2
  57. package/dist/cli-bundle/focused-chunks/{chunk-WX2RVS2Y.js → chunk-SGWYNU7T.js} +2 -2
  58. package/dist/cli-bundle/focused-chunks/chunk-TGS5RXBY.js +26 -0
  59. package/dist/cli-bundle/focused-chunks/{chunk-AL7SOFUL.js → chunk-WD43E7RU.js} +2 -2
  60. package/dist/cli-bundle/focused-chunks/{chunk-GE755ODZ.js → chunk-YM4AMP7H.js} +2 -2
  61. package/dist/cli-bundle/focused-chunks/{indexed-receipt-blobs-KHWT44EK.js → indexed-receipt-blobs-FT3KF6VJ.js} +2 -2
  62. package/dist/cli-bundle/focused-chunks/{item-transaction-7VLPA2SU.js → item-transaction-F4SN7TXJ.js} +2 -2
  63. package/dist/cli-bundle/focused-chunks/{mutation-admission-2DH27R5Y.js → mutation-admission-7R2FXJ5O.js} +2 -2
  64. package/dist/cli-bundle/focused-chunks/{settlement-hook-SJV52ZTV.js → settlement-hook-KMIBD4F2.js} +2 -2
  65. package/dist/cli-bundle/focused-chunks/{stage-FYOBWQA7.js → stage-6B3O2GZ6.js} +2 -2
  66. package/dist/cli-bundle/main.js +24 -24
  67. package/dist/cli-bundle/sdk-authoring.js +1 -1
  68. package/dist/cli-bundle/sdk-contracts.js +1 -1
  69. package/dist/cli-bundle/sdk-core.js +1 -1
  70. package/dist/cli-bundle/sdk-governance.js +1 -1
  71. package/dist/cli-bundle/sdk-graph.js +1 -1
  72. package/dist/cli-bundle/sdk-merge.js +57 -57
  73. package/dist/cli-bundle/sdk-query.js +1 -1
  74. package/dist/cli-bundle/sdk-runtime.js +1 -1
  75. package/dist/cli-bundle/sdk-testing.js +1 -1
  76. package/dist/cli-bundle/sdk.js +9 -9
  77. package/dist/core/extensions/extension-types.d.ts +5 -0
  78. package/dist/core/extensions/extension-types.js +1 -1
  79. package/dist/core/item/parse.js +2 -2
  80. package/dist/core/lock/lock-confinement.d.ts +55 -0
  81. package/dist/core/lock/lock-confinement.js +2 -0
  82. package/dist/core/lock/lock-gc.js +1 -1
  83. package/dist/core/lock/lock.js +2 -2
  84. package/dist/core/shared/errors.d.ts +6 -0
  85. package/dist/core/shared/errors.js +1 -1
  86. package/dist/core/store/settings-sections.d.ts +61 -0
  87. package/dist/core/store/settings-sections.js +3 -0
  88. package/dist/core/store/settings-validator.d.ts +4 -0
  89. package/dist/core/store/settings-validator.js +1 -1
  90. package/dist/core/store/settings.d.ts +29 -2
  91. package/dist/core/store/settings.js +4 -3
  92. package/dist/core/telemetry/consent.js +2 -2
  93. package/dist/core/telemetry/runtime.js +2 -2
  94. package/dist/core/test/background-runs.js +3 -3
  95. package/dist/sdk/config.js +1 -1
  96. package/dist/sdk/extension-command-context.js +2 -2
  97. package/dist/sdk/generated/error-code-catalog-rows.d.ts +39 -0
  98. package/dist/sdk/generated/error-code-catalog-rows.js +2 -0
  99. package/dist/sdk/generated/generated-error-code-catalog-part-1.d.ts +3 -3
  100. package/dist/sdk/generated/generated-error-code-catalog-part-1.js +1 -1
  101. package/dist/sdk/generated/generated-error-code-catalog-part-2.d.ts +3 -3
  102. package/dist/sdk/generated/generated-error-code-catalog-part-2.js +1 -1
  103. package/dist/sdk/generated-error-code-catalog.js +1 -1
  104. package/dist/sdk/mcp/discovery.js +1 -1
  105. package/dist/sdk/public-surface.json +1 -1
  106. package/dist/sdk/runtime-primitives.d.ts +2 -1
  107. package/dist/sdk/runtime-primitives.js +1 -1
  108. package/docs/AGENT_EVIDENCE_CONSISTENCY.md +10 -0
  109. package/docs/CONFIGURATION.md +9 -0
  110. package/docs/DEVELOPMENT_DEPENDENCY_SECURITY.md +9 -6
  111. package/docs/RELEASING.md +22 -2
  112. package/docs/SDK.md +28 -1
  113. package/docs/SDK_CONFIGURATION_SAFETY.md +55 -0
  114. package/docs/TESTING.md +2 -1
  115. package/docs/generated/REFUSAL_CLOSURE_CENSUS.md +12 -3
  116. package/marketplace.json +1 -1
  117. package/package.json +9 -3
  118. package/packages/pm-beads/package.json +1 -1
  119. package/packages/pm-calendar/package.json +1 -1
  120. package/packages/pm-command-kit/package.json +1 -1
  121. package/packages/pm-digital-twin/package.json +1 -1
  122. package/packages/pm-governance-audit/package.json +1 -1
  123. package/packages/pm-guide-shell/package.json +1 -1
  124. package/packages/pm-kanban/package.json +1 -1
  125. package/packages/pm-lifecycle-hooks/package.json +1 -1
  126. package/packages/pm-linked-test-adapters/package.json +1 -1
  127. package/packages/pm-search-advanced/package.json +1 -1
  128. package/packages/pm-templates/package.json +1 -1
  129. package/packages/pm-todos/package.json +1 -1
  130. package/packages/pm-vcs/package.json +1 -1
  131. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  132. package/plugins/pm-claude/package.json +1 -1
  133. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  134. package/plugins/pm-codex/package.json +1 -1
  135. package/plugins/pm-codex/plugin.json +1 -1
  136. package/runtime-dependencies.json +1 -1
  137. package/dist/cli-bundle/chunks/chunk-5WVE7XBS.js +0 -114
  138. package/dist/cli-bundle/chunks/chunk-E74BORFX.js +0 -128
  139. package/dist/cli-bundle/chunks/chunk-MP2DQJH2.js +0 -3
  140. package/dist/cli-bundle/chunks/chunk-O6TFUV6M.js +0 -31
  141. package/dist/cli-bundle/chunks/item-transaction-Q5S5YLEJ.js +0 -2
  142. package/dist/cli-bundle/focused-chunks/chunk-3Z53POXU.js +0 -2
  143. package/dist/cli-bundle/focused-chunks/chunk-7WJDRZOR.js +0 -22
  144. package/dist/cli-bundle/focused-chunks/chunk-CIQ6YWCW.js +0 -26
  145. package/dist/cli-bundle/focused-chunks/chunk-M22TI7LP.js +0 -79
  146. package/dist/cli-bundle/focused-chunks/chunk-SXZM4PSS.js +0 -44
@@ -1,79 +0,0 @@
1
- import{c as He,e as ze,f as Fe,i as Mn,j as Vn,k as Un,l as Wn,m as qn}from"./chunk-VFQAZLKO.js";import{h as Zn}from"./chunk-4PW5XWVI.js";import{B as Dn,Be as Zt,Cc as Bn,Ea as $n,Fa as A,Ga as $,Ha as ot,Ia as g,Nc as Jn,Od as $e,Pd as q,Qd as st,Rd as Ee,Sd as G,Vd as Kn,Wd as Xn,Yd as Yn,ae as M,ea as zn,i as Qe,j as An,ja as Fn,k as xn,l as Cn,m as Nn,q as et,r as tt,s as Rn,wc as Gn,x as rt,y as nt,yc as it,z as Xt,za as we}from"./chunk-CIQ6YWCW.js";import{A as w,C as jn,D as W,E as ie,F as be,G as Ln,H as Yt,I as Le,J as Hn,m as J,u as Pn,x as h,y as je,z as E}from"./chunk-JLXGRDTG.js";import{createHash as hs}from"node:crypto";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ca5b60a5-80a7-5e7d-917f-4c7649bcbab6")}catch{}})();var Kl=["sha256","sha512"],ys="sha256",Qn="sha256";function se(e){if(e===void 0)return ys;if(e==="sha256"||e==="sha512")return e;throw new TypeError(`unsupported_history_hash_algorithm:${String(e)}`)}function K(e,t){return hs(se(t)).update(e,"utf8").digest("hex")}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="4d5692ce-ec33-5eb4-bd9b-7497ffe25b0e")}catch{}})();var gs=16;function Qt(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[r,...n]=t;return`${r}${n.map(o=>`${o.slice(0,1).toUpperCase()}${o.slice(1)}`).join("")}`}function vs(e){return[...new Set([qn(e),Qt(e.key),Qt(e.cli_flag),...e.cli_aliases.map(t=>Qt(t))])]}function ro(e,t){for(let r of vs(t)){if(!Object.hasOwn(e,r))continue;let n=e[r];if(n!==void 0)return n}}function no(e){return Array.isArray(e)?e.flatMap(t=>no(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 eo(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 r=e.trim().toLowerCase();if(r==="true"||r==="1"||r==="yes")return!0;if(r==="false"||r==="0"||r==="no")return!1}throw new w(`${t} must be one of true|false|1|0|yes|no`,E.USAGE)}function to(e,t){if(typeof e=="number"&&Number.isFinite(e))return e;let r=typeof e=="string"?e.trim():String(e),n=Number(r);if(!Number.isFinite(n))throw new w(`${t} must be a number`,E.USAGE);return n}function bs(e,t,r){let n=typeof e=="string"?(()=>{try{return JSON.parse(e)}catch{return}})():e;if(r==="array"&&Array.isArray(n)||r==="object"&&typeof n=="object"&&n!==null&&!Array.isArray(n))return n;throw new w(`${t} must be valid JSON ${r}`,E.USAGE)}function ws(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 Es(e,t,r){if(t.const!==void 0&&A(e)!==A(t.const))return`${r} must equal ${A(t.const)}`;if(t.enum!==void 0&&!t.enum.some(n=>A(n)===A(e)))return`${r} must be one of ${t.enum.map(n=>A(n)).join("|")}`;if(!ws(e,t.type))return`${r} must match configured type ${String(t.type)}`;if(typeof e=="string"){if(t.min_length!==void 0&&e.length<t.min_length)return`${r} must contain at least ${t.min_length} characters`;if(t.format==="date-time"&&!st(e))return`${r} must be an RFC 3339 date-time`}}function ks(e,t,r,n){if(Array.isArray(e)){if(t.min_items!==void 0&&e.length<t.min_items)return`${r} must contain at least ${t.min_items} items`;if(t.items)for(let[o,i]of e.entries()){let s=at(i,t.items,`${r}[${o}]`,n+1);if(s)return s}}}function Ss(e,t,r,n){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`${r}.${i} is required`;for(let[i,s]of Object.entries(o)){let a=t.properties?.[i];if(!a){if(t.additional_properties===!1)return`${r}.${i} is not allowed`;continue}let d=at(s,a,`${r}.${i}`,n+1);if(d)return d}}function at(e,t,r,n=0){if(n>gs)return`${r} value schema exceeds maximum depth`;let o=Es(e,t,r);if(o)return o;let i=ks(e,t,r,n);if(i)return i;let s=Ss(e,t,r,n);if(s)return s;if(!t.one_of)return;let a=0;for(let d of t.one_of)if(at(e,d,r,n+1)===void 0&&(a+=1,a>1))break;return a===1?void 0:`${r} must match exactly one configured schema variant`}function ae(e,t,r){if(!e.value_schema||t===void 0)return t;let n=at(t,e.value_schema,r);if(n)throw new w(n,E.USAGE);return t}function Is(e,t,r,n){let o=n==="option"&&Array.isArray(t)?t[t.length-1]:t;if(o!==void 0)return ae(e,bs(o,r,e.type),r)}function Me(e,t,r,n="option"){let o=r??`--${e.cli_flag}`;if(e.type==="array"||e.type==="object")return Is(e,t,o,n);if(e.repeatable||e.type==="string_array"){let s=no(t);return e.type==="number"?ae(e,s.map(a=>to(a,o)),o):e.type==="boolean"?ae(e,s.map(a=>eo(a,o)),o):ae(e,s,o)}let i=Array.isArray(t)?t[t.length-1]:t;if(i!==void 0)return e.type==="number"?ae(e,to(i,o),o):e.type==="boolean"?ae(e,eo(i,o),o):ae(e,typeof i=="string"?i:String(i),o)}function Os(e,t){return!e.required&&!e.required_on_create?!1:e.required_types.length===0?!0:t?e.required_types.map(r=>r.toLowerCase()).includes(t.trim().toLowerCase()):!1}function ru(e,t,r){let n={},o=[];for(let i of t.command_to_fields.get("create")??[]){let s=ro(e,i);if(s===void 0){Os(i,r)&&o.push(`--${i.cli_flag}`);continue}n[i.metadata_key]=Me(i,s)}return{values:n,missing_required_flags:[...new Set(o)].sort((i,s)=>i.localeCompare(s))}}function nu(e,t,r=["update"]){let n={},o=(r??["update"]).flatMap(s=>t.command_to_fields.get(s)??[]),i=new Set;for(let s of o){let a=ro(e,s);a!==void 0&&(i.has(s.metadata_key)||(i.add(s.metadata_key),n[s.metadata_key]=Me(s,a)))}return 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]="c35d4830-d7d1-5ee4-99bc-ab52cc3e4e09")}catch{}})();var er=1,tr=2;function iu(e){return Math.max(rr(e),e.tests?.some(t=>t.updated_by!==void 0||t.updated_at!==void 0)?2:1)}function rr(e){let t=e.pm_format_version;return typeof t=="number"&&Number.isInteger(t)&&t>=1?t:1}function oo(e){if(!(typeof e!="number"||!Number.isInteger(e)||e<=1))return e}function Ts(e,t=2,r=t){return e<r?"outdated":e>t?"ahead":"current"}function su(e,t=2,r=t){let n=[],o=[];for(let i of e){let s=Ts(i.version,t,r);s==="outdated"?n.push(i.ref):s==="ahead"&&o.push(i.ref)}return{outdated:n.sort((i,s)=>i.localeCompare(s)),ahead:o.sort((i,s)=>i.localeCompare(s))}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="515840b7-cf86-5d71-8ac1-beac7fd7c8a8")}catch{}})();var As={"in-progress":"in_progress",cancelled:"canceled"};function ct(e,t){if(t){let o=Un(e,t);if(o)return o}if(typeof e!="string")return;let r=e.trim().toLowerCase();if(!r)return;let n=As[r]??r;if(Qe.includes(n))return n}function xs(e,t){return ct(e,t)??e}function lu(e,t){return t.terminal_statuses.has(xs(e,t))}import{encode as Ds}from"@toon-format/toon";import{isDeepStrictEqual as io}from"node:util";import{decode as Cs}from"@toon-format/toon";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="aaa2be03-9478-5fbe-82e6-e4fc86e3735b")}catch{}})();function nr(e){return{value:Cs(e),usedScalarBracketEscape:!1}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="79626299-17a8-573a-9b66-ce37c65e2f5d")}catch{}})();var Ns=/^\s*(<<<<<<<|=======|>>>>>>>)(?:\s.*)?$/;function Rs(e){if(e.length===0)return[];let t=e.split(/\r?\n/),r=[];for(let n=0;n<t.length;n+=1){let o=t[n]??"",i=o.match(Ns);if(!i)continue;let s=i[1];r.push({line:n+1,marker:s,text:o})}return r}function dt(e){return Rs(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]="2789e87f-0706-52e8-8f4c-3855c65c618c")}catch{}})();var ar=new Set(["schema","tracker","auto","none"]),uo=new Set(["source","isolated","snapshot"]),Ps=new Set(["legacy","local_mutation","local_source_ref","acknowledged","invalid_provenance","foreign_source_ref"]),js=new Set(["passed","failed","stopped","canceled"]),Ls=new Set(Dn);function Ie(e){return e.replaceAll("\\","/")}function _o(e){for(let t of e)if(t!==0)return t;return 0}function ut(e){for(let[t,r]of Object.entries(e))r===void 0&&delete e[t]}var fo=["id","title","description","created_at","updated_at"],Hs=new Set(J);function mo(e){if(e?.schema)return{statusRegistry:Vn(e.schema),fieldRegistry:Wn(e.schema),unknownFieldPolicy:e.schema.unknown_field_policy??"allow",extensionFieldNames:new Set(e.extensionFieldNames??[]),onWarning:e.onWarning}}function zs(e,t){return e.required?e.required_types.length===0?!0:e.required_types.map(r=>r.toLowerCase()).includes(t.trim().toLowerCase()):!1}function X(e){let t=e.match(/^([a-z_][\w.]*)\s/u)?.[1];throw new w(`Invalid item metadata: ${e}`,E.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 We(e,t){throw new w(t,E.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 po(e,t){if(!t||typeof e!="object"||e===null)return;let r=rr(e);if(!(r<=tr))throw new w(`Stored item uses format version ${r}; this runtime supports up to ${tr}. Upgrade pm before reading or changing this item.`,E.CONFLICT,{code:"item_format_version_unsupported",format_version:r,required:"Upgrade to a pm runtime supporting the stored item format.",nextSteps:["Preserve the original item and history; do not lower pm_format_version to bypass compatibility checks."]})}function ho(e){let t=new Set(Hs);for(let r of e.fieldRegistry?.definitions??[])t.add(r.metadata_key);for(let r of e.extensionFieldNames)t.add(r);return t}function y(e,t){e||X(t)}function qe(e,t){return(typeof e!="object"||e===null||Array.isArray(e))&&X(t),e}function or(e,t){let r=e[t];y(typeof r=="string",`${t} must be a string`),y(q(r),`${t} must be a valid ISO timestamp`)}function so(e,t,r){let n=e[t];n!==void 0&&y(typeof n=="number"&&Number.isInteger(n)&&n>=1,`${r} must be an integer >= 1`)}function cr(e,t,r){let n=e[t];n!==void 0&&(y(typeof n=="string",`${r} must be a string`),y(q(n),`${r} must be a valid ISO timestamp`))}function Fs(e){if(e!==void 0){y(Array.isArray(e),"event.recurrence.by_weekday must be an array");for(let t of e){y(typeof t=="string","event.recurrence.by_weekday entries must be strings");let r=t.trim().toLowerCase();y(nt.includes(r),`event.recurrence.by_weekday entries must be one of: ${nt.join(", ")}`)}}}function $s(e){if(e!==void 0){y(Array.isArray(e),"event.recurrence.by_month_day must be an array");for(let t of e)y(typeof t=="number"&&Number.isInteger(t)&&t>=1&&t<=31,"event.recurrence.by_month_day entries must be integers 1..31")}}function Ms(e){if(e!==void 0){y(Array.isArray(e),"event.recurrence.exdates must be an array");for(let t of e)y(typeof t=="string","event.recurrence.exdates entries must be strings"),y(q(t),"event.recurrence.exdates entries must be valid ISO timestamps")}}function Vs(e){let t=qe(e,"event.recurrence must be an object");y(typeof t.freq=="string","event.recurrence.freq must be a string");let r=t.freq.trim().toLowerCase();y(rt.includes(r),`event.recurrence.freq must be one of: ${rt.join(", ")}`),so(t,"interval","event.recurrence.interval"),so(t,"count","event.recurrence.count"),cr(t,"until","event.recurrence.until"),Fs(t.by_weekday),$s(t.by_month_day),Ms(t.exdates)}function Us(e){for(let n of fo)y(typeof e[n]=="string",`${n} is required and must be a string`);let t=e.type;y(typeof t=="string"&&t.trim().length>0,"type must be a non-empty string");let r=e.pm_format_version;return r!==void 0&&y(typeof r=="number"&&Number.isInteger(r)&&r>=er,`pm_format_version must be an integer >= ${er}`),t}function Ws(e,t){let r=e.status;y(typeof r=="string"&&r.trim().length>0,"status must be a non-empty string");let n=t?.statusRegistry,o=ct(r,n),i=n?n.definitions.map(s=>s.id):[...Qe];y(o!==void 0,`status must be one of: ${i.join(", ")}`)}function qs(e){let t=e.priority;y(typeof t=="number"&&Number.isInteger(t)&&[0,1,2,3,4].includes(t),"priority must be an integer 0..4");let r=e.tags;y(Array.isArray(r),"tags must be an array");for(let n of r)y(typeof n=="string","tags entries must be strings")}function Gs(e){let t=e.confidence;if(t!==void 0){if(typeof t=="number"){y(Number.isInteger(t)&&t>=0&&t<=100,"confidence number value must be an integer 0..100");return}if(typeof t=="string"){let r=t.trim().toLowerCase(),n=r==="med"||tt.includes(r);y(n,`confidence string value must be one of: ${[...tt,"med"].join(", ")}`);return}y(!1,"confidence must be a number or string")}}function Bs(e){let t=e.severity;if(t===void 0)return;typeof t!="string"&&X("severity must be a string");let r=t.trim().toLowerCase(),n=r==="med"||et.includes(r);y(n,`severity value must be one of: ${[...et,"med"].join(", ")}`)}function Js(e){e.regression!==void 0&&typeof e.regression!="boolean"&&X("regression must be a boolean")}function Ks(e){let t=e.reminders;if(t!==void 0){y(Array.isArray(t),"reminders must be an array");for(let r of t){let n=qe(r,"reminders entries must be objects");y(typeof n.at=="string","reminder.at must be a string"),y(q(n.at),"reminder.at must be a valid ISO timestamp"),y(typeof n.text=="string","reminder.text must be a string"),y(n.text.trim().length>0,"reminder.text must not be empty")}}}function Xs(e){for(let t of["title","description","location","timezone"])e[t]!==void 0&&(y(typeof e[t]=="string",`event.${t} must be a string`),y(e[t].trim().length>0,`event.${t} must not be empty`))}function Ys(e){e.recurrence!==void 0&&(Vs(e.recurrence),e.recurrence.until!==void 0&&y(G(e.recurrence.until,e.start_at)>=0,"event.recurrence.until must be at or after event.start_at"))}function Zs(e){let t=qe(e,"events entries must be objects");y(typeof t.start_at=="string","event.start_at must be a string"),y(q(t.start_at),"event.start_at must be a valid ISO timestamp"),t.end_at!==void 0&&(y(typeof t.end_at=="string","event.end_at must be a string"),y(q(t.end_at),"event.end_at must be a valid ISO timestamp"),y(G(t.end_at,t.start_at)>0,"event.end_at must be after event.start_at")),Xs(t),t.all_day!==void 0&&y(typeof t.all_day=="boolean","event.all_day must be a boolean"),Ys(t)}function Qs(e){let t=e.events;if(t!==void 0){y(Array.isArray(t),"events must be an array");for(let r of t)Zs(r)}}function ea(e){for(let t of["source_type","source_owner","design","external_ref"]){let r=e[t];r!==void 0&&y(typeof r=="string",`${t} must be a string`)}}function ta(e){let t=e.type_options;if(t===void 0)return;let r=qe(t,"type_options must be an object");for(let[n,o]of Object.entries(r))y(n.trim().length>0,"type_options keys must be non-empty"),y(typeof o=="string","type_options values must be strings"),y(o.trim().length>0,"type_options values must be non-empty strings")}function ra(e,t,r){if(r?.fieldRegistry)for(let n of r.fieldRegistry.definitions){let o=e[n.metadata_key];if(o===void 0){zs(n,t)&&X(`missing required schema field: ${n.metadata_key}`);continue}try{e[n.metadata_key]=Me(n,o,`metadata field "${n.metadata_key}"`,"metadata")}catch(i){X(String(i?.message).replace(/^Invalid\s+/u,""))}}}function na(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let r=ho(t),n=Object.keys(e).filter(o=>!r.has(o)).sort((o,i)=>o.localeCompare(i));n.length!==0&&(t.unknownFieldPolicy==="reject"?X(`unknown schema fields are not allowed: ${n.join(", ")}`):t.onWarning?.(`item_unknown_schema_fields:${n.join(",")}`))}function dr(e,t){let r=qe(e,"item metadata must be an object"),n=Us(r);Ws(r,t),qs(r),Gs(r),Bs(r),Js(r),or(r,"created_at"),or(r,"updated_at"),r.deadline!==void 0&&or(r,"deadline"),Ks(r),Qs(r),cr(r,"closed_at","closed_at"),cr(r,"completed_at","completed_at"),ea(r),ta(r),ra(r,n,t),na(r,t)}function oa(e){if(!(!e||e.length===0))return[...e].map((t,r)=>(y(t.created_at===void 0||typeof t.created_at=="string"&&st(t.created_at),`dependencies.${r}.created_at requires a valid timestamp; restore the dependency timestamp from its source record`),{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,r)=>{let n=G(t.created_at??"",r.created_at??"");if(n!==0)return n;let o=t.id.localeCompare(r.id);if(o!==0)return o;let i=t.kind.localeCompare(r.kind);return i!==0?i:(t.source_kind??"").localeCompare(r.source_kind??"")})}function ir(e){if(!(!e||e.length===0))return[...e].sort((t,r)=>{let n=G(t.created_at,r.created_at);if(n!==0)return n;let o=t.text.localeCompare(r.text);return o!==0?o:t.author.localeCompare(r.author)})}function ia(e){if(!e||e.length===0)return;let t=[...e].map(r=>({at:r.at,text:r.text.trim()})).filter(r=>r.text.length>0).sort((r,n)=>{let o=G(r.at,n.at);return o!==0?o:r.text.localeCompare(n.text)});return t.length===0?void 0:t}function sa(e){if(!e)return;let t=e.freq.trim().toLowerCase();if(!rt.includes(t))return;let r=Array.from(new Set((e.by_weekday??[]).map(s=>s.trim().toLowerCase()).filter(s=>nt.includes(s)))).sort((s,a)=>Xt(s)-Xt(a)),n=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=>q(s)))).sort((s,a)=>G(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:r.length>0?r:void 0,by_month_day:n.length>0?n: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 aa(e){return!Array.isArray(e)||e.length===0?void 0:[...e].map(ca).sort(da)}function ca(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:sa(e.recurrence)};return ut(t),t}function da(e,t){return _o([G(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 la(e){if(!(!e||e.length===0))return e.map(t=>({path:Ie(t.path),scope:t.scope,note:t.note?.trim()||void 0}))}function ua(e){if(!e||e.length===0)return;let t=e.map(pa).filter(r=>r.run_id.length>0&&r.started_at.length>0&&r.finished_at.length>0&&r.recorded_at.length>0).sort((r,n)=>_o([G(r.recorded_at,n.recorded_at),r.run_id.localeCompare(n.run_id),r.kind.localeCompare(n.kind)]));return t.length>0?t:void 0}function ke(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?Math.floor(e):void 0}function _a(e){return typeof e=="number"&&Number.isFinite(e)&&e>=1?Math.floor(e):void 0}function sr(e){return typeof e=="string"?e:""}function fa(e){if(!Array.isArray(e))return;let t=e.filter(n=>n!==null&&typeof n=="object"&&typeof n.name=="string"&&n.name.trim().length>0&&typeof n.value=="number"&&Number.isFinite(n.value)&&typeof n.recorded_at=="string"&&n.recorded_at.trim().length>0).map(n=>({name:n.name.trim(),value:n.value,unit:typeof n.unit=="string"&&n.unit.trim()||void 0,threshold:typeof n.threshold=="number"&&Number.isFinite(n.threshold)?n.threshold:void 0,recorded_at:n.recorded_at.trim()})),r=[...new Map(t.map(n=>[n.name,n])).values()].sort((n,o)=>n.name.localeCompare(o.name)).slice(0,32);return r.length>0?r:void 0}function lt(e,t){return typeof e=="string"&&t.has(e)?e:void 0}function ma(e){if(!Array.isArray(e))return;let t=e.filter(r=>r&&typeof r.command=="string"&&r.command.trim().length>0).slice(0,32).map(r=>({command:r.command.trim(),requested_pm_context_mode:lt(r.requested_pm_context_mode,ar),pm_context_mode:lt(r.pm_context_mode,ar),workspace_context_mode:lt(r.workspace_context_mode,uo),trust_reason:lt(r.trust_reason,Ps)}));return t.length>0?t:void 0}function pa(e){let t=typeof e.run_id=="string"?e.run_id.trim():"",r=e.kind==="test"||e.kind==="test-all"?e.kind:"test",n=js.has(e.status)?e.status:"failed",o={run_id:t,kind:r,status:n,started_at:sr(e.started_at),finished_at:sr(e.finished_at),recorded_at:sr(e.recorded_at),attempt:_a(e.attempt),resumed_from:e.resumed_from?.trim()||void 0,passed:ke(e.passed)??0,failed:ke(e.failed)??0,skipped:ke(e.skipped)??0,items:ke(e.items),linked_tests:ke(e.linked_tests),fail_on_skipped_triggered:e.fail_on_skipped_triggered===!0?!0:void 0,measurements:fa(e.measurements),executions:ma(e.executions)};return ut(o),o}function ha(e){if(!(!Array.isArray(e)||e.length===0))return e.map(wa)}function Ve(e){if(!Array.isArray(e))return;let t=[...new Set(e.filter(r=>typeof r=="string").map(r=>r.trim()).filter(r=>r.length>0))].sort((r,n)=>r.localeCompare(n));return t.length>0?t:void 0}function fr(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function mr(e){return e==="__proto__"||e==="constructor"||e==="prototype"}function ao(e){if(!fr(e))return;let t=Object.entries(e).map(([r,n])=>[r.trim(),String(n).trim()]).filter(([r,n])=>r.length>0&&!mr(r)&&n.length>0).sort(([r],[n])=>r.localeCompare(n));return t.length>0?Object.fromEntries(t):void 0}function ya(e){if(!fr(e))return;let t=Object.entries(e).map(([r,n])=>[r.trim(),Number(n)]).filter(([r,n])=>r.length>0&&!mr(r)&&Number.isFinite(n)).sort(([r],[n])=>r.localeCompare(n));return t.length>0?Object.fromEntries(t):void 0}function ga(e){let t=e?.trim().toLowerCase();if(!(!t||!ar.has(t)))return t}function va(e){let t=e?.trim().toLowerCase();if(!(!t||!uo.has(t)))return t}function ba(e,t){if(t===!0)return{provenance_invalid:!0};if(e===void 0)return{};if(!fr(e))return{provenance_invalid:!0};let r=m(e.author),n=m(e.created_at),o=e.source_kind;return!r||!n||!q(n)||o!=="local_mutation"&&o!=="merge_union"?{provenance_invalid:!0}:{provenance:{author:r,created_at:n,source_kind:o,source_ref:m(e.source_ref)}}}function wa(e){let t={command:e.command?.trim()||void 0,path:e.path?Ie(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:ga(e.pm_context_mode),workspace_context_mode:va(e.workspace_context_mode),...ba(e.provenance,e.provenance_invalid),updated_by:m(e.updated_by),updated_at:m(e.updated_at),env_set:ao(e.env_set),env_clear:Ve(e.env_clear),shared_host_safe:e.shared_host_safe===!0?!0:void 0,assert_stdout_contains:Ve(e.assert_stdout_contains),assert_stdout_regex:Ve(e.assert_stdout_regex),assert_stderr_contains:Ve(e.assert_stderr_contains),assert_stderr_regex:Ve(e.assert_stderr_regex),assert_stdout_min_lines:ke(e.assert_stdout_min_lines),assert_json_field_equals:ao(e.assert_json_field_equals),assert_json_field_gte:ya(e.assert_json_field_gte),note:e.note?.trim()||void 0};return ut(t),t}function Ea(e){if(!(!e||e.length===0))return[...e].map(t=>({path:Ie(t.path),scope:t.scope,note:t.note?.trim()||void 0})).sort((t,r)=>{let n=t.scope.localeCompare(r.scope);if(n!==0)return n;let o=t.path.localeCompare(r.path);return o!==0?o:(t.note??"").localeCompare(r.note??"")})}function m(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function ka(e){if(!Array.isArray(e))return;let t=[];for(let r of e){if(r===null||typeof r!="object")continue;let n=r,o=m(n.id),i=m(n.kind);if(!o||!i)continue;let s={id:o,kind:i},a=m(n.note);a&&(s.note=a),n.required_before_step===!0&&(s.required_before_step=!0),t.push(s)}return t.length>0?t:void 0}function Sa(e){if(!Array.isArray(e))return;let t=[];for(let r of e){if(r===null||typeof r!="object")continue;let n=r,o=m(n.path);if(!o)continue;let i={path:Ie(o)};(n.scope==="project"||n.scope==="global")&&(i.scope=n.scope);let s=m(n.note);s&&(i.note=s),t.push(i)}return t.length>0?t:void 0}function Ia(e){if(!Array.isArray(e))return;let t=[];for(let r of e){if(r===null||typeof r!="object")continue;let n=r,o=m(n.command),i=m(n.path);if(!o&&!i)continue;let s={};o&&(s.command=o),i&&(s.path=Ie(i));let a=m(n.note);a&&(s.note=a),t.push(s)}return t.length>0?t:void 0}function Oa(e){if(!Array.isArray(e))return;let t=[];for(let r of e){if(r===null||typeof r!="object")continue;let n=r,o=m(n.path);if(!o)continue;let i={path:Ie(o)};(n.scope==="project"||n.scope==="global")&&(i.scope=n.scope);let s=m(n.note);s&&(i.note=s),t.push(i)}return t.length>0?t:void 0}function Ta(e){if(e===null||typeof e!="object")return;let t=e,r=m(t.id),n=m(t.title),o=m(t.status),i=o&&Ls.has(o)?o:void 0,s=zn(t.order)??Number.NaN,a=typeof t.created_at=="string"?t.created_at:"",d=typeof t.updated_at=="string"?t.updated_at:"";if(!r||!n||!i||!Number.isFinite(s)||!a||!d)return;let l={id:r,order:s,title:n,status:i,created_at:a,updated_at:d};return Aa(l,t),l}function Aa(e,t){let r=[["body","body"],["owner","owner"],["evidence","evidence"],["blocked_reason","blocked_reason"],["superseded_by","superseded_by"]];for(let[i,s]of r){let a=m(t[s]);a&&(e[i]=a)}let n=typeof t.completed_at=="string"?t.completed_at:void 0;n&&n.length>0&&(e.completed_at=n);let o=[["linked_items","linked_items",ka],["files","files",Sa],["tests","tests",Ia],["docs","docs",Oa]];for(let[i,s,a]of o){let d=a(t[s]);d&&(e[i]=d)}}function xa(e){if(!Array.isArray(e))return;let t=e.flatMap(r=>{let n=Ta(r);return n?[n]:[]});return t.sort((r,n)=>r.order-n.order),t.length>0?t:void 0}function Ca(e){if(!Array.isArray(e))return;let t=[];for(let r of e){if(r===null||typeof r!="object")continue;let n=r,o=typeof n.ts=="string"?n.ts:"",i=typeof n.author=="string"?n.author:"",s=m(n.decision);if(!o||!i||!s)continue;let a={ts:o,author:i,decision:s},d=m(n.rationale);d&&(a.rationale=d);let l=m(n.evidence);l&&(a.evidence=l);let _=m(n.step_id);_&&(a.step_id=_),t.push(a)}return t.length>0?t:void 0}function Na(e){if(!Array.isArray(e))return;let t=[];for(let r of e){if(r===null||typeof r!="object")continue;let n=r,o=typeof n.ts=="string"?n.ts:"",i=typeof n.author=="string"?n.author:"",s=m(n.text);if(!o||!i||!s)continue;let a={ts:o,author:i,text:s},d=m(n.step_id);d&&(a.step_id=d),t.push(a)}return t.length>0?t:void 0}function Ra(e){if(!Array.isArray(e))return;let t=[];for(let r of e){if(r===null||typeof r!="object")continue;let n=r,o=m(n.text);if(!o)continue;let i={text:o},s=m(n.command);s&&(i.command=s);let a=m(n.expected);a&&(i.expected=a),t.push(i)}return t.length>0?t:void 0}function Da(e){if(!e)return;let t=Object.entries(e).map(([r,n])=>[r.trim(),n.trim()]).filter(([r,n])=>r.length>0&&n.length>0).sort((r,n)=>r[0].localeCompare(n[0]));if(t.length!==0)return Object.fromEntries(t)}function Se(e){let t=0;for(;t<e.length&&e[t]===`
2
- `;)t+=1;return e.slice(t).trimEnd()}function Pa(e){if(e===void 0)return;if(typeof e=="number")return e;let t=e.trim().toLowerCase();if(t==="med")return"medium";if(tt.includes(t))return t}function ja(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(t==="med")return"medium";if(et.includes(t))return t}function Ue(e){return e||void 0}function La(e,t){let r=e,n=t;for(let[o,i]of Object.entries(n))mr(o)||Object.prototype.hasOwnProperty.call(r,o)||i===void 0||(r[o]=i)}function Ha(e,t){if(!t?.fieldRegistry)return;let r=e;for(let n of t.fieldRegistry.definitions){let o=r[n.metadata_key];o!==void 0&&(r[n.metadata_key]=Me(n,o,`metadata field "${n.metadata_key}"`,"metadata"))}}function za(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let r=ho(t),n=Object.keys(e).filter(o=>!r.has(o)).sort((o,i)=>o.localeCompare(i));n.length>0&&t.unknownFieldPolicy==="reject"&&X(`unknown schema fields are not allowed: ${n.join(", ")}`),n.length>0&&t.onWarning?.(`item_unknown_schema_fields:${n.join(",")}`)}function _t(e,t={}){let r=mo(t),n=ct(e.status,r?.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:oo(e.pm_format_version),source_type:m(e.source_type),type_options:Da(e.type_options),status:n,priority:e.priority,tags:o,created_at:e.created_at,updated_at:e.updated_at,dependencies:oa(e.dependencies),comments:ir(e.comments),notes:ir(e.notes),learnings:ir(e.learnings),files:la(e.files),tests:ha(e.tests),test_runs:ua(e.test_runs),docs:Ea(e.docs),deadline:Ue(e.deadline),reminders:ia(e.reminders),events:aa(e.events),closed_at:Ue(e.closed_at),completed_at:Ue(e.completed_at),assignee:m(e.assignee),claim_principal:m(e.claim_principal),source_owner:m(e.source_owner),author:Ue(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:m(e.definition_of_ready),order:e.order,goal:m(e.goal),objective:m(e.objective),value:m(e.value),impact:m(e.impact),outcome:m(e.outcome),why_now:m(e.why_now),parent:m(e.parent),reviewer:m(e.reviewer),risk:e.risk??void 0,confidence:Pa(e.confidence),sprint:m(e.sprint),release:m(e.release),blocked_by:m(e.blocked_by),blocked_reason:m(e.blocked_reason),unblock_note:m(e.unblock_note),reporter:m(e.reporter),severity:ja(e.severity),environment:m(e.environment),repro_steps:m(e.repro_steps),resolution:m(e.resolution),expected_result:m(e.expected_result),actual_result:m(e.actual_result),affected_version:m(e.affected_version),fixed_version:m(e.fixed_version),component:m(e.component),regression:e.regression,customer_impact:m(e.customer_impact),close_reason:Ue(e.close_reason),plan_mode:m(e.plan_mode),plan_scope:m(e.plan_scope),plan_harness:m(e.plan_harness),plan_resume_context:m(e.plan_resume_context),plan_steps:xa(e.plan_steps),plan_decisions:Ca(e.plan_decisions),plan_discoveries:Na(e.plan_discoveries),plan_validation:Ra(e.plan_validation)};return La(i,e),Ha(i,r),za(i,r),ut(i),i}function yo(e){return g(e,J)}function Fa(e){let t=0,r=!1,n=!1;for(let o=0;o<e.length;o+=1){let i=e[o];if(r){if(n){n=!1;continue}if(i==="\\"){n=!0;continue}i==='"'&&(r=!1);continue}if(i==='"'){r=!0;continue}if(i==="{"){t+=1;continue}if(i==="}"&&(t-=1,t===0))return o}return-1}function $a(e){if(!e.startsWith("{"))return{frontMatter:"",body:e};let t=Fa(e);if(t<0)return{frontMatter:"",body:e};let r=e.slice(0,t+1),n=e.slice(t+1).replace(/^\r?\n+/,"");return{frontMatter:r,body:n}}function Ma(e){let t=e.charCodeAt(0)===65279?e.slice(1):e,r=t.match(/^[ \t]*---[ \t]*(?:\r?\n|$)/);if(!r)return{content:t,stripped:!1};let n=r[0].length;for(;n<t.length;){let o=t.indexOf(`
3
- `,n),i=o===-1?t.length:o,s=t.slice(n,i).replace(/\r$/,""),a=o===-1?i:i+1;if(s.trim()==="---")return{content:t.slice(a).replace(/^\s+/,""),stripped:!0};n=a}return{content:t,stripped:!1}}function lr(e,t){return _t(e,{...t,onWarning:void 0})}function Va(e,t,r={}){let n=Ma(e);n.stripped&&r.onWarning?.("json_markdown_leading_yaml_frontmatter_ignored");let{frontMatter:o,body:i}=$a(n.content);o||(e.trimStart().startsWith("{")&&We("json_markdown","JSON front matter is not valid JSON"),We("json_markdown","JSON Markdown item document is missing JSON front matter"));let s;try{s=JSON.parse(o)}catch{We("json_markdown","JSON front matter is not valid JSON")}return po(s,r.requireSupportedFormat),dr(s,t),{metadata:lr(s,r),body:Se(i)}}function Ua(e,t,r={}){let n;try{n=nr(e).value}catch{We("toon","TOON item document is not valid TOON")}y(typeof n=="object"&&n!==null&&!Array.isArray(n),"TOON item document must be an object");let o=n;if(po(Object.prototype.hasOwnProperty.call(o,"front_matter")?o.front_matter:o,r.requireSupportedFormat),!fo.some(a=>Object.prototype.hasOwnProperty.call(o,a))&&!Object.prototype.hasOwnProperty.call(o,"front_matter")&&We("toon","TOON input does not have the shape of an item document"),Object.prototype.hasOwnProperty.call(o,"front_matter"))return dr(o.front_matter,t),y(o.body===void 0||typeof o.body=="string","TOON item document body must be a string"),{metadata:lr(o.front_matter,r),body:Se(typeof o.body=="string"?o.body:"")};let{body:i,...s}=o;return y(i===void 0||typeof i=="string","TOON item document body must be a string"),dr(s,t),{metadata:lr(s,r),body:Se(typeof i=="string"?i:"")}}function Wa(e,t={}){let r=_t(e.metadata,t),n=yo(r),o=Se(e.body??"");_r(JSON.parse(JSON.stringify(n))),_r({body:o});let i=JSON.stringify(n,null,2);return o?`${i}
4
-
5
- ${o}
6
- `:`${i}
7
- `}var qa=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/u;function ur(e,t){return typeof e=="string"?co(e,t):e===null||typeof e!="object"?null:Array.isArray(e)?lo(e.map((r,n)=>()=>ur(r,`${t}[${n}]`))):lo(Object.entries(e).map(([r,n])=>()=>{let o=t?`${t}.${r}`:r;return co(r,`${o} (key)`)??ur(n,o)}))}function co(e,t){let r=e.search(qa);return r<0?null:{path:t,index:r}}function lo(e){for(let t of e){let r=t();if(r!==null)return r}return null}function _r(e){let t=ur(e,"");if(t!==null)throw new w(`Item field ${t.path} contains an unpaired surrogate code unit at index ${t.index}; persisted item text requires well-formed Unicode.`,E.USAGE,{code:"text_unpaired_surrogate",field:t.path,required:"Provide well-formed UTF-16 text: keep emoji and other astral characters whole and avoid lone \\uD800-\\uDFFF JSON escapes.",why:"Persisted item text must remain well-formed in every supported format; a lone surrogate can cause an unclassified encoder fault.",nextSteps:[`Repair the ${t.path} value (for example String.prototype.toWellFormed() or re-truncate on a character boundary) and retry.`,"Run pm <command> --help --json to review the text fields the command accepts."]})}function Ga(e,t={}){let r=_t(e.metadata,t),n=yo(r),o=Se(e.body??""),i={...n,body:o},s=JSON.parse(JSON.stringify(i));_r(s);let a=Ds(s),d;try{d=nr(a).value}catch(l){throw new w("Refusing to persist a TOON item document that the configured decoder cannot read back.",E.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:l instanceof Error?l.message:String(l)})}if(!io(d,s)){let l=typeof d=="object"&&d!==null&&!Array.isArray(d)?d:{},_=Object.keys(s).find(f=>!io(s[f],l[f]))??"document";throw new w(`Refusing to persist a lossy TOON item document; round-trip mismatch at field "${_}".`,E.GENERIC_FAILURE,{code:"item_document_roundtrip_failed",reason:"encode_decode_mismatch",format:"toon",field:_,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}
8
- `}function xu(e,t={}){let r=dt(e);if(r)throw new w(`Merge conflict markers detected in item document at line ${r.line} (${r.marker}). Resolve <<<<<<< ======= >>>>>>> markers and retry.`,E.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 n=t.format??"toon",o=mo(t);return n==="toon"?Ua(e,o,t):Va(e,o,t)}function Cu(e,t={}){return(t.format??"toon")==="toon"?Ga(e,t):Wa(e,t)}function Oe(e,t={}){return{metadata:_t(e.metadata,t),body:Se(e.body??"")}}import{AsyncLocalStorage as Ba}from"node:async_hooks";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="1fbb183b-c6d8-5834-b4cb-e4fb515572b9")}catch{}})();var pr=new Ba,go=/^[A-Za-z0-9](?:[A-Za-z0-9._:-]{0,127})$/u;function ft(e,t){let r=typeof e=="string"?e.trim():"";return r.length>0?r.slice(0,t):void 0}function ce(e,t){if(e===void 0)return;let r=typeof e=="object"&&e!==null?e:{},n=ft(r.id,128),o=ft(r.parent_id,128);if(n===void 0||!go.test(n)||o!==void 0&&!go.test(o)){if(t)throw new Error("Agent episode ids must be 1-128 letters, digits, dots, underscores, colons, or hyphens.");return}let i=ft(r.label,256);return{id:n,...i===void 0?{}:{label:i},...o===void 0?{}:{parent_id:o}}}function Te(e){let t={};for(let[r,n]of Object.entries(e??{}).slice(0,32)){let o=r.trim().toLowerCase().slice(0,64),i=ft(n,256);/^[a-z][a-z0-9_-]{0,63}$/u.test(o)&&i!==void 0&&(t[o]=i)}return t}function Ja(e,t,r){let n=pr.getStore(),o=Te({role:t.PM_AGENT_SESSION_ROLE,topic:t.PM_AGENT_SESSION_TOPIC}),i=ce(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={...Te(n?.provenance),...o,...Te(e?.provenance)},a=ce(e?.episode,!1)??ce(r,!1)??i??ce(n?.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 hr(e,t){return Ja(e.session_context,t,e.client_info?.episode)??{}}function Du(e,t){let r=pr.getStore(),n=ce(e.episode,!0),o=ce(r?.episode,!1),i=n!==void 0&&n.parent_id===void 0&&o!==void 0?{...n,parent_id:o.id}:n,s={...Te(r?.provenance),...Te(e.provenance)};return pr.run({...Object.keys(s).length===0?{}:{provenance:s},...i===void 0?o===void 0?{}:{episode:o}:{episode:i}},t)}function Pu(e){let t=Te(e.provenance),r=ce(e.episode,!0);return{...r===void 0?{}:{PM_AGENT_EPISODE_ID:r.id,...r.label===void 0?{}:{PM_AGENT_EPISODE_LABEL:r.label},...r.parent_id===void 0?{}:{PM_AGENT_EPISODE_PARENT_ID:r.parent_id}},...t.role===void 0?{}:{PM_AGENT_SESSION_ROLE:t.role},...t.topic===void 0?{}:{PM_AGENT_SESSION_TOPIC:t.topic}}}import{createHash as vo}from"node:crypto";import{existsSync as yr,promises as bo,readFileSync as Ka}from"node:fs";import V from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="06c9f6f4-c2f0-549c-9a0f-4f4269cc5f49")}catch{}})();var Xa="session.json";function gr(e,t){return typeof e=="string"&&e.length>0&&e.length<=t}function wo(e){if(e===null||typeof e!="object"||Array.isArray(e))return;let t=e,r=["implementer","planner","release-operator"].includes(String(t.role)),n=["high","medium"].includes(String(t.confidence)),o=gr(t.topic,256),i=Array.isArray(t.evidence)&&t.evidence.length<=32&&t.evidence.every(d=>typeof d=="string"&&d.length<=128),s=Array.isArray(t.active_item_ids)&&t.active_item_ids.length<=64&&t.active_item_ids.every(d=>gr(d,128)),a=t.focused_item_id===void 0||gr(t.focused_item_id,128);if([r,n,o,i,s,a,t.rule_version==="v2"].every(Boolean))return t}function Ya(e){if(e===null||typeof e!="object"||Array.isArray(e))return;let t=Object.entries(e).slice(0,128).flatMap(([r,n])=>{let o=wo(n);return o&&r.length<=128?[[r,o]]:[]});return t.length>0?Object.fromEntries(t):void 0}function vr(e){return V.join($n(e),Xa)}async function Eo(e){try{let t=await bo.readFile(vr(e),"utf8"),r=JSON.parse(t);if(r===null||typeof r!="object"||Array.isArray(r))return{};let n=r,o=n.focused_item,i=Ya(n.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 br(e,t){let r=await M(e,"session-state",h.locks.ttl_seconds,"session-state",!1,!0,h.locks.wait_ms);try{let n=await Eo(e);t(n);let o=vr(e);await bo.mkdir(V.dirname(o),{recursive:!0}),await Le(o,JSON.stringify(n))}finally{await r()}}function wr(e){return/#([a-f0-9]{24})$/u.exec(e.trim())?.[1]??`author-${vo("sha256").update(e).digest("hex").slice(0,24)}`}function Er(e){return[...new Set(e.map(t=>t.trim()).filter(Boolean))].slice(0,32).map(t=>t.slice(0,128))}function kr(e){let t=[...new Set(e)].sort((n,o)=>n.localeCompare(o));if(t.length===1)return t[0];let r=`workset:${t.join("+")}`;return r.length<=256?r:`workset:${t.join("+").slice(0,230)}+${vo("sha256").update(t.join("\0")).digest("hex").slice(0,12)}`}async function Sr(e,t,r){await br(e,n=>{let o={...n.semantic_attribution},i=r(o[t]);i===void 0?delete o[t]:o[t]=i,Object.keys(o).length===0?delete n.semantic_attribution:n.semantic_attribution=o})}async function Uu(e){let t=wr(e.principal);await Sr(e.pmRoot,t,r=>{let n=[...new Set([...r?.active_item_ids??[],e.itemId])].slice(-64).sort((i,s)=>i.localeCompare(s)),o=r?.focused_item_id;return{role:"implementer",topic:o??kr(n),confidence:o?"high":"medium",rule_version:"v2",evidence:Er([...n.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],...(e.lineageIds??[]).map(i=>`lineage:${i}`)]),active_item_ids:n,...o?{focused_item_id:o}:{}}})}async function Wu(e){let t=wr(e.principal);await Sr(e.pmRoot,t,r=>{if(!r)return;let n=r.active_item_ids.filter(i=>i!==e.itemId);if(n.length===0&&!r.focused_item_id)return;let o=r.focused_item_id;return{...r,role:"release-operator",topic:o??kr(n),confidence:o?"high":"medium",evidence:Er([...n.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],`release:${e.itemId}`]),active_item_ids:n}})}async function qu(e){let t=wr(e.principal);await Sr(e.pmRoot,t,r=>{let n=r?.active_item_ids??[];if(!e.itemId&&n.length===0)return;let o=e.itemId;return{role:o?"planner":r.role,topic:o??kr(n),confidence:o?"high":"medium",rule_version:"v2",evidence:Er([...n.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],...(e.lineageIds??[]).map(i=>`lineage:${i}`)]),active_item_ids:n,...o?{focused_item_id:o}:{}}})}function Za(e,t){let r=t.PM_PATH?.trim();if(r){let o=V.resolve(e,r);if(yr(V.join(o,"settings.json")))return o;let i=V.join(o,".agents","pm");if(yr(V.join(i,"settings.json")))return i}let n=V.resolve(e);for(let o=0;o<32;o+=1){let i=V.join(n,".agents","pm");if(yr(V.join(i,"settings.json")))return i;let s=V.dirname(n);if(s===n)break;n=s}}function ko(e){if(!e.key)return;let t=Za(e.cwd,e.env);if(t)try{let r=JSON.parse(Ka(vr(t),"utf8"));return wo(r.semantic_attribution?.[e.key])}catch{return}}async function Gu(e){return(await Eo(e)).focused_item}async function Bu(e,t){await br(e,r=>{r.focused_item=t})}async function Ju(e){await br(e,t=>{delete t.focused_item})}import{AsyncLocalStorage as xr}from"node:async_hooks";import{createHash as Qa}from"node:crypto";import D from"node:fs";import To from"node:os";import ue 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]="a69b86e2-6633-5abc-81b7-6a54a592d36c")}catch{}})();var Cr=["model","effort","role","topic","version"],ht=new xr,Ao=new xr,yt=new xr,Nr=[{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:[]}],xo=Object.freeze({max_bytes:1048576,max_lines:4096,network_access:!1,subprocess_access:!1}),ec=Object.freeze({...xo,max_bytes:4194304}),Ir=/^[a-z0-9]+(?:-[a-z0-9]+)*$/u;function tc(e){let t=Z(e).provenance_unavailable_dimensions,r=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([...r].sort()),native_sources:Object.freeze(["environment","argv","mcp_client",...Object.values(e.provenance_resolvers??{}).some(n=>n?.endsWith("session_file"))?["session_file"]:[]]),probe_policy:e.harness==="codex"?ec:xo,normalization:Object.freeze({model_family:"v1",effort:"v1",preserve_raw:!0}),confidence:"high",waivers:Object.freeze(Object.fromEntries(t.map(n=>[n,"Harness does not expose this dimension."])))})}var Co=Object.freeze(Nr.filter(e=>e.harness!=="ci").map(tc).sort((e,t)=>e.harness.localeCompare(t.harness))),le=new Map,Ae=new Map;function N(e){let t=typeof e=="string"?e.trim():void 0;return t&&t.length>0?t:void 0}function Y(e){return[...new Set((e??[]).slice(0,64).map(t=>t.trim()).filter(t=>t.length>0).map(t=>t.slice(0,128)))]}function Z(e){let t=e.harness.trim().toLowerCase();if(!Ir.test(t))throw new Error(`Invalid harness signal descriptor namespace: ${e.harness}`);return{harness:t,environment_keys:Y(e.environment_keys),model_environment_keys:Y(e.model_environment_keys),session_environment_keys:Y(e.session_environment_keys),provenance_environment_keys:Object.fromEntries(Object.entries(e.provenance_environment_keys??{}).slice(0,32).map(([r,n])=>[r.trim().toLowerCase().slice(0,64),Y(n)]).filter(([r])=>Ir.test(r))),provenance_resolvers:Object.fromEntries(Object.entries(e.provenance_resolvers??{}).slice(0,32).map(([r,n])=>[r.trim().toLowerCase().slice(0,64),n]).filter(r=>typeof r[0]=="string"&&Ir.test(r[0])&&(r[1]==="ai_agent_version"||r[1]==="claude_session_file"||r[1]==="codex_session_file"))),provenance_unavailable_dimensions:Y(e.provenance_unavailable_dimensions).map(r=>r.toLowerCase()),argv_markers:Y(e.argv_markers).map(r=>r.toLowerCase()),client_names:Y(e.client_names).map(r=>r.toLowerCase())}}var No=Nr.map(Z);function rc(e,t){return JSON.stringify(e)===JSON.stringify(t)}function pt(e,t){return e.toLowerCase().slice(0,512).split(/[/\\\s:=]+/u).filter(r=>r.length>0).includes(t)||e.trim().toLowerCase()===t}function Rr(e=[]){let t=new Map(Nr.filter(o=>o.harness!=="ci").map(o=>[o.harness,Z(o)]));for(let{adapter:o}of le.values())t.set(o.harness,Z(o.descriptor));let r=[...t.values(),...No.filter(o=>o.harness==="ci"),...[...Ae.values()].map(o=>o.descriptor),...yt.getStore()?.descriptors??[],...e.map(Z)],n=new Set;for(let o of r){if(n.has(o.harness))throw new Error(`Harness signal descriptor collision for "${o.harness}"`);n.add(o.harness)}return r}function Dr(e,t){for(let r of t??[]){let n=N(e[r]);if(n)return n.slice(0,256)}}function nc(e,t){if(t==="role"){let r=e.slice(0,8).map(n=>n.trim().toLowerCase()).find(n=>["claim","create","update","close","release","review"].includes(n));if(r==="review")return"reviewer";if(r)return"implementer"}}function Ro(e,t){let r=t==="model"?["--model","--agent-model"]:[`--agent-${t}`],n=e.slice(0,8);for(let o=0;o<n.length;o+=1){let i=n[o].slice(0,512);if(r.includes(i))return N(n[o+1])?.slice(0,256);let s=r.find(a=>i.startsWith(`${a}=`));if(s)return N(i.slice(s.length+1))?.slice(0,256)}}var oc=new Set(["implementation","implementer","investigator","orchestrator","planner","release-operator","reviewer"]);function de(e,t){if(e!=="role"||t===void 0)return t;let r=t.trim().toLowerCase().replaceAll(/[_\s]+/gu,"-");return oc.has(r)?r:void 0}function Or(e,t){return N(e?.[t])?.slice(0,256)}var ic=1048576,Ar=4194304,mt=new Map,So=Object.freeze({}),Tr=new Map,Io=Object.freeze({});function Oo(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:void 0}function sc(e){let t;try{t=JSON.parse(e)}catch{return Io}let r=Oo(t);if(!r)return Io;let n=[{value:r,depth:0}],o=0,i,s;for(;n.length>0&&o<64;){let a=n.shift();if(o+=1,i??=N(a.value.model)?.slice(0,256),s??=N(a.value.version)?.slice(0,256),i&&s)break;if(!(a.depth>=4))for(let d of Object.values(a.value)){let l=Oo(d);l&&n.push({value:l,depth:a.depth+1})}}return Object.freeze({model:i,version:s})}function Do(e){try{return D.lstatSync(e).isFile()?"available":"missing"}catch(t){return W(t)?"missing":"failed"}}function ac(e,t){let r;try{r=D.readdirSync(e,{withFileTypes:!0}).filter(o=>o.isDirectory()).sort((o,i)=>o.name.localeCompare(i.name)).slice(0,512).map(o=>{let i=ue.join(e,o.name,`${t}.jsonl`);return{candidate:i,status:Do(i)}})}catch(o){return{status:W(o)?"missing":"failed"}}let n=r.filter(({status:o})=>o==="available").map(({candidate:o})=>o);return n.length===0?{status:r.some(({status:o})=>o==="failed")?"failed":"missing"}:n.length>1?{status:"ambiguous"}:{status:"available",path:n[0]}}function Po(e,t){let r=N(t.CLAUDE_CODE_SESSION_ID);if(!r||!/^[A-Za-z0-9_-]{1,128}$/u.test(r))return{status:"unavailable"};let n=ue.resolve(e.cwd??process.cwd()).replaceAll(/[^A-Za-z0-9-]/gu,"-"),o=ue.join(e.home_dir??To.homedir(),".claude","projects"),i=ue.join(o,n,`${r}.jsonl`),s=N(e.session_file),a=s&&ue.basename(s)===`${r}.jsonl`?s:void 0;for(let d of[a,i]){if(!d)continue;let l=Do(d);if(l==="available")return{status:l,path:d};if(l==="failed")return{status:l}}return ac(o,r)}function cc(e,t,r){let n=Po(t,r);if(n.status==="available")try{let o=D.openSync(n.path,D.constants.O_RDONLY|D.constants.O_NOFOLLOW);try{let i=D.fstatSync(o),s=`${n.path}\0${i.size}\0${i.mtimeMs}`,a=Tr.get(s);if(a)return a[e];let d=Math.min(i.size,ic),l=Math.min(d,Math.ceil(d/2)),_=Math.min(d-l,i.size-l),f=Buffer.alloc(l);D.readSync(o,f,0,l,0);let b=Buffer.alloc(_);_>0&&D.readSync(o,b,0,_,i.size-_);let O={},S=i.size<=d?Buffer.concat([f,b]).toString("utf8").split(`
9
- `):[...f.toString("utf8").split(`
10
- `).slice(0,4096),...b.toString("utf8").split(`
11
- `).slice(-4096)];for(let H of S){if(H.length===0||H.length>262144)continue;let B=sc(H);if(O.model??=B.model,O.version??=B.version,O.model&&O.version)break}let z=Object.freeze(O);return Tr.clear(),Tr.set(s,z),z[e]}finally{D.closeSync(o)}}catch{return}}function dc(e,t){let r=0,n=(o,i)=>{if(i>4||r>=512)return;let s;try{s=D.readdirSync(o,{withFileTypes:!0}).sort((a,d)=>d.name.localeCompare(a.name))}catch{return}for(let a of s){if(r+=1,r>512)return;let d=ue.join(o,a.name);if(a.isFile()&&a.name.endsWith(`-${t}.jsonl`))return d;if(a.isDirectory()){let l=n(d,i+1);if(l)return l}}};return n(e,0)}function lc(e){if(e<=Ar)return[{offset:0,length:e}];let t=Math.floor(Ar/2);return[{offset:e-t,length:t},{offset:0,length:t}]}function uc(e,t){if(t.length===0||t.length>262144)return;let r;try{r=JSON.parse(t)}catch{return}if(typeof r!="object"||r===null||Array.isArray(r))return;let n=r;if(n.type!=="turn_context")return;let o=typeof n.payload=="object"&&n.payload!==null?n.payload:void 0;e.model??=N(o?.model)?.slice(0,256),e.effort??=N(o?.effort)?.slice(0,256)}function _c(e,t){let r={},n=4096;for(let o of lc(t)){let i=Buffer.alloc(o.length);D.readSync(e,i,0,o.length,o.offset);let s=i.toString("utf8").split(`
12
- `).reverse().slice(0,n);n-=s.length;for(let a of s)if(uc(r,a),r.model&&r.effort)break;if(r.model&&r.effort||n<=0)break}return r}function fc(e,t,r){let n=N(r.CODEX_THREAD_ID);if(!n||!/^[A-Za-z0-9_-]{1,128}$/u.test(n))return;let o=ue.join(t.home_dir??To.homedir(),".codex","sessions"),i=`${o}\0${n}`,s=mt.get(i);if(s)return s[e];let a=dc(o,n);if(!a){mt.set(i,So);return}try{let d=D.openSync(a,"r");try{let l=D.fstatSync(d).size,_=_c(d,l);return mt.set(i,_),_[e]}finally{D.closeSync(d)}}catch{mt.set(i,So);return}}function mc(e,t,r,n){let o=yt.getStore();if(!(t.probes_enabled!==!1&&o?.probesEnabled!==!1&&!["0","false","off"].includes(N(r.PM_AGENT_PROBES)?.toLowerCase()??"")))return;let i=n?.provenance_resolvers[e];if(i==="claude_session_file")return cc(e,t,r);if(i==="codex_session_file")return fc(e,t,r);if(i==="ai_agent_version"){let s=N(r.AI_AGENT);return!s||!n||!pt(s,n.harness)?void 0:/(?:^|[@/\s])v?(\d+\.\d+(?:\.\d+)?(?:[-+][A-Za-z0-9.-]+)?)$/u.exec(s)?.[1]?.slice(0,256)}}function pc(e,t,r,n){if(e==="ai_agent_version"){let o=N(n.AI_AGENT);return o!==void 0&&pt(o,t.harness)?"available":"unavailable"}return e==="codex_session_file"?N(n.CODEX_THREAD_ID)!==void 0?"available":"unavailable":Po(r,n).status}function Pr(e){return e||(Ao.getStore()??{env:process.env,argv:process.argv})}function hc(e,t,r,n){let o=e.environment_keys.some(a=>N(t[a])!==void 0),i=e.argv_markers.some(a=>r.some(d=>{let l=d.replaceAll("\\","/");return pt(l.slice(l.lastIndexOf("/")+1),a)})),s=e.client_names.some(a=>n===a||pt(n,a));return o||i||s}function yc(e,t){if(!t)return;let r;if(e==="topic"&&(r=t.topic),e==="role"&&(r=t.role),!!r)return{value:r,source:"inferred",confidence:t.confidence,rule_version:t.rule_version,evidence:t.evidence}}function gc(e){let t=e.find(([r])=>r!==void 0);return t?.[0]?{value:t[0],source:t[1]}:void 0}function vc(e,t,r,n,o,i){let s=`PM_AGENT_${e.toUpperCase().replaceAll("-","_")}`,a=new Set([...Cr,...Object.keys(n?.provenance_environment_keys??{})]),d,l,_;a.has(e)&&(d=de(e,N(r[s])?.slice(0,256)),_=de(e,Ro(t.argv??[],e)),l=de(e,nc(t.argv??[],e)));let f={...n?.provenance_environment_keys,model:n?.model_environment_keys},b={...t.client_info?.provenance,model:t.client_info?.model},O=Or(o?.provenance,e),S=de(e,Dr(r,f[e])),z=de(e,Or(b,e)),H=de(e,Or(t.provenance,e)),B=mc(e,t,r,n);return gc([[d,"override"],[O,"session"],[_,"argv"],[S,"environment"],[z,"mcp_client"],[H,"host"],[B,"probe"]])??yc(e,i)??(l?{value:l,source:"argv"}:void 0)}function bc(e,t){if(!(!e||!t))return Qa("sha256").update(`pm-agent-instance:v1\0${e}\0${t}`).digest("hex").slice(0,24)}function wc(e,t,r,n,o){let i=Object.keys(r?.provenance_environment_keys??{}),s=new Set([...Cr,...i,...Object.keys(r?.provenance_resolvers??{}),...Object.keys(e.provenance??{}),...Object.keys(e.client_info?.provenance??{}),...Object.keys(n?.provenance??{})]),a={};for(let d of s){let l=vc(d,e,t,r,n,o);l?a[d]=l:r&&(d!=="version"||r.provenance_unavailable_dimensions.includes(d))&&(a[d]=null)}return a}function o_(e){let t=e.map(Z),r=new Map(No.map(i=>[i.harness,i])),n=new Set;for(let i of t){if(n.has(i.harness)||r.has(i.harness))throw new Error(`Harness signal descriptor collision for "${i.harness}"`);let s=Ae.get(i.harness);if(s&&!rc(s.descriptor,i))throw new Error(`Harness signal descriptor collision for "${i.harness}"`);n.add(i.harness)}for(let i of t){let s=Ae.get(i.harness);Ae.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=Ae.get(i.harness);!s||s.registrations<=1?Ae.delete(i.harness):s.registrations-=1}}}}function Ec(e){let t=Z(e.descriptor),r=e.harness.trim().toLowerCase();if(e.contract_version!==1)throw new Error(`Unsupported provenance adapter contract for "${r}": ${e.contract_version}`);if(t.harness!==r)throw new Error(`Provenance adapter harness "${r}" does not match descriptor "${t.harness}".`);let n=N(e.adapter_version)?.slice(0,64);if(!n)throw new Error(`Provenance adapter "${r}" requires a version.`);if(!Number.isSafeInteger(e.priority))throw new Error(`Provenance adapter "${r}" requires an integer priority.`);if(e.probe_policy.network_access!==!1||e.probe_policy.subprocess_access!==!1||e.probe_policy.max_bytes>Ar||e.probe_policy.max_lines>4096)throw new Error(`Provenance adapter "${r}" exceeds the bounded local probe policy.`);return Object.freeze({...e,adapter_version:n,harness:r,descriptor:t,supported_dimensions:Object.freeze(Y(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 i_(){let e=new Map(Co.map(t=>[t.harness,t]));for(let{adapter:t}of le.values())e.set(t.harness,t);return Object.freeze([...e.values()].sort((t,r)=>t.harness.localeCompare(r.harness)))}function s_(e){let t=e.map(Ec),r=new Map(Co.map(i=>[i.harness,i])),n=new Set;for(let i of t){if(n.has(i.harness))throw new Error(`Provenance adapter collision for "${i.harness}".`);let s=r.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=le.get(i.harness);if(a&&JSON.stringify(a.adapter)!==JSON.stringify(i))throw new Error(`Provenance adapter collision for "${i.harness}".`);n.add(i.harness)}for(let i of t){let s=le.get(i.harness);le.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=le.get(i.harness);!s||s.registrations<=1?le.delete(i.harness):s.registrations-=1}}}}function a_(e,t){let r=t.trim().slice(0,256),n=r.toLowerCase();if(e==="model"){let o=/^(gpt-\d+(?:\.\d+)?)/u.exec(n)?.[1];o&&(n=o)}else n=n.replaceAll(/[_\s-]+/gu,""),n={minimal:"low",low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max",ultra:"ultra"}[n]??n;return{raw:r,normalized:n,vocabulary:"v1"}}function c_(e,t){return Ao.run(e,t)}function d_(e,t,r={}){let n=e.map(Z);return Rr(n),yt.run({descriptors:n,probesEnabled:r.probesEnabled!==!1},t)}function jr(e){let t=Pr(e),r=t.env??{},n=Rr(t.descriptors),o=[...(t.argv??[]).slice(0,3),...t.process_labels??[]].slice(0,64).map(S=>S.slice(0,512)),i=t.client_info?.name.trim().toLowerCase()??"",s=n.find(S=>hc(S,r,o,i)),a=hr(t,r),d=[Dr(r,s?.session_environment_keys),N(t.client_info?.session)?.slice(0,256)].find(S=>S!==void 0),l=bc(s?.harness,d),_=ko({cwd:t.cwd??process.cwd(),env:r,key:l}),f=wc(t,r,s,a,_),b=f.model,O=[["harness",s?.harness],["model",b?.value],["model_source",b?.source],["session",d],["instance",l],["provenance",Object.keys(f).length>0?f:void 0],["episode",a.episode]];return Object.fromEntries(O.filter(S=>S[1]!==void 0))}function kc(e){return e==="unavailable"?{status:"unavailable",reason:"harness_unavailable"}:e==="missing"?{status:"unavailable",reason:"resolver_input_missing"}:{status:"failed",reason:"resolver_failed"}}function Sc(e,t,r,n,o,i,s){let a=r?.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 d=pc(a,r,n,o);return{...kc(d),resolver:a,rule_version:"v1"}}return{status:r?.provenance_unavailable_dimensions.includes(e)?"unavailable":"not_configured",reason:r?.provenance_unavailable_dimensions.includes(e)?"harness_unavailable":"resolver_not_configured",rule_version:"v1"}}function jo(e){let t=Pr(e),r=jr(t),n=Rr(t.descriptors).find(l=>l.harness===r.harness),o=t.env??{},i=t.probes_enabled!==!1&&yt.getStore()?.probesEnabled!==!1&&!["0","false","off"].includes(N(o.PM_AGENT_PROBES)?.toLowerCase()??""),s=hr(t,o),a=[o.PM_AGENT_ROLE,s.provenance?.role,Dr(o,n?.provenance_environment_keys.role),t.client_info?.provenance?.role,t.provenance?.role,Ro(t.argv??[],"role")].some(l=>{let _=N(l)?.slice(0,256);return _!==void 0&&de("role",_)===void 0}),d=Object.fromEntries(Cr.map(l=>[l,Sc(l,r,n,t,o,i,l==="role"&&a)]));return{...r,provenance_outcomes:d}}function l_(){return process.env.PM_AUTHOR}function u_(e){e===void 0?delete process.env.PM_AUTHOR:process.env.PM_AUTHOR=e}function __(e){return jr(e).harness}function Ic(e,t,r){let n=Pr(r),o=jr(n);if(e!==void 0){let s=N(e);return s?{author:s,source:"asserted",...o}:{author:"unknown",source:"unknown",...o}}if(n.env?.PM_AUTHOR!==void 0){let s=N(n.env.PM_AUTHOR);return s?{author:s,source:"asserted",...o}:{author:"unknown",source:"unknown",...o}}let i=N(t);return i?{author:i,source:"configured",...o}:o.harness?{author:`harness:${o.harness}`,source:"detected",...o}:{author:"unknown",source:"unknown",...o}}function Lo(e){let t=ht.getStore();return t?.author===e?t.source:e.startsWith("harness:")?"detected":e==="unknown"?"unknown":"asserted"}function Ho(e){let t=ht.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 f_(e){let t=ht.getStore();return t?.author===e&&t.source==="detected"&&t.instance?`${e}#${t.instance}`:e}function zo(e,t){let r=Ic(e,t);return ht.enterWith(r),r.author}import Oc 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]="58661057-fa80-5571-9be7-b949723c274b")}catch{}})();async function gt(e,t){let r=await Oc.readFile(e).catch(s=>{if(W(s))return null;throw s}),n=r?.toString("utf8")??null;if(n===null)return{raw:n,raw_bytes:r,entries:[]};if(await it({path:e,scope:"project"}),n.trim()==="")return{raw:n,raw_bytes:r,entries:[]};let o=dt(n);if(o)throw new w(`History for ${t} contains merge conflict markers at line ${o.line} (${o.marker}). Resolve <<<<<<< ======= >>>>>>> markers and retry.`,E.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 i=[];for(let[s,a]of n.split(/\r?\n/).entries()){let d=a.trim();if(d)try{i.push(JSON.parse(d))}catch{throw new w(`History for ${t} contains invalid JSON at line ${s+1}. Repair or restore the history stream and retry.`,E.GENERIC_FAILURE,{code:"history_json_invalid",nextSteps:[`Run pm history-repair ${t} --salvage-tail --dry-run to check whether only an invalid suffix is damaged.`]})}}return{raw:n,raw_bytes:r,entries:i}}async function Ge(e,t){return(await gt(e,t)).entries}import ki from"fast-json-patch";import vi from"node:fs/promises";import wd 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]="82c79093-2a40-5b4c-8d41-637b0ae03c4f")}catch{}})();import T from"node:fs/promises";import C from"node:path";import{createHash as Ot,randomUUID as Wr}from"node:crypto";import{createRequire as Gc}from"node:module";import{setImmediate as Xo}from"node:timers/promises";import zr from"fast-json-patch";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="3bfeb8d2-52c2-587a-9611-c4d5817cb47e")}catch{}})();function Fo(e){let t=[],r=e[0]?.op==="history_compact_baseline",n=r?1:void 0,o=!1;for(let[i,s]of e.entries())s.op==="delete"&&(o=!0),s.op==="create"&&(n!==void 0&&t.push({prior_genesis_index:n,repeated_create_index:i+1,sequence:o?"delete_then_create":r?"checkpoint_then_create":"multiple_creates"}),n??=i+1,o=!1);return t}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="0c0cb8c7-4d7d-53f8-8ec2-d6dc98fc6dc5")}catch{}})();var Ac={metadata:{},body:""};function bt(){return structuredClone(Ac)}function R_(e,t=_e,r){return Lr(e,t,r)[0]}function Lr(e,t,r){if(Object.keys(e.metadata).length===0||Array.isArray(e.metadata.tags))try{return Uo(wt(e),t,r)}catch{}let n=K(A({replay_fallback:!0,metadata:e.metadata,body:e.body}),r);return t===2?[n,n]:[n]}function Wo(e,t,r,n,o){let i=se(n.hash_algorithm),s=`${r}:${i}`,a=o?.before.get(s)??Lr(e,r,i),d=Lr(t,r,i);return o?.after.set(s,d),{beforeHashes:a,afterHashes:d,pairIndex:a.findIndex((l,_)=>l===n.before_hash&&d[_]===n.after_hash),beforeIndex:a.indexOf(n.before_hash),afterIndex:d.indexOf(n.after_hash)}}function wt(e){return{metadata:e.metadata,body:e.body}}function D_(e,t={}){return Oe(wt(e),t)}function P_(e){if(!e.metadata||Object.keys(e.metadata).length===0)return{metadata:{},body:e.body??""};let t=Oe(e);return{metadata:g(t.metadata,J),body:t.body}}function $o(e){return e==="/front_matter"?"/metadata":e.startsWith("/front_matter/")?`/metadata/${e.slice(14)}`:e}function xc(e){return typeof e=="object"&&e!==null&&typeof e.op=="string"&&typeof e.path=="string"}function qo(e){return Array.isArray(e)?e.filter(xc).map(t=>({...t,path:$o(t.path),from:typeof t.from=="string"?$o(t.from):void 0})):[]}function Cc(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 Et(e,t){try{let r=qo(t),n=zr.applyPatch(structuredClone(e),r,!0,!0).newDocument;return Cc(n)?{ok:!0,document:{metadata:n.metadata,body:n.body}}:{ok:!1,error:new Error("history_replay_invalid_document_shape")}}catch(r){return{ok:!1,error:r}}}function Nc(e){return[...new Set(e.map(t=>t.item_hash_version).filter(t=>t!==void 0&&Be.includes(t)))]}function Go(e){return e!==void 0&&!Be.includes(e)}function Rc(e,t){return e!==void 0?[e]:t===void 0?[...Be]:[t]}function Bo(e){let t=vt(e);if(!t.ok)return t.error;let r=Hr(e);return r.ok?void 0:r.error}function Dc(e,t){let r=Bo(e);if(r)return{ok:!1,error:r};let n=Et(t,e.patch);return n.ok?{ok:!0,document:n.document}:{ok:!1,error:"patch_apply_failed"}}function Pc(e,t){let r=Bo(e);if(r)throw new TypeError(`${r}:entry_${t+1}`)}function jc(e,t,r,n,o){let i=[];for(let s of r){let a=Wo(e,t,s,n,o);if(i.push({version:s,match:a}),a.pairIndex>=0)break}return i}function kt(e){let t=bt(),r=new Map,n,o,i=Fo(e).map(s=>`verify_failed:duplicate_create:entry_${s.repeated_create_index}:prior_${s.prior_genesis_index}`);for(let s=0;s<e.length;s+=1){let a=e[s],d=a.item_hash_version,l=Go(d);l&&i.push(`verify_failed:unsupported_item_hash_version:${String(d)}:entry_${s+1}`);let _=Dc(a,t);if(!_.ok)return{ok:!1,errors:[...i,`verify_failed:${_.error}:entry_${s+1}`]};if(l){t=_.document,r=new Map,n=void 0,o=void 0;continue}let f=Rc(d,o),b={before:r,after:new Map},O=jc(t,_.document,f,a,b),S=O.find(({match:H})=>H.pairIndex>=0);if(S===void 0){let H=O.some(({match:B})=>B.beforeIndex>=0);return{ok:!1,errors:[...i,`verify_failed:${H?"after":"before"}_hash_mismatch:entry_${s+1}`]}}let z=S.version;t=_.document,r=b.after,n=z,o=d??o}return i.length>0?{ok:!1,errors:i,...n===void 0?{}:{item_hash_version:n}}:{ok:!0,errors:[],...n===void 0?{}:{item_hash_version:n}}}function Je(e){let t=kt(e);return{ok:t.ok,errors:t.errors}}function Mo(e,t){try{return{ok:!0,document:zr.applyPatch(structuredClone(e),[t],!0,!1).newDocument}}catch{return{ok:!1}}}function Lc(e,t){let r=structuredClone(e),n=0,o=0;for(let s of qo(t)){let a=Mo(r,s);if(a.ok){r=a.document;continue}if(s.op==="replace"){let d=Mo(r,{...s,op:"add"});if(d.ok){r=d.document,n+=1;continue}}o+=1}let i=r;return{document:{metadata:typeof i.metadata=="object"&&i.metadata!==null?i.metadata:{},body:typeof i.body=="string"?i.body:e.body},convertedReplaceToAdd:n,skippedOps:o}}function Hc(e){let t=Nc(e);if(t.length===1)return t[0];let r=kt(e);return r.ok&&r.item_hash_version!==void 0?r.item_hash_version:t.length===0?1:_e}function zc(e,t,r=t.patch){let n=Et(e,r);if(n.ok)return{next:n.document,patch:r,repaired:A(r)!==A(t.patch),converted:0,skipped:0};let o=Lc(e,r);return{next:o.document,patch:zr.compare(e,o.document),repaired:!0,converted:o.convertedReplaceToAdd,skipped:o.skippedOps}}function Fc(e,t,r){return zc(e,t,r.projectPatch?.(t,e))}function j_(e,t=Hc(e),r={}){let n=e.findIndex(O=>Go(O.item_hash_version));if(n>=0)throw new TypeError(`unsupported_item_hash_version:${String(e[n]?.item_hash_version)}:entry_${n+1}`);let o=bt(),i=[],s=[],a=0,d=0,l=0,_=0,f,b=t!==1||e.some(O=>O.item_hash_version!==void 0);for(let O=0;O<e.length;O+=1){let S=e[O];Pc(S,O);let z=Fc(o,S,r),{next:H,patch:B,repaired:Ze,converted:Sn,skipped:In}=z;l+=Sn,_+=In,d+=Number(Ze);let oe=Wo(o,H,t,S);f===void 0||r.continuousHashSurface!==!0?f=[oe.pairIndex,oe.beforeIndex,oe.afterIndex,Math.min(f??0,oe.beforeHashes.length-1)].find(ps=>ps>=0):f=Math.min(f,oe.beforeHashes.length-1);let On=oe.beforeHashes[f],Tn=oe.afterHashes[f],Kt=On!==S.before_hash||Tn!==S.after_hash;Kt&&(a+=1);let ve={...S,patch:B,before_hash:On,after_hash:Tn};b?ve.item_hash_version=t:delete ve.item_hash_version;let ms=ve.item_hash_version!==S.item_hash_version;(Kt||Ze||ms)&&(ve=Vo(S,ve,{retainOriginalPatch:Ze})),i.push(ve),s.push({index:O+1,rehashed:Kt,patch_repaired:Ze,converted_replace_to_add:Sn,skipped_ops:In}),o=H}return{entries:i,finalDocument:o,entriesRehashed:a,entriesPatchRepaired:d,convertedReplaceToAdd:l,skippedOps:_,details:s,itemHashVersion:t,explicitItemHashVersion:b}}function L_(e){return e.length===0?"":`${e.map(t=>JSON.stringify(t)).join(`
13
- `)}
14
- `}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="3c2c29c0-0034-54d4-9dbd-2e9af047784e")}catch{}})();var $c=["docs_add","files_add","history:author-acknowledge","history_author_acknowledge","history_compact","history_compact_baseline","history_redact","history_repair","history_salvage","normalize","release","test_run_track","tests_add","tests_remove","tests_update","update_audit","update_ownership_bypass"],Mc=["append","cancel","claim","close","comment_add","create","learning_add","note_add","reopen"],Vc=new Set($c),Uc=new Set(Mc),Wc=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 qc(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:Vc.has(e.op)?"maintenance":Uc.has(e.op)||e.op!=="update"?"substantive":Array.isArray(e.patch)&&e.patch.length>0&&e.patch.every(t=>{let r=qc(t);return r!==void 0&&Wc.has(r)})?"maintenance":"substantive"}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="812b558d-59f3-58d6-b04e-6a4f8689e866")}catch{}})();function Jo(e){let t=process.emitWarning;process.emitWarning=(r,...n)=>{r==="SQLite is an experimental feature and might change at any time"&&n[0]==="ExperimentalWarning"||Reflect.apply(t,process,[r,...n])};try{return e(["node","sqlite"].join(":")).DatabaseSync??null}catch{return null}finally{process.emitWarning=t}}function Ko(e,t){let r=Number.parseInt(e,10);return Number.isFinite(r)&&r>=22?Jo(t):null}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="c5f096f6-4af4-568e-89ef-1aa0a8718973")}catch{}})();var Bc="history-event-index.sqlite",qr="7",Jc=8,Yo=32,oi="history-event-index",Kc="history-event-index:append:",Xc=5e3,Gr=300,ii=3e4,Yc="history-event-index-invalidation",Zc="history-event-index-invalidations",Qc=Gr*2*1e3,Q=Symbol("history-index-changed"),fe=new Map;function pe(e){return C.join(e,"runtime",Bc)}function si(e){return C.join(e,"runtime","history-event-index-repair-deferred")}async function ai(e){try{let t=Number(await T.readFile(si(e),"utf8")),r=Date.now()-t;return r>=0&&r<Xc}catch{return!1}}async function Zo(e){try{await T.writeFile(si(e),`${Date.now()}
15
- `)}catch{}}function Ke(e){return C.join(e,"runtime",Zc)}async function Tt(e){let t=await T.readdir(Ke(e)).catch(r=>{if(ie(r))return[];throw r});return{pending:t.filter(r=>r.endsWith(".pending")).sort(),committed:t.filter(r=>r.endsWith(".committed")).sort()}}async function Qo(e){let t=await Tt(e);return{pending:(await Promise.all(t.pending.map(async r=>{let n=/^(\d+)-(unknown|\d+)-(\d+)-.+\.pending$/u.exec(r);if(n!==null){let o=n[2];if(await Xn({pid:Number(n[1]),...o==="unknown"?{}:{process_start_identity:o}},Math.max(0,Date.now()-Number(n[3])),Qc))return r}return await T.rm(C.join(Ke(e),r),{force:!0}),null}))).filter(r=>r!==null),committed:t.committed}}async function Vr(e,t,r=ii){let n=await M(e,Yc,Gr,`history-event-index-invalidation:${process.pid}`,!1,!1,r,r===0?{maxWaitMs:0}:void 0);try{return await t()}finally{await n()}}async function ed(e){let t=Ke(e);await T.mkdir(t,{recursive:!0});let r=Wr(),n=await Kn(),o=C.join(t,`${n.pid}-${n.process_start_identity??"unknown"}-${Date.now()}-${r}.pending`);return await T.writeFile(o,`pending
16
- `,{flag:"wx"}),{pendingPath:o,committedPath:C.join(t,`${r}.committed`)}}function td(e,t){return e.length===t.length&&e.every((r,n)=>r===t[n])}async function At(e){try{await T.rm(pe(e),{force:!0})}catch{}}async function Fr(e,t){let r=Ke(e);await T.mkdir(r,{recursive:!0}),await T.writeFile(C.join(r,`${Wr()}${t?".contended":""}.committed`),`committed
17
- `,{flag:"wx"}),t||await At(e)}function xt(e){return e.committed.some(t=>t.endsWith(".contended.committed"))}function Ur(e,t){let r;try{return r=new t(pe(e)),r.exec("PRAGMA busy_timeout = 0"),r.exec("BEGIN EXCLUSIVE"),!1}catch(n){return me(n)}finally{r?.close()}}async function ei(e,t){return t.pending.length>0||await Yn(e,oi,Kc)}async function ci(e,t,r=ii,n="rebuild"){let o=await M(e,oi,Gr,`history-event-index:${n}:${process.pid}`,!1,!1,r,r===0?{maxWaitMs:0}:void 0);try{return await t()}finally{await o()}}async function di(e,t,r=!1){let n=C.join(e,"history"),o=await T.readdir(n,{withFileTypes:!0}).catch(f=>{if(typeof f=="object"&&f!==null&&"code"in f&&f.code==="ENOENT")return[];throw f}),i=fe.get(e)??{streams:new Map,ordered_events:[]},s=new Map(i.streams),a=i.ordered_events,d=new Set,l=!fe.has(e);for(let f of o.filter(b=>b.isFile()&&b.name.endsWith(".jsonl")).sort((b,O)=>b.name.localeCompare(O.name))){let b=f.name.slice(0,-6);d.add(b);let O=C.join(n,f.name);if(!$r(b,t))continue;let S=await nd(O,b,s.get(b),r);S!==void 0&&(s.set(b,S),l=!0)}for(let f of s.keys())d.has(f)||(s.delete(f),l=!0);l&&(a=[...s.values()].flatMap(f=>f.events).sort(Br));let _={streams:s,ordered_events:a};if(fe.delete(e),fe.set(e,_),fe.size>Jc){let f=fe.keys().next().value;fe.delete(f)}return{events:_.ordered_events.filter(f=>$r(f.stream_id,t)).map(f=>rd(f,r)),stream_receipts:new Map([..._.streams].filter(([f])=>$r(f,t)).map(([f,b])=>[f,{byte_size:b.byte_size,content_hash:b.signature}]))}}function rd(e,t){return t||e.recorded_entry===void 0?e:{stream_id:e.stream_id,stream_offset:e.stream_offset,entry:e.entry}}function $r(e,t){return!t?.length||t.includes(e)}async function nd(e,t,r,n){if(!n&&r!==void 0&&r.byte_size===(await T.stat(e)).size){let o=Ot("sha256").update(await T.readFile(e)).digest("hex");if(r.signature===o)return}return od(e,t,n)}async function od(e,t,r){let n=await gt(e,t);if(r){let i=kt(n.entries);if(!i.ok)throw new w(`Authoritative history integrity verification failed for ${t}.`,E.GENERIC_FAILURE,{code:"event_history_integrity_failed",why:i.errors.join(", "),nextSteps:[`Run pm history ${t} --verify to inspect the authoritative chain before retrying.`]})}let o=n.raw_bytes??new Uint8Array;return{signature:Ot("sha256").update(o).digest("hex"),byte_size:o.byteLength,events:li(n.entries,t).map((i,s)=>({stream_id:t,stream_offset:s,entry:i,...r?{recorded_entry:n.entries[s]}:{}}))}}async function id(e,t){return li((await gt(e,t)).entries,t)}function li(e,t){for(let[r,n]of e.entries())if(typeof n.ts!="string"||!Ee(n.ts.trim()))throw new w(`History for ${t} contains an invalid or sub-millisecond timestamp at line ${r+1}. Repair or restore the history stream and retry.`,E.GENERIC_FAILURE,{code:"history_timestamp_invalid"});return e.map(r=>({...r,ts:new Date(r.ts.trim()).toISOString()}))}var Mr;function Nt(){return Mr!==void 0||(Mr=Ko(process.versions.node,Gc(import.meta.url))),Mr}function sd(e){e.exec(`
18
- PRAGMA journal_mode = OFF;
19
- PRAGMA synchronous = OFF;
20
- CREATE TABLE metadata (
21
- key TEXT PRIMARY KEY,
22
- value TEXT NOT NULL
23
- ) STRICT;
24
- CREATE TABLE events (
25
- stream_id TEXT NOT NULL,
26
- stream_offset INTEGER NOT NULL,
27
- ts TEXT NOT NULL,
28
- author TEXT NOT NULL,
29
- agent_harness TEXT,
30
- agent_instance TEXT,
31
- op TEXT NOT NULL,
32
- event_class TEXT NOT NULL CHECK(event_class IN ('substantive', 'maintenance')),
33
- entry_json TEXT NOT NULL,
34
- PRIMARY KEY(stream_id, stream_offset)
35
- ) STRICT;
36
- CREATE TABLE streams (
37
- stream_id TEXT PRIMARY KEY,
38
- byte_size INTEGER NOT NULL CHECK(byte_size >= 0),
39
- content_hash TEXT NOT NULL
40
- ) STRICT;
41
- CREATE INDEX events_order
42
- ON events(ts, stream_id, stream_offset);
43
- CREATE INDEX events_op_order
44
- ON events(op, ts, stream_id, stream_offset);
45
- CREATE INDEX events_class_stream_order
46
- ON events(event_class, stream_id, ts, stream_offset);
47
- CREATE INDEX events_author_order
48
- ON events(author, ts, stream_id, stream_offset);
49
- CREATE INDEX events_harness_order
50
- ON events(agent_harness, ts, stream_id, stream_offset);
51
- CREATE INDEX events_instance_order
52
- ON events(agent_instance, ts, stream_id, stream_offset);
53
- `),e.prepare("INSERT INTO metadata(key, value) VALUES ('version', ?)").run(qr)}function ui(e,t){let r={...t.entry,ts:new Date(t.entry.ts.trim()).toISOString()};e.prepare(`INSERT INTO events(
54
- stream_id, stream_offset, ts, author, agent_harness,
55
- agent_instance, op, event_class, entry_json
56
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`).run(t.stream_id,t.stream_offset,r.ts,r.author,r.agent_harness??null,r.agent_instance??null,r.op,xe(r),JSON.stringify(r))}function _i(e){let t=JSON.parse(String(e.entry_json));return typeof t.ts!="string"||!Ee(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 fi(e,t,r){e.prepare(`INSERT INTO streams(stream_id, byte_size, content_hash) VALUES (?, ?, ?)
57
- ON CONFLICT(stream_id) DO UPDATE SET byte_size = excluded.byte_size, content_hash = excluded.content_hash`).run(t,r.byte_size,r.content_hash)}async function ad(e,t={}){let r=Nt();return r?ci(e,async()=>{let n;try{n=await Vr(e,()=>Qo(e),t.lockWaitMs)}catch(a){if(a instanceof w&&a.code==="lock_conflict")return!1;throw a}if(n.pending.length>0||xt(n)&&Ur(e,r))return!1;let o=pe(e);await T.mkdir(C.dirname(o),{recursive:!0});let i=`${o}.${Wr()}.tmp`,s;try{s=new r(i),sd(s),s.exec("BEGIN IMMEDIATE");let a=await di(e);await cd(s,a),s.exec("COMMIT"),s.close(),s=void 0;let d=await Vr(e,async()=>{let l=await Qo(e);return l.pending.length>0||!td(n.committed,l.committed)||xt(l)&&Ur(e,r)?!1:(await T.rm(o,{force:!0}),await T.rename(i,o),!0)},t.lockWaitMs);return d&&await Promise.all(n.committed.map(l=>T.rm(C.join(Ke(e),l),{force:!0}))),d||(await Zo(e),await T.rm(i,{force:!0})),d}catch(a){throw await Zo(e),s?.close(),await T.rm(i,{force:!0}),a}},t.lockWaitMs):!1}async function cd(e,t){let r=0;for(let n of t.events)ui(e,n),++r%500===0&&await Xo();for(let[n,o]of t.stream_receipts)fi(e,n,o),++r%500===0&&await Xo()}function St(e,t){return!t||t.length===0||t.includes(e)}function Br(e,t){return e.entry.ts.localeCompare(t.entry.ts)||e.stream_id.localeCompare(t.stream_id)||e.stream_offset-t.stream_offset}function Ct(e){let t=Date.parse(e);return Number.isFinite(t)?new Date(t).toISOString():e}function dd(e,t){if(t.after_ts!==void 0&&t.after_stream_id!==void 0&&t.after_stream_offset!==void 0){if(Br(e,{stream_id:t.after_stream_id,stream_offset:t.after_stream_offset,entry:{...e.entry,ts:Ct(t.after_ts)}})<=0)return!1}else if(t.since_ts!==void 0&&e.entry.ts<Ct(t.since_ts))return!1;return!0}function ld(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 ud(e,t){return!dd(e,t)||!St(e.entry.op,t.ops)||!St(e.entry.author,t.authors)||!St(e.entry.agent_instance??"",t.agent_instances)||!St(e.stream_id,t.stream_ids)||!ld(e,t)?!1:(t.provenance??[]).every(r=>{let n=e.entry.agent_provenance?.[r.dimension]?.value;return n!==void 0&&r.values.includes(n)})}async function _d(e,t){let r=Math.max(0,Math.floor(t.limit)),n=await di(e,t.stream_ids,t.verify),o=n.events.filter(i=>ud(i,t)).slice(0,r+1);return{events:o.slice(0,t.limit),has_more:o.length>t.limit,...t.verify?{verified_streams:n.stream_receipts.size}:{}}}async function fd(e,t){let r=e.prepare("SELECT byte_size, content_hash FROM streams WHERE stream_id = ?").get(C.basename(t,".jsonl")),n=0;try{n=(await T.stat(t)).size}catch(i){if(!ie(i))throw i}if(Number(r?.byte_size??0)!==n)return!1;let o=await Kr(C.dirname(C.dirname(t)),C.basename(t,".jsonl"));return r===void 0?o?.byte_size===0:o?.content_hash===r.content_hash}async function mi(e,t,r){let n=C.dirname(C.dirname(e)),o=Nt(),i=!1,s=async()=>{await r(),i=!0};if(!o){await ti(n,s);return}try{await ci(n,async()=>{let a=pe(n);try{await T.access(a)}catch{await s();return}let d;try{if(d=new o(a),d.prepare("SELECT value FROM metadata WHERE key = 'version'").get()?.value!==qr)throw new TypeError("Unsupported history event index version");if(!await fd(d,e))throw new TypeError("Stale history event index append base")}catch(_){if(d?.close(),me(_))throw _;await Fr(n,!0),await s();return}try{d.exec("PRAGMA busy_timeout = 0"),d.exec("BEGIN IMMEDIATE")}catch(_){if(d.close(),me(_)||!(_ instanceof Error)||_.code!=="ERR_SQLITE_ERROR")throw _;await Fr(n,!1),await s();return}let l=!1;try{await s(),l=!0;let _=C.basename(e,".jsonl"),f=d.prepare("SELECT COALESCE(MAX(stream_offset), -1) + 1 AS value FROM events WHERE stream_id = ?").get(_);ui(d,{stream_id:_,stream_offset:Number(f.value),entry:t}),fi(d,_,await Kr(n,_)),d.exec("COMMIT"),d.close()}catch(_){if(d?.close(),!l)throw _;await Fr(n,me(_))}},0,"append")}catch(a){if(i){await At(n);return}if(!pd(a))throw a;await ti(n,s,me(a))}}async function ti(e,t,r=!1){let n=!1,o;try{await Vr(e,async()=>{let i=r||xt(await Tt(e)),s=await ed(e);o=s.pendingPath;try{await t(),n=!0}catch(a){throw await T.rm(s.pendingPath,{force:!0}),a}await T.rename(s.pendingPath,i?s.committedPath.replace(/\.committed$/u,".contended.committed"):s.committedPath),i||await At(e)})}catch(i){if(n){await At(e);try{await T.rm(o,{force:!0})}catch{}return}throw i}}async function Jr(e){await T.rm(pe(C.dirname(C.dirname(e))),{force:!0})}function It(e,t,r,n){!n||n.length===0||(e.push(`${r} IN (${n.map(()=>"?").join(", ")})`),t.push(...n))}function md(e,t,r,n){if(!r||r.length===0)return;let o=r.map(()=>"?").join(", "),i=n??[];if(i.length>0){e.push(`(agent_harness IN (${o}) OR (agent_harness IS NULL AND author IN (${i.map(()=>"?").join(", ")})))`),t.push(...r,...i);return}e.push(`agent_harness IN (${o})`),t.push(...r)}async function pi(e,t,r,n){let o;try{let i=await Tt(e);if(await ei(e,i))return Q;let s=await ri(e);if(i.committed.length>0)return xt(i)&&Ur(e,t)?Q:null;if(o=new t(pe(e),{readOnly:!0}),o.exec("BEGIN"),o.prepare("SELECT value FROM metadata WHERE key = 'version'").get()?.value!==qr)return null;let a=n(o);if(a===null)return null;let d=hd(o,r),l=o;o=void 0,l.close();let _=await gd([...d.keys()],e,r),f=await yd(d,e,_),b=await Tt(e);return b.committed.length>0||await ei(e,b)||s!==await ri(e)?Q:f?a:null}catch(i){return me(i)?Q:null}finally{o?.close()}}function me(e){return typeof e=="object"&&e!==null&&"errcode"in e&&[5,6].includes(e.errcode)}function pd(e){return me(e)||e instanceof w&&e.code==="lock_conflict"}function hd(e,t){let r=new Map,n=t&&t.length>0?[...new Set(t)]:void 0;if(n===void 0)for(let o of e.prepare("SELECT stream_id, byte_size, content_hash FROM streams").all())r.set(String(o.stream_id),{byte_size:Number(o.byte_size),content_hash:String(o.content_hash)});else for(let o=0;o<n.length;o+=500){let i=n.slice(o,o+500);for(let s of e.prepare(`SELECT stream_id, byte_size, content_hash FROM streams WHERE stream_id IN (${i.map(()=>"?").join(", ")})`).all(...i))r.set(String(s.stream_id),{byte_size:Number(s.byte_size),content_hash:String(s.content_hash)})}return r}async function ri(e){let t=await T.stat(pe(e),{bigint:!0});return[t.dev,t.ino,t.size,t.mtimeNs,t.ctimeNs].join(":")}async function ef(e,t){if(t.verify)return{result:await _d(e,t),repair_needed:!1};let r=Nt();if(!r)return{result:null,repair_needed:!1};let n=[],o=[];if(t.after_ts!==void 0&&t.after_stream_id!==void 0&&t.after_stream_offset!==void 0){n.push("(ts > ? OR (ts = ? AND stream_id > ?) OR (ts = ? AND stream_id = ? AND stream_offset > ?))");let a=Ct(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&&(n.push("ts >= ?"),o.push(Ct(t.since_ts)));It(n,o,"op",t.ops),It(n,o,"author",t.authors),md(n,o,t.harnesses,t.harness_alias_authors),It(n,o,"agent_instance",t.agent_instances);for(let a of t.provenance??[])n.push(`json_extract(entry_json, '$.agent_provenance.${a.dimension}.value') IN (${a.values.map(()=>"?").join(", ")})`),o.push(...a.values);It(n,o,"stream_id",t.stream_ids);let i=n.length===0?"":` WHERE ${n.join(" AND ")}`,s=await pi(e,r,t.stream_ids,a=>{let d=a.prepare(`SELECT stream_id, stream_offset, entry_json
58
- FROM events${i}
59
- ORDER BY ts, stream_id, stream_offset
60
- LIMIT ?`).all(...o,Math.max(0,Math.floor(t.limit))+1),l=d.slice(0,t.limit).map(_i);return l.includes(null)?null:{events:l,has_more:d.length>t.limit}});return{result:s===Q?null:s,repair_needed:s===null&&!await ai(e)}}function hi(e,t){let r=Object.create(null);for(let n of e){if(!t.has(n.stream_id)||xe(n.entry)!=="substantive")continue;let o=r[n.stream_id];(o===void 0||Br(o,n)<0)&&(r[n.stream_id]=n)}return r}async function Kr(e,t){if(C.basename(t)!==t)return null;try{let r=C.join(e,"history",`${t}.jsonl`),n=await T.stat(r),o=await T.readFile(r);return n.size!==o.length?null:{byte_size:o.length,content_hash:Ot("sha256").update(o).digest("hex")}}catch(r){if(ie(r))return{byte_size:0,content_hash:Ot("sha256").digest("hex")};throw r}}async function yd(e,t,r){for(let n=0;n<r.length;n+=Yo){let o=r.slice(n,n+Yo),i=await Promise.all(o.map(s=>Kr(t,s)));for(let[s,a]of i.entries()){if(a===null)return!1;let d=o[s],l=e.get(d);if(!(a.byte_size===0&&l===void 0)&&(a.byte_size!==l?.byte_size||a.content_hash!==l.content_hash))return!1}}return!0}async function gd(e,t,r){if(r&&r.length>0)return[...new Set(r.filter(o=>o.trim().length>0))];let n=await T.readdir(C.join(t,"history"),{withFileTypes:!0}).then(o=>o.filter(i=>i.isFile()&&i.name.endsWith(".jsonl")).map(i=>i.name.slice(0,-6))).catch(o=>{if(ie(o))return[];throw o});return[...new Set([...e,...n])]}async function ni(e,t,r,n){return e?pi(t,e,r,o=>{let i=[];for(let s=0;s<r.length;s+=500){let a=r.slice(s,s+500),d=o.prepare(`SELECT stream_id, stream_offset, entry_json
61
- FROM (
62
- SELECT stream_id, stream_offset, entry_json,
63
- ROW_NUMBER() OVER (
64
- PARTITION BY stream_id
65
- ORDER BY ts DESC, stream_offset DESC
66
- ) AS recency_rank
67
- FROM events
68
- WHERE event_class = 'substantive'
69
- AND stream_id IN (${a.map(()=>"?").join(", ")})
70
- )
71
- WHERE recency_rank = 1`).all(...a).map(_i);if(d.includes(null))return null;i.push(...d)}return hi(i,n)}):null}async function tf(e,t){let r=[...new Set(t.filter(a=>a.trim().length>0&&C.basename(a)===a))];if(r.length===0)return{};let n=new Set(r),o=Nt(),i=await ni(o,e,r,n);if(i!==null&&i!==Q)return i;if(o&&i!==Q&&!await ai(e))try{if(await ad(e,{lockWaitMs:0})){let a=await ni(o,e,r,n);if(a!==null&&a!==Q)return a}}catch{}let s=[];return await Promise.all(r.map(async a=>{let d=C.join(e,"history",`${a}.jsonl`);(await id(d,a).catch(l=>{if(l instanceof w&&l.code==="history_timestamp_invalid")return[];throw l})).forEach((l,_)=>{s.push({stream_id:a,stream_offset:_,entry:l})})})),hi(s,n)}import Xr from"node:fs/promises";import Ce from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="687cbe24-6d5c-5322-962d-455048eb84b5")}catch{}})();var vd=Ce.join("runtime","history-drift-cache.json"),yi={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 gi(e){return typeof e=="object"&&e!==null&&"code"in e&&typeof e.code=="string"?e.code:void 0}async function bd(e){let t=Ce.join(e,vd),r=!1,n="invalid_cache_path";try{r=(await Xr.stat(await Xr.realpath(e))).isDirectory()}catch(o){let i=gi(o);n=i===void 0?"unknown":yi[i]??"filesystem_error"}if(!r){Zt(`[pm] warning: history_drift_cache_invalidation_failed:${n}
72
- `);return}try{await Xr.rm(t,{force:!0})}catch(o){let i=gi(o);if(ie(o))return;let s=i===void 0?"unknown":yi[i]??"filesystem_error";Zt(`[pm] warning: history_drift_cache_invalidation_failed:${s}
73
- `)}}async function Rt(e){let t=Ce.dirname(Ce.resolve(e));Ce.basename(t)==="history"&&await bd(Ce.dirname(t))}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="4a3c3c82-0398-549c-8910-fdc69d971cb2")}catch{}})();var Ed={front_matter:{},body:""},_e=3,Be=[1,2,3],kd=1,Sd=[1];function Si(e){return K(A(e),e.hash_algorithm)}function Ne(e){return ot(A(e))}function Of(e){return ot(A(e))}function en(e){let t={...e,record_hash_version:kd},{record_hash:r,...n}=t;return{...t,record_hash:Si(n)}}function vt(e){try{se(e.hash_algorithm)}catch{return{ok:!1,error:"unsupported_history_hash_algorithm"}}if(e.record_hash_version===void 0&&e.record_hash===void 0)return{ok:!0,coverage:"item_state_only"};if(e.record_hash_version===void 0||e.record_hash===void 0)return{ok:!1,error:"incomplete_record_hash_envelope"};if(!Sd.includes(e.record_hash_version))return{ok:!1,error:"unsupported_record_hash_version"};let{record_hash:t,...r}=e;return Si(r)===e.record_hash?{ok:!0,coverage:"record_and_item_state"}:{ok:!1,error:"record_hash_mismatch"}}function Id(e,t){let r={before_hash:e.before_hash,after_hash:e.after_hash,patch_hash:Ne(e.patch)};return e.hash_algorithm!==void 0&&(r.hash_algorithm=e.hash_algorithm),e.item_hash_version!==void 0&&(r.item_hash_version=e.item_hash_version),t.retainOriginalPatch&&(r.patch=structuredClone(e.patch)),t.retainPriorRecordHash!==!1&&e.record_hash_version!==void 0&&e.record_hash!==void 0&&(r.record_hash_version=e.record_hash_version,r.record_hash=e.record_hash,r.record=structuredClone(e)),r}function Vo(e,t,r={}){let n=vt(e);if(!n.ok)throw new TypeError(n.error);let o=Ne(e.patch),i=r.retainPriorRecord===!0||e.before_hash!==t.before_hash||e.after_hash!==t.after_hash||e.item_hash_version!==t.item_hash_version||e.hash_algorithm!==t.hash_algorithm||o!==Ne(t.patch),s=en({...t,...i?{reanchor_evidence:[...t.reanchor_evidence??[],Id(e,r)]}:{}}),a=Hr(s);if(!a.ok)throw new TypeError(a.error);return s}function Ii(e){return!Array.isArray(e)||Object.keys(e).length!==e.length?!1:e.every(t=>!he(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 Od(e){return he(e)&&typeof e.ts=="string"&&typeof e.author=="string"&&typeof e.op=="string"&&typeof e.before_hash=="string"&&typeof e.after_hash=="string"&&Ii(e.patch)}function Td(e){let t=e.record_hash_version!==void 0,r=e.record_hash!==void 0;return t===r}function Ad(e){return!he(e)||!Td(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&&!Ii(e.patch)||e.record_hash_version!==void 0&&typeof e.record_hash_version!="number"||e.record_hash!==void 0&&(typeof e.record_hash!="string"||!/^(?:[a-f0-9]{64}|[a-f0-9]{128})$/u.test(e.record_hash))?!1:e.record===void 0||Od(e.record)}function xd(e){try{for(let t of e){if(!Ad(t))return!1;se(t.hash_algorithm)}return!0}catch{return!1}}function Cd(e){let t=e.record;return t!==void 0&&t.before_hash===e.before_hash&&t.after_hash===e.after_hash&&t.item_hash_version===e.item_hash_version&&t.hash_algorithm===e.hash_algorithm&&t.record_hash_version===e.record_hash_version&&t.record_hash===e.record_hash&&Ne(t.patch)===e.patch_hash}function Nd(e,t,r){if(t.patch&&Ne(t.patch)!==t.patch_hash)return{kind:"patch_hash_mismatch"};if(t.record)return Cd(t)?{kind:"record",entry:t.record}:{kind:"record_hash_mismatch"};let n=t.patch??e.patch;if(Ne(n)!==t.patch_hash)return{kind:"digest_only"};let o={...e,before_hash:t.before_hash,after_hash:t.after_hash,patch:n,hash_algorithm:t.hash_algorithm,...t.item_hash_version===void 0?{}:{item_hash_version:t.item_hash_version},...t.record_hash_version===void 0?{}:{record_hash_version:t.record_hash_version},...t.record_hash===void 0?{}:{record_hash:t.record_hash},...r.length===0?{}:{reanchor_evidence:r}};return t.hash_algorithm===void 0&&delete o.hash_algorithm,r.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 Hr(e){let t=e.reanchor_evidence;if(t===void 0)return{ok:!0,coverage:"none"};if(!Array.isArray(t)||!xd(t))return{ok:!1,error:"rewrite_evidence_invalid"};if(t.length===0)return{ok:!0,coverage:"none"};let r=e;for(let n=t.length-1;n>=0;n-=1){let o=t[n],i=Nd(r,o,t.slice(0,n));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(!vt(i.entry).ok)return{ok:!1,error:"rewrite_evidence_record_hash_mismatch"};r=i.entry}return{ok:!0,coverage:"complete"}}function Dt(e,t){return(e??"").localeCompare(t??"")}function bi(e,t){return(e??0)-(t??0)}function ee(e,t,r){return JSON.stringify(e??r).localeCompare(JSON.stringify(t??r))}function Rd(e,t){return[e.scope.localeCompare(t.scope),Dt(e.path,t.path),Dt(e.command,t.command),bi(e.timeout_seconds,t.timeout_seconds),Dt(e.pm_context_mode,t.pm_context_mode),+!!e.shared_host_safe-+!!t.shared_host_safe,ee(e.env_clear,t.env_clear,[]),ee(e.env_set,t.env_set,{}),ee(e.assert_stdout_contains,t.assert_stdout_contains,[]),ee(e.assert_stdout_regex,t.assert_stdout_regex,[]),ee(e.assert_stderr_contains,t.assert_stderr_contains,[]),ee(e.assert_stderr_regex,t.assert_stderr_regex,[]),bi(e.assert_stdout_min_lines,t.assert_stdout_min_lines),ee(e.assert_json_field_equals,t.assert_json_field_equals,{}),ee(e.assert_json_field_gte,t.assert_json_field_gte,{}),Dt(e.note,t.note)].find(r=>r!==0)??0}function Dd(e){return!e||e==="/"?[]:e.startsWith("/")?e.slice(1).split("/").map(t=>t.replaceAll("~1","/").replaceAll("~0","~")):[]}function Pd(e,t){let r=Dd(t);if(r.length===0)return!0;let n=e;for(let o of r){let i=/^(0|[1-9]\d*)$/.test(o)?Number(o):-1,s=Array.isArray(n)?i>=0&&i<n.length?n[i]:void 0:he(n)&&Object.prototype.hasOwnProperty.call(n,o)?n[o]:void 0;if(s===void 0)return!1;n=s}return!0}function jd(e,t){let r=[],n=structuredClone(e);for(let o of t){let i=o.op==="replace"&&!Pd(n,o.path)?{...o,op:"add"}:o;r.push(i),n=ki.applyPatch(n,[i],!0,!0).newDocument}return r}function Pt(e,t,r=!1){if(!(e.metadata&&Object.keys(e.metadata).length>0))return{front_matter:{},body:e.body??""};let n=Oe(e),o=t===1||t===2&&r?{...n.metadata,...n.metadata.dependencies===void 0?{}:{dependencies:n.metadata.dependencies.map(s=>({...s,id:s.id.toLowerCase()}))},...n.metadata.tests===void 0?{}:{tests:n.metadata.tests.map(({workspace_context_mode:s,provenance:a,provenance_invalid:d,...l})=>l)},...n.metadata.test_runs===void 0?{}:{test_runs:n.metadata.test_runs.map(({executions:s,...a})=>a)}}:n.metadata,i=t===1&&o.tests?{...o,tests:[...o.tests].sort(Rd)}:o;return{front_matter:g(i,J),body:n.body}}function wi(e){if(!(e.metadata&&Object.keys(e.metadata).length>0))return{metadata:{},body:e.body??""};let t=Oe(e);return{metadata:g(t.metadata,J),body:t.body}}function Tf(e){return Oi(e,_e)}function Oi(e,t,r){if(!Be.some(n=>n===t))throw new TypeError(`unsupported_item_hash_version:${String(t)}`);return K(A(Pt(e,t)),r)}function Uo(e,t,r){let n=Oi(e,t,r);return t===2?[n,K(A(Pt(e,t,!0)),r)]:[n]}function Af(){return ot(A(Ed))}function tn(e){let t=Zn(e.op),r=Pt(e.before,_e),n=Pt(e.after,_e),o=wi(e.before),i=wi(e.after),s=ki.compare(o,i),a=jd(o,s),d=Ho(e.author),l=d.harness?Object.fromEntries(Object.entries(jo().provenance_outcomes).filter(([O,S])=>S.resolver!==void 0&&(S.status!=="resolved"||d.provenance?.[O]?.source==="probe"))):void 0,_=l===void 0||Object.keys(l).length===0?e.context:{...e.context,agent_provenance_outcomes:l},f=e.hashAlgorithm??Qn,b={hash_algorithm:f,ts:e.nowIso,author:e.author,author_source:e.authorSource??Lo(e.author),...d.harness?{agent_harness:d.harness}:{},...d.model?{agent_model:d.model}:{},...d.model_source?{agent_model_source:d.model_source}:{},...d.instance?{agent_instance:d.instance}:{},...d.provenance?{agent_provenance:d.provenance}:{},...d.episode?{agent_episode:d.episode}:{},op:t,patch:a,before_hash:K(A(r),f),after_hash:K(A(n),f),item_hash_version:_e,message:e.message===void 0?void 0:e.message,..._===void 0?{}:{context:_}};return en({...b,event_class:xe(b)})}function he(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Yr(e){return new w(e,E.GENERIC_FAILURE,{code:"history_timestamp_invalid"})}function Ti(e){let t=e.ts.trim();if(t.length===0)return $e();if(!Ee(t))throw Yr("History timestamp must be a valid RFC 3339 date-time with millisecond precision");if(t!==e.ts)throw Yr("History timestamp must not contain surrounding whitespace");return e.ts}function Ei(e,t){let r=e.ts;if(typeof r=="string"&&r.trim().length>0){if(!Ee(r))throw Yr("History timestamp must be a valid RFC 3339 date-time with millisecond precision");return e}return{...e,ts:t}}function Zr(e,t){let r=Ti(t);if(typeof e=="string"){let n;try{n=JSON.parse(e)}catch{return e}return he(n)?JSON.stringify(Ei(n,r)):e}return he(e)?JSON.stringify(Ei(e,r)):JSON.stringify(e)}async function Ld(e,t,r){if(r===!1)return!0;if(typeof r=="string"){let s=Zr(r,t);return await Qr(e,s),await Rt(e),await Jr(e),!0}if(typeof r!="object"||r===null)return!1;let n=r;if(n.skip===!0)return!0;let o=typeof n.history_path=="string"?n.history_path:e,i=Zr(typeof n.line=="string"?n.line:n.entry??t,t);return await Qr(o,i),await Rt(o),await Jr(o),!0}async function Qr(e,t){let r;try{r=JSON.parse(t)}catch{r=null}if(!he(r)||r.op!=="create"){await Hn(e,t);return}await vi.mkdir(wd.dirname(e),{recursive:!0});try{await vi.writeFile(e,`${t}
74
- `,{encoding:"utf8",flag:"wx"})}catch(n){throw n.code!=="EEXIST"?n:new w("This item identity is reserved by an existing history stream.",E.CONFLICT,{code:"item_identity_reserved",required:"Choose a new item ID or restore the original item from its history.",nextSteps:["Run pm history <id> --full, then pm restore <id> <version> to recover the original item."]})}}async function rn(e,t){let r=await Bn("history_append",{history_path:e,entry:t});if(r.handled&&await Ld(e,t,r.result))return;let n=t.ts.trim().length>0?t:{...t,ts:Ti(t)},o=en({...n,hash_algorithm:se(n.hash_algorithm),event_class:xe(n)});await mi(e,o,async()=>{await Qr(e,Zr(o,o))}),await Rt(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]="405e7bd1-25c0-5e04-b313-d9871efce4f5")}catch{}})();var P={ok:!1},u=e=>typeof e=="string"?{ok:!0,value:e}:P,k=e=>typeof e=="boolean"?{ok:!0,value:e}:P;function x(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?P:{ok:!0,value:t}}function I(...e){return t=>typeof t=="string"&&e.includes(t)?{ok:!0,value:t}:P}function p(e,t){return r=>{if(!Array.isArray(r)||t!==void 0&&r.length>t)return P;let n=[];for(let o of r){let i=e(o);if(!i.ok)return P;n.push(i.value)}return{ok:!0,value:n}}}function on(e,t){return r=>typeof r=="string"&&r.length>0&&r.length<=e&&r===r.trim()&&(t===void 0||t.test(r))?{ok:!0,value:r}:P}function c(e){return t=>t===void 0?{ok:!0,value:void 0}:e(t)}function jt(e){return t=>{if(typeof t!="object"||t===null||Array.isArray(t))return P;let r={};for(let[n,o]of Object.entries(t)){let i=e(o);if(!i.ok)return P;r[n]=i.value}return{ok:!0,value:r}}}function v(e){return t=>{if(typeof t!="object"||t===null||Array.isArray(t))return P;let r=t,n={};for(let[o,i]of Object.entries(e)){let s=i(r[o]);if(!s.ok)return P;s.value!==void 0&&(n[o]=s.value)}return{ok:!0,value:n}}}var Hd=v({key:u,values:p(u),required:c(k),aliases:c(p(u)),description:c(u)}),zd=v({command:I("create","update"),option:u,required:c(k),visible:c(k),enabled:c(k)}),Fd=v({name:u,description:c(u),default_status:c(u),execution_role:c(I("agent","human","gate")),folder:c(u),aliases:c(p(u)),required_create_fields:c(p(u)),required_create_repeatables:c(p(u)),options:c(p(Hd)),command_option_policies:c(p(zd))}),$d=v({id:u,aliases:c(p(u)),roles:c(p(I(...An))),description:c(u),order:c(x())}),Md=v({key:u,metadata_key:c(u),front_matter_key:c(u),cli_flag:c(u),cli_aliases:c(p(u)),description:c(u),type:c(I(...xn)),commands:c(p(I(...Cn))),repeatable:c(k),required:c(k),required_on_create:c(k),required_types:c(p(u)),allow_unset:c(k)}),Vd=e=>{if(!Array.isArray(e)||e.length!==2)return P;let[t,r]=e;return typeof t!="string"||typeof r!="string"?P:{ok:!0,value:[t,r]}},Ud=v({type:u,allowed_transitions:p(Vd)}),Wd=c(v({version:c(x({int:!0})),files:c(v({types:c(u),statuses:c(u),fields:c(u),workflows:c(u)})),statuses:c(p($d)),fields:c(p(Md)),workflow:c(v({draft_status:c(u),open_status:c(u),in_progress_status:c(u),blocked_status:c(u),close_status:c(u),canceled_status:c(u)})),type_workflows:c(p(Ud)),unknown_field_policy:c(I(...Nn))})),qd=c(v({preset:c(I(...Rn)),ownership_enforcement:c(I("none","warn","strict")),create_mode_default:c(I("progressive","strict")),close_validation_default:c(I("off","warn","strict")),require_close_reason:c(k),parent_reference:c(I("warn","strict_error")),metadata_profile:c(I("core","strict","custom")),force_required_for_stale_lock:c(k),create_default_type:c(u),workflow_enforcement:c(I("off","warn","strict")),duplicate_detection_mode:c(I("off","advisory","strict")),duplicate_detection_threshold:c(x({min:0,max:1})),duplicate_detection_limit:c(x({int:!0,min:0,max:20}))})),Gd=v({name:u,disabled:c(k),require_trusted:c(k),require_provenance:c(k),sandbox_profile:c(I("none","restricted","strict")),allowed_capabilities:c(p(u)),blocked_capabilities:c(p(u)),allowed_surfaces:c(p(u)),blocked_surfaces:c(p(u)),allowed_commands:c(p(u)),blocked_commands:c(p(u)),allowed_actions:c(p(u)),blocked_actions:c(p(u)),allowed_services:c(p(u)),blocked_services:c(p(u))}),nn=I("block","warn"),Bd=e=>typeof e=="string"?nn(e):v({global:c(nn),project:c(nn)})(e),Jd=c(v({mode:c(I("off","warn","enforce")),trust_mode:c(I("off","warn","enforce")),pm_max_version_exceeded_mode:c(Bd),require_provenance:c(k),trusted_extensions:c(p(u)),default_sandbox_profile:c(I("none","restricted","strict")),allowed_extensions:c(p(u)),blocked_extensions:c(p(u)),allowed_capabilities:c(p(u)),blocked_capabilities:c(p(u)),allowed_surfaces:c(p(u)),blocked_surfaces:c(p(u)),allowed_commands:c(p(u)),blocked_commands:c(p(u)),allowed_actions:c(p(u)),blocked_actions:c(p(u)),allowed_services:c(p(u)),blocked_services:c(p(u)),extension_overrides:c(p(Gd))})),ye=on(128),Kd=v({harness:on(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u),environment_keys:c(p(ye,64)),model_environment_keys:c(p(ye,64)),session_environment_keys:c(p(ye,64)),provenance_environment_keys:c(jt(p(ye,64))),provenance_resolvers:c(jt(I("ai_agent_version","claude_session_file"))),provenance_unavailable_dimensions:c(p(ye,64)),argv_markers:c(p(ye,64)),client_names:c(p(ye,64))}),Xd=v({version:x({int:!0}),id_prefix:u,ids:c(v({token_length:c(x({int:!0,min:4,max:12}))})),author_default:u,agent_identity:c(v({probes_enabled:c(k),identity_vocabulary:c(v({version:x({int:!0,positive:!0}),aliases:jt(on(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u))})),harness_signals:p(Kd)})),mutation_guard:c(v({require_attributed_author:c(k),secret_guard:c(I("off","advise","block")),stale_in_progress_hours:c(x({int:!0,positive:!0}))})),item_format:c(I("toon","json_markdown")),locks:v({ttl_seconds:x({int:!0}),wait_ms:c(x({int:!0,min:0}))}),checkpoints:c(v({retention_days:c(x({int:!0,positive:!0}))})),output:v({default_format:I("toon","json")}),ux:c(v({deprecation_hints:c(k)})),history:c(v({missing_stream:I("auto_create","strict_error"),compact_policy:c(v({enabled:c(k),max_entries:c(x({int:!0,positive:!0})),trigger:c(I("health_warn","auto"))}))})),validation:c(v({sprint_release_format:I("warn","strict_error"),parent_reference:c(I("warn","strict_error")),metadata_profile:c(I("core","strict","custom")),metadata_required_fields:c(p(u)),lifecycle_stale_blocker_reason_patterns:c(p(u)),lifecycle_closure_like_blocked_reason_patterns:c(p(u)),lifecycle_closure_like_resolution_patterns:c(p(u)),lifecycle_closure_like_actual_result_patterns:c(p(u)),estimate_defaults_by_type:c(jt(x({int:!0,positive:!0})))})),governance:qd,workflow:c(v({definition_of_done:p(u)})),testing:c(v({record_results_to_items:k,allow_untrusted_linked_tests:c(k)})),telemetry:c(v({enabled:k,first_run_prompt_completed:c(k),capture_level:c(I("minimal","redacted","max")),endpoint:c(u),installation_id:c(u),retention_days:c(x({int:!0,positive:!0}))})),agent_guidance:c(v({prompt_completed:c(k),declined:c(k),declined_at:c(u),template_version:c(x({int:!0,positive:!0})),last_checked_files:c(p(u))})),item_types:c(v({definitions:p(Fd)})),schema:Wd,context:c(v({default_depth:c(I("brief","standard","deep")),activity_limit:c(x({int:!0,positive:!0})),stale_threshold_days:c(x({int:!0,positive:!0})),next_ranking_policy:c(I("priority_floor","weighted")),sections:c(v({hierarchy:c(k),activity:c(k),progress:c(k),recently_created:c(k),unparented:c(k),blockers:c(k),files:c(k),workload:c(k),staleness:c(k),tests:c(k)}))})),extensions:v({enabled:p(u),disabled:p(u),policy:Jd}),search:v({score_threshold:x(),hybrid_semantic_weight:c(x()),max_results:x({int:!0}),embedding_model:u,embedding_corpus_max_characters:c(x()),embedding_batch_size:x({int:!0}),embedding_timeout_ms:c(x({int:!0})),scanner_max_batch_retries:x({int:!0}),provider:c(u),default_mode:c(I("auto","keyword","semantic","hybrid")),corpus_fields:c(p(u)),mutation_refresh_policy:c(I("cache_only","semantic_configured","semantic_auto")),query_expansion:c(v({enabled:c(k),provider:c(u)})),rerank:c(v({enabled:c(k),model:c(u),top_k:c(x({int:!0,positive:!0}))})),bm25:c(v({k1:c(x()),b:c(x())}))}),providers:v({openai:v({base_url:u,api_key:u,model:u}),ollama:v({base_url:u,model:u})}),vector_store:v({adapter:c(u),collection_name:c(u),qdrant:v({url:u,api_key:u}),lancedb:v({path:u})})});function sn(e){let t=Xd(e);return t.ok?{success:!0,data:t.value}:{success:!1}}import{AsyncLocalStorage as ol}from"node:async_hooks";import{lstat as il,realpath as Mi}from"node:fs/promises";import Vi from"node:path";import Yd from"node:fs/promises";import Re from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="af606b47-d071-5724-b1e7-de4e1e5d7385")}catch{}})();var De="_workspace";function Lt(e){return Re.join(e,"history",`${De}.jsonl`)}function Zd(e,t){return{metadata:{id:De,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 Ht(e,t=e.length){let r=bt();for(let n of e.slice(0,t))r=Et(r,n.patch).document;return wt(r)}function an(e){return"documents"in e.metadata&&typeof e.metadata.documents=="object"&&e.metadata.documents!==null&&!Array.isArray(e.metadata.documents)?e.metadata.documents:{}}function zt(e){throw new w(`Workspace history verification failed: ${e.join(", ")}`,E.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 Ai(e,t){let r=Re.resolve(t),n=Re.relative(e,r).replaceAll("\\","/");if(n.length===0||n===".."||n.startsWith("../")||Re.isAbsolute(n))throw new TypeError("Workspace history document path must stay inside the tracker root");return{documentPath:n,absolutePath:r}}async function Uf(e){let t=await Ge(Lt(e),De),r=Je(t);r.ok||zt(r.errors);let n=an(t.length===0?je:Ht(t)),o=[],i=[],s=[],a=[];for(let d of Object.keys(n).sort()){let l;try{let _=Ai(e,Re.resolve(e,d));if(l=await be(_.absolutePath),l===null){s.push(d);continue}let f=JSON.parse(l);(A(f)===A(n[d])?o:i).push(d)}catch{a.push(d)}}return{ok:i.length===0&&s.length===0&&a.length===0,document_count:Object.keys(n).length,matching_documents:o,mismatched_documents:i,missing_documents:s,unreadable_documents:a}}async function xi(e){let t=Lt(e.pmRoot),r=await Ge(t,De),n=Je(r);n.ok||zt(n.errors);let o=e.idempotencyKey===void 0?void 0:r.find(f=>f.op===`${e.op}:${e.idempotencyKey}`);if(o)return{entry:o,historyPath:t};let i=$e(),s=r.length===0?je:Ht(r),a=an(s),d=a[e.documentPath];if(d!==void 0&&A(d)!==A(e.before))throw new w(`Workspace history state for "${e.documentPath}" changed outside the audited mutation path.`,E.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 l=Zd({...a,[e.documentPath]:e.after},r.length===0?i:s.metadata.created_at),_=tn({nowIso:i,author:e.author,op:e.idempotencyKey===void 0?e.op:`${e.op}:${e.idempotencyKey}`,before:s,after:l,message:e.message});return await rn(t,_),{entry:_,historyPath:t}}async function Wf(e){let t=await M(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await xi(e)}finally{await t()}}async function qf(e){let t=await M(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{let r=Lt(e.pmRoot),n=await Ge(r,De),o=Je(n);o.ok||zt(o.errors);let i=n.length===0?je:Ht(n),s=tn({nowIso:$e(),author:e.author,op:e.op,before:i,after:i,message:e.message,context:e.context});return await rn(r,s),{entry:s,historyPath:r}}finally{await t()}}async function Ci(e,t){if(t===e.raw)return!1;let r=t===null?null:JSON.parse(t),n=JSON.parse(e.raw);await Le(e.filePath,e.raw);try{(t!==null||e.recordCreation!==!1)&&await xi({pmRoot:e.pmRoot,documentPath:Re.relative(e.pmRoot,e.filePath).replaceAll("\\","/"),before:r,after:n,op:e.op,idempotencyKey:e.idempotencyKey,author:e.author,lockTtlSeconds:e.lockTtlSeconds,lockWaitMs:e.lockWaitMs,message:e.message})}catch(o){throw t===null?await Yd.rm(e.filePath,{force:!0}):await Le(e.filePath,t),o}return!0}async function Ni(e){let{documentPath:t}=Ai(e.pmRoot,e.filePath),r=await M(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{let n=await be(e.filePath);if(e.dryRun===!0||e.idempotencyKey!==void 0){let i=await Ge(Lt(e.pmRoot),De),s=Je(i);s.ok||zt(s.errors);let a=an(i.length===0?je:Ht(i))[t];if(a!==void 0&&A(a)!==A(n===null?null:JSON.parse(n)))throw new w(`Workspace history state for "${t}" changed outside the audited mutation path.`,E.CONFLICT,{code:"workspace_history_state_conflict"});if(e.idempotencyKey!==void 0&&i.some(d=>d.op===`${e.op}:${e.idempotencyKey}`))return{changed:!1,result:void 0,replayed:!0}}let o=await e.mutate(n);return JSON.parse(o.raw),e.dryRun===!0?{changed:n!==o.raw,result:o.result}:{changed:await Ci({...e,raw:o.raw},n),result:o.result}}finally{await r()}}async function Gf(e){let t=await M(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await Ci(e,await be(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]="a0ca9902-540c-50fe-a4e2-9c234c4a01f3")}catch{}})();function Ft(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function cn(e,t,r,n=[]){if($(e,t)&&(n.length>0||Ft(r)))return r;if($(e,r)||$(t,r))return t;if((e===void 0||Ft(e))&&Ft(t)&&Ft(r)){let o=e??{},i=new Set([...Object.keys(o),...Object.keys(t),...Object.keys(r)]);return Object.fromEntries([...i].flatMap(s=>{let a=cn(Object.hasOwn(o,s)?o[s]:void 0,Object.hasOwn(t,s)?t[s]:void 0,Object.hasOwn(r,s)?r[s]:void 0,[...n,s]);return a===void 0?[]:[[s,a]]}))}throw new w(`Settings changed concurrently at ${n.join(".")||"<root>"}; read the latest settings and reapply the intended change.`,E.CONFLICT,{reason:"stale_settings_snapshot",required:"Read a fresh settings snapshot and reapply the intended change.",why:"Another writer changed the same setting after this snapshot was read.",examples:["pm config project export --json"],nextSteps:["Read the current settings, then retry the original config operation."]})}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="de43e8e6-d7ef-53cc-94b0-ccdf1c4f94a3")}catch{}})();var Qd={Epic:2880,Feature:480,Story:480,Milestone:2880,Task:120,Issue:60,Bug:60,Chore:30,Decision:15,Plan:120},Ri=120;function dn(e){return typeof e=="number"&&Number.isFinite(e)&&e>0}function Pi(e){let t=new Map;for(let[r,n]of Object.entries(e))t.set(r.toLowerCase(),n);return t}var el=Pi(Qd),Di=new WeakMap;function tl(e){let t=Di.get(e);if(t)return t;let r=Pi(e);return Di.set(e,r),r}function Zf(e,t){let r=(e??"").trim().toLowerCase();if(r.length===0)return Ri;if(t){let o=tl(t).get(r);if(dn(o))return Math.floor(o)}let n=el.get(r);return dn(n)?Math.floor(n):Ri}function ln(e){let t={};if(e===null||typeof e!="object"||Array.isArray(e))return t;for(let[r,n]of Object.entries(e)){let o=r.trim();o.length===0||!dn(n)||(t[o]=Math.floor(n))}return t}import{stat as rl}from"node:fs/promises";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="78c79deb-5cf0-54fe-b98c-a0d5b3671ab2")}catch{}})();var $t=new Map;function ji(e){return[...new Set(e.map(t=>t.trim()).filter(t=>t.length>0))].sort((t,r)=>t.localeCompare(r))}async function nl(e){try{let t=await rl(e);return{path:e,mtime_ms:t.mtimeMs,size:t.size}}catch{return{path:e,mtime_ms:null,size:null}}}async function te(e){let t=ji(e),r=await Promise.all(t.map(n=>nl(n)));return r.sort((n,o)=>n.path.localeCompare(o.path)),r}function Xe(e,t){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r+=1){let n=e[r],o=t[r];if(n.path!==o.path||n.mtime_ms!==o.mtime_ms||n.size!==o.size)return!1}return!0}function Li(e){return $t.get(e)}function Mt(e,t){let r=ji(t.tracked_paths),n=[...t.signatures].map(o=>({path:o.path,mtime_ms:o.mtime_ms,size:o.size})).sort((o,i)=>o.path.localeCompare(i.path));$t.set(e,{tracked_paths:r,signatures:n,value:t.value})}function ge(e){if(e){$t.delete(e);return}$t.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]="8d586108-d5b3-5c84-861a-cf532a979cdf")}catch{}})();var mn=new ol;async function vm(e,t,r=()=>!0){let n=new Set([Vi.resolve(e)]);try{n.add(await Mi(e))}catch{}return mn.run([...mn.getStore()??[],[n,r]],t)}function sl(e){let t=Vi.resolve(e);return mn.getStore()?.some(([r,n])=>r.has(t)&&n())??!1}var al="settings:write",Ui=Symbol("pm.settings.persist_source"),cl=128,dl=new Set(["off","advisory","strict"]);function Hi(e){return structuredClone(Pn[e])}function ll(e){return e==="minimal"||e==="default"||e==="strict"||e==="custom"?e:h.governance.preset}function zi(e,t){let r=typeof t.create_default_type=="string"?t.create_default_type.trim():void 0;return r&&r.length>0&&(e.create_default_type=r),(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 ul(e){return e.preset==="custom"?zi({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):zi({preset:e.preset},e)}function _l(e){let t=typeof e.create_default_type=="string"?e.create_default_type.trim():void 0,r={};t&&t.length>0&&(r.create_default_type=t),(e.workflow_enforcement==="off"||e.workflow_enforcement==="warn"||e.workflow_enforcement==="strict")&&(r.workflow_enforcement=e.workflow_enforcement),typeof e.require_close_reason=="boolean"&&(r.require_close_reason=e.require_close_reason),dl.has(String(e.duplicate_detection_mode))&&(r.duplicate_detection_mode=e.duplicate_detection_mode);let n=e.duplicate_detection_threshold;[typeof n=="number",Number.isFinite(n),Number(n)>=0,Number(n)<=1].every(Boolean)&&(r.duplicate_detection_threshold=n);let o=e.duplicate_detection_limit;return[typeof o=="number",Number.isSafeInteger(o),Number(o)>=0,Number(o)<=20].every(Boolean)&&(r.duplicate_detection_limit=o),r}function Wi(e){let t=e.governance??{},r=ll(t.preset),n=_l(t);if(r==="custom"){let s=Hi("default"),a=n.require_close_reason??s.require_close_reason;return{preset:r,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,...n,require_close_reason:a,duplicate_detection_mode:n.duplicate_detection_mode??s.duplicate_detection_mode,duplicate_detection_threshold:n.duplicate_detection_threshold??s.duplicate_detection_threshold,duplicate_detection_limit:n.duplicate_detection_limit??s.duplicate_detection_limit}}let o=Hi(r),i=n.require_close_reason??o.require_close_reason;return{preset:r,...o,...n,require_close_reason:i}}function qi(){return structuredClone(h)}function Gi(e){return e==="cache_only"||e==="semantic_configured"||e==="semantic_auto"?e:h.search.mutation_refresh_policy}function Bi(e){return e==="auto"||e==="keyword"||e==="semantic"||e==="hybrid"?e:"auto"}function Ji(e){return typeof e=="boolean"?e:h.search.query_expansion.enabled}function Ki(e){return typeof e!="string"?h.search.query_expansion.provider:e.trim()}function Xi(e){return typeof e=="boolean"?e:h.search.rerank.enabled}function Yi(e){return typeof e!="string"?h.search.rerank.model:e.trim()}function Zi(e){return typeof e=="number"&&Number.isFinite(e)&&Number.isInteger(e)&&e>0?e:h.search.rerank.top_k}function Qi(e){if(typeof e!="string")return h.vector_store.collection_name;let t=e.trim().replaceAll(/[^a-zA-Z0-9_-]/g,"_").slice(0,cl);return t.length>0?t:h.vector_store.collection_name}function un(e){return{present:Array.isArray(e),values:Array.isArray(e)?structuredClone(e):[]}}function es(e,t){let r=e.schema,n=un(r?.statuses),o=un(r?.fields),i=un(r?.type_workflows);return{persisted_settings:structuredClone(e),source_settings:structuredClone(e),has_source_item_type_definitions:Array.isArray(e.item_types?.definitions),source_item_type_definitions:Pe(e.item_types?.definitions),has_source_schema_statuses:n.present,source_schema_statuses:n.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:Pe(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 yn(e,t){Object.defineProperty(e,Ui,{value:t,writable:!0,configurable:!0,enumerable:!1})}function ts(e){let t=e[Ui];if(!(!t||typeof t!="object"))return t}function Vt(e){let t=structuredClone(e.settings),r=ts(e.settings);return r&&yn(t,r),{settings:t,metadata:{has_explicit_item_format:e.metadata.has_explicit_item_format},warnings:[...e.warnings]}}function fl(e,t,r){let n=ze(t);return[r,Fe(e,n.files.types,He.types),Fe(e,n.files.statuses,He.statuses),Fe(e,n.files.fields,He.fields),Fe(e,n.files.workflows,He.workflows)]}async function ml(e,t,r){let n=await te(t);Mt(e,{tracked_paths:t,signatures:n,value:Vt(r)})}async function pl(e,t,r){try{await ml(e,t,r)}catch{ge(e)}}function Fi(e,t){return e.find(r=>r.path===t)}function hl(e,t,r){for(let n of r){let o=Fi(e,n),i=Fi(t,n);if(!o||!i||!Xe([o],[i]))return!1}return!0}async function _n(e,t,r,n,o){try{let i=await te(t);if(!hl(n,i,o)){ge(e);return}Mt(e,{tracked_paths:t,signatures:i,value:Vt(r)})}catch{ge(e)}}function yl(e,t){let r=ze(e.schema),n=Pe(e.item_types?.definitions);if(!t)return{item_type_definitions:n,schema_statuses:r.statuses,schema_fields:r.fields,schema_type_workflows:r.type_workflows};let o=r.type_workflows??[],i=$(n,t.runtime_item_type_definitions),s=$(r.statuses,t.runtime_schema_statuses),a=$(r.fields,t.runtime_schema_fields),d=$(o,t.runtime_schema_type_workflows);return{item_type_definitions:i?t.has_source_item_type_definitions?Pe(t.source_item_type_definitions):[]:n,schema_statuses:s?t.has_source_schema_statuses?structuredClone(t.source_schema_statuses):[]:r.statuses,schema_fields:a?t.has_source_schema_fields?structuredClone(t.source_schema_fields):[]:r.fields,schema_type_workflows:d?t.has_source_schema_type_workflows?structuredClone(t.source_schema_type_workflows):void 0:r.type_workflows}}function U(e){return{settings:qi(),metadata:{has_explicit_item_format:!1},warnings:e?[e]:[]}}function rs(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=e.item_format;return t==="toon"||t==="json_markdown"}function pn(e){return[...new Set((e??[]).map(t=>t.trim()).filter(t=>t.length>0))].sort((t,r)=>t.localeCompare(r))}function ns(e){let t=h.agent_guidance,r=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 r=="number"&&Number.isInteger(r)&&r>0?r:t.template_version,last_checked_files:pn(e?.last_checked_files??t.last_checked_files)}}function F(e){return[...new Set((e??[]).map(t=>t.trim().toLowerCase()).filter(t=>t.length>0))].sort((t,r)=>t.localeCompare(r))}function gl(e){return e==="off"||e==="warn"||e==="enforce"?e:h.extensions.policy.mode}function vl(e){return e==="off"||e==="warn"||e==="enforce"?e:h.extensions.policy.trust_mode}function os(e){return e==="none"||e==="restricted"||e==="strict"?e:h.extensions.policy.default_sandbox_profile}function bl(e){let t=e.name.trim().toLowerCase();if(t.length===0)return null;let r={name:t};e.disabled===!0&&(r.disabled=!0),e.require_trusted===!0&&(r.require_trusted=!0),e.require_provenance===!0&&(r.require_provenance=!0),e.sandbox_profile!==void 0&&(r.sandbox_profile=os(e.sandbox_profile));let n=F(e.allowed_capabilities),o=F(e.blocked_capabilities),i=F(e.allowed_surfaces),s=F(e.blocked_surfaces),a=F(e.allowed_commands),d=F(e.blocked_commands),l=F(e.allowed_actions),_=F(e.blocked_actions),f=F(e.allowed_services),b=F(e.blocked_services);return n.length>0&&(r.allowed_capabilities=n),o.length>0&&(r.blocked_capabilities=o),i.length>0&&(r.allowed_surfaces=i),s.length>0&&(r.blocked_surfaces=s),a.length>0&&(r.allowed_commands=a),d.length>0&&(r.blocked_commands=d),l.length>0&&(r.allowed_actions=l),_.length>0&&(r.blocked_actions=_),f.length>0&&(r.allowed_services=f),b.length>0&&(r.blocked_services=b),r}function wl(e){let t=new Map;for(let r of e??[]){let n=bl(r);n&&t.set(n.name,n)}return[...t.values()].sort((r,n)=>r.name.localeCompare(n.name))}function fn(e){return e==="block"||e==="warn"?e:void 0}function El(e){if(typeof e=="string")return fn(e);if(typeof e=="object"&&e!==null&&!Array.isArray(e)){let t=fn(e.global),r=fn(e.project);return t===void 0&&r===void 0?void 0:{...t!==void 0?{global:t}:{},...r!==void 0?{project:r}:{}}}}function j(e,t){return F(e?.[t]??h.extensions.policy[t])}function is(e){let t=El(e?.pm_max_version_exceeded_mode);return{mode:gl(e?.mode),trust_mode:vl(e?.trust_mode),...t!==void 0?{pm_max_version_exceeded_mode:t}:{},require_provenance:e?.require_provenance===!0,trusted_extensions:j(e,"trusted_extensions"),default_sandbox_profile:os(e?.default_sandbox_profile),allowed_extensions:j(e,"allowed_extensions"),blocked_extensions:j(e,"blocked_extensions"),allowed_capabilities:j(e,"allowed_capabilities"),blocked_capabilities:j(e,"blocked_capabilities"),allowed_surfaces:j(e,"allowed_surfaces"),blocked_surfaces:j(e,"blocked_surfaces"),allowed_commands:j(e,"allowed_commands"),blocked_commands:j(e,"blocked_commands"),allowed_actions:j(e,"allowed_actions"),blocked_actions:j(e,"blocked_actions"),allowed_services:j(e,"allowed_services"),blocked_services:j(e,"blocked_services"),extension_overrides:wl(e?.extension_overrides??h.extensions.policy.extension_overrides)}}function ss(e){return[...new Set((e??[]).map(t=>t.trim().toLowerCase().replaceAll("-","_")))].filter(t=>t.length>0).sort((t,r)=>t.localeCompare(r)).filter(t=>["author","acceptance_criteria","estimated_minutes","close_reason","reviewer","risk","confidence","sprint","release"].includes(t))}function re(e){return[...new Set((e??[]).map(t=>t.trim().toLowerCase()).filter(t=>t.length>0))].sort((t,r)=>t.localeCompare(r))}function R(e,t){return e===void 0?t:e}function L(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:{}}function hn(e){return Array.isArray(e)?e:[]}function kl(e,t,r){return{...t.validation,...e.validation,parent_reference:r.parent_reference,metadata_profile:r.metadata_profile,metadata_required_fields:ss(e.validation?.metadata_required_fields),lifecycle_stale_blocker_reason_patterns:re(e.validation?.lifecycle_stale_blocker_reason_patterns??t.validation.lifecycle_stale_blocker_reason_patterns),lifecycle_closure_like_blocked_reason_patterns:re(e.validation?.lifecycle_closure_like_blocked_reason_patterns??t.validation.lifecycle_closure_like_blocked_reason_patterns),lifecycle_closure_like_resolution_patterns:re(e.validation?.lifecycle_closure_like_resolution_patterns??t.validation.lifecycle_closure_like_resolution_patterns),lifecycle_closure_like_actual_result_patterns:re(e.validation?.lifecycle_closure_like_actual_result_patterns??t.validation.lifecycle_closure_like_actual_result_patterns),estimate_defaults_by_type:ln(e.validation?.estimate_defaults_by_type)}}function Sl(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 Il(e,t){return{...t.search,...e.search,default_mode:Bi(e.search?.default_mode),mutation_refresh_policy:Gi(e.search?.mutation_refresh_policy),query_expansion:{...t.search.query_expansion,...e.search?.query_expansion,enabled:Ji(e.search?.query_expansion?.enabled),provider:Ki(e.search?.query_expansion?.provider)},rerank:{...t.search.rerank,...e.search?.rerank,enabled:Xi(e.search?.rerank?.enabled),model:Yi(e.search?.rerank?.model),top_k:Zi(e.search?.rerank?.top_k)}}}function Ol(e,t){return{adapter:e.vector_store.adapter??t.vector_store.adapter,collection_name:Qi(e.vector_store.collection_name),qdrant:{...t.vector_store.qdrant,...e.vector_store.qdrant},lancedb:{...t.vector_store.lancedb,...e.vector_store.lancedb}}}function Tl(e,t){return e.item_format==="json_markdown"?"toon":e.item_format??t.item_format}function Al(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,next_ranking_policy:e.context?.next_ranking_policy??t.context.next_ranking_policy,sections:{...t.context.sections,...e.context?.sections}}}function xl(e,t){return{openai:{...t.providers.openai,...e.providers.openai},ollama:{...t.providers.ollama,...e.providers.ollama}}}function Pe(e){let t=(e??[]).map(n=>Fn(n)).filter(n=>n!==null),r=new Map;for(let n of t)r.set(n.name.toLowerCase(),n);return[...r.values()].sort((n,o)=>n.name.localeCompare(o.name))}function Ut(e){let t=qi(),r=Wi({governance:e.governance??{preset:"default"}});return{...t,...e,item_format:Tl(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:kl(e,t,r),governance:r,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:Sl(e,t),agent_guidance:ns(e.agent_guidance??t.agent_guidance),item_types:{definitions:Pe(e.item_types?.definitions)},schema:ze(e.schema??t.schema),context:Al(e,t),extensions:{enabled:[...e.extensions.enabled],disabled:[...e.extensions.disabled],policy:is(e.extensions.policy??t.extensions.policy)},search:Il(e,t),providers:xl(e,t),vector_store:Ol(e,t)}}function Cl(e){e.agent_identity=g(e.agent_identity,["probes_enabled","identity_vocabulary","harness_signals"]);let t=e.agent_identity;Object.hasOwn(t,"identity_vocabulary")&&(t.identity_vocabulary=g(L(t.identity_vocabulary),["version","aliases"])),e.agent_identity.harness_signals=hn(e.agent_identity.harness_signals).map(r=>g(L(r),["harness","environment_keys","model_environment_keys","session_environment_keys","provenance_environment_keys","provenance_resolvers","provenance_unavailable_dimensions","argv_markers","client_names"])),e.locks=g(e.locks,["ttl_seconds","wait_ms"]),e.ids=g(e.ids,["token_length"]),e.mutation_guard=g(e.mutation_guard,["require_attributed_author","secret_guard","stale_in_progress_hours"]),e.checkpoints=g(e.checkpoints,["retention_days"]),e.output=g(e.output,["default_format"]),e.ux=g(e.ux,["deprecation_hints"]),e.history=g(e.history,["missing_stream","compact_policy"]),e.validation=g(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=g(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=g(e.workflow,["definition_of_done"]),e.testing=g(e.testing,["record_results_to_items","allow_untrusted_linked_tests"]),e.telemetry=g(e.telemetry,["enabled","first_run_prompt_completed","capture_level","endpoint","installation_id","retention_days"]),e.agent_guidance=g(e.agent_guidance,["prompt_completed","declined","declined_at","template_version","last_checked_files"]),e.item_types=g(e.item_types,["definitions"]),e.schema=g(e.schema,["version","files","statuses","fields","workflow","type_workflows","unknown_field_policy"]),e.schema.files=g(L(e.schema.files),["types","statuses","fields","workflows"]),e.schema.workflow=g(L(e.schema.workflow),["draft_status","open_status","in_progress_status","blocked_status","close_status","canceled_status"]),e.context=g(e.context,["default_depth","activity_limit","stale_threshold_days","next_ranking_policy","sections"]),e.context.sections=g(L(e.context.sections),["hierarchy","activity","progress","blockers","files","workload","staleness","tests"]),e.extensions=g(e.extensions,["enabled","disabled","policy"]),e.extensions.policy=g(L(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=hn(e.extensions.policy.extension_overrides).map(r=>g(L(r),["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=g(e.search,["score_threshold","hybrid_semantic_weight","max_results","embedding_model","embedding_corpus_max_characters","embedding_batch_size","embedding_timeout_ms","scanner_max_batch_retries","provider","default_mode","mutation_refresh_policy","query_expansion","rerank"]),e.search.query_expansion=g(L(e.search.query_expansion),["enabled","provider"]),e.search.rerank=g(L(e.search.rerank),["enabled","model","top_k"]),e.providers=g(e.providers,["openai","ollama"]),e.providers.openai=g(L(e.providers.openai),["base_url","api_key","model"]),e.providers.ollama=g(L(e.providers.ollama),["base_url","model"]),e.vector_store=g(e.vector_store,["adapter","collection_name","qdrant","lancedb"]),e.vector_store.qdrant=g(L(e.vector_store.qdrant),["url","api_key"]),e.vector_store.lancedb=g(L(e.vector_store.lancedb),["path"])}function Nl(e){return{...e,locks:R(e.locks,h.locks),ids:R(e.ids,h.ids),agent_identity:R(e.agent_identity,h.agent_identity),mutation_guard:R(e.mutation_guard,h.mutation_guard),checkpoints:R(e.checkpoints,h.checkpoints),output:R(e.output,h.output),ux:R(e.ux,h.ux),history:R(e.history,h.history),validation:R(e.validation,h.validation),workflow:R(e.workflow,h.workflow),testing:R(e.testing,h.testing),telemetry:R(e.telemetry,h.telemetry),agent_guidance:R(e.agent_guidance,h.agent_guidance),item_types:R(e.item_types,h.item_types),schema:R(e.schema,h.schema),context:R(e.context,h.context),extensions:R(e.extensions,h.extensions),search:R(e.search,h.search),providers:R(e.providers,h.providers),vector_store:R(e.vector_store,h.vector_store)}}function Rl(e,t){return{...e.validation,parent_reference:t.parent_reference,metadata_profile:t.metadata_profile,metadata_required_fields:ss(e.validation?.metadata_required_fields),lifecycle_stale_blocker_reason_patterns:re(e.validation?.lifecycle_stale_blocker_reason_patterns??h.validation.lifecycle_stale_blocker_reason_patterns),lifecycle_closure_like_blocked_reason_patterns:re(e.validation?.lifecycle_closure_like_blocked_reason_patterns??h.validation.lifecycle_closure_like_blocked_reason_patterns),lifecycle_closure_like_resolution_patterns:re(e.validation?.lifecycle_closure_like_resolution_patterns??h.validation.lifecycle_closure_like_resolution_patterns),lifecycle_closure_like_actual_result_patterns:re(e.validation?.lifecycle_closure_like_actual_result_patterns??h.validation.lifecycle_closure_like_actual_result_patterns),estimate_defaults_by_type:ln(e.validation?.estimate_defaults_by_type)}}function Dl(e){return{...h.search,...e.search,default_mode:Bi(e.search?.default_mode),mutation_refresh_policy:Gi(e.search?.mutation_refresh_policy),query_expansion:{...h.search.query_expansion,...e.search?.query_expansion,enabled:Ji(e.search?.query_expansion?.enabled),provider:Ki(e.search?.query_expansion?.provider)},rerank:{...h.search.rerank,...e.search?.rerank,enabled:Xi(e.search?.rerank?.enabled),model:Yi(e.search?.rerank?.model),top_k:Zi(e.search?.rerank?.top_k)}}}function Pl(e){return{default_depth:e.context?.default_depth??h.context.default_depth,activity_limit:e.context?.activity_limit??h.context.activity_limit,stale_threshold_days:e.context?.stale_threshold_days??h.context.stale_threshold_days,next_ranking_policy:e.context?.next_ranking_policy??h.context.next_ranking_policy,sections:{...h.context.sections,...e.context?.sections}}}function jl(e){return{...e.vector_store,adapter:e.vector_store?.adapter??h.vector_store.adapter,collection_name:Qi(e.vector_store?.collection_name),qdrant:{...e.vector_store?.qdrant},lancedb:{...e.vector_store?.lancedb}}}function Ll(e,t,r,n){return{...e,item_format:"toon",validation:Rl(e,t),governance:t,agent_guidance:ns(e.agent_guidance),item_types:{definitions:n.item_type_definitions},schema:{...r,statuses:n.schema_statuses,fields:n.schema_fields,type_workflows:n.schema_type_workflows},search:Dl(e),context:Pl(e),extensions:{enabled:pn(e.extensions?.enabled),disabled:pn(e.extensions?.disabled),policy:is(e.extensions?.policy)},vector_store:jl(e)}}function as(e,t){for(let r of Object.keys(t)){let n=Reflect.get(t,r),o=e[r];typeof n=="object"&&n!==null&&!Array.isArray(n)&&typeof o=="object"&&o!==null&&!Array.isArray(o)?as(o,n):e[r]=structuredClone(n)}}function cs(e,t,r){let n=new Set([...Object.keys(t),...Object.keys(r)]);for(let o of n){let i=t[o],s=r[o];if(!$(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],d=typeof a=="object"&&a!==null&&!Array.isArray(a)?a:{};cs(d,i,s),Object.keys(d).length>0?e[o]=d:delete e[o];continue}e[o]=structuredClone(s)}}}var gn=["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 $i(e,t){let r=Nl(e),n=Wi(r),o=ze(r.schema),i=yl(r,t),s=Ll(r,n,o,i),a=g({...s,governance:ul(n)},gn);return Cl(a),a}function Hl(e,t={}){let r=t.source===void 0?t.persist_source:es(t.source.validated,Ut(t.source.validated)),n=$i(e,r);if(r){let o=Ut(r.source_settings);o.item_types={definitions:structuredClone(r.runtime_item_type_definitions)},o.schema={...o.schema,statuses:structuredClone(r.runtime_schema_statuses),fields:structuredClone(r.runtime_schema_fields),type_workflows:structuredClone(r.runtime_schema_type_workflows)};let i=$i(o,r);t.source!==void 0&&as(i,t.source.validated);let s=structuredClone(t.source===void 0?r.source_settings:t.source.raw);return cs(s,i,n),`${JSON.stringify(g(s,gn),null,2)}
75
- `}return`${JSON.stringify(n,null,2)}
76
- `}async function zl(e){let t;try{t=await Mi(e)}catch(a){if(W(a))return U();throw a}let r=we(t),n;try{n=await il(r)}catch(a){if(W(a))return U();throw a}if(!n.isFile())throw Yt("settings.json");let o;try{o=await Ln(r,Yt("settings.json"))}catch(a){if(W(a))return U();throw a}let i;try{i=JSON.parse(o)}catch{return U("settings_read_invalid_json")}let s=sn(i);return s.success?{settings:Ut(s.data),metadata:{has_explicit_item_format:rs(i)},warnings:s.data.item_format==="json_markdown"?["settings_item_format_legacy_json_markdown_coerced_to_toon"]:[]}:U("settings_read_invalid_schema")}async function ds(e){if(sl(e))return zl(e);let t=we(e),r=[t];await it({path:t,scope:"project"});let n=Li(e);if(n){let l=await te(n.tracked_paths);if(Xe(l,n.signatures))return Vt(n.value)}let o=await te([t]),i;try{i=await be(t)}catch{return U("settings_read_fs_error")}if(i===null){let l=U();return await _n(e,[t],l,o,[t]),l}let s=await te([t]);if(!Xe(o,s))return ge(e),ds(e);let a;try{a=JSON.parse(i)}catch{let l=U("settings_read_invalid_json");return await _n(e,[t],l,s,[t]),l}let d=sn(a);if(!d.success){let l=U("settings_read_invalid_schema");return await _n(e,[t],l,s,[t]),l}try{let l=Ut(d.data),_=fl(e,l.schema,t);r=_;let f=await te(_),b=await Mn(e,l.schema),O=await te(_),S={...l,item_types:{definitions:Pe([...l.item_types.definitions,...hn(b.type_definitions_from_file)])},schema:b.schema};yn(S,es(d.data,S));let z={settings:S,metadata:{has_explicit_item_format:rs(a)},warnings:[...d.data.item_format==="json_markdown"?["settings_item_format_legacy_json_markdown_coerced_to_toon"]:[],...b.warnings]};return Xe(f,O)?Mt(e,{tracked_paths:_,signatures:O,value:Vt(z)}):ge(e),z}catch{let l=U("settings_read_merge_failed");return await pl(e,r,l),l}}async function bm(e){return(await ds(e)).settings}async function wm(e,t,r=al){let n=we(e),o=ts(t),i=Hl(t,{persist_source:o}),s=JSON.parse(i);try{await Ni({pmRoot:e,filePath:n,mutate:a=>{let d=null;if(a!==null)try{d=JSON.parse(a)}catch{throw new w("Existing settings.json is malformed; the settings write was refused.",E.USAGE,{code:"settings_write_invalid_existing_json",reason:"existing_settings_json_malformed",why:"Writing defaults over malformed settings could destroy intended project configuration.",nextSteps:["Repair the syntax in .agents/pm/settings.json, then retry the original command.","Run pm health to confirm the settings warning has cleared."]})}return{raw:o?`${JSON.stringify(g(cn(o.persisted_settings,s,d),gn),null,2)}
77
- `:i,result:void 0}},op:r,author:zo(void 0,t.author_default),lockTtlSeconds:t.locks.ttl_seconds,lockWaitMs:t.locks.wait_ms,recordCreation:!1}),o&&yn(t,{...o,persisted_settings:structuredClone(s)}),await Gn({path:n,scope:"project",op:r})}finally{ge(e)}}import ls from"node:fs";import Ye from"node:path";import{createRequire as Fl}from"node:module";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="19d9b802-1efa-5716-8176-ecbf5b153ff0")}catch{}})();var us="@unbrained/pm-cli";var bn=/\b(\d{4})\.(\d{1,2})\.(\d{1,2})(?:-(\d+))?\b/u,wn="2026.8.31";function Wt(e){let t=e.match(bn);return t?[Number(t[1]),Number(t[2]),Number(t[3]),Number(t[4]??0)]:null}function Gt(e,t){let r=Wt(e),n=Wt(t);if(!r||!n)return null;for(let o=0;o<r.length;o+=1){let i=r[o]-n[o];if(i!==0)return Math.sign(i)}return 0}function vn(e){return Gt(e,wn)!==-1?3:2}function qt(e){try{let t=JSON.parse(ls.readFileSync(e,"utf8"));return typeof t=="object"&&t!==null&&!Array.isArray(t)?t:null}catch{return null}}function $l(e){let t=[...e.matchAll(/(<=|<)\s*v?(\d{4}\.\d{1,2}\.\d{1,2}(?:-\d+)?)/gu)].map(n=>({inclusive:n[1]==="<=",version:n[2]})),r=e.match(/\b\d{4}\.\d{1,2}\.\d{1,2}(?:-\d+)?\s+-\s+v?(\d{4}\.\d{1,2}\.\d{1,2}(?:-\d+)?)/u);return r?[...t,{inclusive:!0,version:r[1]}]:t}function Ml(e){let t=e.split("||").map(r=>$l(r));return{bounded:t.some(r=>r.length>0),compatible:t.some(r=>r.every(n=>{let o=Gt(wn,n.version);return o!==null&&(n.inclusive?o!==1:o===-1)}))}}function _s(e){return["dependencies","devDependencies","optionalDependencies","peerDependencies"].flatMap(t=>{let r=e[t];if(typeof r!="object"||r===null)return[];let n=r[us];return typeof n=="string"?[n.trim()]:[]})}function Vl(e){return _s(e).flatMap(t=>{let r=/^[<!]/u.test(t)?void 0:t.match(bn)?.[0];if(!r)return[];let n=/^(?:=|v)?\d{4}\.\d{1,2}\.\d{1,2}(?:-\d+)?$/u.test(t),o=Ml(t);return[{version:r,constraint:n?"exact":o.bounded?"range":"minimum",...n?{}:{declaration:t},history_epoch_compatible:n?Gt(r,wn)!==-1:o.compatible}]})}function Ul(e){let t=qt(Ye.join(e,"package-lock.json"))?.packages;if(typeof t!="object"||t===null)return;let r=t["node_modules/@unbrained/pm-cli"];if(typeof r!="object"||r===null)return;let n=r.version;return typeof n=="string"?n:void 0}function Wl(e,t){try{let r=ls.readFileSync(Ye.join(e,t),"utf8").split(/\r?\n/u),n=r.findIndex(s=>s.includes(us));if(n<0)return;let o=r[n].match(/^\s*/u)[0].length,i=[r[n]];for(let s=n+1;s<r.length;s+=1){let a=r[s],d=a.trim(),l=a.match(/^\s*/u)[0].length;if(d.length>0&&l<=o)break;i.push(a)}return i.join(`
78
- `).match(/^\s*version(?::\s*|\s+)["']?(\d{4}\.\d{1,2}\.\d{1,2}(?:-\d+)?)/mu)?.[1]??i[0].match(bn)?.[0]}catch{return}}function ql(e){let t=[],r=qt(Ye.join(e,"package.json"));r&&t.push(...Vl(r).map(i=>({...i,source:"package.json"})));let n=qt(Ye.join(e,"node_modules","@unbrained","pm-cli","package.json"))?.version;typeof n=="string"&&Wt(n)&&t.push({version:n,source:"installed-package",constraint:"exact",history_epoch_compatible:vn(n)===3});let o=Ul(e);o&&Wt(o)&&t.push({version:o,source:"package-lock.json",constraint:"exact",history_epoch_compatible:vn(o)===3});for(let i of["pnpm-lock.yaml","yarn.lock"]){let s=Wl(e,i);s&&t.push({version:s,source:i,constraint:"exact",history_epoch_compatible:vn(s)===3})}return t}function Am(e,t){if(t<=1)return;let{minVersion:r,lt:n}=Fl(import.meta.url)("semver"),o=_s(qt(Ye.join(e,"package.json"))??{}).find(s=>{try{let a=r(s);return a!==null&&n(a,"2026.10.10")}catch{return!1}}),i=o===void 0?ql(e).find(s=>Gt(s.version,"2026.10.10")===-1):{version:o,source:"package.json"};if(i)throw new w(`The project selects pm ${i.version}, which cannot safely refuse item format ${t}.`,E.CONFLICT,{code:"project_runtime_item_format_incompatible",reason:i.source,required:"Upgrade project pins, installed SDKs, CI hosts and Git merge drivers before writing guarded item formats.",nextSteps:["Use a pm runtime supporting the required item format throughout the project; preserve original item and history bytes, and never re-anchor history to satisfy an older host."]})}import kn from"node:fs/promises";import Bt from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="658ab1c3-da92-5af6-a170-85ed7befaad6")}catch{}})();function ne(e,t){return typeof e=="object"&&e!==null&&"code"in e&&e.code===t}function fs(e){let t=["--pm-path",e,"init","--defaults","--agent-guidance","skip"];return{suggested_retry:Jn(t),suggested_retry_args:t}}function Jt(e){return new w(`Tracker root is not a directory at ${e}.`,E.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 En(e){return new w(`Tracker root is not readable at ${e}.`,E.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 Gl(e){let t=Bt.resolve(e),r=Bt.parse(t).root,n=Bt.dirname(t);for(;n!==r;){let o;try{o=await kn.stat(n)}catch(i){if(ne(i,"ENOTDIR"))throw Jt(e);if(!ne(i,"ENOENT"))throw i;n=Bt.dirname(n);continue}if(!o.isDirectory())throw Jt(e);return}}async function Bl(e){let t;try{t=await kn.stat(e)}catch(r){throw ne(r,"ENOENT")?(await Gl(e),new w(`Tracker is not initialized at ${e}. Tracker root does not exist. Run pm init first.`,E.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:fs(e)})):ne(r,"ENOTDIR")?Jt(e):ne(r,"EACCES")||ne(r,"EPERM")?En(e):r}if(!t.isDirectory())throw Jt(e);if(process.platform!=="win32"&&((t.mode&292)===0||(t.mode&73)===0))throw En(e);try{await(await kn.opendir(e)).close()}catch(r){throw ne(r,"EACCES")||ne(r,"EPERM")?En(e):r}}async function Hm(e){if(await Bl(e),!await jn(we(e)))throw new w(`Tracker is not initialized at ${e}. Run pm init first.`,E.NOT_FOUND,{code:"tracker_not_initialized",reason:"settings_missing",resolved_path:e,nextSteps:["Initialize the selected tracker root with the emitted retry."],recovery:fs(e)})}export{Kl as a,ys as b,Qn as c,se as d,K as e,Fo as f,ro as g,Me as h,ru as i,nu as j,er as k,tr as l,iu as m,rr as n,oo as o,Ts as p,su as q,ct as r,xs as s,lu as t,dt as u,wa as v,_t as w,xu as x,Cu as y,Oe as z,ce as A,hr as B,Du as C,Pu as D,vr as E,Eo as F,wr as G,Uu as H,Wu as I,qu as J,Gu as K,Bu as L,Ju as M,Cr as N,Nr as O,Co as P,o_ as Q,i_ as R,s_ as S,a_ as T,c_ as U,d_ as V,jr as W,jo as X,l_ as Y,u_ as Z,__ as _,Ic as $,f_ as aa,zo as ba,gt as ca,Ge as da,xe as ea,Ko as fa,ad as ga,_d as ha,ef as ia,tf as ja,bd as ka,Rt as la,_e as ma,Be as na,Of as oa,en as pa,vt as qa,Vo as ra,Tf as sa,Uo as ta,Af as ua,tn as va,rn as wa,Ac as xa,bt as ya,R_ as za,Lr as Aa,wt as Ba,D_ as Ca,P_ as Da,qo as Ea,Et as Fa,kt as Ga,Je as Ha,Hc as Ia,j_ as Ja,L_ as Ka,De as La,Lt as Ma,Uf as Na,Wf as Oa,qf as Pa,Ni as Qa,Gf as Ra,sn as Sa,Zf as Ta,ge as Ua,vm as Va,sl as Wa,Wi as Xa,Ut as Ya,Hl as Za,ds as _a,bm as $a,wm as ab,ql as bb,Am as cb,Bl as db,Hm as eb};
79
- //# sourceMappingURL=chunk-M22TI7LP.js.map