pi-roundtable 0.7.0 → 0.7.2

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/CHANGELOG.md CHANGED
@@ -5,6 +5,30 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
5
5
 
6
6
  ## [Unreleased]
7
7
 
8
+ ## [0.7.2] - 2026-10-02
9
+
10
+ ### Fixed
11
+
12
+ - The release preflight reads npm 12's `npm pack --json` report (an object keyed by package name) and `npm view --json` name (a one-element array) as well as npm 11's, so the `v0.7.1` tag stopped before publishing anything.
13
+
14
+ ## [0.7.1] - 2026-10-02
15
+
16
+ Tagged but not published: the release preflight failed under npm 12 before any package was published. Its changes ship in 0.7.2.
17
+
18
+ ### Docs
19
+
20
+ - Document five official packages on the site and link their guides from `docs/plugins.md`, including installation, configuration, platform requirements, and security models.
21
+ Add a Traditional Chinese `release-notice` guide and reply-attachment guide.
22
+
23
+ ### Changed
24
+
25
+ - Official drawing, coding, web, sandbox, and MCP plugins now live under `packages/` as Bun workspaces with their original Git history.
26
+ They remain separate npm packages, checked alongside the core in CI and released in lockstep from one `v*` tag through `publish.yml`.
27
+ The core's npm file list and release tags are unchanged.
28
+ - `pi-roundtable-mcp` moves from its standalone repository to `packages/mcp` and jumps from 0.4.1 to lockstep 0.7.0, retaining its public API.
29
+ Both MCP and sandbox now peer on `>=0.7.0 <0.8.0` and test against the live core 0.7.0.
30
+ Shared CI runs MCP's PostgreSQL tests and explicitly opts into sandbox's native Linux Docker integration.
31
+
8
32
  ## [0.7.0] - 2026-10-02
9
33
 
10
34
  ### Added
package/docs/plugins.md CHANGED
@@ -52,7 +52,7 @@ Import fixtures and fake threads from `pi-roundtable/testing` for tests.
52
52
 
53
53
  #### Helpers for a Pi session of your own
54
54
 
55
- Use the kit's building blocks for a plugin that runs Pi itself, such as a coding worker or a container with no network:
55
+ Use the kit's building blocks for a plugin that runs Pi itself, such as a coding worker:
56
56
 
57
57
  - MCP: `mcpExtension` and `VirtualServer` expose MCP servers to a session, and `mcpAdapterExtension` and `readAttachmentExtension` do the same inside an out-of-process worker.
58
58
  - Work: `promptSlot` (how a run asks the owner while it works), `workTimeout` (a time limit that does not count the time spent waiting on the owner), `runWorkerTask`, `archiveSessions`, and `approvalCard` and `canonicalJson` for the cards of held actions.
@@ -63,6 +63,9 @@ Use the kit's building blocks for a plugin that runs Pi itself, such as a coding
63
63
  - Effort: `effortJudge` picks a turn's thinking level from a message with your own brief (`EffortBrief`, `JUDGE_WORK`).
64
64
  - Presentation and small helpers: `thinkingLine`, `zonedStamp(date, timeZone)`, `channelQueue()` (a queue of your own, so work does not wait behind a running turn), `checkRepoName` and `SKILL_LIST_TOOL` with `skillListExtension` for repositories and skills, and `searchTerms` for memory search.
65
65
 
66
+ The [coding package source][coding-source] shows these helpers in an out-of-process Pi worker.
67
+ The [MCP package source][mcp-source] is a full example of connectors and remote MCP endpoints.
68
+
66
69
  `roundtable add plugin <name>` creates `plugins/<name>.ts` and its test from a small template and lists it in `roundtable.config.ts`.
67
70
  The name is lowercase words joined by dashes, such as `my-notes`.
68
71
  Three names are reserved for the [official plugins](#official-plugins): `codex-images`, `dice`, and `release-notice` copy a ready-made plugin into the project.
@@ -385,6 +388,7 @@ The core copies the bytes when the call succeeds, so the tool may reuse its buff
385
388
  The tool does not send a message itself; the successful turn returns `TurnResult.files` and the reply path hands them to the surface as `OutboundReply.files`.
386
389
  On Discord, files follow the text as one file per message to avoid image grids, all through the same agent webhook name and avatar as the text.
387
390
  Other surfaces may send the text and files in one message or a message group.
391
+ The [drawing package source][drawing-source] uses `turn.attachFile` to deliver images produced by its tools.
388
392
 
389
393
  <!-- example: examples/reply-files.ts -->
390
394
  ```ts
@@ -448,6 +452,7 @@ Test an attachment tool with an injected file-capable surface and inspect `harne
448
452
  A held call is described to the owner, who approves or refuses it in Discord before the call runs.
449
453
  A tool's `hold` returns the description for its own calls, and `holdRules` are rules over every tool call, asked in order until one describes the call.
450
454
  Each rule needs a name, unique across plugins.
455
+ The [coding package source][coding-source] uses an owner hold for `repo_push`.
451
456
 
452
457
  <!-- example: examples/holds.ts -->
453
458
  ```ts
@@ -867,6 +872,7 @@ When no `images` provider is configured, `agent_create` has no `avatar_prompt` p
867
872
  The owner's profile panel reports the missing provider and offers no redraw option.
868
873
  Each agent gets a picture generated from its display name and the assistant's icon, so you can tell agents apart.
869
874
  `bunx roundtable doctor` reports whether the slot is filled.
875
+ The copy-in [`codex-images` provider template][codex-images-template] is a complete implementation of the `images` slot.
870
876
 
871
877
  <!-- example: examples/providers.ts -->
872
878
  ```ts
@@ -1259,6 +1265,7 @@ The configuration's `http` block opens a listener named `public`, which serves t
1259
1265
  A route names the listener, a path (`{ exact }` or `{ prefix }`), optionally the methods, and a handler that gets a `Request` and returns a `Response`.
1260
1266
  Two routes that could take the same request are refused, so a route cannot shadow the avatars.
1261
1267
  This listener is reachable from the internet, so check a secret in the handler before taking action.
1268
+ The [web package source][web-source] is a complete owner-console implementation built on these HTTP routes.
1262
1269
  A handler that throws, or returns a rejected promise, answers `500 Internal Server Error` with that fixed body, and the listener keeps serving.
1263
1270
  The host logs one error line with the route's `name` and its `listener`; it never logs the request URL, since a path may hold a secret.
1264
1271
 
@@ -1455,6 +1462,8 @@ Give `stop` to a claim whose conversations run turns that can be interrupted.
1455
1462
 
1456
1463
  For a claim with its own conversations, return the conversation's kind from `startFresh`.
1457
1464
  Run turns with [`context.turns`](#personas-and-contextturns-conversations-of-a-kind-of-your-own), which handles typing, the stop control, events, and replies.
1465
+ The [sandbox package source][sandbox-source] is a complete guest-only channel claim backed by a no-network Docker agent and a host-side broker.
1466
+ Its container runs a minimal Chat Completions loop rather than a Pi session.
1458
1467
 
1459
1468
  <!-- example: examples/channels.ts -->
1460
1469
  ```ts
@@ -1881,10 +1890,43 @@ The package ships three plugins you can copy into a project and change.
1881
1890
  `roundtable add plugin codex-images`, `roundtable add plugin dice`, and `roundtable add plugin release-notice` write `plugins/<name>.ts` and `plugins/<name>.test.ts`, import the plugin in `roundtable.config.ts`, and list it in `plugins`.
1882
1891
  You can edit the copied files; `add plugin` refuses to overwrite existing ones.
1883
1892
  The three names are reserved for these copies.
1893
+ Inspect the ready-made implementations in the [codex-images][codex-images-template], [dice][dice-template], and [release-notice][release-notice-template] templates.
1884
1894
 
1885
- A separate package, [pi-roundtable-mcp](https://www.npmjs.com/package/pi-roundtable-mcp), adds two more plugins, `mcpConnectors` and `remoteMcp`.
1895
+ The [pi-roundtable-mcp][mcp-package] workspace, published separately on npm, adds two more plugins, `mcpConnectors` and `remoteMcp`.
1886
1896
  The first lets the owner add MCP servers such as Notion or a calendar from Discord and gives your code the list; the second lets an agent outside Discord reach your agent.
1887
- Install it with `bun add pi-roundtable-mcp`.
1897
+ Install it with `bun add pi-roundtable-mcp` after the next lockstep release publishes the migrated package.
1898
+ Until then, npm's MCP 0.4.1 requires core below 0.6.0 and is not compatible with core 0.7.x.
1899
+
1900
+ Five official packages live in this repository as Bun workspaces and publish as separate npm packages, versioned in lockstep with the core.
1901
+ The [site guide source files][package-guides] describe installation, requirements, configuration, and security considerations:
1902
+
1903
+ - [pi-roundtable-drawing][drawing-package]: [site guide source][drawing-guide] · local relationship maps, magic circles, sigils, sacred geometry, and card spreads.
1904
+ - [pi-roundtable-coding][coding-package]: [site guide source][coding-guide] · repository shelves and owner-approved Pi coding workers.
1905
+ - [pi-roundtable-web][web-package]: [site guide source][web-guide] · an owner-only console for conversations, transcripts, and memory notes with live updates.
1906
+ - [pi-roundtable-sandbox][sandbox-package]: [site guide source][sandbox-guide] · sealed guest channels on native Linux Docker with a host-only credential broker and allow-listed tools.
1907
+ - [pi-roundtable-mcp][mcp-package]: [site guide source][mcp-guide] · MCP connectors through a gateway and remote MCP endpoints for agent turns and owner-granted Discord channel tools.
1908
+
1909
+ [drawing-package]: https://github.com/wayne930242/pi-roundtable/blob/master/packages/drawing/README.md
1910
+ [coding-package]: https://github.com/wayne930242/pi-roundtable/blob/master/packages/coding/README.md
1911
+ [web-package]: https://github.com/wayne930242/pi-roundtable/blob/master/packages/web/README.md
1912
+ [sandbox-package]: https://github.com/wayne930242/pi-roundtable/blob/master/packages/sandbox/README.md
1913
+ [mcp-package]: https://github.com/wayne930242/pi-roundtable/blob/master/packages/mcp/README.md
1914
+ [package-guides]: https://github.com/wayne930242/pi-roundtable/tree/master/site/src/content/docs/plugins/
1915
+ [drawing-guide]: https://github.com/wayne930242/pi-roundtable/blob/master/site/src/content/docs/plugins/drawing-package.mdx
1916
+ [coding-guide]: https://github.com/wayne930242/pi-roundtable/blob/master/site/src/content/docs/plugins/coding-package.mdx
1917
+ [web-guide]: https://github.com/wayne930242/pi-roundtable/blob/master/site/src/content/docs/plugins/web-package.mdx
1918
+ [sandbox-guide]: https://github.com/wayne930242/pi-roundtable/blob/master/site/src/content/docs/plugins/sandbox-package.mdx
1919
+ [mcp-guide]: https://github.com/wayne930242/pi-roundtable/blob/master/site/src/content/docs/plugins/mcp-package.mdx
1920
+ [coding-source]: https://github.com/wayne930242/pi-roundtable/tree/master/packages/coding
1921
+ [sandbox-source]: https://github.com/wayne930242/pi-roundtable/tree/master/packages/sandbox
1922
+ [web-source]: https://github.com/wayne930242/pi-roundtable/tree/master/packages/web
1923
+ [drawing-source]: https://github.com/wayne930242/pi-roundtable/tree/master/packages/drawing
1924
+ [mcp-source]: https://github.com/wayne930242/pi-roundtable/tree/master/packages/mcp
1925
+ [codex-images-template]: https://github.com/wayne930242/pi-roundtable/blob/master/templates/official/codex-images/plugin.ts
1926
+ [dice-template]: https://github.com/wayne930242/pi-roundtable/blob/master/templates/official/dice/plugin.ts
1927
+ [release-notice-template]: https://github.com/wayne930242/pi-roundtable/blob/master/templates/official/release-notice/plugin.ts
1928
+
1929
+ Install only the packages your host uses; the core does not depend on these workspaces.
1888
1930
 
1889
1931
  | Plugin | What it does | What it needs |
1890
1932
  |---|---|---|
package/package.json CHANGED
@@ -1,9 +1,15 @@
1
1
  {
2
2
  "name": "pi-roundtable",
3
- "version": "0.7.0",
3
+ "version": "0.7.2",
4
4
  "description": "A plugin-driven Pi agent server for Discord",
5
5
  "type": "module",
6
6
  "license": "MIT",
7
+ "workspaces": [
8
+ "packages/*"
9
+ ],
10
+ "overrides": {
11
+ "pi-roundtable": "link:."
12
+ },
7
13
  "engines": {
8
14
  "bun": ">=1.3.0"
9
15
  },
@@ -45,7 +51,8 @@
45
51
  "scripts": {
46
52
  "typecheck": "tsc --noEmit",
47
53
  "lint": "biome check .",
48
- "test": "bun test"
54
+ "test": "bun test ./src ./scripts ./examples",
55
+ "check:packages": "bun run --workspaces typecheck && bun run --workspaces lint && bun run --workspaces test"
49
56
  },
50
57
  "dependencies": {
51
58
  "@babel/parser": "7.29.9",
@@ -63,7 +70,7 @@
63
70
  },
64
71
  "devDependencies": {
65
72
  "typescript": "7.0.2",
66
- "@biomejs/biome": "2.5.14",
73
+ "@biomejs/biome": "2.5.15",
67
74
  "@types/bun": "1.4.2",
68
75
  "pi-web-access": "0.35.0"
69
76
  }
@@ -1,5 +1,5 @@
1
1
  {
2
- "$schema": "https://biomejs.dev/schemas/2.5.14/schema.json",
2
+ "$schema": "https://biomejs.dev/schemas/2.5.15/schema.json",
3
3
  "vcs": { "enabled": true, "clientKind": "git", "useIgnoreFile": true },
4
4
  "formatter": { "indentStyle": "tab" },
5
5
  "linter": { "rules": { "preset": "recommended" } },
@@ -17,7 +17,7 @@
17
17
  "typebox": "1.3.34"
18
18
  },
19
19
  "devDependencies": {
20
- "@biomejs/biome": "2.5.14",
20
+ "@biomejs/biome": "2.5.15",
21
21
  "@types/bun": "1.4.2",
22
22
  "typescript": "7.0.2"
23
23
  }