@unbrained/pm-cli 2026.8.4 → 2026.8.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (214) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/CHANGELOG.md +39 -13
  3. package/dist/cli/error-guidance.js +4 -4
  4. package/dist/cli/register-structured-mutation.d.ts +2 -0
  5. package/dist/cli/register-structured-mutation.js +124 -12
  6. package/dist/cli-bundle/bundle-manifest.json +407 -407
  7. package/dist/cli-bundle/chunks/append-VXXGOXSG.js +2 -0
  8. package/dist/cli-bundle/chunks/{chunk-QVO3VTA4.js → chunk-2WFXWAYX.js} +2 -2
  9. package/dist/cli-bundle/chunks/{chunk-NM5G7RLU.js → chunk-3FTILRJ2.js} +2 -2
  10. package/dist/cli-bundle/chunks/{chunk-VH2EAGUG.js → chunk-42E7YPLG.js} +2 -2
  11. package/dist/cli-bundle/chunks/{chunk-RB65T4RX.js → chunk-43HQQI6S.js} +2 -2
  12. package/dist/cli-bundle/chunks/{chunk-J4EPW4GT.js → chunk-45G53IU4.js} +2 -2
  13. package/dist/cli-bundle/chunks/{chunk-PQXEB7W4.js → chunk-4VN6GS4U.js} +2 -2
  14. package/dist/cli-bundle/chunks/chunk-4YUBDMQM.js +2 -0
  15. package/dist/cli-bundle/chunks/{chunk-D2MBVMVE.js → chunk-54FNT7U2.js} +2 -2
  16. package/dist/cli-bundle/chunks/{chunk-NRDKVOUE.js → chunk-5ZBOIPGP.js} +2 -2
  17. package/dist/cli-bundle/chunks/{chunk-3XZYTRPC.js → chunk-6MSQJOTG.js} +2 -2
  18. package/dist/cli-bundle/chunks/{chunk-GOICHIX4.js → chunk-7A5OT5J2.js} +2 -2
  19. package/dist/cli-bundle/chunks/{chunk-HTYC76A4.js → chunk-7C4PTJG6.js} +2 -2
  20. package/dist/cli-bundle/chunks/{chunk-BKMZTZYL.js → chunk-A62CYISG.js} +2 -2
  21. package/dist/cli-bundle/chunks/{chunk-5H47J5FG.js → chunk-BPELKUQD.js} +2 -2
  22. package/dist/cli-bundle/chunks/{chunk-HE3DZFN4.js → chunk-BXQLRKWF.js} +2 -2
  23. package/dist/cli-bundle/chunks/{chunk-BLINBTMX.js → chunk-CSI3WS5I.js} +2 -2
  24. package/dist/cli-bundle/chunks/{chunk-KH4GVBMC.js → chunk-DXDREUXT.js} +2 -2
  25. package/dist/cli-bundle/chunks/{chunk-KIKLF2W4.js → chunk-E2RKBKWB.js} +2 -2
  26. package/dist/cli-bundle/chunks/{chunk-377OOXUF.js → chunk-EGJ4JTUG.js} +2 -2
  27. package/dist/cli-bundle/chunks/{chunk-SULWTPQO.js → chunk-FPBQHMFT.js} +2 -2
  28. package/dist/cli-bundle/chunks/{chunk-V5K52PYW.js → chunk-GE4KCSZP.js} +35 -35
  29. package/dist/cli-bundle/chunks/{chunk-NPUJ7OLK.js → chunk-HNFD72UK.js} +2 -2
  30. package/dist/cli-bundle/chunks/{chunk-QMWUL66F.js → chunk-HWRRMBJO.js} +5 -5
  31. package/dist/cli-bundle/chunks/chunk-L3AZOELJ.js +2 -0
  32. package/dist/cli-bundle/chunks/{chunk-CGY5I2GO.js → chunk-LKDGK44W.js} +2 -2
  33. package/dist/cli-bundle/chunks/chunk-LN2WFEU4.js +2 -0
  34. package/dist/cli-bundle/chunks/{chunk-ZSH4GNBH.js → chunk-M72BKL5Q.js} +2 -2
  35. package/dist/cli-bundle/chunks/{chunk-HQ2WU7OY.js → chunk-MHK6LIWE.js} +2 -2
  36. package/dist/cli-bundle/chunks/{chunk-H6FITE7D.js → chunk-NE5VRDAI.js} +2 -2
  37. package/dist/cli-bundle/chunks/chunk-NY4T3JWN.js +2 -0
  38. package/dist/cli-bundle/chunks/{chunk-DCJ6CM6F.js → chunk-OMXVBQ2N.js} +2 -2
  39. package/dist/cli-bundle/chunks/chunk-OPVH7SKD.js +8 -0
  40. package/dist/cli-bundle/chunks/{chunk-CU5ENFNP.js → chunk-OTHLDSFP.js} +2 -2
  41. package/dist/cli-bundle/chunks/{chunk-NH35JNK5.js → chunk-PMXJEU3F.js} +2 -2
  42. package/dist/cli-bundle/chunks/{chunk-SVDH5CHC.js → chunk-Q35VBGOQ.js} +4 -4
  43. package/dist/cli-bundle/chunks/{chunk-5PZGZMPG.js → chunk-R546TPDE.js} +2 -2
  44. package/dist/cli-bundle/chunks/{chunk-Q5F6OI7C.js → chunk-RKAVWO3O.js} +2 -2
  45. package/dist/cli-bundle/chunks/{chunk-JMKVCQSE.js → chunk-SSF4PIUR.js} +2 -2
  46. package/dist/cli-bundle/chunks/{chunk-PA5XRN2A.js → chunk-UN66FZRO.js} +3 -3
  47. package/dist/cli-bundle/chunks/{chunk-FQ4EFFDU.js → chunk-UP7DTVMD.js} +2 -2
  48. package/dist/cli-bundle/chunks/{chunk-NFF3JAQR.js → chunk-UZBWIUYD.js} +2 -2
  49. package/dist/cli-bundle/chunks/{chunk-2POYGY53.js → chunk-V3774P7D.js} +2 -2
  50. package/dist/cli-bundle/chunks/{chunk-B5ZLCD5Z.js → chunk-V3EUXXOF.js} +2 -2
  51. package/dist/cli-bundle/chunks/{chunk-6S7I3UKV.js → chunk-VCKLFEUN.js} +19 -19
  52. package/dist/cli-bundle/chunks/{chunk-PYYPQLHC.js → chunk-VN5VITU3.js} +2 -2
  53. package/dist/cli-bundle/chunks/chunk-WRL4KNDL.js +20 -0
  54. package/dist/cli-bundle/chunks/{chunk-UJHUR3LZ.js → chunk-XCEZYMNI.js} +2 -2
  55. package/dist/cli-bundle/chunks/{chunk-JDPKBV5P.js → chunk-YEWNL576.js} +2 -2
  56. package/dist/cli-bundle/chunks/{chunk-OB7TRZ2G.js → chunk-YSO3YFZ4.js} +2 -2
  57. package/dist/cli-bundle/chunks/{chunk-UVZREFZU.js → chunk-ZYHOB3SN.js} +2 -2
  58. package/dist/cli-bundle/chunks/close-VZ3OQPN5.js +2 -0
  59. package/dist/cli-bundle/chunks/close-many-SB4TI27P.js +2 -0
  60. package/dist/cli-bundle/chunks/comments-BIF3Q4KY.js +2 -0
  61. package/dist/cli-bundle/chunks/copy-6AI5Z57X.js +2 -0
  62. package/dist/cli-bundle/chunks/{create-RLLCBCXM.js → create-XLKTXTUF.js} +2 -2
  63. package/dist/cli-bundle/chunks/delete-ZY2VHQTP.js +2 -0
  64. package/dist/cli-bundle/chunks/{deps-J4ONTF4X.js → deps-ITTY3GIC.js} +2 -2
  65. package/dist/cli-bundle/chunks/{docs-YL2DJ4WD.js → docs-W4OSRTYR.js} +2 -2
  66. package/dist/cli-bundle/chunks/{files-NGNAIYKK.js → files-EOK4AZI4.js} +2 -2
  67. package/dist/cli-bundle/chunks/focus-DLBNWL7L.js +2 -0
  68. package/dist/cli-bundle/chunks/{history-compact-HW62K5XP.js → history-compact-7UGTMLL3.js} +2 -2
  69. package/dist/cli-bundle/chunks/{history-redact-HVBKUJOW.js → history-redact-4DZRMD6Z.js} +2 -2
  70. package/dist/cli-bundle/chunks/{history-repair-OPNBH5JJ.js → history-repair-UPOSZW5R.js} +2 -2
  71. package/dist/cli-bundle/chunks/{learnings-F36PZXT6.js → learnings-GMRNCBS3.js} +2 -2
  72. package/dist/cli-bundle/chunks/{profile-N3XMWBM7.js → profile-2MUUMHRE.js} +2 -2
  73. package/dist/cli-bundle/chunks/{register-list-query-BKGHBI7Y.js → register-list-query-LR3SQ5ZF.js} +2 -2
  74. package/dist/cli-bundle/chunks/register-mutation-SUOHFVWM.js +20 -0
  75. package/dist/cli-bundle/chunks/register-operations-ARRRKOVN.js +2 -0
  76. package/dist/cli-bundle/chunks/{register-setup-KWV6UD77.js → register-setup-O6AYP6NP.js} +2 -2
  77. package/dist/cli-bundle/chunks/restore-ZVCVHTB5.js +2 -0
  78. package/dist/cli-bundle/chunks/{schema-4PJQMGUY.js → schema-FJ4EA3XF.js} +2 -2
  79. package/dist/cli-bundle/chunks/update-YHV52CSS.js +2 -0
  80. package/dist/cli-bundle/chunks/update-many-M6YHVNXM.js +2 -0
  81. package/dist/cli-bundle/focused-chunks/chunk-7J5TUBUJ.js +153 -0
  82. package/dist/cli-bundle/focused-chunks/{chunk-ONIX2KKW.js → chunk-A7BJ5SS6.js} +2 -2
  83. package/dist/cli-bundle/focused-chunks/chunk-B7LJWAZE.js +2 -0
  84. package/dist/cli-bundle/focused-chunks/{chunk-QM2BIVK7.js → chunk-BIMTMOS7.js} +3 -3
  85. package/dist/cli-bundle/focused-chunks/{chunk-BOGRY7M6.js → chunk-FGKY4MBE.js} +10 -10
  86. package/dist/cli-bundle/focused-chunks/chunk-G6ETT4QK.js +2 -0
  87. package/dist/cli-bundle/focused-chunks/{chunk-C2QSL62X.js → chunk-GJ2TG2CW.js} +2 -2
  88. package/dist/cli-bundle/focused-chunks/{chunk-RO5BQFG3.js → chunk-IPWSFADF.js} +2 -2
  89. package/dist/cli-bundle/focused-chunks/{chunk-UFCPSWIL.js → chunk-MJ7HWSFK.js} +2 -2
  90. package/dist/cli-bundle/focused-chunks/{chunk-2VIIXOAD.js → chunk-N5XU5UVK.js} +2 -2
  91. package/dist/cli-bundle/focused-chunks/chunk-PG2RIZBX.js +2 -0
  92. package/dist/cli-bundle/focused-chunks/{chunk-OYTK4VNH.js → chunk-PIMMYG7Q.js} +2 -2
  93. package/dist/cli-bundle/focused-chunks/{chunk-K37BB4JL.js → chunk-QVHKCI4T.js} +2 -2
  94. package/dist/cli-bundle/focused-chunks/{chunk-SQXVGHMH.js → chunk-RUR5I3TK.js} +2 -2
  95. package/dist/cli-bundle/focused-chunks/chunk-SV3O7TSH.js +8 -0
  96. package/dist/cli-bundle/focused-chunks/{chunk-L6A4NVQC.js → chunk-UIL2M2NA.js} +2 -2
  97. package/dist/cli-bundle/focused-chunks/{chunk-WVGJAD7L.js → chunk-VLYOEYML.js} +2 -2
  98. package/dist/cli-bundle/focused-chunks/chunk-W7BJEWHX.js +2 -0
  99. package/dist/cli-bundle/focused-chunks/{chunk-DQ4PLKEE.js → chunk-WEM2E2PE.js} +2 -2
  100. package/dist/cli-bundle/focused-chunks/chunk-WVIVUWVL.js +5 -0
  101. package/dist/cli-bundle/focused-chunks/chunk-Y4LDYLLT.js +2 -0
  102. package/dist/cli-bundle/main.js +4 -4
  103. package/dist/cli-bundle/sdk-authoring.js +1 -1
  104. package/dist/cli-bundle/sdk-contracts.js +1 -1
  105. package/dist/cli-bundle/sdk-core.js +28 -28
  106. package/dist/cli-bundle/sdk-governance.js +1 -1
  107. package/dist/cli-bundle/sdk-graph.js +1 -1
  108. package/dist/cli-bundle/sdk-merge.js +1 -1
  109. package/dist/cli-bundle/sdk-query.js +1 -1
  110. package/dist/cli-bundle/sdk-runtime.js +1 -1
  111. package/dist/cli-bundle/sdk-testing.js +1 -1
  112. package/dist/cli-bundle/sdk.js +1 -1
  113. package/dist/core/extensions/loader.js +5 -2
  114. package/dist/core/item/item-format.js +14 -20
  115. package/dist/core/shared/constants.js +3 -2
  116. package/dist/core/store/item-store.js +2 -2
  117. package/dist/core/store/settings.js +2 -2
  118. package/dist/mcp/server.js +12 -6
  119. package/dist/mcp/tool-definitions.js +14 -7
  120. package/dist/sdk/cli-contracts/agent-output-contracts.d.ts +18 -18
  121. package/dist/sdk/cli-contracts/agent-output-contracts.js +51 -23
  122. package/dist/sdk/cli-contracts/commander-mutation-options.js +26 -2
  123. package/dist/sdk/cli-contracts/flag-contracts.d.ts +2 -0
  124. package/dist/sdk/cli-contracts/flag-contracts.js +28 -2
  125. package/dist/sdk/cli-contracts/registration-helpers.js +4 -2
  126. package/dist/sdk/cli-contracts/runtime-contracts.d.ts +10 -2
  127. package/dist/sdk/cli-contracts/runtime-contracts.js +20 -5
  128. package/dist/sdk/cli-contracts/tool-schema.js +4 -2
  129. package/dist/sdk/cli-contracts.d.ts +2 -2
  130. package/dist/sdk/cli-contracts.js +4 -4
  131. package/dist/sdk/cli-program.js +3 -3
  132. package/dist/sdk/contracts.d.ts +1 -0
  133. package/dist/sdk/contracts.js +3 -2
  134. package/dist/sdk/dependency-provenance.d.ts +2 -0
  135. package/dist/sdk/dependency-provenance.js +7 -3
  136. package/dist/sdk/error-code-catalog.d.ts +23 -0
  137. package/dist/sdk/error-code-catalog.js +25 -5
  138. package/dist/sdk/generated-error-code-catalog.js +499 -3
  139. package/dist/sdk/graph/governance.js +3 -3
  140. package/dist/sdk/graph/remediation.js +3 -3
  141. package/dist/sdk/graph/run.js +4 -8
  142. package/dist/sdk/index.d.ts +2 -1
  143. package/dist/sdk/index.js +4 -3
  144. package/dist/sdk/item-transaction.d.ts +51 -6
  145. package/dist/sdk/item-transaction.js +132 -22
  146. package/dist/sdk/lifecycle/create.d.ts +4 -0
  147. package/dist/sdk/lifecycle/create.js +26 -10
  148. package/dist/sdk/lifecycle-policy.d.ts +9 -0
  149. package/dist/sdk/lifecycle-policy.js +22 -9
  150. package/dist/sdk/merge/driver.js +6 -3
  151. package/dist/sdk/output-contracts.d.ts +67 -0
  152. package/dist/sdk/output-contracts.js +173 -0
  153. package/dist/sdk/package-import-adapters.js +2 -2
  154. package/dist/sdk/structured-mutations.d.ts +23 -0
  155. package/dist/sdk/structured-mutations.js +219 -10
  156. package/dist/sdk/workspace-snapshot.js +58 -12
  157. package/dist/sdk/workspace.js +30 -4
  158. package/docs/COMMANDS.md +40 -10
  159. package/docs/EXTENSIONS.md +1 -1
  160. package/docs/MERGE_SAFETY.md +2 -0
  161. package/docs/PR_REVIEW_LOOP.md +10 -4
  162. package/docs/README.md +22 -22
  163. package/docs/RELEASING.md +3 -3
  164. package/docs/SCRIPTING.md +32 -9
  165. package/docs/SDK.md +91 -11
  166. package/docs/SELF_DESCRIBING_CONTEXT_CONTRACTS.md +13 -0
  167. package/docs/TESTING.md +25 -0
  168. package/docs/examples/sdk-contract-consumer/README.md +11 -1
  169. package/docs/examples/sdk-contract-consumer/package.json +2 -1
  170. package/docs/examples/sdk-contract-consumer/parse-receipt.mjs +22 -0
  171. package/marketplace.json +2 -2
  172. package/package.json +3 -2
  173. package/packages/pm-beads/package.json +1 -1
  174. package/packages/pm-calendar/package.json +1 -1
  175. package/packages/pm-command-kit/package.json +1 -1
  176. package/packages/pm-digital-twin/package.json +1 -1
  177. package/packages/pm-governance-audit/package.json +1 -1
  178. package/packages/pm-guide-shell/package.json +1 -1
  179. package/packages/pm-kanban/package.json +1 -1
  180. package/packages/pm-lifecycle-hooks/package.json +1 -1
  181. package/packages/pm-linked-test-adapters/package.json +1 -1
  182. package/packages/pm-search-advanced/package.json +1 -1
  183. package/packages/pm-templates/package.json +1 -1
  184. package/packages/pm-todos/package.json +1 -1
  185. package/packages/pm-vcs/package.json +1 -1
  186. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  187. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  188. package/sdk/public-surface.json +292 -14
  189. package/dist/cli-bundle/chunks/append-DHBRLHHS.js +0 -2
  190. package/dist/cli-bundle/chunks/chunk-2INN52SU.js +0 -8
  191. package/dist/cli-bundle/chunks/chunk-6RSK4IFN.js +0 -20
  192. package/dist/cli-bundle/chunks/chunk-ASJJKA57.js +0 -2
  193. package/dist/cli-bundle/chunks/chunk-IYAVULRN.js +0 -2
  194. package/dist/cli-bundle/chunks/chunk-RRQBHQOV.js +0 -2
  195. package/dist/cli-bundle/chunks/chunk-XBLOD5TZ.js +0 -2
  196. package/dist/cli-bundle/chunks/close-VLHNN6YB.js +0 -2
  197. package/dist/cli-bundle/chunks/close-many-LSJNZKU6.js +0 -2
  198. package/dist/cli-bundle/chunks/comments-AAIA6A6X.js +0 -2
  199. package/dist/cli-bundle/chunks/copy-Z7YMLEHN.js +0 -2
  200. package/dist/cli-bundle/chunks/delete-KNOHHQJM.js +0 -2
  201. package/dist/cli-bundle/chunks/focus-LFRCGALV.js +0 -2
  202. package/dist/cli-bundle/chunks/register-mutation-GU3DCECN.js +0 -20
  203. package/dist/cli-bundle/chunks/register-operations-PTWH727R.js +0 -2
  204. package/dist/cli-bundle/chunks/restore-4HZSLILR.js +0 -2
  205. package/dist/cli-bundle/chunks/update-E6LPS5IV.js +0 -2
  206. package/dist/cli-bundle/chunks/update-many-OSIC6KRO.js +0 -2
  207. package/dist/cli-bundle/focused-chunks/chunk-5MTKO7TV.js +0 -153
  208. package/dist/cli-bundle/focused-chunks/chunk-6GIZK7VQ.js +0 -2
  209. package/dist/cli-bundle/focused-chunks/chunk-AOP2WIZZ.js +0 -2
  210. package/dist/cli-bundle/focused-chunks/chunk-CL75YW32.js +0 -2
  211. package/dist/cli-bundle/focused-chunks/chunk-E7OFMWGT.js +0 -8
  212. package/dist/cli-bundle/focused-chunks/chunk-I5F5UK3Q.js +0 -2
  213. package/dist/cli-bundle/focused-chunks/chunk-T5TSY36R.js +0 -5
  214. package/dist/cli-bundle/focused-chunks/chunk-VT6BF2IX.js +0 -2
@@ -0,0 +1,153 @@
1
+ import{D as Cr,Da as ze,Fa as Ue,Ga as He,I as yt,Ia as zr,Ja as Ur,Ka as Hr,La as Wr,M as mn,Ma as qr,N as _n,Na as Br,O as pn,P as $e,Pa as ht,Q as Ar,W as Rr,X as Nr,a as br,h as _t,o as Tr,oa as Dr,p as pt,pa as Mr,q as Ee,qa as Lr,r as W,ra as Pr,s as Fe,sa as jr,ta as Fr,ua as $r,x as Or}from"./chunk-BIMTMOS7.js";import{C as ft,D as mt,E as fn,G as Ir,R as me,S as ne,T as xr,W as b,X as je,Y as I,Z as T,aa as G,ba as ke,ca as _e,da as E,n as dt,o as wr,p as Er,q as kr,r as Sr,v as lt,w as ut,x as vr}from"./chunk-Y4LDYLLT.js";import{AsyncLocalStorage as ps}from"node:async_hooks";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="16109ee9-e684-5d25-a5f4-30a6c4f62bd5")}catch{}})();var yn=new ps,Vr=/^[A-Za-z0-9](?:[A-Za-z0-9._:-]{0,127})$/u;function gt(e,t){let n=typeof e=="string"?e.trim():"";return n.length>0?n.slice(0,t):void 0}function pe(e,t){if(e===void 0)return;let n=typeof e=="object"&&e!==null?e:{},r=gt(n.id,128),o=gt(n.parent_id,128);if(r===void 0||!Vr.test(r)||o!==void 0&&!Vr.test(o)){if(t)throw new Error("Agent episode ids must be 1-128 letters, digits, dots, underscores, colons, or hyphens.");return}let i=gt(n.label,256);return{id:r,...i===void 0?{}:{label:i},...o===void 0?{}:{parent_id:o}}}function Se(e){let t={};for(let[n,r]of Object.entries(e??{}).slice(0,32)){let o=n.trim().toLowerCase().slice(0,64),i=gt(r,256);/^[a-z][a-z0-9_-]{0,63}$/u.test(o)&&i!==void 0&&(t[o]=i)}return t}function ys(e,t,n){let r=yn.getStore(),o=Se({role:t.PM_AGENT_SESSION_ROLE,topic:t.PM_AGENT_SESSION_TOPIC}),i=pe(t.PM_AGENT_EPISODE_ID===void 0?void 0:{id:t.PM_AGENT_EPISODE_ID,label:t.PM_AGENT_EPISODE_LABEL,parent_id:t.PM_AGENT_EPISODE_PARENT_ID},!1),s={...Se(r?.provenance),...o,...Se(e?.provenance)},a=pe(e?.episode,!1)??pe(n,!1)??i??pe(r?.episode,!1);return Object.keys(s).length===0&&a===void 0?void 0:{...Object.keys(s).length===0?{}:{provenance:s},...a===void 0?{}:{episode:a}}}function Gr(e,t){return ys(e.session_context,t,e.client_info?.episode)??{}}function $u(e,t){let n=yn.getStore(),r=pe(e.episode,!0),o=pe(n?.episode,!1),i=r!==void 0&&r.parent_id===void 0&&o!==void 0?{...r,parent_id:o.id}:r,s={...Se(n?.provenance),...Se(e.provenance)};return yn.run({...Object.keys(s).length===0?{}:{provenance:s},...i===void 0?o===void 0?{}:{episode:o}:{episode:i}},t)}function zu(e){let t=Se(e.provenance),n=pe(e.episode,!0);return{...n===void 0?{}:{PM_AGENT_EPISODE_ID:n.id,...n.label===void 0?{}:{PM_AGENT_EPISODE_LABEL:n.label},...n.parent_id===void 0?{}:{PM_AGENT_EPISODE_PARENT_ID:n.parent_id}},...t.role===void 0?{}:{PM_AGENT_SESSION_ROLE:t.role},...t.topic===void 0?{}:{PM_AGENT_SESSION_TOPIC:t.topic}}}import{AsyncLocalStorage as bn}from"node:async_hooks";import{createHash as hs}from"node:crypto";import bt from"node:fs";import gs from"node:os";import Xr 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]="0139d8ef-d286-571f-89f8-7de2f8422f22")}catch{}})();var Jr=["model","effort","role","topic","version"],wt=new bn,Yr=new bn,wn=new bn,bs=[{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"],role:["CLAUDE_CODE_CHILD_SESSION"]},provenance_resolvers:{model:"claude_session_file",version:"claude_session_file"},provenance_unavailable_dimensions:["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:{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:[]}],ve=new Map,hn=/^[a-z0-9]+(?:-[a-z0-9]+)*$/u;function $(e){let t=typeof e=="string"?e.trim():void 0;return t&&t.length>0?t:void 0}function ye(e){return[...new Set((e??[]).slice(0,64).map(t=>t.trim()).filter(t=>t.length>0).map(t=>t.slice(0,128)))]}function Et(e){let t=e.harness.trim().toLowerCase();if(!hn.test(t))throw new Error(`Invalid harness signal descriptor namespace: ${e.harness}`);return{harness:t,environment_keys:ye(e.environment_keys),model_environment_keys:ye(e.model_environment_keys),session_environment_keys:ye(e.session_environment_keys),provenance_environment_keys:Object.fromEntries(Object.entries(e.provenance_environment_keys??{}).slice(0,32).map(([n,r])=>[n.trim().toLowerCase().slice(0,64),ye(r)]).filter(([n])=>hn.test(n))),provenance_resolvers:Object.fromEntries(Object.entries(e.provenance_resolvers??{}).slice(0,32).map(([n,r])=>[n.trim().toLowerCase().slice(0,64),r]).filter(n=>typeof n[0]=="string"&&hn.test(n[0])&&(n[1]==="ai_agent_version"||n[1]==="claude_session_file"))),provenance_unavailable_dimensions:ye(e.provenance_unavailable_dimensions).map(n=>n.toLowerCase()),argv_markers:ye(e.argv_markers).map(n=>n.toLowerCase()),client_names:ye(e.client_names).map(n=>n.toLowerCase())}}var Qr=bs.map(Et);function ws(e,t){return JSON.stringify(e)===JSON.stringify(t)}function Kr(e,t){return e.toLowerCase().slice(0,512).split(/[/\\\s:=]+/u).filter(r=>r.length>0).includes(t)||e.trim().toLowerCase()===t}function Zr(e=[]){let t=[...Qr,...[...ve.values()].map(r=>r.descriptor),...wn.getStore()?.descriptors??[],...e.map(Et)],n=new Set;for(let r of t){if(n.has(r.harness))throw new Error(`Harness signal descriptor collision for "${r.harness}"`);n.add(r.harness)}return t}function eo(e,t){for(let n of t??[]){let r=$(e[n]);if(r)return r.slice(0,256)}}function Es(e,t){let n=t==="model"?["--model","--agent-model"]:[`--agent-${t}`],r=e.slice(0,8);for(let o=0;o<r.length;o+=1){let i=r[o].slice(0,512);if(n.includes(i))return $(r[o+1])?.slice(0,256);let s=n.find(a=>i.startsWith(`${a}=`));if(s)return $(i.slice(s.length+1))?.slice(0,256)}}function gn(e,t){return $(e?.[t])?.slice(0,256)}var ks=1048576;function Ss(e,t){if(e.length===0||e.length>262144)return;let n;try{n=JSON.parse(e)}catch{return}if(typeof n!="object"||n===null)return;let r=n,o=typeof r.message=="object"&&r.message!==null?r.message:void 0,i=t==="model"?o?.model:r.version;return $(i)?.slice(0,256)}function vs(e,t,n){let r=$(n.CLAUDE_CODE_SESSION_ID);if(!r||!/^[A-Za-z0-9_-]{1,128}$/u.test(r))return;let i=Xr.resolve(t.cwd??process.cwd()).replaceAll(/[^A-Za-z0-9-]/gu,"-"),s=Xr.join(t.home_dir??gs.homedir(),".claude","projects",i,`${r}.jsonl`);try{let a=bt.openSync(s,"r");try{let d=bt.fstatSync(a).size,l=Math.min(d,ks),m=Buffer.alloc(l);bt.readSync(a,m,0,l,Math.max(0,d-l));let f=m.toString("utf8").split(`
2
+ `).reverse();for(let h of f.slice(0,4096)){let _=Ss(h,e);if(_)return _}return}finally{bt.closeSync(a)}}catch{return}}function Is(e,t,n,r){let o=wn.getStore();if(!(t.probes_enabled!==!1&&o?.probesEnabled!==!1&&!["0","false","off"].includes($(n.PM_AGENT_PROBES)?.toLowerCase()??"")))return;let s=r?.provenance_resolvers[e];if(s==="claude_session_file")return vs(e,t,n);if(s==="ai_agent_version"){let a=$(n.AI_AGENT);return a?/(?:^|[@/\s])v?(\d+\.\d+(?:\.\d+)?(?:[-+][A-Za-z0-9.-]+)?)$/u.exec(a)?.[1]?.slice(0,256):void 0}}function to(e){return e||(Yr.getStore()??{env:process.env,argv:process.argv})}function xs(e,t,n,r){let o=e.environment_keys.some(a=>$(t[a])!==void 0),i=e.argv_markers.some(a=>n.some(d=>{let l=d.replaceAll("\\","/");return Kr(l.slice(l.lastIndexOf("/")+1),a)})),s=e.client_names.some(a=>r===a||Kr(r,a));return o||i||s}function Ts(e,t,n,r,o){let i=`PM_AGENT_${e.toUpperCase().replaceAll("-","_")}`,s=new Set([...Jr,...Object.keys(r?.provenance_environment_keys??{})]),a,d;s.has(e)&&(a=$(n[i])?.slice(0,256),d=Es(t.argv??[],e));let l={...r?.provenance_environment_keys,model:r?.model_environment_keys},m={...t.client_info?.provenance,model:t.client_info?.model},f=[a,gn(o?.provenance,e),eo(n,l[e]),gn(m,e),gn(t.provenance,e),d,Is(e,t,n,r)];return["override","session","environment","mcp_client","host","argv","probe"].map((S,v)=>({value:f[v],source:S})).find(S=>S.value!==void 0)}function Os(e,t,n,r){let o=Object.keys(n?.provenance_environment_keys??{}),i=new Set([...Jr,...o,...Object.keys(n?.provenance_resolvers??{}),...Object.keys(e.provenance??{}),...Object.keys(e.client_info?.provenance??{}),...Object.keys(r?.provenance??{})]),s={};for(let a of i){let d=Ts(a,e,t,n,r);d?s[a]=d:n&&(a!=="version"||n.provenance_unavailable_dimensions.includes(a))&&(s[a]=null)}return s}function Xu(e){let t=e.map(Et),n=new Map(Qr.map(i=>[i.harness,i])),r=new Set;for(let i of t){if(r.has(i.harness)||n.has(i.harness))throw new Error(`Harness signal descriptor collision for "${i.harness}"`);let s=ve.get(i.harness);if(s&&!ws(s.descriptor,i))throw new Error(`Harness signal descriptor collision for "${i.harness}"`);r.add(i.harness)}for(let i of t){let s=ve.get(i.harness);ve.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=ve.get(i.harness);!s||s.registrations<=1?ve.delete(i.harness):s.registrations-=1}}}}function Ku(e,t){return Yr.run(e,t)}function Ju(e,t,n={}){let r=e.map(Et);return Zr(r),wn.run({descriptors:r,probesEnabled:n.probesEnabled!==!1},t)}function no(e){let t=to(e),n=t.env??{},r=Zr(t.descriptors),o=[...(t.argv??[]).slice(0,3),...t.process_labels??[]].slice(0,64).map(_=>_.slice(0,512)),i=t.client_info?.name.trim().toLowerCase()??"",s=r.find(_=>xs(_,n,o,i)),a=Gr(t,n),d=Os(t,n,s,a),l=d.model,m=[eo(n,s?.session_environment_keys),$(t.client_info?.session)?.slice(0,256)].find(_=>_!==void 0),f=s?.harness&&m?hs("sha256").update(`pm-agent-instance:v1\0${s.harness}\0${m}`).digest("hex").slice(0,24):void 0,h=[["harness",s?.harness],["model",l?.value],["model_source",l?.source],["session",m],["instance",f],["provenance",Object.keys(d).length>0?d:void 0],["episode",a.episode]];return Object.fromEntries(h.filter(_=>_[1]!==void 0))}function Yu(){return process.env.PM_AUTHOR}function Qu(e){e===void 0?delete process.env.PM_AUTHOR:process.env.PM_AUTHOR=e}function Zu(e){return no(e).harness}function Cs(e,t,n){let r=to(n),o=no(r);if(e!==void 0){let s=$(e);return s?{author:s,source:"asserted",...o}:{author:"unknown",source:"unknown",...o}}if(r.env?.PM_AUTHOR!==void 0){let s=$(r.env.PM_AUTHOR);return s?{author:s,source:"asserted",...o}:{author:"unknown",source:"unknown",...o}}let i=$(t);return i?{author:i,source:"configured",...o}:o.harness?{author:`harness:${o.harness}`,source:"detected",...o}:{author:"unknown",source:"unknown",...o}}function ro(e){let t=wt.getStore();return t?.author===e?t.source:e.startsWith("harness:")?"detected":e==="unknown"?"unknown":"asserted"}function oo(e){let t=wt.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 io(e){let t=wt.getStore();return t?.author===e&&t.source==="detected"&&t.instance?`${e}#${t.instance}`:e}function so(e,t){let n=Cs(e,t);return wt.enterWith(n),n.author}import As from"node:crypto";import{AsyncLocalStorage as Rs}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]="cc84ae55-6dc4-57d4-b7de-c43ae1fb4603")}catch{}})();var co=new Rs,ao=1024;function lo(){let e=co.getStore();if(e===void 0)return;let t=new Date(Date.parse(e.clock)+e.clockReads*e.tickMs).toISOString();return e.clockReads+=1,t}function uo(e){let t=co.getStore();if(t===void 0)return;if(!Number.isSafeInteger(e)||e<0||e>ao)throw new Error(`Reproducible token length must be an integer between 0 and ${ao}`);let n="";for(;n.length<e;){let r=As.createHash("sha256").update(`${t.seed}\0${t.tokenReads}`).digest();t.tokenReads+=1;for(let o of r)if(n+=(o%36).toString(36),n.length===e)break}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]="6be1497f-a0d5-518b-bf6a-e549b18fad8a")}catch{}})();var Ns=/^([+-]?)(\d+)([hdwm])$/i,Ds=/^[+-]?\d+[hdwm](?:[+-]\d+[hdwm])+$/i,Ms=/^(\d{4})(\d{2})(\d{2})$/,Ls=/^(\d{4})(\d{2})(\d{2})(?:[T\s]?)(\d{2})(\d{2})(\d{2})?([.,]\d{1,3})?(Z|[+-]\d{2}:?\d{2})?$/i,Ps=/^(\d{4}-\d{2}-\d{2})[T\s](\d{2})-(\d{2})(?:-(\d{2}))?([.,]\d{1,3})?(Z|[+-]\d{2}:?\d{2})?$/i,js=/^(\d{4}-\d{2}-\d{2})[T\s](\d{2})(\d{2})(\d{2})?([.,]\d{1,3})?(Z|[+-]\d{2}:?\d{2})?$/i;function he(){return lo()??new Date().toISOString()}function re(e){return Number.isFinite(Date.parse(e))}var Fs=1e4,kt=new Map;function fo(e){let t=kt.get(e);if(t!==void 0)return t;let n=Date.parse(e);return kt.size>=Fs&&ht(kt),kt.set(e,n),n}function j(e,t){let n=fo(e),r=fo(t);return Number.isFinite(n)&&Number.isFinite(r)&&n!==r?n-r:e.localeCompare(t)}function df(e,t){return!(t.deadlineBefore&&(!e.deadline||j(e.deadline,t.deadlineBefore)>0)||t.deadlineAfter&&(!e.deadline||j(e.deadline,t.deadlineAfter)<0)||t.updatedAfter&&j(e.updated_at,t.updatedAfter)<0||t.updatedBefore&&j(e.updated_at,t.updatedBefore)>0||t.createdAfter&&j(e.created_at,t.createdAfter)<0||t.createdBefore&&j(e.created_at,t.createdBefore)>0)}function En(e){return e?`.${e.slice(1).padEnd(3,"0").slice(0,3)}`:""}function kn(e){if(!e)return"";if(e.toUpperCase()==="Z")return"Z";let t=/^([+-]\d{2})(\d{2})$/.exec(e);return t?`${t[1]}:${t[2]}`:e}function $s(e,t,n){n&&n!==t&&(e.includes(n)||e.push(n))}function zs(e){let t=[],n=l=>$s(t,e,l),r=Ms.exec(e);if(r){let[,l,m,f]=r;n(`${l}-${m}-${f}`)}let o=Ls.exec(e);if(o){let[,l,m,f,h,_,S,v,w]=o,R=S?`:${S}`:"";n(`${l}-${m}-${f}T${h}:${_}${R}${En(v)}${kn(w)}`)}let i=Ps.exec(e);if(i){let[,l,m,f,h,_,S]=i,v=h?`:${h}`:"";n(`${l}T${m}:${f}${v}${En(_)}${kn(S)}`)}let s=js.exec(e);if(s){let[,l,m,f,h,_,S]=s,v=h?`:${h}`:"";n(`${l}T${m}:${f}${v}${En(_)}${kn(S)}`)}let a=10,d=e.slice(0,a);if(Hs(d)){let l=a;for(;l<e.length&&Ws(e[l]);)l+=1;l<e.length&&n(`${d}T${e.slice(l)}`)}return t}function Us(e){let t=Date.parse(e);if(Number.isFinite(t))return t;for(let n of zs(e)){let r=Date.parse(n);if(Number.isFinite(r))return r}return Number.NaN}function Hs(e){if(e.length!==10)return!1;for(let t=0;t<e.length;t+=1){let n=e[t];if(t===4||t===7){if(n!=="-")return!1;continue}let r=n.charCodeAt(0);if(r<48||r>57)return!1}return!0}function Ws(e){return e?e===" "||e===" "||e===`
3
+ `||e==="\r"||e==="\f"||e==="\v":!1}function mo(e,t){return new Date(Date.UTC(e,t+1,0)).getUTCDate()}var qs=["January","February","March","April","May","June","July","August","September","October","November","December"],Bs=/^(\d{4})-(\d{2})-(\d{2})/,Vs=/^(\d{4})(\d{2})(\d{2})(?:[T ]?\d{2}|$)/;function Gs(e,t,n){let r=Bs.exec(t)??Vs.exec(t);if(!r)return;let o=Number.parseInt(r[1],10),i=Number.parseInt(r[2],10),s=Number.parseInt(r[3],10),a=n?.trim()||"deadline";if(i<1||i>12)throw new T(`Invalid ${a} value "${e}". Month "${r[2]}" is out of range \u2014 use a month between 01 and 12.`,I.USAGE);let d=mo(o,i-1);if(s<1||s>d)throw new T(`Invalid ${a} value "${e}". ${qs[i-1]} ${o} has ${d} days, so day "${r[3]}" does not exist. Use a real YYYY-MM-DD calendar date.`,I.USAGE)}function Xs(e,t){let n=new Date(e.getTime()),r=n.getUTCDate(),o=n.getUTCMonth()+t,i=n.getUTCFullYear()+Math.floor(o/12),s=(o%12+12)%12,a=Math.min(r,mo(i,s));return n.setUTCFullYear(i,s,a),n}function lf(e,t=new Date,n="deadline"){let r=e.trim();if(r.toLowerCase()==="now")return t.toISOString();let o=Ns.exec(r);if(o){let s=o[1]==="-"?-1:1,a=Number.parseInt(o[2],10)*s,d=o[3].toLowerCase();if(d==="m")return Xs(t,a).toISOString();let l=d==="h"?3600*1e3:d==="d"?1440*60*1e3:10080*60*1e3;return new Date(t.getTime()+a*l).toISOString()}Gs(e,r,n);let i=Us(r);if(!Number.isFinite(i)){let s=n.trim().length>0?n.trim():"deadline",a=Ds.test(r)?"Compound relative expressions like +3d+1h are not supported; use a single relative token (for example +3d) or an ISO/date string.":'Use ISO/date string input, "now", or relative +6h/-6h/+1d/-1d/+2w/-2w/+6m/-6m.';throw new T(`Invalid ${s} value "${e}". ${a}`,I.USAGE)}return new Date(i).toISOString()}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="77d3ebfa-789a-54cf-9d49-dbebab8d32ea")}catch{}})();var Ie=1,_o=1;function ff(e){let t=e.pm_format_version;return typeof t=="number"&&Number.isInteger(t)&&t>=Ie?t:Ie}function po(e){if(!(typeof e!="number"||!Number.isInteger(e)||e<=Ie))return e}function Ks(e,t=_o){return e<t?"outdated":e>t?"ahead":"current"}function mf(e,t=_o){let n=[],r=[];for(let o of e){let i=Ks(o.version,t);i==="outdated"?n.push(o.ref):i==="ahead"&&r.push(o.ref)}return{outdated:n.sort((o,i)=>o.localeCompare(i)),ahead:r.sort((o,i)=>o.localeCompare(i))}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="d7501aa2-d3d9-5fbe-a1c0-d4bc145f5563")}catch{}})();var Js={"in-progress":"in_progress",cancelled:"canceled"};function St(e,t){if(t){let o=Wr(e,t);if(o)return o}if(typeof e!="string")return;let n=e.trim().toLowerCase();if(!n)return;let r=Js[n]??n;if(dt.includes(r))return r}function Ys(e,t){return St(e,t)??e}function hf(e,t){return t.terminal_statuses.has(Ys(e,t))}import{encode as oa}from"@toon-format/toon";import{isDeepStrictEqual as wo}from"node:util";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="9bef4fe4-11a8-51ae-a42a-a93cc9c57384")}catch{}})();function Sn(e){let t=e.trim().replaceAll(/[^A-Za-z0-9]+/g," ").split(/\s+/).filter(o=>o.length>0).map(o=>o.toLowerCase());if(t.length===0)return e;let[n,...r]=t;return`${n}${r.map(o=>`${o.slice(0,1).toUpperCase()}${o.slice(1)}`).join("")}`}function Qs(e){return[...new Set([Br(e),Sn(e.key),Sn(e.cli_flag),...e.cli_aliases.map(t=>Sn(t))])]}function go(e,t){for(let n of Qs(t)){if(!Object.hasOwn(e,n))continue;let r=e[n];if(r!==void 0)return r}}function bo(e){return Array.isArray(e)?e.flatMap(t=>bo(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 yo(e,t){if(typeof e=="boolean")return e;if(typeof e=="number"){if(e===1)return!0;if(e===0)return!1}if(typeof e=="string"){let n=e.trim().toLowerCase();if(n==="true"||n==="1"||n==="yes")return!0;if(n==="false"||n==="0"||n==="no")return!1}throw new T(`${t} must be one of true|false|1|0|yes|no`,I.USAGE)}function ho(e,t){if(typeof e=="number"&&Number.isFinite(e))return e;let n=typeof e=="string"?e.trim():String(e),r=Number(n);if(!Number.isFinite(r))throw new T(`${t} must be a number`,I.USAGE);return r}function Zs(e,t,n){let r=typeof e=="string"?(()=>{try{return JSON.parse(e)}catch{return}})():e;if(n==="array"&&Array.isArray(r)||n==="object"&&typeof r=="object"&&r!==null&&!Array.isArray(r))return r;throw new T(`${t} must be valid JSON ${n}`,I.USAGE)}function We(e,t,n){let r=n??`--${e.cli_flag}`;if(e.type==="array"||e.type==="object"){let i=Array.isArray(t)?t[t.length-1]:t;return i===void 0?void 0:Zs(i,r,e.type)}if(e.repeatable||e.type==="string_array"){let i=bo(t);return e.type==="number"?i.map(s=>ho(s,r)):e.type==="boolean"?i.map(s=>yo(s,r)):i}let o=Array.isArray(t)?t[t.length-1]:t;if(o!==void 0)return e.type==="number"?ho(o,r):e.type==="boolean"?yo(o,r):typeof o=="string"?o:String(o)}function ea(e,t){return!e.required&&!e.required_on_create?!1:e.required_types.length===0?!0:t?e.required_types.map(n=>n.toLowerCase()).includes(t.trim().toLowerCase()):!1}function kf(e,t,n){let r={},o=[];for(let i of t.command_to_fields.get("create")??[]){let s=go(e,i);if(s===void 0){ea(i,n)&&o.push(`--${i.cli_flag}`);continue}r[i.metadata_key]=We(i,s)}return{values:r,missing_required_flags:[...new Set(o)].sort((i,s)=>i.localeCompare(s))}}function Sf(e,t,n=["update"]){let r={},o=(n??["update"]).flatMap(s=>t.command_to_fields.get(s)??[]),i=new Set;for(let s of o){let a=go(e,s);a!==void 0&&(i.has(s.metadata_key)||(i.add(s.metadata_key),r[s.metadata_key]=We(s,a)))}return r}import{decode as ta}from"@toon-format/toon";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="2840e12e-7444-5d36-9f54-5a56267bbb75")}catch{}})();function vn(e){return{value:ta(e),usedScalarBracketEscape:!1}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="fedb7b50-6946-589d-b240-9f074e09e467")}catch{}})();var na=/^\s*(<<<<<<<|=======|>>>>>>>)(?:\s.*)?$/;function ra(e){if(e.length===0)return[];let t=e.split(/\r?\n/),n=[];for(let r=0;r<t.length;r+=1){let o=t[r]??"",i=o.match(na);if(!i)continue;let s=i[1];n.push({line:r+1,marker:s,text:o})}return n}function vt(e){return ra(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]="a4c22692-fe27-5178-bba2-190ac3f80628")}catch{}})();var ia=new Set(["schema","tracker","auto"]),sa=new Set(["passed","failed","stopped","canceled"]),aa=new Set(Ir);function Oe(e){return e.replaceAll("\\","/")}function Rn(e){for(let t of e)if(t!==0)return t;return 0}function xt(e){for(let[t,n]of Object.entries(e))n===void 0&&delete e[t]}var vo=["id","title","description","created_at","updated_at"],ca=new Set(ne);function Io(e){if(e?.schema)return{statusRegistry:Hr(e.schema),fieldRegistry:qr(e.schema),unknownFieldPolicy:e.schema.unknown_field_policy??"allow",extensionFieldNames:new Set(e.extensionFieldNames??[]),onWarning:e.onWarning}}function da(e,t){return e.required?e.required_types.length===0?!0:e.required_types.map(n=>n.toLowerCase()).includes(t.trim().toLowerCase()):!1}function ie(e){let t=e.match(/^([a-z_][\w.]*)\s/u)?.[1];throw new T(`Invalid item metadata: ${e}`,I.GENERIC_FAILURE,{code:"item_document_invalid",reason:e.includes("required")?"missing_required_field":"schema_validation_error",...t?{field:t}:{},required:"Provide an item document whose metadata satisfies the active runtime schema.",why:e})}function Ve(e,t){throw new T(t,I.GENERIC_FAILURE,{code:"item_document_invalid",reason:"syntax_error",format:e,required:`Provide a syntactically valid ${e==="toon"?"TOON":"JSON Markdown"} item document.`,why:"The document could not be decoded far enough to validate item metadata."})}function xo(e){let t=new Set(ca);for(let n of e.fieldRegistry?.definitions??[])t.add(n.metadata_key);for(let n of e.extensionFieldNames)t.add(n);return t}function g(e,t){e||ie(t)}function Ge(e,t){return(typeof e!="object"||e===null||Array.isArray(e))&&ie(t),e}function In(e,t){let n=e[t];g(typeof n=="string",`${t} must be a string`),g(re(n),`${t} must be a valid ISO timestamp`)}function Eo(e,t,n){let r=e[t];r!==void 0&&g(typeof r=="number"&&Number.isInteger(r)&&r>=1,`${n} must be an integer >= 1`)}function On(e,t,n){let r=e[t];r!==void 0&&(g(typeof r=="string",`${n} must be a string`),g(re(r),`${n} must be a valid ISO timestamp`))}function la(e){if(e!==void 0){g(Array.isArray(e),"event.recurrence.by_weekday must be an array");for(let t of e){g(typeof t=="string","event.recurrence.by_weekday entries must be strings");let n=t.trim().toLowerCase();g(mt.includes(n),`event.recurrence.by_weekday entries must be one of: ${mt.join(", ")}`)}}}function ua(e){if(e!==void 0){g(Array.isArray(e),"event.recurrence.by_month_day must be an array");for(let t of e)g(typeof t=="number"&&Number.isInteger(t)&&t>=1&&t<=31,"event.recurrence.by_month_day entries must be integers 1..31")}}function fa(e){if(e!==void 0){g(Array.isArray(e),"event.recurrence.exdates must be an array");for(let t of e)g(typeof t=="string","event.recurrence.exdates entries must be strings"),g(re(t),"event.recurrence.exdates entries must be valid ISO timestamps")}}function ma(e){let t=Ge(e,"event.recurrence must be an object");g(typeof t.freq=="string","event.recurrence.freq must be a string");let n=t.freq.trim().toLowerCase();g(ft.includes(n),`event.recurrence.freq must be one of: ${ft.join(", ")}`),Eo(t,"interval","event.recurrence.interval"),Eo(t,"count","event.recurrence.count"),On(t,"until","event.recurrence.until"),la(t.by_weekday),ua(t.by_month_day),fa(t.exdates)}function _a(e){for(let r of vo)g(typeof e[r]=="string",`${r} is required and must be a string`);let t=e.type;g(typeof t=="string"&&t.trim().length>0,"type must be a non-empty string");let n=e.pm_format_version;return n!==void 0&&g(typeof n=="number"&&Number.isInteger(n)&&n>=Ie,`pm_format_version must be an integer >= ${Ie}`),t}function pa(e,t){let n=e.status;g(typeof n=="string"&&n.trim().length>0,"status must be a non-empty string");let r=t?.statusRegistry,o=St(n,r),i=r?r.definitions.map(s=>s.id):[...dt];g(o!==void 0,`status must be one of: ${i.join(", ")}`)}function ya(e){let t=e.priority;g(typeof t=="number"&&Number.isInteger(t)&&[0,1,2,3,4].includes(t),"priority must be an integer 0..4");let n=e.tags;g(Array.isArray(n),"tags must be an array");for(let r of n)g(typeof r=="string","tags entries must be strings")}function ha(e){let t=e.confidence;if(t!==void 0){if(typeof t=="number"){g(Number.isInteger(t)&&t>=0&&t<=100,"confidence number value must be an integer 0..100");return}if(typeof t=="string"){let n=t.trim().toLowerCase(),r=n==="med"||ut.includes(n);g(r,`confidence string value must be one of: ${[...ut,"med"].join(", ")}`);return}g(!1,"confidence must be a number or string")}}function ga(e){let t=e.severity;if(t===void 0)return;typeof t!="string"&&ie("severity must be a string");let n=t.trim().toLowerCase(),r=n==="med"||lt.includes(n);g(r,`severity value must be one of: ${[...lt,"med"].join(", ")}`)}function ba(e){e.regression!==void 0&&typeof e.regression!="boolean"&&ie("regression must be a boolean")}function wa(e){let t=e.reminders;if(t!==void 0){g(Array.isArray(t),"reminders must be an array");for(let n of t){let r=Ge(n,"reminders entries must be objects");g(typeof r.at=="string","reminder.at must be a string"),g(re(r.at),"reminder.at must be a valid ISO timestamp"),g(typeof r.text=="string","reminder.text must be a string"),g(r.text.trim().length>0,"reminder.text must not be empty")}}}function Ea(e){for(let t of["title","description","location","timezone"])e[t]!==void 0&&(g(typeof e[t]=="string",`event.${t} must be a string`),g(e[t].trim().length>0,`event.${t} must not be empty`))}function ka(e){e.recurrence!==void 0&&(ma(e.recurrence),e.recurrence.until!==void 0&&g(j(e.recurrence.until,e.start_at)>=0,"event.recurrence.until must be at or after event.start_at"))}function Sa(e){let t=Ge(e,"events entries must be objects");g(typeof t.start_at=="string","event.start_at must be a string"),g(re(t.start_at),"event.start_at must be a valid ISO timestamp"),t.end_at!==void 0&&(g(typeof t.end_at=="string","event.end_at must be a string"),g(re(t.end_at),"event.end_at must be a valid ISO timestamp"),g(j(t.end_at,t.start_at)>0,"event.end_at must be after event.start_at")),Ea(t),t.all_day!==void 0&&g(typeof t.all_day=="boolean","event.all_day must be a boolean"),ka(t)}function va(e){let t=e.events;if(t!==void 0){g(Array.isArray(t),"events must be an array");for(let n of t)Sa(n)}}function Ia(e){for(let t of["source_type","source_owner","design","external_ref"]){let n=e[t];n!==void 0&&g(typeof n=="string",`${t} must be a string`)}}function xa(e){let t=e.type_options;if(t===void 0)return;let n=Ge(t,"type_options must be an object");for(let[r,o]of Object.entries(n))g(r.trim().length>0,"type_options keys must be non-empty"),g(typeof o=="string","type_options values must be strings"),g(o.trim().length>0,"type_options values must be non-empty strings")}function Ta(e,t,n){if(n?.fieldRegistry)for(let r of n.fieldRegistry.definitions){let o=e[r.metadata_key];if(o===void 0){da(r,t)&&ie(`missing required schema field: ${r.metadata_key}`);continue}try{e[r.metadata_key]=We(r,o,`metadata field "${r.metadata_key}"`)}catch(i){ie(String(i?.message).replace(/^Invalid\s+/u,""))}}}function Oa(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let n=xo(t),r=Object.keys(e).filter(o=>!n.has(o)).sort((o,i)=>o.localeCompare(i));r.length!==0&&(t.unknownFieldPolicy==="reject"?ie(`unknown schema fields are not allowed: ${r.join(", ")}`):t.onWarning?.(`item_unknown_schema_fields:${r.join(",")}`))}function Cn(e,t){let n=Ge(e,"item metadata must be an object"),r=_a(n);pa(n,t),ya(n),ha(n),ga(n),ba(n),In(n,"created_at"),In(n,"updated_at"),n.deadline!==void 0&&In(n,"deadline"),wa(n),va(n),On(n,"closed_at","closed_at"),On(n,"completed_at","completed_at"),Ia(n),xa(n),Ta(n,r,t),Oa(n,t)}function Ca(e){if(!(!e||e.length===0))return[...e].map(t=>({id:t.id.trim().toLowerCase(),kind:t.kind,created_at:t.created_at,author:t.author?.trim()||void 0,source_kind:t.source_kind?.trim()||void 0,author_source:t.author_source})).sort((t,n)=>{let r=j(t.created_at,n.created_at);if(r!==0)return r;let o=t.id.localeCompare(n.id);if(o!==0)return o;let i=t.kind.localeCompare(n.kind);return i!==0?i:(t.source_kind??"").localeCompare(n.source_kind??"")})}function xn(e){if(!(!e||e.length===0))return[...e].sort((t,n)=>{let r=j(t.created_at,n.created_at);if(r!==0)return r;let o=t.text.localeCompare(n.text);return o!==0?o:t.author.localeCompare(n.author)})}function Aa(e){if(!e||e.length===0)return;let t=[...e].map(n=>({at:n.at,text:n.text.trim()})).filter(n=>n.text.length>0).sort((n,r)=>{let o=j(n.at,r.at);return o!==0?o:n.text.localeCompare(r.text)});return t.length===0?void 0:t}function Ra(e){if(!e)return;let t=e.freq.trim().toLowerCase();if(!ft.includes(t))return;let n=Array.from(new Set((e.by_weekday??[]).map(s=>s.trim().toLowerCase()).filter(s=>mt.includes(s)))).sort((s,a)=>fn(s)-fn(a)),r=Array.from(new Set((e.by_month_day??[]).filter(s=>Number.isInteger(s)&&s>=1&&s<=31).map(s=>s))).sort((s,a)=>s-a),o=Array.from(new Set((e.exdates??[]).map(s=>s.trim()).filter(s=>re(s)))).sort((s,a)=>j(s,a)),i={freq:t,interval:e.interval!==void 0&&e.interval>1?e.interval:void 0,count:e.count,until:e.until?.trim()||void 0,by_weekday:n.length>0?n:void 0,by_month_day:r.length>0?r:void 0,exdates:o.length>0?o:void 0};for(let[s,a]of Object.entries(i))a===void 0&&delete i[s];return i}function Na(e){return!Array.isArray(e)||e.length===0?void 0:[...e].map(Da).sort(Ma)}function Da(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:Ra(e.recurrence)};return xt(t),t}function Ma(e,t){return Rn([j(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:Oe(t.path),scope:t.scope,note:t.note?.trim()||void 0}))}function Pa(e){if(!e||e.length===0)return;let t=e.map($a).filter(n=>n.run_id.length>0&&n.started_at.length>0&&n.finished_at.length>0&&n.recorded_at.length>0).sort((n,r)=>Rn([j(n.recorded_at,r.recorded_at),n.run_id.localeCompare(r.run_id),n.kind.localeCompare(r.kind)]));return t.length>0?t:void 0}function xe(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?Math.floor(e):void 0}function ja(e){return typeof e=="number"&&Number.isFinite(e)&&e>=1?Math.floor(e):void 0}function Tn(e){return typeof e=="string"?e:""}function Fa(e){if(!Array.isArray(e))return;let t=e.filter(r=>r!==null&&typeof r=="object"&&typeof r.name=="string"&&r.name.trim().length>0&&typeof r.value=="number"&&Number.isFinite(r.value)&&typeof r.recorded_at=="string"&&r.recorded_at.trim().length>0).map(r=>({name:r.name.trim(),value:r.value,unit:typeof r.unit=="string"&&r.unit.trim()||void 0,threshold:typeof r.threshold=="number"&&Number.isFinite(r.threshold)?r.threshold:void 0,recorded_at:r.recorded_at.trim()})),n=[...new Map(t.map(r=>[r.name,r])).values()].sort((r,o)=>r.name.localeCompare(o.name)).slice(0,32);return n.length>0?n:void 0}function $a(e){let t=typeof e.run_id=="string"?e.run_id.trim():"",n=e.kind==="test"||e.kind==="test-all"?e.kind:"test",r=sa.has(e.status)?e.status:"failed",o={run_id:t,kind:n,status:r,started_at:Tn(e.started_at),finished_at:Tn(e.finished_at),recorded_at:Tn(e.recorded_at),attempt:ja(e.attempt),resumed_from:e.resumed_from?.trim()||void 0,passed:xe(e.passed)??0,failed:xe(e.failed)??0,skipped:xe(e.skipped)??0,items:xe(e.items),linked_tests:xe(e.linked_tests),fail_on_skipped_triggered:e.fail_on_skipped_triggered===!0?!0:void 0,measurements:Fa(e.measurements)};return xt(o),o}function za(e){if(!(!Array.isArray(e)||e.length===0))return[...e].map(Wa).sort(qa)}function qe(e){if(!Array.isArray(e))return;let t=[...new Set(e.filter(n=>typeof n=="string").map(n=>n.trim()).filter(n=>n.length>0))].sort((n,r)=>n.localeCompare(r));return t.length>0?t:void 0}function To(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function Nn(e){return e==="__proto__"||e==="constructor"||e==="prototype"}function ko(e){if(!To(e))return;let t=Object.entries(e).map(([n,r])=>[n.trim(),String(r).trim()]).filter(([n,r])=>n.length>0&&!Nn(n)&&r.length>0).sort(([n],[r])=>n.localeCompare(r));return t.length>0?Object.fromEntries(t):void 0}function Ua(e){if(!To(e))return;let t=Object.entries(e).map(([n,r])=>[n.trim(),Number(r)]).filter(([n,r])=>n.length>0&&!Nn(n)&&Number.isFinite(r)).sort(([n],[r])=>n.localeCompare(r));return t.length>0?Object.fromEntries(t):void 0}function Ha(e){let t=e?.trim().toLowerCase();if(!(!t||!ia.has(t)))return t}function Wa(e){let t={command:e.command?.trim()||void 0,path:e.path?Oe(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:Ha(e.pm_context_mode),env_set:ko(e.env_set),env_clear:qe(e.env_clear),shared_host_safe:e.shared_host_safe===!0?!0:void 0,assert_stdout_contains:qe(e.assert_stdout_contains),assert_stdout_regex:qe(e.assert_stdout_regex),assert_stderr_contains:qe(e.assert_stderr_contains),assert_stderr_regex:qe(e.assert_stderr_regex),assert_stdout_min_lines:xe(e.assert_stdout_min_lines),assert_json_field_equals:ko(e.assert_json_field_equals),assert_json_field_gte:Ua(e.assert_json_field_gte),note:e.note?.trim()||void 0};return xt(t),t}function qa(e,t){return Rn([e.scope.localeCompare(t.scope),It(e.path,t.path),It(e.command,t.command),So(e.timeout_seconds,t.timeout_seconds),It(e.pm_context_mode,t.pm_context_mode),+!!e.shared_host_safe-+!!t.shared_host_safe,oe(e.env_clear,t.env_clear,[]),oe(e.env_set,t.env_set,{}),oe(e.assert_stdout_contains,t.assert_stdout_contains,[]),oe(e.assert_stdout_regex,t.assert_stdout_regex,[]),oe(e.assert_stderr_contains,t.assert_stderr_contains,[]),oe(e.assert_stderr_regex,t.assert_stderr_regex,[]),So(e.assert_stdout_min_lines,t.assert_stdout_min_lines),oe(e.assert_json_field_equals,t.assert_json_field_equals,{}),oe(e.assert_json_field_gte,t.assert_json_field_gte,{}),It(e.note,t.note)])}function It(e,t){return(e??"").localeCompare(t??"")}function So(e,t){return(e??0)-(t??0)}function oe(e,t,n){return JSON.stringify(e??n).localeCompare(JSON.stringify(t??n))}function Ba(e){if(!(!e||e.length===0))return[...e].map(t=>({path:Oe(t.path),scope:t.scope,note:t.note?.trim()||void 0})).sort((t,n)=>{let r=t.scope.localeCompare(n.scope);if(r!==0)return r;let o=t.path.localeCompare(n.path);return o!==0?o:(t.note??"").localeCompare(n.note??"")})}function y(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function Va(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=y(r.id),i=y(r.kind);if(!o||!i)continue;let s={id:o,kind:i},a=y(r.note);a&&(s.note=a),r.required_before_step===!0&&(s.required_before_step=!0),t.push(s)}return t.length>0?t:void 0}function Ga(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=y(r.path);if(!o)continue;let i={path:Oe(o)};(r.scope==="project"||r.scope==="global")&&(i.scope=r.scope);let s=y(r.note);s&&(i.note=s),t.push(i)}return t.length>0?t:void 0}function Xa(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=y(r.command),i=y(r.path);if(!o&&!i)continue;let s={};o&&(s.command=o),i&&(s.path=Oe(i));let a=y(r.note);a&&(s.note=a),t.push(s)}return t.length>0?t:void 0}function Ka(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=y(r.path);if(!o)continue;let i={path:Oe(o)};(r.scope==="project"||r.scope==="global")&&(i.scope=r.scope);let s=y(r.note);s&&(i.note=s),t.push(i)}return t.length>0?t:void 0}function Ja(e){if(e===null||typeof e!="object")return;let t=e,n=y(t.id),r=y(t.title),o=y(t.status),i=o&&aa.has(o)?o:void 0,s=Nr(t.order)??Number.NaN,a=typeof t.created_at=="string"?t.created_at:"",d=typeof t.updated_at=="string"?t.updated_at:"";if(!n||!r||!i||!Number.isFinite(s)||!a||!d)return;let l={id:n,order:s,title:r,status:i,created_at:a,updated_at:d};return Ya(l,t),l}function Ya(e,t){let n=[["body","body"],["owner","owner"],["evidence","evidence"],["blocked_reason","blocked_reason"],["superseded_by","superseded_by"]];for(let[i,s]of n){let a=y(t[s]);a&&(e[i]=a)}let r=typeof t.completed_at=="string"?t.completed_at:void 0;r&&r.length>0&&(e.completed_at=r);let o=[["linked_items","linked_items",Va],["files","files",Ga],["tests","tests",Xa],["docs","docs",Ka]];for(let[i,s,a]of o){let d=a(t[s]);d&&(e[i]=d)}}function Qa(e){if(!Array.isArray(e))return;let t=e.flatMap(n=>{let r=Ja(n);return r?[r]:[]});return t.sort((n,r)=>n.order-r.order),t.length>0?t:void 0}function Za(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=typeof r.ts=="string"?r.ts:"",i=typeof r.author=="string"?r.author:"",s=y(r.decision);if(!o||!i||!s)continue;let a={ts:o,author:i,decision:s},d=y(r.rationale);d&&(a.rationale=d);let l=y(r.evidence);l&&(a.evidence=l);let m=y(r.step_id);m&&(a.step_id=m),t.push(a)}return t.length>0?t:void 0}function ec(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=typeof r.ts=="string"?r.ts:"",i=typeof r.author=="string"?r.author:"",s=y(r.text);if(!o||!i||!s)continue;let a={ts:o,author:i,text:s},d=y(r.step_id);d&&(a.step_id=d),t.push(a)}return t.length>0?t:void 0}function tc(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=y(r.text);if(!o)continue;let i={text:o},s=y(r.command);s&&(i.command=s);let a=y(r.expected);a&&(i.expected=a),t.push(i)}return t.length>0?t:void 0}function nc(e){if(!e)return;let t=Object.entries(e).map(([n,r])=>[n.trim(),r.trim()]).filter(([n,r])=>n.length>0&&r.length>0).sort((n,r)=>n[0].localeCompare(r[0]));if(t.length!==0)return Object.fromEntries(t)}function Te(e){let t=0;for(;t<e.length&&e[t]===`
4
+ `;)t+=1;return e.slice(t).trimEnd()}function rc(e){if(e===void 0)return;if(typeof e=="number")return e;let t=e.trim().toLowerCase();if(t==="med")return"medium";if(ut.includes(t))return t}function oc(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(t==="med")return"medium";if(lt.includes(t))return t}function Be(e){return e||void 0}function ic(e,t){let n=e,r=t;for(let[o,i]of Object.entries(r))Nn(o)||Object.prototype.hasOwnProperty.call(n,o)||i===void 0||(n[o]=i)}function sc(e,t){if(!t?.fieldRegistry)return;let n=e;for(let r of t.fieldRegistry.definitions){let o=n[r.metadata_key];o!==void 0&&(n[r.metadata_key]=We(r,o,`metadata field "${r.metadata_key}"`))}}function ac(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let n=xo(t),o=Object.keys(e).filter(i=>!n.has(i)).sort((i,s)=>i.localeCompare(s));o.length>0&&t.unknownFieldPolicy==="reject"&&ie(`unknown schema fields are not allowed: ${o.join(", ")}`),o.length>0&&t.onWarning?.(`item_unknown_schema_fields:${o.join(",")}`)}function Tt(e,t={}){let n=Io(t),r=St(e.status,n?.statusRegistry)??e.status,o=Array.from(new Set((Array.isArray(e.tags)?e.tags:[]).filter(s=>typeof s=="string").map(s=>s.trim().toLowerCase()).filter(Boolean))).sort((s,a)=>s.localeCompare(a)),i={id:e.id,title:e.title,description:e.description,type:e.type,pm_format_version:po(e.pm_format_version),source_type:y(e.source_type),type_options:nc(e.type_options),status:r,priority:e.priority,tags:o,created_at:e.created_at,updated_at:e.updated_at,dependencies:Ca(e.dependencies),comments:xn(e.comments),notes:xn(e.notes),learnings:xn(e.learnings),files:La(e.files),tests:za(e.tests),test_runs:Pa(e.test_runs),docs:Ba(e.docs),deadline:Be(e.deadline),reminders:Aa(e.reminders),events:Na(e.events),closed_at:Be(e.closed_at),completed_at:Be(e.completed_at),assignee:y(e.assignee),claim_principal:y(e.claim_principal),source_owner:y(e.source_owner),author:Be(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:y(e.definition_of_ready),order:e.order,goal:y(e.goal),objective:y(e.objective),value:y(e.value),impact:y(e.impact),outcome:y(e.outcome),why_now:y(e.why_now),parent:y(e.parent),reviewer:y(e.reviewer),risk:e.risk??void 0,confidence:rc(e.confidence),sprint:y(e.sprint),release:y(e.release),blocked_by:y(e.blocked_by),blocked_reason:y(e.blocked_reason),unblock_note:y(e.unblock_note),reporter:y(e.reporter),severity:oc(e.severity),environment:y(e.environment),repro_steps:y(e.repro_steps),resolution:y(e.resolution),expected_result:y(e.expected_result),actual_result:y(e.actual_result),affected_version:y(e.affected_version),fixed_version:y(e.fixed_version),component:y(e.component),regression:e.regression,customer_impact:y(e.customer_impact),close_reason:Be(e.close_reason),plan_mode:y(e.plan_mode),plan_scope:y(e.plan_scope),plan_harness:y(e.plan_harness),plan_resume_context:y(e.plan_resume_context),plan_steps:Qa(e.plan_steps),plan_decisions:Za(e.plan_decisions),plan_discoveries:ec(e.plan_discoveries),plan_validation:tc(e.plan_validation)};return ic(i,e),sc(i,n),ac(i,n),xt(i),i}function Oo(e){return E(e,ne)}function cc(e){let t=0,n=!1,r=!1;for(let o=0;o<e.length;o+=1){let i=e[o];if(n){if(r){r=!1;continue}if(i==="\\"){r=!0;continue}i==='"'&&(n=!1);continue}if(i==='"'){n=!0;continue}if(i==="{"){t+=1;continue}if(i==="}"&&(t-=1,t===0))return o}return-1}function dc(e){if(!e.startsWith("{"))return{frontMatter:"",body:e};let t=cc(e);if(t<0)return{frontMatter:"",body:e};let n=e.slice(0,t+1),r=e.slice(t+1).replace(/^\r?\n+/,"");return{frontMatter:n,body:r}}function lc(e){let t=e.charCodeAt(0)===65279?e.slice(1):e,n=t.match(/^[ \t]*---[ \t]*(?:\r?\n|$)/);if(!n)return{content:t,stripped:!1};let r=n[0].length;for(;r<t.length;){let o=t.indexOf(`
5
+ `,r),i=o===-1?t.length:o,s=t.slice(r,i).replace(/\r$/,""),a=o===-1?i:i+1;if(s.trim()==="---")return{content:t.slice(a).replace(/^\s+/,""),stripped:!0};r=a}return{content:t,stripped:!1}}function An(e,t){return Tt(e,{...t,onWarning:void 0})}function uc(e,t,n={}){let r=lc(e);r.stripped&&n.onWarning?.("json_markdown_leading_yaml_frontmatter_ignored");let{frontMatter:o,body:i}=dc(r.content);o||(e.trimStart().startsWith("{")&&Ve("json_markdown","JSON front matter is not valid JSON"),Ve("json_markdown","JSON Markdown item document is missing JSON front matter"));let s;try{s=JSON.parse(o)}catch{Ve("json_markdown","JSON front matter is not valid JSON")}return Cn(s,t),{metadata:An(s,n),body:Te(i)}}function fc(e,t,n={}){let r;try{r=vn(e).value}catch{Ve("toon","TOON item document is not valid TOON")}g(typeof r=="object"&&r!==null&&!Array.isArray(r),"TOON item document must be an object");let o=r;if(!vo.some(a=>Object.prototype.hasOwnProperty.call(o,a))&&!Object.prototype.hasOwnProperty.call(o,"front_matter")&&Ve("toon","TOON input does not have the shape of an item document"),Object.prototype.hasOwnProperty.call(o,"front_matter"))return Cn(o.front_matter,t),g(o.body===void 0||typeof o.body=="string","TOON item document body must be a string"),{metadata:An(o.front_matter,n),body:Te(typeof o.body=="string"?o.body:"")};let{body:i,...s}=o;return g(i===void 0||typeof i=="string","TOON item document body must be a string"),Cn(s,t),{metadata:An(s,n),body:Te(typeof i=="string"?i:"")}}function mc(e,t={}){let n=Tt(e.metadata,t),r=Oo(n),o=JSON.stringify(r,null,2),i=Te(e.body??"");return i?`${o}
6
+
7
+ ${i}
8
+ `:`${o}
9
+ `}function _c(e,t={}){let n=Tt(e.metadata,t),r=Oo(n),o=Te(e.body??""),i={...r,body:o},s=JSON.parse(JSON.stringify(i)),a=oa(s),d;try{d=vn(a).value}catch(l){throw new T("Refusing to persist a TOON item document that the configured decoder cannot read back.",I.GENERIC_FAILURE,{code:"item_document_roundtrip_failed",reason:"encode_decode_error",format:"toon",required:"Upgrade or repair the TOON codec before retrying the mutation; no item bytes were written.",why:l instanceof Error?l.message:String(l)})}if(!wo(d,s)){let l=typeof d=="object"&&d!==null&&!Array.isArray(d)?d:{},m=Object.keys(s).find(f=>!wo(s[f],l[f]))??"document";throw new T(`Refusing to persist a lossy TOON item document; round-trip mismatch at field "${m}".`,I.GENERIC_FAILURE,{code:"item_document_roundtrip_failed",reason:"encode_decode_mismatch",format:"toon",field:m,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}
10
+ `}function Ot(e,t={}){let n=vt(e);if(n)throw new T(`Merge conflict markers detected in item document at line ${n.line} (${n.marker}). Resolve <<<<<<< ======= >>>>>>> markers and retry.`,I.GENERIC_FAILURE,{code:"merge_conflict_markers_detected",reason:"merge_conflict",required:"Resolve merge-conflict markers in the item file before parsing or mutation commands.",why:"Partially merged documents can corrupt item metadata and history integrity.",examples:["git status","git add <resolved-file> && git commit"],nextSteps:["Resolve conflicts, save the file, then rerun the pm command."]});let r=t.format??"toon",o=Io(t);return r==="toon"?fc(e,o,t):uc(e,o,t)}function Co(e,t={}){return(t.format??"toon")==="toon"?_c(e,t):mc(e,t)}function q(e,t={}){return{metadata:Tt(e.metadata,t),body:Te(e.body??"")}}import{existsSync as yc}from"node:fs";import{AsyncLocalStorage as hc}from"node:async_hooks";import Q 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]="bd9832a9-f6a2-5351-a929-0a0d2766df88")}catch{}})();(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="3239b2c7-3ae3-5d4e-9005-b61000362304")}catch{}})();function Vf(){let e=Promise.resolve(),t=new Set;return{async read(n){let r=e,o,i=new Promise(s=>{o=s});t.add(i),await r;try{return await n()}finally{t.delete(i),o()}},write(n){let o=Promise.all([e,...t]).then(()=>n());return e=o.then(()=>{},()=>{}),o}}}function pc(){let e=Promise.resolve(),t=0,n=[],r=()=>{if(t!==0)return;let o=n.splice(0);for(let i of o)i()};return{enqueue(o){t++;let i=e.then(()=>o());return e=i.then(()=>{},()=>{}).finally(()=>{t--,r()}),i},idle(){return t===0?Promise.resolve():new Promise(o=>n.push(o))}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="38024e6c-c1ef-5c15-8421-ac18d317e330")}catch{}})();var Ce=null,Ro=null,gc=null,bc=null,Dn=null,wc=null,No=null,Ec=null;var kc=[],Do=new hc;function M(){return Do.getStore()}function im(e){return Do.run({hooks:null,commands:null,parsers:null,preflight:null,services:null,renderers:null,registrations:null,commandContext:null,commandResult:void 0,affectedItems:[]},e)}var Sc=new Set(["body","comments","dependencies","docs","events","files","learnings","notes","reminders","test_runs","tests"]);function Ao(e){let t=Q.resolve(e);for(;;){if(yc(Q.join(t,".git")))return t;let n=Q.dirname(t);if(n===t)return;t=n}}function vc(e){let t=process.env.PM_SOURCE_WORKSPACE_ROOT?.trim()||process.cwd(),n=Ao(t)??Q.resolve(t),r=Ao(n);if(!e)return{source_workspace_root:n,...r?{repo_root:r}:{}};let o=Q.relative(n,Q.resolve(e)),i=o.length>0&&!o.startsWith(`..${Q.sep}`)&&o!==".."&&!Q.isAbsolute(o);return{source_workspace_root:n,...r?{repo_root:r}:{},...i?{pm_root_rel:o.split(Q.sep).join("/")}:{}}}function sm(e){let t=M();if(t){t.hooks=e;return}Ce=e}function am(e){let t=M();if(t){t.commands=e;return}Ro=e}function cm(e){let t=M();if(t){t.parsers=e;return}gc=e}function dm(e){let t=M();if(t){t.preflight=e;return}bc=e}function lm(e){let t=M();if(t){t.services=e;return}Dn=e}function um(e){let t=M();if(t){t.renderers=e;return}wc=e}function fm(e){let t=M();if(t){t.registrations=e;return}No=e}function Xe(){let e=M();return e?e.registrations:No}function Mn(e){if(!e)return;let t=M();t?t.affectedItems.push(e):kc.push(e)}function Ct(e,t){if(!e||!e.id)return{};let n={id:e.id,type:e.type,status:e.status};if(!Array.isArray(t))return n;let r=e;for(let o of t){if(typeof o!="string")continue;let i=o.startsWith("unset:")?o.slice(6):o;i==="id"||i==="type"||i==="status"||Sc.has(i)||Object.hasOwn(r,i)&&r[i]!==void 0&&(n[i]=r[i])}return n}async function B(e){let t=M(),n=t?t.hooks:Ce;return n?Mr(n,e):[]}async function Ln(e){let t=M(),n=t?t.hooks:Ce;n&&await Dr(n,e)}async function X(e){let t=M(),n=t?t.hooks:Ce;return n?Lr(n,e):[]}function Pn(){let e=M();return((e?e.hooks:Ce)?.onRead?.length??0)>0}async function mm(e){let t=M(),n=t?t.hooks:Ce;return n?Pr(n,e):[]}async function _m(e){let t=M(),n=t?t.commands:Ro;return n?jr(n,{...e,...vc(e.pm_root)}):{handled:!1,result:null,warnings:[]}}function Mo(e,t){let n=M(),r=n?n.commandContext:Ec;return{service:e,command:r?.command,args:r?[...r.args]:[],options:r?.options?{...r.options}:{},global:r?.global?{...r.global}:void 0,pm_root:r?.pm_root,source_workspace_root:r?.source_workspace_root,repo_root:r?.repo_root,pm_root_rel:r?.pm_root_rel,payload:t}}async function Z(e,t){let n=M(),r=n?n.services:Dn;return r?$r(r,Mo(e,t)):{handled:!1,result:t,warnings:[]}}function Lo(e,t){let n=M(),r=n?n.services:Dn;return r?Fr(r,Mo(e,t)):{handled:!1,result:t,warnings:[]}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="aa65b74d-ef5d-57ed-b613-3034da52a8ba")}catch{}})();async function Ke(e,t){let n=await Ee(e);if(n===null)return[];if(await X({path:e,scope:"project"}),n.trim()==="")return[];let r=vt(n);if(r)throw new T(`History for ${t} contains merge conflict markers at line ${r.line} (${r.marker}). Resolve <<<<<<< ======= >>>>>>> markers and retry.`,I.GENERIC_FAILURE,{code:"history_merge_conflict_markers_detected",required:"Repair the history stream by resolving merge-conflict markers.",why:"Conflict markers break JSONL parsing and invalidate deterministic audit history.",examples:[`pm history ${t}`,`pm restore ${t} <timestamp-or-version>`],nextSteps:["Resolve or restore the history file, then rerun the command."]});let o=[];for(let[i,s]of n.split(/\r?\n/).entries()){let a=s.trim();if(a)try{o.push(JSON.parse(a))}catch{throw new T(`History for ${t} contains invalid JSON at line ${i+1}. Repair or restore the history stream and retry.`,I.GENERIC_FAILURE)}}return o}import Gn from"fast-json-patch";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="4d71277c-e16c-56f4-a834-5200acfa6d7a")}catch{}})();import Go from"fast-json-patch";import se from"node:fs/promises";import ee from"node:path";import{randomUUID as Ic}from"node:crypto";import{createRequire as xc}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]="f1205949-16d8-51ce-98e8-04abc4c78ee8")}catch{}})();var Tc="history-event-index.sqlite",jn="2";function Nt(e){return ee.join(e,"runtime",Tc)}function Oc(e){try{return e(["node","sqlite"].join(":")).DatabaseSync??null}catch{return null}}function Cc(e,t){let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>=22?Oc(t):null}var At;function Fn(){return At!==void 0||(At=Cc(process.versions.node,xc(import.meta.url))),At}function Ac(e){e.exec(`
11
+ PRAGMA journal_mode = OFF;
12
+ PRAGMA synchronous = OFF;
13
+ CREATE TABLE metadata (
14
+ key TEXT PRIMARY KEY,
15
+ value TEXT NOT NULL
16
+ ) STRICT;
17
+ CREATE TABLE events (
18
+ stream_id TEXT NOT NULL,
19
+ stream_offset INTEGER NOT NULL,
20
+ ts TEXT NOT NULL,
21
+ author TEXT NOT NULL,
22
+ agent_harness TEXT,
23
+ agent_instance TEXT,
24
+ op TEXT NOT NULL,
25
+ entry_json TEXT NOT NULL,
26
+ PRIMARY KEY(stream_id, stream_offset)
27
+ ) STRICT;
28
+ CREATE INDEX events_order
29
+ ON events(ts, stream_id, stream_offset);
30
+ CREATE INDEX events_op_order
31
+ ON events(op, ts, stream_id, stream_offset);
32
+ CREATE INDEX events_author_order
33
+ ON events(author, ts, stream_id, stream_offset);
34
+ CREATE INDEX events_harness_order
35
+ ON events(agent_harness, ts, stream_id, stream_offset);
36
+ CREATE INDEX events_instance_order
37
+ ON events(agent_instance, ts, stream_id, stream_offset);
38
+ `),e.prepare("INSERT INTO metadata(key, value) VALUES ('version', ?)").run(jn)}function Po(e,t){e.prepare(`INSERT INTO events(
39
+ stream_id, stream_offset, ts, author, agent_harness,
40
+ agent_instance, op, entry_json
41
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?)`).run(t.stream_id,t.stream_offset,t.entry.ts,t.entry.author,t.entry.agent_harness??null,t.entry.agent_instance??null,t.entry.op,JSON.stringify(t.entry))}async function Nm(e){let t=Fn();if(!t)return!1;let n=ee.join(e,"history"),o=(await se.readdir(n,{withFileTypes:!0}).catch(d=>{if(typeof d=="object"&&d!==null&&"code"in d&&d.code==="ENOENT")return[];throw d})).filter(d=>d.isFile()&&d.name.endsWith(".jsonl")).sort((d,l)=>d.name.localeCompare(l.name)),i=Nt(e);await se.mkdir(ee.dirname(i),{recursive:!0});let s=`${i}.${Ic()}.tmp`,a;try{a=new t(s),Ac(a),a.exec("BEGIN IMMEDIATE");for(let d of o){let l=d.name.slice(0,-6),m=await Ke(ee.join(n,d.name),l);for(let[f,h]of m.entries())Po(a,{stream_id:l,stream_offset:f,entry:h})}return a.exec("COMMIT"),a.close(),a=void 0,await se.rm(i,{force:!0}),await se.rename(s,i),!0}catch(d){throw a?.close(),await se.rm(s,{force:!0}),d}}async function jo(e,t){let n=ee.dirname(ee.dirname(e)),r=Nt(n);try{await se.access(r)}catch{return}let o=Fn();if(!o)return;let i;try{if(i=new o(r),i.prepare("SELECT value FROM metadata WHERE key = 'version'").get()?.value!==jn)throw new TypeError("Unsupported history event index version");let a=ee.basename(e,".jsonl"),d=i.prepare("SELECT COALESCE(MAX(stream_offset), -1) + 1 AS value FROM events WHERE stream_id = ?").get(a);Po(i,{stream_id:a,stream_offset:Number(d.value),entry:t}),i.close()}catch{i?.close(),await se.rm(r,{force:!0})}}async function Dt(e){await se.rm(Nt(ee.dirname(ee.dirname(e))),{force:!0})}function Rt(e,t,n,r){!r||r.length===0||(e.push(`${n} IN (${r.map(()=>"?").join(", ")})`),t.push(...r))}function Rc(e,t,n,r){if(!n||n.length===0)return;let o=n.map(()=>"?").join(", "),i=r??[];if(i.length>0){e.push(`(agent_harness IN (${o}) OR (agent_harness IS NULL AND author IN (${i.map(()=>"?").join(", ")})))`),t.push(...n,...i);return}e.push(`agent_harness IN (${o})`),t.push(...n)}async function Dm(e,t){let n=Fn();if(!n)return null;let r=[],o=[];t.after_ts!==void 0&&t.after_stream_id!==void 0&&t.after_stream_offset!==void 0?(r.push("(ts > ? OR (ts = ? AND stream_id > ?) OR (ts = ? AND stream_id = ? AND stream_offset > ?))"),o.push(t.after_ts,t.after_ts,t.after_stream_id,t.after_ts,t.after_stream_id,t.after_stream_offset)):t.since_ts!==void 0&&(r.push("ts >= ?"),o.push(t.since_ts)),Rt(r,o,"op",t.ops),Rt(r,o,"author",t.authors),Rc(r,o,t.harnesses,t.harness_alias_authors),Rt(r,o,"agent_instance",t.agent_instances);for(let a of t.provenance??[])r.push(`json_extract(entry_json, '$.agent_provenance.${a.dimension}.value') IN (${a.values.map(()=>"?").join(", ")})`),o.push(...a.values);Rt(r,o,"stream_id",t.stream_ids);let i=r.length===0?"":` WHERE ${r.join(" AND ")}`,s;try{if(s=new n(Nt(e),{readOnly:!0}),s.prepare("SELECT value FROM metadata WHERE key = 'version'").get()?.value!==jn)return s.close(),null;let d=s.prepare(`SELECT stream_id, stream_offset, entry_json
42
+ FROM events${i}
43
+ ORDER BY ts, stream_id, stream_offset
44
+ LIMIT ?`).all(...o,Math.max(0,Math.floor(t.limit))+1),l=d.length>t.limit,m=d.slice(0,t.limit).map(f=>({stream_id:String(f.stream_id),stream_offset:Number(f.stream_offset),entry:JSON.parse(String(f.entry_json))}));return s.close(),{events:m,has_more:l}}catch{return s?.close(),null}}import Bn from"node:fs/promises";import Ae from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="22af7808-6456-5889-b6e3-1abd73f35738")}catch{}})();(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="c873f95b-c435-5b0d-a631-565fb195b5cd")}catch{}})();var Mt="changed_fields",Nc="changed_field_count",$n="rows",Dc=new Set(["apply","rollback"]),Fo=new Set(["deleted","would_delete"]);function ge(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function $o(e){let t=e[Mt];if(!Array.isArray(t))return null;let n=Object.getPrototypeOf(e)===null?Object.create(null):{};for(let[r,o]of Object.entries(e))r!==Mt&&(n[r]=o);return n[Nc]=t.length,n}function Mc(e){return"item"in e&&Array.isArray(e[Mt])}function Lc(e){return typeof e.mode=="string"&&Dc.has(e.mode)&&Array.isArray(e[$n])}function Pc(e,t){let n=Object.getPrototypeOf(e)===null?Object.create(null):{};return Object.assign(n,e),n[$n]=t,n}function jc(e){if(!ge(e))return null;let t=ge(e.item)?e.item:ge(e.plan)?e.plan:null;if(t===null)return null;let n=typeof t.id=="string"?t.id:void 0,r=typeof e.outcome=="string"&&Fo.has(e.outcome)?e.outcome:typeof t.status=="string"?t.status:void 0;return n?r?{id:n,status:r,...typeof e.deleted=="boolean"?{deleted:e.deleted}:{}}:{id:n}:null}function Fc(e){if(!ge(e)||!ge(e.item)||typeof e.item.id!="string")return null;let t=e[Mt];if(!Array.isArray(t))return null;let n={id:e.item.id,...typeof e.outcome=="string"&&Fo.has(e.outcome)?{status:e.outcome}:typeof e.item.status=="string"?{status:e.item.status}:{},...typeof e.deleted=="boolean"?{deleted:e.deleted}:{},...typeof e.previous_status=="string"?{previous_status:e.previous_status}:{},changed_field_count:t.length},r=typeof e.close_reason=="string"?e.close_reason:typeof e.item.close_reason=="string"?e.item.close_reason:void 0;return r!==void 0&&(n.close_reason=r),Array.isArray(e.warnings)&&e.warnings.length>0&&(n.warnings=e.warnings),n}function $c(e){let t=Lc(e)?e[$n]:void 0;if(!Array.isArray(t))return{projected:e,changed:!1};let n=!1,r=t.map(o=>{if(!ge(o))return o;let i=$o(o);return i?(n=!0,i):o});return n?{projected:Pc(e,r),changed:!0}:{projected:e,changed:!1}}function zc(e,t={}){if(t.idOnly===!0){let a=jc(e);if(a!==null)return a}if(t.compactEnvelope===!0){let a=Fc(e);if(a!==null)return a}if((t.changedFields??"full")==="full"||!ge(e))return e;let r=!1,o=e,i=Mc(e)?$o(e):null;i!==null&&(o=i,r=!0);let s=$c(o);return s.changed&&(o=s.projected,r=!0),r?o: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]="816ae182-02ba-56a9-8204-7474e30322bc")}catch{}})();var zo=!1;function Je(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Un(e){return typeof e=="object"&&e!==null&&e.code==="EPIPE"}function Uc(){(process.exitCode===void 0||process.exitCode===I.SUCCESS)&&(process.exitCode=I.SUCCESS)}function Hc(){(process.exitCode===void 0||process.exitCode===I.SUCCESS)&&(process.exitCode=I.GENERIC_FAILURE)}function Hn(e){if(e==="stdout"){Uc();return}Hc()}function Uo(e){let t=e instanceof Error?e:new Error(String(e));setImmediate(()=>{throw t})}function Wc(){zo||(zo=!0,process.stdout.on("error",e=>{if(Un(e)){Hn("stdout");return}Uo(e)}),process.stderr.on("error",e=>{if(Un(e)){Hn("stderr");return}Uo(e)}))}function qc(e,t){Wc();try{return e==="stdout"?process.stdout.write(t):process.stderr.write(t),!0}catch(n){if(Un(n))return Hn(e),!1;throw n}}function Lt(e){return qc("stderr",e)}function zn(e){return typeof e=="string"?JSON.stringify(e):typeof e=="number"||typeof e=="boolean"?String(e):e===null?"null":JSON.stringify(e)}function Wn(e){if(e!=null){if(Array.isArray(e)){let t=e.map(n=>Wn(n)).filter(n=>n!==void 0);return t.length>0?t:void 0}if(Je(e)){let t={};for(let[n,r]of Object.entries(e)){if(n==="omitted_field_groups"&&Array.isArray(r)&&r.length===0){t[n]=[];continue}let o=Wn(r);o!==void 0&&(t[n]=o)}return Object.keys(t).length>0?t:void 0}return e}}function qn(e,t){let n=" ".repeat(t);if(Array.isArray(e))return e.length===0?"[]":e.map(r=>{if(!Je(r)&&!Array.isArray(r))return`${n}- ${zn(r)}`;let i=qn(r,t+1).split(`
45
+ `),[s,...a]=i;return a.length===0?`${n}- ${s.trimStart()}`:`${n}- ${s.trimStart()}
46
+ ${a.join(`
47
+ `)}`}).join(`
48
+ `);if(Je(e)){let r=Object.entries(e);return r.length===0?"{}":r.map(([o,i])=>!Je(i)&&!Array.isArray(i)?`${n}${o}: ${zn(i)}`:Array.isArray(i)&&i.length===0?`${n}${o}: []`:Je(i)&&Object.keys(i).length===0?`${n}${o}: {}`:`${n}${o}:
49
+ ${qn(i,t+1)}`).join(`
50
+ `)}return`${n}${zn(e)}`}function Qm(e,t){if(t==="json")return`${JSON.stringify(e,null,2)}
51
+ `;let n=Wn(e);return n===void 0?`{}
52
+ `:`${qn(n,0)}
53
+ `}function Zm(e){let t=Lo("error_format",{message:e}),n=t.handled&&typeof t.result=="string"?t.result:e;Lt(n.endsWith(`
54
+ `)?n:`${n}
55
+ `)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="4db09d54-90c6-548b-baa8-c7ce419f70a2")}catch{}})();var Bc=Ae.join("runtime","history-drift-cache.json"),Ho={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 Wo(e){return typeof e=="object"&&e!==null&&"code"in e&&typeof e.code=="string"?e.code:void 0}async function Vc(e){let t=Ae.join(e,Bc),n=!1,r="invalid_cache_path";try{n=(await Bn.stat(await Bn.realpath(e))).isDirectory()}catch(o){let i=Wo(o);r=i===void 0?"unknown":Ho[i]??"filesystem_error"}if(!n){Lt(`[pm] warning: history_drift_cache_invalidation_failed:${r}
56
+ `);return}try{await Bn.rm(t,{force:!0})}catch(o){let i=Wo(o);if(i==="ENOENT")return;let s=i===void 0?"unknown":Ho[i]??"filesystem_error";Lt(`[pm] warning: history_drift_cache_invalidation_failed:${s}
57
+ `)}}async function Ye(e){let t=Ae.dirname(Ae.resolve(e));Ae.basename(t)==="history"&&await Vc(Ae.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]="5228a53a-603c-5c9f-870b-8ea8e0c5d27a")}catch{}})();var Xc={front_matter:{},body:""};function Kc(e){return!e||e==="/"?[]:e.startsWith("/")?e.slice(1).split("/").map(t=>t.replaceAll("~1","/").replaceAll("~0","~")):[]}function Jc(e,t){let n=Kc(t);if(n.length===0)return!0;let r=e;for(let o of n){if(Array.isArray(r)){if(o==="-"||!/^(0|[1-9]\d*)$/.test(o))return!1;let s=Number(o);if(!Number.isInteger(s)||s<0||s>=r.length)return!1;let a=r[s];if(a===void 0)return!1;r=a;continue}if(typeof r!="object"||r===null||!Object.prototype.hasOwnProperty.call(r,o))return!1;let i=r[o];if(i===void 0)return!1;r=i}return!0}function Yc(e,t){let n=[],r=structuredClone(e);for(let o of t){let i=o.op==="replace"&&!Jc(r,o.path)?{...o,op:"add"}:o;n.push(i),r=Go.applyPatch(r,[i],!0,!0).newDocument}return n}function Vn(e){if(!(e.metadata&&Object.keys(e.metadata).length>0))return{front_matter:{},body:e.body??""};let n=q(e);return{front_matter:E(n.metadata,ne),body:n.body}}function qo(e){if(!(e.metadata&&Object.keys(e.metadata).length>0))return{metadata:{},body:e.body??""};let n=q(e);return{metadata:E(n.metadata,ne),body:n.body}}function Xo(e){return _e(G(Vn(e)))}function y_(){return _e(G(Xc))}function Re(e){let t=Vn(e.before),n=Vn(e.after),r=qo(e.before),o=qo(e.after),i=Go.compare(r,o),s=Yc(r,i),a=oo(e.author);return{ts:e.nowIso,author:e.author,author_source:e.authorSource??ro(e.author),...a.harness?{agent_harness:a.harness}:{},...a.model?{agent_model:a.model}:{},...a.model_source?{agent_model_source:a.model_source}:{},...a.instance?{agent_instance:a.instance}:{},...a.provenance?{agent_provenance:a.provenance}:{},...a.episode?{agent_episode:a.episode}:{},op:e.op,patch:s,before_hash:_e(G(t)),after_hash:_e(G(n)),message:e.message===void 0?void 0:e.message,...e.context===void 0?{}:{context:e.context}}}function Bo(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Qc(e){let t=e.ts.trim();return t.length>0?t:he()}function Vo(e,t){let n=e.ts;return typeof n=="string"&&n.trim().length>0?e:{...e,ts:t}}function Pt(e,t){let n=Qc(t);if(typeof e=="string"){try{let r=JSON.parse(e);if(Bo(r))return JSON.stringify(Vo(r,n))}catch{}return e}return Bo(e)?JSON.stringify(Vo(e,n)):JSON.stringify(e)}async function Ne(e,t){let n=await Z("history_append",{history_path:e,entry:t});if(n.handled){if(n.result===!1)return;if(typeof n.result=="string"){await Fe(e,Pt(n.result,t)),await Ye(e),await Dt(e);return}if(typeof n.result=="object"&&n.result!==null){let r=n.result;if(r.skip===!0)return;let o=typeof r.history_path=="string"?r.history_path:e;if(typeof r.line=="string"){await Fe(o,Pt(r.line,t)),await Ye(o),await Dt(o);return}await Fe(o,Pt(r.entry??t,t)),await Ye(o),await Dt(o);return}}await Fe(e,Pt(t,t)),await Ye(e),await jo(e,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]="c8668470-7e57-5dee-8e41-298e7c697b77")}catch{}})();var Zc={metadata:{},body:""};function Ft(){return structuredClone(Zc)}function jt(e){if(Object.keys(e.metadata).length===0||Array.isArray(e.metadata.tags))try{return Xo($t(e))}catch{}return _e(G({replay_fallback:!0,metadata:e.metadata,body:e.body}))}function $t(e){return{metadata:e.metadata,body:e.body}}function v_(e,t={}){return q($t(e),t)}function I_(e){if(!e.metadata||Object.keys(e.metadata).length===0)return{metadata:{},body:e.body??""};let t=q(e);return{metadata:E(t.metadata,ne),body:t.body}}function Ko(e){return e==="/front_matter"?"/metadata":e.startsWith("/front_matter/")?`/metadata/${e.slice(14)}`:e}function ed(e){return typeof e=="object"&&e!==null&&typeof e.op=="string"&&typeof e.path=="string"}function Yo(e){return Array.isArray(e)?e.filter(ed).map(t=>({...t,path:Ko(t.path),from:typeof t.from=="string"?Ko(t.from):void 0})):[]}function td(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 zt(e,t){try{let n=Yo(t),r=Gn.applyPatch(structuredClone(e),n,!0,!1).newDocument;return td(r)?{ok:!0,document:{metadata:r.metadata,body:r.body}}:{ok:!1,error:new Error("history_replay_invalid_document_shape")}}catch(n){return{ok:!1,error:n}}}function Xn(e){let t=Ft();for(let n=0;n<e.length;n+=1){let r=e[n];if(jt(t)!==r.before_hash)return{ok:!1,errors:[`verify_failed:before_hash_mismatch:entry_${n+1}`]};let o=zt(t,r.patch);if(!o.ok)return{ok:!1,errors:[`verify_failed:patch_apply_failed:entry_${n+1}`]};if(t=o.document,jt(t)!==r.after_hash)return{ok:!1,errors:[`verify_failed:after_hash_mismatch:entry_${n+1}`]}}return{ok:!0,errors:[]}}function Jo(e,t){try{return{ok:!0,document:Gn.applyPatch(structuredClone(e),[t],!0,!1).newDocument}}catch{return{ok:!1}}}function nd(e,t){let n=structuredClone(e),r=0,o=0;for(let a of Yo(t)){let d=Jo(n,a);if(d.ok){n=d.document;continue}if(a.op==="replace"){let l=Jo(n,{...a,op:"add"});if(l.ok){n=l.document,r+=1;continue}}o+=1}let i=n;return{document:{metadata:typeof i.metadata=="object"&&i.metadata!==null?i.metadata:{},body:typeof i.body=="string"?i.body:e.body},convertedReplaceToAdd:r,skippedOps:o}}function x_(e){let t=Ft(),n=[],r=[],o=0,i=0,s=0,a=0;for(let d=0;d<e.length;d+=1){let l=e[d],m=jt(t),f=zt(t,l.patch),h,_,S=!1,v=0,w=0;if(f.ok)h=f.document,_=l.patch;else{let J=nd(t,l.patch);h=J.document,_=Gn.compare(t,h),S=!0,v=J.convertedReplaceToAdd,w=J.skippedOps,s+=v,a+=w,i+=1}let R=jt(h),N=m!==l.before_hash||R!==l.after_hash;N&&(o+=1),n.push({...l,patch:_,before_hash:m,after_hash:R}),r.push({index:d+1,rehashed:N,patch_repaired:S,converted_replace_to_add:v,skipped_ops:w}),t=h}return{entries:n,finalDocument:t,entriesRehashed:o,entriesPatchRepaired:i,convertedReplaceToAdd:s,skippedOps:a,details:r}}function T_(e){return e.length===0?"":`${e.map(t=>JSON.stringify(t)).join(`
58
+ `)}
59
+ `}import rd from"node:crypto";import Qo 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]="50a277b9-d530-5aa0-8bd0-8eb0d36911e5")}catch{}})();function ei(e){let t=(e??"").trim().toLowerCase();return t?t.endsWith("-")?t:`${t}-`:"pm-"}function Kn(e){let t=e.trim().toLowerCase();return t.startsWith("#")&&(t=t.slice(1)),t}function Jn(e,t){let n=ei(t),r=Kn(e);return r.startsWith(n)?r:`${n}${r}`}function od(e){let t=uo(e);if(t!==void 0)return t;let n="";for(let r=0;r<e;r+=1)n+=rd.randomInt(0,36).toString(36);return n}async function id(e,t,n){let r=[...new Set(Object.values(n))].flatMap(o=>[Qo.join(e,o,`${t}.md`),Qo.join(e,o,`${t}.toon`)]);return(await Promise.all(r.map(o=>pt(o)))).some(Boolean)}var Zo=4,ti=12;function sd(e){return typeof e!="number"||!Number.isFinite(e)?Zo:Math.min(ti,Math.max(Zo,Math.trunc(e)))}async function M_(e,t,n={}){let r=sd(n.tokenLength),o=Math.min(r+6,ti),i=0;for(;r<=o;){for(let s=0;s<32;s+=1){let a=`${ei(t)}${od(r)}`;if(n.probeExisting===!1||!await id(e,a,n.typeToFolder??me))return a;i+=1}r+=1}throw new Error(`Unable to generate unique id after ${i} attempts`)}import be from"node:fs/promises";import ri from"node:path";import{randomUUID as ad}from"node:crypto";import{createRequire as cd}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]="e94075b0-810d-506c-b6a2-ae322526c078")}catch{}})();var dd="metadata-query-index.sqlite",Qe="4";function ld(e){try{return e(["node","sqlite"].join(":")).DatabaseSync??null}catch{return null}}var Ut;function ud(e,t){let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>=22?ld(t):null}function Ze(){return Ut!==void 0||(Ut=ud(process.versions.node,cd(import.meta.url))),Ut}function ni(e,t){return Math.max(0,Math.floor(e===void 0?t:e))}function De(e){return ri.join(e,"runtime",dd)}function fd(e){e.exec(`
60
+ PRAGMA foreign_keys = ON;
61
+ PRAGMA journal_mode = OFF;
62
+ PRAGMA synchronous = OFF;
63
+ CREATE TABLE metadata (
64
+ key TEXT PRIMARY KEY,
65
+ value TEXT NOT NULL
66
+ ) STRICT;
67
+ CREATE TABLE items (
68
+ id TEXT PRIMARY KEY,
69
+ relative_path TEXT NOT NULL UNIQUE,
70
+ metadata_json TEXT NOT NULL,
71
+ status TEXT NOT NULL,
72
+ type TEXT NOT NULL,
73
+ priority INTEGER NOT NULL,
74
+ updated_at TEXT NOT NULL,
75
+ created_at TEXT NOT NULL,
76
+ parent TEXT,
77
+ assignee TEXT,
78
+ sprint TEXT,
79
+ release TEXT
80
+ ) STRICT;
81
+ CREATE INDEX items_default_order
82
+ ON items(priority, updated_at DESC, id);
83
+ CREATE INDEX items_status_default_order
84
+ ON items(status, priority, updated_at DESC, id);
85
+ CREATE INDEX items_type_default_order
86
+ ON items(type, priority, updated_at DESC, id);
87
+ CREATE INDEX items_parent_default_order
88
+ ON items(parent, priority, updated_at DESC, id);
89
+ CREATE TABLE item_metadata_keys (
90
+ item_id TEXT NOT NULL,
91
+ key TEXT NOT NULL,
92
+ PRIMARY KEY(item_id, key),
93
+ FOREIGN KEY(item_id) REFERENCES items(id) ON DELETE CASCADE
94
+ ) STRICT;
95
+ CREATE INDEX item_metadata_keys_key_item
96
+ ON item_metadata_keys(key, item_id);
97
+ CREATE TABLE item_linked_files (
98
+ item_id TEXT NOT NULL,
99
+ path TEXT NOT NULL,
100
+ scope TEXT NOT NULL,
101
+ note TEXT,
102
+ PRIMARY KEY(item_id, path, scope),
103
+ FOREIGN KEY(item_id) REFERENCES items(id) ON DELETE CASCADE
104
+ ) STRICT;
105
+ CREATE INDEX item_linked_files_path_scope_item
106
+ ON item_linked_files(path, scope, item_id);
107
+ CREATE VIRTUAL TABLE item_search USING fts5(
108
+ id UNINDEXED,
109
+ title,
110
+ description,
111
+ tags,
112
+ tokenize = 'unicode61'
113
+ );
114
+ `)}function Wt(e,t,n){e.prepare("INSERT INTO metadata(key, value) VALUES (?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value").run(t,n)}function oi(e,t){let n=t.metadata;e.prepare(`INSERT INTO items(
115
+ id, relative_path, metadata_json, status, type, priority,
116
+ updated_at, created_at, parent, assignee, sprint, release
117
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
118
+ ON CONFLICT(id) DO UPDATE SET
119
+ relative_path = excluded.relative_path,
120
+ metadata_json = excluded.metadata_json,
121
+ status = excluded.status,
122
+ type = excluded.type,
123
+ priority = excluded.priority,
124
+ updated_at = excluded.updated_at,
125
+ created_at = excluded.created_at,
126
+ parent = excluded.parent,
127
+ assignee = excluded.assignee,
128
+ sprint = excluded.sprint,
129
+ release = excluded.release`).run(n.id,t.relativePath,JSON.stringify(n),n.status,n.type,n.priority,n.updated_at,n.created_at,n.parent??null,n.assignee??null,n.sprint??null,n.release??null),e.prepare("DELETE FROM item_metadata_keys WHERE item_id = ?").run(n.id),e.prepare("DELETE FROM item_linked_files WHERE item_id = ?").run(n.id),e.prepare("DELETE FROM item_search WHERE id = ?").run(n.id),e.prepare("INSERT INTO item_search(id, title, description, tags) VALUES (?, ?, ?, ?)").run(n.id,n.title,n.description,n.tags.join(" "));let r=e.prepare("INSERT INTO item_metadata_keys(item_id, key) VALUES (?, ?)");for(let i of Object.keys(n))r.run(n.id,i);let o=e.prepare("INSERT INTO item_linked_files(item_id, path, scope, note) VALUES (?, ?, ?, ?)");for(let i of t.linkedFiles??[])o.run(n.id,i.path,i.scope,i.note??null)}async function ii(e){let t=De(e.pmRoot),n=Ze();if(!n){await be.rm(t,{force:!0});return}await be.mkdir(ri.dirname(t),{recursive:!0});let r=`${t}.${ad()}.tmp`,o;try{o=new n(r),fd(o),o.exec("BEGIN IMMEDIATE"),Wt(o,"version",Qe),Wt(o,"context_fingerprint",e.contextFingerprint),Wt(o,"source_cursor",e.sourceCursor);for(let i of e.rows)oi(o,i);o.exec("COMMIT"),o.close(),o=void 0,await be.rm(t,{force:!0}),await be.rename(r,t)}catch(i){throw o?.close(),await Promise.allSettled([be.rm(r,{force:!0})]),i}}function qt(e){return Object.fromEntries(e.prepare("SELECT key, value FROM metadata").all().map(t=>[String(t.key),String(t.value)]))}async function si(e){let t=De(e.pmRoot),n;try{await be.access(t);let r=Ze();if(!r)return!1;n=new r(t),n.exec("PRAGMA foreign_keys = ON");let o=qt(n);if(o.version!==Qe||o.context_fingerprint!==e.contextFingerprint||o.source_cursor!==e.expectedSourceCursor)return n.close(),!1;n.exec("BEGIN IMMEDIATE");let i=n.prepare("DELETE FROM items WHERE relative_path = ?"),s=n.prepare("SELECT id FROM items WHERE relative_path = ?"),a=n.prepare("DELETE FROM item_search WHERE id = ?");for(let d of e.deletedRelativePaths??[]){let l=s.get(d);i.run(d),l&&a.run(l.id)}return e.row&&oi(n,e.row),Wt(n,"source_cursor",e.sourceCursor),n.exec("COMMIT"),n.close(),!0}catch{try{n?.exec("ROLLBACK")}catch{}return n?.close(),!1}}function Ht(e,t,n,r,o){!r||r.length===0||(e.push(`${n} ${o} (${r.map(()=>"?").join(", ")})`),t.push(...r))}function md(e){let t=[],n=[];Ht(t,n,"status",e.statuses,"IN"),Ht(t,n,"status",e.excludeStatuses,"NOT IN"),Ht(t,n,"type",e.types,"IN"),Ht(t,n,"id",e.ids,"IN");for(let r of e.metadataKeys??[])t.push("EXISTS (SELECT 1 FROM item_metadata_keys AS indexed_key WHERE indexed_key.item_id = items.id AND indexed_key.key = ?)"),n.push(r);for(let[r,o]of[["parent",e.parent],["assignee",e.assignee],["sprint",e.sprint],["release",e.release]])o!==void 0&&(t.push(`${r} = ?`),n.push(o));return e.priority!==void 0&&(t.push("priority = ?"),n.push(e.priority)),{where:t.length===0?"":` WHERE ${t.join(" AND ")}`,parameters:n}}async function z_(e){let t=Ze();if(!t)return null;let n=e.query??{},{where:r,parameters:o}=md(n),i;try{i=new t(De(e.pmRoot),{readOnly:!0});let s=qt(i);if(s.version!==Qe||s.source_cursor!==e.expectedSourceCursor)return i.close(),null;let a=i.prepare(`SELECT COUNT(*) AS count FROM items${r}`).get(...o),d=[],l="";n.limit!==void 0?(l+=" LIMIT ?",d.push(Math.max(0,Math.floor(n.limit))),n.offset!==void 0&&(l+=" OFFSET ?",d.push(Math.max(0,Math.floor(n.offset))))):n.offset!==void 0&&(l+=" LIMIT -1 OFFSET ?",d.push(Math.max(0,Math.floor(n.offset))));let f=i.prepare(`SELECT metadata_json FROM items${r}
130
+ ORDER BY ${n.terminalStatuses&&n.terminalStatuses.length>0?`CASE WHEN status IN (${n.terminalStatuses.map(()=>"?").join(", ")}) THEN 1 ELSE 0 END ASC, `:""}priority ASC, updated_at DESC, id ASC${l}`).all(...o,...n.terminalStatuses??[],...d).map(h=>{let _=JSON.parse(String(h.metadata_json));if(!_.id)throw new TypeError("Indexed metadata row has no id");return _});return i.close(),{source_cursor:s.source_cursor,total:Number(a.count),items:f}}catch{return i?.close(),null}}async function U_(e){let t=Ze();if(!t||e.paths.length===0)return null;let n;try{n=new t(De(e.pmRoot),{readOnly:!0});let r=qt(n);if(r.version!==Qe||r.source_cursor!==e.expectedSourceCursor)return n.close(),null;let o=e.paths.map(()=>"?").join(", "),i=e.scope===void 0?"":" AND scope = ?",s=[...e.paths,...e.scope===void 0?[]:[e.scope]],a=`path IN (${o})${i}`,d=n.prepare(`SELECT COUNT(DISTINCT item_id) AS count
131
+ FROM item_linked_files
132
+ WHERE ${a}`).get(...s),l=ni(e.limit,50),m=ni(e.offset,0),f=n.prepare(`SELECT items.id, items.metadata_json
133
+ FROM items
134
+ WHERE EXISTS (
135
+ SELECT 1 FROM item_linked_files
136
+ WHERE item_linked_files.item_id = items.id AND ${a}
137
+ )
138
+ ORDER BY items.priority ASC, items.updated_at DESC, items.id ASC
139
+ LIMIT ? OFFSET ?`).all(...s,l,m),h=[];if(f.length>0){let _=f.map(w=>String(w.id)),S=n.prepare(`SELECT item_id, path, scope, note
140
+ FROM item_linked_files
141
+ WHERE item_id IN (${_.map(()=>"?").join(", ")})
142
+ AND ${a}
143
+ ORDER BY path ASC, scope ASC`).all(..._,...s),v=new Map(_.map(w=>[w,[]]));for(let w of S){let R=String(w.item_id),N=v.get(R);N.push({path:String(w.path),scope:String(w.scope),...w.note===null?{}:{note:String(w.note)}}),v.set(R,N)}for(let w of f){let R=JSON.parse(String(w.metadata_json));h.push({item:R,files:v.get(String(w.id))})}}return n.close(),{source_cursor:r.source_cursor,total:Number(d.count),matches:h}}catch{return n?.close(),null}}async function H_(e){let t=Ze();if(!t)return null;let n;try{n=new t(De(e.pmRoot),{readOnly:!0});let r=qt(n);if(r.version!==Qe||r.source_cursor!==e.expectedSourceCursor)return n.close(),null;let i=n.prepare(`SELECT items.metadata_json
144
+ FROM item_search
145
+ JOIN items ON items.id = item_search.id
146
+ WHERE item_search MATCH ?
147
+ ORDER BY bm25(item_search), items.priority, items.updated_at DESC, items.id
148
+ LIMIT ?`).all(e.query,Math.max(0,Math.floor(e.limit))).map(s=>JSON.parse(String(s.metadata_json)));return n.close(),{source_cursor:r.source_cursor,items:i}}catch{return n?.close(),null}}async function Bt(e){await be.rm(De(e),{force:!0})}import P from"node:fs/promises";import A from"node:path";import{createHash as Ld,randomUUID as Ei}from"node:crypto";import te from"node:fs/promises";import Yn from"node:path";import{randomUUID as _d}from"node:crypto";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="c638b65d-148a-5b42-8f24-d6fa9d5ac7d3")}catch{}})();function pd(e){let t;try{t=JSON.parse(e)}catch{return{info:null,warnings:["lock_info_invalid_json"]}}if(typeof t!="object"||t===null||Array.isArray(t))return{info:null,warnings:["lock_info_invalid_shape"]};let n=t,r=n.id,o=n.pid,i=n.owner,s=n.created_at,a=n.ttl_seconds;return typeof r!="string"||typeof o!="number"||!Number.isFinite(o)||typeof i!="string"||typeof s!="string"||typeof a!="number"||!Number.isFinite(a)?{info:null,warnings:["lock_info_invalid_shape"]}:{info:{id:r,pid:o,owner:i,created_at:s,ttl_seconds:a},warnings:[]}}async function li(e){try{let t=await te.readFile(e,"utf8");return await X({path:e,scope:"project"}),pd(t)}catch(t){return et(t,"ENOENT")?{info:null,warnings:[]}:{info:null,warnings:["lock_info_read_failed"]}}}function et(e,t){return typeof e=="object"&&e!==null&&"code"in e&&e.code===t}async function ui(e,t){await B({path:e,scope:"project",op:t})}function yd(e,t,n){return{id:e,pid:process.pid,owner:t,created_at:he(),ttl_seconds:n}}async function hd(e,t,n,r){await te.mkdir(Yn.dirname(e),{recursive:!0});let o=await te.open(e,"wx");try{await o.writeFile(`${JSON.stringify(yd(t,n,r),null,2)}
149
+ `,"utf8")}finally{await o.close()}await ui(e,"lock:create")}async function fi(e,t){try{return await te.unlink(e),await ui(e,t),!0}catch{return!1}}function mi(e,t){let n=e?.created_at?Date.parse(e.created_at):Number.NaN;return(Number.isFinite(n)?Date.now()-n:Number.POSITIVE_INFINITY)>t*1e3}function gd(e){return e?.owner?` (owner ${e.owner})`:""}var bd=25,wd=200,Ed=250,kd=3,Sd=".stale-cleanup",_i="owner.json",vd=1e4,Id=5*6e4;function ai(e){if(typeof e=="string"){let t=e.trim();if(!/^\d+$/.test(t))return;let n=Number(t);return Number.isSafeInteger(n)?n:void 0}if(typeof e=="number"&&Number.isFinite(e)&&e>=0)return Math.trunc(e)}function xd(e){let t=process.env.PM_LOCK_WAIT_MS,n=ai(t);if(n!==void 0)return n;let r=ai(e);return r!==void 0?r:0}function Td(e){let t=Math.max(1,Math.round(e*(.5+Math.random())));return new Promise(n=>setTimeout(n,t))}function pi(e,t,n){let r=n>0?` after waiting ${n}ms`:"";return new T(`Item ${e} is locked${gd(t)}${r}`,I.CONFLICT,{code:"lock_conflict",recovery:{retry_after_ms:Ed}})}function Od(e){if(typeof e=="function")return e;if(typeof e=="object"&&e!==null&&"release"in e){let t=e.release;return typeof t=="function"?t:null}return null}function Cd(e,t,n,r){if(!n&&r){let o=t.warnings.length>0?` (${t.warnings.join(",")})`:"";throw new T(`Item ${e} lock is stale${o}; rerun with --force when supported for this command`,I.CONFLICT)}}function Ad(e){let t;try{t=JSON.parse(e)}catch{return null}if(typeof t!="object"||t===null||Array.isArray(t))return null;let n=t,r=n.pid,o=n.token;return typeof r!="number"||!Number.isInteger(r)||r<=0||typeof o!="string"||o.length===0?null:{pid:r,token:o}}async function yi(e){try{return Ad(await te.readFile(Yn.join(e,_i),"utf8"))}catch{return null}}function Rd(e){try{return process.kill(e,0),!0}catch(t){return!et(t,"ESRCH")}}async function Qn(e){try{return await te.rm(e,{recursive:!0,force:!0}),!0}catch{return!1}}async function ci(e,t){let n=await yi(e);n===null||n.token!==t||await Qn(e)}async function di(e){try{await te.mkdir(e)}catch(n){return et(n,"EEXIST"),null}let t={pid:process.pid,token:_d()};try{await te.writeFile(Yn.join(e,_i),`${JSON.stringify(t)}
150
+ `,"utf8")}catch{return await Qn(e),null}return t}async function Nd(e){let t;try{let r=await te.stat(e);if(t=Date.now()-r.mtimeMs,t<=vd)return!1}catch(r){return et(r,"ENOENT")}let n=await yi(e);return n!==null&&Rd(n.pid)&&t<=Id?!1:Qn(e)}async function Dd(e,t){let n=`${e}${Sd}`,r=await di(n);if(r!==null)return async()=>ci(n,r.token);if(!await Nd(n))return null;let o=await di(n);return o===null?null:async()=>ci(n,o.token)}async function Md(e){let t=await Dd(e.lockPath,e.id);if(t===null)return{lockInfo:e.fallbackLockInfo,shouldRetryCreate:!1,staleRemovalCounted:!1};try{let n=await li(e.lockPath);if(n.info===null&&n.warnings.length===0)return{lockInfo:n,shouldRetryCreate:!0,staleRemovalCounted:!1};if(!mi(n.info,e.ttlSeconds))return{lockInfo:n,shouldRetryCreate:!1,staleRemovalCounted:!1};if(Cd(e.id,n,e.force,e.forceRequiredForStaleLock),e.staleRemovals>=kd)throw pi(e.id,n.info,Date.now()-e.startedAtMs);return{lockInfo:n,shouldRetryCreate:await fi(e.lockPath,"lock:stale_remove"),staleRemovalCounted:!0}}finally{await t()}}async function ae(e,t,n,r,o=!1,i=!0,s){let a=await Z("lock_acquire",{pm_root:e,id:t,ttl_seconds:n,owner:r,force:o,force_required_for_stale_lock:i});if(a.handled){let _=Od(a.result);if(_)return async()=>{await Promise.resolve(_()),await Z("lock_release",{pm_root:e,id:t,owner:r})}}let d=Ar(e,t),l=xd(s),m=Date.now(),f=0,h=bd;for(;;)try{return await hd(d,t,r,n),async()=>{await fi(d,"lock:release"),await Z("lock_release",{pm_root:e,id:t,owner:r})}}catch(_){if(!et(_,"EEXIST"))throw new T(`Failed to acquire lock for ${t}: ${Rr(_)}`,I.GENERIC_FAILURE);let S=await li(d);if(mi(S.info,n)){let w=await Md({lockPath:d,id:t,ttlSeconds:n,force:o,forceRequiredForStaleLock:i,staleRemovals:f,waitBudgetMs:l,startedAtMs:m,fallbackLockInfo:S});if(S=w.lockInfo,w.staleRemovalCounted&&(f+=1),w.shouldRetryCreate)continue}let v=Date.now()-m;if(l===0||v>=l)throw pi(t,S.info,l===0?0:v);await Td(Math.min(h,l-v)),h=Math.min(h*2,wd)}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="8ed70856-9cba-599d-8b53-21a981af1f40")}catch{}})();var K=8,ki=500,Pd="metadata-derived-index",jd="metadata-cache.json",Fd="metadata-cache-bodies.json",$d="metadata-cache-collections.json",zd="metadata-cache-delta.json",Ud="metadata-cache-manifest.json",hi=4,Hd=["comments","notes","learnings","files","tests","test_runs","docs"];function Si(){return _t(Xe())}function Gt(e){let t={...e},n={};for(let r of Hd)r in t&&(n[r]=t[r],delete t[r]);return{light:t,heavy:n}}function vi(e,t){return!t||Object.keys(t).length===0?e:{...e,...t}}function Ii(e,t,n,r){let o=Ld("sha256");o.update(`format:${e??"default"}`);let i=Object.entries(t).sort(([s],[a])=>s.localeCompare(a)).map(([s,a])=>`${s}=${a}`).join(",");return o.update(`|types:${i}`),n&&o.update(`|schema:${JSON.stringify(n)}`),r.length>0&&o.update(`|extension_fields:${r.join(",")}`),o.digest("hex").slice(0,16)}function Xt(e){return A.join(e,"runtime",jd)}function Kt(e){return A.join(e,"runtime",Fd)}function Jt(e){return A.join(e,"runtime",$d)}function er(e){return A.join(e,"runtime",zd)}function tr(e){return A.join(e,"runtime",Ud)}function Yt(e,t){let n=A.extname(e);return`${e.slice(0,-n.length)}.${t}${n}`}var Wd=24,H=new Map,Qt=new WeakMap;function nr(e){return Qt.get(e)??e.source_cursor}function qd(e,t){let n=nr(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){Qt.set(e,n);for(let[r,o]of Object.entries(t.changes))o.entry?e.entries[r]=o.entry:delete e.entries[r];e.directory_signatures=t.directory_signatures,e.source_cursor=t.source_cursor}}function Bd(e,t){if(!e)return;let n=nr(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){Qt.set(e,n);for(let[r,o]of Object.entries(t.changes))o.body?e.bodies[r]=o.body:delete e.bodies[r];e.source_cursor=t.source_cursor}}function Vd(e,t){if(!e)return;let n=nr(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){Qt.set(e,n);for(let[r,o]of Object.entries(t.changes))o.collections?e.collections[r]=o.collections:delete e.collections[r];e.source_cursor=t.source_cursor}}function Gd(e,t,n,r){!e||!r||e.context_fingerprint!==r.context_fingerprint||(qd(e,r),Bd(t,r),Vd(n,r))}function Zn(e,t){H.size>=Wd&&!H.has(e)&&ht(H),H.set(e,t)}async function ce(e,t){let n;try{n=await P.stat(e)}catch{return H.delete(e),null}let r=H.get(e);if(r&&tt(r.signature,n.mtimeMs,n.ctimeMs,n.size))return H.delete(e),H.set(e,r),r.envelope;let o;try{o=t(await P.readFile(e,"utf8"))}catch{o=null}return Zn(e,{signature:{mtime_ms:n.mtimeMs,ctime_ms:n.ctimeMs,size:n.size},envelope:o}),o}async function Xd(e,t,n){let r=a=>{let d=JSON.parse(a);return d.version!==K||typeof d.source_cursor!="string"||typeof d.entries!="object"||d.entries===null?null:d},o=Xt(e),i=await ce(o,r);if(!t||i===null||i.context_fingerprint===t)return i;let s=await ce(Yt(o,t),r);return s===null&&ot(n,`metadata_cache_context_changed:${i.context_fingerprint}->${t}`),s}async function Kd(e,t){let n=i=>{let s=JSON.parse(i);return s.version!==K||typeof s.source_cursor!="string"||typeof s.bodies!="object"||s.bodies===null?null:s},r=Kt(e),o=await ce(r,n);return t&&o?.context_fingerprint!==t?await ce(Yt(r,t),n):o}async function Jd(e,t){let n=i=>{let s=JSON.parse(i);return s.version!==K||typeof s.source_cursor!="string"||typeof s.collections!="object"||s.collections===null?null:s},r=Jt(e),o=await ce(r,n);return t&&o?.context_fingerprint!==t?await ce(Yt(r,t),n):o}async function rr(e){let t=er(e),n=await ce(t,r=>{let o=JSON.parse(r);return o.version!==K||typeof o.base_source_cursor!="string"||typeof o.source_cursor!="string"||typeof o.changes!="object"||o.changes===null?null:o});if(n)return{envelope:n,invalid:!1};try{return await P.stat(t),{envelope:null,invalid:!0}}catch{return{envelope:null,invalid:!1}}}async function or(e){let t=tr(e),n=await ce(t,r=>{let o=JSON.parse(r);return o.version!==K||typeof o.context_fingerprint!="string"||typeof o.source_cursor!="string"||!Number.isInteger(o.entry_count)||o.entry_count<0||typeof o.directory_signatures!="object"||o.directory_signatures===null?null:o});if(n)return n;try{await P.stat(t),await Me(e)}catch{}return null}async function nt(e,t){await P.mkdir(A.dirname(e),{recursive:!0}),await W(e,JSON.stringify(t));try{let r=await P.stat(e);Zn(e,{signature:{mtime_ms:r.mtimeMs,ctime_ms:r.ctimeMs,size:r.size},envelope:t})}catch{H.delete(e)}let n=A.dirname(A.dirname(e));if(e===Xt(n)||e===Kt(n)||e===Jt(n)){let r=Yt(e,t.context_fingerprint);await W(r,JSON.stringify(t));try{let d=await P.stat(r);Zn(r,{signature:{mtime_ms:d.mtimeMs,ctime_ms:d.ctimeMs,size:d.size},envelope:t})}catch{H.delete(r)}let o=A.dirname(e),i=A.extname(e),s=A.basename(e,i),a=(await P.readdir(o,{withFileTypes:!0}).catch(()=>[])).filter(d=>d.isFile()&&d.name!==A.basename(e)&&d.name.startsWith(`${s}.`)&&d.name.endsWith(i)).map(d=>A.join(o,d.name));if(a.length>hi){let d=(await Promise.all(a.map(async l=>{try{return{path:l,mtime:(await P.stat(l)).mtimeMs}}catch{return null}}))).filter(l=>l!==null);for(let l of d.sort((m,f)=>m.mtime-f.mtime).slice(0,Math.max(0,d.length-hi)))await P.rm(l.path,{force:!0}),H.delete(l.path)}}}function Yd(e,t,n){return n?t===n&&e!==n:t==="toon"&&e!=="toon"}function xi(e,t,n){return e===void 0||Yd(e,t,n)}function ot(e,t){e&&!e.includes(t)&&e.push(t)}function tt(e,t,n,r){return e.mtime_ms===t&&e.ctime_ms===n&&e.size===r}async function Qd(e,t,n){let r=A.join(e,t);try{let o=await P.readdir(r);return{folder:t,dirPath:r,files:o}}catch(o){return typeof o=="object"&&o!==null&&"code"in o&&o.code!=="ENOENT"&&ot(n,`item_list_directory_read_failed:${t}`),{folder:t,dirPath:r,files:[]}}}async function Zd(e,t){try{let n=await P.stat(A.join(e,t));return[t,{exists:!0,mtime_ms:n.mtimeMs,ctime_ms:n.ctimeMs,size:n.size}]}catch{return[t,{exists:!1,mtime_ms:0,ctime_ms:0,size:0}]}}async function Vt(e,t){return Object.fromEntries(await Promise.all(t.map(async n=>await Zd(e,n))))}function rt(e,t){return!e||Object.keys(e).length!==Object.keys(t).length?!1:Object.entries(t).every(([n,r])=>{let o=e[n];return o!==void 0&&o.exists===r.exists&&tt(o,r.mtime_ms,r.ctime_ms,r.size)})}function el(e){return yt.some(t=>e.toLowerCase().endsWith(t))}function tl(e,t,n,r,o,i){r||(e.metadata=!0),t&&!o&&(e.body=!0),n&&!i&&(e.collections=!0)}async function nl(e,t,n){if(n)for(let r of await X({path:e,scope:"project"}))ot(t,r)}function gi(e,t,n,r){if(e)return t&&n?n.collections:r}async function rl(e,t,n){let r=await P.stat(e),o=r.mtimeMs,i=r.ctimeMs,{size:s}=r,a=pn(e);await nl(e,n.warnings,n.dispatchReadHooks);let d=n.previousEntries[t],l=d!==void 0&&tt(d,o,i,s),m=n.previousBodies[t],f=m!==void 0&&tt(m,o,i,s),h=n.previousCollections[t],_=h!==void 0&&tt(h,o,i,s);if(!(!l||n.includeBody&&!f||n.includeCollections&&!_))return{mtimeMs:o,ctimeMs:i,size:s,itemFormat:a,lightMetadata:d.metadata,heavyMetadata:gi(n.includeCollections,_,h,void 0),bodyLength:d.body_length,body:n.includeBody?m.body:void 0};let v=await P.readFile(e,"utf8"),w=Ot(v,{format:a,schema:n.schema,extensionFieldNames:n.extensionFieldNames,onWarning:N=>ot(n.warnings,N)}),R=Gt(w.metadata);return tl(n.state.misses,n.includeBody,n.includeCollections,l,f,_),{mtimeMs:o,ctimeMs:i,size:s,itemFormat:a,lightMetadata:l?d.metadata:R.light,heavyMetadata:gi(n.includeCollections,_,h,R.heavy),bodyLength:l?d.body_length:w.body.length,body:n.includeBody?w.body:void 0}}function ol(e,t,n,r){n.state.newEntries[t]={mtime_ms:r.mtimeMs,ctime_ms:r.ctimeMs,size:r.size,metadata:r.lightMetadata,body_length:r.bodyLength},n.includeBody&&r.body!==void 0&&(n.state.newBodies[t]={mtime_ms:r.mtimeMs,ctime_ms:r.ctimeMs,size:r.size,body:r.body}),n.includeCollections&&r.heavyMetadata!==void 0&&(n.state.newCollections[t]={mtime_ms:r.mtimeMs,ctime_ms:r.ctimeMs,size:r.size,collections:r.heavyMetadata});let o=n.includeCollections?vi(r.lightMetadata,r.heavyMetadata):r.lightMetadata,i=n.state.documentsById.get(o.id),s={metadata:o,body:r.body,item_format:r.itemFormat,item_path:e};xi(i?.itemFormat,r.itemFormat,n.preferredFormat)&&n.state.documentsById.set(o.id,{candidate:s,itemFormat:r.itemFormat})}async function il(e,t,n,r){try{let o=await rl(t,n,r);ol(t,n,r,o)}catch{ot(r.warnings,`item_list_item_read_failed:${e}/${A.basename(t)}`)}}function sl(e,t){return e&&e.context_fingerprint===t?e.entries:{}}function al(e,t){return e&&e.context_fingerprint===t?e.bodies:{}}function cl(e,t){return e&&e.context_fingerprint===t?e.collections:{}}function dl(){return{newEntries:{},newBodies:{},newCollections:{},documentsById:new Map,misses:{metadata:!1,body:!1,collections:!1}}}function ll(e,t){let n=[];for(let{folder:r,dirPath:o,files:i}of e)for(let s of i){if(!el(s))continue;let a=A.join(o,s),d=A.relative(t.pmRoot,a);n.push(il(r,a,d,t))}return n}async function ul(e){if(!(!(e.state.misses.metadata||Object.keys(e.previousEntries).length!==Object.keys(e.state.newEntries).length||!rt(e.existingCache?.directory_signatures,e.directorySignatures))&&e.existingCache!==null&&e.existingCache.context_fingerprint===e.contextFingerprint))try{await nt(Xt(e.pmRoot),{version:K,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,directory_signatures:e.directorySignatures,entries:e.state.newEntries}),await nt(tr(e.pmRoot),{version:K,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,entry_count:Object.keys(e.state.newEntries).length,directory_signatures:e.directorySignatures});let n=[...e.state.documentsById.values()].map(({candidate:r})=>({relativePath:A.relative(e.pmRoot,r.item_path),metadata:Gt(r.metadata).light,linkedFiles:r.metadata.files??[]}));n.length>=e.minimumIndexedItems?await ii({pmRoot:e.pmRoot,contextFingerprint:e.contextFingerprint,sourceCursor:e.sourceCursor,rows:n}):await Bt(e.pmRoot)}catch{}}async function fl(e){!(e.state.misses.body||Object.keys(e.previousBodies).length!==Object.keys(e.state.newBodies).length)&&e.existingBodyCache!==null&&e.existingBodyCache.context_fingerprint===e.contextFingerprint||await nt(Kt(e.pmRoot),{version:K,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,bodies:e.state.newBodies}).catch(()=>{})}async function ml(e){!(e.state.misses.collections||Object.keys(e.previousCollections).length!==Object.keys(e.state.newCollections).length)&&e.existingCollectionsCache!==null&&e.existingCollectionsCache.context_fingerprint===e.contextFingerprint||await nt(Jt(e.pmRoot),{version:K,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,collections:e.state.newCollections}).catch(()=>{})}async function ir(e,t,n={}){let r=await or(e);return n.required!==!0&&(r===null||r.entry_count<ki)?async()=>{}:ae(e,Pd,30,t,!1,!1,3e3)}async function up(e,t){let n=await or(e);if(n===null)return null;let r=await rr(e);if(r.invalid)return await Me(e),null;let o=r.envelope?.context_fingerprint===n.context_fingerprint&&r.envelope.base_source_cursor===n.source_cursor?r.envelope.source_cursor:n.source_cursor,i=r.envelope?.context_fingerprint===n.context_fingerprint&&r.envelope.base_source_cursor===n.source_cursor?r.envelope.directory_signatures:n.directory_signatures;return t&&!rt(i,await Vt(e,t))?null:{source_cursor:o,entry_count:n.entry_count}}function bi(e,t){let n=A.relative(e,t);return n===""||n===".."||n.startsWith(`..${A.sep}`)||A.isAbsolute(n)?null:n}async function Me(e){await Promise.all([Xt(e),Kt(e),Jt(e),er(e),tr(e)].map(async t=>{await P.rm(t,{force:!0}),H.delete(t)})),await Bt(e)}async function _l(e){if(e.mutation.document===null)return{entry:null,body:null,collections:null};let t=await P.stat(e.mutation.itemPath),n=Gt(e.mutation.document.metadata),r={mtime_ms:t.mtimeMs,ctime_ms:t.ctimeMs,size:t.size};return{entry:{...r,metadata:n.light,body_length:e.mutation.document.body.length},body:{...r,body:e.mutation.document.body},collections:{...r,collections:n.heavy}}}function pl(e,t,n){return e?.context_fingerprint===t&&e.base_source_cursor===n?structuredClone(e.changes):{}}async function sr(e){let t=bi(e.pmRoot,e.itemPath),n=e.previousItemPath?bi(e.pmRoot,e.previousItemPath):void 0;if(t===null||n===null)return await Me(e.pmRoot),["metadata_derived_index_path_invalidated"];try{let r=Ii(e.preferredFormat,e.typeToFolder,e.schema,Si()),o=await or(e.pmRoot);if(o===null||o.context_fingerprint!==r)return[];let i=o.source_cursor,s=await rr(e.pmRoot);if(s.invalid)return await Me(e.pmRoot),["metadata_derived_index_refresh_failed"];let a=pl(s.envelope,r,i),d=s.envelope?.context_fingerprint===r&&s.envelope.base_source_cursor===i?s.envelope.source_cursor:i;n!==void 0&&(a[n]={entry:null,body:null,collections:null}),a[t]=await _l({mutation:e});let l=Ei();return await nt(er(e.pmRoot),{version:K,context_fingerprint:r,base_source_cursor:i,source_cursor:l,directory_signatures:await Vt(e.pmRoot,[...new Set(Object.values(e.typeToFolder))]),changes:a}),await si({pmRoot:e.pmRoot,contextFingerprint:r,expectedSourceCursor:d,sourceCursor:l,row:e.document===null?null:{relativePath:t,metadata:Gt(e.document.metadata).light,linkedFiles:e.document.metadata.files},deletedRelativePaths:[...n===void 0?[]:[n],...e.document===null?[t]:[]]})||await Bt(e.pmRoot),[]}catch{return await Me(e.pmRoot).catch(()=>{}),["metadata_derived_index_refresh_failed"]}}function yl(e){return[...e.documentsById.values()].sort((t,n)=>t.candidate.metadata.id.localeCompare(n.candidate.metadata.id)).map(t=>t.candidate)}function wi(e,t,n){return e?.context_fingerprint===t&&e.source_cursor===n}function hl(e,t,n,r,o){return e.every(i=>(!t||r[i]!==void 0)&&(!n||o[i]!==void 0))}function gl(e){let t=new Map;for(let[n,r]of Object.entries(e.previousEntries)){let o=pn(n);if(!o)continue;let i=e.includeCollections?vi(r.metadata,e.previousCollections[n]?.collections):r.metadata,s=t.get(i.id);xi(s?.itemFormat,o,e.preferredFormat)&&t.set(i.id,{itemFormat:o,candidate:{metadata:i,body:e.includeBody?e.previousBodies[n]?.body:void 0,item_format:o,item_path:A.join(e.pmRoot,n)}})}return[...t.values()].sort((n,r)=>n.candidate.metadata.id.localeCompare(r.candidate.metadata.id)).map(n=>n.candidate)}function bl(e){return e.forceSourceScan||Pn()||e.existingCache?.context_fingerprint!==e.contextFingerprint||e.entryKeys.length<e.minimumIndexedItems||!rt(e.existingCache?.directory_signatures,e.directorySignatures)?!1:[!e.includeBody||wi(e.existingBodyCache,e.contextFingerprint,e.existingCache.source_cursor),!e.includeCollections||wi(e.existingCollectionsCache,e.contextFingerprint,e.existingCache.source_cursor)].every(Boolean)&&hl(e.entryKeys,e.includeBody,e.includeCollections,e.previousBodies,e.previousCollections)}async function Zt(e,t,n,r,o,i={}){let s=i.includeBody!==!1,a=i.includeCollections!==!1,d=Si(),l=Ii(t,n,o,d),m=await rr(e);m.invalid&&await Me(e);let f=await Xd(e,l,i.cacheDiagnostics),h=s?await Kd(e,l):null,_=a?await Jd(e,l):null;Gd(f,h,_,m.envelope);let S=sl(f,l),v=al(h,l),w=cl(_,l),R=[...new Set(Object.values(n))],N=await Vt(e,R),J=Object.keys(S),F=Math.max(1,Math.floor(i.derivedIndexMinimumItems??ki));if(bl({forceSourceScan:i.forceSourceScan===!0,contextFingerprint:l,existingCache:f,existingBodyCache:h,existingCollectionsCache:_,directorySignatures:N,entryKeys:J,minimumIndexedItems:F,includeBody:s,includeCollections:a,previousBodies:v,previousCollections:w}))return gl({pmRoot:e,preferredFormat:t,includeBody:s,includeCollections:a,previousEntries:S,previousBodies:v,previousCollections:w});let dn=await Promise.all(R.map(_s=>Qd(e,_s,r))),at=Pn(),Y=dl(),ln={pmRoot:e,preferredFormat:t,warnings:r,schema:o,extensionFieldNames:d,includeBody:s,includeCollections:a,dispatchReadHooks:at,previousEntries:S,previousBodies:v,previousCollections:w,state:Y};await Promise.all(ll(dn,ln));let ct=await Vt(e,R),gr=rt(N,ct)?ct:{},un=Y.misses.metadata||Object.keys(S).length!==Object.keys(Y.newEntries).length||!rt(f?.directory_signatures,gr)||f===null?Ei():f.source_cursor;return await ul({pmRoot:e,contextFingerprint:l,sourceCursor:un,existingCache:f,previousEntries:S,directorySignatures:gr,state:Y,minimumIndexedItems:F}),s&&await fl({pmRoot:e,contextFingerprint:l,sourceCursor:un,existingBodyCache:h,previousBodies:v,state:Y}),a&&await ml({pmRoot:e,contextFingerprint:l,sourceCursor:un,existingCollectionsCache:_,previousCollections:w,state:Y}),yl(Y)}async function Ti(e,t,n,r,o){return(await Zt(e,t,n,r,o,{includeBody:!1})).map(s=>({metadata:s.metadata,body:s.body??""}))}async function Oi(e,t,n,r,o){return(await Zt(e,t,n,r,o,{includeBody:!1,includeCollections:!1})).map(s=>({metadata:s.metadata,body:s.body??""}))}import wl from"node:fs/promises";import Ci 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]="8a15177d-4090-5e58-aac7-20b2ed7684a2")}catch{}})();var en="_workspace";function Ai(e){return Ci.join(e,"history",`${en}.jsonl`)}function El(e,t){return{metadata:{id:en,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 Ri(e){let t=Ft();for(let n of e)t=zt(t,n.patch).document;return $t(t)}async function Ni(e){let t=Ai(e.pmRoot),n=await Ke(t,en),r=Xn(n);if(!r.ok)throw new TypeError(`Workspace history verification failed: ${r.errors.join(", ")}`);let o=e.idempotencyKey===void 0?void 0:n.find(f=>f.op===`${e.op}:${e.idempotencyKey}`);if(o)return{entry:o,historyPath:t};let i=new Date().toISOString(),s=n.length===0?je:Ri(n),a="documents"in s.metadata&&typeof s.metadata.documents=="object"&&s.metadata.documents!==null&&!Array.isArray(s.metadata.documents)?s.metadata.documents:{},d=a[e.documentPath];if(d!==void 0&&G(d)!==G(e.before))throw new T(`Workspace history state for "${e.documentPath}" changed outside the audited mutation path.`,I.CONFLICT,{code:"workspace_history_state_conflict",reason:"out_of_band_workspace_state",required:"Reconcile the singleton document with its matching _workspace history state before retrying the mutation.",why:"Accepting the write would make the append-only audit stream describe a state that was not actually observed.",examples:["pm history _workspace --verify","pm validate --check-history-drift --fix-hints"],nextSteps:["Review the version-control change that altered the singleton and preserve the intended document plus its matching workspace history.","Rerun the original mutation only after the on-disk singleton agrees with the latest audited workspace state."],recovery:{recovery_mode:"compact",next_best_command:"pm history _workspace --verify"}});let l=El({...a,[e.documentPath]:e.after},n.length===0?i:s.metadata.created_at),m=Re({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 Ne(t,m),{entry:m,historyPath:t}}async function Sp(e){let t=await ae(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await Ni(e)}finally{await t()}}async function vp(e){let t=await ae(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{let n=Ai(e.pmRoot),r=await Ke(n,en),o=Xn(r);if(!o.ok)throw new TypeError(`Workspace history verification failed: ${o.errors.join(", ")}`);let i=r.length===0?je:Ri(r),s=Re({nowIso:new Date().toISOString(),author:e.author,op:e.op,before:i,after:i,message:e.message,context:e.context});return await Ne(n,s),{entry:s,historyPath:n}}finally{await t()}}async function Di(e){let t=await ae(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{let n=await Ee(e.filePath);if(n===e.raw)return!1;let r=n===null?null:JSON.parse(n),o=JSON.parse(e.raw);await W(e.filePath,e.raw);try{(n!==null||e.recordCreation!==!1)&&await Ni({pmRoot:e.pmRoot,documentPath:Ci.relative(e.pmRoot,e.filePath).replaceAll("\\","/"),before:r,after:o,op:e.op,author:e.author,lockTtlSeconds:e.lockTtlSeconds,lockWaitMs:e.lockWaitMs,message:e.message})}catch(i){throw n===null?await wl.rm(e.filePath,{force:!0}):await W(e.filePath,n),i}return!0}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]="027f6acb-15cc-5707-85ed-b5298b6b6abe")}catch{}})();var L={ok:!1},u=e=>typeof e=="string"?{ok:!0,value:e}:L,x=e=>typeof e=="boolean"?{ok:!0,value:e}:L;function C(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?L:{ok:!0,value:t}}function O(...e){return t=>typeof t=="string"&&e.includes(t)?{ok:!0,value:t}:L}function p(e,t){return n=>{if(!Array.isArray(n)||t!==void 0&&n.length>t)return L;let r=[];for(let o of n){let i=e(o);if(!i.ok)return L;r.push(i.value)}return{ok:!0,value:r}}}function cr(e,t){return n=>typeof n=="string"&&n.length>0&&n.length<=e&&n===n.trim()&&(t===void 0||t.test(n))?{ok:!0,value:n}:L}function c(e){return t=>t===void 0?{ok:!0,value:void 0}:e(t)}function tn(e){return t=>{if(typeof t!="object"||t===null||Array.isArray(t))return L;let n={};for(let[r,o]of Object.entries(t)){let i=e(o);if(!i.ok)return L;n[r]=i.value}return{ok:!0,value:n}}}function k(e){return t=>{if(typeof t!="object"||t===null||Array.isArray(t))return L;let n=t,r={};for(let[o,i]of Object.entries(e)){let s=i(n[o]);if(!s.ok)return L;s.value!==void 0&&(r[o]=s.value)}return{ok:!0,value:r}}}var kl=k({key:u,values:p(u),required:c(x),aliases:c(p(u)),description:c(u)}),Sl=k({command:O("create","update"),option:u,required:c(x),visible:c(x),enabled:c(x)}),vl=k({name:u,description:c(u),default_status:c(u),folder:c(u),aliases:c(p(u)),required_create_fields:c(p(u)),required_create_repeatables:c(p(u)),options:c(p(kl)),command_option_policies:c(p(Sl))}),Il=k({id:u,aliases:c(p(u)),roles:c(p(O(...wr))),description:c(u),order:c(C())}),xl=k({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(O(...Er)),commands:c(p(O(...kr))),repeatable:c(x),required:c(x),required_on_create:c(x),required_types:c(p(u)),allow_unset:c(x)}),Tl=e=>{if(!Array.isArray(e)||e.length!==2)return L;let[t,n]=e;return typeof t!="string"||typeof n!="string"?L:{ok:!0,value:[t,n]}},Ol=k({type:u,allowed_transitions:p(Tl)}),Cl=c(k({version:c(C({int:!0})),files:c(k({types:c(u),statuses:c(u),fields:c(u),workflows:c(u)})),statuses:c(p(Il)),fields:c(p(xl)),workflow:c(k({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(Ol)),unknown_field_policy:c(O(...Sr))})),Al=c(k({preset:c(O(...vr)),ownership_enforcement:c(O("none","warn","strict")),create_mode_default:c(O("progressive","strict")),close_validation_default:c(O("off","warn","strict")),require_close_reason:c(x),parent_reference:c(O("warn","strict_error")),metadata_profile:c(O("core","strict","custom")),force_required_for_stale_lock:c(x),create_default_type:c(u),workflow_enforcement:c(O("off","warn","strict")),duplicate_detection_mode:c(O("off","advisory","strict")),duplicate_detection_threshold:c(C({min:0,max:1})),duplicate_detection_limit:c(C({int:!0,min:0,max:20}))})),Rl=k({name:u,disabled:c(x),require_trusted:c(x),require_provenance:c(x),sandbox_profile:c(O("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))}),ar=O("block","warn"),Nl=e=>typeof e=="string"?ar(e):k({global:c(ar),project:c(ar)})(e),Dl=c(k({mode:c(O("off","warn","enforce")),trust_mode:c(O("off","warn","enforce")),pm_max_version_exceeded_mode:c(Nl),require_provenance:c(x),trusted_extensions:c(p(u)),default_sandbox_profile:c(O("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(Rl))})),we=cr(128),Ml=k({harness:cr(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u),environment_keys:c(p(we,64)),model_environment_keys:c(p(we,64)),session_environment_keys:c(p(we,64)),provenance_environment_keys:c(tn(p(we,64))),provenance_resolvers:c(tn(O("ai_agent_version","claude_session_file"))),provenance_unavailable_dimensions:c(p(we,64)),argv_markers:c(p(we,64)),client_names:c(p(we,64))}),Ll=k({version:C({int:!0}),id_prefix:u,ids:c(k({token_length:c(C({int:!0,min:4,max:12}))})),author_default:u,agent_identity:c(k({probes_enabled:c(x),identity_vocabulary:c(k({version:C({int:!0,positive:!0}),aliases:tn(cr(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u))})),harness_signals:p(Ml)})),mutation_guard:c(k({require_attributed_author:c(x),secret_guard:c(O("off","advise","block")),stale_in_progress_hours:c(C({int:!0,positive:!0}))})),item_format:c(O("toon","json_markdown")),locks:k({ttl_seconds:C({int:!0}),wait_ms:c(C({int:!0,min:0}))}),checkpoints:c(k({retention_days:c(C({int:!0,positive:!0}))})),output:k({default_format:O("toon","json")}),history:c(k({missing_stream:O("auto_create","strict_error"),compact_policy:c(k({enabled:c(x),max_entries:c(C({int:!0,positive:!0})),trigger:c(O("health_warn","auto"))}))})),validation:c(k({sprint_release_format:O("warn","strict_error"),parent_reference:c(O("warn","strict_error")),metadata_profile:c(O("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(tn(C({int:!0,positive:!0})))})),governance:Al,workflow:c(k({definition_of_done:p(u)})),testing:c(k({record_results_to_items:x})),telemetry:c(k({enabled:x,first_run_prompt_completed:c(x),capture_level:c(O("minimal","redacted","max")),endpoint:c(u),installation_id:c(u),retention_days:c(C({int:!0,positive:!0}))})),agent_guidance:c(k({prompt_completed:c(x),declined:c(x),declined_at:c(u),template_version:c(C({int:!0,positive:!0})),last_checked_files:c(p(u))})),item_types:c(k({definitions:p(vl)})),schema:Cl,context:c(k({default_depth:c(O("brief","standard","deep")),activity_limit:c(C({int:!0,positive:!0})),stale_threshold_days:c(C({int:!0,positive:!0})),sections:c(k({hierarchy:c(x),activity:c(x),progress:c(x),recently_created:c(x),unparented:c(x),blockers:c(x),files:c(x),workload:c(x),staleness:c(x),tests:c(x)}))})),extensions:k({enabled:p(u),disabled:p(u),policy:Dl}),search:k({score_threshold:C(),hybrid_semantic_weight:c(C()),max_results:C({int:!0}),embedding_model:u,embedding_corpus_max_characters:c(C()),embedding_batch_size:C({int:!0}),embedding_timeout_ms:c(C({int:!0})),scanner_max_batch_retries:C({int:!0}),provider:c(u),corpus_fields:c(p(u)),mutation_refresh_policy:c(O("cache_only","semantic_configured","semantic_auto")),query_expansion:c(k({enabled:c(x),provider:c(u)})),rerank:c(k({enabled:c(x),model:c(u),top_k:c(C({int:!0,positive:!0}))})),bm25:c(k({k1:c(C()),b:c(C())}))}),providers:k({openai:k({base_url:u,api_key:u,model:u}),ollama:k({base_url:u,model:u})}),vector_store:k({adapter:c(u),collection_name:c(u),qdrant:k({url:u,api_key:u}),lancedb:k({path:u})})});function Mi(e){let t=Ll(e);return t.ok?{success:!0,data:t.value}:{success:!1}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="2d377bc4-c624-561c-9856-405c82099070")}catch{}})();var Pl={Epic:2880,Feature:480,Story:480,Milestone:2880,Task:120,Issue:60,Bug:60,Chore:30,Decision:15,Plan:120},Li=120;function dr(e){return typeof e=="number"&&Number.isFinite(e)&&e>0}function ji(e){let t=new Map;for(let[n,r]of Object.entries(e))t.set(n.toLowerCase(),r);return t}var jl=ji(Pl),Pi=new WeakMap;function Fl(e){let t=Pi.get(e);if(t)return t;let n=ji(e);return Pi.set(e,n),n}function Op(e,t){let n=(e??"").trim().toLowerCase();if(n.length===0)return Li;if(t){let o=Fl(t).get(n);if(dr(o))return Math.floor(o)}let r=jl.get(n);return dr(r)?Math.floor(r):Li}function lr(e){let t={};if(e===null||typeof e!="object"||Array.isArray(e))return t;for(let[n,r]of Object.entries(e)){let o=n.trim();o.length===0||!dr(r)||(t[o]=Math.floor(r))}return t}import{stat as $l}from"node:fs/promises";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="60da76ea-0bd3-56a9-a2bc-d88ba76e1013")}catch{}})();var nn=new Map;function Fi(e){return[...new Set(e.map(t=>t.trim()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}async function zl(e){try{let t=await $l(e);return{path:e,mtime_ms:t.mtimeMs,size:t.size}}catch{return{path:e,mtime_ms:null,size:null}}}async function de(e){let t=Fi(e),n=await Promise.all(t.map(r=>zl(r)));return n.sort((r,o)=>r.path.localeCompare(o.path)),n}function it(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1){let r=e[n],o=t[n];if(r.path!==o.path||r.mtime_ms!==o.mtime_ms||r.size!==o.size)return!1}return!0}function $i(e){return nn.get(e)}function rn(e,t){let n=Fi(t.tracked_paths),r=[...t.signatures].map(o=>({path:o.path,mtime_ms:o.mtime_ms,size:o.size})).sort((o,i)=>o.path.localeCompare(i.path));nn.set(e,{tracked_paths:n,signatures:r,value:t.value})}function le(e){if(e){nn.delete(e);return}nn.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]="a434b9ea-4692-51c5-8761-0f1759fff394")}catch{}})();var Ul="settings:write",qi=Symbol("pm.settings.persist_source"),Hl=128,Wl=new Set(["off","advisory","strict"]);function zi(e){return structuredClone(xr[e])}function ql(e){return e==="minimal"||e==="default"||e==="strict"||e==="custom"?e:b.governance.preset}function Ui(e,t){let n=typeof t.create_default_type=="string"?t.create_default_type.trim():void 0;return n&&n.length>0&&(e.create_default_type=n),(t.workflow_enforcement==="off"||t.workflow_enforcement==="warn"||t.workflow_enforcement==="strict")&&(e.workflow_enforcement=t.workflow_enforcement),t.require_close_reason===!1&&(e.require_close_reason=!1),e.duplicate_detection_mode=t.duplicate_detection_mode,e.duplicate_detection_threshold=t.duplicate_detection_threshold,e.duplicate_detection_limit=t.duplicate_detection_limit,e}function Bl(e){return e.preset==="custom"?Ui({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):Ui({preset:e.preset},e)}function Vl(e){let t=typeof e.create_default_type=="string"?e.create_default_type.trim():void 0,n={};t&&t.length>0&&(n.create_default_type=t),(e.workflow_enforcement==="off"||e.workflow_enforcement==="warn"||e.workflow_enforcement==="strict")&&(n.workflow_enforcement=e.workflow_enforcement),typeof e.require_close_reason=="boolean"&&(n.require_close_reason=e.require_close_reason),Wl.has(String(e.duplicate_detection_mode))&&(n.duplicate_detection_mode=e.duplicate_detection_mode);let r=e.duplicate_detection_threshold;[typeof r=="number",Number.isFinite(r),Number(r)>=0,Number(r)<=1].every(Boolean)&&(n.duplicate_detection_threshold=r);let o=e.duplicate_detection_limit;return[typeof o=="number",Number.isSafeInteger(o),Number(o)>=0,Number(o)<=20].every(Boolean)&&(n.duplicate_detection_limit=o),n}function sn(e){let t=e.governance??{},n=ql(t.preset),r=Vl(t);if(n==="custom"){let s=zi("default"),a=r.require_close_reason??s.require_close_reason;return{preset:n,ownership_enforcement:t.ownership_enforcement??s.ownership_enforcement,create_mode_default:t.create_mode_default??s.create_mode_default,close_validation_default:t.close_validation_default??s.close_validation_default,parent_reference:t.parent_reference??s.parent_reference,metadata_profile:t.metadata_profile??s.metadata_profile,force_required_for_stale_lock:t.force_required_for_stale_lock??s.force_required_for_stale_lock,...r,require_close_reason:a,duplicate_detection_mode:r.duplicate_detection_mode??s.duplicate_detection_mode,duplicate_detection_threshold:r.duplicate_detection_threshold??s.duplicate_detection_threshold,duplicate_detection_limit:r.duplicate_detection_limit??s.duplicate_detection_limit}}let o=zi(n),i=r.require_close_reason??o.require_close_reason;return{preset:n,...o,...r,require_close_reason:i}}function Bi(){return structuredClone(b)}function Vi(e){return e==="cache_only"||e==="semantic_configured"||e==="semantic_auto"?e:b.search.mutation_refresh_policy}function Gi(e){return typeof e=="boolean"?e:b.search.query_expansion.enabled}function Xi(e){return typeof e!="string"?b.search.query_expansion.provider:e.trim()}function Ki(e){return typeof e=="boolean"?e:b.search.rerank.enabled}function Ji(e){return typeof e!="string"?b.search.rerank.model:e.trim()}function Yi(e){return typeof e=="number"&&Number.isFinite(e)&&Number.isInteger(e)&&e>0?e:b.search.rerank.top_k}function Qi(e){if(typeof e!="string")return b.vector_store.collection_name;let n=e.trim().replaceAll(/[^a-zA-Z0-9_-]/g,"_").slice(0,Hl);return n.length>0?n:b.vector_store.collection_name}function ur(e){return{present:Array.isArray(e),values:Array.isArray(e)?structuredClone(e):[]}}function Gl(e,t){let n=e.schema,r=ur(n?.statuses),o=ur(n?.fields),i=ur(n?.type_workflows);return{source_settings:structuredClone(e),has_source_item_type_definitions:Array.isArray(e.item_types?.definitions),source_item_type_definitions:Le(e.item_types?.definitions),has_source_schema_statuses:r.present,source_schema_statuses:r.values,has_source_schema_fields:o.present,source_schema_fields:o.values,has_source_schema_type_workflows:i.present,source_schema_type_workflows:i.values,runtime_item_type_definitions:Le(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 Zi(e,t){Object.defineProperty(e,qi,{value:t,writable:!0,configurable:!0,enumerable:!1})}function es(e){let t=e[qi];if(!(!t||typeof t!="object"))return t}function on(e){let t=structuredClone(e.settings),n=es(e.settings);return n&&Zi(t,n),{settings:t,metadata:{has_explicit_item_format:e.metadata.has_explicit_item_format},warnings:[...e.warnings]}}function Xl(e,t,n){let r=Ue(t);return[n,He(e,r.files.types,ze.types),He(e,r.files.statuses,ze.statuses),He(e,r.files.fields,ze.fields),He(e,r.files.workflows,ze.workflows)]}async function Kl(e,t,n){let r=await de(t);rn(e,{tracked_paths:t,signatures:r,value:on(n)})}async function Jl(e,t,n){try{await Kl(e,t,n)}catch{le(e)}}function Hi(e,t){return e.find(n=>n.path===t)}function Yl(e,t,n){for(let r of n){let o=Hi(e,r),i=Hi(t,r);if(!o||!i||!it([o],[i]))return!1}return!0}async function fr(e,t,n,r,o){try{let i=await de(t);if(!Yl(r,i,o)){le(e);return}rn(e,{tracked_paths:t,signatures:i,value:on(n)})}catch{le(e)}}function Ql(e,t){let n=Ue(e.schema),r=Le(e.item_types?.definitions);if(!t)return{item_type_definitions:r,schema_statuses:n.statuses,schema_fields:n.fields,schema_type_workflows:n.type_workflows};let o=n.type_workflows??[],i=ke(r,t.runtime_item_type_definitions),s=ke(n.statuses,t.runtime_schema_statuses),a=ke(n.fields,t.runtime_schema_fields),d=ke(o,t.runtime_schema_type_workflows);return{item_type_definitions:i?t.has_source_item_type_definitions?Le(t.source_item_type_definitions):[]:r,schema_statuses:s?t.has_source_schema_statuses?structuredClone(t.source_schema_statuses):[]:n.statuses,schema_fields:a?t.has_source_schema_fields?structuredClone(t.source_schema_fields):[]:n.fields,schema_type_workflows:d?t.has_source_schema_type_workflows?structuredClone(t.source_schema_type_workflows):void 0:n.type_workflows}}function st(e){return{settings:Bi(),metadata:{has_explicit_item_format:!1},warnings:e?[e]:[]}}function Zl(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=e.item_format;return t==="toon"||t==="json_markdown"}function _r(e){return[...new Set((e??[]).map(t=>t.trim()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function ts(e){let t=b.agent_guidance,n=e?.template_version;return{prompt_completed:e?.prompt_completed===!0,declined:e?.declined===!0,declined_at:typeof e?.declined_at=="string"?e.declined_at:t.declined_at,template_version:typeof n=="number"&&Number.isInteger(n)&&n>0?n:t.template_version,last_checked_files:_r(e?.last_checked_files??t.last_checked_files)}}function V(e){return[...new Set((e??[]).map(t=>t.trim().toLowerCase()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function eu(e){return e==="off"||e==="warn"||e==="enforce"?e:b.extensions.policy.mode}function tu(e){return e==="off"||e==="warn"||e==="enforce"?e:b.extensions.policy.trust_mode}function ns(e){return e==="none"||e==="restricted"||e==="strict"?e:b.extensions.policy.default_sandbox_profile}function nu(e){let t=e.name.trim().toLowerCase();if(t.length===0)return null;let n={name:t};e.disabled===!0&&(n.disabled=!0),e.require_trusted===!0&&(n.require_trusted=!0),e.require_provenance===!0&&(n.require_provenance=!0),e.sandbox_profile!==void 0&&(n.sandbox_profile=ns(e.sandbox_profile));let r=V(e.allowed_capabilities),o=V(e.blocked_capabilities),i=V(e.allowed_surfaces),s=V(e.blocked_surfaces),a=V(e.allowed_commands),d=V(e.blocked_commands),l=V(e.allowed_actions),m=V(e.blocked_actions),f=V(e.allowed_services),h=V(e.blocked_services);return r.length>0&&(n.allowed_capabilities=r),o.length>0&&(n.blocked_capabilities=o),i.length>0&&(n.allowed_surfaces=i),s.length>0&&(n.blocked_surfaces=s),a.length>0&&(n.allowed_commands=a),d.length>0&&(n.blocked_commands=d),l.length>0&&(n.allowed_actions=l),m.length>0&&(n.blocked_actions=m),f.length>0&&(n.allowed_services=f),h.length>0&&(n.blocked_services=h),n}function ru(e){let t=new Map;for(let n of e??[]){let r=nu(n);r&&t.set(r.name,r)}return[...t.values()].sort((n,r)=>n.name.localeCompare(r.name))}function mr(e){return e==="block"||e==="warn"?e:void 0}function ou(e){if(typeof e=="string")return mr(e);if(typeof e=="object"&&e!==null&&!Array.isArray(e)){let t=mr(e.global),n=mr(e.project);return t===void 0&&n===void 0?void 0:{...t!==void 0?{global:t}:{},...n!==void 0?{project:n}:{}}}}function z(e,t){return V(e?.[t]??b.extensions.policy[t])}function rs(e){let t=ou(e?.pm_max_version_exceeded_mode);return{mode:eu(e?.mode),trust_mode:tu(e?.trust_mode),...t!==void 0?{pm_max_version_exceeded_mode:t}:{},require_provenance:e?.require_provenance===!0,trusted_extensions:z(e,"trusted_extensions"),default_sandbox_profile:ns(e?.default_sandbox_profile),allowed_extensions:z(e,"allowed_extensions"),blocked_extensions:z(e,"blocked_extensions"),allowed_capabilities:z(e,"allowed_capabilities"),blocked_capabilities:z(e,"blocked_capabilities"),allowed_surfaces:z(e,"allowed_surfaces"),blocked_surfaces:z(e,"blocked_surfaces"),allowed_commands:z(e,"allowed_commands"),blocked_commands:z(e,"blocked_commands"),allowed_actions:z(e,"allowed_actions"),blocked_actions:z(e,"blocked_actions"),allowed_services:z(e,"allowed_services"),blocked_services:z(e,"blocked_services"),extension_overrides:ru(e?.extension_overrides??b.extensions.policy.extension_overrides)}}function os(e){return[...new Set((e??[]).map(n=>n.trim().toLowerCase().replaceAll("-","_")))].filter(n=>n.length>0).sort((n,r)=>n.localeCompare(r)).filter(n=>["author","acceptance_criteria","estimated_minutes","close_reason","reviewer","risk","confidence","sprint","release"].includes(n))}function ue(e){return[...new Set((e??[]).map(t=>t.trim().toLowerCase()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function D(e,t){return e===void 0?t:e}function U(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:{}}function pr(e){return Array.isArray(e)?e:[]}function iu(e,t,n){return{...t.validation,...e.validation,parent_reference:n.parent_reference,metadata_profile:n.metadata_profile,metadata_required_fields:os(e.validation?.metadata_required_fields),lifecycle_stale_blocker_reason_patterns:ue(e.validation?.lifecycle_stale_blocker_reason_patterns??t.validation.lifecycle_stale_blocker_reason_patterns),lifecycle_closure_like_blocked_reason_patterns:ue(e.validation?.lifecycle_closure_like_blocked_reason_patterns??t.validation.lifecycle_closure_like_blocked_reason_patterns),lifecycle_closure_like_resolution_patterns:ue(e.validation?.lifecycle_closure_like_resolution_patterns??t.validation.lifecycle_closure_like_resolution_patterns),lifecycle_closure_like_actual_result_patterns:ue(e.validation?.lifecycle_closure_like_actual_result_patterns??t.validation.lifecycle_closure_like_actual_result_patterns),estimate_defaults_by_type:lr(e.validation?.estimate_defaults_by_type)}}function su(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 au(e,t){return{...t.search,...e.search,mutation_refresh_policy:Vi(e.search?.mutation_refresh_policy),query_expansion:{...t.search.query_expansion,...e.search?.query_expansion,enabled:Gi(e.search?.query_expansion?.enabled),provider:Xi(e.search?.query_expansion?.provider)},rerank:{...t.search.rerank,...e.search?.rerank,enabled:Ki(e.search?.rerank?.enabled),model:Ji(e.search?.rerank?.model),top_k:Yi(e.search?.rerank?.top_k)}}}function cu(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 du(e,t){return e.item_format==="json_markdown"?"toon":e.item_format??t.item_format}function lu(e,t){return{default_depth:e.context?.default_depth??t.context.default_depth,activity_limit:e.context?.activity_limit??t.context.activity_limit,stale_threshold_days:e.context?.stale_threshold_days??t.context.stale_threshold_days,sections:{...t.context.sections,...e.context?.sections}}}function uu(e,t){return{openai:{...t.providers.openai,...e.providers.openai},ollama:{...t.providers.ollama,...e.providers.ollama}}}function Le(e){let t=(e??[]).map(r=>Or(r)).filter(r=>r!==null),n=new Map;for(let r of t)n.set(r.name.toLowerCase(),r);return[...n.values()].sort((r,o)=>r.name.localeCompare(o.name))}function is(e){let t=Bi(),n=sn({governance:e.governance??{preset:"default"}});return{...t,...e,item_format:du(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},history:{...t.history,...e.history,compact_policy:{...t.history.compact_policy,...e.history?.compact_policy}},validation:iu(e,t,n),governance:n,workflow:{definition_of_done:[...e.workflow?.definition_of_done??t.workflow.definition_of_done]},testing:{record_results_to_items:e.testing?.record_results_to_items??t.testing.record_results_to_items},telemetry:su(e,t),agent_guidance:ts(e.agent_guidance??t.agent_guidance),item_types:{definitions:Le(e.item_types?.definitions)},schema:Ue(e.schema??t.schema),context:lu(e,t),extensions:{enabled:[...e.extensions.enabled],disabled:[...e.extensions.disabled],policy:rs(e.extensions.policy??t.extensions.policy)},search:au(e,t),providers:uu(e,t),vector_store:cu(e,t)}}function fu(e){e.agent_identity=E(e.agent_identity,["probes_enabled","identity_vocabulary","harness_signals"]);let t=e.agent_identity;Object.hasOwn(t,"identity_vocabulary")&&(t.identity_vocabulary=E(U(t.identity_vocabulary),["version","aliases"])),e.agent_identity.harness_signals=pr(e.agent_identity.harness_signals).map(n=>E(U(n),["harness","environment_keys","model_environment_keys","session_environment_keys","provenance_environment_keys","provenance_resolvers","provenance_unavailable_dimensions","argv_markers","client_names"])),e.locks=E(e.locks,["ttl_seconds","wait_ms"]),e.ids=E(e.ids,["token_length"]),e.mutation_guard=E(e.mutation_guard,["require_attributed_author","secret_guard","stale_in_progress_hours"]),e.checkpoints=E(e.checkpoints,["retention_days"]),e.output=E(e.output,["default_format"]),e.history=E(e.history,["missing_stream","compact_policy"]),e.validation=E(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=E(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=E(e.workflow,["definition_of_done"]),e.testing=E(e.testing,["record_results_to_items"]),e.telemetry=E(e.telemetry,["enabled","first_run_prompt_completed","capture_level","endpoint","installation_id","retention_days"]),e.agent_guidance=E(e.agent_guidance,["prompt_completed","declined","declined_at","template_version","last_checked_files"]),e.item_types=E(e.item_types,["definitions"]),e.schema=E(e.schema,["version","files","statuses","fields","workflow","type_workflows","unknown_field_policy"]),e.schema.files=E(U(e.schema.files),["types","statuses","fields","workflows"]),e.schema.workflow=E(U(e.schema.workflow),["draft_status","open_status","in_progress_status","blocked_status","close_status","canceled_status"]),e.context=E(e.context,["default_depth","activity_limit","stale_threshold_days","sections"]),e.context.sections=E(U(e.context.sections),["hierarchy","activity","progress","blockers","files","workload","staleness","tests"]),e.extensions=E(e.extensions,["enabled","disabled","policy"]),e.extensions.policy=E(U(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=pr(e.extensions.policy.extension_overrides).map(n=>E(U(n),["name","disabled","require_trusted","require_provenance","sandbox_profile","allowed_capabilities","blocked_capabilities","allowed_surfaces","blocked_surfaces","allowed_commands","blocked_commands","allowed_actions","blocked_actions","allowed_services","blocked_services"])),e.search=E(e.search,["score_threshold","hybrid_semantic_weight","max_results","embedding_model","embedding_corpus_max_characters","embedding_batch_size","embedding_timeout_ms","scanner_max_batch_retries","provider","mutation_refresh_policy","query_expansion","rerank"]),e.search.query_expansion=E(U(e.search.query_expansion),["enabled","provider"]),e.search.rerank=E(U(e.search.rerank),["enabled","model","top_k"]),e.providers=E(e.providers,["openai","ollama"]),e.providers.openai=E(U(e.providers.openai),["base_url","api_key","model"]),e.providers.ollama=E(U(e.providers.ollama),["base_url","model"]),e.vector_store=E(e.vector_store,["adapter","collection_name","qdrant","lancedb"]),e.vector_store.qdrant=E(U(e.vector_store.qdrant),["url","api_key"]),e.vector_store.lancedb=E(U(e.vector_store.lancedb),["path"])}function mu(e){return{...e,locks:D(e.locks,b.locks),ids:D(e.ids,b.ids),agent_identity:D(e.agent_identity,b.agent_identity),mutation_guard:D(e.mutation_guard,b.mutation_guard),checkpoints:D(e.checkpoints,b.checkpoints),output:D(e.output,b.output),history:D(e.history,b.history),validation:D(e.validation,b.validation),workflow:D(e.workflow,b.workflow),testing:D(e.testing,b.testing),telemetry:D(e.telemetry,b.telemetry),agent_guidance:D(e.agent_guidance,b.agent_guidance),item_types:D(e.item_types,b.item_types),schema:D(e.schema,b.schema),context:D(e.context,b.context),extensions:D(e.extensions,b.extensions),search:D(e.search,b.search),providers:D(e.providers,b.providers),vector_store:D(e.vector_store,b.vector_store)}}function _u(e,t){return{...e.validation,parent_reference:t.parent_reference,metadata_profile:t.metadata_profile,metadata_required_fields:os(e.validation?.metadata_required_fields),lifecycle_stale_blocker_reason_patterns:ue(e.validation?.lifecycle_stale_blocker_reason_patterns??b.validation.lifecycle_stale_blocker_reason_patterns),lifecycle_closure_like_blocked_reason_patterns:ue(e.validation?.lifecycle_closure_like_blocked_reason_patterns??b.validation.lifecycle_closure_like_blocked_reason_patterns),lifecycle_closure_like_resolution_patterns:ue(e.validation?.lifecycle_closure_like_resolution_patterns??b.validation.lifecycle_closure_like_resolution_patterns),lifecycle_closure_like_actual_result_patterns:ue(e.validation?.lifecycle_closure_like_actual_result_patterns??b.validation.lifecycle_closure_like_actual_result_patterns),estimate_defaults_by_type:lr(e.validation?.estimate_defaults_by_type)}}function pu(e){return{...b.search,...e.search,mutation_refresh_policy:Vi(e.search?.mutation_refresh_policy),query_expansion:{...b.search.query_expansion,...e.search?.query_expansion,enabled:Gi(e.search?.query_expansion?.enabled),provider:Xi(e.search?.query_expansion?.provider)},rerank:{...b.search.rerank,...e.search?.rerank,enabled:Ki(e.search?.rerank?.enabled),model:Ji(e.search?.rerank?.model),top_k:Yi(e.search?.rerank?.top_k)}}}function yu(e){return{default_depth:e.context?.default_depth??b.context.default_depth,activity_limit:e.context?.activity_limit??b.context.activity_limit,stale_threshold_days:e.context?.stale_threshold_days??b.context.stale_threshold_days,sections:{...b.context.sections,...e.context?.sections}}}function hu(e){return{...e.vector_store,adapter:e.vector_store?.adapter??b.vector_store.adapter,collection_name:Qi(e.vector_store?.collection_name),qdrant:{...e.vector_store?.qdrant},lancedb:{...e.vector_store?.lancedb}}}function gu(e,t,n,r){return{...e,item_format:"toon",validation:_u(e,t),governance:t,agent_guidance:ts(e.agent_guidance),item_types:{definitions:r.item_type_definitions},schema:{...n,statuses:r.schema_statuses,fields:r.schema_fields,type_workflows:r.schema_type_workflows},search:pu(e),context:yu(e),extensions:{enabled:_r(e.extensions?.enabled),disabled:_r(e.extensions?.disabled),policy:rs(e.extensions?.policy)},vector_store:hu(e)}}function ss(e,t,n){let r=new Set([...Object.keys(t),...Object.keys(n)]);for(let o of r){let i=t[o],s=n[o];if(!ke(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:{};ss(d,i,s),Object.keys(d).length>0?e[o]=d:delete e[o];continue}e[o]=structuredClone(s)}}}var as=["version","id_prefix","ids","author_default","agent_identity","mutation_guard","item_format","locks","checkpoints","output","history","validation","governance","workflow","testing","telemetry","agent_guidance","item_types","schema","context","extensions","search","providers","vector_store"];function Wi(e,t){let n=mu(e),r=sn(n),o=Ue(n.schema),i=Ql(n,t),s=gu(n,r,o,i),a=E({...s,governance:Bl(r)},as);return fu(a),a}function bu(e,t={}){let n=Wi(e,t.persist_source);if(t.persist_source){let r=is(t.persist_source.source_settings);r.item_types={definitions:structuredClone(t.persist_source.runtime_item_type_definitions)},r.schema={...r.schema,statuses:structuredClone(t.persist_source.runtime_schema_statuses),fields:structuredClone(t.persist_source.runtime_schema_fields),type_workflows:structuredClone(t.persist_source.runtime_schema_type_workflows)};let o=Wi(r,t.persist_source),i=structuredClone(t.persist_source.source_settings);return ss(i,o,n),`${JSON.stringify(E(i,as),null,2)}
151
+ `}return`${JSON.stringify(n,null,2)}
152
+ `}async function cs(e){let t=mn(e),n=[t];await X({path:t,scope:"project"});let r=$i(e);if(r){let l=await de(r.tracked_paths);if(it(l,r.signatures))return on(r.value)}let o=await de([t]),i;try{i=await Ee(t)}catch{return st("settings_read_fs_error")}if(i===null){let l=st();return await fr(e,[t],l,o,[t]),l}let s=await de([t]);if(!it(o,s))return le(e),cs(e);let a;try{a=JSON.parse(i)}catch{let l=st("settings_read_invalid_json");return await fr(e,[t],l,s,[t]),l}let d=Mi(a);if(!d.success){let l=st("settings_read_invalid_schema");return await fr(e,[t],l,s,[t]),l}try{let l=is(d.data),m=Xl(e,l.schema,t);n=m;let f=await de(m),h=await zr(e,l.schema),_=await Ur(e,l.schema),S=await de(m),v={...l,item_types:{definitions:Le([...l.item_types.definitions,...pr(_.type_definitions_from_file)])},schema:_.schema};Zi(v,Gl(d.data,v));let w={settings:v,metadata:{has_explicit_item_format:Zl(a)},warnings:[...d.data.item_format==="json_markdown"?["settings_item_format_legacy_json_markdown_coerced_to_toon"]:[],...h.created_paths.map(R=>`runtime_schema_bootstrap_created:${R}`),..._.warnings]};return h.created_paths.length===0?it(f,S)?rn(e,{tracked_paths:m,signatures:S,value:on(w)}):le(e):le(e),w}catch{let l=st("settings_read_merge_failed");return await Jl(e,n,l),l}}async function qp(e){return(await cs(e)).settings}async function Bp(e,t,n=Ul){let r=mn(e),o=bu(t,{persist_source:es(t)});try{await Di({pmRoot:e,filePath:r,raw:o,op:n,author:so(void 0,t.author_default),lockTtlSeconds:t.locks.ttl_seconds,lockWaitMs:t.locks.wait_ms,recordCreation:!1}),await B({path:r,scope:"project",op:n})}finally{le(e)}}import wu from"node:fs/promises";import Eu from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="58fd6fef-9c13-5c6a-9110-b760461896aa")}catch{}})();function ku(e){return[...new Set(e.filter(t=>t.trim().length>0))].sort((t,n)=>t.localeCompare(n))}function Su(e,t){return new T(`Missing history stream for ${e}. ${t} requires history streams when settings.history.missing_stream is strict_error.`,I.NOT_FOUND)}async function vu(e,t){return await Tr(Eu.dirname(e)),await(await wu.open(e,"a")).close(),B({path:e,scope:"project",op:`${t}:history:auto_create`})}async function yr(e){return Iu({pmRoot:e.pmRoot,settings:e.settings,itemIds:[e.itemId],commandLabel:e.commandLabel})}async function Iu(e){let t=ku(e.itemIds),n=[],r=[];for(let o of t){let i=$e(e.pmRoot,o);if(!await pt(i)){if(e.settings.history.missing_stream==="strict_error")throw Su(o,e.commandLabel);r.push(...await vu(i,e.commandLabel)),r.push(`history_stream_auto_created:${o}`),n.push(o)}}return{auto_created_ids:n,warnings:r}}import fe from"node:fs/promises";import Pe 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]="f43e1170-e797-5a0c-b02e-d31e002ab275")}catch{}})();async function xu(e){try{return await fe.access(e),!0}catch{return!1}}function an(e,t){return typeof e=="object"&&e!==null&&"code"in e&&e.code===t}function Tu(e,t){e&&(e.includes(t)||e.push(t))}function ds(e){return e??_t(Xe())}function Ou(e){return e==="toon"?["toon","json_markdown"]:e==="json_markdown"?["json_markdown","toon"]:["toon","json_markdown"]}function cn(e){return new T(`Tracker root is not a directory at ${e}.`,I.USAGE,{code:"tracker_root_not_directory",reason:"not_a_directory",nextSteps:["Pass the tracker directory itself, usually <workspace>/.agents/pm."]})}async function Cu(e){let t=Pe.parse(Pe.resolve(e)).root,n=Pe.dirname(Pe.resolve(e));for(;n!==t;){let r;try{r=await fe.stat(n)}catch(o){if(an(o,"ENOTDIR"))throw cn(e);if(!an(o,"ENOENT"))throw o;n=Pe.dirname(n);continue}if(!r.isDirectory())throw cn(e);break}}async function hr(e){let t;try{t=await fe.stat(e)}catch(n){throw an(n,"ENOENT")?(await Cu(e),new T(`Tracker root does not exist at ${e}.`,I.NOT_FOUND,{code:"tracker_root_missing",reason:"missing",nextSteps:["Confirm the tracker root path and retry the SDK read.","Initialize a tracker before enumerating its item metadata."]})):an(n,"ENOTDIR")?cn(e):n}if(!t.isDirectory())throw cn(e)}async function ls(e,t,n="pm-",r,o=me){let i=Jn(t,n),s=Kn(t),a=i===s?[i]:[i,s],d=Object.entries(o),l=Ou(r);for(let m of a)for(let[f]of d)for(let h of l){let _=_n(e,f,m,h,o);if(await xu(_))return{id:m,type:f,itemPath:_,item_format:h}}return null}async function us(e,t={}){let n=await fe.readFile(e.itemPath,"utf8");await X({path:e.itemPath,scope:"project"});let r=Ot(n,{format:e.item_format,schema:t.schema,extensionFieldNames:ds(t.extensionFieldNames),onWarning:o=>Tu(t.warnings,o)});return{raw:n,document:r}}async function Au(e,t,n=me,r,o){return await hr(e),(await Ti(e,t,n,r,o)).map(s=>s.metadata)}async function wy(e,t,n=me,r,o){return await hr(e),(await Oi(e,t,n,r,o)).map(s=>s.metadata)}async function Ey(e,t,n=me,r,o,i={}){return await hr(e),(await Zt(e,t,n,r,o,{includeBody:!0,forceSourceScan:i.forceSourceScan})).map(a=>({...a.metadata,body:a.body}))}function fs(e){return{async get(t){let n=await ls(e.pmRoot,t,e.settings.id_prefix,e.settings.item_format,e.typeToFolder);if(!n)return null;let{document:r}=await us(n,{schema:e.settings.schema});return{item:r.metadata,body:r.body}},list:()=>Au(e.pmRoot,e.settings.item_format,e.typeToFolder,void 0,e.settings.schema)}}async function Ru(e,t){let n=new Set(Object.values(t)),r=[];return await Promise.all([...n].map(async o=>{try{let i=await fe.readdir(Pe.join(e,o));for(let s of i)for(let a of yt)if(s.toLowerCase().endsWith(a)){r.push(s.slice(0,-a.length));break}}catch{}})),r}async function Nu(e,t,n,r){let o=Jn(t,n),i=await Ru(e,r);if(i.length===0)return[];let s=Math.max(3,Math.floor(o.length/2));return i.map(d=>({id:d,distance:br(d,o,s)})).filter(d=>d.distance!==null).sort((d,l)=>d.distance-l.distance).slice(0,3).map(d=>d.id)}async function Du(e,t,n,r){let o=await Nu(e,t,n,r),i=["Confirm the active --path/PM_PATH scope, then retry with a valid id."];return o.length>0&&i.unshift(`Did you mean one of: ${o.join(", ")}?`),new T(`Item ${t} not found`,I.NOT_FOUND,{nextSteps:i})}function Mu(e,t){return e==="claim"||t===!0&&(e==="comment_add"||e==="comment_edit"||e==="comment_delete"||e==="note_add"||e==="learning_add"||e==="release"||e==="update"||e==="update_ownership_bypass"||e==="update_audit")}async function ms(e){let t=e.typeToFolder??Cr(e.settings,Xe()).type_to_folder,n=await ls(e.pmRoot,e.id,e.settings.id_prefix,e.settings.item_format,t);if(!n)throw await Du(e.pmRoot,e.id,e.settings.id_prefix,t);let r=await ae(e.pmRoot,n.id,e.settings.locks.ttl_seconds,e.author,!!e.force,e.settings.governance.force_required_for_stale_lock,e.settings.locks.wait_ms);try{let o=[],{raw:i,document:s}=await us(n,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames,warnings:o}),a=s.metadata.assignee?.trim(),d=s.metadata.claim_principal?.trim()||a,l=io(e.author),m=sn(e.settings);if(a&&d!==l&&!e.force&&!Mu(e.op,e.bypassAssigneeConflict)){if(m.ownership_enforcement==="strict")throw new T(`Item ${n.id} is assigned to ${a}. Use --force to override.`,I.CONFLICT);m.ownership_enforcement==="warn"&&o.push(`ownership_warning:assignee_conflict:${n.id}:${a}`)}return{typeToFolder:t,located:n,originalRaw:i,document:s,warnings:o,releaseLock:r}}catch(o){throw await r(),o}}function Lu(e,t,n){if(!e.handled||typeof e.result!="object"||e.result===null)return{effectiveTargetItemPath:t,effectiveSerializedAfter:n,skipItemWrite:!1};let r=e.result;return{effectiveTargetItemPath:typeof r.target_item_path=="string"&&r.target_item_path.trim().length>0?r.target_item_path:t,effectiveSerializedAfter:typeof r.contents=="string"?r.contents:n,skipItemWrite:r.skip_write===!0}}async function Pu(e){if(!e.skipItemWrite){if(e.effectiveTargetItemPath!==e.originalItemPath){await W(e.originalItemPath,e.originalRaw),await fe.rm(e.effectiveTargetItemPath,{force:!0});return}await W(e.originalItemPath,e.originalRaw)}}async function ky(e){let t=await ms({pmRoot:e.pmRoot,settings:e.settings,id:e.id,op:e.op,author:e.author,force:e.force,bypassAssigneeConflict:e.bypassAssigneeConflict,extensionFieldNames:e.extensionFieldNames,typeToFolder:e.typeToFolder}),{typeToFolder:n,located:r,originalRaw:o,document:i,warnings:s,releaseLock:a}=t;try{let d=q(i,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),l=q(structuredClone(i),{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),m=await e.mutate(l);if(e.skipNoop===!0&&m.changedFields.length===0)return{item:d.metadata,body:d.body,changedFields:[],warnings:[...s,...m.warnings??[]]};l.metadata.updated_at=he();let f=q(l,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames});await Ln({pm_root:e.pmRoot,operation:e.op,before:d,after:f,changed_fields:m.changedFields,sdk:fs({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:n})});let h=await yr({pmRoot:e.pmRoot,settings:e.settings,itemId:r.id,commandLabel:e.op}),_="toon",S=Co(f,{format:_,schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),v=_n(e.pmRoot,f.metadata.type,r.id,_,n),w=$e(e.pmRoot,r.id),R=await Z("item_store_write",{op:e.op,pm_root:e.pmRoot,item_id:r.id,source_item_path:r.itemPath,target_item_path:v,history_path:w,item_format:_,before:d,after:f,contents:S}),{effectiveTargetItemPath:N,effectiveSerializedAfter:J,skipItemWrite:F}=Lu(R,v,S),dn=await ir(e.pmRoot,e.author),at=[];try{F||await W(N,J),!F&&N!==r.itemPath&&await fe.rm(r.itemPath);let ln=Re({nowIso:f.metadata.updated_at,author:e.author,op:e.op,before:d,after:f,message:e.message});try{await Ne(w,ln)}catch(ct){throw await Pu({skipItemWrite:F,effectiveTargetItemPath:N,originalItemPath:r.itemPath,originalRaw:o}),ct}F||(at=await sr({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:n,schema:e.settings.schema,itemPath:N,previousItemPath:r.itemPath,document:f}))}finally{await dn()}let Y=[...await B({path:N,scope:"project",op:e.op,item_id:f.metadata.id,item_type:f.metadata.type,before:d,after:f,changed_fields:m.changedFields}),...await B({path:w,scope:"project",op:`${e.op}:history`,item_id:f.metadata.id,item_type:f.metadata.type,before:d,after:f,changed_fields:m.changedFields})];return Mn({id:f.metadata.id,op:e.op,item_type:f.metadata.type,previous_status:d.metadata.status,status:f.metadata.status,previous:Ct(d.metadata,m.changedFields),current:Ct(f.metadata,m.changedFields),changed_fields:m.changedFields}),{item:f.metadata,body:f.body,changedFields:m.changedFields,warnings:[...s,...m.warnings??[],...h.warnings,...R.warnings,...at,...Y]}}finally{await a()}}async function Sy(e){let t=await ms({pmRoot:e.pmRoot,settings:e.settings,id:e.id,op:"delete",author:e.author,force:e.force}),{located:n,originalRaw:r,document:o,warnings:i,releaseLock:s}=t;try{let a=ds(void 0),d=q(o,{schema:e.settings.schema,extensionFieldNames:a});await Ln({pm_root:e.pmRoot,operation:"delete",before:d,after:null,changed_fields:["deleted"],sdk:fs({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:t.typeToFolder})});let l=await yr({pmRoot:e.pmRoot,settings:e.settings,itemId:n.id,commandLabel:"delete"}),m=he(),f=je,h=Re({nowIso:m,author:e.author,op:"delete",before:d,after:f,message:e.message}),_=$e(e.pmRoot,n.id),S=await Z("item_store_delete",{op:"delete",pm_root:e.pmRoot,item_id:n.id,item_path:n.itemPath,history_path:_,before:d}),v=n.itemPath,w=!1;if(S.handled&&typeof S.result=="object"&&S.result!==null){let F=S.result;typeof F.item_path=="string"&&F.item_path.trim().length>0&&(v=F.item_path),F.skip_delete===!0&&(w=!0)}if(e.dryRun===!0)return{item:d.metadata,changedFields:["deleted"],targetPath:v,warnings:[...i,...l.warnings,...S.warnings]};let R=await ir(e.pmRoot,e.author),N=[];try{w||await fe.rm(v);try{await Ne(_,h)}catch(F){throw w||await W(v,r),F}w||(N=await sr({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:t.typeToFolder,schema:e.settings.schema,itemPath:v,document:null}))}finally{await R()}let J=[...await B({path:v,scope:"project",op:"delete",item_id:d.metadata.id,item_type:d.metadata.type,before:d,after:f,changed_fields:["deleted"]}),...await B({path:_,scope:"project",op:"delete:history",item_id:d.metadata.id,item_type:d.metadata.type,before:d,after:f,changed_fields:["deleted"]})];return Mn({id:d.metadata.id,op:"delete",item_type:d.metadata.type,previous_status:d.metadata.status,previous:Ct(d.metadata,Object.keys(d.metadata)),changed_fields:["deleted"]}),{item:d.metadata,changedFields:["deleted"],warnings:[...i,...l.warnings,...S.warnings,...N,...J]}}finally{await s()}}export{Vf as a,pc as b,im as c,sm as d,am as e,cm as f,dm as g,lm as h,um as i,fm as j,Xe as k,Mn as l,Ct as m,B as n,Ln as o,X as p,Pn as q,mm as r,_m as s,Z as t,zc as u,pe as v,Gr as w,$u as x,zu as y,Jr as z,bs as A,Xu as B,Ku as C,Ju as D,no as E,Yu as F,Qu as G,Zu as H,Cs as I,io as J,so as K,he as L,j as M,df as N,lf as O,ae as P,go as Q,We as R,kf as S,Sf as T,Ie as U,_o as V,ff as W,po as X,Ks as Y,mf as Z,St as _,Ys as $,hf as aa,vt as ba,Tt as ca,Ot as da,Co as ea,q as fa,Ke as ga,Nm as ha,Dm as ia,Qm as ja,Zm as ka,Vc as la,Ye as ma,Xo as na,y_ as oa,Re as pa,Ne as qa,Zc as ra,Ft as sa,jt as ta,$t as ua,v_ as va,I_ as wa,Yo as xa,zt as ya,Xn as za,x_ as Aa,T_ as Ba,en as Ca,Ai as Da,Sp as Ea,vp as Fa,Di as Ga,Op as Ha,sn as Ia,cs as Ja,qp as Ka,Bp as La,yr as Ma,Iu as Na,ei as Oa,Kn as Pa,Jn as Qa,M_ as Ra,z_ as Sa,U_ as Ta,H_ as Ua,ki as Va,Hd as Wa,ir as Xa,up as Ya,sr as Za,Zt as _a,ls as $a,us as ab,Au as bb,wy as cb,Ey as db,fs as eb,Du as fb,ky as gb,Sy as hb};
153
+ //# sourceMappingURL=chunk-7J5TUBUJ.js.map