devframe 0.9.20 → 0.10.1

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 (102) hide show
  1. package/dist/_shared-B2PZsp-J.mjs +191 -0
  2. package/dist/{_shared-BIUet_Jh.d.mts → _shared-D1ebaX_J.d.mts} +13 -14
  3. package/dist/adapters/build.d.mts +3 -4
  4. package/dist/adapters/build.mjs +4 -5
  5. package/dist/adapters/cac.d.mts +3 -4
  6. package/dist/adapters/cac.mjs +3 -3
  7. package/dist/adapters/dev.d.mts +8 -8
  8. package/dist/adapters/dev.mjs +2 -2
  9. package/dist/adapters/embedded.d.mts +1 -1
  10. package/dist/adapters/initiate.d.mts +8 -8
  11. package/dist/adapters/initiate.mjs +1 -1
  12. package/dist/adapters/mcp.d.mts +4 -142
  13. package/dist/adapters/mcp.mjs +1 -597
  14. package/dist/agentic-DLqHMOyN.d.mts +30 -0
  15. package/dist/browser-agent-Pu-FLk6I.mjs +26 -0
  16. package/dist/browser-agent-rpc-BXhoSh1z.mjs +70 -0
  17. package/dist/cli/main.mjs +12 -260
  18. package/dist/client/index.d.mts +6 -6
  19. package/dist/client/index.mjs +12 -87
  20. package/dist/constants.d.mts +2 -1
  21. package/dist/constants.mjs +2 -1
  22. package/dist/{context-BLHBDQcZ.d.mts → context--tVkJw3W.d.mts} +127 -47
  23. package/dist/{context-BLXXjoBW.mjs → context-BqpgC5tq.mjs} +55 -5
  24. package/dist/{context-jXO5vzjH.mjs → context-CHpyLX8W.mjs} +1 -1
  25. package/dist/{context-BA5FPz7K.d.mts → context-D3qBv0IX.d.mts} +1 -1
  26. package/dist/{dev-BdKKOH8S.mjs → dev-BTbLJekh.mjs} +16 -24
  27. package/dist/{diagnostics-DZA6KQ_Z.mjs → diagnostics-Cx4_VjlG.mjs} +11 -3
  28. package/dist/dist-CO98PBnQ.mjs +265 -0
  29. package/dist/{host-agent-C3MBpNCd.mjs → host-agent-mIbQ6Qi5.mjs} +14 -13
  30. package/dist/import-runtime-module-BzlEQ9PI.mjs +24 -0
  31. package/dist/in-page-channel/index.d.mts +16 -12
  32. package/dist/in-page-channel/index.mjs +42 -14
  33. package/dist/index-Bia1vKjL.d.mts +218 -0
  34. package/dist/index-CeEtxDmK.d.mts +78 -0
  35. package/dist/{index-r6NstVmM.d.mts → index-D-2IdY1I.d.mts} +2 -2
  36. package/dist/{index-CiA6C705.d.mts → index-DuEm0sDH.d.mts} +1 -1
  37. package/dist/index.d.mts +4 -11
  38. package/dist/index.mjs +1 -10
  39. package/dist/{instance-registry-DCq762YJ.mjs → instance-registry-DtvYxc0Y.mjs} +1 -1
  40. package/dist/{instance-shell-C6Vg97lg.d.mts → instance-shell-CXnpSuK7.d.mts} +31 -5
  41. package/dist/{instance-shell-yfrM3_vK.mjs → instance-shell-wC2sfEU_.mjs} +7 -7
  42. package/dist/interactive-auth-BCa_iamv.mjs +384 -0
  43. package/dist/internal/index.d.mts +66 -22
  44. package/dist/internal/index.mjs +143 -8
  45. package/dist/mrmime-40h5OOIp.mjs +448 -0
  46. package/dist/node/auth.d.mts +2 -2
  47. package/dist/node/hub-internals.d.mts +2 -2
  48. package/dist/node/hub-internals.mjs +2 -2
  49. package/dist/node/index.d.mts +2 -4
  50. package/dist/node/index.mjs +2 -2
  51. package/dist/{nostics-0sKe5HIj.d.mts → nostics-DWvukRwa.d.mts} +11 -2
  52. package/dist/{origin-D_eBKEzr.mjs → origin-DZit9g29.mjs} +1 -21
  53. package/dist/recipes/interactive-auth.d.mts +2 -2
  54. package/dist/recipes/interactive-auth.mjs +1 -231
  55. package/dist/{remote-assets-D0StJVLp.mjs → remote-assets-B9MeWmW6.mjs} +2 -2
  56. package/dist/rpc/client.d.mts +1 -1
  57. package/dist/rpc/client.mjs +1 -1
  58. package/dist/rpc/dump.d.mts +2 -1
  59. package/dist/rpc/index.d.mts +3 -2
  60. package/dist/rpc/server.d.mts +1 -1
  61. package/dist/rpc/server.mjs +1 -1
  62. package/dist/rpc/transports/sse-client.d.mts +1 -1
  63. package/dist/rpc/transports/sse-server.d.mts +3 -3
  64. package/dist/rpc/transports/sse-server.mjs +1 -1
  65. package/dist/rpc/transports/ws-bun.d.mts +2 -2
  66. package/dist/rpc/transports/ws-bun.mjs +1 -1
  67. package/dist/rpc/transports/ws-client.d.mts +1 -1
  68. package/dist/rpc/transports/ws-deno.d.mts +2 -2
  69. package/dist/rpc/transports/ws-deno.mjs +1 -1
  70. package/dist/rpc/transports/ws-server.d.mts +1 -1
  71. package/dist/rpc/transports/ws-server.mjs +1 -1
  72. package/dist/{rpc-core-BlL-Ip8n.d.mts → rpc-core-B6n9MQsc.d.mts} +4 -4
  73. package/dist/{rpc-core-CvkU23bQ.mjs → rpc-core-BXyMjbKG.mjs} +1 -1
  74. package/dist/{services-install-Ben4yh52.mjs → services-install-D5YUwFXW.mjs} +17 -1
  75. package/dist/{sse-client-BcbYwXdD.d.mts → sse-client-DNdscfu_.d.mts} +2 -2
  76. package/dist/{storage-B70AXK64.mjs → storage-CHD1IkqU.mjs} +1 -1
  77. package/dist/tool-input-BAQXvvqL.mjs +393 -0
  78. package/dist/types/index.d.mts +4 -4
  79. package/dist/{types-D2vGd7-2.d.mts → types-BmDbfHCx.d.mts} +2 -3
  80. package/dist/utils/debounce.d.mts +50 -0
  81. package/dist/utils/debounce.mjs +88 -0
  82. package/dist/utils/events.d.mts +1 -1
  83. package/dist/utils/launch-editor.d.mts +8 -0
  84. package/dist/utils/launch-editor.mjs +36 -1
  85. package/dist/utils/nostics.d.mts +2 -2
  86. package/dist/utils/remote-assets.mjs +1 -1
  87. package/dist/utils/serve-static.mjs +1 -1
  88. package/dist/utils/shared-state.d.mts +1 -1
  89. package/dist/utils/simple-schema.d.mts +3 -2
  90. package/dist/utils/streaming-channel.d.mts +1 -1
  91. package/dist/utils/url.d.mts +31 -0
  92. package/dist/utils/url.mjs +58 -0
  93. package/dist/{ws-client-CNpP6Ium.d.mts → ws-client-6Mrz6eC4.d.mts} +2 -2
  94. package/dist/{ws-server-BB8jhxeT.d.mts → ws-server-y2R76aSW.d.mts} +2 -2
  95. package/package.json +10 -11
  96. package/dist/_shared-U8D-xzrp.mjs +0 -115
  97. package/dist/agent-tool-name-DGzeuWcO.mjs +0 -31
  98. package/dist/client-assets-DNdhagGm.mjs +0 -16
  99. package/dist/nostics-DD6gsDZA.mjs +0 -108
  100. package/dist/recipes/common-rpc-functions.d.mts +0 -70
  101. package/dist/recipes/common-rpc-functions.mjs +0 -115
  102. package/dist/simple-schema-Bi40l-P6.mjs +0 -154
@@ -0,0 +1,393 @@
1
+ import { colors } from "./utils/colors.mjs";
2
+ import { defineDiagnostics } from "nostics";
3
+ import { ansiFormatter } from "nostics/formatters/ansi";
4
+ //#region src/events.ts
5
+ /**
6
+ * Centralized registry of the core devframe event names: the node-side host
7
+ * bus events, the client RPC connection events, and the server→client
8
+ * broadcast notifications, so these names live in one place instead of
9
+ * scattered string literals.
10
+ *
11
+ * **Keep this in sync with [`docs/content/8.references/3.events.md`](../../../docs/content/8.references/3.events.md)**
12
+ * (the "Core devframe events" section): every name here appears in that page's
13
+ * tables, and every name there resolves to an entry here. Add, rename, or
14
+ * remove a name in both places in the same change, and reference
15
+ * `DEVFRAME_EVENTS.*` from call sites instead of re-typing a literal.
16
+ *
17
+ * This map covers **notifications** (events, broadcasts). The request/response
18
+ * RPC endpoints of the shared-state, streaming, and auth-handshake protocols
19
+ * (`devframe:rpc:server-state:*`, `devframe:streaming:subscribe`,
20
+ * `anonymous:devframe:auth`, …) are defined at their handlers and typed in
21
+ * `types/rpc-augments.ts`; they aren't events and stay out of this map.
22
+ *
23
+ * The `EventEmitter` maps (`RpcClientEvents`, `DevframeAgentHostEvents`) and the
24
+ * `DevframeRpcClientFunctions` augmentation declare these names as type-level
25
+ * keys (a literal is unavoidable in a type position); those declarations mirror
26
+ * this map and move with it.
27
+ */
28
+ const DEVFRAME_EVENTS = {
29
+ /**
30
+ * Node-side host `EventEmitter` events. The agent host (`ctx.agent.events`)
31
+ * emits these as its tool/resource surface changes; protocol adapters (e.g.
32
+ * MCP) subscribe to re-publish their manifest.
33
+ */
34
+ bus: {
35
+ agentManifestChanged: "agent:manifest:changed",
36
+ agentToolRegistered: "agent:tool:registered",
37
+ agentToolUnregistered: "agent:tool:unregistered",
38
+ agentResourceRegistered: "agent:resource:registered",
39
+ agentResourceUnregistered: "agent:resource:unregistered"
40
+ },
41
+ /**
42
+ * Client-side RPC connection `EventEmitter` events (`rpc.events`) a UI
43
+ * subscribes to for connection lifecycle and error surfacing.
44
+ */
45
+ client: {
46
+ isTrustedUpdated: "rpc:is-trusted:updated",
47
+ error: "rpc:error",
48
+ connectionStatus: "connection:status",
49
+ connectionError: "connection:error"
50
+ },
51
+ /**
52
+ * Broadcast notifications the server pushes to clients (server → client),
53
+ * `devframe:` prefix. The paired request methods (subscribe/get/set/…) are
54
+ * RPC endpoints, not events, and are omitted deliberately.
55
+ */
56
+ broadcast: {
57
+ authRevoked: "devframe:auth:revoked",
58
+ clientStateUpdated: "devframe:rpc:client-state:updated",
59
+ clientStatePatch: "devframe:rpc:client-state:patch",
60
+ streamingChunk: "devframe:streaming:chunk",
61
+ streamingEnd: "devframe:streaming:end",
62
+ streamingUploadCancel: "devframe:streaming:upload-cancel"
63
+ },
64
+ /**
65
+ * In-page channel notifications the page script pushes to its panels
66
+ * (page script → panel), `devframe:` prefix. The paired request methods
67
+ * (`devframe:in-page:page-state:subscribe`/`set`/`patch`) are call
68
+ * endpoints, not events, and are defined at their handlers
69
+ * (`in-page-channel/state.ts`).
70
+ */
71
+ inPageChannel: {
72
+ panelStateUpdated: "devframe:in-page:panel-state:updated",
73
+ panelStatePatch: "devframe:in-page:panel-state:patch"
74
+ },
75
+ /** `postMessage` channels the runtime posts across window boundaries. */
76
+ postMessage: {
77
+ remoteAssetsError: "devframe:remote-assets-error",
78
+ inPageChannel: "devframe:in-page-channel"
79
+ }
80
+ };
81
+ //#endregion
82
+ //#region src/utils/nostics.ts
83
+ const formatAnsi = ansiFormatter(colors);
84
+ /**
85
+ * The reporter every {@link defineDiagnostics} call below wires in ahead of
86
+ * any caller-supplied ones: prints the diagnostic through devframe's own
87
+ * ANSI colors via `console[method]` (default `'warn'`).
88
+ */
89
+ function devframeReporter(d, { method = "warn" } = {}) {
90
+ console[method](formatAnsi(d));
91
+ }
92
+ /**
93
+ * Drop-in replacement for `nostics`'s `defineDiagnostics()` with devframe's
94
+ * ANSI console reporter pre-wired ahead of any `reporters` passed in. Every
95
+ * `diagnostics.ts` in devframe core, `@devframes/hub`, `@devframes/json-render`,
96
+ * and the built-in plugins defines its codes through this instead of
97
+ * `nostics`'s own `defineDiagnostics`; the reporter registration lives
98
+ * here, once, so none of them need to build their own reporter (`colors`,
99
+ * `ansiFormatter`) or take a direct dependency on `nostics` themselves.
100
+ */
101
+ function defineDiagnostics$1(options) {
102
+ return defineDiagnostics({
103
+ ...options,
104
+ reporters: [devframeReporter, ...options.reporters ?? []]
105
+ });
106
+ }
107
+ //#endregion
108
+ //#region ../../node_modules/.pnpm/birpc@4.2.0/node_modules/birpc/dist/index.mjs
109
+ function createPromiseWithResolvers() {
110
+ let resolve;
111
+ let reject;
112
+ return {
113
+ promise: new Promise((res, rej) => {
114
+ resolve = res;
115
+ reject = rej;
116
+ }),
117
+ resolve,
118
+ reject
119
+ };
120
+ }
121
+ const random = Math.random.bind(Math);
122
+ const urlAlphabet = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";
123
+ function nanoid(size = 21) {
124
+ let id = "";
125
+ let i = size;
126
+ while (i--) id += urlAlphabet[random() * 64 | 0];
127
+ return id;
128
+ }
129
+ const DEFAULT_TIMEOUT = 6e4;
130
+ const defaultSerialize = (i) => i;
131
+ const defaultDeserialize = defaultSerialize;
132
+ const { clearTimeout, setTimeout } = globalThis;
133
+ function createBirpc($functions, options) {
134
+ const { post, on, off = () => {}, eventNames = [], serialize = defaultSerialize, deserialize = defaultDeserialize, resolver, bind = "rpc", timeout = DEFAULT_TIMEOUT, proxify = true } = options;
135
+ let $closed = false;
136
+ const _rpcPromiseMap = /* @__PURE__ */ new Map();
137
+ let _promiseInit;
138
+ let rpc;
139
+ async function _call(method, args, event, optional) {
140
+ if ($closed) throw new Error(`[birpc] rpc is closed, cannot call "${method}"`);
141
+ const req = {
142
+ m: method,
143
+ a: args,
144
+ t: "q"
145
+ };
146
+ if (optional) req.o = true;
147
+ const send = async (_req) => post(serialize(_req));
148
+ if (event) {
149
+ await send(req);
150
+ return;
151
+ }
152
+ if (_promiseInit) try {
153
+ await _promiseInit;
154
+ } finally {
155
+ _promiseInit = void 0;
156
+ }
157
+ let { promise, resolve, reject } = createPromiseWithResolvers();
158
+ const id = nanoid();
159
+ req.i = id;
160
+ let timeoutId;
161
+ async function handler(newReq = req) {
162
+ if (timeout >= 0) {
163
+ timeoutId = setTimeout(() => {
164
+ try {
165
+ if (options.onTimeoutError?.call(rpc, method, args) !== true) throw new Error(`[birpc] timeout on calling "${method}"`);
166
+ } catch (e) {
167
+ reject(e);
168
+ }
169
+ _rpcPromiseMap.delete(id);
170
+ }, timeout);
171
+ if (typeof timeoutId === "object") timeoutId = timeoutId.unref?.();
172
+ }
173
+ _rpcPromiseMap.set(id, {
174
+ resolve,
175
+ reject,
176
+ timeoutId,
177
+ method
178
+ });
179
+ await send(newReq);
180
+ return promise;
181
+ }
182
+ try {
183
+ if (options.onRequest) await options.onRequest.call(rpc, req, handler, resolve);
184
+ else await handler();
185
+ } catch (e) {
186
+ if (options.onGeneralError?.call(rpc, e) !== true) throw e;
187
+ return;
188
+ } finally {
189
+ clearTimeout(timeoutId);
190
+ _rpcPromiseMap.delete(id);
191
+ }
192
+ return promise;
193
+ }
194
+ const builtinMethods = {
195
+ $call: (method, ...args) => _call(method, args, false),
196
+ $callOptional: (method, ...args) => _call(method, args, false, true),
197
+ $callEvent: (method, ...args) => _call(method, args, true),
198
+ $callRaw: (options) => _call(options.method, options.args, options.event, options.optional),
199
+ $rejectPendingCalls,
200
+ get $closed() {
201
+ return $closed;
202
+ },
203
+ get $meta() {
204
+ return options.meta;
205
+ },
206
+ $close,
207
+ $functions
208
+ };
209
+ if (proxify) rpc = new Proxy({}, { get(_, method) {
210
+ if (Object.hasOwn(builtinMethods, method)) return builtinMethods[method];
211
+ if (method === "then" && !eventNames.includes("then") && !("then" in $functions)) return void 0;
212
+ const sendEvent = (...args) => _call(method, args, true);
213
+ if (eventNames.includes(method)) {
214
+ sendEvent.asEvent = sendEvent;
215
+ return sendEvent;
216
+ }
217
+ const sendCall = (...args) => _call(method, args, false);
218
+ sendCall.asEvent = sendEvent;
219
+ return sendCall;
220
+ } });
221
+ else rpc = builtinMethods;
222
+ function $close(customError) {
223
+ $closed = true;
224
+ _rpcPromiseMap.forEach(({ reject, method }) => {
225
+ const error = /* @__PURE__ */ new Error(`[birpc] rpc is closed, cannot call "${method}"`);
226
+ if (customError) {
227
+ customError.cause ??= error;
228
+ return reject(customError);
229
+ }
230
+ reject(error);
231
+ });
232
+ _rpcPromiseMap.clear();
233
+ off(onMessage);
234
+ }
235
+ function $rejectPendingCalls(handler) {
236
+ const handlerResults = Array.from(_rpcPromiseMap.values()).map(({ method, reject }) => {
237
+ if (!handler) return reject(/* @__PURE__ */ new Error(`[birpc]: rejected pending call "${method}".`));
238
+ return handler({
239
+ method,
240
+ reject
241
+ });
242
+ });
243
+ _rpcPromiseMap.clear();
244
+ return handlerResults;
245
+ }
246
+ async function onMessage(data, ...extra) {
247
+ let msg;
248
+ try {
249
+ msg = deserialize(data);
250
+ } catch (e) {
251
+ if (options.onGeneralError?.call(rpc, e) !== true) throw e;
252
+ return;
253
+ }
254
+ if (msg.t === "q") {
255
+ const { m: method, a: args, o: optional } = msg;
256
+ let result, error;
257
+ let fn = await (resolver ? resolver.call(rpc, method, $functions[method]) : $functions[method]);
258
+ if (optional) fn ||= () => void 0;
259
+ if (!fn) error = /* @__PURE__ */ new Error(`[birpc] function "${method}" not found`);
260
+ else try {
261
+ result = await fn.apply(bind === "rpc" ? rpc : $functions, args);
262
+ } catch (e) {
263
+ error = e;
264
+ }
265
+ if (msg.i) {
266
+ if (error && options.onFunctionError) {
267
+ if (options.onFunctionError.call(rpc, error, method, args) === true) return;
268
+ }
269
+ if (!error) try {
270
+ await post(serialize({
271
+ t: "s",
272
+ i: msg.i,
273
+ r: result
274
+ }), ...extra);
275
+ return;
276
+ } catch (e) {
277
+ error = e;
278
+ if (options.onGeneralError?.call(rpc, e, method, args) !== true) throw e;
279
+ }
280
+ try {
281
+ await post(serialize({
282
+ t: "s",
283
+ i: msg.i,
284
+ e: error
285
+ }), ...extra);
286
+ } catch (e) {
287
+ if (options.onGeneralError?.call(rpc, e, method, args) !== true) throw e;
288
+ }
289
+ }
290
+ } else {
291
+ const { i: ack, r: result, e: error } = msg;
292
+ const promise = _rpcPromiseMap.get(ack);
293
+ if (promise) {
294
+ clearTimeout(promise.timeoutId);
295
+ if (error) promise.reject(error);
296
+ else promise.resolve(result);
297
+ }
298
+ _rpcPromiseMap.delete(ack);
299
+ }
300
+ }
301
+ _promiseInit = on(onMessage);
302
+ return rpc;
303
+ }
304
+ //#endregion
305
+ //#region src/agent/safety.ts
306
+ /**
307
+ * An agent tool's safety classification: the explicit `agent.safety`, else
308
+ * inferred from the function `type` (`static`/`query` are read-only, the rest
309
+ * mutate). Shared by every agent surface (MCP host, WebMCP, in-page bridge).
310
+ */
311
+ function resolveAgentSafety(type, agent) {
312
+ if (agent.safety) return agent.safety;
313
+ return type === "static" || type === "query" || type == null ? "read" : "action";
314
+ }
315
+ //#endregion
316
+ //#region src/agent/to-json-schema.ts
317
+ const FALLBACK_OBJECT_SCHEMA = Object.freeze({
318
+ type: "object",
319
+ additionalProperties: true
320
+ });
321
+ /**
322
+ * Convert a Standard Schema to JSON Schema for the agent/MCP surface.
323
+ *
324
+ * Devframe stays validator-neutral, so conversion uses the schema's own
325
+ * [Standard JSON Schema](https://standardschema.dev/) converter
326
+ * (`~standard.jsonSchema`) when the validator provides one; zod 4 does,
327
+ * for example. Validators without a native converter (e.g. valibot) degrade
328
+ * to a permissive object schema rather than pulling in a converter library.
329
+ */
330
+ function safeToJsonSchema(schema) {
331
+ const standard = schema["~standard"];
332
+ if (standard.jsonSchema) try {
333
+ return standard.jsonSchema.input({ target: "draft-2020-12" });
334
+ } catch {
335
+ return FALLBACK_OBJECT_SCHEMA;
336
+ }
337
+ return FALLBACK_OBJECT_SCHEMA;
338
+ }
339
+ /**
340
+ * JSON Schema for an RPC function's positional args on the agent/MCP
341
+ * surface. Each positional arg is advertised under `arg0` / `arg1` / …,
342
+ * matching how the agent bridge coerces the incoming object payload back
343
+ * into positional arguments.
344
+ *
345
+ * Returns `{ type: 'object', properties: {} }` when there are no args.
346
+ * @internal
347
+ */
348
+ function argsToJsonSchema(args) {
349
+ if (!args || args.length === 0) return {
350
+ type: "object",
351
+ properties: {}
352
+ };
353
+ const properties = {};
354
+ const required = [];
355
+ for (let i = 0; i < args.length; i++) {
356
+ const key = `arg${i}`;
357
+ properties[key] = safeToJsonSchema(args[i]);
358
+ required.push(key);
359
+ }
360
+ return {
361
+ type: "object",
362
+ properties,
363
+ required,
364
+ additionalProperties: false
365
+ };
366
+ }
367
+ //#endregion
368
+ //#region src/tool-input.ts
369
+ /**
370
+ * Convert an object-shaped tool input into positional arguments.
371
+ *
372
+ * Tool schemas expose positional parameters as `arg0`, `arg1`, and so on.
373
+ * Arrays pass through for callers that already provide positional arguments.
374
+ */
375
+ function collectPositionalArgs(input, argumentCount) {
376
+ if (Array.isArray(input)) return input;
377
+ if (input === void 0 || input === null) return [];
378
+ if (typeof input !== "object") return void 0;
379
+ const record = input;
380
+ if (argumentCount != null) return Array.from({ length: argumentCount }, (_, index) => record[`arg${index}`]);
381
+ if ("arg0" in record) {
382
+ const positional = [];
383
+ while (`arg${positional.length}` in record) positional.push(record[`arg${positional.length}`]);
384
+ return positional;
385
+ }
386
+ return Object.keys(record).length === 0 ? [] : void 0;
387
+ }
388
+ /** Convert tool input for an RPC, preserving an untyped payload as arg 0. */
389
+ function toolInputToRpcArgs(input, argumentCount) {
390
+ return collectPositionalArgs(input, argumentCount) ?? [input];
391
+ }
392
+ //#endregion
393
+ export { defineDiagnostics$1 as a, createBirpc as i, argsToJsonSchema as n, DEVFRAME_EVENTS as o, resolveAgentSafety as r, toolInputToRpcArgs as t };
@@ -1,6 +1,6 @@
1
- import { g as RpcFunctionAgentOptions } from "../types-D2vGd7-2.mjs";
2
- import { $ as DevframeServiceOf, At as AgentHandle, B as DevframeSetupInfo, Bt as DevframeAgentHostEvents, Ct as DevframeDiagnosticsHost, F as DevframeDefinition, Ft as AgentTool, G as McpAuthorization, H as DevframeSnapshotRpcInputs, Ht as EventUnsubscribe, I as DevframeDeploymentKind, It as AgentToolInput, J as DevframeServiceDefinition, K as McpRouteOptions, L as DevframeDockDefaults, Lt as AgentToolProvider, Mt as AgentResource, Nt as AgentResourceContent, P as DevframeCliOptions, Pt as AgentResourceInput, Q as DevframeServiceMeta, R as DevframeDuplicationStrategy, Rt as AgentToolProviderHandle, St as DevframeStorageScope, U as DevframeSseOptions, Ut as EventsMap, V as DevframeSnapshotRpcEntry, Vt as EventEmitter, W as DevframeWsOptions, X as DevframeServiceId, Y as DevframeServiceDescriptor, Z as DevframeServiceInput, _t as DevframeViewHost, a as DevframeConnectionConfigsRegistry, at as DevframeScopedNodeContext, bt as DevframeRpcSharedStates, c as RpcBroadcastOptions, ct as DevframeSettings, d as RpcSharedStateHost, dt as ScopedBroadcastOptions, et as DevframeServiceScopeOf, f as RpcStreamingChannel, ft as ScopedClientFunctions, gt as SettingsForNamespace, ht as ScopedSharedStates, i as DevframeCapabilities, it as DevframeServicesState, jt as AgentManifest, l as RpcFunctionsHost, lt as DevframeSettingsRegistry, m as RpcStreamingHost, mt as ScopedServerFunctions, n as ConnectionMetaSse, nt as DevframeServicesRegistry, o as DevframeNodeContext, ot as DevframeScopedNodeRpc, p as RpcStreamingChannelOptions, pt as ScopedRpcFn, q as McpSetting, r as ConnectionMetaWebsocket, rt as DevframeServicesScopeRegistry, s as DevframeNodeRpcSession, st as DevframeScopedStreamingHost, t as ConnectionMeta, tt as DevframeServicesHost, u as RpcSharedStateGetOptions, ut as DevframeSettingsStore, vt as DevframeRpcClientFunctions, wt as DevframeDiagnosticsLogger, xt as DevframeHost, yt as DevframeRpcServerFunctions, z as DevframeRpcOptions, zt as DevframeAgentHost } from "../context-BLHBDQcZ.mjs";
1
+ import { m as RpcFunctionAgentOptions } from "../types-BmDbfHCx.mjs";
2
+ import { $ as DevframeServiceDefinition, B as DevframeDefinition, Bt as AgentTool, Ct as DevframeRpcClientFunctions, Dt as DevframeStorageScope, Et as DevframeHost, F as CreateMcpServerOptions, Ft as AgentHandle, G as DevframeSetupInfo, Gt as DevframeAgentHostEvents, H as DevframeDockDefaults, Ht as AgentToolProvider, I as McpConnectionInfo, It as AgentManifest, J as DevframeSseOptions, Jt as EventsMap, K as DevframeSnapshotRpcEntry, Kt as EventEmitter, L as McpFetchHandler, Lt as AgentResource, Ot as DevframeDiagnosticsHost, P as CreateMcpFetchHandlerOptions, Q as McpSetting, R as McpServerHandle, Rt as AgentResourceContent, St as DevframeViewHost, Tt as DevframeRpcSharedStates, U as DevframeDuplicationStrategy, Ut as AgentToolProviderHandle, V as DevframeDeploymentKind, Vt as AgentToolInput, W as DevframeRpcOptions, Wt as DevframeAgentHost, X as McpAuthorization, Y as DevframeWsOptions, Z as McpRouteOptions, _t as ScopedClientFunctions, a as DevframeConnectionConfigsRegistry, at as DevframeServiceScopeOf, bt as ScopedSharedStates, c as RpcBroadcastOptions, ct as DevframeServicesScopeRegistry, d as RpcSharedStateHost, dt as DevframeScopedNodeRpc, et as DevframeServiceDescriptor, f as RpcStreamingChannel, ft as DevframeScopedStreamingHost, gt as ScopedBroadcastOptions, ht as DevframeSettingsStore, i as DevframeCapabilities, it as DevframeServiceOf, kt as DevframeDiagnosticsLogger, l as RpcFunctionsHost, lt as DevframeServicesState, m as RpcStreamingHost, mt as DevframeSettingsRegistry, n as ConnectionMetaSse, nt as DevframeServiceInput, o as DevframeNodeContext, ot as DevframeServicesHost, p as RpcStreamingChannelOptions, pt as DevframeSettings, q as DevframeSnapshotRpcInputs, qt as EventUnsubscribe, r as ConnectionMetaWebsocket, rt as DevframeServiceMeta, s as DevframeNodeRpcSession, st as DevframeServicesRegistry, t as ConnectionMeta, tt as DevframeServiceId, u as RpcSharedStateGetOptions, ut as DevframeScopedNodeContext, vt as ScopedRpcFn, wt as DevframeRpcServerFunctions, xt as SettingsForNamespace, yt as ScopedServerFunctions, z as DevframeCliOptions, zt as AgentResourceInput } from "../context--tVkJw3W.mjs";
3
3
  import { a as DevframeWsPeer, i as DevframeRpcTransportKind, n as DevframeRpcConnection, r as DevframeRpcConnectionRequest, t as DevframeNodeRpcSessionMeta } from "../session-r6PDixP6.mjs";
4
4
  import { a as RemoteAssetsStore, i as RemoteAssetsProviderCustom, n as RemoteAssetsErrorMessage, o as StaticAssetsSource, r as RemoteAssetsProvider, t as RemoteAssets } from "../remote-assets-eBvSKZMS.mjs";
5
- import { i as DevframeDefineDiagnosticsOptions } from "../nostics-0sKe5HIj.mjs";
6
- export { AgentHandle, AgentManifest, AgentResource, AgentResourceContent, AgentResourceInput, AgentTool, AgentToolInput, AgentToolProvider, AgentToolProviderHandle, ConnectionMeta, ConnectionMetaSse, ConnectionMetaWebsocket, DevframeAgentHost, DevframeAgentHostEvents, DevframeCapabilities, DevframeCliOptions, DevframeConnectionConfigsRegistry, type DevframeDefineDiagnosticsOptions, DevframeDefinition, DevframeDeploymentKind, DevframeDiagnosticsHost, DevframeDiagnosticsLogger, DevframeDockDefaults, DevframeDuplicationStrategy, DevframeHost, DevframeNodeContext, DevframeNodeRpcSession, type DevframeNodeRpcSessionMeta, DevframeRpcClientFunctions, type DevframeRpcConnection, type DevframeRpcConnectionRequest, DevframeRpcOptions, DevframeRpcServerFunctions, DevframeRpcSharedStates, type DevframeRpcTransportKind, DevframeScopedNodeContext, DevframeScopedNodeRpc, DevframeScopedStreamingHost, DevframeServiceDefinition, DevframeServiceDescriptor, DevframeServiceId, DevframeServiceInput, DevframeServiceMeta, DevframeServiceOf, DevframeServiceScopeOf, DevframeServicesHost, DevframeServicesRegistry, DevframeServicesScopeRegistry, DevframeServicesState, DevframeSettings, DevframeSettingsRegistry, DevframeSettingsStore, DevframeSetupInfo, DevframeSnapshotRpcEntry, DevframeSnapshotRpcInputs, DevframeSseOptions, DevframeStorageScope, DevframeViewHost, DevframeWsOptions, type DevframeWsPeer, EventEmitter, EventUnsubscribe, EventsMap, McpAuthorization, McpRouteOptions, McpSetting, RemoteAssets, RemoteAssetsErrorMessage, RemoteAssetsProvider, RemoteAssetsProviderCustom, RemoteAssetsStore, RpcBroadcastOptions, type RpcFunctionAgentOptions, RpcFunctionsHost, RpcSharedStateGetOptions, RpcSharedStateHost, RpcStreamingChannel, RpcStreamingChannelOptions, RpcStreamingHost, ScopedBroadcastOptions, ScopedClientFunctions, ScopedRpcFn, ScopedServerFunctions, ScopedSharedStates, SettingsForNamespace, StaticAssetsSource };
5
+ import { i as DevframeDefineDiagnosticsOptions } from "../nostics-DWvukRwa.mjs";
6
+ export { AgentHandle, AgentManifest, AgentResource, AgentResourceContent, AgentResourceInput, AgentTool, AgentToolInput, AgentToolProvider, AgentToolProviderHandle, ConnectionMeta, ConnectionMetaSse, ConnectionMetaWebsocket, CreateMcpFetchHandlerOptions, CreateMcpServerOptions, DevframeAgentHost, DevframeAgentHostEvents, DevframeCapabilities, DevframeCliOptions, DevframeConnectionConfigsRegistry, type DevframeDefineDiagnosticsOptions, DevframeDefinition, DevframeDeploymentKind, DevframeDiagnosticsHost, DevframeDiagnosticsLogger, DevframeDockDefaults, DevframeDuplicationStrategy, DevframeHost, DevframeNodeContext, DevframeNodeRpcSession, type DevframeNodeRpcSessionMeta, DevframeRpcClientFunctions, type DevframeRpcConnection, type DevframeRpcConnectionRequest, DevframeRpcOptions, DevframeRpcServerFunctions, DevframeRpcSharedStates, type DevframeRpcTransportKind, DevframeScopedNodeContext, DevframeScopedNodeRpc, DevframeScopedStreamingHost, DevframeServiceDefinition, DevframeServiceDescriptor, DevframeServiceId, DevframeServiceInput, DevframeServiceMeta, DevframeServiceOf, DevframeServiceScopeOf, DevframeServicesHost, DevframeServicesRegistry, DevframeServicesScopeRegistry, DevframeServicesState, DevframeSettings, DevframeSettingsRegistry, DevframeSettingsStore, DevframeSetupInfo, DevframeSnapshotRpcEntry, DevframeSnapshotRpcInputs, DevframeSseOptions, DevframeStorageScope, DevframeViewHost, DevframeWsOptions, type DevframeWsPeer, EventEmitter, EventUnsubscribe, EventsMap, McpAuthorization, McpConnectionInfo, McpFetchHandler, McpRouteOptions, McpServerHandle, McpSetting, RemoteAssets, RemoteAssetsErrorMessage, RemoteAssetsProvider, RemoteAssetsProviderCustom, RemoteAssetsStore, RpcBroadcastOptions, type RpcFunctionAgentOptions, RpcFunctionsHost, RpcSharedStateGetOptions, RpcSharedStateHost, RpcStreamingChannel, RpcStreamingChannelOptions, RpcStreamingHost, ScopedBroadcastOptions, ScopedClientFunctions, ScopedRpcFn, ScopedServerFunctions, ScopedSharedStates, SettingsForNamespace, StaticAssetsSource };
@@ -1,5 +1,4 @@
1
- import { BirpcFn, BirpcReturn as BirpcReturn$1 } from "birpc";
2
- import { StandardSchemaV1 } from "@standard-schema/spec";
1
+ import { t as StandardSchemaV1 } from "./index-CeEtxDmK.mjs";
3
2
  //#region src/rpc/utils.d.ts
4
3
  /** Infers a TypeScript argument tuple from a Standard Schema array */
5
4
  type InferArgsType<S extends RpcArgsSchema | undefined> = S extends readonly [] ? [] : S extends readonly [infer H, ...infer T] ? H extends StandardSchemaV1 ? T extends readonly StandardSchemaV1[] ? [StandardSchemaV1.InferInput<H>, ...InferArgsType<T>] : never : never : never;
@@ -259,4 +258,4 @@ type RpcDefinitionsFilter<T extends readonly RpcFunctionDefinitionAny[], Type ex
259
258
  type: Type;
260
259
  } ? T[K] : never; };
261
260
  //#endregion
262
- export { InferReturnType as A, RpcFunctionDefinitionWithoutSchemas as C, RpcReturnSchema as D, RpcFunctionsCollector as E, Thenable as O, RpcFunctionDefinitionWithSchemas as S, RpcFunctionType as T, RpcFunctionDefinition as _, RpcDefinitionsFilter as a, RpcFunctionDefinitionBase as b, RpcDump as c, RpcDumpDefinition as d, RpcDumpGetter as f, RpcFunctionAgentOptions as g, RpcDumpStore as h, RpcArgsSchema as i, InferArgsType as k, RpcDumpClientOptions as l, RpcDumpRecordError as m, BirpcReturn$1 as n, RpcDefinitionsToFunctions as o, RpcDumpRecord as p, EntriesToObject as r, RpcDefinitionsToFunctionsWithNamespace as s, BirpcFn as t, RpcDumpCollectionOptions as u, RpcFunctionDefinitionAny as v, RpcFunctionSetupResult as w, RpcFunctionDefinitionToFunction as x, RpcFunctionDefinitionAnyWithContext as y };
261
+ export { RpcFunctionType as C, InferArgsType as D, Thenable as E, InferReturnType as O, RpcFunctionSetupResult as S, RpcReturnSchema as T, RpcFunctionDefinitionAnyWithContext as _, RpcDefinitionsToFunctionsWithNamespace as a, RpcFunctionDefinitionWithSchemas as b, RpcDumpCollectionOptions as c, RpcDumpRecord as d, RpcDumpRecordError as f, RpcFunctionDefinitionAny as g, RpcFunctionDefinition as h, RpcDefinitionsToFunctions as i, RpcDumpDefinition as l, RpcFunctionAgentOptions as m, RpcArgsSchema as n, RpcDump as o, RpcDumpStore as p, RpcDefinitionsFilter as r, RpcDumpClientOptions as s, EntriesToObject as t, RpcDumpGetter as u, RpcFunctionDefinitionBase as v, RpcFunctionsCollector as w, RpcFunctionDefinitionWithoutSchemas as x, RpcFunctionDefinitionToFunction as y };
@@ -0,0 +1,50 @@
1
+ //#region ../../node_modules/.pnpm/perfect-debounce@2.1.0/node_modules/perfect-debounce/dist/index.d.mts
2
+ //#region src/index.d.ts
3
+ interface DebounceOptions {
4
+ /**
5
+ Call the `fn` on the [leading edge of the timeout](https://css-tricks.com/debouncing-throttling-explained-examples/#article-header-id-1).
6
+ Meaning immediately, instead of waiting for `wait` milliseconds.
7
+ @default false
8
+ */
9
+ readonly leading?: boolean;
10
+ /**
11
+ Call the `fn` on trailing edge with last used arguments. Result of call is from previous call.
12
+ @default true
13
+ */
14
+ readonly trailing?: boolean;
15
+ }
16
+ type DebouncedReturn<ArgumentsT extends unknown[], ReturnT> = ((...args: ArgumentsT) => Promise<ReturnT>) & {
17
+ /**
18
+ * Cancel pending function call
19
+ */
20
+ cancel: () => void;
21
+ /**
22
+ * Immediately invoke pending function call
23
+ */
24
+ flush: () => Promise<ReturnT> | undefined;
25
+ /**
26
+ * Get pending function call
27
+ */
28
+ isPending: () => boolean;
29
+ };
30
+ /**
31
+ Debounce functions
32
+ @param fn - Promise-returning/async function to debounce.
33
+ @param wait - Milliseconds to wait before calling `fn`. Default value is 25ms
34
+ @returns A function that delays calling `fn` until after `wait` milliseconds have elapsed since the last time it was called.
35
+ @example
36
+ ```
37
+ import { debounce } from 'perfect-debounce';
38
+ const expensiveCall = async input => input;
39
+ const debouncedFn = debounce(expensiveCall, 200);
40
+ for (const number of [1, 2, 3]) {
41
+ console.log(await debouncedFn(number));
42
+ }
43
+ //=> 1
44
+ //=> 2
45
+ //=> 3
46
+ ```
47
+ */
48
+ declare function debounce<ArgumentsT extends unknown[], ReturnT>(fn: (...args: ArgumentsT) => PromiseLike<ReturnT> | ReturnT, wait?: number, options?: DebounceOptions): DebouncedReturn<ArgumentsT, ReturnT>;
49
+ //#endregion
50
+ export { type DebounceOptions, type DebouncedReturn, debounce };
@@ -0,0 +1,88 @@
1
+ //#region ../../node_modules/.pnpm/perfect-debounce@2.1.0/node_modules/perfect-debounce/dist/index.mjs
2
+ const DEBOUNCE_DEFAULTS = { trailing: true };
3
+ /**
4
+ Debounce functions
5
+ @param fn - Promise-returning/async function to debounce.
6
+ @param wait - Milliseconds to wait before calling `fn`. Default value is 25ms
7
+ @returns A function that delays calling `fn` until after `wait` milliseconds have elapsed since the last time it was called.
8
+ @example
9
+ ```
10
+ import { debounce } from 'perfect-debounce';
11
+ const expensiveCall = async input => input;
12
+ const debouncedFn = debounce(expensiveCall, 200);
13
+ for (const number of [1, 2, 3]) {
14
+ console.log(await debouncedFn(number));
15
+ }
16
+ //=> 1
17
+ //=> 2
18
+ //=> 3
19
+ ```
20
+ */
21
+ function debounce(fn, wait = 25, options = {}) {
22
+ options = {
23
+ ...DEBOUNCE_DEFAULTS,
24
+ ...options
25
+ };
26
+ if (!Number.isFinite(wait)) throw new TypeError("Expected `wait` to be a finite number");
27
+ let leadingValue;
28
+ let timeout;
29
+ let resolveList = [];
30
+ let currentPromise;
31
+ let trailingArgs;
32
+ const applyFn = (_this, args) => {
33
+ currentPromise = _applyPromised(fn, _this, args);
34
+ currentPromise.finally(() => {
35
+ currentPromise = null;
36
+ if (options.trailing && trailingArgs && !timeout) {
37
+ const promise = applyFn(_this, trailingArgs);
38
+ trailingArgs = null;
39
+ return promise;
40
+ }
41
+ });
42
+ return currentPromise;
43
+ };
44
+ const debounced = function(...args) {
45
+ if (options.trailing) trailingArgs = args;
46
+ if (currentPromise) return currentPromise;
47
+ return new Promise((resolve) => {
48
+ const shouldCallNow = !timeout && options.leading;
49
+ clearTimeout(timeout);
50
+ timeout = setTimeout(() => {
51
+ timeout = null;
52
+ const promise = options.leading ? leadingValue : applyFn(this, args);
53
+ trailingArgs = null;
54
+ for (const _resolve of resolveList) _resolve(promise);
55
+ resolveList = [];
56
+ }, wait);
57
+ if (shouldCallNow) {
58
+ leadingValue = applyFn(this, args);
59
+ resolve(leadingValue);
60
+ } else resolveList.push(resolve);
61
+ });
62
+ };
63
+ const _clearTimeout = (timer) => {
64
+ if (timer) {
65
+ clearTimeout(timer);
66
+ timeout = null;
67
+ }
68
+ };
69
+ debounced.isPending = () => !!timeout;
70
+ debounced.cancel = () => {
71
+ _clearTimeout(timeout);
72
+ resolveList = [];
73
+ trailingArgs = null;
74
+ };
75
+ debounced.flush = () => {
76
+ _clearTimeout(timeout);
77
+ if (!trailingArgs || currentPromise) return;
78
+ const args = trailingArgs;
79
+ trailingArgs = null;
80
+ return applyFn(this, args);
81
+ };
82
+ return debounced;
83
+ }
84
+ async function _applyPromised(fn, _this, args) {
85
+ return await fn.apply(_this, args);
86
+ }
87
+ //#endregion
88
+ export { debounce };
@@ -1,4 +1,4 @@
1
- import { Ut as EventsMap, Vt as EventEmitter } from "../context-BLHBDQcZ.mjs";
1
+ import { Jt as EventsMap, Kt as EventEmitter } from "../context--tVkJw3W.mjs";
2
2
  //#region src/utils/events.d.ts
3
3
  /**
4
4
  * Create event emitter.
@@ -1,4 +1,12 @@
1
1
  //#region src/utils/launch-editor.d.ts
2
+ /**
3
+ * Editor commands `launch-editor` recognizes with a tailored
4
+ * `file:line:column` invocation. Callers that gate an RPC surface's editor
5
+ * argument to this union keep it from spawning an arbitrary command.
6
+ */
7
+ export type KnownEditor = 'atom' | 'subl' | 'sublime' | 'sublime_text' | 'wstorm' | 'charm' | 'zed' | 'notepad++' | 'vim' | 'mvim' | 'joe' | 'gvim' | 'emacs' | 'emacsclient' | 'rmate' | 'mate' | 'code' | 'code-insiders' | 'codium' | 'vscodium' | 'trae' | 'antigravity' | 'cursor' | 'appcode' | 'clion' | 'idea' | 'phpstorm' | 'pycharm' | 'rubymine' | 'webstorm' | 'goland' | 'rider';
8
+ /** Runtime list of every {@link KnownEditor}. */
9
+ export declare const KNOWN_EDITORS: KnownEditor[];
2
10
  /**
3
11
  * Open a file in the user's editor.
4
12
  *
@@ -707,6 +707,41 @@ var import_launch_editor = /* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJSMi
707
707
  }
708
708
  module.exports = launchEditor;
709
709
  })))(), 1);
710
+ /** Runtime list of every {@link KnownEditor}. */
711
+ const KNOWN_EDITORS = [
712
+ "atom",
713
+ "subl",
714
+ "sublime",
715
+ "sublime_text",
716
+ "wstorm",
717
+ "charm",
718
+ "zed",
719
+ "notepad++",
720
+ "vim",
721
+ "mvim",
722
+ "joe",
723
+ "gvim",
724
+ "emacs",
725
+ "emacsclient",
726
+ "rmate",
727
+ "mate",
728
+ "code",
729
+ "code-insiders",
730
+ "codium",
731
+ "vscodium",
732
+ "trae",
733
+ "antigravity",
734
+ "cursor",
735
+ "appcode",
736
+ "clion",
737
+ "idea",
738
+ "phpstorm",
739
+ "pycharm",
740
+ "rubymine",
741
+ "webstorm",
742
+ "goland",
743
+ "rider"
744
+ ];
710
745
  /**
711
746
  * Open a file in the user's editor.
712
747
  *
@@ -720,4 +755,4 @@ function launchEditor(target, editor) {
720
755
  (0, import_launch_editor.default)(target, editor);
721
756
  }
722
757
  //#endregion
723
- export { launchEditor };
758
+ export { KNOWN_EDITORS, launchEditor };
@@ -1,2 +1,2 @@
1
- import { a as Diagnostic, c as DiagnosticHandle, d as Diagnostics, f as ansiFormatter, g as formatDiagnostic, h as defineProdDiagnostics, i as DevframeDefineDiagnosticsOptions, l as DiagnosticInit, m as defineDiagnostics, n as ConsoleMethod, o as DiagnosticCallParams, p as createConsoleReporter, r as ConsoleReporterOptions, s as DiagnosticDefinition, t as AnyDiagnosticReporter, u as DiagnosticReporter } from "../nostics-0sKe5HIj.mjs";
2
- export { type AnyDiagnosticReporter, type ConsoleMethod, type ConsoleReporterOptions, DevframeDefineDiagnosticsOptions, type Diagnostic, type DiagnosticCallParams, type DiagnosticDefinition, type DiagnosticHandle, type DiagnosticInit, type DiagnosticReporter, type Diagnostics, ansiFormatter, createConsoleReporter, defineDiagnostics, defineProdDiagnostics, formatDiagnostic };
1
+ import { _ as formatDiagnostic, a as DevframeDiagnostics, c as DiagnosticDefinition, d as DiagnosticReporter, f as Diagnostics, g as defineProdDiagnostics, h as defineDiagnostics, i as DevframeDefineDiagnosticsOptions, l as DiagnosticHandle, m as createConsoleReporter, n as ConsoleMethod, o as Diagnostic, p as ansiFormatter, r as ConsoleReporterOptions, s as DiagnosticCallParams, t as AnyDiagnosticReporter, u as DiagnosticInit } from "../nostics-DWvukRwa.mjs";
2
+ export { type AnyDiagnosticReporter, type ConsoleMethod, type ConsoleReporterOptions, DevframeDefineDiagnosticsOptions, DevframeDiagnostics, type Diagnostic, type DiagnosticCallParams, type DiagnosticDefinition, type DiagnosticHandle, type DiagnosticInit, type DiagnosticReporter, type Diagnostics, ansiFormatter, createConsoleReporter, defineDiagnostics, defineProdDiagnostics, formatDiagnostic };
@@ -1,2 +1,2 @@
1
- import { t as resolveStaticAssetsSource } from "../remote-assets-D0StJVLp.mjs";
1
+ import { t as resolveStaticAssetsSource } from "../remote-assets-B9MeWmW6.mjs";
2
2
  export { resolveStaticAssetsSource };
@@ -1,9 +1,9 @@
1
1
  import { t as DEVFRAME_EVENTS } from "../events-BV4Dj59a.mjs";
2
+ import { t as lookup } from "../mrmime-40h5OOIp.mjs";
2
3
  import { realpath, stat } from "node:fs/promises";
3
4
  import { extname, join, normalize, resolve, sep } from "pathe";
4
5
  import { createReadStream } from "node:fs";
5
6
  import { Readable } from "node:stream";
6
- import { lookup } from "mrmime";
7
7
  import { H3, defineHandler } from "h3";
8
8
  //#region src/utils/serve-static.ts
9
9
  const HTML_EXTENSIONS = [".html", ".htm"];
@@ -1,2 +1,2 @@
1
- import { A as SharedStateEvents, D as ImmutableObject, E as ImmutableMap, M as SharedStatePatch, N as createSharedState, O as ImmutableSet, T as ImmutableArray, j as SharedStateOptions, k as SharedState, w as Immutable } from "../context-BLHBDQcZ.mjs";
1
+ import { A as SharedStateEvents, D as ImmutableObject, E as ImmutableMap, M as SharedStatePatch, N as createSharedState, O as ImmutableSet, T as ImmutableArray, j as SharedStateOptions, k as SharedState, w as Immutable } from "../context--tVkJw3W.mjs";
2
2
  export { Immutable, ImmutableArray, ImmutableMap, ImmutableObject, ImmutableSet, SharedState, SharedStateEvents, SharedStateOptions, SharedStatePatch, createSharedState };