@unbrained/pm-cli 2026.10.12 → 2026.10.13

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 (708) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +27 -0
  3. package/dist/cli/after-command-context-usage.d.ts +8 -8
  4. package/dist/cli/bundle-integrity.d.ts +23 -23
  5. package/dist/cli/commander-usage.d.ts +26 -26
  6. package/dist/cli/commander-usage.js +2 -2
  7. package/dist/cli/error-guidance.d.ts +158 -163
  8. package/dist/cli/error-guidance.js +2 -2
  9. package/dist/cli/extension-command-help.d.ts +68 -68
  10. package/dist/cli/extension-command-options.d.ts +20 -20
  11. package/dist/cli/extension-recovery.d.ts +20 -20
  12. package/dist/cli/help-content.d.ts +16 -16
  13. package/dist/cli/help-content.js +2 -2
  14. package/dist/cli/help-json-payload.d.ts +40 -40
  15. package/dist/cli/invocation-profile.d.ts +8 -8
  16. package/dist/cli/main.d.ts +165 -165
  17. package/dist/cli/main.js +1 -1
  18. package/dist/cli/migration-gates.d.ts +20 -20
  19. package/dist/cli/register-list-query.d.ts +4 -4
  20. package/dist/cli/register-mutation-options.d.ts +2 -2
  21. package/dist/cli/register-operations.d.ts +66 -66
  22. package/dist/cli/register-setup.d.ts +1 -1
  23. package/dist/cli/register-structured-mutation.d.ts +3 -3
  24. package/dist/cli/register-structured-mutation.js +1 -1
  25. package/dist/cli/runtime/activation.d.ts +3 -3
  26. package/dist/cli/runtime/invocation-options.js +1 -1
  27. package/dist/cli/runtime/selection.d.ts +6 -6
  28. package/dist/cli/runtime-compatibility-boundary.d.ts +12 -12
  29. package/dist/cli-bundle/bundle-manifest.json +1 -1
  30. package/dist/cli-bundle/chunks/{chunk-MHPU2LDF.js → chunk-AM2XOZKE.js} +2 -2
  31. package/dist/cli-bundle/chunks/{chunk-UABZJXIS.js → chunk-APWPC4ZZ.js} +2 -2
  32. package/dist/cli-bundle/chunks/chunk-DJDRHJBP.js +234 -0
  33. package/dist/cli-bundle/chunks/{chunk-B465HPS5.js → chunk-DUK5DHI6.js} +2 -2
  34. package/dist/cli-bundle/chunks/chunk-HXHFKXLV.js +2 -0
  35. package/dist/cli-bundle/chunks/chunk-IFPJDJUM.js +20 -0
  36. package/dist/cli-bundle/chunks/{chunk-QM3M7GB5.js → chunk-LBDWFWPK.js} +2 -2
  37. package/dist/cli-bundle/chunks/{chunk-X2I2EEAS.js → chunk-N5EXRYCZ.js} +2 -2
  38. package/dist/cli-bundle/chunks/chunk-PSNS537F.js +30 -0
  39. package/dist/cli-bundle/chunks/{chunk-3LQTJN4J.js → chunk-RL45OYTL.js} +2 -2
  40. package/dist/cli-bundle/chunks/{chunk-DT3KUUKY.js → chunk-UBTYYZIE.js} +49 -49
  41. package/dist/cli-bundle/chunks/chunk-WYZGZV2M.js +2 -0
  42. package/dist/cli-bundle/chunks/{chunk-GUVKPOY6.js → chunk-YH6H3UVE.js} +10 -10
  43. package/dist/cli-bundle/chunks/{register-list-query-OR33UEML.js → register-list-query-BJ742QOR.js} +2 -2
  44. package/dist/cli-bundle/chunks/{register-mutation-R34EJ3NH.js → register-mutation-GGGBRIH2.js} +3 -3
  45. package/dist/cli-bundle/chunks/{register-operations-UHSMEHSF.js → register-operations-E6HXYHNM.js} +2 -2
  46. package/dist/cli-bundle/chunks/{register-setup-5E3PT22L.js → register-setup-4ZVTVEPY.js} +2 -2
  47. package/dist/cli-bundle/focused-chunks/{chunk-TS46OZD5.js → chunk-3LQEBXU5.js} +12 -12
  48. package/dist/cli-bundle/focused-chunks/{chunk-AJG3DBXR.js → chunk-6BTUISKV.js} +2 -2
  49. package/dist/cli-bundle/focused-chunks/chunk-73UNAJHD.js +2 -0
  50. package/dist/cli-bundle/focused-chunks/{chunk-RNAWRTQV.js → chunk-DVK7VKZL.js} +2 -2
  51. package/dist/cli-bundle/focused-chunks/{chunk-7QIZB2F2.js → chunk-F5J3ATMV.js} +14 -14
  52. package/dist/cli-bundle/focused-chunks/chunk-IIKFTJVC.js +2 -0
  53. package/dist/cli-bundle/focused-chunks/chunk-IOTNG6CN.js +2 -0
  54. package/dist/cli-bundle/focused-chunks/{chunk-Z4T3637Y.js → chunk-KGFRQ34R.js} +2 -2
  55. package/dist/cli-bundle/focused-chunks/chunk-NNW5BS5L.js +3 -0
  56. package/dist/cli-bundle/focused-chunks/{chunk-VBTLX5SN.js → chunk-QMNAY25P.js} +62 -62
  57. package/dist/cli-bundle/focused-chunks/{chunk-CYEZLKLL.js → chunk-R23T7GFZ.js} +2 -2
  58. package/dist/cli-bundle/focused-chunks/chunk-RAA7SVRA.js +8 -0
  59. package/dist/cli-bundle/focused-chunks/{chunk-SV6YYZLR.js → chunk-RU6GCFN3.js} +2 -2
  60. package/dist/cli-bundle/focused-chunks/{chunk-YCOJLIDI.js → chunk-S6ITXQ5T.js} +4 -4
  61. package/dist/cli-bundle/focused-chunks/{chunk-OGOLIS5R.js → chunk-SOB7X4FJ.js} +2 -2
  62. package/dist/cli-bundle/focused-chunks/chunk-UPJA45K7.js +26 -0
  63. package/dist/cli-bundle/main.js +20 -20
  64. package/dist/cli-bundle/sdk-authoring.js +1 -1
  65. package/dist/cli-bundle/sdk-contracts.js +2 -2
  66. package/dist/cli-bundle/sdk-core.js +23 -23
  67. package/dist/cli-bundle/sdk-governance.js +1 -1
  68. package/dist/cli-bundle/sdk-graph.js +1 -1
  69. package/dist/cli-bundle/sdk-merge.js +51 -51
  70. package/dist/cli-bundle/sdk-query.js +1 -1
  71. package/dist/cli-bundle/sdk-runtime.js +1 -1
  72. package/dist/cli-bundle/sdk-testing.js +1 -1
  73. package/dist/cli-bundle/sdk.js +8 -8
  74. package/dist/cli.d.ts +4 -4
  75. package/dist/core/checkpoint/checkpoint-gc.d.ts +32 -32
  76. package/dist/core/checkpoint/mutation-checkpoint.d.ts +34 -34
  77. package/dist/core/config/nested-settings.d.ts +26 -26
  78. package/dist/core/config/positional-value.d.ts +16 -16
  79. package/dist/core/diagnostics/remediation.d.ts +6 -6
  80. package/dist/core/diagnostics/remediation.js +1 -1
  81. package/dist/core/extensions/activation-summary-markdown.d.ts +6 -6
  82. package/dist/core/extensions/activation-summary.d.ts +54 -54
  83. package/dist/core/extensions/activation-transaction.d.ts +7 -7
  84. package/dist/core/extensions/capability-usage.d.ts +26 -26
  85. package/dist/core/extensions/command-hook-context.d.ts +26 -26
  86. package/dist/core/extensions/contribution-inventory.d.ts +21 -21
  87. package/dist/core/extensions/extension-candidate.d.ts +14 -14
  88. package/dist/core/extensions/extension-capability-aliases.d.ts +2 -2
  89. package/dist/core/extensions/extension-policy.d.ts +80 -80
  90. package/dist/core/extensions/extension-types.d.ts +1294 -1285
  91. package/dist/core/extensions/extension-types.js +1 -1
  92. package/dist/core/extensions/flag-definition-validation.d.ts +4 -4
  93. package/dist/core/extensions/item-fields.d.ts +3 -2
  94. package/dist/core/extensions/item-fields.js +1 -1
  95. package/dist/core/extensions/loader.d.ts +36 -36
  96. package/dist/core/extensions/loader.js +1 -1
  97. package/dist/core/extensions/manifest-schema.d.ts +16 -16
  98. package/dist/core/extensions/module-graph-snapshot.d.ts +8 -8
  99. package/dist/core/extensions/read-output-contract.d.ts +5 -0
  100. package/dist/core/extensions/read-output-contract.js +2 -0
  101. package/dist/core/extensions/registration-values.d.ts +1 -1
  102. package/dist/core/extensions/reserved-host-flags.d.ts +6 -6
  103. package/dist/core/extensions/version-compat.d.ts +10 -10
  104. package/dist/core/fs/fs-utils.d.ts +1 -1
  105. package/dist/core/fs/host-environment-errors.d.ts +14 -14
  106. package/dist/core/governance/content-fields.d.ts +31 -31
  107. package/dist/core/governance/issue-codes.d.ts +27 -27
  108. package/dist/core/governance/metadata-coverage.d.ts +91 -91
  109. package/dist/core/history/drift-scan.d.ts +26 -26
  110. package/dist/core/history/event-index.d.ts +41 -41
  111. package/dist/core/history/history-compact-bulk.d.ts +22 -22
  112. package/dist/core/history/history-diff.d.ts +22 -22
  113. package/dist/core/history/history-rewrite.d.ts +66 -66
  114. package/dist/core/history/history-storage-stats.d.ts +31 -31
  115. package/dist/core/history/history-stream-policy.d.ts +12 -12
  116. package/dist/core/history/history.d.ts +22 -22
  117. package/dist/core/history/identity.d.ts +6 -6
  118. package/dist/core/history/operation-contract.d.ts +9 -9
  119. package/dist/core/history/projection.d.ts +15 -15
  120. package/dist/core/history/read.d.ts +4 -4
  121. package/dist/core/history/replay.d.ts +51 -49
  122. package/dist/core/history/replay.js +1 -1
  123. package/dist/core/history/workspace-history.d.ts +101 -101
  124. package/dist/core/io/bulk-ids-input.d.ts +4 -4
  125. package/dist/core/item/actionability.d.ts +40 -40
  126. package/dist/core/item/id.d.ts +3 -3
  127. package/dist/core/item/item-format-version.d.ts +8 -8
  128. package/dist/core/item/item-format.d.ts +35 -35
  129. package/dist/core/item/item-type-definition.d.ts +2 -2
  130. package/dist/core/item/parent-reference-policy.d.ts +1 -1
  131. package/dist/core/item/parse.d.ts +12 -12
  132. package/dist/core/item/sprint-release-format.d.ts +2 -2
  133. package/dist/core/item/status-filter.d.ts +4 -4
  134. package/dist/core/item/toon-decode.d.ts +9 -9
  135. package/dist/core/item/type-registry.d.ts +40 -40
  136. package/dist/core/lock/lock-gc.d.ts +50 -50
  137. package/dist/core/lock/lock.d.ts +37 -37
  138. package/dist/core/output/mutation-projection.d.ts +6 -6
  139. package/dist/core/output/output-control.d.ts +4 -4
  140. package/dist/core/output/output.d.ts +40 -40
  141. package/dist/core/output/query-summary.d.ts +5 -5
  142. package/dist/core/packages/manifest.d.ts +50 -50
  143. package/dist/core/policy/workflow-policy-schema.d.ts +306 -306
  144. package/dist/core/policy/workflow-policy-store.d.ts +7 -7
  145. package/dist/core/policy/workflow-policy.d.ts +81 -81
  146. package/dist/core/profile/profile-describe.d.ts +40 -40
  147. package/dist/core/profile/profile-lint.d.ts +20 -20
  148. package/dist/core/profile/profile-plan.d.ts +84 -84
  149. package/dist/core/profile/profile-presets.d.ts +52 -52
  150. package/dist/core/reproducibility/context.d.ts +6 -6
  151. package/dist/core/schema/fields-file.d.ts +54 -54
  152. package/dist/core/schema/item-types-file.d.ts +36 -36
  153. package/dist/core/schema/runtime-field-values.d.ts +2 -2
  154. package/dist/core/schema/runtime-schema.d.ts +86 -86
  155. package/dist/core/schema/status-defs-file.d.ts +36 -36
  156. package/dist/core/schema/type-inference.d.ts +14 -14
  157. package/dist/core/schema/type-workflows.d.ts +22 -22
  158. package/dist/core/search/background-refresh.d.ts +9 -9
  159. package/dist/core/search/bm25.d.ts +19 -19
  160. package/dist/core/search/cache.d.ts +35 -35
  161. package/dist/core/search/corpus.d.ts +12 -12
  162. package/dist/core/search/embedding-batches.d.ts +48 -48
  163. package/dist/core/search/eval.d.ts +49 -49
  164. package/dist/core/search/http-client.d.ts +38 -38
  165. package/dist/core/search/providers.d.ts +41 -41
  166. package/dist/core/search/relevance.d.ts +20 -20
  167. package/dist/core/search/semantic-defaults.d.ts +8 -8
  168. package/dist/core/search/staleness.d.ts +4 -4
  169. package/dist/core/search/vector-stores.d.ts +78 -78
  170. package/dist/core/search/vectorization-metadata.d.ts +6 -6
  171. package/dist/core/sentry/helpers.d.ts +15 -15
  172. package/dist/core/sentry/instrument.d.ts +40 -40
  173. package/dist/core/session/session-state.d.ts +32 -32
  174. package/dist/core/shared/agent-session-context.d.ts +14 -14
  175. package/dist/core/shared/author.d.ts +128 -128
  176. package/dist/core/shared/command-types.d.ts +40 -40
  177. package/dist/core/shared/conflict-markers.d.ts +6 -6
  178. package/dist/core/shared/constants.d.ts +13 -13
  179. package/dist/core/shared/errors.d.ts +194 -183
  180. package/dist/core/shared/errors.js +1 -1
  181. package/dist/core/shared/secret-rules.d.ts +97 -97
  182. package/dist/core/shared/serial-queue.d.ts +8 -8
  183. package/dist/core/shared/split-comma-list.d.ts +6 -6
  184. package/dist/core/shared/time.d.ts +23 -23
  185. package/dist/core/store/item-format-migration.d.ts +10 -10
  186. package/dist/core/store/item-metadata-cache.d.ts +38 -38
  187. package/dist/core/store/item-metadata-query-index.d.ts +79 -79
  188. package/dist/core/store/item-metadata-read-work.d.ts +6 -6
  189. package/dist/core/store/item-store.d.ts +110 -110
  190. package/dist/core/store/paths.d.ts +2 -2
  191. package/dist/core/store/settings-read-cache.d.ts +12 -12
  192. package/dist/core/store/settings-validator.d.ts +165 -165
  193. package/dist/core/store/settings.d.ts +59 -59
  194. package/dist/core/telemetry/observability.d.ts +17 -17
  195. package/dist/core/telemetry/policy.d.ts +3 -3
  196. package/dist/core/telemetry/runtime.d.ts +241 -241
  197. package/dist/core/test/background-runs.d.ts +185 -185
  198. package/dist/core/test/item-test-run-tracking.d.ts +6 -6
  199. package/dist/core/test/run-selectors.d.ts +18 -18
  200. package/dist/core/validate/fix-planning.d.ts +50 -50
  201. package/dist/core/validate/missing-by-type.d.ts +4 -4
  202. package/dist/core/validate/missing-link-owners.d.ts +30 -30
  203. package/dist/core/validate/stale-file-classification.d.ts +8 -8
  204. package/dist/mcp/http-server.d.ts +28 -28
  205. package/dist/mcp/legacy-adapter.d.ts +33 -33
  206. package/dist/mcp/runtime-capabilities.d.ts +16 -16
  207. package/dist/mcp/server.d.ts +50 -50
  208. package/dist/mcp/tool-definitions.d.ts +36 -36
  209. package/dist/sdk/agent/closed-domain-contracts.d.ts +18 -18
  210. package/dist/sdk/agent/command-recovery.d.ts +4 -0
  211. package/dist/sdk/agent/command-recovery.js +1 -1
  212. package/dist/sdk/agent/identity-config.d.ts +32 -32
  213. package/dist/sdk/agent/item-addressing.d.ts +8 -8
  214. package/dist/sdk/agent/refusal-closure-census.d.ts +34 -34
  215. package/dist/sdk/agent/refusal-closure.d.ts +42 -42
  216. package/dist/sdk/agent/refusal-corpus-contracts.d.ts +46 -46
  217. package/dist/sdk/agent/refusal-reachability.d.ts +112 -112
  218. package/dist/sdk/agent/subcommand-recovery.d.ts +25 -25
  219. package/dist/sdk/agent/task-transcript-contracts.d.ts +30 -30
  220. package/dist/sdk/agent/tracker-preflight-contracts.d.ts +38 -38
  221. package/dist/sdk/agent-capability-contracts.d.ts +37 -37
  222. package/dist/sdk/annotations.d.ts +106 -106
  223. package/dist/sdk/author-attribution.d.ts +76 -76
  224. package/dist/sdk/authoring.d.ts +1 -1
  225. package/dist/sdk/authoring.js +1 -1
  226. package/dist/sdk/cli-bootstrap.d.ts +70 -70
  227. package/dist/sdk/cli-contracts/agent-output-contracts.d.ts +63 -63
  228. package/dist/sdk/cli-contracts/command-aliases.d.ts +14 -14
  229. package/dist/sdk/cli-contracts/command-exit-contracts.d.ts +70 -70
  230. package/dist/sdk/cli-contracts/commander-types.d.ts +17 -17
  231. package/dist/sdk/cli-contracts/completeness.d.ts +26 -26
  232. package/dist/sdk/cli-contracts/enum-contracts.d.ts +5 -5
  233. package/dist/sdk/cli-contracts/flag-contracts.d.ts +32 -32
  234. package/dist/sdk/cli-contracts/flag-contracts.js +1 -1
  235. package/dist/sdk/cli-contracts/flag-lexicon-contracts.d.ts +42 -42
  236. package/dist/sdk/cli-contracts/grammar-contracts.d.ts +84 -84
  237. package/dist/sdk/cli-contracts/grammar-contracts.js +1 -1
  238. package/dist/sdk/cli-contracts/registration-helpers.d.ts +36 -36
  239. package/dist/sdk/cli-contracts/runtime-contracts.d.ts +290 -294
  240. package/dist/sdk/cli-contracts/runtime-contracts.js +1 -1
  241. package/dist/sdk/cli-contracts/schemas/assurance-definition.d.ts +793 -793
  242. package/dist/sdk/cli-contracts/tool-option-contracts.d.ts +391 -391
  243. package/dist/sdk/cli-contracts/tool-parameter-tables.d.ts +6 -6
  244. package/dist/sdk/cli-contracts/tool-schema.d.ts +54 -54
  245. package/dist/sdk/cli-contracts/tool-schema.js +1 -1
  246. package/dist/sdk/cli-contracts/typed-action-inputs.d.ts +24 -24
  247. package/dist/sdk/comments.d.ts +44 -44
  248. package/dist/sdk/compile-cache.d.ts +4 -4
  249. package/dist/sdk/completion/shared.d.ts +22 -22
  250. package/dist/sdk/compose.d.ts +156 -156
  251. package/dist/sdk/config.d.ts +123 -123
  252. package/dist/sdk/context/semantic-session-attribution.d.ts +14 -14
  253. package/dist/sdk/context/usage-ledger.d.ts +20 -20
  254. package/dist/sdk/context-intent-contracts.d.ts +50 -50
  255. package/dist/sdk/context-intent-contracts.js +1 -1
  256. package/dist/sdk/context-intent-runtime.d.ts +8 -8
  257. package/dist/sdk/context-packing.d.ts +78 -78
  258. package/dist/sdk/context-relevance.d.ts +189 -180
  259. package/dist/sdk/context-relevance.js +1 -1
  260. package/dist/sdk/context-signal-store.d.ts +84 -84
  261. package/dist/sdk/context-usage.d.ts +92 -92
  262. package/dist/sdk/corpus-shape.d.ts +101 -101
  263. package/dist/sdk/define.d.ts +2 -2
  264. package/dist/sdk/dependencies.d.ts +116 -116
  265. package/dist/sdk/dependency-flag-validation.d.ts +14 -12
  266. package/dist/sdk/dependency-flag-validation.js +1 -1
  267. package/dist/sdk/dependency-provenance.d.ts +30 -30
  268. package/dist/sdk/docs.d.ts +32 -32
  269. package/dist/sdk/duplicates.d.ts +21 -21
  270. package/dist/sdk/environment/agent-environment.d.ts +196 -196
  271. package/dist/sdk/environment/project-runtime-compatibility.d.ts +56 -56
  272. package/dist/sdk/environment/source-context.d.ts +6 -6
  273. package/dist/sdk/error-code-catalog.d.ts +40 -40
  274. package/dist/sdk/errors.d.ts +29 -29
  275. package/dist/sdk/eval.d.ts +45 -45
  276. package/dist/sdk/extension/author-manifest.d.ts +14 -14
  277. package/dist/sdk/extension/bundled-catalog.d.ts +7 -7
  278. package/dist/sdk/extension/describe.d.ts +36 -36
  279. package/dist/sdk/extension/doctor.d.ts +29 -29
  280. package/dist/sdk/extension/install-plan.d.ts +55 -55
  281. package/dist/sdk/extension/install-receipts.d.ts +2 -2
  282. package/dist/sdk/extension/install-runtime.d.ts +8 -8
  283. package/dist/sdk/extension/install-snapshot.d.ts +14 -14
  284. package/dist/sdk/extension/install-sources.d.ts +96 -96
  285. package/dist/sdk/extension/managed-state.d.ts +66 -66
  286. package/dist/sdk/extension/migrations.d.ts +82 -82
  287. package/dist/sdk/extension/output-ownership.d.ts +24 -24
  288. package/dist/sdk/extension/runtime-summary.d.ts +5 -5
  289. package/dist/sdk/extension/scaffold.d.ts +12 -12
  290. package/dist/sdk/extension/shared.d.ts +15 -15
  291. package/dist/sdk/extension/source-resolution.d.ts +30 -30
  292. package/dist/sdk/extension/static-inventory.d.ts +42 -42
  293. package/dist/sdk/extension/update-check.d.ts +10 -10
  294. package/dist/sdk/extension.d.ts +320 -320
  295. package/dist/sdk/files.d.ts +157 -157
  296. package/dist/sdk/flag-invocation-contracts.d.ts +44 -44
  297. package/dist/sdk/generated/generated-error-code-catalog-part-1.js +1 -1
  298. package/dist/sdk/generated/generated-error-code-catalog-part-2.js +1 -1
  299. package/dist/sdk/governance/artifact-ledgers.d.ts +35 -35
  300. package/dist/sdk/governance/assurance-action.d.ts +68 -68
  301. package/dist/sdk/governance/assurance-action.js +1 -1
  302. package/dist/sdk/governance/assurance-mutation-error.d.ts +36 -36
  303. package/dist/sdk/governance/assurance-presets.d.ts +24 -24
  304. package/dist/sdk/governance/assurance-runtime.d.ts +14 -14
  305. package/dist/sdk/governance/assurance.d.ts +353 -353
  306. package/dist/sdk/governance/boundary-fixtures.d.ts +60 -60
  307. package/dist/sdk/governance/closure-timestamps.d.ts +9 -9
  308. package/dist/sdk/governance/coverage-assurance.d.ts +10 -10
  309. package/dist/sdk/governance/defect-recurrence-coverage.d.ts +75 -75
  310. package/dist/sdk/governance/defect-recurrence-graph.d.ts +18 -18
  311. package/dist/sdk/governance/defect-recurrence.d.ts +186 -181
  312. package/dist/sdk/governance/defect-recurrence.js +1 -1
  313. package/dist/sdk/governance/extension-host-version.d.ts +16 -16
  314. package/dist/sdk/governance/gc.d.ts +48 -48
  315. package/dist/sdk/governance/health-merge-evidence.d.ts +5 -5
  316. package/dist/sdk/governance/health.d.ts +188 -188
  317. package/dist/sdk/governance/hierarchy-validation.d.ts +13 -13
  318. package/dist/sdk/governance/linked-file-report.d.ts +26 -26
  319. package/dist/sdk/governance/merge-receipt-history.d.ts +36 -36
  320. package/dist/sdk/governance/provenance-health.d.ts +64 -64
  321. package/dist/sdk/governance/reindex.d.ts +89 -89
  322. package/dist/sdk/governance/reliability.d.ts +56 -56
  323. package/dist/sdk/governance/stale-work.d.ts +22 -22
  324. package/dist/sdk/governance/status-role-diagnostics.d.ts +12 -12
  325. package/dist/sdk/governance/storage-integrity.d.ts +54 -54
  326. package/dist/sdk/governance/tracked-runtime-cache.d.ts +10 -10
  327. package/dist/sdk/governance/upgrade.d.ts +104 -104
  328. package/dist/sdk/governance/validate-history-drift.d.ts +2 -2
  329. package/dist/sdk/governance/validate-item-reader.d.ts +6 -6
  330. package/dist/sdk/governance/validate.d.ts +191 -191
  331. package/dist/sdk/governance/workflow-completeness.d.ts +15 -15
  332. package/dist/sdk/governance/workflow-policy.d.ts +28 -28
  333. package/dist/sdk/governance/workspace-position.d.ts +46 -46
  334. package/dist/sdk/graph/adapter.d.ts +66 -66
  335. package/dist/sdk/graph/analytics.d.ts +54 -54
  336. package/dist/sdk/graph/assembly.d.ts +80 -80
  337. package/dist/sdk/graph/cache.d.ts +29 -29
  338. package/dist/sdk/graph/cardinality-integrity.d.ts +13 -0
  339. package/dist/sdk/graph/cardinality-integrity.js +2 -0
  340. package/dist/sdk/graph/centrality.d.ts +34 -34
  341. package/dist/sdk/graph/conformance.d.ts +33 -33
  342. package/dist/sdk/graph/deadline-scheduling.d.ts +58 -58
  343. package/dist/sdk/graph/durable-cache.d.ts +26 -26
  344. package/dist/sdk/graph/governance.d.ts +165 -165
  345. package/dist/sdk/graph/hierarchy-integrity.d.ts +52 -52
  346. package/dist/sdk/graph/index.d.ts +1 -0
  347. package/dist/sdk/graph/index.js +1 -1
  348. package/dist/sdk/graph/lifecycle-coverage.d.ts +17 -17
  349. package/dist/sdk/graph/mutation-advisory.d.ts +11 -11
  350. package/dist/sdk/graph/query-contracts.d.ts +10 -10
  351. package/dist/sdk/graph/remediation.d.ts +25 -25
  352. package/dist/sdk/graph/run.d.ts +392 -392
  353. package/dist/sdk/graph/scheduling.d.ts +38 -38
  354. package/dist/sdk/graph/traversal.d.ts +14 -14
  355. package/dist/sdk/guide-topics.d.ts +32 -32
  356. package/dist/sdk/guide.d.ts +62 -62
  357. package/dist/sdk/history/attestation-command.d.ts +12 -12
  358. package/dist/sdk/history/attestation-contract.d.ts +78 -78
  359. package/dist/sdk/history/attestation-scan.d.ts +6 -6
  360. package/dist/sdk/history/maintenance.d.ts +46 -46
  361. package/dist/sdk/history/salvage.d.ts +18 -18
  362. package/dist/sdk/history/subject.d.ts +9 -9
  363. package/dist/sdk/history-analytics.d.ts +84 -84
  364. package/dist/sdk/history-compact.d.ts +103 -103
  365. package/dist/sdk/history-mcp.d.ts +8 -8
  366. package/dist/sdk/history-provenance.d.ts +59 -59
  367. package/dist/sdk/history-read.d.ts +36 -36
  368. package/dist/sdk/history-redact.d.ts +78 -78
  369. package/dist/sdk/history-repair.d.ts +158 -158
  370. package/dist/sdk/history-repair.js +1 -1
  371. package/dist/sdk/improvement-ledger.d.ts +102 -102
  372. package/dist/sdk/init-agent-guidance.d.ts +70 -70
  373. package/dist/sdk/init.d.ts +152 -152
  374. package/dist/sdk/item-children.d.ts +28 -28
  375. package/dist/sdk/item-schedule.d.ts +12 -12
  376. package/dist/sdk/item-transaction.d.ts +100 -100
  377. package/dist/sdk/learnings.d.ts +42 -42
  378. package/dist/sdk/lifecycle/append.d.ts +14 -14
  379. package/dist/sdk/lifecycle/claim.d.ts +60 -60
  380. package/dist/sdk/lifecycle/close-many.d.ts +94 -94
  381. package/dist/sdk/lifecycle/close.d.ts +27 -27
  382. package/dist/sdk/lifecycle/copy.d.ts +18 -18
  383. package/dist/sdk/lifecycle/core-field-recovery.d.ts +7 -0
  384. package/dist/sdk/lifecycle/core-field-recovery.js +2 -0
  385. package/dist/sdk/lifecycle/create.d.ts +82 -82
  386. package/dist/sdk/lifecycle/create.js +1 -1
  387. package/dist/sdk/lifecycle/delete.d.ts +28 -28
  388. package/dist/sdk/lifecycle/focus.d.ts +10 -10
  389. package/dist/sdk/lifecycle/hierarchy-mutation-lock.d.ts +10 -10
  390. package/dist/sdk/lifecycle/hierarchy-mutation-lock.js +1 -1
  391. package/dist/sdk/lifecycle/legacy-none-tokens.d.ts +54 -54
  392. package/dist/sdk/lifecycle/lifecycle-transitions.d.ts +4 -4
  393. package/dist/sdk/lifecycle/mcp-actions.d.ts +10 -10
  394. package/dist/sdk/lifecycle/mutation-command-options.d.ts +116 -116
  395. package/dist/sdk/lifecycle/mutation-facet-contracts.d.ts +6 -0
  396. package/dist/sdk/lifecycle/mutation-facet-contracts.js +2 -0
  397. package/dist/sdk/lifecycle/plan-mutation-receipt.d.ts +42 -42
  398. package/dist/sdk/lifecycle/plan.d.ts +217 -217
  399. package/dist/sdk/lifecycle/reopen.d.ts +29 -24
  400. package/dist/sdk/lifecycle/reopen.js +1 -1
  401. package/dist/sdk/lifecycle/repeatable-metadata-parsers.d.ts +3 -3
  402. package/dist/sdk/lifecycle/restore.d.ts +33 -33
  403. package/dist/sdk/lifecycle/shared-unset-fields.d.ts +19 -19
  404. package/dist/sdk/lifecycle/task-composition.d.ts +4 -4
  405. package/dist/sdk/lifecycle/update-many.d.ts +79 -79
  406. package/dist/sdk/lifecycle/update.d.ts +131 -132
  407. package/dist/sdk/lifecycle/update.js +2 -2
  408. package/dist/sdk/lifecycle-completion.d.ts +22 -22
  409. package/dist/sdk/lifecycle-policy.d.ts +52 -52
  410. package/dist/sdk/linked-artifacts.d.ts +69 -69
  411. package/dist/sdk/mcp/apps.d.ts +32 -32
  412. package/dist/sdk/mcp/authorization.d.ts +76 -76
  413. package/dist/sdk/mcp/discovery.d.ts +111 -111
  414. package/dist/sdk/mcp/interactions.d.ts +61 -61
  415. package/dist/sdk/mcp/protocol.d.ts +78 -78
  416. package/dist/sdk/mcp/skills.d.ts +88 -88
  417. package/dist/sdk/mcp/subscriptions.d.ts +39 -39
  418. package/dist/sdk/mcp/tasks.d.ts +75 -75
  419. package/dist/sdk/mcp/transport.d.ts +11 -11
  420. package/dist/sdk/merge/abandoned-receipts.d.ts +6 -6
  421. package/dist/sdk/merge/driver.d.ts +60 -60
  422. package/dist/sdk/merge/install.d.ts +64 -64
  423. package/dist/sdk/merge/receipt-file-boundary.d.ts +5 -5
  424. package/dist/sdk/merge/receipt-operation.d.ts +6 -6
  425. package/dist/sdk/merge/receipt-schema.d.ts +2 -2
  426. package/dist/sdk/merge/receipts.d.ts +156 -156
  427. package/dist/sdk/merge/reconcile.d.ts +36 -36
  428. package/dist/sdk/merge/reconcile.js +1 -1
  429. package/dist/sdk/merge/three-way.d.ts +77 -76
  430. package/dist/sdk/merge/three-way.js +1 -1
  431. package/dist/sdk/mutation-events.d.ts +84 -84
  432. package/dist/sdk/mutation-guard.d.ts +106 -106
  433. package/dist/sdk/notes.d.ts +52 -52
  434. package/dist/sdk/output/table-rows.d.ts +8 -8
  435. package/dist/sdk/output-contracts.d.ts +38 -38
  436. package/dist/sdk/output-projection.d.ts +142 -142
  437. package/dist/sdk/output-token-accounting.d.ts +27 -27
  438. package/dist/sdk/output.d.ts +28 -28
  439. package/dist/sdk/package-import-adapters.d.ts +54 -54
  440. package/dist/sdk/pagination.d.ts +29 -29
  441. package/dist/sdk/profile.d.ts +123 -123
  442. package/dist/sdk/provenance.d.ts +58 -58
  443. package/dist/sdk/public-surface.json +1 -1
  444. package/dist/sdk/query/activity.d.ts +118 -118
  445. package/dist/sdk/query/aggregate.d.ts +140 -140
  446. package/dist/sdk/query/calendar.d.ts +144 -144
  447. package/dist/sdk/query/complete-list.d.ts +53 -53
  448. package/dist/sdk/query/context.d.ts +395 -395
  449. package/dist/sdk/query/duplicate-candidates.d.ts +1 -1
  450. package/dist/sdk/query/get.d.ts +77 -77
  451. package/dist/sdk/query/history.d.ts +72 -72
  452. package/dist/sdk/query/item-filter-options.d.ts +79 -79
  453. package/dist/sdk/query/list-filter-shared.d.ts +1 -1
  454. package/dist/sdk/query/list.d.ts +188 -188
  455. package/dist/sdk/query/multi-value-filters.d.ts +4 -4
  456. package/dist/sdk/query/next-ready-budget.d.ts +14 -14
  457. package/dist/sdk/query/next.d.ts +137 -137
  458. package/dist/sdk/query/projection-contracts.d.ts +8 -8
  459. package/dist/sdk/query/search/corpus.d.ts +8 -8
  460. package/dist/sdk/query/search/filters.d.ts +5 -5
  461. package/dist/sdk/query/search/input.d.ts +4 -4
  462. package/dist/sdk/query/search/response.d.ts +8 -8
  463. package/dist/sdk/query/search/semantic.d.ts +106 -106
  464. package/dist/sdk/query/search/types.d.ts +85 -85
  465. package/dist/sdk/query/search-contracts.d.ts +65 -65
  466. package/dist/sdk/query/search-pagination.d.ts +19 -19
  467. package/dist/sdk/query/search-rendering.d.ts +25 -25
  468. package/dist/sdk/query/search.d.ts +46 -46
  469. package/dist/sdk/read-output/continuation.d.ts +8 -8
  470. package/dist/sdk/read-output/continuation.js +1 -1
  471. package/dist/sdk/read-output/extension.d.ts +7 -0
  472. package/dist/sdk/read-output/extension.js +2 -0
  473. package/dist/sdk/read-output/options.d.ts +6 -4
  474. package/dist/sdk/read-output/options.js +1 -1
  475. package/dist/sdk/read-output/provenance.d.ts +8 -8
  476. package/dist/sdk/read-output-budget.d.ts +10 -10
  477. package/dist/sdk/read-output-contracts.d.ts +192 -186
  478. package/dist/sdk/read-output-contracts.js +1 -1
  479. package/dist/sdk/read-output-rows.d.ts +6 -6
  480. package/dist/sdk/read-output-session.d.ts +50 -50
  481. package/dist/sdk/relationship-analytics.d.ts +78 -78
  482. package/dist/sdk/relationship-context.d.ts +81 -81
  483. package/dist/sdk/relationship-history.d.ts +109 -109
  484. package/dist/sdk/relationship-kinds/contract.d.ts +34 -34
  485. package/dist/sdk/relationship-migration.d.ts +26 -26
  486. package/dist/sdk/relationships.d.ts +78 -78
  487. package/dist/sdk/reproducibility/process.d.ts +3 -3
  488. package/dist/sdk/runtime/context.d.ts +11 -11
  489. package/dist/sdk/runtime-action-aliases.d.ts +2 -2
  490. package/dist/sdk/runtime-extended-actions.d.ts +8 -8
  491. package/dist/sdk/runtime-input.d.ts +3 -3
  492. package/dist/sdk/runtime-public-contracts.d.ts +78 -78
  493. package/dist/sdk/runtime.d.ts +305 -305
  494. package/dist/sdk/runtime.js +1 -1
  495. package/dist/sdk/scheduling-shortcuts.d.ts +32 -32
  496. package/dist/sdk/schema-migration.d.ts +86 -86
  497. package/dist/sdk/schema.d.ts +355 -355
  498. package/dist/sdk/similarity-scoring.d.ts +10 -10
  499. package/dist/sdk/similarity.d.ts +113 -113
  500. package/dist/sdk/stats.d.ts +108 -108
  501. package/dist/sdk/structured-mutations.d.ts +16 -16
  502. package/dist/sdk/structured-mutations.js +1 -1
  503. package/dist/sdk/telemetry.d.ts +53 -53
  504. package/dist/sdk/templates.d.ts +39 -39
  505. package/dist/sdk/test/batch.d.ts +85 -85
  506. package/dist/sdk/test/execution-receipts.d.ts +3 -3
  507. package/dist/sdk/test/execution.d.ts +277 -277
  508. package/dist/sdk/test/execution.js +2 -2
  509. package/dist/sdk/test/json-path.d.ts +2 -2
  510. package/dist/sdk/test/linked-command-detection.d.ts +10 -10
  511. package/dist/sdk/test/measurements.d.ts +11 -11
  512. package/dist/sdk/test/parsers.d.ts +1 -1
  513. package/dist/sdk/test/parsers.js +1 -1
  514. package/dist/sdk/test/runs.d.ts +52 -52
  515. package/dist/sdk/test/trust.d.ts +12 -12
  516. package/dist/sdk/test/update.d.ts +31 -31
  517. package/dist/sdk/testing.d.ts +319 -319
  518. package/dist/sdk/traceability/source-traceability.d.ts +65 -65
  519. package/dist/sdk/workspace-contracts.d.ts +37 -37
  520. package/dist/sdk/workspace-memory.d.ts +60 -60
  521. package/dist/sdk/workspace-recipe.d.ts +9 -9
  522. package/dist/sdk/workspace-snapshot.d.ts +97 -97
  523. package/dist/sdk/workspace-transaction-gc.d.ts +32 -32
  524. package/dist/sdk/workspace-transaction.d.ts +47 -47
  525. package/dist/sdk/workspace.d.ts +6 -6
  526. package/dist/types.d.ts +978 -978
  527. package/dist/types.js +1 -1
  528. package/docs/BUILD_AND_RELEASE_ACCEPTANCE.md +5 -2
  529. package/docs/DEFECT_RECURRENCE.md +12 -0
  530. package/docs/EXTENSIONS.md +2 -2
  531. package/docs/MERGE_SAFETY.md +27 -1
  532. package/docs/RECURRENCE_RECOVERY_CONTRACTS.md +17 -4
  533. package/docs/RELATIONSHIP_GRAPH.md +26 -0
  534. package/docs/RELEASING.md +6 -0
  535. package/docs/SDK.md +43 -18
  536. package/docs/SDK_CONSUMER_RECEIPTS.md +67 -0
  537. package/docs/generated/REFUSAL_CLOSURE_CENSUS.md +6 -3
  538. package/marketplace.json +1 -1
  539. package/node_modules/@opentelemetry/core/build/esm/version.d.ts +1 -1
  540. package/node_modules/@opentelemetry/core/build/esm/version.js +1 -1
  541. package/node_modules/@opentelemetry/core/build/esnext/version.d.ts +1 -1
  542. package/node_modules/@opentelemetry/core/build/esnext/version.js +1 -1
  543. package/node_modules/@opentelemetry/core/build/src/version.d.ts +1 -1
  544. package/node_modules/@opentelemetry/core/build/src/version.js +1 -1
  545. package/node_modules/@opentelemetry/core/package.json +2 -2
  546. package/node_modules/@opentelemetry/resources/build/esm/version.d.ts +1 -1
  547. package/node_modules/@opentelemetry/resources/build/esm/version.js +1 -1
  548. package/node_modules/@opentelemetry/resources/build/esnext/version.d.ts +1 -1
  549. package/node_modules/@opentelemetry/resources/build/esnext/version.js +1 -1
  550. package/node_modules/@opentelemetry/resources/build/src/version.d.ts +1 -1
  551. package/node_modules/@opentelemetry/resources/build/src/version.js +1 -1
  552. package/node_modules/@opentelemetry/resources/package.json +3 -3
  553. package/node_modules/@opentelemetry/sdk-trace/build/esm/StackContextManager.d.ts +57 -0
  554. package/node_modules/@opentelemetry/sdk-trace/build/esm/StackContextManager.js +105 -0
  555. package/node_modules/@opentelemetry/sdk-trace/build/esm/index.d.ts +1 -0
  556. package/node_modules/@opentelemetry/sdk-trace/build/esm/index.js +1 -0
  557. package/node_modules/@opentelemetry/sdk-trace/build/esm/version.d.ts +1 -1
  558. package/node_modules/@opentelemetry/sdk-trace/build/esm/version.js +1 -1
  559. package/node_modules/@opentelemetry/sdk-trace/build/esnext/StackContextManager.d.ts +57 -0
  560. package/node_modules/@opentelemetry/sdk-trace/build/esnext/StackContextManager.js +105 -0
  561. package/node_modules/@opentelemetry/sdk-trace/build/esnext/index.d.ts +1 -0
  562. package/node_modules/@opentelemetry/sdk-trace/build/esnext/index.js +1 -0
  563. package/node_modules/@opentelemetry/sdk-trace/build/esnext/version.d.ts +1 -1
  564. package/node_modules/@opentelemetry/sdk-trace/build/esnext/version.js +1 -1
  565. package/node_modules/@opentelemetry/sdk-trace/build/src/StackContextManager.d.ts +57 -0
  566. package/node_modules/@opentelemetry/sdk-trace/build/src/StackContextManager.js +109 -0
  567. package/node_modules/@opentelemetry/sdk-trace/build/src/index.d.ts +1 -0
  568. package/node_modules/@opentelemetry/sdk-trace/build/src/index.js +3 -1
  569. package/node_modules/@opentelemetry/sdk-trace/build/src/version.d.ts +1 -1
  570. package/node_modules/@opentelemetry/sdk-trace/build/src/version.js +1 -1
  571. package/node_modules/@opentelemetry/sdk-trace/package.json +5 -5
  572. package/node_modules/@opentelemetry/sdk-trace-base/build/esm/version.d.ts +1 -1
  573. package/node_modules/@opentelemetry/sdk-trace-base/build/esm/version.js +1 -1
  574. package/node_modules/@opentelemetry/sdk-trace-base/build/esnext/version.d.ts +1 -1
  575. package/node_modules/@opentelemetry/sdk-trace-base/build/esnext/version.js +1 -1
  576. package/node_modules/@opentelemetry/sdk-trace-base/build/src/version.d.ts +1 -1
  577. package/node_modules/@opentelemetry/sdk-trace-base/build/src/version.js +1 -1
  578. package/node_modules/@opentelemetry/sdk-trace-base/package.json +7 -7
  579. package/node_modules/@sentry/core/build/cjs/browser.js +3 -0
  580. package/node_modules/@sentry/core/build/cjs/fetch.js +10 -9
  581. package/node_modules/@sentry/core/build/cjs/index.js +3 -0
  582. package/node_modules/@sentry/core/build/cjs/integrations/http/add-outgoing-request-breadcrumb.js +2 -1
  583. package/node_modules/@sentry/core/build/cjs/integrations/http/get-outgoing-span-data.js +3 -2
  584. package/node_modules/@sentry/core/build/cjs/integrations/http/server-subscription.js +7 -3
  585. package/node_modules/@sentry/core/build/cjs/integrations/requestdata.js +23 -9
  586. package/node_modules/@sentry/core/build/cjs/server.js +3 -0
  587. package/node_modules/@sentry/core/build/cjs/utils/data-collection/filterCollectedUrl.js +24 -0
  588. package/node_modules/@sentry/core/build/cjs/utils/data-collection/filterKeyValueData.js +17 -23
  589. package/node_modules/@sentry/core/build/cjs/utils/data-collection/filterQueryParams.js +8 -15
  590. package/node_modules/@sentry/core/build/cjs/utils/data-collection/filterUrlQuery.js +20 -0
  591. package/node_modules/@sentry/core/build/cjs/utils/url.js +4 -3
  592. package/node_modules/@sentry/core/build/cjs/utils/version.js +1 -1
  593. package/node_modules/@sentry/core/build/esm/browser.js +1 -0
  594. package/node_modules/@sentry/core/build/esm/fetch.js +10 -9
  595. package/node_modules/@sentry/core/build/esm/index.js +1 -0
  596. package/node_modules/@sentry/core/build/esm/integrations/http/add-outgoing-request-breadcrumb.js +2 -1
  597. package/node_modules/@sentry/core/build/esm/integrations/http/get-outgoing-span-data.js +3 -2
  598. package/node_modules/@sentry/core/build/esm/integrations/http/server-subscription.js +7 -3
  599. package/node_modules/@sentry/core/build/esm/integrations/requestdata.js +23 -9
  600. package/node_modules/@sentry/core/build/esm/package.json +1 -1
  601. package/node_modules/@sentry/core/build/esm/server.js +1 -0
  602. package/node_modules/@sentry/core/build/esm/utils/data-collection/filterCollectedUrl.js +21 -0
  603. package/node_modules/@sentry/core/build/esm/utils/data-collection/filterKeyValueData.js +18 -25
  604. package/node_modules/@sentry/core/build/esm/utils/data-collection/filterQueryParams.js +9 -16
  605. package/node_modules/@sentry/core/build/esm/utils/data-collection/filterUrlQuery.js +18 -0
  606. package/node_modules/@sentry/core/build/esm/utils/url.js +4 -3
  607. package/node_modules/@sentry/core/build/esm/utils/version.js +1 -1
  608. package/node_modules/@sentry/core/build/types/shared-exports.d.ts +1 -0
  609. package/node_modules/@sentry/core/build/types/utils/data-collection/filterCollectedUrl.d.ts +21 -0
  610. package/node_modules/@sentry/core/build/types/utils/data-collection/filterKeyValueData.d.ts +1 -0
  611. package/node_modules/@sentry/core/build/types/utils/data-collection/filterQueryParams.d.ts +2 -3
  612. package/node_modules/@sentry/core/build/types/utils/data-collection/filterUrlQuery.d.ts +13 -0
  613. package/node_modules/@sentry/core/build/types/utils/url.d.ts +4 -1
  614. package/node_modules/@sentry/core/build/types-ts3.8/shared-exports.d.ts +1 -0
  615. package/node_modules/@sentry/core/build/types-ts3.8/utils/data-collection/filterCollectedUrl.d.ts +21 -0
  616. package/node_modules/@sentry/core/build/types-ts3.8/utils/data-collection/filterKeyValueData.d.ts +1 -0
  617. package/node_modules/@sentry/core/build/types-ts3.8/utils/data-collection/filterQueryParams.d.ts +2 -3
  618. package/node_modules/@sentry/core/build/types-ts3.8/utils/data-collection/filterUrlQuery.d.ts +13 -0
  619. package/node_modules/@sentry/core/build/types-ts3.8/utils/url.d.ts +4 -1
  620. package/node_modules/@sentry/core/package.json +3 -2
  621. package/node_modules/@sentry/node/build/cjs/integrations/tracing/vercelai/instrumentation.js +3 -0
  622. package/node_modules/@sentry/node/build/esm/integrations/tracing/vercelai/instrumentation.js +3 -0
  623. package/node_modules/@sentry/node/build/esm/package.json +1 -1
  624. package/node_modules/@sentry/node/package.json +7 -6
  625. package/node_modules/@sentry/node-core/build/cjs/integrations/anr/index.js +1 -1
  626. package/node_modules/@sentry/node-core/build/cjs/integrations/http/httpServerSpansIntegration.js +6 -3
  627. package/node_modules/@sentry/node-core/build/cjs/integrations/local-variables/local-variables-async.js +1 -1
  628. package/node_modules/@sentry/node-core/build/cjs/integrations/node-fetch/undici-instrumentation.js +2 -2
  629. package/node_modules/@sentry/node-core/build/cjs/light/client.js +7 -0
  630. package/node_modules/@sentry/node-core/build/cjs/sdk/client.js +7 -0
  631. package/node_modules/@sentry/node-core/build/cjs/utils/outgoingFetchRequest.js +1 -1
  632. package/node_modules/@sentry/node-core/build/esm/integrations/anr/index.js +1 -1
  633. package/node_modules/@sentry/node-core/build/esm/integrations/anr/worker-script.js +2 -2
  634. package/node_modules/@sentry/node-core/build/esm/integrations/http/httpServerSpansIntegration.js +7 -4
  635. package/node_modules/@sentry/node-core/build/esm/integrations/local-variables/local-variables-async.js +1 -1
  636. package/node_modules/@sentry/node-core/build/esm/integrations/local-variables/worker-script.js +1 -1
  637. package/node_modules/@sentry/node-core/build/esm/integrations/node-fetch/undici-instrumentation.js +3 -3
  638. package/node_modules/@sentry/node-core/build/esm/light/client.js +8 -1
  639. package/node_modules/@sentry/node-core/build/esm/package.json +1 -1
  640. package/node_modules/@sentry/node-core/build/esm/sdk/client.js +8 -1
  641. package/node_modules/@sentry/node-core/build/esm/utils/outgoingFetchRequest.js +2 -2
  642. package/node_modules/@sentry/node-core/build/types/light/client.d.ts +1 -0
  643. package/node_modules/@sentry/node-core/build/types/sdk/client.d.ts +1 -0
  644. package/node_modules/@sentry/node-core/build/types-ts3.8/light/client.d.ts +1 -0
  645. package/node_modules/@sentry/node-core/build/types-ts3.8/sdk/client.d.ts +1 -0
  646. package/node_modules/@sentry/node-core/package.json +5 -4
  647. package/node_modules/@sentry/opentelemetry/build/cjs/{asyncContextStrategy-BJ5buq_A.js → asyncContextStrategy-BR-l9zjD.js} +8 -6
  648. package/node_modules/@sentry/opentelemetry/build/cjs/index.browser.js +1 -1
  649. package/node_modules/@sentry/opentelemetry/build/cjs/index.js +1 -1
  650. package/node_modules/@sentry/opentelemetry/build/esm/{asyncContextStrategy-Bx5F5tCX.js → asyncContextStrategy-BQfM_LMv.js} +9 -7
  651. package/node_modules/@sentry/opentelemetry/build/esm/index.browser.js +1 -1
  652. package/node_modules/@sentry/opentelemetry/build/esm/index.js +2 -2
  653. package/node_modules/@sentry/opentelemetry/build/esm/package.json +1 -1
  654. package/node_modules/@sentry/opentelemetry/package.json +4 -3
  655. package/node_modules/@sentry/server-utils/build/cjs/tracing-channel.js +1 -0
  656. package/node_modules/@sentry/server-utils/build/esm/package.json +1 -1
  657. package/node_modules/@sentry/server-utils/build/esm/tracing-channel.js +1 -0
  658. package/node_modules/@sentry/server-utils/build/types/tracing-channel.d.ts +3 -1
  659. package/node_modules/@sentry/server-utils/build/types-ts3.8/tracing-channel.d.ts +3 -1
  660. package/node_modules/@sentry/server-utils/package.json +4 -3
  661. package/node_modules/cjs-module-lexer/README.md +8 -3
  662. package/node_modules/cjs-module-lexer/dist/lexer.js +1 -1
  663. package/node_modules/cjs-module-lexer/dist/lexer.mjs +2 -2
  664. package/node_modules/cjs-module-lexer/lexer.js +48 -9
  665. package/node_modules/cjs-module-lexer/package.json +3 -2
  666. package/node_modules/es-module-lexer/dist/lexer.asm.js +2 -2
  667. package/node_modules/es-module-lexer/dist/lexer.cjs +1 -1
  668. package/node_modules/es-module-lexer/dist/lexer.js +2 -2
  669. package/node_modules/es-module-lexer/dist/lexer.minimal.asm.js +2 -2
  670. package/node_modules/es-module-lexer/dist/lexer.minimal.cjs +1 -1
  671. package/node_modules/es-module-lexer/dist/lexer.minimal.js +2 -2
  672. package/node_modules/es-module-lexer/package.json +1 -1
  673. package/node_modules/import-in-the-middle/CHANGELOG.md +7 -0
  674. package/node_modules/import-in-the-middle/lib/get-esm-exports.mjs +7 -0
  675. package/node_modules/import-in-the-middle/package.json +1 -1
  676. package/package.json +2 -2
  677. package/packages/pm-beads/extensions/beads/runtime.ts +2 -2
  678. package/packages/pm-beads/package.json +1 -1
  679. package/packages/pm-calendar/package.json +1 -1
  680. package/packages/pm-command-kit/package.json +1 -1
  681. package/packages/pm-digital-twin/package.json +1 -1
  682. package/packages/pm-governance-audit/package.json +1 -1
  683. package/packages/pm-guide-shell/package.json +1 -1
  684. package/packages/pm-kanban/package.json +1 -1
  685. package/packages/pm-lifecycle-hooks/package.json +1 -1
  686. package/packages/pm-linked-test-adapters/package.json +1 -1
  687. package/packages/pm-search-advanced/package.json +1 -1
  688. package/packages/pm-templates/package.json +1 -1
  689. package/packages/pm-todos/package.json +1 -1
  690. package/packages/pm-vcs/package.json +1 -1
  691. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  692. package/plugins/pm-claude/package.json +1 -1
  693. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  694. package/plugins/pm-codex/package.json +1 -1
  695. package/plugins/pm-codex/plugin.json +1 -1
  696. package/runtime-dependencies.json +1 -1
  697. package/scripts/finalize-build.mjs +37 -0
  698. package/dist/cli-bundle/chunks/chunk-6PZPUJW3.js +0 -234
  699. package/dist/cli-bundle/chunks/chunk-ILQEZ4Y6.js +0 -2
  700. package/dist/cli-bundle/chunks/chunk-JRRXWH5B.js +0 -20
  701. package/dist/cli-bundle/chunks/chunk-LH5QDBMN.js +0 -2
  702. package/dist/cli-bundle/chunks/chunk-M5NDSW6E.js +0 -30
  703. package/dist/cli-bundle/focused-chunks/chunk-AXBO53EQ.js +0 -2
  704. package/dist/cli-bundle/focused-chunks/chunk-FXRWJEQ5.js +0 -3
  705. package/dist/cli-bundle/focused-chunks/chunk-IKJFAU32.js +0 -8
  706. package/dist/cli-bundle/focused-chunks/chunk-PPH5N26M.js +0 -2
  707. package/dist/cli-bundle/focused-chunks/chunk-RZVNGUT7.js +0 -26
  708. package/dist/cli-bundle/focused-chunks/chunk-YDJT33JU.js +0 -2
@@ -1,6 +1,8 @@
1
1
  import type { RuntimeStatusRegistry } from "../core/schema/runtime-schema.js";
2
2
  import type { ItemMetadata } from "../types/index.js";
3
3
  import type { HistoryEventClass } from "../core/history/event-classification.js";
4
+ import { type PmReadOutputResult } from "./read-output-contracts.js";
5
+ import type { PmContextIntentReceipt } from "./context-intent-contracts.js";
4
6
  /** Canonical signal keys understood by the built-in relevance model. */
5
7
  export declare const CONTEXT_RELEVANCE_SIGNAL_NAMES: readonly ["structural", "recency", "activity_density", "graph_proximity", "claim_focus", "priority_pressure", "risk_pressure", "deadline_pressure", "knowledge_density", "author_affinity", "usage_affinity", "semantic_similarity"];
6
8
  /** A normalized signal consumed by the built-in context relevance scorer. */
@@ -9,62 +11,62 @@ export type ContextRelevanceSignalName = (typeof CONTEXT_RELEVANCE_SIGNAL_NAMES)
9
11
  export type ContextRelevanceSignals = Partial<Record<Exclude<ContextRelevanceSignalName, "structural">, number>>;
10
12
  /** Authoritative coordinate and fallback that produced an item's recency. */
11
13
  export interface ContextRecencyEvidence {
12
- /** Source selected by the canonical fallback ladder. */
13
- source: "substantive_history" | "release_cohort" | "created_at";
14
- /** ISO coordinate used for deterministic recency ordering. */
15
- coordinate: string;
16
- /** Immutable operation selected from history when source is substantive_history. */
17
- history_op?: string;
18
- /** Declared class selected from history when source is substantive_history. */
19
- event_class?: HistoryEventClass;
14
+ /** Source selected by the canonical fallback ladder. */
15
+ source: "substantive_history" | "release_cohort" | "created_at";
16
+ /** ISO coordinate used for deterministic recency ordering. */
17
+ coordinate: string;
18
+ /** Immutable operation selected from history when source is substantive_history. */
19
+ history_op?: string;
20
+ /** Declared class selected from history when source is substantive_history. */
21
+ event_class?: HistoryEventClass;
20
22
  }
21
23
  /** Per-signal provenance exposed by explained relevance results. */
22
24
  export interface ContextSignalProvenance {
23
- /** Evidence for the canonical temporal component. */
24
- recency: ContextRecencyEvidence;
25
+ /** Evidence for the canonical temporal component. */
26
+ recency: ContextRecencyEvidence;
25
27
  }
26
28
  /** A project-management object and its derived relevance signals. */
27
29
  export interface ContextRelevanceCandidate<TItem> {
28
- /** Stable identifier used to reference this record across commands and storage. */
29
- id: string;
30
- /** Value that configures or reports item for this contract. */
31
- item: TItem;
32
- /** Value that configures or reports signals for this contract. */
33
- signals?: ContextRelevanceSignals;
34
- /** Authoritative source details for explainable derived signals. */
35
- signal_provenance?: ContextSignalProvenance;
30
+ /** Stable identifier used to reference this record across commands and storage. */
31
+ id: string;
32
+ /** Value that configures or reports item for this contract. */
33
+ item: TItem;
34
+ /** Value that configures or reports signals for this contract. */
35
+ signals?: ContextRelevanceSignals;
36
+ /** Authoritative source details for explainable derived signals. */
37
+ signal_provenance?: ContextSignalProvenance;
36
38
  }
37
39
  /** Item candidate whose built-in metadata derivation always supplies signals. */
38
40
  export interface ItemContextRelevanceCandidate extends ContextRelevanceCandidate<ItemMetadata> {
39
- /** Complete built-in derivation result, with unavailable signals omitted by value. */
40
- signals: ContextRelevanceSignals;
41
- /** Built-in recency derivation always discloses its source. */
42
- signal_provenance: ContextSignalProvenance;
41
+ /** Complete built-in derivation result, with unavailable signals omitted by value. */
42
+ signals: ContextRelevanceSignals;
43
+ /** Built-in recency derivation always discloses its source. */
44
+ signal_provenance: ContextSignalProvenance;
43
45
  }
44
46
  /** Inputs that make item-signal derivation deterministic and host-configurable. */
45
47
  export interface BuildItemContextRelevanceCandidatesOptions {
46
- /** Workspace lifecycle registry, including custom in-progress aliases. */
47
- statusRegistry: RuntimeStatusRegistry;
48
- /** Stable clock used for deadline pressure. */
49
- now: string;
50
- /** Optional caller identity used for assignment affinity. */
51
- author?: string;
52
- /** Optional derived served-then-used affinity by item id. */
53
- usageAffinity?: Readonly<Record<string, number>>;
54
- /** Optional caller-derived semantic similarity by item id. */
55
- semanticSimilarity?: Readonly<Record<string, number>>;
56
- /** Optional index-derived activity density by item id. */
57
- activityDensity?: Readonly<Record<string, number>>;
58
- /** Optional index-derived graph proximity by item id. */
59
- graphProximity?: Readonly<Record<string, number>>;
60
- /** Optional host-derived claim or focus affinity by item id. */
61
- claimFocus?: Readonly<Record<string, number>>;
62
- /** Optional index-derived knowledge density by item id. */
63
- knowledgeDensity?: Readonly<Record<string, number>>;
64
- /** Optional history-derived author affinity by item id. */
65
- authorAffinity?: Readonly<Record<string, number>>;
66
- /** Latest substantive history evidence keyed by item id. */
67
- recencyEvidence?: Readonly<Record<string, ContextRecencyEvidence>>;
48
+ /** Workspace lifecycle registry, including custom in-progress aliases. */
49
+ statusRegistry: RuntimeStatusRegistry;
50
+ /** Stable clock used for deadline pressure. */
51
+ now: string;
52
+ /** Optional caller identity used for assignment affinity. */
53
+ author?: string;
54
+ /** Optional derived served-then-used affinity by item id. */
55
+ usageAffinity?: Readonly<Record<string, number>>;
56
+ /** Optional caller-derived semantic similarity by item id. */
57
+ semanticSimilarity?: Readonly<Record<string, number>>;
58
+ /** Optional index-derived activity density by item id. */
59
+ activityDensity?: Readonly<Record<string, number>>;
60
+ /** Optional index-derived graph proximity by item id. */
61
+ graphProximity?: Readonly<Record<string, number>>;
62
+ /** Optional host-derived claim or focus affinity by item id. */
63
+ claimFocus?: Readonly<Record<string, number>>;
64
+ /** Optional index-derived knowledge density by item id. */
65
+ knowledgeDensity?: Readonly<Record<string, number>>;
66
+ /** Optional history-derived author affinity by item id. */
67
+ authorAffinity?: Readonly<Record<string, number>>;
68
+ /** Latest substantive history evidence keyed by item id. */
69
+ recencyEvidence?: Readonly<Record<string, ContextRecencyEvidence>>;
68
70
  }
69
71
  /**
70
72
  * Derive the canonical metadata signals consumed by `pm context` and `pm next`.
@@ -76,48 +78,48 @@ export declare function buildItemContextRelevanceCandidates(items: readonly Item
76
78
  export type ContextRelevanceContributions = Record<string, number>;
77
79
  /** One ranked candidate with deterministic score and explanation metadata. */
78
80
  export interface RankedContextCandidate<TItem> extends ContextRelevanceCandidate<TItem> {
79
- /** Value that configures or reports baseline rank for this contract. */
80
- baseline_rank: number;
81
- /** Value that configures or reports rank for this contract. */
82
- rank: number;
83
- /** Value that configures or reports score for this contract. */
84
- score: number;
85
- /** Value that configures or reports contributions for this contract. */
86
- contributions: ContextRelevanceContributions;
81
+ /** Value that configures or reports baseline rank for this contract. */
82
+ baseline_rank: number;
83
+ /** Value that configures or reports rank for this contract. */
84
+ rank: number;
85
+ /** Value that configures or reports score for this contract. */
86
+ score: number;
87
+ /** Value that configures or reports contributions for this contract. */
88
+ contributions: ContextRelevanceContributions;
87
89
  }
88
90
  /** Complete output from a context relevance scorer. */
89
91
  export interface ContextRelevanceReport<TItem> {
90
- /** Value that configures or reports model for this contract. */
91
- model: string;
92
- /** Value that configures or reports available signals for this contract. */
93
- available_signals: ContextRelevanceSignalName[];
94
- /** Value that configures or reports ranked for this contract. */
95
- ranked: RankedContextCandidate<TItem>[];
96
- /** Value that configures or reports warnings for this contract. */
97
- warnings?: string[];
92
+ /** Value that configures or reports model for this contract. */
93
+ model: string;
94
+ /** Value that configures or reports available signals for this contract. */
95
+ available_signals: ContextRelevanceSignalName[];
96
+ /** Value that configures or reports ranked for this contract. */
97
+ ranked: RankedContextCandidate<TItem>[];
98
+ /** Value that configures or reports warnings for this contract. */
99
+ warnings?: string[];
98
100
  }
99
101
  /** Minimal custom score returned by a replacement or wrapper scorer. */
100
102
  export interface ContextRelevanceCustomScore {
101
- /** Stable identifier used to reference this record across commands and storage. */
102
- id: string;
103
- /** Value that configures or reports score for this contract. */
104
- score: number;
103
+ /** Stable identifier used to reference this record across commands and storage. */
104
+ id: string;
105
+ /** Value that configures or reports score for this contract. */
106
+ score: number;
105
107
  }
106
108
  /** Input provided to a custom scorer, including the deterministic default. */
107
109
  export interface ContextRelevanceScorerInput<TItem> {
108
- /** Value that configures or reports candidates for this contract. */
109
- candidates: readonly ContextRelevanceCandidate<TItem>[];
110
- /** Fallback report used when callers do not provide an override. */
111
- default_report: ContextRelevanceReport<TItem>;
110
+ /** Value that configures or reports candidates for this contract. */
111
+ candidates: readonly ContextRelevanceCandidate<TItem>[];
112
+ /** Fallback report used when callers do not provide an override. */
113
+ default_report: ContextRelevanceReport<TItem>;
112
114
  }
113
115
  /** Replaceable package/extension scorer contract. */
114
116
  export type ContextRelevanceScorer<TItem> = (input: ContextRelevanceScorerInput<TItem>) => readonly ContextRelevanceCustomScore[] | Promise<readonly ContextRelevanceCustomScore[]>;
115
117
  /** Options for the built-in or replaceable context relevance scorer. */
116
118
  export interface ScoreContextCandidatesOptions<TItem> {
117
- /** Value that configures or reports weights for this contract. */
118
- weights?: Partial<Record<ContextRelevanceSignalName, number>>;
119
- /** Value that configures or reports scorer for this contract. */
120
- scorer?: ContextRelevanceScorer<TItem>;
119
+ /** Value that configures or reports weights for this contract. */
120
+ weights?: Partial<Record<ContextRelevanceSignalName, number>>;
121
+ /** Value that configures or reports scorer for this contract. */
122
+ scorer?: ContextRelevanceScorer<TItem>;
121
123
  }
122
124
  /** Governed extension service used to replace or wrap context ranking. */
123
125
  export declare const CONTEXT_RELEVANCE_SERVICE: "context_relevance";
@@ -131,152 +133,158 @@ export declare function scoreContextCandidates<TItem>(candidates: readonly Conte
131
133
  export declare function scoreContextCandidatesWithActiveExtensions<TItem>(surface: ContextRelevanceSurface, candidates: readonly ContextRelevanceCandidate<TItem>[], options?: Pick<ScoreContextCandidatesOptions<TItem>, "weights">): Promise<ContextRelevanceReport<TItem>>;
132
134
  /** Input for rank-aware context/next quality evaluation. */
133
135
  export interface ContextRankingEvaluationInput {
134
- /** Value that configures or reports ranked ids for this contract. */
135
- ranked_ids: string[];
136
- /** Value that configures or reports judgments for this contract. */
137
- judgments: Record<string, number>;
138
- /** Value that configures or reports required ids for this contract. */
139
- required_ids?: string[];
140
- /** Value that configures or reports continuity ids for this contract. */
141
- continuity_ids?: string[];
142
- /** Value that configures or reports actual tokens for this contract. */
143
- actual_tokens: number;
144
- /** Value that configures or reports token budget for this contract. */
145
- token_budget: number;
136
+ /** Value that configures or reports ranked ids for this contract. */
137
+ ranked_ids: string[];
138
+ /** Value that configures or reports judgments for this contract. */
139
+ judgments: Record<string, number>;
140
+ /** Value that configures or reports required ids for this contract. */
141
+ required_ids?: string[];
142
+ /** Value that configures or reports continuity ids for this contract. */
143
+ continuity_ids?: string[];
144
+ /** Value that configures or reports actual tokens for this contract. */
145
+ actual_tokens: number;
146
+ /** Value that configures or reports token budget for this contract. */
147
+ token_budget: number;
146
148
  }
147
149
  /** Rank-quality, continuity, recall, and token-budget metrics for one scenario. */
148
150
  export interface ContextRankingEvaluation {
149
- /** Value that configures or reports ndcg for this contract. */
150
- ndcg: number;
151
- /** Value that configures or reports reciprocal rank for this contract. */
152
- reciprocal_rank: number;
153
- /** Value that configures or reports required recall for this contract. */
154
- required_recall: number;
155
- /** Value that configures or reports continuity coverage for this contract. */
156
- continuity_coverage: number;
157
- /** Value that configures or reports token budget adherence for this contract. */
158
- token_budget_adherence: number;
159
- /** Value that configures or reports within token budget for this contract. */
160
- within_token_budget: boolean;
151
+ /** Value that configures or reports ndcg for this contract. */
152
+ ndcg: number;
153
+ /** Value that configures or reports reciprocal rank for this contract. */
154
+ reciprocal_rank: number;
155
+ /** Value that configures or reports required recall for this contract. */
156
+ required_recall: number;
157
+ /** Value that configures or reports continuity coverage for this contract. */
158
+ continuity_coverage: number;
159
+ /** Value that configures or reports token budget adherence for this contract. */
160
+ token_budget_adherence: number;
161
+ /** Value that configures or reports within token budget for this contract. */
162
+ within_token_budget: boolean;
161
163
  }
162
164
  /** Flexible read options accepted by context evaluation scenarios. */
163
165
  export interface ContextEvaluationReadOptions {
164
- /** Value that configures or reports explain ranking for this contract. */
165
- explainRanking?: boolean;
166
- [key: string]: unknown;
166
+ /** Value that configures or reports explain ranking for this contract. */
167
+ explainRanking?: boolean;
168
+ [key: string]: unknown;
167
169
  }
168
170
  /** Minimal item identity consumed by the context evaluation runner. */
169
171
  export interface ContextEvaluationResultItem {
170
- /** Stable identifier used to reference this record across commands and storage. */
171
- id: string;
172
+ /** Stable identifier used to reference this record across commands and storage. */
173
+ id: string;
172
174
  }
173
175
  /** Optional scorer attribution returned by an evaluated read primitive. */
174
176
  export interface ContextEvaluationResultRanking {
175
- /** Value that configures or reports items for this contract. */
176
- items?: Array<{
177
- id: string;
178
- contributions: ContextRelevanceContributions;
179
- }>;
177
+ /** Value that configures or reports items for this contract. */
178
+ items?: Array<{
179
+ id: string;
180
+ contributions: ContextRelevanceContributions;
181
+ }>;
180
182
  }
181
183
  /** Structural context result consumed by the evaluation runner. */
182
184
  export interface ContextEvaluationContextResult {
183
- /** Value that configures or reports high level for this contract. */
184
- high_level?: ContextEvaluationResultItem[];
185
- /** Value that configures or reports low level for this contract. */
186
- low_level?: ContextEvaluationResultItem[];
187
- /** Value that configures or reports blocked fallback for this contract. */
188
- blocked_fallback?: ContextEvaluationResultItem[];
189
- /** Value that configures or reports ranking for this contract. */
190
- ranking?: ContextEvaluationResultRanking;
191
- [key: string]: unknown;
185
+ /** Value that configures or reports high level for this contract. */
186
+ high_level?: ContextEvaluationResultItem[];
187
+ /** Value that configures or reports low level for this contract. */
188
+ low_level?: ContextEvaluationResultItem[];
189
+ /** Value that configures or reports blocked fallback for this contract. */
190
+ blocked_fallback?: ContextEvaluationResultItem[];
191
+ /** Value that configures or reports ranking for this contract. */
192
+ ranking?: ContextEvaluationResultRanking;
193
+ /** Intent receipt retained so whole-result omissions cannot be graded. */
194
+ context_intent?: Pick<PmContextIntentReceipt, "result_omitted">;
195
+ [key: string]: unknown;
192
196
  }
193
197
  /** Structural next result consumed by the evaluation runner. */
194
198
  export interface ContextEvaluationNextResult {
195
- /** Value that configures or reports recommended for this contract. */
196
- recommended?: ContextEvaluationResultItem | null;
197
- /** Value that configures or reports ready for this contract. */
198
- ready?: ContextEvaluationResultItem[];
199
- /** Value that configures or reports ranking for this contract. */
200
- ranking?: ContextEvaluationResultRanking;
201
- [key: string]: unknown;
199
+ /** Value that configures or reports recommended for this contract. */
200
+ recommended?: ContextEvaluationResultItem | null;
201
+ /** Value that configures or reports ready for this contract. */
202
+ ready?: ContextEvaluationResultItem[];
203
+ /** Value that configures or reports ranking for this contract. */
204
+ ranking?: ContextEvaluationResultRanking;
205
+ /** Intent receipt retained so whole-result omissions cannot be graded. */
206
+ context_intent?: Pick<PmContextIntentReceipt, "result_omitted">;
207
+ [key: string]: unknown;
202
208
  }
209
+ type ContextEvaluationContextFields = Pick<ContextEvaluationContextResult, "high_level" | "low_level" | "blocked_fallback" | "ranking" | "context_intent">;
210
+ type ContextEvaluationNextFields = Pick<ContextEvaluationNextResult, "recommended" | "ready" | "ranking" | "context_intent">;
203
211
  /** Read-only SDK surface required by the context evaluation runner. */
204
212
  export interface ContextEvaluationReader {
205
- /** Value that configures or reports context for this contract. */
206
- context(options?: ContextEvaluationReadOptions): Promise<ContextEvaluationContextResult>;
207
- /** Value that configures or reports next for this contract. */
208
- next(options?: ContextEvaluationReadOptions): Promise<ContextEvaluationNextResult>;
213
+ /** Value that configures or reports context for this contract. */
214
+ context(options?: ContextEvaluationReadOptions): Promise<PmReadOutputResult<ContextEvaluationContextFields>>;
215
+ /** Value that configures or reports next for this contract. */
216
+ next(options?: ContextEvaluationReadOptions): Promise<PmReadOutputResult<ContextEvaluationNextFields>>;
209
217
  }
210
218
  /** One graded context or next scenario evaluated against a real SDK reader. */
211
219
  export interface ContextEvaluationScenario {
212
- /** Stable identifier used to reference this record across commands and storage. */
213
- id: string;
214
- /** Value that configures or reports surface for this contract. */
215
- surface: ContextRelevanceSurface;
216
- /** Value that configures or reports options for this contract. */
217
- options?: ContextEvaluationReadOptions;
218
- /** Value that configures or reports judgments for this contract. */
219
- judgments: Record<string, number>;
220
- /** Value that configures or reports required ids for this contract. */
221
- required_ids?: string[];
222
- /** Value that configures or reports continuity ids for this contract. */
223
- continuity_ids?: string[];
224
- /** Value that configures or reports token budget for this contract. */
225
- token_budget: number;
226
- /** Value that configures or reports rationale for this contract. */
227
- rationale: string;
220
+ /** Stable identifier used to reference this record across commands and storage. */
221
+ id: string;
222
+ /** Value that configures or reports surface for this contract. */
223
+ surface: ContextRelevanceSurface;
224
+ /** Value that configures or reports options for this contract. */
225
+ options?: ContextEvaluationReadOptions;
226
+ /** Value that configures or reports judgments for this contract. */
227
+ judgments: Record<string, number>;
228
+ /** Value that configures or reports required ids for this contract. */
229
+ required_ids?: string[];
230
+ /** Value that configures or reports continuity ids for this contract. */
231
+ continuity_ids?: string[];
232
+ /** Value that configures or reports token budget for this contract. */
233
+ token_budget: number;
234
+ /** Value that configures or reports rationale for this contract. */
235
+ rationale: string;
228
236
  }
229
237
  /** Per-item signal attribution retained by a context evaluation report. */
230
238
  export interface ContextEvaluationAttribution {
231
- /** Stable identifier used to reference this record across commands and storage. */
232
- id: string;
233
- /** Value that configures or reports contributions for this contract. */
234
- contributions: ContextRelevanceContributions;
239
+ /** Stable identifier used to reference this record across commands and storage. */
240
+ id: string;
241
+ /** Value that configures or reports contributions for this contract. */
242
+ contributions: ContextRelevanceContributions;
235
243
  }
236
244
  /** Result of executing and grading one context evaluation scenario. */
237
245
  export interface ContextEvaluationScenarioReport {
238
- /** Stable identifier used to reference this record across commands and storage. */
239
- id: string;
240
- /** Value that configures or reports surface for this contract. */
241
- surface: ContextRelevanceSurface;
242
- /** Value that configures or reports rationale for this contract. */
243
- rationale: string;
244
- /** Value that configures or reports ranked ids for this contract. */
245
- ranked_ids: string[];
246
- /** Value that configures or reports actual tokens for this contract. */
247
- actual_tokens: number;
248
- /** Value that configures or reports metrics for this contract. */
249
- metrics: ContextRankingEvaluation;
250
- /** Value that configures or reports attribution for this contract. */
251
- attribution: ContextEvaluationAttribution[];
246
+ /** Stable identifier used to reference this record across commands and storage. */
247
+ id: string;
248
+ /** Value that configures or reports surface for this contract. */
249
+ surface: ContextRelevanceSurface;
250
+ /** Value that configures or reports rationale for this contract. */
251
+ rationale: string;
252
+ /** Value that configures or reports ranked ids for this contract. */
253
+ ranked_ids: string[];
254
+ /** Value that configures or reports actual tokens for this contract. */
255
+ actual_tokens: number;
256
+ /** Value that configures or reports metrics for this contract. */
257
+ metrics: ContextRankingEvaluation;
258
+ /** Value that configures or reports attribution for this contract. */
259
+ attribution: ContextEvaluationAttribution[];
252
260
  }
253
261
  /** Minimum acceptable aggregate metrics for a context evaluation corpus. */
254
262
  export interface ContextEvaluationThresholds {
255
- /** Value that configures or reports ndcg for this contract. */
256
- ndcg: number;
257
- /** Value that configures or reports reciprocal rank for this contract. */
258
- reciprocal_rank: number;
259
- /** Value that configures or reports required recall for this contract. */
260
- required_recall: number;
261
- /** Value that configures or reports continuity coverage for this contract. */
262
- continuity_coverage: number;
263
- /** Value that configures or reports token budget adherence for this contract. */
264
- token_budget_adherence: number;
263
+ /** Value that configures or reports ndcg for this contract. */
264
+ ndcg: number;
265
+ /** Value that configures or reports reciprocal rank for this contract. */
266
+ reciprocal_rank: number;
267
+ /** Value that configures or reports required recall for this contract. */
268
+ required_recall: number;
269
+ /** Value that configures or reports continuity coverage for this contract. */
270
+ continuity_coverage: number;
271
+ /** Value that configures or reports token budget adherence for this contract. */
272
+ token_budget_adherence: number;
265
273
  }
266
274
  /** Canonical aggregate metrics required by every context evaluation corpus. */
267
275
  export declare const CONTEXT_EVALUATION_METRIC_NAMES: readonly ["ndcg", "reciprocal_rank", "required_recall", "continuity_coverage", "token_budget_adherence"];
268
276
  /** Aggregate context evaluation report suitable for a CI quality gate. */
269
277
  export interface ContextEvaluationCorpusReport {
270
- /** Number of scenario entries represented by this result. */
271
- scenario_count: number;
272
- /** Value that configures or reports aggregate for this contract. */
273
- aggregate: ContextEvaluationThresholds;
274
- /** Value that configures or reports scenarios for this contract. */
275
- scenarios: ContextEvaluationScenarioReport[];
276
- /** Value that configures or reports passed for this contract. */
277
- passed: boolean;
278
- /** Value that configures or reports failures for this contract. */
279
- failures: string[];
278
+ /** Number of scenario entries represented by this result. */
279
+ scenario_count: number;
280
+ /** Value that configures or reports aggregate for this contract. */
281
+ aggregate: ContextEvaluationThresholds;
282
+ /** Value that configures or reports scenarios for this contract. */
283
+ scenarios: ContextEvaluationScenarioReport[];
284
+ /** Value that configures or reports passed for this contract. */
285
+ passed: boolean;
286
+ /** Value that configures or reports failures for this contract. */
287
+ failures: string[];
280
288
  }
281
289
  /** Evaluate one ranked context packet against graded human judgments. */
282
290
  export declare function evaluateContextRanking(input: ContextRankingEvaluationInput): ContextRankingEvaluation;
@@ -286,3 +294,4 @@ export declare function runContextEvaluationScenario(scenario: ContextEvaluation
286
294
  export declare function summarizeContextEvaluationReports(reports: readonly ContextEvaluationScenarioReport[], thresholds: ContextEvaluationThresholds): ContextEvaluationCorpusReport;
287
295
  /** Execute a same-workspace scenario corpus through public SDK read primitives. */
288
296
  export declare function runContextEvaluationCorpus(scenarios: readonly ContextEvaluationScenario[], reader: ContextEvaluationReader, thresholds: ContextEvaluationThresholds): Promise<ContextEvaluationCorpusReport>;
297
+ export {};
@@ -1,2 +1,2 @@
1
- (function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="e750a203-8bef-5bfd-85a5-a584c2105472")}catch{}})();import{runActiveServiceOverride}from"../core/extensions/index.js";import{normalizeStatusForRegistry,normalizeStatusInput}from"../core/item/status.js";import{compareTimestampStrings}from"../core/shared/time.js";import{canonicalizeContextRecencyCoordinate,CONTEXT_RECENCY_EPOCH}from"./context/recency.js";const CONTEXT_RELEVANCE_SIGNAL_NAMES=["structural","recency","activity_density","graph_proximity","claim_focus","priority_pressure","risk_pressure","deadline_pressure","knowledge_density","author_affinity","usage_affinity","semantic_similarity"],NO_CONTEXT_AUTHOR=Symbol("no-context-author"),NO_ITEM_ASSIGNEE=Symbol("no-item-assignee");function normalizeContextActor(value,missingValue){if(typeof value!="string")return missingValue;const normalized=value.trim().toLowerCase();return normalized.length>0?normalized:missingValue}function releaseCohortCoordinate(value){if(typeof value!="string")return;const match=/^v?(\d{4})\.(\d{1,2})\.(\d{1,2})(?:$|[-+])/u.exec(value.trim());if(!match)return;const year=Number(match[1]),month=Number(match[2]),day=Number(match[3]),date=new Date(Date.UTC(year,month-1,day));return date.getUTCFullYear()===year&&date.getUTCMonth()===month-1&&date.getUTCDate()===day?date.toISOString():void 0}function fallbackRecencyEvidence(item){const releaseCoordinate=releaseCohortCoordinate(item.release);return releaseCoordinate!==void 0?{source:"release_cohort",coordinate:releaseCoordinate}:{source:"created_at",coordinate:canonicalizeContextRecencyCoordinate(item.created_at)??CONTEXT_RECENCY_EPOCH}}function canonicalizeRecencyEvidence(evidence){if(!["substantive_history","release_cohort","created_at"].includes(evidence.source)||(evidence.source==="substantive_history"?evidence.history_op!==void 0&&typeof evidence.history_op!="string"||evidence.event_class!==void 0&&evidence.event_class!=="substantive":evidence.history_op!==void 0||evidence.event_class!==void 0))throw new TypeError("Context signal recency provenance must match its source");const coordinate=canonicalizeContextRecencyCoordinate(evidence.coordinate);if(coordinate===null)throw new TypeError("Context signal recency coordinate must be a valid absolute timestamp with millisecond precision");return{...evidence,coordinate}}function normalizedPressure(value,maximum){const parsed=typeof value=="number"?value:typeof value=="string"?Number.parseFloat(value):Number.NaN;return Number.isFinite(parsed)?1-Math.min(Math.max(parsed,0),maximum)/maximum:0}function deadlinePressure(deadline,nowMs){const deadlineMs=typeof deadline=="string"?Date.parse(deadline):deadline instanceof Date?deadline.getTime():typeof deadline=="number"?deadline:Number.NaN;if(!Number.isFinite(deadlineMs)||!Number.isFinite(nowMs))return 0;const days=(deadlineMs-nowMs)/864e5;return days<=0?1:1/(1+days/30)}function riskPressure(risk){const normalized=typeof risk=="string"?risk.trim().toLowerCase():void 0;return normalized==="critical"||normalized==="high"?1:normalized==="medium"?.5:normalized==="low"?.1:0}function derivedSignalOrFallback(values,id,fallback){return values?.[id]??fallback}function buildItemContextRelevanceCandidates(items,options){const recencyEvidence=new Map(items.map(item=>{const suppliedEvidence=options.recencyEvidence?.[item.id];return[item.id,suppliedEvidence===void 0?fallbackRecencyEvidence(item):canonicalizeRecencyEvidence(suppliedEvidence)]})),recencyOrder=[...items].sort((left,right)=>{const leftTime=recencyEvidence.get(left.id).coordinate,rightTime=recencyEvidence.get(right.id).coordinate;return compareTimestampStrings(rightTime,leftTime)||left.id.localeCompare(right.id)}),recencyRank=new Map(recencyOrder.map((item,index)=>[item.id,index])),denominator=Math.max(items.length-1,1),normalizedAuthor=normalizeContextActor(options.author,NO_CONTEXT_AUTHOR),inProgressStatus=normalizeStatusInput("in_progress",options.statusRegistry),nowMs=Date.parse(options.now);return items.map(item=>{const assigned=normalizeContextActor(item.assignee,NO_ITEM_ASSIGNEE)===normalizedAuthor,knowledgeEntries=(item.comments?.length??0)+(item.notes?.length??0)+(item.learnings?.length??0);return{id:item.id,item,signal_provenance:{recency:recencyEvidence.get(item.id)},signals:{recency:items.length===1?1:1-recencyRank.get(item.id)/denominator,activity_density:options.activityDensity?.[item.id],graph_proximity:derivedSignalOrFallback(options.graphProximity,item.id,item.parent?.3:0),claim_focus:derivedSignalOrFallback(options.claimFocus,item.id,normalizeStatusForRegistry(item.status,options.statusRegistry)===inProgressStatus?1:assigned?.75:0),priority_pressure:normalizedPressure(item.priority,4),risk_pressure:riskPressure(item.risk),deadline_pressure:deadlinePressure(item.deadline,nowMs),knowledge_density:derivedSignalOrFallback(options.knowledgeDensity,item.id,Math.min(knowledgeEntries/5,1)),author_affinity:derivedSignalOrFallback(options.authorAffinity,item.id,assigned?1:0),usage_affinity:options.usageAffinity?.[item.id],semantic_similarity:options.semanticSimilarity?.[item.id]}}})}const CONTEXT_RELEVANCE_SERVICE="context_relevance",DEFAULT_CONTEXT_RELEVANCE_WEIGHTS={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},JSON_TOKEN_ENCODER=new TextEncoder;function assertCandidates(candidates){const ids=new Set;for(const candidate of candidates){if(typeof candidate.id!="string"||candidate.id.trim().length===0||ids.has(candidate.id))throw new TypeError("Context relevance candidates require unique non-empty ids");ids.add(candidate.id);for(const[signal,value]of Object.entries(candidate.signals??{})){if(signal==="structural"||!CONTEXT_RELEVANCE_SIGNAL_NAMES.includes(signal))throw new TypeError(`Unknown context relevance signal: ${signal}`);if(value!==void 0&&(!Number.isFinite(value)||value<0||value>1))throw new TypeError(`Context relevance signal ${signal} must be a finite number from 0 to 1`)}}}function resolveWeights(overrides){const weights={...DEFAULT_CONTEXT_RELEVANCE_WEIGHTS};for(const[signal,weight]of Object.entries(overrides??{}))weight!==void 0&&CONTEXT_RELEVANCE_SIGNAL_NAMES.includes(signal)&&(weights[signal]=weight);for(const[signal,weight]of Object.entries(weights))if(!Number.isFinite(weight)||weight<0)throw new TypeError(`Context relevance weight ${signal} must be a finite non-negative number`);return weights}function defaultScoreContextCandidates(candidates,options={}){assertCandidates(candidates);const weights=resolveWeights(options.weights),denominator=Math.max(candidates.length-1,1),available=new Set(["structural"]);for(const candidate of candidates)for(const[signal,value]of Object.entries(candidate.signals??{}))value!==void 0&&available.add(signal);const availableSignals=CONTEXT_RELEVANCE_SIGNAL_NAMES.filter(signal=>available.has(signal)),scored=candidates.map((candidate,index)=>{const signalValues={structural:candidates.length===1?1:1-index/denominator,...candidate.signals},contributions={};let weightedScore=0,totalWeight=0;for(const signal of availableSignals){const value=signalValues[signal];if(value===void 0)continue;const contribution=value*weights[signal];contributions[signal]=contribution,weightedScore+=contribution,totalWeight+=weights[signal]}return{...candidate,baseline_rank:index+1,rank:0,score:totalWeight===0?0:weightedScore/totalWeight,contributions}});return scored.sort((left,right)=>right.score-left.score||left.baseline_rank-right.baseline_rank),scored.forEach((entry,index)=>{entry.rank=index+1}),{model:"default-weighted-v1",available_signals:availableSignals,ranked:scored}}async function scoreContextCandidates(candidates,options={}){const defaultReport=defaultScoreContextCandidates(candidates,options);if(!options.scorer)return defaultReport;const customScores=await options.scorer({candidates,default_report:defaultReport}),scoreById=new Map;for(const entry of customScores){if(scoreById.has(entry.id)||!Number.isFinite(entry.score))throw new TypeError("Context relevance scorer must return one finite score for every candidate");scoreById.set(entry.id,entry.score)}if(scoreById.size!==candidates.length||candidates.some(candidate=>!scoreById.has(candidate.id)))throw new TypeError("Context relevance scorer must return one finite score for every candidate");const ranked=defaultReport.ranked.map(entry=>{const score=scoreById.get(entry.id);return{...entry,score,contributions:{custom:score}}});return ranked.sort((left,right)=>right.score-left.score||left.baseline_rank-right.baseline_rank),ranked.forEach((entry,index)=>{entry.rank=index+1}),{model:"custom",available_signals:defaultReport.available_signals,ranked}}async function scoreContextCandidatesWithActiveExtensions(surface,candidates,options={}){const defaultReport=defaultScoreContextCandidates(candidates,options),override=await runActiveServiceOverride(CONTEXT_RELEVANCE_SERVICE,{surface,candidates,default_report:defaultReport});if(!override.handled)return override.warnings.length>0?{...defaultReport,warnings:override.warnings}:defaultReport;if(!Array.isArray(override.result)||!override.result.every(entry=>typeof entry=="object"&&entry!==null&&typeof entry.id=="string"&&typeof entry.score=="number"&&Number.isFinite(entry.score)))return{...defaultReport,warnings:[...override.warnings,"extension_context_relevance_invalid_result"]};try{const report=await scoreContextCandidates(candidates,{...options,scorer:()=>override.result});return override.warnings.length>0?{...report,warnings:override.warnings}:report}catch{return{...defaultReport,warnings:[...override.warnings,"extension_context_relevance_invalid_result"]}}}const CONTEXT_EVALUATION_METRIC_NAMES=["ndcg","reciprocal_rank","required_recall","continuity_coverage","token_budget_adherence"];function ratioOfPresent(expected,actual){return expected.length===0?1:expected.filter(id=>actual.has(id)).length/expected.length}function evaluateContextRanking(input){if(!Number.isFinite(input.actual_tokens)||input.actual_tokens<0||!Number.isFinite(input.token_budget)||input.token_budget<=0)throw new TypeError("Context ranking token counts require actual_tokens >= 0 and token_budget > 0");const judgments=input.judgments??{},gains=input.ranked_ids.map(id=>Math.max(0,judgments[id]??0)),idealGains=Object.values(judgments).map(grade=>Math.max(0,grade)).sort((left,right)=>right-left).slice(0,gains.length||1),discountedGain=values=>values.reduce((total,grade,index)=>total+(2**grade-1)/Math.log2(index+2),0),ideal=discountedGain(idealGains),firstRelevant=gains.findIndex(grade=>grade>0),actualIds=new Set(input.ranked_ids),withinBudget=input.actual_tokens<=input.token_budget;return{ndcg:ideal===0?1:discountedGain(gains)/ideal,reciprocal_rank:firstRelevant<0?0:1/(firstRelevant+1),required_recall:ratioOfPresent(input.required_ids??[],actualIds),continuity_coverage:ratioOfPresent(input.continuity_ids??[],actualIds),token_budget_adherence:withinBudget?1:input.token_budget/input.actual_tokens,within_token_budget:withinBudget}}function estimateJsonTokens(value){return Math.ceil(JSON_TOKEN_ENCODER.encode(JSON.stringify(value)).byteLength/4)}function roundEvaluationMetric(value){return Math.round(value*1e4)/1e4}function rankingPayloadForScenario(result,surface){const rankedIds=surface==="context"?[...result.high_level??[],...result.low_level??[],...result.blocked_fallback??[]].map(item=>item.id):[...result.recommended?[result.recommended]:[],...result.ready??[]].map(item=>item.id),servedIds=new Set(rankedIds),attribution=(result.ranking?.items??[]).filter(item=>servedIds.has(item.id)).map(item=>({id:item.id,contributions:item.contributions}));return{rankedIds,attribution}}async function runContextEvaluationScenario(scenario,reader){if(scenario.id.trim().length===0||scenario.rationale.trim().length===0)throw new TypeError("Context evaluation scenarios require non-empty id and rationale values");const result=scenario.surface==="context"?await reader.context({...scenario.options,explainRanking:!0,outputBudget:scenario.options?.outputBudget??"unbounded"}):await reader.next({...scenario.options,explainRanking:!0,outputBudget:scenario.options?.outputBudget??"unbounded"}),{rankedIds,attribution}=rankingPayloadForScenario(result,scenario.surface),packet={...result,ranking:void 0},actualTokens=estimateJsonTokens(packet);return{id:scenario.id,surface:scenario.surface,rationale:scenario.rationale,ranked_ids:rankedIds,actual_tokens:actualTokens,metrics:evaluateContextRanking({ranked_ids:rankedIds,judgments:scenario.judgments,required_ids:scenario.required_ids,continuity_ids:scenario.continuity_ids,actual_tokens:actualTokens,token_budget:scenario.token_budget}),attribution}}function summarizeContextEvaluationReports(reports,thresholds){if(reports.length===0)throw new TypeError("Context evaluation requires at least one scenario report");const metrics=CONTEXT_EVALUATION_METRIC_NAMES;for(const metric of metrics)if(!Number.isFinite(thresholds[metric]))throw new TypeError(`Context evaluation threshold ${metric} must be a finite number`);const aggregate=Object.fromEntries(metrics.map(metric=>[metric,roundEvaluationMetric(reports.reduce((total,report)=>total+report.metrics[metric],0)/reports.length)])),failures=metrics.filter(metric=>aggregate[metric]<thresholds[metric]).map(metric=>`${metric}:${aggregate[metric]}<${thresholds[metric]}`);return{scenario_count:reports.length,aggregate,scenarios:[...reports],passed:failures.length===0,failures}}async function runContextEvaluationCorpus(scenarios,reader,thresholds){const reports=[];for(const scenario of scenarios)reports.push(await runContextEvaluationScenario(scenario,reader));return summarizeContextEvaluationReports(reports,thresholds)}export{CONTEXT_EVALUATION_METRIC_NAMES,CONTEXT_RELEVANCE_SERVICE,CONTEXT_RELEVANCE_SIGNAL_NAMES,buildItemContextRelevanceCandidates,defaultScoreContextCandidates,evaluateContextRanking,runContextEvaluationCorpus,runContextEvaluationScenario,scoreContextCandidates,scoreContextCandidatesWithActiveExtensions,summarizeContextEvaluationReports};
1
+ (function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="74b476d9-5f30-5135-9539-5fe3e864c60f")}catch{}})();import{runActiveServiceOverride}from"../core/extensions/index.js";import{normalizeStatusForRegistry,normalizeStatusInput}from"../core/item/status.js";import{compareTimestampStrings}from"../core/shared/time.js";import{EXIT_CODE}from"../core/shared/constants.js";import{PmCliError}from"../core/shared/errors.js";import{isReadOutputBudgetExceeded}from"./read-output-contracts.js";import{canonicalizeContextRecencyCoordinate,CONTEXT_RECENCY_EPOCH}from"./context/recency.js";const CONTEXT_RELEVANCE_SIGNAL_NAMES=["structural","recency","activity_density","graph_proximity","claim_focus","priority_pressure","risk_pressure","deadline_pressure","knowledge_density","author_affinity","usage_affinity","semantic_similarity"],NO_CONTEXT_AUTHOR=Symbol("no-context-author"),NO_ITEM_ASSIGNEE=Symbol("no-item-assignee");function normalizeContextActor(value,missingValue){if(typeof value!="string")return missingValue;const normalized=value.trim().toLowerCase();return normalized.length>0?normalized:missingValue}function releaseCohortCoordinate(value){if(typeof value!="string")return;const match=/^v?(\d{4})\.(\d{1,2})\.(\d{1,2})(?:$|[-+])/u.exec(value.trim());if(!match)return;const year=Number(match[1]),month=Number(match[2]),day=Number(match[3]),date=new Date(Date.UTC(year,month-1,day));return date.getUTCFullYear()===year&&date.getUTCMonth()===month-1&&date.getUTCDate()===day?date.toISOString():void 0}function fallbackRecencyEvidence(item){const releaseCoordinate=releaseCohortCoordinate(item.release);return releaseCoordinate!==void 0?{source:"release_cohort",coordinate:releaseCoordinate}:{source:"created_at",coordinate:canonicalizeContextRecencyCoordinate(item.created_at)??CONTEXT_RECENCY_EPOCH}}function canonicalizeRecencyEvidence(evidence){if(!["substantive_history","release_cohort","created_at"].includes(evidence.source)||(evidence.source==="substantive_history"?evidence.history_op!==void 0&&typeof evidence.history_op!="string"||evidence.event_class!==void 0&&evidence.event_class!=="substantive":evidence.history_op!==void 0||evidence.event_class!==void 0))throw new TypeError("Context signal recency provenance must match its source");const coordinate=canonicalizeContextRecencyCoordinate(evidence.coordinate);if(coordinate===null)throw new TypeError("Context signal recency coordinate must be a valid absolute timestamp with millisecond precision");return{...evidence,coordinate}}function normalizedPressure(value,maximum){const parsed=typeof value=="number"?value:typeof value=="string"?Number.parseFloat(value):Number.NaN;return Number.isFinite(parsed)?1-Math.min(Math.max(parsed,0),maximum)/maximum:0}function deadlinePressure(deadline,nowMs){const deadlineMs=typeof deadline=="string"?Date.parse(deadline):deadline instanceof Date?deadline.getTime():typeof deadline=="number"?deadline:Number.NaN;if(!Number.isFinite(deadlineMs)||!Number.isFinite(nowMs))return 0;const days=(deadlineMs-nowMs)/864e5;return days<=0?1:1/(1+days/30)}function riskPressure(risk){const normalized=typeof risk=="string"?risk.trim().toLowerCase():void 0;return normalized==="critical"||normalized==="high"?1:normalized==="medium"?.5:normalized==="low"?.1:0}function derivedSignalOrFallback(values,id,fallback){return values?.[id]??fallback}function buildItemContextRelevanceCandidates(items,options){const recencyEvidence=new Map(items.map(item=>{const suppliedEvidence=options.recencyEvidence?.[item.id];return[item.id,suppliedEvidence===void 0?fallbackRecencyEvidence(item):canonicalizeRecencyEvidence(suppliedEvidence)]})),recencyOrder=[...items].sort((left,right)=>{const leftTime=recencyEvidence.get(left.id).coordinate,rightTime=recencyEvidence.get(right.id).coordinate;return compareTimestampStrings(rightTime,leftTime)||left.id.localeCompare(right.id)}),recencyRank=new Map(recencyOrder.map((item,index)=>[item.id,index])),denominator=Math.max(items.length-1,1),normalizedAuthor=normalizeContextActor(options.author,NO_CONTEXT_AUTHOR),inProgressStatus=normalizeStatusInput("in_progress",options.statusRegistry),nowMs=Date.parse(options.now);return items.map(item=>{const assigned=normalizeContextActor(item.assignee,NO_ITEM_ASSIGNEE)===normalizedAuthor,knowledgeEntries=(item.comments?.length??0)+(item.notes?.length??0)+(item.learnings?.length??0);return{id:item.id,item,signal_provenance:{recency:recencyEvidence.get(item.id)},signals:{recency:items.length===1?1:1-recencyRank.get(item.id)/denominator,activity_density:options.activityDensity?.[item.id],graph_proximity:derivedSignalOrFallback(options.graphProximity,item.id,item.parent?.3:0),claim_focus:derivedSignalOrFallback(options.claimFocus,item.id,normalizeStatusForRegistry(item.status,options.statusRegistry)===inProgressStatus?1:assigned?.75:0),priority_pressure:normalizedPressure(item.priority,4),risk_pressure:riskPressure(item.risk),deadline_pressure:deadlinePressure(item.deadline,nowMs),knowledge_density:derivedSignalOrFallback(options.knowledgeDensity,item.id,Math.min(knowledgeEntries/5,1)),author_affinity:derivedSignalOrFallback(options.authorAffinity,item.id,assigned?1:0),usage_affinity:options.usageAffinity?.[item.id],semantic_similarity:options.semanticSimilarity?.[item.id]}}})}const CONTEXT_RELEVANCE_SERVICE="context_relevance",DEFAULT_CONTEXT_RELEVANCE_WEIGHTS={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},JSON_TOKEN_ENCODER=new TextEncoder;function assertCandidates(candidates){const ids=new Set;for(const candidate of candidates){if(typeof candidate.id!="string"||candidate.id.trim().length===0||ids.has(candidate.id))throw new TypeError("Context relevance candidates require unique non-empty ids");ids.add(candidate.id);for(const[signal,value]of Object.entries(candidate.signals??{})){if(signal==="structural"||!CONTEXT_RELEVANCE_SIGNAL_NAMES.includes(signal))throw new TypeError(`Unknown context relevance signal: ${signal}`);if(value!==void 0&&(!Number.isFinite(value)||value<0||value>1))throw new TypeError(`Context relevance signal ${signal} must be a finite number from 0 to 1`)}}}function resolveWeights(overrides){const weights={...DEFAULT_CONTEXT_RELEVANCE_WEIGHTS};for(const[signal,weight]of Object.entries(overrides??{}))weight!==void 0&&CONTEXT_RELEVANCE_SIGNAL_NAMES.includes(signal)&&(weights[signal]=weight);for(const[signal,weight]of Object.entries(weights))if(!Number.isFinite(weight)||weight<0)throw new TypeError(`Context relevance weight ${signal} must be a finite non-negative number`);return weights}function defaultScoreContextCandidates(candidates,options={}){assertCandidates(candidates);const weights=resolveWeights(options.weights),denominator=Math.max(candidates.length-1,1),available=new Set(["structural"]);for(const candidate of candidates)for(const[signal,value]of Object.entries(candidate.signals??{}))value!==void 0&&available.add(signal);const availableSignals=CONTEXT_RELEVANCE_SIGNAL_NAMES.filter(signal=>available.has(signal)),scored=candidates.map((candidate,index)=>{const signalValues={structural:candidates.length===1?1:1-index/denominator,...candidate.signals},contributions={};let weightedScore=0,totalWeight=0;for(const signal of availableSignals){const value=signalValues[signal];if(value===void 0)continue;const contribution=value*weights[signal];contributions[signal]=contribution,weightedScore+=contribution,totalWeight+=weights[signal]}return{...candidate,baseline_rank:index+1,rank:0,score:totalWeight===0?0:weightedScore/totalWeight,contributions}});return scored.sort((left,right)=>right.score-left.score||left.baseline_rank-right.baseline_rank),scored.forEach((entry,index)=>{entry.rank=index+1}),{model:"default-weighted-v1",available_signals:availableSignals,ranked:scored}}async function scoreContextCandidates(candidates,options={}){const defaultReport=defaultScoreContextCandidates(candidates,options);if(!options.scorer)return defaultReport;const customScores=await options.scorer({candidates,default_report:defaultReport}),scoreById=new Map;for(const entry of customScores){if(scoreById.has(entry.id)||!Number.isFinite(entry.score))throw new TypeError("Context relevance scorer must return one finite score for every candidate");scoreById.set(entry.id,entry.score)}if(scoreById.size!==candidates.length||candidates.some(candidate=>!scoreById.has(candidate.id)))throw new TypeError("Context relevance scorer must return one finite score for every candidate");const ranked=defaultReport.ranked.map(entry=>{const score=scoreById.get(entry.id);return{...entry,score,contributions:{custom:score}}});return ranked.sort((left,right)=>right.score-left.score||left.baseline_rank-right.baseline_rank),ranked.forEach((entry,index)=>{entry.rank=index+1}),{model:"custom",available_signals:defaultReport.available_signals,ranked}}async function scoreContextCandidatesWithActiveExtensions(surface,candidates,options={}){const defaultReport=defaultScoreContextCandidates(candidates,options),override=await runActiveServiceOverride(CONTEXT_RELEVANCE_SERVICE,{surface,candidates,default_report:defaultReport});if(!override.handled)return override.warnings.length>0?{...defaultReport,warnings:override.warnings}:defaultReport;if(!Array.isArray(override.result)||!override.result.every(entry=>typeof entry=="object"&&entry!==null&&typeof entry.id=="string"&&typeof entry.score=="number"&&Number.isFinite(entry.score)))return{...defaultReport,warnings:[...override.warnings,"extension_context_relevance_invalid_result"]};try{const report=await scoreContextCandidates(candidates,{...options,scorer:()=>override.result});return override.warnings.length>0?{...report,warnings:override.warnings}:report}catch{return{...defaultReport,warnings:[...override.warnings,"extension_context_relevance_invalid_result"]}}}const CONTEXT_EVALUATION_METRIC_NAMES=["ndcg","reciprocal_rank","required_recall","continuity_coverage","token_budget_adherence"];function ratioOfPresent(expected,actual){return expected.length===0?1:expected.filter(id=>actual.has(id)).length/expected.length}function evaluateContextRanking(input){if(!Number.isFinite(input.actual_tokens)||input.actual_tokens<0||!Number.isFinite(input.token_budget)||input.token_budget<=0)throw new TypeError("Context ranking token counts require actual_tokens >= 0 and token_budget > 0");const judgments=input.judgments??{},gains=input.ranked_ids.map(id=>Math.max(0,judgments[id]??0)),idealGains=Object.values(judgments).map(grade=>Math.max(0,grade)).sort((left,right)=>right-left).slice(0,gains.length||1),discountedGain=values=>values.reduce((total,grade,index)=>total+(2**grade-1)/Math.log2(index+2),0),ideal=discountedGain(idealGains),firstRelevant=gains.findIndex(grade=>grade>0),actualIds=new Set(input.ranked_ids),withinBudget=input.actual_tokens<=input.token_budget;return{ndcg:ideal===0?1:discountedGain(gains)/ideal,reciprocal_rank:firstRelevant<0?0:1/(firstRelevant+1),required_recall:ratioOfPresent(input.required_ids??[],actualIds),continuity_coverage:ratioOfPresent(input.continuity_ids??[],actualIds),token_budget_adherence:withinBudget?1:input.token_budget/input.actual_tokens,within_token_budget:withinBudget}}function estimateJsonTokens(value){return Math.ceil(JSON_TOKEN_ENCODER.encode(JSON.stringify(value)).byteLength/4)}function roundEvaluationMetric(value){return Math.round(value*1e4)/1e4}function rankingPayloadForScenario(result,surface){const rankedIds=surface==="context"?[...result.high_level??[],...result.low_level??[],...result.blocked_fallback??[]].map(item=>item.id):[...result.recommended?[result.recommended]:[],...result.ready??[]].map(item=>item.id),servedIds=new Set(rankedIds),attribution=(result.ranking?.items??[]).filter(item=>servedIds.has(item.id)).map(item=>({id:item.id,contributions:item.contributions}));return{rankedIds,attribution}}async function runContextEvaluationScenario(scenario,reader){if(scenario.id.trim().length===0||scenario.rationale.trim().length===0)throw new TypeError("Context evaluation scenarios require non-empty id and rationale values");const result=scenario.surface==="context"?await reader.context({...scenario.options,explainRanking:!0,outputBudget:scenario.options?.outputBudget??"unbounded"}):await reader.next({...scenario.options,explainRanking:!0,outputBudget:scenario.options?.outputBudget??"unbounded"});if(isReadOutputBudgetExceeded(result)||result.read_output?.result_omitted===!0||result.context_intent?.result_omitted===!0)throw new PmCliError(`Cannot evaluate ${scenario.surface} scenario "${scenario.id}": the read omitted its useful result.`,EXIT_CODE.USAGE,{code:"context_evaluation_read_incomplete",nextSteps:["Increase the read output budget or start a new shared output session, then rerun the scenario."]});const{rankedIds,attribution}=rankingPayloadForScenario(result,scenario.surface),packet={...result,ranking:void 0},actualTokens=estimateJsonTokens(packet);return{id:scenario.id,surface:scenario.surface,rationale:scenario.rationale,ranked_ids:rankedIds,actual_tokens:actualTokens,metrics:evaluateContextRanking({ranked_ids:rankedIds,judgments:scenario.judgments,required_ids:scenario.required_ids,continuity_ids:scenario.continuity_ids,actual_tokens:actualTokens,token_budget:scenario.token_budget}),attribution}}function summarizeContextEvaluationReports(reports,thresholds){if(reports.length===0)throw new TypeError("Context evaluation requires at least one scenario report");const metrics=CONTEXT_EVALUATION_METRIC_NAMES;for(const metric of metrics)if(!Number.isFinite(thresholds[metric]))throw new TypeError(`Context evaluation threshold ${metric} must be a finite number`);const aggregate=Object.fromEntries(metrics.map(metric=>[metric,roundEvaluationMetric(reports.reduce((total,report)=>total+report.metrics[metric],0)/reports.length)])),failures=metrics.filter(metric=>aggregate[metric]<thresholds[metric]).map(metric=>`${metric}:${aggregate[metric]}<${thresholds[metric]}`);return{scenario_count:reports.length,aggregate,scenarios:[...reports],passed:failures.length===0,failures}}async function runContextEvaluationCorpus(scenarios,reader,thresholds){const reports=[];for(const scenario of scenarios)reports.push(await runContextEvaluationScenario(scenario,reader));return summarizeContextEvaluationReports(reports,thresholds)}export{CONTEXT_EVALUATION_METRIC_NAMES,CONTEXT_RELEVANCE_SERVICE,CONTEXT_RELEVANCE_SIGNAL_NAMES,buildItemContextRelevanceCandidates,defaultScoreContextCandidates,evaluateContextRanking,runContextEvaluationCorpus,runContextEvaluationScenario,scoreContextCandidates,scoreContextCandidatesWithActiveExtensions,summarizeContextEvaluationReports};
2
2
  //# sourceMappingURL=context-relevance.js.map