Skip to content

Commit e390c54

Browse files
committed
Merge remote-tracking branch 'origin/main' into fix/webcontainer-dock-and-auth
2 parents bc98b1e + ff4c1c7 commit e390c54

21 files changed

Lines changed: 406 additions & 36 deletions

File tree

‎docs/content/1.guide/15.agent-native.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ ctx.agent.registerResource({
9696
})
9797
```
9898

99-
Every `ctx.rpc.sharedState` key is exposed as a `devframe://state/<key>` resource and via the **`devframe:state:read` tool** (wire `devframe_state_read`): no args → key list, `key` → its value. `exposeSharedState: false` (or a filter) on `createMcpServer` opts out.
99+
Every `ctx.rpc.sharedState` key is exposed as a `devframe://state/<key>` resource and via the **`devframe:state:read` tool** (wire `devframe_state_read`): no args → key list, `key` → its value. `exposeSharedState: false` (or a filter) on `createMcpServer`, or inside the `mcp` route options of the dev server and the hub, opts out.
100100

101101
## Starting the MCP server
102102

‎docs/content/1.guide/18.hub-initiate.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ Registrations are validated fail-fast: one module per type (`DF8108`), an existi
8989

9090
The hub's **single Auth** is one gate at the shared transport for every mounted devframe, built-ins, and the MCP route; one handshake (OTP, magic link, or pre-shared token) unlocks the namespace; `auth: false` disables it for localhost.
9191

92-
The aggregate MCP route mounts through the `'auto'` default once any mounted devframe (or an agent-flagged hub command) exposes agent tools; `mcp: true` forces it on, `mcp: false` off. It has its own origin gate, independent of this RPC Auth: the mounted route trusts same-machine callers, and `mcp: { authorization }` adds an identity check when the hub is reachable beyond loopback. The hub exposes one aggregate route over every mounted devframe's tools.
92+
The aggregate MCP route mounts through the `'auto'` default once any mounted devframe (or an agent-flagged hub command) exposes agent tools; `mcp: true` forces it on, `mcp: false` off. It has its own origin gate, independent of this RPC Auth: the mounted route trusts same-machine callers, and `mcp: { authorization }` adds an identity check when the hub is reachable beyond loopback. `mcp: { exposeSharedState }` takes `false` or a `(key) => boolean` filter to choose which shared-state keys agents can read through `devframe_state_read` and `devframe://state/<key>`. The hub exposes one aggregate route over every mounted devframe's tools.
9393

9494
## Singular vs hub mounting
9595

‎docs/content/2.adapters/7.mcp.md‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,16 @@ A request presents the bearer as `Authorization: Bearer <token>`, matched in con
5959

6060
Never place the token in a URL, in `__connection.json`, in the instance registry, in logs, or on the command line; it belongs only in configuration and the `Authorization` header.
6161

62+
### Choosing which shared state agents see
63+
64+
Every shared-state key is exposed to agents by default, through the `devframe_state_read` tool and the `devframe://state/<key>` resources. `exposeSharedState` on the route options narrows that to the keys a filter accepts, or turns it off with `false`. The UI keeps using the same states over RPC.
65+
66+
```ts
67+
devframeViteBridge(myDevframe, {
68+
mcp: { exposeSharedState: key => !key.startsWith('my-tool:private:') },
69+
})
70+
```
71+
6272
### Hosted bridges
6373

6474
Both bridges forward the setting to their side-car dev server, advertising the mounted endpoint in `__connection.json`:

‎docs/content/4.ecosystem.md‎

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,12 @@ packages:
8181
category: Hosts
8282
image: /images/ecosystem/logos/nuxt-devtools.svg
8383
color: "#00dc82"
84+
- name: Vue DevTools
85+
description: Devtools for debugging Vue.js applications
86+
author: vuejs
87+
repo: vuejs/devtools
88+
category: Devframes
89+
image: /images/ecosystem/logos/vue-devtools.svg
8490
- name: "@devframes/plugin-data-inspector"
8591
description: Queries live server objects with jora
8692
author: devframes
@@ -135,7 +141,7 @@ packages:
135141
author: devframes
136142
url: /add-ons/devframes/assets
137143
category: Devframes
138-
icon: i-ph:images-duotone
144+
icon: i-ph:folder-notch-open-duotone
139145
official: true
140146
- name: "@devframes/plugin-messages"
141147
description: Browses, filters and dismisses the hub message feed

‎docs/content/5.add-ons/1.devframes/8.assets.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: 'Assets'
33
navigation:
4-
icon: i-ph:image-square-duotone
4+
icon: i-ph:folder-notch-open-duotone
55
description: 'Browse, preview, and manage files in a directory, porting Nuxt DevTools'' Assets tab.'
66
---
77

‎docs/nuxt.config.ts‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,14 @@ export default defineNuxtConfig({
3131
},
3232
},
3333

34+
// Nuxt DevTools v4 imports the workspace `devframe`, which is unbuilt in
35+
// `docs:build` (Vercel), so keep it dev-only.
36+
devtools: { enabled: false },
37+
3438
// Dev only: mount the devframes into Nuxt DevTools. The imports are lazy,
3539
// so `docs:build` needs no built workspace packages.
3640
$development: {
41+
devtools: { enabled: true },
3742
// DevTools v4 sets `noExternals` to an array when it is unset. Nitro 2 reads
3843
// any truthy value as "inline everything" and fails on `playwright-core`.
3944
nitro: { noExternals: false },

‎docs/package.json‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
"@devframes/plugin-og": "workspace:*",
2929
"@nuxt/devtools-kit": "catalog:docs",
3030
"@types/d3-shape": "catalog:types",
31-
"devframe": "workspace:*"
31+
"devframe": "workspace:*",
32+
"satori": "catalog:docs"
3233
}
3334
}

0 commit comments

Comments
 (0)