Skip to content

Commit 46f6b9d

Browse files
committed
docs: update plugin names, namespaces, and code-server launcher UI
1 parent aa93874 commit 46f6b9d

8 files changed

Lines changed: 114 additions & 121 deletions
Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
# Plugin 01 — RPC & State self-inspector
22

3-
**Package:** `@devframes/plugin-rpc` · **Dir:** `plugins/rpc/`
3+
**Package:** `@devframes/plugin-inspect` · **Dir:** `plugins/inspect/`
44
**Inspiration:** port of the RPC + shared-state inspector panels from
55
`vitejs/devtools`.
66
**SPA stack (Axis B):** Vue + Vite (direct port).
7-
**Diagnostics band:** `DF90xx`.
7+
**Diagnostics band:** `DP_INSPECT_00xx`.
88

99
## Why first
1010

@@ -35,20 +35,20 @@ APIs every other plugin produces, so it is the fastest way to discover whether:
3535
- the agent surface (`ctx.agent`, the `BUILTIN_AGENT_RPC`) is browsable.
3636

3737
Expected gaps: missing introspection getters (may need a built-in
38-
`rpc:list-functions` style meta RPC in core), dump fidelity for non-JSON values,
38+
`devframe:list-functions` style meta RPC in core), dump fidelity for non-JSON values,
3939
and how a devframe inspects a connection it is *also* part of.
4040

4141
## Host integrations (Axis A)
4242

43-
- `.` — `createRpcInspectorDevframe()` factory + default `DevframeDefinition`.
44-
- `/cli` — `npx @devframes/plugin-rpc` opens the inspector against a target.
43+
- `.` — `createInspectDevframe()` factory + default `DevframeDefinition`.
44+
- `/cli` — `npx @devframes/plugin-inspect` opens the inspector against a target.
4545
- `/vite` — mount into a Vite host to inspect that host's devframe connection.
4646
- `/client` — Vue mount helpers + any dock `custom-render` modules.
4747

4848
## Package layout
4949

5050
```
51-
plugins/rpc/
51+
plugins/inspect/
5252
src/
5353
index.ts # `.` default DevframeDefinition + factory
5454
node/index.ts # `/node` setup(ctx): register introspection RPCs + docks
@@ -58,29 +58,29 @@ plugins/rpc/
5858
rpc/
5959
index.ts # serverFunctions tuple + DevframeRpcServerFunctions augment
6060
functions/
61-
list-functions.ts # rpc:list-functions (query, snapshot)
62-
invoke.ts # rpc:invoke (action) — gated to query fns
63-
list-state-keys.ts # rpc:list-state-keys (query)
64-
describe-agent.ts # rpc:describe-agent (query, snapshot)
61+
list-functions.ts # devframes-plugin-inspect:list-functions (query, snapshot)
62+
invoke.ts # devframes-plugin-inspect:invoke (action) — gated to query fns
63+
list-state-keys.ts # devframes-plugin-inspect:list-state-keys (query)
64+
describe-agent.ts # devframes-plugin-inspect:describe-agent (query, snapshot)
6565
spa/ # Vue + Vite UI
6666
bin.mjs
6767
test/
6868
```
6969

7070
## Node side
7171

72-
- RPC (namespaced `rpc:*`):
73-
- `rpc:list-functions` — `query`, `snapshot: true`, `jsonSerializable: true`:
72+
- RPC (namespaced `devframes-plugin-inspect:*`):
73+
- `devframes-plugin-inspect:list-functions` — `query`, `snapshot: true`, `jsonSerializable: true`:
7474
returns the registry with metadata. May need a core hook to read the registry;
7575
if absent, that is a tracked gap to add to `devframe` core.
76-
- `rpc:invoke` — `action`: invoke a named `query` function with validated args;
76+
- `devframes-plugin-inspect:invoke` — `action`: invoke a named `query` function with validated args;
7777
refuse `action`/mutating functions for safety.
78-
- `rpc:list-state-keys` — enumerate shared-state keys + current snapshots.
79-
- `rpc:describe-agent` — surface `ctx.agent` tools/resources.
80-
- Docks: a single `iframe` (or `custom-render`) dock `rpc:inspector` titled
78+
- `devframes-plugin-inspect:list-state-keys` — enumerate shared-state keys + current snapshots.
79+
- `devframes-plugin-inspect:describe-agent` — surface `ctx.agent` tools/resources.
80+
- Docks: a single `iframe` (or `custom-render`) dock `devframes-plugin-inspect:inspector` titled
8181
"RPC & State", icon e.g. `ph:plugs-duotone`.
8282
- Shared state observed (read-only): all keys; no new keys written except a small
83-
`rpc:inspector:ui` for persisted panel UI prefs (serializable).
83+
`devframes-plugin-inspect:inspector:ui` for persisted panel UI prefs (serializable).
8484

8585
## Client side
8686

@@ -93,8 +93,8 @@ plugins/rpc/
9393

9494
1. Scaffold package + tsdown three-config + alias/turbo/workspace wiring (this is
9595
the template all others copy).
96-
2. `rpc:list-functions` + Functions view (read-only).
97-
3. `rpc:invoke` for `query` functions + result rendering.
96+
2. `devframes-plugin-inspect:list-functions` + Functions view (read-only).
97+
3. `devframes-plugin-inspect:invoke` for `query` functions + result rendering.
9898
4. State view with live subscription + diff.
9999
5. Agent view; `static`/`spa` degradation; tsnapi snapshot + e2e.
100100

@@ -106,5 +106,5 @@ plugins/rpc/
106106
- How much of the `vitejs/devtools` Vue code ports cleanly vs. needs a rewrite
107107
against devframe's client (`connectDevframe`, `rpc.sharedState`) rather than
108108
Vite DevTools' kit client.
109-
- Safety model for `rpc:invoke` (which function types are invokable; argument
109+
- Safety model for `devframes-plugin-inspect:invoke` (which function types are invokable; argument
110110
validation surface).

‎todos/02-plugin-terminals.md‎

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
**Inspiration:** replace Vite DevTools' built-in terminal panel with a portable,
55
hub-native one.
66
**SPA stack (Axis B):** Vanilla TS + Vite (+ `@xterm/xterm`).
7-
**Diagnostics band:** `DF91xx`.
7+
**Diagnostics band:** `DP_TERMINALS_00xx`.
88

99
## What it does
1010

@@ -54,11 +54,11 @@ plugins/terminals/
5454
rpc/
5555
index.ts
5656
functions/
57-
spawn.ts # terminals:spawn (action) → ctx.terminals.startChildProcess
58-
terminate.ts # terminals:terminate (action)
59-
restart.ts # terminals:restart (action)
60-
write.ts # terminals:write (action) — stdin, IF host gains support
61-
list.ts # terminals:list (query)
57+
spawn.ts # devframes-plugin-terminals:spawn (action) → ctx.terminals.startChildProcess
58+
terminate.ts # devframes-plugin-terminals:terminate (action)
59+
restart.ts # devframes-plugin-terminals:restart (action)
60+
write.ts # devframes-plugin-terminals:write (action) — stdin, IF host gains support
61+
list.ts # devframes-plugin-terminals:list (query)
6262
spa/
6363
bin.mjs
6464
test/
@@ -68,26 +68,26 @@ plugins/terminals/
6868

6969
- Uses `ctx.terminals` directly; control RPCs are thin wrappers that call into the
7070
host and return session descriptors.
71-
- `terminals:spawn` validates the requested command against an allow-list passed
71+
- `devframes-plugin-terminals:spawn` validates the requested command against an allow-list passed
7272
to `createTerminalsDevframe` (security: never spawn arbitrary commands from the
73-
client without opt-in). Diagnostics `DF91xx` for disallowed command / unknown
73+
client without opt-in). Diagnostics `DP_TERMINALS_00xx` for disallowed command / unknown
7474
session / spawn failure.
7575
- Subscribes the UI to the `devframe:terminals` streaming channel and
7676
`devframe:terminals:updated` broadcast.
7777

7878
## Client side
7979

8080
- Vanilla TS + xterm.js. One xterm instance per session, fed from the streaming
81-
channel reader; tabs/list driven by `terminals:list` + the updated broadcast.
81+
channel reader; tabs/list driven by `devframes-plugin-terminals:list` + the updated broadcast.
8282
Toolbar: spawn (from allow-list), terminate, restart, clear.
8383

8484
## Milestones
8585

86-
1. Scaffold (copy from #1). Dock + `terminals:list` + render existing sessions'
86+
1. Scaffold (copy from #1). Dock + `devframes-plugin-terminals:list` + render existing sessions'
8787
buffered output.
8888
2. Live streaming via `devframe:terminals` channel into xterm; reconnect/replay.
89-
3. `terminals:spawn` / `terminate` / `restart` with allow-list.
90-
4. (If host extended) stdin `terminals:write` + resize/PTY.
89+
3. `devframes-plugin-terminals:spawn` / `terminate` / `restart` with allow-list.
90+
4. (If host extended) stdin `devframes-plugin-terminals:write` + resize/PTY.
9191
5. tsnapi snapshot + Playwright e2e (spawn → output → terminate).
9292

9393
## Open questions / risks

‎todos/03-plugin-git-dashboard.md‎

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
**Inspiration:** GitLens — repository insight surfaced inline.
55
**SPA stack (Axis B):** Vue + Vite (reuses inspector UI primitives), vanilla
66
fallback acceptable.
7-
**Diagnostics band:** `DF92xx`.
7+
**Diagnostics band:** `DP_GIT_00xx`.
88

99
## What it does
1010

@@ -25,7 +25,7 @@ watching + `json-render` + commands/docks**. Stresses:
2525
and the debounce behavior `createHubContext` applies in `dev` mode;
2626
- `json-render` driven docks (`ctx.createJsonRenderer`) as an alternative to a
2727
full custom SPA for some panels;
28-
- command-palette entries (`git:checkout`, `git:fetch`) via `ctx.commands`.
28+
- command-palette entries (`devframes-plugin-git:checkout`, `devframes-plugin-git:fetch`) via `ctx.commands`.
2929

3030
Expected gaps: efficient diffing of large repos over RPC, incremental updates vs.
3131
full snapshots, and error diagnostics for non-repo / detached-HEAD states.
@@ -51,14 +51,14 @@ plugins/git/
5151
rpc/
5252
index.ts
5353
functions/
54-
status.ts # git:status (query, snapshot)
55-
log.ts # git:log (query) — paginated
56-
diff.ts # git:diff (query)
57-
blame.ts # git:blame (query)
58-
branches.ts # git:branches (query)
59-
stage.ts # git:stage (action, write-gated)
60-
commit.ts # git:commit (action, write-gated)
61-
checkout.ts # git:checkout (action, write-gated)
54+
status.ts # devframes-plugin-git:status (query, snapshot)
55+
log.ts # devframes-plugin-git:log (query) — paginated
56+
diff.ts # devframes-plugin-git:diff (query)
57+
blame.ts # devframes-plugin-git:blame (query)
58+
branches.ts # devframes-plugin-git:branches (query)
59+
stage.ts # devframes-plugin-git:stage (action, write-gated)
60+
commit.ts # devframes-plugin-git:commit (action, write-gated)
61+
checkout.ts # devframes-plugin-git:checkout (action, write-gated)
6262
watcher.ts # HEAD/index watcher → shared-state push
6363
spa/
6464
bin.mjs
@@ -70,10 +70,10 @@ plugins/git/
7070
- Git access via `simple-git` (or `isomorphic-git` for zero-binary portability —
7171
decide in milestone 0; add to the `deps` catalog). Run commands relative to
7272
`ctx.workspaceRoot` / `ctx.cwd`.
73-
- Watcher updates `git:state` shared state (branch, ahead/behind, dirty counts) on
73+
- Watcher updates `devframes-plugin-git:state` shared state (branch, ahead/behind, dirty counts) on
7474
`.git/HEAD` / index changes; debounced.
7575
- Write RPCs only registered when `createGitDevframe({ write: true })`; otherwise
76-
omitted from the registry entirely (not just hidden). Diagnostics `DF92xx`:
76+
omitted from the registry entirely (not just hidden). Diagnostics `DP_GIT_00xx`:
7777
not-a-repo, dirty-tree-conflict, write-disabled.
7878

7979
## Client side
@@ -83,10 +83,10 @@ plugins/git/
8383

8484
## Milestones
8585

86-
1. Scaffold. `git:status` + Status view (read-only).
87-
2. `git:log` (paginated) + History; `git:diff` + Diff viewer.
88-
3. Live `git:state` watcher → shared state.
89-
4. `git:branches` + `git:blame`.
86+
1. Scaffold. `devframes-plugin-git:status` + Status view (read-only).
87+
2. `devframes-plugin-git:log` (paginated) + History; `devframes-plugin-git:diff` + Diff viewer.
88+
3. Live `devframes-plugin-git:state` watcher → shared state.
89+
4. `devframes-plugin-git:branches` + `devframes-plugin-git:blame`.
9090
5. Opt-in write actions + command-palette entries.
9191
6. tsnapi snapshot + e2e against a temp-repo fixture.
9292

‎todos/04-plugin-og-viewer.md‎

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
**Inspiration:** Nuxt DevTools' Open Graph image viewer.
55
**SPA stack (Axis B):** Nuxt (static export) — the marquee proof that a Nuxt-built
66
SPA is a drop-in devframe client.
7-
**Diagnostics band:** `DF93xx`.
7+
**Diagnostics band:** `DP_OG_00xx`.
88

99
## What it does
1010

@@ -54,22 +54,22 @@ plugins/og/
5454
rpc/
5555
index.ts
5656
functions/
57-
scan-routes.ts # og:scan-routes (query, snapshot)
58-
resolve-meta.ts # og:resolve-meta (query) — fetch+parse a URL's head
59-
render-image.ts # og:render-image (query) — bytes / data URL
57+
scan-routes.ts # devframes-plugin-og:scan-routes (query, snapshot)
58+
resolve-meta.ts # devframes-plugin-og:resolve-meta (query) — fetch+parse a URL's head
59+
render-image.ts # devframes-plugin-og:render-image (query) — bytes / data URL
6060
spa/ # Nuxt app, output: 'export', assetPrefix relative
6161
bin.mjs
6262
test/
6363
```
6464

6565
## Node side
6666

67-
- `og:resolve-meta` fetches a target URL (or reads built HTML) and parses
67+
- `devframes-plugin-og:resolve-meta` fetches a target URL (or reads built HTML) and parses
6868
`og:*` / `twitter:*` meta into a structured snapshot.
69-
- `og:render-image` optionally renders via `satori` + `resvg` (add to catalog) or
69+
- `devframes-plugin-og:render-image` optionally renders via `satori` + `resvg` (add to catalog) or
7070
defers to a project-provided generator hook.
7171
- Build mode: emit a static OG report so `createBuild` output can be deployed and
72-
shared. Diagnostics `DF93xx`: unfetchable URL, parse failure, render failure.
72+
shared. Diagnostics `DP_OG_00xx`: unfetchable URL, parse failure, render failure.
7373

7474
## Client side
7575

@@ -81,9 +81,9 @@ plugins/og/
8181

8282
1. Scaffold + Nuxt SPA build wired to `cli.distDir` (prove Nuxt static export
8383
mounts and connects).
84-
2. `og:resolve-meta` + meta table + card preview.
85-
3. `og:scan-routes` to populate the route picker.
86-
4. `og:render-image` (satori) or generator-hook path.
84+
2. `devframes-plugin-og:resolve-meta` + meta table + card preview.
85+
3. `devframes-plugin-og:scan-routes` to populate the route picker.
86+
4. `devframes-plugin-og:render-image` (satori) or generator-hook path.
8787
5. `build` adapter snapshot (deployable report) + `spa.loader: 'query'`.
8888
6. tsnapi snapshot + e2e.
8989

‎todos/05-plugin-a11y-check.md‎

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
**Inspiration:** axe-core powered accessibility auditing, surfaced as a devtool.
55
**SPA stack (Axis B):** React via **rspack** — the proof that an rspack build
66
produces a valid static devframe SPA.
7-
**Diagnostics band:** `DF94xx`.
7+
**Diagnostics band:** `DP_A11Y_00xx`.
88

99
## What it does
1010

@@ -55,21 +55,21 @@ plugins/a11y/
5555
rpc/
5656
index.ts
5757
functions/
58-
report.ts # a11y:report (action) — client posts results
59-
scan-headless.ts # a11y:scan-headless (action) — node+Playwright run
60-
list-results.ts # a11y:list-results (query, snapshot)
58+
report.ts # devframes-plugin-a11y:report (action) — client posts results
59+
scan-headless.ts # devframes-plugin-a11y:scan-headless (action) — node+Playwright run
60+
list-results.ts # devframes-plugin-a11y:list-results (query, snapshot)
6161
spa/ # React, built with rspack
6262
bin.mjs
6363
test/
6464
```
6565

6666
## Node side
6767

68-
- `a11y:report` receives results from the in-page `clientScript`, stores them in
69-
`a11y:results` shared state, and fans violations into `ctx.messages` (one entry
70-
per violation, deduped by rule+target). Diagnostics `DF94xx`: scan failure,
68+
- `devframes-plugin-a11y:report` receives results from the in-page `clientScript`, stores them in
69+
`devframes-plugin-a11y:results` shared state, and fans violations into `ctx.messages` (one entry
70+
per violation, deduped by rule+target). Diagnostics `DP_A11Y_00xx`: scan failure,
7171
Playwright unavailable, invalid rule config.
72-
- `a11y:scan-headless` runs axe via Playwright against a URL (node-side), for the
72+
- `devframes-plugin-a11y:scan-headless` runs axe via Playwright against a URL (node-side), for the
7373
CLI/CI path.
7474

7575
## Client side
@@ -83,10 +83,10 @@ plugins/a11y/
8383

8484
1. Scaffold + rspack SPA build wired to `cli.distDir` (prove rspack static SPA
8585
mounts + connects).
86-
2. In-page `clientScript` scan → `a11y:report` → `a11y:results` shared state +
86+
2. In-page `clientScript` scan → `devframes-plugin-a11y:report` → `devframes-plugin-a11y:results` shared state +
8787
results dashboard.
8888
3. Violations → `ctx.messages` feed; node highlighting.
89-
4. `a11y:scan-headless` (Playwright) + CLI/CI report.
89+
4. `devframes-plugin-a11y:scan-headless` (Playwright) + CLI/CI report.
9090
5. `when`-clause-driven actions; tsnapi snapshot + e2e.
9191

9292
## Open questions / risks
Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
# Plugin 06 — MCP inspector
22

3-
**Package:** `@devframes/plugin-mcp` · **Dir:** `plugins/mcp/`
3+
**Package:** `@devframes/plugin-mcp-inspect` · **Dir:** `plugins/mcp-inspect/`
44
**Inspiration:** the MCP inspector; optional Vercel AI SDK / evals integration.
55
**SPA stack (Axis B):** Next (static export) — React + the Vercel ecosystem.
6-
**Diagnostics band:** `DF95xx`.
6+
**Diagnostics band:** `DP_MCP_00xx`.
77

88
## What it does
99

@@ -40,15 +40,15 @@ core addition), and agent-surface metadata richness.
4040
## Host integrations (Axis A)
4141

4242
- `.` — `createMcpInspectorDevframe(options)` (target server config).
43-
- `/cli` — `npx @devframes/plugin-mcp` → connect to an MCP server from the terminal.
43+
- `/cli` — `npx @devframes/plugin-mcp-inspect` → connect to an MCP server from the terminal.
4444
- `/next` — first-class Next integration (the SPA is Next; host integration too).
4545
- `/vite` — generic Vite host mount.
4646
- `/client` — Next-built SPA + connect glue.
4747

4848
## Package layout
4949

5050
```
51-
plugins/mcp/
51+
plugins/mcp-inspect/
5252
src/
5353
index.ts
5454
node/index.ts
@@ -59,12 +59,12 @@ plugins/mcp/
5959
rpc/
6060
index.ts
6161
functions/
62-
connect.ts # mcp:connect (action) — open a client to a server
63-
list-tools.ts # mcp:list-tools (query, snapshot)
64-
invoke-tool.ts # mcp:invoke-tool (action)
65-
list-resources.ts # mcp:list-resources (query)
66-
read-resource.ts # mcp:read-resource (query)
67-
run-eval.ts # mcp:run-eval (action) — stretch, Vercel AI SDK
62+
connect.ts # devframes-plugin-mcp-inspect:connect (action) — open a client to a server
63+
list-tools.ts # devframes-plugin-mcp-inspect:list-tools (query, snapshot)
64+
invoke-tool.ts # devframes-plugin-mcp-inspect:invoke-tool (action)
65+
list-resources.ts # devframes-plugin-mcp-inspect:list-resources (query)
66+
read-resource.ts # devframes-plugin-mcp-inspect:read-resource (query)
67+
run-eval.ts # devframes-plugin-mcp-inspect:run-eval (action) — stretch, Vercel AI SDK
6868
spa/ # Next, output: 'export', assetPrefix relative
6969
bin.mjs
7070
test/
@@ -73,10 +73,10 @@ plugins/mcp/
7373
## Node side
7474

7575
- MCP client via `@modelcontextprotocol/sdk` (already a catalog dep; optional peer
76-
in core). Manage connections in `mcp:connections` shared state.
76+
in core). Manage connections in `devframes-plugin-mcp-inspect:connections` shared state.
7777
- Optional: expose devframe's *own* MCP server via `createMcpServer` and let the
7878
inspector connect to it (self-inspection loop).
79-
- Diagnostics `DF95xx`: connect failure, unsupported transport, tool-invoke error,
79+
- Diagnostics `DP_MCP_00xx`: connect failure, unsupported transport, tool-invoke error,
8080
eval-provider missing.
8181

8282
## Client side
@@ -88,8 +88,8 @@ plugins/mcp/
8888

8989
1. Scaffold + Next static-export SPA wired to `cli.distDir` (prove Next SPA mounts
9090
+ connects).
91-
2. `mcp:connect` (stdio) + `mcp:list-tools` + Tools browser.
92-
3. `mcp:invoke-tool` (schema-driven form) + response viewer.
91+
2. `devframes-plugin-mcp-inspect:connect` (stdio) + `devframes-plugin-mcp-inspect:list-tools` + Tools browser.
92+
3. `devframes-plugin-mcp-inspect:invoke-tool` (schema-driven form) + response viewer.
9393
4. Resources/prompts browse + read.
9494
5. Point at devframe's own `createMcpServer` (self-inspection); request log.
9595
6. (Stretch) Vercel AI SDK evals tab.

0 commit comments

Comments
 (0)