@unbrained/pm-cli 2026.11.3 → 2026.11.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (294) hide show
  1. package/.agents/skills/HARNESS_COMPATIBILITY.md +1 -1
  2. package/.agents/skills/README.md +14 -14
  3. package/.agents/skills/pm-developer/SKILL.md +16 -16
  4. package/.agents/skills/pm-developer/references/GRAPH_AND_RELATIONSHIPS.md +14 -14
  5. package/.agents/skills/pm-developer/references/SCRIPTING_COMPOSITION.md +10 -10
  6. package/.agents/skills/pm-extensions/SKILL.md +13 -13
  7. package/.agents/skills/pm-extensions/references/AUTHORING.md +12 -12
  8. package/.agents/skills/pm-sdk/SKILL.md +27 -27
  9. package/.agents/skills/pm-sdk/references/SURFACE_MAP.md +32 -32
  10. package/.agents/skills/pm-test-audit/references/AUDIT.md +1 -1
  11. package/.agents/skills/pm-user/SKILL.md +35 -35
  12. package/.claude-plugin/marketplace.json +1 -1
  13. package/AGENTS.md +9 -9
  14. package/CHANGELOG.md +19 -0
  15. package/README.md +13 -13
  16. package/dist/cli/error-guidance.d.ts +14 -35
  17. package/dist/cli/error-guidance.js +2 -2
  18. package/dist/cli/expected-revisions.d.ts +55 -0
  19. package/dist/cli/expected-revisions.js +2 -0
  20. package/dist/cli/main.js +2 -2
  21. package/dist/cli/register-setup.js +1 -1
  22. package/dist/cli/runtime/invocation-options.js +1 -1
  23. package/dist/cli-bundle/bundle-manifest.json +1 -1
  24. package/dist/cli-bundle/chunks/chunk-2RPORE7M.js +31 -0
  25. package/dist/cli-bundle/chunks/{chunk-Y7H55PCY.js → chunk-335BZ75D.js} +2 -2
  26. package/dist/cli-bundle/chunks/chunk-5GWEY4P6.js +122 -0
  27. package/dist/cli-bundle/chunks/chunk-6VRX2CM7.js +2 -0
  28. package/dist/cli-bundle/chunks/{chunk-5JZMF4M5.js → chunk-7DEKAXVA.js} +2 -2
  29. package/dist/cli-bundle/chunks/{chunk-32BCU6HN.js → chunk-7ZRCYESH.js} +47 -46
  30. package/dist/cli-bundle/chunks/chunk-AUEKTX7V.js +6 -0
  31. package/dist/cli-bundle/chunks/chunk-D7KYPRK4.js +2 -0
  32. package/dist/cli-bundle/chunks/{chunk-2CBHQXYJ.js → chunk-DAX3AOFI.js} +2 -2
  33. package/dist/cli-bundle/chunks/{chunk-JPKIUWLG.js → chunk-F6NDMKZ4.js} +2 -2
  34. package/dist/cli-bundle/chunks/chunk-FRNMQM45.js +2 -0
  35. package/dist/cli-bundle/chunks/chunk-HNGLDMSZ.js +9 -0
  36. package/dist/cli-bundle/chunks/{chunk-DEJHTFEF.js → chunk-HRCMORE7.js} +2 -2
  37. package/dist/cli-bundle/chunks/chunk-HRFGFIYU.js +2 -0
  38. package/dist/cli-bundle/chunks/{chunk-5IPXDZKU.js → chunk-JI2GDE4I.js} +66 -66
  39. package/dist/cli-bundle/chunks/{chunk-MQJXZX3Q.js → chunk-LS3GI3H4.js} +53 -53
  40. package/dist/cli-bundle/chunks/chunk-OH6WQ7VT.js +3 -0
  41. package/dist/cli-bundle/chunks/{chunk-TZ3D3DPQ.js → chunk-OJDMJT7Y.js} +2 -2
  42. package/dist/cli-bundle/chunks/chunk-S4LPZ4TN.js +20 -0
  43. package/dist/cli-bundle/chunks/chunk-UEGXWXUZ.js +2 -0
  44. package/dist/cli-bundle/chunks/chunk-XLSHFYXZ.js +2 -0
  45. package/dist/cli-bundle/chunks/{chunk-UYNMKUGA.js → chunk-YKXATU2G.js} +2 -2
  46. package/dist/cli-bundle/chunks/item-revision-OJJVPQY7.js +2 -0
  47. package/dist/cli-bundle/chunks/item-transaction-QEPBUCMY.js +2 -0
  48. package/dist/cli-bundle/chunks/mutation-admission-INMM3HHG.js +2 -0
  49. package/dist/cli-bundle/chunks/{register-list-query-I6AZA3IX.js → register-list-query-5Y5JKWU5.js} +2 -2
  50. package/dist/cli-bundle/chunks/{register-mutation-3DAXCLXR.js → register-mutation-WC7OSQID.js} +2 -2
  51. package/dist/cli-bundle/chunks/register-operations-PO63DBZH.js +2 -0
  52. package/dist/cli-bundle/chunks/register-setup-RRFOS7IT.js +2 -0
  53. package/dist/cli-bundle/chunks/{stage-7H36OTDJ.js → stage-E3MMV4TV.js} +2 -2
  54. package/dist/cli-bundle/focused-chunks/chunk-5PMJOJCZ.js +44 -0
  55. package/dist/cli-bundle/focused-chunks/chunk-7KK66ISG.js +2 -0
  56. package/dist/cli-bundle/focused-chunks/{chunk-D4XQOMG4.js → chunk-AHWJPZSJ.js} +2 -2
  57. package/dist/cli-bundle/focused-chunks/chunk-C3O6JJPO.js +2 -0
  58. package/dist/cli-bundle/focused-chunks/{chunk-LKN2WGGB.js → chunk-C6P6HPCX.js} +2 -2
  59. package/dist/cli-bundle/focused-chunks/chunk-CPMSL4HS.js +2 -0
  60. package/dist/cli-bundle/focused-chunks/chunk-CZM75DE3.js +2 -0
  61. package/dist/cli-bundle/focused-chunks/{chunk-TYHDZUL4.js → chunk-D2TBEBNW.js} +2 -2
  62. package/dist/cli-bundle/focused-chunks/chunk-E56OXRYH.js +2 -0
  63. package/dist/cli-bundle/focused-chunks/{chunk-I5FODKYB.js → chunk-F62XGAAY.js} +2 -2
  64. package/dist/cli-bundle/focused-chunks/chunk-G4QP365K.js +2 -0
  65. package/dist/cli-bundle/focused-chunks/chunk-G5PJCR7R.js +2 -0
  66. package/dist/cli-bundle/focused-chunks/chunk-GS3JC5UU.js +23 -0
  67. package/dist/cli-bundle/focused-chunks/chunk-I5LGPUWH.js +2 -0
  68. package/dist/cli-bundle/focused-chunks/chunk-LW64TINU.js +3 -0
  69. package/dist/cli-bundle/focused-chunks/chunk-M6V7UMWL.js +26 -0
  70. package/dist/cli-bundle/focused-chunks/chunk-MC7IE7D7.js +8 -0
  71. package/dist/cli-bundle/focused-chunks/chunk-MG7C3JUY.js +2 -0
  72. package/dist/cli-bundle/focused-chunks/{chunk-F3X6UWMI.js → chunk-MK4HV4JO.js} +2 -2
  73. package/dist/cli-bundle/focused-chunks/{chunk-ZQRCVRGS.js → chunk-NQ7GYFOX.js} +54 -54
  74. package/dist/cli-bundle/focused-chunks/chunk-O7EI33NP.js +91 -0
  75. package/dist/cli-bundle/focused-chunks/{chunk-RY4QEMAE.js → chunk-RFTJZ5VB.js} +2 -2
  76. package/dist/cli-bundle/focused-chunks/chunk-SNOXXRSJ.js +2 -0
  77. package/dist/cli-bundle/focused-chunks/chunk-UPJUTP2V.js +12 -0
  78. package/dist/cli-bundle/focused-chunks/{chunk-HJ27QLZV.js → chunk-VWWTIX5L.js} +2 -2
  79. package/dist/cli-bundle/focused-chunks/{chunk-HOXIIZEO.js → chunk-XHOBYCVE.js} +2 -2
  80. package/dist/cli-bundle/focused-chunks/chunk-YMGB2O4E.js +81 -0
  81. package/dist/cli-bundle/focused-chunks/item-revision-CTDO4H3I.js +2 -0
  82. package/dist/cli-bundle/focused-chunks/item-transaction-AEAYVVHA.js +2 -0
  83. package/dist/cli-bundle/focused-chunks/mutation-admission-4WM7TNHZ.js +2 -0
  84. package/dist/cli-bundle/focused-chunks/{stage-4SQHVI3O.js → stage-WV7QXR4C.js} +2 -2
  85. package/dist/cli-bundle/main.js +25 -25
  86. package/dist/cli-bundle/sdk-authoring.js +1 -1
  87. package/dist/cli-bundle/sdk-contracts.js +5 -5
  88. package/dist/cli-bundle/sdk-core.js +1 -1
  89. package/dist/cli-bundle/sdk-governance.js +1 -1
  90. package/dist/cli-bundle/sdk-graph.js +1 -1
  91. package/dist/cli-bundle/sdk-merge.js +57 -57
  92. package/dist/cli-bundle/sdk-query.js +1 -1
  93. package/dist/cli-bundle/sdk-runtime.js +1 -1
  94. package/dist/cli-bundle/sdk-testing.js +1 -1
  95. package/dist/cli-bundle/sdk.js +11 -11
  96. package/dist/core/config/positional-value.d.ts +7 -1
  97. package/dist/core/config/positional-value.js +1 -1
  98. package/dist/core/extensions/reserved-host-flags.js +1 -1
  99. package/dist/core/history/history-rewrite.js +1 -1
  100. package/dist/core/item/literal-mutation-input.d.ts +17 -0
  101. package/dist/core/item/literal-mutation-input.js +1 -1
  102. package/dist/core/item/parent-reference-policy.d.ts +8 -4
  103. package/dist/core/item/parent-reference-policy.js +1 -1
  104. package/dist/core/item/sprint-release-format.d.ts +2 -1
  105. package/dist/core/item/sprint-release-format.js +1 -1
  106. package/dist/core/output/mutation-projection.js +1 -1
  107. package/dist/core/shared/command-types.d.ts +7 -0
  108. package/dist/core/store/item-mutation-precondition.d.ts +72 -6
  109. package/dist/core/store/item-mutation-precondition.js +1 -1
  110. package/dist/core/store/item-store.js +1 -1
  111. package/dist/core/store/settings-validator.js +1 -1
  112. package/dist/core/store/settings.d.ts +14 -0
  113. package/dist/core/store/settings.js +5 -4
  114. package/dist/core/telemetry/policy.d.ts +27 -1
  115. package/dist/core/telemetry/policy.js +1 -1
  116. package/dist/core/telemetry/runtime.d.ts +18 -7
  117. package/dist/core/telemetry/runtime.js +4 -4
  118. package/dist/sdk/cli-contracts/bootstrap-command-scanner.js +1 -1
  119. package/dist/sdk/cli-contracts/completeness.js +1 -1
  120. package/dist/sdk/cli-contracts/enum-contracts.d.ts +11 -0
  121. package/dist/sdk/cli-contracts/enum-contracts.js +1 -1
  122. package/dist/sdk/cli-contracts/flag-lexicon-contracts.js +1 -1
  123. package/dist/sdk/cli-contracts/registration-helpers.js +1 -1
  124. package/dist/sdk/cli-contracts/tool-parameter-tables.js +1 -1
  125. package/dist/sdk/cli-contracts/tool-schema.js +1 -1
  126. package/dist/sdk/cli-contracts/typed-action-inputs.d.ts +8 -5
  127. package/dist/sdk/cli-contracts.d.ts +1 -1
  128. package/dist/sdk/cli-contracts.js +1 -1
  129. package/dist/sdk/cli-program.js +1 -1
  130. package/dist/sdk/config.d.ts +3 -3
  131. package/dist/sdk/config.js +1 -1
  132. package/dist/sdk/environment/project-runtime-compatibility.js +1 -1
  133. package/dist/sdk/generated/generated-error-code-catalog-part-1.js +1 -1
  134. package/dist/sdk/generated/generated-error-code-catalog-part-2.js +1 -1
  135. package/dist/sdk/governance/health.d.ts +2 -2
  136. package/dist/sdk/governance/health.js +2 -2
  137. package/dist/sdk/governance/validate.js +1 -1
  138. package/dist/sdk/history/salvage.js +3 -3
  139. package/dist/sdk/history-compact.d.ts +7 -1
  140. package/dist/sdk/history-compact.js +1 -1
  141. package/dist/sdk/history-repair.d.ts +2 -1
  142. package/dist/sdk/history-repair.js +1 -1
  143. package/dist/sdk/index.d.ts +6 -1
  144. package/dist/sdk/index.js +1 -1
  145. package/dist/sdk/init.d.ts +4 -4
  146. package/dist/sdk/init.js +8 -8
  147. package/dist/sdk/lifecycle/checkpoint-rollback.d.ts +10 -2
  148. package/dist/sdk/lifecycle/checkpoint-rollback.js +1 -1
  149. package/dist/sdk/lifecycle/claim.d.ts +4 -0
  150. package/dist/sdk/lifecycle/claim.js +1 -1
  151. package/dist/sdk/lifecycle/close-many.d.ts +11 -2
  152. package/dist/sdk/lifecycle/close-many.js +1 -1
  153. package/dist/sdk/lifecycle/close.d.ts +25 -0
  154. package/dist/sdk/lifecycle/close.js +1 -1
  155. package/dist/sdk/lifecycle/create.d.ts +7 -5
  156. package/dist/sdk/lifecycle/create.js +1 -1
  157. package/dist/sdk/lifecycle/item-revision.d.ts +162 -0
  158. package/dist/sdk/lifecycle/item-revision.js +2 -0
  159. package/dist/sdk/lifecycle/restore.js +1 -1
  160. package/dist/sdk/lifecycle/shared-unset-fields.d.ts +628 -4
  161. package/dist/sdk/lifecycle/shared-unset-fields.js +1 -1
  162. package/dist/sdk/lifecycle/start-blockers.d.ts +52 -0
  163. package/dist/sdk/lifecycle/start-blockers.js +2 -0
  164. package/dist/sdk/lifecycle/task-composition.d.ts +11 -0
  165. package/dist/sdk/lifecycle/task-composition.js +1 -1
  166. package/dist/sdk/lifecycle/update-many.d.ts +11 -2
  167. package/dist/sdk/lifecycle/update-many.js +1 -1
  168. package/dist/sdk/lifecycle/update.d.ts +5 -4
  169. package/dist/sdk/lifecycle/update.js +2 -2
  170. package/dist/sdk/public-surface.json +1 -1
  171. package/dist/sdk/query/declared-blockers.d.ts +16 -0
  172. package/dist/sdk/query/declared-blockers.js +2 -0
  173. package/dist/sdk/query/get.d.ts +7 -0
  174. package/dist/sdk/query/get.js +1 -1
  175. package/dist/sdk/query/projection-contracts.js +1 -1
  176. package/dist/sdk/runtime/actions.js +1 -1
  177. package/dist/sdk/runtime/mutation-value-validation.js +1 -1
  178. package/dist/sdk/runtime-input.d.ts +12 -0
  179. package/dist/sdk/runtime-input.js +1 -1
  180. package/dist/sdk/runtime-primitives.d.ts +1 -0
  181. package/dist/sdk/runtime-primitives.js +1 -1
  182. package/dist/sdk/runtime.d.ts +10 -0
  183. package/dist/sdk/runtime.js +1 -1
  184. package/dist/sdk/structured-mutations.js +1 -1
  185. package/dist/sdk/telemetry.d.ts +1 -1
  186. package/dist/sdk/telemetry.js +2 -2
  187. package/dist/sdk/test/batch.js +2 -2
  188. package/dist/sdk/test/execution.js +2 -2
  189. package/dist/sdk/test/linked-command-detection.js +1 -1
  190. package/dist/sdk/workspace-transaction.d.ts +17 -6
  191. package/dist/sdk/workspace-transaction.js +1 -1
  192. package/dist/types.d.ts +6 -0
  193. package/dist/types.js +1 -1
  194. package/docs/AGENT_GUIDE.md +48 -48
  195. package/docs/AGENT_OUTPUT_ENCODINGS.md +20 -20
  196. package/docs/ASSURANCE.md +10 -10
  197. package/docs/BOUNDED_CONTEXT_READS.md +3 -3
  198. package/docs/CLAUDE_CODE_PLUGIN.md +1 -1
  199. package/docs/CLI_GRAMMAR.md +2 -2
  200. package/docs/COMMANDS.md +144 -32
  201. package/docs/COMMAND_NAMESPACES.md +1 -1
  202. package/docs/CONFIGURATION.md +82 -70
  203. package/docs/CONTEXT_ALGORITHM_PORTFOLIO.md +2 -2
  204. package/docs/CONTEXT_INTEGRITY_CONTRACTS.md +5 -5
  205. package/docs/CORPUS_SHAPES.md +1 -1
  206. package/docs/DEPENDENCY_KIND_CONTRACT.md +6 -6
  207. package/docs/DIAGNOSTIC_OUTPUT_CONTRACTS.md +5 -5
  208. package/docs/ECOSYSTEM_PLANNING_REVIEW.md +3 -3
  209. package/docs/EXTENSION_AUTHOR_CONTRACTS.md +4 -4
  210. package/docs/HISTORY_ATTESTATION.md +1 -1
  211. package/docs/HISTORY_MAINTENANCE.md +1 -1
  212. package/docs/LIFECYCLE_COMMANDS.md +1 -1
  213. package/docs/MCP_2026_07_28.md +16 -16
  214. package/docs/MCP_2026_07_28_CONFORMANCE.md +19 -19
  215. package/docs/MCP_REMOTE_TRANSPORT_SECURITY.md +22 -22
  216. package/docs/MCP_SKILLS_AND_APPS.md +1 -1
  217. package/docs/MERGE_SAFETY.md +6 -6
  218. package/docs/MUTATION_INTEGRITY.md +5 -5
  219. package/docs/OUTPUT_PROJECTION_CONTRACTS.md +14 -14
  220. package/docs/PACKED_FIRST_RUN.md +1 -1
  221. package/docs/QUICKSTART.md +10 -10
  222. package/docs/README.md +21 -21
  223. package/docs/READ_OUTPUT_CONTRACTS.md +9 -9
  224. package/docs/RECURRENCE_RECOVERY_CONTRACTS.md +1 -1
  225. package/docs/RELEASING.md +19 -10
  226. package/docs/SCRIPTING.md +10 -10
  227. package/docs/SDK.md +183 -38
  228. package/docs/SDK_ARTIFACT_OUTPUT.md +1 -1
  229. package/docs/SDK_PRIMITIVE_INVENTORY.md +2 -2
  230. package/docs/SELF_DESCRIBING_CONTEXT_CONTRACTS.md +7 -7
  231. package/docs/TESTING.md +1 -1
  232. package/docs/WORKFLOW_POLICIES.md +2 -2
  233. package/docs/WORKSPACE_POSITION_AND_LIFECYCLE.md +8 -8
  234. package/docs/agent-task-token-baseline.json +1 -1
  235. package/docs/generated/AGENT_CAPABILITY_ROUTING.md +1 -1
  236. package/docs/generated/AGENT_COMMAND_SURFACE.md +1 -1
  237. package/docs/generated/FLAG_LEXICON_BUDGETS.md +112 -112
  238. package/docs/generated/REFUSAL_CLOSURE_CENSUS.md +13 -4
  239. package/docs/performance/cli-transport-overhead.md +7 -7
  240. package/marketplace.json +1 -1
  241. package/package.json +1 -1
  242. package/packages/pm-beads/package.json +1 -1
  243. package/packages/pm-calendar/package.json +1 -1
  244. package/packages/pm-command-kit/README.md +5 -5
  245. package/packages/pm-command-kit/package.json +1 -1
  246. package/packages/pm-digital-twin/GAP_REPORT.md +16 -16
  247. package/packages/pm-digital-twin/package.json +1 -1
  248. package/packages/pm-governance-audit/package.json +1 -1
  249. package/packages/pm-guide-shell/package.json +1 -1
  250. package/packages/pm-kanban/README.md +1 -1
  251. package/packages/pm-kanban/package.json +1 -1
  252. package/packages/pm-lifecycle-hooks/package.json +1 -1
  253. package/packages/pm-linked-test-adapters/package.json +1 -1
  254. package/packages/pm-search-advanced/package.json +1 -1
  255. package/packages/pm-templates/package.json +1 -1
  256. package/packages/pm-todos/package.json +1 -1
  257. package/packages/pm-vcs/GAP_REPORT.md +1 -1
  258. package/packages/pm-vcs/package.json +1 -1
  259. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  260. package/plugins/pm-claude/README.md +6 -6
  261. package/plugins/pm-claude/package.json +1 -1
  262. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  263. package/plugins/pm-codex/package.json +1 -1
  264. package/plugins/pm-codex/plugin.json +1 -1
  265. package/runtime-dependencies.json +1 -1
  266. package/dist/cli-bundle/chunks/chunk-7ZEFHFAU.js +0 -2
  267. package/dist/cli-bundle/chunks/chunk-B6UTLYLM.js +0 -3
  268. package/dist/cli-bundle/chunks/chunk-HBKD5HZB.js +0 -2
  269. package/dist/cli-bundle/chunks/chunk-L6LCLC37.js +0 -2
  270. package/dist/cli-bundle/chunks/chunk-NR4KABHC.js +0 -31
  271. package/dist/cli-bundle/chunks/chunk-PWD5RY2D.js +0 -2
  272. package/dist/cli-bundle/chunks/chunk-XRMYA4R7.js +0 -20
  273. package/dist/cli-bundle/chunks/chunk-YWS4XV4I.js +0 -6
  274. package/dist/cli-bundle/chunks/chunk-ZOAJNPBL.js +0 -129
  275. package/dist/cli-bundle/chunks/item-transaction-ZHLJTBD7.js +0 -2
  276. package/dist/cli-bundle/chunks/mutation-admission-ZQMRMGIB.js +0 -2
  277. package/dist/cli-bundle/chunks/register-operations-G3QGGQ5Z.js +0 -2
  278. package/dist/cli-bundle/chunks/register-setup-LDXHMNOT.js +0 -2
  279. package/dist/cli-bundle/focused-chunks/chunk-3XGKBVJ3.js +0 -2
  280. package/dist/cli-bundle/focused-chunks/chunk-4HY6EGPB.js +0 -2
  281. package/dist/cli-bundle/focused-chunks/chunk-AK2CI2GI.js +0 -2
  282. package/dist/cli-bundle/focused-chunks/chunk-HUXZCPWT.js +0 -26
  283. package/dist/cli-bundle/focused-chunks/chunk-IKXJ57XA.js +0 -8
  284. package/dist/cli-bundle/focused-chunks/chunk-MOY6KZGJ.js +0 -44
  285. package/dist/cli-bundle/focused-chunks/chunk-PWUTFKSI.js +0 -2
  286. package/dist/cli-bundle/focused-chunks/chunk-PZRB7IXH.js +0 -91
  287. package/dist/cli-bundle/focused-chunks/chunk-WSYPVBKS.js +0 -80
  288. package/dist/cli-bundle/focused-chunks/chunk-WXLG7HZ5.js +0 -3
  289. package/dist/cli-bundle/focused-chunks/chunk-WZDFCVLX.js +0 -12
  290. package/dist/cli-bundle/focused-chunks/chunk-YGO3FWA2.js +0 -2
  291. package/dist/cli-bundle/focused-chunks/chunk-YVLAP3BL.js +0 -23
  292. package/dist/cli-bundle/focused-chunks/chunk-ZYXQACPB.js +0 -2
  293. package/dist/cli-bundle/focused-chunks/item-transaction-PZ2FQ6B2.js +0 -2
  294. package/dist/cli-bundle/focused-chunks/mutation-admission-XOOK6XFH.js +0 -2
@@ -1,4 +1,4 @@
1
- import{f as w,i as y,j,k as B,l as U,o as h,p as X,q as W,r as Y}from"./chunk-I5FODKYB.js";import{U as H,a as $,b as D}from"./chunk-WXLG7HZ5.js";import{c as u,f as M,g as z,i as q}from"./chunk-TYHDZUL4.js";import{Va as F,q as L,t as R}from"./chunk-F3X6UWMI.js";import{a as g,d as K}from"./chunk-HJ27QLZV.js";import{da as k,g as P}from"./chunk-HUXZCPWT.js";import{a as N,e as O,f as x,g as A,i as C}from"./chunk-G6ERMFJ5.js";(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]="3ec1f825-59d1-5ce2-ac76-c628264bd8be")}catch{}})();var Ce=N,Pe=O,$e=C,De=x,Le=A;function G(e,t,n,r){let o=e.flag.slice(2).replace(/[-_]([a-z])/gu,(a,i)=>i.toUpperCase()),s=n.has(o);return{long:t,...r?{short:r}:{},description:e.description??`Standard pm ${e.flag} option.`,...e.required===!0?{required:!0}:{},...e.list===!0?{list:!0}:{},...e.repeatable===!0?{repeatable:!0}:{},value_type:s?"string":"boolean",...s?{value_name:e.value_name??"value"}:{}}}function Q(e,t=[]){let n=new Set(t.flatMap(o=>o.keys)),r=[];for(let o of L(e.map(s=>({...s})))){r.push(G(o,o.flag,n,o.short));for(let s of o.aliases??[])r.push(G(o,s,n))}return r}var Re=Q(R,$),Fe=Q(F,D);(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]="59d16a38-d6df-5695-96e3-28b6e384f76b")}catch{}})();var _=["agile","ops","research"],I={agile:{name:"agile",title:"Agile delivery",summary:"Story/Spike delivery with a review stage, story points, and acceptance ownership.",types:w.agile,statuses:[{id:"review",roles:["active"],aliases:["in-review"],description:"Work is implementation-complete and awaiting peer review."}],fields:[{key:"story_points",type:"number",commands:["create","update","list"],description:"Relative estimation size for a story or spike.",aliases:["points"]},{key:"acceptance_owner",type:"string",commands:["create","update","list"],description:"Stakeholder accountable for accepting the delivered story.",aliases:["acceptor"]}],workflows:[{type:"Story",allowed_transitions:[["open","in_progress"],["in_progress","review"],["review","in_progress"],["review","closed"],["in_progress","blocked"],["blocked","in_progress"]]}],config:[{key:"search_provider",value:"bm25",summary:"Offline BM25 lexical search works without an embedding service."},{key:"search_max_results",value:"20",summary:"Sprint-sized result cap for quick triage."}],templates:[{name:"story",options:{type:"Story",priority:"2",tags:"story",acceptanceCriteria:"Story delivers the stated user outcome with tests and docs updated.",body:`## As a
1
+ import{f as w,i as y,j,k as B,l as U,o as h,p as X,q as W,r as Y}from"./chunk-F62XGAAY.js";import{U as H,a as $,b as D}from"./chunk-LW64TINU.js";import{c as u,f as M,g as z,i as q}from"./chunk-D2TBEBNW.js";import{Va as F,q as L,t as R}from"./chunk-MK4HV4JO.js";import{a as g,d as K}from"./chunk-VWWTIX5L.js";import{ea as k,g as P}from"./chunk-M6V7UMWL.js";import{a as N,e as O,f as x,g as A,i as C}from"./chunk-G6ERMFJ5.js";(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]="3ec1f825-59d1-5ce2-ac76-c628264bd8be")}catch{}})();var Ce=N,Pe=O,$e=C,De=x,Le=A;function G(e,t,n,r){let o=e.flag.slice(2).replace(/[-_]([a-z])/gu,(a,i)=>i.toUpperCase()),s=n.has(o);return{long:t,...r?{short:r}:{},description:e.description??`Standard pm ${e.flag} option.`,...e.required===!0?{required:!0}:{},...e.list===!0?{list:!0}:{},...e.repeatable===!0?{repeatable:!0}:{},value_type:s?"string":"boolean",...s?{value_name:e.value_name??"value"}:{}}}function Q(e,t=[]){let n=new Set(t.flatMap(o=>o.keys)),r=[];for(let o of L(e.map(s=>({...s})))){r.push(G(o,o.flag,n,o.short));for(let s of o.aliases??[])r.push(G(o,s,n))}return r}var Re=Q(R,$),Fe=Q(F,D);(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]="59d16a38-d6df-5695-96e3-28b6e384f76b")}catch{}})();var _=["agile","ops","research"],I={agile:{name:"agile",title:"Agile delivery",summary:"Story/Spike delivery with a review stage, story points, and acceptance ownership.",types:w.agile,statuses:[{id:"review",roles:["active"],aliases:["in-review"],description:"Work is implementation-complete and awaiting peer review."}],fields:[{key:"story_points",type:"number",commands:["create","update","list"],description:"Relative estimation size for a story or spike.",aliases:["points"]},{key:"acceptance_owner",type:"string",commands:["create","update","list"],description:"Stakeholder accountable for accepting the delivered story.",aliases:["acceptor"]}],workflows:[{type:"Story",allowed_transitions:[["open","in_progress"],["in_progress","review"],["review","in_progress"],["review","closed"],["in_progress","blocked"],["blocked","in_progress"]]}],config:[{key:"search_provider",value:"bm25",summary:"Offline BM25 lexical search works without an embedding service."},{key:"search_max_results",value:"20",summary:"Sprint-sized result cap for quick triage."}],templates:[{name:"story",options:{type:"Story",priority:"2",tags:"story",acceptanceCriteria:"Story delivers the stated user outcome with tests and docs updated.",body:`## As a
2
2
 
3
3
  ## I want
4
4
 
@@ -23,4 +23,4 @@ import{f as w,i as y,j,k as B,l as U,o as h,p as X,q as W,r as Y}from"./chunk-I5
23
23
 
24
24
  ## Conclusion
25
25
  `}}],packages:[{spec:"search-advanced",reason:"Semantic retrieval over experiments and findings."},{spec:"templates",reason:"Consistent experiment and hypothesis scaffolds."},{spec:"beads",reason:"Import structured prior work into the tracker."}]}};function ne(e){if(e===void 0)return;let t=p(e);if(t.length===0)throw new Error("Profile name must not be empty.");if(_.includes(t))return t;throw new Error(`Invalid profile "${e}". Allowed: ${_.join(", ")}.`)}function qe(e){let t=ne(e);if(t===void 0)throw new Error(`Profile name is required. Allowed: ${_.join(", ")}.`);return I[t]}function je(){return _.map(e=>I[e])}function p(e){return e.trim().toLowerCase().replaceAll("-","_")}function J(e){return e.map(t=>t.definition.name).join(", ")}function re(e=[]){let t=_.map(s=>({definition:I[s],source:"builtin"})),n=new Set(_.map(s=>p(s))),r=new Set(n),o=[];for(let s of e){let a=p(s.profile.name);if(n.has(a)){o.push(`Extension "${s.name}" profile "${s.profile.name}" uses a name reserved by a built-in archetype and was ignored.`);continue}if(r.has(a)){o.push(`Profile "${s.profile.name}" from extension "${s.name}" duplicates an already-registered profile and was ignored.`);continue}r.add(a),t.push({definition:s.profile,source:"extension",package:s.name})}return{profiles:t,warnings:o}}function Be(e,t=[]){let{profiles:n,warnings:r}=re(t);if(typeof e!="string"||e.trim().length===0)throw new Error(`Profile name is required. Allowed: ${J(n)}.`);let o=p(e),s=n.find(a=>p(a.definition.name)===o);if(s===void 0)throw new Error(`Invalid profile "${e}". Allowed: ${J(n)}.`);return{resolved:s,warnings:r}}(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]="ab26bcb3-fb2a-5f2f-96e7-7965787b924e")}catch{}})();function oe(e){return{types:e.types.length,statuses:e.statuses.length,fields:e.fields.length,workflows:e.workflows.length,config:e.config.length,templates:e.templates.length,packages:e.packages.length}}function Ye(e){return{name:e.name,title:e.title,summary:e.summary,composition:oe(e),types:e.types.map(t=>S(()=>u(t).name,()=>String(t.name??""))),statuses:e.statuses.map(t=>S(()=>h(t).id,()=>String(t.id??""))),fields:e.fields.map(t=>S(()=>y(t).key,()=>String(t.key??""))),workflows:e.workflows.map(t=>t.type),config:e.config.map(t=>`${t.key}=${t.value}`),templates:e.templates.map(t=>t.name),packages:e.packages.map(t=>({spec:t.spec,reason:t.reason}))}}function S(e,t){try{return e()}catch{return 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]="499ff311-4667-5035-8fb2-4854ee7ecdd7")}catch{}})();var se=[{key:"context_next_ranking_policy",path:"context.next_ranking_policy",kind:"string",choices:["priority_floor","weighted"],summary:"Ready-queue order for pm next with the built-in scorer: priority_floor (resume in-progress work, then priority tiers, relevance within a tier) or weighted (blended relevance order). An extension context_relevance scorer keeps its own order."},{key:"search_provider",path:"search.provider",kind:"string",summary:"Search embedding provider name (e.g. openai, ollama, or an extension provider)."},{key:"search_default_mode",path:"search.default_mode",kind:"string",choices:["auto","keyword","semantic","hybrid"],summary:"Mode a bare pm search runs in: auto (hybrid when semantic search is explicitly configured and runnable, else keyword), or a pinned keyword, semantic, or hybrid."},{key:"search_mutation_refresh_policy",path:"search.mutation_refresh_policy",kind:"string",choices:["cache_only","semantic_configured","semantic_auto"],summary:"Mutation-time search refresh policy: cache_only, semantic_configured, or semantic_auto."},{key:"search_query_expansion_enabled",path:"search.query_expansion.enabled",kind:"boolean",summary:"Enable or disable query expansion for semantic/hybrid search."},{key:"search_query_expansion_provider",path:"search.query_expansion.provider",kind:"string",summary:"Query expansion provider name (built-in openai/ollama or extension provider)."},{key:"search_rerank_enabled",path:"search.rerank.enabled",kind:"boolean",summary:"Enable or disable post-retrieval reranking for hybrid search."},{key:"search_rerank_model",path:"search.rerank.model",kind:"string",summary:"Rerank model name override used by built-in providers."},{key:"search_rerank_top_k",path:"search.rerank.top_k",kind:"integer",min:1,summary:"Number of top hybrid candidates to rerank when rerank is enabled."},{key:"search_embedding_model",path:"search.embedding_model",kind:"string",summary:"Default embedding model name (overrides provider-specific model when set)."},{key:"search_embedding_corpus_max_characters",path:"search.embedding_corpus_max_characters",kind:"integer",min:1,summary:"Maximum semantic corpus characters per item before truncation."},{key:"search_embedding_batch_size",path:"search.embedding_batch_size",kind:"integer",min:1,summary:"Number of items embedded per request batch."},{key:"search_embedding_timeout_ms",path:"search.embedding_timeout_ms",kind:"integer",min:1,summary:"Per-request embedding timeout in milliseconds."},{key:"search_score_threshold",path:"search.score_threshold",kind:"number",summary:"Minimum score for a hit to be returned (0 keeps all matches)."},{key:"search_hybrid_semantic_weight",path:"search.hybrid_semantic_weight",kind:"ratio",summary:"Hybrid mode semantic weight in [0, 1] (1-weight goes to keyword)."},{key:"search_max_results",path:"search.max_results",kind:"integer",min:1,summary:"Default upper bound on search hits when --limit is not supplied."},{key:"search_bm25_k1",path:"search.bm25.k1",kind:"number",min:0,summary:"Offline BM25 term-frequency saturation (k1); higher saturates repeated terms slower (default 1.2)."},{key:"search_bm25_b",path:"search.bm25.b",kind:"ratio",summary:"Offline BM25 document-length normalization (b) in [0, 1]; 0 disables, 1 fully normalizes (default 0.75)."},{key:"openai_base_url",path:"providers.openai.base_url",kind:"string",summary:"OpenAI-compatible API base URL (LM Studio/vLLM also use this)."},{key:"openai_api_key",path:"providers.openai.api_key",kind:"string",summary:"OpenAI-compatible API key."},{key:"openai_model",path:"providers.openai.model",kind:"string",summary:"OpenAI-compatible embedding model name."},{key:"ollama_base_url",path:"providers.ollama.base_url",kind:"string",summary:"Ollama API base URL (typically http://localhost:11434)."},{key:"ollama_model",path:"providers.ollama.model",kind:"string",summary:"Ollama embedding model name (e.g. nomic-embed-text)."},{key:"vector_store_adapter",path:"vector_store.adapter",kind:"string",summary:"Vector store adapter name (lancedb, qdrant, or an extension adapter)."},{key:"vector_store_collection_name",path:"vector_store.collection_name",kind:"string",non_empty:!0,summary:"Vector collection/table name shared by Qdrant and LanceDB adapters."},{key:"qdrant_url",path:"vector_store.qdrant.url",kind:"string",summary:"Qdrant HTTP API URL."},{key:"qdrant_api_key",path:"vector_store.qdrant.api_key",kind:"string",summary:"Qdrant API key (empty if running unauthenticated)."},{key:"lancedb_path",path:"vector_store.lancedb.path",kind:"string",summary:"LanceDB storage path (relative to pm root or absolute)."},{key:"id_prefix",path:"id_prefix",kind:"string",non_empty:!0,summary:'Prefix for generated item IDs (e.g. "pm" produces pm-xxxx).'},{key:"author_default",path:"author_default",kind:"string",non_empty:!0,summary:"Default author recorded on mutations when --author is not supplied."},{key:"agent_identity_probes_enabled",path:"agent_identity.probes_enabled",kind:"boolean",summary:"Allow privacy-bounded local harness provenance probes; no network or subprocess access is permitted."},{key:"mutation_guard_require_attributed_author",path:"mutation_guard.require_attributed_author",kind:"boolean",summary:"Reject mutations whose effective author resolves to unknown."},{key:"mutation_guard_secret_guard",path:"mutation_guard.secret_guard",kind:"string",choices:["off","advise","block"],summary:"Detect credential-shaped mutation content: off, advise, or block."},{key:"mutation_guard_stale_in_progress_hours",path:"mutation_guard.stale_in_progress_hours",kind:"integer",min:1,summary:"Age threshold for unclaimed in-progress work surfaced by health."},{key:"governance_duplicate_detection_mode",path:"governance.duplicate_detection_mode",kind:"string",choices:["off","advisory","strict"],summary:"Create/copy duplicate governance: off, advisory, or strict explicit-bypass enforcement."},{key:"governance_duplicate_detection_threshold",path:"governance.duplicate_detection_threshold",kind:"ratio",summary:"Minimum shared similarity score in [0, 1] for create/copy duplicate governance."},{key:"governance_duplicate_detection_limit",path:"governance.duplicate_detection_limit",kind:"integer",min:0,max:20,summary:"Maximum likely duplicates returned by create/copy governance (0-20)."},{key:"output_default_format",path:"output.default_format",kind:"string",choices:["toon","json"],summary:"Default output format for commands that support it: toon or json."},{key:"ux_deprecation_hints",path:"ux.deprecation_hints",kind:"boolean",summary:"Emit one stderr migration hint for deprecated command aliases."},{key:"locks_ttl_seconds",path:"locks.ttl_seconds",kind:"integer",min:1,summary:"Claim/lock time-to-live in seconds before a stale lock can be reclaimed."},{key:"locks_wait_ms",path:"locks.wait_ms",kind:"integer",min:0,summary:"Wait budget in milliseconds before a contended lock fails with lock_conflict; item-store mutations, restore and the hierarchy lock treat it as a no-progress window that each observed owner handoff restarts (120 s total cap), other locks as a fixed total; 0 fails fast. PM_LOCK_WAIT_MS overrides per invocation."},{key:"ids_token_length",path:"ids.token_length",kind:"integer",min:4,max:12,summary:"Random base36 token length for newly minted item ids (4-12, default 4). Raise it to shrink cross-branch id collision odds in concurrent multi-agent workflows (pm-pibw)."},{key:"checkpoints_retention_days",path:"checkpoints.retention_days",kind:"integer",min:1,summary:"Age in days above which pm gc --scope checkpoints prunes bulk-mutation rollback checkpoints."},{key:"schema_unknown_field_policy",path:"schema.unknown_field_policy",kind:"string",choices:["allow","warn","reject"],summary:"How item I/O handles metadata keys not in the field registry: allow, warn, or reject."},{key:"history_compact_policy_enabled",path:"history.compact_policy.enabled",kind:"boolean",summary:"Enable the history-compaction advisory: pm health warns on over-threshold streams."},{key:"history_compact_policy_max_entries",path:"history.compact_policy.max_entries",kind:"integer",min:1,summary:"Entry count above which a history stream is flagged (and the default pm history-compact --all-over threshold)."},{key:"history_compact_policy_trigger",path:"history.compact_policy.trigger",kind:"string",choices:["health_warn","auto"],summary:"History-compaction policy intent: health_warn (advisory only) or auto (scheduled sweeps expected)."}],ae=new Map(se.flatMap(e=>[[e.key,e],[e.path.toLowerCase().replaceAll("-","_"),e]]));function b(e){if(typeof e!="string")return;let t=e.trim().toLowerCase().replaceAll("-","_");if(t.length!==0)return ae.get(t)}function ie(e,t){let n=t.trim().toLowerCase();return n==="true"||n==="1"||n==="yes"||n==="on"?{ok:!0,parsed:{descriptor:e,value:!0}}:n==="false"||n==="0"||n==="no"||n==="off"?{ok:!0,parsed:{descriptor:e,value:!1}}:{ok:!1,error:{message:`Config set ${e.key} requires a boolean value (true|false), got "${t}"`}}}function le(e,t,n){return e.non_empty===!0&&n.length===0?{ok:!1,error:{message:`Config set ${e.key} requires a non-empty value`}}:e.choices&&!e.choices.includes(n)?{ok:!1,error:{message:`Config set ${e.key} must be one of ${e.choices.join("|")}, got "${t}"`}}:{ok:!0,parsed:{descriptor:e,value:n}}}function de(e,t,n){if(n.length===0)return{ok:!1,error:{message:`Config set ${e.key} requires a non-empty value`}};let r=Number(n);return Number.isFinite(r)?{ok:!0,value:r}:{ok:!1,error:{message:`Config set ${e.key} requires a finite number, got "${t}"`}}}function ce(e,t,n){return!Number.isInteger(n)||n<0?{ok:!1,error:{message:`Config set ${e.key} requires a non-negative integer, got "${t}"`}}:e.min!==void 0&&n<e.min?{ok:!1,error:{message:`Config set ${e.key} requires an integer >= ${e.min}, got "${t}" (the runtime silently ignores 0 here and falls back to the default)`}}:e.max!==void 0&&n>e.max?{ok:!1,error:{message:`Config set ${e.key} requires an integer <= ${e.max}, got "${t}"`}}:{ok:!0,parsed:{descriptor:e,value:n}}}function me(e,t,n){return n<0||n>1?{ok:!1,error:{message:`Config set ${e.key} requires a number in [0, 1], got "${t}"`}}:{ok:!0,parsed:{descriptor:e,value:n}}}function pe(e,t,n){return e.min!==void 0&&n<e.min?{ok:!1,error:{message:`Config set ${e.key} requires a number >= ${e.min}, got "${t}"`}}:{ok:!0,parsed:{descriptor:e,value:n}}}function v(e,t){if(typeof t!="string")return{ok:!1,error:{message:`Config set ${e.key} requires a string value`}};let n=t.trim();if(e.kind==="boolean")return ie(e,t);if(e.kind==="string")return le(e,t,n);let r=de(e,t,n);return r.ok?e.kind==="integer"?ce(e,t,r.value):e.kind==="ratio"?me(e,t,r.value):pe(e,t,r.value):{ok:!1,error:r.error}}function V(e,t){let n=t.path.split("."),r=e;for(let o of n){if(typeof r!="object"||r===null)return null;let s=Object.getOwnPropertyDescriptor(r,o);if(!s||!Object.hasOwn(s,"value"))return null;r=s.value}return typeof r=="string"||typeof r=="number"||typeof r=="boolean"?r:null}function Ge(e,t,n){let r=t.path.split(".");if(r.some(a=>a.length===0||["__proto__","constructor","prototype"].includes(a)))throw new Error("Unsafe settings path");let o=e;for(let a=0;a<r.length-1;a+=1){let i=r[a],d=Object.getOwnPropertyDescriptor(o,i)?.value;if(typeof d!="object"||d===null||Array.isArray(d)){let c={};Object.defineProperty(o,i,{value:c,writable:!0,enumerable:!0,configurable:!0}),o=c}else o=d}let s=r[r.length-1];return Object.getOwnPropertyDescriptor(o,s)?.value===n?!1:(Object.defineProperty(o,s,{value:n,writable:!0,enumerable:!0,configurable:!0}),!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]="0b04624c-2096-55dc-9dde-b8c76ead72d6")}catch{}})();var it=["profile","types","statuses","fields","workflows","config","templates","packages"],lt=["profile_name_empty","profile_name_not_normalized","profile_title_empty","profile_summary_empty","type_invalid","type_duplicate","status_invalid","status_duplicate","field_invalid","field_duplicate","field_mcp_input_collision","workflow_type_empty","workflow_type_unknown","workflow_duplicate_type","workflow_transition_malformed","workflow_status_unknown","config_key_unknown","config_value_invalid","config_duplicate","template_type_unknown","package_spec_empty"],ue=new Set(K.flatMap(e=>[g(e.id),...(e.aliases??[]).map(t=>g(t))]).filter(e=>e.length>0)),Z=new Set(P.map(e=>e.toLowerCase()));function ye(e,t){e.name.trim().length===0?t.push({severity:"error",code:"profile_name_empty",dimension:"profile",message:"Profile name must not be empty; profile resolution requires a non-blank name."}):e.name!==p(e.name)&&t.push({severity:"warning",code:"profile_name_not_normalized",dimension:"profile",target:e.name,message:`Profile name "${e.name}" is not in canonical form; resolution folds it to "${p(e.name)}" (lowercase, hyphens as underscores).`}),e.title.trim().length===0&&t.push({severity:"warning",code:"profile_title_empty",dimension:"profile",message:"Profile title is empty; list and show surfaces will render a blank title."}),e.summary.trim().length===0&&t.push({severity:"warning",code:"profile_summary_empty",dimension:"profile",message:"Profile summary is empty; list and show surfaces will render a blank archetype description."})}function he(e,t){let n=new Set,r=new Set;for(let[o,s]of e.types.entries()){let a;try{a=u(s).name}catch(d){t.push({severity:"error",code:"type_invalid",dimension:"types",target:typeof s.name=="string"?s.name:`#${o}`,message:k(d)});continue}let i=a.toLowerCase();if(r.has(i)){t.push({severity:"error",code:"type_duplicate",dimension:"types",target:a,message:`Item type "${a}" is declared more than once; the later definition silently overwrites the earlier upsert.`});continue}r.add(i),n.add(i)}return n}function fe(e,t){let n=new Set,r=new Set;for(let[o,s]of e.statuses.entries()){let a;try{a=h(s)}catch(i){t.push({severity:"error",code:"status_invalid",dimension:"statuses",target:typeof s.id=="string"?s.id:`#${o}`,message:k(i)});continue}if(r.has(a.id)){t.push({severity:"error",code:"status_duplicate",dimension:"statuses",target:a.id,message:`Status "${a.id}" is declared more than once; the later definition silently overwrites the earlier upsert.`});continue}r.add(a.id),n.add(a.id);for(let i of a.aliases??[])n.add(g(i))}return n}function ge(e,t){let n=new Set;for(let[r,o]of e.fields.entries()){let s;try{s=y(o).key}catch(i){t.push({severity:"error",code:"field_invalid",dimension:"fields",target:typeof o.key=="string"?o.key:`#${r}`,message:k(i)});continue}if(n.has(s)){t.push({severity:"error",code:"field_duplicate",dimension:"fields",target:s,message:`Field "${s}" is declared more than once; the later definition silently overwrites the earlier upsert.`});continue}n.add(s);let a=H(s);a&&t.push({severity:"warning",code:"field_mcp_input_collision",dimension:"fields",target:s,message:`Field "${s}" collides with canonical MCP property "${a.property}" owned by ${a.owner}; callers must pass the custom value through ${a.nested_path}.`})}}function _e(e,t,n,r){let o=new Set;for(let[s,a]of e.workflows.entries()){let i=a.type.trim().toLowerCase();if(i.length===0){r.push({severity:"error",code:"workflow_type_empty",dimension:"workflows",target:`#${s}`,message:"Workflow has an empty type; the workflow resolver drops entries without a type."});continue}let d=o.has(i);o.add(i),d?r.push({severity:"warning",code:"workflow_duplicate_type",dimension:"workflows",target:a.type,message:`Workflow type "${a.type}" is declared more than once; the later transition set wins.`}):!Z.has(i)&&!t.has(i)&&r.push({severity:"warning",code:"workflow_type_unknown",dimension:"workflows",target:a.type,message:`Workflow governs type "${a.type}" which is neither a built-in type nor declared by this profile; it has no effect unless that type already exists.`});let c=new Set;for(let l of a.allowed_transitions){let m=g(l[0]),T=g(l[1]);if(m.length===0||T.length===0){r.push({severity:"error",code:"workflow_transition_malformed",dimension:"workflows",target:a.type,message:`Workflow "${a.type}" has a transition with an empty status; the workflow resolver silently drops it.`});continue}for(let f of[m,T])ue.has(f)||n.has(f)||c.has(f)||(c.add(f),r.push({severity:"warning",code:"workflow_status_unknown",dimension:"workflows",target:f,message:`Workflow "${a.type}" references status "${f}" which is neither a built-in status nor declared by this profile; transitions to or from it are unreachable.`}))}}}function ke(e,t){let n=new Set;for(let r of e.config){let o=b(r.key);if(o===void 0){t.push({severity:"error",code:"config_key_unknown",dimension:"config",target:r.key,message:`Config knob "${r.key}" is not a recognized setting; apply rejects it with a usage error.`});continue}n.has(o.key)?t.push({severity:"error",code:"config_duplicate",dimension:"config",target:o.key,message:`Config knob "${o.key}" is set more than once; the later value silently overwrites the earlier one.`}):n.add(o.key);let s=v(o,r.value);s.ok||t.push({severity:"error",code:"config_value_invalid",dimension:"config",target:r.key,message:s.error.message})}}function we(e,t,n){for(let r of e.templates){let o=r.options.type;if(typeof o!="string"||o.trim().length===0)continue;let s=o.trim().toLowerCase();!Z.has(s)&&!t.has(s)&&n.push({severity:"warning",code:"template_type_unknown",dimension:"templates",target:r.name,message:`Template "${r.name}" creates type "${o}" which is neither a built-in type nor declared by this profile.`})}}function be(e,t){for(let[n,r]of e.packages.entries())r.spec.trim().length===0&&t.push({severity:"warning",code:"package_spec_empty",dimension:"packages",target:`#${n}`,message:"Package recommendation has an empty spec; it cannot be surfaced as an install hint."})}function dt(e){let t=[];ye(e,t);let n=he(e,t),r=fe(e,t);ge(e,t),_e(e,n,r,t),ke(e,t),we(e,n,t),be(e,t);let o=t.filter(a=>a.severity==="error").length,s=t.length-o;return{profile:e.name,ok:o===0,findings:t,errorCount:o,warningCount: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]="be2b507d-2797-570c-b211-46d950edcbde")}catch{}})();function E(e,t,n,r,o){let s=e,a=[];for(let i of t){let d=r(s),c=o(s,i),l=r(c.file);s=c.file;let m=d===l?"unchanged":c.replaced?"update":"add";a.push({key:n(i),status:m})}return{file:s,changes:a,changed:a.some(i=>i.status!=="unchanged")}}function ee(e){return JSON.stringify(e.map(t=>t.join("\0")).sort())}function ve(e,t){let n=e.map(o=>({...o})),r=[];for(let o of t){let s=n.findIndex(i=>i.type===o.type),a={type:o.type,allowed_transitions:o.allowed_transitions};s<0?(n.push(a),r.push({type:o.type,status:"add"})):ee(n[s].allowed_transitions)===ee(o.allowed_transitions)?r.push({type:o.type,status:"unchanged"}):(n[s]=a,r.push({type:o.type,status:"update"}))}return{changes:r,result:n,changed:r.some(o=>o.status!=="unchanged")}}function Ie(e,t){let n=[];for(let r of e.config){let o=b(r.key);if(o===void 0)throw new Error(`Profile "${e.name}" references unknown config key "${r.key}".`);let s=v(o,r.value);if(!s.ok)throw new Error(`Profile "${e.name}" config ${r.key}: ${s.error.message}`);let a=V(t,o),i=a===null?"add":a===s.parsed.value?"unchanged":"update";n.push({key:o.key,path:o.path,value:s.parsed.value,status:i})}return{changes:n,changed:n.some(r=>r.status!=="unchanged")}}function te(e){let t=Object.entries(e).sort(([n],[r])=>n.localeCompare(r));return JSON.stringify(t)}function Se(e,t){let n=[];for(let r of e.templates){let o=t.get(r.name),s;o===void 0?s="add":te(o)===te(r.options)?s="unchanged":s="update",n.push({name:r.name,options:r.options,status:s})}return{changes:n,changed:n.some(r=>r.status!=="unchanged")}}function ht(e,t){let n=E(M(t.typesRaw),e.types,l=>u(l).name,q,(l,m)=>z(l,u(m))),r=E(X(t.statusesRaw),e.statuses,l=>h(l).id,W,(l,m)=>Y(l,h(m))),o=E(j(t.fieldsRaw),e.fields,l=>y(l).key,B,(l,m)=>U(l,y(m))),s=ve(t.workflows,e.workflows),a=Ie(e,t.settings),i=Se(e,t.templates),d=e.packages.map(l=>({spec:l.spec,reason:l.reason,status:t.installedPackages.has(l.spec)?"installed":"recommended"})),c=n.changed||r.changed||o.changed||s.changed||a.changed||i.changed;return{profile:{name:e.name,title:e.title,summary:e.summary},types:n,statuses:r,fields:o,workflows:s,config:a,templates:i,packages:d,changed:c}}export{Ce as a,Pe as b,$e as c,De as d,Le as e,Q as f,Re as g,Fe as h,_ as i,I as j,ne as k,qe as l,je as m,re as n,Be as o,oe as p,Ye as q,se as r,b as s,v as t,V as u,Ge as v,it as w,lt as x,dt as y,ht as z};
26
- //# sourceMappingURL=chunk-HOXIIZEO.js.map
26
+ //# sourceMappingURL=chunk-XHOBYCVE.js.map
@@ -0,0 +1,81 @@
1
+ import{c as He,e as Fe,f as ze,i as Jn,j as Kn,k as Yn,l as Xn,m as Zn}from"./chunk-VWWTIX5L.js";import{h as io}from"./chunk-4PW5XWVI.js";import{A as er,Aa as we,Bc as Qn,C as $n,Dc as it,Fa as Bn,Fe as rr,Ga as A,Ha as z,Hc as eo,Ia as ot,Ja as v,Qc as to,Rd as $e,Sd as q,Td as st,Ud as Ee,Vd as G,Zd as ro,_d as no,ae as oo,ee as $,fa as qn,i as Qe,j as Pn,k as jn,ka as Gn,l as Ln,m as Hn,q as et,r as tt,s as Fn,x as zn,y as rt,z as nt}from"./chunk-M6V7UMWL.js";import{A as w,C as Vn,D as W,E as ie,F as be,G as Un,H as tr,I as Le,J as Wn,m as J,u as Mn,x as h,y as je,z as E}from"./chunk-G6ERMFJ5.js";import{createHash as js}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]="ca5b60a5-80a7-5e7d-917f-4c7649bcbab6")}catch{}})();var Su=["sha256","sha512"],Ls="sha256",so="sha256";function se(e){if(e===void 0)return Ls;if(e==="sha256"||e==="sha512")return e;throw new TypeError(`unsupported_history_hash_algorithm:${String(e)}`)}function K(e,t){return js(se(t)).update(e,"utf8").digest("hex")}(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]="6635e694-c788-5805-adb8-ed93cc931946")}catch{}})();var Hs=16;function at(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[r,...n]=t;return`${r}${n.map(o=>`${o.slice(0,1).toUpperCase()}${o.slice(1)}`).join("")}`}function Nu(e,t,r=new Set,n){if(uo(e,t,n))return;let o=_o(e,t,r,n),i=ct(e);return[at(e.cli_flag),...i].find(s=>!o.has(s)&&lo(s,i,o))}function lo(e,t,r){for(let n of t){if(n===e)break;if(r.has(n))return!1}return!0}function uo(e,t,r){return t.definitions.some(n=>n!==e&&n.metadata_key===e.metadata_key&&(r===void 0||n.commands.includes(r)))}function _o(e,t,r,n){return new Set([...r,...t.definitions.filter(o=>o!==e&&(n===void 0||o.commands.includes(n))).flatMap(o=>ct(o))])}function fo(e){return e.replace(/^-+/u,"").startsWith("no-")}function Fs(e){return e.startsWith("-")?e:`--${e}`}function Ru(e,t,r,n){if(uo(e,t,n))return;let o=_o(e,t,r.options,n),i=ct(e);return[e.cli_flag,...e.cli_aliases].find(s=>{let a=mo(s);return fo(s)||r.flags.has(Fs(s))||o.has(a)?!1:lo(a,i,o)})}function mo(e){return e.replace(/^-+/u,"").replace(/^no-/u,"").split("-").reduce((t,r)=>`${t}${r.charAt(0).toUpperCase()}${r.slice(1)}`)}function ct(e){return[...new Set([Zn(e),at(e.key),at(e.cli_flag),...e.cli_aliases.map(t=>at(t)),...[e.cli_flag,...e.cli_aliases].filter(t=>!fo(t)).map(t=>mo(t))])]}function po(e,t){for(let r of ct(t)){if(!Object.hasOwn(e,r))continue;let n=e[r];if(n!==void 0)return n}}function ho(e){return Array.isArray(e)?e.flatMap(t=>ho(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 ao(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 r=e.trim().toLowerCase();if(r==="true"||r==="1"||r==="yes")return!0;if(r==="false"||r==="0"||r==="no")return!1}throw new w(`${t} must be one of true|false|1|0|yes|no`,E.USAGE)}function co(e,t){if(typeof e=="number"&&Number.isFinite(e))return e;let r=typeof e=="string"?e.trim():String(e),n=Number(r);if(!Number.isFinite(n))throw new w(`${t} must be a number`,E.USAGE);return n}function zs(e,t,r){let n=typeof e=="string"?(()=>{try{return JSON.parse(e)}catch{return}})():e;if(r==="array"&&Array.isArray(n)||r==="object"&&typeof n=="object"&&n!==null&&!Array.isArray(n))return n;throw new w(`${t} must be valid JSON ${r}`,E.USAGE)}function $s(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 Ms(e,t,r){if(t.const!==void 0&&A(e)!==A(t.const))return`${r} must equal ${A(t.const)}`;if(t.enum!==void 0&&!t.enum.some(n=>A(n)===A(e)))return`${r} must be one of ${t.enum.map(n=>A(n)).join("|")}`;if(!$s(e,t.type))return`${r} must match configured type ${String(t.type)}`;if(typeof e=="string"){if(t.min_length!==void 0&&e.length<t.min_length)return`${r} must contain at least ${t.min_length} characters`;if(t.format==="date-time"&&!st(e))return`${r} must be an RFC 3339 date-time`}}function Vs(e,t,r,n){if(Array.isArray(e)){if(t.min_items!==void 0&&e.length<t.min_items)return`${r} must contain at least ${t.min_items} items`;if(t.items)for(let[o,i]of e.entries()){let s=dt(i,t.items,`${r}[${o}]`,n+1);if(s)return s}}}function Us(e,t,r,n){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`${r}.${i} is required`;for(let[i,s]of Object.entries(o)){let a=t.properties?.[i];if(!a){if(t.additional_properties===!1)return`${r}.${i} is not allowed`;continue}let d=dt(s,a,`${r}.${i}`,n+1);if(d)return d}}function dt(e,t,r,n=0){if(n>Hs)return`${r} value schema exceeds maximum depth`;let o=Ms(e,t,r);if(o)return o;let i=Vs(e,t,r,n);if(i)return i;let s=Us(e,t,r,n);if(s)return s;if(!t.one_of)return;let a=0;for(let d of t.one_of)if(dt(e,d,r,n+1)===void 0&&(a+=1,a>1))break;return a===1?void 0:`${r} must match exactly one configured schema variant`}function ae(e,t,r){if(!e.value_schema||t===void 0)return t;let n=dt(t,e.value_schema,r);if(n)throw new w(n,E.USAGE);return t}function Ws(e,t,r,n){let o=n==="option"&&Array.isArray(t)?t[t.length-1]:t;if(o!==void 0)return ae(e,zs(o,r,e.type),r)}function Me(e,t,r,n="option"){let o=r??`--${e.cli_flag}`;if(e.type==="array"||e.type==="object")return Ws(e,t,o,n);if(e.repeatable||e.type==="string_array"){let s=ho(t);return e.type==="number"?ae(e,s.map(a=>co(a,o)),o):e.type==="boolean"?ae(e,s.map(a=>ao(a,o)),o):ae(e,s,o)}let i=Array.isArray(t)?t[t.length-1]:t;if(i!==void 0)return e.type==="number"?ae(e,co(i,o),o):e.type==="boolean"?ae(e,ao(i,o),o):ae(e,typeof i=="string"?i:String(i),o)}function qs(e,t){return!e.required&&!e.required_on_create?!1:e.required_types.length===0?!0:t?e.required_types.map(r=>r.toLowerCase()).includes(t.trim().toLowerCase()):!1}function Du(e,t,r){let n={},o=[];for(let i of t.command_to_fields.get("create")??[]){let s=po(e,i);if(s===void 0){qs(i,r)&&o.push(`--${i.cli_flag}`);continue}n[i.metadata_key]=Me(i,s)}return{values:n,missing_required_flags:[...new Set(o)].sort((i,s)=>i.localeCompare(s))}}function Pu(e,t,r=["update"]){let n={},o=(r??["update"]).flatMap(s=>t.command_to_fields.get(s)??[]),i=new Set;for(let s of o){let a=po(e,s);a!==void 0&&(i.has(s.metadata_key)||(i.add(s.metadata_key),n[s.metadata_key]=Me(s,a)))}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]="c35d4830-d7d1-5ee4-99bc-ab52cc3e4e09")}catch{}})();var nr=1,or=2;function Lu(e){return Math.max(ir(e),e.tests?.some(t=>t.updated_by!==void 0||t.updated_at!==void 0)?2:1)}function ir(e){let t=e.pm_format_version;return typeof t=="number"&&Number.isInteger(t)&&t>=1?t:1}function yo(e){if(!(typeof e!="number"||!Number.isInteger(e)||e<=1))return e}function Gs(e,t=2,r=t){return e<r?"outdated":e>t?"ahead":"current"}function Hu(e,t=2,r=t){let n=[],o=[];for(let i of e){let s=Gs(i.version,t,r);s==="outdated"?n.push(i.ref):s==="ahead"&&o.push(i.ref)}return{outdated:n.sort((i,s)=>i.localeCompare(s)),ahead:o.sort((i,s)=>i.localeCompare(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]="515840b7-cf86-5d71-8ac1-beac7fd7c8a8")}catch{}})();var Bs={"in-progress":"in_progress",cancelled:"canceled"};function lt(e,t){if(t){let o=Yn(e,t);if(o)return o}if(typeof e!="string")return;let r=e.trim().toLowerCase();if(!r)return;let n=Bs[r]??r;if(Qe.includes(n))return n}function Js(e,t){return lt(e,t)??e}function Mu(e,t){return t.terminal_statuses.has(Js(e,t))}import{encode as Zs}from"@toon-format/toon";import{isDeepStrictEqual as go}from"node:util";import{decode as Ks}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]="aaa2be03-9478-5fbe-82e6-e4fc86e3735b")}catch{}})();function sr(e){return{value:Ks(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]="79626299-17a8-573a-9b66-ce37c65e2f5d")}catch{}})();var Ys=/^\s*(<<<<<<<|=======|>>>>>>>)(?:\s.*)?$/;function Xs(e){if(e.length===0)return[];let t=e.split(/\r?\n/),r=[];for(let n=0;n<t.length;n+=1){let o=t[n]??"",i=o.match(Ys);if(!i)continue;let s=i[1];r.push({line:n+1,marker:s,text:o})}return r}function ut(e){return Xs(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]="2789e87f-0706-52e8-8f4c-3855c65c618c")}catch{}})();var lr=new Set(["schema","tracker","auto","none"]),ko=new Set(["source","isolated","snapshot"]),Qs=new Set(["legacy","local_mutation","local_source_ref","acknowledged","invalid_provenance","foreign_source_ref"]),ea=new Set(["passed","failed","stopped","canceled"]),ta=new Set($n);function Ie(e){return e.replaceAll("\\","/")}function So(e){for(let t of e)if(t!==0)return t;return 0}function ft(e){for(let[t,r]of Object.entries(e))r===void 0&&delete e[t]}var Io=["id","title","description","created_at","updated_at"],ra=new Set(J);function Oo(e){if(e?.schema)return{statusRegistry:Kn(e.schema),fieldRegistry:Xn(e.schema),unknownFieldPolicy:e.schema.unknown_field_policy??"allow",extensionFieldNames:new Set(e.extensionFieldNames??[]),onWarning:e.onWarning}}function na(e,t){return e.required?e.required_types.length===0?!0:e.required_types.map(r=>r.toLowerCase()).includes(t.trim().toLowerCase()):!1}function Y(e){let t=e.match(/^([a-z_][\w.]*)\s/u)?.[1];throw new w(`Invalid item metadata: ${e}`,E.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 We(e,t){throw new w(t,E.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 To(e,t){if(!t||typeof e!="object"||e===null)return;let r=ir(e);if(!(r<=or))throw new w(`Stored item uses format version ${r}; this runtime supports up to ${or}. Upgrade pm before reading or changing this item.`,E.CONFLICT,{code:"item_format_version_unsupported",format_version:r,required:"Upgrade to a pm runtime supporting the stored item format.",nextSteps:["Preserve the original item and history; do not lower pm_format_version to bypass compatibility checks."]})}function Ao(e){let t=new Set(ra);for(let r of e.fieldRegistry?.definitions??[])t.add(r.metadata_key);for(let r of e.extensionFieldNames)t.add(r);return t}function y(e,t){e||Y(t)}function qe(e,t){return(typeof e!="object"||e===null||Array.isArray(e))&&Y(t),e}function ar(e,t){let r=e[t];y(typeof r=="string",`${t} must be a string`),y(q(r),`${t} must be a valid ISO timestamp`)}function vo(e,t,r){let n=e[t];n!==void 0&&y(typeof n=="number"&&Number.isInteger(n)&&n>=1,`${r} must be an integer >= 1`)}function ur(e,t,r){let n=e[t];n!==void 0&&(y(typeof n=="string",`${r} must be a string`),y(q(n),`${r} must be a valid ISO timestamp`))}function oa(e){if(e!==void 0){y(Array.isArray(e),"event.recurrence.by_weekday must be an array");for(let t of e){y(typeof t=="string","event.recurrence.by_weekday entries must be strings");let r=t.trim().toLowerCase();y(nt.includes(r),`event.recurrence.by_weekday entries must be one of: ${nt.join(", ")}`)}}}function ia(e){if(e!==void 0){y(Array.isArray(e),"event.recurrence.by_month_day must be an array");for(let t of e)y(typeof t=="number"&&Number.isInteger(t)&&t>=1&&t<=31,"event.recurrence.by_month_day entries must be integers 1..31")}}function sa(e){if(e!==void 0){y(Array.isArray(e),"event.recurrence.exdates must be an array");for(let t of e)y(typeof t=="string","event.recurrence.exdates entries must be strings"),y(q(t),"event.recurrence.exdates entries must be valid ISO timestamps")}}function aa(e){let t=qe(e,"event.recurrence must be an object");y(typeof t.freq=="string","event.recurrence.freq must be a string");let r=t.freq.trim().toLowerCase();y(rt.includes(r),`event.recurrence.freq must be one of: ${rt.join(", ")}`),vo(t,"interval","event.recurrence.interval"),vo(t,"count","event.recurrence.count"),ur(t,"until","event.recurrence.until"),oa(t.by_weekday),ia(t.by_month_day),sa(t.exdates)}function ca(e){for(let n of Io)y(typeof e[n]=="string",`${n} is required and must be a string`);let t=e.type;y(typeof t=="string"&&t.trim().length>0,"type must be a non-empty string");let r=e.pm_format_version;return r!==void 0&&y(typeof r=="number"&&Number.isInteger(r)&&r>=nr,`pm_format_version must be an integer >= ${nr}`),t}function da(e,t){let r=e.status;y(typeof r=="string"&&r.trim().length>0,"status must be a non-empty string");let n=t?.statusRegistry,o=lt(r,n),i=n?n.definitions.map(s=>s.id):[...Qe];y(o!==void 0,`status must be one of: ${i.join(", ")}`)}function la(e){let t=e.priority;y(typeof t=="number"&&Number.isInteger(t)&&[0,1,2,3,4].includes(t),"priority must be an integer 0..4");let r=e.tags;y(Array.isArray(r),"tags must be an array");for(let n of r)y(typeof n=="string","tags entries must be strings")}function ua(e){let t=e.confidence;if(t!==void 0){if(typeof t=="number"){y(Number.isInteger(t)&&t>=0&&t<=100,"confidence number value must be an integer 0..100");return}if(typeof t=="string"){let r=t.trim().toLowerCase(),n=r==="med"||tt.includes(r);y(n,`confidence string value must be one of: ${[...tt,"med"].join(", ")}`);return}y(!1,"confidence must be a number or string")}}function _a(e){let t=e.severity;if(t===void 0)return;typeof t!="string"&&Y("severity must be a string");let r=t.trim().toLowerCase(),n=r==="med"||et.includes(r);y(n,`severity value must be one of: ${[...et,"med"].join(", ")}`)}function fa(e){e.regression!==void 0&&typeof e.regression!="boolean"&&Y("regression must be a boolean")}function ma(e){let t=e.reminders;if(t!==void 0){y(Array.isArray(t),"reminders must be an array");for(let r of t){let n=qe(r,"reminders entries must be objects");y(typeof n.at=="string","reminder.at must be a string"),y(q(n.at),"reminder.at must be a valid ISO timestamp"),y(typeof n.text=="string","reminder.text must be a string"),y(n.text.trim().length>0,"reminder.text must not be empty")}}}function pa(e){for(let t of["title","description","location","timezone"])e[t]!==void 0&&(y(typeof e[t]=="string",`event.${t} must be a string`),y(e[t].trim().length>0,`event.${t} must not be empty`))}function ha(e){e.recurrence!==void 0&&(aa(e.recurrence),e.recurrence.until!==void 0&&y(G(e.recurrence.until,e.start_at)>=0,"event.recurrence.until must be at or after event.start_at"))}function ya(e){let t=qe(e,"events entries must be objects");y(typeof t.start_at=="string","event.start_at must be a string"),y(q(t.start_at),"event.start_at must be a valid ISO timestamp"),t.end_at!==void 0&&(y(typeof t.end_at=="string","event.end_at must be a string"),y(q(t.end_at),"event.end_at must be a valid ISO timestamp"),y(G(t.end_at,t.start_at)>0,"event.end_at must be after event.start_at")),pa(t),t.all_day!==void 0&&y(typeof t.all_day=="boolean","event.all_day must be a boolean"),ha(t)}function ga(e){let t=e.events;if(t!==void 0){y(Array.isArray(t),"events must be an array");for(let r of t)ya(r)}}function va(e){for(let t of["source_type","source_owner","design","external_ref"]){let r=e[t];r!==void 0&&y(typeof r=="string",`${t} must be a string`)}}function ba(e){let t=e.type_options;if(t===void 0)return;let r=qe(t,"type_options must be an object");for(let[n,o]of Object.entries(r))y(n.trim().length>0,"type_options keys must be non-empty"),y(typeof o=="string","type_options values must be strings"),y(o.trim().length>0,"type_options values must be non-empty strings")}function wa(e,t,r){if(r?.fieldRegistry)for(let n of r.fieldRegistry.definitions){let o=e[n.metadata_key];if(o===void 0){na(n,t)&&Y(`missing required schema field: ${n.metadata_key}`);continue}try{e[n.metadata_key]=Me(n,o,`metadata field "${n.metadata_key}"`,"metadata")}catch(i){Y(String(i?.message).replace(/^Invalid\s+/u,""))}}}function Ea(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let r=Ao(t),n=Object.keys(e).filter(o=>!r.has(o)).sort((o,i)=>o.localeCompare(i));n.length!==0&&(t.unknownFieldPolicy==="reject"?Y(`unknown schema fields are not allowed: ${n.join(", ")}`):t.onWarning?.(`item_unknown_schema_fields:${n.join(",")}`))}function _r(e,t){let r=qe(e,"item metadata must be an object"),n=ca(r);da(r,t),la(r),ua(r),_a(r),fa(r),ar(r,"created_at"),ar(r,"updated_at"),r.deadline!==void 0&&ar(r,"deadline"),ma(r),ga(r),ur(r,"closed_at","closed_at"),ur(r,"completed_at","completed_at"),va(r),ba(r),wa(r,n,t),Ea(r,t)}function ka(e){if(!(!e||e.length===0))return[...e].map((t,r)=>(y(t.created_at===void 0||typeof t.created_at=="string"&&st(t.created_at),`dependencies.${r}.created_at requires a valid timestamp; restore the dependency timestamp from its source record`),{id:t.id.trim(),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,r)=>{let n=G(t.created_at??"",r.created_at??"");if(n!==0)return n;let o=t.id.localeCompare(r.id);if(o!==0)return o;let i=t.kind.localeCompare(r.kind);return i!==0?i:(t.source_kind??"").localeCompare(r.source_kind??"")})}function cr(e){if(!(!e||e.length===0))return[...e].sort((t,r)=>{let n=G(t.created_at,r.created_at);if(n!==0)return n;let o=t.text.localeCompare(r.text);return o!==0?o:t.author.localeCompare(r.author)})}function Sa(e){if(!e||e.length===0)return;let t=[...e].map(r=>({at:r.at,text:r.text.trim()})).filter(r=>r.text.length>0).sort((r,n)=>{let o=G(r.at,n.at);return o!==0?o:r.text.localeCompare(n.text)});return t.length===0?void 0:t}function Ia(e){if(!e)return;let t=e.freq.trim().toLowerCase();if(!rt.includes(t))return;let r=Array.from(new Set((e.by_weekday??[]).map(s=>s.trim().toLowerCase()).filter(s=>nt.includes(s)))).sort((s,a)=>er(s)-er(a)),n=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=>q(s)))).sort((s,a)=>G(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:r.length>0?r:void 0,by_month_day:n.length>0?n: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 Oa(e){return!Array.isArray(e)||e.length===0?void 0:[...e].map(Ta).sort(Aa)}function Ta(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:Ia(e.recurrence)};return ft(t),t}function Aa(e,t){return So([G(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 xa(e){if(!(!e||e.length===0))return e.map(t=>({path:Ie(t.path),scope:t.scope,note:t.note?.trim()||void 0}))}function Ca(e){if(!e||e.length===0)return;let t=e.map(Pa).filter(r=>r.run_id.length>0&&r.started_at.length>0&&r.finished_at.length>0&&r.recorded_at.length>0).sort((r,n)=>So([G(r.recorded_at,n.recorded_at),r.run_id.localeCompare(n.run_id),r.kind.localeCompare(n.kind)]));return t.length>0?t:void 0}function ke(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?Math.floor(e):void 0}function Na(e){return typeof e=="number"&&Number.isFinite(e)&&e>=1?Math.floor(e):void 0}function dr(e){return typeof e=="string"?e:""}function Ra(e){if(!Array.isArray(e))return;let t=e.filter(n=>n!==null&&typeof n=="object"&&typeof n.name=="string"&&n.name.trim().length>0&&typeof n.value=="number"&&Number.isFinite(n.value)&&typeof n.recorded_at=="string"&&n.recorded_at.trim().length>0).map(n=>({name:n.name.trim(),value:n.value,unit:typeof n.unit=="string"&&n.unit.trim()||void 0,threshold:typeof n.threshold=="number"&&Number.isFinite(n.threshold)?n.threshold:void 0,recorded_at:n.recorded_at.trim()})),r=[...new Map(t.map(n=>[n.name,n])).values()].sort((n,o)=>n.name.localeCompare(o.name)).slice(0,32);return r.length>0?r:void 0}function _t(e,t){return typeof e=="string"&&t.has(e)?e:void 0}function Da(e){if(!Array.isArray(e))return;let t=e.filter(r=>r&&typeof r.command=="string"&&r.command.trim().length>0).slice(0,32).map(r=>({command:r.command.trim(),requested_pm_context_mode:_t(r.requested_pm_context_mode,lr),pm_context_mode:_t(r.pm_context_mode,lr),workspace_context_mode:_t(r.workspace_context_mode,ko),trust_reason:_t(r.trust_reason,Qs)}));return t.length>0?t:void 0}function Pa(e){let t=typeof e.run_id=="string"?e.run_id.trim():"",r=e.kind==="test"||e.kind==="test-all"?e.kind:"test",n=ea.has(e.status)?e.status:"failed",o={run_id:t,kind:r,status:n,started_at:dr(e.started_at),finished_at:dr(e.finished_at),recorded_at:dr(e.recorded_at),attempt:Na(e.attempt),resumed_from:e.resumed_from?.trim()||void 0,passed:ke(e.passed)??0,failed:ke(e.failed)??0,skipped:ke(e.skipped)??0,items:ke(e.items),linked_tests:ke(e.linked_tests),fail_on_skipped_triggered:e.fail_on_skipped_triggered===!0?!0:void 0,measurements:Ra(e.measurements),executions:Da(e.executions)};return ft(o),o}function ja(e){if(!(!Array.isArray(e)||e.length===0))return e.map($a)}function Ve(e){if(!Array.isArray(e))return;let t=[...new Set(e.filter(r=>typeof r=="string").map(r=>r.trim()).filter(r=>r.length>0))].sort((r,n)=>r.localeCompare(n));return t.length>0?t:void 0}function hr(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function yr(e){return e==="__proto__"||e==="constructor"||e==="prototype"}function bo(e){if(!hr(e))return;let t=Object.entries(e).map(([r,n])=>[r.trim(),String(n).trim()]).filter(([r,n])=>r.length>0&&!yr(r)&&n.length>0).sort(([r],[n])=>r.localeCompare(n));return t.length>0?Object.fromEntries(t):void 0}function La(e){if(!hr(e))return;let t=Object.entries(e).map(([r,n])=>[r.trim(),Number(n)]).filter(([r,n])=>r.length>0&&!yr(r)&&Number.isFinite(n)).sort(([r],[n])=>r.localeCompare(n));return t.length>0?Object.fromEntries(t):void 0}function Ha(e){let t=e?.trim().toLowerCase();if(!(!t||!lr.has(t)))return t}function Fa(e){let t=e?.trim().toLowerCase();if(!(!t||!ko.has(t)))return t}function za(e,t){if(t===!0)return{provenance_invalid:!0};if(e===void 0)return{};if(!hr(e))return{provenance_invalid:!0};let r=m(e.author),n=m(e.created_at),o=e.source_kind;return!r||!n||!q(n)||o!=="local_mutation"&&o!=="merge_union"?{provenance_invalid:!0}:{provenance:{author:r,created_at:n,source_kind:o,source_ref:m(e.source_ref)}}}function $a(e){let t={command:e.command?.trim()||void 0,path:e.path?Ie(e.path):void 0,scope:e.scope,timeout_seconds:typeof e.timeout_seconds=="number"&&Number.isFinite(e.timeout_seconds)&&e.timeout_seconds>0?e.timeout_seconds:void 0,pm_context_mode:Ha(e.pm_context_mode),workspace_context_mode:Fa(e.workspace_context_mode),...za(e.provenance,e.provenance_invalid),updated_by:m(e.updated_by),updated_at:m(e.updated_at),env_set:bo(e.env_set),env_clear:Ve(e.env_clear),shared_host_safe:e.shared_host_safe===!0?!0:void 0,assert_stdout_contains:Ve(e.assert_stdout_contains),assert_stdout_regex:Ve(e.assert_stdout_regex),assert_stderr_contains:Ve(e.assert_stderr_contains),assert_stderr_regex:Ve(e.assert_stderr_regex),assert_stdout_min_lines:ke(e.assert_stdout_min_lines),assert_json_field_equals:bo(e.assert_json_field_equals),assert_json_field_gte:La(e.assert_json_field_gte),note:e.note?.trim()||void 0};return ft(t),t}function Ma(e){if(!(!e||e.length===0))return[...e].map(t=>({path:Ie(t.path),scope:t.scope,note:t.note?.trim()||void 0})).sort((t,r)=>{let n=t.scope.localeCompare(r.scope);if(n!==0)return n;let o=t.path.localeCompare(r.path);return o!==0?o:(t.note??"").localeCompare(r.note??"")})}function m(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function Va(e){if(!Array.isArray(e))return;let t=[];for(let r of e){if(r===null||typeof r!="object")continue;let n=r,o=m(n.id),i=m(n.kind);if(!o||!i)continue;let s={id:o,kind:i},a=m(n.note);a&&(s.note=a),n.required_before_step===!0&&(s.required_before_step=!0),t.push(s)}return t.length>0?t:void 0}function Ua(e){if(!Array.isArray(e))return;let t=[];for(let r of e){if(r===null||typeof r!="object")continue;let n=r,o=m(n.path);if(!o)continue;let i={path:Ie(o)};(n.scope==="project"||n.scope==="global")&&(i.scope=n.scope);let s=m(n.note);s&&(i.note=s),t.push(i)}return t.length>0?t:void 0}function Wa(e){if(!Array.isArray(e))return;let t=[];for(let r of e){if(r===null||typeof r!="object")continue;let n=r,o=m(n.command),i=m(n.path);if(!o&&!i)continue;let s={};o&&(s.command=o),i&&(s.path=Ie(i));let a=m(n.note);a&&(s.note=a),t.push(s)}return t.length>0?t:void 0}function qa(e){if(!Array.isArray(e))return;let t=[];for(let r of e){if(r===null||typeof r!="object")continue;let n=r,o=m(n.path);if(!o)continue;let i={path:Ie(o)};(n.scope==="project"||n.scope==="global")&&(i.scope=n.scope);let s=m(n.note);s&&(i.note=s),t.push(i)}return t.length>0?t:void 0}function Ga(e){if(e===null||typeof e!="object")return;let t=e,r=m(t.id),n=m(t.title),o=m(t.status),i=o&&ta.has(o)?o:void 0,s=qn(t.order)??Number.NaN,a=typeof t.created_at=="string"?t.created_at:"",d=typeof t.updated_at=="string"?t.updated_at:"";if(!r||!n||!i||!Number.isFinite(s)||!a||!d)return;let l={id:r,order:s,title:n,status:i,created_at:a,updated_at:d};return Ba(l,t),l}function Ba(e,t){let r=[["body","body"],["owner","owner"],["evidence","evidence"],["blocked_reason","blocked_reason"],["superseded_by","superseded_by"]];for(let[i,s]of r){let a=m(t[s]);a&&(e[i]=a)}let n=typeof t.completed_at=="string"?t.completed_at:void 0;n&&n.length>0&&(e.completed_at=n);let o=[["linked_items","linked_items",Va],["files","files",Ua],["tests","tests",Wa],["docs","docs",qa]];for(let[i,s,a]of o){let d=a(t[s]);d&&(e[i]=d)}}function Ja(e){if(!Array.isArray(e))return;let t=e.flatMap(r=>{let n=Ga(r);return n?[n]:[]});return t.sort((r,n)=>r.order-n.order),t.length>0?t:void 0}function Ka(e){if(!Array.isArray(e))return;let t=[];for(let r of e){if(r===null||typeof r!="object")continue;let n=r,o=typeof n.ts=="string"?n.ts:"",i=typeof n.author=="string"?n.author:"",s=m(n.decision);if(!o||!i||!s)continue;let a={ts:o,author:i,decision:s},d=m(n.rationale);d&&(a.rationale=d);let l=m(n.evidence);l&&(a.evidence=l);let _=m(n.step_id);_&&(a.step_id=_),t.push(a)}return t.length>0?t:void 0}function Ya(e){if(!Array.isArray(e))return;let t=[];for(let r of e){if(r===null||typeof r!="object")continue;let n=r,o=typeof n.ts=="string"?n.ts:"",i=typeof n.author=="string"?n.author:"",s=m(n.text);if(!o||!i||!s)continue;let a={ts:o,author:i,text:s},d=m(n.step_id);d&&(a.step_id=d),t.push(a)}return t.length>0?t:void 0}function Xa(e){if(!Array.isArray(e))return;let t=[];for(let r of e){if(r===null||typeof r!="object")continue;let n=r,o=m(n.text);if(!o)continue;let i={text:o},s=m(n.command);s&&(i.command=s);let a=m(n.expected);a&&(i.expected=a),t.push(i)}return t.length>0?t:void 0}function Za(e){if(!e)return;let t=Object.entries(e).map(([r,n])=>[r.trim(),n.trim()]).filter(([r,n])=>r.length>0&&n.length>0).sort((r,n)=>r[0].localeCompare(n[0]));if(t.length!==0)return Object.fromEntries(t)}function Se(e){let t=0;for(;t<e.length&&e[t]===`
2
+ `;)t+=1;return e.slice(t).trimEnd()}function Qa(e){if(e===void 0)return;if(typeof e=="number")return e;let t=e.trim().toLowerCase();if(t==="med")return"medium";if(tt.includes(t))return t}function ec(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(t==="med")return"medium";if(et.includes(t))return t}function Ue(e){return e||void 0}function tc(e,t){let r=e,n=t;for(let[o,i]of Object.entries(n))yr(o)||Object.prototype.hasOwnProperty.call(r,o)||i===void 0||(r[o]=i)}function rc(e,t){if(!t?.fieldRegistry)return;let r=e;for(let n of t.fieldRegistry.definitions){let o=r[n.metadata_key];o!==void 0&&(r[n.metadata_key]=Me(n,o,`metadata field "${n.metadata_key}"`,"metadata"))}}function nc(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let r=Ao(t),n=Object.keys(e).filter(o=>!r.has(o)).sort((o,i)=>o.localeCompare(i));n.length>0&&t.unknownFieldPolicy==="reject"&&Y(`unknown schema fields are not allowed: ${n.join(", ")}`),n.length>0&&t.onWarning?.(`item_unknown_schema_fields:${n.join(",")}`)}function mt(e,t={}){let r=Oo(t),n=lt(e.status,r?.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:yo(e.pm_format_version),source_type:m(e.source_type),type_options:Za(e.type_options),status:n,priority:e.priority,tags:o,created_at:e.created_at,updated_at:e.updated_at,dependencies:ka(e.dependencies),comments:cr(e.comments),notes:cr(e.notes),learnings:cr(e.learnings),files:xa(e.files),tests:ja(e.tests),test_runs:Ca(e.test_runs),docs:Ma(e.docs),deadline:Ue(e.deadline),reminders:Sa(e.reminders),events:Oa(e.events),closed_at:Ue(e.closed_at),completed_at:Ue(e.completed_at),assignee:m(e.assignee),claim_principal:m(e.claim_principal),source_owner:m(e.source_owner),author:Ue(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:m(e.definition_of_ready),order:e.order,goal:m(e.goal),objective:m(e.objective),value:m(e.value),impact:m(e.impact),outcome:m(e.outcome),why_now:m(e.why_now),parent:m(e.parent),reviewer:m(e.reviewer),risk:e.risk??void 0,confidence:Qa(e.confidence),sprint:m(e.sprint),release:m(e.release),blocked_by:m(e.blocked_by),blocked_reason:m(e.blocked_reason),unblock_note:m(e.unblock_note),reporter:m(e.reporter),severity:ec(e.severity),environment:m(e.environment),repro_steps:m(e.repro_steps),resolution:m(e.resolution),expected_result:m(e.expected_result),actual_result:m(e.actual_result),affected_version:m(e.affected_version),fixed_version:m(e.fixed_version),component:m(e.component),regression:e.regression,customer_impact:m(e.customer_impact),close_reason:Ue(e.close_reason),plan_mode:m(e.plan_mode),plan_scope:m(e.plan_scope),plan_harness:m(e.plan_harness),plan_resume_context:m(e.plan_resume_context),plan_steps:Ja(e.plan_steps),plan_decisions:Ka(e.plan_decisions),plan_discoveries:Ya(e.plan_discoveries),plan_validation:Xa(e.plan_validation)};return tc(i,e),rc(i,r),nc(i,r),ft(i),i}function xo(e){return v(e,J)}function oc(e){let t=0,r=!1,n=!1;for(let o=0;o<e.length;o+=1){let i=e[o];if(r){if(n){n=!1;continue}if(i==="\\"){n=!0;continue}i==='"'&&(r=!1);continue}if(i==='"'){r=!0;continue}if(i==="{"){t+=1;continue}if(i==="}"&&(t-=1,t===0))return o}return-1}function ic(e){if(!e.startsWith("{"))return{frontMatter:"",body:e};let t=oc(e);if(t<0)return{frontMatter:"",body:e};let r=e.slice(0,t+1),n=e.slice(t+1).replace(/^\r?\n+/,"");return{frontMatter:r,body:n}}function sc(e){let t=e.charCodeAt(0)===65279?e.slice(1):e,r=t.match(/^[ \t]*---[ \t]*(?:\r?\n|$)/);if(!r)return{content:t,stripped:!1};let n=r[0].length;for(;n<t.length;){let o=t.indexOf(`
3
+ `,n),i=o===-1?t.length:o,s=t.slice(n,i).replace(/\r$/,""),a=o===-1?i:i+1;if(s.trim()==="---")return{content:t.slice(a).replace(/^\s+/,""),stripped:!0};n=a}return{content:t,stripped:!1}}function fr(e,t){return mt(e,{...t,onWarning:void 0})}function ac(e,t,r={}){let n=sc(e);n.stripped&&r.onWarning?.("json_markdown_leading_yaml_frontmatter_ignored");let{frontMatter:o,body:i}=ic(n.content);o||(e.trimStart().startsWith("{")&&We("json_markdown","JSON front matter is not valid JSON"),We("json_markdown","JSON Markdown item document is missing JSON front matter"));let s;try{s=JSON.parse(o)}catch{We("json_markdown","JSON front matter is not valid JSON")}return To(s,r.requireSupportedFormat),_r(s,t),{metadata:fr(s,r),body:Se(i)}}function cc(e,t,r={}){let n;try{n=sr(e).value}catch{We("toon","TOON item document is not valid TOON")}y(typeof n=="object"&&n!==null&&!Array.isArray(n),"TOON item document must be an object");let o=n;if(To(Object.prototype.hasOwnProperty.call(o,"front_matter")?o.front_matter:o,r.requireSupportedFormat),!Io.some(a=>Object.prototype.hasOwnProperty.call(o,a))&&!Object.prototype.hasOwnProperty.call(o,"front_matter")&&We("toon","TOON input does not have the shape of an item document"),Object.prototype.hasOwnProperty.call(o,"front_matter"))return _r(o.front_matter,t),y(o.body===void 0||typeof o.body=="string","TOON item document body must be a string"),{metadata:fr(o.front_matter,r),body:Se(typeof o.body=="string"?o.body:"")};let{body:i,...s}=o;return y(i===void 0||typeof i=="string","TOON item document body must be a string"),_r(s,t),{metadata:fr(s,r),body:Se(typeof i=="string"?i:"")}}function dc(e,t={}){let r=mt(e.metadata,t),n=xo(r),o=Se(e.body??"");pr(JSON.parse(JSON.stringify(n))),pr({body:o});let i=JSON.stringify(n,null,2);return o?`${i}
4
+
5
+ ${o}
6
+ `:`${i}
7
+ `}var lc=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/u;function mr(e,t){return typeof e=="string"?wo(e,t):e===null||typeof e!="object"?null:Array.isArray(e)?Eo(e.map((r,n)=>()=>mr(r,`${t}[${n}]`))):Eo(Object.entries(e).map(([r,n])=>()=>{let o=t?`${t}.${r}`:r;return wo(r,`${o} (key)`)??mr(n,o)}))}function wo(e,t){let r=e.search(lc);return r<0?null:{path:t,index:r}}function Eo(e){for(let t of e){let r=t();if(r!==null)return r}return null}function pr(e){let t=mr(e,"");if(t!==null)throw new w(`Item field ${t.path} contains an unpaired surrogate code unit at index ${t.index}; persisted item text requires well-formed Unicode.`,E.USAGE,{code:"text_unpaired_surrogate",field:t.path,required:"Provide well-formed UTF-16 text: keep emoji and other astral characters whole and avoid lone \\uD800-\\uDFFF JSON escapes.",why:"Persisted item text must remain well-formed in every supported format; a lone surrogate can cause an unclassified encoder fault.",nextSteps:[`Repair the ${t.path} value (for example String.prototype.toWellFormed() or re-truncate on a character boundary) and retry.`,"Run pm <command> --help --json to review the text fields the command accepts."]})}function uc(e,t={}){let r=mt(e.metadata,t),n=xo(r),o=Se(e.body??""),i={...n,body:o},s=JSON.parse(JSON.stringify(i));pr(s);let a=Zs(s),d;try{d=sr(a).value}catch(l){throw new w("Refusing to persist a TOON item document that the configured decoder cannot read back.",E.GENERIC_FAILURE,{code:"item_document_roundtrip_failed",reason:"encode_decode_error",format:"toon",required:"Upgrade or repair the TOON codec before retrying the mutation; no item bytes were written.",why:l instanceof Error?l.message:String(l)})}if(!go(d,s)){let l=typeof d=="object"&&d!==null&&!Array.isArray(d)?d:{},_=Object.keys(s).find(f=>!go(s[f],l[f]))??"document";throw new w(`Refusing to persist a lossy TOON item document; round-trip mismatch at field "${_}".`,E.GENERIC_FAILURE,{code:"item_document_roundtrip_failed",reason:"encode_decode_mismatch",format:"toon",field:_,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}
8
+ `}function s_(e,t={}){let r=ut(e);if(r)throw new w(`Merge conflict markers detected in item document at line ${r.line} (${r.marker}). Resolve <<<<<<< ======= >>>>>>> markers and retry.`,E.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 n=t.format??"toon",o=Oo(t);return n==="toon"?cc(e,o,t):ac(e,o,t)}function a_(e,t={}){return(t.format??"toon")==="toon"?uc(e,t):dc(e,t)}function Oe(e,t={}){return{metadata:mt(e.metadata,t),body:Se(e.body??"")}}import{AsyncLocalStorage as _c}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]="1fbb183b-c6d8-5834-b4cb-e4fb515572b9")}catch{}})();var gr=new _c,Co=/^[A-Za-z0-9](?:[A-Za-z0-9._:-]{0,127})$/u;function pt(e,t){let r=typeof e=="string"?e.trim():"";return r.length>0?r.slice(0,t):void 0}function ce(e,t){if(e===void 0)return;let r=typeof e=="object"&&e!==null?e:{},n=pt(r.id,128),o=pt(r.parent_id,128);if(n===void 0||!Co.test(n)||o!==void 0&&!Co.test(o)){if(t)throw new Error("Agent episode ids must be 1-128 letters, digits, dots, underscores, colons, or hyphens.");return}let i=pt(r.label,256);return{id:n,...i===void 0?{}:{label:i},...o===void 0?{}:{parent_id:o}}}function Te(e){let t={};for(let[r,n]of Object.entries(e??{}).slice(0,32)){let o=r.trim().toLowerCase().slice(0,64),i=pt(n,256);/^[a-z][a-z0-9_-]{0,63}$/u.test(o)&&i!==void 0&&(t[o]=i)}return t}function fc(e,t,r){let n=gr.getStore(),o=Te({role:t.PM_AGENT_SESSION_ROLE,topic:t.PM_AGENT_SESSION_TOPIC}),i=ce(t.PM_AGENT_EPISODE_ID===void 0?void 0:{id:t.PM_AGENT_EPISODE_ID,label:t.PM_AGENT_EPISODE_LABEL,parent_id:t.PM_AGENT_EPISODE_PARENT_ID},!1),s={...Te(n?.provenance),...o,...Te(e?.provenance)},a=ce(e?.episode,!1)??ce(r,!1)??i??ce(n?.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 vr(e,t){return fc(e.session_context,t,e.client_info?.episode)??{}}function l_(e,t){let r=gr.getStore(),n=ce(e.episode,!0),o=ce(r?.episode,!1),i=n!==void 0&&n.parent_id===void 0&&o!==void 0?{...n,parent_id:o.id}:n,s={...Te(r?.provenance),...Te(e.provenance)};return gr.run({...Object.keys(s).length===0?{}:{provenance:s},...i===void 0?o===void 0?{}:{episode:o}:{episode:i}},t)}function u_(e){let t=Te(e.provenance),r=ce(e.episode,!0);return{...r===void 0?{}:{PM_AGENT_EPISODE_ID:r.id,...r.label===void 0?{}:{PM_AGENT_EPISODE_LABEL:r.label},...r.parent_id===void 0?{}:{PM_AGENT_EPISODE_PARENT_ID:r.parent_id}},...t.role===void 0?{}:{PM_AGENT_SESSION_ROLE:t.role},...t.topic===void 0?{}:{PM_AGENT_SESSION_TOPIC:t.topic}}}import{createHash as No}from"node:crypto";import{existsSync as br,promises as Ro,readFileSync as mc}from"node:fs";import M 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]="06c9f6f4-c2f0-549c-9a0f-4f4269cc5f49")}catch{}})();var pc="session.json";function wr(e,t){return typeof e=="string"&&e.length>0&&e.length<=t}function Do(e){if(e===null||typeof e!="object"||Array.isArray(e))return;let t=e,r=["implementer","planner","release-operator"].includes(String(t.role)),n=["high","medium"].includes(String(t.confidence)),o=wr(t.topic,256),i=Array.isArray(t.evidence)&&t.evidence.length<=32&&t.evidence.every(d=>typeof d=="string"&&d.length<=128),s=Array.isArray(t.active_item_ids)&&t.active_item_ids.length<=64&&t.active_item_ids.every(d=>wr(d,128)),a=t.focused_item_id===void 0||wr(t.focused_item_id,128);if([r,n,o,i,s,a,t.rule_version==="v2"].every(Boolean))return t}function hc(e){if(e===null||typeof e!="object"||Array.isArray(e))return;let t=Object.entries(e).slice(0,128).flatMap(([r,n])=>{let o=Do(n);return o&&r.length<=128?[[r,o]]:[]});return t.length>0?Object.fromEntries(t):void 0}function Er(e){return M.join(Bn(e),pc)}async function Po(e){try{let t=await Ro.readFile(Er(e),"utf8"),r=JSON.parse(t);if(r===null||typeof r!="object"||Array.isArray(r))return{};let n=r,o=n.focused_item,i=hc(n.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 kr(e,t){let r=await $(e,"session-state",h.locks.ttl_seconds,"session-state",!1,!0,h.locks.wait_ms);try{let n=await Po(e);t(n);let o=Er(e);await Ro.mkdir(M.dirname(o),{recursive:!0}),await Le(o,JSON.stringify(n))}finally{await r()}}function Sr(e){return/#([a-f0-9]{24})$/u.exec(e.trim())?.[1]??`author-${No("sha256").update(e).digest("hex").slice(0,24)}`}function Ir(e){return[...new Set(e.map(t=>t.trim()).filter(Boolean))].slice(0,32).map(t=>t.slice(0,128))}function Or(e){let t=[...new Set(e)].sort((n,o)=>n.localeCompare(o));if(t.length===1)return t[0];let r=`workset:${t.join("+")}`;return r.length<=256?r:`workset:${t.join("+").slice(0,230)}+${No("sha256").update(t.join("\0")).digest("hex").slice(0,12)}`}async function Tr(e,t,r){await kr(e,n=>{let o={...n.semantic_attribution},i=r(o[t]);i===void 0?delete o[t]:o[t]=i,Object.keys(o).length===0?delete n.semantic_attribution:n.semantic_attribution=o})}async function b_(e){let t=Sr(e.principal);await Tr(e.pmRoot,t,r=>{let n=[...new Set([...r?.active_item_ids??[],e.itemId])].slice(-64).sort((i,s)=>i.localeCompare(s)),o=r?.focused_item_id;return{role:"implementer",topic:o??Or(n),confidence:o?"high":"medium",rule_version:"v2",evidence:Ir([...n.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],...(e.lineageIds??[]).map(i=>`lineage:${i}`)]),active_item_ids:n,...o?{focused_item_id:o}:{}}})}async function w_(e){let t=Sr(e.principal);await Tr(e.pmRoot,t,r=>{if(!r)return;let n=r.active_item_ids.filter(i=>i!==e.itemId);if(n.length===0&&!r.focused_item_id)return;let o=r.focused_item_id;return{...r,role:"release-operator",topic:o??Or(n),confidence:o?"high":"medium",evidence:Ir([...n.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],`release:${e.itemId}`]),active_item_ids:n}})}async function E_(e){let t=Sr(e.principal);await Tr(e.pmRoot,t,r=>{let n=r?.active_item_ids??[];if(!e.itemId&&n.length===0)return;let o=e.itemId;return{role:o?"planner":r.role,topic:o??Or(n),confidence:o?"high":"medium",rule_version:"v2",evidence:Ir([...n.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],...(e.lineageIds??[]).map(i=>`lineage:${i}`)]),active_item_ids:n,...o?{focused_item_id:o}:{}}})}function yc(e,t){let r=t.PM_PATH?.trim();if(r){let o=M.resolve(e,r);if(br(M.join(o,"settings.json")))return o;let i=M.join(o,".agents","pm");if(br(M.join(i,"settings.json")))return i}let n=M.resolve(e);for(let o=0;o<32;o+=1){let i=M.join(n,".agents","pm");if(br(M.join(i,"settings.json")))return i;let s=M.dirname(n);if(s===n)break;n=s}}function jo(e){if(!e.key)return;let t=yc(e.cwd,e.env);if(t)try{let r=JSON.parse(mc(Er(t),"utf8"));return Do(r.semantic_attribution?.[e.key])}catch{return}}async function k_(e){return(await Po(e)).focused_item}async function S_(e,t){await kr(e,r=>{r.focused_item=t})}async function I_(e){await kr(e,t=>{delete t.focused_item})}import{AsyncLocalStorage as Rr}from"node:async_hooks";import{createHash as gc}from"node:crypto";import D from"node:fs";import zo from"node:os";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]="a69b86e2-6633-5abc-81b7-6a54a592d36c")}catch{}})();var Dr=["model","effort","role","topic","version"],gt=new Rr,$o=new Rr,vt=new Rr,Pr=[{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:{model:"codex_session_file",effort:"codex_session_file",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:[]}],Mo=Object.freeze({max_bytes:1048576,max_lines:4096,network_access:!1,subprocess_access:!1}),vc=Object.freeze({...Mo,max_bytes:4194304}),Ar=/^[a-z0-9]+(?:-[a-z0-9]+)*$/u;function bc(e){let t=Z(e).provenance_unavailable_dimensions,r=new Set(["model","version",...Object.keys(e.provenance_environment_keys??{}),...Object.keys(e.provenance_resolvers??{})]);return Object.freeze({contract_version:1,adapter_version:"v1",priority:0,harness:e.harness,descriptor:e,supported_dimensions:Object.freeze([...r].sort()),native_sources:Object.freeze(["environment","argv","mcp_client",...Object.values(e.provenance_resolvers??{}).some(n=>n?.endsWith("session_file"))?["session_file"]:[]]),probe_policy:e.harness==="codex"?vc:Mo,normalization:Object.freeze({model_family:"v1",effort:"v1",preserve_raw:!0}),confidence:"high",waivers:Object.freeze(Object.fromEntries(t.map(n=>[n,"Harness does not expose this dimension."])))})}var Vo=Object.freeze(Pr.filter(e=>e.harness!=="ci").map(bc).sort((e,t)=>e.harness.localeCompare(t.harness))),le=new Map,Ae=new Map;function N(e){let t=typeof e=="string"?e.trim():void 0;return t&&t.length>0?t:void 0}function X(e){return[...new Set((e??[]).slice(0,64).map(t=>t.trim()).filter(t=>t.length>0).map(t=>t.slice(0,128)))]}function Z(e){let t=e.harness.trim().toLowerCase();if(!Ar.test(t))throw new Error(`Invalid harness signal descriptor namespace: ${e.harness}`);return{harness:t,environment_keys:X(e.environment_keys),model_environment_keys:X(e.model_environment_keys),session_environment_keys:X(e.session_environment_keys),provenance_environment_keys:Object.fromEntries(Object.entries(e.provenance_environment_keys??{}).slice(0,32).map(([r,n])=>[r.trim().toLowerCase().slice(0,64),X(n)]).filter(([r])=>Ar.test(r))),provenance_resolvers:Object.fromEntries(Object.entries(e.provenance_resolvers??{}).slice(0,32).map(([r,n])=>[r.trim().toLowerCase().slice(0,64),n]).filter(r=>typeof r[0]=="string"&&Ar.test(r[0])&&(r[1]==="ai_agent_version"||r[1]==="claude_session_file"||r[1]==="codex_session_file"))),provenance_unavailable_dimensions:X(e.provenance_unavailable_dimensions).map(r=>r.toLowerCase()),argv_markers:X(e.argv_markers).map(r=>r.toLowerCase()),client_names:X(e.client_names).map(r=>r.toLowerCase())}}var Uo=Pr.map(Z);function wc(e,t){return JSON.stringify(e)===JSON.stringify(t)}function yt(e,t){return e.toLowerCase().slice(0,512).split(/[/\\\s:=]+/u).filter(r=>r.length>0).includes(t)||e.trim().toLowerCase()===t}function jr(e=[]){let t=new Map(Pr.filter(o=>o.harness!=="ci").map(o=>[o.harness,Z(o)]));for(let{adapter:o}of le.values())t.set(o.harness,Z(o.descriptor));let r=[...t.values(),...Uo.filter(o=>o.harness==="ci"),...[...Ae.values()].map(o=>o.descriptor),...vt.getStore()?.descriptors??[],...e.map(Z)],n=new Set;for(let o of r){if(n.has(o.harness))throw new Error(`Harness signal descriptor collision for "${o.harness}"`);n.add(o.harness)}return r}function Lr(e,t){for(let r of t??[]){let n=N(e[r]);if(n)return n.slice(0,256)}}function Ec(e,t){if(t==="role"){let r=e.slice(0,8).map(n=>n.trim().toLowerCase()).find(n=>["claim","create","update","close","release","review"].includes(n));if(r==="review")return"reviewer";if(r)return"implementer"}}function Wo(e,t){let r=t==="model"?["--model","--agent-model"]:[`--agent-${t}`],n=e.slice(0,8);for(let o=0;o<n.length;o+=1){let i=n[o].slice(0,512);if(r.includes(i))return N(n[o+1])?.slice(0,256);let s=r.find(a=>i.startsWith(`${a}=`));if(s)return N(i.slice(s.length+1))?.slice(0,256)}}var kc=new Set(["implementation","implementer","investigator","orchestrator","planner","release-operator","reviewer"]);function de(e,t){if(e!=="role"||t===void 0)return t;let r=t.trim().toLowerCase().replaceAll(/[_\s]+/gu,"-");return kc.has(r)?r:void 0}function xr(e,t){return N(e?.[t])?.slice(0,256)}var Sc=1048576,Nr=4194304,ht=new Map,Lo=Object.freeze({}),Cr=new Map,Ho=Object.freeze({});function Fo(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:void 0}function Ic(e){let t;try{t=JSON.parse(e)}catch{return Ho}let r=Fo(t);if(!r)return Ho;let n=[{value:r,depth:0}],o=0,i,s;for(;n.length>0&&o<64;){let a=n.shift();if(o+=1,i??=N(a.value.model)?.slice(0,256),s??=N(a.value.version)?.slice(0,256),i&&s)break;if(!(a.depth>=4))for(let d of Object.values(a.value)){let l=Fo(d);l&&n.push({value:l,depth:a.depth+1})}}return Object.freeze({model:i,version:s})}function qo(e){try{return D.lstatSync(e).isFile()?"available":"missing"}catch(t){return W(t)?"missing":"failed"}}function Oc(e,t){let r;try{r=D.readdirSync(e,{withFileTypes:!0}).filter(o=>o.isDirectory()).sort((o,i)=>o.name.localeCompare(i.name)).slice(0,512).map(o=>{let i=ue.join(e,o.name,`${t}.jsonl`);return{candidate:i,status:qo(i)}})}catch(o){return{status:W(o)?"missing":"failed"}}let n=r.filter(({status:o})=>o==="available").map(({candidate:o})=>o);return n.length===0?{status:r.some(({status:o})=>o==="failed")?"failed":"missing"}:n.length>1?{status:"ambiguous"}:{status:"available",path:n[0]}}function Go(e,t){let r=N(t.CLAUDE_CODE_SESSION_ID);if(!r||!/^[A-Za-z0-9_-]{1,128}$/u.test(r))return{status:"unavailable"};let n=ue.resolve(e.cwd??process.cwd()).replaceAll(/[^A-Za-z0-9-]/gu,"-"),o=ue.join(e.home_dir??zo.homedir(),".claude","projects"),i=ue.join(o,n,`${r}.jsonl`),s=N(e.session_file),a=s&&ue.basename(s)===`${r}.jsonl`?s:void 0;for(let d of[a,i]){if(!d)continue;let l=qo(d);if(l==="available")return{status:l,path:d};if(l==="failed")return{status:l}}return Oc(o,r)}function Tc(e,t,r){let n=Go(t,r);if(n.status==="available")try{let o=D.openSync(n.path,D.constants.O_RDONLY|D.constants.O_NOFOLLOW);try{let i=D.fstatSync(o),s=`${n.path}\0${i.size}\0${i.mtimeMs}`,a=Cr.get(s);if(a)return a[e];let d=Math.min(i.size,Sc),l=Math.min(d,Math.ceil(d/2)),_=Math.min(d-l,i.size-l),f=Buffer.alloc(l);D.readSync(o,f,0,l,0);let g=Buffer.alloc(_);_>0&&D.readSync(o,g,0,_,i.size-_);let O={},I=i.size<=d?Buffer.concat([f,g]).toString("utf8").split(`
9
+ `):[...f.toString("utf8").split(`
10
+ `).slice(0,4096),...g.toString("utf8").split(`
11
+ `).slice(-4096)];for(let L of I){if(L.length===0||L.length>262144)continue;let B=Ic(L);if(O.model??=B.model,O.version??=B.version,O.model&&O.version)break}let H=Object.freeze(O);return Cr.clear(),Cr.set(s,H),H[e]}finally{D.closeSync(o)}}catch{return}}function Ac(e,t){let r=0,n=(o,i)=>{if(i>4||r>=512)return;let s;try{s=D.readdirSync(o,{withFileTypes:!0}).sort((a,d)=>d.name.localeCompare(a.name))}catch{return}for(let a of s){if(r+=1,r>512)return;let d=ue.join(o,a.name);if(a.isFile()&&a.name.endsWith(`-${t}.jsonl`))return d;if(a.isDirectory()){let l=n(d,i+1);if(l)return l}}};return n(e,0)}function xc(e){if(e<=Nr)return[{offset:0,length:e}];let t=Math.floor(Nr/2);return[{offset:e-t,length:t},{offset:0,length:t}]}function Cc(e,t){if(t.length===0||t.length>262144)return;let r;try{r=JSON.parse(t)}catch{return}if(typeof r!="object"||r===null||Array.isArray(r))return;let n=r;if(n.type!=="turn_context")return;let o=typeof n.payload=="object"&&n.payload!==null?n.payload:void 0;e.model??=N(o?.model)?.slice(0,256),e.effort??=N(o?.effort)?.slice(0,256)}function Nc(e,t){let r={},n=4096;for(let o of xc(t)){let i=Buffer.alloc(o.length);D.readSync(e,i,0,o.length,o.offset);let s=i.toString("utf8").split(`
12
+ `).reverse().slice(0,n);n-=s.length;for(let a of s)if(Cc(r,a),r.model&&r.effort)break;if(r.model&&r.effort||n<=0)break}return r}function Rc(e,t,r){let n=N(r.CODEX_THREAD_ID);if(!n||!/^[A-Za-z0-9_-]{1,128}$/u.test(n))return;let o=ue.join(t.home_dir??zo.homedir(),".codex","sessions"),i=`${o}\0${n}`,s=ht.get(i);if(s)return s[e];let a=Ac(o,n);if(!a){ht.set(i,Lo);return}try{let d=D.openSync(a,"r");try{let l=D.fstatSync(d).size,_=Nc(d,l);return ht.set(i,_),_[e]}finally{D.closeSync(d)}}catch{ht.set(i,Lo);return}}function Dc(e,t,r,n){let o=vt.getStore();if(!(t.probes_enabled!==!1&&o?.probesEnabled!==!1&&!["0","false","off"].includes(N(r.PM_AGENT_PROBES)?.toLowerCase()??"")))return;let i=n?.provenance_resolvers[e];if(i==="claude_session_file")return Tc(e,t,r);if(i==="codex_session_file")return Rc(e,t,r);if(i==="ai_agent_version"){let s=N(r.AI_AGENT);return!s||!n||!yt(s,n.harness)?void 0:/(?:^|[@/\s])v?(\d+\.\d+(?:\.\d+)?(?:[-+][A-Za-z0-9.-]+)?)$/u.exec(s)?.[1]?.slice(0,256)}}function Pc(e,t,r,n){if(e==="ai_agent_version"){let o=N(n.AI_AGENT);return o!==void 0&&yt(o,t.harness)?"available":"unavailable"}return e==="codex_session_file"?N(n.CODEX_THREAD_ID)!==void 0?"available":"unavailable":Go(r,n).status}function Hr(e){return e||($o.getStore()??{env:process.env,argv:process.argv})}function jc(e,t,r,n){let o=e.environment_keys.some(a=>N(t[a])!==void 0),i=e.argv_markers.some(a=>r.some(d=>{let l=d.replaceAll("\\","/");return yt(l.slice(l.lastIndexOf("/")+1),a)})),s=e.client_names.some(a=>n===a||yt(n,a));return o||i||s}function Lc(e,t){if(!t)return;let r;if(e==="topic"&&(r=t.topic),e==="role"&&(r=t.role),!!r)return{value:r,source:"inferred",confidence:t.confidence,rule_version:t.rule_version,evidence:t.evidence}}function Hc(e){let t=e.find(([r])=>r!==void 0);return t?.[0]?{value:t[0],source:t[1]}:void 0}function Fc(e,t,r,n,o,i){let s=`PM_AGENT_${e.toUpperCase().replaceAll("-","_")}`,a=new Set([...Dr,...Object.keys(n?.provenance_environment_keys??{})]),d,l,_;a.has(e)&&(d=de(e,N(r[s])?.slice(0,256)),_=de(e,Wo(t.argv??[],e)),l=de(e,Ec(t.argv??[],e)));let f={...n?.provenance_environment_keys,model:n?.model_environment_keys},g={...t.client_info?.provenance,model:t.client_info?.model},O=xr(o?.provenance,e),I=de(e,Lr(r,f[e])),H=de(e,xr(g,e)),L=de(e,xr(t.provenance,e)),B=Dc(e,t,r,n);return Hc([[d,"override"],[O,"session"],[_,"argv"],[I,"environment"],[H,"mcp_client"],[L,"host"],[B,"probe"]])??Lc(e,i)??(l?{value:l,source:"argv"}:void 0)}function zc(e,t){if(!(!e||!t))return gc("sha256").update(`pm-agent-instance:v1\0${e}\0${t}`).digest("hex").slice(0,24)}function $c(e,t,r,n,o){let i=Object.keys(r?.provenance_environment_keys??{}),s=new Set([...Dr,...i,...Object.keys(r?.provenance_resolvers??{}),...Object.keys(e.provenance??{}),...Object.keys(e.client_info?.provenance??{}),...Object.keys(n?.provenance??{})]),a={};for(let d of s){let l=Fc(d,e,t,r,n,o);l?a[d]=l:r&&(d!=="version"||r.provenance_unavailable_dimensions.includes(d))&&(a[d]=null)}return a}function j_(e){let t=e.map(Z),r=new Map(Uo.map(i=>[i.harness,i])),n=new Set;for(let i of t){if(n.has(i.harness)||r.has(i.harness))throw new Error(`Harness signal descriptor collision for "${i.harness}"`);let s=Ae.get(i.harness);if(s&&!wc(s.descriptor,i))throw new Error(`Harness signal descriptor collision for "${i.harness}"`);n.add(i.harness)}for(let i of t){let s=Ae.get(i.harness);Ae.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=Ae.get(i.harness);!s||s.registrations<=1?Ae.delete(i.harness):s.registrations-=1}}}}function Mc(e){let t=Z(e.descriptor),r=e.harness.trim().toLowerCase();if(e.contract_version!==1)throw new Error(`Unsupported provenance adapter contract for "${r}": ${e.contract_version}`);if(t.harness!==r)throw new Error(`Provenance adapter harness "${r}" does not match descriptor "${t.harness}".`);let n=N(e.adapter_version)?.slice(0,64);if(!n)throw new Error(`Provenance adapter "${r}" requires a version.`);if(!Number.isSafeInteger(e.priority))throw new Error(`Provenance adapter "${r}" requires an integer priority.`);if(e.probe_policy.network_access!==!1||e.probe_policy.subprocess_access!==!1||e.probe_policy.max_bytes>Nr||e.probe_policy.max_lines>4096)throw new Error(`Provenance adapter "${r}" exceeds the bounded local probe policy.`);return Object.freeze({...e,adapter_version:n,harness:r,descriptor:t,supported_dimensions:Object.freeze(X(e.supported_dimensions).map(o=>o.toLowerCase()).sort()),native_sources:Object.freeze([...new Set(e.native_sources)]),probe_policy:Object.freeze({...e.probe_policy}),normalization:Object.freeze({...e.normalization}),...e.waivers?{waivers:Object.freeze(Object.fromEntries(Object.entries(e.waivers).slice(0,32).map(([o,i])=>[o.slice(0,64),i.slice(0,256)])))}:{}})}function L_(){let e=new Map(Vo.map(t=>[t.harness,t]));for(let{adapter:t}of le.values())e.set(t.harness,t);return Object.freeze([...e.values()].sort((t,r)=>t.harness.localeCompare(r.harness)))}function H_(e){let t=e.map(Mc),r=new Map(Vo.map(i=>[i.harness,i])),n=new Set;for(let i of t){if(n.has(i.harness))throw new Error(`Provenance adapter collision for "${i.harness}".`);let s=r.get(i.harness);if(s&&i.priority<=s.priority)throw new Error(`Provenance adapter override for "${i.harness}" requires priority greater than ${s.priority}.`);let a=le.get(i.harness);if(a&&JSON.stringify(a.adapter)!==JSON.stringify(i))throw new Error(`Provenance adapter collision for "${i.harness}".`);n.add(i.harness)}for(let i of t){let s=le.get(i.harness);le.set(i.harness,{adapter:i,registrations:(s?.registrations??0)+1})}let o=!0;return()=>{if(o){o=!1;for(let i of t){let s=le.get(i.harness);!s||s.registrations<=1?le.delete(i.harness):s.registrations-=1}}}}function F_(e,t){let r=t.trim().slice(0,256),n=r.toLowerCase();if(e==="model"){let o=/^(gpt-\d+(?:\.\d+)?)/u.exec(n)?.[1];o&&(n=o)}else n=n.replaceAll(/[_\s-]+/gu,""),n={minimal:"low",low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max",ultra:"ultra"}[n]??n;return{raw:r,normalized:n,vocabulary:"v1"}}function z_(e,t){return $o.run(e,t)}function $_(e,t,r={}){let n=e.map(Z);return jr(n),vt.run({descriptors:n,probesEnabled:r.probesEnabled!==!1},t)}function Fr(e){let t=Hr(e),r=t.env??{},n=jr(t.descriptors),o=[...(t.argv??[]).slice(0,3),...t.process_labels??[]].slice(0,64).map(I=>I.slice(0,512)),i=t.client_info?.name.trim().toLowerCase()??"",s=n.find(I=>jc(I,r,o,i)),a=vr(t,r),d=[Lr(r,s?.session_environment_keys),N(t.client_info?.session)?.slice(0,256)].find(I=>I!==void 0),l=zc(s?.harness,d),_=jo({cwd:t.cwd??process.cwd(),env:r,key:l}),f=$c(t,r,s,a,_),g=f.model,O=[["harness",s?.harness],["model",g?.value],["model_source",g?.source],["session",d],["instance",l],["provenance",Object.keys(f).length>0?f:void 0],["episode",a.episode]];return Object.fromEntries(O.filter(I=>I[1]!==void 0))}function Vc(e){return e==="unavailable"?{status:"unavailable",reason:"harness_unavailable"}:e==="missing"?{status:"unavailable",reason:"resolver_input_missing"}:{status:"failed",reason:"resolver_failed"}}function Uc(e,t,r,n,o,i,s){let a=r?.provenance_resolvers[e];if(t.provenance?.[e])return{status:"resolved",...a?{resolver:a}:{},rule_version:"v1"};if(s)return{status:"unavailable",reason:"invalid_value",rule_version:"v1"};if(a){if(!i)return{status:"unavailable",reason:"probes_disabled",resolver:a,rule_version:"v1"};let d=Pc(a,r,n,o);return{...Vc(d),resolver:a,rule_version:"v1"}}return{status:r?.provenance_unavailable_dimensions.includes(e)?"unavailable":"not_configured",reason:r?.provenance_unavailable_dimensions.includes(e)?"harness_unavailable":"resolver_not_configured",rule_version:"v1"}}function Bo(e){let t=Hr(e),r=Fr(t),n=jr(t.descriptors).find(l=>l.harness===r.harness),o=t.env??{},i=t.probes_enabled!==!1&&vt.getStore()?.probesEnabled!==!1&&!["0","false","off"].includes(N(o.PM_AGENT_PROBES)?.toLowerCase()??""),s=vr(t,o),a=[o.PM_AGENT_ROLE,s.provenance?.role,Lr(o,n?.provenance_environment_keys.role),t.client_info?.provenance?.role,t.provenance?.role,Wo(t.argv??[],"role")].some(l=>{let _=N(l)?.slice(0,256);return _!==void 0&&de("role",_)===void 0}),d=Object.fromEntries(Dr.map(l=>[l,Uc(l,r,n,t,o,i,l==="role"&&a)]));return{...r,provenance_outcomes:d}}function M_(){return process.env.PM_AUTHOR}function V_(e){e===void 0?delete process.env.PM_AUTHOR:process.env.PM_AUTHOR=e}function U_(e){return Fr(e).harness}function Wc(e,t,r){let n=Hr(r),o=Fr(n);if(e!==void 0){let s=N(e);return s?{author:s,source:"asserted",...o}:{author:"unknown",source:"unknown",...o}}if(n.env?.PM_AUTHOR!==void 0){let s=N(n.env.PM_AUTHOR);return s?{author:s,source:"asserted",...o}:{author:"unknown",source:"unknown",...o}}let i=N(t);return i?{author:i,source:"configured",...o}:o.harness?{author:`harness:${o.harness}`,source:"detected",...o}:{author:"unknown",source:"unknown",...o}}function Jo(e){let t=gt.getStore();return t?.author===e?t.source:e.startsWith("harness:")?"detected":e==="unknown"?"unknown":"asserted"}function Ko(e){let t=gt.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 W_(e){let t=gt.getStore();return t?.author===e&&t.source==="detected"&&t.instance?`${e}#${t.instance}`:e}function Yo(e,t){let r=Wc(e,t);return gt.enterWith(r),r.author}import qc 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]="58661057-fa80-5571-9be7-b949723c274b")}catch{}})();async function bt(e,t){let r=await qc.readFile(e).catch(s=>{if(W(s))return null;throw s}),n=r?.toString("utf8")??null;if(n===null)return{raw:n,raw_bytes:r,entries:[]};if(await it({path:e,scope:"project"}),n.trim()==="")return{raw:n,raw_bytes:r,entries:[]};let o=ut(n);if(o)throw new w(`History for ${t} contains merge conflict markers at line ${o.line} (${o.marker}). Resolve <<<<<<< ======= >>>>>>> markers and retry.`,E.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 i=[];for(let[s,a]of n.split(/\r?\n/).entries()){let d=a.trim();if(d)try{i.push(JSON.parse(d))}catch{throw new w(`History for ${t} contains invalid JSON at line ${s+1}. Repair or restore the history stream and retry.`,E.GENERIC_FAILURE,{code:"history_json_invalid",nextSteps:[`Run pm history-repair ${t} --salvage-tail --dry-run to check whether only an invalid suffix is damaged.`]})}}return{raw:n,raw_bytes:r,entries:i}}async function Ge(e,t){return(await bt(e,t)).entries}import ji from"fast-json-patch";import Ni from"node:fs/promises";import $d 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]="82c79093-2a40-5b4c-8d41-637b0ae03c4f")}catch{}})();import T from"node:fs/promises";import C from"node:path";import{createHash as At,randomUUID as Br}from"node:crypto";import{createRequire as ud}from"node:module";import{setImmediate as ci}from"node:timers/promises";import Mr 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]="3bfeb8d2-52c2-587a-9611-c4d5817cb47e")}catch{}})();function Xo(e){let t=[],r=e[0]?.op==="history_compact_baseline",n=r?1:void 0,o=!1;for(let[i,s]of e.entries())s.op==="delete"&&(o=!0),s.op==="create"&&(n!==void 0&&t.push({prior_genesis_index:n,repeated_create_index:i+1,sequence:o?"delete_then_create":r?"checkpoint_then_create":"multiple_creates"}),n??=i+1,o=!1);return 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]="0c0cb8c7-4d7d-53f8-8ec2-d6dc98fc6dc5")}catch{}})();var Bc={metadata:{},body:""};function Et(){return structuredClone(Bc)}function lf(e,t=_e,r){return zr(e,t,r)[0]}function zr(e,t,r){if(Object.keys(e.metadata).length===0||Array.isArray(e.metadata.tags))try{return ti(kt(e),t,r)}catch{}let n=K(A({replay_fallback:!0,metadata:e.metadata,body:e.body}),r);return t===2?[n,n]:[n]}function ri(e,t,r,n,o){let i=se(n.hash_algorithm),s=`${r}:${i}`,a=o?.before.get(s)??zr(e,r,i),d=zr(t,r,i);return o?.after.set(s,d),{beforeHashes:a,afterHashes:d,pairIndex:a.findIndex((l,_)=>l===n.before_hash&&d[_]===n.after_hash),beforeIndex:a.indexOf(n.before_hash),afterIndex:d.indexOf(n.after_hash)}}function kt(e){return{metadata:e.metadata,body:e.body}}function uf(e,t={}){return Oe(kt(e),t)}function _f(e){if(!e.metadata||Object.keys(e.metadata).length===0)return{metadata:{},body:e.body??""};let t=Oe(e);return{metadata:v(t.metadata,J),body:t.body}}function Zo(e){return e==="/front_matter"?"/metadata":e.startsWith("/front_matter/")?`/metadata/${e.slice(14)}`:e}function Jc(e){return typeof e=="object"&&e!==null&&typeof e.op=="string"&&typeof e.path=="string"}function ni(e){return Array.isArray(e)?e.filter(Jc).map(t=>({...t,path:Zo(t.path),from:typeof t.from=="string"?Zo(t.from):void 0})):[]}function Kc(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 St(e,t){try{let r=ni(t),n=Mr.applyPatch(structuredClone(e),r,!0,!0).newDocument;return Kc(n)?{ok:!0,document:{metadata:n.metadata,body:n.body}}:{ok:!1,error:new Error("history_replay_invalid_document_shape")}}catch(r){return{ok:!1,error:r}}}function Yc(e){return[...new Set(e.map(t=>t.item_hash_version).filter(t=>t!==void 0&&Be.includes(t)))]}function oi(e){return e!==void 0&&!Be.includes(e)}function Xc(e,t){return e!==void 0?[e]:t===void 0?[...Be]:[t]}function ii(e){let t=wt(e);if(!t.ok)return t.error;let r=$r(e);return r.ok?void 0:r.error}function Zc(e,t){let r=ii(e);if(r)return{ok:!1,error:r};let n=St(t,e.patch);return n.ok?{ok:!0,document:n.document}:{ok:!1,error:"patch_apply_failed"}}function Qc(e,t){let r=ii(e);if(r)throw new TypeError(`${r}:entry_${t+1}`)}function ed(e,t,r,n,o){let i=[];for(let s of r){let a=ri(e,t,s,n,o);if(i.push({version:s,match:a}),a.pairIndex>=0)break}return i}function It(e){let t=Et(),r=new Map,n,o,i=Xo(e).map(s=>`verify_failed:duplicate_create:entry_${s.repeated_create_index}:prior_${s.prior_genesis_index}`);for(let s=0;s<e.length;s+=1){let a=e[s],d=a.item_hash_version,l=oi(d);l&&i.push(`verify_failed:unsupported_item_hash_version:${String(d)}:entry_${s+1}`);let _=Zc(a,t);if(!_.ok)return{ok:!1,errors:[...i,`verify_failed:${_.error}:entry_${s+1}`]};if(l){t=_.document,r=new Map,n=void 0,o=void 0;continue}let f=Xc(d,o),g={before:r,after:new Map},O=ed(t,_.document,f,a,g),I=O.find(({match:L})=>L.pairIndex>=0);if(I===void 0){let L=O.some(({match:B})=>B.beforeIndex>=0);return{ok:!1,errors:[...i,`verify_failed:${L?"after":"before"}_hash_mismatch:entry_${s+1}`]}}let H=I.version;t=_.document,r=g.after,n=H,o=d??o}return i.length>0?{ok:!1,errors:i,...n===void 0?{}:{item_hash_version:n}}:{ok:!0,errors:[],...n===void 0?{}:{item_hash_version:n}}}function Je(e){let t=It(e);return{ok:t.ok,errors:t.errors}}function Qo(e,t){try{return{ok:!0,document:Mr.applyPatch(structuredClone(e),[t],!0,!1).newDocument}}catch{return{ok:!1}}}function td(e,t){let r=structuredClone(e),n=0,o=0;for(let s of ni(t)){let a=Qo(r,s);if(a.ok){r=a.document;continue}if(s.op==="replace"){let d=Qo(r,{...s,op:"add"});if(d.ok){r=d.document,n+=1;continue}}o+=1}let i=r;return{document:{metadata:typeof i.metadata=="object"&&i.metadata!==null?i.metadata:{},body:typeof i.body=="string"?i.body:e.body},convertedReplaceToAdd:n,skippedOps:o}}function rd(e){let t=Yc(e);if(t.length===1)return t[0];let r=It(e);return r.ok&&r.item_hash_version!==void 0?r.item_hash_version:t.length===0?1:_e}function nd(e,t,r=t.patch){let n=St(e,r);if(n.ok)return{next:n.document,patch:r,repaired:A(r)!==A(t.patch),converted:0,skipped:0};let o=td(e,r);return{next:o.document,patch:Mr.compare(e,o.document),repaired:!0,converted:o.convertedReplaceToAdd,skipped:o.skippedOps}}function od(e,t,r){return nd(e,t,r.projectPatch?.(t,e))}function ff(e,t=rd(e),r={}){let n=e.findIndex(O=>oi(O.item_hash_version));if(n>=0)throw new TypeError(`unsupported_item_hash_version:${String(e[n]?.item_hash_version)}:entry_${n+1}`);let o=Et(),i=[],s=[],a=0,d=0,l=0,_=0,f,g=t!==1||e.some(O=>O.item_hash_version!==void 0);for(let O=0;O<e.length;O+=1){let I=e[O];Qc(I,O);let H=od(o,I,r),{next:L,patch:B,repaired:Ze,converted:Cn,skipped:Nn}=H;l+=Cn,_+=Nn,d+=Number(Ze);let oe=ri(o,L,t,I);f===void 0||r.continuousHashSurface!==!0?f=[oe.pairIndex,oe.beforeIndex,oe.afterIndex,Math.min(f??0,oe.beforeHashes.length-1)].find(Ps=>Ps>=0):f=Math.min(f,oe.beforeHashes.length-1);let Rn=oe.beforeHashes[f],Dn=oe.afterHashes[f],Qt=Rn!==I.before_hash||Dn!==I.after_hash;Qt&&(a+=1);let ve={...I,patch:B,before_hash:Rn,after_hash:Dn};g?ve.item_hash_version=t:delete ve.item_hash_version;let Ds=ve.item_hash_version!==I.item_hash_version;(Qt||Ze||Ds)&&(ve=ei(I,ve,{retainOriginalPatch:Ze})),i.push(ve),s.push({index:O+1,rehashed:Qt,patch_repaired:Ze,converted_replace_to_add:Cn,skipped_ops:Nn}),o=L}return{entries:i,finalDocument:o,entriesRehashed:a,entriesPatchRepaired:d,convertedReplaceToAdd:l,skippedOps:_,details:s,itemHashVersion:t,explicitItemHashVersion:g}}function mf(e){return e.length===0?"":`${e.map(t=>JSON.stringify(t)).join(`
13
+ `)}
14
+ `}(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]="3c2c29c0-0034-54d4-9dbd-2e9af047784e")}catch{}})();var id=["docs_add","files_add","history:author-acknowledge","history_author_acknowledge","history_compact","history_compact_baseline","history_redact","history_repair","history_salvage","normalize","release","test_run_track","tests_add","tests_remove","tests_update","update_audit","update_ownership_bypass"],sd=["append","cancel","claim","close","comment_add","create","learning_add","note_add","reopen"],ad=new Set(id),cd=new Set(sd),dd=new Set(["actual_result","affected_version","assignee","blocked_by","blocked_reason","close_reason","confidence","customer_impact","definition_of_ready","dependencies","docs","environment","expected_result","files","fixed_version","goal","impact","learnings","notes","objective","order","outcome","parent","release","reminders","reporter","repro_steps","resolution","reviewer","severity","sprint","tests","test_runs","unblock_note","updated_at","value","why_now"]);function ld(e){let t=e.path.split("/").filter(Boolean);return t[0]==="metadata"||t[0]==="front_matter"?t[1]:t[0]==="body"?"body":void 0}function xe(e){return e.event_class==="substantive"||e.event_class==="maintenance"?e.event_class:ad.has(e.op)?"maintenance":cd.has(e.op)||e.op!=="update"?"substantive":Array.isArray(e.patch)&&e.patch.length>0&&e.patch.every(t=>{let r=ld(t);return r!==void 0&&dd.has(r)})?"maintenance":"substantive"}(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]="812b558d-59f3-58d6-b04e-6a4f8689e866")}catch{}})();function si(e){let t=process.emitWarning;process.emitWarning=(r,...n)=>{r==="SQLite is an experimental feature and might change at any time"&&n[0]==="ExperimentalWarning"||Reflect.apply(t,process,[r,...n])};try{return e(["node","sqlite"].join(":")).DatabaseSync??null}catch{return null}finally{process.emitWarning=t}}function ai(e,t){let r=Number.parseInt(e,10);return Number.isFinite(r)&&r>=22?si(t):null}(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]="c5f096f6-4af4-568e-89ef-1aa0a8718973")}catch{}})();var _d="history-event-index.sqlite",Jr="7",fd=8,di=32,hi="history-event-index",md="history-event-index:append:",pd=5e3,Kr=300,yi=3e4,hd="history-event-index-invalidation",yd="history-event-index-invalidations",gd=Kr*2*1e3,Q=Symbol("history-index-changed"),fe=new Map;function pe(e){return C.join(e,"runtime",_d)}function gi(e){return C.join(e,"runtime","history-event-index-repair-deferred")}async function vi(e){try{let t=Number(await T.readFile(gi(e),"utf8")),r=Date.now()-t;return r>=0&&r<pd}catch{return!1}}async function li(e){try{await T.writeFile(gi(e),`${Date.now()}
15
+ `)}catch{}}function Ke(e){return C.join(e,"runtime",yd)}async function xt(e){let t=await T.readdir(Ke(e)).catch(r=>{if(ie(r))return[];throw r});return{pending:t.filter(r=>r.endsWith(".pending")).sort(),committed:t.filter(r=>r.endsWith(".committed")).sort()}}async function ui(e){let t=await xt(e);return{pending:(await Promise.all(t.pending.map(async r=>{let n=/^(\d+)-(unknown|\d+)-(\d+)-.+\.pending$/u.exec(r);if(n!==null){let o=n[2];if(await no({pid:Number(n[1]),...o==="unknown"?{}:{process_start_identity:o}},Math.max(0,Date.now()-Number(n[3])),gd))return r}return await T.rm(C.join(Ke(e),r),{force:!0}),null}))).filter(r=>r!==null),committed:t.committed}}async function qr(e,t,r=yi){let n=await $(e,hd,Kr,`history-event-index-invalidation:${process.pid}`,!1,!1,r,r===0?{maxWaitMs:0}:void 0);try{return await t()}finally{await n()}}async function vd(e){let t=Ke(e);await T.mkdir(t,{recursive:!0});let r=Br(),n=await ro(),o=C.join(t,`${n.pid}-${n.process_start_identity??"unknown"}-${Date.now()}-${r}.pending`);return await T.writeFile(o,`pending
16
+ `,{flag:"wx"}),{pendingPath:o,committedPath:C.join(t,`${r}.committed`)}}function bd(e,t){return e.length===t.length&&e.every((r,n)=>r===t[n])}async function Ct(e){try{await T.rm(pe(e),{force:!0})}catch{}}async function Vr(e,t){let r=Ke(e);await T.mkdir(r,{recursive:!0}),await T.writeFile(C.join(r,`${Br()}${t?".contended":""}.committed`),`committed
17
+ `,{flag:"wx"}),t||await Ct(e)}function Nt(e){return e.committed.some(t=>t.endsWith(".contended.committed"))}function Gr(e,t){let r;try{return r=new t(pe(e)),r.exec("PRAGMA busy_timeout = 0"),r.exec("BEGIN EXCLUSIVE"),!1}catch(n){return me(n)}finally{r?.close()}}async function _i(e,t){return t.pending.length>0||await oo(e,hi,md)}async function bi(e,t,r=yi,n="rebuild"){let o=await $(e,hi,Kr,`history-event-index:${n}:${process.pid}`,!1,!1,r,r===0?{maxWaitMs:0}:void 0);try{return await t()}finally{await o()}}async function wi(e,t,r=!1){let n=C.join(e,"history"),o=await T.readdir(n,{withFileTypes:!0}).catch(f=>{if(typeof f=="object"&&f!==null&&"code"in f&&f.code==="ENOENT")return[];throw f}),i=fe.get(e)??{streams:new Map,ordered_events:[]},s=new Map(i.streams),a=i.ordered_events,d=new Set,l=!fe.has(e);for(let f of o.filter(g=>g.isFile()&&g.name.endsWith(".jsonl")).sort((g,O)=>g.name.localeCompare(O.name))){let g=f.name.slice(0,-6);d.add(g);let O=C.join(n,f.name);if(!Ur(g,t))continue;let I=await Ed(O,g,s.get(g),r);I!==void 0&&(s.set(g,I),l=!0)}for(let f of s.keys())d.has(f)||(s.delete(f),l=!0);l&&(a=[...s.values()].flatMap(f=>f.events).sort(Yr));let _={streams:s,ordered_events:a};if(fe.delete(e),fe.set(e,_),fe.size>fd){let f=fe.keys().next().value;fe.delete(f)}return{events:_.ordered_events.filter(f=>Ur(f.stream_id,t)).map(f=>wd(f,r)),stream_receipts:new Map([..._.streams].filter(([f])=>Ur(f,t)).map(([f,g])=>[f,{byte_size:g.byte_size,content_hash:g.signature}]))}}function wd(e,t){return t||e.recorded_entry===void 0?e:{stream_id:e.stream_id,stream_offset:e.stream_offset,entry:e.entry}}function Ur(e,t){return!t?.length||t.includes(e)}async function Ed(e,t,r,n){if(!n&&r!==void 0&&r.byte_size===(await T.stat(e)).size){let o=At("sha256").update(await T.readFile(e)).digest("hex");if(r.signature===o)return}return kd(e,t,n)}async function kd(e,t,r){let n=await bt(e,t);if(r){let i=It(n.entries);if(!i.ok)throw new w(`Authoritative history integrity verification failed for ${t}.`,E.GENERIC_FAILURE,{code:"event_history_integrity_failed",why:i.errors.join(", "),nextSteps:[`Run pm history ${t} --verify to inspect the authoritative chain before retrying.`]})}let o=n.raw_bytes??new Uint8Array;return{signature:At("sha256").update(o).digest("hex"),byte_size:o.byteLength,events:Ei(n.entries,t).map((i,s)=>({stream_id:t,stream_offset:s,entry:i,...r?{recorded_entry:n.entries[s]}:{}}))}}async function Sd(e,t){return Ei((await bt(e,t)).entries,t)}function Ei(e,t){for(let[r,n]of e.entries())if(typeof n.ts!="string"||!Ee(n.ts.trim()))throw new w(`History for ${t} contains an invalid or sub-millisecond timestamp at line ${r+1}. Repair or restore the history stream and retry.`,E.GENERIC_FAILURE,{code:"history_timestamp_invalid"});return e.map(r=>({...r,ts:new Date(r.ts.trim()).toISOString()}))}var Wr;function Dt(){return Wr!==void 0||(Wr=ai(process.versions.node,ud(import.meta.url))),Wr}function Id(e){e.exec(`
18
+ PRAGMA journal_mode = OFF;
19
+ PRAGMA synchronous = OFF;
20
+ CREATE TABLE metadata (
21
+ key TEXT PRIMARY KEY,
22
+ value TEXT NOT NULL
23
+ ) STRICT;
24
+ CREATE TABLE events (
25
+ stream_id TEXT NOT NULL,
26
+ stream_offset INTEGER NOT NULL,
27
+ ts TEXT NOT NULL,
28
+ author TEXT NOT NULL,
29
+ agent_harness TEXT,
30
+ agent_instance TEXT,
31
+ op TEXT NOT NULL,
32
+ event_class TEXT NOT NULL CHECK(event_class IN ('substantive', 'maintenance')),
33
+ entry_json TEXT NOT NULL,
34
+ PRIMARY KEY(stream_id, stream_offset)
35
+ ) STRICT;
36
+ CREATE TABLE streams (
37
+ stream_id TEXT PRIMARY KEY,
38
+ byte_size INTEGER NOT NULL CHECK(byte_size >= 0),
39
+ content_hash TEXT NOT NULL
40
+ ) STRICT;
41
+ CREATE INDEX events_order
42
+ ON events(ts, stream_id, stream_offset);
43
+ CREATE INDEX events_op_order
44
+ ON events(op, ts, stream_id, stream_offset);
45
+ CREATE INDEX events_class_stream_order
46
+ ON events(event_class, stream_id, ts, stream_offset);
47
+ CREATE INDEX events_author_order
48
+ ON events(author, ts, stream_id, stream_offset);
49
+ CREATE INDEX events_harness_order
50
+ ON events(agent_harness, ts, stream_id, stream_offset);
51
+ CREATE INDEX events_instance_order
52
+ ON events(agent_instance, ts, stream_id, stream_offset);
53
+ `),e.prepare("INSERT INTO metadata(key, value) VALUES ('version', ?)").run(Jr)}function ki(e,t){let r={...t.entry,ts:new Date(t.entry.ts.trim()).toISOString()};e.prepare(`INSERT INTO events(
54
+ stream_id, stream_offset, ts, author, agent_harness,
55
+ agent_instance, op, event_class, entry_json
56
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`).run(t.stream_id,t.stream_offset,r.ts,r.author,r.agent_harness??null,r.agent_instance??null,r.op,xe(r),JSON.stringify(r))}function Si(e){let t=JSON.parse(String(e.entry_json));return typeof t.ts!="string"||!Ee(t.ts.trim())?null:{stream_id:String(e.stream_id),stream_offset:Number(e.stream_offset),entry:{...t,ts:new Date(t.ts.trim()).toISOString()}}}function Ii(e,t,r){e.prepare(`INSERT INTO streams(stream_id, byte_size, content_hash) VALUES (?, ?, ?)
57
+ ON CONFLICT(stream_id) DO UPDATE SET byte_size = excluded.byte_size, content_hash = excluded.content_hash`).run(t,r.byte_size,r.content_hash)}async function Od(e,t={}){let r=Dt();return r?bi(e,async()=>{let n;try{n=await qr(e,()=>ui(e),t.lockWaitMs)}catch(a){if(a instanceof w&&a.code==="lock_conflict")return!1;throw a}if(n.pending.length>0||Nt(n)&&Gr(e,r))return!1;let o=pe(e);await T.mkdir(C.dirname(o),{recursive:!0});let i=`${o}.${Br()}.tmp`,s;try{s=new r(i),Id(s),s.exec("BEGIN IMMEDIATE");let a=await wi(e);await Td(s,a),s.exec("COMMIT"),s.close(),s=void 0;let d=await qr(e,async()=>{let l=await ui(e);return l.pending.length>0||!bd(n.committed,l.committed)||Nt(l)&&Gr(e,r)?!1:(await T.rm(o,{force:!0}),await T.rename(i,o),!0)},t.lockWaitMs);return d&&await Promise.all(n.committed.map(l=>T.rm(C.join(Ke(e),l),{force:!0}))),d||(await li(e),await T.rm(i,{force:!0})),d}catch(a){throw await li(e),s?.close(),await T.rm(i,{force:!0}),a}},t.lockWaitMs):!1}async function Td(e,t){let r=0;for(let n of t.events)ki(e,n),++r%500===0&&await ci();for(let[n,o]of t.stream_receipts)Ii(e,n,o),++r%500===0&&await ci()}function Ot(e,t){return!t||t.length===0||t.includes(e)}function Yr(e,t){return e.entry.ts.localeCompare(t.entry.ts)||e.stream_id.localeCompare(t.stream_id)||e.stream_offset-t.stream_offset}function Rt(e){let t=Date.parse(e);return Number.isFinite(t)?new Date(t).toISOString():e}function Ad(e,t){if(t.after_ts!==void 0&&t.after_stream_id!==void 0&&t.after_stream_offset!==void 0){if(Yr(e,{stream_id:t.after_stream_id,stream_offset:t.after_stream_offset,entry:{...e.entry,ts:Rt(t.after_ts)}})<=0)return!1}else if(t.since_ts!==void 0&&e.entry.ts<Rt(t.since_ts))return!1;return!0}function xd(e,t){return!t.harnesses||t.harnesses.length===0||t.harnesses.includes(e.entry.agent_harness??"")?!0:e.entry.agent_harness===void 0&&(t.harness_alias_authors??[]).includes(e.entry.author)}function Cd(e,t){return!Ad(e,t)||!Ot(e.entry.op,t.ops)||!Ot(e.entry.author,t.authors)||!Ot(e.entry.agent_instance??"",t.agent_instances)||!Ot(e.stream_id,t.stream_ids)||!xd(e,t)?!1:(t.provenance??[]).every(r=>{let n=e.entry.agent_provenance?.[r.dimension]?.value;return n!==void 0&&r.values.includes(n)})}async function Nd(e,t){let r=Math.max(0,Math.floor(t.limit)),n=await wi(e,t.stream_ids,t.verify),o=n.events.filter(i=>Cd(i,t)).slice(0,r+1);return{events:o.slice(0,t.limit),has_more:o.length>t.limit,...t.verify?{verified_streams:n.stream_receipts.size}:{}}}async function Rd(e,t){let r=e.prepare("SELECT byte_size, content_hash FROM streams WHERE stream_id = ?").get(C.basename(t,".jsonl")),n=0;try{n=(await T.stat(t)).size}catch(i){if(!ie(i))throw i}if(Number(r?.byte_size??0)!==n)return!1;let o=await Zr(C.dirname(C.dirname(t)),C.basename(t,".jsonl"));return r===void 0?o?.byte_size===0:o?.content_hash===r.content_hash}async function Oi(e,t,r){let n=C.dirname(C.dirname(e)),o=Dt(),i=!1,s=async()=>{await r(),i=!0};if(!o){await fi(n,s);return}try{await bi(n,async()=>{let a=pe(n);try{await T.access(a)}catch{await s();return}let d;try{if(d=new o(a),d.prepare("SELECT value FROM metadata WHERE key = 'version'").get()?.value!==Jr)throw new TypeError("Unsupported history event index version");if(!await Rd(d,e))throw new TypeError("Stale history event index append base")}catch(_){if(d?.close(),me(_))throw _;await Vr(n,!0),await s();return}try{d.exec("PRAGMA busy_timeout = 0"),d.exec("BEGIN IMMEDIATE")}catch(_){if(d.close(),me(_)||!(_ instanceof Error)||_.code!=="ERR_SQLITE_ERROR")throw _;await Vr(n,!1),await s();return}let l=!1;try{await s(),l=!0;let _=C.basename(e,".jsonl"),f=d.prepare("SELECT COALESCE(MAX(stream_offset), -1) + 1 AS value FROM events WHERE stream_id = ?").get(_);ki(d,{stream_id:_,stream_offset:Number(f.value),entry:t}),Ii(d,_,await Zr(n,_)),d.exec("COMMIT"),d.close()}catch(_){if(d?.close(),!l)throw _;await Vr(n,me(_))}},0,"append")}catch(a){if(i){await Ct(n);return}if(!Pd(a))throw a;await fi(n,s,me(a))}}async function fi(e,t,r=!1){let n=!1,o;try{await qr(e,async()=>{let i=r||Nt(await xt(e)),s=await vd(e);o=s.pendingPath;try{await t(),n=!0}catch(a){throw await T.rm(s.pendingPath,{force:!0}),a}await T.rename(s.pendingPath,i?s.committedPath.replace(/\.committed$/u,".contended.committed"):s.committedPath),i||await Ct(e)})}catch(i){if(n){await Ct(e);try{await T.rm(o,{force:!0})}catch{}return}throw i}}async function Xr(e){await T.rm(pe(C.dirname(C.dirname(e))),{force:!0})}function Tt(e,t,r,n){!n||n.length===0||(e.push(`${r} IN (${n.map(()=>"?").join(", ")})`),t.push(...n))}function Dd(e,t,r,n){if(!r||r.length===0)return;let o=r.map(()=>"?").join(", "),i=n??[];if(i.length>0){e.push(`(agent_harness IN (${o}) OR (agent_harness IS NULL AND author IN (${i.map(()=>"?").join(", ")})))`),t.push(...r,...i);return}e.push(`agent_harness IN (${o})`),t.push(...r)}async function Ti(e,t,r,n){let o;try{let i=await xt(e);if(await _i(e,i))return Q;let s=await mi(e);if(i.committed.length>0)return Nt(i)&&Gr(e,t)?Q:null;if(o=new t(pe(e),{readOnly:!0}),o.exec("BEGIN"),o.prepare("SELECT value FROM metadata WHERE key = 'version'").get()?.value!==Jr)return null;let a=n(o);if(a===null)return null;let d=jd(o,r),l=o;o=void 0,l.close();let _=await Hd([...d.keys()],e,r),f=await Ld(d,e,_),g=await xt(e);return g.committed.length>0||await _i(e,g)||s!==await mi(e)?Q:f?a:null}catch(i){return me(i)?Q:null}finally{o?.close()}}function me(e){return typeof e=="object"&&e!==null&&"errcode"in e&&[5,6].includes(e.errcode)}function Pd(e){return me(e)||e instanceof w&&e.code==="lock_conflict"}function jd(e,t){let r=new Map,n=t&&t.length>0?[...new Set(t)]:void 0;if(n===void 0)for(let o of e.prepare("SELECT stream_id, byte_size, content_hash FROM streams").all())r.set(String(o.stream_id),{byte_size:Number(o.byte_size),content_hash:String(o.content_hash)});else for(let o=0;o<n.length;o+=500){let i=n.slice(o,o+500);for(let s of e.prepare(`SELECT stream_id, byte_size, content_hash FROM streams WHERE stream_id IN (${i.map(()=>"?").join(", ")})`).all(...i))r.set(String(s.stream_id),{byte_size:Number(s.byte_size),content_hash:String(s.content_hash)})}return r}async function mi(e){let t=await T.stat(pe(e),{bigint:!0});return[t.dev,t.ino,t.size,t.mtimeNs,t.ctimeNs].join(":")}async function Rf(e,t){if(t.verify)return{result:await Nd(e,t),repair_needed:!1};let r=Dt();if(!r)return{result:null,repair_needed:!1};let n=[],o=[];if(t.after_ts!==void 0&&t.after_stream_id!==void 0&&t.after_stream_offset!==void 0){n.push("(ts > ? OR (ts = ? AND stream_id > ?) OR (ts = ? AND stream_id = ? AND stream_offset > ?))");let a=Rt(t.after_ts);o.push(a,a,t.after_stream_id,a,t.after_stream_id,t.after_stream_offset)}else t.since_ts!==void 0&&(n.push("ts >= ?"),o.push(Rt(t.since_ts)));Tt(n,o,"op",t.ops),Tt(n,o,"author",t.authors),Dd(n,o,t.harnesses,t.harness_alias_authors),Tt(n,o,"agent_instance",t.agent_instances);for(let a of t.provenance??[])n.push(`json_extract(entry_json, '$.agent_provenance.${a.dimension}.value') IN (${a.values.map(()=>"?").join(", ")})`),o.push(...a.values);Tt(n,o,"stream_id",t.stream_ids);let i=n.length===0?"":` WHERE ${n.join(" AND ")}`,s=await Ti(e,r,t.stream_ids,a=>{let d=a.prepare(`SELECT stream_id, stream_offset, entry_json
58
+ FROM events${i}
59
+ ORDER BY ts, stream_id, stream_offset
60
+ LIMIT ?`).all(...o,Math.max(0,Math.floor(t.limit))+1),l=d.slice(0,t.limit).map(Si);return l.includes(null)?null:{events:l,has_more:d.length>t.limit}});return{result:s===Q?null:s,repair_needed:s===null&&!await vi(e)}}function Ai(e,t){let r=Object.create(null);for(let n of e){if(!t.has(n.stream_id)||xe(n.entry)!=="substantive")continue;let o=r[n.stream_id];(o===void 0||Yr(o,n)<0)&&(r[n.stream_id]=n)}return r}async function Zr(e,t){if(C.basename(t)!==t)return null;try{let r=C.join(e,"history",`${t}.jsonl`),n=await T.stat(r),o=await T.readFile(r);return n.size!==o.length?null:{byte_size:o.length,content_hash:At("sha256").update(o).digest("hex")}}catch(r){if(ie(r))return{byte_size:0,content_hash:At("sha256").digest("hex")};throw r}}async function Ld(e,t,r){for(let n=0;n<r.length;n+=di){let o=r.slice(n,n+di),i=await Promise.all(o.map(s=>Zr(t,s)));for(let[s,a]of i.entries()){if(a===null)return!1;let d=o[s],l=e.get(d);if(!(a.byte_size===0&&l===void 0)&&(a.byte_size!==l?.byte_size||a.content_hash!==l.content_hash))return!1}}return!0}async function Hd(e,t,r){if(r&&r.length>0)return[...new Set(r.filter(o=>o.trim().length>0))];let n=await T.readdir(C.join(t,"history"),{withFileTypes:!0}).then(o=>o.filter(i=>i.isFile()&&i.name.endsWith(".jsonl")).map(i=>i.name.slice(0,-6))).catch(o=>{if(ie(o))return[];throw o});return[...new Set([...e,...n])]}async function pi(e,t,r,n){return e?Ti(t,e,r,o=>{let i=[];for(let s=0;s<r.length;s+=500){let a=r.slice(s,s+500),d=o.prepare(`SELECT stream_id, stream_offset, entry_json
61
+ FROM (
62
+ SELECT stream_id, stream_offset, entry_json,
63
+ ROW_NUMBER() OVER (
64
+ PARTITION BY stream_id
65
+ ORDER BY ts DESC, stream_offset DESC
66
+ ) AS recency_rank
67
+ FROM events
68
+ WHERE event_class = 'substantive'
69
+ AND stream_id IN (${a.map(()=>"?").join(", ")})
70
+ )
71
+ WHERE recency_rank = 1`).all(...a).map(Si);if(d.includes(null))return null;i.push(...d)}return Ai(i,n)}):null}async function Df(e,t){let r=[...new Set(t.filter(a=>a.trim().length>0&&C.basename(a)===a))];if(r.length===0)return{};let n=new Set(r),o=Dt(),i=await pi(o,e,r,n);if(i!==null&&i!==Q)return i;if(o&&i!==Q&&!await vi(e))try{if(await Od(e,{lockWaitMs:0})){let a=await pi(o,e,r,n);if(a!==null&&a!==Q)return a}}catch{}let s=[];return await Promise.all(r.map(async a=>{let d=C.join(e,"history",`${a}.jsonl`);(await Sd(d,a).catch(l=>{if(l instanceof w&&l.code==="history_timestamp_invalid")return[];throw l})).forEach((l,_)=>{s.push({stream_id:a,stream_offset:_,entry:l})})})),Ai(s,n)}import Qr from"node:fs/promises";import Ce 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]="687cbe24-6d5c-5322-962d-455048eb84b5")}catch{}})();var Fd=Ce.join("runtime","history-drift-cache.json"),xi={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 Ci(e){return typeof e=="object"&&e!==null&&"code"in e&&typeof e.code=="string"?e.code:void 0}async function zd(e){let t=Ce.join(e,Fd),r=!1,n="invalid_cache_path";try{r=(await Qr.stat(await Qr.realpath(e))).isDirectory()}catch(o){let i=Ci(o);n=i===void 0?"unknown":xi[i]??"filesystem_error"}if(!r){rr(`[pm] warning: history_drift_cache_invalidation_failed:${n}
72
+ `);return}try{await Qr.rm(t,{force:!0})}catch(o){let i=Ci(o);if(ie(o))return;let s=i===void 0?"unknown":xi[i]??"filesystem_error";rr(`[pm] warning: history_drift_cache_invalidation_failed:${s}
73
+ `)}}async function Pt(e){let t=Ce.dirname(Ce.resolve(e));Ce.basename(t)==="history"&&await zd(Ce.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]="4a3c3c82-0398-549c-8910-fdc69d971cb2")}catch{}})();var Md={front_matter:{},body:""},_e=3,Be=[1,2,3],Vd=1,Ud=[1];function Li(e){return K(A(e),e.hash_algorithm)}function Ne(e){return ot(A(e))}function nm(e){return ot(A(e))}function nn(e){let t={...e,record_hash_version:Vd},{record_hash:r,...n}=t;return{...t,record_hash:Li(n)}}function wt(e){try{se(e.hash_algorithm)}catch{return{ok:!1,error:"unsupported_history_hash_algorithm"}}if(e.record_hash_version===void 0&&e.record_hash===void 0)return{ok:!0,coverage:"item_state_only"};if(e.record_hash_version===void 0||e.record_hash===void 0)return{ok:!1,error:"incomplete_record_hash_envelope"};if(!Ud.includes(e.record_hash_version))return{ok:!1,error:"unsupported_record_hash_version"};let{record_hash:t,...r}=e;return Li(r)===e.record_hash?{ok:!0,coverage:"record_and_item_state"}:{ok:!1,error:"record_hash_mismatch"}}function Wd(e,t){let r={before_hash:e.before_hash,after_hash:e.after_hash,patch_hash:Ne(e.patch)};return e.hash_algorithm!==void 0&&(r.hash_algorithm=e.hash_algorithm),e.item_hash_version!==void 0&&(r.item_hash_version=e.item_hash_version),t.retainOriginalPatch&&(r.patch=structuredClone(e.patch)),t.retainPriorRecordHash!==!1&&e.record_hash_version!==void 0&&e.record_hash!==void 0&&(r.record_hash_version=e.record_hash_version,r.record_hash=e.record_hash,r.record=structuredClone(e)),r}function ei(e,t,r={}){let n=wt(e);if(!n.ok)throw new TypeError(n.error);let o=Ne(e.patch),i=r.retainPriorRecord===!0||e.before_hash!==t.before_hash||e.after_hash!==t.after_hash||e.item_hash_version!==t.item_hash_version||e.hash_algorithm!==t.hash_algorithm||o!==Ne(t.patch),s=nn({...t,...i?{reanchor_evidence:[...t.reanchor_evidence??[],Wd(e,r)]}:{}}),a=$r(s);if(!a.ok)throw new TypeError(a.error);return s}function Hi(e){return!Array.isArray(e)||Object.keys(e).length!==e.length?!1:e.every(t=>!he(t)||typeof t.path!="string"?!1:t.op==="move"||t.op==="copy"?typeof t.from=="string":["add","replace","test"].includes(t.op)?Object.hasOwn(t,"value"):t.op==="remove")}function qd(e){return he(e)&&typeof e.ts=="string"&&typeof e.author=="string"&&typeof e.op=="string"&&typeof e.before_hash=="string"&&typeof e.after_hash=="string"&&Hi(e.patch)}function Gd(e){let t=e.record_hash_version!==void 0,r=e.record_hash!==void 0;return t===r}function Bd(e){return!he(e)||!Gd(e)||typeof e.before_hash!="string"||typeof e.after_hash!="string"||typeof e.patch_hash!="string"||!/^[a-f0-9]{64}$/u.test(e.patch_hash)||e.patch!==void 0&&!Hi(e.patch)||e.record_hash_version!==void 0&&typeof e.record_hash_version!="number"||e.record_hash!==void 0&&(typeof e.record_hash!="string"||!/^(?:[a-f0-9]{64}|[a-f0-9]{128})$/u.test(e.record_hash))?!1:e.record===void 0||qd(e.record)}function Jd(e){try{for(let t of e){if(!Bd(t))return!1;se(t.hash_algorithm)}return!0}catch{return!1}}function Kd(e){let t=e.record;return t!==void 0&&t.before_hash===e.before_hash&&t.after_hash===e.after_hash&&t.item_hash_version===e.item_hash_version&&t.hash_algorithm===e.hash_algorithm&&t.record_hash_version===e.record_hash_version&&t.record_hash===e.record_hash&&Ne(t.patch)===e.patch_hash}function Yd(e,t,r){if(t.patch&&Ne(t.patch)!==t.patch_hash)return{kind:"patch_hash_mismatch"};if(t.record)return Kd(t)?{kind:"record",entry:t.record}:{kind:"record_hash_mismatch"};let n=t.patch??e.patch;if(Ne(n)!==t.patch_hash)return{kind:"digest_only"};let o={...e,before_hash:t.before_hash,after_hash:t.after_hash,patch:n,hash_algorithm:t.hash_algorithm,...t.item_hash_version===void 0?{}:{item_hash_version:t.item_hash_version},...t.record_hash_version===void 0?{}:{record_hash_version:t.record_hash_version},...t.record_hash===void 0?{}:{record_hash:t.record_hash},...r.length===0?{}:{reanchor_evidence:r}};return t.hash_algorithm===void 0&&delete o.hash_algorithm,r.length===0&&delete o.reanchor_evidence,t.item_hash_version===void 0&&delete o.item_hash_version,t.record_hash_version===void 0||t.record_hash===void 0?{kind:"legacy",entry:o}:{kind:"record",entry:o}}function $r(e){let t=e.reanchor_evidence;if(t===void 0)return{ok:!0,coverage:"none"};if(!Array.isArray(t)||!Jd(t))return{ok:!1,error:"rewrite_evidence_invalid"};if(t.length===0)return{ok:!0,coverage:"none"};let r=e;for(let n=t.length-1;n>=0;n-=1){let o=t[n],i=Yd(r,o,t.slice(0,n));if(i.kind==="patch_hash_mismatch")return{ok:!1,error:"rewrite_evidence_patch_hash_mismatch"};if(i.kind==="record_hash_mismatch")return{ok:!1,error:"rewrite_evidence_record_hash_mismatch"};if(i.kind==="digest_only")return{ok:!0,coverage:"digest_only"};if(i.kind==="legacy")return{ok:!0,coverage:"legacy_anchor_only"};if(!wt(i.entry).ok)return{ok:!1,error:"rewrite_evidence_record_hash_mismatch"};r=i.entry}return{ok:!0,coverage:"complete"}}function jt(e,t){return(e??"").localeCompare(t??"")}function Ri(e,t){return(e??0)-(t??0)}function ee(e,t,r){return JSON.stringify(e??r).localeCompare(JSON.stringify(t??r))}function Xd(e,t){return[e.scope.localeCompare(t.scope),jt(e.path,t.path),jt(e.command,t.command),Ri(e.timeout_seconds,t.timeout_seconds),jt(e.pm_context_mode,t.pm_context_mode),+!!e.shared_host_safe-+!!t.shared_host_safe,ee(e.env_clear,t.env_clear,[]),ee(e.env_set,t.env_set,{}),ee(e.assert_stdout_contains,t.assert_stdout_contains,[]),ee(e.assert_stdout_regex,t.assert_stdout_regex,[]),ee(e.assert_stderr_contains,t.assert_stderr_contains,[]),ee(e.assert_stderr_regex,t.assert_stderr_regex,[]),Ri(e.assert_stdout_min_lines,t.assert_stdout_min_lines),ee(e.assert_json_field_equals,t.assert_json_field_equals,{}),ee(e.assert_json_field_gte,t.assert_json_field_gte,{}),jt(e.note,t.note)].find(r=>r!==0)??0}function Zd(e){return!e||e==="/"?[]:e.startsWith("/")?e.slice(1).split("/").map(t=>t.replaceAll("~1","/").replaceAll("~0","~")):[]}function Qd(e,t){let r=Zd(t);if(r.length===0)return!0;let n=e;for(let o of r){let i=/^(0|[1-9]\d*)$/.test(o)?Number(o):-1,s=Array.isArray(n)?i>=0&&i<n.length?n[i]:void 0:he(n)&&Object.prototype.hasOwnProperty.call(n,o)?n[o]:void 0;if(s===void 0)return!1;n=s}return!0}function el(e,t){let r=[],n=structuredClone(e);for(let o of t){let i=o.op==="replace"&&!Qd(n,o.path)?{...o,op:"add"}:o;r.push(i),n=ji.applyPatch(n,[i],!0,!0).newDocument}return r}function Lt(e,t,r=!1){if(!(e.metadata&&Object.keys(e.metadata).length>0))return{front_matter:{},body:e.body??""};let n=Oe(e),o=t===1||t===2&&r?{...n.metadata,...n.metadata.dependencies===void 0?{}:{dependencies:n.metadata.dependencies.map(s=>({...s,id:s.id.toLowerCase()}))},...n.metadata.tests===void 0?{}:{tests:n.metadata.tests.map(({workspace_context_mode:s,provenance:a,provenance_invalid:d,...l})=>l)},...n.metadata.test_runs===void 0?{}:{test_runs:n.metadata.test_runs.map(({executions:s,...a})=>a)}}:n.metadata,i=t===1&&o.tests?{...o,tests:[...o.tests].sort(Xd)}:o;return{front_matter:v(i,J),body:n.body}}function Di(e){if(!(e.metadata&&Object.keys(e.metadata).length>0))return{metadata:{},body:e.body??""};let t=Oe(e);return{metadata:v(t.metadata,J),body:t.body}}function om(e){return Fi(e,_e)}function Fi(e,t,r){if(!Be.some(n=>n===t))throw new TypeError(`unsupported_item_hash_version:${String(t)}`);return K(A(Lt(e,t)),r)}function ti(e,t,r){let n=Fi(e,t,r);return t===2?[n,K(A(Lt(e,t,!0)),r)]:[n]}function im(){return ot(A(Md))}function on(e){let t=io(e.op),r=Lt(e.before,_e),n=Lt(e.after,_e),o=Di(e.before),i=Di(e.after),s=ji.compare(o,i),a=el(o,s),d=Ko(e.author),l=d.harness?Object.fromEntries(Object.entries(Bo().provenance_outcomes).filter(([O,I])=>I.resolver!==void 0&&(I.status!=="resolved"||d.provenance?.[O]?.source==="probe"))):void 0,_=l===void 0||Object.keys(l).length===0?e.context:{...e.context,agent_provenance_outcomes:l},f=e.hashAlgorithm??so,g={hash_algorithm:f,ts:e.nowIso,author:e.author,author_source:e.authorSource??Jo(e.author),...d.harness?{agent_harness:d.harness}:{},...d.model?{agent_model:d.model}:{},...d.model_source?{agent_model_source:d.model_source}:{},...d.instance?{agent_instance:d.instance}:{},...d.provenance?{agent_provenance:d.provenance}:{},...d.episode?{agent_episode:d.episode}:{},op:t,patch:a,before_hash:K(A(r),f),after_hash:K(A(n),f),item_hash_version:_e,message:e.message===void 0?void 0:e.message,..._===void 0?{}:{context:_}};return nn({...g,event_class:xe(g)})}function he(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function en(e){return new w(e,E.GENERIC_FAILURE,{code:"history_timestamp_invalid"})}function zi(e){let t=e.ts.trim();if(t.length===0)return $e();if(!Ee(t))throw en("History timestamp must be a valid RFC 3339 date-time with millisecond precision");if(t!==e.ts)throw en("History timestamp must not contain surrounding whitespace");return e.ts}function Pi(e,t){let r=e.ts;if(typeof r=="string"&&r.trim().length>0){if(!Ee(r))throw en("History timestamp must be a valid RFC 3339 date-time with millisecond precision");return e}return{...e,ts:t}}function tn(e,t){let r=zi(t);if(typeof e=="string"){let n;try{n=JSON.parse(e)}catch{return e}return he(n)?JSON.stringify(Pi(n,r)):e}return he(e)?JSON.stringify(Pi(e,r)):JSON.stringify(e)}async function tl(e,t,r){if(r===!1)return!0;if(typeof r=="string"){let s=tn(r,t);return await rn(e,s),await Pt(e),await Xr(e),!0}if(typeof r!="object"||r===null)return!1;let n=r;if(n.skip===!0)return!0;let o=typeof n.history_path=="string"?n.history_path:e,i=tn(typeof n.line=="string"?n.line:n.entry??t,t);return await rn(o,i),await Pt(o),await Xr(o),!0}async function rn(e,t){let r;try{r=JSON.parse(t)}catch{r=null}if(!he(r)||r.op!=="create"){await Wn(e,t);return}await Ni.mkdir($d.dirname(e),{recursive:!0});try{await Ni.writeFile(e,`${t}
74
+ `,{encoding:"utf8",flag:"wx"})}catch(n){throw n.code!=="EEXIST"?n:new w("This item identity is reserved by an existing history stream.",E.CONFLICT,{code:"item_identity_reserved",required:"Choose a new item ID or restore the original item from its history.",nextSteps:["Run pm history <id> --full, then pm restore <id> <version> to recover the original item."]})}}async function sn(e,t){let r=await eo("history_append",{history_path:e,entry:t});if(r.handled&&await tl(e,t,r.result))return;let n=t.ts.trim().length>0?t:{...t,ts:zi(t)},o=nn({...n,hash_algorithm:se(n.hash_algorithm),event_class:xe(n)});await Oi(e,o,async()=>{await rn(e,tn(o,o))}),await Pt(e)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="33d6dc97-17d3-5db3-ab0d-6857be0e5827")}catch{}})();var V={ok:!1,path:[]};function cn(e,t){return{ok:!1,path:[e,...t.path]}}var u=e=>typeof e=="string"?{ok:!0,value:e}:V,k=e=>typeof e=="boolean"?{ok:!0,value:e}:V;function x(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?V:{ok:!0,value:t}}function S(...e){return t=>typeof t=="string"&&e.includes(t)?{ok:!0,value:t}:V}function p(e,t){return r=>{if(!Array.isArray(r)||t!==void 0&&r.length>t)return V;let n=[];for(let[o,i]of r.entries()){let s=e(i);if(!s.ok)return cn(String(o),s);n.push(s.value)}return{ok:!0,value:n}}}function dn(e,t){return r=>typeof r=="string"&&r.length>0&&r.length<=e&&r===r.trim()&&(t===void 0||t.test(r))?{ok:!0,value:r}:V}function c(e){return t=>t===void 0?{ok:!0,value:void 0}:e(t)}function Ht(e){return t=>{if(typeof t!="object"||t===null||Array.isArray(t))return V;let r={};for(let[n,o]of Object.entries(t)){let i=e(o);if(!i.ok)return cn(n,i);r[n]=i.value}return{ok:!0,value:r}}}function b(e){return t=>{if(typeof t!="object"||t===null||Array.isArray(t))return V;let r=t,n={};for(let[o,i]of Object.entries(e)){let s=i(r[o]);if(!s.ok)return cn(o,s);s.value!==void 0&&(n[o]=s.value)}return{ok:!0,value:n}}}var rl=b({key:u,values:p(u),required:c(k),aliases:c(p(u)),description:c(u)}),nl=b({command:S("create","update"),option:u,required:c(k),visible:c(k),enabled:c(k)}),ol=b({name:u,description:c(u),default_status:c(u),execution_role:c(S("agent","human","gate")),folder:c(u),aliases:c(p(u)),required_create_fields:c(p(u)),required_create_repeatables:c(p(u)),options:c(p(rl)),command_option_policies:c(p(nl))}),il=b({id:u,aliases:c(p(u)),roles:c(p(S(...Pn))),description:c(u),order:c(x())}),sl=b({key:u,metadata_key:c(u),front_matter_key:c(u),cli_flag:c(u),cli_aliases:c(p(u)),description:c(u),type:c(S(...jn)),commands:c(p(S(...Ln))),repeatable:c(k),required:c(k),required_on_create:c(k),required_types:c(p(u)),allow_unset:c(k)}),al=e=>{if(!Array.isArray(e)||e.length!==2)return V;let[t,r]=e;return typeof t!="string"||typeof r!="string"?V:{ok:!0,value:[t,r]}},cl=b({type:u,allowed_transitions:p(al)}),dl=c(b({version:c(x({int:!0})),files:c(b({types:c(u),statuses:c(u),fields:c(u),workflows:c(u)})),statuses:c(p(il)),fields:c(p(sl)),workflow:c(b({draft_status:c(u),open_status:c(u),in_progress_status:c(u),blocked_status:c(u),close_status:c(u),canceled_status:c(u)})),type_workflows:c(p(cl)),unknown_field_policy:c(S(...Hn))})),ll=c(b({preset:c(S(...Fn)),ownership_enforcement:c(S("none","warn","strict")),create_mode_default:c(S("progressive","strict")),close_validation_default:c(S("off","warn","strict")),require_close_reason:c(k),parent_reference:c(S("warn","strict_error")),metadata_profile:c(S("core","strict","custom")),force_required_for_stale_lock:c(k),create_default_type:c(u),workflow_enforcement:c(S("off","warn","strict")),start_blocker_enforcement:c(S("off","warn","strict")),duplicate_detection_mode:c(S("off","advisory","strict")),duplicate_detection_threshold:c(x({min:0,max:1})),duplicate_detection_limit:c(x({int:!0,min:0,max:20}))})),ul=b({name:u,disabled:c(k),require_trusted:c(k),require_provenance:c(k),sandbox_profile:c(S("none","restricted","strict")),allowed_capabilities:c(p(u)),blocked_capabilities:c(p(u)),allowed_surfaces:c(p(u)),blocked_surfaces:c(p(u)),allowed_commands:c(p(u)),blocked_commands:c(p(u)),allowed_actions:c(p(u)),blocked_actions:c(p(u)),allowed_services:c(p(u)),blocked_services:c(p(u))}),an=S("block","warn"),_l=e=>typeof e=="string"?an(e):b({global:c(an),project:c(an)})(e),fl=c(b({mode:c(S("off","warn","enforce")),trust_mode:c(S("off","warn","enforce")),pm_max_version_exceeded_mode:c(_l),require_provenance:c(k),trusted_extensions:c(p(u)),default_sandbox_profile:c(S("none","restricted","strict")),allowed_extensions:c(p(u)),blocked_extensions:c(p(u)),allowed_capabilities:c(p(u)),blocked_capabilities:c(p(u)),allowed_surfaces:c(p(u)),blocked_surfaces:c(p(u)),allowed_commands:c(p(u)),blocked_commands:c(p(u)),allowed_actions:c(p(u)),blocked_actions:c(p(u)),allowed_services:c(p(u)),blocked_services:c(p(u)),extension_overrides:c(p(ul))})),ye=dn(128),ml=b({harness:dn(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u),environment_keys:c(p(ye,64)),model_environment_keys:c(p(ye,64)),session_environment_keys:c(p(ye,64)),provenance_environment_keys:c(Ht(p(ye,64))),provenance_resolvers:c(Ht(S("ai_agent_version","claude_session_file"))),provenance_unavailable_dimensions:c(p(ye,64)),argv_markers:c(p(ye,64)),client_names:c(p(ye,64))}),$i={version:x({int:!0}),id_prefix:u,ids:c(b({token_length:c(x({int:!0,min:4,max:12}))})),author_default:u,agent_identity:c(b({probes_enabled:c(k),identity_vocabulary:c(b({version:x({int:!0,positive:!0}),aliases:Ht(dn(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u))})),harness_signals:p(ml)})),mutation_guard:c(b({require_attributed_author:c(k),secret_guard:c(S("off","advise","block")),stale_in_progress_hours:c(x({int:!0,positive:!0}))})),item_format:c(S("toon","json_markdown")),locks:b({ttl_seconds:x({int:!0}),wait_ms:c(x({int:!0,min:0}))}),checkpoints:c(b({retention_days:c(x({int:!0,positive:!0}))})),output:b({default_format:S("toon","json")}),ux:c(b({deprecation_hints:c(k)})),history:c(b({missing_stream:S("auto_create","strict_error"),compact_policy:c(b({enabled:c(k),max_entries:c(x({int:!0,positive:!0})),trigger:c(S("health_warn","auto"))}))})),validation:c(b({sprint_release_format:S("warn","strict_error"),parent_reference:c(S("warn","strict_error")),metadata_profile:c(S("core","strict","custom")),metadata_required_fields:c(p(u)),lifecycle_stale_blocker_reason_patterns:c(p(u)),lifecycle_closure_like_blocked_reason_patterns:c(p(u)),lifecycle_closure_like_resolution_patterns:c(p(u)),lifecycle_closure_like_actual_result_patterns:c(p(u)),estimate_defaults_by_type:c(Ht(x({int:!0,positive:!0})))})),governance:ll,workflow:c(b({definition_of_done:p(u)})),testing:c(b({record_results_to_items:k,allow_untrusted_linked_tests:c(k)})),telemetry:c(b({enabled:k,first_run_prompt_completed:c(k),capture_level:c(S("minimal","redacted","max")),endpoint:c(u),installation_id:c(u),retention_days:c(x({int:!0,positive:!0}))})),agent_guidance:c(b({prompt_completed:c(k),declined:c(k),declined_at:c(u),template_version:c(x({int:!0,positive:!0})),last_checked_files:c(p(u))})),item_types:c(b({definitions:p(ol)})),schema:dl,context:c(b({default_depth:c(S("brief","standard","deep")),activity_limit:c(x({int:!0,positive:!0})),stale_threshold_days:c(x({int:!0,positive:!0})),next_ranking_policy:c(S("priority_floor","weighted")),sections:c(b({hierarchy:c(k),activity:c(k),progress:c(k),recently_created:c(k),unparented:c(k),blockers:c(k),files:c(k),workload:c(k),staleness:c(k),tests:c(k)}))})),extensions:b({enabled:p(u),disabled:p(u),policy:fl}),search:b({score_threshold:x(),hybrid_semantic_weight:c(x()),max_results:x({int:!0}),embedding_model:u,embedding_corpus_max_characters:c(x()),embedding_batch_size:x({int:!0}),embedding_timeout_ms:c(x({int:!0})),scanner_max_batch_retries:x({int:!0}),provider:c(u),default_mode:c(S("auto","keyword","semantic","hybrid")),corpus_fields:c(p(u)),mutation_refresh_policy:c(S("cache_only","semantic_configured","semantic_auto")),query_expansion:c(b({enabled:c(k),provider:c(u)})),rerank:c(b({enabled:c(k),model:c(u),top_k:c(x({int:!0,positive:!0}))})),bm25:c(b({k1:c(x()),b:c(x())}))}),providers:b({openai:b({base_url:u,api_key:u,model:u}),ollama:b({base_url:u,model:u})}),vector_store:b({adapter:c(u),collection_name:c(u),qdrant:b({url:u,api_key:u}),lancedb:b({path:u})})},pl=b($i),Mi=Object.freeze(Object.keys($i));function Ft(e){let t=pl(e);return t.ok?{success:!0,data:t.value}:{success:!1,path:t.path.join(".")}}import{AsyncLocalStorage as kl}from"node:async_hooks";import{lstat as Sl,realpath as rs}from"node:fs/promises";import ns from"node:path";import hl from"node:fs/promises";import Re 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]="af606b47-d071-5724-b1e7-de4e1e5d7385")}catch{}})();var De="_workspace";function zt(e){return Re.join(e,"history",`${De}.jsonl`)}function yl(e,t){return{metadata:{id:De,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 $t(e,t=e.length){let r=Et();for(let n of e.slice(0,t))r=St(r,n.patch).document;return kt(r)}function ln(e){return"documents"in e.metadata&&typeof e.metadata.documents=="object"&&e.metadata.documents!==null&&!Array.isArray(e.metadata.documents)?e.metadata.documents:{}}function Mt(e){throw new w(`Workspace history verification failed: ${e.join(", ")}`,E.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 Vi(e,t){let r=Re.resolve(t),n=Re.relative(e,r).replaceAll("\\","/");if(n.length===0||n===".."||n.startsWith("../")||Re.isAbsolute(n))throw new TypeError("Workspace history document path must stay inside the tracker root");return{documentPath:n,absolutePath:r}}async function bm(e){let t=await Ge(zt(e),De),r=Je(t);r.ok||Mt(r.errors);let n=ln(t.length===0?je:$t(t)),o=[],i=[],s=[],a=[];for(let d of Object.keys(n).sort()){let l;try{let _=Vi(e,Re.resolve(e,d));if(l=await be(_.absolutePath),l===null){s.push(d);continue}let f=JSON.parse(l);(A(f)===A(n[d])?o:i).push(d)}catch{a.push(d)}}return{ok:i.length===0&&s.length===0&&a.length===0,document_count:Object.keys(n).length,matching_documents:o,mismatched_documents:i,missing_documents:s,unreadable_documents:a}}async function Ui(e){let t=zt(e.pmRoot),r=await Ge(t,De),n=Je(r);n.ok||Mt(n.errors);let o=e.idempotencyKey===void 0?void 0:r.find(f=>f.op===`${e.op}:${e.idempotencyKey}`);if(o)return{entry:o,historyPath:t};let i=$e(),s=r.length===0?je:$t(r),a=ln(s),d=a[e.documentPath];if(d!==void 0&&A(d)!==A(e.before))throw new w(`Workspace history state for "${e.documentPath}" changed outside the audited mutation path.`,E.CONFLICT,{code:"workspace_history_state_conflict",reason:"out_of_band_workspace_state",required:"Reconcile the singleton document with its matching _workspace history state before retrying the mutation.",why:"Accepting the write would make the append-only audit stream describe a state that was not actually observed.",examples:["pm history _workspace --verify","pm validate --check-history-drift --fix-hints"],nextSteps:["Review the version-control change that altered the singleton and preserve the intended document plus its matching workspace history.","Rerun the original mutation only after the on-disk singleton agrees with the latest audited workspace state."],recovery:{recovery_mode:"compact",next_best_command:"pm history _workspace --verify"}});let l=yl({...a,[e.documentPath]:e.after},r.length===0?i:s.metadata.created_at),_=on({nowIso:i,author:e.author,op:e.idempotencyKey===void 0?e.op:`${e.op}:${e.idempotencyKey}`,before:s,after:l,message:e.message});return await sn(t,_),{entry:_,historyPath:t}}async function wm(e){let t=await $(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await Ui(e)}finally{await t()}}async function Em(e){let t=await $(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{let r=zt(e.pmRoot),n=await Ge(r,De),o=Je(n);o.ok||Mt(o.errors);let i=n.length===0?je:$t(n),s=on({nowIso:$e(),author:e.author,op:e.op,before:i,after:i,message:e.message,context:e.context});return await sn(r,s),{entry:s,historyPath:r}}finally{await t()}}async function Wi(e,t){if(t===e.raw)return!1;let r=t===null?null:JSON.parse(t),n=JSON.parse(e.raw);await Le(e.filePath,e.raw);try{(t!==null||e.recordCreation!==!1)&&await Ui({pmRoot:e.pmRoot,documentPath:Re.relative(e.pmRoot,e.filePath).replaceAll("\\","/"),before:r,after:n,op:e.op,idempotencyKey:e.idempotencyKey,author:e.author,lockTtlSeconds:e.lockTtlSeconds,lockWaitMs:e.lockWaitMs,message:e.message})}catch(o){throw t===null?await hl.rm(e.filePath,{force:!0}):await Le(e.filePath,t),o}return!0}async function qi(e){let{documentPath:t}=Vi(e.pmRoot,e.filePath),r=await $(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{let n=await be(e.filePath);if(e.dryRun===!0||e.idempotencyKey!==void 0){let i=await Ge(zt(e.pmRoot),De),s=Je(i);s.ok||Mt(s.errors);let a=ln(i.length===0?je:$t(i))[t];if(a!==void 0&&A(a)!==A(n===null?null:JSON.parse(n)))throw new w(`Workspace history state for "${t}" changed outside the audited mutation path.`,E.CONFLICT,{code:"workspace_history_state_conflict"});if(e.idempotencyKey!==void 0&&i.some(d=>d.op===`${e.op}:${e.idempotencyKey}`))return{changed:!1,result:void 0,replayed:!0}}let o=await e.mutate(n);return JSON.parse(o.raw),e.dryRun===!0?{changed:n!==o.raw,result:o.result}:{changed:await Wi({...e,raw:o.raw},n),result:o.result}}finally{await r()}}async function km(e){let t=await $(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await Wi(e,await be(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]="a0ca9902-540c-50fe-a4e2-9c234c4a01f3")}catch{}})();function Vt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function un(e,t,r,n=[]){if(z(e,t)&&(n.length>0||Vt(r)))return r;if(z(e,r)||z(t,r))return t;if((e===void 0||Vt(e))&&Vt(t)&&Vt(r)){let o=e??{},i=new Set([...Object.keys(o),...Object.keys(t),...Object.keys(r)]);return Object.fromEntries([...i].flatMap(s=>{let a=un(Object.hasOwn(o,s)?o[s]:void 0,Object.hasOwn(t,s)?t[s]:void 0,Object.hasOwn(r,s)?r[s]:void 0,[...n,s]);return a===void 0?[]:[[s,a]]}))}throw new w(`Settings changed concurrently at ${n.join(".")||"<root>"}; read the latest settings and reapply the intended change.`,E.CONFLICT,{reason:"stale_settings_snapshot",required:"Read a fresh settings snapshot and reapply the intended change.",why:"Another writer changed the same setting after this snapshot was read.",examples:["pm config project export --json"],nextSteps:["Read the current settings, then retry the original config operation."]})}(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]="de43e8e6-d7ef-53cc-94b0-ccdf1c4f94a3")}catch{}})();var gl={Epic:2880,Feature:480,Story:480,Milestone:2880,Task:120,Issue:60,Bug:60,Chore:30,Decision:15,Plan:120},Gi=120;function _n(e){return typeof e=="number"&&Number.isFinite(e)&&e>0}function Ji(e){let t=new Map;for(let[r,n]of Object.entries(e))t.set(r.toLowerCase(),n);return t}var vl=Ji(gl),Bi=new WeakMap;function bl(e){let t=Bi.get(e);if(t)return t;let r=Ji(e);return Bi.set(e,r),r}function xm(e,t){let r=(e??"").trim().toLowerCase();if(r.length===0)return Gi;if(t){let o=bl(t).get(r);if(_n(o))return Math.floor(o)}let n=vl.get(r);return _n(n)?Math.floor(n):Gi}function fn(e){let t={};if(e===null||typeof e!="object"||Array.isArray(e))return t;for(let[r,n]of Object.entries(e)){let o=r.trim();o.length===0||!_n(n)||(t[o]=Math.floor(n))}return t}import{stat as wl}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]="78c79deb-5cf0-54fe-b98c-a0d5b3671ab2")}catch{}})();var Ut=new Map;function Ki(e){return[...new Set(e.map(t=>t.trim()).filter(t=>t.length>0))].sort((t,r)=>t.localeCompare(r))}async function El(e){try{let t=await wl(e);return{path:e,mtime_ms:t.mtimeMs,size:t.size}}catch{return{path:e,mtime_ms:null,size:null}}}async function te(e){let t=Ki(e),r=await Promise.all(t.map(n=>El(n)));return r.sort((n,o)=>n.path.localeCompare(o.path)),r}function Ye(e,t){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r+=1){let n=e[r],o=t[r];if(n.path!==o.path||n.mtime_ms!==o.mtime_ms||n.size!==o.size)return!1}return!0}function Yi(e){return Ut.get(e)}function Wt(e,t){let r=Ki(t.tracked_paths),n=[...t.signatures].map(o=>({path:o.path,mtime_ms:o.mtime_ms,size:o.size})).sort((o,i)=>o.path.localeCompare(i.path));Ut.set(e,{tracked_paths:r,signatures:n,value:t.value})}function ge(e){if(e){Ut.delete(e);return}Ut.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]="6e01cb2d-2ff0-54f2-abdb-2d16f36487c1")}catch{}})();var yn=new kl;async function Xm(e,t,r=()=>!0){let n=new Set([ns.resolve(e)]);try{n.add(await rs(e))}catch{}return yn.run([...yn.getStore()??[],[n,r]],t)}function Il(e){let t=ns.resolve(e);return yn.getStore()?.some(([r,n])=>r.has(t)&&n())??!1}var Ol="settings:write",os=Symbol("pm.settings.persist_source"),is=Symbol("pm.settings.fallback_origin"),ss=Symbol("pm.settings.fallback_baseline"),Tl=128,Al=new Set(["off","advisory","strict"]);function Xi(e){return structuredClone(Mn[e])}function xl(e){return e==="minimal"||e==="default"||e==="strict"||e==="custom"?e:h.governance.preset}var Cl=new Set(zn);function as(e){return Cl.has(e)}function Zi(e,t){let r=typeof t.create_default_type=="string"?t.create_default_type.trim():void 0;return r&&r.length>0&&(e.create_default_type=r),(t.workflow_enforcement==="off"||t.workflow_enforcement==="warn"||t.workflow_enforcement==="strict")&&(e.workflow_enforcement=t.workflow_enforcement),as(t.start_blocker_enforcement)&&(e.start_blocker_enforcement=t.start_blocker_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 Nl(e){return e.preset==="custom"?Zi({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):Zi({preset:e.preset},e)}function Rl(e){let t=typeof e.create_default_type=="string"?e.create_default_type.trim():void 0,r={};t&&t.length>0&&(r.create_default_type=t),(e.workflow_enforcement==="off"||e.workflow_enforcement==="warn"||e.workflow_enforcement==="strict")&&(r.workflow_enforcement=e.workflow_enforcement),as(e.start_blocker_enforcement)&&(r.start_blocker_enforcement=e.start_blocker_enforcement),typeof e.require_close_reason=="boolean"&&(r.require_close_reason=e.require_close_reason),Al.has(String(e.duplicate_detection_mode))&&(r.duplicate_detection_mode=e.duplicate_detection_mode);let n=e.duplicate_detection_threshold;[typeof n=="number",Number.isFinite(n),Number(n)>=0,Number(n)<=1].every(Boolean)&&(r.duplicate_detection_threshold=n);let o=e.duplicate_detection_limit;return[typeof o=="number",Number.isSafeInteger(o),Number(o)>=0,Number(o)<=20].every(Boolean)&&(r.duplicate_detection_limit=o),r}function cs(e){let t=e.governance??{},r=xl(t.preset),n=Rl(t);if(r==="custom"){let s=Xi("default"),a=n.require_close_reason??s.require_close_reason;return{preset:r,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,...n,require_close_reason:a,duplicate_detection_mode:n.duplicate_detection_mode??s.duplicate_detection_mode,duplicate_detection_threshold:n.duplicate_detection_threshold??s.duplicate_detection_threshold,duplicate_detection_limit:n.duplicate_detection_limit??s.duplicate_detection_limit}}let o=Xi(r),i=n.require_close_reason??o.require_close_reason;return{preset:r,...o,...n,require_close_reason:i}}function bn(){return structuredClone(h)}function ds(e){return e==="cache_only"||e==="semantic_configured"||e==="semantic_auto"?e:h.search.mutation_refresh_policy}function ls(e){return e==="auto"||e==="keyword"||e==="semantic"||e==="hybrid"?e:"auto"}function us(e){return typeof e=="boolean"?e:h.search.query_expansion.enabled}function _s(e){return typeof e!="string"?h.search.query_expansion.provider:e.trim()}function fs(e){return typeof e=="boolean"?e:h.search.rerank.enabled}function ms(e){return typeof e!="string"?h.search.rerank.model:e.trim()}function ps(e){return typeof e=="number"&&Number.isFinite(e)&&Number.isInteger(e)&&e>0?e:h.search.rerank.top_k}function hs(e){if(typeof e!="string")return h.vector_store.collection_name;let t=e.trim().replaceAll(/[^a-zA-Z0-9_-]/g,"_").slice(0,Tl);return t.length>0?t:h.vector_store.collection_name}function mn(e){return{present:Array.isArray(e),values:Array.isArray(e)?structuredClone(e):[]}}function ys(e,t){let r=e.schema,n=mn(r?.statuses),o=mn(r?.fields),i=mn(r?.type_workflows);return{persisted_settings:structuredClone(e),source_settings:structuredClone(e),has_source_item_type_definitions:Array.isArray(e.item_types?.definitions),source_item_type_definitions:Pe(e.item_types?.definitions),has_source_schema_statuses:n.present,source_schema_statuses:n.values,has_source_schema_fields:o.present,source_schema_fields:o.values,has_source_schema_type_workflows:i.present,source_schema_type_workflows:i.values,runtime_item_type_definitions:Pe(t.item_types?.definitions),runtime_schema_statuses:structuredClone(t.schema.statuses),runtime_schema_fields:structuredClone(t.schema.fields),runtime_schema_type_workflows:structuredClone(t.schema.type_workflows??[])}}function wn(e,t){Object.defineProperty(e,os,{value:t,writable:!0,configurable:!0,enumerable:!1})}function gs(e){let t=e[os];if(!(!t||typeof t!="object"))return t}function qt(e){let t=structuredClone(e.settings),r=gs(e.settings);r&&wn(t,r);let n=En(e.settings);return n!==void 0&&vs(t,n),{settings:t,metadata:{has_explicit_item_format:e.metadata.has_explicit_item_format},warnings:[...e.warnings]}}function Dl(e,t,r){let n=Fe(t);return[r,ze(e,n.files.types,He.types),ze(e,n.files.statuses,He.statuses),ze(e,n.files.fields,He.fields),ze(e,n.files.workflows,He.workflows)]}async function Pl(e,t,r){let n=await te(t);Wt(e,{tracked_paths:t,signatures:n,value:qt(r)})}async function jl(e,t,r){try{await Pl(e,t,r)}catch{ge(e)}}function Qi(e,t){return e.find(r=>r.path===t)}function Ll(e,t,r){for(let n of r){let o=Qi(e,n),i=Qi(t,n);if(!o||!i||!Ye([o],[i]))return!1}return!0}async function pn(e,t,r,n,o){try{let i=await te(t);if(!Ll(n,i,o)){ge(e);return}Wt(e,{tracked_paths:t,signatures:i,value:qt(r)})}catch{ge(e)}}function Hl(e,t){let r=Fe(e.schema),n=Pe(e.item_types?.definitions);if(!t)return{item_type_definitions:n,schema_statuses:r.statuses,schema_fields:r.fields,schema_type_workflows:r.type_workflows};let o=r.type_workflows??[],i=z(n,t.runtime_item_type_definitions),s=z(r.statuses,t.runtime_schema_statuses),a=z(r.fields,t.runtime_schema_fields),d=z(o,t.runtime_schema_type_workflows);return{item_type_definitions:i?t.has_source_item_type_definitions?Pe(t.source_item_type_definitions):[]:n,schema_statuses:s?t.has_source_schema_statuses?structuredClone(t.source_schema_statuses):[]:r.statuses,schema_fields:a?t.has_source_schema_fields?structuredClone(t.source_schema_fields):[]:r.fields,schema_type_workflows:d?t.has_source_schema_type_workflows?structuredClone(t.source_schema_type_workflows):void 0:r.type_workflows}}function vs(e,t){Object.defineProperty(e,is,{value:t,writable:!0,configurable:!0,enumerable:!1})}function Zm(e){return En(e)!==void 0}function En(e){let t=e[is];return typeof t=="string"?t:void 0}function Fl(e){return e[ss]}function zl(e,t){Object.defineProperty(e,ss,{value:t,writable:!0,configurable:!0,enumerable:!1})}function U(e){let t=bn();return e!==void 0&&vs(t,e),{settings:t,metadata:{has_explicit_item_format:!1},warnings:e?[e]:[]}}function bs(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=e.item_format;return t==="toon"||t==="json_markdown"}function gn(e){return[...new Set((e??[]).map(t=>t.trim()).filter(t=>t.length>0))].sort((t,r)=>t.localeCompare(r))}function ws(e){let t=h.agent_guidance,r=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 r=="number"&&Number.isInteger(r)&&r>0?r:t.template_version,last_checked_files:gn(e?.last_checked_files??t.last_checked_files)}}function F(e){return[...new Set((e??[]).map(t=>t.trim().toLowerCase()).filter(t=>t.length>0))].sort((t,r)=>t.localeCompare(r))}function $l(e){return e==="off"||e==="warn"||e==="enforce"?e:h.extensions.policy.mode}function Ml(e){return e==="off"||e==="warn"||e==="enforce"?e:h.extensions.policy.trust_mode}function Es(e){return e==="none"||e==="restricted"||e==="strict"?e:h.extensions.policy.default_sandbox_profile}function Vl(e){let t=e.name.trim().toLowerCase();if(t.length===0)return null;let r={name:t};e.disabled===!0&&(r.disabled=!0),e.require_trusted===!0&&(r.require_trusted=!0),e.require_provenance===!0&&(r.require_provenance=!0),e.sandbox_profile!==void 0&&(r.sandbox_profile=Es(e.sandbox_profile));let n=F(e.allowed_capabilities),o=F(e.blocked_capabilities),i=F(e.allowed_surfaces),s=F(e.blocked_surfaces),a=F(e.allowed_commands),d=F(e.blocked_commands),l=F(e.allowed_actions),_=F(e.blocked_actions),f=F(e.allowed_services),g=F(e.blocked_services);return n.length>0&&(r.allowed_capabilities=n),o.length>0&&(r.blocked_capabilities=o),i.length>0&&(r.allowed_surfaces=i),s.length>0&&(r.blocked_surfaces=s),a.length>0&&(r.allowed_commands=a),d.length>0&&(r.blocked_commands=d),l.length>0&&(r.allowed_actions=l),_.length>0&&(r.blocked_actions=_),f.length>0&&(r.allowed_services=f),g.length>0&&(r.blocked_services=g),r}function Ul(e){let t=new Map;for(let r of e??[]){let n=Vl(r);n&&t.set(n.name,n)}return[...t.values()].sort((r,n)=>r.name.localeCompare(n.name))}function hn(e){return e==="block"||e==="warn"?e:void 0}function Wl(e){if(typeof e=="string")return hn(e);if(typeof e=="object"&&e!==null&&!Array.isArray(e)){let t=hn(e.global),r=hn(e.project);return t===void 0&&r===void 0?void 0:{...t!==void 0?{global:t}:{},...r!==void 0?{project:r}:{}}}}function P(e,t){return F(e?.[t]??h.extensions.policy[t])}function ks(e){let t=Wl(e?.pm_max_version_exceeded_mode);return{mode:$l(e?.mode),trust_mode:Ml(e?.trust_mode),...t!==void 0?{pm_max_version_exceeded_mode:t}:{},require_provenance:e?.require_provenance===!0,trusted_extensions:P(e,"trusted_extensions"),default_sandbox_profile:Es(e?.default_sandbox_profile),allowed_extensions:P(e,"allowed_extensions"),blocked_extensions:P(e,"blocked_extensions"),allowed_capabilities:P(e,"allowed_capabilities"),blocked_capabilities:P(e,"blocked_capabilities"),allowed_surfaces:P(e,"allowed_surfaces"),blocked_surfaces:P(e,"blocked_surfaces"),allowed_commands:P(e,"allowed_commands"),blocked_commands:P(e,"blocked_commands"),allowed_actions:P(e,"allowed_actions"),blocked_actions:P(e,"blocked_actions"),allowed_services:P(e,"allowed_services"),blocked_services:P(e,"blocked_services"),extension_overrides:Ul(e?.extension_overrides??h.extensions.policy.extension_overrides)}}function Ss(e){return[...new Set((e??[]).map(t=>t.trim().toLowerCase().replaceAll("-","_")))].filter(t=>t.length>0).sort((t,r)=>t.localeCompare(r)).filter(t=>["author","acceptance_criteria","estimated_minutes","close_reason","reviewer","risk","confidence","sprint","release"].includes(t))}function re(e){return[...new Set((e??[]).map(t=>t.trim().toLowerCase()).filter(t=>t.length>0))].sort((t,r)=>t.localeCompare(r))}function R(e,t){return e===void 0?t:e}function j(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:{}}function vn(e){return Array.isArray(e)?e:[]}function ql(e,t,r){return{...t.validation,...e.validation,parent_reference:r.parent_reference,metadata_profile:r.metadata_profile,metadata_required_fields:Ss(e.validation?.metadata_required_fields),lifecycle_stale_blocker_reason_patterns:re(e.validation?.lifecycle_stale_blocker_reason_patterns??t.validation.lifecycle_stale_blocker_reason_patterns),lifecycle_closure_like_blocked_reason_patterns:re(e.validation?.lifecycle_closure_like_blocked_reason_patterns??t.validation.lifecycle_closure_like_blocked_reason_patterns),lifecycle_closure_like_resolution_patterns:re(e.validation?.lifecycle_closure_like_resolution_patterns??t.validation.lifecycle_closure_like_resolution_patterns),lifecycle_closure_like_actual_result_patterns:re(e.validation?.lifecycle_closure_like_actual_result_patterns??t.validation.lifecycle_closure_like_actual_result_patterns),estimate_defaults_by_type:fn(e.validation?.estimate_defaults_by_type)}}function Gl(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 Bl(e,t){return{...t.search,...e.search,default_mode:ls(e.search?.default_mode),mutation_refresh_policy:ds(e.search?.mutation_refresh_policy),query_expansion:{...t.search.query_expansion,...e.search?.query_expansion,enabled:us(e.search?.query_expansion?.enabled),provider:_s(e.search?.query_expansion?.provider)},rerank:{...t.search.rerank,...e.search?.rerank,enabled:fs(e.search?.rerank?.enabled),model:ms(e.search?.rerank?.model),top_k:ps(e.search?.rerank?.top_k)}}}function Jl(e,t){return{adapter:e.vector_store.adapter??t.vector_store.adapter,collection_name:hs(e.vector_store.collection_name),qdrant:{...t.vector_store.qdrant,...e.vector_store.qdrant},lancedb:{...t.vector_store.lancedb,...e.vector_store.lancedb}}}function Kl(e,t){return e.item_format==="json_markdown"?"toon":e.item_format??t.item_format}function Yl(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,next_ranking_policy:e.context?.next_ranking_policy??t.context.next_ranking_policy,sections:{...t.context.sections,...e.context?.sections}}}function Xl(e,t){return{openai:{...t.providers.openai,...e.providers.openai},ollama:{...t.providers.ollama,...e.providers.ollama}}}function Pe(e){let t=(e??[]).map(n=>Gn(n)).filter(n=>n!==null),r=new Map;for(let n of t)r.set(n.name.toLowerCase(),n);return[...r.values()].sort((n,o)=>n.name.localeCompare(o.name))}function Gt(e){let t=bn(),r=cs({governance:e.governance??{preset:"default"}});return{...t,...e,item_format:Kl(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},ux:{...t.ux,...e.ux},history:{...t.history,...e.history,compact_policy:{...t.history.compact_policy,...e.history?.compact_policy}},validation:ql(e,t,r),governance:r,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,allow_untrusted_linked_tests:e.testing?.allow_untrusted_linked_tests??t.testing.allow_untrusted_linked_tests},telemetry:Gl(e,t),agent_guidance:ws(e.agent_guidance??t.agent_guidance),item_types:{definitions:Pe(e.item_types?.definitions)},schema:Fe(e.schema??t.schema),context:Yl(e,t),extensions:{enabled:[...e.extensions.enabled],disabled:[...e.extensions.disabled],policy:ks(e.extensions.policy??t.extensions.policy)},search:Bl(e,t),providers:Xl(e,t),vector_store:Jl(e,t)}}function Zl(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(j(t.identity_vocabulary),["version","aliases"])),e.agent_identity.harness_signals=vn(e.agent_identity.harness_signals).map(r=>v(j(r),["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.ux=v(e.ux,["deprecation_hints"]),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","allow_untrusted_linked_tests"]),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(j(e.schema.files),["types","statuses","fields","workflows"]),e.schema.workflow=v(j(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","next_ranking_policy","sections"]),e.context.sections=v(j(e.context.sections),["hierarchy","activity","progress","blockers","files","workload","staleness","tests"]),e.extensions=v(e.extensions,["enabled","disabled","policy"]),e.extensions.policy=v(j(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=vn(e.extensions.policy.extension_overrides).map(r=>v(j(r),["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","default_mode","mutation_refresh_policy","query_expansion","rerank"]),e.search.query_expansion=v(j(e.search.query_expansion),["enabled","provider"]),e.search.rerank=v(j(e.search.rerank),["enabled","model","top_k"]),e.providers=v(e.providers,["openai","ollama"]),e.providers.openai=v(j(e.providers.openai),["base_url","api_key","model"]),e.providers.ollama=v(j(e.providers.ollama),["base_url","model"]),e.vector_store=v(e.vector_store,["adapter","collection_name","qdrant","lancedb"]),e.vector_store.qdrant=v(j(e.vector_store.qdrant),["url","api_key"]),e.vector_store.lancedb=v(j(e.vector_store.lancedb),["path"])}function Ql(e){return{...e,locks:R(e.locks,h.locks),ids:R(e.ids,h.ids),agent_identity:R(e.agent_identity,h.agent_identity),mutation_guard:R(e.mutation_guard,h.mutation_guard),checkpoints:R(e.checkpoints,h.checkpoints),output:R(e.output,h.output),ux:R(e.ux,h.ux),history:R(e.history,h.history),validation:R(e.validation,h.validation),workflow:R(e.workflow,h.workflow),testing:R(e.testing,h.testing),telemetry:R(e.telemetry,h.telemetry),agent_guidance:R(e.agent_guidance,h.agent_guidance),item_types:R(e.item_types,h.item_types),schema:R(e.schema,h.schema),context:R(e.context,h.context),extensions:R(e.extensions,h.extensions),search:R(e.search,h.search),providers:R(e.providers,h.providers),vector_store:R(e.vector_store,h.vector_store)}}function eu(e,t){return{...e.validation,parent_reference:t.parent_reference,metadata_profile:t.metadata_profile,metadata_required_fields:Ss(e.validation?.metadata_required_fields),lifecycle_stale_blocker_reason_patterns:re(e.validation?.lifecycle_stale_blocker_reason_patterns??h.validation.lifecycle_stale_blocker_reason_patterns),lifecycle_closure_like_blocked_reason_patterns:re(e.validation?.lifecycle_closure_like_blocked_reason_patterns??h.validation.lifecycle_closure_like_blocked_reason_patterns),lifecycle_closure_like_resolution_patterns:re(e.validation?.lifecycle_closure_like_resolution_patterns??h.validation.lifecycle_closure_like_resolution_patterns),lifecycle_closure_like_actual_result_patterns:re(e.validation?.lifecycle_closure_like_actual_result_patterns??h.validation.lifecycle_closure_like_actual_result_patterns),estimate_defaults_by_type:fn(e.validation?.estimate_defaults_by_type)}}function tu(e){return{...h.search,...e.search,default_mode:ls(e.search?.default_mode),mutation_refresh_policy:ds(e.search?.mutation_refresh_policy),query_expansion:{...h.search.query_expansion,...e.search?.query_expansion,enabled:us(e.search?.query_expansion?.enabled),provider:_s(e.search?.query_expansion?.provider)},rerank:{...h.search.rerank,...e.search?.rerank,enabled:fs(e.search?.rerank?.enabled),model:ms(e.search?.rerank?.model),top_k:ps(e.search?.rerank?.top_k)}}}function ru(e){return{default_depth:e.context?.default_depth??h.context.default_depth,activity_limit:e.context?.activity_limit??h.context.activity_limit,stale_threshold_days:e.context?.stale_threshold_days??h.context.stale_threshold_days,next_ranking_policy:e.context?.next_ranking_policy??h.context.next_ranking_policy,sections:{...h.context.sections,...e.context?.sections}}}function nu(e){return{...e.vector_store,adapter:e.vector_store?.adapter??h.vector_store.adapter,collection_name:hs(e.vector_store?.collection_name),qdrant:{...e.vector_store?.qdrant},lancedb:{...e.vector_store?.lancedb}}}function ou(e,t,r,n){return{...e,item_format:"toon",validation:eu(e,t),governance:t,agent_guidance:ws(e.agent_guidance),item_types:{definitions:n.item_type_definitions},schema:{...r,statuses:n.schema_statuses,fields:n.schema_fields,type_workflows:n.schema_type_workflows},search:tu(e),context:ru(e),extensions:{enabled:gn(e.extensions?.enabled),disabled:gn(e.extensions?.disabled),policy:ks(e.extensions?.policy)},vector_store:nu(e)}}function Is(e,t){for(let r of Object.keys(t)){let n=Reflect.get(t,r),o=e[r];typeof n=="object"&&n!==null&&!Array.isArray(n)&&typeof o=="object"&&o!==null&&!Array.isArray(o)?Is(o,n):e[r]=structuredClone(n)}}function kn(e,t,r){let n=new Set([...Object.keys(t),...Object.keys(r)]);for(let o of n){let i=t[o],s=r[o];if(!z(i,s)){if(s===void 0){delete e[o];continue}if(typeof i=="object"&&i!==null&&!Array.isArray(i)&&typeof s=="object"&&s!==null&&!Array.isArray(s)){let a=e[o],d=typeof a=="object"&&a!==null&&!Array.isArray(a)?a:{};kn(d,i,s),Object.keys(d).length>0?e[o]=d:delete e[o];continue}e[o]=structuredClone(s)}}}var Bt=["version","id_prefix","ids","author_default","agent_identity","mutation_guard","item_format","locks","checkpoints","output","ux","history","validation","governance","workflow","testing","telemetry","agent_guidance","item_types","schema","context","extensions","search","providers","vector_store"];function es(e,t){let r=Ql(e),n=cs(r),o=Fe(r.schema),i=Hl(r,t),s=ou(r,n,o,i),a=v({...s,governance:Nl(n)},Bt);return Zl(a),a}function Os(e,t={}){let r=t.source===void 0?t.persist_source:ys(t.source.validated,Gt(t.source.validated)),n=es(e,r);if(r){let o=Gt(r.source_settings);o.item_types={definitions:structuredClone(r.runtime_item_type_definitions)},o.schema={...o.schema,statuses:structuredClone(r.runtime_schema_statuses),fields:structuredClone(r.runtime_schema_fields),type_workflows:structuredClone(r.runtime_schema_type_workflows)};let i=es(o,r);t.source!==void 0&&Is(i,t.source.validated);let s=structuredClone(t.source===void 0?r.source_settings:t.source.raw);return kn(s,i,n),`${JSON.stringify(v(s,Bt),null,2)}
75
+ `}return`${JSON.stringify(n,null,2)}
76
+ `}async function iu(e){let t;try{t=await rs(e)}catch(a){if(W(a))return U();throw a}let r=we(t),n;try{n=await Sl(r)}catch(a){if(W(a))return U();throw a}if(!n.isFile())throw tr("settings.json");let o;try{o=await Un(r,tr("settings.json"))}catch(a){if(W(a))return U();throw a}let i;try{i=JSON.parse(o)}catch{return U("settings_read_invalid_json")}let s=Ft(i);return s.success?{settings:Gt(s.data),metadata:{has_explicit_item_format:bs(i)},warnings:s.data.item_format==="json_markdown"?["settings_item_format_legacy_json_markdown_coerced_to_toon"]:[]}:U("settings_read_invalid_schema")}async function Ts(e){if(Il(e))return iu(e);let t=we(e),r=[t];await it({path:t,scope:"project"});let n=Yi(e);if(n){let l=await te(n.tracked_paths);if(Ye(l,n.signatures))return qt(n.value)}let o=await te([t]),i;try{i=await be(t)}catch{return U("settings_read_fs_error")}if(i===null){let l=U();return await pn(e,[t],l,o,[t]),l}let s=await te([t]);if(!Ye(o,s))return ge(e),Ts(e);let a;try{a=JSON.parse(i)}catch{let l=U("settings_read_invalid_json");return await pn(e,[t],l,s,[t]),l}let d=Ft(a);if(!d.success){let l=U("settings_read_invalid_schema");return await pn(e,[t],l,s,[t]),l}try{let l=Gt(d.data),_=Dl(e,l.schema,t);r=_;let f=await te(_),g=await Jn(e,l.schema),O=await te(_),I={...l,item_types:{definitions:Pe([...l.item_types.definitions,...vn(g.type_definitions_from_file)])},schema:g.schema};wn(I,ys(d.data,I));let H={settings:I,metadata:{has_explicit_item_format:bs(a)},warnings:[...d.data.item_format==="json_markdown"?["settings_item_format_legacy_json_markdown_coerced_to_toon"]:[],...g.warnings]};return Ye(f,O)?Wt(e,{tracked_paths:_,signatures:O,value:qt(H)}):ge(e),H}catch{let l=U("settings_read_merge_failed");return await jl(e,r,l),l}}function su(e,t=[],r=null){let n=Sn(r)??{},o=t.filter(s=>!Object.hasOwn(n,s));if(o.length===0)return e;let i=JSON.parse(e);for(let s of o)Reflect.deleteProperty(i,s);return`${JSON.stringify(i,null,2)}
77
+ `}var au=/^[A-Za-z0-9_-]+$/u,cu=new Set(["__proto__","constructor","prototype"]);function Sn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:void 0}function du(e){for(let t of e)if(t.split(".").find(r=>!au.test(r)||cu.has(r))!==void 0)throw new w(`Settings write assignedPaths entry "${t}" is not a dotted settings path.`,E.USAGE,{code:"settings_write_assigned_path_invalid",reason:"assigned_path_segment_invalid",field:t,why:"Assigned paths name settings keys; an empty, reserved or non-identifier segment cannot address one safely.",nextSteps:["Pass dotted settings keys such as context.next_ranking_policy in assignedPaths."]})}function As(e,t){return Sn(Object.hasOwn(e,t)?e[t]:void 0)}function ts(e,t){let r=e;for(let n of t)if(r=As(r,n),r===void 0)return;return r}function lu(e,t){let r=e;for(let n of t){let o=As(r,n);o===void 0&&(o={},r[n]=o),r=o}return r}function uu(e,t,r){for(let n of r){let o=n.split("."),i=o.pop(),s=ts(t,o);if(s===void 0)continue;if(Object.hasOwn(s,i)){lu(e,o)[i]=structuredClone(s[i]);continue}if(!Mi.includes(o[0]??i))continue;let a=ts(e,o);a!==void 0&&delete a[i]}}function _u(e,t,r,n,o){let i=o??JSON.parse(Os(bn())),s=structuredClone(Sn(e)??{});kn(s,i,t),uu(s,t,n);let a=Ft(s);if(!a.success){let d=a.path;throw new w(`Existing settings.json fails validation at ${d}; the settings write was refused and nothing was changed.`,E.USAGE,{code:"settings_write_invalid_existing_schema",reason:"existing_settings_schema_invalid",field:d,original_code:r,why:"The stored settings could not be read, so writing would either keep an invalid document or replace intended project configuration with defaults.",nextSteps:[`Fix or remove ${d} in settings.json, then retry the original command.`,"A configurable setting can also be repaired explicitly, even to its default value, with pm config <scope> set <dotted.key> <value>.","Run pm health to confirm the settings warning has cleared."]})}return`${JSON.stringify(v(s,Bt),null,2)}
78
+ `}function fu(e){try{return JSON.parse(e)}catch{throw new w("Existing settings.json is malformed; the settings write was refused.",E.USAGE,{code:"settings_write_invalid_existing_json",reason:"existing_settings_json_malformed",why:"Writing defaults over malformed settings could destroy intended project configuration.",nextSteps:["Repair the syntax in .agents/pm/settings.json, then retry the original command.","Run pm health to confirm the settings warning has cleared."]})}}async function Qm(e){return(await Ts(e)).settings}async function ep(e,t,r=Ol,n={}){let o=n.assignedPaths??[];du(o);let i=we(e),s=gs(t),a=s?void 0:En(t),d=Os(t,{persist_source:s}),l=JSON.parse(d),_=!1;try{if(await qi({pmRoot:e,filePath:i,mutate:f=>{let g=f===null?null:fu(f);return f!==null&&n.skipIfStored?.(g)===!0?(_=!0,{raw:f,result:void 0}):a!==void 0&&f!==null?{raw:_u(g,l,a,o,Fl(t)),result:void 0}:{raw:s?`${JSON.stringify(v(un(s.persisted_settings,l,g),Bt),null,2)}
79
+ `:su(d,n.omitSections,g),result:void 0}},op:r,author:Yo(void 0,t.author_default),lockTtlSeconds:t.locks.ttl_seconds,lockWaitMs:t.locks.wait_ms,recordCreation:!1}),_)return;s?wn(t,{...s,persisted_settings:structuredClone(l)}):a!==void 0&&zl(t,structuredClone(l)),await Qn({path:i,scope:"project",op:r})}finally{ge(e)}}import xs from"node:fs";import Xe from"node:path";import{createRequire as mu}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]="2b3d7667-1c63-565a-b314-3a74cc8d6b7d")}catch{}})();var Cs="@unbrained/pm-cli";var On=/\b(\d{4})\.(\d{1,2})\.(\d{1,2})(?:-(\d+))?\b/u,Tn="2026.8.31";function Jt(e){let t=e.match(On);return t?[Number(t[1]),Number(t[2]),Number(t[3]),Number(t[4]??0)]:null}function Yt(e,t){let r=Jt(e),n=Jt(t);if(!r||!n)return null;for(let o=0;o<r.length;o+=1){let i=r[o]-n[o];if(i!==0)return Math.sign(i)}return 0}function In(e){return Yt(e,Tn)!==-1?3:2}function Kt(e){try{let t=JSON.parse(xs.readFileSync(e,"utf8"));return typeof t=="object"&&t!==null&&!Array.isArray(t)?t:null}catch{return null}}function pu(e){let t=[...e.matchAll(/(<=|<)\s*v?(\d{4}\.\d{1,2}\.\d{1,2}(?:-\d+)?)/gu)].map(n=>({inclusive:n[1]==="<=",version:n[2]})),r=e.match(/\b\d{4}\.\d{1,2}\.\d{1,2}(?:-\d+)?\s+-\s+v?(\d{4}\.\d{1,2}\.\d{1,2}(?:-\d+)?)/u);return r?[...t,{inclusive:!0,version:r[1]}]:t}function hu(e){let t=e.split("||").map(r=>pu(r));return{bounded:t.some(r=>r.length>0),compatible:t.some(r=>r.every(n=>{let o=Yt(Tn,n.version);return o!==null&&(n.inclusive?o!==1:o===-1)}))}}function Ns(e){return["dependencies","devDependencies","optionalDependencies","peerDependencies"].flatMap(t=>{let r=e[t];if(typeof r!="object"||r===null)return[];let n=r[Cs];return typeof n=="string"?[n.trim()]:[]})}function yu(e){return Ns(e).flatMap(t=>{let r=/^[<!]/u.test(t)?void 0:t.match(On)?.[0];if(!r)return[];let n=/^(?:=|v)?\d{4}\.\d{1,2}\.\d{1,2}(?:-\d+)?$/u.test(t),o=hu(t);return[{version:r,constraint:n?"exact":o.bounded?"range":"minimum",...n?{}:{declaration:t},history_epoch_compatible:n?Yt(r,Tn)!==-1:o.compatible}]})}function gu(e){let t=Kt(Xe.join(e,"package-lock.json"))?.packages;if(typeof t!="object"||t===null)return;let r=t["node_modules/@unbrained/pm-cli"];if(typeof r!="object"||r===null)return;let n=r.version;return typeof n=="string"?n:void 0}function vu(e,t){try{let r=xs.readFileSync(Xe.join(e,t),"utf8").split(/\r?\n/u),n=r.findIndex(s=>s.includes(Cs));if(n<0)return;let o=r[n].match(/^\s*/u)[0].length,i=[r[n]];for(let s=n+1;s<r.length;s+=1){let a=r[s],d=a.trim(),l=a.match(/^\s*/u)[0].length;if(d.length>0&&l<=o)break;i.push(a)}return i.join(`
80
+ `).match(/^\s*version(?::\s*|\s+)["']?(\d{4}\.\d{1,2}\.\d{1,2}(?:-\d+)?)/mu)?.[1]??i[0].match(On)?.[0]}catch{return}}function bu(e){let t=[],r=Kt(Xe.join(e,"package.json"));r&&t.push(...yu(r).map(i=>({...i,source:"package.json"})));let n=Kt(Xe.join(e,"node_modules","@unbrained","pm-cli","package.json"))?.version;typeof n=="string"&&Jt(n)&&t.push({version:n,source:"installed-package",constraint:"exact",history_epoch_compatible:In(n)===3});let o=gu(e);o&&Jt(o)&&t.push({version:o,source:"package-lock.json",constraint:"exact",history_epoch_compatible:In(o)===3});for(let i of["pnpm-lock.yaml","yarn.lock"]){let s=vu(e,i);s&&t.push({version:s,source:i,constraint:"exact",history_epoch_compatible:In(s)===3})}return t}function ap(e,t){if(t<=1)return;let{minVersion:r,lt:n}=mu(import.meta.url)("semver"),o=Ns(Kt(Xe.join(e,"package.json"))??{}).find(s=>{try{let a=r(s);return a!==null&&n(a,"2026.10.10")}catch{return!1}}),i=o===void 0?bu(e).find(s=>Yt(s.version,"2026.10.10")===-1):{version:o,source:"package.json"};if(i)throw new w(`The project selects pm ${i.version}, which cannot safely refuse item format ${t}.`,E.CONFLICT,{code:"project_runtime_item_format_incompatible",reason:i.source,required:"Upgrade project pins, installed SDKs, CI hosts and Git merge drivers before writing guarded item formats.",nextSteps:["Use a pm runtime supporting the required item format throughout the project; preserve original item and history bytes, and never re-anchor history to satisfy an older host."]})}import xn from"node:fs/promises";import Xt 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]="658ab1c3-da92-5af6-a170-85ed7befaad6")}catch{}})();function ne(e,t){return typeof e=="object"&&e!==null&&"code"in e&&e.code===t}function Rs(e){let t=["--pm-path",e,"init","--defaults","--agent-guidance","skip"];return{suggested_retry:to(t),suggested_retry_args:t}}function Zt(e){return new w(`Tracker root is not a directory at ${e}.`,E.USAGE,{code:"tracker_root_not_directory",reason:"not_a_directory",resolved_path:e,nextSteps:["Pass a tracker directory, usually <workspace>/.agents/pm, rather than a file path."]})}function An(e){return new w(`Tracker root is not readable at ${e}.`,E.GENERIC_FAILURE,{code:"tracker_root_unreadable",reason:"unreadable",resolved_path:e,nextSteps:["Grant read and directory-search permission to the tracker root, then retry."]})}async function wu(e){let t=Xt.resolve(e),r=Xt.parse(t).root,n=Xt.dirname(t);for(;n!==r;){let o;try{o=await xn.stat(n)}catch(i){if(ne(i,"ENOTDIR"))throw Zt(e);if(!ne(i,"ENOENT"))throw i;n=Xt.dirname(n);continue}if(!o.isDirectory())throw Zt(e);return}}async function Eu(e){let t;try{t=await xn.stat(e)}catch(r){throw ne(r,"ENOENT")?(await wu(e),new w(`Tracker is not initialized at ${e}. Tracker root does not exist. Run pm init first.`,E.NOT_FOUND,{code:"tracker_root_missing",reason:"missing",resolved_path:e,nextSteps:["Confirm the tracker root path or initialize it with the emitted retry."],recovery:Rs(e)})):ne(r,"ENOTDIR")?Zt(e):ne(r,"EACCES")||ne(r,"EPERM")?An(e):r}if(!t.isDirectory())throw Zt(e);if(process.platform!=="win32"&&((t.mode&292)===0||(t.mode&73)===0))throw An(e);try{await(await xn.opendir(e)).close()}catch(r){throw ne(r,"EACCES")||ne(r,"EPERM")?An(e):r}}async function hp(e){if(await Eu(e),!await Vn(we(e)))throw new w(`Tracker is not initialized at ${e}. Run pm init first.`,E.NOT_FOUND,{code:"tracker_not_initialized",reason:"settings_missing",resolved_path:e,nextSteps:["Initialize the selected tracker root with the emitted retry."],recovery:Rs(e)})}export{Su as a,Ls as b,so as c,se as d,K as e,Xo as f,Nu as g,Fs as h,Ru as i,mo as j,po as k,Me as l,Du as m,Pu as n,nr as o,or as p,Lu as q,ir as r,yo as s,Gs as t,Hu as u,lt as v,Js as w,Mu as x,ut as y,$a as z,mt as A,s_ as B,a_ as C,Oe as D,ce as E,vr as F,l_ as G,u_ as H,Er as I,Po as J,Sr as K,b_ as L,w_ as M,E_ as N,k_ as O,S_ as P,I_ as Q,Dr as R,Pr as S,Vo as T,j_ as U,L_ as V,H_ as W,F_ as X,z_ as Y,$_ as Z,Fr as _,Bo as $,M_ as aa,V_ as ba,U_ as ca,Wc as da,W_ as ea,Yo as fa,bt as ga,Ge as ha,xe as ia,ai as ja,Od as ka,Nd as la,Rf as ma,Df as na,zd as oa,Pt as pa,_e as qa,Be as ra,nm as sa,nn as ta,wt as ua,ei as va,om as wa,ti as xa,im as ya,on as za,sn as Aa,Bc as Ba,Et as Ca,lf as Da,zr as Ea,kt as Fa,uf as Ga,_f as Ha,ni as Ia,St as Ja,It as Ka,Je as La,rd as Ma,ff as Na,mf as Oa,De as Pa,zt as Qa,bm as Ra,wm as Sa,Em as Ta,qi as Ua,km as Va,Mi as Wa,Ft as Xa,xm as Ya,ge as Za,Xm as _a,Il as $a,cs as ab,Zm as bb,Gt as cb,Os as db,Ts as eb,Qm as fb,ep as gb,bu as hb,ap as ib,Eu as jb,hp as kb};
81
+ //# sourceMappingURL=chunk-YMGB2O4E.js.map
@@ -0,0 +1,2 @@
1
+ import{a as e,b as f,c as g,d as h,e as i,f as j,g as k,h as l,i as m,j as n,k as o,l as p,m as q,n as r,o as s,p as t,q as u,r as v,s as w}from"./chunk-SNOXXRSJ.js";import"./chunk-E56OXRYH.js";import"./chunk-GS3JC5UU.js";import"./chunk-D2TBEBNW.js";import"./chunk-7KK66ISG.js";import"./chunk-GHQVM6K6.js";import{u as a,v as b,w as c,x as d}from"./chunk-O7EI33NP.js";import"./chunk-YMGB2O4E.js";import"./chunk-RFTJZ5VB.js";import"./chunk-VWWTIX5L.js";import"./chunk-4PW5XWVI.js";import"./chunk-C3O6JJPO.js";import"./chunk-M6V7UMWL.js";import"./chunk-G6ERMFJ5.js";export{f as ITEM_REVISION_CONFLICT_CHANGE_LIMIT,e as ITEM_REVISION_CONFLICT_CODE,u as assertExpectHashAdmissible,s as bindExpectedItemRevisions,c as bindItemRevisionScope,a as createItemRevisionScope,k as describeItemRevisionChanges,w as dispatchWithExpectedItemRevisions,p as enrichItemRevisionConflict,o as expectHashInvocationRewrittenError,v as expectHashRequiresMutationError,m as isItemRevisionConflict,l as itemRevisionConflictRowFields,d as itemRevisionScopeReceipt,t as itemRevisionUncheckedWarning,g as normalizeExpectedItemHash,h as parseExpectHashSpecs,i as readItemRevision,j as resolveExpectedItemRevisions,q as runWithBoundItemRevisionScope,b as runWithItemRevisionScope,n as throwFirstItemRevisionConflict,r as withExpectedItemRevisions};
2
+ //# sourceMappingURL=item-revision-CTDO4H3I.js.map