@modootoday/pmcp 0.13.0 → 0.13.1

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/NOTICE CHANGED
@@ -40,9 +40,11 @@ their own terms and are not covered by the licence above.
40
40
  @modelcontextprotocol/core MIT Copyright (c) Anthropic, PBC
41
41
  zod MIT Copyright (c) Colin McDonnell
42
42
  semver ISC See the dependency's LICENSE file.
43
+ smol-toml BSD-3-Clause Copyright (c) Squirrel Chat et al.
44
+ yaml ISC Copyright Eemeli Aro
43
45
 
44
- The MIT License permits this distribution provided the above notices are
45
- retained. Full licence texts ship with those packages.
46
+ Full licence texts and copyright notices ship with those packages. Their
47
+ respective licence terms govern distribution of those dependencies.
46
48
 
47
49
  @huggingface/transformers is an optional peer dependency. It is never
48
50
  distributed with this package; a user who wants semantic ranking installs it
package/README.md CHANGED
@@ -95,6 +95,24 @@ The [configuration guide](docs/project-configuration.md) covers importing
95
95
  existing servers, environment references, shared skills and rules, shell guards
96
96
  and memory metadata.
97
97
 
98
+ ## Manage native terminals
99
+
100
+ PMCP 0.13.0 or later can show a native main runtime, its worker terminals and a
101
+ coordination panel in one terminal workspace. The optional harness and TUI need
102
+ Linux, tmux, util-linux flock, Node.js 22 or later and a working user systemd
103
+ manager. Provider login, folder trust and tool approvals remain native.
104
+
105
+ ```sh
106
+ npx @modootoday/pmcp --version
107
+ npx @modootoday/pmcp harness doctor
108
+ npx @modootoday/pmcp tui doctor
109
+ ```
110
+
111
+ Follow the [native terminal guide](docs/terminal-harness.md) to create an owned
112
+ group and sessions, then [open a terminal workspace](docs/terminal-workspace.md).
113
+ Views start read only; acquiring control and stopping a runtime are explicit
114
+ actions. This optional CLI feature does not add execution tools to the MCP server.
115
+
98
116
  ## Everyday commands
99
117
 
100
118
  Run these with `npx @modootoday/pmcp`, or with `pmcp` when it is on your PATH:
@@ -130,7 +148,7 @@ With no command, pmcp serves MCP on stdio.
130
148
  | [Local mailbox](docs/mailbox.md) | Actor credentials, messages, receipts and library integration |
131
149
  | [HTTP hosting](docs/hosting.md) | Authentication, catalog access and request controls |
132
150
  | [Native terminal control](docs/terminal-harness.md) | Owned sessions, explicit input, Docker profiles and recovery |
133
- | [Terminal workspace](docs/terminal-workspace.md) | A layout, read-only observation, control and visible failures |
151
+ | [Terminal workspace](docs/terminal-workspace.md) | Main and worker panels, observation, control and failures |
134
152
  | [Security policy](SECURITY.md) | Reporting vulnerabilities |
135
153
 
136
154
  Semantic search is optional and requires `@huggingface/transformers` installed
package/dist/cli.js CHANGED
@@ -9013,7 +9013,7 @@ function registerMailboxTools(server, service) {
9013
9013
 
9014
9014
  // src/mcp.ts
9015
9015
  var SERVER_NAME = "pmcp";
9016
- var SERVER_VERSION = "0.13.0";
9016
+ var SERVER_VERSION = "0.13.1";
9017
9017
  function registerSkillTools(server, tools) {
9018
9018
  registerCatalogTool(server, tools);
9019
9019
  registerFindTool(server, tools);
@@ -14428,7 +14428,7 @@ function dispatch(argv, options2 = {}) {
14428
14428
  }
14429
14429
  return run(command2, rest, { ui, env, cwd });
14430
14430
  }
14431
- var VERSION = "0.13.0";
14431
+ var VERSION = "0.13.1";
14432
14432
  async function run(command2, argv, context) {
14433
14433
  try {
14434
14434
  return await command2.run({
@@ -1,4 +1,4 @@
1
- import { E as Embedder } from './server-9w4R1caM.js';
1
+ import { E as Embedder } from './server-CwWcRjqz.js';
2
2
  import { E as EncoderOptions } from './encoder-DGRy9skC.js';
3
3
 
4
4
  /**
package/dist/http.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- import { S as SkillServerOptions, E as Embedder, a as SkillEntry } from './server-9w4R1caM.js';
2
- import { L as LoadEmbedderOptions } from './embed-BW6AWD1e.js';
3
- export { l as loadEmbedder } from './embed-BW6AWD1e.js';
1
+ import { S as SkillServerOptions, E as Embedder, a as SkillEntry } from './server-CwWcRjqz.js';
2
+ import { L as LoadEmbedderOptions } from './embed-BBhv3y5x.js';
3
+ export { l as loadEmbedder } from './embed-BBhv3y5x.js';
4
4
  import { M as MailboxService } from './service-qpCsOXkQ.js';
5
5
  export { D as DEFAULT_MODEL_ID } from './encoder-DGRy9skC.js';
6
6
  import 'zod';
package/dist/http.js CHANGED
@@ -2190,7 +2190,7 @@ function registerMailboxTools(server, service) {
2190
2190
 
2191
2191
  // src/mcp.ts
2192
2192
  var SERVER_NAME = "pmcp";
2193
- var SERVER_VERSION = "0.13.0";
2193
+ var SERVER_VERSION = "0.13.1";
2194
2194
  function registerSkillTools(server, tools) {
2195
2195
  registerCatalogTool(server, tools);
2196
2196
  registerFindTool(server, tools);
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- import { I as IntentCache, R as Ranking, S as SkillServerOptions, E as Embedder, C as CatalogOptions, a as SkillEntry, M as MetadataValue, b as SkillTools } from './server-9w4R1caM.js';
2
- export { A as ASSET_KINDS, c as AssetKind, B as BundleFile, d as CATALOG_PAGE_MAX, e as CATALOG_PAGE_SIZE, f as COMPATIBILITY_MAX, g as CallResponse, h as CatalogItem, i as CatalogResponse, j as Classified, D as DEFAULT_FIND_LIMIT, k as DESCRIBE_FILE_LIMIT, l as DESCRIPTION_MAX, F as FileKind, m as FindOptions, n as FindResult, o as IntentCacheStats, K as KindFilter, p as MAX_SKILL_DEPTH, q as Match, r as MetadataLeaf, N as NAME_MAX, s as READ_BUDGET_BYTES, t as RUNTIMES, u as ReadResult, v as Runtime, w as SKIPPED_DIRS, x as SkillBundle, y as SkillFile, z as SkillFileContent, G as SkillFileListing, H as SkillFilters, J as bundleResponseSchema, L as bundleSkill, O as catalogResponseSchema, P as classify, Q as cosine, T as createSkillTools, U as describeResponseSchema, V as detectRuntime, W as displayPath, X as find, Y as findResultSchema, Z as isUtf8Text, _ as kindOf, $ as lexicalScore, a0 as listSkillFiles, a1 as mimeOf, a2 as normaliseIntent, a3 as parseSkillFrontmatter, a4 as readBody, a5 as readCatalog, a6 as readFrontmatter, a7 as readSkillFile, a8 as runtimeOfClient, a9 as specProblems, aa as verifiedRuntimesOf, ab as withoutBody } from './server-9w4R1caM.js';
3
- import { L as LoadEmbedderOptions } from './embed-BW6AWD1e.js';
4
- export { E as EntryVectorStore, e as encodeEntries, l as loadEmbedder, o as openEntryVectors } from './embed-BW6AWD1e.js';
1
+ import { I as IntentCache, R as Ranking, S as SkillServerOptions, E as Embedder, C as CatalogOptions, a as SkillEntry, M as MetadataValue, b as SkillTools } from './server-CwWcRjqz.js';
2
+ export { A as ASSET_KINDS, c as AssetKind, B as BundleFile, d as CATALOG_PAGE_MAX, e as CATALOG_PAGE_SIZE, f as COMPATIBILITY_MAX, g as CallResponse, h as CatalogItem, i as CatalogResponse, j as Classified, D as DEFAULT_FIND_LIMIT, k as DESCRIBE_FILE_LIMIT, l as DESCRIPTION_MAX, F as FileKind, m as FindOptions, n as FindResult, o as IntentCacheStats, K as KindFilter, p as MAX_SKILL_DEPTH, q as Match, r as MetadataLeaf, N as NAME_MAX, s as READ_BUDGET_BYTES, t as RUNTIMES, u as ReadResult, v as Runtime, w as SKIPPED_DIRS, x as SkillBundle, y as SkillFile, z as SkillFileContent, G as SkillFileListing, H as SkillFilters, J as bundleResponseSchema, L as bundleSkill, O as catalogResponseSchema, P as classify, Q as cosine, T as createSkillTools, U as describeResponseSchema, V as detectRuntime, W as displayPath, X as find, Y as findResultSchema, Z as isUtf8Text, _ as kindOf, $ as lexicalScore, a0 as listSkillFiles, a1 as mimeOf, a2 as normaliseIntent, a3 as parseSkillFrontmatter, a4 as readBody, a5 as readCatalog, a6 as readFrontmatter, a7 as readSkillFile, a8 as runtimeOfClient, a9 as specProblems, aa as verifiedRuntimesOf, ab as withoutBody } from './server-CwWcRjqz.js';
3
+ import { L as LoadEmbedderOptions } from './embed-BBhv3y5x.js';
4
+ export { E as EntryVectorStore, e as encodeEntries, l as loadEmbedder, o as openEntryVectors } from './embed-BBhv3y5x.js';
5
5
  export { D as DEFAULT_MODEL_ID, a as EmbeddingModel, b as EncoderDtype, E as EncoderOptions, c as EncoderSpec, R as ResolvedEncoder, e as embeddingModels, d as encoderSpec, r as resolveEncoder } from './encoder-DGRy9skC.js';
6
6
  import { P as ProjectConfig } from './config-CJ43_oBS.js';
7
7
  export { C as CONFIG_FILE, a as CatalogSection, b as ConfigError, E as EmbeddingSection, f as findConfig, r as readConfig } from './config-CJ43_oBS.js';
@@ -282,7 +282,7 @@ declare function resolveSkillFileUri(uri: string, entries: readonly SkillEntry[]
282
282
 
283
283
  /** Reported to the host on connect. */
284
284
  declare const SERVER_NAME = "pmcp";
285
- declare const SERVER_VERSION = "0.13.0";
285
+ declare const SERVER_VERSION = "0.13.1";
286
286
  /**
287
287
  * Registers the skill_* tools on a server.
288
288
  *
package/dist/index.js CHANGED
@@ -4497,7 +4497,7 @@ function registerMailboxTools(server, service) {
4497
4497
 
4498
4498
  // src/mcp.ts
4499
4499
  var SERVER_NAME = "pmcp";
4500
- var SERVER_VERSION = "0.13.0";
4500
+ var SERVER_VERSION = "0.13.1";
4501
4501
  function registerSkillTools(server, tools) {
4502
4502
  registerCatalogTool(server, tools);
4503
4503
  registerFindTool(server, tools);
package/dist/stdio.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { serveStdio } from '@modelcontextprotocol/server/stdio';
3
- import { S as SkillServerOptions, C as CatalogOptions } from './server-9w4R1caM.js';
3
+ import { S as SkillServerOptions, C as CatalogOptions } from './server-CwWcRjqz.js';
4
4
  import { M as MailboxService } from './service-qpCsOXkQ.js';
5
5
  import { M as MailboxAttachmentOptions } from './attachment-tU5FZrgZ.js';
6
6
  import 'zod';
package/dist/stdio.js CHANGED
@@ -1837,7 +1837,7 @@ function registerMailboxTools(server, service) {
1837
1837
 
1838
1838
  // src/mcp.ts
1839
1839
  var SERVER_NAME = "pmcp";
1840
- var SERVER_VERSION = "0.13.0";
1840
+ var SERVER_VERSION = "0.13.1";
1841
1841
  function registerSkillTools(server, tools) {
1842
1842
  registerCatalogTool(server, tools);
1843
1843
  registerFindTool(server, tools);
@@ -1,11 +1,12 @@
1
1
  # Terminal workspace
2
2
 
3
- Use pmcp tui to view an existing main runtime and its workers in one terminal.
3
+ Use `pmcp tui` to view an existing main runtime and its workers in one terminal.
4
4
  The main conversation stays in its native interface. PMCP adds a worker dock,
5
5
  coordination panel and explicit control switching. Provider login, folder trust
6
6
  and tool approvals stay in their native screens.
7
7
 
8
- The host requires Linux, tmux, util-linux flock, Node.js 22 or later and a working
8
+ This feature requires PMCP 0.13.0 or later. The host requires Linux, tmux,
9
+ util-linux flock, Node.js 22 or later and a working
9
10
  user systemd manager. The PMCP CLI supports Node or Bun; pane helpers use Node.
10
11
  The presentation gets its own 512 MiB, 128-task, one-CPU scope. Native sessions
11
12
  retain their existing group budgets and execution profile.
@@ -16,6 +17,7 @@ First [create a harness group and its sessions](terminal-harness.md). Set GROUP_
16
17
  to that group's private state path, then check prerequisites and create a view:
17
18
 
18
19
  ```sh
20
+ pmcp --version
19
21
  pmcp tui doctor
20
22
  pmcp tui create --group-file "$GROUP_FILE" --columns 160 --rows 48
21
23
  ```
@@ -38,18 +40,18 @@ Views refer to an existing owned group and do not start a provider.
38
40
 
39
41
  Press Ctrl-g, release it, then press a key:
40
42
 
41
- | Key | Action | CLI operation |
42
- | --- | --- | --- |
43
- | m | Return to main and release worker control | main |
44
- | w or 1–4 | Observe a worker | observe --index 1 |
45
- | c | Request control of the current native target | control |
46
- | r | Release control | release |
47
- | h | Read owned native history | history |
48
- | b | Show configured inbox metadata | mailbox |
49
- | g | Open compact management window | management |
50
- | d | Detach the view, preserving runtimes | detach |
51
- | ! | Dismiss the last visible error | dismiss |
52
- | ? | Show key help | Help in the status line |
43
+ | Key | Action | CLI operation |
44
+ | -------- | -------------------------------------------- | ----------------------- |
45
+ | m | Return to main and release worker control | main |
46
+ | w or 1–4 | Observe a worker | observe --index 1 |
47
+ | c | Request control of the current native target | control |
48
+ | r | Release control | release |
49
+ | h | Read owned native history | history |
50
+ | b | Show configured inbox metadata | mailbox |
51
+ | g | Open compact management window | management |
52
+ | d | Detach the view, preserving runtimes | detach |
53
+ | ! | Dismiss the last visible error | dismiss |
54
+ | ? | Show key help | Help in the status line |
53
55
 
54
56
  CLI operations use pmcp tui OPERATION --view "$VIEW_FILE". Worker indices follow
55
57
  the dock; CLI observe supports all available indices. Press Ctrl-g twice to
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@modootoday/pmcp",
3
- "version": "0.13.0",
3
+ "version": "0.13.1",
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.",
@@ -71,9 +71,10 @@
71
71
  "clean": "rimraf dist",
72
72
  "catalog:refresh": "node scripts/refresh-catalog.mjs",
73
73
  "observations:refresh": "node scripts/refresh-observations.mjs",
74
- "site:build": "node scripts/build-catalog-pages.mjs && node scripts/build-observation-pages.mjs && node scripts/build-sitemap.mjs",
74
+ "site:build": "node scripts/build-site-assets.mjs && node scripts/build-catalog-pages.mjs && node scripts/build-observation-pages.mjs && node scripts/build-guide-pages.mjs && node scripts/build-sitemap.mjs",
75
+ "docs:check": "prettier --check --ignore-path /dev/null README.md docs/*.md && node scripts/build-guide-pages.mjs --check && node scripts/build-site-assets.mjs --check",
75
76
  "site:deployed": "node scripts/check-deployed.mjs",
76
- "prepack": "npm run build && npm run typecheck && npm test",
77
+ "prepack": "npm run docs:check && npm run build && npm run typecheck && npm test",
77
78
  "format": "prettier --write .",
78
79
  "format:check": "prettier --check ."
79
80
  },
@@ -96,8 +97,11 @@
96
97
  "@types/node": "^22.15.21",
97
98
  "@types/semver": "7.8.0",
98
99
  "@typescript/native-preview": "7.0.0-dev.20260707.2",
100
+ "esbuild": "0.27.4",
101
+ "marked": "18.1.0",
99
102
  "prettier": "^3.6.2",
100
103
  "rimraf": "^6.0.1",
104
+ "three": "0.186.1",
101
105
  "tsup": "^8.5.1",
102
106
  "typescript": "^5.9.3",
103
107
  "vitest": "^4.0.18"
@@ -346,11 +346,11 @@ declare const catalogItemSchema: z.ZodObject<{
346
346
  mcp: "mcp";
347
347
  }>>;
348
348
  verifiedRuntimes: z.ZodOptional<z.ZodArray<z.ZodEnum<{
349
- antigravity: "antigravity";
350
349
  "claude-code": "claude-code";
351
350
  "codex-cli": "codex-cli";
352
351
  "gemini-cli": "gemini-cli";
353
352
  "grok-cli": "grok-cli";
353
+ antigravity: "antigravity";
354
354
  }>>>;
355
355
  verified: z.ZodOptional<z.ZodBoolean>;
356
356
  }, z.core.$loose>;
@@ -372,11 +372,11 @@ declare const catalogResponseSchema: z.ZodObject<{
372
372
  mcp: "mcp";
373
373
  }>>;
374
374
  verifiedRuntimes: z.ZodOptional<z.ZodArray<z.ZodEnum<{
375
- antigravity: "antigravity";
376
375
  "claude-code": "claude-code";
377
376
  "codex-cli": "codex-cli";
378
377
  "gemini-cli": "gemini-cli";
379
378
  "grok-cli": "grok-cli";
379
+ antigravity: "antigravity";
380
380
  }>>>;
381
381
  verified: z.ZodOptional<z.ZodBoolean>;
382
382
  }, z.core.$loose>>;
@@ -388,11 +388,11 @@ declare const findResultSchema: z.ZodObject<{
388
388
  lexical: "lexical";
389
389
  }>;
390
390
  runtime: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
391
- antigravity: "antigravity";
392
391
  "claude-code": "claude-code";
393
392
  "codex-cli": "codex-cli";
394
393
  "gemini-cli": "gemini-cli";
395
394
  "grok-cli": "grok-cli";
395
+ antigravity: "antigravity";
396
396
  }>>>;
397
397
  matches: z.ZodArray<z.ZodObject<{
398
398
  name: z.ZodString;
@@ -400,11 +400,11 @@ declare const findResultSchema: z.ZodObject<{
400
400
  description: z.ZodString;
401
401
  score: z.ZodNumber;
402
402
  verifiedRuntimes: z.ZodOptional<z.ZodArray<z.ZodEnum<{
403
- antigravity: "antigravity";
404
403
  "claude-code": "claude-code";
405
404
  "codex-cli": "codex-cli";
406
405
  "gemini-cli": "gemini-cli";
407
406
  "grok-cli": "grok-cli";
407
+ antigravity: "antigravity";
408
408
  }>>>;
409
409
  verified: z.ZodOptional<z.ZodBoolean>;
410
410
  }, z.core.$loose>>;