@unbrained/pm-cli 2026.10.3 → 2026.10.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (742) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/CHANGELOG.md +28 -2
  3. package/dist/cli/after-command-context-usage.js +1 -1
  4. package/dist/cli/argv-utils.js +1 -1
  5. package/dist/cli/bootstrap-args.js +1 -1
  6. package/dist/cli/bundle-integrity.js +2 -2
  7. package/dist/cli/command-namespaces.js +1 -1
  8. package/dist/cli/commander-usage.d.ts +1 -1
  9. package/dist/cli/commander-usage.js +7 -4
  10. package/dist/cli/commands/annotations/comments.js +1 -1
  11. package/dist/cli/commands/annotations/docs.js +1 -1
  12. package/dist/cli/commands/annotations/files.js +1 -1
  13. package/dist/cli/commands/annotations/learnings.js +1 -1
  14. package/dist/cli/commands/annotations/notes.js +1 -1
  15. package/dist/cli/commands/extension/describe.js +1 -1
  16. package/dist/cli/commands/extension/extension.js +1 -1
  17. package/dist/cli/commands/extension/scaffold.js +1 -1
  18. package/dist/cli/commands/extension/shared.js +1 -1
  19. package/dist/cli/commands/governance/gc.js +1 -1
  20. package/dist/cli/commands/governance/health.js +1 -1
  21. package/dist/cli/commands/governance/telemetry.js +1 -1
  22. package/dist/cli/commands/governance/validate.js +1 -1
  23. package/dist/cli/commands/history/activity.js +1 -1
  24. package/dist/cli/commands/history/history-compact.js +1 -1
  25. package/dist/cli/commands/history/history-redact.js +1 -1
  26. package/dist/cli/commands/history/history-repair.js +1 -1
  27. package/dist/cli/commands/history/history.js +1 -1
  28. package/dist/cli/commands/history/restore.js +1 -1
  29. package/dist/cli/commands/lifecycle/append.js +1 -1
  30. package/dist/cli/commands/lifecycle/claim.js +1 -1
  31. package/dist/cli/commands/lifecycle/close-many.js +1 -1
  32. package/dist/cli/commands/lifecycle/close.js +1 -1
  33. package/dist/cli/commands/lifecycle/copy.js +1 -1
  34. package/dist/cli/commands/lifecycle/create.js +1 -1
  35. package/dist/cli/commands/lifecycle/delete.js +1 -1
  36. package/dist/cli/commands/lifecycle/focus.js +1 -1
  37. package/dist/cli/commands/lifecycle/plan.js +1 -1
  38. package/dist/cli/commands/lifecycle/update-many.js +1 -1
  39. package/dist/cli/commands/lifecycle/update.js +1 -1
  40. package/dist/cli/commands/query/aggregate.js +1 -1
  41. package/dist/cli/commands/query/context.js +1 -1
  42. package/dist/cli/commands/query/deps.js +1 -1
  43. package/dist/cli/commands/query/duplicates.js +1 -1
  44. package/dist/cli/commands/query/eval.js +1 -1
  45. package/dist/cli/commands/query/get.js +1 -1
  46. package/dist/cli/commands/query/graph.js +1 -1
  47. package/dist/cli/commands/query/list.js +1 -1
  48. package/dist/cli/commands/query/next.js +1 -1
  49. package/dist/cli/commands/query/search.js +1 -1
  50. package/dist/cli/commands/query/stats.js +1 -1
  51. package/dist/cli/commands/test/test-all.js +1 -1
  52. package/dist/cli/commands/test/test-runs.js +1 -1
  53. package/dist/cli/commands/test/test.js +1 -1
  54. package/dist/cli/commands/workspace/config.js +1 -1
  55. package/dist/cli/commands/workspace/contracts.js +1 -1
  56. package/dist/cli/commands/workspace/init.js +1 -1
  57. package/dist/cli/commands/workspace/merge.js +1 -1
  58. package/dist/cli/commands/workspace/profile.js +1 -1
  59. package/dist/cli/commands/workspace/schema.js +1 -1
  60. package/dist/cli/commands/workspace/upgrade.js +1 -1
  61. package/dist/cli/context-intent-invocation.js +1 -1
  62. package/dist/cli/description-stdin.js +1 -1
  63. package/dist/cli/error-guidance.js +3 -1
  64. package/dist/cli/extension-command-help.js +5 -3
  65. package/dist/cli/extension-command-options.js +1 -1
  66. package/dist/cli/extension-recovery.js +1 -1
  67. package/dist/cli/help-content.js +5 -2
  68. package/dist/cli/help-json-payload.js +6 -3
  69. package/dist/cli/invocation-profile.js +2 -2
  70. package/dist/cli/main.js +5 -5
  71. package/dist/cli/migration-gates.js +1 -1
  72. package/dist/cli/option-values.js +1 -1
  73. package/dist/cli/public.js +1 -1
  74. package/dist/cli/register-annotations.js +1 -1
  75. package/dist/cli/register-assurance.js +1 -1
  76. package/dist/cli/register-files-lookup.js +1 -1
  77. package/dist/cli/register-history-activity.js +1 -1
  78. package/dist/cli/register-history-author.js +1 -1
  79. package/dist/cli/register-history-maintenance.js +2 -2
  80. package/dist/cli/register-list-query.js +10 -10
  81. package/dist/cli/register-mutation-options.js +1 -1
  82. package/dist/cli/register-mutation.js +2 -2
  83. package/dist/cli/register-operations.js +1 -1
  84. package/dist/cli/register-setup.js +1 -1
  85. package/dist/cli/register-structured-mutation.js +1 -1
  86. package/dist/cli/registration-helpers.js +1 -1
  87. package/dist/cli/runtime/activation.js +1 -1
  88. package/dist/cli/runtime/invocation-options.js +1 -1
  89. package/dist/cli/runtime/projection-retry.js +1 -1
  90. package/dist/cli/runtime/selection.js +1 -1
  91. package/dist/cli/runtime/telemetry-outcome.js +1 -1
  92. package/dist/cli/runtime-compatibility-boundary.d.ts +1 -1
  93. package/dist/cli/runtime-compatibility-boundary.js +4 -4
  94. package/dist/cli/schema/registration.js +2 -2
  95. package/dist/cli/schema-registration-helpers.js +1 -1
  96. package/dist/cli/search-refresh.js +1 -1
  97. package/dist/cli/stats-analytics-json.js +1 -1
  98. package/dist/cli/telemetry-flush.js +1 -1
  99. package/dist/cli-bundle/bundle-manifest.json +162 -162
  100. package/dist/cli-bundle/chunks/chunk-3CYOBJUK.js +3 -0
  101. package/dist/cli-bundle/chunks/chunk-5MNOWZPN.js +3 -0
  102. package/dist/cli-bundle/chunks/chunk-AJ7H6XUF.js +20 -0
  103. package/dist/cli-bundle/chunks/chunk-D332RXZ7.js +80 -0
  104. package/dist/cli-bundle/chunks/chunk-HRJ6G6ZG.js +31 -0
  105. package/dist/cli-bundle/chunks/chunk-KRVI56QE.js +6 -0
  106. package/dist/cli-bundle/chunks/chunk-N4YGSG6F.js +238 -0
  107. package/dist/cli-bundle/chunks/chunk-OOLYASYJ.js +2 -0
  108. package/dist/cli-bundle/chunks/chunk-R7CG2DB7.js +2 -0
  109. package/dist/cli-bundle/chunks/chunk-TGMONGWX.js +2 -0
  110. package/dist/cli-bundle/chunks/chunk-UZ7BIUCI.js +2 -0
  111. package/dist/cli-bundle/chunks/{chunk-44UGMMQ6.js → chunk-VZ63DEVJ.js} +3 -3
  112. package/dist/cli-bundle/chunks/chunk-WFZ4UEOB.js +2 -0
  113. package/dist/cli-bundle/chunks/chunk-YVBRASXO.js +8 -0
  114. package/dist/cli-bundle/chunks/{chunk-5XKF5SQV.js → chunk-Z66DWDAU.js} +91 -91
  115. package/dist/cli-bundle/chunks/{register-list-query-DYCGUQEW.js → register-list-query-75QXHIFH.js} +11 -11
  116. package/dist/cli-bundle/chunks/register-mutation-YS54SCHG.js +20 -0
  117. package/dist/cli-bundle/chunks/register-operations-6KHZQSYJ.js +2 -0
  118. package/dist/cli-bundle/chunks/register-setup-RTATEN2M.js +2 -0
  119. package/dist/cli-bundle/focused-chunks/{chunk-3BIYG72P.js → chunk-2CVX3KR3.js} +2 -2
  120. package/dist/cli-bundle/focused-chunks/chunk-5C3IDDW7.js +2 -0
  121. package/dist/cli-bundle/focused-chunks/{chunk-DBD4W4QP.js → chunk-ABV67XCC.js} +3 -3
  122. package/dist/cli-bundle/focused-chunks/chunk-B5RSLVE6.js +3 -0
  123. package/dist/cli-bundle/focused-chunks/chunk-C224METM.js +20 -0
  124. package/dist/cli-bundle/focused-chunks/chunk-CLDPTMQY.js +6 -0
  125. package/dist/cli-bundle/focused-chunks/chunk-DDRN42PB.js +8 -0
  126. package/dist/cli-bundle/focused-chunks/{chunk-EJN7DY3B.js → chunk-DOVTUKJQ.js} +2 -2
  127. package/dist/cli-bundle/focused-chunks/chunk-ECBOPEJE.js +75 -0
  128. package/dist/cli-bundle/focused-chunks/chunk-GITOYRUW.js +165 -0
  129. package/dist/cli-bundle/focused-chunks/chunk-GUIF3WVC.js +30 -0
  130. package/dist/cli-bundle/focused-chunks/chunk-LE4JUCRR.js +3 -0
  131. package/dist/cli-bundle/focused-chunks/{chunk-HFAW3FJQ.js → chunk-PSXFFQFT.js} +2 -2
  132. package/dist/cli-bundle/focused-chunks/chunk-RHIH6XIW.js +12 -0
  133. package/dist/cli-bundle/focused-chunks/chunk-UDYRVBOZ.js +2 -0
  134. package/dist/cli-bundle/focused-chunks/chunk-XV5RV4ZT.js +2 -0
  135. package/dist/cli-bundle/focused-chunks/{chunk-XRSCIYHR.js → chunk-YMU42COG.js} +2 -2
  136. package/dist/cli-bundle/main.js +28 -28
  137. package/dist/cli-bundle/sdk-authoring.js +1 -1
  138. package/dist/cli-bundle/sdk-contracts.js +2 -2
  139. package/dist/cli-bundle/sdk-core.js +32 -32
  140. package/dist/cli-bundle/sdk-governance.js +1 -1
  141. package/dist/cli-bundle/sdk-graph.js +1 -1
  142. package/dist/cli-bundle/sdk-merge.js +55 -55
  143. package/dist/cli-bundle/sdk-query.js +1 -1
  144. package/dist/cli-bundle/sdk-runtime.js +1 -1
  145. package/dist/cli-bundle/sdk-testing.js +1 -1
  146. package/dist/cli-bundle/sdk.js +10 -10
  147. package/dist/cli.js +1 -1
  148. package/dist/core/checkpoint/checkpoint-gc.js +1 -1
  149. package/dist/core/checkpoint/mutation-checkpoint.js +2 -2
  150. package/dist/core/config/nested-settings.js +1 -1
  151. package/dist/core/config/positional-value.js +1 -1
  152. package/dist/core/diagnostics/remediation.js +1 -1
  153. package/dist/core/extensions/activation-summary-markdown.js +2 -1
  154. package/dist/core/extensions/activation-summary.js +1 -1
  155. package/dist/core/extensions/activation-transaction.js +1 -1
  156. package/dist/core/extensions/capability-usage.js +1 -1
  157. package/dist/core/extensions/command-hook-context.js +1 -1
  158. package/dist/core/extensions/command-metadata-contract.js +1 -1
  159. package/dist/core/extensions/command-visibility-tier.js +1 -1
  160. package/dist/core/extensions/contribution-inventory.js +1 -1
  161. package/dist/core/extensions/exporter-output-contract.js +1 -1
  162. package/dist/core/extensions/extension-candidate.js +1 -1
  163. package/dist/core/extensions/extension-capability-aliases.js +1 -1
  164. package/dist/core/extensions/extension-hook-runtime.js +1 -1
  165. package/dist/core/extensions/extension-policy.js +1 -1
  166. package/dist/core/extensions/extension-registries.js +1 -1
  167. package/dist/core/extensions/extension-runtime-helpers.js +1 -1
  168. package/dist/core/extensions/extension-types.d.ts +8 -1
  169. package/dist/core/extensions/extension-types.js +1 -1
  170. package/dist/core/extensions/flag-definition-validation.js +1 -1
  171. package/dist/core/extensions/flag-value-types.js +1 -1
  172. package/dist/core/extensions/index.js +1 -1
  173. package/dist/core/extensions/item-field-types.js +1 -1
  174. package/dist/core/extensions/item-fields.js +1 -1
  175. package/dist/core/extensions/loader.js +1 -1
  176. package/dist/core/extensions/manifest-parser.js +1 -1
  177. package/dist/core/extensions/manifest-schema.js +1 -1
  178. package/dist/core/extensions/module-graph-snapshot.js +1 -1
  179. package/dist/core/extensions/preflight-ownership.js +1 -1
  180. package/dist/core/extensions/registration-contracts.js +1 -1
  181. package/dist/core/extensions/registration-validation.js +1 -1
  182. package/dist/core/extensions/registration-values.js +1 -1
  183. package/dist/core/extensions/reserved-host-flags.js +1 -1
  184. package/dist/core/extensions/runtime-registrations.js +1 -1
  185. package/dist/core/extensions/service-ownership.js +1 -1
  186. package/dist/core/extensions/version-compat.js +1 -1
  187. package/dist/core/fs/atomic-create.js +1 -1
  188. package/dist/core/fs/fs-utils.js +2 -2
  189. package/dist/core/fs/host-environment-errors.js +1 -1
  190. package/dist/core/fs/index.js +1 -1
  191. package/dist/core/fs/path-utils.js +1 -1
  192. package/dist/core/governance/content-fields.js +1 -1
  193. package/dist/core/governance/issue-codes.js +1 -1
  194. package/dist/core/governance/metadata-coverage.js +1 -1
  195. package/dist/core/history/digest.js +1 -1
  196. package/dist/core/history/drift-cache.js +3 -3
  197. package/dist/core/history/drift-scan.d.ts +4 -0
  198. package/dist/core/history/drift-scan.js +1 -1
  199. package/dist/core/history/event-classification.js +1 -1
  200. package/dist/core/history/event-index.js +8 -7
  201. package/dist/core/history/history-compact-bulk.js +1 -1
  202. package/dist/core/history/history-diff.js +1 -1
  203. package/dist/core/history/history-rewrite.js +1 -1
  204. package/dist/core/history/history-storage-stats.js +1 -1
  205. package/dist/core/history/history-stream-policy.js +1 -1
  206. package/dist/core/history/history.js +2 -2
  207. package/dist/core/history/identity.js +1 -1
  208. package/dist/core/history/index.js +1 -1
  209. package/dist/core/history/operation-contract.js +1 -1
  210. package/dist/core/history/projection.js +1 -1
  211. package/dist/core/history/read.js +1 -1
  212. package/dist/core/history/replay.js +2 -1
  213. package/dist/core/history/tombstone.js +1 -1
  214. package/dist/core/history/version-address.js +1 -1
  215. package/dist/core/history/workspace-history.js +2 -2
  216. package/dist/core/io/body-file.js +1 -1
  217. package/dist/core/io/bulk-ids-input.js +2 -1
  218. package/dist/core/item/actionability.js +1 -1
  219. package/dist/core/item/dependency-reference.js +1 -1
  220. package/dist/core/item/id.js +1 -1
  221. package/dist/core/item/index.js +1 -1
  222. package/dist/core/item/item-format-version.js +1 -1
  223. package/dist/core/item/item-format.js +6 -4
  224. package/dist/core/item/item-record.js +1 -1
  225. package/dist/core/item/item-type-definition.js +1 -1
  226. package/dist/core/item/parent-reference-policy.js +1 -1
  227. package/dist/core/item/parse.js +8 -2
  228. package/dist/core/item/plan-lifecycle.js +1 -1
  229. package/dist/core/item/priority.js +1 -1
  230. package/dist/core/item/sprint-release-format.js +1 -1
  231. package/dist/core/item/status-filter.js +1 -1
  232. package/dist/core/item/status.js +1 -1
  233. package/dist/core/item/toon-decode.js +1 -1
  234. package/dist/core/item/type-registry.js +1 -1
  235. package/dist/core/item/type-synonyms.js +1 -1
  236. package/dist/core/lock/index.js +1 -1
  237. package/dist/core/lock/lock-gc.js +1 -1
  238. package/dist/core/lock/lock.js +3 -3
  239. package/dist/core/output/mutation-projection.js +1 -1
  240. package/dist/core/output/output-control.js +1 -1
  241. package/dist/core/output/output.js +22 -10
  242. package/dist/core/output/query-summary.js +1 -1
  243. package/dist/core/output/tabular.js +3 -1
  244. package/dist/core/packages/manifest.js +1 -1
  245. package/dist/core/packages/root.js +1 -1
  246. package/dist/core/policy/workflow-policy-schema.js +1 -1
  247. package/dist/core/policy/workflow-policy-store.js +1 -1
  248. package/dist/core/policy/workflow-policy.js +1 -1
  249. package/dist/core/profile/profile-describe.js +1 -1
  250. package/dist/core/profile/profile-lint.js +1 -1
  251. package/dist/core/profile/profile-plan.js +1 -1
  252. package/dist/core/profile/profile-presets.js +25 -1
  253. package/dist/core/reproducibility/context.js +1 -1
  254. package/dist/core/schema/fields-file.js +2 -2
  255. package/dist/core/schema/item-types-file.js +2 -2
  256. package/dist/core/schema/runtime-field-filters.js +1 -1
  257. package/dist/core/schema/runtime-field-values.js +1 -1
  258. package/dist/core/schema/runtime-schema.js +2 -2
  259. package/dist/core/schema/status-defs-file.js +2 -2
  260. package/dist/core/schema/status-token.js +1 -1
  261. package/dist/core/schema/type-inference.js +1 -1
  262. package/dist/core/schema/type-presets.js +1 -1
  263. package/dist/core/schema/type-workflows.js +1 -1
  264. package/dist/core/search/background-refresh.js +2 -2
  265. package/dist/core/search/bm25.js +1 -1
  266. package/dist/core/search/cache.js +2 -2
  267. package/dist/core/search/corpus.js +1 -1
  268. package/dist/core/search/embedding-batches.js +1 -1
  269. package/dist/core/search/eval-thresholds.js +1 -1
  270. package/dist/core/search/eval.js +1 -1
  271. package/dist/core/search/http-client.js +1 -1
  272. package/dist/core/search/providers.js +1 -1
  273. package/dist/core/search/relevance.js +1 -1
  274. package/dist/core/search/semantic-defaults.js +1 -1
  275. package/dist/core/search/staleness.js +1 -1
  276. package/dist/core/search/vector-stores.js +2 -2
  277. package/dist/core/search/vectorization-metadata.js +1 -1
  278. package/dist/core/sentry/helpers.js +1 -1
  279. package/dist/core/sentry/instrument.js +1 -1
  280. package/dist/core/session/session-state.js +1 -1
  281. package/dist/core/shared/agent-session-context.js +1 -1
  282. package/dist/core/shared/author.js +5 -1
  283. package/dist/core/shared/command-line.js +1 -1
  284. package/dist/core/shared/command-types.js +1 -1
  285. package/dist/core/shared/conflict-markers.js +1 -1
  286. package/dist/core/shared/constants.js +1 -1
  287. package/dist/core/shared/errors.js +1 -1
  288. package/dist/core/shared/html-entity-decode.js +1 -1
  289. package/dist/core/shared/index.js +1 -1
  290. package/dist/core/shared/item-metadata-contract.js +1 -1
  291. package/dist/core/shared/lazy-module.js +1 -1
  292. package/dist/core/shared/levenshtein.js +1 -1
  293. package/dist/core/shared/memo.js +1 -1
  294. package/dist/core/shared/numeric-parsers.js +1 -1
  295. package/dist/core/shared/option-alias-visibility.js +1 -1
  296. package/dist/core/shared/primitives.js +1 -1
  297. package/dist/core/shared/secret-rules.js +1 -1
  298. package/dist/core/shared/serial-queue.js +1 -1
  299. package/dist/core/shared/serialization.js +1 -1
  300. package/dist/core/shared/split-comma-list.js +1 -1
  301. package/dist/core/shared/text-normalization.js +1 -1
  302. package/dist/core/shared/time.js +2 -1
  303. package/dist/core/store/index.js +1 -1
  304. package/dist/core/store/item-format-migration.js +1 -1
  305. package/dist/core/store/item-metadata-cache.js +1 -1
  306. package/dist/core/store/item-metadata-query-index.js +7 -7
  307. package/dist/core/store/item-metadata-read-work.js +1 -1
  308. package/dist/core/store/item-store.js +1 -1
  309. package/dist/core/store/paths.js +1 -1
  310. package/dist/core/store/settings-concurrency.js +1 -1
  311. package/dist/core/store/settings-read-cache.js +1 -1
  312. package/dist/core/store/settings-validator.js +1 -1
  313. package/dist/core/store/settings.d.ts +11 -2
  314. package/dist/core/store/settings.js +3 -3
  315. package/dist/core/store/tracker-preflight.js +1 -1
  316. package/dist/core/telemetry/consent.js +2 -2
  317. package/dist/core/telemetry/observability.js +1 -1
  318. package/dist/core/telemetry/policy.js +1 -1
  319. package/dist/core/telemetry/read-sampling.js +2 -2
  320. package/dist/core/telemetry/runtime.js +9 -5
  321. package/dist/core/test/background-runs.js +3 -3
  322. package/dist/core/test/item-test-run-tracking.js +1 -1
  323. package/dist/core/test/run-selectors.js +1 -1
  324. package/dist/core/validate/estimate-defaults.js +1 -1
  325. package/dist/core/validate/fix-planning.js +1 -1
  326. package/dist/core/validate/linked-artifact-reference.js +1 -1
  327. package/dist/core/validate/missing-by-type.js +1 -1
  328. package/dist/core/validate/missing-link-owners.js +1 -1
  329. package/dist/core/validate/stale-file-classification.js +1 -1
  330. package/dist/mcp/http-server.js +6 -4
  331. package/dist/mcp/legacy-adapter.js +1 -1
  332. package/dist/mcp/runtime-capabilities.js +1 -1
  333. package/dist/mcp/server.js +4 -4
  334. package/dist/mcp/tool-definitions.js +1 -1
  335. package/dist/sdk/actionability.js +1 -1
  336. package/dist/sdk/agent/closed-domain-contracts.js +1 -1
  337. package/dist/sdk/agent/command-recovery.js +1 -1
  338. package/dist/sdk/agent/command-suggestions.js +1 -1
  339. package/dist/sdk/agent/create-option-policy.js +1 -1
  340. package/dist/sdk/agent/identity-config.js +1 -1
  341. package/dist/sdk/agent/item-addressing.js +1 -1
  342. package/dist/sdk/agent/refusal-closure-census.js +2 -1
  343. package/dist/sdk/agent/refusal-closure.js +1 -1
  344. package/dist/sdk/agent/refusal-corpus-contracts.js +1 -1
  345. package/dist/sdk/agent/refusal-reachability.js +3 -1
  346. package/dist/sdk/agent/subcommand-recovery.js +1 -1
  347. package/dist/sdk/agent/task-transcript-contracts.js +1 -1
  348. package/dist/sdk/agent/tracker-preflight-contracts.js +1 -1
  349. package/dist/sdk/agent-capability-contracts.js +3 -1
  350. package/dist/sdk/agent-session-context.js +1 -1
  351. package/dist/sdk/annotations.js +1 -1
  352. package/dist/sdk/author-attribution.js +1 -1
  353. package/dist/sdk/authoring.js +1 -1
  354. package/dist/sdk/cli-bootstrap.js +1 -1
  355. package/dist/sdk/cli-contracts/agent-output-contracts.js +5 -3
  356. package/dist/sdk/cli-contracts/bootstrap-command-scanner.js +1 -1
  357. package/dist/sdk/cli-contracts/command-aliases.js +1 -1
  358. package/dist/sdk/cli-contracts/command-exit-contracts.js +1 -1
  359. package/dist/sdk/cli-contracts/commander-mutation-options.js +1 -1
  360. package/dist/sdk/cli-contracts/commander-types.js +1 -1
  361. package/dist/sdk/cli-contracts/completeness.js +1 -1
  362. package/dist/sdk/cli-contracts/enum-contracts.js +1 -1
  363. package/dist/sdk/cli-contracts/flag-contracts.js +1 -1
  364. package/dist/sdk/cli-contracts/flag-lexicon-contracts.js +2 -1
  365. package/dist/sdk/cli-contracts/grammar-contracts.js +1 -1
  366. package/dist/sdk/cli-contracts/registration-helpers.js +7 -7
  367. package/dist/sdk/cli-contracts/runtime-contracts.js +1 -1
  368. package/dist/sdk/cli-contracts/schemas/assurance-definition.js +1 -1
  369. package/dist/sdk/cli-contracts/string-lists.js +1 -1
  370. package/dist/sdk/cli-contracts/tool-option-contracts.js +1 -1
  371. package/dist/sdk/cli-contracts/tool-parameter-tables.js +1 -1
  372. package/dist/sdk/cli-contracts/tool-schema.js +1 -1
  373. package/dist/sdk/cli-contracts/typed-action-inputs.js +1 -1
  374. package/dist/sdk/cli-contracts.js +1 -1
  375. package/dist/sdk/cli-program.js +1 -1
  376. package/dist/sdk/command-line.js +1 -1
  377. package/dist/sdk/comments.js +1 -1
  378. package/dist/sdk/compile-cache.js +1 -1
  379. package/dist/sdk/completion/bash.js +2 -1
  380. package/dist/sdk/completion/fish.js +13 -7
  381. package/dist/sdk/completion/shared.js +1 -1
  382. package/dist/sdk/completion/zsh.js +14 -8
  383. package/dist/sdk/completion.js +1 -1
  384. package/dist/sdk/compose.js +1 -1
  385. package/dist/sdk/config.js +1 -1
  386. package/dist/sdk/context/recency.js +1 -1
  387. package/dist/sdk/context/semantic-session-attribution.js +1 -1
  388. package/dist/sdk/context/usage-egress.js +1 -1
  389. package/dist/sdk/context/usage-ledger.js +6 -3
  390. package/dist/sdk/context-intent-contracts.js +1 -1
  391. package/dist/sdk/context-intent-runtime.js +1 -1
  392. package/dist/sdk/context-packing.js +1 -1
  393. package/dist/sdk/context-relevance.js +1 -1
  394. package/dist/sdk/context-signal-store.js +2 -2
  395. package/dist/sdk/context-usage.js +1 -1
  396. package/dist/sdk/contracts.js +1 -1
  397. package/dist/sdk/core-governance.js +1 -1
  398. package/dist/sdk/core.js +1 -1
  399. package/dist/sdk/corpus-shape.js +1 -1
  400. package/dist/sdk/define.js +1 -1
  401. package/dist/sdk/dependencies.js +1 -1
  402. package/dist/sdk/dependency-flag-validation.js +1 -1
  403. package/dist/sdk/dependency-provenance.js +1 -1
  404. package/dist/sdk/docs.js +1 -1
  405. package/dist/sdk/duplicates.js +1 -1
  406. package/dist/sdk/environment/agent-environment.js +1 -1
  407. package/dist/sdk/environment/host-environment-errors.js +1 -1
  408. package/dist/sdk/environment/project-runtime-compatibility.js +2 -1
  409. package/dist/sdk/environment/source-context.js +1 -1
  410. package/dist/sdk/environment/tracker-preflight.js +1 -1
  411. package/dist/sdk/error-code-catalog.js +1 -1
  412. package/dist/sdk/error-runtime.js +1 -1
  413. package/dist/sdk/errors.js +1 -1
  414. package/dist/sdk/eval.js +1 -1
  415. package/dist/sdk/extension/author-manifest.js +1 -1
  416. package/dist/sdk/extension/bundled-catalog.js +1 -1
  417. package/dist/sdk/extension/concurrency.js +1 -1
  418. package/dist/sdk/extension/copy-scope.js +1 -1
  419. package/dist/sdk/extension/custom-field-collisions.js +1 -1
  420. package/dist/sdk/extension/describe.js +4 -2
  421. package/dist/sdk/extension/doctor.js +1 -1
  422. package/dist/sdk/extension/install-plan.js +1 -1
  423. package/dist/sdk/extension/install-receipts.js +1 -1
  424. package/dist/sdk/extension/install-runtime.js +3 -3
  425. package/dist/sdk/extension/install-snapshot.js +1 -1
  426. package/dist/sdk/extension/install-sources.js +5 -5
  427. package/dist/sdk/extension/managed-state.js +2 -2
  428. package/dist/sdk/extension/migrations.js +2 -2
  429. package/dist/sdk/extension/output-ownership.js +1 -1
  430. package/dist/sdk/extension/runtime-summary.js +1 -1
  431. package/dist/sdk/extension/scaffold.js +11 -4
  432. package/dist/sdk/extension/shared.js +1 -1
  433. package/dist/sdk/extension/source-resolution.js +1 -1
  434. package/dist/sdk/extension/static-inventory.js +1 -1
  435. package/dist/sdk/extension/update-check.js +1 -1
  436. package/dist/sdk/extension-command-context.js +1 -1
  437. package/dist/sdk/extension-contracts.js +1 -1
  438. package/dist/sdk/extension.js +1 -1
  439. package/dist/sdk/files.js +1 -1
  440. package/dist/sdk/flag-invocation-contracts.js +1 -1
  441. package/dist/sdk/generated/generated-error-code-catalog-part-1.js +1 -1
  442. package/dist/sdk/generated/generated-error-code-catalog-part-2.js +1 -1
  443. package/dist/sdk/generated-error-code-catalog.js +1 -1
  444. package/dist/sdk/governance/assurance-action-contracts.js +1 -1
  445. package/dist/sdk/governance/assurance-action.js +1 -1
  446. package/dist/sdk/governance/assurance-limits.js +1 -1
  447. package/dist/sdk/governance/assurance-mutation-error.js +1 -1
  448. package/dist/sdk/governance/assurance-presets.js +1 -1
  449. package/dist/sdk/governance/assurance-runtime.js +1 -1
  450. package/dist/sdk/governance/assurance.js +4 -4
  451. package/dist/sdk/governance/boundary-fixtures.js +1 -1
  452. package/dist/sdk/governance/closure-timestamps.js +1 -1
  453. package/dist/sdk/governance/coverage-assurance.js +1 -1
  454. package/dist/sdk/governance/defect-recurrence-coverage.js +1 -1
  455. package/dist/sdk/governance/defect-recurrence-graph.js +1 -1
  456. package/dist/sdk/governance/defect-recurrence-signals.js +1 -1
  457. package/dist/sdk/governance/defect-recurrence.js +1 -1
  458. package/dist/sdk/governance/extension-host-version.js +1 -1
  459. package/dist/sdk/governance/gc.js +1 -1
  460. package/dist/sdk/governance/health-merge-evidence.js +1 -1
  461. package/dist/sdk/governance/health.js +2 -1
  462. package/dist/sdk/governance/hierarchy-validation.js +1 -1
  463. package/dist/sdk/governance/linked-file-report.js +1 -1
  464. package/dist/sdk/governance/merge-receipt-history.js +1 -1
  465. package/dist/sdk/governance/provenance-health.js +4 -1
  466. package/dist/sdk/governance/reindex.js +5 -4
  467. package/dist/sdk/governance/stale-work.js +1 -1
  468. package/dist/sdk/governance/status-role-diagnostics.js +1 -1
  469. package/dist/sdk/governance/storage-integrity.js +1 -1
  470. package/dist/sdk/governance/tracked-runtime-cache.js +1 -1
  471. package/dist/sdk/governance/upgrade.js +2 -2
  472. package/dist/sdk/governance/validate-history-drift.js +1 -1
  473. package/dist/sdk/governance/validate-item-reader.js +1 -1
  474. package/dist/sdk/governance/validate-normalization.js +1 -1
  475. package/dist/sdk/governance/validate.js +1 -1
  476. package/dist/sdk/governance/workflow-completeness.js +1 -1
  477. package/dist/sdk/governance/workflow-policy.js +3 -3
  478. package/dist/sdk/governance/workspace-position.js +2 -1
  479. package/dist/sdk/governance.js +1 -1
  480. package/dist/sdk/graph/adapter.js +1 -1
  481. package/dist/sdk/graph/analytics.js +1 -1
  482. package/dist/sdk/graph/assembly.js +1 -1
  483. package/dist/sdk/graph/cache.js +1 -1
  484. package/dist/sdk/graph/centrality.js +1 -1
  485. package/dist/sdk/graph/conformance.js +1 -1
  486. package/dist/sdk/graph/deadline-scheduling.js +1 -1
  487. package/dist/sdk/graph/durable-cache.js +1 -1
  488. package/dist/sdk/graph/governance-contracts.js +1 -1
  489. package/dist/sdk/graph/governance.js +1 -1
  490. package/dist/sdk/graph/hierarchy-integrity.js +1 -1
  491. package/dist/sdk/graph/index.js +1 -1
  492. package/dist/sdk/graph/lifecycle-coverage.js +1 -1
  493. package/dist/sdk/graph/mutation-advisory.js +1 -1
  494. package/dist/sdk/graph/query-contracts.js +1 -1
  495. package/dist/sdk/graph/remediation.js +1 -1
  496. package/dist/sdk/graph/run.js +1 -1
  497. package/dist/sdk/graph/scheduling.js +1 -1
  498. package/dist/sdk/graph/traversal.js +1 -1
  499. package/dist/sdk/graph/workspace-relationship-kind-registry.js +1 -1
  500. package/dist/sdk/graph.js +1 -1
  501. package/dist/sdk/guide-topics.js +1 -1
  502. package/dist/sdk/guide.js +8 -1
  503. package/dist/sdk/history/attestation-command.js +1 -1
  504. package/dist/sdk/history/attestation-contract.js +1 -1
  505. package/dist/sdk/history/attestation-scan.js +1 -1
  506. package/dist/sdk/history/attestation.js +1 -1
  507. package/dist/sdk/history/maintenance.js +1 -1
  508. package/dist/sdk/history/salvage.js +3 -2
  509. package/dist/sdk/history/subject.js +1 -1
  510. package/dist/sdk/history-analytics.js +1 -1
  511. package/dist/sdk/history-compact.js +1 -1
  512. package/dist/sdk/history-mcp.js +1 -1
  513. package/dist/sdk/history-provenance.js +1 -1
  514. package/dist/sdk/history-read.js +1 -1
  515. package/dist/sdk/history-redact.js +1 -1
  516. package/dist/sdk/history-repair.js +1 -1
  517. package/dist/sdk/improvement-ledger-validation.js +1 -1
  518. package/dist/sdk/improvement-ledger.js +2 -2
  519. package/dist/sdk/index.js +1 -1
  520. package/dist/sdk/init-agent-guidance.js +16 -2
  521. package/dist/sdk/init.js +16 -2
  522. package/dist/sdk/invocation-author.js +1 -1
  523. package/dist/sdk/item-children.js +1 -1
  524. package/dist/sdk/item-metadata-index.js +1 -1
  525. package/dist/sdk/item-schedule.js +1 -1
  526. package/dist/sdk/item-transaction.js +1 -1
  527. package/dist/sdk/learnings.js +1 -1
  528. package/dist/sdk/lifecycle/append.js +4 -2
  529. package/dist/sdk/lifecycle/claim.js +1 -1
  530. package/dist/sdk/lifecycle/close-many.js +1 -1
  531. package/dist/sdk/lifecycle/close.js +1 -1
  532. package/dist/sdk/lifecycle/copy.js +1 -1
  533. package/dist/sdk/lifecycle/create.js +1 -1
  534. package/dist/sdk/lifecycle/delete.js +1 -1
  535. package/dist/sdk/lifecycle/event-validation-messages.js +1 -1
  536. package/dist/sdk/lifecycle/focus.js +1 -1
  537. package/dist/sdk/lifecycle/hierarchy-mutation-lock.js +1 -1
  538. package/dist/sdk/lifecycle/legacy-none-tokens.js +1 -1
  539. package/dist/sdk/lifecycle/lifecycle-transitions.js +1 -1
  540. package/dist/sdk/lifecycle/mcp-actions.js +1 -1
  541. package/dist/sdk/lifecycle/metadata-normalizers.js +1 -1
  542. package/dist/sdk/lifecycle/mutation-command-options.js +1 -1
  543. package/dist/sdk/lifecycle/plan-mutation-receipt.js +1 -1
  544. package/dist/sdk/lifecycle/plan.js +1 -1
  545. package/dist/sdk/lifecycle/recurrence-parsers.js +1 -1
  546. package/dist/sdk/lifecycle/reopen.js +1 -1
  547. package/dist/sdk/lifecycle/repeatable-metadata-parsers.js +2 -1
  548. package/dist/sdk/lifecycle/restore.js +1 -1
  549. package/dist/sdk/lifecycle/shared-unset-fields.js +1 -1
  550. package/dist/sdk/lifecycle/task-composition.js +1 -1
  551. package/dist/sdk/lifecycle/update-many.js +1 -1
  552. package/dist/sdk/lifecycle/update.js +2 -1
  553. package/dist/sdk/lifecycle-completion.js +1 -1
  554. package/dist/sdk/lifecycle-policy.js +1 -1
  555. package/dist/sdk/linked-artifacts.js +2 -1
  556. package/dist/sdk/mcp/apps.js +1 -1
  557. package/dist/sdk/mcp/authorization.js +1 -1
  558. package/dist/sdk/mcp/discovery.js +1 -1
  559. package/dist/sdk/mcp/interactions.js +1 -1
  560. package/dist/sdk/mcp/protocol.js +1 -1
  561. package/dist/sdk/mcp/skills.js +3 -1
  562. package/dist/sdk/mcp/subscriptions.js +1 -1
  563. package/dist/sdk/mcp/tasks.js +2 -2
  564. package/dist/sdk/mcp/transport.js +1 -1
  565. package/dist/sdk/merge/abandoned-receipts.js +1 -1
  566. package/dist/sdk/merge/driver.js +1 -1
  567. package/dist/sdk/merge/index.js +1 -1
  568. package/dist/sdk/merge/install.js +4 -2
  569. package/dist/sdk/merge/receipt-file-boundary.js +1 -1
  570. package/dist/sdk/merge/receipt-operation.js +1 -1
  571. package/dist/sdk/merge/receipt-schema.js +1 -1
  572. package/dist/sdk/merge/receipts.js +4 -4
  573. package/dist/sdk/merge/reconcile.js +1 -1
  574. package/dist/sdk/merge/three-way.js +3 -2
  575. package/dist/sdk/merge/worktree-config.js +1 -1
  576. package/dist/sdk/merge.js +1 -1
  577. package/dist/sdk/mutation-events.js +1 -1
  578. package/dist/sdk/mutation-guard.js +1 -1
  579. package/dist/sdk/notes.js +1 -1
  580. package/dist/sdk/output-contracts.js +1 -1
  581. package/dist/sdk/output-projection.js +1 -1
  582. package/dist/sdk/output-token-accounting.js +1 -1
  583. package/dist/sdk/output.js +2 -1
  584. package/dist/sdk/ownership-source.js +1 -1
  585. package/dist/sdk/package-import-adapters.js +1 -1
  586. package/dist/sdk/package-migrations.js +1 -1
  587. package/dist/sdk/package-runtime-options.js +1 -1
  588. package/dist/sdk/pagination.js +1 -1
  589. package/dist/sdk/profile.js +5 -1
  590. package/dist/sdk/provenance.js +1 -1
  591. package/dist/sdk/public-surface.json +1 -1
  592. package/dist/sdk/query/activity.js +1 -1
  593. package/dist/sdk/query/aggregate.js +1 -1
  594. package/dist/sdk/query/calendar.js +4 -1
  595. package/dist/sdk/query/complete-list.js +1 -1
  596. package/dist/sdk/query/context.js +2 -1
  597. package/dist/sdk/query/duplicate-candidates.js +1 -1
  598. package/dist/sdk/query/get.d.ts +14 -2
  599. package/dist/sdk/query/get.js +1 -1
  600. package/dist/sdk/query/history.js +1 -1
  601. package/dist/sdk/query/item-filter-options.js +1 -1
  602. package/dist/sdk/query/light-metadata.js +1 -1
  603. package/dist/sdk/query/list-filter-shared.js +1 -1
  604. package/dist/sdk/query/list.js +1 -1
  605. package/dist/sdk/query/multi-value-filters.js +1 -1
  606. package/dist/sdk/query/next-ready-budget.js +1 -1
  607. package/dist/sdk/query/next.js +2 -1
  608. package/dist/sdk/query/parsers.js +1 -1
  609. package/dist/sdk/query/projection-contracts.js +1 -1
  610. package/dist/sdk/query/search/corpus.js +2 -1
  611. package/dist/sdk/query/search/filters.js +1 -1
  612. package/dist/sdk/query/search/input.js +1 -1
  613. package/dist/sdk/query/search/lexical.js +1 -1
  614. package/dist/sdk/query/search/response.js +1 -1
  615. package/dist/sdk/query/search/semantic.js +3 -2
  616. package/dist/sdk/query/search/types.js +1 -1
  617. package/dist/sdk/query/search-contracts.js +1 -1
  618. package/dist/sdk/query/search-pagination.d.ts +1 -1
  619. package/dist/sdk/query/search-pagination.js +1 -1
  620. package/dist/sdk/query/search-rendering.js +1 -1
  621. package/dist/sdk/query/search.js +1 -1
  622. package/dist/sdk/query/workspace-contracts.js +1 -1
  623. package/dist/sdk/query.js +1 -1
  624. package/dist/sdk/read-output/continuation.js +1 -1
  625. package/dist/sdk/read-output/options.js +1 -1
  626. package/dist/sdk/read-output/provenance.js +1 -1
  627. package/dist/sdk/read-output-budget.js +1 -1
  628. package/dist/sdk/read-output-contracts.js +1 -1
  629. package/dist/sdk/read-output-rows.js +1 -1
  630. package/dist/sdk/read-output-session.js +1 -1
  631. package/dist/sdk/relationship-analytics.js +1 -1
  632. package/dist/sdk/relationship-context.js +1 -1
  633. package/dist/sdk/relationship-history.js +7 -4
  634. package/dist/sdk/relationship-kinds/contract.js +1 -1
  635. package/dist/sdk/relationship-migration.js +1 -1
  636. package/dist/sdk/relationships.js +1 -1
  637. package/dist/sdk/reproducibility/process.js +1 -1
  638. package/dist/sdk/runtime/actions.js +1 -1
  639. package/dist/sdk/runtime/context.js +1 -1
  640. package/dist/sdk/runtime/schema-preview.js +1 -1
  641. package/dist/sdk/runtime/schema.js +1 -1
  642. package/dist/sdk/runtime-action-aliases.js +1 -1
  643. package/dist/sdk/runtime-extended-actions.js +1 -1
  644. package/dist/sdk/runtime-input.js +1 -1
  645. package/dist/sdk/runtime-primitives.js +1 -1
  646. package/dist/sdk/runtime-public-contracts.js +1 -1
  647. package/dist/sdk/runtime-stats-options.js +1 -1
  648. package/dist/sdk/runtime.js +1 -1
  649. package/dist/sdk/scheduling-shortcuts.js +1 -1
  650. package/dist/sdk/schema-migration.js +4 -3
  651. package/dist/sdk/schema.js +7 -1
  652. package/dist/sdk/search-refresh-worker.js +1 -1
  653. package/dist/sdk/similarity-scoring.js +1 -1
  654. package/dist/sdk/similarity.js +1 -1
  655. package/dist/sdk/start-task-status.js +1 -1
  656. package/dist/sdk/stats.js +1 -1
  657. package/dist/sdk/structured-mutations.js +1 -1
  658. package/dist/sdk/telemetry-flush.js +1 -1
  659. package/dist/sdk/telemetry.js +4 -3
  660. package/dist/sdk/templates.js +26 -2
  661. package/dist/sdk/test/batch.js +2 -2
  662. package/dist/sdk/test/entry.js +1 -1
  663. package/dist/sdk/test/execution.js +6 -5
  664. package/dist/sdk/test/json-path.js +1 -1
  665. package/dist/sdk/test/linked-command-detection.js +1 -1
  666. package/dist/sdk/test/measurements.js +1 -1
  667. package/dist/sdk/test/parsers.js +1 -1
  668. package/dist/sdk/test/runs.js +1 -1
  669. package/dist/sdk/test/trust.js +2 -2
  670. package/dist/sdk/test/workspace-snapshot.js +1 -1
  671. package/dist/sdk/testing.js +7 -4
  672. package/dist/sdk/traceability/runtime-files-lookup.js +1 -1
  673. package/dist/sdk/traceability/source-traceability.js +2 -1
  674. package/dist/sdk/tracker-root-discovery.js +1 -1
  675. package/dist/sdk/workspace-contracts-cache.js +1 -1
  676. package/dist/sdk/workspace-contracts.js +1 -1
  677. package/dist/sdk/workspace-memory.js +2 -2
  678. package/dist/sdk/workspace-recipe.js +1 -1
  679. package/dist/sdk/workspace-snapshot.js +5 -4
  680. package/dist/sdk/workspace-transaction-gc.js +1 -1
  681. package/dist/sdk/workspace-transaction.js +2 -2
  682. package/dist/sdk/workspace.js +3 -2
  683. package/dist/types/index.js +1 -1
  684. package/dist/types.js +1 -1
  685. package/docs/AGENT_EVIDENCE_CONSISTENCY.md +88 -0
  686. package/docs/DIAGNOSTIC_OUTPUT_CONTRACTS.md +25 -0
  687. package/docs/GET_READ_EVIDENCE.md +68 -0
  688. package/docs/OUTPUT_PROJECTION_CONTRACTS.md +23 -0
  689. package/docs/README.md +2 -0
  690. package/docs/SDK_AUDITED_MUTATIONS.md +35 -0
  691. package/docs/TESTING.md +8 -0
  692. package/docs/ecosystem-review-2026-09-28.json +2864 -3157
  693. package/marketplace.json +2 -2
  694. package/package.json +1 -1
  695. package/packages/pm-beads/package.json +1 -1
  696. package/packages/pm-calendar/package.json +1 -1
  697. package/packages/pm-command-kit/package.json +1 -1
  698. package/packages/pm-digital-twin/package.json +1 -1
  699. package/packages/pm-governance-audit/package.json +1 -1
  700. package/packages/pm-guide-shell/package.json +1 -1
  701. package/packages/pm-kanban/package.json +1 -1
  702. package/packages/pm-lifecycle-hooks/package.json +1 -1
  703. package/packages/pm-linked-test-adapters/package.json +1 -1
  704. package/packages/pm-search-advanced/package.json +1 -1
  705. package/packages/pm-templates/package.json +1 -1
  706. package/packages/pm-todos/package.json +1 -1
  707. package/packages/pm-vcs/extensions/vcs/index.ts +4 -2
  708. package/packages/pm-vcs/package.json +1 -1
  709. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  710. package/plugins/pm-claude/package.json +2 -2
  711. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  712. package/plugins/pm-codex/package.json +2 -2
  713. package/plugins/pm-codex/plugin.json +1 -1
  714. package/scripts/finalize-build.mjs +3 -2
  715. package/dist/cli-bundle/chunks/chunk-3AF2R3Y6.js +0 -6
  716. package/dist/cli-bundle/chunks/chunk-6ST3SCQ6.js +0 -2
  717. package/dist/cli-bundle/chunks/chunk-6Z4IV2MC.js +0 -8
  718. package/dist/cli-bundle/chunks/chunk-DEZPZOQ7.js +0 -2
  719. package/dist/cli-bundle/chunks/chunk-FW5LJXQY.js +0 -31
  720. package/dist/cli-bundle/chunks/chunk-H2DZW6I6.js +0 -3
  721. package/dist/cli-bundle/chunks/chunk-H7CXQBGQ.js +0 -2
  722. package/dist/cli-bundle/chunks/chunk-KP7NBQK3.js +0 -80
  723. package/dist/cli-bundle/chunks/chunk-MKXBCBAN.js +0 -20
  724. package/dist/cli-bundle/chunks/chunk-QPKQKSQU.js +0 -238
  725. package/dist/cli-bundle/chunks/chunk-SGFQQXFD.js +0 -2
  726. package/dist/cli-bundle/chunks/chunk-YCBGZF3T.js +0 -2
  727. package/dist/cli-bundle/chunks/chunk-YDWKGUQU.js +0 -3
  728. package/dist/cli-bundle/chunks/register-mutation-5PT3NW3A.js +0 -20
  729. package/dist/cli-bundle/chunks/register-operations-QDDQOAAV.js +0 -2
  730. package/dist/cli-bundle/chunks/register-setup-BBX67YMA.js +0 -2
  731. package/dist/cli-bundle/focused-chunks/chunk-4FFPGNCJ.js +0 -6
  732. package/dist/cli-bundle/focused-chunks/chunk-73DA7ISY.js +0 -75
  733. package/dist/cli-bundle/focused-chunks/chunk-E754JDLY.js +0 -2
  734. package/dist/cli-bundle/focused-chunks/chunk-FKK2HI3S.js +0 -2
  735. package/dist/cli-bundle/focused-chunks/chunk-GMYUNHST.js +0 -3
  736. package/dist/cli-bundle/focused-chunks/chunk-HIA2ZF64.js +0 -12
  737. package/dist/cli-bundle/focused-chunks/chunk-UTRSM3ZK.js +0 -8
  738. package/dist/cli-bundle/focused-chunks/chunk-VVWYI2X7.js +0 -2
  739. package/dist/cli-bundle/focused-chunks/chunk-WAJNX4RN.js +0 -20
  740. package/dist/cli-bundle/focused-chunks/chunk-WCY6HRZO.js +0 -30
  741. package/dist/cli-bundle/focused-chunks/chunk-YC32ZSLS.js +0 -165
  742. package/dist/cli-bundle/focused-chunks/chunk-ZIXFMIUL.js +0 -3
@@ -0,0 +1,165 @@
1
+ import{b as or,g as St,i as Tt,j as Ct,l as Pi,m as Mi,n as cr,o as ji,p as Fi,q as $i}from"./chunk-B5RSLVE6.js";import{h as ur}from"./chunk-PSXFFQFT.js";import{$ as w,$c as Bi,A as bi,Ae as Cn,Be as On,F as rr,G as nr,H as wn,Ia as Ti,J as wi,Kc as me,Ke as ye,Lc as kn,Le as se,Ma as Ci,Mc as dr,Na as Oi,Nc as _e,Oc as In,P as ve,Pa as xi,Pb as Li,Pc as ke,Qa as Ri,Qc as Sn,Ta as ir,Tc as Ot,Ub as Hi,V as Pe,Va as Ai,Vd as Gi,W as vi,Wd as Ie,Xd as pe,Ya as sr,Yb as zi,Yd as Ki,Z as k,Za as Di,Zb as Ui,Zc as $e,Zd as tt,_ as Me,_d as he,aa as g,ab as et,bb as vn,bd as Tn,be as Xi,cb as En,ce as Yi,db as fe,dd as Wi,de as W,ed as Vi,fb as Ni,i as Qt,id as qi,ka as ue,pa as Ei,q as Zt,r as pi,ra as ki,rb as D,s as hi,sa as je,sb as ie,t as yi,ta as Fe,tb as ar,u as gi,ua as re,ub as T,va as Ee,vd as lr,wa as Ii,xa as K,y as er,ya as Si,z as tr}from"./chunk-GUIF3WVC.js";import{AsyncLocalStorage as qc}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 xn=new qc,Ji=/^[A-Za-z0-9](?:[A-Za-z0-9._:-]{0,127})$/u;function fr(e,t){let r=typeof e=="string"?e.trim():"";return r.length>0?r.slice(0,t):void 0}function He(e,t){if(e===void 0)return;let r=typeof e=="object"&&e!==null?e:{},n=fr(r.id,128),o=fr(r.parent_id,128);if(n===void 0||!Ji.test(n)||o!==void 0&&!Ji.test(o)){if(t)throw new Error("Agent episode ids must be 1-128 letters, digits, dots, underscores, colons, or hyphens.");return}let i=fr(r.label,256);return{id:n,...i===void 0?{}:{label:i},...o===void 0?{}:{parent_id:o}}}function rt(e){let t={};for(let[r,n]of Object.entries(e??{}).slice(0,32)){let o=r.trim().toLowerCase().slice(0,64),i=fr(n,256);/^[a-z][a-z0-9_-]{0,63}$/u.test(o)&&i!==void 0&&(t[o]=i)}return t}function Gc(e,t,r){let n=xn.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(n?.provenance),...o,...rt(e?.provenance)},a=He(e?.episode,!1)??He(r,!1)??i??He(n?.episode,!1);return Object.keys(s).length===0&&a===void 0?void 0:{...Object.keys(s).length===0?{}:{provenance:s},...a===void 0?{}:{episode:a}}}function Rn(e,t){return Gc(e.session_context,t,e.client_info?.episode)??{}}function Gp(e,t){let r=xn.getStore(),n=He(e.episode,!0),o=He(r?.episode,!1),i=n!==void 0&&n.parent_id===void 0&&o!==void 0?{...n,parent_id:o.id}:n,s={...rt(r?.provenance),...rt(e.provenance)};return xn.run({...Object.keys(s).length===0?{}:{provenance:s},...i===void 0?o===void 0?{}:{episode:o}:{episode:i}},t)}function Kp(e){let t=rt(e.provenance),r=He(e.episode,!0);return{...r===void 0?{}:{PM_AGENT_EPISODE_ID:r.id,...r.label===void 0?{}:{PM_AGENT_EPISODE_LABEL:r.label},...r.parent_id===void 0?{}:{PM_AGENT_EPISODE_PARENT_ID:r.parent_id}},...t.role===void 0?{}:{PM_AGENT_SESSION_ROLE:t.role},...t.topic===void 0?{}:{PM_AGENT_SESSION_TOPIC:t.topic}}}import{AsyncLocalStorage as Bn}from"node:async_hooks";import{createHash as Qc}from"node:crypto";import V from"node:fs";import ss from"node:os";import Be from"node:path";import{createHash as Qi}from"node:crypto";import{existsSync as An,promises as Zi,readFileSync as Kc}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 Xc="session.json";function Dn(e,t){return typeof e=="string"&&e.length>0&&e.length<=t}function es(e){if(e===null||typeof e!="object"||Array.isArray(e))return;let t=e,r=["implementer","planner","release-operator"].includes(String(t.role)),n=["high","medium"].includes(String(t.confidence)),o=Dn(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=>Dn(c,128)),a=t.focused_item_id===void 0||Dn(t.focused_item_id,128);if([r,n,o,i,s,a,t.rule_version==="v2"].every(Boolean))return t}function Yc(e){if(e===null||typeof e!="object"||Array.isArray(e))return;let t=Object.entries(e).slice(0,128).flatMap(([r,n])=>{let o=es(n);return o&&r.length<=128?[[r,o]]:[]});return t.length>0?Object.fromEntries(t):void 0}function Nn(e){return ae.join(Ni(e),Xc)}async function ts(e){try{let t=await Zi.readFile(Nn(e),"utf8"),r=JSON.parse(t);if(r===null||typeof r!="object"||Array.isArray(r))return{};let n=r,o=n.focused_item,i=Yc(n.semantic_attribution);return typeof o=="string"&&o.trim().length>0?{focused_item:o,...i?{semantic_attribution:i}:{}}:i?{semantic_attribution:i}:{}}catch{return{}}}async function Ln(e,t){let r=await W(e,"session-state",k.locks.ttl_seconds,"session-state",!1,!0,k.locks.wait_ms);try{let n=await ts(e);t(n);let o=Nn(e);await Zi.mkdir(ae.dirname(o),{recursive:!0}),await K(o,JSON.stringify(n))}finally{await r()}}function Pn(e){return/#([a-f0-9]{24})$/u.exec(e.trim())?.[1]??`author-${Qi("sha256").update(e).digest("hex").slice(0,24)}`}function Mn(e){return[...new Set(e.map(t=>t.trim()).filter(Boolean))].slice(0,32).map(t=>t.slice(0,128))}function jn(e){let t=[...new Set(e)].sort((n,o)=>n.localeCompare(o));if(t.length===1)return t[0];let r=`workset:${t.join("+")}`;return r.length<=256?r:`workset:${t.join("+").slice(0,230)}+${Qi("sha256").update(t.join("\0")).digest("hex").slice(0,12)}`}async function Fn(e,t,r){await Ln(e,n=>{let o={...n.semantic_attribution},i=r(o[t]);i===void 0?delete o[t]:o[t]=i,Object.keys(o).length===0?delete n.semantic_attribution:n.semantic_attribution=o})}async function nh(e){let t=Pn(e.principal);await Fn(e.pmRoot,t,r=>{let n=[...new Set([...r?.active_item_ids??[],e.itemId])].slice(-64).sort((i,s)=>i.localeCompare(s)),o=r?.focused_item_id;return{role:"implementer",topic:o??jn(n),confidence:o?"high":"medium",rule_version:"v2",evidence:Mn([...n.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],...(e.lineageIds??[]).map(i=>`lineage:${i}`)]),active_item_ids:n,...o?{focused_item_id:o}:{}}})}async function oh(e){let t=Pn(e.principal);await Fn(e.pmRoot,t,r=>{if(!r)return;let n=r.active_item_ids.filter(i=>i!==e.itemId);if(n.length===0&&!r.focused_item_id)return;let o=r.focused_item_id;return{...r,role:"release-operator",topic:o??jn(n),confidence:o?"high":"medium",evidence:Mn([...n.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],`release:${e.itemId}`]),active_item_ids:n}})}async function ih(e){let t=Pn(e.principal);await Fn(e.pmRoot,t,r=>{let n=r?.active_item_ids??[];if(!e.itemId&&n.length===0)return;let o=e.itemId;return{role:o?"planner":r.role,topic:o??jn(n),confidence:o?"high":"medium",rule_version:"v2",evidence:Mn([...n.map(i=>`claim:${i}`),...o?[`focus:${o}`]:[],...(e.lineageIds??[]).map(i=>`lineage:${i}`)]),active_item_ids:n,...o?{focused_item_id:o}:{}}})}function Jc(e,t){let r=t.PM_PATH?.trim();if(r){let o=ae.resolve(e,r);if(An(ae.join(o,"settings.json")))return o;let i=ae.join(o,".agents","pm");if(An(ae.join(i,"settings.json")))return i}let n=ae.resolve(e);for(let o=0;o<32;o+=1){let i=ae.join(n,".agents","pm");if(An(ae.join(i,"settings.json")))return i;let s=ae.dirname(n);if(s===n)break;n=s}}function rs(e){if(!e.key)return;let t=Jc(e.cwd,e.env);if(t)try{let r=JSON.parse(Kc(Nn(t),"utf8"));return es(r.semantic_attribution?.[e.key])}catch{return}}async function sh(e){return(await ts(e)).focused_item}async function ah(e,t){await Ln(e,r=>{r.focused_item=t})}async function ch(e){await Ln(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 Wn=["model","effort","role","topic","version"],pr=new Bn,as=new Bn,hr=new Bn,Vn=[{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:[]}],cs=Object.freeze({max_bytes:1048576,max_lines:4096,network_access:!1,subprocess_access:!1}),Zc=Object.freeze({...cs,max_bytes:4194304}),$n=/^[a-z0-9]+(?:-[a-z0-9]+)*$/u;function ed(e){let t=Te(e).provenance_unavailable_dimensions,r=new Set(["model","version",...Object.keys(e.provenance_environment_keys??{}),...Object.keys(e.provenance_resolvers??{})]);return Object.freeze({contract_version:1,adapter_version:"v1",priority:0,harness:e.harness,descriptor:e,supported_dimensions:Object.freeze([...r].sort()),native_sources:Object.freeze(["environment","argv","mcp_client",...Object.values(e.provenance_resolvers??{}).some(n=>n?.endsWith("session_file"))?["session_file"]:[]]),probe_policy:e.harness==="codex"?Zc:cs,normalization:Object.freeze({model_family:"v1",effort:"v1",preserve_raw:!0}),confidence:"high",waivers:Object.freeze(Object.fromEntries(t.map(n=>[n,"Harness does not expose this dimension."])))})}var ds=Object.freeze(Vn.filter(e=>e.harness!=="ci").map(ed).sort((e,t)=>e.harness.localeCompare(t.harness))),Ue=new Map,nt=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(!$n.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(([r,n])=>[r.trim().toLowerCase().slice(0,64),Se(n)]).filter(([r])=>$n.test(r))),provenance_resolvers:Object.fromEntries(Object.entries(e.provenance_resolvers??{}).slice(0,32).map(([r,n])=>[r.trim().toLowerCase().slice(0,64),n]).filter(r=>typeof r[0]=="string"&&$n.test(r[0])&&(r[1]==="ai_agent_version"||r[1]==="claude_session_file"||r[1]==="codex_session_file"))),provenance_unavailable_dimensions:Se(e.provenance_unavailable_dimensions).map(r=>r.toLowerCase()),argv_markers:Se(e.argv_markers).map(r=>r.toLowerCase()),client_names:Se(e.client_names).map(r=>r.toLowerCase())}}var ls=Vn.map(Te);function td(e,t){return JSON.stringify(e)===JSON.stringify(t)}function _r(e,t){return e.toLowerCase().slice(0,512).split(/[/\\\s:=]+/u).filter(r=>r.length>0).includes(t)||e.trim().toLowerCase()===t}function qn(e=[]){let t=new Map(Vn.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 r=[...t.values(),...ls.filter(o=>o.harness==="ci"),...[...nt.values()].map(o=>o.descriptor),...hr.getStore()?.descriptors??[],...e.map(Te)],n=new Set;for(let o of r){if(n.has(o.harness))throw new Error(`Harness signal descriptor collision for "${o.harness}"`);n.add(o.harness)}return r}function Gn(e,t){for(let r of t??[]){let n=P(e[r]);if(n)return n.slice(0,256)}}function rd(e,t){if(t==="role"){let r=e.slice(0,8).map(n=>n.trim().toLowerCase()).find(n=>["claim","create","update","close","release","review"].includes(n));if(r==="review")return"reviewer";if(r)return"implementer"}}function us(e,t){let r=t==="model"?["--model","--agent-model"]:[`--agent-${t}`],n=e.slice(0,8);for(let o=0;o<n.length;o+=1){let i=n[o].slice(0,512);if(r.includes(i))return P(n[o+1])?.slice(0,256);let s=r.find(a=>i.startsWith(`${a}=`));if(s)return P(i.slice(s.length+1))?.slice(0,256)}}var nd=new Set(["implementation","implementer","investigator","orchestrator","planner","release-operator","reviewer"]);function ze(e,t){if(e!=="role"||t===void 0)return t;let r=t.trim().toLowerCase().replaceAll(/[_\s]+/gu,"-");return nd.has(r)?r:void 0}function Hn(e,t){return P(e?.[t])?.slice(0,256)}var od=1048576,Un=4194304,mr=new Map,ns=Object.freeze({}),zn=new Map,os=Object.freeze({});function is(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:void 0}function id(e){let t;try{t=JSON.parse(e)}catch{return os}let r=is(t);if(!r)return os;let n=[{value:r,depth:0}],o=0,i,s;for(;n.length>0&&o<64;){let a=n.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=is(c);d&&n.push({value:d,depth:a.depth+1})}}return Object.freeze({model:i,version:s})}function fs(e){try{return V.lstatSync(e).isFile()?"available":"missing"}catch(t){return Fe(t)?"missing":"failed"}}function sd(e,t){let r;try{r=V.readdirSync(e,{withFileTypes:!0}).filter(o=>o.isDirectory()).sort((o,i)=>o.name.localeCompare(i.name)).slice(0,512).map(o=>{let i=Be.join(e,o.name,`${t}.jsonl`);return{candidate:i,status:fs(i)}})}catch(o){return{status:Fe(o)?"missing":"failed"}}let n=r.filter(({status:o})=>o==="available").map(({candidate:o})=>o);return n.length===0?{status:r.some(({status:o})=>o==="failed")?"failed":"missing"}:n.length>1?{status:"ambiguous"}:{status:"available",path:n[0]}}function ms(e,t){let r=P(t.CLAUDE_CODE_SESSION_ID);if(!r||!/^[A-Za-z0-9_-]{1,128}$/u.test(r))return{status:"unavailable"};let n=Be.resolve(e.cwd??process.cwd()).replaceAll(/[^A-Za-z0-9-]/gu,"-"),o=Be.join(e.home_dir??ss.homedir(),".claude","projects"),i=Be.join(o,n,`${r}.jsonl`),s=P(e.session_file),a=s&&Be.basename(s)===`${r}.jsonl`?s:void 0;for(let c of[a,i]){if(!c)continue;let d=fs(c);if(d==="available")return{status:d,path:c};if(d==="failed")return{status:d}}return sd(o,r)}function ad(e,t,r){let n=ms(t,r);if(n.status==="available")try{let o=V.openSync(n.path,V.constants.O_RDONLY|V.constants.O_NOFOLLOW);try{let i=V.fstatSync(o),s=`${n.path}\0${i.size}\0${i.mtimeMs}`,a=zn.get(s);if(a)return a[e];let c=Math.min(i.size,od),d=Math.min(c,Math.ceil(c/2)),l=Math.min(c-d,i.size-d),f=Buffer.alloc(d);V.readSync(o,f,0,d,0);let m=Buffer.alloc(l);l>0&&V.readSync(o,m,0,l,i.size-l);let p={},_=i.size<=c?Buffer.concat([f,m]).toString("utf8").split(`
2
+ `):[...f.toString("utf8").split(`
3
+ `).slice(0,4096),...m.toString("utf8").split(`
4
+ `).slice(-4096)];for(let y of _){if(y.length===0||y.length>262144)continue;let S=id(y);if(p.model??=S.model,p.version??=S.version,p.model&&p.version)break}let b=Object.freeze(p);return zn.clear(),zn.set(s,b),b[e]}finally{V.closeSync(o)}}catch{return}}function cd(e,t){let r=0,n=(o,i)=>{if(i>4||r>=512)return;let s;try{s=V.readdirSync(o,{withFileTypes:!0}).sort((a,c)=>c.name.localeCompare(a.name))}catch{return}for(let a of s){if(r+=1,r>512)return;let c=Be.join(o,a.name);if(a.isFile()&&a.name.endsWith(`-${t}.jsonl`))return c;if(a.isDirectory()){let d=n(c,i+1);if(d)return d}}};return n(e,0)}function dd(e){if(e<=Un)return[{offset:0,length:e}];let t=Math.floor(Un/2);return[{offset:e-t,length:t},{offset:0,length:t}]}function ld(e,t){if(t.length===0||t.length>262144)return;let r;try{r=JSON.parse(t)}catch{return}if(typeof r!="object"||r===null||Array.isArray(r))return;let n=r;if(n.type!=="turn_context")return;let o=typeof n.payload=="object"&&n.payload!==null?n.payload:void 0;e.model??=P(o?.model)?.slice(0,256),e.effort??=P(o?.effort)?.slice(0,256)}function ud(e,t){let r={},n=4096;for(let o of dd(t)){let i=Buffer.alloc(o.length);V.readSync(e,i,0,o.length,o.offset);let s=i.toString("utf8").split(`
5
+ `).reverse().slice(0,n);n-=s.length;for(let a of s)if(ld(r,a),r.model&&r.effort)break;if(r.model&&r.effort||n<=0)break}return r}function fd(e,t,r){let n=P(r.CODEX_THREAD_ID);if(!n||!/^[A-Za-z0-9_-]{1,128}$/u.test(n))return;let o=Be.join(t.home_dir??ss.homedir(),".codex","sessions"),i=`${o}\0${n}`,s=mr.get(i);if(s)return s[e];let a=cd(o,n);if(!a){mr.set(i,ns);return}try{let c=V.openSync(a,"r");try{let d=V.fstatSync(c).size,l=ud(c,d);return mr.set(i,l),l[e]}finally{V.closeSync(c)}}catch{mr.set(i,ns);return}}function md(e,t,r,n){let o=hr.getStore();if(!(t.probes_enabled!==!1&&o?.probesEnabled!==!1&&!["0","false","off"].includes(P(r.PM_AGENT_PROBES)?.toLowerCase()??"")))return;let i=n?.provenance_resolvers[e];if(i==="claude_session_file")return ad(e,t,r);if(i==="codex_session_file")return fd(e,t,r);if(i==="ai_agent_version"){let s=P(r.AI_AGENT);return!s||!n||!_r(s,n.harness)?void 0:/(?:^|[@/\s])v?(\d+\.\d+(?:\.\d+)?(?:[-+][A-Za-z0-9.-]+)?)$/u.exec(s)?.[1]?.slice(0,256)}}function _d(e,t,r,n){if(e==="ai_agent_version"){let o=P(n.AI_AGENT);return o!==void 0&&_r(o,t.harness)?"available":"unavailable"}return e==="codex_session_file"?P(n.CODEX_THREAD_ID)!==void 0?"available":"unavailable":ms(r,n).status}function Kn(e){return e||(as.getStore()??{env:process.env,argv:process.argv})}function pd(e,t,r,n){let o=e.environment_keys.some(a=>P(t[a])!==void 0),i=e.argv_markers.some(a=>r.some(c=>{let d=c.replaceAll("\\","/");return _r(d.slice(d.lastIndexOf("/")+1),a)})),s=e.client_names.some(a=>n===a||_r(n,a));return o||i||s}function hd(e,t){if(!t)return;let r;if(e==="topic"&&(r=t.topic),e==="role"&&(r=t.role),!!r)return{value:r,source:"inferred",confidence:t.confidence,rule_version:t.rule_version,evidence:t.evidence}}function yd(e){let t=e.find(([r])=>r!==void 0);return t?.[0]?{value:t[0],source:t[1]}:void 0}function gd(e,t,r,n,o,i){let s=`PM_AGENT_${e.toUpperCase().replaceAll("-","_")}`,a=new Set([...Wn,...Object.keys(n?.provenance_environment_keys??{})]),c,d,l;a.has(e)&&(c=ze(e,P(r[s])?.slice(0,256)),l=ze(e,us(t.argv??[],e)),d=ze(e,rd(t.argv??[],e)));let f={...n?.provenance_environment_keys,model:n?.model_environment_keys},m={...t.client_info?.provenance,model:t.client_info?.model},p=Hn(o?.provenance,e),_=ze(e,Gn(r,f[e])),b=ze(e,Hn(m,e)),y=ze(e,Hn(t.provenance,e)),S=md(e,t,r,n);return yd([[c,"override"],[p,"session"],[l,"argv"],[_,"environment"],[b,"mcp_client"],[y,"host"],[S,"probe"]])??hd(e,i)??(d?{value:d,source:"argv"}:void 0)}function bd(e,t){if(!(!e||!t))return Qc("sha256").update(`pm-agent-instance:v1\0${e}\0${t}`).digest("hex").slice(0,24)}function wd(e,t,r,n,o){let i=Object.keys(r?.provenance_environment_keys??{}),s=new Set([...Wn,...i,...Object.keys(r?.provenance_resolvers??{}),...Object.keys(e.provenance??{}),...Object.keys(e.client_info?.provenance??{}),...Object.keys(n?.provenance??{})]),a={};for(let c of s){let d=gd(c,e,t,r,n,o);d?a[c]=d:r&&(c!=="version"||r.provenance_unavailable_dimensions.includes(c))&&(a[c]=null)}return a}function gh(e){let t=e.map(Te),r=new Map(ls.map(i=>[i.harness,i])),n=new Set;for(let i of t){if(n.has(i.harness)||r.has(i.harness))throw new Error(`Harness signal descriptor collision for "${i.harness}"`);let s=nt.get(i.harness);if(s&&!td(s.descriptor,i))throw new Error(`Harness signal descriptor collision for "${i.harness}"`);n.add(i.harness)}for(let i of t){let s=nt.get(i.harness);nt.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=nt.get(i.harness);!s||s.registrations<=1?nt.delete(i.harness):s.registrations-=1}}}}function vd(e){let t=Te(e.descriptor),r=e.harness.trim().toLowerCase();if(e.contract_version!==1)throw new Error(`Unsupported provenance adapter contract for "${r}": ${e.contract_version}`);if(t.harness!==r)throw new Error(`Provenance adapter harness "${r}" does not match descriptor "${t.harness}".`);let n=P(e.adapter_version)?.slice(0,64);if(!n)throw new Error(`Provenance adapter "${r}" requires a version.`);if(!Number.isSafeInteger(e.priority))throw new Error(`Provenance adapter "${r}" requires an integer priority.`);if(e.probe_policy.network_access!==!1||e.probe_policy.subprocess_access!==!1||e.probe_policy.max_bytes>Un||e.probe_policy.max_lines>4096)throw new Error(`Provenance adapter "${r}" exceeds the bounded local probe policy.`);return Object.freeze({...e,adapter_version:n,harness:r,descriptor:t,supported_dimensions:Object.freeze(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 bh(){let e=new Map(ds.map(t=>[t.harness,t]));for(let{adapter:t}of Ue.values())e.set(t.harness,t);return Object.freeze([...e.values()].sort((t,r)=>t.harness.localeCompare(r.harness)))}function wh(e){let t=e.map(vd),r=new Map(ds.map(i=>[i.harness,i])),n=new Set;for(let i of t){if(n.has(i.harness))throw new Error(`Provenance adapter collision for "${i.harness}".`);let s=r.get(i.harness);if(s&&i.priority<=s.priority)throw new Error(`Provenance adapter override for "${i.harness}" requires priority greater than ${s.priority}.`);let a=Ue.get(i.harness);if(a&&JSON.stringify(a.adapter)!==JSON.stringify(i))throw new Error(`Provenance adapter collision for "${i.harness}".`);n.add(i.harness)}for(let i of t){let s=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 vh(e,t){let r=t.trim().slice(0,256),n=r.toLowerCase();if(e==="model"){let o=/^(gpt-\d+(?:\.\d+)?)/u.exec(n)?.[1];o&&(n=o)}else n=n.replaceAll(/[_\s-]+/gu,""),n={minimal:"low",low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max",ultra:"ultra"}[n]??n;return{raw:r,normalized:n,vocabulary:"v1"}}function Eh(e,t){return as.run(e,t)}function kh(e,t,r={}){let n=e.map(Te);return qn(n),hr.run({descriptors:n,probesEnabled:r.probesEnabled!==!1},t)}function Xn(e){let t=Kn(e),r=t.env??{},n=qn(t.descriptors),o=[...(t.argv??[]).slice(0,3),...t.process_labels??[]].slice(0,64).map(_=>_.slice(0,512)),i=t.client_info?.name.trim().toLowerCase()??"",s=n.find(_=>pd(_,r,o,i)),a=Rn(t,r),c=[Gn(r,s?.session_environment_keys),P(t.client_info?.session)?.slice(0,256)].find(_=>_!==void 0),d=bd(s?.harness,c),l=rs({cwd:t.cwd??process.cwd(),env:r,key:d}),f=wd(t,r,s,a,l),m=f.model,p=[["harness",s?.harness],["model",m?.value],["model_source",m?.source],["session",c],["instance",d],["provenance",Object.keys(f).length>0?f:void 0],["episode",a.episode]];return Object.fromEntries(p.filter(_=>_[1]!==void 0))}function Ed(e){return e==="unavailable"?{status:"unavailable",reason:"harness_unavailable"}:e==="missing"?{status:"unavailable",reason:"resolver_input_missing"}:{status:"failed",reason:"resolver_failed"}}function kd(e,t,r,n,o,i,s){let a=r?.provenance_resolvers[e];if(t.provenance?.[e])return{status:"resolved",...a?{resolver:a}:{},rule_version:"v1"};if(s)return{status:"unavailable",reason:"invalid_value",rule_version:"v1"};if(a){if(!i)return{status:"unavailable",reason:"probes_disabled",resolver:a,rule_version:"v1"};let c=_d(a,r,n,o);return{...Ed(c),resolver:a,rule_version:"v1"}}return{status:r?.provenance_unavailable_dimensions.includes(e)?"unavailable":"not_configured",reason:r?.provenance_unavailable_dimensions.includes(e)?"harness_unavailable":"resolver_not_configured",rule_version:"v1"}}function _s(e){let t=Kn(e),r=Xn(t),n=qn(t.descriptors).find(d=>d.harness===r.harness),o=t.env??{},i=t.probes_enabled!==!1&&hr.getStore()?.probesEnabled!==!1&&!["0","false","off"].includes(P(o.PM_AGENT_PROBES)?.toLowerCase()??""),s=Rn(t,o),a=[o.PM_AGENT_ROLE,s.provenance?.role,Gn(o,n?.provenance_environment_keys.role),t.client_info?.provenance?.role,t.provenance?.role,us(t.argv??[],"role")].some(d=>{let l=P(d)?.slice(0,256);return l!==void 0&&ze("role",l)===void 0}),c=Object.fromEntries(Wn.map(d=>[d,kd(d,r,n,t,o,i,d==="role"&&a)]));return{...r,provenance_outcomes:c}}function Ih(){return process.env.PM_AUTHOR}function Sh(e){e===void 0?delete process.env.PM_AUTHOR:process.env.PM_AUTHOR=e}function Th(e){return Xn(e).harness}function Id(e,t,r){let n=Kn(r),o=Xn(n);if(e!==void 0){let s=P(e);return s?{author:s,source:"asserted",...o}:{author:"unknown",source:"unknown",...o}}if(n.env?.PM_AUTHOR!==void 0){let s=P(n.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 ps(e){let t=pr.getStore();return t?.author===e?t.source:e.startsWith("harness:")?"detected":e==="unknown"?"unknown":"asserted"}function hs(e){let t=pr.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 ys(e){let t=pr.getStore();return t?.author===e&&t.source==="detected"&&t.instance?`${e}#${t.instance}`:e}function gs(e,t){let r=Id(e,t);return pr.enterWith(r),r.author}import{createHash as Sd}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 xh=["sha256","sha512"],Td="sha256",bs="sha256";function We(e){if(e===void 0)return Td;if(e==="sha256"||e==="sha512")return e;throw new TypeError(`unsupported_history_hash_algorithm:${String(e)}`)}function Ce(e,t){return Sd(We(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]="13e158d2-14a0-5c14-a11c-a374b3e6ceac")}catch{}})();var Yn=1,Ah=1;function Dh(e){let t=e.pm_format_version;return typeof t=="number"&&Number.isInteger(t)&&t>=1?t:1}function ws(e){if(!(typeof e!="number"||!Number.isInteger(e)||e<=1))return e}function Cd(e,t=1){return e<t?"outdated":e>t?"ahead":"current"}function Nh(e,t=1){let r=[],n=[];for(let o of e){let i=Cd(o.version,t);i==="outdated"?r.push(o.ref):i==="ahead"&&n.push(o.ref)}return{outdated:r.sort((o,i)=>o.localeCompare(i)),ahead:n.sort((o,i)=>o.localeCompare(i))}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="515840b7-cf86-5d71-8ac1-beac7fd7c8a8")}catch{}})();var Od={"in-progress":"in_progress",cancelled:"canceled"};function yr(e,t){if(t){let o=ji(e,t);if(o)return o}if(typeof e!="string")return;let r=e.trim().toLowerCase();if(!r)return;let n=Od[r]??r;if(Zt.includes(n))return n}function ot(e,t){return yr(e,t)??e}function ge(e,t){return t.terminal_statuses.has(ot(e,t))}import{encode as Hd}from"@toon-format/toon";import{isDeepStrictEqual as Ss}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]="5a40c811-2441-5507-93d2-523f6792e2f1")}catch{}})();var xd=16;function Jn(e){let t=e.trim().replaceAll(/[^A-Za-z0-9]+/g," ").split(/\s+/).filter(o=>o.length>0).map(o=>o.toLowerCase());if(t.length===0)return e;let[r,...n]=t;return`${r}${n.map(o=>`${o.slice(0,1).toUpperCase()}${o.slice(1)}`).join("")}`}function Rd(e){return[...new Set([$i(e),Jn(e.key),Jn(e.cli_flag),...e.cli_aliases.map(t=>Jn(t))])]}function ks(e,t){for(let r of Rd(t)){if(!Object.hasOwn(e,r))continue;let n=e[r];if(n!==void 0)return n}}function Is(e){return Array.isArray(e)?e.flatMap(t=>Is(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 vs(e,t){if(typeof e=="boolean")return e;if(typeof e=="number"){if(e===1)return!0;if(e===0)return!1}if(typeof e=="string"){let r=e.trim().toLowerCase();if(r==="true"||r==="1"||r==="yes")return!0;if(r==="false"||r==="0"||r==="no")return!1}throw new g(`${t} must be one of true|false|1|0|yes|no`,w.USAGE)}function Es(e,t){if(typeof e=="number"&&Number.isFinite(e))return e;let r=typeof e=="string"?e.trim():String(e),n=Number(r);if(!Number.isFinite(n))throw new g(`${t} must be a number`,w.USAGE);return n}function Ad(e,t,r){let n=typeof e=="string"?(()=>{try{return JSON.parse(e)}catch{return}})():e;if(r==="array"&&Array.isArray(n)||r==="object"&&typeof n=="object"&&n!==null&&!Array.isArray(n))return n;throw new g(`${t} must be valid JSON ${r}`,w.USAGE)}function Dd(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 Nd(e,t,r){if(t.const!==void 0&&D(e)!==D(t.const))return`${r} must equal ${D(t.const)}`;if(t.enum!==void 0&&!t.enum.some(n=>D(n)===D(e)))return`${r} must be one of ${t.enum.map(n=>D(n)).join("|")}`;if(!Dd(e,t.type))return`${r} must match configured type ${String(t.type)}`;if(typeof e=="string"){if(t.min_length!==void 0&&e.length<t.min_length)return`${r} must contain at least ${t.min_length} characters`;if(t.format==="date-time"&&!Ki(e))return`${r} must be an RFC 3339 date-time`}}function Ld(e,t,r,n){if(Array.isArray(e)){if(t.min_items!==void 0&&e.length<t.min_items)return`${r} must contain at least ${t.min_items} items`;if(t.items)for(let[o,i]of e.entries()){let s=gr(i,t.items,`${r}[${o}]`,n+1);if(s)return s}}}function Pd(e,t,r,n){if(typeof e!="object"||e===null||Array.isArray(e))return;let o=e;for(let i of t.required??[])if(!Object.hasOwn(o,i))return`${r}.${i} is required`;for(let[i,s]of Object.entries(o)){let a=t.properties?.[i];if(!a){if(t.additional_properties===!1)return`${r}.${i} is not allowed`;continue}let c=gr(s,a,`${r}.${i}`,n+1);if(c)return c}}function gr(e,t,r,n=0){if(n>xd)return`${r} value schema exceeds maximum depth`;let o=Nd(e,t,r);if(o)return o;let i=Ld(e,t,r,n);if(i)return i;let s=Pd(e,t,r,n);if(s)return s;if(!t.one_of)return;let a=0;for(let c of t.one_of)if(gr(e,c,r,n+1)===void 0&&(a+=1,a>1))break;return a===1?void 0:`${r} must match exactly one configured schema variant`}function Ve(e,t,r){if(!e.value_schema||t===void 0)return t;let n=gr(t,e.value_schema,r);if(n)throw new g(n,w.USAGE);return t}function xt(e,t,r){let n=r??`--${e.cli_flag}`;if(e.type==="array"||e.type==="object"){let i=Array.isArray(t)?t[t.length-1]:t;return i===void 0?void 0:Ve(e,Ad(i,n,e.type),n)}if(e.repeatable||e.type==="string_array"){let i=Is(t);return e.type==="number"?Ve(e,i.map(s=>Es(s,n)),n):e.type==="boolean"?Ve(e,i.map(s=>vs(s,n)),n):Ve(e,i,n)}let o=Array.isArray(t)?t[t.length-1]:t;if(o!==void 0)return e.type==="number"?Ve(e,Es(o,n),n):e.type==="boolean"?Ve(e,vs(o,n),n):Ve(e,typeof o=="string"?o:String(o),n)}function Md(e,t){return!e.required&&!e.required_on_create?!1:e.required_types.length===0?!0:t?e.required_types.map(r=>r.toLowerCase()).includes(t.trim().toLowerCase()):!1}function Bh(e,t,r){let n={},o=[];for(let i of t.command_to_fields.get("create")??[]){let s=ks(e,i);if(s===void 0){Md(i,r)&&o.push(`--${i.cli_flag}`);continue}n[i.metadata_key]=xt(i,s)}return{values:n,missing_required_flags:[...new Set(o)].sort((i,s)=>i.localeCompare(s))}}function Wh(e,t,r=["update"]){let n={},o=(r??["update"]).flatMap(s=>t.command_to_fields.get(s)??[]),i=new Set;for(let s of o){let a=ks(e,s);a!==void 0&&(i.has(s.metadata_key)||(i.add(s.metadata_key),n[s.metadata_key]=xt(s,a)))}return n}import{decode as jd}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 Qn(e){return{value:jd(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 Fd=/^\s*(<<<<<<<|=======|>>>>>>>)(?:\s.*)?$/;function $d(e){if(e.length===0)return[];let t=e.split(/\r?\n/),r=[];for(let n=0;n<t.length;n+=1){let o=t[n]??"",i=o.match(Fd);if(!i)continue;let s=i[1];r.push({line:n+1,marker:s,text:o})}return r}function br(e){return $d(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]="e44f5fd8-80d0-57b0-bb1d-ab2e69a99e7e")}catch{}})();var ro=new Set(["schema","tracker","auto","none"]),Os=new Set(["source","isolated","snapshot"]),zd=new Set(["legacy","local_mutation","local_source_ref","acknowledged","invalid_provenance","foreign_source_ref"]),Ud=new Set(["passed","failed","stopped","canceled"]),Bd=new Set(wi);function at(e){return e.replaceAll("\\","/")}function xs(e){for(let t of e)if(t!==0)return t;return 0}function vr(e){for(let[t,r]of Object.entries(e))r===void 0&&delete e[t]}var Rs=["id","title","description","created_at","updated_at"],Wd=new Set(ve);function As(e){if(e?.schema)return{statusRegistry:cr(e.schema),fieldRegistry:Fi(e.schema),unknownFieldPolicy:e.schema.unknown_field_policy??"allow",extensionFieldNames:new Set(e.extensionFieldNames??[]),onWarning:e.onWarning}}function Vd(e,t){return e.required?e.required_types.length===0?!0:e.required_types.map(r=>r.toLowerCase()).includes(t.trim().toLowerCase()):!1}function Oe(e){let t=e.match(/^([a-z_][\w.]*)\s/u)?.[1];throw new g(`Invalid item metadata: ${e}`,w.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 Dt(e,t){throw new g(t,w.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 Ds(e){let t=new Set(Wd);for(let r of e.fieldRegistry?.definitions??[])t.add(r.metadata_key);for(let r of e.extensionFieldNames)t.add(r);return t}function I(e,t){e||Oe(t)}function Nt(e,t){return(typeof e!="object"||e===null||Array.isArray(e))&&Oe(t),e}function Zn(e,t){let r=e[t];I(typeof r=="string",`${t} must be a string`),I(pe(r),`${t} must be a valid ISO timestamp`)}function Ts(e,t,r){let n=e[t];n!==void 0&&I(typeof n=="number"&&Number.isInteger(n)&&n>=1,`${r} must be an integer >= 1`)}function no(e,t,r){let n=e[t];n!==void 0&&(I(typeof n=="string",`${r} must be a string`),I(pe(n),`${r} must be a valid ISO timestamp`))}function qd(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 r=t.trim().toLowerCase();I(nr.includes(r),`event.recurrence.by_weekday entries must be one of: ${nr.join(", ")}`)}}}function Gd(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 Kd(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 Xd(e){let t=Nt(e,"event.recurrence must be an object");I(typeof t.freq=="string","event.recurrence.freq must be a string");let r=t.freq.trim().toLowerCase();I(rr.includes(r),`event.recurrence.freq must be one of: ${rr.join(", ")}`),Ts(t,"interval","event.recurrence.interval"),Ts(t,"count","event.recurrence.count"),no(t,"until","event.recurrence.until"),qd(t.by_weekday),Gd(t.by_month_day),Kd(t.exdates)}function Yd(e){for(let n of Rs)I(typeof e[n]=="string",`${n} 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 r=e.pm_format_version;return r!==void 0&&I(typeof r=="number"&&Number.isInteger(r)&&r>=Yn,`pm_format_version must be an integer >= ${Yn}`),t}function Jd(e,t){let r=e.status;I(typeof r=="string"&&r.trim().length>0,"status must be a non-empty string");let n=t?.statusRegistry,o=yr(r,n),i=n?n.definitions.map(s=>s.id):[...Zt];I(o!==void 0,`status must be one of: ${i.join(", ")}`)}function Qd(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 r=e.tags;I(Array.isArray(r),"tags must be an array");for(let n of r)I(typeof n=="string","tags entries must be strings")}function Zd(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 r=t.trim().toLowerCase(),n=r==="med"||tr.includes(r);I(n,`confidence string value must be one of: ${[...tr,"med"].join(", ")}`);return}I(!1,"confidence must be a number or string")}}function el(e){let t=e.severity;if(t===void 0)return;typeof t!="string"&&Oe("severity must be a string");let r=t.trim().toLowerCase(),n=r==="med"||er.includes(r);I(n,`severity value must be one of: ${[...er,"med"].join(", ")}`)}function tl(e){e.regression!==void 0&&typeof e.regression!="boolean"&&Oe("regression must be a boolean")}function rl(e){let t=e.reminders;if(t!==void 0){I(Array.isArray(t),"reminders must be an array");for(let r of t){let n=Nt(r,"reminders entries must be objects");I(typeof n.at=="string","reminder.at must be a string"),I(pe(n.at),"reminder.at must be a valid ISO timestamp"),I(typeof n.text=="string","reminder.text must be a string"),I(n.text.trim().length>0,"reminder.text must not be empty")}}}function nl(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&&(Xd(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 il(e){let t=Nt(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")),nl(t),t.all_day!==void 0&&I(typeof t.all_day=="boolean","event.all_day must be a boolean"),ol(t)}function sl(e){let t=e.events;if(t!==void 0){I(Array.isArray(t),"events must be an array");for(let r of t)il(r)}}function al(e){for(let t of["source_type","source_owner","design","external_ref"]){let r=e[t];r!==void 0&&I(typeof r=="string",`${t} must be a string`)}}function cl(e){let t=e.type_options;if(t===void 0)return;let r=Nt(t,"type_options must be an object");for(let[n,o]of Object.entries(r))I(n.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 dl(e,t,r){if(r?.fieldRegistry)for(let n of r.fieldRegistry.definitions){let o=e[n.metadata_key];if(o===void 0){Vd(n,t)&&Oe(`missing required schema field: ${n.metadata_key}`);continue}try{e[n.metadata_key]=xt(n,o,`metadata field "${n.metadata_key}"`)}catch(i){Oe(String(i?.message).replace(/^Invalid\s+/u,""))}}}function ll(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let r=Ds(t),n=Object.keys(e).filter(o=>!r.has(o)).sort((o,i)=>o.localeCompare(i));n.length!==0&&(t.unknownFieldPolicy==="reject"?Oe(`unknown schema fields are not allowed: ${n.join(", ")}`):t.onWarning?.(`item_unknown_schema_fields:${n.join(",")}`))}function oo(e,t){let r=Nt(e,"item metadata must be an object"),n=Yd(r);Jd(r,t),Qd(r),Zd(r),el(r),tl(r),Zn(r,"created_at"),Zn(r,"updated_at"),r.deadline!==void 0&&Zn(r,"deadline"),rl(r),sl(r),no(r,"closed_at","closed_at"),no(r,"completed_at","completed_at"),al(r),cl(r),dl(r,n,t),ll(r,t)}function ul(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,r)=>{let n=he(t.created_at,r.created_at);if(n!==0)return n;let o=t.id.localeCompare(r.id);if(o!==0)return o;let i=t.kind.localeCompare(r.kind);return i!==0?i:(t.source_kind??"").localeCompare(r.source_kind??"")})}function eo(e){if(!(!e||e.length===0))return[...e].sort((t,r)=>{let n=he(t.created_at,r.created_at);if(n!==0)return n;let o=t.text.localeCompare(r.text);return o!==0?o:t.author.localeCompare(r.author)})}function fl(e){if(!e||e.length===0)return;let t=[...e].map(r=>({at:r.at,text:r.text.trim()})).filter(r=>r.text.length>0).sort((r,n)=>{let o=he(r.at,n.at);return o!==0?o:r.text.localeCompare(n.text)});return t.length===0?void 0:t}function ml(e){if(!e)return;let t=e.freq.trim().toLowerCase();if(!rr.includes(t))return;let r=Array.from(new Set((e.by_weekday??[]).map(s=>s.trim().toLowerCase()).filter(s=>nr.includes(s)))).sort((s,a)=>wn(s)-wn(a)),n=Array.from(new Set((e.by_month_day??[]).filter(s=>Number.isInteger(s)&&s>=1&&s<=31).map(s=>s))).sort((s,a)=>s-a),o=Array.from(new Set((e.exdates??[]).map(s=>s.trim()).filter(s=>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:r.length>0?r:void 0,by_month_day:n.length>0?n:void 0,exdates:o.length>0?o:void 0};for(let[s,a]of Object.entries(i))a===void 0&&delete i[s];return i}function _l(e){return!Array.isArray(e)||e.length===0?void 0:[...e].map(pl).sort(hl)}function pl(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:ml(e.recurrence)};return vr(t),t}function hl(e,t){return xs([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 yl(e){if(!(!e||e.length===0))return e.map(t=>({path:at(t.path),scope:t.scope,note:t.note?.trim()||void 0}))}function gl(e){if(!e||e.length===0)return;let t=e.map(El).filter(r=>r.run_id.length>0&&r.started_at.length>0&&r.finished_at.length>0&&r.recorded_at.length>0).sort((r,n)=>xs([he(r.recorded_at,n.recorded_at),r.run_id.localeCompare(n.run_id),r.kind.localeCompare(n.kind)]));return t.length>0?t:void 0}function it(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 to(e){return typeof e=="string"?e:""}function wl(e){if(!Array.isArray(e))return;let t=e.filter(n=>n!==null&&typeof n=="object"&&typeof n.name=="string"&&n.name.trim().length>0&&typeof n.value=="number"&&Number.isFinite(n.value)&&typeof n.recorded_at=="string"&&n.recorded_at.trim().length>0).map(n=>({name:n.name.trim(),value:n.value,unit:typeof n.unit=="string"&&n.unit.trim()||void 0,threshold:typeof n.threshold=="number"&&Number.isFinite(n.threshold)?n.threshold:void 0,recorded_at:n.recorded_at.trim()})),r=[...new Map(t.map(n=>[n.name,n])).values()].sort((n,o)=>n.name.localeCompare(o.name)).slice(0,32);return r.length>0?r:void 0}function wr(e,t){return typeof e=="string"&&t.has(e)?e:void 0}function vl(e){if(!Array.isArray(e))return;let t=e.filter(r=>r&&typeof r.command=="string"&&r.command.trim().length>0).slice(0,32).map(r=>({command:r.command.trim(),requested_pm_context_mode:wr(r.requested_pm_context_mode,ro),pm_context_mode:wr(r.pm_context_mode,ro),workspace_context_mode:wr(r.workspace_context_mode,Os),trust_reason:wr(r.trust_reason,zd)}));return t.length>0?t:void 0}function El(e){let t=typeof e.run_id=="string"?e.run_id.trim():"",r=e.kind==="test"||e.kind==="test-all"?e.kind:"test",n=Ud.has(e.status)?e.status:"failed",o={run_id:t,kind:r,status:n,started_at:to(e.started_at),finished_at:to(e.finished_at),recorded_at:to(e.recorded_at),attempt:bl(e.attempt),resumed_from:e.resumed_from?.trim()||void 0,passed:it(e.passed)??0,failed:it(e.failed)??0,skipped:it(e.skipped)??0,items:it(e.items),linked_tests:it(e.linked_tests),fail_on_skipped_triggered:e.fail_on_skipped_triggered===!0?!0:void 0,measurements:wl(e.measurements),executions:vl(e.executions)};return vr(o),o}function kl(e){if(!(!Array.isArray(e)||e.length===0))return e.map(Ol)}function Rt(e){if(!Array.isArray(e))return;let t=[...new Set(e.filter(r=>typeof r=="string").map(r=>r.trim()).filter(r=>r.length>0))].sort((r,n)=>r.localeCompare(n));return t.length>0?t:void 0}function so(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function ao(e){return e==="__proto__"||e==="constructor"||e==="prototype"}function Cs(e){if(!so(e))return;let t=Object.entries(e).map(([r,n])=>[r.trim(),String(n).trim()]).filter(([r,n])=>r.length>0&&!ao(r)&&n.length>0).sort(([r],[n])=>r.localeCompare(n));return t.length>0?Object.fromEntries(t):void 0}function Il(e){if(!so(e))return;let t=Object.entries(e).map(([r,n])=>[r.trim(),Number(n)]).filter(([r,n])=>r.length>0&&!ao(r)&&Number.isFinite(n)).sort(([r],[n])=>r.localeCompare(n));return t.length>0?Object.fromEntries(t):void 0}function Sl(e){let t=e?.trim().toLowerCase();if(!(!t||!ro.has(t)))return t}function Tl(e){let t=e?.trim().toLowerCase();if(!(!t||!Os.has(t)))return t}function Cl(e,t){if(t===!0)return{provenance_invalid:!0};if(e===void 0)return{};if(!so(e))return{provenance_invalid:!0};let r=E(e.author),n=E(e.created_at),o=e.source_kind;return!r||!n||!pe(n)||o!=="local_mutation"&&o!=="merge_union"?{provenance_invalid:!0}:{provenance:{author:r,created_at:n,source_kind:o,source_ref:E(e.source_ref)}}}function Ol(e){let t={command:e.command?.trim()||void 0,path:e.path?at(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:Sl(e.pm_context_mode),workspace_context_mode:Tl(e.workspace_context_mode),...Cl(e.provenance,e.provenance_invalid),env_set:Cs(e.env_set),env_clear:Rt(e.env_clear),shared_host_safe:e.shared_host_safe===!0?!0:void 0,assert_stdout_contains:Rt(e.assert_stdout_contains),assert_stdout_regex:Rt(e.assert_stdout_regex),assert_stderr_contains:Rt(e.assert_stderr_contains),assert_stderr_regex:Rt(e.assert_stderr_regex),assert_stdout_min_lines:it(e.assert_stdout_min_lines),assert_json_field_equals:Cs(e.assert_json_field_equals),assert_json_field_gte:Il(e.assert_json_field_gte),note:e.note?.trim()||void 0};return vr(t),t}function xl(e){if(!(!e||e.length===0))return[...e].map(t=>({path:at(t.path),scope:t.scope,note:t.note?.trim()||void 0})).sort((t,r)=>{let n=t.scope.localeCompare(r.scope);if(n!==0)return n;let o=t.path.localeCompare(r.path);return o!==0?o:(t.note??"").localeCompare(r.note??"")})}function E(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function Rl(e){if(!Array.isArray(e))return;let t=[];for(let r of e){if(r===null||typeof r!="object")continue;let n=r,o=E(n.id),i=E(n.kind);if(!o||!i)continue;let s={id:o,kind:i},a=E(n.note);a&&(s.note=a),n.required_before_step===!0&&(s.required_before_step=!0),t.push(s)}return t.length>0?t:void 0}function Al(e){if(!Array.isArray(e))return;let t=[];for(let r of e){if(r===null||typeof r!="object")continue;let n=r,o=E(n.path);if(!o)continue;let i={path:at(o)};(n.scope==="project"||n.scope==="global")&&(i.scope=n.scope);let s=E(n.note);s&&(i.note=s),t.push(i)}return t.length>0?t:void 0}function Dl(e){if(!Array.isArray(e))return;let t=[];for(let r of e){if(r===null||typeof r!="object")continue;let n=r,o=E(n.command),i=E(n.path);if(!o&&!i)continue;let s={};o&&(s.command=o),i&&(s.path=at(i));let a=E(n.note);a&&(s.note=a),t.push(s)}return t.length>0?t:void 0}function Nl(e){if(!Array.isArray(e))return;let t=[];for(let r of e){if(r===null||typeof r!="object")continue;let n=r,o=E(n.path);if(!o)continue;let i={path:at(o)};(n.scope==="project"||n.scope==="global")&&(i.scope=n.scope);let s=E(n.note);s&&(i.note=s),t.push(i)}return t.length>0?t:void 0}function Ll(e){if(e===null||typeof e!="object")return;let t=e,r=E(t.id),n=E(t.title),o=E(t.status),i=o&&Bd.has(o)?o:void 0,s=Ti(t.order)??Number.NaN,a=typeof t.created_at=="string"?t.created_at:"",c=typeof t.updated_at=="string"?t.updated_at:"";if(!r||!n||!i||!Number.isFinite(s)||!a||!c)return;let d={id:r,order:s,title:n,status:i,created_at:a,updated_at:c};return Pl(d,t),d}function Pl(e,t){let r=[["body","body"],["owner","owner"],["evidence","evidence"],["blocked_reason","blocked_reason"],["superseded_by","superseded_by"]];for(let[i,s]of r){let a=E(t[s]);a&&(e[i]=a)}let n=typeof t.completed_at=="string"?t.completed_at:void 0;n&&n.length>0&&(e.completed_at=n);let o=[["linked_items","linked_items",Rl],["files","files",Al],["tests","tests",Dl],["docs","docs",Nl]];for(let[i,s,a]of o){let c=a(t[s]);c&&(e[i]=c)}}function Ml(e){if(!Array.isArray(e))return;let t=e.flatMap(r=>{let n=Ll(r);return n?[n]:[]});return t.sort((r,n)=>r.order-n.order),t.length>0?t:void 0}function jl(e){if(!Array.isArray(e))return;let t=[];for(let r of e){if(r===null||typeof r!="object")continue;let n=r,o=typeof n.ts=="string"?n.ts:"",i=typeof n.author=="string"?n.author:"",s=E(n.decision);if(!o||!i||!s)continue;let a={ts:o,author:i,decision:s},c=E(n.rationale);c&&(a.rationale=c);let d=E(n.evidence);d&&(a.evidence=d);let l=E(n.step_id);l&&(a.step_id=l),t.push(a)}return t.length>0?t:void 0}function Fl(e){if(!Array.isArray(e))return;let t=[];for(let r of e){if(r===null||typeof r!="object")continue;let n=r,o=typeof n.ts=="string"?n.ts:"",i=typeof n.author=="string"?n.author:"",s=E(n.text);if(!o||!i||!s)continue;let a={ts:o,author:i,text:s},c=E(n.step_id);c&&(a.step_id=c),t.push(a)}return t.length>0?t:void 0}function $l(e){if(!Array.isArray(e))return;let t=[];for(let r of e){if(r===null||typeof r!="object")continue;let n=r,o=E(n.text);if(!o)continue;let i={text:o},s=E(n.command);s&&(i.command=s);let a=E(n.expected);a&&(i.expected=a),t.push(i)}return t.length>0?t:void 0}function Hl(e){if(!e)return;let t=Object.entries(e).map(([r,n])=>[r.trim(),n.trim()]).filter(([r,n])=>r.length>0&&n.length>0).sort((r,n)=>r[0].localeCompare(n[0]));if(t.length!==0)return Object.fromEntries(t)}function st(e){let t=0;for(;t<e.length&&e[t]===`
6
+ `;)t+=1;return e.slice(t).trimEnd()}function zl(e){if(e===void 0)return;if(typeof e=="number")return e;let t=e.trim().toLowerCase();if(t==="med")return"medium";if(tr.includes(t))return t}function Ul(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(t==="med")return"medium";if(er.includes(t))return t}function At(e){return e||void 0}function Bl(e,t){let r=e,n=t;for(let[o,i]of Object.entries(n))ao(o)||Object.prototype.hasOwnProperty.call(r,o)||i===void 0||(r[o]=i)}function Wl(e,t){if(!t?.fieldRegistry)return;let r=e;for(let n of t.fieldRegistry.definitions){let o=r[n.metadata_key];o!==void 0&&(r[n.metadata_key]=xt(n,o,`metadata field "${n.metadata_key}"`))}}function Vl(e,t){if(!t||t.unknownFieldPolicy==="allow")return;let r=Ds(t),n=Object.keys(e).filter(o=>!r.has(o)).sort((o,i)=>o.localeCompare(i));n.length>0&&t.unknownFieldPolicy==="reject"&&Oe(`unknown schema fields are not allowed: ${n.join(", ")}`),n.length>0&&t.onWarning?.(`item_unknown_schema_fields:${n.join(",")}`)}function Er(e,t={}){let r=As(t),n=yr(e.status,r?.statusRegistry)??e.status,o=Array.from(new Set((Array.isArray(e.tags)?e.tags:[]).filter(s=>typeof s=="string").map(s=>s.trim().toLowerCase()).filter(Boolean))).sort((s,a)=>s.localeCompare(a)),i={id:e.id,title:e.title,description:e.description,type:e.type,pm_format_version:ws(e.pm_format_version),source_type:E(e.source_type),type_options:Hl(e.type_options),status:n,priority:e.priority,tags:o,created_at:e.created_at,updated_at:e.updated_at,dependencies:ul(e.dependencies),comments:eo(e.comments),notes:eo(e.notes),learnings:eo(e.learnings),files:yl(e.files),tests:kl(e.tests),test_runs:gl(e.test_runs),docs:xl(e.docs),deadline:At(e.deadline),reminders:fl(e.reminders),events:_l(e.events),closed_at:At(e.closed_at),completed_at:At(e.completed_at),assignee:E(e.assignee),claim_principal:E(e.claim_principal),source_owner:E(e.source_owner),author:At(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:E(e.definition_of_ready),order:e.order,goal:E(e.goal),objective:E(e.objective),value:E(e.value),impact:E(e.impact),outcome:E(e.outcome),why_now:E(e.why_now),parent:E(e.parent),reviewer:E(e.reviewer),risk:e.risk??void 0,confidence:zl(e.confidence),sprint:E(e.sprint),release:E(e.release),blocked_by:E(e.blocked_by),blocked_reason:E(e.blocked_reason),unblock_note:E(e.unblock_note),reporter:E(e.reporter),severity:Ul(e.severity),environment:E(e.environment),repro_steps:E(e.repro_steps),resolution:E(e.resolution),expected_result:E(e.expected_result),actual_result:E(e.actual_result),affected_version:E(e.affected_version),fixed_version:E(e.fixed_version),component:E(e.component),regression:e.regression,customer_impact:E(e.customer_impact),close_reason:At(e.close_reason),plan_mode:E(e.plan_mode),plan_scope:E(e.plan_scope),plan_harness:E(e.plan_harness),plan_resume_context:E(e.plan_resume_context),plan_steps:Ml(e.plan_steps),plan_decisions:jl(e.plan_decisions),plan_discoveries:Fl(e.plan_discoveries),plan_validation:$l(e.plan_validation)};return Bl(i,e),Wl(i,r),Vl(i,r),vr(i),i}function Ns(e){return T(e,ve)}function ql(e){let t=0,r=!1,n=!1;for(let o=0;o<e.length;o+=1){let i=e[o];if(r){if(n){n=!1;continue}if(i==="\\"){n=!0;continue}i==='"'&&(r=!1);continue}if(i==='"'){r=!0;continue}if(i==="{"){t+=1;continue}if(i==="}"&&(t-=1,t===0))return o}return-1}function Gl(e){if(!e.startsWith("{"))return{frontMatter:"",body:e};let t=ql(e);if(t<0)return{frontMatter:"",body:e};let r=e.slice(0,t+1),n=e.slice(t+1).replace(/^\r?\n+/,"");return{frontMatter:r,body:n}}function Kl(e){let t=e.charCodeAt(0)===65279?e.slice(1):e,r=t.match(/^[ \t]*---[ \t]*(?:\r?\n|$)/);if(!r)return{content:t,stripped:!1};let n=r[0].length;for(;n<t.length;){let o=t.indexOf(`
7
+ `,n),i=o===-1?t.length:o,s=t.slice(n,i).replace(/\r$/,""),a=o===-1?i:i+1;if(s.trim()==="---")return{content:t.slice(a).replace(/^\s+/,""),stripped:!0};n=a}return{content:t,stripped:!1}}function io(e,t){return Er(e,{...t,onWarning:void 0})}function Xl(e,t,r={}){let n=Kl(e);n.stripped&&r.onWarning?.("json_markdown_leading_yaml_frontmatter_ignored");let{frontMatter:o,body:i}=Gl(n.content);o||(e.trimStart().startsWith("{")&&Dt("json_markdown","JSON front matter is not valid JSON"),Dt("json_markdown","JSON Markdown item document is missing JSON front matter"));let s;try{s=JSON.parse(o)}catch{Dt("json_markdown","JSON front matter is not valid JSON")}return oo(s,t),{metadata:io(s,r),body:st(i)}}function Yl(e,t,r={}){let n;try{n=Qn(e).value}catch{Dt("toon","TOON item document is not valid TOON")}I(typeof n=="object"&&n!==null&&!Array.isArray(n),"TOON item document must be an object");let o=n;if(!Rs.some(a=>Object.prototype.hasOwnProperty.call(o,a))&&!Object.prototype.hasOwnProperty.call(o,"front_matter")&&Dt("toon","TOON input does not have the shape of an item document"),Object.prototype.hasOwnProperty.call(o,"front_matter"))return oo(o.front_matter,t),I(o.body===void 0||typeof o.body=="string","TOON item document body must be a string"),{metadata:io(o.front_matter,r),body:st(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"),oo(s,t),{metadata:io(s,r),body:st(typeof i=="string"?i:"")}}function Jl(e,t={}){let r=Er(e.metadata,t),n=Ns(r),o=JSON.stringify(n,null,2),i=st(e.body??"");return i?`${o}
8
+
9
+ ${i}
10
+ `:`${o}
11
+ `}function Ql(e,t={}){let r=Er(e.metadata,t),n=Ns(r),o=st(e.body??""),i={...n,body:o},s=JSON.parse(JSON.stringify(i)),a=Hd(s),c;try{c=Qn(a).value}catch(d){throw new g("Refusing to persist a TOON item document that the configured decoder cannot read back.",w.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(!Ss(c,s)){let d=typeof c=="object"&&c!==null&&!Array.isArray(c)?c:{},l=Object.keys(s).find(f=>!Ss(s[f],d[f]))??"document";throw new g(`Refusing to persist a lossy TOON item document; round-trip mismatch at field "${l}".`,w.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 kr(e,t={}){let r=br(e);if(r)throw new g(`Merge conflict markers detected in item document at line ${r.line} (${r.marker}). Resolve <<<<<<< ======= >>>>>>> markers and retry.`,w.GENERIC_FAILURE,{code:"merge_conflict_markers_detected",reason:"merge_conflict",required:"Resolve merge-conflict markers in the item file before parsing or mutation commands.",why:"Partially merged documents can corrupt item metadata and history integrity.",examples:["git status","git add <resolved-file> && git commit"],nextSteps:["Resolve conflicts, save the file, then rerun the pm command."]});let n=t.format??"toon",o=As(t);return n==="toon"?Yl(e,o,t):Xl(e,o,t)}function Ls(e,t={}){return(t.format??"toon")==="toon"?Ql(e,t):Jl(e,t)}function ne(e,t={}){return{metadata:Er(e.metadata,t),body:st(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 Zl(e,t){let r=await Ee(e);if(r===null)return{raw:r,entries:[]};if(await ke({path:e,scope:"project"}),r.trim()==="")return{raw:r,entries:[]};let n=br(r);if(n)throw new g(`History for ${t} contains merge conflict markers at line ${n.line} (${n.marker}). Resolve <<<<<<< ======= >>>>>>> markers and retry.`,w.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 r.split(/\r?\n/).entries()){let a=s.trim();if(a)try{o.push(JSON.parse(a))}catch{throw new g(`History for ${t} contains invalid JSON at line ${i+1}. Repair or restore the history stream and retry.`,w.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:r,entries:o}}async function be(e,t){return(await Zl(e,t)).entries}import Eo 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 Ps(e){let t=[],r=e[0]?.op==="history_compact_baseline",n=r?1:void 0,o=!1;for(let[i,s]of e.entries())s.op==="delete"&&(o=!0),s.op==="create"&&(n!==void 0&&t.push({prior_genesis_index:n,repeated_create_index:i+1,sequence:o?"delete_then_create":r?"checkpoint_then_create":"multiple_creates"}),n??=i+1,o=!1);return t}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="82c79093-2a40-5b4c-8d41-637b0ae03c4f")}catch{}})();import ea from"fast-json-patch";import Ys from"node:fs/promises";import Ru from"node:path";import j from"node:fs/promises";import z from"node:path";import{randomUUID as js}from"node:crypto";import{createRequire as su}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]="7d6d435b-b83a-53df-80c5-211437214161")}catch{}})();var eu=["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","update_audit","update_ownership_bypass"],tu=["append","cancel","claim","close","comment_add","create","learning_add","note_add","reopen"],ru=new Set(eu),nu=new Set(tu),ou=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 iu(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 ct(e){return e.event_class==="substantive"||e.event_class==="maintenance"?e.event_class:ru.has(e.op)?"maintenance":nu.has(e.op)||e.op!=="update"?"substantive":Array.isArray(e.patch)&&e.patch.length>0&&e.patch.every(t=>{let r=iu(t);return r!==void 0&&ou.has(r)})?"maintenance":"substantive"}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="a70d2ff9-9664-5cad-9657-ab9c54422bc2")}catch{}})();var au="history-event-index.sqlite",uo="5",cu=8,du="history-event-index",fo=300,Fs=3e4,lu="history-event-index-invalidation",uu="history-event-index-invalidations",fu=fo*2*1e3,Cr=Symbol("history-index-lock-contended"),qe=new Map;function Pt(e){return z.join(e,"runtime",au)}function xr(e){return z.join(e,"runtime",uu)}async function mu(e){let t=await j.readdir(xr(e)).catch(r=>{if(re(r))return[];throw r});return{pending:t.filter(r=>r.endsWith(".pending")).sort(),committed:t.filter(r=>r.endsWith(".committed")).sort()}}async function lo(e){let t=await mu(e);return{pending:(await Promise.all(t.pending.map(async r=>{let n=/^(\d+)-(unknown|\d+)-(\d+)-.+\.pending$/u.exec(r);if(n!==null){let o=n[2];if(await Yi({pid:Number(n[1]),...o==="unknown"?{}:{process_start_identity:o}},Math.max(0,Date.now()-Number(n[3])),fu))return r}return await j.rm(z.join(xr(e),r),{force:!0}),null}))).filter(r=>r!==null),committed:t.committed}}async function Lt(e,t){let r=await W(e,lu,fo,`history-event-index-invalidation:${process.pid}`,!1,!1,Fs);try{return await t()}finally{await r()}}async function _u(e){let t=xr(e);await j.mkdir(t,{recursive:!0});let r=js(),n=await Xi(),o=z.join(t,`${n.pid}-${n.process_start_identity??"unknown"}-${Date.now()}-${r}.pending`);return await j.writeFile(o,`pending
13
+ `,{flag:"wx"}),{pendingPath:o,committedPath:z.join(t,`${r}.committed`)}}function pu(e,t){return e.length===t.length&&e.every((r,n)=>r===t[n])}async function Ir(e){try{await j.rm(Pt(e),{force:!0})}catch{}}async function Rr(e,t){let r=await W(e,du,fo,`history-event-index:${process.pid}`,!1,!1,Fs);try{return await t()}finally{await r()}}async function $s(e){let t=z.join(e,"history"),r=await j.readdir(t,{withFileTypes:!0}).catch(s=>{if(typeof s=="object"&&s!==null&&"code"in s&&s.code==="ENOENT")return[];throw s}),n=qe.get(e)??{streams:new Map,ordered_events:[]},o=new Set,i=!qe.has(e);for(let s of r.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=z.join(t,s.name),d=await j.stat(c,{bigint:!0}),l=[d.dev,d.ino,d.size,d.mtimeNs,d.ctimeNs].join(":");if(n.streams.get(a)?.signature===l)continue;let f=await Hs(c,a);n.streams.set(a,{signature:l,byte_size:Number(d.size),events:f.map((m,p)=>({stream_id:a,stream_offset:p,entry:m}))}),i=!0}for(let s of n.streams.keys())o.has(s)||(n.streams.delete(s),i=!0);if(i&&(n.ordered_events=[...n.streams.values()].flatMap(s=>s.events).sort(mo)),qe.delete(e),qe.set(e,n),qe.size>cu){let s=qe.keys().next().value;qe.delete(s)}return{events:n.ordered_events,stream_byte_sizes:new Map([...n.streams].map(([s,a])=>[s,a.byte_size]))}}async function Hs(e,t){let r=await be(e,t);for(let[n,o]of r.entries())if(typeof o.ts!="string"||!tt(o.ts.trim()))throw new g(`History for ${t} contains an invalid or sub-millisecond timestamp at line ${n+1}. Repair or restore the history stream and retry.`,w.GENERIC_FAILURE,{code:"history_timestamp_invalid"});return r.map(n=>({...n,ts:new Date(n.ts.trim()).toISOString()}))}async function hu(e){return(await $s(e)).events}function yu(e){try{return e(["node","sqlite"].join(":")).DatabaseSync??null}catch{return null}}function gu(e,t){let r=Number.parseInt(e,10);return Number.isFinite(r)&&r>=22?yu(t):null}var co;function Ar(){return co!==void 0||(co=gu(process.versions.node,su(import.meta.url))),co}function bu(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(uo)}function zs(e,t){let r={...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,r.ts,r.author,r.agent_harness??null,r.agent_instance??null,r.op,ct(r),JSON.stringify(r))}function Us(e){let t=JSON.parse(String(e.entry_json));return typeof t.ts!="string"||!tt(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 Bs(e,t,r){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,r)}async function wu(e){let t=Ar();return t?Rr(e,async()=>{let r;try{r=await Lt(e,()=>lo(e))}catch(s){if(s instanceof g&&s.code==="lock_conflict")return!1;throw s}if(r.pending.length>0)return!1;let n=Pt(e);await j.mkdir(z.dirname(n),{recursive:!0});let o=`${n}.${js()}.tmp`,i;try{i=new t(o),bu(i),i.exec("BEGIN IMMEDIATE");let s=await $s(e);for(let c of s.events)zs(i,c);for(let[c,d]of s.stream_byte_sizes)Bs(i,c,d);i.exec("COMMIT"),i.close(),i=void 0;let a=await Lt(e,async()=>{let c=await lo(e);return c.pending.length>0||!pu(r.committed,c.committed)?!1:(await j.rm(n,{force:!0}),await j.rename(o,n),await Promise.all(r.committed.map(d=>j.rm(z.join(xr(e),d),{force:!0}))),!0)});return a||await j.rm(o,{force:!0}),a}catch(s){throw i?.close(),await j.rm(o,{force:!0}),s}}):!1}function Sr(e,t){return!t||t.length===0||t.includes(e)}function mo(e,t){return e.entry.ts.localeCompare(t.entry.ts)||e.stream_id.localeCompare(t.stream_id)||e.stream_offset-t.stream_offset}function Or(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(mo(e,{stream_id:t.after_stream_id,stream_offset:t.after_stream_offset,entry:{...e.entry,ts:Or(t.after_ts)}})<=0)return!1}else if(t.since_ts!==void 0&&e.entry.ts<Or(t.since_ts))return!1;return!0}function Eu(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 ku(e,t){return!vu(e,t)||!Sr(e.entry.op,t.ops)||!Sr(e.entry.author,t.authors)||!Sr(e.entry.agent_instance??"",t.agent_instances)||!Sr(e.stream_id,t.stream_ids)||!Eu(e,t)?!1:(t.provenance??[]).every(r=>{let n=e.entry.agent_provenance?.[r.dimension]?.value;return n!==void 0&&r.values.includes(n)})}async function Ry(e,t){let r=Math.max(0,Math.floor(t.limit)),n=(await hu(e)).filter(o=>ku(o,t)).slice(0,r+1);return{events:n.slice(0,t.limit),has_more:n.length>t.limit}}async function Ws(e,t,r){let n=z.dirname(z.dirname(e)),o=Ar();if(!o){await r();return}let i=!1;try{await Rr(n,async()=>{let s=Pt(n);try{await j.access(s)}catch{await r();return}let a;try{if(a=new o(s),a.prepare("SELECT value FROM metadata WHERE key = 'version'").get()?.value!==uo)throw new TypeError("Unsupported history event index version")}catch{a?.close(),await j.rm(s,{force:!0}),await r();return}try{a.exec("PRAGMA busy_timeout = 5000"),a.exec("BEGIN IMMEDIATE")}catch(d){throw a.close(),d}let c=!1;try{await r(),c=!0,i=!0;let d=z.basename(e,".jsonl"),l=a.prepare("SELECT COALESCE(MAX(stream_offset), -1) + 1 AS value FROM events WHERE stream_id = ?").get(d);zs(a,{stream_id:d,stream_offset:Number(l.value),entry:t}),Bs(a,d,(await j.stat(e)).size),a.exec("COMMIT"),a.close()}catch(d){if(a?.close(),!c)throw d;await Ir(n)}})}catch(s){if(i){await Ir(n);return}if(!(s instanceof g)||s.code!=="lock_conflict")throw s;let a;try{await Lt(n,async()=>{let c=await _u(n);a=c.pendingPath;try{await r(),i=!0}catch(d){throw await j.rm(c.pendingPath,{force:!0}),d}await j.rename(c.pendingPath,c.committedPath),await Ir(n)})}catch(c){if(i){await Ir(n);try{await j.rm(a,{force:!0})}catch{}return}throw c}}}async function _o(e){await j.rm(Pt(z.dirname(z.dirname(e))),{force:!0})}function Tr(e,t,r,n){!n||n.length===0||(e.push(`${r} IN (${n.map(()=>"?").join(", ")})`),t.push(...n))}function Iu(e,t,r,n){if(!r||r.length===0)return;let o=r.map(()=>"?").join(", "),i=n??[];if(i.length>0){e.push(`(agent_harness IN (${o}) OR (agent_harness IS NULL AND author IN (${i.map(()=>"?").join(", ")})))`),t.push(...r,...i);return}e.push(`agent_harness IN (${o})`),t.push(...r)}async function Vs(e,t){let r=await lo(e);if(r.pending.length>0||r.committed.length>0)return;let n=new t(Pt(e),{readOnly:!0});try{if(n.prepare("SELECT value FROM metadata WHERE key = 'version'").get()?.value===uo)return n}catch(o){throw n.close(),o}n.close()}async function Ay(e,t){let r=Ar();if(!r)return null;let n=[],o=[];if(t.after_ts!==void 0&&t.after_stream_id!==void 0&&t.after_stream_offset!==void 0){n.push("(ts > ? OR (ts = ? AND stream_id > ?) OR (ts = ? AND stream_id = ? AND stream_offset > ?))");let a=Or(t.after_ts);o.push(a,a,t.after_stream_id,a,t.after_stream_id,t.after_stream_offset)}else t.since_ts!==void 0&&(n.push("ts >= ?"),o.push(Or(t.since_ts)));Tr(n,o,"op",t.ops),Tr(n,o,"author",t.authors),Iu(n,o,t.harnesses,t.harness_alias_authors),Tr(n,o,"agent_instance",t.agent_instances);for(let a of t.provenance??[])n.push(`json_extract(entry_json, '$.agent_provenance.${a.dimension}.value') IN (${a.values.map(()=>"?").join(", ")})`),o.push(...a.values);Tr(n,o,"stream_id",t.stream_ids);let i=n.length===0?"":` WHERE ${n.join(" AND ")}`,s;try{return await Rr(e,async()=>Lt(e,async()=>{if(s=await Vs(e,r),!s)return null;let a=await Tu(s,e,t.stream_ids);if(!await Gs(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(Us);return s.close(),s=void 0,d.includes(null)?null:{events:d,has_more:c.length>t.limit}}))}catch{return s?.close(),null}}function qs(e,t){let r=Object.create(null);for(let n of e){if(!t.has(n.stream_id)||ct(n.entry)!=="substantive")continue;let o=r[n.stream_id];(o===void 0||mo(o,n)<0)&&(r[n.stream_id]=n)}return r}async function Su(e,t){if(z.basename(t)!==t)return null;try{return(await j.stat(z.join(e,"history",`${t}.jsonl`))).size}catch(r){if(re(r))return 0;throw r}}async function Gs(e,t,r){for(let n=0;n<r.length;n+=500){let o=r.slice(n,n+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=>Su(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 Tu(e,t,r){if(r&&r.length>0)return[...new Set(r.filter(i=>i.trim().length>0))];let n=e.prepare("SELECT stream_id FROM streams").all().map(i=>String(i.stream_id)),o=await j.readdir(z.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(re(i))return[];throw i});return[...new Set([...n,...o])]}async function Ms(e,t,r,n){if(!e)return null;let o;try{return await Rr(t,async()=>Lt(t,async()=>{if(o=await Vs(t,e),!o)return null;if(!await Gs(o,t,r))return o.close(),o=void 0,null;let i=[];for(let s=0;s<r.length;s+=500){let a=r.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(Us);if(c.includes(null))return o.close(),o=void 0,null;i.push(...c)}return o.close(),o=void 0,qs(i,n)}))}catch(i){return o?.close(),i instanceof g&&i.code==="lock_conflict"?Cr:null}}async function Dy(e,t){let r=[...new Set(t.filter(a=>a.trim().length>0&&z.basename(a)===a))];if(r.length===0)return{};let n=new Set(r),o=Ar(),i=await Ms(o,e,r,n);if(i!==null&&i!==Cr)return i;if(o&&i!==Cr)try{if(await wu(e)){let a=await Ms(o,e,r,n);if(a!==null&&a!==Cr)return a}}catch{}let s=[];return await Promise.all(r.map(async a=>{let c=z.join(e,"history",`${a}.jsonl`);(await Hs(c,a).catch(d=>{if(d instanceof g&&d.code==="history_timestamp_invalid")return[];throw d})).forEach((d,l)=>{s.push({stream_id:a,stream_offset:l,entry:d})})})),qs(s,n)}import po from"node:fs/promises";import dt 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 Cu=dt.join("runtime","history-drift-cache.json"),Ks={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 Xs(e){return typeof e=="object"&&e!==null&&"code"in e&&typeof e.code=="string"?e.code:void 0}async function Ou(e){let t=dt.join(e,Cu),r=!1,n="invalid_cache_path";try{r=(await po.stat(await po.realpath(e))).isDirectory()}catch(o){let i=Xs(o);n=i===void 0?"unknown":Ks[i]??"filesystem_error"}if(!r){Cn(`[pm] warning: history_drift_cache_invalidation_failed:${n}
68
+ `);return}try{await po.rm(t,{force:!0})}catch(o){let i=Xs(o);if(re(o))return;let s=i===void 0?"unknown":Ks[i]??"filesystem_error";Cn(`[pm] warning: history_drift_cache_invalidation_failed:${s}
69
+ `)}}async function Dr(e){let t=dt.dirname(dt.resolve(e));dt.basename(t)==="history"&&await Ou(dt.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 Au={front_matter:{},body:""},Ge=3,Mt=[1,2,3],Du=1,Nu=[1];function ta(e){return Ce(D(e),e.hash_algorithm)}function lt(e){return ar(D(e))}function rg(e){return ar(D(e))}function bo(e){let t={...e,record_hash_version:Du},{record_hash:r,...n}=t;return{...t,record_hash:ta(n)}}function Pr(e){try{We(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(!Nu.includes(e.record_hash_version))return{ok:!1,error:"unsupported_record_hash_version"};let{record_hash:t,...r}=e;return ta(r)===e.record_hash?{ok:!0,coverage:"record_and_item_state"}:{ok:!1,error:"record_hash_mismatch"}}function Lu(e,t){let r={before_hash:e.before_hash,after_hash:e.after_hash,patch_hash:lt(e.patch)};return e.hash_algorithm!==void 0&&(r.hash_algorithm=e.hash_algorithm),e.item_hash_version!==void 0&&(r.item_hash_version=e.item_hash_version),t.retainOriginalPatch&&(r.patch=structuredClone(e.patch)),t.retainPriorRecordHash!==!1&&e.record_hash_version!==void 0&&e.record_hash!==void 0&&(r.record_hash_version=e.record_hash_version,r.record_hash=e.record_hash,r.record=structuredClone(e)),r}function ra(e,t,r={}){let n=Pr(e);if(!n.ok)throw new TypeError(n.error);let o=lt(e.patch),i=r.retainPriorRecord===!0||e.before_hash!==t.before_hash||e.after_hash!==t.after_hash||e.item_hash_version!==t.item_hash_version||e.hash_algorithm!==t.hash_algorithm||o!==lt(t.patch),s=bo({...t,...i?{reanchor_evidence:[...t.reanchor_evidence??[],Lu(e,r)]}:{}}),a=wo(s);if(!a.ok)throw new TypeError(a.error);return s}function na(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 Pu(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"&&na(e.patch)}function Mu(e){let t=e.record_hash_version!==void 0,r=e.record_hash!==void 0;return t===r}function ju(e){return!Ke(e)||!Mu(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&&!na(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||Pu(e.record)}function Fu(e){try{for(let t of e){if(!ju(t))return!1;We(t.hash_algorithm)}return!0}catch{return!1}}function $u(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&&lt(t.patch)===e.patch_hash}function Hu(e,t,r){if(t.patch&&lt(t.patch)!==t.patch_hash)return{kind:"patch_hash_mismatch"};if(t.record)return $u(t)?{kind:"record",entry:t.record}:{kind:"record_hash_mismatch"};let n=t.patch??e.patch;if(lt(n)!==t.patch_hash)return{kind:"digest_only"};let o={...e,before_hash:t.before_hash,after_hash:t.after_hash,patch:n,hash_algorithm:t.hash_algorithm,...t.item_hash_version===void 0?{}:{item_hash_version:t.item_hash_version},...t.record_hash_version===void 0?{}:{record_hash_version:t.record_hash_version},...t.record_hash===void 0?{}:{record_hash:t.record_hash},...r.length===0?{}:{reanchor_evidence:r}};return t.hash_algorithm===void 0&&delete o.hash_algorithm,r.length===0&&delete o.reanchor_evidence,t.item_hash_version===void 0&&delete o.item_hash_version,t.record_hash_version===void 0||t.record_hash===void 0?{kind:"legacy",entry:o}:{kind:"record",entry:o}}function wo(e){let t=e.reanchor_evidence;if(t===void 0)return{ok:!0,coverage:"none"};if(!Array.isArray(t)||!Fu(t))return{ok:!1,error:"rewrite_evidence_invalid"};if(t.length===0)return{ok:!0,coverage:"none"};let r=e;for(let n=t.length-1;n>=0;n-=1){let o=t[n],i=Hu(r,o,t.slice(0,n));if(i.kind==="patch_hash_mismatch")return{ok:!1,error:"rewrite_evidence_patch_hash_mismatch"};if(i.kind==="record_hash_mismatch")return{ok:!1,error:"rewrite_evidence_record_hash_mismatch"};if(i.kind==="digest_only")return{ok:!0,coverage:"digest_only"};if(i.kind==="legacy")return{ok:!0,coverage:"legacy_anchor_only"};if(!Pr(i.entry).ok)return{ok:!1,error:"rewrite_evidence_record_hash_mismatch"};r=i.entry}return{ok:!0,coverage:"complete"}}function Nr(e,t){return(e??"").localeCompare(t??"")}function Js(e,t){return(e??0)-(t??0)}function xe(e,t,r){return JSON.stringify(e??r).localeCompare(JSON.stringify(t??r))}function zu(e,t){return[e.scope.localeCompare(t.scope),Nr(e.path,t.path),Nr(e.command,t.command),Js(e.timeout_seconds,t.timeout_seconds),Nr(e.pm_context_mode,t.pm_context_mode),+!!e.shared_host_safe-+!!t.shared_host_safe,xe(e.env_clear,t.env_clear,[]),xe(e.env_set,t.env_set,{}),xe(e.assert_stdout_contains,t.assert_stdout_contains,[]),xe(e.assert_stdout_regex,t.assert_stdout_regex,[]),xe(e.assert_stderr_contains,t.assert_stderr_contains,[]),xe(e.assert_stderr_regex,t.assert_stderr_regex,[]),Js(e.assert_stdout_min_lines,t.assert_stdout_min_lines),xe(e.assert_json_field_equals,t.assert_json_field_equals,{}),xe(e.assert_json_field_gte,t.assert_json_field_gte,{}),Nr(e.note,t.note)].find(r=>r!==0)??0}function Uu(e){return!e||e==="/"?[]:e.startsWith("/")?e.slice(1).split("/").map(t=>t.replaceAll("~1","/").replaceAll("~0","~")):[]}function Bu(e,t){let r=Uu(t);if(r.length===0)return!0;let n=e;for(let o of r){let i=/^(0|[1-9]\d*)$/.test(o)?Number(o):-1,s=Array.isArray(n)?i>=0&&i<n.length?n[i]:void 0:Ke(n)&&Object.prototype.hasOwnProperty.call(n,o)?n[o]:void 0;if(s===void 0)return!1;n=s}return!0}function Wu(e,t){let r=[],n=structuredClone(e);for(let o of t){let i=o.op==="replace"&&!Bu(n,o.path)?{...o,op:"add"}:o;r.push(i),n=ea.applyPatch(n,[i],!0,!0).newDocument}return r}function Lr(e,t,r=!1){if(!(e.metadata&&Object.keys(e.metadata).length>0))return{front_matter:{},body:e.body??""};let n=ne(e),o=t===1||t===2&&r?{...n.metadata,...n.metadata.dependencies===void 0?{}:{dependencies:n.metadata.dependencies.map(s=>({...s,id:s.id.toLowerCase()}))},...n.metadata.tests===void 0?{}:{tests:n.metadata.tests.map(({workspace_context_mode:s,provenance:a,provenance_invalid:c,...d})=>d)},...n.metadata.test_runs===void 0?{}:{test_runs:n.metadata.test_runs.map(({executions:s,...a})=>a)}}:n.metadata,i=t===1&&o.tests?{...o,tests:[...o.tests].sort(zu)}:o;return{front_matter:T(i,ve),body:n.body}}function Qs(e){if(!(e.metadata&&Object.keys(e.metadata).length>0))return{metadata:{},body:e.body??""};let t=ne(e);return{metadata:T(t.metadata,ve),body:t.body}}function ng(e){return oa(e,Ge)}function oa(e,t,r){if(!Mt.some(n=>n===t))throw new TypeError(`unsupported_item_hash_version:${String(t)}`);return Ce(D(Lr(e,t)),r)}function ia(e,t,r){let n=oa(e,t,r);return t===2?[n,Ce(D(Lr(e,t,!0)),r)]:[n]}function og(){return ar(D(Au))}function ut(e){let t=ur(e.op),r=Lr(e.before,Ge),n=Lr(e.after,Ge),o=Qs(e.before),i=Qs(e.after),s=ea.compare(o,i),a=Wu(o,s),c=hs(e.author),d=c.harness?Object.fromEntries(Object.entries(_s().provenance_outcomes).filter(([p,_])=>_.resolver!==void 0&&(_.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??bs,m={hash_algorithm:f,ts:e.nowIso,author:e.author,author_source:e.authorSource??ps(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(r),f),after_hash:Ce(D(n),f),item_hash_version:Ge,message:e.message===void 0?void 0:e.message,...l===void 0?{}:{context:l}};return bo({...m,event_class:ct(m)})}function Ke(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ho(e){return new g(e,w.GENERIC_FAILURE,{code:"history_timestamp_invalid"})}function sa(e){let t=e.ts.trim();if(t.length===0)return Ie();if(!tt(t))throw ho("History timestamp must be a valid RFC 3339 date-time with millisecond precision");if(t!==e.ts)throw ho("History timestamp must not contain surrounding whitespace");return e.ts}function Zs(e,t){let r=e.ts;if(typeof r=="string"&&r.trim().length>0){if(!tt(r))throw ho("History timestamp must be a valid RFC 3339 date-time with millisecond precision");return e}return{...e,ts:t}}function yo(e,t){let r=sa(t);if(typeof e=="string"){let n;try{n=JSON.parse(e)}catch{return e}return Ke(n)?JSON.stringify(Zs(n,r)):e}return Ke(e)?JSON.stringify(Zs(e,r)):JSON.stringify(e)}async function Vu(e,t,r){if(r===!1)return!0;if(typeof r=="string"){let s=yo(r,t);return await go(e,s),await Dr(e),await _o(e),!0}if(typeof r!="object"||r===null)return!1;let n=r;if(n.skip===!0)return!0;let o=typeof n.history_path=="string"?n.history_path:e,i=yo(typeof n.line=="string"?n.line:n.entry??t,t);return await go(o,i),await Dr(o),await _o(o),!0}async function go(e,t){let r;try{r=JSON.parse(t)}catch{r=null}if(!Ke(r)||r.op!=="create"){await Si(e,t);return}await Ys.mkdir(Ru.dirname(e),{recursive:!0});try{await Ys.writeFile(e,`${t}
70
+ `,{encoding:"utf8",flag:"wx"})}catch(n){throw n.code!=="EEXIST"?n:new g("This item identity is reserved by an existing history stream.",w.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 ft(e,t){let r=await Ot("history_append",{history_path:e,entry:t});if(r.handled&&await Vu(e,t,r.result))return;let n=t.ts.trim().length>0?t:{...t,ts:sa(t)},o=bo({...n,hash_algorithm:We(n.hash_algorithm),event_class:ct(n)});await Ws(e,o,async()=>{await go(e,yo(o,o))}),await Dr(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]="3bf5f300-1829-5009-ae96-be7df309b589")}catch{}})();var mt={metadata:{},body:""};function Mr(){return structuredClone(mt)}function _g(e,t=Ge,r){return vo(e,t,r)[0]}function vo(e,t,r){if(Object.keys(e.metadata).length===0||Array.isArray(e.metadata.tags))try{return ia(jr(e),t,r)}catch{}let n=Ce(D({replay_fallback:!0,metadata:e.metadata,body:e.body}),r);return t===2?[n,n]:[n]}function da(e,t,r,n,o){let i=We(n.hash_algorithm),s=`${r}:${i}`,a=o?.before.get(s)??vo(e,r,i),c=vo(t,r,i);return o?.after.set(s,c),{beforeHashes:a,afterHashes:c,pairIndex:a.findIndex((d,l)=>d===n.before_hash&&c[l]===n.after_hash),beforeIndex:a.indexOf(n.before_hash),afterIndex:c.indexOf(n.after_hash)}}function jr(e){return{metadata:e.metadata,body:e.body}}function pg(e,t={}){return ne(jr(e),t)}function hg(e){if(!e.metadata||Object.keys(e.metadata).length===0)return{metadata:{},body:e.body??""};let t=ne(e);return{metadata:T(t.metadata,ve),body:t.body}}function aa(e){return e==="/front_matter"?"/metadata":e.startsWith("/front_matter/")?`/metadata/${e.slice(14)}`:e}function qu(e){return typeof e=="object"&&e!==null&&typeof e.op=="string"&&typeof e.path=="string"}function la(e){return Array.isArray(e)?e.filter(qu).map(t=>({...t,path:aa(t.path),from:typeof t.from=="string"?aa(t.from):void 0})):[]}function Gu(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 r=la(t),n=Eo.applyPatch(structuredClone(e),r,!0,!0).newDocument;return Gu(n)?{ok:!0,document:{metadata:n.metadata,body:n.body}}:{ok:!1,error:new Error("history_replay_invalid_document_shape")}}catch(r){return{ok:!1,error:r}}}function Ku(e){return[...new Set(e.map(t=>t.item_hash_version).filter(t=>t!==void 0&&Mt.includes(t)))]}function ua(e){return e!==void 0&&!Mt.includes(e)}function Xu(e,t){return e!==void 0?[e]:t===void 0?[...Mt]:[t]}function fa(e){let t=Pr(e);if(!t.ok)return t.error;let r=wo(e);return r.ok?void 0:r.error}function Yu(e,t){let r=fa(e);if(r)return{ok:!1,error:r};let n=Xe(t,e.patch);return n.ok?{ok:!0,document:n.document}:{ok:!1,error:"patch_apply_failed"}}function Ju(e,t){let r=fa(e);if(r)throw new TypeError(`${r}:entry_${t+1}`)}function Qu(e,t,r,n,o){let i=[];for(let s of r){let a=da(e,t,s,n,o);if(i.push({version:s,match:a}),a.pairIndex>=0)break}return i}function ma(e){let t=Mr(),r=new Map,n,o,i=Ps(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=ua(c);d&&i.push(`verify_failed:unsupported_item_hash_version:${String(c)}:entry_${s+1}`);let l=Yu(a,t);if(!l.ok)return{ok:!1,errors:[...i,`verify_failed:${l.error}:entry_${s+1}`]};if(d){t=l.document,r=new Map,n=void 0,o=void 0;continue}let f=Xu(c,o),m={before:r,after:new Map},p=Qu(t,l.document,f,a,m),_=p.find(({match:y})=>y.pairIndex>=0);if(_===void 0){let y=p.some(({match:S})=>S.beforeIndex>=0);return{ok:!1,errors:[...i,`verify_failed:${y?"after":"before"}_hash_mismatch:entry_${s+1}`]}}let b=_.version;t=l.document,r=m.after,n=b,o=c??o}return i.length>0?{ok:!1,errors:i,...n===void 0?{}:{item_hash_version:n}}:{ok:!0,errors:[],...n===void 0?{}:{item_hash_version:n}}}function we(e){let t=ma(e);return{ok:t.ok,errors:t.errors}}function ca(e,t){try{return{ok:!0,document:Eo.applyPatch(structuredClone(e),[t],!0,!1).newDocument}}catch{return{ok:!1}}}function Zu(e,t){let r=structuredClone(e),n=0,o=0;for(let s of la(t)){let a=ca(r,s);if(a.ok){r=a.document;continue}if(s.op==="replace"){let c=ca(r,{...s,op:"add"});if(c.ok){r=c.document,n+=1;continue}}o+=1}let i=r;return{document:{metadata:typeof i.metadata=="object"&&i.metadata!==null?i.metadata:{},body:typeof i.body=="string"?i.body:e.body},convertedReplaceToAdd:n,skippedOps:o}}function ef(e){let t=Ku(e);if(t.length===1)return t[0];let r=ma(e);return r.ok&&r.item_hash_version!==void 0?r.item_hash_version:t.length===0?1:Ge}function tf(e,t){let r=Xe(e,t.patch);if(r.ok)return{next:r.document,patch:t.patch,repaired:!1,converted:0,skipped:0};let n=Zu(e,t.patch);return{next:n.document,patch:Eo.compare(e,n.document),repaired:!0,converted:n.convertedReplaceToAdd,skipped:n.skippedOps}}function yg(e,t=ef(e),r={}){let n=e.findIndex(p=>ua(p.item_hash_version));if(n>=0)throw new TypeError(`unsupported_item_hash_version:${String(e[n]?.item_hash_version)}:entry_${n+1}`);let o=Mr(),i=[],s=[],a=0,c=0,d=0,l=0,f,m=t!==1||e.some(p=>p.item_hash_version!==void 0);for(let p=0;p<e.length;p+=1){let _=e[p];Ju(_,p);let b=tf(o,_),{next:y,patch:S,repaired:A,converted:L,skipped:$}=b;d+=L,l+=$,c+=Number(A);let x=da(o,y,t,_);f===void 0||r.continuousHashSurface!==!0?f=[x.pairIndex,x.beforeIndex,x.afterIndex,Math.min(f??0,x.beforeHashes.length-1)].find(te=>te>=0):f=Math.min(f,x.beforeHashes.length-1);let q=x.beforeHashes[f],B=x.afterHashes[f],Q=q!==_.before_hash||B!==_.after_hash;Q&&(a+=1);let G={..._,patch:S,before_hash:q,after_hash:B};m?G.item_hash_version=t:delete G.item_hash_version;let ee=G.item_hash_version!==_.item_hash_version;(Q||A||ee)&&(G=ra(_,G,{retainOriginalPatch:A})),i.push(G),s.push({index:p+1,rehashed:Q,patch_repaired:A,converted_replace_to_add:L,skipped_ops:$}),o=y}return{entries:i,finalDocument:o,entriesRehashed:a,entriesPatchRepaired:c,convertedReplaceToAdd:d,skippedOps:l,details:s,itemHashVersion:t,explicitItemHashVersion:m}}function gg(e){return e.length===0?"":`${e.map(t=>JSON.stringify(t)).join(`
71
+ `)}
72
+ `}import rf from"node:crypto";import Fr 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 pa(e){let t=[],r=!1;for(let n of(e??"").toLowerCase()){let o=n.charCodeAt(0),i=o>=48&&o<=57,s=o>=97&&o<=122;if(!i&&!s){r=t.length>0;continue}r&&(t.push("-"),r=!1),t.push(n)}return t.length===0?"pm-":`${t.join("")}-`}function jt(e){let t=e.trim().toLowerCase();return t.startsWith("#")&&(t=t.slice(1)),t}function Ye(e,t){let r=pa(t),n=jt(e);return n.startsWith(r)?n:`${r}${n}`}function nf(e){let t=Gi(e);if(t!==void 0)return t;let r="";for(let n=0;n<e;n+=1)r+=rf.randomInt(0,36).toString(36);return r}async function of(e,t,r){let n=[...new Set(Object.values(r))].flatMap(o=>[Fr.join(e,o,`${t}.md`),Fr.join(e,o,`${t}.toon`)]);return n.push(Fr.join(e,"history",`${t}.jsonl`)),(await Promise.all(n.map(o=>je(o)))).some(Boolean)}var _a=4,ha=12;function sf(e){return typeof e!="number"||!Number.isFinite(e)?_a:Math.min(ha,Math.max(_a,Math.trunc(e)))}async function Sg(e,t,r={}){let n=sf(r.tokenLength),o=Math.min(n+6,ha),i=0;for(;n<=o;){for(let s=0;s<32;s+=1){let a=`${pa(t)}${nf(n)}`;if(!await(r.probeExisting===!1?je(Fr.join(e,"history",`${a}.jsonl`)):of(e,a,r.typeToFolder??Pe)))return a;i+=1}n+=1}throw new Error(`Unable to generate unique id after ${i} attempts`)}import Ea from"node:fs/promises";import Ft from"node:path";import{isUtf8 as df}from"node:buffer";import af from"node:fs/promises";import _t 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 pt="_workspace";function $r(e){return _t.join(e,"history",`${pt}.jsonl`)}function cf(e,t){return{metadata:{id:pt,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 Hr(e,t=e.length){let r=Mr();for(let n of e.slice(0,t))r=Xe(r,n.patch).document;return jr(r)}function ko(e){return"documents"in e.metadata&&typeof e.metadata.documents=="object"&&e.metadata.documents!==null&&!Array.isArray(e.metadata.documents)?e.metadata.documents:{}}function zr(e){throw new g(`Workspace history verification failed: ${e.join(", ")}`,w.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 ya(e,t){let r=_t.resolve(t),n=_t.relative(e,r).replaceAll("\\","/");if(n.length===0||n===".."||n.startsWith("../")||_t.isAbsolute(n))throw new TypeError("Workspace history document path must stay inside the tracker root");return{documentPath:n,absolutePath:r}}async function Fg(e){let t=await be($r(e),pt),r=we(t);r.ok||zr(r.errors);let n=ko(t.length===0?Me:Hr(t)),o=[],i=[],s=[],a=[];for(let c of Object.keys(n).sort()){let d;try{let l=ya(e,_t.resolve(e,c));if(d=await Ee(l.absolutePath),d===null){s.push(c);continue}let f=JSON.parse(d);(D(f)===D(n[c])?o:i).push(c)}catch{a.push(c)}}return{ok:i.length===0&&s.length===0&&a.length===0,document_count:Object.keys(n).length,matching_documents:o,mismatched_documents:i,missing_documents:s,unreadable_documents:a}}async function ga(e){let t=$r(e.pmRoot),r=await be(t,pt),n=we(r);n.ok||zr(n.errors);let o=e.idempotencyKey===void 0?void 0:r.find(f=>f.op===`${e.op}:${e.idempotencyKey}`);if(o)return{entry:o,historyPath:t};let i=Ie(),s=r.length===0?Me:Hr(r),a=ko(s),c=a[e.documentPath];if(c!==void 0&&D(c)!==D(e.before))throw new g(`Workspace history state for "${e.documentPath}" changed outside the audited mutation path.`,w.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=cf({...a,[e.documentPath]:e.after},r.length===0?i:s.metadata.created_at),l=ut({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 ft(t,l),{entry:l,historyPath:t}}async function $g(e){let t=await W(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await ga(e)}finally{await t()}}async function ba(e){let t=await W(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{let r=$r(e.pmRoot),n=await be(r,pt),o=we(n);o.ok||zr(o.errors);let i=n.length===0?Me:Hr(n),s=ut({nowIso:Ie(),author:e.author,op:e.op,before:i,after:i,message:e.message,context:e.context});return await ft(r,s),{entry:s,historyPath:r}}finally{await t()}}async function wa(e,t){if(t===e.raw)return!1;let r=t===null?null:JSON.parse(t),n=JSON.parse(e.raw);await K(e.filePath,e.raw);try{(t!==null||e.recordCreation!==!1)&&await ga({pmRoot:e.pmRoot,documentPath:_t.relative(e.pmRoot,e.filePath).replaceAll("\\","/"),before:r,after:n,op:e.op,idempotencyKey:e.idempotencyKey,author:e.author,lockTtlSeconds:e.lockTtlSeconds,lockWaitMs:e.lockWaitMs,message:e.message})}catch(o){throw t===null?await af.rm(e.filePath,{force:!0}):await K(e.filePath,t),o}return!0}async function va(e){let{documentPath:t}=ya(e.pmRoot,e.filePath),r=await W(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{let n=await Ee(e.filePath);if(e.dryRun===!0||e.idempotencyKey!==void 0){let i=await be($r(e.pmRoot),pt),s=we(i);s.ok||zr(s.errors);let a=ko(i.length===0?Me:Hr(i))[t];if(a!==void 0&&D(a)!==D(n===null?null:JSON.parse(n)))throw new g(`Workspace history state for "${t}" changed outside the audited mutation path.`,w.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(n);return JSON.parse(o.raw),e.dryRun===!0?{changed:n!==o.raw,result:o.result}:{changed:await wa({...e,raw:o.raw},n),result:o.result}}finally{await r()}}async function Hg(e){let t=await W(e.pmRoot,"workspace-history",e.lockTtlSeconds,e.author,!1,!1,e.lockWaitMs);try{return await wa(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 lf=1048576,uf=4194304;async function ka(e,t){let r=Ft.dirname(e);for(;r!==Ft.parse(e).root;){let o=await Ea.stat(r).catch(i=>{if(re(i))return null;throw i});if(o!==null){if(!o.isDirectory())throw new g("Workflow policy storage ancestor must be a directory.",w.CONFLICT,{code:"workflow_policy_input_unreadable",nextSteps:["Restore the policy or approval history directory before retrying."]});break}r=Ft.dirname(r)}let n=await Ea.open(e,"r").catch(o=>{if(re(o))return null;throw o});if(n===null)return null;try{let o=(await n.stat()).size,i=Buffer.alloc(Math.min(t,o)+1),s=0;for(;s<i.length;){let a=await n.read(i,s,i.length-s,s);if(a.bytesRead===0)break;s+=a.bytesRead}if(s===i.length||!df(i.subarray(0,s)))throw new g("Workflow policy input exceeds its byte bound or is not valid UTF-8.",w.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 n.close()}}function ff(e){if(e===null)return{version:1,enforcement:"advise",policies:[]};let t;try{t=JSON.parse(e)}catch{throw new g("schema/policies.json must contain valid JSON.",w.CONFLICT,{code:"workflow_policy_registry_invalid",nextSteps:["Restore valid policy JSON before retrying the mutation."]})}return Hi(t)}async function mf(e){return ff(await ka(Ft.join(e,"schema","policies.json"),lf))}async function _f(e,t){let r=await ka(fe(e,t),uf);if(r===null)return[];let n;try{if(n=r.split(/\r?\n/).filter(o=>o.trim()).map(o=>JSON.parse(o)),!we(n).ok)throw new Error("invalid chain")}catch{throw new g("Approval evidence requires a valid item history chain.",w.CONFLICT,{code:"workflow_policy_approval_history_invalid",nextSteps:[`Run pm history ${t} --verify before recording or using an approval.`]})}return n.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 pf(e,t,r){let n=r.before?.status!==r.after?.status&&t.policies.some(s=>s.rule.kind==="approval"&&zi(s,r)),o=r.before?.id??r.after?.id,i=n&&typeof o=="string"?await _f(e,o):[];return Ui(t,{...r,approvals:i})}async function Io(e){let t=await mf(e.pmRoot),r=await pf(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(r.allowed)return r;let n=r.decisions.filter(l=>!l.satisfied&&l.effect==="refuse");if(!e.dryRun)try{await ba({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:r.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 g("Workflow policy refusal could not be recorded in workspace history.",w.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=n.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=n.length>3?` and ${n.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=xi("update",l);return f===void 0?`Supply ${l} using its declared SDK or package mutation contract, then retry.`:$e(["update",c,Ri("update",f),`<${l}>`,"--pm-path",Ft.resolve(e.pmRoot)])});throw new g(`Workflow policy refused ${e.operation}: ${s}${a}.${i.length?` Missing: ${i.join(", ")}.`:""}`,w.CONFLICT,{code:"workflow_policy_refused",reason:o.map(l=>l.policy_id).join(","),policy_violations:o,policy_violation_count:n.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(n.slice(0,3).filter(l=>l.missing_fields.length===0).map(l=>l.remediation)),...n.length>3?[`Inspect all policies with pm schema policies before retrying ${e.operation}.`]:[]]})}import{AsyncLocalStorage as hf}from"node:async_hooks";import{channel as yf}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 So=new hf,To=yf("@unbrained/pm-cli/item-metadata-enumeration/v1");function Ur(e){To.publish(e)}async function nb(e){let t={enumeration_calls:0,metadata_rows:0},r=n=>{So.getStore()?.includes(t)&&(t.enumeration_calls+=1,t.metadata_rows+=n)};To.subscribe(r);try{return{result:await So.run([...So.getStore()??[],t],e),work:{...t}}}finally{To.unsubscribe(r)}}import Je from"node:fs/promises";import Sa from"node:path";import{randomUUID as gf}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]="e10ab0c5-e777-5364-b7fb-464e42400ab2")}catch{}})();var wf="metadata-query-index.sqlite",$t="5";function vf(e){try{return e(["node","sqlite"].join(":")).DatabaseSync??null}catch{return null}}var Co;function Ef(e,t){let r=Number.parseInt(e,10);return Number.isFinite(r)&&r>=22?vf(t):null}function Ht(){return Co!==void 0||(Co=Ef(process.versions.node,bf(import.meta.url))),Co}function Ia(e,t){return Math.max(0,Math.floor(e===void 0?t:e))}function ht(e){return Sa.join(e,"runtime",wf)}function kf(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 Wr(e,t,r){e.prepare("INSERT INTO metadata(key, value) VALUES (?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value").run(t,r)}function Ta(e,t){let r=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(r.id,t.relativePath,JSON.stringify(r),r.status,r.type,r.priority,r.updated_at,r.created_at,r.parent??null,r.assignee??null,r.sprint??null,r.release??null),e.prepare("DELETE FROM item_metadata_keys WHERE item_id = ?").run(r.id),e.prepare("DELETE FROM item_linked_files WHERE item_id = ?").run(r.id),e.prepare("DELETE FROM item_search WHERE rowid = (SELECT rowid FROM items WHERE id = ?)").run(r.id),e.prepare("INSERT INTO item_search(rowid, id, title, description, tags) SELECT rowid, ?, ?, ?, ? FROM items WHERE id = ?").run(r.id,r.title,r.description,r.tags.join(" "),r.id);let n=e.prepare("INSERT INTO item_metadata_keys(item_id, key) VALUES (?, ?)");for(let i of Object.keys(r))n.run(r.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(r.id,i.path,i.scope,i.note??null)}async function Ca(e){let t=ht(e.pmRoot),r=Ht();if(!r){await Je.rm(t,{force:!0});return}await Je.mkdir(Sa.dirname(t),{recursive:!0});let n=`${t}.${gf()}.tmp`,o;try{o=new r(n),kf(o),o.exec("BEGIN IMMEDIATE"),Wr(o,"version",$t),Wr(o,"context_fingerprint",e.contextFingerprint),Wr(o,"source_cursor",e.sourceCursor);for(let i of e.rows)Ta(o,i);o.exec("COMMIT"),o.close(),o=void 0,await Je.rm(t,{force:!0}),await Je.rename(n,t)}catch(i){throw o?.close(),await Promise.allSettled([Je.rm(n,{force:!0})]),i}}function Vr(e){return Object.fromEntries(e.prepare("SELECT key, value FROM metadata").all().map(t=>[String(t.key),String(t.value)]))}async function Oa(e){let t=Ht();if(!t)return!1;let r=ht(e.pmRoot),n;try{await Je.access(r),n=new t(r),n.exec("PRAGMA foreign_keys = ON");let o=Vr(n);if(o.version!==$t||o.context_fingerprint!==e.contextFingerprint||o.source_cursor!==e.expectedSourceCursor)return n.close(),!1;n.exec("BEGIN IMMEDIATE");let i=n.prepare("DELETE FROM items WHERE relative_path = ?"),s=n.prepare("SELECT rowid FROM items WHERE relative_path = ?"),a=n.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&&Ta(n,e.row),Wr(n,"source_cursor",e.sourceCursor),n.exec("COMMIT"),n.close(),!0}catch{try{n?.exec("ROLLBACK")}catch{}return n?.close(),!1}}function Br(e,t,r,n,o){!n||n.length===0||(e.push(`${r} ${o} (${n.map(()=>"?").join(", ")})`),t.push(...n))}function If(e){let t=[],r=[];Br(t,r,"status",e.statuses,"IN"),Br(t,r,"status",e.excludeStatuses,"NOT IN"),Br(t,r,"type",e.types,"IN"),Br(t,r,"id",e.ids,"IN");for(let n 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 = ?)"),r.push(n);for(let[n,o]of[["parent",e.parent],["assignee",e.assignee],["sprint",e.sprint],["release",e.release]])o!==void 0&&(t.push(`${n} = ?`),r.push(o));return e.priority!==void 0&&(t.push("priority = ?"),r.push(e.priority)),{where:t.length===0?"":` WHERE ${t.join(" AND ")}`,parameters:r}}async function db(e){let t=Ht();if(!t)return null;let r=e.query??{},{where:n,parameters:o}=If(r),i;try{i=new t(ht(e.pmRoot),{readOnly:!0});let s=Vr(i);if(s.version!==$t||s.source_cursor!==e.expectedSourceCursor)return i.close(),null;let a=i.prepare(`SELECT COUNT(*) AS count FROM items${n}`).get(...o),c=[],d="";r.limit!==void 0?(d+=" LIMIT ?",c.push(Math.max(0,Math.floor(r.limit))),r.offset!==void 0&&(d+=" OFFSET ?",c.push(Math.max(0,Math.floor(r.offset))))):r.offset!==void 0&&(d+=" LIMIT -1 OFFSET ?",c.push(Math.max(0,Math.floor(r.offset))));let l=i.prepare(`SELECT metadata_json FROM items${n}
143
+ ORDER BY ${r.terminalStatuses&&r.terminalStatuses.length>0?`CASE WHEN status IN (${r.terminalStatuses.map(()=>"?").join(", ")}) THEN 1 ELSE 0 END ASC, `:""}priority ASC, updated_at DESC, id ASC${d}`).all(...o,...r.terminalStatuses??[],...c).map(f=>{let m=JSON.parse(String(f.metadata_json));if(!m.id)throw new TypeError("Indexed metadata row has no id");return m});return i.close(),{source_cursor:s.source_cursor,total:Number(a.count),items:l}}catch{return i?.close(),null}}async function lb(e){let t=Ht();if(!t||e.paths.length===0)return null;let r;try{r=new t(ht(e.pmRoot),{readOnly:!0});let n=Vr(r);if(n.version!==$t||n.source_cursor!==e.expectedSourceCursor)return r.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=r.prepare(`SELECT COUNT(DISTINCT item_id) AS count
144
+ FROM item_linked_files
145
+ WHERE ${a}`).get(...s),d=Ia(e.limit,50),l=Ia(e.offset,0),f=r.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),m=[];if(f.length>0){let p=f.map(y=>String(y.id)),_=r.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),b=new Map(p.map(y=>[y,[]]));for(let y of _){let S=String(y.item_id),A=b.get(S);A.push({path:String(y.path),scope:String(y.scope),...y.note===null?{}:{note:String(y.note)}}),b.set(S,A)}for(let y of f){let S=JSON.parse(String(y.metadata_json));m.push({item:S,files:b.get(String(y.id))})}}return r.close(),{source_cursor:n.source_cursor,total:Number(c.count),matches:m}}catch{return r?.close(),null}}async function ub(e){let t=Ht();if(!t)return null;let r;try{r=new t(ht(e.pmRoot),{readOnly:!0});let n=Vr(r);if(n.version!==$t||n.source_cursor!==e.expectedSourceCursor)return r.close(),null;let o=r.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 r.close(),{source_cursor:n.source_cursor,items:o}}catch{return r?.close(),null}}async function qr(e){await Je.rm(ht(e),{force:!0})}import U from"node:fs/promises";import M from"node:path";import{createHash as Sf,randomUUID as Na}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,La=500,Tf="metadata-derived-index",Cf="metadata-cache.json",Of="metadata-cache-bodies.json",xf="metadata-cache-collections.json",Rf="metadata-cache-delta.json",Af="metadata-cache-manifest.json",xa=4,Df=["comments","notes","learnings","files","tests","test_runs","docs"];function Pa(){return or(me())}function Kr(e){let t={...e},r={};for(let n of Df)n in t&&(r[n]=t[n],delete t[n]);return{light:t,heavy:r}}function Ma(e,t){return!t||Object.keys(t).length===0?e:{...e,...t}}function ja(e,t,r,n){let o=Sf("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}`),r&&o.update(`|schema:${JSON.stringify(r)}`),n.length>0&&o.update(`|extension_fields:${n.join(",")}`),o.digest("hex").slice(0,16)}function Xr(e){return M.join(e,"runtime",Cf)}function Yr(e){return M.join(e,"runtime",Of)}function Jr(e){return M.join(e,"runtime",xf)}function xo(e){return M.join(e,"runtime",Rf)}function Ro(e){return M.join(e,"runtime",Af)}function Qr(e,t){let r=M.extname(e);return`${e.slice(0,-r.length)}.${t}${r}`}var Nf=24,Z=new Map,Zr=new WeakMap;function Ao(e){return Zr.get(e)??e.source_cursor}function Lf(e,t){let r=Ao(e);if(!(t.base_source_cursor!==r||e.source_cursor===t.source_cursor)){Zr.set(e,r);for(let[n,o]of Object.entries(t.changes))o.entry?e.entries[n]=o.entry:delete e.entries[n];e.directory_signatures=t.directory_signatures,e.source_cursor=t.source_cursor}}function Pf(e,t){if(!e)return;let r=Ao(e);if(!(t.base_source_cursor!==r||e.source_cursor===t.source_cursor)){Zr.set(e,r);for(let[n,o]of Object.entries(t.changes))o.body?e.bodies[n]=o.body:delete e.bodies[n];e.source_cursor=t.source_cursor}}function Mf(e,t){if(!e)return;let r=Ao(e);if(!(t.base_source_cursor!==r||e.source_cursor===t.source_cursor)){Zr.set(e,r);for(let[n,o]of Object.entries(t.changes))o.collections?e.collections[n]=o.collections:delete e.collections[n];e.source_cursor=t.source_cursor}}function jf(e,t,r,n){!e||!n||e.context_fingerprint!==n.context_fingerprint||(Lf(e,n),Pf(t,n),Mf(r,n))}function Oo(e,t){Z.size>=Nf&&!Z.has(e)&&Li(Z),Z.set(e,t)}async function Re(e,t){let r;try{r=await U.stat(e)}catch{return Z.delete(e),null}let n=Z.get(e);if(n&&zt(n.signature,r.mtimeMs,r.ctimeMs,r.size))return Z.delete(e),Z.set(e,n),n.envelope;let o;try{o=t(await U.readFile(e,"utf8"))}catch{o=null}return Oo(e,{signature:{mtime_ms:r.mtimeMs,ctime_ms:r.ctimeMs,size:r.size},envelope:o}),o}async function Ff(e,t,r){let n=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=Xr(e),i=await Re(o,n);if(!t||i===null||i.context_fingerprint===t)return i;let s=await Re(Qr(o,t),n);return s===null&&Wt(r,`metadata_cache_context_changed:${i.context_fingerprint}->${t}`),s}async function $f(e,t){let r=i=>{let s=JSON.parse(i);return s.version!==ce||typeof s.source_cursor!="string"||typeof s.bodies!="object"||s.bodies===null?null:s},n=Yr(e),o=await Re(n,r);return t&&o?.context_fingerprint!==t?await Re(Qr(n,t),r):o}async function Hf(e,t){let r=i=>{let s=JSON.parse(i);return s.version!==ce||typeof s.source_cursor!="string"||typeof s.collections!="object"||s.collections===null?null:s},n=Jr(e),o=await Re(n,r);return t&&o?.context_fingerprint!==t?await Re(Qr(n,t),r):o}async function Do(e){let t=xo(e),r=await Re(t,n=>{let o=JSON.parse(n);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(r)return{envelope:r,invalid:!1};try{return await U.stat(t),{envelope:null,invalid:!0}}catch{return{envelope:null,invalid:!1}}}async function No(e){let t=Ro(e),r=await Re(t,n=>{let o=JSON.parse(n);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(r)return r;try{await U.stat(t),await yt(e)}catch{}return null}async function Ut(e,t){await U.mkdir(M.dirname(e),{recursive:!0}),await K(e,JSON.stringify(t));try{let n=await U.stat(e);Oo(e,{signature:{mtime_ms:n.mtimeMs,ctime_ms:n.ctimeMs,size:n.size},envelope:t})}catch{Z.delete(e)}let r=M.dirname(M.dirname(e));if(e===Xr(r)||e===Yr(r)||e===Jr(r)){let n=Qr(e,t.context_fingerprint);await K(n,JSON.stringify(t));try{let c=await U.stat(n);Oo(n,{signature:{mtime_ms:c.mtimeMs,ctime_ms:c.ctimeMs,size:c.size},envelope:t})}catch{Z.delete(n)}let o=M.dirname(e),i=M.extname(e),s=M.basename(e,i),a=(await U.readdir(o,{withFileTypes:!0}).catch(()=>[])).filter(c=>c.isFile()&&c.name!==M.basename(e)&&c.name.startsWith(`${s}.`)&&c.name.endsWith(i)).map(c=>M.join(o,c.name));if(a.length>xa){let c=(await Promise.all(a.map(async d=>{try{return{path:d,mtime:(await U.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-xa)))await U.rm(d.path,{force:!0}),Z.delete(d.path)}}}function zf(e,t,r){return r?t===r&&e!==r:t==="toon"&&e!=="toon"}function Fa(e,t,r){return e===void 0||zf(e,t,r)}function Wt(e,t){e&&!e.includes(t)&&e.push(t)}function zt(e,t,r,n){return e.mtime_ms===t&&e.ctime_ms===r&&e.size===n}async function Uf(e,t,r){let n=M.join(e,t);try{let o=await U.readdir(n);return{folder:t,dirPath:n,files:o}}catch(o){return typeof o=="object"&&o!==null&&"code"in o&&!re(o)&&Wt(r,`item_list_directory_read_failed:${t}`),{folder:t,dirPath:n,files:[]}}}async function Bf(e,t){try{let r=await U.stat(M.join(e,t));return[t,{exists:!0,mtime_ms:r.mtimeMs,ctime_ms:r.ctimeMs,size:r.size}]}catch{return[t,{exists:!1,mtime_ms:0,ctime_ms:0,size:0}]}}async function Gr(e,t){return Object.fromEntries(await Promise.all(t.map(async r=>await Bf(e,r))))}function Bt(e,t){return!e||Object.keys(e).length!==Object.keys(t).length?!1:Object.entries(t).every(([r,n])=>{let o=e[r];return o!==void 0&&o.exists===n.exists&&zt(o,n.mtime_ms,n.ctime_ms,n.size)})}function Wf(e){return sr.some(t=>e.toLowerCase().endsWith(t))}function Vf(e,t,r,n,o,i){n||(e.metadata=!0),t&&!o&&(e.body=!0),r&&!i&&(e.collections=!0)}async function qf(e,t,r){if(r)for(let n of await ke({path:e,scope:"project"}))Wt(t,n)}function Ra(e,t,r,n){if(e)return t&&r?r.collections:n}async function Gf(e,t,r){let n=await U.stat(e),o=n.mtimeMs,i=n.ctimeMs,{size:s}=n,a=En(e);await qf(e,r.warnings,r.dispatchReadHooks);let c=r.previousEntries[t],d=!r.forceSourceRead&&c!==void 0&&zt(c,o,i,s),l=r.previousBodies[t],f=!r.forceSourceRead&&l!==void 0&&zt(l,o,i,s),m=r.previousCollections[t],p=!r.forceSourceRead&&m!==void 0&&zt(m,o,i,s);if(!(!d||r.includeBody&&!f||r.includeCollections&&!p))return{mtimeMs:o,ctimeMs:i,size:s,itemFormat:a,lightMetadata:c.metadata,heavyMetadata:Ra(r.includeCollections,p,m,void 0),bodyLength:c.body_length,body:r.includeBody?l.body:void 0};let _=await U.readFile(e,"utf8"),b=kr(_,{format:a,schema:r.schema,extensionFieldNames:r.extensionFieldNames,onWarning:S=>Wt(r.warnings,S)}),y=Kr(b.metadata);return Vf(r.state.misses,r.includeBody,r.includeCollections,d,f,p),{mtimeMs:o,ctimeMs:i,size:s,itemFormat:a,lightMetadata:d?c.metadata:y.light,heavyMetadata:Ra(r.includeCollections,p,m,y.heavy),bodyLength:d?c.body_length:b.body.length,body:r.includeBody?b.body:void 0}}function Kf(e,t,r,n){r.state.newEntries[t]={mtime_ms:n.mtimeMs,ctime_ms:n.ctimeMs,size:n.size,metadata:n.lightMetadata,body_length:n.bodyLength},r.includeBody&&n.body!==void 0&&(r.state.newBodies[t]={mtime_ms:n.mtimeMs,ctime_ms:n.ctimeMs,size:n.size,body:n.body}),r.includeCollections&&n.heavyMetadata!==void 0&&(r.state.newCollections[t]={mtime_ms:n.mtimeMs,ctime_ms:n.ctimeMs,size:n.size,collections:n.heavyMetadata});let o=r.includeCollections?Ma(n.lightMetadata,n.heavyMetadata):n.lightMetadata,i=r.state.documentsById.get(o.id),s={metadata:o,body:n.body,item_format:n.itemFormat,item_path:e};Fa(i?.itemFormat,n.itemFormat,r.preferredFormat)&&r.state.documentsById.set(o.id,{candidate:s,itemFormat:n.itemFormat})}async function Xf(e,t,r,n){try{let o=await Gf(t,r,n);Kf(t,r,n,o)}catch{Wt(n.warnings,`item_list_item_read_failed:${e}/${M.basename(t)}`)}}function Yf(e,t){return e&&e.context_fingerprint===t?e.entries:{}}function Jf(e,t){return e&&e.context_fingerprint===t?e.bodies:{}}function Qf(e,t){return e&&e.context_fingerprint===t?e.collections:{}}function Zf(){return{newEntries:{},newBodies:{},newCollections:{},documentsById:new Map,misses:{metadata:!1,body:!1,collections:!1}}}async function em(e,t){let r=[];for(let{folder:n,dirPath:o,files:i}of e)for(let s of i){if(!Wf(s))continue;let a=M.join(o,s),c=M.relative(t.pmRoot,a);r.push(Xf(n,a,c,t)),r.length===32&&(await Promise.all(r),r.length=0)}await Promise.all(r)}async function tm(e){if(!(!(e.state.misses.metadata||Object.keys(e.previousEntries).length!==Object.keys(e.state.newEntries).length||!Bt(e.existingCache?.directory_signatures,e.directorySignatures))&&e.existingCache!==null&&e.existingCache.context_fingerprint===e.contextFingerprint))try{await Ut(Xr(e.pmRoot),{version:ce,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,directory_signatures:e.directorySignatures,entries:e.state.newEntries}),await Ut(Ro(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:r})=>({relativePath:M.relative(e.pmRoot,r.item_path),metadata:Kr(r.metadata).light,linkedFiles:r.metadata.files??[]}));t.length>=e.minimumIndexedItems?await Ca({pmRoot:e.pmRoot,contextFingerprint:e.contextFingerprint,sourceCursor:e.sourceCursor,rows:t}):await qr(e.pmRoot)}catch{}}async function rm(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 Ut(Yr(e.pmRoot),{version:ce,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,bodies:e.state.newBodies}).catch(()=>{})}async function nm(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 Ut(Jr(e.pmRoot),{version:ce,context_fingerprint:e.contextFingerprint,source_cursor:e.sourceCursor,collections:e.state.newCollections}).catch(()=>{})}async function Lo(e,t,r={}){let n=await No(e);return r.required!==!0&&(n===null||n.entry_count<La)?async()=>{}:W(e,Tf,30,t,!1,!1,3e3)}async function Ib(e,t){let r=await No(e);if(r===null)return null;let n=await Do(e);if(n.invalid)return await yt(e),null;let o=n.envelope?.context_fingerprint===r.context_fingerprint&&n.envelope.base_source_cursor===r.source_cursor?n.envelope.source_cursor:r.source_cursor,i=n.envelope?.context_fingerprint===r.context_fingerprint&&n.envelope.base_source_cursor===r.source_cursor?n.envelope.directory_signatures:r.directory_signatures;return t&&!Bt(i,await Gr(e,t))?null:{source_cursor:o,entry_count:r.entry_count}}function Aa(e,t){let r=M.relative(e,t);return r===""||r===".."||r.startsWith(`..${M.sep}`)||M.isAbsolute(r)?null:r}async function yt(e){await Promise.all([Xr(e),Yr(e),Jr(e),xo(e),Ro(e)].map(async t=>{await U.rm(t,{force:!0}),Z.delete(t)})),await qr(e)}async function om(e){if(e.mutation.document===null)return{entry:null,body:null,collections:null};let t=await U.stat(e.mutation.itemPath),r=Kr(e.mutation.document.metadata),n={mtime_ms:t.mtimeMs,ctime_ms:t.ctimeMs,size:t.size};return{entry:{...n,metadata:r.light,body_length:e.mutation.document.body.length},body:{...n,body:e.mutation.document.body},collections:{...n,collections:r.heavy}}}function im(e,t,r){return e?.context_fingerprint===t&&e.base_source_cursor===r?structuredClone(e.changes):{}}async function Po(e){let t=Aa(e.pmRoot,e.itemPath),r=e.previousItemPath?Aa(e.pmRoot,e.previousItemPath):void 0;if(t===null||r===null)return await yt(e.pmRoot),["metadata_derived_index_path_invalidated"];try{let n=ja(e.preferredFormat,e.typeToFolder,e.schema,Pa()),o=await No(e.pmRoot);if(o===null||o.context_fingerprint!==n)return[];let i=o.source_cursor,s=await Do(e.pmRoot);if(s.invalid)return await yt(e.pmRoot),["metadata_derived_index_refresh_failed"];let a=im(s.envelope,n,i),c=s.envelope?.context_fingerprint===n&&s.envelope.base_source_cursor===i?s.envelope.source_cursor:i;r!==void 0&&(a[r]={entry:null,body:null,collections:null}),a[t]=await om({mutation:e});let d=Na();return await Ut(xo(e.pmRoot),{version:ce,context_fingerprint:n,base_source_cursor:i,source_cursor:d,directory_signatures:await Gr(e.pmRoot,[...new Set(Object.values(e.typeToFolder))]),changes:a}),await Oa({pmRoot:e.pmRoot,contextFingerprint:n,expectedSourceCursor:c,sourceCursor:d,row:e.document===null?null:{relativePath:t,metadata:Kr(e.document.metadata).light,linkedFiles:e.document.metadata.files},deletedRelativePaths:[...r===void 0?[]:[r],...e.document===null?[t]:[]]})||await qr(e.pmRoot),[]}catch{return await yt(e.pmRoot).catch(()=>{}),["metadata_derived_index_refresh_failed"]}}function sm(e){return[...e.documentsById.values()].sort((t,r)=>t.candidate.metadata.id.localeCompare(r.candidate.metadata.id)).map(t=>t.candidate)}function Da(e,t,r){return e?.context_fingerprint===t&&e.source_cursor===r}function am(e,t,r,n,o){return e.every(i=>(!t||n[i]!==void 0)&&(!r||o[i]!==void 0))}function cm(e){let t=new Map;for(let[r,n]of Object.entries(e.previousEntries)){let o=En(r);if(!o)continue;let i=e.includeCollections?Ma(n.metadata,e.previousCollections[r]?.collections):n.metadata,s=t.get(i.id);Fa(s?.itemFormat,o,e.preferredFormat)&&t.set(i.id,{itemFormat:o,candidate:{metadata:i,body:e.includeBody?e.previousBodies[r]?.body:void 0,item_format:o,item_path:M.join(e.pmRoot,r)}})}return[...t.values()].sort((r,n)=>r.candidate.metadata.id.localeCompare(n.candidate.metadata.id)).map(r=>r.candidate)}function dm(e){return e.forceSourceScan||Sn()||e.existingCache?.context_fingerprint!==e.contextFingerprint||e.entryKeys.length<e.minimumIndexedItems||!Bt(e.existingCache?.directory_signatures,e.directorySignatures)?!1:[!e.includeBody||Da(e.existingBodyCache,e.contextFingerprint,e.existingCache.source_cursor),!e.includeCollections||Da(e.existingCollectionsCache,e.contextFingerprint,e.existingCache.source_cursor)].every(Boolean)&&am(e.entryKeys,e.includeBody,e.includeCollections,e.previousBodies,e.previousCollections)}async function en(e,t,r,n,o,i={}){let s=i.includeBody!==!1,a=i.includeCollections!==!1,c=Pa(),d=ja(t,r,o,c),l=await Do(e);l.invalid&&await yt(e);let f=await Ff(e,d,i.cacheDiagnostics),m=s?await $f(e,d):null,p=a?await Hf(e,d):null;jf(f,m,p,l.envelope);let _=Yf(f,d),b=Jf(m,d),y=Qf(p,d),S=[...new Set(Object.values(r))],A=await Gr(e,S),L=Object.keys(_),$=Math.max(1,Math.floor(i.derivedIndexMinimumItems??La));if(dm({forceSourceScan:i.forceSourceScan===!0,contextFingerprint:d,existingCache:f,existingBodyCache:m,existingCollectionsCache:p,directorySignatures:A,entryKeys:L,minimumIndexedItems:$,includeBody:s,includeCollections:a,previousBodies:b,previousCollections:y}))return cm({pmRoot:e,preferredFormat:t,includeBody:s,includeCollections:a,previousEntries:_,previousBodies:b,previousCollections:y});let x=await Promise.all(S.map(Jt=>Uf(e,Jt,n))),q=Sn(),B=Zf(),Q={pmRoot:e,preferredFormat:t,warnings:n,schema:o,extensionFieldNames:c,includeBody:s,includeCollections:a,forceSourceRead:i.forceSourceScan===!0,dispatchReadHooks:q,previousEntries:_,previousBodies:b,previousCollections:y,state:B};await em(x,Q);let G=await Gr(e,S),ee=Bt(A,G)?G:{},te=B.misses.metadata||Object.keys(_).length!==Object.keys(B.newEntries).length||!Bt(f?.directory_signatures,ee)||f===null?Na():f.source_cursor;return await tm({pmRoot:e,contextFingerprint:d,sourceCursor:te,existingCache:f,previousEntries:_,directorySignatures:ee,state:B,minimumIndexedItems:$}),s&&await rm({pmRoot:e,contextFingerprint:d,sourceCursor:te,existingBodyCache:m,previousBodies:b,state:B}),a&&await nm({pmRoot:e,contextFingerprint:d,sourceCursor:te,existingCollectionsCache:p,previousCollections:y,state:B}),sm(B)}async function $a(e,t,r,n,o){return(await en(e,t,r,n,o,{includeBody:!1})).map(i=>({metadata:i.metadata,body:i.body??""}))}async function Ha(e,t,r,n,o){return(await en(e,t,r,n,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 jo(e,t){return(t===void 0?void 0:Ai(e,t))?.execution_role??Oi[e.trim().toLowerCase()]??"agent"}var Fo="blocked_by",za="blocks",lm=Object.freeze([Fo,za]),Mo="no-active-blocker";function F(e){return e.trim().toLowerCase()}function tn(e,t){return t?`external:${e}`:`local:${F(e)}`}function Vt(e){let t=new Map,r=typeof e.blocked_by=="string"?e.blocked_by.trim():"";if(r.length>0&&F(r)!==Mo){let n=ye(r);t.set(tn(r,n),n?r:F(r))}for(let n of e.dependencies??[]){let o=typeof n.id=="string"?n.id.trim():"";if(n.kind===Fo&&o.length>0&&F(o)!==Mo){let i=ye(o)||se(n.source_kind);t.set(tn(o,i),i?o:F(o))}}return[...t.values()].sort((n,o)=>n.localeCompare(o))}function rn(e){let t=new Map;for(let r of e){let n=F(r.id);n.length!==0&&t.set(n,new Set(Vt(r)))}for(let r of e){let n=F(r.id);if(n.length!==0)for(let o of r.dependencies??[]){let i=o.kind===za&&typeof o.id=="string"?F(o.id):"";if(i.length===0||i===Mo)continue;let s=t.get(i)??new Set;s.add(n),t.set(i,s)}}return new Map([...t].map(([r,n])=>[r,[...n].sort((o,i)=>o.localeCompare(i))]))}function Ua(e,t){let r=F(e.id);return r.length>0?rn(t).get(r)??Vt(e):Vt(e)}function $o(e,t,r,n){let o=e,i=typeof o.id=="string"?n?.get(F(o.id))??Ua(o,[...t.values()]):Vt(e),s=new Set((e.dependencies??[]).filter(a=>a.kind===Fo&&se(a.source_kind)&&typeof a.id=="string"&&a.id.trim().length>0).map(a=>tn(a.id.trim(),!0)));return i.map(a=>{if(ye(a)||s.has(tn(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,r)}:{id:a,title:null,status:null,resolved:!1}})}function um(e,t,r){return $o(e,t,r)}function fm(e,t){let r=new Map(e.map(s=>[F(s.id),s])),n=rn(e),o=new Set([...Ba(t),...t.blocked_statuses]),i=new Set;for(let s of e){let a=ot(s.status,t);o.has(a)&&(t.blocked_statuses.has(a)||$o(s,r,t,n).some(c=>!c.resolved))&&i.add(F(s.id))}return i}function mm(e,t,r={},n){let o=[...e.ready,...e.decisions,...e.gates];r.includeContainers===!0&&o.push(...e.containers.filter(s=>s.open_blockers.length===0&&!t.blocked_statuses.has(ot(s.item.status,t))));let i={ready:[],decisions:[],gates:[]};for(let s of o){let a=jo(s.item.type,n);a==="human"&&r.includeDecisions!==!0?i.decisions.push(s):a==="gate"&&r.includeGates!==!0?i.gates.push(s):i.ready.push(s)}return i}function Ba(e){return e.active_statuses.size>0?e.active_statuses:new Set([e.open_status])}function _m(e,t,r){let n=[F(e)],o=new Set;for(;n.length>0;){let i=n.pop();if(!o.has(i)){o.add(i);for(let s of t.get(i)??[]){if(!ge(s.status,r))return!0;n.push(F(s.id))}}}return!1}function pm(e){let t=new Map,r=new Map,n=new Map,o=rn(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=r.get(a)??[];c.push(i),r.set(a,c)}for(let a of o.get(F(i.id))){let c=F(a),d=n.get(c)??[];d.push(i.id),n.set(c,d)}}return{itemsById:t,childrenByParent:r,blockedByReverse:n,blockerIdsByItem:o}}function hm(e,t,r,n){let{itemsById:o,childrenByParent:i,blockedByReverse:s,blockerIdsByItem:a}=pm(t),c=new Set([...Ba(r),...r.blocked_statuses]),d=new Set(t.filter(y=>!ge(y.status,r)).map(y=>F(y.id))),l=[],f=[],m=[],p=[],_=[],b=0;for(let y of e){if(!c.has(ot(y.status,r)))continue;b+=1;let S=$o(y,o,r,a).filter(x=>!x.resolved),A=(s.get(F(y.id))??[]).filter(x=>d.has(F(x))).sort((x,q)=>x.localeCompare(q)),L={item:y,open_blockers:S,unblocks:A};if(_m(y.id,i,r)){m.push(L);continue}let $=r.blocked_statuses.has(ot(y.status,r));if(S.length===0&&!$){let x=jo(y.type,n);x==="human"?p.push(L):x==="gate"?_.push(L):l.push(L)}else f.push(L)}return{ready:l,blocked:f,containers:m,decisions:p,gates:_,active_count:b,container_count:m.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 r of t.definitions)e.register(r);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 qt(e){if(typeof e!="string")return;let t=e.trim().toLowerCase();return t.length>0?t:void 0}function nn(e){return[e.parent_id,e.child_id,e.source,e.kind,e.holder_id,e.target_id??""].join("\0")}function ym(e,t){let r=new Set,n=[];for(let o of[...e].sort()){if(r.has(o))continue;r.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?(n.push(s.nodeId),i.pop()):(s.nextChild+=1,r.has(a)||(r.add(a),i.push({nodeId:a,children:[...t.get(a)??[]].sort(),nextChild:0})))}}return n}function gm(e,t){let r=[...e].sort(),n=ym(r,t),o=new Set,i=bm(r,t),s=[];for(let a of n.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 bm(e,t){let r=new Map(e.map(n=>[n,new Set]));for(let[n,o]of t)for(let i of o)r.get(i)?.add(n);return r}function wm(e,t,r){let n=[],o=[e];for(r.add(e);o.length>0;){let i=o.pop();n.push(i);for(let s of[...t.get(i)].sort())r.has(s)||(r.add(s),o.push(s))}return n.sort()}function Wa(e){let t=new Map;for(let r of e){let n=qt(r?.id);n&&!t.has(n)&&t.set(n,r)}return t}function vm(e,t,r){let n=qt(t.parent);if(!(!n||!r.has(n)))return{parent_id:n,child_id:e,source:"scalar_parent",kind:"parent",holder_id:e,child_cardinality:"one"}}function Em(e,t,r,n){let o=qt(t?.id),i=n.resolve(t?.kind);if(!o||!r.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 Va(e,t){let r=new Map;for(let[n,o]of e){let i=vm(n,o,e);i&&r.set(nn(i),i);for(let s of o.dependencies??[]){let a=Em(n,s,e,t);a&&r.set(nn(a),a)}}return[...r.values()].sort((n,o)=>nn(n).localeCompare(nn(o)))}function Fb(e,t=de()){return Va(Wa(e),t)}function km(e,t,r){let n=new Set(e.filter(o=>o.child_cardinality==="one").map(o=>o.child_id));return[...t].filter(([o,i])=>i.length>1&&n.has(o)).map(([o,i])=>({child_id:o,parent_ids:[...i],legacy_terminal:r.has(o)&&i.every(s=>r.has(s))})).sort((o,i)=>o.child_id.localeCompare(i.child_id))}function Im(e,t,r){let n=new Map;for(let i of t){if(i.source!=="dependency")continue;let s=n.get(i.child_id)??new Set;s.add(i.parent_id),n.set(i.child_id,s)}let o=[];for(let[i,s]of e){let a=qt(s.parent);if(!a||!e.has(a))continue;let c=[...n.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:r.has(i)&&r.has(a)&&c.every(d=>r.has(d))})}return o.sort((i,s)=>i.child_id.localeCompare(s.child_id))}function on(e,t=n=>n==="closed"||n==="canceled",r=de()){let n=Wa(e),o=Va(n,r),i=Sm(o),s=new Set([...n].filter(([,c])=>t(c.status)).map(([c])=>c)),a=gm([...n.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:km(o,i.parents_by_child,s),divergences:Im(n,o,s)}}function $b(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 Sm(e){let t=new Map,r=new Map;for(let n of e){let o=t.get(n.child_id)??new Set;o.add(n.parent_id),t.set(n.child_id,o);let i=r.get(n.parent_id)??new Set;i.add(n.child_id),r.set(n.parent_id,i)}return{parents_by_child:new Map([...t].map(([n,o])=>[n,[...o].sort()])),children_by_parent:new Map([...r].map(([n,o])=>[n,[...o].sort()]))}}function Ho(e,t){let r=new Set(t);return e.every(n=>r.has(n))}function Hb(e,t,r,n,o){let i=qt(r);if(!i)return;let s=on(e,n,o),a=on(t,n,o),c=a.divergences.find(f=>!s.divergences.some(m=>m.child_id===f.child_id&&m.scalar_parent_id===f.scalar_parent_id&&Ho(f.dependency_parent_ids,m.dependency_parent_ids)));if(c){let f=[c.scalar_parent_id,...c.dependency_parent_ids].sort();throw new g(`Hierarchy mutation would assign ${c.child_id} to multiple parents: ${f.join(", ")}.`,w.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(m=>m.child_id===f.child_id&&Ho(f.parent_ids,m.parent_ids)));if(d)throw new g(`Hierarchy mutation would assign ${d.child_id} to multiple parents: ${d.parent_ids.join(", ")}.`,w.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(m=>Ho(f.item_ids,m.item_ids)));if(l)throw new g(`Hierarchy mutation would create a cycle: ${l.item_ids.join(" -> ")}.`,w.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 Tm="global";function Vb(e){let t=e?.trim();if(t)return se(t)?Tm:t}function qb(e,t,r){return Cm(e,t,r)}function Cm(e,t,r){let n=e.trim();return se(r)||ye(n)?n:Ye(n,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 bt(e){if(typeof e!="string")return;let t=e.trim();if(!(!t||["none","null","n/a","na"].includes(t.toLowerCase())))return t}function Gt(e){let t=bt(e);return t?.toLowerCase()==="no-active-blocker"?void 0:t}function Kt(e,t,r=!0){let n=bt(e);return r&&(se(t)||n!==void 0&&ye(n))}function zo(e,t){return Kt(e,t)?`external\0${e}`:`local\0${e.toLowerCase()}`}function qa(e,t,r,n){return Kt(e,t)?n.get(e):r.get(e.toLowerCase())}function gt(e,t){let r=e.toLowerCase(),n=t.toLowerCase();return r!==n?r<n?-1:1:e!==t?e<t?-1:1:0}function Om(e){let t=new Map;for(let r of e.dependencies??[]){if(typeof r!="object"||r===null)continue;let n=r,o=bt(n.id);if(!o)continue;let i=typeof n.kind=="string"?n.kind:"related",s=`${i}\0${zo(o,n.source_kind)}`,a=t.get(s);a?a.count+=1:t.set(s,{target_id:o,kind:i,count:1})}return t}function xm(e,t=r=>r==="closed"||r==="canceled"){let r=[];for(let n of e)if(!(typeof n?.id!="string"||n.id.trim().length===0))for(let o of Om(n).values())o.count<2||r.push({holder_id:n.id.trim(),target_id:o.target_id,kind:o.kind,occurrences:o.count,holder_status:n.status,legacy_terminal:t(n.status)});return r.sort((n,o)=>{let i=gt(n.holder_id,o.holder_id);if(i!==0)return i;let s=gt(n.target_id,o.target_id);return s!==0?s:gt(n.kind,o.kind)})}function Rm(e,t,r,n,o){if(typeof r!="object"||r===null)return;let i=bt(r.id);if(!i||zo(i,r.source_kind)!==zo(t))return;let s=o.resolve(typeof r.kind=="string"?r.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:n(e.status)}}function Am(e,t=n=>n==="closed"||n==="canceled",r=de()){let n=new Map;for(let o of e){if(typeof o?.id!="string"||o.id.trim().length===0)continue;let i=bt(o.blocked_by);if(i)for(let s of o.dependencies??[]){let a=Rm(o,i,s,t,r);a&&n.set(`${a.holder_id.toLowerCase()}\0${a.target_id.toLowerCase()}\0${a.dependency_kind}`,a)}}return[...n.values()].sort((o,i)=>{let s=gt(o.holder_id,i.holder_id);if(s!==0)return s;let a=gt(o.target_id,i.target_id);return a!==0?a:gt(o.dependency_kind,i.dependency_kind)})}function Uo(e,t=r=>r==="closed"||r==="canceled"){let r=e.filter(c=>typeof c?.id=="string"&&c.id.trim().length>0),n=new Set(r.map(c=>c.id.trim().toLowerCase())),o=new Map,i=(c,d,l,f,m)=>{let p=bt(d);if(!p||n.has(p.toLowerCase())||Kt(p,void 0,m))return;let _={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(`${_.holder_id}::${_.target_id}::${_.kind}::${_.source}`,_)};for(let c of r){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 Dm(e){let t=new Map;for(let r of[...e.active,...e.legacy_terminal]){if(r.no_active_blocker_sentinel)continue;let n=r.target_id.trim(),o=n.toLowerCase();t.has(o)||t.set(o,n)}return[...t.values()].sort((r,n)=>r.localeCompare(n))}function Nm(e){let t=new Map;for(let r of e){let n=Gt(r.blocked_by);n&&Kt(n)&&!t.has(n)&&t.set(n,n);for(let o of r.dependencies??[]){if(typeof o!="object"||o===null||!Kt(o.id,o.source_kind))continue;let i=Gt(o.id);i&&!t.has(i)&&t.set(i,i)}}return[...t.values()].sort((r,n)=>r.localeCompare(n))}var Ga=new WeakMap;function Zb(e){return e.hierarchyIntegrity??Ga.get(e)}function Lm(e,t=de()){let r={};for(let n of e)for(let o of n.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&&(r[s]=(r[s]??0)+1)}return Object.fromEntries(Object.entries(r).sort(([n],[o])=>n.localeCompare(o)))}function sn(e,t,r){let n=r??de(),o=e.filter(_=>typeof _?.id=="string"&&_.id.trim().length>0),i=new Map(o.map(_=>[_.id.trim().toLowerCase(),_.id.trim()])),s=Uo(o,t),a=Dm(s);for(let _ of a)i.set(_.toLowerCase(),_);let c=Nm(o),d=new Set(i.keys()),l=new Map;for(let _ of c){let b=_;for(;d.has(b.toLowerCase());)b=`external:${b}`;l.set(_,b),d.add(b.toLowerCase())}let f=o.map(_=>{let b=Gt(_.parent),y=Gt(_.blocked_by),S=(_.dependencies??[]).flatMap(A=>{if(typeof A!="object"||A===null)return[];let L=A,$=Gt(L.id);return $?[{id:qa($,L.source_kind,i,l),kind:typeof L.kind=="string"?L.kind:"related"}]:[]});return{id:_.id.trim(),...b?{parent:i.get(b.toLowerCase())}:{},...y?{blocked_by:qa(y,void 0,i,l)}:{},dependencies:S}}),m=on(o,t,n),p={graph:Ei.fromItems([...f,...a.map(_=>({id:_})),...c.map(_=>({id:l.get(_)}))],n),details:[...o.map(_=>({id:_.id.trim(),title:_.title,status:_.status,...typeof _.type=="string"&&_.type.trim().length>0?{type:_.type.trim()}:{}})),...a.map(_=>({id:_,title:`[missing] ${_}`,status:"missing"})),...c.map(_=>({id:l.get(_),title:`[external] ${_}`,status:"external"}))],missingIdSet:new Set(a.map(_=>_.toLowerCase())),dangling:s,duplicateRows:xm(o,t),orderingContradictions:Am(o,t,n),legacyAliasCounts:Lm(o,n),hierarchyIntegrity:m};return Ga.set(p,m),p}import{createHash as Pm}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 Mm=64,jm=8;function Fm(e,t){let r=(e.dependencies??[]).map(n=>{if(typeof n!="object"||n===null)return"";let o=n;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??"",r].join("\0")}function Xa(e,t=n=>n==="closed"||n==="canceled",r=ue()){let n=e.filter(i=>typeof i?.id=="string"&&i.id.trim().length>0).map(i=>Fm(i,t)).sort(),o=r.list().map(i=>D(i)).sort();return Pm("sha256").update(n.join("")).update("").update(o.join("")).digest("hex")}function Ka(e,t,r){let n=t??r;if(!Number.isInteger(n)||n<1)throw new TypeError(`Invalid ${e} bound: ${String(t)}`);return n}var Bo=class{#e=new Map;#t;#r;constructor(t={}){this.#t=Ka("maxResultsPerWorkspace",t.maxResultsPerWorkspace,Mm),this.#r=Ka("maxWorkspaces",t.maxWorkspaces,jm)}lookup(t,r,n){let o=this.#e.get(t),i=!0;(o===void 0||o.fingerprint!==r)&&(o={fingerprint:r,assembly:n(),results:new Map},i=!1,!this.#e.has(t)&&this.#e.size>=this.#r&&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:r,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()}},Ya=new Bo;function Ja(){return Ya}function ow(){Ya.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 $m=["prerequisite","dependent","ancestor","descendant","provenance","related"],Hm=new TextEncoder;function Wo(e,t,r){let n=e??t;if(!Number.isInteger(n)||n<1)throw new TypeError(`Relationship context ${r} must be positive`);return n}function an(e){return Math.max(1,Math.ceil(Hm.encode(JSON.stringify(e)).byteLength/4))}function Vo(e,t,r){let n=r.resolve(e.kind);if(n?.ordering){let o=(n.precedence??"source_before_target")==="source_before_target"?e.source:e.target;return t===o?"prerequisite":"dependent"}if(n?.hierarchy){let o=n.hierarchyDirection==="source_parent"?e.source:e.target;return t===o?"ancestor":"descendant"}return e.kind==="discovered_from"||e.kind==="incident_from"?"provenance":"related"}function zm(e,t,r,n){let o=e.filter(i=>i.source===t&&i.target===r||i.target===t&&i.source===r).map(i=>Vo(i,r,n));return[...new Set(o)].sort()}function Um(e){return $m.find(t=>e.includes(t))}function Bm(e,t,r,n){let o=n.direction??"both",i=n.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){n.signal?.throwIfAborted();let m=a[f];if(m.distance>=i&&l)continue;let p=e.neighborEdges(m.id,{direction:o,kinds:n.kinds,signal:n.signal});if(d+=p.meta.inspectedEdges,m.distance>=i){p.value.some(_=>!s.has(_.id))&&(l=!0);continue}for(let{id:_,edge:b}of p.value){if(s.has(_))continue;s.add(_);let y={id:_,distance:m.distance+1,via:m.id,role:Vo(b,_,r)};c.push(y),a.push(y)}}return c.sort((f,m)=>f.distance-m.distance||f.id.localeCompare(m.id)),{rows:c,visitedNodes:a.length,inspectedEdges:d,depthTruncated:l}}function Wm(e,t,r,n){let o={prerequisite:0,dependent:0,ancestor:0,descendant:0,provenance:0,related:0},i=e.neighborEdges(t,{direction:n.direction??"both",kinds:n.kinds,signal:n.signal}).value;for(let{id:s,edge:a}of i)o[Vo(a,s,r)]+=1;return{directEdges:o,directTotal:i.length,rootEdges:i.map(({edge:s})=>s)}}function Vm(e){let t=[],r=e.initialTokens;for(let n of e.candidates){if(t.length>=e.nodeLimit)break;let o=n.distance===1?zm(e.rootEdges,e.rootId,n.id,e.registry):[],i={...e.details.get(n.id)??{id:n.id},distance:n.distance,role:o.length>0?Um(o):n.role,via:n.via,reasons:o.length>0?o:[`${n.role} via ${n.via} (depth ${n.distance})`]},s=an(i);if(r+s>e.tokenBudget)break;t.push(i),r+=s}if(e.candidates.length>0&&t.length===0)throw new TypeError("Relationship context tokenBudget cannot fit one node");return{nodes:t,usedTokens:r}}function qm(e){let t=e.options.kinds?new Set(e.options.kinds.map(i=>e.registry.require(i).kind)):void 0,r=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)}),n=[],o=e.initialTokens;for(let i of r){if(n.length>=e.edgeLimit)break;let s=an(i);if(o+s>e.tokenBudget)break;n.push(i),o+=s}return{edges:n,usedTokens:o,candidateCount:r.length}}function Qa(e,t,r,n={}){if(!e.nodes().includes(t))throw new TypeError(`Relationship node not found: ${t}`);let o=Wo(n.nodeLimit,20,"nodeLimit"),i=Wo(n.edgeLimit,40,"edgeLimit"),s=Wo(n.tokenBudget,1200,"tokenBudget"),a=n.registry??ue(),c=new Map(r.map(Ze=>[Ze.id,Ze])),d=c.get(t)??{id:t},{evidence:l=[],...f}=d,m=[...l],p=Bm(e,t,a,n),{rootEdges:_,...b}=Wm(e,t,a,n),y=Wi("relationship-context",{rootId:t,direction:n.direction??"both",kinds:[...n.kinds??[]].sort(),maxDepth:n.maxDepth??3}),S=qi(p.rows,n.cursor,y,({id:Ze})=>Ze),A=p.rows.slice(S),L=an(f)+an(m);if(L>s)throw new TypeError("Relationship context tokenBudget cannot fit root and evidence");let $=Vm({candidates:A,details:c,rootEdges:_,rootId:t,registry:a,nodeLimit:o,tokenBudget:s,initialTokens:L}),{nodes:x}=$,q=new Set([t,...x.map(({id:Ze})=>Ze)]),B=qm({graph:e,included:q,options:n,registry:a,edgeLimit:i,tokenBudget:s,initialTokens:$.usedTokens}),{edges:Q,usedTokens:G}=B,ee=S+x.length,te=ee<p.rows.length,Jt=x.at(-1),bn=B.candidateCount-Q.length,_i=p.depthTruncated||te||bn>0,Vc={rootId:t,...f.status===void 0?{}:{rootStatus:f.status},...b,discoveredNodes:p.rows.length,returnedNodes:x.length,returnedEdges:Q.length,omittedNodes:p.rows.length-ee,omittedEdges:bn,evidenceCount:m.length,hasMore:te};return{root:f,summary:Vc,nodes:x,edges:Q,evidence:m,meta:{exact:!0,truncated:_i,completeness:_i?"truncated":"complete",nodeLimit:o,edgeLimit:i,tokenBudget:s,usedTokens:G,visitedNodes:p.visitedNodes,inspectedEdges:p.inspectedEdges,omittedNodes:p.rows.length-ee,omittedEdges:bn,...te&&Jt?{nextCursor:Vi(y,Jt.id,ee-1)}:{}}}}import{AsyncLocalStorage as f_}from"node:async_hooks";import{lstat as m_,realpath as cc}from"node:fs/promises";import dc 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 X={ok:!1},h=e=>typeof e=="string"?{ok:!0,value:e}:X,O=e=>typeof e=="boolean"?{ok:!0,value:e}:X;function N(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?X:{ok:!0,value:t}}function R(...e){return t=>typeof t=="string"&&e.includes(t)?{ok:!0,value:t}:X}function v(e,t){return r=>{if(!Array.isArray(r)||t!==void 0&&r.length>t)return X;let n=[];for(let o of r){let i=e(o);if(!i.ok)return X;n.push(i.value)}return{ok:!0,value:n}}}function Go(e,t){return r=>typeof r=="string"&&r.length>0&&r.length<=e&&r===r.trim()&&(t===void 0||t.test(r))?{ok:!0,value:r}:X}function u(e){return t=>t===void 0?{ok:!0,value:void 0}:e(t)}function cn(e){return t=>{if(typeof t!="object"||t===null||Array.isArray(t))return X;let r={};for(let[n,o]of Object.entries(t)){let i=e(o);if(!i.ok)return X;r[n]=i.value}return{ok:!0,value:r}}}function C(e){return t=>{if(typeof t!="object"||t===null||Array.isArray(t))return X;let r=t,n={};for(let[o,i]of Object.entries(e)){let s=i(r[o]);if(!s.ok)return X;s.value!==void 0&&(n[o]=s.value)}return{ok:!0,value:n}}}var Gm=C({key:h,values:v(h),required:u(O),aliases:u(v(h)),description:u(h)}),Km=C({command:R("create","update"),option:h,required:u(O),visible:u(O),enabled:u(O)}),Xm=C({name:h,description:u(h),default_status:u(h),execution_role:u(R("agent","human","gate")),folder:u(h),aliases:u(v(h)),required_create_fields:u(v(h)),required_create_repeatables:u(v(h)),options:u(v(Gm)),command_option_policies:u(v(Km))}),Ym=C({id:h,aliases:u(v(h)),roles:u(v(R(...pi))),description:u(h),order:u(N())}),Jm=C({key:h,metadata_key:u(h),front_matter_key:u(h),cli_flag:u(h),cli_aliases:u(v(h)),description:u(h),type:u(R(...hi)),commands:u(v(R(...yi))),repeatable:u(O),required:u(O),required_on_create:u(O),required_types:u(v(h)),allow_unset:u(O)}),Qm=e=>{if(!Array.isArray(e)||e.length!==2)return X;let[t,r]=e;return typeof t!="string"||typeof r!="string"?X:{ok:!0,value:[t,r]}},Zm=C({type:h,allowed_transitions:v(Qm)}),e_=u(C({version:u(N({int:!0})),files:u(C({types:u(h),statuses:u(h),fields:u(h),workflows:u(h)})),statuses:u(v(Ym)),fields:u(v(Jm)),workflow:u(C({draft_status:u(h),open_status:u(h),in_progress_status:u(h),blocked_status:u(h),close_status:u(h),canceled_status:u(h)})),type_workflows:u(v(Zm)),unknown_field_policy:u(R(...gi))})),t_=u(C({preset:u(R(...bi)),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(h),workflow_enforcement:u(R("off","warn","strict")),duplicate_detection_mode:u(R("off","advisory","strict")),duplicate_detection_threshold:u(N({min:0,max:1})),duplicate_detection_limit:u(N({int:!0,min:0,max:20}))})),r_=C({name:h,disabled:u(O),require_trusted:u(O),require_provenance:u(O),sandbox_profile:u(R("none","restricted","strict")),allowed_capabilities:u(v(h)),blocked_capabilities:u(v(h)),allowed_surfaces:u(v(h)),blocked_surfaces:u(v(h)),allowed_commands:u(v(h)),blocked_commands:u(v(h)),allowed_actions:u(v(h)),blocked_actions:u(v(h)),allowed_services:u(v(h)),blocked_services:u(v(h))}),qo=R("block","warn"),n_=e=>typeof e=="string"?qo(e):C({global:u(qo),project:u(qo)})(e),o_=u(C({mode:u(R("off","warn","enforce")),trust_mode:u(R("off","warn","enforce")),pm_max_version_exceeded_mode:u(n_),require_provenance:u(O),trusted_extensions:u(v(h)),default_sandbox_profile:u(R("none","restricted","strict")),allowed_extensions:u(v(h)),blocked_extensions:u(v(h)),allowed_capabilities:u(v(h)),blocked_capabilities:u(v(h)),allowed_surfaces:u(v(h)),blocked_surfaces:u(v(h)),allowed_commands:u(v(h)),blocked_commands:u(v(h)),allowed_actions:u(v(h)),blocked_actions:u(v(h)),allowed_services:u(v(h)),blocked_services:u(v(h)),extension_overrides:u(v(r_))})),Qe=Go(128),i_=C({harness:Go(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u),environment_keys:u(v(Qe,64)),model_environment_keys:u(v(Qe,64)),session_environment_keys:u(v(Qe,64)),provenance_environment_keys:u(cn(v(Qe,64))),provenance_resolvers:u(cn(R("ai_agent_version","claude_session_file"))),provenance_unavailable_dimensions:u(v(Qe,64)),argv_markers:u(v(Qe,64)),client_names:u(v(Qe,64))}),s_=C({version:N({int:!0}),id_prefix:h,ids:u(C({token_length:u(N({int:!0,min:4,max:12}))})),author_default:h,agent_identity:u(C({probes_enabled:u(O),identity_vocabulary:u(C({version:N({int:!0,positive:!0}),aliases:cn(Go(128,/^[a-z0-9]+(?:-[a-z0-9]+)*$/u))})),harness_signals:v(i_)})),mutation_guard:u(C({require_attributed_author:u(O),secret_guard:u(R("off","advise","block")),stale_in_progress_hours:u(N({int:!0,positive:!0}))})),item_format:u(R("toon","json_markdown")),locks:C({ttl_seconds:N({int:!0}),wait_ms:u(N({int:!0,min:0}))}),checkpoints:u(C({retention_days:u(N({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(N({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(v(h)),lifecycle_stale_blocker_reason_patterns:u(v(h)),lifecycle_closure_like_blocked_reason_patterns:u(v(h)),lifecycle_closure_like_resolution_patterns:u(v(h)),lifecycle_closure_like_actual_result_patterns:u(v(h)),estimate_defaults_by_type:u(cn(N({int:!0,positive:!0})))})),governance:t_,workflow:u(C({definition_of_done:v(h)})),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(h),installation_id:u(h),retention_days:u(N({int:!0,positive:!0}))})),agent_guidance:u(C({prompt_completed:u(O),declined:u(O),declined_at:u(h),template_version:u(N({int:!0,positive:!0})),last_checked_files:u(v(h))})),item_types:u(C({definitions:v(Xm)})),schema:e_,context:u(C({default_depth:u(R("brief","standard","deep")),activity_limit:u(N({int:!0,positive:!0})),stale_threshold_days:u(N({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:v(h),disabled:v(h),policy:o_}),search:C({score_threshold:N(),hybrid_semantic_weight:u(N()),max_results:N({int:!0}),embedding_model:h,embedding_corpus_max_characters:u(N()),embedding_batch_size:N({int:!0}),embedding_timeout_ms:u(N({int:!0})),scanner_max_batch_retries:N({int:!0}),provider:u(h),default_mode:u(R("auto","keyword","semantic","hybrid")),corpus_fields:u(v(h)),mutation_refresh_policy:u(R("cache_only","semantic_configured","semantic_auto")),query_expansion:u(C({enabled:u(O),provider:u(h)})),rerank:u(C({enabled:u(O),model:u(h),top_k:u(N({int:!0,positive:!0}))})),bm25:u(C({k1:u(N()),b:u(N())}))}),providers:C({openai:C({base_url:h,api_key:h,model:h}),ollama:C({base_url:h,model:h})}),vector_store:C({adapter:u(h),collection_name:u(h),qdrant:C({url:h,api_key:h}),lancedb:C({path:h})})});function Ko(e){let t=s_(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 dn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Xo(e,t,r,n=[]){if(ie(e,t)&&(n.length>0||dn(r)))return r;if(ie(e,r)||ie(t,r))return t;if((e===void 0||dn(e))&&dn(t)&&dn(r)){let o=e??{},i=new Set([...Object.keys(o),...Object.keys(t),...Object.keys(r)]);return Object.fromEntries([...i].flatMap(s=>{let a=Xo(Object.hasOwn(o,s)?o[s]:void 0,Object.hasOwn(t,s)?t[s]:void 0,Object.hasOwn(r,s)?r[s]:void 0,[...n,s]);return a===void 0?[]:[[s,a]]}))}throw new g(`Settings changed concurrently at ${n.join(".")||"<root>"}; read the latest settings and reapply the intended change.`,w.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 a_={Epic:2880,Feature:480,Story:480,Milestone:2880,Task:120,Issue:60,Bug:60,Chore:30,Decision:15,Plan:120},Za=120;function Yo(e){return typeof e=="number"&&Number.isFinite(e)&&e>0}function tc(e){let t=new Map;for(let[r,n]of Object.entries(e))t.set(r.toLowerCase(),n);return t}var c_=tc(a_),ec=new WeakMap;function d_(e){let t=ec.get(e);if(t)return t;let r=tc(e);return ec.set(e,r),r}function pw(e,t){let r=(e??"").trim().toLowerCase();if(r.length===0)return Za;if(t){let o=d_(t).get(r);if(Yo(o))return Math.floor(o)}let n=c_.get(r);return Yo(n)?Math.floor(n):Za}function Jo(e){let t={};if(e===null||typeof e!="object"||Array.isArray(e))return t;for(let[r,n]of Object.entries(e)){let o=r.trim();o.length===0||!Yo(n)||(t[o]=Math.floor(n))}return t}import{stat as l_}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 ln=new Map;function rc(e){return[...new Set(e.map(t=>t.trim()).filter(t=>t.length>0))].sort((t,r)=>t.localeCompare(r))}async function u_(e){try{let t=await l_(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=rc(e),r=await Promise.all(t.map(n=>u_(n)));return r.sort((n,o)=>n.path.localeCompare(o.path)),r}function Xt(e,t){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r+=1){let n=e[r],o=t[r];if(n.path!==o.path||n.mtime_ms!==o.mtime_ms||n.size!==o.size)return!1}return!0}function nc(e){return ln.get(e)}function un(e,t){let r=rc(t.tracked_paths),n=[...t.signatures].map(o=>({path:o.path,mtime_ms:o.mtime_ms,size:o.size})).sort((o,i)=>o.path.localeCompare(i.path));ln.set(e,{tracked_paths:r,signatures:n,value:t.value})}function De(e){if(e){ln.delete(e);return}ln.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]="5f76d246-c11b-5e54-9223-24b48a0e2d2d")}catch{}})();var ti=new f_;async function Mw(e,t,r=()=>!0){let n=new Set([dc.resolve(e)]);try{n.add(await cc(e))}catch{}return ti.run([...ti.getStore()??[],[n,r]],t)}function __(e){let t=dc.resolve(e);return ti.getStore()?.some(([r,n])=>r.has(t)&&n())??!1}var p_="settings:write",lc=Symbol("pm.settings.persist_source"),h_=128,y_=new Set(["off","advisory","strict"]);function oc(e){return structuredClone(vi[e])}function g_(e){return e==="minimal"||e==="default"||e==="strict"||e==="custom"?e:k.governance.preset}function ic(e,t){let r=typeof t.create_default_type=="string"?t.create_default_type.trim():void 0;return r&&r.length>0&&(e.create_default_type=r),(t.workflow_enforcement==="off"||t.workflow_enforcement==="warn"||t.workflow_enforcement==="strict")&&(e.workflow_enforcement=t.workflow_enforcement),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 b_(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,r={};t&&t.length>0&&(r.create_default_type=t),(e.workflow_enforcement==="off"||e.workflow_enforcement==="warn"||e.workflow_enforcement==="strict")&&(r.workflow_enforcement=e.workflow_enforcement),typeof e.require_close_reason=="boolean"&&(r.require_close_reason=e.require_close_reason),y_.has(String(e.duplicate_detection_mode))&&(r.duplicate_detection_mode=e.duplicate_detection_mode);let n=e.duplicate_detection_threshold;[typeof n=="number",Number.isFinite(n),Number(n)>=0,Number(n)<=1].every(Boolean)&&(r.duplicate_detection_threshold=n);let o=e.duplicate_detection_limit;return[typeof o=="number",Number.isSafeInteger(o),Number(o)>=0,Number(o)<=20].every(Boolean)&&(r.duplicate_detection_limit=o),r}function _n(e){let t=e.governance??{},r=g_(t.preset),n=w_(t);if(r==="custom"){let s=oc("default"),a=n.require_close_reason??s.require_close_reason;return{preset:r,ownership_enforcement:t.ownership_enforcement??s.ownership_enforcement,create_mode_default:t.create_mode_default??s.create_mode_default,close_validation_default:t.close_validation_default??s.close_validation_default,parent_reference:t.parent_reference??s.parent_reference,metadata_profile:t.metadata_profile??s.metadata_profile,force_required_for_stale_lock:t.force_required_for_stale_lock??s.force_required_for_stale_lock,...n,require_close_reason:a,duplicate_detection_mode:n.duplicate_detection_mode??s.duplicate_detection_mode,duplicate_detection_threshold:n.duplicate_detection_threshold??s.duplicate_detection_threshold,duplicate_detection_limit:n.duplicate_detection_limit??s.duplicate_detection_limit}}let o=oc(r),i=n.require_close_reason??o.require_close_reason;return{preset:r,...o,...n,require_close_reason:i}}function uc(){return structuredClone(k)}function fc(e){return e==="cache_only"||e==="semantic_configured"||e==="semantic_auto"?e:k.search.mutation_refresh_policy}function mc(e){return e==="auto"||e==="keyword"||e==="semantic"||e==="hybrid"?e:"auto"}function _c(e){return typeof e=="boolean"?e:k.search.query_expansion.enabled}function pc(e){return typeof e!="string"?k.search.query_expansion.provider:e.trim()}function hc(e){return typeof e=="boolean"?e:k.search.rerank.enabled}function yc(e){return typeof e!="string"?k.search.rerank.model:e.trim()}function gc(e){return typeof e=="number"&&Number.isFinite(e)&&Number.isInteger(e)&&e>0?e:k.search.rerank.top_k}function bc(e){if(typeof e!="string")return k.vector_store.collection_name;let t=e.trim().replaceAll(/[^a-zA-Z0-9_-]/g,"_").slice(0,h_);return t.length>0?t:k.vector_store.collection_name}function Qo(e){return{present:Array.isArray(e),values:Array.isArray(e)?structuredClone(e):[]}}function wc(e,t){let r=e.schema,n=Qo(r?.statuses),o=Qo(r?.fields),i=Qo(r?.type_workflows);return{persisted_settings:structuredClone(e),source_settings:structuredClone(e),has_source_item_type_definitions:Array.isArray(e.item_types?.definitions),source_item_type_definitions:wt(e.item_types?.definitions),has_source_schema_statuses:n.present,source_schema_statuses:n.values,has_source_schema_fields:o.present,source_schema_fields:o.values,has_source_schema_type_workflows:i.present,source_schema_type_workflows:i.values,runtime_item_type_definitions: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 oi(e,t){Object.defineProperty(e,lc,{value:t,writable:!0,configurable:!0,enumerable:!1})}function vc(e){let t=e[lc];if(!(!t||typeof t!="object"))return t}function fn(e){let t=structuredClone(e.settings),r=vc(e.settings);return r&&oi(t,r),{settings:t,metadata:{has_explicit_item_format:e.metadata.has_explicit_item_format},warnings:[...e.warnings]}}function v_(e,t,r){let n=Tt(t);return[r,Ct(e,n.files.types,St.types),Ct(e,n.files.statuses,St.statuses),Ct(e,n.files.fields,St.fields),Ct(e,n.files.workflows,St.workflows)]}async function E_(e,t,r){let n=await Ae(t);un(e,{tracked_paths:t,signatures:n,value:fn(r)})}async function k_(e,t,r){try{await E_(e,t,r)}catch{De(e)}}function sc(e,t){return e.find(r=>r.path===t)}function I_(e,t,r){for(let n of r){let o=sc(e,n),i=sc(t,n);if(!o||!i||!Xt([o],[i]))return!1}return!0}async function Zo(e,t,r,n,o){try{let i=await Ae(t);if(!I_(n,i,o)){De(e);return}un(e,{tracked_paths:t,signatures:i,value:fn(r)})}catch{De(e)}}function S_(e,t){let r=Tt(e.schema),n=wt(e.item_types?.definitions);if(!t)return{item_type_definitions:n,schema_statuses:r.statuses,schema_fields:r.fields,schema_type_workflows:r.type_workflows};let o=r.type_workflows??[],i=ie(n,t.runtime_item_type_definitions),s=ie(r.statuses,t.runtime_schema_statuses),a=ie(r.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):[]:n,schema_statuses:s?t.has_source_schema_statuses?structuredClone(t.source_schema_statuses):[]:r.statuses,schema_fields:a?t.has_source_schema_fields?structuredClone(t.source_schema_fields):[]:r.fields,schema_type_workflows:c?t.has_source_schema_type_workflows?structuredClone(t.source_schema_type_workflows):void 0:r.type_workflows}}function le(e){return{settings:uc(),metadata:{has_explicit_item_format:!1},warnings:e?[e]:[]}}function Ec(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=e.item_format;return t==="toon"||t==="json_markdown"}function ri(e){return[...new Set((e??[]).map(t=>t.trim()).filter(t=>t.length>0))].sort((t,r)=>t.localeCompare(r))}function kc(e){let t=k.agent_guidance,r=e?.template_version;return{prompt_completed:e?.prompt_completed===!0,declined:e?.declined===!0,declined_at:typeof e?.declined_at=="string"?e.declined_at:t.declined_at,template_version:typeof r=="number"&&Number.isInteger(r)&&r>0?r:t.template_version,last_checked_files:ri(e?.last_checked_files??t.last_checked_files)}}function oe(e){return[...new Set((e??[]).map(t=>t.trim().toLowerCase()).filter(t=>t.length>0))].sort((t,r)=>t.localeCompare(r))}function T_(e){return e==="off"||e==="warn"||e==="enforce"?e:k.extensions.policy.mode}function C_(e){return e==="off"||e==="warn"||e==="enforce"?e:k.extensions.policy.trust_mode}function Ic(e){return e==="none"||e==="restricted"||e==="strict"?e:k.extensions.policy.default_sandbox_profile}function O_(e){let t=e.name.trim().toLowerCase();if(t.length===0)return null;let r={name:t};e.disabled===!0&&(r.disabled=!0),e.require_trusted===!0&&(r.require_trusted=!0),e.require_provenance===!0&&(r.require_provenance=!0),e.sandbox_profile!==void 0&&(r.sandbox_profile=Ic(e.sandbox_profile));let n=oe(e.allowed_capabilities),o=oe(e.blocked_capabilities),i=oe(e.allowed_surfaces),s=oe(e.blocked_surfaces),a=oe(e.allowed_commands),c=oe(e.blocked_commands),d=oe(e.allowed_actions),l=oe(e.blocked_actions),f=oe(e.allowed_services),m=oe(e.blocked_services);return n.length>0&&(r.allowed_capabilities=n),o.length>0&&(r.blocked_capabilities=o),i.length>0&&(r.allowed_surfaces=i),s.length>0&&(r.blocked_surfaces=s),a.length>0&&(r.allowed_commands=a),c.length>0&&(r.blocked_commands=c),d.length>0&&(r.allowed_actions=d),l.length>0&&(r.blocked_actions=l),f.length>0&&(r.allowed_services=f),m.length>0&&(r.blocked_services=m),r}function x_(e){let t=new Map;for(let r of e??[]){let n=O_(r);n&&t.set(n.name,n)}return[...t.values()].sort((r,n)=>r.name.localeCompare(n.name))}function ei(e){return e==="block"||e==="warn"?e:void 0}function R_(e){if(typeof e=="string")return ei(e);if(typeof e=="object"&&e!==null&&!Array.isArray(e)){let t=ei(e.global),r=ei(e.project);return t===void 0&&r===void 0?void 0:{...t!==void 0?{global:t}:{},...r!==void 0?{project:r}:{}}}}function Y(e,t){return oe(e?.[t]??k.extensions.policy[t])}function Sc(e){let t=R_(e?.pm_max_version_exceeded_mode);return{mode:T_(e?.mode),trust_mode:C_(e?.trust_mode),...t!==void 0?{pm_max_version_exceeded_mode:t}:{},require_provenance:e?.require_provenance===!0,trusted_extensions:Y(e,"trusted_extensions"),default_sandbox_profile:Ic(e?.default_sandbox_profile),allowed_extensions:Y(e,"allowed_extensions"),blocked_extensions:Y(e,"blocked_extensions"),allowed_capabilities:Y(e,"allowed_capabilities"),blocked_capabilities:Y(e,"blocked_capabilities"),allowed_surfaces:Y(e,"allowed_surfaces"),blocked_surfaces:Y(e,"blocked_surfaces"),allowed_commands:Y(e,"allowed_commands"),blocked_commands:Y(e,"blocked_commands"),allowed_actions:Y(e,"allowed_actions"),blocked_actions:Y(e,"blocked_actions"),allowed_services:Y(e,"allowed_services"),blocked_services:Y(e,"blocked_services"),extension_overrides:x_(e?.extension_overrides??k.extensions.policy.extension_overrides)}}function Tc(e){return[...new Set((e??[]).map(t=>t.trim().toLowerCase().replaceAll("-","_")))].filter(t=>t.length>0).sort((t,r)=>t.localeCompare(r)).filter(t=>["author","acceptance_criteria","estimated_minutes","close_reason","reviewer","risk","confidence","sprint","release"].includes(t))}function Ne(e){return[...new Set((e??[]).map(t=>t.trim().toLowerCase()).filter(t=>t.length>0))].sort((t,r)=>t.localeCompare(r))}function H(e,t){return e===void 0?t:e}function J(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:{}}function ni(e){return Array.isArray(e)?e:[]}function A_(e,t,r){return{...t.validation,...e.validation,parent_reference:r.parent_reference,metadata_profile:r.metadata_profile,metadata_required_fields:Tc(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:Jo(e.validation?.estimate_defaults_by_type)}}function D_(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 N_(e,t){return{...t.search,...e.search,default_mode:mc(e.search?.default_mode),mutation_refresh_policy:fc(e.search?.mutation_refresh_policy),query_expansion:{...t.search.query_expansion,...e.search?.query_expansion,enabled:_c(e.search?.query_expansion?.enabled),provider:pc(e.search?.query_expansion?.provider)},rerank:{...t.search.rerank,...e.search?.rerank,enabled:hc(e.search?.rerank?.enabled),model:yc(e.search?.rerank?.model),top_k:gc(e.search?.rerank?.top_k)}}}function L_(e,t){return{adapter:e.vector_store.adapter??t.vector_store.adapter,collection_name:bc(e.vector_store.collection_name),qdrant:{...t.vector_store.qdrant,...e.vector_store.qdrant},lancedb:{...t.vector_store.lancedb,...e.vector_store.lancedb}}}function P_(e,t){return e.item_format==="json_markdown"?"toon":e.item_format??t.item_format}function M_(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 j_(e,t){return{openai:{...t.providers.openai,...e.providers.openai},ollama:{...t.providers.ollama,...e.providers.ollama}}}function wt(e){let t=(e??[]).map(n=>Ci(n)).filter(n=>n!==null),r=new Map;for(let n of t)r.set(n.name.toLowerCase(),n);return[...r.values()].sort((n,o)=>n.name.localeCompare(o.name))}function mn(e){let t=uc(),r=_n({governance:e.governance??{preset:"default"}});return{...t,...e,item_format:P_(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:A_(e,t,r),governance:r,workflow:{definition_of_done:[...e.workflow?.definition_of_done??t.workflow.definition_of_done]},testing:{record_results_to_items:e.testing?.record_results_to_items??t.testing.record_results_to_items,allow_untrusted_linked_tests:e.testing?.allow_untrusted_linked_tests??t.testing.allow_untrusted_linked_tests},telemetry:D_(e,t),agent_guidance:kc(e.agent_guidance??t.agent_guidance),item_types:{definitions:wt(e.item_types?.definitions)},schema:Tt(e.schema??t.schema),context:M_(e,t),extensions:{enabled:[...e.extensions.enabled],disabled:[...e.extensions.disabled],policy:Sc(e.extensions.policy??t.extensions.policy)},search:N_(e,t),providers:j_(e,t),vector_store:L_(e,t)}}function F_(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(J(t.identity_vocabulary),["version","aliases"])),e.agent_identity.harness_signals=ni(e.agent_identity.harness_signals).map(r=>T(J(r),["harness","environment_keys","model_environment_keys","session_environment_keys","provenance_environment_keys","provenance_resolvers","provenance_unavailable_dimensions","argv_markers","client_names"])),e.locks=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(J(e.schema.files),["types","statuses","fields","workflows"]),e.schema.workflow=T(J(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(J(e.context.sections),["hierarchy","activity","progress","blockers","files","workload","staleness","tests"]),e.extensions=T(e.extensions,["enabled","disabled","policy"]),e.extensions.policy=T(J(e.extensions.policy),["mode","trust_mode","pm_max_version_exceeded_mode","require_provenance","trusted_extensions","default_sandbox_profile","allowed_extensions","blocked_extensions","allowed_capabilities","blocked_capabilities","allowed_surfaces","blocked_surfaces","allowed_commands","blocked_commands","allowed_actions","blocked_actions","allowed_services","blocked_services","extension_overrides"]),e.extensions.policy.extension_overrides=ni(e.extensions.policy.extension_overrides).map(r=>T(J(r),["name","disabled","require_trusted","require_provenance","sandbox_profile","allowed_capabilities","blocked_capabilities","allowed_surfaces","blocked_surfaces","allowed_commands","blocked_commands","allowed_actions","blocked_actions","allowed_services","blocked_services"])),e.search=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(J(e.search.query_expansion),["enabled","provider"]),e.search.rerank=T(J(e.search.rerank),["enabled","model","top_k"]),e.providers=T(e.providers,["openai","ollama"]),e.providers.openai=T(J(e.providers.openai),["base_url","api_key","model"]),e.providers.ollama=T(J(e.providers.ollama),["base_url","model"]),e.vector_store=T(e.vector_store,["adapter","collection_name","qdrant","lancedb"]),e.vector_store.qdrant=T(J(e.vector_store.qdrant),["url","api_key"]),e.vector_store.lancedb=T(J(e.vector_store.lancedb),["path"])}function $_(e){return{...e,locks:H(e.locks,k.locks),ids:H(e.ids,k.ids),agent_identity:H(e.agent_identity,k.agent_identity),mutation_guard:H(e.mutation_guard,k.mutation_guard),checkpoints:H(e.checkpoints,k.checkpoints),output:H(e.output,k.output),ux:H(e.ux,k.ux),history:H(e.history,k.history),validation:H(e.validation,k.validation),workflow:H(e.workflow,k.workflow),testing:H(e.testing,k.testing),telemetry:H(e.telemetry,k.telemetry),agent_guidance:H(e.agent_guidance,k.agent_guidance),item_types:H(e.item_types,k.item_types),schema:H(e.schema,k.schema),context:H(e.context,k.context),extensions:H(e.extensions,k.extensions),search:H(e.search,k.search),providers:H(e.providers,k.providers),vector_store:H(e.vector_store,k.vector_store)}}function H_(e,t){return{...e.validation,parent_reference:t.parent_reference,metadata_profile:t.metadata_profile,metadata_required_fields:Tc(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:Jo(e.validation?.estimate_defaults_by_type)}}function z_(e){return{...k.search,...e.search,default_mode:mc(e.search?.default_mode),mutation_refresh_policy:fc(e.search?.mutation_refresh_policy),query_expansion:{...k.search.query_expansion,...e.search?.query_expansion,enabled:_c(e.search?.query_expansion?.enabled),provider:pc(e.search?.query_expansion?.provider)},rerank:{...k.search.rerank,...e.search?.rerank,enabled:hc(e.search?.rerank?.enabled),model:yc(e.search?.rerank?.model),top_k:gc(e.search?.rerank?.top_k)}}}function U_(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 B_(e){return{...e.vector_store,adapter:e.vector_store?.adapter??k.vector_store.adapter,collection_name:bc(e.vector_store?.collection_name),qdrant:{...e.vector_store?.qdrant},lancedb:{...e.vector_store?.lancedb}}}function W_(e,t,r,n){return{...e,item_format:"toon",validation:H_(e,t),governance:t,agent_guidance:kc(e.agent_guidance),item_types:{definitions:n.item_type_definitions},schema:{...r,statuses:n.schema_statuses,fields:n.schema_fields,type_workflows:n.schema_type_workflows},search:z_(e),context:U_(e),extensions:{enabled:ri(e.extensions?.enabled),disabled:ri(e.extensions?.disabled),policy:Sc(e.extensions?.policy)},vector_store:B_(e)}}function Cc(e,t){for(let r of Object.keys(t)){let n=Reflect.get(t,r),o=e[r];typeof n=="object"&&n!==null&&!Array.isArray(n)&&typeof o=="object"&&o!==null&&!Array.isArray(o)?Cc(o,n):e[r]=structuredClone(n)}}function Oc(e,t,r){let n=new Set([...Object.keys(t),...Object.keys(r)]);for(let o of n){let i=t[o],s=r[o];if(!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:{};Oc(c,i,s),Object.keys(c).length>0?e[o]=c:delete e[o];continue}e[o]=structuredClone(s)}}}var ii=["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 ac(e,t){let r=$_(e),n=_n(r),o=Tt(r.schema),i=S_(r,t),s=W_(r,n,o,i),a=T({...s,governance:b_(n)},ii);return F_(a),a}function V_(e,t={}){let r=t.source===void 0?t.persist_source:wc(t.source.validated,mn(t.source.validated)),n=ac(e,r);if(r){let o=mn(r.source_settings);o.item_types={definitions:structuredClone(r.runtime_item_type_definitions)},o.schema={...o.schema,statuses:structuredClone(r.runtime_schema_statuses),fields:structuredClone(r.runtime_schema_fields),type_workflows:structuredClone(r.runtime_schema_type_workflows)};let i=ac(o,r);t.source!==void 0&&Cc(i,t.source.validated);let s=structuredClone(t.source===void 0?r.source_settings:t.source.raw);return Oc(s,i,n),`${JSON.stringify(T(s,ii),null,2)}
162
+ `}return`${JSON.stringify(n,null,2)}
163
+ `}async function q_(e){let t;try{t=await cc(e)}catch(a){if(Fe(a))return le();throw a}let r=et(t),n;try{n=await m_(r)}catch(a){if(Fe(a))return le();throw a}if(!n.isFile())throw new TypeError(`Transaction preview requires regular files and directories: ${r}`);let o;try{o=await Ii(r,`Transaction preview requires regular files and directories: ${r}`)}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=Ko(i);return s.success?{settings:mn(s.data),metadata:{has_explicit_item_format:Ec(i)},warnings:s.data.item_format==="json_markdown"?["settings_item_format_legacy_json_markdown_coerced_to_toon"]:[]}:le("settings_read_invalid_schema")}async function xc(e){if(__(e))return q_(e);let t=et(e),r=[t];await ke({path:t,scope:"project"});let n=nc(e);if(n){let d=await Ae(n.tracked_paths);if(Xt(d,n.signatures))return fn(n.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 Zo(e,[t],d,o,[t]),d}let s=await Ae([t]);if(!Xt(o,s))return De(e),xc(e);let a;try{a=JSON.parse(i)}catch{let d=le("settings_read_invalid_json");return await Zo(e,[t],d,s,[t]),d}let c=Ko(a);if(!c.success){let d=le("settings_read_invalid_schema");return await Zo(e,[t],d,s,[t]),d}try{let d=mn(c.data),l=v_(e,d.schema,t);r=l;let f=await Ae(l),m=await Pi(e,d.schema),p=await Mi(e,d.schema),_=await Ae(l),b={...d,item_types:{definitions:wt([...d.item_types.definitions,...ni(p.type_definitions_from_file)])},schema:p.schema};oi(b,wc(c.data,b));let y={settings:b,metadata:{has_explicit_item_format:Ec(a)},warnings:[...c.data.item_format==="json_markdown"?["settings_item_format_legacy_json_markdown_coerced_to_toon"]:[],...m.created_paths.map(S=>`runtime_schema_bootstrap_created:${S}`),...p.warnings]};return m.created_paths.length===0?Xt(f,_)?un(e,{tracked_paths:l,signatures:_,value:fn(y)}):De(e):De(e),y}catch{let d=le("settings_read_merge_failed");return await k_(e,r,d),d}}async function Rc(e){return(await xc(e)).settings}async function jw(e,t,r=p_){let n=et(e),o=vc(t),i=V_(t,{persist_source:o}),s=JSON.parse(i);try{await va({pmRoot:e,filePath:n,mutate:a=>{let c=null;if(a!==null)try{c=JSON.parse(a)}catch{throw new g("Existing settings.json is malformed; the settings write was refused.",w.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(Xo(o.persisted_settings,s,c),ii),null,2)}
164
+ `:i,result:void 0}},op:r,author:gs(void 0,t.author_default),lockTtlSeconds:t.locks.ttl_seconds,lockWaitMs:t.locks.wait_ms,recordCreation:!1}),o&&oi(t,{...o,persisted_settings:structuredClone(s)}),await _e({path:n,scope:"project",op:r})}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 G_(e,t){let r=e.trim().toLowerCase();if(r.length===0)return;let n=Math.floor(r.length/3);return t.map(o=>({candidate:o,distance:Qt(r,o.toLowerCase(),n)??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 Ac(e){return["pm",...e].map(t=>/^[A-Za-z0-9_./:@=-]+$/u.test(t)?t:JSON.stringify(t)).join(" ")}function Uw(e){let t=e.command_path.trim().replaceAll(/\s+/gu," "),r=e.token.trim(),n=r.length===0?"<empty>":r,o=[...new Set(e.allowed.map(m=>m.trim()))].filter(Boolean).sort((m,p)=>m.localeCompare(p));if(t.length===0||n.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:G_(n,o),l=Ac([...i,n,...s]),f=e.retry_command??(d?Ac([...i,d,...s]):void 0);return new g(`Unknown ${a} ${c} "${n}". Allowed: ${o.join(", ")}${e.message_suffix??""}`,e.exit_code??w.USAGE,{code:"unknown_subcommand",reason:"unknown_positional_token",value:n,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 K_ from"node:fs/promises";import X_ from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="1d746e4d-ff6c-54ec-a94f-4ec4cb8f77b5")}catch{}})();function Y_(e){return[...new Set(e.filter(t=>t.trim().length>0))].sort((t,r)=>t.localeCompare(r))}function J_(e,t){return new g(`Missing history stream for ${e}. ${t} requires history streams when settings.history.missing_stream is strict_error.`,w.NOT_FOUND)}async function Q_(e,t){return await ki(X_.dirname(e)),await(await K_.open(e,"a")).close(),_e({path:e,scope:"project",op:`${t}:history:auto_create`})}async function si(e){return Z_({pmRoot:e.pmRoot,settings:e.settings,itemIds:[e.itemId],commandLabel:e.commandLabel})}async function Z_(e){let t=Y_(e.itemIds),r=[],n=[];for(let o of t){let i=fe(e.pmRoot,o);if(!await je(i)){if(e.settings.history.missing_stream==="strict_error")throw J_(o,e.commandLabel);n.push(...await Q_(i,e.commandLabel)),n.push(`history_stream_auto_created:${o}`),r.push(o)}}return{auto_created_ids:r,warnings:n}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="5db05e2f-4742-526b-b1c8-b97ff302b40e")}catch{}})();function Yt(e,t=!1){let r=e[0];if(r?.op!=="history_compact_baseline")return 0;let n=r.context?.history_compaction,o=typeof n=="object"&&n!==null&&"version_offset"in n?n.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 g("This compacted stream has no trustworthy version offset; numeric history addresses are unavailable.",w.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 ep(e,t){let r=-1;return e.forEach((n,o)=>{let i=Date.parse(n.ts);if(!Number.isFinite(i))throw new g(`History for this item contains invalid timestamp at entry ${o+1}.`,w.GENERIC_FAILURE);i<=t&&(r=o)}),r}function tp(e,t){let r=e[0]?.ts??null,n=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:r,last_timestamp:n}};return n!==null&&(o.examples=[n],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:n}}function rp(e,t){let r={};if(t instanceof Error&&t.message.trim().length>0&&(r.reason=t.message.trim()),typeof t!="object"||t===null)return r;let n=t;if(typeof n.index=="number"&&Number.isInteger(n.index)&&n.index>=0&&(r.patchIndex=n.index),typeof n.operation=="object"&&n.operation!==null){let o=n.operation;Object.assign(r,Object.fromEntries(["op","path","from"].flatMap(i=>{let s=o[i];return typeof s=="string"?[[i,s]]:[]})))}if(r.patchIndex!==void 0){let o=e[r.patchIndex];o&&(r.op??=o.op,r.path??=o.path,r.from??=o.from)}return r}function Dc(e,t,r={}){let n=e.trim(),o=r.errorSubject??"history",i=o==="restore"?"Restore":"History",{guidance:s,lastTimestamp:a}=tp(t,Yt(t,!0));if(!n)throw new g(`Missing ${o} target. Use a timestamp or version number.`,w.USAGE,s);if(/^\d+$/.test(n)){let l=Yt(t),f=Number(n);if(f>=1&&f<=l)throw new g(`History version ${f} was pruned by compaction.`,w.USAGE,{...s,code:"history_version_pruned"});if(!Number.isSafeInteger(f)||f<1||f>l+t.length)throw new g(`${i} version must be between ${l+1} and ${l+t.length} for this item.`,w.USAGE,s);return{kind:"version",raw:n,historyIndex:f-l-1}}let c=Date.parse(n);if(!Number.isFinite(c))throw new g(`Invalid ${o} target "${e}". Use a positive version number or ISO timestamp.`,w.USAGE,s);let d=ep(t,c);if(d<0||r.allowFutureTimestamp!==!0&&c>Date.parse(a))throw new g(o==="restore"?`No history entries exist at or before timestamp ${n}.`:`No history entry exists at timestamp ${n}.`,w.USAGE,s);return{kind:"timestamp",raw:n,historyIndex:d}}function ai(e,t,r,n){let o=Xe(e,t);if(o.ok)return o.document;let i=rp(t,o.error),s=[`history_op=${n}`,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 g(`Failed to apply history patch at entry ${r} (${s.join(", ")}). ${i.reason??String(o.error)}`,w.GENERIC_FAILURE)}function Nc(e,t){let r=e[0];if(r&&r.op!=="create"&&r.op!=="history_compact_baseline"){let s=Xe(mt,r.patch);if(!s.ok||typeof s.document.metadata.id!="string")throw new g("History starts without a reconstructable item baseline.",w.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 n=e.slice(0,t+1),o=we([...n]),i=structuredClone(mt);for(let s=0;s<=t;s+=1){let a=e[s];if(!a)throw new g(`History target entry ${s+1} does not exist.`,w.USAGE);i=ai(i,a.patch,s+1,a.op)}if(!o.ok)throw new g(`History cannot be replayed: ${o.errors.join(", ")}.`,w.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 iv(e,t){if(Object.keys(e.metadata).length>0){if(typeof e.metadata.id!="string"||!Array.isArray(e.metadata.tags))throw new g("History has no complete item baseline for this target.",w.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 g(`History target ${t.raw} resolves to a deleted state; choose a version or timestamp where the item exists.`,w.USAGE)}import di from"node:fs/promises";import pn 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 li(e){let t=["--pm-path",e,"init","--defaults","--agent-guidance","skip"];return{suggested_retry:$e(t),suggested_retry_args:t}}function hn(e){return new g(`Tracker root is not a directory at ${e}.`,w.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 ci(e){return new g(`Tracker root is not readable at ${e}.`,w.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 np(e){let t=pn.resolve(e),r=pn.parse(t).root,n=pn.dirname(t);for(;n!==r;){let o;try{o=await di.stat(n)}catch(i){if(Le(i,"ENOTDIR"))throw hn(e);if(!Le(i,"ENOENT"))throw i;n=pn.dirname(n);continue}if(!o.isDirectory())throw hn(e);return}}async function vt(e){let t;try{t=await di.stat(e)}catch(r){throw Le(r,"ENOENT")?(await np(e),new g(`Tracker is not initialized at ${e}. Tracker root does not exist. Run pm init first.`,w.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:li(e)})):Le(r,"ENOTDIR")?hn(e):Le(r,"EACCES")||Le(r,"EPERM")?ci(e):r}if(!t.isDirectory())throw hn(e);if(process.platform!=="win32"&&((t.mode&292)===0||(t.mode&73)===0))throw ci(e);try{await(await di.opendir(e)).close()}catch(r){throw Le(r,"EACCES")||Le(r,"EPERM")?ci(e):r}}async function ui(e){if(await vt(e),!await je(et(e)))throw new g(`Tracker is not initialized at ${e}. Run pm init first.`,w.NOT_FOUND,{code:"tracker_not_initialized",reason:"settings_missing",resolved_path:e,nextSteps:["Initialize the selected tracker root with the emitted retry."],recovery:li(e)})}import Et from"node:fs/promises";import{statSync as op}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 ip(e,t){let r=-1,n=structuredClone(mt);for(let[a,c]of e.entries()){if(n=ai(n,c.patch,a+1,c.op),n.metadata.id!==void 0&&n.metadata.id!==t)throw new g(`History belongs to item ${String(n.metadata.id)}, expected ${t}.`,w.GENERIC_FAILURE,{code:"history_replay_invalid",required:"Recover the correct history stream for this item before attempting restoration."});n.metadata.id===t&&Array.isArray(n.metadata.tags)&&(r=a)}let o=Yt(e,!0),i=r<0||o===null?null:o+r+1,s=i===null?void 0:String(i);if(r>=0&&s===void 0){let a=e[r].ts;Dc(a,e).historyIndex===r&&(s=a)}return{version:i,target:s}}async function Lc(e,t,r){let n=new Set([Ye(t,r),jt(t)]);for(let o of n){let i=fe(e,o);if(!op(i,{throwIfNoEntry:!1})?.isFile())continue;let s=await be(i,o),a=-1;if(s.forEach((p,_)=>{p.op==="delete"&&(a=_)}),a<0)continue;let c=Nc(s,s.length-1);if(Object.keys(c.metadata).length!==0)continue;let{version:d,target:l}=ip(s,o),f=l===void 0?["history",o,"--verify"]:["get",o,"--at",l],m=$e(f);return new g(`Item ${o} was deleted at ${s[a].ts}; its history is retained.`,w.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:[m,...l===void 0?["Recover the pre-compaction history from version control."]:[$e(["restore",o,l])]],recovery:{suggested_retry:m,suggested_retry_args:f}})}}import fi from"node:path";import{isUtf8 as sp}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]="5dd36511-d680-55ce-b535-5c1fbfaf63ec")}catch{}})();async function ap(e){try{return await Et.access(e),!0}catch{return!1}}function cp(e,t){e&&(e.includes(t)||e.push(t))}function Pc(e){return e??or(me())}function dp(e){return e==="toon"?["toon","json_markdown"]:e==="json_markdown"?["json_markdown","toon"]:["toon","json_markdown"]}async function yn(e,t,r="pm-",n,o=Pe){let i=t.trim(),s=i.startsWith("#")?i.slice(1):i;if(s.length===0)return null;let a=Ye(t,r),c=jt(t),d=[...new Set([s,a,c])].filter(m=>m.length>0),l=Object.entries(o),f=dp(n);for(let m of d){let p=new Map;for(let[_]of l)for(let b of f){let y=vn(e,_,m,b,o);await ap(y)&&p.set(y,p.get(y)??{id:m,type:_,itemPath:y,item_format:b})}if(p.size>1){let _=[...p.keys()].map(b=>fi.relative(e,b).split(fi.sep).join("/")).sort();throw new g(`Item ${m} has ambiguous identity across ${_.join(", ")}. Preserve both documents and inspect pm ops validate --check-storage-integrity before resolving the collision.`,w.CONFLICT,{code:"item_identity_ambiguous",item_id:m,paths:_})}for(let _ of p.values())return _}return null}async function gn(e,t={}){let r=await lp(e,t);if(r.error!==null)throw r.error;return{raw:r.raw,document:r.document}}async function lp(e,t={}){let r=await Et.readFile(e.itemPath);if(!sp(r))throw new g("Item contains invalid UTF-8; preserve a binary backup before recovering it.",w.CONFLICT,{code:"item_document_encoding_invalid",item_id:e.id,item_path:e.itemPath,byte_length:r.length,empty:!1});let n=r.toString("utf8");await ke({path:e.itemPath,scope:"project"});let o;try{o=kr(n,{format:e.item_format,schema:t.schema,extensionFieldNames:Pc(t.extensionFieldNames),onWarning:i=>cp(t.warnings,i)})}catch(i){if(i instanceof g&&i.code==="item_document_invalid")return{raw:n,document:null,error:new g(`Cannot read ${e.id} at ${e.itemPath}${r.length===0?" (zero-length file)":""}: ${i.message}`,i.exitCode,{...i.context,item_id:e.id,item_path:e.itemPath,byte_length:r.length,empty:r.length===0,nextSteps:[`Run pm history ${e.id} --full, then pm restore ${e.id} <version> to recover a recorded state.`]})};throw i}return{raw:n,document:o,error:null}}async function up(e,t,r=Pe,n,o){await vt(e);let i=await $a(e,t,r,n,o);return Ur(i.length),i.map(s=>s.metadata)}async function Mc(e,t,r=Pe,n,o){await vt(e);let i=await Ha(e,t,r,n,o);return Ur(i.length),i.map(s=>s.metadata)}async function Jv(e,t,r=Pe,n,o,i={}){await vt(e);let s=await en(e,t,r,n,o,{includeBody:!0,forceSourceScan:i.forceSourceScan});return Ur(s.length),s.map(a=>({...a.metadata,body:a.body}))}function jc(e){return{async get(t){let r=await yn(e.pmRoot,t,e.settings.id_prefix,e.settings.item_format,e.typeToFolder);if(!r)return null;let{document:n}=await gn(r,{schema:e.settings.schema});return{item:n.metadata,body:n.body}},list:()=>up(e.pmRoot,e.settings.item_format,e.typeToFolder,void 0,e.settings.schema)}}async function fp(e,t){let r=new Set(Object.values(t)),n=[];return await Promise.all([...r].map(async o=>{try{let i=await Et.readdir(fi.join(e,o));for(let s of i)for(let a of sr)if(s.toLowerCase().endsWith(a)){n.push(s.slice(0,-a.length));break}}catch{}})),n}async function mp(e,t,r,n){let o=Ye(t,r),i=await fp(e,n);if(i.length===0)return[];let s=Math.max(3,Math.floor(o.length/2));return i.map(a=>({id:a,distance:Qt(a,o,s)})).filter(a=>a.distance!==null).sort((a,c)=>a.distance-c.distance).slice(0,3).map(a=>a.id)}async function _p(e,t,r,n){let o=await Lc(e,t,r);if(o)return o;let i=await mp(e,t,r,n),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 g(`Item ${t} not found`,w.NOT_FOUND,{nextSteps:s})}function pp(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 Fc(e){let t=e.typeToFolder??ir(e.settings,me()).type_to_folder,r=await yn(e.pmRoot,e.id,e.settings.id_prefix,e.settings.item_format,t);if(!r)throw await _p(e.pmRoot,e.id,e.settings.id_prefix,t);let n=await W(e.pmRoot,r.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 gn(r,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames,warnings:o}),a=s.metadata.assignee?.trim(),c=s.metadata.claim_principal?.trim()||a,d=ys(e.author),l=_n(e.settings);if(a&&c!==d&&!e.force&&!pp(e.op,e.bypassAssigneeConflict)){if(l.ownership_enforcement==="strict")throw new g(`Item ${r.id} is assigned to ${a}. Use --force to override.`,w.CONFLICT);l.ownership_enforcement==="warn"&&o.push(`ownership_warning:assignee_conflict:${r.id}:${a}`)}return{typeToFolder:t,located:r,originalRaw:i,document:s,warnings:o,releaseLock:n}}catch(o){throw await n(),o}}function hp(e,t,r){if(!e.handled||typeof e.result!="object"||e.result===null)return{effectiveTargetItemPath:t,effectiveSerializedAfter:r,skipItemWrite:!1};let n=e.result;return{effectiveTargetItemPath:typeof n.target_item_path=="string"&&n.target_item_path.trim().length>0?n.target_item_path:t,effectiveSerializedAfter:typeof n.contents=="string"?n.contents:r,skipItemWrite:n.skip_write===!0}}async function yp(e){if(!e.skipItemWrite){if(e.effectiveTargetItemPath!==e.originalItemPath){await K(e.originalItemPath,e.originalRaw),await Et.rm(e.effectiveTargetItemPath,{force:!0});return}await K(e.originalItemPath,e.originalRaw)}}async function $c(e){ur(e.op);let t=await Fc({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:r,located:n,originalRaw:o,document:i,warnings:s,releaseLock:a}=t;try{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?.();d.metadata.updated_at=Ie();let m=ne(d,{schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),p=await Io({pmRoot:e.pmRoot,settings:e.settings,operation:e.op,author:e.author,before:c,after:m});await In({pm_root:e.pmRoot,operation:e.op,before:c,after:m,changed_fields:l.changedFields,sdk:jc({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:r})});let _=await si({pmRoot:e.pmRoot,settings:e.settings,itemId:n.id,commandLabel:e.op}),b="toon",y=Ls(m,{format:b,schema:e.settings.schema,extensionFieldNames:e.extensionFieldNames}),S=vn(e.pmRoot,m.metadata.type,n.id,b,r),A=fe(e.pmRoot,n.id),L=await Ot("item_store_write",{op:e.op,pm_root:e.pmRoot,item_id:n.id,source_item_path:n.itemPath,target_item_path:S,history_path:A,item_format:b,before:c,after:m,contents:y}),{effectiveTargetItemPath:$,effectiveSerializedAfter:x,skipItemWrite:q}=hp(L,S,y),B=await Lo(e.pmRoot,e.author),Q=[];try{q||await K($,x),!q&&$!==n.itemPath&&await Et.rm(n.itemPath);let ee=ut({nowIso:m.metadata.updated_at,author:e.author,op:e.op,before:c,after:m,message:e.message,context:p.decisions.length===0?f:{...f,workflow_policies:p.decisions}});try{await ft(A,ee)}catch(te){throw await yp({skipItemWrite:q,effectiveTargetItemPath:$,originalItemPath:n.itemPath,originalRaw:o}),te}q||(Q=await Po({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:r,schema:e.settings.schema,itemPath:$,previousItemPath:n.itemPath,document:m}))}finally{await B()}let G=[...await _e({path:$,scope:"project",op:e.op,item_id:m.metadata.id,item_type:m.metadata.type,before:c,after:m,changed_fields:l.changedFields}),...await _e({path:A,scope:"project",op:`${e.op}:history`,item_id:m.metadata.id,item_type:m.metadata.type,before:c,after:m,changed_fields:l.changedFields})];return kn({id:m.metadata.id,op:e.op,item_type:m.metadata.type,previous_status:c.metadata.status,status:m.metadata.status,previous:dr(c.metadata,l.changedFields),current:dr(m.metadata,l.changedFields),changed_fields:l.changedFields}),{item:m.metadata,body:m.body,changedFields:l.changedFields,warnings:[...s,...l.warnings??[],...p.warnings,..._.warnings,...L.warnings,...Q,...G]}}finally{await a()}}async function Qv(e){return $c(e)}async function Zv(e){return $c(e)}async function eE(e){let t=await Fc({pmRoot:e.pmRoot,settings:e.settings,id:e.id,op:"delete",author:e.author,force:e.force}),{located:r,originalRaw:n,document:o,warnings:i,releaseLock:s}=t;try{let a=Pc(void 0),c=ne(o,{schema:e.settings.schema,extensionFieldNames:a}),d=await Io({pmRoot:e.pmRoot,settings:e.settings,operation:"delete",author:e.author,before:c,after:null,dryRun:e.dryRun});await In({pm_root:e.pmRoot,operation:"delete",before:c,after:null,changed_fields:["deleted"],sdk:jc({pmRoot:e.pmRoot,settings:e.settings,typeToFolder:t.typeToFolder})});let l=await si({pmRoot:e.pmRoot,settings:e.settings,itemId:r.id,commandLabel:"delete"}),f=Ie(),m=Me,p=ut({nowIso:f,author:e.author,op:"delete",before:c,after:m,message:e.message,context:d.decisions.length===0?void 0:{workflow_policies:d.decisions}}),_=fe(e.pmRoot,r.id),b=await Ot("item_store_delete",{op:"delete",pm_root:e.pmRoot,item_id:r.id,item_path:r.itemPath,history_path:_,before:c}),y=r.itemPath,S=!1;if(b.handled&&typeof b.result=="object"&&b.result!==null){let x=b.result;typeof x.item_path=="string"&&x.item_path.trim().length>0&&(y=x.item_path),x.skip_delete===!0&&(S=!0)}if(e.dryRun===!0)return{item:c.metadata,changedFields:["deleted"],targetPath:y,warnings:[...i,...d.warnings,...l.warnings,...b.warnings]};let A=await Lo(e.pmRoot,e.author),L=[];try{S||await Et.rm(y);try{await ft(_,p)}catch(x){throw S||await K(y,n),x}S||(L=await Po({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:t.typeToFolder,schema:e.settings.schema,itemPath:y,document:null}))}finally{await A()}let $=[...await _e({path:y,scope:"project",op:"delete",item_id:c.metadata.id,item_type:c.metadata.type,before:c,after:m,changed_fields:["deleted"]}),...await _e({path:_,scope:"project",op:"delete:history",item_id:c.metadata.id,item_type:c.metadata.type,before:c,after:m,changed_fields:["deleted"]})];return kn({id:c.metadata.id,op:"delete",item_type:c.metadata.type,previous_status:c.metadata.status,previous:dr(c.metadata,Object.keys(c.metadata)),changed_fields:["deleted"]}),{item:c.metadata,changedFields:["deleted"],warnings:[...i,...d.warnings,...l.warnings,...b.warnings,...L,...$]}}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 gp=["tree","graph","context"],bp=["none","repeated"],wp=["outgoing","incoming","both"],vp=32,Ep=200,kp=400,Ip=16e3;function Sp(e){let t=e?.trim().toLowerCase()??"tree";if(gp.includes(t))return t;throw new g(`Invalid --format value "${e}". Use "tree", "graph", or "context".`,w.USAGE)}function kt(e,t){if(e===void 0)return;let r=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(r)||r<1)throw new g(`Invalid --${t} value "${e}". Use a positive integer.`,w.USAGE);return r}function zc(e){if(e===void 0)return;let t=typeof e=="number"?e:Number(e.trim());if(!Number.isInteger(t)||t<0)throw new g(`Invalid --max-depth value "${e}". Use a non-negative integer.`,w.USAGE);return t}function Tp(e){let t=e?.trim().toLowerCase()??"none";if(bp.includes(t))return t;throw new g(`Invalid --collapse value "${e}". Use "none" or "repeated".`,w.USAGE)}function Cp(e){let t=e?.trim().toLowerCase()??"both";if(wp.includes(t))return t;throw new g(`Invalid --direction value "${e}". Use "outgoing", "incoming", or "both".`,w.USAGE)}function Op(e,t=ue()){if(e===void 0)return;let r=(Array.isArray(e)?e:[e]).flatMap(o=>o.split(",")).map(o=>o.trim()).filter(o=>o.length>0);if(r.length===0)return;let n=new Set;for(let o of r){let i=t.resolve(o);if(!i){let s=t.list().map(a=>a.kind).join(", ");throw new g(`Invalid --kind value "${o}". Registered kinds: ${s}.`,w.USAGE)}n.add(i.kind)}return[...n].sort()}function xp(e){if(!e||e.length===0)return[];let t=e.map(({id:n,kind:o})=>({id:n.trim(),kind:o.trim().toLowerCase()})).sort((n,o)=>{let i=n.kind.localeCompare(o.kind);return i!==0?i:n.id.localeCompare(o.id)}),r=new Map;for(let n of t){let o=`${n.kind.toLowerCase()}::${n.id.toLowerCase()}`;r.has(o)||r.set(o,{id:n.id,kind:n.kind})}return[...r.values()]}function Rp(e){return{id:e.id,title:e.title,type:e.type,status:e.status,dependencies:xp(e.dependencies)}}function Ap(e){return lr(new TextEncoder().encode(JSON.stringify({...e,dependencies:void 0})).byteLength)}function Dp(e,t,r,n,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(Uc(d.id,r,n,o,i,s,a,c+1,d.kind))}}function Np(e,t,r,n,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:n!==void 0&&a>=n?(t.dependencies.length>0&&(e.truncated=!0,s.reasons.add("max_depth")),!0):o==="repeated"&&i.has(r)?(e.collapsed=!0,!0):!1}function Uc(e,t,r,n,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:r.has(d),dependencies:[]};if(s.nodes+=1,s.estimatedTokens+=Ap(f),Np(f,l,d,n,o,i,s,a))return f;o==="repeated"&&i.add(d);let m=new Set(r);return m.add(d),Dp(f,l,t,m,n,o,i,s,a),f}function Hc(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 Lp(e){let t=new Map,r=new Map,n=[e];for(;n.length>0;){let a=n.pop();t.set(a.id,Hc(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,Hc(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}`;r.has(l)||r.set(l,{from:a.id,to:c.id,kind:d}),c.cycle||n.push(c)}}let o=[...t.values()].sort((a,c)=>a.id.localeCompare(c.id)),i=[...r.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 Bc(e,t,r){let n=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();n.add(l);let f=t.get(l);if(!f){i.add(l);continue}if(!(r!==void 0&&d.depth>=r)&&!s.has(l)){s.add(l);for(let m of f.dependencies)o.add(`${l}::${m.id.trim().toLowerCase()}::${m.kind}`),a.push({id:m.id,depth:d.depth+1})}}return{node_count:n.size,edge_count:o.size,edge_basis:"deduplicated_directed",missing_count:i.size}}function Pp(e,t=ue()){let r=zc(e.maxDepth),n=kt(e.nodeLimit,"node-limit"),o=kt(e.edgeLimit,"edge-limit"),i=kt(e.tokenBudget,"token-budget"),s=Op(e.kind,t);return{direction:Cp(e.direction),...s===void 0?{}:{kinds:s},...r===void 0?{}:{maxDepth:r},...n===void 0?{}:{nodeLimit:n},...o===void 0?{}:{edgeLimit:o},...i===void 0?{}:{tokenBudget:i},...e.cursor?.trim()?{cursor:e.cursor.trim()}:{}}}function Mp(e,t,r,n){return Qa(e.graph,t,e.details.map(o=>o.id===t&&n.length>0?{...o,evidence:n}:o),r)}function mi(e,t,r,n){for(let o of r.slice(0,n)){let i=o?.trim();i&&e.push(`${t}:${i}`)}}async function jp(e,t,r,n){let o=await yn(e,t,r.id_prefix,r.item_format,n);if(!o)return[];let{document:i}=await gn(o,{schema:r.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(([,m])=>m===0))return[];let f=[`linked:${l.map(([m,p])=>`${m}=${p}`).join(",")}`];return mi(f,"file",a.map(m=>m.path),3),mi(f,"test",c.map(m=>m.command??m.path),2),mi(f,"doc",d.map(m=>m.path),2),f}function Fp(e){let{canonicalId:t,context:r,missingCount:n,missingReferences:o,referenceLimit:i,summaryOnly:s}=e;return{id:t,format:"context",node_count:r.nodes.length+1,edge_count:r.edges.length,edge_basis:"deduplicated_directed",missing_count:n,missing_scope:"traversal",missing_reference_count:o.length,...s?{}:{missing_references:o.slice(0,i),context:r}}}function $p(e){let{row:t,missingReachableSet:r,packetIds:n,filteredKinds:o,registry:i}=e;if(t.no_active_blocker_sentinel||!r.has(t.target_id.trim().toLowerCase())||!n.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 Wc(e,t,r){let n;for(;;){let o=lr(new TextEncoder().encode(On(Tn("deps",e),t)).byteLength);if(o===n)return o;r(o),n=o}}function Hp(e){return e instanceof TypeError&&e.message.startsWith("Relationship context tokenBudget cannot fit ")}function zp(e){try{return Mp(e.assembly,e.canonicalId,{...e.contextOptions,...e.internalTokenBudget===void 0?{}:{tokenBudget:e.internalTokenBudget}},e.rootEvidence)}catch(t){if(e.smallestResult!==void 0&&Hp(t))return e.smallestResult;throw t}}function Up(e){let{assembly:t,canonicalId:r,contextOptions:n,rootEvidence:o,summaryOnly:i,outputFormat:s,missingCount:a,missingReferences:c}=e,d=n.edgeLimit??40,l=n.tokenBudget,f,m;for(;;){let p=zp({assembly:t,canonicalId:r,contextOptions:n,internalTokenBudget:l,rootEvidence:o,smallestResult:m});if("format"in p)return p;let _=p;f??=_.meta.tokenBudget,l??=f;let b=Fp({canonicalId:r,context:_,missingCount:a,missingReferences:c,referenceLimit:d,summaryOnly:i});if(m=b,i||(_.meta.tokenBudget=f,_.meta.usedTokens=Wc(It(b,!1),s,A=>{_.meta.usedTokens=A}),_.meta.usedTokens<=f))return b;if(d>0){d-=1;continue}let y=l,S=y*f/_.meta.usedTokens;l=Math.min(y-1,Math.max(1,Math.floor(S*.9)))}}function Bp(e){let{assembly:t,canonicalId:r,options:n,rootEvidence:o,summaryOnly:i,outputFormat:s}=e,a=Pp(n,t.graph.registry()),c=t.graph.closure(r,{direction:a.direction,...a.kinds===void 0?{}:{kinds:a.kinds},maxDepth:a.maxDepth??3}),d=c.value.filter(b=>t.missingIdSet.has(b.toLowerCase())),l=new Set(d.map(b=>b.toLowerCase())),f=t.graph.registry(),m=a.kinds?new Set(a.kinds.map(b=>f.require(b).kind)):void 0,p=new Set([r,...c.value]),_=[...t.dangling.active,...t.dangling.legacy_terminal].filter(b=>$p({row:b,missingReachableSet:l,packetIds:p,filteredKinds:m,registry:f}));return Up({assembly:t,canonicalId:r,contextOptions:a,rootEvidence:o,summaryOnly:i,outputFormat:s,missingCount:d.length,missingReferences:_})}function Wp(e){let t=[e],r;for(;t.length>0;){let n=t.pop();n.dependencies.length>0&&(r=n,t.push(...n.dependencies))}return r?(r.dependencies.pop(),r.truncated=!0,!0):!1}function Vp(e,t,r,n,o,i,s){let a=o??vp,c=kt(r.nodeLimit,"node-limit")??Ep,d=kt(r.edgeLimit,"edge-limit")??kp,l=kt(r.tokenBudget,"token-budget")??Ip,f={nodeLimit:c,edgeLimit:d,tokenBudget:l,nodes:0,edges:0,estimatedTokens:0,reasons:new Set},m=Uc(e,n,new Set,a,t==="graph"?"repeated":i,new Set,f),p=Bc(e,n,void 0),_;for(;;){let b=Lp(m),y=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-b.nodes.length),omitted_edge_count:Math.max(0,p.edge_count-b.edges.length)},S={id:e,format:t,node_count:b.nodes.length,edge_count:b.edges.length,edge_basis:"deduplicated_directed",missing_count:b.missing_ids.length,...y?{truncation:y}:{}};if(_=t==="tree"?{...S,tree:m}:{...S,graph:b},(_.truncation===void 0?lr(new TextEncoder().encode(On(Tn("deps",It(_,!1)),s)).byteLength):Wc(It(_,!1),s,A=>{_.truncation.estimated_tokens=A}))<=l)return _;if(!Wp(m))return f.reasons.add("token_budget"),_;f.reasons.add("token_budget")}}function It(e,t,r={}){let n={name:e.format==="tree"?"dependency_tree":e.format==="graph"?"dependency_graph":"relationship_context",restore_with:"--full"};return{...e,legacy_alias_counts:r,projection:{mode:t?"summary":"full",declared_field_groups:[n],included_field_groups:t?[]:[n.name]}}}async function vE(e,t,r){let n=Di(process.cwd(),r.path);await ui(n);let o=Sp(t.format),i=zc(t.maxDepth),s=Tp(t.collapse);Bi(t.summary===!0,t.full===!0,"--summary");let a=t.summary===!0,c=await Rc(n),d=ir(c,me()),l=await Mc(n,c.item_format,d.type_to_folder,void 0,c.schema),f=cr(c.schema),m=new Map(l.map(_=>[_.id.trim().toLowerCase(),Rp(_)])),p=Uo(l,_=>ge(_,f));for(let _ of[...p.active,...p.legacy_terminal]){let b=m.get(_.holder_id.trim().toLowerCase()),y=_.kind.trim().toLowerCase();b&&!b.dependencies.some(S=>S.id.trim().toLowerCase()===_.target_id.trim().toLowerCase()&&S.kind===y)&&b.dependencies.push({id:_.target_id,kind:y})}if(!m.has(e.trim().toLowerCase()))throw new g(`Item ${e} not found`,w.NOT_FOUND);if(o==="context"){let _=m.get(e.trim().toLowerCase()).id,b=a?[]:await jp(n,_,c,d.type_to_folder),y=L=>ge(L,f),S=de(),A=Ja().lookup(n,Xa(l,y,S),()=>sn(l,y,S));return It(Bp({assembly:A.assembly,canonicalId:_,options:t,rootEvidence:b,summaryOnly:a,outputFormat:r.json===!0?"json":"toon"}),a,A.assembly.legacyAliasCounts)}return a?It({id:e,format:o,...Bc(e,m,i)},!0,Object.fromEntries(Object.entries(sn(l,_=>ge(_,f)).legacyAliasCounts))):It(Vp(e,o,t,m,i,s,r.json===!0?"json":"toon"),!1,Object.fromEntries(Object.entries(sn(l,_=>ge(_,f)).legacyAliasCounts)))}export{Ko as a,He as b,Rn as c,Gp as d,Kp as e,ts as f,Pn as g,nh as h,oh as i,ih as j,sh as k,ah as l,ch as m,Wn as n,Vn as o,ds as p,gh as q,bh as r,wh as s,vh as t,Eh as u,kh as v,Xn as w,_s as x,Ih as y,Sh as z,Th as A,Id as B,ys as C,gs as D,xh as E,Td as F,bs as G,We as H,Ce as I,ks as J,xt as K,Bh as L,Wh as M,Yn as N,Ah as O,Dh as P,ws as Q,Cd as R,Nh as S,yr as T,ot as U,ge as V,br as W,Er as X,kr as Y,Ls as Z,ne as _,Zl as $,be as aa,ct as ba,wu as ca,Ry as da,Ay as ea,Dy as fa,Ou as ga,Dr as ha,Ge as ia,Mt as ja,rg as ka,bo as la,Pr as ma,ra as na,ng as oa,ia as pa,og as qa,ut as ra,ft as sa,Ps as ta,mt as ua,Mr as va,_g as wa,vo as xa,jr as ya,pg as za,hg as Aa,la as Ba,Xe as Ca,ma as Da,we as Ea,ef as Fa,yg as Ga,gg as Ha,pt as Ia,$r as Ja,Fg as Ka,$g as La,ba as Ma,va as Na,Hg as Oa,pw as Pa,De as Qa,Mw as Ra,__ as Sa,_n as Ta,mn as Ua,V_ as Va,xc as Wa,Rc as Xa,jw as Ya,Uw as Za,si as _a,Z_ as $a,pa as ab,jt as bb,Ye as cb,Sg as db,Yt as eb,Dc as fb,ai as gb,Nc as hb,iv as ib,lf as jb,ff as kb,mf as lb,_f as mb,pf as nb,Io as ob,nb as pb,db as qb,lb as rb,ub as sb,La as tb,Df as ub,Lo as vb,Ib as wb,Po as xb,en as yb,vt as zb,ui as Ab,yn as Bb,gn as Cb,lp as Db,up as Eb,Mc as Fb,Jv as Gb,jc as Hb,_p as Ib,Qv as Jb,Zv as Kb,eE as Lb,jo as Mb,lm as Nb,Vt as Ob,rn as Pb,Ua as Qb,um as Rb,fm as Sb,mm as Tb,hm as Ub,Vb,qb as Wb,Cm as Xb,de as Yb,Fb as Zb,on as _b,$b,Sm as ac,Hb as bc,Gt as cc,xm as dc,Am as ec,Uo as fc,Dm as gc,Zb as hc,sn as ic,Xa as jc,Bo as kc,Ja as lc,ow as mc,Qa as nc,kt as oc,zc as pc,Cp as qc,Op as rc,vE as sc};
165
+ //# sourceMappingURL=chunk-GITOYRUW.js.map