@unbrained/pm-cli 2026.9.7 → 2026.9.9

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 (746) hide show
  1. package/.agents/skills/pm-developer/SKILL.md +12 -4
  2. package/.agents/skills/pm-developer/references/MULTI_AGENT_MERGE.md +19 -10
  3. package/.agents/skills/pm-extensions/SKILL.md +6 -0
  4. package/.agents/skills/pm-sdk/SKILL.md +11 -2
  5. package/.agents/skills/pm-user/SKILL.md +7 -2
  6. package/.agents/skills/pm-user/references/ECOSYSTEM_PLANNING.md +95 -0
  7. package/.claude-plugin/marketplace.json +2 -2
  8. package/CHANGELOG.md +231 -182
  9. package/dist/cli/after-command-context-usage.js +1 -48
  10. package/dist/cli/argv-utils.js +1 -40
  11. package/dist/cli/bootstrap-args.js +1 -9
  12. package/dist/cli/bundle-integrity.js +2 -110
  13. package/dist/cli/commander-usage.js +11 -771
  14. package/dist/cli/commands/activity.js +1 -9
  15. package/dist/cli/commands/aggregate.js +1 -5
  16. package/dist/cli/commands/append.js +1 -5
  17. package/dist/cli/commands/claim.js +1 -5
  18. package/dist/cli/commands/close-many.js +1 -5
  19. package/dist/cli/commands/close.js +1 -9
  20. package/dist/cli/commands/comments.js +1 -5
  21. package/dist/cli/commands/config.js +1 -9
  22. package/dist/cli/commands/context.js +1 -9
  23. package/dist/cli/commands/contracts.js +1 -5
  24. package/dist/cli/commands/copy.js +1 -9
  25. package/dist/cli/commands/create.js +1 -9
  26. package/dist/cli/commands/delete.js +1 -9
  27. package/dist/cli/commands/deps.js +1 -9
  28. package/dist/cli/commands/docs.js +1 -9
  29. package/dist/cli/commands/duplicates.js +1 -9
  30. package/dist/cli/commands/eval.js +1 -9
  31. package/dist/cli/commands/extension/describe.js +1 -5
  32. package/dist/cli/commands/extension/scaffold.js +1 -5
  33. package/dist/cli/commands/extension/shared.js +1 -5
  34. package/dist/cli/commands/extension.js +1 -9
  35. package/dist/cli/commands/files.js +1 -9
  36. package/dist/cli/commands/focus.js +1 -9
  37. package/dist/cli/commands/gc.js +1 -9
  38. package/dist/cli/commands/get.js +1 -9
  39. package/dist/cli/commands/graph.js +1 -10
  40. package/dist/cli/commands/health.js +1 -9
  41. package/dist/cli/commands/history-compact.js +1 -10
  42. package/dist/cli/commands/history-redact.js +1 -11
  43. package/dist/cli/commands/history-repair.js +1 -10
  44. package/dist/cli/commands/history.js +1 -5
  45. package/dist/cli/commands/index.js +1 -58
  46. package/dist/cli/commands/init-agent-guidance.js +1 -9
  47. package/dist/cli/commands/init.js +1 -9
  48. package/dist/cli/commands/learnings.js +1 -5
  49. package/dist/cli/commands/lifecycle-transitions.js +1 -5
  50. package/dist/cli/commands/list.js +1 -9
  51. package/dist/cli/commands/merge.js +1 -11
  52. package/dist/cli/commands/next.js +1 -9
  53. package/dist/cli/commands/notes.js +1 -5
  54. package/dist/cli/commands/plan.js +1 -9
  55. package/dist/cli/commands/profile.js +1 -9
  56. package/dist/cli/commands/restore.js +1 -9
  57. package/dist/cli/commands/scheduling-shortcuts.js +1 -9
  58. package/dist/cli/commands/schema.js +1 -10
  59. package/dist/cli/commands/search.js +1 -9
  60. package/dist/cli/commands/stats.js +1 -9
  61. package/dist/cli/commands/telemetry.js +1 -9
  62. package/dist/cli/commands/test-all.js +1 -9
  63. package/dist/cli/commands/test-runs.js +1 -9
  64. package/dist/cli/commands/test.js +1 -9
  65. package/dist/cli/commands/update-many.js +1 -5
  66. package/dist/cli/commands/update.js +1 -9
  67. package/dist/cli/commands/upgrade.js +1 -5
  68. package/dist/cli/commands/validate.js +1 -15
  69. package/dist/cli/context-intent-invocation.js +1 -20
  70. package/dist/cli/description-stdin.js +1 -17
  71. package/dist/cli/error-guidance.js +1 -1353
  72. package/dist/cli/extension-command-help.js +5 -636
  73. package/dist/cli/extension-command-options.js +1 -427
  74. package/dist/cli/extension-recovery.js +1 -126
  75. package/dist/cli/help-content.js +2 -1001
  76. package/dist/cli/help-json-payload.js +4 -570
  77. package/dist/cli/main.d.ts +4 -0
  78. package/dist/cli/main.js +5 -2573
  79. package/dist/cli/migration-gates.js +1 -289
  80. package/dist/cli/public.js +1 -20
  81. package/dist/cli/register-annotations.js +1 -270
  82. package/dist/cli/register-assurance.js +1 -62
  83. package/dist/cli/register-files-lookup.js +1 -56
  84. package/dist/cli/register-history-activity.d.ts +8 -0
  85. package/dist/cli/register-history-activity.js +2 -0
  86. package/dist/cli/register-history-author.js +1 -38
  87. package/dist/cli/register-history-maintenance.d.ts +9 -0
  88. package/dist/cli/register-history-maintenance.js +2 -0
  89. package/dist/cli/register-list-query.js +10 -943
  90. package/dist/cli/register-mutation-options.js +1 -9
  91. package/dist/cli/register-mutation.d.ts +0 -5
  92. package/dist/cli/register-mutation.js +19 -1893
  93. package/dist/cli/register-operations.js +1 -920
  94. package/dist/cli/register-setup.js +1 -716
  95. package/dist/cli/register-structured-mutation.js +1 -196
  96. package/dist/cli/registration-helpers.js +1 -5
  97. package/dist/cli/runtime-compatibility-boundary.js +4 -42
  98. package/dist/cli/schema-registration-helpers.js +1 -73
  99. package/dist/cli/search-refresh.js +1 -13
  100. package/dist/cli/stats-analytics-json.js +1 -68
  101. package/dist/cli/telemetry-flush.js +1 -10
  102. package/dist/cli-bundle/bundle-manifest.json +164 -156
  103. package/dist/cli-bundle/chunks/{chunk-NPN5I67J.js → chunk-3IPRM75M.js} +3 -3
  104. package/dist/cli-bundle/chunks/chunk-4VL5P22L.js +2 -0
  105. package/dist/cli-bundle/chunks/chunk-AAFBV3U3.js +29 -0
  106. package/dist/cli-bundle/chunks/chunk-D3YVILJJ.js +20 -0
  107. package/dist/cli-bundle/chunks/{chunk-WYRZZ5ZE.js → chunk-DEZPZOQ7.js} +2 -2
  108. package/dist/cli-bundle/chunks/chunk-ECBLPN7B.js +3 -0
  109. package/dist/cli-bundle/chunks/chunk-J6ERHBV2.js +235 -0
  110. package/dist/cli-bundle/chunks/chunk-JUNJ5EKI.js +2 -0
  111. package/dist/cli-bundle/chunks/chunk-L5RCDKQ2.js +2 -0
  112. package/dist/cli-bundle/chunks/chunk-NSAPNEYH.js +2 -0
  113. package/dist/cli-bundle/chunks/chunk-OHNLSGGV.js +79 -0
  114. package/dist/cli-bundle/chunks/chunk-WQKMSFBV.js +5 -0
  115. package/dist/cli-bundle/chunks/{chunk-BAX2BYUW.js → chunk-XZ6T7YPP.js} +256 -150
  116. package/dist/cli-bundle/chunks/{chunk-JT6XF6GE.js → chunk-Z3XVXUVF.js} +4 -4
  117. package/dist/cli-bundle/chunks/register-list-query-UIHRCS6D.js +11 -0
  118. package/dist/cli-bundle/chunks/register-mutation-WHWMGRVX.js +20 -0
  119. package/dist/cli-bundle/chunks/register-operations-64YZYTC5.js +2 -0
  120. package/dist/cli-bundle/chunks/register-setup-PERI45EM.js +2 -0
  121. package/dist/cli-bundle/focused-chunks/chunk-2W4XIYOB.js +2 -0
  122. package/dist/cli-bundle/focused-chunks/chunk-2WSBXIGF.js +12 -0
  123. package/dist/cli-bundle/focused-chunks/chunk-5FHTCOHS.js +3 -0
  124. package/dist/cli-bundle/focused-chunks/chunk-7N6DOREF.js +26 -0
  125. package/dist/cli-bundle/focused-chunks/{chunk-3BZEOXLT.js → chunk-7PC4R5QB.js} +2 -2
  126. package/dist/cli-bundle/focused-chunks/chunk-BUCJUZVG.js +6 -0
  127. package/dist/cli-bundle/focused-chunks/chunk-FE3BABLJ.js +2 -0
  128. package/dist/cli-bundle/focused-chunks/chunk-IWITF53W.js +2 -0
  129. package/dist/cli-bundle/focused-chunks/chunk-OQUGRHKV.js +10 -0
  130. package/dist/cli-bundle/focused-chunks/{chunk-M6PBRFSH.js → chunk-PNKIANFZ.js} +2 -2
  131. package/dist/cli-bundle/focused-chunks/{chunk-LIJIA4TY.js → chunk-QQQ4SAUO.js} +3 -3
  132. package/dist/cli-bundle/focused-chunks/chunk-TTYXF5YD.js +177 -0
  133. package/dist/cli-bundle/focused-chunks/chunk-XNR3DM6J.js +2 -0
  134. package/dist/cli-bundle/focused-chunks/chunk-XSS3APUF.js +9 -0
  135. package/dist/cli-bundle/focused-chunks/chunk-YCDQ2N23.js +8 -0
  136. package/dist/cli-bundle/focused-chunks/chunk-YJUXGS57.js +20 -0
  137. package/dist/cli-bundle/focused-chunks/chunk-ZTCE4UO6.js +58 -0
  138. package/dist/cli-bundle/main.js +20 -20
  139. package/dist/cli-bundle/sdk-authoring.js +1 -1
  140. package/dist/cli-bundle/sdk-contracts.js +2 -2
  141. package/dist/cli-bundle/sdk-core.js +37 -37
  142. package/dist/cli-bundle/sdk-governance.js +1 -1
  143. package/dist/cli-bundle/sdk-graph.js +1 -1
  144. package/dist/cli-bundle/sdk-merge.js +42 -42
  145. package/dist/cli-bundle/sdk-query.js +1 -1
  146. package/dist/cli-bundle/sdk-runtime.js +1 -1
  147. package/dist/cli-bundle/sdk-testing.js +1 -1
  148. package/dist/cli-bundle/sdk.js +11 -11
  149. package/dist/cli.js +1 -104
  150. package/dist/core/checkpoint/checkpoint-gc.js +1 -169
  151. package/dist/core/checkpoint/mutation-checkpoint.js +2 -133
  152. package/dist/core/config/nested-settings.js +1 -534
  153. package/dist/core/config/positional-value.js +1 -109
  154. package/dist/core/diagnostics/remediation.js +1 -506
  155. package/dist/core/extensions/activation-summary-markdown.js +2 -145
  156. package/dist/core/extensions/activation-summary.js +1 -92
  157. package/dist/core/extensions/activation-transaction.js +1 -46
  158. package/dist/core/extensions/capability-usage.js +1 -173
  159. package/dist/core/extensions/command-hook-context.js +1 -13
  160. package/dist/core/extensions/command-metadata-contract.js +1 -22
  161. package/dist/core/extensions/command-visibility-tier.js +1 -29
  162. package/dist/core/extensions/contribution-inventory.js +1 -173
  163. package/dist/core/extensions/exporter-output-contract.js +1 -66
  164. package/dist/core/extensions/extension-candidate.js +1 -18
  165. package/dist/core/extensions/extension-capability-aliases.js +1 -158
  166. package/dist/core/extensions/extension-hook-runtime.js +1 -699
  167. package/dist/core/extensions/extension-policy.js +1 -599
  168. package/dist/core/extensions/extension-registries.js +1 -62
  169. package/dist/core/extensions/extension-runtime-helpers.js +1 -33
  170. package/dist/core/extensions/extension-types.js +1 -102
  171. package/dist/core/extensions/flag-definition-validation.js +1 -52
  172. package/dist/core/extensions/flag-value-types.js +1 -64
  173. package/dist/core/extensions/index.js +1 -526
  174. package/dist/core/extensions/item-field-types.js +1 -39
  175. package/dist/core/extensions/item-fields.js +1 -261
  176. package/dist/core/extensions/loader.js +1 -2223
  177. package/dist/core/extensions/manifest-schema.js +1 -69
  178. package/dist/core/extensions/module-graph-snapshot.js +1 -33
  179. package/dist/core/extensions/preflight-ownership.js +1 -41
  180. package/dist/core/extensions/registration-validation.js +1 -82
  181. package/dist/core/extensions/registration-values.js +1 -209
  182. package/dist/core/extensions/reserved-host-flags.js +1 -36
  183. package/dist/core/extensions/runtime-registrations.js +1 -67
  184. package/dist/core/extensions/service-ownership.js +1 -19
  185. package/dist/core/extensions/version-compat.js +1 -216
  186. package/dist/core/fs/fs-utils.js +2 -158
  187. package/dist/core/fs/host-environment-errors.js +1 -141
  188. package/dist/core/fs/index.js +1 -9
  189. package/dist/core/fs/path-utils.js +1 -17
  190. package/dist/core/governance/content-fields.js +1 -160
  191. package/dist/core/governance/issue-codes.js +1 -151
  192. package/dist/core/governance/metadata-coverage.js +1 -358
  193. package/dist/core/history/drift-cache.js +3 -72
  194. package/dist/core/history/drift-scan.js +1 -342
  195. package/dist/core/history/event-classification.js +1 -109
  196. package/dist/core/history/event-index.js +8 -784
  197. package/dist/core/history/history-compact-bulk.js +1 -104
  198. package/dist/core/history/history-diff.js +1 -158
  199. package/dist/core/history/history-rewrite.d.ts +6 -1
  200. package/dist/core/history/history-rewrite.js +1 -107
  201. package/dist/core/history/history-storage-stats.js +1 -102
  202. package/dist/core/history/history-stream-policy.js +1 -62
  203. package/dist/core/history/history.js +2 -617
  204. package/dist/core/history/identity.js +1 -30
  205. package/dist/core/history/index.js +1 -9
  206. package/dist/core/history/projection.js +1 -196
  207. package/dist/core/history/read.d.ts +9 -0
  208. package/dist/core/history/read.js +1 -57
  209. package/dist/core/history/replay.js +2 -439
  210. package/dist/core/history/version-address.js +1 -32
  211. package/dist/core/history/workspace-history.js +2 -433
  212. package/dist/core/io/body-file.js +1 -62
  213. package/dist/core/io/bulk-ids-input.js +1 -112
  214. package/dist/core/item/actionability.js +1 -327
  215. package/dist/core/item/dependency-reference.js +1 -20
  216. package/dist/core/item/id.js +1 -112
  217. package/dist/core/item/index.js +1 -12
  218. package/dist/core/item/item-format-version.js +1 -78
  219. package/dist/core/item/item-format.js +5 -1473
  220. package/dist/core/item/item-record.js +1 -23
  221. package/dist/core/item/item-type-definition.js +1 -133
  222. package/dist/core/item/parent-reference-policy.js +1 -57
  223. package/dist/core/item/parse.js +2 -603
  224. package/dist/core/item/plan-lifecycle.js +1 -19
  225. package/dist/core/item/priority.js +1 -61
  226. package/dist/core/item/sprint-release-format.js +1 -38
  227. package/dist/core/item/status-filter.js +1 -115
  228. package/dist/core/item/status.js +1 -43
  229. package/dist/core/item/toon-decode.js +1 -29
  230. package/dist/core/item/type-registry.js +1 -715
  231. package/dist/core/item/type-synonyms.js +1 -38
  232. package/dist/core/lock/index.js +1 -9
  233. package/dist/core/lock/lock-gc.js +1 -240
  234. package/dist/core/lock/lock.js +3 -590
  235. package/dist/core/output/mutation-projection.js +1 -217
  236. package/dist/core/output/output-control.js +1 -25
  237. package/dist/core/output/output.js +11 -494
  238. package/dist/core/output/query-summary.js +1 -58
  239. package/dist/core/output/tabular.js +1 -77
  240. package/dist/core/packages/manifest.js +1 -244
  241. package/dist/core/packages/root.js +1 -84
  242. package/dist/core/policy/workflow-policy-schema.d.ts +312 -0
  243. package/dist/core/policy/workflow-policy-schema.js +2 -0
  244. package/dist/core/policy/workflow-policy-store.d.ts +24 -0
  245. package/dist/core/policy/workflow-policy-store.js +2 -0
  246. package/dist/core/policy/workflow-policy.d.ts +139 -0
  247. package/dist/core/policy/workflow-policy.js +2 -0
  248. package/dist/core/profile/profile-describe.js +1 -83
  249. package/dist/core/profile/profile-lint.js +1 -415
  250. package/dist/core/profile/profile-plan.js +0 -0
  251. package/dist/core/profile/profile-presets.js +1 -370
  252. package/dist/core/reproducibility/context.js +1 -82
  253. package/dist/core/schema/fields-file.js +2 -288
  254. package/dist/core/schema/item-types-file.js +2 -296
  255. package/dist/core/schema/runtime-field-filters.js +1 -49
  256. package/dist/core/schema/runtime-field-values.js +1 -313
  257. package/dist/core/schema/runtime-schema.js +2 -826
  258. package/dist/core/schema/status-defs-file.js +2 -227
  259. package/dist/core/schema/status-token.js +1 -31
  260. package/dist/core/schema/type-inference.js +1 -95
  261. package/dist/core/schema/type-presets.js +1 -87
  262. package/dist/core/schema/type-workflows.js +1 -104
  263. package/dist/core/search/background-refresh.js +2 -286
  264. package/dist/core/search/bm25.js +1 -146
  265. package/dist/core/search/cache.js +2 -534
  266. package/dist/core/search/corpus.js +1 -311
  267. package/dist/core/search/embedding-batches.js +1 -163
  268. package/dist/core/search/eval.js +1 -225
  269. package/dist/core/search/http-client.js +1 -75
  270. package/dist/core/search/providers.js +1 -242
  271. package/dist/core/search/relevance.js +1 -244
  272. package/dist/core/search/semantic-defaults.js +1 -199
  273. package/dist/core/search/staleness.js +1 -30
  274. package/dist/core/search/vector-stores.js +2 -664
  275. package/dist/core/search/vectorization-metadata.js +1 -81
  276. package/dist/core/sentry/helpers.js +1 -272
  277. package/dist/core/sentry/instrument.js +1 -387
  278. package/dist/core/session/session-state.js +1 -260
  279. package/dist/core/shared/agent-session-context.js +1 -133
  280. package/dist/core/shared/author.js +1 -1172
  281. package/dist/core/shared/command-types.js +1 -4
  282. package/dist/core/shared/conflict-markers.js +1 -31
  283. package/dist/core/shared/constants.js +1 -405
  284. package/dist/core/shared/errors.js +1 -20
  285. package/dist/core/shared/html-entity-decode.js +1 -131
  286. package/dist/core/shared/index.js +1 -12
  287. package/dist/core/shared/item-metadata-contract.js +1 -89
  288. package/dist/core/shared/lazy-module.js +1 -16
  289. package/dist/core/shared/levenshtein.js +1 -61
  290. package/dist/core/shared/memo.js +1 -19
  291. package/dist/core/shared/numeric-parsers.js +1 -20
  292. package/dist/core/shared/option-alias-visibility.js +1 -67
  293. package/dist/core/shared/primitives.js +1 -127
  294. package/dist/core/shared/serial-queue.js +1 -79
  295. package/dist/core/shared/serialization.js +1 -210
  296. package/dist/core/shared/split-comma-list.js +1 -30
  297. package/dist/core/shared/text-normalization.js +1 -38
  298. package/dist/core/shared/time.js +1 -306
  299. package/dist/core/store/index.js +1 -12
  300. package/dist/core/store/item-format-migration.js +1 -125
  301. package/dist/core/store/item-metadata-cache.js +1 -1116
  302. package/dist/core/store/item-metadata-query-index.js +9 -394
  303. package/dist/core/store/item-metadata-read-work.js +1 -43
  304. package/dist/core/store/item-store.js +1 -693
  305. package/dist/core/store/paths.d.ts +1 -1
  306. package/dist/core/store/paths.js +1 -214
  307. package/dist/core/store/settings-read-cache.js +1 -85
  308. package/dist/core/store/settings-validator.d.ts +1 -0
  309. package/dist/core/store/settings-validator.js +1 -421
  310. package/dist/core/store/settings.js +3 -1309
  311. package/dist/core/store/tracker-preflight.js +1 -141
  312. package/dist/core/telemetry/consent.js +5 -108
  313. package/dist/core/telemetry/observability.js +1 -246
  314. package/dist/core/telemetry/runtime.js +4 -1988
  315. package/dist/core/test/background-runs.js +4 -945
  316. package/dist/core/test/item-test-run-tracking.js +1 -63
  317. package/dist/core/test/run-selectors.js +1 -120
  318. package/dist/core/validate/estimate-defaults.js +1 -89
  319. package/dist/core/validate/fix-planning.js +1 -189
  320. package/dist/core/validate/linked-artifact-reference.js +1 -36
  321. package/dist/core/validate/missing-by-type.js +1 -34
  322. package/dist/core/validate/missing-link-owners.js +1 -95
  323. package/dist/core/validate/stale-file-classification.js +1 -82
  324. package/dist/mcp/http-server.js +5 -448
  325. package/dist/mcp/legacy-adapter.js +1 -77
  326. package/dist/mcp/runtime-capabilities.js +1 -200
  327. package/dist/mcp/server.js +4 -1233
  328. package/dist/mcp/tool-definitions.js +1 -804
  329. package/dist/sdk/actionability.js +1 -13
  330. package/dist/sdk/agent/closed-domain-contracts.js +1 -161
  331. package/dist/sdk/agent/command-recovery.js +1 -59
  332. package/dist/sdk/agent/command-suggestions.js +1 -66
  333. package/dist/sdk/agent/create-option-policy.js +1 -31
  334. package/dist/sdk/agent/identity-config.js +1 -106
  335. package/dist/sdk/agent/item-addressing.js +1 -207
  336. package/dist/sdk/agent/refusal-closure-census.js +1 -151
  337. package/dist/sdk/agent/refusal-closure.js +1 -133
  338. package/dist/sdk/agent/refusal-corpus-contracts.js +1 -193
  339. package/dist/sdk/agent/refusal-reachability.js +1 -593
  340. package/dist/sdk/agent/subcommand-recovery.js +1 -83
  341. package/dist/sdk/agent/task-transcript-contracts.js +1 -197
  342. package/dist/sdk/agent/tracker-preflight-contracts.js +1 -126
  343. package/dist/sdk/agent-capability-contracts.js +1 -428
  344. package/dist/sdk/agent-session-context.js +1 -9
  345. package/dist/sdk/annotations.js +1 -448
  346. package/dist/sdk/author-attribution.js +1 -468
  347. package/dist/sdk/authoring.js +1 -20
  348. package/dist/sdk/cli-bootstrap.js +1 -838
  349. package/dist/sdk/cli-contracts/agent-output-contracts.d.ts +1 -1
  350. package/dist/sdk/cli-contracts/agent-output-contracts.js +4 -476
  351. package/dist/sdk/cli-contracts/bootstrap-command-scanner.js +1 -79
  352. package/dist/sdk/cli-contracts/command-aliases.d.ts +4 -0
  353. package/dist/sdk/cli-contracts/command-aliases.js +1 -107
  354. package/dist/sdk/cli-contracts/command-exit-contracts.js +1 -151
  355. package/dist/sdk/cli-contracts/commander-mutation-options.js +1 -1081
  356. package/dist/sdk/cli-contracts/commander-types.js +1 -159
  357. package/dist/sdk/cli-contracts/completeness.js +1 -393
  358. package/dist/sdk/cli-contracts/enum-contracts.d.ts +1 -1
  359. package/dist/sdk/cli-contracts/enum-contracts.js +1 -222
  360. package/dist/sdk/cli-contracts/flag-contracts.js +1 -1947
  361. package/dist/sdk/cli-contracts/flag-lexicon-contracts.js +1 -347
  362. package/dist/sdk/cli-contracts/grammar-contracts.js +1 -986
  363. package/dist/sdk/cli-contracts/registration-helpers.js +7 -990
  364. package/dist/sdk/cli-contracts/runtime-contracts.d.ts +5 -0
  365. package/dist/sdk/cli-contracts/runtime-contracts.js +1 -2090
  366. package/dist/sdk/cli-contracts/schemas/assurance-definition.js +1 -324
  367. package/dist/sdk/cli-contracts/string-lists.js +1 -16
  368. package/dist/sdk/cli-contracts/tool-option-contracts.js +1 -461
  369. package/dist/sdk/cli-contracts/tool-parameter-tables.js +1 -2167
  370. package/dist/sdk/cli-contracts/tool-schema.d.ts +3 -1
  371. package/dist/sdk/cli-contracts/tool-schema.js +1 -1664
  372. package/dist/sdk/cli-contracts/typed-action-inputs.js +1 -4
  373. package/dist/sdk/cli-contracts.d.ts +1 -1
  374. package/dist/sdk/cli-contracts.js +1 -17
  375. package/dist/sdk/cli-program.js +1 -49
  376. package/dist/sdk/command-line.d.ts +2 -5
  377. package/dist/sdk/command-line.js +1 -78
  378. package/dist/sdk/comments.js +1 -133
  379. package/dist/sdk/compile-cache.js +1 -73
  380. package/dist/sdk/completion.js +174 -839
  381. package/dist/sdk/compose.js +1 -1090
  382. package/dist/sdk/config.js +1 -1204
  383. package/dist/sdk/context/recency.js +1 -33
  384. package/dist/sdk/context/semantic-session-attribution.js +1 -82
  385. package/dist/sdk/context/usage-egress.js +1 -29
  386. package/dist/sdk/context/usage-ledger.js +3 -185
  387. package/dist/sdk/context-intent-contracts.js +1 -709
  388. package/dist/sdk/context-intent-runtime.js +1 -115
  389. package/dist/sdk/context-packing.js +1 -218
  390. package/dist/sdk/context-relevance.js +1 -503
  391. package/dist/sdk/context-signal-store.js +2 -426
  392. package/dist/sdk/context-usage.js +1 -367
  393. package/dist/sdk/contracts.js +1 -23
  394. package/dist/sdk/core-governance.js +1 -14
  395. package/dist/sdk/core.js +1 -14
  396. package/dist/sdk/corpus-shape.js +1 -401
  397. package/dist/sdk/define.js +1 -220
  398. package/dist/sdk/dependencies.js +1 -718
  399. package/dist/sdk/dependency-flag-validation.js +1 -156
  400. package/dist/sdk/dependency-provenance.js +1 -135
  401. package/dist/sdk/docs.js +1 -14
  402. package/dist/sdk/duplicates.js +1 -40
  403. package/dist/sdk/environment/agent-environment.js +1 -466
  404. package/dist/sdk/environment/host-environment-errors.js +1 -8
  405. package/dist/sdk/environment/project-runtime-compatibility.js +1 -481
  406. package/dist/sdk/environment/source-context.js +1 -28
  407. package/dist/sdk/environment/tracker-preflight.js +1 -9
  408. package/dist/sdk/error-code-catalog.js +1 -153
  409. package/dist/sdk/error-runtime.js +1 -58
  410. package/dist/sdk/errors.js +1 -58
  411. package/dist/sdk/eval.js +1 -190
  412. package/dist/sdk/extension/author-manifest.js +1 -92
  413. package/dist/sdk/extension/bundled-catalog.js +1 -332
  414. package/dist/sdk/extension/concurrency.js +1 -25
  415. package/dist/sdk/extension/copy-scope.d.ts +2 -0
  416. package/dist/sdk/extension/copy-scope.js +2 -0
  417. package/dist/sdk/extension/custom-field-collisions.js +1 -30
  418. package/dist/sdk/extension/describe.js +3 -189
  419. package/dist/sdk/extension/doctor.js +1 -606
  420. package/dist/sdk/extension/install-plan.d.ts +69 -0
  421. package/dist/sdk/extension/install-plan.js +2 -0
  422. package/dist/sdk/extension/install-receipts.d.ts +7 -0
  423. package/dist/sdk/extension/install-receipts.js +2 -0
  424. package/dist/sdk/extension/install-runtime.js +3 -313
  425. package/dist/sdk/extension/install-snapshot.js +1 -66
  426. package/dist/sdk/extension/install-sources.js +5 -1057
  427. package/dist/sdk/extension/managed-state.js +2 -252
  428. package/dist/sdk/extension/migrations.js +2 -174
  429. package/dist/sdk/extension/output-ownership.js +1 -25
  430. package/dist/sdk/extension/runtime-summary.js +1 -18
  431. package/dist/sdk/extension/scaffold.js +4 -2308
  432. package/dist/sdk/extension/shared.js +1 -147
  433. package/dist/sdk/extension/source-resolution.js +1 -65
  434. package/dist/sdk/extension/update-check.js +1 -67
  435. package/dist/sdk/extension-command-context.js +1 -44
  436. package/dist/sdk/extension-contracts.js +1 -73
  437. package/dist/sdk/extension.d.ts +7 -2
  438. package/dist/sdk/extension.js +1 -2196
  439. package/dist/sdk/files.js +1 -535
  440. package/dist/sdk/flag-invocation-contracts.d.ts +0 -5
  441. package/dist/sdk/flag-invocation-contracts.js +1 -344
  442. package/dist/sdk/generated/generated-error-code-catalog-part-1.js +1 -2224
  443. package/dist/sdk/generated/generated-error-code-catalog-part-2.js +1 -2236
  444. package/dist/sdk/generated-error-code-catalog.js +1 -16
  445. package/dist/sdk/governance/assurance-action-contracts.js +1 -4
  446. package/dist/sdk/governance/assurance-action.js +1 -411
  447. package/dist/sdk/governance/assurance-limits.js +1 -10
  448. package/dist/sdk/governance/assurance-mutation-error.js +1 -81
  449. package/dist/sdk/governance/assurance-presets.js +1 -135
  450. package/dist/sdk/governance/assurance-runtime.js +1 -238
  451. package/dist/sdk/governance/assurance.js +4 -1182
  452. package/dist/sdk/governance/boundary-fixtures.js +1 -200
  453. package/dist/sdk/governance/coverage-assurance.js +1 -60
  454. package/dist/sdk/governance/defect-recurrence-coverage.js +1 -188
  455. package/dist/sdk/governance/defect-recurrence-graph.js +1 -120
  456. package/dist/sdk/governance/defect-recurrence-signals.js +1 -24
  457. package/dist/sdk/governance/defect-recurrence.js +1 -623
  458. package/dist/sdk/governance/extension-host-version.js +1 -115
  459. package/dist/sdk/governance/gc.js +1 -368
  460. package/dist/sdk/governance/health.js +1 -2367
  461. package/dist/sdk/governance/hierarchy-validation.js +1 -108
  462. package/dist/sdk/governance/linked-file-report.js +1 -71
  463. package/dist/sdk/governance/merge-receipt-history.js +1 -206
  464. package/dist/sdk/governance/provenance-health.js +1 -282
  465. package/dist/sdk/governance/reindex.js +4 -761
  466. package/dist/sdk/governance/stale-work.js +1 -82
  467. package/dist/sdk/governance/status-role-diagnostics.js +1 -35
  468. package/dist/sdk/governance/storage-integrity.js +1 -280
  469. package/dist/sdk/governance/tracked-runtime-cache.js +1 -106
  470. package/dist/sdk/governance/upgrade.js +2 -327
  471. package/dist/sdk/governance/validate-history-drift.js +1 -81
  472. package/dist/sdk/governance/validate-item-reader.js +1 -17
  473. package/dist/sdk/governance/validate-normalization.js +1 -36
  474. package/dist/sdk/governance/validate.d.ts +3 -1
  475. package/dist/sdk/governance/validate.js +1 -2261
  476. package/dist/sdk/governance/workflow-completeness.d.ts +32 -0
  477. package/dist/sdk/governance/workflow-completeness.js +2 -0
  478. package/dist/sdk/governance/workflow-policy.d.ts +47 -0
  479. package/dist/sdk/governance/workflow-policy.js +4 -0
  480. package/dist/sdk/governance/workspace-position.js +1 -163
  481. package/dist/sdk/governance.d.ts +2 -0
  482. package/dist/sdk/governance.js +1 -31
  483. package/dist/sdk/graph/adapter.js +1 -181
  484. package/dist/sdk/graph/analytics.js +1 -474
  485. package/dist/sdk/graph/assembly.js +1 -377
  486. package/dist/sdk/graph/cache.js +1 -160
  487. package/dist/sdk/graph/centrality.js +1 -258
  488. package/dist/sdk/graph/conformance.js +1 -130
  489. package/dist/sdk/graph/deadline-scheduling.d.ts +90 -0
  490. package/dist/sdk/graph/deadline-scheduling.js +2 -0
  491. package/dist/sdk/graph/durable-cache.d.ts +1 -1
  492. package/dist/sdk/graph/durable-cache.js +1 -361
  493. package/dist/sdk/graph/governance-contracts.js +1 -34
  494. package/dist/sdk/graph/governance.d.ts +13 -1
  495. package/dist/sdk/graph/governance.js +1 -735
  496. package/dist/sdk/graph/hierarchy-integrity.js +1 -310
  497. package/dist/sdk/graph/index.d.ts +3 -2
  498. package/dist/sdk/graph/index.js +1 -26
  499. package/dist/sdk/graph/lifecycle-coverage.d.ts +32 -0
  500. package/dist/sdk/graph/lifecycle-coverage.js +2 -0
  501. package/dist/sdk/graph/mutation-advisory.js +1 -176
  502. package/dist/sdk/graph/remediation.js +1 -197
  503. package/dist/sdk/graph/run.d.ts +15 -1
  504. package/dist/sdk/graph/run.js +1 -768
  505. package/dist/sdk/graph/scheduling.js +1 -124
  506. package/dist/sdk/graph/traversal.js +1 -284
  507. package/dist/sdk/graph/workspace-relationship-kind-registry.js +1 -27
  508. package/dist/sdk/graph.js +1 -15
  509. package/dist/sdk/guide-topics.js +1 -707
  510. package/dist/sdk/guide.js +1 -279
  511. package/dist/sdk/history/maintenance.d.ts +71 -0
  512. package/dist/sdk/history/maintenance.js +2 -0
  513. package/dist/sdk/history/salvage.js +2 -247
  514. package/dist/sdk/history/subject.d.ts +19 -0
  515. package/dist/sdk/history/subject.js +2 -0
  516. package/dist/sdk/history-analytics.js +1 -282
  517. package/dist/sdk/history-compact.js +1 -527
  518. package/dist/sdk/history-mcp.js +1 -68
  519. package/dist/sdk/history-provenance.js +1 -182
  520. package/dist/sdk/history-read.js +1 -96
  521. package/dist/sdk/history-redact.d.ts +1 -14
  522. package/dist/sdk/history-redact.js +1 -643
  523. package/dist/sdk/history-repair.d.ts +5 -0
  524. package/dist/sdk/history-repair.js +1 -657
  525. package/dist/sdk/improvement-ledger-validation.js +1 -62
  526. package/dist/sdk/improvement-ledger.js +2 -257
  527. package/dist/sdk/index.d.ts +4 -1
  528. package/dist/sdk/index.js +1 -183
  529. package/dist/sdk/init-agent-guidance.js +2 -496
  530. package/dist/sdk/init.js +2 -820
  531. package/dist/sdk/invocation-author.js +1 -39
  532. package/dist/sdk/item-children.js +1 -90
  533. package/dist/sdk/item-metadata-index.js +1 -15
  534. package/dist/sdk/item-schedule.js +1 -27
  535. package/dist/sdk/item-transaction.js +1 -396
  536. package/dist/sdk/learnings.js +1 -29
  537. package/dist/sdk/lifecycle/append.js +2 -53
  538. package/dist/sdk/lifecycle/claim.d.ts +2 -0
  539. package/dist/sdk/lifecycle/claim.js +1 -242
  540. package/dist/sdk/lifecycle/close-many.js +1 -438
  541. package/dist/sdk/lifecycle/close.js +1 -468
  542. package/dist/sdk/lifecycle/copy.js +1 -212
  543. package/dist/sdk/lifecycle/create.js +1 -1949
  544. package/dist/sdk/lifecycle/delete.js +1 -45
  545. package/dist/sdk/lifecycle/event-validation-messages.js +1 -91
  546. package/dist/sdk/lifecycle/focus.js +1 -91
  547. package/dist/sdk/lifecycle/hierarchy-mutation-lock.js +1 -24
  548. package/dist/sdk/lifecycle/legacy-none-tokens.js +1 -149
  549. package/dist/sdk/lifecycle/lifecycle-transitions.js +1 -40
  550. package/dist/sdk/lifecycle/mcp-actions.d.ts +2 -0
  551. package/dist/sdk/lifecycle/mcp-actions.js +1 -51
  552. package/dist/sdk/lifecycle/metadata-normalizers.js +1 -46
  553. package/dist/sdk/lifecycle/mutation-command-options.js +1 -9
  554. package/dist/sdk/lifecycle/plan.js +1 -1606
  555. package/dist/sdk/lifecycle/recurrence-parsers.d.ts +1 -1
  556. package/dist/sdk/lifecycle/recurrence-parsers.js +1 -147
  557. package/dist/sdk/lifecycle/reopen.js +1 -68
  558. package/dist/sdk/lifecycle/repeatable-metadata-parsers.js +1 -143
  559. package/dist/sdk/lifecycle/restore.d.ts +1 -0
  560. package/dist/sdk/lifecycle/restore.js +1 -330
  561. package/dist/sdk/lifecycle/shared-unset-fields.js +1 -295
  562. package/dist/sdk/lifecycle/update-many.js +1 -861
  563. package/dist/sdk/lifecycle/update.js +1 -2136
  564. package/dist/sdk/lifecycle-completion.js +1 -92
  565. package/dist/sdk/lifecycle-policy.js +1 -120
  566. package/dist/sdk/linked-artifacts.js +1 -530
  567. package/dist/sdk/mcp/apps.js +4 -133
  568. package/dist/sdk/mcp/authorization.js +1 -404
  569. package/dist/sdk/mcp/discovery.js +1 -494
  570. package/dist/sdk/mcp/interactions.js +1 -336
  571. package/dist/sdk/mcp/protocol.d.ts +7 -0
  572. package/dist/sdk/mcp/protocol.js +1 -184
  573. package/dist/sdk/mcp/skills.js +1 -389
  574. package/dist/sdk/mcp/subscriptions.js +1 -211
  575. package/dist/sdk/mcp/tasks.js +2 -430
  576. package/dist/sdk/mcp/transport.js +1 -260
  577. package/dist/sdk/merge/abandoned-receipts.js +1 -46
  578. package/dist/sdk/merge/driver.js +1 -212
  579. package/dist/sdk/merge/index.js +1 -16
  580. package/dist/sdk/merge/install.js +3 -561
  581. package/dist/sdk/merge/receipt-file-boundary.js +1 -46
  582. package/dist/sdk/merge/receipt-operation.js +1 -96
  583. package/dist/sdk/merge/receipt-schema.js +1 -397
  584. package/dist/sdk/merge/receipts.js +4 -525
  585. package/dist/sdk/merge/reconcile.js +1 -352
  586. package/dist/sdk/merge/three-way.js +3 -775
  587. package/dist/sdk/merge.js +1 -10
  588. package/dist/sdk/mutation-events.js +1 -292
  589. package/dist/sdk/mutation-guard.js +1 -216
  590. package/dist/sdk/notes.js +1 -139
  591. package/dist/sdk/output-contracts.js +1 -172
  592. package/dist/sdk/output-projection.js +1 -430
  593. package/dist/sdk/output-token-accounting.js +1 -140
  594. package/dist/sdk/output.js +1 -64
  595. package/dist/sdk/ownership-source.js +1 -21
  596. package/dist/sdk/package-import-adapters.js +1 -442
  597. package/dist/sdk/package-migrations.js +1 -20
  598. package/dist/sdk/package-runtime-options.js +1 -80
  599. package/dist/sdk/pagination.js +1 -162
  600. package/dist/sdk/profile.js +1 -454
  601. package/dist/sdk/provenance.js +1 -258
  602. package/dist/sdk/public-surface.json +1 -1
  603. package/dist/sdk/query/activity.js +1 -401
  604. package/dist/sdk/query/aggregate.d.ts +16 -0
  605. package/dist/sdk/query/aggregate.js +1 -390
  606. package/dist/sdk/query/calendar.js +1 -964
  607. package/dist/sdk/query/complete-list.js +1 -215
  608. package/dist/sdk/query/context.js +1 -1702
  609. package/dist/sdk/query/duplicate-candidates.js +1 -70
  610. package/dist/sdk/query/get.js +1 -450
  611. package/dist/sdk/query/history.js +1 -186
  612. package/dist/sdk/query/item-filter-options.js +1 -9
  613. package/dist/sdk/query/light-metadata.js +1 -18
  614. package/dist/sdk/query/list-filter-shared.js +1 -81
  615. package/dist/sdk/query/list.js +1 -1304
  616. package/dist/sdk/query/multi-value-filters.js +1 -78
  617. package/dist/sdk/query/next.js +1 -513
  618. package/dist/sdk/query/parsers.js +1 -44
  619. package/dist/sdk/query/projection-contracts.js +1 -184
  620. package/dist/sdk/query/search-contracts.d.ts +27 -0
  621. package/dist/sdk/query/search-contracts.js +1 -230
  622. package/dist/sdk/query/search-pagination.js +1 -35
  623. package/dist/sdk/query/search-rendering.js +1 -105
  624. package/dist/sdk/query/search.d.ts +6 -4
  625. package/dist/sdk/query/search.js +2 -1987
  626. package/dist/sdk/query.js +1 -35
  627. package/dist/sdk/read-output/continuation.js +1 -194
  628. package/dist/sdk/read-output-budget.js +1 -135
  629. package/dist/sdk/read-output-contracts.d.ts +1 -1
  630. package/dist/sdk/read-output-contracts.js +1 -1225
  631. package/dist/sdk/read-output-rows.js +1 -186
  632. package/dist/sdk/read-output-session.js +1 -208
  633. package/dist/sdk/relationship-analytics.js +1 -410
  634. package/dist/sdk/relationship-context.js +1 -284
  635. package/dist/sdk/relationship-history.js +4 -519
  636. package/dist/sdk/relationship-kinds/contract.js +1 -22
  637. package/dist/sdk/relationship-migration.js +1 -77
  638. package/dist/sdk/relationships.js +1 -579
  639. package/dist/sdk/reproducibility/process.js +1 -87
  640. package/dist/sdk/runtime-action-aliases.js +1 -59
  641. package/dist/sdk/runtime-extended-actions.js +1 -177
  642. package/dist/sdk/runtime-input.js +1 -614
  643. package/dist/sdk/runtime-primitives.js +1 -84
  644. package/dist/sdk/runtime-public-contracts.d.ts +2 -1
  645. package/dist/sdk/runtime-public-contracts.js +1 -4
  646. package/dist/sdk/runtime-stats-options.js +1 -38
  647. package/dist/sdk/runtime.d.ts +4 -0
  648. package/dist/sdk/runtime.js +1 -1928
  649. package/dist/sdk/scheduling-shortcuts.js +1 -63
  650. package/dist/sdk/schema-migration.js +3 -856
  651. package/dist/sdk/schema.d.ts +2 -1
  652. package/dist/sdk/schema.js +1 -1376
  653. package/dist/sdk/search-refresh-worker.js +1 -18
  654. package/dist/sdk/similarity-scoring.js +1 -53
  655. package/dist/sdk/similarity.js +1 -326
  656. package/dist/sdk/start-task-status.js +1 -14
  657. package/dist/sdk/stats.js +1 -270
  658. package/dist/sdk/structured-mutations.js +1 -580
  659. package/dist/sdk/telemetry-flush.js +1 -13
  660. package/dist/sdk/telemetry.js +1 -405
  661. package/dist/sdk/templates.js +2 -292
  662. package/dist/sdk/test/batch.js +2 -509
  663. package/dist/sdk/test/entry.js +1 -70
  664. package/dist/sdk/test/execution.js +6 -2211
  665. package/dist/sdk/test/linked-command-detection.js +1 -546
  666. package/dist/sdk/test/measurements.js +1 -91
  667. package/dist/sdk/test/parsers.js +1 -545
  668. package/dist/sdk/test/runs.js +1 -193
  669. package/dist/sdk/test/trust.js +2 -206
  670. package/dist/sdk/testing.js +4 -1391
  671. package/dist/sdk/traceability/runtime-files-lookup.js +1 -32
  672. package/dist/sdk/traceability/source-traceability.js +1 -292
  673. package/dist/sdk/tracker-root-discovery.js +1 -9
  674. package/dist/sdk/workspace-contracts-cache.js +1 -28
  675. package/dist/sdk/workspace-contracts.js +1 -33
  676. package/dist/sdk/workspace-memory.js +2 -318
  677. package/dist/sdk/workspace-recipe.js +1 -71
  678. package/dist/sdk/workspace-snapshot.js +4 -613
  679. package/dist/sdk/workspace-transaction-gc.js +1 -149
  680. package/dist/sdk/workspace-transaction.js +2 -363
  681. package/dist/sdk/workspace.js +3 -127
  682. package/dist/types/index.js +1 -9
  683. package/dist/types.d.ts +4 -0
  684. package/dist/types.js +1 -245
  685. package/docs/AGENT_GUIDE.md +1 -1
  686. package/docs/COMMANDS.md +10 -0
  687. package/docs/CONFIGURATION.md +12 -1
  688. package/docs/CONTEXT_ALGORITHM_PORTFOLIO.md +167 -0
  689. package/docs/DIAGNOSTIC_OUTPUT_CONTRACTS.md +9 -3
  690. package/docs/EXTENSIONS.md +1 -0
  691. package/docs/HISTORY_MAINTENANCE.md +125 -0
  692. package/docs/MCP_2026_07_28_CONFORMANCE.md +20 -10
  693. package/docs/PACKAGE_EVIDENCE.md +92 -0
  694. package/docs/PLANNING_MEASUREMENTS.md +183 -0
  695. package/docs/README.md +4 -0
  696. package/docs/READ_OUTPUT_CONTRACTS.md +5 -0
  697. package/docs/SCRIPTING.md +21 -0
  698. package/docs/TESTING.md +33 -0
  699. package/docs/WORKFLOW_POLICIES.md +129 -0
  700. package/docs/generated/FLAG_LEXICON_BUDGETS.md +7 -7
  701. package/docs/generated/REFUSAL_CLOSURE_CENSUS.md +11 -5
  702. package/marketplace.json +2 -2
  703. package/package.json +5 -5
  704. package/packages/pm-beads/package.json +1 -1
  705. package/packages/pm-calendar/package.json +1 -1
  706. package/packages/pm-command-kit/package.json +1 -1
  707. package/packages/pm-digital-twin/package.json +1 -1
  708. package/packages/pm-governance-audit/package.json +1 -1
  709. package/packages/pm-guide-shell/package.json +1 -1
  710. package/packages/pm-kanban/package.json +1 -1
  711. package/packages/pm-lifecycle-hooks/package.json +1 -1
  712. package/packages/pm-linked-test-adapters/package.json +1 -1
  713. package/packages/pm-search-advanced/package.json +1 -1
  714. package/packages/pm-templates/package.json +1 -1
  715. package/packages/pm-todos/package.json +1 -1
  716. package/packages/pm-vcs/package.json +1 -1
  717. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  718. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  719. package/scripts/finalize-build.mjs +45 -3
  720. package/dist/cli-bundle/chunks/chunk-AZDFJGH6.js +0 -9
  721. package/dist/cli-bundle/chunks/chunk-CKOL5U7J.js +0 -77
  722. package/dist/cli-bundle/chunks/chunk-JX4DH4WC.js +0 -3
  723. package/dist/cli-bundle/chunks/chunk-OF76PSDQ.js +0 -5
  724. package/dist/cli-bundle/chunks/chunk-QUWFABDM.js +0 -232
  725. package/dist/cli-bundle/chunks/chunk-QWRRFYK3.js +0 -2
  726. package/dist/cli-bundle/chunks/chunk-RWWBOWJ5.js +0 -2
  727. package/dist/cli-bundle/chunks/chunk-WGAOYSYH.js +0 -40
  728. package/dist/cli-bundle/chunks/chunk-WI2AYPA7.js +0 -2
  729. package/dist/cli-bundle/chunks/register-list-query-5JL52D33.js +0 -11
  730. package/dist/cli-bundle/chunks/register-mutation-ZPG7KMVP.js +0 -20
  731. package/dist/cli-bundle/chunks/register-operations-I5W3KMGB.js +0 -2
  732. package/dist/cli-bundle/chunks/register-setup-H4SVAVX7.js +0 -2
  733. package/dist/cli-bundle/focused-chunks/chunk-AL5ON6K6.js +0 -2
  734. package/dist/cli-bundle/focused-chunks/chunk-CHC2IDXA.js +0 -6
  735. package/dist/cli-bundle/focused-chunks/chunk-CK6QFAPZ.js +0 -20
  736. package/dist/cli-bundle/focused-chunks/chunk-EZR3GHFE.js +0 -2
  737. package/dist/cli-bundle/focused-chunks/chunk-H2WJWK7L.js +0 -56
  738. package/dist/cli-bundle/focused-chunks/chunk-NTPY5GSO.js +0 -3
  739. package/dist/cli-bundle/focused-chunks/chunk-P5O7MP5Y.js +0 -2
  740. package/dist/cli-bundle/focused-chunks/chunk-PDMW2E36.js +0 -177
  741. package/dist/cli-bundle/focused-chunks/chunk-PEFABF7E.js +0 -26
  742. package/dist/cli-bundle/focused-chunks/chunk-QTVCLMSZ.js +0 -6
  743. package/dist/cli-bundle/focused-chunks/chunk-QTZRBUYA.js +0 -8
  744. package/dist/cli-bundle/focused-chunks/chunk-SGQST3PQ.js +0 -12
  745. package/dist/cli-bundle/focused-chunks/chunk-UKHASMMP.js +0 -10
  746. package/dist/cli-bundle/focused-chunks/chunk-ZPEKQHOC.js +0 -2
@@ -0,0 +1,12 @@
1
+ import{$ as Br,$a as co,Da as me,K as Pt,L as Gr,Ma as Xr,U as Je,Ua as B,Va as Qr,W as fe,Wa as Jr,X as Ze,Xa as ro,Y as et,Z as Wr,Za as Se,_a as ao,a as be,aa as qr,ab as lo,b as Lr,ba as tt,bb as uo,ca as zr,cb as fo,d as Nr,da as jt,e as Pr,ea as Ut,fa as Ht,fb as mo,g as jr,ga as Kr,gb as po,ib as ho,jb as go,ka as Vr,la as Gt,m as Ur,mb as _o,n as Hr,nb as Bt,ob as qt,pb as q,ua as Yr,vb as yo}from"./chunk-YJUXGS57.js";import{e as $t,f as Ot,g as Lt,h as Nt}from"./chunk-PNKIANFZ.js";import{Ma as or,Ua as ir}from"./chunk-FE3BABLJ.js";import{$a as Mr,Bb as Zr,Cb as eo,D as J,Ea as Xe,Fa as Ir,Fb as to,Ga as Ar,O as N,Oa as M,P as R,Q as X,T as wr,Tb as no,X as W,Xa as Rr,Ya as Fr,Yb as ke,_b as oo,aa as br,bc as Wt,cc as io,dc as so,ec as nt,f as pr,g as hr,h as gr,hb as Qe,i as _r,j as yr,jb as Dr,ka as kr,la as Sr,lb as j,ma as Er,mb as de,n as we,nb as le,pb as $r,qb as ue,tb as Or,va as Cr,w as vr,xa as xr,za as Tr}from"./chunk-TTYXF5YD.js";import{b as Yn,m as P,o as Y}from"./chunk-5FHTCOHS.js";import{D as lr,G as O,J as ur,K as E,L as fr,M as G,S as ze,U as Ke,W as Ve,Z as mr,_ as Ye,e as ce,f as dr,h as qe,u as x,z as ve}from"./chunk-OQUGRHKV.js";import{$ as m,$c as cr,Aa as F,Eb as rr,Ga as C,H as ae,Ia as Zn,Ka as Mt,M as Rt,Ma as Ge,N as Ue,Pa as ye,Qa as Dt,Uc as We,V as Kn,Va as er,Vc as Be,Wa as tr,Wc as sr,Z as Vn,_c as ar,aa as p,i as zn,ja as Xn,ka as He,la as Qn,na as Jn,pb as nr,qa as Ft}from"./chunk-XSS3APUF.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="f6e02611-4b44-5aa3-b762-9fd984aa12bc")}catch{}})();var Ns=["invalid_envelope","source_incomplete","source_unchecked","filtered_corpus","terminal_items_excluded","strict_read_unproven","page_incomplete","count_mismatch","projection_incomplete","field_omission","omission_receipt_missing","omission_receipt_invalid","read_output_missing","read_output_invalid","read_output_dimensions_incomplete","budget_compaction","budget_omission","session_projection","invalid_item_id","duplicate_item_id"],zt=class extends Error{receipt;constructor(t){super(`Complete-list certification failed: ${t.map(n=>n.code).join(", ")}.`),this.name="PmCompleteListValidationError",this.receipt={contract_version:1,contract:"complete_list",findings:t,recovery:{suggested_retry:"pm list --all --output-include full --strict-read --no-truncate --output-budget unbounded --output-limit unbounded --json",sdk:"await client.listAllComplete()"}}}};function Gf(e={}){return{excludeTerminal:!1,full:!0,...e.includeBody===void 0?{}:{includeBody:e.includeBody},noTruncate:!0,outputBudget:"unbounded",outputLimit:"unbounded",strictRead:!0}}function z(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function T(e,t,n,r){t&&e.push({code:n,message:r})}function Ps(e,t){let n=z(e.completeness)?e.completeness:{};T(t,n.status==="partial","source_incomplete","The source scan reported unreadable tracker artifacts."),T(t,n.status!=="complete"&&n.status!=="partial","source_unchecked","The source scan did not prove completeness.");let r=n.unreadable_item_count,o=n.unreadable_directory_count;T(t,n.status==="complete"&&(r!==0||o!==0)&&Number.isSafeInteger(r)&&Number.isSafeInteger(o),"source_incomplete","The source scan reports unreadable tracker artifacts despite a complete status."),T(t,n.status==="complete"&&(!Number.isSafeInteger(r)||!Number.isSafeInteger(o)||Number(r)<0||Number(o)<0),"source_unchecked","The source scan did not report safe non-negative unreadable counts.");let i=z(e.filters)?e.filters:{},s=z(i.runtime_filters)?i.runtime_filters:{},a=new Set(["exclude_terminal","include_body","no_truncate","runtime_filters","status","strict_read"]);return T(t,i.status!=="all"||Object.keys(s).length>0||Object.keys(i).some(d=>!a.has(d)),"filtered_corpus","The list did not explicitly select every lifecycle status."),T(t,i.exclude_terminal===!0,"terminal_items_excluded","Terminal lifecycle states were explicitly excluded."),T(t,i.strict_read!==!0,"strict_read_unproven","The result does not echo strict source-read enforcement."),i}function js(e,t,n){T(n,e.has_more!==!1||e.next_cursor!==null||e.truncated!==!1||e.applied_limit!==void 0||t.no_truncate!==!0,"page_incomplete","Pagination or a row ceiling may have withheld items."),T(n,e.count!==e.items.length||e.total!==e.items.length,"count_mismatch","Envelope counts do not equal the returned item count.");let r=z(e.projection)?e.projection:{};T(n,r.mode!=="full"||r.fields!==null,"projection_incomplete","The result is not the full metadata projection.");let o=z(e.omission_receipt)?e.omission_receipt:void 0;T(n,o===void 0,"omission_receipt_missing","The result carries no field-omission receipt."),T(n,o!==void 0&&(o.has_omissions!==!1||o.omitted_field_group_count!==0||!Number.isSafeInteger(o.omitted_field_group_count)||!Array.isArray(o.omitted_field_groups)||o.omitted_field_groups.length!==0),"omission_receipt_invalid","The field-omission receipt is malformed or contradicts its no-omission claim."),T(n,o?.has_omissions===!0,"field_omission","The omission receipt reports withheld field groups.")}function Us(e){return e.contract_version!==1||e.command!=="list"||e.within_budget!==!0||e.strings_compacted!==!1||e.rows_compacted!==!1||e.result_omitted!==!1}function Hs(e){if(!Array.isArray(e.requested_dimensions))return!1;let t=new Set(e.requested_dimensions);return["include","amount","cost"].every(n=>t.has(n))}function Gs(e,t){let n=z(e.read_output)?e.read_output:void 0;T(t,n===void 0,"read_output_missing","The result carries no universal read-output receipt."),T(t,n!==void 0&&Us(n),"read_output_invalid","The universal read-output receipt does not prove an intact list result."),T(t,n!==void 0&&!Hs(n),"read_output_dimensions_incomplete","The universal read-output receipt does not prove full, unbounded include, amount, and cost dimensions."),T(t,n?.strings_compacted===!0||n?.rows_compacted===!0||e.output_budget_truncation!==void 0,"budget_compaction","Universal output shaping compacted the result.");let r=z(e.output_budget_exceeded)?e.output_budget_exceeded:void 0;T(t,n?.result_omitted===!0||r?.omitted_result===!0,"budget_omission","Universal output shaping omitted the useful result."),T(t,e.read_session!==void 0,"session_projection","A cross-call read session can suppress previously served facts.")}function Ws(e,t){let n=e.map(r=>z(r)&&typeof r.id=="string"?r.id.trim():"");T(t,n.some(r=>r.length===0),"invalid_item_id","Every full item row must carry a non-empty string id."),T(t,new Set(n).size!==n.length,"duplicate_item_id","Every item id must occur exactly once.")}function Bs(e){if(!z(e)||!Array.isArray(e.items))return{ok:!1,findings:[{code:Ns[0],message:"The result must be an object with an items array."}]};let t=e,n=[],r=Ps(t,n);return js(t,r,n),Gs(t,n),Ws(t.items,n),{ok:n.length===0,findings:n}}function qs(e){let t=Bs(e);if(!t.ok)throw new zt(t.findings);let n=e;return{...n,complete_list:{contract_version:1,item_count:n.items.length,unique_item_id_count:new Set(n.items.map(r=>r.id)).size,terminal_items_included:!0,source_complete:!0,full_projection:!0,no_omissions:!0,unbounded:!0}}}function Wf(e){qs(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]="ed4ecd27-71df-5dca-a155-11409db4af21")}catch{}})();function vo(e,t){let n=Tr(e),r=e.length>0?e[e.length-1].after_hash:Er(),o=t===void 0||n.item_hash_version===void 0?void 0:Sr(t,n.item_hash_version),i=t===void 0?void 0:o===void 0?kr(t):o[Math.max(0,o.indexOf(r))],s=i===void 0?void 0:i===r,a=[...n.errors];return s===!1&&a.push("verify_failed:current_item_hash_mismatch"),{ok:a.length===0,entries:e.length,errors:a,latest_after_hash:e.length>0?e[e.length-1].after_hash:void 0,current_item_hash:i,current_matches_latest:s}}async function wo(e,t,n={}){let r=C(n.cwd??process.cwd(),n.pmRoot);await j(r);let o=await M(r),i=F(o,x()),s=await jr(r,e,o,i.type_to_folder),a=await W(s.historyPath,s.id);if(a.length===0)throw new p(`No history exists for ${s.id}; point-in-time reads are unavailable.`,m.NOT_FOUND);let d=Lr(t,a),c=Pr(Nr(a,d.historyIndex),d),l=Cr(c,{schema:o.schema});if(l.metadata.id!==s.id)throw new p(`History target resolved to item ${l.metadata.id}, expected ${s.id}.`,m.GENERIC_FAILURE);let u=a[d.historyIndex],f=be(a,!0);return{document:l,reconstructed:!0,as_of_version:f===null?null:f+d.historyIndex+1,as_of_timestamp:u.ts,target:d,history_length:a.length}}import Ks from"node:fs/promises";import Eo 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]="94a81e04-bb02-5c2e-9362-4cf7212d66e6")}catch{}})();var Kt={version:1,aliases:{}};function rt(e=[]){let t=new Set(we),n=r=>{/^[a-z0-9]+(?:-[a-z0-9]+)*$/u.test(r)&&t.add(r)};for(let r of e){for(let o of Object.keys(r.provenance_environment_keys??{}))n(o);for(let o of Object.keys(r.provenance_resolvers??{}))n(o);for(let o of r.provenance_unavailable_dimensions??[])n(o)}return[...t].sort()}function bo(e){if(e===void 0)return;let n=(typeof e=="string"?[e]:e).flatMap(r=>r.split(",")).map(r=>r.trim()).filter(r=>r.length>0);return n.length===0?void 0:new Set(n)}function Vt(e,t){if(e.agent_harness?.trim())return{agent_harness:e.agent_harness,harness_source:"recorded"};let n=t.aliases[e.author];return n?{agent_harness:n,harness_source:"vocabulary"}:{harness_source:"unresolved"}}function zs(e,t=we){let n=new Set(t),r=new Map,o=e.provenance===void 0?[]:typeof e.provenance=="string"?[e.provenance]:e.provenance;for(let i of o.flatMap(s=>s.split(","))){let s=i.indexOf("=");if(s<0)throw new p(`Provenance predicate must use dimension=value; received "${i.trim()}".`,m.USAGE,{code:"invalid_provenance_predicate"});let a=i.slice(0,s).trim().toLowerCase(),d=i.slice(s+1).trim();if(!n.has(a))throw new p(`Unknown provenance dimension "${a||i.trim()}". Declared dimensions: ${[...n].sort().join(", ")}.`,m.USAGE,{code:"unknown_provenance_dimension"});if(d.length===0)throw new p(`Provenance predicate must use dimension=value; received "${i.trim()}".`,m.USAGE,{code:"invalid_provenance_predicate"});let c=r.get(a)??new Set;c.add(d),r.set(a,c)}return r}function ot(e,t=Kt,n={}){let r=Vt(e,t);return{...n.itemId===void 0?{}:{item_id:n.itemId},...n.version===void 0?{}:{version:n.version},ts:e.ts,op:e.op,author:e.author,...e.author_source===void 0?{}:{author_source:e.author_source},...r,vocabulary_version:t.version,...e.agent_instance===void 0?{}:{agent_instance:e.agent_instance},agent_provenance:e.agent_provenance??{},...e.message===void 0?{}:{message:e.message}}}function it(e,t=Kt,n=we){let r=bo(e.harness),o=bo(e.agentInstance),i=zs(e,n);return s=>{let d=Vt(s,t).agent_harness;if(r&&(!d||!r.has(d))||o&&!o.has(s.agent_instance??""))return!1;for(let[c,l]of i){let u=s.agent_provenance?.[c];if(!u||!l.has(u.value))return!1}return!0}}function st(e,t=Kt,n=we){let r=new Set(n),o=new Map,i=0;for(let s of e){for(let d of Object.keys(s.agent_provenance??{}))r.add(d);Vt(s,t).agent_harness?i+=1:o.set(s.author,(o.get(s.author)??0)+1)}return{entries:e.length,vocabulary_version:t.version,harness:{resolved:i,unresolved:e.length-i,unresolved_authors:[...o].map(([s,a])=>({author:s,entries:a})).sort((s,a)=>a.entries-s.entries||s.author.localeCompare(a.author)).slice(0,20)},dimensions:[...r].sort().map(s=>{let a=0,d=0;for(let c of e){let l=c.agent_provenance?.[s];l===null?d+=1:l!==void 0&&(a+=1)}return{dimension:s,observed:a,unavailable:d,legacy_missing:e.length-a-d}})}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="03488490-bc4a-5988-9ceb-46800c6d7833")}catch{}})();var Vs=20,Ys=5,Xs=15,Qs="-24h";function km(e){let t={...e};return t.full===!0?(t.raw=!0,t.compact=!1):t.raw===!0&&t.compact===void 0&&(t.compact=!0),delete t.full,t}var Js={digest:"activity_digest",compact:"compact_activity",provenance:"provenance_activity",full:"activity"};function Yt(e,t){if(e===void 0)return;let n=e.trim();if(n.length===0)throw new p(`${t} must not be empty`,m.USAGE);return n}function ko(e,t,n){if(e===void 0)return;let r=e.trim();if(r.length===0)throw new p("Activity time bounds must not be empty",m.USAGE);let o=n==="--from"&&/^\d+[hdwm]$/iu.test(r)?`-${r}`:r;return G(o,new Date(t),n)}function Zs(e,t,n){return!(e.ts.length===0&&(t||n)||t&&E(e.ts,t)<0||n&&E(e.ts,n)>=0)}function So(e,t){return t===void 0?e:e.slice(0,t)}function Ee(e,t=""){return typeof e=="string"?e:t}function ea(e,t){return{...t,id:e,ts:Ee(t.ts),author:Ee(t.author,"unknown"),op:Ee(t.op,"unknown"),patch:Array.isArray(t.patch)?t.patch:[],before_hash:Ee(t.before_hash),after_hash:Ee(t.after_hash)}}function ta(e){return[...e].sort((t,n)=>{let r=n.ts.localeCompare(t.ts);if(r!==0)return r;let o=t.id.localeCompare(n.id);return o!==0?o:t.op.localeCompare(n.op)})}async function na(e){try{return(await Ks.readdir(e)).filter(t=>t.endsWith(".jsonl")).sort((t,n)=>t.localeCompare(n))}catch(t){if(Qn(t))return[];throw t}}function ra(e){return e.raw!==!0&&e.compact!==!0&&e.provenance!==!0?"digest":e.provenance===!0?"provenance":e.compact===!0||e.raw===!0&&e.compact!==!1?"compact":"full"}function oa(e,t,n){if(e.unbounded!==!0)return t!==void 0?t:n==="digest"?Xs:n==="compact"?Vs:Ys}function ia(e,t){let n=O(),r=t==="digest",o=ko(e.to??(r?n:void 0),n,"--to"),i=ko(e.from??(r?Qs:void 0),e.from===void 0&&r?o:n,"--from");if(i&&o&&E(i,o)>=0)throw new p("Activity --from must be before --to",m.USAGE);let s=fe(e.limit);if(e.unbounded===!0&&s!==void 0)throw new p("Activity --unbounded cannot be combined with --limit",m.USAGE);return{id:Yt(e.id,"Activity --id"),op:Yt(e.op,"Activity --op"),author:Yt(e.author,"Activity --author"),from:i,to:o,limit:oa(e,s,t),limitSource:e.unbounded===!0||s!==void 0?"explicit":"default",harness:e.harness,agentInstance:e.agentInstance,provenance:e.provenanceFilter}}async function sa(e){let t=C(process.cwd(),e.path);return await j(t),{pmRoot:t,settings:await M(t)}}async function aa(e){let t=F(e.settings,x()),n=await ue(e.pmRoot,e.settings.item_format,t.type_to_folder,void 0,e.settings.schema);await Fr({pmRoot:e.pmRoot,settings:e.settings,itemIds:n.map(o=>o.id),commandLabel:"activity"});let r=Eo.join(e.pmRoot,"history");return await ve({path:r,scope:"project"}),{historyDir:r,itemsById:new Map(n.map(o=>[o.id,{title:o.title,type:o.type,status:o.status}]))}}function ca(e,t,n){return n.op&&e.op!==n.op||n.author&&e.author!==n.author?!1:Zs(t,n.from,n.to)}async function da(e,t){let n=[];for(let r of await na(e)){let o=r.slice(0,-6);if(t.id&&o!==t.id)continue;let i=await W(Eo.join(e,r),o);for(let s of i){let a=ea(o,s);ca(s,a,t)&&n.push(a)}}return n}function la(e){return e.map(t=>({id:t.id,op:t.op,ts:t.ts,author:t.author,...t.message?{msg:t.message}:{}}))}function ua(e){let t=[...e.entries()].sort(([r,o],[i,s])=>s-o||r.localeCompare(i)),n=t.slice(0,4).map(([r,o])=>`${r}:${o}`);return t.length>n.length&&n.push(`+${t.length-n.length}`),n.join(",")}function fa(e,t){let n=new Map;for(let r of e){let o=n.get(r.id);if(o===void 0){n.set(r.id,{firstTs:r.ts,lastTs:r.ts,eventCount:1,operations:new Map([[r.op,1]])});continue}o.eventCount+=1,E(r.ts,o.firstTs)<0&&(o.firstTs=r.ts),E(r.ts,o.lastTs)>0&&(o.lastTs=r.ts),o.operations.set(r.op,(o.operations.get(r.op)??0)+1)}return[...n.entries()].map(([r,o])=>{let i=t.get(r);return{id:r,type:i?.type??"unknown",status:i?.status??"unknown",title:(i?.title??"(item metadata unavailable)").slice(0,160),event_count:o.eventCount,first_ts:o.firstTs,last_ts:o.lastTs,operations:ua(o.operations)}}).sort((r,o)=>E(o.last_ts,r.last_ts)||r.id.localeCompare(o.id))}function ma(e){let t=new Map;for(let o of e)t.set(o.op,(t.get(o.op)??0)+1);let n=[...t.entries()].sort((o,i)=>i[1]-o[1]||o[0].localeCompare(i[0])),r=n.slice(0,8);return r.length<n.length&&r.push([`+${String(n.length-r.length)}`,n.slice(r.length).reduce((o,[,i])=>o+i,0)]),Object.fromEntries(r)}function pa(e,t,n,r,o){if(e==="digest"){let s=fa(t,r),a=So(s,n);return{rows:{activity_digest:a},compact:!1,totalRows:s.length,returnedRows:a.length}}let i=So(t,n);return e==="compact"?{rows:{compact_activity:la(i)},compact:!0,totalRows:t.length,returnedRows:i.length}:e==="provenance"?{rows:{provenance_activity:i.map(o)},compact:!1,totalRows:t.length,returnedRows:i.length}:{rows:{activity:i},compact:!1,totalRows:t.length,returnedRows:i.length}}async function Co(e,t){let n=await sa(t),r=ra(e),o=ia(e,r),i=await aa(n),s=rt(n.settings.agent_identity.harness_signals),a=n.settings.agent_identity.identity_vocabulary,d=it({harness:o.harness,agentInstance:o.agentInstance,provenance:o.provenance},a,s),c=ta(await da(i.historyDir,o)).filter(d),l=pa(r,c,o.limit,i.itemsById,f=>ot(f,a,{itemId:f.id})),u=l.totalRows-l.returnedRows;return{...l.rows,compact:l.compact,projection:{mode:r,row_key:Js[r]},omission_receipt:qe("activity",r),count:l.returnedRows,total_count:l.totalRows,limit:o.limit??null,omitted_count:u,has_more:u>0,...r==="digest"?{activity_summary:{window:{from:o.from,to:o.to},event_count:c.length,item_count:l.totalRows,author_count:new Set(c.map(f=>f.author)).size,operation_counts:ma(c)}}:{},...e.provenanceSummary===!0?{provenance_summary:st(c,a,s)}:{},applied_bound:{kind:o.limit===void 0?"unbounded":"limit",source:o.limitSource,value:o.limit??null}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="2a9a4dc0-8027-5761-9bbf-cac1ef83bd10")}catch{}})();var ha=["status","type","tag","priority","deadlineBefore","deadlineAfter","updatedAfter","updatedBefore","createdAfter","createdBefore","ids","assignee","assigneeFilter","parent","sprint","release"],ga=["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 _a(e){return e!=null&&(typeof e!="string"||e.split(",").some(t=>t.trim().length>0))}function Em(e,t,n={}){let r=n.includePagination!==!1;return[t,...ha.map(i=>e?.[i]),...r?[e?.limit,e?.offset]:[]].some(_a)||ga.some(i=>e?.[i]===!0)}function xo(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]="7a4a98b2-3872-506d-b88d-877b0033dd2d")}catch{}})();var To=["parent","type","priority","status","assignee","tags","sprint","release"];function Ao(e,t){let n=Je(e,t,{strict:!0,flagLabel:"--status"});if(!(!n||n.length===0))return n}function Ro(e,t=["estimate","estimated_minutes","priority"]){let n=e.sum?.trim(),r=e.avg?.trim(),o=n&&n.length>0?n:void 0,i=r&&r.length>0?r:void 0;if(!o&&!i)return null;if(o&&i&&o!==i)throw new p("Aggregate --sum and --avg must target the same numeric field",m.USAGE);let s=o??i;if(!t.includes(s))throw new p(`Aggregate numeric field "${s}" is not registered. Allowed: ${t.join(", ")}`,m.USAGE);return{field:s,sum:o!==void 0,avg:i!==void 0}}function Fo(e){let t=e?.trim()??"status";if(t.length===0)throw new p("--group-by requires at least one field name",m.USAGE);let n=Xr(t);if(n.length===0)throw new p("--group-by requires a comma-separated list of fields",m.USAGE);for(let r of n)if(!To.includes(r))throw new p(`Aggregate group fields must be one of ${To.join("|")}; received "${r}"`,m.USAGE);return n}function Mo(e){let t=[...new Set(e.map(n=>n.trim().toLowerCase()).filter(n=>n.length>0))].sort((n,r)=>n.localeCompare(r));return t.length===0?null:t.join(",")}function Do(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 Mo(t.tags);case"sprint":return t.sprint??null;case"release":return t.release??null;default:return null}}function $o(e,t){let n=e??null,r=t??null;return n===r?0:n===null?1:r===null?-1:typeof n=="number"&&typeof r=="number"?n-r:String(n).localeCompare(String(r))}function at(e,t){return e.map(n=>`${n}:${JSON.stringify(t[n]??null)}`).join("|")}var ya={parent:"(unparented)",type:"(untyped)",priority:"(no priority)",status:"(no status)",assignee:"(unassigned)",tags:"(untagged)",sprint:"(no sprint)",release:"(no release)"};function Io(e,t){return t==null||t===""?ya[e]:String(t)}function va(e,t){return e.length===1?Io(e[0],t[e[0]]):e.map(n=>`${n}=${Io(n,t[n])}`).join(" | ")}function Oo(e,t,n){for(let r of n){let o=$o(e.group[r],t.group[r]);if(o!==0)return o}return 0}function Lo(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 i=Number(o);if(Number.isFinite(i))return i}return null}function No(e,t){return t<=0?0:Math.round(e/t*1e4)/100}function Xt(e,t,n){let r=N(String(t),n)??t;if(r===n.open_status){e.open_count+=1;return}if(r==="in_progress"||n.active_statuses.has(r)&&r!==n.open_status){e.in_progress_count+=1;return}if(n.terminal_done_statuses.has(r)||r===n.close_status){e.closed_count+=1;return}e.other_count+=1}function wa(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 ba(e,t){if(t===null){e.null_count+=1;return}e.numeric_count+=1,e.numeric_sum+=t}function ka(e){e.accumulator.row.count+=1,e.includeCompletion&&Xt(e.accumulator,e.item.status,e.statusRegistry),e.numericAggregation!==null&&ba(e.accumulator,e.numericValue)}function Sa(e,t,n,r){for(let o of t){let i=at(n,o),s=e.get(i);if(s){ka({...r,accumulator:s});continue}let a=wa(o,r.numericValue);r.includeCompletion&&Xt(a,r.item.status,r.statusRegistry),e.set(i,a)}}function Ea(e,t){let n={};for(let r of e)n[r]=Do(r,t);return n}function Ca(e,t,n){let r=[Ea(e,t)];if(n==="tuple")return r;for(let o of e){let i=t[o];if(!Array.isArray(i))continue;let s=[...new Set(i.map(a=>a.trim().toLowerCase()).filter(Boolean))].sort();s.length!==0&&(r=r.flatMap(a=>s.map(d=>({...a,[o]:d}))))}return r}function xa(e,t,n,r){let o={...e.row,group_label:va(t,e.row.group)};return n&&(o.open=e.open_count,o.in_progress=e.in_progress_count,o.closed=e.closed_count,o.other=e.other_count,o.completion_pct=No(e.closed_count,e.row.count)),r!==null&&(o.null_count=e.null_count,r.sum&&(o.sum=e.numeric_sum),r.avg&&(o.avg=e.numeric_count===0?null:e.numeric_sum/e.numeric_count)),o}function Ta(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 Rm(e,t){if(e.count===!1)throw new p("Aggregate grouped counts are always enabled; omit count=false.",m.USAGE);let n=C(process.cwd(),t.path),r=await M(n),o=P(r.schema),i=["estimate","estimated_minutes","priority",...Y(r.schema).definitions.filter(w=>w.type==="number").map(w=>w.metadata_key)],s=Fo(e.groupBy),a=e.setMode??"element";if(a!=="element"&&a!=="tuple")throw new p("Aggregate --set-mode must be element or tuple",m.USAGE);let d=Ao(e.status,o),c=Ro(e,[...new Set(i)].sort((w,S)=>w.localeCompare(S))),l=e.completion===!0,u=e.includeUnparented===!0,f=await q(void 0,{...xo(e),status:e.status,noTruncate:!0,strictRead:!0},t),h=new Map,_=0,y=0,g=0;for(let w of f.items){let S=w;if(s.includes("parent")&&S.parent===void 0&&!u){_+=1;continue}let Q=c===null?null:Lo(S,c.field),A=Ca(s,S,a);Sa(h,A,s,{item:S,statusRegistry:o,includeCompletion:l,numericAggregation:c,numericValue:Q}),g+=A.length,y+=1}let v=[...h.values()].map(w=>xa(w,s,l,c)).sort((w,S)=>Oo(w,S,s)),k=f.warnings&&f.warnings.length>0?f.warnings:void 0;return{...Ia(v,s,e),count:v.length,totals:{items_considered:f.items.length,items_grouped:y,items_skipped_unparented:_,group_memberships:g},filters:Ta({groupBy:s,setMode:a,includeCompletion:l,includeUnparented:u,status:d,options:e,numericAggregation:c}),now:O(),...k?{warnings:k}:{}}}function Ia(e,t,n){let r=no(n.limit,"limit")??50,o=n.after===void 0?-1:e.findIndex(a=>at(t,a.group)===n.after);if(n.after!==void 0&&o<0)throw new p("Aggregate --after cursor is absent from the current grouping; restart without --after.",m.USAGE);let i=e.slice(o+1,o+1+r),s=o+1+i.length<e.length;return{groups:i,returned_count:i.length,truncated:s,next_after:s?at(t,i.at(-1).group):null}}var Fm={buildGroupKey:at,compareAggregateRows:Oo,compareNullableGroupValue:$o,completionPct:No,normalizeTagGroupValue:Mo,parseGroupBy:Fo,parseNumericAggregation:Ro,parseStatus:Ao,readNumericAggregateValue:Lo,resolveGroupValue:Do,updateCompletionCounts:Xt};import{encode as Aa}from"@toon-format/toon";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="77dd912c-158f-5280-8112-dd971be4df3b")}catch{}})();var Qt=["agenda","day","week","month"],Jt=["markdown","toon","json"],Ra=["sun","mon","tue","wed","thu","fri","sat"],Fa=365,Ma=365,Uo=28,Da=1e3;function Zt(e,t){if(e===void 0)return;let n=Number(e);if(!Number.isInteger(n)||n<0)throw new p(`${t} must be a non-negative integer`,m.USAGE);return n}function $a(e){if(!e)return new Set(["deadlines","reminders","events"]);let t=e.trim().toLowerCase();if(t==="all")return new Set(["deadlines","reminders","events"]);let n=t.split(/[|,]/).map(o=>o.trim()).filter(o=>o.length>0);if(n.length===0)throw new p("Calendar include filter must not be empty",m.USAGE);let r=new Set;for(let o of n){if(o==="deadlines"||o==="deadline"){r.add("deadlines");continue}if(o==="reminders"||o==="reminder"){r.add("reminders");continue}if(o==="events"||o==="event"||o==="scheduled"){r.add("events");continue}throw new p("Calendar include filter must be deadlines|reminders|events|scheduled|all",m.USAGE)}return r}function Ho(e,t){let n;for(let r of t){let o=zn(e,r,2);o!==null&&(n===void 0||o<n.distance)&&(n={choice:r,distance:o})}return n?.choice}function Oa(e){if(!e)return"agenda";let t=e.trim().toLowerCase();if(!Qt.includes(t)){let n=Ho(t,Qt);throw new p(`Calendar view must be one of ${Qt.join("|")}${n?`. Did you mean "${n}"?`:"."}`,m.USAGE)}return t}function La(e){if(!e)return;let t=e.trim().toLowerCase();if(!Jt.includes(t)){let n=Ho(t,Jt);throw new p(`Calendar format must be one of ${Jt.join("|")}${n?`. Did you mean "${n}"?`:"."}`,m.USAGE)}return t}function Pm(e,t){let n=La(e.format);if(t.json&&n&&n!=="json")throw new p("Cannot combine --json with --format markdown|toon",m.USAGE);return t.json?"json":n??"markdown"}function Na(e,t){if(e===void 0)return;let n=N(e,t);if(!n){let r=t.definitions.map(o=>o.id);throw new p(`Calendar status filter must be one of ${r.join("|")}`,m.USAGE)}return n}function Pa(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!t)throw new p("Calendar assignee filter must be one of assigned|unassigned",m.USAGE);if(t!=="assigned"&&t!=="unassigned")throw new p(`Invalid calendar assignee filter "${e}". Allowed: assigned|unassigned`,m.USAGE);return t}function ct(e){return new Date(e).toISOString().slice(0,10)}function Go(e,t){if(!t||t==="UTC")return ct(e);try{let n=new Intl.DateTimeFormat("en-CA",{timeZone:t,year:"numeric",month:"2-digit",day:"2-digit"}).formatToParts(new Date(e)),r=n.find(s=>s.type==="year")?.value,o=n.find(s=>s.type==="month")?.value,i=n.find(s=>s.type==="day")?.value;if(r&&o&&i)return`${r}-${o}-${i}`}catch{}return ct(e)}function rn(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate(),0,0,0,0)).toISOString()}function K(e,t){let n=new Date(e);return new Date(n.getTime()+t*24*60*60*1e3).toISOString()}function Wo(e){let t=new Date(rn(e)),n=t.getUTCDay(),r=n===0?-6:1-n;return K(t.toISOString(),r)}function ja(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),1,0,0,0,0)).toISOString()}function Ua(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth()+1,1,0,0,0,0)).toISOString()}function Ha(e,t){return E(e,t)>=0?e:t}function Po(e){return Object.fromEntries([...e.entries()].sort(([t],[n])=>t.localeCompare(n)))}function jo(e,t){e.set(t,(e.get(t)??0)+1)}function Ga(e){if(!e)return null;let t=[`freq=${e.freq}`];if(e.interval!==void 0&&t.push(`interval=${e.interval}`),e.count!==void 0&&t.push(`count=${e.count}`),e.until&&t.push(`until=${e.until}`),e.by_weekday&&e.by_weekday.length>0){let n=[...e.by_weekday].sort((r,o)=>ae(r)-ae(o));t.push(`by_weekday=${n.join("|")}`)}if(e.by_month_day&&e.by_month_day.length>0){let n=[...e.by_month_day].sort((r,o)=>r-o);t.push(`by_month_day=${n.join("|")}`)}if(e.exdates&&e.exdates.length>0){let n=[...e.exdates].sort((r,o)=>r.localeCompare(o));t.push(`exdates=${n.join("|")}`)}return t.join(",")}function Bo(e,t,n,r){let o=new Date(Date.UTC(e,t,n,r.getUTCHours(),r.getUTCMinutes(),r.getUTCSeconds(),r.getUTCMilliseconds()));if(!(o.getUTCFullYear()!==e||o.getUTCMonth()!==t||o.getUTCDate()!==n))return o.toISOString()}function qo(e){return Ra[new Date(e).getUTCDay()]}function Wa(e){let t=Date.parse(e);return Number.isFinite(t)?new Date(t).toISOString():null}function Ba(e){let t=new Set;for(let n of e??[]){let r=Wa(n);r&&t.add(r)}return t}function qa(e,t,n,r,o){let i=e??K(n,-(r??Ma)),s=t??K(e??n,o??Fa);return{start:i,end:E(s,i)>0?s:K(i,1)}}function za(e,t,n,r){let o=t.by_weekday!==void 0?[...t.by_weekday]:[qo(e)],i=t.by_month_day!==void 0?[...t.by_month_day]:[new Date(e).getUTCDate()];return{startAt:e,startDate:new Date(e),window:n,maxOccurrences:r??Da,interval:t.interval??1,countLimit:t.count??Number.POSITIVE_INFINITY,until:t.until,excluded:Ba(t.exdates),weekdayFilter:t.by_weekday!==void 0?new Set(t.by_weekday):void 0,monthDayFilter:t.by_month_day!==void 0?new Set(t.by_month_day):void 0,sortedWeekdays:[...new Set(o)].sort((s,a)=>ae(s)-ae(a)),sortedMonthDays:[...new Set(i)].sort((s,a)=>s-a),occurrences:[],produced:0}}function dt(e,t){return E(t,e.startAt)<0?"continue":e.until&&E(t,e.until)>0||E(t,e.window.end)>=0?"stop":e.excluded.has(t)?"continue":(e.produced+=1,E(t,e.window.start)>=0&&e.occurrences.push(t),e.produced>=e.countLimit||e.occurrences.length>=e.maxOccurrences?"stop":"continue")}function lt(e,t){let n=qo(t),r=new Date(t).getUTCDate(),o=!e.weekdayFilter||e.weekdayFilter.has(n),i=!e.monthDayFilter||e.monthDayFilter.has(r);return o&&i}function Ka(e){let t=e.startAt;for(let n=0;n<e.maxOccurrences&&!(lt(e,t)&&dt(e,t)==="stop");n+=1)t=K(t,e.interval);return e.occurrences}function Va(e,t,n){let r=ae(n),o=K(t,r),i=new Date(o);return new Date(Date.UTC(i.getUTCFullYear(),i.getUTCMonth(),i.getUTCDate(),e.startDate.getUTCHours(),e.startDate.getUTCMinutes(),e.startDate.getUTCSeconds(),e.startDate.getUTCMilliseconds())).toISOString()}function Ya(e){let t=Wo(e.startAt);for(let n=0;n<e.maxOccurrences;n+=1){let r=K(t,n*e.interval*7);for(let o of e.sortedWeekdays){let i=Va(e,r,o);if(lt(e,i)&&dt(e,i)==="stop")return e.occurrences}}return e.occurrences}function Xa(e){let t=e.startDate.getUTCFullYear(),n=e.startDate.getUTCMonth();for(let r=0;r<e.maxOccurrences;r+=1){let o=new Date(Date.UTC(t,n+r*e.interval,1,0,0,0,0));for(let i of e.sortedMonthDays){let s=Bo(o.getUTCFullYear(),o.getUTCMonth(),i,e.startDate);if(!(!s||!lt(e,s))&&dt(e,s)==="stop")return e.occurrences}}return e.occurrences}function Qa(e){let t=e.startDate.getUTCFullYear(),n=e.startDate.getUTCMonth();for(let r=0;r<e.maxOccurrences;r+=1){let o=t+r*e.interval;for(let i of e.sortedMonthDays){let s=Bo(o,n,i,e.startDate);if(!(!s||!lt(e,s))&&dt(e,s)==="stop")return e.occurrences}}return e.occurrences}function Ja(e,t,n,r){let o=za(e,t,n,r);return t.freq==="daily"?Ka(o):t.freq==="weekly"?Ya(o):t.freq==="monthly"?Xa(o):Qa(o)}function zo(e){return[...e].sort((t,n)=>{let r=E(t.at,n.at);if(r!==0)return r;let o=t.item_priority-n.item_priority;if(o!==0)return o;let i=t.item_id.localeCompare(n.item_id);if(i!==0)return i;let s=t.kind.localeCompare(n.kind);if(s!==0)return s;let a=String(t.event_title).localeCompare(String(n.event_title));return a!==0?a:String(t.reminder_text).localeCompare(String(n.reminder_text))})}function on(e){return{item_id:e.id,item_title:e.title,item_type:e.type,item_status:e.status,item_priority:e.priority,item_assignee:e.assignee??null,item_deadline:e.deadline??null,item_tags:e.tags}}function Za(e){return e.deadline?{at:e.deadline,date:ct(e.deadline),kind:"deadline",reminder_text:null,event_title:null,event_end:null,event_location:null,event_all_day:null,event_timezone:null,event_recurring:null,event_recurrence_rule:null,...on(e),item_deadline:e.deadline}:null}function ec(e){return(e.reminders??[]).map(t=>({at:t.at,date:ct(t.at),kind:"reminder",reminder_text:t.text,event_title:null,event_end:null,event_location:null,event_all_day:null,event_timezone:null,event_recurring:null,event_recurrence_rule:null,...on(e)}))}function tc(e,t){if(!t)return null;let n=Date.parse(t)-Date.parse(e);return Number.isFinite(n)&&n>0?n:null}function nc(e,t,n){return t.recurrence&&n!==null?new Date(new Date(e).getTime()+n).toISOString():t.end_at??null}function rc(e,t,n,r){let o=Ga(t.recurrence),i=tc(t.start_at,t.end_at);return(t.recurrence?Ja(t.start_at,t.recurrence,n,r):[t.start_at]).map(a=>({at:a,date:t.all_day===!0?a.slice(0,10):Go(a,t.timezone),kind:"event",reminder_text:t.description??null,event_title:t.title??e.title,event_end:nc(a,t,i),event_location:t.location??null,event_all_day:t.all_day??null,event_timezone:t.timezone??null,event_recurring:!!t.recurrence,event_recurrence_rule:o,...on(e)}))}function oc(e,t,n,r){let o=[];for(let i of e){let s=n.has("deadlines")?Za(i):null;s&&o.push(s),n.has("reminders")&&o.push(...ec(i));for(let a of n.has("events")?i.events??[]:[])o.push(...rc(i,a,t,r))}return zo(o)}function ic(e,t,n,r,o){let i=Jr(t.type,n),s=t.tag?.trim().toLowerCase(),a=Qr(t.priority),d=Na(t.status,r),c=t.assignee?.trim(),l=Pa(t.assigneeFilter),u=t.sprint?.trim(),f=t.release?.trim();if(c&&(c.toLowerCase()==="none"||c.toLowerCase()==="null"))throw new p('--assignee no longer accepts "none" or "null". Use --assignee-filter unassigned.',m.USAGE);if(c!==void 0&&l==="unassigned")throw new p("Cannot combine --assignee with --assignee-filter unassigned",m.USAGE);return e.filter(h=>sc(h,{typeFilter:i,tagFilter:s,priorityFilter:a,statusFilter:d,assigneeFilter:c,assigneeModeFilter:l,sprintFilter:u,releaseFilter:f,runtimeFieldFilters:o}))}function sc(e,t){return ac(e,t)&&cc(e,t)&&et(e,t.runtimeFieldFilters)}function ac(e,t){return!(t.typeFilter&&e.type!==t.typeFilter||t.tagFilter&&!e.tags.some(n=>n.trim().toLowerCase()===t.tagFilter)||t.priorityFilter!==void 0&&e.priority!==t.priorityFilter||t.statusFilter&&e.status!==t.statusFilter)}function cc(e,t){return!(t.assigneeModeFilter==="assigned"&&!e.assignee||t.assigneeModeFilter==="unassigned"&&e.assignee||t.assigneeFilter!==void 0&&e.assignee!==t.assigneeFilter||t.sprintFilter!==void 0&&e.sprint!==t.sprintFilter||t.releaseFilter!==void 0&&e.release!==t.releaseFilter)}function dc(e,t,n){return!(t&&E(e.at,t)<0||n&&E(e.at,n)>=0)}function en(e,t,n){return e.trim().toLowerCase()==="today"?rn(t):G(e,new Date(t),n)}function lc(e,t,n){let r=t.date?en(t.date,n,"--date"):n,o=t.past===!0,i=t.fullPeriod===!0,s=t.from?en(t.from,n,"--from"):void 0,a=t.to?en(t.to,n,"--to"):void 0;if(s&&a&&E(s,a)>=0)throw new p("Calendar --from must be before --to",m.USAGE);if(e!=="agenda"&&(t.from!==void 0||t.to!==void 0))throw new p("--from and --to are only supported for --view agenda",m.USAGE);if(e==="agenda")return uc(r,t,n,o,i,s,a);if(e==="day"){let c=rn(r);return tn(r,n,o,i,c,K(c,1))}if(e==="week"){let c=Wo(r);return tn(r,n,o,i,c,K(c,7))}let d=ja(r);return tn(r,n,o,i,d,Ua(r))}function uc(e,t,n,r,o,i,s){if(o)throw new p("--full-period is only supported for --view day|week|month. For agenda windows, use --from and --to.",m.USAGE);return{anchor:e,start:i??(t.date?e:r?void 0:n),end:s,fullPeriod:!1}}function tn(e,t,n,r,o,i){let s=n||r;return{anchor:e,start:s?o:Ha(o,t),end:i,periodStart:o,periodEnd:i,fullPeriod:s}}function fc(e){let t=new Map;for(let n of e){let r=t.get(n.date)??[];r.push(n),t.set(n.date,r)}return[...t.entries()].sort(([n],[r])=>n.localeCompare(r)).map(([n,r])=>({date:n,count:r.length,events:zo(r)}))}function mc(e){let t=new Set,n=new Map,r=new Map,o=0,i=0,s=0,a=0;for(let d of e)t.add(d.item_id),jo(n,d.item_type),jo(r,d.item_status),d.kind==="deadline"?o+=1:d.kind==="reminder"?i+=1:(s+=1,d.event_recurring===!0&&(a+=1));return{events:e.length,items:t.size,deadlines:o,reminders:i,scheduled:s,by_kind:{deadline:o,reminder:i,event:s},by_type:Po(n),by_status:Po(r),recurring_events:a}}function pc(e){let t=e.start??"unbounded",n=e.end??"unbounded";return`${t} -> ${n}`}function Ko(e,t){if(t&&t!=="UTC")try{let n=new Intl.DateTimeFormat("en-GB",{timeZone:t,hour:"2-digit",minute:"2-digit",hourCycle:"h23"}).formatToParts(new Date(e)),r=n.find(i=>i.type==="hour")?.value,o=n.find(i=>i.type==="minute")?.value;if(r&&o)return`${r}:${o}`}catch{}return`${new Date(e).toISOString().slice(11,16)}Z`}function nn(e){let t=Object.entries(e);return t.length===0?"empty":t.map(([n,r])=>`${n}=${r}`).join(", ")}function hc(e){return e.event_end?e.event_all_day===!0?e.event_end.slice(0,10):e.date===Go(e.event_end,e.event_timezone)?Ko(e.event_end,e.event_timezone):e.event_end:null}function gc(e){let t=`${Ko(e.at,e.event_timezone)} [${e.kind}] ${e.item_id} type=${e.item_type} p${e.item_priority} ${e.item_status} ${e.item_title}`;if(e.kind==="reminder"){let n=e.reminder_text??"";return`${t} \u2014 ${n} reminder=${JSON.stringify(n)}`}if(e.kind==="event"){let n=[],r=e.event_title??e.item_title;e.event_title!==null&&e.event_title!==e.item_title&&(n.push(r),n.push(`title=${JSON.stringify(r)}`)),e.event_recurring&&(n.push("(recurring)"),n.push("recurring=true"));let i=hc(e);return i&&n.push(`end=${i}`),e.event_all_day!==null&&n.push(`all_day=${e.event_all_day?"true":"false"}`),e.event_timezone&&n.push(`timezone=${e.event_timezone}`),e.event_location&&(n.push(`@ ${e.event_location}`),n.push(`location=${JSON.stringify(e.event_location)}`)),e.event_recurrence_rule&&n.push(`recurrence=${e.event_recurrence_rule}`),e.reminder_text&&n.push(`description=${JSON.stringify(e.reminder_text)}`),`${t} \u2014 ${n.join(" ")}`}return t}function jm(e){let t=[];if(t.push(`# pm calendar (${e.view})`),t.push(""),t.push(`- now: ${e.now}`),t.push(`- window: ${pc(e.range)}`),e.range.period_start&&e.range.period_end&&(t.push(`- period: ${e.range.period_start} -> ${e.range.period_end}`),t.push(`- period-mode: ${e.range.full_period?"full-period":"active-window"}`)),t.push(`- events: ${e.summary.events} (deadlines: ${e.summary.deadlines}, reminders: ${e.summary.reminders}, scheduled: ${e.summary.scheduled})`),t.push(`- items: ${e.summary.items}`),t.push(`- by-kind: ${nn(e.summary.by_kind)}`),t.push(`- by-type: ${nn(e.summary.by_type)}`),t.push(`- by-status: ${nn(e.summary.by_status)}`),t.push(`- recurring-events: ${e.summary.recurring_events}`),t.push(""),e.events.length===0)return t.push("No calendar events matched the selected filters."),t.join(`
2
+ `);for(let n of e.days){t.push(`## ${n.date} (${n.count})`);for(let r of n.events)t.push(`- ${gc(r)}`);t.push("")}if(e.warnings&&e.warnings.length>0){t.push("### warnings");for(let n of e.warnings)t.push(`- ${n}`);t.push("")}return _c(t.join(`
3
+ `))}function Um(e){return Aa(e)}function _c(e){let t=e.length;for(;t>0&&e[t-1]===`
4
+ `;)t-=1;return e.slice(0,t)}function yc(e){let t=O(),n=Oa(e.view),r=lc(n,e,t),o=B(e.limit),i=$a(e.include),s=Zt(e.recurrenceLookaheadDays,"Calendar recurrence lookahead days"),a=Zt(e.recurrenceLookbackDays,"Calendar recurrence lookback days"),d=Zt(e.occurrenceLimit,"Calendar occurrence limit");if(d!==void 0&&d<1)throw new p("Calendar occurrence limit must be >= 1",m.USAGE);let c=i.has("events")&&!i.has("deadlines")&&!i.has("reminders"),l=e.to!==void 0||s!==void 0||a!==void 0||d!==void 0,u=c&&!l;return{nowValue:t,view:n,rangeBounds:r,limit:o,includeSources:i,occurrenceLimit:d,recurrenceLookaheadDays:u?Uo:s,recurrenceLookbackWindowDays:u&&a===void 0?0:a,eventsOnlyCapApplied:u}}function vc(e,t){t&&e.push(`recurring_events_default_cap_applied:lookback=0d,lookahead=${Uo}d -- use --recurrence-lookback-days/--recurrence-lookahead-days or --to for wider range`)}function wc(e,t){return{type:e.type??null,tag:e.tag??null,priority:e.priority??null,status:e.status??null,assignee:e.assignee??null,assignee_filter:e.assigneeFilter??null,sprint:e.sprint??null,release:e.release??null,runtime_filters:t,limit:e.limit??null,include:e.include??null,full_period:e.fullPeriod===!0?"true":null,recurrence_lookahead_days:e.recurrenceLookaheadDays??null,recurrence_lookback_days:e.recurrenceLookbackDays??null,occurrence_limit:e.occurrenceLimit??null}}function bc(e,t){return{start:t.start??null,end:t.end??null,period_start:t.periodStart??null,period_end:t.periodEnd??null,full_period:t.fullPeriod,past:e.past===!0,from:e.from??null,to:e.to??null}}async function Vo(e,t){let n=C(process.cwd(),t.path);await j(n);let r=yc(e),o=await M(n),i=P(o.schema),s=Y(o.schema),a=Ze(e,s,"calendar"),d=F(o,x()),c=[];vc(c,r.eventsOnlyCapApplied);let l=await ue(n,o.item_format,d.type_to_folder,c,o.schema),u=ic(l,e,d,i,a),f=qa(r.rangeBounds.start,r.rangeBounds.end,r.nowValue,r.recurrenceLookbackWindowDays,r.recurrenceLookaheadDays),_=oc(u,f,r.includeSources,r.occurrenceLimit).filter(k=>dc(k,r.rangeBounds.start,r.rangeBounds.end)),y=r.limit===void 0?_:_.slice(0,r.limit),g=fc(y),v=[...new Set(c)].sort((k,w)=>k.localeCompare(w));return{view:r.view,output_default:"markdown",now:r.nowValue,anchor:r.rangeBounds.anchor,range:bc(e,r.rangeBounds),filters:wc(e,a),summary:mc(y),events:y,days:g,...v.length>0?{warnings:v}:{}}}(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]="9a4301eb-d8a5-52c0-8bf0-f65b3b9a96a3")}catch{}})();var Yo="1970-01-01T00:00:00.000Z";function Ce(e){if(typeof e!="string")return null;let t=e.trim();if(!ur(t)&&!/^\d{4}-\d{2}-\d{2}$/u.test(t))return null;try{return G(t,new Date(Number.NaN),"context signal recency coordinate")}catch{return null}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="dffb5f26-d8b4-5861-a7ea-0436bd4a22a6")}catch{}})();var sn=["structural","recency","activity_density","graph_proximity","claim_focus","priority_pressure","risk_pressure","deadline_pressure","knowledge_density","author_affinity","usage_affinity","semantic_similarity"],kc=Symbol("no-context-author"),Sc=Symbol("no-item-assignee");function Xo(e,t){if(typeof e!="string")return t;let n=e.trim().toLowerCase();return n.length>0?n:t}function Ec(e){if(typeof e!="string")return;let t=/^v?(\d{4})\.(\d{1,2})\.(\d{1,2})(?:$|[-+])/u.exec(e.trim());if(!t)return;let n=Number(t[1]),r=Number(t[2]),o=Number(t[3]),i=new Date(Date.UTC(n,r-1,o));return i.getUTCFullYear()===n&&i.getUTCMonth()===r-1&&i.getUTCDate()===o?i.toISOString():void 0}function Cc(e){let t=Ec(e.release);return t!==void 0?{source:"release_cohort",coordinate:t}:{source:"created_at",coordinate:Ce(e.created_at)??Yo}}function xc(e){if(!["substantive_history","release_cohort","created_at"].includes(e.source)||(e.source==="substantive_history"?e.history_op!==void 0&&typeof e.history_op!="string"||e.event_class!==void 0&&e.event_class!=="substantive":e.history_op!==void 0||e.event_class!==void 0))throw new TypeError("Context signal recency provenance must match its source");let t=Ce(e.coordinate);if(t===null)throw new TypeError("Context signal recency coordinate must be a valid absolute timestamp with millisecond precision");return{...e,coordinate:t}}function Tc(e,t){let n=typeof e=="number"?e:typeof e=="string"?Number.parseFloat(e):Number.NaN;return Number.isFinite(n)?1-Math.min(Math.max(n,0),t)/t:0}function Ic(e,t){let n=typeof e=="string"?Date.parse(e):e instanceof Date?e.getTime():typeof e=="number"?e:Number.NaN;if(!Number.isFinite(n)||!Number.isFinite(t))return 0;let r=(n-t)/864e5;return r<=0?1:1/(1+r/30)}function Ac(e){let t=typeof e=="string"?e.trim().toLowerCase():void 0;return t==="critical"||t==="high"?1:t==="medium"?.5:t==="low"?.1:0}function ut(e,t,n){return e?.[t]??n}function ft(e,t){let n=new Map(e.map(c=>{let l=t.recencyEvidence?.[c.id];return[c.id,l===void 0?Cc(c):xc(l)]})),r=[...e].sort((c,l)=>{let u=n.get(c.id).coordinate,f=n.get(l.id).coordinate;return E(f,u)||c.id.localeCompare(l.id)}),o=new Map(r.map((c,l)=>[c.id,l])),i=Math.max(e.length-1,1),s=Xo(t.author,kc),a=N("in_progress",t.statusRegistry),d=Date.parse(t.now);return e.map(c=>{let l=Xo(c.assignee,Sc)===s,u=(c.comments?.length??0)+(c.notes?.length??0)+(c.learnings?.length??0);return{id:c.id,item:c,signal_provenance:{recency:n.get(c.id)},signals:{recency:e.length===1?1:1-o.get(c.id)/i,activity_density:t.activityDensity?.[c.id],graph_proximity:ut(t.graphProximity,c.id,c.parent?.3:0),claim_focus:ut(t.claimFocus,c.id,R(c.status,t.statusRegistry)===a?1:l?.75:0),priority_pressure:Tc(c.priority,4),risk_pressure:Ac(c.risk),deadline_pressure:Ic(c.deadline,d),knowledge_density:ut(t.knowledgeDensity,c.id,Math.min(u/5,1)),author_affinity:ut(t.authorAffinity,c.id,l?1:0),usage_affinity:t.usageAffinity?.[c.id],semantic_similarity:t.semanticSimilarity?.[c.id]}}})}var Rc="context_relevance",Fc={structural:.4,recency:.35,activity_density:.25,graph_proximity:.15,claim_focus:.6,priority_pressure:.35,risk_pressure:.2,deadline_pressure:.45,knowledge_density:.25,author_affinity:.2,usage_affinity:.3,semantic_similarity:.5},Mc=new TextEncoder;function Dc(e){let t=new Set;for(let n of e){if(typeof n.id!="string"||n.id.trim().length===0||t.has(n.id))throw new TypeError("Context relevance candidates require unique non-empty ids");t.add(n.id);for(let[r,o]of Object.entries(n.signals??{})){if(r==="structural"||!sn.includes(r))throw new TypeError(`Unknown context relevance signal: ${r}`);if(o!==void 0&&(!Number.isFinite(o)||o<0||o>1))throw new TypeError(`Context relevance signal ${r} must be a finite number from 0 to 1`)}}}function $c(e){let t={...Fc};for(let[n,r]of Object.entries(e??{}))r!==void 0&&sn.includes(n)&&(t[n]=r);for(let[n,r]of Object.entries(t))if(!Number.isFinite(r)||r<0)throw new TypeError(`Context relevance weight ${n} must be a finite non-negative number`);return t}function Jo(e,t={}){Dc(e);let n=$c(t.weights),r=Math.max(e.length-1,1),o=new Set(["structural"]);for(let a of e)for(let[d,c]of Object.entries(a.signals??{}))c!==void 0&&o.add(d);let i=sn.filter(a=>o.has(a)),s=e.map((a,d)=>{let c={structural:e.length===1?1:1-d/r,...a.signals},l={},u=0,f=0;for(let h of i){let _=c[h];if(_===void 0)continue;let y=_*n[h];l[h]=y,u+=y,f+=n[h]}return{...a,baseline_rank:d+1,rank:0,score:f===0?0:u/f,contributions:l}});return s.sort((a,d)=>d.score-a.score||a.baseline_rank-d.baseline_rank),s.forEach((a,d)=>{a.rank=d+1}),{model:"default-weighted-v1",available_signals:i,ranked:s}}async function Oc(e,t={}){let n=Jo(e,t);if(!t.scorer)return n;let r=await t.scorer({candidates:e,default_report:n}),o=new Map;for(let s of r){if(o.has(s.id)||!Number.isFinite(s.score))throw new TypeError("Context relevance scorer must return one finite score for every candidate");o.set(s.id,s.score)}if(o.size!==e.length||e.some(s=>!o.has(s.id)))throw new TypeError("Context relevance scorer must return one finite score for every candidate");let i=n.ranked.map(s=>{let a=o.get(s.id);return{...s,score:a,contributions:{custom:a}}});return i.sort((s,a)=>a.score-s.score||s.baseline_rank-a.baseline_rank),i.forEach((s,a)=>{s.rank=a+1}),{model:"custom",available_signals:n.available_signals,ranked:i}}async function mt(e,t,n={}){let r=Jo(t,n),o=await lr(Rc,{surface:e,candidates:t,default_report:r});if(!o.handled)return o.warnings.length>0?{...r,warnings:o.warnings}:r;if(!Array.isArray(o.result)||!o.result.every(i=>typeof i=="object"&&i!==null&&typeof i.id=="string"&&typeof i.score=="number"&&Number.isFinite(i.score)))return{...r,warnings:[...o.warnings,"extension_context_relevance_invalid_result"]};try{let i=await Oc(t,{...n,scorer:()=>o.result});return o.warnings.length>0?{...i,warnings:o.warnings}:i}catch{return{...r,warnings:[...o.warnings,"extension_context_relevance_invalid_result"]}}}var Lc=["ndcg","reciprocal_rank","required_recall","continuity_coverage","token_budget_adherence"];function Qo(e,t){return e.length===0?1:e.filter(n=>t.has(n)).length/e.length}function Nc(e){if(!Number.isFinite(e.actual_tokens)||e.actual_tokens<0||!Number.isFinite(e.token_budget)||e.token_budget<=0)throw new TypeError("Context ranking token counts require actual_tokens >= 0 and token_budget > 0");let t=e.judgments??{},n=e.ranked_ids.map(c=>Math.max(0,t[c]??0)),r=Object.values(t).map(c=>Math.max(0,c)).sort((c,l)=>l-c).slice(0,n.length||1),o=c=>c.reduce((l,u,f)=>l+(2**u-1)/Math.log2(f+2),0),i=o(r),s=n.findIndex(c=>c>0),a=new Set(e.ranked_ids),d=e.actual_tokens<=e.token_budget;return{ndcg:i===0?1:o(n)/i,reciprocal_rank:s<0?0:1/(s+1),required_recall:Qo(e.required_ids??[],a),continuity_coverage:Qo(e.continuity_ids??[],a),token_budget_adherence:d?1:e.token_budget/e.actual_tokens,within_token_budget:d}}function Pc(e){return Math.ceil(Mc.encode(JSON.stringify(e)).byteLength/4)}function jc(e){return Math.round(e*1e4)/1e4}function Uc(e,t){let n=t==="context"?[...e.high_level??[],...e.low_level??[],...e.blocked_fallback??[]].map(i=>i.id):[...e.recommended?[e.recommended]:[],...e.ready??[]].map(i=>i.id),r=new Set(n),o=(e.ranking?.items??[]).filter(i=>r.has(i.id)).map(i=>({id:i.id,contributions:i.contributions}));return{rankedIds:n,attribution:o}}async function Hc(e,t){if(e.id.trim().length===0||e.rationale.trim().length===0)throw new TypeError("Context evaluation scenarios require non-empty id and rationale values");let n=e.surface==="context"?await t.context({...e.options,explainRanking:!0,outputBudget:"unbounded"}):await t.next({...e.options,explainRanking:!0,outputBudget:"unbounded"}),{rankedIds:r,attribution:o}=Uc(n,e.surface),i={...n,ranking:void 0},s=Pc(i);return{id:e.id,surface:e.surface,rationale:e.rationale,ranked_ids:r,actual_tokens:s,metrics:Nc({ranked_ids:r,judgments:e.judgments,required_ids:e.required_ids,continuity_ids:e.continuity_ids,actual_tokens:s,token_budget:e.token_budget}),attribution:o}}function Gc(e,t){if(e.length===0)throw new TypeError("Context evaluation requires at least one scenario report");let n=Lc;for(let i of n)if(!Number.isFinite(t[i]))throw new TypeError(`Context evaluation threshold ${i} must be a finite number`);let r=Object.fromEntries(n.map(i=>[i,jc(e.reduce((s,a)=>s+a.metrics[i],0)/e.length)])),o=n.filter(i=>r[i]<t[i]).map(i=>`${i}:${r[i]}<${t[i]}`);return{scenario_count:e.length,aggregate:r,scenarios:[...e],passed:o.length===0,failures:o}}async function Vm(e,t,n){let r=[];for(let o of e)r.push(await Hc(o,t));return Gc(r,n)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="a533ce49-ef4f-50a0-9785-acd716999b29")}catch{}})();var Wc={balanced:{redundancyPenalty:.35,uncertaintyPenalty:.2},context:{redundancyPenalty:.45,uncertaintyPenalty:.15},next:{redundancyPenalty:.25,uncertaintyPenalty:.3}},Bc=["identity","summary","full"];function qc(e){if(!e.id.trim()||!Number.isInteger(e.rank)||e.rank<1)throw new TypeError("Context packing candidates require a non-empty id and positive integer rank");if(!Number.isFinite(e.score)||e.score<0)throw new TypeError("Context packing candidate scores must be finite and non-negative");let t=Bc.map(n=>e.token_costs[n]);if(t.some(n=>!Number.isInteger(n)||n<1)||t[0]>t[1]||t[1]>t[2])throw new TypeError("Context projection costs must be positive monotone integers");if(e.uncertainty!==void 0&&(!Number.isFinite(e.uncertainty)||e.uncertainty<0))throw new TypeError("Context packing uncertainty must be finite and non-negative")}function zc(e){if(!Number.isInteger(e.tokenBudget)||e.tokenBudget<1)throw new TypeError("Context packing tokenBudget must be a positive integer");let t=e.profile??"balanced",n=Wc[t];if(!n)throw new TypeError("Unknown context packing profile");let r=e.redundancyPenalty??n.redundancyPenalty,o=e.uncertaintyPenalty??n.uncertaintyPenalty;if(!Number.isFinite(r)||r<0||r>1||!Number.isFinite(o)||o<0)throw new TypeError("Context packing penalties must be finite and within their supported ranges");if(e.latencyBudgetMs!==void 0&&(!Number.isFinite(e.latencyBudgetMs)||e.latencyBudgetMs<=0))throw new TypeError("Context packing latencyBudgetMs must be positive");return{redundancy:r,uncertainty:o,profile:t}}function Kc(e){let t=new Set;for(let n of e){if(qc(n),t.has(n.id))throw new TypeError("Context packing candidates require unique ids");t.add(n.id)}return[...e].sort((n,r)=>n.rank-r.rank||n.id.localeCompare(r.id))}function Vc(e,t,n,r,o){let i=-1,s=0;for(let a=0;a<e.length;a+=1){if(a%128===0&&o()>=r)return{index:i,evaluated:s,timedOut:!0};let d=e[a];if(d.token_costs.identity>t)continue;s+=1;let c=i<0?void 0:e[i],l=n(d)/d.token_costs.identity,u=c===void 0?Number.NEGATIVE_INFINITY:n(c)/c.token_costs.identity;(l>u||l===u&&c!==void 0&&(d.rank<c.rank||d.rank===c.rank&&d.id.localeCompare(c.id)<0))&&(i=a)}return{index:i,evaluated:s,timedOut:!1}}function Yc(e){let t=new Set,n=[],r=e.tokenBudget,o=c=>{let l=c.lineage??c.cluster,u=l&&t.has(l)?1-e.redundancyPenalty:1;return Math.max(0,(c.score-e.uncertaintyPenalty*(c.uncertainty??0))*u)},i=c=>{let l=c.token_costs.identity;n.push({...c,projection:"identity",tokens:l,marginal_value:o(c)}),r-=l;let u=c.lineage??c.cluster;u&&t.add(u)};for(let c of e.ordered.filter(l=>l.required))c.token_costs.identity<=r&&i(c);let s=e.ordered.filter(c=>!c.required),a=!0,d=0;for(;s.length>0;){let c=Vc(s,r,o,e.deadline,e.readClock);if(d+=c.evaluated,c.timedOut&&(a=!1),c.index<0||c.timedOut)break;i(s.splice(c.index,1)[0])}return{included:n,remaining:r,selectionComplete:a,evaluatedCandidates:d}}function Xc(e,t){let n=t;for(let r of["summary","full"]){let o=r==="summary"?"identity":"summary",i=[...e].sort((s,a)=>{let d=s.token_costs[r]-s.token_costs[o],c=a.token_costs[r]-a.token_costs[o];return a.marginal_value/Math.max(c,1)-s.marginal_value/Math.max(d,1)||s.rank-a.rank||s.id.localeCompare(a.id)});for(let s of i){if(s.projection!==o)continue;let a=s.token_costs[r]-s.tokens;a>n||(s.projection=r,s.tokens+=a,n-=a)}}return n}function Zo(e,t){let n=zc(t),r=Kc(e),o=t.readClock??performance.now.bind(performance),i=t.latencyBudgetMs===void 0?Number.POSITIVE_INFINITY:o()+t.latencyBudgetMs,s=Yc({ordered:r,tokenBudget:t.tokenBudget,redundancyPenalty:n.redundancy,uncertaintyPenalty:n.uncertainty,deadline:i,readClock:o}),{included:a}=s,d=Xc(a,s.remaining);a.sort((l,u)=>l.rank-u.rank||l.id.localeCompare(u.id));let c=new Set(a.map(l=>l.id));return{included:a,omitted_ids:r.filter(l=>!c.has(l.id)).map(l=>l.id),token_budget:t.tokenBudget,used_tokens:t.tokenBudget-d,remaining_tokens:d,complete:s.selectionComplete&&a.length===e.length&&a.every(l=>l.projection==="full"),selection_complete:s.selectionComplete,termination_reason:s.selectionComplete?"exhausted":"latency_budget",evaluated_candidates:s.evaluatedCandidates,latency_budget_ms:t.latencyBudgetMs??null,profile:n.profile,degradation_ladder:["full","summary","identity"]}}import xe from"node:fs/promises";import Te from"node:path";import{createHash as ei,randomUUID as Qc}from"node:crypto";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="190679b7-4723-5c76-be57-2ec88b92b109")}catch{}})();var an=3,cn=2,ti=["recency","activity_density","graph_proximity","priority_pressure","risk_pressure","knowledge_density"],Jc=new Set(["substantive_history","release_cohort","created_at"]),Zc={context_signal_store_invalid:{code:"context_signal_store_invalid",meaning:"The persisted context-signal snapshot was unreadable or invalid and was rebuilt from authoritative items.",recovery_command:"pm context",recovery_effect:"Re-read context and confirm the rebuilt snapshot can be loaded without the warning."},context_signal_store_stale:{code:"context_signal_store_stale",meaning:"The persisted context-signal snapshot did not match the authoritative cursor or item corpus and was rebuilt.",recovery_command:"pm context",recovery_effect:"Re-read context and confirm the rebuilt snapshot is now fresh."},context_signal_store_write_failed:{code:"context_signal_store_write_failed",meaning:"Context signals were rebuilt in memory, but the derived snapshot could not be persisted.",recovery_command:"pm context",recovery_effect:"Retry the derived snapshot write and confirm the warning clears after storage access is restored."}};function pe(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ni(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0&&e<=1}function ed(e){let t={};for(let n of ti){let r=e[n];if(r!==void 0){if(!ni(r))throw new TypeError(`Context relevance signal ${n} must be a finite number from 0 to 1`);t[n]=r}}return t}function td(e,t){let n=e.map(o=>[o.id,t(o)]),r=Math.max(0,...n.map(([,o])=>o));return Object.fromEntries(n.map(([o,i])=>[o,r===0?0:i/r]))}function nd(e){let t=new Map(e.map(o=>[o.id,0])),n=o=>{t.set(o,(t.get(o)??0)+1)};for(let o of e){typeof o.parent=="string"&&o.parent.trim()&&(n(o.id),n(o.parent.trim()));for(let i of o.dependencies??[])typeof i.id!="string"||!i.id.trim()||(n(o.id),n(i.id.trim()))}let r=Math.max(0,...t.values());return Object.fromEntries(e.map(o=>[o.id,r===0?0:t.get(o.id)/r]))}function ri(e,t){return{...t,activityDensity:t.activityDensity??td(e,n=>(n.comments?.length??0)+(n.notes?.length??0)+(n.learnings?.length??0)+(n.test_runs?.length??0)),graphProximity:t.graphProximity??nd(e)}}function un(e){let t=ei("sha256");for(let{id:n,signal_provenance:{recency:r}}of[...e].sort((o,i)=>o.id.localeCompare(i.id)))t.update(JSON.stringify([n,r.source,r.coordinate,r.history_op??null,r.event_class??null]));return`sha256:${t.digest("hex")}`}function rd(e){if(!pe(e))return null;let t=e.signal_provenance;if(![typeof e.id=="string",pe(e.signals),pe(t)].every(Boolean))return null;let n=t.recency;if(!pe(n))return null;let r=Ce(n.coordinate);if(r===null)return null;let o=new Set(ti),i=Object.entries(e.signals);return!i.every(([s,a])=>o.has(s)&&ni(a))||![typeof n.source=="string"&&Jc.has(n.source),["undefined","string"].includes(typeof n.history_op),[void 0,"substantive","maintenance"].includes(n.event_class),n.source==="substantive_history"?n.event_class===void 0||n.event_class==="substantive":n.history_op===void 0&&n.event_class===void 0].every(Boolean)?null:{id:e.id,signals:Object.fromEntries(i),signal_provenance:{recency:{source:n.source,coordinate:r,history_op:n.history_op,event_class:n.event_class}}}}function od(e,t){let n=Array.from(e,rd);if(n.some(o=>o===null))return null;let r=n;return new Set(r.map(o=>o.id)).size!==r.length||r.some(o=>o.id.trim().length===0)||t!==un(r)?null:r.sort((o,i)=>o.id.localeCompare(i.id))}function id(e){if(!pe(e)||e.format_version!==an||e.signal_set_version!==cn||typeof e.source_cursor!="string"||e.source_cursor.trim().length===0||typeof e.recency_evidence_fingerprint!="string"||!/^sha256:[a-f0-9]{64}$/u.test(e.recency_evidence_fingerprint)||typeof e.generated_at!="string"||!Number.isFinite(Date.parse(e.generated_at))||e.source!=="derived_index"&&e.source!=="scan_fallback"||!Array.isArray(e.items))return null;let t=od(e.items,e.recency_evidence_fingerprint);return t===null?null:{format_version:an,signal_set_version:cn,source_cursor:e.source_cursor,recency_evidence_fingerprint:e.recency_evidence_fingerprint,generated_at:e.generated_at,source:e.source,items:t}}function oi(e){if(typeof e.sourceCursor!="string"||e.sourceCursor.trim().length===0)throw new TypeError("Context signal source cursor must be non-empty");if(!Number.isFinite(Date.parse(e.now)))throw new TypeError("Context signal snapshot clock must be a valid timestamp");if(e.source!=="derived_index"&&e.source!=="scan_fallback")throw new TypeError("Context signal snapshot source must be derived_index or scan_fallback")}function ii(e,t,n=un(e)){let r=e.map(({id:i})=>i);if(new Set(r).size!==r.length||r.some(i=>i.trim().length===0))throw new TypeError("Context signal snapshot item IDs must be unique and non-empty");let o=e.map(({id:i,signals:s,signal_provenance:a})=>({id:i,signals:ed(s),signal_provenance:a})).sort((i,s)=>i.id.localeCompare(s.id));return Object.freeze({format_version:an,signal_set_version:cn,source_cursor:t.sourceCursor,recency_evidence_fingerprint:n,generated_at:t.now,source:t.source,items:Object.freeze(o.map(i=>Object.freeze(i)))})}function ip(e,t){return oi(t),ii(ft(e,ri(e,t)),t)}var dn=class{filePath;constructor(t){if(typeof t!="string"||t.trim().length===0)throw new TypeError("Context signal store path must be non-empty");this.filePath=Te.resolve(t)}async read(){try{return JSON.parse(await xe.readFile(this.filePath,"utf8"))}catch(t){if(pe(t)&&He(t))return null;throw t}}async write(t){let n=Te.dirname(this.filePath);await xe.mkdir(n,{recursive:!0});let r=Te.join(n,`.${Te.basename(this.filePath)}.${Qc()}.tmp`);try{await xe.writeFile(r,`${JSON.stringify(t)}
5
+ `,{encoding:"utf8",flag:"wx"}),await xe.rename(r,this.filePath)}finally{try{await xe.rm(r,{force:!0})}catch{}}}},ln=class{adapter;constructor(t){this.adapter=t}async readOrRebuild(t,n){oi(n);let r=[],o=null;try{let f=await this.adapter.read();o=id(f),f!==null&&o===null&&r.push("context_signal_store_invalid")}catch{r.push("context_signal_store_invalid")}let i=t.map(f=>f.id).sort((f,h)=>f.localeCompare(h)),s=o?.items.map(f=>f.id)??[],a=ft(t,ri(t,n)),d=un(a),c=o!==null&&o.source_cursor===n.sourceCursor&&o.recency_evidence_fingerprint===d&&o.source===n.source&&s.length===i.length&&s.every((f,h)=>f===i[h]),l;if(c&&o!==null)l=o;else{o!==null&&r.push("context_signal_store_stale"),l=ii(a,n,d);try{await this.adapter.write(l)}catch{r.push("context_signal_store_write_failed")}}let u=new Map(l.items.map(f=>[f.id,f]));return{snapshot:l,candidates:a.map(f=>({...f,signals:{...f.signals,...u.get(f.id)?.signals},signal_provenance:u.get(f.id).signal_provenance})),cache_status:c?"fresh":"rebuilt",warnings:r,warning_details:r.map(f=>Zc[f])}}};function sd(e){let t=ei("sha256");for(let n of[...e].sort((r,o)=>r.id.localeCompare(o.id)))t.update(JSON.stringify([n.id,n.updated_at,n.status,n.parent??null,n.priority??null,n.risk??null,(n.dependencies??[]).map(r=>r.id).sort(),n.comments?.length??0,n.notes?.length??0,n.learnings?.length??0,n.test_runs?.length??0]));return`scan:${t.digest("hex")}`}async function pt(e,t){let n=t.sourceCursor!==void 0,r=t.source!==void 0;if(n!==r)throw new TypeError("Context signal source and source cursor must be provided together");if(t.storeKey!==void 0&&!/^[a-z0-9](?:[a-z0-9_-]*[a-z0-9])?$/u.test(t.storeKey))throw new TypeError("Context signal store key must be a filesystem-safe identifier");let o=n?null:await Qe(t.pmRoot),i=t.sourceCursor??o?.source_cursor??sd(e),s=t.source??(o===null?"scan_fallback":"derived_index"),a=new ln(new dn(Te.join(t.pmRoot,"runtime",t.storeKey?`context-signals-${t.storeKey}.json`:"context-signals.json"))),d=t.recencyEvidence??Object.fromEntries(Object.entries(await br(t.pmRoot,e.map(c=>c.id))).map(([c,l])=>[c,{source:"substantive_history",coordinate:l.entry.ts,history_op:l.entry.op,event_class:"substantive"}]));return a.readOrRebuild(e,{...t,recencyEvidence:d,sourceCursor:i,source:s})}import ad from"node:path";import{createHash as cd}from"node:crypto";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ee5f5c8d-37f9-577d-87a7-bb43be7c1186")}catch{}})();function si(e){return e.completed_at!==void 0?{resolved:!0,timestamp:e.completed_at,source:"completed_at",fallback:!1}:e.closed_at!==void 0?{resolved:!0,timestamp:e.closed_at,source:"closed_at",fallback:!0}:e.updated_at!==void 0?{resolved:!0,timestamp:e.updated_at,source:"updated_at",fallback:!0}:{resolved:!1}}import dd 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]="51bac04a-5a6e-53b3-806f-fa0bf6f8e7b4")}catch{}})();var ai=1,ld=1e4,ci=12;function ud(e){let t=new Date(e);return`${t.getUTCFullYear()}-Q${Math.floor(t.getUTCMonth()/3)+1}`}function fd(e,t){let n=new Set,r=e.parent;for(;r&&!n.has(r);){n.add(r);let o=t.get(r);if(!o)return;if(o.type.toLowerCase()==="epic")return o;r=o.parent}}function md(e){let t=[...e.items].sort((o,i)=>i.completion.timestamp.localeCompare(o.completion.timestamp)||o.item.id.localeCompare(i.item.id)),n=new Set,r=0;for(let{item:o}of t){let i=o.resolution??o.close_reason;i?.trim()&&n.add(i.trim()),r+=(o.notes?.length??0)+(o.learnings?.length??0)}return{kind:e.kind,key:e.key,label:e.label,item_count:t.length,first_closed_at:t.at(-1).completion.timestamp,last_closed_at:t[0].completion.timestamp,representative_items:t.slice(0,5).map(({item:{id:o,title:i}})=>({id:o,title:i})),outcomes:[...n].sort().slice(0,5),knowledge_entries:r}}function pd(e,t){if(!t.sourceCursor.trim())throw new TypeError("Workspace memory source cursor must be non-empty");if(!Number.isFinite(Date.parse(t.now)))throw new TypeError("Workspace memory clock must be a valid timestamp");let n=e.filter(i=>t.statusRegistry.terminal_done_statuses.has(R(i.status,t.statusRegistry))).map(i=>{let s=si(i);if(!s.resolved)throw new TypeError(`Completed item ${i.id} has no reporting timestamp`);return{item:i,completion:s}}),r=new Map(e.map(i=>[i.id,i])),o=new Map;for(let i of n){let{item:s,completion:a}=i,d=ud(a.timestamp),c=`epoch:${d}`,l=o.get(c)??{kind:"epoch",key:d,label:d,items:[]};l.items.push(i),o.set(c,l);let u=fd(s,r);if(u){let f=`epic:${u.id}`,h=o.get(f)??{kind:"epic",key:u.id,label:u.title,items:[]};h.items.push(i),o.set(f,h)}}return{format_version:ai,source_cursor:t.sourceCursor,source_item_count:e.length,generated_at:t.now,completion_time_sources:n.reduce((i,{completion:s})=>(i[s.source]+=1,i),{completed_at:0,closed_at:0,updated_at:0}),rollups:[...o.values()].map(md).sort((i,s)=>s.last_closed_at.localeCompare(i.last_closed_at)||i.kind.localeCompare(s.kind)||i.key.localeCompare(s.key))}}function hd(e){return typeof e=="object"&&e!==null&&"id"in e&&typeof e.id=="string"&&e.id.length>0&&"title"in e&&typeof e.title=="string"}function gd(e){if(typeof e!="object"||e===null)return!1;let t=e,n=[t.key,t.label].every(o=>typeof o=="string"&&o.length>0),r=[t.first_closed_at,t.last_closed_at].every(o=>typeof o=="string"&&Number.isFinite(Date.parse(o)));return(t.kind==="epoch"||t.kind==="epic")&&n&&Number.isSafeInteger(t.item_count)&&t.item_count>0&&r&&Array.isArray(t.representative_items)&&t.representative_items.every(hd)&&Array.isArray(t.outcomes)&&t.outcomes.every(o=>typeof o=="string")&&Number.isSafeInteger(t.knowledge_entries)&&t.knowledge_entries>=0}function _d(e){if(typeof e!="object"||e===null||Array.isArray(e))return null;let t=e;return t.format_version!==ai||typeof t.source_cursor!="string"||!t.source_cursor.trim()||!Number.isSafeInteger(t.source_item_count)||t.source_item_count<0||typeof t.generated_at!="string"||!Number.isFinite(Date.parse(t.generated_at))||!Array.isArray(t.rollups)?null:t.rollups.every(gd)?t:null}function yd(e){return`scan:${cd("sha256").update(nr(e.map(t=>[t.id,t.updated_at,t.status,t.parent]).sort(([t],[n])=>String(t).localeCompare(String(n))))).digest("hex")}`}async function vd(e,t,n){return n!==void 0?n:(await Qe(t))?.source_cursor??yd(e)}async function wd(e){try{let t=_d(JSON.parse(await dd.readFile(e,"utf8")));return{snapshot:t,invalid:t===null}}catch(t){return{snapshot:null,invalid:!(typeof t=="object"&&t!==null&&"code"in t&&He(t))}}}async function ht(e,t){let n=Math.max(1,Math.floor(t.minimumItems??ld));if(e.length<n)return{snapshot:null,cache_status:"skipped",warnings:[]};let r=await vd(e,t.pmRoot,t.sourceCursor),o=ad.join(t.pmRoot,"runtime","workspace-memory.json"),i=[],s=await wd(o),a=s.snapshot;if(s.invalid&&i.push("workspace_memory_invalid"),a?.source_cursor===r&&a.source_item_count===e.length)return{snapshot:a,cache_status:"fresh",warnings:i};a&&i.push("workspace_memory_stale");let d=pd(e,{statusRegistry:t.statusRegistry,sourceCursor:r,now:t.now});try{await Jn(o,`${JSON.stringify(d)}
6
+ `)}catch{i.push("workspace_memory_write_failed")}return{snapshot:d,cache_status:"rebuilt",warnings:i}}function bd(e,t,n=ci){let r=Math.max(0,Math.floor(t)),o=0,i=[];for(let s of e.rollups){if(i.length>=Math.max(0,Math.floor(n)))break;let a=Math.ceil(JSON.stringify(s).length/4);o+a>r||(i.push(s),o+=a)}return i}function di(e,t,n=ci){if(e.snapshot===null)return;let r=bd(e.snapshot,t,n);if(r.length!==0)return{cache_status:e.cache_status==="fresh"?"fresh":"rebuilt",source_cursor:e.snapshot.source_cursor,...e.snapshot.completion_time_sources?{completion_time_sources:{...e.snapshot.completion_time_sources}}:{},rollups:r}}function kd(e,t,n=5){if(e===null)return[];let r=t.trim().toLowerCase().split(/\s+/u).filter(Boolean);return r.length===0?[]:e.rollups.map(o=>({rollup:o,score:r.filter(i=>[o.key,o.label,...o.outcomes,...o.representative_items.flatMap(s=>[s.id,s.title])].join(" ").toLowerCase().includes(i)).length})).filter(({score:o})=>o>0).sort((o,i)=>i.score-o.score||i.rollup.last_closed_at.localeCompare(o.rollup.last_closed_at)||o.rollup.key.localeCompare(i.rollup.key)).slice(0,Math.max(0,Math.floor(n))).map(({rollup:o})=>o)}function li(e,t,n=5){let r=kd(e.snapshot,t,n);if(r.length!==0)return{cache_status:e.cache_status==="fresh"?"fresh":"rebuilt",matches:r}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="05df81b3-2fbd-5d83-88e3-be300091dd09")}catch{}})();var ui=16;async function fi(e,t,n){let r=F(t,x()).type_to_folder,o=[],i=new Set,s=n;for(;s&&o.length<ui;){let a=s.trim().toLowerCase();if(!a||i.has(a))break;i.add(a);let d=await de(e,s,t.id_prefix,t.item_format,r);if(!d)break;let c=await le(d,{schema:t.schema});o.push(c.document.metadata.id),s=c.document.metadata.parent}return o}async function bp(e){await gr({pmRoot:e.pmRoot,principal:e.principal,itemId:e.itemId,lineageIds:await fi(e.pmRoot,e.settings,e.itemId)})}async function kp(e){await _r(e)}async function Sp(e){await yr({pmRoot:e.pmRoot,principal:e.principal,...e.itemId?{itemId:e.itemId,lineageIds:await fi(e.pmRoot,e.settings,e.itemId)}:{}})}var Ep={lineage_depth:ui,active_items:64,evidence_rows:32};function mi(e){if(!e)return;let t={};for(let n of e.active_item_ids)t[n]=1;e.focused_item_id&&(t[e.focused_item_id]=1);for(let n of e.evidence){let r=/^lineage:(.+)$/u.exec(n)?.[1];r&&t[r]===void 0&&(t[r]=.75)}return Object.keys(t).length>0?t:void 0}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ec0faae4-1fdb-5c7c-bcf1-eb338d73958a")}catch{}})();var Sd=["markdown","toon","json","ndjson"],gt=new Set(["Epic","Feature"]),yi=10,vi=1e4,wi=["hierarchy","activity","progress","recently_created","unparented","workload"],Ed=[...wi,"blockers","files","staleness","tests"],Cd=/^(\d{4})-(\d{2})-(\d{2})/,xd=/^(\d{4})(\d{2})(\d{2})(?:[T ]?\d{2}|$)/,Td=/^(\d{4})(\d{2})(\d{2})$/,Id=/^(\d{4})(\d{2})(\d{2})(?:[T\s]?)(\d{2})(\d{2})(\d{2})?(Z|[+-]\d{2}:?\d{2})?$/i;function Ad(e){if(!e)return;let t=e.trim().toLowerCase();if(!Sd.includes(t))throw new p("Context format must be one of markdown|toon|json|ndjson",m.USAGE);return t}var pi=new Set(["id","title","type","status","priority","order","deadline","assignee","tags","tags_inherited","updated_at","parent","children_total","children_closed","completion_pct","blocked","blocker_ids","created_at"]);function Rd(e){if(e===void 0)return;let t=[];for(let n of e.split(",")){let r=n.trim().toLowerCase();if(r.length!==0){if(!pi.has(r))throw new p(`Context --fields value not projectable: ${r} (valid: ${[...pi].join(", ")})`,m.USAGE);t.includes(r)||t.push(r)}}if(t.length===0)throw new p("Context --fields requires at least one field name",m.USAGE);return t}function Ie(e,t){return e.map(n=>{let r={},o=n;for(let i of t)r[i]=o[i]??null;return r})}function qp(e,t){let n=Ad(e.format);if(t.json&&n&&n!=="json"&&n!=="ndjson")throw new p("Cannot combine --json with --format markdown|toon",m.USAGE);return t.json?n==="ndjson"?"ndjson":"json":n??"toon"}function Fd(e,t){return B(e,"--limit")??(t==="full"?Number.MAX_SAFE_INTEGER:yi)}function pn(e,t){if(e===void 0)return t;let n=typeof e=="number"?e:Number(e);if(!Number.isInteger(n)||n<1)throw new p("--token-budget must be a positive integer",m.USAGE);return n}function Md(e,t){return t>=vi&&e===Number.MAX_SAFE_INTEGER?yi:e}function Dd(e,t){if(!e)return t.default_depth;let n=e.trim().toLowerCase();if(!Rt.includes(n))throw new p(`Context --depth must be one of ${Rt.join("|")}`,m.USAGE);return n}function $d(e,t,n){if(e&&e.length>0){let o=[];for(let i of e){let s=i.trim().toLowerCase();if(!Ue.includes(s))throw new p(`Context --section must be one of ${Ue.join("|")}`,m.USAGE);o.includes(s)||o.push(s)}return o}return t==="brief"?[]:t==="full"?[...Ue]:(t==="deep"?Ed:wi).filter(o=>n.sections[o])}function Od(e,t){return e?B(e,"--activity-limit")??t.activity_limit:t.activity_limit}function Ld(e,t){if(!e)return t.stale_threshold_days;let n=e.trim().toLowerCase(),r=/^(\d+)d?$/.exec(n);if(!r)throw new p("--stale-threshold must be a number of days (e.g. 7 or 7d)",m.USAGE);let o=parseInt(r[1],10);if(o<=0)throw new p("--stale-threshold must be positive",m.USAGE);return o}function hi(e,t){let n=R(e,t),r=N("blocked",t),o=N("draft",t);return n===t.in_progress_status?0:t.active_statuses.has(n)?1:r&&n===r?2:o&&n===o?3:t.blocked_statuses.has(n)?5:t.terminal_statuses.has(n)?7:6}function Ae(e,t){let n=N("closed",t);return R(e,t)===n}function hn(e,t){return R(e,t)===t.in_progress_status}function bi(e,t){let n=R(e,t);return n!==t.in_progress_status&&t.active_statuses.has(n)}function Nd(e,t){return t.blocked_statuses.has(R(e,t))}var Pd=["compact","brief","fields","includeBody","include_body","parent"];function jd(e){let t={...e};for(let n of Pd)delete t[n];return t}function gn(e,t){let n=t.trim().toLowerCase(),r=e.find(a=>a.id.trim().toLowerCase()===n);if(!r)return{ids:new Set,found:!1};let o=he(e),i=Re(r.id,o);return{ids:new Set([r.id,...i.map(a=>a.id)].map(a=>a.trim().toLowerCase())),found:!0}}function Ud(e){if(e===void 0)return;let t=e.trim();if(t.length===0)throw new p("Context --parent requires an item id",m.USAGE);return t}function Hd(e,t){let n=e??null,r=t??null;return n===null&&r===null?0:n===null?1:r===null?-1:n-r}function Gd(e,t){let n=e??null,r=t??null;return n===null&&r===null?0:n===null?1:r===null?-1:E(n,r)}function Wd(e,t){return new Date(Date.UTC(e,t+1,0)).getUTCDate()}function Bd(e){let t=Cd.exec(e)??xd.exec(e);if(!t)return!0;let n=Number.parseInt(t[1],10),r=Number.parseInt(t[2],10),o=Number.parseInt(t[3],10);return r>=1&&r<=12&&o>=1&&o<=Wd(n,r-1)}function qd(e){let t=Td.exec(e);if(t)return`${t[1]}-${t[2]}-${t[3]}`;let n=Id.exec(e);if(n){let[,r,o,i,s,a,d,c]=n,l=d?`:${d}`:"",u=c&&c.length===5&&c!=="Z"?`${c.slice(0,3)}:${c.slice(3)}`:c??"";return`${r}-${o}-${i}T${s}:${a}${l}${u}`}return e}function ki(e){if(typeof e!="string")return Number.NaN;let t=e.trim();if(t.length===0||!Bd(t))return Number.NaN;let n=Date.parse(qd(t));return Number.isFinite(n)?n:Number.NaN}function mn(e){let t=ki(e);return Number.isFinite(t)?new Date(t).toISOString():""}function zd(e){let t=ki(e);return Number.isFinite(t)?new Date(t).toISOString().slice(0,10):"unknown"}function _n(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function Z(e,t,n){let r=hi(e.status,n)-hi(t.status,n);if(r!==0)return r;let o=e.priority-t.priority;if(o!==0)return o;let i=Hd(e.order,t.order);if(i!==0)return i;let s=Gd(e.deadline,t.deadline);if(s!==0)return s;let a=E(mn(t.updated_at),mn(e.updated_at)),d=e.id.localeCompare(t.id);return a!==0?a:d}function fn(e){return Math.max(1,Math.ceil(Buffer.byteLength(JSON.stringify(e),"utf8")/4))}function yn(e,t,n=new Set,r="context"){return Zo(e.ranked.map(o=>({id:o.id,item:o.item,rank:o.rank,score:o.score,required:n.has(o.id),cluster:o.item.parent?.trim()||o.item.type,token_costs:{identity:fn({id:o.id,title:o.item.title}),summary:fn({id:o.id,title:o.item.title,type:o.item.type,status:o.item.status,priority:o.item.priority,parent:o.item.parent}),full:fn(o.item)}})),{tokenBudget:t,profile:r,latencyBudgetMs:25})}function vn(e){return{...e,included:e.included.map(t=>({id:t.id,projection:t.projection,tokens:t.tokens}))}}function wn(e,t,n){let r=n===void 0?e.ranked:e.ranked.filter(o=>n.has(o.id));return{model:e.model,available_signals:e.available_signals,items:r.map(o=>({id:o.id,rank:o.rank,baseline_rank:o.baseline_rank,score:o.score,contributions:o.contributions,...o.signal_provenance===void 0?{}:{recency:o.signal_provenance.recency}})),candidate_count:e.ranked.length,omitted_count:e.ranked.length-r.length,...t?{feature_store:{source:t.snapshot.source,cache_status:t.cache_status,source_cursor:t.snapshot.source_cursor,generated_at:t.snapshot.generated_at}}:{}}}function Si(e,t){return t>0?Math.round(e/t*100):0}function he(e){let t=new Map;for(let n of e){let r=_n(n.parent);if(!r)continue;let o=t.get(r)??[];o.push(n),t.set(r,o)}return t}function Fe(e,t,n){let r={id:e.id,title:e.title,type:e.type,status:e.status,priority:e.priority,order:e.order??null,deadline:e.deadline??null,assignee:e.assignee??null,tags:Array.isArray(e.tags)?[...e.tags]:[],updated_at:e.updated_at,parent:_n(e.parent)};if(t&&n){let o=Re(e.id,n),i=o.length;if(i>0){let s=o.filter(a=>Ae(a.status,t)).length;r.children_total=i,r.children_closed=s,r.completion_pct=Si(s,i)}}return r}function Kd(e){let t=0,n=0,r=0,o=new Set;for(let i of e){if(o.add(i.item_id),i.kind==="deadline"){t+=1;continue}if(i.kind==="reminder"){n+=1;continue}r+=1}return{events:e.length,items:o.size,deadlines:t,reminders:n,scheduled:r}}function _t(...e){return[...new Set(e.flatMap(t=>t??[]))].sort((t,n)=>t.localeCompare(n))}function Vd(e,t){return e.filter(n=>!t.terminal_statuses.has(R(n.item_status,t)))}function Yd(e,t,n,r){let o=new Map;for(let d of e)o.set(d.id,d);let i=he(e),s=new Set(t.filter(d=>gt.has(d.type)).map(d=>d.id)),a=[];for(let d of s){let c=o.get(d);if(!c)continue;let l=Re(d,i),u=i.get(d)??[],f=0,h=0,_=0,y=0;for(let v of l)Ae(v.status,n)?f++:hn(v.status,n)?_++:Nd(v.status,n)?y++:bi(v.status,n)&&h++;let g=u.sort((v,k)=>Z(v,k,n)).slice(0,r).map(v=>{let k=Re(v.id,i),w=k.filter(S=>Ae(S.status,n)).length;return{id:v.id,title:v.title,type:v.type,status:v.status,children_total:k.length,children_closed:w}});a.push({id:c.id,title:c.title,type:c.type,status:c.status,children_total:l.length,children_closed:f,children_open:h,children_in_progress:_,children_blocked:y,children:g})}return a.sort((d,c)=>{let l=o.get(d.id),u=o.get(c.id);return Z(l,u,n)}).slice(0,r)}function Re(e,t){let n=[],r=[e],o=new Set;for(;r.length>0;){let i=r.pop();if(o.has(i))continue;o.add(i);let s=t.get(i)??[];for(let a of s)n.push(a),r.push(a.id)}return n}async function Xd(e,t){return(await Co({compact:!0,limit:String(e)},t)).compact_activity??[]}function Qd(e,t,n,r,o){let i=new Map;for(let d of e){if(!d.parent)continue;let c=i.get(d.parent)??[];c.push(d),i.set(d.parent,c)}let s=t.filter(d=>gt.has(d.type)),a=[];for(let d of s){let c=Re(d.id,i),l=c.length;if(l===0)continue;let u=0,f=0,h=0,_=0;for(let y of c)Ae(y.status,r)?u++:n.has(y.id.trim().toLowerCase())?_++:hn(y.status,r)?h++:bi(y.status,r)&&f++;a.push({id:d.id,title:d.title,type:d.type,total:l,closed:u,open:f,in_progress:h,blocked:_,completion_pct:Si(u,l)})}return a.sort((d,c)=>d.completion_pct-c.completion_pct).slice(0,o)}function Jd(e,t,n,r){let o=new Map(t.map(i=>[i.id.trim().toLowerCase(),i]));return e.slice(0,r).map(i=>{let s=Wt(i,o,n),a=s.find(c=>!c.resolved)?.id??s[0]?.id??null,d=a?o.get(a.trim().toLowerCase()):void 0;return{id:i.id,title:i.title,blocked_by:a,blocked_by_title:d?.title??null,blocked_by_status:d?.status??null,blocked_reason:i.blocked_reason??null,unblock_note:i.unblock_note??null}})}function Zd(e,t){let n=new Map;for(let r of e)for(let o of r.files??[]){let i=n.get(o.path)??new Set;i.add(r.id),n.set(o.path,i)}return[...n.entries()].map(([r,o])=>({path:r,references:o.size,items:[...o].sort()})).sort((r,o)=>o.references-r.references).slice(0,t)}function el(e,t,n){let r=new Map;for(let o of e){let i=o.assignee??null,s=r.get(i)??[];s.push(o),r.set(i,s)}return[...r.entries()].map(([o,i])=>({assignee:o,active:i.length,in_progress:i.filter(s=>hn(s.status,t)).length,items:i.map(s=>s.id).sort()})).sort((o,i)=>i.active-o.active).slice(0,n)}function tl(e,t,n,r){let o=new Date(n).getTime()-t*24*60*60*1e3;return e.filter(i=>new Date(i.updated_at).getTime()<o).map(i=>({id:i.id,title:i.title,status:i.status,updated_at:i.updated_at,stale_days:Math.floor((new Date(n).getTime()-new Date(i.updated_at).getTime())/(1440*60*1e3))})).sort((i,s)=>s.stale_days-i.stale_days).slice(0,r)}function nl(e,t,n,r){return e.map(o=>({item:o,sortKey:mn(o.created_at)})).sort((o,i)=>{let s=E(i.sortKey,o.sortKey);return s!==0?s:o.item.id.localeCompare(i.item.id)}).slice(0,r).map(({item:o})=>({...Fe(o,t,n),created_at:o.created_at}))}function rl(e,t,n,r){return e.filter(o=>!_n(o.parent)&&!gt.has(o.type)).sort((o,i)=>Z(o,i,t)).slice(0,r).map(o=>Fe(o,t,n))}function ol(e){let t=0,n=0,r=0,o=0,i=0,s=[];for(let a of e){(a.tests??[]).length>0&&t++;let d=a.test_runs??[];if(d.length>0){n++;let c=!1;for(let l of d)r+=l.passed??0,o+=l.failed??0,i+=l.skipped??0,(l.failed??0)>0&&(c=!0);c&&s.push(a.id)}}return{items_with_tests:t,items_with_recent_runs:n,recent_runs:{passed:r,failed:o,skipped:i},items_failing:s.sort()}}function gi(e){return`${new Date(e).toISOString().slice(11,16)}Z`}function Ei(e){let t=e.order===null?"-":String(e.order),n=e.deadline??"-",r=e.parent?` parent:${e.parent}`:"",o=e.children_total!==void 0&&e.children_closed!==void 0&&e.completion_pct!==void 0?` children:${e.children_closed}/${e.children_total} done:${e.completion_pct}%`:"",i=e.blocked===!0?` blocked:${e.blocker_ids?.join(",")||"lifecycle"}`:"";return`${e.id} p${e.priority} ${e.status} ${e.type} order:${t} deadline:${n}${r}${o}${i} ${e.title}`}function il(e,t){let n=e;return t.map(r=>{let o=n[r];return Array.isArray(o)?`${r}:${o.join(",")}`:`${r}:${o??"-"}`}).join(" ")}function sl(e){if("reference_only"in e){let n=e.kind==="reminder"?` \u2014 ${e.reminder_text??"reminder"}`:e.kind==="event"?` \u2014 ${e.event_title??"event"}${e.event_recurring?" (recurring)":""}`:"";return`${gi(e.at)} [${e.kind}] ${e.item_id} (see focus item)${n}`}let t=`${gi(e.at)} [${e.kind}] ${e.item_id} p${e.item_priority} ${e.item_status} ${e.item_title}`;if(e.kind==="reminder")return`${t} \u2014 ${e.reminder_text}`;if(e.kind==="event"){let n=e.event_recurring?" (recurring)":"",r=e.event_title??e.item_title;return`${t} \u2014 ${r}${n}`}return t}function _i(e,t,n,r,o){if(e.push(`## ${t}`),n.length===0)e.push(r);else for(let i of n)e.push(`- ${o(i)}`);e.push("")}function al(e,t,n){if(t.blocked_fallback.length!==0){e.push("## Blocked fallback");for(let r of t.blocked_fallback)e.push(`- ${n(r)}`);e.push("")}}function cl(e,t){if(e.push("## Agenda"),e.push(`- events: ${t.agenda.summary.events} (deadlines: ${t.agenda.summary.deadlines}, reminders: ${t.agenda.summary.reminders}, scheduled: ${t.agenda.summary.scheduled})`),t.agenda.events.length===0)e.push("No agenda events matched the selected filters.");else for(let n of t.agenda.events)e.push(`- ${sl(n)}`);e.push("")}function dl(e,t){if(!(!t.hierarchy||t.hierarchy.length===0)){e.push("## Hierarchy");for(let n of t.hierarchy){let r=n.children_total>0?Math.round(n.children_closed/n.children_total*100):0;e.push(`- ${n.id} ${n.type} ${n.status} "${n.title}" [${n.children_closed}/${n.children_total} done ${r}%]`);for(let o of n.children){let i=o.children_total>0?Math.round(o.children_closed/o.children_total*100):0;e.push(` - ${o.id} ${o.type} ${o.status} "${o.title}" [${o.children_closed}/${o.children_total} done ${i}%]`)}}e.push("")}}function ll(e,t){if(!(!t.progress||t.progress.length===0)){e.push("## Progress");for(let n of t.progress)e.push(`- ${n.id} "${n.title}" ${n.completion_pct}% (${n.closed}/${n.total} closed, ${n.in_progress} wip, ${n.open} open, ${n.blocked} blocked)`);e.push("")}}function ul(e,t,n,r){if(!(!t.recently_created||t.recently_created.length===0)){e.push("## Recently created");for(let o of t.recently_created)e.push(n?`- ${r(o)}`:`- ${zd(o.created_at)} ${Ei(o)}`);e.push("")}}function fl(e,t,n){if(!(!t.unparented||t.unparented.length===0)){e.push("## Unparented");for(let r of t.unparented)e.push(`- ${n(r)}`);e.push("")}}function ml(e,t){if(!(!t.activity||t.activity.length===0)){e.push("## Recent activity");for(let n of t.activity){let r=n.msg?` ${n.msg}`:"";e.push(`- ${n.ts.slice(0,16)}Z ${n.id} ${n.op} by:${n.author}${r}`)}e.push("")}}function pl(e,t){if(!(!t.blockers||t.blockers.length===0)){e.push("## Blockers");for(let n of t.blockers){let r=n.blocked_by?`blocked_by:${n.blocked_by}(${n.blocked_by_status??"?"})`:"blocked_by:-",o=n.blocked_reason?` reason:"${n.blocked_reason}"`:"",i=n.unblock_note?` unblock:"${n.unblock_note}"`:"";e.push(`- ${n.id} "${n.title}" ${r}${o}${i}`)}e.push("")}}function hl(e,t){if(!(!t.files||t.files.length===0)){e.push("## Hot files");for(let n of t.files)e.push(`- ${n.path} refs:${n.references} items:[${n.items.join(",")}]`);e.push("")}}function gl(e,t){if(!(!t.workload||t.workload.length===0)){e.push("## Workload");for(let n of t.workload){let r=n.assignee??"(unassigned)";e.push(`- ${r} active:${n.active} wip:${n.in_progress} items:[${n.items.join(",")}]`)}e.push("")}}function _l(e,t){if(!(!t.staleness||t.staleness.length===0)){e.push("## Stale items");for(let n of t.staleness)e.push(`- ${n.id} ${n.status} stale:${n.stale_days}d last:${n.updated_at.slice(0,10)} "${n.title}"`);e.push("")}}function yl(e,t){t.tests&&(e.push("## Test health"),e.push(`- items_with_tests: ${t.tests.items_with_tests}`),e.push(`- items_with_recent_runs: ${t.tests.items_with_recent_runs}`),e.push(`- passed: ${t.tests.recent_runs.passed}, failed: ${t.tests.recent_runs.failed}, skipped: ${t.tests.recent_runs.skipped}`),t.tests.items_failing.length>0&&e.push(`- items_failing: [${t.tests.items_failing.join(",")}]`),e.push(""))}function vl(e,t){t.summary.active_items===0&&t.summary.blocked===0&&t.agenda.summary.events===0&&(e.push("## Suggestions"),e.push("No active work items or upcoming events. Consider:"),e.push('- `pm create --type Task --title "..."` to add a new work item'),e.push("- `pm list --status closed --limit 5` to review recent completions"),e.push("- `pm search <keywords>` to find related past work"),e.push("- `pm aggregate` for a full project status overview"))}function zp(e){let t=[],n=e.focus_fields,r=i=>n?il(i,n):Ei(i);if(t.push("# pm context"),t.push(""),t.push(`- now: ${e.now}`),t.push(`- depth: ${e.depth}`),e.filters.parent&&t.push(`- scope: subtree of ${e.filters.parent}`),t.push(`- active_items: ${e.summary.active_items} (in_progress: ${e.summary.in_progress}, open: ${e.summary.open})`),e.summary.total_items!==void 0&&t.push(`- total_items: ${e.summary.total_items} (closed: ${e.summary.closed??0}, canceled: ${e.summary.canceled??0})`),t.push(`- agenda_events: ${e.summary.agenda_events}`),t.push(`- blocked_fallback_used: ${e.summary.blocked_fallback_used}`),e.extension_health){let i=e.extension_health.packages.filter(s=>s.status==="degraded").map(s=>s.name);t.push(`- extensions: ${e.extension_health.ok} ok, ${e.extension_health.degraded} degraded${i.length>0?` (${i.join(", ")})`:""}`)}let o=e.sections_included.filter(i=>i!=="blockers"||(e.blockers?.length??0)>0);if(o.length>0&&t.push(`- sections: ${o.join(", ")}`),t.push(""),_i(t,"High-level focus",e.high_level,"No high-level active items.",r),_i(t,"Low-level focus",e.low_level,"No low-level active items.",r),al(t,e,r),cl(t,e),e.workspace_memory){t.push("## Workspace memory");for(let i of e.workspace_memory.rollups)t.push(`- ${i.kind}:${i.key} \u2014 ${i.label} (${i.item_count} completed, latest ${i.last_closed_at})`);t.push("")}return dl(t,e),ll(t,e),ul(t,e,n,r),fl(t,e,r),ml(t,e),pl(t,e),hl(t,e),gl(t,e),_l(t,e),yl(t,e),vl(t,e),t.join(`
7
+ `)}async function wl(e,t){let n=C(process.cwd(),t.path),r=await M(n),o=r.context??Vn.context,i=P(r.schema),s=Dd(e.depth,o),a=Fd(e.limit??e.maxItems,s);return{settings:r,contextSettings:o,statusRegistry:i,depth:s,limit:a,sectionsIncluded:$d(e.section,s,o),activityLimit:Od(e.activityLimit,o),staleThresholdDays:Ld(e.staleThreshold,o),parentScope:Ud(e.parent),focusFields:Rd(e.fields),baseListOptions:jd(e)}}function bl(e){return e.some(t=>["hierarchy","progress","blockers","staleness","recently_created","unparented"].includes(t))}function kl(e,t){return{...e,...t,noTruncate:!0,limit:void 0,offset:void 0,after:void 0}}async function Sl(e,t){let n=await q(void 0,kl(t.baseListOptions,{excludeTerminal:!1}),e),r=n.items,o=r.filter(a=>!X(a.status,t.statusRegistry)),i=r,s=El(t.parentScope,r);return s&&(o=o.filter(a=>s.has(a.id.trim().toLowerCase())),i=i.filter(a=>s.has(a.id.trim().toLowerCase()))),{listed:n,listedItemMetadata:o,allItems:i,fullCorpus:r,subtreeIds:s}}function El(e,t){if(e===void 0)return;let n=gn(t,e);if(!n.found)throw new p(`Context --parent item not found: ${e}`,m.NOT_FOUND);return n.ids}function Cl(e,t,n,r){let o=new Set(nt(e,t,n,r).containers.map(i=>i.item.id));return new Set(e.filter(i=>gt.has(i.type)||o.has(i.id)||ke(i.type,r)!=="agent").map(i=>i.id))}async function xl(e,t,n,r,o,i,s,a,d,c,l,u,f,h,_,y){let g=[...e].sort((b,se)=>Z(b,se,o)),v=await Ye({pmRoot:f,author:d,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"}),k=await pt(g,{pmRoot:f,storeKey:"context",statusRegistry:o,now:a,author:d,usageAffinity:v.affinity,claimFocus:_}),w=await mt("context",k.candidates),S=w.ranked.map(b=>b.item),Q=o.active_statuses,A=S.filter(b=>Q.has(R(b.status,o))),D=u?ar(A,c,l,b=>b.id):0,I=u?A.slice(D,D+s):A,Pe=u&&I.length>0&&D+I.length<A.length,je=Pe&&I.length>0?sr(l,I[I.length-1].id,D+I.length-1):void 0,Tt=S.filter(b=>r.has(b.id.trim().toLowerCase())),te=new Set([...I.map(b=>b.id),...Tt.slice(0,s).map(b=>b.id)]),ne=yn({...w,ranked:w.ranked.filter(b=>te.has(b.id))},h,new Set(Object.entries(_??{}).filter(([,b])=>b>=1).map(([b])=>b))),re=ne.included.map(b=>b.item),U=re.filter(b=>Q.has(R(b.status,o))),oe=re.filter(b=>r.has(b.id.trim().toLowerCase())),_e=he(t),ie=bl(i)?_e:void 0,It=new Map(n.map(b=>[b.id.trim().toLowerCase(),b])),$=b=>{let se=Fe(b,o,ie);return r.has(b.id.trim().toLowerCase())&&(se.blocked=!0,se.blocker_ids=Wt(b,It,o).filter(At=>!At.resolved).map(At=>At.id)),se},L=Cl(U,n,o,y),Os=U.filter(b=>L.has(b.id)).slice(0,u?I.length:s).map($),Ls=U.filter(b=>!L.has(b.id)).slice(0,u?I.length:s).map($),qn=A.length===0;return{activeItems:U,blockedItems:oe,highLevel:Os,lowLevel:Ls,blockedFallback:qn?oe.slice(0,s).map($):[],blockedFallbackUsed:qn,ranking:w,packing:ne,featureStore:k,pageExtras:{...u?{applied_limit:s}:{},...Pe?{has_more:!0,truncated:!0}:{},...je?{next_cursor:je}:{}}}}function Tl(e){return Be("context",We(e,or))}function Il(e,t){return e.limit!==void 0||e.maxItems!==void 0||e.after!==void 0||t>=vi}async function Al(e,t,n,r){let o={...t.baseListOptions,view:"agenda",include:"all",limit:t.parentScope===void 0?String(t.limit):void 0},i=await Vo(o,e),s=n===void 0?i.events:i.events.filter(c=>n.has(c.item_id.trim().toLowerCase())),a=Vd(s,t.statusRegistry).slice(0,t.limit),d=a.map(c=>r.has(c.item_id)?{at:c.at,date:c.date,kind:c.kind,item_id:c.item_id,reference_only:!0,...c.kind==="reminder"?{reminder_text:c.reminder_text}:{},...c.kind==="event"?{event_title:c.event_title,event_recurring:c.event_recurring}:{}}:c);return{agenda:i,agendaEvents:d,agendaSummary:Kd(a)}}function Ci(e,t,n){let r=String(t);return e.filter(o=>R(o.status,n)===r).length}async function Rl(e){let{runtime:t,allItems:n,fullCorpus:r,blockedIds:o,focusGroups:i,now:s,global:a}=e,d=he(n),c=n.filter(u=>!X(u.status,t.statusRegistry)),l=u=>t.sectionsIncluded.includes(u);return{hierarchy:l("hierarchy")?Yd(n,i.activeItems,t.statusRegistry,t.limit):void 0,activity:l("activity")?await Xd(t.activityLimit,a):void 0,progress:l("progress")?Qd(n,i.activeItems,o,t.statusRegistry,t.limit):void 0,blockersSection:l("blockers")?Jd(i.blockedItems,r,t.statusRegistry,t.limit):void 0,recentlyCreated:l("recently_created")?nl(c,t.statusRegistry,d,t.limit):void 0,unparented:l("unparented")?rl(c,t.statusRegistry,d,t.limit):void 0,filesSection:l("files")?Zd(i.activeItems,t.limit):void 0,workload:l("workload")?el(i.activeItems,t.statusRegistry,t.limit):void 0,staleness:l("staleness")?tl(c,t.staleThresholdDays,s,t.limit):void 0,tests:l("tests")?ol(i.activeItems):void 0}}function Fl(e,t,n){let r=N("canceled",t),o=e.filter(s=>t.active_statuses.has(R(s.status,t))),i=Ci(o,t.in_progress_status,t);return{scope:"matching_items",active_items:o.length,open:o.length-i,in_progress:i,blocked:e.filter(s=>n.has(s.id.trim().toLowerCase())).length,total_items:e.length,closed:e.filter(s=>Ae(s.status,t)).length,canceled:e.filter(s=>R(s.status,t)===r).length}}function Ml(e,t,n){t.hierarchy&&(e.hierarchy=t.hierarchy),t.activity&&(e.activity=t.activity),t.progress&&(e.progress=t.progress),t.blockersSection&&(e.blockers=t.blockersSection),t.recentlyCreated&&(e.recently_created=t.recentlyCreated),t.unparented&&(e.unparented=t.unparented),t.filesSection&&(e.files=t.filesSection),t.workload&&(e.workload=t.workload),t.staleness&&(e.staleness=t.staleness),t.tests&&(e.tests=t.tests),n!==void 0&&n.length>0&&(e.warning_details=n)}function Dl(e,t){t&&(e.focus_fields=t,e.high_level=Ie(e.high_level,t),e.low_level=Ie(e.low_level,t),e.blocked_fallback=Ie(e.blocked_fallback,t),e.recently_created&&(e.recently_created=Ie(e.recently_created,t)),e.unparented&&(e.unparented=Ie(e.unparented,t)))}function $l(e,t){let n=[e.high_level,e.low_level,e.blocked_fallback,e.recently_created??[],e.unparented??[]].flat();if(t){for(let i of n)delete i.tags,delete i.tags_inherited;return}let r=new Map(n.map(i=>[i.id,i])),o=new Map(n.map(i=>[i.id,i.tags?[...i.tags].sort().join("\0"):void 0]));for(let i of n){if(!i.parent||!i.tags)continue;let s=r.get(i.parent);s&&o.get(i.id)===o.get(s.id)&&(delete i.tags,i.tags_inherited=s.id)}}function Ol(e,t,n){t.length>0||n.length>0||e.agenda.events.length>0||(e.suggestions=['pm create --type Task --title "..." to add a new work item',"pm list --status closed --limit 5 to review recent completions","pm search <keywords> to find related past work","pm aggregate for a full project status overview"])}async function Ll(e,t,n,r){try{let o=new Set(t.packing.included.map(d=>d.id)),i=t.ranking.ranked.map(d=>({id:d.id,rank:d.rank,included:o.has(d.id)})),s=new Set(i.map(d=>d.id));for(let d of Ke(e,"context"))s.has(d)||(i.push({id:d,rank:i.length+1,included:!1}),s.add(d));let a=await Ve({pmRoot:n,author:r,surface:"context",profile:t.packing.profile,rows:i,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"});ze(e,a)}catch{e.warnings=_t(e.warnings,["context_usage_feedback_write_failed"])}}async function Nl(e,t,n){if(e)return{};let o=(await rr({pmRoot:t,settings:n,cwd:process.cwd(),noExtensions:!1})).discovered.map(s=>({name:s.name??s.directory,status:s.status==="ok"?"ok":"degraded"})).sort((s,a)=>s.name.localeCompare(a.name)),i=o.filter(s=>s.status==="degraded").length;return o.length===0?{}:{extension_health:{total:o.length,ok:o.length-i,degraded:i,packages:o.slice(0,20),...o.length>20?{truncated:!0}:{}}}}async function Pl(e,t){let n=vr(),r=await pr(e),o=n.instance||hr(t);return mi(r.semantic_attribution?.[o])}async function Kp(e,t){let n=C(process.cwd(),t.path),r=await wl(e,t),o=await Sl(t,r),i=Md(r.limit,o.fullCorpus.length),s={...r,limit:i,tokenBudget:pn(e.tokenBudget,Math.max(256,i*160))},a=J(void 0,s.settings.author_default),d=await Pl(n,a),c=Nl(e.noExtensionHealth===!0,n,s.settings),l=io(o.fullCorpus,s.statusRegistry),u=await xl(o.listedItemMetadata,o.allItems,o.fullCorpus,l,s.statusRegistry,s.sectionsIncluded,s.limit,O(),a,e.after,Tl(e),Il(e,o.fullCorpus.length),n,s.tokenBudget,d,F(s.settings,x())),f=await Al(t,s,o.subtreeIds,new Set([...u.highLevel,...u.lowLevel,...u.blockedFallback].map(S=>S.id))),h=await ht(o.fullCorpus,{pmRoot:n,statusRegistry:s.statusRegistry,now:f.agenda.now}),_=_t(o.listed.warnings,f.agenda.warnings,u.ranking.warnings,[...u.featureStore.warnings],h.warnings),y=Ci(u.activeItems,s.statusRegistry.in_progress_status,s.statusRegistry),g=u.activeItems.length-y,v=await Rl({runtime:s,allItems:o.allItems,fullCorpus:o.fullCorpus,blockedIds:l,focusGroups:u,now:f.agenda.now,global:t}),k=Fl(o.allItems,s.statusRegistry,l),w={output_default:"toon",now:f.agenda.now,depth:s.depth,sections_included:s.sectionsIncluded,window:{anchor:f.agenda.anchor,start:f.agenda.range.start,end:f.agenda.range.end,past:f.agenda.range.past,from:f.agenda.range.from,to:f.agenda.range.to},filters:{type:e.type??null,tag:e.tag??null,priority:e.priority??null,assignee:e.assignee??null,assignee_filter:e.assigneeFilter??null,sprint:e.sprint??null,release:e.release??null,limit:e.limit??e.maxItems??null,parent:s.parentScope??null,token_budget:s.tokenBudget,runtime_filters:o.listed.filters.runtime_filters??f.agenda.filters.runtime_filters??{}},summary:{returned_focus:{active_items:u.activeItems.length,in_progress:y,open:g,blocked:u.blockedItems.length},blocked_fallback_used:u.blockedFallbackUsed,high_level:u.highLevel.length,low_level:u.lowLevel.length,agenda_events:f.agendaSummary.events,...k},high_level:u.highLevel,low_level:u.lowLevel,blocked_fallback:u.blockedFallback,agenda:{summary:f.agendaSummary,events:f.agendaEvents},...u.pageExtras};return w.workspace_memory=di(h,Math.min(800,Math.floor(s.tokenBudget*.2))),Object.assign(w,await c),Ml(w,v,u.featureStore.warning_details),$l(w,e.noTags===!0),e.explainRanking===!0&&(w.ranking=wn(u.ranking,u.featureStore,new Set([...u.highLevel,...u.lowLevel,...u.blockedFallback].map(S=>S.id))),w.packing=vn(u.packing)),Dl(w,s.focusFields),_.length>0&&(w.warnings=_),Ol(w,u.activeItems,u.blockedItems),await Ll(w,u,n,a),w}(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]="045ff474-f6d9-50c5-b554-ebc947a52443")}catch{}})();var jl=["markdown","toon","json"],Ul=5,Hl=1440*60*1e3;function Gl(e){if(!e)return;let t=e.trim().toLowerCase();if(!jl.includes(t))throw new p("Next format must be one of markdown|toon|json",m.USAGE);return t}function oh(e,t){let n=Gl(e.format);if(t.json&&n&&n!=="json")throw new p("Cannot combine --json with --format markdown|toon",m.USAGE);return t.json?"json":n??"toon"}function xi(e,t,n){let r=B(e,t);return r===void 0||r<=0?n:r}function Me(e,t,n,r){return{...Fe(e.item,t,n),open_blocker_count:e.open_blockers.length,blockers:e.open_blockers.map(o=>({id:o.id,title:o.title,status:o.status,...o.external?{external:!0}:{},...o.blocked_since?{blocked_since:o.blocked_since}:{},...o.external?{resolver:o.resolver??null}:{}})),unblocks:e.unblocks,rank:r}}function Wl(e,t,n,r){let o=e.item,i=[],s=N("in_progress",t);return i.push(R(o.status,t)===s?"in progress \u2014 resume to finish":"open and ready to start"),r&&i.push("completed container \u2014 governance closeout"),i.push(`priority p${o.priority}${o.priority===0?" (highest)":""}`),typeof o.deadline=="string"&&o.deadline.trim().length>0&&i.push(Bl(o.deadline,n)),i.push(oo(o).length>0?"all blockers resolved":"no blockers"),typeof o.parent=="string"&&o.parent.trim().length>0&&i.push(`advances ${o.parent.trim()}`),e.unblocks.length>0&&i.push(`unblocks ${e.unblocks.length} item(s)`),i}function Ti(e,t,n){let r=J(n,t),o=[],i=[];for(let s of e){let a=typeof s.item.assignee=="string"?s.item.assignee.trim():"";a.length>0&&a!==r?i.push({id:s.item.id,assignee:a}):o.push(s)}return{available:o,held:i}}var ih={partitionCallerOwnedReady:Ti,resolveNextCallerAuthor:(e,t)=>Ii(e,t)};function sh(e,t,n){let r=e.filter(o=>ke(o.item.type,n)==="human");return{agent:t?e:e.filter(o=>ke(o.item.type,n)!=="human"),decisions:t?[]:r}}function Bl(e,t){let n=Date.parse(e);if(!Number.isFinite(n))return`deadline ${e.trim()}`;let r=new Date(n).toISOString().slice(0,10),o=new Date(Date.parse(t)).toISOString().slice(0,10),i=Math.round((Date.parse(r)-Date.parse(o))/Hl);return i<0?`deadline ${r} (overdue ${-i}d)`:i===0?`deadline ${r} (due today)`:`deadline ${r} (in ${i}d)`}function ql(e,t){let n=N("in_progress",t);return e.filter(r=>R(r.status,t)===n).length}function bn(e,t){return(t.get(e.id.trim().toLowerCase())??[]).length>0}function zl(e,t){return{type:e.type,tag:e.tag,priority:typeof e.priority=="number"?String(e.priority):e.priority,assignee:e.assignee,assigneeFilter:e.assigneeFilter,sprint:e.sprint,release:e.release,noTruncate:!0,...t}}function yt(e,t,n){return[...e].sort((r,o)=>{let i=bn(r.item,t),s=bn(o.item,t);return i!==s?Number(i)-Number(s):Z(r.item,o.item,n)})}function Kl(e){return e.projectedReady.length===0?null:{...e.readyRows[0],reasons:Wl(e.projectedReady[0],e.statusRegistry,e.now,e.completedContainer)}}function Vl(e,t,n){if(e!==null)return;let r=n>0?["No executable recommendation: outcome gates require verification. Inspect gate_needed, or use pm next --include-gates to opt in."]:[];if(t.length>0){let o=t.find(i=>i.blockers.length>0);return[...r,o?`${t.length} item(s) are blocked; unblock the top one by closing ${o.blockers.map(i=>i.id).join(", ")}`:`${t.length} item(s) are blocked; add blocker context or move the top item back to an active status`,"pm next --ready-only after a blocker closes to re-check ready work",'pm create --type Task --title "..." to add new ready work']}return[...r,'pm create --type Task --title "..." to add a new work item',"pm list --status in_progress to review work already underway","pm context --depth deep for the full project snapshot"]}function Yl(e,t,n){let r={};return e>n&&(r.decision_needed_total=e),t>n&&(r.held_by_others_total=t),Object.keys(r).length>0?r:void 0}async function Xl(e){try{let t=new Set(e.packing.included.map(i=>i.id)),n=e.ranking.ranked.map(i=>({id:i.id,rank:i.rank,included:t.has(i.id)})),r=new Set(n.map(i=>i.id));for(let i of Ke(e.result,"next"))r.has(i)||(n.push({id:i,rank:n.length+1,included:!1}),r.add(i));let o=await Ve({pmRoot:e.pmRoot,author:e.author,surface:"next",profile:e.packing.profile,rows:n,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"});ze(e.result,o)}catch{e.result.warnings=_t(e.result.warnings,["context_usage_feedback_write_failed"])}}async function Ql(e){let t=[...new Set([...e.candidatesWarnings??[],...e.corpusWarnings??[],...e.readyRanking.warnings??[],...e.featureStore.warnings])].sort((n,r)=>n.localeCompare(r));return t.length>0&&(e.result.warnings=t),e.explainRanking&&(e.result.ranking=wn(e.readyRanking,e.featureStore),e.result.packing=vn(e.packing)),e.result.suggestions=Vl(e.recommended,e.blockedRows,e.gateCount),await Xl({result:e.result,pmRoot:e.pmRoot,author:e.author,packing:e.packing,ranking:e.readyRanking}),e.result}function Jl(e,t,n){if(!n)return e;let r=gn(t,n);if(!r.found)throw new p(`Next --parent item not found: ${n}`,m.NOT_FOUND);return e.filter(o=>r.ids.has(o.id.trim().toLowerCase()))}async function Zl(e,t,n,r,o,i,s,a){let d=e.filter(g=>!bn(g.item,t)),c=a||d.length===0?e:d,l=await Ye({pmRoot:i,author:o,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"}),u=await pt(c.map(g=>g.item),{pmRoot:i,storeKey:"next",statusRegistry:n,now:r,author:o,usageAffinity:l.affinity}),f=await mt("next",u.candidates),h=yn(f,s,new Set,"next"),_=new Map(c.map(g=>[g.item.id,g]));return{projectedReady:f.ranked.map(g=>_.get(g.id)).filter(g=>g!==void 0),ranking:f,completedContainer:d.length===0&&!a,packing:h,featureStore:u}}function Ii(e,t){let n=e.assignee?.trim();return J(e.callerAuthor??(n&&n.length>0?n:void 0),t)}async function ah(e,t){let n=C(process.cwd(),t.path),r=await M(n),o=Ii(e,r.author_default),i=P(r.schema),s=F(r,x()),a=O(),d=xi(e.limit,"--limit",Ul),c=pn(e.tokenBudget,Math.max(192,d*128)),l=xi(e.blockedLimit,"--blocked-limit",d),u=e.readyOnly===!0,f=typeof e.parent=="string"?e.parent.trim():"",h=await q(void 0,zl(e,{excludeTerminal:!0}),t),_=await q(void 0,{excludeTerminal:!1,noTruncate:!0},t),y=Jl(h.items,_.items,f),g=_.items,v=nt(y,g,i,s),k=he(g),w=so(v,i,e,s),S=Ti(w.ready,r.author_default,o),Q=yt(S.available,k,i),A=[...v.blocked].sort(($,L)=>Z($.item,L.item,i)),{projectedReady:D,ranking:I,completedContainer:Pe,packing:je,featureStore:Tt}=await Zl(Q,k,i,a,o,n,c,e.includeContainers===!0),te=D.map(($,L)=>Me($,i,k,L+1)),ne=A.map(($,L)=>Me($,i,k,L+1)),re=yt(w.decisions,k,i).map(($,L)=>Me($,i,k,L+1)),U=yt(w.gates,k,i).map(($,L)=>Me($,i,k,L+1)),oe=yt(v.containers,k,i).map(($,L)=>Me($,i,k,L+1)),_e=Kl({projectedReady:D,readyRows:te,statusRegistry:i,now:a,completedContainer:Pe}),ie=Yl(re.length,S.held.length,d)??{};U.length>d&&(ie.gate_needed_total=U.length),oe.length>d&&(ie.containers_total=oe.length);let It={output_default:"toon",now:a,recommended:_e,ready:te.slice(1,d+1),decision_needed:re.slice(0,d),gate_needed:U.slice(0,d),containers:oe.slice(0,d),blocked:u?[]:ne.slice(0,l),held_by_others:S.held.slice(0,d),summary:{recommended:_e!==null,ready:te.length,blocked:ne.length,in_progress:ql(te,i),candidates:v.active_count,containers:v.container_count,decision_needed:re.length,gate_needed:U.length,held_by_others:S.held.length},filters:{type:e.type??null,tag:e.tag??null,priority:e.priority??null,assignee:e.assignee??null,assignee_filter:e.assigneeFilter??null,sprint:e.sprint??null,release:e.release??null,parent:f.length>0?f:null,limit:d,blocked_limit:l,ready_only:u,include_decisions:e.includeDecisions===!0,include_gates:e.includeGates===!0,include_containers:e.includeContainers===!0,token_budget:c},truncation:Object.keys(ie).length>0?ie:void 0};return Ql({result:It,recommended:_e,blockedRows:ne,gateCount:U.length,candidatesWarnings:h.warnings,corpusWarnings:_.warnings,readyRanking:I,explainRanking:e.explainRanking===!0,pmRoot:n,author:o,packing:je,featureStore:Tt})}function ch(e){let t=["# pm next","",...eu(e)];for(let[n,r]of[["Gate verification needed",e.gate_needed],["Containers",e.containers]])r&&r.length>0&&t.push(...De(n,r.map(o=>`- ${$e(o)}`),""));if(t.push(...De("Recommended",tu(e.recommended),"No ready work.")),t.push(...De("Decision needed",(e.decision_needed??[]).map(n=>`- ${$e(n)}`),"No human-gated decisions.")),t.push(...De("Ready",e.ready.map(n=>`- ${$e(n)}`),"No ready items.")),e.filters.ready_only||t.push(...De("Blocked",e.blocked.map(n=>`- ${nu(n)}`),"No blocked items.")),e.suggestions&&e.suggestions.length>0){t.push("## Suggestions");for(let n of e.suggestions)t.push(`- ${n}`)}return t.join(`
8
+ `).trimEnd()}function eu(e){let t=[`- now: ${e.now}`,`- ready: ${e.summary.ready} (in_progress: ${e.summary.in_progress}), blocked: ${e.summary.blocked}, candidates: ${e.summary.candidates}`];return e.filters.parent&&t.push(`- scope: subtree of ${e.filters.parent}`),t.push(""),t}function tu(e){return e?[`- ${$e(e)}`,` why: ${e.reasons.join("; ")}`]:[]}function De(e,t,n){return[`## ${e}`,...t.length===0?[n]:t,""]}function nu(e){let t=e.blockers.map(n=>`${n.id}(${n.status??"?"})`).join(", ");return`${$e(e)} blocked_by:${t}`}function $e(e){let t=e.deadline??"-",n=e.parent?` parent:${e.parent}`:"",r=e.unblocks.length>0?` unblocks:${e.unblocks.length}`:"";return`${Number.isInteger(e.rank)?`#${e.rank} `:""}${e.id} p${e.priority} ${e.status} ${e.type} deadline:${t}${n}${r} ${e.title}`}(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]="0cc18a30-5068-5c59-b559-7afc4d446ed8")}catch{}})();function ru(e,t){return t===void 0?e:e.slice(Math.max(0,e.length-t))}function ou(e,t){return e.map(({entry:n,version:r})=>{let o=new Set,i=xr(n.patch);for(let s of i)o.add(Pt(s.path)),s.from&&o.add(Pt(s.from));return{index:r,...t?{version:t.offset===null?null:t.offset+r}:{},ts:n.ts,op:n.op,author:n.author,patch_ops:i.length,changed_fields:[...o].sort((s,a)=>s.localeCompare(a))}})}function iu(e){if(e[0]?.op!=="history_compact_baseline")return;let t=be(e,!0);return{offset:t,first_version:t===null?null:t+1,last_version:t===null?null:t+e.length}}async function su(e,t){let n=C(process.cwd(),t.path);await j(n);let r=await M(n),o=F(r,x()),i=e.trim()===Xe,s=i?Xe:Mr(e,r.id_prefix),a=await de(n,s,r.id_prefix,r.item_format,o.type_to_folder),d=a?.id??s,c=i?Ir(n):Ge(n,d);if(!a&&!await Xn(c))throw new p(`Item ${e} not found`,m.NOT_FOUND);return a&&await Rr({pmRoot:n,settings:r,itemId:a.id,commandLabel:"history"}),{historyPath:c,located:a,resolvedId:d,settings:r}}async function vh(e,t,n){let r=fe(t.limit),{historyPath:o,located:i,resolvedId:s,settings:a}=await su(e,n),d=await W(o,s),c=iu(d),l=a.agent_identity.identity_vocabulary,u=rt(a.agent_identity.harness_signals),f=it({harness:t.harness,agentInstance:t.agentInstance,provenance:t.provenanceFilter},l,u),h=au(d).filter(({entry:D})=>f(D)),_=ru(h,r),y=_.map(({entry:D})=>D),g=t.compact===!0,v=g?ou(_,c):void 0,k=t.provenance===!0?_.map(({entry:D,durableVersion:I})=>ot(D,l,{itemId:s,version:I})):void 0,w=t.provenance===!0?"provenance":g?"compact":"full",S={compact:{compact_history:v},provenance:{provenance_history:k},full:{history:y}}[w],A={id:s,...S,compact:g,projection:{mode:w,row_key:{compact:"compact_history",provenance:"provenance_history",full:"history"}[w]},omission_receipt:qe("history",w),count:y.length,limit:r??null,version_addressing:c,...t.provenanceSummary===!0?{provenance_summary:st(h.map(({entry:D})=>D),l,u)}:{}};if((t.diff||t.field!==void 0)&&(A.diff=Gr(d,{windowStartIndex:Math.max(0,d.length-y.length),field:t.field})),t.verify){let D=i?(await le(i,{schema:a.schema})).document:void 0;if(A.verification=vo(d,D),s===Xe&&A.verification.ok){let I=await Ar(C(process.cwd(),n.path));A.verification={...A.verification,ok:I.ok,errors:I.ok?A.verification.errors:[...A.verification.errors,"verify_failed:workspace_state_mismatch"],workspace_state_matches_latest:I.ok,workspace_state_mismatches:I.mismatched_documents,workspace_state_missing:I.missing_documents,workspace_state_unreadable:I.unreadable_documents}}}return A}function au(e){let t=be(e,!0);return e.map((n,r)=>({entry:n,version:r+1,durableVersion:t===null?void 0:t+r+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]="acda1c64-cb50-57b5-868d-a27ca6912979")}catch{}})();var Ai=1e6,Ri=20;function Fi(e,t,n,r=Ri){if(!Number.isSafeInteger(r)||r<0)throw new p("Child projection sample limit must be a non-negative integer.",m.USAGE);let o=e.trim().toLowerCase(),i={},s=[],a=0;for(let g of t){if(a+=1,a>Ai)throw new p(`Child projection exceeded the ${Ai.toLocaleString("en-US")} item safety bound.`,m.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 d=new Map(s.map(g=>[g.id.trim().toLowerCase(),g])),c=to(eo(s,Zr())),l=new Set(c.children_by_parent.get(o)??[]);for(let g of s)g.parent?.trim().toLowerCase()===o&&l.add(g.id.trim().toLowerCase());let u=[...l].map(g=>d.get(g)),f=0;for(let g of u){let v=g.status.trim().toLowerCase();i[v]=(i[v]??0)+1,X(v,n)||(f+=1)}u.sort((g,v)=>g.id.localeCompare(v.id));let h=u.slice(0,r).map(g=>({id:g.id,title:g.title,type:g.type,status:g.status,priority:g.priority})),_=u.length>h.length,y=r===0?Ri:r;return{count:u.length,active:f,by_status:Object.fromEntries(Object.entries(i).sort(([g],[v])=>g.localeCompare(v))),sample:h,sample_limit:r,truncated:_,next_offset:_?h.length:null,continuation:_?`pm list --status all --parent ${e} --offset ${h.length} --limit ${y}`: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]="926ca5b2-8cfc-56e7-8cbf-fb0e7152d834")}catch{}})();var cu=new Set(["event","meeting","reminder"]);function du(e){return cu.has(e.type.trim().toLowerCase())||e.deadline!==void 0||(e.reminders?.length??0)>0||(e.events?.length??0)>0}function kn(e){if(!du(e))return;let t=[...e.events??[]].sort((r,o)=>r.start_at.localeCompare(o.start_at)),n=t[0];return{deadline:e.deadline??null,start_at:n?.start_at??null,end_at:n?.end_at??null,location:n?.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]="26bf8487-2515-5885-b6de-56ba6292fb65")}catch{}})();var uu=new Set(["epic","feature","milestone","plan"]),fu=new Set(Object.keys(Kn).map(e=>e.toLowerCase()));function En(e){return Object.fromEntries(["comments","notes","learnings","files","tests","docs","reminders","events"].map(n=>[n,e[n]?.length??0]))}function mu(e,t){let n=En(e);return[...t.length>0?["body"]:[],...Object.entries(n).flatMap(([r,o])=>o>0?[r]:[]),...n.files+n.tests+n.docs>0?["linked"]:[],"children",...typeof e.assignee=="string"&&e.assignee.trim().length>0?["claim_state"]:[],...kn(e)?["schedule"]:[]]}function Di(e){let t=e.trim().toLowerCase();return t.length>0&&(uu.has(t)||!fu.has(t))}function Mi(e){return{ts:e.ts,author:e.author,message:e.message??null}}function pu(e,t){let n=e?.trim(),r=n&&n.length>0?n:null,o=[...t].reverse().find(s=>s.op==="claim"),i=[...t].reverse().find(s=>s.op==="release");return{claimed:r!==null,assignee:r,last_claim:o?Mi(o):null,last_release:i?Mi(i):null}}function hu(e){if(e===void 0||e.trim().length===0)return"standard";let t=e.trim().toLowerCase();if(t==="full")return"deep";if($t.includes(t))return t;throw new p("Get --depth must be one of brief|standard|deep|full",m.USAGE)}function gu(e,t){let n=En(e);if(t==="deep")return{...e,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:n.notes,tests_count:n.tests,collection_counts:n};let{comments:r,notes:o,learnings:i,files:s,tests:a,docs:d,reminders:c,events:l,...u}=e;return{...u,notes_count:e.notes?.length??0,tests_count:e.tests?.length??0,collection_counts:n}}function _u(e){if(e===void 0)return null;let t=e.split(",").map(n=>n.trim()).filter(n=>n.length>0);if(t.length===0)throw new p("Get --fields requires a comma-separated list of field names",m.USAGE);return t}function wt(e){return e.startsWith("item.")?e.slice(5):e}function yu(e,t,n){if(e===null)return;let r=Ot(t),o=new Set(r),i=e.filter(s=>{let a=wt(s);return!o.has(s)&&!o.has(a)});if(i.length>0){let s=["get",n,"--fields","id,title,status"];throw new p(`Unknown get --fields value(s): ${i.join(", ")}`,m.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:r,suggested_retry:ce(s),suggested_retry_args:s}})}}var vu=new Set(["comments","notes","learnings","files","tests","test_runs","docs","reminders","events","dependencies","plan_steps","plan_decisions","plan_discoveries","plan_validation"]);function wu(e,t,n){return Object.hasOwn(t,n)?t[n]:e[n]!==void 0?e[n]:vu.has(n)?[]:void 0}function bu(e,t){let n=e,r={notes_count:e.notes?.length??0,tests_count:e.tests?.length??0,collection_counts:En(e)},o={id:e.id};for(let i of t){let s=wt(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.")||(o[s]=wu(n,r,s))}return o}function Oe(e,t){return e?.some(n=>n===t||n===`item.${t}`)??!1}function vt(e,t){return e.some(n=>{let r=wt(n);return r===t||r.startsWith(`${t}.`)})}function ku(e,t){if(e.full&&(e.fields!==void 0||e.depth!==void 0))throw new p("Get projection options are mutually exclusive; remove the extra projection flag and retry.",m.USAGE,{code:"projection_options_mutually_exclusive",recovery:{suggested_retry:ce(["get",t,"--full"]),suggested_retry_args:["get",t,"--full"]}});if(e.tree!==!0&&e.treeDepth!==void 0)throw new p("Get --tree-depth requires --tree",m.USAGE);if(e.at!==void 0&&e.tree===!0)throw new p("Get --at cannot be combined with --tree because workspace-level historical projections are not yet indexed.",m.USAGE);return{depth:e.full?"deep":hu(e.depth),treeDepth:e.tree===!0?B(e.treeDepth,"--tree-depth"):void 0,fields:_u(e.fields),fieldProjection:e.fields!==void 0}}async function Su(e,t,n){let r=C(process.cwd(),t.path);await j(r);let o=await M(r),i=F(o,x());if(n!==void 0){let d=await wo(e,n,{pmRoot:t.path});return{pmRoot:r,settings:o,typeToFolder:i.type_to_folder,locatedId:d.document.metadata.id,metadata:d.document.metadata,body:d.document.body,historical:d}}let s=await de(r,e,o.id_prefix,o.item_format,i.type_to_folder);if(!s)throw await Or(r,e,o.id_prefix,i.type_to_folder);let a=await le(s,{schema:o.schema});return{pmRoot:r,settings:o,typeToFolder:i.type_to_folder,locatedId:s.id,metadata:a.document.metadata,body:a.document.body}}function Eu(e,t,n,r){let o=Y(t.schema).definitions.map(i=>i.metadata_key);if(yu(e,o,r),n&&vt(e??[],"children"))throw new p("Get --at cannot project children because workspace-level historical relationships are not yet indexed.",m.USAGE)}function Sn(e){let{fieldProjection:t,depth:n,fields:r,field:o}=e;return t?o==="body"||o==="linked"?Oe(r,o):vt(r,o):n!=="brief"}async function Cu(e,t){if(!t)return;let n=Ge(e.pmRoot,e.locatedId),r=await W(n,e.locatedId);return pu(e.metadata.assignee,e.historical?r.slice(0,e.historical.target.historyIndex+1):r)}function xu(e,t,n,r){let o=r||Oe(n,"linked.files"),i=r||Oe(n,"linked.tests"),s=r||Oe(n,"linked.docs");!r&&!o&&!i&&!s||(e.linked={files:o?t.metadata.files??[]:[],tests:i?t.metadata.tests??[]:[],docs:s?t.metadata.docs??[]:[]})}async function Tu(e,t){if(!t)return;let n=P(e.settings.schema),r=await ue(e.pmRoot,e.settings.item_format,e.typeToFolder,void 0,e.settings.schema);return Fi(e.locatedId,r,n)}function Iu(e,t,n,r){if(!r)return;let o=kn(t.metadata);if(o){if(n===null||Oe(n,"schedule")){e.schedule=o;return}e.schedule=Object.fromEntries(Object.entries(o).filter(([i])=>n.some(s=>wt(s)===`schedule.${i}`)))}}async function Au(e,t,n,r){if(t.tree!==!0)return;let o=await q(void 0,{parent:e.locatedId,tree:!0,treeDepth:n===void 0?void 0:String(n),full:!0},r);return{root_id:e.locatedId,root_title:e.metadata.title,depth_limit:n??null,count:o.count,items:o.items.map(i=>i)}}async function Hh(e,t,n={}){let r=ku(n,e),o=await Su(e,t,n.at);Eu(r.fields,o.settings,o.historical!==void 0,o.locatedId);let i=Sn({...r,field:"body"}),s=Sn({...r,field:"linked"}),a=Sn({...r,field:"claim_state"}),d=o.historical===void 0&&(r.fieldProjection?vt(r.fields,"children"):r.depth==="deep"&&Di(o.metadata.type)),c=r.fieldProjection?vt(r.fields,"schedule"):r.depth!=="brief",l=await Cu(o,a),u={item:r.fieldProjection?bu(o.metadata,r.fields):gu(o.metadata,r.depth)};i&&(u.item.body=o.body),xu(u,o,r.fields,s),l&&(u.claim_state=l),Iu(u,o,r.fields,c);let f=await Tu(o,d);f!==void 0&&(u.children=f);let h=await Au(o,n,r.treeDepth,t);if(h!==void 0&&(u.tree=h),o.historical&&(u.reconstructed=!0,u.as_of_version=o.historical.as_of_version,u.as_of_timestamp=o.historical.as_of_timestamp),o.historical===void 0)try{await mr({pmRoot:o.pmRoot,author:J(void 0,o.settings.author_default),itemIds:[o.locatedId],intent:"get"})}catch{}return dr(u,mu(o.metadata,o.body)),u}var Gh={shouldAutoIncludeGetChildren:Di};(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]="48888c80-60e1-5905-afd5-8c1b6e532f99")}catch{}})();function $i(e){if(typeof e!="string")return!1;let t=e.split(",").map(n=>n.trim().toLowerCase()).filter(Boolean);return t.length===1&&t[0]==="all"}var Ru=[{optionKey:"status",summaryKey:"status",normalize:e=>$i(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 Le(e){let{mode:t,matchMode:n,options:r,includeLinked:o,titleExact:i,phraseExact:s,scoreThreshold:a,hybridSemanticWeight:d,runtimeFieldFilters:c}=e,l={};return _o(l,r,Ru),Object.assign(l,qt(r)),Object.assign(l,Bt(r)),n!==void 0&&n!=="or"&&(l.match_mode=n),o&&(l.include_linked=!0),i&&(l.title_exact=!0),s&&(l.phrase_exact=!0),a>0&&(l.score_threshold=a),t==="hybrid"&&r.semanticWeight!==void 0&&(l.hybrid_semantic_weight=d),r.limit!==void 0&&(l.limit=r.limit),c&&Object.keys(c).length>0&&(l.runtime_filters=c),l}function Ne(e){let{effectiveMode:t,matchMode:n,options:r,includeLinked:o,titleExact:i,phraseExact:s,scoreThreshold:a,hybridSemanticWeight:d,queryExpansion:c,rerank:l,runtimeFieldFilters:u}=e,f=h=>h??null;return{mode:t,match_mode:n,status:r.status===void 0||$i(r.status)?"all":r.status,type:f(r.type),tag:f(r.tag),priority:f(r.priority),deadline_before:f(r.deadlineBefore),deadline_after:f(r.deadlineAfter),updated_after:f(r.updatedAfter),updated_before:f(r.updatedBefore),created_after:f(r.createdAfter),created_before:f(r.createdBefore),assignee:f(r.assignee),sprint:f(r.sprint),release:f(r.release),parent:f(r.parent),...qt(r),...Bt(r),include_linked:o,title_exact:i,phrase_exact:s,score_threshold:a,hybrid_semantic_weight:t==="hybrid"?d:null,query_expansion_enabled:c.enabled,query_expansion_provider:c.provider,rerank_enabled:l.enabled,rerank_model:l.model,rerank_top_k:l.top_k,limit:f(r.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]="91b01dd0-6a8d-5b97-96d2-c27f4044c009")}catch{}})();function Fu(e){return Be("search",{query:e.query.trim(),mode:e.mode,options:We(e.searchOptions,ir)})}function Oi(e){let t=cr(e.sorted,{cursor:e.searchOptions.after,fingerprint:Fu(e),limit:e.limit,readId:n=>n.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]="255d7c53-5905-51f7-8f5a-3580cf340648")}catch{}})();function Mu(e){if(e===void 0)return"keyword";let t=e.trim().toLowerCase();if(t!=="keyword"&&t!=="semantic"&&t!=="hybrid")throw new p("Search mode must be one of keyword|semantic|hybrid",m.USAGE);return t}function bt(e){return e===!0}function Li(e){return tr(e,0,1)??void 0}function Ni(e){if(e===void 0)return"or";let t=e.trim().toLowerCase();if(t!=="and"&&t!=="or"&&t!=="exact")throw new p("Search --match-mode must be one of and|or|exact",m.USAGE);return t}function Pi(e){if(e==null||e==="")return;let t=typeof e=="number"?e:Number(String(e).trim());if(!Number.isFinite(t)||t<0)throw new p("Search --min-score must be a finite number >= 0",m.USAGE);return t}function ge(e,t){if(e==null)return;let n=String(e).trim();if(n.length!==0)return G(n,new Date,t)}function V(e){return e.toLowerCase().replace(/\s+/g," ").trim()}function Cn(e,t){if(e!==void 0)return G(e,new Date,t)}function Du(e){if(e===void 0)return;let t=e.split(",").map(n=>n.trim()).filter(n=>n.length>0);if(t.length===0)throw new p("Search --fields requires a comma-separated list of field names",m.USAGE);return[...new Set(t)]}function xn(e,t="<query>"){let n=e.compact===!0,r=e.full===!0,o=Du(e.fields);if(Number(n)+Number(r)+ +(o!==void 0)>1)throw new p("Search projection options are mutually exclusive. Use one of --compact, --full, or --fields.",m.USAGE,{code:"projection_options_mutually_exclusive",recovery:{suggested_retry:ce(["search",t,"--full"]),suggested_retry_args:["search",t,"--full"]}});return n?{mode:"compact",fields:[...Lt]}:r?{mode:"full",fields:[]}:o?{mode:"fields",fields:o}:{mode:"full",fields:[]}}function Tn(e,t,n="<query>"){if(e.mode!=="fields")return;let r=Nt(t.definitions.flatMap(s=>[s.key,s.metadata_key])),o=new Set(r),i=e.fields.filter(s=>{let a=s.trim();return!o.has(a)});if(i.length>0){let s=["search",n,"--fields","id,title,status,score"];throw new p(`Unknown search --fields value(s): ${i.join(", ")}`,m.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:r,suggested_retry:ce(s),suggested_retry_args:s}})}}function In(e){let t=V(e);if(!t)throw new p("Search query must not be empty",m.USAGE);return t.split(/\s+/u).filter(Boolean)}function An(e){let t=e.search?.max_results;return typeof t=="number"&&Number.isFinite(t)&&t>0?Math.floor(t):50}var $u=["auto","keyword","semantic","hybrid"];function Ou(e){let t=e.search?.default_mode;if(typeof t!="string")return"auto";let n=t.trim().toLowerCase();return $u.includes(n)?n:"auto"}function Rn(e){if(typeof e.requested=="string"&&e.requested.trim().length>0)return{mode:Mu(e.requested),source:"explicit"};let t=Ou(e.settings);return t!=="auto"?{mode:t,source:"settings"}:{mode:e.semanticRunnable?"hybrid":"keyword",source:"auto"}}function Fn(e){let t=e.search?.score_threshold;return typeof t=="number"&&Number.isFinite(t)?t:0}function Mn(e){let t=e.search?.hybrid_semantic_weight;return typeof t=="number"&&Number.isFinite(t)&&t>=0&&t<=1?t:.7}function Dn(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},n=e.search?.tuning;if(!n)return t;let r=(o,i)=>typeof o=="number"&&Number.isFinite(o)&&o>=0?o:i;return{title_exact_bonus:r(n.title_exact_bonus,t.title_exact_bonus),title_weight:r(n.title_weight,t.title_weight),description_weight:r(n.description_weight,t.description_weight),tags_weight:r(n.tags_weight,t.tags_weight),status_weight:r(n.status_weight,t.status_weight),body_weight:r(n.body_weight,t.body_weight),comments_weight:r(n.comments_weight,t.comments_weight),notes_weight:r(n.notes_weight,t.notes_weight),learnings_weight:r(n.learnings_weight,t.learnings_weight),reminders_weight:r(n.reminders_weight,t.reminders_weight),events_weight:r(n.events_weight,t.events_weight),dependencies_weight:r(n.dependencies_weight,t.dependencies_weight),linked_content_weight:r(n.linked_content_weight,t.linked_content_weight)}}import St from"node:fs/promises";import jn 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]="e2985104-efdb-59e5-9674-2dd865ebdf56")}catch{}})();var $n=4,Lu=20,Nu=200,Pu=new Set(["a","an","and","for","from","in","into","of","on","or","the","to","with"]);function On(e,t){let n=[],r=new Set;for(let o of e){let i=o.trim().replaceAll(/\s+/g," ");if(i.length===0)continue;let s=i.toLowerCase();if(!r.has(s)&&(r.add(s),n.push(i),n.length>=t))break}return n}function ju(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 Uu(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 ji(e,t=$n){let n=e.trim().replaceAll(/\s+/g," ");if(n.length===0)return[];let r=me(n);if(r.length===0)return[n];let o=r.filter(a=>!Pu.has(a.toLowerCase())),i=r.map(a=>ju(a)),s=o.map(a=>Uu(a));return On([n,r.join(" "),o.join(" "),i.join(" "),s.join(" ")],Math.max(1,t))}function Ui(e){let t=Array.isArray(e)?e:e?.queries;return Array.isArray(t)?On(t.filter(n=>typeof n=="string"),$n):[]}function Hi(e,t,n){return On([...e,...t],Math.max(1,n))}function Gi(e,t){let r=e.search?.query_expansion,o=ye(r?.provider);return{enabled:r?.enabled===!0,provider:o??t,max_queries:$n}}function Wi(e,t){let r=e.search?.rerank,o=ye(r?.model),s=er(r?.top_k)??Lu;return{enabled:r?.enabled===!0,model:o??t,top_k:Math.min(Nu,s)}}function Bi(e){let t=Array.isArray(e)?e:e?.hits;if(!Array.isArray(t))return[];let n=new Map;for(let o of t){if(typeof o!="object"||o===null)continue;let i=ye(o.id),s=o.score;if(!i||typeof s!="number"||!Number.isFinite(s))continue;let a=n.get(i);(a===void 0||s>a)&&n.set(i,s)}let r=[...n.entries()].map(([o,i])=>({id:o,score:i}));return r.sort((o,i)=>o.score!==i.score?i.score-o.score:o.id.localeCompare(i.id)),r}function Hu(e,t){let n=e.length,r=0;for(let o=0;o<n;o+=1)r+=e[o]*t[o];return r}function qi(e){let t=0;for(let n=0;n<e.length;n+=1)t+=e[n]*e[n];return Math.sqrt(t)}function Gu(e,t,n){if(!e||!t||e.length===0||t.length===0||e.length!==t.length)return 0;let r=Hu(e,t),o=qi(t),i=n*o;return!Number.isFinite(r)||!Number.isFinite(n)||!Number.isFinite(o)||!Number.isFinite(i)||i===0?0:Math.max(-1,Math.min(1,r/i))}async function zi(e,t,n,r,o){if(r.length===0)return new Map;let i=ye(t)??e.model,s=i===e.model?e:{...e,model:i},a=[n.trim(),...r.map(f=>f.text)],d=await tt(s,a,o?{timeout_ms:o}:{}),c=d[0];if(!c)return new Map;let l=qi(c),u=new Map;for(let f=0;f<r.length;f+=1){let h=r[f],_=d[f+1];if(!_)continue;let y=Gu(c,_,l);u.set(h.id,Math.max(0,Math.min(1,(y+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]="bc52818b-d37f-5d00-954d-d50203a433c2")}catch{}})();var Wu=1.2,Bu=.75;function Ln(e){return me(e)}function qu(e){let t=new Map;for(let n of e)t.set(n,(t.get(n)??0)+1);return t}function Vi(e){let t=[],n=new Map,r=0;for(let i of e){let s=Ln(i.text),a=qu(s);r+=s.length;for(let d of a.keys())n.set(d,(n.get(d)??0)+1);t.push({id:i.id,termFrequencies:a,length:s.length})}let o=t.length;return{documents:t,documentFrequency:n,documentCount:o,averageDocumentLength:o>0?r/o:0}}function zu(e,t){return Math.log(1+(e-t+.5)/(t+.5))}function Yi(e,t,n){let r=new Map;if(e.documentCount===0||e.averageDocumentLength===0)return r;let o=[...new Set(t.filter(s=>s.length>0))];if(o.length===0)return r;let i=new Map;for(let s of o){let a=e.documentFrequency.get(s);a!==void 0&&i.set(s,zu(e.documentCount,a))}if(i.size===0)return r;for(let s of e.documents){let a=0;for(let[d,c]of i){let l=s.termFrequencies.get(d);if(l===void 0)continue;let u=1-n.b+n.b*s.length/e.averageDocumentLength,f=l+n.k1*u;a+=c*(l*(n.k1+1)/f)}a>0&&r.set(s.id,a)}return r}function Ki(e,t,n,r){return typeof e!="number"||!Number.isFinite(e)?t:Math.min(r,Math.max(n,e))}function Xi(e){let t=n=>typeof n=="string"?[n]:typeof n=="number"?[String(n)]:Array.isArray(n)?n.flatMap(t):typeof n=="object"&&n!==null?Object.values(n).flatMap(t):[];return t(Object.values(e)).join(" ")}function Qi(e){let t=e?.search?.bm25;return{k1:Ki(t?.k1,Wu,0,1e3),b:Ki(t?.b,Bu,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]="c1f323c4-410f-5e51-ba94-29caaccfbac7")}catch{}})();var Ku=2,Vu=120,Yu=6,Xu=40,Qu=1e3,Ju=900,Zu="\xAB",ef="\xBB",Ji=60,ts=["tag","status","type","priority"];function ns(e){let t=[],n=e;for(let r=0;r<5&&n&&typeof n=="object";r+=1){let o=n.code;typeof o=="string"&&t.push(o.toLowerCase()),n=n.cause}return t.join(" ")}function rs(e){let t=(e instanceof Error?e.message:String(e)).toLowerCase(),n=ns(e),r=`${t} ${n}`;return r.includes("timed out")||r.includes("timeout")||r.includes("etimedout")?"timeout":r.includes("econnrefused")||r.includes("connection refused")||r.includes("connect ")||r.includes("enotfound")||r.includes("eai_again")||r.includes("econnreset")||r.includes("fetch failed")?"connection":"error"}function os(e,t){let n=rs(t);return`search_${e}_fallback:${n}:using_keyword_mode`}function tf(e){return e?.commands?.some(n=>n.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 is(e,t,n){try{let r=await Yr(e);r.warnings.length>0&&n.push(...r.warnings);let o=ro(t.map(s=>({id:s.metadata.id,updated_at:s.metadata.updated_at})),r.entries);if(o.length===0)return;let i=tf(x());n.push(...nf(o.length,i)),process.stderr.write(`[pm] warning: ${o.length} item${o.length===1?" is":"s are"} new or modified since the last reindex and ${o.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.)
9
+ `)}catch{}}function nf(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(" ")}`]:[]]}var Qg={applyFilters:us,applyExactQueryFilters:ls,applyInlineQueryFilters:as,buildHitHighlights:ys,buildVerboseSearchFilters:Ne,buildExplicitSemanticFallbackWarning:os,buildCompactSearchFilterSummary:Le,buildHybridLexicalScore:bs,buildRerankCorpus:Rs,buildSemanticHits:xs,classifyImplicitSemanticFallbackReason:rs,collectErrorCauseCodes:ns,collectExactPhraseFields:cs,collectLinkedPaths:fs,combineHybridHits:Wn,computeBuiltInBm25Hits:Is,computeSemanticOrHybridHits:Fs,resolveBuiltInBm25Mode:Ts,countOccurrences:Hn,dependencyEntries:Un,documentContainsExactPhrase:ds,emptySearchResult:ks,highlightFieldSnippet:_s,loadDocuments:Ms,markTokenRuns:gs,parseInlineQueryFilters:ss,maybeEmitVectorIndexStaleWarning:is,loadLinkedCorpus:ps,mergeVectorHitsById:As,normalizeExtensionProviderHits:Cs,normalizeScoreMap:Nn,parseProjectionConfig:xn,parseTimestampWindow:ge,parseTokens:In,projectSearchHits:$s,readSearchFieldValue:Ds,requireSemanticDependencies:Gn,resolveExtensionSearchProvider:Ss,resolveExtensionSearchProviderByName:xt,resolveExtensionVectorAdapter:Es,resolveLinkedCorpusRoots:ms,scoreDocument:vs,sortHits:ws,stringArray:Ct,textEntries:ee,validateSearchProjectionFields:Tn};function ss(e){let t={},n=[];for(let r of e.split(/\s+/).filter(o=>o.length>0)){let o=r.indexOf(":"),i=o>0?r.slice(0,o).toLowerCase():"",s=o>0?r.slice(o+1):"",a=ts.includes(i)?i:void 0;if(a&&s.length>0&&t[a]===void 0){t[a]=s;continue}n.push(r)}return{residualQuery:n.join(" "),inlineFilters:t}}function as(e,t,n){let r={...e};for(let o of ts){let i=t[o];if(i!==void 0){if(Dt(r[o])!==void 0){n.push(`search_inline_filter_ignored:${o}:flag_takes_precedence`);continue}r[o]=i}}return r}function Ct(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function ee(e){return Array.isArray(e)?e.filter(t=>typeof t=="object"&&t!==null&&typeof t.text=="string"):[]}function Un(e){return Array.isArray(e)?e.filter(t=>typeof t=="object"&&t!==null&&typeof t.id=="string"&&typeof t.kind=="string"):[]}function cs(e){let t=e.metadata;return[t.title,t.description,t.status,Ct(t.tags).join(" "),e.body,ee(t.comments).map(n=>n.text).join(" "),ee(t.notes).map(n=>n.text).join(" "),ee(t.learnings).map(n=>n.text).join(" "),jt(t).join(" "),Ut(t).join(" "),Un(t.dependencies).map(n=>`${n.id} ${n.kind}`).join(" "),Ht(t)]}function ds(e,t){return cs(e).some(n=>V(n).includes(t))}function ls(e,t,n){return!n.titleExact&&!n.phraseExact?e:e.filter(r=>!(n.titleExact&&V(r.metadata.title)!==t||n.phraseExact&&!ds(r,t)))}function rf(e){if(e&&[...e].some(t=>t.toLowerCase()==="none"||t.toLowerCase()==="null"))throw new p('--assignee no longer accepts "none" or "null".',m.USAGE)}function of(e,t,n){let r=Se(e.assignee,{label:"--assignee"});rf(r);let o=ho(e),i=go(e);return{typeFilter:ao(e.type,t),tagFilter:Se(e.tag,{label:"--tag",normalize:s=>s.toLowerCase()}),priorityFilter:co(e.priority),deadlineBefore:Cn(e.deadlineBefore,"deadline-before"),deadlineAfter:Cn(e.deadlineAfter,"deadline-after"),updatedAfter:ge(e.updatedAfter,"updated-after"),updatedBefore:ge(e.updatedBefore,"updated-before"),createdAfter:ge(e.createdAfter,"created-after"),createdBefore:ge(e.createdBefore,"created-before"),assigneeFilter:r,sprintFilter:Se(e.sprint,{label:"--sprint"}),releaseFilter:Se(e.release,{label:"--release"}),parentFilter:e.parent?.trim(),statusSet:n&&n.length>0?new Set(n):void 0,missingMetadataFilters:o,missingMetadataActive:uo(o),contentFieldFilters:i,contentFiltersActive:mo(i)}}function sf(e,t){return af(e,t)&&cf(e,t)&&df(e,t)}function af(e,t){if(t.statusSet&&!t.statusSet.has(e.status)||t.typeFilter&&!t.typeFilter.has(e.type))return!1;let n=t.tagFilter;return!(n&&!Ct(e.tags).some(r=>n.has(r))||t.priorityFilter!==void 0&&!t.priorityFilter.has(e.priority))}function cf(e,t){return fr(e,t)}function df(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 lf(e,t,n,r){let o=e.metadata;return!(!sf(o,t)||!et(o,n)||t.missingMetadataActive&&!fo(o,t.missingMetadataFilters,r)||t.contentFiltersActive&&!po(o,t.contentFieldFilters))}function us(e,t,n,r,o,i){let s=of(t,n,o);return e.filter(a=>lf(a,s,r,i))}function Hn(e,t){let n=0,r=0;for(;;){let o=e.indexOf(t,r);if(o<0)return n;n+=1,r=o+t.length}}function uf(e){return me(e)}function fs(e){let t=(e.files??[]).map(s=>({scope:s.scope,path:s.path.trim()})),n=(e.docs??[]).map(s=>({scope:s.scope,path:s.path.trim()})),r=(e.tests??[]).filter(s=>typeof s.path=="string"&&s.path.trim().length>0).map(s=>({scope:s.scope,path:s.path.trim()})),o=[...t,...n,...r].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 o)i.set(`${s.scope}:${s.path}`,s);return[...i.values()]}async function Zi(e){let t=jn.resolve(e);try{let n=await St.realpath(t);return{resolved:t,realpath:n}}catch{return null}}async function ms(e,t){let[n,r]=await Promise.all([Zi(e),Zi(t)]);return{projectContainmentRoot:n,globalContainmentRoot:r}}async function ps(e,t){let n=fs(e.metadata),r=[];for(let o of n){let i=o.scope==="global"?t.globalContainmentRoot:t.projectContainmentRoot;if(!i)continue;let s=jn.resolve(i.resolved,o.path);if(!Ft(i.resolved,s))continue;let a;try{a=await St.realpath(s)}catch{continue}if(Ft(i.realpath,a))try{await ve({path:s,scope:o.scope}),r.push(await St.readFile(s,"utf8"))}catch{}}return r.join(`
10
+ `)}var hs=[{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=>Ct(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=>ee(e.metadata.comments).map(t=>t.text).join(" ")},{name:"notes",weightKey:"notes_weight",value:e=>ee(e.metadata.notes).map(t=>t.text).join(" ")},{name:"learnings",weightKey:"learnings_weight",value:e=>ee(e.metadata.learnings).map(t=>t.text).join(" ")},{name:"reminders",weightKey:"reminders_weight",value:e=>jt(e.metadata).join(" ")},{name:"events",weightKey:"events_weight",value:e=>Ut(e.metadata).join(" ")},{name:"dependencies",weightKey:"dependencies_weight",value:e=>Un(e.metadata.dependencies).map(t=>`${t.id} ${t.kind}`).join(" ")},{name:"plan",weightKey:"body_weight",value:e=>Ht(e.metadata)}],ff=new Map(hs.map(e=>[e.name,e]));function mf(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function gs(e,t){let n=t.filter(o=>o.length>0).sort((o,i)=>i.length-o.length).map(mf);if(n.length===0)return e;let r=new RegExp(n.join("|"),"gi");return e.replace(r,o=>`${Zu}${o}${ef}`)}function _s(e,t){if(e.length===0)return null;let n=e.toLowerCase(),r=-1,o=0;for(let l of t){if(l.length===0)continue;let u=n.indexOf(l);u>=0&&(r<0||u<r)&&(r=u,o=l.length)}if(r<0)return null;let i=Math.max(0,r-Ji),s=Math.min(e.length,r+o+Ji),a=gs(e.slice(i,s),t),d=i>0?"\u2026":"",c=s<e.length?"\u2026":"";return`${d}${a}${c}`}function ys(e,t,n){let r=[];for(let o of t){let i=ff.get(o);if(i===void 0)continue;let s=_s(i.value(e),n);s!==null&&r.push({field:o,snippet:s})}return r}function pf(e,t,n){return[...hs.map(r=>({name:r.name,value:r.value(e),weight:n[r.weightKey]})),{name:"linked_content",value:t,weight:n.linked_content_weight}]}function hf(e,t,n){let r=V(e.id),o=typeof n=="string"?n.trim().toLowerCase():"",i=V(o),s=i.length>0&&r.startsWith(i)?r.slice(i.length).trim():r;return t!==r&&t!==s?null:{item:e,score:t===r?Qu:Ju,matched_fields:["id"],matched_all_terms:!0,exact_id_match:!0}}function gf(e,t,n,r,o){for(let i of e){let s=t.get(i)??0;s>0&&(o.score+=s*r.title_exact_bonus,o.matched.add("title"),o.matchedTokens.add(i));for(let a of n){let d=Hn(a.value.toLowerCase(),i);d>0&&(o.score+=d*a.weight,o.matched.add(a.name),o.matchedTokens.add(i))}}}function _f(e,t,n,r){V(e.title)===t&&(r.score+=Vu,r.matched.add("title"));for(let i of n){let s=Hn(V(i.value),t);s>0&&(r.score+=s*i.weight*Yu,r.matched.add(i.name))}}function vs(e,t,n,r,o,i,s=!1){let a=e.metadata,d=hf(a,n,i);if(d)return d;let c=new Map;for(let y of uf(a.title))c.set(y,(c.get(y)??0)+1);let l=pf(e,r,o),u={score:0,matched:new Set,matchedTokens:new Set};gf(t,c,l,o,u);let f=new Set(t),h=f.size>0&&u.matchedTokens.size===f.size;return s&&f.size>1&&h&&(u.score+=Xu),t.length>=Ku&&n.includes(" ")&&_f(a,n,l,u),u.score<=0?null:{item:a,score:u.score,matched_fields:[...u.matched].sort((y,g)=>y.localeCompare(g)),matched_all_terms:h}}function ws(e,t){return[...e].sort((n,r)=>{let o=r.score-n.score;if(o!==0)return o;let i=X(n.item.status,t),s=X(r.item.status,t);if(i!==s)return i?1:-1;let a=n.item.priority-r.item.priority;if(a!==0)return a;let d=E(r.item.updated_at,n.item.updated_at);return d!==0?d:n.item.id.localeCompare(r.item.id)})}function bs(e,t,n,r,o,i,s,a=!1){return vs(e,t,n,r?o.get(e.metadata.id)??"":"",i,s,a)}function Nn(e){if(e.size===0)return new Map;let t=[...e.values()],n=Math.min(...t),r=Math.max(...t);if(r===n)return new Map([...e.keys()].map(i=>[i,1]));let o=new Map;for(let[i,s]of e)o.set(i,(s-n)/(r-n));return o}function ks(e,t,n,r,o,i,s,a,d,c,l,u,f,h){let _=f?{total:0,count_only:!0}:{};if(c.mode==="compact"&&r.compact===!0){let v=Le({mode:t,matchMode:n,options:r,includeLinked:o,titleExact:r.titleExact===!0,phraseExact:r.phraseExact===!0,scoreThreshold:i,hybridSemanticWeight:s,runtimeFieldFilters:u});return{query:e.trim(),mode:t,...Bn(h),items:[],count:0,..._,filters:v,...l.length>0?{warnings:l}:{}}}let g=c.mode==="full"?null:[...c.fields];return{query:e.trim(),mode:t,mode_source:h,items:[],count:0,..._,filters:Ne({effectiveMode:t,matchMode:n,options:r,includeLinked:o,titleExact:r.titleExact===!0,phraseExact:r.phraseExact===!0,scoreThreshold:i,hybridSemanticWeight:s,queryExpansion:a,rerank:d,runtimeFieldFilters:u??{}}),projection:{mode:c.mode,fields:g},now:O(),...l.length>0?{warnings:l}:{}}}function Gn(e,t,n,r){if(!t.active)throw new p(`Search mode '${e}' requires a configured embedding provider in settings.providers.openai or settings.providers.ollama`,m.USAGE);if(!n.active&&!r)throw new p(`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`,m.USAGE);return{provider:t.active,vectorStore:n.active??null}}var H=Dt;function xt(e){let t=x(),n=Ur(t,e);if(!n)return null;let r=n.runtime_definition??n.definition,o=r.query,i=r.queryExpansion??r.query_expansion,s=r.rerank,a=H(r.name)??H(n.definition.name)??e;if(!a)return null;let d={providerName:a,...typeof o=="function"?{query:o}:{},...typeof i=="function"?{queryExpansion:i}:{},...typeof s=="function"?{rerank:s}:{}};return!d.query&&!d.queryExpansion&&!d.rerank?null:d}function Ss(e){let t=H(e.search?.provider),n=xt(t);return n?.query?{providerName:n.providerName,query:n.query}:null}function Es(e){let t=x(),n=H(e.vector_store?.adapter),r=Hr(t,n);if(!r)return null;let o=r.runtime_definition??r.definition,i=o.query;if(typeof i!="function")return null;let s=o.upsert;return{adapterName:H(o.name)??H(r.definition.name)??n??"extension",query:i,...typeof s=="function"?{upsert:s}:{}}}function Cs(e,t,n){let r=Array.isArray(t)?t:t?.hits;if(!Array.isArray(r))throw new p(`Extension search provider "${e}" must return an array of hits or { hits: [...] }`,m.GENERIC_FAILURE);let o=new Set,i=[];for(let s of r){if(typeof s!="object"||s===null)continue;let a=H(s.id),d=s.score;if(!a||typeof d!="number"||!Number.isFinite(d)||o.has(a))continue;let c=n.get(a);if(!c)continue;let l=s.matched_fields,u=Array.isArray(l)&&l.every(f=>typeof f=="string")?[...new Set(l.map(f=>f.trim()).filter(f=>f.length>0))].sort((f,h)=>f.localeCompare(h)):[`provider:${e}`];o.add(a),i.push({item:c.metadata,score:d,matched_fields:u})}return i}function xs(e,t){let n=[],r=new Map;for(let o of e){if(r.has(o.id))continue;let i=t.get(o.id);i&&(r.set(o.id,o.score),n.push({item:i.metadata,score:o.score,matched_fields:["semantic"]}))}return{semanticHits:n,semanticScores:r}}function Et(e,t){let n=t.filter(c=>c.exact_id_match===!0);if(n.length===0)return e;let r=new Set(n.map(c=>c.item.id)),o=e.filter(c=>!r.has(c.item.id)),i=o.reduce((c,l)=>Math.max(c,l.score),0),s=n.sort((c,l)=>l.score-c.score),a=i+s.length+1;return[...s.map((c,l)=>({...c,score:a-l,matched_fields:["id"]})),...o]}function Wn(e,t,n,r,o="semantic"){let i=new Map(n.map(u=>[u.item.id,u.score])),s=new Map(n.map(u=>[u.item.id,u.matched_fields])),a=Nn(t),d=Nn(i),c=new Set([...t.keys(),...i.keys()]),l=1-r;return[...c].map(u=>{let f=e.get(u),h=a.get(u)??0,_=d.get(u)??0,y=h*r+_*l;if(y<=0)return null;let g=new Set;t.has(u)&&g.add(o);for(let v of s.get(u)??[])g.add(v);return{item:f.metadata,score:y,matched_fields:[...g].sort((v,k)=>v.localeCompare(k))}}).filter(u=>u!==null)}function Ts(e){let t=e.configuredProvider?.trim().toLowerCase();return t==="bm25"?"explicit":t==="auto"&&!e.hasEmbeddingProvider&&!e.hasExtensionSearchProvider?"auto-fallback":null}function Is(e){let t=e.filteredDocuments.map(s=>({id:s.metadata.id,text:Xi(Kr(s,{fields:e.corpusFields}))})),n=Vi(t),r=Yi(n,Ln(e.query),e.bm25Params),o=new Map(e.filteredDocuments.map(s=>[s.metadata.id,s]));if(e.requestedMode==="semantic"){let s=[...r].map(([a,d])=>({item:o.get(a).metadata,score:d,matched_fields:["bm25"]}));return Et(s,e.keywordHits)}let i=Wn(o,r,e.keywordHits,e.hybridSemanticWeight,"bm25");return Et(i,e.keywordHits)}function As(e){let t=new Map;for(let r of e)for(let o of r){let i=t.get(o.id);(!i||o.score>i.score)&&t.set(o.id,o)}let n=[...t.values()];return n.sort((r,o)=>r.score!==o.score?o.score-r.score:r.id.localeCompare(o.id)),n}function Rs(e){let t=e.metadata,n=Array.isArray(t?.tags)?t.tags.join(" "):"";return[t?.title,t?.description,t?.type,t?.status,n,e.body].map(r=>typeof r=="string"?r.trim():"").filter(r=>r.length>0).join(`
11
+ `)}async function yf(e,t){let n=e.queryExpansion.enabled?ji(t,e.queryExpansion.max_queries):[t],r=n.length>0?n:[t];if(!e.queryExpansion.enabled)return r;if(e.queryExpansionExtension?.expand)try{let o=await Promise.resolve(e.queryExpansionExtension.expand({query:t,mode:e.requestedMode,settings:e.settings}));return Hi(r,Ui(o),e.queryExpansion.max_queries)}catch{return e.warnings.push(`search_query_expansion_provider_failed:${e.queryExpansionExtension.providerName}:using_builtin`),r}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`),r}async function vf(e,t,n,r){if(e.extensionVectorAdapter?.query)try{return await Promise.resolve(e.extensionVectorAdapter.query({vector:t,limit:n,settings:e.settings}))}catch(o){if(!e.vectorStore)throw new p(`Extension vector adapter query failed and no built-in fallback store is configured (${o instanceof Error?o.message:String(o)})`,m.GENERIC_FAILURE);return e.warnings.push(`search_vector_adapter_failed:${e.extensionVectorAdapter.adapterName}:using_builtin`),await Gt(e.vectorStore,t,n,r)}if(e.vectorStore)return await Gt(e.vectorStore,t,n,r);throw new p("Semantic search requires either a configured vector store or an extension vector adapter query handler",m.USAGE)}function wf(e,t,n){return[...e].sort((o,i)=>o.score!==i.score?i.score-o.score:o.item.id.localeCompare(i.item.id)).slice(0,n).map(o=>{let i=t.get(o.item.id);return i?{hit:o,text:Rs(i)}:null}).filter(o=>o!==null)}async function bf(e,t,n){if(!e.rerankExtension?.rerank)return null;try{let r=await Promise.resolve(e.rerankExtension.rerank({query:t,mode:"hybrid",model:e.rerank.model,top_k:e.rerank.top_k,settings:e.settings,candidates:n.map(i=>({id:i.hit.item.id,text:i.text,score:i.hit.score}))})),o=Bi(r);return o.length>0?new Map(o.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 kf(e,t,n){let r=await bf(e,t,n);if(r)return r;let o=n.map(i=>({id:i.hit.item.id,text:i.text}));try{return await zi(e.provider,e.rerank.model,t,o,e.embeddingTimeoutMs)}catch{return e.warnings.push("search_rerank_failed:using_hybrid_scores"),null}}function Sf(e,t){let n=new Set(t.keys()),r=e.map(o=>{let i=t.get(o.item.id);if(i===void 0)return o;let s=new Set(o.matched_fields);return s.add("rerank"),{...o,score:i,matched_fields:[...s].sort((a,d)=>a.localeCompare(d))}});return r.sort((o,i)=>{let s=n.has(o.item.id),a=n.has(i.item.id);return s!==a?s?-1:1:o.score!==i.score?i.score-o.score:o.item.id.localeCompare(i.item.id)}),r}async function Ef(e,t,n,r){if(!e.rerank.enabled||n.length<=1)return n;let o=wf(n,r,e.rerank.top_k),i=await kf(e,t,o);return i&&i.size>0?Sf(n,i):n}async function Fs(e){let t=Math.max(e.limit??e.maxResults,e.maxResults),n=e.embeddingTimeoutMs!==void 0?{timeout_ms:e.embeddingTimeoutMs}:{},r=e.vectorQueryTimeoutMs!==void 0?{timeout_ms:e.vectorQueryTimeoutMs}:{},o=e.query.trim(),i=await yf(e,o),s=await tt(e.provider,i,n),a=await Promise.all(s.map(async _=>await vf(e,_,t,r))),d=As(a),c=new Map(e.filteredDocuments.map(_=>[_.metadata.id,_])),{semanticHits:l,semanticScores:u}=xs(d,c),f=u.size;if(e.requestedMode==="semantic")return{hits:Et(l,e.keywordHits),vectorMatchCount:f};let h=await Ef(e,o,Wn(c,u,e.keywordHits,e.hybridSemanticWeight),c);return{hits:Et(h,e.keywordHits),vectorMatchCount:f}}async function Ms(e,t,n,r){let o=Yn(x()),i=async(c,l,u)=>{let f=async(h,_)=>{await ve({path:h,scope:"project"});let y=await St.readFile(h,"utf8");return wr(y,{format:_,schema:r,extensionFieldNames:o,onWarning:v=>s.push(v)}).body};try{return await f(l,u)}catch{let h=u==="toon"?"json_markdown":"toon",_=Mt(e,c.type,c.id,h,n);try{return await f(_,h)}catch{return s.push(`item_list_item_read_failed:${jn.relative(e,_)}`),""}}},s=[],a=await Dr(e,t,n,s,r),d=[];if(a.length===0){let c=await $r(e,t,n,s,r);for(let l of c){let u=Mt(e,l.type,l.id,t,n),f=await i(l,u,t);d.push({metadata:l,body:f})}return{documents:d,warnings:[...new Set(s)].sort((l,u)=>l.localeCompare(u))}}for(let c of a){if(typeof c.body=="string"){d.push({metadata:c.metadata,body:c.body});continue}let l=await i(c.metadata,c.item_path,c.item_format);d.push({metadata:c.metadata,body:l})}return{documents:d,warnings:[...new Set(s)].sort((c,l)=>c.localeCompare(l))}}function Ds(e,t){let n=t.trim();if(n.length===0)return null;if(n==="score")return e.score;if(n==="matched_fields")return e.matched_fields;if(n.startsWith("item.")){let i=n.slice(5);return i.length===0?null:e.item[i]??null}let r=e,o=e.item;return Object.prototype.hasOwnProperty.call(o,n)?o[n]??null:Object.prototype.hasOwnProperty.call(r,n)?r[n]??null:null}function $s(e,t){return t.mode==="full"?e.map(({matched_all_terms:n,exact_id_match:r,...o})=>o):e.map(n=>{let r={};for(let o of t.fields)r[o]=Ds(n,o);return r})}function Cf(e){let t=xt(e.provider??void 0);return t?.queryExpansion?{providerName:t.providerName,expand:t.queryExpansion}:null}function xf(e){let t=xt(H(e.search?.provider));return t?.rerank?{providerName:t.providerName,rerank:t.rerank}:null}function Tf(e,t){let n=[],r=ss(e),o=Object.keys(r.inlineFilters).length>0;if(o&&r.residualQuery.trim().length===0)throw new p("Inline field:value tokens consumed the entire query, leaving no search terms.",m.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=o?r.residualQuery:e,s=as(t,r.inlineFilters,n);return{query:i,options:s,inlineWarnings:n,highlight:s.highlight===!0,includeLinked:bt(s.includeLinked),titleExact:bt(s.titleExact),phraseExact:bt(s.phraseExact),matchMode:Ni(typeof s.matchMode=="string"?s.matchMode:void 0),minScoreOverride:Pi(s.minScore),countOnly:s.count===!0,tokens:In(i),normalizedQuery:V(i),limit:fe(s.limit),projection:xn(s,e),modeWasExplicit:typeof s.mode=="string"&&s.mode.trim().length>0}}async function If(e,t){let n=C(process.cwd(),t.path);await j(n);let r=await M(n),o=Wr(r).settings,i=P(o.schema),s=Y(o.schema);Tn(e.projection,s,e.query);let a=Ze(e.options,s,"search"),d=F(o,x()),c=qr(o),l=Vr(o,n),u=Ss(o),f=Es(o),h=Li(e.options.semanticWeight),_=Gi(o,c.active?.name??null),y=Wi(o,c.active?.model??H(o.search?.embedding_model)??"text-embedding-3-small");return{pmRoot:n,settings:o,statusRegistry:i,runtimeFieldRegistry:s,runtimeFieldFilters:a,typeRegistry:d,maxResults:An(o),scoreThreshold:e.minScoreOverride??Fn(o),semanticWeightProvided:e.options.semanticWeight!==void 0,semanticWeightOverride:h,hybridSemanticWeight:h??Mn(o),tuning:Dn(o),providerResolution:c,vectorResolution:l,extensionSearchProvider:u,extensionVectorAdapter:f,bm25Mode:Ts({configuredProvider:H(o.search?.provider),hasEmbeddingProvider:c.active!==null,hasExtensionSearchProvider:u!==null}),queryExpansion:_,queryExpansionExtension:Cf(_),rerank:y,rerankExtension:xf(o),...Af({requested:e.options.mode,settings:o,configuredProvider:r.search?.provider??null,providerResolution:c,vectorResolution:l,extensionSearchProvider:u,extensionVectorAdapter:f})}}function Af(e){let n=Br(e.providerResolution.active?.name,e.configuredProvider)==="configured"&&(e.vectorResolution.active!==null||e.extensionVectorAdapter!==null),r=e.extensionSearchProvider!==null||n,o=Rn({requested:e.requested,settings:e.settings,semanticRunnable:r});return{effectiveMode:o.mode,modeSource:o.source}}async function Rf(e,t){let n=await Ms(t.pmRoot,t.settings.item_format??"toon",t.typeRegistry.type_to_folder,t.settings.schema),r=Je(typeof e.options.status=="string"?e.options.status:void 0,t.statusRegistry,{strict:!0}),o=lo(t.statusRegistry),i=us(n.documents,e.options,t.typeRegistry,t.runtimeFieldFilters,r,o);return{warnings:n.warnings,allDocuments:n.documents,filteredDocuments:ls(i,e.normalizedQuery,{titleExact:e.titleExact,phraseExact:e.phraseExact||e.matchMode==="exact"})}}async function Ff(e,t,n){let r=new Map;if(!e||t!=="keyword"&&t!=="hybrid")return r;let o=process.cwd(),i=await ms(o,Zn(o)),s=await Promise.all(n.map(async a=>[a.metadata.id,await ps(a,i)]));for(let[a,d]of s)r.set(a,d);return r}async function Mf(e,t,n){let r=await Ff(e.includeLinked,t.effectiveMode,n),o=e.matchMode==="or";return n.map(i=>bs(i,e.tokens,e.normalizedQuery,e.includeLinked,r,t.tuning,t.settings.id_prefix,o)).filter(i=>i!==null).filter(i=>e.matchMode!=="and"||i.matched_all_terms===!0)}function es(e,t){return ks(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)}async function Df(e,t,n,r,o){if(t.bm25Mode===null||t.effectiveMode==="keyword")return null;let i=Is({requestedMode:t.effectiveMode,query:e.query,filteredDocuments:n,keywordHits:r,corpusFields:zr(t.settings),bm25Params:Qi(t.settings),hybridSemanticWeight:t.hybridSemanticWeight});return t.bm25Mode==="auto-fallback"&&o.push(`search_${t.effectiveMode}_offline_bm25:no_embedding_provider:using_lexical_bm25`),i}async function $f(e,t,n,r){if(!t.extensionSearchProvider)return null;let o=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:n}));return Cs(t.extensionSearchProvider.providerName,i,r)}catch(i){if(!o)throw new p(`Extension search provider "${t.extensionSearchProvider.providerName}" failed: ${i instanceof Error?i.message:String(i)}`,m.GENERIC_FAILURE);return null}}function Of(e,t,n,r){return t.vectorMatchCount>0?t.hits:(r.push(`search_${e}_degraded:no_vector_matches:results_are_lexical`),e==="semantic"?n:t.hits)}async function Lf(e,t,n,r,o){let i=!e.extensionSearchProvider&&e.providerResolution.active!==null&&(e.vectorResolution.active!==null||e.extensionVectorAdapter!==null);o&&i&&await is(e.pmRoot,n,r),e.extensionSearchProvider||Gn(t,e.providerResolution,e.vectorResolution,e.extensionVectorAdapter!==null)}async function Nf(e){let{prepared:t,runtime:n,filteredDocuments:r,keywordHits:o,warnings:i,modeWasExplicit:s}=e,a=o,d=await Df(t,n,r,o,i),c=n.effectiveMode;if(d!==null||c==="keyword")return{effectiveMode:n.effectiveMode,hits:d??a};try{if(await Lf(n,c,r,i,s),r.length===0||t.limit===0)return{effectiveMode:n.effectiveMode,hits:[]};let l=new Map(r.map(u=>[u.metadata.id,u]));if(a=await $f(t,n,r,l)??a,a===o){let{provider:u,vectorStore:f}=Gn(c,n.providerResolution,n.vectorResolution,n.extensionVectorAdapter!==null),h=await Fs({requestedMode:c,query:t.query,filteredDocuments:r,keywordHits:o,hybridSemanticWeight:n.hybridSemanticWeight,limit:t.limit,maxResults:n.maxResults,provider:u,vectorStore:f,extensionVectorAdapter:n.extensionVectorAdapter,queryExpansion:n.queryExpansion,queryExpansionExtension:n.queryExpansionExtension,rerank:n.rerank,rerankExtension:n.rerankExtension,warnings:i,settings:n.settings});a=Of(c,h,o,i)}return{effectiveMode:n.effectiveMode,hits:a}}catch(l){return i.push(os(n.effectiveMode,l)),{effectiveMode:"keyword",hits:o}}}function Pf(e,t){if(e.projection.mode==="compact"&&e.options.compact===!0)return Pn({query:e.query.trim(),mode:e.effectiveMode,...Bn(e.modeSource),items:[],count:t,total:t,count_only:!0,filters:Le({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 n=e.projection.mode==="full"?null:[...e.projection.fields];return Pn({query:e.query.trim(),mode:e.effectiveMode,mode_source:e.modeSource,items:[],count:t,total:t,count_only:!0,filters:Ne({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:n},now:O()},e.warnings)}function Bn(e){return e==="settings"?{mode_source:e}:{}}function Pn(e,t){return t.length===0?e:{...e,warnings:t}}function kt(e,t){return t?{...e,workspace_memory:t}:e}function jf(e,t,n){if(!e.highlight)return{hits:n,projection:e.projection};let r=new Map(t.map(i=>[i.metadata.id,i])),o=n.map(i=>({...i,highlights:ys(r.get(i.item.id),i.matched_fields,e.tokens)}));return e.projection.mode==="full"||e.projection.fields.includes("highlights")?{hits:o,projection:e.projection}:{hits:o,projection:{mode:e.projection.mode,fields:[...e.projection.fields,"highlights"]}}}function Uf(e,t,n,r,o,i){let s=r<n?{total:n}:{};if(e.projection.mode==="compact"&&e.options.compact===!0)return Pn({query:e.query.trim(),mode:e.effectiveMode,...Bn(e.modeSource),items:t,count:t.length,...s,...i,filters:Le({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=o.mode==="full"?null:[...o.fields];return{query:e.query.trim(),mode:e.effectiveMode,mode_source:e.modeSource,items:t,count:t.length,...s,...i,filters:Ne({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:o.mode,fields:a},now:O(),...e.warnings.length>0?{warnings:e.warnings}:{}}}function Hf(e){if(e.after!==void 0&&e.count===!0)throw new p("Search --after cannot be combined with --count.",m.USAGE)}async function Jg(e,t,n){Hf(t);let r=Tf(e,t),o=await If(r,n),i=await Rf(r,o),s=i.warnings;s.push(...r.inlineWarnings);let a=await ht(i.allDocuments.map(S=>S.metadata),{pmRoot:o.pmRoot,statusRegistry:o.statusRegistry,now:O()});s.push(...a.warnings);let d=li(a,r.query);o.effectiveMode==="hybrid"&&o.semanticWeightProvided&&o.semanticWeightOverride===void 0&&s.push("search_hybrid_semantic_weight_override_invalid:using_settings_default");let c={query:r.query,modeSource:o.modeSource,matchMode:r.matchMode,options:r.options,includeLinked:r.includeLinked,titleExact:r.titleExact,phraseExact:r.phraseExact,scoreThreshold:o.scoreThreshold,hybridSemanticWeight:o.hybridSemanticWeight,queryExpansion:o.queryExpansion,rerank:o.rerank,projection:r.projection,warnings:s,runtimeFieldFilters:o.runtimeFieldFilters};if(o.effectiveMode==="keyword"&&(i.filteredDocuments.length===0||r.limit===0&&!r.countOnly))return kt(es({...c,effectiveMode:o.effectiveMode},r.countOnly),d);let l=await Mf(r,o,i.filteredDocuments),u=await Nf({prepared:r,runtime:o,filteredDocuments:i.filteredDocuments,keywordHits:l,warnings:s,modeWasExplicit:r.modeWasExplicit});if(u.effectiveMode!=="keyword"&&u.hits.length===0&&(i.filteredDocuments.length===0||r.limit===0&&!r.countOnly))return kt(es({...c,effectiveMode:u.effectiveMode},r.countOnly),d);let f=u.hits.filter(S=>S.exact_id_match===!0||S.score>=o.scoreThreshold),h=ws(f,o.statusRegistry),_=h.length,y=Oi({sorted:h,query:r.query,mode:u.effectiveMode,searchOptions:r.options,limit:r.limit??o.maxResults}),g={...c,effectiveMode:u.effectiveMode};if(r.countOnly)return kt(Pf(g,_),d);let{hits:v,projection:k}=jf(r,i.filteredDocuments,y.limited),w=$s(v,k);return kt(Uf(g,w,_,y.limited.length,k,y.pageExtras),d)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="499dfc08-cf70-55fe-8868-65c3107e3a91")}catch{}})();async function n_(e,t={}){let n=await yo({pmRoot:C(process.cwd(),e.path),exhaustive:t.exhaustive,...t.status===void 0?{}:{statuses:t.status.flatMap(r=>r.split(",").map(o=>o.trim()).filter(Boolean))},...t.since===void 0?{}:{since:t.since},...t.threshold===void 0?{}:{threshold:t.threshold},...t.limit===void 0?{}:{limit:t.limit}});return{...n,clusters:n.clusters.map(r=>{let o=r.id;return{...r,canonical_id:o,close_command:`pm close <duplicate-id> --duplicate-of ${o}`}}),guidance:{strategy:"review_then_close_duplicate",command:"pm close <duplicate-id> --duplicate-of <canonical-id>"}}}export{Ns as a,zt as b,Gf as c,Bs as d,qs as e,Wf as f,wo as g,rt as h,zs as i,ot as j,st as k,km as l,Co as m,Em as n,Rm as o,Fm as p,Pm as q,jm as r,Um as s,Vo as t,sn as u,ft as v,Rc as w,Jo as x,Oc as y,mt as z,Lc as A,Nc as B,Hc as C,Gc as D,Vm as E,Wc as F,Zo as G,an as H,cn as I,Zc as J,id as K,ip as L,dn as M,ln as N,pt as O,ld as P,pd as Q,ht as R,bd as S,di as T,kd as U,li as V,fi as W,bp as X,kp as Y,Sp as Z,Ep as _,mi as $,Sd as aa,Rd as ba,Ie as ca,qp as da,pn as ea,Dd as fa,$d as ga,gn as ha,Z as ia,yn as ja,vn as ka,wn as la,he as ma,Fe as na,_t as oa,zp as pa,$l as qa,Kp as ra,jl as sa,oh as ta,ih as ua,sh as va,ah as wa,ch as xa,vh as ya,Ai as za,Ri as Aa,Fi as Ba,Hh as Ca,Gh as Da,Le as Ea,Ne as Fa,Fu as Ga,Oi as Ha,An as Ia,Rn as Ja,Fn as Ka,Mn as La,Dn as Ma,ns as Na,rs as Oa,tf as Pa,nf as Qa,Qg as Ra,Jg as Sa,n_ as Ta};
12
+ //# sourceMappingURL=chunk-2WSBXIGF.js.map
@@ -0,0 +1,3 @@
1
+ import{$ as _,O as V,Ob as B,P as W,Q as K,R as G,aa as y,ja as J,ma as H,na as Y,q as C,r as x,s as $,t as P,u as q}from"./chunk-XSS3APUF.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="84305ac5-3641-52f5-80f2-22c0f0ae70ae")}catch{}})();var k=new Set(W),z=Object.freeze({get size(){return k.size},has(e){return k.has(e)},entries(){return k.entries()},keys(){return k.keys()},values(){return k.values()},forEach(e,t){k.forEach(r=>e.call(t,r,r,z))},[Symbol.iterator](){return k.values()}});function X(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function Z(e){return typeof e!="string"?null:V(e)}function ce(e){try{return structuredClone(e)}catch{return e}}function de(e){let t=e.trim(),r=t.indexOf("=");if(r<=0)throw new y(`--field entries must use name=value syntax, received: ${e}`,_.USAGE);let n=t.slice(0,r).trim(),s=t.slice(r+1);return{key:n,value:s}}function ue(e){return`--${e.replaceAll("_","-")}`}function fe(e,t,r){try{let n=JSON.parse(e);if(r==="array"&&Array.isArray(n)||r==="object"&&typeof n=="object"&&n!==null&&!Array.isArray(n))return n}catch{}throw new y(`--field ${t}=... must be valid JSON ${r}`,_.USAGE)}function me(e,t,r){if(t==="string")return r;if(t==="number"){let n=r.trim();if(n.length===0)throw new y(`--field ${e}=... must be a number`,_.USAGE);let s=Number(n);if(!Number.isFinite(s))throw new y(`--field ${e}=... must be a number`,_.USAGE);return s}if(t==="boolean"){let n=r.trim().toLowerCase();if(n==="true"||n==="1"||n==="yes")return!0;if(n==="false"||n==="0"||n==="no")return!1;throw new y(`--field ${e}=... must be one of true|false|1|0|yes|no`,_.USAGE)}return t==="string_array"?r.split(/[\n,|]/u).map(n=>n.trim()).filter(n=>n.length>0):fe(r,e,t)}function U(e){let t=new Map;if(!e)return t;for(let r of e.item_fields)for(let n of r.fields){let s=X(n.name),i=Z(n.type);if(!s||!i)continue;let l=t.get(s);if(l&&l.type!==i)throw new y(`Extension item field "${s}" is declared with conflicting types: ${l.type}, ${i}`,_.USAGE,{code:"extension_item_field_type_conflict",nextSteps:["Make every active extension declaration for this field use the same type."]});t.set(s,{name:s,type:i})}return t}function Q(e){if(z.has(e))throw new y(`Extension item field "${e}" collides with built-in item metadata "${e}"; rename the extension field with an extension-specific prefix. Reserved fields: ${[...z].sort((t,r)=>t.localeCompare(r)).join(", ")}.`,_.USAGE,{code:"extension_item_field_reserved",nextSteps:["Rename the extension item field, preferably with an extension-specific prefix."]})}function Ze(e){return[...U(e).keys()].sort((t,r)=>t.localeCompare(r))}function Qe(e,t){if(!e||e.length===0)return{};let r=U(t),n={};for(let s of e){let{key:i,value:l}=de(s),a=r.get(i);if(!a){if(z.has(i)){let c=ue(i);throw new y(`--field ${i} is a core item field, not an extension field`,_.USAGE,{code:"core_item_field_requires_dedicated_flag",field:i,recovery:{provided_fields:[i],suggested_flags:[c]},nextSteps:[`Set the core field with its dedicated flag: pm update <id> ${c} <value>`,`When closing an item, pm close <id> also accepts ${c} <value>.`]})}let o=[...r.keys()].sort((c,u)=>c.localeCompare(u));throw new y(`--field ${i} is not declared by an active extension item-field registration`,_.USAGE,{code:"extension_item_field_unknown",recovery:{provided_fields:o},nextSteps:o.length>0?[`Use one of the declared fields: ${o.join(", ")}`]:["Activate an extension that calls registerItemFields before setting extension fields."]})}Q(a.name),n[a.name]=me(a.name,a.type,l)}return n}function _e(e,t){return t==="string"?typeof e=="string":t==="number"?typeof e=="number"&&Number.isFinite(e):t==="boolean"?typeof e=="boolean":t==="array"?Array.isArray(e):t==="string_array"?Array.isArray(e)&&e.every(r=>typeof r=="string"):typeof e=="object"&&e!==null&&!Array.isArray(e)}function ye(e,t){return!t||t.length===0?!0:t.some(r=>Object.is(r,e))}function et(e,t,r={}){if(t){U(t);for(let n of t.item_fields)for(let s of n.fields){let i=X(s.name);if(!i)continue;Q(i),!(i in e)&&!r.skipDefaultFields?.has(i)&&Object.prototype.hasOwnProperty.call(s,"default")&&(e[i]=ce(s.default));let l=e[i];if(l===void 0)continue;let a=Z(s.type);if(a&&!_e(l,a))throw new TypeError(`Item field "${i}" must be of type ${a}`);let o=Array.isArray(s.values)?s.values:void 0;if(!ye(l,o))throw new TypeError(`Item field "${i}" must match one of the configured allowed values`)}}}(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]="d66d32f8-a5f2-5068-bcd0-b93094d7c6a4")}catch{}})();var pe=2e3,D=new Map;function A(e){if(typeof e!="string")return"";let t=D.get(e);if(t!==void 0)return t;let r=e.trim().toLowerCase().replaceAll(/[\s-]+/g,"_");return D.size>=pe&&B(D),D.set(e,r),r}import ee 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]="87798e93-c34c-5355-aa60-695fb9e3eef1")}catch{}})();var p=Object.freeze({types:"schema/types.json",statuses:"schema/statuses.json",fields:"schema/fields.json",workflows:"schema/workflows.json"}),ne=G,L=K,we=["create","update"],he=new Set(x),Se=new Set($),ge=new Set(P),Ae=new Set(q),be=new Set(["string","number","boolean","array","object"]),Ee=16;function se(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var ve=[e=>e.type===void 0||typeof e.type=="string"&&be.has(e.type),e=>!Object.hasOwn(e,"const")||N(e.const),e=>e.enum===void 0||Array.isArray(e.enum)&&e.enum.every(t=>N(t)),e=>e.min_length===void 0||Number.isInteger(e.min_length)&&e.min_length>=0,e=>e.min_items===void 0||Number.isInteger(e.min_items)&&e.min_items>=0,e=>e.format===void 0||e.format==="date-time",e=>e.required===void 0||Array.isArray(e.required)&&e.required.every(t=>typeof t=="string"&&t.length>0),e=>e.additional_properties===void 0||typeof e.additional_properties=="boolean",e=>e.properties===void 0||se(e.properties),e=>e.one_of===void 0||Array.isArray(e.one_of)&&e.one_of.length>0];function N(e,t=new Set){if(e===null||typeof e=="string"||typeof e=="boolean")return!0;if(typeof e=="number")return Number.isFinite(e);if(typeof e!="object"||t.has(e))return!1;t.add(e);let r=Array.isArray(e)?e.every(n=>N(n,t)):Object.values(e).every(n=>N(n,t));return t.delete(e),r}function R(e,t=0,r=new Set){if(!se(e)||t>Ee||r.has(e))return;r.add(e);let n=e,s=n.type,i=n.enum,l=n.one_of,a=n.properties,o=n.items,c=n.required,u=n.min_length,d=n.min_items,w=n.format,S=n.additional_properties;if(!ve.every(m=>m(n))){r.delete(e);return}let b=a===void 0?void 0:Object.fromEntries(Object.entries(a).map(([m,O])=>[m,R(O,t+1,r)])),E=o===void 0?void 0:R(o,t+1,r),v=l===void 0?void 0:l.map(m=>R(m,t+1,r));if([...Object.values(b??{}),...o===void 0?[]:[E],...v??[]].some(m=>m===void 0)){r.delete(e);return}return r.delete(e),Object.fromEntries(Object.entries({type:s,const:Object.hasOwn(n,"const")?n.const:void 0,enum:i,min_length:u,min_items:d,format:w,properties:b,required:c===void 0?void 0:[...new Set(c)],additional_properties:S,items:E,one_of:v}).filter(([,m])=>m!==void 0))}function T(e){let t=Array.isArray(e)?e:[];return[...new Set(t.map(r=>typeof r=="string"?r.trim():"").filter(r=>r.length>0))].sort((r,n)=>r.localeCompare(n))}function f(e){if(typeof e!="string"||e.length===0)return;let t=A(e);return t.length>0?t:void 0}function ke(e){return e.startsWith("--")?e.slice(2):e}function te(e){return typeof e=="string"?ke(e.trim().toLowerCase().replaceAll(/[\s_]+/g,"-")):""}function ie(e){return e.replaceAll("_","-")}function Fe(e){let t=e.replaceAll(/[^A-Za-z0-9]+/g," ").trim().split(/\s+/).filter(s=>s.length>0).map(s=>s.toLowerCase());if(t.length===0)return e;let[r,...n]=t;return`${r}${n.map(s=>`${s.slice(0,1).toUpperCase()}${s.slice(1)}`).join("")}`}function M(e,t){let r=f(e.id);if(!r)return null;let n=[...new Set(T(e.aliases).map(A).filter(a=>a.length>0))].sort((a,o)=>a.localeCompare(o)),s=T(e.roles).filter(a=>he.has(a)),i=e.description?.trim(),l=typeof e.order=="number"&&Number.isFinite(e.order)?e.order:t;return{id:r,aliases:n,roles:s,description:i&&i.length>0?i:void 0,order:l}}function Te(e){return{draft_status:f(e?.draft_status),open_status:f(e?.open_status),in_progress_status:f(e?.in_progress_status),blocked_status:f(e?.blocked_status),close_status:f(e?.close_status),canceled_status:f(e?.canceled_status)}}function oe(e,t){if(!Array.isArray(t)||t.length!==2)return;let r=A(t[0]),n=A(t[1]);r.length===0||n.length===0||e.pairs.some(s=>s[0]===r&&s[1]===n)||e.pairs.push([r,n])}function Ie(e){let t=typeof e?.type=="string"?e.type.trim():"";if(t.length===0||!Array.isArray(e?.allowed_transitions))return null;let r={type:t,pairs:[],denyAll:e.allowed_transitions.length===0};for(let n of e.allowed_transitions)oe(r,n);return{typeKey:t.toLowerCase(),record:r}}function ze(e){if(!Array.isArray(e)||e.length===0)return;let t=new Map;for(let n of e){let s=Ie(n);if(s===null)continue;let i=t.get(s.typeKey)??s.record;i.denyAll||=s.record.denyAll;for(let l of s.record.pairs)oe(i,l);t.set(s.typeKey,i)}let r=[];for(let n of t.values())(n.pairs.length>0||n.denyAll)&&r.push({type:n.type,allowed_transitions:n.pairs});return r.sort((n,s)=>n.type.localeCompare(s.type)),r.length>0?r:void 0}function ae(e){let t=A(e.key??"");if(!t)return null;let r=A(e.metadata_key??e.front_matter_key??t),n=te(e.cli_flag??ie(t));if(!n)return null;let s=T(e.cli_aliases).map(d=>te(d)).filter(d=>d.length>0&&d!==n),i=typeof e.type=="string"?e.type.trim().toLowerCase():"string",l=Se.has(i)?i:"string",a=(()=>{let d=T(e.commands).filter(w=>ge.has(w));return d.length>0?d:[...we]})(),o=e.description?.trim(),c=T(e.required_types),u=e.value_schema===void 0?void 0:R(e.value_schema);return e.value_schema!==void 0&&u===void 0?null:{key:t,metadata_key:r,cli_flag:n,cli_aliases:s,description:o&&o.length>0?o:void 0,type:l,commands:a,repeatable:[e.repeatable===!0,l==="string_array"].includes(!0),required:e.required===!0,required_on_create:e.required_on_create===!0,required_types:c,allow_unset:e.allow_unset!==!1,value_schema:u}}function De(e){let t=new Map;for(let[n,s]of e.entries()){let i=M(s,n);i&&t.set(i.id,i)}let r=re([...t.values()]);return r.length>0?r:re(L.map((n,s)=>M(n,s)).filter(n=>n!==null))}function re(e){return e.sort((t,r)=>t.order===r.order?t.id.localeCompare(r.id):t.order-r.order)}function Re(e){let t=new Map;for(let r of e??[]){let n=ae(r);n&&t.set(n.key,n)}return[...t.values()].sort((r,n)=>r.key.localeCompare(n.key))}function Ne(e){return{id:e.id,aliases:e.aliases.length>0?[...e.aliases]:void 0,roles:e.roles.length>0?[...e.roles]:void 0,description:e.description,order:e.order}}function Oe(e){return{key:e.key,metadata_key:e.metadata_key!==e.key?e.metadata_key:void 0,cli_flag:e.cli_flag!==ie(e.key)?e.cli_flag:void 0,cli_aliases:e.cli_aliases.length>0?[...e.cli_aliases]:void 0,description:e.description,type:e.type,commands:[...e.commands],repeatable:e.repeatable===!0?!0:void 0,required:e.required===!0?!0:void 0,required_on_create:e.required_on_create===!0?!0:void 0,required_types:e.required_types.length>0?[...e.required_types]:void 0,allow_unset:e.allow_unset===!1?!1:void 0,value_schema:e.value_schema}}function Ue(e){let t=typeof e=="string"?e.trim().toLowerCase():"allow";return Ae.has(t)?t:"allow"}function I(e){let t={...p,...e?.files},r=e?.statuses&&e.statuses.length>0?e.statuses:L,n=De(r),s=Re(e?.fields);return{version:typeof e?.version=="number"&&Number.isFinite(e.version)?Math.floor(e.version):1,files:t,statuses:n.map(Ne),fields:s.map(Oe),workflow:{...ne,...Te(e?.workflow)},type_workflows:ze(e?.type_workflows),unknown_field_policy:Ue(e?.unknown_field_policy)}}function Me(e){return`${JSON.stringify(e,null,2)}
2
+ `}function Le(){return{definitions:[]}}function je(){return{statuses:L}}function Ce(){return{fields:[]}}function xe(){return{workflow:ne}}function $e(e,t,r){try{return JSON.parse(e)}catch{r.push(t);return}}function Pe(e){if(Array.isArray(e))return e;if(typeof e!="object"||e===null)return;let t=e;if(Array.isArray(t.definitions))return t.definitions;if(typeof t.item_types=="object"&&t.item_types!==null){let r=t.item_types;if(Array.isArray(r.definitions))return r.definitions}}function qe(e){if(Array.isArray(e))return e;if(typeof e!="object"||e===null)return;let t=e;if(Array.isArray(t.statuses))return t.statuses;if(Array.isArray(t.definitions))return t.definitions}function Ve(e){if(Array.isArray(e))return e;if(typeof e!="object"||e===null)return;let t=e;if(Array.isArray(t.fields))return t.fields;if(Array.isArray(t.definitions))return t.definitions}function We(e){if(typeof e!="object"||e===null||Array.isArray(e))return;let t=e;return typeof t.workflow=="object"&&t.workflow!==null&&!Array.isArray(t.workflow)?t.workflow:typeof t.workflows=="object"&&t.workflows!==null&&!Array.isArray(t.workflows)?t.workflows:t}function Ke(e){if(typeof e!="object"||e===null||Array.isArray(e))return;let t=e;if(Array.isArray(t.type_workflows))return t.type_workflows}function h(e,t,r){let n=t?.trim()||r;return ee.isAbsolute(n)?n:ee.join(e,n)}function ct(e,t){return h(e,t.files.types,p.types)}async function dt(e,t){let r=I(t),n=[{path:h(e,r.files.types,p.types),seed:Le()},{path:h(e,r.files.statuses,p.statuses),seed:je()},{path:h(e,r.files.fields,p.fields),seed:Ce()},{path:h(e,r.files.workflows,p.workflows),seed:xe()}],s=[];for(let i of n)await J(i.path)||(await Y(i.path,Me(i.seed)),s.push(i.path));return{created_paths:s}}async function ut(e,t){let r=I(t),n=[],s=h(e,r.files.types,p.types),i=h(e,r.files.statuses,p.statuses),l=h(e,r.files.fields,p.fields),a=h(e,r.files.workflows,p.workflows),o,c,u,d,w,S=async(O,le)=>{let j=await H(O);if(j!==null)return $e(j,le,n)},b=await S(s,"runtime_schema_types_invalid_json");b!==void 0&&(o=Pe(b),o===void 0&&n.push("runtime_schema_types_invalid_shape"));let E=await S(i,"runtime_schema_statuses_invalid_json");E!==void 0&&(c=qe(E),c===void 0&&n.push("runtime_schema_statuses_invalid_shape"));let v=await S(l,"runtime_schema_fields_invalid_json");v!==void 0&&(u=Ve(v),u===void 0&&n.push("runtime_schema_fields_invalid_shape"));let g=await S(a,"runtime_schema_workflows_invalid_json");return g!==void 0&&(d=We(g),d===void 0&&n.push("runtime_schema_workflows_invalid_shape"),w=Ke(g)),{schema:I({...r,statuses:[...r.statuses,...c??[]],fields:[...r.fields,...u??[]],workflow:{...r.workflow,...d},type_workflows:[...r.type_workflows??[],...w??[]]}),type_definitions_from_file:o,warnings:n,created_paths:[]}}function F(e,t,r,n=!1){let i=r.map(a=>f(a)).filter(a=>typeof a=="string").find(a=>e.some(o=>o.id===a));if(n&&i!==void 0)return i;let l=e.find(a=>a.roles.includes(t));return l!==void 0?l.id:i??e[0]?.id}function Ge(e){let t=new Map,r=new Map;for(let n of e){r.set(n.id,n),t.set(n.id,n.id),t.set(n.id.replaceAll("_","-"),n.id),t.set(n.id.replaceAll("_"," "),n.id);for(let s of n.aliases)t.set(s,n.id),t.set(s.replaceAll("_","-"),n.id),t.set(s.replaceAll("_"," "),n.id)}return{aliasToId:t,byId:r}}function Je(e){let t={activeStatuses:new Set,blockedStatuses:new Set,draftStatuses:new Set,terminalCanceledStatuses:new Set,terminalDoneStatuses:new Set,terminalStatuses:new Set};for(let r of e){let n=new Set(r.roles);(n.has("terminal")||n.has("terminal_done")||n.has("terminal_canceled"))&&t.terminalStatuses.add(r.id),n.has("terminal_done")&&t.terminalDoneStatuses.add(r.id),n.has("terminal_canceled")&&t.terminalCanceledStatuses.add(r.id),n.has("active")&&t.activeStatuses.add(r.id),n.has("blocked")&&t.blockedStatuses.add(r.id),n.has("draft")&&t.draftStatuses.add(r.id)}return t}function ft(e){let t=I(e),r=t.statuses.map((g,m)=>M(g,m)).filter(g=>g!==null),{aliasToId:n,byId:s}=Ge(r),{activeStatuses:i,blockedStatuses:l,draftStatuses:a,terminalCanceledStatuses:o,terminalDoneStatuses:c,terminalStatuses:u}=Je(r),d=t.workflow,w=f(d.open_status)??F(r,"default_open",["open","in_progress",C[0]]),S=f(d.in_progress_status)??F(r,"active",["in_progress","in-progress",w],!0),b=f(d.blocked_status)??F(r,"blocked",["blocked"]),E=f(d.close_status)??F(r,"default_close",["closed","done","complete"]),v=f(d.canceled_status)??F(r,"default_cancel",["canceled","cancelled"]);return{definitions:r,by_id:s,alias_to_id:n,terminal_statuses:u,terminal_done_statuses:c,terminal_canceled_statuses:o,active_statuses:i,blocked_statuses:l,draft_statuses:a,open_status:w,in_progress_status:S,blocked_status:b,close_status:E,canceled_status:v}}function He(e,t){let r=A(e);if(r)return t.alias_to_id.get(r)}function mt(e){let t=I(e),r=new Map,n=t.fields.map(o=>ae(o)).filter(o=>o!==null);for(let o of n)r.set(o.key,o);let s=[...r.values()].sort((o,c)=>o.key.localeCompare(c.key)),i=new Map,l=new Map,a=new Map;for(let o of s){i.set(o.key,o),l.set(o.cli_flag,o);for(let c of o.cli_aliases)l.set(c,o);for(let c of o.commands){let u=a.get(c)??[];u.push(o),a.set(c,u)}}for(let[o,c]of a.entries())c.sort((u,d)=>u.key.localeCompare(d.key)),a.set(o,c);return{definitions:s,by_key:i,by_cli_token:l,command_to_fields:a}}function _t(e){return Fe(e.key)}function yt(e,t){let r=He(e,t);return r?t.terminal_statuses.has(r):!1}export{z as a,Ze as b,Qe as c,et as d,A as e,p as f,L as g,I as h,h as i,ct as j,dt as k,ut as l,ft as m,He as n,mt as o,_t as p,yt as q};
3
+ //# sourceMappingURL=chunk-5FHTCOHS.js.map
@@ -0,0 +1,26 @@
1
+ import{f as w,i as y,j as B,k as j,l as U,o as f,p as X,q as W,r as Y}from"./chunk-BUCJUZVG.js";import{M as H,a as P,b as D}from"./chunk-IWITF53W.js";import{c as p,f as M,g as z,i as q}from"./chunk-QQQ4SAUO.js";import{Ua as F,q as L,t as R}from"./chunk-FE3BABLJ.js";import{e as g,g as K}from"./chunk-5FHTCOHS.js";import{Ta as k,a as N,e as O,f as A,g as x,h as C,o as $}from"./chunk-XSS3APUF.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="cde4f476-6821-53be-b70e-62794fa2ae52")}catch{}})();var Ce=N,$e=O,Pe=C,De=A,Le=x;function G(e,t,n,s){let r=e.flag.slice(2).replace(/[-_]([a-z])/gu,(i,a)=>a.toUpperCase()),o=n.has(r);return{long:t,...s?{short:s}:{},description:e.description??`Standard pm ${e.flag} option.`,...e.required===!0?{required:!0}:{},...e.list===!0?{list:!0}:{},...e.repeatable===!0?{repeatable:!0}:{},value_type:o?"string":"boolean",...o?{value_name:e.value_name??"value"}:{}}}function Q(e,t=[]){let n=new Set(t.flatMap(r=>r.keys)),s=[];for(let r of L(e.map(o=>({...o})))){s.push(G(r,r.flag,n,r.short));for(let o of r.aliases??[])s.push(G(r,o,n))}return s}var Re=Q(R,P),Fe=Q(F,D);(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ddcc068c-6727-5508-baa3-e089bcd0a0a9")}catch{}})();var _=["agile","ops","research"],I={agile:{name:"agile",title:"Agile delivery",summary:"Story/Spike delivery with a review stage, story points, and acceptance ownership.",types:w.agile,statuses:[{id:"review",roles:["active"],aliases:["in-review"],description:"Work is implementation-complete and awaiting peer review."}],fields:[{key:"story_points",type:"number",commands:["create","update","list"],description:"Relative estimation size for a story or spike.",aliases:["points"]},{key:"acceptance_owner",type:"string",commands:["create","update","list"],description:"Stakeholder accountable for accepting the delivered story.",aliases:["acceptor"]}],workflows:[{type:"Story",allowed_transitions:[["open","in_progress"],["in_progress","review"],["review","in_progress"],["review","closed"],["in_progress","blocked"],["blocked","in_progress"]]}],config:[{key:"search_provider",value:"bm25",summary:"Offline BM25 lexical search works without an embedding service."},{key:"search_max_results",value:"20",summary:"Sprint-sized result cap for quick triage."}],templates:[{name:"story",options:{type:"Story",priority:"2",tags:"story",acceptanceCriteria:"Story delivers the stated user outcome with tests and docs updated.",body:`## As a
2
+
3
+ ## I want
4
+
5
+ ## So that
6
+
7
+ ## Acceptance
8
+ - [ ]
9
+ `}}],packages:[{spec:"templates",reason:"Reusable create templates for recurring story shapes."},{spec:"calendar",reason:"Sprint and iteration scheduling views."},{spec:"search-advanced",reason:"Richer retrieval as the backlog grows."}]},ops:{name:"ops",title:"Operations",summary:"Incident/Runbook response with mitigation and monitoring stages, severity, and service fields.",types:w.ops,statuses:[{id:"mitigating",roles:["active"],aliases:["mitigation"],description:"Active mitigation is underway to restore service."},{id:"monitoring",roles:["active"],aliases:["observing"],description:"Mitigation applied; monitoring for recurrence before closure."}],fields:[{key:"severity",type:"string",commands:["create","update","list"],description:"Incident severity classification (e.g. sev1, sev2, sev3).",aliases:["sev"]},{key:"service",type:"string",commands:["create","update","list"],description:"Primary affected service or component."}],workflows:[{type:"Incident",allowed_transitions:[["open","mitigating"],["mitigating","monitoring"],["monitoring","mitigating"],["monitoring","closed"],["mitigating","blocked"],["blocked","mitigating"]]}],config:[{key:"search_provider",value:"bm25",summary:"Offline BM25 lexical search for fast incident lookup."},{key:"search_max_results",value:"25",summary:"Wider result cap to surface related incidents and runbooks."}],templates:[{name:"incident",options:{type:"Incident",priority:"1",tags:"incident",acceptanceCriteria:"Service restored, root cause documented, and follow-ups filed.",body:`## Impact
10
+
11
+ ## Timeline
12
+
13
+ ## Root cause
14
+
15
+ ## Mitigation
16
+
17
+ ## Follow-ups
18
+ `}}],packages:[{spec:"lifecycle-hooks",reason:"Automate transitions and notifications on incident state changes."},{spec:"governance-audit",reason:"Audit incident metadata completeness and closure quality."},{spec:"calendar",reason:"On-call and follow-up scheduling."}]},research:{name:"research",title:"Research",summary:"Experiment/Hypothesis investigation with an analysis stage, hypothesis, and method fields.",types:w.research,statuses:[{id:"analyzing",roles:["active"],aliases:["analysis"],description:"Data collected; analysis and synthesis in progress."}],fields:[{key:"hypothesis",type:"string",commands:["create","update"],description:"The testable claim the experiment evaluates."},{key:"method",type:"string",commands:["create","update","list"],description:"Experimental method or protocol used to evaluate the hypothesis.",aliases:["protocol"]}],workflows:[{type:"Experiment",allowed_transitions:[["open","in_progress"],["in_progress","analyzing"],["analyzing","in_progress"],["analyzing","closed"],["in_progress","blocked"],["blocked","in_progress"]]}],config:[{key:"search_provider",value:"bm25",summary:"Offline BM25 lexical search across the research corpus."},{key:"search_max_results",value:"50",summary:"Broader recall cap for literature and prior-experiment discovery."}],templates:[{name:"experiment",options:{type:"Experiment",priority:"2",tags:"experiment",acceptanceCriteria:"Hypothesis is supported, rejected, or refined with recorded evidence.",body:`## Hypothesis
19
+
20
+ ## Method
21
+
22
+ ## Results
23
+
24
+ ## Conclusion
25
+ `}}],packages:[{spec:"search-advanced",reason:"Semantic retrieval over experiments and findings."},{spec:"templates",reason:"Consistent experiment and hypothesis scaffolds."},{spec:"beads",reason:"Import structured prior work into the tracker."}]}};function ne(e){if(e===void 0)return;let t=u(e);if(t.length===0)throw new Error("Profile name must not be empty.");if(_.includes(t))return t;throw new Error(`Invalid profile "${e}". Allowed: ${_.join(", ")}.`)}function qe(e){let t=ne(e);if(t===void 0)throw new Error(`Profile name is required. Allowed: ${_.join(", ")}.`);return I[t]}function Be(){return _.map(e=>I[e])}function u(e){return e.trim().toLowerCase().replaceAll("-","_")}function J(e){return e.map(t=>t.definition.name).join(", ")}function se(e=[]){let t=_.map(o=>({definition:I[o],source:"builtin"})),n=new Set(_.map(o=>u(o))),s=new Set(n),r=[];for(let o of e){let i=u(o.profile.name);if(n.has(i)){r.push(`Extension "${o.name}" profile "${o.profile.name}" uses a name reserved by a built-in archetype and was ignored.`);continue}if(s.has(i)){r.push(`Profile "${o.profile.name}" from extension "${o.name}" duplicates an already-registered profile and was ignored.`);continue}s.add(i),t.push({definition:o.profile,source:"extension",package:o.name})}return{profiles:t,warnings:r}}function je(e,t=[]){let{profiles:n,warnings:s}=se(t);if(typeof e!="string"||e.trim().length===0)throw new Error(`Profile name is required. Allowed: ${J(n)}.`);let r=u(e),o=n.find(i=>u(i.definition.name)===r);if(o===void 0)throw new Error(`Invalid profile "${e}". Allowed: ${J(n)}.`);return{resolved:o,warnings:s}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ab26bcb3-fb2a-5f2f-96e7-7965787b924e")}catch{}})();function re(e){return{types:e.types.length,statuses:e.statuses.length,fields:e.fields.length,workflows:e.workflows.length,config:e.config.length,templates:e.templates.length,packages:e.packages.length}}function Ye(e){return{name:e.name,title:e.title,summary:e.summary,composition:re(e),types:e.types.map(t=>S(()=>p(t).name,()=>String(t.name??""))),statuses:e.statuses.map(t=>S(()=>f(t).id,()=>String(t.id??""))),fields:e.fields.map(t=>S(()=>y(t).key,()=>String(t.key??""))),workflows:e.workflows.map(t=>t.type),config:e.config.map(t=>`${t.key}=${t.value}`),templates:e.templates.map(t=>t.name),packages:e.packages.map(t=>({spec:t.spec,reason:t.reason}))}}function S(e,t){try{return e()}catch{return t()}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ae6d96af-b482-5238-af32-20bb7c3753cb")}catch{}})();var oe=[{key:"search_provider",path:"search.provider",kind:"string",summary:"Search embedding provider name (e.g. openai, ollama, or an extension provider)."},{key:"search_default_mode",path:"search.default_mode",kind:"string",choices:["auto","keyword","semantic","hybrid"],summary:"Mode a bare pm search runs in: auto (hybrid when semantic search is explicitly configured and runnable, else keyword), or a pinned keyword, semantic, or hybrid."},{key:"search_mutation_refresh_policy",path:"search.mutation_refresh_policy",kind:"string",choices:["cache_only","semantic_configured","semantic_auto"],summary:"Mutation-time search refresh policy: cache_only, semantic_configured, or semantic_auto."},{key:"search_query_expansion_enabled",path:"search.query_expansion.enabled",kind:"boolean",summary:"Enable or disable query expansion for semantic/hybrid search."},{key:"search_query_expansion_provider",path:"search.query_expansion.provider",kind:"string",summary:"Query expansion provider name (built-in openai/ollama or extension provider)."},{key:"search_rerank_enabled",path:"search.rerank.enabled",kind:"boolean",summary:"Enable or disable post-retrieval reranking for hybrid search."},{key:"search_rerank_model",path:"search.rerank.model",kind:"string",summary:"Rerank model name override used by built-in providers."},{key:"search_rerank_top_k",path:"search.rerank.top_k",kind:"integer",min:1,summary:"Number of top hybrid candidates to rerank when rerank is enabled."},{key:"search_embedding_model",path:"search.embedding_model",kind:"string",summary:"Default embedding model name (overrides provider-specific model when set)."},{key:"search_embedding_corpus_max_characters",path:"search.embedding_corpus_max_characters",kind:"integer",min:1,summary:"Maximum semantic corpus characters per item before truncation."},{key:"search_embedding_batch_size",path:"search.embedding_batch_size",kind:"integer",min:1,summary:"Number of items embedded per request batch."},{key:"search_embedding_timeout_ms",path:"search.embedding_timeout_ms",kind:"integer",min:1,summary:"Per-request embedding timeout in milliseconds."},{key:"search_score_threshold",path:"search.score_threshold",kind:"number",summary:"Minimum score for a hit to be returned (0 keeps all matches)."},{key:"search_hybrid_semantic_weight",path:"search.hybrid_semantic_weight",kind:"ratio",summary:"Hybrid mode semantic weight in [0, 1] (1-weight goes to keyword)."},{key:"search_max_results",path:"search.max_results",kind:"integer",min:1,summary:"Default upper bound on search hits when --limit is not supplied."},{key:"search_bm25_k1",path:"search.bm25.k1",kind:"number",min:0,summary:"Offline BM25 term-frequency saturation (k1); higher saturates repeated terms slower (default 1.2)."},{key:"search_bm25_b",path:"search.bm25.b",kind:"ratio",summary:"Offline BM25 document-length normalization (b) in [0, 1]; 0 disables, 1 fully normalizes (default 0.75)."},{key:"openai_base_url",path:"providers.openai.base_url",kind:"string",summary:"OpenAI-compatible API base URL (LM Studio/vLLM also use this)."},{key:"openai_api_key",path:"providers.openai.api_key",kind:"string",summary:"OpenAI-compatible API key."},{key:"openai_model",path:"providers.openai.model",kind:"string",summary:"OpenAI-compatible embedding model name."},{key:"ollama_base_url",path:"providers.ollama.base_url",kind:"string",summary:"Ollama API base URL (typically http://localhost:11434)."},{key:"ollama_model",path:"providers.ollama.model",kind:"string",summary:"Ollama embedding model name (e.g. nomic-embed-text)."},{key:"vector_store_adapter",path:"vector_store.adapter",kind:"string",summary:"Vector store adapter name (lancedb, qdrant, or an extension adapter)."},{key:"vector_store_collection_name",path:"vector_store.collection_name",kind:"string",non_empty:!0,summary:"Vector collection/table name shared by Qdrant and LanceDB adapters."},{key:"qdrant_url",path:"vector_store.qdrant.url",kind:"string",summary:"Qdrant HTTP API URL."},{key:"qdrant_api_key",path:"vector_store.qdrant.api_key",kind:"string",summary:"Qdrant API key (empty if running unauthenticated)."},{key:"lancedb_path",path:"vector_store.lancedb.path",kind:"string",summary:"LanceDB storage path (relative to pm root or absolute)."},{key:"id_prefix",path:"id_prefix",kind:"string",non_empty:!0,summary:'Prefix for generated item IDs (e.g. "pm" produces pm-xxxx).'},{key:"author_default",path:"author_default",kind:"string",non_empty:!0,summary:"Default author recorded on mutations when --author is not supplied."},{key:"agent_identity_probes_enabled",path:"agent_identity.probes_enabled",kind:"boolean",summary:"Allow privacy-bounded local harness provenance probes; no network or subprocess access is permitted."},{key:"mutation_guard_require_attributed_author",path:"mutation_guard.require_attributed_author",kind:"boolean",summary:"Reject mutations whose effective author resolves to unknown."},{key:"mutation_guard_secret_guard",path:"mutation_guard.secret_guard",kind:"string",choices:["off","advise","block"],summary:"Detect credential-shaped mutation content: off, advise, or block."},{key:"mutation_guard_stale_in_progress_hours",path:"mutation_guard.stale_in_progress_hours",kind:"integer",min:1,summary:"Age threshold for unclaimed in-progress work surfaced by health."},{key:"governance_duplicate_detection_mode",path:"governance.duplicate_detection_mode",kind:"string",choices:["off","advisory","strict"],summary:"Create/copy duplicate governance: off, advisory, or strict explicit-bypass enforcement."},{key:"governance_duplicate_detection_threshold",path:"governance.duplicate_detection_threshold",kind:"ratio",summary:"Minimum shared similarity score in [0, 1] for create/copy duplicate governance."},{key:"governance_duplicate_detection_limit",path:"governance.duplicate_detection_limit",kind:"integer",min:0,max:20,summary:"Maximum likely duplicates returned by create/copy governance (0-20)."},{key:"output_default_format",path:"output.default_format",kind:"string",choices:["toon","json"],summary:"Default output format for commands that support it: toon or json."},{key:"ux_deprecation_hints",path:"ux.deprecation_hints",kind:"boolean",summary:"Emit one stderr migration hint for deprecated command aliases."},{key:"locks_ttl_seconds",path:"locks.ttl_seconds",kind:"integer",min:1,summary:"Claim/lock time-to-live in seconds before a stale lock can be reclaimed."},{key:"locks_wait_ms",path:"locks.wait_ms",kind:"integer",min:0,summary:"Bounded jittered wait in milliseconds before a contended item mutation fails with lock_conflict; 0 fails fast. PM_LOCK_WAIT_MS overrides per invocation."},{key:"ids_token_length",path:"ids.token_length",kind:"integer",min:4,max:12,summary:"Random base36 token length for newly minted item ids (4-12, default 4). Raise it to shrink cross-branch id collision odds in concurrent multi-agent workflows (pm-pibw)."},{key:"checkpoints_retention_days",path:"checkpoints.retention_days",kind:"integer",min:1,summary:"Age in days above which pm gc --scope checkpoints prunes bulk-mutation rollback checkpoints."},{key:"schema_unknown_field_policy",path:"schema.unknown_field_policy",kind:"string",choices:["allow","warn","reject"],summary:"How item I/O handles metadata keys not in the field registry: allow, warn, or reject."},{key:"history_compact_policy_enabled",path:"history.compact_policy.enabled",kind:"boolean",summary:"Enable the history-compaction advisory: pm health warns on over-threshold streams."},{key:"history_compact_policy_max_entries",path:"history.compact_policy.max_entries",kind:"integer",min:1,summary:"Entry count above which a history stream is flagged (and the default pm history-compact --all-over threshold)."},{key:"history_compact_policy_trigger",path:"history.compact_policy.trigger",kind:"string",choices:["health_warn","auto"],summary:"History-compaction policy intent: health_warn (advisory only) or auto (scheduled sweeps expected)."}],ie=new Map(oe.flatMap(e=>[[e.key,e],[e.path.toLowerCase().replaceAll("-","_"),e]]));function b(e){if(typeof e!="string")return;let t=e.trim().toLowerCase().replaceAll("-","_");if(t.length!==0)return ie.get(t)}function ae(e,t){let n=t.trim().toLowerCase();return n==="true"||n==="1"||n==="yes"||n==="on"?{ok:!0,parsed:{descriptor:e,value:!0}}:n==="false"||n==="0"||n==="no"||n==="off"?{ok:!0,parsed:{descriptor:e,value:!1}}:{ok:!1,error:{message:`Config set ${e.key} requires a boolean value (true|false), got "${t}"`}}}function le(e,t,n){return e.non_empty===!0&&n.length===0?{ok:!1,error:{message:`Config set ${e.key} requires a non-empty value`}}:e.choices&&!e.choices.includes(n)?{ok:!1,error:{message:`Config set ${e.key} must be one of ${e.choices.join("|")}, got "${t}"`}}:{ok:!0,parsed:{descriptor:e,value:n}}}function ce(e,t,n){if(n.length===0)return{ok:!1,error:{message:`Config set ${e.key} requires a non-empty value`}};let s=Number(n);return Number.isFinite(s)?{ok:!0,value:s}:{ok:!1,error:{message:`Config set ${e.key} requires a finite number, got "${t}"`}}}function de(e,t,n){return!Number.isInteger(n)||n<0?{ok:!1,error:{message:`Config set ${e.key} requires a non-negative integer, got "${t}"`}}:e.min!==void 0&&n<e.min?{ok:!1,error:{message:`Config set ${e.key} requires an integer >= ${e.min}, got "${t}" (the runtime silently ignores 0 here and falls back to the default)`}}:e.max!==void 0&&n>e.max?{ok:!1,error:{message:`Config set ${e.key} requires an integer <= ${e.max}, got "${t}"`}}:{ok:!0,parsed:{descriptor:e,value:n}}}function me(e,t,n){return n<0||n>1?{ok:!1,error:{message:`Config set ${e.key} requires a number in [0, 1], got "${t}"`}}:{ok:!0,parsed:{descriptor:e,value:n}}}function ue(e,t,n){return e.min!==void 0&&n<e.min?{ok:!1,error:{message:`Config set ${e.key} requires a number >= ${e.min}, got "${t}"`}}:{ok:!0,parsed:{descriptor:e,value:n}}}function v(e,t){if(typeof t!="string")return{ok:!1,error:{message:`Config set ${e.key} requires a string value`}};let n=t.trim();if(e.kind==="boolean")return ae(e,t);if(e.kind==="string")return le(e,t,n);let s=ce(e,t,n);return s.ok?e.kind==="integer"?de(e,t,s.value):e.kind==="ratio"?me(e,t,s.value):ue(e,t,s.value):{ok:!1,error:s.error}}function V(e,t){let n=t.path.split("."),s=e;for(let r of n){if(typeof s!="object"||s===null)return null;s=s[r]}return typeof s=="string"||typeof s=="number"||typeof s=="boolean"?s:null}function Ge(e,t,n){let s=t.path.split("."),r=e;for(let a=0;a<s.length-1;a+=1){let d=s[a],c=r[d];if(typeof c!="object"||c===null||Array.isArray(c)){let l={};r[d]=l,r=l}else r=c}let o=s[s.length-1];return r[o]===n?!1:(r[o]=n,!0)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="38902c61-3d4d-52ad-a95c-fbac9102a041")}catch{}})();var at=["profile","types","statuses","fields","workflows","config","templates","packages"],lt=["profile_name_empty","profile_name_not_normalized","profile_title_empty","profile_summary_empty","type_invalid","type_duplicate","status_invalid","status_duplicate","field_invalid","field_duplicate","field_mcp_input_collision","workflow_type_empty","workflow_type_unknown","workflow_duplicate_type","workflow_transition_malformed","workflow_status_unknown","config_key_unknown","config_value_invalid","config_duplicate","template_type_unknown","package_spec_empty"],pe=new Set(K.flatMap(e=>[g(e.id),...(e.aliases??[]).map(t=>g(t))]).filter(e=>e.length>0)),Z=new Set($.map(e=>e.toLowerCase()));function ye(e,t){e.name.trim().length===0?t.push({severity:"error",code:"profile_name_empty",dimension:"profile",message:"Profile name must not be empty; profile resolution requires a non-blank name."}):e.name!==u(e.name)&&t.push({severity:"warning",code:"profile_name_not_normalized",dimension:"profile",target:e.name,message:`Profile name "${e.name}" is not in canonical form; resolution folds it to "${u(e.name)}" (lowercase, hyphens as underscores).`}),e.title.trim().length===0&&t.push({severity:"warning",code:"profile_title_empty",dimension:"profile",message:"Profile title is empty; list and show surfaces will render a blank title."}),e.summary.trim().length===0&&t.push({severity:"warning",code:"profile_summary_empty",dimension:"profile",message:"Profile summary is empty; list and show surfaces will render a blank archetype description."})}function fe(e,t){let n=new Set,s=new Set;for(let[r,o]of e.types.entries()){let i;try{i=p(o).name}catch(d){t.push({severity:"error",code:"type_invalid",dimension:"types",target:typeof o.name=="string"?o.name:`#${r}`,message:k(d)});continue}let a=i.toLowerCase();if(s.has(a)){t.push({severity:"error",code:"type_duplicate",dimension:"types",target:i,message:`Item type "${i}" is declared more than once; the later definition silently overwrites the earlier upsert.`});continue}s.add(a),n.add(a)}return n}function he(e,t){let n=new Set,s=new Set;for(let[r,o]of e.statuses.entries()){let i;try{i=f(o)}catch(a){t.push({severity:"error",code:"status_invalid",dimension:"statuses",target:typeof o.id=="string"?o.id:`#${r}`,message:k(a)});continue}if(s.has(i.id)){t.push({severity:"error",code:"status_duplicate",dimension:"statuses",target:i.id,message:`Status "${i.id}" is declared more than once; the later definition silently overwrites the earlier upsert.`});continue}s.add(i.id),n.add(i.id);for(let a of i.aliases??[])n.add(g(a))}return n}function ge(e,t){let n=new Set;for(let[s,r]of e.fields.entries()){let o;try{o=y(r).key}catch(a){t.push({severity:"error",code:"field_invalid",dimension:"fields",target:typeof r.key=="string"?r.key:`#${s}`,message:k(a)});continue}if(n.has(o)){t.push({severity:"error",code:"field_duplicate",dimension:"fields",target:o,message:`Field "${o}" is declared more than once; the later definition silently overwrites the earlier upsert.`});continue}n.add(o);let i=H(o);i&&t.push({severity:"warning",code:"field_mcp_input_collision",dimension:"fields",target:o,message:`Field "${o}" collides with canonical MCP property "${i.property}" owned by ${i.owner}; callers must pass the custom value through ${i.nested_path}.`})}}function _e(e,t,n,s){let r=new Set;for(let[o,i]of e.workflows.entries()){let a=i.type.trim().toLowerCase();if(a.length===0){s.push({severity:"error",code:"workflow_type_empty",dimension:"workflows",target:`#${o}`,message:"Workflow has an empty type; the workflow resolver drops entries without a type."});continue}let d=r.has(a);r.add(a),d?s.push({severity:"warning",code:"workflow_duplicate_type",dimension:"workflows",target:i.type,message:`Workflow type "${i.type}" is declared more than once; the later transition set wins.`}):!Z.has(a)&&!t.has(a)&&s.push({severity:"warning",code:"workflow_type_unknown",dimension:"workflows",target:i.type,message:`Workflow governs type "${i.type}" which is neither a built-in type nor declared by this profile; it has no effect unless that type already exists.`});let c=new Set;for(let l of i.allowed_transitions){let m=g(l[0]),T=g(l[1]);if(m.length===0||T.length===0){s.push({severity:"error",code:"workflow_transition_malformed",dimension:"workflows",target:i.type,message:`Workflow "${i.type}" has a transition with an empty status; the workflow resolver silently drops it.`});continue}for(let h of[m,T])pe.has(h)||n.has(h)||c.has(h)||(c.add(h),s.push({severity:"warning",code:"workflow_status_unknown",dimension:"workflows",target:h,message:`Workflow "${i.type}" references status "${h}" which is neither a built-in status nor declared by this profile; transitions to or from it are unreachable.`}))}}}function ke(e,t){let n=new Set;for(let s of e.config){let r=b(s.key);if(r===void 0){t.push({severity:"error",code:"config_key_unknown",dimension:"config",target:s.key,message:`Config knob "${s.key}" is not a recognized setting; apply rejects it with a usage error.`});continue}n.has(r.key)?t.push({severity:"error",code:"config_duplicate",dimension:"config",target:r.key,message:`Config knob "${r.key}" is set more than once; the later value silently overwrites the earlier one.`}):n.add(r.key);let o=v(r,s.value);o.ok||t.push({severity:"error",code:"config_value_invalid",dimension:"config",target:s.key,message:o.error.message})}}function we(e,t,n){for(let s of e.templates){let r=s.options.type;if(typeof r!="string"||r.trim().length===0)continue;let o=r.trim().toLowerCase();!Z.has(o)&&!t.has(o)&&n.push({severity:"warning",code:"template_type_unknown",dimension:"templates",target:s.name,message:`Template "${s.name}" creates type "${r}" which is neither a built-in type nor declared by this profile.`})}}function be(e,t){for(let[n,s]of e.packages.entries())s.spec.trim().length===0&&t.push({severity:"warning",code:"package_spec_empty",dimension:"packages",target:`#${n}`,message:"Package recommendation has an empty spec; it cannot be surfaced as an install hint."})}function ct(e){let t=[];ye(e,t);let n=fe(e,t),s=he(e,t);ge(e,t),_e(e,n,s,t),ke(e,t),we(e,n,t),be(e,t);let r=t.filter(i=>i.severity==="error").length,o=t.length-r;return{profile:e.name,ok:r===0,findings:t,errorCount:r,warningCount: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]="9b9004b5-2446-539c-9adc-75aeaa3acbba")}catch{}})();function E(e,t,n,s,r){let o=e,i=[];for(let a of t){let d=s(o),c=r(o,a),l=s(c.file);o=c.file;let m=d===l?"unchanged":c.replaced?"update":"add";i.push({key:n(a),status:m})}return{file:o,changes:i,changed:i.some(a=>a.status!=="unchanged")}}function ee(e){return JSON.stringify(e.map(t=>t.join("\0")).sort())}function ve(e,t){let n=e.map(r=>({...r})),s=[];for(let r of t){let o=n.findIndex(a=>a.type===r.type),i={type:r.type,allowed_transitions:r.allowed_transitions};o<0?(n.push(i),s.push({type:r.type,status:"add"})):ee(n[o].allowed_transitions)===ee(r.allowed_transitions)?s.push({type:r.type,status:"unchanged"}):(n[o]=i,s.push({type:r.type,status:"update"}))}return{changes:s,result:n,changed:s.some(r=>r.status!=="unchanged")}}function Ie(e,t){let n=[];for(let s of e.config){let r=b(s.key);if(r===void 0)throw new Error(`Profile "${e.name}" references unknown config key "${s.key}".`);let o=v(r,s.value);if(!o.ok)throw new Error(`Profile "${e.name}" config ${s.key}: ${o.error.message}`);let i=V(t,r),a=i===null?"add":i===o.parsed.value?"unchanged":"update";n.push({key:r.key,path:r.path,value:o.parsed.value,status:a})}return{changes:n,changed:n.some(s=>s.status!=="unchanged")}}function te(e){let t=Object.entries(e).sort(([n],[s])=>n.localeCompare(s));return JSON.stringify(t)}function Se(e,t){let n=[];for(let s of e.templates){let r=t.get(s.name),o;r===void 0?o="add":te(r)===te(s.options)?o="unchanged":o="update",n.push({name:s.name,options:s.options,status:o})}return{changes:n,changed:n.some(s=>s.status!=="unchanged")}}function ft(e,t){let n=E(M(t.typesRaw),e.types,l=>p(l).name,q,(l,m)=>z(l,p(m))),s=E(X(t.statusesRaw),e.statuses,l=>f(l).id,W,(l,m)=>Y(l,f(m))),r=E(B(t.fieldsRaw),e.fields,l=>y(l).key,j,(l,m)=>U(l,y(m))),o=ve(t.workflows,e.workflows),i=Ie(e,t.settings),a=Se(e,t.templates),d=e.packages.map(l=>({spec:l.spec,reason:l.reason,status:t.installedPackages.has(l.spec)?"installed":"recommended"})),c=n.changed||s.changed||r.changed||o.changed||i.changed||a.changed;return{profile:{name:e.name,title:e.title,summary:e.summary},types:n,statuses:s,fields:r,workflows:o,config:i,templates:a,packages:d,changed:c}}export{Ce as a,$e as b,Pe as c,De as d,Le as e,Q as f,Re as g,Fe as h,_ as i,I as j,ne as k,qe as l,Be as m,se as n,je as o,re as p,Ye as q,oe as r,b as s,v as t,V as u,Ge as v,at as w,lt as x,ct as y,ft as z};
26
+ //# sourceMappingURL=chunk-7N6DOREF.js.map