Skip to content

Commit f04864a

Browse files
Merge remote-tracking branch 'origin/main' into legacy/config
2 parents 8327091 + c42b93d commit f04864a

100 files changed

Lines changed: 373 additions & 6163 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.changeset/refresh-scaffold-consumers.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22
"create-agent-bundle": patch
33
---
44

5-
Update the `minimal`, `mcp-server`, and `cli-tool` templates to `@types/node` 26.5.1, update the routed templates to React 19.3.0, and move the `mcp-server` template to `@types/react` 19.3.0 while preserving the `zod` 4.5.4 runtime peer floor. (#808)
5+
Update the `minimal`, `mcp-server`, and `cli-tool` templates to `@types/node` 26.5.1, update the routed templates to React 19.3.0, and move the `mcp-server` template to `@types/react` 19.3.0. (#808)
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"agent-bundle": minor
3+
---
4+
5+
Make `CompiledAgentRoute.resultSchemaState` required on every compiled route; require `{ kind: 'resource' }` for `agent-bundle/test` App and resource contract fixtures (bare `{}` rejected); stop reporting AB4840 for removed `before`/`preflight` event exports. (#840)
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"agent-bundle": patch
3+
---
4+
5+
Remove the unused runtime MCP App renderer from the bundled Workbench. App previews keep rendering through the server-issued sandbox frame; the package no longer ships `dist/workbench/src/mcp/APP-RENDERER-LICENSE`, and `NOTICE` and `THIRD_PARTY_NOTICES` drop the MCP Inspector `AppRenderer` attribution. (#845)

‎.changeset/zod-4-6-4-floor.md‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
"@agent-bundle/runtime": minor
3+
"agent-bundle": patch
4+
"create-agent-bundle": patch
5+
---
6+
7+
Raise the `@agent-bundle/runtime` `zod` peer floor from `^4.5.4` to `^4.6.4`: projects on `zod@4.5.x` or earlier must upgrade their direct `zod` dependency before installing the runtime, or npm rejects the required peer with `ERESOLVE`. `agent-bundle` now compiles its bundled schemas with `zod` 4.6.4, and the `cli-tool` and `mcp-server` scaffold templates pin `zod@4.6.4` to satisfy the new peer. (#842)

‎NOTICE‎

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,9 @@ LICENSE file distributed with it.
77
This distribution includes third-party material that is covered by its own
88
license and notices, which are preserved unmodified alongside that material:
99

10-
- The Agent Bundle Workbench MCP App renderer is derived from the MCP
11-
Inspector project (MIT License). See THIRD_PARTY_NOTICES and
12-
src/mcp/APP-RENDERER-LICENSE, which the agent-bundle package ships under
13-
dist/workbench/.
10+
- The Agent Bundle Workbench bundles the xterm.js terminal emulator (MIT
11+
License). See THIRD_PARTY_NOTICES, which the agent-bundle package ships
12+
under dist/workbench/.
1413

1514
- The rsc-markdown-stream package (packages/rsc-markdown-stream) was
1615
imported from https://github.com/ScriptedAlchemy/rsc-markdown-stream at

‎docs/architecture/rsc-runtime-workbench.md‎

Lines changed: 14 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -62,16 +62,21 @@ packages/
6262
tests/host-adapters.native.test.ts
6363
tests/host-adapters.test.ts
6464
tests/mcp-app-binding-service.test.ts
65+
tests/mcp-app-bridge-cancellation.test.ts
6566
tests/mcp-app-bridge.test.ts
67+
tests/mcp-app-diagnostics.test.ts
6668
tests/mcp-app-host-profiles.test.ts
6769
tests/mcp-app-metadata.test.ts
6870
tests/mcp-app-preview-service.test.ts
6971
tests/mcp-app-routes.test.ts
7072
tests/mcp-app-runtime-binding-service.test.ts
7173
tests/mcp-app-runtime-preview-service.test.ts
7274
tests/mcp-app-sandbox.test.ts
75+
tests/mcp-apps-compile.test.ts
7376
tests/mcp-session-routes.test.ts
7477
tests/mcp-session-service.test.ts
78+
tests/mcp-session-trace-publisher.test.ts
79+
tests/native-host-sessions.test.ts
7580
tests/normalization.test.ts
7681
tests/playground-service.test.ts
7782
tests/portable-adapter.test.ts
@@ -91,21 +96,13 @@ packages/
9196
scripts/capture-runtime-playground.mjs
9297
src/main.tsx
9398
src/mcp/mcp-app-client.ts
94-
src/mcp/mcp-app-frame.tsx
9599
src/mcp/mcp-app-preview.tsx
96100
src/mcp/mcp-page.tsx
97101
src/mcp/mcp-session-controller.ts
98102
src/mcp/mcp-session-model.ts
99-
src/mcp/runtime-app-bridge.ts
100-
src/mcp/runtime-consent-dialog.tsx
101-
src/mcp/runtime-consent-queue.ts
102-
src/mcp/runtime-mcp-handoff.ts
103103
src/project-client.ts
104104
src/runtime-client.ts
105-
src/runtime-inspector.tsx
106105
src/runtime-model.ts
107-
src/runtime-playground.tsx
108-
src/runtime-stage.tsx
109106
src/styles.css
110107
tests/helpers/runtime-playground-fixture.ts
111108
tests/mcp-app-client.test.ts
@@ -117,21 +114,11 @@ packages/
117114
tests/mcp-session-controller.test.ts
118115
tests/mcp-session-model.test.ts
119116
tests/mcp-session-timeout.e2e.test.ts
120-
tests/runtime-app-bridge.test.ts
117+
tests/runtime-backend.test.ts
121118
tests/runtime-client.test.ts
122-
tests/runtime-consent-dialog.test.ts
123-
tests/runtime-consent-queue.test.ts
124119
tests/runtime-contract-compile.test.ts
125-
tests/runtime-document-atoms-disposal.test.ts
126-
tests/runtime-inspector.test.ts
127-
tests/runtime-mcp-handoff.test.ts
120+
tests/runtime-controller.test.ts
128121
tests/runtime-model.test.ts
129-
tests/runtime-playground-capture-cleanup.test.ts
130-
tests/runtime-playground-capture.test.ts
131-
tests/runtime-playground-hmr.e2e.test.ts
132-
tests/runtime-playground.e2e.test.ts
133-
tests/runtime-playground.test.ts
134-
tests/runtime-stage.test.ts
135122
examples/
136123
rsc-agent-runtime/
137124
package.json
@@ -144,7 +131,9 @@ examples/
144131
src/build/serialize-definition.ts
145132
src/definition.ts
146133
src/dev/canonical-json.ts
134+
src/dev/compile-diagnostics.ts
147135
src/dev/definition-entry.ts
136+
src/dev/durable-tree.ts
148137
src/dev/environment-checkpoint-store.ts
149138
src/dev/generation-materializer.ts
150139
src/dev/inspection-security.ts
@@ -171,7 +160,6 @@ examples/
171160
src/runtime/contracts.ts
172161
src/runtime/state-definition.ts
173162
src/runtime/state-file.ts
174-
src/types/mcp-ext-apps-react.d.ts
175163
src/types/react-server-dom-rspack.d.ts
176164
src/types/styles.d.ts
177165
src/widget/App.tsx
@@ -186,7 +174,6 @@ examples/
186174
tests/host-artifacts.test.ts
187175
tests/host-extensions.test.tsx
188176
tests/http-security.test.ts
189-
tests/mcp-lowering.test.tsx
190177
tests/mcp-transports.integration.test.ts
191178
tests/rsc-hook.integration.test.ts
192179
tests/runtime-artifact-manifest.test.ts
@@ -251,12 +238,11 @@ are never gated. `ProjectStatus.hostAdoption` exposes the adopted epoch and the
251238
latest evaluation, and the Overview renders it as **Host adoption** beside the
252239
published build, so a rejected epoch is visible rather than silently skipped.
253240

254-
The RSC result tree is not the MCP App document. A current preview moves through
255-
`McpAppPreview`, `SecureAppRenderer`, the official App renderer, the
256-
generation-bound bridge, and the runtime client-surface proxy to an opaque-origin
257-
App iframe. The direct frame, bridge, handoff, proxy, message-limit, binding,
258-
preview-service, routes, mounted-page, and real-browser tests retained above
259-
are the single lifecycle boundary for that binding.
241+
The RSC result tree is not the MCP App document. An App route preview moves
242+
through `McpAppPreview`, which mounts the server-issued sandbox proxy iframe and
243+
drives it with the frame relay (`web-host/browser/frame-relay.ts`) over the
244+
Workbench App routes. The frame-relay, preview, routes, mounted-page, and
245+
real-browser tests retained above are the lifecycle boundary for that binding.
260246

261247
Portable is the baseline. ChatGPT/OpenAI and Claude Workbench profiles are local
262248
compatibility simulations, not vendor certification. Native terminal evidence

‎docs/diagnostics.md‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1153,8 +1153,8 @@ compile has no correct partial output, so every finding is an error
11531153
An event route uses a `.ts` lightweight handler or a `.tsx` rendered handler. A `.ts`
11541154
handler can return `ctx.render('./name.view.js', data)` to load its separate `.view.tsx`
11551155
sibling. Data must be strict JSON. The compiler uses explicit module boundaries without
1156-
extracting closures. Removed `before`/`preflight` exports, invalid view modules, and event
1157-
helper/path mismatches report `AB4840`. Definition helpers require a direct default call
1156+
extracting closures. Invalid view modules and event helper/path mismatches report
1157+
`AB4840`. Definition helpers require a direct default call
11581158
with an inline object literal; computed options and wrappers report `AB4810`.
11591159

11601160
Providers load on first `context.provider('<key>')` access. Concurrent readers share the
@@ -1203,7 +1203,7 @@ projections; no static provider subset declaration is required.
12031203
| `AB4837` | error | A compiled executable imports a compiler-carrying framework entry (`agent-bundle`, `/api`, `/config`, `/eval`, `/rstest`, `/test`, or `/test/browser`). The build checks requests after transformation and resolved package export identities, including aliases, and names the importing module. Type-only imports erased by the configured transform are legal. Source-only `inspect` and `validate` do not prove this dependency boundary. Keep compiler calls in a host process, or use `import type` for framework types. |
12041204
| `AB4838` | none | Retired. Schema imports are resolved by the bundler, not an inspection-time interpreter. |
12051205
| `AB4839` | none | Retired. Inspection does not follow schema alias chains. |
1206-
| `AB4840` | error | An event exports removed `before` or `preflight` bindings, its helper disagrees with the conventional path, or its `.view.tsx` sibling is not a valid rendered event module. Use a `.ts` handler and `ctx.render('./name.view.js', data)` for an explicit rendered view. |
1206+
| `AB4840` | error | An event helper disagrees with the conventional path, its `.view.tsx` sibling exports `config`, or its `.view.tsx` sibling is not a valid rendered event module. Use a `.ts` handler and `ctx.render('./name.view.js', data)` for an explicit rendered view. |
12071207
| `AB4843` | error | A `.cli.{ts,tsx}` module under `src/mcp/<server>/tools/` has no sibling tool route `<stem>.{ts,tsx}` (orphan), a `.cli.{ts,tsx}` module sits under `resources/`, `prompts/`, or `apps/`, or a second projection module (`<stem>.cli.ts` beside `<stem>.cli.tsx`) names the same tool, the first in path order wins and the second is reported. The suffix is reserved under `src/mcp/**` only. The message is `CLI projection <module> for tool:<server>/<tool>: <detail>.` (`has no sibling tool route …`, `<other module> already projects this tool …`); a misplaced module names no tool, so its message is `CLI projection <module>: sits under resources/, prompts/, or apps/ …`. `sourcePath` is the projection module's absolute path. Recovery: rename the file to match the sibling tool, or prefix `_` to park it, then inspect again. It is an error because a projection that cannot compile has no correct partial output. |
12081208
| `AB4844` | error | A CLI projection config does not satisfy its closed metadata contract, combines JSON input mode with flag mapping, or relaxes a required key without declaring `mapInput`. The generated runtime checks that a loaded `mapInput` is callable, awaits it, and validates the result through the original input schema. |
12091209
| `AB4845` | error | A CLI projection's grammar does not bind to the tool's contract: `flags`/`positionals` name a key absent from the tool's `RouteContract.input`; a `name`/alias is not kebab-case, is reserved (`help`, `json`, `ndjson`, `version`, and `yes` when confirm), or collides with another option's spelling or alias; `flags.<key>.name` or `flags.<key>.aliases` is declared on a key `positionals` consumes as a bare argument (`description`, `default`, and `required: false` still apply there); the tool's contract has a key `yes` while the command confirms, the shell keys parsed values by canonical key and strips `yes` as the confirmation, so no `name` override reaches the tool (`set confirm: false or rename the key`); or a `command` segment is not a safe identity segment. The message is `CLI projection <module> for tool:<server>/<tool>: <detail>.` and `sourcePath` is the projection module's absolute path. Recovery names the offending key or spelling and the accepted form, then says to inspect again. It is an error because a projection that cannot compile has no correct partial output. |

‎examples/audiobook-curator/package.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,6 @@
2929
"@types/react": "19.3.0",
3030
"agent-bundle": "workspace:*",
3131
"react": "19.3.0",
32-
"zod": "4.5.4"
32+
"zod": "4.6.4"
3333
}
3434
}

‎examples/host-test/package.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,6 @@
2727
"@types/react": "19.3.0",
2828
"agent-bundle": "workspace:*",
2929
"react": "19.3.0",
30-
"zod": "4.5.4"
30+
"zod": "4.6.4"
3131
}
3232
}

‎examples/mcp-app/package.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,6 @@
2121
"agent-bundle": "workspace:*",
2222
"playwright": "1.63.0",
2323
"react": "19.3.0",
24-
"zod": "4.5.4"
24+
"zod": "4.6.4"
2525
}
2626
}

0 commit comments

Comments
 (0)