devframe 0.1.16 → 0.1.18

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.
Files changed (54) hide show
  1. package/dist/adapters/build.d.mts +1 -1
  2. package/dist/adapters/build.mjs +13 -6
  3. package/dist/adapters/cli.d.mts +1 -1
  4. package/dist/adapters/cli.mjs +6 -6
  5. package/dist/adapters/embedded.d.mts +1 -1
  6. package/dist/adapters/kit.d.mts +1 -1
  7. package/dist/adapters/mcp.d.mts +1 -1
  8. package/dist/adapters/mcp.mjs +2 -2
  9. package/dist/adapters/vite.d.mts +1 -1
  10. package/dist/adapters/vite.mjs +1 -1
  11. package/dist/client/index.d.mts +5 -4
  12. package/dist/client/index.mjs +1 -1
  13. package/dist/{client-4WrEozlH.mjs → client-CsR1_h3o.mjs} +14 -6
  14. package/dist/constants.d.mts +1 -1
  15. package/dist/{context-BrePWeyd.mjs → context-xQo1FcxX.mjs} +107 -56
  16. package/dist/{devtool-OJ3QW0ns.d.mts → devtool-CHT-4_OU.d.mts} +156 -48
  17. package/dist/helpers/nuxt/runtime/plugin.client.mjs +1 -1
  18. package/dist/index-Cei8vVcd.d.mts +140 -0
  19. package/dist/index.d.mts +4 -4
  20. package/dist/index.mjs +1 -1
  21. package/dist/node/index.d.mts +38 -10
  22. package/dist/node/index.mjs +4 -4
  23. package/dist/recipes/open-helpers.d.mts +5 -1
  24. package/dist/recipes/open-helpers.mjs +2 -2
  25. package/dist/rpc/index.d.mts +3 -2
  26. package/dist/rpc/index.mjs +4 -3
  27. package/dist/rpc/transports/ws-client.d.mts +1 -1
  28. package/dist/rpc/transports/ws-client.mjs +19 -4
  29. package/dist/rpc/transports/ws-server.d.mts +1 -1
  30. package/dist/rpc/transports/ws-server.mjs +19 -4
  31. package/dist/{rpc-9FNa3Inb.mjs → rpc-hbRk8qtt.mjs} +15 -33
  32. package/dist/serialization-CWcWE7x7.mjs +112 -0
  33. package/dist/{src-BoIqXRc9.mjs → src-DIKqQIjp.mjs} +1 -1
  34. package/dist/{static-dump-CQUC1aIW.mjs → static-dump-DwFfj4U_.mjs} +21 -6
  35. package/dist/types/index.d.mts +4 -4
  36. package/dist/{index-DvKDO5H8.d.mts → types-BkyzI9r4.d.mts} +35 -95
  37. package/dist/utils/events.d.mts +1 -1
  38. package/dist/utils/shared-state.d.mts +1 -1
  39. package/dist/utils/shared-state.mjs +1 -1
  40. package/dist/utils/state.d.mts +1 -1
  41. package/dist/utils/state.mjs +1 -1
  42. package/dist/utils/when.d.mts +1 -1
  43. package/dist/ws-client-CDGmViwt.d.mts +26 -0
  44. package/dist/{ws-server--IuUAaGi.d.mts → ws-server-Cu8tmZcF.d.mts} +12 -0
  45. package/package.json +1 -1
  46. package/dist/ws-client-CklfxUHE.d.mts +0 -17
  47. /package/dist/{_shared-CU6dE-VX.mjs → _shared-Bxa2_kq7.mjs} +0 -0
  48. /package/dist/{define-Bb4zh-Dc.mjs → define-CW9gLnyG.mjs} +0 -0
  49. /package/dist/{immer-HjMAm3b6.mjs → immer-DEqg5kOd.mjs} +0 -0
  50. /package/dist/{main-DpINGndA.mjs → main-BJD9t8dk.mjs} +0 -0
  51. /package/dist/{open-BtOOEldu.mjs → open-BMO2_-wC.mjs} +0 -0
  52. /package/dist/{server-DrBxa6ZV.mjs → server-DkJ2-s0Y.mjs} +0 -0
  53. /package/dist/{transports-BPUzHhI2.mjs → transports-4bqw6Fqg.mjs} +0 -0
  54. /package/dist/{when-CGLewRtm.d.mts → when-aBBXAEh5.d.mts} +0 -0
@@ -1,7 +1,7 @@
1
1
  import { t as import_dist } from "../human-id-CHS0s28X.mjs";
2
- import { a as RpcFunctionsHost, c as getInternalContext, d as DevToolsCommandsHost, f as DevToolsAgentHost, g as revokeAuthToken, h as revokeActiveConnectionsForToken, i as DevToolsLogsHost, l as internalContextMap, m as ContextUtils, n as DevToolsViewHost, o as createRpcSharedStateServerHost, r as DevToolsTerminalHost, s as DevToolsDockHost, t as createHostContext, u as createStorage } from "../context-BrePWeyd.mjs";
3
- import { n as createH3DevToolsHost, t as collectStaticRpcDump } from "../static-dump-CQUC1aIW.mjs";
4
- import { t as startHttpAndWs } from "../server-DrBxa6ZV.mjs";
2
+ import { _ as revokeAuthToken, a as RpcFunctionsHost, c as getInternalContext, d as DevToolsDiagnosticsHost, f as DevToolsCommandsHost, g as revokeActiveConnectionsForToken, h as ContextUtils, i as DevToolsMessagesHost, l as internalContextMap, n as DevToolsViewHost, o as createRpcSharedStateServerHost, p as DevToolsAgentHost, r as DevToolsTerminalHost, s as DevToolsDockHost, t as createHostContext, u as createStorage } from "../context-xQo1FcxX.mjs";
3
+ import { n as createH3DevToolsHost, t as collectStaticRpcDump } from "../static-dump-DwFfj4U_.mjs";
4
+ import { t as startHttpAndWs } from "../server-DkJ2-s0Y.mjs";
5
5
  import { isIP } from "node:net";
6
6
  //#region src/node/auth-state.ts
7
7
  let pendingAuth = null;
@@ -66,4 +66,4 @@ function normalizeHttpServerUrl(host, port) {
66
66
  return `http://${host === "127.0.0.1" ? "localhost" : isIP(host) === 6 ? `[${host}]` : host}:${port}`;
67
67
  }
68
68
  //#endregion
69
- export { ContextUtils, DevToolsAgentHost, DevToolsCommandsHost, DevToolsDockHost, DevToolsLogsHost, DevToolsTerminalHost, DevToolsViewHost, RpcFunctionsHost, abortPendingAuth, collectStaticRpcDump, consumeTempAuthToken, createH3DevToolsHost, createHostContext, createRpcSharedStateServerHost, createStorage, getInternalContext, getPendingAuth, getTempAuthToken, internalContextMap, isObject, normalizeHttpServerUrl, refreshTempAuthToken, revokeActiveConnectionsForToken, revokeAuthToken, setPendingAuth, startHttpAndWs };
69
+ export { ContextUtils, DevToolsAgentHost, DevToolsCommandsHost, DevToolsDiagnosticsHost, DevToolsDockHost, DevToolsMessagesHost, DevToolsTerminalHost, DevToolsViewHost, RpcFunctionsHost, abortPendingAuth, collectStaticRpcDump, consumeTempAuthToken, createH3DevToolsHost, createHostContext, createRpcSharedStateServerHost, createStorage, getInternalContext, getPendingAuth, getTempAuthToken, internalContextMap, isObject, normalizeHttpServerUrl, refreshTempAuthToken, revokeActiveConnectionsForToken, revokeAuthToken, setPendingAuth, startHttpAndWs };
@@ -1,4 +1,4 @@
1
- import { A as RpcFunctionSetupResult, P as Thenable, _ as RpcDump, w as RpcFunctionAgentOptions } from "../index-DvKDO5H8.mjs";
1
+ import { b as RpcFunctionSetupResult, m as RpcFunctionAgentOptions, s as RpcDump, w as Thenable } from "../types-BkyzI9r4.mjs";
2
2
  import * as v from "valibot";
3
3
 
4
4
  //#region src/recipes/open-helpers.d.ts
@@ -29,6 +29,7 @@ declare const openInEditor: {
29
29
  cacheable?: boolean;
30
30
  args: readonly [v.StringSchema<undefined>];
31
31
  returns: v.VoidSchema<undefined>;
32
+ jsonSerializable?: boolean;
32
33
  agent?: RpcFunctionAgentOptions;
33
34
  setup?: ((context: undefined) => Thenable<RpcFunctionSetupResult<[string], void>>) | undefined;
34
35
  handler?: ((args_0: string) => void) | undefined;
@@ -55,6 +56,7 @@ declare const openInFinder: {
55
56
  cacheable?: boolean;
56
57
  args: readonly [v.StringSchema<undefined>];
57
58
  returns: v.VoidSchema<undefined>;
59
+ jsonSerializable?: boolean;
58
60
  agent?: RpcFunctionAgentOptions;
59
61
  setup?: ((context: undefined) => Thenable<RpcFunctionSetupResult<[string], void>>) | undefined;
60
62
  handler?: ((args_0: string) => void) | undefined;
@@ -79,6 +81,7 @@ declare const openHelpers: readonly [{
79
81
  cacheable?: boolean;
80
82
  args: readonly [v.StringSchema<undefined>];
81
83
  returns: v.VoidSchema<undefined>;
84
+ jsonSerializable?: boolean;
82
85
  agent?: RpcFunctionAgentOptions;
83
86
  setup?: ((context: undefined) => Thenable<RpcFunctionSetupResult<[string], void>>) | undefined;
84
87
  handler?: ((args_0: string) => void) | undefined;
@@ -92,6 +95,7 @@ declare const openHelpers: readonly [{
92
95
  cacheable?: boolean;
93
96
  args: readonly [v.StringSchema<undefined>];
94
97
  returns: v.VoidSchema<undefined>;
98
+ jsonSerializable?: boolean;
95
99
  agent?: RpcFunctionAgentOptions;
96
100
  setup?: ((context: undefined) => Thenable<RpcFunctionSetupResult<[string], void>>) | undefined;
97
101
  handler?: ((args_0: string) => void) | undefined;
@@ -1,4 +1,4 @@
1
- import { n as defineRpcFunction } from "../define-Bb4zh-Dc.mjs";
1
+ import { n as defineRpcFunction } from "../define-CW9gLnyG.mjs";
2
2
  import * as v from "valibot";
3
3
  //#region src/recipes/open-helpers.ts
4
4
  /**
@@ -50,7 +50,7 @@ const openInFinder = defineRpcFunction({
50
50
  args: [v.string()],
51
51
  returns: v.void(),
52
52
  async handler(path) {
53
- const { default: open } = await import("../open-BtOOEldu.mjs");
53
+ const { default: open } = await import("../open-BMO2_-wC.mjs");
54
54
  await open(path);
55
55
  }
56
56
  });
@@ -1,2 +1,3 @@
1
- import { A as RpcFunctionSetupResult, C as RpcDumpStore, D as RpcFunctionDefinitionAnyWithContext, E as RpcFunctionDefinitionAny, F as RpcCacheManager, I as RpcCacheOptions, M as RpcFunctionsCollector, N as RpcReturnSchema, O as RpcFunctionDefinitionBase, P as Thenable, S as RpcDumpRecord, T as RpcFunctionDefinition, _ as RpcDump, a as createClientFromDump, b as RpcDumpDefinition, c as createDefineWrapperWithContext, d as BirpcFn, f as BirpcReturn, g as RpcDefinitionsToFunctions, h as RpcDefinitionsFilter, i as getRpcResolvedSetupResult, j as RpcFunctionType, k as RpcFunctionDefinitionToFunction, l as defineRpcFunction, m as RpcArgsSchema, n as validateDefinitions, o as dumpFunctions, p as EntriesToObject, r as getRpcHandler, s as getDefinitionsWithDumps, t as validateDefinition, u as RpcFunctionsCollectorBase, v as RpcDumpClientOptions, w as RpcFunctionAgentOptions, x as RpcDumpGetter, y as RpcDumpCollectionOptions } from "../index-DvKDO5H8.mjs";
2
- export { BirpcFn, BirpcReturn, EntriesToObject, RpcArgsSchema, RpcCacheManager, RpcCacheOptions, RpcDefinitionsFilter, RpcDefinitionsToFunctions, RpcDump, RpcDumpClientOptions, RpcDumpCollectionOptions, RpcDumpDefinition, RpcDumpGetter, RpcDumpRecord, RpcDumpStore, RpcFunctionAgentOptions, RpcFunctionDefinition, RpcFunctionDefinitionAny, RpcFunctionDefinitionAnyWithContext, RpcFunctionDefinitionBase, RpcFunctionDefinitionToFunction, RpcFunctionSetupResult, RpcFunctionType, RpcFunctionsCollector, RpcFunctionsCollectorBase, RpcReturnSchema, Thenable, createClientFromDump, createDefineWrapperWithContext, defineRpcFunction, dumpFunctions, getDefinitionsWithDumps, getRpcHandler, getRpcResolvedSetupResult, validateDefinition, validateDefinitions };
1
+ import { _ as RpcCacheManager, a as structuredCloneDeserialize, c as structuredCloneStringify, d as createClientFromDump, f as dumpFunctions, g as RpcFunctionsCollectorBase, h as defineRpcFunction, i as strictJsonStringify, l as getRpcHandler, m as createDefineWrapperWithContext, n as validateDefinitions, o as structuredCloneParse, p as getDefinitionsWithDumps, r as STRUCTURED_CLONE_PREFIX, s as structuredCloneSerialize, t as validateDefinition, u as getRpcResolvedSetupResult, v as RpcCacheOptions } from "../index-Cei8vVcd.mjs";
2
+ import { C as RpcReturnSchema, S as RpcFunctionsCollector, _ as RpcFunctionDefinitionAnyWithContext, a as RpcDefinitionsFilter, b as RpcFunctionSetupResult, c as RpcDumpClientOptions, d as RpcDumpGetter, f as RpcDumpRecord, g as RpcFunctionDefinitionAny, h as RpcFunctionDefinition, i as RpcArgsSchema, l as RpcDumpCollectionOptions, m as RpcFunctionAgentOptions, n as BirpcReturn, o as RpcDefinitionsToFunctions, p as RpcDumpStore, r as EntriesToObject, s as RpcDump, t as BirpcFn, u as RpcDumpDefinition, v as RpcFunctionDefinitionBase, w as Thenable, x as RpcFunctionType, y as RpcFunctionDefinitionToFunction } from "../types-BkyzI9r4.mjs";
3
+ export { BirpcFn, BirpcReturn, EntriesToObject, RpcArgsSchema, RpcCacheManager, RpcCacheOptions, RpcDefinitionsFilter, RpcDefinitionsToFunctions, RpcDump, RpcDumpClientOptions, RpcDumpCollectionOptions, RpcDumpDefinition, RpcDumpGetter, RpcDumpRecord, RpcDumpStore, RpcFunctionAgentOptions, RpcFunctionDefinition, RpcFunctionDefinitionAny, RpcFunctionDefinitionAnyWithContext, RpcFunctionDefinitionBase, RpcFunctionDefinitionToFunction, RpcFunctionSetupResult, RpcFunctionType, RpcFunctionsCollector, RpcFunctionsCollectorBase, RpcReturnSchema, STRUCTURED_CLONE_PREFIX, Thenable, createClientFromDump, createDefineWrapperWithContext, defineRpcFunction, dumpFunctions, getDefinitionsWithDumps, getRpcHandler, getRpcResolvedSetupResult, strictJsonStringify, structuredCloneDeserialize, structuredCloneParse, structuredCloneSerialize, structuredCloneStringify, validateDefinition, validateDefinitions };
@@ -1,3 +1,4 @@
1
- import { a as validateDefinitions, c as getRpcResolvedSetupResult, i as validateDefinition, l as RpcCacheManager, n as dumpFunctions, o as RpcFunctionsCollectorBase, r as getDefinitionsWithDumps, s as getRpcHandler, t as createClientFromDump } from "../rpc-9FNa3Inb.mjs";
2
- import { n as defineRpcFunction, t as createDefineWrapperWithContext } from "../define-Bb4zh-Dc.mjs";
3
- export { RpcCacheManager, RpcFunctionsCollectorBase, createClientFromDump, createDefineWrapperWithContext, defineRpcFunction, dumpFunctions, getDefinitionsWithDumps, getRpcHandler, getRpcResolvedSetupResult, validateDefinition, validateDefinitions };
1
+ import { a as validateDefinitions, c as getRpcResolvedSetupResult, i as validateDefinition, l as RpcCacheManager, n as dumpFunctions, o as RpcFunctionsCollectorBase, r as getDefinitionsWithDumps, s as getRpcHandler, t as createClientFromDump } from "../rpc-hbRk8qtt.mjs";
2
+ import { a as structuredCloneSerialize, i as structuredCloneParse, n as strictJsonStringify, o as structuredCloneStringify, r as structuredCloneDeserialize, t as STRUCTURED_CLONE_PREFIX } from "../serialization-CWcWE7x7.mjs";
3
+ import { n as defineRpcFunction, t as createDefineWrapperWithContext } from "../define-CW9gLnyG.mjs";
4
+ export { RpcCacheManager, RpcFunctionsCollectorBase, STRUCTURED_CLONE_PREFIX, createClientFromDump, createDefineWrapperWithContext, defineRpcFunction, dumpFunctions, getDefinitionsWithDumps, getRpcHandler, getRpcResolvedSetupResult, strictJsonStringify, structuredCloneDeserialize, structuredCloneParse, structuredCloneSerialize, structuredCloneStringify, validateDefinition, validateDefinitions };
@@ -1,2 +1,2 @@
1
- import { n as createWsRpcChannel, t as WsRpcChannelOptions } from "../../ws-client-CklfxUHE.mjs";
1
+ import { n as createWsRpcChannel, t as WsRpcChannelOptions } from "../../ws-client-CDGmViwt.mjs";
2
2
  export { WsRpcChannelOptions, createWsRpcChannel };
@@ -1,6 +1,7 @@
1
- import { parse, stringify } from "structured-clone-es";
1
+ import { i as structuredCloneParse, n as strictJsonStringify, o as structuredCloneStringify } from "../../serialization-CWcWE7x7.mjs";
2
2
  //#region src/rpc/transports/ws-client.ts
3
3
  function NOOP() {}
4
+ const EMPTY_DEFS = /* @__PURE__ */ new Map();
4
5
  /**
5
6
  * Build a birpc `ChannelOptions` object backed by a browser `WebSocket`.
6
7
  * Pass the result straight to `createRpcClient`'s `channel` option.
@@ -9,7 +10,7 @@ function createWsRpcChannel(options) {
9
10
  let url = options.url;
10
11
  if (options.authToken) url = `${url}?vite_devtools_auth_token=${encodeURIComponent(options.authToken)}`;
11
12
  const ws = new WebSocket(url);
12
- const { onConnected = NOOP, onError = NOOP, onDisconnected = NOOP } = options;
13
+ const { onConnected = NOOP, onError = NOOP, onDisconnected = NOOP, definitions = EMPTY_DEFS } = options;
13
14
  ws.addEventListener("open", (e) => {
14
15
  onConnected(e);
15
16
  });
@@ -19,6 +20,7 @@ function createWsRpcChannel(options) {
19
20
  ws.addEventListener("close", (e) => {
20
21
  onDisconnected(e);
21
22
  });
23
+ const pendingRequestMethods = /* @__PURE__ */ new Map();
22
24
  return {
23
25
  on: (handler) => {
24
26
  ws.addEventListener("message", (e) => {
@@ -35,8 +37,21 @@ function createWsRpcChannel(options) {
35
37
  ws.addEventListener("open", handler);
36
38
  }
37
39
  },
38
- serialize: stringify,
39
- deserialize: parse
40
+ serialize: (msg) => {
41
+ let method;
42
+ if (msg.t === "q") method = msg.m;
43
+ else {
44
+ method = pendingRequestMethods.get(msg.i);
45
+ pendingRequestMethods.delete(msg.i);
46
+ }
47
+ if (!!method && definitions.get(method)?.jsonSerializable === true) return strictJsonStringify(msg, method ?? "");
48
+ return `s:${structuredCloneStringify(msg)}`;
49
+ },
50
+ deserialize: (raw) => {
51
+ const msg = raw.startsWith("s:") ? structuredCloneParse(raw.slice(2)) : JSON.parse(raw);
52
+ if (msg.t === "q" && msg.i && msg.m) pendingRequestMethods.set(msg.i, msg.m);
53
+ return msg;
54
+ }
40
55
  };
41
56
  }
42
57
  //#endregion
@@ -1,2 +1,2 @@
1
- import { n as WsRpcTransportOptions, r as attachWsRpcTransport, t as DevToolsNodeRpcSessionMeta } from "../../ws-server--IuUAaGi.mjs";
1
+ import { n as WsRpcTransportOptions, r as attachWsRpcTransport, t as DevToolsNodeRpcSessionMeta } from "../../ws-server-Cu8tmZcF.mjs";
2
2
  export { DevToolsNodeRpcSessionMeta, WsRpcTransportOptions, attachWsRpcTransport };
@@ -1,8 +1,9 @@
1
- import { parse, stringify } from "structured-clone-es";
1
+ import { i as structuredCloneParse, n as strictJsonStringify, o as structuredCloneStringify } from "../../serialization-CWcWE7x7.mjs";
2
2
  import { createServer } from "node:https";
3
3
  import { WebSocketServer } from "ws";
4
4
  //#region src/rpc/transports/ws-server.ts
5
5
  let sessionId = 0;
6
+ const EMPTY_DEFS = /* @__PURE__ */ new Map();
6
7
  function NOOP() {}
7
8
  /**
8
9
  * Attach a WebSocket transport to an existing RPC group. Either pass an
@@ -10,7 +11,7 @@ function NOOP() {}
10
11
  * `port` / `host` / `https`.
11
12
  */
12
13
  function attachWsRpcTransport(rpcGroup, options = {}) {
13
- const { wss: externalWss, port, host = "localhost", https, onConnected = NOOP, onDisconnected = NOOP, serialize = stringify, deserialize = parse } = options;
14
+ const { wss: externalWss, port, host = "localhost", https, onConnected = NOOP, onDisconnected = NOOP, definitions = EMPTY_DEFS, serialize: serializeOverride, deserialize: deserializeOverride } = options;
14
15
  let wss;
15
16
  if (externalWss) wss = externalWss;
16
17
  else if (https) {
@@ -27,6 +28,7 @@ function attachWsRpcTransport(rpcGroup, options = {}) {
27
28
  ws,
28
29
  subscribedStates: /* @__PURE__ */ new Set()
29
30
  };
31
+ const pendingRequestMethods = /* @__PURE__ */ new Map();
30
32
  const channel = {
31
33
  post: (data) => {
32
34
  ws.send(data);
@@ -36,8 +38,21 @@ function attachWsRpcTransport(rpcGroup, options = {}) {
36
38
  fn(data.toString());
37
39
  });
38
40
  },
39
- serialize,
40
- deserialize,
41
+ serialize: serializeOverride ?? ((msg) => {
42
+ let method;
43
+ if (msg.t === "q") method = msg.m;
44
+ else {
45
+ method = pendingRequestMethods.get(msg.i);
46
+ pendingRequestMethods.delete(msg.i);
47
+ }
48
+ if (!!method && definitions.get(method)?.jsonSerializable === true) return strictJsonStringify(msg, method ?? "");
49
+ return `s:${structuredCloneStringify(msg)}`;
50
+ }),
51
+ deserialize: deserializeOverride ?? ((raw) => {
52
+ const msg = raw.startsWith("s:") ? structuredCloneParse(raw.slice(2)) : JSON.parse(raw);
53
+ if (msg.t === "q" && msg.i && msg.m) pendingRequestMethods.set(msg.i, msg.m);
54
+ return msg;
55
+ }),
41
56
  meta
42
57
  };
43
58
  rpcGroup.updateChannels((channels) => {
@@ -1,5 +1,5 @@
1
+ import { c as logger } from "./serialization-CWcWE7x7.mjs";
1
2
  import { hash } from "ohash";
2
- import { consoleReporter, createLogger, defineDiagnostics, plainFormatter } from "logs-sdk";
3
3
  //#region src/rpc/cache.ts
4
4
  /**
5
5
  * @experimental API is expected to change.
@@ -35,29 +35,6 @@ var RpcCacheManager = class {
35
35
  else this.cacheMap.clear();
36
36
  }
37
37
  };
38
- const logger = createLogger({
39
- diagnostics: [defineDiagnostics({
40
- docsBase: "https://devtools.vite.dev/errors",
41
- codes: {
42
- DTK0001: {
43
- message: (p) => `RPC function "${p.name}" is already registered`,
44
- hint: "Use the `force` parameter to overwrite an existing registration."
45
- },
46
- DTK0002: { message: (p) => `RPC function "${p.name}" is not registered. Use register() to add new functions.` },
47
- DTK0003: { message: (p) => `RPC function "${p.name}" is not registered` },
48
- DTK0004: { message: (p) => `Either handler or setup function must be provided for RPC function "${p.name}"` },
49
- DTK0005: { message: (p) => `Function "${p.name}" not found in dump store` },
50
- DTK0006: { message: (p) => `No dump match for "${p.name}" with args: ${p.args}` },
51
- DTK0007: { message: (p) => `Function "${p.name}" with type "${p.type}" cannot have dump configuration. Only "static" and "query" types support dumps.` },
52
- DTK0008: {
53
- message: (p) => `Function "${p.name}" with type "${p.type}" cannot use \`snapshot: true\`. Only "query" functions support this sugar; "static" functions have equivalent default behavior already.`,
54
- hint: "Remove `snapshot: true`, or change the function type to `query`."
55
- }
56
- }
57
- })],
58
- formatter: plainFormatter,
59
- reporters: consoleReporter
60
- });
61
38
  //#endregion
62
39
  //#region src/rpc/handler.ts
63
40
  async function getRpcResolvedSetupResult(definition, context) {
@@ -73,7 +50,7 @@ async function getRpcResolvedSetupResult(definition, context) {
73
50
  async function getRpcHandler(definition, context) {
74
51
  if (definition.handler) return definition.handler;
75
52
  const result = await getRpcResolvedSetupResult(definition, context);
76
- if (!result.handler) throw logger.DTK0004({ name: definition.name }).throw();
53
+ if (!result.handler) throw logger.DF0024({ name: definition.name }).throw();
77
54
  return result.handler;
78
55
  }
79
56
  //#endregion
@@ -108,12 +85,14 @@ var RpcFunctionsCollectorBase = class {
108
85
  });
109
86
  }
110
87
  register(fn, force = false) {
111
- if (this.definitions.has(fn.name) && !force) throw logger.DTK0001({ name: fn.name }).throw();
88
+ if (this.definitions.has(fn.name) && !force) throw logger.DF0021({ name: fn.name }).throw();
89
+ assertAgentJsonSerializable(fn);
112
90
  this.definitions.set(fn.name, fn);
113
91
  this._onChanged.forEach((cb) => cb(fn.name));
114
92
  }
115
93
  update(fn, force = false) {
116
- if (!this.definitions.has(fn.name) && !force) throw logger.DTK0002({ name: fn.name }).throw();
94
+ if (!this.definitions.has(fn.name) && !force) throw logger.DF0022({ name: fn.name }).throw();
95
+ assertAgentJsonSerializable(fn);
117
96
  this.definitions.set(fn.name, fn);
118
97
  this._onChanged.forEach((cb) => cb(fn.name));
119
98
  }
@@ -129,7 +108,7 @@ var RpcFunctionsCollectorBase = class {
129
108
  }
130
109
  getSchema(name) {
131
110
  const definition = this.definitions.get(name);
132
- if (!definition) throw logger.DTK0003({ name: String(name) }).throw();
111
+ if (!definition) throw logger.DF0023({ name: String(name) }).throw();
133
112
  return {
134
113
  args: definition.args,
135
114
  returns: definition.returns
@@ -145,6 +124,9 @@ var RpcFunctionsCollectorBase = class {
145
124
  return Array.from(this.definitions.keys());
146
125
  }
147
126
  };
127
+ function assertAgentJsonSerializable(fn) {
128
+ if (fn.agent && fn.jsonSerializable !== true) throw logger.DF0019({ name: fn.name }).throw();
129
+ }
148
130
  //#endregion
149
131
  //#region ../../../node_modules/.pnpm/yocto-queue@1.2.2/node_modules/yocto-queue/index.js
150
132
  var Node = class {
@@ -283,11 +265,11 @@ function validateConcurrency(concurrency) {
283
265
  function validateDefinitions(definitions) {
284
266
  for (const definition of definitions) {
285
267
  const type = definition.type || "query";
286
- if ((type === "action" || type === "event") && definition.dump) throw logger.DTK0007({
268
+ if ((type === "action" || type === "event") && definition.dump) throw logger.DF0027({
287
269
  name: definition.name,
288
270
  type
289
271
  }).throw();
290
- if (definition.snapshot && type !== "query") throw logger.DTK0008({
272
+ if (definition.snapshot && type !== "query") throw logger.DF0028({
291
273
  name: definition.name,
292
274
  type
293
275
  }).throw();
@@ -332,7 +314,7 @@ async function dumpFunctions(definitions, context, options = {}) {
332
314
  if (definition.type === "event" || definition.type === "action") return;
333
315
  const setupResult = definition.setup ? await Promise.resolve(definition.setup(context)) : {};
334
316
  const handler = setupResult.handler || definition.handler;
335
- if (!handler) throw logger.DTK0004({ name: definition.name }).throw();
317
+ if (!handler) throw logger.DF0024({ name: definition.name }).throw();
336
318
  let dump = setupResult.dump ?? definition.dump;
337
319
  if (!dump && definition.type === "static") dump = { inputs: [[]] };
338
320
  if (!dump && definition.snapshot) dump = async (_ctx, h) => {
@@ -420,7 +402,7 @@ function createClientFromDump(store, options = {}) {
420
402
  const { onMiss } = options;
421
403
  return new Proxy({}, {
422
404
  get(_, functionName) {
423
- if (!(functionName in store.definitions)) throw logger.DTK0005({ name: functionName }).throw();
405
+ if (!(functionName in store.definitions)) throw logger.DF0025({ name: functionName }).throw();
424
406
  return async (...args) => {
425
407
  const recordKey = getDumpRecordKey(functionName, args);
426
408
  const recordOrGetter = store.records[recordKey];
@@ -442,7 +424,7 @@ function createClientFromDump(store, options = {}) {
442
424
  if (fallbackRecord && typeof fallbackRecord.output === "function") return await fallbackRecord.output();
443
425
  if (fallbackRecord) return fallbackRecord.output;
444
426
  }
445
- throw logger.DTK0006({
427
+ throw logger.DF0026({
446
428
  name: functionName,
447
429
  args: JSON.stringify(args)
448
430
  }).throw();
@@ -0,0 +1,112 @@
1
+ import { consoleReporter, createLogger, defineDiagnostics, plainFormatter } from "logs-sdk";
2
+ import { deserialize as structuredCloneDeserialize, parse as structuredCloneParse, serialize as structuredCloneSerialize, stringify as structuredCloneStringify } from "structured-clone-es";
3
+ //#region src/rpc/diagnostics.ts
4
+ const diagnostics = defineDiagnostics({
5
+ docsBase: "https://devtools.vite.dev/devframe/errors",
6
+ codes: {
7
+ DF0019: {
8
+ message: (p) => `RPC function "${p.name}" has \`agent\` set but \`jsonSerializable\` is not \`true\` — MCP requires JSON-serializable data.`,
9
+ hint: "Set `jsonSerializable: true` if the payload is JSON-safe, or remove `agent` to keep it RPC-only."
10
+ },
11
+ DF0020: {
12
+ message: (p) => `RPC function "${p.name}" declares \`jsonSerializable: true\` but the value at "${p.path}" is a ${p.type}.`,
13
+ hint: "Either drop `jsonSerializable: true` (falls back to structured-clone) or change the value to a JSON-safe shape."
14
+ },
15
+ DF0021: {
16
+ message: (p) => `RPC function "${p.name}" is already registered`,
17
+ hint: "Use the `force` parameter to overwrite an existing registration."
18
+ },
19
+ DF0022: { message: (p) => `RPC function "${p.name}" is not registered. Use register() to add new functions.` },
20
+ DF0023: { message: (p) => `RPC function "${p.name}" is not registered` },
21
+ DF0024: { message: (p) => `Either handler or setup function must be provided for RPC function "${p.name}"` },
22
+ DF0025: { message: (p) => `Function "${p.name}" not found in dump store` },
23
+ DF0026: { message: (p) => `No dump match for "${p.name}" with args: ${p.args}` },
24
+ DF0027: { message: (p) => `Function "${p.name}" with type "${p.type}" cannot have dump configuration. Only "static" and "query" types support dumps.` },
25
+ DF0028: {
26
+ message: (p) => `Function "${p.name}" with type "${p.type}" cannot use \`snapshot: true\`. Only "query" functions support this sugar; "static" functions have equivalent default behavior already.`,
27
+ hint: "Remove `snapshot: true`, or change the function type to `query`."
28
+ }
29
+ }
30
+ });
31
+ const logger = createLogger({
32
+ diagnostics: [diagnostics],
33
+ formatter: plainFormatter,
34
+ reporters: consoleReporter
35
+ });
36
+ //#endregion
37
+ //#region src/rpc/serialization.ts
38
+ /**
39
+ * Wire format used by the WS RPC transport.
40
+ *
41
+ * - **JSON (default, unprefixed):** payload is plain JSON text. Used when
42
+ * the dispatched method is declared `jsonSerializable: true`. Encoded
43
+ * via {@link strictJsonStringify} (rejects non-JSON values), decoded
44
+ * via `JSON.parse`.
45
+ * - **Structured-clone (`s:` prefix):** payload is `s:` followed by
46
+ * `structured-clone-es` text. Used when the method is declared
47
+ * `jsonSerializable: false` (or omitted, the default). Round-trips
48
+ * `Map`, `Set`, `Date`, `BigInt`, cycles, and class instances.
49
+ *
50
+ * birpc envelopes always start with `{`, so a leading byte that is not
51
+ * `s` is unambiguously JSON. Each direction independently chooses its
52
+ * encoding from local definitions — request and response are not
53
+ * coupled by a mirror rule.
54
+ */
55
+ const STRUCTURED_CLONE_PREFIX = "s:";
56
+ /**
57
+ * `JSON.stringify` with a single-pass strict replacer.
58
+ *
59
+ * Throws `DF0020` synchronously when the value contains a type JSON
60
+ * cannot round-trip losslessly: `Map`, `Set`, `Date`, `BigInt`, class
61
+ * instances, or `undefined` inside an array (silently becomes `null`).
62
+ *
63
+ * Native pass-throughs (no extra work needed):
64
+ * - circular references — `JSON.stringify` raises `TypeError`.
65
+ * - `BigInt` at top level — caught here for a friendlier error path.
66
+ *
67
+ * Lenient cases (allowed without throwing):
68
+ * - `undefined` as an object property — legitimate optional field;
69
+ * JSON.stringify just omits it.
70
+ * - `undefined` at the root — legitimate "action returned nothing".
71
+ * - `Symbol` / `Function` values — semantically "drop me" in JSON.
72
+ *
73
+ * `fnName` is used only for the diagnostic message — pass the RPC
74
+ * function name when calling from a wire serializer / dump writer so
75
+ * the error points at the offending function.
76
+ */
77
+ function strictJsonStringify(value, fnName = "") {
78
+ return JSON.stringify(value, function strictReplacer(key, val) {
79
+ const holder = this;
80
+ const original = holder != null ? holder[key] : val;
81
+ if (original === void 0) {
82
+ if (Array.isArray(holder)) throw nonJsonAt(fnName, "undefined", holder, key);
83
+ return val;
84
+ }
85
+ if (original === null) return val;
86
+ if (typeof original === "bigint") throw nonJsonAt(fnName, "BigInt", holder, key);
87
+ if (typeof original === "object") {
88
+ if (original instanceof Map) throw nonJsonAt(fnName, "Map", holder, key);
89
+ if (original instanceof Set) throw nonJsonAt(fnName, "Set", holder, key);
90
+ if (original instanceof Date) throw nonJsonAt(fnName, "Date", holder, key);
91
+ if (Array.isArray(original)) return val;
92
+ const proto = Object.getPrototypeOf(original);
93
+ if (proto !== null && proto !== Object.prototype) throw nonJsonAt(fnName, original.constructor?.name ?? "class instance", holder, key);
94
+ }
95
+ return val;
96
+ });
97
+ }
98
+ function nonJsonAt(fnName, type, parent, key) {
99
+ const path = formatPath(parent, key);
100
+ return logger.DF0020({
101
+ name: fnName || "<anonymous>",
102
+ type,
103
+ path
104
+ }).throw();
105
+ }
106
+ function formatPath(parent, key) {
107
+ if (Array.isArray(parent)) return `[${key}]`;
108
+ if (key === "") return "<root>";
109
+ return key;
110
+ }
111
+ //#endregion
112
+ export { structuredCloneSerialize as a, logger as c, structuredCloneParse as i, strictJsonStringify as n, structuredCloneStringify as o, structuredCloneDeserialize as r, diagnostics as s, STRUCTURED_CLONE_PREFIX as t };
@@ -1,4 +1,4 @@
1
- import { t as createDefineWrapperWithContext } from "./define-Bb4zh-Dc.mjs";
1
+ import { t as createDefineWrapperWithContext } from "./define-CW9gLnyG.mjs";
2
2
  import { safeParse } from "valibot";
3
3
  //#region src/adapters/flags.ts
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { n as dumpFunctions, s as getRpcHandler } from "./rpc-9FNa3Inb.mjs";
1
+ import { n as dumpFunctions, s as getRpcHandler } from "./rpc-hbRk8qtt.mjs";
2
2
  import { DEVTOOLS_RPC_DUMP_DIRNAME } from "./constants.mjs";
3
3
  //#region src/node/host-h3.ts
4
4
  /**
@@ -38,13 +38,19 @@ async function collectStaticRpcDump(definitions, context) {
38
38
  const files = {};
39
39
  for (const definition of definitions) {
40
40
  const type = definition.type ?? "query";
41
+ const serialization = definition.jsonSerializable === true ? "json" : "structured-clone";
41
42
  if (type === "static") {
42
43
  const handler = await getRpcHandler(definition, context);
43
44
  const path = makeStaticPath(definition.name);
44
- files[path] = { output: await Promise.resolve(handler()) };
45
+ files[path] = {
46
+ serialization,
47
+ fnName: definition.name,
48
+ data: { output: await Promise.resolve(handler()) }
49
+ };
45
50
  manifest[definition.name] = {
46
51
  type: "static",
47
- path
52
+ path,
53
+ serialization
48
54
  };
49
55
  continue;
50
56
  }
@@ -53,7 +59,8 @@ async function collectStaticRpcDump(definitions, context) {
53
59
  if (!(definition.name in store.definitions)) continue;
54
60
  const queryEntry = {
55
61
  type: "query",
56
- records: {}
62
+ records: {},
63
+ serialization
57
64
  };
58
65
  const prefix = `${definition.name}---`;
59
66
  for (const [recordKey, recordOrGetter] of Object.entries(store.records)) {
@@ -62,11 +69,19 @@ async function collectStaticRpcDump(definitions, context) {
62
69
  const record = await resolveRecord(recordOrGetter);
63
70
  if (key === "fallback") {
64
71
  const path = makeQueryFallbackPath(definition.name);
65
- files[path] = record;
72
+ files[path] = {
73
+ serialization,
74
+ fnName: definition.name,
75
+ data: record
76
+ };
66
77
  queryEntry.fallback = path;
67
78
  } else {
68
79
  const path = makeQueryRecordPath(definition.name, key);
69
- files[path] = record;
80
+ files[path] = {
81
+ serialization,
82
+ fnName: definition.name,
83
+ data: record
84
+ };
70
85
  queryEntry.records[key] = path;
71
86
  }
72
87
  }
@@ -1,4 +1,4 @@
1
- import { $ as DevToolsLogsHost, A as DevToolsViewHost, At as AgentHandle, B as DevToolsTerminalStatus, Bt as EventUnsubscribe, Ct as DevToolsCommandHandle, Dt as DevToolsCommandsHostEvents, Et as DevToolsCommandsHost, F as DevToolsChildProcessTerminalSession, Ft as AgentTool, G as DevToolsLogElementPosition, H as DevToolsRpcClientFunctions, I as DevToolsTerminalHost, It as AgentToolInput, J as DevToolsLogEntryInput, K as DevToolsLogEntry, L as DevToolsTerminalSession, Lt as DevToolsAgentHost, M as PartialWithoutId, Mt as AgentResource, N as Thenable, Nt as AgentResourceContent, Ot as DevToolsServerCommandEntry, P as DevToolsChildProcessExecuteOptions, Pt as AgentResourceInput, Q as DevToolsLogsClient, R as DevToolsTerminalSessionBase, Rt as DevToolsAgentHostEvents, St as DevToolsCommandEntry, Tt as DevToolsCommandShortcutOverrides, U as DevToolsRpcServerFunctions, V as DevToolsDocksUserSettings, Vt as EventsMap, W as DevToolsRpcSharedStates, X as DevToolsLogHandle, Y as DevToolsLogFilePosition, Z as DevToolsLogLevel, _ as RpcSharedStateGetOptions, _t as JsonRenderSpec, a as DevtoolRuntime, at as DevToolsDockEntryCategory, bt as DevToolsClientCommand, c as defineDevtool, ct as DevToolsDockUserEntry, d as DevToolsNodeContext, dt as DevToolsViewCustomRender, et as DevToolsHost, f as DevToolsNodeUtils, ft as DevToolsViewIframe, g as RpcFunctionsHost, gt as JsonRenderElement, h as RpcBroadcastOptions, ht as DevToolsViewLauncherStatus, i as DevtoolDeploymentKind, it as DevToolsDockEntryBase, j as EntriesToObject, jt as AgentManifest, kt as DevToolsServerCommandInput, l as ConnectionMeta, lt as DevToolsViewAction, m as DevToolsNodeRpcSession, mt as DevToolsViewLauncher, n as DevtoolCliOptions, nt as DevToolsDockEntriesGrouped, o as DevtoolSetupInfo, ot as DevToolsDockEntryIcon, p as RemoteConnectionInfo, pt as DevToolsViewJsonRender, q as DevToolsLogEntryFrom, r as DevtoolDefinition, rt as DevToolsDockEntry, s as DevtoolSpaOptions, st as DevToolsDockHost, t as DevtoolBrowserContext, tt as ClientScriptEntry, u as DevToolsCapabilities, ut as DevToolsViewBuiltin, v as RpcSharedStateHost, vt as JsonRenderer, wt as DevToolsCommandKeybinding, xt as DevToolsCommandBase, yt as RemoteDockOptions, z as DevToolsTerminalSessionStreamChunkEvent, zt as EventEmitter } from "../devtool-OJ3QW0ns.mjs";
2
- import { w as RpcFunctionAgentOptions } from "../index-DvKDO5H8.mjs";
3
- import { t as DevToolsNodeRpcSessionMeta } from "../ws-server--IuUAaGi.mjs";
4
- export { AgentHandle, AgentManifest, AgentResource, AgentResourceContent, AgentResourceInput, AgentTool, AgentToolInput, ClientScriptEntry, ConnectionMeta, DevToolsAgentHost, DevToolsAgentHostEvents, DevToolsCapabilities, DevToolsChildProcessExecuteOptions, DevToolsChildProcessTerminalSession, DevToolsClientCommand, DevToolsCommandBase, DevToolsCommandEntry, DevToolsCommandHandle, DevToolsCommandKeybinding, DevToolsCommandShortcutOverrides, DevToolsCommandsHost, DevToolsCommandsHostEvents, DevToolsDockEntriesGrouped, DevToolsDockEntry, DevToolsDockEntryBase, DevToolsDockEntryCategory, DevToolsDockEntryIcon, DevToolsDockHost, DevToolsDockUserEntry, DevToolsDocksUserSettings, DevToolsHost, DevToolsLogElementPosition, DevToolsLogEntry, DevToolsLogEntryFrom, DevToolsLogEntryInput, DevToolsLogFilePosition, DevToolsLogHandle, DevToolsLogLevel, DevToolsLogsClient, DevToolsLogsHost, DevToolsNodeContext, DevToolsNodeRpcSession, DevToolsNodeRpcSessionMeta, DevToolsNodeUtils, DevToolsRpcClientFunctions, DevToolsRpcServerFunctions, DevToolsRpcSharedStates, DevToolsServerCommandEntry, DevToolsServerCommandInput, DevToolsTerminalHost, DevToolsTerminalSession, DevToolsTerminalSessionBase, DevToolsTerminalSessionStreamChunkEvent, DevToolsTerminalStatus, DevToolsViewAction, DevToolsViewBuiltin, DevToolsViewCustomRender, DevToolsViewHost, DevToolsViewIframe, DevToolsViewJsonRender, DevToolsViewLauncher, DevToolsViewLauncherStatus, DevtoolBrowserContext, DevtoolCliOptions, DevtoolDefinition, DevtoolDeploymentKind, DevtoolRuntime, DevtoolSetupInfo, DevtoolSpaOptions, EntriesToObject, EventEmitter, EventUnsubscribe, EventsMap, JsonRenderElement, JsonRenderSpec, JsonRenderer, PartialWithoutId, RemoteConnectionInfo, RemoteDockOptions, RpcBroadcastOptions, RpcFunctionAgentOptions, RpcFunctionsHost, RpcSharedStateGetOptions, RpcSharedStateHost, Thenable, defineDevtool };
1
+ import { $ as DevToolsLogsHost, $t as EventsMap, A as DevToolsViewHost, At as DevToolsDiagnosticsHost, B as DevToolsTerminalStatus, Bt as DevToolsServerCommandEntry, Ct as DevToolsViewLauncher, Dt as JsonRenderer, Et as JsonRenderSpec, F as DevToolsChildProcessTerminalSession, Ft as DevToolsCommandHandle, G as DevToolsLogElementPosition, Gt as AgentResourceContent, H as DevToolsRpcClientFunctions, Ht as AgentHandle, I as DevToolsTerminalHost, It as DevToolsCommandKeybinding, J as DevToolsLogEntryInput, Jt as AgentToolInput, K as DevToolsLogEntry, Kt as AgentResourceInput, L as DevToolsTerminalSession, Lt as DevToolsCommandShortcutOverrides, M as PartialWithoutId, Mt as DevToolsClientCommand, N as Thenable, Nt as DevToolsCommandBase, Ot as RemoteDockOptions, P as DevToolsChildProcessExecuteOptions, Pt as DevToolsCommandEntry, Q as DevToolsLogsClient, Qt as EventUnsubscribe, R as DevToolsTerminalSessionBase, Rt as DevToolsCommandsHost, St as DevToolsViewJsonRender, Tt as JsonRenderElement, U as DevToolsRpcServerFunctions, Ut as AgentManifest, V as DevToolsDocksUserSettings, Vt as DevToolsServerCommandInput, W as DevToolsRpcSharedStates, Wt as AgentResource, X as DevToolsLogHandle, Xt as DevToolsAgentHostEvents, Y as DevToolsLogFilePosition, Yt as DevToolsAgentHost, Z as DevToolsLogLevel, Zt as EventEmitter, _ as RpcSharedStateGetOptions, _t as DevToolsDockUserEntry, a as DevtoolRuntime, at as DevToolsMessageHandle, bt as DevToolsViewCustomRender, c as defineDevtool, ct as DevToolsMessagesHost, d as DevToolsNodeContext, dt as DevToolsDockEntriesGrouped, et as DevToolsMessageElementPosition, f as DevToolsNodeUtils, ft as DevToolsDockEntry, g as RpcFunctionsHost, gt as DevToolsDockHost, h as RpcBroadcastOptions, ht as DevToolsDockEntryIcon, i as DevtoolDeploymentKind, it as DevToolsMessageFilePosition, j as EntriesToObject, jt as DevToolsDiagnosticsLogger, kt as DevToolsDiagnosticsDefinition, l as ConnectionMeta, lt as DevToolsHost, m as DevToolsNodeRpcSession, mt as DevToolsDockEntryCategory, n as DevtoolCliOptions, nt as DevToolsMessageEntryFrom, o as DevtoolSetupInfo, ot as DevToolsMessageLevel, p as RemoteConnectionInfo, pt as DevToolsDockEntryBase, q as DevToolsLogEntryFrom, qt as AgentTool, r as DevtoolDefinition, rt as DevToolsMessageEntryInput, s as DevtoolSpaOptions, st as DevToolsMessagesClient, t as DevtoolBrowserContext, tt as DevToolsMessageEntry, u as DevToolsCapabilities, ut as ClientScriptEntry, v as RpcSharedStateHost, vt as DevToolsViewAction, wt as DevToolsViewLauncherStatus, xt as DevToolsViewIframe, yt as DevToolsViewBuiltin, z as DevToolsTerminalSessionStreamChunkEvent, zt as DevToolsCommandsHostEvents } from "../devtool-CHT-4_OU.mjs";
2
+ import { m as RpcFunctionAgentOptions } from "../types-BkyzI9r4.mjs";
3
+ import { t as DevToolsNodeRpcSessionMeta } from "../ws-server-Cu8tmZcF.mjs";
4
+ export { AgentHandle, AgentManifest, AgentResource, AgentResourceContent, AgentResourceInput, AgentTool, AgentToolInput, ClientScriptEntry, ConnectionMeta, DevToolsAgentHost, DevToolsAgentHostEvents, DevToolsCapabilities, DevToolsChildProcessExecuteOptions, DevToolsChildProcessTerminalSession, DevToolsClientCommand, DevToolsCommandBase, DevToolsCommandEntry, DevToolsCommandHandle, DevToolsCommandKeybinding, DevToolsCommandShortcutOverrides, DevToolsCommandsHost, DevToolsCommandsHostEvents, DevToolsDiagnosticsDefinition, DevToolsDiagnosticsHost, DevToolsDiagnosticsLogger, DevToolsDockEntriesGrouped, DevToolsDockEntry, DevToolsDockEntryBase, DevToolsDockEntryCategory, DevToolsDockEntryIcon, DevToolsDockHost, DevToolsDockUserEntry, DevToolsDocksUserSettings, DevToolsHost, DevToolsLogElementPosition, DevToolsLogEntry, DevToolsLogEntryFrom, DevToolsLogEntryInput, DevToolsLogFilePosition, DevToolsLogHandle, DevToolsLogLevel, DevToolsLogsClient, DevToolsLogsHost, DevToolsMessageElementPosition, DevToolsMessageEntry, DevToolsMessageEntryFrom, DevToolsMessageEntryInput, DevToolsMessageFilePosition, DevToolsMessageHandle, DevToolsMessageLevel, DevToolsMessagesClient, DevToolsMessagesHost, DevToolsNodeContext, DevToolsNodeRpcSession, DevToolsNodeRpcSessionMeta, DevToolsNodeUtils, DevToolsRpcClientFunctions, DevToolsRpcServerFunctions, DevToolsRpcSharedStates, DevToolsServerCommandEntry, DevToolsServerCommandInput, DevToolsTerminalHost, DevToolsTerminalSession, DevToolsTerminalSessionBase, DevToolsTerminalSessionStreamChunkEvent, DevToolsTerminalStatus, DevToolsViewAction, DevToolsViewBuiltin, DevToolsViewCustomRender, DevToolsViewHost, DevToolsViewIframe, DevToolsViewJsonRender, DevToolsViewLauncher, DevToolsViewLauncherStatus, DevtoolBrowserContext, DevtoolCliOptions, DevtoolDefinition, DevtoolDeploymentKind, DevtoolRuntime, DevtoolSetupInfo, DevtoolSpaOptions, EntriesToObject, EventEmitter, EventUnsubscribe, EventsMap, JsonRenderElement, JsonRenderSpec, JsonRenderer, PartialWithoutId, RemoteConnectionInfo, RemoteDockOptions, RpcBroadcastOptions, RpcFunctionAgentOptions, RpcFunctionsHost, RpcSharedStateGetOptions, RpcSharedStateHost, Thenable, defineDevtool };