@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
@@ -109,8 +109,9 @@ pm close <item-id> "Acceptance criteria met; verification passed." --resolution
109
109
  pm release <item-id>
110
110
  ```
111
111
 
112
- If a warning close omitted evidence, use its `recovery.suggested_retry_args`
113
- to append an evidence update while preserving the original close event. See
112
+ If a successful warning close omitted evidence, use its `follow_up.suggested_command_args`
113
+ to append an evidence update while preserving the original close event. Failed closes
114
+ retain `recovery.suggested_retry_args`. See
114
115
  [Close Evidence Recovery](CLOSE_EVIDENCE_RECOVERY.md).
115
116
 
116
117
  For real subprocess tests, set `cwd`, `PM_PATH`, and `PM_GLOBAL_PATH` to the
@@ -180,6 +181,10 @@ Over MCP the mutation tools (`pm_create`/`pm_update`/`pm_append`/`pm_close`, and
180
181
 
181
182
  `pm create --parent <id>` fails fast when the parent cannot be found. Use `--allow-missing-parent` only for deliberate imports or staged backlog reconstruction.
182
183
 
184
+ To record many items at once (triage imports, review-thread capture, plan expansion), do not loop `pm create`: write one record per line and commit them in one workspace transaction with `pm item mutate --from items.jsonl --json` (`--dry-run` first). Records use `pm create` field names, `@row-<n>`/`@ref` references link records to each other, and `--upsert-key <field>` turns records that match an existing item into updates. `pm create many` refuses with this route.
185
+
186
+ The default transaction id derives from the exact document bytes, so even a formatting-only edit selects a new id. To replay a committed import, reuse its transaction id and keep the resolved mutation plan unchanged. For formatting-only edits, pass the original id explicitly with `--transaction-id <id>`; replay still requires the same resolved plan. See [Bulk creation](COMMANDS.md#bulk-creation-pm-create-many-route).
187
+
183
188
  ## Guide Routing for Agents
184
189
 
185
190
  Use the canonical [guide topic map](README.md#guide-topic-map) when local in-CLI documentation routing is useful.
@@ -187,10 +192,34 @@ Use the canonical [guide topic map](README.md#guide-topic-map) when local in-CLI
187
192
  ## Ownership Rules
188
193
 
189
194
  - Claim before heavy edits.
190
- - `pm claim <id>` can take over non-terminal work from another owner.
191
- - Use `--force` only for explicit override paths.
195
+ - `pm claim <id>` is an atomic test-and-set. A non-terminal item already held by a different principal refuses with `already_claimed_by`; the same principal re-claiming is a no-op.
196
+ - Pass `--if-available` to treat a held item as a skip (`skipped: true`, exit 0) instead of a failure, for example when several agents pull from one queue. The terminal check runs first, so a terminal item still refuses without `--force` even when `--if-available` is set.
197
+ - Use `--force` only for a coordinated takeover of another owner's claim; it is also required to claim terminal items, and to override stale locks when the `governance.force_required_for_stale_lock` policy is enabled (the `minimal` and custom governance presets can disable it). Never force a takeover without explicit approval.
192
198
  - Release when pausing, handing off, or after close.
193
199
 
200
+ ### Implementation-to-verification handoff
201
+
202
+ Tracked by [pm-gh1465](../.agents/pm/features/pm-gh1465.toon).
203
+ Projects define their own queues using the existing schema primitives:
204
+
205
+ ```bash
206
+ pm schema add-status review --role active --description "Implementation complete; awaiting verification"
207
+ pm release <item-id> --handoff review --message "Implemented X; verify with the linked regression"
208
+ pm list --status review
209
+ ```
210
+
211
+ Handoff requires a claimed, non-terminal item and an evidence message. It changes
212
+ the status and releases ownership in one history event, preserving workflow
213
+ transition and approval policies. It cannot be combined with `--pause` or target
214
+ the configured in-progress or a terminal status. The result includes `handoff`
215
+ with the source status, destination status, and evidence message. No fixed review
216
+ state is added to projects. `pm context` retains the queue's status while counting
217
+ it separately from in-progress work; use `pm list --status review` to select the
218
+ verification queue. A verifier can claim it, close with normal evidence, or use
219
+ `pm claim <item-id> --start` when rework begins. `pm item reopen` remains for
220
+ terminal items. SDK `client.release(id, { handoff: "review", message: "..." })`
221
+ and MCP release options use the same atomic transition.
222
+
194
223
  ## Reviewed Delivery Closeout
195
224
 
196
225
  Before closing repository defects, set `escape_class` and structured
@@ -1,13 +1,15 @@
1
1
  # Recovering missing close evidence
2
2
 
3
- Tracked by [pm-ub1ott](../.agents/pm/issues/pm-ub1ott.toon).
3
+ Tracked by [pm-ub1ott](../.agents/pm/issues/pm-ub1ott.toon) and
4
+ [pm-gh1464](../.agents/pm/issues/pm-gh1464.toon).
4
5
 
5
6
  `pm close --validate-close warn` can close an item while reporting missing
6
7
  resolution, expected outcome, or actual outcome. Its SDK result and compact CLI
7
- output now include `recovery.missing`, `suggested_retry`, and
8
- `suggested_retry_args` when evidence is incomplete. The argument vector selects
8
+ output include an optional `follow_up` with `kind: complete_close_evidence`,
9
+ `missing`, `suggested_command`, and `suggested_command_args` when evidence is
10
+ incomplete. The close succeeded; do not retry it. The argument vector selects
9
11
  the same tracker and uses `pm update` to add only the missing evidence fields.
10
- Use `recovery.suggested_retry_args` as the authoritative argument vector. Replace
12
+ Use `follow_up.suggested_command_args` as the authoritative argument vector. Replace
11
13
  each `<value>` with the observed outcome before executing it; retain its tracker
12
14
  selection and only the flags it supplies for missing fields. Do not add flags
13
15
  for evidence already present, because `pm update` would overwrite that evidence.
@@ -25,11 +27,18 @@ recovery when applicable. `--force` is reserved for an intentional repeated
25
27
  lifecycle transition. Adding evidence with `pm update` preserves the original
26
28
  close timestamp, close reason, and immutable history event, then appends a
27
29
  normal update event. It does not retroactively claim that evidence existed at
28
- the original close. Complete closes have no extra recovery payload.
30
+ the original close. Failed terminal retries retain `recovery.suggested_retry_args`;
31
+ successful closes never emit failure recovery. Complete closes have no follow-up.
29
32
 
30
33
  The update flags for the other missing fields are `--resolution` and
31
34
  `--expected-result`; include them only when the generated recovery requests them.
32
35
 
33
36
  For new work, include all three fields in the original close command so its
34
- immutable event contains the full evidence. Warning-mode recovery exists for
35
- incomplete historical or interrupted workflows.
37
+ immutable event contains the full evidence:
38
+
39
+ ```bash
40
+ pm close <item-id> "Delivered and verified" --resolution "What changed" \
41
+ --expected "Required outcome" --actual "Observed outcome" --validate-close warn
42
+ ```
43
+
44
+ Warning-mode follow-up exists for incomplete historical or interrupted workflows.
package/docs/COMMANDS.md CHANGED
@@ -336,14 +336,23 @@ pm eval --fail-under 0.6 --json # CI gate: exit non-zero when aggregate nDC
336
336
 
337
337
  ### Full results, totals, and bodies
338
338
 
339
- `pm list` returns every matched row when neither `--limit` nor `--offset` is set. Every JSON/TOON result has the same pagination envelope: `total` is the pre-pagination match count, `has_more` and `truncated` are booleans, and `next_cursor` is either the continuation token or `null`. `completeness` reports whether the corpus was `complete`, `partial`, or `unchecked` (derived-index page), with unreadable item/directory counts. Use `--strict-read` when omissions must fail the command. The `filters` object omits unset values instead of emitting null placeholders, keeping long-running agent context stable and lean. Pass `--no-truncate` to force the entire matched set and override any `--limit` in one call. `--all` selects every lifecycle status; combine the flags for an unbounded all-status audit:
339
+ `pm list` selects every matched row when neither `--limit` nor `--offset` is set; the default output budget can still bound delivery. Every JSON/TOON result has the same pagination envelope: `total` is the pre-pagination match count, `has_more` and `truncated` are booleans, and `next_cursor` is either the continuation token or `null`. `completeness` reports whether the corpus was `complete`, `partial`, or `unchecked` (derived-index page), with unreadable item/directory counts. Use `--strict-read` when omissions must fail the command. The `filters` object omits unset values instead of emitting null placeholders, keeping long-running agent context stable and lean. Pass `--no-truncate` to disable the default output budget; an explicit `--limit` still caps rows, and an explicit `--output-budget` still applies. `--all` selects every lifecycle status; combine the flags for an unbounded all-status audit:
340
340
 
341
341
  ```bash
342
- pm list --all --no-truncate --brief # every matched row, ignoring any --limit
342
+ pm list --all --no-truncate --brief # every matched row without the default token ceiling
343
343
  pm list --status open --limit 20 --json # stable total/has_more/truncated/next_cursor envelope
344
344
  pm list --all --strict-read --json # fail if any source item cannot be read
345
345
  ```
346
346
 
347
+ Continuation recovery is tracked by [pm-gh1457](../.agents/pm/issues/pm-gh1457.toon).
348
+ For list, search and context, pass a producer `next_cursor` to `--after`.
349
+ When `continuation_kind=output_cursor` is present, consume `next_cursor` through
350
+ `--output-cursor` instead. An output continuation resumes within the same
351
+ producer page, so retain its original query and any producer `--after` value.
352
+ Passing an output cursor to `--after` returns `invalid_query_cursor` with the
353
+ executable flag substitution in `next_steps`. Changed filters or snapshots
354
+ still refuse rather than silently restarting.
355
+
347
356
  Compatibility note: older responses emitted `total` only when pagination
348
357
  omitted rows, omitted `next_cursor` on a completed page, and emitted unset
349
358
  verbose filter keys as `null`. Integrations should now read `total` as the
@@ -611,14 +620,19 @@ row summaries. See tracker item [pm-awe3t6](../.agents/pm/issues/pm-awe3t6.toon)
611
620
  Tracked by [pm-o8z748](../.agents/pm/issues/pm-o8z748.toon) and
612
621
  [pm-cyn0y6](../.agents/pm/issues/pm-cyn0y6.toon).
613
622
 
614
- `pm item mutate` is the noun-first CLI adapter over the public SDK resolver and
615
- `commitItemMutations` primitive. Pipe either the legacy non-empty JSON array or
616
- a versioned `{ "schema_version": 1, "mutations": [...] }` document, provide one
617
- stable transaction id, and mix create/update/close/release operations in order.
618
- Create rows may declare a unique `ref` and omit `id`; exact `@ref` values work
619
- in target ids, `parent`, `blockedBy`, and dependency `id` fields. The resolver
620
- derives replay-stable ids before the writer lock and returns a `references`
621
- receipt:
623
+ `pm item mutate` is the noun-first CLI adapter over the public SDK planner
624
+ (`planItemMutationDocument`) and `commitItemMutations` primitive. Pipe either
625
+ the legacy non-empty JSON array, a versioned
626
+ `{ "schema_version": 1, "mutations": [...] }` document, or JSON Lines (one
627
+ record per line), or read any of them from a file with `--from <path>`. Mix
628
+ create/update/close/release operations in order. Create rows may declare a
629
+ unique `ref` and omit `id`; exact `@ref` values work in target ids, `parent`,
630
+ `blockedBy`, and dependency `id` fields. The resolver derives replay-stable ids
631
+ before the writer lock and returns a `references` receipt plus an input-ordered
632
+ `rows` receipt (`index`, `ref`, `id`, `op`, `upserted`). When `--transaction-id`
633
+ is omitted the id is derived from the exact document bytes
634
+ (`transaction_id_source: "derived"`), so identical bytes select the same
635
+ journal. Replaying a committed import also requires an unchanged resolved plan:
622
636
 
623
637
  ```bash
624
638
  pm item mutate \
@@ -635,13 +649,83 @@ pm item mutate \
635
649
  JSON
636
650
  ```
637
651
 
652
+ `--from <path>` selects a file and rejects an explicitly supplied `--stdin-json`.
653
+ Default stdin input, explicit `--stdin-json` without a file, and `--from -`
654
+ remain supported.
655
+
638
656
  Use `--dry-run` to validate and preview without acquiring a writer lock. Reuse
639
657
  the exact transaction id and deterministic batch after interruption: the SDK
640
658
  journal resumes pending steps and never duplicates a successfully applied
641
- step. `--create-compensation close|delete`, `--lock-ttl-seconds`, and
642
- `--lock-wait-ms` expose the transaction safety controls. The equivalent MCP
659
+ step. A different plan under a committed or resumable journal refuses with
660
+ `transaction_plan_mismatch`; pass a new `--transaction-id` to commit that changed
661
+ plan as its own transaction. A fully compensated attempt has nothing left to
662
+ resume and may accept a new plan under the same transaction id. Formatting-only
663
+ edits change a derived id; pass the original id explicitly to replay them when
664
+ the resolved plan is unchanged. `--create-compensation close|delete`,
665
+ `--lock-ttl-seconds`, and `--lock-wait-ms` expose the transaction safety controls. The equivalent MCP
643
666
  surface is `pm_mutate`.
644
667
 
668
+ Raw mutation `options` use command option types: write `estimatedMinutes: "45"`.
669
+ Item documents may instead use numeric `estimated_minutes: 45`. A non-string
670
+ raw estimate refuses before journal or item writes with
671
+ `mutation_option_value_invalid` (exit 2), identifying the row and option.
672
+ Corrupt durable journals, including a wrong stored schema version or transaction
673
+ identity, refuse with `transaction_journal_invalid`; preserve
674
+ the journal and inspect or restore verified state before retrying. Changing the
675
+ transaction id does not safely recover unknown previously applied work.
676
+
677
+ #### Bulk creation (`pm create many` route)
678
+
679
+ Tracked by [pm-gh1456](../.agents/pm/features/pm-gh1456.toon). `pm create many`
680
+ is not a command; it refuses with `bulk_create_route` and points here. A record
681
+ without `op` is a create document that uses the same field names as
682
+ `pm create` flags or their JSON equivalents (`title`, `type`, `description`,
683
+ `body`, `tags`, `parent`, `priority`, declared custom fields, ...); a create
684
+ row may also carry that document under `item` instead of `options`. Records
685
+ without `ref` or `id` receive `row-<n>` aliases so the receipt and `@row-<n>`
686
+ references stay addressable. One process, one workspace transaction: every
687
+ record is created or none.
688
+
689
+ ```bash
690
+ cat > items.jsonl <<'JSONL'
691
+ {"title":"Imported A","type":"Task","external_id":"ext-1","tags":["import"]}
692
+ {"ref":"b","title":"Imported B","type":"Feature","external_id":"ext-2","parent":"@row-1"}
693
+ JSONL
694
+ pm item mutate --from items.jsonl --dry-run --json # validate, derived transaction id
695
+ pm item mutate --from items.jsonl --json # commit; re-running replays (recovered: true)
696
+ ```
697
+
698
+ `--upsert-key <field>` makes a re-run safe for changed data: a create record
699
+ whose field value matches exactly one existing item (core field such as
700
+ `title`, or a declared custom field such as `external_id`) becomes an update
701
+ of that item and is reported with `upserted: true`. Matching and lock-held
702
+ guards use the field's stored metadata key; core option names such as
703
+ `acceptanceCriteria`, declared field keys and their SDK option targets
704
+ (for example `externalId`) resolve to that
705
+ same stored key. The record keeps its
706
+ `ref` in the receipt, and later records may still address it as `@ref`, which
707
+ then resolves to the matched item. A record missing the key, two records
708
+ sharing a key value, or a key value matching several existing items refuses
709
+ before any write (`upsert_key_missing`, `upsert_key_duplicate`,
710
+ `upsert_key_ambiguous`). Matching happens before the writer lock, so every
711
+ record that matched nothing carries its key into the commit, which re-checks
712
+ it under the lock: when another writer created an item with that key value
713
+ after planning, the transaction refuses with `upsert_key_conflict` before any
714
+ write, and a re-run plans the record as an update of that item. A record that
715
+ did match is committed as an update that re-reads the key under the lock and
716
+ refuses with `upsert_match_changed` when the key was changed or removed after
717
+ planning. Either refusal rolls the attempt back completely, and a rolled-back
718
+ attempt leaves its derived transaction id reusable, so re-running the same
719
+ document simply starts a fresh attempt from the current key values.
720
+
721
+ ```bash
722
+ printf '%s\n' '{"title":"Imported A (renamed)","type":"Task","external_id":"ext-1"}' \
723
+ | pm item mutate --upsert-key external_id --json
724
+ ```
725
+
726
+ Over MCP, `pm_mutate` accepts the same document rows as `{ref?, item: {...}}`
727
+ entries, `upsertKey`, and an optional `transactionId`.
728
+
645
729
  `pm item complete` composes evidence, governed closure, and claim release into
646
730
  one compensating SDK transaction. It accepts the normal repeatable evidence
647
731
  flags and can preview the exact ordered mutations before writing:
@@ -27,12 +27,16 @@ it is not silently equated with the earlier item snapshot. History-drift
27
27
  validation passed across all 2,826 current items. The public SDK independently
28
28
  verified hash chains for all 2,841 collected streams with zero failures.
29
29
 
30
- [The per-item census](ecosystem-review-2026-09-28.json) records every snapshot
30
+ [The per-item census](https://github.com/unbraind/pm-cli/blob/main/docs/ecosystem-review-2026-09-28.json) records every snapshot
31
31
  ID, status, content fingerprint, structural classification, missing planning
32
32
  fields, historical evidence gaps, and remediation owner. These are mechanical
33
33
  findings, not invented historical estimates, outcomes, or review approvals.
34
34
  The full raw corpus stays outside public documentation.
35
35
 
36
+ The census is intentionally excluded from npm. This packaged page uses its
37
+ canonical GitHub file URL under the [documentation policy](../AGENTS.md#documentation-policy),
38
+ so installed readers can access the data without a broken package-relative path.
39
+
36
40
  | Measure | Initial observation | Interpretation |
37
41
  | --- | ---: | --- |
38
42
  | Directed graph edges | 14,097 | Deduplicated directed basis |
@@ -305,7 +305,7 @@ Use the public SDK barrel. Do not deep-import from `src/core` or `dist/core`.
305
305
 
306
306
  - `api.extension` is a read-only identity (`name`, `layer`, `version`, `capabilities`, `pm_min_version?`, `pm_max_version?`, `source_package?`) for self-identifying logs and version gating without re-reading the manifest.
307
307
  - `api.registerCommand(definition)` adds package-owned commands; `read_output` opts readers into the [SDK output contract](SDK.md#minimal-command-extension).
308
- - `api.registerFlags(command, flags)` adds runtime command flags. A flag may declare `value_type` (canonical; the legacy `type` alias is honored only when `value_type` is absent), `list: true` to accumulate repeated/comma-joined values like core `--tags`, and a `default` applied when the flag is omitted.
308
+ - `api.registerFlags(command, flags)` adds runtime command flags. A flag may declare `value_type` (canonical; the legacy `type` alias is honored only when `value_type` is absent), `list: true` to accumulate repeated/comma-joined values like core `--tags`, a `default` applied when the flag is omitted, and `value_validation: "strict"` to refuse malformed `number`/`boolean` tokens before the handler runs (the default `"coerce"` forwards the raw token). See [Flag Contracts](SDK.md#flag-contracts).
309
309
  - `api.registerItemFields(fields)` adds custom metadata fields. Agents can set declared fields with repeatable `pm create --field name=value` and `pm update <id> --field name=value`; undeclared names are rejected. `SchemaFieldDefinition.type` is the same closed union used by `pm schema add-field`: `string | number | boolean | string_array | array | object`. Unsupported values fail at compile time for TypeScript authors and at activation for JavaScript packages, with a did-you-mean hint on typos. `string_array` is the repeatable string collection; `array` and `object` require JSON containers.
310
310
  - Custom fields whose camel-case option name is already owned by a canonical MCP input remain usable through `options.<name>`, but authoring surfaces report the collision instead of allowing silent top-level shadowing. `pm schema add-field`, `pm profile lint`, and `pm package doctor` name the field, canonical `mcp_tool_input` owner, and nested recovery path. SDK authors can preflight the same rule with `resolvePmToolCustomFieldCollision`.
311
311
  - `api.registerItemTypes(types)` adds custom item types.
@@ -8,14 +8,28 @@ This page records runtime contracts package authors need when they build on the
8
8
 
9
9
  Tracked by [pm-gh1461](../.agents/pm/issues/pm-gh1461.toon) and
10
10
  [pm-gh1462](../.agents/pm/features/pm-gh1462.toon).
11
+ Value grammar corrections are tracked by [pm-gh1466](../.agents/pm/issues/pm-gh1466.toon)
12
+ and [pm-gh1467](../.agents/pm/issues/pm-gh1467.toon).
11
13
  Prefer `{ long: "--repo", value_name: "project", value_type: "string" }`.
12
14
  Legacy `--repo <project>`, `--repo=<project>` and `--label [name]` declarations
13
15
  retain one canonical identity, one value placeholder and one help listing.
14
16
  Optional brackets permit presence without a value. Explicit `value_name` wins
15
- over the inline label, and boolean types remain value-free. Runtime contracts
16
- omit inferred labels for boolean flags, including legacy dynamic `bool` aliases;
17
- explicit legacy `value_name` metadata remains compatible. The SDK owns the
18
- canonical long-name rule used by help, option dispatch and contract discovery.
17
+ over the inline label. Canonical `boolean` flags are switches, including when an
18
+ inline label is present. Legacy `bool` declarations retain their value grammar:
19
+ `--enabled false`, `--enabled 0`, and their short forms consume and coerce the
20
+ value. A bare legacy `bool` permits presence without a value, preserving the
21
+ published switch form too. An explicit `--enabled <value>` still requires its
22
+ operand; `--enabled [value]` permits omission. A canonical
23
+ boolean switch leaves subsequent positional values intact. Existing equals and
24
+ negated forms remain supported; loose negated flags remain in `context.args`.
25
+ Use `--` to distinguish a positional operand immediately after an optional-valued
26
+ legacy `bool`, for example `--enabled -- operand`.
27
+ The SDK's explicit `value_arity` distinguishes `none`, `required`, and `optional`
28
+ from the scalar `value_type`. `required` describes flag presence: an optional
29
+ value remains optional even when the flag itself is required. Help, Commander,
30
+ recovery and machine contracts consume the shared SDK value declaration.
31
+ Explicit legacy `value_name` metadata remains discoverable on switches for
32
+ compatibility; `value_arity: "none"` still means that no value token is consumed.
19
33
  Typed authors should use canonical `value_type` names (`boolean`, `number`, `string`).
20
34
 
21
35
  Use `decodeToon` from `@unbrained/pm-cli/sdk/testing` to assert on host output
@@ -77,3 +77,18 @@ gate, and display its recovery message; `exit_code: null` means no subprocess ra
77
77
  Context mismatches and a missing required PM assertion also use this result.
78
78
  The `TestRunResult.exit_code` type now allows null, and `TestCommandOptions` and
79
79
  `TestResult` include the optional editor flags and receipt fields described above.
80
+
81
+ ## Mixed host versions
82
+
83
+ Tracked by [pm-gh1458](../.agents/pm/issues/pm-gh1458.toon).
84
+ Editor stamps require item format 2. Ordinary records retain format 1, while
85
+ existing unstamped or legacy format-1 records advance only on a real write that
86
+ needs the new fields. Upgrade the CLI, pinned SDK, CI and clone-local merge
87
+ driver together before editing guarded records. Hosts from 2026.10.10 refuse
88
+ with `item_format_version_unsupported`; preserve item/history bytes and upgrade
89
+ instead of lowering the marker or re-anchoring valid history. Inspection of
90
+ legacy 2026.10.12–13 records retains their original history commitments.
91
+ Restoration retains the format requirement even when selecting a pre-edit state.
92
+ The SDK refuses a guarded write when the owning project's declared or resolved
93
+ runtime pins still select a pre-2026.10.10 host. Such hosts predate format
94
+ admission and must be upgraded before they read guarded records.
package/docs/RELEASING.md CHANGED
@@ -486,6 +486,8 @@ never move a published tag or mint a second automatic version for the same UTC d
486
486
  - static quality gate (shared complexity, duplication, dead/orphan module, file/folder hygiene, source/exported docstring coverage profile)
487
487
  - temporary-project compatibility gate against latest published tracker data
488
488
  - reliability threshold gate (Sentry severity threshold, bounded to a recent-activity window via `--sentry-window-days` (default `14`, `0` = unbounded) so a stale benign unresolved issue cannot block every scheduled release; Sentry requests use the fail-closed bounded `--sentry-request-timeout-ms` contract (default `120000`, maximum `300000`); `--telemetry-mode` gate policy: `off` | `best-effort` | `required`). Scheduled `auto-release.yml` failures open/update an `Auto Release blocked` GitHub issue so blocked daily releases are never silently skipped.
489
+ - extension grammar acceptance ([pm-gh1466](../.agents/pm/issues/pm-gh1466.toon), [pm-gh1467](../.agents/pm/issues/pm-gh1467.toon)): the existing flag parity gate includes a synthetic extension population, and packed smoke runs the same independent echo oracle on Node and Bun. Immediately before publication, `extension-flag-acceptance.mjs` extracts the exact tarball passed to `npm publish`, resolves its public SDK exports and manifest executable, and checks help, machine contracts, handler options, remaining arguments and refusals. Any failed or missing case stops publication. The retained receipt records executed case identities, runtime, resolved entrypoints, fixture digest and tarball SHA-256. This proves candidate behavior; published-installed acceptance remains a separate claim. Exact-tag recovery preserves both the reviewed runner and its fixture outside the tagged checkout.
490
+ - diagnostic privacy acceptance ([pm-geywoc](../.agents/pm/issues/pm-geywoc.toon)): the same candidate runner requires the independent synthetic diagnostic fixture through the installed public SDK. A disposable loopback collector verifies real serialized error events, streamed spans, and finalized logs, including scope attributes. Quoted keys, Unicode escapes in keys/delimiters/separators, nested serialized JSON, containers and incomplete values must lose their sensitive markers; safe text, numeric/boolean attributes and caller scope must remain intact. Opaque encoded boundaries redact the remaining text, and a long backslash control bounds scanning cost. Missing, failed or duplicate case receipts block acceptance. Recovery preserves the diagnostic fixture with the runner. This local export proof is separate from hosted Sentry ingestion and does not change user consent.
489
491
  - sandboxed `pm` coverage
490
492
  - a base npm pack dry run, optional Sentry debug-ID injection, a second
491
493
  `sentry-injected` packlist budget over the exact publishable bytes, and only
package/docs/SDK.md CHANGED
@@ -483,6 +483,12 @@ not renderer-specific code, so package authors can reuse
483
483
  `resolvePmCommandOutputBudget`, and
484
484
  `estimatePmOutputTokens` in custom transports.
485
485
 
486
+ Read-output, context-intent, recurrence and diagnostic string compaction retain
487
+ Unicode-safe prefixes. A cutoff through a surrogate pair backs up one UTF-16
488
+ code unit before adding its suffix. Rendering and token receipts use the actual
489
+ retained text; unbounded reads and preserved-string exceptions are unchanged.
490
+ Tracked by [pm-gh1478](../.agents/pm/issues/pm-gh1478.toon).
491
+
486
492
  ```ts
487
493
  import {
488
494
  definePmCommandOutputBudget,
@@ -946,6 +952,27 @@ recurrence reason, accepts only the workspace open or in-progress target, and
946
952
  returns the terminal evidence captured atomically before the update path clears
947
953
  it from active metadata.
948
954
 
955
+ Lifecycle handoff and receipt guidance are tracked by
956
+ [pm-gh1465](../.agents/pm/features/pm-gh1465.toon) and
957
+ [pm-gh1464](../.agents/pm/issues/pm-gh1464.toon). Register a project-specific
958
+ queue with `client.schemaAddStatus("review", { role: ["active"] })`, then call
959
+ `client.release(id, { handoff: "review", message: "Implemented; run linked verification" })`.
960
+ The SDK atomically changes status and clears ownership in one release history
961
+ event, applying project ownership, type-transition, and workflow policies.
962
+ `ReleaseMutationOptions` declares the handoff option; `ReleaseResult.handoff`
963
+ identifies the source and destination states and evidence. `client.list({ status:
964
+ "review" })` selects the verifier queue; context preserves its status without
965
+ counting it as in-progress work. The destination must already exist, be
966
+ non-terminal, and differ from the configured in-progress status. Handoff needs
967
+ a claimed source and evidence message, and cannot be combined with pause.
968
+
969
+ A successful warning-mode close with missing evidence returns optional
970
+ `follow_up: CloseEvidenceFollowUp`. Its `kind` is `complete_close_evidence` and
971
+ `suggested_command_args` selects an evidence-only update of the same item and
972
+ tracker. Consumers migrating from successful-close `recovery` should read
973
+ `follow_up` instead; a successful close never asks for a retry. Failed close
974
+ commands retain failure recovery. See [close evidence guidance](CLOSE_EVIDENCE_RECOVERY.md).
975
+
949
976
  ### Atomic workspace transactions
950
977
 
951
978
  Tracked by [pm-4e12](../.agents/pm/features/pm-4e12.toon), with the VCS
@@ -1103,7 +1130,14 @@ bulk sync), `commitItemMutations` wraps the coordinator so callers describe
1103
1130
  the mutations instead of hand-writing a step array. The helper wires the
1104
1131
  crash-consistency contract for you: creates use their resolved stable `id` as
1105
1132
  the idempotency key (exists-by-id inspection) and are compensated by closing
1106
- the item (or deleting it with `createCompensation: "delete"`); updates stamp a
1133
+ the item (or deleting it with `createCompensation: "delete"`). A retry refuses
1134
+ with `transaction_create_compensated` while a creation's latest closure belongs
1135
+ to compensation, even if its close prose was edited. Review its immutable history
1136
+ and explicitly reopen it before retrying; the SDK preserves later lifecycle
1137
+ decisions instead of silently reopening the item or reporting it committed.
1138
+ A later explicit user close or status update takes precedence over the earlier
1139
+ compensation close and is preserved when the transaction resumes.
1140
+ Updates stamp a
1107
1141
  durable history marker for applied-detection and are compensated by restoring
1108
1142
  the captured pre-mutation version; closes treat an already-terminal target as
1109
1143
  applied and are likewise compensated by version restore; releases restore the
@@ -1241,6 +1275,70 @@ await commitItemMutations({
1241
1275
  });
1242
1276
  ```
1243
1277
 
1278
+ For imports, use `planItemMutationDocument` (tracked by
1279
+ [pm-gh1456](../.agents/pm/features/pm-gh1456.toon)). It reads the workspace
1280
+ schema so declared custom fields route through their option targets, accepts
1281
+ JSON Lines and op-less create documents (records shaped like `pm create
1282
+ --stdin-json` input, optionally wrapped as `{ ref, item }`), synthesizes
1283
+ `row-<n>` aliases for records without `ref`/`id`, derives a stable
1284
+ `transaction_id` from the document bytes when none is supplied, and resolves
1285
+ `upsertKey` against existing items so matching create records become updates;
1286
+ core camelCase option names (such as `acceptanceCriteria`) and declared field
1287
+ keys or option targets resolve to the stored metadata key before candidate
1288
+ reads and lock-held guards.
1289
+ An explicitly supplied blank `upsertKey` is a usage error; omit it to select plain creation.
1290
+ Unrelated extension metadata keys retain their exact spelling, including camelCase.
1291
+ Item documents also accept known core camelCase option names, including inside
1292
+ `{ item }` wrappers. Exact stored metadata keys win when both spellings appear.
1293
+ Records that match nothing carry a `unique` guard that `commitItemMutations`
1294
+ re-checks under the writer lock and refuses with `upsert_key_conflict` when a
1295
+ concurrent writer created the key value after planning; matched records become
1296
+ updates carrying a `match` guard checked against the locked target document,
1297
+ after acquiring its item lock. It refuses with `upsert_match_changed` when the
1298
+ target's key changed in between, including changes made by ordinary item updates.
1299
+ Successful update, close and release steps invalidate cached unique-key scans
1300
+ inside a mixed batch, so subsequent creates see the current persisted values,
1301
+ including changes to earlier creates in that batch.
1302
+ Every create also advances cached scans from its returned metadata, including
1303
+ unguarded creates and records guarded on a different key, without a new project scan.
1304
+ The returned `rows` receipt maps every input record, in order, to its resolved
1305
+ `id` and `op`:
1306
+
1307
+ ```ts
1308
+ import {
1309
+ commitItemMutations,
1310
+ planItemMutationDocument,
1311
+ } from "@unbrained/pm-cli/sdk";
1312
+
1313
+ const plan = await planItemMutationDocument({
1314
+ pmRoot,
1315
+ input: [
1316
+ '{"title":"Imported A","type":"Task","external_id":"ext-1"}',
1317
+ '{"ref":"b","title":"Imported B","type":"Feature","parent":"@row-1","external_id":"ext-2"}',
1318
+ ].join("\n"),
1319
+ upsertKey: "external_id",
1320
+ });
1321
+ const result = await commitItemMutations({
1322
+ pmRoot,
1323
+ author: "import-agent",
1324
+ transactionId: plan.transaction_id,
1325
+ mutations: plan.mutations,
1326
+ });
1327
+ console.log(plan.transaction_id_source, plan.rows, result.recovered);
1328
+ ```
1329
+
1330
+ After a successful commit, reuse its transaction id and unchanged resolved
1331
+ mutation plan to replay it (`recovered: true`). A formatting-only edit changes
1332
+ the derived id; pass the original id explicitly to replay an unchanged plan.
1333
+ The planner excludes items created by that transaction from upsert matching,
1334
+ retaining those create rows.
1335
+ If document edits, external matches, or schema context change the resolved
1336
+ plan under that committed id, the coordinator refuses with
1337
+ `transaction_plan_mismatch`; use a new transaction id for the changed import.
1338
+ Corrupt journal JSON, stored schema version/transaction identity, lifecycle state or metadata instead refuses with
1339
+ `transaction_journal_invalid`. Preserve and inspect or restore the journal;
1340
+ starting a new id can duplicate work whose durable state cannot be verified.
1341
+
1244
1342
  `buildItemCompletionMutations` creates the ordered evidence/update, close, and
1245
1343
  release plan for inspection. `commitItemCompletion` executes that plan through
1246
1344
  the same durable coordinator, restoring annotations, linked artifacts,
@@ -2225,6 +2323,20 @@ same list/default semantics as core flags:
2225
2323
  `default: "a,b"` or `default: ["a,b", "c"]`) are split into elements. A default
2226
2324
  that would not cleanly coerce under the declared `value_type` (e.g.
2227
2325
  `value_type: "number", default: "abc"`) is rejected at registration.
2326
+ - `value_validation` (`"coerce"` | `"strict"`, tracked by
2327
+ [pm-extension-scalar-validation](../.agents/pm/features/pm-extension-scalar-validation.toon))
2328
+ decides what happens to a `number`/`boolean` token that does not coerce.
2329
+ `coerce` is the compatible default: the raw token reaches the handler for its
2330
+ own validation (`--limit abc` arrives as `"abc"`). `strict` refuses the
2331
+ invocation before dispatch with `extension_flag_value_invalid` (exit 2),
2332
+ naming the flag, the command, the expected grammar, and the received token;
2333
+ list entries are checked one by one, including attached values on boolean
2334
+ list switches. CSV boolean lists accept `true,false`; repeatable boolean
2335
+ lists keep each occurrence as one value. Switch presence (`--verbose`,
2336
+ `--no-verbose`), the legacy `bool` optional-value grammar (`--enabled` alone
2337
+ is `true`), declared defaults, and string flags are unaffected. `strict` on a
2338
+ `string` or untyped flag is rejected at registration because there is nothing
2339
+ to validate.
2228
2340
 
2229
2341
  ```ts
2230
2342
  api.registerFlags("report", [
@@ -2235,7 +2347,7 @@ api.registerFlags("report", [
2235
2347
  list: true,
2236
2348
  default: "all",
2237
2349
  },
2238
- { long: "--limit", value_type: "number", default: 20 },
2350
+ { long: "--limit", value_type: "number", default: 20, value_validation: "strict" },
2239
2351
  ]);
2240
2352
  ```
2241
2353
 
package/docs/TESTING.md CHANGED
@@ -144,7 +144,7 @@ only after the pushed reviewed head's hosted analyzers are terminal.
144
144
 
145
145
  ## Published Workspace Compatibility
146
146
 
147
- Tracked by [pm-pae3wo](../.agents/pm/tasks/pm-pae3wo.toon).
147
+ Tracked by [pm-pae3wo](../.agents/pm/tasks/pm-pae3wo.toon) and [pm-gh1458](../.agents/pm/issues/pm-gh1458.toon).
148
148
  Run `node scripts/release/workspace-compatibility.mjs --json` after building.
149
149
  The policy in `scripts/release/workspace-compatibility-policy.json` requires
150
150
  the two immediately preceding stable calendar releases. Each installed release
@@ -172,6 +172,26 @@ entrypoint from their own consumer directory. Raw parsers still preserve future
172
172
  markers for integrity inspection; inventory diagnostics are not permission to
173
173
  rewrite an unsupported item.
174
174
 
175
+ Format 1 remains readable and is still used for ordinary records. Persisting
176
+ linked-test editor stamps requires format 2. The same mutation records that
177
+ marker in history; ordinary subsequent writes, restoration and current-runtime
178
+ merges retain it. Restoring an older state does not lower the reader requirement
179
+ while newer history remains. Existing format-1 editor records written by
180
+ 2026.10.12–13 keep their original hashes during inspection and acquire the
181
+ format-2 guard on the next real write. Upgrade every reader, CI runtime and Git
182
+ merge driver before operating on guarded records. Never re-anchor history or
183
+ remove the marker to make an older verifier pass.
184
+
185
+ The additional published-artifact matrix pins the reported 2026.10.9, 10 and 13
186
+ hosts. It proves original history-prefix preservation, exact nested stamps,
187
+ write refusal when the project still pins 2026.10.9, and CLI/public SDK format
188
+ refusal by 2026.10.10 and 13 without byte changes, ordinary
189
+ current writes, restored states, and native Git merge/reconciliation with the
190
+ upgraded driver. Baseline records still pass the two-prior-release matrix.
191
+ The 2026.10.9 host predates format admission and is not a supported reader of
192
+ guarded records; update project pins and resolved dependencies before writing
193
+ them. That host's mutation bootstrap can then reject the newer project pin.
194
+
175
195
  Run the matrix from the built workspace root. Exact-tag release recovery retains
176
196
  the reviewed matrix controls, policy and static fixtures outside the checkout,
177
197
  then tests the selected tagged runtime through its manifest and public SDK. A
@@ -630,6 +650,21 @@ pm test <item-id> --run --workspace-context snapshot --override-linked-workspace
630
650
  The real filesystem and CLI snapshot suite runs in the required Node 22
631
651
  telemetry regression job and native Windows regression job before merge.
632
652
 
653
+ Windows execution is tracked by [pm-bj7rq0](../.agents/pm/issues/pm-bj7rq0.toon).
654
+ Script and native keeper cohorts run independently on Windows Node 24. Their
655
+ source/script keeper steps retain the two-worker cap, and each cohort retains
656
+ the 12-minute deadline. The required
657
+ `Windows regression (Node 24)` check waits for both cohorts and fails if either
658
+ fails, is cancelled, or is skipped. This preserves every selected regression
659
+ while avoiding a shared serial job deadline. See GitHub's
660
+ [job dependency semantics](https://docs.github.com/en/actions/how-tos/write-workflows/choose-what-workflows-do/use-jobs#defining-prerequisite-jobs).
661
+
662
+ The real point-read corpus keeper runs with the lifecycle latency keeper in
663
+ the existing sequential performance phase after parallel contracts. Its
664
+ 1,500-item corpus, work-observer assertions and 30-second deadline remain
665
+ unchanged. Standalone script identity is resolved from the test module URL,
666
+ independently of temporary SDK working directories.
667
+
633
668
  The real-filesystem regression for this contract is tracked by
634
669
  [pm-5iwfkj](../.agents/pm/issues/pm-5iwfkj.toon).
635
670
 
@@ -68,7 +68,7 @@ This file is generated by `listPmFlagLexicon()`. Compatibility aliases do not co
68
68
  | `workspace` | workspace | 23 | 23 |
69
69
  | `contracts` | quality | 29 | 29 |
70
70
  | `claim` | lifecycle | 39 | 39 |
71
- | `release` | lifecycle | 24 | 24 |
71
+ | `release` | lifecycle | 25 | 25 |
72
72
  | `start-task` | lifecycle | 23 | 23 |
73
73
  | `pause-task` | lifecycle | 23 | 23 |
74
74
  | `close-task` | lifecycle | 24 | 24 |