@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,6 @@
1
+ import{A as zo,Bb as sn,Cb as Ke,D as Vo,Dc as mn,E as Ko,O as Qo,P as Yo,S as Xo,Sb as an,Ub as cn,Wb as ln,Xb as dn,a as ge,b as K,c as vo,ca as ze,cb as nn,d as Eo,da as vt,ea as Jo,fa as Zo,ga as en,ha as tn,k as bt,ka as rn,la as Et,ma as St,n as Uo,na as Ve,r as Go,ta as on,v as ye,w as $o,x as Wo,y as Be,z as Bo,zc as un}from"./chunk-AJ7H6XUF.js";import{$h as co,$i as _o,$l as Ao,Ai as fo,Al as Io,Am as To,Bh as eo,Bl as ko,C as O,Ch as to,Dc as C,Dg as Xr,Dh as ro,E as lt,Eg as Me,Eh as oo,Em as Mo,Fg as Fe,Hi as ho,Hn as jo,Ic as jr,Im as Fo,Jc as dt,Jm as Do,Kh as V,Ki as po,Km as Ue,L as ae,Lh as no,Lm as Po,M as Re,Mc as Y,Mm as Ge,Nc as qr,Nh as ht,Ni as He,Nm as $e,O as Ae,Oc as ce,Oh as ue,Om as We,P as Hr,Ph as me,Pm as Ho,Qf as P,Qh as pt,Rh as H,Sh as io,Tb as D,Th as fe,Tm as Lo,Ua as U,Uh as so,Ui as Le,Um as wt,Wh as gt,Wi as Oe,Xi as go,Xl as xo,Yi as he,Yl as Ro,Zh as ao,Zi as pe,_h as Pe,_i as yo,_l as _t,ab as k,ag as x,ai as lo,aj as je,bg as mt,bl as So,bn as Oo,cb as Or,cd as X,cj as wo,dj as bo,eb as z,ed as Nr,ff as I,gb as Ce,ia as Lr,if as Te,ih as De,jf as zr,jh as Jr,kd as Ur,kf as Vr,kg as j,kh as de,km as qe,ko as qo,lf as ut,lo as No,mf as Kr,mg as J,na as f,om as Ne,pa as h,pd as Gr,qd as $r,qi as L,si as q,ud as Wr,uh as ft,ui as uo,vi as Z,vn as ee,wd as Br,wf as Qr,wh as Zr,wi as yt,x as xe,xg as Yr,xi as mo,z as Pr,zg as le,zm as Co}from"./chunk-N4YGSG6F.js";import hn 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]="f3603dce-8aeb-5409-80f4-ad3367e35eb9")}catch{}})();function Li(e,t,r){let o=new Set,n=[];for(let i of e){let s=i.trim();if(s.length===0||o.has(s))continue;o.add(s);let a=t.get(s);if(a===void 0){n.push({id:s,entries:0,selected:!1,skip_reason:"no_stream"});continue}if(a.entries<=r){n.push({id:s,entries:a.entries,selected:!1,skip_reason:"already_compact"});continue}n.push({id:s,entries:a.entries,selected:!0,skip_reason:null})}return n}function Oi(e,t){let r=[...e].sort((n,i)=>i.entries-n.entries||n.id.localeCompare(i.id)),o=[];for(let n of r){if(t.scope==="closed"&&n.bucket!=="closed"){o.push({id:n.id,entries:n.entries,selected:!1,skip_reason:"scope_mismatch"});continue}if(n.entries<=t.minEntries){o.push({id:n.id,entries:n.entries,selected:!1,skip_reason:"already_compact"});continue}if(t.allOver!==void 0&&n.entries<=t.allOver){o.push({id:n.id,entries:n.entries,selected:!1,skip_reason:"below_threshold"});continue}o.push({id:n.id,entries:n.entries,selected:!0,skip_reason:null})}return o}function fn(e,t){if(t.ids!==void 0&&t.ids.length>0){let r=new Map(e.map(o=>[o.id,o]));return Li(t.ids,r,t.minEntries)}return Oi(e,t)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="c6009e5f-840e-5e3a-b8b9-6e9d42d63410")}catch{}})();function ji(e,t){if(e===void 0)return{kind:"default",raw:null,compactCount:t.length,retainedCount:0};let r=e.trim();if(r.length===0)throw new h("history-compact --before requires a non-empty value.",f.USAGE);if(/^\d+$/.test(r)){let i=Number.parseInt(r,10),s=q(t);if(!Number.isSafeInteger(i)||i<s+1||i>s+t.length+1)throw new h(`history-compact --before version must be between ${s+1} and ${s+t.length+1}.`,f.USAGE);let a=i-s-1;return{kind:"version",raw:r,compactCount:a,retainedCount:t.length-a}}let o=Date.parse(r);if(!Number.isFinite(o))throw new h(`Invalid history-compact --before value "${e}". Use a version number or ISO timestamp.`,f.USAGE);let n=0;for(let[i,s]of t.entries()){let a=Date.parse(s.ts);if(!Number.isFinite(a))throw new h(`History for this item contains invalid timestamp at entry ${i+1}.`,f.GENERIC_FAILURE);if(a>=o)break;n+=1}return{kind:"timestamp",raw:r,compactCount:n,retainedCount:t.length-n}}function qi(e,t){let r=ue(),o=ue();for(let n=0;n<e.length;n+=1){let i=e[n];r=Z(r,i.patch,n+1,i.op),n+1===t&&(o=structuredClone(r))}return{checkpoint:o,finalReplay:r}}function Ni(e,t){if(!e)return{loadedItem:null,currentItemRawBeforeLock:null,matchedChainBefore:null};let r=t[t.length-1];return{loadedItem:e,currentItemRawBeforeLock:e.raw,matchedChainBefore:Zr.some(o=>(r.item_hash_version===void 0||r.item_hash_version===o)&&pt(fe(e.document),o,x(r.hash_algorithm)).includes(r.after_hash))}}function Ui(e,t){return typeof e.message=="string"&&e.message.trim().length>0?e.message:t.raw===null?`history-compact compacted full stream (${t.compactCount} entr${t.compactCount===1?"y":"ies"}).`:`history-compact compacted ${t.compactCount} entr${t.compactCount===1?"y":"ies"} before ${t.raw}.`}function Gi(e){return e.raw===null?`history-compact baseline snapshot after compacting ${e.compactCount} entr${e.compactCount===1?"y":"ies"}.`:`history-compact baseline snapshot before ${e.raw}.`}function $i(e){if(!e.changed)return{rewrittenEntries:e.historyEntries,baselineEntryAdded:!1,auditEntryAdded:!1};let{checkpoint:t,finalReplay:r}=qi(e.historyEntries,e.boundary.compactCount),o=e.historyEntries.slice(e.boundary.compactCount),n=q(e.historyEntries,!0),i=e.historyEntries[e.boundary.compactCount-1],s=V({hashAlgorithm:x(i.hash_algorithm),nowIso:e.historyEntries[e.boundary.compactCount-1].ts,author:e.author,op:"history_compact_baseline",before:H(ue()),after:H(t),message:Gi(e.boundary),context:{history_compaction:{contract_version:1,version_offset:n===null?null:n+e.boundary.compactCount-1,checkpoint_timestamp_semantics:"last_compacted_entry",pruned_entry_count:e.boundary.compactCount,pruned_stream_digest:eo(e.historyEntries.slice(0,e.boundary.compactCount)),retained_proof:"stream_digest_and_checkpoint",limitation:"individual_pruned_entries_require_pre_compaction_stream"}}}),a=[to({...s,before_hash:pt(ue(),i.item_hash_version??1,x(i.hash_algorithm))[0],after_hash:i.after_hash,item_hash_version:i.item_hash_version}),...o];return e.dryRun||a.push(V({nowIso:I(),author:e.author,op:"history_compact",before:H(r),after:H(r),message:Ui(e.options,e.boundary)})),{rewrittenEntries:a,baselineEntryAdded:!0,auditEntryAdded:!e.dryRun}}async function Wi(e,t,r){let{pmRoot:o,settings:n,typeRegistry:i}=await ge(r.path),s=await K(o,e,n,i.type_to_folder);return Ke({pmRoot:o,subject:s,settings:n,typeRegistry:i,operation:"history-compact",options:t,transform:a=>Bi(s,t,a)})}function Bi(e,t,r){let o=e.historyPath,n=r.entries,i=r.verification;if(!i.ok)throw new h(`history-compact requires a valid history chain (${i.errors.join(", ")}). Run pm history-repair ${e.id} first.`,f.CONFLICT);let s=ji(t.before,n),a=s.compactCount>0,c=!!t.dryRun,d=r.author,l=[];a||l.push("history_compact_noop_before_boundary");let u=Ni(r.loadedItem,n);u.matchedChainBefore===!1&&l.push("history_compact_item_chain_mismatch");let{rewrittenEntries:m,baselineEntryAdded:p,auditEntryAdded:y}=$i({historyEntries:n,boundary:s,changed:a,dryRun:c,author:d,options:t}),_=q(n,!0),g=s.retainedCount>0&&_!==null?_+s.compactCount+1:null;return{changed:a,rewrittenEntries:m,report:({verification:w,warnings:v})=>({id:e.id,dry_run:c,changed:a,compact_boundary:{kind:s.kind,before:s.raw,entries_compacted:s.compactCount,entries_retained:s.retainedCount,first_retained_entry:g},history:{path:o,entries_scanned:n.length,entries_after:m.length,baseline_entry_added:p,audit_entry_added:y,verify_ok:w.ok,verify_errors:w.errors},item:{exists:e.located!==null,path:e.located?.itemPath??null,matched_chain_before:u.matchedChainBefore},warnings:[...new Set([...l,...v])].sort((E,b)=>E.localeCompare(b)),generated_at:I()})}}var zi=3;function Vi(e){for(let r of["allOver","minEntries"]){let o=e[r];if(o!==void 0&&(!Number.isSafeInteger(o)||o<0))throw new h(`history-compact ${r} must be a non-negative safe integer.`,f.USAGE)}let t=Ro(e.ids);if(e.ids!==void 0&&t==="")throw new h("history-compact ids requires at least one valid item ID.",f.USAGE,{code:"bulk_ids_input_empty",required:"Provide one or more string or finite numeric IDs; non-finite and unsupported selector values are rejected."});return{...e,ids:t===void 0?void 0:xo(t)}}function Yc(e,t){let r=t.ids!==void 0&&t.ids.length>0,o=t.allOver!==void 0||t.scope!==void 0;if((e!==void 0?1:0)+(r?1:0)+(o?1:0)==0)throw new h("history-compact: provide an item <id>, or a bulk selector (--ids, --all-over <N>, --closed, or --all-streams).",f.USAGE);if(e!==void 0&&(r||o))throw new h("history-compact: <id> and bulk selectors (--ids/--all-over/--closed/--all-streams) are mutually exclusive; pass one item id, or use bulk mode without a positional id.",f.USAGE);if(r&&o)throw new h("history-compact: --ids is mutually exclusive with --all-over/--closed/--all-streams; pass an explicit id list or a scan selector, not both.",f.USAGE)}function Ki(e){let t=0;for(let r of e.split(/\r?\n/))r.trim().length>0&&(t+=1);return t}async function Qi(e){let t=j(e.settings.schema),r=Be(t),o=await je(e.pmRoot,e.settings.item_format,e.typeToFolder,void 0,e.settings.schema),n=new Map(o.map(d=>[d.id,r.classify(d.status)])),i=pn.join(e.pmRoot,"history"),s=[],a=[];if(!await xe(i))return{candidates:s,preselectionErrors:a};let c=(await hn.readdir(i)).filter(d=>d.endsWith(".jsonl")).sort((d,l)=>d.localeCompare(l));for(let d of c){let l=pn.join(i,d),u=d.slice(0,-6);try{let m=await hn.readFile(l,"utf8");await ce({path:l,scope:"project"}),s.push({id:u,entries:Ki(m),bucket:n.get(u)??null})}catch(m){a.push({id:u,outcome:"errored",entries_before:0,entries_after:null,skip_reason:null,changed:!1,error:m instanceof Error?m.message:String(m)})}}return{candidates:s,preselectionErrors:a}}async function Yi(e){if(!e.row.selected)return{selected:!1,compacted:!1,errored:!1,result:{id:e.row.id,outcome:"skipped",entries_before:e.row.entries,entries_after:null,skip_reason:e.row.skip_reason,changed:!1,error:null}};try{let t=await Wi(e.row.id,{dryRun:e.dryRun,author:e.options.author,message:e.options.message,force:e.options.force},e.global);return{selected:!0,compacted:!0,errored:!1,result:{id:e.row.id,outcome:"compacted",entries_before:e.row.entries,entries_after:t.history.entries_after,skip_reason:null,changed:t.changed,error:null}}}catch(t){return{selected:!0,compacted:!1,errored:!0,result:{id:e.row.id,outcome:"errored",entries_before:e.row.entries,entries_after:null,skip_reason:null,changed:!1,error:t instanceof Error?t.message:String(t)}}}}async function Xc(e,t){let r=Vi(e),{pmRoot:o,settings:n,typeRegistry:i}=await ge(t.path),{candidates:s,preselectionErrors:a}=await Qi({pmRoot:o,settings:n,typeToFolder:i.type_to_folder}),c=r.ids!==void 0&&r.ids.length>0?"ids":"scan",d=e.minEntries??zi,l=n.history.compact_policy,u=c==="scan"&&e.allOver===void 0&&l.enabled,m=e.allOver??(u?l.max_entries:void 0),p=fn(s,{ids:r.ids,scope:e.scope,minEntries:d,allOver:m}),y=!!e.dryRun,_=[...a],g={streams_considered:s.length+a.length,selected:0,items_compacted:0,items_skipped:0,items_errored:a.length};for(let w of p){let v=await Yi({row:w,options:r,dryRun:y,global:t});if(_.push(v.result),!v.selected){g.items_skipped+=1;continue}g.selected+=1,v.compacted&&(g.items_compacted+=1),v.errored&&(g.items_errored+=1)}return{bulk:!0,dry_run:y,mode:c,scope:e.scope??null,criteria:{min_entries:d,all_over:m??null,policy_threshold_applied:u},totals:g,results:_,generated_at:I()}}import It 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]="ebf3254f-1fed-5972-b91a-b8ff101675f4")}catch{}})();function kt(e){return Array.isArray(e)?e:typeof e=="string"?[e]:[]}function yn(e){let t=[];for(let r of e)t.includes(r)||t.push(r);return t.includes("g")||t.push("g"),t.join("")}function _n(e){let t=e.trim();if(t.length===0)throw new h("history-redact --regex requires a non-empty pattern.",f.USAGE);let r=t,o="g";if(t.startsWith("/")&&t.length>1){let n=t.lastIndexOf("/");n>0&&(r=t.slice(1,n),o=yn(t.slice(n+1)))}if(r.length===0)throw new h("history-redact --regex cannot use an empty pattern.",f.USAGE);try{new RegExp(r,o)}catch{throw new h("Invalid --regex value; provide a valid JavaScript regular expression.",f.USAGE)}return{kind:"regex",source:r,flags:o}}function wn(e,t){let r=[...new Set(kt(e).map(i=>i.trim()))].filter(i=>i.length>0).map(i=>({kind:"literal",value:i})),o=[...new Set(kt(t).map(i=>i.trim()))].filter(i=>i.length>0).map(_n),n=[...r,...o];if(n.length===0)throw new h("history-redact requires at least one matcher via --literal or --regex.",f.USAGE,{code:"missing_required_argument",required:"Provide --literal <value> and/or --regex <pattern>.",examples:['pm history-redact pm-a1b2 --literal "[redacted_path_prefix]/private"','pm history-redact pm-a1b2 --regex "/192\\\\.168\\\\.[0-9.]+/g" --replacement "[scrubbed_ip]"']});return n}function bn(e,t,r){if(t.length===0)return{value:e,replacements:0};let o=0,n=0;for(;o<=e.length;){let i=e.indexOf(t,o);if(i===-1)break;n+=1,o=i+Math.max(1,t.length)}return n===0?{value:e,replacements:0}:{value:e.split(t).join(r),replacements:n}}function vn(e,t,r){let o=new RegExp(t.source,t.flags),n=[...e.matchAll(o)];return n.length===0?{value:e,replacements:0}:{value:e.replace(o,r),replacements:n.length}}function xt(e,t,r){let o=e,n=0;for(let i of t){let s=i.kind==="literal"?bn(o,i.value,r):vn(o,i,r);o=s.value,n+=s.replacements}return{value:o,replacements:n}}function _e(e,t,r){if(typeof e=="string")return xt(e,t,r);if(Array.isArray(e)){let o=0;return{value:e.map(n=>{let i=_e(n,t,r);return o+=i.replacements,i.value}),replacements:o}}if(typeof e=="object"&&e!==null){let o=0,n={};for(let[i,s]of Object.entries(e)){let a=_e(s,t,r);o+=a.replacements,n[i]=a.value}return{value:n,replacements:o}}return{value:e,replacements:0}}function gn(e,t,r){let o=0;return{patch:e.map(n=>{if(!Object.prototype.hasOwnProperty.call(n,"value"))return n;let i=_e(n.value,t,r);return o+=i.replacements,i.replacements>0?{...n,value:i.value}:n}),replacements:o}}function Xi(e){let t=structuredClone(ht),r=0,o=0;for(let n=0;n<e.length;n+=1){let i=e[n];me(t,void 0,x(i.hash_algorithm))!==i.before_hash&&(r+=1),t=Z(t,i.patch,n+1,i.op),me(t,void 0,x(i.hash_algorithm))!==i.after_hash&&(o+=1)}return{hashMismatchesBefore:r,hashMismatchesAfter:o,finalDocument:t}}function Ji(e,t,r){let o=0,n=!1,i=!1,s=e.message;if(typeof e.message=="string"){let d=xt(e.message,t,r);s=d.value,o+=d.replacements,d.replacements>0&&(n=!0)}let a=gn(e.patch,t,r);o+=a.replacements,n||=a.replacements>0;let c=e.reanchor_evidence?.map(d=>{let l=d.patch?gn(d.patch,t,r):{patch:void 0,replacements:0},u=d.record?_e(d.record,t,r):{value:void 0,replacements:0};o+=l.replacements,o+=u.replacements;let m=l.replacements>0||u.replacements>0;if(n||=m,!m)return d;i=!0;let{patch:p,record:y,record_hash:_,record_hash_version:g,...w}=d;return l.replacements>0?w:{...w,patch:d.patch}});return{entry:{...e,message:s,patch:a.patch,...c?{reanchor_evidence:c}:{}},replacements:o,changed:n,reanchorEvidenceRedacted:i}}function Zi(e,t,r){let o=structuredClone(ht),n=0,i=0,s=[];for(let a=0;a<e.length;a+=1){let c=e[a],d=ro(c);if(!d.ok)throw new h(`history-redact refuses invalid immutable record ${a+1} (${d.error}).`,f.GENERIC_FAILURE);let l=Ji(c,t,r);i+=l.replacements,l.changed&&(n+=1);let u=me(o,void 0,x(c.hash_algorithm));o=Z(o,l.entry.patch,a+1,l.entry.op);let m=me(o,void 0,x(c.hash_algorithm));s.push(oo(c,{...l.entry,before_hash:u,after_hash:m},{retainPriorRecord:l.changed,retainPriorRecordHash:!l.changed}))}return{entries:s,finalDocument:o,entriesChanged:n,replacements:i}}function En(e){return Object.keys(e.metadata).length>0}function es(e){if(!En(e.finalDocument))return{raw:null,path:null,document:null};let t=Fe(H(e.finalDocument),{schema:e.settings.schema});if(t.metadata.id!==e.subject.id)throw new h("history-redact would change the item id; narrow your patterns.",f.USAGE);return{document:t,path:z(e.pmRoot,t.metadata.type,e.subject.id,"toon",e.typeToFolder),raw:Me(t,{format:"toon",schema:e.settings.schema})}}function ts(e,t){return typeof e.message=="string"&&e.message.trim().length>0?e.message:`history-redact replaced ${t.replacements} match(es) across ${t.entriesChanged} entr${t.entriesChanged===1?"y":"ies"}.`}function rs(e){let t=[...e.rewritten.entries];if(e.dryRun||!e.changed)return{rewrittenEntries:t,auditEntryAdded:!1};let r=e.nextItemDocument??H(e.rewritten.finalDocument);return t.push(V({nowIso:I(),author:e.author,op:"history_redact",before:r,after:r,message:e.message})),{rewrittenEntries:t,auditEntryAdded:!0}}function os(e){let t=[];return{applyRewrite:async({historyRawUnderLock:r})=>{let o=await Le(e.pmRoot,e.author),n=new Set;e.currentItem.path&&n.add(e.currentItem.path),e.nextItem.path&&n.add(e.nextItem.path);let i=new Map;e.currentItem.path&&e.currentItem.raw!==null&&i.set(e.currentItem.path,e.currentItem.raw);let s=()=>{};try{try{e.nextItem.path&&e.nextItem.raw!==null&&e.nextItem.raw!==e.currentItem.raw&&await O(e.nextItem.path,e.nextItem.raw),e.currentItem.path&&(!e.nextItem.path||e.nextItem.path!==e.currentItem.path)&&await It.rm(e.currentItem.path,{force:!0}),await O(e.subject.historyPath,ao(e.rewrittenEntries))}catch(c){try{await ns(e.subject.historyPath,r,n,i)}finally{await ft(e.subject.historyPath)}throw c}await ft(e.subject.historyPath);let a=e.nextItem.path??e.currentItem.path;a&&(t=await Oe({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:e.typeRegistry.type_to_folder,schema:e.settings.schema,itemPath:a,...e.currentItem.path?{previousItemPath:e.currentItem.path}:{},document:e.nextItem.document}))}finally{await o().catch(a=>{s=()=>{throw a}})}s()},afterWrite:async()=>[...t,...await is(e.subject.historyPath,[e.nextItem.path,e.currentItem.path])]}}async function ns(e,t,r,o){t===null?await It.rm(e,{force:!0}):await O(e,t);for(let n of r){let i=o.get(n);i===void 0?await It.rm(n,{force:!0}):await O(n,i)}}async function is(e,t){let r=[],o=new Set(t.filter(n=>n!==null));for(let n of o)r.push(...await Y({path:n,scope:"project",op:"history_redact"}));return r.push(...await Y({path:e,scope:"project",op:"history_redact:history"})),r}async function gl(e,t,r){let{pmRoot:o,settings:n,typeRegistry:i}=await ge(r.path),s=t.replacement??"",a=s.length===0,c=a?"[redacted]":s,d=wn(t.literal,t.regex),l=await K(o,e,n,i.type_to_folder);return Ke({pmRoot:o,subject:l,settings:n,typeRegistry:i,operation:"history-redact",options:t,transform:u=>ss({pmRoot:o,subject:l,settings:n,typeRegistry:i,options:t,rules:d,replacement:c,replacementIsDefault:a},u)})}function ss(e,t){let{pmRoot:r,subject:o,settings:n,typeRegistry:i,options:s,rules:a,replacement:c,replacementIsDefault:d}=e,l=t.entries,u=Xi(l),m=Zi(l,a,c),p=u.hashMismatchesBefore+u.hashMismatchesAfter,y=!!s.dryRun,_=m.replacements>0,g=[];p>0&&g.push(`history_redact_preexisting_hash_mismatches:${p}`),_||g.push("history_redact_no_matches");let w={raw:t.loadedItem?.raw??null,path:o.located?.itemPath??null,document:t.loadedItem?.document??null},v=es({pmRoot:r,subject:o,settings:n,typeToFolder:i.type_to_folder,finalDocument:m.finalDocument}),E=(w.path??null)!==(v.path??null)||(w.raw??null)!==(v.raw??null),b=t.author,R=ts(s,m),{rewrittenEntries:S,auditEntryAdded:A}=rs({rewritten:m,dryRun:y,changed:_,nextItemDocument:v.document,author:b,message:R});return{changed:_,rewrittenEntries:S,...os({pmRoot:r,subject:o,settings:n,typeRegistry:i,currentItem:w,nextItem:v,author:b,rewrittenEntries:S}),report:({verification:Ie,warnings:W})=>({id:o.id,dry_run:y,changed:_,patterns:{literal_count:a.filter(B=>B.kind==="literal").length,regex_count:a.filter(B=>B.kind==="regex").length,total_count:a.length,replacement_is_default:d},history:{path:o.historyPath,entries_scanned:l.length,entries_changed:m.entriesChanged,replacements:m.replacements,hash_mismatches_before:u.hashMismatchesBefore,hash_mismatches_after:u.hashMismatchesAfter,preexisting_hash_mismatches:p,audit_entry_added:A,verify_ok:Ie.ok,verify_errors:Ie.errors},item:{existed_before:w.path!==null,exists_after:v.path!==null,path_before:w.path,path_after:v.path,changed:E},warnings:[...new Set([...g,...W])].sort((B,ke)=>B.localeCompare(ke)),generated_at:I()})}}var yl={applyLiteralRule:bn,applyRegexRule:vn,buildRedactionRules:wn,hasItemMetadata:En,normalizeRegexFlags:yn,normalizeStringArrayInput:kt,parseRegexRule:_n,redactStringValue:xt,redactUnknownValue:_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]="63c96190-0df9-5803-aa61-b973493a7277")}catch{}})();var Rt={format:"pm-history-attestation",version:1,stream_hash:"exact_file_bytes",rollup_hash:"stable_json_without_workspace_digest",ordering:"stream_id_code_unit_ascending",consistency:"per_stream_snapshot_with_change_detection",trust:"independently_retained_bundle"};import{createHash as as}from"node:crypto";import{isUtf8 as cs}from"node:buffer";import we from"node:fs/promises";import At 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]="a049f799-3807-59b5-96de-51e900798779")}catch{}})();async function Sn(e){try{return(await we.readdir(e)).filter(t=>t.endsWith(".jsonl")).sort()}catch(t){if(Pr(t))return[];throw t}}function ls(e,t,r,o){let n=t.at(-1),i;for(let c=t.length-1;c>=0;c-=1)if(["history_compact","history_compact_baseline","history_redact","history_repair","history_salvage","merge_reconcile"].includes(t[c].op)){i=t[c];break}let s=t[0]?.context?.history_compaction,a=typeof s=="object"&&s!==null&&"pruned_stream_digest"in s&&typeof s.pruned_stream_digest=="string"?s.pruned_stream_digest:null;return{id:e,entries:t.length,bytes:r,stream_digest:o,latest_after_hash:n?.after_hash??null,latest_record_hash:n?.record_hash??null,latest_hash_algorithm:n?x(n.hash_algorithm):null,rewrite_count:t.reduce((c,d)=>c+(d.reanchor_evidence?.length??0),0),checkpoint_digest:a,last_maintenance:i?{op:i.op,ts:i.ts,record_hash:i.record_hash??null}:null}}function ds(e,t,r){try{if(!/^[A-Za-z0-9_-]+$/u.test(e)||!cs(t))return null;let o=[];for(let n of t.toString("utf8").split(/\r?\n/u)){if(!n.trim())continue;let i=JSON.parse(n);if(typeof i!="object"||i===null||Array.isArray(i))return null;let s=i;if(![s.op,s.author,s.ts,s.before_hash,s.after_hash].every(a=>typeof a=="string")||!Array.isArray(s.patch))return null;o.push(s)}return gt(o).ok?ls(e,o,t.length,r):null}catch{return null}}async function Ct(e,t){if(!(await we.stat(e)).isDirectory())throw new TypeError("attestation tracker root must be a directory");let r=At.join(e,"history"),o=await Sn(r),n=new Map,i=[];for(let s of o){let a=s.slice(0,-6),c={id:a,digest:null,stream:null};i.push(c);let d=At.join(r,s);try{let l=await we.lstat(d);if(n.set(s,D([l.ino,l.size,l.mtimeMs,l.ctimeMs])),!l.isFile())continue;let u=await we.readFile(d);c.digest=as(t).update(u).digest("hex"),c.stream=ds(a,u,c.digest)}catch{}}if(D(o)!==D(await Sn(r)))throw new TypeError("attestation history inventory changed during read; retry");for(let[s,a]of n){let c=await we.lstat(At.join(r,s));if(a!==D([c.ino,c.size,c.mtimeMs,c.ctimeMs]))throw new TypeError("attestation history stream changed during read; retry")}return 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]="54d3c0f4-e663-5e31-aa4e-45ea2f6aaf75")}catch{}})();function Tt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Mt(e,t){return Object.keys(e).length===t.length&&t.every(r=>Object.hasOwn(e,r))}function te(e,t){return typeof e=="string"&&(t==="sha256"?/^[a-f0-9]{64}$/u:/^[a-f0-9]{128}$/u).test(e)}function us(e){return e.entries===0?[e.latest_hash_algorithm,e.latest_after_hash,e.latest_record_hash,e.checkpoint_digest,e.last_maintenance].every(t=>t===null)&&e.rewrite_count===0:e.latest_hash_algorithm!=="sha256"&&e.latest_hash_algorithm!=="sha512"?!1:te(e.latest_after_hash,e.latest_hash_algorithm)&&(e.latest_record_hash===null||te(e.latest_record_hash,e.latest_hash_algorithm))}function ms(e){return e===null?!0:!Tt(e)||!Mt(e,["op","ts","record_hash"])?!1:typeof e.op=="string"&&["history_compact","history_compact_baseline","history_redact","history_repair","history_salvage","merge_reconcile"].includes(e.op)&&typeof e.ts=="string"&&Te(e.ts)&&(e.record_hash===null||te(e.record_hash,"sha256")||te(e.record_hash,"sha512"))}function fs(e,t){return!Tt(e)||!Mt(e,["id","entries","bytes","stream_digest","latest_after_hash","latest_record_hash","latest_hash_algorithm","rewrite_count","checkpoint_digest","last_maintenance"])?!1:typeof e.id=="string"&&/^[A-Za-z0-9_-]+$/u.test(e.id)&&[e.entries,e.bytes,e.rewrite_count].every(r=>typeof r=="number"&&Number.isSafeInteger(r)&&r>=0)&&te(e.stream_digest,t)&&us(e)&&(e.checkpoint_digest===null||te(e.checkpoint_digest,"sha256"))&&ms(e.last_maintenance)}function In(e){if(!Tt(e)||!Mt(e,["format","version","hash_algorithm","generated_at","streams","workspace_digest"]))throw new TypeError("Invalid history attestation bundle");if(e.format!==Rt.format||e.version!==1||typeof e.generated_at!="string"||!Te(e.generated_at)||!Array.isArray(e.streams)||e.hash_algorithm!=="sha256"&&e.hash_algorithm!=="sha512")throw new TypeError("Invalid history attestation format");let t=e.hash_algorithm,r;for(let i of e.streams){if(!fs(i,t))throw new TypeError("Invalid history attestation stream");let s=i.id;if(r!==void 0&&s<=r)throw new TypeError("Invalid history attestation stream order");r=s}let{workspace_digest:o,...n}=e;if(mt(D(n),t)!==o)throw new TypeError("History attestation rollup mismatch");return e}async function kn(e={}){let t=x(e.hashAlgorithm),r=e.generatedAt??I();if(!Te(r))throw new TypeError("Invalid history attestation timestamp");let o=await Ct(k(e.cwd??process.cwd(),e.pmRoot),t),n=o.filter(s=>s.stream===null);if(n.length>0)throw new TypeError(`Cannot export history attestation: invalid streams ${n.map(s=>s.id).join(", ")}`);let i={format:Rt.format,version:1,hash_algorithm:t,generated_at:r,streams:o.map(s=>s.stream)};return In({...i,workspace_digest:mt(D(i),t)})}async function xn(e,t={}){let r=In(e),o=await Ct(k(t.cwd??process.cwd(),t.pmRoot),r.hash_algorithm),n=new Map(o.map(l=>[l.id,l])),i=new Map(r.streams.map(l=>[l.id,l])),s=r.streams.filter(l=>!n.has(l.id)).map(l=>l.id),a=o.filter(l=>!i.has(l.id)).map(l=>l.id),c=o.filter(l=>l.stream===null).map(l=>l.id),d=[];for(let l of r.streams){let u=n.get(l.id);u&&(u.digest!==l.stream_digest||D(u.stream)!==D(l))&&d.push({id:l.id,before_digest:l.stream_digest,after_digest:u.digest,last_maintenance:u.stream?.last_maintenance??null})}return{ok:s.length+a.length+c.length+d.length===0,workspace_digest:r.workspace_digest,streams_checked:o.length,changed_streams:d.map(l=>l.id),missing_streams:s,added_streams:a,invalid_streams:c,transitions:d}}import Rn 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]="3bca4afb-f1cc-5627-a377-b30e8005a284")}catch{}})();async function Gl(e,t){for(let o of["verify","output","hashAlgorithm"]){let n=e[o];if(!(o==="verify"&&typeof n=="object"&&n!==null)&&n!==void 0&&(typeof n!="string"||n.trim().length===0))throw new h(`history attest ${o} requires a nonempty string.`,f.USAGE)}if(e.verify!==void 0){if(e.output!==void 0||e.hashAlgorithm!==void 0)throw new h("history attest --verify cannot be combined with --output or --hash-algorithm",f.USAGE);let o;try{o=typeof e.verify=="string"?JSON.parse(await Rn.readFile(e.verify,"utf8")):e.verify}catch{throw new h("Cannot read history attestation proof. Provide --verify with a readable JSON proof file.",f.USAGE)}return xn(o,{pmRoot:t.path})}let r=await kn({pmRoot:t.path,hashAlgorithm:x(e.hashAlgorithm)});if(e.output===void 0)return r;try{await Rn.writeFile(e.output,`${JSON.stringify(r,null,2)}
2
+ `,{flag:"wx",mode:384})}catch{throw new h("Cannot create history attestation proof. Choose --output with a new filename in a writable directory; existing files are never overwritten.",f.USAGE)}return{output:e.output,workspace_digest:r.workspace_digest,streams:r.streams.length}}import hs from"fast-json-patch";import Ft 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]="ebfa0c5e-461b-5078-8272-69086e84b4dc")}catch{}})();async function An(e,t,r){let o=await yo(e,{schema:t.schema});return o.error===null?{raw:o.raw,document:o.document}:{raw:o.raw,document:Cn(r),recovered:!0}}function ps(e,t){return uo(e,t,{errorSubject:"restore",allowFutureTimestamp:!0})}function Cn(e){let t=yt(e,e.length-1);return Object.keys(t.metadata).length===0?{metadata:{},body:t.body}:Fe(H(t))}async function gs(e,t,r,o){let n=await K(e,t,r,o),i=n.located?await He({pmRoot:e,settings:r,itemId:n.id,commandLabel:"restore"}):{warnings:[]};return{...n,historyPolicyWarnings:i.warnings}}function ys(e,t){let r=fe(e),o=fe(t),n=hs.compare(r,o),i=new Set;for(let s of n){if(s.path==="/body"||s.path.startsWith("/body/")){i.add("body");continue}let a=s.path.replace(/^\/(?:metadata|front_matter)\/?/,"").split("/")[0];i.add(a.replaceAll("~1","/").replaceAll("~0","~"))}return Array.from(i).sort((s,a)=>s.localeCompare(a))}async function _s(e){let t=await sn({pmRoot:e.pmRoot,subject:e.subject,settings:e.settings,typeRegistry:e.typeRegistry,historyRawBeforeLock:e.historyRawBeforeLock,currentItemRawBeforeLock:e.currentItemRawBeforeLock,operation:"restore",readItem:r=>An(r,e.settings,e.history)});return{loadedItemUnderLock:t.loadedItemUnderLock,existingItemPath:t.locatedUnderLock?.itemPath??null}}function ws(e,t){return e?{document:e.document,originalRaw:e.raw}:{document:Cn(t),originalRaw:null}}function bs(e){let t=e.document.metadata.assignee?.trim();if(!(t&&t!==e.author&&!e.force))return[];if(e.enforcement==="strict")throw new h(`Item ${e.resolvedId} is assigned to ${t}. Use --force to override.`,f.CONFLICT);return e.enforcement==="warn"?[`ownership_warning:assignee_conflict:${e.resolvedId}:${t}`]:[]}async function vs(e){if(e.existingItemPath&&e.resolvedOriginalRaw!==null&&e.restoredItemPath!==e.existingItemPath){await O(e.existingItemPath,e.resolvedOriginalRaw),await Ft.rm(e.restoredItemPath,{force:!0});return}if(e.existingItemPath&&e.resolvedOriginalRaw!==null){await O(e.existingItemPath,e.resolvedOriginalRaw);return}await Ft.rm(e.restoredItemPath,{force:!0})}async function Es(e){return[...await Y({path:e.restoredItemPath,scope:"project",op:"restore",item_id:e.after.metadata.id,item_type:e.after.metadata.type,before:e.before,after:e.after,changed_fields:["restored"]}),...await Y({path:e.historyPath,scope:"project",op:"restore:history",item_id:e.after.metadata.id,item_type:e.after.metadata.type,before:e.before,after:e.after,changed_fields:["restored"]})]}async function od(e,t,r,o){let n=k(process.cwd(),o.path);await P(n);let i=await L(n),s=U(i,C()),a=await gs(n,e,i,s.type_to_folder),c=a.id,{raw:d,entries:l}=await Jr(a.historyPath,c);if(l.length===0)throw new h(`No history exists for ${c}; restore is unavailable.`,f.NOT_FOUND);let u=ps(t,l),m=mo(yt(l,u.historyIndex),u),p=io(m,{schema:i.schema});if(p.metadata.id!==c)throw new h(`Restore target resolved to item ${p.metadata.id}, expected ${c}.`,f.GENERIC_FAILURE);let y=(a.located?await An(a.located,i,l):null)?.raw??null,_=De(r.author,i.author_default),g=await Kr(n,c,i.locks.ttl_seconds,_,!!r.force,i.governance.force_required_for_stale_lock,i.locks.wait_ms);try{let{loadedItemUnderLock:w,existingItemPath:v}=await _s({pmRoot:n,subject:a,settings:i,typeRegistry:s,historyRawBeforeLock:d,currentItemRawBeforeLock:y,history:l}),E="toon",b=ws(w,l),R=bs({document:b.document,author:_,force:r.force,enforcement:i.governance.ownership_enforcement,resolvedId:c}),S=ys(b.document,p),A=await ho({pmRoot:n,settings:i,operation:"restore",author:_,before:b.document,after:p});await qr({pm_root:n,operation:"restore",before:b.document,after:p,changed_fields:S,sdk:wo({pmRoot:n,settings:i,typeToFolder:s.type_to_folder})});let Ie=Me(p,{format:E,schema:i.schema}),W=z(n,p.metadata.type,c,E,s.type_to_folder),B=await Le(n,_),ke=[];try{await O(W,Ie),v&&W!==v&&await Ft.rm(v);let Pi=V({nowIso:I(),author:_,op:"restore",before:b.document,after:p,message:r.message,context:A.decisions.length===0?void 0:{workflow_policies:A.decisions}});try{await no(a.historyPath,Pi)}catch(Hi){throw await vs({existingItemPath:v,resolvedOriginalRaw:b.originalRaw,restoredItemPath:W}),Hi}ke=await Oe({pmRoot:n,preferredFormat:i.item_format,typeToFolder:s.type_to_folder,schema:i.schema,itemPath:W,previousItemPath:v??void 0,document:p})}finally{await B()}let Di=await Es({restoredItemPath:W,historyPath:a.historyPath,before:b.document,after:p});jr({id:p.metadata.id,op:"restore",item_type:p.metadata.type,previous_status:b.document.metadata.status,status:p.metadata.status,previous:dt(b.document.metadata,S),current:dt(p.metadata,S),changed_fields:S});let Fr=l[u.historyIndex],Dr=q(l,!0);return{item:p.metadata,restored_from:{kind:u.kind,target:u.raw,history_index:u.historyIndex+1,version:Dr===null?null:Dr+u.historyIndex+1,entry_ts:Fr.ts,entry_op:Fr.op},changed_fields:S,warnings:[...A.warnings,...w?.recovered?["restore_unreadable_item_recovered"]:[],...a.historyPolicyWarnings,...R,...ke,...Di]}}finally{await g()}}(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]="190eb119-9510-59d6-bb3a-d1f807c68281")}catch{}})();var Ss=["status","type","tag","priority","deadlineBefore","deadlineAfter","updatedAfter","updatedBefore","createdAfter","createdBefore","ids","assignee","assigneeFilter","parent","sprint","release"],Is=["filterAcMissing","filterEstimatesMissing","filterResolutionMissing","filterMetadataMissing","filterReviewerMissing","filterRiskMissing","filterConfidenceMissing","filterSprintMissing","filterReleaseMissing","hasNotes","hasLearnings","hasFiles","hasDocs","hasTests","hasComments","hasDeps","hasBody","hasLinkedCommand","noNotes","noLearnings","noFiles","noDocs","noTests","noComments","noDeps","emptyBody","noLinkedCommand"];function ks(e){return e!=null&&(typeof e!="string"||e.split(",").some(t=>t.trim().length>0))}function id(e,t,r={}){let o=r.includePagination!==!1;return[t,...Ss.map(n=>e?.[n]),...o?[e?.limit,e?.offset]:[]].some(ks)||Is.some(n=>e?.[n]===!0)}function Tn(e){return{type:e.type,tag:e.tag,priority:e.priority,deadlineBefore:e.deadlineBefore,deadlineAfter:e.deadlineAfter,assignee:e.assignee,assigneeFilter:e.assigneeFilter,parent:e.parent,sprint:e.sprint,release:e.release}}(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]="59f55926-8d04-52f8-a7fc-d32edd32b760")}catch{}})();var Mn=["parent","type","priority","status","assignee","tags","sprint","release"];function Dn(e,t){let r=qe(e,t,{strict:!0,flagLabel:"--status"});if(!(!r||r.length===0))return r}function Pn(e,t=["estimate","estimated_minutes","priority"]){let r=e.sum?.trim(),o=e.avg?.trim(),n=r&&r.length>0?r:void 0,i=o&&o.length>0?o:void 0;if(!n&&!i)return null;if(n&&i&&n!==i)throw new h("Aggregate --sum and --avg must target the same numeric field",f.USAGE);let s=n??i;if(!t.includes(s))throw new h(`Aggregate numeric field "${s}" is not registered. Allowed: ${t.join(", ")}`,f.USAGE);return{field:s,sum:n!==void 0,avg:i!==void 0}}function Hn(e){let t=e?.trim()??"status";if(t.length===0)throw new h("--group-by requires at least one field name",f.USAGE);let r=jo(t);if(r.length===0)throw new h("--group-by requires a comma-separated list of fields",f.USAGE);for(let o of r)if(!Mn.includes(o))throw new h(`Aggregate group fields must be one of ${Mn.join("|")}; received "${o}"`,f.USAGE);return r}function Ln(e){let t=[...new Set(e.map(r=>r.trim().toLowerCase()).filter(r=>r.length>0))].sort((r,o)=>r.localeCompare(o));return t.length===0?null:t.join(",")}function On(e,t){switch(e){case"parent":return t.parent??null;case"type":return t.type;case"priority":return t.priority;case"status":return t.status;case"assignee":return t.assignee??null;case"tags":return Ln(t.tags);case"sprint":return t.sprint??null;case"release":return t.release??null;default:return null}}function jn(e,t){let r=e??null,o=t??null;return r===o?0:r===null?1:o===null?-1:typeof r=="number"&&typeof o=="number"?r-o:String(r).localeCompare(String(o))}function Qe(e,t){return e.map(r=>`${r}:${JSON.stringify(t[r]??null)}`).join("|")}var xs={parent:"(unparented)",type:"(untyped)",priority:"(no priority)",status:"(no status)",assignee:"(unassigned)",tags:"(untagged)",sprint:"(no sprint)",release:"(no release)"};function Fn(e,t){return t==null||t===""?xs[e]:String(t)}function Rs(e,t){return e.length===1?Fn(e[0],t[e[0]]):e.map(r=>`${r}=${Fn(r,t[r])}`).join(" | ")}function qn(e,t,r){for(let o of r){let n=jn(e.group[o],t.group[o]);if(n!==0)return n}return 0}function Nn(e,t){let r=e[t];if(typeof r=="number"&&Number.isFinite(r))return r;if(typeof r=="string"){let o=r.trim();if(o.length===0)return null;let n=Number(o);if(Number.isFinite(n))return n}return null}function Un(e,t){return t<=0?0:Math.round(e/t*1e4)/100}function Dt(e,t,r){let o=Yr(String(t),r)??t;if(o===r.open_status){e.open_count+=1;return}if(o==="in_progress"||r.active_statuses.has(o)&&o!==r.open_status){e.in_progress_count+=1;return}if(r.terminal_done_statuses.has(o)||o===r.close_status){e.closed_count+=1;return}e.other_count+=1}function As(e,t){return{row:{group:e,count:1},numeric_count:t===null?0:1,numeric_sum:t??0,null_count:t===null?1:0,open_count:0,in_progress_count:0,closed_count:0,other_count:0}}function Cs(e,t){if(t===null){e.null_count+=1;return}e.numeric_count+=1,e.numeric_sum+=t}function Ts(e){e.accumulator.row.count+=1,e.includeCompletion&&Dt(e.accumulator,e.item.status,e.statusRegistry),e.numericAggregation!==null&&Cs(e.accumulator,e.numericValue)}function Ms(e,t,r,o){for(let n of t){let i=Qe(r,n),s=e.get(i);if(s){Ts({...o,accumulator:s});continue}let a=As(n,o.numericValue);o.includeCompletion&&Dt(a,o.item.status,o.statusRegistry),e.set(i,a)}}function Fs(e,t){let r={};for(let o of e)r[o]=On(o,t);return r}function Ds(e,t,r){let o=[Fs(e,t)];if(r==="tuple")return o;for(let n of e){let i=t[n];if(!Array.isArray(i))continue;let s=[...new Set(i.map(a=>a.trim().toLowerCase()).filter(Boolean))].sort();s.length!==0&&(o=o.flatMap(a=>s.map(c=>({...a,[n]:c}))))}return o}function Ps(e,t,r,o){let n={...e.row,group_label:Rs(t,e.row.group)};return r&&(n.open=e.open_count,n.in_progress=e.in_progress_count,n.closed=e.closed_count,n.other=e.other_count,n.completion_pct=Un(e.closed_count,e.row.count)),o!==null&&(n.null_count=e.null_count,o.sum&&(n.sum=e.numeric_sum),o.avg&&(n.avg=e.numeric_count===0?null:e.numeric_sum/e.numeric_count)),n}function Hs(e){return{group_by:e.groupBy,set_mode:e.setMode,count:!0,completion:e.includeCompletion,include_unparented:e.includeUnparented,status:e.status?.[0]??null,status_values:e.status,type:e.options.type??null,tag:e.options.tag??null,priority:e.options.priority??null,deadline_before:e.options.deadlineBefore??null,deadline_after:e.options.deadlineAfter??null,assignee:e.options.assignee??null,assignee_filter:e.options.assigneeFilter??null,parent:e.options.parent??null,sprint:e.options.sprint??null,release:e.options.release??null,...e.numericAggregation!==null?{sum:e.options.sum??null,avg:e.options.avg??null,numeric_field:e.numericAggregation.field}:{}}}async function ud(e,t){if(e.count===!1)throw new h("Aggregate grouped counts are always enabled; omit count=false.",f.USAGE);let r=k(process.cwd(),t.path),o=await L(r),n=j(o.schema),i=["estimate","estimated_minutes","priority",...J(o.schema).definitions.filter(E=>E.type==="number").map(E=>E.metadata_key)],s=Hn(e.groupBy),a=e.setMode??"element";if(a!=="element"&&a!=="tuple")throw new h("Aggregate --set-mode must be element or tuple",f.USAGE);let c=Dn(e.status,n),d=Pn(e,[...new Set(i)].sort((E,b)=>E.localeCompare(b))),l=e.completion===!0,u=e.includeUnparented===!0,m=await Ve(void 0,{...Tn(e),status:e.status,noTruncate:!0,strictRead:!0},t),p=new Map,y=0,_=0,g=0;for(let E of m.items){let b=E;if(s.includes("parent")&&b.parent===void 0&&!u){y+=1;continue}let R=d===null?null:Nn(b,d.field),S=Ds(s,b,a);Ms(p,S,s,{item:b,statusRegistry:n,includeCompletion:l,numericAggregation:d,numericValue:R}),g+=S.length,_+=1}let w=[...p.values()].map(E=>Ps(E,s,l,d)).sort((E,b)=>qn(E,b,s)),v=m.warnings&&m.warnings.length>0?m.warnings:void 0;return{...Ls(w,s,e),count:w.length,totals:{items_considered:m.items.length,items_grouped:_,items_skipped_unparented:y,group_memberships:g},filters:Hs({groupBy:s,setMode:a,includeCompletion:l,includeUnparented:u,status:c,options:e,numericAggregation:d}),now:I(),...v?{warnings:v}:{}}}function Ls(e,t,r){let o=on(r.limit,"limit")??50,n=r.after===void 0?-1:e.findIndex(a=>Qe(t,a.group)===r.after);if(r.after!==void 0&&n<0)throw new h("Aggregate --after cursor is absent from the current grouping; restart without --after.",f.USAGE);let i=e.slice(n+1,n+1+o),s=n+1+i.length<e.length;return{groups:i,returned_count:i.length,truncated:s,next_after:s?Qe(t,i.at(-1).group):null}}var md={buildGroupKey:Qe,compareAggregateRows:qn,compareNullableGroupValue:jn,completionPct:Un,normalizeTagGroupValue:Ln,parseGroupBy:Hn,parseNumericAggregation:Pn,parseStatus:Dn,readNumericAggregateValue:Nn,resolveGroupValue:On,updateCompletionCounts:Dt};(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]="21742dd3-12b5-5285-89d8-036693459eb8")}catch{}})();var Gn=1e6,$n=20;function Wn(e,t,r,o=$n){if(!Number.isSafeInteger(o)||o<0)throw new h("Child projection sample limit must be a non-negative integer.",f.USAGE);let n=e.trim().toLowerCase(),i={},s=[],a=0;for(let g of t){if(a+=1,a>Gn)throw new h(`Child projection exceeded the ${Gn.toLocaleString("en-US")} item safety bound.`,f.GENERIC_FAILURE,{code:"child_projection_item_bound_exceeded",required:"Use an indexed or parent-filtered metadata source.",why:"Unbounded graph scans can exhaust memory in universal project stores.",nextSteps:["Build the derived item index, then retry the parent read."]});s.push(g)}let c=new Map(s.map(g=>[g.id.trim().toLowerCase(),g])),d=Xo(Yo(s,Qo())),l=new Set(d.children_by_parent.get(n)??[]);for(let g of s)g.parent?.trim().toLowerCase()===n&&l.add(g.id.trim().toLowerCase());let u=[...l].map(g=>c.get(g)),m=0;for(let g of u){let w=g.status.trim().toLowerCase();i[w]=(i[w]??0)+1,le(w,r)||(m+=1)}u.sort((g,w)=>g.id.localeCompare(w.id));let p=u.slice(0,o).map(g=>({id:g.id,title:g.title,type:g.type,status:g.status,priority:g.priority})),y=u.length>p.length,_=o===0?$n:o;return{count:u.length,active:m,by_status:Object.fromEntries(Object.entries(i).sort(([g],[w])=>g.localeCompare(w))),sample:p,sample_limit:o,truncated:y,next_offset:y?p.length:null,continuation:y?`pm list --status all --parent ${e} --offset ${p.length} --limit ${_}`:null,scanned:a}}(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]="db3fe399-8eb8-5b17-8a9e-89eda4774234")}catch{}})();var Os=new Set(["event","meeting","reminder"]);function js(e){return Os.has(e.type.trim().toLowerCase())||e.deadline!==void 0||(e.reminders?.length??0)>0||(e.events?.length??0)>0}function Pt(e){if(!js(e))return;let t=[...e.events??[]].sort((o,n)=>o.start_at.localeCompare(n.start_at)),r=t[0];return{deadline:e.deadline??null,start_at:r?.start_at??null,end_at:r?.end_at??null,location:r?.location??null,reminders:[...e.reminders??[]],events: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]="4280f121-31b0-55e3-9e3b-964ba97e43b4")}catch{}})();var Ns=new Set(["epic","feature","milestone","plan"]),Us=new Set(Object.keys(Lr).map(e=>e.toLowerCase()));function Lt(e){return Object.fromEntries(["comments","notes","learnings","files","tests","docs","reminders","events"].map(t=>[t,e[t]?.length??0]))}function Gs(e,t){return!t.fieldProjection&&t.full||re(t.fields,"dependencies")?!1:e.dependencies?.some(({id:r,kind:o,...n})=>Object.values(n).some(i=>i!==void 0))??!1}function $s(e,t,r,o,n){let i=Lt(e);return[...t.length>0?["body"]:[],...Object.entries(i).flatMap(([s,a])=>a>0?[s]:[]),...i.files+i.tests+i.docs>0?["linked"]:[],...r===void 0?["children"]:r.count>0?["children"]:[],...typeof e.assignee=="string"&&e.assignee.trim().length>0?["claim_state"]:[],...Pt(e)?["schedule"]:[],...o&&bt(e).length>0?["blockers"]:[],...Gs(e,n)?["dependency_provenance"]:[]]}function zn(e){let t=e.trim().toLowerCase();return t.length>0&&(Ns.has(t)||!Us.has(t))}function Bn(e){return{ts:e.ts,author:e.author,message:e.message??null}}function Ws(e,t){let r=e?.trim(),o=r&&r.length>0?r:null,n=[...t].reverse().find(s=>s.op==="claim"),i=[...t].reverse().find(s=>s.op==="release");return{claimed:o!==null,assignee:o,last_claim:n?Bn(n):null,last_release:i?Bn(i):null}}function Bs(e){if(e===void 0||e.trim().length===0)return"standard";let t=e.trim().toLowerCase();if(t==="full")return"deep";if(ze.includes(t))return t;throw new h("Get --depth must be one of brief|standard|deep|full",f.USAGE,{field:"depth",value:e,recovery:{allowed_values:[...ze,"full"]}})}function zs(e,t,r){let o=Lt(e),n={...e};if(!r&&e.dependencies!==void 0&&(n.dependencies=e.dependencies.map(({id:y,kind:_})=>({id:y,kind:_}))),t==="deep")return{...n,comments:e.comments??[],notes:e.notes??[],learnings:e.learnings??[],files:e.files??[],tests:e.tests??[],docs:e.docs??[],reminders:e.reminders??[],events:e.events??[],notes_count:o.notes,tests_count:o.tests,collection_counts:o};let{comments:i,notes:s,learnings:a,files:c,tests:d,docs:l,reminders:u,events:m,...p}=n;return{...p,notes_count:e.notes?.length??0,tests_count:e.tests?.length??0,collection_counts:o}}function Vs(e){if(e===void 0)return null;let t=e.split(",").map(r=>r.trim()).filter(r=>r.length>0);if(t.length===0)throw new h("Get --fields requires a comma-separated list of field names",f.USAGE);return t}function Ye(e){return e.startsWith("item.")?e.slice(5):e}function Ks(e,t,r){if(e===null)return;let o=vt(t),n=new Set(o),i=e.filter(s=>{let a=Ye(s);return!n.has(s)&&!n.has(a)});if(i.length>0){let s=["get",r,"--fields",e.filter(a=>!i.includes(a)).join(",")||"id,title,status"];throw new h(`Unknown get --fields value(s): ${i.join(", ")}`,f.USAGE,{code:"unknown_field_projection",examples:["pm get <id> --fields id,title,status,type,updated_at","pm get <id> --fields id,title,claim_state","pm get <id> --fields id,title,body,linked.files"],recovery:{allowed_values:o,suggested_retry:X(s),suggested_retry_args:s}})}}var Qs=new Set(["comments","notes","learnings","files","tests","test_runs","docs","reminders","events","dependencies","plan_steps","plan_decisions","plan_discoveries","plan_validation"]);function Ys(e,t,r){return Object.hasOwn(t,r)?t[r]:e[r]!==void 0?e[r]:Qs.has(r)?[]:void 0}function Xs(e,t){let r=e,o={notes_count:e.notes?.length??0,tests_count:e.tests?.length??0,collection_counts:Lt(e)},n={id:e.id};for(let i of t){let s=Ye(i);s==="body"||s==="linked"||s.startsWith("linked.")||s==="claim_state"||s.startsWith("claim_state.")||s==="children"||s.startsWith("children.")||s==="schedule"||s.startsWith("schedule.")||s==="blockers"||(n[s]=Ys(r,o,s))}return n}function re(e,t){return e?.some(r=>r===t||r===`item.${t}`)??!1}function oe(e,t){return e.some(r=>{let o=Ye(r);return o===t||o.startsWith(`${t}.`)})}function Js(e,t){if(e.full&&(e.fields!==void 0||e.depth!==void 0))throw new h("Get projection options are mutually exclusive; remove the extra projection flag and retry.",f.USAGE,{code:"projection_options_mutually_exclusive",flag:"--full",recovery:{suggested_retry:X(["get",t,"--full"]),suggested_retry_args:["get",t,"--full"]}});if(e.tree!==!0&&e.treeDepth!==void 0)throw new h("Get --tree-depth requires --tree",f.USAGE);if(e.at!==void 0&&e.tree===!0)throw new h("Get --at cannot be combined with --tree because workspace-level historical projections are not yet indexed.",f.USAGE);return{depth:e.full?"deep":Bs(e.depth),full:e.full===!0||e.depth?.trim().toLowerCase()==="full",treeDepth:e.tree===!0?Go(e.treeDepth,"--tree-depth"):void 0,fields:Vs(e.fields),fieldProjection:e.fields!==void 0}}async function Zs(e,t,r){let o=k(process.cwd(),t.path);await P(o);let n=await L(o),i=U(n,C());if(r!==void 0){let c=await Eo(e,r,{pmRoot:t.path});return{pmRoot:o,settings:n,typeToFolder:i.type_to_folder,locatedId:c.document.metadata.id,metadata:c.document.metadata,body:c.document.body,historical:c}}let s=await he(o,e,n.id_prefix,n.item_format,i.type_to_folder);if(!s)throw await bo(o,e,n.id_prefix,i.type_to_folder);let a=await pe(s,{schema:n.schema});return{pmRoot:o,settings:n,typeToFolder:i.type_to_folder,locatedId:s.id,metadata:a.document.metadata,body:a.document.body}}function ea(e,t,r,o){let n=J(t.schema).definitions.map(i=>i.metadata_key);if(Ks(e,n,o),r&&oe(e??[],"children"))throw new h("Get --at cannot project children because workspace-level historical relationships are not yet indexed.",f.USAGE);if(r&&oe(e??[],"blockers"))throw new h("Get --at cannot project current blocker statuses; read the current item with --fields blockers instead.",f.USAGE)}function Ht(e){let{fieldProjection:t,depth:r,fields:o,field:n}=e;return t?n==="body"||n==="linked"?re(o,n):oe(o,n):r!=="brief"}async function ta(e,t){if(!t)return;let r=Ce(e.pmRoot,e.locatedId),o=await de(r,e.locatedId);return Ws(e.metadata.assignee,e.historical?o.slice(0,e.historical.target.historyIndex+1):o)}function ra(e,t,r,o){let n=o||re(r,"linked.files"),i=o||re(r,"linked.tests"),s=o||re(r,"linked.docs");!o&&!n&&!i&&!s||(e.linked={files:n?t.metadata.files??[]:[],tests:i?t.metadata.tests??[]:[],docs:s?t.metadata.docs??[]:[]})}async function oa(e,t){if(!t)return;let r=j(e.settings.schema),o=await je(e.pmRoot,e.settings.item_format,e.typeToFolder,void 0,e.settings.schema);return Wn(e.locatedId,o,r)}function na(e,t){let r=new Map;for(let o of e){let n=o.external?o.id:t.get(o.id.toLowerCase())?.id??o.id;r.set(o.external?`external:${n}`:`local:${n.toLowerCase()}`,{...o,id:n})}return[...r.values()]}async function ia(e,t,r){if(t.historical!==void 0||!(r.fieldProjection?oe(r.fields,"blockers"):r.depth!=="brief"))return;let o=bt(t.metadata);if(o.length===0)return;let n=new Map;for(let s of o){if(qo(s)||!/^(?!\.{1,2}$)[^/\\:\0]+$/u.test(s)||t.metadata.dependencies?.some(c=>c.id.trim()===s&&c.kind==="blocked_by"&&No(c.source_kind)))continue;let a=await he(t.pmRoot,s,t.settings.id_prefix,t.settings.item_format,t.typeToFolder);if(a!==null){let c=await pe(a,{schema:t.settings.schema});if(c.document.metadata.id!==a.id)throw new h(`Blocker identity differs from its canonical file: ${a.id}`,f.CONFLICT,{code:"item_identity_conflict",required:"Restore the canonical blocker identity and validate storage integrity before retrying the item read."});n.set(s.toLowerCase(),c.document.metadata)}}let i=na(Uo({blocked_by:t.metadata.blocked_by,dependencies:t.metadata.dependencies,updated_at:t.metadata.updated_at},n,j(t.settings.schema)),n);e.blockers={scope:"declared",open:i.filter(s=>!s.resolved).map(({resolved:s,...a})=>a),closed_count:i.filter(s=>s.resolved).length},!r.fieldProjection&&!r.full&&delete e.item.blocked_by}function sa(e,t,r,o){if(!o)return;let n=Pt(t.metadata);if(n){if(r===null||re(r,"schedule")){e.schedule=n;return}e.schedule=Object.fromEntries(Object.entries(n).filter(([i])=>r.some(s=>Ye(s)===`schedule.${i}`)))}}async function aa(e,t,r,o){if(t.tree!==!0)return;let n=await Ve(void 0,{parent:e.locatedId,tree:!0,treeDepth:r===void 0?void 0:String(r),full:!0},o);return{root_id:e.locatedId,root_title:e.metadata.title,depth_limit:r??null,count:n.count,items:n.items.map(i=>i)}}async function Ld(e,t,r={}){let o=Js(r,e),n=await Zs(e,t,r.at);ea(o.fields,n.settings,n.historical!==void 0,n.locatedId);let i=Ht({...o,field:"body"}),s=Ht({...o,field:"linked"}),a=Ht({...o,field:"claim_state"}),c=n.historical===void 0&&(o.fieldProjection?oe(o.fields,"children"):o.depth==="deep"&&(o.full||zn(n.metadata.type))),d=o.fieldProjection?oe(o.fields,"schedule"):o.depth!=="brief",l=await ta(n,a),u={item:o.fieldProjection?Xs(n.metadata,o.fields):zs(n.metadata,o.depth,o.full)};i&&(u.item.body=n.body),ra(u,n,o.fields,s),l&&(u.claim_state=l),sa(u,n,o.fields,d),await ia(u,n,o);let m=await oa(n,c);m!==void 0&&(u.children=m);let p=await aa(n,r,o.treeDepth,t);if(p!==void 0&&(u.tree=p),n.historical&&(u.reconstructed=!0,u.as_of_version=n.historical.as_of_version,u.as_of_timestamp=n.historical.as_of_timestamp),n.historical===void 0)try{await Qr({pmRoot:n.pmRoot,author:De(void 0,n.settings.author_default),itemIds:[n.locatedId],intent:"get"})}catch{}return Nr(u,$s(n.metadata,n.body,m,n.historical===void 0,o)),u}var Od={shouldAutoIncludeGetChildren:zn};(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]="9c9c1249-e52a-5203-8a84-d54211c30202")}catch{}})();function ca(e,t){return t===void 0?e:e.slice(Math.max(0,e.length-t))}function la(e,t){return e.map(({entry:r,version:o})=>{let n=new Set,i=so(r.patch);for(let s of i)n.add(_t(s.path)),s.from&&n.add(_t(s.from));return{index:o,...t?{version:t.offset===null?null:t.offset+o}:{},ts:r.ts,op:r.op,author:r.author,patch_ops:i.length,changed_fields:[...n].sort((s,a)=>s.localeCompare(a))}})}function da(e){if(e[0]?.op!=="history_compact_baseline")return;let t=q(e,!0);return{offset:t,first_version:t===null?null:t+1,last_version:t===null?null:t+e.length}}async function ua(e,t){let r=k(process.cwd(),t.path);await P(r);let o=await L(r),n=U(o,C()),i=e.trim()===Pe,s=i?Pe:fo(e,o.id_prefix),a=await he(r,s,o.id_prefix,o.item_format,n.type_to_folder),c=a?.id??s,d=i?co(r):Ce(r,c);if(!a&&!await xe(d))throw new h(`Item ${e} not found`,f.NOT_FOUND);return a&&await He({pmRoot:r,settings:o,itemId:a.id,commandLabel:"history"}),{historyPath:d,located:a,resolvedId:c,settings:o}}async function Vd(e,t,r){let o=Ne(t.limit),{historyPath:n,located:i,resolvedId:s,settings:a}=await ua(e,r),c=await de(n,s),d=da(c),l=a.agent_identity.identity_vocabulary,u=an(a.agent_identity.harness_signals),m=ln({harness:t.harness,agentInstance:t.agentInstance,provenance:t.provenanceFilter},l,u),p=ma(c).filter(({entry:S})=>m(S)),y=ca(p,o),_=y.map(({entry:S})=>S),g=t.compact===!0,w=g?la(y,d):void 0,v=t.provenance===!0?y.map(({entry:S,durableVersion:A})=>cn(S,l,{itemId:s,version:A})):void 0,E=t.provenance===!0?"provenance":g?"compact":"full",b={compact:{compact_history:w},provenance:{provenance_history:v},full:{history:_}}[E],R={id:s,...b,compact:g,projection:{mode:E,row_key:{compact:"compact_history",provenance:"provenance_history",full:"history"}[E]},omission_receipt:Ur("history",E),count:_.length,limit:o??null,version_addressing:d,...t.provenanceSummary===!0?{provenance_summary:dn(p.map(({entry:S})=>S),l,u)}:{}};if((t.diff||t.field!==void 0)&&(R.diff=Ao(c,{windowStartIndex:Math.max(0,c.length-_.length),field:t.field})),t.verify){let S=i?(await pe(i,{schema:a.schema})).document:void 0;if(R.verification=vo(c,S),s===Pe&&R.verification.ok){let A=await lo(k(process.cwd(),r.path));R.verification={...R.verification,ok:A.ok,errors:A.ok?R.verification.errors:[...R.verification.errors,"verify_failed:workspace_state_mismatch"],workspace_state_matches_latest:A.ok,workspace_state_mismatches:A.mismatched_documents,workspace_state_missing:A.missing_documents,workspace_state_unreadable:A.unreadable_documents}}}return R}function ma(e){let t=q(e,!0);return e.map((r,o)=>({entry:r,version:o+1,durableVersion:t===null?void 0:t+o+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]="f7f0c9be-34c2-55fb-8676-de58e96c382f")}catch{}})();function fa(e){if(e===void 0)return"keyword";let t=e.trim().toLowerCase();if(t!=="keyword"&&t!=="semantic"&&t!=="hybrid")throw new h("Search mode must be one of keyword|semantic|hybrid",f.USAGE);return t}function Xe(e){return e===!0}function Vn(e){return Hr(e,0,1)??void 0}function Kn(e){if(e===void 0)return"or";let t=e.trim().toLowerCase();if(t!=="and"&&t!=="or"&&t!=="exact")throw new h("Search --match-mode must be one of and|or|exact",f.USAGE);return t}function Qn(e){if(e==null||e==="")return;let t=typeof e=="number"?e:Number(String(e).trim());if(!Number.isFinite(t)||t<0)throw new h("Search --min-score must be a finite number >= 0",f.USAGE);return t}function Q(e,t){if(e==null)return;let r=String(e).trim();if(r.length!==0)return ut(r,new Date,t)}function T(e){return e.toLowerCase().replace(/\s+/g," ").trim()}function Ot(e,t){if(e!==void 0)return ut(e,new Date,t)}function ha(e){if(e===void 0)return;let t=e.split(",").map(r=>r.trim()).filter(r=>r.length>0);if(t.length===0)throw new h("Search --fields requires a comma-separated list of field names",f.USAGE);return[...new Set(t)]}function Je(e,t="<query>"){let r=e.compact===!0,o=e.full===!0,n=ha(e.fields);if(Number(r)+Number(o)+ +(n!==void 0)>1)throw new h("Search projection options are mutually exclusive. Use one of --compact, --full, or --fields.",f.USAGE,{code:"projection_options_mutually_exclusive",recovery:{suggested_retry:X(["search",t,"--full"]),suggested_retry_args:["search",t,"--full"]}});return r?{mode:"compact",fields:[...Jo]}:o?{mode:"full",fields:[]}:n?{mode:"fields",fields:n}:{mode:"full",fields:[]}}function jt(e,t,r="<query>"){if(e.mode!=="fields")return;let o=Zo(t.definitions.flatMap(s=>[s.key,s.metadata_key])),n=new Set(o),i=e.fields.filter(s=>{let a=s.trim();return!n.has(a)});if(i.length>0){let s=["search",r,"--fields",e.fields.filter(a=>!i.includes(a)).join(",")||"id,title,status,score"];throw new h(`Unknown search --fields value(s): ${i.join(", ")}`,f.USAGE,{code:"unknown_field_projection",examples:["pm search <query> --fields id,title,status,score","pm search <query> --fields id,title,item.description,matched_fields"],nextSteps:["Use item.<field> for explicit item metadata fields, or run pm search --help for projection examples."],recovery:{allowed_values:o,suggested_retry:X(s),suggested_retry_args:s}})}}function Ze(e){let t=T(e);if(!t)throw new h("Search query must not be empty",f.USAGE);return t.split(/\s+/u).filter(Boolean)}function qt(e){let t=e.search?.max_results;return typeof t=="number"&&Number.isFinite(t)&&t>0?Math.floor(t):50}var pa=["auto","keyword","semantic","hybrid"];function ga(e){let t=e.search?.default_mode;if(typeof t!="string")return"auto";let r=t.trim().toLowerCase();return pa.includes(r)?r:"auto"}function Nt(e){if(typeof e.requested=="string"&&e.requested.trim().length>0)return{mode:fa(e.requested),source:"explicit"};let t=ga(e.settings);return t!=="auto"?{mode:t,source:"settings"}:{mode:e.semanticRunnable?"hybrid":"keyword",source:"auto"}}function Ut(e){let t=e.search?.score_threshold;return typeof t=="number"&&Number.isFinite(t)?t:0}function Gt(e){let t=e.search?.hybrid_semantic_weight;return typeof t=="number"&&Number.isFinite(t)&&t>=0&&t<=1?t:.7}function $t(e){let t={title_exact_bonus:10,title_weight:48,description_weight:5,tags_weight:6,status_weight:2,body_weight:1,comments_weight:1,notes_weight:1,learnings_weight:1,reminders_weight:2,events_weight:2,dependencies_weight:3,linked_content_weight:1},r=e.search?.tuning;if(!r)return t;let o=(n,i)=>typeof n=="number"&&Number.isFinite(n)&&n>=0?n:i;return{title_exact_bonus:o(r.title_exact_bonus,t.title_exact_bonus),title_weight:o(r.title_weight,t.title_weight),description_weight:o(r.description_weight,t.description_weight),tags_weight:o(r.tags_weight,t.tags_weight),status_weight:o(r.status_weight,t.status_weight),body_weight:o(r.body_weight,t.body_weight),comments_weight:o(r.comments_weight,t.comments_weight),notes_weight:o(r.notes_weight,t.notes_weight),learnings_weight:o(r.learnings_weight,t.learnings_weight),reminders_weight:o(r.reminders_weight,t.reminders_weight),events_weight:o(r.events_weight,t.events_weight),dependencies_weight:o(r.dependencies_weight,t.dependencies_weight),linked_content_weight:o(r.linked_content_weight,t.linked_content_weight)}}import ya 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]="e1f303b6-a641-5550-b58c-ef023b68d5e4")}catch{}})();function Wt(e){return $r("search",{pmRoot:e.pmRoot===void 0?void 0:ya.resolve(e.pmRoot),query:e.query.trim(),mode:e.mode,options:Gr(e.searchOptions,So)})}function Yn(e){let t=Br(e.sorted,{cursor:e.searchOptions.after,fingerprint:Wt(e),limit:e.limit,readId:r=>r.item.id});return{limited:t.rows,pageExtras:{applied_limit:e.limit,...t.has_more?{has_more:!0,truncated:!0}:{},...t.next_cursor?{next_cursor:t.next_cursor}:{}}}}(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]="c8a2412e-2b0c-59c2-81ad-43de4d51562f")}catch{}})();function Xn(e){if(typeof e!="string")return!1;let t=e.split(",").map(r=>r.trim().toLowerCase()).filter(Boolean);return t.length===1&&t[0]==="all"}var _a=[{optionKey:"status",summaryKey:"status",normalize:e=>Xn(e)?"all":e},{optionKey:"type",summaryKey:"type"},{optionKey:"tag",summaryKey:"tag"},{optionKey:"priority",summaryKey:"priority"},{optionKey:"deadlineBefore",summaryKey:"deadline_before"},{optionKey:"deadlineAfter",summaryKey:"deadline_after"},{optionKey:"updatedAfter",summaryKey:"updated_after"},{optionKey:"updatedBefore",summaryKey:"updated_before"},{optionKey:"createdAfter",summaryKey:"created_after"},{optionKey:"createdBefore",summaryKey:"created_before"},{optionKey:"assignee",summaryKey:"assignee"},{optionKey:"sprint",summaryKey:"sprint"},{optionKey:"release",summaryKey:"release"},{optionKey:"parent",summaryKey:"parent"}];function ne(e){let{mode:t,matchMode:r,options:o,includeLinked:n,titleExact:i,phraseExact:s,scoreThreshold:a,hybridSemanticWeight:c,runtimeFieldFilters:d}=e,l={};return rn(l,o,_a),Object.assign(l,St(o)),Object.assign(l,Et(o)),r!==void 0&&r!=="or"&&(l.match_mode=r),n&&(l.include_linked=!0),i&&(l.title_exact=!0),s&&(l.phrase_exact=!0),a>0&&(l.score_threshold=a),t==="hybrid"&&o.semanticWeight!==void 0&&(l.hybrid_semantic_weight=c),o.limit!==void 0&&(l.limit=o.limit),d&&Object.keys(d).length>0&&(l.runtime_filters=d),l}function ie(e){let{effectiveMode:t,matchMode:r,options:o,includeLinked:n,titleExact:i,phraseExact:s,scoreThreshold:a,hybridSemanticWeight:c,queryExpansion:d,rerank:l,runtimeFieldFilters:u}=e,m=p=>p??null;return{mode:t,match_mode:r,status:o.status===void 0||Xn(o.status)?"all":o.status,type:m(o.type),tag:m(o.tag),priority:m(o.priority),deadline_before:m(o.deadlineBefore),deadline_after:m(o.deadlineAfter),updated_after:m(o.updatedAfter),updated_before:m(o.updatedBefore),created_after:m(o.createdAfter),created_before:m(o.createdBefore),assignee:m(o.assignee),sprint:m(o.sprint),release:m(o.release),parent:m(o.parent),...St(o),...Et(o),include_linked:n,title_exact:i,phrase_exact:s,score_threshold:a,hybrid_semantic_weight:t==="hybrid"?c:null,query_expansion_enabled:d.enabled,query_expansion_provider:d.provider,rerank_enabled:l.enabled,rerank_model:l.model,rerank_top_k:l.top_k,limit:m(o.limit),runtime_filters:u}}(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]="0272e482-0dab-5970-b19a-4da286fd112b")}catch{}})();var wa=1.2,ba=.75;function Bt(e){return ee(e)}function va(e){let t=new Map;for(let r of e)t.set(r,(t.get(r)??0)+1);return t}function Zn(e){let t=[],r=new Map,o=0;for(let i of e){let s=Bt(i.text),a=va(s);o+=s.length;for(let c of a.keys())r.set(c,(r.get(c)??0)+1);t.push({id:i.id,termFrequencies:a,length:s.length})}let n=t.length;return{documents:t,documentFrequency:r,documentCount:n,averageDocumentLength:n>0?o/n:0}}function Ea(e,t){return Math.log(1+(e-t+.5)/(t+.5))}function ei(e,t,r){let o=new Map;if(e.documentCount===0||e.averageDocumentLength===0)return o;let n=[...new Set(t.filter(s=>s.length>0))];if(n.length===0)return o;let i=new Map;for(let s of n){let a=e.documentFrequency.get(s);a!==void 0&&i.set(s,Ea(e.documentCount,a))}if(i.size===0)return o;for(let s of e.documents){let a=0;for(let[c,d]of i){let l=s.termFrequencies.get(c);if(l===void 0)continue;let u=1-r.b+r.b*s.length/e.averageDocumentLength,m=l+r.k1*u;a+=d*(l*(r.k1+1)/m)}a>0&&o.set(s.id,a)}return o}function Jn(e,t,r,o){return typeof e!="number"||!Number.isFinite(e)?t:Math.min(o,Math.max(r,e))}function ti(e){let t=r=>typeof r=="string"?[r]:typeof r=="number"?[String(r)]:Array.isArray(r)?r.flatMap(t):typeof r=="object"&&r!==null?Object.values(r).flatMap(t):[];return t(Object.values(e)).join(" ")}function ri(e){let t=e?.search?.bm25;return{k1:Jn(t?.k1,wa,0,1e3),b:Jn(t?.b,ba,0,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]="b75c3c5e-e2b7-5e65-a56a-883dc896290e")}catch{}})();var zt=4,Sa=20,Ia=200,ka=new Set(["a","an","and","for","from","in","into","of","on","or","the","to","with"]);function Vt(e,t){let r=[],o=new Set;for(let n of e){let i=n.trim().replaceAll(/\s+/g," ");if(i.length===0)continue;let s=i.toLowerCase();if(!o.has(s)&&(o.add(s),r.push(i),r.length>=t))break}return r}function xa(e){let t=e.toLowerCase();return t.length>4&&t.endsWith("ies")?`${t.slice(0,-3)}y`:t.length>4&&(t.endsWith("ches")||t.endsWith("shes")||t.endsWith("xes")||t.endsWith("zes")||t.endsWith("sses"))?t.slice(0,-2):t.length>3&&t.endsWith("s")&&!t.endsWith("ss")&&!t.endsWith("us")&&!t.endsWith("is")&&!t.endsWith("as")?t.slice(0,-1):t}function Ra(e){let t=e.toLowerCase();return t.length>2&&(!t.endsWith("s")||t.endsWith("ss"))?t.endsWith("y")&&!/[aeiou]y$/u.test(t)?`${t.slice(0,-1)}ies`:t.endsWith("ch")||t.endsWith("sh")||t.endsWith("x")||t.endsWith("z")||t.endsWith("ss")?`${t}es`:`${t}s`:t}function oi(e,t=zt){let r=e.trim().replaceAll(/\s+/g," ");if(r.length===0)return[];let o=ee(r);if(o.length===0)return[r];let n=o.filter(a=>!ka.has(a.toLowerCase())),i=o.map(a=>xa(a)),s=n.map(a=>Ra(a));return Vt([r,o.join(" "),n.join(" "),i.join(" "),s.join(" ")],Math.max(1,t))}function ni(e){let t=Array.isArray(e)?e:e?.queries;return Array.isArray(t)?Vt(t.filter(r=>typeof r=="string"),zt):[]}function ii(e,t,r){return Vt([...e,...t],Math.max(1,r))}function si(e,t){let r=e.search?.query_expansion,o=ae(r?.provider);return{enabled:r?.enabled===!0,provider:o??t,max_queries:zt}}function ai(e,t){let r=e.search?.rerank,o=ae(r?.model),n=Ae(r?.top_k)??Sa;return{enabled:r?.enabled===!0,model:o??t,top_k:Math.min(Ia,n)}}function ci(e){let t=Array.isArray(e)?e:e?.hits;if(!Array.isArray(t))return[];let r=new Map;for(let n of t){if(typeof n!="object"||n===null)continue;let i=ae(n.id),s=n.score;if(!i||typeof s!="number"||!Number.isFinite(s))continue;let a=r.get(i);(a===void 0||s>a)&&r.set(i,s)}let o=[...r.entries()].map(([n,i])=>({id:n,score:i}));return o.sort((n,i)=>n.score!==i.score?i.score-n.score:n.id.localeCompare(i.id)),o}function Aa(e,t){let r=e.length,o=0;for(let n=0;n<r;n+=1)o+=e[n]*t[n];return o}function li(e){let t=0;for(let r=0;r<e.length;r+=1)t+=e[r]*e[r];return Math.sqrt(t)}function Ca(e,t,r){if(!e||!t||e.length===0||t.length===0||e.length!==t.length)return 0;let o=Aa(e,t),n=li(t),i=r*n;return!Number.isFinite(o)||!Number.isFinite(r)||!Number.isFinite(n)||!Number.isFinite(i)||i===0?0:Math.max(-1,Math.min(1,o/i))}async function di(e,t,r,o,n){if(o.length===0)return new Map;let i=ae(t)??e.model,s=i===e.model?e:{...e,model:i},a=[r.trim(),...o.map(m=>m.text)],c=await Ue(s,a,n?{timeout_ms:n}:{}),d=c[0];if(!d)return new Map;let l=li(d),u=new Map;for(let m=0;m<o.length;m+=1){let p=o[m],y=c[m+1];if(!y)continue;let _=Ca(d,y,l);u.set(p.id,Math.max(0,Math.min(1,(_+1)/2)))}return u}(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]="a5d1f401-e5eb-5b6e-8b5a-d8135128f44b")}catch{}})();function se(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function N(e){return Array.isArray(e)?e.filter(t=>typeof t=="object"&&t!==null&&typeof t.text=="string"):[]}function be(e){return Array.isArray(e)?e.filter(t=>typeof t=="object"&&t!==null&&typeof t.id=="string"&&typeof t.kind=="string"):[]}function Kt(e){let t=e.metadata;return[t.title,t.description,t.status,se(t.tags).join(" "),e.body,N(t.comments).map(r=>r.text).join(" "),N(t.notes).map(r=>r.text).join(" "),N(t.learnings).map(r=>r.text).join(" "),Ge(t).join(" "),$e(t).join(" "),be(t.dependencies).map(r=>`${r.id} ${r.kind}`).join(" "),We(t)]}function Qt(e,t){return Kt(e).some(r=>T(r).includes(t))}function Yt(e,t,r){return!r.titleExact&&!r.phraseExact?e:e.filter(o=>!(r.titleExact&&T(o.metadata.title)!==t||r.phraseExact&&!Qt(o,t)))}function Ta(e){if(e&&[...e].some(t=>t.toLowerCase()==="none"||t.toLowerCase()==="null"))throw new h('--assignee no longer accepts "none" or "null".',f.USAGE)}function Ma(e,t,r){let o=ye(e.assignee,{label:"--assignee"});Ta(o);let n=en(e),i=tn(e);return{typeFilter:$o(e.type,t),tagFilter:ye(e.tag,{label:"--tag",normalize:s=>s.toLowerCase()}),priorityFilter:Wo(e.priority),deadlineBefore:Ot(e.deadlineBefore,"deadline-before"),deadlineAfter:Ot(e.deadlineAfter,"deadline-after"),updatedAfter:Q(e.updatedAfter,"updated-after"),updatedBefore:Q(e.updatedBefore,"updated-before"),createdAfter:Q(e.createdAfter,"created-after"),createdBefore:Q(e.createdBefore,"created-before"),assigneeFilter:o,sprintFilter:ye(e.sprint,{label:"--sprint"}),releaseFilter:ye(e.release,{label:"--release"}),parentFilter:e.parent?.trim(),statusSet:r&&r.length>0?new Set(r):void 0,missingMetadataFilters:n,missingMetadataActive:Bo(n),contentFieldFilters:i,contentFiltersActive:Vo(i)}}function Fa(e,t){return Da(e,t)&&Vr(e,t)&&Pa(e,t)}function Da(e,t){if(t.statusSet&&!t.statusSet.has(e.status)||t.typeFilter&&!t.typeFilter.has(e.type))return!1;let r=t.tagFilter;return!(r&&!se(e.tags).some(o=>r.has(o))||t.priorityFilter!==void 0&&!t.priorityFilter.has(e.priority))}function Pa(e,t){return!(t.assigneeFilter!==void 0&&(e.assignee===void 0||!t.assigneeFilter.has(e.assignee))||t.sprintFilter!==void 0&&(e.sprint===void 0||!t.sprintFilter.has(e.sprint))||t.releaseFilter!==void 0&&(e.release===void 0||!t.releaseFilter.has(e.release))||t.parentFilter!==void 0&&e.parent!==t.parentFilter)}function Ha(e,t,r,o){let n=e.metadata;return!(!Fa(n,t)||!To(n,r)||t.missingMetadataActive&&!zo(n,t.missingMetadataFilters,o)||t.contentFiltersActive&&!Ko(n,t.contentFieldFilters))}function Xt(e,t,r,o,n,i){let s=Ma(t,r,n);return e.filter(a=>Ha(a,s,o,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]="a3f9e7fa-7ebf-5fc7-93a4-f12cff30f4ff")}catch{}})();var La=2,Oa=120,ja=6,qa=40,Na=1e3,Ua=900,Ga="\xAB",$a="\xBB",ui=60;function et(e,t){let r=0,o=0;for(;;){let n=e.indexOf(t,o);if(n<0)return r;r+=1,o=n+t.length}}var mi=[{name:"title",weightKey:"title_weight",value:e=>e.metadata.title},{name:"description",weightKey:"description_weight",value:e=>e.metadata.description},{name:"tags",weightKey:"tags_weight",value:e=>se(e.metadata.tags).join(" ")},{name:"status",weightKey:"status_weight",value:e=>typeof e.metadata.status=="string"?e.metadata.status:""},{name:"body",weightKey:"body_weight",value:e=>e.body},{name:"comments",weightKey:"comments_weight",value:e=>N(e.metadata.comments).map(t=>t.text).join(" ")},{name:"notes",weightKey:"notes_weight",value:e=>N(e.metadata.notes).map(t=>t.text).join(" ")},{name:"learnings",weightKey:"learnings_weight",value:e=>N(e.metadata.learnings).map(t=>t.text).join(" ")},{name:"reminders",weightKey:"reminders_weight",value:e=>Ge(e.metadata).join(" ")},{name:"events",weightKey:"events_weight",value:e=>$e(e.metadata).join(" ")},{name:"dependencies",weightKey:"dependencies_weight",value:e=>be(e.metadata.dependencies).map(t=>`${t.id} ${t.kind}`).join(" ")},{name:"plan",weightKey:"body_weight",value:e=>We(e.metadata)}],Wa=new Map(mi.map(e=>[e.name,e]));function Jt(e,t){let r=t.filter(n=>n.length>0).sort((n,i)=>i.length-n.length).map(n=>n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"));if(r.length===0)return e;let o=new RegExp(r.join("|"),"gi");return e.replace(o,n=>`${Ga}${n}${$a}`)}function Zt(e,t){if(e.length===0)return null;let r=e.toLowerCase(),o=-1,n=0;for(let l of t){if(l.length===0)continue;let u=r.indexOf(l);u>=0&&(o<0||u<o)&&(o=u,n=l.length)}if(o<0)return null;let i=Math.max(0,o-ui),s=Math.min(e.length,o+n+ui),a=Jt(e.slice(i,s),t),c=i>0?"\u2026":"",d=s<e.length?"\u2026":"";return`${c}${a}${d}`}function tt(e,t,r){let o=[];for(let n of t){let i=Wa.get(n);if(i===void 0)continue;let s=Zt(i.value(e),r);s!==null&&o.push({field:n,snippet:s})}return o}function Ba(e,t,r){return[...mi.map(o=>({name:o.name,value:o.value(e),weight:r[o.weightKey]})),{name:"linked_content",value:t,weight:r.linked_content_weight}]}function za(e,t,r){let o=T(e.id),n=typeof r=="string"?r.trim().toLowerCase():"",i=T(n),s=i.length>0&&o.startsWith(i)?o.slice(i.length).trim():o;return t!==o&&t!==s?null:{item:e,score:t===o?Na:Ua,matched_fields:["id"],matched_all_terms:!0,exact_id_match:!0}}function Va(e,t,r,o,n){for(let i of e){let s=t.get(i)??0;s>0&&(n.score+=s*o.title_exact_bonus,n.matched.add("title"),n.matchedTokens.add(i));for(let a of r){let c=et(a.value.toLowerCase(),i);c>0&&(n.score+=c*a.weight,n.matched.add(a.name),n.matchedTokens.add(i))}}}function Ka(e,t,r,o){T(e.title)===t&&(o.score+=Oa,o.matched.add("title"));for(let n of r){let i=et(T(n.value),t);i>0&&(o.score+=i*n.weight*ja,o.matched.add(n.name))}}function er(e,t,r,o,n,i,s=!1){let a=e.metadata,c=za(a,r,i);if(c)return c;let d=new Map;for(let y of ee(a.title))d.set(y,(d.get(y)??0)+1);let l=Ba(e,o,n),u={score:0,matched:new Set,matchedTokens:new Set};Va(t,d,l,n,u);let m=new Set(t),p=m.size>0&&u.matchedTokens.size===m.size;return s&&m.size>1&&p&&(u.score+=qa),t.length>=La&&r.includes(" ")&&Ka(a,r,l,u),u.score<=0?null:{item:a,score:u.score,matched_fields:[...u.matched].sort((y,_)=>y.localeCompare(_)),matched_all_terms:p}}function tr(e,t){return[...e].sort((r,o)=>{let n=o.score-r.score;if(n!==0)return n;let i=le(r.item.status,t),s=le(o.item.status,t);if(i!==s)return i?1:-1;let a=r.item.priority-o.item.priority;if(a!==0)return a;let c=zr(o.item.updated_at,r.item.updated_at);return c!==0?c:r.item.id.localeCompare(o.item.id)})}function rr(e,t,r,o,n,i,s,a=!1){return er(e,t,r,o?n.get(e.metadata.id)??"":"",i,s,a)}function ve(e){if(e.size===0)return new Map;let t=Number.POSITIVE_INFINITY,r=Number.NEGATIVE_INFINITY;for(let n of e.values())t=Math.min(t,n),r=Math.max(r,n);if(r===t)return new Map([...e.keys()].map(n=>[n,1]));let o=new Map;for(let[n,i]of e)o.set(n,(i-t)/(r-t));return o}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="c8484fbd-5fb2-56aa-9d69-26646be262a9")}catch{}})();function ot(e){let t=[],r=e;for(let o=0;o<5&&r&&typeof r=="object";o+=1){let n=r.code;typeof n=="string"&&t.push(n.toLowerCase()),r=r.cause}return t.join(" ")}function nt(e){let t=(e instanceof Error?e.message:String(e)).toLowerCase(),r=ot(e),o=`${t} ${r}`;return o.includes("timed out")||o.includes("timeout")||o.includes("etimedout")?"timeout":o.includes("econnrefused")||o.includes("connection refused")||o.includes("connect ")||o.includes("enotfound")||o.includes("eai_again")||o.includes("econnreset")||o.includes("fetch failed")?"connection":"error"}function or(e,t){let r=nt(t);return`search_${e}_fallback:${r}:using_keyword_mode`}function fi(e){return e?.commands?.some(t=>t.command.trim()==="reindex")===!0?{command:"pm reindex --mode hybrid",args:["reindex","--mode","hybrid"]}:{command:"pm install search-advanced --project",args:["install","search-advanced","--project"],follow_up_command:"pm reindex --mode hybrid",follow_up_args:["reindex","--mode","hybrid"]}}async function nr(e,t,r){try{let o=await Oo(e);o.warnings.length>0&&r.push(...o.warnings);let n=nn(t.map(s=>({id:s.metadata.id,updated_at:s.metadata.updated_at})),o.entries);if(n.length===0)return;let i=fi(C());r.push(...hi(n.length,i)),process.stderr.write(`[pm] warning: ${n.length} item${n.length===1?" is":"s are"} new or modified since the last reindex and ${n.length===1?"is":"are"} NOT in the semantic index yet \u2014 run '${i.command}'${i.follow_up_command?`, then '${i.follow_up_command}'`:""}. (Write-time embedding is governed by search.mutation_refresh_policy; staleness means the embed was skipped, failed, or the backend was unreachable.)
3
+ `)}catch{}}function hi(e,t){return[`vector_index_stale:${e}`,`vector_index_recovery:${t.args.join(" ")}`,...t.follow_up_args?[`vector_index_recovery_follow_up:${t.follow_up_args.join(" ")}`]:[]]}function it(e,t,r,o){if(!t.active)throw new h(`Search mode '${e}' requires a configured embedding provider in settings.providers.openai or settings.providers.ollama`,f.USAGE);if(!r.active&&!o)throw new h(`Search mode '${e}' requires a configured vector store in settings.vector_store.qdrant/settings.vector_store.lancedb or an extension adapter selected by settings.vector_store.adapter`,f.USAGE);return{provider:t.active,vectorStore:r.active??null}}var M=Re;function Ee(e){let t=C(),r=Io(t,e);if(!r)return null;let o=r.runtime_definition??r.definition,n=o.query,i=o.queryExpansion??o.query_expansion,s=o.rerank,a=M(o.name)??M(r.definition.name)??e;if(!a)return null;let c={providerName:a,...typeof n=="function"?{query:n}:{},...typeof i=="function"?{queryExpansion:i}:{},...typeof s=="function"?{rerank:s}:{}};return!c.query&&!c.queryExpansion&&!c.rerank?null:c}function ir(e){let t=M(e.search?.provider),r=Ee(t);return r?.query?{providerName:r.providerName,query:r.query}:null}function sr(e){let t=C(),r=M(e.vector_store?.adapter),o=ko(t,r);if(!o)return null;let n=o.runtime_definition??o.definition,i=n.query;if(typeof i!="function")return null;let s=n.upsert;return{adapterName:M(n.name)??M(o.definition.name)??r??"extension",query:i,...typeof s=="function"?{upsert:s}:{}}}function ar(e,t,r){let o=Array.isArray(t)?t:t?.hits;if(!Array.isArray(o))throw new h(`Extension search provider "${e}" must return an array of hits or { hits: [...] }`,f.GENERIC_FAILURE);let n=new Set,i=[];for(let s of o){if(typeof s!="object"||s===null)continue;let a=M(s.id),c=s.score;if(!a||typeof c!="number"||!Number.isFinite(c)||n.has(a))continue;let d=r.get(a);if(!d)continue;let l=s.matched_fields,u=Array.isArray(l)&&l.every(m=>typeof m=="string")?[...new Set(l.map(m=>m.trim()).filter(m=>m.length>0))].sort((m,p)=>m.localeCompare(p)):[`provider:${e}`];n.add(a),i.push({item:d.metadata,score:c,matched_fields:u})}return i}function cr(e,t){let r=[],o=new Map;for(let n of e){if(o.has(n.id))continue;let i=t.get(n.id);i&&(o.set(n.id,n.score),r.push({item:i.metadata,score:n.score,matched_fields:["semantic"]}))}return{semanticHits:r,semanticScores:o}}function rt(e,t){let r=t.filter(c=>c.exact_id_match===!0);if(r.length===0)return e;let o=new Set(r.map(c=>c.item.id)),n=e.filter(c=>!o.has(c.item.id)),i=n.reduce((c,d)=>Math.max(c,d.score),0),s=r.sort((c,d)=>d.score-c.score),a=i+s.length+1;return[...s.map((c,d)=>({...c,score:a-d,matched_fields:["id"]})),...n]}function st(e,t,r,o,n="semantic"){let i=new Map(r.map(u=>[u.item.id,u.score])),s=new Map(r.map(u=>[u.item.id,u.matched_fields])),a=ve(t),c=ve(i),d=new Set([...t.keys(),...i.keys()]),l=1-o;return[...d].map(u=>{let m=e.get(u),p=a.get(u)??0,y=c.get(u)??0,_=p*o+y*l;if(_<=0)return null;let g=new Set;t.has(u)&&g.add(n);for(let w of s.get(u)??[])g.add(w);return{item:m.metadata,score:_,matched_fields:[...g].sort((w,v)=>w.localeCompare(v))}}).filter(u=>u!==null)}function lr(e){let t=e.configuredProvider?.trim().toLowerCase();return t==="bm25"?"explicit":t==="auto"&&!e.hasEmbeddingProvider&&!e.hasExtensionSearchProvider?"auto-fallback":null}function dr(e){let t=e.filteredDocuments.map(s=>({id:s.metadata.id,text:ti(Ho(s,{fields:e.corpusFields}))})),r=Zn(t),o=ei(r,Bt(e.query),e.bm25Params),n=new Map(e.filteredDocuments.map(s=>[s.metadata.id,s]));if(e.requestedMode==="semantic"){let s=[...o].map(([a,c])=>({item:n.get(a).metadata,score:c,matched_fields:["bm25"]}));return rt(s,e.keywordHits)}let i=st(n,o,e.keywordHits,e.hybridSemanticWeight,"bm25");return rt(i,e.keywordHits)}function ur(e){let t=new Map;for(let o of e)for(let n of o){let i=t.get(n.id);(!i||n.score>i.score)&&t.set(n.id,n)}let r=[...t.values()];return r.sort((o,n)=>o.score!==n.score?n.score-o.score:o.id.localeCompare(n.id)),r}function mr(e){let t=e.metadata,r=Array.isArray(t?.tags)?t.tags.join(" "):"";return[t?.title,t?.description,t?.type,t?.status,r,e.body].map(o=>typeof o=="string"?o.trim():"").filter(o=>o.length>0).join(`
4
+ `)}async function Qa(e,t){let r=e.queryExpansion.enabled?oi(t,e.queryExpansion.max_queries):[t],o=r.length>0?r:[t];if(!e.queryExpansion.enabled)return o;if(e.queryExpansionExtension?.expand)try{let n=await Promise.resolve(e.queryExpansionExtension.expand({query:t,mode:e.requestedMode,settings:e.settings}));return ii(o,ni(n),e.queryExpansion.max_queries)}catch{return e.warnings.push(`search_query_expansion_provider_failed:${e.queryExpansionExtension.providerName}:using_builtin`),o}return e.queryExpansion.provider&&e.queryExpansion.provider!=="openai"&&e.queryExpansion.provider!=="ollama"&&e.warnings.push(`search_query_expansion_provider_unavailable:${e.queryExpansion.provider}:using_builtin`),o}async function Ya(e,t,r,o){if(e.extensionVectorAdapter?.query)try{return await Promise.resolve(e.extensionVectorAdapter.query({vector:t,limit:r,settings:e.settings}))}catch(n){if(!e.vectorStore)throw new h(`Extension vector adapter query failed and no built-in fallback store is configured (${n instanceof Error?n.message:String(n)})`,f.GENERIC_FAILURE);return e.warnings.push(`search_vector_adapter_failed:${e.extensionVectorAdapter.adapterName}:using_builtin`),await wt(e.vectorStore,t,r,o)}if(e.vectorStore)return await wt(e.vectorStore,t,r,o);throw new h("Semantic search requires either a configured vector store or an extension vector adapter query handler",f.USAGE)}function Xa(e,t,r){return[...e].sort((o,n)=>o.score!==n.score?n.score-o.score:o.item.id.localeCompare(n.item.id)).slice(0,r).map(o=>{let n=t.get(o.item.id);return n?{hit:o,text:mr(n)}:null}).filter(o=>o!==null)}async function Ja(e,t,r){if(!e.rerankExtension?.rerank)return null;try{let o=await Promise.resolve(e.rerankExtension.rerank({query:t,mode:"hybrid",model:e.rerank.model,top_k:e.rerank.top_k,settings:e.settings,candidates:r.map(i=>({id:i.hit.item.id,text:i.text,score:i.hit.score}))})),n=ci(o);return n.length>0?new Map(n.map(i=>[i.id,i.score])):(e.warnings.push(`search_rerank_provider_invalid_response:${e.rerankExtension.providerName}:using_builtin`),null)}catch{return e.warnings.push(`search_rerank_provider_failed:${e.rerankExtension.providerName}:using_builtin`),null}}async function Za(e,t,r){let o=await Ja(e,t,r);if(o)return o;let n=r.map(i=>({id:i.hit.item.id,text:i.text}));try{return await di(e.provider,e.rerank.model,t,n,e.embeddingTimeoutMs)}catch{return e.warnings.push("search_rerank_failed:using_hybrid_scores"),null}}function ec(e,t){let r=new Set(t.keys()),o=e.map(n=>{let i=t.get(n.item.id);if(i===void 0)return n;let s=new Set(n.matched_fields);return s.add("rerank"),{...n,score:i,matched_fields:[...s].sort((a,c)=>a.localeCompare(c))}});return o.sort((n,i)=>{let s=r.has(n.item.id),a=r.has(i.item.id);return s!==a?s?-1:1:n.score!==i.score?i.score-n.score:n.item.id.localeCompare(i.item.id)}),o}async function tc(e,t,r,o){if(!e.rerank.enabled||r.length<=1)return r;let n=Xa(r,o,e.rerank.top_k),i=await Za(e,t,n);return i&&i.size>0?ec(r,i):r}async function fr(e){let t=Math.max(e.limit??e.maxResults,e.maxResults),r=e.embeddingTimeoutMs!==void 0?{timeout_ms:e.embeddingTimeoutMs}:{},o=e.vectorQueryTimeoutMs!==void 0?{timeout_ms:e.vectorQueryTimeoutMs}:{},n=e.query.trim(),i=await Qa(e,n),s=await Ue(e.provider,i,r),a=await Promise.all(s.map(async y=>await Ya(e,y,t,o))),c=ur(a),d=new Map(e.filteredDocuments.map(y=>[y.metadata.id,y])),{semanticHits:l,semanticScores:u}=cr(c,d),m=u.size;if(e.requestedMode==="semantic")return{hits:rt(l,e.keywordHits),vectorMatchCount:m};let p=await tc(e,n,st(d,u,e.keywordHits,e.hybridSemanticWeight),d);return{hits:rt(p,e.keywordHits),vectorMatchCount:m}}function pi(e){let t=Ee(e.provider??void 0);return t?.queryExpansion?{providerName:t.providerName,expand:t.queryExpansion}:null}function gi(e){let t=Ee(M(e.search?.provider));return t?.rerank?{providerName:t.providerName,rerank:t.rerank}:null}import at from"node:fs/promises";import hr 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]="de9a1cbd-f277-52ef-adc6-66225f2d2f4f")}catch{}})();function pr(e){let t=(e.files??[]).map(s=>({scope:s.scope,path:s.path.trim()})),r=(e.docs??[]).map(s=>({scope:s.scope,path:s.path.trim()})),o=(e.tests??[]).filter(s=>typeof s.path=="string"&&s.path.trim().length>0).map(s=>({scope:s.scope,path:s.path.trim()})),n=[...t,...r,...o].filter(s=>s.path.length>0).sort((s,a)=>s.scope.localeCompare(a.scope)||s.path.localeCompare(a.path)),i=new Map;for(let s of n)i.set(`${s.scope}:${s.path}`,s);return[...i.values()]}async function yi(e){let t=hr.resolve(e);try{let r=await at.realpath(t);return{resolved:t,realpath:r}}catch{return null}}async function gr(e,t){let[r,o]=await Promise.all([yi(e),yi(t)]);return{projectContainmentRoot:r,globalContainmentRoot:o}}async function yr(e,t){let r=pr(e.metadata),o=[];for(let n of r){let i=n.scope==="global"?t.globalContainmentRoot:t.projectContainmentRoot;if(!i)continue;let s=hr.resolve(i.resolved,n.path);if(!lt(i.resolved,s))continue;let a;try{a=await at.realpath(s)}catch{continue}if(lt(i.realpath,a))try{await ce({path:s,scope:n.scope}),o.push(await at.readFile(s,"utf8"))}catch{}}return o.join(`
5
+ `)}async function _r(e,t,r,o){let n=po(C()),i=async(d,l,u)=>{let m=async(p,y)=>{await ce({path:p,scope:"project"});let _=await at.readFile(p,"utf8");return Xr(_,{format:y,schema:o,extensionFieldNames:n,onWarning:g=>s.push(g)}).body};try{return await m(l,u)}catch{let p=u==="toon"?"json_markdown":"toon",y=z(e,d.type,d.id,p,r);try{return await m(y,p)}catch{return s.push(`item_list_item_read_failed:${hr.relative(e,y)}`),""}}},s=[],a=await go(e,t,r,s,o),c=[];if(a.length===0){let d=await _o(e,t,r,s,o);for(let l of d){let u=z(e,l.type,l.id,t,r),m=await i(l,u,t);c.push({metadata:l,body:m})}return{documents:c,warnings:[...new Set(s)].sort((l,u)=>l.localeCompare(u))}}for(let d of a){if(typeof d.body=="string"){c.push({metadata:d.metadata,body:d.body});continue}let l=await i(d.metadata,d.item_path,d.item_format);c.push({metadata:d.metadata,body:l})}return{documents:c,warnings:[...new Set(s)].sort((d,l)=>d.localeCompare(l))}}async function _i(e,t,r){let o=new Map;if(!e||t!=="keyword"&&t!=="hybrid")return o;let n=process.cwd(),i=await gr(n,Or(n)),s=await Promise.all(r.map(async a=>[a.metadata.id,await yr(a,i)]));for(let[a,c]of s)o.set(a,c);return o}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="17122985-4157-5732-9142-444327cb273d")}catch{}})();var wi=["tag","status","type","priority"];function wr(e){let t={},r=[];for(let o of e.split(/\s+/).filter(n=>n.length>0)){let n=o.indexOf(":"),i=n>0?o.slice(0,n).toLowerCase():"",s=n>0?o.slice(n+1):"",a=wi.includes(i)?i:void 0;if(a&&s.length>0&&t[a]===void 0){t[a]=s;continue}r.push(o)}return{residualQuery:r.join(" "),inlineFilters:t}}function br(e,t,r){let o={...e};for(let n of wi){let i=t[n];if(i!==void 0){if(Re(o[n])!==void 0){r.push(`search_inline_filter_ignored:${n}:flag_takes_precedence`);continue}o[n]=i}}return o}function bi(e,t){let r=[],o=wr(e),n=Object.keys(o.inlineFilters).length>0;if(n&&o.residualQuery.trim().length===0)throw new h("Inline field:value tokens consumed the entire query, leaving no search terms.",f.USAGE,{examples:["pm search auth tag:area:search","pm list --tag area:search --status open"],nextSteps:["Add keyword terms alongside the inline filters, or use pm list for pure tag/status/type/priority filtering."]});let i=n?o.residualQuery:e,s=br(t,o.inlineFilters,r);return{query:i,options:s,inlineWarnings:r,highlight:s.highlight===!0,includeLinked:Xe(s.includeLinked),titleExact:Xe(s.titleExact),phraseExact:Xe(s.phraseExact),matchMode:Kn(typeof s.matchMode=="string"?s.matchMode:void 0),minScoreOverride:Qn(s.minScore),countOnly:s.count===!0,tokens:Ze(i),normalizedQuery:T(i),limit:Ne(s.limit),projection:Je(s,e),modeWasExplicit:typeof s.mode=="string"&&s.mode.trim().length>0}}function vi(e){if(e.after!==void 0&&e.count===!0)throw new h("Search --after cannot be combined with --count.",f.USAGE)}(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]="d7beacb7-66a5-581f-93f0-68ceb4b8e41e")}catch{}})();function Er(e,t,r,o,n,i,s,a,c,d,l,u,m,p){let y=m?{total:0,count_only:!0}:{};if(d.mode==="compact"&&o.compact===!0){let g=ne({mode:t,matchMode:r,options:o,includeLinked:n,titleExact:o.titleExact===!0,phraseExact:o.phraseExact===!0,scoreThreshold:i,hybridSemanticWeight:s,runtimeFieldFilters:u});return{query:e.trim(),mode:t,...xr(p),items:[],count:0,...y,filters:g,...l.length>0?{warnings:l}:{}}}let _=d.mode==="full"?null:[...d.fields];return{query:e.trim(),mode:t,mode_source:p,items:[],count:0,...y,filters:ie({effectiveMode:t,matchMode:r,options:o,includeLinked:n,titleExact:o.titleExact===!0,phraseExact:o.phraseExact===!0,scoreThreshold:i,hybridSemanticWeight:s,queryExpansion:a,rerank:c,runtimeFieldFilters:u??{}}),projection:{mode:d.mode,fields:_},now:I(),...l.length>0?{warnings:l}:{}}}function Sr(e,t){let r=t.trim();if(r.length===0)return null;if(r==="score")return e.score;if(r==="matched_fields")return e.matched_fields;if(r.startsWith("item.")){let i=r.slice(5);return i.length===0?null:e.item[i]??null}let o=e,n=e.item;return Object.prototype.hasOwnProperty.call(n,r)?n[r]??null:Object.prototype.hasOwnProperty.call(o,r)?o[r]??null:null}function Ir(e,t){return t.mode==="full"?e.map(({matched_all_terms:r,exact_id_match:o,...n})=>n):e.map(r=>{let o={};for(let n of t.fields)o[n]=Sr(r,n);return o})}function kr(e,t){return Er(e.query,e.effectiveMode,e.matchMode,e.options,e.includeLinked,e.scoreThreshold,e.hybridSemanticWeight,e.queryExpansion,e.rerank,e.projection,e.warnings,e.runtimeFieldFilters,t,e.modeSource)}function Ei(e,t){if(e.projection.mode==="compact"&&e.options.compact===!0)return vr({query:e.query.trim(),mode:e.effectiveMode,...xr(e.modeSource),items:[],count:t,total:t,count_only:!0,filters:ne({mode:e.effectiveMode,matchMode:e.matchMode,options:e.options,includeLinked:e.includeLinked,titleExact:e.titleExact,phraseExact:e.phraseExact,scoreThreshold:e.scoreThreshold,hybridSemanticWeight:e.hybridSemanticWeight,runtimeFieldFilters:e.runtimeFieldFilters})},e.warnings);let r=e.projection.mode==="full"?null:[...e.projection.fields];return vr({query:e.query.trim(),mode:e.effectiveMode,mode_source:e.modeSource,items:[],count:t,total:t,count_only:!0,filters:ie({effectiveMode:e.effectiveMode,matchMode:e.matchMode,options:e.options,includeLinked:e.includeLinked,titleExact:e.titleExact,phraseExact:e.phraseExact,scoreThreshold:e.scoreThreshold,hybridSemanticWeight:e.hybridSemanticWeight,queryExpansion:e.queryExpansion,rerank:e.rerank,runtimeFieldFilters:e.runtimeFieldFilters}),projection:{mode:e.projection.mode,fields:r},now:I()},e.warnings)}function xr(e){return e==="settings"?{mode_source:e}:{}}function vr(e,t){return t.length===0?e:{...e,warnings:t}}function Se(e,t){return t?{...e,workspace_memory:t}:e}function Si(e,t,r){if(!e.highlight)return{hits:r,projection:e.projection};let o=new Map(t.map(i=>[i.metadata.id,i])),n=r.map(i=>({...i,highlights:tt(o.get(i.item.id),i.matched_fields,e.tokens)}));return e.projection.mode==="full"||e.projection.fields.includes("highlights")?{hits:n,projection:e.projection}:{hits:n,projection:{mode:e.projection.mode,fields:[...e.projection.fields,"highlights"]}}}function Ii(e,t,r,o,n,i){let s=o<r?{total:r}:{};if(e.projection.mode==="compact"&&e.options.compact===!0)return vr({query:e.query.trim(),mode:e.effectiveMode,...xr(e.modeSource),items:t,count:t.length,...s,...i,filters:ne({mode:e.effectiveMode,matchMode:e.matchMode,options:e.options,includeLinked:e.includeLinked,titleExact:e.titleExact,phraseExact:e.phraseExact,scoreThreshold:e.scoreThreshold,hybridSemanticWeight:e.hybridSemanticWeight,runtimeFieldFilters:e.runtimeFieldFilters})},e.warnings);let a=n.mode==="full"?null:[...n.fields];return{query:e.query.trim(),mode:e.effectiveMode,mode_source:e.modeSource,items:t,count:t.length,...s,...i,filters:ie({effectiveMode:e.effectiveMode,matchMode:e.matchMode,options:e.options,includeLinked:e.includeLinked,titleExact:e.titleExact,phraseExact:e.phraseExact,scoreThreshold:e.scoreThreshold,hybridSemanticWeight:e.hybridSemanticWeight,queryExpansion:e.queryExpansion,rerank:e.rerank,runtimeFieldFilters:e.runtimeFieldFilters}),projection:{mode:n.mode,fields:a},now:I(),...e.warnings.length>0?{warnings:e.warnings}:{}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="3bfd872f-6ed7-551c-a027-3748493de3e9")}catch{}})();var $m={applyFilters:Xt,applyExactQueryFilters:Yt,applyInlineQueryFilters:br,buildHitHighlights:tt,buildVerboseSearchFilters:ie,buildExplicitSemanticFallbackWarning:or,buildCompactSearchFilterSummary:ne,buildHybridLexicalScore:rr,buildRerankCorpus:mr,buildSemanticHits:cr,classifyImplicitSemanticFallbackReason:nt,collectErrorCauseCodes:ot,collectExactPhraseFields:Kt,collectLinkedPaths:pr,combineHybridHits:st,computeBuiltInBm25Hits:dr,computeSemanticOrHybridHits:fr,resolveBuiltInBm25Mode:lr,countOccurrences:et,dependencyEntries:be,documentContainsExactPhrase:Qt,emptySearchResult:Er,highlightFieldSnippet:Zt,loadDocuments:_r,markTokenRuns:Jt,parseInlineQueryFilters:wr,maybeEmitVectorIndexStaleWarning:nr,loadLinkedCorpus:yr,mergeVectorHitsById:ur,normalizeExtensionProviderHits:ar,normalizeScoreMap:ve,parseProjectionConfig:Je,parseTimestampWindow:Q,parseTokens:Ze,projectSearchHits:Ir,readSearchFieldValue:Sr,requireSemanticDependencies:it,resolveExtensionSearchProvider:ir,resolveExtensionSearchProviderByName:Ee,resolveExtensionVectorAdapter:sr,resolveLinkedCorpusRoots:gr,scoreDocument:er,sortHits:tr,stringArray:se,textEntries:N,validateSearchProjectionFields:jt};async function rc(e,t){let r=k(process.cwd(),t.path);await P(r);let o=await L(r),n=Mo(o).settings,i=j(n.schema),s=J(n.schema);jt(e.projection,s,e.query);let a=Co(e.options,s,"search"),c=U(n,C()),d=Do(n),l=Lo(n,r),u=ir(n),m=sr(n),p=Vn(e.options.semanticWeight),y=si(n,d.active?.name??null),_=ai(n,d.active?.model??M(n.search?.embedding_model)??"text-embedding-3-small");return{pmRoot:r,settings:n,statusRegistry:i,runtimeFieldRegistry:s,runtimeFieldFilters:a,typeRegistry:c,maxResults:qt(n),scoreThreshold:e.minScoreOverride??Ut(n),semanticWeightProvided:e.options.semanticWeight!==void 0,semanticWeightOverride:p,hybridSemanticWeight:p??Gt(n),tuning:$t(n),providerResolution:d,vectorResolution:l,extensionSearchProvider:u,extensionVectorAdapter:m,bm25Mode:lr({configuredProvider:M(n.search?.provider),hasEmbeddingProvider:d.active!==null,hasExtensionSearchProvider:u!==null}),queryExpansion:y,queryExpansionExtension:pi(y),rerank:_,rerankExtension:gi(n),...oc({requested:e.options.mode,settings:n,configuredProvider:o.search?.provider??null,providerResolution:d,vectorResolution:l,extensionSearchProvider:u,extensionVectorAdapter:m})}}function oc(e){let t=Fo(e.providerResolution.active?.name,e.configuredProvider)==="configured"&&(e.vectorResolution.active!==null||e.extensionVectorAdapter!==null),r=e.extensionSearchProvider!==null||t,o=Nt({requested:e.requested,settings:e.settings,semanticRunnable:r});return{effectiveMode:o.mode,modeSource:o.source}}async function nc(e,t){let r=await _r(t.pmRoot,t.settings.item_format??"toon",t.typeRegistry.type_to_folder,t.settings.schema),o=qe(typeof e.options.status=="string"?e.options.status:void 0,t.statusRegistry,{strict:!0}),n=Be(t.statusRegistry),i=Xt(r.documents,e.options,t.typeRegistry,t.runtimeFieldFilters,o,n);return{warnings:r.warnings,allDocuments:r.documents,filteredDocuments:Yt(i,e.normalizedQuery,{titleExact:e.titleExact,phraseExact:e.phraseExact||e.matchMode==="exact"})}}async function ic(e,t,r){let o=await _i(e.includeLinked,t.effectiveMode,r),n=e.matchMode==="or";return r.map(i=>rr(i,e.tokens,e.normalizedQuery,e.includeLinked,o,t.tuning,t.settings.id_prefix,n)).filter(i=>i!==null).filter(i=>e.matchMode!=="and"||i.matched_all_terms===!0)}async function sc(e,t,r,o,n){if(t.bm25Mode===null||t.effectiveMode==="keyword")return null;let i=dr({requestedMode:t.effectiveMode,query:e.query,filteredDocuments:r,keywordHits:o,corpusFields:Po(t.settings),bm25Params:ri(t.settings),hybridSemanticWeight:t.hybridSemanticWeight});return t.bm25Mode==="auto-fallback"&&n.push(`search_${t.effectiveMode}_offline_bm25:no_embedding_provider:using_lexical_bm25`),i}async function ac(e,t,r,o){if(!t.extensionSearchProvider)return null;let n=t.providerResolution.active!==null&&(t.vectorResolution.active!==null||t.extensionVectorAdapter!==null);try{let i=await Promise.resolve(t.extensionSearchProvider.query({query:e.query,mode:t.effectiveMode,tokens:e.tokens,options:e.options,settings:t.settings,documents:r}));return ar(t.extensionSearchProvider.providerName,i,o)}catch(i){if(!n)throw new h(`Extension search provider "${t.extensionSearchProvider.providerName}" failed: ${i instanceof Error?i.message:String(i)}`,f.GENERIC_FAILURE);return null}}function cc(e,t,r,o){return t.vectorMatchCount>0?t.hits:(o.push(`search_${e}_degraded:no_vector_matches:results_are_lexical`),e==="semantic"?r:t.hits)}async function lc(e,t,r,o,n){let i=!e.extensionSearchProvider&&e.providerResolution.active!==null&&(e.vectorResolution.active!==null||e.extensionVectorAdapter!==null);n&&i&&await nr(e.pmRoot,r,o),e.extensionSearchProvider||it(t,e.providerResolution,e.vectorResolution,e.extensionVectorAdapter!==null)}async function dc(e){let{prepared:t,runtime:r,filteredDocuments:o,keywordHits:n,warnings:i,modeWasExplicit:s}=e,a=n,c=await sc(t,r,o,n,i),d=r.effectiveMode;if(c!==null||d==="keyword")return{effectiveMode:r.effectiveMode,hits:c??a};try{if(await lc(r,d,o,i,s),o.length===0||t.limit===0)return{effectiveMode:r.effectiveMode,hits:[]};let l=new Map(o.map(u=>[u.metadata.id,u]));if(a=await ac(t,r,o,l)??a,a===n){let{provider:u,vectorStore:m}=it(d,r.providerResolution,r.vectorResolution,r.extensionVectorAdapter!==null),p=await fr({requestedMode:d,query:t.query,filteredDocuments:o,keywordHits:n,hybridSemanticWeight:r.hybridSemanticWeight,limit:t.limit,maxResults:r.maxResults,provider:u,vectorStore:m,extensionVectorAdapter:r.extensionVectorAdapter,queryExpansion:r.queryExpansion,queryExpansionExtension:r.queryExpansionExtension,rerank:r.rerank,rerankExtension:r.rerankExtension,warnings:i,settings:r.settings});a=cc(d,p,n,i)}return{effectiveMode:r.effectiveMode,hits:a}}catch(l){return i.push(or(r.effectiveMode,l)),{effectiveMode:"keyword",hits:n}}}function ki(e){e.searchOptions.after!==void 0&&Wr(e.searchOptions.after,Wt(e))}async function xi(e,t,r){vi(t);let o=bi(e,t),n=await rc(o,r),i=await nc(o,n),s=i.warnings;s.push(...o.inlineWarnings);let a=await un(i.allDocuments.map(b=>b.metadata),{pmRoot:n.pmRoot,statusRegistry:n.statusRegistry,now:I()});s.push(...a.warnings);let c=mn(a,o.query);n.effectiveMode==="hybrid"&&n.semanticWeightProvided&&n.semanticWeightOverride===void 0&&s.push("search_hybrid_semantic_weight_override_invalid:using_settings_default");let d={query:o.query,modeSource:n.modeSource,matchMode:o.matchMode,options:o.options,includeLinked:o.includeLinked,titleExact:o.titleExact,phraseExact:o.phraseExact,scoreThreshold:n.scoreThreshold,hybridSemanticWeight:n.hybridSemanticWeight,queryExpansion:n.queryExpansion,rerank:n.rerank,projection:o.projection,warnings:s,runtimeFieldFilters:n.runtimeFieldFilters};if(n.effectiveMode==="keyword"&&(i.filteredDocuments.length===0||o.limit===0&&!o.countOnly))return ki({query:o.query,mode:n.effectiveMode,searchOptions:o.options,pmRoot:n.pmRoot}),Se(kr({...d,effectiveMode:n.effectiveMode},o.countOnly),c);let l=await ic(o,n,i.filteredDocuments),u=await dc({prepared:o,runtime:n,filteredDocuments:i.filteredDocuments,keywordHits:l,warnings:s,modeWasExplicit:o.modeWasExplicit});if(u.effectiveMode!=="keyword"&&u.hits.length===0&&(i.filteredDocuments.length===0||o.limit===0&&!o.countOnly))return ki({query:o.query,mode:u.effectiveMode,searchOptions:o.options,pmRoot:n.pmRoot}),Se(kr({...d,effectiveMode:u.effectiveMode},o.countOnly),c);let m=u.hits.filter(b=>b.exact_id_match===!0||b.score>=n.scoreThreshold),p=tr(m,n.statusRegistry),y=p.length,_=Yn({pmRoot:n.pmRoot,sorted:p,query:o.query,mode:u.effectiveMode,searchOptions:o.options,limit:o.limit??n.maxResults}),g={...d,effectiveMode:u.effectiveMode};if(o.countOnly)return Se(Ei(g,y),c);let{hits:w,projection:v}=Si(o,i.filteredDocuments,_.limited),E=Ir(w,v);return Se(Ii(g,E,y,_.limited.length,v,_.pageExtras),c)}(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]="f303192a-cac2-588b-b988-e3a8132f4199")}catch{}})();var Ri=["ndcg","mrr","precision","recall"];function Rr(e){if(typeof e!="object"||e===null||Array.isArray(e))throw new TypeError("Eval minimum must be an object of metric floors");let t={};for(let[r,o]of Object.entries(e)){if(!Ri.some(n=>n===r))throw new TypeError(`Unknown eval minimum metric: ${r}`);if(typeof o!="number"||!Number.isFinite(o)||o<0||o>1)throw new TypeError(`Eval minimum.${r} must be a finite number in [0, 1]`);t[r]=o}return t}function Ai(e,t){let r=Rr(t),o=[];for(let n of Ri){let i=r[n];if(i===void 0)continue;let s=e[n];!Number.isFinite(s)||s<0||s>1?o.push(`${n}:invalid`):s<i&&o.push(`${n}:${s}<${i}`)}return o}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="c34cc860-67c7-548b-99ff-f4155ef44bb0")}catch{}})();var Ti=10,G="https://schema.unbrained.dev/pm/eval-query-set/v1",uc={schema:G,accepted_top_level:["array","object"],required_query_fields:["query","relevant_ids"],optional_fields:["mode","description","minimum"],modes:["keyword","semantic","hybrid"]},ct={schema:G,queries:[{query:"offline search",relevant_ids:["pm-75k9"],mode:"keyword"}]},F=class extends Error{constructor(t){super(t),this.name="EvalQuerySetError"}},mc=new Set(["keyword","semantic","hybrid"]);function Ci(e,t){let r=0,o=Math.min(t,e.length);for(let n=0;n<o;n+=1)r+=e[n]/Math.log2(n+2);return r}function fc(e,t,r){if(t.size===0)return 0;let o=e.map(a=>t.has(a)?1:0),n=Ci(o,r),i=Array.from({length:t.size},()=>1),s=Ci(i,r);return s===0?0:n/s}function hc(e,t,r){let o=Math.min(r,e.length);for(let n=0;n<o;n+=1)if(t.has(e[n]))return 1/(n+1);return 0}function Ar(e,t,r){let o=Math.min(r,e.length),n=0;for(let i=0;i<o;i+=1)t.has(e[i])&&(n+=1);return n}function pc(e,t,r){return r<=0?0:Ar(e,t,r)/r}function gc(e,t,r){return t.size===0?0:Ar(e,t,r)/t.size}function Mi(e,t,r){return{ndcg:fc(e,t,r),mrr:hc(e,t,r),precision:pc(e,t,r),recall:gc(e,t,r),relevant_total:t.size,retrieved_relevant:Ar(e,t,r)}}function Fi(e){let t=e.length;if(t===0)return{ndcg:0,mrr:0,precision:0,recall:0,query_count:0};let r=e.reduce((o,n)=>({ndcg:o.ndcg+n.ndcg,mrr:o.mrr+n.mrr,precision:o.precision+n.precision,recall:o.recall+n.recall}),{ndcg:0,mrr:0,precision:0,recall:0});return{ndcg:r.ndcg/t,mrr:r.mrr/t,precision:r.precision/t,recall:r.recall/t,query_count:t}}function yc(e,t){if(typeof e!="object"||e===null)throw new F(`Eval query at index ${t} must be an object`);let r=e,o=typeof r.query=="string"?r.query.trim():"";if(o.length===0)throw new F(`Eval query at index ${t} must have a non-empty "query" string`);if(!Array.isArray(r.relevant_ids))throw new F(`Eval query at index ${t} must have a "relevant_ids" array`);if(r.relevant_ids.some(i=>typeof i!="string"))throw new F(`Eval query at index ${t} must have a "relevant_ids" array of strings`);let n=[...new Set(r.relevant_ids.map(i=>i.trim()).filter(i=>i.length>0))];if(n.length===0)throw new F(`Eval query at index ${t} must list at least one relevant id`);if(r.mode!==void 0&&(typeof r.mode!="string"||!mc.has(r.mode)))throw new F(`Eval query at index ${t} has an invalid mode (expected keyword|semantic|hybrid)`);return{query:o,relevant_ids:n,...r.minimum===void 0?{}:{minimum:Rr(r.minimum)},...r.mode!==void 0?{mode:r.mode}:{},...typeof r.description=="string"&&r.description.trim().length>0?{description:r.description.trim()}:{}}}function Cr(e){let t=typeof e=="object"&&e!==null&&!Array.isArray(e)?e.schema:void 0;if(t!==void 0&&t!==G)throw new F(`Unsupported eval query set schema; expected "${G}"`);let r=Array.isArray(e)?e:typeof e=="object"&&e!==null?e.queries:void 0;if(!Array.isArray(r))throw new F('Eval query set must be an array of queries or an object with a "queries" array');if(r.length===0)throw new F("Eval query set must contain at least one query");return{schema:G,queries:r.map((o,n)=>yc(o,n))}}import _c from"node:fs/promises";import Tr 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]="5d26721c-719a-5c7e-8baf-72cbf1088988")}catch{}})();var wc=Tr.join("search","eval-queries.json"),Mr={schema:G,examples:[JSON.stringify(ct)],nextSteps:["Create a git-tracked golden-query JSON file that follows the schema, then re-run pm eval."]},bc=new Set(["keyword","semantic","hybrid"]),vc=e=>{if(e===void 0)return"keyword";let t=e.trim().toLowerCase();if(!bc.has(t))throw new h("Eval --mode must be one of keyword|semantic|hybrid",f.USAGE);return t},Ec=e=>{if(e===void 0||e==="")return Ti;let t=Ae(e);if(t===null)throw new h("Eval --k must be a positive integer",f.USAGE);return t},Sc=e=>{if(e===void 0||e==="")return;let t=String(e).trim(),r=Number(t);if([t.length===0,!Number.isFinite(r),r<0,r>1].includes(!0))throw new h("Eval --fail-under must be a number in the range [0, 1]",f.USAGE);return r},$=e=>Math.round(e*1e4)/1e4,Ic=async e=>{try{return await _c.readFile(e,"utf8")}catch{throw new h(`Eval query set not found at ${e}`,f.NOT_FOUND,{...Mr,examples:[`echo '${JSON.stringify(ct)}' > ${e}`,"pm eval --queries ./my-eval.json"]})}},kc=(e,t)=>{try{return JSON.parse(e)}catch(r){throw new h(`Eval query set at ${t} is not valid JSON: ${r instanceof Error?r.message:String(r)}`,f.USAGE,Mr)}},xc=e=>{try{return Cr(e)}catch(t){throw new h(t instanceof Error?t.message:String(t),f.USAGE,Mr)}},Rc=async e=>xc(kc(await Ic(e),e)),Ac=async(e,t,r,o)=>{let n=e.mode??t,i=(await xi(e.query,{mode:n,limit:String(r),fields:"id"},o)).items.map(a=>a.id).filter(a=>typeof a=="string"),s=Mi(i,new Set(e.relevant_ids),r);return{metrics:s,report:{query:e.query,...e.minimum===void 0?{}:{violations:Ai(s,e.minimum)},mode:n,relevant_total:s.relevant_total,retrieved_relevant:s.retrieved_relevant,ndcg:$(s.ndcg),mrr:$(s.mrr),precision:$(s.precision),recall:$(s.recall)}}},Cc=(e,t,r,o)=>{let n=Fi(r);return{k:e,query_count:t.length,aggregate:{ndcg:$(n.ndcg),mrr:$(n.mrr),precision:$(n.precision),recall:$(n.recall)},queries:t,...o!==void 0?{fail_under:o}:{},passed:(o===void 0||n.ndcg>=o)&&t.every(i=>(i.violations?.length??0)===0)}},sf=async(e,t)=>{let r=k(process.cwd(),t.path);await P(r);let o=Ec(e.k),n=vc(e.mode),i=Sc(e.failUnder),s=e.queries?Tr.resolve(process.cwd(),e.queries):Tr.join(r,wc),a=await Rc(s),c=[],d=[];for(let l of a.queries){let{report:u,metrics:m}=await Ac(l,n,o,t);d.push(m),c.push(u)}return Cc(o,c,d,i)};export{Wi as a,zi as b,Yc as c,Xc as d,gl as e,yl as f,Rt as g,In as h,kn as i,xn as j,Gl as k,id as l,od as m,ud as n,md as o,Gn as p,$n as q,Wn as r,js as s,Pt as t,Ld as u,Od as v,Vd as w,qt as x,Nt as y,Ut as z,Gt as A,$t as B,Wt as C,Yn as D,ne as E,ie as F,ot as G,nt as H,fi as I,hi as J,$m as K,xi as L,Ri as M,Rr as N,Ai as O,G as P,uc as Q,ct as R,Cr as S,wc as T,sf as U};
6
+ //# sourceMappingURL=chunk-KRVI56QE.js.map