@unbrained/pm-cli 2026.10.14 → 2026.10.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (753) hide show
  1. package/.agents/skills/pm-developer/references/COMMAND_PLAYBOOK.md +1 -1
  2. package/.claude-plugin/marketplace.json +1 -1
  3. package/AGENTS.md +1 -0
  4. package/CHANGELOG.md +74 -2
  5. package/dist/cli/after-command-context-usage.d.ts +7 -7
  6. package/dist/cli/argv-utils.d.ts +4 -4
  7. package/dist/cli/bundle-integrity.d.ts +16 -16
  8. package/dist/cli/command-namespaces.d.ts +1 -1
  9. package/dist/cli/commander-usage.d.ts +34 -34
  10. package/dist/cli/commands/governance/validate.d.ts +1 -1
  11. package/dist/cli/commands/history/history-compact.d.ts +1 -1
  12. package/dist/cli/commands/history/history-redact.d.ts +1 -1
  13. package/dist/cli/commands/history/history-repair.d.ts +1 -1
  14. package/dist/cli/commands/history/restore.d.ts +1 -1
  15. package/dist/cli/commands/lifecycle/close.d.ts +1 -1
  16. package/dist/cli/commands/lifecycle/copy.d.ts +1 -1
  17. package/dist/cli/commands/lifecycle/delete.d.ts +1 -1
  18. package/dist/cli/commands/lifecycle/focus.d.ts +1 -1
  19. package/dist/cli/commands/query/get.d.ts +1 -1
  20. package/dist/cli/commands/workspace/merge.d.ts +1 -1
  21. package/dist/cli/commands/workspace/schema.d.ts +1 -1
  22. package/dist/cli/context-intent-invocation.d.ts +1 -1
  23. package/dist/cli/description-stdin.d.ts +1 -1
  24. package/dist/cli/error-guidance.d.ts +119 -119
  25. package/dist/cli/extension-command-help.d.ts +64 -64
  26. package/dist/cli/extension-command-help.js +2 -2
  27. package/dist/cli/extension-command-options.d.ts +18 -16
  28. package/dist/cli/extension-command-options.js +1 -1
  29. package/dist/cli/extension-recovery.d.ts +13 -13
  30. package/dist/cli/help-content.d.ts +22 -22
  31. package/dist/cli/help-content.js +3 -3
  32. package/dist/cli/help-json-payload.d.ts +45 -45
  33. package/dist/cli/invocation-profile.d.ts +5 -5
  34. package/dist/cli/main.d.ts +217 -217
  35. package/dist/cli/migration-gates.d.ts +24 -24
  36. package/dist/cli/option-values.d.ts +1 -1
  37. package/dist/cli/public.d.ts +1 -1
  38. package/dist/cli/register-annotations.d.ts +2 -2
  39. package/dist/cli/register-assurance.d.ts +1 -1
  40. package/dist/cli/register-files-lookup.d.ts +1 -1
  41. package/dist/cli/register-history-activity.d.ts +1 -1
  42. package/dist/cli/register-history-author.d.ts +1 -1
  43. package/dist/cli/register-history-maintenance.d.ts +1 -1
  44. package/dist/cli/register-list-query.d.ts +7 -7
  45. package/dist/cli/register-list-query.js +3 -3
  46. package/dist/cli/register-mutation-options.d.ts +1 -1
  47. package/dist/cli/register-mutation.d.ts +4 -4
  48. package/dist/cli/register-mutation.js +2 -2
  49. package/dist/cli/register-operations.d.ts +75 -75
  50. package/dist/cli/register-operations.js +1 -1
  51. package/dist/cli/register-setup.d.ts +4 -4
  52. package/dist/cli/register-structured-mutation.d.ts +8 -13
  53. package/dist/cli/register-structured-mutation.js +1 -1
  54. package/dist/cli/runtime/activation.d.ts +23 -23
  55. package/dist/cli/runtime/invocation-options.d.ts +12 -12
  56. package/dist/cli/runtime/invocation-options.js +1 -1
  57. package/dist/cli/runtime/projection-retry.d.ts +1 -1
  58. package/dist/cli/runtime/selection.d.ts +16 -16
  59. package/dist/cli/runtime/telemetry-outcome.d.ts +11 -11
  60. package/dist/cli/runtime-compatibility-boundary.d.ts +7 -7
  61. package/dist/cli/schema/registration.d.ts +1 -1
  62. package/dist/cli/schema-registration-helpers.d.ts +2 -2
  63. package/dist/cli/stats-analytics-json.d.ts +1 -1
  64. package/dist/cli-bundle/bundle-manifest.json +1 -1
  65. package/dist/cli-bundle/chunks/{chunk-LKESCZEN.js → chunk-3QKI3XNX.js} +2 -2
  66. package/dist/cli-bundle/chunks/chunk-4PNPDT2N.js +236 -0
  67. package/dist/cli-bundle/chunks/{chunk-JTF6VMXH.js → chunk-6ZDKKOKM.js} +28 -28
  68. package/dist/cli-bundle/chunks/{chunk-MAT4AP7P.js → chunk-B5QVGCZX.js} +2 -2
  69. package/dist/cli-bundle/chunks/{chunk-5LU6PWA4.js → chunk-EA2CG7UM.js} +2 -2
  70. package/dist/cli-bundle/chunks/chunk-HY7FQ7QX.js +2 -0
  71. package/dist/cli-bundle/chunks/{chunk-3S5SEMEB.js → chunk-J4LPQCET.js} +2 -2
  72. package/dist/cli-bundle/chunks/chunk-JS3B2M4D.js +6 -0
  73. package/dist/cli-bundle/chunks/chunk-O4YBC3OM.js +30 -0
  74. package/dist/cli-bundle/chunks/{chunk-LE4IEHDG.js → chunk-OZCSXX4D.js} +63 -64
  75. package/dist/cli-bundle/chunks/chunk-VMCSTFSO.js +2 -0
  76. package/dist/cli-bundle/chunks/chunk-W3KZ22DW.js +2 -0
  77. package/dist/cli-bundle/chunks/{chunk-2UKKO45F.js → chunk-X2ONXFBP.js} +2 -2
  78. package/dist/cli-bundle/chunks/chunk-X53HM753.js +20 -0
  79. package/dist/cli-bundle/chunks/{register-list-query-GBLTOQQL.js → register-list-query-RU3QZSAQ.js} +7 -7
  80. package/dist/cli-bundle/chunks/register-mutation-EQYMT32A.js +20 -0
  81. package/dist/cli-bundle/chunks/{register-operations-J3WXP3MA.js → register-operations-VXBGE4XI.js} +2 -2
  82. package/dist/cli-bundle/chunks/{register-setup-HLSKKU4V.js → register-setup-UUDEGFRO.js} +2 -2
  83. package/dist/cli-bundle/focused-chunks/{chunk-ELQNEJDA.js → chunk-2IOHHNRT.js} +2 -2
  84. package/dist/cli-bundle/focused-chunks/chunk-5JEFDEL3.js +166 -0
  85. package/dist/cli-bundle/focused-chunks/{chunk-4UA7KY4V.js → chunk-AH6NX6GM.js} +2 -2
  86. package/dist/cli-bundle/focused-chunks/{chunk-ESOW6PH4.js → chunk-E33QA7PK.js} +2 -2
  87. package/dist/cli-bundle/focused-chunks/{chunk-BUAGNTLG.js → chunk-FTUZ3JF2.js} +6 -6
  88. package/dist/cli-bundle/focused-chunks/{chunk-HNRI2KBT.js → chunk-JXR6UKFM.js} +3 -3
  89. package/dist/cli-bundle/focused-chunks/chunk-LDKX4KYJ.js +2 -0
  90. package/dist/cli-bundle/focused-chunks/{chunk-IGBSAHCA.js → chunk-MBQF6HT6.js} +2 -2
  91. package/dist/cli-bundle/focused-chunks/chunk-NZO7GOXD.js +20 -0
  92. package/dist/cli-bundle/focused-chunks/{chunk-QIU4Y3AB.js → chunk-PYC7BF6Z.js} +2 -2
  93. package/dist/cli-bundle/focused-chunks/{chunk-YJNKISEI.js → chunk-QOSVJDOO.js} +61 -62
  94. package/dist/cli-bundle/focused-chunks/{chunk-RHQCQTZA.js → chunk-RBLSY6ML.js} +2 -2
  95. package/dist/cli-bundle/focused-chunks/{chunk-KSMQEB3V.js → chunk-RHTH5ILM.js} +2 -2
  96. package/dist/cli-bundle/focused-chunks/{chunk-Y5A4XOSK.js → chunk-SIGIGZCG.js} +3 -3
  97. package/dist/cli-bundle/focused-chunks/chunk-TRFVAWF2.js +26 -0
  98. package/dist/cli-bundle/focused-chunks/{chunk-AULVKHYX.js → chunk-UNTQE37U.js} +2 -2
  99. package/dist/cli-bundle/main.js +22 -22
  100. package/dist/cli-bundle/sdk-authoring.js +1 -1
  101. package/dist/cli-bundle/sdk-contracts.js +2 -2
  102. package/dist/cli-bundle/sdk-core.js +23 -23
  103. package/dist/cli-bundle/sdk-governance.js +1 -1
  104. package/dist/cli-bundle/sdk-graph.js +1 -1
  105. package/dist/cli-bundle/sdk-merge.js +54 -54
  106. package/dist/cli-bundle/sdk-query.js +1 -1
  107. package/dist/cli-bundle/sdk-runtime.js +1 -1
  108. package/dist/cli-bundle/sdk-testing.js +1 -1
  109. package/dist/cli-bundle/sdk.js +7 -7
  110. package/dist/cli.d.ts +9 -9
  111. package/dist/core/checkpoint/checkpoint-gc.d.ts +17 -17
  112. package/dist/core/checkpoint/mutation-checkpoint.d.ts +26 -26
  113. package/dist/core/config/nested-settings.d.ts +20 -20
  114. package/dist/core/config/positional-value.d.ts +9 -9
  115. package/dist/core/diagnostics/remediation.d.ts +7 -7
  116. package/dist/core/extensions/activation-summary-markdown.d.ts +4 -4
  117. package/dist/core/extensions/activation-summary.d.ts +30 -30
  118. package/dist/core/extensions/activation-transaction.d.ts +9 -9
  119. package/dist/core/extensions/capability-usage.d.ts +25 -25
  120. package/dist/core/extensions/command-hook-context.d.ts +15 -15
  121. package/dist/core/extensions/command-metadata-contract.d.ts +1 -1
  122. package/dist/core/extensions/command-visibility-tier.d.ts +1 -1
  123. package/dist/core/extensions/contribution-inventory.d.ts +24 -24
  124. package/dist/core/extensions/exporter-output-contract.d.ts +4 -4
  125. package/dist/core/extensions/extension-candidate.d.ts +14 -14
  126. package/dist/core/extensions/extension-capability-aliases.d.ts +14 -14
  127. package/dist/core/extensions/extension-hook-runtime.d.ts +14 -14
  128. package/dist/core/extensions/extension-policy.d.ts +62 -62
  129. package/dist/core/extensions/extension-registries.d.ts +8 -8
  130. package/dist/core/extensions/extension-runtime-helpers.d.ts +5 -5
  131. package/dist/core/extensions/extension-types.d.ts +717 -702
  132. package/dist/core/extensions/extension-types.js +1 -1
  133. package/dist/core/extensions/flag-definition-validation.d.ts +11 -11
  134. package/dist/core/extensions/flag-value-types.d.ts +32 -4
  135. package/dist/core/extensions/flag-value-types.js +1 -1
  136. package/dist/core/extensions/index.d.ts +34 -34
  137. package/dist/core/extensions/item-field-types.d.ts +3 -3
  138. package/dist/core/extensions/item-fields.d.ts +6 -6
  139. package/dist/core/extensions/loader.d.ts +66 -66
  140. package/dist/core/extensions/manifest-parser.d.ts +1 -1
  141. package/dist/core/extensions/manifest-schema.d.ts +13 -13
  142. package/dist/core/extensions/module-graph-snapshot.d.ts +5 -5
  143. package/dist/core/extensions/preflight-ownership.d.ts +3 -3
  144. package/dist/core/extensions/read-output-contract.d.ts +2 -2
  145. package/dist/core/extensions/registration-contracts.d.ts +12 -12
  146. package/dist/core/extensions/registration-contracts.js +1 -1
  147. package/dist/core/extensions/registration-validation.d.ts +6 -6
  148. package/dist/core/extensions/registration-values.d.ts +19 -19
  149. package/dist/core/extensions/reserved-host-flags.d.ts +5 -5
  150. package/dist/core/extensions/runtime-registrations.d.ts +6 -6
  151. package/dist/core/extensions/service-ownership.d.ts +1 -1
  152. package/dist/core/extensions/version-compat.d.ts +9 -9
  153. package/dist/core/fs/atomic-create.d.ts +1 -1
  154. package/dist/core/fs/fs-utils.d.ts +12 -12
  155. package/dist/core/fs/host-environment-errors.d.ts +10 -10
  156. package/dist/core/fs/path-utils.d.ts +1 -1
  157. package/dist/core/governance/content-fields.d.ts +25 -25
  158. package/dist/core/governance/issue-codes.d.ts +16 -16
  159. package/dist/core/governance/metadata-coverage.d.ts +64 -64
  160. package/dist/core/history/digest.d.ts +5 -5
  161. package/dist/core/history/drift-cache.d.ts +2 -2
  162. package/dist/core/history/drift-scan.d.ts +18 -18
  163. package/dist/core/history/event-classification.d.ts +4 -4
  164. package/dist/core/history/event-index.d.ts +33 -33
  165. package/dist/core/history/history-compact-bulk.d.ts +12 -12
  166. package/dist/core/history/history-diff.d.ts +15 -15
  167. package/dist/core/history/history-rewrite.d.ts +43 -43
  168. package/dist/core/history/history-storage-stats.d.ts +20 -20
  169. package/dist/core/history/history-stream-policy.d.ts +12 -12
  170. package/dist/core/history/history.d.ts +45 -45
  171. package/dist/core/history/identity.d.ts +4 -4
  172. package/dist/core/history/operation-contract.d.ts +17 -17
  173. package/dist/core/history/projection.d.ts +16 -16
  174. package/dist/core/history/read.d.ts +4 -4
  175. package/dist/core/history/replay.d.ts +47 -47
  176. package/dist/core/history/tombstone.d.ts +1 -1
  177. package/dist/core/history/version-address.d.ts +2 -2
  178. package/dist/core/history/workspace-history.d.ts +72 -72
  179. package/dist/core/io/body-file.d.ts +2 -2
  180. package/dist/core/io/bulk-ids-input.d.ts +7 -7
  181. package/dist/core/item/actionability.d.ts +30 -30
  182. package/dist/core/item/dependency-reference.d.ts +2 -2
  183. package/dist/core/item/id.d.ts +9 -9
  184. package/dist/core/item/item-format-version.d.ts +17 -15
  185. package/dist/core/item/item-format-version.js +1 -1
  186. package/dist/core/item/item-format.d.ts +54 -54
  187. package/dist/core/item/item-format.js +3 -3
  188. package/dist/core/item/item-record.d.ts +1 -1
  189. package/dist/core/item/item-type-definition.d.ts +11 -11
  190. package/dist/core/item/parent-reference-policy.d.ts +6 -6
  191. package/dist/core/item/parse.d.ts +37 -37
  192. package/dist/core/item/plan-lifecycle.d.ts +4 -4
  193. package/dist/core/item/priority.d.ts +3 -3
  194. package/dist/core/item/sprint-release-format.d.ts +4 -4
  195. package/dist/core/item/status-filter.d.ts +5 -5
  196. package/dist/core/item/status.d.ts +3 -3
  197. package/dist/core/item/toon-decode.d.ts +10 -10
  198. package/dist/core/item/type-registry.d.ts +35 -35
  199. package/dist/core/item/type-synonyms.d.ts +2 -2
  200. package/dist/core/lock/lock-gc.d.ts +28 -28
  201. package/dist/core/lock/lock.d.ts +53 -53
  202. package/dist/core/output/mutation-projection.d.ts +4 -25
  203. package/dist/core/output/mutation-projection.js +1 -1
  204. package/dist/core/output/output-control.d.ts +4 -4
  205. package/dist/core/output/output.d.ts +30 -30
  206. package/dist/core/output/query-summary.d.ts +5 -5
  207. package/dist/core/output/tabular.d.ts +3 -3
  208. package/dist/core/packages/manifest.d.ts +30 -30
  209. package/dist/core/packages/root.d.ts +4 -4
  210. package/dist/core/policy/workflow-policy-schema.d.ts +291 -291
  211. package/dist/core/policy/workflow-policy-store.d.ts +15 -15
  212. package/dist/core/policy/workflow-policy.d.ts +56 -56
  213. package/dist/core/profile/profile-describe.d.ts +22 -22
  214. package/dist/core/profile/profile-lint.d.ts +13 -13
  215. package/dist/core/profile/profile-plan.d.ts +45 -45
  216. package/dist/core/profile/profile-presets.d.ts +36 -36
  217. package/dist/core/reproducibility/context.d.ts +9 -9
  218. package/dist/core/schema/fields-file.d.ts +35 -35
  219. package/dist/core/schema/item-types-file.d.ts +29 -29
  220. package/dist/core/schema/runtime-field-filters.d.ts +3 -3
  221. package/dist/core/schema/runtime-field-values.d.ts +7 -7
  222. package/dist/core/schema/runtime-schema.d.ts +59 -59
  223. package/dist/core/schema/status-defs-file.d.ts +29 -29
  224. package/dist/core/schema/status-token.d.ts +1 -1
  225. package/dist/core/schema/type-inference.d.ts +10 -10
  226. package/dist/core/schema/type-presets.d.ts +5 -5
  227. package/dist/core/schema/type-workflows.d.ts +15 -15
  228. package/dist/core/schema/type-workflows.js +1 -1
  229. package/dist/core/search/background-refresh.d.ts +12 -12
  230. package/dist/core/search/bm25.d.ts +16 -16
  231. package/dist/core/search/cache.d.ts +34 -34
  232. package/dist/core/search/corpus.d.ts +17 -17
  233. package/dist/core/search/embedding-batches.d.ts +25 -25
  234. package/dist/core/search/eval-thresholds.d.ts +4 -4
  235. package/dist/core/search/eval.d.ts +40 -40
  236. package/dist/core/search/http-client.d.ts +24 -24
  237. package/dist/core/search/providers.d.ts +30 -30
  238. package/dist/core/search/relevance.d.ts +17 -17
  239. package/dist/core/search/semantic-defaults.d.ts +5 -5
  240. package/dist/core/search/staleness.d.ts +3 -3
  241. package/dist/core/search/vector-stores.d.ts +51 -51
  242. package/dist/core/search/vectorization-metadata.d.ts +9 -9
  243. package/dist/core/sentry/helpers.d.ts +27 -27
  244. package/dist/core/sentry/instrument.d.ts +51 -51
  245. package/dist/core/sentry/instrument.js +1 -1
  246. package/dist/core/sentry/sensitive-assignments.d.ts +9 -0
  247. package/dist/core/sentry/sensitive-assignments.js +2 -0
  248. package/dist/core/session/session-state.d.ts +37 -37
  249. package/dist/core/shared/agent-session-context.d.ts +14 -14
  250. package/dist/core/shared/author.d.ts +89 -89
  251. package/dist/core/shared/command-line.d.ts +3 -3
  252. package/dist/core/shared/command-types.d.ts +20 -20
  253. package/dist/core/shared/conflict-markers.d.ts +5 -5
  254. package/dist/core/shared/constants.d.ts +30 -30
  255. package/dist/core/shared/errors.d.ts +100 -100
  256. package/dist/core/shared/html-entity-decode.d.ts +2 -2
  257. package/dist/core/shared/item-metadata-contract.d.ts +2 -2
  258. package/dist/core/shared/lazy-module.d.ts +1 -1
  259. package/dist/core/shared/levenshtein.d.ts +1 -1
  260. package/dist/core/shared/memo.d.ts +1 -1
  261. package/dist/core/shared/numeric-parsers.d.ts +1 -1
  262. package/dist/core/shared/option-alias-visibility.d.ts +3 -3
  263. package/dist/core/shared/primitives.d.ts +13 -13
  264. package/dist/core/shared/secret-rules.d.ts +92 -92
  265. package/dist/core/shared/serial-queue.d.ts +6 -6
  266. package/dist/core/shared/serialization.d.ts +4 -4
  267. package/dist/core/shared/split-comma-list.d.ts +4 -4
  268. package/dist/core/shared/text-normalization.d.ts +5 -3
  269. package/dist/core/shared/text-normalization.js +1 -1
  270. package/dist/core/shared/time.d.ts +27 -27
  271. package/dist/core/store/item-format-migration.d.ts +7 -7
  272. package/dist/core/store/item-metadata-cache.d.ts +30 -30
  273. package/dist/core/store/item-metadata-query-index.d.ts +66 -66
  274. package/dist/core/store/item-metadata-read-work.d.ts +6 -6
  275. package/dist/core/store/item-mutation-precondition.d.ts +11 -0
  276. package/dist/core/store/item-mutation-precondition.js +2 -0
  277. package/dist/core/store/item-store.d.ts +123 -123
  278. package/dist/core/store/item-store.js +1 -1
  279. package/dist/core/store/paths.d.ts +27 -27
  280. package/dist/core/store/settings-concurrency.d.ts +1 -1
  281. package/dist/core/store/settings-read-cache.d.ts +11 -11
  282. package/dist/core/store/settings-validator.d.ts +117 -117
  283. package/dist/core/store/settings.d.ts +84 -84
  284. package/dist/core/store/sqlite-runtime.d.ts +2 -2
  285. package/dist/core/store/tracker-preflight.d.ts +3 -3
  286. package/dist/core/telemetry/consent.d.ts +1 -1
  287. package/dist/core/telemetry/observability.d.ts +16 -16
  288. package/dist/core/telemetry/policy.d.ts +7 -7
  289. package/dist/core/telemetry/read-sampling.d.ts +1 -1
  290. package/dist/core/telemetry/runtime.d.ts +275 -275
  291. package/dist/core/test/background-runs.d.ts +123 -123
  292. package/dist/core/test/item-test-run-tracking.d.ts +10 -10
  293. package/dist/core/test/run-selectors.d.ts +12 -12
  294. package/dist/core/validate/estimate-defaults.d.ts +3 -3
  295. package/dist/core/validate/fix-planning.d.ts +36 -36
  296. package/dist/core/validate/linked-artifact-reference.d.ts +1 -1
  297. package/dist/core/validate/missing-by-type.d.ts +3 -3
  298. package/dist/core/validate/missing-link-owners.d.ts +17 -17
  299. package/dist/core/validate/stale-file-classification.d.ts +6 -6
  300. package/dist/mcp/http-server.d.ts +26 -26
  301. package/dist/mcp/legacy-adapter.d.ts +18 -18
  302. package/dist/mcp/runtime-capabilities.d.ts +18 -18
  303. package/dist/mcp/server.d.ts +73 -73
  304. package/dist/mcp/server.js +1 -1
  305. package/dist/mcp/tool-definitions.d.ts +27 -27
  306. package/dist/mcp/tool-definitions.js +1 -1
  307. package/dist/sdk/actionability.d.ts +1 -1
  308. package/dist/sdk/agent/closed-domain-contracts.d.ts +11 -11
  309. package/dist/sdk/agent/command-recovery.d.ts +5 -5
  310. package/dist/sdk/agent/command-suggestions.d.ts +4 -4
  311. package/dist/sdk/agent/create-option-policy.d.ts +2 -2
  312. package/dist/sdk/agent/identity-config.d.ts +18 -18
  313. package/dist/sdk/agent/item-addressing.d.ts +6 -6
  314. package/dist/sdk/agent/refusal-closure-census.d.ts +26 -26
  315. package/dist/sdk/agent/refusal-closure.d.ts +22 -22
  316. package/dist/sdk/agent/refusal-corpus-contracts.d.ts +26 -26
  317. package/dist/sdk/agent/refusal-reachability.d.ts +65 -65
  318. package/dist/sdk/agent/subcommand-recovery.d.ts +20 -20
  319. package/dist/sdk/agent/task-transcript-contracts.d.ts +18 -18
  320. package/dist/sdk/agent/tracker-preflight-contracts.d.ts +21 -21
  321. package/dist/sdk/agent-capability-contracts.d.ts +41 -41
  322. package/dist/sdk/agent-session-context.d.ts +1 -1
  323. package/dist/sdk/annotations.d.ts +74 -74
  324. package/dist/sdk/author-attribution.d.ts +47 -47
  325. package/dist/sdk/authoring.d.ts +9 -9
  326. package/dist/sdk/cli-bootstrap.d.ts +65 -65
  327. package/dist/sdk/cli-contracts/agent-output-contracts.d.ts +56 -56
  328. package/dist/sdk/cli-contracts/agent-output-contracts.js +1 -1
  329. package/dist/sdk/cli-contracts/bootstrap-command-scanner.d.ts +6 -6
  330. package/dist/sdk/cli-contracts/command-aliases.d.ts +19 -19
  331. package/dist/sdk/cli-contracts/command-exit-contracts.d.ts +66 -66
  332. package/dist/sdk/cli-contracts/commander-mutation-options.d.ts +7 -7
  333. package/dist/sdk/cli-contracts/commander-types.d.ts +18 -18
  334. package/dist/sdk/cli-contracts/completeness.d.ts +14 -14
  335. package/dist/sdk/cli-contracts/enum-contracts.d.ts +28 -28
  336. package/dist/sdk/cli-contracts/flag-contracts.d.ts +114 -112
  337. package/dist/sdk/cli-contracts/flag-contracts.js +1 -1
  338. package/dist/sdk/cli-contracts/flag-lexicon-contracts.d.ts +27 -27
  339. package/dist/sdk/cli-contracts/flag-lexicon-contracts.js +1 -1
  340. package/dist/sdk/cli-contracts/grammar-contracts.d.ts +61 -61
  341. package/dist/sdk/cli-contracts/registration-helpers.d.ts +57 -57
  342. package/dist/sdk/cli-contracts/registration-helpers.js +1 -1
  343. package/dist/sdk/cli-contracts/runtime-contracts.d.ts +250 -250
  344. package/dist/sdk/cli-contracts/runtime-contracts.js +1 -1
  345. package/dist/sdk/cli-contracts/schemas/assurance-definition.d.ts +678 -678
  346. package/dist/sdk/cli-contracts/string-lists.d.ts +1 -1
  347. package/dist/sdk/cli-contracts/tool-option-contracts.d.ts +564 -564
  348. package/dist/sdk/cli-contracts/tool-parameter-tables.d.ts +13 -13
  349. package/dist/sdk/cli-contracts/tool-schema.d.ts +54 -54
  350. package/dist/sdk/cli-contracts/tool-schema.js +1 -1
  351. package/dist/sdk/cli-contracts/typed-action-inputs.d.ts +20 -20
  352. package/dist/sdk/cli-contracts.d.ts +15 -15
  353. package/dist/sdk/cli-program.d.ts +1 -1
  354. package/dist/sdk/cli-program.js +1 -1
  355. package/dist/sdk/command-line.d.ts +3 -3
  356. package/dist/sdk/comments.d.ts +24 -24
  357. package/dist/sdk/compile-cache.d.ts +4 -4
  358. package/dist/sdk/completion/bash.d.ts +1 -1
  359. package/dist/sdk/completion/fish.d.ts +1 -1
  360. package/dist/sdk/completion/shared.d.ts +74 -74
  361. package/dist/sdk/completion/zsh.d.ts +1 -1
  362. package/dist/sdk/completion.d.ts +3 -3
  363. package/dist/sdk/compose.d.ts +94 -94
  364. package/dist/sdk/config.d.ts +105 -105
  365. package/dist/sdk/context/recency.d.ts +1 -1
  366. package/dist/sdk/context/semantic-session-attribution.d.ts +23 -23
  367. package/dist/sdk/context/usage-egress.d.ts +1 -1
  368. package/dist/sdk/context/usage-ledger.d.ts +18 -18
  369. package/dist/sdk/context-intent-contracts.d.ts +37 -37
  370. package/dist/sdk/context-intent-contracts.js +1 -1
  371. package/dist/sdk/context-intent-runtime.d.ts +10 -10
  372. package/dist/sdk/context-packing.d.ts +44 -44
  373. package/dist/sdk/context-relevance.d.ts +110 -110
  374. package/dist/sdk/context-signal-store.d.ts +52 -52
  375. package/dist/sdk/context-usage.d.ts +78 -78
  376. package/dist/sdk/contracts.d.ts +2 -1
  377. package/dist/sdk/contracts.js +1 -1
  378. package/dist/sdk/core-governance.d.ts +5 -5
  379. package/dist/sdk/core.d.ts +9 -8
  380. package/dist/sdk/core.js +1 -1
  381. package/dist/sdk/corpus-shape.d.ts +60 -60
  382. package/dist/sdk/define.d.ts +36 -36
  383. package/dist/sdk/dependencies.d.ts +70 -70
  384. package/dist/sdk/dependency-flag-validation.d.ts +17 -17
  385. package/dist/sdk/dependency-provenance.d.ts +22 -22
  386. package/dist/sdk/docs.d.ts +17 -17
  387. package/dist/sdk/duplicates.d.ts +14 -14
  388. package/dist/sdk/environment/agent-environment.d.ts +118 -118
  389. package/dist/sdk/environment/host-environment-errors.d.ts +1 -1
  390. package/dist/sdk/environment/project-runtime-compatibility.d.ts +42 -40
  391. package/dist/sdk/environment/project-runtime-compatibility.js +2 -2
  392. package/dist/sdk/environment/source-context.d.ts +4 -4
  393. package/dist/sdk/environment/tracker-preflight.d.ts +1 -1
  394. package/dist/sdk/error-code-catalog.d.ts +33 -33
  395. package/dist/sdk/error-runtime.d.ts +5 -5
  396. package/dist/sdk/errors.d.ts +17 -17
  397. package/dist/sdk/eval.d.ts +27 -27
  398. package/dist/sdk/extension/author-manifest.d.ts +9 -9
  399. package/dist/sdk/extension/bundled-catalog.d.ts +18 -18
  400. package/dist/sdk/extension/concurrency.d.ts +1 -1
  401. package/dist/sdk/extension/copy-scope.d.ts +1 -1
  402. package/dist/sdk/extension/custom-field-collisions.d.ts +1 -1
  403. package/dist/sdk/extension/describe.d.ts +21 -21
  404. package/dist/sdk/extension/doctor.d.ts +46 -46
  405. package/dist/sdk/extension/install-plan.d.ts +32 -32
  406. package/dist/sdk/extension/install-receipts.d.ts +4 -4
  407. package/dist/sdk/extension/install-runtime.d.ts +12 -12
  408. package/dist/sdk/extension/install-snapshot.d.ts +10 -10
  409. package/dist/sdk/extension/install-sources.d.ts +106 -106
  410. package/dist/sdk/extension/managed-state.d.ts +42 -42
  411. package/dist/sdk/extension/managed-update-status.d.ts +1 -1
  412. package/dist/sdk/extension/migrations.d.ts +48 -48
  413. package/dist/sdk/extension/output-ownership.d.ts +19 -19
  414. package/dist/sdk/extension/runtime-summary.d.ts +7 -7
  415. package/dist/sdk/extension/scaffold.d.ts +15 -15
  416. package/dist/sdk/extension/shared.d.ts +16 -16
  417. package/dist/sdk/extension/source-resolution.d.ts +16 -16
  418. package/dist/sdk/extension/static-inventory.d.ts +23 -23
  419. package/dist/sdk/extension/update-check.d.ts +9 -9
  420. package/dist/sdk/extension-command-context.d.ts +1 -1
  421. package/dist/sdk/extension-contracts.d.ts +10 -10
  422. package/dist/sdk/extension.d.ts +221 -221
  423. package/dist/sdk/files.d.ts +101 -101
  424. package/dist/sdk/flag-invocation-contracts.d.ts +25 -25
  425. package/dist/sdk/flag-invocation-contracts.js +1 -1
  426. package/dist/sdk/generated/generated-error-code-catalog-part-1.d.ts +1 -1
  427. package/dist/sdk/generated/generated-error-code-catalog-part-1.js +1 -1
  428. package/dist/sdk/generated/generated-error-code-catalog-part-2.d.ts +1 -1
  429. package/dist/sdk/generated/generated-error-code-catalog-part-2.js +1 -1
  430. package/dist/sdk/generated-error-code-catalog.d.ts +1 -1
  431. package/dist/sdk/governance/artifact-ledgers.d.ts +19 -19
  432. package/dist/sdk/governance/assurance-action-contracts.d.ts +1 -1
  433. package/dist/sdk/governance/assurance-action.d.ts +46 -46
  434. package/dist/sdk/governance/assurance-mutation-error.d.ts +20 -20
  435. package/dist/sdk/governance/assurance-presets.d.ts +25 -25
  436. package/dist/sdk/governance/assurance-runtime.d.ts +10 -10
  437. package/dist/sdk/governance/assurance.d.ts +204 -204
  438. package/dist/sdk/governance/boundary-fixtures.d.ts +32 -32
  439. package/dist/sdk/governance/closure-timestamps.d.ts +10 -10
  440. package/dist/sdk/governance/coverage-assurance.d.ts +7 -7
  441. package/dist/sdk/governance/defect-recurrence-coverage.d.ts +40 -40
  442. package/dist/sdk/governance/defect-recurrence-graph.d.ts +11 -11
  443. package/dist/sdk/governance/defect-recurrence-signals.d.ts +1 -1
  444. package/dist/sdk/governance/defect-recurrence.d.ts +97 -97
  445. package/dist/sdk/governance/extension-host-version.d.ts +9 -9
  446. package/dist/sdk/governance/gc.d.ts +26 -26
  447. package/dist/sdk/governance/health-merge-evidence.d.ts +8 -8
  448. package/dist/sdk/governance/health.d.ts +172 -172
  449. package/dist/sdk/governance/health.js +1 -1
  450. package/dist/sdk/governance/hierarchy-validation.d.ts +16 -16
  451. package/dist/sdk/governance/linked-file-report.d.ts +15 -15
  452. package/dist/sdk/governance/merge-receipt-history.d.ts +24 -24
  453. package/dist/sdk/governance/provenance-health.d.ts +35 -35
  454. package/dist/sdk/governance/reindex.d.ts +102 -102
  455. package/dist/sdk/governance/reliability.d.ts +29 -29
  456. package/dist/sdk/governance/stale-work.d.ts +13 -13
  457. package/dist/sdk/governance/status-role-diagnostics.d.ts +8 -8
  458. package/dist/sdk/governance/storage-integrity.d.ts +28 -28
  459. package/dist/sdk/governance/tracked-runtime-cache.d.ts +7 -7
  460. package/dist/sdk/governance/upgrade.d.ts +77 -77
  461. package/dist/sdk/governance/validate-history-drift.d.ts +3 -3
  462. package/dist/sdk/governance/validate-item-reader.d.ts +9 -9
  463. package/dist/sdk/governance/validate-normalization.d.ts +4 -4
  464. package/dist/sdk/governance/validate.d.ts +176 -176
  465. package/dist/sdk/governance/validate.js +1 -1
  466. package/dist/sdk/governance/workflow-completeness.d.ts +15 -15
  467. package/dist/sdk/governance/workflow-policy.d.ts +18 -18
  468. package/dist/sdk/governance/workspace-position.d.ts +40 -40
  469. package/dist/sdk/governance.d.ts +2 -2
  470. package/dist/sdk/graph/adapter.d.ts +45 -45
  471. package/dist/sdk/graph/analytics.d.ts +36 -36
  472. package/dist/sdk/graph/assembly.d.ts +51 -51
  473. package/dist/sdk/graph/cache.d.ts +19 -19
  474. package/dist/sdk/graph/cardinality-integrity.d.ts +4 -4
  475. package/dist/sdk/graph/centrality.d.ts +20 -20
  476. package/dist/sdk/graph/conformance.d.ts +21 -21
  477. package/dist/sdk/graph/deadline-scheduling.d.ts +30 -30
  478. package/dist/sdk/graph/durable-cache.d.ts +22 -22
  479. package/dist/sdk/graph/governance-contracts.d.ts +1 -1
  480. package/dist/sdk/graph/governance.d.ts +92 -92
  481. package/dist/sdk/graph/hierarchy-integrity.d.ts +32 -32
  482. package/dist/sdk/graph/index.d.ts +15 -15
  483. package/dist/sdk/graph/lifecycle-coverage.d.ts +12 -12
  484. package/dist/sdk/graph/mutation-advisory.d.ts +15 -15
  485. package/dist/sdk/graph/query-contracts.d.ts +6 -6
  486. package/dist/sdk/graph/remediation.d.ts +15 -15
  487. package/dist/sdk/graph/run.d.ts +203 -203
  488. package/dist/sdk/graph/scheduling.d.ts +21 -21
  489. package/dist/sdk/graph/traversal.d.ts +18 -18
  490. package/dist/sdk/graph/workspace-relationship-kind-registry.d.ts +1 -1
  491. package/dist/sdk/guide-topics.d.ts +19 -19
  492. package/dist/sdk/guide-topics.js +1 -1
  493. package/dist/sdk/guide.d.ts +43 -43
  494. package/dist/sdk/history/attestation-command.d.ts +8 -8
  495. package/dist/sdk/history/attestation-contract.d.ts +43 -43
  496. package/dist/sdk/history/attestation-scan.d.ts +4 -4
  497. package/dist/sdk/history/attestation.d.ts +4 -4
  498. package/dist/sdk/history/maintenance.d.ts +25 -25
  499. package/dist/sdk/history/salvage.d.ts +19 -19
  500. package/dist/sdk/history/subject.d.ts +8 -8
  501. package/dist/sdk/history-analytics.d.ts +64 -64
  502. package/dist/sdk/history-compact.d.ts +67 -67
  503. package/dist/sdk/history-mcp.d.ts +7 -7
  504. package/dist/sdk/history-provenance.d.ts +40 -40
  505. package/dist/sdk/history-read.d.ts +24 -24
  506. package/dist/sdk/history-redact.d.ts +68 -68
  507. package/dist/sdk/history-repair.d.ts +92 -92
  508. package/dist/sdk/improvement-ledger-validation.d.ts +1 -1
  509. package/dist/sdk/improvement-ledger.d.ts +62 -62
  510. package/dist/sdk/index.d.ts +70 -69
  511. package/dist/sdk/index.js +1 -1
  512. package/dist/sdk/init-agent-guidance.d.ts +68 -68
  513. package/dist/sdk/init.d.ts +117 -117
  514. package/dist/sdk/invocation-author.d.ts +1 -1
  515. package/dist/sdk/item-children.d.ts +15 -15
  516. package/dist/sdk/item-metadata-index.d.ts +2 -2
  517. package/dist/sdk/item-schedule.d.ts +9 -9
  518. package/dist/sdk/item-transaction.d.ts +139 -76
  519. package/dist/sdk/item-transaction.js +1 -1
  520. package/dist/sdk/learnings.d.ts +23 -23
  521. package/dist/sdk/lifecycle/append.d.ts +8 -8
  522. package/dist/sdk/lifecycle/claim.d.ts +53 -39
  523. package/dist/sdk/lifecycle/claim.js +1 -1
  524. package/dist/sdk/lifecycle/close-many.d.ts +71 -71
  525. package/dist/sdk/lifecycle/close.d.ts +18 -24
  526. package/dist/sdk/lifecycle/close.js +1 -1
  527. package/dist/sdk/lifecycle/copy.d.ts +10 -10
  528. package/dist/sdk/lifecycle/core-field-recovery.d.ts +1 -1
  529. package/dist/sdk/lifecycle/core-item-fields.d.ts +6 -0
  530. package/dist/sdk/lifecycle/core-item-fields.js +2 -0
  531. package/dist/sdk/lifecycle/create.d.ts +88 -88
  532. package/dist/sdk/lifecycle/delete.d.ts +15 -15
  533. package/dist/sdk/lifecycle/event-validation-messages.d.ts +1 -1
  534. package/dist/sdk/lifecycle/focus.d.ts +6 -6
  535. package/dist/sdk/lifecycle/hierarchy-mutation-lock.d.ts +6 -6
  536. package/dist/sdk/lifecycle/legacy-none-tokens.d.ts +35 -35
  537. package/dist/sdk/lifecycle/lifecycle-transitions.d.ts +3 -3
  538. package/dist/sdk/lifecycle/mcp-actions.d.ts +10 -10
  539. package/dist/sdk/lifecycle/mcp-actions.js +1 -1
  540. package/dist/sdk/lifecycle/metadata-normalizers.d.ts +4 -4
  541. package/dist/sdk/lifecycle/mutation-command-options.d.ts +58 -58
  542. package/dist/sdk/lifecycle/mutation-facet-contracts.d.ts +1 -1
  543. package/dist/sdk/lifecycle/mutation-option-validation.d.ts +2 -0
  544. package/dist/sdk/lifecycle/mutation-option-validation.js +2 -0
  545. package/dist/sdk/lifecycle/plan-mutation-receipt.d.ts +24 -24
  546. package/dist/sdk/lifecycle/plan.d.ts +127 -127
  547. package/dist/sdk/lifecycle/recurrence-parsers.d.ts +5 -5
  548. package/dist/sdk/lifecycle/release-handoff.d.ts +12 -0
  549. package/dist/sdk/lifecycle/release-handoff.js +2 -0
  550. package/dist/sdk/lifecycle/reopen.d.ts +15 -15
  551. package/dist/sdk/lifecycle/repeatable-metadata-parsers.d.ts +7 -7
  552. package/dist/sdk/lifecycle/restore.d.ts +34 -34
  553. package/dist/sdk/lifecycle/restore.js +1 -1
  554. package/dist/sdk/lifecycle/shared-unset-fields.d.ts +20 -20
  555. package/dist/sdk/lifecycle/structured-mutation-plan.d.ts +33 -0
  556. package/dist/sdk/lifecycle/structured-mutation-plan.js +2 -0
  557. package/dist/sdk/lifecycle/task-composition.d.ts +9 -9
  558. package/dist/sdk/lifecycle/task-composition.js +1 -1
  559. package/dist/sdk/lifecycle/update-many.d.ts +61 -61
  560. package/dist/sdk/lifecycle/update.d.ts +113 -121
  561. package/dist/sdk/lifecycle/update.js +1 -1
  562. package/dist/sdk/lifecycle/workflow-transition.d.ts +13 -0
  563. package/dist/sdk/lifecycle/workflow-transition.js +2 -0
  564. package/dist/sdk/lifecycle-completion.d.ts +14 -14
  565. package/dist/sdk/lifecycle-policy.d.ts +42 -32
  566. package/dist/sdk/lifecycle-policy.js +1 -1
  567. package/dist/sdk/linked-artifacts.d.ts +58 -58
  568. package/dist/sdk/mcp/apps.d.ts +28 -28
  569. package/dist/sdk/mcp/authorization.d.ts +66 -66
  570. package/dist/sdk/mcp/discovery.d.ts +67 -67
  571. package/dist/sdk/mcp/interactions.d.ts +49 -49
  572. package/dist/sdk/mcp/protocol.d.ts +63 -63
  573. package/dist/sdk/mcp/skills.d.ts +62 -62
  574. package/dist/sdk/mcp/subscriptions.d.ts +26 -26
  575. package/dist/sdk/mcp/tasks.d.ts +51 -51
  576. package/dist/sdk/mcp/transport.d.ts +17 -17
  577. package/dist/sdk/merge/abandoned-receipts.d.ts +8 -8
  578. package/dist/sdk/merge/driver.d.ts +38 -38
  579. package/dist/sdk/merge/index.d.ts +5 -5
  580. package/dist/sdk/merge/install.d.ts +48 -48
  581. package/dist/sdk/merge/receipt-file-boundary.d.ts +6 -6
  582. package/dist/sdk/merge/receipt-operation.d.ts +6 -6
  583. package/dist/sdk/merge/receipt-schema.d.ts +11 -11
  584. package/dist/sdk/merge/receipts.d.ts +111 -111
  585. package/dist/sdk/merge/reconcile.d.ts +20 -20
  586. package/dist/sdk/merge/three-way.d.ts +50 -50
  587. package/dist/sdk/merge/three-way.js +2 -2
  588. package/dist/sdk/merge/worktree-config.d.ts +3 -3
  589. package/dist/sdk/mutation-events.d.ts +62 -62
  590. package/dist/sdk/mutation-guard.d.ts +134 -134
  591. package/dist/sdk/notes.d.ts +28 -28
  592. package/dist/sdk/output/table-rows.d.ts +6 -6
  593. package/dist/sdk/output-contracts.d.ts +26 -26
  594. package/dist/sdk/output-projection.d.ts +108 -108
  595. package/dist/sdk/output-token-accounting.d.ts +18 -18
  596. package/dist/sdk/output.d.ts +18 -18
  597. package/dist/sdk/ownership-source.d.ts +1 -1
  598. package/dist/sdk/package-import-adapters.d.ts +51 -51
  599. package/dist/sdk/package-migrations.d.ts +3 -3
  600. package/dist/sdk/package-runtime-options.d.ts +3 -3
  601. package/dist/sdk/pagination.d.ts +28 -28
  602. package/dist/sdk/pagination.js +1 -1
  603. package/dist/sdk/profile.d.ts +72 -72
  604. package/dist/sdk/provenance.d.ts +37 -37
  605. package/dist/sdk/public-surface.json +1 -1
  606. package/dist/sdk/query/activity.d.ts +84 -84
  607. package/dist/sdk/query/aggregate.d.ts +109 -109
  608. package/dist/sdk/query/calendar.d.ts +95 -95
  609. package/dist/sdk/query/complete-list.d.ts +35 -35
  610. package/dist/sdk/query/context.d.ts +300 -300
  611. package/dist/sdk/query/duplicate-candidates.d.ts +3 -3
  612. package/dist/sdk/query/get.d.ts +54 -54
  613. package/dist/sdk/query/history.d.ts +38 -38
  614. package/dist/sdk/query/item-filter-options.d.ts +41 -41
  615. package/dist/sdk/query/light-metadata.d.ts +1 -1
  616. package/dist/sdk/query/list-filter-shared.d.ts +4 -4
  617. package/dist/sdk/query/list.d.ts +167 -167
  618. package/dist/sdk/query/list.js +1 -1
  619. package/dist/sdk/query/multi-value-filters.d.ts +6 -6
  620. package/dist/sdk/query/next-ready-budget.d.ts +8 -8
  621. package/dist/sdk/query/next.d.ts +94 -94
  622. package/dist/sdk/query/parsers.d.ts +3 -3
  623. package/dist/sdk/query/projection-contracts.d.ts +18 -18
  624. package/dist/sdk/query/search/corpus.d.ts +15 -15
  625. package/dist/sdk/query/search/filters.d.ts +15 -15
  626. package/dist/sdk/query/search/input.d.ts +8 -8
  627. package/dist/sdk/query/search/lexical.d.ts +10 -10
  628. package/dist/sdk/query/search/response.d.ts +22 -22
  629. package/dist/sdk/query/search/semantic.d.ts +133 -133
  630. package/dist/sdk/query/search/types.d.ts +65 -65
  631. package/dist/sdk/query/search-contracts.d.ts +53 -53
  632. package/dist/sdk/query/search-pagination.d.ts +21 -21
  633. package/dist/sdk/query/search-rendering.d.ts +30 -30
  634. package/dist/sdk/query/search.d.ts +60 -60
  635. package/dist/sdk/query/workspace-contracts.d.ts +2 -2
  636. package/dist/sdk/query.d.ts +6 -6
  637. package/dist/sdk/read-output/continuation.d.ts +11 -11
  638. package/dist/sdk/read-output/extension.d.ts +3 -3
  639. package/dist/sdk/read-output/options.d.ts +7 -7
  640. package/dist/sdk/read-output/provenance.d.ts +6 -6
  641. package/dist/sdk/read-output-budget.d.ts +11 -11
  642. package/dist/sdk/read-output-budget.js +1 -1
  643. package/dist/sdk/read-output-contracts.d.ts +112 -112
  644. package/dist/sdk/read-output-contracts.js +1 -1
  645. package/dist/sdk/read-output-rows.d.ts +15 -15
  646. package/dist/sdk/read-output-session.d.ts +29 -29
  647. package/dist/sdk/relationship-analytics.d.ts +46 -46
  648. package/dist/sdk/relationship-context.d.ts +48 -48
  649. package/dist/sdk/relationship-history.d.ts +59 -59
  650. package/dist/sdk/relationship-kinds/contract.d.ts +18 -18
  651. package/dist/sdk/relationship-migration.d.ts +14 -14
  652. package/dist/sdk/relationships.d.ts +46 -46
  653. package/dist/sdk/reproducibility/process.d.ts +9 -9
  654. package/dist/sdk/runtime/actions.d.ts +1 -1
  655. package/dist/sdk/runtime/context.d.ts +15 -15
  656. package/dist/sdk/runtime/schema-preview.d.ts +1 -1
  657. package/dist/sdk/runtime/schema.d.ts +1 -1
  658. package/dist/sdk/runtime-action-aliases.d.ts +3 -3
  659. package/dist/sdk/runtime-extended-actions.d.ts +9 -9
  660. package/dist/sdk/runtime-input.d.ts +29 -29
  661. package/dist/sdk/runtime-input.js +1 -1
  662. package/dist/sdk/runtime-primitives.d.ts +53 -53
  663. package/dist/sdk/runtime-primitives.js +1 -1
  664. package/dist/sdk/runtime-public-contracts.d.ts +46 -46
  665. package/dist/sdk/runtime-stats-options.d.ts +1 -1
  666. package/dist/sdk/runtime.d.ts +374 -374
  667. package/dist/sdk/runtime.js +1 -1
  668. package/dist/sdk/scheduling-shortcuts.d.ts +19 -19
  669. package/dist/sdk/schema-migration.d.ts +79 -79
  670. package/dist/sdk/schema.d.ts +224 -224
  671. package/dist/sdk/search-refresh-worker.d.ts +1 -1
  672. package/dist/sdk/similarity-scoring.d.ts +10 -10
  673. package/dist/sdk/similarity.d.ts +73 -73
  674. package/dist/sdk/start-task-status.d.ts +1 -1
  675. package/dist/sdk/stats.d.ts +72 -72
  676. package/dist/sdk/structured-mutations.d.ts +64 -13
  677. package/dist/sdk/structured-mutations.js +1 -1
  678. package/dist/sdk/telemetry-flush.d.ts +1 -1
  679. package/dist/sdk/telemetry.d.ts +32 -32
  680. package/dist/sdk/templates.d.ts +35 -35
  681. package/dist/sdk/test/batch.d.ts +50 -50
  682. package/dist/sdk/test/command-args.d.ts +2 -2
  683. package/dist/sdk/test/entry.d.ts +4 -4
  684. package/dist/sdk/test/execution-receipts.d.ts +5 -5
  685. package/dist/sdk/test/execution.d.ts +247 -247
  686. package/dist/sdk/test/json-path.d.ts +4 -4
  687. package/dist/sdk/test/linked-command-detection.d.ts +36 -36
  688. package/dist/sdk/test/measurements.d.ts +10 -10
  689. package/dist/sdk/test/parsers.d.ts +18 -18
  690. package/dist/sdk/test/prerequisites.d.ts +3 -3
  691. package/dist/sdk/test/runs.d.ts +43 -43
  692. package/dist/sdk/test/trust.d.ts +15 -15
  693. package/dist/sdk/test/update.d.ts +23 -23
  694. package/dist/sdk/test/workspace-snapshot.d.ts +1 -1
  695. package/dist/sdk/testing.d.ts +248 -248
  696. package/dist/sdk/traceability/runtime-files-lookup.d.ts +1 -1
  697. package/dist/sdk/traceability/source-traceability.d.ts +50 -50
  698. package/dist/sdk/workspace-contracts-cache.d.ts +2 -2
  699. package/dist/sdk/workspace-contracts.d.ts +20 -20
  700. package/dist/sdk/workspace-memory.d.ts +42 -42
  701. package/dist/sdk/workspace-recipe.d.ts +9 -9
  702. package/dist/sdk/workspace-snapshot.d.ts +60 -60
  703. package/dist/sdk/workspace-transaction-gc.d.ts +17 -17
  704. package/dist/sdk/workspace-transaction.d.ts +26 -26
  705. package/dist/sdk/workspace-transaction.js +2 -2
  706. package/dist/sdk/workspace.d.ts +9 -9
  707. package/dist/types.d.ts +540 -540
  708. package/docs/AGENT_GUIDE.md +33 -4
  709. package/docs/CLOSE_EVIDENCE_RECOVERY.md +16 -7
  710. package/docs/COMMANDS.md +96 -12
  711. package/docs/ECOSYSTEM_PLANNING_REVIEW.md +5 -1
  712. package/docs/EXTENSIONS.md +1 -1
  713. package/docs/EXTENSION_AUTHOR_CONTRACTS.md +18 -4
  714. package/docs/LINKED_TEST_EDITS.md +15 -0
  715. package/docs/RELEASING.md +2 -0
  716. package/docs/SDK.md +114 -2
  717. package/docs/TESTING.md +36 -1
  718. package/docs/generated/FLAG_LEXICON_BUDGETS.md +1 -1
  719. package/docs/generated/REFUSAL_CLOSURE_CENSUS.md +17 -3
  720. package/marketplace.json +1 -1
  721. package/package.json +4 -1
  722. package/packages/pm-beads/package.json +1 -1
  723. package/packages/pm-calendar/package.json +1 -1
  724. package/packages/pm-command-kit/package.json +1 -1
  725. package/packages/pm-digital-twin/package.json +1 -1
  726. package/packages/pm-governance-audit/package.json +1 -1
  727. package/packages/pm-guide-shell/package.json +1 -1
  728. package/packages/pm-kanban/package.json +1 -1
  729. package/packages/pm-lifecycle-hooks/package.json +1 -1
  730. package/packages/pm-linked-test-adapters/package.json +1 -1
  731. package/packages/pm-search-advanced/package.json +1 -1
  732. package/packages/pm-templates/package.json +1 -1
  733. package/packages/pm-todos/package.json +1 -1
  734. package/packages/pm-vcs/package.json +1 -1
  735. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  736. package/plugins/pm-claude/package.json +1 -1
  737. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  738. package/plugins/pm-codex/package.json +1 -1
  739. package/plugins/pm-codex/plugin.json +1 -1
  740. package/runtime-dependencies.json +1 -1
  741. package/scripts/finalize-build.mjs +9 -3
  742. package/dist/cli-bundle/chunks/chunk-66BZVFIK.js +0 -6
  743. package/dist/cli-bundle/chunks/chunk-IDEHMKYZ.js +0 -235
  744. package/dist/cli-bundle/chunks/chunk-LOSRTNNP.js +0 -2
  745. package/dist/cli-bundle/chunks/chunk-PP3BVMFL.js +0 -30
  746. package/dist/cli-bundle/chunks/chunk-UNQZGMJL.js +0 -20
  747. package/dist/cli-bundle/chunks/chunk-YXRAYL7H.js +0 -2
  748. package/dist/cli-bundle/chunks/register-mutation-TNRHNK4N.js +0 -20
  749. package/dist/cli-bundle/focused-chunks/chunk-23ACMPGB.js +0 -2
  750. package/dist/cli-bundle/focused-chunks/chunk-JDVZF75H.js +0 -165
  751. package/dist/cli-bundle/focused-chunks/chunk-LKWDWER4.js +0 -20
  752. package/dist/cli-bundle/focused-chunks/chunk-WIXZF5SS.js +0 -26
  753. package/docs/ecosystem-review-2026-09-28.json +0 -1
@@ -0,0 +1,166 @@
1
+ import{b as an,g as Tt,i as Ct,j as xt,l as es,m as ts,n as un,o as ns,p as rs,q as os}from"./chunk-AH6NX6GM.js";import{h as _n}from"./chunk-YLVHHWHN.js";import{$ as b,$a as dn,$d as ds,A as Li,Aa as Hi,F as on,G as sn,Ge as Lr,H as Tr,He as Pr,J as Pi,Ka as zi,P as we,Pa as Ui,Pc as me,Qa as Wi,Qc as Rr,Qe as ye,Rc as fn,Re as se,Sa as Bi,Sc as _e,Ta as Vi,Tc as Ar,Td as ss,Uc as ke,Ud as as,V as Pe,Vc as Dr,W as ji,Wa as cn,Ya as qi,Yc as Ot,Yd as cs,Z as k,_ as je,aa as h,ab as Gi,ae as Ie,bb as Ki,bd as is,be as pe,ce as ls,db as tt,dd as Nr,de as nt,eb as xr,ee as he,fb as Or,gb as fe,he as us,i as en,ib as Xi,id as $e,ie as fs,jb as D,je as V,kb as ie,la as ue,lb as ln,mb as T,q as tn,qa as Mi,r as Ri,rb as Yi,s as Ai,sa as Fi,t as Di,ta as Me,td as mn,u as Ni,ua as Fe,va as te,vb as Ji,wa as Ee,wb as Qi,xa as $i,y as nn,ya as Cr,z as rn,za as G,zc as Zi}from"./chunk-TRFVAWF2.js";import{AsyncLocalStorage as hd}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 jr=new hd,ms=/^[A-Za-z0-9](?:[A-Za-z0-9._:-]{0,127})$/u;function pn(e,t){let n=typeof e=="string"?e.trim():"";return n.length>0?n.slice(0,t):void 0}function He(e,t){if(e===void 0)return;let n=typeof e=="object"&&e!==null?e:{},r=pn(n.id,128),o=pn(n.parent_id,128);if(r===void 0||!ms.test(r)||o!==void 0&&!ms.test(o)){if(t)throw new Error("Agent episode ids must be 1-128 letters, digits, dots, underscores, colons, or hyphens.");return}let i=pn(n.label,256);return{id:r,...i===void 0?{}:{label:i},...o===void 0?{}:{parent_id:o}}}function rt(e){let t={};for(let[n,r]of Object.entries(e??{}).slice(0,32)){let o=n.trim().toLowerCase().slice(0,64),i=pn(r,256);/^[a-z][a-z0-9_-]{0,63}$/u.test(o)&&i!==void 0&&(t[o]=i)}return t}function yd(e,t,n){let r=jr.getStore(),o=rt({role:t.PM_AGENT_SESSION_ROLE,topic:t.PM_AGENT_SESSION_TOPIC}),i=He(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={...rt(r?.provenance),...o,...rt(e?.provenance)},a=He(e?.episode,!1)??He(n,!1)??i??He(r?.episode,!1);return Object.keys(s).length===0&&a===void 0?void 0:{...Object.keys(s).length===0?{}:{provenance:s},...a===void 0?{}:{episode:a}}}function Mr(e,t){return yd(e.session_context,t,e.client_info?.episode)??{}}function Th(e,t){let n=jr.getStore(),r=He(e.episode,!0),o=He(n?.episode,!1),i=r!==void 0&&r.parent_id===void 0&&o!==void 0?{...r,parent_id:o.id}:r,s={...rt(n?.provenance),...rt(e.provenance)};return jr.run({...Object.keys(s).length===0?{}:{provenance:s},...i===void 0?o===void 0?{}:{episode:o}:{episode:i}},t)}function Ch(e){let t=rt(e.provenance),n=He(e.episode,!0);return{...n===void 0?{}:{PM_AGENT_EPISODE_ID:n.id,...n.label===void 0?{}:{PM_AGENT_EPISODE_LABEL:n.label},...n.parent_id===void 0?{}:{PM_AGENT_EPISODE_PARENT_ID:n.parent_id}},...t.role===void 0?{}:{PM_AGENT_SESSION_ROLE:t.role},...t.topic===void 0?{}:{PM_AGENT_SESSION_TOPIC:t.topic}}}import{AsyncLocalStorage as Yr}from"node:async_hooks";import{createHash as Ed}from"node:crypto";import q from"node:fs";import Es from"node:os";import We from"node:path";import{createHash as _s}from"node:crypto";import{existsSync as Fr,promises as ps,readFileSync as gd}from"node:fs";import ae 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 bd="session.json";function $r(e,t){return typeof e=="string"&&e.length>0&&e.length<=t}function hs(e){if(e===null||typeof e!="object"||Array.isArray(e))return;let t=e,n=["implementer","planner","release-operator"].includes(String(t.role)),r=["high","medium"].includes(String(t.confidence)),o=$r(t.topic,256),i=Array.isArray(t.evidence)&&t.evidence.length<=32&&t.evidence.every(c=>typeof c=="string"&&c.length<=128),s=Array.isArray(t.active_item_ids)&&t.active_item_ids.length<=64&&t.active_item_ids.every(c=>$r(c,128)),a=t.focused_item_id===void 0||$r(t.focused_item_id,128);if([n,r,o,i,s,a,t.rule_version==="v2"].every(Boolean))return t}function vd(e){if(e===null||typeof e!="object"||Array.isArray(e))return;let t=Object.entries(e).slice(0,128).flatMap(([n,r])=>{let o=hs(r);return o&&n.length<=128?[[n,o]]:[]});return t.length>0?Object.fromEntries(t):void 0}function Hr(e){return ae.join(Xi(e),bd)}async function ys(e){try{let t=await ps.readFile(Hr(e),"utf8"),n=JSON.parse(t);if(n===null||typeof n!="object"||Array.isArray(n))return{};let r=n,o=r.focused_item,i=vd(r.semantic_attribution);return typeof o=="string"&&o.trim().length>0?{focused_item:o,...i?{semantic_attribution:i}:{}}:i?{semantic_attribution:i}:{}}catch{return{}}}async function zr(e,t){let n=await V(e,"session-state",k.locks.ttl_seconds,"session-state",!1,!0,k.locks.wait_ms);try{let r=await ys(e);t(r);let o=Hr(e);await ps.mkdir(ae.dirname(o),{recursive:!0}),await G(o,JSON.stringify(r))}finally{await n()}}function Ur(e){return/#([a-f0-9]{24})$/u.exec(e.trim())?.[1]??`author-${_s("sha256").update(e).digest("hex").slice(0,24)}`}function Wr(e){return[...new Set(e.map(t=>t.trim()).filter(Boolean))].slice(0,32).map(t=>t.slice(0,128))}function Br(e){let t=[...new Set(e)].sort((r,o)=>r.localeCompare(o));if(t.length===1)return t[0];let n=`workset:${t.join("+")}`;return n.length<=256?n:`workset:${t.join("+").slice(0,230)}+${_s("sha256").update(t.join("\0")).digest("hex").slice(0,12)}`}async function Vr(e,t,n){await zr(e,r=>{let o={...r.semantic_attribution},i=n(o[t]);i===void 0?delete o[t]:o[t]=i,Object.keys(o).length===0?delete r.semantic_attribution:r.semantic_attribution=o})}async function jh(e){let t=Ur(e.principal);await Vr(e.pmRoot,t,n=>{let r=[...new Set([...n?.active_item_ids??[],e.itemId])].slice(-64).sort((i,s)=>i.localeCompare(s)),o=n?.focused_item_id;return{role:"implementer",topic:o??Br(r),confidence:o?"high":"medium",rule_version:"v2",evidence:Wr([...r.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],...(e.lineageIds??[]).map(i=>`lineage:${i}`)]),active_item_ids:r,...o?{focused_item_id:o}:{}}})}async function Mh(e){let t=Ur(e.principal);await Vr(e.pmRoot,t,n=>{if(!n)return;let r=n.active_item_ids.filter(i=>i!==e.itemId);if(r.length===0&&!n.focused_item_id)return;let o=n.focused_item_id;return{...n,role:"release-operator",topic:o??Br(r),confidence:o?"high":"medium",evidence:Wr([...r.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],`release:${e.itemId}`]),active_item_ids:r}})}async function Fh(e){let t=Ur(e.principal);await Vr(e.pmRoot,t,n=>{let r=n?.active_item_ids??[];if(!e.itemId&&r.length===0)return;let o=e.itemId;return{role:o?"planner":n.role,topic:o??Br(r),confidence:o?"high":"medium",rule_version:"v2",evidence:Wr([...r.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],...(e.lineageIds??[]).map(i=>`lineage:${i}`)]),active_item_ids:r,...o?{focused_item_id:o}:{}}})}function wd(e,t){let n=t.PM_PATH?.trim();if(n){let o=ae.resolve(e,n);if(Fr(ae.join(o,"settings.json")))return o;let i=ae.join(o,".agents","pm");if(Fr(ae.join(i,"settings.json")))return i}let r=ae.resolve(e);for(let o=0;o<32;o+=1){let i=ae.join(r,".agents","pm");if(Fr(ae.join(i,"settings.json")))return i;let s=ae.dirname(r);if(s===r)break;r=s}}function gs(e){if(!e.key)return;let t=wd(e.cwd,e.env);if(t)try{let n=JSON.parse(gd(Hr(t),"utf8"));return hs(n.semantic_attribution?.[e.key])}catch{return}}async function $h(e){return(await ys(e)).focused_item}async function Hh(e,t){await zr(e,n=>{n.focused_item=t})}async function zh(e){await zr(e,t=>{delete t.focused_item})}(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 Jr=["model","effort","role","topic","version"],gn=new Yr,ks=new Yr,bn=new Yr,Qr=[{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:[]}],Is=Object.freeze({max_bytes:1048576,max_lines:4096,network_access:!1,subprocess_access:!1}),kd=Object.freeze({...Is,max_bytes:4194304}),qr=/^[a-z0-9]+(?:-[a-z0-9]+)*$/u;function Id(e){let t=Te(e).provenance_unavailable_dimensions,n=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([...n].sort()),native_sources:Object.freeze(["environment","argv","mcp_client",...Object.values(e.provenance_resolvers??{}).some(r=>r?.endsWith("session_file"))?["session_file"]:[]]),probe_policy:e.harness==="codex"?kd:Is,normalization:Object.freeze({model_family:"v1",effort:"v1",preserve_raw:!0}),confidence:"high",waivers:Object.freeze(Object.fromEntries(t.map(r=>[r,"Harness does not expose this dimension."])))})}var Ss=Object.freeze(Qr.filter(e=>e.harness!=="ci").map(Id).sort((e,t)=>e.harness.localeCompare(t.harness))),Ue=new Map,ot=new Map;function P(e){let t=typeof e=="string"?e.trim():void 0;return t&&t.length>0?t:void 0}function Se(e){return[...new Set((e??[]).slice(0,64).map(t=>t.trim()).filter(t=>t.length>0).map(t=>t.slice(0,128)))]}function Te(e){let t=e.harness.trim().toLowerCase();if(!qr.test(t))throw new Error(`Invalid harness signal descriptor namespace: ${e.harness}`);return{harness:t,environment_keys:Se(e.environment_keys),model_environment_keys:Se(e.model_environment_keys),session_environment_keys:Se(e.session_environment_keys),provenance_environment_keys:Object.fromEntries(Object.entries(e.provenance_environment_keys??{}).slice(0,32).map(([n,r])=>[n.trim().toLowerCase().slice(0,64),Se(r)]).filter(([n])=>qr.test(n))),provenance_resolvers:Object.fromEntries(Object.entries(e.provenance_resolvers??{}).slice(0,32).map(([n,r])=>[n.trim().toLowerCase().slice(0,64),r]).filter(n=>typeof n[0]=="string"&&qr.test(n[0])&&(n[1]==="ai_agent_version"||n[1]==="claude_session_file"||n[1]==="codex_session_file"))),provenance_unavailable_dimensions:Se(e.provenance_unavailable_dimensions).map(n=>n.toLowerCase()),argv_markers:Se(e.argv_markers).map(n=>n.toLowerCase()),client_names:Se(e.client_names).map(n=>n.toLowerCase())}}var Ts=Qr.map(Te);function Sd(e,t){return JSON.stringify(e)===JSON.stringify(t)}function yn(e,t){return e.toLowerCase().slice(0,512).split(/[/\\\s:=]+/u).filter(n=>n.length>0).includes(t)||e.trim().toLowerCase()===t}function Zr(e=[]){let t=new Map(Qr.filter(o=>o.harness!=="ci").map(o=>[o.harness,Te(o)]));for(let{adapter:o}of Ue.values())t.set(o.harness,Te(o.descriptor));let n=[...t.values(),...Ts.filter(o=>o.harness==="ci"),...[...ot.values()].map(o=>o.descriptor),...bn.getStore()?.descriptors??[],...e.map(Te)],r=new Set;for(let o of n){if(r.has(o.harness))throw new Error(`Harness signal descriptor collision for "${o.harness}"`);r.add(o.harness)}return n}function eo(e,t){for(let n of t??[]){let r=P(e[n]);if(r)return r.slice(0,256)}}function Td(e,t){if(t==="role"){let n=e.slice(0,8).map(r=>r.trim().toLowerCase()).find(r=>["claim","create","update","close","release","review"].includes(r));if(n==="review")return"reviewer";if(n)return"implementer"}}function Cs(e,t){let n=t==="model"?["--model","--agent-model"]:[`--agent-${t}`],r=e.slice(0,8);for(let o=0;o<r.length;o+=1){let i=r[o].slice(0,512);if(n.includes(i))return P(r[o+1])?.slice(0,256);let s=n.find(a=>i.startsWith(`${a}=`));if(s)return P(i.slice(s.length+1))?.slice(0,256)}}var Cd=new Set(["implementation","implementer","investigator","orchestrator","planner","release-operator","reviewer"]);function ze(e,t){if(e!=="role"||t===void 0)return t;let n=t.trim().toLowerCase().replaceAll(/[_\s]+/gu,"-");return Cd.has(n)?n:void 0}function Gr(e,t){return P(e?.[t])?.slice(0,256)}var xd=1048576,Xr=4194304,hn=new Map,bs=Object.freeze({}),Kr=new Map,vs=Object.freeze({});function ws(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:void 0}function Od(e){let t;try{t=JSON.parse(e)}catch{return vs}let n=ws(t);if(!n)return vs;let r=[{value:n,depth:0}],o=0,i,s;for(;r.length>0&&o<64;){let a=r.shift();if(o+=1,i??=P(a.value.model)?.slice(0,256),s??=P(a.value.version)?.slice(0,256),i&&s)break;if(!(a.depth>=4))for(let c of Object.values(a.value)){let d=ws(c);d&&r.push({value:d,depth:a.depth+1})}}return Object.freeze({model:i,version:s})}function xs(e){try{return q.lstatSync(e).isFile()?"available":"missing"}catch(t){return Fe(t)?"missing":"failed"}}function Rd(e,t){let n;try{n=q.readdirSync(e,{withFileTypes:!0}).filter(o=>o.isDirectory()).sort((o,i)=>o.name.localeCompare(i.name)).slice(0,512).map(o=>{let i=We.join(e,o.name,`${t}.jsonl`);return{candidate:i,status:xs(i)}})}catch(o){return{status:Fe(o)?"missing":"failed"}}let r=n.filter(({status:o})=>o==="available").map(({candidate:o})=>o);return r.length===0?{status:n.some(({status:o})=>o==="failed")?"failed":"missing"}:r.length>1?{status:"ambiguous"}:{status:"available",path:r[0]}}function Os(e,t){let n=P(t.CLAUDE_CODE_SESSION_ID);if(!n||!/^[A-Za-z0-9_-]{1,128}$/u.test(n))return{status:"unavailable"};let r=We.resolve(e.cwd??process.cwd()).replaceAll(/[^A-Za-z0-9-]/gu,"-"),o=We.join(e.home_dir??Es.homedir(),".claude","projects"),i=We.join(o,r,`${n}.jsonl`),s=P(e.session_file),a=s&&We.basename(s)===`${n}.jsonl`?s:void 0;for(let c of[a,i]){if(!c)continue;let d=xs(c);if(d==="available")return{status:d,path:c};if(d==="failed")return{status:d}}return Rd(o,n)}function Ad(e,t,n){let r=Os(t,n);if(r.status==="available")try{let o=q.openSync(r.path,q.constants.O_RDONLY|q.constants.O_NOFOLLOW);try{let i=q.fstatSync(o),s=`${r.path}\0${i.size}\0${i.mtimeMs}`,a=Kr.get(s);if(a)return a[e];let c=Math.min(i.size,xd),d=Math.min(c,Math.ceil(c/2)),l=Math.min(c-d,i.size-d),f=Buffer.alloc(d);q.readSync(o,f,0,d,0);let _=Buffer.alloc(l);l>0&&q.readSync(o,_,0,l,i.size-l);let p={},m=i.size<=c?Buffer.concat([f,_]).toString("utf8").split(`
2
+ `):[...f.toString("utf8").split(`
3
+ `).slice(0,4096),..._.toString("utf8").split(`
4
+ `).slice(-4096)];for(let g of m){if(g.length===0||g.length>262144)continue;let S=Od(g);if(p.model??=S.model,p.version??=S.version,p.model&&p.version)break}let v=Object.freeze(p);return Kr.clear(),Kr.set(s,v),v[e]}finally{q.closeSync(o)}}catch{return}}function Dd(e,t){let n=0,r=(o,i)=>{if(i>4||n>=512)return;let s;try{s=q.readdirSync(o,{withFileTypes:!0}).sort((a,c)=>c.name.localeCompare(a.name))}catch{return}for(let a of s){if(n+=1,n>512)return;let c=We.join(o,a.name);if(a.isFile()&&a.name.endsWith(`-${t}.jsonl`))return c;if(a.isDirectory()){let d=r(c,i+1);if(d)return d}}};return r(e,0)}function Nd(e){if(e<=Xr)return[{offset:0,length:e}];let t=Math.floor(Xr/2);return[{offset:e-t,length:t},{offset:0,length:t}]}function Ld(e,t){if(t.length===0||t.length>262144)return;let n;try{n=JSON.parse(t)}catch{return}if(typeof n!="object"||n===null||Array.isArray(n))return;let r=n;if(r.type!=="turn_context")return;let o=typeof r.payload=="object"&&r.payload!==null?r.payload:void 0;e.model??=P(o?.model)?.slice(0,256),e.effort??=P(o?.effort)?.slice(0,256)}function Pd(e,t){let n={},r=4096;for(let o of Nd(t)){let i=Buffer.alloc(o.length);q.readSync(e,i,0,o.length,o.offset);let s=i.toString("utf8").split(`
5
+ `).reverse().slice(0,r);r-=s.length;for(let a of s)if(Ld(n,a),n.model&&n.effort)break;if(n.model&&n.effort||r<=0)break}return n}function jd(e,t,n){let r=P(n.CODEX_THREAD_ID);if(!r||!/^[A-Za-z0-9_-]{1,128}$/u.test(r))return;let o=We.join(t.home_dir??Es.homedir(),".codex","sessions"),i=`${o}\0${r}`,s=hn.get(i);if(s)return s[e];let a=Dd(o,r);if(!a){hn.set(i,bs);return}try{let c=q.openSync(a,"r");try{let d=q.fstatSync(c).size,l=Pd(c,d);return hn.set(i,l),l[e]}finally{q.closeSync(c)}}catch{hn.set(i,bs);return}}function Md(e,t,n,r){let o=bn.getStore();if(!(t.probes_enabled!==!1&&o?.probesEnabled!==!1&&!["0","false","off"].includes(P(n.PM_AGENT_PROBES)?.toLowerCase()??"")))return;let i=r?.provenance_resolvers[e];if(i==="claude_session_file")return Ad(e,t,n);if(i==="codex_session_file")return jd(e,t,n);if(i==="ai_agent_version"){let s=P(n.AI_AGENT);return!s||!r||!yn(s,r.harness)?void 0:/(?:^|[@/\s])v?(\d+\.\d+(?:\.\d+)?(?:[-+][A-Za-z0-9.-]+)?)$/u.exec(s)?.[1]?.slice(0,256)}}function Fd(e,t,n,r){if(e==="ai_agent_version"){let o=P(r.AI_AGENT);return o!==void 0&&yn(o,t.harness)?"available":"unavailable"}return e==="codex_session_file"?P(r.CODEX_THREAD_ID)!==void 0?"available":"unavailable":Os(n,r).status}function to(e){return e||(ks.getStore()??{env:process.env,argv:process.argv})}function $d(e,t,n,r){let o=e.environment_keys.some(a=>P(t[a])!==void 0),i=e.argv_markers.some(a=>n.some(c=>{let d=c.replaceAll("\\","/");return yn(d.slice(d.lastIndexOf("/")+1),a)})),s=e.client_names.some(a=>r===a||yn(r,a));return o||i||s}function Hd(e,t){if(!t)return;let n;if(e==="topic"&&(n=t.topic),e==="role"&&(n=t.role),!!n)return{value:n,source:"inferred",confidence:t.confidence,rule_version:t.rule_version,evidence:t.evidence}}function zd(e){let t=e.find(([n])=>n!==void 0);return t?.[0]?{value:t[0],source:t[1]}:void 0}function Ud(e,t,n,r,o,i){let s=`PM_AGENT_${e.toUpperCase().replaceAll("-","_")}`,a=new Set([...Jr,...Object.keys(r?.provenance_environment_keys??{})]),c,d,l;a.has(e)&&(c=ze(e,P(n[s])?.slice(0,256)),l=ze(e,Cs(t.argv??[],e)),d=ze(e,Td(t.argv??[],e)));let f={...r?.provenance_environment_keys,model:r?.model_environment_keys},_={...t.client_info?.provenance,model:t.client_info?.model},p=Gr(o?.provenance,e),m=ze(e,eo(n,f[e])),v=ze(e,Gr(_,e)),g=ze(e,Gr(t.provenance,e)),S=Md(e,t,n,r);return zd([[c,"override"],[p,"session"],[l,"argv"],[m,"environment"],[v,"mcp_client"],[g,"host"],[S,"probe"]])??Hd(e,i)??(d?{value:d,source:"argv"}:void 0)}function Wd(e,t){if(!(!e||!t))return Ed("sha256").update(`pm-agent-instance:v1\0${e}\0${t}`).digest("hex").slice(0,24)}function Bd(e,t,n,r,o){let i=Object.keys(n?.provenance_environment_keys??{}),s=new Set([...Jr,...i,...Object.keys(n?.provenance_resolvers??{}),...Object.keys(e.provenance??{}),...Object.keys(e.client_info?.provenance??{}),...Object.keys(r?.provenance??{})]),a={};for(let c of s){let d=Ud(c,e,t,n,r,o);d?a[c]=d:n&&(c!=="version"||n.provenance_unavailable_dimensions.includes(c))&&(a[c]=null)}return a}function Jh(e){let t=e.map(Te),n=new Map(Ts.map(i=>[i.harness,i])),r=new Set;for(let i of t){if(r.has(i.harness)||n.has(i.harness))throw new Error(`Harness signal descriptor collision for "${i.harness}"`);let s=ot.get(i.harness);if(s&&!Sd(s.descriptor,i))throw new Error(`Harness signal descriptor collision for "${i.harness}"`);r.add(i.harness)}for(let i of t){let s=ot.get(i.harness);ot.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=ot.get(i.harness);!s||s.registrations<=1?ot.delete(i.harness):s.registrations-=1}}}}function Vd(e){let t=Te(e.descriptor),n=e.harness.trim().toLowerCase();if(e.contract_version!==1)throw new Error(`Unsupported provenance adapter contract for "${n}": ${e.contract_version}`);if(t.harness!==n)throw new Error(`Provenance adapter harness "${n}" does not match descriptor "${t.harness}".`);let r=P(e.adapter_version)?.slice(0,64);if(!r)throw new Error(`Provenance adapter "${n}" requires a version.`);if(!Number.isSafeInteger(e.priority))throw new Error(`Provenance adapter "${n}" requires an integer priority.`);if(e.probe_policy.network_access!==!1||e.probe_policy.subprocess_access!==!1||e.probe_policy.max_bytes>Xr||e.probe_policy.max_lines>4096)throw new Error(`Provenance adapter "${n}" exceeds the bounded local probe policy.`);return Object.freeze({...e,adapter_version:r,harness:n,descriptor:t,supported_dimensions:Object.freeze(Se(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 Qh(){let e=new Map(Ss.map(t=>[t.harness,t]));for(let{adapter:t}of Ue.values())e.set(t.harness,t);return Object.freeze([...e.values()].sort((t,n)=>t.harness.localeCompare(n.harness)))}function Zh(e){let t=e.map(Vd),n=new Map(Ss.map(i=>[i.harness,i])),r=new Set;for(let i of t){if(r.has(i.harness))throw new Error(`Provenance adapter collision for "${i.harness}".`);let s=n.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=Ue.get(i.harness);if(a&&JSON.stringify(a.adapter)!==JSON.stringify(i))throw new Error(`Provenance adapter collision for "${i.harness}".`);r.add(i.harness)}for(let i of t){let s=Ue.get(i.harness);Ue.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=Ue.get(i.harness);!s||s.registrations<=1?Ue.delete(i.harness):s.registrations-=1}}}}function ey(e,t){let n=t.trim().slice(0,256),r=n.toLowerCase();if(e==="model"){let o=/^(gpt-\d+(?:\.\d+)?)/u.exec(r)?.[1];o&&(r=o)}else r=r.replaceAll(/[_\s-]+/gu,""),r={minimal:"low",low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max",ultra:"ultra"}[r]??r;return{raw:n,normalized:r,vocabulary:"v1"}}function ty(e,t){return ks.run(e,t)}function ny(e,t,n={}){let r=e.map(Te);return Zr(r),bn.run({descriptors:r,probesEnabled:n.probesEnabled!==!1},t)}function no(e){let t=to(e),n=t.env??{},r=Zr(t.descriptors),o=[...(t.argv??[]).slice(0,3),...t.process_labels??[]].slice(0,64).map(m=>m.slice(0,512)),i=t.client_info?.name.trim().toLowerCase()??"",s=r.find(m=>$d(m,n,o,i)),a=Mr(t,n),c=[eo(n,s?.session_environment_keys),P(t.client_info?.session)?.slice(0,256)].find(m=>m!==void 0),d=Wd(s?.harness,c),l=gs({cwd:t.cwd??process.cwd(),env:n,key:d}),f=Bd(t,n,s,a,l),_=f.model,p=[["harness",s?.harness],["model",_?.value],["model_source",_?.source],["session",c],["instance",d],["provenance",Object.keys(f).length>0?f:void 0],["episode",a.episode]];return Object.fromEntries(p.filter(m=>m[1]!==void 0))}function qd(e){return e==="unavailable"?{status:"unavailable",reason:"harness_unavailable"}:e==="missing"?{status:"unavailable",reason:"resolver_input_missing"}:{status:"failed",reason:"resolver_failed"}}function Gd(e,t,n,r,o,i,s){let a=n?.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 c=Fd(a,n,r,o);return{...qd(c),resolver:a,rule_version:"v1"}}return{status:n?.provenance_unavailable_dimensions.includes(e)?"unavailable":"not_configured",reason:n?.provenance_unavailable_dimensions.includes(e)?"harness_unavailable":"resolver_not_configured",rule_version:"v1"}}function Rs(e){let t=to(e),n=no(t),r=Zr(t.descriptors).find(d=>d.harness===n.harness),o=t.env??{},i=t.probes_enabled!==!1&&bn.getStore()?.probesEnabled!==!1&&!["0","false","off"].includes(P(o.PM_AGENT_PROBES)?.toLowerCase()??""),s=Mr(t,o),a=[o.PM_AGENT_ROLE,s.provenance?.role,eo(o,r?.provenance_environment_keys.role),t.client_info?.provenance?.role,t.provenance?.role,Cs(t.argv??[],"role")].some(d=>{let l=P(d)?.slice(0,256);return l!==void 0&&ze("role",l)===void 0}),c=Object.fromEntries(Jr.map(d=>[d,Gd(d,n,r,t,o,i,d==="role"&&a)]));return{...n,provenance_outcomes:c}}function ry(){return process.env.PM_AUTHOR}function oy(e){e===void 0?delete process.env.PM_AUTHOR:process.env.PM_AUTHOR=e}function iy(e){return no(e).harness}function Kd(e,t,n){let r=to(n),o=no(r);if(e!==void 0){let s=P(e);return s?{author:s,source:"asserted",...o}:{author:"unknown",source:"unknown",...o}}if(r.env?.PM_AUTHOR!==void 0){let s=P(r.env.PM_AUTHOR);return s?{author:s,source:"asserted",...o}:{author:"unknown",source:"unknown",...o}}let i=P(t);return i?{author:i,source:"configured",...o}:o.harness?{author:`harness:${o.harness}`,source:"detected",...o}:{author:"unknown",source:"unknown",...o}}function As(e){let t=gn.getStore();return t?.author===e?t.source:e.startsWith("harness:")?"detected":e==="unknown"?"unknown":"asserted"}function Ds(e){let t=gn.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 Ns(e){let t=gn.getStore();return t?.author===e&&t.source==="detected"&&t.instance?`${e}#${t.instance}`:e}function Ls(e,t){let n=Kd(e,t);return gn.enterWith(n),n.author}import{createHash as Xd}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 cy=["sha256","sha512"],Yd="sha256",Ps="sha256";function Be(e){if(e===void 0)return Yd;if(e==="sha256"||e==="sha512")return e;throw new TypeError(`unsupported_history_hash_algorithm:${String(e)}`)}function Ce(e,t){return Xd(Be(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]="c35d4830-d7d1-5ee4-99bc-ab52cc3e4e09")}catch{}})();var ro=1,oo=2;function io(e){return Math.max(Rt(e),e.tests?.some(t=>t.updated_by!==void 0||t.updated_at!==void 0)?2:1)}function Rt(e){let t=e.pm_format_version;return typeof t=="number"&&Number.isInteger(t)&&t>=1?t:1}function js(e){if(!(typeof e!="number"||!Number.isInteger(e)||e<=1))return e}function Jd(e,t=2,n=t){return e<n?"outdated":e>t?"ahead":"current"}function ly(e,t=2,n=t){let r=[],o=[];for(let i of e){let s=Jd(i.version,t,n);s==="outdated"?r.push(i.ref):s==="ahead"&&o.push(i.ref)}return{outdated:r.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 Qd={"in-progress":"in_progress",cancelled:"canceled"};function vn(e,t){if(t){let o=ns(e,t);if(o)return o}if(typeof e!="string")return;let n=e.trim().toLowerCase();if(!n)return;let r=Qd[n]??n;if(tn.includes(r))return r}function it(e,t){return vn(e,t)??e}function ge(e,t){return t.terminal_statuses.has(it(e,t))}import{encode as ul}from"@toon-format/toon";import{isDeepStrictEqual as zs}from"node:util";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="4d5692ce-ec33-5eb4-bd9b-7497ffe25b0e")}catch{}})();var Zd=16;function so(e){let t=e.trim().replaceAll(/[^A-Za-z0-9]+/g," ").split(/\s+/).filter(o=>o.length>0).map(o=>o.toLowerCase());if(t.length===0)return e;let[n,...r]=t;return`${n}${r.map(o=>`${o.slice(0,1).toUpperCase()}${o.slice(1)}`).join("")}`}function el(e){return[...new Set([os(e),so(e.key),so(e.cli_flag),...e.cli_aliases.map(t=>so(t))])]}function $s(e,t){for(let n of el(t)){if(!Object.hasOwn(e,n))continue;let r=e[n];if(r!==void 0)return r}}function Hs(e){return Array.isArray(e)?e.flatMap(t=>Hs(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 Ms(e,t){if(typeof e=="boolean")return e;if(typeof e=="number"){if(e===1)return!0;if(e===0)return!1}if(typeof e=="string"){let n=e.trim().toLowerCase();if(n==="true"||n==="1"||n==="yes")return!0;if(n==="false"||n==="0"||n==="no")return!1}throw new h(`${t} must be one of true|false|1|0|yes|no`,b.USAGE)}function Fs(e,t){if(typeof e=="number"&&Number.isFinite(e))return e;let n=typeof e=="string"?e.trim():String(e),r=Number(n);if(!Number.isFinite(r))throw new h(`${t} must be a number`,b.USAGE);return r}function tl(e,t,n){let r=typeof e=="string"?(()=>{try{return JSON.parse(e)}catch{return}})():e;if(n==="array"&&Array.isArray(r)||n==="object"&&typeof r=="object"&&r!==null&&!Array.isArray(r))return r;throw new h(`${t} must be valid JSON ${n}`,b.USAGE)}function nl(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 rl(e,t,n){if(t.const!==void 0&&D(e)!==D(t.const))return`${n} must equal ${D(t.const)}`;if(t.enum!==void 0&&!t.enum.some(r=>D(r)===D(e)))return`${n} must be one of ${t.enum.map(r=>D(r)).join("|")}`;if(!nl(e,t.type))return`${n} must match configured type ${String(t.type)}`;if(typeof e=="string"){if(t.min_length!==void 0&&e.length<t.min_length)return`${n} must contain at least ${t.min_length} characters`;if(t.format==="date-time"&&!ls(e))return`${n} must be an RFC 3339 date-time`}}function ol(e,t,n,r){if(Array.isArray(e)){if(t.min_items!==void 0&&e.length<t.min_items)return`${n} must contain at least ${t.min_items} items`;if(t.items)for(let[o,i]of e.entries()){let s=wn(i,t.items,`${n}[${o}]`,r+1);if(s)return s}}}function il(e,t,n,r){if(typeof e!="object"||e===null||Array.isArray(e))return;let o=e;for(let i of t.required??[])if(!Object.hasOwn(o,i))return`${n}.${i} is required`;for(let[i,s]of Object.entries(o)){let a=t.properties?.[i];if(!a){if(t.additional_properties===!1)return`${n}.${i} is not allowed`;continue}let c=wn(s,a,`${n}.${i}`,r+1);if(c)return c}}function wn(e,t,n,r=0){if(r>Zd)return`${n} value schema exceeds maximum depth`;let o=rl(e,t,n);if(o)return o;let i=ol(e,t,n,r);if(i)return i;let s=il(e,t,n,r);if(s)return s;if(!t.one_of)return;let a=0;for(let c of t.one_of)if(wn(e,c,n,r+1)===void 0&&(a+=1,a>1))break;return a===1?void 0:`${n} must match exactly one configured schema variant`}function Ve(e,t,n){if(!e.value_schema||t===void 0)return t;let r=wn(t,e.value_schema,n);if(r)throw new h(r,b.USAGE);return t}function sl(e,t,n,r){let o=r==="option"&&Array.isArray(t)?t[t.length-1]:t;if(o!==void 0)return Ve(e,tl(o,n,e.type),n)}function At(e,t,n,r="option"){let o=n??`--${e.cli_flag}`;if(e.type==="array"||e.type==="object")return sl(e,t,o,r);if(e.repeatable||e.type==="string_array"){let s=Hs(t);return e.type==="number"?Ve(e,s.map(a=>Fs(a,o)),o):e.type==="boolean"?Ve(e,s.map(a=>Ms(a,o)),o):Ve(e,s,o)}let i=Array.isArray(t)?t[t.length-1]:t;if(i!==void 0)return e.type==="number"?Ve(e,Fs(i,o),o):e.type==="boolean"?Ve(e,Ms(i,o),o):Ve(e,typeof i=="string"?i:String(i),o)}function al(e,t){return!e.required&&!e.required_on_create?!1:e.required_types.length===0?!0:t?e.required_types.map(n=>n.toLowerCase()).includes(t.trim().toLowerCase()):!1}function vy(e,t,n){let r={},o=[];for(let i of t.command_to_fields.get("create")??[]){let s=$s(e,i);if(s===void 0){al(i,n)&&o.push(`--${i.cli_flag}`);continue}r[i.metadata_key]=At(i,s)}return{values:r,missing_required_flags:[...new Set(o)].sort((i,s)=>i.localeCompare(s))}}function wy(e,t,n=["update"]){let r={},o=(n??["update"]).flatMap(s=>t.command_to_fields.get(s)??[]),i=new Set;for(let s of o){let a=$s(e,s);a!==void 0&&(i.has(s.metadata_key)||(i.add(s.metadata_key),r[s.metadata_key]=At(s,a)))}return r}import{decode as cl}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 ao(e){return{value:cl(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 dl=/^\s*(<<<<<<<|=======|>>>>>>>)(?:\s.*)?$/;function ll(e){if(e.length===0)return[];let t=e.split(/\r?\n/),n=[];for(let r=0;r<t.length;r+=1){let o=t[r]??"",i=o.match(dl);if(!i)continue;let s=i[1];n.push({line:r+1,marker:s,text:o})}return n}function En(e){return ll(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]="a3768d4b-d991-516e-91ff-7bd9373c192f")}catch{}})();var fo=new Set(["schema","tracker","auto","none"]),qs=new Set(["source","isolated","snapshot"]),fl=new Set(["legacy","local_mutation","local_source_ref","acknowledged","invalid_provenance","foreign_source_ref"]),ml=new Set(["passed","failed","stopped","canceled"]),_l=new Set(Pi);function ct(e){return e.replaceAll("\\","/")}function Gs(e){for(let t of e)if(t!==0)return t;return 0}function In(e){for(let[t,n]of Object.entries(e))n===void 0&&delete e[t]}var Ks=["id","title","description","created_at","updated_at"],pl=new Set(we);function Xs(e){if(e?.schema)return{statusRegistry:un(e.schema),fieldRegistry:rs(e.schema),unknownFieldPolicy:e.schema.unknown_field_policy??"allow",extensionFieldNames:new Set(e.extensionFieldNames??[]),onWarning:e.onWarning}}function hl(e,t){return e.required?e.required_types.length===0?!0:e.required_types.map(n=>n.toLowerCase()).includes(t.trim().toLowerCase()):!1}function xe(e){let t=e.match(/^([a-z_][\w.]*)\s/u)?.[1];throw new h(`Invalid item metadata: ${e}`,b.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 Lt(e,t){throw new h(t,b.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 Ys(e,t){if(!t||typeof e!="object"||e===null)return;let n=Rt(e);if(!(n<=oo))throw new h(`Stored item uses format version ${n}; this runtime supports up to ${oo}. Upgrade pm before reading or changing this item.`,b.CONFLICT,{code:"item_format_version_unsupported",format_version:n,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 Js(e){let t=new Set(pl);for(let n of e.fieldRegistry?.definitions??[])t.add(n.metadata_key);for(let n of e.extensionFieldNames)t.add(n);return t}function I(e,t){e||xe(t)}function Pt(e,t){return(typeof e!="object"||e===null||Array.isArray(e))&&xe(t),e}function co(e,t){let n=e[t];I(typeof n=="string",`${t} must be a string`),I(pe(n),`${t} must be a valid ISO timestamp`)}function Us(e,t,n){let r=e[t];r!==void 0&&I(typeof r=="number"&&Number.isInteger(r)&&r>=1,`${n} must be an integer >= 1`)}function mo(e,t,n){let r=e[t];r!==void 0&&(I(typeof r=="string",`${n} must be a string`),I(pe(r),`${n} must be a valid ISO timestamp`))}function yl(e){if(e!==void 0){I(Array.isArray(e),"event.recurrence.by_weekday must be an array");for(let t of e){I(typeof t=="string","event.recurrence.by_weekday entries must be strings");let n=t.trim().toLowerCase();I(sn.includes(n),`event.recurrence.by_weekday entries must be one of: ${sn.join(", ")}`)}}}function gl(e){if(e!==void 0){I(Array.isArray(e),"event.recurrence.by_month_day must be an array");for(let t of e)I(typeof t=="number"&&Number.isInteger(t)&&t>=1&&t<=31,"event.recurrence.by_month_day entries must be integers 1..31")}}function bl(e){if(e!==void 0){I(Array.isArray(e),"event.recurrence.exdates must be an array");for(let t of e)I(typeof t=="string","event.recurrence.exdates entries must be strings"),I(pe(t),"event.recurrence.exdates entries must be valid ISO timestamps")}}function vl(e){let t=Pt(e,"event.recurrence must be an object");I(typeof t.freq=="string","event.recurrence.freq must be a string");let n=t.freq.trim().toLowerCase();I(on.includes(n),`event.recurrence.freq must be one of: ${on.join(", ")}`),Us(t,"interval","event.recurrence.interval"),Us(t,"count","event.recurrence.count"),mo(t,"until","event.recurrence.until"),yl(t.by_weekday),gl(t.by_month_day),bl(t.exdates)}function wl(e){for(let r of Ks)I(typeof e[r]=="string",`${r} is required and must be a string`);let t=e.type;I(typeof t=="string"&&t.trim().length>0,"type must be a non-empty string");let n=e.pm_format_version;return n!==void 0&&I(typeof n=="number"&&Number.isInteger(n)&&n>=ro,`pm_format_version must be an integer >= ${ro}`),t}function El(e,t){let n=e.status;I(typeof n=="string"&&n.trim().length>0,"status must be a non-empty string");let r=t?.statusRegistry,o=vn(n,r),i=r?r.definitions.map(s=>s.id):[...tn];I(o!==void 0,`status must be one of: ${i.join(", ")}`)}function kl(e){let t=e.priority;I(typeof t=="number"&&Number.isInteger(t)&&[0,1,2,3,4].includes(t),"priority must be an integer 0..4");let n=e.tags;I(Array.isArray(n),"tags must be an array");for(let r of n)I(typeof r=="string","tags entries must be strings")}function Il(e){let t=e.confidence;if(t!==void 0){if(typeof t=="number"){I(Number.isInteger(t)&&t>=0&&t<=100,"confidence number value must be an integer 0..100");return}if(typeof t=="string"){let n=t.trim().toLowerCase(),r=n==="med"||rn.includes(n);I(r,`confidence string value must be one of: ${[...rn,"med"].join(", ")}`);return}I(!1,"confidence must be a number or string")}}function Sl(e){let t=e.severity;if(t===void 0)return;typeof t!="string"&&xe("severity must be a string");let n=t.trim().toLowerCase(),r=n==="med"||nn.includes(n);I(r,`severity value must be one of: ${[...nn,"med"].join(", ")}`)}function Tl(e){e.regression!==void 0&&typeof e.regression!="boolean"&&xe("regression must be a boolean")}function Cl(e){let t=e.reminders;if(t!==void 0){I(Array.isArray(t),"reminders must be an array");for(let n of t){let r=Pt(n,"reminders entries must be objects");I(typeof r.at=="string","reminder.at must be a string"),I(pe(r.at),"reminder.at must be a valid ISO timestamp"),I(typeof r.text=="string","reminder.text must be a string"),I(r.text.trim().length>0,"reminder.text must not be empty")}}}function xl(e){for(let t of["title","description","location","timezone"])e[t]!==void 0&&(I(typeof e[t]=="string",`event.${t} must be a string`),I(e[t].trim().length>0,`event.${t} must not be empty`))}function Ol(e){e.recurrence!==void 0&&(vl(e.recurrence),e.recurrence.until!==void 0&&I(he(e.recurrence.until,e.start_at)>=0,"event.recurrence.until must be at or after event.start_at"))}function Rl(e){let t=Pt(e,"events entries must be objects");I(typeof t.start_at=="string","event.start_at must be a string"),I(pe(t.start_at),"event.start_at must be a valid ISO timestamp"),t.end_at!==void 0&&(I(typeof t.end_at=="string","event.end_at must be a string"),I(pe(t.end_at),"event.end_at must be a valid ISO timestamp"),I(he(t.end_at,t.start_at)>0,"event.end_at must be after event.start_at")),xl(t),t.all_day!==void 0&&I(typeof t.all_day=="boolean","event.all_day must be a boolean"),Ol(t)}function Al(e){let t=e.events;if(t!==void 0){I(Array.isArray(t),"events must be an array");for(let n of t)Rl(n)}}function Dl(e){for(let t of["source_type","source_owner","design","external_ref"]){let n=e[t];n!==void 0&&I(typeof n=="string",`${t} must be a string`)}}function Nl(e){let t=e.type_options;if(t===void 0)return;let n=Pt(t,"type_options must be an object");for(let[r,o]of Object.entries(n))I(r.trim().length>0,"type_options keys must be non-empty"),I(typeof o=="string","type_options values must be strings"),I(o.trim().length>0,"type_options values must be non-empty strings")}function Ll(e,t,n){if(n?.fieldRegistry)for(let r of n.fieldRegistry.definitions){let o=e[r.metadata_key];if(o===void 0){hl(r,t)&&xe(`missing required schema field: ${r.metadata_key}`);continue}try{e[r.metadata_key]=At(r,o,`metadata field "${r.metadata_key}"`,"metadata")}catch(i){xe(String(i?.message).replace(/^Invalid\s+/u,""))}}}function Pl(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let n=Js(t),r=Object.keys(e).filter(o=>!n.has(o)).sort((o,i)=>o.localeCompare(i));r.length!==0&&(t.unknownFieldPolicy==="reject"?xe(`unknown schema fields are not allowed: ${r.join(", ")}`):t.onWarning?.(`item_unknown_schema_fields:${r.join(",")}`))}function _o(e,t){let n=Pt(e,"item metadata must be an object"),r=wl(n);El(n,t),kl(n),Il(n),Sl(n),Tl(n),co(n,"created_at"),co(n,"updated_at"),n.deadline!==void 0&&co(n,"deadline"),Cl(n),Al(n),mo(n,"closed_at","closed_at"),mo(n,"completed_at","completed_at"),Dl(n),Nl(n),Ll(n,r,t),Pl(n,t)}function jl(e){if(!(!e||e.length===0))return[...e].map(t=>({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,n)=>{let r=he(t.created_at,n.created_at);if(r!==0)return r;let o=t.id.localeCompare(n.id);if(o!==0)return o;let i=t.kind.localeCompare(n.kind);return i!==0?i:(t.source_kind??"").localeCompare(n.source_kind??"")})}function lo(e){if(!(!e||e.length===0))return[...e].sort((t,n)=>{let r=he(t.created_at,n.created_at);if(r!==0)return r;let o=t.text.localeCompare(n.text);return o!==0?o:t.author.localeCompare(n.author)})}function Ml(e){if(!e||e.length===0)return;let t=[...e].map(n=>({at:n.at,text:n.text.trim()})).filter(n=>n.text.length>0).sort((n,r)=>{let o=he(n.at,r.at);return o!==0?o:n.text.localeCompare(r.text)});return t.length===0?void 0:t}function Fl(e){if(!e)return;let t=e.freq.trim().toLowerCase();if(!on.includes(t))return;let n=Array.from(new Set((e.by_weekday??[]).map(s=>s.trim().toLowerCase()).filter(s=>sn.includes(s)))).sort((s,a)=>Tr(s)-Tr(a)),r=Array.from(new Set((e.by_month_day??[]).filter(s=>Number.isInteger(s)&&s>=1&&s<=31).map(s=>s))).sort((s,a)=>s-a),o=Array.from(new Set((e.exdates??[]).map(s=>s.trim()).filter(s=>pe(s)))).sort((s,a)=>he(s,a)),i={freq:t,interval:e.interval!==void 0&&e.interval>1?e.interval:void 0,count:e.count,until:e.until?.trim()||void 0,by_weekday:n.length>0?n:void 0,by_month_day:r.length>0?r:void 0,exdates:o.length>0?o:void 0};for(let[s,a]of Object.entries(i))a===void 0&&delete i[s];return i}function $l(e){return!Array.isArray(e)||e.length===0?void 0:[...e].map(Hl).sort(zl)}function Hl(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:Fl(e.recurrence)};return In(t),t}function zl(e,t){return Gs([he(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 Ul(e){if(!(!e||e.length===0))return e.map(t=>({path:ct(t.path),scope:t.scope,note:t.note?.trim()||void 0}))}function Wl(e){if(!e||e.length===0)return;let t=e.map(Gl).filter(n=>n.run_id.length>0&&n.started_at.length>0&&n.finished_at.length>0&&n.recorded_at.length>0).sort((n,r)=>Gs([he(n.recorded_at,r.recorded_at),n.run_id.localeCompare(r.run_id),n.kind.localeCompare(r.kind)]));return t.length>0?t:void 0}function st(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?Math.floor(e):void 0}function Bl(e){return typeof e=="number"&&Number.isFinite(e)&&e>=1?Math.floor(e):void 0}function uo(e){return typeof e=="string"?e:""}function Vl(e){if(!Array.isArray(e))return;let t=e.filter(r=>r!==null&&typeof r=="object"&&typeof r.name=="string"&&r.name.trim().length>0&&typeof r.value=="number"&&Number.isFinite(r.value)&&typeof r.recorded_at=="string"&&r.recorded_at.trim().length>0).map(r=>({name:r.name.trim(),value:r.value,unit:typeof r.unit=="string"&&r.unit.trim()||void 0,threshold:typeof r.threshold=="number"&&Number.isFinite(r.threshold)?r.threshold:void 0,recorded_at:r.recorded_at.trim()})),n=[...new Map(t.map(r=>[r.name,r])).values()].sort((r,o)=>r.name.localeCompare(o.name)).slice(0,32);return n.length>0?n:void 0}function kn(e,t){return typeof e=="string"&&t.has(e)?e:void 0}function ql(e){if(!Array.isArray(e))return;let t=e.filter(n=>n&&typeof n.command=="string"&&n.command.trim().length>0).slice(0,32).map(n=>({command:n.command.trim(),requested_pm_context_mode:kn(n.requested_pm_context_mode,fo),pm_context_mode:kn(n.pm_context_mode,fo),workspace_context_mode:kn(n.workspace_context_mode,qs),trust_reason:kn(n.trust_reason,fl)}));return t.length>0?t:void 0}function Gl(e){let t=typeof e.run_id=="string"?e.run_id.trim():"",n=e.kind==="test"||e.kind==="test-all"?e.kind:"test",r=ml.has(e.status)?e.status:"failed",o={run_id:t,kind:n,status:r,started_at:uo(e.started_at),finished_at:uo(e.finished_at),recorded_at:uo(e.recorded_at),attempt:Bl(e.attempt),resumed_from:e.resumed_from?.trim()||void 0,passed:st(e.passed)??0,failed:st(e.failed)??0,skipped:st(e.skipped)??0,items:st(e.items),linked_tests:st(e.linked_tests),fail_on_skipped_triggered:e.fail_on_skipped_triggered===!0?!0:void 0,measurements:Vl(e.measurements),executions:ql(e.executions)};return In(o),o}function Kl(e){if(!(!Array.isArray(e)||e.length===0))return e.map(Zl)}function Dt(e){if(!Array.isArray(e))return;let t=[...new Set(e.filter(n=>typeof n=="string").map(n=>n.trim()).filter(n=>n.length>0))].sort((n,r)=>n.localeCompare(r));return t.length>0?t:void 0}function go(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function bo(e){return e==="__proto__"||e==="constructor"||e==="prototype"}function Ws(e){if(!go(e))return;let t=Object.entries(e).map(([n,r])=>[n.trim(),String(r).trim()]).filter(([n,r])=>n.length>0&&!bo(n)&&r.length>0).sort(([n],[r])=>n.localeCompare(r));return t.length>0?Object.fromEntries(t):void 0}function Xl(e){if(!go(e))return;let t=Object.entries(e).map(([n,r])=>[n.trim(),Number(r)]).filter(([n,r])=>n.length>0&&!bo(n)&&Number.isFinite(r)).sort(([n],[r])=>n.localeCompare(r));return t.length>0?Object.fromEntries(t):void 0}function Yl(e){let t=e?.trim().toLowerCase();if(!(!t||!fo.has(t)))return t}function Jl(e){let t=e?.trim().toLowerCase();if(!(!t||!qs.has(t)))return t}function Ql(e,t){if(t===!0)return{provenance_invalid:!0};if(e===void 0)return{};if(!go(e))return{provenance_invalid:!0};let n=w(e.author),r=w(e.created_at),o=e.source_kind;return!n||!r||!pe(r)||o!=="local_mutation"&&o!=="merge_union"?{provenance_invalid:!0}:{provenance:{author:n,created_at:r,source_kind:o,source_ref:w(e.source_ref)}}}function Zl(e){let t={command:e.command?.trim()||void 0,path:e.path?ct(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:Yl(e.pm_context_mode),workspace_context_mode:Jl(e.workspace_context_mode),...Ql(e.provenance,e.provenance_invalid),updated_by:w(e.updated_by),updated_at:w(e.updated_at),env_set:Ws(e.env_set),env_clear:Dt(e.env_clear),shared_host_safe:e.shared_host_safe===!0?!0:void 0,assert_stdout_contains:Dt(e.assert_stdout_contains),assert_stdout_regex:Dt(e.assert_stdout_regex),assert_stderr_contains:Dt(e.assert_stderr_contains),assert_stderr_regex:Dt(e.assert_stderr_regex),assert_stdout_min_lines:st(e.assert_stdout_min_lines),assert_json_field_equals:Ws(e.assert_json_field_equals),assert_json_field_gte:Xl(e.assert_json_field_gte),note:e.note?.trim()||void 0};return In(t),t}function eu(e){if(!(!e||e.length===0))return[...e].map(t=>({path:ct(t.path),scope:t.scope,note:t.note?.trim()||void 0})).sort((t,n)=>{let r=t.scope.localeCompare(n.scope);if(r!==0)return r;let o=t.path.localeCompare(n.path);return o!==0?o:(t.note??"").localeCompare(n.note??"")})}function w(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function tu(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=w(r.id),i=w(r.kind);if(!o||!i)continue;let s={id:o,kind:i},a=w(r.note);a&&(s.note=a),r.required_before_step===!0&&(s.required_before_step=!0),t.push(s)}return t.length>0?t:void 0}function nu(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=w(r.path);if(!o)continue;let i={path:ct(o)};(r.scope==="project"||r.scope==="global")&&(i.scope=r.scope);let s=w(r.note);s&&(i.note=s),t.push(i)}return t.length>0?t:void 0}function ru(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=w(r.command),i=w(r.path);if(!o&&!i)continue;let s={};o&&(s.command=o),i&&(s.path=ct(i));let a=w(r.note);a&&(s.note=a),t.push(s)}return t.length>0?t:void 0}function ou(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=w(r.path);if(!o)continue;let i={path:ct(o)};(r.scope==="project"||r.scope==="global")&&(i.scope=r.scope);let s=w(r.note);s&&(i.note=s),t.push(i)}return t.length>0?t:void 0}function iu(e){if(e===null||typeof e!="object")return;let t=e,n=w(t.id),r=w(t.title),o=w(t.status),i=o&&_l.has(o)?o:void 0,s=zi(t.order)??Number.NaN,a=typeof t.created_at=="string"?t.created_at:"",c=typeof t.updated_at=="string"?t.updated_at:"";if(!n||!r||!i||!Number.isFinite(s)||!a||!c)return;let d={id:n,order:s,title:r,status:i,created_at:a,updated_at:c};return su(d,t),d}function su(e,t){let n=[["body","body"],["owner","owner"],["evidence","evidence"],["blocked_reason","blocked_reason"],["superseded_by","superseded_by"]];for(let[i,s]of n){let a=w(t[s]);a&&(e[i]=a)}let r=typeof t.completed_at=="string"?t.completed_at:void 0;r&&r.length>0&&(e.completed_at=r);let o=[["linked_items","linked_items",tu],["files","files",nu],["tests","tests",ru],["docs","docs",ou]];for(let[i,s,a]of o){let c=a(t[s]);c&&(e[i]=c)}}function au(e){if(!Array.isArray(e))return;let t=e.flatMap(n=>{let r=iu(n);return r?[r]:[]});return t.sort((n,r)=>n.order-r.order),t.length>0?t:void 0}function cu(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=typeof r.ts=="string"?r.ts:"",i=typeof r.author=="string"?r.author:"",s=w(r.decision);if(!o||!i||!s)continue;let a={ts:o,author:i,decision:s},c=w(r.rationale);c&&(a.rationale=c);let d=w(r.evidence);d&&(a.evidence=d);let l=w(r.step_id);l&&(a.step_id=l),t.push(a)}return t.length>0?t:void 0}function du(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=typeof r.ts=="string"?r.ts:"",i=typeof r.author=="string"?r.author:"",s=w(r.text);if(!o||!i||!s)continue;let a={ts:o,author:i,text:s},c=w(r.step_id);c&&(a.step_id=c),t.push(a)}return t.length>0?t:void 0}function lu(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(n===null||typeof n!="object")continue;let r=n,o=w(r.text);if(!o)continue;let i={text:o},s=w(r.command);s&&(i.command=s);let a=w(r.expected);a&&(i.expected=a),t.push(i)}return t.length>0?t:void 0}function uu(e){if(!e)return;let t=Object.entries(e).map(([n,r])=>[n.trim(),r.trim()]).filter(([n,r])=>n.length>0&&r.length>0).sort((n,r)=>n[0].localeCompare(r[0]));if(t.length!==0)return Object.fromEntries(t)}function at(e){let t=0;for(;t<e.length&&e[t]===`
6
+ `;)t+=1;return e.slice(t).trimEnd()}function fu(e){if(e===void 0)return;if(typeof e=="number")return e;let t=e.trim().toLowerCase();if(t==="med")return"medium";if(rn.includes(t))return t}function mu(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(t==="med")return"medium";if(nn.includes(t))return t}function Nt(e){return e||void 0}function _u(e,t){let n=e,r=t;for(let[o,i]of Object.entries(r))bo(o)||Object.prototype.hasOwnProperty.call(n,o)||i===void 0||(n[o]=i)}function pu(e,t){if(!t?.fieldRegistry)return;let n=e;for(let r of t.fieldRegistry.definitions){let o=n[r.metadata_key];o!==void 0&&(n[r.metadata_key]=At(r,o,`metadata field "${r.metadata_key}"`,"metadata"))}}function hu(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let n=Js(t),r=Object.keys(e).filter(o=>!n.has(o)).sort((o,i)=>o.localeCompare(i));r.length>0&&t.unknownFieldPolicy==="reject"&&xe(`unknown schema fields are not allowed: ${r.join(", ")}`),r.length>0&&t.onWarning?.(`item_unknown_schema_fields:${r.join(",")}`)}function Sn(e,t={}){let n=Xs(t),r=vn(e.status,n?.statusRegistry)??e.status,o=Array.from(new Set((Array.isArray(e.tags)?e.tags:[]).filter(s=>typeof s=="string").map(s=>s.trim().toLowerCase()).filter(Boolean))).sort((s,a)=>s.localeCompare(a)),i={id:e.id,title:e.title,description:e.description,type:e.type,pm_format_version:js(e.pm_format_version),source_type:w(e.source_type),type_options:uu(e.type_options),status:r,priority:e.priority,tags:o,created_at:e.created_at,updated_at:e.updated_at,dependencies:jl(e.dependencies),comments:lo(e.comments),notes:lo(e.notes),learnings:lo(e.learnings),files:Ul(e.files),tests:Kl(e.tests),test_runs:Wl(e.test_runs),docs:eu(e.docs),deadline:Nt(e.deadline),reminders:Ml(e.reminders),events:$l(e.events),closed_at:Nt(e.closed_at),completed_at:Nt(e.completed_at),assignee:w(e.assignee),claim_principal:w(e.claim_principal),source_owner:w(e.source_owner),author:Nt(e.author),estimated_minutes:e.estimated_minutes,acceptance_criteria:e.acceptance_criteria??void 0,design:e.design??void 0,external_ref:e.external_ref??void 0,definition_of_ready:w(e.definition_of_ready),order:e.order,goal:w(e.goal),objective:w(e.objective),value:w(e.value),impact:w(e.impact),outcome:w(e.outcome),why_now:w(e.why_now),parent:w(e.parent),reviewer:w(e.reviewer),risk:e.risk??void 0,confidence:fu(e.confidence),sprint:w(e.sprint),release:w(e.release),blocked_by:w(e.blocked_by),blocked_reason:w(e.blocked_reason),unblock_note:w(e.unblock_note),reporter:w(e.reporter),severity:mu(e.severity),environment:w(e.environment),repro_steps:w(e.repro_steps),resolution:w(e.resolution),expected_result:w(e.expected_result),actual_result:w(e.actual_result),affected_version:w(e.affected_version),fixed_version:w(e.fixed_version),component:w(e.component),regression:e.regression,customer_impact:w(e.customer_impact),close_reason:Nt(e.close_reason),plan_mode:w(e.plan_mode),plan_scope:w(e.plan_scope),plan_harness:w(e.plan_harness),plan_resume_context:w(e.plan_resume_context),plan_steps:au(e.plan_steps),plan_decisions:cu(e.plan_decisions),plan_discoveries:du(e.plan_discoveries),plan_validation:lu(e.plan_validation)};return _u(i,e),pu(i,n),hu(i,n),In(i),i}function Qs(e){return T(e,we)}function yu(e){let t=0,n=!1,r=!1;for(let o=0;o<e.length;o+=1){let i=e[o];if(n){if(r){r=!1;continue}if(i==="\\"){r=!0;continue}i==='"'&&(n=!1);continue}if(i==='"'){n=!0;continue}if(i==="{"){t+=1;continue}if(i==="}"&&(t-=1,t===0))return o}return-1}function gu(e){if(!e.startsWith("{"))return{frontMatter:"",body:e};let t=yu(e);if(t<0)return{frontMatter:"",body:e};let n=e.slice(0,t+1),r=e.slice(t+1).replace(/^\r?\n+/,"");return{frontMatter:n,body:r}}function bu(e){let t=e.charCodeAt(0)===65279?e.slice(1):e,n=t.match(/^[ \t]*---[ \t]*(?:\r?\n|$)/);if(!n)return{content:t,stripped:!1};let r=n[0].length;for(;r<t.length;){let o=t.indexOf(`
7
+ `,r),i=o===-1?t.length:o,s=t.slice(r,i).replace(/\r$/,""),a=o===-1?i:i+1;if(s.trim()==="---")return{content:t.slice(a).replace(/^\s+/,""),stripped:!0};r=a}return{content:t,stripped:!1}}function po(e,t){return Sn(e,{...t,onWarning:void 0})}function vu(e,t,n={}){let r=bu(e);r.stripped&&n.onWarning?.("json_markdown_leading_yaml_frontmatter_ignored");let{frontMatter:o,body:i}=gu(r.content);o||(e.trimStart().startsWith("{")&&Lt("json_markdown","JSON front matter is not valid JSON"),Lt("json_markdown","JSON Markdown item document is missing JSON front matter"));let s;try{s=JSON.parse(o)}catch{Lt("json_markdown","JSON front matter is not valid JSON")}return Ys(s,n.requireSupportedFormat),_o(s,t),{metadata:po(s,n),body:at(i)}}function wu(e,t,n={}){let r;try{r=ao(e).value}catch{Lt("toon","TOON item document is not valid TOON")}I(typeof r=="object"&&r!==null&&!Array.isArray(r),"TOON item document must be an object");let o=r;if(Ys(Object.prototype.hasOwnProperty.call(o,"front_matter")?o.front_matter:o,n.requireSupportedFormat),!Ks.some(a=>Object.prototype.hasOwnProperty.call(o,a))&&!Object.prototype.hasOwnProperty.call(o,"front_matter")&&Lt("toon","TOON input does not have the shape of an item document"),Object.prototype.hasOwnProperty.call(o,"front_matter"))return _o(o.front_matter,t),I(o.body===void 0||typeof o.body=="string","TOON item document body must be a string"),{metadata:po(o.front_matter,n),body:at(typeof o.body=="string"?o.body:"")};let{body:i,...s}=o;return I(i===void 0||typeof i=="string","TOON item document body must be a string"),_o(s,t),{metadata:po(s,n),body:at(typeof i=="string"?i:"")}}function Eu(e,t={}){let n=Sn(e.metadata,t),r=Qs(n),o=at(e.body??"");yo(JSON.parse(JSON.stringify(r))),yo({body:o});let i=JSON.stringify(r,null,2);return o?`${i}
8
+
9
+ ${o}
10
+ `:`${i}
11
+ `}var ku=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/u;function ho(e,t){return typeof e=="string"?Bs(e,t):e===null||typeof e!="object"?null:Array.isArray(e)?Vs(e.map((n,r)=>()=>ho(n,`${t}[${r}]`))):Vs(Object.entries(e).map(([n,r])=>()=>{let o=t?`${t}.${n}`:n;return Bs(n,`${o} (key)`)??ho(r,o)}))}function Bs(e,t){let n=e.search(ku);return n<0?null:{path:t,index:n}}function Vs(e){for(let t of e){let n=t();if(n!==null)return n}return null}function yo(e){let t=ho(e,"");if(t!==null)throw new h(`Item field ${t.path} contains an unpaired surrogate code unit at index ${t.index}; persisted item text requires well-formed Unicode.`,b.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 Iu(e,t={}){let n=Sn(e.metadata,t),r=Qs(n),o=at(e.body??""),i={...r,body:o},s=JSON.parse(JSON.stringify(i));yo(s);let a=ul(s),c;try{c=ao(a).value}catch(d){throw new h("Refusing to persist a TOON item document that the configured decoder cannot read back.",b.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:d instanceof Error?d.message:String(d)})}if(!zs(c,s)){let d=typeof c=="object"&&c!==null&&!Array.isArray(c)?c:{},l=Object.keys(s).find(f=>!zs(s[f],d[f]))??"document";throw new h(`Refusing to persist a lossy TOON item document; round-trip mismatch at field "${l}".`,b.GENERIC_FAILURE,{code:"item_document_roundtrip_failed",reason:"encode_decode_mismatch",format:"toon",field:l,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}
12
+ `}function Tn(e,t={}){let n=En(e);if(n)throw new h(`Merge conflict markers detected in item document at line ${n.line} (${n.marker}). Resolve <<<<<<< ======= >>>>>>> markers and retry.`,b.GENERIC_FAILURE,{code:"merge_conflict_markers_detected",reason:"merge_conflict",required:"Resolve merge-conflict markers in the item file before parsing or mutation commands.",why:"Partially merged documents can corrupt item metadata and history integrity.",examples:["git status","git add <resolved-file> && git commit"],nextSteps:["Resolve conflicts, save the file, then rerun the pm command."]});let r=t.format??"toon",o=Xs(t);return r==="toon"?wu(e,o,t):vu(e,o,t)}function Zs(e,t={}){return(t.format??"toon")==="toon"?Iu(e,t):Eu(e,t)}function ne(e,t={}){return{metadata:Sn(e.metadata,t),body:at(e.body??"")}}(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]="cfedb84f-0525-5e02-af0a-d0e5691b5e0a")}catch{}})();async function Su(e,t){let n=await Ee(e);if(n===null)return{raw:n,entries:[]};if(await ke({path:e,scope:"project"}),n.trim()==="")return{raw:n,entries:[]};let r=En(n);if(r)throw new h(`History for ${t} contains merge conflict markers at line ${r.line} (${r.marker}). Resolve <<<<<<< ======= >>>>>>> markers and retry.`,b.GENERIC_FAILURE,{code:"history_merge_conflict_markers_detected",required:"Repair the history stream by resolving merge-conflict markers.",why:"Conflict markers break JSONL parsing and invalidate deterministic audit history.",examples:[`pm history ${t}`,`pm restore ${t} <timestamp-or-version>`],nextSteps:["Resolve or restore the history file, then rerun the command."]});let o=[];for(let[i,s]of n.split(/\r?\n/).entries()){let a=s.trim();if(a)try{o.push(JSON.parse(a))}catch{throw new h(`History for ${t} contains invalid JSON at line ${i+1}. Repair or restore the history stream and retry.`,b.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,entries:o}}async function be(e,t){return(await Su(e,t)).entries}import Lo 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 ea(e){let t=[],n=e[0]?.op==="history_compact_baseline",r=n?1:void 0,o=!1;for(let[i,s]of e.entries())s.op==="delete"&&(o=!0),s.op==="create"&&(r!==void 0&&t.push({prior_genesis_index:r,repeated_create_index:i+1,sequence:o?"delete_then_create":n?"checkpoint_then_create":"multiple_creates"}),r??=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]="82c79093-2a40-5b4c-8d41-637b0ae03c4f")}catch{}})();import ba from"fast-json-patch";import pa from"node:fs/promises";import ef from"node:path";import M from"node:fs/promises";import H from"node:path";import{randomUUID as na}from"node:crypto";import{createRequire as Du}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]="3c2c29c0-0034-54d4-9dbd-2e9af047784e")}catch{}})();var Tu=["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"],Cu=["append","cancel","claim","close","comment_add","create","learning_add","note_add","reopen"],xu=new Set(Tu),Ou=new Set(Cu),Ru=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 Au(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 dt(e){return e.event_class==="substantive"||e.event_class==="maintenance"?e.event_class:xu.has(e.op)?"maintenance":Ou.has(e.op)||e.op!=="update"?"substantive":Array.isArray(e.patch)&&e.patch.length>0&&e.patch.every(t=>{let n=Au(t);return n!==void 0&&Ru.has(n)})?"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 vo(e){let t=process.emitWarning;process.emitWarning=(n,...r)=>{n==="SQLite is an experimental feature and might change at any time"&&r[0]==="ExperimentalWarning"||Reflect.apply(t,process,[n,...r])};try{return e(["node","sqlite"].join(":")).DatabaseSync??null}catch{return null}finally{process.emitWarning=t}}function Cn(e,t){let n=Number.parseInt(e,10);return Number.isFinite(n)&&n>=22?vo(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]="59e8ff0e-d2af-5f7a-a64b-1b86e075acdc")}catch{}})();var Nu="history-event-index.sqlite",ko="5",Lu=8,Pu="history-event-index",Io=300,ra=3e4,ju="history-event-index-invalidation",Mu="history-event-index-invalidations",Fu=Io*2*1e3,An=Symbol("history-index-lock-contended"),qe=new Map;function Mt(e){return H.join(e,"runtime",Nu)}function Nn(e){return H.join(e,"runtime",Mu)}async function $u(e){let t=await M.readdir(Nn(e)).catch(n=>{if(te(n))return[];throw n});return{pending:t.filter(n=>n.endsWith(".pending")).sort(),committed:t.filter(n=>n.endsWith(".committed")).sort()}}async function Eo(e){let t=await $u(e);return{pending:(await Promise.all(t.pending.map(async n=>{let r=/^(\d+)-(unknown|\d+)-(\d+)-.+\.pending$/u.exec(n);if(r!==null){let o=r[2];if(await fs({pid:Number(r[1]),...o==="unknown"?{}:{process_start_identity:o}},Math.max(0,Date.now()-Number(r[3])),Fu))return n}return await M.rm(H.join(Nn(e),n),{force:!0}),null}))).filter(n=>n!==null),committed:t.committed}}async function jt(e,t){let n=await V(e,ju,Io,`history-event-index-invalidation:${process.pid}`,!1,!1,ra);try{return await t()}finally{await n()}}async function Hu(e){let t=Nn(e);await M.mkdir(t,{recursive:!0});let n=na(),r=await us(),o=H.join(t,`${r.pid}-${r.process_start_identity??"unknown"}-${Date.now()}-${n}.pending`);return await M.writeFile(o,`pending
13
+ `,{flag:"wx"}),{pendingPath:o,committedPath:H.join(t,`${n}.committed`)}}function zu(e,t){return e.length===t.length&&e.every((n,r)=>n===t[r])}async function xn(e){try{await M.rm(Mt(e),{force:!0})}catch{}}async function Ln(e,t){let n=await V(e,Pu,Io,`history-event-index:${process.pid}`,!1,!1,ra);try{return await t()}finally{await n()}}async function oa(e){let t=H.join(e,"history"),n=await M.readdir(t,{withFileTypes:!0}).catch(s=>{if(typeof s=="object"&&s!==null&&"code"in s&&s.code==="ENOENT")return[];throw s}),r=qe.get(e)??{streams:new Map,ordered_events:[]},o=new Set,i=!qe.has(e);for(let s of n.filter(a=>a.isFile()&&a.name.endsWith(".jsonl")).sort((a,c)=>a.name.localeCompare(c.name))){let a=s.name.slice(0,-6);o.add(a);let c=H.join(t,s.name),d=await M.stat(c,{bigint:!0}),l=[d.dev,d.ino,d.size,d.mtimeNs,d.ctimeNs].join(":");if(r.streams.get(a)?.signature===l)continue;let f=await ia(c,a);r.streams.set(a,{signature:l,byte_size:Number(d.size),events:f.map((_,p)=>({stream_id:a,stream_offset:p,entry:_}))}),i=!0}for(let s of r.streams.keys())o.has(s)||(r.streams.delete(s),i=!0);if(i&&(r.ordered_events=[...r.streams.values()].flatMap(s=>s.events).sort(So)),qe.delete(e),qe.set(e,r),qe.size>Lu){let s=qe.keys().next().value;qe.delete(s)}return{events:r.ordered_events,stream_byte_sizes:new Map([...r.streams].map(([s,a])=>[s,a.byte_size]))}}async function ia(e,t){let n=await be(e,t);for(let[r,o]of n.entries())if(typeof o.ts!="string"||!nt(o.ts.trim()))throw new h(`History for ${t} contains an invalid or sub-millisecond timestamp at line ${r+1}. Repair or restore the history stream and retry.`,b.GENERIC_FAILURE,{code:"history_timestamp_invalid"});return n.map(r=>({...r,ts:new Date(r.ts.trim()).toISOString()}))}async function Uu(e){return(await oa(e)).events}var wo;function Pn(){return wo!==void 0||(wo=Cn(process.versions.node,Du(import.meta.url))),wo}function Wu(e){e.exec(`
14
+ PRAGMA journal_mode = OFF;
15
+ PRAGMA synchronous = OFF;
16
+ CREATE TABLE metadata (
17
+ key TEXT PRIMARY KEY,
18
+ value TEXT NOT NULL
19
+ ) STRICT;
20
+ CREATE TABLE events (
21
+ stream_id TEXT NOT NULL,
22
+ stream_offset INTEGER NOT NULL,
23
+ ts TEXT NOT NULL,
24
+ author TEXT NOT NULL,
25
+ agent_harness TEXT,
26
+ agent_instance TEXT,
27
+ op TEXT NOT NULL,
28
+ event_class TEXT NOT NULL CHECK(event_class IN ('substantive', 'maintenance')),
29
+ entry_json TEXT NOT NULL,
30
+ PRIMARY KEY(stream_id, stream_offset)
31
+ ) STRICT;
32
+ CREATE TABLE streams (
33
+ stream_id TEXT PRIMARY KEY,
34
+ byte_size INTEGER NOT NULL CHECK(byte_size >= 0)
35
+ ) STRICT;
36
+ CREATE INDEX events_order
37
+ ON events(ts, stream_id, stream_offset);
38
+ CREATE INDEX events_op_order
39
+ ON events(op, ts, stream_id, stream_offset);
40
+ CREATE INDEX events_class_stream_order
41
+ ON events(event_class, stream_id, ts, stream_offset);
42
+ CREATE INDEX events_author_order
43
+ ON events(author, ts, stream_id, stream_offset);
44
+ CREATE INDEX events_harness_order
45
+ ON events(agent_harness, ts, stream_id, stream_offset);
46
+ CREATE INDEX events_instance_order
47
+ ON events(agent_instance, ts, stream_id, stream_offset);
48
+ `),e.prepare("INSERT INTO metadata(key, value) VALUES ('version', ?)").run(ko)}function sa(e,t){let n={...t.entry,ts:new Date(t.entry.ts.trim()).toISOString()};e.prepare(`INSERT INTO events(
49
+ stream_id, stream_offset, ts, author, agent_harness,
50
+ agent_instance, op, event_class, entry_json
51
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`).run(t.stream_id,t.stream_offset,n.ts,n.author,n.agent_harness??null,n.agent_instance??null,n.op,dt(n),JSON.stringify(n))}function aa(e){let t=JSON.parse(String(e.entry_json));return typeof t.ts!="string"||!nt(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 ca(e,t,n){e.prepare(`INSERT INTO streams(stream_id, byte_size) VALUES (?, ?)
52
+ ON CONFLICT(stream_id) DO UPDATE SET byte_size = excluded.byte_size`).run(t,n)}async function Bu(e){let t=Pn();return t?Ln(e,async()=>{let n;try{n=await jt(e,()=>Eo(e))}catch(s){if(s instanceof h&&s.code==="lock_conflict")return!1;throw s}if(n.pending.length>0)return!1;let r=Mt(e);await M.mkdir(H.dirname(r),{recursive:!0});let o=`${r}.${na()}.tmp`,i;try{i=new t(o),Wu(i),i.exec("BEGIN IMMEDIATE");let s=await oa(e);for(let c of s.events)sa(i,c);for(let[c,d]of s.stream_byte_sizes)ca(i,c,d);i.exec("COMMIT"),i.close(),i=void 0;let a=await jt(e,async()=>{let c=await Eo(e);return c.pending.length>0||!zu(n.committed,c.committed)?!1:(await M.rm(r,{force:!0}),await M.rename(o,r),await Promise.all(n.committed.map(d=>M.rm(H.join(Nn(e),d),{force:!0}))),!0)});return a||await M.rm(o,{force:!0}),a}catch(s){throw i?.close(),await M.rm(o,{force:!0}),s}}):!1}function On(e,t){return!t||t.length===0||t.includes(e)}function So(e,t){return e.entry.ts.localeCompare(t.entry.ts)||e.stream_id.localeCompare(t.stream_id)||e.stream_offset-t.stream_offset}function Dn(e){let t=Date.parse(e);return Number.isFinite(t)?new Date(t).toISOString():e}function Vu(e,t){if(t.after_ts!==void 0&&t.after_stream_id!==void 0&&t.after_stream_offset!==void 0){if(So(e,{stream_id:t.after_stream_id,stream_offset:t.after_stream_offset,entry:{...e.entry,ts:Dn(t.after_ts)}})<=0)return!1}else if(t.since_ts!==void 0&&e.entry.ts<Dn(t.since_ts))return!1;return!0}function qu(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 Gu(e,t){return!Vu(e,t)||!On(e.entry.op,t.ops)||!On(e.entry.author,t.authors)||!On(e.entry.agent_instance??"",t.agent_instances)||!On(e.stream_id,t.stream_ids)||!qu(e,t)?!1:(t.provenance??[]).every(n=>{let r=e.entry.agent_provenance?.[n.dimension]?.value;return r!==void 0&&n.values.includes(r)})}async function dg(e,t){let n=Math.max(0,Math.floor(t.limit)),r=(await Uu(e)).filter(o=>Gu(o,t)).slice(0,n+1);return{events:r.slice(0,t.limit),has_more:r.length>t.limit}}async function da(e,t,n){let r=H.dirname(H.dirname(e)),o=Pn();if(!o){await n();return}let i=!1;try{await Ln(r,async()=>{let s=Mt(r);try{await M.access(s)}catch{await n();return}let a;try{if(a=new o(s),a.prepare("SELECT value FROM metadata WHERE key = 'version'").get()?.value!==ko)throw new TypeError("Unsupported history event index version")}catch{a?.close(),await M.rm(s,{force:!0}),await n();return}try{a.exec("PRAGMA busy_timeout = 5000"),a.exec("BEGIN IMMEDIATE")}catch(d){throw a.close(),d}let c=!1;try{await n(),c=!0,i=!0;let d=H.basename(e,".jsonl"),l=a.prepare("SELECT COALESCE(MAX(stream_offset), -1) + 1 AS value FROM events WHERE stream_id = ?").get(d);sa(a,{stream_id:d,stream_offset:Number(l.value),entry:t}),ca(a,d,(await M.stat(e)).size),a.exec("COMMIT"),a.close()}catch(d){if(a?.close(),!c)throw d;await xn(r)}})}catch(s){if(i){await xn(r);return}if(!(s instanceof h)||s.code!=="lock_conflict")throw s;let a;try{await jt(r,async()=>{let c=await Hu(r);a=c.pendingPath;try{await n(),i=!0}catch(d){throw await M.rm(c.pendingPath,{force:!0}),d}await M.rename(c.pendingPath,c.committedPath),await xn(r)})}catch(c){if(i){await xn(r);try{await M.rm(a,{force:!0})}catch{}return}throw c}}}async function To(e){await M.rm(Mt(H.dirname(H.dirname(e))),{force:!0})}function Rn(e,t,n,r){!r||r.length===0||(e.push(`${n} IN (${r.map(()=>"?").join(", ")})`),t.push(...r))}function Ku(e,t,n,r){if(!n||n.length===0)return;let o=n.map(()=>"?").join(", "),i=r??[];if(i.length>0){e.push(`(agent_harness IN (${o}) OR (agent_harness IS NULL AND author IN (${i.map(()=>"?").join(", ")})))`),t.push(...n,...i);return}e.push(`agent_harness IN (${o})`),t.push(...n)}async function la(e,t){let n=await Eo(e);if(n.pending.length>0||n.committed.length>0)return;let r=new t(Mt(e),{readOnly:!0});try{if(r.prepare("SELECT value FROM metadata WHERE key = 'version'").get()?.value===ko)return r}catch(o){throw r.close(),o}r.close()}async function lg(e,t){let n=Pn();if(!n)return null;let r=[],o=[];if(t.after_ts!==void 0&&t.after_stream_id!==void 0&&t.after_stream_offset!==void 0){r.push("(ts > ? OR (ts = ? AND stream_id > ?) OR (ts = ? AND stream_id = ? AND stream_offset > ?))");let a=Dn(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&&(r.push("ts >= ?"),o.push(Dn(t.since_ts)));Rn(r,o,"op",t.ops),Rn(r,o,"author",t.authors),Ku(r,o,t.harnesses,t.harness_alias_authors),Rn(r,o,"agent_instance",t.agent_instances);for(let a of t.provenance??[])r.push(`json_extract(entry_json, '$.agent_provenance.${a.dimension}.value') IN (${a.values.map(()=>"?").join(", ")})`),o.push(...a.values);Rn(r,o,"stream_id",t.stream_ids);let i=r.length===0?"":` WHERE ${r.join(" AND ")}`,s;try{return await Ln(e,async()=>jt(e,async()=>{if(s=await la(e,n),!s)return null;let a=await Yu(s,e,t.stream_ids);if(!await fa(s,e,a))return s.close(),s=void 0,null;let c=s.prepare(`SELECT stream_id, stream_offset, entry_json
53
+ FROM events${i}
54
+ ORDER BY ts, stream_id, stream_offset
55
+ LIMIT ?`).all(...o,Math.max(0,Math.floor(t.limit))+1),d=c.slice(0,t.limit).map(aa);return s.close(),s=void 0,d.includes(null)?null:{events:d,has_more:c.length>t.limit}}))}catch{return s?.close(),null}}function ua(e,t){let n=Object.create(null);for(let r of e){if(!t.has(r.stream_id)||dt(r.entry)!=="substantive")continue;let o=n[r.stream_id];(o===void 0||So(o,r)<0)&&(n[r.stream_id]=r)}return n}async function Xu(e,t){if(H.basename(t)!==t)return null;try{return(await M.stat(H.join(e,"history",`${t}.jsonl`))).size}catch(n){if(te(n))return 0;throw n}}async function fa(e,t,n){for(let r=0;r<n.length;r+=500){let o=n.slice(r,r+500),i=new Map(e.prepare(`SELECT stream_id, byte_size FROM streams
56
+ WHERE stream_id IN (${o.map(()=>"?").join(", ")})`).all(...o).map(a=>[String(a.stream_id),Number(a.byte_size)])),s=await Promise.all(o.map(a=>Xu(t,a)));for(let[a,c]of s.entries()){if(c===null)return!1;let d=o[a],l=i.get(d);if(!(c===0&&l===void 0)&&c!==l)return!1}}return!0}async function Yu(e,t,n){if(n&&n.length>0)return[...new Set(n.filter(i=>i.trim().length>0))];let r=e.prepare("SELECT stream_id FROM streams").all().map(i=>String(i.stream_id)),o=await M.readdir(H.join(t,"history"),{withFileTypes:!0}).then(i=>i.filter(s=>s.isFile()&&s.name.endsWith(".jsonl")).map(s=>s.name.slice(0,-6))).catch(i=>{if(te(i))return[];throw i});return[...new Set([...r,...o])]}async function ta(e,t,n,r){if(!e)return null;let o;try{return await Ln(t,async()=>jt(t,async()=>{if(o=await la(t,e),!o)return null;if(!await fa(o,t,n))return o.close(),o=void 0,null;let i=[];for(let s=0;s<n.length;s+=500){let a=n.slice(s,s+500),c=o.prepare(`SELECT stream_id, stream_offset, entry_json
57
+ FROM (
58
+ SELECT stream_id, stream_offset, entry_json,
59
+ ROW_NUMBER() OVER (
60
+ PARTITION BY stream_id
61
+ ORDER BY ts DESC, stream_offset DESC
62
+ ) AS recency_rank
63
+ FROM events
64
+ WHERE event_class = 'substantive'
65
+ AND stream_id IN (${a.map(()=>"?").join(", ")})
66
+ )
67
+ WHERE recency_rank = 1`).all(...a).map(aa);if(c.includes(null))return o.close(),o=void 0,null;i.push(...c)}return o.close(),o=void 0,ua(i,r)}))}catch(i){return o?.close(),i instanceof h&&i.code==="lock_conflict"?An:null}}async function ug(e,t){let n=[...new Set(t.filter(a=>a.trim().length>0&&H.basename(a)===a))];if(n.length===0)return{};let r=new Set(n),o=Pn(),i=await ta(o,e,n,r);if(i!==null&&i!==An)return i;if(o&&i!==An)try{if(await Bu(e)){let a=await ta(o,e,n,r);if(a!==null&&a!==An)return a}}catch{}let s=[];return await Promise.all(n.map(async a=>{let c=H.join(e,"history",`${a}.jsonl`);(await ia(c,a).catch(d=>{if(d instanceof h&&d.code==="history_timestamp_invalid")return[];throw d})).forEach((d,l)=>{s.push({stream_id:a,stream_offset:l,entry:d})})})),ua(s,r)}import Co from"node:fs/promises";import lt 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 Ju=lt.join("runtime","history-drift-cache.json"),ma={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 _a(e){return typeof e=="object"&&e!==null&&"code"in e&&typeof e.code=="string"?e.code:void 0}async function Qu(e){let t=lt.join(e,Ju),n=!1,r="invalid_cache_path";try{n=(await Co.stat(await Co.realpath(e))).isDirectory()}catch(o){let i=_a(o);r=i===void 0?"unknown":ma[i]??"filesystem_error"}if(!n){Lr(`[pm] warning: history_drift_cache_invalidation_failed:${r}
68
+ `);return}try{await Co.rm(t,{force:!0})}catch(o){let i=_a(o);if(te(o))return;let s=i===void 0?"unknown":ma[i]??"filesystem_error";Lr(`[pm] warning: history_drift_cache_invalidation_failed:${s}
69
+ `)}}async function jn(e){let t=lt.dirname(lt.resolve(e));lt.basename(t)==="history"&&await Qu(lt.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 tf={front_matter:{},body:""},Ge=3,Ft=[1,2,3],nf=1,rf=[1];function va(e){return Ce(D(e),e.hash_algorithm)}function ut(e){return ln(D(e))}function Pg(e){return ln(D(e))}function Ao(e){let t={...e,record_hash_version:nf},{record_hash:n,...r}=t;return{...t,record_hash:va(r)}}function $n(e){try{Be(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(!rf.includes(e.record_hash_version))return{ok:!1,error:"unsupported_record_hash_version"};let{record_hash:t,...n}=e;return va(n)===e.record_hash?{ok:!0,coverage:"record_and_item_state"}:{ok:!1,error:"record_hash_mismatch"}}function of(e,t){let n={before_hash:e.before_hash,after_hash:e.after_hash,patch_hash:ut(e.patch)};return e.hash_algorithm!==void 0&&(n.hash_algorithm=e.hash_algorithm),e.item_hash_version!==void 0&&(n.item_hash_version=e.item_hash_version),t.retainOriginalPatch&&(n.patch=structuredClone(e.patch)),t.retainPriorRecordHash!==!1&&e.record_hash_version!==void 0&&e.record_hash!==void 0&&(n.record_hash_version=e.record_hash_version,n.record_hash=e.record_hash,n.record=structuredClone(e)),n}function wa(e,t,n={}){let r=$n(e);if(!r.ok)throw new TypeError(r.error);let o=ut(e.patch),i=n.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!==ut(t.patch),s=Ao({...t,...i?{reanchor_evidence:[...t.reanchor_evidence??[],of(e,n)]}:{}}),a=Do(s);if(!a.ok)throw new TypeError(a.error);return s}function Ea(e){return!Array.isArray(e)||Object.keys(e).length!==e.length?!1:e.every(t=>!Ke(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 sf(e){return Ke(e)&&typeof e.ts=="string"&&typeof e.author=="string"&&typeof e.op=="string"&&typeof e.before_hash=="string"&&typeof e.after_hash=="string"&&Ea(e.patch)}function af(e){let t=e.record_hash_version!==void 0,n=e.record_hash!==void 0;return t===n}function cf(e){return!Ke(e)||!af(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&&!Ea(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||sf(e.record)}function df(e){try{for(let t of e){if(!cf(t))return!1;Be(t.hash_algorithm)}return!0}catch{return!1}}function lf(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&&ut(t.patch)===e.patch_hash}function uf(e,t,n){if(t.patch&&ut(t.patch)!==t.patch_hash)return{kind:"patch_hash_mismatch"};if(t.record)return lf(t)?{kind:"record",entry:t.record}:{kind:"record_hash_mismatch"};let r=t.patch??e.patch;if(ut(r)!==t.patch_hash)return{kind:"digest_only"};let o={...e,before_hash:t.before_hash,after_hash:t.after_hash,patch:r,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},...n.length===0?{}:{reanchor_evidence:n}};return t.hash_algorithm===void 0&&delete o.hash_algorithm,n.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 Do(e){let t=e.reanchor_evidence;if(t===void 0)return{ok:!0,coverage:"none"};if(!Array.isArray(t)||!df(t))return{ok:!1,error:"rewrite_evidence_invalid"};if(t.length===0)return{ok:!0,coverage:"none"};let n=e;for(let r=t.length-1;r>=0;r-=1){let o=t[r],i=uf(n,o,t.slice(0,r));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(!$n(i.entry).ok)return{ok:!1,error:"rewrite_evidence_record_hash_mismatch"};n=i.entry}return{ok:!0,coverage:"complete"}}function Mn(e,t){return(e??"").localeCompare(t??"")}function ha(e,t){return(e??0)-(t??0)}function Oe(e,t,n){return JSON.stringify(e??n).localeCompare(JSON.stringify(t??n))}function ff(e,t){return[e.scope.localeCompare(t.scope),Mn(e.path,t.path),Mn(e.command,t.command),ha(e.timeout_seconds,t.timeout_seconds),Mn(e.pm_context_mode,t.pm_context_mode),+!!e.shared_host_safe-+!!t.shared_host_safe,Oe(e.env_clear,t.env_clear,[]),Oe(e.env_set,t.env_set,{}),Oe(e.assert_stdout_contains,t.assert_stdout_contains,[]),Oe(e.assert_stdout_regex,t.assert_stdout_regex,[]),Oe(e.assert_stderr_contains,t.assert_stderr_contains,[]),Oe(e.assert_stderr_regex,t.assert_stderr_regex,[]),ha(e.assert_stdout_min_lines,t.assert_stdout_min_lines),Oe(e.assert_json_field_equals,t.assert_json_field_equals,{}),Oe(e.assert_json_field_gte,t.assert_json_field_gte,{}),Mn(e.note,t.note)].find(n=>n!==0)??0}function mf(e){return!e||e==="/"?[]:e.startsWith("/")?e.slice(1).split("/").map(t=>t.replaceAll("~1","/").replaceAll("~0","~")):[]}function _f(e,t){let n=mf(t);if(n.length===0)return!0;let r=e;for(let o of n){let i=/^(0|[1-9]\d*)$/.test(o)?Number(o):-1,s=Array.isArray(r)?i>=0&&i<r.length?r[i]:void 0:Ke(r)&&Object.prototype.hasOwnProperty.call(r,o)?r[o]:void 0;if(s===void 0)return!1;r=s}return!0}function pf(e,t){let n=[],r=structuredClone(e);for(let o of t){let i=o.op==="replace"&&!_f(r,o.path)?{...o,op:"add"}:o;n.push(i),r=ba.applyPatch(r,[i],!0,!0).newDocument}return n}function Fn(e,t,n=!1){if(!(e.metadata&&Object.keys(e.metadata).length>0))return{front_matter:{},body:e.body??""};let r=ne(e),o=t===1||t===2&&n?{...r.metadata,...r.metadata.dependencies===void 0?{}:{dependencies:r.metadata.dependencies.map(s=>({...s,id:s.id.toLowerCase()}))},...r.metadata.tests===void 0?{}:{tests:r.metadata.tests.map(({workspace_context_mode:s,provenance:a,provenance_invalid:c,...d})=>d)},...r.metadata.test_runs===void 0?{}:{test_runs:r.metadata.test_runs.map(({executions:s,...a})=>a)}}:r.metadata,i=t===1&&o.tests?{...o,tests:[...o.tests].sort(ff)}:o;return{front_matter:T(i,we),body:r.body}}function ya(e){if(!(e.metadata&&Object.keys(e.metadata).length>0))return{metadata:{},body:e.body??""};let t=ne(e);return{metadata:T(t.metadata,we),body:t.body}}function jg(e){return ka(e,Ge)}function ka(e,t,n){if(!Ft.some(r=>r===t))throw new TypeError(`unsupported_item_hash_version:${String(t)}`);return Ce(D(Fn(e,t)),n)}function Ia(e,t,n){let r=ka(e,t,n);return t===2?[r,Ce(D(Fn(e,t,!0)),n)]:[r]}function Mg(){return ln(D(tf))}function ft(e){let t=_n(e.op),n=Fn(e.before,Ge),r=Fn(e.after,Ge),o=ya(e.before),i=ya(e.after),s=ba.compare(o,i),a=pf(o,s),c=Ds(e.author),d=c.harness?Object.fromEntries(Object.entries(Rs().provenance_outcomes).filter(([p,m])=>m.resolver!==void 0&&(m.status!=="resolved"||c.provenance?.[p]?.source==="probe"))):void 0,l=d===void 0||Object.keys(d).length===0?e.context:{...e.context,agent_provenance_outcomes:d},f=e.hashAlgorithm??Ps,_={hash_algorithm:f,ts:e.nowIso,author:e.author,author_source:e.authorSource??As(e.author),...c.harness?{agent_harness:c.harness}:{},...c.model?{agent_model:c.model}:{},...c.model_source?{agent_model_source:c.model_source}:{},...c.instance?{agent_instance:c.instance}:{},...c.provenance?{agent_provenance:c.provenance}:{},...c.episode?{agent_episode:c.episode}:{},op:t,patch:a,before_hash:Ce(D(n),f),after_hash:Ce(D(r),f),item_hash_version:Ge,message:e.message===void 0?void 0:e.message,...l===void 0?{}:{context:l}};return Ao({..._,event_class:dt(_)})}function Ke(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function xo(e){return new h(e,b.GENERIC_FAILURE,{code:"history_timestamp_invalid"})}function Sa(e){let t=e.ts.trim();if(t.length===0)return Ie();if(!nt(t))throw xo("History timestamp must be a valid RFC 3339 date-time with millisecond precision");if(t!==e.ts)throw xo("History timestamp must not contain surrounding whitespace");return e.ts}function ga(e,t){let n=e.ts;if(typeof n=="string"&&n.trim().length>0){if(!nt(n))throw xo("History timestamp must be a valid RFC 3339 date-time with millisecond precision");return e}return{...e,ts:t}}function Oo(e,t){let n=Sa(t);if(typeof e=="string"){let r;try{r=JSON.parse(e)}catch{return e}return Ke(r)?JSON.stringify(ga(r,n)):e}return Ke(e)?JSON.stringify(ga(e,n)):JSON.stringify(e)}async function hf(e,t,n){if(n===!1)return!0;if(typeof n=="string"){let s=Oo(n,t);return await Ro(e,s),await jn(e),await To(e),!0}if(typeof n!="object"||n===null)return!1;let r=n;if(r.skip===!0)return!0;let o=typeof r.history_path=="string"?r.history_path:e,i=Oo(typeof r.line=="string"?r.line:r.entry??t,t);return await Ro(o,i),await jn(o),await To(o),!0}async function Ro(e,t){let n;try{n=JSON.parse(t)}catch{n=null}if(!Ke(n)||n.op!=="create"){await Hi(e,t);return}await pa.mkdir(ef.dirname(e),{recursive:!0});try{await pa.writeFile(e,`${t}
70
+ `,{encoding:"utf8",flag:"wx"})}catch(r){throw r.code!=="EEXIST"?r:new h("This item identity is reserved by an existing history stream.",b.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 mt(e,t){let n=await Ot("history_append",{history_path:e,entry:t});if(n.handled&&await hf(e,t,n.result))return;let r=t.ts.trim().length>0?t:{...t,ts:Sa(t)},o=Ao({...r,hash_algorithm:Be(r.hash_algorithm),event_class:dt(r)});await da(e,o,async()=>{await Ro(e,Oo(o,o))}),await jn(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]="0c0cb8c7-4d7d-53f8-8ec2-d6dc98fc6dc5")}catch{}})();var _t={metadata:{},body:""};function Hn(){return structuredClone(_t)}function Gg(e,t=Ge,n){return No(e,t,n)[0]}function No(e,t,n){if(Object.keys(e.metadata).length===0||Array.isArray(e.metadata.tags))try{return Ia(zn(e),t,n)}catch{}let r=Ce(D({replay_fallback:!0,metadata:e.metadata,body:e.body}),n);return t===2?[r,r]:[r]}function xa(e,t,n,r,o){let i=Be(r.hash_algorithm),s=`${n}:${i}`,a=o?.before.get(s)??No(e,n,i),c=No(t,n,i);return o?.after.set(s,c),{beforeHashes:a,afterHashes:c,pairIndex:a.findIndex((d,l)=>d===r.before_hash&&c[l]===r.after_hash),beforeIndex:a.indexOf(r.before_hash),afterIndex:c.indexOf(r.after_hash)}}function zn(e){return{metadata:e.metadata,body:e.body}}function Kg(e,t={}){return ne(zn(e),t)}function Xg(e){if(!e.metadata||Object.keys(e.metadata).length===0)return{metadata:{},body:e.body??""};let t=ne(e);return{metadata:T(t.metadata,we),body:t.body}}function Ta(e){return e==="/front_matter"?"/metadata":e.startsWith("/front_matter/")?`/metadata/${e.slice(14)}`:e}function yf(e){return typeof e=="object"&&e!==null&&typeof e.op=="string"&&typeof e.path=="string"}function Oa(e){return Array.isArray(e)?e.filter(yf).map(t=>({...t,path:Ta(t.path),from:typeof t.from=="string"?Ta(t.from):void 0})):[]}function gf(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 Xe(e,t){try{let n=Oa(t),r=Lo.applyPatch(structuredClone(e),n,!0,!0).newDocument;return gf(r)?{ok:!0,document:{metadata:r.metadata,body:r.body}}:{ok:!1,error:new Error("history_replay_invalid_document_shape")}}catch(n){return{ok:!1,error:n}}}function bf(e){return[...new Set(e.map(t=>t.item_hash_version).filter(t=>t!==void 0&&Ft.includes(t)))]}function Ra(e){return e!==void 0&&!Ft.includes(e)}function vf(e,t){return e!==void 0?[e]:t===void 0?[...Ft]:[t]}function Aa(e){let t=$n(e);if(!t.ok)return t.error;let n=Do(e);return n.ok?void 0:n.error}function wf(e,t){let n=Aa(e);if(n)return{ok:!1,error:n};let r=Xe(t,e.patch);return r.ok?{ok:!0,document:r.document}:{ok:!1,error:"patch_apply_failed"}}function Ef(e,t){let n=Aa(e);if(n)throw new TypeError(`${n}:entry_${t+1}`)}function kf(e,t,n,r,o){let i=[];for(let s of n){let a=xa(e,t,s,r,o);if(i.push({version:s,match:a}),a.pairIndex>=0)break}return i}function Da(e){let t=Hn(),n=new Map,r,o,i=ea(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],c=a.item_hash_version,d=Ra(c);d&&i.push(`verify_failed:unsupported_item_hash_version:${String(c)}:entry_${s+1}`);let l=wf(a,t);if(!l.ok)return{ok:!1,errors:[...i,`verify_failed:${l.error}:entry_${s+1}`]};if(d){t=l.document,n=new Map,r=void 0,o=void 0;continue}let f=vf(c,o),_={before:n,after:new Map},p=kf(t,l.document,f,a,_),m=p.find(({match:g})=>g.pairIndex>=0);if(m===void 0){let g=p.some(({match:S})=>S.beforeIndex>=0);return{ok:!1,errors:[...i,`verify_failed:${g?"after":"before"}_hash_mismatch:entry_${s+1}`]}}let v=m.version;t=l.document,n=_.after,r=v,o=c??o}return i.length>0?{ok:!1,errors:i,...r===void 0?{}:{item_hash_version:r}}:{ok:!0,errors:[],...r===void 0?{}:{item_hash_version:r}}}function ve(e){let t=Da(e);return{ok:t.ok,errors:t.errors}}function Ca(e,t){try{return{ok:!0,document:Lo.applyPatch(structuredClone(e),[t],!0,!1).newDocument}}catch{return{ok:!1}}}function If(e,t){let n=structuredClone(e),r=0,o=0;for(let s of Oa(t)){let a=Ca(n,s);if(a.ok){n=a.document;continue}if(s.op==="replace"){let c=Ca(n,{...s,op:"add"});if(c.ok){n=c.document,r+=1;continue}}o+=1}let i=n;return{document:{metadata:typeof i.metadata=="object"&&i.metadata!==null?i.metadata:{},body:typeof i.body=="string"?i.body:e.body},convertedReplaceToAdd:r,skippedOps:o}}function Sf(e){let t=bf(e);if(t.length===1)return t[0];let n=Da(e);return n.ok&&n.item_hash_version!==void 0?n.item_hash_version:t.length===0?1:Ge}function Tf(e,t,n=t.patch){let r=Xe(e,n);if(r.ok)return{next:r.document,patch:n,repaired:D(n)!==D(t.patch),converted:0,skipped:0};let o=If(e,n);return{next:o.document,patch:Lo.compare(e,o.document),repaired:!0,converted:o.convertedReplaceToAdd,skipped:o.skippedOps}}function Cf(e,t,n){return Tf(e,t,n.projectPatch?.(t,e))}function Yg(e,t=Sf(e),n={}){let r=e.findIndex(p=>Ra(p.item_hash_version));if(r>=0)throw new TypeError(`unsupported_item_hash_version:${String(e[r]?.item_hash_version)}:entry_${r+1}`);let o=Hn(),i=[],s=[],a=0,c=0,d=0,l=0,f,_=t!==1||e.some(p=>p.item_hash_version!==void 0);for(let p=0;p<e.length;p+=1){let m=e[p];Ef(m,p);let v=Cf(o,m,n),{next:g,patch:S,repaired:A,converted:N,skipped:z}=v;d+=N,l+=z,c+=Number(A);let x=xa(o,g,t,m);f===void 0||n.continuousHashSurface!==!0?f=[x.pairIndex,x.beforeIndex,x.afterIndex,Math.min(f??0,x.beforeHashes.length-1)].find(ee=>ee>=0):f=Math.min(f,x.beforeHashes.length-1);let oe=x.beforeHashes[f],U=x.afterHashes[f],Q=oe!==m.before_hash||U!==m.after_hash;Q&&(a+=1);let B={...m,patch:S,before_hash:oe,after_hash:U};_?B.item_hash_version=t:delete B.item_hash_version;let Z=B.item_hash_version!==m.item_hash_version;(Q||A||Z)&&(B=wa(m,B,{retainOriginalPatch:A})),i.push(B),s.push({index:p+1,rehashed:Q,patch_repaired:A,converted_replace_to_add:N,skipped_ops:z}),o=g}return{entries:i,finalDocument:o,entriesRehashed:a,entriesPatchRepaired:c,convertedReplaceToAdd:d,skippedOps:l,details:s,itemHashVersion:t,explicitItemHashVersion:_}}function Jg(e){return e.length===0?"":`${e.map(t=>JSON.stringify(t)).join(`
71
+ `)}
72
+ `}import xf from"node:crypto";import Un 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]="664124e5-715d-5f86-ae69-89f203db76c3")}catch{}})();function La(e){let t=[],n=!1;for(let r of(e??"").toLowerCase()){let o=r.charCodeAt(0),i=o>=48&&o<=57,s=o>=97&&o<=122;if(!i&&!s){n=t.length>0;continue}n&&(t.push("-"),n=!1),t.push(r)}return t.length===0?"pm-":`${t.join("")}-`}function $t(e){let t=e.trim().toLowerCase();return t.startsWith("#")&&(t=t.slice(1)),t}function Ye(e,t){let n=La(t),r=$t(e);return r.startsWith(n)?r:`${n}${r}`}function Of(e){let t=ds(e);if(t!==void 0)return t;let n="";for(let r=0;r<e;r+=1)n+=xf.randomInt(0,36).toString(36);return n}async function Rf(e,t,n){let r=[...new Set(Object.values(n))].flatMap(o=>[Un.join(e,o,`${t}.md`),Un.join(e,o,`${t}.toon`)]);return r.push(Un.join(e,"history",`${t}.jsonl`)),(await Promise.all(r.map(o=>Me(o)))).some(Boolean)}var Na=4,Pa=12;function Af(e){return typeof e!="number"||!Number.isFinite(e)?Na:Math.min(Pa,Math.max(Na,Math.trunc(e)))}async function ob(e,t,n={}){let r=Af(n.tokenLength),o=Math.min(r+6,Pa),i=0;for(;r<=o;){for(let s=0;s<32;s+=1){let a=`${La(t)}${Of(r)}`;if(!await(n.probeExisting===!1?Me(Un.join(e,"history",`${a}.jsonl`)):Rf(e,a,n.typeToFolder??Pe)))return a;i+=1}r+=1}throw new Error(`Unable to generate unique id after ${i} attempts`)}import za from"node:fs/promises";import Ht from"node:path";import{isUtf8 as Lf}from"node:buffer";import Df from"node:fs/promises";import pt 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 ht="_workspace";function Wn(e){return pt.join(e,"history",`${ht}.jsonl`)}function Nf(e,t){return{metadata:{id:ht,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 Bn(e,t=e.length){let n=Hn();for(let r of e.slice(0,t))n=Xe(n,r.patch).document;return zn(n)}function Po(e){return"documents"in e.metadata&&typeof e.metadata.documents=="object"&&e.metadata.documents!==null&&!Array.isArray(e.metadata.documents)?e.metadata.documents:{}}function Vn(e){throw new h(`Workspace history verification failed: ${e.join(", ")}`,b.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 ja(e,t){let n=pt.resolve(t),r=pt.relative(e,n).replaceAll("\\","/");if(r.length===0||r===".."||r.startsWith("../")||pt.isAbsolute(r))throw new TypeError("Workspace history document path must stay inside the tracker root");return{documentPath:r,absolutePath:n}}async function yb(e){let t=await be(Wn(e),ht),n=ve(t);n.ok||Vn(n.errors);let r=Po(t.length===0?je:Bn(t)),o=[],i=[],s=[],a=[];for(let c of Object.keys(r).sort()){let d;try{let l=ja(e,pt.resolve(e,c));if(d=await Ee(l.absolutePath),d===null){s.push(c);continue}let f=JSON.parse(d);(D(f)===D(r[c])?o:i).push(c)}catch{a.push(c)}}return{ok:i.length===0&&s.length===0&&a.length===0,document_count:Object.keys(r).length,matching_documents:o,mismatched_documents:i,missing_documents:s,unreadable_documents:a}}async function Ma(e){let t=Wn(e.pmRoot),n=await be(t,ht),r=ve(n);r.ok||Vn(r.errors);let o=e.idempotencyKey===void 0?void 0:n.find(f=>f.op===`${e.op}:${e.idempotencyKey}`);if(o)return{entry:o,historyPath:t};let i=Ie(),s=n.length===0?je:Bn(n),a=Po(s),c=a[e.documentPath];if(c!==void 0&&D(c)!==D(e.before))throw new h(`Workspace history state for "${e.documentPath}" changed outside the audited mutation path.`,b.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 d=Nf({...a,[e.documentPath]:e.after},n.length===0?i:s.metadata.created_at),l=ft({nowIso:i,author:e.author,op:e.idempotencyKey===void 0?e.op:`${e.op}:${e.idempotencyKey}`,before:s,after:d,message:e.message});return await mt(t,l),{entry:l,historyPath:t}}async function gb(e){let t=await V(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await Ma(e)}finally{await t()}}async function Fa(e){let t=await V(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{let n=Wn(e.pmRoot),r=await be(n,ht),o=ve(r);o.ok||Vn(o.errors);let i=r.length===0?je:Bn(r),s=ft({nowIso:Ie(),author:e.author,op:e.op,before:i,after:i,message:e.message,context:e.context});return await mt(n,s),{entry:s,historyPath:n}}finally{await t()}}async function $a(e,t){if(t===e.raw)return!1;let n=t===null?null:JSON.parse(t),r=JSON.parse(e.raw);await G(e.filePath,e.raw);try{(t!==null||e.recordCreation!==!1)&&await Ma({pmRoot:e.pmRoot,documentPath:pt.relative(e.pmRoot,e.filePath).replaceAll("\\","/"),before:n,after:r,op:e.op,idempotencyKey:e.idempotencyKey,author:e.author,lockTtlSeconds:e.lockTtlSeconds,lockWaitMs:e.lockWaitMs,message:e.message})}catch(o){throw t===null?await Df.rm(e.filePath,{force:!0}):await G(e.filePath,t),o}return!0}async function Ha(e){let{documentPath:t}=ja(e.pmRoot,e.filePath),n=await V(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{let r=await Ee(e.filePath);if(e.dryRun===!0||e.idempotencyKey!==void 0){let i=await be(Wn(e.pmRoot),ht),s=ve(i);s.ok||Vn(s.errors);let a=Po(i.length===0?je:Bn(i))[t];if(a!==void 0&&D(a)!==D(r===null?null:JSON.parse(r)))throw new h(`Workspace history state for "${t}" changed outside the audited mutation path.`,b.CONFLICT,{code:"workspace_history_state_conflict"});if(e.idempotencyKey!==void 0&&i.some(c=>c.op===`${e.op}:${e.idempotencyKey}`))return{changed:!1,result:void 0,replayed:!0}}let o=await e.mutate(r);return JSON.parse(o.raw),e.dryRun===!0?{changed:r!==o.raw,result:o.result}:{changed:await $a({...e,raw:o.raw},r),result:o.result}}finally{await n()}}async function bb(e){let t=await V(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await $a(e,await Ee(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]="7db1d069-0038-57f8-8c3e-0b0ba66579ca")}catch{}})();var Pf=1048576,jf=4194304;async function Ua(e,t){let n=Ht.dirname(e);for(;n!==Ht.parse(e).root;){let o=await za.stat(n).catch(i=>{if(te(i))return null;throw i});if(o!==null){if(!o.isDirectory())throw new h("Workflow policy storage ancestor must be a directory.",b.CONFLICT,{code:"workflow_policy_input_unreadable",nextSteps:["Restore the policy or approval history directory before retrying."]});break}n=Ht.dirname(n)}let r=await za.open(e,"r").catch(o=>{if(te(o))return null;throw o});if(r===null)return null;try{let o=(await r.stat()).size,i=Buffer.alloc(Math.min(t,o)+1),s=0;for(;s<i.length;){let a=await r.read(i,s,i.length-s,s);if(a.bytesRead===0)break;s+=a.bytesRead}if(s===i.length||!Lf(i.subarray(0,s)))throw new h("Workflow policy input exceeds its byte bound or is not valid UTF-8.",b.CONFLICT,{code:"workflow_policy_input_unreadable",nextSteps:["Inspect the policy and approval history; reduce the declaration or use verified history compaction before retrying."]});return i.toString("utf8",0,s)}finally{await r.close()}}function Mf(e){if(e===null)return{version:1,enforcement:"advise",policies:[]};let t;try{t=JSON.parse(e)}catch{throw new h("schema/policies.json must contain valid JSON.",b.CONFLICT,{code:"workflow_policy_registry_invalid",nextSteps:["Restore valid policy JSON before retrying the mutation."]})}return Yi(t)}async function Ff(e){return Mf(await Ua(Ht.join(e,"schema","policies.json"),Pf))}async function $f(e,t){let n=await Ua(fe(e,t),jf);if(n===null)return[];let r;try{if(r=n.split(/\r?\n/).filter(o=>o.trim()).map(o=>JSON.parse(o)),!ve(r).ok)throw new Error("invalid chain")}catch{throw new h("Approval evidence requires a valid item history chain.",b.CONFLICT,{code:"workflow_policy_approval_history_invalid",nextSteps:[`Run pm history ${t} --verify before recording or using an approval.`]})}return r.flatMap(o=>{let i=o.context?.workflow_approval;if(o.op!=="policy_approve"||o.record_hash_version!==1||typeof o.record_hash!="string"||typeof i!="object"||i===null)return[];let s=i;return typeof s.policy_fingerprint!="string"||typeof s.content_fingerprint!="string"?[]:[{policy_fingerprint:s.policy_fingerprint,content_fingerprint:s.content_fingerprint,author:o.author}]})}async function Hf(e,t,n){let r=n.before?.status!==n.after?.status&&t.policies.some(s=>s.rule.kind==="approval"&&Ji(s,n)),o=n.before?.id??n.after?.id,i=r&&typeof o=="string"?await $f(e,o):[];return Qi(t,{...n,approvals:i})}async function jo(e){let t=await Ff(e.pmRoot),n=await Hf(e.pmRoot,t,{operation:e.operation,author:e.author,before:e.before?{...e.before.metadata,body:e.before.body}:null,after:e.after?{...e.after.metadata,body:e.after.body}:null});if(n.allowed)return n;let r=n.decisions.filter(l=>!l.satisfied&&l.effect==="refuse");if(!e.dryRun)try{await Fa({pmRoot:e.pmRoot,op:"policy_refused",author:e.author,context:{item_id:e.after?.metadata.id??e.before?.metadata.id,operation:e.operation,workflow_policies:n.decisions},message:"Workflow policy refused a proposed item mutation.",lockTtlSeconds:e.settings.locks.ttl_seconds,lockWaitMs:e.settings.locks.wait_ms})}catch(l){let f=new h("Workflow policy refusal could not be recorded in workspace history.",b.CONFLICT,{code:"workflow_policy_audit_failed",nextSteps:["Resolve workspace-history lock or storage failures, then retry the refused mutation; no item changes were written."]});throw f.cause=l,f}let o=r.slice(0,3).map(l=>({policy_id:l.policy_id,rule:l.rule,description:t.policies.find(f=>f.id===l.policy_id).description,missing_fields:l.missing_fields})),i=[...new Set(o.flatMap(l=>l.missing_fields))],s=o.map(l=>`${l.policy_id} (${l.rule})`).join(", "),a=r.length>3?` and ${r.length-3} more`:"",c=e.after?.metadata.id??e.before.metadata.id,d=i.map(l=>{if(e.before===null)return`Supply ${l} in the original ${e.operation} request, then retry; the item was not created.`;let f=Bi("update",l);return f===void 0?`Supply ${l} using its declared SDK or package mutation contract, then retry.`:$e(["update",c,Vi("update",f),`<${l}>`,"--pm-path",Ht.resolve(e.pmRoot)])});throw new h(`Workflow policy refused ${e.operation}: ${s}${a}.${i.length?` Missing: ${i.join(", ")}.`:""}`,b.CONFLICT,{code:"workflow_policy_refused",reason:o.map(l=>l.policy_id).join(","),policy_violations:o,policy_violation_count:r.length,required:i.length?`Supply missing fields: ${i.join(", ")}, then retry the refused mutation.`:"Satisfy the declared workflow policy before retrying.",why:o.map(l=>l.description).filter(Boolean).join(" ")||void 0,recovery:{missing_required_fields:i},nextSteps:[...d,...new Set(r.slice(0,3).filter(l=>l.missing_fields.length===0).map(l=>l.remediation)),...r.length>3?[`Inspect all policies with pm schema policies before retrying ${e.operation}.`]:[]]})}import{AsyncLocalStorage as zf}from"node:async_hooks";import{channel as Uf}from"node:diagnostics_channel";(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]="b2b2d49a-bb8c-54d7-89d2-1dbe76879129")}catch{}})();var Mo=new zf,Fo=Uf("@unbrained/pm-cli/item-metadata-enumeration/v1");function qn(e){Fo.publish(e)}async function jb(e){let t={enumeration_calls:0,metadata_rows:0},n=r=>{Mo.getStore()?.includes(t)&&(t.enumeration_calls+=1,t.metadata_rows+=r)};Fo.subscribe(n);try{return{result:await Mo.run([...Mo.getStore()??[],t],e),work:{...t}}}finally{Fo.unsubscribe(n)}}import Je from"node:fs/promises";import Ba from"node:path";import{randomUUID as Wf}from"node:crypto";import{createRequire as Bf}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]="84a3dae8-69b6-589d-a8ec-11f77c1d103a")}catch{}})();var Vf="metadata-query-index.sqlite",zt="5",$o;function Ut(){return $o!==void 0||($o=Cn(process.versions.node,Bf(import.meta.url))),$o}function Wa(e,t){return Math.max(0,Math.floor(e===void 0?t:e))}function yt(e){return Ba.join(e,"runtime",Vf)}function qf(e){e.exec(`
73
+ PRAGMA foreign_keys = ON;
74
+ PRAGMA journal_mode = OFF;
75
+ PRAGMA synchronous = OFF;
76
+ CREATE TABLE metadata (
77
+ key TEXT PRIMARY KEY,
78
+ value TEXT NOT NULL
79
+ ) STRICT;
80
+ CREATE TABLE items (
81
+ id TEXT PRIMARY KEY,
82
+ relative_path TEXT NOT NULL UNIQUE,
83
+ metadata_json TEXT NOT NULL,
84
+ status TEXT NOT NULL,
85
+ type TEXT NOT NULL,
86
+ priority INTEGER NOT NULL,
87
+ updated_at TEXT NOT NULL,
88
+ created_at TEXT NOT NULL,
89
+ parent TEXT,
90
+ assignee TEXT,
91
+ sprint TEXT,
92
+ release TEXT
93
+ ) STRICT;
94
+ CREATE INDEX items_default_order
95
+ ON items(priority, updated_at DESC, id);
96
+ CREATE INDEX items_status_default_order
97
+ ON items(status, priority, updated_at DESC, id);
98
+ CREATE INDEX items_type_default_order
99
+ ON items(type, priority, updated_at DESC, id);
100
+ CREATE INDEX items_parent_default_order
101
+ ON items(parent, priority, updated_at DESC, id);
102
+ CREATE TABLE item_metadata_keys (
103
+ item_id TEXT NOT NULL,
104
+ key TEXT NOT NULL,
105
+ PRIMARY KEY(item_id, key),
106
+ FOREIGN KEY(item_id) REFERENCES items(id) ON DELETE CASCADE
107
+ ) STRICT;
108
+ CREATE INDEX item_metadata_keys_key_item
109
+ ON item_metadata_keys(key, item_id);
110
+ CREATE TABLE item_linked_files (
111
+ item_id TEXT NOT NULL,
112
+ path TEXT NOT NULL,
113
+ scope TEXT NOT NULL,
114
+ note TEXT,
115
+ PRIMARY KEY(item_id, path, scope),
116
+ FOREIGN KEY(item_id) REFERENCES items(id) ON DELETE CASCADE
117
+ ) STRICT;
118
+ CREATE INDEX item_linked_files_path_scope_item
119
+ ON item_linked_files(path, scope, item_id);
120
+ CREATE VIRTUAL TABLE item_search USING fts5(
121
+ id UNINDEXED,
122
+ title,
123
+ description,
124
+ tags,
125
+ tokenize = 'unicode61'
126
+ );
127
+ `)}function Kn(e,t,n){e.prepare("INSERT INTO metadata(key, value) VALUES (?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value").run(t,n)}function Va(e,t){let n=t.metadata;e.prepare(`INSERT INTO items(
128
+ id, relative_path, metadata_json, status, type, priority,
129
+ updated_at, created_at, parent, assignee, sprint, release
130
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
131
+ ON CONFLICT(id) DO UPDATE SET
132
+ relative_path = excluded.relative_path,
133
+ metadata_json = excluded.metadata_json,
134
+ status = excluded.status,
135
+ type = excluded.type,
136
+ priority = excluded.priority,
137
+ updated_at = excluded.updated_at,
138
+ created_at = excluded.created_at,
139
+ parent = excluded.parent,
140
+ assignee = excluded.assignee,
141
+ sprint = excluded.sprint,
142
+ release = excluded.release`).run(n.id,t.relativePath,JSON.stringify(n),n.status,n.type,n.priority,n.updated_at,n.created_at,n.parent??null,n.assignee??null,n.sprint??null,n.release??null),e.prepare("DELETE FROM item_metadata_keys WHERE item_id = ?").run(n.id),e.prepare("DELETE FROM item_linked_files WHERE item_id = ?").run(n.id),e.prepare("DELETE FROM item_search WHERE rowid = (SELECT rowid FROM items WHERE id = ?)").run(n.id),e.prepare("INSERT INTO item_search(rowid, id, title, description, tags) SELECT rowid, ?, ?, ?, ? FROM items WHERE id = ?").run(n.id,n.title,n.description,n.tags.join(" "),n.id);let r=e.prepare("INSERT INTO item_metadata_keys(item_id, key) VALUES (?, ?)");for(let i of Object.keys(n))r.run(n.id,i);let o=e.prepare("INSERT INTO item_linked_files(item_id, path, scope, note) VALUES (?, ?, ?, ?)");for(let i of t.linkedFiles??[])o.run(n.id,i.path,i.scope,i.note??null)}async function qa(e){let t=yt(e.pmRoot),n=Ut();if(!n){await Je.rm(t,{force:!0});return}await Je.mkdir(Ba.dirname(t),{recursive:!0});let r=`${t}.${Wf()}.tmp`,o;try{o=new n(r),qf(o),o.exec("BEGIN IMMEDIATE"),Kn(o,"version",zt),Kn(o,"context_fingerprint",e.contextFingerprint),Kn(o,"source_cursor",e.sourceCursor);for(let i of e.rows)Va(o,i);o.exec("COMMIT"),o.close(),o=void 0,await Je.rm(t,{force:!0}),await Je.rename(r,t)}catch(i){throw o?.close(),await Promise.allSettled([Je.rm(r,{force:!0})]),i}}function Xn(e){return Object.fromEntries(e.prepare("SELECT key, value FROM metadata").all().map(t=>[String(t.key),String(t.value)]))}async function Ga(e){let t=Ut();if(!t)return!1;let n=yt(e.pmRoot),r;try{await Je.access(n),r=new t(n),r.exec("PRAGMA foreign_keys = ON");let o=Xn(r);if(o.version!==zt||o.context_fingerprint!==e.contextFingerprint||o.source_cursor!==e.expectedSourceCursor)return r.close(),!1;r.exec("BEGIN IMMEDIATE");let i=r.prepare("DELETE FROM items WHERE relative_path = ?"),s=r.prepare("SELECT rowid FROM items WHERE relative_path = ?"),a=r.prepare("DELETE FROM item_search WHERE rowid = ?");for(let c of e.deletedRelativePaths??[]){let d=s.get(c);i.run(c),d&&a.run(d.rowid)}return e.row&&Va(r,e.row),Kn(r,"source_cursor",e.sourceCursor),r.exec("COMMIT"),r.close(),!0}catch{try{r?.exec("ROLLBACK")}catch{}return r?.close(),!1}}function Gn(e,t,n,r,o){!r||r.length===0||(e.push(`${n} ${o} (${r.map(()=>"?").join(", ")})`),t.push(...r))}function Gf(e){let t=[],n=[];Gn(t,n,"status",e.statuses,"IN"),Gn(t,n,"status",e.excludeStatuses,"NOT IN"),Gn(t,n,"type",e.types,"IN"),Gn(t,n,"id",e.ids,"IN");for(let r of e.metadataKeys??[])t.push("EXISTS (SELECT 1 FROM item_metadata_keys AS indexed_key WHERE indexed_key.item_id = items.id AND indexed_key.key = ?)"),n.push(r);for(let[r,o]of[["parent",e.parent],["assignee",e.assignee],["sprint",e.sprint],["release",e.release]])o!==void 0&&(t.push(`${r} = ?`),n.push(o));return e.priority!==void 0&&(t.push("priority = ?"),n.push(e.priority)),{where:t.length===0?"":` WHERE ${t.join(" AND ")}`,parameters:n}}async function Wb(e){let t=Ut();if(!t)return null;let n=e.query??{},{where:r,parameters:o}=Gf(n),i;try{i=new t(yt(e.pmRoot),{readOnly:!0});let s=Xn(i);if(s.version!==zt||s.source_cursor!==e.expectedSourceCursor)return i.close(),null;let a=i.prepare(`SELECT COUNT(*) AS count FROM items${r}`).get(...o),c=[],d="";n.limit!==void 0?(d+=" LIMIT ?",c.push(Math.max(0,Math.floor(n.limit))),n.offset!==void 0&&(d+=" OFFSET ?",c.push(Math.max(0,Math.floor(n.offset))))):n.offset!==void 0&&(d+=" LIMIT -1 OFFSET ?",c.push(Math.max(0,Math.floor(n.offset))));let l=i.prepare(`SELECT metadata_json FROM items${r}
143
+ ORDER BY ${n.terminalStatuses&&n.terminalStatuses.length>0?`CASE WHEN status IN (${n.terminalStatuses.map(()=>"?").join(", ")}) THEN 1 ELSE 0 END ASC, `:""}priority ASC, updated_at DESC, id ASC${d}`).all(...o,...n.terminalStatuses??[],...c).map(f=>{let _=JSON.parse(String(f.metadata_json));if(!_.id)throw new TypeError("Indexed metadata row has no id");return _});return i.close(),{source_cursor:s.source_cursor,total:Number(a.count),items:l}}catch{return i?.close(),null}}async function Bb(e){let t=Ut();if(!t||e.paths.length===0)return null;let n;try{n=new t(yt(e.pmRoot),{readOnly:!0});let r=Xn(n);if(r.version!==zt||r.source_cursor!==e.expectedSourceCursor)return n.close(),null;let o=e.paths.map(()=>"?").join(", "),i=e.scope===void 0?"":" AND scope = ?",s=[...e.paths,...e.scope===void 0?[]:[e.scope]],a=`path IN (${o})${i}`,c=n.prepare(`SELECT COUNT(DISTINCT item_id) AS count
144
+ FROM item_linked_files
145
+ WHERE ${a}`).get(...s),d=Wa(e.limit,50),l=Wa(e.offset,0),f=n.prepare(`SELECT items.id, items.metadata_json
146
+ FROM items
147
+ WHERE EXISTS (
148
+ SELECT 1 FROM item_linked_files
149
+ WHERE item_linked_files.item_id = items.id AND ${a}
150
+ )
151
+ ORDER BY items.priority ASC, items.updated_at DESC, items.id ASC
152
+ LIMIT ? OFFSET ?`).all(...s,d,l),_=[];if(f.length>0){let p=f.map(g=>String(g.id)),m=n.prepare(`SELECT item_id, path, scope, note
153
+ FROM item_linked_files
154
+ WHERE item_id IN (${p.map(()=>"?").join(", ")})
155
+ AND ${a}
156
+ ORDER BY path ASC, scope ASC`).all(...p,...s),v=new Map(p.map(g=>[g,[]]));for(let g of m){let S=String(g.item_id),A=v.get(S);A.push({path:String(g.path),scope:String(g.scope),...g.note===null?{}:{note:String(g.note)}}),v.set(S,A)}for(let g of f){let S=JSON.parse(String(g.metadata_json));_.push({item:S,files:v.get(String(g.id))})}}return n.close(),{source_cursor:r.source_cursor,total:Number(c.count),matches:_}}catch{return n?.close(),null}}async function Vb(e){let t=Ut();if(!t)return null;let n;try{n=new t(yt(e.pmRoot),{readOnly:!0});let r=Xn(n);if(r.version!==zt||r.source_cursor!==e.expectedSourceCursor)return n.close(),null;let o=n.prepare(`SELECT items.metadata_json
157
+ FROM item_search
158
+ JOIN items ON items.id = item_search.id
159
+ WHERE item_search MATCH ?
160
+ ORDER BY bm25(item_search), items.priority, items.updated_at DESC, items.id
161
+ LIMIT ?`).all(e.query,Math.max(0,Math.floor(e.limit))).map(i=>JSON.parse(String(i.metadata_json)));return n.close(),{source_cursor:r.source_cursor,items:o}}catch{return n?.close(),null}}async function Yn(e){await Je.rm(yt(e),{force:!0})}import W from"node:fs/promises";import j from"node:path";import{createHash as Kf,randomUUID as Qa}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]="846c1c5d-8a5c-56ee-832a-bfc780283e70")}catch{}})();var ce=8,Za=500,Xf="metadata-derived-index",Yf="metadata-cache.json",Jf="metadata-cache-bodies.json",Qf="metadata-cache-collections.json",Zf="metadata-cache-delta.json",em="metadata-cache-manifest.json",Ka=4,tm=["comments","notes","learnings","files","tests","test_runs","docs"];function ec(){return an(me())}function Qn(e){let t={...e},n={};for(let r of tm)r in t&&(n[r]=t[r],delete t[r]);return{light:t,heavy:n}}function tc(e,t){return!t||Object.keys(t).length===0?e:{...e,...t}}function nc(e,t,n,r){let o=Kf("sha256");o.update(`format:${e??"default"}`);let i=Object.entries(t).sort(([s],[a])=>s.localeCompare(a)).map(([s,a])=>`${s}=${a}`).join(",");return o.update(`|types:${i}`),n&&o.update(`|schema:${JSON.stringify(n)}`),r.length>0&&o.update(`|extension_fields:${r.join(",")}`),o.digest("hex").slice(0,16)}function Zn(e){return j.join(e,"runtime",Yf)}function er(e){return j.join(e,"runtime",Jf)}function tr(e){return j.join(e,"runtime",Qf)}function zo(e){return j.join(e,"runtime",Zf)}function Uo(e){return j.join(e,"runtime",em)}function nr(e,t){let n=j.extname(e);return`${e.slice(0,-n.length)}.${t}${n}`}var nm=24,J=new Map,rr=new WeakMap;function Wo(e){return rr.get(e)??e.source_cursor}function rm(e,t){let n=Wo(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){rr.set(e,n);for(let[r,o]of Object.entries(t.changes))o.entry?e.entries[r]=o.entry:delete e.entries[r];e.directory_signatures=t.directory_signatures,e.source_cursor=t.source_cursor}}function om(e,t){if(!e)return;let n=Wo(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){rr.set(e,n);for(let[r,o]of Object.entries(t.changes))o.body?e.bodies[r]=o.body:delete e.bodies[r];e.source_cursor=t.source_cursor}}function im(e,t){if(!e)return;let n=Wo(e);if(!(t.base_source_cursor!==n||e.source_cursor===t.source_cursor)){rr.set(e,n);for(let[r,o]of Object.entries(t.changes))o.collections?e.collections[r]=o.collections:delete e.collections[r];e.source_cursor=t.source_cursor}}function sm(e,t,n,r){!e||!r||e.context_fingerprint!==r.context_fingerprint||(rm(e,r),om(t,r),im(n,r))}function Ho(e,t){J.size>=nm&&!J.has(e)&&Zi(J),J.set(e,t)}async function Re(e,t){let n;try{n=await W.stat(e)}catch{return J.delete(e),null}let r=J.get(e);if(r&&Wt(r.signature,n.mtimeMs,n.ctimeMs,n.size))return J.delete(e),J.set(e,r),r.envelope;let o;try{o=t(await W.readFile(e,"utf8"))}catch{o=null}return Ho(e,{signature:{mtime_ms:n.mtimeMs,ctime_ms:n.ctimeMs,size:n.size},envelope:o}),o}async function am(e,t,n){let r=a=>{let c=JSON.parse(a);return c.version!==ce||typeof c.source_cursor!="string"||typeof c.entries!="object"||c.entries===null?null:c},o=Zn(e),i=await Re(o,r);if(!t||i===null||i.context_fingerprint===t)return i;let s=await Re(nr(o,t),r);return s===null&&qt(n,`metadata_cache_context_changed:${i.context_fingerprint}->${t}`),s}async function cm(e,t){let n=i=>{let s=JSON.parse(i);return s.version!==ce||typeof s.source_cursor!="string"||typeof s.bodies!="object"||s.bodies===null?null:s},r=er(e),o=await Re(r,n);return t&&o?.context_fingerprint!==t?await Re(nr(r,t),n):o}async function dm(e,t){let n=i=>{let s=JSON.parse(i);return s.version!==ce||typeof s.source_cursor!="string"||typeof s.collections!="object"||s.collections===null?null:s},r=tr(e),o=await Re(r,n);return t&&o?.context_fingerprint!==t?await Re(nr(r,t),n):o}async function Bo(e){let t=zo(e),n=await Re(t,r=>{let o=JSON.parse(r);return o.version!==ce||typeof o.base_source_cursor!="string"||typeof o.source_cursor!="string"||typeof o.changes!="object"||o.changes===null?null:o});if(n)return{envelope:n,invalid:!1};try{return await W.stat(t),{envelope:null,invalid:!0}}catch{return{envelope:null,invalid:!1}}}async function Vo(e){let t=Uo(e),n=await Re(t,r=>{let o=JSON.parse(r);return o.version!==ce||typeof o.context_fingerprint!="string"||typeof o.source_cursor!="string"||!Number.isInteger(o.entry_count)||o.entry_count<0||typeof o.directory_signatures!="object"||o.directory_signatures===null?null:o});if(n)return n;try{await W.stat(t),await gt(e)}catch{}return null}async function Bt(e,t){await W.mkdir(j.dirname(e),{recursive:!0}),await G(e,JSON.stringify(t));try{let r=await W.stat(e);Ho(e,{signature:{mtime_ms:r.mtimeMs,ctime_ms:r.ctimeMs,size:r.size},envelope:t})}catch{J.delete(e)}let n=j.dirname(j.dirname(e));if(e===Zn(n)||e===er(n)||e===tr(n)){let r=nr(e,t.context_fingerprint);await G(r,JSON.stringify(t));try{let c=await W.stat(r);Ho(r,{signature:{mtime_ms:c.mtimeMs,ctime_ms:c.ctimeMs,size:c.size},envelope:t})}catch{J.delete(r)}let o=j.dirname(e),i=j.extname(e),s=j.basename(e,i),a=(await W.readdir(o,{withFileTypes:!0}).catch(()=>[])).filter(c=>c.isFile()&&c.name!==j.basename(e)&&c.name.startsWith(`${s}.`)&&c.name.endsWith(i)).map(c=>j.join(o,c.name));if(a.length>Ka){let c=(await Promise.all(a.map(async d=>{try{return{path:d,mtime:(await W.stat(d)).mtimeMs}}catch{return null}}))).filter(d=>d!==null);for(let d of c.sort((l,f)=>l.mtime-f.mtime).slice(0,Math.max(0,c.length-Ka)))await W.rm(d.path,{force:!0}),J.delete(d.path)}}}function lm(e,t,n){return n?t===n&&e!==n:t==="toon"&&e!=="toon"}function rc(e,t,n){return e===void 0||lm(e,t,n)}function qt(e,t){e&&!e.includes(t)&&e.push(t)}function Wt(e,t,n,r){return e.mtime_ms===t&&e.ctime_ms===n&&e.size===r}async function um(e,t,n){let r=j.join(e,t);try{let o=await W.readdir(r);return{folder:t,dirPath:r,files:o}}catch(o){return typeof o=="object"&&o!==null&&"code"in o&&!te(o)&&qt(n,`item_list_directory_read_failed:${t}`),{folder:t,dirPath:r,files:[]}}}async function fm(e,t){try{let n=await W.stat(j.join(e,t));return[t,{exists:!0,mtime_ms:n.mtimeMs,ctime_ms:n.ctimeMs,size:n.size}]}catch{return[t,{exists:!1,mtime_ms:0,ctime_ms:0,size:0}]}}async function Jn(e,t){return Object.fromEntries(await Promise.all(t.map(async n=>await fm(e,n))))}function Vt(e,t){return!e||Object.keys(e).length!==Object.keys(t).length?!1:Object.entries(t).every(([n,r])=>{let o=e[n];return o!==void 0&&o.exists===r.exists&&Wt(o,r.mtime_ms,r.ctime_ms,r.size)})}function mm(e){return dn.some(t=>e.toLowerCase().endsWith(t))}function _m(e,t,n,r,o,i){r||(e.metadata=!0),t&&!o&&(e.body=!0),n&&!i&&(e.collections=!0)}async function pm(e,t,n){if(n)for(let r of await ke({path:e,scope:"project"}))qt(t,r)}function Xa(e,t,n,r){if(e)return t&&n?n.collections:r}async function hm(e,t,n){let r=await W.stat(e),o=r.mtimeMs,i=r.ctimeMs,{size:s}=r,a=Or(e);await pm(e,n.warnings,n.dispatchReadHooks);let c=n.previousEntries[t],d=!n.forceSourceRead&&c!==void 0&&Wt(c,o,i,s),l=n.previousBodies[t],f=!n.forceSourceRead&&l!==void 0&&Wt(l,o,i,s),_=n.previousCollections[t],p=!n.forceSourceRead&&_!==void 0&&Wt(_,o,i,s);if(!(!d||n.includeBody&&!f||n.includeCollections&&!p))return{mtimeMs:o,ctimeMs:i,size:s,itemFormat:a,lightMetadata:c.metadata,heavyMetadata:Xa(n.includeCollections,p,_,void 0),bodyLength:c.body_length,body:n.includeBody?l.body:void 0};let m=await W.readFile(e,"utf8"),v=Tn(m,{format:a,schema:n.schema,extensionFieldNames:n.extensionFieldNames,onWarning:S=>qt(n.warnings,S)}),g=Qn(v.metadata);return _m(n.state.misses,n.includeBody,n.includeCollections,d,f,p),{mtimeMs:o,ctimeMs:i,size:s,itemFormat:a,lightMetadata:d?c.metadata:g.light,heavyMetadata:Xa(n.includeCollections,p,_,g.heavy),bodyLength:d?c.body_length:v.body.length,body:n.includeBody?v.body:void 0}}function ym(e,t,n,r){n.state.newEntries[t]={mtime_ms:r.mtimeMs,ctime_ms:r.ctimeMs,size:r.size,metadata:r.lightMetadata,body_length:r.bodyLength},n.includeBody&&r.body!==void 0&&(n.state.newBodies[t]={mtime_ms:r.mtimeMs,ctime_ms:r.ctimeMs,size:r.size,body:r.body}),n.includeCollections&&r.heavyMetadata!==void 0&&(n.state.newCollections[t]={mtime_ms:r.mtimeMs,ctime_ms:r.ctimeMs,size:r.size,collections:r.heavyMetadata});let o=n.includeCollections?tc(r.lightMetadata,r.heavyMetadata):r.lightMetadata,i=n.state.documentsById.get(o.id),s={metadata:o,body:r.body,item_format:r.itemFormat,item_path:e};rc(i?.itemFormat,r.itemFormat,n.preferredFormat)&&n.state.documentsById.set(o.id,{candidate:s,itemFormat:r.itemFormat})}async function gm(e,t,n,r){try{let o=await hm(t,n,r);ym(t,n,r,o)}catch{qt(r.warnings,`item_list_item_read_failed:${e}/${j.basename(t)}`)}}function bm(e,t){return e&&e.context_fingerprint===t?e.entries:{}}function vm(e,t){return e&&e.context_fingerprint===t?e.bodies:{}}function wm(e,t){return e&&e.context_fingerprint===t?e.collections:{}}function Em(){return{newEntries:{},newBodies:{},newCollections:{},documentsById:new Map,misses:{metadata:!1,body:!1,collections:!1}}}async function km(e,t){let n=[];for(let{folder:r,dirPath:o,files:i}of e)for(let s of i){if(!mm(s))continue;let a=j.join(o,s),c=j.relative(t.pmRoot,a);n.push(gm(r,a,c,t)),n.length===32&&(await Promise.all(n),n.length=0)}await Promise.all(n)}async function Im(e){if(!(!(e.state.misses.metadata||Object.keys(e.previousEntries).length!==Object.keys(e.state.newEntries).length||!Vt(e.existingCache?.directory_signatures,e.directorySignatures))&&e.existingCache!==null&&e.existingCache.context_fingerprint===e.contextFingerprint))try{await Bt(Zn(e.pmRoot),{version:ce,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,directory_signatures:e.directorySignatures,entries:e.state.newEntries}),await Bt(Uo(e.pmRoot),{version:ce,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,entry_count:Object.keys(e.state.newEntries).length,directory_signatures:e.directorySignatures});let t=[...e.state.documentsById.values()].map(({candidate:n})=>({relativePath:j.relative(e.pmRoot,n.item_path),metadata:Qn(n.metadata).light,linkedFiles:n.metadata.files??[]}));t.length>=e.minimumIndexedItems?await qa({pmRoot:e.pmRoot,contextFingerprint:e.contextFingerprint,sourceCursor:e.sourceCursor,rows:t}):await Yn(e.pmRoot)}catch{}}async function Sm(e){!(e.state.misses.body||Object.keys(e.previousBodies).length!==Object.keys(e.state.newBodies).length)&&e.existingBodyCache!==null&&e.existingBodyCache.context_fingerprint===e.contextFingerprint||await Bt(er(e.pmRoot),{version:ce,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,bodies:e.state.newBodies}).catch(()=>{})}async function Tm(e){!(e.state.misses.collections||Object.keys(e.previousCollections).length!==Object.keys(e.state.newCollections).length)&&e.existingCollectionsCache!==null&&e.existingCollectionsCache.context_fingerprint===e.contextFingerprint||await Bt(tr(e.pmRoot),{version:ce,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,collections:e.state.newCollections}).catch(()=>{})}async function qo(e,t,n={}){let r=await Vo(e);return n.required!==!0&&(r===null||r.entry_count<Za)?async()=>{}:V(e,Xf,30,t,!1,!1,3e3)}async function ov(e,t){let n=await Vo(e);if(n===null)return null;let r=await Bo(e);if(r.invalid)return await gt(e),null;let o=r.envelope?.context_fingerprint===n.context_fingerprint&&r.envelope.base_source_cursor===n.source_cursor?r.envelope.source_cursor:n.source_cursor,i=r.envelope?.context_fingerprint===n.context_fingerprint&&r.envelope.base_source_cursor===n.source_cursor?r.envelope.directory_signatures:n.directory_signatures;return t&&!Vt(i,await Jn(e,t))?null:{source_cursor:o,entry_count:n.entry_count}}function Ya(e,t){let n=j.relative(e,t);return n===""||n===".."||n.startsWith(`..${j.sep}`)||j.isAbsolute(n)?null:n}async function gt(e){await Promise.all([Zn(e),er(e),tr(e),zo(e),Uo(e)].map(async t=>{await W.rm(t,{force:!0}),J.delete(t)})),await Yn(e)}async function Cm(e){if(e.mutation.document===null)return{entry:null,body:null,collections:null};let t=await W.stat(e.mutation.itemPath),n=Qn(e.mutation.document.metadata),r={mtime_ms:t.mtimeMs,ctime_ms:t.ctimeMs,size:t.size};return{entry:{...r,metadata:n.light,body_length:e.mutation.document.body.length},body:{...r,body:e.mutation.document.body},collections:{...r,collections:n.heavy}}}function xm(e,t,n){return e?.context_fingerprint===t&&e.base_source_cursor===n?structuredClone(e.changes):{}}async function Go(e){let t=Ya(e.pmRoot,e.itemPath),n=e.previousItemPath?Ya(e.pmRoot,e.previousItemPath):void 0;if(t===null||n===null)return await gt(e.pmRoot),["metadata_derived_index_path_invalidated"];try{let r=nc(e.preferredFormat,e.typeToFolder,e.schema,ec()),o=await Vo(e.pmRoot);if(o===null||o.context_fingerprint!==r)return[];let i=o.source_cursor,s=await Bo(e.pmRoot);if(s.invalid)return await gt(e.pmRoot),["metadata_derived_index_refresh_failed"];let a=xm(s.envelope,r,i),c=s.envelope?.context_fingerprint===r&&s.envelope.base_source_cursor===i?s.envelope.source_cursor:i;n!==void 0&&(a[n]={entry:null,body:null,collections:null}),a[t]=await Cm({mutation:e});let d=Qa();return await Bt(zo(e.pmRoot),{version:ce,context_fingerprint:r,base_source_cursor:i,source_cursor:d,directory_signatures:await Jn(e.pmRoot,[...new Set(Object.values(e.typeToFolder))]),changes:a}),await Ga({pmRoot:e.pmRoot,contextFingerprint:r,expectedSourceCursor:c,sourceCursor:d,row:e.document===null?null:{relativePath:t,metadata:Qn(e.document.metadata).light,linkedFiles:e.document.metadata.files},deletedRelativePaths:[...n===void 0?[]:[n],...e.document===null?[t]:[]]})||await Yn(e.pmRoot),[]}catch{return await gt(e.pmRoot).catch(()=>{}),["metadata_derived_index_refresh_failed"]}}function Om(e){return[...e.documentsById.values()].sort((t,n)=>t.candidate.metadata.id.localeCompare(n.candidate.metadata.id)).map(t=>t.candidate)}function Ja(e,t,n){return e?.context_fingerprint===t&&e.source_cursor===n}function Rm(e,t,n,r,o){return e.every(i=>(!t||r[i]!==void 0)&&(!n||o[i]!==void 0))}function Am(e){let t=new Map;for(let[n,r]of Object.entries(e.previousEntries)){let o=Or(n);if(!o)continue;let i=e.includeCollections?tc(r.metadata,e.previousCollections[n]?.collections):r.metadata,s=t.get(i.id);rc(s?.itemFormat,o,e.preferredFormat)&&t.set(i.id,{itemFormat:o,candidate:{metadata:i,body:e.includeBody?e.previousBodies[n]?.body:void 0,item_format:o,item_path:j.join(e.pmRoot,n)}})}return[...t.values()].sort((n,r)=>n.candidate.metadata.id.localeCompare(r.candidate.metadata.id)).map(n=>n.candidate)}function Dm(e){return e.forceSourceScan||Dr()||e.existingCache?.context_fingerprint!==e.contextFingerprint||e.entryKeys.length<e.minimumIndexedItems||!Vt(e.existingCache?.directory_signatures,e.directorySignatures)?!1:[!e.includeBody||Ja(e.existingBodyCache,e.contextFingerprint,e.existingCache.source_cursor),!e.includeCollections||Ja(e.existingCollectionsCache,e.contextFingerprint,e.existingCache.source_cursor)].every(Boolean)&&Rm(e.entryKeys,e.includeBody,e.includeCollections,e.previousBodies,e.previousCollections)}async function or(e,t,n,r,o,i={}){let s=i.includeBody!==!1,a=i.includeCollections!==!1,c=ec(),d=nc(t,n,o,c),l=await Bo(e);l.invalid&&await gt(e);let f=await am(e,d,i.cacheDiagnostics),_=s?await cm(e,d):null,p=a?await dm(e,d):null;sm(f,_,p,l.envelope);let m=bm(f,d),v=vm(_,d),g=wm(p,d),S=[...new Set(Object.values(n))],A=await Jn(e,S),N=Object.keys(m),z=Math.max(1,Math.floor(i.derivedIndexMinimumItems??Za));if(Dm({forceSourceScan:i.forceSourceScan===!0,contextFingerprint:d,existingCache:f,existingBodyCache:_,existingCollectionsCache:p,directorySignatures:A,entryKeys:N,minimumIndexedItems:z,includeBody:s,includeCollections:a,previousBodies:v,previousCollections:g}))return Am({pmRoot:e,preferredFormat:t,includeBody:s,includeCollections:a,previousEntries:m,previousBodies:v,previousCollections:g});let x=await Promise.all(S.map(Ze=>um(e,Ze,r))),oe=Dr(),U=Em(),Q={pmRoot:e,preferredFormat:t,warnings:r,schema:o,extensionFieldNames:c,includeBody:s,includeCollections:a,forceSourceRead:i.forceSourceScan===!0,dispatchReadHooks:oe,previousEntries:m,previousBodies:v,previousCollections:g,state:U};await km(x,Q);let B=await Jn(e,S),Z=Vt(A,B)?B:{},ee=U.misses.metadata||Object.keys(m).length!==Object.keys(U.newEntries).length||!Vt(f?.directory_signatures,Z)||f===null?Qa():f.source_cursor;return await Im({pmRoot:e,contextFingerprint:d,sourceCursor:ee,existingCache:f,previousEntries:m,directorySignatures:Z,state:U,minimumIndexedItems:z}),s&&await Sm({pmRoot:e,contextFingerprint:d,sourceCursor:ee,existingBodyCache:_,previousBodies:v,state:U}),a&&await Tm({pmRoot:e,contextFingerprint:d,sourceCursor:ee,existingCollectionsCache:p,previousCollections:g,state:U}),Om(U)}async function oc(e,t,n,r,o){return(await or(e,t,n,r,o,{includeBody:!1})).map(i=>({metadata:i.metadata,body:i.body??""}))}async function ic(e,t,n,r,o){return(await or(e,t,n,r,o,{includeBody:!1,includeCollections:!1})).map(i=>({metadata:i.metadata,body:i.body??""}))}(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]="1745a409-0f91-5f5a-8d2a-e5e61ff667a0")}catch{}})();function Xo(e,t){return(t===void 0?void 0:qi(e,t))?.execution_role??Wi[e.trim().toLowerCase()]??"agent"}var Yo="blocked_by",sc="blocks",Nm=Object.freeze([Yo,sc]),Ko="no-active-blocker";function F(e){return e.trim().toLowerCase()}function ir(e,t){return t?`external:${e}`:`local:${F(e)}`}function Gt(e){let t=new Map,n=typeof e.blocked_by=="string"?e.blocked_by.trim():"";if(n.length>0&&F(n)!==Ko){let r=ye(n);t.set(ir(n,r),r?n:F(n))}for(let r of e.dependencies??[]){let o=typeof r.id=="string"?r.id.trim():"";if(r.kind===Yo&&o.length>0&&F(o)!==Ko){let i=ye(o)||se(r.source_kind);t.set(ir(o,i),i?o:F(o))}}return[...t.values()].sort((r,o)=>r.localeCompare(o))}function sr(e){let t=new Map;for(let n of e){let r=F(n.id);r.length!==0&&t.set(r,new Set(Gt(n)))}for(let n of e){let r=F(n.id);if(r.length!==0)for(let o of n.dependencies??[]){let i=o.kind===sc&&typeof o.id=="string"?F(o.id):"";if(i.length===0||i===Ko)continue;let s=t.get(i)??new Set;s.add(r),t.set(i,s)}}return new Map([...t].map(([n,r])=>[n,[...r].sort((o,i)=>o.localeCompare(i))]))}function ac(e,t){let n=F(e.id);return n.length>0?sr(t).get(n)??Gt(e):Gt(e)}function Jo(e,t,n,r){let o=e,i=typeof o.id=="string"?r?.get(F(o.id))??ac(o,[...t.values()]):Gt(e),s=new Set((e.dependencies??[]).filter(a=>a.kind===Yo&&se(a.source_kind)&&typeof a.id=="string"&&a.id.trim().length>0).map(a=>ir(a.id.trim(),!0)));return i.map(a=>{if(ye(a)||s.has(ir(a,!0)))return{id:a,title:null,status:null,resolved:!1,external:!0,...typeof e.updated_at=="string"?{blocked_since:e.updated_at}:{},resolver:null};let c=t.get(F(a));return c?{id:a,title:c.title,status:c.status,resolved:ge(c.status,n)}:{id:a,title:null,status:null,resolved:!1}})}function Lm(e,t,n){return Jo(e,t,n)}function Pm(e,t){let n=new Map(e.map(s=>[F(s.id),s])),r=sr(e),o=new Set([...cc(t),...t.blocked_statuses]),i=new Set;for(let s of e){let a=it(s.status,t);o.has(a)&&(t.blocked_statuses.has(a)||Jo(s,n,t,r).some(c=>!c.resolved))&&i.add(F(s.id))}return i}function jm(e,t,n={},r){let o=[...e.ready,...e.decisions,...e.gates];n.includeContainers===!0&&o.push(...e.containers.filter(s=>s.open_blockers.length===0&&!t.blocked_statuses.has(it(s.item.status,t))));let i={ready:[],decisions:[],gates:[]};for(let s of o){let a=Xo(s.item.type,r);a==="human"&&n.includeDecisions!==!0?i.decisions.push(s):a==="gate"&&n.includeGates!==!0?i.gates.push(s):i.ready.push(s)}return i}function cc(e){return e.active_statuses.size>0?e.active_statuses:new Set([e.open_status])}function Mm(e,t,n){let r=[F(e)],o=new Set;for(;r.length>0;){let i=r.pop();if(!o.has(i)){o.add(i);for(let s of t.get(i)??[]){if(!ge(s.status,n))return!0;r.push(F(s.id))}}}return!1}function Fm(e){let t=new Map,n=new Map,r=new Map,o=sr(e);for(let i of e){t.set(F(i.id),i);let s=typeof i.parent=="string"?i.parent.trim():"";if(s.length>0){let a=F(s),c=n.get(a)??[];c.push(i),n.set(a,c)}for(let a of o.get(F(i.id))){let c=F(a),d=r.get(c)??[];d.push(i.id),r.set(c,d)}}return{itemsById:t,childrenByParent:n,blockedByReverse:r,blockerIdsByItem:o}}function $m(e,t,n,r){let{itemsById:o,childrenByParent:i,blockedByReverse:s,blockerIdsByItem:a}=Fm(t),c=new Set([...cc(n),...n.blocked_statuses]),d=new Set(t.filter(g=>!ge(g.status,n)).map(g=>F(g.id))),l=[],f=[],_=[],p=[],m=[],v=0;for(let g of e){if(!c.has(it(g.status,n)))continue;v+=1;let S=Jo(g,o,n,a).filter(x=>!x.resolved),A=(s.get(F(g.id))??[]).filter(x=>d.has(F(x))).sort((x,oe)=>x.localeCompare(oe)),N={item:g,open_blockers:S,unblocks:A};if(Mm(g.id,i,n)){_.push(N);continue}let z=n.blocked_statuses.has(it(g.status,n));if(S.length===0&&!z){let x=Xo(g.type,r);x==="human"?p.push(N):x==="gate"?m.push(N):l.push(N)}else f.push(N)}return{ready:l,blocked:f,containers:_,decisions:p,gates:m,active_count:v,container_count:_.length}}(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]="ae1c56b3-148d-502d-9450-e807fdfab4da")}catch{}})();(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="283dfa35-9a8e-524c-b6e2-d433d51215ca")}catch{}})();function de(){let e=ue();for(let t of me()?.relationship_kinds??[])for(let n of t.definitions)e.register(n);return 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]="8b57e560-4ac4-53b6-9fb1-eebb1f30562a")}catch{}})();function Kt(e){if(typeof e!="string")return;let t=e.trim().toLowerCase();return t.length>0?t:void 0}function ar(e){return[e.parent_id,e.child_id,e.source,e.kind,e.holder_id,e.target_id??""].join("\0")}function Hm(e,t){let n=new Set,r=[];for(let o of[...e].sort()){if(n.has(o))continue;n.add(o);let i=[{nodeId:o,children:[...t.get(o)??[]].sort(),nextChild:0}];for(;i.length>0;){let s=i.at(-1),a=s.children[s.nextChild];a===void 0?(r.push(s.nodeId),i.pop()):(s.nextChild+=1,n.has(a)||(n.add(a),i.push({nodeId:a,children:[...t.get(a)??[]].sort(),nextChild:0})))}}return r}function zm(e,t){let n=[...e].sort(),r=Hm(n,t),o=new Set,i=Um(n,t),s=[];for(let a of r.reverse()){if(o.has(a))continue;let c=Wm(a,i,o);(c.length>1||t.get(c[0])?.has(c[0]))&&s.push(c)}return s.sort((a,c)=>a.join("\0").localeCompare(c.join("\0")))}function Um(e,t){let n=new Map(e.map(r=>[r,new Set]));for(let[r,o]of t)for(let i of o)n.get(i)?.add(r);return n}function Wm(e,t,n){let r=[],o=[e];for(n.add(e);o.length>0;){let i=o.pop();r.push(i);for(let s of[...t.get(i)].sort())n.has(s)||(n.add(s),o.push(s))}return r.sort()}function dc(e){let t=new Map;for(let n of e){let r=Kt(n?.id);r&&!t.has(r)&&t.set(r,n)}return t}function Bm(e,t,n){let r=Kt(t.parent);if(!(!r||!n.has(r)))return{parent_id:r,child_id:e,source:"scalar_parent",kind:"parent",holder_id:e,child_cardinality:"one"}}function Vm(e,t,n,r){let o=Kt(t?.id),i=r.resolve(t?.kind);if(!o||!n.has(o)||!i?.hierarchy)return;let s=i.hierarchyDirection==="source_parent";return{parent_id:s?e:o,child_id:s?o:e,source:"dependency",kind:i.kind,holder_id:e,target_id:o,child_cardinality:s?i.incoming:i.outgoing}}function lc(e,t){let n=new Map;for(let[r,o]of e){let i=Bm(r,o,e);i&&n.set(ar(i),i);for(let s of o.dependencies??[]){let a=Vm(r,s,e,t);a&&n.set(ar(a),a)}}return[...n.values()].sort((r,o)=>ar(r).localeCompare(ar(o)))}function gv(e,t=de()){return lc(dc(e),t)}function qm(e,t,n){let r=new Set(e.filter(o=>o.child_cardinality==="one").map(o=>o.child_id));return[...t].filter(([o,i])=>i.length>1&&r.has(o)).map(([o,i])=>({child_id:o,parent_ids:[...i],legacy_terminal:n.has(o)&&i.every(s=>n.has(s))})).sort((o,i)=>o.child_id.localeCompare(i.child_id))}function Gm(e,t,n){let r=new Map;for(let i of t){if(i.source!=="dependency")continue;let s=r.get(i.child_id)??new Set;s.add(i.parent_id),r.set(i.child_id,s)}let o=[];for(let[i,s]of e){let a=Kt(s.parent);if(!a||!e.has(a))continue;let c=[...r.get(i)??[]].filter(d=>d!==a).sort();c.length!==0&&o.push({child_id:i,scalar_parent_id:a,dependency_parent_ids:c,legacy_terminal:n.has(i)&&n.has(a)&&c.every(d=>n.has(d))})}return o.sort((i,s)=>i.child_id.localeCompare(s.child_id))}function cr(e,t=r=>r==="closed"||r==="canceled",n=de()){let r=dc(e),o=lc(r,n),i=Km(o),s=new Set([...r].filter(([,c])=>t(c.status)).map(([c])=>c)),a=zm([...r.keys()],new Map([...i.children_by_parent].map(([c,d])=>[c,new Set(d)]))).map(c=>({item_ids:c,legacy_terminal:c.every(d=>s.has(d))}));return{relations:o,cycles:a,cardinality_violations:qm(o,i.parents_by_child,s),divergences:Gm(r,o,s)}}function bv(e){return e.source==="scalar_parent"?`${e.parent_id} -> ${e.child_id} (scalar parent on ${e.holder_id})`:`${e.parent_id} -> ${e.child_id} (${e.kind} dependency on ${e.holder_id})`}function Km(e){let t=new Map,n=new Map;for(let r of e){let o=t.get(r.child_id)??new Set;o.add(r.parent_id),t.set(r.child_id,o);let i=n.get(r.parent_id)??new Set;i.add(r.child_id),n.set(r.parent_id,i)}return{parents_by_child:new Map([...t].map(([r,o])=>[r,[...o].sort()])),children_by_parent:new Map([...n].map(([r,o])=>[r,[...o].sort()]))}}function Qo(e,t){let n=new Set(t);return e.every(r=>n.has(r))}function vv(e,t,n,r,o){let i=Kt(n);if(!i)return;let s=cr(e,r,o),a=cr(t,r,o),c=a.divergences.find(f=>!s.divergences.some(_=>_.child_id===f.child_id&&_.scalar_parent_id===f.scalar_parent_id&&Qo(f.dependency_parent_ids,_.dependency_parent_ids)));if(c){let f=[c.scalar_parent_id,...c.dependency_parent_ids].sort();throw new h(`Hierarchy mutation would assign ${c.child_id} to multiple parents: ${f.join(", ")}.`,b.CONFLICT,{code:"hierarchy_parent_divergence_created",source_id:i,target_id:c.child_id,verification_errors:f})}let d=a.cardinality_violations.find(f=>(f.child_id===i||f.parent_ids.includes(i))&&!s.cardinality_violations.some(_=>_.child_id===f.child_id&&Qo(f.parent_ids,_.parent_ids)));if(d)throw new h(`Hierarchy mutation would assign ${d.child_id} to multiple parents: ${d.parent_ids.join(", ")}.`,b.CONFLICT,{code:"hierarchy_cardinality_created",source_id:i,target_id:d.child_id,verification_errors:d.parent_ids});let l=a.cycles.find(f=>f.item_ids.includes(i)&&!s.cycles.some(_=>Qo(f.item_ids,_.item_ids)));if(l)throw new h(`Hierarchy mutation would create a cycle: ${l.item_ids.join(" -> ")}.`,b.CONFLICT,{code:"hierarchy_cycle_created",source_id:i,verification_errors:l.item_ids})}(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]="6c580b70-76eb-51db-8587-99b73dd20875")}catch{}})();var Xm="global";function Sv(e){let t=e?.trim();if(t)return se(t)?Xm:t}function Tv(e,t,n){return Ym(e,t,n)}function Ym(e,t,n){let r=e.trim();return se(n)||ye(r)?r:Ye(r,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]="41f814be-ee87-5cae-b674-69c2e7f42655")}catch{}})();function vt(e){if(typeof e!="string")return;let t=e.trim();if(!(!t||["none","null","n/a","na"].includes(t.toLowerCase())))return t}function Xt(e){let t=vt(e);return t?.toLowerCase()==="no-active-blocker"?void 0:t}function Yt(e,t,n=!0){let r=vt(e);return n&&(se(t)||r!==void 0&&ye(r))}function Zo(e,t){return Yt(e,t)?`external\0${e}`:`local\0${e.toLowerCase()}`}function uc(e,t,n,r){return Yt(e,t)?r.get(e):n.get(e.toLowerCase())}function bt(e,t){let n=e.toLowerCase(),r=t.toLowerCase();return n!==r?n<r?-1:1:e!==t?e<t?-1:1:0}function Jm(e){let t=new Map;for(let n of e.dependencies??[]){if(typeof n!="object"||n===null)continue;let r=n,o=vt(r.id);if(!o)continue;let i=typeof r.kind=="string"?r.kind:"related",s=`${i}\0${Zo(o,r.source_kind)}`,a=t.get(s);a?a.count+=1:t.set(s,{target_id:o,kind:i,count:1})}return t}function Qm(e,t=n=>n==="closed"||n==="canceled"){let n=[];for(let r of e)if(!(typeof r?.id!="string"||r.id.trim().length===0))for(let o of Jm(r).values())o.count<2||n.push({holder_id:r.id.trim(),target_id:o.target_id,kind:o.kind,occurrences:o.count,holder_status:r.status,legacy_terminal:t(r.status)});return n.sort((r,o)=>{let i=bt(r.holder_id,o.holder_id);if(i!==0)return i;let s=bt(r.target_id,o.target_id);return s!==0?s:bt(r.kind,o.kind)})}function Zm(e,t,n,r,o){if(typeof n!="object"||n===null)return;let i=vt(n.id);if(!i||Zo(i,n.source_kind)!==Zo(t))return;let s=o.resolve(typeof n.kind=="string"?n.kind:"related");if(!(s?.ordering!==!0||(s.precedence??"source_before_target")!=="source_before_target"))return{holder_id:e.id.trim(),target_id:i,dependency_kind:s.kind,holder_status:e.status,legacy_terminal:r(e.status)}}function e_(e,t=r=>r==="closed"||r==="canceled",n=de()){let r=new Map;for(let o of e){if(typeof o?.id!="string"||o.id.trim().length===0)continue;let i=vt(o.blocked_by);if(i)for(let s of o.dependencies??[]){let a=Zm(o,i,s,t,n);a&&r.set(`${a.holder_id.toLowerCase()}\0${a.target_id.toLowerCase()}\0${a.dependency_kind}`,a)}}return[...r.values()].sort((o,i)=>{let s=bt(o.holder_id,i.holder_id);if(s!==0)return s;let a=bt(o.target_id,i.target_id);return a!==0?a:bt(o.dependency_kind,i.dependency_kind)})}function ei(e,t=n=>n==="closed"||n==="canceled"){let n=e.filter(c=>typeof c?.id=="string"&&c.id.trim().length>0),r=new Set(n.map(c=>c.id.trim().toLowerCase())),o=new Map,i=(c,d,l,f,_)=>{let p=vt(d);if(!p||r.has(p.toLowerCase())||Yt(p,void 0,_))return;let m={holder_id:c.id.trim(),target_id:p,kind:l,source:f,holder_status:c.status,legacy_terminal:t(c.status),no_active_blocker_sentinel:p.toLowerCase()==="no-active-blocker"};o.set(`${m.holder_id}::${m.target_id}::${m.kind}::${m.source}`,m)};for(let c of n){i(c,c.parent,"parent","parent",!1),i(c,c.blocked_by,"blocked_by","blocked_by",!0);for(let d of c.dependencies??[]){if(typeof d!="object"||d===null)continue;let l=d;se(l.source_kind)||i(c,l.id,typeof l.kind=="string"?l.kind:"related","dependency",!0)}}let s=[...o.values()].sort((c,d)=>c.holder_id.localeCompare(d.holder_id)||c.target_id.localeCompare(d.target_id)||c.kind.localeCompare(d.kind)||c.source.localeCompare(d.source)),a=s.filter(c=>c.legacy_terminal);return{active:s.filter(c=>!c.legacy_terminal),legacy_terminal:a,no_active_blocker_sentinels:s.filter(c=>c.no_active_blocker_sentinel)}}function t_(e){let t=new Map;for(let n of[...e.active,...e.legacy_terminal]){if(n.no_active_blocker_sentinel)continue;let r=n.target_id.trim(),o=r.toLowerCase();t.has(o)||t.set(o,r)}return[...t.values()].sort((n,r)=>n.localeCompare(r))}function n_(e){let t=new Map;for(let n of e){let r=Xt(n.blocked_by);r&&Yt(r)&&!t.has(r)&&t.set(r,r);for(let o of n.dependencies??[]){if(typeof o!="object"||o===null||!Yt(o.id,o.source_kind))continue;let i=Xt(o.id);i&&!t.has(i)&&t.set(i,i)}}return[...t.values()].sort((n,r)=>n.localeCompare(r))}var fc=new WeakMap;function Nv(e){return e.hierarchyIntegrity??fc.get(e)}function r_(e,t=de()){let n={};for(let r of e)for(let o of r.dependencies??[]){if(typeof o!="object"||o===null)continue;let i=o.kind;if(typeof i!="string")continue;let s=i.trim().toLowerCase().replaceAll("-","_"),a=t.resolve(i);a&&s!==a.kind&&(n[s]=(n[s]??0)+1)}return Object.fromEntries(Object.entries(n).sort(([r],[o])=>r.localeCompare(o)))}function dr(e,t,n){let r=n??de(),o=e.filter(m=>typeof m?.id=="string"&&m.id.trim().length>0),i=new Map(o.map(m=>[m.id.trim().toLowerCase(),m.id.trim()])),s=ei(o,t),a=t_(s);for(let m of a)i.set(m.toLowerCase(),m);let c=n_(o),d=new Set(i.keys()),l=new Map;for(let m of c){let v=m;for(;d.has(v.toLowerCase());)v=`external:${v}`;l.set(m,v),d.add(v.toLowerCase())}let f=o.map(m=>{let v=Xt(m.parent),g=Xt(m.blocked_by),S=(m.dependencies??[]).flatMap(A=>{if(typeof A!="object"||A===null)return[];let N=A,z=Xt(N.id);return z?[{id:uc(z,N.source_kind,i,l),kind:typeof N.kind=="string"?N.kind:"related"}]:[]});return{id:m.id.trim(),...v?{parent:i.get(v.toLowerCase())}:{},...g?{blocked_by:uc(g,void 0,i,l)}:{},dependencies:S}}),_=cr(o,t,r),p={graph:Mi.fromItems([...f,...a.map(m=>({id:m})),...c.map(m=>({id:l.get(m)}))],r),details:[...o.map(m=>({id:m.id.trim(),title:m.title,status:m.status,...typeof m.type=="string"&&m.type.trim().length>0?{type:m.type.trim()}:{}})),...a.map(m=>({id:m,title:`[missing] ${m}`,status:"missing"})),...c.map(m=>({id:l.get(m),title:`[external] ${m}`,status:"external"}))],missingIdSet:new Set(a.map(m=>m.toLowerCase())),dangling:s,duplicateRows:Qm(o,t),orderingContradictions:e_(o,t,r),legacyAliasCounts:r_(o,r),hierarchyIntegrity:_};return fc.set(p,_),p}import{createHash as o_}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]="e31ef0fb-e803-500b-b1e5-db9edfc880c4")}catch{}})();var i_=64,s_=8;function a_(e,t){let n=(e.dependencies??[]).map(r=>{if(typeof r!="object"||r===null)return"";let o=r;return`${typeof o.kind=="string"?o.kind:"related"}:${typeof o.id=="string"?o.id:""}`}).sort().join(",");return[e.id,e.title,e.status,t(e.status)?"1":"0",typeof e.type=="string"?e.type.trim():"",e.parent??"",e.blocked_by??"",n].join("\0")}function _c(e,t=r=>r==="closed"||r==="canceled",n=ue()){let r=e.filter(i=>typeof i?.id=="string"&&i.id.trim().length>0).map(i=>a_(i,t)).sort(),o=n.list().map(i=>D(i)).sort();return o_("sha256").update(r.join("")).update("").update(o.join("")).digest("hex")}function mc(e,t,n){let r=t??n;if(!Number.isInteger(r)||r<1)throw new TypeError(`Invalid ${e} bound: ${String(t)}`);return r}var ti=class{#e=new Map;#t;#n;constructor(t={}){this.#t=mc("maxResultsPerWorkspace",t.maxResultsPerWorkspace,i_),this.#n=mc("maxWorkspaces",t.maxWorkspaces,s_)}lookup(t,n,r){let o=this.#e.get(t),i=!0;(o===void 0||o.fingerprint!==n)&&(o={fingerprint:n,assembly:r(),results:new Map},i=!1,!this.#e.has(t)&&this.#e.size>=this.#n&&this.#e.delete(this.#e.keys().next().value)),this.#e.delete(t),this.#e.set(t,o);let s=o,a=this.#t;return{assembly:s.assembly,assemblyReused:i,fingerprint:n,memoize(c,d){let l=s.results.get(c);if(l!==void 0||s.results.has(c))return s.results.delete(c),s.results.set(c,l),{value:structuredClone(l),reused:!0};let f=d();return s.results.size>=a&&s.results.delete(s.results.keys().next().value),s.results.set(c,structuredClone(f)),{value:f,reused:!1}}}}clear(){this.#e.clear()}},pc=new ti;function hc(){return pc}function Fv(){pc.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]="c67d6023-2fb2-541f-9541-8aa317368dcf")}catch{}})();var c_=["prerequisite","dependent","ancestor","descendant","provenance","related"],d_=new TextEncoder;function ni(e,t,n){let r=e??t;if(!Number.isInteger(r)||r<1)throw new TypeError(`Relationship context ${n} must be positive`);return r}function lr(e){return Math.max(1,Math.ceil(d_.encode(JSON.stringify(e)).byteLength/4))}function ri(e,t,n){let r=n.resolve(e.kind);if(r?.ordering){let o=(r.precedence??"source_before_target")==="source_before_target"?e.source:e.target;return t===o?"prerequisite":"dependent"}if(r?.hierarchy){let o=r.hierarchyDirection==="source_parent"?e.source:e.target;return t===o?"ancestor":"descendant"}return e.kind==="discovered_from"||e.kind==="incident_from"?"provenance":"related"}function l_(e,t,n,r){let o=e.filter(i=>i.source===t&&i.target===n||i.target===t&&i.source===n).map(i=>ri(i,n,r));return[...new Set(o)].sort()}function u_(e){return c_.find(t=>e.includes(t))}function f_(e,t,n,r){let o=r.direction??"both",i=r.maxDepth??3;if(!Number.isInteger(i)||i<0)throw new TypeError("Relationship context maxDepth must be non-negative");let s=new Set([t]),a=[{id:t,distance:0}],c=[],d=0,l=!1;for(let f=0;f<a.length;f+=1){r.signal?.throwIfAborted();let _=a[f];if(_.distance>=i&&l)continue;let p=e.neighborEdges(_.id,{direction:o,kinds:r.kinds,signal:r.signal});if(d+=p.meta.inspectedEdges,_.distance>=i){p.value.some(m=>!s.has(m.id))&&(l=!0);continue}for(let{id:m,edge:v}of p.value){if(s.has(m))continue;s.add(m);let g={id:m,distance:_.distance+1,via:_.id,role:ri(v,m,n)};c.push(g),a.push(g)}}return c.sort((f,_)=>f.distance-_.distance||f.id.localeCompare(_.id)),{rows:c,visitedNodes:a.length,inspectedEdges:d,depthTruncated:l}}function m_(e,t,n,r){let o={prerequisite:0,dependent:0,ancestor:0,descendant:0,provenance:0,related:0},i=e.neighborEdges(t,{direction:r.direction??"both",kinds:r.kinds,signal:r.signal}).value;for(let{id:s,edge:a}of i)o[ri(a,s,n)]+=1;return{directEdges:o,directTotal:i.length,rootEdges:i.map(({edge:s})=>s)}}function __(e){let t=[],n=e.initialTokens;for(let r of e.candidates){if(t.length>=e.nodeLimit)break;let o=r.distance===1?l_(e.rootEdges,e.rootId,r.id,e.registry):[],i={...e.details.get(r.id)??{id:r.id},distance:r.distance,role:o.length>0?u_(o):r.role,via:r.via,reasons:o.length>0?o:[`${r.role} via ${r.via} (depth ${r.distance})`]},s=lr(i);if(n+s>e.tokenBudget)break;t.push(i),n+=s}if(e.candidates.length>0&&t.length===0)throw new TypeError("Relationship context tokenBudget cannot fit one node");return{nodes:t,usedTokens:n}}function p_(e){let t=e.options.kinds?new Set(e.options.kinds.map(i=>e.registry.require(i).kind)):void 0,n=e.graph.edges().filter(i=>{if(!e.included.has(i.source)||!e.included.has(i.target))return!1;if(t===void 0||t.has(i.kind))return!0;let s=e.registry.resolve(i.kind)?.inverse;return s!==void 0&&t.has(s)}),r=[],o=e.initialTokens;for(let i of n){if(r.length>=e.edgeLimit)break;let s=lr(i);if(o+s>e.tokenBudget)break;r.push(i),o+=s}return{edges:r,usedTokens:o,candidateCount:n.length}}function yc(e,t,n,r={}){if(!e.nodes().includes(t))throw new TypeError(`Relationship node not found: ${t}`);let o=ni(r.nodeLimit,20,"nodeLimit"),i=ni(r.edgeLimit,40,"edgeLimit"),s=ni(r.tokenBudget,1200,"tokenBudget"),a=r.registry??ue(),c=new Map(n.map(et=>[et.id,et])),d=c.get(t)??{id:t},{evidence:l=[],...f}=d,_=[...l],p=f_(e,t,a,r),{rootEdges:m,...v}=m_(e,t,a,r),g=ss("relationship-context",{rootId:t,direction:r.direction??"both",kinds:[...r.kinds??[]].sort(),maxDepth:r.maxDepth??3}),S=cs(p.rows,r.cursor,g,({id:et})=>et),A=p.rows.slice(S),N=lr(f)+lr(_);if(N>s)throw new TypeError("Relationship context tokenBudget cannot fit root and evidence");let z=__({candidates:A,details:c,rootEdges:m,rootId:t,registry:a,nodeLimit:o,tokenBudget:s,initialTokens:N}),{nodes:x}=z,oe=new Set([t,...x.map(({id:et})=>et)]),U=p_({graph:e,included:oe,options:r,registry:a,edgeLimit:i,tokenBudget:s,initialTokens:z.usedTokens}),{edges:Q,usedTokens:B}=U,Z=S+x.length,ee=Z<p.rows.length,Ze=x.at(-1),Sr=U.candidateCount-Q.length,Oi=p.depthTruncated||ee||Sr>0,pd={rootId:t,...f.status===void 0?{}:{rootStatus:f.status},...v,discoveredNodes:p.rows.length,returnedNodes:x.length,returnedEdges:Q.length,omittedNodes:p.rows.length-Z,omittedEdges:Sr,evidenceCount:_.length,hasMore:ee};return{root:f,summary:pd,nodes:x,edges:Q,evidence:_,meta:{exact:!0,truncated:Oi,completeness:Oi?"truncated":"complete",nodeLimit:o,edgeLimit:i,tokenBudget:s,usedTokens:B,visitedNodes:p.visitedNodes,inspectedEdges:p.inspectedEdges,omittedNodes:p.rows.length-Z,omittedEdges:Sr,...ee&&Ze?{nextCursor:as(g,Ze.id,Z-1)}:{}}}}import{AsyncLocalStorage as P_}from"node:async_hooks";import{lstat as j_,realpath as Cc}from"node:fs/promises";import xc 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]="f4ae942c-f11f-5d24-95bf-a2abf3c226da")}catch{}})();var K={ok:!1},y=e=>typeof e=="string"?{ok:!0,value:e}:K,O=e=>typeof e=="boolean"?{ok:!0,value:e}:K;function L(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?K:{ok:!0,value:t}}function R(...e){return t=>typeof t=="string"&&e.includes(t)?{ok:!0,value:t}:K}function E(e,t){return n=>{if(!Array.isArray(n)||t!==void 0&&n.length>t)return K;let r=[];for(let o of n){let i=e(o);if(!i.ok)return K;r.push(i.value)}return{ok:!0,value:r}}}function ii(e,t){return n=>typeof n=="string"&&n.length>0&&n.length<=e&&n===n.trim()&&(t===void 0||t.test(n))?{ok:!0,value:n}:K}function u(e){return t=>t===void 0?{ok:!0,value:void 0}:e(t)}function ur(e){return t=>{if(typeof t!="object"||t===null||Array.isArray(t))return K;let n={};for(let[r,o]of Object.entries(t)){let i=e(o);if(!i.ok)return K;n[r]=i.value}return{ok:!0,value:n}}}function C(e){return t=>{if(typeof t!="object"||t===null||Array.isArray(t))return K;let n=t,r={};for(let[o,i]of Object.entries(e)){let s=i(n[o]);if(!s.ok)return K;s.value!==void 0&&(r[o]=s.value)}return{ok:!0,value:r}}}var h_=C({key:y,values:E(y),required:u(O),aliases:u(E(y)),description:u(y)}),y_=C({command:R("create","update"),option:y,required:u(O),visible:u(O),enabled:u(O)}),g_=C({name:y,description:u(y),default_status:u(y),execution_role:u(R("agent","human","gate")),folder:u(y),aliases:u(E(y)),required_create_fields:u(E(y)),required_create_repeatables:u(E(y)),options:u(E(h_)),command_option_policies:u(E(y_))}),b_=C({id:y,aliases:u(E(y)),roles:u(E(R(...Ri))),description:u(y),order:u(L())}),v_=C({key:y,metadata_key:u(y),front_matter_key:u(y),cli_flag:u(y),cli_aliases:u(E(y)),description:u(y),type:u(R(...Ai)),commands:u(E(R(...Di))),repeatable:u(O),required:u(O),required_on_create:u(O),required_types:u(E(y)),allow_unset:u(O)}),w_=e=>{if(!Array.isArray(e)||e.length!==2)return K;let[t,n]=e;return typeof t!="string"||typeof n!="string"?K:{ok:!0,value:[t,n]}},E_=C({type:y,allowed_transitions:E(w_)}),k_=u(C({version:u(L({int:!0})),files:u(C({types:u(y),statuses:u(y),fields:u(y),workflows:u(y)})),statuses:u(E(b_)),fields:u(E(v_)),workflow:u(C({draft_status:u(y),open_status:u(y),in_progress_status:u(y),blocked_status:u(y),close_status:u(y),canceled_status:u(y)})),type_workflows:u(E(E_)),unknown_field_policy:u(R(...Ni))})),I_=u(C({preset:u(R(...Li)),ownership_enforcement:u(R("none","warn","strict")),create_mode_default:u(R("progressive","strict")),close_validation_default:u(R("off","warn","strict")),require_close_reason:u(O),parent_reference:u(R("warn","strict_error")),metadata_profile:u(R("core","strict","custom")),force_required_for_stale_lock:u(O),create_default_type:u(y),workflow_enforcement:u(R("off","warn","strict")),duplicate_detection_mode:u(R("off","advisory","strict")),duplicate_detection_threshold:u(L({min:0,max:1})),duplicate_detection_limit:u(L({int:!0,min:0,max:20}))})),S_=C({name:y,disabled:u(O),require_trusted:u(O),require_provenance:u(O),sandbox_profile:u(R("none","restricted","strict")),allowed_capabilities:u(E(y)),blocked_capabilities:u(E(y)),allowed_surfaces:u(E(y)),blocked_surfaces:u(E(y)),allowed_commands:u(E(y)),blocked_commands:u(E(y)),allowed_actions:u(E(y)),blocked_actions:u(E(y)),allowed_services:u(E(y)),blocked_services:u(E(y))}),oi=R("block","warn"),T_=e=>typeof e=="string"?oi(e):C({global:u(oi),project:u(oi)})(e),C_=u(C({mode:u(R("off","warn","enforce")),trust_mode:u(R("off","warn","enforce")),pm_max_version_exceeded_mode:u(T_),require_provenance:u(O),trusted_extensions:u(E(y)),default_sandbox_profile:u(R("none","restricted","strict")),allowed_extensions:u(E(y)),blocked_extensions:u(E(y)),allowed_capabilities:u(E(y)),blocked_capabilities:u(E(y)),allowed_surfaces:u(E(y)),blocked_surfaces:u(E(y)),allowed_commands:u(E(y)),blocked_commands:u(E(y)),allowed_actions:u(E(y)),blocked_actions:u(E(y)),allowed_services:u(E(y)),blocked_services:u(E(y)),extension_overrides:u(E(S_))})),Qe=ii(128),x_=C({harness:ii(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u),environment_keys:u(E(Qe,64)),model_environment_keys:u(E(Qe,64)),session_environment_keys:u(E(Qe,64)),provenance_environment_keys:u(ur(E(Qe,64))),provenance_resolvers:u(ur(R("ai_agent_version","claude_session_file"))),provenance_unavailable_dimensions:u(E(Qe,64)),argv_markers:u(E(Qe,64)),client_names:u(E(Qe,64))}),O_=C({version:L({int:!0}),id_prefix:y,ids:u(C({token_length:u(L({int:!0,min:4,max:12}))})),author_default:y,agent_identity:u(C({probes_enabled:u(O),identity_vocabulary:u(C({version:L({int:!0,positive:!0}),aliases:ur(ii(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u))})),harness_signals:E(x_)})),mutation_guard:u(C({require_attributed_author:u(O),secret_guard:u(R("off","advise","block")),stale_in_progress_hours:u(L({int:!0,positive:!0}))})),item_format:u(R("toon","json_markdown")),locks:C({ttl_seconds:L({int:!0}),wait_ms:u(L({int:!0,min:0}))}),checkpoints:u(C({retention_days:u(L({int:!0,positive:!0}))})),output:C({default_format:R("toon","json")}),ux:u(C({deprecation_hints:u(O)})),history:u(C({missing_stream:R("auto_create","strict_error"),compact_policy:u(C({enabled:u(O),max_entries:u(L({int:!0,positive:!0})),trigger:u(R("health_warn","auto"))}))})),validation:u(C({sprint_release_format:R("warn","strict_error"),parent_reference:u(R("warn","strict_error")),metadata_profile:u(R("core","strict","custom")),metadata_required_fields:u(E(y)),lifecycle_stale_blocker_reason_patterns:u(E(y)),lifecycle_closure_like_blocked_reason_patterns:u(E(y)),lifecycle_closure_like_resolution_patterns:u(E(y)),lifecycle_closure_like_actual_result_patterns:u(E(y)),estimate_defaults_by_type:u(ur(L({int:!0,positive:!0})))})),governance:I_,workflow:u(C({definition_of_done:E(y)})),testing:u(C({record_results_to_items:O,allow_untrusted_linked_tests:u(O)})),telemetry:u(C({enabled:O,first_run_prompt_completed:u(O),capture_level:u(R("minimal","redacted","max")),endpoint:u(y),installation_id:u(y),retention_days:u(L({int:!0,positive:!0}))})),agent_guidance:u(C({prompt_completed:u(O),declined:u(O),declined_at:u(y),template_version:u(L({int:!0,positive:!0})),last_checked_files:u(E(y))})),item_types:u(C({definitions:E(g_)})),schema:k_,context:u(C({default_depth:u(R("brief","standard","deep")),activity_limit:u(L({int:!0,positive:!0})),stale_threshold_days:u(L({int:!0,positive:!0})),sections:u(C({hierarchy:u(O),activity:u(O),progress:u(O),recently_created:u(O),unparented:u(O),blockers:u(O),files:u(O),workload:u(O),staleness:u(O),tests:u(O)}))})),extensions:C({enabled:E(y),disabled:E(y),policy:C_}),search:C({score_threshold:L(),hybrid_semantic_weight:u(L()),max_results:L({int:!0}),embedding_model:y,embedding_corpus_max_characters:u(L()),embedding_batch_size:L({int:!0}),embedding_timeout_ms:u(L({int:!0})),scanner_max_batch_retries:L({int:!0}),provider:u(y),default_mode:u(R("auto","keyword","semantic","hybrid")),corpus_fields:u(E(y)),mutation_refresh_policy:u(R("cache_only","semantic_configured","semantic_auto")),query_expansion:u(C({enabled:u(O),provider:u(y)})),rerank:u(C({enabled:u(O),model:u(y),top_k:u(L({int:!0,positive:!0}))})),bm25:u(C({k1:u(L()),b:u(L())}))}),providers:C({openai:C({base_url:y,api_key:y,model:y}),ollama:C({base_url:y,model:y})}),vector_store:C({adapter:u(y),collection_name:u(y),qdrant:C({url:y,api_key:y}),lancedb:C({path:y})})});function si(e){let t=O_(e);return t.ok?{success:!0,data:t.value}:{success:!1}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="a0ca9902-540c-50fe-a4e2-9c234c4a01f3")}catch{}})();function fr(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ai(e,t,n,r=[]){if(ie(e,t)&&(r.length>0||fr(n)))return n;if(ie(e,n)||ie(t,n))return t;if((e===void 0||fr(e))&&fr(t)&&fr(n)){let o=e??{},i=new Set([...Object.keys(o),...Object.keys(t),...Object.keys(n)]);return Object.fromEntries([...i].flatMap(s=>{let a=ai(Object.hasOwn(o,s)?o[s]:void 0,Object.hasOwn(t,s)?t[s]:void 0,Object.hasOwn(n,s)?n[s]:void 0,[...r,s]);return a===void 0?[]:[[s,a]]}))}throw new h(`Settings changed concurrently at ${r.join(".")||"<root>"}; read the latest settings and reapply the intended change.`,b.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 R_={Epic:2880,Feature:480,Story:480,Milestone:2880,Task:120,Issue:60,Bug:60,Chore:30,Decision:15,Plan:120},gc=120;function ci(e){return typeof e=="number"&&Number.isFinite(e)&&e>0}function vc(e){let t=new Map;for(let[n,r]of Object.entries(e))t.set(n.toLowerCase(),r);return t}var A_=vc(R_),bc=new WeakMap;function D_(e){let t=bc.get(e);if(t)return t;let n=vc(e);return bc.set(e,n),n}function Xv(e,t){let n=(e??"").trim().toLowerCase();if(n.length===0)return gc;if(t){let o=D_(t).get(n);if(ci(o))return Math.floor(o)}let r=A_.get(n);return ci(r)?Math.floor(r):gc}function di(e){let t={};if(e===null||typeof e!="object"||Array.isArray(e))return t;for(let[n,r]of Object.entries(e)){let o=n.trim();o.length===0||!ci(r)||(t[o]=Math.floor(r))}return t}import{stat as N_}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 mr=new Map;function wc(e){return[...new Set(e.map(t=>t.trim()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}async function L_(e){try{let t=await N_(e);return{path:e,mtime_ms:t.mtimeMs,size:t.size}}catch{return{path:e,mtime_ms:null,size:null}}}async function Ae(e){let t=wc(e),n=await Promise.all(t.map(r=>L_(r)));return n.sort((r,o)=>r.path.localeCompare(o.path)),n}function Jt(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1){let r=e[n],o=t[n];if(r.path!==o.path||r.mtime_ms!==o.mtime_ms||r.size!==o.size)return!1}return!0}function Ec(e){return mr.get(e)}function _r(e,t){let n=wc(t.tracked_paths),r=[...t.signatures].map(o=>({path:o.path,mtime_ms:o.mtime_ms,size:o.size})).sort((o,i)=>o.path.localeCompare(i.path));mr.set(e,{tracked_paths:n,signatures:r,value:t.value})}function De(e){if(e){mr.delete(e);return}mr.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]="bbb5e299-541d-5fff-8422-855c85cf7a31")}catch{}})();var mi=new P_;async function hw(e,t,n=()=>!0){let r=new Set([xc.resolve(e)]);try{r.add(await Cc(e))}catch{}return mi.run([...mi.getStore()??[],[r,n]],t)}function M_(e){let t=xc.resolve(e);return mi.getStore()?.some(([n,r])=>n.has(t)&&r())??!1}var F_="settings:write",Oc=Symbol("pm.settings.persist_source"),$_=128,H_=new Set(["off","advisory","strict"]);function kc(e){return structuredClone(ji[e])}function z_(e){return e==="minimal"||e==="default"||e==="strict"||e==="custom"?e:k.governance.preset}function Ic(e,t){let n=typeof t.create_default_type=="string"?t.create_default_type.trim():void 0;return n&&n.length>0&&(e.create_default_type=n),(t.workflow_enforcement==="off"||t.workflow_enforcement==="warn"||t.workflow_enforcement==="strict")&&(e.workflow_enforcement=t.workflow_enforcement),t.require_close_reason===!1&&(e.require_close_reason=!1),e.duplicate_detection_mode=t.duplicate_detection_mode,e.duplicate_detection_threshold=t.duplicate_detection_threshold,e.duplicate_detection_limit=t.duplicate_detection_limit,e}function U_(e){return e.preset==="custom"?Ic({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):Ic({preset:e.preset},e)}function W_(e){let t=typeof e.create_default_type=="string"?e.create_default_type.trim():void 0,n={};t&&t.length>0&&(n.create_default_type=t),(e.workflow_enforcement==="off"||e.workflow_enforcement==="warn"||e.workflow_enforcement==="strict")&&(n.workflow_enforcement=e.workflow_enforcement),typeof e.require_close_reason=="boolean"&&(n.require_close_reason=e.require_close_reason),H_.has(String(e.duplicate_detection_mode))&&(n.duplicate_detection_mode=e.duplicate_detection_mode);let r=e.duplicate_detection_threshold;[typeof r=="number",Number.isFinite(r),Number(r)>=0,Number(r)<=1].every(Boolean)&&(n.duplicate_detection_threshold=r);let o=e.duplicate_detection_limit;return[typeof o=="number",Number.isSafeInteger(o),Number(o)>=0,Number(o)<=20].every(Boolean)&&(n.duplicate_detection_limit=o),n}function yr(e){let t=e.governance??{},n=z_(t.preset),r=W_(t);if(n==="custom"){let s=kc("default"),a=r.require_close_reason??s.require_close_reason;return{preset:n,ownership_enforcement:t.ownership_enforcement??s.ownership_enforcement,create_mode_default:t.create_mode_default??s.create_mode_default,close_validation_default:t.close_validation_default??s.close_validation_default,parent_reference:t.parent_reference??s.parent_reference,metadata_profile:t.metadata_profile??s.metadata_profile,force_required_for_stale_lock:t.force_required_for_stale_lock??s.force_required_for_stale_lock,...r,require_close_reason:a,duplicate_detection_mode:r.duplicate_detection_mode??s.duplicate_detection_mode,duplicate_detection_threshold:r.duplicate_detection_threshold??s.duplicate_detection_threshold,duplicate_detection_limit:r.duplicate_detection_limit??s.duplicate_detection_limit}}let o=kc(n),i=r.require_close_reason??o.require_close_reason;return{preset:n,...o,...r,require_close_reason:i}}function Rc(){return structuredClone(k)}function Ac(e){return e==="cache_only"||e==="semantic_configured"||e==="semantic_auto"?e:k.search.mutation_refresh_policy}function Dc(e){return e==="auto"||e==="keyword"||e==="semantic"||e==="hybrid"?e:"auto"}function Nc(e){return typeof e=="boolean"?e:k.search.query_expansion.enabled}function Lc(e){return typeof e!="string"?k.search.query_expansion.provider:e.trim()}function Pc(e){return typeof e=="boolean"?e:k.search.rerank.enabled}function jc(e){return typeof e!="string"?k.search.rerank.model:e.trim()}function Mc(e){return typeof e=="number"&&Number.isFinite(e)&&Number.isInteger(e)&&e>0?e:k.search.rerank.top_k}function Fc(e){if(typeof e!="string")return k.vector_store.collection_name;let t=e.trim().replaceAll(/[^a-zA-Z0-9_-]/g,"_").slice(0,$_);return t.length>0?t:k.vector_store.collection_name}function li(e){return{present:Array.isArray(e),values:Array.isArray(e)?structuredClone(e):[]}}function $c(e,t){let n=e.schema,r=li(n?.statuses),o=li(n?.fields),i=li(n?.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:wt(e.item_types?.definitions),has_source_schema_statuses:r.present,source_schema_statuses:r.values,has_source_schema_fields:o.present,source_schema_fields:o.values,has_source_schema_type_workflows:i.present,source_schema_type_workflows:i.values,runtime_item_type_definitions:wt(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 hi(e,t){Object.defineProperty(e,Oc,{value:t,writable:!0,configurable:!0,enumerable:!1})}function Hc(e){let t=e[Oc];if(!(!t||typeof t!="object"))return t}function pr(e){let t=structuredClone(e.settings),n=Hc(e.settings);return n&&hi(t,n),{settings:t,metadata:{has_explicit_item_format:e.metadata.has_explicit_item_format},warnings:[...e.warnings]}}function B_(e,t,n){let r=Ct(t);return[n,xt(e,r.files.types,Tt.types),xt(e,r.files.statuses,Tt.statuses),xt(e,r.files.fields,Tt.fields),xt(e,r.files.workflows,Tt.workflows)]}async function V_(e,t,n){let r=await Ae(t);_r(e,{tracked_paths:t,signatures:r,value:pr(n)})}async function q_(e,t,n){try{await V_(e,t,n)}catch{De(e)}}function Sc(e,t){return e.find(n=>n.path===t)}function G_(e,t,n){for(let r of n){let o=Sc(e,r),i=Sc(t,r);if(!o||!i||!Jt([o],[i]))return!1}return!0}async function ui(e,t,n,r,o){try{let i=await Ae(t);if(!G_(r,i,o)){De(e);return}_r(e,{tracked_paths:t,signatures:i,value:pr(n)})}catch{De(e)}}function K_(e,t){let n=Ct(e.schema),r=wt(e.item_types?.definitions);if(!t)return{item_type_definitions:r,schema_statuses:n.statuses,schema_fields:n.fields,schema_type_workflows:n.type_workflows};let o=n.type_workflows??[],i=ie(r,t.runtime_item_type_definitions),s=ie(n.statuses,t.runtime_schema_statuses),a=ie(n.fields,t.runtime_schema_fields),c=ie(o,t.runtime_schema_type_workflows);return{item_type_definitions:i?t.has_source_item_type_definitions?wt(t.source_item_type_definitions):[]:r,schema_statuses:s?t.has_source_schema_statuses?structuredClone(t.source_schema_statuses):[]:n.statuses,schema_fields:a?t.has_source_schema_fields?structuredClone(t.source_schema_fields):[]:n.fields,schema_type_workflows:c?t.has_source_schema_type_workflows?structuredClone(t.source_schema_type_workflows):void 0:n.type_workflows}}function le(e){return{settings:Rc(),metadata:{has_explicit_item_format:!1},warnings:e?[e]:[]}}function zc(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=e.item_format;return t==="toon"||t==="json_markdown"}function _i(e){return[...new Set((e??[]).map(t=>t.trim()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function Uc(e){let t=k.agent_guidance,n=e?.template_version;return{prompt_completed:e?.prompt_completed===!0,declined:e?.declined===!0,declined_at:typeof e?.declined_at=="string"?e.declined_at:t.declined_at,template_version:typeof n=="number"&&Number.isInteger(n)&&n>0?n:t.template_version,last_checked_files:_i(e?.last_checked_files??t.last_checked_files)}}function re(e){return[...new Set((e??[]).map(t=>t.trim().toLowerCase()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function X_(e){return e==="off"||e==="warn"||e==="enforce"?e:k.extensions.policy.mode}function Y_(e){return e==="off"||e==="warn"||e==="enforce"?e:k.extensions.policy.trust_mode}function Wc(e){return e==="none"||e==="restricted"||e==="strict"?e:k.extensions.policy.default_sandbox_profile}function J_(e){let t=e.name.trim().toLowerCase();if(t.length===0)return null;let n={name:t};e.disabled===!0&&(n.disabled=!0),e.require_trusted===!0&&(n.require_trusted=!0),e.require_provenance===!0&&(n.require_provenance=!0),e.sandbox_profile!==void 0&&(n.sandbox_profile=Wc(e.sandbox_profile));let r=re(e.allowed_capabilities),o=re(e.blocked_capabilities),i=re(e.allowed_surfaces),s=re(e.blocked_surfaces),a=re(e.allowed_commands),c=re(e.blocked_commands),d=re(e.allowed_actions),l=re(e.blocked_actions),f=re(e.allowed_services),_=re(e.blocked_services);return r.length>0&&(n.allowed_capabilities=r),o.length>0&&(n.blocked_capabilities=o),i.length>0&&(n.allowed_surfaces=i),s.length>0&&(n.blocked_surfaces=s),a.length>0&&(n.allowed_commands=a),c.length>0&&(n.blocked_commands=c),d.length>0&&(n.allowed_actions=d),l.length>0&&(n.blocked_actions=l),f.length>0&&(n.allowed_services=f),_.length>0&&(n.blocked_services=_),n}function Q_(e){let t=new Map;for(let n of e??[]){let r=J_(n);r&&t.set(r.name,r)}return[...t.values()].sort((n,r)=>n.name.localeCompare(r.name))}function fi(e){return e==="block"||e==="warn"?e:void 0}function Z_(e){if(typeof e=="string")return fi(e);if(typeof e=="object"&&e!==null&&!Array.isArray(e)){let t=fi(e.global),n=fi(e.project);return t===void 0&&n===void 0?void 0:{...t!==void 0?{global:t}:{},...n!==void 0?{project:n}:{}}}}function X(e,t){return re(e?.[t]??k.extensions.policy[t])}function Bc(e){let t=Z_(e?.pm_max_version_exceeded_mode);return{mode:X_(e?.mode),trust_mode:Y_(e?.trust_mode),...t!==void 0?{pm_max_version_exceeded_mode:t}:{},require_provenance:e?.require_provenance===!0,trusted_extensions:X(e,"trusted_extensions"),default_sandbox_profile:Wc(e?.default_sandbox_profile),allowed_extensions:X(e,"allowed_extensions"),blocked_extensions:X(e,"blocked_extensions"),allowed_capabilities:X(e,"allowed_capabilities"),blocked_capabilities:X(e,"blocked_capabilities"),allowed_surfaces:X(e,"allowed_surfaces"),blocked_surfaces:X(e,"blocked_surfaces"),allowed_commands:X(e,"allowed_commands"),blocked_commands:X(e,"blocked_commands"),allowed_actions:X(e,"allowed_actions"),blocked_actions:X(e,"blocked_actions"),allowed_services:X(e,"allowed_services"),blocked_services:X(e,"blocked_services"),extension_overrides:Q_(e?.extension_overrides??k.extensions.policy.extension_overrides)}}function Vc(e){return[...new Set((e??[]).map(t=>t.trim().toLowerCase().replaceAll("-","_")))].filter(t=>t.length>0).sort((t,n)=>t.localeCompare(n)).filter(t=>["author","acceptance_criteria","estimated_minutes","close_reason","reviewer","risk","confidence","sprint","release"].includes(t))}function Ne(e){return[...new Set((e??[]).map(t=>t.trim().toLowerCase()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function $(e,t){return e===void 0?t:e}function Y(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:{}}function pi(e){return Array.isArray(e)?e:[]}function ep(e,t,n){return{...t.validation,...e.validation,parent_reference:n.parent_reference,metadata_profile:n.metadata_profile,metadata_required_fields:Vc(e.validation?.metadata_required_fields),lifecycle_stale_blocker_reason_patterns:Ne(e.validation?.lifecycle_stale_blocker_reason_patterns??t.validation.lifecycle_stale_blocker_reason_patterns),lifecycle_closure_like_blocked_reason_patterns:Ne(e.validation?.lifecycle_closure_like_blocked_reason_patterns??t.validation.lifecycle_closure_like_blocked_reason_patterns),lifecycle_closure_like_resolution_patterns:Ne(e.validation?.lifecycle_closure_like_resolution_patterns??t.validation.lifecycle_closure_like_resolution_patterns),lifecycle_closure_like_actual_result_patterns:Ne(e.validation?.lifecycle_closure_like_actual_result_patterns??t.validation.lifecycle_closure_like_actual_result_patterns),estimate_defaults_by_type:di(e.validation?.estimate_defaults_by_type)}}function tp(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 np(e,t){return{...t.search,...e.search,default_mode:Dc(e.search?.default_mode),mutation_refresh_policy:Ac(e.search?.mutation_refresh_policy),query_expansion:{...t.search.query_expansion,...e.search?.query_expansion,enabled:Nc(e.search?.query_expansion?.enabled),provider:Lc(e.search?.query_expansion?.provider)},rerank:{...t.search.rerank,...e.search?.rerank,enabled:Pc(e.search?.rerank?.enabled),model:jc(e.search?.rerank?.model),top_k:Mc(e.search?.rerank?.top_k)}}}function rp(e,t){return{adapter:e.vector_store.adapter??t.vector_store.adapter,collection_name:Fc(e.vector_store.collection_name),qdrant:{...t.vector_store.qdrant,...e.vector_store.qdrant},lancedb:{...t.vector_store.lancedb,...e.vector_store.lancedb}}}function op(e,t){return e.item_format==="json_markdown"?"toon":e.item_format??t.item_format}function ip(e,t){return{default_depth:e.context?.default_depth??t.context.default_depth,activity_limit:e.context?.activity_limit??t.context.activity_limit,stale_threshold_days:e.context?.stale_threshold_days??t.context.stale_threshold_days,sections:{...t.context.sections,...e.context?.sections}}}function sp(e,t){return{openai:{...t.providers.openai,...e.providers.openai},ollama:{...t.providers.ollama,...e.providers.ollama}}}function wt(e){let t=(e??[]).map(r=>Ui(r)).filter(r=>r!==null),n=new Map;for(let r of t)n.set(r.name.toLowerCase(),r);return[...n.values()].sort((r,o)=>r.name.localeCompare(o.name))}function hr(e){let t=Rc(),n=yr({governance:e.governance??{preset:"default"}});return{...t,...e,item_format:op(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:ep(e,t,n),governance:n,workflow:{definition_of_done:[...e.workflow?.definition_of_done??t.workflow.definition_of_done]},testing:{record_results_to_items:e.testing?.record_results_to_items??t.testing.record_results_to_items,allow_untrusted_linked_tests:e.testing?.allow_untrusted_linked_tests??t.testing.allow_untrusted_linked_tests},telemetry:tp(e,t),agent_guidance:Uc(e.agent_guidance??t.agent_guidance),item_types:{definitions:wt(e.item_types?.definitions)},schema:Ct(e.schema??t.schema),context:ip(e,t),extensions:{enabled:[...e.extensions.enabled],disabled:[...e.extensions.disabled],policy:Bc(e.extensions.policy??t.extensions.policy)},search:np(e,t),providers:sp(e,t),vector_store:rp(e,t)}}function ap(e){e.agent_identity=T(e.agent_identity,["probes_enabled","identity_vocabulary","harness_signals"]);let t=e.agent_identity;Object.hasOwn(t,"identity_vocabulary")&&(t.identity_vocabulary=T(Y(t.identity_vocabulary),["version","aliases"])),e.agent_identity.harness_signals=pi(e.agent_identity.harness_signals).map(n=>T(Y(n),["harness","environment_keys","model_environment_keys","session_environment_keys","provenance_environment_keys","provenance_resolvers","provenance_unavailable_dimensions","argv_markers","client_names"])),e.locks=T(e.locks,["ttl_seconds","wait_ms"]),e.ids=T(e.ids,["token_length"]),e.mutation_guard=T(e.mutation_guard,["require_attributed_author","secret_guard","stale_in_progress_hours"]),e.checkpoints=T(e.checkpoints,["retention_days"]),e.output=T(e.output,["default_format"]),e.ux=T(e.ux,["deprecation_hints"]),e.history=T(e.history,["missing_stream","compact_policy"]),e.validation=T(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=T(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=T(e.workflow,["definition_of_done"]),e.testing=T(e.testing,["record_results_to_items","allow_untrusted_linked_tests"]),e.telemetry=T(e.telemetry,["enabled","first_run_prompt_completed","capture_level","endpoint","installation_id","retention_days"]),e.agent_guidance=T(e.agent_guidance,["prompt_completed","declined","declined_at","template_version","last_checked_files"]),e.item_types=T(e.item_types,["definitions"]),e.schema=T(e.schema,["version","files","statuses","fields","workflow","type_workflows","unknown_field_policy"]),e.schema.files=T(Y(e.schema.files),["types","statuses","fields","workflows"]),e.schema.workflow=T(Y(e.schema.workflow),["draft_status","open_status","in_progress_status","blocked_status","close_status","canceled_status"]),e.context=T(e.context,["default_depth","activity_limit","stale_threshold_days","sections"]),e.context.sections=T(Y(e.context.sections),["hierarchy","activity","progress","blockers","files","workload","staleness","tests"]),e.extensions=T(e.extensions,["enabled","disabled","policy"]),e.extensions.policy=T(Y(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=pi(e.extensions.policy.extension_overrides).map(n=>T(Y(n),["name","disabled","require_trusted","require_provenance","sandbox_profile","allowed_capabilities","blocked_capabilities","allowed_surfaces","blocked_surfaces","allowed_commands","blocked_commands","allowed_actions","blocked_actions","allowed_services","blocked_services"])),e.search=T(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=T(Y(e.search.query_expansion),["enabled","provider"]),e.search.rerank=T(Y(e.search.rerank),["enabled","model","top_k"]),e.providers=T(e.providers,["openai","ollama"]),e.providers.openai=T(Y(e.providers.openai),["base_url","api_key","model"]),e.providers.ollama=T(Y(e.providers.ollama),["base_url","model"]),e.vector_store=T(e.vector_store,["adapter","collection_name","qdrant","lancedb"]),e.vector_store.qdrant=T(Y(e.vector_store.qdrant),["url","api_key"]),e.vector_store.lancedb=T(Y(e.vector_store.lancedb),["path"])}function cp(e){return{...e,locks:$(e.locks,k.locks),ids:$(e.ids,k.ids),agent_identity:$(e.agent_identity,k.agent_identity),mutation_guard:$(e.mutation_guard,k.mutation_guard),checkpoints:$(e.checkpoints,k.checkpoints),output:$(e.output,k.output),ux:$(e.ux,k.ux),history:$(e.history,k.history),validation:$(e.validation,k.validation),workflow:$(e.workflow,k.workflow),testing:$(e.testing,k.testing),telemetry:$(e.telemetry,k.telemetry),agent_guidance:$(e.agent_guidance,k.agent_guidance),item_types:$(e.item_types,k.item_types),schema:$(e.schema,k.schema),context:$(e.context,k.context),extensions:$(e.extensions,k.extensions),search:$(e.search,k.search),providers:$(e.providers,k.providers),vector_store:$(e.vector_store,k.vector_store)}}function dp(e,t){return{...e.validation,parent_reference:t.parent_reference,metadata_profile:t.metadata_profile,metadata_required_fields:Vc(e.validation?.metadata_required_fields),lifecycle_stale_blocker_reason_patterns:Ne(e.validation?.lifecycle_stale_blocker_reason_patterns??k.validation.lifecycle_stale_blocker_reason_patterns),lifecycle_closure_like_blocked_reason_patterns:Ne(e.validation?.lifecycle_closure_like_blocked_reason_patterns??k.validation.lifecycle_closure_like_blocked_reason_patterns),lifecycle_closure_like_resolution_patterns:Ne(e.validation?.lifecycle_closure_like_resolution_patterns??k.validation.lifecycle_closure_like_resolution_patterns),lifecycle_closure_like_actual_result_patterns:Ne(e.validation?.lifecycle_closure_like_actual_result_patterns??k.validation.lifecycle_closure_like_actual_result_patterns),estimate_defaults_by_type:di(e.validation?.estimate_defaults_by_type)}}function lp(e){return{...k.search,...e.search,default_mode:Dc(e.search?.default_mode),mutation_refresh_policy:Ac(e.search?.mutation_refresh_policy),query_expansion:{...k.search.query_expansion,...e.search?.query_expansion,enabled:Nc(e.search?.query_expansion?.enabled),provider:Lc(e.search?.query_expansion?.provider)},rerank:{...k.search.rerank,...e.search?.rerank,enabled:Pc(e.search?.rerank?.enabled),model:jc(e.search?.rerank?.model),top_k:Mc(e.search?.rerank?.top_k)}}}function up(e){return{default_depth:e.context?.default_depth??k.context.default_depth,activity_limit:e.context?.activity_limit??k.context.activity_limit,stale_threshold_days:e.context?.stale_threshold_days??k.context.stale_threshold_days,sections:{...k.context.sections,...e.context?.sections}}}function fp(e){return{...e.vector_store,adapter:e.vector_store?.adapter??k.vector_store.adapter,collection_name:Fc(e.vector_store?.collection_name),qdrant:{...e.vector_store?.qdrant},lancedb:{...e.vector_store?.lancedb}}}function mp(e,t,n,r){return{...e,item_format:"toon",validation:dp(e,t),governance:t,agent_guidance:Uc(e.agent_guidance),item_types:{definitions:r.item_type_definitions},schema:{...n,statuses:r.schema_statuses,fields:r.schema_fields,type_workflows:r.schema_type_workflows},search:lp(e),context:up(e),extensions:{enabled:_i(e.extensions?.enabled),disabled:_i(e.extensions?.disabled),policy:Bc(e.extensions?.policy)},vector_store:fp(e)}}function qc(e,t){for(let n of Object.keys(t)){let r=Reflect.get(t,n),o=e[n];typeof r=="object"&&r!==null&&!Array.isArray(r)&&typeof o=="object"&&o!==null&&!Array.isArray(o)?qc(o,r):e[n]=structuredClone(r)}}function Gc(e,t,n){let r=new Set([...Object.keys(t),...Object.keys(n)]);for(let o of r){let i=t[o],s=n[o];if(!ie(i,s)){if(s===void 0){delete e[o];continue}if(typeof i=="object"&&i!==null&&!Array.isArray(i)&&typeof s=="object"&&s!==null&&!Array.isArray(s)){let a=e[o],c=typeof a=="object"&&a!==null&&!Array.isArray(a)?a:{};Gc(c,i,s),Object.keys(c).length>0?e[o]=c:delete e[o];continue}e[o]=structuredClone(s)}}}var yi=["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 Tc(e,t){let n=cp(e),r=yr(n),o=Ct(n.schema),i=K_(n,t),s=mp(n,r,o,i),a=T({...s,governance:U_(r)},yi);return ap(a),a}function _p(e,t={}){let n=t.source===void 0?t.persist_source:$c(t.source.validated,hr(t.source.validated)),r=Tc(e,n);if(n){let o=hr(n.source_settings);o.item_types={definitions:structuredClone(n.runtime_item_type_definitions)},o.schema={...o.schema,statuses:structuredClone(n.runtime_schema_statuses),fields:structuredClone(n.runtime_schema_fields),type_workflows:structuredClone(n.runtime_schema_type_workflows)};let i=Tc(o,n);t.source!==void 0&&qc(i,t.source.validated);let s=structuredClone(t.source===void 0?n.source_settings:t.source.raw);return Gc(s,i,r),`${JSON.stringify(T(s,yi),null,2)}
162
+ `}return`${JSON.stringify(r,null,2)}
163
+ `}async function pp(e){let t;try{t=await Cc(e)}catch(a){if(Fe(a))return le();throw a}let n=tt(t),r;try{r=await j_(n)}catch(a){if(Fe(a))return le();throw a}if(!r.isFile())throw Cr();let o;try{o=await $i(n,Cr())}catch(a){if(Fe(a))return le();throw a}let i;try{i=JSON.parse(o)}catch{return le("settings_read_invalid_json")}let s=si(i);return s.success?{settings:hr(s.data),metadata:{has_explicit_item_format:zc(i)},warnings:s.data.item_format==="json_markdown"?["settings_item_format_legacy_json_markdown_coerced_to_toon"]:[]}:le("settings_read_invalid_schema")}async function Kc(e){if(M_(e))return pp(e);let t=tt(e),n=[t];await ke({path:t,scope:"project"});let r=Ec(e);if(r){let d=await Ae(r.tracked_paths);if(Jt(d,r.signatures))return pr(r.value)}let o=await Ae([t]),i;try{i=await Ee(t)}catch{return le("settings_read_fs_error")}if(i===null){let d=le();return await ui(e,[t],d,o,[t]),d}let s=await Ae([t]);if(!Jt(o,s))return De(e),Kc(e);let a;try{a=JSON.parse(i)}catch{let d=le("settings_read_invalid_json");return await ui(e,[t],d,s,[t]),d}let c=si(a);if(!c.success){let d=le("settings_read_invalid_schema");return await ui(e,[t],d,s,[t]),d}try{let d=hr(c.data),l=B_(e,d.schema,t);n=l;let f=await Ae(l),_=await es(e,d.schema),p=await ts(e,d.schema),m=await Ae(l),v={...d,item_types:{definitions:wt([...d.item_types.definitions,...pi(p.type_definitions_from_file)])},schema:p.schema};hi(v,$c(c.data,v));let g={settings:v,metadata:{has_explicit_item_format:zc(a)},warnings:[...c.data.item_format==="json_markdown"?["settings_item_format_legacy_json_markdown_coerced_to_toon"]:[],..._.created_paths.map(S=>`runtime_schema_bootstrap_created:${S}`),...p.warnings]};return _.created_paths.length===0?Jt(f,m)?_r(e,{tracked_paths:l,signatures:m,value:pr(g)}):De(e):De(e),g}catch{let d=le("settings_read_merge_failed");return await q_(e,n,d),d}}async function Xc(e){return(await Kc(e)).settings}async function yw(e,t,n=F_){let r=tt(e),o=Hc(t),i=_p(t,{persist_source:o}),s=JSON.parse(i);try{await Ha({pmRoot:e,filePath:r,mutate:a=>{let c=null;if(a!==null)try{c=JSON.parse(a)}catch{throw new h("Existing settings.json is malformed; the settings write was refused.",b.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."]})}return{raw:o?`${JSON.stringify(T(ai(o.persisted_settings,s,c),yi),null,2)}
164
+ `:i,result:void 0}},op:n,author:Ls(void 0,t.author_default),lockTtlSeconds:t.locks.ttl_seconds,lockWaitMs:t.locks.wait_ms,recordCreation:!1}),o&&hi(t,{...o,persisted_settings:structuredClone(s)}),await _e({path:r,scope:"project",op:n})}finally{De(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]="e23f9ca6-9fa6-566b-9bfb-7cbe6d449a59")}catch{}})();function hp(e,t){let n=e.trim().toLowerCase();if(n.length===0)return;let r=Math.floor(n.length/3);return t.map(o=>({candidate:o,distance:en(n,o.toLowerCase(),r)??Number.POSITIVE_INFINITY})).filter(({distance:o})=>Number.isFinite(o)).sort((o,i)=>o.distance!==i.distance?o.distance-i.distance:o.candidate.localeCompare(i.candidate))[0]?.candidate}function Yc(e){return["pm",...e].map(t=>/^[A-Za-z0-9_./:@=-]+$/u.test(t)?t:JSON.stringify(t)).join(" ")}function Ew(e){let t=e.command_path.trim().replaceAll(/\s+/gu," "),n=e.token.trim(),r=n.length===0?"<empty>":n,o=[...new Set(e.allowed.map(_=>_.trim()))].filter(Boolean).sort((_,p)=>_.localeCompare(p));if(t.length===0||r.length===0||o.length===0)throw new TypeError("Unknown-subcommand contracts require a path, token, and allowed set");let i=t.split(" "),s=e.trailing_args??[],a=e.display_name??`pm ${t}`,c=e.token_kind??"subcommand",d=e.retry_command?void 0:hp(r,o),l=Yc([...i,r,...s]),f=e.retry_command??(d?Yc([...i,d,...s]):void 0);return new h(`Unknown ${a} ${c} "${r}". Allowed: ${o.join(", ")}${e.message_suffix??""}`,e.exit_code??b.USAGE,{code:"unknown_subcommand",reason:"unknown_positional_token",value:r,examples:[...f?[f]:[],...e.examples??[],`pm ${t} --help`],nextSteps:f?[`Retry with the suggested command: ${f}`]:["Choose one value from recovery.allowed_values."],recovery:{attempted_command:l,allowed_values:o,suggested_retry:f,fallback_candidates:e.fallback_candidates}})}import yp from"node:fs/promises";import gp 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]="1d746e4d-ff6c-54ec-a94f-4ec4cb8f77b5")}catch{}})();function bp(e){return[...new Set(e.filter(t=>t.trim().length>0))].sort((t,n)=>t.localeCompare(n))}function vp(e,t){return new h(`Missing history stream for ${e}. ${t} requires history streams when settings.history.missing_stream is strict_error.`,b.NOT_FOUND)}async function wp(e,t){return await Fi(gp.dirname(e)),await(await yp.open(e,"a")).close(),_e({path:e,scope:"project",op:`${t}:history:auto_create`})}async function gi(e){return Ep({pmRoot:e.pmRoot,settings:e.settings,itemIds:[e.itemId],commandLabel:e.commandLabel})}async function Ep(e){let t=bp(e.itemIds),n=[],r=[];for(let o of t){let i=fe(e.pmRoot,o);if(!await Me(i)){if(e.settings.history.missing_stream==="strict_error")throw vp(o,e.commandLabel);r.push(...await wp(i,e.commandLabel)),r.push(`history_stream_auto_created:${o}`),n.push(o)}}return{auto_created_ids:n,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]="5db05e2f-4742-526b-b1c8-b97ff302b40e")}catch{}})();function Qt(e,t=!1){let n=e[0];if(n?.op!=="history_compact_baseline")return 0;let r=n.context?.history_compaction,o=typeof r=="object"&&r!==null&&"version_offset"in r?r.version_offset:void 0;if(typeof o=="number"&&Number.isSafeInteger(o)&&o>=0&&Number.isSafeInteger(o+e.length))return o;if(t)return null;throw new h("This compacted stream has no trustworthy version offset; numeric history addresses are unavailable.",b.USAGE,{code:"history_version_mapping_unavailable",required:"Use a retained timestamp or recover the pre-compaction stream from version control.",nextSteps:["Run pm history <id> --full to inspect the retained timestamps and checkpoint evidence."]})}(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]="ddc5bb8f-83bc-5121-a628-a501e7ed5a73")}catch{}})();function kp(e,t){let n=-1;return e.forEach((r,o)=>{let i=Date.parse(r.ts);if(!Number.isFinite(i))throw new h(`History for this item contains invalid timestamp at entry ${o+1}.`,b.GENERIC_FAILURE);i<=t&&(n=o)}),n}function Ip(e,t){let n=e[0]?.ts??null,r=e.at(-1)?.ts??null,o={code:"history_target_out_of_range",required:"Choose a target within the available item history.",why:"Point-in-time reads and restores can only reconstruct recorded versions.",examples:[],nextSteps:["Run pm history <id> to inspect available versions and timestamps."],valid_range:{first_version:null,last_version:null,first_timestamp:n,last_timestamp:r}};return r!==null&&(o.examples=[r],t!==null&&(o.examples.unshift(String(t+1),String(t+e.length)),o.valid_range.first_version=t+1,o.valid_range.last_version=t+e.length)),{guidance:o,lastTimestamp:r}}function Sp(e,t){let n={};if(t instanceof Error&&t.message.trim().length>0&&(n.reason=t.message.trim()),typeof t!="object"||t===null)return n;let r=t;if(typeof r.index=="number"&&Number.isInteger(r.index)&&r.index>=0&&(n.patchIndex=r.index),typeof r.operation=="object"&&r.operation!==null){let o=r.operation;Object.assign(n,Object.fromEntries(["op","path","from"].flatMap(i=>{let s=o[i];return typeof s=="string"?[[i,s]]:[]})))}if(n.patchIndex!==void 0){let o=e[n.patchIndex];o&&(n.op??=o.op,n.path??=o.path,n.from??=o.from)}return n}function Jc(e,t,n={}){let r=e.trim(),o=n.errorSubject??"history",i=o==="restore"?"Restore":"History",{guidance:s,lastTimestamp:a}=Ip(t,Qt(t,!0));if(!r)throw new h(`Missing ${o} target. Use a timestamp or version number.`,b.USAGE,s);if(/^\d+$/.test(r)){let l=Qt(t),f=Number(r);if(f>=1&&f<=l)throw new h(`History version ${f} was pruned by compaction.`,b.USAGE,{...s,code:"history_version_pruned"});if(!Number.isSafeInteger(f)||f<1||f>l+t.length)throw new h(`${i} version must be between ${l+1} and ${l+t.length} for this item.`,b.USAGE,s);return{kind:"version",raw:r,historyIndex:f-l-1}}let c=Date.parse(r);if(!Number.isFinite(c))throw new h(`Invalid ${o} target "${e}". Use a positive version number or ISO timestamp.`,b.USAGE,s);let d=kp(t,c);if(d<0||n.allowFutureTimestamp!==!0&&c>Date.parse(a))throw new h(o==="restore"?`No history entries exist at or before timestamp ${r}.`:`No history entry exists at timestamp ${r}.`,b.USAGE,s);return{kind:"timestamp",raw:r,historyIndex:d}}function bi(e,t,n,r){let o=Xe(e,t);if(o.ok)return o.document;let i=Sp(t,o.error),s=[`history_op=${r}`,i.patchIndex===void 0?null:`patch_index=${i.patchIndex}`,i.op?`op=${i.op}`:null,i.path?`path=${i.path}`:null,i.from?`from=${i.from}`:null].filter(a=>a!==null);throw new h(`Failed to apply history patch at entry ${n} (${s.join(", ")}). ${i.reason??String(o.error)}`,b.GENERIC_FAILURE)}function Qc(e,t){let n=e[0];if(n&&n.op!=="create"&&n.op!=="history_compact_baseline"){let s=Xe(_t,n.patch);if(!s.ok||typeof s.document.metadata.id!="string")throw new h("History starts without a reconstructable item baseline.",b.GENERIC_FAILURE,{code:"history_baseline_unavailable",required:"Recover the original create entry or a complete checkpoint from version control.",nextSteps:["Run pm history <id> --full to inspect the missing baseline."]})}let r=e.slice(0,t+1),o=ve([...r]),i=structuredClone(_t);for(let s=0;s<=t;s+=1){let a=e[s];if(!a)throw new h(`History target entry ${s+1} does not exist.`,b.USAGE);i=bi(i,a.patch,s+1,a.op)}if(!o.ok)throw new h(`History cannot be replayed: ${o.errors.join(", ")}.`,b.GENERIC_FAILURE,{code:"history_replay_invalid",verification_errors:o.errors,required:"Inspect the history integrity findings before attempting recovery.",nextSteps:["Run pm history <id> --verify --full."]});return i}function $w(e,t){if(Object.keys(e.metadata).length>0){if(typeof e.metadata.id!="string"||!Array.isArray(e.metadata.tags))throw new h("History has no complete item baseline for this target.",b.GENERIC_FAILURE,{code:"history_baseline_unavailable",required:"Recover the original create entry or a complete checkpoint from version control.",nextSteps:["Run pm history <id> --full to inspect the first recorded state."]});return e}throw new h(`History target ${t.raw} resolves to a deleted state; choose a version or timestamp where the item exists.`,b.USAGE)}import wi from"node:fs/promises";import gr 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 Le(e,t){return typeof e=="object"&&e!==null&&"code"in e&&e.code===t}function Ei(e){let t=["--pm-path",e,"init","--defaults","--agent-guidance","skip"];return{suggested_retry:$e(t),suggested_retry_args:t}}function br(e){return new h(`Tracker root is not a directory at ${e}.`,b.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 vi(e){return new h(`Tracker root is not readable at ${e}.`,b.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 Tp(e){let t=gr.resolve(e),n=gr.parse(t).root,r=gr.dirname(t);for(;r!==n;){let o;try{o=await wi.stat(r)}catch(i){if(Le(i,"ENOTDIR"))throw br(e);if(!Le(i,"ENOENT"))throw i;r=gr.dirname(r);continue}if(!o.isDirectory())throw br(e);return}}async function Et(e){let t;try{t=await wi.stat(e)}catch(n){throw Le(n,"ENOENT")?(await Tp(e),new h(`Tracker is not initialized at ${e}. Tracker root does not exist. Run pm init first.`,b.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:Ei(e)})):Le(n,"ENOTDIR")?br(e):Le(n,"EACCES")||Le(n,"EPERM")?vi(e):n}if(!t.isDirectory())throw br(e);if(process.platform!=="win32"&&((t.mode&292)===0||(t.mode&73)===0))throw vi(e);try{await(await wi.opendir(e)).close()}catch(n){throw Le(n,"EACCES")||Le(n,"EPERM")?vi(e):n}}async function ki(e){if(await Et(e),!await Me(tt(e)))throw new h(`Tracker is not initialized at ${e}. Run pm init first.`,b.NOT_FOUND,{code:"tracker_not_initialized",reason:"settings_missing",resolved_path:e,nextSteps:["Initialize the selected tracker root with the emitted retry."],recovery:Ei(e)})}import kt from"node:fs/promises";import{statSync as Cp}from"node:fs";(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]="be69f1e8-4543-5cf5-abb0-9d38ca1d0cc6")}catch{}})();function xp(e,t){let n=-1,r=structuredClone(_t);for(let[a,c]of e.entries()){if(r=bi(r,c.patch,a+1,c.op),r.metadata.id!==void 0&&r.metadata.id!==t)throw new h(`History belongs to item ${String(r.metadata.id)}, expected ${t}.`,b.GENERIC_FAILURE,{code:"history_replay_invalid",required:"Recover the correct history stream for this item before attempting restoration."});r.metadata.id===t&&Array.isArray(r.metadata.tags)&&(n=a)}let o=Qt(e,!0),i=n<0||o===null?null:o+n+1,s=i===null?void 0:String(i);if(n>=0&&s===void 0){let a=e[n].ts;Jc(a,e).historyIndex===n&&(s=a)}return{version:i,target:s}}async function Zc(e,t,n){let r=new Set([Ye(t,n),$t(t)]);for(let o of r){let i=fe(e,o);if(!Cp(i,{throwIfNoEntry:!1})?.isFile())continue;let s=await be(i,o),a=-1;if(s.forEach((p,m)=>{p.op==="delete"&&(a=m)}),a<0)continue;let c=Qc(s,s.length-1);if(Object.keys(c.metadata).length!==0)continue;let{version:d,target:l}=xp(s,o),f=l===void 0?["history",o,"--verify"]:["get",o,"--at",l],_=$e(f);return new h(`Item ${o} was deleted at ${s[a].ts}; its history is retained.`,b.NOT_FOUND,{code:"item_deleted",required:"Read a retained materialized version, then restore it if the item should exist again.",item_id:o,tombstone:{deleted:!0,deleted_at:s[a].ts,recoverable:l!==void 0,last_materialized_version:d},nextSteps:[_,...l===void 0?["Recover the pre-compaction history from version control."]:[$e(["restore",o,l])]],recovery:{suggested_retry:_,suggested_retry_args:f}})}}import{AsyncLocalStorage as Op}from"node:async_hooks";import Rp 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]="53df109f-bd64-5879-96a6-39f70334910e")}catch{}})();var Ap=new Op;function ed(e,t){for(let n of Ap.getStore()??[])n.pmRoot===Rp.resolve(e)&&n.id===t.metadata.id&&n.validate(t)}import Ci from"node:path";import td from"node:fs";import Zt from"node:path";import{createRequire as Dp}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]="19d9b802-1efa-5716-8176-ecbf5b153ff0")}catch{}})();var nd="@unbrained/pm-cli";var Si=/\b(\d{4})\.(\d{1,2})\.(\d{1,2})(?:-(\d+))?\b/u,Ti="2026.8.31";function vr(e){let t=e.match(Si);return t?[Number(t[1]),Number(t[2]),Number(t[3]),Number(t[4]??0)]:null}function Er(e,t){let n=vr(e),r=vr(t);if(!n||!r)return null;for(let o=0;o<n.length;o+=1){let i=n[o]-r[o];if(i!==0)return Math.sign(i)}return 0}function Ii(e){return Er(e,Ti)!==-1?3:2}function wr(e){try{let t=JSON.parse(td.readFileSync(e,"utf8"));return typeof t=="object"&&t!==null&&!Array.isArray(t)?t:null}catch{return null}}function Np(e){let t=[...e.matchAll(/(<=|<)\s*v?(\d{4}\.\d{1,2}\.\d{1,2}(?:-\d+)?)/gu)].map(r=>({inclusive:r[1]==="<=",version:r[2]})),n=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 n?[...t,{inclusive:!0,version:n[1]}]:t}function Lp(e){let t=e.split("||").map(n=>Np(n));return{bounded:t.some(n=>n.length>0),compatible:t.some(n=>n.every(r=>{let o=Er(Ti,r.version);return o!==null&&(r.inclusive?o!==1:o===-1)}))}}function rd(e){return["dependencies","devDependencies","optionalDependencies","peerDependencies"].flatMap(t=>{let n=e[t];if(typeof n!="object"||n===null)return[];let r=n[nd];return typeof r=="string"?[r.trim()]:[]})}function Pp(e){return rd(e).flatMap(t=>{let n=/^[<!]/u.test(t)?void 0:t.match(Si)?.[0];if(!n)return[];let r=/^(?:=|v)?\d{4}\.\d{1,2}\.\d{1,2}(?:-\d+)?$/u.test(t),o=Lp(t);return[{version:n,constraint:r?"exact":o.bounded?"range":"minimum",...r?{}:{declaration:t},history_epoch_compatible:r?Er(n,Ti)!==-1:o.compatible}]})}function jp(e){let t=wr(Zt.join(e,"package-lock.json"))?.packages;if(typeof t!="object"||t===null)return;let n=t["node_modules/@unbrained/pm-cli"];if(typeof n!="object"||n===null)return;let r=n.version;return typeof r=="string"?r:void 0}function Mp(e,t){try{let n=td.readFileSync(Zt.join(e,t),"utf8").split(/\r?\n/u),r=n.findIndex(s=>s.includes(nd));if(r<0)return;let o=n[r].match(/^\s*/u)[0].length,i=[n[r]];for(let s=r+1;s<n.length;s+=1){let a=n[s],c=a.trim(),d=a.match(/^\s*/u)[0].length;if(c.length>0&&d<=o)break;i.push(a)}return i.join(`
165
+ `).match(/^\s*version(?::\s*|\s+)["']?(\d{4}\.\d{1,2}\.\d{1,2}(?:-\d+)?)/mu)?.[1]??i[0].match(Si)?.[0]}catch{return}}function Fp(e){let t=[],n=wr(Zt.join(e,"package.json"));n&&t.push(...Pp(n).map(i=>({...i,source:"package.json"})));let r=wr(Zt.join(e,"node_modules","@unbrained","pm-cli","package.json"))?.version;typeof r=="string"&&vr(r)&&t.push({version:r,source:"installed-package",constraint:"exact",history_epoch_compatible:Ii(r)===3});let o=jp(e);o&&vr(o)&&t.push({version:o,source:"package-lock.json",constraint:"exact",history_epoch_compatible:Ii(o)===3});for(let i of["pnpm-lock.yaml","yarn.lock"]){let s=Mp(e,i);s&&t.push({version:s,source:i,constraint:"exact",history_epoch_compatible:Ii(s)===3})}return t}function od(e,t){if(t<=1)return;let{minVersion:n,lt:r}=Dp(import.meta.url)("semver"),o=rd(wr(Zt.join(e,"package.json"))??{}).find(s=>{try{let a=n(s);return a!==null&&r(a,"2026.10.10")}catch{return!1}}),i=o===void 0?Fp(e).find(s=>Er(s.version,"2026.10.10")===-1):{version:o,source:"package.json"};if(i)throw new h(`The project selects pm ${i.version}, which cannot safely refuse item format ${t}.`,b.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{isUtf8 as $p}from"node:buffer";(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]="018adb6c-4e3c-58d5-b636-04dbf4307d7a")}catch{}})();async function Hp(e){try{return await kt.access(e),!0}catch{return!1}}function zp(e,t){e&&(e.includes(t)||e.push(t))}function id(e){return e??an(me())}function Up(e){return e==="toon"?["toon","json_markdown"]:e==="json_markdown"?["json_markdown","toon"]:["toon","json_markdown"]}async function kr(e,t,n="pm-",r,o=Pe){let i=t.trim(),s=i.startsWith("#")?i.slice(1):i;if(s.length===0)return null;let a=Ye(t,n),c=$t(t),d=[...new Set([s,a,c])].filter(_=>_.length>0),l=Object.entries(o),f=Up(r);for(let _ of d){let p=new Map;for(let[m]of l)for(let v of f){let g=xr(e,m,_,v,o);await Hp(g)&&p.set(g,p.get(g)??{id:_,type:m,itemPath:g,item_format:v})}if(p.size>1){let m=[...p.keys()].map(v=>Ci.relative(e,v).split(Ci.sep).join("/")).sort();throw new h(`Item ${_} has ambiguous identity across ${m.join(", ")}. Preserve both documents and inspect pm ops validate --check-storage-integrity before resolving the collision.`,b.CONFLICT,{code:"item_identity_ambiguous",item_id:_,paths:m})}for(let m of p.values())return m}return null}async function Ir(e,t={}){let n=await Wp(e,t);if(n.error!==null)throw n.error;return{raw:n.raw,document:n.document}}async function Wp(e,t={}){let n=await kt.readFile(e.itemPath);if(!$p(n))throw new h("Item contains invalid UTF-8; preserve a binary backup before recovering it.",b.CONFLICT,{code:"item_document_encoding_invalid",item_id:e.id,item_path:e.itemPath,byte_length:n.length,empty:!1});let r=n.toString("utf8");await ke({path:e.itemPath,scope:"project"});let o;try{o=Tn(r,{format:e.item_format,requireSupportedFormat:!0,schema:t.schema,extensionFieldNames:id(t.extensionFieldNames),onWarning:i=>zp(t.warnings,i)})}catch(i){if(i instanceof h&&i.code==="item_format_version_unsupported")throw new h(`Item ${e.id}: ${i.message}`,i.exitCode,{...i.context,item_id:e.id,item_path:e.itemPath});if(i instanceof h&&i.code==="item_document_invalid")return{raw:r,document:null,error:new h(`Cannot read ${e.id} at ${e.itemPath}${n.length===0?" (zero-length file)":""}: ${i.message}`,i.exitCode,{...i.context,item_id:e.id,item_path:e.itemPath,byte_length:n.length,empty:n.length===0,nextSteps:[`Run pm history ${e.id} --full, then pm restore ${e.id} <version> to recover a recorded state.`]})};throw i}return{raw:r,document:o,error:null}}async function Bp(e,t,n=Pe,r,o){await Et(e);let i=await oc(e,t,n,r,o);return qn(i.length),i.map(s=>s.metadata)}async function sd(e,t,n=Pe,r,o){await Et(e);let i=await ic(e,t,n,r,o);return qn(i.length),i.map(s=>s.metadata)}async function WE(e,t,n=Pe,r,o,i={}){await Et(e);let s=await or(e,t,n,r,o,{includeBody:!0,forceSourceScan:i.forceSourceScan});return qn(s.length),s.map(a=>({...a.metadata,body:a.body}))}function ad(e){return{async get(t){let n=await kr(e.pmRoot,t,e.settings.id_prefix,e.settings.item_format,e.typeToFolder);if(!n)return null;let{document:r}=await Ir(n,{schema:e.settings.schema});return{item:r.metadata,body:r.body}},list:()=>Bp(e.pmRoot,e.settings.item_format,e.typeToFolder,void 0,e.settings.schema)}}async function Vp(e,t){let n=new Set(Object.values(t)),r=[];return await Promise.all([...n].map(async o=>{try{let i=await kt.readdir(Ci.join(e,o));for(let s of i)for(let a of dn)if(s.toLowerCase().endsWith(a)){r.push(s.slice(0,-a.length));break}}catch{}})),r}async function qp(e,t,n,r){let o=Ye(t,n),i=await Vp(e,r);if(i.length===0)return[];let s=Math.max(3,Math.floor(o.length/2));return i.map(a=>({id:a,distance:en(a,o,s)})).filter(a=>a.distance!==null).sort((a,c)=>a.distance-c.distance).slice(0,3).map(a=>a.id)}async function Gp(e,t,n,r){let o=await Zc(e,t,n);if(o)return o;let i=await qp(e,t,n,r),s=["Confirm the active --path/PM_PATH scope, then retry with a valid id."];return i.length>0&&s.unshift(`Did you mean one of: ${i.join(", ")}?`),new h(`Item ${t} not found`,b.NOT_FOUND,{nextSteps:s})}function Kp(e,t){return e==="claim"||t===!0&&(e==="comment_add"||e==="comment_edit"||e==="comment_delete"||e==="note_add"||e==="learning_add"||e==="release"||e==="update"||e==="update_ownership_bypass"||e==="update_audit")}async function cd(e){let t=e.typeToFolder??cn(e.settings,me()).type_to_folder,n=await kr(e.pmRoot,e.id,e.settings.id_prefix,e.settings.item_format,t);if(!n)throw await Gp(e.pmRoot,e.id,e.settings.id_prefix,t);let r=await V(e.pmRoot,n.id,e.settings.locks.ttl_seconds,e.author,!!e.force,e.settings.governance.force_required_for_stale_lock,e.settings.locks.wait_ms);try{let o=[],{raw:i,document:s}=await Ir(n,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames,warnings:o}),a=s.metadata.assignee?.trim(),c=s.metadata.claim_principal?.trim()||a,d=Ns(e.author),l=yr(e.settings);if(a&&c!==d&&!e.force&&!Kp(e.op,e.bypassAssigneeConflict)){if(l.ownership_enforcement==="strict")throw new h(`Item ${n.id} is assigned to ${a}. Use --force to override.`,b.CONFLICT);l.ownership_enforcement==="warn"&&o.push(`ownership_warning:assignee_conflict:${n.id}:${a}`)}return{typeToFolder:t,located:n,originalRaw:i,document:s,warnings:o,releaseLock:r}}catch(o){throw await r(),o}}function Xp(e,t,n){if(!e.handled||typeof e.result!="object"||e.result===null)return{effectiveTargetItemPath:t,effectiveSerializedAfter:n,skipItemWrite:!1};let r=e.result;return{effectiveTargetItemPath:typeof r.target_item_path=="string"&&r.target_item_path.trim().length>0?r.target_item_path:t,effectiveSerializedAfter:typeof r.contents=="string"?r.contents:n,skipItemWrite:r.skip_write===!0}}async function Yp(e){if(!e.skipItemWrite){if(e.effectiveTargetItemPath!==e.originalItemPath){await G(e.originalItemPath,e.originalRaw),await kt.rm(e.effectiveTargetItemPath,{force:!0});return}await G(e.originalItemPath,e.originalRaw)}}async function dd(e){_n(e.op);let t=await cd({pmRoot:e.pmRoot,settings:e.settings,id:e.id,op:e.op,author:e.author,force:e.force,bypassAssigneeConflict:e.bypassAssigneeConflict,extensionFieldNames:e.extensionFieldNames,typeToFolder:e.typeToFolder}),{typeToFolder:n,located:r,originalRaw:o,document:i,warnings:s,releaseLock:a}=t;try{ed(e.pmRoot,i);let c=ne(i,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),d=ne(structuredClone(i),{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),l=await e.mutate(d);if(e.skipNoop===!0&&l.changedFields.length===0)return{item:c.metadata,body:c.body,changedFields:[],warnings:[...s,...l.warnings??[]]};let f=e.resolveHistoryContext?.(),_=Math.max(io(c.metadata),io(d.metadata));od(Ki(e.pmRoot),_),_>Rt(d.metadata)&&(d.metadata.pm_format_version=_,l.changedFields.push("pm_format_version")),d.metadata.updated_at=Ie();let p=ne(d,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),m=await jo({pmRoot:e.pmRoot,settings:e.settings,operation:e.op,author:e.author,before:c,after:p});await Ar({pm_root:e.pmRoot,operation:e.op,before:c,after:p,changed_fields:l.changedFields,sdk:ad({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:n})});let v=await gi({pmRoot:e.pmRoot,settings:e.settings,itemId:r.id,commandLabel:e.op}),g="toon",S=Zs(p,{format:g,schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),A=xr(e.pmRoot,p.metadata.type,r.id,g,n),N=fe(e.pmRoot,r.id),z=await Ot("item_store_write",{op:e.op,pm_root:e.pmRoot,item_id:r.id,source_item_path:r.itemPath,target_item_path:A,history_path:N,item_format:g,before:c,after:p,contents:S}),{effectiveTargetItemPath:x,effectiveSerializedAfter:oe,skipItemWrite:U}=Xp(z,A,S),Q=await qo(e.pmRoot,e.author),B=[];try{U||await G(x,oe),!U&&x!==r.itemPath&&await kt.rm(r.itemPath);let ee=ft({nowIso:p.metadata.updated_at,author:e.author,op:e.op,before:c,after:p,message:e.message,context:m.decisions.length===0?f:{...f,workflow_policies:m.decisions}});try{await mt(N,ee)}catch(Ze){throw await Yp({skipItemWrite:U,effectiveTargetItemPath:x,originalItemPath:r.itemPath,originalRaw:o}),Ze}U||(B=await Go({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:n,schema:e.settings.schema,itemPath:x,previousItemPath:r.itemPath,document:p}))}finally{await Q()}let Z=[...await _e({path:x,scope:"project",op:e.op,item_id:p.metadata.id,item_type:p.metadata.type,before:c,after:p,changed_fields:l.changedFields}),...await _e({path:N,scope:"project",op:`${e.op}:history`,item_id:p.metadata.id,item_type:p.metadata.type,before:c,after:p,changed_fields:l.changedFields})];return Rr({id:p.metadata.id,op:e.op,item_type:p.metadata.type,previous_status:c.metadata.status,status:p.metadata.status,previous:fn(c.metadata,l.changedFields),current:fn(p.metadata,l.changedFields),changed_fields:l.changedFields}),{item:p.metadata,body:p.body,changedFields:l.changedFields,warnings:[...s,...l.warnings??[],...m.warnings,...v.warnings,...z.warnings,...B,...Z]}}finally{await a()}}async function BE(e){return dd(e)}async function VE(e){return dd(e)}async function qE(e){let t=await cd({pmRoot:e.pmRoot,settings:e.settings,id:e.id,op:"delete",author:e.author,force:e.force}),{located:n,originalRaw:r,document:o,warnings:i,releaseLock:s}=t;try{let a=id(void 0),c=ne(o,{schema:e.settings.schema,extensionFieldNames:a}),d=await jo({pmRoot:e.pmRoot,settings:e.settings,operation:"delete",author:e.author,before:c,after:null,dryRun:e.dryRun});await Ar({pm_root:e.pmRoot,operation:"delete",before:c,after:null,changed_fields:["deleted"],sdk:ad({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:t.typeToFolder})});let l=await gi({pmRoot:e.pmRoot,settings:e.settings,itemId:n.id,commandLabel:"delete"}),f=Ie(),_=je,p=ft({nowIso:f,author:e.author,op:"delete",before:c,after:_,message:e.message,context:d.decisions.length===0?void 0:{workflow_policies:d.decisions}}),m=fe(e.pmRoot,n.id),v=await Ot("item_store_delete",{op:"delete",pm_root:e.pmRoot,item_id:n.id,item_path:n.itemPath,history_path:m,before:c}),g=n.itemPath,S=!1;if(v.handled&&typeof v.result=="object"&&v.result!==null){let x=v.result;typeof x.item_path=="string"&&x.item_path.trim().length>0&&(g=x.item_path),x.skip_delete===!0&&(S=!0)}if(e.dryRun===!0)return{item:c.metadata,changedFields:["deleted"],targetPath:g,warnings:[...i,...d.warnings,...l.warnings,...v.warnings]};let A=await qo(e.pmRoot,e.author),N=[];try{S||await kt.rm(g);try{await mt(m,p)}catch(x){throw S||await G(g,r),x}S||(N=await Go({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:t.typeToFolder,schema:e.settings.schema,itemPath:g,document:null}))}finally{await A()}let z=[...await _e({path:g,scope:"project",op:"delete",item_id:c.metadata.id,item_type:c.metadata.type,before:c,after:_,changed_fields:["deleted"]}),...await _e({path:m,scope:"project",op:"delete:history",item_id:c.metadata.id,item_type:c.metadata.type,before:c,after:_,changed_fields:["deleted"]})];return Rr({id:c.metadata.id,op:"delete",item_type:c.metadata.type,previous_status:c.metadata.status,previous:fn(c.metadata,Object.keys(c.metadata)),changed_fields:["deleted"]}),{item:c.metadata,changedFields:["deleted"],warnings:[...i,...d.warnings,...l.warnings,...v.warnings,...N,...z]}}finally{await s()}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="5c8194ff-d877-51b8-bd54-d206f85a979c")}catch{}})();(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="620bf4e4-e6d1-5520-89e4-0859f57c7afe")}catch{}})();var Jp=["tree","graph","context"],Qp=["none","repeated"],Zp=["outgoing","incoming","both"],eh=32,th=200,nh=400,rh=16e3;function oh(e){let t=e?.trim().toLowerCase()??"tree";if(Jp.includes(t))return t;throw new h(`Invalid --format value "${e}". Use "tree", "graph", or "context".`,b.USAGE)}function It(e,t){if(e===void 0)return;let n=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(n)||n<1)throw new h(`Invalid --${t} value "${e}". Use a positive integer.`,b.USAGE);return n}function ud(e){if(e===void 0)return;let t=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(t)||t<0)throw new h(`Invalid --max-depth value "${e}". Use a non-negative integer.`,b.USAGE);return t}function ih(e){let t=e?.trim().toLowerCase()??"none";if(Qp.includes(t))return t;throw new h(`Invalid --collapse value "${e}". Use "none" or "repeated".`,b.USAGE)}function sh(e){let t=e?.trim().toLowerCase()??"both";if(Zp.includes(t))return t;throw new h(`Invalid --direction value "${e}". Use "outgoing", "incoming", or "both".`,b.USAGE)}function ah(e,t=ue()){if(e===void 0)return;let n=(Array.isArray(e)?e:[e]).flatMap(o=>o.split(",")).map(o=>o.trim()).filter(o=>o.length>0);if(n.length===0)return;let r=new Set;for(let o of n){let i=t.resolve(o);if(!i){let s=t.list().map(a=>a.kind).join(", ");throw new h(`Invalid --kind value "${o}". Registered kinds: ${s}.`,b.USAGE)}r.add(i.kind)}return[...r].sort()}function ch(e){if(!e||e.length===0)return[];let t=e.map(({id:r,kind:o})=>({id:r.trim(),kind:o.trim().toLowerCase()})).sort((r,o)=>{let i=r.kind.localeCompare(o.kind);return i!==0?i:r.id.localeCompare(o.id)}),n=new Map;for(let r of t){let o=`${r.kind.toLowerCase()}::${r.id.toLowerCase()}`;n.has(o)||n.set(o,{id:r.id,kind:r.kind})}return[...n.values()]}function dh(e){return{id:e.id,title:e.title,type:e.type,status:e.status,dependencies:ch(e.dependencies)}}function lh(e){return mn(new TextEncoder().encode(JSON.stringify({...e,dependencies:void 0})).byteLength)}function uh(e,t,n,r,o,i,s,a,c){for(let d of t.dependencies){let l=Math.max(1,Math.ceil(JSON.stringify({from:e.id,to:d.id,kind:d.kind}).length/3));if(a.nodes>=a.nodeLimit){e.truncated=!0,a.reasons.add("node_limit");break}if(a.edges>=a.edgeLimit){e.truncated=!0,a.reasons.add("edge_limit");break}if(a.estimatedTokens+l>=a.tokenBudget){e.truncated=!0,a.reasons.add("token_budget");break}a.edges+=1,a.estimatedTokens+=l,e.dependencies.push(fd(d.id,n,r,o,i,s,a,c+1,d.kind))}}function fh(e,t,n,r,o,i,s,a){return s.estimatedTokens>=s.tokenBudget&&t?.dependencies.length?(e.truncated=!0,s.reasons.add("token_budget"),!0):!t||e.cycle?!0:r!==void 0&&a>=r?(t.dependencies.length>0&&(e.truncated=!0,s.reasons.add("max_depth")),!0):o==="repeated"&&i.has(n)?(e.collapsed=!0,!0):!1}function fd(e,t,n,r,o,i,s,a=0,c){let d=e.trim().toLowerCase(),l=t.get(d),f={id:l?.id??e,title:l?.title,type:l?.type,status:l?.status,via:c,missing:!l,cycle:n.has(d),dependencies:[]};if(s.nodes+=1,s.estimatedTokens+=lh(f),fh(f,l,d,r,o,i,s,a))return f;o==="repeated"&&i.add(d);let _=new Set(n);return _.add(d),uh(f,l,t,_,r,o,i,s,a),f}function ld(e,t){return!e||e.missing&&!t.missing?t:{...e,title:e.title??t.title,type:e.type??t.type,status:e.status??t.status}}function mh(e){let t=new Map,n=new Map,r=[e];for(;r.length>0;){let a=r.pop();t.set(a.id,ld(t.get(a.id),{id:a.id,title:a.title,type:a.type,status:a.status,missing:a.missing}));for(let c of a.dependencies){t.set(c.id,ld(t.get(c.id),{id:c.id,title:c.title,type:c.type,status:c.status,missing:c.missing}));let d=c.via??"related",l=`${a.id}::${c.id}::${d}`;n.has(l)||n.set(l,{from:a.id,to:c.id,kind:d}),c.cycle||r.push(c)}}let o=[...t.values()].sort((a,c)=>a.id.localeCompare(c.id)),i=[...n.values()].sort((a,c)=>{let d=a.from.localeCompare(c.from);if(d!==0)return d;let l=a.to.localeCompare(c.to);return l!==0?l:a.kind.localeCompare(c.kind)}),s=o.filter(a=>a.missing).map(a=>a.id);return{root_id:e.id,nodes:o,edges:i,missing_ids:s}}function md(e,t,n){let r=new Set,o=new Set,i=new Set,s=new Set,a=[{id:e,depth:0}],c=0;for(;c<a.length;){let d=a[c++],l=d.id.trim().toLowerCase();r.add(l);let f=t.get(l);if(!f){i.add(l);continue}if(!(n!==void 0&&d.depth>=n)&&!s.has(l)){s.add(l);for(let _ of f.dependencies)o.add(`${l}::${_.id.trim().toLowerCase()}::${_.kind}`),a.push({id:_.id,depth:d.depth+1})}}return{node_count:r.size,edge_count:o.size,edge_basis:"deduplicated_directed",missing_count:i.size}}function _h(e,t=ue()){let n=ud(e.maxDepth),r=It(e.nodeLimit,"node-limit"),o=It(e.edgeLimit,"edge-limit"),i=It(e.tokenBudget,"token-budget"),s=ah(e.kind,t);return{direction:sh(e.direction),...s===void 0?{}:{kinds:s},...n===void 0?{}:{maxDepth:n},...r===void 0?{}:{nodeLimit:r},...o===void 0?{}:{edgeLimit:o},...i===void 0?{}:{tokenBudget:i},...e.cursor?.trim()?{cursor:e.cursor.trim()}:{}}}function ph(e,t,n,r){return yc(e.graph,t,e.details.map(o=>o.id===t&&r.length>0?{...o,evidence:r}:o),n)}function xi(e,t,n,r){for(let o of n.slice(0,r)){let i=o?.trim();i&&e.push(`${t}:${i}`)}}async function hh(e,t,n,r){let o=await kr(e,t,n.id_prefix,n.item_format,r);if(!o)return[];let{document:i}=await Ir(o,{schema:n.schema}),s=i.metadata,a=s.files??[],c=s.tests??[],d=s.docs??[],l=[["files",a.length],["tests",c.length],["docs",d.length],["comments",(s.comments??[]).length],["notes",(s.notes??[]).length],["learnings",(s.learnings??[]).length]];if(l.every(([,_])=>_===0))return[];let f=[`linked:${l.map(([_,p])=>`${_}=${p}`).join(",")}`];return xi(f,"file",a.map(_=>_.path),3),xi(f,"test",c.map(_=>_.command??_.path),2),xi(f,"doc",d.map(_=>_.path),2),f}function yh(e){let{canonicalId:t,context:n,missingCount:r,missingReferences:o,referenceLimit:i,summaryOnly:s}=e;return{id:t,format:"context",node_count:n.nodes.length+1,edge_count:n.edges.length,edge_basis:"deduplicated_directed",missing_count:r,missing_scope:"traversal",missing_reference_count:o.length,...s?{}:{missing_references:o.slice(0,i),context:n}}}function gh(e){let{row:t,missingReachableSet:n,packetIds:r,filteredKinds:o,registry:i}=e;if(t.no_active_blocker_sentinel||!n.has(t.target_id.trim().toLowerCase())||!r.has(t.holder_id))return!1;if(o===void 0)return!0;let s=i.resolve(t.kind);return s!==void 0&&(o.has(s.kind)||s.inverse!==void 0&&o.has(s.inverse))}function _d(e,t,n){let r;for(;;){let o=mn(new TextEncoder().encode(Pr(Nr("deps",e),t)).byteLength);if(o===r)return o;n(o),r=o}}function bh(e){return e instanceof TypeError&&e.message.startsWith("Relationship context tokenBudget cannot fit ")}function vh(e){try{return ph(e.assembly,e.canonicalId,{...e.contextOptions,...e.internalTokenBudget===void 0?{}:{tokenBudget:e.internalTokenBudget}},e.rootEvidence)}catch(t){if(e.smallestResult!==void 0&&bh(t))return e.smallestResult;throw t}}function wh(e){let{assembly:t,canonicalId:n,contextOptions:r,rootEvidence:o,summaryOnly:i,outputFormat:s,missingCount:a,missingReferences:c}=e,d=r.edgeLimit??40,l=r.tokenBudget,f,_;for(;;){let p=vh({assembly:t,canonicalId:n,contextOptions:r,internalTokenBudget:l,rootEvidence:o,smallestResult:_});if("format"in p)return p;let m=p;f??=m.meta.tokenBudget,l??=f;let v=yh({canonicalId:n,context:m,missingCount:a,missingReferences:c,referenceLimit:d,summaryOnly:i});if(_=v,i||(m.meta.tokenBudget=f,m.meta.usedTokens=_d(St(v,!1),s,A=>{m.meta.usedTokens=A}),m.meta.usedTokens<=f))return v;if(d>0){d-=1;continue}let g=l,S=g*f/m.meta.usedTokens;l=Math.min(g-1,Math.max(1,Math.floor(S*.9)))}}function Eh(e){let{assembly:t,canonicalId:n,options:r,rootEvidence:o,summaryOnly:i,outputFormat:s}=e,a=_h(r,t.graph.registry()),c=t.graph.closure(n,{direction:a.direction,...a.kinds===void 0?{}:{kinds:a.kinds},maxDepth:a.maxDepth??3}),d=c.value.filter(v=>t.missingIdSet.has(v.toLowerCase())),l=new Set(d.map(v=>v.toLowerCase())),f=t.graph.registry(),_=a.kinds?new Set(a.kinds.map(v=>f.require(v).kind)):void 0,p=new Set([n,...c.value]),m=[...t.dangling.active,...t.dangling.legacy_terminal].filter(v=>gh({row:v,missingReachableSet:l,packetIds:p,filteredKinds:_,registry:f}));return wh({assembly:t,canonicalId:n,contextOptions:a,rootEvidence:o,summaryOnly:i,outputFormat:s,missingCount:d.length,missingReferences:m})}function kh(e){let t=[e],n;for(;t.length>0;){let r=t.pop();r.dependencies.length>0&&(n=r,t.push(...r.dependencies))}return n?(n.dependencies.pop(),n.truncated=!0,!0):!1}function Ih(e,t,n,r,o,i,s){let a=o??eh,c=It(n.nodeLimit,"node-limit")??th,d=It(n.edgeLimit,"edge-limit")??nh,l=It(n.tokenBudget,"token-budget")??rh,f={nodeLimit:c,edgeLimit:d,tokenBudget:l,nodes:0,edges:0,estimatedTokens:0,reasons:new Set},_=fd(e,r,new Set,a,t==="graph"?"repeated":i,new Set,f),p=md(e,r,void 0),m;for(;;){let v=mh(_),g=f.reasons.size===0?void 0:{reasons:[...f.reasons].sort(),limits:{max_depth:a,node_limit:c,edge_limit:d,token_budget:l},estimated_tokens:0,total_node_count:p.node_count,total_edge_count:p.edge_count,omitted_node_count:Math.max(0,p.node_count-v.nodes.length),omitted_edge_count:Math.max(0,p.edge_count-v.edges.length)},S={id:e,format:t,node_count:v.nodes.length,edge_count:v.edges.length,edge_basis:"deduplicated_directed",missing_count:v.missing_ids.length,...g?{truncation:g}:{}};if(m=t==="tree"?{...S,tree:_}:{...S,graph:v},(m.truncation===void 0?mn(new TextEncoder().encode(Pr(Nr("deps",St(m,!1)),s)).byteLength):_d(St(m,!1),s,A=>{m.truncation.estimated_tokens=A}))<=l)return m;if(!kh(_))return f.reasons.add("token_budget"),m;f.reasons.add("token_budget")}}function St(e,t,n={}){let r={name:e.format==="tree"?"dependency_tree":e.format==="graph"?"dependency_graph":"relationship_context",restore_with:"--full"};return{...e,legacy_alias_counts:n,projection:{mode:t?"summary":"full",declared_field_groups:[r],included_field_groups:t?[]:[r.name]}}}async function mk(e,t,n){let r=Gi(process.cwd(),n.path);await ki(r);let o=oh(t.format),i=ud(t.maxDepth),s=ih(t.collapse);is(t.summary===!0,t.full===!0,"--summary");let a=t.summary===!0,c=await Xc(r),d=cn(c,me()),l=await sd(r,c.item_format,d.type_to_folder,void 0,c.schema),f=un(c.schema),_=new Map(l.map(m=>[m.id.trim().toLowerCase(),dh(m)])),p=ei(l,m=>ge(m,f));for(let m of[...p.active,...p.legacy_terminal]){let v=_.get(m.holder_id.trim().toLowerCase()),g=m.kind.trim().toLowerCase();v&&!v.dependencies.some(S=>S.id.trim().toLowerCase()===m.target_id.trim().toLowerCase()&&S.kind===g)&&v.dependencies.push({id:m.target_id,kind:g})}if(!_.has(e.trim().toLowerCase()))throw new h(`Item ${e} not found`,b.NOT_FOUND);if(o==="context"){let m=_.get(e.trim().toLowerCase()).id,v=a?[]:await hh(r,m,c,d.type_to_folder),g=N=>ge(N,f),S=de(),A=hc().lookup(r,_c(l,g,S),()=>dr(l,g,S));return St(Eh({assembly:A.assembly,canonicalId:m,options:t,rootEvidence:v,summaryOnly:a,outputFormat:n.json===!0?"json":"toon"}),a,A.assembly.legacyAliasCounts)}return a?St({id:e,format:o,...md(e,_,i)},!0,Object.fromEntries(Object.entries(dr(l,m=>ge(m,f)).legacyAliasCounts))):St(Ih(e,o,t,_,i,s,n.json===!0?"json":"toon"),!1,Object.fromEntries(Object.entries(dr(l,m=>ge(m,f)).legacyAliasCounts)))}export{si as a,He as b,Mr as c,Th as d,Ch as e,ys as f,Ur as g,jh as h,Mh as i,Fh as j,$h as k,Hh as l,zh as m,Jr as n,Qr as o,Ss as p,Jh as q,Qh as r,Zh as s,ey as t,ty as u,ny as v,no as w,Rs as x,ry as y,oy as z,iy as A,Kd as B,Ns as C,Ls as D,cy as E,Yd as F,Ps as G,Be as H,Ce as I,$s as J,At as K,vy as L,wy as M,ro as N,oo as O,io as P,Rt as Q,js as R,Jd as S,ly as T,vn as U,it as V,ge as W,En as X,Zl as Y,Sn as Z,Tn as _,Zs as $,ne as aa,Su as ba,be as ca,dt as da,Bu as ea,dg as fa,lg as ga,ug as ha,Qu as ia,jn as ja,Ge as ka,Ft as la,Pg as ma,Ao as na,$n as oa,wa as pa,jg as qa,Ia as ra,Mg as sa,ft as ta,mt as ua,ea as va,_t as wa,Hn as xa,Gg as ya,No as za,zn as Aa,Kg as Ba,Xg as Ca,Oa as Da,Xe as Ea,Da as Fa,ve as Ga,Sf as Ha,Yg as Ia,Jg as Ja,ht as Ka,Wn as La,yb as Ma,gb as Na,Fa as Oa,Ha as Pa,bb as Qa,Xv as Ra,De as Sa,hw as Ta,M_ as Ua,yr as Va,hr as Wa,_p as Xa,Kc as Ya,Xc as Za,yw as _a,Ew as $a,gi as ab,Ep as bb,La as cb,$t as db,Ye as eb,ob as fb,Qt as gb,Jc as hb,bi as ib,Qc as jb,$w as kb,Pf as lb,Mf as mb,Ff as nb,$f as ob,Hf as pb,jo as qb,jb as rb,Fp as sb,od as tb,Wb as ub,Bb as vb,Vb as wb,Za as xb,tm as yb,qo as zb,ov as Ab,Go as Bb,or as Cb,Et as Db,ki as Eb,kr as Fb,Ir as Gb,Wp as Hb,Bp as Ib,sd as Jb,WE as Kb,ad as Lb,Gp as Mb,BE as Nb,VE as Ob,qE as Pb,Xo as Qb,Nm as Rb,Gt as Sb,sr as Tb,ac as Ub,Lm as Vb,Pm as Wb,jm as Xb,$m as Yb,Sv as Zb,Tv as _b,Ym as $b,de as ac,gv as bc,cr as cc,bv as dc,Km as ec,vv as fc,Xt as gc,Qm as hc,e_ as ic,ei as jc,t_ as kc,Nv as lc,dr as mc,_c as nc,ti as oc,hc as pc,Fv as qc,yc as rc,It as sc,ud as tc,sh as uc,ah as vc,mk as wc};
166
+ //# sourceMappingURL=chunk-5JEFDEL3.js.map