@unbrained/pm-cli 2026.10.5 → 2026.10.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +2 -2
- package/CHANGELOG.md +26 -1
- package/dist/cli/register-setup.js +1 -1
- package/dist/cli/runtime/projection-retry.js +1 -1
- package/dist/cli-bundle/bundle-manifest.json +158 -158
- package/dist/cli-bundle/chunks/{chunk-Z66DWDAU.js → chunk-25EW53VO.js} +39 -38
- package/dist/cli-bundle/chunks/{chunk-YVBRASXO.js → chunk-3CCVTV6Q.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-5MNOWZPN.js → chunk-3REXBTST.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-4WB55TBC.js +80 -0
- package/dist/cli-bundle/chunks/{chunk-OOLYASYJ.js → chunk-6STTPXOC.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-AJ7H6XUF.js → chunk-ATB4ZZBQ.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-N4YGSG6F.js → chunk-D4G43LBV.js} +38 -38
- package/dist/cli-bundle/chunks/{chunk-HRJ6G6ZG.js → chunk-K6D6DMRT.js} +28 -28
- package/dist/cli-bundle/chunks/chunk-KIRHWPZB.js +2 -0
- package/dist/cli-bundle/chunks/chunk-O67BH435.js +6 -0
- package/dist/cli-bundle/chunks/{chunk-3CYOBJUK.js → chunk-RJHLD64E.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-WFZ4UEOB.js → chunk-TUKO5NF7.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-VZ63DEVJ.js → chunk-XJD47LUH.js} +2 -2
- package/dist/cli-bundle/chunks/{register-list-query-75QXHIFH.js → register-list-query-53WYLNZT.js} +2 -2
- package/dist/cli-bundle/chunks/{register-mutation-YS54SCHG.js → register-mutation-34XXUBVI.js} +2 -2
- package/dist/cli-bundle/chunks/{register-operations-6KHZQSYJ.js → register-operations-WANO6EIM.js} +2 -2
- package/dist/cli-bundle/chunks/register-setup-WT37UPBQ.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-GITOYRUW.js → chunk-6KFKQD2D.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-UDYRVBOZ.js → chunk-FOHRPFIT.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-DDRN42PB.js → chunk-GRQXL5G5.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-ABV67XCC.js → chunk-JZ4WGUVH.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-B5RSLVE6.js → chunk-NM3PM6O6.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-OT7HK7SG.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-2CVX3KR3.js → chunk-PCLU34KB.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-5C3IDDW7.js → chunk-QQIE4L42.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-RPUNVKXK.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-LE4JUCRR.js → chunk-RXSVJPZ7.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-SPN5QTZ3.js +30 -0
- package/dist/cli-bundle/focused-chunks/{chunk-CLDPTMQY.js → chunk-SUZJNPGB.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-YMU42COG.js → chunk-W4BG5HHS.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-C224METM.js → chunk-Y5HXFDTZ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-ECBOPEJE.js → chunk-ZK5SOOPC.js} +61 -61
- package/dist/cli-bundle/focused-chunks/chunk-ZQK2XUSS.js +12 -0
- package/dist/cli-bundle/main.js +21 -21
- package/dist/cli-bundle/sdk-authoring.js +1 -1
- package/dist/cli-bundle/sdk-contracts.js +1 -1
- package/dist/cli-bundle/sdk-core.js +31 -30
- 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 +42 -42
- package/dist/cli-bundle/sdk-query.js +1 -1
- package/dist/cli-bundle/sdk-runtime.js +1 -1
- package/dist/cli-bundle/sdk-testing.js +1 -1
- package/dist/cli-bundle/sdk.js +2 -2
- package/dist/core/extensions/extension-types.d.ts +2 -0
- package/dist/core/extensions/extension-types.js +1 -1
- package/dist/sdk/cli-bootstrap.d.ts +5 -1
- package/dist/sdk/cli-bootstrap.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/tool-parameter-tables.js +1 -1
- package/dist/sdk/cli-contracts/tool-schema.d.ts +2 -2
- package/dist/sdk/cli-contracts/tool-schema.js +1 -1
- package/dist/sdk/extension/managed-state.d.ts +2 -0
- package/dist/sdk/extension/managed-state.js +1 -1
- package/dist/sdk/extension/managed-update-status.d.ts +3 -0
- package/dist/sdk/extension/managed-update-status.js +2 -0
- package/dist/sdk/extension/source-resolution.d.ts +2 -6
- package/dist/sdk/extension/source-resolution.js +1 -1
- package/dist/sdk/extension/update-check.d.ts +10 -0
- package/dist/sdk/extension/update-check.js +1 -1
- package/dist/sdk/extension-command-context.js +2 -1
- package/dist/sdk/extension.d.ts +4 -0
- package/dist/sdk/extension.js +1 -1
- package/dist/sdk/generated/generated-error-code-catalog-part-1.js +1 -1
- package/dist/sdk/generated/generated-error-code-catalog-part-2.js +1 -1
- package/dist/sdk/public-surface.json +1 -1
- package/dist/sdk/query/get.js +1 -1
- package/dist/sdk/read-output-contracts.js +1 -1
- package/dist/sdk/runtime-input.js +1 -1
- package/dist/sdk/test/execution.d.ts +2 -1
- package/dist/sdk/test/execution.js +3 -3
- package/docs/DEVELOPMENT_DEPENDENCY_SECURITY.md +36 -0
- package/docs/GET_READ_EVIDENCE.md +17 -1
- package/docs/OUTPUT_PROJECTION_CONTRACTS.md +23 -0
- package/docs/PR_REVIEW_LOOP.md +21 -4
- package/docs/README.md +1 -0
- package/docs/RELEASING.md +18 -0
- package/docs/SDK_CONFIGURATION_SAFETY.md +123 -0
- package/docs/generated/FLAG_LEXICON_BUDGETS.md +3 -3
- package/docs/generated/REFUSAL_CLOSURE_CENSUS.md +4 -3
- package/marketplace.json +2 -2
- package/package.json +3 -3
- 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 +2 -2
- package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
- package/plugins/pm-codex/package.json +2 -2
- package/plugins/pm-codex/plugin.json +1 -1
- package/dist/cli-bundle/chunks/chunk-D332RXZ7.js +0 -80
- package/dist/cli-bundle/chunks/chunk-KRVI56QE.js +0 -6
- package/dist/cli-bundle/chunks/chunk-TGMONGWX.js +0 -2
- package/dist/cli-bundle/chunks/register-setup-RTATEN2M.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-DOVTUKJQ.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-GUIF3WVC.js +0 -30
- package/dist/cli-bundle/focused-chunks/chunk-RHIH6XIW.js +0 -12
- package/dist/cli-bundle/focused-chunks/chunk-XV5RV4ZT.js +0 -2
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
# SDK Configuration and Diagnostic Safety
|
|
2
|
+
|
|
3
|
+
Trackers: [pm-gh1394](../.agents/pm/issues/pm-gh1394.toon), [pm-gh1393](../.agents/pm/issues/pm-gh1393.toon), [pm-gh1392](../.agents/pm/issues/pm-gh1392.toon), [pm-gh1398](../.agents/pm/issues/pm-gh1398.toon).
|
|
4
|
+
|
|
5
|
+
Package authors use the host-injected `context.sdk` services to change project
|
|
6
|
+
configuration. The SDK owns settings normalization, locking, immutable audit
|
|
7
|
+
history, retry identity, and dry-run behavior. See [SDK](SDK.md) and
|
|
8
|
+
[Packages and Extensions](EXTENSIONS.md) for the broader authoring contract.
|
|
9
|
+
|
|
10
|
+
## Explicit Settings Ownership
|
|
11
|
+
|
|
12
|
+
`mutateWorkspaceSettings` preserves unknown source fields by default. A package
|
|
13
|
+
that replaces a complete settings object can explicitly declare the objects it
|
|
14
|
+
owns with `replaceSubtrees`:
|
|
15
|
+
|
|
16
|
+
```ts
|
|
17
|
+
await context.sdk!.mutateWorkspaceSettings({
|
|
18
|
+
operationId: "apply-governance-policy",
|
|
19
|
+
replaceSubtrees: ["governance"],
|
|
20
|
+
includePreview: true,
|
|
21
|
+
dryRun: context.options.dryRun === true,
|
|
22
|
+
mutate: (current) => ({
|
|
23
|
+
...current,
|
|
24
|
+
governance: { ...current.governance, preset: "minimal" },
|
|
25
|
+
}),
|
|
26
|
+
});
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
The selected object is replaced by its normalized serialized value, removing
|
|
30
|
+
unknown raw keys omitted from the callback's result. Unselected source fields,
|
|
31
|
+
including future root fields and sibling objects, are preserved. Dot-delimited
|
|
32
|
+
paths such as `search.rerank` select nested objects. Missing ancestors are
|
|
33
|
+
materialized with their canonical settings so the complete persisted document
|
|
34
|
+
remains valid. Scalar, array, unknown, and prototype paths are rejected before
|
|
35
|
+
writing. Declare ownership only for configuration the package is authorized to
|
|
36
|
+
replace. An empty ownership list retains the default preservation behavior.
|
|
37
|
+
|
|
38
|
+
Replacement runs inside the same settings lock and history transaction as the
|
|
39
|
+
callback. Dry runs write no settings or workspace history; retries with the same
|
|
40
|
+
operation identity skip the callback after a successful commit. Fresh semantic
|
|
41
|
+
no-ops preserve the existing bytes and produce no history event.
|
|
42
|
+
|
|
43
|
+
The optional `preview` describes normalized inline settings resolved from the
|
|
44
|
+
exact proposed bytes. Preset-derived values can be omitted from serialized JSON
|
|
45
|
+
and reconstructed in the preview. File-backed schema overlays and unknown raw
|
|
46
|
+
keys are outside this normalized preview. Inspect the persisted document when
|
|
47
|
+
raw-source information is needed.
|
|
48
|
+
|
|
49
|
+
## Read-only Package Freshness
|
|
50
|
+
|
|
51
|
+
`pm package explore`, `doctor`, and `manage` preserve managed installation state.
|
|
52
|
+
`manage` checks GitHub revisions and npm registry identities transiently; it
|
|
53
|
+
does not rewrite `.managed-extensions.json`, reorder its contribution inventory,
|
|
54
|
+
or advance its modification time. Install, update, and explicit adoption own
|
|
55
|
+
managed-state persistence. `--fix-managed-state` remains an explicit adoption
|
|
56
|
+
mutation.
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
pm package manage --project --json
|
|
60
|
+
pm package manage --project --offline --json
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
For npm sources the SDK compares the recorded package version with the configured
|
|
64
|
+
registry's `latest` dist-tag, honoring npm registry configuration. A different
|
|
65
|
+
dist-tag version reports `update_available: true`; this is a channel comparison,
|
|
66
|
+
including an intentional registry rollback. `last_update_remote_version` identifies
|
|
67
|
+
the observed registry version. Missing provenance, invalid metadata, and failed
|
|
68
|
+
lookups report unknown availability and incomplete health. Lookups are bounded
|
|
69
|
+
to ten seconds and 64 KiB. npm execution failures use a stable public diagnostic
|
|
70
|
+
code to avoid exposing registry credentials through command stderr. Invalid
|
|
71
|
+
installed versions, registry versions, and JSON metadata also use stable reasons
|
|
72
|
+
that do not reflect their raw contents.
|
|
73
|
+
|
|
74
|
+
`--offline` performs no remote freshness lookup and reports `not_checked`,
|
|
75
|
+
`offline_requested`, and unknown availability for supported remote sources.
|
|
76
|
+
Runtime activation diagnostics still run. A bare installed npm extension name
|
|
77
|
+
or recorded package name reuses its managed registry identity on reinstall;
|
|
78
|
+
explicit local paths and bundled aliases retain their existing precedence.
|
|
79
|
+
For a confirmed missing bare input, npm records match by exact manifest name,
|
|
80
|
+
then stored directory, then recorded package identity. A weaker identity match
|
|
81
|
+
cannot replace a stronger match because its record appears earlier.
|
|
82
|
+
The selected stored package must parse as exactly one registry package name.
|
|
83
|
+
URLs, local files, aliases, versioned specs, options, and shell-bearing values
|
|
84
|
+
cannot become installation authority through managed metadata; invalid identity
|
|
85
|
+
retains local-source recovery. Explicit `npm:` sources still accept their existing
|
|
86
|
+
caller-selected package specs. Managed state is local installation provenance
|
|
87
|
+
written by lifecycle operations, not permission for arbitrary source execution;
|
|
88
|
+
protect project and global extension roots with the invoking account's filesystem
|
|
89
|
+
permissions.
|
|
90
|
+
|
|
91
|
+
## Isolated Schema History
|
|
92
|
+
|
|
93
|
+
Linked tests using `pm_context_mode=schema` inherit project and global settings
|
|
94
|
+
and extensions without inheriting source items. Settings are seeded through the
|
|
95
|
+
workspace history writer against each sandbox's own initialized state. Nested
|
|
96
|
+
`pm validate --check-history-drift --strict-exit` therefore validates that
|
|
97
|
+
sandbox's configuration successfully. Out-of-band sandbox edits still fail
|
|
98
|
+
history validation. Tracker context continues to retain the source audit history
|
|
99
|
+
and its genuine drift. Source settings and history are never changed by seeding.
|
|
100
|
+
|
|
101
|
+
## Help Discovery Before Mutation
|
|
102
|
+
|
|
103
|
+
Bare `--help` and `-h` following declared options are discovery requests:
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
pm test pm-example --add --help
|
|
107
|
+
pm files pm-example --add -h
|
|
108
|
+
pm update pm-example -b -h
|
|
109
|
+
pm create --file --help
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
These invocations print help and leave item and history bytes unchanged. To
|
|
113
|
+
persist a literal flag-looking value, attach it explicitly: `--add=--help`.
|
|
114
|
+
JSON help follows the same discovery policy. Bootstrap normalization preserves
|
|
115
|
+
the argv terminator and attached values. The immediately preceding declared
|
|
116
|
+
option is neutralized before parsing, regardless of whether its contract has
|
|
117
|
+
value metadata. Short options, aliases, and booleans follow the same policy;
|
|
118
|
+
no value parser runs for the neutralized option. The original help token stays
|
|
119
|
+
reachable even when another adjacent option consumes the replacement token.
|
|
120
|
+
Global boolean flags retain their presentation semantics, so `--json --help`
|
|
121
|
+
still renders JSON help.
|
|
122
|
+
Explicit bare assignments preserve a single value boundary during expansion,
|
|
123
|
+
so values such as `body=--help` retain their literal meaning.
|
|
@@ -7,9 +7,9 @@ This file is generated by `listPmFlagLexicon()`. Compatibility aliases do not co
|
|
|
7
7
|
| `init` | workspace | 30 | 30 |
|
|
8
8
|
| `item` | intake | 20 | 20 |
|
|
9
9
|
| `config` | workspace | 36 | 36 |
|
|
10
|
-
| `extension` | extensions |
|
|
11
|
-
| `package` | extensions |
|
|
12
|
-
| `packages` | extensions |
|
|
10
|
+
| `extension` | extensions | 55 | 55 |
|
|
11
|
+
| `package` | extensions | 56 | 56 |
|
|
12
|
+
| `packages` | extensions | 56 | 56 |
|
|
13
13
|
| `install` | extensions | 27 | 27 |
|
|
14
14
|
| `upgrade` | extensions | 29 | 29 |
|
|
15
15
|
| `create` | intake | 100 | 100 |
|
|
@@ -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: 394
|
|
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: 375
|
|
12
|
+
- Coverage fraction: 0.048223
|
|
13
13
|
- Closed-domain probes: 19
|
|
14
14
|
- Grammar probes: 117
|
|
15
15
|
|
|
@@ -31,6 +31,7 @@ Every catalog code is listed. An `uncovered` row is an explicit closure obligati
|
|
|
31
31
|
| `append_empty_body` | `append_empty_body` | uncovered | none | 0 |
|
|
32
32
|
| `assurance_registry_invalid` | `assurance_registry_invalid` | uncovered | none | 0 |
|
|
33
33
|
| `bare_comma_entry_ambiguous` | `bare_comma_entry_ambiguous` | uncovered | none | 0 |
|
|
34
|
+
| `blocker_identity_read_failed` | `blocker_identity_read_failed` | uncovered | none | 0 |
|
|
34
35
|
| `body_file_conflicts_with_body` | `body_file_conflicts_with_body` | uncovered | none | 0 |
|
|
35
36
|
| `body_file_missing_path` | `body_file_missing_path` | uncovered | none | 0 |
|
|
36
37
|
| `body_file_unreadable` | `body_file_unreadable` | uncovered | none | 0 |
|
package/marketplace.json
CHANGED
|
@@ -5,13 +5,13 @@
|
|
|
5
5
|
"url": "https://github.com/unbraind/pm-cli"
|
|
6
6
|
},
|
|
7
7
|
"description": "Official marketplace for pm CLI — native git-based project management for Claude Code and AI coding agents.",
|
|
8
|
-
"version": "2026.10.
|
|
8
|
+
"version": "2026.10.6",
|
|
9
9
|
"plugins": [
|
|
10
10
|
{
|
|
11
11
|
"name": "pm-claude",
|
|
12
12
|
"source": "./plugins/pm-claude",
|
|
13
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.
|
|
14
|
+
"version": "2026.10.6",
|
|
15
15
|
"author": {
|
|
16
16
|
"name": "unbrained",
|
|
17
17
|
"url": "https://github.com/unbraind/pm-cli"
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@unbrained/pm-cli",
|
|
3
|
-
"version": "2026.10.
|
|
3
|
+
"version": "2026.10.6",
|
|
4
4
|
"description": "Git-native project management CLI for humans and agents.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"packageManager": "pnpm@11.10.0",
|
|
@@ -235,7 +235,7 @@
|
|
|
235
235
|
"@vitest/coverage-v8": "^4.1.11",
|
|
236
236
|
"esbuild": "0.28.2",
|
|
237
237
|
"eslint": "^10.11.0",
|
|
238
|
-
"eslint-plugin-sonarjs": "^4.2.
|
|
238
|
+
"eslint-plugin-sonarjs": "^4.2.2",
|
|
239
239
|
"eslint-plugin-unicorn": "76.0.0",
|
|
240
240
|
"fast-check": "^4.10.2",
|
|
241
241
|
"github-slugger": "2.0.0",
|
|
@@ -246,7 +246,7 @@
|
|
|
246
246
|
"parse5": "8.0.1",
|
|
247
247
|
"tsx": "^4.23.15",
|
|
248
248
|
"typescript": "^6.0.3",
|
|
249
|
-
"typescript-eslint": "^8.
|
|
249
|
+
"typescript-eslint": "^8.71.0",
|
|
250
250
|
"vitest": "^4.1.11"
|
|
251
251
|
}
|
|
252
252
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@unbrained/pm-digital-twin",
|
|
3
|
-
"version": "2026.10.
|
|
3
|
+
"version": "2026.10.6",
|
|
4
4
|
"private": true,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "Beyond-PM exemplar: a temporal production-facility digital twin built entirely on public pm SDK and extension primitives.",
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"name": "pm-claude",
|
|
4
4
|
"displayName": "pm CLI",
|
|
5
5
|
"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.",
|
|
6
|
-
"version": "2026.10.
|
|
6
|
+
"version": "2026.10.6",
|
|
7
7
|
"author": {
|
|
8
8
|
"name": "unbrained",
|
|
9
9
|
"url": "https://github.com/unbraind/pm-cli"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
|
|
3
3
|
"name": "pm-codex",
|
|
4
|
-
"version": "2026.10.
|
|
4
|
+
"version": "2026.10.6",
|
|
5
5
|
"description": "Repository-native project context workflows and a version-pinned pm MCP server for Codex.",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "unbrained",
|