@unbrained/pm-cli 2026.10.14 → 2026.10.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (753) hide show
  1. package/.agents/skills/pm-developer/references/COMMAND_PLAYBOOK.md +1 -1
  2. package/.claude-plugin/marketplace.json +1 -1
  3. package/AGENTS.md +1 -0
  4. package/CHANGELOG.md +74 -2
  5. package/dist/cli/after-command-context-usage.d.ts +7 -7
  6. package/dist/cli/argv-utils.d.ts +4 -4
  7. package/dist/cli/bundle-integrity.d.ts +16 -16
  8. package/dist/cli/command-namespaces.d.ts +1 -1
  9. package/dist/cli/commander-usage.d.ts +34 -34
  10. package/dist/cli/commands/governance/validate.d.ts +1 -1
  11. package/dist/cli/commands/history/history-compact.d.ts +1 -1
  12. package/dist/cli/commands/history/history-redact.d.ts +1 -1
  13. package/dist/cli/commands/history/history-repair.d.ts +1 -1
  14. package/dist/cli/commands/history/restore.d.ts +1 -1
  15. package/dist/cli/commands/lifecycle/close.d.ts +1 -1
  16. package/dist/cli/commands/lifecycle/copy.d.ts +1 -1
  17. package/dist/cli/commands/lifecycle/delete.d.ts +1 -1
  18. package/dist/cli/commands/lifecycle/focus.d.ts +1 -1
  19. package/dist/cli/commands/query/get.d.ts +1 -1
  20. package/dist/cli/commands/workspace/merge.d.ts +1 -1
  21. package/dist/cli/commands/workspace/schema.d.ts +1 -1
  22. package/dist/cli/context-intent-invocation.d.ts +1 -1
  23. package/dist/cli/description-stdin.d.ts +1 -1
  24. package/dist/cli/error-guidance.d.ts +119 -119
  25. package/dist/cli/extension-command-help.d.ts +64 -64
  26. package/dist/cli/extension-command-help.js +2 -2
  27. package/dist/cli/extension-command-options.d.ts +18 -16
  28. package/dist/cli/extension-command-options.js +1 -1
  29. package/dist/cli/extension-recovery.d.ts +13 -13
  30. package/dist/cli/help-content.d.ts +22 -22
  31. package/dist/cli/help-content.js +3 -3
  32. package/dist/cli/help-json-payload.d.ts +45 -45
  33. package/dist/cli/invocation-profile.d.ts +5 -5
  34. package/dist/cli/main.d.ts +217 -217
  35. package/dist/cli/migration-gates.d.ts +24 -24
  36. package/dist/cli/option-values.d.ts +1 -1
  37. package/dist/cli/public.d.ts +1 -1
  38. package/dist/cli/register-annotations.d.ts +2 -2
  39. package/dist/cli/register-assurance.d.ts +1 -1
  40. package/dist/cli/register-files-lookup.d.ts +1 -1
  41. package/dist/cli/register-history-activity.d.ts +1 -1
  42. package/dist/cli/register-history-author.d.ts +1 -1
  43. package/dist/cli/register-history-maintenance.d.ts +1 -1
  44. package/dist/cli/register-list-query.d.ts +7 -7
  45. package/dist/cli/register-list-query.js +3 -3
  46. package/dist/cli/register-mutation-options.d.ts +1 -1
  47. package/dist/cli/register-mutation.d.ts +4 -4
  48. package/dist/cli/register-mutation.js +2 -2
  49. package/dist/cli/register-operations.d.ts +75 -75
  50. package/dist/cli/register-operations.js +1 -1
  51. package/dist/cli/register-setup.d.ts +4 -4
  52. package/dist/cli/register-structured-mutation.d.ts +8 -13
  53. package/dist/cli/register-structured-mutation.js +1 -1
  54. package/dist/cli/runtime/activation.d.ts +23 -23
  55. package/dist/cli/runtime/invocation-options.d.ts +12 -12
  56. package/dist/cli/runtime/invocation-options.js +1 -1
  57. package/dist/cli/runtime/projection-retry.d.ts +1 -1
  58. package/dist/cli/runtime/selection.d.ts +16 -16
  59. package/dist/cli/runtime/telemetry-outcome.d.ts +11 -11
  60. package/dist/cli/runtime-compatibility-boundary.d.ts +7 -7
  61. package/dist/cli/schema/registration.d.ts +1 -1
  62. package/dist/cli/schema-registration-helpers.d.ts +2 -2
  63. package/dist/cli/stats-analytics-json.d.ts +1 -1
  64. package/dist/cli-bundle/bundle-manifest.json +1 -1
  65. package/dist/cli-bundle/chunks/{chunk-LKESCZEN.js → chunk-3QKI3XNX.js} +2 -2
  66. package/dist/cli-bundle/chunks/chunk-4PNPDT2N.js +236 -0
  67. package/dist/cli-bundle/chunks/{chunk-JTF6VMXH.js → chunk-6ZDKKOKM.js} +28 -28
  68. package/dist/cli-bundle/chunks/{chunk-MAT4AP7P.js → chunk-B5QVGCZX.js} +2 -2
  69. package/dist/cli-bundle/chunks/{chunk-5LU6PWA4.js → chunk-EA2CG7UM.js} +2 -2
  70. package/dist/cli-bundle/chunks/chunk-HY7FQ7QX.js +2 -0
  71. package/dist/cli-bundle/chunks/{chunk-3S5SEMEB.js → chunk-J4LPQCET.js} +2 -2
  72. package/dist/cli-bundle/chunks/chunk-JS3B2M4D.js +6 -0
  73. package/dist/cli-bundle/chunks/chunk-O4YBC3OM.js +30 -0
  74. package/dist/cli-bundle/chunks/{chunk-LE4IEHDG.js → chunk-OZCSXX4D.js} +63 -64
  75. package/dist/cli-bundle/chunks/chunk-VMCSTFSO.js +2 -0
  76. package/dist/cli-bundle/chunks/chunk-W3KZ22DW.js +2 -0
  77. package/dist/cli-bundle/chunks/{chunk-2UKKO45F.js → chunk-X2ONXFBP.js} +2 -2
  78. package/dist/cli-bundle/chunks/chunk-X53HM753.js +20 -0
  79. package/dist/cli-bundle/chunks/{register-list-query-GBLTOQQL.js → register-list-query-RU3QZSAQ.js} +7 -7
  80. package/dist/cli-bundle/chunks/register-mutation-EQYMT32A.js +20 -0
  81. package/dist/cli-bundle/chunks/{register-operations-J3WXP3MA.js → register-operations-VXBGE4XI.js} +2 -2
  82. package/dist/cli-bundle/chunks/{register-setup-HLSKKU4V.js → register-setup-UUDEGFRO.js} +2 -2
  83. package/dist/cli-bundle/focused-chunks/{chunk-ELQNEJDA.js → chunk-2IOHHNRT.js} +2 -2
  84. package/dist/cli-bundle/focused-chunks/chunk-5JEFDEL3.js +166 -0
  85. package/dist/cli-bundle/focused-chunks/{chunk-4UA7KY4V.js → chunk-AH6NX6GM.js} +2 -2
  86. package/dist/cli-bundle/focused-chunks/{chunk-ESOW6PH4.js → chunk-E33QA7PK.js} +2 -2
  87. package/dist/cli-bundle/focused-chunks/{chunk-BUAGNTLG.js → chunk-FTUZ3JF2.js} +6 -6
  88. package/dist/cli-bundle/focused-chunks/{chunk-HNRI2KBT.js → chunk-JXR6UKFM.js} +3 -3
  89. package/dist/cli-bundle/focused-chunks/chunk-LDKX4KYJ.js +2 -0
  90. package/dist/cli-bundle/focused-chunks/{chunk-IGBSAHCA.js → chunk-MBQF6HT6.js} +2 -2
  91. package/dist/cli-bundle/focused-chunks/chunk-NZO7GOXD.js +20 -0
  92. package/dist/cli-bundle/focused-chunks/{chunk-QIU4Y3AB.js → chunk-PYC7BF6Z.js} +2 -2
  93. package/dist/cli-bundle/focused-chunks/{chunk-YJNKISEI.js → chunk-QOSVJDOO.js} +61 -62
  94. package/dist/cli-bundle/focused-chunks/{chunk-RHQCQTZA.js → chunk-RBLSY6ML.js} +2 -2
  95. package/dist/cli-bundle/focused-chunks/{chunk-KSMQEB3V.js → chunk-RHTH5ILM.js} +2 -2
  96. package/dist/cli-bundle/focused-chunks/{chunk-Y5A4XOSK.js → chunk-SIGIGZCG.js} +3 -3
  97. package/dist/cli-bundle/focused-chunks/chunk-TRFVAWF2.js +26 -0
  98. package/dist/cli-bundle/focused-chunks/{chunk-AULVKHYX.js → chunk-UNTQE37U.js} +2 -2
  99. package/dist/cli-bundle/main.js +22 -22
  100. package/dist/cli-bundle/sdk-authoring.js +1 -1
  101. package/dist/cli-bundle/sdk-contracts.js +2 -2
  102. package/dist/cli-bundle/sdk-core.js +23 -23
  103. package/dist/cli-bundle/sdk-governance.js +1 -1
  104. package/dist/cli-bundle/sdk-graph.js +1 -1
  105. package/dist/cli-bundle/sdk-merge.js +54 -54
  106. package/dist/cli-bundle/sdk-query.js +1 -1
  107. package/dist/cli-bundle/sdk-runtime.js +1 -1
  108. package/dist/cli-bundle/sdk-testing.js +1 -1
  109. package/dist/cli-bundle/sdk.js +7 -7
  110. package/dist/cli.d.ts +9 -9
  111. package/dist/core/checkpoint/checkpoint-gc.d.ts +17 -17
  112. package/dist/core/checkpoint/mutation-checkpoint.d.ts +26 -26
  113. package/dist/core/config/nested-settings.d.ts +20 -20
  114. package/dist/core/config/positional-value.d.ts +9 -9
  115. package/dist/core/diagnostics/remediation.d.ts +7 -7
  116. package/dist/core/extensions/activation-summary-markdown.d.ts +4 -4
  117. package/dist/core/extensions/activation-summary.d.ts +30 -30
  118. package/dist/core/extensions/activation-transaction.d.ts +9 -9
  119. package/dist/core/extensions/capability-usage.d.ts +25 -25
  120. package/dist/core/extensions/command-hook-context.d.ts +15 -15
  121. package/dist/core/extensions/command-metadata-contract.d.ts +1 -1
  122. package/dist/core/extensions/command-visibility-tier.d.ts +1 -1
  123. package/dist/core/extensions/contribution-inventory.d.ts +24 -24
  124. package/dist/core/extensions/exporter-output-contract.d.ts +4 -4
  125. package/dist/core/extensions/extension-candidate.d.ts +14 -14
  126. package/dist/core/extensions/extension-capability-aliases.d.ts +14 -14
  127. package/dist/core/extensions/extension-hook-runtime.d.ts +14 -14
  128. package/dist/core/extensions/extension-policy.d.ts +62 -62
  129. package/dist/core/extensions/extension-registries.d.ts +8 -8
  130. package/dist/core/extensions/extension-runtime-helpers.d.ts +5 -5
  131. package/dist/core/extensions/extension-types.d.ts +717 -702
  132. package/dist/core/extensions/extension-types.js +1 -1
  133. package/dist/core/extensions/flag-definition-validation.d.ts +11 -11
  134. package/dist/core/extensions/flag-value-types.d.ts +32 -4
  135. package/dist/core/extensions/flag-value-types.js +1 -1
  136. package/dist/core/extensions/index.d.ts +34 -34
  137. package/dist/core/extensions/item-field-types.d.ts +3 -3
  138. package/dist/core/extensions/item-fields.d.ts +6 -6
  139. package/dist/core/extensions/loader.d.ts +66 -66
  140. package/dist/core/extensions/manifest-parser.d.ts +1 -1
  141. package/dist/core/extensions/manifest-schema.d.ts +13 -13
  142. package/dist/core/extensions/module-graph-snapshot.d.ts +5 -5
  143. package/dist/core/extensions/preflight-ownership.d.ts +3 -3
  144. package/dist/core/extensions/read-output-contract.d.ts +2 -2
  145. package/dist/core/extensions/registration-contracts.d.ts +12 -12
  146. package/dist/core/extensions/registration-contracts.js +1 -1
  147. package/dist/core/extensions/registration-validation.d.ts +6 -6
  148. package/dist/core/extensions/registration-values.d.ts +19 -19
  149. package/dist/core/extensions/reserved-host-flags.d.ts +5 -5
  150. package/dist/core/extensions/runtime-registrations.d.ts +6 -6
  151. package/dist/core/extensions/service-ownership.d.ts +1 -1
  152. package/dist/core/extensions/version-compat.d.ts +9 -9
  153. package/dist/core/fs/atomic-create.d.ts +1 -1
  154. package/dist/core/fs/fs-utils.d.ts +12 -12
  155. package/dist/core/fs/host-environment-errors.d.ts +10 -10
  156. package/dist/core/fs/path-utils.d.ts +1 -1
  157. package/dist/core/governance/content-fields.d.ts +25 -25
  158. package/dist/core/governance/issue-codes.d.ts +16 -16
  159. package/dist/core/governance/metadata-coverage.d.ts +64 -64
  160. package/dist/core/history/digest.d.ts +5 -5
  161. package/dist/core/history/drift-cache.d.ts +2 -2
  162. package/dist/core/history/drift-scan.d.ts +18 -18
  163. package/dist/core/history/event-classification.d.ts +4 -4
  164. package/dist/core/history/event-index.d.ts +33 -33
  165. package/dist/core/history/history-compact-bulk.d.ts +12 -12
  166. package/dist/core/history/history-diff.d.ts +15 -15
  167. package/dist/core/history/history-rewrite.d.ts +43 -43
  168. package/dist/core/history/history-storage-stats.d.ts +20 -20
  169. package/dist/core/history/history-stream-policy.d.ts +12 -12
  170. package/dist/core/history/history.d.ts +45 -45
  171. package/dist/core/history/identity.d.ts +4 -4
  172. package/dist/core/history/operation-contract.d.ts +17 -17
  173. package/dist/core/history/projection.d.ts +16 -16
  174. package/dist/core/history/read.d.ts +4 -4
  175. package/dist/core/history/replay.d.ts +47 -47
  176. package/dist/core/history/tombstone.d.ts +1 -1
  177. package/dist/core/history/version-address.d.ts +2 -2
  178. package/dist/core/history/workspace-history.d.ts +72 -72
  179. package/dist/core/io/body-file.d.ts +2 -2
  180. package/dist/core/io/bulk-ids-input.d.ts +7 -7
  181. package/dist/core/item/actionability.d.ts +30 -30
  182. package/dist/core/item/dependency-reference.d.ts +2 -2
  183. package/dist/core/item/id.d.ts +9 -9
  184. package/dist/core/item/item-format-version.d.ts +17 -15
  185. package/dist/core/item/item-format-version.js +1 -1
  186. package/dist/core/item/item-format.d.ts +54 -54
  187. package/dist/core/item/item-format.js +3 -3
  188. package/dist/core/item/item-record.d.ts +1 -1
  189. package/dist/core/item/item-type-definition.d.ts +11 -11
  190. package/dist/core/item/parent-reference-policy.d.ts +6 -6
  191. package/dist/core/item/parse.d.ts +37 -37
  192. package/dist/core/item/plan-lifecycle.d.ts +4 -4
  193. package/dist/core/item/priority.d.ts +3 -3
  194. package/dist/core/item/sprint-release-format.d.ts +4 -4
  195. package/dist/core/item/status-filter.d.ts +5 -5
  196. package/dist/core/item/status.d.ts +3 -3
  197. package/dist/core/item/toon-decode.d.ts +10 -10
  198. package/dist/core/item/type-registry.d.ts +35 -35
  199. package/dist/core/item/type-synonyms.d.ts +2 -2
  200. package/dist/core/lock/lock-gc.d.ts +28 -28
  201. package/dist/core/lock/lock.d.ts +53 -53
  202. package/dist/core/output/mutation-projection.d.ts +4 -25
  203. package/dist/core/output/mutation-projection.js +1 -1
  204. package/dist/core/output/output-control.d.ts +4 -4
  205. package/dist/core/output/output.d.ts +30 -30
  206. package/dist/core/output/query-summary.d.ts +5 -5
  207. package/dist/core/output/tabular.d.ts +3 -3
  208. package/dist/core/packages/manifest.d.ts +30 -30
  209. package/dist/core/packages/root.d.ts +4 -4
  210. package/dist/core/policy/workflow-policy-schema.d.ts +291 -291
  211. package/dist/core/policy/workflow-policy-store.d.ts +15 -15
  212. package/dist/core/policy/workflow-policy.d.ts +56 -56
  213. package/dist/core/profile/profile-describe.d.ts +22 -22
  214. package/dist/core/profile/profile-lint.d.ts +13 -13
  215. package/dist/core/profile/profile-plan.d.ts +45 -45
  216. package/dist/core/profile/profile-presets.d.ts +36 -36
  217. package/dist/core/reproducibility/context.d.ts +9 -9
  218. package/dist/core/schema/fields-file.d.ts +35 -35
  219. package/dist/core/schema/item-types-file.d.ts +29 -29
  220. package/dist/core/schema/runtime-field-filters.d.ts +3 -3
  221. package/dist/core/schema/runtime-field-values.d.ts +7 -7
  222. package/dist/core/schema/runtime-schema.d.ts +59 -59
  223. package/dist/core/schema/status-defs-file.d.ts +29 -29
  224. package/dist/core/schema/status-token.d.ts +1 -1
  225. package/dist/core/schema/type-inference.d.ts +10 -10
  226. package/dist/core/schema/type-presets.d.ts +5 -5
  227. package/dist/core/schema/type-workflows.d.ts +15 -15
  228. package/dist/core/schema/type-workflows.js +1 -1
  229. package/dist/core/search/background-refresh.d.ts +12 -12
  230. package/dist/core/search/bm25.d.ts +16 -16
  231. package/dist/core/search/cache.d.ts +34 -34
  232. package/dist/core/search/corpus.d.ts +17 -17
  233. package/dist/core/search/embedding-batches.d.ts +25 -25
  234. package/dist/core/search/eval-thresholds.d.ts +4 -4
  235. package/dist/core/search/eval.d.ts +40 -40
  236. package/dist/core/search/http-client.d.ts +24 -24
  237. package/dist/core/search/providers.d.ts +30 -30
  238. package/dist/core/search/relevance.d.ts +17 -17
  239. package/dist/core/search/semantic-defaults.d.ts +5 -5
  240. package/dist/core/search/staleness.d.ts +3 -3
  241. package/dist/core/search/vector-stores.d.ts +51 -51
  242. package/dist/core/search/vectorization-metadata.d.ts +9 -9
  243. package/dist/core/sentry/helpers.d.ts +27 -27
  244. package/dist/core/sentry/instrument.d.ts +51 -51
  245. package/dist/core/sentry/instrument.js +1 -1
  246. package/dist/core/sentry/sensitive-assignments.d.ts +9 -0
  247. package/dist/core/sentry/sensitive-assignments.js +2 -0
  248. package/dist/core/session/session-state.d.ts +37 -37
  249. package/dist/core/shared/agent-session-context.d.ts +14 -14
  250. package/dist/core/shared/author.d.ts +89 -89
  251. package/dist/core/shared/command-line.d.ts +3 -3
  252. package/dist/core/shared/command-types.d.ts +20 -20
  253. package/dist/core/shared/conflict-markers.d.ts +5 -5
  254. package/dist/core/shared/constants.d.ts +30 -30
  255. package/dist/core/shared/errors.d.ts +100 -100
  256. package/dist/core/shared/html-entity-decode.d.ts +2 -2
  257. package/dist/core/shared/item-metadata-contract.d.ts +2 -2
  258. package/dist/core/shared/lazy-module.d.ts +1 -1
  259. package/dist/core/shared/levenshtein.d.ts +1 -1
  260. package/dist/core/shared/memo.d.ts +1 -1
  261. package/dist/core/shared/numeric-parsers.d.ts +1 -1
  262. package/dist/core/shared/option-alias-visibility.d.ts +3 -3
  263. package/dist/core/shared/primitives.d.ts +13 -13
  264. package/dist/core/shared/secret-rules.d.ts +92 -92
  265. package/dist/core/shared/serial-queue.d.ts +6 -6
  266. package/dist/core/shared/serialization.d.ts +4 -4
  267. package/dist/core/shared/split-comma-list.d.ts +4 -4
  268. package/dist/core/shared/text-normalization.d.ts +5 -3
  269. package/dist/core/shared/text-normalization.js +1 -1
  270. package/dist/core/shared/time.d.ts +27 -27
  271. package/dist/core/store/item-format-migration.d.ts +7 -7
  272. package/dist/core/store/item-metadata-cache.d.ts +30 -30
  273. package/dist/core/store/item-metadata-query-index.d.ts +66 -66
  274. package/dist/core/store/item-metadata-read-work.d.ts +6 -6
  275. package/dist/core/store/item-mutation-precondition.d.ts +11 -0
  276. package/dist/core/store/item-mutation-precondition.js +2 -0
  277. package/dist/core/store/item-store.d.ts +123 -123
  278. package/dist/core/store/item-store.js +1 -1
  279. package/dist/core/store/paths.d.ts +27 -27
  280. package/dist/core/store/settings-concurrency.d.ts +1 -1
  281. package/dist/core/store/settings-read-cache.d.ts +11 -11
  282. package/dist/core/store/settings-validator.d.ts +117 -117
  283. package/dist/core/store/settings.d.ts +84 -84
  284. package/dist/core/store/sqlite-runtime.d.ts +2 -2
  285. package/dist/core/store/tracker-preflight.d.ts +3 -3
  286. package/dist/core/telemetry/consent.d.ts +1 -1
  287. package/dist/core/telemetry/observability.d.ts +16 -16
  288. package/dist/core/telemetry/policy.d.ts +7 -7
  289. package/dist/core/telemetry/read-sampling.d.ts +1 -1
  290. package/dist/core/telemetry/runtime.d.ts +275 -275
  291. package/dist/core/test/background-runs.d.ts +123 -123
  292. package/dist/core/test/item-test-run-tracking.d.ts +10 -10
  293. package/dist/core/test/run-selectors.d.ts +12 -12
  294. package/dist/core/validate/estimate-defaults.d.ts +3 -3
  295. package/dist/core/validate/fix-planning.d.ts +36 -36
  296. package/dist/core/validate/linked-artifact-reference.d.ts +1 -1
  297. package/dist/core/validate/missing-by-type.d.ts +3 -3
  298. package/dist/core/validate/missing-link-owners.d.ts +17 -17
  299. package/dist/core/validate/stale-file-classification.d.ts +6 -6
  300. package/dist/mcp/http-server.d.ts +26 -26
  301. package/dist/mcp/legacy-adapter.d.ts +18 -18
  302. package/dist/mcp/runtime-capabilities.d.ts +18 -18
  303. package/dist/mcp/server.d.ts +73 -73
  304. package/dist/mcp/server.js +1 -1
  305. package/dist/mcp/tool-definitions.d.ts +27 -27
  306. package/dist/mcp/tool-definitions.js +1 -1
  307. package/dist/sdk/actionability.d.ts +1 -1
  308. package/dist/sdk/agent/closed-domain-contracts.d.ts +11 -11
  309. package/dist/sdk/agent/command-recovery.d.ts +5 -5
  310. package/dist/sdk/agent/command-suggestions.d.ts +4 -4
  311. package/dist/sdk/agent/create-option-policy.d.ts +2 -2
  312. package/dist/sdk/agent/identity-config.d.ts +18 -18
  313. package/dist/sdk/agent/item-addressing.d.ts +6 -6
  314. package/dist/sdk/agent/refusal-closure-census.d.ts +26 -26
  315. package/dist/sdk/agent/refusal-closure.d.ts +22 -22
  316. package/dist/sdk/agent/refusal-corpus-contracts.d.ts +26 -26
  317. package/dist/sdk/agent/refusal-reachability.d.ts +65 -65
  318. package/dist/sdk/agent/subcommand-recovery.d.ts +20 -20
  319. package/dist/sdk/agent/task-transcript-contracts.d.ts +18 -18
  320. package/dist/sdk/agent/tracker-preflight-contracts.d.ts +21 -21
  321. package/dist/sdk/agent-capability-contracts.d.ts +41 -41
  322. package/dist/sdk/agent-session-context.d.ts +1 -1
  323. package/dist/sdk/annotations.d.ts +74 -74
  324. package/dist/sdk/author-attribution.d.ts +47 -47
  325. package/dist/sdk/authoring.d.ts +9 -9
  326. package/dist/sdk/cli-bootstrap.d.ts +65 -65
  327. package/dist/sdk/cli-contracts/agent-output-contracts.d.ts +56 -56
  328. package/dist/sdk/cli-contracts/agent-output-contracts.js +1 -1
  329. package/dist/sdk/cli-contracts/bootstrap-command-scanner.d.ts +6 -6
  330. package/dist/sdk/cli-contracts/command-aliases.d.ts +19 -19
  331. package/dist/sdk/cli-contracts/command-exit-contracts.d.ts +66 -66
  332. package/dist/sdk/cli-contracts/commander-mutation-options.d.ts +7 -7
  333. package/dist/sdk/cli-contracts/commander-types.d.ts +18 -18
  334. package/dist/sdk/cli-contracts/completeness.d.ts +14 -14
  335. package/dist/sdk/cli-contracts/enum-contracts.d.ts +28 -28
  336. package/dist/sdk/cli-contracts/flag-contracts.d.ts +114 -112
  337. package/dist/sdk/cli-contracts/flag-contracts.js +1 -1
  338. package/dist/sdk/cli-contracts/flag-lexicon-contracts.d.ts +27 -27
  339. package/dist/sdk/cli-contracts/flag-lexicon-contracts.js +1 -1
  340. package/dist/sdk/cli-contracts/grammar-contracts.d.ts +61 -61
  341. package/dist/sdk/cli-contracts/registration-helpers.d.ts +57 -57
  342. package/dist/sdk/cli-contracts/registration-helpers.js +1 -1
  343. package/dist/sdk/cli-contracts/runtime-contracts.d.ts +250 -250
  344. package/dist/sdk/cli-contracts/runtime-contracts.js +1 -1
  345. package/dist/sdk/cli-contracts/schemas/assurance-definition.d.ts +678 -678
  346. package/dist/sdk/cli-contracts/string-lists.d.ts +1 -1
  347. package/dist/sdk/cli-contracts/tool-option-contracts.d.ts +564 -564
  348. package/dist/sdk/cli-contracts/tool-parameter-tables.d.ts +13 -13
  349. package/dist/sdk/cli-contracts/tool-schema.d.ts +54 -54
  350. package/dist/sdk/cli-contracts/tool-schema.js +1 -1
  351. package/dist/sdk/cli-contracts/typed-action-inputs.d.ts +20 -20
  352. package/dist/sdk/cli-contracts.d.ts +15 -15
  353. package/dist/sdk/cli-program.d.ts +1 -1
  354. package/dist/sdk/cli-program.js +1 -1
  355. package/dist/sdk/command-line.d.ts +3 -3
  356. package/dist/sdk/comments.d.ts +24 -24
  357. package/dist/sdk/compile-cache.d.ts +4 -4
  358. package/dist/sdk/completion/bash.d.ts +1 -1
  359. package/dist/sdk/completion/fish.d.ts +1 -1
  360. package/dist/sdk/completion/shared.d.ts +74 -74
  361. package/dist/sdk/completion/zsh.d.ts +1 -1
  362. package/dist/sdk/completion.d.ts +3 -3
  363. package/dist/sdk/compose.d.ts +94 -94
  364. package/dist/sdk/config.d.ts +105 -105
  365. package/dist/sdk/context/recency.d.ts +1 -1
  366. package/dist/sdk/context/semantic-session-attribution.d.ts +23 -23
  367. package/dist/sdk/context/usage-egress.d.ts +1 -1
  368. package/dist/sdk/context/usage-ledger.d.ts +18 -18
  369. package/dist/sdk/context-intent-contracts.d.ts +37 -37
  370. package/dist/sdk/context-intent-contracts.js +1 -1
  371. package/dist/sdk/context-intent-runtime.d.ts +10 -10
  372. package/dist/sdk/context-packing.d.ts +44 -44
  373. package/dist/sdk/context-relevance.d.ts +110 -110
  374. package/dist/sdk/context-signal-store.d.ts +52 -52
  375. package/dist/sdk/context-usage.d.ts +78 -78
  376. package/dist/sdk/contracts.d.ts +2 -1
  377. package/dist/sdk/contracts.js +1 -1
  378. package/dist/sdk/core-governance.d.ts +5 -5
  379. package/dist/sdk/core.d.ts +9 -8
  380. package/dist/sdk/core.js +1 -1
  381. package/dist/sdk/corpus-shape.d.ts +60 -60
  382. package/dist/sdk/define.d.ts +36 -36
  383. package/dist/sdk/dependencies.d.ts +70 -70
  384. package/dist/sdk/dependency-flag-validation.d.ts +17 -17
  385. package/dist/sdk/dependency-provenance.d.ts +22 -22
  386. package/dist/sdk/docs.d.ts +17 -17
  387. package/dist/sdk/duplicates.d.ts +14 -14
  388. package/dist/sdk/environment/agent-environment.d.ts +118 -118
  389. package/dist/sdk/environment/host-environment-errors.d.ts +1 -1
  390. package/dist/sdk/environment/project-runtime-compatibility.d.ts +42 -40
  391. package/dist/sdk/environment/project-runtime-compatibility.js +2 -2
  392. package/dist/sdk/environment/source-context.d.ts +4 -4
  393. package/dist/sdk/environment/tracker-preflight.d.ts +1 -1
  394. package/dist/sdk/error-code-catalog.d.ts +33 -33
  395. package/dist/sdk/error-runtime.d.ts +5 -5
  396. package/dist/sdk/errors.d.ts +17 -17
  397. package/dist/sdk/eval.d.ts +27 -27
  398. package/dist/sdk/extension/author-manifest.d.ts +9 -9
  399. package/dist/sdk/extension/bundled-catalog.d.ts +18 -18
  400. package/dist/sdk/extension/concurrency.d.ts +1 -1
  401. package/dist/sdk/extension/copy-scope.d.ts +1 -1
  402. package/dist/sdk/extension/custom-field-collisions.d.ts +1 -1
  403. package/dist/sdk/extension/describe.d.ts +21 -21
  404. package/dist/sdk/extension/doctor.d.ts +46 -46
  405. package/dist/sdk/extension/install-plan.d.ts +32 -32
  406. package/dist/sdk/extension/install-receipts.d.ts +4 -4
  407. package/dist/sdk/extension/install-runtime.d.ts +12 -12
  408. package/dist/sdk/extension/install-snapshot.d.ts +10 -10
  409. package/dist/sdk/extension/install-sources.d.ts +106 -106
  410. package/dist/sdk/extension/managed-state.d.ts +42 -42
  411. package/dist/sdk/extension/managed-update-status.d.ts +1 -1
  412. package/dist/sdk/extension/migrations.d.ts +48 -48
  413. package/dist/sdk/extension/output-ownership.d.ts +19 -19
  414. package/dist/sdk/extension/runtime-summary.d.ts +7 -7
  415. package/dist/sdk/extension/scaffold.d.ts +15 -15
  416. package/dist/sdk/extension/shared.d.ts +16 -16
  417. package/dist/sdk/extension/source-resolution.d.ts +16 -16
  418. package/dist/sdk/extension/static-inventory.d.ts +23 -23
  419. package/dist/sdk/extension/update-check.d.ts +9 -9
  420. package/dist/sdk/extension-command-context.d.ts +1 -1
  421. package/dist/sdk/extension-contracts.d.ts +10 -10
  422. package/dist/sdk/extension.d.ts +221 -221
  423. package/dist/sdk/files.d.ts +101 -101
  424. package/dist/sdk/flag-invocation-contracts.d.ts +25 -25
  425. package/dist/sdk/flag-invocation-contracts.js +1 -1
  426. package/dist/sdk/generated/generated-error-code-catalog-part-1.d.ts +1 -1
  427. package/dist/sdk/generated/generated-error-code-catalog-part-1.js +1 -1
  428. package/dist/sdk/generated/generated-error-code-catalog-part-2.d.ts +1 -1
  429. package/dist/sdk/generated/generated-error-code-catalog-part-2.js +1 -1
  430. package/dist/sdk/generated-error-code-catalog.d.ts +1 -1
  431. package/dist/sdk/governance/artifact-ledgers.d.ts +19 -19
  432. package/dist/sdk/governance/assurance-action-contracts.d.ts +1 -1
  433. package/dist/sdk/governance/assurance-action.d.ts +46 -46
  434. package/dist/sdk/governance/assurance-mutation-error.d.ts +20 -20
  435. package/dist/sdk/governance/assurance-presets.d.ts +25 -25
  436. package/dist/sdk/governance/assurance-runtime.d.ts +10 -10
  437. package/dist/sdk/governance/assurance.d.ts +204 -204
  438. package/dist/sdk/governance/boundary-fixtures.d.ts +32 -32
  439. package/dist/sdk/governance/closure-timestamps.d.ts +10 -10
  440. package/dist/sdk/governance/coverage-assurance.d.ts +7 -7
  441. package/dist/sdk/governance/defect-recurrence-coverage.d.ts +40 -40
  442. package/dist/sdk/governance/defect-recurrence-graph.d.ts +11 -11
  443. package/dist/sdk/governance/defect-recurrence-signals.d.ts +1 -1
  444. package/dist/sdk/governance/defect-recurrence.d.ts +97 -97
  445. package/dist/sdk/governance/extension-host-version.d.ts +9 -9
  446. package/dist/sdk/governance/gc.d.ts +26 -26
  447. package/dist/sdk/governance/health-merge-evidence.d.ts +8 -8
  448. package/dist/sdk/governance/health.d.ts +172 -172
  449. package/dist/sdk/governance/health.js +1 -1
  450. package/dist/sdk/governance/hierarchy-validation.d.ts +16 -16
  451. package/dist/sdk/governance/linked-file-report.d.ts +15 -15
  452. package/dist/sdk/governance/merge-receipt-history.d.ts +24 -24
  453. package/dist/sdk/governance/provenance-health.d.ts +35 -35
  454. package/dist/sdk/governance/reindex.d.ts +102 -102
  455. package/dist/sdk/governance/reliability.d.ts +29 -29
  456. package/dist/sdk/governance/stale-work.d.ts +13 -13
  457. package/dist/sdk/governance/status-role-diagnostics.d.ts +8 -8
  458. package/dist/sdk/governance/storage-integrity.d.ts +28 -28
  459. package/dist/sdk/governance/tracked-runtime-cache.d.ts +7 -7
  460. package/dist/sdk/governance/upgrade.d.ts +77 -77
  461. package/dist/sdk/governance/validate-history-drift.d.ts +3 -3
  462. package/dist/sdk/governance/validate-item-reader.d.ts +9 -9
  463. package/dist/sdk/governance/validate-normalization.d.ts +4 -4
  464. package/dist/sdk/governance/validate.d.ts +176 -176
  465. package/dist/sdk/governance/validate.js +1 -1
  466. package/dist/sdk/governance/workflow-completeness.d.ts +15 -15
  467. package/dist/sdk/governance/workflow-policy.d.ts +18 -18
  468. package/dist/sdk/governance/workspace-position.d.ts +40 -40
  469. package/dist/sdk/governance.d.ts +2 -2
  470. package/dist/sdk/graph/adapter.d.ts +45 -45
  471. package/dist/sdk/graph/analytics.d.ts +36 -36
  472. package/dist/sdk/graph/assembly.d.ts +51 -51
  473. package/dist/sdk/graph/cache.d.ts +19 -19
  474. package/dist/sdk/graph/cardinality-integrity.d.ts +4 -4
  475. package/dist/sdk/graph/centrality.d.ts +20 -20
  476. package/dist/sdk/graph/conformance.d.ts +21 -21
  477. package/dist/sdk/graph/deadline-scheduling.d.ts +30 -30
  478. package/dist/sdk/graph/durable-cache.d.ts +22 -22
  479. package/dist/sdk/graph/governance-contracts.d.ts +1 -1
  480. package/dist/sdk/graph/governance.d.ts +92 -92
  481. package/dist/sdk/graph/hierarchy-integrity.d.ts +32 -32
  482. package/dist/sdk/graph/index.d.ts +15 -15
  483. package/dist/sdk/graph/lifecycle-coverage.d.ts +12 -12
  484. package/dist/sdk/graph/mutation-advisory.d.ts +15 -15
  485. package/dist/sdk/graph/query-contracts.d.ts +6 -6
  486. package/dist/sdk/graph/remediation.d.ts +15 -15
  487. package/dist/sdk/graph/run.d.ts +203 -203
  488. package/dist/sdk/graph/scheduling.d.ts +21 -21
  489. package/dist/sdk/graph/traversal.d.ts +18 -18
  490. package/dist/sdk/graph/workspace-relationship-kind-registry.d.ts +1 -1
  491. package/dist/sdk/guide-topics.d.ts +19 -19
  492. package/dist/sdk/guide-topics.js +1 -1
  493. package/dist/sdk/guide.d.ts +43 -43
  494. package/dist/sdk/history/attestation-command.d.ts +8 -8
  495. package/dist/sdk/history/attestation-contract.d.ts +43 -43
  496. package/dist/sdk/history/attestation-scan.d.ts +4 -4
  497. package/dist/sdk/history/attestation.d.ts +4 -4
  498. package/dist/sdk/history/maintenance.d.ts +25 -25
  499. package/dist/sdk/history/salvage.d.ts +19 -19
  500. package/dist/sdk/history/subject.d.ts +8 -8
  501. package/dist/sdk/history-analytics.d.ts +64 -64
  502. package/dist/sdk/history-compact.d.ts +67 -67
  503. package/dist/sdk/history-mcp.d.ts +7 -7
  504. package/dist/sdk/history-provenance.d.ts +40 -40
  505. package/dist/sdk/history-read.d.ts +24 -24
  506. package/dist/sdk/history-redact.d.ts +68 -68
  507. package/dist/sdk/history-repair.d.ts +92 -92
  508. package/dist/sdk/improvement-ledger-validation.d.ts +1 -1
  509. package/dist/sdk/improvement-ledger.d.ts +62 -62
  510. package/dist/sdk/index.d.ts +70 -69
  511. package/dist/sdk/index.js +1 -1
  512. package/dist/sdk/init-agent-guidance.d.ts +68 -68
  513. package/dist/sdk/init.d.ts +117 -117
  514. package/dist/sdk/invocation-author.d.ts +1 -1
  515. package/dist/sdk/item-children.d.ts +15 -15
  516. package/dist/sdk/item-metadata-index.d.ts +2 -2
  517. package/dist/sdk/item-schedule.d.ts +9 -9
  518. package/dist/sdk/item-transaction.d.ts +139 -76
  519. package/dist/sdk/item-transaction.js +1 -1
  520. package/dist/sdk/learnings.d.ts +23 -23
  521. package/dist/sdk/lifecycle/append.d.ts +8 -8
  522. package/dist/sdk/lifecycle/claim.d.ts +53 -39
  523. package/dist/sdk/lifecycle/claim.js +1 -1
  524. package/dist/sdk/lifecycle/close-many.d.ts +71 -71
  525. package/dist/sdk/lifecycle/close.d.ts +18 -24
  526. package/dist/sdk/lifecycle/close.js +1 -1
  527. package/dist/sdk/lifecycle/copy.d.ts +10 -10
  528. package/dist/sdk/lifecycle/core-field-recovery.d.ts +1 -1
  529. package/dist/sdk/lifecycle/core-item-fields.d.ts +6 -0
  530. package/dist/sdk/lifecycle/core-item-fields.js +2 -0
  531. package/dist/sdk/lifecycle/create.d.ts +88 -88
  532. package/dist/sdk/lifecycle/delete.d.ts +15 -15
  533. package/dist/sdk/lifecycle/event-validation-messages.d.ts +1 -1
  534. package/dist/sdk/lifecycle/focus.d.ts +6 -6
  535. package/dist/sdk/lifecycle/hierarchy-mutation-lock.d.ts +6 -6
  536. package/dist/sdk/lifecycle/legacy-none-tokens.d.ts +35 -35
  537. package/dist/sdk/lifecycle/lifecycle-transitions.d.ts +3 -3
  538. package/dist/sdk/lifecycle/mcp-actions.d.ts +10 -10
  539. package/dist/sdk/lifecycle/mcp-actions.js +1 -1
  540. package/dist/sdk/lifecycle/metadata-normalizers.d.ts +4 -4
  541. package/dist/sdk/lifecycle/mutation-command-options.d.ts +58 -58
  542. package/dist/sdk/lifecycle/mutation-facet-contracts.d.ts +1 -1
  543. package/dist/sdk/lifecycle/mutation-option-validation.d.ts +2 -0
  544. package/dist/sdk/lifecycle/mutation-option-validation.js +2 -0
  545. package/dist/sdk/lifecycle/plan-mutation-receipt.d.ts +24 -24
  546. package/dist/sdk/lifecycle/plan.d.ts +127 -127
  547. package/dist/sdk/lifecycle/recurrence-parsers.d.ts +5 -5
  548. package/dist/sdk/lifecycle/release-handoff.d.ts +12 -0
  549. package/dist/sdk/lifecycle/release-handoff.js +2 -0
  550. package/dist/sdk/lifecycle/reopen.d.ts +15 -15
  551. package/dist/sdk/lifecycle/repeatable-metadata-parsers.d.ts +7 -7
  552. package/dist/sdk/lifecycle/restore.d.ts +34 -34
  553. package/dist/sdk/lifecycle/restore.js +1 -1
  554. package/dist/sdk/lifecycle/shared-unset-fields.d.ts +20 -20
  555. package/dist/sdk/lifecycle/structured-mutation-plan.d.ts +33 -0
  556. package/dist/sdk/lifecycle/structured-mutation-plan.js +2 -0
  557. package/dist/sdk/lifecycle/task-composition.d.ts +9 -9
  558. package/dist/sdk/lifecycle/task-composition.js +1 -1
  559. package/dist/sdk/lifecycle/update-many.d.ts +61 -61
  560. package/dist/sdk/lifecycle/update.d.ts +113 -121
  561. package/dist/sdk/lifecycle/update.js +1 -1
  562. package/dist/sdk/lifecycle/workflow-transition.d.ts +13 -0
  563. package/dist/sdk/lifecycle/workflow-transition.js +2 -0
  564. package/dist/sdk/lifecycle-completion.d.ts +14 -14
  565. package/dist/sdk/lifecycle-policy.d.ts +42 -32
  566. package/dist/sdk/lifecycle-policy.js +1 -1
  567. package/dist/sdk/linked-artifacts.d.ts +58 -58
  568. package/dist/sdk/mcp/apps.d.ts +28 -28
  569. package/dist/sdk/mcp/authorization.d.ts +66 -66
  570. package/dist/sdk/mcp/discovery.d.ts +67 -67
  571. package/dist/sdk/mcp/interactions.d.ts +49 -49
  572. package/dist/sdk/mcp/protocol.d.ts +63 -63
  573. package/dist/sdk/mcp/skills.d.ts +62 -62
  574. package/dist/sdk/mcp/subscriptions.d.ts +26 -26
  575. package/dist/sdk/mcp/tasks.d.ts +51 -51
  576. package/dist/sdk/mcp/transport.d.ts +17 -17
  577. package/dist/sdk/merge/abandoned-receipts.d.ts +8 -8
  578. package/dist/sdk/merge/driver.d.ts +38 -38
  579. package/dist/sdk/merge/index.d.ts +5 -5
  580. package/dist/sdk/merge/install.d.ts +48 -48
  581. package/dist/sdk/merge/receipt-file-boundary.d.ts +6 -6
  582. package/dist/sdk/merge/receipt-operation.d.ts +6 -6
  583. package/dist/sdk/merge/receipt-schema.d.ts +11 -11
  584. package/dist/sdk/merge/receipts.d.ts +111 -111
  585. package/dist/sdk/merge/reconcile.d.ts +20 -20
  586. package/dist/sdk/merge/three-way.d.ts +50 -50
  587. package/dist/sdk/merge/three-way.js +2 -2
  588. package/dist/sdk/merge/worktree-config.d.ts +3 -3
  589. package/dist/sdk/mutation-events.d.ts +62 -62
  590. package/dist/sdk/mutation-guard.d.ts +134 -134
  591. package/dist/sdk/notes.d.ts +28 -28
  592. package/dist/sdk/output/table-rows.d.ts +6 -6
  593. package/dist/sdk/output-contracts.d.ts +26 -26
  594. package/dist/sdk/output-projection.d.ts +108 -108
  595. package/dist/sdk/output-token-accounting.d.ts +18 -18
  596. package/dist/sdk/output.d.ts +18 -18
  597. package/dist/sdk/ownership-source.d.ts +1 -1
  598. package/dist/sdk/package-import-adapters.d.ts +51 -51
  599. package/dist/sdk/package-migrations.d.ts +3 -3
  600. package/dist/sdk/package-runtime-options.d.ts +3 -3
  601. package/dist/sdk/pagination.d.ts +28 -28
  602. package/dist/sdk/pagination.js +1 -1
  603. package/dist/sdk/profile.d.ts +72 -72
  604. package/dist/sdk/provenance.d.ts +37 -37
  605. package/dist/sdk/public-surface.json +1 -1
  606. package/dist/sdk/query/activity.d.ts +84 -84
  607. package/dist/sdk/query/aggregate.d.ts +109 -109
  608. package/dist/sdk/query/calendar.d.ts +95 -95
  609. package/dist/sdk/query/complete-list.d.ts +35 -35
  610. package/dist/sdk/query/context.d.ts +300 -300
  611. package/dist/sdk/query/duplicate-candidates.d.ts +3 -3
  612. package/dist/sdk/query/get.d.ts +54 -54
  613. package/dist/sdk/query/history.d.ts +38 -38
  614. package/dist/sdk/query/item-filter-options.d.ts +41 -41
  615. package/dist/sdk/query/light-metadata.d.ts +1 -1
  616. package/dist/sdk/query/list-filter-shared.d.ts +4 -4
  617. package/dist/sdk/query/list.d.ts +167 -167
  618. package/dist/sdk/query/list.js +1 -1
  619. package/dist/sdk/query/multi-value-filters.d.ts +6 -6
  620. package/dist/sdk/query/next-ready-budget.d.ts +8 -8
  621. package/dist/sdk/query/next.d.ts +94 -94
  622. package/dist/sdk/query/parsers.d.ts +3 -3
  623. package/dist/sdk/query/projection-contracts.d.ts +18 -18
  624. package/dist/sdk/query/search/corpus.d.ts +15 -15
  625. package/dist/sdk/query/search/filters.d.ts +15 -15
  626. package/dist/sdk/query/search/input.d.ts +8 -8
  627. package/dist/sdk/query/search/lexical.d.ts +10 -10
  628. package/dist/sdk/query/search/response.d.ts +22 -22
  629. package/dist/sdk/query/search/semantic.d.ts +133 -133
  630. package/dist/sdk/query/search/types.d.ts +65 -65
  631. package/dist/sdk/query/search-contracts.d.ts +53 -53
  632. package/dist/sdk/query/search-pagination.d.ts +21 -21
  633. package/dist/sdk/query/search-rendering.d.ts +30 -30
  634. package/dist/sdk/query/search.d.ts +60 -60
  635. package/dist/sdk/query/workspace-contracts.d.ts +2 -2
  636. package/dist/sdk/query.d.ts +6 -6
  637. package/dist/sdk/read-output/continuation.d.ts +11 -11
  638. package/dist/sdk/read-output/extension.d.ts +3 -3
  639. package/dist/sdk/read-output/options.d.ts +7 -7
  640. package/dist/sdk/read-output/provenance.d.ts +6 -6
  641. package/dist/sdk/read-output-budget.d.ts +11 -11
  642. package/dist/sdk/read-output-budget.js +1 -1
  643. package/dist/sdk/read-output-contracts.d.ts +112 -112
  644. package/dist/sdk/read-output-contracts.js +1 -1
  645. package/dist/sdk/read-output-rows.d.ts +15 -15
  646. package/dist/sdk/read-output-session.d.ts +29 -29
  647. package/dist/sdk/relationship-analytics.d.ts +46 -46
  648. package/dist/sdk/relationship-context.d.ts +48 -48
  649. package/dist/sdk/relationship-history.d.ts +59 -59
  650. package/dist/sdk/relationship-kinds/contract.d.ts +18 -18
  651. package/dist/sdk/relationship-migration.d.ts +14 -14
  652. package/dist/sdk/relationships.d.ts +46 -46
  653. package/dist/sdk/reproducibility/process.d.ts +9 -9
  654. package/dist/sdk/runtime/actions.d.ts +1 -1
  655. package/dist/sdk/runtime/context.d.ts +15 -15
  656. package/dist/sdk/runtime/schema-preview.d.ts +1 -1
  657. package/dist/sdk/runtime/schema.d.ts +1 -1
  658. package/dist/sdk/runtime-action-aliases.d.ts +3 -3
  659. package/dist/sdk/runtime-extended-actions.d.ts +9 -9
  660. package/dist/sdk/runtime-input.d.ts +29 -29
  661. package/dist/sdk/runtime-input.js +1 -1
  662. package/dist/sdk/runtime-primitives.d.ts +53 -53
  663. package/dist/sdk/runtime-primitives.js +1 -1
  664. package/dist/sdk/runtime-public-contracts.d.ts +46 -46
  665. package/dist/sdk/runtime-stats-options.d.ts +1 -1
  666. package/dist/sdk/runtime.d.ts +374 -374
  667. package/dist/sdk/runtime.js +1 -1
  668. package/dist/sdk/scheduling-shortcuts.d.ts +19 -19
  669. package/dist/sdk/schema-migration.d.ts +79 -79
  670. package/dist/sdk/schema.d.ts +224 -224
  671. package/dist/sdk/search-refresh-worker.d.ts +1 -1
  672. package/dist/sdk/similarity-scoring.d.ts +10 -10
  673. package/dist/sdk/similarity.d.ts +73 -73
  674. package/dist/sdk/start-task-status.d.ts +1 -1
  675. package/dist/sdk/stats.d.ts +72 -72
  676. package/dist/sdk/structured-mutations.d.ts +64 -13
  677. package/dist/sdk/structured-mutations.js +1 -1
  678. package/dist/sdk/telemetry-flush.d.ts +1 -1
  679. package/dist/sdk/telemetry.d.ts +32 -32
  680. package/dist/sdk/templates.d.ts +35 -35
  681. package/dist/sdk/test/batch.d.ts +50 -50
  682. package/dist/sdk/test/command-args.d.ts +2 -2
  683. package/dist/sdk/test/entry.d.ts +4 -4
  684. package/dist/sdk/test/execution-receipts.d.ts +5 -5
  685. package/dist/sdk/test/execution.d.ts +247 -247
  686. package/dist/sdk/test/json-path.d.ts +4 -4
  687. package/dist/sdk/test/linked-command-detection.d.ts +36 -36
  688. package/dist/sdk/test/measurements.d.ts +10 -10
  689. package/dist/sdk/test/parsers.d.ts +18 -18
  690. package/dist/sdk/test/prerequisites.d.ts +3 -3
  691. package/dist/sdk/test/runs.d.ts +43 -43
  692. package/dist/sdk/test/trust.d.ts +15 -15
  693. package/dist/sdk/test/update.d.ts +23 -23
  694. package/dist/sdk/test/workspace-snapshot.d.ts +1 -1
  695. package/dist/sdk/testing.d.ts +248 -248
  696. package/dist/sdk/traceability/runtime-files-lookup.d.ts +1 -1
  697. package/dist/sdk/traceability/source-traceability.d.ts +50 -50
  698. package/dist/sdk/workspace-contracts-cache.d.ts +2 -2
  699. package/dist/sdk/workspace-contracts.d.ts +20 -20
  700. package/dist/sdk/workspace-memory.d.ts +42 -42
  701. package/dist/sdk/workspace-recipe.d.ts +9 -9
  702. package/dist/sdk/workspace-snapshot.d.ts +60 -60
  703. package/dist/sdk/workspace-transaction-gc.d.ts +17 -17
  704. package/dist/sdk/workspace-transaction.d.ts +26 -26
  705. package/dist/sdk/workspace-transaction.js +2 -2
  706. package/dist/sdk/workspace.d.ts +9 -9
  707. package/dist/types.d.ts +540 -540
  708. package/docs/AGENT_GUIDE.md +33 -4
  709. package/docs/CLOSE_EVIDENCE_RECOVERY.md +16 -7
  710. package/docs/COMMANDS.md +96 -12
  711. package/docs/ECOSYSTEM_PLANNING_REVIEW.md +5 -1
  712. package/docs/EXTENSIONS.md +1 -1
  713. package/docs/EXTENSION_AUTHOR_CONTRACTS.md +18 -4
  714. package/docs/LINKED_TEST_EDITS.md +15 -0
  715. package/docs/RELEASING.md +2 -0
  716. package/docs/SDK.md +114 -2
  717. package/docs/TESTING.md +36 -1
  718. package/docs/generated/FLAG_LEXICON_BUDGETS.md +1 -1
  719. package/docs/generated/REFUSAL_CLOSURE_CENSUS.md +17 -3
  720. package/marketplace.json +1 -1
  721. package/package.json +4 -1
  722. package/packages/pm-beads/package.json +1 -1
  723. package/packages/pm-calendar/package.json +1 -1
  724. package/packages/pm-command-kit/package.json +1 -1
  725. package/packages/pm-digital-twin/package.json +1 -1
  726. package/packages/pm-governance-audit/package.json +1 -1
  727. package/packages/pm-guide-shell/package.json +1 -1
  728. package/packages/pm-kanban/package.json +1 -1
  729. package/packages/pm-lifecycle-hooks/package.json +1 -1
  730. package/packages/pm-linked-test-adapters/package.json +1 -1
  731. package/packages/pm-search-advanced/package.json +1 -1
  732. package/packages/pm-templates/package.json +1 -1
  733. package/packages/pm-todos/package.json +1 -1
  734. package/packages/pm-vcs/package.json +1 -1
  735. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  736. package/plugins/pm-claude/package.json +1 -1
  737. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  738. package/plugins/pm-codex/package.json +1 -1
  739. package/plugins/pm-codex/plugin.json +1 -1
  740. package/runtime-dependencies.json +1 -1
  741. package/scripts/finalize-build.mjs +9 -3
  742. package/dist/cli-bundle/chunks/chunk-66BZVFIK.js +0 -6
  743. package/dist/cli-bundle/chunks/chunk-IDEHMKYZ.js +0 -235
  744. package/dist/cli-bundle/chunks/chunk-LOSRTNNP.js +0 -2
  745. package/dist/cli-bundle/chunks/chunk-PP3BVMFL.js +0 -30
  746. package/dist/cli-bundle/chunks/chunk-UNQZGMJL.js +0 -20
  747. package/dist/cli-bundle/chunks/chunk-YXRAYL7H.js +0 -2
  748. package/dist/cli-bundle/chunks/register-mutation-TNRHNK4N.js +0 -20
  749. package/dist/cli-bundle/focused-chunks/chunk-23ACMPGB.js +0 -2
  750. package/dist/cli-bundle/focused-chunks/chunk-JDVZF75H.js +0 -165
  751. package/dist/cli-bundle/focused-chunks/chunk-LKWDWER4.js +0 -20
  752. package/dist/cli-bundle/focused-chunks/chunk-WIXZF5SS.js +0 -26
  753. package/docs/ecosystem-review-2026-09-28.json +0 -1
@@ -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]="5470b8b4-c584-50fb-bd09-0feb81bd8184")}catch{}})();import{AsyncLocalStorage}from"node:async_hooks";import{attachExtensionReadOutputRows}from"./read-output/extension.js";import{renderPmCommand}from"./command-line.js";import{attachOutputOmissionReceipt}from"./output-projection.js";import{encodeQueryCursor}from"./pagination.js";import{applyReadOutputDimensions,stabilizeReadOutputReceiptEstimates}from"./read-output-contracts.js";import{propagateContextUsageServingReceipt}from"./context-usage.js";import{EXIT_CODE}from"../core/shared/constants.js";import{PmCliError}from"../core/shared/errors.js";const PM_CONTEXT_INTENT_CONTRACTS=Object.freeze([{command:"context",intent:"orient",description:"Bounded active hierarchy, ownership, blockers, and recent progress.",included_field_groups:["summary","focus","hierarchy","blockers","activity"],token_budget:3e3,source:"core"},{command:"context",intent:"handoff",description:"Active ownership, evidence, decisions, and immediate continuation context.",included_field_groups:["summary","focus","in_progress","decisions","activity"],token_budget:2200,source:"core"},{command:"get",intent:"inspect",description:"Standard-depth item metadata, relationships, evidence, and lifecycle state.",included_field_groups:["item","children","claim_state","linked"],token_budget:3200,source:"core"},{command:"list",intent:"triage",description:"A budget-derived page of compact governance, ownership, priority, and blocker rows for triage.",included_field_groups:["identity","governance","ownership","dependencies"],token_budget:3200,source:"core"},{command:"next",intent:"execute",description:"The highest-ranked actionable work with concise ranking evidence.",included_field_groups:["recommended"],token_budget:1200,source:"core"},{command:"search",intent:"discover",description:"A budget-derived page of ranked canonical lineage candidates with compact match evidence.",included_field_groups:["identity","status","lineage","match"],token_budget:1800,source:"core"}]),activeContextIntentContracts=new AsyncLocalStorage;function getActiveContextIntentContracts(){return activeContextIntentContracts.getStore()??PM_CONTEXT_INTENT_CONTRACTS}function runWithContextIntentContracts(layers,run){return activeContextIntentContracts.run(composeContextIntentContracts(layers.workspaceContracts,layers.packageContracts),run)}function normalizeContextIntentDeclaration(declaration,source){const command=declaration.command.trim().toLowerCase(),intent=declaration.intent.trim().toLowerCase(),key=`${command}:${intent}`;if(!/^[a-z0-9][a-z0-9-]*$/.test(command)||!/^[a-z0-9][a-z0-9-]*$/.test(intent))throw new TypeError(`Invalid context intent command or name: ${key}`);if(declaration.description.trim().length===0)throw new TypeError(`Context intent ${key} requires a non-empty description`);if(!Number.isSafeInteger(declaration.token_budget)||declaration.token_budget<=0)throw new TypeError(`Context intent ${key} requires a positive integer token_budget`);const includedFieldGroups=[...new Set(declaration.included_field_groups.map(field=>field.trim()).filter(Boolean))];if(includedFieldGroups.length===0)throw new TypeError(`Context intent ${key} requires included_field_groups`);return{command,intent,description:declaration.description.trim(),included_field_groups:includedFieldGroups,token_budget:declaration.token_budget,source}}function composeContextIntentContracts(workspaceContracts=[],packageContracts=[]){const layers=[{source:"core",contracts:PM_CONTEXT_INTENT_CONTRACTS,allowOverride:!1},{source:"package",contracts:packageContracts,allowOverride:!1},{source:"workspace",contracts:workspaceContracts,allowOverride:!0}],composed=new Map,keysSeenWithinLayer=new Set;for(const layer of layers){keysSeenWithinLayer.clear();for(const declaration of layer.contracts){const normalized=normalizeContextIntentDeclaration(declaration,layer.source),key=`${normalized.command}:${normalized.intent}`;if(keysSeenWithinLayer.has(key))throw new TypeError(`Duplicate context intent declaration: ${key}`);if(keysSeenWithinLayer.add(key),!layer.allowOverride&&composed.has(key))throw new TypeError(`Duplicate context intent declaration: ${key}`);composed.set(key,normalized)}}return[...composed.values()].sort((left,right)=>left.command.localeCompare(right.command)||left.intent.localeCompare(right.intent))}function resolveContextIntentContract(command,intent,contracts=getActiveContextIntentContracts(),positionalArguments=[]){const normalizedCommand=command.trim().toLowerCase(),normalizedIntent=intent.trim().toLowerCase(),exact=contracts.find(entry=>entry.command===normalizedCommand&&entry.intent===normalizedIntent);if(exact)return{...exact,source:exact.source??"core"};const candidates=contracts.filter(entry=>entry.command===normalizedCommand).map(entry=>entry.intent);if(candidates.length===0)return;const suggestion=candidates.map(candidate=>{const rows=Array.from({length:normalizedIntent.length+1},(_,index)=>index);for(let candidateIndex=1;candidateIndex<=candidate.length;candidateIndex+=1){let previous=rows[0];rows[0]=candidateIndex;for(let intentIndex=1;intentIndex<=normalizedIntent.length;intentIndex+=1){const prior=rows[intentIndex];rows[intentIndex]=Math.min(rows[intentIndex]+1,rows[intentIndex-1]+1,previous+(candidate[candidateIndex-1]===normalizedIntent[intentIndex-1]?0:1)),previous=prior}}return{candidate,distance:rows[normalizedIntent.length]}}).sort((left,right)=>left.distance-right.distance||left.candidate.localeCompare(right.candidate))[0].candidate,attemptedArguments=[normalizedCommand,...positionalArguments,"--for",normalizedIntent],suggestedRetryArguments=[normalizedCommand,...positionalArguments,"--for",suggestion],suggestedCommand=renderPmCommand(suggestedRetryArguments);throw new PmCliError(`Unknown context intent "${normalizedIntent}" for ${normalizedCommand}. Did you mean "${suggestion}"?`,EXIT_CODE.USAGE,{code:"unknown_context_intent",reason:"unknown_intent",field:"for",flag:"--for",value:normalizedIntent,required:`Use a declared ${normalizedCommand} intent.`,why:"Intent names are command-local contracts and cannot be inferred from output section names.",nextSteps:[suggestedCommand],recovery:{recovery_mode:"compact",attempted_command:renderPmCommand(attemptedArguments),allowed_values:[...candidates].sort(),suggested_retry:suggestedCommand,suggested_retry_args:suggestedRetryArguments}})}const CONTEXT_INTENT_DEFAULT_APPLIERS={context:(projected,contract,explicitTokenBudget)=>{projected.section===void 0&&projected.depth===void 0&&(projected.section=contract.intent==="handoff"?["activity","progress","blockers"]:["hierarchy","blockers","activity"]),projected.depth===void 0&&(projected.depth=contract.intent==="handoff"?"deep":"standard");const tokenBudget=resolveIntentTokenBudget(projected.tokenBudget,contract.token_budget),budgetDerivedLimit=resolveIntentRowBudget("context",contract.intent,tokenBudget,explicitTokenBudget),requestedLimit=parsePositiveIntentTokenBudget(projected.limit),derivedLimit=String(requestedLimit===void 0?budgetDerivedLimit:Math.min(requestedLimit,budgetDerivedLimit));(projected.limit===void 0||requestedLimit!==void 0)&&(projected.limit=derivedLimit),projected.activityLimit===void 0&&(projected.activityLimit=derivedLimit)},get:projected=>{projected.depth===void 0&&projected.fields===void 0&&(projected.depth="standard")},list:(projected,contract,explicitTokenBudget)=>{projected.brief===void 0&&projected.compact===void 0&&projected.full===void 0&&projected.fields===void 0&&(projected.fields="id,title,status,type,priority,parent,assignee,risk,blocked_by");const tokenBudget=resolveIntentTokenBudget(projected.tokenBudget,contract.token_budget),budgetDerivedLimit=resolveIntentRowBudget("list",contract.intent,tokenBudget,explicitTokenBudget),requestedLimit=parsePositiveIntentTokenBudget(projected.limit);(projected.limit===void 0||requestedLimit!==void 0)&&(projected.limit=String(requestedLimit===void 0?budgetDerivedLimit:Math.min(requestedLimit,budgetDerivedLimit)))},next:projected=>{projected.readyOnly===void 0&&(projected.readyOnly=!0)},search:(projected,contract,explicitTokenBudget)=>{projected.compact===void 0&&projected.full===void 0&&projected.fields===void 0&&(projected.compact=!0);const tokenBudget=resolveIntentTokenBudget(projected.tokenBudget,contract.token_budget),budgetDerivedLimit=resolveIntentRowBudget("search",contract.intent,tokenBudget,explicitTokenBudget),requestedLimit=parsePositiveIntentTokenBudget(projected.limit);(projected.limit===void 0||requestedLimit!==void 0)&&(projected.limit=String(requestedLimit===void 0?budgetDerivedLimit:Math.min(requestedLimit,budgetDerivedLimit)))}};function applyContextIntentProjection(command,options,positionalArguments=[]){const tokenBudget=options.tokenBudget??options.token_budget;if(typeof options.for!="string"){if(tokenBudget!==void 0&&(command==="get"||command==="list"||command==="search"))throw new PmCliError("--token-budget requires a declared context intent selected with --for",EXIT_CODE.USAGE,{code:"missing_required_option",field:"for",required:"Select a context intent with --for when setting --token-budget.",why:"A token-budget override has no projection contract to constrain without a selected intent.",nextSteps:["Retry with --for <intent> --token-budget <n>, or omit --token-budget."]});if(options.tokenBudget!==void 0||options.token_budget===void 0)return options;const projected2={...options,tokenBudget};return delete projected2.token_budget,projected2}const contract=resolveContextIntentContract(command,options.for,void 0,positionalArguments),explicitTokenBudget=parsePositiveIntentTokenBudget(tokenBudget)!==void 0,projected={...options};return projected.tokenBudget===void 0&&tokenBudget!==void 0&&(projected.tokenBudget=tokenBudget),delete projected.token_budget,projected.tokenBudget===void 0&&(projected.tokenBudget=String(contract.token_budget)),CONTEXT_INTENT_DEFAULT_APPLIERS[command](projected,contract,explicitTokenBudget),projected}const CONTEXT_INTENT_DEGRADATIONS={context:"bounded_sections",get:"standard_item",list:"bounded_fields_and_rows",next:"bounded_ranked_rows",search:"bounded_ranked_rows"},MINIMUM_CONTEXT_INTENT_TOKEN_BUDGET=256;function compactContextIntentValue(value){return Array.isArray(value)?value.map(compactContextIntentValue):value!==null&&typeof value=="object"?Object.fromEntries(Object.entries(value).map(([key,entry])=>[key,compactContextIntentValue(entry)])):typeof value=="string"&&value.length>240?`${value.slice(0,240)}\u2026`:value}function parsePositiveIntentTokenBudget(value){const parsed=typeof value=="number"?value:typeof value=="string"&&/^\d+$/u.test(value.trim())?Number(value):Number.NaN;return Number.isSafeInteger(parsed)&&parsed>0?parsed:void 0}function resolveIntentTokenBudget(value,declaredBudget){const parsed=parsePositiveIntentTokenBudget(value);if(parsed===void 0)return declaredBudget;if(parsed<MINIMUM_CONTEXT_INTENT_TOKEN_BUDGET)throw new PmCliError(`Context intent token budget must be at least ${MINIMUM_CONTEXT_INTENT_TOKEN_BUDGET}`,EXIT_CODE.USAGE,{code:"invalid_argument_value",reason:"below_minimum",field:"tokenBudget",value:String(value),required:`Use an integer token budget of at least ${MINIMUM_CONTEXT_INTENT_TOKEN_BUDGET}.`,why:"Smaller ceilings cannot contain the minimum machine-readable intent receipt.",nextSteps:[`Retry with --token-budget ${MINIMUM_CONTEXT_INTENT_TOKEN_BUDGET} or omit the override.`]});return parsed}function resolveIntentRowBudget(command,intent,tokenBudget,explicitTokenBudget){if(command==="get"||command==="next")return;const contextOrient=command==="context"&&intent==="orient",overhead=command==="context"?contextOrient?1200:800:command==="list"?520:480,rowCost=command==="context"?contextOrient?600:500:16,calculatedLimit=Math.max(command==="context"?1:2,Math.floor((tokenBudget-overhead)/rowCost));return explicitTokenBudget?calculatedLimit:Math.min(command==="context"?20:100,calculatedLimit)}function updateContextIntentEstimate(projected,receipt){let measuredTokens=receipt.estimated_tokens;for(;;){receipt.estimated_tokens=measuredTokens;const nextMeasurement=Math.ceil(Buffer.byteLength(JSON.stringify(projected),"utf8")/4);if(nextMeasurement===measuredTokens)return;measuredTokens=nextMeasurement}}const CONTEXT_INTENT_ROW_KEYS={context:["high_level","low_level","blocked_fallback","recently_created","unparented","hierarchy","activity","blockers"],get:["children"],list:["items"],next:["ready","decision_needed","gate_needed","containers","blocked","held_by_others"],search:["items"]};function decodeContextIntentCursor(cursor){try{const parsed=JSON.parse(Buffer.from(cursor,"base64url").toString("utf8"));return typeof parsed.fingerprint!="string"||!Number.isSafeInteger(parsed.after_index)?void 0:{fingerprint:parsed.fingerprint,after_index:parsed.after_index,...typeof parsed.snapshot=="string"?{snapshot:parsed.snapshot}:{}}}catch{return}}function contextIntentRowId(row){if(row===null||typeof row!="object")return;if(typeof row.id=="string")return row.id;const nestedId=row.item?.id;return typeof nestedId=="string"?nestedId:void 0}function shrinkContextIntentRowsToBudget(projected,receipt,rows){let compacted=!1;for(;;){if(updateContextIntentEstimate(projected,receipt),receipt.estimated_tokens<=receipt.token_budget||rows.length<=1)return compacted;const rowBytes=Buffer.byteLength(JSON.stringify(rows),"utf8"),excessBytes=(receipt.estimated_tokens-receipt.token_budget)*4;rows.splice(-Math.min(rows.length-1,Math.max(1,Math.ceil(excessBytes/Math.max(1,Math.ceil(rowBytes/rows.length)))))),compacted=!0}}function compactPaginatedContextIntentRows(projected,receipt,options){const rows=projected.items,cursorContinuesExistingPage=typeof projected.next_cursor=="string",cursorSource=cursorContinuesExistingPage?projected.next_cursor:options.after;if(!Array.isArray(rows)||typeof cursorSource!="string")return!1;const cursorEnvelope=decodeContextIntentCursor(cursorSource);if(cursorEnvelope===void 0)return!1;const originalRowCount=rows.length,originalRows=[...rows];let compacted=!1;for(;;){if(compacted=shrinkContextIntentRowsToBudget(projected,receipt,rows)||compacted,!compacted)return!1;const lastId=contextIntentRowId(rows.at(-1));if(lastId===void 0)return rows.splice(0,rows.length,...originalRows),updateContextIntentEstimate(projected,receipt),!1;if(projected.next_cursor=encodeQueryCursor(cursorEnvelope.fingerprint,lastId,cursorContinuesExistingPage?cursorEnvelope.after_index-(originalRowCount-rows.length):cursorEnvelope.after_index+rows.length,cursorEnvelope.snapshot),updateContextIntentEstimate(projected,receipt),receipt.estimated_tokens<=receipt.token_budget||rows.length<=1)break}return typeof projected.count=="number"&&(projected.count=rows.length),typeof projected.applied_limit=="number"&&(projected.applied_limit=rows.length),!0}function compactContextIntentRows(command,projected,receipt,options){if(command==="list"||command==="search")return compactPaginatedContextIntentRows(projected,receipt,options);if(command!=="next"||typeof projected.next_cursor=="string")return!1;let compacted=!1;for(;;){if(updateContextIntentEstimate(projected,receipt),receipt.estimated_tokens<=receipt.token_budget)return compacted;const candidate=CONTEXT_INTENT_ROW_KEYS[command].map(key=>({key,rows:Array.isArray(projected[key])?projected[key]:[]})).filter(({rows})=>rows.length>0).sort((left,right)=>right.rows.length-left.rows.length||left.key.localeCompare(right.key))[0];if(candidate===void 0)return compacted;const retainedTotal=CONTEXT_INTENT_ROW_KEYS[command].reduce((total,key)=>total+(Array.isArray(projected[key])?projected[key].length:0),0);if(retainedTotal<=1)return compacted;const removableRows=Math.min(candidate.rows.length,retainedTotal-1),candidateBytes=Buffer.byteLength(JSON.stringify(candidate.rows),"utf8"),estimatedBytesPerRow=Math.max(1,Math.ceil(candidateBytes/candidate.rows.length)),excessBytes=(receipt.estimated_tokens-receipt.token_budget)*4,removalCount=Math.min(removableRows,Math.max(1,Math.ceil(excessBytes/estimatedBytesPerRow)));candidate.rows.splice(-removalCount,removalCount),compacted=!0}}function attachContextIntentReceipt(command,options,result){if(typeof options.for!="string")return result;const normalizedCommand=command.startsWith("list-")?"list":command;if(!(normalizedCommand in CONTEXT_INTENT_DEFAULT_APPLIERS))return result;const builtInCommand=normalizedCommand,contract=resolveContextIntentContract(builtInCommand,options.for),effectiveTokenBudget=resolveIntentTokenBudget(options.tokenBudget??options.token_budget,contract.token_budget),receipt={command:builtInCommand,intent:contract.intent,source:contract.source,included_field_groups:[...contract.included_field_groups],token_budget:effectiveTokenBudget,declared_token_budget:contract.token_budget,token_budget_override:effectiveTokenBudget-contract.token_budget,estimated_tokens:0,within_budget:!0,degradation:CONTEXT_INTENT_DEGRADATIONS[builtInCommand],declaration_feasible:!0,result_omitted:!1},resultWithDiagnostics={...result},budgetDerivedLimit=resolveIntentRowBudget(builtInCommand,contract.intent,receipt.token_budget,parsePositiveIntentTokenBudget(options.tokenBudget??options.token_budget)!==void 0);if(budgetDerivedLimit!==void 0){const effectiveLimit=parsePositiveIntentTokenBudget(options.limit),explicitLimitBinds=effectiveLimit!==void 0&&effectiveLimit<budgetDerivedLimit;receipt.budget_derived_limit=budgetDerivedLimit,receipt.binding_constraint=explicitLimitBinds?"explicit_limit":"token_budget",receipt.limit_reason=explicitLimitBinds?"The caller supplied a smaller row limit than the budget-derived ceiling.":"The selected intent token budget constrains the effective row ceiling.",resultWithDiagnostics.budget_derived_limit=budgetDerivedLimit}let projected={...resultWithDiagnostics,context_intent:receipt};return updateContextIntentEstimate(projected,receipt),receipt.estimated_tokens>receipt.token_budget&&(receipt.degradation="recursive_budget_compaction",projected={...compactContextIntentValue(resultWithDiagnostics),context_intent:receipt},updateContextIntentEstimate(projected,receipt)),receipt.estimated_tokens>receipt.token_budget&&compactContextIntentRows(builtInCommand,projected,receipt,options)&&(receipt.degradation="budget_row_compaction",updateContextIntentEstimate(projected,receipt)),receipt.declaration_feasible=receipt.estimated_tokens<=receipt.declared_token_budget,receipt.estimated_tokens>receipt.token_budget&&(receipt.degradation="budget_receipt_only",receipt.result_omitted=!0,receipt.within_budget=!1,projected={budget_exceeded:{omitted_result:!0,reason:receipt.token_budget_override===0?"declared_budget_infeasible":"effective_budget_infeasible",restore_with:buildContextIntentRecoveryCommand(command,builtInCommand,contract.intent,receipt,resultWithDiagnostics)},context_intent:receipt}),projected}function collapseContinuationMetadata(options,result){if(typeof options.after!="string"||options.after.length===0)return result;const fingerprint=decodeContextIntentCursor(options.after)?.fingerprint??"opaque_cursor",projected={...result};for(const key of["applied_limit","completeness","context_intent","count","filters","has_more","now","omission_receipt","projection","row_contract","sorting","total","truncated"])delete projected[key];return projected.continuation_contract={fingerprint,metadata:"reference",restore_with:"omit --after"},projected}function isOutputRecord(value){return value!==null&&typeof value=="object"&&!Array.isArray(value)}function buildContextIntentRecoveryCommand(command,builtInCommand,intent,receipt,result){const recoveryTarget=builtInCommand==="get"&&isOutputRecord(result.item)&&typeof result.item.id=="string"?result.item.id:builtInCommand==="search"&&typeof result.query=="string"?result.query:void 0,recoveryPositional=recoveryTarget===void 0?"":` '${recoveryTarget.replaceAll("'",`'"'"'`)}'`,boundedRowLimit=builtInCommand==="get"?"":` --limit ${receipt.budget_derived_limit??1}`;return`pm ${command}${recoveryPositional} --for ${intent} --token-budget ${Math.ceil(receipt.estimated_tokens/100)*100}${boundedRowLimit}`}function receiptEstimate(value,field){if(isOutputRecord(value))return typeof value[field]=="number"?value[field]:void 0}function stabilizeSuppressedRowContractReceipts(result,options){let finalized=result;for(let iteration=0;iteration<8;iteration+=1){const previousContextEstimate=receiptEstimate(finalized.context_intent,"estimated_tokens"),previousReadEstimate=receiptEstimate(finalized.read_output,"estimated_tokens"),previousSessionEstimate=receiptEstimate(finalized.read_session,"spent_this_call_tokens");if(isOutputRecord(finalized.context_intent)&&updateContextIntentEstimate(finalized,finalized.context_intent),finalized=stabilizeReadOutputReceiptEstimates(finalized,options),receiptEstimate(finalized.context_intent,"estimated_tokens")===previousContextEstimate&&receiptEstimate(finalized.read_output,"estimated_tokens")===previousReadEstimate&&receiptEstimate(finalized.read_session,"spent_this_call_tokens")===previousSessionEstimate)break}return finalized}function attachReadOutputContracts(command,options,result){const disclosedResult=attachOutputOmissionReceipt(command,attachExtensionReadOutputRows(command??"",result)),projected=typeof disclosedResult=="object"&&disclosedResult!==null&&!Array.isArray(disclosedResult)?applyReadOutputDimensions(command??"",{...options,outputRowContract:options.outputRowContract===!0||options.output_row_contract===!0},collapseContinuationMetadata(options,attachContextIntentReceipt(command??"",options,disclosedResult))):disclosedResult;if(propagateContextUsageServingReceipt(result,projected),options.outputRowContract===!0||options.output_row_contract===!0||typeof projected!="object"||projected===null||Array.isArray(projected)||!Object.hasOwn(projected,"row_contract"))return projected;const withoutDiscoveryMetadata=Object.fromEntries(Object.entries(projected).filter(([key])=>key!=="row_contract"));Object.defineProperty(withoutDiscoveryMetadata,"row_contract",{value:projected.row_contract,enumerable:!1,configurable:!0});const suppressed=stabilizeSuppressedRowContractReceipts(withoutDiscoveryMetadata,options);return delete suppressed.row_contract,propagateContextUsageServingReceipt(projected,suppressed),suppressed}export{PM_CONTEXT_INTENT_CONTRACTS,applyContextIntentProjection,attachContextIntentReceipt,attachReadOutputContracts,composeContextIntentContracts,contextIntentRowId,decodeContextIntentCursor,getActiveContextIntentContracts,resolveContextIntentContract,runWithContextIntentContracts};
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]="6a604d54-5425-5ae7-8f20-9d5f1d33c20c")}catch{}})();import{AsyncLocalStorage}from"node:async_hooks";import{attachExtensionReadOutputRows}from"./read-output/extension.js";import{renderPmCommand}from"./command-line.js";import{attachOutputOmissionReceipt}from"./output-projection.js";import{encodeQueryCursor}from"./pagination.js";import{applyReadOutputDimensions,stabilizeReadOutputReceiptEstimates}from"./read-output-contracts.js";import{propagateContextUsageServingReceipt}from"./context-usage.js";import{EXIT_CODE}from"../core/shared/constants.js";import{PmCliError}from"../core/shared/errors.js";import{unicodeSafePrefix}from"../core/shared/text-normalization.js";const PM_CONTEXT_INTENT_CONTRACTS=Object.freeze([{command:"context",intent:"orient",description:"Bounded active hierarchy, ownership, blockers, and recent progress.",included_field_groups:["summary","focus","hierarchy","blockers","activity"],token_budget:3e3,source:"core"},{command:"context",intent:"handoff",description:"Active ownership, evidence, decisions, and immediate continuation context.",included_field_groups:["summary","focus","in_progress","decisions","activity"],token_budget:2200,source:"core"},{command:"get",intent:"inspect",description:"Standard-depth item metadata, relationships, evidence, and lifecycle state.",included_field_groups:["item","children","claim_state","linked"],token_budget:3200,source:"core"},{command:"list",intent:"triage",description:"A budget-derived page of compact governance, ownership, priority, and blocker rows for triage.",included_field_groups:["identity","governance","ownership","dependencies"],token_budget:3200,source:"core"},{command:"next",intent:"execute",description:"The highest-ranked actionable work with concise ranking evidence.",included_field_groups:["recommended"],token_budget:1200,source:"core"},{command:"search",intent:"discover",description:"A budget-derived page of ranked canonical lineage candidates with compact match evidence.",included_field_groups:["identity","status","lineage","match"],token_budget:1800,source:"core"}]),activeContextIntentContracts=new AsyncLocalStorage;function getActiveContextIntentContracts(){return activeContextIntentContracts.getStore()??PM_CONTEXT_INTENT_CONTRACTS}function runWithContextIntentContracts(layers,run){return activeContextIntentContracts.run(composeContextIntentContracts(layers.workspaceContracts,layers.packageContracts),run)}function normalizeContextIntentDeclaration(declaration,source){const command=declaration.command.trim().toLowerCase(),intent=declaration.intent.trim().toLowerCase(),key=`${command}:${intent}`;if(!/^[a-z0-9][a-z0-9-]*$/.test(command)||!/^[a-z0-9][a-z0-9-]*$/.test(intent))throw new TypeError(`Invalid context intent command or name: ${key}`);if(declaration.description.trim().length===0)throw new TypeError(`Context intent ${key} requires a non-empty description`);if(!Number.isSafeInteger(declaration.token_budget)||declaration.token_budget<=0)throw new TypeError(`Context intent ${key} requires a positive integer token_budget`);const includedFieldGroups=[...new Set(declaration.included_field_groups.map(field=>field.trim()).filter(Boolean))];if(includedFieldGroups.length===0)throw new TypeError(`Context intent ${key} requires included_field_groups`);return{command,intent,description:declaration.description.trim(),included_field_groups:includedFieldGroups,token_budget:declaration.token_budget,source}}function composeContextIntentContracts(workspaceContracts=[],packageContracts=[]){const layers=[{source:"core",contracts:PM_CONTEXT_INTENT_CONTRACTS,allowOverride:!1},{source:"package",contracts:packageContracts,allowOverride:!1},{source:"workspace",contracts:workspaceContracts,allowOverride:!0}],composed=new Map,keysSeenWithinLayer=new Set;for(const layer of layers){keysSeenWithinLayer.clear();for(const declaration of layer.contracts){const normalized=normalizeContextIntentDeclaration(declaration,layer.source),key=`${normalized.command}:${normalized.intent}`;if(keysSeenWithinLayer.has(key))throw new TypeError(`Duplicate context intent declaration: ${key}`);if(keysSeenWithinLayer.add(key),!layer.allowOverride&&composed.has(key))throw new TypeError(`Duplicate context intent declaration: ${key}`);composed.set(key,normalized)}}return[...composed.values()].sort((left,right)=>left.command.localeCompare(right.command)||left.intent.localeCompare(right.intent))}function resolveContextIntentContract(command,intent,contracts=getActiveContextIntentContracts(),positionalArguments=[]){const normalizedCommand=command.trim().toLowerCase(),normalizedIntent=intent.trim().toLowerCase(),exact=contracts.find(entry=>entry.command===normalizedCommand&&entry.intent===normalizedIntent);if(exact)return{...exact,source:exact.source??"core"};const candidates=contracts.filter(entry=>entry.command===normalizedCommand).map(entry=>entry.intent);if(candidates.length===0)return;const suggestion=candidates.map(candidate=>{const rows=Array.from({length:normalizedIntent.length+1},(_,index)=>index);for(let candidateIndex=1;candidateIndex<=candidate.length;candidateIndex+=1){let previous=rows[0];rows[0]=candidateIndex;for(let intentIndex=1;intentIndex<=normalizedIntent.length;intentIndex+=1){const prior=rows[intentIndex];rows[intentIndex]=Math.min(rows[intentIndex]+1,rows[intentIndex-1]+1,previous+(candidate[candidateIndex-1]===normalizedIntent[intentIndex-1]?0:1)),previous=prior}}return{candidate,distance:rows[normalizedIntent.length]}}).sort((left,right)=>left.distance-right.distance||left.candidate.localeCompare(right.candidate))[0].candidate,attemptedArguments=[normalizedCommand,...positionalArguments,"--for",normalizedIntent],suggestedRetryArguments=[normalizedCommand,...positionalArguments,"--for",suggestion],suggestedCommand=renderPmCommand(suggestedRetryArguments);throw new PmCliError(`Unknown context intent "${normalizedIntent}" for ${normalizedCommand}. Did you mean "${suggestion}"?`,EXIT_CODE.USAGE,{code:"unknown_context_intent",reason:"unknown_intent",field:"for",flag:"--for",value:normalizedIntent,required:`Use a declared ${normalizedCommand} intent.`,why:"Intent names are command-local contracts and cannot be inferred from output section names.",nextSteps:[suggestedCommand],recovery:{recovery_mode:"compact",attempted_command:renderPmCommand(attemptedArguments),allowed_values:[...candidates].sort(),suggested_retry:suggestedCommand,suggested_retry_args:suggestedRetryArguments}})}const CONTEXT_INTENT_DEFAULT_APPLIERS={context:(projected,contract,explicitTokenBudget)=>{projected.section===void 0&&projected.depth===void 0&&(projected.section=contract.intent==="handoff"?["activity","progress","blockers"]:["hierarchy","blockers","activity"]),projected.depth===void 0&&(projected.depth=contract.intent==="handoff"?"deep":"standard");const tokenBudget=resolveIntentTokenBudget(projected.tokenBudget,contract.token_budget),budgetDerivedLimit=resolveIntentRowBudget("context",contract.intent,tokenBudget,explicitTokenBudget),requestedLimit=parsePositiveIntentTokenBudget(projected.limit),derivedLimit=String(requestedLimit===void 0?budgetDerivedLimit:Math.min(requestedLimit,budgetDerivedLimit));(projected.limit===void 0||requestedLimit!==void 0)&&(projected.limit=derivedLimit),projected.activityLimit===void 0&&(projected.activityLimit=derivedLimit)},get:projected=>{projected.depth===void 0&&projected.fields===void 0&&(projected.depth="standard")},list:(projected,contract,explicitTokenBudget)=>{projected.brief===void 0&&projected.compact===void 0&&projected.full===void 0&&projected.fields===void 0&&(projected.fields="id,title,status,type,priority,parent,assignee,risk,blocked_by");const tokenBudget=resolveIntentTokenBudget(projected.tokenBudget,contract.token_budget),budgetDerivedLimit=resolveIntentRowBudget("list",contract.intent,tokenBudget,explicitTokenBudget),requestedLimit=parsePositiveIntentTokenBudget(projected.limit);(projected.limit===void 0||requestedLimit!==void 0)&&(projected.limit=String(requestedLimit===void 0?budgetDerivedLimit:Math.min(requestedLimit,budgetDerivedLimit)))},next:projected=>{projected.readyOnly===void 0&&(projected.readyOnly=!0)},search:(projected,contract,explicitTokenBudget)=>{projected.compact===void 0&&projected.full===void 0&&projected.fields===void 0&&(projected.compact=!0);const tokenBudget=resolveIntentTokenBudget(projected.tokenBudget,contract.token_budget),budgetDerivedLimit=resolveIntentRowBudget("search",contract.intent,tokenBudget,explicitTokenBudget),requestedLimit=parsePositiveIntentTokenBudget(projected.limit);(projected.limit===void 0||requestedLimit!==void 0)&&(projected.limit=String(requestedLimit===void 0?budgetDerivedLimit:Math.min(requestedLimit,budgetDerivedLimit)))}};function applyContextIntentProjection(command,options,positionalArguments=[]){const tokenBudget=options.tokenBudget??options.token_budget;if(typeof options.for!="string"){if(tokenBudget!==void 0&&(command==="get"||command==="list"||command==="search"))throw new PmCliError("--token-budget requires a declared context intent selected with --for",EXIT_CODE.USAGE,{code:"missing_required_option",field:"for",required:"Select a context intent with --for when setting --token-budget.",why:"A token-budget override has no projection contract to constrain without a selected intent.",nextSteps:["Retry with --for <intent> --token-budget <n>, or omit --token-budget."]});if(options.tokenBudget!==void 0||options.token_budget===void 0)return options;const projected2={...options,tokenBudget};return delete projected2.token_budget,projected2}const contract=resolveContextIntentContract(command,options.for,void 0,positionalArguments),explicitTokenBudget=parsePositiveIntentTokenBudget(tokenBudget)!==void 0,projected={...options};return projected.tokenBudget===void 0&&tokenBudget!==void 0&&(projected.tokenBudget=tokenBudget),delete projected.token_budget,projected.tokenBudget===void 0&&(projected.tokenBudget=String(contract.token_budget)),CONTEXT_INTENT_DEFAULT_APPLIERS[command](projected,contract,explicitTokenBudget),projected}const CONTEXT_INTENT_DEGRADATIONS={context:"bounded_sections",get:"standard_item",list:"bounded_fields_and_rows",next:"bounded_ranked_rows",search:"bounded_ranked_rows"},MINIMUM_CONTEXT_INTENT_TOKEN_BUDGET=256;function compactContextIntentValue(value){return Array.isArray(value)?value.map(compactContextIntentValue):value!==null&&typeof value=="object"?Object.fromEntries(Object.entries(value).map(([key,entry])=>[key,compactContextIntentValue(entry)])):typeof value=="string"&&value.length>240?`${unicodeSafePrefix(value,240)}\u2026`:value}function parsePositiveIntentTokenBudget(value){const parsed=typeof value=="number"?value:typeof value=="string"&&/^\d+$/u.test(value.trim())?Number(value):Number.NaN;return Number.isSafeInteger(parsed)&&parsed>0?parsed:void 0}function resolveIntentTokenBudget(value,declaredBudget){const parsed=parsePositiveIntentTokenBudget(value);if(parsed===void 0)return declaredBudget;if(parsed<MINIMUM_CONTEXT_INTENT_TOKEN_BUDGET)throw new PmCliError(`Context intent token budget must be at least ${MINIMUM_CONTEXT_INTENT_TOKEN_BUDGET}`,EXIT_CODE.USAGE,{code:"invalid_argument_value",reason:"below_minimum",field:"tokenBudget",value:String(value),required:`Use an integer token budget of at least ${MINIMUM_CONTEXT_INTENT_TOKEN_BUDGET}.`,why:"Smaller ceilings cannot contain the minimum machine-readable intent receipt.",nextSteps:[`Retry with --token-budget ${MINIMUM_CONTEXT_INTENT_TOKEN_BUDGET} or omit the override.`]});return parsed}function resolveIntentRowBudget(command,intent,tokenBudget,explicitTokenBudget){if(command==="get"||command==="next")return;const contextOrient=command==="context"&&intent==="orient",overhead=command==="context"?contextOrient?1200:800:command==="list"?520:480,rowCost=command==="context"?contextOrient?600:500:16,calculatedLimit=Math.max(command==="context"?1:2,Math.floor((tokenBudget-overhead)/rowCost));return explicitTokenBudget?calculatedLimit:Math.min(command==="context"?20:100,calculatedLimit)}function updateContextIntentEstimate(projected,receipt){let measuredTokens=receipt.estimated_tokens;for(;;){receipt.estimated_tokens=measuredTokens;const nextMeasurement=Math.ceil(Buffer.byteLength(JSON.stringify(projected),"utf8")/4);if(nextMeasurement===measuredTokens)return;measuredTokens=nextMeasurement}}const CONTEXT_INTENT_ROW_KEYS={context:["high_level","low_level","blocked_fallback","recently_created","unparented","hierarchy","activity","blockers"],get:["children"],list:["items"],next:["ready","decision_needed","gate_needed","containers","blocked","held_by_others"],search:["items"]};function decodeContextIntentCursor(cursor){try{const parsed=JSON.parse(Buffer.from(cursor,"base64url").toString("utf8"));return typeof parsed.fingerprint!="string"||!Number.isSafeInteger(parsed.after_index)?void 0:{fingerprint:parsed.fingerprint,after_index:parsed.after_index,...typeof parsed.snapshot=="string"?{snapshot:parsed.snapshot}:{}}}catch{return}}function contextIntentRowId(row){if(row===null||typeof row!="object")return;if(typeof row.id=="string")return row.id;const nestedId=row.item?.id;return typeof nestedId=="string"?nestedId:void 0}function shrinkContextIntentRowsToBudget(projected,receipt,rows){let compacted=!1;for(;;){if(updateContextIntentEstimate(projected,receipt),receipt.estimated_tokens<=receipt.token_budget||rows.length<=1)return compacted;const rowBytes=Buffer.byteLength(JSON.stringify(rows),"utf8"),excessBytes=(receipt.estimated_tokens-receipt.token_budget)*4;rows.splice(-Math.min(rows.length-1,Math.max(1,Math.ceil(excessBytes/Math.max(1,Math.ceil(rowBytes/rows.length)))))),compacted=!0}}function compactPaginatedContextIntentRows(projected,receipt,options){const rows=projected.items,cursorContinuesExistingPage=typeof projected.next_cursor=="string",cursorSource=cursorContinuesExistingPage?projected.next_cursor:options.after;if(!Array.isArray(rows)||typeof cursorSource!="string")return!1;const cursorEnvelope=decodeContextIntentCursor(cursorSource);if(cursorEnvelope===void 0)return!1;const originalRowCount=rows.length,originalRows=[...rows];let compacted=!1;for(;;){if(compacted=shrinkContextIntentRowsToBudget(projected,receipt,rows)||compacted,!compacted)return!1;const lastId=contextIntentRowId(rows.at(-1));if(lastId===void 0)return rows.splice(0,rows.length,...originalRows),updateContextIntentEstimate(projected,receipt),!1;if(projected.next_cursor=encodeQueryCursor(cursorEnvelope.fingerprint,lastId,cursorContinuesExistingPage?cursorEnvelope.after_index-(originalRowCount-rows.length):cursorEnvelope.after_index+rows.length,cursorEnvelope.snapshot),updateContextIntentEstimate(projected,receipt),receipt.estimated_tokens<=receipt.token_budget||rows.length<=1)break}return typeof projected.count=="number"&&(projected.count=rows.length),typeof projected.applied_limit=="number"&&(projected.applied_limit=rows.length),!0}function compactContextIntentRows(command,projected,receipt,options){if(command==="list"||command==="search")return compactPaginatedContextIntentRows(projected,receipt,options);if(command!=="next"||typeof projected.next_cursor=="string")return!1;let compacted=!1;for(;;){if(updateContextIntentEstimate(projected,receipt),receipt.estimated_tokens<=receipt.token_budget)return compacted;const candidate=CONTEXT_INTENT_ROW_KEYS[command].map(key=>({key,rows:Array.isArray(projected[key])?projected[key]:[]})).filter(({rows})=>rows.length>0).sort((left,right)=>right.rows.length-left.rows.length||left.key.localeCompare(right.key))[0];if(candidate===void 0)return compacted;const retainedTotal=CONTEXT_INTENT_ROW_KEYS[command].reduce((total,key)=>total+(Array.isArray(projected[key])?projected[key].length:0),0);if(retainedTotal<=1)return compacted;const removableRows=Math.min(candidate.rows.length,retainedTotal-1),candidateBytes=Buffer.byteLength(JSON.stringify(candidate.rows),"utf8"),estimatedBytesPerRow=Math.max(1,Math.ceil(candidateBytes/candidate.rows.length)),excessBytes=(receipt.estimated_tokens-receipt.token_budget)*4,removalCount=Math.min(removableRows,Math.max(1,Math.ceil(excessBytes/estimatedBytesPerRow)));candidate.rows.splice(-removalCount,removalCount),compacted=!0}}function attachContextIntentReceipt(command,options,result){if(typeof options.for!="string")return result;const normalizedCommand=command.startsWith("list-")?"list":command;if(!(normalizedCommand in CONTEXT_INTENT_DEFAULT_APPLIERS))return result;const builtInCommand=normalizedCommand,contract=resolveContextIntentContract(builtInCommand,options.for),effectiveTokenBudget=resolveIntentTokenBudget(options.tokenBudget??options.token_budget,contract.token_budget),receipt={command:builtInCommand,intent:contract.intent,source:contract.source,included_field_groups:[...contract.included_field_groups],token_budget:effectiveTokenBudget,declared_token_budget:contract.token_budget,token_budget_override:effectiveTokenBudget-contract.token_budget,estimated_tokens:0,within_budget:!0,degradation:CONTEXT_INTENT_DEGRADATIONS[builtInCommand],declaration_feasible:!0,result_omitted:!1},resultWithDiagnostics={...result},budgetDerivedLimit=resolveIntentRowBudget(builtInCommand,contract.intent,receipt.token_budget,parsePositiveIntentTokenBudget(options.tokenBudget??options.token_budget)!==void 0);if(budgetDerivedLimit!==void 0){const effectiveLimit=parsePositiveIntentTokenBudget(options.limit),explicitLimitBinds=effectiveLimit!==void 0&&effectiveLimit<budgetDerivedLimit;receipt.budget_derived_limit=budgetDerivedLimit,receipt.binding_constraint=explicitLimitBinds?"explicit_limit":"token_budget",receipt.limit_reason=explicitLimitBinds?"The caller supplied a smaller row limit than the budget-derived ceiling.":"The selected intent token budget constrains the effective row ceiling.",resultWithDiagnostics.budget_derived_limit=budgetDerivedLimit}let projected={...resultWithDiagnostics,context_intent:receipt};return updateContextIntentEstimate(projected,receipt),receipt.estimated_tokens>receipt.token_budget&&(receipt.degradation="recursive_budget_compaction",projected={...compactContextIntentValue(resultWithDiagnostics),context_intent:receipt},updateContextIntentEstimate(projected,receipt)),receipt.estimated_tokens>receipt.token_budget&&compactContextIntentRows(builtInCommand,projected,receipt,options)&&(receipt.degradation="budget_row_compaction",updateContextIntentEstimate(projected,receipt)),receipt.declaration_feasible=receipt.estimated_tokens<=receipt.declared_token_budget,receipt.estimated_tokens>receipt.token_budget&&(receipt.degradation="budget_receipt_only",receipt.result_omitted=!0,receipt.within_budget=!1,projected={budget_exceeded:{omitted_result:!0,reason:receipt.token_budget_override===0?"declared_budget_infeasible":"effective_budget_infeasible",restore_with:buildContextIntentRecoveryCommand(command,builtInCommand,contract.intent,receipt,resultWithDiagnostics)},context_intent:receipt}),projected}function collapseContinuationMetadata(options,result){if(typeof options.after!="string"||options.after.length===0)return result;const fingerprint=decodeContextIntentCursor(options.after)?.fingerprint??"opaque_cursor",projected={...result};for(const key of["applied_limit","completeness","context_intent","count","filters","has_more","now","omission_receipt","projection","row_contract","sorting","total","truncated"])delete projected[key];return projected.continuation_contract={fingerprint,metadata:"reference",restore_with:"omit --after"},projected}function isOutputRecord(value){return value!==null&&typeof value=="object"&&!Array.isArray(value)}function buildContextIntentRecoveryCommand(command,builtInCommand,intent,receipt,result){const recoveryTarget=builtInCommand==="get"&&isOutputRecord(result.item)&&typeof result.item.id=="string"?result.item.id:builtInCommand==="search"&&typeof result.query=="string"?result.query:void 0,recoveryPositional=recoveryTarget===void 0?"":` '${recoveryTarget.replaceAll("'",`'"'"'`)}'`,boundedRowLimit=builtInCommand==="get"?"":` --limit ${receipt.budget_derived_limit??1}`;return`pm ${command}${recoveryPositional} --for ${intent} --token-budget ${Math.ceil(receipt.estimated_tokens/100)*100}${boundedRowLimit}`}function receiptEstimate(value,field){if(isOutputRecord(value))return typeof value[field]=="number"?value[field]:void 0}function stabilizeSuppressedRowContractReceipts(result,options){let finalized=result;for(let iteration=0;iteration<8;iteration+=1){const previousContextEstimate=receiptEstimate(finalized.context_intent,"estimated_tokens"),previousReadEstimate=receiptEstimate(finalized.read_output,"estimated_tokens"),previousSessionEstimate=receiptEstimate(finalized.read_session,"spent_this_call_tokens");if(isOutputRecord(finalized.context_intent)&&updateContextIntentEstimate(finalized,finalized.context_intent),finalized=stabilizeReadOutputReceiptEstimates(finalized,options),receiptEstimate(finalized.context_intent,"estimated_tokens")===previousContextEstimate&&receiptEstimate(finalized.read_output,"estimated_tokens")===previousReadEstimate&&receiptEstimate(finalized.read_session,"spent_this_call_tokens")===previousSessionEstimate)break}return finalized}function attachReadOutputContracts(command,options,result){const disclosedResult=attachOutputOmissionReceipt(command,attachExtensionReadOutputRows(command??"",result)),projected=typeof disclosedResult=="object"&&disclosedResult!==null&&!Array.isArray(disclosedResult)?applyReadOutputDimensions(command??"",{...options,outputRowContract:options.outputRowContract===!0||options.output_row_contract===!0},collapseContinuationMetadata(options,attachContextIntentReceipt(command??"",options,disclosedResult))):disclosedResult;if(propagateContextUsageServingReceipt(result,projected),options.outputRowContract===!0||options.output_row_contract===!0||typeof projected!="object"||projected===null||Array.isArray(projected)||!Object.hasOwn(projected,"row_contract"))return projected;const withoutDiscoveryMetadata=Object.fromEntries(Object.entries(projected).filter(([key])=>key!=="row_contract"));Object.defineProperty(withoutDiscoveryMetadata,"row_contract",{value:projected.row_contract,enumerable:!1,configurable:!0});const suppressed=stabilizeSuppressedRowContractReceipts(withoutDiscoveryMetadata,options);return delete suppressed.row_contract,propagateContextUsageServingReceipt(projected,suppressed),suppressed}export{PM_CONTEXT_INTENT_CONTRACTS,applyContextIntentProjection,attachContextIntentReceipt,attachReadOutputContracts,composeContextIntentContracts,contextIntentRowId,decodeContextIntentCursor,getActiveContextIntentContracts,resolveContextIntentContract,runWithContextIntentContracts};
2
2
  //# sourceMappingURL=context-intent-contracts.js.map
@@ -1,27 +1,27 @@
1
- import { type PmContextIntentContract, type PmContextIntentRuntimeLayers } from "./context-intent-contracts.js";
1
+ import { type PmContextIntentContract,type PmContextIntentRuntimeLayers } from "./context-intent-contracts.js";
2
2
  /** Conventional workspace declaration file relative to the tracker root. */
3
3
  export declare const PM_CONTEXT_INTENTS_FILE = "context-intents.json";
4
4
  /** Minimal active-package shape needed to discover declarative intent exports. */
5
5
  export interface PmContextIntentPackageModule {
6
6
  /** Stable package name used in diagnostics. */
7
- name: string;
7
+ name:string;
8
8
  /** Loaded extension module, which may export contextIntents. */
9
- module: unknown;
9
+ module:unknown;
10
10
  }
11
11
  /** Inputs for discovering workspace and active-package intent declarations. */
12
12
  export interface PmContextIntentDiscoveryOptions {
13
13
  /** Resolved .agents/pm tracker root. */
14
- pmRoot: string;
14
+ pmRoot:string;
15
15
  /** Active package modules in deterministic activation order. */
16
- packages?: readonly PmContextIntentPackageModule[];
16
+ packages?:readonly PmContextIntentPackageModule[];
17
17
  }
18
18
  /** Parse a JSON/module declaration array and reject malformed entries before composition. */
19
- export declare function parseContextIntentDeclarations(value: unknown, sourceLabel: string): PmContextIntentContract[];
19
+ export declare function parseContextIntentDeclarations(value:unknown,sourceLabel:string):PmContextIntentContract[];
20
20
  /** Read optional workspace declarations from .agents/pm/context-intents.json. */
21
- export declare function readWorkspaceContextIntentContracts(pmRoot: string): Promise<PmContextIntentContract[]>;
21
+ export declare function readWorkspaceContextIntentContracts(pmRoot:string):Promise<PmContextIntentContract[]>;
22
22
  /** Collect contextIntents exports from active package modules. */
23
- export declare function collectPackageContextIntentContracts(packages: readonly PmContextIntentPackageModule[]): PmContextIntentContract[];
23
+ export declare function collectPackageContextIntentContracts(packages:readonly PmContextIntentPackageModule[]):PmContextIntentContract[];
24
24
  /** Load both runtime declaration layers without changing the active request scope. */
25
- export declare function loadContextIntentRuntimeLayers(options: PmContextIntentDiscoveryOptions): Promise<PmContextIntentRuntimeLayers>;
25
+ export declare function loadContextIntentRuntimeLayers(options:PmContextIntentDiscoveryOptions):Promise<PmContextIntentRuntimeLayers>;
26
26
  /** Discover declarations and execute one request with isolated composed intents. */
27
- export declare function runWithDiscoveredContextIntentContracts<T>(options: PmContextIntentDiscoveryOptions, run: () => T): Promise<Awaited<T>>;
27
+ export declare function runWithDiscoveredContextIntentContracts<T>(options:PmContextIntentDiscoveryOptions,run:() => T):Promise<Awaited<T>>;
@@ -8,18 +8,18 @@
8
8
  /** Detail levels a context candidate may occupy inside a bounded packet. */
9
9
  export type ContextProjectionLevel = "identity" | "summary" | "full";
10
10
  /** Stable intent-keyed policies for risk, diversity, and safety-aware packing. */
11
- export declare const CONTEXT_PACKING_PROFILES: {
12
- readonly balanced: {
13
- readonly redundancyPenalty: 0.35;
14
- readonly uncertaintyPenalty: 0.2;
11
+ export declare const CONTEXT_PACKING_PROFILES:{
12
+ readonly balanced:{
13
+ readonly redundancyPenalty:0.35;
14
+ readonly uncertaintyPenalty:0.2;
15
15
  };
16
- readonly context: {
17
- readonly redundancyPenalty: 0.45;
18
- readonly uncertaintyPenalty: 0.15;
16
+ readonly context:{
17
+ readonly redundancyPenalty:0.45;
18
+ readonly uncertaintyPenalty:0.15;
19
19
  };
20
- readonly next: {
21
- readonly redundancyPenalty: 0.25;
22
- readonly uncertaintyPenalty: 0.3;
20
+ readonly next:{
21
+ readonly redundancyPenalty:0.25;
22
+ readonly uncertaintyPenalty:0.3;
23
23
  };
24
24
  };
25
25
  /** Built-in task-set profiles selected from the triggering command intent. */
@@ -27,83 +27,83 @@ export type ContextPackingProfile = keyof typeof CONTEXT_PACKING_PROFILES;
27
27
  /** Token costs for the monotone projection levels of one candidate. */
28
28
  export interface ContextProjectionCosts {
29
29
  /** Stable identity-only representation cost. */
30
- identity: number;
30
+ identity:number;
31
31
  /** Compact summary representation cost. */
32
- summary: number;
32
+ summary:number;
33
33
  /** Full representation cost. */
34
- full: number;
34
+ full:number;
35
35
  }
36
36
  /** One ranked candidate offered to the context packet optimizer. */
37
37
  export interface ContextPackingCandidate<TItem> {
38
38
  /** Stable candidate identifier. */
39
- id: string;
39
+ id:string;
40
40
  /** Caller-owned value returned unchanged for selected candidates. */
41
- item: TItem;
41
+ item:TItem;
42
42
  /** One-based relevance rank; lower is better. */
43
- rank: number;
43
+ rank:number;
44
44
  /** Normalized relevance score. */
45
- score: number;
45
+ score:number;
46
46
  /** Projection-specific token estimates. */
47
- token_costs: ContextProjectionCosts;
47
+ token_costs:ContextProjectionCosts;
48
48
  /** Candidates sharing a cluster compete through a redundancy penalty. */
49
- cluster?: string;
49
+ cluster?:string;
50
50
  /** Required anchors are admitted before optional candidates. */
51
- required?: boolean;
51
+ required?:boolean;
52
52
  /** Optional credible-width estimate used for risk-adjusted value. */
53
- uncertainty?: number;
53
+ uncertainty?:number;
54
54
  /** Optional lineage identity used to suppress superseded duplicates. */
55
- lineage?: string;
55
+ lineage?:string;
56
56
  }
57
57
  /** One selected candidate and the projection depth bought for it. */
58
58
  export interface PackedContextCandidate<TItem> extends ContextPackingCandidate<TItem> {
59
59
  /** Projection depth selected by the packer. */
60
- projection: ContextProjectionLevel;
60
+ projection:ContextProjectionLevel;
61
61
  /** Tokens charged to the packet. */
62
- tokens: number;
62
+ tokens:number;
63
63
  /** Risk- and redundancy-adjusted value used for selection. */
64
- marginal_value: number;
64
+ marginal_value:number;
65
65
  }
66
66
  /** Accounting and completeness metadata for one packed context packet. */
67
67
  export interface ContextPackingReport<TItem> {
68
68
  /** Selected candidates in deterministic relevance order. */
69
- included: PackedContextCandidate<TItem>[];
69
+ included:PackedContextCandidate<TItem>[];
70
70
  /** Ranked candidate identifiers omitted after projection degradation. */
71
- omitted_ids: string[];
71
+ omitted_ids:string[];
72
72
  /** Explicit packet token budget. */
73
- token_budget: number;
73
+ token_budget:number;
74
74
  /** Estimated tokens consumed by selected projections. */
75
- used_tokens: number;
75
+ used_tokens:number;
76
76
  /** Tokens left unspent. */
77
- remaining_tokens: number;
77
+ remaining_tokens:number;
78
78
  /** True when every candidate fit at full detail. */
79
- complete: boolean;
79
+ complete:boolean;
80
80
  /** Whether selection inspected every optional candidate before its deadline. */
81
- selection_complete: boolean;
81
+ selection_complete:boolean;
82
82
  /** Machine-readable reason selection stopped. */
83
- termination_reason: "exhausted" | "latency_budget";
83
+ termination_reason:"exhausted" | "latency_budget";
84
84
  /** Candidate comparisons completed by the bounded selector. */
85
- evaluated_candidates: number;
85
+ evaluated_candidates:number;
86
86
  /** Explicit selection latency budget, or null when unbounded. */
87
- latency_budget_ms: number | null;
87
+ latency_budget_ms:number | null;
88
88
  /** Stable task-set profile disclosed to downstream evaluation. */
89
- profile: ContextPackingProfile;
89
+ profile:ContextPackingProfile;
90
90
  /** Projection degradation order used by the optimizer. */
91
- degradation_ladder: ContextProjectionLevel[];
91
+ degradation_ladder:ContextProjectionLevel[];
92
92
  }
93
93
  /** Options controlling deterministic packet selection. */
94
94
  export interface PackContextCandidatesOptions {
95
95
  /** Maximum estimated tokens available to the packet. */
96
- tokenBudget: number;
96
+ tokenBudget:number;
97
97
  /** Task-set profile disclosed in the result envelope. */
98
- profile?: ContextPackingProfile;
98
+ profile?:ContextPackingProfile;
99
99
  /** Penalty applied when a cluster or lineage is already represented. */
100
- redundancyPenalty?: number;
100
+ redundancyPenalty?:number;
101
101
  /** Risk-aversion coefficient applied to candidate uncertainty. */
102
- uncertaintyPenalty?: number;
102
+ uncertaintyPenalty?:number;
103
103
  /** Maximum selector wall-clock time; required anchors remain mask-immune. */
104
- latencyBudgetMs?: number;
104
+ latencyBudgetMs?:number;
105
105
  /** Monotonic clock override for deterministic hosts and tests. */
106
- readClock?: () => number;
106
+ readClock?:() => number;
107
107
  }
108
108
  /**
109
109
  * Packs ranked candidates under an explicit token budget. Required anchors are
@@ -111,4 +111,4 @@ readClock?: () => number;
111
111
  * selected rows are upgraded from identity to summary to full detail. This
112
112
  * guarantees projection degradation happens before omission.
113
113
  */
114
- export declare function packContextCandidates<TItem>(candidates: readonly ContextPackingCandidate<TItem>[], options: PackContextCandidatesOptions): ContextPackingReport<TItem>;
114
+ export declare function packContextCandidates<TItem>(candidates:readonly ContextPackingCandidate<TItem>[],options:PackContextCandidatesOptions):ContextPackingReport<TItem>;