@unbrained/pm-cli 2026.8.11 → 2026.8.13

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 (250) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/CHANGELOG.md +74 -21
  3. package/dist/cli/commander-usage.js +37 -11
  4. package/dist/cli/error-guidance.d.ts +2 -0
  5. package/dist/cli/error-guidance.js +82 -19
  6. package/dist/cli/main.js +35 -19
  7. package/dist/cli/register-annotations.js +56 -3
  8. package/dist/cli/register-assurance.js +28 -17
  9. package/dist/cli/register-list-query.js +10 -7
  10. package/dist/cli/register-operations.js +16 -6
  11. package/dist/cli-bundle/bundle-manifest.json +163 -163
  12. package/dist/cli-bundle/chunks/chunk-3ZMOWAFM.js +2 -0
  13. package/dist/cli-bundle/chunks/chunk-DEDU3DG7.js +196 -0
  14. package/dist/cli-bundle/chunks/chunk-DL5M5J3V.js +13 -0
  15. package/dist/cli-bundle/chunks/chunk-F7FJYGK3.js +8 -0
  16. package/dist/cli-bundle/chunks/chunk-HIUZVCMN.js +5 -0
  17. package/dist/cli-bundle/chunks/chunk-IMGIN7R6.js +2 -0
  18. package/dist/cli-bundle/chunks/{chunk-A2SJGHSI.js → chunk-Q47C67TQ.js} +2 -2
  19. package/dist/cli-bundle/chunks/{chunk-WMEZHCFI.js → chunk-QGTUPEU5.js} +62 -54
  20. package/dist/cli-bundle/chunks/chunk-TF3TPKPR.js +34 -0
  21. package/dist/cli-bundle/chunks/{chunk-ZU34C3LH.js → chunk-YLBAPY22.js} +50 -50
  22. package/dist/cli-bundle/chunks/register-list-query-4HIZ7EA3.js +10 -0
  23. package/dist/cli-bundle/chunks/register-mutation-W64FZ5HN.js +20 -0
  24. package/dist/cli-bundle/chunks/register-operations-C44ET7R5.js +2 -0
  25. package/dist/cli-bundle/chunks/{register-setup-NOCOOWQY.js → register-setup-634MFRXU.js} +2 -2
  26. package/dist/cli-bundle/focused-chunks/chunk-27N23W6M.js +31 -0
  27. package/dist/cli-bundle/focused-chunks/{chunk-4H5IA6AV.js → chunk-2JP7W7GO.js} +2 -2
  28. package/dist/cli-bundle/focused-chunks/chunk-2RI2FESN.js +4 -0
  29. package/dist/cli-bundle/focused-chunks/chunk-3BNVU6LC.js +8 -0
  30. package/dist/cli-bundle/focused-chunks/{chunk-2DL3MRTD.js → chunk-3DJSGWVB.js} +2 -2
  31. package/dist/cli-bundle/focused-chunks/chunk-6MLIRBLV.js +5 -0
  32. package/dist/cli-bundle/focused-chunks/chunk-6XYLENDV.js +155 -0
  33. package/dist/cli-bundle/focused-chunks/chunk-CP4K4WFS.js +2 -0
  34. package/dist/cli-bundle/focused-chunks/{chunk-TL5M2PAY.js → chunk-E3AVJ655.js} +2 -2
  35. package/dist/cli-bundle/focused-chunks/chunk-EBTNSFYE.js +2 -0
  36. package/dist/cli-bundle/focused-chunks/{chunk-J5EKAIVD.js → chunk-HC2OL2H2.js} +2 -2
  37. package/dist/cli-bundle/focused-chunks/{chunk-BKPIY34S.js → chunk-I75MANL7.js} +2 -2
  38. package/dist/cli-bundle/focused-chunks/chunk-IIS2FRKL.js +2 -0
  39. package/dist/cli-bundle/focused-chunks/chunk-NFHFZH2Z.js +2 -0
  40. package/dist/cli-bundle/focused-chunks/chunk-OGC4XSBC.js +17 -0
  41. package/dist/cli-bundle/focused-chunks/{chunk-UDAZWT25.js → chunk-OOYYKQWX.js} +4 -4
  42. package/dist/cli-bundle/focused-chunks/{chunk-23FTGO3W.js → chunk-PKPOZXLL.js} +2 -2
  43. package/dist/cli-bundle/focused-chunks/chunk-QDZUABWL.js +2 -0
  44. package/dist/cli-bundle/focused-chunks/chunk-QQX5TDFT.js +16 -0
  45. package/dist/cli-bundle/focused-chunks/{chunk-55BIB6DV.js → chunk-TEZIXMTH.js} +2 -2
  46. package/dist/cli-bundle/focused-chunks/chunk-WEH6NSL6.js +18 -0
  47. package/dist/cli-bundle/main.js +13 -13
  48. package/dist/cli-bundle/sdk-authoring.js +1 -1
  49. package/dist/cli-bundle/sdk-contracts.js +1 -1
  50. package/dist/cli-bundle/sdk-core.js +42 -41
  51. package/dist/cli-bundle/sdk-governance.js +1 -1
  52. package/dist/cli-bundle/sdk-graph.js +1 -1
  53. package/dist/cli-bundle/sdk-merge.js +1 -1
  54. package/dist/cli-bundle/sdk-query.js +1 -1
  55. package/dist/cli-bundle/sdk-runtime.js +1 -1
  56. package/dist/cli-bundle/sdk-testing.js +1 -1
  57. package/dist/cli-bundle/sdk.js +2 -2
  58. package/dist/core/checkpoint/checkpoint-gc.js +7 -12
  59. package/dist/core/extensions/activation-summary-markdown.js +5 -4
  60. package/dist/core/extensions/activation-summary.d.ts +2 -0
  61. package/dist/core/extensions/activation-summary.js +6 -2
  62. package/dist/core/extensions/capability-usage.d.ts +1 -1
  63. package/dist/core/extensions/capability-usage.js +4 -3
  64. package/dist/core/extensions/contribution-inventory.d.ts +1 -0
  65. package/dist/core/extensions/contribution-inventory.js +6 -2
  66. package/dist/core/extensions/extension-registries.js +3 -2
  67. package/dist/core/extensions/extension-types.d.ts +83 -1
  68. package/dist/core/extensions/extension-types.js +3 -2
  69. package/dist/core/extensions/loader.d.ts +2 -8
  70. package/dist/core/extensions/loader.js +53 -144
  71. package/dist/core/extensions/registration-values.d.ts +43 -0
  72. package/dist/core/extensions/registration-values.js +210 -0
  73. package/dist/core/extensions/reserved-host-flags.js +3 -2
  74. package/dist/core/extensions/runtime-registrations.d.ts +3 -1
  75. package/dist/core/extensions/runtime-registrations.js +12 -2
  76. package/dist/core/fs/fs-utils.d.ts +2 -0
  77. package/dist/core/fs/fs-utils.js +7 -3
  78. package/dist/core/history/drift-cache.js +4 -3
  79. package/dist/core/history/drift-scan.js +16 -17
  80. package/dist/core/history/history.d.ts +8 -0
  81. package/dist/core/history/history.js +57 -7
  82. package/dist/core/history/replay.d.ts +9 -1
  83. package/dist/core/history/replay.js +48 -13
  84. package/dist/core/lock/lock-gc.js +8 -13
  85. package/dist/core/lock/lock.js +5 -4
  86. package/dist/core/output/output.d.ts +2 -0
  87. package/dist/core/output/output.js +46 -14
  88. package/dist/core/search/vector-stores.js +6 -11
  89. package/dist/core/shared/command-types.d.ts +2 -0
  90. package/dist/core/shared/command-types.js +2 -2
  91. package/dist/core/shared/errors.d.ts +5 -0
  92. package/dist/core/shared/errors.js +2 -2
  93. package/dist/core/store/item-metadata-cache.d.ts +1 -1
  94. package/dist/core/store/item-metadata-cache.js +16 -9
  95. package/dist/core/telemetry/runtime.d.ts +6 -0
  96. package/dist/core/telemetry/runtime.js +101 -30
  97. package/dist/sdk/agent/command-recovery.d.ts +2 -0
  98. package/dist/sdk/agent/command-recovery.js +10 -2
  99. package/dist/sdk/annotations.js +4 -4
  100. package/dist/sdk/cli-bootstrap.d.ts +2 -0
  101. package/dist/sdk/cli-bootstrap.js +6 -2
  102. package/dist/sdk/cli-contracts/completeness.js +10 -3
  103. package/dist/sdk/cli-contracts/enum-contracts.d.ts +1 -1
  104. package/dist/sdk/cli-contracts/flag-contracts.js +9 -3
  105. package/dist/sdk/cli-contracts/registration-helpers.d.ts +20 -3
  106. package/dist/sdk/cli-contracts/registration-helpers.js +18 -12
  107. package/dist/sdk/cli-contracts/schemas/assurance-definition.d.ts +40 -6
  108. package/dist/sdk/cli-contracts/schemas/assurance-definition.js +27 -3
  109. package/dist/sdk/cli-contracts/tool-option-contracts.js +3 -2
  110. package/dist/sdk/cli-contracts/tool-parameter-tables.js +55 -5
  111. package/dist/sdk/cli-contracts/tool-schema.d.ts +2 -2
  112. package/dist/sdk/cli-contracts/tool-schema.js +22 -4
  113. package/dist/sdk/cli-program.js +3 -2
  114. package/dist/sdk/comments.js +4 -3
  115. package/dist/sdk/compile-cache.js +4 -3
  116. package/dist/sdk/completion.js +16 -7
  117. package/dist/sdk/compose.d.ts +3 -1
  118. package/dist/sdk/compose.js +16 -2
  119. package/dist/sdk/context-intent-contracts.js +45 -4
  120. package/dist/sdk/context-signal-store.js +4 -3
  121. package/dist/sdk/core.d.ts +1 -0
  122. package/dist/sdk/core.js +3 -2
  123. package/dist/sdk/extension/install-runtime.js +4 -4
  124. package/dist/sdk/extension/managed-state.js +4 -3
  125. package/dist/sdk/extension-contracts.d.ts +1 -1
  126. package/dist/sdk/flag-invocation-contracts.js +5 -6
  127. package/dist/sdk/generated/generated-error-code-catalog-part-1.d.ts +8 -0
  128. package/dist/sdk/generated/generated-error-code-catalog-part-1.js +1597 -0
  129. package/dist/sdk/generated/generated-error-code-catalog-part-2.d.ts +8 -0
  130. package/dist/sdk/generated/generated-error-code-catalog-part-2.js +1608 -0
  131. package/dist/sdk/generated-error-code-catalog.js +6 -3140
  132. package/dist/sdk/governance/assurance-action.d.ts +27 -3
  133. package/dist/sdk/governance/assurance-action.js +117 -31
  134. package/dist/sdk/governance/assurance-mutation-error.d.ts +14 -0
  135. package/dist/sdk/governance/assurance-mutation-error.js +58 -0
  136. package/dist/sdk/governance/assurance-presets.d.ts +54 -0
  137. package/dist/sdk/governance/assurance-presets.js +136 -0
  138. package/dist/sdk/governance/assurance-runtime.d.ts +4 -0
  139. package/dist/sdk/governance/assurance-runtime.js +118 -14
  140. package/dist/sdk/governance/assurance.d.ts +51 -6
  141. package/dist/sdk/governance/assurance.js +321 -67
  142. package/dist/sdk/governance/gc.js +5 -11
  143. package/dist/sdk/governance/health.d.ts +3 -1
  144. package/dist/sdk/governance/health.js +24 -7
  145. package/dist/sdk/governance/validate-item-reader.js +3 -3
  146. package/dist/sdk/governance/validate.d.ts +2 -0
  147. package/dist/sdk/governance/validate.js +15 -5
  148. package/dist/sdk/graph/durable-cache.d.ts +1 -1
  149. package/dist/sdk/graph/durable-cache.js +156 -29
  150. package/dist/sdk/graph/governance-contracts.d.ts +12 -0
  151. package/dist/sdk/graph/governance-contracts.js +27 -0
  152. package/dist/sdk/graph/governance.d.ts +44 -2
  153. package/dist/sdk/graph/governance.js +156 -12
  154. package/dist/sdk/guide.js +4 -4
  155. package/dist/sdk/index.d.ts +3 -2
  156. package/dist/sdk/index.js +5 -4
  157. package/dist/sdk/lifecycle/claim.js +10 -3
  158. package/dist/sdk/linked-artifacts.d.ts +2 -0
  159. package/dist/sdk/linked-artifacts.js +29 -4
  160. package/dist/sdk/merge/driver.d.ts +2 -2
  161. package/dist/sdk/merge/driver.js +3 -3
  162. package/dist/sdk/merge/install.js +5 -4
  163. package/dist/sdk/merge/receipts.d.ts +6 -4
  164. package/dist/sdk/merge/receipts.js +7 -5
  165. package/dist/sdk/merge/three-way.d.ts +2 -2
  166. package/dist/sdk/merge/three-way.js +3 -3
  167. package/dist/sdk/output-projection.d.ts +9 -1
  168. package/dist/sdk/output-projection.js +45 -9
  169. package/dist/sdk/query/activity.d.ts +49 -2
  170. package/dist/sdk/query/activity.js +185 -38
  171. package/dist/sdk/query/get.js +19 -2
  172. package/dist/sdk/read-output-contracts.d.ts +5 -1
  173. package/dist/sdk/read-output-contracts.js +17 -2
  174. package/dist/sdk/read-output-session.d.ts +2 -0
  175. package/dist/sdk/read-output-session.js +12 -5
  176. package/dist/sdk/relationship-history.js +5 -5
  177. package/dist/sdk/runtime-primitives.d.ts +3 -3
  178. package/dist/sdk/runtime-primitives.js +5 -5
  179. package/dist/sdk/runtime-stats-options.js +3 -2
  180. package/dist/sdk/runtime.js +5 -9
  181. package/dist/sdk/schema-migration.js +4 -4
  182. package/dist/sdk/stats.d.ts +36 -3
  183. package/dist/sdk/stats.js +55 -15
  184. package/dist/sdk/test/execution.d.ts +4 -0
  185. package/dist/sdk/test/execution.js +88 -23
  186. package/dist/sdk/workspace-memory.js +4 -4
  187. package/dist/sdk/workspace-snapshot.js +8 -14
  188. package/dist/sdk/workspace-transaction-gc.js +4 -9
  189. package/dist/sdk/workspace-transaction.js +4 -4
  190. package/dist/sdk/workspace.js +4 -3
  191. package/dist/types.d.ts +2 -0
  192. package/dist/types.js +2 -2
  193. package/docs/ASSURANCE.md +170 -14
  194. package/docs/COMMANDS.md +29 -8
  195. package/docs/CONFIGURATION.md +9 -0
  196. package/docs/DEPENDENCY_KIND_CONTRACT.md +10 -8
  197. package/docs/EXTENSIONS.md +11 -12
  198. package/docs/MERGE_SAFETY.md +3 -1
  199. package/docs/OUTPUT_PROJECTION_CONTRACTS.md +26 -13
  200. package/docs/README.md +2 -0
  201. package/docs/READ_OUTPUT_CONTRACTS.md +17 -2
  202. package/docs/RELATIONSHIP_GRAPH.md +15 -0
  203. package/docs/SDK.md +17 -3
  204. package/docs/SDK_AGENT_SESSION_CONTEXT.md +12 -1
  205. package/docs/SDK_CONTEXT_EVIDENCE_CONTRACTS.md +53 -0
  206. package/docs/SDK_CONTEXT_INTEGRITY.md +28 -1
  207. package/docs/TESTING.md +24 -15
  208. package/docs/TRUSTWORTHY_CONTEXT_EVIDENCE.md +106 -0
  209. package/docs/performance/sdk-entrypoint-import-costs.md +6 -2
  210. package/marketplace.json +2 -2
  211. package/package.json +6 -6
  212. package/packages/pm-beads/package.json +1 -1
  213. package/packages/pm-calendar/package.json +1 -1
  214. package/packages/pm-command-kit/package.json +1 -1
  215. package/packages/pm-digital-twin/package.json +1 -1
  216. package/packages/pm-governance-audit/package.json +1 -1
  217. package/packages/pm-guide-shell/package.json +1 -1
  218. package/packages/pm-kanban/package.json +1 -1
  219. package/packages/pm-lifecycle-hooks/package.json +1 -1
  220. package/packages/pm-linked-test-adapters/package.json +1 -1
  221. package/packages/pm-search-advanced/package.json +1 -1
  222. package/packages/pm-templates/package.json +1 -1
  223. package/packages/pm-todos/package.json +1 -1
  224. package/packages/pm-vcs/package.json +1 -1
  225. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  226. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  227. package/sdk/public-surface.json +384 -83
  228. package/dist/cli-bundle/chunks/chunk-2OOU2AFH.js +0 -8
  229. package/dist/cli-bundle/chunks/chunk-2RA2YTHJ.js +0 -33
  230. package/dist/cli-bundle/chunks/chunk-DSKYD4LG.js +0 -13
  231. package/dist/cli-bundle/chunks/chunk-HC3GM6YY.js +0 -194
  232. package/dist/cli-bundle/chunks/chunk-IUNRVDAI.js +0 -2
  233. package/dist/cli-bundle/chunks/chunk-W7CPZGSB.js +0 -2
  234. package/dist/cli-bundle/chunks/chunk-ZXOC6HG5.js +0 -5
  235. package/dist/cli-bundle/chunks/register-list-query-HAUXVUPY.js +0 -10
  236. package/dist/cli-bundle/chunks/register-mutation-7Y5U7ABT.js +0 -20
  237. package/dist/cli-bundle/chunks/register-operations-EQX3DLAZ.js +0 -2
  238. package/dist/cli-bundle/focused-chunks/chunk-3AYKXMYX.js +0 -2
  239. package/dist/cli-bundle/focused-chunks/chunk-4AHEC74N.js +0 -2
  240. package/dist/cli-bundle/focused-chunks/chunk-4SV3ZKG3.js +0 -16
  241. package/dist/cli-bundle/focused-chunks/chunk-6JW6Z2P5.js +0 -8
  242. package/dist/cli-bundle/focused-chunks/chunk-D4PIWE6D.js +0 -2
  243. package/dist/cli-bundle/focused-chunks/chunk-DPO7TEFX.js +0 -31
  244. package/dist/cli-bundle/focused-chunks/chunk-E3KCL7AY.js +0 -5
  245. package/dist/cli-bundle/focused-chunks/chunk-ERAAFLPS.js +0 -153
  246. package/dist/cli-bundle/focused-chunks/chunk-F6E4JZKG.js +0 -2
  247. package/dist/cli-bundle/focused-chunks/chunk-FPSYO5ZG.js +0 -18
  248. package/dist/cli-bundle/focused-chunks/chunk-KDH5OX3D.js +0 -4
  249. package/dist/cli-bundle/focused-chunks/chunk-OJ3LVVIS.js +0 -2
  250. package/dist/cli-bundle/focused-chunks/chunk-VABB4L5Y.js +0 -17
@@ -1,153 +0,0 @@
1
- import{E as Br,Ha as bt,J as gt,Ja as Ue,La as He,Ma as We,N as hn,O as gn,Oa as no,P as bn,Pa as ro,Q as ze,Qa as oo,R as qr,Ra as io,S as Vr,Sa as so,Ta as ao,X as Gr,Y as Xr,a as lt,h as yt,o as Hr,p as ht,r as _e,s as z,sa as Kr,t as $e,ta as Jr,ua as Yr,va as Qr,wa as Zr,xa as eo,y as Wr,ya as to}from"./chunk-KDH5OX3D.js";import{C as _t,D as pt,E as yn,G as zr,R as me,S as oe,T as Ur,W as b,X as Fe,Y as I,Z as T,aa as G,ba as ve,ca as pe,da as k,n as ut,o as Lr,p as Pr,q as jr,r as Fr,v as ft,w as mt,x as $r}from"./chunk-D4PIWE6D.js";import{AsyncLocalStorage as Rs}from"node:async_hooks";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="16109ee9-e684-5d25-a5f4-30a6c4f62bd5")}catch{}})();var wn=new Rs,co=/^[A-Za-z0-9](?:[A-Za-z0-9._:-]{0,127})$/u;function wt(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=wt(n.id,128),o=wt(n.parent_id,128);if(r===void 0||!co.test(r)||o!==void 0&&!co.test(o)){if(t)throw new Error("Agent episode ids must be 1-128 letters, digits, dots, underscores, colons, or hyphens.");return}let i=wt(n.label,256);return{id:r,...i===void 0?{}:{label:i},...o===void 0?{}:{parent_id:o}}}function Se(e){let t={};for(let[n,r]of Object.entries(e??{}).slice(0,32)){let o=n.trim().toLowerCase().slice(0,64),i=wt(r,256);/^[a-z][a-z0-9_-]{0,63}$/u.test(o)&&i!==void 0&&(t[o]=i)}return t}function Ds(e,t,n){let r=wn.getStore(),o=Se({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={...Se(r?.provenance),...o,...Se(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 En(e,t){return Ds(e.session_context,t,e.client_info?.episode)??{}}function mf(e,t){let n=wn.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={...Se(n?.provenance),...Se(e.provenance)};return wn.run({...Object.keys(s).length===0?{}:{provenance:s},...i===void 0?o===void 0?{}:{episode:o}:{episode:i}},t)}function _f(e){let t=Se(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 Rn}from"node:async_hooks";import{createHash as Fs}from"node:crypto";import kt from"node:fs";import $s from"node:os";import _o from"node:path";import{createHash as lo}from"node:crypto";import{existsSync as kn,promises as uo,readFileSync as Ms}from"node:fs";import X from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="424b9eb3-6b34-5ab0-a3f5-db61fbca12cf")}catch{}})();var Ls="session.json";function vn(e,t){return typeof e=="string"&&e.length>0&&e.length<=t}function fo(e){if(e===null||typeof e!="object"||Array.isArray(e))return;let t=e,n=["implementer","planner","release-operator"].includes(String(t.role)),r=["high","medium"].includes(String(t.confidence)),o=vn(t.topic,256),i=Array.isArray(t.evidence)&&t.evidence.length<=32&&t.evidence.every(c=>typeof c=="string"&&c.length<=128),s=Array.isArray(t.active_item_ids)&&t.active_item_ids.length<=64&&t.active_item_ids.every(c=>vn(c,128)),a=t.focused_item_id===void 0||vn(t.focused_item_id,128);if([n,r,o,i,s,a,t.rule_version==="v2"].every(Boolean))return t}function Ps(e){if(e===null||typeof e!="object"||Array.isArray(e))return;let t=Object.entries(e).slice(0,128).flatMap(([n,r])=>{let o=fo(r);return o&&n.length<=128?[[n,o]]:[]});return t.length>0?Object.fromEntries(t):void 0}function Sn(e){return X.join(Vr(e),Ls)}async function Et(e){try{let t=await uo.readFile(Sn(e),"utf8"),n=JSON.parse(t);if(n===null||typeof n!="object"||Array.isArray(n))return{};let r=n,o=r.focused_item,i=Ps(r.semantic_attribution);return typeof o=="string"&&o.trim().length>0?{focused_item:o,...i?{semantic_attribution:i}:{}}:i?{semantic_attribution:i}:{}}catch{return{}}}async function In(e,t){let n=Sn(e);await uo.mkdir(X.dirname(n),{recursive:!0}),await z(n,JSON.stringify(t))}function xn(e){return/#([a-f0-9]{24})$/u.exec(e.trim())?.[1]??`author-${lo("sha256").update(e).digest("hex").slice(0,24)}`}function Tn(e){return[...new Set(e.map(t=>t.trim()).filter(Boolean))].slice(0,32).map(t=>t.slice(0,128))}function An(e){let t=[...new Set(e)].sort((o,i)=>o.localeCompare(i));if(t.length===1)return t[0];let n=`workset:${t.join("+")}`;return n.length<=256?n:`workset:${t.join("+").slice(0,230)}+${lo("sha256").update(t.join("\0")).digest("hex").slice(0,12)}`}async function On(e,t,n){let r=await Et(e),o={...r.semantic_attribution},i=n(o[t]);i===void 0?delete o[t]:o[t]=i;let s={...r};Object.keys(o).length===0?delete s.semantic_attribution:s.semantic_attribution=o,await In(e,s)}async function Ef(e){let t=xn(e.principal);await On(e.pmRoot,t,n=>{let r=[...new Set([...n?.active_item_ids??[],e.itemId])].slice(-64).sort((i,s)=>i.localeCompare(s)),o=n?.focused_item_id;return{role:"implementer",topic:o??An(r),confidence:o?"high":"medium",rule_version:"v2",evidence:Tn([...r.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],...(e.lineageIds??[]).map(i=>`lineage:${i}`)]),active_item_ids:r,...o?{focused_item_id:o}:{}}})}async function kf(e){let t=xn(e.principal);await On(e.pmRoot,t,n=>{if(!n)return;let r=n.active_item_ids.filter(i=>i!==e.itemId);if(r.length===0&&!n.focused_item_id)return;let o=n.focused_item_id;return{...n,role:"release-operator",topic:o??An(r),confidence:o?"high":"medium",evidence:Tn([...r.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],`release:${e.itemId}`]),active_item_ids:r}})}async function vf(e){let t=xn(e.principal);await On(e.pmRoot,t,n=>{let r=n?.active_item_ids??[];if(!e.itemId&&r.length===0)return;let o=e.itemId;return{role:o?"planner":n.role,topic:o??An(r),confidence:o?"high":"medium",rule_version:"v2",evidence:Tn([...r.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],...(e.lineageIds??[]).map(i=>`lineage:${i}`)]),active_item_ids:r,...o?{focused_item_id:o}:{}}})}function js(e,t){let n=t.PM_PATH?.trim();if(n){let o=X.resolve(e,n);if(kn(X.join(o,"settings.json")))return o;let i=X.join(o,".agents","pm");if(kn(X.join(i,"settings.json")))return i}let r=X.resolve(e);for(let o=0;o<32;o+=1){let i=X.join(r,".agents","pm");if(kn(X.join(i,"settings.json")))return i;let s=X.dirname(r);if(s===r)break;r=s}}function mo(e){if(!e.key)return;let t=js(e.cwd,e.env);if(t)try{let n=JSON.parse(Ms(Sn(t),"utf8"));return fo(n.semantic_attribution?.[e.key])}catch{return}}async function Sf(e){return(await Et(e)).focused_item}async function If(e,t){let n=await Et(e);await In(e,{...n,focused_item:t})}async function xf(e){let n={...await Et(e)};delete n.focused_item,await In(e,n)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="e0ab2d6f-0925-540d-8d24-a7f0687b4bf0")}catch{}})();var Dn=["model","effort","role","topic","version"],St=new Rn,po=new Rn,It=new Rn,zs=[{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:[]}],Ie=new Map,Cn=/^[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 xt(e){let t=e.harness.trim().toLowerCase();if(!Cn.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])=>Cn.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"&&Cn.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 yo=zs.map(xt);function Us(e,t){return JSON.stringify(e)===JSON.stringify(t)}function vt(e,t){return e.toLowerCase().slice(0,512).split(/[/\\\s:=]+/u).filter(r=>r.length>0).includes(t)||e.trim().toLowerCase()===t}function Mn(e=[]){let t=[...yo,...[...Ie.values()].map(r=>r.descriptor),...It.getStore()?.descriptors??[],...e.map(xt)],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 Ln(e,t){for(let n of t??[]){let r=M(e[n]);if(r)return r.slice(0,256)}}function Hs(e,t){if(t==="role"){let n=e.slice(0,8).map(r=>r.trim().toLowerCase()).find(r=>["claim","create","update","close","release","review"].includes(r));if(n==="review")return"reviewer";if(n)return"implementer"}}function ho(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 Ws=new Set(["implementation","implementer","investigator","orchestrator","planner","release-operator","reviewer"]);function ge(e,t){if(e!=="role"||t===void 0)return t;let n=t.trim().toLowerCase().replaceAll(/[_\s]+/gu,"-");return Ws.has(n)?n:void 0}function Nn(e,t){return M(e?.[t])?.slice(0,256)}var Bs=1048576;function qs(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 Vs(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=_o.resolve(t.cwd??process.cwd()).replaceAll(/[^A-Za-z0-9-]/gu,"-"),s=_o.join(t.home_dir??$s.homedir(),".claude","projects",i,`${r}.jsonl`);try{let a=kt.openSync(s,"r");try{let c=kt.fstatSync(a).size,l=Math.min(c,Bs),m=Buffer.alloc(l);kt.readSync(a,m,0,l,Math.max(0,c-l));let u=m.toString("utf8").split(`
2
- `).reverse();for(let p of u.slice(0,4096)){let y=qs(p,e);if(y)return y}return}finally{kt.closeSync(a)}}catch{return}}function Gs(e,t,n,r){let o=It.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 Vs(e,t,n);if(s==="ai_agent_version"){let a=M(n.AI_AGENT);return!a||!r||!vt(a,r.harness)?void 0:/(?:^|[@/\s])v?(\d+\.\d+(?:\.\d+)?(?:[-+][A-Za-z0-9.-]+)?)$/u.exec(a)?.[1]?.slice(0,256)}}function Xs(e,t,n){if(e==="ai_agent_version"){let r=M(n.AI_AGENT);return r!==void 0&&vt(r,t.harness)}return M(n.CLAUDE_CODE_SESSION_ID)!==void 0}function Pn(e){return e||(po.getStore()??{env:process.env,argv:process.argv})}function Ks(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 vt(l.slice(l.lastIndexOf("/")+1),a)})),s=e.client_names.some(a=>r===a||vt(r,a));return o||i||s}function Js(e,t){if(!t)return;let n;if(e==="topic"&&(n=t.topic),e==="role"&&(n=t.role),!!n)return{value:n,source:"inferred",confidence:t.confidence,rule_version:t.rule_version,evidence:t.evidence}}function Ys(e){let t=e.find(([n])=>n!==void 0);return t?.[0]?{value:t[0],source:t[1]}:void 0}function Qs(e,t,n,r,o,i){let s=`PM_AGENT_${e.toUpperCase().replaceAll("-","_")}`,a=new Set([...Dn,...Object.keys(r?.provenance_environment_keys??{})]),c,l,m;a.has(e)&&(c=ge(e,M(n[s])?.slice(0,256)),m=ge(e,ho(t.argv??[],e)),l=ge(e,Hs(t.argv??[],e)));let u={...r?.provenance_environment_keys,model:r?.model_environment_keys},p={...t.client_info?.provenance,model:t.client_info?.model},y=Nn(o?.provenance,e),w=ge(e,Ln(n,u[e])),S=ge(e,Nn(p,e)),E=ge(e,Nn(t.provenance,e)),C=Gs(e,t,n,r);return Ys([[c,"override"],[y,"session"],[m,"argv"],[w,"environment"],[S,"mcp_client"],[E,"host"],[C,"probe"]])??Js(e,i)??(l?{value:l,source:"argv"}:void 0)}function Zs(e,t){if(!(!e||!t))return Fs("sha256").update(`pm-agent-instance:v1\0${e}\0${t}`).digest("hex").slice(0,24)}function ea(e,t,n,r,o){let i=Object.keys(n?.provenance_environment_keys??{}),s=new Set([...Dn,...i,...Object.keys(n?.provenance_resolvers??{}),...Object.keys(e.provenance??{}),...Object.keys(e.client_info?.provenance??{}),...Object.keys(r?.provenance??{})]),a={};for(let c of s){let l=Qs(c,e,t,n,r,o);l?a[c]=l:n&&(c!=="version"||n.provenance_unavailable_dimensions.includes(c))&&(a[c]=null)}return a}function Lf(e){let t=e.map(xt),n=new Map(yo.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=Ie.get(i.harness);if(s&&!Us(s.descriptor,i))throw new Error(`Harness signal descriptor collision for "${i.harness}"`);r.add(i.harness)}for(let i of t){let s=Ie.get(i.harness);Ie.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=Ie.get(i.harness);!s||s.registrations<=1?Ie.delete(i.harness):s.registrations-=1}}}}function Pf(e,t){return po.run(e,t)}function jf(e,t,n={}){let r=e.map(xt);return Mn(r),It.run({descriptors:r,probesEnabled:n.probesEnabled!==!1},t)}function jn(e){let t=Pn(e),n=t.env??{},r=Mn(t.descriptors),o=[...(t.argv??[]).slice(0,3),...t.process_labels??[]].slice(0,64).map(w=>w.slice(0,512)),i=t.client_info?.name.trim().toLowerCase()??"",s=r.find(w=>Ks(w,n,o,i)),a=En(t,n),c=[Ln(n,s?.session_environment_keys),M(t.client_info?.session)?.slice(0,256)].find(w=>w!==void 0),l=Zs(s?.harness,c),m=mo({cwd:t.cwd??process.cwd(),env:n,key:l}),u=ea(t,n,s,a,m),p=u.model,y=[["harness",s?.harness],["model",p?.value],["model_source",p?.source],["session",c],["instance",l],["provenance",Object.keys(u).length>0?u:void 0],["episode",a.episode]];return Object.fromEntries(y.filter(w=>w[1]!==void 0))}function ta(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=Xs(s,n,r);return{status:a&&o?"failed":"unavailable",reason:a?o?"resolver_failed":"probes_disabled":"harness_unavailable",resolver:s,rule_version:"v1"}}return{status:n?.provenance_unavailable_dimensions.includes(e)?"unavailable":"not_configured",reason:n?.provenance_unavailable_dimensions.includes(e)?"harness_unavailable":"resolver_not_configured",rule_version:"v1"}}function go(e){let t=Pn(e),n=jn(t),r=Mn(t.descriptors).find(l=>l.harness===n.harness),o=t.env??{},i=t.probes_enabled!==!1&&It.getStore()?.probesEnabled!==!1&&!["0","false","off"].includes(M(o.PM_AGENT_PROBES)?.toLowerCase()??""),s=En(t,o),a=[o.PM_AGENT_ROLE,s.provenance?.role,Ln(o,r?.provenance_environment_keys.role),t.client_info?.provenance?.role,t.provenance?.role,ho(t.argv??[],"role")].some(l=>{let m=M(l)?.slice(0,256);return m!==void 0&&ge("role",m)===void 0}),c=Object.fromEntries(Dn.map(l=>[l,ta(l,n,r,o,i,l==="role"&&a)]));return{...n,provenance_outcomes:c}}function Ff(){return process.env.PM_AUTHOR}function $f(e){e===void 0?delete process.env.PM_AUTHOR:process.env.PM_AUTHOR=e}function zf(e){return jn(e).harness}function na(e,t,n){let r=Pn(n),o=jn(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 bo(e){let t=St.getStore();return t?.author===e?t.source:e.startsWith("harness:")?"detected":e==="unknown"?"unknown":"asserted"}function wo(e){let t=St.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 Eo(e){let t=St.getStore();return t?.author===e&&t.source==="detected"&&t.instance?`${e}#${t.instance}`:e}function ko(e,t){let n=na(e,t);return St.enterWith(n),n.author}import ra from"node:crypto";import{AsyncLocalStorage as oa}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 So=new oa,vo=1024;function Io(){let e=So.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 xo(e){let t=So.getStore();if(t===void 0)return;if(!Number.isSafeInteger(e)||e<0||e>vo)throw new Error(`Reproducible token length must be an integer between 0 and ${vo}`);let n="";for(;n.length<e;){let r=ra.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 ia=/^([+-]?)(\d+)([hdwm])$/i,sa=/^[+-]?\d+[hdwm](?:[+-]\d+[hdwm])+$/i,aa=/^(\d{4})(\d{2})(\d{2})$/,ca=/^(\d{4})(\d{2})(\d{2})(?:[T\s]?)(\d{2})(\d{2})(\d{2})?([.,]\d{1,3})?(Z|[+-]\d{2}:?\d{2})?$/i,da=/^(\d{4}-\d{2}-\d{2})[T\s](\d{2})-(\d{2})(?:-(\d{2}))?([.,]\d{1,3})?(Z|[+-]\d{2}:?\d{2})?$/i,la=/^(\d{4}-\d{2}-\d{2})[T\s](\d{2})(\d{2})(\d{2})?([.,]\d{1,3})?(Z|[+-]\d{2}:?\d{2})?$/i;function be(){return Io()??new Date().toISOString()}function ie(e){return Number.isFinite(Date.parse(e))}var ua=1e4,Tt=new Map;function To(e){let t=Tt.get(e);if(t!==void 0)return t;let n=Date.parse(e);return Tt.size>=ua&&bt(Tt),Tt.set(e,n),n}function F(e,t){let n=To(e),r=To(t);return Number.isFinite(n)&&Number.isFinite(r)&&n!==r?n-r:e.localeCompare(t)}function Kf(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 Fn(e){return e?`.${e.slice(1).padEnd(3,"0").slice(0,3)}`:""}function $n(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 fa(e,t,n){n&&n!==t&&(e.includes(n)||e.push(n))}function ma(e){let t=[],n=l=>fa(t,e,l),r=aa.exec(e);if(r){let[,l,m,u]=r;n(`${l}-${m}-${u}`)}let o=ca.exec(e);if(o){let[,l,m,u,p,y,w,S,E]=o,C=w?`:${w}`:"";n(`${l}-${m}-${u}T${p}:${y}${C}${Fn(S)}${$n(E)}`)}let i=da.exec(e);if(i){let[,l,m,u,p,y,w]=i,S=p?`:${p}`:"";n(`${l}T${m}:${u}${S}${Fn(y)}${$n(w)}`)}let s=la.exec(e);if(s){let[,l,m,u,p,y,w]=s,S=p?`:${p}`:"";n(`${l}T${m}:${u}${S}${Fn(y)}${$n(w)}`)}let a=10,c=e.slice(0,a);if(pa(c)){let l=a;for(;l<e.length&&ya(e[l]);)l+=1;l<e.length&&n(`${c}T${e.slice(l)}`)}return t}function _a(e){let t=Date.parse(e);if(Number.isFinite(t))return t;for(let n of ma(e)){let r=Date.parse(n);if(Number.isFinite(r))return r}return Number.NaN}function pa(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 ya(e){return e?e===" "||e===" "||e===`
3
- `||e==="\r"||e==="\f"||e==="\v":!1}function Ao(e,t){return new Date(Date.UTC(e,t+1,0)).getUTCDate()}var ha=["January","February","March","April","May","June","July","August","September","October","November","December"],ga=/^(\d{4})-(\d{2})-(\d{2})/,ba=/^(\d{4})(\d{2})(\d{2})(?:[T ]?\d{2}|$)/;function wa(e,t,n){let r=ga.exec(t)??ba.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=Ao(o,i-1);if(s<1||s>c)throw new T(`Invalid ${a} value "${e}". ${ha[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,Ao(i,s));return n.setUTCFullYear(i,s,a),n}function Jf(e,t=new Date,n="deadline"){let r=e.trim();if(r.toLowerCase()==="now")return t.toISOString();let o=ia.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()}wa(e,r,n);let i=_a(r);if(!Number.isFinite(i)){let s=n.trim().length>0?n.trim():"deadline",a=sa.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,Oo=1;function Qf(e){let t=e.pm_format_version;return typeof t=="number"&&Number.isInteger(t)&&t>=xe?t:xe}function Co(e){if(!(typeof e!="number"||!Number.isInteger(e)||e<=xe))return e}function ka(e,t=Oo){return e<t?"outdated":e>t?"ahead":"current"}function Zf(e,t=Oo){let n=[],r=[];for(let o of e){let i=ka(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 va={"in-progress":"in_progress",cancelled:"canceled"};function At(e,t){if(t){let o=io(e,t);if(o)return o}if(typeof e!="string")return;let n=e.trim().toLowerCase();if(!n)return;let r=va[n]??n;if(ut.includes(r))return r}function Sa(e,t){return At(e,t)??e}function rm(e,t){return t.terminal_statuses.has(Sa(e,t))}import{encode as Na}from"@toon-format/toon";import{isDeepStrictEqual as Lo}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 zn(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 Ia(e){return[...new Set([ao(e),zn(e.key),zn(e.cli_flag),...e.cli_aliases.map(t=>zn(t))])]}function Do(e,t){for(let n of Ia(t)){if(!Object.hasOwn(e,n))continue;let r=e[n];if(r!==void 0)return r}}function Mo(e){return Array.isArray(e)?e.flatMap(t=>Mo(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 No(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 Ro(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 xa(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:xa(i,r,e.type)}if(e.repeatable||e.type==="string_array"){let i=Mo(t);return e.type==="number"?i.map(s=>Ro(s,r)):e.type==="boolean"?i.map(s=>No(s,r)):i}let o=Array.isArray(t)?t[t.length-1]:t;if(o!==void 0)return e.type==="number"?Ro(o,r):e.type==="boolean"?No(o,r):typeof o=="string"?o:String(o)}function Ta(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 cm(e,t,n){let r={},o=[];for(let i of t.command_to_fields.get("create")??[]){let s=Do(e,i);if(s===void 0){Ta(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 dm(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=Do(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 Un(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 Oa=/^\s*(<<<<<<<|=======|>>>>>>>)(?:\s.*)?$/;function Ca(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(Oa);if(!i)continue;let s=i[1];n.push({line:r+1,marker:s,text:o})}return n}function Ot(e){return Ca(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]="eaf0e260-a864-57cf-b23b-aac4f9151d8e")}catch{}})();var Ra=new Set(["schema","tracker","auto"]),Da=new Set(["passed","failed","stopped","canceled"]),Ma=new Set(zr);function Oe(e){return e.replaceAll("\\","/")}function Fo(e){for(let t of e)if(t!==0)return t;return 0}function Ct(e){for(let[t,n]of Object.entries(e))n===void 0&&delete e[t]}var $o=["id","title","description","created_at","updated_at"],La=new Set(oe);function zo(e){if(e?.schema)return{statusRegistry:oo(e.schema),fieldRegistry:so(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 Uo(e){let t=new Set(La);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 Hn(e,t){let n=e[t];g(typeof n=="string",`${t} must be a string`),g(ie(n),`${t} must be a valid ISO timestamp`)}function Po(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 qn(e,t,n){let r=e[t];r!==void 0&&(g(typeof r=="string",`${n} must be a string`),g(ie(r),`${n} must be a valid ISO timestamp`))}function ja(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(pt.includes(n),`event.recurrence.by_weekday entries must be one of: ${pt.join(", ")}`)}}}function Fa(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 $a(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(ie(t),"event.recurrence.exdates entries must be valid ISO timestamps")}}function za(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(_t.includes(n),`event.recurrence.freq must be one of: ${_t.join(", ")}`),Po(t,"interval","event.recurrence.interval"),Po(t,"count","event.recurrence.count"),qn(t,"until","event.recurrence.until"),ja(t.by_weekday),Fa(t.by_month_day),$a(t.exdates)}function Ua(e){for(let r of $o)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 Ha(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=At(n,r),i=r?r.definitions.map(s=>s.id):[...ut];g(o!==void 0,`status must be one of: ${i.join(", ")}`)}function Wa(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 Ba(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"||mt.includes(n);g(r,`confidence string value must be one of: ${[...mt,"med"].join(", ")}`);return}g(!1,"confidence must be a number or string")}}function qa(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"||ft.includes(n);g(r,`severity value must be one of: ${[...ft,"med"].join(", ")}`)}function Va(e){e.regression!==void 0&&typeof e.regression!="boolean"&&se("regression must be a boolean")}function Ga(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(ie(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 Xa(e){for(let t of["title","description","location","timezone"])e[t]!==void 0&&(g(typeof e[t]=="string",`event.${t} must be a string`),g(e[t].trim().length>0,`event.${t} must not be empty`))}function Ka(e){e.recurrence!==void 0&&(za(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 Ja(e){let t=Xe(e,"events entries must be objects");g(typeof t.start_at=="string","event.start_at must be a string"),g(ie(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(ie(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")),Xa(t),t.all_day!==void 0&&g(typeof t.all_day=="boolean","event.all_day must be a boolean"),Ka(t)}function Ya(e){let t=e.events;if(t!==void 0){g(Array.isArray(t),"events must be an array");for(let n of t)Ja(n)}}function Qa(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 Za(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 ec(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 tc(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let n=Uo(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 Vn(e,t){let n=Xe(e,"item metadata must be an object"),r=Ua(n);Ha(n,t),Wa(n),Ba(n),qa(n),Va(n),Hn(n,"created_at"),Hn(n,"updated_at"),n.deadline!==void 0&&Hn(n,"deadline"),Ga(n),Ya(n),qn(n,"closed_at","closed_at"),qn(n,"completed_at","completed_at"),Qa(n),Za(n),ec(n,r,t),tc(n,t)}function nc(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 Wn(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 rc(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 oc(e){if(!e)return;let t=e.freq.trim().toLowerCase();if(!_t.includes(t))return;let n=Array.from(new Set((e.by_weekday??[]).map(s=>s.trim().toLowerCase()).filter(s=>pt.includes(s)))).sort((s,a)=>yn(s)-yn(a)),r=Array.from(new Set((e.by_month_day??[]).filter(s=>Number.isInteger(s)&&s>=1&&s<=31).map(s=>s))).sort((s,a)=>s-a),o=Array.from(new Set((e.exdates??[]).map(s=>s.trim()).filter(s=>ie(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 ic(e){return!Array.isArray(e)||e.length===0?void 0:[...e].map(sc).sort(ac)}function sc(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:oc(e.recurrence)};return Ct(t),t}function ac(e,t){return Fo([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 cc(e){if(!(!e||e.length===0))return e.map(t=>({path:Oe(t.path),scope:t.scope,note:t.note?.trim()||void 0}))}function dc(e){if(!e||e.length===0)return;let t=e.map(fc).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)=>Fo([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 lc(e){return typeof e=="number"&&Number.isFinite(e)&&e>=1?Math.floor(e):void 0}function Bn(e){return typeof e=="string"?e:""}function uc(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 fc(e){let t=typeof e.run_id=="string"?e.run_id.trim():"",n=e.kind==="test"||e.kind==="test-all"?e.kind:"test",r=Da.has(e.status)?e.status:"failed",o={run_id:t,kind:n,status:r,started_at:Bn(e.started_at),finished_at:Bn(e.finished_at),recorded_at:Bn(e.recorded_at),attempt:lc(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:uc(e.measurements)};return Ct(o),o}function mc(e){if(!(!Array.isArray(e)||e.length===0))return e.map(yc)}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 Ho(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function Xn(e){return e==="__proto__"||e==="constructor"||e==="prototype"}function jo(e){if(!Ho(e))return;let t=Object.entries(e).map(([n,r])=>[n.trim(),String(r).trim()]).filter(([n,r])=>n.length>0&&!Xn(n)&&r.length>0).sort(([n],[r])=>n.localeCompare(r));return t.length>0?Object.fromEntries(t):void 0}function _c(e){if(!Ho(e))return;let t=Object.entries(e).map(([n,r])=>[n.trim(),Number(r)]).filter(([n,r])=>n.length>0&&!Xn(n)&&Number.isFinite(r)).sort(([n],[r])=>n.localeCompare(r));return t.length>0?Object.fromEntries(t):void 0}function pc(e){let t=e?.trim().toLowerCase();if(!(!t||!Ra.has(t)))return t}function yc(e){let t={command:e.command?.trim()||void 0,path:e.path?Oe(e.path):void 0,scope:e.scope,timeout_seconds:typeof e.timeout_seconds=="number"&&Number.isFinite(e.timeout_seconds)&&e.timeout_seconds>0?e.timeout_seconds:void 0,pm_context_mode:pc(e.pm_context_mode),env_set:jo(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:jo(e.assert_json_field_equals),assert_json_field_gte:_c(e.assert_json_field_gte),note:e.note?.trim()||void 0};return Ct(t),t}function hc(e){if(!(!e||e.length===0))return[...e].map(t=>({path:Oe(t.path),scope:t.scope,note:t.note?.trim()||void 0})).sort((t,n)=>{let r=t.scope.localeCompare(n.scope);if(r!==0)return r;let o=t.path.localeCompare(n.path);return o!==0?o:(t.note??"").localeCompare(n.note??"")})}function h(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function gc(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=h(r.id),i=h(r.kind);if(!o||!i)continue;let s={id:o,kind:i},a=h(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 bc(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=h(r.path);if(!o)continue;let i={path:Oe(o)};(r.scope==="project"||r.scope==="global")&&(i.scope=r.scope);let s=h(r.note);s&&(i.note=s),t.push(i)}return t.length>0?t:void 0}function wc(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=h(r.command),i=h(r.path);if(!o&&!i)continue;let s={};o&&(s.command=o),i&&(s.path=Oe(i));let a=h(r.note);a&&(s.note=a),t.push(s)}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=h(r.path);if(!o)continue;let i={path:Oe(o)};(r.scope==="project"||r.scope==="global")&&(i.scope=r.scope);let s=h(r.note);s&&(i.note=s),t.push(i)}return t.length>0?t:void 0}function kc(e){if(e===null||typeof e!="object")return;let t=e,n=h(t.id),r=h(t.title),o=h(t.status),i=o&&Ma.has(o)?o:void 0,s=Xr(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 vc(l,t),l}function vc(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=h(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",gc],["files","files",bc],["tests","tests",wc],["docs","docs",Ec]];for(let[i,s,a]of o){let c=a(t[s]);c&&(e[i]=c)}}function Sc(e){if(!Array.isArray(e))return;let t=e.flatMap(n=>{let r=kc(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=h(r.decision);if(!o||!i||!s)continue;let a={ts:o,author:i,decision:s},c=h(r.rationale);c&&(a.rationale=c);let l=h(r.evidence);l&&(a.evidence=l);let m=h(r.step_id);m&&(a.step_id=m),t.push(a)}return t.length>0?t:void 0}function xc(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=h(r.text);if(!o||!i||!s)continue;let a={ts:o,author:i,text:s},c=h(r.step_id);c&&(a.step_id=c),t.push(a)}return t.length>0?t:void 0}function Tc(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=h(r.text);if(!o)continue;let i={text:o},s=h(r.command);s&&(i.command=s);let a=h(r.expected);a&&(i.expected=a),t.push(i)}return t.length>0?t:void 0}function Ac(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 Ae(e){let t=0;for(;t<e.length&&e[t]===`
4
- `;)t+=1;return e.slice(t).trimEnd()}function Oc(e){if(e===void 0)return;if(typeof e=="number")return e;let t=e.trim().toLowerCase();if(t==="med")return"medium";if(mt.includes(t))return t}function Cc(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(t==="med")return"medium";if(ft.includes(t))return t}function Ve(e){return e||void 0}function Nc(e,t){let n=e,r=t;for(let[o,i]of Object.entries(r))Xn(o)||Object.prototype.hasOwnProperty.call(n,o)||i===void 0||(n[o]=i)}function Rc(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 Dc(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let n=Uo(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 Nt(e,t={}){let n=zo(t),r=At(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:Co(e.pm_format_version),source_type:h(e.source_type),type_options:Ac(e.type_options),status:r,priority:e.priority,tags:o,created_at:e.created_at,updated_at:e.updated_at,dependencies:nc(e.dependencies),comments:Wn(e.comments),notes:Wn(e.notes),learnings:Wn(e.learnings),files:cc(e.files),tests:mc(e.tests),test_runs:dc(e.test_runs),docs:hc(e.docs),deadline:Ve(e.deadline),reminders:rc(e.reminders),events:ic(e.events),closed_at:Ve(e.closed_at),completed_at:Ve(e.completed_at),assignee:h(e.assignee),claim_principal:h(e.claim_principal),source_owner:h(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:h(e.definition_of_ready),order:e.order,goal:h(e.goal),objective:h(e.objective),value:h(e.value),impact:h(e.impact),outcome:h(e.outcome),why_now:h(e.why_now),parent:h(e.parent),reviewer:h(e.reviewer),risk:e.risk??void 0,confidence:Oc(e.confidence),sprint:h(e.sprint),release:h(e.release),blocked_by:h(e.blocked_by),blocked_reason:h(e.blocked_reason),unblock_note:h(e.unblock_note),reporter:h(e.reporter),severity:Cc(e.severity),environment:h(e.environment),repro_steps:h(e.repro_steps),resolution:h(e.resolution),expected_result:h(e.expected_result),actual_result:h(e.actual_result),affected_version:h(e.affected_version),fixed_version:h(e.fixed_version),component:h(e.component),regression:e.regression,customer_impact:h(e.customer_impact),close_reason:Ve(e.close_reason),plan_mode:h(e.plan_mode),plan_scope:h(e.plan_scope),plan_harness:h(e.plan_harness),plan_resume_context:h(e.plan_resume_context),plan_steps:Sc(e.plan_steps),plan_decisions:Ic(e.plan_decisions),plan_discoveries:xc(e.plan_discoveries),plan_validation:Tc(e.plan_validation)};return Nc(i,e),Rc(i,n),Dc(i,n),Ct(i),i}function Wo(e){return k(e,oe)}function Mc(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 Lc(e){if(!e.startsWith("{"))return{frontMatter:"",body:e};let t=Mc(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 Pc(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 Gn(e,t){return Nt(e,{...t,onWarning:void 0})}function jc(e,t,n={}){let r=Pc(e);r.stripped&&n.onWarning?.("json_markdown_leading_yaml_frontmatter_ignored");let{frontMatter:o,body:i}=Lc(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 Vn(s,t),{metadata:Gn(s,n),body:Ae(i)}}function Fc(e,t,n={}){let r;try{r=Un(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(!$o.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 Vn(o.front_matter,t),g(o.body===void 0||typeof o.body=="string","TOON item document body must be a string"),{metadata:Gn(o.front_matter,n),body:Ae(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"),Vn(s,t),{metadata:Gn(s,n),body:Ae(typeof i=="string"?i:"")}}function $c(e,t={}){let n=Nt(e.metadata,t),r=Wo(n),o=JSON.stringify(r,null,2),i=Ae(e.body??"");return i?`${o}
6
-
7
- ${i}
8
- `:`${o}
9
- `}function zc(e,t={}){let n=Nt(e.metadata,t),r=Wo(n),o=Ae(e.body??""),i={...r,body:o},s=JSON.parse(JSON.stringify(i)),a=Na(s),c;try{c=Un(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(!Lo(c,s)){let l=typeof c=="object"&&c!==null&&!Array.isArray(c)?c:{},m=Object.keys(s).find(u=>!Lo(s[u],l[u]))??"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 Rt(e,t={}){let n=Ot(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=zo(t);return r==="toon"?Fc(e,o,t):jc(e,o,t)}function Bo(e,t={}){return(t.format??"toon")==="toon"?zc(e,t):$c(e,t)}function B(e,t={}){return{metadata:Nt(e.metadata,t),body:Ae(e.body??"")}}import{existsSync as Hc}from"node:fs";import{AsyncLocalStorage as Wc}from"node:async_hooks";import Z 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 Rm(){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 Uc(){let e=Promise.resolve(),t=0,n=[],r=()=>{if(t!==0)return;let o=n.splice(0);for(let i of o)i()};return{enqueue(o){t++;let i=e.then(()=>o());return e=i.then(()=>{},()=>{}).finally(()=>{t--,r()}),i},idle(){return t===0?Promise.resolve():new Promise(o=>n.push(o))}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="38024e6c-c1ef-5c15-8421-ac18d317e330")}catch{}})();var Ce=null,Vo=null,Bc=null,qc=null,Kn=null,Vc=null,Go=null,Gc=null;var Xc=[],Xo=new Wc;function L(){return Xo.getStore()}function qm(e){return Xo.run({hooks:null,commands:null,parsers:null,preflight:null,services:null,renderers:null,registrations:null,commandContext:null,commandResult:void 0,affectedItems:[]},e)}var Kc=new Set(["body","comments","dependencies","docs","events","files","learnings","notes","reminders","test_runs","tests"]);function qo(e){let t=Z.resolve(e);for(;;){if(Hc(Z.join(t,".git")))return t;let n=Z.dirname(t);if(n===t)return;t=n}}function Jc(e){let t=process.env.PM_SOURCE_WORKSPACE_ROOT?.trim()||process.cwd(),n=qo(t)??Z.resolve(t),r=qo(n);if(!e)return{source_workspace_root:n,...r?{repo_root:r}:{}};let o=Z.relative(n,Z.resolve(e)),i=o.length>0&&!o.startsWith(`..${Z.sep}`)&&o!==".."&&!Z.isAbsolute(o);return{source_workspace_root:n,...r?{repo_root:r}:{},...i?{pm_root_rel:o.split(Z.sep).join("/")}:{}}}function Vm(e){let t=L();if(t){t.hooks=e;return}Ce=e}function Gm(e){let t=L();if(t){t.commands=e;return}Vo=e}function Xm(e){let t=L();if(t){t.parsers=e;return}Bc=e}function Km(e){let t=L();if(t){t.preflight=e;return}qc=e}function Jm(e){let t=L();if(t){t.services=e;return}Kn=e}function Ym(e){let t=L();if(t){t.renderers=e;return}Vc=e}function Qm(e){let t=L();if(t){t.registrations=e;return}Go=e}function Ke(){let e=L();return e?e.registrations:Go}function Jn(e){if(!e)return;let t=L();t?t.affectedItems.push(e):Xc.push(e)}function Dt(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"||Kc.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:Ce;return n?Jr(n,e):[]}async function Yn(e){let t=L(),n=t?t.hooks:Ce;n&&await Kr(n,e)}async function K(e){let t=L(),n=t?t.hooks:Ce;return n?Yr(n,e):[]}function Qn(){let e=L();return((e?e.hooks:Ce)?.onRead?.length??0)>0}async function Zm(e){let t=L(),n=t?t.hooks:Ce;return n?Qr(n,e):[]}async function e_(e){let t=L(),n=t?t.commands:Vo;return n?Zr(n,{...e,...Jc(e.pm_root)}):{handled:!1,result:null,warnings:[]}}function Ko(e,t){let n=L(),r=n?n.commandContext:Gc;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 ee(e,t){let n=L(),r=n?n.services:Kn;return r?to(r,Ko(e,t)):{handled:!1,result:t,warnings:[]}}function Jo(e,t){let n=L(),r=n?n.services:Kn;return r?eo(r,Ko(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 K({path:e,scope:"project"}),n.trim()==="")return[];let r=Ot(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 dr 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 ci from"fast-json-patch";import ae from"node:fs/promises";import te from"node:path";import{randomUUID as Yc}from"node:crypto";import{createRequire as Qc}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 Zc="history-event-index.sqlite",Zn="2";function Pt(e){return te.join(e,"runtime",Zc)}function ed(e){try{return e(["node","sqlite"].join(":")).DatabaseSync??null}catch{return null}}function td(e,t){let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>=22?ed(t):null}var Mt;function er(){return Mt!==void 0||(Mt=td(process.versions.node,Qc(import.meta.url))),Mt}function nd(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(Zn)}function Yo(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 g_(e){let t=er();if(!t)return!1;let n=te.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=Pt(e);await ae.mkdir(te.dirname(i),{recursive:!0});let s=`${i}.${Yc()}.tmp`,a;try{a=new t(s),nd(a),a.exec("BEGIN IMMEDIATE");for(let c of o){let l=c.name.slice(0,-6),m=await Je(te.join(n,c.name),l);for(let[u,p]of m.entries())Yo(a,{stream_id:l,stream_offset:u,entry:p})}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 Qo(e,t){let n=te.dirname(te.dirname(e)),r=Pt(n);try{await ae.access(r)}catch{return}let o=er();if(!o)return;let i;try{if(i=new o(r),i.prepare("SELECT value FROM metadata WHERE key = 'version'").get()?.value!==Zn)throw new TypeError("Unsupported history event index version");let a=te.basename(e,".jsonl"),c=i.prepare("SELECT COALESCE(MAX(stream_offset), -1) + 1 AS value FROM events WHERE stream_id = ?").get(a);Yo(i,{stream_id:a,stream_offset:Number(c.value),entry:t}),i.close()}catch{i?.close(),await ae.rm(r,{force:!0})}}async function jt(e){await ae.rm(Pt(te.dirname(te.dirname(e))),{force:!0})}function Lt(e,t,n,r){!r||r.length===0||(e.push(`${n} IN (${r.map(()=>"?").join(", ")})`),t.push(...r))}function rd(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 b_(e,t){let n=er();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)),Lt(r,o,"op",t.ops),Lt(r,o,"author",t.authors),rd(r,o,t.harnesses,t.harness_alias_authors),Lt(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);Lt(r,o,"stream_id",t.stream_ids);let i=r.length===0?"":` WHERE ${r.join(" AND ")}`,s;try{if(s=new n(Pt(e),{readOnly:!0}),s.prepare("SELECT value FROM metadata WHERE key = 'version'").get()?.value!==Zn)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(u=>({stream_id:String(u.stream_id),stream_offset:Number(u.stream_offset),entry:JSON.parse(String(u.entry_json))}));return s.close(),{events:m,has_more:l}}catch{return s?.close(),null}}import ar 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 Ft="changed_fields",od="changed_field_count",tr="rows",id=new Set(["apply","rollback"]),Zo=new Set(["deleted","would_delete"]);function we(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function ei(e){let t=e[Ft];if(!Array.isArray(t))return null;let n=Object.getPrototypeOf(e)===null?Object.create(null):{};for(let[r,o]of Object.entries(e))r!==Ft&&(n[r]=o);return n[od]=t.length,n}function sd(e){return"item"in e&&Array.isArray(e[Ft])}function ad(e){return typeof e.mode=="string"&&id.has(e.mode)&&Array.isArray(e[tr])}function cd(e,t){let n=Object.getPrototypeOf(e)===null?Object.create(null):{};return Object.assign(n,e),n[tr]=t,n}function dd(e){if(!we(e))return null;let t=we(e.item)?e.item:we(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"&&Zo.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 ld(e){if(!we(e)||!we(e.item)||typeof e.item.id!="string")return null;let t=e[Ft];if(!Array.isArray(t))return null;let n={id:e.item.id,...typeof e.outcome=="string"&&Zo.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 ud(e){let t=ad(e)?e[tr]:void 0;if(!Array.isArray(t))return{projected:e,changed:!1};let n=!1,r=t.map(o=>{if(!we(o))return o;let i=ei(o);return i?(n=!0,i):o});return n?{projected:cd(e,r),changed:!0}:{projected:e,changed:!1}}function fd(e,t={}){if(t.idOnly===!0){let a=dd(e);if(a!==null)return a}if(t.compactEnvelope===!0){let a=ld(e);if(a!==null)return a}if((t.changedFields??"full")==="full"||!we(e))return e;let r=!1,o=e,i=sd(e)?ei(e):null;i!==null&&(o=i,r=!0);let s=ud(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 F_=new Set(Object.values(I));var ti=!1;function Ye(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function rr(e){return typeof e=="object"&&e!==null&&e.code==="EPIPE"}function md(){(process.exitCode===void 0||process.exitCode===I.SUCCESS)&&(process.exitCode=I.SUCCESS)}function _d(){(process.exitCode===void 0||process.exitCode===I.SUCCESS)&&(process.exitCode=I.GENERIC_FAILURE)}function or(e){if(e==="stdout"){md();return}_d()}function ni(e){let t=e instanceof Error?e:new Error(String(e));setImmediate(()=>{throw t})}function pd(){ti||(ti=!0,process.stdout.on("error",e=>{if(rr(e)){or("stdout");return}ni(e)}),process.stderr.on("error",e=>{if(rr(e)){or("stderr");return}ni(e)}))}function yd(e,t){pd();try{return e==="stdout"?process.stdout.write(t):process.stderr.write(t),!0}catch(n){if(rr(n))return or(e),!1;throw n}}function $t(e){return yd("stderr",e)}function nr(e){return typeof e=="string"?JSON.stringify(e):typeof e=="number"||typeof e=="boolean"?String(e):e===null?"null":JSON.stringify(e)}function ir(e){if(e!=null){if(Array.isArray(e)){let t=e.map(n=>ir(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=ir(r);o!==void 0&&(t[n]=o)}return Object.keys(t).length>0?t:void 0}return e}}function sr(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}- ${nr(r)}`;let i=sr(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}: ${nr(i)}`:Array.isArray(i)&&i.length===0?`${n}${o}: []`:Ye(i)&&Object.keys(i).length===0?`${n}${o}: {}`:`${n}${o}:
49
- ${sr(i,t+1)}`).join(`
50
- `)}return`${n}${nr(e)}`}function $_(e,t){if(t==="json")return`${JSON.stringify(e,null,2)}
51
- `;let n=ir(e);return n===void 0?`{}
52
- `:`${sr(n,0)}
53
- `}function z_(e){let t=Jo("error_format",{message:e}),n=t.handled&&typeof t.result=="string"?t.result:e;$t(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 hd=Ne.join("runtime","history-drift-cache.json"),ri={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 oi(e){return typeof e=="object"&&e!==null&&"code"in e&&typeof e.code=="string"?e.code:void 0}async function gd(e){let t=Ne.join(e,hd),n=!1,r="invalid_cache_path";try{n=(await ar.stat(await ar.realpath(e))).isDirectory()}catch(o){let i=oi(o);r=i===void 0?"unknown":ri[i]??"filesystem_error"}if(!n){$t(`[pm] warning: history_drift_cache_invalidation_failed:${r}
56
- `);return}try{await ar.rm(t,{force:!0})}catch(o){let i=oi(o);if(i==="ENOENT")return;let s=i===void 0?"unknown":ri[i]??"filesystem_error";$t(`[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 gd(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 wd={front_matter:{},body:""};function Ed(e){return!e||e==="/"?[]:e.startsWith("/")?e.slice(1).split("/").map(t=>t.replaceAll("~1","/").replaceAll("~0","~")):[]}function kd(e,t){let n=Ed(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 vd(e,t){let n=[],r=structuredClone(e);for(let o of t){let i=o.op==="replace"&&!kd(r,o.path)?{...o,op:"add"}:o;n.push(i),r=ci.applyPatch(r,[i],!0,!0).newDocument}return n}function cr(e){if(!(e.metadata&&Object.keys(e.metadata).length>0))return{front_matter:{},body:e.body??""};let n=B(e);return{front_matter:k(n.metadata,oe),body:n.body}}function ii(e){if(!(e.metadata&&Object.keys(e.metadata).length>0))return{metadata:{},body:e.body??""};let n=B(e);return{metadata:k(n.metadata,oe),body:n.body}}function di(e){return pe(G(cr(e)))}function rp(){return pe(G(wd))}function Re(e){let t=cr(e.before),n=cr(e.after),r=ii(e.before),o=ii(e.after),i=ci.compare(r,o),s=vd(r,i),a=wo(e.author),c=a.harness?Object.fromEntries(Object.entries(go().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??bo(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 si(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Sd(e){let t=e.ts.trim();return t.length>0?t:be()}function ai(e,t){let n=e.ts;return typeof n=="string"&&n.trim().length>0?e:{...e,ts:t}}function zt(e,t){let n=Sd(t);if(typeof e=="string"){try{let r=JSON.parse(e);if(si(r))return JSON.stringify(ai(r,n))}catch{}return e}return si(e)?JSON.stringify(ai(e,n)):JSON.stringify(e)}async function De(e,t){let n=await ee("history_append",{history_path:e,entry:t});if(n.handled){if(n.result===!1)return;if(typeof n.result=="string"){await $e(e,zt(n.result,t)),await Qe(e),await jt(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,zt(r.line,t)),await Qe(o),await jt(o);return}await $e(o,zt(r.entry??t,t)),await Qe(o),await jt(o);return}}await $e(e,zt(t,t)),await Qe(e),await Qo(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 Ht(){return structuredClone(Id)}function Ut(e){if(Object.keys(e.metadata).length===0||Array.isArray(e.metadata.tags))try{return di(Wt(e))}catch{}return pe(G({replay_fallback:!0,metadata:e.metadata,body:e.body}))}function Wt(e){return{metadata:e.metadata,body:e.body}}function up(e,t={}){return B(Wt(e),t)}function fp(e){if(!e.metadata||Object.keys(e.metadata).length===0)return{metadata:{},body:e.body??""};let t=B(e);return{metadata:k(t.metadata,oe),body:t.body}}function li(e){return e==="/front_matter"?"/metadata":e.startsWith("/front_matter/")?`/metadata/${e.slice(14)}`:e}function xd(e){return typeof e=="object"&&e!==null&&typeof e.op=="string"&&typeof e.path=="string"}function fi(e){return Array.isArray(e)?e.filter(xd).map(t=>({...t,path:li(t.path),from:typeof t.from=="string"?li(t.from):void 0})):[]}function Td(e){return typeof e=="object"&&e!==null&&"metadata"in e&&"body"in e&&typeof e.body=="string"&&typeof e.metadata=="object"&&e.metadata!==null}function Bt(e,t){try{let n=fi(t),r=dr.applyPatch(structuredClone(e),n,!0,!1).newDocument;return Td(r)?{ok:!0,document:{metadata:r.metadata,body:r.body}}:{ok:!1,error:new Error("history_replay_invalid_document_shape")}}catch(n){return{ok:!1,error:n}}}function lr(e){let t=Ht();for(let n=0;n<e.length;n+=1){let r=e[n];if(Ut(t)!==r.before_hash)return{ok:!1,errors:[`verify_failed:before_hash_mismatch:entry_${n+1}`]};let o=Bt(t,r.patch);if(!o.ok)return{ok:!1,errors:[`verify_failed:patch_apply_failed:entry_${n+1}`]};if(t=o.document,Ut(t)!==r.after_hash)return{ok:!1,errors:[`verify_failed:after_hash_mismatch:entry_${n+1}`]}}return{ok:!0,errors:[]}}function ui(e,t){try{return{ok:!0,document:dr.applyPatch(structuredClone(e),[t],!0,!1).newDocument}}catch{return{ok:!1}}}function Ad(e,t){let n=structuredClone(e),r=0,o=0;for(let a of fi(t)){let c=ui(n,a);if(c.ok){n=c.document;continue}if(a.op==="replace"){let l=ui(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 mp(e){let t=Ht(),n=[],r=[],o=0,i=0,s=0,a=0;for(let c=0;c<e.length;c+=1){let l=e[c],m=Ut(t),u=Bt(t,l.patch),p,y,w=!1,S=0,E=0;if(u.ok)p=u.document,y=l.patch;else{let Y=Ad(t,l.patch);p=Y.document,y=dr.compare(t,p),w=!0,S=Y.convertedReplaceToAdd,E=Y.skippedOps,s+=S,a+=E,i+=1}let C=Ut(p),R=m!==l.before_hash||C!==l.after_hash;R&&(o+=1),n.push({...l,patch:y,before_hash:m,after_hash:C}),r.push({index:c+1,rehashed:R,patch_repaired:w,converted_replace_to_add:S,skipped_ops:E}),t=p}return{entries:n,finalDocument:t,entriesRehashed:o,entriesPatchRepaired:i,convertedReplaceToAdd:s,skippedOps:a,details:r}}function _p(e){return e.length===0?"":`${e.map(t=>JSON.stringify(t)).join(`
58
- `)}
59
- `}import Od from"node:crypto";import mi 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 pi(e){let t=(e??"").trim().toLowerCase();return t?t.endsWith("-")?t:`${t}-`:"pm-"}function ur(e){let t=e.trim().toLowerCase();return t.startsWith("#")&&(t=t.slice(1)),t}function fr(e,t){let n=pi(t),r=ur(e);return r.startsWith(n)?r:`${n}${r}`}function Cd(e){let t=xo(e);if(t!==void 0)return t;let n="";for(let r=0;r<e;r+=1)n+=Od.randomInt(0,36).toString(36);return n}async function Nd(e,t,n){let r=[...new Set(Object.values(n))].flatMap(o=>[mi.join(e,o,`${t}.md`),mi.join(e,o,`${t}.toon`)]);return(await Promise.all(r.map(o=>ht(o)))).some(Boolean)}var _i=4,yi=12;function Rd(e){return typeof e!="number"||!Number.isFinite(e)?_i:Math.min(yi,Math.max(_i,Math.trunc(e)))}async function Ep(e,t,n={}){let r=Rd(n.tokenLength),o=Math.min(r+6,yi),i=0;for(;r<=o;){for(let s=0;s<32;s+=1){let a=`${pi(t)}${Cd(r)}`;if(n.probeExisting===!1||!await Nd(e,a,n.typeToFolder??me))return a;i+=1}r+=1}throw new Error(`Unable to generate unique id after ${i} attempts`)}import Ee from"node:fs/promises";import gi from"node:path";import{randomUUID as Dd}from"node:crypto";import{createRequire as Md}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 Ld="metadata-query-index.sqlite",Ze="4";function Pd(e){try{return e(["node","sqlite"].join(":")).DatabaseSync??null}catch{return null}}var qt;function jd(e,t){let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>=22?Pd(t):null}function et(){return qt!==void 0||(qt=jd(process.versions.node,Md(import.meta.url))),qt}function hi(e,t){return Math.max(0,Math.floor(e===void 0?t:e))}function Me(e){return gi.join(e,"runtime",Ld)}function Fd(e){e.exec(`
60
- PRAGMA foreign_keys = ON;
61
- PRAGMA journal_mode = OFF;
62
- PRAGMA synchronous = OFF;
63
- CREATE TABLE metadata (
64
- key TEXT PRIMARY KEY,
65
- value TEXT NOT NULL
66
- ) STRICT;
67
- CREATE TABLE items (
68
- id TEXT PRIMARY KEY,
69
- relative_path TEXT NOT NULL UNIQUE,
70
- metadata_json TEXT NOT NULL,
71
- status TEXT NOT NULL,
72
- type TEXT NOT NULL,
73
- priority INTEGER NOT NULL,
74
- updated_at TEXT NOT NULL,
75
- created_at TEXT NOT NULL,
76
- parent TEXT,
77
- assignee TEXT,
78
- sprint TEXT,
79
- release TEXT
80
- ) STRICT;
81
- CREATE INDEX items_default_order
82
- ON items(priority, updated_at DESC, id);
83
- CREATE INDEX items_status_default_order
84
- ON items(status, priority, updated_at DESC, id);
85
- CREATE INDEX items_type_default_order
86
- ON items(type, priority, updated_at DESC, id);
87
- CREATE INDEX items_parent_default_order
88
- ON items(parent, priority, updated_at DESC, id);
89
- CREATE TABLE item_metadata_keys (
90
- item_id TEXT NOT NULL,
91
- key TEXT NOT NULL,
92
- PRIMARY KEY(item_id, key),
93
- FOREIGN KEY(item_id) REFERENCES items(id) ON DELETE CASCADE
94
- ) STRICT;
95
- CREATE INDEX item_metadata_keys_key_item
96
- ON item_metadata_keys(key, item_id);
97
- CREATE TABLE item_linked_files (
98
- item_id TEXT NOT NULL,
99
- path TEXT NOT NULL,
100
- scope TEXT NOT NULL,
101
- note TEXT,
102
- PRIMARY KEY(item_id, path, scope),
103
- FOREIGN KEY(item_id) REFERENCES items(id) ON DELETE CASCADE
104
- ) STRICT;
105
- CREATE INDEX item_linked_files_path_scope_item
106
- ON item_linked_files(path, scope, item_id);
107
- CREATE VIRTUAL TABLE item_search USING fts5(
108
- id UNINDEXED,
109
- title,
110
- description,
111
- tags,
112
- tokenize = 'unicode61'
113
- );
114
- `)}function Gt(e,t,n){e.prepare("INSERT INTO metadata(key, value) VALUES (?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value").run(t,n)}function bi(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 wi(e){let t=Me(e.pmRoot),n=et();if(!n){await Ee.rm(t,{force:!0});return}await Ee.mkdir(gi.dirname(t),{recursive:!0});let r=`${t}.${Dd()}.tmp`,o;try{o=new n(r),Fd(o),o.exec("BEGIN IMMEDIATE"),Gt(o,"version",Ze),Gt(o,"context_fingerprint",e.contextFingerprint),Gt(o,"source_cursor",e.sourceCursor);for(let i of e.rows)bi(o,i);o.exec("COMMIT"),o.close(),o=void 0,await Ee.rm(t,{force:!0}),await Ee.rename(r,t)}catch(i){throw o?.close(),await Promise.allSettled([Ee.rm(r,{force:!0})]),i}}function Xt(e){return Object.fromEntries(e.prepare("SELECT key, value FROM metadata").all().map(t=>[String(t.key),String(t.value)]))}async function Ei(e){let t=Me(e.pmRoot),n;try{await Ee.access(t);let r=et();if(!r)return!1;n=new r(t),n.exec("PRAGMA foreign_keys = ON");let o=Xt(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&&bi(n,e.row),Gt(n,"source_cursor",e.sourceCursor),n.exec("COMMIT"),n.close(),!0}catch{try{n?.exec("ROLLBACK")}catch{}return n?.close(),!1}}function Vt(e,t,n,r,o){!r||r.length===0||(e.push(`${n} ${o} (${r.map(()=>"?").join(", ")})`),t.push(...r))}function $d(e){let t=[],n=[];Vt(t,n,"status",e.statuses,"IN"),Vt(t,n,"status",e.excludeStatuses,"NOT IN"),Vt(t,n,"type",e.types,"IN"),Vt(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 Tp(e){let t=et();if(!t)return null;let n=e.query??{},{where:r,parameters:o}=$d(n),i;try{i=new t(Me(e.pmRoot),{readOnly:!0});let s=Xt(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 u=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(p=>{let y=JSON.parse(String(p.metadata_json));if(!y.id)throw new TypeError("Indexed metadata row has no id");return y});return i.close(),{source_cursor:s.source_cursor,total:Number(a.count),items:u}}catch{return i?.close(),null}}async function Ap(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=Xt(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=hi(e.limit,50),m=hi(e.offset,0),u=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),p=[];if(u.length>0){let y=u.map(E=>String(E.id)),w=n.prepare(`SELECT item_id, path, scope, note
140
- FROM item_linked_files
141
- WHERE item_id IN (${y.map(()=>"?").join(", ")})
142
- AND ${a}
143
- ORDER BY path ASC, scope ASC`).all(...y,...s),S=new Map(y.map(E=>[E,[]]));for(let E of w){let C=String(E.item_id),R=S.get(C);R.push({path:String(E.path),scope:String(E.scope),...E.note===null?{}:{note:String(E.note)}}),S.set(C,R)}for(let E of u){let C=JSON.parse(String(E.metadata_json));p.push({item:C,files:S.get(String(E.id))})}}return n.close(),{source_cursor:r.source_cursor,total:Number(c.count),matches:p}}catch{return n?.close(),null}}async function Op(e){let t=et();if(!t)return null;let n;try{n=new t(Me(e.pmRoot),{readOnly:!0});let r=Xt(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 Kt(e){await Ee.rm(Me(e),{force:!0})}import j from"node:fs/promises";import N from"node:path";import{createHash as al,randomUUID as Pi}from"node:crypto";import ne from"node:fs/promises";import mr from"node:path";import{randomUUID as zd}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 Ud(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 Ii(e){try{let t=await ne.readFile(e,"utf8");return await K({path:e,scope:"project"}),Ud(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 xi(e,t){await q({path:e,scope:"project",op:t})}function Hd(e,t,n){return{id:e,pid:process.pid,owner:t,created_at:be(),ttl_seconds:n}}async function Wd(e,t,n,r){await ne.mkdir(mr.dirname(e),{recursive:!0});let o=await ne.open(e,"wx");try{await o.writeFile(`${JSON.stringify(Hd(t,n,r),null,2)}
149
- `,"utf8")}finally{await o.close()}await xi(e,"lock:create")}async function Ti(e,t){try{return await ne.unlink(e),await xi(e,t),!0}catch{return!1}}function Ai(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 Bd(e){return e?.owner?` (owner ${e.owner})`:""}var qd=25,Vd=200,Gd=250,Xd=3,Kd=".stale-cleanup",Oi="owner.json",Jd=1e4,Yd=5*6e4;function ki(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 Qd(e){let t=process.env.PM_LOCK_WAIT_MS,n=ki(t);if(n!==void 0)return n;let r=ki(e);return r!==void 0?r:0}function Zd(e){let t=Math.max(1,Math.round(e*(.5+Math.random())));return new Promise(n=>setTimeout(n,t))}function Ci(e,t,n){let r=n>0?` after waiting ${n}ms`:"";return new T(`Item ${e} is locked${Bd(t)}${r}`,I.CONFLICT,{code:"lock_conflict",recovery:{retry_after_ms:Gd}})}function el(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 tl(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 nl(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 Ni(e){try{return nl(await ne.readFile(mr.join(e,Oi),"utf8"))}catch{return null}}function rl(e){try{return process.kill(e,0),!0}catch(t){return!tt(t,"ESRCH")}}async function _r(e){try{return await ne.rm(e,{recursive:!0,force:!0}),!0}catch{return!1}}async function vi(e,t){let n=await Ni(e);n===null||n.token!==t||await _r(e)}async function Si(e){try{await ne.mkdir(e)}catch(n){return tt(n,"EEXIST"),null}let t={pid:process.pid,token:zd()};try{await ne.writeFile(mr.join(e,Oi),`${JSON.stringify(t)}
150
- `,"utf8")}catch{return await _r(e),null}return t}async function ol(e){let t;try{let r=await ne.stat(e);if(t=Date.now()-r.mtimeMs,t<=Jd)return!1}catch(r){return tt(r,"ENOENT")}let n=await Ni(e);return n!==null&&rl(n.pid)&&t<=Yd?!1:_r(e)}async function il(e,t){let n=`${e}${Kd}`,r=await Si(n);if(r!==null)return async()=>vi(n,r.token);if(!await ol(n))return null;let o=await Si(n);return o===null?null:async()=>vi(n,o.token)}async function sl(e){let t=await il(e.lockPath,e.id);if(t===null)return{lockInfo:e.fallbackLockInfo,shouldRetryCreate:!1,staleRemovalCounted:!1};try{let n=await Ii(e.lockPath);if(n.info===null&&n.warnings.length===0)return{lockInfo:n,shouldRetryCreate:!0,staleRemovalCounted:!1};if(!Ai(n.info,e.ttlSeconds))return{lockInfo:n,shouldRetryCreate:!1,staleRemovalCounted:!1};if(tl(e.id,n,e.force,e.forceRequiredForStaleLock),e.staleRemovals>=Xd)throw Ci(e.id,n.info,Date.now()-e.startedAtMs);return{lockInfo:n,shouldRetryCreate:await Ti(e.lockPath,"lock:stale_remove"),staleRemovalCounted:!0}}finally{await t()}}async function re(e,t,n,r,o=!1,i=!0,s){let a=await ee("lock_acquire",{pm_root:e,id:t,ttl_seconds:n,owner:r,force:o,force_required_for_stale_lock:i});if(a.handled){let y=el(a.result);if(y)return async()=>{await Promise.resolve(y()),await ee("lock_release",{pm_root:e,id:t,owner:r})}}let c=qr(e,t),l=Qd(s),m=Date.now(),u=0,p=qd;for(;;)try{return await Wd(c,t,r,n),async()=>{await Ti(c,"lock:release"),await ee("lock_release",{pm_root:e,id:t,owner:r})}}catch(y){if(!tt(y,"EEXIST"))throw new T(`Failed to acquire lock for ${t}: ${Gr(y)}`,I.GENERIC_FAILURE);let w=await Ii(c);if(Ai(w.info,n)){let E=await sl({lockPath:c,id:t,ttlSeconds:n,force:o,forceRequiredForStaleLock:i,staleRemovals:u,waitBudgetMs:l,startedAtMs:m,fallbackLockInfo:w});if(w=E.lockInfo,E.staleRemovalCounted&&(u+=1),E.shouldRetryCreate)continue}let S=Date.now()-m;if(l===0||S>=l)throw Ci(t,w.info,l===0?0:S);await Zd(Math.min(p,l-S)),p=Math.min(p*2,Vd)}}(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 J=8,ji=500,cl="metadata-derived-index",dl="metadata-cache.json",ll="metadata-cache-bodies.json",ul="metadata-cache-collections.json",fl="metadata-cache-delta.json",ml="metadata-cache-manifest.json",Ri=4,_l=["comments","notes","learnings","files","tests","test_runs","docs"];function Fi(){return yt(Ke())}function Yt(e){let t={...e},n={};for(let r of _l)r in t&&(n[r]=t[r],delete t[r]);return{light:t,heavy:n}}function $i(e,t){return!t||Object.keys(t).length===0?e:{...e,...t}}function zi(e,t,n,r){let o=al("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 Qt(e){return N.join(e,"runtime",dl)}function Zt(e){return N.join(e,"runtime",ll)}function en(e){return N.join(e,"runtime",ul)}function yr(e){return N.join(e,"runtime",fl)}function hr(e){return N.join(e,"runtime",ml)}function tn(e,t){let n=N.extname(e);return`${e.slice(0,-n.length)}.${t}${n}`}var pl=24,W=new Map,nn=new WeakMap;function gr(e){return nn.get(e)??e.source_cursor}function yl(e,t){let n=gr(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){nn.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 hl(e,t){if(!e)return;let n=gr(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){nn.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 gl(e,t){if(!e)return;let n=gr(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){nn.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 bl(e,t,n,r){!e||!r||e.context_fingerprint!==r.context_fingerprint||(yl(e,r),hl(t,r),gl(n,r))}function pr(e,t){W.size>=pl&&!W.has(e)&&bt(W),W.set(e,t)}async function ce(e,t){let n;try{n=await j.stat(e)}catch{return W.delete(e),null}let r=W.get(e);if(r&&nt(r.signature,n.mtimeMs,n.ctimeMs,n.size))return W.delete(e),W.set(e,r),r.envelope;let o;try{o=t(await j.readFile(e,"utf8"))}catch{o=null}return pr(e,{signature:{mtime_ms:n.mtimeMs,ctime_ms:n.ctimeMs,size:n.size},envelope:o}),o}async function wl(e,t,n){let r=a=>{let c=JSON.parse(a);return c.version!==J||typeof c.source_cursor!="string"||typeof c.entries!="object"||c.entries===null?null:c},o=Qt(e),i=await ce(o,r);if(!t||i===null||i.context_fingerprint===t)return i;let s=await ce(tn(o,t),r);return s===null&&it(n,`metadata_cache_context_changed:${i.context_fingerprint}->${t}`),s}async function El(e,t){let n=i=>{let s=JSON.parse(i);return s.version!==J||typeof s.source_cursor!="string"||typeof s.bodies!="object"||s.bodies===null?null:s},r=Zt(e),o=await ce(r,n);return t&&o?.context_fingerprint!==t?await ce(tn(r,t),n):o}async function kl(e,t){let n=i=>{let s=JSON.parse(i);return s.version!==J||typeof s.source_cursor!="string"||typeof s.collections!="object"||s.collections===null?null:s},r=en(e),o=await ce(r,n);return t&&o?.context_fingerprint!==t?await ce(tn(r,t),n):o}async function br(e){let t=yr(e),n=await ce(t,r=>{let o=JSON.parse(r);return o.version!==J||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 wr(e){let t=hr(e),n=await ce(t,r=>{let o=JSON.parse(r);return o.version!==J||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(N.dirname(e),{recursive:!0}),await z(e,JSON.stringify(t));try{let r=await j.stat(e);pr(e,{signature:{mtime_ms:r.mtimeMs,ctime_ms:r.ctimeMs,size:r.size},envelope:t})}catch{W.delete(e)}let n=N.dirname(N.dirname(e));if(e===Qt(n)||e===Zt(n)||e===en(n)){let r=tn(e,t.context_fingerprint);await z(r,JSON.stringify(t));try{let c=await j.stat(r);pr(r,{signature:{mtime_ms:c.mtimeMs,ctime_ms:c.ctimeMs,size:c.size},envelope:t})}catch{W.delete(r)}let o=N.dirname(e),i=N.extname(e),s=N.basename(e,i),a=(await j.readdir(o,{withFileTypes:!0}).catch(()=>[])).filter(c=>c.isFile()&&c.name!==N.basename(e)&&c.name.startsWith(`${s}.`)&&c.name.endsWith(i)).map(c=>N.join(o,c.name));if(a.length>Ri){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,u)=>m.mtime-u.mtime).slice(0,Math.max(0,c.length-Ri)))await j.rm(l.path,{force:!0}),W.delete(l.path)}}}function vl(e,t,n){return n?t===n&&e!==n:t==="toon"&&e!=="toon"}function Ui(e,t,n){return e===void 0||vl(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 Sl(e,t,n){let r=N.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(N.join(e,t));return[t,{exists:!0,mtime_ms:n.mtimeMs,ctime_ms:n.ctimeMs,size:n.size}]}catch{return[t,{exists:!1,mtime_ms:0,ctime_ms:0,size:0}]}}async function Jt(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 xl(e){return gt.some(t=>e.toLowerCase().endsWith(t))}function Tl(e,t,n,r,o,i){r||(e.metadata=!0),t&&!o&&(e.body=!0),n&&!i&&(e.collections=!0)}async function Al(e,t,n){if(n)for(let r of await K({path:e,scope:"project"}))it(t,r)}function Di(e,t,n,r){if(e)return t&&n?n.collections:r}async function Ol(e,t,n){let r=await j.stat(e),o=r.mtimeMs,i=r.ctimeMs,{size:s}=r,a=bn(e);await Al(e,n.warnings,n.dispatchReadHooks);let c=n.previousEntries[t],l=c!==void 0&&nt(c,o,i,s),m=n.previousBodies[t],u=m!==void 0&&nt(m,o,i,s),p=n.previousCollections[t],y=p!==void 0&&nt(p,o,i,s);if(!(!l||n.includeBody&&!u||n.includeCollections&&!y))return{mtimeMs:o,ctimeMs:i,size:s,itemFormat:a,lightMetadata:c.metadata,heavyMetadata:Di(n.includeCollections,y,p,void 0),bodyLength:c.body_length,body:n.includeBody?m.body:void 0};let S=await j.readFile(e,"utf8"),E=Rt(S,{format:a,schema:n.schema,extensionFieldNames:n.extensionFieldNames,onWarning:R=>it(n.warnings,R)}),C=Yt(E.metadata);return Tl(n.state.misses,n.includeBody,n.includeCollections,l,u,y),{mtimeMs:o,ctimeMs:i,size:s,itemFormat:a,lightMetadata:l?c.metadata:C.light,heavyMetadata:Di(n.includeCollections,y,p,C.heavy),bodyLength:l?c.body_length:E.body.length,body:n.includeBody?E.body:void 0}}function Cl(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?$i(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};Ui(i?.itemFormat,r.itemFormat,n.preferredFormat)&&n.state.documentsById.set(o.id,{candidate:s,itemFormat:r.itemFormat})}async function Nl(e,t,n,r){try{let o=await Ol(t,n,r);Cl(t,n,r,o)}catch{it(r.warnings,`item_list_item_read_failed:${e}/${N.basename(t)}`)}}function Rl(e,t){return e&&e.context_fingerprint===t?e.entries:{}}function Dl(e,t){return e&&e.context_fingerprint===t?e.bodies:{}}function Ml(e,t){return e&&e.context_fingerprint===t?e.collections:{}}function Ll(){return{newEntries:{},newBodies:{},newCollections:{},documentsById:new Map,misses:{metadata:!1,body:!1,collections:!1}}}function Pl(e,t){let n=[];for(let{folder:r,dirPath:o,files:i}of e)for(let s of i){if(!xl(s))continue;let a=N.join(o,s),c=N.relative(t.pmRoot,a);n.push(Nl(r,a,c,t))}return n}async function jl(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(Qt(e.pmRoot),{version:J,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,directory_signatures:e.directorySignatures,entries:e.state.newEntries}),await rt(hr(e.pmRoot),{version:J,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,entry_count:Object.keys(e.state.newEntries).length,directory_signatures:e.directorySignatures});let n=[...e.state.documentsById.values()].map(({candidate:r})=>({relativePath:N.relative(e.pmRoot,r.item_path),metadata:Yt(r.metadata).light,linkedFiles:r.metadata.files??[]}));n.length>=e.minimumIndexedItems?await wi({pmRoot:e.pmRoot,contextFingerprint:e.contextFingerprint,sourceCursor:e.sourceCursor,rows:n}):await Kt(e.pmRoot)}catch{}}async function Fl(e){!(e.state.misses.body||Object.keys(e.previousBodies).length!==Object.keys(e.state.newBodies).length)&&e.existingBodyCache!==null&&e.existingBodyCache.context_fingerprint===e.contextFingerprint||await rt(Zt(e.pmRoot),{version:J,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,bodies:e.state.newBodies}).catch(()=>{})}async function $l(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(en(e.pmRoot),{version:J,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,collections:e.state.newCollections}).catch(()=>{})}async function Er(e,t,n={}){let r=await wr(e);return n.required!==!0&&(r===null||r.entry_count<ji)?async()=>{}:re(e,cl,30,t,!1,!1,3e3)}async function Qp(e,t){let n=await wr(e);if(n===null)return null;let r=await br(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 Jt(e,t))?null:{source_cursor:o,entry_count:n.entry_count}}function Mi(e,t){let n=N.relative(e,t);return n===""||n===".."||n.startsWith(`..${N.sep}`)||N.isAbsolute(n)?null:n}async function Le(e){await Promise.all([Qt(e),Zt(e),en(e),yr(e),hr(e)].map(async t=>{await j.rm(t,{force:!0}),W.delete(t)})),await Kt(e)}async function zl(e){if(e.mutation.document===null)return{entry:null,body:null,collections:null};let t=await j.stat(e.mutation.itemPath),n=Yt(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 Ul(e,t,n){return e?.context_fingerprint===t&&e.base_source_cursor===n?structuredClone(e.changes):{}}async function kr(e){let t=Mi(e.pmRoot,e.itemPath),n=e.previousItemPath?Mi(e.pmRoot,e.previousItemPath):void 0;if(t===null||n===null)return await Le(e.pmRoot),["metadata_derived_index_path_invalidated"];try{let r=zi(e.preferredFormat,e.typeToFolder,e.schema,Fi()),o=await wr(e.pmRoot);if(o===null||o.context_fingerprint!==r)return[];let i=o.source_cursor,s=await br(e.pmRoot);if(s.invalid)return await Le(e.pmRoot),["metadata_derived_index_refresh_failed"];let a=Ul(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 zl({mutation:e});let l=Pi();return await rt(yr(e.pmRoot),{version:J,context_fingerprint:r,base_source_cursor:i,source_cursor:l,directory_signatures:await Jt(e.pmRoot,[...new Set(Object.values(e.typeToFolder))]),changes:a}),await Ei({pmRoot:e.pmRoot,contextFingerprint:r,expectedSourceCursor:c,sourceCursor:l,row:e.document===null?null:{relativePath:t,metadata:Yt(e.document.metadata).light,linkedFiles:e.document.metadata.files},deletedRelativePaths:[...n===void 0?[]:[n],...e.document===null?[t]:[]]})||await Kt(e.pmRoot),[]}catch{return await Le(e.pmRoot).catch(()=>{}),["metadata_derived_index_refresh_failed"]}}function Hl(e){return[...e.documentsById.values()].sort((t,n)=>t.candidate.metadata.id.localeCompare(n.candidate.metadata.id)).map(t=>t.candidate)}function Li(e,t,n){return e?.context_fingerprint===t&&e.source_cursor===n}function Wl(e,t,n,r,o){return e.every(i=>(!t||r[i]!==void 0)&&(!n||o[i]!==void 0))}function Bl(e){let t=new Map;for(let[n,r]of Object.entries(e.previousEntries)){let o=bn(n);if(!o)continue;let i=e.includeCollections?$i(r.metadata,e.previousCollections[n]?.collections):r.metadata,s=t.get(i.id);Ui(s?.itemFormat,o,e.preferredFormat)&&t.set(i.id,{itemFormat:o,candidate:{metadata:i,body:e.includeBody?e.previousBodies[n]?.body:void 0,item_format:o,item_path:N.join(e.pmRoot,n)}})}return[...t.values()].sort((n,r)=>n.candidate.metadata.id.localeCompare(r.candidate.metadata.id)).map(n=>n.candidate)}function ql(e){return e.forceSourceScan||Qn()||e.existingCache?.context_fingerprint!==e.contextFingerprint||e.entryKeys.length<e.minimumIndexedItems||!ot(e.existingCache?.directory_signatures,e.directorySignatures)?!1:[!e.includeBody||Li(e.existingBodyCache,e.contextFingerprint,e.existingCache.source_cursor),!e.includeCollections||Li(e.existingCollectionsCache,e.contextFingerprint,e.existingCache.source_cursor)].every(Boolean)&&Wl(e.entryKeys,e.includeBody,e.includeCollections,e.previousBodies,e.previousCollections)}async function rn(e,t,n,r,o,i={}){let s=i.includeBody!==!1,a=i.includeCollections!==!1,c=Fi(),l=zi(t,n,o,c),m=await br(e);m.invalid&&await Le(e);let u=await wl(e,l,i.cacheDiagnostics),p=s?await El(e,l):null,y=a?await kl(e,l):null;bl(u,p,y,m.envelope);let w=Rl(u,l),S=Dl(p,l),E=Ml(y,l),C=[...new Set(Object.values(n))],R=await Jt(e,C),Y=Object.keys(w),$=Math.max(1,Math.floor(i.derivedIndexMinimumItems??ji));if(ql({forceSourceScan:i.forceSourceScan===!0,contextFingerprint:l,existingCache:u,existingBodyCache:p,existingCollectionsCache:y,directorySignatures:R,entryKeys:Y,minimumIndexedItems:$,includeBody:s,includeCollections:a,previousBodies:S,previousCollections:E}))return Bl({pmRoot:e,preferredFormat:t,includeBody:s,includeCollections:a,previousEntries:w,previousBodies:S,previousCollections:E});let mn=await Promise.all(C.map(Ns=>Sl(e,Ns,r))),ct=Qn(),Q=Ll(),_n={pmRoot:e,preferredFormat:t,warnings:r,schema:o,extensionFieldNames:c,includeBody:s,includeCollections:a,dispatchReadHooks:ct,previousEntries:w,previousBodies:S,previousCollections:E,state:Q};await Promise.all(Pl(mn,_n));let dt=await Jt(e,C),Mr=ot(R,dt)?dt:{},pn=Q.misses.metadata||Object.keys(w).length!==Object.keys(Q.newEntries).length||!ot(u?.directory_signatures,Mr)||u===null?Pi():u.source_cursor;return await jl({pmRoot:e,contextFingerprint:l,sourceCursor:pn,existingCache:u,previousEntries:w,directorySignatures:Mr,state:Q,minimumIndexedItems:$}),s&&await Fl({pmRoot:e,contextFingerprint:l,sourceCursor:pn,existingBodyCache:p,previousBodies:S,state:Q}),a&&await $l({pmRoot:e,contextFingerprint:l,sourceCursor:pn,existingCollectionsCache:y,previousCollections:E,state:Q}),Hl(Q)}async function Hi(e,t,n,r,o){return(await rn(e,t,n,r,o,{includeBody:!1})).map(s=>({metadata:s.metadata,body:s.body??""}))}async function Wi(e,t,n,r,o){return(await rn(e,t,n,r,o,{includeBody:!1,includeCollections:!1})).map(s=>({metadata:s.metadata,body:s.body??""}))}import Vl from"node:fs/promises";import Bi 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 on="_workspace";function qi(e){return Bi.join(e,"history",`${on}.jsonl`)}function Gl(e,t){return{metadata:{id:on,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 Vi(e){let t=Ht();for(let n of e)t=Bt(t,n.patch).document;return Wt(t)}async function Gi(e){let t=qi(e.pmRoot),n=await Je(t,on),r=lr(n);if(!r.ok)throw new TypeError(`Workspace history verification failed: ${r.errors.join(", ")}`);let o=e.idempotencyKey===void 0?void 0:n.find(u=>u.op===`${e.op}:${e.idempotencyKey}`);if(o)return{entry:o,historyPath:t};let i=new Date().toISOString(),s=n.length===0?Fe:Vi(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=Gl({...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 ly(e){let t=await re(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await Gi(e)}finally{await t()}}async function uy(e){let t=await re(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{let n=qi(e.pmRoot),r=await Je(n,on),o=lr(r);if(!o.ok)throw new TypeError(`Workspace history verification failed: ${o.errors.join(", ")}`);let i=r.length===0?Fe:Vi(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 Xi(e,t){if(t===e.raw)return!1;let n=t===null?null:JSON.parse(t),r=JSON.parse(e.raw);await z(e.filePath,e.raw);try{(t!==null||e.recordCreation!==!1)&&await Gi({pmRoot:e.pmRoot,documentPath:Bi.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 Vl.rm(e.filePath,{force:!0}):await z(e.filePath,t),o}return!0}async function fy(e){let t=await re(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 Xi({...e,raw:r.raw},n),result:r.result}}finally{await t()}}async function Ki(e){let t=await re(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await Xi(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},f=e=>typeof e=="string"?{ok:!0,value:e}:P,x=e=>typeof e=="boolean"?{ok:!0,value:e}:P;function O(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 A(...e){return t=>typeof t=="string"&&e.includes(t)?{ok:!0,value:t}:P}function _(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 Sr(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 sn(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 v(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 Xl=v({key:f,values:_(f),required:d(x),aliases:d(_(f)),description:d(f)}),Kl=v({command:A("create","update"),option:f,required:d(x),visible:d(x),enabled:d(x)}),Jl=v({name:f,description:d(f),default_status:d(f),folder:d(f),aliases:d(_(f)),required_create_fields:d(_(f)),required_create_repeatables:d(_(f)),options:d(_(Xl)),command_option_policies:d(_(Kl))}),Yl=v({id:f,aliases:d(_(f)),roles:d(_(A(...Lr))),description:d(f),order:d(O())}),Ql=v({key:f,metadata_key:d(f),front_matter_key:d(f),cli_flag:d(f),cli_aliases:d(_(f)),description:d(f),type:d(A(...Pr)),commands:d(_(A(...jr))),repeatable:d(x),required:d(x),required_on_create:d(x),required_types:d(_(f)),allow_unset:d(x)}),Zl=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]}},eu=v({type:f,allowed_transitions:_(Zl)}),tu=d(v({version:d(O({int:!0})),files:d(v({types:d(f),statuses:d(f),fields:d(f),workflows:d(f)})),statuses:d(_(Yl)),fields:d(_(Ql)),workflow:d(v({draft_status:d(f),open_status:d(f),in_progress_status:d(f),blocked_status:d(f),close_status:d(f),canceled_status:d(f)})),type_workflows:d(_(eu)),unknown_field_policy:d(A(...Fr))})),nu=d(v({preset:d(A(...$r)),ownership_enforcement:d(A("none","warn","strict")),create_mode_default:d(A("progressive","strict")),close_validation_default:d(A("off","warn","strict")),require_close_reason:d(x),parent_reference:d(A("warn","strict_error")),metadata_profile:d(A("core","strict","custom")),force_required_for_stale_lock:d(x),create_default_type:d(f),workflow_enforcement:d(A("off","warn","strict")),duplicate_detection_mode:d(A("off","advisory","strict")),duplicate_detection_threshold:d(O({min:0,max:1})),duplicate_detection_limit:d(O({int:!0,min:0,max:20}))})),ru=v({name:f,disabled:d(x),require_trusted:d(x),require_provenance:d(x),sandbox_profile:d(A("none","restricted","strict")),allowed_capabilities:d(_(f)),blocked_capabilities:d(_(f)),allowed_surfaces:d(_(f)),blocked_surfaces:d(_(f)),allowed_commands:d(_(f)),blocked_commands:d(_(f)),allowed_actions:d(_(f)),blocked_actions:d(_(f)),allowed_services:d(_(f)),blocked_services:d(_(f))}),vr=A("block","warn"),ou=e=>typeof e=="string"?vr(e):v({global:d(vr),project:d(vr)})(e),iu=d(v({mode:d(A("off","warn","enforce")),trust_mode:d(A("off","warn","enforce")),pm_max_version_exceeded_mode:d(ou),require_provenance:d(x),trusted_extensions:d(_(f)),default_sandbox_profile:d(A("none","restricted","strict")),allowed_extensions:d(_(f)),blocked_extensions:d(_(f)),allowed_capabilities:d(_(f)),blocked_capabilities:d(_(f)),allowed_surfaces:d(_(f)),blocked_surfaces:d(_(f)),allowed_commands:d(_(f)),blocked_commands:d(_(f)),allowed_actions:d(_(f)),blocked_actions:d(_(f)),allowed_services:d(_(f)),blocked_services:d(_(f)),extension_overrides:d(_(ru))})),ke=Sr(128),su=v({harness:Sr(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u),environment_keys:d(_(ke,64)),model_environment_keys:d(_(ke,64)),session_environment_keys:d(_(ke,64)),provenance_environment_keys:d(sn(_(ke,64))),provenance_resolvers:d(sn(A("ai_agent_version","claude_session_file"))),provenance_unavailable_dimensions:d(_(ke,64)),argv_markers:d(_(ke,64)),client_names:d(_(ke,64))}),au=v({version:O({int:!0}),id_prefix:f,ids:d(v({token_length:d(O({int:!0,min:4,max:12}))})),author_default:f,agent_identity:d(v({probes_enabled:d(x),identity_vocabulary:d(v({version:O({int:!0,positive:!0}),aliases:sn(Sr(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u))})),harness_signals:_(su)})),mutation_guard:d(v({require_attributed_author:d(x),secret_guard:d(A("off","advise","block")),stale_in_progress_hours:d(O({int:!0,positive:!0}))})),item_format:d(A("toon","json_markdown")),locks:v({ttl_seconds:O({int:!0}),wait_ms:d(O({int:!0,min:0}))}),checkpoints:d(v({retention_days:d(O({int:!0,positive:!0}))})),output:v({default_format:A("toon","json")}),history:d(v({missing_stream:A("auto_create","strict_error"),compact_policy:d(v({enabled:d(x),max_entries:d(O({int:!0,positive:!0})),trigger:d(A("health_warn","auto"))}))})),validation:d(v({sprint_release_format:A("warn","strict_error"),parent_reference:d(A("warn","strict_error")),metadata_profile:d(A("core","strict","custom")),metadata_required_fields:d(_(f)),lifecycle_stale_blocker_reason_patterns:d(_(f)),lifecycle_closure_like_blocked_reason_patterns:d(_(f)),lifecycle_closure_like_resolution_patterns:d(_(f)),lifecycle_closure_like_actual_result_patterns:d(_(f)),estimate_defaults_by_type:d(sn(O({int:!0,positive:!0})))})),governance:nu,workflow:d(v({definition_of_done:_(f)})),testing:d(v({record_results_to_items:x})),telemetry:d(v({enabled:x,first_run_prompt_completed:d(x),capture_level:d(A("minimal","redacted","max")),endpoint:d(f),installation_id:d(f),retention_days:d(O({int:!0,positive:!0}))})),agent_guidance:d(v({prompt_completed:d(x),declined:d(x),declined_at:d(f),template_version:d(O({int:!0,positive:!0})),last_checked_files:d(_(f))})),item_types:d(v({definitions:_(Jl)})),schema:tu,context:d(v({default_depth:d(A("brief","standard","deep")),activity_limit:d(O({int:!0,positive:!0})),stale_threshold_days:d(O({int:!0,positive:!0})),sections:d(v({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:v({enabled:_(f),disabled:_(f),policy:iu}),search:v({score_threshold:O(),hybrid_semantic_weight:d(O()),max_results:O({int:!0}),embedding_model:f,embedding_corpus_max_characters:d(O()),embedding_batch_size:O({int:!0}),embedding_timeout_ms:d(O({int:!0})),scanner_max_batch_retries:O({int:!0}),provider:d(f),corpus_fields:d(_(f)),mutation_refresh_policy:d(A("cache_only","semantic_configured","semantic_auto")),query_expansion:d(v({enabled:d(x),provider:d(f)})),rerank:d(v({enabled:d(x),model:d(f),top_k:d(O({int:!0,positive:!0}))})),bm25:d(v({k1:d(O()),b:d(O())}))}),providers:v({openai:v({base_url:f,api_key:f,model:f}),ollama:v({base_url:f,model:f})}),vector_store:v({adapter:d(f),collection_name:d(f),qdrant:v({url:f,api_key:f}),lancedb:v({path:f})})});function Ji(e){let t=au(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 cu={Epic:2880,Feature:480,Story:480,Milestone:2880,Task:120,Issue:60,Bug:60,Chore:30,Decision:15,Plan:120},Yi=120;function Ir(e){return typeof e=="number"&&Number.isFinite(e)&&e>0}function Zi(e){let t=new Map;for(let[n,r]of Object.entries(e))t.set(n.toLowerCase(),r);return t}var du=Zi(cu),Qi=new WeakMap;function lu(e){let t=Qi.get(e);if(t)return t;let n=Zi(e);return Qi.set(e,n),n}function yy(e,t){let n=(e??"").trim().toLowerCase();if(n.length===0)return Yi;if(t){let o=lu(t).get(n);if(Ir(o))return Math.floor(o)}let r=du.get(n);return Ir(r)?Math.floor(r):Yi}function xr(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||!Ir(r)||(t[o]=Math.floor(r))}return t}import{stat as uu}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 an=new Map;function es(e){return[...new Set(e.map(t=>t.trim()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}async function fu(e){try{let t=await uu(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=es(e),n=await Promise.all(t.map(r=>fu(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 ts(e){return an.get(e)}function cn(e,t){let n=es(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));an.set(e,{tracked_paths:n,signatures:r,value:t.value})}function le(e){if(e){an.delete(e);return}an.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 mu="settings:write",ss=Symbol("pm.settings.persist_source"),_u=128,pu=new Set(["off","advisory","strict"]);function ns(e){return structuredClone(Ur[e])}function yu(e){return e==="minimal"||e==="default"||e==="strict"||e==="custom"?e:b.governance.preset}function rs(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 hu(e){return e.preset==="custom"?rs({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):rs({preset:e.preset},e)}function gu(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),pu.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 ln(e){let t=e.governance??{},n=yu(t.preset),r=gu(t);if(n==="custom"){let s=ns("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=ns(n),i=r.require_close_reason??o.require_close_reason;return{preset:n,...o,...r,require_close_reason:i}}function as(){return structuredClone(b)}function cs(e){return e==="cache_only"||e==="semantic_configured"||e==="semantic_auto"?e:b.search.mutation_refresh_policy}function ds(e){return typeof e=="boolean"?e:b.search.query_expansion.enabled}function ls(e){return typeof e!="string"?b.search.query_expansion.provider:e.trim()}function us(e){return typeof e=="boolean"?e:b.search.rerank.enabled}function fs(e){return typeof e!="string"?b.search.rerank.model:e.trim()}function ms(e){return typeof e=="number"&&Number.isFinite(e)&&Number.isInteger(e)&&e>0?e:b.search.rerank.top_k}function _s(e){if(typeof e!="string")return b.vector_store.collection_name;let n=e.trim().replaceAll(/[^a-zA-Z0-9_-]/g,"_").slice(0,_u);return n.length>0?n:b.vector_store.collection_name}function Tr(e){return{present:Array.isArray(e),values:Array.isArray(e)?structuredClone(e):[]}}function bu(e,t){let n=e.schema,r=Tr(n?.statuses),o=Tr(n?.fields),i=Tr(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 ps(e,t){Object.defineProperty(e,ss,{value:t,writable:!0,configurable:!0,enumerable:!1})}function ys(e){let t=e[ss];if(!(!t||typeof t!="object"))return t}function dn(e){let t=structuredClone(e.settings),n=ys(e.settings);return n&&ps(t,n),{settings:t,metadata:{has_explicit_item_format:e.metadata.has_explicit_item_format},warnings:[...e.warnings]}}function wu(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 Eu(e,t,n){let r=await de(t);cn(e,{tracked_paths:t,signatures:r,value:dn(n)})}async function ku(e,t,n){try{await Eu(e,t,n)}catch{le(e)}}function os(e,t){return e.find(n=>n.path===t)}function vu(e,t,n){for(let r of n){let o=os(e,r),i=os(t,r);if(!o||!i||!st([o],[i]))return!1}return!0}async function Ar(e,t,n,r,o){try{let i=await de(t);if(!vu(r,i,o)){le(e);return}cn(e,{tracked_paths:t,signatures:i,value:dn(n)})}catch{le(e)}}function Su(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=ve(r,t.runtime_item_type_definitions),s=ve(n.statuses,t.runtime_schema_statuses),a=ve(n.fields,t.runtime_schema_fields),c=ve(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:as(),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 Cr(e){return[...new Set((e??[]).map(t=>t.trim()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function hs(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:Cr(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 xu(e){return e==="off"||e==="warn"||e==="enforce"?e:b.extensions.policy.mode}function Tu(e){return e==="off"||e==="warn"||e==="enforce"?e:b.extensions.policy.trust_mode}function gs(e){return e==="none"||e==="restricted"||e==="strict"?e:b.extensions.policy.default_sandbox_profile}function Au(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=gs(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),u=V(e.allowed_services),p=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),u.length>0&&(n.allowed_services=u),p.length>0&&(n.blocked_services=p),n}function Ou(e){let t=new Map;for(let n of e??[]){let r=Au(n);r&&t.set(r.name,r)}return[...t.values()].sort((n,r)=>n.name.localeCompare(r.name))}function Or(e){return e==="block"||e==="warn"?e:void 0}function Cu(e){if(typeof e=="string")return Or(e);if(typeof e=="object"&&e!==null&&!Array.isArray(e)){let t=Or(e.global),n=Or(e.project);return t===void 0&&n===void 0?void 0:{...t!==void 0?{global:t}:{},...n!==void 0?{project:n}:{}}}}function U(e,t){return V(e?.[t]??b.extensions.policy[t])}function bs(e){let t=Cu(e?.pm_max_version_exceeded_mode);return{mode:xu(e?.mode),trust_mode:Tu(e?.trust_mode),...t!==void 0?{pm_max_version_exceeded_mode:t}:{},require_provenance:e?.require_provenance===!0,trusted_extensions:U(e,"trusted_extensions"),default_sandbox_profile:gs(e?.default_sandbox_profile),allowed_extensions:U(e,"allowed_extensions"),blocked_extensions:U(e,"blocked_extensions"),allowed_capabilities:U(e,"allowed_capabilities"),blocked_capabilities:U(e,"blocked_capabilities"),allowed_surfaces:U(e,"allowed_surfaces"),blocked_surfaces:U(e,"blocked_surfaces"),allowed_commands:U(e,"allowed_commands"),blocked_commands:U(e,"blocked_commands"),allowed_actions:U(e,"allowed_actions"),blocked_actions:U(e,"blocked_actions"),allowed_services:U(e,"allowed_services"),blocked_services:U(e,"blocked_services"),extension_overrides:Ou(e?.extension_overrides??b.extensions.policy.extension_overrides)}}function ws(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 H(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:{}}function Nr(e){return Array.isArray(e)?e:[]}function Nu(e,t,n){return{...t.validation,...e.validation,parent_reference:n.parent_reference,metadata_profile:n.metadata_profile,metadata_required_fields:ws(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:xr(e.validation?.estimate_defaults_by_type)}}function Ru(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 Du(e,t){return{...t.search,...e.search,mutation_refresh_policy:cs(e.search?.mutation_refresh_policy),query_expansion:{...t.search.query_expansion,...e.search?.query_expansion,enabled:ds(e.search?.query_expansion?.enabled),provider:ls(e.search?.query_expansion?.provider)},rerank:{...t.search.rerank,...e.search?.rerank,enabled:us(e.search?.rerank?.enabled),model:fs(e.search?.rerank?.model),top_k:ms(e.search?.rerank?.top_k)}}}function Mu(e,t){return{adapter:e.vector_store.adapter??t.vector_store.adapter,collection_name:_s(e.vector_store.collection_name),qdrant:{...t.vector_store.qdrant,...e.vector_store.qdrant},lancedb:{...t.vector_store.lancedb,...e.vector_store.lancedb}}}function Lu(e,t){return e.item_format==="json_markdown"?"toon":e.item_format??t.item_format}function Pu(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 ju(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=>Wr(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 Es(e){let t=as(),n=ln({governance:e.governance??{preset:"default"}});return{...t,...e,item_format:Lu(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:Nu(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:Ru(e,t),agent_guidance:hs(e.agent_guidance??t.agent_guidance),item_types:{definitions:Pe(e.item_types?.definitions)},schema:He(e.schema??t.schema),context:Pu(e,t),extensions:{enabled:[...e.extensions.enabled],disabled:[...e.extensions.disabled],policy:bs(e.extensions.policy??t.extensions.policy)},search:Du(e,t),providers:ju(e,t),vector_store:Mu(e,t)}}function Fu(e){e.agent_identity=k(e.agent_identity,["probes_enabled","identity_vocabulary","harness_signals"]);let t=e.agent_identity;Object.hasOwn(t,"identity_vocabulary")&&(t.identity_vocabulary=k(H(t.identity_vocabulary),["version","aliases"])),e.agent_identity.harness_signals=Nr(e.agent_identity.harness_signals).map(n=>k(H(n),["harness","environment_keys","model_environment_keys","session_environment_keys","provenance_environment_keys","provenance_resolvers","provenance_unavailable_dimensions","argv_markers","client_names"])),e.locks=k(e.locks,["ttl_seconds","wait_ms"]),e.ids=k(e.ids,["token_length"]),e.mutation_guard=k(e.mutation_guard,["require_attributed_author","secret_guard","stale_in_progress_hours"]),e.checkpoints=k(e.checkpoints,["retention_days"]),e.output=k(e.output,["default_format"]),e.history=k(e.history,["missing_stream","compact_policy"]),e.validation=k(e.validation,["sprint_release_format","parent_reference","metadata_profile","metadata_required_fields","lifecycle_stale_blocker_reason_patterns","lifecycle_closure_like_blocked_reason_patterns","lifecycle_closure_like_resolution_patterns","lifecycle_closure_like_actual_result_patterns","estimate_defaults_by_type"]),e.governance=k(e.governance,["preset","ownership_enforcement","create_mode_default","close_validation_default","require_close_reason","parent_reference","metadata_profile","force_required_for_stale_lock","create_default_type","workflow_enforcement","duplicate_detection_mode","duplicate_detection_threshold","duplicate_detection_limit"]),e.workflow=k(e.workflow,["definition_of_done"]),e.testing=k(e.testing,["record_results_to_items"]),e.telemetry=k(e.telemetry,["enabled","first_run_prompt_completed","capture_level","endpoint","installation_id","retention_days"]),e.agent_guidance=k(e.agent_guidance,["prompt_completed","declined","declined_at","template_version","last_checked_files"]),e.item_types=k(e.item_types,["definitions"]),e.schema=k(e.schema,["version","files","statuses","fields","workflow","type_workflows","unknown_field_policy"]),e.schema.files=k(H(e.schema.files),["types","statuses","fields","workflows"]),e.schema.workflow=k(H(e.schema.workflow),["draft_status","open_status","in_progress_status","blocked_status","close_status","canceled_status"]),e.context=k(e.context,["default_depth","activity_limit","stale_threshold_days","sections"]),e.context.sections=k(H(e.context.sections),["hierarchy","activity","progress","blockers","files","workload","staleness","tests"]),e.extensions=k(e.extensions,["enabled","disabled","policy"]),e.extensions.policy=k(H(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=Nr(e.extensions.policy.extension_overrides).map(n=>k(H(n),["name","disabled","require_trusted","require_provenance","sandbox_profile","allowed_capabilities","blocked_capabilities","allowed_surfaces","blocked_surfaces","allowed_commands","blocked_commands","allowed_actions","blocked_actions","allowed_services","blocked_services"])),e.search=k(e.search,["score_threshold","hybrid_semantic_weight","max_results","embedding_model","embedding_corpus_max_characters","embedding_batch_size","embedding_timeout_ms","scanner_max_batch_retries","provider","mutation_refresh_policy","query_expansion","rerank"]),e.search.query_expansion=k(H(e.search.query_expansion),["enabled","provider"]),e.search.rerank=k(H(e.search.rerank),["enabled","model","top_k"]),e.providers=k(e.providers,["openai","ollama"]),e.providers.openai=k(H(e.providers.openai),["base_url","api_key","model"]),e.providers.ollama=k(H(e.providers.ollama),["base_url","model"]),e.vector_store=k(e.vector_store,["adapter","collection_name","qdrant","lancedb"]),e.vector_store.qdrant=k(H(e.vector_store.qdrant),["url","api_key"]),e.vector_store.lancedb=k(H(e.vector_store.lancedb),["path"])}function $u(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 zu(e,t){return{...e.validation,parent_reference:t.parent_reference,metadata_profile:t.metadata_profile,metadata_required_fields:ws(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:xr(e.validation?.estimate_defaults_by_type)}}function Uu(e){return{...b.search,...e.search,mutation_refresh_policy:cs(e.search?.mutation_refresh_policy),query_expansion:{...b.search.query_expansion,...e.search?.query_expansion,enabled:ds(e.search?.query_expansion?.enabled),provider:ls(e.search?.query_expansion?.provider)},rerank:{...b.search.rerank,...e.search?.rerank,enabled:us(e.search?.rerank?.enabled),model:fs(e.search?.rerank?.model),top_k:ms(e.search?.rerank?.top_k)}}}function Hu(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 Wu(e){return{...e.vector_store,adapter:e.vector_store?.adapter??b.vector_store.adapter,collection_name:_s(e.vector_store?.collection_name),qdrant:{...e.vector_store?.qdrant},lancedb:{...e.vector_store?.lancedb}}}function Bu(e,t,n,r){return{...e,item_format:"toon",validation:zu(e,t),governance:t,agent_guidance:hs(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:Uu(e),context:Hu(e),extensions:{enabled:Cr(e.extensions?.enabled),disabled:Cr(e.extensions?.disabled),policy:bs(e.extensions?.policy)},vector_store:Wu(e)}}function ks(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(!ve(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:{};ks(c,i,s),Object.keys(c).length>0?e[o]=c:delete e[o];continue}e[o]=structuredClone(s)}}}var vs=["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 is(e,t){let n=$u(e),r=ln(n),o=He(n.schema),i=Su(n,t),s=Bu(n,r,o,i),a=k({...s,governance:hu(r)},vs);return Fu(a),a}function qu(e,t={}){let n=is(e,t.persist_source);if(t.persist_source){let r=Es(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=is(r,t.persist_source),i=structuredClone(t.persist_source.source_settings);return ks(i,o,n),`${JSON.stringify(k(i,vs),null,2)}
151
- `}return`${JSON.stringify(n,null,2)}
152
- `}async function Ss(e){let t=hn(e),n=[t];await K({path:t,scope:"project"});let r=ts(e);if(r){let l=await de(r.tracked_paths);if(st(l,r.signatures))return dn(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 Ar(e,[t],l,o,[t]),l}let s=await de([t]);if(!st(o,s))return le(e),Ss(e);let a;try{a=JSON.parse(i)}catch{let l=at("settings_read_invalid_json");return await Ar(e,[t],l,s,[t]),l}let c=Ji(a);if(!c.success){let l=at("settings_read_invalid_schema");return await Ar(e,[t],l,s,[t]),l}try{let l=Es(c.data),m=wu(e,l.schema,t);n=m;let u=await de(m),p=await no(e,l.schema),y=await ro(e,l.schema),w=await de(m),S={...l,item_types:{definitions:Pe([...l.item_types.definitions,...Nr(y.type_definitions_from_file)])},schema:y.schema};ps(S,bu(c.data,S));let E={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"]:[],...p.created_paths.map(C=>`runtime_schema_bootstrap_created:${C}`),...y.warnings]};return p.created_paths.length===0?st(u,w)?cn(e,{tracked_paths:m,signatures:w,value:dn(E)}):le(e):le(e),E}catch{let l=at("settings_read_merge_failed");return await ku(e,n,l),l}}async function Ry(e){return(await Ss(e)).settings}async function Dy(e,t,n=mu){let r=hn(e),o=qu(t,{persist_source:ys(t)});try{await Ki({pmRoot:e,filePath:r,raw:o,op:n,author:ko(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 Vu from"node:fs/promises";import Gu 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 Xu(e){return[...new Set(e.filter(t=>t.trim().length>0))].sort((t,n)=>t.localeCompare(n))}function Ku(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 Ju(e,t){return await Hr(Gu.dirname(e)),await(await Vu.open(e,"a")).close(),q({path:e,scope:"project",op:`${t}:history:auto_create`})}async function Rr(e){return Yu({pmRoot:e.pmRoot,settings:e.settings,itemIds:[e.itemId],commandLabel:e.commandLabel})}async function Yu(e){let t=Xu(e.itemIds),n=[],r=[];for(let o of t){let i=ze(e.pmRoot,o);if(!await ht(i)){if(e.settings.history.missing_stream==="strict_error")throw Ku(o,e.commandLabel);r.push(...await Ju(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 Qu(e){try{return await fe.access(e),!0}catch{return!1}}function un(e,t){return typeof e=="object"&&e!==null&&"code"in e&&e.code===t}function Zu(e,t){e&&(e.includes(t)||e.push(t))}function Is(e){return e??yt(Ke())}function ef(e){return e==="toon"?["toon","json_markdown"]:e==="json_markdown"?["json_markdown","toon"]:["toon","json_markdown"]}function fn(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 tf(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(un(o,"ENOTDIR"))throw fn(e);if(!un(o,"ENOENT"))throw o;n=je.dirname(n);continue}if(!r.isDirectory())throw fn(e);break}}async function Dr(e){let t;try{t=await fe.stat(e)}catch(n){throw un(n,"ENOENT")?(await tf(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."]})):un(n,"ENOTDIR")?fn(e):n}if(!t.isDirectory())throw fn(e)}async function xs(e,t,n="pm-",r,o=me){let i=fr(t,n),s=ur(t),a=i===s?[i]:[i,s],c=Object.entries(o),l=ef(r);for(let m of a)for(let[u]of c)for(let p of l){let y=gn(e,u,m,p,o);if(await Qu(y))return{id:m,type:u,itemPath:y,item_format:p}}return null}async function Ts(e,t={}){let n=await fe.readFile(e.itemPath,"utf8");await K({path:e.itemPath,scope:"project"});let r=Rt(n,{format:e.item_format,schema:t.schema,extensionFieldNames:Is(t.extensionFieldNames),onWarning:o=>Zu(t.warnings,o)});return{raw:n,document:r}}async function nf(e,t,n=me,r,o){return await Dr(e),(await Hi(e,t,n,r,o)).map(s=>s.metadata)}async function ch(e,t,n=me,r,o){return await Dr(e),(await Wi(e,t,n,r,o)).map(s=>s.metadata)}async function dh(e,t,n=me,r,o,i={}){return await Dr(e),(await rn(e,t,n,r,o,{includeBody:!0,forceSourceScan:i.forceSourceScan})).map(a=>({...a.metadata,body:a.body}))}function As(e){return{async get(t){let n=await xs(e.pmRoot,t,e.settings.id_prefix,e.settings.item_format,e.typeToFolder);if(!n)return null;let{document:r}=await Ts(n,{schema:e.settings.schema});return{item:r.metadata,body:r.body}},list:()=>nf(e.pmRoot,e.settings.item_format,e.typeToFolder,void 0,e.settings.schema)}}async function rf(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 gt)if(s.toLowerCase().endsWith(a)){r.push(s.slice(0,-a.length));break}}catch{}})),r}async function of(e,t,n,r){let o=fr(t,n),i=await rf(e,r);if(i.length===0)return[];let s=Math.max(3,Math.floor(o.length/2));return i.map(c=>({id:c,distance:lt(c,o,s)})).filter(c=>c.distance!==null).sort((c,l)=>c.distance-l.distance).slice(0,3).map(c=>c.id)}async function sf(e,t,n,r){let o=await of(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 af(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 Os(e){let t=e.typeToFolder??Br(e.settings,Ke()).type_to_folder,n=await xs(e.pmRoot,e.id,e.settings.id_prefix,e.settings.item_format,t);if(!n)throw await sf(e.pmRoot,e.id,e.settings.id_prefix,t);let r=await re(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 Ts(n,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames,warnings:o}),a=s.metadata.assignee?.trim(),c=s.metadata.claim_principal?.trim()||a,l=Eo(e.author),m=ln(e.settings);if(a&&c!==l&&!e.force&&!af(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 cf(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 df(e){if(!e.skipItemWrite){if(e.effectiveTargetItemPath!==e.originalItemPath){await z(e.originalItemPath,e.originalRaw),await fe.rm(e.effectiveTargetItemPath,{force:!0});return}await z(e.originalItemPath,e.originalRaw)}}async function lh(e){let t=await Os({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=be();let u=B(l,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames});await Yn({pm_root:e.pmRoot,operation:e.op,before:c,after:u,changed_fields:m.changedFields,sdk:As({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:n})});let p=await Rr({pmRoot:e.pmRoot,settings:e.settings,itemId:r.id,commandLabel:e.op}),y="toon",w=Bo(u,{format:y,schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),S=gn(e.pmRoot,u.metadata.type,r.id,y,n),E=ze(e.pmRoot,r.id),C=await ee("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:E,item_format:y,before:c,after:u,contents:w}),{effectiveTargetItemPath:R,effectiveSerializedAfter:Y,skipItemWrite:$}=cf(C,S,w),mn=await Er(e.pmRoot,e.author),ct=[];try{$||await z(R,Y),!$&&R!==r.itemPath&&await fe.rm(r.itemPath);let _n=Re({nowIso:u.metadata.updated_at,author:e.author,op:e.op,before:c,after:u,message:e.message});try{await De(E,_n)}catch(dt){throw await df({skipItemWrite:$,effectiveTargetItemPath:R,originalItemPath:r.itemPath,originalRaw:o}),dt}$||(ct=await kr({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:n,schema:e.settings.schema,itemPath:R,previousItemPath:r.itemPath,document:u}))}finally{await mn()}let Q=[...await q({path:R,scope:"project",op:e.op,item_id:u.metadata.id,item_type:u.metadata.type,before:c,after:u,changed_fields:m.changedFields}),...await q({path:E,scope:"project",op:`${e.op}:history`,item_id:u.metadata.id,item_type:u.metadata.type,before:c,after:u,changed_fields:m.changedFields})];return Jn({id:u.metadata.id,op:e.op,item_type:u.metadata.type,previous_status:c.metadata.status,status:u.metadata.status,previous:Dt(c.metadata,m.changedFields),current:Dt(u.metadata,m.changedFields),changed_fields:m.changedFields}),{item:u.metadata,body:u.body,changedFields:m.changedFields,warnings:[...s,...m.warnings??[],...p.warnings,...C.warnings,...ct,...Q]}}finally{await a()}}async function uh(e){let t=await Os({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=Is(void 0),c=B(o,{schema:e.settings.schema,extensionFieldNames:a});await Yn({pm_root:e.pmRoot,operation:"delete",before:c,after:null,changed_fields:["deleted"],sdk:As({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:t.typeToFolder})});let l=await Rr({pmRoot:e.pmRoot,settings:e.settings,itemId:n.id,commandLabel:"delete"}),m=be(),u=Fe,p=Re({nowIso:m,author:e.author,op:"delete",before:c,after:u,message:e.message}),y=ze(e.pmRoot,n.id),w=await ee("item_store_delete",{op:"delete",pm_root:e.pmRoot,item_id:n.id,item_path:n.itemPath,history_path:y,before:c}),S=n.itemPath,E=!1;if(w.handled&&typeof w.result=="object"&&w.result!==null){let $=w.result;typeof $.item_path=="string"&&$.item_path.trim().length>0&&(S=$.item_path),$.skip_delete===!0&&(E=!0)}if(e.dryRun===!0)return{item:c.metadata,changedFields:["deleted"],targetPath:S,warnings:[...i,...l.warnings,...w.warnings]};let C=await Er(e.pmRoot,e.author),R=[];try{E||await fe.rm(S);try{await De(y,p)}catch($){throw E||await z(S,r),$}E||(R=await kr({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:t.typeToFolder,schema:e.settings.schema,itemPath:S,document:null}))}finally{await C()}let Y=[...await q({path:S,scope:"project",op:"delete",item_id:c.metadata.id,item_type:c.metadata.type,before:c,after:u,changed_fields:["deleted"]}),...await q({path:y,scope:"project",op:"delete:history",item_id:c.metadata.id,item_type:c.metadata.type,before:c,after:u,changed_fields:["deleted"]})];return Jn({id:c.metadata.id,op:"delete",item_type:c.metadata.type,previous_status:c.metadata.status,previous:Dt(c.metadata,Object.keys(c.metadata)),changed_fields:["deleted"]}),{item:c.metadata,changedFields:["deleted"],warnings:[...i,...l.warnings,...w.warnings,...R,...Y]}}finally{await s()}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="a9b23a46-0bba-5174-8793-dfc37016d1fb")}catch{}})();function lf(e,t){let n=e.trim().toLowerCase();if(n.length===0)return;let r=Math.floor(n.length/3);return t.map(o=>({candidate:o,distance:lt(n,o.toLowerCase(),r)??Number.POSITIVE_INFINITY})).filter(({distance:o})=>Number.isFinite(o)).sort((o,i)=>o.distance!==i.distance?o.distance-i.distance:o.candidate.localeCompare(i.candidate))[0]?.candidate}function Cs(e){return["pm",...e].map(t=>/^[A-Za-z0-9_./:@=-]+$/u.test(t)?t:JSON.stringify(t)).join(" ")}function yh(e){let t=e.command_path.trim().replaceAll(/\s+/gu," "),n=e.token.trim(),r=n.length===0?"<empty>":n,o=[...new Set(e.allowed.map(p=>p.trim()))].filter(Boolean).sort((p,y)=>p.localeCompare(y));if(t.length===0||r.length===0||o.length===0)throw new TypeError("Unknown-subcommand contracts require a path, token, and allowed set");let i=t.split(" "),s=e.trailing_args??[],a=e.display_name??`pm ${t}`,c=e.token_kind??"subcommand",l=e.retry_command?void 0:lf(r,o),m=Cs([...i,r,...s]),u=e.retry_command??(l?Cs([...i,l,...s]):void 0);return new T(`Unknown ${a} ${c} "${r}". Allowed: ${o.join(", ")}${e.message_suffix??""}`,e.exit_code??I.USAGE,{code:"unknown_subcommand",reason:"unknown_positional_token",examples:[...u?[u]:[],...e.examples??[],`pm ${t} --help`],nextSteps:u?[`Retry with the suggested command: ${u}`]:["Choose one value from recovery.allowed_values."],recovery:{attempted_command:m,allowed_values:o,suggested_retry:u,fallback_candidates:e.fallback_candidates}})}export{Rm as a,Uc as b,qm as c,Vm as d,Gm as e,Xm as f,Km as g,Jm as h,Ym as i,Qm as j,Ke as k,Jn as l,Dt as m,q as n,Yn as o,K as p,Qn as q,Zm as r,e_ as s,ee as t,fd as u,ye as v,En as w,mf as x,_f as y,Et as z,xn as A,Ef as B,kf as C,vf as D,Sf as E,If as F,xf as G,Dn as H,zs as I,Lf as J,Pf as K,jf as L,jn as M,go as N,Ff as O,$f as P,zf as Q,na as R,Eo as S,ko as T,be as U,F as V,Kf as W,Jf as X,re as Y,Do as Z,Be as _,cm as $,dm as aa,xe as ba,Oo as ca,Qf as da,Co as ea,ka as fa,Zf as ga,At as ha,Sa as ia,rm as ja,Ot as ka,Nt as la,Rt as ma,Bo as na,B as oa,Je as pa,g_ as qa,b_ as ra,$_ as sa,z_ as ta,gd as ua,Qe as va,di as wa,rp as xa,Re as ya,De as za,Id as Aa,Ht as Ba,Ut as Ca,Wt as Da,up as Ea,fp as Fa,fi as Ga,Bt as Ha,lr as Ia,mp as Ja,_p as Ka,on as La,qi as Ma,ly as Na,uy as Oa,fy as Pa,Ki as Qa,yy as Ra,ln as Sa,Ss as Ta,Ry as Ua,Dy as Va,Rr as Wa,Yu as Xa,pi as Ya,ur as Za,fr as _a,Ep as $a,Tp as ab,Ap as bb,Op as cb,ji as db,_l as eb,Er as fb,Qp as gb,kr as hb,rn as ib,xs as jb,Ts as kb,nf as lb,ch as mb,dh as nb,As as ob,sf as pb,lh as qb,uh as rb,yh as sb};
153
- //# sourceMappingURL=chunk-ERAAFLPS.js.map