@unbrained/pm-cli 2026.10.26 → 2026.10.28
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 -1
- package/CHANGELOG.md +39 -1
- package/dist/cli/commander-usage.js +2 -2
- package/dist/cli/error-guidance.js +2 -2
- package/dist/cli/register-list-query.js +5 -5
- package/dist/cli-bundle/bundle-manifest.json +1 -1
- package/dist/cli-bundle/chunks/chunk-2J7I54MQ.js +2 -0
- package/dist/cli-bundle/chunks/{chunk-25MTQAHX.js → chunk-3KMYHYJV.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-7V37RC2L.js +114 -0
- package/dist/cli-bundle/chunks/chunk-AHVN4GHF.js +31 -0
- package/dist/cli-bundle/chunks/{chunk-VS2IIV3F.js → chunk-CS7QDSUX.js} +28 -28
- package/dist/cli-bundle/chunks/{chunk-T7T4WLUY.js → chunk-CXUQEZDX.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-ZT64RDMF.js → chunk-D3AIQZXF.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-7UDQAINZ.js → chunk-D6P6IBPN.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-TGOG5BFM.js → chunk-DKLEDWVW.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-MWCG25PO.js → chunk-DM3PICGU.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-Y42DYMZX.js → chunk-E5QBZ4HI.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-XAIR53QZ.js → chunk-JESLOJD7.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-57YPOOED.js → chunk-LWW4F4G2.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-PQLRKFPZ.js +20 -0
- package/dist/cli-bundle/chunks/{chunk-ONC4BBQP.js → chunk-RZQNFHXO.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-SPPHDVZE.js +2 -0
- package/dist/cli-bundle/chunks/{chunk-ER7RLJW5.js → chunk-TH5KPAN4.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-OCDRHIVQ.js → chunk-XHONSCLJ.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-NGKTROAO.js → chunk-YUBUNECD.js} +42 -42
- package/dist/cli-bundle/chunks/{chunk-Z35XAHUN.js → chunk-YYD5MNAV.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-UF6EXZSP.js → chunk-ZX3XMTZG.js} +2 -2
- package/dist/cli-bundle/chunks/indexed-receipt-blobs-LHLE7PSG.js +4 -0
- package/dist/cli-bundle/chunks/{mutation-admission-VTNV6JV2.js → mutation-admission-GKDKHRTZ.js} +2 -2
- package/dist/cli-bundle/chunks/{register-list-query-LZDWUZS4.js → register-list-query-MHJJUM6M.js} +9 -9
- package/dist/cli-bundle/chunks/{register-mutation-M2A7PH42.js → register-mutation-SN425O3R.js} +2 -2
- package/dist/cli-bundle/chunks/{register-operations-E7P2JTXM.js → register-operations-EYUIUGPW.js} +2 -2
- package/dist/cli-bundle/chunks/{register-setup-DOV7KGSH.js → register-setup-WUZ2ZSMY.js} +2 -2
- package/dist/cli-bundle/chunks/{settlement-hook-SVD6CO7U.js → settlement-hook-MN3Y7LVX.js} +2 -2
- package/dist/cli-bundle/chunks/{stage-LYLEOAQB.js → stage-2FYJGGG3.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-3EHVI673.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-46WLWK73.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-E5C24MCV.js → chunk-4GN2ZPT5.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-NLZUI234.js → chunk-6L4KKRK7.js} +18 -18
- package/dist/cli-bundle/focused-chunks/{chunk-D5YQ4KAE.js → chunk-6VDRAJYX.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-KTXU5WU6.js → chunk-7SZPZOIC.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-YQKLKRMW.js → chunk-B4ZQJEMT.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-NE27VCU7.js → chunk-BZSACRVX.js} +3 -3
- package/dist/cli-bundle/focused-chunks/{chunk-ADSBGYLW.js → chunk-C2GLO7HU.js} +55 -55
- package/dist/cli-bundle/focused-chunks/{chunk-UP765R2V.js → chunk-DRN4W3YJ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-EGN2HFRU.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-CSCZYSNZ.js → chunk-F6UQJJYB.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-I7H3XF25.js → chunk-I4X6AKOO.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-IQKLJFJE.js +79 -0
- package/dist/cli-bundle/focused-chunks/{chunk-KERJNFXY.js → chunk-JTCGDODH.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-IF6C43IP.js → chunk-L5GX2FGZ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-PK5FJIVA.js → chunk-LPWZERVD.js} +11 -11
- package/dist/cli-bundle/focused-chunks/{chunk-YW5GHQN2.js → chunk-ML5JIUM6.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-BL77VCRB.js → chunk-OASYSUOH.js} +16 -16
- package/dist/cli-bundle/focused-chunks/{chunk-BH7RE2ZY.js → chunk-ON5WFDCG.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-WDWHUJQW.js → chunk-QUPGBO2L.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-226XKW3W.js → chunk-R3EA3SDW.js} +3 -3
- package/dist/cli-bundle/focused-chunks/{chunk-B266DDBJ.js → chunk-TUN4M757.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-YTEC2EPM.js → chunk-Z26ZPQH6.js} +3 -3
- package/dist/cli-bundle/focused-chunks/indexed-receipt-blobs-5H6RMRTK.js +4 -0
- package/dist/cli-bundle/focused-chunks/{mutation-admission-L42E3U5U.js → mutation-admission-TM3SVU2O.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{settlement-hook-3CADO4XZ.js → settlement-hook-LBVWWSCF.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{stage-TUQHWU7N.js → stage-7ZBRX2Q2.js} +2 -2
- package/dist/cli-bundle/main.js +21 -21
- package/dist/cli-bundle/sdk-authoring.js +1 -1
- package/dist/cli-bundle/sdk-contracts.js +2 -2
- package/dist/cli-bundle/sdk-core.js +34 -33
- package/dist/cli-bundle/sdk-governance.js +1 -1
- package/dist/cli-bundle/sdk-graph.js +1 -1
- package/dist/cli-bundle/sdk-merge.js +57 -57
- package/dist/cli-bundle/sdk-query.js +1 -1
- package/dist/cli-bundle/sdk-runtime.js +1 -1
- package/dist/cli-bundle/sdk-testing.js +1 -1
- package/dist/cli-bundle/sdk.js +11 -11
- package/dist/core/history/event-index.d.ts +6 -0
- package/dist/core/history/event-index.js +7 -6
- package/dist/core/history/read.d.ts +3 -1
- package/dist/core/history/read.js +1 -1
- package/dist/core/item/priority.js +1 -1
- package/dist/core/shared/errors.d.ts +2 -0
- package/dist/core/shared/errors.js +1 -1
- package/dist/core/store/item-store.js +1 -1
- package/dist/mcp/tool-definitions.js +1 -1
- package/dist/sdk/agent/command-recovery.d.ts +5 -0
- package/dist/sdk/agent/command-recovery.js +1 -1
- package/dist/sdk/cli-contracts/flag-contracts.js +1 -1
- package/dist/sdk/cli-contracts/flag-lexicon-contracts.js +1 -1
- package/dist/sdk/cli-contracts/grammar-contracts.js +1 -1
- package/dist/sdk/cli-contracts/tool-parameter-tables.js +1 -1
- package/dist/sdk/cli-contracts/tool-schema.js +1 -1
- package/dist/sdk/command-line.d.ts +6 -0
- package/dist/sdk/command-line.js +1 -1
- package/dist/sdk/generated/generated-error-code-catalog-part-1.js +1 -1
- package/dist/sdk/index.d.ts +1 -1
- package/dist/sdk/index.js +1 -1
- package/dist/sdk/lifecycle/close.js +1 -1
- package/dist/sdk/lifecycle/create.js +1 -1
- package/dist/sdk/lifecycle/update-many.js +1 -1
- package/dist/sdk/lifecycle/update.js +1 -1
- package/dist/sdk/merge/indexed-receipt-blobs.d.ts +3 -1
- package/dist/sdk/merge/indexed-receipt-blobs.js +2 -2
- package/dist/sdk/merge/receipt-file-boundary.d.ts +2 -0
- package/dist/sdk/merge/receipt-file-boundary.js +1 -1
- package/dist/sdk/merge/receipts.js +2 -2
- package/dist/sdk/mutation-events.d.ts +6 -0
- package/dist/sdk/mutation-events.js +1 -1
- package/dist/sdk/public-surface.json +1 -1
- package/dist/sdk/query/history.d.ts +4 -0
- package/dist/sdk/query/history.js +1 -1
- package/dist/sdk/runtime/actions.js +1 -1
- package/dist/sdk/runtime-extended-actions.js +1 -1
- package/dist/sdk/runtime.js +1 -1
- package/dist/sdk/test/command-resolution.d.ts +5 -0
- package/dist/sdk/test/command-resolution.js +3 -0
- package/dist/sdk/test/execution.js +3 -3
- package/dist/sdk/test/receipt-index-snapshot.d.ts +2 -0
- package/dist/sdk/test/receipt-index-snapshot.js +2 -0
- package/dist/sdk/test/workspace-snapshot.d.ts +1 -1
- package/dist/sdk/test/workspace-snapshot.js +1 -1
- package/docs/COMMANDS.md +28 -1
- package/docs/PERFORMANCE.md +21 -6
- package/docs/RELEASING.md +11 -0
- package/docs/SDK.md +40 -0
- package/docs/SDK_CONTEXT_COORDINATION.md +35 -4
- package/docs/TESTING.md +42 -3
- package/docs/generated/FLAG_LEXICON_BUDGETS.md +2 -2
- package/docs/generated/REFUSAL_CLOSURE_CENSUS.md +4 -3
- package/marketplace.json +1 -1
- package/package.json +1 -1
- package/packages/pm-beads/package.json +1 -1
- package/packages/pm-calendar/package.json +1 -1
- package/packages/pm-command-kit/package.json +1 -1
- package/packages/pm-digital-twin/package.json +1 -1
- package/packages/pm-governance-audit/package.json +1 -1
- package/packages/pm-guide-shell/package.json +1 -1
- package/packages/pm-kanban/package.json +1 -1
- package/packages/pm-lifecycle-hooks/package.json +1 -1
- package/packages/pm-linked-test-adapters/package.json +1 -1
- package/packages/pm-search-advanced/package.json +1 -1
- package/packages/pm-templates/package.json +1 -1
- package/packages/pm-todos/package.json +1 -1
- package/packages/pm-vcs/package.json +1 -1
- package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
- package/plugins/pm-claude/package.json +1 -1
- package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
- package/plugins/pm-codex/package.json +1 -1
- package/plugins/pm-codex/plugin.json +1 -1
- package/runtime-dependencies.json +1 -1
- package/dist/cli-bundle/chunks/chunk-N6FTEILW.js +0 -20
- package/dist/cli-bundle/chunks/chunk-OUDR2HWR.js +0 -113
- package/dist/cli-bundle/chunks/chunk-RUKSEZE7.js +0 -2
- package/dist/cli-bundle/chunks/chunk-YJBIPNDL.js +0 -2
- package/dist/cli-bundle/chunks/chunk-ZLVFUZI4.js +0 -30
- package/dist/cli-bundle/chunks/indexed-receipt-blobs-NWQIDTH7.js +0 -4
- package/dist/cli-bundle/focused-chunks/chunk-ABMNYWV6.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-NFN2P4TW.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-UHWTPOM4.js +0 -78
- package/dist/cli-bundle/focused-chunks/chunk-VVRXF4JO.js +0 -2
- package/dist/cli-bundle/focused-chunks/indexed-receipt-blobs-YFDNGHCM.js +0 -4
|
@@ -22,6 +22,8 @@ bounded at scale without shelling out from an SDK host.
|
|
|
22
22
|
|
|
23
23
|
## Durable mutation events
|
|
24
24
|
|
|
25
|
+
Integrity contracts: [pm-gh1593](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-gh1593.toon).
|
|
26
|
+
|
|
25
27
|
Read committed history facts as newline-delimited JSON:
|
|
26
28
|
|
|
27
29
|
```bash
|
|
@@ -33,13 +35,42 @@ pm events --cursor-mode row --since <cursor>
|
|
|
33
35
|
|
|
34
36
|
By default, event rows carry `item_id`, `version`, `ts`, `author`, `type`, and
|
|
35
37
|
`patch_count`, followed by one `pm.stream.trailer` record with `count`,
|
|
36
|
-
`has_more`, `next_cursor`, and `
|
|
38
|
+
`has_more`, `next_cursor`, `source`, and `integrity`. Persist the trailer cursor only after
|
|
37
39
|
the batch is durable. A crash before cursor persistence can replay the last
|
|
38
40
|
batch repeatedly, including across multiple crashes. Consumers must process
|
|
39
41
|
idempotently or deduplicate replays. `--cursor-mode row` preserves the previous
|
|
40
42
|
shape with one `cursor` per event and no trailer for consumers that checkpoint
|
|
41
43
|
every row. Already issued version-1 cursors remain accepted by `--since`.
|
|
42
44
|
|
|
45
|
+
Every SDK page declares `integrity: "unverified"` by default. Full-file content
|
|
46
|
+
matching prevents a stale cache from hiding same-length edits to any record,
|
|
47
|
+
including an earlier record when the final record is unchanged. This freshness
|
|
48
|
+
check alone does not verify the chain.
|
|
49
|
+
The public `readHistorySnapshot` result retains `raw_bytes` alongside decoded
|
|
50
|
+
`raw` and `entries`. Content receipts use those original bytes, including when
|
|
51
|
+
UTF-8 decoding replaces an invalid byte; parsing behavior remains unchanged.
|
|
52
|
+
|
|
53
|
+
Use `listMutationEvents({ item: "pm-abcd", verify: true })` or
|
|
54
|
+
`pm events --item pm-abcd --verify --json` before acting on verified events.
|
|
55
|
+
The SDK reads authoritative bytes and verifies each complete selected stream
|
|
56
|
+
before applying operation, author, timestamp, cursor, or row-limit filters.
|
|
57
|
+
Selected-record failures are detected even outside the returned page. JSON
|
|
58
|
+
parsing failures from `readHistorySnapshot` report `history_json_invalid`;
|
|
59
|
+
chain-verification failures report `event_history_integrity_failed` with
|
|
60
|
+
history-inspection recovery. Follow the returned typed recovery guidance. Select
|
|
61
|
+
`item` to bound verification cost and exclude unrelated streams. With no item
|
|
62
|
+
filter, all available item and workspace streams are checked. Successful pages
|
|
63
|
+
return `integrity: "verified"`, `verified_streams`, and
|
|
64
|
+
`source: "authoritative_history"`; this proves the recorded chain, not agreement
|
|
65
|
+
with the current materialized item or an external author signature. Empty
|
|
66
|
+
selections report zero verified streams. Subscriptions verify each yielded
|
|
67
|
+
batch with the same options. MCP `pm_events` accepts `verify: true` too.
|
|
68
|
+
Both strict reads and the authoritative fallback preserve typed history refusals
|
|
69
|
+
and report other host read failures as `event_index_unavailable`. Cache receipts
|
|
70
|
+
and ordered rows are published together, including across concurrent reads.
|
|
71
|
+
Batch-mode NDJSON trailers retain the integrity receipt; compatibility row mode
|
|
72
|
+
has no trailer, so use JSON or batch mode when persisting page receipts.
|
|
73
|
+
|
|
43
74
|
Version-1 cursor ordering uses recorded timestamps, stream ids, and offsets.
|
|
44
75
|
A fact committed later with an older timestamp falls before an advanced cursor.
|
|
45
76
|
Clock-independent ordering and late-commit recovery remain tracked by
|
|
@@ -53,15 +84,15 @@ streams with the same ordering, filters, pagination, and cursor contract; pages
|
|
|
53
84
|
identify that path with `source: "authoritative_history"`.
|
|
54
85
|
Writers without SQLite use the same pending and committed invalidation protocol,
|
|
55
86
|
so a later Node writer cannot certify a cache that omitted their facts.
|
|
56
|
-
Incremental writes also verify the previous
|
|
87
|
+
Incremental writes also verify the previous full-content receipt before advancing it,
|
|
57
88
|
so merged history cannot be hidden by a later append. Upgraded runtimes rebuild
|
|
58
89
|
legacy projections that could contain omitted facts with apparently current
|
|
59
90
|
receipts; authoritative history does not require a format migration.
|
|
60
91
|
|
|
61
92
|
Index readers take a synchronous SQLite read transaction containing both event
|
|
62
|
-
rows and their stream-
|
|
93
|
+
rows and their full-stream SHA-256 content receipts, then close the database before checking
|
|
63
94
|
authoritative files. They acquire neither history-index writer lock. File
|
|
64
|
-
identity and write timestamps, authoritative
|
|
95
|
+
identity and write timestamps, complete authoritative content digests, and pending or
|
|
65
96
|
committed invalidations must still match before a snapshot is returned. A
|
|
66
97
|
concurrent change refuses the optional snapshot; it cannot certify older rows
|
|
67
98
|
using a newer size receipt.
|
package/docs/TESTING.md
CHANGED
|
@@ -20,6 +20,30 @@ Tracked implementation updates: [pm-52eh](../.agents/pm/features/pm-52eh.toon),
|
|
|
20
20
|
creates its own sandboxed `PM_PATH`.
|
|
21
21
|
- Run linked tests before closing the item that owns the work.
|
|
22
22
|
|
|
23
|
+
Linked tests classify a confirmed missing executable as `spawn_error`, retaining
|
|
24
|
+
the shell's exit code and exact stderr. Confirmation requires a literal leading
|
|
25
|
+
executable, the shell's named lookup diagnostic and a failed lookup using the
|
|
26
|
+
execution's environment and working directory. On POSIX, a resolved script may
|
|
27
|
+
also qualify when a bounded shebang read confirms its absolute interpreter is
|
|
28
|
+
absent. The script is never rerun to probe startup. A child deliberately exiting
|
|
29
|
+
127, arbitrary `ENOENT` output, compound shell programs, expansions, and an
|
|
30
|
+
unavailable lookup probe retain their existing classification. A killed or
|
|
31
|
+
signaled resolver cannot establish absence, even if its reported code is 1.
|
|
32
|
+
The required native fixture captures the real lookup's status, signal, kill
|
|
33
|
+
flag, duration, working directory and effective child-environment equality. It
|
|
34
|
+
requires the category established by that independent evidence; unavailable
|
|
35
|
+
proof must remain an assertion failure. Environment values are not logged.
|
|
36
|
+
This conservative
|
|
37
|
+
rule supports POSIX shells and Windows command lookup; it does not infer setup
|
|
38
|
+
failure from arbitrary runner output
|
|
39
|
+
([pm-gh1604](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-gh1604.toon); tracker record excluded from npm).
|
|
40
|
+
Interpreter verification and replay evidence:
|
|
41
|
+
[pm-script-launch-evidence](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-script-launch-evidence.toon)
|
|
42
|
+
(tracker record excluded from npm).
|
|
43
|
+
Native resolver evidence:
|
|
44
|
+
[pm-windows-lookup-proof](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-windows-lookup-proof.toon)
|
|
45
|
+
(tracker record excluded from npm).
|
|
46
|
+
|
|
23
47
|
Tracked documentation work: [pm-u9d0](../.agents/pm/epics/pm-u9d0.toon).
|
|
24
48
|
|
|
25
49
|
Local/hosted gate parity is tracked by [pm-ei6x66](../.agents/pm/tasks/pm-ei6x66.toon).
|
|
@@ -262,12 +286,14 @@ into the pass count; a persistent assertion still fails after the bounded
|
|
|
262
286
|
retry. Local runs do not retry, so deterministic failures stay immediate while
|
|
263
287
|
iterating.
|
|
264
288
|
|
|
265
|
-
The complete receipt-operation, aborted-operation recovery, receipt-settlement, merge-portability and
|
|
289
|
+
The complete receipt-operation, receipt-health classification, aborted-operation recovery, receipt-settlement, merge-portability and
|
|
266
290
|
lossless-collection-union integration files run in the existing serial
|
|
267
291
|
`lifecycle-performance` project after parallel contracts. Both nightly shards and
|
|
268
292
|
full coverage use that same project partition, retaining every case and its
|
|
269
293
|
original assertions, deadlines and retry policy. This allocation is tracked by
|
|
270
|
-
[pm-89297t](../.agents/pm/tasks/pm-89297t.toon)
|
|
294
|
+
[pm-89297t](../.agents/pm/tasks/pm-89297t.toon) and
|
|
295
|
+
[pm-receipt-serial](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-receipt-serial.toon)
|
|
296
|
+
(tracker records are excluded from npm); it does not classify or erase
|
|
271
297
|
historical failed attempts.
|
|
272
298
|
|
|
273
299
|
The complete nightly suites use two Vitest shards on Linux Node 22/25 and
|
|
@@ -678,8 +704,21 @@ pm test <item-id> --run --workspace-context snapshot --override-linked-workspace
|
|
|
678
704
|
`.git`, `.agents`, coverage output, and common cache directories are excluded
|
|
679
705
|
at every directory depth, with reserved names matched case-insensitively for
|
|
680
706
|
portable admission. Git sources receive an independent commit/tag object store
|
|
681
|
-
with fresh configuration, no source hooks,
|
|
707
|
+
with an index initially based on HEAD, fresh configuration, no source hooks,
|
|
708
|
+
and no origin remote. Repository
|
|
682
709
|
history remains available; this is execution isolation, not history redaction.
|
|
710
|
+
Receipt verification is tracked by [pm-ycyymg](../.agents/pm/issues/pm-ycyymg.toon).
|
|
711
|
+
Source-mode tracker copies authenticate matching durable receipts against the
|
|
712
|
+
explicitly inherited read-only source index. Snapshot-mode copies use their
|
|
713
|
+
own index and the exact bound tracker path. Only bounded stage-zero receipt
|
|
714
|
+
blobs from the selected source tracker index are copied into that independent
|
|
715
|
+
object store and rebased into the snapshot namespace, including staged-only
|
|
716
|
+
receipts and custom tracker roots. Inherited receipts from another tracker
|
|
717
|
+
namespace are removed. Untracked, missing, conflicted, malformed, or
|
|
718
|
+
provenance-divergent sidecars remain untrusted; no source receipt, index,
|
|
719
|
+
or history is written by verification. A failed source index/object read aborts
|
|
720
|
+
snapshot setup before its receipt namespace is changed. A workspace without
|
|
721
|
+
Git authority or without indexed receipts still supplies no durable proof.
|
|
683
722
|
See [Faithful package acceptance](PACKAGE_GATE_ACCEPTANCE.md) for limits.
|
|
684
723
|
Each existing root or nested `node_modules`
|
|
685
724
|
directory is linked at its original relative path, including installations
|
|
@@ -33,7 +33,7 @@ This file is generated by `listPmFlagLexicon()`. Compatibility aliases do not co
|
|
|
33
33
|
| `eval` | context | 25 | 25 |
|
|
34
34
|
| `next` | context | 38 | 38 |
|
|
35
35
|
| `history` | evidence | 35 | 35 |
|
|
36
|
-
| `events` | evidence |
|
|
36
|
+
| `events` | evidence | 34 | 34 |
|
|
37
37
|
| `history-attest` | evidence | 23 | 23 |
|
|
38
38
|
| `history-redact` | evidence | 27 | 27 |
|
|
39
39
|
| `history-repair` | evidence | 27 | 27 |
|
|
@@ -91,7 +91,7 @@ This file is generated by `listPmFlagLexicon()`. Compatibility aliases do not co
|
|
|
91
91
|
| `ops telemetry` | workspace | 21 | 21 |
|
|
92
92
|
| `ops eval` | context | 25 | 25 |
|
|
93
93
|
| `ops test-all` | quality | 40 | 40 |
|
|
94
|
-
| `history events` | evidence |
|
|
94
|
+
| `history events` | evidence | 34 | 34 |
|
|
95
95
|
| `update many` | lifecycle | 146 | 146 |
|
|
96
96
|
| `close many` | lifecycle | 72 | 72 |
|
|
97
97
|
| `close delete` | lifecycle | 24 | 24 |
|
|
@@ -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:
|
|
7
|
+
- Catalog error codes: 431
|
|
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:
|
|
12
|
-
- Coverage fraction: 0.
|
|
11
|
+
- Uncovered error codes: 412
|
|
12
|
+
- Coverage fraction: 0.044084
|
|
13
13
|
- Closed-domain probes: 19
|
|
14
14
|
- Grammar probes: 117
|
|
15
15
|
|
|
@@ -84,6 +84,7 @@ Every catalog code is listed. An `uncovered` row is an explicit closure obligati
|
|
|
84
84
|
| `empty_surface` | `empty_surface` | uncovered | none | 0 |
|
|
85
85
|
| `error_code_mismatch` | `error_code_mismatch` | uncovered | none | 0 |
|
|
86
86
|
| `event_cursor_query_mismatch` | `event_cursor_query_mismatch` | uncovered | none | 0 |
|
|
87
|
+
| `event_history_integrity_failed` | `event_history_integrity_failed` | uncovered | none | 0 |
|
|
87
88
|
| `event_index_unavailable` | `event_index_unavailable` | uncovered | none | 0 |
|
|
88
89
|
| `exit_code_mismatch` | `exit_code_mismatch` | uncovered | none | 0 |
|
|
89
90
|
| `extension_command_activation_failed` | `extension_command_activation_failed` | uncovered | none | 0 |
|
package/marketplace.json
CHANGED
|
@@ -1 +1 @@
|
|
|
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.
|
|
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.28","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.28","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 +1 @@
|
|
|
1
|
-
{"name":"@unbrained/pm-beads","version":"2026.10.
|
|
1
|
+
{"name":"@unbrained/pm-beads","version":"2026.10.28","private":true,"type":"module","description":"First-party pm package for importing Beads JSONL records.","homepage":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-beads#readme","repository":{"type":"git","url":"git+https://github.com/unbraind/pm-cli.git","directory":"packages/pm-beads"},"bugs":{"url":"https://github.com/unbraind/pm-cli/issues"},"keywords":["pm-package","project-management","beads"],"pm":{"aliases":["beads"],"extensions":["extensions/beads"],"catalog":{"display_name":"Beads Import","category":"migration","summary":"Import Beads JSONL records into pm while preserving source IDs.","tags":["migration","beads","import"],"links":{"docs":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-beads#readme","repository":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-beads","report":"https://github.com/unbraind/pm-cli/issues"}},"docs":["README.md"],"examples":["README.md"]}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@unbrained/pm-calendar","version":"2026.10.
|
|
1
|
+
{"name":"@unbrained/pm-calendar","version":"2026.10.28","private":true,"type":"module","description":"First-party pm package for calendar and agenda views.","homepage":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-calendar#readme","repository":{"type":"git","url":"git+https://github.com/unbraind/pm-cli.git","directory":"packages/pm-calendar"},"bugs":{"url":"https://github.com/unbraind/pm-cli/issues"},"keywords":["pm-package","project-management","calendar","agenda"],"pm":{"aliases":["calendar"],"extensions":["extensions/calendar"],"catalog":{"display_name":"Calendar Views","category":"workflow","summary":"Show agenda, day, week, and month views for deadlines, reminders, and scheduled events.","tags":["calendar","agenda","workflow"],"links":{"docs":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-calendar#readme","repository":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-calendar","report":"https://github.com/unbraind/pm-cli/issues"}},"docs":["README.md"],"examples":["README.md"]}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@unbrained/pm-command-kit","version":"2026.10.
|
|
1
|
+
{"name":"@unbrained/pm-command-kit","version":"2026.10.28","private":true,"type":"module","description":"First-party pm exemplar package for the commands capability: registerCommand, registerFlags, and registerParser.","homepage":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-command-kit#readme","repository":{"type":"git","url":"git+https://github.com/unbraind/pm-cli.git","directory":"packages/pm-command-kit"},"bugs":{"url":"https://github.com/unbraind/pm-cli/issues"},"keywords":["pm-package","project-management","sdk","commands","exemplar"],"pm":{"aliases":["command-kit"],"extensions":["extensions/command-kit"],"catalog":{"display_name":"Command Kit Exemplar","category":"sdk","summary":"Copy-paste-able exemplar for registerCommand, registerFlags, and registerParser.","tags":["sdk","commands","parser","exemplar"],"links":{"docs":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-command-kit#readme","repository":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-command-kit","report":"https://github.com/unbraind/pm-cli/issues"}},"docs":["README.md"],"examples":["README.md"]}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@unbrained/pm-digital-twin","version":"2026.10.
|
|
1
|
+
{"name":"@unbrained/pm-digital-twin","version":"2026.10.28","private":true,"type":"module","description":"Beyond-PM exemplar: a temporal production-facility digital twin built entirely on public pm SDK and extension primitives.","homepage":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-digital-twin#readme","repository":{"type":"git","url":"git+https://github.com/unbraind/pm-cli.git","directory":"packages/pm-digital-twin"},"bugs":{"url":"https://github.com/unbraind/pm-cli/issues"},"keywords":["pm-package","sdk","digital-twin","event-sourcing","temporal-graph","exemplar"],"pm":{"aliases":["digital-twin","twin"],"extensions":["extensions/digital-twin"],"catalog":{"display_name":"Digital Twin SDK Exemplar","category":"sdk","summary":"Temporal facility graph proving event replay, point-in-time state, invariants, federation, checkpoints, and compact exports through public SDK contracts.","tags":["sdk","digital-twin","event-sourcing","graph","offline-first","exemplar"],"links":{"docs":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-digital-twin#readme","repository":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-digital-twin","report":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-digital-twin/GAP_REPORT.md"}},"docs":["README.md","GAP_REPORT.md"],"examples":["README.md"]}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@unbrained/pm-governance-audit","version":"2026.10.
|
|
1
|
+
{"name":"@unbrained/pm-governance-audit","version":"2026.10.28","private":true,"type":"module","description":"First-party pm package for governance audit and normalization workflows.","homepage":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-governance-audit#readme","repository":{"type":"git","url":"git+https://github.com/unbraind/pm-cli.git","directory":"packages/pm-governance-audit"},"bugs":{"url":"https://github.com/unbraind/pm-cli/issues"},"keywords":["pm-package","project-management","governance","audit","normalize","hooks"],"pm":{"aliases":["governance-audit","audit"],"extensions":["extensions/governance-audit"],"catalog":{"display_name":"Governance Audit","category":"governance","summary":"Run dedupe audits, comments audits, and normalize sweeps as package-owned workflows.","tags":["governance","audit","normalize","hooks"],"links":{"docs":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-governance-audit#readme","repository":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-governance-audit","report":"https://github.com/unbraind/pm-cli/issues"}},"docs":["README.md"],"examples":["README.md"]}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@unbrained/pm-guide-shell","version":"2026.10.
|
|
1
|
+
{"name":"@unbrained/pm-guide-shell","version":"2026.10.28","private":true,"type":"module","description":"First-party pm package for guide and shell completion workflows.","homepage":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-guide-shell#readme","repository":{"type":"git","url":"git+https://github.com/unbraind/pm-cli.git","directory":"packages/pm-guide-shell"},"bugs":{"url":"https://github.com/unbraind/pm-cli/issues"},"keywords":["pm-package","project-management","guide","completion","shell"],"pm":{"aliases":["guide-shell"],"extensions":["extensions/guide-shell"],"catalog":{"display_name":"Guide + Shell UX","category":"workflow","summary":"Restore guide documentation and shell completion commands as package-owned UX surfaces.","tags":["guide","completion","shell"],"links":{"docs":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-guide-shell#readme","repository":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-guide-shell","report":"https://github.com/unbraind/pm-cli/issues"}},"docs":["README.md"],"examples":["README.md"]}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@unbrained/pm-kanban","version":"2026.10.
|
|
1
|
+
{"name":"@unbrained/pm-kanban","version":"2026.10.28","private":true,"type":"module","description":"First-party pm archetype package: a complete Kanban continuous-flow profile built on public SDK primitives.","homepage":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-kanban#readme","repository":{"type":"git","url":"git+https://github.com/unbraind/pm-cli.git","directory":"packages/pm-kanban"},"bugs":{"url":"https://github.com/unbraind/pm-cli/issues"},"keywords":["pm-package","project-management","sdk","profile","archetype","kanban","exemplar"],"pm":{"aliases":["kanban"],"extensions":["extensions/kanban"],"catalog":{"display_name":"Kanban Archetype","category":"sdk","summary":"Installable Kanban continuous-flow archetype: Card item type, flow fields, and a ProjectProfileDefinition built on public SDK primitives.","tags":["sdk","profile","archetype","kanban","schema","exemplar"],"links":{"docs":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-kanban#readme","repository":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-kanban","report":"https://github.com/unbraind/pm-cli/issues"}},"docs":["README.md"],"examples":["README.md"]}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@unbrained/pm-lifecycle-hooks","version":"2026.10.
|
|
1
|
+
{"name":"@unbrained/pm-lifecycle-hooks","version":"2026.10.28","private":true,"type":"module","description":"First-party pm package demonstrating safe lifecycle hook registration.","homepage":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-lifecycle-hooks#readme","repository":{"type":"git","url":"git+https://github.com/unbraind/pm-cli.git","directory":"packages/pm-lifecycle-hooks"},"bugs":{"url":"https://github.com/unbraind/pm-cli/issues"},"keywords":["pm-package","project-management","hooks","lifecycle","sdk"],"pm":{"aliases":["lifecycle-hooks"],"extensions":["extensions/lifecycle-hooks"],"catalog":{"display_name":"Lifecycle Hooks","category":"sdk","summary":"Default-inert lifecycle hook exemplar for package authors.","tags":["hooks","lifecycle","sdk"],"links":{"docs":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-lifecycle-hooks#readme","repository":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-lifecycle-hooks","report":"https://github.com/unbraind/pm-cli/issues"}},"docs":["README.md"],"examples":["README.md"]}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@unbrained/pm-linked-test-adapters","version":"2026.10.
|
|
1
|
+
{"name":"@unbrained/pm-linked-test-adapters","version":"2026.10.28","private":true,"type":"module","description":"First-party pm package for optional linked-test run management adapters and reporters.","homepage":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-linked-test-adapters#readme","repository":{"type":"git","url":"git+https://github.com/unbraind/pm-cli.git","directory":"packages/pm-linked-test-adapters"},"bugs":{"url":"https://github.com/unbraind/pm-cli/issues"},"keywords":["pm-package","project-management","linked-tests","background-runs","test-runs"],"pm":{"aliases":["linked-test-adapters"],"extensions":["extensions/linked-test-adapters"],"catalog":{"display_name":"Linked Test Adapters","category":"testing","summary":"Restore optional linked-test run management/reporting command surfaces.","tags":["tests","linked-tests","background","reporting"],"links":{"docs":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-linked-test-adapters#readme","repository":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-linked-test-adapters","report":"https://github.com/unbraind/pm-cli/issues"}},"docs":["README.md"],"examples":["README.md"]}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@unbrained/pm-search-advanced","version":"2026.10.
|
|
1
|
+
{"name":"@unbrained/pm-search-advanced","version":"2026.10.28","private":true,"type":"module","description":"First-party pm package for semantic, hybrid, and reindex search workflows.","homepage":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-search-advanced#readme","repository":{"type":"git","url":"git+https://github.com/unbraind/pm-cli.git","directory":"packages/pm-search-advanced"},"bugs":{"url":"https://github.com/unbraind/pm-cli/issues"},"keywords":["pm-package","project-management","search","reindex","semantic","hybrid"],"pm":{"aliases":["search-advanced"],"extensions":["extensions/search-advanced"],"catalog":{"display_name":"Advanced Search","category":"search","summary":"Enable semantic/hybrid search modes and reindex workflows.","tags":["search","semantic","hybrid","reindex"],"links":{"docs":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-search-advanced#readme","repository":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-search-advanced","report":"https://github.com/unbraind/pm-cli/issues"}},"docs":["README.md"],"examples":["README.md"]}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@unbrained/pm-templates","version":"2026.10.
|
|
1
|
+
{"name":"@unbrained/pm-templates","version":"2026.10.28","private":true,"type":"module","description":"First-party pm package for reusable create templates.","homepage":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-templates#readme","repository":{"type":"git","url":"git+https://github.com/unbraind/pm-cli.git","directory":"packages/pm-templates"},"bugs":{"url":"https://github.com/unbraind/pm-cli/issues"},"keywords":["pm-package","project-management","templates"],"pm":{"aliases":["templates"],"extensions":["extensions/templates"],"catalog":{"display_name":"Create Templates","category":"workflow","summary":"Save, list, show, and apply reusable pm create option templates.","tags":["templates","create","workflow"],"links":{"docs":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-templates#readme","repository":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-templates","report":"https://github.com/unbraind/pm-cli/issues"}},"docs":["README.md"],"examples":["README.md"]}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@unbrained/pm-todos","version":"2026.10.
|
|
1
|
+
{"name":"@unbrained/pm-todos","version":"2026.10.28","private":true,"type":"module","description":"First-party pm package for Todo markdown import and export.","homepage":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-todos#readme","repository":{"type":"git","url":"git+https://github.com/unbraind/pm-cli.git","directory":"packages/pm-todos"},"bugs":{"url":"https://github.com/unbraind/pm-cli/issues"},"keywords":["pm-package","project-management","todos"],"pm":{"aliases":["todos"],"extensions":["extensions/todos"],"catalog":{"display_name":"Todos Import/Export","category":"migration","summary":"Import and export Todo markdown tasks through pm package commands.","tags":["migration","todos","import","export"],"links":{"docs":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-todos#readme","repository":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-todos","report":"https://github.com/unbraind/pm-cli/issues"}},"docs":["README.md"],"examples":["README.md"]}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@unbrained/pm-vcs-sdk-exemplar","version":"2026.10.
|
|
1
|
+
{"name":"@unbrained/pm-vcs-sdk-exemplar","version":"2026.10.28","private":true,"type":"module","description":"Beyond-PM exemplar: a VCS-style changeset workflow built entirely on public pm SDK and extension primitives.","homepage":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-vcs#readme","repository":{"type":"git","url":"git+https://github.com/unbraind/pm-cli.git","directory":"packages/pm-vcs"},"bugs":{"url":"https://github.com/unbraind/pm-cli/issues"},"keywords":["pm-package","sdk","vcs","event-sourcing","exemplar"],"pm":{"aliases":["vcs-exemplar"],"extensions":["extensions/vcs"],"catalog":{"display_name":"VCS SDK Exemplar","category":"sdk","summary":"Non-PM changeset/ref workflow proving custom schema, domain commands, hooks, history replay, and typed relationship events through public SDK contracts.","tags":["sdk","vcs","event-sourcing","graph","exemplar"],"links":{"docs":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-vcs#readme","repository":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-vcs","report":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-vcs/GAP_REPORT.md"}},"docs":["README.md","GAP_REPORT.md"],"examples":["README.md"]}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"$schema":"https://json.schemastore.org/claude-code-plugin-manifest.json","name":"pm-claude","displayName":"pm CLI","description":"Native pm CLI integration for Claude Code — 32 MCP tools, 14 skills with slash invocations, 4 subagents (coordinator, delivery-chain, triage, verification), hybrid TUI task tracking (pm as persistent store + Claude Code task panel as live view), session context injection, and full git-based project management without leaving Claude Code.","version":"2026.10.
|
|
1
|
+
{"$schema":"https://json.schemastore.org/claude-code-plugin-manifest.json","name":"pm-claude","displayName":"pm CLI","description":"Native pm CLI integration for Claude Code — 32 MCP tools, 14 skills with slash invocations, 4 subagents (coordinator, delivery-chain, triage, verification), hybrid TUI task tracking (pm as persistent store + Claude Code task panel as live view), session context injection, and full git-based project management without leaving Claude Code.","version":"2026.10.28","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"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"pm-claude-runtime","private":true,"type":"module","version":"2026.10.
|
|
1
|
+
{"name":"pm-claude-runtime","private":true,"type":"module","version":"2026.10.28","dependencies":{"@unbrained/pm-cli":"2026.10.28"}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"pm-codex","version":"2026.10.
|
|
1
|
+
{"name":"pm-codex","version":"2026.10.28","description":"Native Codex integration for pm-cli with bundled MCP tools, skills, commands, and agent workflows.","author":{"name":"unbrained","url":"https://github.com/unbraind/pm-cli"},"homepage":"https://github.com/unbraind/pm-cli/tree/main/plugins/pm-codex","repository":"https://github.com/unbraind/pm-cli","license":"MIT","keywords":["pm-cli","codex","mcp","project-management","agents","tasks","workflows"],"skills":"./skills/","mcpServers":"./.mcp.json","interface":{"displayName":"pm CLI","shortDescription":"Native pm tracker tools and agent workflows","longDescription":"Use pm CLI from Codex through native MCP tools instead of shelling out to the pm command. The plugin bundles tracker operations, skills, command prompts, and subagent workflow guidance for planning, execution, validation, release, and audit work.","developerName":"unbrained","category":"Coding","capabilities":["Interactive","Read","Write"],"websiteURL":"https://github.com/unbraind/pm-cli","privacyPolicyURL":"https://github.com/unbraind/pm-cli/blob/main/SECURITY.md","termsOfServiceURL":"https://github.com/unbraind/pm-cli/blob/main/LICENSE","defaultPrompt":["Use pm CLI to orient, claim, track, verify, and close this repository task"],"composerIcon":"./assets/pm-cli-small.svg","logo":"./assets/pm-cli-small.svg","screenshots":[],"brandColor":"#2563EB"}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"pm-codex-runtime","private":true,"type":"module","version":"2026.10.
|
|
1
|
+
{"name":"pm-codex-runtime","private":true,"type":"module","version":"2026.10.28","dependencies":{"@unbrained/pm-cli":"2026.10.28"}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"$schema":"https://agent-plugins.org/schemas/1.0.0/plugin.schema.json","name":"pm-codex","version":"2026.10.
|
|
1
|
+
{"$schema":"https://agent-plugins.org/schemas/1.0.0/plugin.schema.json","name":"pm-codex","version":"2026.10.28","description":"Repository-native project context workflows and a version-pinned pm MCP server for Codex.","author":{"name":"unbrained","url":"https://github.com/unbraind/pm-cli"},"homepage":"https://github.com/unbraind/pm-cli/tree/main/plugins/pm-codex","repository":"https://github.com/unbraind/pm-cli","license":"MIT","keywords":["pm-cli","codex","mcp","project-management","agents"],"extensions":{"com.openai":{"interface":{"displayName":"pm CLI","shortDescription":"Track project context with pm","longDescription":"Orient, plan, implement, verify, and hand off work with repository-native pm records and a bundled MCP server.","developerName":"unbrained","category":"Coding","capabilities":["Interactive","Read","Write"],"websiteURL":"https://github.com/unbraind/pm-cli","privacyPolicyURL":"https://github.com/unbraind/pm-cli/blob/main/SECURITY.md","termsOfServiceURL":"https://github.com/unbraind/pm-cli/blob/main/LICENSE","defaultPrompt":["Use pm to orient, track, verify, and hand off this repository task."],"composerIcon":"./assets/pm-cli-small.svg","logo":"./assets/pm-cli-small.svg","brandColor":"#2563EB"}}}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@unbrained/pm-cli","version":"2026.10.26","lockfileVersion":3,"requires":true,"packages":{"":{"name":"@unbrained/pm-cli","version":"2026.10.26","dependencies":{"@sentry/node":"10.76.2","@toon-format/toon":"^4.4.0","commander":"^15.0.0","fast-json-patch":"^3.1.1","npm-package-arg":"^13.0.2","semver":"7.8.5","tar":"7.5.22","tinyglobby":"^0.2.17","yaml":"^2.9.1"},"peerDependencies":{"@types/node":"^22 || ^24 || ^26"},"peerDependenciesMeta":{"@types/node":{"optional":true}},"bin":{"pm-cli":"dist/cli.js","pm":"dist/cli.js","pm-mcp":"dist/mcp/server.js","pm-mcp-http":"dist/mcp/http-server.js"},"engines":{"node":">=22.18.0"}},"node_modules/@isaacs/fs-minipass":{"version":"4.0.1","resolved":"https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz","integrity":"sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==","engines":{"node":">=18.0.0"},"dependencies":{"minipass":"7.1.3"}},"node_modules/@opentelemetry/api":{"version":"1.9.1","resolved":"https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.1.tgz","integrity":"sha512-gLyJlPHPZYdAk1JENA9LeHejZe1Ti77/pTeFm/nMXmQH/HFZlcS/O2XJB+L8fkbrNSqhdtlvjBVjxwUYanNH5Q==","engines":{"node":">=8.0.0"}},"node_modules/@opentelemetry/api-logs":{"version":"0.220.0","resolved":"https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.220.0.tgz","integrity":"sha512-CmVa4ImJ+ynfrPMNaAXHET6Bhb44SwzmfyVJFq9ni2jgXJR/l7C6gfVFddNmHP+ZOkP9cf4f9DBe68qVLTHc9w==","engines":{"node":">=8.0.0"},"dependencies":{"@opentelemetry/api":"1.9.1"}},"node_modules/@opentelemetry/core":{"version":"2.12.0","resolved":"https://registry.npmjs.org/@opentelemetry/core/-/core-2.12.0.tgz","integrity":"sha512-1HsSAuvT4/my0QrXWsyXFdWjKaPeCHsismKZgEEIb8NK13LP6DrMRlsUbvD/0F9mDWK3xDom9AMv3IscxgOnOQ==","peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.10.0"},"engines":{"node":"^18.19.0 || >=20.6.0"},"dependencies":{"@opentelemetry/api":"1.9.1","@opentelemetry/semantic-conventions":"1.43.0"}},"node_modules/@opentelemetry/instrumentation":{"version":"0.220.0","resolved":"https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.220.0.tgz","integrity":"sha512-xQx3E2WxP1mDvKzxLxX+CTCtNLa560YJZ3087qYHerl2YmiKpv7AH+dAy7vmx+eVrZ5BwhfWUAVoKOoxCNHcpw==","peerDependencies":{"@opentelemetry/api":"^1.3.0"},"engines":{"node":"^18.19.0 || >=20.6.0"},"dependencies":{"@opentelemetry/api":"1.9.1","@opentelemetry/api-logs":"0.220.0","import-in-the-middle":"3.5.2","require-in-the-middle":"8.0.1"}},"node_modules/@opentelemetry/resources":{"version":"2.12.0","resolved":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-2.12.0.tgz","integrity":"sha512-+rSRoOdln6NhXTVcBdHSlZxJDNzwxadeweK2ltZO3tVtfp6aklABc06xclDk6ovRR+EiGgIcSbh/6NgjFhnb3A==","peerDependencies":{"@opentelemetry/api":">=1.3.0 <1.10.0"},"engines":{"node":"^18.19.0 || >=20.6.0"},"dependencies":{"@opentelemetry/api":"1.9.1","@opentelemetry/core":"2.12.0","@opentelemetry/semantic-conventions":"1.43.0"}},"node_modules/@opentelemetry/sdk-trace":{"version":"2.12.0","resolved":"https://registry.npmjs.org/@opentelemetry/sdk-trace/-/sdk-trace-2.12.0.tgz","integrity":"sha512-ImVuRQ6faOsTi1Wna88s2avgrrf/iDgXPigIeynkUhjstMuoQUDOJXgkez2j1mlU4btjXcXBGa+q7qKFYR3GsA==","peerDependencies":{"@opentelemetry/api":">=1.3.0 <1.10.0"},"engines":{"node":"^18.19.0 || >=20.6.0"},"dependencies":{"@opentelemetry/api":"1.9.1","@opentelemetry/core":"2.12.0","@opentelemetry/resources":"2.12.0","@opentelemetry/semantic-conventions":"1.43.0"}},"node_modules/@opentelemetry/sdk-trace-base":{"version":"2.12.0","resolved":"https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-2.12.0.tgz","integrity":"sha512-JOERgZCxRM06FEJ5kEWxlSRChah6MmXDx3KwCruqEv/iEyLkTokCSemf2y1w8oIHtfrr8EVTpzebq/31vn2Cpg==","peerDependencies":{"@opentelemetry/api":">=1.3.0 <1.10.0"},"engines":{"node":"^18.19.0 || >=20.6.0"},"dependencies":{"@opentelemetry/api":"1.9.1","@opentelemetry/core":"2.12.0","@opentelemetry/resources":"2.12.0","@opentelemetry/sdk-trace":"2.12.0","@opentelemetry/semantic-conventions":"1.43.0"}},"node_modules/@opentelemetry/semantic-conventions":{"version":"1.43.0","resolved":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.43.0.tgz","integrity":"sha512-eSYWTm620tTk45EKSedaUL8MFYI8hW164hIXsgIHyxu3VobUB3fFCu5t0hQby6OoWRPsG1KkKUG2M5UadiLiVg==","engines":{"node":">=14"}},"node_modules/@sentry/conventions":{"version":"0.16.0","resolved":"https://registry.npmjs.org/@sentry/conventions/-/conventions-0.16.0.tgz","integrity":"sha512-fO9PLmHdVURcSPUpWCItWAtgKiMwGdJHbovoSEyLplX5sxs2ugvI4CBPTrkkgqhObnZOD0CnWBKDzSVQYBKEyQ==","engines":{"node":">=14"}},"node_modules/@sentry/core":{"version":"10.76.2","resolved":"https://registry.npmjs.org/@sentry/core/-/core-10.76.2.tgz","integrity":"sha512-vndrQalRiwYatTkjlLWvyf69KocXIb9TKJ4A9oiyWguL8PJYtqIRTlRe4OpkpjLrxS18fvRdV0jEm29c/9p3hQ==","engines":{"node":">=18"},"dependencies":{"@sentry/conventions":"0.16.0"}},"node_modules/@sentry/node":{"version":"10.76.2","resolved":"https://registry.npmjs.org/@sentry/node/-/node-10.76.2.tgz","integrity":"sha512-LSwGGE/GceTbkDHRoQQr3lq/dpxxA6RdooBbuGTJ/S6BdqKX2kw2FdV7Se9eJzZJJJ5AxCZum37+ejYS7N2pJg==","engines":{"node":">=18"},"dependencies":{"@opentelemetry/api":"1.9.1","@opentelemetry/instrumentation":"0.220.0","@opentelemetry/sdk-trace-base":"2.12.0","@sentry/conventions":"0.16.0","@sentry/core":"10.76.2","@sentry/node-core":"10.76.2","@sentry/opentelemetry":"10.76.2","@sentry/server-utils":"10.76.2","import-in-the-middle":"3.5.2"}},"node_modules/@sentry/node-core":{"version":"10.76.2","resolved":"https://registry.npmjs.org/@sentry/node-core/-/node-core-10.76.2.tgz","integrity":"sha512-TrgAc/SvU5kQfjw8pz6I8LLIUiblOSf9BPPNkTbS0Dzcqa4yQLVbmsbS3rvGT7ot64m9Vjzn327ZRy63MlI6/w==","peerDependencies":{"@opentelemetry/api":"^1.9.0","@opentelemetry/core":">=2.8.0 <3.0.0","@opentelemetry/exporter-trace-otlp-http":">=0.57.0 <1","@opentelemetry/instrumentation":">=0.57.1 <1","@opentelemetry/sdk-trace-base":"^1.30.1 || ^2.1.0"},"peerDependenciesMeta":{"@opentelemetry/api":{"optional":true},"@opentelemetry/core":{"optional":true},"@opentelemetry/exporter-trace-otlp-http":{"optional":true},"@opentelemetry/instrumentation":{"optional":true},"@opentelemetry/sdk-trace-base":{"optional":true}},"engines":{"node":">=18"},"dependencies":{"@sentry/conventions":"0.16.0","@sentry/core":"10.76.2","@sentry/opentelemetry":"10.76.2","import-in-the-middle":"3.5.2"},"optionalDependencies":{"@opentelemetry/api":"1.9.1","@opentelemetry/core":"2.12.0","@opentelemetry/instrumentation":"0.220.0","@opentelemetry/sdk-trace-base":"2.12.0"}},"node_modules/@sentry/opentelemetry":{"version":"10.76.2","resolved":"https://registry.npmjs.org/@sentry/opentelemetry/-/opentelemetry-10.76.2.tgz","integrity":"sha512-deqWrKJGaku3nhiZchg34z8W9v6kUwtzoQ4cmEq6CeT8/4X93X4YfeJgoh1dhbswFRpwor4pQ6kj0KttagKtfA==","peerDependencies":{"@opentelemetry/api":"^1.9.0","@opentelemetry/core":">=2.8.0 <3.0.0","@opentelemetry/sdk-trace-base":"^1.30.1 || ^2.1.0"},"engines":{"node":">=18"},"dependencies":{"@opentelemetry/api":"1.9.1","@opentelemetry/core":"2.12.0","@opentelemetry/sdk-trace-base":"2.12.0","@sentry/conventions":"0.16.0","@sentry/core":"10.76.2"}},"node_modules/@sentry/server-utils":{"version":"10.76.2","resolved":"https://registry.npmjs.org/@sentry/server-utils/-/server-utils-10.76.2.tgz","integrity":"sha512-wogj6Trj8fAu+aD7HbpvHEBlyANMOvvO9MP5NFJaiQbprLKugtCdE6rFTxDhofXvRo4nswL9m4Cvysg3k5KcvQ==","engines":{"node":">=18"},"dependencies":{"@sentry/conventions":"0.16.0","@sentry/core":"10.76.2"}},"node_modules/@toon-format/toon":{"version":"4.4.0","resolved":"https://registry.npmjs.org/@toon-format/toon/-/toon-4.4.0.tgz","integrity":"sha512-A6UcsVoWbNdhdLNhJbe6JpRlocmf/DZGG57fur3bd8oQtsjBaKWo2hHbOU2zTuy+byUmLIOyP1xJeitopCZzpQ=="},"node_modules/chownr":{"version":"3.0.0","resolved":"https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz","integrity":"sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==","engines":{"node":">=18"}},"node_modules/cjs-module-lexer":{"version":"2.3.0","resolved":"https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-2.3.0.tgz","integrity":"sha512-lmNyBzi6iYiqyrExTctfmjd8tInx+dHu9PBomTfH5RXS53c27JMFJgzNv5TyAnm3PgGf+MLy0+Ws41/HlVxdKQ=="},"node_modules/commander":{"version":"15.0.0","resolved":"https://registry.npmjs.org/commander/-/commander-15.0.0.tgz","integrity":"sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg==","engines":{"node":">=22.12.0"}},"node_modules/debug":{"version":"4.4.3","resolved":"https://registry.npmjs.org/debug/-/debug-4.4.3.tgz","integrity":"sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==","peerDependencies":{"supports-color":"*"},"peerDependenciesMeta":{"supports-color":{"optional":true}},"engines":{"node":">=6.0"},"dependencies":{"ms":"2.1.3"},"optionalDependencies":{"supports-color":"7.2.0"}},"node_modules/es-module-lexer":{"version":"3.0.3","resolved":"https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-3.0.3.tgz","integrity":"sha512-yWGe1O/j+almnV4hOYrmZo8u58JdnmXEMneRQAYkWtqSiT86yoMIEKF4rpqEDj52tbYl3xceBD3DQIBwcsC9Pw=="},"node_modules/fast-json-patch":{"version":"3.1.1","resolved":"https://registry.npmjs.org/fast-json-patch/-/fast-json-patch-3.1.1.tgz","integrity":"sha512-vf6IHUX2SBcA+5/+4883dsIjpBTqmfBjmYiWK1savxQmFk4JfBMLa7ynTYOs1Rolp/T1betJxHiGD3g1Mn8lUQ=="},"node_modules/fdir":{"version":"6.5.0","resolved":"https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz","integrity":"sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==","peerDependencies":{"picomatch":"^3 || ^4"},"peerDependenciesMeta":{"picomatch":{"optional":true}},"engines":{"node":">=12.0.0"},"optionalDependencies":{"picomatch":"4.0.7"}},"node_modules/has-flag":{"version":"4.0.0","resolved":"https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz","integrity":"sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==","engines":{"node":">=8"},"optional":true},"node_modules/hosted-git-info":{"version":"9.0.3","resolved":"https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-9.0.3.tgz","integrity":"sha512-Hc+ghLoSt6QaYZUv0WBiIvmMDZuZZ7oaDvdH8MbfOO4lOsxdXLEvuC6ePoGs9H1X9oCLyq6+NVN0MKqD+ydxyg==","engines":{"node":"^20.17.0 || >=22.9.0"},"dependencies":{"lru-cache":"11.5.2"}},"node_modules/import-in-the-middle":{"version":"3.5.2","resolved":"https://registry.npmjs.org/import-in-the-middle/-/import-in-the-middle-3.5.2.tgz","integrity":"sha512-WseIA/4o56+GYO3RmlOPvejYi771OFeJEeK/ejROsr9bdjW+E5NXTOD1Di8TL40Qgg3JJX9aa97Hf8iiSVIKZw==","engines":{"node":">=18"},"dependencies":{"cjs-module-lexer":"2.3.0","es-module-lexer":"3.0.3","module-details-from-path":"1.0.4"}},"node_modules/lru-cache":{"version":"11.5.2","resolved":"https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.2.tgz","integrity":"sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==","engines":{"node":"20 || >=22"}},"node_modules/minipass":{"version":"7.1.3","resolved":"https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz","integrity":"sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==","engines":{"node":">=16 || 14 >=14.17"}},"node_modules/minizlib":{"version":"3.1.0","resolved":"https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz","integrity":"sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==","engines":{"node":">= 18"},"dependencies":{"minipass":"7.1.3"}},"node_modules/module-details-from-path":{"version":"1.0.4","resolved":"https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.4.tgz","integrity":"sha512-EGWKgxALGMgzvxYF1UyGTy0HXX/2vHLkw6+NvDKW2jypWbHpjQuj4UMcqQWXHERJhVGKikolT06G3bcKe4fi7w=="},"node_modules/ms":{"version":"2.1.3","resolved":"https://registry.npmjs.org/ms/-/ms-2.1.3.tgz","integrity":"sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="},"node_modules/npm-package-arg":{"version":"13.0.2","resolved":"https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-13.0.2.tgz","integrity":"sha512-IciCE3SY3uE84Ld8WZU23gAPPV9rIYod4F+rc+vJ7h7cwAJt9Vk6TVsK60ry7Uj3SRS3bqRRIGuTp9YVlk6WNA==","engines":{"node":"^20.17.0 || >=22.9.0"},"dependencies":{"hosted-git-info":"9.0.3","proc-log":"6.1.0","semver":"7.8.5","validate-npm-package-name":"7.0.2"}},"node_modules/picomatch":{"version":"4.0.7","resolved":"https://registry.npmjs.org/picomatch/-/picomatch-4.0.7.tgz","integrity":"sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==","engines":{"node":">=12"}},"node_modules/proc-log":{"version":"6.1.0","resolved":"https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz","integrity":"sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==","engines":{"node":"^20.17.0 || >=22.9.0"}},"node_modules/require-in-the-middle":{"version":"8.0.1","resolved":"https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-8.0.1.tgz","integrity":"sha512-QT7FVMXfWOYFbeRBF6nu+I6tr2Tf3u0q8RIEjNob/heKY/nh7drD/k7eeMFmSQgnTtCzLDcCu/XEnpW2wk4xCQ==","engines":{"node":">=9.3.0 || >=8.10.0 <9.0.0"},"dependencies":{"debug":"4.4.3","module-details-from-path":"1.0.4"}},"node_modules/semver":{"version":"7.8.5","resolved":"https://registry.npmjs.org/semver/-/semver-7.8.5.tgz","integrity":"sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==","engines":{"node":">=10"},"hasBin":true},"node_modules/supports-color":{"version":"7.2.0","resolved":"https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz","integrity":"sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==","engines":{"node":">=8"},"dependencies":{"has-flag":"4.0.0"},"optional":true},"node_modules/tar":{"version":"7.5.22","resolved":"https://registry.npmjs.org/tar/-/tar-7.5.22.tgz","integrity":"sha512-MFO/QzvtAOmJbkhOaCTvbGcFN9L9b+JunIsDwaKljSOdcLMea3NJ1k9Usz/rjdfSXTq4dfzfeS7W4p4YOAAHeA==","engines":{"node":">=18"},"dependencies":{"@isaacs/fs-minipass":"4.0.1","chownr":"3.0.0","minipass":"7.1.3","minizlib":"3.1.0","yallist":"5.0.0"}},"node_modules/tinyglobby":{"version":"0.2.17","resolved":"https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz","integrity":"sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==","engines":{"node":">=12.0.0"},"dependencies":{"fdir":"6.5.0","picomatch":"4.0.7"}},"node_modules/validate-npm-package-name":{"version":"7.0.2","resolved":"https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-7.0.2.tgz","integrity":"sha512-hVDIBwsRruT73PbK7uP5ebUt+ezEtCmzZz3F59BSr2F6OVFnJ/6h8liuvdLrQ88Xmnk6/+xGGuq+pG9WwTuy3A==","engines":{"node":"^20.17.0 || >=22.9.0"}},"node_modules/yallist":{"version":"5.0.0","resolved":"https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz","integrity":"sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==","engines":{"node":">=18"}},"node_modules/yaml":{"version":"2.9.1","resolved":"https://registry.npmjs.org/yaml/-/yaml-2.9.1.tgz","integrity":"sha512-3NxN8+78OdzbT7C/WjGsyfPAtJaN3FNDsWxv7Y7mcDsT/oOmgW8BpyQQFFBnvZE3j9Y2Sdz1ULFLezL7Eb2yFw==","engines":{"node":">= 14.6"},"hasBin":true}}}
|
|
1
|
+
{"name":"@unbrained/pm-cli","version":"2026.10.28","lockfileVersion":3,"requires":true,"packages":{"":{"name":"@unbrained/pm-cli","version":"2026.10.28","dependencies":{"@sentry/node":"10.76.2","@toon-format/toon":"^4.4.0","commander":"^15.0.0","fast-json-patch":"^3.1.1","npm-package-arg":"^13.0.2","semver":"7.8.5","tar":"7.5.22","tinyglobby":"^0.2.17","yaml":"^2.9.1"},"peerDependencies":{"@types/node":"^22 || ^24 || ^26"},"peerDependenciesMeta":{"@types/node":{"optional":true}},"bin":{"pm-cli":"dist/cli.js","pm":"dist/cli.js","pm-mcp":"dist/mcp/server.js","pm-mcp-http":"dist/mcp/http-server.js"},"engines":{"node":">=22.18.0"}},"node_modules/@isaacs/fs-minipass":{"version":"4.0.1","resolved":"https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz","integrity":"sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==","engines":{"node":">=18.0.0"},"dependencies":{"minipass":"7.1.3"}},"node_modules/@opentelemetry/api":{"version":"1.9.1","resolved":"https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.1.tgz","integrity":"sha512-gLyJlPHPZYdAk1JENA9LeHejZe1Ti77/pTeFm/nMXmQH/HFZlcS/O2XJB+L8fkbrNSqhdtlvjBVjxwUYanNH5Q==","engines":{"node":">=8.0.0"}},"node_modules/@opentelemetry/api-logs":{"version":"0.220.0","resolved":"https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.220.0.tgz","integrity":"sha512-CmVa4ImJ+ynfrPMNaAXHET6Bhb44SwzmfyVJFq9ni2jgXJR/l7C6gfVFddNmHP+ZOkP9cf4f9DBe68qVLTHc9w==","engines":{"node":">=8.0.0"},"dependencies":{"@opentelemetry/api":"1.9.1"}},"node_modules/@opentelemetry/core":{"version":"2.12.0","resolved":"https://registry.npmjs.org/@opentelemetry/core/-/core-2.12.0.tgz","integrity":"sha512-1HsSAuvT4/my0QrXWsyXFdWjKaPeCHsismKZgEEIb8NK13LP6DrMRlsUbvD/0F9mDWK3xDom9AMv3IscxgOnOQ==","peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.10.0"},"engines":{"node":"^18.19.0 || >=20.6.0"},"dependencies":{"@opentelemetry/api":"1.9.1","@opentelemetry/semantic-conventions":"1.43.0"}},"node_modules/@opentelemetry/instrumentation":{"version":"0.220.0","resolved":"https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.220.0.tgz","integrity":"sha512-xQx3E2WxP1mDvKzxLxX+CTCtNLa560YJZ3087qYHerl2YmiKpv7AH+dAy7vmx+eVrZ5BwhfWUAVoKOoxCNHcpw==","peerDependencies":{"@opentelemetry/api":"^1.3.0"},"engines":{"node":"^18.19.0 || >=20.6.0"},"dependencies":{"@opentelemetry/api":"1.9.1","@opentelemetry/api-logs":"0.220.0","import-in-the-middle":"3.5.2","require-in-the-middle":"8.0.1"}},"node_modules/@opentelemetry/resources":{"version":"2.12.0","resolved":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-2.12.0.tgz","integrity":"sha512-+rSRoOdln6NhXTVcBdHSlZxJDNzwxadeweK2ltZO3tVtfp6aklABc06xclDk6ovRR+EiGgIcSbh/6NgjFhnb3A==","peerDependencies":{"@opentelemetry/api":">=1.3.0 <1.10.0"},"engines":{"node":"^18.19.0 || >=20.6.0"},"dependencies":{"@opentelemetry/api":"1.9.1","@opentelemetry/core":"2.12.0","@opentelemetry/semantic-conventions":"1.43.0"}},"node_modules/@opentelemetry/sdk-trace":{"version":"2.12.0","resolved":"https://registry.npmjs.org/@opentelemetry/sdk-trace/-/sdk-trace-2.12.0.tgz","integrity":"sha512-ImVuRQ6faOsTi1Wna88s2avgrrf/iDgXPigIeynkUhjstMuoQUDOJXgkez2j1mlU4btjXcXBGa+q7qKFYR3GsA==","peerDependencies":{"@opentelemetry/api":">=1.3.0 <1.10.0"},"engines":{"node":"^18.19.0 || >=20.6.0"},"dependencies":{"@opentelemetry/api":"1.9.1","@opentelemetry/core":"2.12.0","@opentelemetry/resources":"2.12.0","@opentelemetry/semantic-conventions":"1.43.0"}},"node_modules/@opentelemetry/sdk-trace-base":{"version":"2.12.0","resolved":"https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-2.12.0.tgz","integrity":"sha512-JOERgZCxRM06FEJ5kEWxlSRChah6MmXDx3KwCruqEv/iEyLkTokCSemf2y1w8oIHtfrr8EVTpzebq/31vn2Cpg==","peerDependencies":{"@opentelemetry/api":">=1.3.0 <1.10.0"},"engines":{"node":"^18.19.0 || >=20.6.0"},"dependencies":{"@opentelemetry/api":"1.9.1","@opentelemetry/core":"2.12.0","@opentelemetry/resources":"2.12.0","@opentelemetry/sdk-trace":"2.12.0","@opentelemetry/semantic-conventions":"1.43.0"}},"node_modules/@opentelemetry/semantic-conventions":{"version":"1.43.0","resolved":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.43.0.tgz","integrity":"sha512-eSYWTm620tTk45EKSedaUL8MFYI8hW164hIXsgIHyxu3VobUB3fFCu5t0hQby6OoWRPsG1KkKUG2M5UadiLiVg==","engines":{"node":">=14"}},"node_modules/@sentry/conventions":{"version":"0.16.0","resolved":"https://registry.npmjs.org/@sentry/conventions/-/conventions-0.16.0.tgz","integrity":"sha512-fO9PLmHdVURcSPUpWCItWAtgKiMwGdJHbovoSEyLplX5sxs2ugvI4CBPTrkkgqhObnZOD0CnWBKDzSVQYBKEyQ==","engines":{"node":">=14"}},"node_modules/@sentry/core":{"version":"10.76.2","resolved":"https://registry.npmjs.org/@sentry/core/-/core-10.76.2.tgz","integrity":"sha512-vndrQalRiwYatTkjlLWvyf69KocXIb9TKJ4A9oiyWguL8PJYtqIRTlRe4OpkpjLrxS18fvRdV0jEm29c/9p3hQ==","engines":{"node":">=18"},"dependencies":{"@sentry/conventions":"0.16.0"}},"node_modules/@sentry/node":{"version":"10.76.2","resolved":"https://registry.npmjs.org/@sentry/node/-/node-10.76.2.tgz","integrity":"sha512-LSwGGE/GceTbkDHRoQQr3lq/dpxxA6RdooBbuGTJ/S6BdqKX2kw2FdV7Se9eJzZJJJ5AxCZum37+ejYS7N2pJg==","engines":{"node":">=18"},"dependencies":{"@opentelemetry/api":"1.9.1","@opentelemetry/instrumentation":"0.220.0","@opentelemetry/sdk-trace-base":"2.12.0","@sentry/conventions":"0.16.0","@sentry/core":"10.76.2","@sentry/node-core":"10.76.2","@sentry/opentelemetry":"10.76.2","@sentry/server-utils":"10.76.2","import-in-the-middle":"3.5.2"}},"node_modules/@sentry/node-core":{"version":"10.76.2","resolved":"https://registry.npmjs.org/@sentry/node-core/-/node-core-10.76.2.tgz","integrity":"sha512-TrgAc/SvU5kQfjw8pz6I8LLIUiblOSf9BPPNkTbS0Dzcqa4yQLVbmsbS3rvGT7ot64m9Vjzn327ZRy63MlI6/w==","peerDependencies":{"@opentelemetry/api":"^1.9.0","@opentelemetry/core":">=2.8.0 <3.0.0","@opentelemetry/exporter-trace-otlp-http":">=0.57.0 <1","@opentelemetry/instrumentation":">=0.57.1 <1","@opentelemetry/sdk-trace-base":"^1.30.1 || ^2.1.0"},"peerDependenciesMeta":{"@opentelemetry/api":{"optional":true},"@opentelemetry/core":{"optional":true},"@opentelemetry/exporter-trace-otlp-http":{"optional":true},"@opentelemetry/instrumentation":{"optional":true},"@opentelemetry/sdk-trace-base":{"optional":true}},"engines":{"node":">=18"},"dependencies":{"@sentry/conventions":"0.16.0","@sentry/core":"10.76.2","@sentry/opentelemetry":"10.76.2","import-in-the-middle":"3.5.2"},"optionalDependencies":{"@opentelemetry/api":"1.9.1","@opentelemetry/core":"2.12.0","@opentelemetry/instrumentation":"0.220.0","@opentelemetry/sdk-trace-base":"2.12.0"}},"node_modules/@sentry/opentelemetry":{"version":"10.76.2","resolved":"https://registry.npmjs.org/@sentry/opentelemetry/-/opentelemetry-10.76.2.tgz","integrity":"sha512-deqWrKJGaku3nhiZchg34z8W9v6kUwtzoQ4cmEq6CeT8/4X93X4YfeJgoh1dhbswFRpwor4pQ6kj0KttagKtfA==","peerDependencies":{"@opentelemetry/api":"^1.9.0","@opentelemetry/core":">=2.8.0 <3.0.0","@opentelemetry/sdk-trace-base":"^1.30.1 || ^2.1.0"},"engines":{"node":">=18"},"dependencies":{"@opentelemetry/api":"1.9.1","@opentelemetry/core":"2.12.0","@opentelemetry/sdk-trace-base":"2.12.0","@sentry/conventions":"0.16.0","@sentry/core":"10.76.2"}},"node_modules/@sentry/server-utils":{"version":"10.76.2","resolved":"https://registry.npmjs.org/@sentry/server-utils/-/server-utils-10.76.2.tgz","integrity":"sha512-wogj6Trj8fAu+aD7HbpvHEBlyANMOvvO9MP5NFJaiQbprLKugtCdE6rFTxDhofXvRo4nswL9m4Cvysg3k5KcvQ==","engines":{"node":">=18"},"dependencies":{"@sentry/conventions":"0.16.0","@sentry/core":"10.76.2"}},"node_modules/@toon-format/toon":{"version":"4.4.0","resolved":"https://registry.npmjs.org/@toon-format/toon/-/toon-4.4.0.tgz","integrity":"sha512-A6UcsVoWbNdhdLNhJbe6JpRlocmf/DZGG57fur3bd8oQtsjBaKWo2hHbOU2zTuy+byUmLIOyP1xJeitopCZzpQ=="},"node_modules/chownr":{"version":"3.0.0","resolved":"https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz","integrity":"sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==","engines":{"node":">=18"}},"node_modules/cjs-module-lexer":{"version":"2.3.0","resolved":"https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-2.3.0.tgz","integrity":"sha512-lmNyBzi6iYiqyrExTctfmjd8tInx+dHu9PBomTfH5RXS53c27JMFJgzNv5TyAnm3PgGf+MLy0+Ws41/HlVxdKQ=="},"node_modules/commander":{"version":"15.0.0","resolved":"https://registry.npmjs.org/commander/-/commander-15.0.0.tgz","integrity":"sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg==","engines":{"node":">=22.12.0"}},"node_modules/debug":{"version":"4.4.3","resolved":"https://registry.npmjs.org/debug/-/debug-4.4.3.tgz","integrity":"sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==","peerDependencies":{"supports-color":"*"},"peerDependenciesMeta":{"supports-color":{"optional":true}},"engines":{"node":">=6.0"},"dependencies":{"ms":"2.1.3"},"optionalDependencies":{"supports-color":"7.2.0"}},"node_modules/es-module-lexer":{"version":"3.0.3","resolved":"https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-3.0.3.tgz","integrity":"sha512-yWGe1O/j+almnV4hOYrmZo8u58JdnmXEMneRQAYkWtqSiT86yoMIEKF4rpqEDj52tbYl3xceBD3DQIBwcsC9Pw=="},"node_modules/fast-json-patch":{"version":"3.1.1","resolved":"https://registry.npmjs.org/fast-json-patch/-/fast-json-patch-3.1.1.tgz","integrity":"sha512-vf6IHUX2SBcA+5/+4883dsIjpBTqmfBjmYiWK1savxQmFk4JfBMLa7ynTYOs1Rolp/T1betJxHiGD3g1Mn8lUQ=="},"node_modules/fdir":{"version":"6.5.0","resolved":"https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz","integrity":"sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==","peerDependencies":{"picomatch":"^3 || ^4"},"peerDependenciesMeta":{"picomatch":{"optional":true}},"engines":{"node":">=12.0.0"},"optionalDependencies":{"picomatch":"4.0.7"}},"node_modules/has-flag":{"version":"4.0.0","resolved":"https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz","integrity":"sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==","engines":{"node":">=8"},"optional":true},"node_modules/hosted-git-info":{"version":"9.0.3","resolved":"https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-9.0.3.tgz","integrity":"sha512-Hc+ghLoSt6QaYZUv0WBiIvmMDZuZZ7oaDvdH8MbfOO4lOsxdXLEvuC6ePoGs9H1X9oCLyq6+NVN0MKqD+ydxyg==","engines":{"node":"^20.17.0 || >=22.9.0"},"dependencies":{"lru-cache":"11.5.2"}},"node_modules/import-in-the-middle":{"version":"3.5.2","resolved":"https://registry.npmjs.org/import-in-the-middle/-/import-in-the-middle-3.5.2.tgz","integrity":"sha512-WseIA/4o56+GYO3RmlOPvejYi771OFeJEeK/ejROsr9bdjW+E5NXTOD1Di8TL40Qgg3JJX9aa97Hf8iiSVIKZw==","engines":{"node":">=18"},"dependencies":{"cjs-module-lexer":"2.3.0","es-module-lexer":"3.0.3","module-details-from-path":"1.0.4"}},"node_modules/lru-cache":{"version":"11.5.2","resolved":"https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.2.tgz","integrity":"sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==","engines":{"node":"20 || >=22"}},"node_modules/minipass":{"version":"7.1.3","resolved":"https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz","integrity":"sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==","engines":{"node":">=16 || 14 >=14.17"}},"node_modules/minizlib":{"version":"3.1.0","resolved":"https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz","integrity":"sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==","engines":{"node":">= 18"},"dependencies":{"minipass":"7.1.3"}},"node_modules/module-details-from-path":{"version":"1.0.4","resolved":"https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.4.tgz","integrity":"sha512-EGWKgxALGMgzvxYF1UyGTy0HXX/2vHLkw6+NvDKW2jypWbHpjQuj4UMcqQWXHERJhVGKikolT06G3bcKe4fi7w=="},"node_modules/ms":{"version":"2.1.3","resolved":"https://registry.npmjs.org/ms/-/ms-2.1.3.tgz","integrity":"sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="},"node_modules/npm-package-arg":{"version":"13.0.2","resolved":"https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-13.0.2.tgz","integrity":"sha512-IciCE3SY3uE84Ld8WZU23gAPPV9rIYod4F+rc+vJ7h7cwAJt9Vk6TVsK60ry7Uj3SRS3bqRRIGuTp9YVlk6WNA==","engines":{"node":"^20.17.0 || >=22.9.0"},"dependencies":{"hosted-git-info":"9.0.3","proc-log":"6.1.0","semver":"7.8.5","validate-npm-package-name":"7.0.2"}},"node_modules/picomatch":{"version":"4.0.7","resolved":"https://registry.npmjs.org/picomatch/-/picomatch-4.0.7.tgz","integrity":"sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==","engines":{"node":">=12"}},"node_modules/proc-log":{"version":"6.1.0","resolved":"https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz","integrity":"sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==","engines":{"node":"^20.17.0 || >=22.9.0"}},"node_modules/require-in-the-middle":{"version":"8.0.1","resolved":"https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-8.0.1.tgz","integrity":"sha512-QT7FVMXfWOYFbeRBF6nu+I6tr2Tf3u0q8RIEjNob/heKY/nh7drD/k7eeMFmSQgnTtCzLDcCu/XEnpW2wk4xCQ==","engines":{"node":">=9.3.0 || >=8.10.0 <9.0.0"},"dependencies":{"debug":"4.4.3","module-details-from-path":"1.0.4"}},"node_modules/semver":{"version":"7.8.5","resolved":"https://registry.npmjs.org/semver/-/semver-7.8.5.tgz","integrity":"sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==","engines":{"node":">=10"},"hasBin":true},"node_modules/supports-color":{"version":"7.2.0","resolved":"https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz","integrity":"sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==","engines":{"node":">=8"},"dependencies":{"has-flag":"4.0.0"},"optional":true},"node_modules/tar":{"version":"7.5.22","resolved":"https://registry.npmjs.org/tar/-/tar-7.5.22.tgz","integrity":"sha512-MFO/QzvtAOmJbkhOaCTvbGcFN9L9b+JunIsDwaKljSOdcLMea3NJ1k9Usz/rjdfSXTq4dfzfeS7W4p4YOAAHeA==","engines":{"node":">=18"},"dependencies":{"@isaacs/fs-minipass":"4.0.1","chownr":"3.0.0","minipass":"7.1.3","minizlib":"3.1.0","yallist":"5.0.0"}},"node_modules/tinyglobby":{"version":"0.2.17","resolved":"https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz","integrity":"sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==","engines":{"node":">=12.0.0"},"dependencies":{"fdir":"6.5.0","picomatch":"4.0.7"}},"node_modules/validate-npm-package-name":{"version":"7.0.2","resolved":"https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-7.0.2.tgz","integrity":"sha512-hVDIBwsRruT73PbK7uP5ebUt+ezEtCmzZz3F59BSr2F6OVFnJ/6h8liuvdLrQ88Xmnk6/+xGGuq+pG9WwTuy3A==","engines":{"node":"^20.17.0 || >=22.9.0"}},"node_modules/yallist":{"version":"5.0.0","resolved":"https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz","integrity":"sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==","engines":{"node":">=18"}},"node_modules/yaml":{"version":"2.9.1","resolved":"https://registry.npmjs.org/yaml/-/yaml-2.9.1.tgz","integrity":"sha512-3NxN8+78OdzbT7C/WjGsyfPAtJaN3FNDsWxv7Y7mcDsT/oOmgW8BpyQQFFBnvZE3j9Y2Sdz1ULFLezL7Eb2yFw==","engines":{"node":">= 14.6"},"hasBin":true}}}
|