@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,418 +1 @@
1
- {
2
- "version": 1,
3
- "generated_at": "2026-07-12T14:38:34.397Z",
4
- "node_version": "v26.4.0",
5
- "platform": "linux",
6
- "architecture": "x64",
7
- "iterations": 3,
8
- "fixture": {
9
- "version": 1,
10
- "generated_at": "2026-07-12T14:35:41.484Z",
11
- "workspace_root": "/tmp/pm-scale-benchmark-JQMrH2",
12
- "pm_root": "/tmp/pm-scale-benchmark-JQMrH2/.agents/pm",
13
- "item_count": 100000,
14
- "history_stream_count": 100000,
15
- "seed": 42,
16
- "mode": "direct",
17
- "generation_ms": 38993,
18
- "sample_ids": {
19
- "get": "pm-s0000000",
20
- "open": [
21
- "pm-s0000000",
22
- "pm-s000000h",
23
- "pm-s000000i",
24
- "pm-s000000k",
25
- "pm-s0000011",
26
- "pm-s0000012",
27
- "pm-s0000014",
28
- "pm-s000001l",
29
- "pm-s000001m",
30
- "pm-s000001o",
31
- "pm-s0000025",
32
- "pm-s0000026",
33
- "pm-s0000028",
34
- "pm-s000002p",
35
- "pm-s000002q",
36
- "pm-s000002s",
37
- "pm-s0000039",
38
- "pm-s000003a",
39
- "pm-s000003c",
40
- "pm-s000003t",
41
- "pm-s000003u",
42
- "pm-s000003w",
43
- "pm-s000004d",
44
- "pm-s000004e",
45
- "pm-s000004g",
46
- "pm-s000004x",
47
- "pm-s000004y",
48
- "pm-s0000050",
49
- "pm-s000005h",
50
- "pm-s000005i",
51
- "pm-s000005k",
52
- "pm-s0000061",
53
- "pm-s0000062",
54
- "pm-s0000064",
55
- "pm-s000006l",
56
- "pm-s000006m",
57
- "pm-s000006o",
58
- "pm-s0000075",
59
- "pm-s0000076",
60
- "pm-s0000078",
61
- "pm-s000007p",
62
- "pm-s000007q",
63
- "pm-s000007s",
64
- "pm-s0000089",
65
- "pm-s000008a",
66
- "pm-s000008c",
67
- "pm-s000008t",
68
- "pm-s000008u",
69
- "pm-s000008w",
70
- "pm-s000009d",
71
- "pm-s000009e",
72
- "pm-s000009g",
73
- "pm-s000009x",
74
- "pm-s000009y",
75
- "pm-s00000a0",
76
- "pm-s00000ah",
77
- "pm-s00000ai",
78
- "pm-s00000ak",
79
- "pm-s00000b1",
80
- "pm-s00000b2",
81
- "pm-s00000b4",
82
- "pm-s00000bl",
83
- "pm-s00000bm",
84
- "pm-s00000bo",
85
- "pm-s00000c5",
86
- "pm-s00000c6",
87
- "pm-s00000c8",
88
- "pm-s00000cp",
89
- "pm-s00000cq",
90
- "pm-s00000cs",
91
- "pm-s00000d9",
92
- "pm-s00000da",
93
- "pm-s00000dc",
94
- "pm-s00000dt",
95
- "pm-s00000du",
96
- "pm-s00000dw",
97
- "pm-s00000ed",
98
- "pm-s00000ee",
99
- "pm-s00000eg",
100
- "pm-s00000ex",
101
- "pm-s00000ey",
102
- "pm-s00000f0",
103
- "pm-s00000fh",
104
- "pm-s00000fi",
105
- "pm-s00000fk",
106
- "pm-s00000g1",
107
- "pm-s00000g2",
108
- "pm-s00000g4",
109
- "pm-s00000gl",
110
- "pm-s00000gm",
111
- "pm-s00000go",
112
- "pm-s00000h5",
113
- "pm-s00000h6",
114
- "pm-s00000h8",
115
- "pm-s00000hp",
116
- "pm-s00000hq",
117
- "pm-s00000hs",
118
- "pm-s00000i9",
119
- "pm-s00000ia",
120
- "pm-s00000ic"
121
- ]
122
- }
123
- },
124
- "product_target": {
125
- "target": {
126
- "p95_ms": 1000,
127
- "max_estimated_tokens": 5000
128
- },
129
- "commands": [
130
- {
131
- "transport": "cli",
132
- "command": "list",
133
- "p95_ms": 1868,
134
- "max_estimated_tokens": 878,
135
- "latency_ok": false,
136
- "tokens_ok": true
137
- },
138
- {
139
- "transport": "cli",
140
- "command": "get",
141
- "p95_ms": 1274,
142
- "max_estimated_tokens": 257,
143
- "latency_ok": false,
144
- "tokens_ok": true
145
- },
146
- {
147
- "transport": "cli",
148
- "command": "next",
149
- "p95_ms": 3724,
150
- "max_estimated_tokens": 4454,
151
- "latency_ok": false,
152
- "tokens_ok": true
153
- },
154
- {
155
- "transport": "cli",
156
- "command": "context",
157
- "p95_ms": 3720,
158
- "max_estimated_tokens": 1292,
159
- "latency_ok": false,
160
- "tokens_ok": true
161
- },
162
- {
163
- "transport": "cli",
164
- "command": "search",
165
- "p95_ms": 3464,
166
- "max_estimated_tokens": 961,
167
- "latency_ok": false,
168
- "tokens_ok": true
169
- },
170
- {
171
- "transport": "cli",
172
- "command": "create",
173
- "p95_ms": 682,
174
- "max_estimated_tokens": 149,
175
- "latency_ok": true,
176
- "tokens_ok": true
177
- },
178
- {
179
- "transport": "cli",
180
- "command": "claim",
181
- "p95_ms": 813,
182
- "max_estimated_tokens": 303,
183
- "latency_ok": true,
184
- "tokens_ok": true
185
- },
186
- {
187
- "transport": "sdk",
188
- "command": "list",
189
- "p95_ms": 800,
190
- "max_estimated_tokens": 827,
191
- "latency_ok": true,
192
- "tokens_ok": true
193
- },
194
- {
195
- "transport": "sdk",
196
- "command": "get",
197
- "p95_ms": 404,
198
- "max_estimated_tokens": 230,
199
- "latency_ok": true,
200
- "tokens_ok": true
201
- },
202
- {
203
- "transport": "sdk",
204
- "command": "next",
205
- "p95_ms": 1830,
206
- "max_estimated_tokens": 2920,
207
- "latency_ok": false,
208
- "tokens_ok": true
209
- },
210
- {
211
- "transport": "sdk",
212
- "command": "context",
213
- "p95_ms": 1994,
214
- "max_estimated_tokens": 892,
215
- "latency_ok": false,
216
- "tokens_ok": true
217
- },
218
- {
219
- "transport": "sdk",
220
- "command": "search",
221
- "p95_ms": 1566,
222
- "max_estimated_tokens": 636,
223
- "latency_ok": false,
224
- "tokens_ok": true
225
- },
226
- {
227
- "transport": "sdk",
228
- "command": "create",
229
- "p95_ms": 8,
230
- "max_estimated_tokens": 112,
231
- "latency_ok": true,
232
- "tokens_ok": true
233
- },
234
- {
235
- "transport": "sdk",
236
- "command": "claim",
237
- "p95_ms": 7,
238
- "max_estimated_tokens": 235,
239
- "latency_ok": true,
240
- "tokens_ok": true
241
- }
242
- ]
243
- },
244
- "transports": {
245
- "cli": {
246
- "list": {
247
- "runs": 3,
248
- "p50_ms": 1760,
249
- "p95_ms": 1868,
250
- "min_ms": 1689,
251
- "max_ms": 1868,
252
- "max_peak_rss_bytes": 392499200,
253
- "max_output_bytes": 3510,
254
- "max_estimated_tokens": 878,
255
- "warmup_ms": 29059,
256
- "warmup_peak_rss_bytes": 1802010624
257
- },
258
- "get": {
259
- "runs": 3,
260
- "p50_ms": 1272,
261
- "p95_ms": 1274,
262
- "min_ms": 1248,
263
- "max_ms": 1274,
264
- "max_peak_rss_bytes": 412712960,
265
- "max_output_bytes": 1028,
266
- "max_estimated_tokens": 257,
267
- "warmup_ms": 1208,
268
- "warmup_peak_rss_bytes": 404037632
269
- },
270
- "next": {
271
- "runs": 3,
272
- "p50_ms": 3452,
273
- "p95_ms": 3724,
274
- "min_ms": 3360,
275
- "max_ms": 3724,
276
- "max_peak_rss_bytes": 576307200,
277
- "max_output_bytes": 17815,
278
- "max_estimated_tokens": 4454,
279
- "warmup_ms": 27274,
280
- "warmup_peak_rss_bytes": 1519861760
281
- },
282
- "context": {
283
- "runs": 3,
284
- "p50_ms": 3398,
285
- "p95_ms": 3720,
286
- "min_ms": 3117,
287
- "max_ms": 3720,
288
- "max_peak_rss_bytes": 561909760,
289
- "max_output_bytes": 5167,
290
- "max_estimated_tokens": 1292,
291
- "warmup_ms": 4747,
292
- "warmup_peak_rss_bytes": 496168960
293
- },
294
- "search": {
295
- "runs": 3,
296
- "p50_ms": 3348,
297
- "p95_ms": 3464,
298
- "min_ms": 3073,
299
- "max_ms": 3464,
300
- "max_peak_rss_bytes": 494133248,
301
- "max_output_bytes": 3843,
302
- "max_estimated_tokens": 961,
303
- "warmup_ms": 31438,
304
- "warmup_peak_rss_bytes": 1497698304
305
- },
306
- "create": {
307
- "runs": 3,
308
- "p50_ms": 604,
309
- "p95_ms": 682,
310
- "min_ms": 570,
311
- "max_ms": 682,
312
- "max_peak_rss_bytes": 149639168,
313
- "max_output_bytes": 596,
314
- "max_estimated_tokens": 149,
315
- "warmup_ms": 572,
316
- "warmup_peak_rss_bytes": 146526208
317
- },
318
- "claim": {
319
- "runs": 3,
320
- "p50_ms": 606,
321
- "p95_ms": 813,
322
- "min_ms": 530,
323
- "max_ms": 813,
324
- "max_peak_rss_bytes": 153124864,
325
- "max_output_bytes": 1212,
326
- "max_estimated_tokens": 303,
327
- "warmup_ms": 1052,
328
- "warmup_peak_rss_bytes": 159031296
329
- }
330
- },
331
- "sdk": {
332
- "list": {
333
- "runs": 3,
334
- "p50_ms": 764,
335
- "p95_ms": 800,
336
- "min_ms": 718,
337
- "max_ms": 800,
338
- "max_peak_rss_bytes": 974884864,
339
- "max_output_bytes": 3305,
340
- "max_estimated_tokens": 827,
341
- "warmup_ms": 4268,
342
- "warmup_peak_rss_bytes": 914722816
343
- },
344
- "get": {
345
- "runs": 3,
346
- "p50_ms": 369,
347
- "p95_ms": 404,
348
- "min_ms": 342,
349
- "max_ms": 404,
350
- "max_peak_rss_bytes": 1169551360,
351
- "max_output_bytes": 918,
352
- "max_estimated_tokens": 230,
353
- "warmup_ms": 356,
354
- "warmup_peak_rss_bytes": 950661120
355
- },
356
- "next": {
357
- "runs": 3,
358
- "p50_ms": 1818,
359
- "p95_ms": 1830,
360
- "min_ms": 1699,
361
- "max_ms": 1830,
362
- "max_peak_rss_bytes": 1561702400,
363
- "max_output_bytes": 11679,
364
- "max_estimated_tokens": 2920,
365
- "warmup_ms": 4264,
366
- "warmup_peak_rss_bytes": 1212788736
367
- },
368
- "context": {
369
- "runs": 3,
370
- "p50_ms": 1737,
371
- "p95_ms": 1994,
372
- "min_ms": 1682,
373
- "max_ms": 1994,
374
- "max_peak_rss_bytes": 1574739968,
375
- "max_output_bytes": 3566,
376
- "max_estimated_tokens": 892,
377
- "warmup_ms": 1988,
378
- "warmup_peak_rss_bytes": 1471062016
379
- },
380
- "search": {
381
- "runs": 3,
382
- "p50_ms": 1471,
383
- "p95_ms": 1566,
384
- "min_ms": 1401,
385
- "max_ms": 1566,
386
- "max_peak_rss_bytes": 1257529344,
387
- "max_output_bytes": 2541,
388
- "max_estimated_tokens": 636,
389
- "warmup_ms": 4453,
390
- "warmup_peak_rss_bytes": 1553682432
391
- },
392
- "create": {
393
- "runs": 3,
394
- "p50_ms": 6,
395
- "p95_ms": 8,
396
- "min_ms": 5,
397
- "max_ms": 8,
398
- "max_peak_rss_bytes": 1257951232,
399
- "max_output_bytes": 447,
400
- "max_estimated_tokens": 112,
401
- "warmup_ms": 20,
402
- "warmup_peak_rss_bytes": 1257951232
403
- },
404
- "claim": {
405
- "runs": 3,
406
- "p50_ms": 5,
407
- "p95_ms": 7,
408
- "min_ms": 5,
409
- "max_ms": 7,
410
- "max_peak_rss_bytes": 1257951232,
411
- "max_output_bytes": 938,
412
- "max_estimated_tokens": 235,
413
- "warmup_ms": 6,
414
- "warmup_peak_rss_bytes": 1257951232
415
- }
416
- }
417
- }
418
- }
1
+ {"version":1,"generated_at":"2026-07-12T14:38:34.397Z","node_version":"v26.4.0","platform":"linux","architecture":"x64","iterations":3,"fixture":{"version":1,"generated_at":"2026-07-12T14:35:41.484Z","workspace_root":"/tmp/pm-scale-benchmark-JQMrH2","pm_root":"/tmp/pm-scale-benchmark-JQMrH2/.agents/pm","item_count":100000,"history_stream_count":100000,"seed":42,"mode":"direct","generation_ms":38993,"sample_ids":{"get":"pm-s0000000","open":["pm-s0000000","pm-s000000h","pm-s000000i","pm-s000000k","pm-s0000011","pm-s0000012","pm-s0000014","pm-s000001l","pm-s000001m","pm-s000001o","pm-s0000025","pm-s0000026","pm-s0000028","pm-s000002p","pm-s000002q","pm-s000002s","pm-s0000039","pm-s000003a","pm-s000003c","pm-s000003t","pm-s000003u","pm-s000003w","pm-s000004d","pm-s000004e","pm-s000004g","pm-s000004x","pm-s000004y","pm-s0000050","pm-s000005h","pm-s000005i","pm-s000005k","pm-s0000061","pm-s0000062","pm-s0000064","pm-s000006l","pm-s000006m","pm-s000006o","pm-s0000075","pm-s0000076","pm-s0000078","pm-s000007p","pm-s000007q","pm-s000007s","pm-s0000089","pm-s000008a","pm-s000008c","pm-s000008t","pm-s000008u","pm-s000008w","pm-s000009d","pm-s000009e","pm-s000009g","pm-s000009x","pm-s000009y","pm-s00000a0","pm-s00000ah","pm-s00000ai","pm-s00000ak","pm-s00000b1","pm-s00000b2","pm-s00000b4","pm-s00000bl","pm-s00000bm","pm-s00000bo","pm-s00000c5","pm-s00000c6","pm-s00000c8","pm-s00000cp","pm-s00000cq","pm-s00000cs","pm-s00000d9","pm-s00000da","pm-s00000dc","pm-s00000dt","pm-s00000du","pm-s00000dw","pm-s00000ed","pm-s00000ee","pm-s00000eg","pm-s00000ex","pm-s00000ey","pm-s00000f0","pm-s00000fh","pm-s00000fi","pm-s00000fk","pm-s00000g1","pm-s00000g2","pm-s00000g4","pm-s00000gl","pm-s00000gm","pm-s00000go","pm-s00000h5","pm-s00000h6","pm-s00000h8","pm-s00000hp","pm-s00000hq","pm-s00000hs","pm-s00000i9","pm-s00000ia","pm-s00000ic"]}},"product_target":{"target":{"p95_ms":1000,"max_estimated_tokens":5000},"commands":[{"transport":"cli","command":"list","p95_ms":1868,"max_estimated_tokens":878,"latency_ok":false,"tokens_ok":true},{"transport":"cli","command":"get","p95_ms":1274,"max_estimated_tokens":257,"latency_ok":false,"tokens_ok":true},{"transport":"cli","command":"next","p95_ms":3724,"max_estimated_tokens":4454,"latency_ok":false,"tokens_ok":true},{"transport":"cli","command":"context","p95_ms":3720,"max_estimated_tokens":1292,"latency_ok":false,"tokens_ok":true},{"transport":"cli","command":"search","p95_ms":3464,"max_estimated_tokens":961,"latency_ok":false,"tokens_ok":true},{"transport":"cli","command":"create","p95_ms":682,"max_estimated_tokens":149,"latency_ok":true,"tokens_ok":true},{"transport":"cli","command":"claim","p95_ms":813,"max_estimated_tokens":303,"latency_ok":true,"tokens_ok":true},{"transport":"sdk","command":"list","p95_ms":800,"max_estimated_tokens":827,"latency_ok":true,"tokens_ok":true},{"transport":"sdk","command":"get","p95_ms":404,"max_estimated_tokens":230,"latency_ok":true,"tokens_ok":true},{"transport":"sdk","command":"next","p95_ms":1830,"max_estimated_tokens":2920,"latency_ok":false,"tokens_ok":true},{"transport":"sdk","command":"context","p95_ms":1994,"max_estimated_tokens":892,"latency_ok":false,"tokens_ok":true},{"transport":"sdk","command":"search","p95_ms":1566,"max_estimated_tokens":636,"latency_ok":false,"tokens_ok":true},{"transport":"sdk","command":"create","p95_ms":8,"max_estimated_tokens":112,"latency_ok":true,"tokens_ok":true},{"transport":"sdk","command":"claim","p95_ms":7,"max_estimated_tokens":235,"latency_ok":true,"tokens_ok":true}]},"transports":{"cli":{"list":{"runs":3,"p50_ms":1760,"p95_ms":1868,"min_ms":1689,"max_ms":1868,"max_peak_rss_bytes":392499200,"max_output_bytes":3510,"max_estimated_tokens":878,"warmup_ms":29059,"warmup_peak_rss_bytes":1802010624},"get":{"runs":3,"p50_ms":1272,"p95_ms":1274,"min_ms":1248,"max_ms":1274,"max_peak_rss_bytes":412712960,"max_output_bytes":1028,"max_estimated_tokens":257,"warmup_ms":1208,"warmup_peak_rss_bytes":404037632},"next":{"runs":3,"p50_ms":3452,"p95_ms":3724,"min_ms":3360,"max_ms":3724,"max_peak_rss_bytes":576307200,"max_output_bytes":17815,"max_estimated_tokens":4454,"warmup_ms":27274,"warmup_peak_rss_bytes":1519861760},"context":{"runs":3,"p50_ms":3398,"p95_ms":3720,"min_ms":3117,"max_ms":3720,"max_peak_rss_bytes":561909760,"max_output_bytes":5167,"max_estimated_tokens":1292,"warmup_ms":4747,"warmup_peak_rss_bytes":496168960},"search":{"runs":3,"p50_ms":3348,"p95_ms":3464,"min_ms":3073,"max_ms":3464,"max_peak_rss_bytes":494133248,"max_output_bytes":3843,"max_estimated_tokens":961,"warmup_ms":31438,"warmup_peak_rss_bytes":1497698304},"create":{"runs":3,"p50_ms":604,"p95_ms":682,"min_ms":570,"max_ms":682,"max_peak_rss_bytes":149639168,"max_output_bytes":596,"max_estimated_tokens":149,"warmup_ms":572,"warmup_peak_rss_bytes":146526208},"claim":{"runs":3,"p50_ms":606,"p95_ms":813,"min_ms":530,"max_ms":813,"max_peak_rss_bytes":153124864,"max_output_bytes":1212,"max_estimated_tokens":303,"warmup_ms":1052,"warmup_peak_rss_bytes":159031296}},"sdk":{"list":{"runs":3,"p50_ms":764,"p95_ms":800,"min_ms":718,"max_ms":800,"max_peak_rss_bytes":974884864,"max_output_bytes":3305,"max_estimated_tokens":827,"warmup_ms":4268,"warmup_peak_rss_bytes":914722816},"get":{"runs":3,"p50_ms":369,"p95_ms":404,"min_ms":342,"max_ms":404,"max_peak_rss_bytes":1169551360,"max_output_bytes":918,"max_estimated_tokens":230,"warmup_ms":356,"warmup_peak_rss_bytes":950661120},"next":{"runs":3,"p50_ms":1818,"p95_ms":1830,"min_ms":1699,"max_ms":1830,"max_peak_rss_bytes":1561702400,"max_output_bytes":11679,"max_estimated_tokens":2920,"warmup_ms":4264,"warmup_peak_rss_bytes":1212788736},"context":{"runs":3,"p50_ms":1737,"p95_ms":1994,"min_ms":1682,"max_ms":1994,"max_peak_rss_bytes":1574739968,"max_output_bytes":3566,"max_estimated_tokens":892,"warmup_ms":1988,"warmup_peak_rss_bytes":1471062016},"search":{"runs":3,"p50_ms":1471,"p95_ms":1566,"min_ms":1401,"max_ms":1566,"max_peak_rss_bytes":1257529344,"max_output_bytes":2541,"max_estimated_tokens":636,"warmup_ms":4453,"warmup_peak_rss_bytes":1553682432},"create":{"runs":3,"p50_ms":6,"p95_ms":8,"min_ms":5,"max_ms":8,"max_peak_rss_bytes":1257951232,"max_output_bytes":447,"max_estimated_tokens":112,"warmup_ms":20,"warmup_peak_rss_bytes":1257951232},"claim":{"runs":3,"p50_ms":5,"p95_ms":7,"min_ms":5,"max_ms":7,"max_peak_rss_bytes":1257951232,"max_output_bytes":938,"max_estimated_tokens":235,"warmup_ms":6,"warmup_peak_rss_bytes":1257951232}}}}
@@ -1,165 +1 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-07/schema#",
3
- "$id": "https://raw.githubusercontent.com/unbraind/pm-cli/main/docs/schemas/extension-manifest.schema.json",
4
- "title": "pm extension manifest",
5
- "description": "Schema for a pm extension's manifest.json. The loader tolerates unknown fields (including $schema), so additionalProperties stays true; only the fields listed here are read. Note: sandbox_profile and permissions are advisory, declaration-based load gates — pm does not isolate extension code at runtime (ADR pm-6ef3).",
6
- "type": "object",
7
- "required": ["name", "version", "entry"],
8
- "additionalProperties": true,
9
- "properties": {
10
- "$schema": {
11
- "type": "string",
12
- "description": "Optional pointer to this schema for inline IDE validation. Ignored by the loader."
13
- },
14
- "name": {
15
- "type": "string",
16
- "minLength": 1,
17
- "description": "Unique extension name. A project-layer extension with the same name overrides a global-layer one."
18
- },
19
- "version": {
20
- "type": "string",
21
- "minLength": 1,
22
- "description": "Extension version (semver recommended)."
23
- },
24
- "entry": {
25
- "type": "string",
26
- "minLength": 1,
27
- "description": "Path to the entry module, relative to the extension directory. Must resolve inside the extension directory."
28
- },
29
- "priority": {
30
- "type": "integer",
31
- "description": "Load-order priority within a layer (lower loads first). Defaults to 100."
32
- },
33
- "manifest_version": {
34
- "type": "integer",
35
- "enum": [1, 2],
36
- "description": "Optional manifest format version."
37
- },
38
- "pm_min_version": {
39
- "type": "string",
40
- "minLength": 1,
41
- "description": "Minimum compatible pm CLI version. A leading \">=\" prefix is accepted. Unmet minimums block loading.",
42
- "examples": ["2026.5.0", ">=2026.5.0"]
43
- },
44
- "pm_max_version": {
45
- "type": "string",
46
- "minLength": 1,
47
- "pattern": "^[^<>=~^]",
48
- "description": "Maximum compatible pm CLI version as an exact version (range prefixes like >=, <, ~, ^ are rejected). Exceeding it blocks loading by default; extensions.policy.pm_max_version_exceeded_mode can relax this to warn-only.",
49
- "examples": ["2026.12.31"]
50
- },
51
- "engines": {
52
- "type": "object",
53
- "description": "Engine compatibility declarations (e.g. pm, node). Every value must be a non-empty string.",
54
- "additionalProperties": {
55
- "type": "string",
56
- "minLength": 1
57
- }
58
- },
59
- "trusted": {
60
- "type": "boolean",
61
- "description": "Declares the extension as trusted for extensions.policy.trust_mode evaluation."
62
- },
63
- "provenance": {
64
- "type": "object",
65
- "description": "Optional provenance metadata used by require_provenance policy checks.",
66
- "properties": {
67
- "source": { "type": "string", "minLength": 1 },
68
- "signature": { "type": "string", "minLength": 1 },
69
- "attestation": { "type": "string", "minLength": 1 },
70
- "verified": { "type": "boolean" }
71
- }
72
- },
73
- "sandbox_profile": {
74
- "type": "string",
75
- "enum": ["none", "restricted", "strict"],
76
- "description": "Advisory sandbox profile evaluated against declared permissions when extensions.policy.mode is active. Declaration-based load gate only — not runtime isolation (ADR pm-6ef3)."
77
- },
78
- "permissions": {
79
- "type": "object",
80
- "description": "Advisory runtime permission declarations checked against the sandbox profile. Not enforced at runtime (ADR pm-6ef3).",
81
- "properties": {
82
- "fs_read": { "type": "boolean" },
83
- "fs_write": { "type": "boolean" },
84
- "network": { "type": "boolean" },
85
- "env_read": { "type": "boolean" },
86
- "env_write": { "type": "boolean" },
87
- "process_spawn": { "type": "boolean" }
88
- }
89
- },
90
- "capabilities": {
91
- "type": "array",
92
- "description": "Capabilities the extension's registrations may use. Known: commands, renderers, hooks, schema, importers, search, parser, preflight, services (legacy aliases migration/validation map to schema). Unknown values only warn.",
93
- "items": {
94
- "type": "string",
95
- "examples": [
96
- "commands",
97
- "renderers",
98
- "hooks",
99
- "schema",
100
- "importers",
101
- "search",
102
- "parser",
103
- "preflight",
104
- "services"
105
- ]
106
- }
107
- },
108
- "activation": {
109
- "type": "object",
110
- "description": "Lazy-activation metadata.",
111
- "properties": {
112
- "commands": {
113
- "type": "array",
114
- "description": "Command names that trigger activation.",
115
- "items": { "type": "string" }
116
- }
117
- }
118
- },
119
- "contributions": {
120
- "type": "object",
121
- "description": "Versioned static inventory of extension registrations. pm install derives and persists this inventory from the real activation result.",
122
- "required": ["schema_version"],
123
- "properties": {
124
- "schema_version": { "const": 1 },
125
- "commands": { "$ref": "#/definitions/stringList" },
126
- "command_overrides": { "$ref": "#/definitions/stringList" },
127
- "command_handlers": { "$ref": "#/definitions/stringList" },
128
- "hooks": { "$ref": "#/definitions/stringList" },
129
- "flag_commands": { "$ref": "#/definitions/stringList" },
130
- "item_types": { "$ref": "#/definitions/stringList" },
131
- "item_fields": { "$ref": "#/definitions/stringList" },
132
- "relationship_kinds": { "$ref": "#/definitions/stringList" },
133
- "migrations": { "$ref": "#/definitions/stringList" },
134
- "profiles": { "$ref": "#/definitions/stringList" },
135
- "importers": { "$ref": "#/definitions/stringList" },
136
- "exporters": { "$ref": "#/definitions/stringList" },
137
- "search_providers": { "$ref": "#/definitions/stringList" },
138
- "vector_store_adapters": { "$ref": "#/definitions/stringList" },
139
- "parser_overrides": { "$ref": "#/definitions/stringList" },
140
- "service_overrides": { "$ref": "#/definitions/stringList" },
141
- "renderer_overrides": { "$ref": "#/definitions/stringList" },
142
- "renderer_ownership": {
143
- "type": "array",
144
- "items": {
145
- "type": "object",
146
- "required": ["format", "commands", "result_discriminator"],
147
- "properties": {
148
- "format": { "enum": ["toon", "json"] },
149
- "commands": { "$ref": "#/definitions/stringList" },
150
- "result_discriminator": { "type": "boolean" }
151
- }
152
- }
153
- },
154
- "preflight_overrides": { "type": "integer", "minimum": 0 }
155
- }
156
- }
157
- },
158
- "definitions": {
159
- "stringList": {
160
- "type": "array",
161
- "items": { "type": "string", "minLength": 1 },
162
- "uniqueItems": true
163
- }
164
- }
165
- }
1
+ {"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://raw.githubusercontent.com/unbraind/pm-cli/main/docs/schemas/extension-manifest.schema.json","title":"pm extension manifest","description":"Schema for a pm extension's manifest.json. The loader tolerates unknown fields (including $schema), so additionalProperties stays true; only the fields listed here are read. Note: sandbox_profile and permissions are advisory, declaration-based load gates — pm does not isolate extension code at runtime (ADR pm-6ef3).","type":"object","required":["name","version","entry"],"additionalProperties":true,"properties":{"$schema":{"type":"string","description":"Optional pointer to this schema for inline IDE validation. Ignored by the loader."},"name":{"type":"string","minLength":1,"description":"Unique extension name. A project-layer extension with the same name overrides a global-layer one."},"version":{"type":"string","minLength":1,"description":"Extension version (semver recommended)."},"entry":{"type":"string","minLength":1,"description":"Path to the entry module, relative to the extension directory. Must resolve inside the extension directory."},"priority":{"type":"integer","description":"Load-order priority within a layer (lower loads first). Defaults to 100."},"manifest_version":{"type":"integer","enum":[1,2],"description":"Optional manifest format version."},"pm_min_version":{"type":"string","minLength":1,"description":"Minimum compatible pm CLI version. A leading \">=\" prefix is accepted. Unmet minimums block loading.","examples":["2026.5.0",">=2026.5.0"]},"pm_max_version":{"type":"string","minLength":1,"pattern":"^[^<>=~^]","description":"Maximum compatible pm CLI version as an exact version (range prefixes like >=, <, ~, ^ are rejected). Exceeding it blocks loading by default; extensions.policy.pm_max_version_exceeded_mode can relax this to warn-only.","examples":["2026.12.31"]},"engines":{"type":"object","description":"Engine compatibility declarations (e.g. pm, node). Every value must be a non-empty string.","additionalProperties":{"type":"string","minLength":1}},"trusted":{"type":"boolean","description":"Declares the extension as trusted for extensions.policy.trust_mode evaluation."},"provenance":{"type":"object","description":"Optional provenance metadata used by require_provenance policy checks.","properties":{"source":{"type":"string","minLength":1},"signature":{"type":"string","minLength":1},"attestation":{"type":"string","minLength":1},"verified":{"type":"boolean"}}},"sandbox_profile":{"type":"string","enum":["none","restricted","strict"],"description":"Advisory sandbox profile evaluated against declared permissions when extensions.policy.mode is active. Declaration-based load gate only — not runtime isolation (ADR pm-6ef3)."},"permissions":{"type":"object","description":"Advisory runtime permission declarations checked against the sandbox profile. Not enforced at runtime (ADR pm-6ef3).","properties":{"fs_read":{"type":"boolean"},"fs_write":{"type":"boolean"},"network":{"type":"boolean"},"env_read":{"type":"boolean"},"env_write":{"type":"boolean"},"process_spawn":{"type":"boolean"}}},"capabilities":{"type":"array","description":"Capabilities the extension's registrations may use. Known: commands, renderers, hooks, schema, importers, search, parser, preflight, services (legacy aliases migration/validation map to schema). Unknown values only warn.","items":{"type":"string","examples":["commands","renderers","hooks","schema","importers","search","parser","preflight","services"]}},"activation":{"type":"object","description":"Lazy-activation metadata.","properties":{"commands":{"type":"array","description":"Command names that trigger activation.","items":{"type":"string"}}}},"contributions":{"type":"object","description":"Versioned static inventory of extension registrations. pm install derives and persists this inventory from the real activation result.","required":["schema_version"],"properties":{"schema_version":{"const":1},"commands":{"$ref":"#/definitions/stringList"},"command_overrides":{"$ref":"#/definitions/stringList"},"command_handlers":{"$ref":"#/definitions/stringList"},"hooks":{"$ref":"#/definitions/stringList"},"flag_commands":{"$ref":"#/definitions/stringList"},"item_types":{"$ref":"#/definitions/stringList"},"item_fields":{"$ref":"#/definitions/stringList"},"relationship_kinds":{"$ref":"#/definitions/stringList"},"migrations":{"$ref":"#/definitions/stringList"},"profiles":{"$ref":"#/definitions/stringList"},"importers":{"$ref":"#/definitions/stringList"},"exporters":{"$ref":"#/definitions/stringList"},"search_providers":{"$ref":"#/definitions/stringList"},"vector_store_adapters":{"$ref":"#/definitions/stringList"},"parser_overrides":{"$ref":"#/definitions/stringList"},"service_overrides":{"$ref":"#/definitions/stringList"},"renderer_overrides":{"$ref":"#/definitions/stringList"},"renderer_ownership":{"type":"array","items":{"type":"object","required":["format","commands","result_discriminator"],"properties":{"format":{"enum":["toon","json"]},"commands":{"$ref":"#/definitions/stringList"},"result_discriminator":{"type":"boolean"}}}},"preflight_overrides":{"type":"integer","minimum":0}}}},"definitions":{"stringList":{"type":"array","items":{"type":"string","minLength":1},"uniqueItems":true}}}
package/marketplace.json CHANGED
@@ -1,36 +1 @@
1
- {
2
- "name": "pm",
3
- "owner": {
4
- "name": "unbrained",
5
- "url": "https://github.com/unbraind/pm-cli"
6
- },
7
- "description": "Official marketplace for pm CLI — native git-based project management for Claude Code and AI coding agents.",
8
- "version": "2026.10.9",
9
- "plugins": [
10
- {
11
- "name": "pm-claude",
12
- "source": "./plugins/pm-claude",
13
- "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.",
14
- "version": "2026.10.9",
15
- "author": {
16
- "name": "unbrained",
17
- "url": "https://github.com/unbraind/pm-cli"
18
- },
19
- "homepage": "https://github.com/unbraind/pm-cli",
20
- "repository": "https://github.com/unbraind/pm-cli",
21
- "license": "MIT",
22
- "keywords": [
23
- "pm-cli",
24
- "project-management",
25
- "mcp",
26
- "tasks",
27
- "agents",
28
- "workflows",
29
- "git-native",
30
- "task-tracker",
31
- "ai"
32
- ],
33
- "category": "productivity"
34
- }
35
- ]
36
- }
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"}]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unbrained/pm-cli",
3
- "version": "2026.10.9",
3
+ "version": "2026.10.11",
4
4
  "description": "Git-native project management CLI for humans and agents.",
5
5
  "type": "module",
6
6
  "packageManager": "pnpm@11.10.0",