@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.
- package/.claude-plugin/marketplace.json +2 -2
- package/CHANGELOG.md +162 -111
- package/dist/cli/error-guidance.js +4 -8
- package/dist/cli/main.js +40 -3
- package/dist/cli/register-assurance.js +28 -17
- package/dist/cli-bundle/bundle-manifest.json +141 -173
- package/dist/cli-bundle/chunks/chunk-BBOFSVAK.js +197 -0
- package/dist/cli-bundle/chunks/chunk-BFALV3YP.js +5 -0
- package/dist/cli-bundle/chunks/{chunk-WLAHPSOX.js → chunk-FIW4P64F.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-BM5YJ2UW.js → chunk-G5JUB66K.js} +52 -52
- package/dist/cli-bundle/chunks/chunk-SBRKH6OR.js +2 -0
- package/dist/cli-bundle/chunks/chunk-TMJ7URWS.js +13 -0
- package/dist/cli-bundle/chunks/chunk-TXMEUUUY.js +8 -0
- package/dist/cli-bundle/chunks/{chunk-KOQMGCTA.js → chunk-XAVMOK6B.js} +50 -50
- package/dist/cli-bundle/chunks/chunk-YAMTJL6Y.js +34 -0
- package/dist/cli-bundle/chunks/chunk-YSVSMJ2B.js +2 -0
- package/dist/cli-bundle/chunks/{register-list-query-XPCJRUUD.js → register-list-query-T3EHHNNV.js} +2 -2
- package/dist/cli-bundle/chunks/{register-mutation-4RJCBKRS.js → register-mutation-E27WCLSZ.js} +2 -2
- package/dist/cli-bundle/chunks/register-operations-4R6I7CPY.js +2 -0
- package/dist/cli-bundle/chunks/{register-setup-LLHAKP2V.js → register-setup-3YXZ444E.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-JAFRIWVF.js → chunk-4DQ2YERC.js} +4 -4
- package/dist/cli-bundle/focused-chunks/chunk-F43TT2QQ.js +8 -0
- package/dist/cli-bundle/focused-chunks/chunk-K7RWWOAG.js +4 -0
- package/dist/cli-bundle/focused-chunks/chunk-KFSZ3BP6.js +16 -0
- package/dist/cli-bundle/focused-chunks/{chunk-KHM2CS2C.js → chunk-KSEDUWVZ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-KYUQGTSB.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-ZMGWAYH7.js → chunk-LZ4MV3RH.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-PGXJQLCT.js +155 -0
- package/dist/cli-bundle/focused-chunks/{chunk-RWPAWUOT.js → chunk-PPFGQDSI.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-Q4YY3XNF.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-QK753U3U.js +46 -0
- package/dist/cli-bundle/focused-chunks/chunk-QUMB2J27.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-SM7MTG27.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-GQW4BPUT.js → chunk-WCVE2NIG.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-XDNAW5OI.js +18 -0
- package/dist/cli-bundle/focused-chunks/{chunk-YIAXMC3T.js → chunk-YOOI3UZX.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-ZM6TZVHC.js +2 -0
- package/dist/cli-bundle/main.js +13 -13
- package/dist/cli-bundle/sdk-authoring.js +1 -1
- package/dist/cli-bundle/sdk-contracts.js +1 -1
- package/dist/cli-bundle/sdk-core.js +45 -41
- package/dist/cli-bundle/sdk-governance.js +1 -1
- package/dist/cli-bundle/sdk-graph.js +1 -1
- package/dist/cli-bundle/sdk-merge.js +109 -1
- package/dist/cli-bundle/sdk-query.js +1 -1
- package/dist/cli-bundle/sdk-runtime.js +1 -1
- package/dist/cli-bundle/sdk-testing.js +1 -1
- package/dist/cli-bundle/sdk.js +2 -2
- package/dist/core/checkpoint/checkpoint-gc.js +7 -12
- package/dist/core/extensions/activation-summary-markdown.js +5 -4
- package/dist/core/extensions/activation-summary.d.ts +2 -0
- package/dist/core/extensions/activation-summary.js +6 -2
- package/dist/core/extensions/capability-usage.d.ts +1 -1
- package/dist/core/extensions/capability-usage.js +4 -3
- package/dist/core/extensions/contribution-inventory.d.ts +1 -0
- package/dist/core/extensions/contribution-inventory.js +6 -2
- package/dist/core/extensions/extension-registries.js +3 -2
- package/dist/core/extensions/extension-types.d.ts +83 -1
- package/dist/core/extensions/extension-types.js +3 -2
- package/dist/core/extensions/loader.d.ts +2 -8
- package/dist/core/extensions/loader.js +53 -144
- package/dist/core/extensions/registration-values.d.ts +43 -0
- package/dist/core/extensions/registration-values.js +210 -0
- package/dist/core/extensions/runtime-registrations.d.ts +3 -1
- package/dist/core/extensions/runtime-registrations.js +12 -2
- package/dist/core/fs/fs-utils.d.ts +2 -0
- package/dist/core/fs/fs-utils.js +7 -3
- package/dist/core/history/drift-cache.js +4 -3
- package/dist/core/history/drift-scan.d.ts +6 -0
- package/dist/core/history/drift-scan.js +76 -58
- package/dist/core/history/workspace-history.d.ts +59 -0
- package/dist/core/history/workspace-history.js +197 -10
- package/dist/core/lock/lock-gc.js +8 -13
- package/dist/core/lock/lock.js +5 -4
- package/dist/core/output/output.js +12 -4
- package/dist/core/search/vector-stores.js +6 -11
- package/dist/core/store/item-metadata-cache.js +4 -4
- package/dist/core/telemetry/runtime.d.ts +6 -0
- package/dist/core/telemetry/runtime.js +101 -30
- package/dist/sdk/agent/command-recovery.d.ts +2 -0
- package/dist/sdk/agent/command-recovery.js +10 -2
- package/dist/sdk/annotations.js +4 -4
- package/dist/sdk/cli-contracts/completeness.js +9 -3
- package/dist/sdk/cli-contracts/enum-contracts.d.ts +1 -1
- package/dist/sdk/cli-contracts/flag-contracts.js +6 -3
- package/dist/sdk/cli-contracts/runtime-contracts.d.ts +6 -1
- package/dist/sdk/cli-contracts/runtime-contracts.js +155 -60
- package/dist/sdk/cli-contracts/schemas/assurance-definition.d.ts +32 -0
- package/dist/sdk/cli-contracts/schemas/assurance-definition.js +25 -2
- package/dist/sdk/cli-contracts/tool-parameter-tables.js +35 -5
- package/dist/sdk/cli-contracts/tool-schema.js +17 -2
- package/dist/sdk/cli-program.js +3 -3
- package/dist/sdk/comments.js +4 -3
- package/dist/sdk/compile-cache.js +4 -3
- package/dist/sdk/compose.d.ts +3 -1
- package/dist/sdk/compose.js +16 -2
- package/dist/sdk/context-relevance.js +12 -4
- package/dist/sdk/context-signal-store.js +4 -3
- package/dist/sdk/extension/install-runtime.js +4 -4
- package/dist/sdk/extension/managed-state.js +4 -3
- package/dist/sdk/extension-contracts.d.ts +1 -1
- package/dist/sdk/flag-invocation-contracts.js +5 -6
- package/dist/sdk/generated/generated-error-code-catalog-part-1.js +14 -2
- package/dist/sdk/governance/assurance-action.d.ts +27 -3
- package/dist/sdk/governance/assurance-action.js +112 -28
- package/dist/sdk/governance/assurance-mutation-error.d.ts +7 -0
- package/dist/sdk/governance/assurance-mutation-error.js +25 -2
- package/dist/sdk/governance/assurance-presets.d.ts +54 -0
- package/dist/sdk/governance/assurance-presets.js +136 -0
- package/dist/sdk/governance/assurance-runtime.d.ts +4 -0
- package/dist/sdk/governance/assurance-runtime.js +109 -8
- package/dist/sdk/governance/assurance.d.ts +39 -0
- package/dist/sdk/governance/assurance.js +145 -6
- package/dist/sdk/governance/gc.js +5 -11
- package/dist/sdk/governance/health.js +18 -6
- package/dist/sdk/governance/validate-history-drift.d.ts +7 -0
- package/dist/sdk/governance/validate-history-drift.js +68 -0
- package/dist/sdk/governance/validate.js +6 -48
- package/dist/sdk/graph/assembly.d.ts +23 -0
- package/dist/sdk/graph/assembly.js +54 -2
- package/dist/sdk/graph/durable-cache.js +91 -3
- package/dist/sdk/graph/governance-contracts.d.ts +12 -0
- package/dist/sdk/graph/governance-contracts.js +29 -0
- package/dist/sdk/graph/governance.d.ts +51 -3
- package/dist/sdk/graph/governance.js +216 -35
- package/dist/sdk/graph/index.d.ts +2 -2
- package/dist/sdk/graph/index.js +4 -4
- package/dist/sdk/graph/mutation-advisory.js +15 -7
- package/dist/sdk/graph/remediation.js +12 -2
- package/dist/sdk/guide.js +4 -4
- package/dist/sdk/history-read.d.ts +8 -0
- package/dist/sdk/history-read.js +2 -2
- package/dist/sdk/index.d.ts +3 -2
- package/dist/sdk/index.js +5 -4
- package/dist/sdk/linked-artifacts.d.ts +2 -0
- package/dist/sdk/linked-artifacts.js +29 -4
- package/dist/sdk/merge/install.js +5 -4
- package/dist/sdk/query/activity.js +4 -3
- package/dist/sdk/query/history.js +20 -3
- package/dist/sdk/read-output-budget.d.ts +2 -0
- package/dist/sdk/read-output-budget.js +12 -5
- package/dist/sdk/read-output-contracts.d.ts +61 -5
- package/dist/sdk/read-output-contracts.js +210 -28
- package/dist/sdk/read-output-rows.d.ts +11 -0
- package/dist/sdk/read-output-rows.js +47 -2
- package/dist/sdk/relationship-history.js +5 -5
- package/dist/sdk/runtime-primitives.d.ts +1 -1
- package/dist/sdk/runtime-primitives.js +3 -3
- package/dist/sdk/runtime.js +5 -3
- package/dist/sdk/schema-migration.js +4 -4
- package/dist/sdk/test/execution.js +4 -4
- package/dist/sdk/workspace-memory.js +4 -4
- package/dist/sdk/workspace-snapshot.js +8 -14
- package/dist/sdk/workspace-transaction-gc.js +4 -9
- package/dist/sdk/workspace-transaction.js +4 -4
- package/dist/sdk/workspace.js +4 -3
- package/docs/ASSURANCE.md +163 -3
- package/docs/COMMANDS.md +31 -2
- package/docs/CONFIGURATION.md +2 -0
- package/docs/EXTENSIONS.md +11 -12
- package/docs/READ_OUTPUT_CONTRACTS.md +44 -8
- package/docs/RELATIONSHIP_GRAPH.md +34 -4
- package/docs/SDK.md +29 -8
- package/docs/SDK_CONTEXT_INTEGRITY.md +32 -1
- package/docs/TESTING.md +47 -16
- package/docs/performance/sdk-entrypoint-import-costs.md +20 -13
- package/marketplace.json +2 -2
- package/package.json +6 -6
- package/packages/pm-beads/extensions/beads/index.ts +1 -0
- package/packages/pm-beads/package.json +1 -1
- package/packages/pm-calendar/extensions/calendar/index.ts +1 -0
- package/packages/pm-calendar/package.json +1 -1
- package/packages/pm-command-kit/package.json +1 -1
- package/packages/pm-digital-twin/extensions/digital-twin/index.ts +7 -0
- package/packages/pm-digital-twin/package.json +1 -1
- package/packages/pm-governance-audit/extensions/governance-audit/index.ts +4 -0
- package/packages/pm-governance-audit/package.json +1 -1
- package/packages/pm-guide-shell/extensions/guide-shell/index.ts +5 -0
- package/packages/pm-guide-shell/package.json +1 -1
- package/packages/pm-kanban/package.json +1 -1
- package/packages/pm-lifecycle-hooks/package.json +1 -1
- package/packages/pm-linked-test-adapters/extensions/linked-test-adapters/index.ts +6 -0
- package/packages/pm-linked-test-adapters/package.json +1 -1
- package/packages/pm-search-advanced/extensions/search-advanced/index.ts +2 -0
- package/packages/pm-search-advanced/package.json +1 -1
- package/packages/pm-templates/extensions/templates/index.ts +4 -0
- package/packages/pm-templates/package.json +1 -1
- package/packages/pm-todos/extensions/todos/index.ts +2 -0
- package/packages/pm-todos/package.json +1 -1
- package/packages/pm-vcs/extensions/vcs/index.ts +7 -0
- package/packages/pm-vcs/package.json +1 -1
- package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
- package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
- package/scripts/bundle-cli.mjs +17 -4
- package/sdk/public-surface.json +390 -60
- package/dist/cli-bundle/chunks/chunk-3PS7X6GS.js +0 -8
- package/dist/cli-bundle/chunks/chunk-7KL6KMWF.js +0 -13
- package/dist/cli-bundle/chunks/chunk-D55A5AEN.js +0 -33
- package/dist/cli-bundle/chunks/chunk-KIKDWECH.js +0 -196
- package/dist/cli-bundle/chunks/chunk-R76342NV.js +0 -2
- package/dist/cli-bundle/chunks/chunk-RBTK5EZV.js +0 -5
- package/dist/cli-bundle/chunks/chunk-VLUQOIDT.js +0 -2
- package/dist/cli-bundle/chunks/register-operations-2OGISOVR.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-2DALMVF7.js +0 -5
- package/dist/cli-bundle/focused-chunks/chunk-5OQIMELN.js +0 -155
- package/dist/cli-bundle/focused-chunks/chunk-5TAGTDRE.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-ECADZMVC.js +0 -18
- package/dist/cli-bundle/focused-chunks/chunk-EJGXRA6B.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-FFGSZCPK.js +0 -16
- package/dist/cli-bundle/focused-chunks/chunk-ISKOBJCM.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-KPSXVBDV.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-KTLOKKCQ.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-LGYK3NUF.js +0 -8
- package/dist/cli-bundle/focused-chunks/chunk-NBLUKITQ.js +0 -4
- package/dist/cli-bundle/focused-chunks/chunk-NYLOUPOB.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-Q4T463SD.js +0 -31
- package/dist/cli-bundle/focused-chunks/chunk-QVZVY53N.js +0 -2
- 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.
|
|
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),
|
|
@@ -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
|
}
|
|
@@ -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
|
],
|
|
@@ -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),
|
|
@@ -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
|
],
|
|
@@ -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
|
],
|
|
@@ -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,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.
|
|
4
|
+
"version": "2026.8.14",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "unbrained",
|
|
7
7
|
"url": "https://github.com/unbraind/pm-cli"
|
package/scripts/bundle-cli.mjs
CHANGED
|
@@ -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
|
|
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
|
|
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);
|