@modootoday/pmcp 0.14.1 → 0.16.0
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/.agents/plugins/marketplace.json +1 -1
- package/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/README.md +57 -8
- package/dist/cli.js +1514 -589
- package/dist/harness-launch-gate.js +0 -3
- package/dist/harness-worker.js +0 -4
- package/dist/http.js +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +87 -25
- package/dist/mailbox/index.js +0 -3
- package/dist/stdio.js +1 -3
- package/dist/tui-worker.js +580 -32
- package/docs/skills.md +3 -3
- package/docs/terminal-workspace.md +161 -1
- package/gemini-extension.json +1 -1
- package/package.json +3 -2
- package/plugin.json +1 -1
- package/plugins/pmcp/.claude-plugin/plugin.json +1 -1
- package/plugins/pmcp/gemini-extension.json +1 -1
- package/plugins/pmcp/plugin.json +1 -1
package/docs/skills.md
CHANGED
|
@@ -78,12 +78,12 @@ existing URLs and immutable archive bytes remain available.
|
|
|
78
78
|
For native marketplace commands, follow the [README](../README.md).
|
|
79
79
|
Gemini and Antigravity need their own package formats for selected library plugins;
|
|
80
80
|
do not assume that identically named manifest files accept the same schema.
|
|
81
|
-
|
|
81
|
+
Since 0.14.0, `pmcp marketplace export <plugin> --runtime <tool>
|
|
82
82
|
--output <new-directory>` materializes a selected package without altering native
|
|
83
83
|
settings or installing it. Use the native manager to review and install that folder.
|
|
84
84
|
Existing export destinations are preserved.
|
|
85
85
|
|
|
86
|
-
The built-in catalog
|
|
86
|
+
The built-in catalog is available without remote fetching.
|
|
87
87
|
`--no-builtin` or `[catalog] builtin = false` opts out; library APIs continue to
|
|
88
88
|
read explicitly supplied catalog roots. `--marketplace <directory>` reads installed
|
|
89
89
|
Claude, Codex and Grok local descriptors, rejects path escapes and does not fetch
|
|
@@ -91,7 +91,7 @@ remote plugin sources. Add a remote marketplace with its native manager first.
|
|
|
91
91
|
|
|
92
92
|
Public npm skill installation uses the bundled catalog, a matching installed
|
|
93
93
|
dependency version and immutable free archive URLs. It verifies archive integrity,
|
|
94
|
-
content-only metadata, instruction digests and installed file bytes. npm or
|
|
94
|
+
content-only metadata, instruction digests and installed file bytes. npm, Bun or pnpm
|
|
95
95
|
changes the project and lockfile only after confirmation, with scripts disabled.
|
|
96
96
|
`--provider hosted` remains a separate service path with its own access policy.
|
|
97
97
|
Native plugin installation does not automatically version-match dependencies:
|
|
@@ -13,6 +13,102 @@ retain their existing group budgets and execution profile.
|
|
|
13
13
|
|
|
14
14
|
## Open a workspace
|
|
15
15
|
|
|
16
|
+
The numbered runtime picker, worker menu and worker-start/recovery commands in
|
|
17
|
+
this guide require PMCP 0.16.0 or later.
|
|
18
|
+
|
|
19
|
+
From a supported interactive terminal, run `pmcp` or `pmcp tui`. The first
|
|
20
|
+
launch lists installed runtimes, with a default in this order: Codex, Gemini,
|
|
21
|
+
agy, Grok, Claude. Enter accepts that default; a number selects another runtime.
|
|
22
|
+
Confirm with Enter at the start prompt, or enter q to cancel. No provider request
|
|
23
|
+
or group creation occurs before this confirmation. Use `--runtime` to skip the
|
|
24
|
+
picker and choose a supported runtime ID explicitly.
|
|
25
|
+
Provider login and folder trust still use the native screen.
|
|
26
|
+
|
|
27
|
+
```sh
|
|
28
|
+
pmcp
|
|
29
|
+
pmcp tui --runtime codex-cli
|
|
30
|
+
pmcp tui plan
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
The start creates a private owned group and read-only view, then reconnects to
|
|
34
|
+
that workspace on later launches. Defaults are 2048 MiB for the group, 768 MiB
|
|
35
|
+
for its main and at most two active sessions. Terminal size selects the existing
|
|
36
|
+
A or compact layout. Taking control remains explicit with Ctrl-g then c.
|
|
37
|
+
This launches a native process; the defaults are cooperative host supervision,
|
|
38
|
+
not a Docker isolation policy. Use an explicitly configured Docker group when
|
|
39
|
+
you require that execution profile.
|
|
40
|
+
|
|
41
|
+
After opening a workspace, start a worker without preparing a session JSON file:
|
|
42
|
+
|
|
43
|
+
```sh
|
|
44
|
+
pmcp tui start-worker --runtime gemini-cli
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
This explicitly starts a worker in the saved project workspace. It uses the
|
|
48
|
+
configured session memory by default; `--memory-mb` overrides that reservation.
|
|
49
|
+
The existing group retains its allowed runtimes, execution profile and budgets.
|
|
50
|
+
An unavailable main, paused group or stale generation blocks the start. Native
|
|
51
|
+
login, folder trust and tool approvals remain in the worker's own screen.
|
|
52
|
+
|
|
53
|
+
In the view, Ctrl-g then n opens a worker picker. It releases input control
|
|
54
|
+
without submitting the main draft. Select a granted installed runtime and
|
|
55
|
+
confirm its start; q cancels without creating a worker. The new worker reserves
|
|
56
|
+
the same memory as the live main, within the existing group limits. Selection
|
|
57
|
+
does not switch the input target or acquire control. To use a different
|
|
58
|
+
reservation or an advanced view, run:
|
|
59
|
+
|
|
60
|
+
```sh
|
|
61
|
+
pmcp tui start-worker --view "$VIEW_FILE" --runtime gemini-cli --memory-mb 512
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Use either --view or --config. A view start uses its owned group and generation;
|
|
65
|
+
it does not discover another project workspace. Docker runtime availability
|
|
66
|
+
follows that group's command policy rather than host native executables.
|
|
67
|
+
This worker menu is qualified on native groups; Docker execution remains subject
|
|
68
|
+
to its separately tested CLI and profile grants.
|
|
69
|
+
|
|
70
|
+
The nearest `pmcp.toml` within the Git repository determines the project root,
|
|
71
|
+
including from nested cwd. A submodule does not inherit its parent's config;
|
|
72
|
+
use `--config` when you explicitly want a different configuration scope.
|
|
73
|
+
Without a config, the current real directory is the project root. Customize only
|
|
74
|
+
the values you need:
|
|
75
|
+
|
|
76
|
+
```toml
|
|
77
|
+
[tui]
|
|
78
|
+
runtime = "codex-cli"
|
|
79
|
+
memory_mb = 2048
|
|
80
|
+
session_memory_mb = 768
|
|
81
|
+
max_active = 2
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
runtime defaults to auto. Supported IDs are codex-cli, gemini-cli, antigravity,
|
|
85
|
+
grok-cli and claude-code. CLI `--runtime` overrides the config for a new main.
|
|
86
|
+
An optional group_file points to a deliberately selected existing owned group
|
|
87
|
+
with a live main; relative paths resolve from the config directory. `--config`
|
|
88
|
+
selects a config file explicitly. Unknown keys and invalid budgets are errors.
|
|
89
|
+
Config budget changes apply to a new group; existing groups keep their grants.
|
|
90
|
+
|
|
91
|
+
`pmcp tui launch --yes` explicitly confirms the first start without the prompt.
|
|
92
|
+
Launch still requires a supported interactive terminal. `pmcp tui plan` reports
|
|
93
|
+
resolved settings and saved paths without writing or invoking a provider.
|
|
94
|
+
The launcher checkpoint lives under XDG_STATE_HOME/pmcp/launcher, or
|
|
95
|
+
~/.local/state/pmcp/launcher, with private file permissions.
|
|
96
|
+
|
|
97
|
+
Reopening never adopts an unrelated tmux session or restarts a stopped main.
|
|
98
|
+
A paused group, interrupted start or changed generation requires explicit
|
|
99
|
+
harness inspection and recovery. After explicitly stopping the old owned group,
|
|
100
|
+
`pmcp tui --new` creates a new workspace. Detach preserves the existing native
|
|
101
|
+
process and draft. Closing only the view permits a new presentation over the
|
|
102
|
+
same live group. Keep original state when investigating a failed start.
|
|
103
|
+
If a creation checkpoint has no group path yet, keep it for manual inspection;
|
|
104
|
+
the launcher refuses to infer ownership or restart from that incomplete state.
|
|
105
|
+
|
|
106
|
+
Piped bare launches and leading MCP server options preserve the existing stdio
|
|
107
|
+
contract. Use `pmcp serve` explicitly in MCP configuration. Unsupported
|
|
108
|
+
interactive hosts show help; they do not wait for JSON-RPC input.
|
|
109
|
+
|
|
110
|
+
## Advanced view operations
|
|
111
|
+
|
|
16
112
|
First [create a harness group and its sessions](terminal-harness.md). Set GROUP_FILE
|
|
17
113
|
to that group's private state path, then check prerequisites and create a view:
|
|
18
114
|
|
|
@@ -36,6 +132,45 @@ right, and coordination occupies four bottom rows. Smaller terminals keep a
|
|
|
36
132
|
full-width main and a separate management window. The minimum is 40 by 12.
|
|
37
133
|
Views refer to an existing owned group and do not start a provider.
|
|
38
134
|
|
|
135
|
+
Doctor checks host prerequisites, including access to the systemd user manager,
|
|
136
|
+
and lists native executables found on PATH. An installed executable is not proof
|
|
137
|
+
of authentication or successful native behavior. The report leaves native
|
|
138
|
+
acceptance unassessed and does not read authentication profiles.
|
|
139
|
+
|
|
140
|
+
| Finding | Next step |
|
|
141
|
+
| ------------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
|
|
142
|
+
| Missing tmux or flock | Install tmux or util-linux for your Linux distribution and check PATH in this terminal. |
|
|
143
|
+
| Unsupported Node | Select Node.js 22 or later through your existing version manager, then check node --version. |
|
|
144
|
+
| Unreachable user manager | Run systemctl --user status in the same login session; restore manager access before launching. Doctor does not start services. |
|
|
145
|
+
| Missing native runtime | Install the vendor's CLI and select its runtime ID explicitly. Installation alone does not establish login or folder trust. |
|
|
146
|
+
| Unsupported terminal host | Use a qualified Linux host for this workspace. Other PMCP features keep their own prerequisites. |
|
|
147
|
+
|
|
148
|
+
Doctor does not invoke a native runtime, inspect private authentication files,
|
|
149
|
+
test a model reply or prove cgroup delegation. Native acceptance and isolated
|
|
150
|
+
execution require separate measurements against the exact installed version.
|
|
151
|
+
|
|
152
|
+
### Measured terminal behavior
|
|
153
|
+
|
|
154
|
+
Linux acceptance on 2026-10-10 covered the following native main/worker pairs.
|
|
155
|
+
Each run checked read-only observation, explicit worker input with an actual
|
|
156
|
+
reply, main draft preservation, resize and detach/reconnect. These bounded
|
|
157
|
+
checks do not certify every vendor feature or another authentication profile.
|
|
158
|
+
|
|
159
|
+
| Native runtime | Tested version | Main and worker terminal checks |
|
|
160
|
+
| -------------- | ------------------------- | ------------------------------- |
|
|
161
|
+
| Codex | 0.161.0 | Passed |
|
|
162
|
+
| Gemini CLI | 0.63.0 | Passed |
|
|
163
|
+
| Grok CLI | 1.0.50 | Passed |
|
|
164
|
+
| agy | 1.3.3 | Passed |
|
|
165
|
+
| Claude Code | Not measured in this wave | Deferred |
|
|
166
|
+
|
|
167
|
+
Separate synthetic PTY checks cover multiline Korean paste, read-only mouse
|
|
168
|
+
input, owned history and nested tmux. They do not establish each vendor's
|
|
169
|
+
own editing or mouse behavior. Use Ctrl-g then h to read owned history without
|
|
170
|
+
sending input. Claude acceptance, other operating systems and physical host
|
|
171
|
+
loss remain outside these results. Docker installation and native credential
|
|
172
|
+
isolation have separate qualification; this terminal run does not replace them.
|
|
173
|
+
|
|
39
174
|
## Observe and control
|
|
40
175
|
|
|
41
176
|
Press Ctrl-g, release it, then press a key:
|
|
@@ -44,6 +179,7 @@ Press Ctrl-g, release it, then press a key:
|
|
|
44
179
|
| -------- | -------------------------------------------- | ----------------------- |
|
|
45
180
|
| m | Return to main and release worker control | main |
|
|
46
181
|
| w or 1–4 | Observe a worker | observe --index 1 |
|
|
182
|
+
| n | Choose and confirm a new worker | worker-menu |
|
|
47
183
|
| c | Request control of the current native target | control |
|
|
48
184
|
| r | Release control | release |
|
|
49
185
|
| h | Read owned native history | history |
|
|
@@ -58,9 +194,11 @@ the dock; CLI observe supports all available indices. Press Ctrl-g twice to
|
|
|
58
194
|
forward Ctrl-g to the native interface. Native Ctrl-b remains available when
|
|
59
195
|
you hold control. A surrounding tmux may consume its own prefix first.
|
|
60
196
|
|
|
61
|
-
The
|
|
197
|
+
The status line identifies MAIN or WORKER, its session and OBSERVE / INPUT OFF.
|
|
198
|
+
Control progresses through REQUESTING CONTROL and
|
|
62
199
|
CONNECTING WRITER to CONTROL READY. A lease alone does not enable typing: PMCP
|
|
63
200
|
checks that the writable native client is attached to the selected pane's TTY.
|
|
201
|
+
Only CONTROL READY shows INPUT ON.
|
|
64
202
|
Input stays blocked during acquisition and release. A control lease identifies
|
|
65
203
|
the writer, not which native prompt or approval menu is active.
|
|
66
204
|
|
|
@@ -101,6 +239,28 @@ pmcp harness recovery inspect --group-file "$GROUP_FILE"
|
|
|
101
239
|
pmcp harness attach inspect --group-file "$GROUP_FILE" --session "$SESSION"
|
|
102
240
|
```
|
|
103
241
|
|
|
242
|
+
For a workspace opened through bare pmcp, inspect the saved launcher without
|
|
243
|
+
starting a runtime:
|
|
244
|
+
|
|
245
|
+
```sh
|
|
246
|
+
pmcp tui recovery
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
This reads the checkpoint and validates its saved group ownership and
|
|
250
|
+
generation. It reports exact inspection commands and, where applicable,
|
|
251
|
+
explicit resume, stop or fresh-launch commands. It does not execute them or
|
|
252
|
+
certify that a process is still alive. An explicitly selected configuration
|
|
253
|
+
is preserved in the proposed fresh-launch command:
|
|
254
|
+
|
|
255
|
+
```sh
|
|
256
|
+
pmcp tui recovery --config /path/to/pmcp.toml
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
If creation stopped before a group reference was saved, the result is
|
|
260
|
+
manual-inspection. Preserve the reported checkpoint and examine owned launch
|
|
261
|
+
evidence before changing it. Matching project paths alone cannot establish
|
|
262
|
+
ownership. Paused work stays paused, and uncertain input is never replayed.
|
|
263
|
+
|
|
104
264
|
Close ends the presentation and preserves all native runtimes:
|
|
105
265
|
|
|
106
266
|
```sh
|
package/gemini-extension.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@modootoday/pmcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.16.0",
|
|
4
4
|
"license": "Elastic-2.0",
|
|
5
5
|
"author": "modootoday",
|
|
6
6
|
"description": "Use the skills your packages already ship, and keep your AI tools' project configuration in one place.",
|
|
@@ -91,7 +91,8 @@
|
|
|
91
91
|
"marketplace:check": "bun scripts/build-marketplace.mjs --check",
|
|
92
92
|
"docs:check": "prettier --check --ignore-path /dev/null README.md docs/*.md && npm run marketplace:check && npm run skills:check && npm run site:check",
|
|
93
93
|
"site:deployed": "node scripts/check-deployed.mjs",
|
|
94
|
-
"
|
|
94
|
+
"package:verify": "node scripts/verify-package.mjs",
|
|
95
|
+
"prepack": "npm run docs:check && npm run build && npm run typecheck && npm test && npm run package:verify -- --pack --matrix --report-stderr",
|
|
95
96
|
"format": "prettier --write .",
|
|
96
97
|
"format:check": "prettier --check ."
|
|
97
98
|
},
|
package/plugin.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
|
|
3
3
|
"name": "pmcp",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.16.0",
|
|
5
5
|
"description": "Find package skills and use native runtime project configuration.",
|
|
6
6
|
"author": { "name": "modootoday" },
|
|
7
7
|
"license": "Elastic-2.0",
|
package/plugins/pmcp/plugin.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
|
|
3
3
|
"name": "pmcp",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.16.0",
|
|
5
5
|
"description": "Find package skills and use native runtime project configuration.",
|
|
6
6
|
"author": { "name": "modootoday" },
|
|
7
7
|
"license": "Elastic-2.0",
|