@unbrained/pm-cli 2026.8.12 → 2026.8.14

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 (218) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/CHANGELOG.md +162 -111
  3. package/dist/cli/error-guidance.js +4 -8
  4. package/dist/cli/main.js +40 -3
  5. package/dist/cli/register-assurance.js +28 -17
  6. package/dist/cli-bundle/bundle-manifest.json +141 -173
  7. package/dist/cli-bundle/chunks/chunk-BBOFSVAK.js +197 -0
  8. package/dist/cli-bundle/chunks/chunk-BFALV3YP.js +5 -0
  9. package/dist/cli-bundle/chunks/{chunk-WLAHPSOX.js → chunk-FIW4P64F.js} +2 -2
  10. package/dist/cli-bundle/chunks/{chunk-BM5YJ2UW.js → chunk-G5JUB66K.js} +52 -52
  11. package/dist/cli-bundle/chunks/chunk-SBRKH6OR.js +2 -0
  12. package/dist/cli-bundle/chunks/chunk-TMJ7URWS.js +13 -0
  13. package/dist/cli-bundle/chunks/chunk-TXMEUUUY.js +8 -0
  14. package/dist/cli-bundle/chunks/{chunk-KOQMGCTA.js → chunk-XAVMOK6B.js} +50 -50
  15. package/dist/cli-bundle/chunks/chunk-YAMTJL6Y.js +34 -0
  16. package/dist/cli-bundle/chunks/chunk-YSVSMJ2B.js +2 -0
  17. package/dist/cli-bundle/chunks/{register-list-query-XPCJRUUD.js → register-list-query-T3EHHNNV.js} +2 -2
  18. package/dist/cli-bundle/chunks/{register-mutation-4RJCBKRS.js → register-mutation-E27WCLSZ.js} +2 -2
  19. package/dist/cli-bundle/chunks/register-operations-4R6I7CPY.js +2 -0
  20. package/dist/cli-bundle/chunks/{register-setup-LLHAKP2V.js → register-setup-3YXZ444E.js} +2 -2
  21. package/dist/cli-bundle/focused-chunks/{chunk-JAFRIWVF.js → chunk-4DQ2YERC.js} +4 -4
  22. package/dist/cli-bundle/focused-chunks/chunk-F43TT2QQ.js +8 -0
  23. package/dist/cli-bundle/focused-chunks/chunk-K7RWWOAG.js +4 -0
  24. package/dist/cli-bundle/focused-chunks/chunk-KFSZ3BP6.js +16 -0
  25. package/dist/cli-bundle/focused-chunks/{chunk-KHM2CS2C.js → chunk-KSEDUWVZ.js} +2 -2
  26. package/dist/cli-bundle/focused-chunks/chunk-KYUQGTSB.js +2 -0
  27. package/dist/cli-bundle/focused-chunks/{chunk-ZMGWAYH7.js → chunk-LZ4MV3RH.js} +2 -2
  28. package/dist/cli-bundle/focused-chunks/chunk-PGXJQLCT.js +155 -0
  29. package/dist/cli-bundle/focused-chunks/{chunk-RWPAWUOT.js → chunk-PPFGQDSI.js} +2 -2
  30. package/dist/cli-bundle/focused-chunks/chunk-Q4YY3XNF.js +2 -0
  31. package/dist/cli-bundle/focused-chunks/chunk-QK753U3U.js +46 -0
  32. package/dist/cli-bundle/focused-chunks/chunk-QUMB2J27.js +2 -0
  33. package/dist/cli-bundle/focused-chunks/chunk-SM7MTG27.js +2 -0
  34. package/dist/cli-bundle/focused-chunks/{chunk-GQW4BPUT.js → chunk-WCVE2NIG.js} +2 -2
  35. package/dist/cli-bundle/focused-chunks/chunk-XDNAW5OI.js +18 -0
  36. package/dist/cli-bundle/focused-chunks/{chunk-YIAXMC3T.js → chunk-YOOI3UZX.js} +2 -2
  37. package/dist/cli-bundle/focused-chunks/chunk-ZM6TZVHC.js +2 -0
  38. package/dist/cli-bundle/main.js +13 -13
  39. package/dist/cli-bundle/sdk-authoring.js +1 -1
  40. package/dist/cli-bundle/sdk-contracts.js +1 -1
  41. package/dist/cli-bundle/sdk-core.js +45 -41
  42. package/dist/cli-bundle/sdk-governance.js +1 -1
  43. package/dist/cli-bundle/sdk-graph.js +1 -1
  44. package/dist/cli-bundle/sdk-merge.js +109 -1
  45. package/dist/cli-bundle/sdk-query.js +1 -1
  46. package/dist/cli-bundle/sdk-runtime.js +1 -1
  47. package/dist/cli-bundle/sdk-testing.js +1 -1
  48. package/dist/cli-bundle/sdk.js +2 -2
  49. package/dist/core/checkpoint/checkpoint-gc.js +7 -12
  50. package/dist/core/extensions/activation-summary-markdown.js +5 -4
  51. package/dist/core/extensions/activation-summary.d.ts +2 -0
  52. package/dist/core/extensions/activation-summary.js +6 -2
  53. package/dist/core/extensions/capability-usage.d.ts +1 -1
  54. package/dist/core/extensions/capability-usage.js +4 -3
  55. package/dist/core/extensions/contribution-inventory.d.ts +1 -0
  56. package/dist/core/extensions/contribution-inventory.js +6 -2
  57. package/dist/core/extensions/extension-registries.js +3 -2
  58. package/dist/core/extensions/extension-types.d.ts +83 -1
  59. package/dist/core/extensions/extension-types.js +3 -2
  60. package/dist/core/extensions/loader.d.ts +2 -8
  61. package/dist/core/extensions/loader.js +53 -144
  62. package/dist/core/extensions/registration-values.d.ts +43 -0
  63. package/dist/core/extensions/registration-values.js +210 -0
  64. package/dist/core/extensions/runtime-registrations.d.ts +3 -1
  65. package/dist/core/extensions/runtime-registrations.js +12 -2
  66. package/dist/core/fs/fs-utils.d.ts +2 -0
  67. package/dist/core/fs/fs-utils.js +7 -3
  68. package/dist/core/history/drift-cache.js +4 -3
  69. package/dist/core/history/drift-scan.d.ts +6 -0
  70. package/dist/core/history/drift-scan.js +76 -58
  71. package/dist/core/history/workspace-history.d.ts +59 -0
  72. package/dist/core/history/workspace-history.js +197 -10
  73. package/dist/core/lock/lock-gc.js +8 -13
  74. package/dist/core/lock/lock.js +5 -4
  75. package/dist/core/output/output.js +12 -4
  76. package/dist/core/search/vector-stores.js +6 -11
  77. package/dist/core/store/item-metadata-cache.js +4 -4
  78. package/dist/core/telemetry/runtime.d.ts +6 -0
  79. package/dist/core/telemetry/runtime.js +101 -30
  80. package/dist/sdk/agent/command-recovery.d.ts +2 -0
  81. package/dist/sdk/agent/command-recovery.js +10 -2
  82. package/dist/sdk/annotations.js +4 -4
  83. package/dist/sdk/cli-contracts/completeness.js +9 -3
  84. package/dist/sdk/cli-contracts/enum-contracts.d.ts +1 -1
  85. package/dist/sdk/cli-contracts/flag-contracts.js +6 -3
  86. package/dist/sdk/cli-contracts/runtime-contracts.d.ts +6 -1
  87. package/dist/sdk/cli-contracts/runtime-contracts.js +155 -60
  88. package/dist/sdk/cli-contracts/schemas/assurance-definition.d.ts +32 -0
  89. package/dist/sdk/cli-contracts/schemas/assurance-definition.js +25 -2
  90. package/dist/sdk/cli-contracts/tool-parameter-tables.js +35 -5
  91. package/dist/sdk/cli-contracts/tool-schema.js +17 -2
  92. package/dist/sdk/cli-program.js +3 -3
  93. package/dist/sdk/comments.js +4 -3
  94. package/dist/sdk/compile-cache.js +4 -3
  95. package/dist/sdk/compose.d.ts +3 -1
  96. package/dist/sdk/compose.js +16 -2
  97. package/dist/sdk/context-relevance.js +12 -4
  98. package/dist/sdk/context-signal-store.js +4 -3
  99. package/dist/sdk/extension/install-runtime.js +4 -4
  100. package/dist/sdk/extension/managed-state.js +4 -3
  101. package/dist/sdk/extension-contracts.d.ts +1 -1
  102. package/dist/sdk/flag-invocation-contracts.js +5 -6
  103. package/dist/sdk/generated/generated-error-code-catalog-part-1.js +14 -2
  104. package/dist/sdk/governance/assurance-action.d.ts +27 -3
  105. package/dist/sdk/governance/assurance-action.js +112 -28
  106. package/dist/sdk/governance/assurance-mutation-error.d.ts +7 -0
  107. package/dist/sdk/governance/assurance-mutation-error.js +25 -2
  108. package/dist/sdk/governance/assurance-presets.d.ts +54 -0
  109. package/dist/sdk/governance/assurance-presets.js +136 -0
  110. package/dist/sdk/governance/assurance-runtime.d.ts +4 -0
  111. package/dist/sdk/governance/assurance-runtime.js +109 -8
  112. package/dist/sdk/governance/assurance.d.ts +39 -0
  113. package/dist/sdk/governance/assurance.js +145 -6
  114. package/dist/sdk/governance/gc.js +5 -11
  115. package/dist/sdk/governance/health.js +18 -6
  116. package/dist/sdk/governance/validate-history-drift.d.ts +7 -0
  117. package/dist/sdk/governance/validate-history-drift.js +68 -0
  118. package/dist/sdk/governance/validate.js +6 -48
  119. package/dist/sdk/graph/assembly.d.ts +23 -0
  120. package/dist/sdk/graph/assembly.js +54 -2
  121. package/dist/sdk/graph/durable-cache.js +91 -3
  122. package/dist/sdk/graph/governance-contracts.d.ts +12 -0
  123. package/dist/sdk/graph/governance-contracts.js +29 -0
  124. package/dist/sdk/graph/governance.d.ts +51 -3
  125. package/dist/sdk/graph/governance.js +216 -35
  126. package/dist/sdk/graph/index.d.ts +2 -2
  127. package/dist/sdk/graph/index.js +4 -4
  128. package/dist/sdk/graph/mutation-advisory.js +15 -7
  129. package/dist/sdk/graph/remediation.js +12 -2
  130. package/dist/sdk/guide.js +4 -4
  131. package/dist/sdk/history-read.d.ts +8 -0
  132. package/dist/sdk/history-read.js +2 -2
  133. package/dist/sdk/index.d.ts +3 -2
  134. package/dist/sdk/index.js +5 -4
  135. package/dist/sdk/linked-artifacts.d.ts +2 -0
  136. package/dist/sdk/linked-artifacts.js +29 -4
  137. package/dist/sdk/merge/install.js +5 -4
  138. package/dist/sdk/query/activity.js +4 -3
  139. package/dist/sdk/query/history.js +20 -3
  140. package/dist/sdk/read-output-budget.d.ts +2 -0
  141. package/dist/sdk/read-output-budget.js +12 -5
  142. package/dist/sdk/read-output-contracts.d.ts +61 -5
  143. package/dist/sdk/read-output-contracts.js +210 -28
  144. package/dist/sdk/read-output-rows.d.ts +11 -0
  145. package/dist/sdk/read-output-rows.js +47 -2
  146. package/dist/sdk/relationship-history.js +5 -5
  147. package/dist/sdk/runtime-primitives.d.ts +1 -1
  148. package/dist/sdk/runtime-primitives.js +3 -3
  149. package/dist/sdk/runtime.js +5 -3
  150. package/dist/sdk/schema-migration.js +4 -4
  151. package/dist/sdk/test/execution.js +4 -4
  152. package/dist/sdk/workspace-memory.js +4 -4
  153. package/dist/sdk/workspace-snapshot.js +8 -14
  154. package/dist/sdk/workspace-transaction-gc.js +4 -9
  155. package/dist/sdk/workspace-transaction.js +4 -4
  156. package/dist/sdk/workspace.js +4 -3
  157. package/docs/ASSURANCE.md +163 -3
  158. package/docs/COMMANDS.md +31 -2
  159. package/docs/CONFIGURATION.md +2 -0
  160. package/docs/EXTENSIONS.md +11 -12
  161. package/docs/READ_OUTPUT_CONTRACTS.md +44 -8
  162. package/docs/RELATIONSHIP_GRAPH.md +34 -4
  163. package/docs/SDK.md +29 -8
  164. package/docs/SDK_CONTEXT_INTEGRITY.md +32 -1
  165. package/docs/TESTING.md +47 -16
  166. package/docs/performance/sdk-entrypoint-import-costs.md +20 -13
  167. package/marketplace.json +2 -2
  168. package/package.json +6 -6
  169. package/packages/pm-beads/extensions/beads/index.ts +1 -0
  170. package/packages/pm-beads/package.json +1 -1
  171. package/packages/pm-calendar/extensions/calendar/index.ts +1 -0
  172. package/packages/pm-calendar/package.json +1 -1
  173. package/packages/pm-command-kit/package.json +1 -1
  174. package/packages/pm-digital-twin/extensions/digital-twin/index.ts +7 -0
  175. package/packages/pm-digital-twin/package.json +1 -1
  176. package/packages/pm-governance-audit/extensions/governance-audit/index.ts +4 -0
  177. package/packages/pm-governance-audit/package.json +1 -1
  178. package/packages/pm-guide-shell/extensions/guide-shell/index.ts +5 -0
  179. package/packages/pm-guide-shell/package.json +1 -1
  180. package/packages/pm-kanban/package.json +1 -1
  181. package/packages/pm-lifecycle-hooks/package.json +1 -1
  182. package/packages/pm-linked-test-adapters/extensions/linked-test-adapters/index.ts +6 -0
  183. package/packages/pm-linked-test-adapters/package.json +1 -1
  184. package/packages/pm-search-advanced/extensions/search-advanced/index.ts +2 -0
  185. package/packages/pm-search-advanced/package.json +1 -1
  186. package/packages/pm-templates/extensions/templates/index.ts +4 -0
  187. package/packages/pm-templates/package.json +1 -1
  188. package/packages/pm-todos/extensions/todos/index.ts +2 -0
  189. package/packages/pm-todos/package.json +1 -1
  190. package/packages/pm-vcs/extensions/vcs/index.ts +7 -0
  191. package/packages/pm-vcs/package.json +1 -1
  192. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  193. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  194. package/scripts/bundle-cli.mjs +17 -4
  195. package/sdk/public-surface.json +390 -60
  196. package/dist/cli-bundle/chunks/chunk-3PS7X6GS.js +0 -8
  197. package/dist/cli-bundle/chunks/chunk-7KL6KMWF.js +0 -13
  198. package/dist/cli-bundle/chunks/chunk-D55A5AEN.js +0 -33
  199. package/dist/cli-bundle/chunks/chunk-KIKDWECH.js +0 -196
  200. package/dist/cli-bundle/chunks/chunk-R76342NV.js +0 -2
  201. package/dist/cli-bundle/chunks/chunk-RBTK5EZV.js +0 -5
  202. package/dist/cli-bundle/chunks/chunk-VLUQOIDT.js +0 -2
  203. package/dist/cli-bundle/chunks/register-operations-2OGISOVR.js +0 -2
  204. package/dist/cli-bundle/focused-chunks/chunk-2DALMVF7.js +0 -5
  205. package/dist/cli-bundle/focused-chunks/chunk-5OQIMELN.js +0 -155
  206. package/dist/cli-bundle/focused-chunks/chunk-5TAGTDRE.js +0 -2
  207. package/dist/cli-bundle/focused-chunks/chunk-ECADZMVC.js +0 -18
  208. package/dist/cli-bundle/focused-chunks/chunk-EJGXRA6B.js +0 -2
  209. package/dist/cli-bundle/focused-chunks/chunk-FFGSZCPK.js +0 -16
  210. package/dist/cli-bundle/focused-chunks/chunk-ISKOBJCM.js +0 -2
  211. package/dist/cli-bundle/focused-chunks/chunk-KPSXVBDV.js +0 -2
  212. package/dist/cli-bundle/focused-chunks/chunk-KTLOKKCQ.js +0 -2
  213. package/dist/cli-bundle/focused-chunks/chunk-LGYK3NUF.js +0 -8
  214. package/dist/cli-bundle/focused-chunks/chunk-NBLUKITQ.js +0 -4
  215. package/dist/cli-bundle/focused-chunks/chunk-NYLOUPOB.js +0 -2
  216. package/dist/cli-bundle/focused-chunks/chunk-Q4T463SD.js +0 -31
  217. package/dist/cli-bundle/focused-chunks/chunk-QVZVY53N.js +0 -2
  218. package/dist/cli-bundle/focused-chunks/chunk-UTEWXDEQ.js +0 -17
@@ -697,6 +697,7 @@ export function buildTwinCommands(): CommandDefinition[] {
697
697
  action: "twin-entity-create",
698
698
  description:
699
699
  "Create a stable facility or asset identity and its first immutable state event.",
700
+ intent: "Create one digital-twin entity with an attributable initial state.",
700
701
  arguments: ENTITY_ARGUMENT,
701
702
  flags: [
702
703
  { long: "--title", value_name: "text", value_type: "string" },
@@ -728,6 +729,7 @@ export function buildTwinCommands(): CommandDefinition[] {
728
729
  action: "twin-observe",
729
730
  description:
730
731
  "Append an attributable observation or correction with optimistic concurrency.",
732
+ intent: "Append a versioned observation to one digital-twin entity.",
731
733
  arguments: ENTITY_ARGUMENT,
732
734
  flags: [
733
735
  {
@@ -756,6 +758,7 @@ export function buildTwinCommands(): CommandDefinition[] {
756
758
  action: "twin-relate",
757
759
  description:
758
760
  "Append or supersede one typed containment, flow, or utility relationship.",
761
+ intent: "Record one typed relationship in the digital-twin topology.",
759
762
  arguments: ENTITY_ARGUMENT,
760
763
  flags: [
761
764
  {
@@ -789,6 +792,7 @@ export function buildTwinCommands(): CommandDefinition[] {
789
792
  action: "twin-query",
790
793
  description:
791
794
  "Query point-in-time state, topology, provenance, conflicts, invariants, and impact.",
795
+ intent: "Inspect one entity's point-in-time state and topology impact.",
792
796
  arguments: ENTITY_ARGUMENT,
793
797
  flags: [
794
798
  { long: "--at", value_name: "iso", value_type: "string" },
@@ -802,6 +806,7 @@ export function buildTwinCommands(): CommandDefinition[] {
802
806
  action: "twin-export",
803
807
  description:
804
808
  "Export a bounded shell-friendly event bundle with a tamper-evident checkpoint.",
809
+ intent: "Export a bounded portable digital-twin event bundle.",
805
810
  flags: [
806
811
  { long: "--at", value_name: "iso", value_type: "string" },
807
812
  { long: "--limit", value_name: "n", value_type: "number" },
@@ -813,6 +818,7 @@ export function buildTwinCommands(): CommandDefinition[] {
813
818
  action: "twin-import",
814
819
  description:
815
820
  "Validate and idempotently merge a portable offline replica bundle.",
821
+ intent: "Validate and merge an offline digital-twin replica bundle.",
816
822
  flags: [
817
823
  {
818
824
  long: "--payload",
@@ -828,6 +834,7 @@ export function buildTwinCommands(): CommandDefinition[] {
828
834
  action: "twin-verify",
829
835
  description:
830
836
  "Verify checkpoint integrity, deterministic replay, topology, and invariants.",
837
+ intent: "Verify digital-twin replay, checkpoint, topology, and invariants.",
831
838
  flags: [{ long: "--at", value_name: "iso", value_type: "string" }],
832
839
  run: runVerify,
833
840
  },
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unbrained/pm-digital-twin",
3
- "version": "2026.8.12",
3
+ "version": "2026.8.14",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "description": "Beyond-PM exemplar: a temporal production-facility digital twin built entirely on public pm SDK and extension primitives.",
@@ -327,6 +327,7 @@ function dedupeAuditCommand(): CommandDefinition {
327
327
  action: "dedupe-audit",
328
328
  description:
329
329
  "Audit likely duplicate items by title and parent scope heuristics.",
330
+ intent: "Find likely duplicate work without mutating the tracker.",
330
331
  flags: [...dedupeAuditFlags],
331
332
  run: async (context) =>
332
333
  runDedupeAuditPackage(context.options, context.global),
@@ -339,6 +340,7 @@ function dedupeMergeCommand(): CommandDefinition {
339
340
  action: "dedupe-merge",
340
341
  description:
341
342
  "Consolidate duplicates into a canonical item: re-parent active children and close duplicates with duplicate_of.",
343
+ intent: "Preview or apply an evidence-preserving duplicate consolidation.",
342
344
  flags: [...dedupeMergeFlags],
343
345
  run: async (context) =>
344
346
  runDedupeMergePackage(context.options, context.global),
@@ -350,6 +352,7 @@ function commentsAuditCommand(): CommandDefinition {
350
352
  name: "comments-audit",
351
353
  action: "comments-audit",
352
354
  description: "Audit item comment coverage and export comment history rows.",
355
+ intent: "Audit comment coverage and read bounded comment-history evidence.",
353
356
  flags: [...commentsAuditFlags],
354
357
  run: async (context) =>
355
358
  runCommentsAuditPackage(context.options, context.global),
@@ -361,6 +364,7 @@ function normalizeCommand(): CommandDefinition {
361
364
  name: "normalize",
362
365
  action: "normalize",
363
366
  description: "Plan/apply lifecycle metadata normalization sweeps.",
367
+ intent: "Preview or apply deterministic lifecycle metadata normalization.",
364
368
  flags: [...normalizeFlags],
365
369
  run: async (context) =>
366
370
  runNormalizePackage(context.options, context.global),
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unbrained/pm-governance-audit",
3
- "version": "2026.8.12",
3
+ "version": "2026.8.14",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "description": "First-party pm package for governance audit and normalization workflows.",
@@ -94,6 +94,7 @@ function guideCommand(): CommandDefinition {
94
94
  name: "guide",
95
95
  action: "guide",
96
96
  description: "Show migration and usage guidance for pm command families.",
97
+ intent: "Read focused local guidance for one pm workflow.",
97
98
  arguments: [
98
99
  { name: "topic", required: false, description: "Optional guide topic." },
99
100
  ],
@@ -108,6 +109,7 @@ function completionCommand(): CommandDefinition {
108
109
  name: "completion",
109
110
  action: "completion",
110
111
  description: "Generate shell completion scripts for bash, zsh, and fish.",
112
+ intent: "Generate a completion script for the selected shell.",
111
113
  arguments: [
112
114
  {
113
115
  name: "shell",
@@ -126,6 +128,7 @@ function completionTagsCommand(): CommandDefinition {
126
128
  name: "completion-tags",
127
129
  action: "completion-tags",
128
130
  description: "Print known tags for completion filters.",
131
+ intent: "List tag values for lazy shell completion.",
129
132
  run: async (context) => runCompletionTagsPackage(context.global),
130
133
  };
131
134
  }
@@ -135,6 +138,7 @@ function completionStatusesCommand(): CommandDefinition {
135
138
  name: "completion-statuses",
136
139
  action: "completion-statuses",
137
140
  description: "Print runtime status IDs for completion filters.",
141
+ intent: "List runtime status values for shell completion.",
138
142
  run: async (context) => runCompletionStatusesPackage(context.global),
139
143
  };
140
144
  }
@@ -144,6 +148,7 @@ function completionTypesCommand(): CommandDefinition {
144
148
  name: "completion-types",
145
149
  action: "completion-types",
146
150
  description: "Print runtime item type IDs for completion filters.",
151
+ intent: "List runtime item types for shell completion.",
147
152
  run: async (context) => runCompletionTypesPackage(context.global),
148
153
  };
149
154
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unbrained/pm-guide-shell",
3
- "version": "2026.8.12",
3
+ "version": "2026.8.14",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "description": "First-party pm package for guide and shell completion workflows.",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unbrained/pm-kanban",
3
- "version": "2026.8.12",
3
+ "version": "2026.8.14",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "description": "First-party pm archetype package: a complete Kanban continuous-flow profile built on public SDK primitives.",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unbrained/pm-lifecycle-hooks",
3
- "version": "2026.8.12",
3
+ "version": "2026.8.14",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "description": "First-party pm package demonstrating safe lifecycle hook registration.",
@@ -43,6 +43,7 @@ function testRunsCommand(): CommandDefinition {
43
43
  name: "test-runs",
44
44
  action: "test-runs-list",
45
45
  description: "List background linked-test runs.",
46
+ intent: "List recent background linked-test executions.",
46
47
  flags: [
47
48
  {
48
49
  long: "--status",
@@ -69,6 +70,7 @@ function testRunsListCommand(): CommandDefinition {
69
70
  name: "test-runs list",
70
71
  action: "test-runs-list",
71
72
  description: "List background linked-test runs.",
73
+ intent: "List recent background linked-test executions.",
72
74
  flags: [
73
75
  {
74
76
  long: "--status",
@@ -96,6 +98,7 @@ function testRunsStatusCommand(): CommandDefinition {
96
98
  action: "test-runs-status",
97
99
  description:
98
100
  "Show status and health snapshot for a background linked-test run.",
101
+ intent: "Inspect one background linked-test run's status and health.",
99
102
  arguments: [
100
103
  { name: "runId", required: true, description: "Background run id." },
101
104
  ],
@@ -112,6 +115,7 @@ function testRunsLogsCommand(): CommandDefinition {
112
115
  name: "test-runs logs",
113
116
  action: "test-runs-logs",
114
117
  description: "Show tailed logs for a background linked-test run.",
118
+ intent: "Read bounded stdout or stderr from one background test run.",
115
119
  arguments: [
116
120
  { name: "runId", required: true, description: "Background run id." },
117
121
  ],
@@ -143,6 +147,7 @@ function testRunsStopCommand(): CommandDefinition {
143
147
  name: "test-runs stop",
144
148
  action: "test-runs-stop",
145
149
  description: "Stop a running background linked-test run.",
150
+ intent: "Stop one active background linked-test run.",
146
151
  arguments: [
147
152
  { name: "runId", required: true, description: "Background run id." },
148
153
  ],
@@ -168,6 +173,7 @@ function testRunsResumeCommand(): CommandDefinition {
168
173
  action: "test-runs-resume",
169
174
  description:
170
175
  "Resume a terminal background linked-test run by starting a new attempt.",
176
+ intent: "Start a new attempt from one terminal background test run.",
171
177
  arguments: [
172
178
  { name: "runId", required: true, description: "Background run id." },
173
179
  ],
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unbrained/pm-linked-test-adapters",
3
- "version": "2026.8.12",
3
+ "version": "2026.8.14",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "description": "First-party pm package for optional linked-test run management adapters and reporters.",
@@ -161,6 +161,7 @@ function searchAdvancedCommand(): CommandDefinition {
161
161
  action: "search-advanced",
162
162
  description:
163
163
  "Enable optional semantic and hybrid search modes via package runtime.",
164
+ intent: "Search work with package-provided semantic or hybrid retrieval.",
164
165
  arguments: [
165
166
  {
166
167
  name: "keywords",
@@ -180,6 +181,7 @@ function reindexCommand(): CommandDefinition {
180
181
  action: "reindex",
181
182
  description:
182
183
  "Rebuild search artifacts for keyword, semantic, and hybrid modes.",
184
+ intent: "Refresh search indexes and optionally evaluate retrieval quality.",
183
185
  flags: [...reindexFlags],
184
186
  run: async (context) =>
185
187
  runAdvancedReindexPackage(context.options, context.global),
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unbrained/pm-search-advanced",
3
- "version": "2026.8.12",
3
+ "version": "2026.8.14",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "description": "First-party pm package for semantic, hybrid, and reindex search workflows.",
@@ -293,6 +293,7 @@ export function activate(api: ExtensionApi): void {
293
293
  name: "templates",
294
294
  action: "templates-list",
295
295
  description: "List saved create templates.",
296
+ intent: "List reusable item-creation templates.",
296
297
  run: async (context) => {
297
298
  assertListInvocation(context.args, context.options, "templates");
298
299
  return runTemplatesListFromRuntime(context.global);
@@ -302,6 +303,7 @@ export function activate(api: ExtensionApi): void {
302
303
  name: "templates list",
303
304
  action: "templates-list",
304
305
  description: "List saved create templates.",
306
+ intent: "List reusable item-creation templates.",
305
307
  run: async (context) => {
306
308
  assertListInvocation(context.args, context.options, "templates list");
307
309
  return runTemplatesListFromRuntime(context.global);
@@ -311,6 +313,7 @@ export function activate(api: ExtensionApi): void {
311
313
  name: "templates save",
312
314
  action: "templates-save",
313
315
  description: "Save reusable create template defaults.",
316
+ intent: "Persist reusable defaults for later item creation.",
314
317
  arguments: [
315
318
  { name: "name", required: true, description: "Template name." },
316
319
  ],
@@ -326,6 +329,7 @@ export function activate(api: ExtensionApi): void {
326
329
  name: "templates show",
327
330
  action: "templates-show",
328
331
  description: "Show a saved create template.",
332
+ intent: "Inspect the defaults stored in one creation template.",
329
333
  arguments: [
330
334
  { name: "name", required: true, description: "Template name." },
331
335
  ],
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unbrained/pm-templates",
3
- "version": "2026.8.12",
3
+ "version": "2026.8.14",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "description": "First-party pm package for reusable create templates.",
@@ -61,6 +61,7 @@ export function activate(api: ExtensionApi): void {
61
61
  {
62
62
  action: "todos-import",
63
63
  description: "Import Todo markdown files into pm items.",
64
+ intent: "Import Todo markdown into audited pm items.",
64
65
  failure_hints: [
65
66
  "This command reads a directory, not a file. Use --folder <path> to point at the Todo markdown directory.",
66
67
  "Use the host-global --author <id> flag when an explicit mutation identity override is required.",
@@ -91,6 +92,7 @@ export function activate(api: ExtensionApi): void {
91
92
  {
92
93
  action: "todos-export",
93
94
  description: "Export pm items into Todo markdown files.",
95
+ intent: "Export pm items as portable Todo markdown files.",
94
96
  failure_hints: [
95
97
  "This command writes a directory of markdown files. Use --folder <path> to choose the destination directory.",
96
98
  ],
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unbrained/pm-todos",
3
- "version": "2026.8.12",
3
+ "version": "2026.8.14",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "description": "First-party pm package for Todo markdown import and export.",
@@ -647,6 +647,7 @@ export function buildVcsCommands(): CommandDefinition[] {
647
647
  name: `${VCS_COMMAND_NAMESPACE} ref-create`,
648
648
  action: "vcs-ref-create",
649
649
  description: "Create a VCS ref through the public pm lifecycle SDK.",
650
+ intent: "Create a version-control ref through SDK lifecycle primitives.",
650
651
  arguments: [{ name: "name", required: true, description: "Ref name." }],
651
652
  run: runRefCreate,
652
653
  },
@@ -654,6 +655,7 @@ export function buildVcsCommands(): CommandDefinition[] {
654
655
  name: `${VCS_COMMAND_NAMESPACE} create`,
655
656
  action: "vcs-create",
656
657
  description: "Create a draft changeset.",
658
+ intent: "Create a draft changeset against a version-control ref.",
657
659
  arguments: [
658
660
  { name: "title", required: true, description: "Changeset title." },
659
661
  ],
@@ -678,6 +680,7 @@ export function buildVcsCommands(): CommandDefinition[] {
678
680
  name: `${VCS_COMMAND_NAMESPACE} propose`,
679
681
  action: "vcs-propose",
680
682
  description: "Move a draft changeset into review.",
683
+ intent: "Move a draft changeset into the review lifecycle.",
681
684
  arguments: ID_ARGUMENT,
682
685
  run: (context) => transitionChangeset(context, "proposed"),
683
686
  },
@@ -685,6 +688,7 @@ export function buildVcsCommands(): CommandDefinition[] {
685
688
  name: `${VCS_COMMAND_NAMESPACE} merge`,
686
689
  action: "vcs-merge",
687
690
  description: "Merge a reviewed changeset into a ref.",
691
+ intent: "Merge one reviewed changeset into its target ref.",
688
692
  arguments: ID_ARGUMENT,
689
693
  flags: [
690
694
  {
@@ -706,6 +710,7 @@ export function buildVcsCommands(): CommandDefinition[] {
706
710
  name: `${VCS_COMMAND_NAMESPACE} abandon`,
707
711
  action: "vcs-abandon",
708
712
  description: "Retire a draft or proposed changeset.",
713
+ intent: "Retire one unmerged changeset with an audited transition.",
709
714
  arguments: ID_ARGUMENT,
710
715
  run: (context) => transitionChangeset(context, "abandoned"),
711
716
  },
@@ -713,6 +718,7 @@ export function buildVcsCommands(): CommandDefinition[] {
713
718
  name: `${VCS_COMMAND_NAMESPACE} show`,
714
719
  action: "vcs-show",
715
720
  description: "Read current or point-in-time changeset state.",
721
+ intent: "Inspect current or historical state for one changeset.",
716
722
  arguments: ID_ARGUMENT,
717
723
  flags: [
718
724
  { long: "--at", value_name: "version-or-time", value_type: "string" },
@@ -723,6 +729,7 @@ export function buildVcsCommands(): CommandDefinition[] {
723
729
  name: `${VCS_COMMAND_NAMESPACE} log`,
724
730
  action: "vcs-log",
725
731
  description: "Project the immutable merge relationship stream.",
732
+ intent: "Read the immutable changeset-to-ref merge projection.",
726
733
  run: runVcsLog,
727
734
  },
728
735
  ];
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unbrained/pm-vcs-sdk-exemplar",
3
- "version": "2026.8.12",
3
+ "version": "2026.8.14",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "description": "Beyond-PM exemplar: a VCS-style changeset workflow built entirely on public pm SDK and extension primitives.",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "pm-claude",
3
3
  "description": "Native pm CLI integration for Claude Code — 28 MCP tools, 5 workflow skills, 14 slash commands, 4 subagents (coordinator, delivery-chain, triage, verification), hybrid TUI task tracking (pm as persistent store + Claude Code task panel as live view), session context injection, and full git-based project management without leaving Claude Code.",
4
- "version": "2026.8.12",
4
+ "version": "2026.8.14",
5
5
  "author": {
6
6
  "name": "unbrained",
7
7
  "url": "https://github.com/unbraind/pm-cli"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pm-codex",
3
- "version": "2026.8.12",
3
+ "version": "2026.8.14",
4
4
  "description": "Native Codex integration for pm-cli with bundled MCP tools, skills, commands, and agent workflows.",
5
5
  "author": {
6
6
  "name": "unbrained",
@@ -36,9 +36,14 @@ const focusedEntryPoints = {
36
36
  "sdk-core": path.join(repoRoot, "dist", "sdk", "core.js"),
37
37
  "sdk-governance": path.join(repoRoot, "dist", "sdk", "governance.js"),
38
38
  "sdk-graph": path.join(repoRoot, "dist", "sdk", "graph.js"),
39
- "sdk-merge": path.join(repoRoot, "dist", "sdk", "merge.js"),
40
39
  "sdk-query": path.join(repoRoot, "dist", "sdk", "query.js"),
41
40
  };
41
+ // The merge surface is intentionally standalone. Its dependencies overlap with
42
+ // several broader focused entrypoints, so sharing their chunk graph makes a
43
+ // merge-only consumer traverse unrelated focused chunks during module loading.
44
+ const isolatedEntryPoints = {
45
+ "sdk-merge": path.join(repoRoot, "dist", "sdk", "merge.js"),
46
+ };
42
47
  const outputDir = path.join(repoRoot, "dist", "cli-bundle");
43
48
  const lockDir = path.join(repoRoot, "dist", ".cli-bundle-build.lock");
44
49
  const binPath = path.join(repoRoot, "dist", "cli.js");
@@ -188,12 +193,12 @@ export async function writeBundleManifest(outputs) {
188
193
  }
189
194
 
190
195
  /** Build the shared esbuild settings for one isolated entrypoint graph. */
191
- function bundleOptions(selectedEntryPoints, chunkNames) {
196
+ function bundleOptions(selectedEntryPoints, chunkNames, splitting = true) {
192
197
  return {
193
198
  entryPoints: selectedEntryPoints,
194
199
  outdir: outputDir,
195
200
  bundle: true,
196
- splitting: true,
201
+ splitting,
197
202
  format: "esm",
198
203
  platform: "node",
199
204
  target: ["node22"],
@@ -212,7 +217,7 @@ function bundleOptions(selectedEntryPoints, chunkNames) {
212
217
  export async function main() {
213
218
  // Do not delete the live bundle before rebuilding. Agents often run docs,
214
219
  // dogfood, and build gates concurrently in one checkout; removing this folder
215
- // creates a transient broken `dist/cli.js` runtime. Once both new graphs are
220
+ // creates a transient broken `dist/cli.js` runtime. Once all new graphs are
216
221
  // complete under the build lock, obsolete hashed chunks are safe to prune and
217
222
  // must not leak into repeated-build package artifacts.
218
223
  const releaseBundleBuildLock = await acquireBundleBuildLock();
@@ -223,9 +228,17 @@ export async function main() {
223
228
  const focusedBuildResult = await build(
224
229
  bundleOptions(focusedEntryPoints, "focused-chunks/[name]-[hash]"),
225
230
  );
231
+ const isolatedBuildResult = await build(
232
+ bundleOptions(
233
+ isolatedEntryPoints,
234
+ "isolated-chunks/[name]-[hash]",
235
+ false,
236
+ ),
237
+ );
226
238
  const outputs = {
227
239
  ...primaryBuildResult.metafile.outputs,
228
240
  ...focusedBuildResult.metafile.outputs,
241
+ ...isolatedBuildResult.metafile.outputs,
229
242
  };
230
243
  await removeStaleBundleFiles(outputs);
231
244
  await writeBundleManifest(outputs);