@unbrained/pm-cli 2026.10.10 → 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.
- package/.claude-plugin/marketplace.json +1 -36
- package/CHANGELOG.md +13 -4
- package/dist/cli-bundle/bundle-manifest.json +1 -382
- package/dist/cli-bundle/sdk-governance.js +1 -1
- package/dist/cli-bundle/sdk.js +9 -9
- package/dist/sdk/governance/artifact-ledgers.d.ts +59 -0
- package/dist/sdk/governance/artifact-ledgers.js +2 -0
- package/dist/sdk/governance.d.ts +1 -0
- package/dist/sdk/governance.js +1 -1
- package/dist/sdk/public-surface.json +1 -1
- package/docs/RELEASE_LEDGER_RECONCILIATION.md +148 -0
- package/docs/RELEASE_RELIABILITY.md +4 -0
- package/docs/RELEASING.md +34 -5
- package/docs/agent-task-token-baseline.json +1 -292
- package/docs/agent-task-transcripts.json +1 -478
- package/docs/ecosystem-review-2026-09-28.json +1 -2866
- package/docs/examples/policy-restricted-extension/manifest.json +1 -22
- package/docs/examples/policy-restricted-extension/package.json +1 -8
- package/docs/examples/sdk-agent-environment/package.json +1 -8
- package/docs/examples/sdk-app-embedding/package.json +1 -9
- package/docs/examples/sdk-contract-consumer/package.json +1 -11
- package/docs/examples/sdk-custom-tool/package.json +1 -13
- package/docs/examples/starter-extension/manifest.json +1 -33
- package/docs/examples/starter-extension/package.json +1 -10
- package/docs/performance/corpus-shape-comparison.json +1 -108
- package/docs/performance/latest-scale-report.json +1 -418
- package/docs/performance/scale-100k-report.json +1 -418
- package/docs/schemas/extension-manifest.schema.json +1 -165
- package/marketplace.json +1 -36
- package/package.json +1 -1
- package/packages/pm-beads/extensions/beads/manifest.json +1 -28
- package/packages/pm-beads/extensions/beads/package.json +1 -3
- package/packages/pm-beads/package.json +1 -50
- package/packages/pm-calendar/extensions/calendar/manifest.json +1 -22
- package/packages/pm-calendar/extensions/calendar/package.json +1 -3
- package/packages/pm-calendar/package.json +1 -51
- package/packages/pm-command-kit/extensions/command-kit/manifest.json +1 -22
- package/packages/pm-command-kit/extensions/command-kit/package.json +1 -3
- package/packages/pm-command-kit/package.json +1 -53
- package/packages/pm-digital-twin/extensions/digital-twin/manifest.json +1 -19
- package/packages/pm-digital-twin/extensions/digital-twin/package.json +1 -3
- package/packages/pm-digital-twin/package.json +1 -58
- package/packages/pm-governance-audit/extensions/governance-audit/manifest.json +1 -19
- package/packages/pm-governance-audit/extensions/governance-audit/package.json +1 -3
- package/packages/pm-governance-audit/package.json +1 -55
- package/packages/pm-guide-shell/extensions/guide-shell/manifest.json +1 -22
- package/packages/pm-guide-shell/extensions/guide-shell/package.json +1 -3
- package/packages/pm-guide-shell/package.json +1 -52
- package/packages/pm-kanban/extensions/kanban/manifest.json +1 -19
- package/packages/pm-kanban/extensions/kanban/package.json +1 -3
- package/packages/pm-kanban/package.json +1 -57
- package/packages/pm-lifecycle-hooks/extensions/lifecycle-hooks/manifest.json +1 -19
- package/packages/pm-lifecycle-hooks/extensions/lifecycle-hooks/package.json +1 -3
- package/packages/pm-lifecycle-hooks/package.json +1 -52
- package/packages/pm-linked-test-adapters/extensions/linked-test-adapters/manifest.json +1 -29
- package/packages/pm-linked-test-adapters/extensions/linked-test-adapters/package.json +1 -3
- package/packages/pm-linked-test-adapters/package.json +1 -53
- package/packages/pm-search-advanced/extensions/search-advanced/manifest.json +1 -29
- package/packages/pm-search-advanced/extensions/search-advanced/package.json +1 -3
- package/packages/pm-search-advanced/package.json +1 -54
- package/packages/pm-templates/extensions/templates/manifest.json +1 -22
- package/packages/pm-templates/extensions/templates/package.json +1 -3
- package/packages/pm-templates/package.json +1 -50
- package/packages/pm-todos/extensions/todos/manifest.json +1 -29
- package/packages/pm-todos/extensions/todos/package.json +1 -3
- package/packages/pm-todos/package.json +1 -51
- package/packages/pm-vcs/extensions/vcs/manifest.json +1 -19
- package/packages/pm-vcs/extensions/vcs/package.json +1 -3
- package/packages/pm-vcs/package.json +1 -55
- package/plugins/pm-claude/.claude-plugin/plugin.json +1 -25
- package/plugins/pm-claude/.mcp.json +1 -8
- package/plugins/pm-claude/hooks/hooks.json +1 -17
- package/plugins/pm-claude/package.json +1 -9
- package/plugins/pm-codex/.codex-plugin/plugin.json +1 -45
- package/plugins/pm-codex/.mcp.json +1 -11
- package/plugins/pm-codex/mcp.json +1 -11
- package/plugins/pm-codex/package.json +1 -9
- package/plugins/pm-codex/plugin.json +1 -45
- package/runtime-dependencies.json +1 -512
|
@@ -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.10",
|
|
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.10",
|
|
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"}]}
|