@unbrained/pm-cli 2026.10.9 → 2026.10.11

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 (130) hide show
  1. package/.claude-plugin/marketplace.json +1 -36
  2. package/CHANGELOG.md +32 -4
  3. package/dist/cli/register-mutation.js +2 -2
  4. package/dist/cli-bundle/bundle-manifest.json +1 -382
  5. package/dist/cli-bundle/chunks/{chunk-P5NS7EFC.js → chunk-2JYTSTQP.js} +2 -2
  6. package/dist/cli-bundle/chunks/{chunk-ZNXRGATT.js → chunk-BXSXT5Z6.js} +2 -2
  7. package/dist/cli-bundle/chunks/{chunk-QQHNXCO3.js → chunk-ESRACL6K.js} +2 -2
  8. package/dist/cli-bundle/chunks/{chunk-5MOFELIF.js → chunk-K2UTE75T.js} +2 -2
  9. package/dist/cli-bundle/chunks/{chunk-55MK3QQM.js → chunk-KNW3RSLS.js} +3 -3
  10. package/dist/cli-bundle/chunks/chunk-MEWBSWE3.js +2 -0
  11. package/dist/cli-bundle/chunks/{chunk-KOGF6O6W.js → chunk-OBLO45UM.js} +2 -2
  12. package/dist/cli-bundle/chunks/{chunk-XW3BLWFF.js → chunk-RBPOO46D.js} +2 -2
  13. package/dist/cli-bundle/chunks/{chunk-E4XR5LKU.js → chunk-RUT3CCAG.js} +2 -2
  14. package/dist/cli-bundle/chunks/{chunk-CPZOW6L2.js → chunk-S445XEYT.js} +2 -2
  15. package/dist/cli-bundle/chunks/{chunk-5NR6TDYB.js → chunk-SSY4OSJR.js} +2 -2
  16. package/dist/cli-bundle/chunks/{chunk-5TCQ5J3V.js → chunk-YMLF6QT7.js} +75 -75
  17. package/dist/cli-bundle/chunks/{chunk-NIF7JOPW.js → chunk-ZWRLAOA4.js} +2 -2
  18. package/dist/cli-bundle/chunks/{register-list-query-2YOWMNWY.js → register-list-query-T6BOR67M.js} +2 -2
  19. package/dist/cli-bundle/chunks/register-mutation-6NXR7SAJ.js +20 -0
  20. package/dist/cli-bundle/chunks/{register-operations-BMK65YM3.js → register-operations-PDOBQZUJ.js} +2 -2
  21. package/dist/cli-bundle/chunks/{register-setup-24TFFK6N.js → register-setup-MAYFPKBX.js} +2 -2
  22. package/dist/cli-bundle/focused-chunks/{chunk-362645PL.js → chunk-52UJEHEV.js} +2 -2
  23. package/dist/cli-bundle/focused-chunks/{chunk-EZ4367G4.js → chunk-EIOQNLBQ.js} +2 -2
  24. package/dist/cli-bundle/focused-chunks/{chunk-SAN3KPX4.js → chunk-GVGFUD52.js} +2 -2
  25. package/dist/cli-bundle/focused-chunks/{chunk-DSLNUL2Q.js → chunk-JGFSSR3G.js} +16 -16
  26. package/dist/cli-bundle/focused-chunks/{chunk-IARAEFMA.js → chunk-KNJR2WUO.js} +2 -2
  27. package/dist/cli-bundle/focused-chunks/chunk-MJQ253F3.js +2 -0
  28. package/dist/cli-bundle/focused-chunks/{chunk-MCVWZUGK.js → chunk-SIEGIPNT.js} +28 -28
  29. package/dist/cli-bundle/main.js +2 -2
  30. package/dist/cli-bundle/sdk-contracts.js +1 -1
  31. package/dist/cli-bundle/sdk-core.js +1 -1
  32. package/dist/cli-bundle/sdk-governance.js +1 -1
  33. package/dist/cli-bundle/sdk-graph.js +1 -1
  34. package/dist/cli-bundle/sdk-merge.js +51 -51
  35. package/dist/cli-bundle/sdk-query.js +1 -1
  36. package/dist/cli-bundle/sdk-runtime.js +1 -1
  37. package/dist/cli-bundle/sdk-testing.js +1 -1
  38. package/dist/cli-bundle/sdk.js +9 -9
  39. package/dist/core/item/item-format.d.ts +2 -0
  40. package/dist/core/item/item-format.js +3 -3
  41. package/dist/core/schema/runtime-field-values.d.ts +2 -2
  42. package/dist/core/schema/runtime-field-values.js +1 -1
  43. package/dist/core/store/item-format-migration.js +1 -1
  44. package/dist/core/store/item-store.js +1 -1
  45. package/dist/sdk/generated/generated-error-code-catalog-part-1.js +1 -1
  46. package/dist/sdk/governance/artifact-ledgers.d.ts +59 -0
  47. package/dist/sdk/governance/artifact-ledgers.js +2 -0
  48. package/dist/sdk/governance/reliability.d.ts +74 -0
  49. package/dist/sdk/governance/reliability.js +2 -0
  50. package/dist/sdk/governance.d.ts +2 -0
  51. package/dist/sdk/governance.js +1 -1
  52. package/dist/sdk/public-surface.json +1 -1
  53. package/dist/sdk/structured-mutations.d.ts +5 -1
  54. package/dist/sdk/structured-mutations.js +1 -1
  55. package/docs/QUALITY_EVIDENCE.md +52 -1
  56. package/docs/RELEASE_LEDGER_RECONCILIATION.md +148 -0
  57. package/docs/RELEASE_RELIABILITY.md +58 -3
  58. package/docs/RELEASING.md +34 -5
  59. package/docs/SDK.md +16 -2
  60. package/docs/TESTING.md +36 -0
  61. package/docs/agent-task-token-baseline.json +1 -291
  62. package/docs/agent-task-transcripts.json +1 -478
  63. package/docs/ecosystem-review-2026-09-28.json +1 -2866
  64. package/docs/examples/policy-restricted-extension/manifest.json +1 -22
  65. package/docs/examples/policy-restricted-extension/package.json +1 -8
  66. package/docs/examples/sdk-agent-environment/package.json +1 -8
  67. package/docs/examples/sdk-app-embedding/package.json +1 -9
  68. package/docs/examples/sdk-contract-consumer/package.json +1 -11
  69. package/docs/examples/sdk-custom-tool/package.json +1 -13
  70. package/docs/examples/starter-extension/manifest.json +1 -33
  71. package/docs/examples/starter-extension/package.json +1 -10
  72. package/docs/generated/REFUSAL_CLOSURE_CENSUS.md +4 -3
  73. package/docs/performance/corpus-shape-comparison.json +1 -108
  74. package/docs/performance/latest-scale-report.json +1 -418
  75. package/docs/performance/scale-100k-report.json +1 -418
  76. package/docs/schemas/extension-manifest.schema.json +1 -165
  77. package/marketplace.json +1 -36
  78. package/package.json +1 -1
  79. package/packages/pm-beads/extensions/beads/manifest.json +1 -28
  80. package/packages/pm-beads/extensions/beads/package.json +1 -3
  81. package/packages/pm-beads/package.json +1 -50
  82. package/packages/pm-calendar/extensions/calendar/manifest.json +1 -22
  83. package/packages/pm-calendar/extensions/calendar/package.json +1 -3
  84. package/packages/pm-calendar/package.json +1 -51
  85. package/packages/pm-command-kit/extensions/command-kit/manifest.json +1 -22
  86. package/packages/pm-command-kit/extensions/command-kit/package.json +1 -3
  87. package/packages/pm-command-kit/package.json +1 -53
  88. package/packages/pm-digital-twin/extensions/digital-twin/manifest.json +1 -19
  89. package/packages/pm-digital-twin/extensions/digital-twin/package.json +1 -3
  90. package/packages/pm-digital-twin/package.json +1 -58
  91. package/packages/pm-governance-audit/extensions/governance-audit/manifest.json +1 -19
  92. package/packages/pm-governance-audit/extensions/governance-audit/package.json +1 -3
  93. package/packages/pm-governance-audit/package.json +1 -55
  94. package/packages/pm-guide-shell/extensions/guide-shell/manifest.json +1 -22
  95. package/packages/pm-guide-shell/extensions/guide-shell/package.json +1 -3
  96. package/packages/pm-guide-shell/package.json +1 -52
  97. package/packages/pm-kanban/extensions/kanban/manifest.json +1 -19
  98. package/packages/pm-kanban/extensions/kanban/package.json +1 -3
  99. package/packages/pm-kanban/package.json +1 -57
  100. package/packages/pm-lifecycle-hooks/extensions/lifecycle-hooks/manifest.json +1 -19
  101. package/packages/pm-lifecycle-hooks/extensions/lifecycle-hooks/package.json +1 -3
  102. package/packages/pm-lifecycle-hooks/package.json +1 -52
  103. package/packages/pm-linked-test-adapters/extensions/linked-test-adapters/manifest.json +1 -29
  104. package/packages/pm-linked-test-adapters/extensions/linked-test-adapters/package.json +1 -3
  105. package/packages/pm-linked-test-adapters/package.json +1 -53
  106. package/packages/pm-search-advanced/extensions/search-advanced/manifest.json +1 -29
  107. package/packages/pm-search-advanced/extensions/search-advanced/package.json +1 -3
  108. package/packages/pm-search-advanced/package.json +1 -54
  109. package/packages/pm-templates/extensions/templates/manifest.json +1 -22
  110. package/packages/pm-templates/extensions/templates/package.json +1 -3
  111. package/packages/pm-templates/package.json +1 -50
  112. package/packages/pm-todos/extensions/todos/manifest.json +1 -29
  113. package/packages/pm-todos/extensions/todos/package.json +1 -3
  114. package/packages/pm-todos/package.json +1 -51
  115. package/packages/pm-vcs/extensions/vcs/manifest.json +1 -19
  116. package/packages/pm-vcs/extensions/vcs/package.json +1 -3
  117. package/packages/pm-vcs/package.json +1 -55
  118. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -25
  119. package/plugins/pm-claude/.mcp.json +1 -8
  120. package/plugins/pm-claude/hooks/hooks.json +1 -17
  121. package/plugins/pm-claude/package.json +1 -9
  122. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -45
  123. package/plugins/pm-codex/.mcp.json +1 -11
  124. package/plugins/pm-codex/mcp.json +1 -11
  125. package/plugins/pm-codex/package.json +1 -9
  126. package/plugins/pm-codex/plugin.json +1 -45
  127. package/runtime-dependencies.json +1 -512
  128. package/dist/cli-bundle/chunks/chunk-N7GKWO4G.js +0 -2
  129. package/dist/cli-bundle/chunks/register-mutation-ILOWFMTV.js +0 -20
  130. package/dist/cli-bundle/focused-chunks/chunk-2ATAD56F.js +0 -2
@@ -1,22 +1 @@
1
- {
2
- "name": "policy-restricted-extension",
3
- "version": "0.1.0",
4
- "entry": "./index.ts",
5
- "manifest_version": 2,
6
- "pm_min_version": "2026.6.24",
7
- "trusted": true,
8
- "provenance": {
9
- "source": "docs/examples/policy-restricted-extension",
10
- "verified": true
11
- },
12
- "sandbox_profile": "restricted",
13
- "permissions": {
14
- "fs_read": true,
15
- "fs_write": false,
16
- "network": false,
17
- "env_read": true,
18
- "env_write": false,
19
- "process_spawn": false
20
- },
21
- "capabilities": ["commands", "hooks", "services"]
22
- }
1
+ {"name":"policy-restricted-extension","version":"0.1.0","entry":"./index.ts","manifest_version":2,"pm_min_version":"2026.6.24","trusted":true,"provenance":{"source":"docs/examples/policy-restricted-extension","verified":true},"sandbox_profile":"restricted","permissions":{"fs_read":true,"fs_write":false,"network":false,"env_read":true,"env_write":false,"process_spawn":false},"capabilities":["commands","hooks","services"]}
@@ -1,8 +1 @@
1
- {
2
- "name": "policy-restricted-extension",
3
- "private": true,
4
- "type": "module",
5
- "dependencies": {
6
- "@unbrained/pm-cli": "latest"
7
- }
8
- }
1
+ {"name":"policy-restricted-extension","private":true,"type":"module","dependencies":{"@unbrained/pm-cli":"latest"}}
@@ -1,8 +1 @@
1
- {
2
- "name": "pm-sdk-agent-environment-example",
3
- "private": true,
4
- "type": "module",
5
- "scripts": {
6
- "start": "node run-agent-environment.mjs"
7
- }
8
- }
1
+ {"name":"pm-sdk-agent-environment-example","private":true,"type":"module","scripts":{"start":"node run-agent-environment.mjs"}}
@@ -1,9 +1 @@
1
- {
2
- "name": "pm-sdk-app-embedding-example",
3
- "private": true,
4
- "type": "module",
5
- "scripts": {
6
- "start": "node run-embedded-pm.mjs",
7
- "reload": "node run-embedded-pm.mjs extension-reload"
8
- }
9
- }
1
+ {"name":"pm-sdk-app-embedding-example","private":true,"type":"module","scripts":{"start":"node run-embedded-pm.mjs","reload":"node run-embedded-pm.mjs extension-reload"}}
@@ -1,11 +1 @@
1
- {
2
- "name": "pm-sdk-contract-consumer-example",
3
- "private": true,
4
- "type": "module",
5
- "scripts": {
6
- "inspect:create": "node inspect-contracts.mjs create",
7
- "inspect:update": "node inspect-contracts.mjs update",
8
- "inspect:reload": "node inspect-contracts.mjs extension-reload",
9
- "parse:receipt": "node parse-receipt.mjs"
10
- }
11
- }
1
+ {"name":"pm-sdk-contract-consumer-example","private":true,"type":"module","scripts":{"inspect:create":"node inspect-contracts.mjs create","inspect:update":"node inspect-contracts.mjs update","inspect:reload":"node inspect-contracts.mjs extension-reload","parse:receipt":"node parse-receipt.mjs"}}
@@ -1,13 +1 @@
1
- {
2
- "name": "@unbrained/pm-sdk-custom-tool",
3
- "version": "2026.7.16",
4
- "private": true,
5
- "type": "module",
6
- "description": "SDK-only exemplar for building a complete custom project-management tool on pm primitives.",
7
- "bin": {
8
- "pm-custom": "src/entry.ts"
9
- },
10
- "peerDependencies": {
11
- "@unbrained/pm-cli": ">=2026.7.16"
12
- }
13
- }
1
+ {"name":"@unbrained/pm-sdk-custom-tool","version":"2026.7.16","private":true,"type":"module","description":"SDK-only exemplar for building a complete custom project-management tool on pm primitives.","bin":{"pm-custom":"src/entry.ts"},"peerDependencies":{"@unbrained/pm-cli":">=2026.7.16"}}
@@ -1,33 +1 @@
1
- {
2
- "name": "starter-extension",
3
- "version": "0.1.0",
4
- "description": "SDK-first starter extension demonstrating all pm extension capabilities.",
5
- "entry": "./index.ts",
6
- "manifest_version": 2,
7
- "pm_min_version": "2026.6.24",
8
- "trusted": true,
9
- "provenance": {
10
- "source": "docs/examples/starter-extension",
11
- "verified": true
12
- },
13
- "sandbox_profile": "none",
14
- "permissions": {
15
- "fs_read": true,
16
- "fs_write": true,
17
- "network": false,
18
- "env_read": true,
19
- "env_write": false,
20
- "process_spawn": false
21
- },
22
- "capabilities": [
23
- "commands",
24
- "parser",
25
- "preflight",
26
- "services",
27
- "renderers",
28
- "hooks",
29
- "schema",
30
- "importers",
31
- "search"
32
- ]
33
- }
1
+ {"name":"starter-extension","version":"0.1.0","description":"SDK-first starter extension demonstrating all pm extension capabilities.","entry":"./index.ts","manifest_version":2,"pm_min_version":"2026.6.24","trusted":true,"provenance":{"source":"docs/examples/starter-extension","verified":true},"sandbox_profile":"none","permissions":{"fs_read":true,"fs_write":true,"network":false,"env_read":true,"env_write":false,"process_spawn":false},"capabilities":["commands","parser","preflight","services","renderers","hooks","schema","importers","search"]}
@@ -1,10 +1 @@
1
- {
2
- "name": "@pm-cli/starter-extension",
3
- "version": "0.1.0",
4
- "private": true,
5
- "type": "module",
6
- "description": "Reference extension starter using @unbrained/pm-cli/sdk",
7
- "dependencies": {
8
- "@unbrained/pm-cli": "^2026.3.12"
9
- }
10
- }
1
+ {"name":"@pm-cli/starter-extension","version":"0.1.0","private":true,"type":"module","description":"Reference extension starter using @unbrained/pm-cli/sdk","dependencies":{"@unbrained/pm-cli":"^2026.3.12"}}
@@ -4,12 +4,12 @@ Tracker: `pm-f05lsg`.
4
4
 
5
5
  Every catalog code is listed. An `uncovered` row is an explicit closure obligation, never an omission or implied approval.
6
6
 
7
- - Catalog error codes: 396
7
+ - Catalog error codes: 397
8
8
  - Executable error codes: 19
9
9
  - Executable-code ratchet floor: 18
10
10
  - Required executable canonical codes: `bulk_ids_input_empty`, `bulk_ids_input_missing_path`, `bulk_ids_input_unreadable`, `invalid_argument_value`, `manifest_unknown_key`, `missing_lifecycle_target`, `missing_required_argument`, `no_version_bounds_declared`, `projection_options_mutually_exclusive`, `tracker_not_initialized`, `tracker_root_missing`, `tracker_root_not_directory`, `tracker_root_unreadable`, `unknown_context_intent`, `unknown_field_projection`, `unknown_option`, `unknown_subcommand`
11
- - Uncovered error codes: 377
12
- - Coverage fraction: 0.047980
11
+ - Uncovered error codes: 378
12
+ - Coverage fraction: 0.047859
13
13
  - Closed-domain probes: 19
14
14
  - Grammar probes: 117
15
15
 
@@ -177,6 +177,7 @@ Every catalog code is listed. An `uncovered` row is an explicit closure obligati
177
177
  | `item_document_encoding_invalid` | `item_document_encoding_invalid` | uncovered | none | 0 |
178
178
  | `item_document_invalid` | `item_document_invalid` | uncovered | none | 0 |
179
179
  | `item_document_roundtrip_failed` | `item_document_roundtrip_failed` | uncovered | none | 0 |
180
+ | `item_format_version_unsupported` | `item_format_version_unsupported` | uncovered | none | 0 |
180
181
  | `item_id_collision` | `item_id_collision` | uncovered | none | 0 |
181
182
  | `item_identity_ambiguous` | `item_identity_ambiguous` | uncovered | none | 0 |
182
183
  | `item_identity_conflict` | `item_identity_conflict` | uncovered | none | 0 |
@@ -1,108 +1 @@
1
- {
2
- "version": 1,
3
- "generated_at": "2026-07-29T19:31:38.366Z",
4
- "item_count": 100,
5
- "seed": 42,
6
- "material_difference_percent": 20,
7
- "left": {
8
- "shape": "scratch",
9
- "measured_profile": {
10
- "shape": "scratch",
11
- "item_count": 100,
12
- "author_count": 2,
13
- "component_count": 1,
14
- "hierarchy_depth": 2,
15
- "hierarchy_fanout": 50,
16
- "timestamp_range": {
17
- "first": "2026-01-01T00:00:00.000Z",
18
- "last": "2026-01-01T00:00:00.000Z"
19
- },
20
- "history_entry_count": 100,
21
- "annotations": {
22
- "comments": 2,
23
- "notes": 1,
24
- "learnings": 1
25
- },
26
- "edge_kinds": {
27
- "related": 99
28
- },
29
- "matches_declaration": true,
30
- "mismatches": []
31
- }
32
- },
33
- "right": {
34
- "shape": "representative",
35
- "measured_profile": {
36
- "shape": "representative",
37
- "item_count": 100,
38
- "author_count": 32,
39
- "component_count": 1,
40
- "hierarchy_depth": 4,
41
- "hierarchy_fanout": 8,
42
- "timestamp_range": {
43
- "first": "2026-01-01T00:00:00.000Z",
44
- "last": "2028-01-01T00:00:00.000Z"
45
- },
46
- "history_entry_count": 1200,
47
- "annotations": {
48
- "comments": 30,
49
- "notes": 12,
50
- "learnings": 10
51
- },
52
- "edge_kinds": {
53
- "implements": 33,
54
- "blocked_by": 12,
55
- "discovered_from": 12,
56
- "verifies": 12,
57
- "supersedes": 6,
58
- "related": 24
59
- },
60
- "matches_declaration": true,
61
- "mismatches": []
62
- }
63
- },
64
- "operations": {
65
- "claim": {
66
- "left_p95_ms": 5,
67
- "right_p95_ms": 6,
68
- "right_vs_left_percent": 20,
69
- "classification": "slower"
70
- },
71
- "context": {
72
- "left_p95_ms": 13,
73
- "right_p95_ms": 12,
74
- "right_vs_left_percent": -7.7,
75
- "classification": "within_margin"
76
- },
77
- "create": {
78
- "left_p95_ms": 6,
79
- "right_p95_ms": 5,
80
- "right_vs_left_percent": -16.7,
81
- "classification": "within_margin"
82
- },
83
- "get": {
84
- "left_p95_ms": 6,
85
- "right_p95_ms": 6,
86
- "right_vs_left_percent": 0,
87
- "classification": "within_margin"
88
- },
89
- "list": {
90
- "left_p95_ms": 6,
91
- "right_p95_ms": 6,
92
- "right_vs_left_percent": 0,
93
- "classification": "within_margin"
94
- },
95
- "next": {
96
- "left_p95_ms": 14,
97
- "right_p95_ms": 15,
98
- "right_vs_left_percent": 7.1,
99
- "classification": "within_margin"
100
- },
101
- "search": {
102
- "left_p95_ms": 46,
103
- "right_p95_ms": 46,
104
- "right_vs_left_percent": 0,
105
- "classification": "within_margin"
106
- }
107
- }
108
- }
1
+ {"version":1,"generated_at":"2026-07-29T19:31:38.366Z","item_count":100,"seed":42,"material_difference_percent":20,"left":{"shape":"scratch","measured_profile":{"shape":"scratch","item_count":100,"author_count":2,"component_count":1,"hierarchy_depth":2,"hierarchy_fanout":50,"timestamp_range":{"first":"2026-01-01T00:00:00.000Z","last":"2026-01-01T00:00:00.000Z"},"history_entry_count":100,"annotations":{"comments":2,"notes":1,"learnings":1},"edge_kinds":{"related":99},"matches_declaration":true,"mismatches":[]}},"right":{"shape":"representative","measured_profile":{"shape":"representative","item_count":100,"author_count":32,"component_count":1,"hierarchy_depth":4,"hierarchy_fanout":8,"timestamp_range":{"first":"2026-01-01T00:00:00.000Z","last":"2028-01-01T00:00:00.000Z"},"history_entry_count":1200,"annotations":{"comments":30,"notes":12,"learnings":10},"edge_kinds":{"implements":33,"blocked_by":12,"discovered_from":12,"verifies":12,"supersedes":6,"related":24},"matches_declaration":true,"mismatches":[]}},"operations":{"claim":{"left_p95_ms":5,"right_p95_ms":6,"right_vs_left_percent":20,"classification":"slower"},"context":{"left_p95_ms":13,"right_p95_ms":12,"right_vs_left_percent":-7.7,"classification":"within_margin"},"create":{"left_p95_ms":6,"right_p95_ms":5,"right_vs_left_percent":-16.7,"classification":"within_margin"},"get":{"left_p95_ms":6,"right_p95_ms":6,"right_vs_left_percent":0,"classification":"within_margin"},"list":{"left_p95_ms":6,"right_p95_ms":6,"right_vs_left_percent":0,"classification":"within_margin"},"next":{"left_p95_ms":14,"right_p95_ms":15,"right_vs_left_percent":7.1,"classification":"within_margin"},"search":{"left_p95_ms":46,"right_p95_ms":46,"right_vs_left_percent":0,"classification":"within_margin"}}}