@unbrained/pm-cli 2026.8.13 → 2026.8.15

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 (194) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/CHANGELOG.md +165 -113
  3. package/dist/cli/commander-usage.js +17 -4
  4. package/dist/cli/error-guidance.d.ts +2 -0
  5. package/dist/cli/error-guidance.js +52 -25
  6. package/dist/cli/main.js +40 -3
  7. package/dist/cli/register-mutation.js +4 -2
  8. package/dist/cli/register-operations.js +5 -5
  9. package/dist/cli-bundle/bundle-manifest.json +146 -178
  10. package/dist/cli-bundle/chunks/{chunk-F7FJYGK3.js → chunk-24GAV7XL.js} +2 -2
  11. package/dist/cli-bundle/chunks/chunk-AIM6VT2N.js +13 -0
  12. package/dist/cli-bundle/chunks/chunk-DSWDLTDR.js +197 -0
  13. package/dist/cli-bundle/chunks/{chunk-Q47C67TQ.js → chunk-J42EGKDK.js} +2 -2
  14. package/dist/cli-bundle/chunks/chunk-KIEGUBYQ.js +2 -0
  15. package/dist/cli-bundle/chunks/{chunk-3ZMOWAFM.js → chunk-KLKYLSDX.js} +2 -2
  16. package/dist/cli-bundle/chunks/{chunk-QGTUPEU5.js → chunk-LJHOAVGI.js} +59 -59
  17. package/dist/cli-bundle/chunks/chunk-MEM2ZS3O.js +5 -0
  18. package/dist/cli-bundle/chunks/chunk-QHPCJWEJ.js +35 -0
  19. package/dist/cli-bundle/chunks/{chunk-YLBAPY22.js → chunk-WLPDLNEZ.js} +2 -2
  20. package/dist/cli-bundle/chunks/{register-list-query-4HIZ7EA3.js → register-list-query-CT3LFDDN.js} +2 -2
  21. package/dist/cli-bundle/chunks/{register-mutation-W64FZ5HN.js → register-mutation-NWEVA5YS.js} +3 -3
  22. package/dist/cli-bundle/chunks/register-operations-AHIAG5KM.js +2 -0
  23. package/dist/cli-bundle/chunks/{register-setup-634MFRXU.js → register-setup-ZJZFVAKE.js} +2 -2
  24. package/dist/cli-bundle/focused-chunks/chunk-4X57RE4U.js +2 -0
  25. package/dist/cli-bundle/focused-chunks/chunk-6XKF3PGV.js +18 -0
  26. package/dist/cli-bundle/focused-chunks/chunk-7NJ4QYQ2.js +2 -0
  27. package/dist/cli-bundle/focused-chunks/{chunk-I75MANL7.js → chunk-EXZA4257.js} +2 -2
  28. package/dist/cli-bundle/focused-chunks/chunk-ITAUHSO6.js +50 -0
  29. package/dist/cli-bundle/focused-chunks/{chunk-OOYYKQWX.js → chunk-KLVUMNXJ.js} +2 -2
  30. package/dist/cli-bundle/focused-chunks/{chunk-2RI2FESN.js → chunk-KT5XMYSX.js} +2 -2
  31. package/dist/cli-bundle/focused-chunks/{chunk-E3AVJ655.js → chunk-KTKH4IMG.js} +2 -2
  32. package/dist/cli-bundle/focused-chunks/chunk-M67F5AIN.js +8 -0
  33. package/dist/cli-bundle/focused-chunks/{chunk-3DJSGWVB.js → chunk-NSPYTG6G.js} +2 -2
  34. package/dist/cli-bundle/focused-chunks/chunk-OKA6ELTL.js +2 -0
  35. package/dist/cli-bundle/focused-chunks/chunk-PUISBOPP.js +2 -0
  36. package/dist/cli-bundle/focused-chunks/chunk-QLNMCESQ.js +155 -0
  37. package/dist/cli-bundle/focused-chunks/{chunk-IIS2FRKL.js → chunk-SLKC6QLJ.js} +2 -2
  38. package/dist/cli-bundle/focused-chunks/chunk-U65UC4G3.js +2 -0
  39. package/dist/cli-bundle/focused-chunks/chunk-WTSER4WJ.js +16 -0
  40. package/dist/cli-bundle/focused-chunks/{chunk-2JP7W7GO.js → chunk-ZMFXQ7VF.js} +2 -2
  41. package/dist/cli-bundle/main.js +13 -13
  42. package/dist/cli-bundle/sdk-authoring.js +1 -1
  43. package/dist/cli-bundle/sdk-contracts.js +1 -1
  44. package/dist/cli-bundle/sdk-core.js +41 -41
  45. package/dist/cli-bundle/sdk-governance.js +1 -1
  46. package/dist/cli-bundle/sdk-graph.js +1 -1
  47. package/dist/cli-bundle/sdk-merge.js +110 -1
  48. package/dist/cli-bundle/sdk-query.js +1 -1
  49. package/dist/cli-bundle/sdk-runtime.js +1 -1
  50. package/dist/cli-bundle/sdk-testing.js +1 -1
  51. package/dist/cli-bundle/sdk.js +2 -2
  52. package/dist/core/diagnostics/remediation.js +7 -2
  53. package/dist/core/extensions/reserved-host-flags.js +3 -2
  54. package/dist/core/history/drift-scan.d.ts +6 -0
  55. package/dist/core/history/drift-scan.js +74 -50
  56. package/dist/core/history/replay.d.ts +14 -1
  57. package/dist/core/history/replay.js +45 -8
  58. package/dist/core/history/workspace-history.d.ts +59 -0
  59. package/dist/core/history/workspace-history.js +197 -10
  60. package/dist/core/output/output.d.ts +2 -0
  61. package/dist/core/output/output.js +13 -4
  62. package/dist/core/shared/command-types.d.ts +2 -0
  63. package/dist/core/shared/command-types.js +2 -2
  64. package/dist/core/shared/errors.d.ts +12 -0
  65. package/dist/core/shared/errors.js +2 -2
  66. package/dist/mcp/tool-definitions.js +9 -5
  67. package/dist/sdk/agent/refusal-reachability.d.ts +61 -0
  68. package/dist/sdk/agent/refusal-reachability.js +91 -3
  69. package/dist/sdk/cli-bootstrap.d.ts +2 -0
  70. package/dist/sdk/cli-bootstrap.js +7 -2
  71. package/dist/sdk/cli-contracts/completeness.js +3 -2
  72. package/dist/sdk/cli-contracts/flag-contracts.js +3 -2
  73. package/dist/sdk/cli-contracts/registration-helpers.js +3 -2
  74. package/dist/sdk/cli-contracts/runtime-contracts.d.ts +11 -1
  75. package/dist/sdk/cli-contracts/runtime-contracts.js +176 -65
  76. package/dist/sdk/cli-contracts/tool-parameter-tables.js +15 -5
  77. package/dist/sdk/cli-contracts/tool-schema.js +10 -3
  78. package/dist/sdk/cli-program.js +4 -3
  79. package/dist/sdk/context-relevance.js +12 -4
  80. package/dist/sdk/core.d.ts +2 -2
  81. package/dist/sdk/core.js +3 -3
  82. package/dist/sdk/generated/generated-error-code-catalog-part-1.js +26 -2
  83. package/dist/sdk/generated/generated-error-code-catalog-part-2.js +50 -26
  84. package/dist/sdk/governance/assurance-action.d.ts +7 -1
  85. package/dist/sdk/governance/assurance-action.js +7 -6
  86. package/dist/sdk/governance/assurance-mutation-error.d.ts +42 -1
  87. package/dist/sdk/governance/assurance-mutation-error.js +27 -3
  88. package/dist/sdk/governance/assurance-runtime.js +12 -11
  89. package/dist/sdk/governance/assurance.d.ts +9 -0
  90. package/dist/sdk/governance/assurance.js +82 -16
  91. package/dist/sdk/governance/extension-host-version.d.ts +25 -0
  92. package/dist/sdk/governance/extension-host-version.js +105 -0
  93. package/dist/sdk/governance/health.d.ts +32 -1
  94. package/dist/sdk/governance/health.js +132 -28
  95. package/dist/sdk/governance/provenance-health.d.ts +27 -0
  96. package/dist/sdk/governance/provenance-health.js +95 -3
  97. package/dist/sdk/governance/validate-history-drift.d.ts +7 -0
  98. package/dist/sdk/governance/validate-history-drift.js +68 -0
  99. package/dist/sdk/governance/validate.js +9 -52
  100. package/dist/sdk/governance.d.ts +6 -0
  101. package/dist/sdk/governance.js +8 -2
  102. package/dist/sdk/graph/assembly.d.ts +23 -0
  103. package/dist/sdk/graph/assembly.js +54 -2
  104. package/dist/sdk/graph/durable-cache.js +50 -20
  105. package/dist/sdk/graph/governance-contracts.d.ts +1 -1
  106. package/dist/sdk/graph/governance-contracts.js +4 -2
  107. package/dist/sdk/graph/governance.d.ts +21 -1
  108. package/dist/sdk/graph/governance.js +94 -32
  109. package/dist/sdk/graph/index.d.ts +2 -2
  110. package/dist/sdk/graph/index.js +4 -4
  111. package/dist/sdk/graph/mutation-advisory.js +15 -7
  112. package/dist/sdk/graph/remediation.js +12 -2
  113. package/dist/sdk/history-read.d.ts +8 -0
  114. package/dist/sdk/history-read.js +2 -2
  115. package/dist/sdk/history-repair.d.ts +13 -1
  116. package/dist/sdk/history-repair.js +62 -18
  117. package/dist/sdk/index.d.ts +1 -1
  118. package/dist/sdk/index.js +3 -3
  119. package/dist/sdk/linked-artifacts.js +16 -5
  120. package/dist/sdk/pagination.d.ts +15 -0
  121. package/dist/sdk/pagination.js +9 -5
  122. package/dist/sdk/query/context.d.ts +5 -1
  123. package/dist/sdk/query/context.js +14 -5
  124. package/dist/sdk/query/history.js +20 -3
  125. package/dist/sdk/read-output/continuation.d.ts +11 -0
  126. package/dist/sdk/read-output/continuation.js +132 -0
  127. package/dist/sdk/read-output-budget.d.ts +3 -1
  128. package/dist/sdk/read-output-budget.js +24 -13
  129. package/dist/sdk/read-output-contracts.d.ts +127 -7
  130. package/dist/sdk/read-output-contracts.js +381 -35
  131. package/dist/sdk/read-output-rows.d.ts +13 -0
  132. package/dist/sdk/read-output-rows.js +60 -2
  133. package/dist/sdk/runtime-input.js +4 -2
  134. package/dist/sdk/runtime-primitives.d.ts +1 -1
  135. package/dist/sdk/runtime-primitives.js +3 -3
  136. package/dist/sdk/runtime.js +5 -3
  137. package/docs/ASSURANCE.md +68 -2
  138. package/docs/COMMANDS.md +39 -4
  139. package/docs/READ_OUTPUT_CONTRACTS.md +85 -8
  140. package/docs/RELATIONSHIP_GRAPH.md +20 -5
  141. package/docs/RELEASING.md +42 -5
  142. package/docs/SDK.md +12 -5
  143. package/docs/SDK_CONTEXT_INTEGRITY.md +94 -1
  144. package/docs/TESTING.md +23 -1
  145. package/docs/performance/sdk-entrypoint-import-costs.md +20 -13
  146. package/marketplace.json +2 -2
  147. package/package.json +7 -7
  148. package/packages/pm-beads/extensions/beads/index.ts +1 -0
  149. package/packages/pm-beads/package.json +1 -1
  150. package/packages/pm-calendar/extensions/calendar/index.ts +1 -0
  151. package/packages/pm-calendar/package.json +1 -1
  152. package/packages/pm-command-kit/package.json +1 -1
  153. package/packages/pm-digital-twin/extensions/digital-twin/index.ts +7 -0
  154. package/packages/pm-digital-twin/package.json +1 -1
  155. package/packages/pm-governance-audit/extensions/governance-audit/index.ts +4 -0
  156. package/packages/pm-governance-audit/package.json +1 -1
  157. package/packages/pm-guide-shell/extensions/guide-shell/index.ts +5 -0
  158. package/packages/pm-guide-shell/package.json +1 -1
  159. package/packages/pm-kanban/package.json +1 -1
  160. package/packages/pm-lifecycle-hooks/package.json +1 -1
  161. package/packages/pm-linked-test-adapters/extensions/linked-test-adapters/index.ts +6 -0
  162. package/packages/pm-linked-test-adapters/package.json +1 -1
  163. package/packages/pm-search-advanced/extensions/search-advanced/index.ts +2 -0
  164. package/packages/pm-search-advanced/package.json +1 -1
  165. package/packages/pm-templates/extensions/templates/index.ts +4 -0
  166. package/packages/pm-templates/package.json +1 -1
  167. package/packages/pm-todos/extensions/todos/index.ts +2 -0
  168. package/packages/pm-todos/package.json +1 -1
  169. package/packages/pm-vcs/extensions/vcs/index.ts +7 -0
  170. package/packages/pm-vcs/package.json +1 -1
  171. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  172. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  173. package/scripts/bundle-cli.mjs +17 -4
  174. package/sdk/public-surface.json +1283 -157
  175. package/dist/cli-bundle/chunks/chunk-DEDU3DG7.js +0 -196
  176. package/dist/cli-bundle/chunks/chunk-DL5M5J3V.js +0 -13
  177. package/dist/cli-bundle/chunks/chunk-HIUZVCMN.js +0 -5
  178. package/dist/cli-bundle/chunks/chunk-IMGIN7R6.js +0 -2
  179. package/dist/cli-bundle/chunks/chunk-TF3TPKPR.js +0 -34
  180. package/dist/cli-bundle/chunks/register-operations-C44ET7R5.js +0 -2
  181. package/dist/cli-bundle/focused-chunks/chunk-27N23W6M.js +0 -31
  182. package/dist/cli-bundle/focused-chunks/chunk-3BNVU6LC.js +0 -8
  183. package/dist/cli-bundle/focused-chunks/chunk-6MLIRBLV.js +0 -5
  184. package/dist/cli-bundle/focused-chunks/chunk-6XYLENDV.js +0 -155
  185. package/dist/cli-bundle/focused-chunks/chunk-CP4K4WFS.js +0 -2
  186. package/dist/cli-bundle/focused-chunks/chunk-EBTNSFYE.js +0 -2
  187. package/dist/cli-bundle/focused-chunks/chunk-HC2OL2H2.js +0 -2
  188. package/dist/cli-bundle/focused-chunks/chunk-NFHFZH2Z.js +0 -2
  189. package/dist/cli-bundle/focused-chunks/chunk-OGC4XSBC.js +0 -17
  190. package/dist/cli-bundle/focused-chunks/chunk-PKPOZXLL.js +0 -2
  191. package/dist/cli-bundle/focused-chunks/chunk-QDZUABWL.js +0 -2
  192. package/dist/cli-bundle/focused-chunks/chunk-QQX5TDFT.js +0 -16
  193. package/dist/cli-bundle/focused-chunks/chunk-TEZIXMTH.js +0 -2
  194. package/dist/cli-bundle/focused-chunks/chunk-WEH6NSL6.js +0 -18
@@ -1,155 +0,0 @@
1
- import{F as Jr,Ia as Et,K as wt,Ka as qe,Ma as Ve,Na as Ge,O as En,P as kn,Pa as co,Q as vn,Qa as lo,R as Be,Ra as uo,S as Yr,Sa as fo,T as Qr,Ta as mo,Ua as _o,Y as Zr,Z as eo,a as ft,h as gt,o as Xr,p as bt,r as ye,s as he,t as z,ta as to,u as We,ua as no,va as ro,wa as oo,xa as io,ya as so,z as Kr,za as ao}from"./chunk-2RI2FESN.js";import{C as yt,D as ht,E as wn,G as Vr,R as pe,S as ie,T as Gr,W as b,X as He,Y as I,Z as T,aa as G,ba as xe,ca as ge,da as k,n as mt,o as Ur,p as Hr,q as Wr,r as Br,v as _t,w as pt,x as qr}from"./chunk-CP4K4WFS.js";import{AsyncLocalStorage as Us}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 Sn=new Us,po=/^[A-Za-z0-9](?:[A-Za-z0-9._:-]{0,127})$/u;function kt(e,t){let n=typeof e=="string"?e.trim():"";return n.length>0?n.slice(0,t):void 0}function be(e,t){if(e===void 0)return;let n=typeof e=="object"&&e!==null?e:{},r=kt(n.id,128),o=kt(n.parent_id,128);if(r===void 0||!po.test(r)||o!==void 0&&!po.test(o)){if(t)throw new Error("Agent episode ids must be 1-128 letters, digits, dots, underscores, colons, or hyphens.");return}let i=kt(n.label,256);return{id:r,...i===void 0?{}:{label:i},...o===void 0?{}:{parent_id:o}}}function Te(e){let t={};for(let[n,r]of Object.entries(e??{}).slice(0,32)){let o=n.trim().toLowerCase().slice(0,64),i=kt(r,256);/^[a-z][a-z0-9_-]{0,63}$/u.test(o)&&i!==void 0&&(t[o]=i)}return t}function Hs(e,t,n){let r=Sn.getStore(),o=Te({role:t.PM_AGENT_SESSION_ROLE,topic:t.PM_AGENT_SESSION_TOPIC}),i=be(t.PM_AGENT_EPISODE_ID===void 0?void 0:{id:t.PM_AGENT_EPISODE_ID,label:t.PM_AGENT_EPISODE_LABEL,parent_id:t.PM_AGENT_EPISODE_PARENT_ID},!1),s={...Te(r?.provenance),...o,...Te(e?.provenance)},a=be(e?.episode,!1)??be(n,!1)??i??be(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 In(e,t){return Hs(e.session_context,t,e.client_info?.episode)??{}}function xf(e,t){let n=Sn.getStore(),r=be(e.episode,!0),o=be(n?.episode,!1),i=r!==void 0&&r.parent_id===void 0&&o!==void 0?{...r,parent_id:o.id}:r,s={...Te(n?.provenance),...Te(e.provenance)};return Sn.run({...Object.keys(s).length===0?{}:{provenance:s},...i===void 0?o===void 0?{}:{episode:o}:{episode:i}},t)}function Tf(e){let t=Te(e.provenance),n=be(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 Pn}from"node:async_hooks";import{createHash as Gs}from"node:crypto";import St from"node:fs";import Xs from"node:os";import wo from"node:path";import{createHash as yo}from"node:crypto";import{existsSync as xn,promises as ho,readFileSync as Ws}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 Bs="session.json";function Tn(e,t){return typeof e=="string"&&e.length>0&&e.length<=t}function go(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=Tn(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=>Tn(c,128)),a=t.focused_item_id===void 0||Tn(t.focused_item_id,128);if([n,r,o,i,s,a,t.rule_version==="v2"].every(Boolean))return t}function qs(e){if(e===null||typeof e!="object"||Array.isArray(e))return;let t=Object.entries(e).slice(0,128).flatMap(([n,r])=>{let o=go(r);return o&&n.length<=128?[[n,o]]:[]});return t.length>0?Object.fromEntries(t):void 0}function On(e){return X.join(Qr(e),Bs)}async function vt(e){try{let t=await ho.readFile(On(e),"utf8"),n=JSON.parse(t);if(n===null||typeof n!="object"||Array.isArray(n))return{};let r=n,o=r.focused_item,i=qs(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 An(e,t){let n=On(e);await ho.mkdir(X.dirname(n),{recursive:!0}),await z(n,JSON.stringify(t))}function Cn(e){return/#([a-f0-9]{24})$/u.exec(e.trim())?.[1]??`author-${yo("sha256").update(e).digest("hex").slice(0,24)}`}function Rn(e){return[...new Set(e.map(t=>t.trim()).filter(Boolean))].slice(0,32).map(t=>t.slice(0,128))}function Nn(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)}+${yo("sha256").update(t.join("\0")).digest("hex").slice(0,12)}`}async function Dn(e,t,n){let r=await vt(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 An(e,s)}async function Mf(e){let t=Cn(e.principal);await Dn(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??Nn(r),confidence:o?"high":"medium",rule_version:"v2",evidence:Rn([...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 Lf(e){let t=Cn(e.principal);await Dn(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??Nn(r),confidence:o?"high":"medium",evidence:Rn([...r.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],`release:${e.itemId}`]),active_item_ids:r}})}async function Pf(e){let t=Cn(e.principal);await Dn(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??Nn(r),confidence:o?"high":"medium",rule_version:"v2",evidence:Rn([...r.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],...(e.lineageIds??[]).map(i=>`lineage:${i}`)]),active_item_ids:r,...o?{focused_item_id:o}:{}}})}function Vs(e,t){let n=t.PM_PATH?.trim();if(n){let o=X.resolve(e,n);if(xn(X.join(o,"settings.json")))return o;let i=X.join(o,".agents","pm");if(xn(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(xn(X.join(i,"settings.json")))return i;let s=X.dirname(r);if(s===r)break;r=s}}function bo(e){if(!e.key)return;let t=Vs(e.cwd,e.env);if(t)try{let n=JSON.parse(Ws(On(t),"utf8"));return go(n.semantic_attribution?.[e.key])}catch{return}}async function jf(e){return(await vt(e)).focused_item}async function Ff(e,t){let n=await vt(e);await An(e,{...n,focused_item:t})}async function $f(e){let n={...await vt(e)};delete n.focused_item,await An(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 jn=["model","effort","role","topic","version"],xt=new Pn,Eo=new Pn,Tt=new Pn,Ks=[{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:[]}],Oe=new Map,Mn=/^[a-z0-9]+(?:-[a-z0-9]+)*$/u;function L(e){let t=typeof e=="string"?e.trim():void 0;return t&&t.length>0?t:void 0}function we(e){return[...new Set((e??[]).slice(0,64).map(t=>t.trim()).filter(t=>t.length>0).map(t=>t.slice(0,128)))]}function Ot(e){let t=e.harness.trim().toLowerCase();if(!Mn.test(t))throw new Error(`Invalid harness signal descriptor namespace: ${e.harness}`);return{harness:t,environment_keys:we(e.environment_keys),model_environment_keys:we(e.model_environment_keys),session_environment_keys:we(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),we(r)]).filter(([n])=>Mn.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"&&Mn.test(n[0])&&(n[1]==="ai_agent_version"||n[1]==="claude_session_file"))),provenance_unavailable_dimensions:we(e.provenance_unavailable_dimensions).map(n=>n.toLowerCase()),argv_markers:we(e.argv_markers).map(n=>n.toLowerCase()),client_names:we(e.client_names).map(n=>n.toLowerCase())}}var ko=Ks.map(Ot);function Js(e,t){return JSON.stringify(e)===JSON.stringify(t)}function It(e,t){return e.toLowerCase().slice(0,512).split(/[/\\\s:=]+/u).filter(r=>r.length>0).includes(t)||e.trim().toLowerCase()===t}function Fn(e=[]){let t=[...ko,...[...Oe.values()].map(r=>r.descriptor),...Tt.getStore()?.descriptors??[],...e.map(Ot)],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 $n(e,t){for(let n of t??[]){let r=L(e[n]);if(r)return r.slice(0,256)}}function Ys(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 vo(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 L(r[o+1])?.slice(0,256);let s=n.find(a=>i.startsWith(`${a}=`));if(s)return L(i.slice(s.length+1))?.slice(0,256)}}var Qs=new Set(["implementation","implementer","investigator","orchestrator","planner","release-operator","reviewer"]);function Ee(e,t){if(e!=="role"||t===void 0)return t;let n=t.trim().toLowerCase().replaceAll(/[_\s]+/gu,"-");return Qs.has(n)?n:void 0}function Ln(e,t){return L(e?.[t])?.slice(0,256)}var Zs=1048576;function ea(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 L(i)?.slice(0,256)}function ta(e,t,n){let r=L(n.CLAUDE_CODE_SESSION_ID);if(!r||!/^[A-Za-z0-9_-]{1,128}$/u.test(r))return;let i=wo.resolve(t.cwd??process.cwd()).replaceAll(/[^A-Za-z0-9-]/gu,"-"),s=wo.join(t.home_dir??Xs.homedir(),".claude","projects",i,`${r}.jsonl`);try{let a=St.openSync(s,"r");try{let c=St.fstatSync(a).size,l=Math.min(c,Zs),f=Buffer.alloc(l);St.readSync(a,f,0,l,Math.max(0,c-l));let u=f.toString("utf8").split(`
2
- `).reverse();for(let y of u.slice(0,4096)){let p=ea(y,e);if(p)return p}return}finally{St.closeSync(a)}}catch{return}}function na(e,t,n,r){let o=Tt.getStore();if(!(t.probes_enabled!==!1&&o?.probesEnabled!==!1&&!["0","false","off"].includes(L(n.PM_AGENT_PROBES)?.toLowerCase()??"")))return;let s=r?.provenance_resolvers[e];if(s==="claude_session_file")return ta(e,t,n);if(s==="ai_agent_version"){let a=L(n.AI_AGENT);return!a||!r||!It(a,r.harness)?void 0:/(?:^|[@/\s])v?(\d+\.\d+(?:\.\d+)?(?:[-+][A-Za-z0-9.-]+)?)$/u.exec(a)?.[1]?.slice(0,256)}}function ra(e,t,n){if(e==="ai_agent_version"){let r=L(n.AI_AGENT);return r!==void 0&&It(r,t.harness)}return L(n.CLAUDE_CODE_SESSION_ID)!==void 0}function zn(e){return e||(Eo.getStore()??{env:process.env,argv:process.argv})}function oa(e,t,n,r){let o=e.environment_keys.some(a=>L(t[a])!==void 0),i=e.argv_markers.some(a=>n.some(c=>{let l=c.replaceAll("\\","/");return It(l.slice(l.lastIndexOf("/")+1),a)})),s=e.client_names.some(a=>r===a||It(r,a));return o||i||s}function ia(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 sa(e){let t=e.find(([n])=>n!==void 0);return t?.[0]?{value:t[0],source:t[1]}:void 0}function aa(e,t,n,r,o,i){let s=`PM_AGENT_${e.toUpperCase().replaceAll("-","_")}`,a=new Set([...jn,...Object.keys(r?.provenance_environment_keys??{})]),c,l,f;a.has(e)&&(c=Ee(e,L(n[s])?.slice(0,256)),f=Ee(e,vo(t.argv??[],e)),l=Ee(e,Ys(t.argv??[],e)));let u={...r?.provenance_environment_keys,model:r?.model_environment_keys},y={...t.client_info?.provenance,model:t.client_info?.model},p=Ln(o?.provenance,e),w=Ee(e,$n(n,u[e])),S=Ee(e,Ln(y,e)),E=Ee(e,Ln(t.provenance,e)),C=na(e,t,n,r);return sa([[c,"override"],[p,"session"],[f,"argv"],[w,"environment"],[S,"mcp_client"],[E,"host"],[C,"probe"]])??ia(e,i)??(l?{value:l,source:"argv"}:void 0)}function ca(e,t){if(!(!e||!t))return Gs("sha256").update(`pm-agent-instance:v1\0${e}\0${t}`).digest("hex").slice(0,24)}function da(e,t,n,r,o){let i=Object.keys(n?.provenance_environment_keys??{}),s=new Set([...jn,...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=aa(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 Xf(e){let t=e.map(Ot),n=new Map(ko.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=Oe.get(i.harness);if(s&&!Js(s.descriptor,i))throw new Error(`Harness signal descriptor collision for "${i.harness}"`);r.add(i.harness)}for(let i of t){let s=Oe.get(i.harness);Oe.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=Oe.get(i.harness);!s||s.registrations<=1?Oe.delete(i.harness):s.registrations-=1}}}}function Kf(e,t){return Eo.run(e,t)}function Jf(e,t,n={}){let r=e.map(Ot);return Fn(r),Tt.run({descriptors:r,probesEnabled:n.probesEnabled!==!1},t)}function Un(e){let t=zn(e),n=t.env??{},r=Fn(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=>oa(w,n,o,i)),a=In(t,n),c=[$n(n,s?.session_environment_keys),L(t.client_info?.session)?.slice(0,256)].find(w=>w!==void 0),l=ca(s?.harness,c),f=bo({cwd:t.cwd??process.cwd(),env:n,key:l}),u=da(t,n,s,a,f),y=u.model,p=[["harness",s?.harness],["model",y?.value],["model_source",y?.source],["session",c],["instance",l],["provenance",Object.keys(u).length>0?u:void 0],["episode",a.episode]];return Object.fromEntries(p.filter(w=>w[1]!==void 0))}function la(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=ra(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 So(e){let t=zn(e),n=Un(t),r=Fn(t.descriptors).find(l=>l.harness===n.harness),o=t.env??{},i=t.probes_enabled!==!1&&Tt.getStore()?.probesEnabled!==!1&&!["0","false","off"].includes(L(o.PM_AGENT_PROBES)?.toLowerCase()??""),s=In(t,o),a=[o.PM_AGENT_ROLE,s.provenance?.role,$n(o,r?.provenance_environment_keys.role),t.client_info?.provenance?.role,t.provenance?.role,vo(t.argv??[],"role")].some(l=>{let f=L(l)?.slice(0,256);return f!==void 0&&Ee("role",f)===void 0}),c=Object.fromEntries(jn.map(l=>[l,la(l,n,r,o,i,l==="role"&&a)]));return{...n,provenance_outcomes:c}}function Yf(){return process.env.PM_AUTHOR}function Qf(e){e===void 0?delete process.env.PM_AUTHOR:process.env.PM_AUTHOR=e}function Zf(e){return Un(e).harness}function ua(e,t,n){let r=zn(n),o=Un(r);if(e!==void 0){let s=L(e);return s?{author:s,source:"asserted",...o}:{author:"unknown",source:"unknown",...o}}if(r.env?.PM_AUTHOR!==void 0){let s=L(r.env.PM_AUTHOR);return s?{author:s,source:"asserted",...o}:{author:"unknown",source:"unknown",...o}}let i=L(t);return i?{author:i,source:"configured",...o}:o.harness?{author:`harness:${o.harness}`,source:"detected",...o}:{author:"unknown",source:"unknown",...o}}function Io(e){let t=xt.getStore();return t?.author===e?t.source:e.startsWith("harness:")?"detected":e==="unknown"?"unknown":"asserted"}function xo(e){let t=xt.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 To(e){let t=xt.getStore();return t?.author===e&&t.source==="detected"&&t.instance?`${e}#${t.instance}`:e}function Oo(e,t){let n=ua(e,t);return xt.enterWith(n),n.author}import fa from"node:crypto";import{AsyncLocalStorage as ma}from"node:async_hooks";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="cc84ae55-6dc4-57d4-b7de-c43ae1fb4603")}catch{}})();var Co=new ma,Ao=1024;function Ro(){let e=Co.getStore();if(e===void 0)return;let t=new Date(Date.parse(e.clock)+e.clockReads*e.tickMs).toISOString();return e.clockReads+=1,t}function No(e){let t=Co.getStore();if(t===void 0)return;if(!Number.isSafeInteger(e)||e<0||e>Ao)throw new Error(`Reproducible token length must be an integer between 0 and ${Ao}`);let n="";for(;n.length<e;){let r=fa.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 _a=/^([+-]?)(\d+)([hdwm])$/i,pa=/^[+-]?\d+[hdwm](?:[+-]\d+[hdwm])+$/i,ya=/^(\d{4})(\d{2})(\d{2})$/,ha=/^(\d{4})(\d{2})(\d{2})(?:[T\s]?)(\d{2})(\d{2})(\d{2})?([.,]\d{1,3})?(Z|[+-]\d{2}:?\d{2})?$/i,ga=/^(\d{4}-\d{2}-\d{2})[T\s](\d{2})-(\d{2})(?:-(\d{2}))?([.,]\d{1,3})?(Z|[+-]\d{2}:?\d{2})?$/i,ba=/^(\d{4}-\d{2}-\d{2})[T\s](\d{2})(\d{2})(\d{2})?([.,]\d{1,3})?(Z|[+-]\d{2}:?\d{2})?$/i;function ke(){return Ro()??new Date().toISOString()}function se(e){return Number.isFinite(Date.parse(e))}var wa=1e4,At=new Map;function Do(e){let t=At.get(e);if(t!==void 0)return t;let n=Date.parse(e);return At.size>=wa&&Et(At),At.set(e,n),n}function $(e,t){let n=Do(e),r=Do(t);return Number.isFinite(n)&&Number.isFinite(r)&&n!==r?n-r:e.localeCompare(t)}function cm(e,t){return!(t.deadlineBefore&&(!e.deadline||$(e.deadline,t.deadlineBefore)>0)||t.deadlineAfter&&(!e.deadline||$(e.deadline,t.deadlineAfter)<0)||t.updatedAfter&&$(e.updated_at,t.updatedAfter)<0||t.updatedBefore&&$(e.updated_at,t.updatedBefore)>0||t.createdAfter&&$(e.created_at,t.createdAfter)<0||t.createdBefore&&$(e.created_at,t.createdBefore)>0)}function Hn(e){return e?`.${e.slice(1).padEnd(3,"0").slice(0,3)}`:""}function Wn(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 Ea(e,t,n){n&&n!==t&&(e.includes(n)||e.push(n))}function ka(e){let t=[],n=l=>Ea(t,e,l),r=ya.exec(e);if(r){let[,l,f,u]=r;n(`${l}-${f}-${u}`)}let o=ha.exec(e);if(o){let[,l,f,u,y,p,w,S,E]=o,C=w?`:${w}`:"";n(`${l}-${f}-${u}T${y}:${p}${C}${Hn(S)}${Wn(E)}`)}let i=ga.exec(e);if(i){let[,l,f,u,y,p,w]=i,S=y?`:${y}`:"";n(`${l}T${f}:${u}${S}${Hn(p)}${Wn(w)}`)}let s=ba.exec(e);if(s){let[,l,f,u,y,p,w]=s,S=y?`:${y}`:"";n(`${l}T${f}:${u}${S}${Hn(p)}${Wn(w)}`)}let a=10,c=e.slice(0,a);if(Sa(c)){let l=a;for(;l<e.length&&Ia(e[l]);)l+=1;l<e.length&&n(`${c}T${e.slice(l)}`)}return t}function va(e){let t=Date.parse(e);if(Number.isFinite(t))return t;for(let n of ka(e)){let r=Date.parse(n);if(Number.isFinite(r))return r}return Number.NaN}function Sa(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 Ia(e){return e?e===" "||e===" "||e===`
3
- `||e==="\r"||e==="\f"||e==="\v":!1}function Mo(e,t){return new Date(Date.UTC(e,t+1,0)).getUTCDate()}var xa=["January","February","March","April","May","June","July","August","September","October","November","December"],Ta=/^(\d{4})-(\d{2})-(\d{2})/,Oa=/^(\d{4})(\d{2})(\d{2})(?:[T ]?\d{2}|$)/;function Aa(e,t,n){let r=Ta.exec(t)??Oa.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=Mo(o,i-1);if(s<1||s>c)throw new T(`Invalid ${a} value "${e}". ${xa[i-1]} ${o} has ${c} days, so day "${r[3]}" does not exist. Use a real YYYY-MM-DD calendar date.`,I.USAGE)}function Ca(e,t){let n=new Date(e.getTime()),r=n.getUTCDate(),o=n.getUTCMonth()+t,i=n.getUTCFullYear()+Math.floor(o/12),s=(o%12+12)%12,a=Math.min(r,Mo(i,s));return n.setUTCFullYear(i,s,a),n}function dm(e,t=new Date,n="deadline"){let r=e.trim();if(r.toLowerCase()==="now")return t.toISOString();let o=_a.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 Ca(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()}Aa(e,r,n);let i=va(r);if(!Number.isFinite(i)){let s=n.trim().length>0?n.trim():"deadline",a=pa.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 Ae=1,Lo=1;function um(e){let t=e.pm_format_version;return typeof t=="number"&&Number.isInteger(t)&&t>=Ae?t:Ae}function Po(e){if(!(typeof e!="number"||!Number.isInteger(e)||e<=Ae))return e}function Ra(e,t=Lo){return e<t?"outdated":e>t?"ahead":"current"}function fm(e,t=Lo){let n=[],r=[];for(let o of e){let i=Ra(o.version,t);i==="outdated"?n.push(o.ref):i==="ahead"&&r.push(o.ref)}return{outdated:n.sort((o,i)=>o.localeCompare(i)),ahead:r.sort((o,i)=>o.localeCompare(i))}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="d7501aa2-d3d9-5fbe-a1c0-d4bc145f5563")}catch{}})();var Na={"in-progress":"in_progress",cancelled:"canceled"};function Ct(e,t){if(t){let o=fo(e,t);if(o)return o}if(typeof e!="string")return;let n=e.trim().toLowerCase();if(!n)return;let r=Na[n]??n;if(mt.includes(r))return r}function Da(e,t){return Ct(e,t)??e}function ym(e,t){return t.terminal_statuses.has(Da(e,t))}import{encode as za}from"@toon-format/toon";import{isDeepStrictEqual as Uo}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 Bn(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 Ma(e){return[...new Set([_o(e),Bn(e.key),Bn(e.cli_flag),...e.cli_aliases.map(t=>Bn(t))])]}function $o(e,t){for(let n of Ma(t)){if(!Object.hasOwn(e,n))continue;let r=e[n];if(r!==void 0)return r}}function zo(e){return Array.isArray(e)?e.flatMap(t=>zo(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 jo(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 Fo(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 La(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 Xe(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:La(i,r,e.type)}if(e.repeatable||e.type==="string_array"){let i=zo(t);return e.type==="number"?i.map(s=>Fo(s,r)):e.type==="boolean"?i.map(s=>jo(s,r)):i}let o=Array.isArray(t)?t[t.length-1]:t;if(o!==void 0)return e.type==="number"?Fo(o,r):e.type==="boolean"?jo(o,r):typeof o=="string"?o:String(o)}function Pa(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 Em(e,t,n){let r={},o=[];for(let i of t.command_to_fields.get("create")??[]){let s=$o(e,i);if(s===void 0){Pa(i,n)&&o.push(`--${i.cli_flag}`);continue}r[i.metadata_key]=Xe(i,s)}return{values:r,missing_required_flags:[...new Set(o)].sort((i,s)=>i.localeCompare(s))}}function km(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=$o(e,s);a!==void 0&&(i.has(s.metadata_key)||(i.add(s.metadata_key),r[s.metadata_key]=Xe(s,a)))}return r}import{decode as ja}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 qn(e){return{value:ja(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 Fa=/^\s*(<<<<<<<|=======|>>>>>>>)(?:\s.*)?$/;function $a(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(Fa);if(!i)continue;let s=i[1];n.push({line:r+1,marker:s,text:o})}return n}function Rt(e){return $a(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 Ua=new Set(["schema","tracker","auto"]),Ha=new Set(["passed","failed","stopped","canceled"]),Wa=new Set(Vr);function Ne(e){return e.replaceAll("\\","/")}function Bo(e){for(let t of e)if(t!==0)return t;return 0}function Nt(e){for(let[t,n]of Object.entries(e))n===void 0&&delete e[t]}var qo=["id","title","description","created_at","updated_at"],Ba=new Set(ie);function Vo(e){if(e?.schema)return{statusRegistry:uo(e.schema),fieldRegistry:mo(e.schema),unknownFieldPolicy:e.schema.unknown_field_policy??"allow",extensionFieldNames:new Set(e.extensionFieldNames??[]),onWarning:e.onWarning}}function qa(e,t){return e.required?e.required_types.length===0?!0:e.required_types.map(n=>n.toLowerCase()).includes(t.trim().toLowerCase()):!1}function ae(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 Ye(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 Go(e){let t=new Set(Ba);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||ae(t)}function Qe(e,t){return(typeof e!="object"||e===null||Array.isArray(e))&&ae(t),e}function Vn(e,t){let n=e[t];g(typeof n=="string",`${t} must be a string`),g(se(n),`${t} must be a valid ISO timestamp`)}function Ho(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 Kn(e,t,n){let r=e[t];r!==void 0&&(g(typeof r=="string",`${n} must be a string`),g(se(r),`${n} must be a valid ISO timestamp`))}function Va(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(ht.includes(n),`event.recurrence.by_weekday entries must be one of: ${ht.join(", ")}`)}}}function Ga(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 Xa(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(se(t),"event.recurrence.exdates entries must be valid ISO timestamps")}}function Ka(e){let t=Qe(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(yt.includes(n),`event.recurrence.freq must be one of: ${yt.join(", ")}`),Ho(t,"interval","event.recurrence.interval"),Ho(t,"count","event.recurrence.count"),Kn(t,"until","event.recurrence.until"),Va(t.by_weekday),Ga(t.by_month_day),Xa(t.exdates)}function Ja(e){for(let r of qo)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>=Ae,`pm_format_version must be an integer >= ${Ae}`),t}function Ya(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=Ct(n,r),i=r?r.definitions.map(s=>s.id):[...mt];g(o!==void 0,`status must be one of: ${i.join(", ")}`)}function Qa(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 Za(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"||pt.includes(n);g(r,`confidence string value must be one of: ${[...pt,"med"].join(", ")}`);return}g(!1,"confidence must be a number or string")}}function ec(e){let t=e.severity;if(t===void 0)return;typeof t!="string"&&ae("severity must be a string");let n=t.trim().toLowerCase(),r=n==="med"||_t.includes(n);g(r,`severity value must be one of: ${[..._t,"med"].join(", ")}`)}function tc(e){e.regression!==void 0&&typeof e.regression!="boolean"&&ae("regression must be a boolean")}function nc(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=Qe(n,"reminders entries must be objects");g(typeof r.at=="string","reminder.at must be a string"),g(se(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 rc(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 oc(e){e.recurrence!==void 0&&(Ka(e.recurrence),e.recurrence.until!==void 0&&g($(e.recurrence.until,e.start_at)>=0,"event.recurrence.until must be at or after event.start_at"))}function ic(e){let t=Qe(e,"events entries must be objects");g(typeof t.start_at=="string","event.start_at must be a string"),g(se(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(se(t.end_at),"event.end_at must be a valid ISO timestamp"),g($(t.end_at,t.start_at)>0,"event.end_at must be after event.start_at")),rc(t),t.all_day!==void 0&&g(typeof t.all_day=="boolean","event.all_day must be a boolean"),oc(t)}function sc(e){let t=e.events;if(t!==void 0){g(Array.isArray(t),"events must be an array");for(let n of t)ic(n)}}function ac(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 cc(e){let t=e.type_options;if(t===void 0)return;let n=Qe(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 dc(e,t,n){if(n?.fieldRegistry)for(let r of n.fieldRegistry.definitions){let o=e[r.metadata_key];if(o===void 0){qa(r,t)&&ae(`missing required schema field: ${r.metadata_key}`);continue}try{e[r.metadata_key]=Xe(r,o,`metadata field "${r.metadata_key}"`)}catch(i){ae(String(i?.message).replace(/^Invalid\s+/u,""))}}}function lc(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let n=Go(t),r=Object.keys(e).filter(o=>!n.has(o)).sort((o,i)=>o.localeCompare(i));r.length!==0&&(t.unknownFieldPolicy==="reject"?ae(`unknown schema fields are not allowed: ${r.join(", ")}`):t.onWarning?.(`item_unknown_schema_fields:${r.join(",")}`))}function Jn(e,t){let n=Qe(e,"item metadata must be an object"),r=Ja(n);Ya(n,t),Qa(n),Za(n),ec(n),tc(n),Vn(n,"created_at"),Vn(n,"updated_at"),n.deadline!==void 0&&Vn(n,"deadline"),nc(n),sc(n),Kn(n,"closed_at","closed_at"),Kn(n,"completed_at","completed_at"),ac(n),cc(n),dc(n,r,t),lc(n,t)}function uc(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=$(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 Gn(e){if(!(!e||e.length===0))return[...e].sort((t,n)=>{let r=$(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 fc(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=$(n.at,r.at);return o!==0?o:n.text.localeCompare(r.text)});return t.length===0?void 0:t}function mc(e){if(!e)return;let t=e.freq.trim().toLowerCase();if(!yt.includes(t))return;let n=Array.from(new Set((e.by_weekday??[]).map(s=>s.trim().toLowerCase()).filter(s=>ht.includes(s)))).sort((s,a)=>wn(s)-wn(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=>se(s)))).sort((s,a)=>$(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 _c(e){return!Array.isArray(e)||e.length===0?void 0:[...e].map(pc).sort(yc)}function pc(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:mc(e.recurrence)};return Nt(t),t}function yc(e,t){return Bo([$(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 hc(e){if(!(!e||e.length===0))return e.map(t=>({path:Ne(t.path),scope:t.scope,note:t.note?.trim()||void 0}))}function gc(e){if(!e||e.length===0)return;let t=e.map(Ec).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)=>Bo([$(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 Ce(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?Math.floor(e):void 0}function bc(e){return typeof e=="number"&&Number.isFinite(e)&&e>=1?Math.floor(e):void 0}function Xn(e){return typeof e=="string"?e:""}function wc(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 Ec(e){let t=typeof e.run_id=="string"?e.run_id.trim():"",n=e.kind==="test"||e.kind==="test-all"?e.kind:"test",r=Ha.has(e.status)?e.status:"failed",o={run_id:t,kind:n,status:r,started_at:Xn(e.started_at),finished_at:Xn(e.finished_at),recorded_at:Xn(e.recorded_at),attempt:bc(e.attempt),resumed_from:e.resumed_from?.trim()||void 0,passed:Ce(e.passed)??0,failed:Ce(e.failed)??0,skipped:Ce(e.skipped)??0,items:Ce(e.items),linked_tests:Ce(e.linked_tests),fail_on_skipped_triggered:e.fail_on_skipped_triggered===!0?!0:void 0,measurements:wc(e.measurements)};return Nt(o),o}function kc(e){if(!(!Array.isArray(e)||e.length===0))return e.map(Ic)}function Ke(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 Xo(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function Qn(e){return e==="__proto__"||e==="constructor"||e==="prototype"}function Wo(e){if(!Xo(e))return;let t=Object.entries(e).map(([n,r])=>[n.trim(),String(r).trim()]).filter(([n,r])=>n.length>0&&!Qn(n)&&r.length>0).sort(([n],[r])=>n.localeCompare(r));return t.length>0?Object.fromEntries(t):void 0}function vc(e){if(!Xo(e))return;let t=Object.entries(e).map(([n,r])=>[n.trim(),Number(r)]).filter(([n,r])=>n.length>0&&!Qn(n)&&Number.isFinite(r)).sort(([n],[r])=>n.localeCompare(r));return t.length>0?Object.fromEntries(t):void 0}function Sc(e){let t=e?.trim().toLowerCase();if(!(!t||!Ua.has(t)))return t}function Ic(e){let t={command:e.command?.trim()||void 0,path:e.path?Ne(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:Sc(e.pm_context_mode),env_set:Wo(e.env_set),env_clear:Ke(e.env_clear),shared_host_safe:e.shared_host_safe===!0?!0:void 0,assert_stdout_contains:Ke(e.assert_stdout_contains),assert_stdout_regex:Ke(e.assert_stdout_regex),assert_stderr_contains:Ke(e.assert_stderr_contains),assert_stderr_regex:Ke(e.assert_stderr_regex),assert_stdout_min_lines:Ce(e.assert_stdout_min_lines),assert_json_field_equals:Wo(e.assert_json_field_equals),assert_json_field_gte:vc(e.assert_json_field_gte),note:e.note?.trim()||void 0};return Nt(t),t}function xc(e){if(!(!e||e.length===0))return[...e].map(t=>({path:Ne(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 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.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 Oc(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:Ne(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 Ac(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=h(r.command),i=h(r.path);if(!o&&!i)continue;let s={};o&&(s.command=o),i&&(s.path=Ne(i));let a=h(r.note);a&&(s.note=a),t.push(s)}return t.length>0?t:void 0}function Cc(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:Ne(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 Rc(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&&Wa.has(o)?o:void 0,s=eo(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 Nc(l,t),l}function Nc(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",Tc],["files","files",Oc],["tests","tests",Ac],["docs","docs",Cc]];for(let[i,s,a]of o){let c=a(t[s]);c&&(e[i]=c)}}function Dc(e){if(!Array.isArray(e))return;let t=e.flatMap(n=>{let r=Rc(n);return r?[r]:[]});return t.sort((n,r)=>n.order-r.order),t.length>0?t:void 0}function Mc(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 f=h(r.step_id);f&&(a.step_id=f),t.push(a)}return t.length>0?t:void 0}function Lc(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 Pc(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 jc(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 Re(e){let t=0;for(;t<e.length&&e[t]===`
4
- `;)t+=1;return e.slice(t).trimEnd()}function Fc(e){if(e===void 0)return;if(typeof e=="number")return e;let t=e.trim().toLowerCase();if(t==="med")return"medium";if(pt.includes(t))return t}function $c(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(t==="med")return"medium";if(_t.includes(t))return t}function Je(e){return e||void 0}function zc(e,t){let n=e,r=t;for(let[o,i]of Object.entries(r))Qn(o)||Object.prototype.hasOwnProperty.call(n,o)||i===void 0||(n[o]=i)}function Uc(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]=Xe(r,o,`metadata field "${r.metadata_key}"`))}}function Hc(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let n=Go(t),o=Object.keys(e).filter(i=>!n.has(i)).sort((i,s)=>i.localeCompare(s));o.length>0&&t.unknownFieldPolicy==="reject"&&ae(`unknown schema fields are not allowed: ${o.join(", ")}`),o.length>0&&t.onWarning?.(`item_unknown_schema_fields:${o.join(",")}`)}function Dt(e,t={}){let n=Vo(t),r=Ct(e.status,n?.statusRegistry)??e.status,o=Array.from(new Set((Array.isArray(e.tags)?e.tags:[]).filter(s=>typeof s=="string").map(s=>s.trim().toLowerCase()).filter(Boolean))).sort((s,a)=>s.localeCompare(a)),i={id:e.id,title:e.title,description:e.description,type:e.type,pm_format_version:Po(e.pm_format_version),source_type:h(e.source_type),type_options:jc(e.type_options),status:r,priority:e.priority,tags:o,created_at:e.created_at,updated_at:e.updated_at,dependencies:uc(e.dependencies),comments:Gn(e.comments),notes:Gn(e.notes),learnings:Gn(e.learnings),files:hc(e.files),tests:kc(e.tests),test_runs:gc(e.test_runs),docs:xc(e.docs),deadline:Je(e.deadline),reminders:fc(e.reminders),events:_c(e.events),closed_at:Je(e.closed_at),completed_at:Je(e.completed_at),assignee:h(e.assignee),claim_principal:h(e.claim_principal),source_owner:h(e.source_owner),author:Je(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:Fc(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:$c(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:Je(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:Dc(e.plan_steps),plan_decisions:Mc(e.plan_decisions),plan_discoveries:Lc(e.plan_discoveries),plan_validation:Pc(e.plan_validation)};return zc(i,e),Uc(i,n),Hc(i,n),Nt(i),i}function Ko(e){return k(e,ie)}function Wc(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 Bc(e){if(!e.startsWith("{"))return{frontMatter:"",body:e};let t=Wc(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 qc(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 Yn(e,t){return Dt(e,{...t,onWarning:void 0})}function Vc(e,t,n={}){let r=qc(e);r.stripped&&n.onWarning?.("json_markdown_leading_yaml_frontmatter_ignored");let{frontMatter:o,body:i}=Bc(r.content);o||(e.trimStart().startsWith("{")&&Ye("json_markdown","JSON front matter is not valid JSON"),Ye("json_markdown","JSON Markdown item document is missing JSON front matter"));let s;try{s=JSON.parse(o)}catch{Ye("json_markdown","JSON front matter is not valid JSON")}return Jn(s,t),{metadata:Yn(s,n),body:Re(i)}}function Gc(e,t,n={}){let r;try{r=qn(e).value}catch{Ye("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(!qo.some(a=>Object.prototype.hasOwnProperty.call(o,a))&&!Object.prototype.hasOwnProperty.call(o,"front_matter")&&Ye("toon","TOON input does not have the shape of an item document"),Object.prototype.hasOwnProperty.call(o,"front_matter"))return Jn(o.front_matter,t),g(o.body===void 0||typeof o.body=="string","TOON item document body must be a string"),{metadata:Yn(o.front_matter,n),body:Re(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"),Jn(s,t),{metadata:Yn(s,n),body:Re(typeof i=="string"?i:"")}}function Xc(e,t={}){let n=Dt(e.metadata,t),r=Ko(n),o=JSON.stringify(r,null,2),i=Re(e.body??"");return i?`${o}
6
-
7
- ${i}
8
- `:`${o}
9
- `}function Kc(e,t={}){let n=Dt(e.metadata,t),r=Ko(n),o=Re(e.body??""),i={...r,body:o},s=JSON.parse(JSON.stringify(i)),a=za(s),c;try{c=qn(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(!Uo(c,s)){let l=typeof c=="object"&&c!==null&&!Array.isArray(c)?c:{},f=Object.keys(s).find(u=>!Uo(s[u],l[u]))??"document";throw new T(`Refusing to persist a lossy TOON item document; round-trip mismatch at field "${f}".`,I.GENERIC_FAILURE,{code:"item_document_roundtrip_failed",reason:"encode_decode_mismatch",format:"toon",field:f,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 Mt(e,t={}){let n=Rt(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=Vo(t);return r==="toon"?Gc(e,o,t):Vc(e,o,t)}function Jo(e,t={}){return(t.format??"toon")==="toon"?Kc(e,t):Xc(e,t)}function B(e,t={}){return{metadata:Dt(e.metadata,t),body:Re(e.body??"")}}import{existsSync as Yc}from"node:fs";import{AsyncLocalStorage as Qc}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 qm(){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 Jc(){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 De=null,Qo=null,Zc=null,ed=null,Zn=null,td=null,Zo=null,nd=null;var rd=[],ei=new Qc;function P(){return ei.getStore()}function o_(e){return ei.run({hooks:null,commands:null,parsers:null,preflight:null,services:null,renderers:null,registrations:null,commandContext:null,commandResult:void 0,affectedItems:[]},e)}var od=new Set(["body","comments","dependencies","docs","events","files","learnings","notes","reminders","test_runs","tests"]);function Yo(e){let t=Z.resolve(e);for(;;){if(Yc(Z.join(t,".git")))return t;let n=Z.dirname(t);if(n===t)return;t=n}}function id(e){let t=process.env.PM_SOURCE_WORKSPACE_ROOT?.trim()||process.cwd(),n=Yo(t)??Z.resolve(t),r=Yo(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 i_(e){let t=P();if(t){t.hooks=e;return}De=e}function s_(e){let t=P();if(t){t.commands=e;return}Qo=e}function a_(e){let t=P();if(t){t.parsers=e;return}Zc=e}function c_(e){let t=P();if(t){t.preflight=e;return}ed=e}function d_(e){let t=P();if(t){t.services=e;return}Zn=e}function l_(e){let t=P();if(t){t.renderers=e;return}td=e}function u_(e){let t=P();if(t){t.registrations=e;return}Zo=e}function Ze(){let e=P();return e?e.registrations:Zo}function er(e){if(!e)return;let t=P();t?t.affectedItems.push(e):rd.push(e)}function Lt(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"||od.has(i)||Object.hasOwn(r,i)&&r[i]!==void 0&&(n[i]=r[i])}return n}async function q(e){let t=P(),n=t?t.hooks:De;return n?no(n,e):[]}async function tr(e){let t=P(),n=t?t.hooks:De;n&&await to(n,e)}async function K(e){let t=P(),n=t?t.hooks:De;return n?ro(n,e):[]}function nr(){let e=P();return((e?e.hooks:De)?.onRead?.length??0)>0}async function f_(e){let t=P(),n=t?t.hooks:De;return n?oo(n,e):[]}async function m_(e){let t=P(),n=t?t.commands:Qo;return n?io(n,{...e,...id(e.pm_root)}):{handled:!1,result:null,warnings:[]}}function ti(e,t){let n=P(),r=n?n.commandContext:nd;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=P(),r=n?n.services:Zn;return r?ao(r,ti(e,t)):{handled:!1,result:t,warnings:[]}}function ni(e,t){let n=P(),r=n?n.services:Zn;return r?so(r,ti(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 et(e,t){let n=await he(e);if(n===null)return[];if(await K({path:e,scope:"project"}),n.trim()==="")return[];let r=Rt(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 _r 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 gi from"fast-json-patch";import ce from"node:fs/promises";import te from"node:path";import{randomUUID as sd}from"node:crypto";import{createRequire as ad}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 cd="history-event-index.sqlite",rr="2";function Ft(e){return te.join(e,"runtime",cd)}function dd(e){try{return e(["node","sqlite"].join(":")).DatabaseSync??null}catch{return null}}function ld(e,t){let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>=22?dd(t):null}var Pt;function or(){return Pt!==void 0||(Pt=ld(process.versions.node,ad(import.meta.url))),Pt}function ud(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(rr)}function ri(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 R_(e){let t=or();if(!t)return!1;let n=te.join(e,"history"),o=(await ce.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=Ft(e);await ce.mkdir(te.dirname(i),{recursive:!0});let s=`${i}.${sd()}.tmp`,a;try{a=new t(s),ud(a),a.exec("BEGIN IMMEDIATE");for(let c of o){let l=c.name.slice(0,-6),f=await et(te.join(n,c.name),l);for(let[u,y]of f.entries())ri(a,{stream_id:l,stream_offset:u,entry:y})}return a.exec("COMMIT"),a.close(),a=void 0,await ce.rm(i,{force:!0}),await ce.rename(s,i),!0}catch(c){throw a?.close(),await ce.rm(s,{force:!0}),c}}async function oi(e,t){let n=te.dirname(te.dirname(e)),r=Ft(n);try{await ce.access(r)}catch{return}let o=or();if(!o)return;let i;try{if(i=new o(r),i.prepare("SELECT value FROM metadata WHERE key = 'version'").get()?.value!==rr)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);ri(i,{stream_id:a,stream_offset:Number(c.value),entry:t}),i.close()}catch{i?.close(),await ce.rm(r,{force:!0})}}async function $t(e){await ce.rm(Ft(te.dirname(te.dirname(e))),{force:!0})}function jt(e,t,n,r){!r||r.length===0||(e.push(`${n} IN (${r.map(()=>"?").join(", ")})`),t.push(...r))}function fd(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 N_(e,t){let n=or();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)),jt(r,o,"op",t.ops),jt(r,o,"author",t.authors),fd(r,o,t.harnesses,t.harness_alias_authors),jt(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);jt(r,o,"stream_id",t.stream_ids);let i=r.length===0?"":` WHERE ${r.join(" AND ")}`,s;try{if(s=new n(Ft(e),{readOnly:!0}),s.prepare("SELECT value FROM metadata WHERE key = 'version'").get()?.value!==rr)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,f=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:f,has_more:l}}catch{return s?.close(),null}}import ur from"node:fs/promises";import Le 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 zt="changed_fields",md="changed_field_count",ir="rows",_d=new Set(["apply","rollback"]),ii=new Set(["deleted","would_delete"]);function ve(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function si(e){let t=e[zt];if(!Array.isArray(t))return null;let n=Object.getPrototypeOf(e)===null?Object.create(null):{};for(let[r,o]of Object.entries(e))r!==zt&&(n[r]=o);return n[md]=t.length,n}function pd(e){return"item"in e&&Array.isArray(e[zt])}function yd(e){return typeof e.mode=="string"&&_d.has(e.mode)&&Array.isArray(e[ir])}function hd(e,t){let n=Object.getPrototypeOf(e)===null?Object.create(null):{};return Object.assign(n,e),n[ir]=t,n}function gd(e){if(!ve(e))return null;let t=ve(e.item)?e.item:ve(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"&&ii.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 bd(e){if(!ve(e)||!ve(e.item)||typeof e.item.id!="string")return null;let t=e[zt];if(!Array.isArray(t))return null;let n={id:e.item.id,...typeof e.outcome=="string"&&ii.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 wd(e){let t=yd(e)?e[ir]:void 0;if(!Array.isArray(t))return{projected:e,changed:!1};let n=!1,r=t.map(o=>{if(!ve(o))return o;let i=si(o);return i?(n=!0,i):o});return n?{projected:hd(e,r),changed:!0}:{projected:e,changed:!1}}function Ed(e,t={}){if(t.idOnly===!0){let a=gd(e);if(a!==null)return a}if(t.compactEnvelope===!0){let a=bd(e);if(a!==null)return a}if((t.changedFields??"full")==="full"||!ve(e))return e;let r=!1,o=e,i=pd(e)?si(e):null;i!==null&&(o=i,r=!0);let s=wd(o);return s.changed&&(o=s.projected,r=!0),r?o:e}import{encode as di}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]="5aaf8b90-5b95-5102-9ea4-b877c696d593")}catch{}})();var Q_=new Set(Object.values(I));var ai=!1;function Me(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function sr(e){return typeof e=="object"&&e!==null&&e.code==="EPIPE"}function kd(){(process.exitCode===void 0||process.exitCode===I.SUCCESS)&&(process.exitCode=I.SUCCESS)}function vd(){(process.exitCode===void 0||process.exitCode===I.SUCCESS)&&(process.exitCode=I.GENERIC_FAILURE)}function ar(e){if(e==="stdout"){kd();return}vd()}function ci(e){let t=e instanceof Error?e:new Error(String(e));setImmediate(()=>{throw t})}function Sd(){ai||(ai=!0,process.stdout.on("error",e=>{if(sr(e)){ar("stdout");return}ci(e)}),process.stderr.on("error",e=>{if(sr(e)){ar("stderr");return}ci(e)}))}function Id(e,t){Sd();try{return e==="stdout"?process.stdout.write(t):process.stderr.write(t),!0}catch(n){if(sr(n))return ar(e),!1;throw n}}function Ut(e){return Id("stderr",e)}function cr(e){return typeof e=="string"?JSON.stringify(e):typeof e=="number"||typeof e=="boolean"?String(e):e===null?"null":JSON.stringify(e)}function xd(e){return e===null||typeof e=="string"||typeof e=="number"||typeof e=="boolean"}function li(e){if(e.length===0||!e.every(Me))return!1;let t=Object.keys(e[0]);return t.length>0&&e.every(n=>Object.keys(n).length===t.length&&t.every(r=>Object.hasOwn(n,r)&&xd(n[r])))}function ui(e,t){let n=" ".repeat(t);return e.split(`
45
- `).map(r=>`${n}${r}`).join(`
46
- `)}function Td(e,t,n){let r=" ".repeat(n);return!Me(t)&&!Array.isArray(t)?`${r}${e}: ${cr(t)}`:Array.isArray(t)&&t.length===0?`${r}${e}: []`:Array.isArray(t)&&li(t)?ui(di({[e]:t}),n):Me(t)&&Object.keys(t).length===0?`${r}${e}: {}`:`${r}${e}:
47
- ${lr(t,n+1)}`}function dr(e){if(e!=null){if(Array.isArray(e)){let t=e.map(n=>dr(n)).filter(n=>n!==void 0);return t.length>0?t:void 0}if(Me(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=dr(r);o!==void 0&&(t[n]=o)}return Object.keys(t).length>0?t:void 0}return e}}function lr(e,t){let n=" ".repeat(t);if(Array.isArray(e))return e.length===0?"[]":li(e)?ui(di(e),t):e.map(r=>{if(!Me(r)&&!Array.isArray(r))return`${n}- ${cr(r)}`;let i=lr(r,t+1).split(`
48
- `),[s,...a]=i;return a.length===0?`${n}- ${s.trimStart()}`:`${n}- ${s.trimStart()}
49
- ${a.join(`
50
- `)}`}).join(`
51
- `);if(Me(e)){let r=Object.entries(e);return r.length===0?"{}":r.map(([o,i])=>Td(o,i,t)).join(`
52
- `)}return`${n}${cr(e)}`}function Z_(e,t){if(t==="json")return`${JSON.stringify(e,null,2)}
53
- `;let n=dr(e);return n===void 0?`{}
54
- `:`${lr(n,0)}
55
- `}function ep(e){let t=ni("error_format",{message:e}),n=t.handled&&typeof t.result=="string"?t.result:e;Ut(n.endsWith(`
56
- `)?n:`${n}
57
- `)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="5121b339-6594-58ec-b479-11cbf7dafd27")}catch{}})();var Od=Le.join("runtime","history-drift-cache.json"),fi={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 mi(e){return typeof e=="object"&&e!==null&&"code"in e&&typeof e.code=="string"?e.code:void 0}async function Ad(e){let t=Le.join(e,Od),n=!1,r="invalid_cache_path";try{n=(await ur.stat(await ur.realpath(e))).isDirectory()}catch(o){let i=mi(o);r=i===void 0?"unknown":fi[i]??"filesystem_error"}if(!n){Ut(`[pm] warning: history_drift_cache_invalidation_failed:${r}
58
- `);return}try{await ur.rm(t,{force:!0})}catch(o){let i=mi(o);if(ye(o))return;let s=i===void 0?"unknown":fi[i]??"filesystem_error";Ut(`[pm] warning: history_drift_cache_invalidation_failed:${s}
59
- `)}}async function tt(e){let t=Le.dirname(Le.resolve(e));Le.basename(t)==="history"&&await Ad(Le.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]="2fc7f675-3500-5abb-8d5c-9ca9caa803b6")}catch{}})();var Rd={front_matter:{},body:""},J=2,Bt=[1,2];function Ht(e,t){return(e??"").localeCompare(t??"")}function _i(e,t){return(e??0)-(t??0)}function de(e,t,n){return JSON.stringify(e??n).localeCompare(JSON.stringify(t??n))}function Nd(e,t){return[e.scope.localeCompare(t.scope),Ht(e.path,t.path),Ht(e.command,t.command),_i(e.timeout_seconds,t.timeout_seconds),Ht(e.pm_context_mode,t.pm_context_mode),+!!e.shared_host_safe-+!!t.shared_host_safe,de(e.env_clear,t.env_clear,[]),de(e.env_set,t.env_set,{}),de(e.assert_stdout_contains,t.assert_stdout_contains,[]),de(e.assert_stdout_regex,t.assert_stdout_regex,[]),de(e.assert_stderr_contains,t.assert_stderr_contains,[]),de(e.assert_stderr_regex,t.assert_stderr_regex,[]),_i(e.assert_stdout_min_lines,t.assert_stdout_min_lines),de(e.assert_json_field_equals,t.assert_json_field_equals,{}),de(e.assert_json_field_gte,t.assert_json_field_gte,{}),Ht(e.note,t.note)].find(r=>r!==0)??0}function Dd(e){return!e||e==="/"?[]:e.startsWith("/")?e.slice(1).split("/").map(t=>t.replaceAll("~1","/").replaceAll("~0","~")):[]}function Md(e,t){let n=Dd(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 Ld(e,t){let n=[],r=structuredClone(e);for(let o of t){let i=o.op==="replace"&&!Md(r,o.path)?{...o,op:"add"}:o;n.push(i),r=gi.applyPatch(r,[i],!0,!0).newDocument}return n}function fr(e,t){if(!(e.metadata&&Object.keys(e.metadata).length>0))return{front_matter:{},body:e.body??""};let r=B(e),o=t===1&&r.metadata.tests?{...r.metadata,tests:[...r.metadata.tests].sort(Nd)}:r.metadata;return{front_matter:k(o,ie),body:r.body}}function pi(e){if(!(e.metadata&&Object.keys(e.metadata).length>0))return{metadata:{},body:e.body??""};let n=B(e);return{metadata:k(n.metadata,ie),body:n.body}}function gp(e){return mr(e,J)}function mr(e,t){if(!Bt.some(n=>n===t))throw new TypeError(`unsupported_item_hash_version:${String(t)}`);return ge(G(fr(e,t)))}function bp(){return ge(G(Rd))}function Pe(e){let t=fr(e.before,J),n=fr(e.after,J),r=pi(e.before),o=pi(e.after),i=gi.compare(r,o),s=Ld(r,i),a=xo(e.author),c=a.harness?Object.fromEntries(Object.entries(So().provenance_outcomes).filter(([,f])=>f.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??Io(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:ge(G(t)),after_hash:ge(G(n)),item_hash_version:J,message:e.message===void 0?void 0:e.message,...l===void 0?{}:{context:l}}}function yi(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Pd(e){let t=e.ts.trim();return t.length>0?t:ke()}function hi(e,t){let n=e.ts;return typeof n=="string"&&n.trim().length>0?e:{...e,ts:t}}function Wt(e,t){let n=Pd(t);if(typeof e=="string"){try{let r=JSON.parse(e);if(yi(r))return JSON.stringify(hi(r,n))}catch{}return e}return yi(e)?JSON.stringify(hi(e,n)):JSON.stringify(e)}async function je(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 We(e,Wt(n.result,t)),await tt(e),await $t(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 We(o,Wt(r.line,t)),await tt(o),await $t(o);return}await We(o,Wt(r.entry??t,t)),await tt(o),await $t(o);return}}await We(e,Wt(t,t)),await tt(e),await oi(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]="a1283470-00c7-5e91-8676-e1c1a667537f")}catch{}})();var jd={metadata:{},body:""};function Vt(){return structuredClone(jd)}function qt(e,t=J){if(Object.keys(e.metadata).length===0||Array.isArray(e.metadata.tags))try{return mr(Gt(e),t)}catch{}return ge(G({replay_fallback:!0,metadata:e.metadata,body:e.body}))}function Gt(e){return{metadata:e.metadata,body:e.body}}function Tp(e,t={}){return B(Gt(e),t)}function Op(e){if(!e.metadata||Object.keys(e.metadata).length===0)return{metadata:{},body:e.body??""};let t=B(e);return{metadata:k(t.metadata,ie),body:t.body}}function bi(e){return e==="/front_matter"?"/metadata":e.startsWith("/front_matter/")?`/metadata/${e.slice(14)}`:e}function Fd(e){return typeof e=="object"&&e!==null&&typeof e.op=="string"&&typeof e.path=="string"}function Ei(e){return Array.isArray(e)?e.filter(Fd).map(t=>({...t,path:bi(t.path),from:typeof t.from=="string"?bi(t.from):void 0})):[]}function $d(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 Xt(e,t){try{let n=Ei(t),r=_r.applyPatch(structuredClone(e),n,!0,!1).newDocument;return $d(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 zd(e){let t=Vt(),n;for(let r=0;r<e.length;r+=1){let o=e[r],i=o.item_hash_version;if(i!==void 0&&!Bt.includes(i))return{ok:!1,errors:[`verify_failed:unsupported_item_hash_version:${String(i)}:entry_${r+1}`]};let s=Xt(t,o.patch);if(!s.ok)return{ok:!1,errors:[`verify_failed:patch_apply_failed:entry_${r+1}`]};let c=(i===void 0?[J,1]:[i]).filter(f=>qt(t,f)===o.before_hash);if(c.length===0)return{ok:!1,errors:[`verify_failed:before_hash_mismatch:entry_${r+1}`]};let l=c.find(f=>qt(s.document,f)===o.after_hash);if(l===void 0)return{ok:!1,errors:[`verify_failed:after_hash_mismatch:entry_${r+1}`]};t=s.document,n=l}return{ok:!0,errors:[],...n===void 0?{}:{item_hash_version:n}}}function pr(e){let t=zd(e);return{ok:t.ok,errors:t.errors}}function wi(e,t){try{return{ok:!0,document:_r.applyPatch(structuredClone(e),[t],!0,!1).newDocument}}catch{return{ok:!1}}}function Ud(e,t){let n=structuredClone(e),r=0,o=0;for(let a of Ei(t)){let c=wi(n,a);if(c.ok){n=c.document;continue}if(a.op==="replace"){let l=wi(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 Ap(e){let t=e.findIndex(l=>l.item_hash_version!==void 0&&!Bt.includes(l.item_hash_version));if(t>=0)throw new TypeError(`unsupported_item_hash_version:${String(e[t]?.item_hash_version)}:entry_${t+1}`);let n=Vt(),r=[],o=[],i=0,s=0,a=0,c=0;for(let l=0;l<e.length;l+=1){let f=e[l],u=qt(n,J),y=Xt(n,f.patch),p,w,S=!1,E=0,C=0;if(y.ok)p=y.document,w=f.patch;else{let M=Ud(n,f.patch);p=M.document,w=_r.compare(n,p),S=!0,E=M.convertedReplaceToAdd,C=M.skippedOps,a+=E,c+=C,s+=1}let N=qt(p,J),oe=u!==f.before_hash||N!==f.after_hash;oe&&(i+=1),r.push({...f,patch:w,before_hash:u,after_hash:N,item_hash_version:J}),o.push({index:l+1,rehashed:oe,patch_repaired:S,converted_replace_to_add:E,skipped_ops:C}),n=p}return{entries:r,finalDocument:n,entriesRehashed:i,entriesPatchRepaired:s,convertedReplaceToAdd:a,skippedOps:c,details:o}}function Cp(e){return e.length===0?"":`${e.map(t=>JSON.stringify(t)).join(`
60
- `)}
61
- `}import Hd from"node:crypto";import ki 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 Si(e){let t=(e??"").trim().toLowerCase();return t?t.endsWith("-")?t:`${t}-`:"pm-"}function yr(e){let t=e.trim().toLowerCase();return t.startsWith("#")&&(t=t.slice(1)),t}function hr(e,t){let n=Si(t),r=yr(e);return r.startsWith(n)?r:`${n}${r}`}function Wd(e){let t=No(e);if(t!==void 0)return t;let n="";for(let r=0;r<e;r+=1)n+=Hd.randomInt(0,36).toString(36);return n}async function Bd(e,t,n){let r=[...new Set(Object.values(n))].flatMap(o=>[ki.join(e,o,`${t}.md`),ki.join(e,o,`${t}.toon`)]);return(await Promise.all(r.map(o=>bt(o)))).some(Boolean)}var vi=4,Ii=12;function qd(e){return typeof e!="number"||!Number.isFinite(e)?vi:Math.min(Ii,Math.max(vi,Math.trunc(e)))}async function jp(e,t,n={}){let r=qd(n.tokenLength),o=Math.min(r+6,Ii),i=0;for(;r<=o;){for(let s=0;s<32;s+=1){let a=`${Si(t)}${Wd(r)}`;if(n.probeExisting===!1||!await Bd(e,a,n.typeToFolder??pe))return a;i+=1}r+=1}throw new Error(`Unable to generate unique id after ${i} attempts`)}import Se from"node:fs/promises";import Ti from"node:path";import{randomUUID as Vd}from"node:crypto";import{createRequire as Gd}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 Xd="metadata-query-index.sqlite",nt="4";function Kd(e){try{return e(["node","sqlite"].join(":")).DatabaseSync??null}catch{return null}}var Kt;function Jd(e,t){let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>=22?Kd(t):null}function rt(){return Kt!==void 0||(Kt=Jd(process.versions.node,Gd(import.meta.url))),Kt}function xi(e,t){return Math.max(0,Math.floor(e===void 0?t:e))}function Fe(e){return Ti.join(e,"runtime",Xd)}function Yd(e){e.exec(`
62
- PRAGMA foreign_keys = ON;
63
- PRAGMA journal_mode = OFF;
64
- PRAGMA synchronous = OFF;
65
- CREATE TABLE metadata (
66
- key TEXT PRIMARY KEY,
67
- value TEXT NOT NULL
68
- ) STRICT;
69
- CREATE TABLE items (
70
- id TEXT PRIMARY KEY,
71
- relative_path TEXT NOT NULL UNIQUE,
72
- metadata_json TEXT NOT NULL,
73
- status TEXT NOT NULL,
74
- type TEXT NOT NULL,
75
- priority INTEGER NOT NULL,
76
- updated_at TEXT NOT NULL,
77
- created_at TEXT NOT NULL,
78
- parent TEXT,
79
- assignee TEXT,
80
- sprint TEXT,
81
- release TEXT
82
- ) STRICT;
83
- CREATE INDEX items_default_order
84
- ON items(priority, updated_at DESC, id);
85
- CREATE INDEX items_status_default_order
86
- ON items(status, priority, updated_at DESC, id);
87
- CREATE INDEX items_type_default_order
88
- ON items(type, priority, updated_at DESC, id);
89
- CREATE INDEX items_parent_default_order
90
- ON items(parent, priority, updated_at DESC, id);
91
- CREATE TABLE item_metadata_keys (
92
- item_id TEXT NOT NULL,
93
- key TEXT NOT NULL,
94
- PRIMARY KEY(item_id, key),
95
- FOREIGN KEY(item_id) REFERENCES items(id) ON DELETE CASCADE
96
- ) STRICT;
97
- CREATE INDEX item_metadata_keys_key_item
98
- ON item_metadata_keys(key, item_id);
99
- CREATE TABLE item_linked_files (
100
- item_id TEXT NOT NULL,
101
- path TEXT NOT NULL,
102
- scope TEXT NOT NULL,
103
- note TEXT,
104
- PRIMARY KEY(item_id, path, scope),
105
- FOREIGN KEY(item_id) REFERENCES items(id) ON DELETE CASCADE
106
- ) STRICT;
107
- CREATE INDEX item_linked_files_path_scope_item
108
- ON item_linked_files(path, scope, item_id);
109
- CREATE VIRTUAL TABLE item_search USING fts5(
110
- id UNINDEXED,
111
- title,
112
- description,
113
- tags,
114
- tokenize = 'unicode61'
115
- );
116
- `)}function Yt(e,t,n){e.prepare("INSERT INTO metadata(key, value) VALUES (?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value").run(t,n)}function Oi(e,t){let n=t.metadata;e.prepare(`INSERT INTO items(
117
- id, relative_path, metadata_json, status, type, priority,
118
- updated_at, created_at, parent, assignee, sprint, release
119
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
120
- ON CONFLICT(id) DO UPDATE SET
121
- relative_path = excluded.relative_path,
122
- metadata_json = excluded.metadata_json,
123
- status = excluded.status,
124
- type = excluded.type,
125
- priority = excluded.priority,
126
- updated_at = excluded.updated_at,
127
- created_at = excluded.created_at,
128
- parent = excluded.parent,
129
- assignee = excluded.assignee,
130
- sprint = excluded.sprint,
131
- 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 Ai(e){let t=Fe(e.pmRoot),n=rt();if(!n){await Se.rm(t,{force:!0});return}await Se.mkdir(Ti.dirname(t),{recursive:!0});let r=`${t}.${Vd()}.tmp`,o;try{o=new n(r),Yd(o),o.exec("BEGIN IMMEDIATE"),Yt(o,"version",nt),Yt(o,"context_fingerprint",e.contextFingerprint),Yt(o,"source_cursor",e.sourceCursor);for(let i of e.rows)Oi(o,i);o.exec("COMMIT"),o.close(),o=void 0,await Se.rm(t,{force:!0}),await Se.rename(r,t)}catch(i){throw o?.close(),await Promise.allSettled([Se.rm(r,{force:!0})]),i}}function Qt(e){return Object.fromEntries(e.prepare("SELECT key, value FROM metadata").all().map(t=>[String(t.key),String(t.value)]))}async function Ci(e){let t=Fe(e.pmRoot),n;try{await Se.access(t);let r=rt();if(!r)return!1;n=new r(t),n.exec("PRAGMA foreign_keys = ON");let o=Qt(n);if(o.version!==nt||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&&Oi(n,e.row),Yt(n,"source_cursor",e.sourceCursor),n.exec("COMMIT"),n.close(),!0}catch{try{n?.exec("ROLLBACK")}catch{}return n?.close(),!1}}function Jt(e,t,n,r,o){!r||r.length===0||(e.push(`${n} ${o} (${r.map(()=>"?").join(", ")})`),t.push(...r))}function Qd(e){let t=[],n=[];Jt(t,n,"status",e.statuses,"IN"),Jt(t,n,"status",e.excludeStatuses,"NOT IN"),Jt(t,n,"type",e.types,"IN"),Jt(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 Wp(e){let t=rt();if(!t)return null;let n=e.query??{},{where:r,parameters:o}=Qd(n),i;try{i=new t(Fe(e.pmRoot),{readOnly:!0});let s=Qt(i);if(s.version!==nt||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}
132
- 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(y=>{let p=JSON.parse(String(y.metadata_json));if(!p.id)throw new TypeError("Indexed metadata row has no id");return p});return i.close(),{source_cursor:s.source_cursor,total:Number(a.count),items:u}}catch{return i?.close(),null}}async function Bp(e){let t=rt();if(!t||e.paths.length===0)return null;let n;try{n=new t(Fe(e.pmRoot),{readOnly:!0});let r=Qt(n);if(r.version!==nt||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
133
- FROM item_linked_files
134
- WHERE ${a}`).get(...s),l=xi(e.limit,50),f=xi(e.offset,0),u=n.prepare(`SELECT items.id, items.metadata_json
135
- FROM items
136
- WHERE EXISTS (
137
- SELECT 1 FROM item_linked_files
138
- WHERE item_linked_files.item_id = items.id AND ${a}
139
- )
140
- ORDER BY items.priority ASC, items.updated_at DESC, items.id ASC
141
- LIMIT ? OFFSET ?`).all(...s,l,f),y=[];if(u.length>0){let p=u.map(E=>String(E.id)),w=n.prepare(`SELECT item_id, path, scope, note
142
- FROM item_linked_files
143
- WHERE item_id IN (${p.map(()=>"?").join(", ")})
144
- AND ${a}
145
- ORDER BY path ASC, scope ASC`).all(...p,...s),S=new Map(p.map(E=>[E,[]]));for(let E of w){let C=String(E.item_id),N=S.get(C);N.push({path:String(E.path),scope:String(E.scope),...E.note===null?{}:{note:String(E.note)}}),S.set(C,N)}for(let E of u){let C=JSON.parse(String(E.metadata_json));y.push({item:C,files:S.get(String(E.id))})}}return n.close(),{source_cursor:r.source_cursor,total:Number(c.count),matches:y}}catch{return n?.close(),null}}async function qp(e){let t=rt();if(!t)return null;let n;try{n=new t(Fe(e.pmRoot),{readOnly:!0});let r=Qt(n);if(r.version!==nt||r.source_cursor!==e.expectedSourceCursor)return n.close(),null;let i=n.prepare(`SELECT items.metadata_json
146
- FROM item_search
147
- JOIN items ON items.id = item_search.id
148
- WHERE item_search MATCH ?
149
- ORDER BY bm25(item_search), items.priority, items.updated_at DESC, items.id
150
- 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 Zt(e){await Se.rm(Fe(e),{force:!0})}import F from"node:fs/promises";import R from"node:path";import{createHash as wl,randomUUID as qi}from"node:crypto";import ne from"node:fs/promises";import gr 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]="a9ad8a9f-de6e-5bce-8685-844f1129d5fb")}catch{}})();function el(e){let t;try{t=JSON.parse(e)}catch{return{info:null,warnings:["lock_info_invalid_json"]}}if(typeof t!="object"||t===null||Array.isArray(t))return{info:null,warnings:["lock_info_invalid_shape"]};let n=t,r=n.id,o=n.pid,i=n.owner,s=n.created_at,a=n.ttl_seconds;return typeof r!="string"||typeof o!="number"||!Number.isFinite(o)||typeof i!="string"||typeof s!="string"||typeof a!="number"||!Number.isFinite(a)?{info:null,warnings:["lock_info_invalid_shape"]}:{info:{id:r,pid:o,owner:i,created_at:s,ttl_seconds:a},warnings:[]}}async function Mi(e){try{let t=await ne.readFile(e,"utf8");return await K({path:e,scope:"project"}),el(t)}catch(t){return ye(t)?{info:null,warnings:[]}:{info:null,warnings:["lock_info_read_failed"]}}}function br(e,t){return typeof e=="object"&&e!==null&&"code"in e&&e.code===t}async function Li(e,t){await q({path:e,scope:"project",op:t})}function tl(e,t,n){return{id:e,pid:process.pid,owner:t,created_at:ke(),ttl_seconds:n}}async function nl(e,t,n,r){await ne.mkdir(gr.dirname(e),{recursive:!0});let o=await ne.open(e,"wx");try{await o.writeFile(`${JSON.stringify(tl(t,n,r),null,2)}
151
- `,"utf8")}finally{await o.close()}await Li(e,"lock:create")}async function Pi(e,t){try{return await ne.unlink(e),await Li(e,t),!0}catch{return!1}}function ji(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 rl(e){return e?.owner?` (owner ${e.owner})`:""}var ol=25,il=200,sl=250,al=3,cl=".stale-cleanup",Fi="owner.json",dl=1e4,ll=5*6e4;function Ri(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 ul(e){let t=process.env.PM_LOCK_WAIT_MS,n=Ri(t);if(n!==void 0)return n;let r=Ri(e);return r!==void 0?r:0}function fl(e){let t=Math.max(1,Math.round(e*(.5+Math.random())));return new Promise(n=>setTimeout(n,t))}function $i(e,t,n){let r=n>0?` after waiting ${n}ms`:"";return new T(`Item ${e} is locked${rl(t)}${r}`,I.CONFLICT,{code:"lock_conflict",recovery:{retry_after_ms:sl}})}function ml(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 _l(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 pl(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 zi(e){try{return pl(await ne.readFile(gr.join(e,Fi),"utf8"))}catch{return null}}function yl(e){try{return process.kill(e,0),!0}catch(t){return!br(t,"ESRCH")}}async function wr(e){try{return await ne.rm(e,{recursive:!0,force:!0}),!0}catch{return!1}}async function Ni(e,t){let n=await zi(e);n===null||n.token!==t||await wr(e)}async function Di(e){try{await ne.mkdir(e)}catch(n){return br(n,"EEXIST"),null}let t={pid:process.pid,token:Zd()};try{await ne.writeFile(gr.join(e,Fi),`${JSON.stringify(t)}
152
- `,"utf8")}catch{return await wr(e),null}return t}async function hl(e){let t;try{let r=await ne.stat(e);if(t=Date.now()-r.mtimeMs,t<=dl)return!1}catch(r){return ye(r)}let n=await zi(e);return n!==null&&yl(n.pid)&&t<=ll?!1:wr(e)}async function gl(e,t){let n=`${e}${cl}`,r=await Di(n);if(r!==null)return async()=>Ni(n,r.token);if(!await hl(n))return null;let o=await Di(n);return o===null?null:async()=>Ni(n,o.token)}async function bl(e){let t=await gl(e.lockPath,e.id);if(t===null)return{lockInfo:e.fallbackLockInfo,shouldRetryCreate:!1,staleRemovalCounted:!1};try{let n=await Mi(e.lockPath);if(n.info===null&&n.warnings.length===0)return{lockInfo:n,shouldRetryCreate:!0,staleRemovalCounted:!1};if(!ji(n.info,e.ttlSeconds))return{lockInfo:n,shouldRetryCreate:!1,staleRemovalCounted:!1};if(_l(e.id,n,e.force,e.forceRequiredForStaleLock),e.staleRemovals>=al)throw $i(e.id,n.info,Date.now()-e.startedAtMs);return{lockInfo:n,shouldRetryCreate:await Pi(e.lockPath,"lock:stale_remove"),staleRemovalCounted:!0}}finally{await t()}}async function 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 p=ml(a.result);if(p)return async()=>{await Promise.resolve(p()),await ee("lock_release",{pm_root:e,id:t,owner:r})}}let c=Yr(e,t),l=ul(s),f=Date.now(),u=0,y=ol;for(;;)try{return await nl(c,t,r,n),async()=>{await Pi(c,"lock:release"),await ee("lock_release",{pm_root:e,id:t,owner:r})}}catch(p){if(!br(p,"EEXIST"))throw new T(`Failed to acquire lock for ${t}: ${Zr(p)}`,I.GENERIC_FAILURE);let w=await Mi(c);if(ji(w.info,n)){let E=await bl({lockPath:c,id:t,ttlSeconds:n,force:o,forceRequiredForStaleLock:i,staleRemovals:u,waitBudgetMs:l,startedAtMs:f,fallbackLockInfo:w});if(w=E.lockInfo,E.staleRemovalCounted&&(u+=1),E.shouldRetryCreate)continue}let S=Date.now()-f;if(l===0||S>=l)throw $i(t,w.info,l===0?0:S);await fl(Math.min(y,l-S)),y=Math.min(y*2,il)}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="8b8c705a-8d80-576f-8642-f6f686cdbed9")}catch{}})();var Y=8,Vi=500,El="metadata-derived-index",kl="metadata-cache.json",vl="metadata-cache-bodies.json",Sl="metadata-cache-collections.json",Il="metadata-cache-delta.json",xl="metadata-cache-manifest.json",Ui=4,Tl=["comments","notes","learnings","files","tests","test_runs","docs"];function Gi(){return gt(Ze())}function tn(e){let t={...e},n={};for(let r of Tl)r in t&&(n[r]=t[r],delete t[r]);return{light:t,heavy:n}}function Xi(e,t){return!t||Object.keys(t).length===0?e:{...e,...t}}function Ki(e,t,n,r){let o=wl("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 nn(e){return R.join(e,"runtime",kl)}function rn(e){return R.join(e,"runtime",vl)}function on(e){return R.join(e,"runtime",Sl)}function kr(e){return R.join(e,"runtime",Il)}function vr(e){return R.join(e,"runtime",xl)}function sn(e,t){let n=R.extname(e);return`${e.slice(0,-n.length)}.${t}${n}`}var Ol=24,W=new Map,an=new WeakMap;function Sr(e){return an.get(e)??e.source_cursor}function Al(e,t){let n=Sr(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){an.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 Cl(e,t){if(!e)return;let n=Sr(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){an.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 Rl(e,t){if(!e)return;let n=Sr(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){an.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 Nl(e,t,n,r){!e||!r||e.context_fingerprint!==r.context_fingerprint||(Al(e,r),Cl(t,r),Rl(n,r))}function Er(e,t){W.size>=Ol&&!W.has(e)&&Et(W),W.set(e,t)}async function le(e,t){let n;try{n=await F.stat(e)}catch{return W.delete(e),null}let r=W.get(e);if(r&&ot(r.signature,n.mtimeMs,n.ctimeMs,n.size))return W.delete(e),W.set(e,r),r.envelope;let o;try{o=t(await F.readFile(e,"utf8"))}catch{o=null}return Er(e,{signature:{mtime_ms:n.mtimeMs,ctime_ms:n.ctimeMs,size:n.size},envelope:o}),o}async function Dl(e,t,n){let r=a=>{let c=JSON.parse(a);return c.version!==Y||typeof c.source_cursor!="string"||typeof c.entries!="object"||c.entries===null?null:c},o=nn(e),i=await le(o,r);if(!t||i===null||i.context_fingerprint===t)return i;let s=await le(sn(o,t),r);return s===null&&at(n,`metadata_cache_context_changed:${i.context_fingerprint}->${t}`),s}async function Ml(e,t){let n=i=>{let s=JSON.parse(i);return s.version!==Y||typeof s.source_cursor!="string"||typeof s.bodies!="object"||s.bodies===null?null:s},r=rn(e),o=await le(r,n);return t&&o?.context_fingerprint!==t?await le(sn(r,t),n):o}async function Ll(e,t){let n=i=>{let s=JSON.parse(i);return s.version!==Y||typeof s.source_cursor!="string"||typeof s.collections!="object"||s.collections===null?null:s},r=on(e),o=await le(r,n);return t&&o?.context_fingerprint!==t?await le(sn(r,t),n):o}async function Ir(e){let t=kr(e),n=await le(t,r=>{let o=JSON.parse(r);return o.version!==Y||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 F.stat(t),{envelope:null,invalid:!0}}catch{return{envelope:null,invalid:!1}}}async function xr(e){let t=vr(e),n=await le(t,r=>{let o=JSON.parse(r);return o.version!==Y||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 F.stat(t),await $e(e)}catch{}return null}async function it(e,t){await F.mkdir(R.dirname(e),{recursive:!0}),await z(e,JSON.stringify(t));try{let r=await F.stat(e);Er(e,{signature:{mtime_ms:r.mtimeMs,ctime_ms:r.ctimeMs,size:r.size},envelope:t})}catch{W.delete(e)}let n=R.dirname(R.dirname(e));if(e===nn(n)||e===rn(n)||e===on(n)){let r=sn(e,t.context_fingerprint);await z(r,JSON.stringify(t));try{let c=await F.stat(r);Er(r,{signature:{mtime_ms:c.mtimeMs,ctime_ms:c.ctimeMs,size:c.size},envelope:t})}catch{W.delete(r)}let o=R.dirname(e),i=R.extname(e),s=R.basename(e,i),a=(await F.readdir(o,{withFileTypes:!0}).catch(()=>[])).filter(c=>c.isFile()&&c.name!==R.basename(e)&&c.name.startsWith(`${s}.`)&&c.name.endsWith(i)).map(c=>R.join(o,c.name));if(a.length>Ui){let c=(await Promise.all(a.map(async l=>{try{return{path:l,mtime:(await F.stat(l)).mtimeMs}}catch{return null}}))).filter(l=>l!==null);for(let l of c.sort((f,u)=>f.mtime-u.mtime).slice(0,Math.max(0,c.length-Ui)))await F.rm(l.path,{force:!0}),W.delete(l.path)}}}function Pl(e,t,n){return n?t===n&&e!==n:t==="toon"&&e!=="toon"}function Ji(e,t,n){return e===void 0||Pl(e,t,n)}function at(e,t){e&&!e.includes(t)&&e.push(t)}function ot(e,t,n,r){return e.mtime_ms===t&&e.ctime_ms===n&&e.size===r}async function jl(e,t,n){let r=R.join(e,t);try{let o=await F.readdir(r);return{folder:t,dirPath:r,files:o}}catch(o){return typeof o=="object"&&o!==null&&"code"in o&&!ye(o)&&at(n,`item_list_directory_read_failed:${t}`),{folder:t,dirPath:r,files:[]}}}async function Fl(e,t){try{let n=await F.stat(R.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 en(e,t){return Object.fromEntries(await Promise.all(t.map(async n=>await Fl(e,n))))}function st(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&&ot(o,r.mtime_ms,r.ctime_ms,r.size)})}function $l(e){return wt.some(t=>e.toLowerCase().endsWith(t))}function zl(e,t,n,r,o,i){r||(e.metadata=!0),t&&!o&&(e.body=!0),n&&!i&&(e.collections=!0)}async function Ul(e,t,n){if(n)for(let r of await K({path:e,scope:"project"}))at(t,r)}function Hi(e,t,n,r){if(e)return t&&n?n.collections:r}async function Hl(e,t,n){let r=await F.stat(e),o=r.mtimeMs,i=r.ctimeMs,{size:s}=r,a=vn(e);await Ul(e,n.warnings,n.dispatchReadHooks);let c=n.previousEntries[t],l=!n.forceSourceRead&&c!==void 0&&ot(c,o,i,s),f=n.previousBodies[t],u=!n.forceSourceRead&&f!==void 0&&ot(f,o,i,s),y=n.previousCollections[t],p=!n.forceSourceRead&&y!==void 0&&ot(y,o,i,s);if(!(!l||n.includeBody&&!u||n.includeCollections&&!p))return{mtimeMs:o,ctimeMs:i,size:s,itemFormat:a,lightMetadata:c.metadata,heavyMetadata:Hi(n.includeCollections,p,y,void 0),bodyLength:c.body_length,body:n.includeBody?f.body:void 0};let S=await F.readFile(e,"utf8"),E=Mt(S,{format:a,schema:n.schema,extensionFieldNames:n.extensionFieldNames,onWarning:N=>at(n.warnings,N)}),C=tn(E.metadata);return zl(n.state.misses,n.includeBody,n.includeCollections,l,u,p),{mtimeMs:o,ctimeMs:i,size:s,itemFormat:a,lightMetadata:l?c.metadata:C.light,heavyMetadata:Hi(n.includeCollections,p,y,C.heavy),bodyLength:l?c.body_length:E.body.length,body:n.includeBody?E.body:void 0}}function Wl(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?Xi(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};Ji(i?.itemFormat,r.itemFormat,n.preferredFormat)&&n.state.documentsById.set(o.id,{candidate:s,itemFormat:r.itemFormat})}async function Bl(e,t,n,r){try{let o=await Hl(t,n,r);Wl(t,n,r,o)}catch{at(r.warnings,`item_list_item_read_failed:${e}/${R.basename(t)}`)}}function ql(e,t){return e&&e.context_fingerprint===t?e.entries:{}}function Vl(e,t){return e&&e.context_fingerprint===t?e.bodies:{}}function Gl(e,t){return e&&e.context_fingerprint===t?e.collections:{}}function Xl(){return{newEntries:{},newBodies:{},newCollections:{},documentsById:new Map,misses:{metadata:!1,body:!1,collections:!1}}}function Kl(e,t){let n=[];for(let{folder:r,dirPath:o,files:i}of e)for(let s of i){if(!$l(s))continue;let a=R.join(o,s),c=R.relative(t.pmRoot,a);n.push(Bl(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||!st(e.existingCache?.directory_signatures,e.directorySignatures))&&e.existingCache!==null&&e.existingCache.context_fingerprint===e.contextFingerprint))try{await it(nn(e.pmRoot),{version:Y,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,directory_signatures:e.directorySignatures,entries:e.state.newEntries}),await it(vr(e.pmRoot),{version:Y,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:R.relative(e.pmRoot,r.item_path),metadata:tn(r.metadata).light,linkedFiles:r.metadata.files??[]}));n.length>=e.minimumIndexedItems?await Ai({pmRoot:e.pmRoot,contextFingerprint:e.contextFingerprint,sourceCursor:e.sourceCursor,rows:n}):await Zt(e.pmRoot)}catch{}}async function Yl(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 it(rn(e.pmRoot),{version:Y,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,bodies:e.state.newBodies}).catch(()=>{})}async function Ql(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 it(on(e.pmRoot),{version:Y,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,collections:e.state.newCollections}).catch(()=>{})}async function Tr(e,t,n={}){let r=await xr(e);return n.required!==!0&&(r===null||r.entry_count<Vi)?async()=>{}:re(e,El,30,t,!1,!1,3e3)}async function py(e,t){let n=await xr(e);if(n===null)return null;let r=await Ir(e);if(r.invalid)return await $e(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&&!st(i,await en(e,t))?null:{source_cursor:o,entry_count:n.entry_count}}function Wi(e,t){let n=R.relative(e,t);return n===""||n===".."||n.startsWith(`..${R.sep}`)||R.isAbsolute(n)?null:n}async function $e(e){await Promise.all([nn(e),rn(e),on(e),kr(e),vr(e)].map(async t=>{await F.rm(t,{force:!0}),W.delete(t)})),await Zt(e)}async function Zl(e){if(e.mutation.document===null)return{entry:null,body:null,collections:null};let t=await F.stat(e.mutation.itemPath),n=tn(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 eu(e,t,n){return e?.context_fingerprint===t&&e.base_source_cursor===n?structuredClone(e.changes):{}}async function Or(e){let t=Wi(e.pmRoot,e.itemPath),n=e.previousItemPath?Wi(e.pmRoot,e.previousItemPath):void 0;if(t===null||n===null)return await $e(e.pmRoot),["metadata_derived_index_path_invalidated"];try{let r=Ki(e.preferredFormat,e.typeToFolder,e.schema,Gi()),o=await xr(e.pmRoot);if(o===null||o.context_fingerprint!==r)return[];let i=o.source_cursor,s=await Ir(e.pmRoot);if(s.invalid)return await $e(e.pmRoot),["metadata_derived_index_refresh_failed"];let a=eu(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=qi();return await it(kr(e.pmRoot),{version:Y,context_fingerprint:r,base_source_cursor:i,source_cursor:l,directory_signatures:await en(e.pmRoot,[...new Set(Object.values(e.typeToFolder))]),changes:a}),await Ci({pmRoot:e.pmRoot,contextFingerprint:r,expectedSourceCursor:c,sourceCursor:l,row:e.document===null?null:{relativePath:t,metadata:tn(e.document.metadata).light,linkedFiles:e.document.metadata.files},deletedRelativePaths:[...n===void 0?[]:[n],...e.document===null?[t]:[]]})||await Zt(e.pmRoot),[]}catch{return await $e(e.pmRoot).catch(()=>{}),["metadata_derived_index_refresh_failed"]}}function tu(e){return[...e.documentsById.values()].sort((t,n)=>t.candidate.metadata.id.localeCompare(n.candidate.metadata.id)).map(t=>t.candidate)}function Bi(e,t,n){return e?.context_fingerprint===t&&e.source_cursor===n}function nu(e,t,n,r,o){return e.every(i=>(!t||r[i]!==void 0)&&(!n||o[i]!==void 0))}function ru(e){let t=new Map;for(let[n,r]of Object.entries(e.previousEntries)){let o=vn(n);if(!o)continue;let i=e.includeCollections?Xi(r.metadata,e.previousCollections[n]?.collections):r.metadata,s=t.get(i.id);Ji(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:R.join(e.pmRoot,n)}})}return[...t.values()].sort((n,r)=>n.candidate.metadata.id.localeCompare(r.candidate.metadata.id)).map(n=>n.candidate)}function ou(e){return e.forceSourceScan||nr()||e.existingCache?.context_fingerprint!==e.contextFingerprint||e.entryKeys.length<e.minimumIndexedItems||!st(e.existingCache?.directory_signatures,e.directorySignatures)?!1:[!e.includeBody||Bi(e.existingBodyCache,e.contextFingerprint,e.existingCache.source_cursor),!e.includeCollections||Bi(e.existingCollectionsCache,e.contextFingerprint,e.existingCache.source_cursor)].every(Boolean)&&nu(e.entryKeys,e.includeBody,e.includeCollections,e.previousBodies,e.previousCollections)}async function cn(e,t,n,r,o,i={}){let s=i.includeBody!==!1,a=i.includeCollections!==!1,c=Gi(),l=Ki(t,n,o,c),f=await Ir(e);f.invalid&&await $e(e);let u=await Dl(e,l,i.cacheDiagnostics),y=s?await Ml(e,l):null,p=a?await Ll(e,l):null;Nl(u,y,p,f.envelope);let w=ql(u,l),S=Vl(y,l),E=Gl(p,l),C=[...new Set(Object.values(n))],N=await en(e,C),oe=Object.keys(w),M=Math.max(1,Math.floor(i.derivedIndexMinimumItems??Vi));if(ou({forceSourceScan:i.forceSourceScan===!0,contextFingerprint:l,existingCache:u,existingBodyCache:y,existingCollectionsCache:p,directorySignatures:N,entryKeys:oe,minimumIndexedItems:M,includeBody:s,includeCollections:a,previousBodies:S,previousCollections:E}))return ru({pmRoot:e,preferredFormat:t,includeBody:s,includeCollections:a,previousEntries:w,previousBodies:S,previousCollections:E});let hn=await Promise.all(C.map(zs=>jl(e,zs,r))),lt=nr(),Q=Xl(),gn={pmRoot:e,preferredFormat:t,warnings:r,schema:o,extensionFieldNames:c,includeBody:s,includeCollections:a,forceSourceRead:i.forceSourceScan===!0,dispatchReadHooks:lt,previousEntries:w,previousBodies:S,previousCollections:E,state:Q};await Promise.all(Kl(hn,gn));let ut=await en(e,C),zr=st(N,ut)?ut:{},bn=Q.misses.metadata||Object.keys(w).length!==Object.keys(Q.newEntries).length||!st(u?.directory_signatures,zr)||u===null?qi():u.source_cursor;return await Jl({pmRoot:e,contextFingerprint:l,sourceCursor:bn,existingCache:u,previousEntries:w,directorySignatures:zr,state:Q,minimumIndexedItems:M}),s&&await Yl({pmRoot:e,contextFingerprint:l,sourceCursor:bn,existingBodyCache:y,previousBodies:S,state:Q}),a&&await Ql({pmRoot:e,contextFingerprint:l,sourceCursor:bn,existingCollectionsCache:p,previousCollections:E,state:Q}),tu(Q)}async function Yi(e,t,n,r,o){return(await cn(e,t,n,r,o,{includeBody:!1})).map(s=>({metadata:s.metadata,body:s.body??""}))}async function Qi(e,t,n,r,o){return(await cn(e,t,n,r,o,{includeBody:!1,includeCollections:!1})).map(s=>({metadata:s.metadata,body:s.body??""}))}import iu from"node:fs/promises";import Zi 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 dn="_workspace";function es(e){return Zi.join(e,"history",`${dn}.jsonl`)}function su(e,t){return{metadata:{id:dn,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 ts(e){let t=Vt();for(let n of e)t=Xt(t,n.patch).document;return Gt(t)}async function ns(e){let t=es(e.pmRoot),n=await et(t,dn),r=pr(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?He:ts(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=su({...a,[e.documentPath]:e.after},n.length===0?i:s.metadata.created_at),f=Pe({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 je(t,f),{entry:f,historyPath:t}}async function Ty(e){let t=await re(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await ns(e)}finally{await t()}}async function Oy(e){let t=await re(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{let n=es(e.pmRoot),r=await et(n,dn),o=pr(r);if(!o.ok)throw new TypeError(`Workspace history verification failed: ${o.errors.join(", ")}`);let i=r.length===0?He:ts(r),s=Pe({nowIso:new Date().toISOString(),author:e.author,op:e.op,before:i,after:i,message:e.message,context:e.context});return await je(n,s),{entry:s,historyPath:n}}finally{await t()}}async function rs(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 ns({pmRoot:e.pmRoot,documentPath:Zi.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 iu.rm(e.filePath,{force:!0}):await z(e.filePath,t),o}return!0}async function Ay(e){let t=await re(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{let n=await he(e.filePath),r=await e.mutate(n);return{changed:await rs({...e,raw:r.raw},n),result:r.result}}finally{await t()}}async function os(e){let t=await re(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await rs(e,await he(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 j={ok:!1},m=e=>typeof e=="string"?{ok:!0,value:e}:j,x=e=>typeof e=="boolean"?{ok:!0,value:e}:j;function A(e={}){return t=>typeof t!="number"||!Number.isFinite(t)||e.int&&(!Number.isInteger(t)||!Number.isSafeInteger(t))||e.positive&&t<=0||typeof e.min=="number"&&t<e.min||typeof e.max=="number"&&t>e.max?j:{ok:!0,value:t}}function O(...e){return t=>typeof t=="string"&&e.includes(t)?{ok:!0,value:t}:j}function _(e,t){return n=>{if(!Array.isArray(n)||t!==void 0&&n.length>t)return j;let r=[];for(let o of n){let i=e(o);if(!i.ok)return j;r.push(i.value)}return{ok:!0,value:r}}}function Cr(e,t){return n=>typeof n=="string"&&n.length>0&&n.length<=e&&n===n.trim()&&(t===void 0||t.test(n))?{ok:!0,value:n}:j}function d(e){return t=>t===void 0?{ok:!0,value:void 0}:e(t)}function ln(e){return t=>{if(typeof t!="object"||t===null||Array.isArray(t))return j;let n={};for(let[r,o]of Object.entries(t)){let i=e(o);if(!i.ok)return j;n[r]=i.value}return{ok:!0,value:n}}}function v(e){return t=>{if(typeof t!="object"||t===null||Array.isArray(t))return j;let n=t,r={};for(let[o,i]of Object.entries(e)){let s=i(n[o]);if(!s.ok)return j;s.value!==void 0&&(r[o]=s.value)}return{ok:!0,value:r}}}var au=v({key:m,values:_(m),required:d(x),aliases:d(_(m)),description:d(m)}),cu=v({command:O("create","update"),option:m,required:d(x),visible:d(x),enabled:d(x)}),du=v({name:m,description:d(m),default_status:d(m),folder:d(m),aliases:d(_(m)),required_create_fields:d(_(m)),required_create_repeatables:d(_(m)),options:d(_(au)),command_option_policies:d(_(cu))}),lu=v({id:m,aliases:d(_(m)),roles:d(_(O(...Ur))),description:d(m),order:d(A())}),uu=v({key:m,metadata_key:d(m),front_matter_key:d(m),cli_flag:d(m),cli_aliases:d(_(m)),description:d(m),type:d(O(...Hr)),commands:d(_(O(...Wr))),repeatable:d(x),required:d(x),required_on_create:d(x),required_types:d(_(m)),allow_unset:d(x)}),fu=e=>{if(!Array.isArray(e)||e.length!==2)return j;let[t,n]=e;return typeof t!="string"||typeof n!="string"?j:{ok:!0,value:[t,n]}},mu=v({type:m,allowed_transitions:_(fu)}),_u=d(v({version:d(A({int:!0})),files:d(v({types:d(m),statuses:d(m),fields:d(m),workflows:d(m)})),statuses:d(_(lu)),fields:d(_(uu)),workflow:d(v({draft_status:d(m),open_status:d(m),in_progress_status:d(m),blocked_status:d(m),close_status:d(m),canceled_status:d(m)})),type_workflows:d(_(mu)),unknown_field_policy:d(O(...Br))})),pu=d(v({preset:d(O(...qr)),ownership_enforcement:d(O("none","warn","strict")),create_mode_default:d(O("progressive","strict")),close_validation_default:d(O("off","warn","strict")),require_close_reason:d(x),parent_reference:d(O("warn","strict_error")),metadata_profile:d(O("core","strict","custom")),force_required_for_stale_lock:d(x),create_default_type:d(m),workflow_enforcement:d(O("off","warn","strict")),duplicate_detection_mode:d(O("off","advisory","strict")),duplicate_detection_threshold:d(A({min:0,max:1})),duplicate_detection_limit:d(A({int:!0,min:0,max:20}))})),yu=v({name:m,disabled:d(x),require_trusted:d(x),require_provenance:d(x),sandbox_profile:d(O("none","restricted","strict")),allowed_capabilities:d(_(m)),blocked_capabilities:d(_(m)),allowed_surfaces:d(_(m)),blocked_surfaces:d(_(m)),allowed_commands:d(_(m)),blocked_commands:d(_(m)),allowed_actions:d(_(m)),blocked_actions:d(_(m)),allowed_services:d(_(m)),blocked_services:d(_(m))}),Ar=O("block","warn"),hu=e=>typeof e=="string"?Ar(e):v({global:d(Ar),project:d(Ar)})(e),gu=d(v({mode:d(O("off","warn","enforce")),trust_mode:d(O("off","warn","enforce")),pm_max_version_exceeded_mode:d(hu),require_provenance:d(x),trusted_extensions:d(_(m)),default_sandbox_profile:d(O("none","restricted","strict")),allowed_extensions:d(_(m)),blocked_extensions:d(_(m)),allowed_capabilities:d(_(m)),blocked_capabilities:d(_(m)),allowed_surfaces:d(_(m)),blocked_surfaces:d(_(m)),allowed_commands:d(_(m)),blocked_commands:d(_(m)),allowed_actions:d(_(m)),blocked_actions:d(_(m)),allowed_services:d(_(m)),blocked_services:d(_(m)),extension_overrides:d(_(yu))})),Ie=Cr(128),bu=v({harness:Cr(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u),environment_keys:d(_(Ie,64)),model_environment_keys:d(_(Ie,64)),session_environment_keys:d(_(Ie,64)),provenance_environment_keys:d(ln(_(Ie,64))),provenance_resolvers:d(ln(O("ai_agent_version","claude_session_file"))),provenance_unavailable_dimensions:d(_(Ie,64)),argv_markers:d(_(Ie,64)),client_names:d(_(Ie,64))}),wu=v({version:A({int:!0}),id_prefix:m,ids:d(v({token_length:d(A({int:!0,min:4,max:12}))})),author_default:m,agent_identity:d(v({probes_enabled:d(x),identity_vocabulary:d(v({version:A({int:!0,positive:!0}),aliases:ln(Cr(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u))})),harness_signals:_(bu)})),mutation_guard:d(v({require_attributed_author:d(x),secret_guard:d(O("off","advise","block")),stale_in_progress_hours:d(A({int:!0,positive:!0}))})),item_format:d(O("toon","json_markdown")),locks:v({ttl_seconds:A({int:!0}),wait_ms:d(A({int:!0,min:0}))}),checkpoints:d(v({retention_days:d(A({int:!0,positive:!0}))})),output:v({default_format:O("toon","json")}),history:d(v({missing_stream:O("auto_create","strict_error"),compact_policy:d(v({enabled:d(x),max_entries:d(A({int:!0,positive:!0})),trigger:d(O("health_warn","auto"))}))})),validation:d(v({sprint_release_format:O("warn","strict_error"),parent_reference:d(O("warn","strict_error")),metadata_profile:d(O("core","strict","custom")),metadata_required_fields:d(_(m)),lifecycle_stale_blocker_reason_patterns:d(_(m)),lifecycle_closure_like_blocked_reason_patterns:d(_(m)),lifecycle_closure_like_resolution_patterns:d(_(m)),lifecycle_closure_like_actual_result_patterns:d(_(m)),estimate_defaults_by_type:d(ln(A({int:!0,positive:!0})))})),governance:pu,workflow:d(v({definition_of_done:_(m)})),testing:d(v({record_results_to_items:x})),telemetry:d(v({enabled:x,first_run_prompt_completed:d(x),capture_level:d(O("minimal","redacted","max")),endpoint:d(m),installation_id:d(m),retention_days:d(A({int:!0,positive:!0}))})),agent_guidance:d(v({prompt_completed:d(x),declined:d(x),declined_at:d(m),template_version:d(A({int:!0,positive:!0})),last_checked_files:d(_(m))})),item_types:d(v({definitions:_(du)})),schema:_u,context:d(v({default_depth:d(O("brief","standard","deep")),activity_limit:d(A({int:!0,positive:!0})),stale_threshold_days:d(A({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:_(m),disabled:_(m),policy:gu}),search:v({score_threshold:A(),hybrid_semantic_weight:d(A()),max_results:A({int:!0}),embedding_model:m,embedding_corpus_max_characters:d(A()),embedding_batch_size:A({int:!0}),embedding_timeout_ms:d(A({int:!0})),scanner_max_batch_retries:A({int:!0}),provider:d(m),corpus_fields:d(_(m)),mutation_refresh_policy:d(O("cache_only","semantic_configured","semantic_auto")),query_expansion:d(v({enabled:d(x),provider:d(m)})),rerank:d(v({enabled:d(x),model:d(m),top_k:d(A({int:!0,positive:!0}))})),bm25:d(v({k1:d(A()),b:d(A())}))}),providers:v({openai:v({base_url:m,api_key:m,model:m}),ollama:v({base_url:m,model:m})}),vector_store:v({adapter:d(m),collection_name:d(m),qdrant:v({url:m,api_key:m}),lancedb:v({path:m})})});function is(e){let t=wu(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 Eu={Epic:2880,Feature:480,Story:480,Milestone:2880,Task:120,Issue:60,Bug:60,Chore:30,Decision:15,Plan:120},ss=120;function Rr(e){return typeof e=="number"&&Number.isFinite(e)&&e>0}function cs(e){let t=new Map;for(let[n,r]of Object.entries(e))t.set(n.toLowerCase(),r);return t}var ku=cs(Eu),as=new WeakMap;function vu(e){let t=as.get(e);if(t)return t;let n=cs(e);return as.set(e,n),n}function Dy(e,t){let n=(e??"").trim().toLowerCase();if(n.length===0)return ss;if(t){let o=vu(t).get(n);if(Rr(o))return Math.floor(o)}let r=ku.get(n);return Rr(r)?Math.floor(r):ss}function Nr(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||!Rr(r)||(t[o]=Math.floor(r))}return t}import{stat as Su}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 un=new Map;function ds(e){return[...new Set(e.map(t=>t.trim()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}async function Iu(e){try{let t=await Su(e);return{path:e,mtime_ms:t.mtimeMs,size:t.size}}catch{return{path:e,mtime_ms:null,size:null}}}async function ue(e){let t=ds(e),n=await Promise.all(t.map(r=>Iu(r)));return n.sort((r,o)=>r.path.localeCompare(o.path)),n}function ct(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 ls(e){return un.get(e)}function fn(e,t){let n=ds(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));un.set(e,{tracked_paths:n,signatures:r,value:t.value})}function fe(e){if(e){un.delete(e);return}un.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 xu="settings:write",ps=Symbol("pm.settings.persist_source"),Tu=128,Ou=new Set(["off","advisory","strict"]);function us(e){return structuredClone(Gr[e])}function Au(e){return e==="minimal"||e==="default"||e==="strict"||e==="custom"?e:b.governance.preset}function fs(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 Cu(e){return e.preset==="custom"?fs({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):fs({preset:e.preset},e)}function Ru(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),Ou.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 _n(e){let t=e.governance??{},n=Au(t.preset),r=Ru(t);if(n==="custom"){let s=us("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=us(n),i=r.require_close_reason??o.require_close_reason;return{preset:n,...o,...r,require_close_reason:i}}function ys(){return structuredClone(b)}function hs(e){return e==="cache_only"||e==="semantic_configured"||e==="semantic_auto"?e:b.search.mutation_refresh_policy}function gs(e){return typeof e=="boolean"?e:b.search.query_expansion.enabled}function bs(e){return typeof e!="string"?b.search.query_expansion.provider:e.trim()}function ws(e){return typeof e=="boolean"?e:b.search.rerank.enabled}function Es(e){return typeof e!="string"?b.search.rerank.model:e.trim()}function ks(e){return typeof e=="number"&&Number.isFinite(e)&&Number.isInteger(e)&&e>0?e:b.search.rerank.top_k}function vs(e){if(typeof e!="string")return b.vector_store.collection_name;let n=e.trim().replaceAll(/[^a-zA-Z0-9_-]/g,"_").slice(0,Tu);return n.length>0?n:b.vector_store.collection_name}function Dr(e){return{present:Array.isArray(e),values:Array.isArray(e)?structuredClone(e):[]}}function Nu(e,t){let n=e.schema,r=Dr(n?.statuses),o=Dr(n?.fields),i=Dr(n?.type_workflows);return{source_settings:structuredClone(e),has_source_item_type_definitions:Array.isArray(e.item_types?.definitions),source_item_type_definitions:ze(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:ze(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 Ss(e,t){Object.defineProperty(e,ps,{value:t,writable:!0,configurable:!0,enumerable:!1})}function Is(e){let t=e[ps];if(!(!t||typeof t!="object"))return t}function mn(e){let t=structuredClone(e.settings),n=Is(e.settings);return n&&Ss(t,n),{settings:t,metadata:{has_explicit_item_format:e.metadata.has_explicit_item_format},warnings:[...e.warnings]}}function Du(e,t,n){let r=Ve(t);return[n,Ge(e,r.files.types,qe.types),Ge(e,r.files.statuses,qe.statuses),Ge(e,r.files.fields,qe.fields),Ge(e,r.files.workflows,qe.workflows)]}async function Mu(e,t,n){let r=await ue(t);fn(e,{tracked_paths:t,signatures:r,value:mn(n)})}async function Lu(e,t,n){try{await Mu(e,t,n)}catch{fe(e)}}function ms(e,t){return e.find(n=>n.path===t)}function Pu(e,t,n){for(let r of n){let o=ms(e,r),i=ms(t,r);if(!o||!i||!ct([o],[i]))return!1}return!0}async function Mr(e,t,n,r,o){try{let i=await ue(t);if(!Pu(r,i,o)){fe(e);return}fn(e,{tracked_paths:t,signatures:i,value:mn(n)})}catch{fe(e)}}function ju(e,t){let n=Ve(e.schema),r=ze(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=xe(r,t.runtime_item_type_definitions),s=xe(n.statuses,t.runtime_schema_statuses),a=xe(n.fields,t.runtime_schema_fields),c=xe(o,t.runtime_schema_type_workflows);return{item_type_definitions:i?t.has_source_item_type_definitions?ze(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 dt(e){return{settings:ys(),metadata:{has_explicit_item_format:!1},warnings:e?[e]:[]}}function Fu(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=e.item_format;return t==="toon"||t==="json_markdown"}function Pr(e){return[...new Set((e??[]).map(t=>t.trim()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function xs(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:Pr(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 $u(e){return e==="off"||e==="warn"||e==="enforce"?e:b.extensions.policy.mode}function zu(e){return e==="off"||e==="warn"||e==="enforce"?e:b.extensions.policy.trust_mode}function Ts(e){return e==="none"||e==="restricted"||e==="strict"?e:b.extensions.policy.default_sandbox_profile}function Uu(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=Ts(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),f=V(e.blocked_actions),u=V(e.allowed_services),y=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),f.length>0&&(n.blocked_actions=f),u.length>0&&(n.allowed_services=u),y.length>0&&(n.blocked_services=y),n}function Hu(e){let t=new Map;for(let n of e??[]){let r=Uu(n);r&&t.set(r.name,r)}return[...t.values()].sort((n,r)=>n.name.localeCompare(r.name))}function Lr(e){return e==="block"||e==="warn"?e:void 0}function Wu(e){if(typeof e=="string")return Lr(e);if(typeof e=="object"&&e!==null&&!Array.isArray(e)){let t=Lr(e.global),n=Lr(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 Os(e){let t=Wu(e?.pm_max_version_exceeded_mode);return{mode:$u(e?.mode),trust_mode:zu(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:Ts(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:Hu(e?.extension_overrides??b.extensions.policy.extension_overrides)}}function As(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 me(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 jr(e){return Array.isArray(e)?e:[]}function Bu(e,t,n){return{...t.validation,...e.validation,parent_reference:n.parent_reference,metadata_profile:n.metadata_profile,metadata_required_fields:As(e.validation?.metadata_required_fields),lifecycle_stale_blocker_reason_patterns:me(e.validation?.lifecycle_stale_blocker_reason_patterns??t.validation.lifecycle_stale_blocker_reason_patterns),lifecycle_closure_like_blocked_reason_patterns:me(e.validation?.lifecycle_closure_like_blocked_reason_patterns??t.validation.lifecycle_closure_like_blocked_reason_patterns),lifecycle_closure_like_resolution_patterns:me(e.validation?.lifecycle_closure_like_resolution_patterns??t.validation.lifecycle_closure_like_resolution_patterns),lifecycle_closure_like_actual_result_patterns:me(e.validation?.lifecycle_closure_like_actual_result_patterns??t.validation.lifecycle_closure_like_actual_result_patterns),estimate_defaults_by_type:Nr(e.validation?.estimate_defaults_by_type)}}function qu(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 Vu(e,t){return{...t.search,...e.search,mutation_refresh_policy:hs(e.search?.mutation_refresh_policy),query_expansion:{...t.search.query_expansion,...e.search?.query_expansion,enabled:gs(e.search?.query_expansion?.enabled),provider:bs(e.search?.query_expansion?.provider)},rerank:{...t.search.rerank,...e.search?.rerank,enabled:ws(e.search?.rerank?.enabled),model:Es(e.search?.rerank?.model),top_k:ks(e.search?.rerank?.top_k)}}}function Gu(e,t){return{adapter:e.vector_store.adapter??t.vector_store.adapter,collection_name:vs(e.vector_store.collection_name),qdrant:{...t.vector_store.qdrant,...e.vector_store.qdrant},lancedb:{...t.vector_store.lancedb,...e.vector_store.lancedb}}}function Xu(e,t){return e.item_format==="json_markdown"?"toon":e.item_format??t.item_format}function Ku(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 ze(e){let t=(e??[]).map(r=>Kr(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 Cs(e){let t=ys(),n=_n({governance:e.governance??{preset:"default"}});return{...t,...e,item_format:Xu(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:Bu(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:qu(e,t),agent_guidance:xs(e.agent_guidance??t.agent_guidance),item_types:{definitions:ze(e.item_types?.definitions)},schema:Ve(e.schema??t.schema),context:Ku(e,t),extensions:{enabled:[...e.extensions.enabled],disabled:[...e.extensions.disabled],policy:Os(e.extensions.policy??t.extensions.policy)},search:Vu(e,t),providers:Ju(e,t),vector_store:Gu(e,t)}}function Yu(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=jr(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=jr(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 Qu(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:As(e.validation?.metadata_required_fields),lifecycle_stale_blocker_reason_patterns:me(e.validation?.lifecycle_stale_blocker_reason_patterns??b.validation.lifecycle_stale_blocker_reason_patterns),lifecycle_closure_like_blocked_reason_patterns:me(e.validation?.lifecycle_closure_like_blocked_reason_patterns??b.validation.lifecycle_closure_like_blocked_reason_patterns),lifecycle_closure_like_resolution_patterns:me(e.validation?.lifecycle_closure_like_resolution_patterns??b.validation.lifecycle_closure_like_resolution_patterns),lifecycle_closure_like_actual_result_patterns:me(e.validation?.lifecycle_closure_like_actual_result_patterns??b.validation.lifecycle_closure_like_actual_result_patterns),estimate_defaults_by_type:Nr(e.validation?.estimate_defaults_by_type)}}function ef(e){return{...b.search,...e.search,mutation_refresh_policy:hs(e.search?.mutation_refresh_policy),query_expansion:{...b.search.query_expansion,...e.search?.query_expansion,enabled:gs(e.search?.query_expansion?.enabled),provider:bs(e.search?.query_expansion?.provider)},rerank:{...b.search.rerank,...e.search?.rerank,enabled:ws(e.search?.rerank?.enabled),model:Es(e.search?.rerank?.model),top_k:ks(e.search?.rerank?.top_k)}}}function tf(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 nf(e){return{...e.vector_store,adapter:e.vector_store?.adapter??b.vector_store.adapter,collection_name:vs(e.vector_store?.collection_name),qdrant:{...e.vector_store?.qdrant},lancedb:{...e.vector_store?.lancedb}}}function rf(e,t,n,r){return{...e,item_format:"toon",validation:Zu(e,t),governance:t,agent_guidance:xs(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:ef(e),context:tf(e),extensions:{enabled:Pr(e.extensions?.enabled),disabled:Pr(e.extensions?.disabled),policy:Os(e.extensions?.policy)},vector_store:nf(e)}}function Rs(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(!xe(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:{};Rs(c,i,s),Object.keys(c).length>0?e[o]=c:delete e[o];continue}e[o]=structuredClone(s)}}}var Ns=["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 _s(e,t){let n=Qu(e),r=_n(n),o=Ve(n.schema),i=ju(n,t),s=rf(n,r,o,i),a=k({...s,governance:Cu(r)},Ns);return Yu(a),a}function of(e,t={}){let n=_s(e,t.persist_source);if(t.persist_source){let r=Cs(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=_s(r,t.persist_source),i=structuredClone(t.persist_source.source_settings);return Rs(i,o,n),`${JSON.stringify(k(i,Ns),null,2)}
153
- `}return`${JSON.stringify(n,null,2)}
154
- `}async function Ds(e){let t=En(e),n=[t];await K({path:t,scope:"project"});let r=ls(e);if(r){let l=await ue(r.tracked_paths);if(ct(l,r.signatures))return mn(r.value)}let o=await ue([t]),i;try{i=await he(t)}catch{return dt("settings_read_fs_error")}if(i===null){let l=dt();return await Mr(e,[t],l,o,[t]),l}let s=await ue([t]);if(!ct(o,s))return fe(e),Ds(e);let a;try{a=JSON.parse(i)}catch{let l=dt("settings_read_invalid_json");return await Mr(e,[t],l,s,[t]),l}let c=is(a);if(!c.success){let l=dt("settings_read_invalid_schema");return await Mr(e,[t],l,s,[t]),l}try{let l=Cs(c.data),f=Du(e,l.schema,t);n=f;let u=await ue(f),y=await co(e,l.schema),p=await lo(e,l.schema),w=await ue(f),S={...l,item_types:{definitions:ze([...l.item_types.definitions,...jr(p.type_definitions_from_file)])},schema:p.schema};Ss(S,Nu(c.data,S));let E={settings:S,metadata:{has_explicit_item_format:Fu(a)},warnings:[...c.data.item_format==="json_markdown"?["settings_item_format_legacy_json_markdown_coerced_to_toon"]:[],...y.created_paths.map(C=>`runtime_schema_bootstrap_created:${C}`),...p.warnings]};return y.created_paths.length===0?ct(u,w)?fn(e,{tracked_paths:f,signatures:w,value:mn(E)}):fe(e):fe(e),E}catch{let l=dt("settings_read_merge_failed");return await Lu(e,n,l),l}}async function Ky(e){return(await Ds(e)).settings}async function Jy(e,t,n=xu){let r=En(e),o=of(t,{persist_source:Is(t)});try{await os({pmRoot:e,filePath:r,raw:o,op:n,author:Oo(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{fe(e)}}import sf from"node:fs/promises";import af 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 cf(e){return[...new Set(e.filter(t=>t.trim().length>0))].sort((t,n)=>t.localeCompare(n))}function df(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 lf(e,t){return await Xr(af.dirname(e)),await(await sf.open(e,"a")).close(),q({path:e,scope:"project",op:`${t}:history:auto_create`})}async function Fr(e){return uf({pmRoot:e.pmRoot,settings:e.settings,itemIds:[e.itemId],commandLabel:e.commandLabel})}async function uf(e){let t=cf(e.itemIds),n=[],r=[];for(let o of t){let i=Be(e.pmRoot,o);if(!await bt(i)){if(e.settings.history.missing_stream==="strict_error")throw df(o,e.commandLabel);r.push(...await lf(i,e.commandLabel)),r.push(`history_stream_auto_created:${o}`),n.push(o)}}return{auto_created_ids:n,warnings:r}}import _e from"node:fs/promises";import Ue from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="f43e1170-e797-5a0c-b02e-d31e002ab275")}catch{}})();async function ff(e){try{return await _e.access(e),!0}catch{return!1}}function pn(e,t){return typeof e=="object"&&e!==null&&"code"in e&&e.code===t}function mf(e,t){e&&(e.includes(t)||e.push(t))}function Ms(e){return e??gt(Ze())}function _f(e){return e==="toon"?["toon","json_markdown"]:e==="json_markdown"?["json_markdown","toon"]:["toon","json_markdown"]}function yn(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 pf(e){let t=Ue.parse(Ue.resolve(e)).root,n=Ue.dirname(Ue.resolve(e));for(;n!==t;){let r;try{r=await _e.stat(n)}catch(o){if(pn(o,"ENOTDIR"))throw yn(e);if(!pn(o,"ENOENT"))throw o;n=Ue.dirname(n);continue}if(!r.isDirectory())throw yn(e);break}}async function $r(e){let t;try{t=await _e.stat(e)}catch(n){throw pn(n,"ENOENT")?(await pf(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."]})):pn(n,"ENOTDIR")?yn(e):n}if(!t.isDirectory())throw yn(e)}async function Ls(e,t,n="pm-",r,o=pe){let i=hr(t,n),s=yr(t),a=i===s?[i]:[i,s],c=Object.entries(o),l=_f(r);for(let f of a)for(let[u]of c)for(let y of l){let p=kn(e,u,f,y,o);if(await ff(p))return{id:f,type:u,itemPath:p,item_format:y}}return null}async function Ps(e,t={}){let n=await _e.readFile(e.itemPath,"utf8");await K({path:e.itemPath,scope:"project"});let r=Mt(n,{format:e.item_format,schema:t.schema,extensionFieldNames:Ms(t.extensionFieldNames),onWarning:o=>mf(t.warnings,o)});return{raw:n,document:r}}async function yf(e,t,n=pe,r,o){return await $r(e),(await Yi(e,t,n,r,o)).map(s=>s.metadata)}async function Ih(e,t,n=pe,r,o){return await $r(e),(await Qi(e,t,n,r,o)).map(s=>s.metadata)}async function xh(e,t,n=pe,r,o,i={}){return await $r(e),(await cn(e,t,n,r,o,{includeBody:!0,forceSourceScan:i.forceSourceScan})).map(a=>({...a.metadata,body:a.body}))}function js(e){return{async get(t){let n=await Ls(e.pmRoot,t,e.settings.id_prefix,e.settings.item_format,e.typeToFolder);if(!n)return null;let{document:r}=await Ps(n,{schema:e.settings.schema});return{item:r.metadata,body:r.body}},list:()=>yf(e.pmRoot,e.settings.item_format,e.typeToFolder,void 0,e.settings.schema)}}async function hf(e,t){let n=new Set(Object.values(t)),r=[];return await Promise.all([...n].map(async o=>{try{let i=await _e.readdir(Ue.join(e,o));for(let s of i)for(let a of wt)if(s.toLowerCase().endsWith(a)){r.push(s.slice(0,-a.length));break}}catch{}})),r}async function gf(e,t,n,r){let o=hr(t,n),i=await hf(e,r);if(i.length===0)return[];let s=Math.max(3,Math.floor(o.length/2));return i.map(c=>({id:c,distance:ft(c,o,s)})).filter(c=>c.distance!==null).sort((c,l)=>c.distance-l.distance).slice(0,3).map(c=>c.id)}async function bf(e,t,n,r){let o=await gf(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 wf(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 Fs(e){let t=e.typeToFolder??Jr(e.settings,Ze()).type_to_folder,n=await Ls(e.pmRoot,e.id,e.settings.id_prefix,e.settings.item_format,t);if(!n)throw await bf(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 Ps(n,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames,warnings:o}),a=s.metadata.assignee?.trim(),c=s.metadata.claim_principal?.trim()||a,l=To(e.author),f=_n(e.settings);if(a&&c!==l&&!e.force&&!wf(e.op,e.bypassAssigneeConflict)){if(f.ownership_enforcement==="strict")throw new T(`Item ${n.id} is assigned to ${a}. Use --force to override.`,I.CONFLICT);f.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 Ef(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 kf(e){if(!e.skipItemWrite){if(e.effectiveTargetItemPath!==e.originalItemPath){await z(e.originalItemPath,e.originalRaw),await _e.rm(e.effectiveTargetItemPath,{force:!0});return}await z(e.originalItemPath,e.originalRaw)}}async function Th(e){let t=await Fs({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}),f=await e.mutate(l);if(e.skipNoop===!0&&f.changedFields.length===0)return{item:c.metadata,body:c.body,changedFields:[],warnings:[...s,...f.warnings??[]]};l.metadata.updated_at=ke();let u=B(l,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames});await tr({pm_root:e.pmRoot,operation:e.op,before:c,after:u,changed_fields:f.changedFields,sdk:js({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:n})});let y=await Fr({pmRoot:e.pmRoot,settings:e.settings,itemId:r.id,commandLabel:e.op}),p="toon",w=Jo(u,{format:p,schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),S=kn(e.pmRoot,u.metadata.type,r.id,p,n),E=Be(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:p,before:c,after:u,contents:w}),{effectiveTargetItemPath:N,effectiveSerializedAfter:oe,skipItemWrite:M}=Ef(C,S,w),hn=await Tr(e.pmRoot,e.author),lt=[];try{M||await z(N,oe),!M&&N!==r.itemPath&&await _e.rm(r.itemPath);let gn=Pe({nowIso:u.metadata.updated_at,author:e.author,op:e.op,before:c,after:u,message:e.message});try{await je(E,gn)}catch(ut){throw await kf({skipItemWrite:M,effectiveTargetItemPath:N,originalItemPath:r.itemPath,originalRaw:o}),ut}M||(lt=await Or({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:n,schema:e.settings.schema,itemPath:N,previousItemPath:r.itemPath,document:u}))}finally{await hn()}let Q=[...await q({path:N,scope:"project",op:e.op,item_id:u.metadata.id,item_type:u.metadata.type,before:c,after:u,changed_fields:f.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:f.changedFields})];return er({id:u.metadata.id,op:e.op,item_type:u.metadata.type,previous_status:c.metadata.status,status:u.metadata.status,previous:Lt(c.metadata,f.changedFields),current:Lt(u.metadata,f.changedFields),changed_fields:f.changedFields}),{item:u.metadata,body:u.body,changedFields:f.changedFields,warnings:[...s,...f.warnings??[],...y.warnings,...C.warnings,...lt,...Q]}}finally{await a()}}async function Oh(e){let t=await Fs({pmRoot:e.pmRoot,settings:e.settings,id:e.id,op:"delete",author:e.author,force:e.force}),{located:n,originalRaw:r,document:o,warnings:i,releaseLock:s}=t;try{let a=Ms(void 0),c=B(o,{schema:e.settings.schema,extensionFieldNames:a});await tr({pm_root:e.pmRoot,operation:"delete",before:c,after:null,changed_fields:["deleted"],sdk:js({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:t.typeToFolder})});let l=await Fr({pmRoot:e.pmRoot,settings:e.settings,itemId:n.id,commandLabel:"delete"}),f=ke(),u=He,y=Pe({nowIso:f,author:e.author,op:"delete",before:c,after:u,message:e.message}),p=Be(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:p,before:c}),S=n.itemPath,E=!1;if(w.handled&&typeof w.result=="object"&&w.result!==null){let M=w.result;typeof M.item_path=="string"&&M.item_path.trim().length>0&&(S=M.item_path),M.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 Tr(e.pmRoot,e.author),N=[];try{E||await _e.rm(S);try{await je(p,y)}catch(M){throw E||await z(S,r),M}E||(N=await Or({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:t.typeToFolder,schema:e.settings.schema,itemPath:S,document:null}))}finally{await C()}let oe=[...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:p,scope:"project",op:"delete:history",item_id:c.metadata.id,item_type:c.metadata.type,before:c,after:u,changed_fields:["deleted"]})];return er({id:c.metadata.id,op:"delete",item_type:c.metadata.type,previous_status:c.metadata.status,previous:Lt(c.metadata,Object.keys(c.metadata)),changed_fields:["deleted"]}),{item:c.metadata,changedFields:["deleted"],warnings:[...i,...l.warnings,...w.warnings,...N,...oe]}}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 vf(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:ft(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 $s(e){return["pm",...e].map(t=>/^[A-Za-z0-9_./:@=-]+$/u.test(t)?t:JSON.stringify(t)).join(" ")}function Dh(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(y=>y.trim()))].filter(Boolean).sort((y,p)=>y.localeCompare(p));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:vf(r,o),f=$s([...i,r,...s]),u=e.retry_command??(l?$s([...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:f,allowed_values:o,suggested_retry:u,fallback_candidates:e.fallback_candidates}})}export{qm as a,Jc as b,o_ as c,id as d,i_ as e,s_ as f,a_ as g,c_ as h,d_ as i,l_ as j,u_ as k,Ze as l,er as m,Lt as n,q as o,tr as p,K as q,nr as r,f_ as s,m_ as t,ee as u,Ed as v,be as w,In as x,xf as y,Tf as z,vt as A,Cn as B,Mf as C,Lf as D,Pf as E,jf as F,Ff as G,$f as H,jn as I,Ks as J,Xf as K,Kf as L,Jf as M,Un as N,So as O,Yf as P,Qf as Q,Zf as R,ua as S,To as T,Oo as U,ke as V,$ as W,cm as X,dm as Y,re as Z,$o as _,Xe as $,Em as aa,km as ba,Ae as ca,Lo as da,um as ea,Po as fa,Ra as ga,fm as ha,Ct as ia,Da as ja,ym as ka,Rt as la,Dt as ma,Mt as na,Jo as oa,B as pa,et as qa,R_ as ra,N_ as sa,Z_ as ta,ep as ua,Ad as va,tt as wa,J as xa,gp as ya,mr as za,bp as Aa,Pe as Ba,je as Ca,jd as Da,Vt as Ea,qt as Fa,Gt as Ga,Tp as Ha,Op as Ia,Ei as Ja,Xt as Ka,zd as La,pr as Ma,Ap as Na,Cp as Oa,dn as Pa,es as Qa,Ty as Ra,Oy as Sa,Ay as Ta,os as Ua,Dy as Va,_n as Wa,Ds as Xa,Ky as Ya,Jy as Za,Fr as _a,uf as $a,Si as ab,yr as bb,hr as cb,jp as db,Wp as eb,Bp as fb,qp as gb,Vi as hb,Tl as ib,Tr as jb,py as kb,Or as lb,cn as mb,Ls as nb,Ps as ob,yf as pb,Ih as qb,xh as rb,js as sb,bf as tb,Th as ub,Oh as vb,Dh as wb};
155
- //# sourceMappingURL=chunk-6XYLENDV.js.map