@devframes/plugin-inspect 0.9.8 → 0.9.10
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/README.md +4 -4
- package/bin.mjs +1 -1
- package/dist/{types-CiRcsiuh.d.mts → index-D7_vorUr.d.mts} +42 -9
- package/dist/{cli.d.mts → node/cli.d.mts} +2 -2
- package/dist/{cli.mjs → node/cli.mjs} +3 -3
- package/dist/node/index.d.mts +2 -11
- package/dist/node/index.mjs +2 -12
- package/dist/{rpc → node/rpc}/index.d.mts +2 -3
- package/dist/node/rpc/index.mjs +2 -0
- package/dist/node/setup.d.mts +11 -0
- package/dist/node/setup.mjs +12 -0
- package/dist/{src-DM5I2krP.mjs → node-Bxhwj-lw.mjs} +9 -4
- package/dist/{rpc-IoEVPxbU.mjs → rpc-C0wtIiYp.mjs} +24 -24
- package/package.json +16 -14
- package/dist/client/index.d.mts +0 -11
- package/dist/client/index.mjs +0 -12
- package/dist/index-BeAbhMoX.d.mts +0 -36
- package/dist/index.d.mts +0 -3
- package/dist/index.mjs +0 -2
- package/dist/rpc/index.mjs +0 -2
package/README.md
CHANGED
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
A built-in devframe that inspects *its own* connection (and, when mounted in a
|
|
8
8
|
hub, the hub's): browse every registered RPC function with its metadata,
|
|
9
9
|
invoke read-only `query`/`static` functions and inspect the results, watch
|
|
10
|
-
shared-state keys update live, explore the agent-exposed API, and
|
|
11
|
-
running against a live backend
|
|
10
|
+
shared-state keys update live, explore the agent-exposed API, and (while
|
|
11
|
+
running against a live backend) list the other devframe dev servers running
|
|
12
12
|
alongside it.
|
|
13
13
|
|
|
14
14
|
Ported in spirit from the RPC & State panels of
|
|
@@ -21,7 +21,7 @@ framework-neutral client (`connectDevframe`, `rpc.sharedState`) with a Vue + Vit
|
|
|
21
21
|
pnpx @devframes/plugin-inspect
|
|
22
22
|
```
|
|
23
23
|
|
|
24
|
-
Opens the inspector against a fresh standalone devframe connection
|
|
24
|
+
Opens the inspector against a fresh standalone devframe connection, useful as a
|
|
25
25
|
reference and for poking at the introspection RPCs themselves.
|
|
26
26
|
|
|
27
27
|
## Mount into a Vite host
|
|
@@ -56,7 +56,7 @@ All functions are namespaced `devframes:plugin:inspect:*`:
|
|
|
56
56
|
| `list-functions` | `query` (snapshot) | Every registered RPC function with metadata (type, JSON-serializable/snapshot flags, args/return JSON Schema, agent exposure). |
|
|
57
57
|
| `invoke` | `action` | Invokes a read-only `query`/`static` function by name and returns a result envelope. Refuses `action`/`event` functions. |
|
|
58
58
|
| `list-state-keys` | `query` (snapshot) | The keys of every shared-state entry on the connection. |
|
|
59
|
-
| `describe-agent` | `query` (snapshot) | The agent manifest
|
|
59
|
+
| `describe-agent` | `query` (snapshot) | The agent manifest: tools and readable resources. |
|
|
60
60
|
| `list-instances` | `query` (live) | Every devframe dev server currently running on the machine, discovered through the shared instance registry. Powers the read-only Instances tab. |
|
|
61
61
|
|
|
62
62
|
The three snapshot `query` functions are agent-exposed (read-only) and bake into
|
package/bin.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
//#region src/types.d.ts
|
|
1
|
+
import { DevframeDefinition } from "devframe";
|
|
2
|
+
//#region src/node/types.d.ts
|
|
3
3
|
/**
|
|
4
4
|
* Agent-exposure projection surfaced for each RPC function. Mirrors the
|
|
5
5
|
* serializable fields of `RpcFunctionAgentOptions` (the handler-free
|
|
@@ -14,14 +14,14 @@ interface RpcFunctionAgentInfo {
|
|
|
14
14
|
}
|
|
15
15
|
/**
|
|
16
16
|
* Serializable description of a single registered RPC function. Returned
|
|
17
|
-
* by `devframes:plugin:inspect:list-functions`. JSON-safe by construction
|
|
18
|
-
*
|
|
17
|
+
* by `devframes:plugin:inspect:list-functions`. JSON-safe by construction:
|
|
18
|
+
* Standard Schema args/return schemas are projected to JSON Schema (best
|
|
19
19
|
* effort), never sent as live objects.
|
|
20
20
|
*/
|
|
21
21
|
interface RpcFunctionInfo {
|
|
22
22
|
/** Full namespaced function name (e.g. `my-plugin:do-thing`). */
|
|
23
23
|
name: string;
|
|
24
|
-
/** Function type
|
|
24
|
+
/** Function type: `query`, `static`, `action`, or `event`. */
|
|
25
25
|
type: 'query' | 'static' | 'action' | 'event';
|
|
26
26
|
/** Whether args/return are declared strictly JSON-serializable. */
|
|
27
27
|
jsonSerializable: boolean;
|
|
@@ -52,7 +52,7 @@ interface RpcFunctionInfo {
|
|
|
52
52
|
* Serializable projection of a single command registered on a hub's
|
|
53
53
|
* commands host (`DevframeServerCommandEntry`/`DevframeCommandBase` in
|
|
54
54
|
* `@devframes/hub`), returned by `devframes:plugin:inspect:list-commands`.
|
|
55
|
-
* Populated only when this connection is mounted inside a hub
|
|
55
|
+
* Populated only when this connection is mounted inside a hub; a plain
|
|
56
56
|
* devframe connection (no hub) returns an empty list.
|
|
57
57
|
*/
|
|
58
58
|
interface DevframeInspectCommandInfo {
|
|
@@ -74,7 +74,7 @@ interface DevframeInspectCommandInfo {
|
|
|
74
74
|
/**
|
|
75
75
|
* Serializable projection of a single running devframe instance discovered
|
|
76
76
|
* in the machine-wide instance registry (`~/.devframe/instances/`), returned
|
|
77
|
-
* by `devframes:plugin:inspect:list-instances`. A live, node-only view
|
|
77
|
+
* by `devframes:plugin:inspect:list-instances`. A live, node-only view; the
|
|
78
78
|
* inspector's Instances tab renders these as a read-only directory of the
|
|
79
79
|
* other devframes running alongside this one.
|
|
80
80
|
*/
|
|
@@ -89,7 +89,7 @@ interface DevframeInspectInstanceInfo {
|
|
|
89
89
|
origin: string;
|
|
90
90
|
/** Base path the devframe is mounted at (trailing slash). */
|
|
91
91
|
basePath: string;
|
|
92
|
-
/** Full SPA URL (`origin` + `basePath`)
|
|
92
|
+
/** Full SPA URL (`origin` + `basePath`), the link the tab opens. */
|
|
93
93
|
url: string;
|
|
94
94
|
/** Process id of the instance's dev server. */
|
|
95
95
|
pid: number;
|
|
@@ -122,4 +122,37 @@ interface InvokeResult {
|
|
|
122
122
|
durationMs: number;
|
|
123
123
|
}
|
|
124
124
|
//#endregion
|
|
125
|
-
|
|
125
|
+
//#region src/node/index.d.ts
|
|
126
|
+
interface InspectDevframeOptions {
|
|
127
|
+
/** Override the devframe id (and default CLI command / mount path). */
|
|
128
|
+
id?: string;
|
|
129
|
+
/** Override the display name shown in a host dock. */
|
|
130
|
+
name?: string;
|
|
131
|
+
/** Override the dock icon. */
|
|
132
|
+
icon?: string;
|
|
133
|
+
/**
|
|
134
|
+
* Override the mount path. Left unset, the SPA mounts at `/` standalone
|
|
135
|
+
* and `/__<id>/` when hosted (Vite/embedded).
|
|
136
|
+
*/
|
|
137
|
+
basePath?: string;
|
|
138
|
+
/** Preferred standalone CLI port. */
|
|
139
|
+
port?: number;
|
|
140
|
+
/**
|
|
141
|
+
* Require the trust handshake on the standalone server. Enabled by
|
|
142
|
+
* default; `--open` embeds the current OTP in the opened URL, so the
|
|
143
|
+
* tab authenticates automatically without extra prompts. Hosted adapters
|
|
144
|
+
* manage their own auth and ignore this.
|
|
145
|
+
*/
|
|
146
|
+
auth?: boolean;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Build a {@link DevframeDefinition} for the Devframe Inspector. The
|
|
150
|
+
* same definition runs standalone (`/cli`, `/build`) and mounts
|
|
151
|
+
* into a host (`/vite`, hub).
|
|
152
|
+
*
|
|
153
|
+
* @experimental This plugin is experimental and may change without a major
|
|
154
|
+
* version bump until it stabilizes.
|
|
155
|
+
*/
|
|
156
|
+
declare function createInspectDevframe(options?: InspectDevframeOptions): DevframeDefinition;
|
|
157
|
+
//#endregion
|
|
158
|
+
export { InvokeResult as a, DevframeInspectInstanceInfo as i, createInspectDevframe as n, RpcFunctionInfo as o, DevframeInspectCommandInfo as r, InspectDevframeOptions as t };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { CacHandle } from "devframe/adapters/cac";
|
|
2
|
-
//#region src/cli.d.ts
|
|
2
|
+
//#region src/node/cli.d.ts
|
|
3
3
|
/**
|
|
4
|
-
* Build the standalone CLI for the inspector
|
|
4
|
+
* Build the standalone CLI for the inspector; backs the package `bin`
|
|
5
5
|
* (`devframe-inspect`) and `pnpx @devframes/plugin-inspect`. Wraps the
|
|
6
6
|
* default {@link createInspectDevframe} definition with devframe's
|
|
7
7
|
* `dev` / `build` / `mcp` command shell.
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { t as createInspectDevframe } from "
|
|
1
|
+
import { t as createInspectDevframe } from "../node-Bxhwj-lw.mjs";
|
|
2
2
|
import { createCac } from "devframe/adapters/cac";
|
|
3
|
-
//#region src/cli.ts
|
|
3
|
+
//#region src/node/cli.ts
|
|
4
4
|
/**
|
|
5
|
-
* Build the standalone CLI for the inspector
|
|
5
|
+
* Build the standalone CLI for the inspector; backs the package `bin`
|
|
6
6
|
* (`devframe-inspect`) and `pnpx @devframes/plugin-inspect`. Wraps the
|
|
7
7
|
* default {@link createInspectDevframe} definition with devframe's
|
|
8
8
|
* `dev` / `build` / `mcp` command shell.
|
package/dist/node/index.d.mts
CHANGED
|
@@ -1,11 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
//#region src/node/index.d.ts
|
|
4
|
-
/**
|
|
5
|
-
* Register the inspector's introspection RPC functions on a devframe
|
|
6
|
-
* node context. Called from the definition's `setup(ctx)` and reusable
|
|
7
|
-
* by host adapters that wire their own context.
|
|
8
|
-
*/
|
|
9
|
-
declare function setupInspect(ctx: DevframeNodeContext): void;
|
|
10
|
-
//#endregion
|
|
11
|
-
export { serverFunctions, setupInspect };
|
|
1
|
+
import { a as InvokeResult, n as createInspectDevframe, o as RpcFunctionInfo, r as DevframeInspectCommandInfo, t as InspectDevframeOptions } from "../index-D7_vorUr.mjs";
|
|
2
|
+
export { type DevframeInspectCommandInfo, InspectDevframeOptions, type InvokeResult, type RpcFunctionInfo, createInspectDevframe, createInspectDevframe as default };
|
package/dist/node/index.mjs
CHANGED
|
@@ -1,12 +1,2 @@
|
|
|
1
|
-
import { t as
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Register the inspector's introspection RPC functions on a devframe
|
|
5
|
-
* node context. Called from the definition's `setup(ctx)` and reusable
|
|
6
|
-
* by host adapters that wire their own context.
|
|
7
|
-
*/
|
|
8
|
-
function setupInspect(ctx) {
|
|
9
|
-
for (const fn of serverFunctions) ctx.rpc.register(fn);
|
|
10
|
-
}
|
|
11
|
-
//#endregion
|
|
12
|
-
export { serverFunctions, setupInspect };
|
|
1
|
+
import { t as createInspectDevframe } from "../node-Bxhwj-lw.mjs";
|
|
2
|
+
export { createInspectDevframe, createInspectDevframe as default };
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import "../index-BeAbhMoX.mjs";
|
|
1
|
+
import { a as InvokeResult, i as DevframeInspectInstanceInfo, o as RpcFunctionInfo, r as DevframeInspectCommandInfo } from "../../index-D7_vorUr.mjs";
|
|
3
2
|
import { RpcDefinitionsToFunctions } from "devframe/rpc";
|
|
4
|
-
//#region src/rpc/index.d.ts
|
|
3
|
+
//#region src/node/rpc/index.d.ts
|
|
5
4
|
/**
|
|
6
5
|
* The introspection RPC functions registered by the inspector plugin.
|
|
7
6
|
* Namespaced `devframes:plugin:inspect:*` per the plugin convention.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { serverFunctions } from "./rpc/index.mjs";
|
|
2
|
+
import { DevframeNodeContext } from "devframe";
|
|
3
|
+
//#region src/node/setup.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Register the inspector's introspection RPC functions on a devframe
|
|
6
|
+
* node context. Called from the definition's `setup(ctx)` and reusable
|
|
7
|
+
* by host adapters that wire their own context.
|
|
8
|
+
*/
|
|
9
|
+
declare function setupInspect(ctx: DevframeNodeContext): void;
|
|
10
|
+
//#endregion
|
|
11
|
+
export { serverFunctions, setupInspect };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { t as serverFunctions } from "../rpc-C0wtIiYp.mjs";
|
|
2
|
+
//#region src/node/setup.ts
|
|
3
|
+
/**
|
|
4
|
+
* Register the inspector's introspection RPC functions on a devframe
|
|
5
|
+
* node context. Called from the definition's `setup(ctx)` and reusable
|
|
6
|
+
* by host adapters that wire their own context.
|
|
7
|
+
*/
|
|
8
|
+
function setupInspect(ctx) {
|
|
9
|
+
for (const fn of serverFunctions) ctx.rpc.register(fn);
|
|
10
|
+
}
|
|
11
|
+
//#endregion
|
|
12
|
+
export { serverFunctions, setupInspect };
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { setupInspect } from "./node/
|
|
1
|
+
import { setupInspect } from "./node/setup.mjs";
|
|
2
2
|
import { defineDevframe } from "devframe";
|
|
3
3
|
//#region package.json
|
|
4
4
|
var name = "@devframes/plugin-inspect";
|
|
5
|
-
var version = "0.9.
|
|
5
|
+
var version = "0.9.10";
|
|
6
6
|
var description = "Devframe plugin that inspects the RPC registry, shared state, and agent surface of a connection.";
|
|
7
7
|
var homepage = "https://github.com/devframes/devframe#readme";
|
|
8
8
|
//#endregion
|
|
9
|
-
//#region src/index.ts
|
|
10
|
-
/** Default devframe id
|
|
9
|
+
//#region src/node/index.ts
|
|
10
|
+
/** Default devframe id, driving the hosted mount path `/__<id>/`. */
|
|
11
11
|
const DEFAULT_ID = "devframes_plugin_inspect";
|
|
12
12
|
const distDir = {
|
|
13
13
|
package: `${name}--assets`,
|
|
@@ -37,6 +37,11 @@ function createInspectDevframe(options = {}) {
|
|
|
37
37
|
command: id,
|
|
38
38
|
port: options.port ?? 9012,
|
|
39
39
|
distDir,
|
|
40
|
+
/**
|
|
41
|
+
* Gate the standalone server by default; `maybeOpenBrowser` folds the
|
|
42
|
+
* current OTP into the `--open` URL so the tab lands already trusted.
|
|
43
|
+
* Hosted adapters (Vite/hub) supply their own auth layer and ignore this.
|
|
44
|
+
*/
|
|
40
45
|
auth: options.auth ?? true
|
|
41
46
|
},
|
|
42
47
|
dock: { category: "~builtin" },
|
|
@@ -2,7 +2,7 @@ import { createDefineWrapperWithContext } from "devframe/rpc";
|
|
|
2
2
|
import { defineDiagnostics } from "devframe/utils/nostics";
|
|
3
3
|
import process from "node:process";
|
|
4
4
|
import { listLiveDevframeInstances } from "devframe/internal";
|
|
5
|
-
//#region src/rpc/functions/_define.ts
|
|
5
|
+
//#region src/node/rpc/functions/_define.ts
|
|
6
6
|
/**
|
|
7
7
|
* `defineRpcFunction` pre-bound to the framework-neutral
|
|
8
8
|
* {@link DevframeNodeContext}, so each inspector function's `setup(ctx)`
|
|
@@ -11,7 +11,7 @@ import { listLiveDevframeInstances } from "devframe/internal";
|
|
|
11
11
|
*/
|
|
12
12
|
const defineInspectRpc = createDefineWrapperWithContext();
|
|
13
13
|
//#endregion
|
|
14
|
-
//#region src/rpc/functions/describe-agent.ts
|
|
14
|
+
//#region src/node/rpc/functions/describe-agent.ts
|
|
15
15
|
/**
|
|
16
16
|
* Surface the agent-exposed surface of the connection: the unified
|
|
17
17
|
* manifest of tools (RPC functions flagged with `agent`, plus
|
|
@@ -32,7 +32,7 @@ const describeAgent = defineInspectRpc({
|
|
|
32
32
|
} })
|
|
33
33
|
});
|
|
34
34
|
//#endregion
|
|
35
|
-
//#region src/diagnostics.ts
|
|
35
|
+
//#region src/node/diagnostics.ts
|
|
36
36
|
/**
|
|
37
37
|
* Structured diagnostics for `@devframes/plugin-inspect`. Node-side only.
|
|
38
38
|
* Codes use the plugin-private `DP_INSPECT_` band (see the built-in
|
|
@@ -43,21 +43,21 @@ const diagnostics = defineDiagnostics({
|
|
|
43
43
|
docsBase: "https://devfra.me/errors",
|
|
44
44
|
codes: {
|
|
45
45
|
DP_INSPECT_0001: {
|
|
46
|
-
why: (p) => `Cannot invoke "${p.name}"
|
|
46
|
+
why: (p) => `Cannot invoke "${p.name}": no RPC function with that name is registered on this connection.`,
|
|
47
47
|
fix: "Call `devframes:plugin:inspect:list-functions` to see the registered names, or check for a typo."
|
|
48
48
|
},
|
|
49
49
|
DP_INSPECT_0002: {
|
|
50
|
-
why: (p) => `Refusing to invoke "${p.name}"
|
|
50
|
+
why: (p) => `Refusing to invoke "${p.name}": only read-only "query" and "static" functions are invokable from the inspector, but this one is "${p.type}".`,
|
|
51
51
|
fix: "The inspector deliberately blocks `action`/`event` functions to avoid triggering side effects. Invoke those through their own UI instead."
|
|
52
52
|
},
|
|
53
53
|
DP_INSPECT_0003: {
|
|
54
|
-
why: (p) => `Cannot execute command "${p.id}"
|
|
54
|
+
why: (p) => `Cannot execute command "${p.id}": this connection has no hub commands host.`,
|
|
55
55
|
fix: "Commands are a `@devframes/hub` feature. Mount this devframe inside a hub that registers commands via `ctx.commands.register()`, or check `devframes:plugin:inspect:list-commands` (returns an empty list outside a hub)."
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
58
|
});
|
|
59
59
|
//#endregion
|
|
60
|
-
//#region src/rpc/functions/_hub-commands.ts
|
|
60
|
+
//#region src/node/rpc/functions/_hub-commands.ts
|
|
61
61
|
function looksLikeHubCommandsHost(value) {
|
|
62
62
|
return !!value && typeof value === "object" && value.commands instanceof Map && typeof value.execute === "function";
|
|
63
63
|
}
|
|
@@ -76,7 +76,7 @@ function resolveHubCommands(ctx) {
|
|
|
76
76
|
* serializable shape the inspector sends over RPC, recursing into
|
|
77
77
|
* children. `hasHandler` survives the projection even though the hub's
|
|
78
78
|
* own `commands.list()` strips `handler` entirely before it's callable
|
|
79
|
-
* from here
|
|
79
|
+
* from here; reading the raw command straight off `host.commands`
|
|
80
80
|
* preserves that flag.
|
|
81
81
|
*/
|
|
82
82
|
function projectCommand(cmd) {
|
|
@@ -91,11 +91,11 @@ function projectCommand(cmd) {
|
|
|
91
91
|
};
|
|
92
92
|
}
|
|
93
93
|
//#endregion
|
|
94
|
-
//#region src/rpc/functions/execute-command.ts
|
|
94
|
+
//#region src/node/rpc/functions/execute-command.ts
|
|
95
95
|
/**
|
|
96
96
|
* Execute a hub command by id and return a result envelope, mirroring
|
|
97
97
|
* `devframes:plugin:inspect:invoke`. Unlike that function, this one is not
|
|
98
|
-
* gated to read-only types
|
|
98
|
+
* gated to read-only types, since a command is, by construction, something a
|
|
99
99
|
* user explicitly runs (unlike an arbitrary RPC `action`, which may be a
|
|
100
100
|
* side effect the inspector shouldn't fire unprompted).
|
|
101
101
|
*
|
|
@@ -132,12 +132,12 @@ const executeCommand = defineInspectRpc({
|
|
|
132
132
|
} })
|
|
133
133
|
});
|
|
134
134
|
//#endregion
|
|
135
|
-
//#region src/rpc/functions/invoke.ts
|
|
135
|
+
//#region src/node/rpc/functions/invoke.ts
|
|
136
136
|
const INVOKABLE_TYPES$1 = /* @__PURE__ */ new Set(["query", "static"]);
|
|
137
137
|
/**
|
|
138
138
|
* Invoke a read-only RPC function by name and return a result envelope.
|
|
139
139
|
*
|
|
140
|
-
* Deliberately gated to `query` / `static` functions
|
|
140
|
+
* Deliberately gated to `query` / `static` functions, because `action` and
|
|
141
141
|
* `event` functions may carry side effects, so the inspector refuses to
|
|
142
142
|
* fire them (`DP_INSPECT_0002`). Uses structured-clone serialization
|
|
143
143
|
* (default) so arbitrary return values round-trip without the strict-JSON
|
|
@@ -176,7 +176,7 @@ const invoke = defineInspectRpc({
|
|
|
176
176
|
} })
|
|
177
177
|
});
|
|
178
178
|
//#endregion
|
|
179
|
-
//#region src/rpc/functions/invoke-agent-tool.ts
|
|
179
|
+
//#region src/node/rpc/functions/invoke-agent-tool.ts
|
|
180
180
|
const invokeAgentTool = defineInspectRpc({
|
|
181
181
|
name: "devframes:plugin:inspect:invoke-agent-tool",
|
|
182
182
|
type: "action",
|
|
@@ -203,11 +203,11 @@ const invokeAgentTool = defineInspectRpc({
|
|
|
203
203
|
} })
|
|
204
204
|
});
|
|
205
205
|
//#endregion
|
|
206
|
-
//#region src/rpc/functions/list-commands.ts
|
|
206
|
+
//#region src/node/rpc/functions/list-commands.ts
|
|
207
207
|
/**
|
|
208
|
-
* Enumerate every command registered on the hub's commands host
|
|
208
|
+
* Enumerate every command registered on the hub's commands host (id,
|
|
209
209
|
* title, description, icon, category, whether it carries its own handler,
|
|
210
|
-
* and nested children
|
|
210
|
+
* and nested children) when this connection is mounted inside a hub
|
|
211
211
|
* (`@devframes/hub`). Returns an empty list on a plain devframe connection,
|
|
212
212
|
* so the inspector's Commands tab degrades gracefully rather than erroring.
|
|
213
213
|
* `snapshot: true` bakes the (possibly empty) list into the static dump so
|
|
@@ -231,7 +231,7 @@ const listCommands = defineInspectRpc({
|
|
|
231
231
|
} })
|
|
232
232
|
});
|
|
233
233
|
//#endregion
|
|
234
|
-
//#region src/rpc/functions/_schema.ts
|
|
234
|
+
//#region src/node/rpc/functions/_schema.ts
|
|
235
235
|
const FALLBACK_SCHEMA = Object.freeze({
|
|
236
236
|
type: "object",
|
|
237
237
|
additionalProperties: true
|
|
@@ -242,7 +242,7 @@ const FALLBACK_SCHEMA = Object.freeze({
|
|
|
242
242
|
* Uses the schema's own [Standard JSON Schema](https://standardschema.dev/)
|
|
243
243
|
* converter (`~standard.jsonSchema`, implemented by e.g. zod 4) when the
|
|
244
244
|
* validator provides one, and degrades to a permissive object schema
|
|
245
|
-
* otherwise (e.g. valibot, which has no native converter)
|
|
245
|
+
* otherwise (e.g. valibot, which has no native converter), so introspection
|
|
246
246
|
* never throws and never pulls in a converter library for a validator devframe
|
|
247
247
|
* doesn't otherwise depend on.
|
|
248
248
|
*/
|
|
@@ -276,7 +276,7 @@ function argsSchemaToJson(args) {
|
|
|
276
276
|
};
|
|
277
277
|
}
|
|
278
278
|
//#endregion
|
|
279
|
-
//#region src/rpc/functions/list-functions.ts
|
|
279
|
+
//#region src/node/rpc/functions/list-functions.ts
|
|
280
280
|
const INVOKABLE_TYPES = /* @__PURE__ */ new Set(["query", "static"]);
|
|
281
281
|
/**
|
|
282
282
|
* Enumerate every RPC function registered on the connection, projecting
|
|
@@ -290,7 +290,7 @@ const listFunctions = defineInspectRpc({
|
|
|
290
290
|
jsonSerializable: true,
|
|
291
291
|
snapshot: true,
|
|
292
292
|
agent: {
|
|
293
|
-
description: "List every RPC function registered on this devframe connection, with metadata (name, type, JSON-serializable/snapshot flags, args/return schema, agent exposure). Read-only
|
|
293
|
+
description: "List every RPC function registered on this devframe connection, with metadata (name, type, JSON-serializable/snapshot flags, args/return schema, agent exposure). Read-only, the canonical way to discover what the running devframe can do.",
|
|
294
294
|
title: "List RPC functions"
|
|
295
295
|
},
|
|
296
296
|
setup: (ctx) => ({ handler: async () => {
|
|
@@ -326,15 +326,15 @@ const listFunctions = defineInspectRpc({
|
|
|
326
326
|
} })
|
|
327
327
|
});
|
|
328
328
|
//#endregion
|
|
329
|
-
//#region src/rpc/functions/list-instances.ts
|
|
329
|
+
//#region src/node/rpc/functions/list-instances.ts
|
|
330
330
|
/**
|
|
331
331
|
* Enumerate every devframe dev server currently running on this machine,
|
|
332
332
|
* discovered through the shared instance registry (`~/.devframe/instances/`)
|
|
333
|
-
* with a `__connection.json` liveness probe
|
|
333
|
+
* with a `__connection.json` liveness probe, the same discovery that backs
|
|
334
334
|
* the `devframe connect` bin. Powers the inspector's read-only Instances tab.
|
|
335
335
|
*
|
|
336
336
|
* Deliberately **not** `snapshot` (the set of live processes is meaningless
|
|
337
|
-
* baked into a static dump
|
|
337
|
+
* baked into a static dump, so the Instances tab is hidden in `build`/`spa`
|
|
338
338
|
* mode) and **not** agent-exposed (the `devframe connect` bin already offers
|
|
339
339
|
* instance discovery to agents over MCP, so exposing it here would duplicate
|
|
340
340
|
* that surface).
|
|
@@ -362,7 +362,7 @@ const listInstances = defineInspectRpc({
|
|
|
362
362
|
} })
|
|
363
363
|
});
|
|
364
364
|
//#endregion
|
|
365
|
-
//#region src/rpc/index.ts
|
|
365
|
+
//#region src/node/rpc/index.ts
|
|
366
366
|
/**
|
|
367
367
|
* The introspection RPC functions registered by the inspector plugin.
|
|
368
368
|
* Namespaced `devframes:plugin:inspect:*` per the plugin convention.
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@devframes/plugin-inspect",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.9.
|
|
4
|
+
"version": "0.9.10",
|
|
5
5
|
"description": "Devframe plugin that inspects the RPC registry, shared state, and agent surface of a connection.",
|
|
6
6
|
"author": "Anthony Fu <anthonyfu117@hotmail.com>",
|
|
7
7
|
"license": "MIT",
|
|
@@ -21,13 +21,12 @@
|
|
|
21
21
|
],
|
|
22
22
|
"sideEffects": false,
|
|
23
23
|
"exports": {
|
|
24
|
-
".": "./dist/index.mjs",
|
|
25
|
-
"./
|
|
26
|
-
"./
|
|
27
|
-
"./node": "./dist/node/index.mjs",
|
|
24
|
+
".": "./dist/node/index.mjs",
|
|
25
|
+
"./cli": "./dist/node/cli.mjs",
|
|
26
|
+
"./node": "./dist/node/setup.mjs",
|
|
28
27
|
"./package.json": "./package.json"
|
|
29
28
|
},
|
|
30
|
-
"types": "./dist/index.d.mts",
|
|
29
|
+
"types": "./dist/node/index.d.mts",
|
|
31
30
|
"bin": {
|
|
32
31
|
"devframe-inspect": "./bin.mjs"
|
|
33
32
|
},
|
|
@@ -36,8 +35,8 @@
|
|
|
36
35
|
"dist"
|
|
37
36
|
],
|
|
38
37
|
"peerDependencies": {
|
|
39
|
-
"@devframes/plugin-inspect--assets": "0.9.
|
|
40
|
-
"devframe": "0.9.
|
|
38
|
+
"@devframes/plugin-inspect--assets": "0.9.10",
|
|
39
|
+
"devframe": "0.9.10",
|
|
41
40
|
"vite": "^7.0.0 || ^8.0.0"
|
|
42
41
|
},
|
|
43
42
|
"peerDependenciesMeta": {
|
|
@@ -53,9 +52,9 @@
|
|
|
53
52
|
},
|
|
54
53
|
"devDependencies": {
|
|
55
54
|
"@antfu/design": "^0.4.0",
|
|
56
|
-
"@devframes/hub": "0.9.
|
|
57
|
-
"@devframes/plugin-inspect--assets": "0.9.
|
|
58
|
-
"@devframes/vite": "0.9.
|
|
55
|
+
"@devframes/hub": "0.9.10",
|
|
56
|
+
"@devframes/plugin-inspect--assets": "0.9.10",
|
|
57
|
+
"@devframes/vite": "0.9.10",
|
|
59
58
|
"@iconify-json/ph": "^1.2.2",
|
|
60
59
|
"@standard-schema/spec": "^1.1.0",
|
|
61
60
|
"@storybook/addon-docs": "^10.5.10",
|
|
@@ -63,7 +62,7 @@
|
|
|
63
62
|
"@unocss/preset-icons": "^66.8.1",
|
|
64
63
|
"@vitejs/plugin-vue": "^6.0.8",
|
|
65
64
|
"colorjs.io": "^0.7.1",
|
|
66
|
-
"devframe": "0.9.
|
|
65
|
+
"devframe": "0.9.10",
|
|
67
66
|
"floating-vue": "^5.2.2",
|
|
68
67
|
"h3": "^2.0.1-rc.29",
|
|
69
68
|
"reka-ui": "^2.10.4",
|
|
@@ -76,12 +75,15 @@
|
|
|
76
75
|
"ws": "^8.21.3"
|
|
77
76
|
},
|
|
78
77
|
"scripts": {
|
|
79
|
-
"build": "tsdown && vite build --config
|
|
80
|
-
"
|
|
78
|
+
"build": "tsdown && vite build --config app/vite.config.ts",
|
|
79
|
+
"build:app": "vite build --config app/vite.config.ts",
|
|
81
80
|
"watch": "tsdown --watch",
|
|
81
|
+
"dev": "vite --config app/vite.config.ts --host",
|
|
82
|
+
"play": "pnpm run build && node playgrounds/server.mjs",
|
|
82
83
|
"cli:build": "node bin.mjs build --out-dir dist/static",
|
|
83
84
|
"storybook": "storybook dev -p 6012",
|
|
84
85
|
"build-storybook": "storybook build",
|
|
86
|
+
"typecheck": "tsc --noEmit",
|
|
85
87
|
"test": "vitest run"
|
|
86
88
|
}
|
|
87
89
|
}
|
package/dist/client/index.d.mts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { a as RpcFunctionAgentInfo, i as InvokeResult, n as DevframeInspectCommandInfo, o as RpcFunctionInfo, r as DevframeInspectInstanceInfo, t as AgentManifest } from "../types-CiRcsiuh.mjs";
|
|
2
|
-
import { DevframeConnectionStatus, DevframeRpcClient, DevframeRpcClientOptions } from "devframe/client";
|
|
3
|
-
//#region src/client/index.d.ts
|
|
4
|
-
/**
|
|
5
|
-
* Connect to the inspector's devframe backend. A thin, typed wrapper
|
|
6
|
-
* around devframe's {@link connectDevframe}; the SPA derives its base
|
|
7
|
-
* from `document.baseURI`, so no options are required in the common case.
|
|
8
|
-
*/
|
|
9
|
-
declare function connectInspect(options?: DevframeRpcClientOptions): Promise<DevframeRpcClient>;
|
|
10
|
-
//#endregion
|
|
11
|
-
export { type AgentManifest, type DevframeConnectionStatus, type DevframeInspectCommandInfo, type DevframeInspectInstanceInfo, type DevframeRpcClient, type InvokeResult, type RpcFunctionAgentInfo, type RpcFunctionInfo, connectInspect };
|
package/dist/client/index.mjs
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { connectDevframe } from "devframe/client";
|
|
2
|
-
//#region src/client/index.ts
|
|
3
|
-
/**
|
|
4
|
-
* Connect to the inspector's devframe backend. A thin, typed wrapper
|
|
5
|
-
* around devframe's {@link connectDevframe}; the SPA derives its base
|
|
6
|
-
* from `document.baseURI`, so no options are required in the common case.
|
|
7
|
-
*/
|
|
8
|
-
function connectInspect(options) {
|
|
9
|
-
return connectDevframe(options);
|
|
10
|
-
}
|
|
11
|
-
//#endregion
|
|
12
|
-
export { connectInspect };
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import "./types-CiRcsiuh.mjs";
|
|
2
|
-
import { DevframeDefinition } from "devframe";
|
|
3
|
-
//#region src/index.d.ts
|
|
4
|
-
interface InspectDevframeOptions {
|
|
5
|
-
/** Override the devframe id (and default CLI command / mount path). */
|
|
6
|
-
id?: string;
|
|
7
|
-
/** Override the display name shown in a host dock. */
|
|
8
|
-
name?: string;
|
|
9
|
-
/** Override the dock icon. */
|
|
10
|
-
icon?: string;
|
|
11
|
-
/**
|
|
12
|
-
* Override the mount path. Left unset, the SPA mounts at `/` standalone
|
|
13
|
-
* and `/__<id>/` when hosted (Vite/embedded).
|
|
14
|
-
*/
|
|
15
|
-
basePath?: string;
|
|
16
|
-
/** Preferred standalone CLI port. */
|
|
17
|
-
port?: number;
|
|
18
|
-
/**
|
|
19
|
-
* Require the trust handshake on the standalone server. Enabled by
|
|
20
|
-
* default — `--open` embeds the current OTP in the opened URL, so the
|
|
21
|
-
* tab authenticates automatically without extra prompts. Hosted adapters
|
|
22
|
-
* manage their own auth and ignore this.
|
|
23
|
-
*/
|
|
24
|
-
auth?: boolean;
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Build a {@link DevframeDefinition} for the Devframe Inspector. The
|
|
28
|
-
* same definition runs standalone (`/cli`, `/build`) and mounts
|
|
29
|
-
* into a host (`/vite`, hub).
|
|
30
|
-
*
|
|
31
|
-
* @experimental This plugin is experimental and may change without a major
|
|
32
|
-
* version bump until it stabilizes.
|
|
33
|
-
*/
|
|
34
|
-
declare function createInspectDevframe(options?: InspectDevframeOptions): DevframeDefinition;
|
|
35
|
-
//#endregion
|
|
36
|
-
export { createInspectDevframe as n, InspectDevframeOptions as t };
|
package/dist/index.d.mts
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { i as InvokeResult, o as RpcFunctionInfo } from "./types-CiRcsiuh.mjs";
|
|
2
|
-
import { n as createInspectDevframe, t as InspectDevframeOptions } from "./index-BeAbhMoX.mjs";
|
|
3
|
-
export { InspectDevframeOptions, type InvokeResult, type RpcFunctionInfo, createInspectDevframe, createInspectDevframe as default };
|
package/dist/index.mjs
DELETED
package/dist/rpc/index.mjs
DELETED