@unbrained/pm-cli 2026.8.16 → 2026.8.17

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 (155) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/CHANGELOG.md +30 -3
  3. package/README.md +13 -13
  4. package/dist/cli/public.d.ts +2 -0
  5. package/dist/cli/public.js +21 -0
  6. package/dist/cli/register-mutation.js +4 -4
  7. package/dist/cli-bundle/bundle-manifest.json +151 -151
  8. package/dist/cli-bundle/chunks/{chunk-I2LUWWR5.js → chunk-2QLOXC3V.js} +2 -2
  9. package/dist/cli-bundle/chunks/{chunk-URW4QRMI.js → chunk-3UEGXBMR.js} +22 -22
  10. package/dist/cli-bundle/chunks/chunk-4JPYF536.js +35 -0
  11. package/dist/cli-bundle/chunks/chunk-6VDLG2FC.js +13 -0
  12. package/dist/cli-bundle/chunks/chunk-7IBRGCHX.js +2 -0
  13. package/dist/cli-bundle/chunks/chunk-HBJAS566.js +8 -0
  14. package/dist/cli-bundle/chunks/chunk-ION3E43Q.js +197 -0
  15. package/dist/cli-bundle/chunks/{chunk-73UGEBRS.js → chunk-JOKATURE.js} +4 -4
  16. package/dist/cli-bundle/chunks/{chunk-RIS565OA.js → chunk-TPXZIBIV.js} +5 -5
  17. package/dist/cli-bundle/chunks/chunk-YM2YAMF7.js +2 -0
  18. package/dist/cli-bundle/chunks/{register-list-query-EYCXHZAG.js → register-list-query-Q7KII4G5.js} +2 -2
  19. package/dist/cli-bundle/chunks/register-mutation-4WBRPXLV.js +20 -0
  20. package/dist/cli-bundle/chunks/{register-operations-KGDNRMCL.js → register-operations-SSENDH5B.js} +2 -2
  21. package/dist/cli-bundle/chunks/{register-setup-NVXBOD5I.js → register-setup-DOSFBGKE.js} +2 -2
  22. package/dist/cli-bundle/focused-chunks/{chunk-TZATVC4G.js → chunk-267MUUS6.js} +11 -11
  23. package/dist/cli-bundle/focused-chunks/chunk-2NNFLLNG.js +2 -0
  24. package/dist/cli-bundle/focused-chunks/{chunk-HAACPSUW.js → chunk-2QSAKMIH.js} +2 -2
  25. package/dist/cli-bundle/focused-chunks/{chunk-6ROKKT4X.js → chunk-ATEY76SX.js} +2 -2
  26. package/dist/cli-bundle/focused-chunks/chunk-BUCG4ZI2.js +2 -0
  27. package/dist/cli-bundle/focused-chunks/{chunk-SSNDYZTM.js → chunk-CYFK5UPB.js} +2 -2
  28. package/dist/cli-bundle/focused-chunks/chunk-EHXIKD6K.js +2 -0
  29. package/dist/cli-bundle/focused-chunks/{chunk-J4UFYHOD.js → chunk-KGEXTMPG.js} +2 -2
  30. package/dist/cli-bundle/focused-chunks/chunk-KP2VQQVQ.js +2 -0
  31. package/dist/cli-bundle/focused-chunks/chunk-MHPIL773.js +2 -0
  32. package/dist/cli-bundle/focused-chunks/chunk-POEEAD2V.js +4 -0
  33. package/dist/cli-bundle/focused-chunks/{chunk-T46KLOIB.js → chunk-SALH6B6K.js} +47 -47
  34. package/dist/cli-bundle/focused-chunks/{chunk-CODV5LUT.js → chunk-SYZENPIT.js} +3 -3
  35. package/dist/cli-bundle/focused-chunks/{chunk-4JPEBFFC.js → chunk-XKAMP5OU.js} +2 -2
  36. package/dist/cli-bundle/focused-chunks/{chunk-NJ5RLEFD.js → chunk-XPIC53VA.js} +2 -2
  37. package/dist/cli-bundle/focused-chunks/{chunk-C7JUBRFP.js → chunk-ZQPGZZWQ.js} +2 -2
  38. package/dist/cli-bundle/focused-chunks/chunk-ZT2DJS27.js +155 -0
  39. package/dist/cli-bundle/main.js +2 -2
  40. package/dist/cli-bundle/sdk-authoring.js +1 -1
  41. package/dist/cli-bundle/sdk-contracts.js +1 -1
  42. package/dist/cli-bundle/sdk-core.js +31 -31
  43. package/dist/cli-bundle/sdk-governance.js +1 -1
  44. package/dist/cli-bundle/sdk-graph.js +1 -1
  45. package/dist/cli-bundle/sdk-merge.js +32 -32
  46. package/dist/cli-bundle/sdk-query.js +1 -1
  47. package/dist/cli-bundle/sdk-runtime.js +1 -1
  48. package/dist/cli-bundle/sdk-testing.js +1 -1
  49. package/dist/cli-bundle/sdk.js +4 -2
  50. package/dist/core/extensions/loader.js +10 -6
  51. package/dist/core/extensions/manifest-schema.d.ts +20 -0
  52. package/dist/core/extensions/manifest-schema.js +52 -0
  53. package/dist/core/history/replay.js +32 -14
  54. package/dist/core/schema/fields-file.d.ts +1 -1
  55. package/dist/core/schema/fields-file.js +2 -2
  56. package/dist/core/schema/runtime-field-values.js +115 -9
  57. package/dist/core/schema/runtime-schema.d.ts +3 -1
  58. package/dist/core/schema/runtime-schema.js +124 -3
  59. package/dist/core/shared/errors.d.ts +10 -0
  60. package/dist/core/shared/errors.js +2 -2
  61. package/dist/core/shared/time.d.ts +2 -0
  62. package/dist/core/shared/time.js +27 -2
  63. package/dist/sdk/agent/refusal-reachability.d.ts +46 -6
  64. package/dist/sdk/agent/refusal-reachability.js +350 -8
  65. package/dist/sdk/cli-contracts/tool-parameter-tables.js +5 -4
  66. package/dist/sdk/compose.d.ts +6 -2
  67. package/dist/sdk/compose.js +33 -3
  68. package/dist/sdk/context-intent-contracts.d.ts +8 -4
  69. package/dist/sdk/context-intent-contracts.js +76 -31
  70. package/dist/sdk/dependency-flag-validation.d.ts +9 -2
  71. package/dist/sdk/dependency-flag-validation.js +101 -35
  72. package/dist/sdk/environment/host-environment-errors.js +25 -7
  73. package/dist/sdk/generated/generated-error-code-catalog-part-1.js +26 -2
  74. package/dist/sdk/generated/generated-error-code-catalog-part-2.js +14 -2
  75. package/dist/sdk/governance/assurance-action.d.ts +3 -7
  76. package/dist/sdk/governance/assurance-action.js +97 -2
  77. package/dist/sdk/governance/boundary-fixtures.d.ts +86 -0
  78. package/dist/sdk/governance/boundary-fixtures.js +201 -0
  79. package/dist/sdk/governance/defect-recurrence-signals.d.ts +10 -0
  80. package/dist/sdk/governance/defect-recurrence-signals.js +25 -0
  81. package/dist/sdk/governance/defect-recurrence.d.ts +242 -0
  82. package/dist/sdk/governance/defect-recurrence.js +523 -0
  83. package/dist/sdk/governance.d.ts +2 -0
  84. package/dist/sdk/governance.js +4 -2
  85. package/dist/sdk/graph/governance.js +3 -2
  86. package/dist/sdk/guide-topics.js +191 -2
  87. package/dist/sdk/index.d.ts +3 -0
  88. package/dist/sdk/index.js +4 -2
  89. package/dist/sdk/lifecycle/create.js +4 -2
  90. package/dist/sdk/lifecycle/update-many.js +15 -2
  91. package/dist/sdk/lifecycle/update.js +5 -2
  92. package/dist/sdk/linked-artifacts.js +63 -14
  93. package/dist/sdk/query/get.d.ts +2 -0
  94. package/dist/sdk/query/get.js +32 -7
  95. package/dist/sdk/relationship-analytics.js +90 -14
  96. package/dist/sdk/relationship-kinds/contract.d.ts +4 -0
  97. package/dist/sdk/relationship-kinds/contract.js +3 -2
  98. package/dist/sdk/relationships.d.ts +1 -1
  99. package/dist/sdk/relationships.js +11 -2
  100. package/dist/sdk/schema.d.ts +1 -0
  101. package/dist/sdk/schema.js +2 -2
  102. package/dist/sdk/test/execution.d.ts +6 -2
  103. package/dist/sdk/test/execution.js +39 -13
  104. package/dist/types.d.ts +29 -2
  105. package/dist/types.js +4 -2
  106. package/docs/CONFIGURATION.md +58 -1
  107. package/docs/CONTEXT_INTEGRITY_CONTRACTS.md +58 -0
  108. package/docs/DEFECT_RECURRENCE.md +134 -0
  109. package/docs/DEPENDENCY_KIND_CONTRACT.md +12 -2
  110. package/docs/README.md +2 -0
  111. package/docs/RELATIONSHIP_GRAPH.md +16 -2
  112. package/docs/SDK.md +38 -5
  113. package/docs/SDK_RUNTIME_BOUNDARIES.md +9 -1
  114. package/docs/TESTING.md +18 -1
  115. package/docs/TRUSTWORTHY_CONTEXT_EVIDENCE.md +1 -1
  116. package/marketplace.json +2 -2
  117. package/package.json +6 -4
  118. package/packages/pm-beads/package.json +1 -1
  119. package/packages/pm-calendar/package.json +1 -1
  120. package/packages/pm-command-kit/package.json +1 -1
  121. package/packages/pm-digital-twin/package.json +1 -1
  122. package/packages/pm-governance-audit/package.json +1 -1
  123. package/packages/pm-guide-shell/package.json +1 -1
  124. package/packages/pm-kanban/package.json +1 -1
  125. package/packages/pm-lifecycle-hooks/package.json +1 -1
  126. package/packages/pm-linked-test-adapters/package.json +1 -1
  127. package/packages/pm-search-advanced/package.json +1 -1
  128. package/packages/pm-templates/package.json +1 -1
  129. package/packages/pm-todos/package.json +1 -1
  130. package/packages/pm-vcs/package.json +1 -1
  131. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  132. package/plugins/pm-claude/skills/pm-audit/SKILL.md +26 -0
  133. package/plugins/pm-claude/skills/pm-developer/SKILL.md +26 -0
  134. package/plugins/pm-claude/skills/pm-planner/SKILL.md +26 -0
  135. package/plugins/pm-claude/skills/pm-release/SKILL.md +26 -0
  136. package/plugins/pm-claude/skills/pm-workflow/SKILL.md +26 -0
  137. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  138. package/plugins/pm-codex/skills/pm-auditor/SKILL.md +26 -0
  139. package/plugins/pm-codex/skills/pm-native/SKILL.md +26 -0
  140. package/plugins/pm-codex/skills/pm-release/SKILL.md +26 -0
  141. package/sdk/public-surface.json +588 -20
  142. package/dist/cli-bundle/chunks/chunk-47OQEOQB.js +0 -2
  143. package/dist/cli-bundle/chunks/chunk-HCIYWD6M.js +0 -35
  144. package/dist/cli-bundle/chunks/chunk-IC5W2T34.js +0 -2
  145. package/dist/cli-bundle/chunks/chunk-PANOOBIS.js +0 -13
  146. package/dist/cli-bundle/chunks/chunk-TK6N7HGM.js +0 -8
  147. package/dist/cli-bundle/chunks/chunk-TOFG2URD.js +0 -197
  148. package/dist/cli-bundle/chunks/register-mutation-7YVIG54J.js +0 -20
  149. package/dist/cli-bundle/focused-chunks/chunk-5NMFSX26.js +0 -155
  150. package/dist/cli-bundle/focused-chunks/chunk-725JSCMP.js +0 -2
  151. package/dist/cli-bundle/focused-chunks/chunk-DQ6SMTBF.js +0 -2
  152. package/dist/cli-bundle/focused-chunks/chunk-JX5Z344Q.js +0 -2
  153. package/dist/cli-bundle/focused-chunks/chunk-L4RDYBIQ.js +0 -2
  154. package/dist/cli-bundle/focused-chunks/chunk-QYZERYR5.js +0 -4
  155. package/dist/cli-bundle/focused-chunks/chunk-WY3WRPVN.js +0 -2
@@ -0,0 +1,155 @@
1
+ import{A as ro,Aa as yo,G as oo,Ja as Tt,L as xt,La as Ye,Na as Qe,Oa as Ze,P as In,Q as xn,Qa as ho,R as Tn,Ra as go,S as Ke,Sa as bo,T as io,Ta as wo,U as so,Ua as Eo,Va as ko,Z as ao,_ as co,a as gt,h as St,p as no,q as It,s as be,t as ae,u as H,ua as uo,v as Je,va as lo,wa as fo,xa as mo,ya as _o,za as po}from"./chunk-POEEAD2V.js";import{C as kt,D as vt,E as Sn,G as eo,R as ge,S as se,T as to,W as w,X as Ce,Y as I,Z as x,aa as D,ba as Re,ca as we,da as v,n as bt,o as Jr,p as Kr,q as Yr,r as Qr,v as wt,w as Et,x as Zr}from"./chunk-EHXIKD6K.js";import{AsyncLocalStorage as Xs}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 On=new Xs,vo=/^[A-Za-z0-9](?:[A-Za-z0-9._:-]{0,127})$/u;function Ot(e,t){let n=typeof e=="string"?e.trim():"";return n.length>0?n.slice(0,t):void 0}function Ee(e,t){if(e===void 0)return;let n=typeof e=="object"&&e!==null?e:{},r=Ot(n.id,128),o=Ot(n.parent_id,128);if(r===void 0||!vo.test(r)||o!==void 0&&!vo.test(o)){if(t)throw new Error("Agent episode ids must be 1-128 letters, digits, dots, underscores, colons, or hyphens.");return}let i=Ot(n.label,256);return{id:r,...i===void 0?{}:{label:i},...o===void 0?{}:{parent_id:o}}}function Ne(e){let t={};for(let[n,r]of Object.entries(e??{}).slice(0,32)){let o=n.trim().toLowerCase().slice(0,64),i=Ot(r,256);/^[a-z][a-z0-9_-]{0,63}$/u.test(o)&&i!==void 0&&(t[o]=i)}return t}function Js(e,t,n){let r=On.getStore(),o=Ne({role:t.PM_AGENT_SESSION_ROLE,topic:t.PM_AGENT_SESSION_TOPIC}),i=Ee(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={...Ne(r?.provenance),...o,...Ne(e?.provenance)},a=Ee(e?.episode,!1)??Ee(n,!1)??i??Ee(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 An(e,t){return Js(e.session_context,t,e.client_info?.episode)??{}}function Hf(e,t){let n=On.getStore(),r=Ee(e.episode,!0),o=Ee(n?.episode,!1),i=r!==void 0&&r.parent_id===void 0&&o!==void 0?{...r,parent_id:o.id}:r,s={...Ne(n?.provenance),...Ne(e.provenance)};return On.run({...Object.keys(s).length===0?{}:{provenance:s},...i===void 0?o===void 0?{}:{episode:o}:{episode:i}},t)}function Wf(e){let t=Ne(e.provenance),n=Ee(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 zn}from"node:async_hooks";import{createHash as ea}from"node:crypto";import Ct from"node:fs";import ta from"node:os";import Oo from"node:path";import{createHash as So}from"node:crypto";import{existsSync as Cn,promises as Io,readFileSync as Ks}from"node:fs";import J 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 Ys="session.json";function Rn(e,t){return typeof e=="string"&&e.length>0&&e.length<=t}function xo(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=Rn(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=>Rn(c,128)),a=t.focused_item_id===void 0||Rn(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=xo(r);return o&&n.length<=128?[[n,o]]:[]});return t.length>0?Object.fromEntries(t):void 0}function Nn(e){return J.join(so(e),Ys)}async function At(e){try{let t=await Io.readFile(Nn(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 Dn(e,t){let n=Nn(e);await Io.mkdir(J.dirname(n),{recursive:!0}),await H(n,JSON.stringify(t))}function Mn(e){return/#([a-f0-9]{24})$/u.exec(e.trim())?.[1]??`author-${So("sha256").update(e).digest("hex").slice(0,24)}`}function Pn(e){return[...new Set(e.map(t=>t.trim()).filter(Boolean))].slice(0,32).map(t=>t.slice(0,128))}function Ln(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)}+${So("sha256").update(t.join("\0")).digest("hex").slice(0,12)}`}async function jn(e,t,n){let r=await At(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 Dn(e,s)}async function Kf(e){let t=Mn(e.principal);await jn(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??Ln(r),confidence:o?"high":"medium",rule_version:"v2",evidence:Pn([...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 Yf(e){let t=Mn(e.principal);await jn(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??Ln(r),confidence:o?"high":"medium",evidence:Pn([...r.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],`release:${e.itemId}`]),active_item_ids:r}})}async function Qf(e){let t=Mn(e.principal);await jn(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??Ln(r),confidence:o?"high":"medium",rule_version:"v2",evidence:Pn([...r.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],...(e.lineageIds??[]).map(i=>`lineage:${i}`)]),active_item_ids:r,...o?{focused_item_id:o}:{}}})}function Zs(e,t){let n=t.PM_PATH?.trim();if(n){let o=J.resolve(e,n);if(Cn(J.join(o,"settings.json")))return o;let i=J.join(o,".agents","pm");if(Cn(J.join(i,"settings.json")))return i}let r=J.resolve(e);for(let o=0;o<32;o+=1){let i=J.join(r,".agents","pm");if(Cn(J.join(i,"settings.json")))return i;let s=J.dirname(r);if(s===r)break;r=s}}function To(e){if(!e.key)return;let t=Zs(e.cwd,e.env);if(t)try{let n=JSON.parse(Ks(Nn(t),"utf8"));return xo(n.semantic_attribution?.[e.key])}catch{return}}async function Zf(e){return(await At(e)).focused_item}async function em(e,t){let n=await At(e);await Dn(e,{...n,focused_item:t})}async function tm(e){let n={...await At(e)};delete n.focused_item,await Dn(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 Un=["model","effort","role","topic","version"],Nt=new zn,Ao=new zn,Dt=new zn,na=[{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:[]}],De=new Map,Fn=/^[a-z0-9]+(?:-[a-z0-9]+)*$/u;function P(e){let t=typeof e=="string"?e.trim():void 0;return t&&t.length>0?t:void 0}function ke(e){return[...new Set((e??[]).slice(0,64).map(t=>t.trim()).filter(t=>t.length>0).map(t=>t.slice(0,128)))]}function Mt(e){let t=e.harness.trim().toLowerCase();if(!Fn.test(t))throw new Error(`Invalid harness signal descriptor namespace: ${e.harness}`);return{harness:t,environment_keys:ke(e.environment_keys),model_environment_keys:ke(e.model_environment_keys),session_environment_keys:ke(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),ke(r)]).filter(([n])=>Fn.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"&&Fn.test(n[0])&&(n[1]==="ai_agent_version"||n[1]==="claude_session_file"))),provenance_unavailable_dimensions:ke(e.provenance_unavailable_dimensions).map(n=>n.toLowerCase()),argv_markers:ke(e.argv_markers).map(n=>n.toLowerCase()),client_names:ke(e.client_names).map(n=>n.toLowerCase())}}var Co=na.map(Mt);function ra(e,t){return JSON.stringify(e)===JSON.stringify(t)}function Rt(e,t){return e.toLowerCase().slice(0,512).split(/[/\\\s:=]+/u).filter(r=>r.length>0).includes(t)||e.trim().toLowerCase()===t}function Hn(e=[]){let t=[...Co,...[...De.values()].map(r=>r.descriptor),...Dt.getStore()?.descriptors??[],...e.map(Mt)],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 Wn(e,t){for(let n of t??[]){let r=P(e[n]);if(r)return r.slice(0,256)}}function oa(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 Ro(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 P(r[o+1])?.slice(0,256);let s=n.find(a=>i.startsWith(`${a}=`));if(s)return P(i.slice(s.length+1))?.slice(0,256)}}var ia=new Set(["implementation","implementer","investigator","orchestrator","planner","release-operator","reviewer"]);function ve(e,t){if(e!=="role"||t===void 0)return t;let n=t.trim().toLowerCase().replaceAll(/[_\s]+/gu,"-");return ia.has(n)?n:void 0}function $n(e,t){return P(e?.[t])?.slice(0,256)}var sa=1048576;function aa(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 P(i)?.slice(0,256)}function ca(e,t,n){let r=P(n.CLAUDE_CODE_SESSION_ID);if(!r||!/^[A-Za-z0-9_-]{1,128}$/u.test(r))return;let i=Oo.resolve(t.cwd??process.cwd()).replaceAll(/[^A-Za-z0-9-]/gu,"-"),s=Oo.join(t.home_dir??ta.homedir(),".claude","projects",i,`${r}.jsonl`);try{let a=Ct.openSync(s,"r");try{let c=Ct.fstatSync(a).size,u=Math.min(c,sa),f=Buffer.alloc(u);Ct.readSync(a,f,0,u,Math.max(0,c-u));let l=f.toString("utf8").split(`
2
+ `).reverse();for(let _ of l.slice(0,4096)){let y=aa(_,e);if(y)return y}return}finally{Ct.closeSync(a)}}catch{return}}function da(e,t,n,r){let o=Dt.getStore();if(!(t.probes_enabled!==!1&&o?.probesEnabled!==!1&&!["0","false","off"].includes(P(n.PM_AGENT_PROBES)?.toLowerCase()??"")))return;let s=r?.provenance_resolvers[e];if(s==="claude_session_file")return ca(e,t,n);if(s==="ai_agent_version"){let a=P(n.AI_AGENT);return!a||!r||!Rt(a,r.harness)?void 0:/(?:^|[@/\s])v?(\d+\.\d+(?:\.\d+)?(?:[-+][A-Za-z0-9.-]+)?)$/u.exec(a)?.[1]?.slice(0,256)}}function ua(e,t,n){if(e==="ai_agent_version"){let r=P(n.AI_AGENT);return r!==void 0&&Rt(r,t.harness)}return P(n.CLAUDE_CODE_SESSION_ID)!==void 0}function Bn(e){return e||(Ao.getStore()??{env:process.env,argv:process.argv})}function la(e,t,n,r){let o=e.environment_keys.some(a=>P(t[a])!==void 0),i=e.argv_markers.some(a=>n.some(c=>{let u=c.replaceAll("\\","/");return Rt(u.slice(u.lastIndexOf("/")+1),a)})),s=e.client_names.some(a=>r===a||Rt(r,a));return o||i||s}function fa(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 ma(e){let t=e.find(([n])=>n!==void 0);return t?.[0]?{value:t[0],source:t[1]}:void 0}function _a(e,t,n,r,o,i){let s=`PM_AGENT_${e.toUpperCase().replaceAll("-","_")}`,a=new Set([...Un,...Object.keys(r?.provenance_environment_keys??{})]),c,u,f;a.has(e)&&(c=ve(e,P(n[s])?.slice(0,256)),f=ve(e,Ro(t.argv??[],e)),u=ve(e,oa(t.argv??[],e)));let l={...r?.provenance_environment_keys,model:r?.model_environment_keys},_={...t.client_info?.provenance,model:t.client_info?.model},y=$n(o?.provenance,e),b=ve(e,Wn(n,l[e])),k=ve(e,$n(_,e)),E=ve(e,$n(t.provenance,e)),C=da(e,t,n,r);return ma([[c,"override"],[y,"session"],[f,"argv"],[b,"environment"],[k,"mcp_client"],[E,"host"],[C,"probe"]])??fa(e,i)??(u?{value:u,source:"argv"}:void 0)}function pa(e,t){if(!(!e||!t))return ea("sha256").update(`pm-agent-instance:v1\0${e}\0${t}`).digest("hex").slice(0,24)}function ya(e,t,n,r,o){let i=Object.keys(n?.provenance_environment_keys??{}),s=new Set([...Un,...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 u=_a(c,e,t,n,r,o);u?a[c]=u:n&&(c!=="version"||n.provenance_unavailable_dimensions.includes(c))&&(a[c]=null)}return a}function um(e){let t=e.map(Mt),n=new Map(Co.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=De.get(i.harness);if(s&&!ra(s.descriptor,i))throw new Error(`Harness signal descriptor collision for "${i.harness}"`);r.add(i.harness)}for(let i of t){let s=De.get(i.harness);De.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=De.get(i.harness);!s||s.registrations<=1?De.delete(i.harness):s.registrations-=1}}}}function lm(e,t){return Ao.run(e,t)}function fm(e,t,n={}){let r=e.map(Mt);return Hn(r),Dt.run({descriptors:r,probesEnabled:n.probesEnabled!==!1},t)}function Vn(e){let t=Bn(e),n=t.env??{},r=Hn(t.descriptors),o=[...(t.argv??[]).slice(0,3),...t.process_labels??[]].slice(0,64).map(b=>b.slice(0,512)),i=t.client_info?.name.trim().toLowerCase()??"",s=r.find(b=>la(b,n,o,i)),a=An(t,n),c=[Wn(n,s?.session_environment_keys),P(t.client_info?.session)?.slice(0,256)].find(b=>b!==void 0),u=pa(s?.harness,c),f=To({cwd:t.cwd??process.cwd(),env:n,key:u}),l=ya(t,n,s,a,f),_=l.model,y=[["harness",s?.harness],["model",_?.value],["model_source",_?.source],["session",c],["instance",u],["provenance",Object.keys(l).length>0?l:void 0],["episode",a.episode]];return Object.fromEntries(y.filter(b=>b[1]!==void 0))}function ha(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=ua(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 No(e){let t=Bn(e),n=Vn(t),r=Hn(t.descriptors).find(u=>u.harness===n.harness),o=t.env??{},i=t.probes_enabled!==!1&&Dt.getStore()?.probesEnabled!==!1&&!["0","false","off"].includes(P(o.PM_AGENT_PROBES)?.toLowerCase()??""),s=An(t,o),a=[o.PM_AGENT_ROLE,s.provenance?.role,Wn(o,r?.provenance_environment_keys.role),t.client_info?.provenance?.role,t.provenance?.role,Ro(t.argv??[],"role")].some(u=>{let f=P(u)?.slice(0,256);return f!==void 0&&ve("role",f)===void 0}),c=Object.fromEntries(Un.map(u=>[u,ha(u,n,r,o,i,u==="role"&&a)]));return{...n,provenance_outcomes:c}}function mm(){return process.env.PM_AUTHOR}function _m(e){e===void 0?delete process.env.PM_AUTHOR:process.env.PM_AUTHOR=e}function pm(e){return Vn(e).harness}function ga(e,t,n){let r=Bn(n),o=Vn(r);if(e!==void 0){let s=P(e);return s?{author:s,source:"asserted",...o}:{author:"unknown",source:"unknown",...o}}if(r.env?.PM_AUTHOR!==void 0){let s=P(r.env.PM_AUTHOR);return s?{author:s,source:"asserted",...o}:{author:"unknown",source:"unknown",...o}}let i=P(t);return i?{author:i,source:"configured",...o}:o.harness?{author:`harness:${o.harness}`,source:"detected",...o}:{author:"unknown",source:"unknown",...o}}function Do(e){let t=Nt.getStore();return t?.author===e?t.source:e.startsWith("harness:")?"detected":e==="unknown"?"unknown":"asserted"}function Mo(e){let t=Nt.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 Po(e){let t=Nt.getStore();return t?.author===e&&t.source==="detected"&&t.instance?`${e}#${t.instance}`:e}function Lo(e,t){let n=ga(e,t);return Nt.enterWith(n),n.author}import ba from"node:crypto";import{AsyncLocalStorage as wa}from"node:async_hooks";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="cc84ae55-6dc4-57d4-b7de-c43ae1fb4603")}catch{}})();var Fo=new wa,jo=1024;function $o(){let e=Fo.getStore();if(e===void 0)return;let t=new Date(Date.parse(e.clock)+e.clockReads*e.tickMs).toISOString();return e.clockReads+=1,t}function zo(e){let t=Fo.getStore();if(t===void 0)return;if(!Number.isSafeInteger(e)||e<0||e>jo)throw new Error(`Reproducible token length must be an integer between 0 and ${jo}`);let n="";for(;n.length<e;){let r=ba.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]="7887e752-b1b8-5c5e-9dd8-93b41cb757af")}catch{}})();var Ea=/^([+-]?)(\d+)([hdwm])$/i,ka=/^[+-]?\d+[hdwm](?:[+-]\d+[hdwm])+$/i,va=/^(\d{4})(\d{2})(\d{2})$/,Sa=/^(\d{4})(\d{2})(\d{2})(?:[T\s]?)(\d{2})(\d{2})(\d{2})?([.,]\d{1,3})?(Z|[+-]\d{2}:?\d{2})?$/i,Ia=/^(\d{4}-\d{2}-\d{2})[T\s](\d{2})-(\d{2})(?:-(\d{2}))?([.,]\d{1,3})?(Z|[+-]\d{2}:?\d{2})?$/i,xa=/^(\d{4}-\d{2}-\d{2})[T\s](\d{2})(\d{2})(\d{2})?([.,]\d{1,3})?(Z|[+-]\d{2}:?\d{2})?$/i,Ta=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:\.\d+)?(?:Z|[+-](\d{2}):(\d{2}))$/i;function Se(){return $o()??new Date().toISOString()}function ce(e){return Number.isFinite(Date.parse(e))}function Ho(e){let t=Ta.exec(e);if(!t||!Number.isFinite(Date.parse(e)))return!1;let[,n,r,o,i,s,a,c,u]=t,[f,l,_,y,b,k]=[n,r,o,i,s,a].map(Number);return l>=1&&l<=12&&_>=1&&_<=Xn(f,l-1)&&y<=23&&b<=59&&k<=59&&(c===void 0||Number(c)<=23)&&(u===void 0||Number(u)<=59)}var Oa=1e4,Pt=new Map;function Uo(e){let t=Pt.get(e);if(t!==void 0)return t;let n=Date.parse(e);return Pt.size>=Oa&&Tt(Pt),Pt.set(e,n),n}function z(e,t){let n=Uo(e),r=Uo(t);return Number.isFinite(n)&&Number.isFinite(r)&&n!==r?n-r:e.localeCompare(t)}function Sm(e,t){return!(t.deadlineBefore&&(!e.deadline||z(e.deadline,t.deadlineBefore)>0)||t.deadlineAfter&&(!e.deadline||z(e.deadline,t.deadlineAfter)<0)||t.updatedAfter&&z(e.updated_at,t.updatedAfter)<0||t.updatedBefore&&z(e.updated_at,t.updatedBefore)>0||t.createdAfter&&z(e.created_at,t.createdAfter)<0||t.createdBefore&&z(e.created_at,t.createdBefore)>0)}function qn(e){return e?`.${e.slice(1).padEnd(3,"0").slice(0,3)}`:""}function Gn(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 Aa(e,t,n){n&&n!==t&&(e.includes(n)||e.push(n))}function Ca(e){let t=[],n=u=>Aa(t,e,u),r=va.exec(e);if(r){let[,u,f,l]=r;n(`${u}-${f}-${l}`)}let o=Sa.exec(e);if(o){let[,u,f,l,_,y,b,k,E]=o,C=b?`:${b}`:"";n(`${u}-${f}-${l}T${_}:${y}${C}${qn(k)}${Gn(E)}`)}let i=Ia.exec(e);if(i){let[,u,f,l,_,y,b]=i,k=_?`:${_}`:"";n(`${u}T${f}:${l}${k}${qn(y)}${Gn(b)}`)}let s=xa.exec(e);if(s){let[,u,f,l,_,y,b]=s,k=_?`:${_}`:"";n(`${u}T${f}:${l}${k}${qn(y)}${Gn(b)}`)}let a=10,c=e.slice(0,a);if(Na(c)){let u=a;for(;u<e.length&&Da(e[u]);)u+=1;u<e.length&&n(`${c}T${e.slice(u)}`)}return t}function Ra(e){let t=Date.parse(e);if(Number.isFinite(t))return t;for(let n of Ca(e)){let r=Date.parse(n);if(Number.isFinite(r))return r}return Number.NaN}function Na(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 Da(e){return e?e===" "||e===" "||e===`
3
+ `||e==="\r"||e==="\f"||e==="\v":!1}function Xn(e,t){return new Date(Date.UTC(e,t+1,0)).getUTCDate()}var Ma=["January","February","March","April","May","June","July","August","September","October","November","December"],Pa=/^(\d{4})-(\d{2})-(\d{2})/,La=/^(\d{4})(\d{2})(\d{2})(?:[T ]?\d{2}|$)/;function ja(e,t,n){let r=Pa.exec(t)??La.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 x(`Invalid ${a} value "${e}". Month "${r[2]}" is out of range \u2014 use a month between 01 and 12.`,I.USAGE);let c=Xn(o,i-1);if(s<1||s>c)throw new x(`Invalid ${a} value "${e}". ${Ma[i-1]} ${o} has ${c} days, so day "${r[3]}" does not exist. Use a real YYYY-MM-DD calendar date.`,I.USAGE)}function Fa(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,Xn(i,s));return n.setUTCFullYear(i,s,a),n}function Im(e,t=new Date,n="deadline"){let r=e.trim();if(r.toLowerCase()==="now")return t.toISOString();let o=Ea.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 Fa(t,a).toISOString();let u=c==="h"?3600*1e3:c==="d"?1440*60*1e3:10080*60*1e3;return new Date(t.getTime()+a*u).toISOString()}ja(e,r,n);let i=Ra(r);if(!Number.isFinite(i)){let s=n.trim().length>0?n.trim():"deadline",a=ka.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 x(`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 Me=1,Wo=1;function Tm(e){let t=e.pm_format_version;return typeof t=="number"&&Number.isInteger(t)&&t>=Me?t:Me}function Bo(e){if(!(typeof e!="number"||!Number.isInteger(e)||e<=Me))return e}function $a(e,t=Wo){return e<t?"outdated":e>t?"ahead":"current"}function Om(e,t=Wo){let n=[],r=[];for(let o of e){let i=$a(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 za={"in-progress":"in_progress",cancelled:"canceled"};function Lt(e,t){if(t){let o=wo(e,t);if(o)return o}if(typeof e!="string")return;let n=e.trim().toLowerCase();if(!n)return;let r=za[n]??n;if(bt.includes(r))return r}function Ua(e,t){return Lt(e,t)??e}function Nm(e,t){return t.terminal_statuses.has(Ua(e,t))}import{encode as Za}from"@toon-format/toon";import{isDeepStrictEqual as Jo}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]="91a3969e-59b3-506e-9349-ca08e73a1228")}catch{}})();var Ha=16;function Jn(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 Wa(e){return[...new Set([ko(e),Jn(e.key),Jn(e.cli_flag),...e.cli_aliases.map(t=>Jn(t))])]}function Go(e,t){for(let n of Wa(t)){if(!Object.hasOwn(e,n))continue;let r=e[n];if(r!==void 0)return r}}function Xo(e){return Array.isArray(e)?e.flatMap(t=>Xo(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 Vo(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 x(`${t} must be one of true|false|1|0|yes|no`,I.USAGE)}function qo(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 x(`${t} must be a number`,I.USAGE);return r}function Ba(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 x(`${t} must be valid JSON ${n}`,I.USAGE)}function Va(e,t){return t===void 0?!0:t==="array"?Array.isArray(e):t==="object"?typeof e=="object"&&e!==null&&!Array.isArray(e):typeof e===t}function qa(e,t,n){if(t.const!==void 0&&D(e)!==D(t.const))return`${n} must equal ${D(t.const)}`;if(t.enum!==void 0&&!t.enum.some(r=>D(r)===D(e)))return`${n} must be one of ${t.enum.map(r=>D(r)).join("|")}`;if(!Va(e,t.type))return`${n} must match configured type ${String(t.type)}`;if(typeof e=="string"){if(t.min_length!==void 0&&e.length<t.min_length)return`${n} must contain at least ${t.min_length} characters`;if(t.format==="date-time"&&!Ho(e))return`${n} must be an RFC 3339 date-time`}}function Ga(e,t,n,r){if(Array.isArray(e)){if(t.min_items!==void 0&&e.length<t.min_items)return`${n} must contain at least ${t.min_items} items`;if(t.items)for(let[o,i]of e.entries()){let s=jt(i,t.items,`${n}[${o}]`,r+1);if(s)return s}}}function Xa(e,t,n,r){if(typeof e!="object"||e===null||Array.isArray(e))return;let o=e;for(let i of t.required??[])if(!Object.hasOwn(o,i))return`${n}.${i} is required`;for(let[i,s]of Object.entries(o)){let a=t.properties?.[i];if(!a){if(t.additional_properties===!1)return`${n}.${i} is not allowed`;continue}let c=jt(s,a,`${n}.${i}`,r+1);if(c)return c}}function jt(e,t,n,r=0){if(r>Ha)return`${n} value schema exceeds maximum depth`;let o=qa(e,t,n);if(o)return o;let i=Ga(e,t,n,r);if(i)return i;let s=Xa(e,t,n,r);if(s)return s;if(!t.one_of)return;let a=0;for(let c of t.one_of)if(jt(e,c,n,r+1)===void 0&&(a+=1,a>1))break;return a===1?void 0:`${n} must match exactly one configured schema variant`}function Ie(e,t,n){if(!e.value_schema||t===void 0)return t;let r=jt(t,e.value_schema,n);if(r)throw new x(r,I.USAGE);return t}function et(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:Ie(e,Ba(i,r,e.type),r)}if(e.repeatable||e.type==="string_array"){let i=Xo(t);return e.type==="number"?Ie(e,i.map(s=>qo(s,r)),r):e.type==="boolean"?Ie(e,i.map(s=>Vo(s,r)),r):Ie(e,i,r)}let o=Array.isArray(t)?t[t.length-1]:t;if(o!==void 0)return e.type==="number"?Ie(e,qo(o,r),r):e.type==="boolean"?Ie(e,Vo(o,r),r):Ie(e,typeof o=="string"?o:String(o),r)}function Ja(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 $m(e,t,n){let r={},o=[];for(let i of t.command_to_fields.get("create")??[]){let s=Go(e,i);if(s===void 0){Ja(i,n)&&o.push(`--${i.cli_flag}`);continue}r[i.metadata_key]=et(i,s)}return{values:r,missing_required_flags:[...new Set(o)].sort((i,s)=>i.localeCompare(s))}}function zm(e,t,n=["update"]){let r={},o=(n??["update"]).flatMap(s=>t.command_to_fields.get(s)??[]),i=new Set;for(let s of o){let a=Go(e,s);a!==void 0&&(i.has(s.metadata_key)||(i.add(s.metadata_key),r[s.metadata_key]=et(s,a)))}return r}import{decode as Ka}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 Kn(e){return{value:Ka(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 Ya=/^\s*(<<<<<<<|=======|>>>>>>>)(?:\s.*)?$/;function Qa(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(Ya);if(!i)continue;let s=i[1];n.push({line:r+1,marker:s,text:o})}return n}function Ft(e){return Qa(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 ec=new Set(["schema","tracker","auto"]),tc=new Set(["passed","failed","stopped","canceled"]),nc=new Set(eo);function je(e){return e.replaceAll("\\","/")}function Qo(e){for(let t of e)if(t!==0)return t;return 0}function $t(e){for(let[t,n]of Object.entries(e))n===void 0&&delete e[t]}var Zo=["id","title","description","created_at","updated_at"],rc=new Set(se);function ei(e){if(e?.schema)return{statusRegistry:bo(e.schema),fieldRegistry:Eo(e.schema),unknownFieldPolicy:e.schema.unknown_field_policy??"allow",extensionFieldNames:new Set(e.extensionFieldNames??[]),onWarning:e.onWarning}}function oc(e,t){return e.required?e.required_types.length===0?!0:e.required_types.map(n=>n.toLowerCase()).includes(t.trim().toLowerCase()):!1}function de(e){let t=e.match(/^([a-z_][\w.]*)\s/u)?.[1];throw new x(`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 rt(e,t){throw new x(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 ti(e){let t=new Set(rc);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||de(t)}function ot(e,t){return(typeof e!="object"||e===null||Array.isArray(e))&&de(t),e}function Yn(e,t){let n=e[t];g(typeof n=="string",`${t} must be a string`),g(ce(n),`${t} must be a valid ISO timestamp`)}function Ko(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 er(e,t,n){let r=e[t];r!==void 0&&(g(typeof r=="string",`${n} must be a string`),g(ce(r),`${n} must be a valid ISO timestamp`))}function ic(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(vt.includes(n),`event.recurrence.by_weekday entries must be one of: ${vt.join(", ")}`)}}}function sc(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 ac(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(ce(t),"event.recurrence.exdates entries must be valid ISO timestamps")}}function cc(e){let t=ot(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(kt.includes(n),`event.recurrence.freq must be one of: ${kt.join(", ")}`),Ko(t,"interval","event.recurrence.interval"),Ko(t,"count","event.recurrence.count"),er(t,"until","event.recurrence.until"),ic(t.by_weekday),sc(t.by_month_day),ac(t.exdates)}function dc(e){for(let r of Zo)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>=Me,`pm_format_version must be an integer >= ${Me}`),t}function uc(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=Lt(n,r),i=r?r.definitions.map(s=>s.id):[...bt];g(o!==void 0,`status must be one of: ${i.join(", ")}`)}function lc(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 fc(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"||Et.includes(n);g(r,`confidence string value must be one of: ${[...Et,"med"].join(", ")}`);return}g(!1,"confidence must be a number or string")}}function mc(e){let t=e.severity;if(t===void 0)return;typeof t!="string"&&de("severity must be a string");let n=t.trim().toLowerCase(),r=n==="med"||wt.includes(n);g(r,`severity value must be one of: ${[...wt,"med"].join(", ")}`)}function _c(e){e.regression!==void 0&&typeof e.regression!="boolean"&&de("regression must be a boolean")}function pc(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=ot(n,"reminders entries must be objects");g(typeof r.at=="string","reminder.at must be a string"),g(ce(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 yc(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 hc(e){e.recurrence!==void 0&&(cc(e.recurrence),e.recurrence.until!==void 0&&g(z(e.recurrence.until,e.start_at)>=0,"event.recurrence.until must be at or after event.start_at"))}function gc(e){let t=ot(e,"events entries must be objects");g(typeof t.start_at=="string","event.start_at must be a string"),g(ce(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(ce(t.end_at),"event.end_at must be a valid ISO timestamp"),g(z(t.end_at,t.start_at)>0,"event.end_at must be after event.start_at")),yc(t),t.all_day!==void 0&&g(typeof t.all_day=="boolean","event.all_day must be a boolean"),hc(t)}function bc(e){let t=e.events;if(t!==void 0){g(Array.isArray(t),"events must be an array");for(let n of t)gc(n)}}function wc(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 Ec(e){let t=e.type_options;if(t===void 0)return;let n=ot(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 kc(e,t,n){if(n?.fieldRegistry)for(let r of n.fieldRegistry.definitions){let o=e[r.metadata_key];if(o===void 0){oc(r,t)&&de(`missing required schema field: ${r.metadata_key}`);continue}try{e[r.metadata_key]=et(r,o,`metadata field "${r.metadata_key}"`)}catch(i){de(String(i?.message).replace(/^Invalid\s+/u,""))}}}function vc(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let n=ti(t),r=Object.keys(e).filter(o=>!n.has(o)).sort((o,i)=>o.localeCompare(i));r.length!==0&&(t.unknownFieldPolicy==="reject"?de(`unknown schema fields are not allowed: ${r.join(", ")}`):t.onWarning?.(`item_unknown_schema_fields:${r.join(",")}`))}function tr(e,t){let n=ot(e,"item metadata must be an object"),r=dc(n);uc(n,t),lc(n),fc(n),mc(n),_c(n),Yn(n,"created_at"),Yn(n,"updated_at"),n.deadline!==void 0&&Yn(n,"deadline"),pc(n),bc(n),er(n,"closed_at","closed_at"),er(n,"completed_at","completed_at"),wc(n),Ec(n),kc(n,r,t),vc(n,t)}function Sc(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=z(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 Qn(e){if(!(!e||e.length===0))return[...e].sort((t,n)=>{let r=z(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 Ic(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=z(n.at,r.at);return o!==0?o:n.text.localeCompare(r.text)});return t.length===0?void 0:t}function xc(e){if(!e)return;let t=e.freq.trim().toLowerCase();if(!kt.includes(t))return;let n=Array.from(new Set((e.by_weekday??[]).map(s=>s.trim().toLowerCase()).filter(s=>vt.includes(s)))).sort((s,a)=>Sn(s)-Sn(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=>ce(s)))).sort((s,a)=>z(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 Tc(e){return!Array.isArray(e)||e.length===0?void 0:[...e].map(Oc).sort(Ac)}function Oc(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:xc(e.recurrence)};return $t(t),t}function Ac(e,t){return Qo([z(e.start_at,t.start_at),(e.end_at??"").localeCompare(t.end_at??""),(e.title??"").localeCompare(t.title??""),+!!e.all_day-+!!t.all_day,(e.timezone??"").localeCompare(t.timezone??""),(e.location??"").localeCompare(t.location??""),(e.description??"").localeCompare(t.description??""),JSON.stringify(e.recurrence??{}).localeCompare(JSON.stringify(t.recurrence??{}))])}function Cc(e){if(!(!e||e.length===0))return e.map(t=>({path:je(t.path),scope:t.scope,note:t.note?.trim()||void 0}))}function Rc(e){if(!e||e.length===0)return;let t=e.map(Mc).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)=>Qo([z(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 Pe(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?Math.floor(e):void 0}function Nc(e){return typeof e=="number"&&Number.isFinite(e)&&e>=1?Math.floor(e):void 0}function Zn(e){return typeof e=="string"?e:""}function Dc(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 Mc(e){let t=typeof e.run_id=="string"?e.run_id.trim():"",n=e.kind==="test"||e.kind==="test-all"?e.kind:"test",r=tc.has(e.status)?e.status:"failed",o={run_id:t,kind:n,status:r,started_at:Zn(e.started_at),finished_at:Zn(e.finished_at),recorded_at:Zn(e.recorded_at),attempt:Nc(e.attempt),resumed_from:e.resumed_from?.trim()||void 0,passed:Pe(e.passed)??0,failed:Pe(e.failed)??0,skipped:Pe(e.skipped)??0,items:Pe(e.items),linked_tests:Pe(e.linked_tests),fail_on_skipped_triggered:e.fail_on_skipped_triggered===!0?!0:void 0,measurements:Dc(e.measurements)};return $t(o),o}function Pc(e){if(!(!Array.isArray(e)||e.length===0))return e.map(Fc)}function tt(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 ni(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function rr(e){return e==="__proto__"||e==="constructor"||e==="prototype"}function Yo(e){if(!ni(e))return;let t=Object.entries(e).map(([n,r])=>[n.trim(),String(r).trim()]).filter(([n,r])=>n.length>0&&!rr(n)&&r.length>0).sort(([n],[r])=>n.localeCompare(r));return t.length>0?Object.fromEntries(t):void 0}function Lc(e){if(!ni(e))return;let t=Object.entries(e).map(([n,r])=>[n.trim(),Number(r)]).filter(([n,r])=>n.length>0&&!rr(n)&&Number.isFinite(r)).sort(([n],[r])=>n.localeCompare(r));return t.length>0?Object.fromEntries(t):void 0}function jc(e){let t=e?.trim().toLowerCase();if(!(!t||!ec.has(t)))return t}function Fc(e){let t={command:e.command?.trim()||void 0,path:e.path?je(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:jc(e.pm_context_mode),env_set:Yo(e.env_set),env_clear:tt(e.env_clear),shared_host_safe:e.shared_host_safe===!0?!0:void 0,assert_stdout_contains:tt(e.assert_stdout_contains),assert_stdout_regex:tt(e.assert_stdout_regex),assert_stderr_contains:tt(e.assert_stderr_contains),assert_stderr_regex:tt(e.assert_stderr_regex),assert_stdout_min_lines:Pe(e.assert_stdout_min_lines),assert_json_field_equals:Yo(e.assert_json_field_equals),assert_json_field_gte:Lc(e.assert_json_field_gte),note:e.note?.trim()||void 0};return $t(t),t}function $c(e){if(!(!e||e.length===0))return[...e].map(t=>({path:je(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 zc(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 Uc(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:je(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 Hc(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=je(i));let a=h(r.note);a&&(s.note=a),t.push(s)}return t.length>0?t:void 0}function Wc(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=h(r.path);if(!o)continue;let i={path:je(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 Bc(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&&nc.has(o)?o:void 0,s=co(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 u={id:n,order:s,title:r,status:i,created_at:a,updated_at:c};return Vc(u,t),u}function Vc(e,t){let n=[["body","body"],["owner","owner"],["evidence","evidence"],["blocked_reason","blocked_reason"],["superseded_by","superseded_by"]];for(let[i,s]of n){let a=h(t[s]);a&&(e[i]=a)}let r=typeof t.completed_at=="string"?t.completed_at:void 0;r&&r.length>0&&(e.completed_at=r);let o=[["linked_items","linked_items",zc],["files","files",Uc],["tests","tests",Hc],["docs","docs",Wc]];for(let[i,s,a]of o){let c=a(t[s]);c&&(e[i]=c)}}function qc(e){if(!Array.isArray(e))return;let t=e.flatMap(n=>{let r=Bc(n);return r?[r]:[]});return t.sort((n,r)=>n.order-r.order),t.length>0?t:void 0}function Gc(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=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 u=h(r.evidence);u&&(a.evidence=u);let f=h(r.step_id);f&&(a.step_id=f),t.push(a)}return t.length>0?t:void 0}function Xc(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=typeof r.ts=="string"?r.ts:"",i=typeof r.author=="string"?r.author:"",s=h(r.text);if(!o||!i||!s)continue;let a={ts:o,author:i,text:s},c=h(r.step_id);c&&(a.step_id=c),t.push(a)}return t.length>0?t:void 0}function Jc(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 Kc(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 Le(e){let t=0;for(;t<e.length&&e[t]===`
4
+ `;)t+=1;return e.slice(t).trimEnd()}function Yc(e){if(e===void 0)return;if(typeof e=="number")return e;let t=e.trim().toLowerCase();if(t==="med")return"medium";if(Et.includes(t))return t}function Qc(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(t==="med")return"medium";if(wt.includes(t))return t}function nt(e){return e||void 0}function Zc(e,t){let n=e,r=t;for(let[o,i]of Object.entries(r))rr(o)||Object.prototype.hasOwnProperty.call(n,o)||i===void 0||(n[o]=i)}function ed(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]=et(r,o,`metadata field "${r.metadata_key}"`))}}function td(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let n=ti(t),o=Object.keys(e).filter(i=>!n.has(i)).sort((i,s)=>i.localeCompare(s));o.length>0&&t.unknownFieldPolicy==="reject"&&de(`unknown schema fields are not allowed: ${o.join(", ")}`),o.length>0&&t.onWarning?.(`item_unknown_schema_fields:${o.join(",")}`)}function zt(e,t={}){let n=ei(t),r=Lt(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:Bo(e.pm_format_version),source_type:h(e.source_type),type_options:Kc(e.type_options),status:r,priority:e.priority,tags:o,created_at:e.created_at,updated_at:e.updated_at,dependencies:Sc(e.dependencies),comments:Qn(e.comments),notes:Qn(e.notes),learnings:Qn(e.learnings),files:Cc(e.files),tests:Pc(e.tests),test_runs:Rc(e.test_runs),docs:$c(e.docs),deadline:nt(e.deadline),reminders:Ic(e.reminders),events:Tc(e.events),closed_at:nt(e.closed_at),completed_at:nt(e.completed_at),assignee:h(e.assignee),claim_principal:h(e.claim_principal),source_owner:h(e.source_owner),author:nt(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:Yc(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:Qc(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:nt(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:qc(e.plan_steps),plan_decisions:Gc(e.plan_decisions),plan_discoveries:Xc(e.plan_discoveries),plan_validation:Jc(e.plan_validation)};return Zc(i,e),ed(i,n),td(i,n),$t(i),i}function ri(e){return v(e,se)}function nd(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 rd(e){if(!e.startsWith("{"))return{frontMatter:"",body:e};let t=nd(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 od(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 nr(e,t){return zt(e,{...t,onWarning:void 0})}function id(e,t,n={}){let r=od(e);r.stripped&&n.onWarning?.("json_markdown_leading_yaml_frontmatter_ignored");let{frontMatter:o,body:i}=rd(r.content);o||(e.trimStart().startsWith("{")&&rt("json_markdown","JSON front matter is not valid JSON"),rt("json_markdown","JSON Markdown item document is missing JSON front matter"));let s;try{s=JSON.parse(o)}catch{rt("json_markdown","JSON front matter is not valid JSON")}return tr(s,t),{metadata:nr(s,n),body:Le(i)}}function sd(e,t,n={}){let r;try{r=Kn(e).value}catch{rt("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(!Zo.some(a=>Object.prototype.hasOwnProperty.call(o,a))&&!Object.prototype.hasOwnProperty.call(o,"front_matter")&&rt("toon","TOON input does not have the shape of an item document"),Object.prototype.hasOwnProperty.call(o,"front_matter"))return tr(o.front_matter,t),g(o.body===void 0||typeof o.body=="string","TOON item document body must be a string"),{metadata:nr(o.front_matter,n),body:Le(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"),tr(s,t),{metadata:nr(s,n),body:Le(typeof i=="string"?i:"")}}function ad(e,t={}){let n=zt(e.metadata,t),r=ri(n),o=JSON.stringify(r,null,2),i=Le(e.body??"");return i?`${o}
6
+
7
+ ${i}
8
+ `:`${o}
9
+ `}function cd(e,t={}){let n=zt(e.metadata,t),r=ri(n),o=Le(e.body??""),i={...r,body:o},s=JSON.parse(JSON.stringify(i)),a=Za(s),c;try{c=Kn(a).value}catch(u){throw new x("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:u instanceof Error?u.message:String(u)})}if(!Jo(c,s)){let u=typeof c=="object"&&c!==null&&!Array.isArray(c)?c:{},f=Object.keys(s).find(l=>!Jo(s[l],u[l]))??"document";throw new x(`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 Ut(e,t={}){let n=Ft(e);if(n)throw new x(`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=ei(t);return r==="toon"?sd(e,o,t):id(e,o,t)}function oi(e,t={}){return(t.format??"toon")==="toon"?cd(e,t):ad(e,t)}function q(e,t={}){return{metadata:zt(e.metadata,t),body:Le(e.body??"")}}import{existsSync as ud}from"node:fs";import{AsyncLocalStorage as ld}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 d_(){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 dd(){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 Fe=null,si=null,fd=null,md=null,or=null,_d=null,ai=null,pd=null;var yd=[],ci=new ld;function L(){return ci.getStore()}function k_(e){return ci.run({hooks:null,commands:null,parsers:null,preflight:null,services:null,renderers:null,registrations:null,commandContext:null,commandResult:void 0,affectedItems:[]},e)}var hd=new Set(["body","comments","dependencies","docs","events","files","learnings","notes","reminders","test_runs","tests"]);function ii(e){let t=Z.resolve(e);for(;;){if(ud(Z.join(t,".git")))return t;let n=Z.dirname(t);if(n===t)return;t=n}}function gd(e){let t=process.env.PM_SOURCE_WORKSPACE_ROOT?.trim()||process.cwd(),n=ii(t)??Z.resolve(t),r=ii(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 v_(e){let t=L();if(t){t.hooks=e;return}Fe=e}function S_(e){let t=L();if(t){t.commands=e;return}si=e}function I_(e){let t=L();if(t){t.parsers=e;return}fd=e}function x_(e){let t=L();if(t){t.preflight=e;return}md=e}function T_(e){let t=L();if(t){t.services=e;return}or=e}function O_(e){let t=L();if(t){t.renderers=e;return}_d=e}function A_(e){let t=L();if(t){t.registrations=e;return}ai=e}function it(){let e=L();return e?e.registrations:ai}function ir(e){if(!e)return;let t=L();t?t.affectedItems.push(e):yd.push(e)}function Ht(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"||hd.has(i)||Object.hasOwn(r,i)&&r[i]!==void 0&&(n[i]=r[i])}return n}async function G(e){let t=L(),n=t?t.hooks:Fe;return n?lo(n,e):[]}async function sr(e){let t=L(),n=t?t.hooks:Fe;n&&await uo(n,e)}async function K(e){let t=L(),n=t?t.hooks:Fe;return n?fo(n,e):[]}function ar(){let e=L();return((e?e.hooks:Fe)?.onRead?.length??0)>0}async function C_(e){let t=L(),n=t?t.hooks:Fe;return n?mo(n,e):[]}async function R_(e){let t=L(),n=t?t.commands:si;return n?_o(n,{...e,...gd(e.pm_root)}):{handled:!1,result:null,warnings:[]}}function di(e,t){let n=L(),r=n?n.commandContext:pd;return{service:e,command:r?.command,args:r?[...r.args]:[],options:r?.options?{...r.options}:{},global:r?.global?{...r.global}:void 0,pm_root:r?.pm_root,source_workspace_root:r?.source_workspace_root,repo_root:r?.repo_root,pm_root_rel:r?.pm_root_rel,payload:t}}async function ee(e,t){let n=L(),r=n?n.services:or;return r?yo(r,di(e,t)):{handled:!1,result:t,warnings:[]}}function ui(e,t){let n=L(),r=n?n.services:or;return r?po(r,di(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 $e(e,t){let n=await ae(e);if(n===null)return[];if(await K({path:e,scope:"project"}),n.trim()==="")return[];let r=Ft(n);if(r)throw new x(`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 x(`History for ${t} contains invalid JSON at line ${i+1}. Repair or restore the history stream and retry.`,I.GENERIC_FAILURE)}}return o}import br 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 xi from"fast-json-patch";import ue from"node:fs/promises";import te from"node:path";import{randomUUID as bd}from"node:crypto";import{createRequire as wd}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 Ed="history-event-index.sqlite",cr="2";function Vt(e){return te.join(e,"runtime",Ed)}function kd(e){try{return e(["node","sqlite"].join(":")).DatabaseSync??null}catch{return null}}function vd(e,t){let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>=22?kd(t):null}var Wt;function dr(){return Wt!==void 0||(Wt=vd(process.versions.node,wd(import.meta.url))),Wt}function Sd(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(cr)}function li(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 J_(e){let t=dr();if(!t)return!1;let n=te.join(e,"history"),o=(await ue.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,u)=>c.name.localeCompare(u.name)),i=Vt(e);await ue.mkdir(te.dirname(i),{recursive:!0});let s=`${i}.${bd()}.tmp`,a;try{a=new t(s),Sd(a),a.exec("BEGIN IMMEDIATE");for(let c of o){let u=c.name.slice(0,-6),f=await $e(te.join(n,c.name),u);for(let[l,_]of f.entries())li(a,{stream_id:u,stream_offset:l,entry:_})}return a.exec("COMMIT"),a.close(),a=void 0,await ue.rm(i,{force:!0}),await ue.rename(s,i),!0}catch(c){throw a?.close(),await ue.rm(s,{force:!0}),c}}async function fi(e,t){let n=te.dirname(te.dirname(e)),r=Vt(n);try{await ue.access(r)}catch{return}let o=dr();if(!o)return;let i;try{if(i=new o(r),i.prepare("SELECT value FROM metadata WHERE key = 'version'").get()?.value!==cr)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);li(i,{stream_id:a,stream_offset:Number(c.value),entry:t}),i.close()}catch{i?.close(),await ue.rm(r,{force:!0})}}async function qt(e){await ue.rm(Vt(te.dirname(te.dirname(e))),{force:!0})}function Bt(e,t,n,r){!r||r.length===0||(e.push(`${n} IN (${r.map(()=>"?").join(", ")})`),t.push(...r))}function Id(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 K_(e,t){let n=dr();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)),Bt(r,o,"op",t.ops),Bt(r,o,"author",t.authors),Id(r,o,t.harnesses,t.harness_alias_authors),Bt(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);Bt(r,o,"stream_id",t.stream_ids);let i=r.length===0?"":` WHERE ${r.join(" AND ")}`,s;try{if(s=new n(Vt(e),{readOnly:!0}),s.prepare("SELECT value FROM metadata WHERE key = 'version'").get()?.value!==cr)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),u=c.length>t.limit,f=c.slice(0,t.limit).map(l=>({stream_id:String(l.stream_id),stream_offset:Number(l.stream_offset),entry:JSON.parse(String(l.entry_json))}));return s.close(),{events:f,has_more:u}}catch{return s?.close(),null}}import yr 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]="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 Gt="changed_fields",xd="changed_field_count",ur="rows",Td=new Set(["apply","rollback"]),mi=new Set(["deleted","would_delete"]);function xe(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function _i(e){let t=e[Gt];if(!Array.isArray(t))return null;let n=Object.getPrototypeOf(e)===null?Object.create(null):{};for(let[r,o]of Object.entries(e))r!==Gt&&(n[r]=o);return n[xd]=t.length,n}function Od(e){return"item"in e&&Array.isArray(e[Gt])}function Ad(e){return typeof e.mode=="string"&&Td.has(e.mode)&&Array.isArray(e[ur])}function Cd(e,t){let n=Object.getPrototypeOf(e)===null?Object.create(null):{};return Object.assign(n,e),n[ur]=t,n}function Rd(e){if(!xe(e))return null;let t=xe(e.item)?e.item:xe(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"&&mi.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 Nd(e){if(!xe(e)||!xe(e.item)||typeof e.item.id!="string")return null;let t=e[Gt];if(!Array.isArray(t))return null;let n={id:e.item.id,...typeof e.outcome=="string"&&mi.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 Dd(e){let t=Ad(e)?e[ur]:void 0;if(!Array.isArray(t))return{projected:e,changed:!1};let n=!1,r=t.map(o=>{if(!xe(o))return o;let i=_i(o);return i?(n=!0,i):o});return n?{projected:Cd(e,r),changed:!0}:{projected:e,changed:!1}}function Md(e,t={}){if(t.idOnly===!0){let a=Rd(e);if(a!==null)return a}if(t.compactEnvelope===!0){let a=Nd(e);if(a!==null)return a}if((t.changedFields??"full")==="full"||!xe(e))return e;let r=!1,o=e,i=Od(e)?_i(e):null;i!==null&&(o=i,r=!0);let s=Dd(o);return s.changed&&(o=s.projected,r=!0),r?o:e}import{encode as hi}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]="202cbb3e-71fe-5701-a1f5-eb515bf56561")}catch{}})();var hp=new Set(Object.values(I));var pi=!1;function ze(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function lr(e){return typeof e=="object"&&e!==null&&e.code==="EPIPE"}function Pd(){(process.exitCode===void 0||process.exitCode===I.SUCCESS)&&(process.exitCode=I.SUCCESS)}function Ld(){(process.exitCode===void 0||process.exitCode===I.SUCCESS)&&(process.exitCode=I.GENERIC_FAILURE)}function fr(e){if(e==="stdout"){Pd();return}Ld()}function yi(e){let t=e instanceof Error?e:new Error(String(e));setImmediate(()=>{throw t})}function jd(){pi||(pi=!0,process.stdout.on("error",e=>{if(lr(e)){fr("stdout");return}yi(e)}),process.stderr.on("error",e=>{if(lr(e)){fr("stderr");return}yi(e)}))}function Fd(e,t){jd();try{return e==="stdout"?process.stdout.write(t):process.stderr.write(t),!0}catch(n){if(lr(n))return fr(e),!1;throw n}}function Xt(e){return Fd("stderr",e)}function mr(e){return typeof e=="string"?JSON.stringify(e):typeof e=="number"||typeof e=="boolean"?String(e):e===null?"null":JSON.stringify(e)}function $d(e){return e===null||typeof e=="string"||typeof e=="number"||typeof e=="boolean"}function gi(e){if(e.length===0||!e.every(ze))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)&&$d(n[r])))}function bi(e,t){let n=" ".repeat(t);return e.split(`
45
+ `).map(r=>`${n}${r}`).join(`
46
+ `)}function zd(e,t,n){let r=" ".repeat(n);return!ze(t)&&!Array.isArray(t)?`${r}${e}: ${mr(t)}`:Array.isArray(t)&&t.length===0?`${r}${e}: []`:Array.isArray(t)&&gi(t)?bi(hi({[e]:t}),n):ze(t)&&Object.keys(t).length===0?`${r}${e}: {}`:`${r}${e}:
47
+ ${pr(t,n+1)}`}function _r(e){if(e!=null){if(Array.isArray(e)){let t=e.map(n=>_r(n)).filter(n=>n!==void 0);return t.length>0?t:void 0}if(ze(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=_r(r);o!==void 0&&(t[n]=o)}return Object.keys(t).length>0?t:void 0}return e}}function pr(e,t){let n=" ".repeat(t);if(Array.isArray(e))return e.length===0?"[]":gi(e)?bi(hi(e),t):e.map(r=>{if(!ze(r)&&!Array.isArray(r))return`${n}- ${mr(r)}`;let i=pr(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(ze(e)){let r=Object.entries(e);return r.length===0?"{}":r.map(([o,i])=>zd(o,i,t)).join(`
52
+ `)}return`${n}${mr(e)}`}function gp(e,t){if(t==="json")return`${JSON.stringify(e,null,2)}
53
+ `;let n=_r(e);return n===void 0?`{}
54
+ `:`${pr(n,0)}
55
+ `}function bp(e){let t=ui("error_format",{message:e}),n=t.handled&&typeof t.result=="string"?t.result:e;Xt(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 Ud=Ue.join("runtime","history-drift-cache.json"),wi={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 Ei(e){return typeof e=="object"&&e!==null&&"code"in e&&typeof e.code=="string"?e.code:void 0}async function Hd(e){let t=Ue.join(e,Ud),n=!1,r="invalid_cache_path";try{n=(await yr.stat(await yr.realpath(e))).isDirectory()}catch(o){let i=Ei(o);r=i===void 0?"unknown":wi[i]??"filesystem_error"}if(!n){Xt(`[pm] warning: history_drift_cache_invalidation_failed:${r}
58
+ `);return}try{await yr.rm(t,{force:!0})}catch(o){let i=Ei(o);if(be(o))return;let s=i===void 0?"unknown":wi[i]??"filesystem_error";Xt(`[pm] warning: history_drift_cache_invalidation_failed:${s}
59
+ `)}}async function st(e){let t=Ue.dirname(Ue.resolve(e));Ue.basename(t)==="history"&&await Hd(Ue.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 Bd={front_matter:{},body:""},fe=2,at=[1,2];function Jt(e,t){return(e??"").localeCompare(t??"")}function ki(e,t){return(e??0)-(t??0)}function le(e,t,n){return JSON.stringify(e??n).localeCompare(JSON.stringify(t??n))}function Vd(e,t){return[e.scope.localeCompare(t.scope),Jt(e.path,t.path),Jt(e.command,t.command),ki(e.timeout_seconds,t.timeout_seconds),Jt(e.pm_context_mode,t.pm_context_mode),+!!e.shared_host_safe-+!!t.shared_host_safe,le(e.env_clear,t.env_clear,[]),le(e.env_set,t.env_set,{}),le(e.assert_stdout_contains,t.assert_stdout_contains,[]),le(e.assert_stdout_regex,t.assert_stdout_regex,[]),le(e.assert_stderr_contains,t.assert_stderr_contains,[]),le(e.assert_stderr_regex,t.assert_stderr_regex,[]),ki(e.assert_stdout_min_lines,t.assert_stdout_min_lines),le(e.assert_json_field_equals,t.assert_json_field_equals,{}),le(e.assert_json_field_gte,t.assert_json_field_gte,{}),Jt(e.note,t.note)].find(r=>r!==0)??0}function qd(e){return!e||e==="/"?[]:e.startsWith("/")?e.slice(1).split("/").map(t=>t.replaceAll("~1","/").replaceAll("~0","~")):[]}function Gd(e,t){let n=qd(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 Xd(e,t){let n=[],r=structuredClone(e);for(let o of t){let i=o.op==="replace"&&!Gd(r,o.path)?{...o,op:"add"}:o;n.push(i),r=xi.applyPatch(r,[i],!0,!0).newDocument}return n}function hr(e,t){if(!(e.metadata&&Object.keys(e.metadata).length>0))return{front_matter:{},body:e.body??""};let r=q(e),o=t===1&&r.metadata.tests?{...r.metadata,tests:[...r.metadata.tests].sort(Vd)}:r.metadata;return{front_matter:v(o,se),body:r.body}}function vi(e){if(!(e.metadata&&Object.keys(e.metadata).length>0))return{metadata:{},body:e.body??""};let n=q(e);return{metadata:v(n.metadata,se),body:n.body}}function jp(e){return gr(e,fe)}function gr(e,t){if(!at.some(n=>n===t))throw new TypeError(`unsupported_item_hash_version:${String(t)}`);return we(D(hr(e,t)))}function Fp(){return we(D(Bd))}function He(e){let t=hr(e.before,fe),n=hr(e.after,fe),r=vi(e.before),o=vi(e.after),i=xi.compare(r,o),s=Xd(r,i),a=Mo(e.author),c=a.harness?Object.fromEntries(Object.entries(No().provenance_outcomes).filter(([,f])=>f.status==="failed")):void 0,u=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??Do(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:we(D(t)),after_hash:we(D(n)),item_hash_version:fe,message:e.message===void 0?void 0:e.message,...u===void 0?{}:{context:u}}}function Si(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Jd(e){let t=e.ts.trim();return t.length>0?t:Se()}function Ii(e,t){let n=e.ts;return typeof n=="string"&&n.trim().length>0?e:{...e,ts:t}}function Kt(e,t){let n=Jd(t);if(typeof e=="string"){try{let r=JSON.parse(e);if(Si(r))return JSON.stringify(Ii(r,n))}catch{}return e}return Si(e)?JSON.stringify(Ii(e,n)):JSON.stringify(e)}async function We(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 Je(e,Kt(n.result,t)),await st(e),await qt(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 Je(o,Kt(r.line,t)),await st(o),await qt(o);return}await Je(o,Kt(r.entry??t,t)),await st(o),await qt(o);return}}await Je(e,Kt(t,t)),await st(e),await fi(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]="bf8797ec-53d3-5d23-8a6e-8296a027ddf2")}catch{}})();var Kd={metadata:{},body:""};function Qt(){return structuredClone(Kd)}function Yt(e,t=fe){if(Object.keys(e.metadata).length===0||Array.isArray(e.metadata.tags))try{return gr(Zt(e),t)}catch{}return we(D({replay_fallback:!0,metadata:e.metadata,body:e.body}))}function Zt(e){return{metadata:e.metadata,body:e.body}}function qp(e,t={}){return q(Zt(e),t)}function Gp(e){if(!e.metadata||Object.keys(e.metadata).length===0)return{metadata:{},body:e.body??""};let t=q(e);return{metadata:v(t.metadata,se),body:t.body}}function Ti(e){return e==="/front_matter"?"/metadata":e.startsWith("/front_matter/")?`/metadata/${e.slice(14)}`:e}function Yd(e){return typeof e=="object"&&e!==null&&typeof e.op=="string"&&typeof e.path=="string"}function Ai(e){return Array.isArray(e)?e.filter(Yd).map(t=>({...t,path:Ti(t.path),from:typeof t.from=="string"?Ti(t.from):void 0})):[]}function Qd(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 en(e,t){try{let n=Ai(t),r=br.applyPatch(structuredClone(e),n,!0,!1).newDocument;return Qd(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){return[...new Set(e.map(t=>t.item_hash_version).filter(t=>t!==void 0&&at.includes(t)))]}function eu(e,t){return e!==void 0?[e]:t===void 0?[1,fe]:[t]}function Ci(e){let t=Qt(),n,r;for(let o=0;o<e.length;o+=1){let i=e[o],s=i.item_hash_version;if(s!==void 0&&!at.includes(s))return{ok:!1,errors:[`verify_failed:unsupported_item_hash_version:${String(s)}:entry_${o+1}`]};let a=en(t,i.patch);if(!a.ok)return{ok:!1,errors:[`verify_failed:patch_apply_failed:entry_${o+1}`]};let u=eu(s,r).filter(l=>Yt(t,l)===i.before_hash);if(u.length===0)return{ok:!1,errors:[`verify_failed:before_hash_mismatch:entry_${o+1}`]};let f=u.find(l=>Yt(a.document,l)===i.after_hash);if(f===void 0)return{ok:!1,errors:[`verify_failed:after_hash_mismatch:entry_${o+1}`]};t=a.document,n=f,s!==void 0&&(r=f)}return{ok:!0,errors:[],...n===void 0?{}:{item_hash_version:n}}}function tn(e){let t=Ci(e);return{ok:t.ok,errors:t.errors}}function Oi(e,t){try{return{ok:!0,document:br.applyPatch(structuredClone(e),[t],!0,!1).newDocument}}catch{return{ok:!1}}}function tu(e,t){let n=structuredClone(e),r=0,o=0;for(let a of Ai(t)){let c=Oi(n,a);if(c.ok){n=c.document;continue}if(a.op==="replace"){let u=Oi(n,{...a,op:"add"});if(u.ok){n=u.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 nu(e){let t=Zd(e);if(t.length===1)return t[0];let n=Ci(e);return n.ok&&n.item_hash_version!==void 0?n.item_hash_version:t.length===0?1:fe}function Xp(e,t=nu(e)){let n=e.findIndex(l=>l.item_hash_version!==void 0&&!at.includes(l.item_hash_version));if(n>=0)throw new TypeError(`unsupported_item_hash_version:${String(e[n]?.item_hash_version)}:entry_${n+1}`);let r=Qt(),o=[],i=[],s=0,a=0,c=0,u=0,f=t!==1||e.some(l=>l.item_hash_version!==void 0);for(let l=0;l<e.length;l+=1){let _=e[l],y=Yt(r,t),b=en(r,_.patch),k,E,C=!1,N=0,Q=0;if(b.ok)k=b.document,E=_.patch;else{let U=tu(r,_.patch);k=U.document,E=br.compare(r,k),C=!0,N=U.convertedReplaceToAdd,Q=U.skippedOps,c+=N,u+=Q,a+=1}let j=Yt(k,t),Ae=y!==_.before_hash||j!==_.after_hash;Ae&&(s+=1);let ie={..._,patch:E,before_hash:y,after_hash:j};f?ie.item_hash_version=t:delete ie.item_hash_version,o.push(ie),i.push({index:l+1,rehashed:Ae,patch_repaired:C,converted_replace_to_add:N,skipped_ops:Q}),r=k}return{entries:o,finalDocument:r,entriesRehashed:s,entriesPatchRepaired:a,convertedReplaceToAdd:c,skippedOps:u,details:i,itemHashVersion:t,explicitItemHashVersion:f}}function Jp(e){return e.length===0?"":`${e.map(t=>JSON.stringify(t)).join(`
60
+ `)}
61
+ `}import ru from"node:crypto";import Ri from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="50a277b9-d530-5aa0-8bd0-8eb0d36911e5")}catch{}})();function Di(e){let t=(e??"").trim().toLowerCase();return t?t.endsWith("-")?t:`${t}-`:"pm-"}function wr(e){let t=e.trim().toLowerCase();return t.startsWith("#")&&(t=t.slice(1)),t}function Er(e,t){let n=Di(t),r=wr(e);return r.startsWith(n)?r:`${n}${r}`}function ou(e){let t=zo(e);if(t!==void 0)return t;let n="";for(let r=0;r<e;r+=1)n+=ru.randomInt(0,36).toString(36);return n}async function iu(e,t,n){let r=[...new Set(Object.values(n))].flatMap(o=>[Ri.join(e,o,`${t}.md`),Ri.join(e,o,`${t}.toon`)]);return(await Promise.all(r.map(o=>It(o)))).some(Boolean)}var Ni=4,Mi=12;function su(e){return typeof e!="number"||!Number.isFinite(e)?Ni:Math.min(Mi,Math.max(Ni,Math.trunc(e)))}async function ny(e,t,n={}){let r=su(n.tokenLength),o=Math.min(r+6,Mi),i=0;for(;r<=o;){for(let s=0;s<32;s+=1){let a=`${Di(t)}${ou(r)}`;if(n.probeExisting===!1||!await iu(e,a,n.typeToFolder??ge))return a;i+=1}r+=1}throw new Error(`Unable to generate unique id after ${i} attempts`)}import Te from"node:fs/promises";import Li from"node:path";import{randomUUID as au}from"node:crypto";import{createRequire as cu}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 du="metadata-query-index.sqlite",ct="4";function uu(e){try{return e(["node","sqlite"].join(":")).DatabaseSync??null}catch{return null}}var nn;function lu(e,t){let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>=22?uu(t):null}function dt(){return nn!==void 0||(nn=lu(process.versions.node,cu(import.meta.url))),nn}function Pi(e,t){return Math.max(0,Math.floor(e===void 0?t:e))}function Be(e){return Li.join(e,"runtime",du)}function fu(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 on(e,t,n){e.prepare("INSERT INTO metadata(key, value) VALUES (?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value").run(t,n)}function ji(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 Fi(e){let t=Be(e.pmRoot),n=dt();if(!n){await Te.rm(t,{force:!0});return}await Te.mkdir(Li.dirname(t),{recursive:!0});let r=`${t}.${au()}.tmp`,o;try{o=new n(r),fu(o),o.exec("BEGIN IMMEDIATE"),on(o,"version",ct),on(o,"context_fingerprint",e.contextFingerprint),on(o,"source_cursor",e.sourceCursor);for(let i of e.rows)ji(o,i);o.exec("COMMIT"),o.close(),o=void 0,await Te.rm(t,{force:!0}),await Te.rename(r,t)}catch(i){throw o?.close(),await Promise.allSettled([Te.rm(r,{force:!0})]),i}}function sn(e){return Object.fromEntries(e.prepare("SELECT key, value FROM metadata").all().map(t=>[String(t.key),String(t.value)]))}async function $i(e){let t=Be(e.pmRoot),n;try{await Te.access(t);let r=dt();if(!r)return!1;n=new r(t),n.exec("PRAGMA foreign_keys = ON");let o=sn(n);if(o.version!==ct||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 u=s.get(c);i.run(c),u&&a.run(u.id)}return e.row&&ji(n,e.row),on(n,"source_cursor",e.sourceCursor),n.exec("COMMIT"),n.close(),!0}catch{try{n?.exec("ROLLBACK")}catch{}return n?.close(),!1}}function rn(e,t,n,r,o){!r||r.length===0||(e.push(`${n} ${o} (${r.map(()=>"?").join(", ")})`),t.push(...r))}function mu(e){let t=[],n=[];rn(t,n,"status",e.statuses,"IN"),rn(t,n,"status",e.excludeStatuses,"NOT IN"),rn(t,n,"type",e.types,"IN"),rn(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 cy(e){let t=dt();if(!t)return null;let n=e.query??{},{where:r,parameters:o}=mu(n),i;try{i=new t(Be(e.pmRoot),{readOnly:!0});let s=sn(i);if(s.version!==ct||s.source_cursor!==e.expectedSourceCursor)return i.close(),null;let a=i.prepare(`SELECT COUNT(*) AS count FROM items${r}`).get(...o),c=[],u="";n.limit!==void 0?(u+=" LIMIT ?",c.push(Math.max(0,Math.floor(n.limit))),n.offset!==void 0&&(u+=" OFFSET ?",c.push(Math.max(0,Math.floor(n.offset))))):n.offset!==void 0&&(u+=" LIMIT -1 OFFSET ?",c.push(Math.max(0,Math.floor(n.offset))));let l=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${u}`).all(...o,...n.terminalStatuses??[],...c).map(_=>{let y=JSON.parse(String(_.metadata_json));if(!y.id)throw new TypeError("Indexed metadata row has no id");return y});return i.close(),{source_cursor:s.source_cursor,total:Number(a.count),items:l}}catch{return i?.close(),null}}async function dy(e){let t=dt();if(!t||e.paths.length===0)return null;let n;try{n=new t(Be(e.pmRoot),{readOnly:!0});let r=sn(n);if(r.version!==ct||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),u=Pi(e.limit,50),f=Pi(e.offset,0),l=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,u,f),_=[];if(l.length>0){let y=l.map(E=>String(E.id)),b=n.prepare(`SELECT item_id, path, scope, note
142
+ FROM item_linked_files
143
+ WHERE item_id IN (${y.map(()=>"?").join(", ")})
144
+ AND ${a}
145
+ ORDER BY path ASC, scope ASC`).all(...y,...s),k=new Map(y.map(E=>[E,[]]));for(let E of b){let C=String(E.item_id),N=k.get(C);N.push({path:String(E.path),scope:String(E.scope),...E.note===null?{}:{note:String(E.note)}}),k.set(C,N)}for(let E of l){let C=JSON.parse(String(E.metadata_json));_.push({item:C,files:k.get(String(E.id))})}}return n.close(),{source_cursor:r.source_cursor,total:Number(c.count),matches:_}}catch{return n?.close(),null}}async function uy(e){let t=dt();if(!t)return null;let n;try{n=new t(Be(e.pmRoot),{readOnly:!0});let r=sn(n);if(r.version!==ct||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 an(e){await Te.rm(Be(e),{force:!0})}import $ from"node:fs/promises";import R from"node:path";import{createHash as Pu,randomUUID as es}from"node:crypto";import ne from"node:fs/promises";import kr from"node:path";import{randomUUID as _u}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 pu(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 Wi(e){try{let t=await ne.readFile(e,"utf8");return await K({path:e,scope:"project"}),pu(t)}catch(t){return be(t)?{info:null,warnings:[]}:{info:null,warnings:["lock_info_read_failed"]}}}function vr(e,t){return typeof e=="object"&&e!==null&&"code"in e&&e.code===t}async function Bi(e,t){await G({path:e,scope:"project",op:t})}function yu(e,t,n){return{id:e,pid:process.pid,owner:t,created_at:Se(),ttl_seconds:n}}async function hu(e,t,n,r){await ne.mkdir(kr.dirname(e),{recursive:!0});let o=await ne.open(e,"wx");try{await o.writeFile(`${JSON.stringify(yu(t,n,r),null,2)}
151
+ `,"utf8")}finally{await o.close()}await Bi(e,"lock:create")}async function Vi(e,t){try{return await ne.unlink(e),await Bi(e,t),!0}catch{return!1}}function qi(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 gu(e){return e?.owner?` (owner ${e.owner})`:""}var bu=25,wu=200,Eu=250,ku=3,vu=".stale-cleanup",Gi="owner.json",Su=1e4,Iu=5*6e4;function zi(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 xu(e){let t=process.env.PM_LOCK_WAIT_MS,n=zi(t);if(n!==void 0)return n;let r=zi(e);return r!==void 0?r:0}function Tu(e){let t=Math.max(1,Math.round(e*(.5+Math.random())));return new Promise(n=>setTimeout(n,t))}function Xi(e,t,n){let r=n>0?` after waiting ${n}ms`:"";return new x(`Item ${e} is locked${gu(t)}${r}`,I.CONFLICT,{code:"lock_conflict",recovery:{retry_after_ms:Eu}})}function Ou(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 Au(e,t,n,r){if(!n&&r){let o=t.warnings.length>0?` (${t.warnings.join(",")})`:"";throw new x(`Item ${e} lock is stale${o}; rerun with --force when supported for this command`,I.CONFLICT)}}function Cu(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 Ji(e){try{return Cu(await ne.readFile(kr.join(e,Gi),"utf8"))}catch{return null}}function Ru(e){try{return process.kill(e,0),!0}catch(t){return!vr(t,"ESRCH")}}async function Sr(e){try{return await ne.rm(e,{recursive:!0,force:!0}),!0}catch{return!1}}async function Ui(e,t){let n=await Ji(e);n===null||n.token!==t||await Sr(e)}async function Hi(e){try{await ne.mkdir(e)}catch(n){return vr(n,"EEXIST"),null}let t={pid:process.pid,token:_u()};try{await ne.writeFile(kr.join(e,Gi),`${JSON.stringify(t)}
152
+ `,"utf8")}catch{return await Sr(e),null}return t}async function Nu(e){let t;try{let r=await ne.stat(e);if(t=Date.now()-r.mtimeMs,t<=Su)return!1}catch(r){return be(r)}let n=await Ji(e);return n!==null&&Ru(n.pid)&&t<=Iu?!1:Sr(e)}async function Du(e,t){let n=`${e}${vu}`,r=await Hi(n);if(r!==null)return async()=>Ui(n,r.token);if(!await Nu(n))return null;let o=await Hi(n);return o===null?null:async()=>Ui(n,o.token)}async function Mu(e){let t=await Du(e.lockPath,e.id);if(t===null)return{lockInfo:e.fallbackLockInfo,shouldRetryCreate:!1,staleRemovalCounted:!1};try{let n=await Wi(e.lockPath);if(n.info===null&&n.warnings.length===0)return{lockInfo:n,shouldRetryCreate:!0,staleRemovalCounted:!1};if(!qi(n.info,e.ttlSeconds))return{lockInfo:n,shouldRetryCreate:!1,staleRemovalCounted:!1};if(Au(e.id,n,e.force,e.forceRequiredForStaleLock),e.staleRemovals>=ku)throw Xi(e.id,n.info,Date.now()-e.startedAtMs);return{lockInfo:n,shouldRetryCreate:await Vi(e.lockPath,"lock:stale_remove"),staleRemovalCounted:!0}}finally{await t()}}async function re(e,t,n,r,o=!1,i=!0,s){let a=await ee("lock_acquire",{pm_root:e,id:t,ttl_seconds:n,owner:r,force:o,force_required_for_stale_lock:i});if(a.handled){let y=Ou(a.result);if(y)return async()=>{await Promise.resolve(y()),await ee("lock_release",{pm_root:e,id:t,owner:r})}}let c=io(e,t),u=xu(s),f=Date.now(),l=0,_=bu;for(;;)try{return await hu(c,t,r,n),async()=>{await Vi(c,"lock:release"),await ee("lock_release",{pm_root:e,id:t,owner:r})}}catch(y){if(!vr(y,"EEXIST"))throw new x(`Failed to acquire lock for ${t}: ${ao(y)}`,I.GENERIC_FAILURE);let b=await Wi(c);if(qi(b.info,n)){let E=await Mu({lockPath:c,id:t,ttlSeconds:n,force:o,forceRequiredForStaleLock:i,staleRemovals:l,waitBudgetMs:u,startedAtMs:f,fallbackLockInfo:b});if(b=E.lockInfo,E.staleRemovalCounted&&(l+=1),E.shouldRetryCreate)continue}let k=Date.now()-f;if(u===0||k>=u)throw Xi(t,b.info,u===0?0:k);await Tu(Math.min(_,u-k)),_=Math.min(_*2,wu)}}(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,ts=500,Lu="metadata-derived-index",ju="metadata-cache.json",Fu="metadata-cache-bodies.json",$u="metadata-cache-collections.json",zu="metadata-cache-delta.json",Uu="metadata-cache-manifest.json",Ki=4,Hu=["comments","notes","learnings","files","tests","test_runs","docs"];function ns(){return St(it())}function dn(e){let t={...e},n={};for(let r of Hu)r in t&&(n[r]=t[r],delete t[r]);return{light:t,heavy:n}}function rs(e,t){return!t||Object.keys(t).length===0?e:{...e,...t}}function os(e,t,n,r){let o=Pu("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 un(e){return R.join(e,"runtime",ju)}function ln(e){return R.join(e,"runtime",Fu)}function fn(e){return R.join(e,"runtime",$u)}function xr(e){return R.join(e,"runtime",zu)}function Tr(e){return R.join(e,"runtime",Uu)}function mn(e,t){let n=R.extname(e);return`${e.slice(0,-n.length)}.${t}${n}`}var Wu=24,V=new Map,_n=new WeakMap;function Or(e){return _n.get(e)??e.source_cursor}function Bu(e,t){let n=Or(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){_n.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 Vu(e,t){if(!e)return;let n=Or(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){_n.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 qu(e,t){if(!e)return;let n=Or(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){_n.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 Gu(e,t,n,r){!e||!r||e.context_fingerprint!==r.context_fingerprint||(Bu(e,r),Vu(t,r),qu(n,r))}function Ir(e,t){V.size>=Wu&&!V.has(e)&&Tt(V),V.set(e,t)}async function me(e,t){let n;try{n=await $.stat(e)}catch{return V.delete(e),null}let r=V.get(e);if(r&&ut(r.signature,n.mtimeMs,n.ctimeMs,n.size))return V.delete(e),V.set(e,r),r.envelope;let o;try{o=t(await $.readFile(e,"utf8"))}catch{o=null}return Ir(e,{signature:{mtime_ms:n.mtimeMs,ctime_ms:n.ctimeMs,size:n.size},envelope:o}),o}async function Xu(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=un(e),i=await me(o,r);if(!t||i===null||i.context_fingerprint===t)return i;let s=await me(mn(o,t),r);return s===null&&mt(n,`metadata_cache_context_changed:${i.context_fingerprint}->${t}`),s}async function Ju(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=ln(e),o=await me(r,n);return t&&o?.context_fingerprint!==t?await me(mn(r,t),n):o}async function Ku(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=fn(e),o=await me(r,n);return t&&o?.context_fingerprint!==t?await me(mn(r,t),n):o}async function Ar(e){let t=xr(e),n=await me(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 $.stat(t),{envelope:null,invalid:!0}}catch{return{envelope:null,invalid:!1}}}async function Cr(e){let t=Tr(e),n=await me(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 $.stat(t),await Ve(e)}catch{}return null}async function lt(e,t){await $.mkdir(R.dirname(e),{recursive:!0}),await H(e,JSON.stringify(t));try{let r=await $.stat(e);Ir(e,{signature:{mtime_ms:r.mtimeMs,ctime_ms:r.ctimeMs,size:r.size},envelope:t})}catch{V.delete(e)}let n=R.dirname(R.dirname(e));if(e===un(n)||e===ln(n)||e===fn(n)){let r=mn(e,t.context_fingerprint);await H(r,JSON.stringify(t));try{let c=await $.stat(r);Ir(r,{signature:{mtime_ms:c.mtimeMs,ctime_ms:c.ctimeMs,size:c.size},envelope:t})}catch{V.delete(r)}let o=R.dirname(e),i=R.extname(e),s=R.basename(e,i),a=(await $.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>Ki){let c=(await Promise.all(a.map(async u=>{try{return{path:u,mtime:(await $.stat(u)).mtimeMs}}catch{return null}}))).filter(u=>u!==null);for(let u of c.sort((f,l)=>f.mtime-l.mtime).slice(0,Math.max(0,c.length-Ki)))await $.rm(u.path,{force:!0}),V.delete(u.path)}}}function Yu(e,t,n){return n?t===n&&e!==n:t==="toon"&&e!=="toon"}function is(e,t,n){return e===void 0||Yu(e,t,n)}function mt(e,t){e&&!e.includes(t)&&e.push(t)}function ut(e,t,n,r){return e.mtime_ms===t&&e.ctime_ms===n&&e.size===r}async function Qu(e,t,n){let r=R.join(e,t);try{let o=await $.readdir(r);return{folder:t,dirPath:r,files:o}}catch(o){return typeof o=="object"&&o!==null&&"code"in o&&!be(o)&&mt(n,`item_list_directory_read_failed:${t}`),{folder:t,dirPath:r,files:[]}}}async function Zu(e,t){try{let n=await $.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 cn(e,t){return Object.fromEntries(await Promise.all(t.map(async n=>await Zu(e,n))))}function ft(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&&ut(o,r.mtime_ms,r.ctime_ms,r.size)})}function el(e){return xt.some(t=>e.toLowerCase().endsWith(t))}function tl(e,t,n,r,o,i){r||(e.metadata=!0),t&&!o&&(e.body=!0),n&&!i&&(e.collections=!0)}async function nl(e,t,n){if(n)for(let r of await K({path:e,scope:"project"}))mt(t,r)}function Yi(e,t,n,r){if(e)return t&&n?n.collections:r}async function rl(e,t,n){let r=await $.stat(e),o=r.mtimeMs,i=r.ctimeMs,{size:s}=r,a=Tn(e);await nl(e,n.warnings,n.dispatchReadHooks);let c=n.previousEntries[t],u=!n.forceSourceRead&&c!==void 0&&ut(c,o,i,s),f=n.previousBodies[t],l=!n.forceSourceRead&&f!==void 0&&ut(f,o,i,s),_=n.previousCollections[t],y=!n.forceSourceRead&&_!==void 0&&ut(_,o,i,s);if(!(!u||n.includeBody&&!l||n.includeCollections&&!y))return{mtimeMs:o,ctimeMs:i,size:s,itemFormat:a,lightMetadata:c.metadata,heavyMetadata:Yi(n.includeCollections,y,_,void 0),bodyLength:c.body_length,body:n.includeBody?f.body:void 0};let k=await $.readFile(e,"utf8"),E=Ut(k,{format:a,schema:n.schema,extensionFieldNames:n.extensionFieldNames,onWarning:N=>mt(n.warnings,N)}),C=dn(E.metadata);return tl(n.state.misses,n.includeBody,n.includeCollections,u,l,y),{mtimeMs:o,ctimeMs:i,size:s,itemFormat:a,lightMetadata:u?c.metadata:C.light,heavyMetadata:Yi(n.includeCollections,y,_,C.heavy),bodyLength:u?c.body_length:E.body.length,body:n.includeBody?E.body:void 0}}function ol(e,t,n,r){n.state.newEntries[t]={mtime_ms:r.mtimeMs,ctime_ms:r.ctimeMs,size:r.size,metadata:r.lightMetadata,body_length:r.bodyLength},n.includeBody&&r.body!==void 0&&(n.state.newBodies[t]={mtime_ms:r.mtimeMs,ctime_ms:r.ctimeMs,size:r.size,body:r.body}),n.includeCollections&&r.heavyMetadata!==void 0&&(n.state.newCollections[t]={mtime_ms:r.mtimeMs,ctime_ms:r.ctimeMs,size:r.size,collections:r.heavyMetadata});let o=n.includeCollections?rs(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};is(i?.itemFormat,r.itemFormat,n.preferredFormat)&&n.state.documentsById.set(o.id,{candidate:s,itemFormat:r.itemFormat})}async function il(e,t,n,r){try{let o=await rl(t,n,r);ol(t,n,r,o)}catch{mt(r.warnings,`item_list_item_read_failed:${e}/${R.basename(t)}`)}}function sl(e,t){return e&&e.context_fingerprint===t?e.entries:{}}function al(e,t){return e&&e.context_fingerprint===t?e.bodies:{}}function cl(e,t){return e&&e.context_fingerprint===t?e.collections:{}}function dl(){return{newEntries:{},newBodies:{},newCollections:{},documentsById:new Map,misses:{metadata:!1,body:!1,collections:!1}}}function ul(e,t){let n=[];for(let{folder:r,dirPath:o,files:i}of e)for(let s of i){if(!el(s))continue;let a=R.join(o,s),c=R.relative(t.pmRoot,a);n.push(il(r,a,c,t))}return n}async function ll(e){if(!(!(e.state.misses.metadata||Object.keys(e.previousEntries).length!==Object.keys(e.state.newEntries).length||!ft(e.existingCache?.directory_signatures,e.directorySignatures))&&e.existingCache!==null&&e.existingCache.context_fingerprint===e.contextFingerprint))try{await lt(un(e.pmRoot),{version:Y,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,directory_signatures:e.directorySignatures,entries:e.state.newEntries}),await lt(Tr(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:dn(r.metadata).light,linkedFiles:r.metadata.files??[]}));n.length>=e.minimumIndexedItems?await Fi({pmRoot:e.pmRoot,contextFingerprint:e.contextFingerprint,sourceCursor:e.sourceCursor,rows:n}):await an(e.pmRoot)}catch{}}async function fl(e){!(e.state.misses.body||Object.keys(e.previousBodies).length!==Object.keys(e.state.newBodies).length)&&e.existingBodyCache!==null&&e.existingBodyCache.context_fingerprint===e.contextFingerprint||await lt(ln(e.pmRoot),{version:Y,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,bodies:e.state.newBodies}).catch(()=>{})}async function ml(e){!(e.state.misses.collections||Object.keys(e.previousCollections).length!==Object.keys(e.state.newCollections).length)&&e.existingCollectionsCache!==null&&e.existingCollectionsCache.context_fingerprint===e.contextFingerprint||await lt(fn(e.pmRoot),{version:Y,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,collections:e.state.newCollections}).catch(()=>{})}async function Rr(e,t,n={}){let r=await Cr(e);return n.required!==!0&&(r===null||r.entry_count<ts)?async()=>{}:re(e,Lu,30,t,!1,!1,3e3)}async function My(e,t){let n=await Cr(e);if(n===null)return null;let r=await Ar(e);if(r.invalid)return await Ve(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&&!ft(i,await cn(e,t))?null:{source_cursor:o,entry_count:n.entry_count}}function Qi(e,t){let n=R.relative(e,t);return n===""||n===".."||n.startsWith(`..${R.sep}`)||R.isAbsolute(n)?null:n}async function Ve(e){await Promise.all([un(e),ln(e),fn(e),xr(e),Tr(e)].map(async t=>{await $.rm(t,{force:!0}),V.delete(t)})),await an(e)}async function _l(e){if(e.mutation.document===null)return{entry:null,body:null,collections:null};let t=await $.stat(e.mutation.itemPath),n=dn(e.mutation.document.metadata),r={mtime_ms:t.mtimeMs,ctime_ms:t.ctimeMs,size:t.size};return{entry:{...r,metadata:n.light,body_length:e.mutation.document.body.length},body:{...r,body:e.mutation.document.body},collections:{...r,collections:n.heavy}}}function pl(e,t,n){return e?.context_fingerprint===t&&e.base_source_cursor===n?structuredClone(e.changes):{}}async function Nr(e){let t=Qi(e.pmRoot,e.itemPath),n=e.previousItemPath?Qi(e.pmRoot,e.previousItemPath):void 0;if(t===null||n===null)return await Ve(e.pmRoot),["metadata_derived_index_path_invalidated"];try{let r=os(e.preferredFormat,e.typeToFolder,e.schema,ns()),o=await Cr(e.pmRoot);if(o===null||o.context_fingerprint!==r)return[];let i=o.source_cursor,s=await Ar(e.pmRoot);if(s.invalid)return await Ve(e.pmRoot),["metadata_derived_index_refresh_failed"];let a=pl(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 _l({mutation:e});let u=es();return await lt(xr(e.pmRoot),{version:Y,context_fingerprint:r,base_source_cursor:i,source_cursor:u,directory_signatures:await cn(e.pmRoot,[...new Set(Object.values(e.typeToFolder))]),changes:a}),await $i({pmRoot:e.pmRoot,contextFingerprint:r,expectedSourceCursor:c,sourceCursor:u,row:e.document===null?null:{relativePath:t,metadata:dn(e.document.metadata).light,linkedFiles:e.document.metadata.files},deletedRelativePaths:[...n===void 0?[]:[n],...e.document===null?[t]:[]]})||await an(e.pmRoot),[]}catch{return await Ve(e.pmRoot).catch(()=>{}),["metadata_derived_index_refresh_failed"]}}function yl(e){return[...e.documentsById.values()].sort((t,n)=>t.candidate.metadata.id.localeCompare(n.candidate.metadata.id)).map(t=>t.candidate)}function Zi(e,t,n){return e?.context_fingerprint===t&&e.source_cursor===n}function hl(e,t,n,r,o){return e.every(i=>(!t||r[i]!==void 0)&&(!n||o[i]!==void 0))}function gl(e){let t=new Map;for(let[n,r]of Object.entries(e.previousEntries)){let o=Tn(n);if(!o)continue;let i=e.includeCollections?rs(r.metadata,e.previousCollections[n]?.collections):r.metadata,s=t.get(i.id);is(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 bl(e){return e.forceSourceScan||ar()||e.existingCache?.context_fingerprint!==e.contextFingerprint||e.entryKeys.length<e.minimumIndexedItems||!ft(e.existingCache?.directory_signatures,e.directorySignatures)?!1:[!e.includeBody||Zi(e.existingBodyCache,e.contextFingerprint,e.existingCache.source_cursor),!e.includeCollections||Zi(e.existingCollectionsCache,e.contextFingerprint,e.existingCache.source_cursor)].every(Boolean)&&hl(e.entryKeys,e.includeBody,e.includeCollections,e.previousBodies,e.previousCollections)}async function pn(e,t,n,r,o,i={}){let s=i.includeBody!==!1,a=i.includeCollections!==!1,c=ns(),u=os(t,n,o,c),f=await Ar(e);f.invalid&&await Ve(e);let l=await Xu(e,u,i.cacheDiagnostics),_=s?await Ju(e,u):null,y=a?await Ku(e,u):null;Gu(l,_,y,f.envelope);let b=sl(l,u),k=al(_,u),E=cl(y,u),C=[...new Set(Object.values(n))],N=await cn(e,C),Q=Object.keys(b),j=Math.max(1,Math.floor(i.derivedIndexMinimumItems??ts));if(bl({forceSourceScan:i.forceSourceScan===!0,contextFingerprint:u,existingCache:l,existingBodyCache:_,existingCollectionsCache:y,directorySignatures:N,entryKeys:Q,minimumIndexedItems:j,includeBody:s,includeCollections:a,previousBodies:k,previousCollections:E}))return gl({pmRoot:e,preferredFormat:t,includeBody:s,includeCollections:a,previousEntries:b,previousBodies:k,previousCollections:E});let Ae=await Promise.all(C.map(Gs=>Qu(e,Gs,r))),ie=ar(),U=dl(),kn={pmRoot:e,preferredFormat:t,warnings:r,schema:o,extensionFieldNames:c,includeBody:s,includeCollections:a,forceSourceRead:i.forceSourceScan===!0,dispatchReadHooks:ie,previousEntries:b,previousBodies:k,previousCollections:E,state:U};await Promise.all(ul(Ae,kn));let ht=await cn(e,C),Xr=ft(N,ht)?ht:{},vn=U.misses.metadata||Object.keys(b).length!==Object.keys(U.newEntries).length||!ft(l?.directory_signatures,Xr)||l===null?es():l.source_cursor;return await ll({pmRoot:e,contextFingerprint:u,sourceCursor:vn,existingCache:l,previousEntries:b,directorySignatures:Xr,state:U,minimumIndexedItems:j}),s&&await fl({pmRoot:e,contextFingerprint:u,sourceCursor:vn,existingBodyCache:_,previousBodies:k,state:U}),a&&await ml({pmRoot:e,contextFingerprint:u,sourceCursor:vn,existingCollectionsCache:y,previousCollections:E,state:U}),yl(U)}async function ss(e,t,n,r,o){return(await pn(e,t,n,r,o,{includeBody:!1})).map(s=>({metadata:s.metadata,body:s.body??""}))}async function as(e,t,n,r,o){return(await pn(e,t,n,r,o,{includeBody:!1,includeCollections:!1})).map(s=>({metadata:s.metadata,body:s.body??""}))}import wl from"node:fs/promises";import qe 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]="9027d972-ce29-5511-ba81-27e17d97446e")}catch{}})();var _t="_workspace";function Dr(e){return qe.join(e,"history",`${_t}.jsonl`)}function El(e,t){return{metadata:{id:_t,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 Mr(e,t=e.length){let n=Qt();for(let r of e.slice(0,t))n=en(n,r.patch).document;return Zt(n)}function cs(e){return"documents"in e.metadata&&typeof e.metadata.documents=="object"&&e.metadata.documents!==null&&!Array.isArray(e.metadata.documents)?e.metadata.documents:{}}function Pr(e){throw new x(`Workspace history verification failed: ${e.join(", ")}`,I.CONFLICT,{code:"workspace_history_chain_invalid",reason:"workspace_history_chain_verification_failed",verification_errors:[...e],required:"Repair the _workspace history chain before reading, reconciling, restoring, or appending audited singleton state.",why:"Continuing against an unverifiable append-only stream could hide or compound workspace state corruption.",examples:["pm history _workspace --verify --json","pm validate --check-history-drift --fix-hints --json"],nextSteps:["Inspect the exact verification_errors and preserve the corrupt stream as evidence.","Use the history-drift remediation returned by validate before retrying the refused operation."],recovery:{recovery_mode:"compact",next_best_command:"pm history _workspace --verify --json"}})}function kl(e,t){let n=qe.resolve(t),r=qe.relative(e,n).replaceAll("\\","/");if(r.length===0||r===".."||r.startsWith("../")||qe.isAbsolute(r))throw new TypeError("Workspace history document path must stay inside the tracker root");return{documentPath:r,absolutePath:n}}async function qy(e){let t=await $e(Dr(e),_t),n=tn(t);n.ok||Pr(n.errors);let r=cs(t.length===0?Ce:Mr(t)),o=[],i=[],s=[],a=[];for(let c of Object.keys(r).sort()){let u;try{let f=kl(e,qe.resolve(e,c));if(u=await ae(f.absolutePath),u===null){s.push(c);continue}let l=JSON.parse(u);(D(l)===D(r[c])?o:i).push(c)}catch{a.push(c)}}return{ok:i.length===0&&s.length===0&&a.length===0,document_count:Object.keys(r).length,matching_documents:o,mismatched_documents:i,missing_documents:s,unreadable_documents:a}}async function ds(e){let t=Dr(e.pmRoot),n=await $e(t,_t),r=tn(n);r.ok||Pr(r.errors);let o=e.idempotencyKey===void 0?void 0:n.find(l=>l.op===`${e.op}:${e.idempotencyKey}`);if(o)return{entry:o,historyPath:t};let i=new Date().toISOString(),s=n.length===0?Ce:Mr(n),a=cs(s),c=a[e.documentPath];if(c!==void 0&&D(c)!==D(e.before))throw new x(`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 u=El({...a,[e.documentPath]:e.after},n.length===0?i:s.metadata.created_at),f=He({nowIso:i,author:e.author,op:e.idempotencyKey===void 0?e.op:`${e.op}:${e.idempotencyKey}`,before:s,after:u,message:e.message});return await We(t,f),{entry:f,historyPath:t}}async function Gy(e){let t=await re(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await ds(e)}finally{await t()}}async function Xy(e){let t=await re(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{let n=Dr(e.pmRoot),r=await $e(n,_t),o=tn(r);o.ok||Pr(o.errors);let i=r.length===0?Ce:Mr(r),s=He({nowIso:new Date().toISOString(),author:e.author,op:e.op,before:i,after:i,message:e.message,context:e.context});return await We(n,s),{entry:s,historyPath:n}}finally{await t()}}async function us(e,t){if(t===e.raw)return!1;let n=t===null?null:JSON.parse(t),r=JSON.parse(e.raw);await H(e.filePath,e.raw);try{(t!==null||e.recordCreation!==!1)&&await ds({pmRoot:e.pmRoot,documentPath:qe.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 wl.rm(e.filePath,{force:!0}):await H(e.filePath,t),o}return!0}async function Jy(e){let t=await re(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{let n=await ae(e.filePath),r=await e.mutate(n);return{changed:await us({...e,raw:r.raw},n),result:r.result}}finally{await t()}}async function ls(e){let t=await re(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await us(e,await ae(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 F={ok:!1},m=e=>typeof e=="string"?{ok:!0,value:e}:F,T=e=>typeof e=="boolean"?{ok:!0,value:e}:F;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?F:{ok:!0,value:t}}function O(...e){return t=>typeof t=="string"&&e.includes(t)?{ok:!0,value:t}:F}function p(e,t){return n=>{if(!Array.isArray(n)||t!==void 0&&n.length>t)return F;let r=[];for(let o of n){let i=e(o);if(!i.ok)return F;r.push(i.value)}return{ok:!0,value:r}}}function jr(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}:F}function d(e){return t=>t===void 0?{ok:!0,value:void 0}:e(t)}function yn(e){return t=>{if(typeof t!="object"||t===null||Array.isArray(t))return F;let n={};for(let[r,o]of Object.entries(t)){let i=e(o);if(!i.ok)return F;n[r]=i.value}return{ok:!0,value:n}}}function S(e){return t=>{if(typeof t!="object"||t===null||Array.isArray(t))return F;let n=t,r={};for(let[o,i]of Object.entries(e)){let s=i(n[o]);if(!s.ok)return F;s.value!==void 0&&(r[o]=s.value)}return{ok:!0,value:r}}}var vl=S({key:m,values:p(m),required:d(T),aliases:d(p(m)),description:d(m)}),Sl=S({command:O("create","update"),option:m,required:d(T),visible:d(T),enabled:d(T)}),Il=S({name:m,description:d(m),default_status:d(m),folder:d(m),aliases:d(p(m)),required_create_fields:d(p(m)),required_create_repeatables:d(p(m)),options:d(p(vl)),command_option_policies:d(p(Sl))}),xl=S({id:m,aliases:d(p(m)),roles:d(p(O(...Jr))),description:d(m),order:d(A())}),Tl=S({key:m,metadata_key:d(m),front_matter_key:d(m),cli_flag:d(m),cli_aliases:d(p(m)),description:d(m),type:d(O(...Kr)),commands:d(p(O(...Yr))),repeatable:d(T),required:d(T),required_on_create:d(T),required_types:d(p(m)),allow_unset:d(T)}),Ol=e=>{if(!Array.isArray(e)||e.length!==2)return F;let[t,n]=e;return typeof t!="string"||typeof n!="string"?F:{ok:!0,value:[t,n]}},Al=S({type:m,allowed_transitions:p(Ol)}),Cl=d(S({version:d(A({int:!0})),files:d(S({types:d(m),statuses:d(m),fields:d(m),workflows:d(m)})),statuses:d(p(xl)),fields:d(p(Tl)),workflow:d(S({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(p(Al)),unknown_field_policy:d(O(...Qr))})),Rl=d(S({preset:d(O(...Zr)),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(T),parent_reference:d(O("warn","strict_error")),metadata_profile:d(O("core","strict","custom")),force_required_for_stale_lock:d(T),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}))})),Nl=S({name:m,disabled:d(T),require_trusted:d(T),require_provenance:d(T),sandbox_profile:d(O("none","restricted","strict")),allowed_capabilities:d(p(m)),blocked_capabilities:d(p(m)),allowed_surfaces:d(p(m)),blocked_surfaces:d(p(m)),allowed_commands:d(p(m)),blocked_commands:d(p(m)),allowed_actions:d(p(m)),blocked_actions:d(p(m)),allowed_services:d(p(m)),blocked_services:d(p(m))}),Lr=O("block","warn"),Dl=e=>typeof e=="string"?Lr(e):S({global:d(Lr),project:d(Lr)})(e),Ml=d(S({mode:d(O("off","warn","enforce")),trust_mode:d(O("off","warn","enforce")),pm_max_version_exceeded_mode:d(Dl),require_provenance:d(T),trusted_extensions:d(p(m)),default_sandbox_profile:d(O("none","restricted","strict")),allowed_extensions:d(p(m)),blocked_extensions:d(p(m)),allowed_capabilities:d(p(m)),blocked_capabilities:d(p(m)),allowed_surfaces:d(p(m)),blocked_surfaces:d(p(m)),allowed_commands:d(p(m)),blocked_commands:d(p(m)),allowed_actions:d(p(m)),blocked_actions:d(p(m)),allowed_services:d(p(m)),blocked_services:d(p(m)),extension_overrides:d(p(Nl))})),Oe=jr(128),Pl=S({harness:jr(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u),environment_keys:d(p(Oe,64)),model_environment_keys:d(p(Oe,64)),session_environment_keys:d(p(Oe,64)),provenance_environment_keys:d(yn(p(Oe,64))),provenance_resolvers:d(yn(O("ai_agent_version","claude_session_file"))),provenance_unavailable_dimensions:d(p(Oe,64)),argv_markers:d(p(Oe,64)),client_names:d(p(Oe,64))}),Ll=S({version:A({int:!0}),id_prefix:m,ids:d(S({token_length:d(A({int:!0,min:4,max:12}))})),author_default:m,agent_identity:d(S({probes_enabled:d(T),identity_vocabulary:d(S({version:A({int:!0,positive:!0}),aliases:yn(jr(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u))})),harness_signals:p(Pl)})),mutation_guard:d(S({require_attributed_author:d(T),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:S({ttl_seconds:A({int:!0}),wait_ms:d(A({int:!0,min:0}))}),checkpoints:d(S({retention_days:d(A({int:!0,positive:!0}))})),output:S({default_format:O("toon","json")}),history:d(S({missing_stream:O("auto_create","strict_error"),compact_policy:d(S({enabled:d(T),max_entries:d(A({int:!0,positive:!0})),trigger:d(O("health_warn","auto"))}))})),validation:d(S({sprint_release_format:O("warn","strict_error"),parent_reference:d(O("warn","strict_error")),metadata_profile:d(O("core","strict","custom")),metadata_required_fields:d(p(m)),lifecycle_stale_blocker_reason_patterns:d(p(m)),lifecycle_closure_like_blocked_reason_patterns:d(p(m)),lifecycle_closure_like_resolution_patterns:d(p(m)),lifecycle_closure_like_actual_result_patterns:d(p(m)),estimate_defaults_by_type:d(yn(A({int:!0,positive:!0})))})),governance:Rl,workflow:d(S({definition_of_done:p(m)})),testing:d(S({record_results_to_items:T})),telemetry:d(S({enabled:T,first_run_prompt_completed:d(T),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(S({prompt_completed:d(T),declined:d(T),declined_at:d(m),template_version:d(A({int:!0,positive:!0})),last_checked_files:d(p(m))})),item_types:d(S({definitions:p(Il)})),schema:Cl,context:d(S({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(S({hierarchy:d(T),activity:d(T),progress:d(T),recently_created:d(T),unparented:d(T),blockers:d(T),files:d(T),workload:d(T),staleness:d(T),tests:d(T)}))})),extensions:S({enabled:p(m),disabled:p(m),policy:Ml}),search:S({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(p(m)),mutation_refresh_policy:d(O("cache_only","semantic_configured","semantic_auto")),query_expansion:d(S({enabled:d(T),provider:d(m)})),rerank:d(S({enabled:d(T),model:d(m),top_k:d(A({int:!0,positive:!0}))})),bm25:d(S({k1:d(A()),b:d(A())}))}),providers:S({openai:S({base_url:m,api_key:m,model:m}),ollama:S({base_url:m,model:m})}),vector_store:S({adapter:d(m),collection_name:d(m),qdrant:S({url:m,api_key:m}),lancedb:S({path:m})})});function fs(e){let t=Ll(e);return t.ok?{success:!0,data:t.value}:{success:!1}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="2d377bc4-c624-561c-9856-405c82099070")}catch{}})();var jl={Epic:2880,Feature:480,Story:480,Milestone:2880,Task:120,Issue:60,Bug:60,Chore:30,Decision:15,Plan:120},ms=120;function Fr(e){return typeof e=="number"&&Number.isFinite(e)&&e>0}function ps(e){let t=new Map;for(let[n,r]of Object.entries(e))t.set(n.toLowerCase(),r);return t}var Fl=ps(jl),_s=new WeakMap;function $l(e){let t=_s.get(e);if(t)return t;let n=ps(e);return _s.set(e,n),n}function Zy(e,t){let n=(e??"").trim().toLowerCase();if(n.length===0)return ms;if(t){let o=$l(t).get(n);if(Fr(o))return Math.floor(o)}let r=Fl.get(n);return Fr(r)?Math.floor(r):ms}function $r(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||!Fr(r)||(t[o]=Math.floor(r))}return t}import{stat as zl}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 hn=new Map;function ys(e){return[...new Set(e.map(t=>t.trim()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}async function Ul(e){try{let t=await zl(e);return{path:e,mtime_ms:t.mtimeMs,size:t.size}}catch{return{path:e,mtime_ms:null,size:null}}}async function _e(e){let t=ys(e),n=await Promise.all(t.map(r=>Ul(r)));return n.sort((r,o)=>r.path.localeCompare(o.path)),n}function pt(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 hs(e){return hn.get(e)}function gn(e,t){let n=ys(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));hn.set(e,{tracked_paths:n,signatures:r,value:t.value})}function pe(e){if(e){hn.delete(e);return}hn.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 Hl="settings:write",ks=Symbol("pm.settings.persist_source"),Wl=128,Bl=new Set(["off","advisory","strict"]);function gs(e){return structuredClone(to[e])}function Vl(e){return e==="minimal"||e==="default"||e==="strict"||e==="custom"?e:w.governance.preset}function bs(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 ql(e){return e.preset==="custom"?bs({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):bs({preset:e.preset},e)}function Gl(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),Bl.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 wn(e){let t=e.governance??{},n=Vl(t.preset),r=Gl(t);if(n==="custom"){let s=gs("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=gs(n),i=r.require_close_reason??o.require_close_reason;return{preset:n,...o,...r,require_close_reason:i}}function vs(){return structuredClone(w)}function Ss(e){return e==="cache_only"||e==="semantic_configured"||e==="semantic_auto"?e:w.search.mutation_refresh_policy}function Is(e){return typeof e=="boolean"?e:w.search.query_expansion.enabled}function xs(e){return typeof e!="string"?w.search.query_expansion.provider:e.trim()}function Ts(e){return typeof e=="boolean"?e:w.search.rerank.enabled}function Os(e){return typeof e!="string"?w.search.rerank.model:e.trim()}function As(e){return typeof e=="number"&&Number.isFinite(e)&&Number.isInteger(e)&&e>0?e:w.search.rerank.top_k}function Cs(e){if(typeof e!="string")return w.vector_store.collection_name;let n=e.trim().replaceAll(/[^a-zA-Z0-9_-]/g,"_").slice(0,Wl);return n.length>0?n:w.vector_store.collection_name}function zr(e){return{present:Array.isArray(e),values:Array.isArray(e)?structuredClone(e):[]}}function Xl(e,t){let n=e.schema,r=zr(n?.statuses),o=zr(n?.fields),i=zr(n?.type_workflows);return{source_settings:structuredClone(e),has_source_item_type_definitions:Array.isArray(e.item_types?.definitions),source_item_type_definitions:Ge(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:Ge(t.item_types?.definitions),runtime_schema_statuses:structuredClone(t.schema.statuses),runtime_schema_fields:structuredClone(t.schema.fields),runtime_schema_type_workflows:structuredClone(t.schema.type_workflows??[])}}function Rs(e,t){Object.defineProperty(e,ks,{value:t,writable:!0,configurable:!0,enumerable:!1})}function Ns(e){let t=e[ks];if(!(!t||typeof t!="object"))return t}function bn(e){let t=structuredClone(e.settings),n=Ns(e.settings);return n&&Rs(t,n),{settings:t,metadata:{has_explicit_item_format:e.metadata.has_explicit_item_format},warnings:[...e.warnings]}}function Jl(e,t,n){let r=Qe(t);return[n,Ze(e,r.files.types,Ye.types),Ze(e,r.files.statuses,Ye.statuses),Ze(e,r.files.fields,Ye.fields),Ze(e,r.files.workflows,Ye.workflows)]}async function Kl(e,t,n){let r=await _e(t);gn(e,{tracked_paths:t,signatures:r,value:bn(n)})}async function Yl(e,t,n){try{await Kl(e,t,n)}catch{pe(e)}}function ws(e,t){return e.find(n=>n.path===t)}function Ql(e,t,n){for(let r of n){let o=ws(e,r),i=ws(t,r);if(!o||!i||!pt([o],[i]))return!1}return!0}async function Ur(e,t,n,r,o){try{let i=await _e(t);if(!Ql(r,i,o)){pe(e);return}gn(e,{tracked_paths:t,signatures:i,value:bn(n)})}catch{pe(e)}}function Zl(e,t){let n=Qe(e.schema),r=Ge(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=Re(r,t.runtime_item_type_definitions),s=Re(n.statuses,t.runtime_schema_statuses),a=Re(n.fields,t.runtime_schema_fields),c=Re(o,t.runtime_schema_type_workflows);return{item_type_definitions:i?t.has_source_item_type_definitions?Ge(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 yt(e){return{settings:vs(),metadata:{has_explicit_item_format:!1},warnings:e?[e]:[]}}function ef(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=e.item_format;return t==="toon"||t==="json_markdown"}function Wr(e){return[...new Set((e??[]).map(t=>t.trim()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function Ds(e){let t=w.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:Wr(e?.last_checked_files??t.last_checked_files)}}function X(e){return[...new Set((e??[]).map(t=>t.trim().toLowerCase()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function tf(e){return e==="off"||e==="warn"||e==="enforce"?e:w.extensions.policy.mode}function nf(e){return e==="off"||e==="warn"||e==="enforce"?e:w.extensions.policy.trust_mode}function Ms(e){return e==="none"||e==="restricted"||e==="strict"?e:w.extensions.policy.default_sandbox_profile}function rf(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=Ms(e.sandbox_profile));let r=X(e.allowed_capabilities),o=X(e.blocked_capabilities),i=X(e.allowed_surfaces),s=X(e.blocked_surfaces),a=X(e.allowed_commands),c=X(e.blocked_commands),u=X(e.allowed_actions),f=X(e.blocked_actions),l=X(e.allowed_services),_=X(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),u.length>0&&(n.allowed_actions=u),f.length>0&&(n.blocked_actions=f),l.length>0&&(n.allowed_services=l),_.length>0&&(n.blocked_services=_),n}function of(e){let t=new Map;for(let n of e??[]){let r=rf(n);r&&t.set(r.name,r)}return[...t.values()].sort((n,r)=>n.name.localeCompare(r.name))}function Hr(e){return e==="block"||e==="warn"?e:void 0}function sf(e){if(typeof e=="string")return Hr(e);if(typeof e=="object"&&e!==null&&!Array.isArray(e)){let t=Hr(e.global),n=Hr(e.project);return t===void 0&&n===void 0?void 0:{...t!==void 0?{global:t}:{},...n!==void 0?{project:n}:{}}}}function W(e,t){return X(e?.[t]??w.extensions.policy[t])}function Ps(e){let t=sf(e?.pm_max_version_exceeded_mode);return{mode:tf(e?.mode),trust_mode:nf(e?.trust_mode),...t!==void 0?{pm_max_version_exceeded_mode:t}:{},require_provenance:e?.require_provenance===!0,trusted_extensions:W(e,"trusted_extensions"),default_sandbox_profile:Ms(e?.default_sandbox_profile),allowed_extensions:W(e,"allowed_extensions"),blocked_extensions:W(e,"blocked_extensions"),allowed_capabilities:W(e,"allowed_capabilities"),blocked_capabilities:W(e,"blocked_capabilities"),allowed_surfaces:W(e,"allowed_surfaces"),blocked_surfaces:W(e,"blocked_surfaces"),allowed_commands:W(e,"allowed_commands"),blocked_commands:W(e,"blocked_commands"),allowed_actions:W(e,"allowed_actions"),blocked_actions:W(e,"blocked_actions"),allowed_services:W(e,"allowed_services"),blocked_services:W(e,"blocked_services"),extension_overrides:of(e?.extension_overrides??w.extensions.policy.extension_overrides)}}function Ls(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 ye(e){return[...new Set((e??[]).map(t=>t.trim().toLowerCase()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function M(e,t){return e===void 0?t:e}function B(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:{}}function Br(e){return Array.isArray(e)?e:[]}function af(e,t,n){return{...t.validation,...e.validation,parent_reference:n.parent_reference,metadata_profile:n.metadata_profile,metadata_required_fields:Ls(e.validation?.metadata_required_fields),lifecycle_stale_blocker_reason_patterns:ye(e.validation?.lifecycle_stale_blocker_reason_patterns??t.validation.lifecycle_stale_blocker_reason_patterns),lifecycle_closure_like_blocked_reason_patterns:ye(e.validation?.lifecycle_closure_like_blocked_reason_patterns??t.validation.lifecycle_closure_like_blocked_reason_patterns),lifecycle_closure_like_resolution_patterns:ye(e.validation?.lifecycle_closure_like_resolution_patterns??t.validation.lifecycle_closure_like_resolution_patterns),lifecycle_closure_like_actual_result_patterns:ye(e.validation?.lifecycle_closure_like_actual_result_patterns??t.validation.lifecycle_closure_like_actual_result_patterns),estimate_defaults_by_type:$r(e.validation?.estimate_defaults_by_type)}}function cf(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 df(e,t){return{...t.search,...e.search,mutation_refresh_policy:Ss(e.search?.mutation_refresh_policy),query_expansion:{...t.search.query_expansion,...e.search?.query_expansion,enabled:Is(e.search?.query_expansion?.enabled),provider:xs(e.search?.query_expansion?.provider)},rerank:{...t.search.rerank,...e.search?.rerank,enabled:Ts(e.search?.rerank?.enabled),model:Os(e.search?.rerank?.model),top_k:As(e.search?.rerank?.top_k)}}}function uf(e,t){return{adapter:e.vector_store.adapter??t.vector_store.adapter,collection_name:Cs(e.vector_store.collection_name),qdrant:{...t.vector_store.qdrant,...e.vector_store.qdrant},lancedb:{...t.vector_store.lancedb,...e.vector_store.lancedb}}}function lf(e,t){return e.item_format==="json_markdown"?"toon":e.item_format??t.item_format}function ff(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 mf(e,t){return{openai:{...t.providers.openai,...e.providers.openai},ollama:{...t.providers.ollama,...e.providers.ollama}}}function Ge(e){let t=(e??[]).map(r=>ro(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 js(e){let t=vs(),n=wn({governance:e.governance??{preset:"default"}});return{...t,...e,item_format:lf(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:af(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:cf(e,t),agent_guidance:Ds(e.agent_guidance??t.agent_guidance),item_types:{definitions:Ge(e.item_types?.definitions)},schema:Qe(e.schema??t.schema),context:ff(e,t),extensions:{enabled:[...e.extensions.enabled],disabled:[...e.extensions.disabled],policy:Ps(e.extensions.policy??t.extensions.policy)},search:df(e,t),providers:mf(e,t),vector_store:uf(e,t)}}function _f(e){e.agent_identity=v(e.agent_identity,["probes_enabled","identity_vocabulary","harness_signals"]);let t=e.agent_identity;Object.hasOwn(t,"identity_vocabulary")&&(t.identity_vocabulary=v(B(t.identity_vocabulary),["version","aliases"])),e.agent_identity.harness_signals=Br(e.agent_identity.harness_signals).map(n=>v(B(n),["harness","environment_keys","model_environment_keys","session_environment_keys","provenance_environment_keys","provenance_resolvers","provenance_unavailable_dimensions","argv_markers","client_names"])),e.locks=v(e.locks,["ttl_seconds","wait_ms"]),e.ids=v(e.ids,["token_length"]),e.mutation_guard=v(e.mutation_guard,["require_attributed_author","secret_guard","stale_in_progress_hours"]),e.checkpoints=v(e.checkpoints,["retention_days"]),e.output=v(e.output,["default_format"]),e.history=v(e.history,["missing_stream","compact_policy"]),e.validation=v(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=v(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=v(e.workflow,["definition_of_done"]),e.testing=v(e.testing,["record_results_to_items"]),e.telemetry=v(e.telemetry,["enabled","first_run_prompt_completed","capture_level","endpoint","installation_id","retention_days"]),e.agent_guidance=v(e.agent_guidance,["prompt_completed","declined","declined_at","template_version","last_checked_files"]),e.item_types=v(e.item_types,["definitions"]),e.schema=v(e.schema,["version","files","statuses","fields","workflow","type_workflows","unknown_field_policy"]),e.schema.files=v(B(e.schema.files),["types","statuses","fields","workflows"]),e.schema.workflow=v(B(e.schema.workflow),["draft_status","open_status","in_progress_status","blocked_status","close_status","canceled_status"]),e.context=v(e.context,["default_depth","activity_limit","stale_threshold_days","sections"]),e.context.sections=v(B(e.context.sections),["hierarchy","activity","progress","blockers","files","workload","staleness","tests"]),e.extensions=v(e.extensions,["enabled","disabled","policy"]),e.extensions.policy=v(B(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=Br(e.extensions.policy.extension_overrides).map(n=>v(B(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=v(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=v(B(e.search.query_expansion),["enabled","provider"]),e.search.rerank=v(B(e.search.rerank),["enabled","model","top_k"]),e.providers=v(e.providers,["openai","ollama"]),e.providers.openai=v(B(e.providers.openai),["base_url","api_key","model"]),e.providers.ollama=v(B(e.providers.ollama),["base_url","model"]),e.vector_store=v(e.vector_store,["adapter","collection_name","qdrant","lancedb"]),e.vector_store.qdrant=v(B(e.vector_store.qdrant),["url","api_key"]),e.vector_store.lancedb=v(B(e.vector_store.lancedb),["path"])}function pf(e){return{...e,locks:M(e.locks,w.locks),ids:M(e.ids,w.ids),agent_identity:M(e.agent_identity,w.agent_identity),mutation_guard:M(e.mutation_guard,w.mutation_guard),checkpoints:M(e.checkpoints,w.checkpoints),output:M(e.output,w.output),history:M(e.history,w.history),validation:M(e.validation,w.validation),workflow:M(e.workflow,w.workflow),testing:M(e.testing,w.testing),telemetry:M(e.telemetry,w.telemetry),agent_guidance:M(e.agent_guidance,w.agent_guidance),item_types:M(e.item_types,w.item_types),schema:M(e.schema,w.schema),context:M(e.context,w.context),extensions:M(e.extensions,w.extensions),search:M(e.search,w.search),providers:M(e.providers,w.providers),vector_store:M(e.vector_store,w.vector_store)}}function yf(e,t){return{...e.validation,parent_reference:t.parent_reference,metadata_profile:t.metadata_profile,metadata_required_fields:Ls(e.validation?.metadata_required_fields),lifecycle_stale_blocker_reason_patterns:ye(e.validation?.lifecycle_stale_blocker_reason_patterns??w.validation.lifecycle_stale_blocker_reason_patterns),lifecycle_closure_like_blocked_reason_patterns:ye(e.validation?.lifecycle_closure_like_blocked_reason_patterns??w.validation.lifecycle_closure_like_blocked_reason_patterns),lifecycle_closure_like_resolution_patterns:ye(e.validation?.lifecycle_closure_like_resolution_patterns??w.validation.lifecycle_closure_like_resolution_patterns),lifecycle_closure_like_actual_result_patterns:ye(e.validation?.lifecycle_closure_like_actual_result_patterns??w.validation.lifecycle_closure_like_actual_result_patterns),estimate_defaults_by_type:$r(e.validation?.estimate_defaults_by_type)}}function hf(e){return{...w.search,...e.search,mutation_refresh_policy:Ss(e.search?.mutation_refresh_policy),query_expansion:{...w.search.query_expansion,...e.search?.query_expansion,enabled:Is(e.search?.query_expansion?.enabled),provider:xs(e.search?.query_expansion?.provider)},rerank:{...w.search.rerank,...e.search?.rerank,enabled:Ts(e.search?.rerank?.enabled),model:Os(e.search?.rerank?.model),top_k:As(e.search?.rerank?.top_k)}}}function gf(e){return{default_depth:e.context?.default_depth??w.context.default_depth,activity_limit:e.context?.activity_limit??w.context.activity_limit,stale_threshold_days:e.context?.stale_threshold_days??w.context.stale_threshold_days,sections:{...w.context.sections,...e.context?.sections}}}function bf(e){return{...e.vector_store,adapter:e.vector_store?.adapter??w.vector_store.adapter,collection_name:Cs(e.vector_store?.collection_name),qdrant:{...e.vector_store?.qdrant},lancedb:{...e.vector_store?.lancedb}}}function wf(e,t,n,r){return{...e,item_format:"toon",validation:yf(e,t),governance:t,agent_guidance:Ds(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:hf(e),context:gf(e),extensions:{enabled:Wr(e.extensions?.enabled),disabled:Wr(e.extensions?.disabled),policy:Ps(e.extensions?.policy)},vector_store:bf(e)}}function Fs(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(!Re(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:{};Fs(c,i,s),Object.keys(c).length>0?e[o]=c:delete e[o];continue}e[o]=structuredClone(s)}}}var $s=["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 Es(e,t){let n=pf(e),r=wn(n),o=Qe(n.schema),i=Zl(n,t),s=wf(n,r,o,i),a=v({...s,governance:ql(r)},$s);return _f(a),a}function Ef(e,t={}){let n=Es(e,t.persist_source);if(t.persist_source){let r=js(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=Es(r,t.persist_source),i=structuredClone(t.persist_source.source_settings);return Fs(i,o,n),`${JSON.stringify(v(i,$s),null,2)}
153
+ `}return`${JSON.stringify(n,null,2)}
154
+ `}async function zs(e){let t=In(e),n=[t];await K({path:t,scope:"project"});let r=hs(e);if(r){let u=await _e(r.tracked_paths);if(pt(u,r.signatures))return bn(r.value)}let o=await _e([t]),i;try{i=await ae(t)}catch{return yt("settings_read_fs_error")}if(i===null){let u=yt();return await Ur(e,[t],u,o,[t]),u}let s=await _e([t]);if(!pt(o,s))return pe(e),zs(e);let a;try{a=JSON.parse(i)}catch{let u=yt("settings_read_invalid_json");return await Ur(e,[t],u,s,[t]),u}let c=fs(a);if(!c.success){let u=yt("settings_read_invalid_schema");return await Ur(e,[t],u,s,[t]),u}try{let u=js(c.data),f=Jl(e,u.schema,t);n=f;let l=await _e(f),_=await ho(e,u.schema),y=await go(e,u.schema),b=await _e(f),k={...u,item_types:{definitions:Ge([...u.item_types.definitions,...Br(y.type_definitions_from_file)])},schema:y.schema};Rs(k,Xl(c.data,k));let E={settings:k,metadata:{has_explicit_item_format:ef(a)},warnings:[...c.data.item_format==="json_markdown"?["settings_item_format_legacy_json_markdown_coerced_to_toon"]:[],..._.created_paths.map(C=>`runtime_schema_bootstrap_created:${C}`),...y.warnings]};return _.created_paths.length===0?pt(l,b)?gn(e,{tracked_paths:f,signatures:b,value:bn(E)}):pe(e):pe(e),E}catch{let u=yt("settings_read_merge_failed");return await Yl(e,n,u),u}}async function ph(e){return(await zs(e)).settings}async function yh(e,t,n=Hl){let r=In(e),o=Ef(t,{persist_source:Ns(t)});try{await ls({pmRoot:e,filePath:r,raw:o,op:n,author:Lo(void 0,t.author_default),lockTtlSeconds:t.locks.ttl_seconds,lockWaitMs:t.locks.wait_ms,recordCreation:!1}),await G({path:r,scope:"project",op:n})}finally{pe(e)}}import kf from"node:fs/promises";import vf 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 Sf(e){return[...new Set(e.filter(t=>t.trim().length>0))].sort((t,n)=>t.localeCompare(n))}function If(e,t){return new x(`Missing history stream for ${e}. ${t} requires history streams when settings.history.missing_stream is strict_error.`,I.NOT_FOUND)}async function xf(e,t){return await no(vf.dirname(e)),await(await kf.open(e,"a")).close(),G({path:e,scope:"project",op:`${t}:history:auto_create`})}async function Vr(e){return Tf({pmRoot:e.pmRoot,settings:e.settings,itemIds:[e.itemId],commandLabel:e.commandLabel})}async function Tf(e){let t=Sf(e.itemIds),n=[],r=[];for(let o of t){let i=Ke(e.pmRoot,o);if(!await It(i)){if(e.settings.history.missing_stream==="strict_error")throw If(o,e.commandLabel);r.push(...await xf(i,e.commandLabel)),r.push(`history_stream_auto_created:${o}`),n.push(o)}}return{auto_created_ids:n,warnings:r}}import oe from"node:fs/promises";import Xe 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]="d24d61bf-7db8-5f35-8dbc-5ef93ec8220b")}catch{}})();async function Of(e){try{return await oe.access(e),!0}catch{return!1}}function he(e,t){return typeof e=="object"&&e!==null&&"code"in e&&e.code===t}function Af(e,t){e&&(e.includes(t)||e.push(t))}function Us(e){return e??St(it())}function Cf(e){return e==="toon"?["toon","json_markdown"]:e==="json_markdown"?["json_markdown","toon"]:["toon","json_markdown"]}function En(e){return new x(`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."]})}function qr(e){return new x(`Tracker root is not readable at ${e}.`,I.GENERIC_FAILURE,{code:"tracker_root_unreadable",reason:"unreadable",nextSteps:["Grant read and directory-search permission to the tracker root, then retry the SDK read."]})}async function Rf(e){let t=Xe.parse(Xe.resolve(e)).root,n=Xe.dirname(Xe.resolve(e));for(;n!==t;){let r;try{r=await oe.stat(n)}catch(o){if(he(o,"ENOTDIR"))throw En(e);if(!he(o,"ENOENT"))throw o;n=Xe.dirname(n);continue}if(!r.isDirectory())throw En(e);break}}async function Gr(e){let t;try{t=await oe.stat(e)}catch(n){throw he(n,"ENOENT")?(await Rf(e),new x(`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."]})):he(n,"ENOTDIR")?En(e):he(n,"EACCES")||he(n,"EPERM")?qr(e):n}if(!t.isDirectory())throw En(e);if(process.platform!=="win32"&&((t.mode&292)===0||(t.mode&73)===0))throw qr(e);try{await(await oe.opendir(e)).close()}catch(n){throw he(n,"EACCES")||he(n,"EPERM")?qr(e):n}}async function Hs(e,t,n="pm-",r,o=ge){let i=Er(t,n),s=wr(t),a=i===s?[i]:[i,s],c=Object.entries(o),u=Cf(r);for(let f of a)for(let[l]of c)for(let _ of u){let y=xn(e,l,f,_,o);if(await Of(y))return{id:f,type:l,itemPath:y,item_format:_}}return null}async function Ws(e,t={}){let n=await oe.readFile(e.itemPath,"utf8");await K({path:e.itemPath,scope:"project"});let r=Ut(n,{format:e.item_format,schema:t.schema,extensionFieldNames:Us(t.extensionFieldNames),onWarning:o=>Af(t.warnings,o)});return{raw:n,document:r}}async function Nf(e,t,n=ge,r,o){return await Gr(e),(await ss(e,t,n,r,o)).map(s=>s.metadata)}async function Vh(e,t,n=ge,r,o){return await Gr(e),(await as(e,t,n,r,o)).map(s=>s.metadata)}async function qh(e,t,n=ge,r,o,i={}){return await Gr(e),(await pn(e,t,n,r,o,{includeBody:!0,forceSourceScan:i.forceSourceScan})).map(a=>({...a.metadata,body:a.body}))}function Bs(e){return{async get(t){let n=await Hs(e.pmRoot,t,e.settings.id_prefix,e.settings.item_format,e.typeToFolder);if(!n)return null;let{document:r}=await Ws(n,{schema:e.settings.schema});return{item:r.metadata,body:r.body}},list:()=>Nf(e.pmRoot,e.settings.item_format,e.typeToFolder,void 0,e.settings.schema)}}async function Df(e,t){let n=new Set(Object.values(t)),r=[];return await Promise.all([...n].map(async o=>{try{let i=await oe.readdir(Xe.join(e,o));for(let s of i)for(let a of xt)if(s.toLowerCase().endsWith(a)){r.push(s.slice(0,-a.length));break}}catch{}})),r}async function Mf(e,t,n,r){let o=Er(t,n),i=await Df(e,r);if(i.length===0)return[];let s=Math.max(3,Math.floor(o.length/2));return i.map(c=>({id:c,distance:gt(c,o,s)})).filter(c=>c.distance!==null).sort((c,u)=>c.distance-u.distance).slice(0,3).map(c=>c.id)}async function Pf(e,t,n,r){let o=await Mf(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 x(`Item ${t} not found`,I.NOT_FOUND,{nextSteps:i})}function Lf(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 Vs(e){let t=e.typeToFolder??oo(e.settings,it()).type_to_folder,n=await Hs(e.pmRoot,e.id,e.settings.id_prefix,e.settings.item_format,t);if(!n)throw await Pf(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 Ws(n,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames,warnings:o}),a=s.metadata.assignee?.trim(),c=s.metadata.claim_principal?.trim()||a,u=Po(e.author),f=wn(e.settings);if(a&&c!==u&&!e.force&&!Lf(e.op,e.bypassAssigneeConflict)){if(f.ownership_enforcement==="strict")throw new x(`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 jf(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 Ff(e){if(!e.skipItemWrite){if(e.effectiveTargetItemPath!==e.originalItemPath){await H(e.originalItemPath,e.originalRaw),await oe.rm(e.effectiveTargetItemPath,{force:!0});return}await H(e.originalItemPath,e.originalRaw)}}async function Gh(e){let t=await Vs({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=q(i,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),u=q(structuredClone(i),{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),f=await e.mutate(u);if(e.skipNoop===!0&&f.changedFields.length===0)return{item:c.metadata,body:c.body,changedFields:[],warnings:[...s,...f.warnings??[]]};u.metadata.updated_at=Se();let l=q(u,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames});await sr({pm_root:e.pmRoot,operation:e.op,before:c,after:l,changed_fields:f.changedFields,sdk:Bs({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:n})});let _=await Vr({pmRoot:e.pmRoot,settings:e.settings,itemId:r.id,commandLabel:e.op}),y="toon",b=oi(l,{format:y,schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),k=xn(e.pmRoot,l.metadata.type,r.id,y,n),E=Ke(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:k,history_path:E,item_format:y,before:c,after:l,contents:b}),{effectiveTargetItemPath:N,effectiveSerializedAfter:Q,skipItemWrite:j}=jf(C,k,b),Ae=await Rr(e.pmRoot,e.author),ie=[];try{j||await H(N,Q),!j&&N!==r.itemPath&&await oe.rm(r.itemPath);let kn=He({nowIso:l.metadata.updated_at,author:e.author,op:e.op,before:c,after:l,message:e.message});try{await We(E,kn)}catch(ht){throw await Ff({skipItemWrite:j,effectiveTargetItemPath:N,originalItemPath:r.itemPath,originalRaw:o}),ht}j||(ie=await Nr({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:n,schema:e.settings.schema,itemPath:N,previousItemPath:r.itemPath,document:l}))}finally{await Ae()}let U=[...await G({path:N,scope:"project",op:e.op,item_id:l.metadata.id,item_type:l.metadata.type,before:c,after:l,changed_fields:f.changedFields}),...await G({path:E,scope:"project",op:`${e.op}:history`,item_id:l.metadata.id,item_type:l.metadata.type,before:c,after:l,changed_fields:f.changedFields})];return ir({id:l.metadata.id,op:e.op,item_type:l.metadata.type,previous_status:c.metadata.status,status:l.metadata.status,previous:Ht(c.metadata,f.changedFields),current:Ht(l.metadata,f.changedFields),changed_fields:f.changedFields}),{item:l.metadata,body:l.body,changedFields:f.changedFields,warnings:[...s,...f.warnings??[],..._.warnings,...C.warnings,...ie,...U]}}finally{await a()}}async function Xh(e){let t=await Vs({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=Us(void 0),c=q(o,{schema:e.settings.schema,extensionFieldNames:a});await sr({pm_root:e.pmRoot,operation:"delete",before:c,after:null,changed_fields:["deleted"],sdk:Bs({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:t.typeToFolder})});let u=await Vr({pmRoot:e.pmRoot,settings:e.settings,itemId:n.id,commandLabel:"delete"}),f=Se(),l=Ce,_=He({nowIso:f,author:e.author,op:"delete",before:c,after:l,message:e.message}),y=Ke(e.pmRoot,n.id),b=await ee("item_store_delete",{op:"delete",pm_root:e.pmRoot,item_id:n.id,item_path:n.itemPath,history_path:y,before:c}),k=n.itemPath,E=!1;if(b.handled&&typeof b.result=="object"&&b.result!==null){let j=b.result;typeof j.item_path=="string"&&j.item_path.trim().length>0&&(k=j.item_path),j.skip_delete===!0&&(E=!0)}if(e.dryRun===!0)return{item:c.metadata,changedFields:["deleted"],targetPath:k,warnings:[...i,...u.warnings,...b.warnings]};let C=await Rr(e.pmRoot,e.author),N=[];try{E||await oe.rm(k);try{await We(y,_)}catch(j){throw E||await H(k,r),j}E||(N=await Nr({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:t.typeToFolder,schema:e.settings.schema,itemPath:k,document:null}))}finally{await C()}let Q=[...await G({path:k,scope:"project",op:"delete",item_id:c.metadata.id,item_type:c.metadata.type,before:c,after:l,changed_fields:["deleted"]}),...await G({path:y,scope:"project",op:"delete:history",item_id:c.metadata.id,item_type:c.metadata.type,before:c,after:l,changed_fields:["deleted"]})];return ir({id:c.metadata.id,op:"delete",item_type:c.metadata.type,previous_status:c.metadata.status,previous:Ht(c.metadata,Object.keys(c.metadata)),changed_fields:["deleted"]}),{item:c.metadata,changedFields:["deleted"],warnings:[...i,...u.warnings,...b.warnings,...N,...Q]}}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 $f(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:gt(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 qs(e){return["pm",...e].map(t=>/^[A-Za-z0-9_./:@=-]+$/u.test(t)?t:JSON.stringify(t)).join(" ")}function Zh(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(_=>_.trim()))].filter(Boolean).sort((_,y)=>_.localeCompare(y));if(t.length===0||r.length===0||o.length===0)throw new TypeError("Unknown-subcommand contracts require a path, token, and allowed set");let i=t.split(" "),s=e.trailing_args??[],a=e.display_name??`pm ${t}`,c=e.token_kind??"subcommand",u=e.retry_command?void 0:$f(r,o),f=qs([...i,r,...s]),l=e.retry_command??(u?qs([...i,u,...s]):void 0);return new x(`Unknown ${a} ${c} "${r}". Allowed: ${o.join(", ")}${e.message_suffix??""}`,e.exit_code??I.USAGE,{code:"unknown_subcommand",reason:"unknown_positional_token",examples:[...l?[l]:[],...e.examples??[],`pm ${t} --help`],nextSteps:l?[`Retry with the suggested command: ${l}`]:["Choose one value from recovery.allowed_values."],recovery:{attempted_command:f,allowed_values:o,suggested_retry:l,fallback_candidates:e.fallback_candidates}})}export{d_ as a,dd as b,k_ as c,gd as d,v_ as e,S_ as f,I_ as g,x_ as h,T_ as i,O_ as j,A_ as k,it as l,ir as m,Ht as n,G as o,sr as p,K as q,ar as r,C_ as s,R_ as t,ee as u,Md as v,Ee as w,An as x,Hf as y,Wf as z,At as A,Mn as B,Kf as C,Yf as D,Qf as E,Zf as F,em as G,tm as H,Un as I,na as J,um as K,lm as L,fm as M,Vn as N,No as O,mm as P,_m as Q,pm as R,ga as S,Po as T,Lo as U,Se as V,Ho as W,z as X,Sm as Y,Im as Z,re as _,Go as $,et as aa,$m as ba,zm as ca,Me as da,Wo as ea,Tm as fa,Bo as ga,$a as ha,Om as ia,Lt as ja,Ua as ka,Nm as la,Ft as ma,zt as na,Ut as oa,oi as pa,q as qa,$e as ra,J_ as sa,K_ as ta,gp as ua,bp as va,Hd as wa,st as xa,fe as ya,jp as za,gr as Aa,Fp as Ba,He as Ca,We as Da,Kd as Ea,Qt as Fa,Yt as Ga,Zt as Ha,qp as Ia,Gp as Ja,Ai as Ka,en as La,Ci as Ma,tn as Na,nu as Oa,Xp as Pa,Jp as Qa,_t as Ra,Dr as Sa,qy as Ta,Gy as Ua,Xy as Va,Jy as Wa,ls as Xa,Zy as Ya,wn as Za,zs as _a,ph as $a,yh as ab,Vr as bb,Tf as cb,Di as db,wr as eb,Er as fb,ny as gb,cy as hb,dy as ib,uy as jb,ts as kb,Hu as lb,Rr as mb,My as nb,Nr as ob,pn as pb,Hs as qb,Ws as rb,Nf as sb,Vh as tb,qh as ub,Bs as vb,Pf as wb,Gh as xb,Xh as yb,Zh as zb};
155
+ //# sourceMappingURL=chunk-ZT2DJS27.js.map