@unbrained/pm-cli 2026.10.11 → 2026.10.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (740) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +45 -0
  3. package/dist/cli/after-command-context-usage.d.ts +8 -8
  4. package/dist/cli/bundle-integrity.d.ts +23 -23
  5. package/dist/cli/commander-usage.d.ts +31 -31
  6. package/dist/cli/commander-usage.js +3 -3
  7. package/dist/cli/error-guidance.d.ts +158 -161
  8. package/dist/cli/error-guidance.js +2 -2
  9. package/dist/cli/extension-command-help.d.ts +68 -68
  10. package/dist/cli/extension-command-options.d.ts +20 -20
  11. package/dist/cli/extension-recovery.d.ts +20 -20
  12. package/dist/cli/help-content.d.ts +16 -16
  13. package/dist/cli/help-content.js +2 -2
  14. package/dist/cli/help-json-payload.d.ts +40 -40
  15. package/dist/cli/help-json-payload.js +1 -1
  16. package/dist/cli/invocation-profile.d.ts +8 -8
  17. package/dist/cli/main.d.ts +166 -165
  18. package/dist/cli/main.js +4 -4
  19. package/dist/cli/migration-gates.d.ts +20 -20
  20. package/dist/cli/register-list-query.d.ts +4 -4
  21. package/dist/cli/register-mutation-options.d.ts +2 -2
  22. package/dist/cli/register-operations.d.ts +68 -63
  23. package/dist/cli/register-operations.js +1 -1
  24. package/dist/cli/register-setup.d.ts +1 -1
  25. package/dist/cli/register-structured-mutation.d.ts +3 -3
  26. package/dist/cli/register-structured-mutation.js +1 -1
  27. package/dist/cli/runtime/activation.d.ts +3 -3
  28. package/dist/cli/runtime/invocation-options.js +1 -1
  29. package/dist/cli/runtime/selection.d.ts +6 -6
  30. package/dist/cli/runtime-compatibility-boundary.d.ts +12 -12
  31. package/dist/cli-bundle/bundle-manifest.json +1 -1
  32. package/dist/cli-bundle/chunks/{chunk-K2UTE75T.js → chunk-AM2XOZKE.js} +2 -2
  33. package/dist/cli-bundle/chunks/{chunk-S445XEYT.js → chunk-APWPC4ZZ.js} +2 -2
  34. package/dist/cli-bundle/chunks/chunk-DJDRHJBP.js +234 -0
  35. package/dist/cli-bundle/chunks/{chunk-RUT3CCAG.js → chunk-DUK5DHI6.js} +2 -2
  36. package/dist/cli-bundle/chunks/chunk-HXHFKXLV.js +2 -0
  37. package/dist/cli-bundle/chunks/chunk-IFPJDJUM.js +20 -0
  38. package/dist/cli-bundle/chunks/{chunk-OBLO45UM.js → chunk-LBDWFWPK.js} +2 -2
  39. package/dist/cli-bundle/chunks/{chunk-ZWRLAOA4.js → chunk-N5EXRYCZ.js} +2 -2
  40. package/dist/cli-bundle/chunks/chunk-PSNS537F.js +30 -0
  41. package/dist/cli-bundle/chunks/{chunk-2JYTSTQP.js → chunk-RL45OYTL.js} +2 -2
  42. package/dist/cli-bundle/chunks/{chunk-ESRACL6K.js → chunk-UBTYYZIE.js} +49 -49
  43. package/dist/cli-bundle/chunks/chunk-WYZGZV2M.js +2 -0
  44. package/dist/cli-bundle/chunks/{chunk-SSY4OSJR.js → chunk-YH6H3UVE.js} +10 -10
  45. package/dist/cli-bundle/chunks/{register-list-query-T6BOR67M.js → register-list-query-BJ742QOR.js} +2 -2
  46. package/dist/cli-bundle/chunks/{register-mutation-6NXR7SAJ.js → register-mutation-GGGBRIH2.js} +3 -3
  47. package/dist/cli-bundle/chunks/register-operations-E6HXYHNM.js +2 -0
  48. package/dist/cli-bundle/chunks/{register-setup-MAYFPKBX.js → register-setup-4ZVTVEPY.js} +2 -2
  49. package/dist/cli-bundle/focused-chunks/{chunk-EIOQNLBQ.js → chunk-3LQEBXU5.js} +12 -12
  50. package/dist/cli-bundle/focused-chunks/{chunk-PLTTMQAW.js → chunk-6BTUISKV.js} +2 -2
  51. package/dist/cli-bundle/focused-chunks/chunk-73UNAJHD.js +2 -0
  52. package/dist/cli-bundle/focused-chunks/{chunk-WAOXID5J.js → chunk-DVK7VKZL.js} +2 -2
  53. package/dist/cli-bundle/focused-chunks/{chunk-SIEGIPNT.js → chunk-F5J3ATMV.js} +16 -16
  54. package/dist/cli-bundle/focused-chunks/chunk-IIKFTJVC.js +2 -0
  55. package/dist/cli-bundle/focused-chunks/chunk-IOTNG6CN.js +2 -0
  56. package/dist/cli-bundle/focused-chunks/{chunk-AU6VJGTY.js → chunk-KGFRQ34R.js} +2 -2
  57. package/dist/cli-bundle/focused-chunks/chunk-NNW5BS5L.js +3 -0
  58. package/dist/cli-bundle/focused-chunks/{chunk-KNJR2WUO.js → chunk-QMNAY25P.js} +62 -62
  59. package/dist/cli-bundle/focused-chunks/{chunk-W5AE7GKZ.js → chunk-R23T7GFZ.js} +2 -2
  60. package/dist/cli-bundle/focused-chunks/chunk-RAA7SVRA.js +8 -0
  61. package/dist/cli-bundle/focused-chunks/{chunk-52UJEHEV.js → chunk-RU6GCFN3.js} +2 -2
  62. package/dist/cli-bundle/focused-chunks/{chunk-JGFSSR3G.js → chunk-S6ITXQ5T.js} +5 -5
  63. package/dist/cli-bundle/focused-chunks/{chunk-DMSADMEU.js → chunk-SOB7X4FJ.js} +2 -2
  64. package/dist/cli-bundle/focused-chunks/chunk-UPJA45K7.js +26 -0
  65. package/dist/cli-bundle/main.js +22 -22
  66. package/dist/cli-bundle/sdk-authoring.js +1 -1
  67. package/dist/cli-bundle/sdk-contracts.js +2 -2
  68. package/dist/cli-bundle/sdk-core.js +31 -31
  69. package/dist/cli-bundle/sdk-governance.js +1 -1
  70. package/dist/cli-bundle/sdk-graph.js +1 -1
  71. package/dist/cli-bundle/sdk-merge.js +51 -51
  72. package/dist/cli-bundle/sdk-query.js +1 -1
  73. package/dist/cli-bundle/sdk-runtime.js +1 -1
  74. package/dist/cli-bundle/sdk-testing.js +1 -1
  75. package/dist/cli-bundle/sdk.js +8 -8
  76. package/dist/cli.d.ts +4 -4
  77. package/dist/core/checkpoint/checkpoint-gc.d.ts +32 -32
  78. package/dist/core/checkpoint/mutation-checkpoint.d.ts +34 -34
  79. package/dist/core/config/nested-settings.d.ts +26 -26
  80. package/dist/core/config/positional-value.d.ts +16 -16
  81. package/dist/core/diagnostics/remediation.d.ts +6 -6
  82. package/dist/core/diagnostics/remediation.js +1 -1
  83. package/dist/core/extensions/activation-summary-markdown.d.ts +6 -6
  84. package/dist/core/extensions/activation-summary.d.ts +54 -54
  85. package/dist/core/extensions/activation-transaction.d.ts +7 -7
  86. package/dist/core/extensions/capability-usage.d.ts +26 -26
  87. package/dist/core/extensions/command-hook-context.d.ts +26 -26
  88. package/dist/core/extensions/contribution-inventory.d.ts +21 -21
  89. package/dist/core/extensions/extension-candidate.d.ts +14 -14
  90. package/dist/core/extensions/extension-capability-aliases.d.ts +2 -2
  91. package/dist/core/extensions/extension-policy.d.ts +80 -80
  92. package/dist/core/extensions/extension-types.d.ts +1294 -1285
  93. package/dist/core/extensions/extension-types.js +1 -1
  94. package/dist/core/extensions/flag-definition-validation.d.ts +4 -4
  95. package/dist/core/extensions/item-fields.d.ts +3 -2
  96. package/dist/core/extensions/item-fields.js +1 -1
  97. package/dist/core/extensions/loader.d.ts +36 -36
  98. package/dist/core/extensions/loader.js +1 -1
  99. package/dist/core/extensions/manifest-schema.d.ts +16 -16
  100. package/dist/core/extensions/module-graph-snapshot.d.ts +8 -8
  101. package/dist/core/extensions/read-output-contract.d.ts +5 -0
  102. package/dist/core/extensions/read-output-contract.js +2 -0
  103. package/dist/core/extensions/registration-values.d.ts +1 -1
  104. package/dist/core/extensions/reserved-host-flags.d.ts +6 -6
  105. package/dist/core/extensions/version-compat.d.ts +10 -10
  106. package/dist/core/fs/fs-utils.d.ts +1 -1
  107. package/dist/core/fs/host-environment-errors.d.ts +14 -14
  108. package/dist/core/governance/content-fields.d.ts +31 -31
  109. package/dist/core/governance/issue-codes.d.ts +27 -27
  110. package/dist/core/governance/metadata-coverage.d.ts +91 -91
  111. package/dist/core/history/drift-scan.d.ts +26 -26
  112. package/dist/core/history/event-classification.d.ts +1 -1
  113. package/dist/core/history/event-classification.js +1 -1
  114. package/dist/core/history/event-index.d.ts +41 -41
  115. package/dist/core/history/history-compact-bulk.d.ts +22 -22
  116. package/dist/core/history/history-diff.d.ts +22 -22
  117. package/dist/core/history/history-rewrite.d.ts +66 -66
  118. package/dist/core/history/history-storage-stats.d.ts +31 -31
  119. package/dist/core/history/history-stream-policy.d.ts +12 -12
  120. package/dist/core/history/history.d.ts +22 -22
  121. package/dist/core/history/identity.d.ts +6 -6
  122. package/dist/core/history/operation-contract.d.ts +9 -9
  123. package/dist/core/history/projection.d.ts +15 -15
  124. package/dist/core/history/read.d.ts +4 -4
  125. package/dist/core/history/replay.d.ts +51 -49
  126. package/dist/core/history/replay.js +1 -1
  127. package/dist/core/history/workspace-history.d.ts +101 -101
  128. package/dist/core/io/bulk-ids-input.d.ts +4 -4
  129. package/dist/core/item/actionability.d.ts +40 -40
  130. package/dist/core/item/id.d.ts +3 -3
  131. package/dist/core/item/item-format-version.d.ts +8 -8
  132. package/dist/core/item/item-format.d.ts +37 -35
  133. package/dist/core/item/item-format.js +2 -2
  134. package/dist/core/item/item-type-definition.d.ts +2 -2
  135. package/dist/core/item/parent-reference-policy.d.ts +1 -1
  136. package/dist/core/item/parse.d.ts +12 -12
  137. package/dist/core/item/sprint-release-format.d.ts +2 -2
  138. package/dist/core/item/status-filter.d.ts +4 -4
  139. package/dist/core/item/toon-decode.d.ts +9 -9
  140. package/dist/core/item/type-registry.d.ts +40 -40
  141. package/dist/core/lock/lock-gc.d.ts +50 -50
  142. package/dist/core/lock/lock.d.ts +37 -37
  143. package/dist/core/output/mutation-projection.d.ts +6 -6
  144. package/dist/core/output/output-control.d.ts +4 -4
  145. package/dist/core/output/output.d.ts +40 -40
  146. package/dist/core/output/query-summary.d.ts +5 -5
  147. package/dist/core/packages/manifest.d.ts +50 -50
  148. package/dist/core/policy/workflow-policy-schema.d.ts +306 -306
  149. package/dist/core/policy/workflow-policy-store.d.ts +7 -7
  150. package/dist/core/policy/workflow-policy.d.ts +81 -81
  151. package/dist/core/profile/profile-describe.d.ts +40 -40
  152. package/dist/core/profile/profile-lint.d.ts +20 -20
  153. package/dist/core/profile/profile-plan.d.ts +84 -84
  154. package/dist/core/profile/profile-presets.d.ts +52 -52
  155. package/dist/core/reproducibility/context.d.ts +6 -6
  156. package/dist/core/schema/fields-file.d.ts +54 -54
  157. package/dist/core/schema/item-types-file.d.ts +36 -36
  158. package/dist/core/schema/runtime-field-values.d.ts +2 -2
  159. package/dist/core/schema/runtime-schema.d.ts +86 -86
  160. package/dist/core/schema/status-defs-file.d.ts +36 -36
  161. package/dist/core/schema/type-inference.d.ts +14 -14
  162. package/dist/core/schema/type-workflows.d.ts +22 -22
  163. package/dist/core/search/background-refresh.d.ts +9 -9
  164. package/dist/core/search/bm25.d.ts +19 -19
  165. package/dist/core/search/cache.d.ts +35 -35
  166. package/dist/core/search/corpus.d.ts +12 -12
  167. package/dist/core/search/embedding-batches.d.ts +48 -48
  168. package/dist/core/search/eval.d.ts +49 -49
  169. package/dist/core/search/http-client.d.ts +38 -38
  170. package/dist/core/search/providers.d.ts +41 -41
  171. package/dist/core/search/relevance.d.ts +20 -20
  172. package/dist/core/search/semantic-defaults.d.ts +8 -8
  173. package/dist/core/search/staleness.d.ts +4 -4
  174. package/dist/core/search/vector-stores.d.ts +78 -78
  175. package/dist/core/search/vectorization-metadata.d.ts +6 -6
  176. package/dist/core/sentry/helpers.d.ts +15 -15
  177. package/dist/core/sentry/instrument.d.ts +40 -40
  178. package/dist/core/session/session-state.d.ts +32 -32
  179. package/dist/core/shared/agent-session-context.d.ts +14 -14
  180. package/dist/core/shared/author.d.ts +128 -128
  181. package/dist/core/shared/command-types.d.ts +40 -40
  182. package/dist/core/shared/conflict-markers.d.ts +6 -6
  183. package/dist/core/shared/constants.d.ts +13 -13
  184. package/dist/core/shared/errors.d.ts +194 -183
  185. package/dist/core/shared/errors.js +1 -1
  186. package/dist/core/shared/secret-rules.d.ts +97 -97
  187. package/dist/core/shared/serial-queue.d.ts +8 -8
  188. package/dist/core/shared/split-comma-list.d.ts +6 -6
  189. package/dist/core/shared/time.d.ts +23 -23
  190. package/dist/core/store/item-format-migration.d.ts +10 -10
  191. package/dist/core/store/item-metadata-cache.d.ts +38 -38
  192. package/dist/core/store/item-metadata-query-index.d.ts +79 -79
  193. package/dist/core/store/item-metadata-read-work.d.ts +6 -6
  194. package/dist/core/store/item-store.d.ts +110 -110
  195. package/dist/core/store/paths.d.ts +2 -2
  196. package/dist/core/store/settings-read-cache.d.ts +12 -12
  197. package/dist/core/store/settings-validator.d.ts +165 -165
  198. package/dist/core/store/settings.d.ts +59 -59
  199. package/dist/core/telemetry/observability.d.ts +17 -17
  200. package/dist/core/telemetry/policy.d.ts +3 -3
  201. package/dist/core/telemetry/runtime.d.ts +242 -242
  202. package/dist/core/telemetry/runtime.js +2 -2
  203. package/dist/core/test/background-runs.d.ts +186 -185
  204. package/dist/core/test/background-runs.js +2 -2
  205. package/dist/core/test/item-test-run-tracking.d.ts +6 -6
  206. package/dist/core/test/run-selectors.d.ts +18 -18
  207. package/dist/core/validate/fix-planning.d.ts +50 -50
  208. package/dist/core/validate/missing-by-type.d.ts +4 -4
  209. package/dist/core/validate/missing-link-owners.d.ts +30 -30
  210. package/dist/core/validate/stale-file-classification.d.ts +8 -8
  211. package/dist/mcp/http-server.d.ts +28 -28
  212. package/dist/mcp/legacy-adapter.d.ts +33 -33
  213. package/dist/mcp/runtime-capabilities.d.ts +16 -16
  214. package/dist/mcp/server.d.ts +50 -50
  215. package/dist/mcp/tool-definitions.d.ts +36 -36
  216. package/dist/sdk/agent/closed-domain-contracts.d.ts +18 -18
  217. package/dist/sdk/agent/command-recovery.d.ts +4 -0
  218. package/dist/sdk/agent/command-recovery.js +1 -1
  219. package/dist/sdk/agent/command-suggestions.d.ts +2 -0
  220. package/dist/sdk/agent/command-suggestions.js +1 -1
  221. package/dist/sdk/agent/identity-config.d.ts +32 -32
  222. package/dist/sdk/agent/item-addressing.d.ts +8 -8
  223. package/dist/sdk/agent/refusal-closure-census.d.ts +34 -34
  224. package/dist/sdk/agent/refusal-closure.d.ts +42 -42
  225. package/dist/sdk/agent/refusal-corpus-contracts.d.ts +46 -46
  226. package/dist/sdk/agent/refusal-reachability.d.ts +112 -112
  227. package/dist/sdk/agent/subcommand-recovery.d.ts +25 -25
  228. package/dist/sdk/agent/task-transcript-contracts.d.ts +30 -30
  229. package/dist/sdk/agent/tracker-preflight-contracts.d.ts +38 -38
  230. package/dist/sdk/agent-capability-contracts.d.ts +37 -37
  231. package/dist/sdk/annotations.d.ts +106 -106
  232. package/dist/sdk/author-attribution.d.ts +76 -76
  233. package/dist/sdk/authoring.d.ts +1 -1
  234. package/dist/sdk/authoring.js +1 -1
  235. package/dist/sdk/cli-bootstrap.d.ts +70 -70
  236. package/dist/sdk/cli-contracts/agent-output-contracts.d.ts +63 -63
  237. package/dist/sdk/cli-contracts/command-aliases.d.ts +14 -14
  238. package/dist/sdk/cli-contracts/command-exit-contracts.d.ts +70 -70
  239. package/dist/sdk/cli-contracts/commander-types.d.ts +17 -17
  240. package/dist/sdk/cli-contracts/completeness.d.ts +26 -26
  241. package/dist/sdk/cli-contracts/enum-contracts.d.ts +5 -5
  242. package/dist/sdk/cli-contracts/flag-contracts.d.ts +32 -32
  243. package/dist/sdk/cli-contracts/flag-contracts.js +1 -1
  244. package/dist/sdk/cli-contracts/flag-lexicon-contracts.d.ts +42 -42
  245. package/dist/sdk/cli-contracts/flag-lexicon-contracts.js +1 -1
  246. package/dist/sdk/cli-contracts/grammar-contracts.d.ts +84 -84
  247. package/dist/sdk/cli-contracts/grammar-contracts.js +1 -1
  248. package/dist/sdk/cli-contracts/registration-helpers.d.ts +37 -40
  249. package/dist/sdk/cli-contracts/registration-helpers.js +1 -1
  250. package/dist/sdk/cli-contracts/runtime-contracts.d.ts +290 -294
  251. package/dist/sdk/cli-contracts/runtime-contracts.js +1 -1
  252. package/dist/sdk/cli-contracts/schemas/assurance-definition.d.ts +793 -793
  253. package/dist/sdk/cli-contracts/tool-option-contracts.d.ts +391 -391
  254. package/dist/sdk/cli-contracts/tool-parameter-tables.d.ts +6 -6
  255. package/dist/sdk/cli-contracts/tool-parameter-tables.js +1 -1
  256. package/dist/sdk/cli-contracts/tool-schema.d.ts +55 -55
  257. package/dist/sdk/cli-contracts/tool-schema.js +1 -1
  258. package/dist/sdk/cli-contracts/typed-action-inputs.d.ts +24 -24
  259. package/dist/sdk/comments.d.ts +44 -44
  260. package/dist/sdk/compile-cache.d.ts +4 -4
  261. package/dist/sdk/completion/shared.d.ts +22 -22
  262. package/dist/sdk/compose.d.ts +156 -156
  263. package/dist/sdk/config.d.ts +123 -123
  264. package/dist/sdk/context/semantic-session-attribution.d.ts +14 -14
  265. package/dist/sdk/context/usage-ledger.d.ts +20 -20
  266. package/dist/sdk/context-intent-contracts.d.ts +50 -50
  267. package/dist/sdk/context-intent-contracts.js +1 -1
  268. package/dist/sdk/context-intent-runtime.d.ts +8 -8
  269. package/dist/sdk/context-packing.d.ts +78 -78
  270. package/dist/sdk/context-relevance.d.ts +189 -180
  271. package/dist/sdk/context-relevance.js +1 -1
  272. package/dist/sdk/context-signal-store.d.ts +84 -84
  273. package/dist/sdk/context-usage.d.ts +92 -92
  274. package/dist/sdk/core.d.ts +1 -0
  275. package/dist/sdk/core.js +1 -1
  276. package/dist/sdk/corpus-shape.d.ts +101 -101
  277. package/dist/sdk/define.d.ts +2 -2
  278. package/dist/sdk/dependencies.d.ts +116 -116
  279. package/dist/sdk/dependency-flag-validation.d.ts +14 -12
  280. package/dist/sdk/dependency-flag-validation.js +1 -1
  281. package/dist/sdk/dependency-provenance.d.ts +30 -30
  282. package/dist/sdk/docs.d.ts +32 -32
  283. package/dist/sdk/duplicates.d.ts +21 -21
  284. package/dist/sdk/environment/agent-environment.d.ts +196 -196
  285. package/dist/sdk/environment/project-runtime-compatibility.d.ts +56 -56
  286. package/dist/sdk/environment/source-context.d.ts +6 -6
  287. package/dist/sdk/error-code-catalog.d.ts +40 -40
  288. package/dist/sdk/errors.d.ts +29 -29
  289. package/dist/sdk/eval.d.ts +45 -45
  290. package/dist/sdk/extension/author-manifest.d.ts +14 -14
  291. package/dist/sdk/extension/bundled-catalog.d.ts +7 -7
  292. package/dist/sdk/extension/describe.d.ts +36 -36
  293. package/dist/sdk/extension/doctor.d.ts +29 -29
  294. package/dist/sdk/extension/install-plan.d.ts +55 -55
  295. package/dist/sdk/extension/install-receipts.d.ts +2 -2
  296. package/dist/sdk/extension/install-runtime.d.ts +8 -8
  297. package/dist/sdk/extension/install-snapshot.d.ts +14 -14
  298. package/dist/sdk/extension/install-sources.d.ts +96 -96
  299. package/dist/sdk/extension/managed-state.d.ts +66 -66
  300. package/dist/sdk/extension/migrations.d.ts +82 -82
  301. package/dist/sdk/extension/output-ownership.d.ts +24 -24
  302. package/dist/sdk/extension/runtime-summary.d.ts +5 -5
  303. package/dist/sdk/extension/scaffold.d.ts +12 -12
  304. package/dist/sdk/extension/shared.d.ts +15 -15
  305. package/dist/sdk/extension/source-resolution.d.ts +30 -30
  306. package/dist/sdk/extension/static-inventory.d.ts +42 -42
  307. package/dist/sdk/extension/update-check.d.ts +10 -10
  308. package/dist/sdk/extension.d.ts +320 -320
  309. package/dist/sdk/files.d.ts +157 -157
  310. package/dist/sdk/flag-invocation-contracts.d.ts +44 -44
  311. package/dist/sdk/generated/generated-error-code-catalog-part-1.js +1 -1
  312. package/dist/sdk/generated/generated-error-code-catalog-part-2.js +1 -1
  313. package/dist/sdk/governance/artifact-ledgers.d.ts +35 -35
  314. package/dist/sdk/governance/artifact-ledgers.js +1 -1
  315. package/dist/sdk/governance/assurance-action.d.ts +68 -68
  316. package/dist/sdk/governance/assurance-action.js +1 -1
  317. package/dist/sdk/governance/assurance-mutation-error.d.ts +36 -36
  318. package/dist/sdk/governance/assurance-presets.d.ts +24 -24
  319. package/dist/sdk/governance/assurance-runtime.d.ts +14 -14
  320. package/dist/sdk/governance/assurance.d.ts +353 -353
  321. package/dist/sdk/governance/boundary-fixtures.d.ts +60 -60
  322. package/dist/sdk/governance/closure-timestamps.d.ts +9 -9
  323. package/dist/sdk/governance/coverage-assurance.d.ts +10 -10
  324. package/dist/sdk/governance/defect-recurrence-coverage.d.ts +75 -75
  325. package/dist/sdk/governance/defect-recurrence-graph.d.ts +18 -18
  326. package/dist/sdk/governance/defect-recurrence.d.ts +186 -181
  327. package/dist/sdk/governance/defect-recurrence.js +1 -1
  328. package/dist/sdk/governance/extension-host-version.d.ts +16 -16
  329. package/dist/sdk/governance/gc.d.ts +48 -48
  330. package/dist/sdk/governance/health-merge-evidence.d.ts +5 -5
  331. package/dist/sdk/governance/health.d.ts +188 -188
  332. package/dist/sdk/governance/hierarchy-validation.d.ts +13 -13
  333. package/dist/sdk/governance/linked-file-report.d.ts +26 -26
  334. package/dist/sdk/governance/merge-receipt-history.d.ts +36 -36
  335. package/dist/sdk/governance/provenance-health.d.ts +64 -64
  336. package/dist/sdk/governance/reindex.d.ts +89 -89
  337. package/dist/sdk/governance/reliability.d.ts +56 -56
  338. package/dist/sdk/governance/stale-work.d.ts +22 -22
  339. package/dist/sdk/governance/status-role-diagnostics.d.ts +12 -12
  340. package/dist/sdk/governance/storage-integrity.d.ts +54 -54
  341. package/dist/sdk/governance/tracked-runtime-cache.d.ts +10 -10
  342. package/dist/sdk/governance/upgrade.d.ts +104 -104
  343. package/dist/sdk/governance/validate-history-drift.d.ts +2 -2
  344. package/dist/sdk/governance/validate-item-reader.d.ts +6 -6
  345. package/dist/sdk/governance/validate.d.ts +191 -191
  346. package/dist/sdk/governance/workflow-completeness.d.ts +15 -15
  347. package/dist/sdk/governance/workflow-policy.d.ts +28 -28
  348. package/dist/sdk/governance/workspace-position.d.ts +46 -46
  349. package/dist/sdk/graph/adapter.d.ts +66 -66
  350. package/dist/sdk/graph/analytics.d.ts +54 -54
  351. package/dist/sdk/graph/assembly.d.ts +80 -80
  352. package/dist/sdk/graph/cache.d.ts +29 -29
  353. package/dist/sdk/graph/cardinality-integrity.d.ts +13 -0
  354. package/dist/sdk/graph/cardinality-integrity.js +2 -0
  355. package/dist/sdk/graph/centrality.d.ts +34 -34
  356. package/dist/sdk/graph/conformance.d.ts +33 -33
  357. package/dist/sdk/graph/deadline-scheduling.d.ts +58 -58
  358. package/dist/sdk/graph/durable-cache.d.ts +26 -26
  359. package/dist/sdk/graph/governance.d.ts +165 -165
  360. package/dist/sdk/graph/hierarchy-integrity.d.ts +52 -52
  361. package/dist/sdk/graph/index.d.ts +1 -0
  362. package/dist/sdk/graph/index.js +1 -1
  363. package/dist/sdk/graph/lifecycle-coverage.d.ts +17 -17
  364. package/dist/sdk/graph/mutation-advisory.d.ts +11 -11
  365. package/dist/sdk/graph/query-contracts.d.ts +10 -10
  366. package/dist/sdk/graph/remediation.d.ts +25 -25
  367. package/dist/sdk/graph/run.d.ts +392 -392
  368. package/dist/sdk/graph/scheduling.d.ts +38 -38
  369. package/dist/sdk/graph/traversal.d.ts +14 -14
  370. package/dist/sdk/guide-topics.d.ts +32 -32
  371. package/dist/sdk/guide.d.ts +62 -62
  372. package/dist/sdk/history/attestation-command.d.ts +12 -12
  373. package/dist/sdk/history/attestation-contract.d.ts +78 -78
  374. package/dist/sdk/history/attestation-scan.d.ts +6 -6
  375. package/dist/sdk/history/maintenance.d.ts +46 -46
  376. package/dist/sdk/history/salvage.d.ts +18 -18
  377. package/dist/sdk/history/subject.d.ts +9 -9
  378. package/dist/sdk/history-analytics.d.ts +84 -84
  379. package/dist/sdk/history-compact.d.ts +103 -103
  380. package/dist/sdk/history-mcp.d.ts +8 -8
  381. package/dist/sdk/history-provenance.d.ts +59 -59
  382. package/dist/sdk/history-read.d.ts +36 -36
  383. package/dist/sdk/history-redact.d.ts +78 -78
  384. package/dist/sdk/history-repair.d.ts +158 -158
  385. package/dist/sdk/history-repair.js +1 -1
  386. package/dist/sdk/improvement-ledger.d.ts +102 -102
  387. package/dist/sdk/index.d.ts +2 -0
  388. package/dist/sdk/index.js +1 -1
  389. package/dist/sdk/init-agent-guidance.d.ts +70 -70
  390. package/dist/sdk/init.d.ts +152 -152
  391. package/dist/sdk/item-children.d.ts +28 -28
  392. package/dist/sdk/item-schedule.d.ts +12 -12
  393. package/dist/sdk/item-transaction.d.ts +100 -100
  394. package/dist/sdk/learnings.d.ts +42 -42
  395. package/dist/sdk/lifecycle/append.d.ts +14 -14
  396. package/dist/sdk/lifecycle/claim.d.ts +60 -60
  397. package/dist/sdk/lifecycle/close-many.d.ts +94 -94
  398. package/dist/sdk/lifecycle/close.d.ts +27 -27
  399. package/dist/sdk/lifecycle/copy.d.ts +18 -18
  400. package/dist/sdk/lifecycle/core-field-recovery.d.ts +7 -0
  401. package/dist/sdk/lifecycle/core-field-recovery.js +2 -0
  402. package/dist/sdk/lifecycle/create.d.ts +82 -82
  403. package/dist/sdk/lifecycle/create.js +1 -1
  404. package/dist/sdk/lifecycle/delete.d.ts +28 -28
  405. package/dist/sdk/lifecycle/focus.d.ts +10 -10
  406. package/dist/sdk/lifecycle/hierarchy-mutation-lock.d.ts +10 -10
  407. package/dist/sdk/lifecycle/hierarchy-mutation-lock.js +1 -1
  408. package/dist/sdk/lifecycle/legacy-none-tokens.d.ts +54 -54
  409. package/dist/sdk/lifecycle/lifecycle-transitions.d.ts +4 -4
  410. package/dist/sdk/lifecycle/mcp-actions.d.ts +10 -10
  411. package/dist/sdk/lifecycle/mutation-command-options.d.ts +116 -116
  412. package/dist/sdk/lifecycle/mutation-facet-contracts.d.ts +6 -0
  413. package/dist/sdk/lifecycle/mutation-facet-contracts.js +2 -0
  414. package/dist/sdk/lifecycle/plan-mutation-receipt.d.ts +42 -42
  415. package/dist/sdk/lifecycle/plan.d.ts +217 -217
  416. package/dist/sdk/lifecycle/reopen.d.ts +29 -24
  417. package/dist/sdk/lifecycle/reopen.js +1 -1
  418. package/dist/sdk/lifecycle/repeatable-metadata-parsers.d.ts +3 -3
  419. package/dist/sdk/lifecycle/restore.d.ts +33 -33
  420. package/dist/sdk/lifecycle/shared-unset-fields.d.ts +19 -19
  421. package/dist/sdk/lifecycle/task-composition.d.ts +4 -4
  422. package/dist/sdk/lifecycle/update-many.d.ts +79 -79
  423. package/dist/sdk/lifecycle/update.d.ts +131 -132
  424. package/dist/sdk/lifecycle/update.js +2 -2
  425. package/dist/sdk/lifecycle-completion.d.ts +22 -22
  426. package/dist/sdk/lifecycle-policy.d.ts +52 -52
  427. package/dist/sdk/linked-artifacts.d.ts +69 -69
  428. package/dist/sdk/mcp/apps.d.ts +32 -32
  429. package/dist/sdk/mcp/authorization.d.ts +76 -76
  430. package/dist/sdk/mcp/discovery.d.ts +111 -111
  431. package/dist/sdk/mcp/interactions.d.ts +61 -61
  432. package/dist/sdk/mcp/protocol.d.ts +78 -78
  433. package/dist/sdk/mcp/skills.d.ts +88 -88
  434. package/dist/sdk/mcp/subscriptions.d.ts +39 -39
  435. package/dist/sdk/mcp/tasks.d.ts +75 -75
  436. package/dist/sdk/mcp/transport.d.ts +11 -11
  437. package/dist/sdk/merge/abandoned-receipts.d.ts +6 -6
  438. package/dist/sdk/merge/driver.d.ts +60 -60
  439. package/dist/sdk/merge/install.d.ts +64 -64
  440. package/dist/sdk/merge/receipt-file-boundary.d.ts +5 -5
  441. package/dist/sdk/merge/receipt-operation.d.ts +6 -6
  442. package/dist/sdk/merge/receipt-schema.d.ts +2 -2
  443. package/dist/sdk/merge/receipts.d.ts +156 -156
  444. package/dist/sdk/merge/reconcile.d.ts +36 -36
  445. package/dist/sdk/merge/reconcile.js +1 -1
  446. package/dist/sdk/merge/three-way.d.ts +77 -76
  447. package/dist/sdk/merge/three-way.js +1 -1
  448. package/dist/sdk/mutation-events.d.ts +84 -84
  449. package/dist/sdk/mutation-guard.d.ts +106 -106
  450. package/dist/sdk/notes.d.ts +52 -52
  451. package/dist/sdk/output/table-rows.d.ts +8 -8
  452. package/dist/sdk/output-contracts.d.ts +38 -38
  453. package/dist/sdk/output-projection.d.ts +142 -142
  454. package/dist/sdk/output-token-accounting.d.ts +27 -27
  455. package/dist/sdk/output.d.ts +28 -28
  456. package/dist/sdk/package-import-adapters.d.ts +54 -54
  457. package/dist/sdk/pagination.d.ts +29 -29
  458. package/dist/sdk/profile.d.ts +123 -123
  459. package/dist/sdk/provenance.d.ts +58 -58
  460. package/dist/sdk/public-surface.json +1 -1
  461. package/dist/sdk/query/activity.d.ts +118 -118
  462. package/dist/sdk/query/aggregate.d.ts +140 -140
  463. package/dist/sdk/query/calendar.d.ts +144 -144
  464. package/dist/sdk/query/complete-list.d.ts +53 -53
  465. package/dist/sdk/query/context.d.ts +395 -395
  466. package/dist/sdk/query/duplicate-candidates.d.ts +1 -1
  467. package/dist/sdk/query/get.d.ts +77 -77
  468. package/dist/sdk/query/history.d.ts +72 -72
  469. package/dist/sdk/query/item-filter-options.d.ts +79 -79
  470. package/dist/sdk/query/list-filter-shared.d.ts +1 -1
  471. package/dist/sdk/query/list.d.ts +188 -188
  472. package/dist/sdk/query/multi-value-filters.d.ts +4 -4
  473. package/dist/sdk/query/next-ready-budget.d.ts +14 -14
  474. package/dist/sdk/query/next.d.ts +137 -137
  475. package/dist/sdk/query/projection-contracts.d.ts +8 -8
  476. package/dist/sdk/query/search/corpus.d.ts +8 -8
  477. package/dist/sdk/query/search/filters.d.ts +5 -5
  478. package/dist/sdk/query/search/input.d.ts +4 -4
  479. package/dist/sdk/query/search/response.d.ts +8 -8
  480. package/dist/sdk/query/search/semantic.d.ts +106 -106
  481. package/dist/sdk/query/search/types.d.ts +85 -85
  482. package/dist/sdk/query/search-contracts.d.ts +65 -65
  483. package/dist/sdk/query/search-pagination.d.ts +19 -19
  484. package/dist/sdk/query/search-rendering.d.ts +25 -25
  485. package/dist/sdk/query/search.d.ts +46 -46
  486. package/dist/sdk/read-output/continuation.d.ts +8 -8
  487. package/dist/sdk/read-output/continuation.js +1 -1
  488. package/dist/sdk/read-output/extension.d.ts +7 -0
  489. package/dist/sdk/read-output/extension.js +2 -0
  490. package/dist/sdk/read-output/options.d.ts +6 -4
  491. package/dist/sdk/read-output/options.js +1 -1
  492. package/dist/sdk/read-output/provenance.d.ts +8 -8
  493. package/dist/sdk/read-output-budget.d.ts +10 -10
  494. package/dist/sdk/read-output-contracts.d.ts +192 -186
  495. package/dist/sdk/read-output-contracts.js +1 -1
  496. package/dist/sdk/read-output-rows.d.ts +6 -6
  497. package/dist/sdk/read-output-session.d.ts +50 -50
  498. package/dist/sdk/relationship-analytics.d.ts +78 -78
  499. package/dist/sdk/relationship-context.d.ts +81 -81
  500. package/dist/sdk/relationship-history.d.ts +109 -109
  501. package/dist/sdk/relationship-kinds/contract.d.ts +34 -34
  502. package/dist/sdk/relationship-migration.d.ts +26 -26
  503. package/dist/sdk/relationships.d.ts +78 -78
  504. package/dist/sdk/reproducibility/process.d.ts +3 -3
  505. package/dist/sdk/runtime/context.d.ts +11 -11
  506. package/dist/sdk/runtime-action-aliases.d.ts +2 -2
  507. package/dist/sdk/runtime-extended-actions.d.ts +8 -8
  508. package/dist/sdk/runtime-input.d.ts +3 -3
  509. package/dist/sdk/runtime-public-contracts.d.ts +78 -78
  510. package/dist/sdk/runtime.d.ts +305 -305
  511. package/dist/sdk/runtime.js +1 -1
  512. package/dist/sdk/scheduling-shortcuts.d.ts +32 -32
  513. package/dist/sdk/schema-migration.d.ts +86 -86
  514. package/dist/sdk/schema.d.ts +355 -355
  515. package/dist/sdk/similarity-scoring.d.ts +10 -10
  516. package/dist/sdk/similarity.d.ts +113 -113
  517. package/dist/sdk/stats.d.ts +108 -108
  518. package/dist/sdk/structured-mutations.d.ts +16 -16
  519. package/dist/sdk/structured-mutations.js +1 -1
  520. package/dist/sdk/telemetry.d.ts +53 -53
  521. package/dist/sdk/templates.d.ts +39 -39
  522. package/dist/sdk/test/batch.d.ts +85 -85
  523. package/dist/sdk/test/batch.js +1 -1
  524. package/dist/sdk/test/command-args.d.ts +4 -0
  525. package/dist/sdk/test/command-args.js +2 -0
  526. package/dist/sdk/test/entry.d.ts +3 -0
  527. package/dist/sdk/test/entry.js +1 -1
  528. package/dist/sdk/test/execution-receipts.d.ts +3 -3
  529. package/dist/sdk/test/execution.d.ts +279 -268
  530. package/dist/sdk/test/execution.js +2 -2
  531. package/dist/sdk/test/json-path.d.ts +2 -2
  532. package/dist/sdk/test/linked-command-detection.d.ts +10 -10
  533. package/dist/sdk/test/measurements.d.ts +11 -11
  534. package/dist/sdk/test/parsers.d.ts +1 -1
  535. package/dist/sdk/test/parsers.js +1 -1
  536. package/dist/sdk/test/prerequisites.d.ts +6 -0
  537. package/dist/sdk/test/prerequisites.js +2 -0
  538. package/dist/sdk/test/runs.d.ts +52 -52
  539. package/dist/sdk/test/trust.d.ts +12 -12
  540. package/dist/sdk/test/trust.js +1 -1
  541. package/dist/sdk/test/update.d.ts +55 -0
  542. package/dist/sdk/test/update.js +2 -0
  543. package/dist/sdk/testing.d.ts +319 -319
  544. package/dist/sdk/traceability/source-traceability.d.ts +65 -65
  545. package/dist/sdk/workspace-contracts.d.ts +37 -37
  546. package/dist/sdk/workspace-memory.d.ts +60 -60
  547. package/dist/sdk/workspace-recipe.d.ts +9 -9
  548. package/dist/sdk/workspace-snapshot.d.ts +97 -97
  549. package/dist/sdk/workspace-transaction-gc.d.ts +32 -32
  550. package/dist/sdk/workspace-transaction.d.ts +47 -47
  551. package/dist/sdk/workspace.d.ts +6 -6
  552. package/dist/types.d.ts +978 -974
  553. package/dist/types.js +1 -1
  554. package/docs/BUILD_AND_RELEASE_ACCEPTANCE.md +5 -2
  555. package/docs/DEFECT_RECURRENCE.md +12 -0
  556. package/docs/EXTENSIONS.md +2 -2
  557. package/docs/LINKED_TEST_EDITS.md +79 -0
  558. package/docs/MERGE_SAFETY.md +27 -1
  559. package/docs/RECURRENCE_RECOVERY_CONTRACTS.md +17 -4
  560. package/docs/RELATIONSHIP_GRAPH.md +26 -0
  561. package/docs/RELEASING.md +25 -8
  562. package/docs/SDK.md +204 -637
  563. package/docs/SDK_CONSUMER_RECEIPTS.md +67 -0
  564. package/docs/SDK_EVIDENCE_TRACEABILITY.md +4 -0
  565. package/docs/TESTING.md +13 -0
  566. package/docs/generated/FLAG_LEXICON_BUDGETS.md +2 -2
  567. package/docs/generated/REFUSAL_CLOSURE_CENSUS.md +11 -3
  568. package/docs/performance/runner-qualification.md +36 -0
  569. package/marketplace.json +1 -1
  570. package/node_modules/@opentelemetry/core/build/esm/version.d.ts +1 -1
  571. package/node_modules/@opentelemetry/core/build/esm/version.js +1 -1
  572. package/node_modules/@opentelemetry/core/build/esnext/version.d.ts +1 -1
  573. package/node_modules/@opentelemetry/core/build/esnext/version.js +1 -1
  574. package/node_modules/@opentelemetry/core/build/src/version.d.ts +1 -1
  575. package/node_modules/@opentelemetry/core/build/src/version.js +1 -1
  576. package/node_modules/@opentelemetry/core/package.json +2 -2
  577. package/node_modules/@opentelemetry/resources/build/esm/version.d.ts +1 -1
  578. package/node_modules/@opentelemetry/resources/build/esm/version.js +1 -1
  579. package/node_modules/@opentelemetry/resources/build/esnext/version.d.ts +1 -1
  580. package/node_modules/@opentelemetry/resources/build/esnext/version.js +1 -1
  581. package/node_modules/@opentelemetry/resources/build/src/version.d.ts +1 -1
  582. package/node_modules/@opentelemetry/resources/build/src/version.js +1 -1
  583. package/node_modules/@opentelemetry/resources/package.json +3 -3
  584. package/node_modules/@opentelemetry/sdk-trace/build/esm/StackContextManager.d.ts +57 -0
  585. package/node_modules/@opentelemetry/sdk-trace/build/esm/StackContextManager.js +105 -0
  586. package/node_modules/@opentelemetry/sdk-trace/build/esm/index.d.ts +1 -0
  587. package/node_modules/@opentelemetry/sdk-trace/build/esm/index.js +1 -0
  588. package/node_modules/@opentelemetry/sdk-trace/build/esm/version.d.ts +1 -1
  589. package/node_modules/@opentelemetry/sdk-trace/build/esm/version.js +1 -1
  590. package/node_modules/@opentelemetry/sdk-trace/build/esnext/StackContextManager.d.ts +57 -0
  591. package/node_modules/@opentelemetry/sdk-trace/build/esnext/StackContextManager.js +105 -0
  592. package/node_modules/@opentelemetry/sdk-trace/build/esnext/index.d.ts +1 -0
  593. package/node_modules/@opentelemetry/sdk-trace/build/esnext/index.js +1 -0
  594. package/node_modules/@opentelemetry/sdk-trace/build/esnext/version.d.ts +1 -1
  595. package/node_modules/@opentelemetry/sdk-trace/build/esnext/version.js +1 -1
  596. package/node_modules/@opentelemetry/sdk-trace/build/src/StackContextManager.d.ts +57 -0
  597. package/node_modules/@opentelemetry/sdk-trace/build/src/StackContextManager.js +109 -0
  598. package/node_modules/@opentelemetry/sdk-trace/build/src/index.d.ts +1 -0
  599. package/node_modules/@opentelemetry/sdk-trace/build/src/index.js +3 -1
  600. package/node_modules/@opentelemetry/sdk-trace/build/src/version.d.ts +1 -1
  601. package/node_modules/@opentelemetry/sdk-trace/build/src/version.js +1 -1
  602. package/node_modules/@opentelemetry/sdk-trace/package.json +5 -5
  603. package/node_modules/@opentelemetry/sdk-trace-base/build/esm/version.d.ts +1 -1
  604. package/node_modules/@opentelemetry/sdk-trace-base/build/esm/version.js +1 -1
  605. package/node_modules/@opentelemetry/sdk-trace-base/build/esnext/version.d.ts +1 -1
  606. package/node_modules/@opentelemetry/sdk-trace-base/build/esnext/version.js +1 -1
  607. package/node_modules/@opentelemetry/sdk-trace-base/build/src/version.d.ts +1 -1
  608. package/node_modules/@opentelemetry/sdk-trace-base/build/src/version.js +1 -1
  609. package/node_modules/@opentelemetry/sdk-trace-base/package.json +7 -7
  610. package/node_modules/@sentry/core/build/cjs/browser.js +3 -0
  611. package/node_modules/@sentry/core/build/cjs/fetch.js +10 -9
  612. package/node_modules/@sentry/core/build/cjs/index.js +3 -0
  613. package/node_modules/@sentry/core/build/cjs/integrations/http/add-outgoing-request-breadcrumb.js +2 -1
  614. package/node_modules/@sentry/core/build/cjs/integrations/http/get-outgoing-span-data.js +3 -2
  615. package/node_modules/@sentry/core/build/cjs/integrations/http/server-subscription.js +7 -3
  616. package/node_modules/@sentry/core/build/cjs/integrations/requestdata.js +23 -9
  617. package/node_modules/@sentry/core/build/cjs/server.js +3 -0
  618. package/node_modules/@sentry/core/build/cjs/utils/data-collection/filterCollectedUrl.js +24 -0
  619. package/node_modules/@sentry/core/build/cjs/utils/data-collection/filterKeyValueData.js +17 -23
  620. package/node_modules/@sentry/core/build/cjs/utils/data-collection/filterQueryParams.js +8 -15
  621. package/node_modules/@sentry/core/build/cjs/utils/data-collection/filterUrlQuery.js +20 -0
  622. package/node_modules/@sentry/core/build/cjs/utils/url.js +4 -3
  623. package/node_modules/@sentry/core/build/cjs/utils/version.js +1 -1
  624. package/node_modules/@sentry/core/build/esm/browser.js +1 -0
  625. package/node_modules/@sentry/core/build/esm/fetch.js +10 -9
  626. package/node_modules/@sentry/core/build/esm/index.js +1 -0
  627. package/node_modules/@sentry/core/build/esm/integrations/http/add-outgoing-request-breadcrumb.js +2 -1
  628. package/node_modules/@sentry/core/build/esm/integrations/http/get-outgoing-span-data.js +3 -2
  629. package/node_modules/@sentry/core/build/esm/integrations/http/server-subscription.js +7 -3
  630. package/node_modules/@sentry/core/build/esm/integrations/requestdata.js +23 -9
  631. package/node_modules/@sentry/core/build/esm/package.json +1 -1
  632. package/node_modules/@sentry/core/build/esm/server.js +1 -0
  633. package/node_modules/@sentry/core/build/esm/utils/data-collection/filterCollectedUrl.js +21 -0
  634. package/node_modules/@sentry/core/build/esm/utils/data-collection/filterKeyValueData.js +18 -25
  635. package/node_modules/@sentry/core/build/esm/utils/data-collection/filterQueryParams.js +9 -16
  636. package/node_modules/@sentry/core/build/esm/utils/data-collection/filterUrlQuery.js +18 -0
  637. package/node_modules/@sentry/core/build/esm/utils/url.js +4 -3
  638. package/node_modules/@sentry/core/build/esm/utils/version.js +1 -1
  639. package/node_modules/@sentry/core/build/types/shared-exports.d.ts +1 -0
  640. package/node_modules/@sentry/core/build/types/utils/data-collection/filterCollectedUrl.d.ts +21 -0
  641. package/node_modules/@sentry/core/build/types/utils/data-collection/filterKeyValueData.d.ts +1 -0
  642. package/node_modules/@sentry/core/build/types/utils/data-collection/filterQueryParams.d.ts +2 -3
  643. package/node_modules/@sentry/core/build/types/utils/data-collection/filterUrlQuery.d.ts +13 -0
  644. package/node_modules/@sentry/core/build/types/utils/url.d.ts +4 -1
  645. package/node_modules/@sentry/core/build/types-ts3.8/shared-exports.d.ts +1 -0
  646. package/node_modules/@sentry/core/build/types-ts3.8/utils/data-collection/filterCollectedUrl.d.ts +21 -0
  647. package/node_modules/@sentry/core/build/types-ts3.8/utils/data-collection/filterKeyValueData.d.ts +1 -0
  648. package/node_modules/@sentry/core/build/types-ts3.8/utils/data-collection/filterQueryParams.d.ts +2 -3
  649. package/node_modules/@sentry/core/build/types-ts3.8/utils/data-collection/filterUrlQuery.d.ts +13 -0
  650. package/node_modules/@sentry/core/build/types-ts3.8/utils/url.d.ts +4 -1
  651. package/node_modules/@sentry/core/package.json +3 -2
  652. package/node_modules/@sentry/node/build/cjs/integrations/tracing/vercelai/instrumentation.js +3 -0
  653. package/node_modules/@sentry/node/build/esm/integrations/tracing/vercelai/instrumentation.js +3 -0
  654. package/node_modules/@sentry/node/build/esm/package.json +1 -1
  655. package/node_modules/@sentry/node/package.json +7 -6
  656. package/node_modules/@sentry/node-core/build/cjs/integrations/anr/index.js +1 -1
  657. package/node_modules/@sentry/node-core/build/cjs/integrations/http/httpServerSpansIntegration.js +6 -3
  658. package/node_modules/@sentry/node-core/build/cjs/integrations/local-variables/local-variables-async.js +1 -1
  659. package/node_modules/@sentry/node-core/build/cjs/integrations/node-fetch/undici-instrumentation.js +2 -2
  660. package/node_modules/@sentry/node-core/build/cjs/light/client.js +7 -0
  661. package/node_modules/@sentry/node-core/build/cjs/sdk/client.js +7 -0
  662. package/node_modules/@sentry/node-core/build/cjs/utils/outgoingFetchRequest.js +1 -1
  663. package/node_modules/@sentry/node-core/build/esm/integrations/anr/index.js +1 -1
  664. package/node_modules/@sentry/node-core/build/esm/integrations/anr/worker-script.js +2 -2
  665. package/node_modules/@sentry/node-core/build/esm/integrations/http/httpServerSpansIntegration.js +7 -4
  666. package/node_modules/@sentry/node-core/build/esm/integrations/local-variables/local-variables-async.js +1 -1
  667. package/node_modules/@sentry/node-core/build/esm/integrations/local-variables/worker-script.js +1 -1
  668. package/node_modules/@sentry/node-core/build/esm/integrations/node-fetch/undici-instrumentation.js +3 -3
  669. package/node_modules/@sentry/node-core/build/esm/light/client.js +8 -1
  670. package/node_modules/@sentry/node-core/build/esm/package.json +1 -1
  671. package/node_modules/@sentry/node-core/build/esm/sdk/client.js +8 -1
  672. package/node_modules/@sentry/node-core/build/esm/utils/outgoingFetchRequest.js +2 -2
  673. package/node_modules/@sentry/node-core/build/types/light/client.d.ts +1 -0
  674. package/node_modules/@sentry/node-core/build/types/sdk/client.d.ts +1 -0
  675. package/node_modules/@sentry/node-core/build/types-ts3.8/light/client.d.ts +1 -0
  676. package/node_modules/@sentry/node-core/build/types-ts3.8/sdk/client.d.ts +1 -0
  677. package/node_modules/@sentry/node-core/package.json +5 -4
  678. package/node_modules/@sentry/opentelemetry/build/cjs/{asyncContextStrategy-BJ5buq_A.js → asyncContextStrategy-BR-l9zjD.js} +8 -6
  679. package/node_modules/@sentry/opentelemetry/build/cjs/index.browser.js +1 -1
  680. package/node_modules/@sentry/opentelemetry/build/cjs/index.js +1 -1
  681. package/node_modules/@sentry/opentelemetry/build/esm/{asyncContextStrategy-Bx5F5tCX.js → asyncContextStrategy-BQfM_LMv.js} +9 -7
  682. package/node_modules/@sentry/opentelemetry/build/esm/index.browser.js +1 -1
  683. package/node_modules/@sentry/opentelemetry/build/esm/index.js +2 -2
  684. package/node_modules/@sentry/opentelemetry/build/esm/package.json +1 -1
  685. package/node_modules/@sentry/opentelemetry/package.json +4 -3
  686. package/node_modules/@sentry/server-utils/build/cjs/tracing-channel.js +1 -0
  687. package/node_modules/@sentry/server-utils/build/esm/package.json +1 -1
  688. package/node_modules/@sentry/server-utils/build/esm/tracing-channel.js +1 -0
  689. package/node_modules/@sentry/server-utils/build/types/tracing-channel.d.ts +3 -1
  690. package/node_modules/@sentry/server-utils/build/types-ts3.8/tracing-channel.d.ts +3 -1
  691. package/node_modules/@sentry/server-utils/package.json +4 -3
  692. package/node_modules/cjs-module-lexer/README.md +8 -3
  693. package/node_modules/cjs-module-lexer/dist/lexer.js +1 -1
  694. package/node_modules/cjs-module-lexer/dist/lexer.mjs +2 -2
  695. package/node_modules/cjs-module-lexer/lexer.js +48 -9
  696. package/node_modules/cjs-module-lexer/package.json +3 -2
  697. package/node_modules/es-module-lexer/dist/lexer.asm.js +2 -2
  698. package/node_modules/es-module-lexer/dist/lexer.cjs +1 -1
  699. package/node_modules/es-module-lexer/dist/lexer.js +2 -2
  700. package/node_modules/es-module-lexer/dist/lexer.minimal.asm.js +2 -2
  701. package/node_modules/es-module-lexer/dist/lexer.minimal.cjs +1 -1
  702. package/node_modules/es-module-lexer/dist/lexer.minimal.js +2 -2
  703. package/node_modules/es-module-lexer/package.json +1 -1
  704. package/node_modules/import-in-the-middle/CHANGELOG.md +7 -0
  705. package/node_modules/import-in-the-middle/lib/get-esm-exports.mjs +7 -0
  706. package/node_modules/import-in-the-middle/package.json +1 -1
  707. package/package.json +2 -2
  708. package/packages/pm-beads/extensions/beads/runtime.ts +2 -2
  709. package/packages/pm-beads/package.json +1 -1
  710. package/packages/pm-calendar/package.json +1 -1
  711. package/packages/pm-command-kit/package.json +1 -1
  712. package/packages/pm-digital-twin/package.json +1 -1
  713. package/packages/pm-governance-audit/package.json +1 -1
  714. package/packages/pm-guide-shell/package.json +1 -1
  715. package/packages/pm-kanban/package.json +1 -1
  716. package/packages/pm-lifecycle-hooks/package.json +1 -1
  717. package/packages/pm-linked-test-adapters/package.json +1 -1
  718. package/packages/pm-search-advanced/package.json +1 -1
  719. package/packages/pm-templates/package.json +1 -1
  720. package/packages/pm-todos/package.json +1 -1
  721. package/packages/pm-vcs/package.json +1 -1
  722. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  723. package/plugins/pm-claude/package.json +1 -1
  724. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  725. package/plugins/pm-codex/package.json +1 -1
  726. package/plugins/pm-codex/plugin.json +1 -1
  727. package/runtime-dependencies.json +1 -1
  728. package/scripts/finalize-build.mjs +37 -0
  729. package/dist/cli-bundle/chunks/chunk-BXSXT5Z6.js +0 -2
  730. package/dist/cli-bundle/chunks/chunk-KNW3RSLS.js +0 -30
  731. package/dist/cli-bundle/chunks/chunk-MEWBSWE3.js +0 -2
  732. package/dist/cli-bundle/chunks/chunk-RBPOO46D.js +0 -20
  733. package/dist/cli-bundle/chunks/chunk-YMLF6QT7.js +0 -234
  734. package/dist/cli-bundle/chunks/register-operations-PDOBQZUJ.js +0 -2
  735. package/dist/cli-bundle/focused-chunks/chunk-2CJWTLQG.js +0 -2
  736. package/dist/cli-bundle/focused-chunks/chunk-B3YW6H2I.js +0 -26
  737. package/dist/cli-bundle/focused-chunks/chunk-GVGFUD52.js +0 -8
  738. package/dist/cli-bundle/focused-chunks/chunk-MJQ253F3.js +0 -2
  739. package/dist/cli-bundle/focused-chunks/chunk-PBCYGO7X.js +0 -3
  740. package/dist/cli-bundle/focused-chunks/chunk-WOEZJUA2.js +0 -2
@@ -1 +1 @@
1
- {"name":"pm","owner":{"name":"unbrained","url":"https://github.com/unbraind/pm-cli"},"description":"Official marketplace for pm CLI — native git-based project management for Claude Code and AI coding agents.","version":"2026.10.11","plugins":[{"name":"pm-claude","source":"./plugins/pm-claude","description":"Native pm CLI integration for Claude Code — 32 MCP tools, 14 workflow skills with slash invocations, 4 subagents, hybrid TUI task tracking, session context injection, and coordination subagents for git-based project management without leaving Claude Code.","version":"2026.10.11","author":{"name":"unbrained","url":"https://github.com/unbraind/pm-cli"},"homepage":"https://github.com/unbraind/pm-cli","repository":"https://github.com/unbraind/pm-cli","license":"MIT","keywords":["pm-cli","project-management","mcp","tasks","agents","workflows","git-native","task-tracker","ai"],"category":"productivity"}]}
1
+ {"name":"pm","owner":{"name":"unbrained","url":"https://github.com/unbraind/pm-cli"},"description":"Official marketplace for pm CLI — native git-based project management for Claude Code and AI coding agents.","version":"2026.10.13","plugins":[{"name":"pm-claude","source":"./plugins/pm-claude","description":"Native pm CLI integration for Claude Code — 32 MCP tools, 14 workflow skills with slash invocations, 4 subagents, hybrid TUI task tracking, session context injection, and coordination subagents for git-based project management without leaving Claude Code.","version":"2026.10.13","author":{"name":"unbrained","url":"https://github.com/unbraind/pm-cli"},"homepage":"https://github.com/unbraind/pm-cli","repository":"https://github.com/unbraind/pm-cli","license":"MIT","keywords":["pm-cli","project-management","mcp","tasks","agents","workflows","git-native","task-tracker","ai"],"category":"productivity"}]}
package/CHANGELOG.md CHANGED
@@ -1,5 +1,50 @@
1
1
  # Changelog
2
2
 
3
+ ## 2026.10.13 - 2026-10-13
4
+
5
+ ### Added
6
+
7
+ - Let SDK extension read commands opt into universal context output controls ([pm-extension-read-output-controls](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/features/pm-extension-read-output-controls.toon))
8
+
9
+ ### Fixed
10
+
11
+ - Avoid mutation-output flags when recovering an unsupported read projection ([pm-o0tkr6](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-o0tkr6.toon))
12
+ - Preserve MCP warning enforcement when late console logs lack module attribution ([pm-bbyopg](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-bbyopg.toon))
13
+ - Expose safe reviewed migration for historical merge receipts ([pm-tknnzp](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-tknnzp.toon))
14
+ - Accept actively registered relationship kinds in SDK and CLI dependency mutations ([pm-7dsolo](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-7dsolo.toon))
15
+ - Protect distribution inventory and staging from concurrent dist rebuilds ([pm-distribution-consumer-lease](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-distribution-consumer-lease.toon))
16
+ - Preserve documented SDK schema field types through typed helpers ([pm-ty5i58](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-ty5i58.toon))
17
+ - Core external-reference refusal recommends a flag absent from the CLI lexicon ([pm-by83yj](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-by83yj.toon))
18
+ - GH-1443: align item and history union ordering and provenance during lossless merges ([pm-pftgcz](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-pftgcz.toon))
19
+ - Make assurance risk help include the required recurrence policy ([pm-assurance-risk-help-policy](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-assurance-risk-help-policy.toon))
20
+
21
+ ### Other
22
+
23
+ - Refresh eligible Markdown and lint tooling and record pending dependency migrations ([pm-0uxmwf](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/chores/pm-0uxmwf.toon))
24
+ - Deduplicate hosted Commander recovery-context projection ([pm-nrj9sy](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/chores/pm-nrj9sy.toon))
25
+ - Refresh eligible SDK and CI dependencies ([pm-98f0ec](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/chores/pm-98f0ec.toon))
26
+ - Accept universal SDK read receipts in the public context evaluation reader ([pm-i4kxx1](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-i4kxx1.toon))
27
+ - Expose active planning recovery when a canonical item is reopened ([pm-reopen-planning-recovery](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-reopen-planning-recovery.toon))
28
+ - Compact declaration indentation while preserving SDK types and documentation ([pm-chw71s](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-chw71s.toon))
29
+
30
+ ## 2026.10.12 - 2026-10-12
31
+
32
+ ### Fixed
33
+
34
+ - GH-1440: validate linked-test context at write time and distinguish execution refusals ([pm-gh1440](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-gh1440.toon))
35
+ - Declare calendar package positional signatures in the SDK grammar census ([pm-kki6bf](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-kki6bf.toon))
36
+ - Reject sparse artifact ledger inputs through both public SDK exports ([pm-ledger-sparse-delivery](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/changesets/pm-ledger-sparse-delivery.toon))
37
+ - Prevent exact-tag recovery from republishing an accepted npm version while public metadata is unavailable ([pm-publication-acceptance-fence](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-publication-acceptance-fence.toon))
38
+ - Expose the test measurement run prerequisite in help and recovery ([pm-test-measure-prerequisite](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-test-measure-prerequisite.toon))
39
+
40
+ ### Other
41
+
42
+ - Edit linked-test metadata in place with preserved provenance and atomic history ([pm-9djr6d](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-9djr6d.toon))
43
+ - Keep linked-test SDK delivery within publication budgets using authoritative API references ([pm-4g4qv0](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-4g4qv0.toon))
44
+ - Preserve fail-closed startup benchmark runner qualification and complete diagnostics ([pm-runner-qualification-delivery](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-runner-qualification-delivery.toon))
45
+ - Include declared morning automation in daily release blocker alerts and successful recovery ([pm-automatic-release-alerts](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-automatic-release-alerts.toon))
46
+ - Deliver unambiguous registry-derived namespace recovery across installed Node and Bun consumers ([pm-namespace-recovery-delivery](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-namespace-recovery-delivery.toon))
47
+
3
48
  ## 2026.10.11 - 2026-10-11
4
49
 
5
50
  ### Fixed
@@ -6,14 +6,14 @@
6
6
  import { type ActiveTelemetryCommand, type TelemetryCommandOutcome } from "../sdk/runtime-primitives.js";
7
7
  /** Inputs required to attribute one completed command's affected items. */
8
8
  export interface AfterCommandContextUsageOptions {
9
- /** Active tracker root. */
10
- pmRoot: string;
11
- /** Optional invocation-wide author override. */
12
- author?: string;
13
- /** Affected item identifiers, empty for failed or read-only commands. */
14
- itemIds: readonly string[];
15
- /** Stable command intent recorded beside derived touch rows. */
16
- intent: string;
9
+ /** Active tracker root. */
10
+ pmRoot: string;
11
+ /** Optional invocation-wide author override. */
12
+ author?: string;
13
+ /** Affected item identifiers, empty for failed or read-only commands. */
14
+ itemIds: readonly string[];
15
+ /** Stable command intent recorded beside derived touch rows. */
16
+ intent: string;
17
17
  }
18
18
  /** Finalizes the active telemetry command with its normalized CLI outcome. */
19
19
  export declare function finishActiveTelemetryCommand(runtime: ActiveTelemetryCommand | null, outcome: TelemetryCommandOutcome): Promise<void>;
@@ -1,36 +1,36 @@
1
1
  /** Describes one hashed output recorded in the generated CLI bundle manifest. */
2
2
  export interface CliBundleManifestFile {
3
- /** Path relative to the directory containing the manifest. */
4
- path: string;
5
- /** Lowercase SHA-256 digest of the emitted file contents. */
6
- sha256: string;
3
+ /** Path relative to the directory containing the manifest. */
4
+ path: string;
5
+ /** Lowercase SHA-256 digest of the emitted file contents. */
6
+ sha256: string;
7
7
  }
8
8
  /** Describes one atomic CLI bundle generation emitted by the build. */
9
9
  export interface CliBundleManifest {
10
- /** Manifest schema generation. */
11
- schema_version: 1;
12
- /** Stable digest over the sorted file path and digest pairs. */
13
- generation: string;
14
- /** Complete set of JavaScript and source-map outputs in this generation. */
15
- files: CliBundleManifestFile[];
10
+ /** Manifest schema generation. */
11
+ schema_version: 1;
12
+ /** Stable digest over the sorted file path and digest pairs. */
13
+ generation: string;
14
+ /** Complete set of JavaScript and source-map outputs in this generation. */
15
+ files: CliBundleManifestFile[];
16
16
  }
17
17
  /** Captures a validated manifest together with its absolute on-disk path. */
18
18
  export interface CliBundleManifestSnapshot {
19
- /** Absolute manifest path used for later file verification. */
20
- manifest_path: string;
21
- /** Validated manifest payload. */
22
- manifest: CliBundleManifest;
19
+ /** Absolute manifest path used for later file verification. */
20
+ manifest_path: string;
21
+ /** Validated manifest payload. */
22
+ manifest: CliBundleManifest;
23
23
  }
24
24
  /** Reports a proven partial-upgrade or concurrent-build bundle failure. */
25
25
  export interface CliBundleIntegrityDiagnostic {
26
- /** Stable machine-readable error code. */
27
- code: "bundle_integrity_torn_install";
28
- /** Actionable operator-facing recovery text. */
29
- message: string;
30
- /** Specific integrity proof that classified the failure. */
31
- reason: "generation_changed" | "manifest_missing" | "file_missing" | "hash_mismatch";
32
- /** Original module-loader failure text retained for diagnosis. */
33
- cause: string;
26
+ /** Stable machine-readable error code. */
27
+ code: "bundle_integrity_torn_install";
28
+ /** Actionable operator-facing recovery text. */
29
+ message: string;
30
+ /** Specific integrity proof that classified the failure. */
31
+ reason: "generation_changed" | "manifest_missing" | "file_missing" | "hash_mismatch";
32
+ /** Original module-loader failure text retained for diagnosis. */
33
+ cause: string;
34
34
  }
35
35
  /** Reads the bundle manifest next to a compiled `dist/cli.js` entrypoint. */
36
36
  export declare function readCliBundleManifestSnapshot(cliEntrypointPath: string): CliBundleManifestSnapshot | undefined;
@@ -45,5 +45,5 @@ export declare function diagnoseCliBundleIntegrityFailure(error: unknown, initia
45
45
  * failures into a handled recovery diagnostic.
46
46
  */
47
47
  export declare function runCliWithBundleIntegrity(args: string[], cliEntrypointPath: string, loadMain: () => Promise<{
48
- runPmCli: (invocationArgs: string[]) => Promise<void>;
48
+ runPmCli: (invocationArgs: string[]) => Promise<void>;
49
49
  }>, writeStderr: (message: string) => void): Promise<void>;
@@ -11,27 +11,27 @@ import type { ExtensionCommandHelpDescriptor } from "./extension-command-help.js
11
11
  export declare const BUILTIN_TYPE_HELP_VALUES: string;
12
12
  /** Documents the commander usage context payload exchanged by command, SDK, and package integrations. */
13
13
  export interface CommanderUsageContext extends CommanderGuidanceContext {
14
- /** Normalized invocation retained for recovery and transport accounting. */
15
- normalizedInvocationArgs: string[];
16
- /** Human-readable explanation suitable for logs and agent-facing output. */
17
- message: string;
18
- /** Value that configures or reports command name for this contract. */
19
- commandName: string | undefined;
20
- /** Value that configures or reports allowed types for this contract. */
21
- allowedTypes: string;
14
+ /** Normalized invocation retained for recovery and transport accounting. */
15
+ normalizedInvocationArgs: string[];
16
+ /** Human-readable explanation suitable for logs and agent-facing output. */
17
+ message: string;
18
+ /** Value that configures or reports command name for this contract. */
19
+ commandName: string | undefined;
20
+ /** Value that configures or reports allowed types for this contract. */
21
+ allowedTypes: string;
22
22
  }
23
23
  /** Bounded extension activation failure appended to unknown-command guidance. */
24
24
  export interface CommanderExtensionFailure {
25
- /** Extension resolution layer that produced the failure. */
26
- layer: string;
27
- /** Installed extension identity. */
28
- name: string;
29
- /** Actionable activation error without raw extension state. */
30
- error: string;
31
- /** Whether this failed extension statically declares the attempted command. */
32
- declared_command_match?: boolean;
33
- /** Bounded repair and diagnostic commands. */
34
- recovery_commands?: string[];
25
+ /** Extension resolution layer that produced the failure. */
26
+ layer: string;
27
+ /** Installed extension identity. */
28
+ name: string;
29
+ /** Actionable activation error without raw extension state. */
30
+ error: string;
31
+ /** Whether this failed extension statically declares the attempted command. */
32
+ declared_command_match?: boolean;
33
+ /** Bounded repair and diagnostic commands. */
34
+ recovery_commands?: string[];
35
35
  }
36
36
  /** Append extension activation failures to text or JSON Commander usage output. */
37
37
  export declare function appendCommanderExtensionFailures(renderedUsage: string, json: boolean, failures: CommanderExtensionFailure[]): string;
@@ -42,32 +42,32 @@ export declare function collectRuntimeCommandPaths(root: Command, extensionDescr
42
42
  /** Implements score command path match for the public runtime surface of this module. */
43
43
  export declare function scoreCommandPathMatch(commandPath: string, queryToken: string): number;
44
44
  declare function resolveOptionalPackageInstallHint(commandPath: string): {
45
- packageAlias: string;
46
- canonicalPath: string;
47
- installCommand: string;
45
+ packageAlias: string;
46
+ canonicalPath: string;
47
+ installCommand: string;
48
48
  } | null;
49
49
  declare function collectInstalledPackageCommandPathHints(unknownToken: string, extensionDescriptors: ReadonlyMap<string, ExtensionCommandHelpDescriptor>): string[];
50
50
  declare function collectKnownLongFlags(commandName: string | undefined, contractsOverride?: CliFlagContract[]): string[];
51
51
  declare function suggestNearestLongFlags(unknownOption: string, knownFlags: string[]): string[];
52
- /** Implements build unknown command guidance from runtime for the public runtime surface of this module. */
53
- export declare function buildUnknownCommandGuidanceFromRuntime(rawMessage: string, root: Command, extensionDescriptors: ReadonlyMap<string, ExtensionCommandHelpDescriptor>): CommanderGuidanceContext | undefined;
52
+ /** Build inspection-only recovery from installed commands, preserving tracker scope and explicit extension policy in executable retries. */
53
+ export declare function buildUnknownCommandGuidanceFromRuntime(rawMessage: string, root: Command, extensionDescriptors: ReadonlyMap<string, ExtensionCommandHelpDescriptor>, invocationArgv?: readonly string[]): CommanderGuidanceContext | undefined;
54
54
  /** Implements resolve child command by token for the public runtime surface of this module. */
55
55
  export declare function resolveChildCommandByToken(parent: Command, token: string): Command | undefined;
56
56
  /** Implements check whether known help command path for the public runtime surface of this module. */
57
57
  export declare function isKnownHelpCommandPath(root: Command, commandPathTokens: string[]): boolean;
58
58
  declare function resolveSuggestedRetryForMissingOption(message: string, invocationArgv: string[]): string | undefined;
59
59
  /** Resolve runtime command ownership, workspace types and executable recovery guidance for a parser refusal. */
60
- export declare function resolveCommanderUsageContext(error: unknown, rootProgram: Command, extensionDescriptors: ReadonlyMap<string, ExtensionCommandHelpDescriptor>, guidanceOverrides?: Partial<CommanderGuidanceContext>): Promise<CommanderUsageContext>;
60
+ export declare function resolveCommanderUsageContext(error: unknown, rootProgram: Command, extensionDescriptors: ReadonlyMap<string, ExtensionCommandHelpDescriptor>, guidanceOverrides?: Partial<CommanderGuidanceContext>, invocationArgs?: readonly string[]): Promise<CommanderUsageContext>;
61
61
  /** Implements format commander usage message for the public runtime surface of this module. */
62
- export declare function formatCommanderUsageMessage(error: unknown, rootProgram: Command, extensionDescriptors: ReadonlyMap<string, ExtensionCommandHelpDescriptor>, guidanceOverrides?: Partial<CommanderGuidanceContext>): Promise<string>;
62
+ export declare function formatCommanderUsageMessage(error: unknown, rootProgram: Command, extensionDescriptors: ReadonlyMap<string, ExtensionCommandHelpDescriptor>, guidanceOverrides?: Partial<CommanderGuidanceContext>, invocationArgs?: readonly string[]): Promise<string>;
63
63
  /** Implements format commander usage json for the public runtime surface of this module. */
64
- export declare function formatCommanderUsageJson(error: unknown, rootProgram: Command, extensionDescriptors: ReadonlyMap<string, ExtensionCommandHelpDescriptor>, lean?: boolean, guidanceOverrides?: Partial<CommanderGuidanceContext>): Promise<string>;
64
+ export declare function formatCommanderUsageJson(error: unknown, rootProgram: Command, extensionDescriptors: ReadonlyMap<string, ExtensionCommandHelpDescriptor>, lean?: boolean, guidanceOverrides?: Partial<CommanderGuidanceContext>, invocationArgs?: readonly string[]): Promise<string>;
65
65
  /** Public contract for test only, shared by SDK and presentation-layer consumers. */
66
66
  export declare const _testOnly: {
67
- collectKnownLongFlags: typeof collectKnownLongFlags;
68
- collectInstalledPackageCommandPathHints: typeof collectInstalledPackageCommandPathHints;
69
- resolveOptionalPackageInstallHint: typeof resolveOptionalPackageInstallHint;
70
- resolveSuggestedRetryForMissingOption: typeof resolveSuggestedRetryForMissingOption;
71
- suggestNearestLongFlags: typeof suggestNearestLongFlags;
67
+ collectKnownLongFlags: typeof collectKnownLongFlags;
68
+ collectInstalledPackageCommandPathHints: typeof collectInstalledPackageCommandPathHints;
69
+ resolveOptionalPackageInstallHint: typeof resolveOptionalPackageInstallHint;
70
+ resolveSuggestedRetryForMissingOption: typeof resolveSuggestedRetryForMissingOption;
71
+ suggestNearestLongFlags: typeof suggestNearestLongFlags;
72
72
  };
73
73
  export {};
@@ -1,4 +1,4 @@
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]="fff71664-962d-55f6-b21e-dd2c7ca0f419")}catch{}})();import{pathExists,resolveItemTypeRegistry,EXIT_CODE,getSettingsPath,resolvePmRoot,readSettings,getActiveExtensionRegistrations,locateItem,runActiveServiceOverride,levenshteinDistanceWithinLimit}from"../sdk/runtime-primitives.js";import{BUILTIN_ITEM_TYPE_VALUES}from"../types/index.js";import{PM_CORE_COMMAND_NAMES,resolveSubcommandFlagContractsForCommand}from"../sdk/cli-contracts.js";import{formatCommanderErrorForDisplay,formatCommanderErrorForJson,projectLeanErrorEnvelope}from"./error-guidance.js";import{normalizeHelpCommandPath}from"./help-content.js";import{getCommandPath}from"./registration-helpers.js";import{EXECUTABLE_COMMAND_ALIASES,findBootstrapCommandTokenIndex,normalizeBootstrapInvocation,parseBootstrapHelpRequest,parseBootstrapGlobalOptions,parseBootstrapCommandName}from"./bootstrap-args.js";import{extractProvidedOptionFlags,normalizeLongFlag,renderPmCommand}from"./argv-utils.js";import{normalizeExtensionNameForMatch}from"./commands/extension/shared.js";import{canonicalizeCommandSuggestions,rankCommandPaths}from"../sdk/agent/command-suggestions.js";import{renderMissingOptionRetry}from"../sdk/agent/command-recovery.js";import{attachOutputTokenAccounting}from"../sdk/output-token-accounting.js";import{findPmNamespacedCommand,resolvePmCommandAlias}from"../sdk/cli-contracts/command-aliases.js";const BUILTIN_TYPE_HELP_VALUES=BUILTIN_ITEM_TYPE_VALUES.join("|"),OPTIONAL_PACKAGE_INSTALL_HINTS={calendar:"calendar",cal:"calendar",reindex:"search-advanced","search-advanced":"search-advanced",guide:"guide-shell",completion:"guide-shell",templates:"templates","test-runs":"linked-test-adapters",beads:"beads",todos:"todos"},SEMANTIC_UNKNOWN_OPTION_SUGGESTIONS={comments:{"--body":["--add"],"--text":["--add"],"--comment":["--add"]},notes:{"--body":["--add"],"--text":["--add"],"--note":["--add"]},learnings:{"--body":["--add"],"--text":["--add"],"--learning":["--add"]},update:{"--add-tag":["--add-tags"],"--remove-tag":["--remove-tags"],"--tag":["--tags"]},create:{"--add-tag":["--add-tags"],"--tag":["--tags"]}},SCHEMA_SUBCOMMAND_VALUES=["add-field","add-status","add-type","apply-preset","list","list-fields","remap-status","remove-field","remove-status","remove-type","rename-field","rename-type","show","show-field","show-status"];function getSemanticUnknownOptionSuggestions(commandName,unknownOption){const commandSuggestions=SEMANTIC_UNKNOWN_OPTION_SUGGESTIONS[commandName];if(!commandSuggestions)return[];const normalizedUnknown=normalizeLongFlag(unknownOption);for(const[flag,suggestions]of Object.entries(commandSuggestions))if(normalizeLongFlag(flag)===normalizedUnknown)return suggestions;return[]}function appendCommanderExtensionFailures(renderedUsage,json,failures){if(failures.length===0)return renderedUsage;if(json){const primaryFailure2=failures.find(entry=>entry.declared_command_match===!0),{token_accounting:priorAccounting,...usage}=JSON.parse(renderedUsage),enriched={...usage,...primaryFailure2?{extension_command_failure:{code:"extension_command_activation_failed",extension:primaryFailure2.name,layer:primaryFailure2.layer,error:primaryFailure2.error,recovery_commands:primaryFailure2.recovery_commands??[]}}:{},failed_extensions:failures};return JSON.stringify(priorAccounting===void 0?enriched:attachOutputTokenAccounting(enriched,value=>`${JSON.stringify(value,null,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]="f3c73e79-571d-5a1b-94cd-db8c1b8ca7a4")}catch{}})();import{pathExists,resolveItemTypeRegistry,EXIT_CODE,getSettingsPath,resolvePmRoot,readSettings,getActiveExtensionRegistrations,locateItem,runActiveServiceOverride,levenshteinDistanceWithinLimit}from"../sdk/runtime-primitives.js";import{BUILTIN_ITEM_TYPE_VALUES}from"../types/index.js";import{PM_CORE_COMMAND_NAMES,resolveSubcommandFlagContractsForCommand}from"../sdk/cli-contracts.js";import{formatCommanderErrorForDisplay,formatCommanderErrorForJson,projectLeanErrorEnvelope}from"./error-guidance.js";import{normalizeHelpCommandPath}from"./help-content.js";import{getCommandPath}from"./registration-helpers.js";import{EXECUTABLE_COMMAND_ALIASES,findBootstrapCommandTokenIndex,normalizeBootstrapInvocation,parseBootstrapHelpRequest,parseBootstrapGlobalOptions,parseBootstrapCommandName}from"./bootstrap-args.js";import{extractProvidedOptionFlags,normalizeLongFlag,renderPmCommand}from"./argv-utils.js";import{normalizeExtensionNameForMatch}from"./commands/extension/shared.js";import{canonicalizeCommandSuggestions,rankCommandPaths,resolveMisnestedCommandPath}from"../sdk/agent/command-suggestions.js";import{isCompatibleRecoveryFlag,renderMissingOptionRetry}from"../sdk/agent/command-recovery.js";import{attachOutputTokenAccounting}from"../sdk/output-token-accounting.js";import{findPmNamespacedCommand,resolvePmCommandAlias}from"../sdk/cli-contracts/command-aliases.js";const BUILTIN_TYPE_HELP_VALUES=BUILTIN_ITEM_TYPE_VALUES.join("|"),OPTIONAL_PACKAGE_INSTALL_HINTS={calendar:"calendar",cal:"calendar",reindex:"search-advanced","search-advanced":"search-advanced",guide:"guide-shell",completion:"guide-shell",templates:"templates","test-runs":"linked-test-adapters",beads:"beads",todos:"todos"},SEMANTIC_UNKNOWN_OPTION_SUGGESTIONS={comments:{"--body":["--add"],"--text":["--add"],"--comment":["--add"]},notes:{"--body":["--add"],"--text":["--add"],"--note":["--add"]},learnings:{"--body":["--add"],"--text":["--add"],"--learning":["--add"]},update:{"--add-tag":["--add-tags"],"--remove-tag":["--remove-tags"],"--tag":["--tags"]},create:{"--add-tag":["--add-tags"],"--tag":["--tags"]}},SCHEMA_SUBCOMMAND_VALUES=["add-field","add-status","add-type","apply-preset","list","list-fields","remap-status","remove-field","remove-status","remove-type","rename-field","rename-type","show","show-field","show-status"];function getSemanticUnknownOptionSuggestions(commandName,unknownOption){const commandSuggestions=SEMANTIC_UNKNOWN_OPTION_SUGGESTIONS[commandName];if(!commandSuggestions)return[];const normalizedUnknown=normalizeLongFlag(unknownOption);for(const[flag,suggestions]of Object.entries(commandSuggestions))if(normalizeLongFlag(flag)===normalizedUnknown)return suggestions;return[]}function appendCommanderExtensionFailures(renderedUsage,json,failures){if(failures.length===0)return renderedUsage;if(json){const primaryFailure2=failures.find(entry=>entry.declared_command_match===!0),{token_accounting:priorAccounting,...usage}=JSON.parse(renderedUsage),enriched={...usage,...primaryFailure2?{extension_command_failure:{code:"extension_command_activation_failed",extension:primaryFailure2.name,layer:primaryFailure2.layer,error:primaryFailure2.error,recovery_commands:primaryFailure2.recovery_commands??[]}}:{},failed_extensions:failures};return JSON.stringify(priorAccounting===void 0?enriched:attachOutputTokenAccounting(enriched,value=>`${JSON.stringify(value,null,2)}
2
2
  `),null,2)}const details=failures.map(entry=>`- ${entry.layer}:${entry.name}: ${entry.error}`).join(`
3
3
  `),primaryFailure=failures.find(entry=>entry.declared_command_match===!0);if(!primaryFailure)return`${renderedUsage}
4
4
  Extension activation failures:
@@ -10,7 +10,7 @@ ${recovery}`:""}
10
10
 
11
11
  ${renderedUsage}
12
12
  Extension activation failures:
13
- ${details}`}function resolveUnknownCommanderToken(invocationArgv){return parseBootstrapHelpRequest(invocationArgv).commandPathTokens[0]??parseBootstrapCommandName(invocationArgv)??"<command>"}function collectRuntimeCommandPaths(root,extensionDescriptors){const commandPaths=new Set,queue=[...root.commands];for(;queue.length>0;){const current=queue.shift();if(!current)continue;const normalizedPath=normalizeHelpCommandPath(getCommandPath(current)),hasInternalSegment=normalizedPath.split(" ").some(segment=>segment.startsWith("_"));normalizedPath.length>0&&!hasInternalSegment&&commandPaths.add(normalizedPath),queue.push(...current.commands)}for(const descriptorPath of extensionDescriptors.keys()){const normalizedPath=normalizeHelpCommandPath(descriptorPath),hasInternalSegment=normalizedPath.split(" ").some(segment=>segment.startsWith("_"));normalizedPath.length>0&&!hasInternalSegment&&commandPaths.add(normalizedPath)}return[...commandPaths].sort((left,right)=>left.localeCompare(right))}function scoreCommandPathMatch(commandPath,queryToken){const normalizedPath=commandPath.trim().toLowerCase(),normalizedToken=queryToken.trim().toLowerCase();if(normalizedToken.length===0)return Number.POSITIVE_INFINITY;const pathSegments=normalizedPath.split(" ");if(normalizedPath===normalizedToken)return 0;if(pathSegments.includes(normalizedToken))return 1;if(pathSegments.some(segment=>segment.startsWith(normalizedToken)))return 2;if(normalizedPath.includes(normalizedToken))return 3;const maxDistance=normalizedToken.length>=5?2:1;let bestDistance=Number.POSITIVE_INFINITY;for(const segment of pathSegments){const distance=levenshteinDistanceWithinLimit(segment,normalizedToken,maxDistance);distance!==null&&(bestDistance=Math.min(bestDistance,distance))}return Number.isFinite(bestDistance)?4+bestDistance:Number.POSITIVE_INFINITY}function toComparableFlag(flag){return normalizeLongFlag(flag).slice(2).replace(/-/g,"")}function renderAttemptedCommand(argv){return renderPmCommand(argv)}function resolveOptionalPackageInstallHint(commandPath){const canonicalPath=resolvePmCommandAlias(commandPath)?.canonical??EXECUTABLE_COMMAND_ALIASES[commandPath]??commandPath,topLevel=canonicalPath.split(" ")[0]?.trim().toLowerCase();if(!topLevel)return null;const packageAlias=OPTIONAL_PACKAGE_INSTALL_HINTS[topLevel];return packageAlias?{packageAlias,canonicalPath,installCommand:`pm package install ${packageAlias} --project`}:null}function normalizePackageCommandAliasToken(value){let normalized=normalizeExtensionNameForMatch(value);for(const prefix of["@unbrained/","builtin-","pm-"])normalized.startsWith(prefix)&&(normalized=normalized.slice(prefix.length));return normalized}function collectInstalledPackageCommandPathHints(unknownToken,extensionDescriptors){const normalizedUnknown=normalizePackageCommandAliasToken(unknownToken);if(normalizedUnknown.length===0)return[];const hints=[];for(const descriptor of extensionDescriptors.values()){const identifiers=new Set,source=descriptor.source;if(source)for(const identifier of[source.name,source.package]){const normalizedIdentifier=normalizePackageCommandAliasToken(identifier??"");normalizedIdentifier.length>0&&identifiers.add(normalizedIdentifier)}identifiers.size!==0&&[...identifiers].some(identifier=>identifier===normalizedUnknown||identifier.includes(normalizedUnknown)||normalizedUnknown.includes(identifier))&&hints.push(descriptor.command)}return[...new Set(hints)].sort((left,right)=>left.localeCompare(right))}function collectKnownLongFlags(commandName,contractsOverride){const flags=new Set,contracts=contractsOverride??resolveSubcommandFlagContractsForCommand(commandName);for(const contract of contracts){contract.flag.startsWith("--")&&flags.add(normalizeLongFlag(contract.flag));for(const alias of contract.aliases??[])alias.startsWith("--")&&flags.add(normalizeLongFlag(alias))}return[...flags].sort((left,right)=>left.localeCompare(right))}function suggestNearestLongFlags(unknownOption,knownFlags){if(!unknownOption.startsWith("--"))return[];const unknownComparable=toComparableFlag(unknownOption);if(unknownComparable.length===0)return[];const maxDistance=unknownComparable.length>=8?2:1,candidates=[];for(const flag of knownFlags){const flagComparable=toComparableFlag(flag);if(flagComparable===unknownComparable)continue;if(unknownComparable.length>=3&&flagComparable.startsWith(unknownComparable)){candidates.push({flag,rank:0,distance:flagComparable.length-unknownComparable.length});continue}const distance=levenshteinDistanceWithinLimit(unknownComparable,flagComparable,maxDistance);distance===null||distance<=0||candidates.push({flag,rank:1,distance})}return candidates.sort((left,right)=>left.rank!==right.rank?left.rank-right.rank:left.distance!==right.distance?left.distance-right.distance:left.flag.localeCompare(right.flag)).map(entry=>entry.flag).slice(0,3)}let crossCommandFlagIndexCache;const CROSS_COMMAND_FLAG_EXCLUSIONS=new Set(["ctx","packages","list-draft","list-open","list-in-progress","list-blocked","list-closed","list-canceled","start-task","pause-task","close-task","help"]);function getCrossCommandFlagIndex(){if(crossCommandFlagIndexCache)return crossCommandFlagIndexCache;const index=new Map;for(const command of PM_CORE_COMMAND_NAMES)if(!CROSS_COMMAND_FLAG_EXCLUSIONS.has(command))for(const flag of collectKnownLongFlags(command)){const commands=index.get(flag)??[];commands.push(command),index.set(flag,commands)}return crossCommandFlagIndexCache=index,crossCommandFlagIndexCache}function findOtherCommandsForFlag(unknownOption,currentCommand){if(!unknownOption.startsWith("--"))return[];const commands=getCrossCommandFlagIndex().get(normalizeLongFlag(unknownOption));if(!commands)return[];const normalizedCurrent=currentCommand?.trim().toLowerCase(),currentFlags=new Set(collectKnownLongFlags(normalizedCurrent));return[...new Set(commands.filter(command=>command!==normalizedCurrent).map(command=>({command,sharedFlagCount:collectKnownLongFlags(command).filter(flag=>currentFlags.has(flag)).length})).sort((left,right)=>left.sharedFlagCount!==right.sharedFlagCount?right.sharedFlagCount-left.sharedFlagCount:left.command.localeCompare(right.command)).map(({command})=>resolvePmCommandAlias(command)?.canonical??command))]}function rewriteUnknownOptionArgv(argv,unknownOption,replacementFlag){for(let index=0;index<argv.length;index+=1){const token=argv[index];if(!token.startsWith("--"))continue;const equalsIndex=token.indexOf("="),key=equalsIndex>=0?token.slice(0,equalsIndex):token;if(normalizeLongFlag(key)!==normalizeLongFlag(unknownOption))continue;const next=[...argv];return next[index]=equalsIndex>=0?`${replacementFlag}${token.slice(equalsIndex)}`:replacementFlag,next}}function scoreRuntimeCommandCandidates(params){const commandPathSet=new Set(params.commandPaths),scoreAgainstUnknown=candidatePath=>Math.min(scoreCommandPathMatch(candidatePath,params.normalizedUnknown),params.primaryToken!==params.normalizedUnknown?scoreCommandPathMatch(candidatePath,params.primaryToken):Number.POSITIVE_INFINITY),scoresByCommandPath=new Map,recordCandidateScore=(commandPath,score)=>{if(!Number.isFinite(score)||!commandPathSet.has(commandPath))return;const existing=scoresByCommandPath.get(commandPath);(existing===void 0||score<existing)&&scoresByCommandPath.set(commandPath,score)};for(const commandPath of params.commandPaths)recordCandidateScore(commandPath,scoreAgainstUnknown(commandPath));for(const[aliasToken,canonicalPath]of Object.entries(EXECUTABLE_COMMAND_ALIASES))aliasToken!=="read"&&recordCandidateScore(canonicalPath,scoreAgainstUnknown(aliasToken));return[...scoresByCommandPath.entries()].sort(([leftPath,leftScore],[rightPath,rightScore])=>leftScore!==rightScore?leftScore-rightScore:leftPath.localeCompare(rightPath)).map(([commandPath])=>commandPath)}function resolveUnknownCommandCandidates(params){const exactAlias=resolvePmCommandAlias(params.normalizedUnknown),semanticCandidates=rankCommandPaths(params.commandPaths,params.primaryToken),rankedCandidates=scoreRuntimeCommandCandidates(params),installedPackageCandidates=collectInstalledPackageCommandPathHints(params.primaryToken,params.extensionDescriptors).filter(commandPath=>params.commandPaths.includes(commandPath));return canonicalizeCommandSuggestions([...exactAlias&&params.commandPaths.includes(exactAlias.canonical)?[exactAlias.canonical_argv.join(" ")]:[],...semanticCandidates,...rankedCandidates,...installedPackageCandidates],params.commandPaths,params.primaryToken).filter(path=>!params.normalizedUnknown.includes(" ")||path!==params.normalizedUnknown)}function resolveUnknownCommandFallbacks(commandPaths){return[...new Set(commandPaths.map(commandPath=>commandPath.split(" ")[0]).filter(segment=>segment.length>0))].sort((left,right)=>left.localeCompare(right))}function buildUnknownCommandExamples(suggestedPaths,hasConcreteCandidates){const suggestedExamples=suggestedPaths.map(path=>`pm ${path} --help`);return hasConcreteCandidates?[...new Set([...suggestedExamples,"pm --help --all"])]:[...new Set(["pm --help --all",...suggestedExamples])]}function buildUnknownCommandGuidanceFromRuntime(rawMessage,root,extensionDescriptors){const unknownCommandMatch=rawMessage.match(/unknown command '([^']+)'/i);if(!unknownCommandMatch||typeof unknownCommandMatch[1]!="string")return;const normalizedUnknown=normalizeHelpCommandPath(unknownCommandMatch[1]);if(normalizedUnknown.length===0)return;const commandPaths=collectRuntimeCommandPaths(root,extensionDescriptors);if(commandPaths.length===0)return;const optionalPackageHint=resolveOptionalPackageInstallHint(normalizedUnknown);if(optionalPackageHint&&!commandPaths.includes(optionalPackageHint.canonicalPath.split(" ")[0]))return{unknownCommandExamples:[optionalPackageHint.installCommand,`pm ${optionalPackageHint.canonicalPath} --help`,"pm --help --all"],unknownCommandNextSteps:[`"${normalizedUnknown}" is provided by the "${optionalPackageHint.packageAlias}" package. Install it with: ${optionalPackageHint.installCommand}. Command after installation: pm ${optionalPackageHint.canonicalPath}.`],suggestedRetryCommand:optionalPackageHint.installCommand};const primaryToken=normalizedUnknown.split(" ")[0],combinedCandidates=resolveUnknownCommandCandidates({commandPaths,normalizedUnknown,primaryToken,extensionDescriptors}),fallbackTopLevel=resolveUnknownCommandFallbacks(commandPaths),suggestedPaths=(combinedCandidates.length>0?combinedCandidates:canonicalizeCommandSuggestions(fallbackTopLevel,commandPaths)).slice(0,3),examples=buildUnknownCommandExamples(suggestedPaths,combinedCandidates.length>0),didYouMean=combinedCandidates.length>0?`Did you mean: ${suggestedPaths.join(", ")}?`:null;return{unknownCommandExamples:examples,unknownCommandNextSteps:[...didYouMean?[didYouMean]:[],'Run "pm --help --all" to list every command available in this runtime, including active extensions.',...didYouMean?["Use one of the suggested command paths above with --help to inspect valid flags and usage."]:[]]}}function dedupeStrings(values){return Array.from(new Set(values))}function firstWhitespaceSeparatedToken(input){let token="";for(const character of input){if(character===" "||character===" "||character===`
14
- `||character==="\r"||character==="\f"||character==="\v")break;token+=character}return token}function trimTrailingPunctuationToken(token){let end=token.length;for(;end>0;){const character=token[end-1];if(character!==","&&character!==":"&&character!==";")break;end-=1}return token.slice(0,end)}function resolveChildCommandByToken(parent,token){const normalizedToken=token.trim().toLowerCase();return parent.commands.find(candidate=>candidate.name().trim().toLowerCase()===normalizedToken?!0:(typeof candidate.aliases=="function"?candidate.aliases():[]).some(alias=>alias.trim().toLowerCase()===normalizedToken))}function isKnownHelpCommandPath(root,commandPathTokens){if(commandPathTokens.length===0)return!0;let current=root;for(const[tokenIndex,token]of commandPathTokens.entries()){const next=resolveChildCommandByToken(current,token);if(!next){const declaredArguments=current.registeredArguments;return declaredArguments.length>0&&(current.commands.length===0||declaredArguments[0]?.required===!0)&&(declaredArguments.at(-1)?.variadic===!0||commandPathTokens.length-tokenIndex<=declaredArguments.length)}current=next}return!0}async function resolveWorkspaceUsageContext(bootstrapGlobal,message,invocationArgv,commandName){try{const pmRoot=resolvePmRoot(process.cwd(),bootstrapGlobal.path);if(!await pathExists(getSettingsPath(pmRoot)))return{allowedTypes:BUILTIN_TYPE_HELP_VALUES};const settings=await readSettings(pmRoot),extensionRegistrations=bootstrapGlobal.noExtensions?void 0:getActiveExtensionRegistrations(),typeRegistry=resolveItemTypeRegistry(settings,extensionRegistrations);let verifiedCollectionItemId;if(/too many arguments/i.test(message)&&["comments","docs","files","learnings","notes","test"].includes(commandName??"")){const commandIndex=invocationArgv.findIndex(token=>token===commandName),candidate=invocationArgv[commandIndex+2];if(invocationArgv[commandIndex+1]?.toLowerCase()==="add"&&candidate!==void 0&&!candidate.startsWith("-"))try{verifiedCollectionItemId=(await locateItem(pmRoot,candidate,settings.id_prefix,settings.item_format,typeRegistry.type_to_folder))?.id}catch{}}return{allowedTypes:typeRegistry.types.length>0?typeRegistry.types.join("|"):BUILTIN_TYPE_HELP_VALUES,pmRoot,settings,typeToFolder:typeRegistry.type_to_folder,verifiedCollectionItemId}}catch{return{allowedTypes:BUILTIN_TYPE_HELP_VALUES}}}function resolveUnknownOptionSuggestions(message,commandName){const match=message.match(/unknown option '([^']+)'/i),suggestions=match&&commandName?dedupeStrings([...getSemanticUnknownOptionSuggestions(commandName,match[1]),...suggestNearestLongFlags(match[1],collectKnownLongFlags(commandName))]):void 0,otherCommands=match?findOtherCommandsForFlag(match[1],commandName):[],declaredOnPath=match!==null&&collectKnownLongFlags(commandName).includes(normalizeLongFlag(match[1]));return{match,suggestions,otherCommands,scope:declaredOnPath?"declared_on_path":otherCommands.length>0?"declared_elsewhere":"declared_nowhere"}}function resolveSuggestedRetryForUnknownOption(invocationArgv,unknownOptionMatch,unknownOptionSuggestions){if(!unknownOptionMatch||!unknownOptionSuggestions||unknownOptionSuggestions.length===0)return;const rewritten=rewriteUnknownOptionArgv(invocationArgv,unknownOptionMatch[1],unknownOptionSuggestions[0]);return rewritten?renderAttemptedCommand(rewritten):void 0}function resolveSuggestedRetryForMissingOption(message,invocationArgv){const missingRequiredOption=message.match(/required option '([^']+)' not specified/i),requiredOptionToken=missingRequiredOption?.[1]?trimTrailingPunctuationToken(firstWhitespaceSeparatedToken(missingRequiredOption[1].trim())):void 0;if(!requiredOptionToken?.startsWith("--"))return;const commandName=parseBootstrapCommandName(invocationArgv);if(commandName)return renderMissingOptionRetry(invocationArgv,commandName,[requiredOptionToken])}function resolveSplitSchemaSubcommand(message,invocationArgv){if(!/too many arguments/i.test(message))return;const commandIndex=findBootstrapCommandTokenIndex(invocationArgv),namespaced=findPmNamespacedCommand(invocationArgv.slice(commandIndex));if(namespaced?.alias!=="schema")return;const schemaIndex=commandIndex+namespaced.canonical_argv.length-1,verb=invocationArgv[schemaIndex+1]?.trim().toLowerCase(),noun=invocationArgv[schemaIndex+2]?.trim().toLowerCase();if(!verb||!noun)return;const joined=`${verb}-${noun}`;if(!SCHEMA_SUBCOMMAND_VALUES.includes(joined))return;const rewritten=[...invocationArgv.slice(0,schemaIndex+1),joined,...invocationArgv.slice(schemaIndex+3)];return{unknownSubcommandPath:"schema",unknownSubcommandToken:`${verb} ${noun}`,unknownSubcommandAllowedValues:[...SCHEMA_SUBCOMMAND_VALUES],suggestedRetryCommand:renderAttemptedCommand(rewritten)}}function resolveRecoveryCommandName(message,invocationArgv,rootProgram,extensionDescriptors){const commandIndex=findBootstrapCommandTokenIndex(invocationArgv),inferred=findPmNamespacedCommand(invocationArgv.slice(commandIndex))?.alias??parseBootstrapCommandName(invocationArgv);if(!/unknown option /i.test(message)||inferred===void 0)return inferred;const canonical=resolvePmCommandAlias(inferred)?.canonical??inferred;return PM_CORE_COMMAND_NAMES.some(name=>name===inferred)||collectRuntimeCommandPaths(rootProgram,extensionDescriptors).includes(canonical)?inferred:void 0}async function resolveCommanderUsageContext(error,rootProgram,extensionDescriptors,guidanceOverrides={}){const message=(typeof error=="object"&&error!==null?error.message:void 0)??"Invalid command usage",invocationArgv=normalizeBootstrapInvocation(process.argv.slice(2)).argv,bootstrapGlobal=parseBootstrapGlobalOptions(invocationArgv),commandName=resolveRecoveryCommandName(message,invocationArgv,rootProgram,extensionDescriptors),attemptedCommand=renderAttemptedCommand(invocationArgv),providedOptionFlags=extractProvidedOptionFlags(invocationArgv),workspaceUsage=await resolveWorkspaceUsageContext(bootstrapGlobal,message,invocationArgv,commandName),allowedTypes=workspaceUsage.allowedTypes,unknownCommandGuidance=buildUnknownCommandGuidanceFromRuntime(message,rootProgram,extensionDescriptors),unknownOption=resolveUnknownOptionSuggestions(message,commandName),splitSchemaSubcommand=resolveSplitSchemaSubcommand(message,invocationArgv),suggestedRetryCommand=splitSchemaSubcommand?.suggestedRetryCommand??resolveSuggestedRetryForUnknownOption(invocationArgv,unknownOption.match,unknownOption.suggestions)??resolveSuggestedRetryForMissingOption(message,invocationArgv);return{message,commandName,allowedTypes,attemptedCommand,normalizedInvocationArgs:[...invocationArgv],providedOptionFlags,unknownOptionSuggestions:unknownOption.suggestions,unknownOptionOtherCommands:unknownOption.otherCommands.length>0?unknownOption.otherCommands.slice(0,12):void 0,unknownOptionOtherCommandsTotal:unknownOption.otherCommands.length>0?unknownOption.otherCommands.length:void 0,unknownOptionOtherCommandsTruncated:unknownOption.otherCommands.length>12||void 0,unknownOptionScope:unknownOption.scope,suggestedRetryCommand,verifiedCollectionItemId:workspaceUsage.verifiedCollectionItemId,...splitSchemaSubcommand,...unknownCommandGuidance,...guidanceOverrides}}async function formatCommanderUsageMessage(error,rootProgram,extensionDescriptors,guidanceOverrides={}){const usageContext=await resolveCommanderUsageContext(error,rootProgram,extensionDescriptors,guidanceOverrides),{message,commandName,allowedTypes,unknownCommandExamples,unknownCommandNextSteps,attemptedCommand,normalizedInvocationArgs,providedOptionFlags,unknownOptionSuggestions,unknownOptionOtherCommands,unknownOptionOtherCommandsTotal,unknownOptionOtherCommandsTruncated,unknownOptionScope,unknownSubcommandPath,unknownSubcommandToken,unknownSubcommandAllowedValues,suggestedRetryCommand,verifiedCollectionItemId,failedExtensions}=usageContext,formatted=formatCommanderErrorForDisplay(message,commandName,allowedTypes,{unknownCommandExamples,unknownCommandNextSteps,attemptedCommand,normalizedInvocationArgs,providedOptionFlags,unknownOptionSuggestions,unknownOptionOtherCommands,unknownOptionOtherCommandsTotal,unknownOptionOtherCommandsTruncated,unknownOptionScope,unknownSubcommandPath,unknownSubcommandToken,unknownSubcommandAllowedValues,suggestedRetryCommand,verifiedCollectionItemId,failedExtensions}),serviceOverride=await runActiveServiceOverride("help_format",{message:formatted,command:commandName,allowed_types:allowedTypes});return serviceOverride.handled&&typeof serviceOverride.result=="string"?serviceOverride.result:formatted}async function formatCommanderUsageJson(error,rootProgram,extensionDescriptors,lean=!1,guidanceOverrides={}){const usageContext=await resolveCommanderUsageContext(error,rootProgram,extensionDescriptors,guidanceOverrides),envelope=formatCommanderErrorForJson(usageContext.message,usageContext.commandName,usageContext.allowedTypes,EXIT_CODE.USAGE,{unknownCommandExamples:usageContext.unknownCommandExamples,unknownCommandNextSteps:usageContext.unknownCommandNextSteps,attemptedCommand:usageContext.attemptedCommand,normalizedInvocationArgs:usageContext.normalizedInvocationArgs,providedOptionFlags:usageContext.providedOptionFlags,unknownOptionSuggestions:usageContext.unknownOptionSuggestions,unknownOptionOtherCommands:usageContext.unknownOptionOtherCommands,unknownOptionOtherCommandsTotal:usageContext.unknownOptionOtherCommandsTotal,unknownOptionOtherCommandsTruncated:usageContext.unknownOptionOtherCommandsTruncated,unknownOptionScope:usageContext.unknownOptionScope,unknownSubcommandPath:usageContext.unknownSubcommandPath,unknownSubcommandToken:usageContext.unknownSubcommandToken,unknownSubcommandAllowedValues:usageContext.unknownSubcommandAllowedValues,suggestedRetryCommand:usageContext.suggestedRetryCommand,verifiedCollectionItemId:usageContext.verifiedCollectionItemId,failedExtensions:usageContext.failedExtensions}),projected=lean?projectLeanErrorEnvelope(envelope):envelope,accountingRequested=parseBootstrapGlobalOptions(usageContext.normalizedInvocationArgs).tokenAccounting===!0;return JSON.stringify(accountingRequested?attachOutputTokenAccounting(projected,value=>`${JSON.stringify(value,null,2)}
13
+ ${details}`}function resolveUnknownCommanderToken(invocationArgv){return parseBootstrapHelpRequest(invocationArgv).commandPathTokens[0]??parseBootstrapCommandName(invocationArgv)??"<command>"}function collectRuntimeCommandPaths(root,extensionDescriptors){const commandPaths=new Set,queue=[...root.commands];for(;queue.length>0;){const current=queue.shift();if(!current)continue;const normalizedPath=normalizeHelpCommandPath(getCommandPath(current)),hasInternalSegment=normalizedPath.split(" ").some(segment=>segment.startsWith("_"));normalizedPath.length>0&&!hasInternalSegment&&commandPaths.add(normalizedPath),queue.push(...current.commands)}for(const descriptorPath of extensionDescriptors.keys()){const normalizedPath=normalizeHelpCommandPath(descriptorPath),hasInternalSegment=normalizedPath.split(" ").some(segment=>segment.startsWith("_"));normalizedPath.length>0&&!hasInternalSegment&&commandPaths.add(normalizedPath)}return[...commandPaths].sort((left,right)=>left.localeCompare(right))}function scoreCommandPathMatch(commandPath,queryToken){const normalizedPath=commandPath.trim().toLowerCase(),normalizedToken=queryToken.trim().toLowerCase();if(normalizedToken.length===0)return Number.POSITIVE_INFINITY;const pathSegments=normalizedPath.split(" ");if(normalizedPath===normalizedToken)return 0;if(pathSegments.includes(normalizedToken))return 1;if(pathSegments.some(segment=>segment.startsWith(normalizedToken)))return 2;if(normalizedPath.includes(normalizedToken))return 3;const maxDistance=normalizedToken.length>=5?2:1;let bestDistance=Number.POSITIVE_INFINITY;for(const segment of pathSegments){const distance=levenshteinDistanceWithinLimit(segment,normalizedToken,maxDistance);distance!==null&&(bestDistance=Math.min(bestDistance,distance))}return Number.isFinite(bestDistance)?4+bestDistance:Number.POSITIVE_INFINITY}function toComparableFlag(flag){return normalizeLongFlag(flag).slice(2).replace(/-/g,"")}function renderAttemptedCommand(argv){return renderPmCommand(argv)}function resolveOptionalPackageInstallHint(commandPath){const canonicalPath=resolvePmCommandAlias(commandPath)?.canonical??EXECUTABLE_COMMAND_ALIASES[commandPath]??commandPath,topLevel=canonicalPath.split(" ")[0]?.trim().toLowerCase();if(!topLevel)return null;const packageAlias=OPTIONAL_PACKAGE_INSTALL_HINTS[topLevel];return packageAlias?{packageAlias,canonicalPath,installCommand:`pm package install ${packageAlias} --project`}:null}function normalizePackageCommandAliasToken(value){let normalized=normalizeExtensionNameForMatch(value);for(const prefix of["@unbrained/","builtin-","pm-"])normalized.startsWith(prefix)&&(normalized=normalized.slice(prefix.length));return normalized}function collectInstalledPackageCommandPathHints(unknownToken,extensionDescriptors){const normalizedUnknown=normalizePackageCommandAliasToken(unknownToken);if(normalizedUnknown.length===0)return[];const hints=[];for(const descriptor of extensionDescriptors.values()){const identifiers=new Set,source=descriptor.source;if(source)for(const identifier of[source.name,source.package]){const normalizedIdentifier=normalizePackageCommandAliasToken(identifier??"");normalizedIdentifier.length>0&&identifiers.add(normalizedIdentifier)}identifiers.size!==0&&[...identifiers].some(identifier=>identifier===normalizedUnknown||identifier.includes(normalizedUnknown)||normalizedUnknown.includes(identifier))&&hints.push(descriptor.command)}return[...new Set(hints)].sort((left,right)=>left.localeCompare(right))}function collectKnownLongFlags(commandName,contractsOverride){const flags=new Set,contracts=contractsOverride??resolveSubcommandFlagContractsForCommand(commandName);for(const contract of contracts){contract.flag.startsWith("--")&&flags.add(normalizeLongFlag(contract.flag));for(const alias of contract.aliases??[])alias.startsWith("--")&&flags.add(normalizeLongFlag(alias))}return[...flags].sort((left,right)=>left.localeCompare(right))}function suggestNearestLongFlags(unknownOption,knownFlags){if(!unknownOption.startsWith("--"))return[];const unknownComparable=toComparableFlag(unknownOption);if(unknownComparable.length===0)return[];const maxDistance=unknownComparable.length>=8?2:1,candidates=[];for(const flag of knownFlags){const flagComparable=toComparableFlag(flag);if(flagComparable===unknownComparable)continue;if(unknownComparable.length>=3&&flagComparable.startsWith(unknownComparable)){candidates.push({flag,rank:0,distance:flagComparable.length-unknownComparable.length});continue}const distance=levenshteinDistanceWithinLimit(unknownComparable,flagComparable,maxDistance);distance===null||distance<=0||candidates.push({flag,rank:1,distance})}return candidates.sort((left,right)=>left.rank!==right.rank?left.rank-right.rank:left.distance!==right.distance?left.distance-right.distance:left.flag.localeCompare(right.flag)).map(entry=>entry.flag).slice(0,3)}let crossCommandFlagIndexCache;const CROSS_COMMAND_FLAG_EXCLUSIONS=new Set(["ctx","packages","list-draft","list-open","list-in-progress","list-blocked","list-closed","list-canceled","start-task","pause-task","close-task","help"]);function getCrossCommandFlagIndex(){if(crossCommandFlagIndexCache)return crossCommandFlagIndexCache;const index=new Map;for(const command of PM_CORE_COMMAND_NAMES)if(!CROSS_COMMAND_FLAG_EXCLUSIONS.has(command))for(const flag of collectKnownLongFlags(command)){const commands=index.get(flag)??[];commands.push(command),index.set(flag,commands)}return crossCommandFlagIndexCache=index,crossCommandFlagIndexCache}function findOtherCommandsForFlag(unknownOption,currentCommand){if(!unknownOption.startsWith("--"))return[];const commands=getCrossCommandFlagIndex().get(normalizeLongFlag(unknownOption));if(!commands)return[];const normalizedCurrent=currentCommand?.trim().toLowerCase(),currentFlags=new Set(collectKnownLongFlags(normalizedCurrent));return[...new Set(commands.filter(command=>command!==normalizedCurrent).map(command=>({command,sharedFlagCount:collectKnownLongFlags(command).filter(flag=>currentFlags.has(flag)).length})).sort((left,right)=>left.sharedFlagCount!==right.sharedFlagCount?right.sharedFlagCount-left.sharedFlagCount:left.command.localeCompare(right.command)).map(({command})=>resolvePmCommandAlias(command)?.canonical??command))]}function rewriteUnknownOptionArgv(argv,unknownOption,replacementFlag){for(let index=0;index<argv.length;index+=1){const token=argv[index];if(!token.startsWith("--"))continue;const equalsIndex=token.indexOf("="),key=equalsIndex>=0?token.slice(0,equalsIndex):token;if(normalizeLongFlag(key)!==normalizeLongFlag(unknownOption))continue;const next=[...argv];return next[index]=equalsIndex>=0?`${replacementFlag}${token.slice(equalsIndex)}`:replacementFlag,next}}function scoreRuntimeCommandCandidates(params){const commandPathSet=new Set(params.commandPaths),scoreAgainstUnknown=candidatePath=>Math.min(scoreCommandPathMatch(candidatePath,params.normalizedUnknown),params.primaryToken!==params.normalizedUnknown?scoreCommandPathMatch(candidatePath,params.primaryToken):Number.POSITIVE_INFINITY),scoresByCommandPath=new Map,recordCandidateScore=(commandPath,score)=>{if(!Number.isFinite(score)||!commandPathSet.has(commandPath))return;const existing=scoresByCommandPath.get(commandPath);(existing===void 0||score<existing)&&scoresByCommandPath.set(commandPath,score)};for(const commandPath of params.commandPaths)recordCandidateScore(commandPath,scoreAgainstUnknown(commandPath));for(const[aliasToken,canonicalPath]of Object.entries(EXECUTABLE_COMMAND_ALIASES))aliasToken!=="read"&&recordCandidateScore(canonicalPath,scoreAgainstUnknown(aliasToken));return[...scoresByCommandPath.entries()].sort(([leftPath,leftScore],[rightPath,rightScore])=>leftScore!==rightScore?leftScore-rightScore:leftPath.localeCompare(rightPath)).map(([commandPath])=>commandPath)}function resolveUnknownCommandCandidates(params){const exactAlias=resolvePmCommandAlias(params.normalizedUnknown),semanticCandidates=rankCommandPaths(params.commandPaths,params.primaryToken),rankedCandidates=scoreRuntimeCommandCandidates(params),installedPackageCandidates=collectInstalledPackageCommandPathHints(params.primaryToken,params.extensionDescriptors).filter(commandPath=>params.commandPaths.includes(commandPath));return canonicalizeCommandSuggestions([...exactAlias&&params.commandPaths.includes(exactAlias.canonical)?[exactAlias.canonical_argv.join(" ")]:[],...semanticCandidates,...rankedCandidates,...installedPackageCandidates],params.commandPaths,params.primaryToken).filter(path=>!params.normalizedUnknown.includes(" ")||path!==params.normalizedUnknown)}function resolveUnknownCommandFallbacks(commandPaths){return[...new Set(commandPaths.map(commandPath=>commandPath.split(" ")[0]).filter(segment=>segment.length>0))].sort((left,right)=>left.localeCompare(right))}function buildUnknownCommandExamples(suggestedPaths,hasConcreteCandidates){const suggestedExamples=suggestedPaths.map(path=>`pm ${path} --help`);return hasConcreteCandidates?[...new Set([...suggestedExamples,"pm --help --all"])]:[...new Set(["pm --help --all",...suggestedExamples])]}function resolveUnknownCommandPath(token,invocationArgv,commandPaths){let commandIndex=findBootstrapCommandTokenIndex([...invocationArgv]);const path=[];for(;commandIndex!==void 0;){if(path.push(invocationArgv[commandIndex]),invocationArgv[commandIndex]===token)return path.join(" ");if(!commandPaths.includes(path.join(" ")))return token;const offset=findBootstrapCommandTokenIndex(invocationArgv.slice(commandIndex+1));commandIndex=offset===void 0?void 0:commandIndex+1+offset}return token}function buildCanonicalHelpRetryArgs(canonicalPath,invocationArgv){if(!canonicalPath)return;const bootstrapGlobal=parseBootstrapGlobalOptions([...invocationArgv]);return[...bootstrapGlobal.path?["--pm-path",resolvePmRoot(process.cwd(),bootstrapGlobal.path)]:[],...bootstrapGlobal.noExtensions?["--no-extensions"]:[],...canonicalPath.split(" "),"--help"]}function buildUnknownCommandGuidanceFromRuntime(rawMessage,root,extensionDescriptors,invocationArgv=[]){const unknownCommandMatch=rawMessage.match(/unknown command '([^']+)'/i);if(!unknownCommandMatch||typeof unknownCommandMatch[1]!="string")return;const commandPaths=collectRuntimeCommandPaths(root,extensionDescriptors),unknownPath=resolveUnknownCommandPath(unknownCommandMatch[1],invocationArgv,commandPaths),normalizedUnknown=normalizeHelpCommandPath(unknownPath);if(normalizedUnknown.length===0||commandPaths.length===0)return;const optionalPackageHint=resolveOptionalPackageInstallHint(normalizedUnknown);if(optionalPackageHint&&!commandPaths.includes(optionalPackageHint.canonicalPath.split(" ")[0]))return{unknownCommandExamples:[optionalPackageHint.installCommand,`pm ${optionalPackageHint.canonicalPath} --help`,"pm --help --all"],unknownCommandNextSteps:[`"${normalizedUnknown}" is provided by the "${optionalPackageHint.packageAlias}" package. Install it with: ${optionalPackageHint.installCommand}. Command after installation: pm ${optionalPackageHint.canonicalPath}.`],suggestedRetryCommand:optionalPackageHint.installCommand};const primaryToken=normalizedUnknown.split(" ")[0],combinedCandidates=resolveUnknownCommandCandidates({commandPaths,normalizedUnknown,primaryToken,extensionDescriptors}),fallbackTopLevel=resolveUnknownCommandFallbacks(commandPaths),misnestedPath=resolveMisnestedCommandPath(normalizedUnknown,commandPaths),retryArgs=buildCanonicalHelpRetryArgs(misnestedPath,invocationArgv),suggestedPaths=[...new Set([...misnestedPath?[misnestedPath]:[],...combinedCandidates.length>0?combinedCandidates:canonicalizeCommandSuggestions(fallbackTopLevel,commandPaths)])].slice(0,3),examples=buildUnknownCommandExamples(suggestedPaths,combinedCandidates.length>0),didYouMean=combinedCandidates.length>0?`Did you mean: ${suggestedPaths.join(", ")}?`:null;return{...retryArgs?{suggestedRetryCommand:renderPmCommand(retryArgs),suggestedRetryArgs:retryArgs}:{},unknownCommandExamples:retryArgs?[renderPmCommand(retryArgs),...examples.slice(1)]:examples,unknownCommandNextSteps:[...didYouMean?[didYouMean]:[],'Run "pm --help --all" to list every command available in this runtime, including active extensions.',...didYouMean?["Use one of the suggested command paths above with --help to inspect valid flags and usage."]:[]]}}function dedupeStrings(values){return Array.from(new Set(values))}function firstWhitespaceSeparatedToken(input){let token="";for(const character of input){if(character===" "||character===" "||character===`
14
+ `||character==="\r"||character==="\f"||character==="\v")break;token+=character}return token}function trimTrailingPunctuationToken(token){let end=token.length;for(;end>0;){const character=token[end-1];if(character!==","&&character!==":"&&character!==";")break;end-=1}return token.slice(0,end)}function resolveChildCommandByToken(parent,token){const normalizedToken=token.trim().toLowerCase();return parent.commands.find(candidate=>candidate.name().trim().toLowerCase()===normalizedToken?!0:(typeof candidate.aliases=="function"?candidate.aliases():[]).some(alias=>alias.trim().toLowerCase()===normalizedToken))}function isKnownHelpCommandPath(root,commandPathTokens){if(commandPathTokens.length===0)return!0;let current=root;for(const[tokenIndex,token]of commandPathTokens.entries()){const next=resolveChildCommandByToken(current,token);if(!next){const declaredArguments=current.registeredArguments;return declaredArguments.length>0&&(current.commands.length===0||declaredArguments[0]?.required===!0)&&(declaredArguments.at(-1)?.variadic===!0||commandPathTokens.length-tokenIndex<=declaredArguments.length)}current=next}return!0}async function resolveWorkspaceUsageContext(bootstrapGlobal,message,invocationArgv,commandName){try{const pmRoot=resolvePmRoot(process.cwd(),bootstrapGlobal.path);if(!await pathExists(getSettingsPath(pmRoot)))return{allowedTypes:BUILTIN_TYPE_HELP_VALUES};const settings=await readSettings(pmRoot),extensionRegistrations=bootstrapGlobal.noExtensions?void 0:getActiveExtensionRegistrations(),typeRegistry=resolveItemTypeRegistry(settings,extensionRegistrations);let verifiedCollectionItemId;if(/too many arguments/i.test(message)&&["comments","docs","files","learnings","notes","test"].includes(commandName??"")){const commandIndex=invocationArgv.findIndex(token=>token===commandName),candidate=invocationArgv[commandIndex+2];if(invocationArgv[commandIndex+1]?.toLowerCase()==="add"&&candidate!==void 0&&!candidate.startsWith("-"))try{verifiedCollectionItemId=(await locateItem(pmRoot,candidate,settings.id_prefix,settings.item_format,typeRegistry.type_to_folder))?.id}catch{}}return{allowedTypes:typeRegistry.types.length>0?typeRegistry.types.join("|"):BUILTIN_TYPE_HELP_VALUES,pmRoot,settings,typeToFolder:typeRegistry.type_to_folder,verifiedCollectionItemId}}catch{return{allowedTypes:BUILTIN_TYPE_HELP_VALUES}}}function resolveUnknownOptionSuggestions(message,commandName){const match=message.match(/unknown option '([^']+)'/i),suggestions=match&&commandName?dedupeStrings([...getSemanticUnknownOptionSuggestions(commandName,match[1]),...suggestNearestLongFlags(match[1],collectKnownLongFlags(commandName))]).filter(candidate=>isCompatibleRecoveryFlag(match[1],candidate)):void 0,otherCommands=match?findOtherCommandsForFlag(match[1],commandName):[],declaredOnPath=match!==null&&collectKnownLongFlags(commandName).includes(normalizeLongFlag(match[1]));return{match,suggestions,otherCommands,scope:declaredOnPath?"declared_on_path":otherCommands.length>0?"declared_elsewhere":"declared_nowhere"}}function resolveSuggestedRetryForUnknownOption(invocationArgv,unknownOptionMatch,unknownOptionSuggestions){if(!unknownOptionMatch||!unknownOptionSuggestions||unknownOptionSuggestions.length===0)return;const rewritten=rewriteUnknownOptionArgv(invocationArgv,unknownOptionMatch[1],unknownOptionSuggestions[0]);return rewritten?renderAttemptedCommand(rewritten):void 0}function resolveSuggestedRetryForMissingOption(message,invocationArgv){const missingRequiredOption=message.match(/required option '([^']+)' not specified/i),requiredOptionToken=missingRequiredOption?.[1]?trimTrailingPunctuationToken(firstWhitespaceSeparatedToken(missingRequiredOption[1].trim())):void 0;if(!requiredOptionToken?.startsWith("--"))return;const commandName=parseBootstrapCommandName(invocationArgv);if(commandName)return renderMissingOptionRetry(invocationArgv,commandName,[requiredOptionToken])}function resolveSplitSchemaSubcommand(message,invocationArgv){if(!/too many arguments/i.test(message))return;const commandIndex=findBootstrapCommandTokenIndex(invocationArgv),namespaced=findPmNamespacedCommand(invocationArgv.slice(commandIndex));if(namespaced?.alias!=="schema")return;const schemaIndex=commandIndex+namespaced.canonical_argv.length-1,verb=invocationArgv[schemaIndex+1]?.trim().toLowerCase(),noun=invocationArgv[schemaIndex+2]?.trim().toLowerCase();if(!verb||!noun)return;const joined=`${verb}-${noun}`;if(!SCHEMA_SUBCOMMAND_VALUES.includes(joined))return;const rewritten=[...invocationArgv.slice(0,schemaIndex+1),joined,...invocationArgv.slice(schemaIndex+3)];return{unknownSubcommandPath:"schema",unknownSubcommandToken:`${verb} ${noun}`,unknownSubcommandAllowedValues:[...SCHEMA_SUBCOMMAND_VALUES],suggestedRetryCommand:renderAttemptedCommand(rewritten)}}function resolveRecoveryCommandName(message,invocationArgv,rootProgram,extensionDescriptors){const commandIndex=findBootstrapCommandTokenIndex(invocationArgv),inferred=findPmNamespacedCommand(invocationArgv.slice(commandIndex))?.alias??parseBootstrapCommandName(invocationArgv);if(!/unknown option /i.test(message)||inferred===void 0)return inferred;const canonical=resolvePmCommandAlias(inferred)?.canonical??inferred;return PM_CORE_COMMAND_NAMES.some(name=>name===inferred)||collectRuntimeCommandPaths(rootProgram,extensionDescriptors).includes(canonical)?inferred:void 0}async function resolveCommanderUsageContext(error,rootProgram,extensionDescriptors,guidanceOverrides={},invocationArgs=process.argv.slice(2)){const message=(typeof error=="object"&&error!==null?error.message:void 0)??"Invalid command usage",invocationArgv=normalizeBootstrapInvocation([...invocationArgs]).argv,bootstrapGlobal=parseBootstrapGlobalOptions(invocationArgv),commandName=resolveRecoveryCommandName(message,invocationArgv,rootProgram,extensionDescriptors),attemptedCommand=renderAttemptedCommand(invocationArgv),providedOptionFlags=extractProvidedOptionFlags(invocationArgv),workspaceUsage=await resolveWorkspaceUsageContext(bootstrapGlobal,message,invocationArgv,commandName),allowedTypes=workspaceUsage.allowedTypes,unknownCommandGuidance=buildUnknownCommandGuidanceFromRuntime(message,rootProgram,extensionDescriptors,invocationArgv),unknownOption=resolveUnknownOptionSuggestions(message,commandName),splitSchemaSubcommand=resolveSplitSchemaSubcommand(message,invocationArgv),suggestedRetryCommand=splitSchemaSubcommand?.suggestedRetryCommand??resolveSuggestedRetryForUnknownOption(invocationArgv,unknownOption.match,unknownOption.suggestions)??resolveSuggestedRetryForMissingOption(message,invocationArgv);return{message,commandName,allowedTypes,attemptedCommand,normalizedInvocationArgs:[...invocationArgv],providedOptionFlags,unknownOptionSuggestions:unknownOption.suggestions,unknownOptionOtherCommands:unknownOption.otherCommands.length>0?unknownOption.otherCommands.slice(0,12):void 0,unknownOptionOtherCommandsTotal:unknownOption.otherCommands.length>0?unknownOption.otherCommands.length:void 0,unknownOptionOtherCommandsTruncated:unknownOption.otherCommands.length>12||void 0,unknownOptionScope:unknownOption.scope,suggestedRetryCommand,verifiedCollectionItemId:workspaceUsage.verifiedCollectionItemId,...splitSchemaSubcommand,...unknownCommandGuidance,...guidanceOverrides}}async function formatCommanderUsageMessage(error,rootProgram,extensionDescriptors,guidanceOverrides={},invocationArgs=process.argv.slice(2)){const usageContext=await resolveCommanderUsageContext(error,rootProgram,extensionDescriptors,guidanceOverrides,invocationArgs),{message,commandName,allowedTypes,...guidance}=usageContext,formatted=formatCommanderErrorForDisplay(message,commandName,allowedTypes,guidance),serviceOverride=await runActiveServiceOverride("help_format",{message:formatted,command:commandName,allowed_types:allowedTypes});return serviceOverride.handled&&typeof serviceOverride.result=="string"?serviceOverride.result:formatted}async function formatCommanderUsageJson(error,rootProgram,extensionDescriptors,lean=!1,guidanceOverrides={},invocationArgs=process.argv.slice(2)){const usageContext=await resolveCommanderUsageContext(error,rootProgram,extensionDescriptors,guidanceOverrides,invocationArgs),envelope=formatCommanderErrorForJson(usageContext.message,usageContext.commandName,usageContext.allowedTypes,EXIT_CODE.USAGE,usageContext),projected=lean?projectLeanErrorEnvelope(envelope):envelope,accountingRequested=parseBootstrapGlobalOptions(usageContext.normalizedInvocationArgs).tokenAccounting===!0;return JSON.stringify(accountingRequested?attachOutputTokenAccounting(projected,value=>`${JSON.stringify(value,null,2)}
15
15
  `):projected,null,2)}const _testOnly={collectKnownLongFlags,collectInstalledPackageCommandPathHints,resolveOptionalPackageInstallHint,resolveSuggestedRetryForMissingOption,suggestNearestLongFlags};export{BUILTIN_TYPE_HELP_VALUES,_testOnly,appendCommanderExtensionFailures,buildUnknownCommandGuidanceFromRuntime,collectRuntimeCommandPaths,formatCommanderUsageJson,formatCommanderUsageMessage,isKnownHelpCommandPath,resolveChildCommandByToken,resolveCommanderUsageContext,resolveUnknownCommanderToken,scoreCommandPathMatch};
16
16
  //# sourceMappingURL=commander-usage.js.map