@unbrained/pm-cli 2026.8.9 → 2026.8.11

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 (249) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/CHANGELOG.md +142 -80
  3. package/dist/cli/commander-usage.js +94 -17
  4. package/dist/cli/error-guidance.d.ts +10 -0
  5. package/dist/cli/error-guidance.js +76 -25
  6. package/dist/cli/help-json-payload.js +51 -16
  7. package/dist/cli/main.js +11 -6
  8. package/dist/cli/register-assurance.d.ts +8 -0
  9. package/dist/cli/register-assurance.js +52 -0
  10. package/dist/cli/register-files-lookup.js +14 -3
  11. package/dist/cli/register-mutation.js +30 -9
  12. package/dist/cli/register-operations.js +16 -11
  13. package/dist/cli-bundle/bundle-manifest.json +163 -163
  14. package/dist/cli-bundle/chunks/{chunk-RJC7TPF4.js → chunk-2OOU2AFH.js} +2 -2
  15. package/dist/cli-bundle/chunks/chunk-2RA2YTHJ.js +33 -0
  16. package/dist/cli-bundle/chunks/chunk-A2SJGHSI.js +3 -0
  17. package/dist/cli-bundle/chunks/chunk-DSKYD4LG.js +13 -0
  18. package/dist/cli-bundle/chunks/chunk-HC3GM6YY.js +194 -0
  19. package/dist/cli-bundle/chunks/chunk-IUNRVDAI.js +2 -0
  20. package/dist/cli-bundle/chunks/chunk-W7CPZGSB.js +2 -0
  21. package/dist/cli-bundle/chunks/{chunk-YC3UF2IO.js → chunk-WMEZHCFI.js} +66 -60
  22. package/dist/cli-bundle/chunks/{chunk-GMX5YOI3.js → chunk-ZU34C3LH.js} +48 -48
  23. package/dist/cli-bundle/chunks/chunk-ZXOC6HG5.js +5 -0
  24. package/dist/cli-bundle/chunks/{register-list-query-BUE7PTCU.js → register-list-query-HAUXVUPY.js} +8 -8
  25. package/dist/cli-bundle/chunks/register-mutation-7Y5U7ABT.js +20 -0
  26. package/dist/cli-bundle/chunks/register-operations-EQX3DLAZ.js +2 -0
  27. package/dist/cli-bundle/chunks/{register-setup-UQDTNTLJ.js → register-setup-NOCOOWQY.js} +2 -2
  28. package/dist/cli-bundle/focused-chunks/{chunk-KNEHLPBF.js → chunk-23FTGO3W.js} +2 -2
  29. package/dist/cli-bundle/focused-chunks/{chunk-6DO4YQWZ.js → chunk-2DL3MRTD.js} +2 -2
  30. package/dist/cli-bundle/focused-chunks/chunk-3AYKXMYX.js +2 -0
  31. package/dist/cli-bundle/focused-chunks/chunk-4AHEC74N.js +2 -0
  32. package/dist/cli-bundle/focused-chunks/{chunk-MRWVJ3ZG.js → chunk-4H5IA6AV.js} +2 -2
  33. package/dist/cli-bundle/focused-chunks/chunk-4SV3ZKG3.js +16 -0
  34. package/dist/cli-bundle/focused-chunks/chunk-55BIB6DV.js +2 -0
  35. package/dist/cli-bundle/focused-chunks/chunk-6JW6Z2P5.js +8 -0
  36. package/dist/cli-bundle/focused-chunks/chunk-BKPIY34S.js +2 -0
  37. package/dist/cli-bundle/focused-chunks/chunk-D4PIWE6D.js +2 -0
  38. package/dist/cli-bundle/focused-chunks/chunk-DPO7TEFX.js +31 -0
  39. package/dist/cli-bundle/focused-chunks/{chunk-3WVHTUAW.js → chunk-E3KCL7AY.js} +2 -2
  40. package/dist/cli-bundle/focused-chunks/chunk-ERAAFLPS.js +153 -0
  41. package/dist/cli-bundle/focused-chunks/chunk-F6E4JZKG.js +2 -0
  42. package/dist/cli-bundle/focused-chunks/chunk-FPSYO5ZG.js +18 -0
  43. package/dist/cli-bundle/focused-chunks/{chunk-73FIJONU.js → chunk-J5EKAIVD.js} +2 -2
  44. package/dist/cli-bundle/focused-chunks/chunk-KDH5OX3D.js +4 -0
  45. package/dist/cli-bundle/focused-chunks/chunk-OJ3LVVIS.js +2 -0
  46. package/dist/cli-bundle/focused-chunks/chunk-TL5M2PAY.js +3 -0
  47. package/dist/cli-bundle/focused-chunks/chunk-UDAZWT25.js +6 -0
  48. package/dist/cli-bundle/focused-chunks/chunk-VABB4L5Y.js +17 -0
  49. package/dist/cli-bundle/main.js +13 -13
  50. package/dist/cli-bundle/sdk-authoring.js +1 -1
  51. package/dist/cli-bundle/sdk-contracts.js +1 -1
  52. package/dist/cli-bundle/sdk-core.js +41 -39
  53. package/dist/cli-bundle/sdk-governance.js +1 -1
  54. package/dist/cli-bundle/sdk-graph.js +1 -1
  55. package/dist/cli-bundle/sdk-merge.js +1 -1
  56. package/dist/cli-bundle/sdk-query.js +1 -1
  57. package/dist/cli-bundle/sdk-runtime.js +1 -1
  58. package/dist/cli-bundle/sdk-testing.js +1 -1
  59. package/dist/cli-bundle/sdk.js +2 -2
  60. package/dist/core/diagnostics/remediation.js +9 -9
  61. package/dist/core/fs/fs-utils.d.ts +10 -0
  62. package/dist/core/fs/fs-utils.js +16 -4
  63. package/dist/core/item/item-format.js +3 -32
  64. package/dist/core/schema/fields-file.d.ts +1 -2
  65. package/dist/core/schema/fields-file.js +4 -11
  66. package/dist/core/schema/runtime-schema.js +3 -10
  67. package/dist/core/schema/status-defs-file.d.ts +1 -2
  68. package/dist/core/schema/status-defs-file.js +4 -32
  69. package/dist/core/schema/status-token.d.ts +2 -0
  70. package/dist/core/schema/status-token.js +32 -0
  71. package/dist/core/schema/type-workflows.d.ts +1 -2
  72. package/dist/core/schema/type-workflows.js +4 -11
  73. package/dist/core/session/session-state.d.ts +47 -0
  74. package/dist/core/session/session-state.js +207 -6
  75. package/dist/core/shared/author.d.ts +8 -2
  76. package/dist/core/shared/author.js +85 -52
  77. package/dist/core/shared/errors.d.ts +12 -0
  78. package/dist/core/shared/errors.js +2 -2
  79. package/dist/core/shared/text-normalization.d.ts +1 -1
  80. package/dist/core/shared/text-normalization.js +2 -2
  81. package/dist/sdk/agent/command-recovery.d.ts +4 -0
  82. package/dist/sdk/agent/command-recovery.js +52 -0
  83. package/dist/sdk/agent/command-suggestions.d.ts +4 -0
  84. package/dist/sdk/agent/command-suggestions.js +67 -0
  85. package/dist/sdk/agent/create-option-policy.d.ts +12 -0
  86. package/dist/sdk/agent/create-option-policy.js +32 -0
  87. package/dist/sdk/agent/item-addressing.d.ts +19 -0
  88. package/dist/sdk/agent/item-addressing.js +208 -0
  89. package/dist/sdk/agent/refusal-reachability.d.ts +40 -0
  90. package/dist/sdk/agent/refusal-reachability.js +72 -0
  91. package/dist/sdk/agent/subcommand-recovery.d.ts +40 -0
  92. package/dist/sdk/agent/subcommand-recovery.js +84 -0
  93. package/dist/sdk/cli-bootstrap.d.ts +9 -1
  94. package/dist/sdk/cli-bootstrap.js +25 -10
  95. package/dist/sdk/cli-contracts/commander-mutation-options.js +16 -4
  96. package/dist/sdk/cli-contracts/completeness.js +13 -3
  97. package/dist/sdk/cli-contracts/enum-contracts.d.ts +1 -1
  98. package/dist/sdk/cli-contracts/enum-contracts.js +3 -2
  99. package/dist/sdk/cli-contracts/flag-contracts.d.ts +2 -0
  100. package/dist/sdk/cli-contracts/flag-contracts.js +77 -21
  101. package/dist/sdk/cli-contracts/registration-helpers.js +10 -2
  102. package/dist/sdk/cli-contracts/runtime-contracts.js +6 -3
  103. package/dist/sdk/cli-contracts/schemas/assurance-definition.d.ts +513 -0
  104. package/dist/sdk/cli-contracts/schemas/assurance-definition.js +251 -0
  105. package/dist/sdk/cli-contracts/tool-option-contracts.d.ts +6 -0
  106. package/dist/sdk/cli-contracts/tool-option-contracts.js +4 -2
  107. package/dist/sdk/cli-contracts/tool-parameter-tables.js +96 -4
  108. package/dist/sdk/cli-contracts/tool-schema.d.ts +2 -2
  109. package/dist/sdk/cli-contracts/tool-schema.js +49 -6
  110. package/dist/sdk/cli-contracts.d.ts +1 -1
  111. package/dist/sdk/cli-contracts.js +3 -3
  112. package/dist/sdk/completion.js +9 -3
  113. package/dist/sdk/config.js +9 -3
  114. package/dist/sdk/context/semantic-session-attribution.d.ts +32 -0
  115. package/dist/sdk/context/semantic-session-attribution.js +83 -0
  116. package/dist/sdk/context-intent-runtime.js +8 -5
  117. package/dist/sdk/context-signal-store.d.ts +34 -0
  118. package/dist/sdk/context-signal-store.js +24 -2
  119. package/dist/sdk/core-governance.d.ts +3 -1
  120. package/dist/sdk/core-governance.js +5 -3
  121. package/dist/sdk/core.d.ts +1 -1
  122. package/dist/sdk/core.js +2 -2
  123. package/dist/sdk/dependency-flag-validation.d.ts +15 -1
  124. package/dist/sdk/dependency-flag-validation.js +54 -2
  125. package/dist/sdk/error-code-catalog.d.ts +13 -0
  126. package/dist/sdk/error-code-catalog.js +35 -2
  127. package/dist/sdk/extension.js +18 -17
  128. package/dist/sdk/files.d.ts +11 -0
  129. package/dist/sdk/files.js +82 -24
  130. package/dist/sdk/generated-error-code-catalog.js +104 -13
  131. package/dist/sdk/governance/assurance-action-contracts.d.ts +7 -0
  132. package/dist/sdk/governance/assurance-action-contracts.js +5 -0
  133. package/dist/sdk/governance/assurance-action.d.ts +70 -0
  134. package/dist/sdk/governance/assurance-action.js +198 -0
  135. package/dist/sdk/governance/assurance-limits.d.ts +7 -0
  136. package/dist/sdk/governance/assurance-limits.js +11 -0
  137. package/dist/sdk/governance/assurance-runtime.d.ts +20 -0
  138. package/dist/sdk/governance/assurance-runtime.js +131 -0
  139. package/dist/sdk/governance/assurance.d.ts +432 -0
  140. package/dist/sdk/governance/assurance.js +689 -0
  141. package/dist/sdk/governance/health.js +14 -7
  142. package/dist/sdk/governance/provenance-health.d.ts +13 -0
  143. package/dist/sdk/governance/provenance-health.js +63 -17
  144. package/dist/sdk/governance/validate-item-reader.d.ts +13 -0
  145. package/dist/sdk/governance/validate-item-reader.js +18 -0
  146. package/dist/sdk/governance/validate.d.ts +2 -2
  147. package/dist/sdk/governance/validate.js +15 -6
  148. package/dist/sdk/graph/run.js +8 -3
  149. package/dist/sdk/index.d.ts +10 -1
  150. package/dist/sdk/index.js +12 -3
  151. package/dist/sdk/lifecycle/claim.js +18 -3
  152. package/dist/sdk/lifecycle/close.js +17 -14
  153. package/dist/sdk/lifecycle/create.d.ts +2 -0
  154. package/dist/sdk/lifecycle/create.js +62 -9
  155. package/dist/sdk/lifecycle/focus.js +13 -3
  156. package/dist/sdk/lifecycle/plan.js +8 -3
  157. package/dist/sdk/lifecycle/update-many.js +39 -27
  158. package/dist/sdk/lifecycle/update.d.ts +6 -1
  159. package/dist/sdk/lifecycle/update.js +47 -10
  160. package/dist/sdk/merge/index.d.ts +1 -1
  161. package/dist/sdk/merge/index.js +3 -3
  162. package/dist/sdk/merge/install.d.ts +4 -0
  163. package/dist/sdk/merge/install.js +28 -16
  164. package/dist/sdk/merge/receipts.d.ts +3 -0
  165. package/dist/sdk/merge/receipts.js +81 -17
  166. package/dist/sdk/output-projection.js +24 -4
  167. package/dist/sdk/provenance.d.ts +38 -0
  168. package/dist/sdk/provenance.js +64 -2
  169. package/dist/sdk/query/context.d.ts +2 -0
  170. package/dist/sdk/query/context.js +24 -10
  171. package/dist/sdk/query/light-metadata.d.ts +3 -0
  172. package/dist/sdk/query/light-metadata.js +19 -0
  173. package/dist/sdk/runtime-extended-actions.js +22 -5
  174. package/dist/sdk/runtime-primitives.d.ts +2 -0
  175. package/dist/sdk/runtime-primitives.js +4 -2
  176. package/dist/sdk/runtime.d.ts +8 -1
  177. package/dist/sdk/runtime.js +37 -28
  178. package/dist/sdk/schema-migration.js +7 -9
  179. package/dist/sdk/similarity-scoring.d.ts +1 -2
  180. package/dist/sdk/similarity-scoring.js +4 -16
  181. package/dist/sdk/telemetry.js +7 -4
  182. package/dist/sdk/traceability/runtime-files-lookup.d.ts +8 -0
  183. package/dist/sdk/traceability/runtime-files-lookup.js +33 -0
  184. package/dist/sdk/traceability/source-traceability.d.ts +102 -0
  185. package/dist/sdk/traceability/source-traceability.js +293 -0
  186. package/dist/sdk/workspace-snapshot.d.ts +4 -0
  187. package/dist/sdk/workspace-snapshot.js +24 -11
  188. package/dist/types.d.ts +8 -2
  189. package/dist/types.js +2 -2
  190. package/docs/AGENT_GUIDE.md +3 -1
  191. package/docs/ASSURANCE.md +132 -0
  192. package/docs/COMMANDS.md +8 -5
  193. package/docs/MERGE_SAFETY.md +7 -5
  194. package/docs/README.md +3 -5
  195. package/docs/READ_OUTPUT_CONTRACTS.md +2 -2
  196. package/docs/RELEASING.md +9 -5
  197. package/docs/SDK.md +44 -8
  198. package/docs/SDK_AGENT_SESSION_CONTEXT.md +43 -6
  199. package/docs/SDK_CONTEXT.md +97 -0
  200. package/docs/SDK_CONTEXT_INTEGRITY.md +18 -3
  201. package/docs/SDK_EVIDENCE_TRACEABILITY.md +39 -1
  202. package/docs/SDK_RUNTIME_BOUNDARIES.md +36 -1
  203. package/docs/TESTING.md +12 -9
  204. package/docs/agent-task-token-baseline.json +2 -2
  205. package/docs/generated/AGENT_COMMAND_SURFACE.md +1 -0
  206. package/marketplace.json +2 -2
  207. package/package.json +7 -6
  208. package/packages/pm-beads/package.json +1 -1
  209. package/packages/pm-calendar/package.json +1 -1
  210. package/packages/pm-command-kit/package.json +1 -1
  211. package/packages/pm-digital-twin/package.json +1 -1
  212. package/packages/pm-governance-audit/package.json +1 -1
  213. package/packages/pm-guide-shell/package.json +1 -1
  214. package/packages/pm-kanban/package.json +1 -1
  215. package/packages/pm-lifecycle-hooks/package.json +1 -1
  216. package/packages/pm-linked-test-adapters/package.json +1 -1
  217. package/packages/pm-search-advanced/package.json +1 -1
  218. package/packages/pm-templates/extensions/templates/index.ts +9 -3
  219. package/packages/pm-templates/package.json +1 -1
  220. package/packages/pm-todos/package.json +1 -1
  221. package/packages/pm-vcs/package.json +1 -1
  222. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  223. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  224. package/sdk/public-surface.json +1028 -48
  225. package/dist/cli-bundle/chunks/chunk-2DTCZXSD.js +0 -13
  226. package/dist/cli-bundle/chunks/chunk-5JO6R4BS.js +0 -3
  227. package/dist/cli-bundle/chunks/chunk-5KN4DZYV.js +0 -194
  228. package/dist/cli-bundle/chunks/chunk-EF43KODO.js +0 -2
  229. package/dist/cli-bundle/chunks/chunk-HUV2Z7IS.js +0 -28
  230. package/dist/cli-bundle/chunks/chunk-MHBVCUF2.js +0 -2
  231. package/dist/cli-bundle/chunks/chunk-PYO5GZU6.js +0 -5
  232. package/dist/cli-bundle/chunks/register-mutation-FC3XLVIK.js +0 -20
  233. package/dist/cli-bundle/chunks/register-operations-YH2WAOXU.js +0 -2
  234. package/dist/cli-bundle/focused-chunks/chunk-2VVP5RAA.js +0 -153
  235. package/dist/cli-bundle/focused-chunks/chunk-3GSFUDAI.js +0 -2
  236. package/dist/cli-bundle/focused-chunks/chunk-4H6MVCK3.js +0 -16
  237. package/dist/cli-bundle/focused-chunks/chunk-54TZJ4BM.js +0 -2
  238. package/dist/cli-bundle/focused-chunks/chunk-5NK5TJ5D.js +0 -2
  239. package/dist/cli-bundle/focused-chunks/chunk-C3GCHDSQ.js +0 -31
  240. package/dist/cli-bundle/focused-chunks/chunk-JGRSQZJT.js +0 -18
  241. package/dist/cli-bundle/focused-chunks/chunk-NL57J7BZ.js +0 -4
  242. package/dist/cli-bundle/focused-chunks/chunk-P6BBIQRG.js +0 -6
  243. package/dist/cli-bundle/focused-chunks/chunk-PZAGVQNN.js +0 -3
  244. package/dist/cli-bundle/focused-chunks/chunk-QDAO3XEK.js +0 -14
  245. package/dist/cli-bundle/focused-chunks/chunk-T4IGQCSY.js +0 -2
  246. package/dist/cli-bundle/focused-chunks/chunk-U46GQJNY.js +0 -2
  247. package/dist/cli-bundle/focused-chunks/chunk-VRXJSGIT.js +0 -8
  248. package/dist/cli-bundle/focused-chunks/chunk-XC2ZW3CJ.js +0 -2
  249. package/dist/cli-bundle/focused-chunks/chunk-ZG54B4XG.js +0 -2
@@ -1,153 +0,0 @@
1
- import{D as Pr,Ga as Ue,I as ht,Ia as He,Ja as We,La as Gr,M as pn,Ma as Xr,N as yn,Na as Kr,O as hn,Oa as Jr,P as ze,Pa as Yr,Q as jr,Qa as Qr,Sa as gt,W as Fr,X as $r,a as xr,h as pt,o as Mr,p as yt,q as _e,r as W,ra as zr,s as $e,sa as Ur,ta as Hr,ua as Wr,va as Br,wa as qr,x as Lr,xa as Vr}from"./chunk-NL57J7BZ.js";import{C as mt,D as _t,E as _n,G as Rr,R as me,S as re,T as Dr,W as b,X as Fe,Y as I,Z as T,aa as G,ba as ke,ca as pe,da as E,n as lt,o as Tr,p as Or,q as Cr,r as Ar,v as ut,w as ft,x as Nr}from"./chunk-ZG54B4XG.js";import{AsyncLocalStorage as bs}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 gn=new bs,Zr=/^[A-Za-z0-9](?:[A-Za-z0-9._:-]{0,127})$/u;function bt(e,t){let n=typeof e=="string"?e.trim():"";return n.length>0?n.slice(0,t):void 0}function ye(e,t){if(e===void 0)return;let n=typeof e=="object"&&e!==null?e:{},r=bt(n.id,128),o=bt(n.parent_id,128);if(r===void 0||!Zr.test(r)||o!==void 0&&!Zr.test(o)){if(t)throw new Error("Agent episode ids must be 1-128 letters, digits, dots, underscores, colons, or hyphens.");return}let i=bt(n.label,256);return{id:r,...i===void 0?{}:{label:i},...o===void 0?{}:{parent_id:o}}}function ve(e){let t={};for(let[n,r]of Object.entries(e??{}).slice(0,32)){let o=n.trim().toLowerCase().slice(0,64),i=bt(r,256);/^[a-z][a-z0-9_-]{0,63}$/u.test(o)&&i!==void 0&&(t[o]=i)}return t}function ws(e,t,n){let r=gn.getStore(),o=ve({role:t.PM_AGENT_SESSION_ROLE,topic:t.PM_AGENT_SESSION_TOPIC}),i=ye(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={...ve(r?.provenance),...o,...ve(e?.provenance)},a=ye(e?.episode,!1)??ye(n,!1)??i??ye(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 bn(e,t){return ws(e.session_context,t,e.client_info?.episode)??{}}function qu(e,t){let n=gn.getStore(),r=ye(e.episode,!0),o=ye(n?.episode,!1),i=r!==void 0&&r.parent_id===void 0&&o!==void 0?{...r,parent_id:o.id}:r,s={...ve(n?.provenance),...ve(e.provenance)};return gn.run({...Object.keys(s).length===0?{}:{provenance:s},...i===void 0?o===void 0?{}:{episode:o}:{episode:i}},t)}function Vu(e){let t=ve(e.provenance),n=ye(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 kn}from"node:async_hooks";import{createHash as Es}from"node:crypto";import wt from"node:fs";import ks from"node:os";import eo 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]="a89b5501-1909-5ea8-b34b-8ca9b4bc5dd5")}catch{}})();var vn=["model","effort","role","topic","version"],Et=new kn,no=new kn,kt=new kn,vs=[{harness:"claude-code",environment_keys:["CLAUDE_CODE","CLAUDECODE"],model_environment_keys:["ANTHROPIC_MODEL","CLAUDE_MODEL"],session_environment_keys:["CLAUDE_CODE_SESSION_ID"],provenance_environment_keys:{effort:["CLAUDE_EFFORT"]},provenance_resolvers:{model:"claude_session_file",version:"claude_session_file"},provenance_unavailable_dimensions:["role","topic"],argv_markers:["claude","claude-code"],client_names:["claude","claude-code","claude code"]},{harness:"codex",environment_keys:["CODEX_HOME","CODEX_CI","CODEX_THREAD_ID"],model_environment_keys:["CODEX_MODEL"],session_environment_keys:["CODEX_THREAD_ID"],provenance_environment_keys:{effort:["CODEX_REASONING_EFFORT","CODEX_EFFORT"],role:["CODEX_SESSION_ROLE"]},provenance_resolvers:{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:[]}],Se=new Map,wn=/^[a-z0-9]+(?:-[a-z0-9]+)*$/u;function M(e){let t=typeof e=="string"?e.trim():void 0;return t&&t.length>0?t:void 0}function he(e){return[...new Set((e??[]).slice(0,64).map(t=>t.trim()).filter(t=>t.length>0).map(t=>t.slice(0,128)))]}function vt(e){let t=e.harness.trim().toLowerCase();if(!wn.test(t))throw new Error(`Invalid harness signal descriptor namespace: ${e.harness}`);return{harness:t,environment_keys:he(e.environment_keys),model_environment_keys:he(e.model_environment_keys),session_environment_keys:he(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),he(r)]).filter(([n])=>wn.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"&&wn.test(n[0])&&(n[1]==="ai_agent_version"||n[1]==="claude_session_file"))),provenance_unavailable_dimensions:he(e.provenance_unavailable_dimensions).map(n=>n.toLowerCase()),argv_markers:he(e.argv_markers).map(n=>n.toLowerCase()),client_names:he(e.client_names).map(n=>n.toLowerCase())}}var ro=vs.map(vt);function Ss(e,t){return JSON.stringify(e)===JSON.stringify(t)}function to(e,t){return e.toLowerCase().slice(0,512).split(/[/\\\s:=]+/u).filter(r=>r.length>0).includes(t)||e.trim().toLowerCase()===t}function Sn(e=[]){let t=[...ro,...[...Se.values()].map(r=>r.descriptor),...kt.getStore()?.descriptors??[],...e.map(vt)],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 In(e,t){for(let n of t??[]){let r=M(e[n]);if(r)return r.slice(0,256)}}function Is(e,t){let n=oo(e,t);if(n!==void 0)return n;if(t==="topic")return e.slice(0,16).map(r=>r.trim()).find(r=>/^pm-[a-z0-9][a-z0-9-]{2,63}$/u.test(r));if(t==="role"){let r=e.slice(0,8).map(o=>o.trim().toLowerCase()).find(o=>["claim","create","update","close","release","review"].includes(o));if(r==="review")return"reviewer";if(r)return"implementer"}}function oo(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 M(r[o+1])?.slice(0,256);let s=n.find(a=>i.startsWith(`${a}=`));if(s)return M(i.slice(s.length+1))?.slice(0,256)}}var xs=new Set(["implementation","implementer","investigator","orchestrator","planner","release-operator","reviewer"]);function Ie(e,t){if(e!=="role"||t===void 0)return t;let n=t.trim().toLowerCase().replaceAll(/[_\s]+/gu,"-");return xs.has(n)?n:void 0}function En(e,t){return M(e?.[t])?.slice(0,256)}var Ts=1048576;function Os(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 M(i)?.slice(0,256)}function Cs(e,t,n){let r=M(n.CLAUDE_CODE_SESSION_ID);if(!r||!/^[A-Za-z0-9_-]{1,128}$/u.test(r))return;let i=eo.resolve(t.cwd??process.cwd()).replaceAll(/[^A-Za-z0-9-]/gu,"-"),s=eo.join(t.home_dir??ks.homedir(),".claude","projects",i,`${r}.jsonl`);try{let a=wt.openSync(s,"r");try{let c=wt.fstatSync(a).size,l=Math.min(c,Ts),m=Buffer.alloc(l);wt.readSync(a,m,0,l,Math.max(0,c-l));let f=m.toString("utf8").split(`
2
- `).reverse();for(let h of f.slice(0,4096)){let _=Os(h,e);if(_)return _}return}finally{wt.closeSync(a)}}catch{return}}function As(e,t,n,r){let o=kt.getStore();if(!(t.probes_enabled!==!1&&o?.probesEnabled!==!1&&!["0","false","off"].includes(M(n.PM_AGENT_PROBES)?.toLowerCase()??"")))return;let s=r?.provenance_resolvers[e];if(s==="claude_session_file")return Cs(e,t,n);if(s==="ai_agent_version"){let a=M(n.AI_AGENT);return a?/(?:^|[@/\s])v?(\d+\.\d+(?:\.\d+)?(?:[-+][A-Za-z0-9.-]+)?)$/u.exec(a)?.[1]?.slice(0,256):void 0}}function xn(e){return e||(no.getStore()??{env:process.env,argv:process.argv})}function Ns(e,t,n,r){let o=e.environment_keys.some(a=>M(t[a])!==void 0),i=e.argv_markers.some(a=>n.some(c=>{let l=c.replaceAll("\\","/");return to(l.slice(l.lastIndexOf("/")+1),a)})),s=e.client_names.some(a=>r===a||to(r,a));return o||i||s}function Rs(e,t,n,r,o){let i=`PM_AGENT_${e.toUpperCase().replaceAll("-","_")}`,s=new Set([...vn,...Object.keys(r?.provenance_environment_keys??{})]),a,c;s.has(e)&&(a=Ie(e,M(n[i])?.slice(0,256)),c=Is(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,En(o?.provenance,e),Ie(e,In(n,l[e])),Ie(e,En(m,e)),Ie(e,En(t.provenance,e)),Ie(e,c),As(e,t,n,r)];return["override","session","environment","mcp_client","host","argv","probe"].map((v,S)=>({value:f[S],source:v})).find(v=>v.value!==void 0)}function Ds(e,t,n,r){let o=Object.keys(n?.provenance_environment_keys??{}),i=new Set([...vn,...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 c=Rs(a,e,t,n,r);c?s[a]=c:n&&(a!=="version"||n.provenance_unavailable_dimensions.includes(a))&&(s[a]=null)}return s}function ef(e){let t=e.map(vt),n=new Map(ro.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=Se.get(i.harness);if(s&&!Ss(s.descriptor,i))throw new Error(`Harness signal descriptor collision for "${i.harness}"`);r.add(i.harness)}for(let i of t){let s=Se.get(i.harness);Se.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=Se.get(i.harness);!s||s.registrations<=1?Se.delete(i.harness):s.registrations-=1}}}}function tf(e,t){return no.run(e,t)}function nf(e,t,n={}){let r=e.map(vt);return Sn(r),kt.run({descriptors:r,probesEnabled:n.probesEnabled!==!1},t)}function Tn(e){let t=xn(e),n=t.env??{},r=Sn(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(_=>Ns(_,n,o,i)),a=bn(t,n),c=Ds(t,n,s,a),l=c.model,m=[In(n,s?.session_environment_keys),M(t.client_info?.session)?.slice(0,256)].find(_=>_!==void 0),f=s?.harness&&m?Es("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(c).length>0?c:void 0],["episode",a.episode]];return Object.fromEntries(h.filter(_=>_[1]!==void 0))}function Ms(e,t,n,r,o,i){let s=n?.provenance_resolvers[e];if(t.provenance?.[e])return{status:"resolved",...s?{resolver:s}:{},rule_version:"v1"};if(i)return{status:"unavailable",reason:"invalid_value",rule_version:"v1"};if(s){let a=s==="ai_agent_version"?M(r.AI_AGENT)!==void 0:M(r.CLAUDE_CODE_SESSION_ID)!==void 0;return{status:a&&o?"failed":"unavailable",reason:a?o?"resolver_failed":"probes_disabled":"harness_unavailable",resolver:s,rule_version:"v1"}}return{status:"unavailable",reason:n?.provenance_unavailable_dimensions.includes(e)?"harness_unavailable":"resolver_not_configured",rule_version:"v1"}}function io(e){let t=xn(e),n=Tn(t),r=Sn(t.descriptors).find(l=>l.harness===n.harness),o=t.env??{},i=t.probes_enabled!==!1&&kt.getStore()?.probesEnabled!==!1&&!["0","false","off"].includes(M(o.PM_AGENT_PROBES)?.toLowerCase()??""),s=bn(t,o),a=[o.PM_AGENT_ROLE,s.provenance?.role,In(o,r?.provenance_environment_keys.role),t.client_info?.provenance?.role,t.provenance?.role,oo(t.argv??[],"role")].some(l=>{let m=M(l)?.slice(0,256);return m!==void 0&&Ie("role",m)===void 0}),c=Object.fromEntries(vn.map(l=>[l,Ms(l,n,r,o,i,l==="role"&&a)]));return{...n,provenance_outcomes:c}}function rf(){return process.env.PM_AUTHOR}function of(e){e===void 0?delete process.env.PM_AUTHOR:process.env.PM_AUTHOR=e}function sf(e){return Tn(e).harness}function Ls(e,t,n){let r=xn(n),o=Tn(r);if(e!==void 0){let s=M(e);return s?{author:s,source:"asserted",...o}:{author:"unknown",source:"unknown",...o}}if(r.env?.PM_AUTHOR!==void 0){let s=M(r.env.PM_AUTHOR);return s?{author:s,source:"asserted",...o}:{author:"unknown",source:"unknown",...o}}let i=M(t);return i?{author:i,source:"configured",...o}:o.harness?{author:`harness:${o.harness}`,source:"detected",...o}:{author:"unknown",source:"unknown",...o}}function so(e){let t=Et.getStore();return t?.author===e?t.source:e.startsWith("harness:")?"detected":e==="unknown"?"unknown":"asserted"}function ao(e){let t=Et.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 co(e){let t=Et.getStore();return t?.author===e&&t.source==="detected"&&t.instance?`${e}#${t.instance}`:e}function lo(e,t){let n=Ls(e,t);return Et.enterWith(n),n.author}import Ps from"node:crypto";import{AsyncLocalStorage as js}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 fo=new js,uo=1024;function mo(){let e=fo.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 _o(e){let t=fo.getStore();if(t===void 0)return;if(!Number.isSafeInteger(e)||e<0||e>uo)throw new Error(`Reproducible token length must be an integer between 0 and ${uo}`);let n="";for(;n.length<e;){let r=Ps.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 Fs=/^([+-]?)(\d+)([hdwm])$/i,$s=/^[+-]?\d+[hdwm](?:[+-]\d+[hdwm])+$/i,zs=/^(\d{4})(\d{2})(\d{2})$/,Us=/^(\d{4})(\d{2})(\d{2})(?:[T\s]?)(\d{2})(\d{2})(\d{2})?([.,]\d{1,3})?(Z|[+-]\d{2}:?\d{2})?$/i,Hs=/^(\d{4}-\d{2}-\d{2})[T\s](\d{2})-(\d{2})(?:-(\d{2}))?([.,]\d{1,3})?(Z|[+-]\d{2}:?\d{2})?$/i,Ws=/^(\d{4}-\d{2}-\d{2})[T\s](\d{2})(\d{2})(\d{2})?([.,]\d{1,3})?(Z|[+-]\d{2}:?\d{2})?$/i;function ge(){return mo()??new Date().toISOString()}function oe(e){return Number.isFinite(Date.parse(e))}var Bs=1e4,St=new Map;function po(e){let t=St.get(e);if(t!==void 0)return t;let n=Date.parse(e);return St.size>=Bs&&gt(St),St.set(e,n),n}function F(e,t){let n=po(e),r=po(t);return Number.isFinite(n)&&Number.isFinite(r)&&n!==r?n-r:e.localeCompare(t)}function pf(e,t){return!(t.deadlineBefore&&(!e.deadline||F(e.deadline,t.deadlineBefore)>0)||t.deadlineAfter&&(!e.deadline||F(e.deadline,t.deadlineAfter)<0)||t.updatedAfter&&F(e.updated_at,t.updatedAfter)<0||t.updatedBefore&&F(e.updated_at,t.updatedBefore)>0||t.createdAfter&&F(e.created_at,t.createdAfter)<0||t.createdBefore&&F(e.created_at,t.createdBefore)>0)}function On(e){return e?`.${e.slice(1).padEnd(3,"0").slice(0,3)}`:""}function Cn(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 qs(e,t,n){n&&n!==t&&(e.includes(n)||e.push(n))}function Vs(e){let t=[],n=l=>qs(t,e,l),r=zs.exec(e);if(r){let[,l,m,f]=r;n(`${l}-${m}-${f}`)}let o=Us.exec(e);if(o){let[,l,m,f,h,_,v,S,w]=o,N=v?`:${v}`:"";n(`${l}-${m}-${f}T${h}:${_}${N}${On(S)}${Cn(w)}`)}let i=Hs.exec(e);if(i){let[,l,m,f,h,_,v]=i,S=h?`:${h}`:"";n(`${l}T${m}:${f}${S}${On(_)}${Cn(v)}`)}let s=Ws.exec(e);if(s){let[,l,m,f,h,_,v]=s,S=h?`:${h}`:"";n(`${l}T${m}:${f}${S}${On(_)}${Cn(v)}`)}let a=10,c=e.slice(0,a);if(Xs(c)){let l=a;for(;l<e.length&&Ks(e[l]);)l+=1;l<e.length&&n(`${c}T${e.slice(l)}`)}return t}function Gs(e){let t=Date.parse(e);if(Number.isFinite(t))return t;for(let n of Vs(e)){let r=Date.parse(n);if(Number.isFinite(r))return r}return Number.NaN}function Xs(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 Ks(e){return e?e===" "||e===" "||e===`
3
- `||e==="\r"||e==="\f"||e==="\v":!1}function yo(e,t){return new Date(Date.UTC(e,t+1,0)).getUTCDate()}var Js=["January","February","March","April","May","June","July","August","September","October","November","December"],Ys=/^(\d{4})-(\d{2})-(\d{2})/,Qs=/^(\d{4})(\d{2})(\d{2})(?:[T ]?\d{2}|$)/;function Zs(e,t,n){let r=Ys.exec(t)??Qs.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 c=yo(o,i-1);if(s<1||s>c)throw new T(`Invalid ${a} value "${e}". ${Js[i-1]} ${o} has ${c} days, so day "${r[3]}" does not exist. Use a real YYYY-MM-DD calendar date.`,I.USAGE)}function ea(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,yo(i,s));return n.setUTCFullYear(i,s,a),n}function yf(e,t=new Date,n="deadline"){let r=e.trim();if(r.toLowerCase()==="now")return t.toISOString();let o=Fs.exec(r);if(o){let s=o[1]==="-"?-1:1,a=Number.parseInt(o[2],10)*s,c=o[3].toLowerCase();if(c==="m")return ea(t,a).toISOString();let l=c==="h"?3600*1e3:c==="d"?1440*60*1e3:10080*60*1e3;return new Date(t.getTime()+a*l).toISOString()}Zs(e,r,n);let i=Gs(r);if(!Number.isFinite(i)){let s=n.trim().length>0?n.trim():"deadline",a=$s.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 xe=1,ho=1;function gf(e){let t=e.pm_format_version;return typeof t=="number"&&Number.isInteger(t)&&t>=xe?t:xe}function go(e){if(!(typeof e!="number"||!Number.isInteger(e)||e<=xe))return e}function ta(e,t=ho){return e<t?"outdated":e>t?"ahead":"current"}function bf(e,t=ho){let n=[],r=[];for(let o of e){let i=ta(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 na={"in-progress":"in_progress",cancelled:"canceled"};function It(e,t){if(t){let o=Jr(e,t);if(o)return o}if(typeof e!="string")return;let n=e.trim().toLowerCase();if(!n)return;let r=na[n]??n;if(lt.includes(r))return r}function ra(e,t){return It(e,t)??e}function vf(e,t){return t.terminal_statuses.has(ra(e,t))}import{encode as la}from"@toon-format/toon";import{isDeepStrictEqual as vo}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 An(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 oa(e){return[...new Set([Qr(e),An(e.key),An(e.cli_flag),...e.cli_aliases.map(t=>An(t))])]}function Eo(e,t){for(let n of oa(t)){if(!Object.hasOwn(e,n))continue;let r=e[n];if(r!==void 0)return r}}function ko(e){return Array.isArray(e)?e.flatMap(t=>ko(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 bo(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 wo(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 ia(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 Be(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:ia(i,r,e.type)}if(e.repeatable||e.type==="string_array"){let i=ko(t);return e.type==="number"?i.map(s=>wo(s,r)):e.type==="boolean"?i.map(s=>bo(s,r)):i}let o=Array.isArray(t)?t[t.length-1]:t;if(o!==void 0)return e.type==="number"?wo(o,r):e.type==="boolean"?bo(o,r):typeof o=="string"?o:String(o)}function sa(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 Of(e,t,n){let r={},o=[];for(let i of t.command_to_fields.get("create")??[]){let s=Eo(e,i);if(s===void 0){sa(i,n)&&o.push(`--${i.cli_flag}`);continue}r[i.metadata_key]=Be(i,s)}return{values:r,missing_required_flags:[...new Set(o)].sort((i,s)=>i.localeCompare(s))}}function Cf(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=Eo(e,s);a!==void 0&&(i.has(s.metadata_key)||(i.add(s.metadata_key),r[s.metadata_key]=Be(s,a)))}return r}import{decode as aa}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 Nn(e){return{value:aa(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 ca=/^\s*(<<<<<<<|=======|>>>>>>>)(?:\s.*)?$/;function da(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(ca);if(!i)continue;let s=i[1];n.push({line:r+1,marker:s,text:o})}return n}function xt(e){return da(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 ua=new Set(["schema","tracker","auto"]),fa=new Set(["passed","failed","stopped","canceled"]),ma=new Set(Rr);function Ce(e){return e.replaceAll("\\","/")}function Fn(e){for(let t of e)if(t!==0)return t;return 0}function Ot(e){for(let[t,n]of Object.entries(e))n===void 0&&delete e[t]}var To=["id","title","description","created_at","updated_at"],_a=new Set(re);function Oo(e){if(e?.schema)return{statusRegistry:Kr(e.schema),fieldRegistry:Yr(e.schema),unknownFieldPolicy:e.schema.unknown_field_policy??"allow",extensionFieldNames:new Set(e.extensionFieldNames??[]),onWarning:e.onWarning}}function pa(e,t){return e.required?e.required_types.length===0?!0:e.required_types.map(n=>n.toLowerCase()).includes(t.trim().toLowerCase()):!1}function se(e){let t=e.match(/^([a-z_][\w.]*)\s/u)?.[1];throw new 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 Ge(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 Co(e){let t=new Set(_a);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||se(t)}function Xe(e,t){return(typeof e!="object"||e===null||Array.isArray(e))&&se(t),e}function Rn(e,t){let n=e[t];g(typeof n=="string",`${t} must be a string`),g(oe(n),`${t} must be a valid ISO timestamp`)}function So(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 Ln(e,t,n){let r=e[t];r!==void 0&&(g(typeof r=="string",`${n} must be a string`),g(oe(r),`${n} must be a valid ISO timestamp`))}function ya(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(_t.includes(n),`event.recurrence.by_weekday entries must be one of: ${_t.join(", ")}`)}}}function ha(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 ga(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(oe(t),"event.recurrence.exdates entries must be valid ISO timestamps")}}function ba(e){let t=Xe(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(mt.includes(n),`event.recurrence.freq must be one of: ${mt.join(", ")}`),So(t,"interval","event.recurrence.interval"),So(t,"count","event.recurrence.count"),Ln(t,"until","event.recurrence.until"),ya(t.by_weekday),ha(t.by_month_day),ga(t.exdates)}function wa(e){for(let r of To)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>=xe,`pm_format_version must be an integer >= ${xe}`),t}function Ea(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=It(n,r),i=r?r.definitions.map(s=>s.id):[...lt];g(o!==void 0,`status must be one of: ${i.join(", ")}`)}function ka(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 va(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"||ft.includes(n);g(r,`confidence string value must be one of: ${[...ft,"med"].join(", ")}`);return}g(!1,"confidence must be a number or string")}}function Sa(e){let t=e.severity;if(t===void 0)return;typeof t!="string"&&se("severity must be a string");let n=t.trim().toLowerCase(),r=n==="med"||ut.includes(n);g(r,`severity value must be one of: ${[...ut,"med"].join(", ")}`)}function Ia(e){e.regression!==void 0&&typeof e.regression!="boolean"&&se("regression must be a boolean")}function xa(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=Xe(n,"reminders entries must be objects");g(typeof r.at=="string","reminder.at must be a string"),g(oe(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 Ta(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 Oa(e){e.recurrence!==void 0&&(ba(e.recurrence),e.recurrence.until!==void 0&&g(F(e.recurrence.until,e.start_at)>=0,"event.recurrence.until must be at or after event.start_at"))}function Ca(e){let t=Xe(e,"events entries must be objects");g(typeof t.start_at=="string","event.start_at must be a string"),g(oe(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(oe(t.end_at),"event.end_at must be a valid ISO timestamp"),g(F(t.end_at,t.start_at)>0,"event.end_at must be after event.start_at")),Ta(t),t.all_day!==void 0&&g(typeof t.all_day=="boolean","event.all_day must be a boolean"),Oa(t)}function Aa(e){let t=e.events;if(t!==void 0){g(Array.isArray(t),"events must be an array");for(let n of t)Ca(n)}}function Na(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 Ra(e){let t=e.type_options;if(t===void 0)return;let n=Xe(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 Da(e,t,n){if(n?.fieldRegistry)for(let r of n.fieldRegistry.definitions){let o=e[r.metadata_key];if(o===void 0){pa(r,t)&&se(`missing required schema field: ${r.metadata_key}`);continue}try{e[r.metadata_key]=Be(r,o,`metadata field "${r.metadata_key}"`)}catch(i){se(String(i?.message).replace(/^Invalid\s+/u,""))}}}function Ma(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let n=Co(t),r=Object.keys(e).filter(o=>!n.has(o)).sort((o,i)=>o.localeCompare(i));r.length!==0&&(t.unknownFieldPolicy==="reject"?se(`unknown schema fields are not allowed: ${r.join(", ")}`):t.onWarning?.(`item_unknown_schema_fields:${r.join(",")}`))}function Pn(e,t){let n=Xe(e,"item metadata must be an object"),r=wa(n);Ea(n,t),ka(n),va(n),Sa(n),Ia(n),Rn(n,"created_at"),Rn(n,"updated_at"),n.deadline!==void 0&&Rn(n,"deadline"),xa(n),Aa(n),Ln(n,"closed_at","closed_at"),Ln(n,"completed_at","completed_at"),Na(n),Ra(n),Da(n,r,t),Ma(n,t)}function La(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=F(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 Dn(e){if(!(!e||e.length===0))return[...e].sort((t,n)=>{let r=F(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 Pa(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=F(n.at,r.at);return o!==0?o:n.text.localeCompare(r.text)});return t.length===0?void 0:t}function ja(e){if(!e)return;let t=e.freq.trim().toLowerCase();if(!mt.includes(t))return;let n=Array.from(new Set((e.by_weekday??[]).map(s=>s.trim().toLowerCase()).filter(s=>_t.includes(s)))).sort((s,a)=>_n(s)-_n(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=>oe(s)))).sort((s,a)=>F(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 Fa(e){return!Array.isArray(e)||e.length===0?void 0:[...e].map($a).sort(za)}function $a(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:ja(e.recurrence)};return Ot(t),t}function za(e,t){return Fn([F(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 Ua(e){if(!(!e||e.length===0))return e.map(t=>({path:Ce(t.path),scope:t.scope,note:t.note?.trim()||void 0}))}function Ha(e){if(!e||e.length===0)return;let t=e.map(qa).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)=>Fn([F(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 Te(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?Math.floor(e):void 0}function Wa(e){return typeof e=="number"&&Number.isFinite(e)&&e>=1?Math.floor(e):void 0}function Mn(e){return typeof e=="string"?e:""}function Ba(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 qa(e){let t=typeof e.run_id=="string"?e.run_id.trim():"",n=e.kind==="test"||e.kind==="test-all"?e.kind:"test",r=fa.has(e.status)?e.status:"failed",o={run_id:t,kind:n,status:r,started_at:Mn(e.started_at),finished_at:Mn(e.finished_at),recorded_at:Mn(e.recorded_at),attempt:Wa(e.attempt),resumed_from:e.resumed_from?.trim()||void 0,passed:Te(e.passed)??0,failed:Te(e.failed)??0,skipped:Te(e.skipped)??0,items:Te(e.items),linked_tests:Te(e.linked_tests),fail_on_skipped_triggered:e.fail_on_skipped_triggered===!0?!0:void 0,measurements:Ba(e.measurements)};return Ot(o),o}function Va(e){if(!(!Array.isArray(e)||e.length===0))return[...e].map(Ka).sort(Ja)}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 Ao(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function $n(e){return e==="__proto__"||e==="constructor"||e==="prototype"}function Io(e){if(!Ao(e))return;let t=Object.entries(e).map(([n,r])=>[n.trim(),String(r).trim()]).filter(([n,r])=>n.length>0&&!$n(n)&&r.length>0).sort(([n],[r])=>n.localeCompare(r));return t.length>0?Object.fromEntries(t):void 0}function Ga(e){if(!Ao(e))return;let t=Object.entries(e).map(([n,r])=>[n.trim(),Number(r)]).filter(([n,r])=>n.length>0&&!$n(n)&&Number.isFinite(r)).sort(([n],[r])=>n.localeCompare(r));return t.length>0?Object.fromEntries(t):void 0}function Xa(e){let t=e?.trim().toLowerCase();if(!(!t||!ua.has(t)))return t}function Ka(e){let t={command:e.command?.trim()||void 0,path:e.path?Ce(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:Xa(e.pm_context_mode),env_set:Io(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:Te(e.assert_stdout_min_lines),assert_json_field_equals:Io(e.assert_json_field_equals),assert_json_field_gte:Ga(e.assert_json_field_gte),note:e.note?.trim()||void 0};return Ot(t),t}function Ja(e,t){return Fn([e.scope.localeCompare(t.scope),Tt(e.path,t.path),Tt(e.command,t.command),xo(e.timeout_seconds,t.timeout_seconds),Tt(e.pm_context_mode,t.pm_context_mode),+!!e.shared_host_safe-+!!t.shared_host_safe,ie(e.env_clear,t.env_clear,[]),ie(e.env_set,t.env_set,{}),ie(e.assert_stdout_contains,t.assert_stdout_contains,[]),ie(e.assert_stdout_regex,t.assert_stdout_regex,[]),ie(e.assert_stderr_contains,t.assert_stderr_contains,[]),ie(e.assert_stderr_regex,t.assert_stderr_regex,[]),xo(e.assert_stdout_min_lines,t.assert_stdout_min_lines),ie(e.assert_json_field_equals,t.assert_json_field_equals,{}),ie(e.assert_json_field_gte,t.assert_json_field_gte,{}),Tt(e.note,t.note)])}function Tt(e,t){return(e??"").localeCompare(t??"")}function xo(e,t){return(e??0)-(t??0)}function ie(e,t,n){return JSON.stringify(e??n).localeCompare(JSON.stringify(t??n))}function Ya(e){if(!(!e||e.length===0))return[...e].map(t=>({path:Ce(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 Qa(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 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=y(r.path);if(!o)continue;let i={path:Ce(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 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=y(r.command),i=y(r.path);if(!o&&!i)continue;let s={};o&&(s.command=o),i&&(s.path=Ce(i));let a=y(r.note);a&&(s.note=a),t.push(s)}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.path);if(!o)continue;let i={path:Ce(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 nc(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&&ma.has(o)?o:void 0,s=$r(t.order)??Number.NaN,a=typeof t.created_at=="string"?t.created_at:"",c=typeof t.updated_at=="string"?t.updated_at:"";if(!n||!r||!i||!Number.isFinite(s)||!a||!c)return;let l={id:n,order:s,title:r,status:i,created_at:a,updated_at:c};return rc(l,t),l}function rc(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",Qa],["files","files",Za],["tests","tests",ec],["docs","docs",tc]];for(let[i,s,a]of o){let c=a(t[s]);c&&(e[i]=c)}}function oc(e){if(!Array.isArray(e))return;let t=e.flatMap(n=>{let r=nc(n);return r?[r]:[]});return t.sort((n,r)=>n.order-r.order),t.length>0?t:void 0}function ic(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},c=y(r.rationale);c&&(a.rationale=c);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 sc(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},c=y(r.step_id);c&&(a.step_id=c),t.push(a)}return t.length>0?t:void 0}function ac(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 cc(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 Oe(e){let t=0;for(;t<e.length&&e[t]===`
4
- `;)t+=1;return e.slice(t).trimEnd()}function dc(e){if(e===void 0)return;if(typeof e=="number")return e;let t=e.trim().toLowerCase();if(t==="med")return"medium";if(ft.includes(t))return t}function lc(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(t==="med")return"medium";if(ut.includes(t))return t}function Ve(e){return e||void 0}function uc(e,t){let n=e,r=t;for(let[o,i]of Object.entries(r))$n(o)||Object.prototype.hasOwnProperty.call(n,o)||i===void 0||(n[o]=i)}function fc(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]=Be(r,o,`metadata field "${r.metadata_key}"`))}}function mc(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let n=Co(t),o=Object.keys(e).filter(i=>!n.has(i)).sort((i,s)=>i.localeCompare(s));o.length>0&&t.unknownFieldPolicy==="reject"&&se(`unknown schema fields are not allowed: ${o.join(", ")}`),o.length>0&&t.onWarning?.(`item_unknown_schema_fields:${o.join(",")}`)}function Ct(e,t={}){let n=Oo(t),r=It(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:go(e.pm_format_version),source_type:y(e.source_type),type_options:cc(e.type_options),status:r,priority:e.priority,tags:o,created_at:e.created_at,updated_at:e.updated_at,dependencies:La(e.dependencies),comments:Dn(e.comments),notes:Dn(e.notes),learnings:Dn(e.learnings),files:Ua(e.files),tests:Va(e.tests),test_runs:Ha(e.test_runs),docs:Ya(e.docs),deadline:Ve(e.deadline),reminders:Pa(e.reminders),events:Fa(e.events),closed_at:Ve(e.closed_at),completed_at:Ve(e.completed_at),assignee:y(e.assignee),claim_principal:y(e.claim_principal),source_owner:y(e.source_owner),author:Ve(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:dc(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:lc(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:Ve(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:oc(e.plan_steps),plan_decisions:ic(e.plan_decisions),plan_discoveries:sc(e.plan_discoveries),plan_validation:ac(e.plan_validation)};return uc(i,e),fc(i,n),mc(i,n),Ot(i),i}function No(e){return E(e,re)}function _c(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 pc(e){if(!e.startsWith("{"))return{frontMatter:"",body:e};let t=_c(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 yc(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 jn(e,t){return Ct(e,{...t,onWarning:void 0})}function hc(e,t,n={}){let r=yc(e);r.stripped&&n.onWarning?.("json_markdown_leading_yaml_frontmatter_ignored");let{frontMatter:o,body:i}=pc(r.content);o||(e.trimStart().startsWith("{")&&Ge("json_markdown","JSON front matter is not valid JSON"),Ge("json_markdown","JSON Markdown item document is missing JSON front matter"));let s;try{s=JSON.parse(o)}catch{Ge("json_markdown","JSON front matter is not valid JSON")}return Pn(s,t),{metadata:jn(s,n),body:Oe(i)}}function gc(e,t,n={}){let r;try{r=Nn(e).value}catch{Ge("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(!To.some(a=>Object.prototype.hasOwnProperty.call(o,a))&&!Object.prototype.hasOwnProperty.call(o,"front_matter")&&Ge("toon","TOON input does not have the shape of an item document"),Object.prototype.hasOwnProperty.call(o,"front_matter"))return Pn(o.front_matter,t),g(o.body===void 0||typeof o.body=="string","TOON item document body must be a string"),{metadata:jn(o.front_matter,n),body:Oe(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"),Pn(s,t),{metadata:jn(s,n),body:Oe(typeof i=="string"?i:"")}}function bc(e,t={}){let n=Ct(e.metadata,t),r=No(n),o=JSON.stringify(r,null,2),i=Oe(e.body??"");return i?`${o}
6
-
7
- ${i}
8
- `:`${o}
9
- `}function wc(e,t={}){let n=Ct(e.metadata,t),r=No(n),o=Oe(e.body??""),i={...r,body:o},s=JSON.parse(JSON.stringify(i)),a=la(s),c;try{c=Nn(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(!vo(c,s)){let l=typeof c=="object"&&c!==null&&!Array.isArray(c)?c:{},m=Object.keys(s).find(f=>!vo(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 At(e,t={}){let n=xt(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=Oo(t);return r==="toon"?gc(e,o,t):hc(e,o,t)}function Ro(e,t={}){return(t.format??"toon")==="toon"?wc(e,t):bc(e,t)}function B(e,t={}){return{metadata:Ct(e.metadata,t),body:Oe(e.body??"")}}import{existsSync as kc}from"node:fs";import{AsyncLocalStorage as vc}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 Qf(){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 Ec(){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 Ae=null,Mo=null,Sc=null,Ic=null,zn=null,xc=null,Lo=null,Tc=null;var Oc=[],Po=new vc;function L(){return Po.getStore()}function um(e){return Po.run({hooks:null,commands:null,parsers:null,preflight:null,services:null,renderers:null,registrations:null,commandContext:null,commandResult:void 0,affectedItems:[]},e)}var Cc=new Set(["body","comments","dependencies","docs","events","files","learnings","notes","reminders","test_runs","tests"]);function Do(e){let t=Q.resolve(e);for(;;){if(kc(Q.join(t,".git")))return t;let n=Q.dirname(t);if(n===t)return;t=n}}function Ac(e){let t=process.env.PM_SOURCE_WORKSPACE_ROOT?.trim()||process.cwd(),n=Do(t)??Q.resolve(t),r=Do(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 fm(e){let t=L();if(t){t.hooks=e;return}Ae=e}function mm(e){let t=L();if(t){t.commands=e;return}Mo=e}function _m(e){let t=L();if(t){t.parsers=e;return}Sc=e}function pm(e){let t=L();if(t){t.preflight=e;return}Ic=e}function ym(e){let t=L();if(t){t.services=e;return}zn=e}function hm(e){let t=L();if(t){t.renderers=e;return}xc=e}function gm(e){let t=L();if(t){t.registrations=e;return}Lo=e}function Ke(){let e=L();return e?e.registrations:Lo}function Un(e){if(!e)return;let t=L();t?t.affectedItems.push(e):Oc.push(e)}function Nt(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"||Cc.has(i)||Object.hasOwn(r,i)&&r[i]!==void 0&&(n[i]=r[i])}return n}async function q(e){let t=L(),n=t?t.hooks:Ae;return n?Ur(n,e):[]}async function Hn(e){let t=L(),n=t?t.hooks:Ae;n&&await zr(n,e)}async function X(e){let t=L(),n=t?t.hooks:Ae;return n?Hr(n,e):[]}function Wn(){let e=L();return((e?e.hooks:Ae)?.onRead?.length??0)>0}async function bm(e){let t=L(),n=t?t.hooks:Ae;return n?Wr(n,e):[]}async function wm(e){let t=L(),n=t?t.commands:Mo;return n?Br(n,{...e,...Ac(e.pm_root)}):{handled:!1,result:null,warnings:[]}}function jo(e,t){let n=L(),r=n?n.commandContext:Tc;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=L(),r=n?n.services:zn;return r?Vr(r,jo(e,t)):{handled:!1,result:t,warnings:[]}}function Fo(e,t){let n=L(),r=n?n.services:zn;return r?qr(r,jo(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 Je(e,t){let n=await _e(e);if(n===null)return[];if(await X({path:e,scope:"project"}),n.trim()==="")return[];let r=xt(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 er 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 Jo from"fast-json-patch";import ae from"node:fs/promises";import ee from"node:path";import{randomUUID as Nc}from"node:crypto";import{createRequire as Rc}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 Dc="history-event-index.sqlite",Bn="2";function Mt(e){return ee.join(e,"runtime",Dc)}function Mc(e){try{return e(["node","sqlite"].join(":")).DatabaseSync??null}catch{return null}}function Lc(e,t){let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>=22?Mc(t):null}var Rt;function qn(){return Rt!==void 0||(Rt=Lc(process.versions.node,Rc(import.meta.url))),Rt}function Pc(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(Bn)}function $o(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 Fm(e){let t=qn();if(!t)return!1;let n=ee.join(e,"history"),o=(await ae.readdir(n,{withFileTypes:!0}).catch(c=>{if(typeof c=="object"&&c!==null&&"code"in c&&c.code==="ENOENT")return[];throw c})).filter(c=>c.isFile()&&c.name.endsWith(".jsonl")).sort((c,l)=>c.name.localeCompare(l.name)),i=Mt(e);await ae.mkdir(ee.dirname(i),{recursive:!0});let s=`${i}.${Nc()}.tmp`,a;try{a=new t(s),Pc(a),a.exec("BEGIN IMMEDIATE");for(let c of o){let l=c.name.slice(0,-6),m=await Je(ee.join(n,c.name),l);for(let[f,h]of m.entries())$o(a,{stream_id:l,stream_offset:f,entry:h})}return a.exec("COMMIT"),a.close(),a=void 0,await ae.rm(i,{force:!0}),await ae.rename(s,i),!0}catch(c){throw a?.close(),await ae.rm(s,{force:!0}),c}}async function zo(e,t){let n=ee.dirname(ee.dirname(e)),r=Mt(n);try{await ae.access(r)}catch{return}let o=qn();if(!o)return;let i;try{if(i=new o(r),i.prepare("SELECT value FROM metadata WHERE key = 'version'").get()?.value!==Bn)throw new TypeError("Unsupported history event index version");let a=ee.basename(e,".jsonl"),c=i.prepare("SELECT COALESCE(MAX(stream_offset), -1) + 1 AS value FROM events WHERE stream_id = ?").get(a);$o(i,{stream_id:a,stream_offset:Number(c.value),entry:t}),i.close()}catch{i?.close(),await ae.rm(r,{force:!0})}}async function Lt(e){await ae.rm(Mt(ee.dirname(ee.dirname(e))),{force:!0})}function Dt(e,t,n,r){!r||r.length===0||(e.push(`${n} IN (${r.map(()=>"?").join(", ")})`),t.push(...r))}function jc(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 $m(e,t){let n=qn();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)),Dt(r,o,"op",t.ops),Dt(r,o,"author",t.authors),jc(r,o,t.harnesses,t.harness_alias_authors),Dt(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);Dt(r,o,"stream_id",t.stream_ids);let i=r.length===0?"":` WHERE ${r.join(" AND ")}`,s;try{if(s=new n(Mt(e),{readOnly:!0}),s.prepare("SELECT value FROM metadata WHERE key = 'version'").get()?.value!==Bn)return s.close(),null;let c=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=c.length>t.limit,m=c.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 Qn from"node:fs/promises";import Ne 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 Pt="changed_fields",Fc="changed_field_count",Vn="rows",$c=new Set(["apply","rollback"]),Uo=new Set(["deleted","would_delete"]);function be(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function Ho(e){let t=e[Pt];if(!Array.isArray(t))return null;let n=Object.getPrototypeOf(e)===null?Object.create(null):{};for(let[r,o]of Object.entries(e))r!==Pt&&(n[r]=o);return n[Fc]=t.length,n}function zc(e){return"item"in e&&Array.isArray(e[Pt])}function Uc(e){return typeof e.mode=="string"&&$c.has(e.mode)&&Array.isArray(e[Vn])}function Hc(e,t){let n=Object.getPrototypeOf(e)===null?Object.create(null):{};return Object.assign(n,e),n[Vn]=t,n}function Wc(e){if(!be(e))return null;let t=be(e.item)?e.item:be(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"&&Uo.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 Bc(e){if(!be(e)||!be(e.item)||typeof e.item.id!="string")return null;let t=e[Pt];if(!Array.isArray(t))return null;let n={id:e.item.id,...typeof e.outcome=="string"&&Uo.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 qc(e){let t=Uc(e)?e[Vn]:void 0;if(!Array.isArray(t))return{projected:e,changed:!1};let n=!1,r=t.map(o=>{if(!be(o))return o;let i=Ho(o);return i?(n=!0,i):o});return n?{projected:Hc(e,r),changed:!0}:{projected:e,changed:!1}}function Vc(e,t={}){if(t.idOnly===!0){let a=Wc(e);if(a!==null)return a}if(t.compactEnvelope===!0){let a=Bc(e);if(a!==null)return a}if((t.changedFields??"full")==="full"||!be(e))return e;let r=!1,o=e,i=zc(e)?Ho(e):null;i!==null&&(o=i,r=!0);let s=qc(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]="b52d2756-f640-5f53-981f-05fa23fa1718")}catch{}})();var o_=new Set(Object.values(I));var Wo=!1;function Ye(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Xn(e){return typeof e=="object"&&e!==null&&e.code==="EPIPE"}function Gc(){(process.exitCode===void 0||process.exitCode===I.SUCCESS)&&(process.exitCode=I.SUCCESS)}function Xc(){(process.exitCode===void 0||process.exitCode===I.SUCCESS)&&(process.exitCode=I.GENERIC_FAILURE)}function Kn(e){if(e==="stdout"){Gc();return}Xc()}function Bo(e){let t=e instanceof Error?e:new Error(String(e));setImmediate(()=>{throw t})}function Kc(){Wo||(Wo=!0,process.stdout.on("error",e=>{if(Xn(e)){Kn("stdout");return}Bo(e)}),process.stderr.on("error",e=>{if(Xn(e)){Kn("stderr");return}Bo(e)}))}function Jc(e,t){Kc();try{return e==="stdout"?process.stdout.write(t):process.stderr.write(t),!0}catch(n){if(Xn(n))return Kn(e),!1;throw n}}function jt(e){return Jc("stderr",e)}function Gn(e){return typeof e=="string"?JSON.stringify(e):typeof e=="number"||typeof e=="boolean"?String(e):e===null?"null":JSON.stringify(e)}function Jn(e){if(e!=null){if(Array.isArray(e)){let t=e.map(n=>Jn(n)).filter(n=>n!==void 0);return t.length>0?t:void 0}if(Ye(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=Jn(r);o!==void 0&&(t[n]=o)}return Object.keys(t).length>0?t:void 0}return e}}function Yn(e,t){let n=" ".repeat(t);if(Array.isArray(e))return e.length===0?"[]":e.map(r=>{if(!Ye(r)&&!Array.isArray(r))return`${n}- ${Gn(r)}`;let i=Yn(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(Ye(e)){let r=Object.entries(e);return r.length===0?"{}":r.map(([o,i])=>!Ye(i)&&!Array.isArray(i)?`${n}${o}: ${Gn(i)}`:Array.isArray(i)&&i.length===0?`${n}${o}: []`:Ye(i)&&Object.keys(i).length===0?`${n}${o}: {}`:`${n}${o}:
49
- ${Yn(i,t+1)}`).join(`
50
- `)}return`${n}${Gn(e)}`}function i_(e,t){if(t==="json")return`${JSON.stringify(e,null,2)}
51
- `;let n=Jn(e);return n===void 0?`{}
52
- `:`${Yn(n,0)}
53
- `}function s_(e){let t=Fo("error_format",{message:e}),n=t.handled&&typeof t.result=="string"?t.result:e;jt(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 Yc=Ne.join("runtime","history-drift-cache.json"),qo={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 Vo(e){return typeof e=="object"&&e!==null&&"code"in e&&typeof e.code=="string"?e.code:void 0}async function Qc(e){let t=Ne.join(e,Yc),n=!1,r="invalid_cache_path";try{n=(await Qn.stat(await Qn.realpath(e))).isDirectory()}catch(o){let i=Vo(o);r=i===void 0?"unknown":qo[i]??"filesystem_error"}if(!n){jt(`[pm] warning: history_drift_cache_invalidation_failed:${r}
56
- `);return}try{await Qn.rm(t,{force:!0})}catch(o){let i=Vo(o);if(i==="ENOENT")return;let s=i===void 0?"unknown":qo[i]??"filesystem_error";jt(`[pm] warning: history_drift_cache_invalidation_failed:${s}
57
- `)}}async function Qe(e){let t=Ne.dirname(Ne.resolve(e));Ne.basename(t)==="history"&&await Qc(Ne.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]="ce2dace3-7c86-5edf-8bda-083a0b3e7f2b")}catch{}})();var ed={front_matter:{},body:""};function td(e){return!e||e==="/"?[]:e.startsWith("/")?e.slice(1).split("/").map(t=>t.replaceAll("~1","/").replaceAll("~0","~")):[]}function nd(e,t){let n=td(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 rd(e,t){let n=[],r=structuredClone(e);for(let o of t){let i=o.op==="replace"&&!nd(r,o.path)?{...o,op:"add"}:o;n.push(i),r=Jo.applyPatch(r,[i],!0,!0).newDocument}return n}function Zn(e){if(!(e.metadata&&Object.keys(e.metadata).length>0))return{front_matter:{},body:e.body??""};let n=B(e);return{front_matter:E(n.metadata,re),body:n.body}}function Go(e){if(!(e.metadata&&Object.keys(e.metadata).length>0))return{metadata:{},body:e.body??""};let n=B(e);return{metadata:E(n.metadata,re),body:n.body}}function Yo(e){return pe(G(Zn(e)))}function v_(){return pe(G(ed))}function Re(e){let t=Zn(e.before),n=Zn(e.after),r=Go(e.before),o=Go(e.after),i=Jo.compare(r,o),s=rd(r,i),a=ao(e.author),c=a.harness?Object.fromEntries(Object.entries(io().provenance_outcomes).filter(([,m])=>m.status==="failed")):void 0,l=c===void 0||Object.keys(c).length===0?e.context:{...e.context,agent_provenance_outcomes:c};return{ts:e.nowIso,author:e.author,author_source:e.authorSource??so(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:pe(G(t)),after_hash:pe(G(n)),message:e.message===void 0?void 0:e.message,...l===void 0?{}:{context:l}}}function Xo(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function od(e){let t=e.ts.trim();return t.length>0?t:ge()}function Ko(e,t){let n=e.ts;return typeof n=="string"&&n.trim().length>0?e:{...e,ts:t}}function Ft(e,t){let n=od(t);if(typeof e=="string"){try{let r=JSON.parse(e);if(Xo(r))return JSON.stringify(Ko(r,n))}catch{}return e}return Xo(e)?JSON.stringify(Ko(e,n)):JSON.stringify(e)}async function De(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 $e(e,Ft(n.result,t)),await Qe(e),await Lt(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 $e(o,Ft(r.line,t)),await Qe(o),await Lt(o);return}await $e(o,Ft(r.entry??t,t)),await Qe(o),await Lt(o);return}}await $e(e,Ft(t,t)),await Qe(e),await zo(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 id={metadata:{},body:""};function zt(){return structuredClone(id)}function $t(e){if(Object.keys(e.metadata).length===0||Array.isArray(e.metadata.tags))try{return Yo(Ut(e))}catch{}return pe(G({replay_fallback:!0,metadata:e.metadata,body:e.body}))}function Ut(e){return{metadata:e.metadata,body:e.body}}function N_(e,t={}){return B(Ut(e),t)}function R_(e){if(!e.metadata||Object.keys(e.metadata).length===0)return{metadata:{},body:e.body??""};let t=B(e);return{metadata:E(t.metadata,re),body:t.body}}function Qo(e){return e==="/front_matter"?"/metadata":e.startsWith("/front_matter/")?`/metadata/${e.slice(14)}`:e}function sd(e){return typeof e=="object"&&e!==null&&typeof e.op=="string"&&typeof e.path=="string"}function ei(e){return Array.isArray(e)?e.filter(sd).map(t=>({...t,path:Qo(t.path),from:typeof t.from=="string"?Qo(t.from):void 0})):[]}function ad(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 Ht(e,t){try{let n=ei(t),r=er.applyPatch(structuredClone(e),n,!0,!1).newDocument;return ad(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 tr(e){let t=zt();for(let n=0;n<e.length;n+=1){let r=e[n];if($t(t)!==r.before_hash)return{ok:!1,errors:[`verify_failed:before_hash_mismatch:entry_${n+1}`]};let o=Ht(t,r.patch);if(!o.ok)return{ok:!1,errors:[`verify_failed:patch_apply_failed:entry_${n+1}`]};if(t=o.document,$t(t)!==r.after_hash)return{ok:!1,errors:[`verify_failed:after_hash_mismatch:entry_${n+1}`]}}return{ok:!0,errors:[]}}function Zo(e,t){try{return{ok:!0,document:er.applyPatch(structuredClone(e),[t],!0,!1).newDocument}}catch{return{ok:!1}}}function cd(e,t){let n=structuredClone(e),r=0,o=0;for(let a of ei(t)){let c=Zo(n,a);if(c.ok){n=c.document;continue}if(a.op==="replace"){let l=Zo(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 D_(e){let t=zt(),n=[],r=[],o=0,i=0,s=0,a=0;for(let c=0;c<e.length;c+=1){let l=e[c],m=$t(t),f=Ht(t,l.patch),h,_,v=!1,S=0,w=0;if(f.ok)h=f.document,_=l.patch;else{let J=cd(t,l.patch);h=J.document,_=er.compare(t,h),v=!0,S=J.convertedReplaceToAdd,w=J.skippedOps,s+=S,a+=w,i+=1}let N=$t(h),R=m!==l.before_hash||N!==l.after_hash;R&&(o+=1),n.push({...l,patch:_,before_hash:m,after_hash:N}),r.push({index:c+1,rehashed:R,patch_repaired:v,converted_replace_to_add:S,skipped_ops:w}),t=h}return{entries:n,finalDocument:t,entriesRehashed:o,entriesPatchRepaired:i,convertedReplaceToAdd:s,skippedOps:a,details:r}}function M_(e){return e.length===0?"":`${e.map(t=>JSON.stringify(t)).join(`
58
- `)}
59
- `}import dd from"node:crypto";import ti 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 ri(e){let t=(e??"").trim().toLowerCase();return t?t.endsWith("-")?t:`${t}-`:"pm-"}function nr(e){let t=e.trim().toLowerCase();return t.startsWith("#")&&(t=t.slice(1)),t}function rr(e,t){let n=ri(t),r=nr(e);return r.startsWith(n)?r:`${n}${r}`}function ld(e){let t=_o(e);if(t!==void 0)return t;let n="";for(let r=0;r<e;r+=1)n+=dd.randomInt(0,36).toString(36);return n}async function ud(e,t,n){let r=[...new Set(Object.values(n))].flatMap(o=>[ti.join(e,o,`${t}.md`),ti.join(e,o,`${t}.toon`)]);return(await Promise.all(r.map(o=>yt(o)))).some(Boolean)}var ni=4,oi=12;function fd(e){return typeof e!="number"||!Number.isFinite(e)?ni:Math.min(oi,Math.max(ni,Math.trunc(e)))}async function U_(e,t,n={}){let r=fd(n.tokenLength),o=Math.min(r+6,oi),i=0;for(;r<=o;){for(let s=0;s<32;s+=1){let a=`${ri(t)}${ld(r)}`;if(n.probeExisting===!1||!await ud(e,a,n.typeToFolder??me))return a;i+=1}r+=1}throw new Error(`Unable to generate unique id after ${i} attempts`)}import we from"node:fs/promises";import si from"node:path";import{randomUUID as md}from"node:crypto";import{createRequire as _d}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 pd="metadata-query-index.sqlite",Ze="4";function yd(e){try{return e(["node","sqlite"].join(":")).DatabaseSync??null}catch{return null}}var Wt;function hd(e,t){let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>=22?yd(t):null}function et(){return Wt!==void 0||(Wt=hd(process.versions.node,_d(import.meta.url))),Wt}function ii(e,t){return Math.max(0,Math.floor(e===void 0?t:e))}function Me(e){return si.join(e,"runtime",pd)}function gd(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 qt(e,t,n){e.prepare("INSERT INTO metadata(key, value) VALUES (?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value").run(t,n)}function ai(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 ci(e){let t=Me(e.pmRoot),n=et();if(!n){await we.rm(t,{force:!0});return}await we.mkdir(si.dirname(t),{recursive:!0});let r=`${t}.${md()}.tmp`,o;try{o=new n(r),gd(o),o.exec("BEGIN IMMEDIATE"),qt(o,"version",Ze),qt(o,"context_fingerprint",e.contextFingerprint),qt(o,"source_cursor",e.sourceCursor);for(let i of e.rows)ai(o,i);o.exec("COMMIT"),o.close(),o=void 0,await we.rm(t,{force:!0}),await we.rename(r,t)}catch(i){throw o?.close(),await Promise.allSettled([we.rm(r,{force:!0})]),i}}function Vt(e){return Object.fromEntries(e.prepare("SELECT key, value FROM metadata").all().map(t=>[String(t.key),String(t.value)]))}async function di(e){let t=Me(e.pmRoot),n;try{await we.access(t);let r=et();if(!r)return!1;n=new r(t),n.exec("PRAGMA foreign_keys = ON");let o=Vt(n);if(o.version!==Ze||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 c of e.deletedRelativePaths??[]){let l=s.get(c);i.run(c),l&&a.run(l.id)}return e.row&&ai(n,e.row),qt(n,"source_cursor",e.sourceCursor),n.exec("COMMIT"),n.close(),!0}catch{try{n?.exec("ROLLBACK")}catch{}return n?.close(),!1}}function Bt(e,t,n,r,o){!r||r.length===0||(e.push(`${n} ${o} (${r.map(()=>"?").join(", ")})`),t.push(...r))}function bd(e){let t=[],n=[];Bt(t,n,"status",e.statuses,"IN"),Bt(t,n,"status",e.excludeStatuses,"NOT IN"),Bt(t,n,"type",e.types,"IN"),Bt(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 G_(e){let t=et();if(!t)return null;let n=e.query??{},{where:r,parameters:o}=bd(n),i;try{i=new t(Me(e.pmRoot),{readOnly:!0});let s=Vt(i);if(s.version!==Ze||s.source_cursor!==e.expectedSourceCursor)return i.close(),null;let a=i.prepare(`SELECT COUNT(*) AS count FROM items${r}`).get(...o),c=[],l="";n.limit!==void 0?(l+=" LIMIT ?",c.push(Math.max(0,Math.floor(n.limit))),n.offset!==void 0&&(l+=" OFFSET ?",c.push(Math.max(0,Math.floor(n.offset))))):n.offset!==void 0&&(l+=" LIMIT -1 OFFSET ?",c.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??[],...c).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 X_(e){let t=et();if(!t||e.paths.length===0)return null;let n;try{n=new t(Me(e.pmRoot),{readOnly:!0});let r=Vt(n);if(r.version!==Ze||r.source_cursor!==e.expectedSourceCursor)return n.close(),null;let o=e.paths.map(()=>"?").join(", "),i=e.scope===void 0?"":" AND scope = ?",s=[...e.paths,...e.scope===void 0?[]:[e.scope]],a=`path IN (${o})${i}`,c=n.prepare(`SELECT COUNT(DISTINCT item_id) AS count
131
- FROM item_linked_files
132
- WHERE ${a}`).get(...s),l=ii(e.limit,50),m=ii(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)),v=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),S=new Map(_.map(w=>[w,[]]));for(let w of v){let N=String(w.item_id),R=S.get(N);R.push({path:String(w.path),scope:String(w.scope),...w.note===null?{}:{note:String(w.note)}}),S.set(N,R)}for(let w of f){let N=JSON.parse(String(w.metadata_json));h.push({item:N,files:S.get(String(w.id))})}}return n.close(),{source_cursor:r.source_cursor,total:Number(c.count),matches:h}}catch{return n?.close(),null}}async function K_(e){let t=et();if(!t)return null;let n;try{n=new t(Me(e.pmRoot),{readOnly:!0});let r=Vt(n);if(r.version!==Ze||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 Gt(e){await we.rm(Me(e),{force:!0})}import j from"node:fs/promises";import A from"node:path";import{createHash as Ud,randomUUID as Si}from"node:crypto";import te from"node:fs/promises";import or from"node:path";import{randomUUID as wd}from"node:crypto";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="c638b65d-148a-5b42-8f24-d6fa9d5ac7d3")}catch{}})();function Ed(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 mi(e){try{let t=await te.readFile(e,"utf8");return await X({path:e,scope:"project"}),Ed(t)}catch(t){return tt(t,"ENOENT")?{info:null,warnings:[]}:{info:null,warnings:["lock_info_read_failed"]}}}function tt(e,t){return typeof e=="object"&&e!==null&&"code"in e&&e.code===t}async function _i(e,t){await q({path:e,scope:"project",op:t})}function kd(e,t,n){return{id:e,pid:process.pid,owner:t,created_at:ge(),ttl_seconds:n}}async function vd(e,t,n,r){await te.mkdir(or.dirname(e),{recursive:!0});let o=await te.open(e,"wx");try{await o.writeFile(`${JSON.stringify(kd(t,n,r),null,2)}
149
- `,"utf8")}finally{await o.close()}await _i(e,"lock:create")}async function pi(e,t){try{return await te.unlink(e),await _i(e,t),!0}catch{return!1}}function yi(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 Sd(e){return e?.owner?` (owner ${e.owner})`:""}var Id=25,xd=200,Td=250,Od=3,Cd=".stale-cleanup",hi="owner.json",Ad=1e4,Nd=5*6e4;function li(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 Rd(e){let t=process.env.PM_LOCK_WAIT_MS,n=li(t);if(n!==void 0)return n;let r=li(e);return r!==void 0?r:0}function Dd(e){let t=Math.max(1,Math.round(e*(.5+Math.random())));return new Promise(n=>setTimeout(n,t))}function gi(e,t,n){let r=n>0?` after waiting ${n}ms`:"";return new T(`Item ${e} is locked${Sd(t)}${r}`,I.CONFLICT,{code:"lock_conflict",recovery:{retry_after_ms:Td}})}function Md(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 Ld(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 Pd(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 bi(e){try{return Pd(await te.readFile(or.join(e,hi),"utf8"))}catch{return null}}function jd(e){try{return process.kill(e,0),!0}catch(t){return!tt(t,"ESRCH")}}async function ir(e){try{return await te.rm(e,{recursive:!0,force:!0}),!0}catch{return!1}}async function ui(e,t){let n=await bi(e);n===null||n.token!==t||await ir(e)}async function fi(e){try{await te.mkdir(e)}catch(n){return tt(n,"EEXIST"),null}let t={pid:process.pid,token:wd()};try{await te.writeFile(or.join(e,hi),`${JSON.stringify(t)}
150
- `,"utf8")}catch{return await ir(e),null}return t}async function Fd(e){let t;try{let r=await te.stat(e);if(t=Date.now()-r.mtimeMs,t<=Ad)return!1}catch(r){return tt(r,"ENOENT")}let n=await bi(e);return n!==null&&jd(n.pid)&&t<=Nd?!1:ir(e)}async function $d(e,t){let n=`${e}${Cd}`,r=await fi(n);if(r!==null)return async()=>ui(n,r.token);if(!await Fd(n))return null;let o=await fi(n);return o===null?null:async()=>ui(n,o.token)}async function zd(e){let t=await $d(e.lockPath,e.id);if(t===null)return{lockInfo:e.fallbackLockInfo,shouldRetryCreate:!1,staleRemovalCounted:!1};try{let n=await mi(e.lockPath);if(n.info===null&&n.warnings.length===0)return{lockInfo:n,shouldRetryCreate:!0,staleRemovalCounted:!1};if(!yi(n.info,e.ttlSeconds))return{lockInfo:n,shouldRetryCreate:!1,staleRemovalCounted:!1};if(Ld(e.id,n,e.force,e.forceRequiredForStaleLock),e.staleRemovals>=Od)throw gi(e.id,n.info,Date.now()-e.startedAtMs);return{lockInfo:n,shouldRetryCreate:await pi(e.lockPath,"lock:stale_remove"),staleRemovalCounted:!0}}finally{await t()}}async function ne(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 _=Md(a.result);if(_)return async()=>{await Promise.resolve(_()),await Z("lock_release",{pm_root:e,id:t,owner:r})}}let c=jr(e,t),l=Rd(s),m=Date.now(),f=0,h=Id;for(;;)try{return await vd(c,t,r,n),async()=>{await pi(c,"lock:release"),await Z("lock_release",{pm_root:e,id:t,owner:r})}}catch(_){if(!tt(_,"EEXIST"))throw new T(`Failed to acquire lock for ${t}: ${Fr(_)}`,I.GENERIC_FAILURE);let v=await mi(c);if(yi(v.info,n)){let w=await zd({lockPath:c,id:t,ttlSeconds:n,force:o,forceRequiredForStaleLock:i,staleRemovals:f,waitBudgetMs:l,startedAtMs:m,fallbackLockInfo:v});if(v=w.lockInfo,w.staleRemovalCounted&&(f+=1),w.shouldRetryCreate)continue}let S=Date.now()-m;if(l===0||S>=l)throw gi(t,v.info,l===0?0:S);await Dd(Math.min(h,l-S)),h=Math.min(h*2,xd)}}(function(){try{var e=typeof window<"u"?window:typeof 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,Ii=500,Hd="metadata-derived-index",Wd="metadata-cache.json",Bd="metadata-cache-bodies.json",qd="metadata-cache-collections.json",Vd="metadata-cache-delta.json",Gd="metadata-cache-manifest.json",wi=4,Xd=["comments","notes","learnings","files","tests","test_runs","docs"];function xi(){return pt(Ke())}function Kt(e){let t={...e},n={};for(let r of Xd)r in t&&(n[r]=t[r],delete t[r]);return{light:t,heavy:n}}function Ti(e,t){return!t||Object.keys(t).length===0?e:{...e,...t}}function Oi(e,t,n,r){let o=Ud("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 Jt(e){return A.join(e,"runtime",Wd)}function Yt(e){return A.join(e,"runtime",Bd)}function Qt(e){return A.join(e,"runtime",qd)}function ar(e){return A.join(e,"runtime",Vd)}function cr(e){return A.join(e,"runtime",Gd)}function Zt(e,t){let n=A.extname(e);return`${e.slice(0,-n.length)}.${t}${n}`}var Kd=24,H=new Map,en=new WeakMap;function dr(e){return en.get(e)??e.source_cursor}function Jd(e,t){let n=dr(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){en.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 Yd(e,t){if(!e)return;let n=dr(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){en.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 Qd(e,t){if(!e)return;let n=dr(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){en.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 Zd(e,t,n,r){!e||!r||e.context_fingerprint!==r.context_fingerprint||(Jd(e,r),Yd(t,r),Qd(n,r))}function sr(e,t){H.size>=Kd&&!H.has(e)&&gt(H),H.set(e,t)}async function ce(e,t){let n;try{n=await j.stat(e)}catch{return H.delete(e),null}let r=H.get(e);if(r&&nt(r.signature,n.mtimeMs,n.ctimeMs,n.size))return H.delete(e),H.set(e,r),r.envelope;let o;try{o=t(await j.readFile(e,"utf8"))}catch{o=null}return sr(e,{signature:{mtime_ms:n.mtimeMs,ctime_ms:n.ctimeMs,size:n.size},envelope:o}),o}async function el(e,t,n){let r=a=>{let c=JSON.parse(a);return c.version!==K||typeof c.source_cursor!="string"||typeof c.entries!="object"||c.entries===null?null:c},o=Jt(e),i=await ce(o,r);if(!t||i===null||i.context_fingerprint===t)return i;let s=await ce(Zt(o,t),r);return s===null&&it(n,`metadata_cache_context_changed:${i.context_fingerprint}->${t}`),s}async function tl(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=Yt(e),o=await ce(r,n);return t&&o?.context_fingerprint!==t?await ce(Zt(r,t),n):o}async function nl(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=Qt(e),o=await ce(r,n);return t&&o?.context_fingerprint!==t?await ce(Zt(r,t),n):o}async function lr(e){let t=ar(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 j.stat(t),{envelope:null,invalid:!0}}catch{return{envelope:null,invalid:!1}}}async function ur(e){let t=cr(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 j.stat(t),await Le(e)}catch{}return null}async function rt(e,t){await j.mkdir(A.dirname(e),{recursive:!0}),await W(e,JSON.stringify(t));try{let r=await j.stat(e);sr(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===Jt(n)||e===Yt(n)||e===Qt(n)){let r=Zt(e,t.context_fingerprint);await W(r,JSON.stringify(t));try{let c=await j.stat(r);sr(r,{signature:{mtime_ms:c.mtimeMs,ctime_ms:c.ctimeMs,size:c.size},envelope:t})}catch{H.delete(r)}let o=A.dirname(e),i=A.extname(e),s=A.basename(e,i),a=(await j.readdir(o,{withFileTypes:!0}).catch(()=>[])).filter(c=>c.isFile()&&c.name!==A.basename(e)&&c.name.startsWith(`${s}.`)&&c.name.endsWith(i)).map(c=>A.join(o,c.name));if(a.length>wi){let c=(await Promise.all(a.map(async l=>{try{return{path:l,mtime:(await j.stat(l)).mtimeMs}}catch{return null}}))).filter(l=>l!==null);for(let l of c.sort((m,f)=>m.mtime-f.mtime).slice(0,Math.max(0,c.length-wi)))await j.rm(l.path,{force:!0}),H.delete(l.path)}}}function rl(e,t,n){return n?t===n&&e!==n:t==="toon"&&e!=="toon"}function Ci(e,t,n){return e===void 0||rl(e,t,n)}function it(e,t){e&&!e.includes(t)&&e.push(t)}function nt(e,t,n,r){return e.mtime_ms===t&&e.ctime_ms===n&&e.size===r}async function ol(e,t,n){let r=A.join(e,t);try{let o=await j.readdir(r);return{folder:t,dirPath:r,files:o}}catch(o){return typeof o=="object"&&o!==null&&"code"in o&&o.code!=="ENOENT"&&it(n,`item_list_directory_read_failed:${t}`),{folder:t,dirPath:r,files:[]}}}async function il(e,t){try{let n=await j.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 Xt(e,t){return Object.fromEntries(await Promise.all(t.map(async n=>await il(e,n))))}function ot(e,t){return!e||Object.keys(e).length!==Object.keys(t).length?!1:Object.entries(t).every(([n,r])=>{let o=e[n];return o!==void 0&&o.exists===r.exists&&nt(o,r.mtime_ms,r.ctime_ms,r.size)})}function sl(e){return ht.some(t=>e.toLowerCase().endsWith(t))}function al(e,t,n,r,o,i){r||(e.metadata=!0),t&&!o&&(e.body=!0),n&&!i&&(e.collections=!0)}async function cl(e,t,n){if(n)for(let r of await X({path:e,scope:"project"}))it(t,r)}function Ei(e,t,n,r){if(e)return t&&n?n.collections:r}async function dl(e,t,n){let r=await j.stat(e),o=r.mtimeMs,i=r.ctimeMs,{size:s}=r,a=hn(e);await cl(e,n.warnings,n.dispatchReadHooks);let c=n.previousEntries[t],l=c!==void 0&&nt(c,o,i,s),m=n.previousBodies[t],f=m!==void 0&&nt(m,o,i,s),h=n.previousCollections[t],_=h!==void 0&&nt(h,o,i,s);if(!(!l||n.includeBody&&!f||n.includeCollections&&!_))return{mtimeMs:o,ctimeMs:i,size:s,itemFormat:a,lightMetadata:c.metadata,heavyMetadata:Ei(n.includeCollections,_,h,void 0),bodyLength:c.body_length,body:n.includeBody?m.body:void 0};let S=await j.readFile(e,"utf8"),w=At(S,{format:a,schema:n.schema,extensionFieldNames:n.extensionFieldNames,onWarning:R=>it(n.warnings,R)}),N=Kt(w.metadata);return al(n.state.misses,n.includeBody,n.includeCollections,l,f,_),{mtimeMs:o,ctimeMs:i,size:s,itemFormat:a,lightMetadata:l?c.metadata:N.light,heavyMetadata:Ei(n.includeCollections,_,h,N.heavy),bodyLength:l?c.body_length:w.body.length,body:n.includeBody?w.body:void 0}}function ll(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?Ti(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};Ci(i?.itemFormat,r.itemFormat,n.preferredFormat)&&n.state.documentsById.set(o.id,{candidate:s,itemFormat:r.itemFormat})}async function ul(e,t,n,r){try{let o=await dl(t,n,r);ll(t,n,r,o)}catch{it(r.warnings,`item_list_item_read_failed:${e}/${A.basename(t)}`)}}function fl(e,t){return e&&e.context_fingerprint===t?e.entries:{}}function ml(e,t){return e&&e.context_fingerprint===t?e.bodies:{}}function _l(e,t){return e&&e.context_fingerprint===t?e.collections:{}}function pl(){return{newEntries:{},newBodies:{},newCollections:{},documentsById:new Map,misses:{metadata:!1,body:!1,collections:!1}}}function yl(e,t){let n=[];for(let{folder:r,dirPath:o,files:i}of e)for(let s of i){if(!sl(s))continue;let a=A.join(o,s),c=A.relative(t.pmRoot,a);n.push(ul(r,a,c,t))}return n}async function hl(e){if(!(!(e.state.misses.metadata||Object.keys(e.previousEntries).length!==Object.keys(e.state.newEntries).length||!ot(e.existingCache?.directory_signatures,e.directorySignatures))&&e.existingCache!==null&&e.existingCache.context_fingerprint===e.contextFingerprint))try{await rt(Jt(e.pmRoot),{version:K,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,directory_signatures:e.directorySignatures,entries:e.state.newEntries}),await rt(cr(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:Kt(r.metadata).light,linkedFiles:r.metadata.files??[]}));n.length>=e.minimumIndexedItems?await ci({pmRoot:e.pmRoot,contextFingerprint:e.contextFingerprint,sourceCursor:e.sourceCursor,rows:n}):await Gt(e.pmRoot)}catch{}}async function gl(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 rt(Yt(e.pmRoot),{version:K,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,bodies:e.state.newBodies}).catch(()=>{})}async function bl(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 rt(Qt(e.pmRoot),{version:K,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,collections:e.state.newCollections}).catch(()=>{})}async function fr(e,t,n={}){let r=await ur(e);return n.required!==!0&&(r===null||r.entry_count<Ii)?async()=>{}:ne(e,Hd,30,t,!1,!1,3e3)}async function gp(e,t){let n=await ur(e);if(n===null)return null;let r=await lr(e);if(r.invalid)return await Le(e),null;let o=r.envelope?.context_fingerprint===n.context_fingerprint&&r.envelope.base_source_cursor===n.source_cursor?r.envelope.source_cursor:n.source_cursor,i=r.envelope?.context_fingerprint===n.context_fingerprint&&r.envelope.base_source_cursor===n.source_cursor?r.envelope.directory_signatures:n.directory_signatures;return t&&!ot(i,await Xt(e,t))?null:{source_cursor:o,entry_count:n.entry_count}}function ki(e,t){let n=A.relative(e,t);return n===""||n===".."||n.startsWith(`..${A.sep}`)||A.isAbsolute(n)?null:n}async function Le(e){await Promise.all([Jt(e),Yt(e),Qt(e),ar(e),cr(e)].map(async t=>{await j.rm(t,{force:!0}),H.delete(t)})),await Gt(e)}async function wl(e){if(e.mutation.document===null)return{entry:null,body:null,collections:null};let t=await j.stat(e.mutation.itemPath),n=Kt(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 El(e,t,n){return e?.context_fingerprint===t&&e.base_source_cursor===n?structuredClone(e.changes):{}}async function mr(e){let t=ki(e.pmRoot,e.itemPath),n=e.previousItemPath?ki(e.pmRoot,e.previousItemPath):void 0;if(t===null||n===null)return await Le(e.pmRoot),["metadata_derived_index_path_invalidated"];try{let r=Oi(e.preferredFormat,e.typeToFolder,e.schema,xi()),o=await ur(e.pmRoot);if(o===null||o.context_fingerprint!==r)return[];let i=o.source_cursor,s=await lr(e.pmRoot);if(s.invalid)return await Le(e.pmRoot),["metadata_derived_index_refresh_failed"];let a=El(s.envelope,r,i),c=s.envelope?.context_fingerprint===r&&s.envelope.base_source_cursor===i?s.envelope.source_cursor:i;n!==void 0&&(a[n]={entry:null,body:null,collections:null}),a[t]=await wl({mutation:e});let l=Si();return await rt(ar(e.pmRoot),{version:K,context_fingerprint:r,base_source_cursor:i,source_cursor:l,directory_signatures:await Xt(e.pmRoot,[...new Set(Object.values(e.typeToFolder))]),changes:a}),await di({pmRoot:e.pmRoot,contextFingerprint:r,expectedSourceCursor:c,sourceCursor:l,row:e.document===null?null:{relativePath:t,metadata:Kt(e.document.metadata).light,linkedFiles:e.document.metadata.files},deletedRelativePaths:[...n===void 0?[]:[n],...e.document===null?[t]:[]]})||await Gt(e.pmRoot),[]}catch{return await Le(e.pmRoot).catch(()=>{}),["metadata_derived_index_refresh_failed"]}}function kl(e){return[...e.documentsById.values()].sort((t,n)=>t.candidate.metadata.id.localeCompare(n.candidate.metadata.id)).map(t=>t.candidate)}function vi(e,t,n){return e?.context_fingerprint===t&&e.source_cursor===n}function vl(e,t,n,r,o){return e.every(i=>(!t||r[i]!==void 0)&&(!n||o[i]!==void 0))}function Sl(e){let t=new Map;for(let[n,r]of Object.entries(e.previousEntries)){let o=hn(n);if(!o)continue;let i=e.includeCollections?Ti(r.metadata,e.previousCollections[n]?.collections):r.metadata,s=t.get(i.id);Ci(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 Il(e){return e.forceSourceScan||Wn()||e.existingCache?.context_fingerprint!==e.contextFingerprint||e.entryKeys.length<e.minimumIndexedItems||!ot(e.existingCache?.directory_signatures,e.directorySignatures)?!1:[!e.includeBody||vi(e.existingBodyCache,e.contextFingerprint,e.existingCache.source_cursor),!e.includeCollections||vi(e.existingCollectionsCache,e.contextFingerprint,e.existingCache.source_cursor)].every(Boolean)&&vl(e.entryKeys,e.includeBody,e.includeCollections,e.previousBodies,e.previousCollections)}async function tn(e,t,n,r,o,i={}){let s=i.includeBody!==!1,a=i.includeCollections!==!1,c=xi(),l=Oi(t,n,o,c),m=await lr(e);m.invalid&&await Le(e);let f=await el(e,l,i.cacheDiagnostics),h=s?await tl(e,l):null,_=a?await nl(e,l):null;Zd(f,h,_,m.envelope);let v=fl(f,l),S=ml(h,l),w=_l(_,l),N=[...new Set(Object.values(n))],R=await Xt(e,N),J=Object.keys(v),$=Math.max(1,Math.floor(i.derivedIndexMinimumItems??Ii));if(Il({forceSourceScan:i.forceSourceScan===!0,contextFingerprint:l,existingCache:f,existingBodyCache:h,existingCollectionsCache:_,directorySignatures:R,entryKeys:J,minimumIndexedItems:$,includeBody:s,includeCollections:a,previousBodies:S,previousCollections:w}))return Sl({pmRoot:e,preferredFormat:t,includeBody:s,includeCollections:a,previousEntries:v,previousBodies:S,previousCollections:w});let un=await Promise.all(N.map(gs=>ol(e,gs,r))),ct=Wn(),Y=pl(),fn={pmRoot:e,preferredFormat:t,warnings:r,schema:o,extensionFieldNames:c,includeBody:s,includeCollections:a,dispatchReadHooks:ct,previousEntries:v,previousBodies:S,previousCollections:w,state:Y};await Promise.all(yl(un,fn));let dt=await Xt(e,N),Ir=ot(R,dt)?dt:{},mn=Y.misses.metadata||Object.keys(v).length!==Object.keys(Y.newEntries).length||!ot(f?.directory_signatures,Ir)||f===null?Si():f.source_cursor;return await hl({pmRoot:e,contextFingerprint:l,sourceCursor:mn,existingCache:f,previousEntries:v,directorySignatures:Ir,state:Y,minimumIndexedItems:$}),s&&await gl({pmRoot:e,contextFingerprint:l,sourceCursor:mn,existingBodyCache:h,previousBodies:S,state:Y}),a&&await bl({pmRoot:e,contextFingerprint:l,sourceCursor:mn,existingCollectionsCache:_,previousCollections:w,state:Y}),kl(Y)}async function Ai(e,t,n,r,o){return(await tn(e,t,n,r,o,{includeBody:!1})).map(s=>({metadata:s.metadata,body:s.body??""}))}async function Ni(e,t,n,r,o){return(await tn(e,t,n,r,o,{includeBody:!1,includeCollections:!1})).map(s=>({metadata:s.metadata,body:s.body??""}))}import xl from"node:fs/promises";import Ri 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]="86b45d6b-2192-5d31-8f73-94d6e6b17dfc")}catch{}})();var nn="_workspace";function Di(e){return Ri.join(e,"history",`${nn}.jsonl`)}function Tl(e,t){return{metadata:{id:nn,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 Mi(e){let t=zt();for(let n of e)t=Ht(t,n.patch).document;return Ut(t)}async function Li(e){let t=Di(e.pmRoot),n=await Je(t,nn),r=tr(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?Fe:Mi(n),a="documents"in s.metadata&&typeof s.metadata.documents=="object"&&s.metadata.documents!==null&&!Array.isArray(s.metadata.documents)?s.metadata.documents:{},c=a[e.documentPath];if(c!==void 0&&G(c)!==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=Tl({...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 De(t,m),{entry:m,historyPath:t}}async function Ap(e){let t=await ne(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await Li(e)}finally{await t()}}async function Np(e){let t=await ne(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{let n=Di(e.pmRoot),r=await Je(n,nn),o=tr(r);if(!o.ok)throw new TypeError(`Workspace history verification failed: ${o.errors.join(", ")}`);let i=r.length===0?Fe:Mi(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 De(n,s),{entry:s,historyPath:n}}finally{await t()}}async function Pi(e,t){if(t===e.raw)return!1;let n=t===null?null:JSON.parse(t),r=JSON.parse(e.raw);await W(e.filePath,e.raw);try{(t!==null||e.recordCreation!==!1)&&await Li({pmRoot:e.pmRoot,documentPath:Ri.relative(e.pmRoot,e.filePath).replaceAll("\\","/"),before:n,after:r,op:e.op,author:e.author,lockTtlSeconds:e.lockTtlSeconds,lockWaitMs:e.lockWaitMs,message:e.message})}catch(o){throw t===null?await xl.rm(e.filePath,{force:!0}):await W(e.filePath,t),o}return!0}async function Rp(e){let t=await ne(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{let n=await _e(e.filePath),r=await e.mutate(n);return{changed:await Pi({...e,raw:r.raw},n),result:r.result}}finally{await t()}}async function ji(e){let t=await ne(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await Pi(e,await _e(e.filePath))}finally{await t()}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="027f6acb-15cc-5707-85ed-b5298b6b6abe")}catch{}})();var P={ok:!1},u=e=>typeof e=="string"?{ok:!0,value:e}:P,x=e=>typeof e=="boolean"?{ok:!0,value:e}:P;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?P:{ok:!0,value:t}}function O(...e){return t=>typeof t=="string"&&e.includes(t)?{ok:!0,value:t}:P}function p(e,t){return n=>{if(!Array.isArray(n)||t!==void 0&&n.length>t)return P;let r=[];for(let o of n){let i=e(o);if(!i.ok)return P;r.push(i.value)}return{ok:!0,value:r}}}function pr(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}:P}function d(e){return t=>t===void 0?{ok:!0,value:void 0}:e(t)}function rn(e){return t=>{if(typeof t!="object"||t===null||Array.isArray(t))return P;let n={};for(let[r,o]of Object.entries(t)){let i=e(o);if(!i.ok)return P;n[r]=i.value}return{ok:!0,value:n}}}function k(e){return t=>{if(typeof t!="object"||t===null||Array.isArray(t))return P;let n=t,r={};for(let[o,i]of Object.entries(e)){let s=i(n[o]);if(!s.ok)return P;s.value!==void 0&&(r[o]=s.value)}return{ok:!0,value:r}}}var Ol=k({key:u,values:p(u),required:d(x),aliases:d(p(u)),description:d(u)}),Cl=k({command:O("create","update"),option:u,required:d(x),visible:d(x),enabled:d(x)}),Al=k({name:u,description:d(u),default_status:d(u),folder:d(u),aliases:d(p(u)),required_create_fields:d(p(u)),required_create_repeatables:d(p(u)),options:d(p(Ol)),command_option_policies:d(p(Cl))}),Nl=k({id:u,aliases:d(p(u)),roles:d(p(O(...Tr))),description:d(u),order:d(C())}),Rl=k({key:u,metadata_key:d(u),front_matter_key:d(u),cli_flag:d(u),cli_aliases:d(p(u)),description:d(u),type:d(O(...Or)),commands:d(p(O(...Cr))),repeatable:d(x),required:d(x),required_on_create:d(x),required_types:d(p(u)),allow_unset:d(x)}),Dl=e=>{if(!Array.isArray(e)||e.length!==2)return P;let[t,n]=e;return typeof t!="string"||typeof n!="string"?P:{ok:!0,value:[t,n]}},Ml=k({type:u,allowed_transitions:p(Dl)}),Ll=d(k({version:d(C({int:!0})),files:d(k({types:d(u),statuses:d(u),fields:d(u),workflows:d(u)})),statuses:d(p(Nl)),fields:d(p(Rl)),workflow:d(k({draft_status:d(u),open_status:d(u),in_progress_status:d(u),blocked_status:d(u),close_status:d(u),canceled_status:d(u)})),type_workflows:d(p(Ml)),unknown_field_policy:d(O(...Ar))})),Pl=d(k({preset:d(O(...Nr)),ownership_enforcement:d(O("none","warn","strict")),create_mode_default:d(O("progressive","strict")),close_validation_default:d(O("off","warn","strict")),require_close_reason:d(x),parent_reference:d(O("warn","strict_error")),metadata_profile:d(O("core","strict","custom")),force_required_for_stale_lock:d(x),create_default_type:d(u),workflow_enforcement:d(O("off","warn","strict")),duplicate_detection_mode:d(O("off","advisory","strict")),duplicate_detection_threshold:d(C({min:0,max:1})),duplicate_detection_limit:d(C({int:!0,min:0,max:20}))})),jl=k({name:u,disabled:d(x),require_trusted:d(x),require_provenance:d(x),sandbox_profile:d(O("none","restricted","strict")),allowed_capabilities:d(p(u)),blocked_capabilities:d(p(u)),allowed_surfaces:d(p(u)),blocked_surfaces:d(p(u)),allowed_commands:d(p(u)),blocked_commands:d(p(u)),allowed_actions:d(p(u)),blocked_actions:d(p(u)),allowed_services:d(p(u)),blocked_services:d(p(u))}),_r=O("block","warn"),Fl=e=>typeof e=="string"?_r(e):k({global:d(_r),project:d(_r)})(e),$l=d(k({mode:d(O("off","warn","enforce")),trust_mode:d(O("off","warn","enforce")),pm_max_version_exceeded_mode:d(Fl),require_provenance:d(x),trusted_extensions:d(p(u)),default_sandbox_profile:d(O("none","restricted","strict")),allowed_extensions:d(p(u)),blocked_extensions:d(p(u)),allowed_capabilities:d(p(u)),blocked_capabilities:d(p(u)),allowed_surfaces:d(p(u)),blocked_surfaces:d(p(u)),allowed_commands:d(p(u)),blocked_commands:d(p(u)),allowed_actions:d(p(u)),blocked_actions:d(p(u)),allowed_services:d(p(u)),blocked_services:d(p(u)),extension_overrides:d(p(jl))})),Ee=pr(128),zl=k({harness:pr(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u),environment_keys:d(p(Ee,64)),model_environment_keys:d(p(Ee,64)),session_environment_keys:d(p(Ee,64)),provenance_environment_keys:d(rn(p(Ee,64))),provenance_resolvers:d(rn(O("ai_agent_version","claude_session_file"))),provenance_unavailable_dimensions:d(p(Ee,64)),argv_markers:d(p(Ee,64)),client_names:d(p(Ee,64))}),Ul=k({version:C({int:!0}),id_prefix:u,ids:d(k({token_length:d(C({int:!0,min:4,max:12}))})),author_default:u,agent_identity:d(k({probes_enabled:d(x),identity_vocabulary:d(k({version:C({int:!0,positive:!0}),aliases:rn(pr(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u))})),harness_signals:p(zl)})),mutation_guard:d(k({require_attributed_author:d(x),secret_guard:d(O("off","advise","block")),stale_in_progress_hours:d(C({int:!0,positive:!0}))})),item_format:d(O("toon","json_markdown")),locks:k({ttl_seconds:C({int:!0}),wait_ms:d(C({int:!0,min:0}))}),checkpoints:d(k({retention_days:d(C({int:!0,positive:!0}))})),output:k({default_format:O("toon","json")}),history:d(k({missing_stream:O("auto_create","strict_error"),compact_policy:d(k({enabled:d(x),max_entries:d(C({int:!0,positive:!0})),trigger:d(O("health_warn","auto"))}))})),validation:d(k({sprint_release_format:O("warn","strict_error"),parent_reference:d(O("warn","strict_error")),metadata_profile:d(O("core","strict","custom")),metadata_required_fields:d(p(u)),lifecycle_stale_blocker_reason_patterns:d(p(u)),lifecycle_closure_like_blocked_reason_patterns:d(p(u)),lifecycle_closure_like_resolution_patterns:d(p(u)),lifecycle_closure_like_actual_result_patterns:d(p(u)),estimate_defaults_by_type:d(rn(C({int:!0,positive:!0})))})),governance:Pl,workflow:d(k({definition_of_done:p(u)})),testing:d(k({record_results_to_items:x})),telemetry:d(k({enabled:x,first_run_prompt_completed:d(x),capture_level:d(O("minimal","redacted","max")),endpoint:d(u),installation_id:d(u),retention_days:d(C({int:!0,positive:!0}))})),agent_guidance:d(k({prompt_completed:d(x),declined:d(x),declined_at:d(u),template_version:d(C({int:!0,positive:!0})),last_checked_files:d(p(u))})),item_types:d(k({definitions:p(Al)})),schema:Ll,context:d(k({default_depth:d(O("brief","standard","deep")),activity_limit:d(C({int:!0,positive:!0})),stale_threshold_days:d(C({int:!0,positive:!0})),sections:d(k({hierarchy:d(x),activity:d(x),progress:d(x),recently_created:d(x),unparented:d(x),blockers:d(x),files:d(x),workload:d(x),staleness:d(x),tests:d(x)}))})),extensions:k({enabled:p(u),disabled:p(u),policy:$l}),search:k({score_threshold:C(),hybrid_semantic_weight:d(C()),max_results:C({int:!0}),embedding_model:u,embedding_corpus_max_characters:d(C()),embedding_batch_size:C({int:!0}),embedding_timeout_ms:d(C({int:!0})),scanner_max_batch_retries:C({int:!0}),provider:d(u),corpus_fields:d(p(u)),mutation_refresh_policy:d(O("cache_only","semantic_configured","semantic_auto")),query_expansion:d(k({enabled:d(x),provider:d(u)})),rerank:d(k({enabled:d(x),model:d(u),top_k:d(C({int:!0,positive:!0}))})),bm25:d(k({k1:d(C()),b:d(C())}))}),providers:k({openai:k({base_url:u,api_key:u,model:u}),ollama:k({base_url:u,model:u})}),vector_store:k({adapter:d(u),collection_name:d(u),qdrant:k({url:u,api_key:u}),lancedb:k({path:u})})});function Fi(e){let t=Ul(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 Hl={Epic:2880,Feature:480,Story:480,Milestone:2880,Task:120,Issue:60,Bug:60,Chore:30,Decision:15,Plan:120},$i=120;function yr(e){return typeof e=="number"&&Number.isFinite(e)&&e>0}function Ui(e){let t=new Map;for(let[n,r]of Object.entries(e))t.set(n.toLowerCase(),r);return t}var Wl=Ui(Hl),zi=new WeakMap;function Bl(e){let t=zi.get(e);if(t)return t;let n=Ui(e);return zi.set(e,n),n}function Pp(e,t){let n=(e??"").trim().toLowerCase();if(n.length===0)return $i;if(t){let o=Bl(t).get(n);if(yr(o))return Math.floor(o)}let r=Wl.get(n);return yr(r)?Math.floor(r):$i}function hr(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||!yr(r)||(t[o]=Math.floor(r))}return t}import{stat as ql}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 on=new Map;function Hi(e){return[...new Set(e.map(t=>t.trim()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}async function Vl(e){try{let t=await ql(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=Hi(e),n=await Promise.all(t.map(r=>Vl(r)));return n.sort((r,o)=>r.path.localeCompare(o.path)),n}function st(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 Wi(e){return on.get(e)}function sn(e,t){let n=Hi(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));on.set(e,{tracked_paths:n,signatures:r,value:t.value})}function le(e){if(e){on.delete(e);return}on.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 Gl="settings:write",Xi=Symbol("pm.settings.persist_source"),Xl=128,Kl=new Set(["off","advisory","strict"]);function Bi(e){return structuredClone(Dr[e])}function Jl(e){return e==="minimal"||e==="default"||e==="strict"||e==="custom"?e:b.governance.preset}function qi(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 Yl(e){return e.preset==="custom"?qi({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):qi({preset:e.preset},e)}function Ql(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),Kl.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 cn(e){let t=e.governance??{},n=Jl(t.preset),r=Ql(t);if(n==="custom"){let s=Bi("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=Bi(n),i=r.require_close_reason??o.require_close_reason;return{preset:n,...o,...r,require_close_reason:i}}function Ki(){return structuredClone(b)}function Ji(e){return e==="cache_only"||e==="semantic_configured"||e==="semantic_auto"?e:b.search.mutation_refresh_policy}function Yi(e){return typeof e=="boolean"?e:b.search.query_expansion.enabled}function Qi(e){return typeof e!="string"?b.search.query_expansion.provider:e.trim()}function Zi(e){return typeof e=="boolean"?e:b.search.rerank.enabled}function es(e){return typeof e!="string"?b.search.rerank.model:e.trim()}function ts(e){return typeof e=="number"&&Number.isFinite(e)&&Number.isInteger(e)&&e>0?e:b.search.rerank.top_k}function ns(e){if(typeof e!="string")return b.vector_store.collection_name;let n=e.trim().replaceAll(/[^a-zA-Z0-9_-]/g,"_").slice(0,Xl);return n.length>0?n:b.vector_store.collection_name}function gr(e){return{present:Array.isArray(e),values:Array.isArray(e)?structuredClone(e):[]}}function Zl(e,t){let n=e.schema,r=gr(n?.statuses),o=gr(n?.fields),i=gr(n?.type_workflows);return{source_settings:structuredClone(e),has_source_item_type_definitions:Array.isArray(e.item_types?.definitions),source_item_type_definitions:Pe(e.item_types?.definitions),has_source_schema_statuses: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:Pe(t.item_types?.definitions),runtime_schema_statuses:structuredClone(t.schema.statuses),runtime_schema_fields:structuredClone(t.schema.fields),runtime_schema_type_workflows:structuredClone(t.schema.type_workflows??[])}}function rs(e,t){Object.defineProperty(e,Xi,{value:t,writable:!0,configurable:!0,enumerable:!1})}function os(e){let t=e[Xi];if(!(!t||typeof t!="object"))return t}function an(e){let t=structuredClone(e.settings),n=os(e.settings);return n&&rs(t,n),{settings:t,metadata:{has_explicit_item_format:e.metadata.has_explicit_item_format},warnings:[...e.warnings]}}function eu(e,t,n){let r=He(t);return[n,We(e,r.files.types,Ue.types),We(e,r.files.statuses,Ue.statuses),We(e,r.files.fields,Ue.fields),We(e,r.files.workflows,Ue.workflows)]}async function tu(e,t,n){let r=await de(t);sn(e,{tracked_paths:t,signatures:r,value:an(n)})}async function nu(e,t,n){try{await tu(e,t,n)}catch{le(e)}}function Vi(e,t){return e.find(n=>n.path===t)}function ru(e,t,n){for(let r of n){let o=Vi(e,r),i=Vi(t,r);if(!o||!i||!st([o],[i]))return!1}return!0}async function br(e,t,n,r,o){try{let i=await de(t);if(!ru(r,i,o)){le(e);return}sn(e,{tracked_paths:t,signatures:i,value:an(n)})}catch{le(e)}}function ou(e,t){let n=He(e.schema),r=Pe(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),c=ke(o,t.runtime_schema_type_workflows);return{item_type_definitions:i?t.has_source_item_type_definitions?Pe(t.source_item_type_definitions):[]:r,schema_statuses:s?t.has_source_schema_statuses?structuredClone(t.source_schema_statuses):[]:n.statuses,schema_fields:a?t.has_source_schema_fields?structuredClone(t.source_schema_fields):[]:n.fields,schema_type_workflows:c?t.has_source_schema_type_workflows?structuredClone(t.source_schema_type_workflows):void 0:n.type_workflows}}function at(e){return{settings:Ki(),metadata:{has_explicit_item_format:!1},warnings:e?[e]:[]}}function iu(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=e.item_format;return t==="toon"||t==="json_markdown"}function Er(e){return[...new Set((e??[]).map(t=>t.trim()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function is(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:Er(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 su(e){return e==="off"||e==="warn"||e==="enforce"?e:b.extensions.policy.mode}function au(e){return e==="off"||e==="warn"||e==="enforce"?e:b.extensions.policy.trust_mode}function ss(e){return e==="none"||e==="restricted"||e==="strict"?e:b.extensions.policy.default_sandbox_profile}function cu(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=ss(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),c=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),c.length>0&&(n.blocked_commands=c),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 du(e){let t=new Map;for(let n of e??[]){let r=cu(n);r&&t.set(r.name,r)}return[...t.values()].sort((n,r)=>n.name.localeCompare(r.name))}function wr(e){return e==="block"||e==="warn"?e:void 0}function lu(e){if(typeof e=="string")return wr(e);if(typeof e=="object"&&e!==null&&!Array.isArray(e)){let t=wr(e.global),n=wr(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 as(e){let t=lu(e?.pm_max_version_exceeded_mode);return{mode:su(e?.mode),trust_mode:au(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:ss(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:du(e?.extension_overrides??b.extensions.policy.extension_overrides)}}function cs(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 kr(e){return Array.isArray(e)?e:[]}function uu(e,t,n){return{...t.validation,...e.validation,parent_reference:n.parent_reference,metadata_profile:n.metadata_profile,metadata_required_fields:cs(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:hr(e.validation?.estimate_defaults_by_type)}}function fu(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 mu(e,t){return{...t.search,...e.search,mutation_refresh_policy:Ji(e.search?.mutation_refresh_policy),query_expansion:{...t.search.query_expansion,...e.search?.query_expansion,enabled:Yi(e.search?.query_expansion?.enabled),provider:Qi(e.search?.query_expansion?.provider)},rerank:{...t.search.rerank,...e.search?.rerank,enabled:Zi(e.search?.rerank?.enabled),model:es(e.search?.rerank?.model),top_k:ts(e.search?.rerank?.top_k)}}}function _u(e,t){return{adapter:e.vector_store.adapter??t.vector_store.adapter,collection_name:ns(e.vector_store.collection_name),qdrant:{...t.vector_store.qdrant,...e.vector_store.qdrant},lancedb:{...t.vector_store.lancedb,...e.vector_store.lancedb}}}function pu(e,t){return e.item_format==="json_markdown"?"toon":e.item_format??t.item_format}function yu(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 hu(e,t){return{openai:{...t.providers.openai,...e.providers.openai},ollama:{...t.providers.ollama,...e.providers.ollama}}}function Pe(e){let t=(e??[]).map(r=>Lr(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 ds(e){let t=Ki(),n=cn({governance:e.governance??{preset:"default"}});return{...t,...e,item_format:pu(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:uu(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:fu(e,t),agent_guidance:is(e.agent_guidance??t.agent_guidance),item_types:{definitions:Pe(e.item_types?.definitions)},schema:He(e.schema??t.schema),context:yu(e,t),extensions:{enabled:[...e.extensions.enabled],disabled:[...e.extensions.disabled],policy:as(e.extensions.policy??t.extensions.policy)},search:mu(e,t),providers:hu(e,t),vector_store:_u(e,t)}}function gu(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=kr(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=kr(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 bu(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 wu(e,t){return{...e.validation,parent_reference:t.parent_reference,metadata_profile:t.metadata_profile,metadata_required_fields:cs(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:hr(e.validation?.estimate_defaults_by_type)}}function Eu(e){return{...b.search,...e.search,mutation_refresh_policy:Ji(e.search?.mutation_refresh_policy),query_expansion:{...b.search.query_expansion,...e.search?.query_expansion,enabled:Yi(e.search?.query_expansion?.enabled),provider:Qi(e.search?.query_expansion?.provider)},rerank:{...b.search.rerank,...e.search?.rerank,enabled:Zi(e.search?.rerank?.enabled),model:es(e.search?.rerank?.model),top_k:ts(e.search?.rerank?.top_k)}}}function ku(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 vu(e){return{...e.vector_store,adapter:e.vector_store?.adapter??b.vector_store.adapter,collection_name:ns(e.vector_store?.collection_name),qdrant:{...e.vector_store?.qdrant},lancedb:{...e.vector_store?.lancedb}}}function Su(e,t,n,r){return{...e,item_format:"toon",validation:wu(e,t),governance:t,agent_guidance:is(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:Eu(e),context:ku(e),extensions:{enabled:Er(e.extensions?.enabled),disabled:Er(e.extensions?.disabled),policy:as(e.extensions?.policy)},vector_store:vu(e)}}function ls(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],c=typeof a=="object"&&a!==null&&!Array.isArray(a)?a:{};ls(c,i,s),Object.keys(c).length>0?e[o]=c:delete e[o];continue}e[o]=structuredClone(s)}}}var us=["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 Gi(e,t){let n=bu(e),r=cn(n),o=He(n.schema),i=ou(n,t),s=Su(n,r,o,i),a=E({...s,governance:Yl(r)},us);return gu(a),a}function Iu(e,t={}){let n=Gi(e,t.persist_source);if(t.persist_source){let r=ds(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=Gi(r,t.persist_source),i=structuredClone(t.persist_source.source_settings);return ls(i,o,n),`${JSON.stringify(E(i,us),null,2)}
151
- `}return`${JSON.stringify(n,null,2)}
152
- `}async function fs(e){let t=pn(e),n=[t];await X({path:t,scope:"project"});let r=Wi(e);if(r){let l=await de(r.tracked_paths);if(st(l,r.signatures))return an(r.value)}let o=await de([t]),i;try{i=await _e(t)}catch{return at("settings_read_fs_error")}if(i===null){let l=at();return await br(e,[t],l,o,[t]),l}let s=await de([t]);if(!st(o,s))return le(e),fs(e);let a;try{a=JSON.parse(i)}catch{let l=at("settings_read_invalid_json");return await br(e,[t],l,s,[t]),l}let c=Fi(a);if(!c.success){let l=at("settings_read_invalid_schema");return await br(e,[t],l,s,[t]),l}try{let l=ds(c.data),m=eu(e,l.schema,t);n=m;let f=await de(m),h=await Gr(e,l.schema),_=await Xr(e,l.schema),v=await de(m),S={...l,item_types:{definitions:Pe([...l.item_types.definitions,...kr(_.type_definitions_from_file)])},schema:_.schema};rs(S,Zl(c.data,S));let w={settings:S,metadata:{has_explicit_item_format:iu(a)},warnings:[...c.data.item_format==="json_markdown"?["settings_item_format_legacy_json_markdown_coerced_to_toon"]:[],...h.created_paths.map(N=>`runtime_schema_bootstrap_created:${N}`),..._.warnings]};return h.created_paths.length===0?st(f,v)?sn(e,{tracked_paths:m,signatures:v,value:an(w)}):le(e):le(e),w}catch{let l=at("settings_read_merge_failed");return await nu(e,n,l),l}}async function Qp(e){return(await fs(e)).settings}async function Zp(e,t,n=Gl){let r=pn(e),o=Iu(t,{persist_source:os(t)});try{await ji({pmRoot:e,filePath:r,raw:o,op:n,author:lo(void 0,t.author_default),lockTtlSeconds:t.locks.ttl_seconds,lockWaitMs:t.locks.wait_ms,recordCreation:!1}),await q({path:r,scope:"project",op:n})}finally{le(e)}}import xu from"node:fs/promises";import Tu 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 Ou(e){return[...new Set(e.filter(t=>t.trim().length>0))].sort((t,n)=>t.localeCompare(n))}function Cu(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 Au(e,t){return await Mr(Tu.dirname(e)),await(await xu.open(e,"a")).close(),q({path:e,scope:"project",op:`${t}:history:auto_create`})}async function vr(e){return Nu({pmRoot:e.pmRoot,settings:e.settings,itemIds:[e.itemId],commandLabel:e.commandLabel})}async function Nu(e){let t=Ou(e.itemIds),n=[],r=[];for(let o of t){let i=ze(e.pmRoot,o);if(!await yt(i)){if(e.settings.history.missing_stream==="strict_error")throw Cu(o,e.commandLabel);r.push(...await Au(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 je 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 Ru(e){try{return await fe.access(e),!0}catch{return!1}}function dn(e,t){return typeof e=="object"&&e!==null&&"code"in e&&e.code===t}function Du(e,t){e&&(e.includes(t)||e.push(t))}function ms(e){return e??pt(Ke())}function Mu(e){return e==="toon"?["toon","json_markdown"]:e==="json_markdown"?["json_markdown","toon"]:["toon","json_markdown"]}function ln(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 Lu(e){let t=je.parse(je.resolve(e)).root,n=je.dirname(je.resolve(e));for(;n!==t;){let r;try{r=await fe.stat(n)}catch(o){if(dn(o,"ENOTDIR"))throw ln(e);if(!dn(o,"ENOENT"))throw o;n=je.dirname(n);continue}if(!r.isDirectory())throw ln(e);break}}async function Sr(e){let t;try{t=await fe.stat(e)}catch(n){throw dn(n,"ENOENT")?(await Lu(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."]})):dn(n,"ENOTDIR")?ln(e):n}if(!t.isDirectory())throw ln(e)}async function _s(e,t,n="pm-",r,o=me){let i=rr(t,n),s=nr(t),a=i===s?[i]:[i,s],c=Object.entries(o),l=Mu(r);for(let m of a)for(let[f]of c)for(let h of l){let _=yn(e,f,m,h,o);if(await Ru(_))return{id:m,type:f,itemPath:_,item_format:h}}return null}async function ps(e,t={}){let n=await fe.readFile(e.itemPath,"utf8");await X({path:e.itemPath,scope:"project"});let r=At(n,{format:e.item_format,schema:t.schema,extensionFieldNames:ms(t.extensionFieldNames),onWarning:o=>Du(t.warnings,o)});return{raw:n,document:r}}async function Pu(e,t,n=me,r,o){return await Sr(e),(await Ai(e,t,n,r,o)).map(s=>s.metadata)}async function Oy(e,t,n=me,r,o){return await Sr(e),(await Ni(e,t,n,r,o)).map(s=>s.metadata)}async function Cy(e,t,n=me,r,o,i={}){return await Sr(e),(await tn(e,t,n,r,o,{includeBody:!0,forceSourceScan:i.forceSourceScan})).map(a=>({...a.metadata,body:a.body}))}function ys(e){return{async get(t){let n=await _s(e.pmRoot,t,e.settings.id_prefix,e.settings.item_format,e.typeToFolder);if(!n)return null;let{document:r}=await ps(n,{schema:e.settings.schema});return{item:r.metadata,body:r.body}},list:()=>Pu(e.pmRoot,e.settings.item_format,e.typeToFolder,void 0,e.settings.schema)}}async function ju(e,t){let n=new Set(Object.values(t)),r=[];return await Promise.all([...n].map(async o=>{try{let i=await fe.readdir(je.join(e,o));for(let s of i)for(let a of ht)if(s.toLowerCase().endsWith(a)){r.push(s.slice(0,-a.length));break}}catch{}})),r}async function Fu(e,t,n,r){let o=rr(t,n),i=await ju(e,r);if(i.length===0)return[];let s=Math.max(3,Math.floor(o.length/2));return i.map(c=>({id:c,distance:xr(c,o,s)})).filter(c=>c.distance!==null).sort((c,l)=>c.distance-l.distance).slice(0,3).map(c=>c.id)}async function $u(e,t,n,r){let o=await Fu(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 zu(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 hs(e){let t=e.typeToFolder??Pr(e.settings,Ke()).type_to_folder,n=await _s(e.pmRoot,e.id,e.settings.id_prefix,e.settings.item_format,t);if(!n)throw await $u(e.pmRoot,e.id,e.settings.id_prefix,t);let r=await ne(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 ps(n,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames,warnings:o}),a=s.metadata.assignee?.trim(),c=s.metadata.claim_principal?.trim()||a,l=co(e.author),m=cn(e.settings);if(a&&c!==l&&!e.force&&!zu(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 Uu(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 Hu(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 Ay(e){let t=await hs({pmRoot:e.pmRoot,settings:e.settings,id:e.id,op:e.op,author:e.author,force:e.force,bypassAssigneeConflict:e.bypassAssigneeConflict,extensionFieldNames:e.extensionFieldNames,typeToFolder:e.typeToFolder}),{typeToFolder:n,located:r,originalRaw:o,document:i,warnings:s,releaseLock:a}=t;try{let c=B(i,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),l=B(structuredClone(i),{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),m=await e.mutate(l);if(e.skipNoop===!0&&m.changedFields.length===0)return{item:c.metadata,body:c.body,changedFields:[],warnings:[...s,...m.warnings??[]]};l.metadata.updated_at=ge();let f=B(l,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames});await Hn({pm_root:e.pmRoot,operation:e.op,before:c,after:f,changed_fields:m.changedFields,sdk:ys({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:n})});let h=await vr({pmRoot:e.pmRoot,settings:e.settings,itemId:r.id,commandLabel:e.op}),_="toon",v=Ro(f,{format:_,schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),S=yn(e.pmRoot,f.metadata.type,r.id,_,n),w=ze(e.pmRoot,r.id),N=await Z("item_store_write",{op:e.op,pm_root:e.pmRoot,item_id:r.id,source_item_path:r.itemPath,target_item_path:S,history_path:w,item_format:_,before:c,after:f,contents:v}),{effectiveTargetItemPath:R,effectiveSerializedAfter:J,skipItemWrite:$}=Uu(N,S,v),un=await fr(e.pmRoot,e.author),ct=[];try{$||await W(R,J),!$&&R!==r.itemPath&&await fe.rm(r.itemPath);let fn=Re({nowIso:f.metadata.updated_at,author:e.author,op:e.op,before:c,after:f,message:e.message});try{await De(w,fn)}catch(dt){throw await Hu({skipItemWrite:$,effectiveTargetItemPath:R,originalItemPath:r.itemPath,originalRaw:o}),dt}$||(ct=await mr({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:n,schema:e.settings.schema,itemPath:R,previousItemPath:r.itemPath,document:f}))}finally{await un()}let Y=[...await q({path:R,scope:"project",op:e.op,item_id:f.metadata.id,item_type:f.metadata.type,before:c,after:f,changed_fields:m.changedFields}),...await q({path:w,scope:"project",op:`${e.op}:history`,item_id:f.metadata.id,item_type:f.metadata.type,before:c,after:f,changed_fields:m.changedFields})];return Un({id:f.metadata.id,op:e.op,item_type:f.metadata.type,previous_status:c.metadata.status,status:f.metadata.status,previous:Nt(c.metadata,m.changedFields),current:Nt(f.metadata,m.changedFields),changed_fields:m.changedFields}),{item:f.metadata,body:f.body,changedFields:m.changedFields,warnings:[...s,...m.warnings??[],...h.warnings,...N.warnings,...ct,...Y]}}finally{await a()}}async function Ny(e){let t=await hs({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=ms(void 0),c=B(o,{schema:e.settings.schema,extensionFieldNames:a});await Hn({pm_root:e.pmRoot,operation:"delete",before:c,after:null,changed_fields:["deleted"],sdk:ys({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:t.typeToFolder})});let l=await vr({pmRoot:e.pmRoot,settings:e.settings,itemId:n.id,commandLabel:"delete"}),m=ge(),f=Fe,h=Re({nowIso:m,author:e.author,op:"delete",before:c,after:f,message:e.message}),_=ze(e.pmRoot,n.id),v=await Z("item_store_delete",{op:"delete",pm_root:e.pmRoot,item_id:n.id,item_path:n.itemPath,history_path:_,before:c}),S=n.itemPath,w=!1;if(v.handled&&typeof v.result=="object"&&v.result!==null){let $=v.result;typeof $.item_path=="string"&&$.item_path.trim().length>0&&(S=$.item_path),$.skip_delete===!0&&(w=!0)}if(e.dryRun===!0)return{item:c.metadata,changedFields:["deleted"],targetPath:S,warnings:[...i,...l.warnings,...v.warnings]};let N=await fr(e.pmRoot,e.author),R=[];try{w||await fe.rm(S);try{await De(_,h)}catch($){throw w||await W(S,r),$}w||(R=await mr({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:t.typeToFolder,schema:e.settings.schema,itemPath:S,document:null}))}finally{await N()}let J=[...await q({path:S,scope:"project",op:"delete",item_id:c.metadata.id,item_type:c.metadata.type,before:c,after:f,changed_fields:["deleted"]}),...await q({path:_,scope:"project",op:"delete:history",item_id:c.metadata.id,item_type:c.metadata.type,before:c,after:f,changed_fields:["deleted"]})];return Un({id:c.metadata.id,op:"delete",item_type:c.metadata.type,previous_status:c.metadata.status,previous:Nt(c.metadata,Object.keys(c.metadata)),changed_fields:["deleted"]}),{item:c.metadata,changedFields:["deleted"],warnings:[...i,...l.warnings,...v.warnings,...R,...J]}}finally{await s()}}export{Qf as a,Ec as b,um as c,fm as d,mm as e,_m as f,pm as g,ym as h,hm as i,gm as j,Ke as k,Un as l,Nt as m,q as n,Hn as o,X as p,Wn as q,bm as r,wm as s,Z as t,Vc as u,ye as v,bn as w,qu as x,Vu as y,vn as z,vs as A,ef as B,tf as C,nf as D,Tn as E,io as F,rf as G,of as H,sf as I,Ls as J,co as K,lo as L,ge as M,F as N,pf as O,yf as P,ne as Q,Eo as R,Be as S,Of as T,Cf as U,xe as V,ho as W,gf as X,go as Y,ta as Z,bf as _,It as $,ra as aa,vf as ba,xt as ca,Ct as da,At as ea,Ro as fa,B as ga,Je as ha,Fm as ia,$m as ja,i_ as ka,s_ as la,Qc as ma,Qe as na,Yo as oa,v_ as pa,Re as qa,De as ra,id as sa,zt as ta,$t as ua,Ut as va,N_ as wa,R_ as xa,ei as ya,Ht as za,tr as Aa,D_ as Ba,M_ as Ca,nn as Da,Di as Ea,Ap as Fa,Np as Ga,Rp as Ha,ji as Ia,Pp as Ja,cn as Ka,fs as La,Qp as Ma,Zp as Na,vr as Oa,Nu as Pa,ri as Qa,nr as Ra,rr as Sa,U_ as Ta,G_ as Ua,X_ as Va,K_ as Wa,Ii as Xa,Xd as Ya,fr as Za,gp as _a,mr as $a,tn as ab,_s as bb,ps as cb,Pu as db,Oy as eb,Cy as fb,ys as gb,$u as hb,Ay as ib,Ny as jb};
153
- //# sourceMappingURL=chunk-2VVP5RAA.js.map