devframe 1.1.0 → 1.2.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 (39) hide show
  1. package/dist/{_shared-D1ebaX_J.d.mts → _shared-DjkowZKP.d.mts} +2 -2
  2. package/dist/adapters/build.d.mts +1 -1
  3. package/dist/adapters/cac.d.mts +1 -1
  4. package/dist/adapters/cac.mjs +1 -1
  5. package/dist/adapters/dev.d.mts +3 -3
  6. package/dist/adapters/dev.mjs +1 -1
  7. package/dist/adapters/embedded.d.mts +1 -1
  8. package/dist/adapters/initiate.d.mts +2 -2
  9. package/dist/adapters/initiate.mjs +1 -1
  10. package/dist/adapters/mcp.d.mts +2 -2
  11. package/dist/{agentic-DLqHMOyN.d.mts → agentic-B8y_r5tQ.d.mts} +1 -1
  12. package/dist/client/index.d.mts +9 -1
  13. package/dist/client/index.mjs +7 -2
  14. package/dist/{context--tVkJw3W.d.mts → context-BvaYawdU.d.mts} +2 -0
  15. package/dist/{context-D3qBv0IX.d.mts → context-CNX8VDIJ.d.mts} +1 -1
  16. package/dist/{dev-IkdtaiLZ.mjs → dev-CInztvNK.mjs} +1 -1
  17. package/dist/in-page-channel/index.d.mts +1 -1
  18. package/dist/in-page-channel/index.mjs +1 -1
  19. package/dist/{index-D-2IdY1I.d.mts → index-LtvVaxSc.d.mts} +2 -2
  20. package/dist/index.d.mts +1 -1
  21. package/dist/{instance-shell-kUeR59CR.mjs → instance-shell-C3VrwJRS.mjs} +14 -4
  22. package/dist/{instance-shell-Cpz5d2CI.d.mts → instance-shell-CM2nruNe.d.mts} +2 -2
  23. package/dist/internal/index.d.mts +5 -5
  24. package/dist/internal/index.mjs +1 -1
  25. package/dist/node/auth.d.mts +2 -2
  26. package/dist/node/hub-internals.d.mts +2 -2
  27. package/dist/node/index.d.mts +1 -1
  28. package/dist/recipes/interactive-auth.d.mts +2 -2
  29. package/dist/rpc/transports/ws-bun.d.mts +1 -1
  30. package/dist/rpc/transports/ws-deno.d.mts +1 -1
  31. package/dist/{rpc-core-B6n9MQsc.d.mts → rpc-core-CZ72-_vD.d.mts} +2 -2
  32. package/dist/{shared-state-eQVYHNqA.mjs → shared-state-Cow3u-_m.mjs} +2 -2
  33. package/dist/types/index.d.mts +1 -1
  34. package/dist/utils/events.d.mts +1 -1
  35. package/dist/utils/launch-editor.mjs +75 -19
  36. package/dist/utils/shared-state.d.mts +1 -1
  37. package/dist/utils/shared-state.mjs +1 -1
  38. package/dist/utils/streaming-channel.d.mts +1 -1
  39. package/package.json +6 -6
@@ -1,5 +1,5 @@
1
- import { B as DevframeDefinition, Q as McpSetting, V as DevframeDeploymentKind, Wt as DevframeAgentHost, X as McpAuthorization, t as ConnectionMeta } from "./context--tVkJw3W.mjs";
2
- import { t as AgenticMcpModule } from "./agentic-DLqHMOyN.mjs";
1
+ import { B as DevframeDefinition, Q as McpSetting, V as DevframeDeploymentKind, Wt as DevframeAgentHost, X as McpAuthorization, t as ConnectionMeta } from "./context-BvaYawdU.mjs";
2
+ import { t as AgenticMcpModule } from "./agentic-B8y_r5tQ.mjs";
3
3
  //#region src/adapters/_shared.d.ts
4
4
  /**
5
5
  * Resolve the mount base path for a devframe's SPA. Hosted adapters
@@ -1,4 +1,4 @@
1
- import { B as DevframeDefinition, K as DevframeSnapshotRpcEntry, o as DevframeNodeContext } from "../context--tVkJw3W.mjs";
1
+ import { B as DevframeDefinition, K as DevframeSnapshotRpcEntry, o as DevframeNodeContext } from "../context-BvaYawdU.mjs";
2
2
  import { o as StaticAssetsSource } from "../remote-assets-eBvSKZMS.mjs";
3
3
  //#region src/adapters/build.d.ts
4
4
  export interface CreateBuildOptions {
@@ -1,4 +1,4 @@
1
- import { B as DevframeDefinition, Mt as InferCliFlags, Nt as defineCliFlags, Pt as parseCliFlags, Q as McpSetting, jt as CliFlagsSchema } from "../context--tVkJw3W.mjs";
1
+ import { B as DevframeDefinition, Mt as InferCliFlags, Nt as defineCliFlags, Pt as parseCliFlags, Q as McpSetting, jt as CliFlagsSchema } from "../context-BvaYawdU.mjs";
2
2
  import { CAC } from "cac";
3
3
  import { H3 } from "h3";
4
4
  //#region src/adapters/cac.d.ts
@@ -1,7 +1,7 @@
1
1
  import { s as colors } from "../nostics-D0PvLZsn.mjs";
2
2
  import { i as resolveDevServerPort, s as importAgenticMcp } from "../_shared-B2PZsp-J.mjs";
3
3
  import { createBuild } from "./build.mjs";
4
- import { t as createDevServer } from "../dev-IkdtaiLZ.mjs";
4
+ import { t as createDevServer } from "../dev-CInztvNK.mjs";
5
5
  import process from "node:process";
6
6
  import cac$1 from "cac";
7
7
  //#region src/adapters/flags.ts
@@ -1,9 +1,9 @@
1
- import { At as DevframeAuthHandler, B as DevframeDefinition, J as DevframeSseOptions, Q as McpSetting, Y as DevframeWsOptions, s as DevframeNodeRpcSession } from "../context--tVkJw3W.mjs";
1
+ import { At as DevframeAuthHandler, B as DevframeDefinition, J as DevframeSseOptions, Q as McpSetting, Y as DevframeWsOptions, s as DevframeNodeRpcSession } from "../context-BvaYawdU.mjs";
2
2
  import { n as DevframeRpcConnection, t as DevframeNodeRpcSessionMeta } from "../session-r6PDixP6.mjs";
3
3
  import { o as StaticAssetsSource } from "../remote-assets-eBvSKZMS.mjs";
4
4
  import { n as WsOriginRegistry } from "../ws-server-y2R76aSW.mjs";
5
- import { c as StartedServer } from "../instance-shell-Cpz5d2CI.mjs";
6
- import { c as resolveMcpConnectionMeta, o as resolveDevServerPort, t as ResolveDevServerPortOptions } from "../_shared-D1ebaX_J.mjs";
5
+ import { c as StartedServer } from "../instance-shell-CM2nruNe.mjs";
6
+ import { c as resolveMcpConnectionMeta, o as resolveDevServerPort, t as ResolveDevServerPortOptions } from "../_shared-DjkowZKP.mjs";
7
7
  import { H3 } from "h3";
8
8
  //#region src/adapters/dev.d.ts
9
9
  export interface CreateDevServerOptions {
@@ -1,3 +1,3 @@
1
1
  import { i as resolveDevServerPort, o as resolveMcpConnectionMeta } from "../_shared-B2PZsp-J.mjs";
2
- import { t as createDevServer } from "../dev-IkdtaiLZ.mjs";
2
+ import { t as createDevServer } from "../dev-CInztvNK.mjs";
3
3
  export { createDevServer, resolveDevServerPort, resolveMcpConnectionMeta };
@@ -1,4 +1,4 @@
1
- import { B as DevframeDefinition, o as DevframeNodeContext } from "../context--tVkJw3W.mjs";
1
+ import { B as DevframeDefinition, o as DevframeNodeContext } from "../context-BvaYawdU.mjs";
2
2
  //#region src/adapters/embedded.d.ts
3
3
  export interface CreateEmbeddedOptions {
4
4
  /** Target context the devframe is registered into. Required. */
@@ -1,8 +1,8 @@
1
- import { At as DevframeAuthHandler, B as DevframeDefinition, Dt as DevframeStorageScope, J as DevframeSseOptions, Q as McpSetting, Y as DevframeWsOptions, o as DevframeNodeContext, s as DevframeNodeRpcSession, t as ConnectionMeta } from "../context--tVkJw3W.mjs";
1
+ import { At as DevframeAuthHandler, B as DevframeDefinition, Dt as DevframeStorageScope, J as DevframeSseOptions, Q as McpSetting, Y as DevframeWsOptions, o as DevframeNodeContext, s as DevframeNodeRpcSession, t as ConnectionMeta } from "../context-BvaYawdU.mjs";
2
2
  import { n as DevframeRpcConnection, t as DevframeNodeRpcSessionMeta } from "../session-r6PDixP6.mjs";
3
3
  import { o as StaticAssetsSource } from "../remote-assets-eBvSKZMS.mjs";
4
4
  import { n as WsOriginRegistry } from "../ws-server-y2R76aSW.mjs";
5
- import { c as StartedServer, f as DevframeInstanceRecord } from "../instance-shell-Cpz5d2CI.mjs";
5
+ import { c as StartedServer, f as DevframeInstanceRecord } from "../instance-shell-CM2nruNe.mjs";
6
6
  import { H3 } from "h3";
7
7
  import { Buffer } from "node:buffer";
8
8
  import { IncomingMessage, Server, ServerResponse } from "node:http";
@@ -1,2 +1,2 @@
1
- import { n as getInstanceInternals, r as initDevframe } from "../dev-IkdtaiLZ.mjs";
1
+ import { n as getInstanceInternals, r as initDevframe } from "../dev-CInztvNK.mjs";
2
2
  export { getInstanceInternals, initDevframe };
@@ -1,4 +1,4 @@
1
- import { F as CreateMcpServerOptions, I as McpConnectionInfo, L as McpFetchHandler, P as CreateMcpFetchHandlerOptions, R as McpServerHandle } from "../context--tVkJw3W.mjs";
2
- import { n as MountMcpHttpOptions, r as MountedMcpHttp } from "../agentic-DLqHMOyN.mjs";
1
+ import { F as CreateMcpServerOptions, I as McpConnectionInfo, L as McpFetchHandler, P as CreateMcpFetchHandlerOptions, R as McpServerHandle } from "../context-BvaYawdU.mjs";
2
+ import { n as MountMcpHttpOptions, r as MountedMcpHttp } from "../agentic-B8y_r5tQ.mjs";
3
3
  import { createMcpFetchHandler, createMcpServer, mountMcpHttp } from "@devframes/agentic/mcp";
4
4
  export { type CreateMcpFetchHandlerOptions, type CreateMcpServerOptions, type McpConnectionInfo, type McpFetchHandler, type McpServerHandle, type MountMcpHttpOptions, type MountedMcpHttp, createMcpFetchHandler, createMcpServer, mountMcpHttp };
@@ -1,4 +1,4 @@
1
- import { B as DevframeDefinition, F as CreateMcpServerOptions, L as McpFetchHandler, P as CreateMcpFetchHandlerOptions, R as McpServerHandle, o as DevframeNodeContext } from "./context--tVkJw3W.mjs";
1
+ import { B as DevframeDefinition, F as CreateMcpServerOptions, L as McpFetchHandler, P as CreateMcpFetchHandlerOptions, R as McpServerHandle, o as DevframeNodeContext } from "./context-BvaYawdU.mjs";
2
2
  import { H3 } from "h3";
3
3
  //#region src/node/agentic.d.ts
4
4
  /**
@@ -1,7 +1,7 @@
1
1
  import { i as BirpcReturn, r as BirpcOptions } from "../index-Bia1vKjL.mjs";
2
2
  import { f as RpcCacheManager, p as RpcCacheOptions } from "../index-DuEm0sDH.mjs";
3
3
  import { h as RpcFunctionDefinition, w as RpcFunctionsCollector } from "../types-BmDbfHCx.mjs";
4
- import { Ct as DevframeRpcClientFunctions, Kt as EventEmitter, at as DevframeServiceScopeOf, b as StreamSink, bt as ScopedSharedStates, d as RpcSharedStateHost, k as SharedState, lt as DevframeServicesState, pt as DevframeSettings, rt as DevframeServiceMeta, t as ConnectionMeta, u as RpcSharedStateGetOptions, vt as ScopedRpcFn, wt as DevframeRpcServerFunctions, xt as SettingsForNamespace, y as StreamReader, yt as ScopedServerFunctions } from "../context--tVkJw3W.mjs";
4
+ import { Ct as DevframeRpcClientFunctions, Kt as EventEmitter, at as DevframeServiceScopeOf, b as StreamSink, bt as ScopedSharedStates, d as RpcSharedStateHost, k as SharedState, lt as DevframeServicesState, pt as DevframeSettings, rt as DevframeServiceMeta, t as ConnectionMeta, u as RpcSharedStateGetOptions, vt as ScopedRpcFn, wt as DevframeRpcServerFunctions, xt as SettingsForNamespace, y as StreamReader, yt as ScopedServerFunctions } from "../context-BvaYawdU.mjs";
5
5
  import { t as SseRpcChannelOptions } from "../sse-client-DNdscfu_.mjs";
6
6
  import { t as WsRpcChannelOptions } from "../ws-client-6Mrz6eC4.mjs";
7
7
  //#region src/client/connection.d.ts
@@ -502,6 +502,14 @@ export interface DevframeRpcClientMode {
502
502
  export declare function resolveClientTransport(requested: 'auto' | 'websocket' | 'sse', meta: ConnectionMeta): 'websocket' | 'sse' | 'static';
503
503
  export declare function getDevframeRpcClient(options?: DevframeRpcClientOptions): Promise<DevframeRpcClient>;
504
504
  //#endregion
505
+ //#region src/client/connection-storage.d.ts
506
+ /**
507
+ * Publish the connection on this window for same-origin frames to inherit.
508
+ * Call again after mutating `connection.connectionMeta` so the legacy meta
509
+ * copy below follows.
510
+ */
511
+ export declare function storeConnection(connection: DevframeConnection): void;
512
+ //#endregion
505
513
  //#region src/client/otp.d.ts
506
514
  /**
507
515
  * Read a one-time authentication code (OTP) from the current page URL's
@@ -2,7 +2,7 @@ import { a as defineDiagnostics, i as createBirpc, n as argsToJsonSchema, o as D
2
2
  import { t as hash } from "../hash-DdPnc4k3.mjs";
3
3
  import { createEventEmitter } from "../utils/events.mjs";
4
4
  import { withBase, withProtocol } from "../utils/url.mjs";
5
- import { t as createSharedState } from "../shared-state-eQVYHNqA.mjs";
5
+ import { t as createSharedState } from "../shared-state-Cow3u-_m.mjs";
6
6
  import { i as structuredCloneStringify, n as structuredCloneParse, t as structuredCloneDeserialize } from "../structured-clone-CgtQ61SA.mjs";
7
7
  import { createStreamReader, createStreamSink } from "../utils/streaming-channel.mjs";
8
8
  import { toAgentToolName } from "../utils/agent-tool-name.mjs";
@@ -410,6 +410,11 @@ function readStoredAuthToken(userAuthToken) {
410
410
  } catch {}
411
411
  return readFromWindows(CONNECTION_AUTH_TOKEN_KEY);
412
412
  }
413
+ /**
414
+ * Publish the connection on this window for same-origin frames to inherit.
415
+ * Call again after mutating `connection.connectionMeta` so the legacy meta
416
+ * copy below follows.
417
+ */
413
418
  function storeConnection(connection) {
414
419
  globalThis[DEVFRAME_CONNECTION_KEY] = connection;
415
420
  globalThis[CONNECTION_META_KEY] = {
@@ -2002,4 +2007,4 @@ async function getDevframeRpcClient(options = {}) {
2002
2007
  //#region src/client/index.ts
2003
2008
  const connectDevframe = getDevframeRpcClient;
2004
2009
  //#endregion
2005
- export { DevframeConnectionError, authenticateWithUrlOtp, connectDevframe, consumeOtpFromUrl, createClientSettings, createRpcStreamingClientHost, createScopedClientContext, getDevframeConnection, getDevframeRpcClient, isCallableStatus, readOtpFromUrl, registerDevframeViewerOrigin, registerWebMcpTools, resolveClientTransport, resolveSseUrl, resolveWebMcpModelContext, resolveWsUrl, setupDevframeConnection };
2010
+ export { DevframeConnectionError, authenticateWithUrlOtp, connectDevframe, consumeOtpFromUrl, createClientSettings, createRpcStreamingClientHost, createScopedClientContext, getDevframeConnection, getDevframeRpcClient, isCallableStatus, readOtpFromUrl, registerDevframeViewerOrigin, registerWebMcpTools, resolveClientTransport, resolveSseUrl, resolveWebMcpModelContext, resolveWsUrl, setupDevframeConnection, storeConnection };
@@ -1376,6 +1376,8 @@ interface DevframeCliOptions {
1376
1376
  interface DevframeDockDefaults {
1377
1377
  /** Dock entry title. Defaults to the definition's `name`. */
1378
1378
  title?: string;
1379
+ /** Translations of `title` by BCP 47 tag; see `@devframes/hub`'s `resolveTitle()`. */
1380
+ titleLocales?: Record<string, string>;
1379
1381
  /** Dock entry icon. Defaults to the definition's `icon`. */
1380
1382
  icon?: string | {
1381
1383
  light: string;
@@ -1,4 +1,4 @@
1
- import { k as SharedState, o as DevframeNodeContext } from "./context--tVkJw3W.mjs";
1
+ import { k as SharedState, o as DevframeNodeContext } from "./context-BvaYawdU.mjs";
2
2
  //#region src/node/hub-internals/context.d.ts
3
3
  interface InternalAnonymousAuthStorage {
4
4
  trusted: Record<string, {
@@ -4,7 +4,7 @@ import { t as createHostContext } from "./context-BqpgC5tq.mjs";
4
4
  import { t as resolveStaticAssetsSource } from "./remote-assets-B9MeWmW6.mjs";
5
5
  import { a as resolveMcpConfig, c as joinURL, d as withoutLeadingSlash, i as resolveDevServerPort, l as withBase, n as normalizeBasePath, r as resolveBasePath, s as importAgenticMcp, t as loadAutoMcpAdapter } from "./_shared-B2PZsp-J.mjs";
6
6
  import { t as createH3DevframeHost } from "./host-h3-BROI6SQ4.mjs";
7
- import { i as normalizeHttpServerUrl, n as resolveInstanceRegister, t as createInstanceShell } from "./instance-shell-kUeR59CR.mjs";
7
+ import { i as normalizeHttpServerUrl, n as resolveInstanceRegister, t as createInstanceShell } from "./instance-shell-C3VrwJRS.mjs";
8
8
  import { open } from "./utils/open.mjs";
9
9
  import { mountStaticHandler } from "./utils/serve-static.mjs";
10
10
  import { resolve } from "pathe";
@@ -1,5 +1,5 @@
1
1
  import { D as InferArgsType, E as Thenable, O as InferReturnType, T as RpcReturnSchema, m as RpcFunctionAgentOptions, n as RpcArgsSchema } from "../types-BmDbfHCx.mjs";
2
- import { Kt as EventEmitter, k as SharedState } from "../context--tVkJw3W.mjs";
2
+ import { Kt as EventEmitter, k as SharedState } from "../context-BvaYawdU.mjs";
3
3
  //#region src/in-page-channel/types.d.ts
4
4
  /**
5
5
  * The shared contract of one in-page channel, declared once (usually in a
@@ -1,6 +1,6 @@
1
1
  import { a as defineDiagnostics, i as createBirpc, n as argsToJsonSchema, o as DEVFRAME_EVENTS, r as resolveAgentSafety, t as toolInputToRpcArgs } from "../tool-input-BAQXvvqL.mjs";
2
2
  import { createEventEmitter } from "../utils/events.mjs";
3
- import { t as createSharedState } from "../shared-state-eQVYHNqA.mjs";
3
+ import { t as createSharedState } from "../shared-state-Cow3u-_m.mjs";
4
4
  import { nanoid } from "../utils/nanoid.mjs";
5
5
  import { r as registerBrowserAgentTool } from "../browser-agent-Pu-FLk6I.mjs";
6
6
  //#region src/in-page-channel/diagnostics.ts
@@ -1,5 +1,5 @@
1
- import { k as SharedState, o as DevframeNodeContext, s as DevframeNodeRpcSession } from "./context--tVkJw3W.mjs";
2
- import { n as InternalAnonymousAuthStorage } from "./context-D3qBv0IX.mjs";
1
+ import { k as SharedState, o as DevframeNodeContext, s as DevframeNodeRpcSession } from "./context-BvaYawdU.mjs";
2
+ import { n as InternalAnonymousAuthStorage } from "./context-CNX8VDIJ.mjs";
3
3
  //#region src/node/auth/revoke.d.ts
4
4
  /**
5
5
  * Flip `isTrusted` to false on any live WS clients connected with `token`
package/dist/index.d.mts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { C as RpcFunctionType, T as RpcReturnSchema, h as RpcFunctionDefinition, m as RpcFunctionAgentOptions, n as RpcArgsSchema } 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";
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-BvaYawdU.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
5
  import { i as DevframeDefineDiagnosticsOptions } from "./nostics-DWvukRwa.mjs";
@@ -7,6 +7,7 @@ import { n as createInteractiveAuth } from "./interactive-auth-BCa_iamv.mjs";
7
7
  import { createServer } from "node:http";
8
8
  import process from "node:process";
9
9
  import { isIP } from "node:net";
10
+ import { Server } from "node:tls";
10
11
  import { H3, defineHandler, toNodeHandler } from "h3";
11
12
  //#region src/node/runtime.ts
12
13
  /**
@@ -106,9 +107,17 @@ async function bindHttpAndWs(options) {
106
107
  const address = httpServer.address();
107
108
  const resolvedPort = typeof address === "object" && address ? address.port : port;
108
109
  const origin = normalizeHttpServerUrl(bindHost, resolvedPort);
109
- const internal = getInternalContext(context);
110
- const wsUrl = `ws://${formatHostForUrl(bindHost)}:${resolvedPort}${options.path ?? ""}`;
111
- if (websocket) internal.setWsEndpoint({ url: wsUrl });
110
+ let wsUrl;
111
+ const publishWsEndpoint = () => {
112
+ const bound = httpServer.address();
113
+ if (!bound || typeof bound === "string") return;
114
+ wsUrl = `${httpServer instanceof Server ? "wss" : "ws"}://${formatHostForUrl(bindHost)}:${bound.port}${options.path ?? ""}`;
115
+ getInternalContext(context).setWsEndpoint({ url: wsUrl });
116
+ };
117
+ if (websocket) {
118
+ if (httpServer.listening) publishWsEndpoint();
119
+ else httpServer.once("listening", publishWsEndpoint);
120
+ }
112
121
  return {
113
122
  origin,
114
123
  port: resolvedPort,
@@ -117,9 +126,10 @@ async function bindHttpAndWs(options) {
117
126
  rpcGroup: core.rpcGroup,
118
127
  connectionMeta: () => websocketConnectionMeta(rpcHost, options.path),
119
128
  async close() {
129
+ httpServer.off("listening", publishWsEndpoint);
120
130
  await closeWs();
121
131
  if (ownsHttpServer) await new Promise((r) => httpServer.close(() => r()));
122
- if (websocket && getInternalContext(context).wsEndpoint?.url === wsUrl) getInternalContext(context).setWsEndpoint(void 0);
132
+ if (wsUrl && getInternalContext(context).wsEndpoint?.url === wsUrl) getInternalContext(context).setWsEndpoint(void 0);
123
133
  }
124
134
  };
125
135
  }
@@ -1,8 +1,8 @@
1
1
  import { n as BirpcGroup } from "./index-Bia1vKjL.mjs";
2
- import { At as DevframeAuthHandler, Ct as DevframeRpcClientFunctions, J as DevframeSseOptions, Y as DevframeWsOptions, o as DevframeNodeContext, s as DevframeNodeRpcSession, t as ConnectionMeta, wt as DevframeRpcServerFunctions } from "./context--tVkJw3W.mjs";
2
+ import { At as DevframeAuthHandler, Ct as DevframeRpcClientFunctions, J as DevframeSseOptions, Y as DevframeWsOptions, o as DevframeNodeContext, s as DevframeNodeRpcSession, t as ConnectionMeta, wt as DevframeRpcServerFunctions } from "./context-BvaYawdU.mjs";
3
3
  import { n as DevframeRpcConnection, t as DevframeNodeRpcSessionMeta } from "./session-r6PDixP6.mjs";
4
4
  import { n as WsOriginRegistry } from "./ws-server-y2R76aSW.mjs";
5
- import "./index-D-2IdY1I.mjs";
5
+ import "./index-LtvVaxSc.mjs";
6
6
  import { H3 } from "h3";
7
7
  import { NodeAdapter } from "crossws/adapters/node";
8
8
  import { Buffer } from "node:buffer";
@@ -1,11 +1,11 @@
1
1
  import { t as StandardSchemaV1 } from "../index-CeEtxDmK.mjs";
2
2
  import { g as RpcFunctionDefinitionAny } from "../types-BmDbfHCx.mjs";
3
- import { Bt as AgentTool, Et as DevframeHost, Ft as AgentHandle, Gt as DevframeAgentHostEvents, Ht as AgentToolProvider, It as AgentManifest, Kt as EventEmitter, Lt as AgentResource, Rt as AgentResourceContent, Ut as AgentToolProviderHandle, Vt as AgentToolInput, Wt as DevframeAgentHost$1, o as DevframeNodeContext, zt as AgentResourceInput } from "../context--tVkJw3W.mjs";
3
+ import { Bt as AgentTool, Et as DevframeHost, Ft as AgentHandle, Gt as DevframeAgentHostEvents, Ht as AgentToolProvider, It as AgentManifest, Kt as EventEmitter, Lt as AgentResource, Rt as AgentResourceContent, Ut as AgentToolProviderHandle, Vt as AgentToolInput, Wt as DevframeAgentHost$1, o as DevframeNodeContext, zt as AgentResourceInput } from "../context-BvaYawdU.mjs";
4
4
  import { a as RemoteAssetsStore } from "../remote-assets-eBvSKZMS.mjs";
5
- import { a as InstanceShellInit, c as StartedServer, d as samePath, f as DevframeInstanceRecord, g as registerDevframeInstance, h as probeDevframeOrigin, i as InstanceShellApi, l as createInstanceShell, m as listLiveDevframeInstances, n as InstanceRegisterConfig, o as InstanceShellInternals, p as DevframeInstanceRegistration, r as InstanceShell, s as InstanceWsTier, t as CreateInstanceShellOptions, u as resolveInstanceRegister } from "../instance-shell-Cpz5d2CI.mjs";
6
- import { i as importAgenticMcp, n as MountMcpHttpOptions, r as MountedMcpHttp, t as AgenticMcpModule } from "../agentic-DLqHMOyN.mjs";
7
- import { a as resolveBasePath, i as normalizeBasePath, n as ResolvedMcpConfig, r as loadAutoMcpAdapter, s as resolveMcpConfig } from "../_shared-D1ebaX_J.mjs";
8
- import { n as CreateContextRpcServerOptions, r as createContextRpcServer, t as ContextRpcServer } from "../rpc-core-B6n9MQsc.mjs";
5
+ import { a as InstanceShellInit, c as StartedServer, d as samePath, f as DevframeInstanceRecord, g as registerDevframeInstance, h as probeDevframeOrigin, i as InstanceShellApi, l as createInstanceShell, m as listLiveDevframeInstances, n as InstanceRegisterConfig, o as InstanceShellInternals, p as DevframeInstanceRegistration, r as InstanceShell, s as InstanceWsTier, t as CreateInstanceShellOptions, u as resolveInstanceRegister } from "../instance-shell-CM2nruNe.mjs";
6
+ import { i as importAgenticMcp, n as MountMcpHttpOptions, r as MountedMcpHttp, t as AgenticMcpModule } from "../agentic-B8y_r5tQ.mjs";
7
+ import { a as resolveBasePath, i as normalizeBasePath, n as ResolvedMcpConfig, r as loadAutoMcpAdapter, s as resolveMcpConfig } from "../_shared-DjkowZKP.mjs";
8
+ import { n as CreateContextRpcServerOptions, r as createContextRpcServer, t as ContextRpcServer } from "../rpc-core-CZ72-_vD.mjs";
9
9
  //#region src/agent/stringify.d.ts
10
10
  /**
11
11
  * JSON-coercing serializer for MCP text payloads.
@@ -6,7 +6,7 @@ import { a as resolveMcpConfig, n as normalizeBasePath, r as resolveBasePath, s
6
6
  import { t as importRuntimeModule } from "../import-runtime-module-BzlEQ9PI.mjs";
7
7
  import { t as createH3DevframeHost } from "../host-h3-BROI6SQ4.mjs";
8
8
  import { i as registerDevframeInstance, n as listLiveDevframeInstances, r as probeDevframeOrigin } from "../instance-registry-C-nC0By7.mjs";
9
- import { i as normalizeHttpServerUrl, n as resolveInstanceRegister, r as samePath, t as createInstanceShell } from "../instance-shell-kUeR59CR.mjs";
9
+ import { i as normalizeHttpServerUrl, n as resolveInstanceRegister, r as samePath, t as createInstanceShell } from "../instance-shell-C3VrwJRS.mjs";
10
10
  import { t as createContextRpcServer } from "../rpc-core-BXyMjbKG.mjs";
11
11
  //#region src/agent/stringify.ts
12
12
  /**
@@ -1,3 +1,3 @@
1
- import { At as DevframeAuthHandler } from "../context--tVkJw3W.mjs";
2
- import { a as getTempAuthCodeInfo, c as revokeActiveConnectionsForToken, i as getTempAuthCode, l as revokeAuthToken, n as describeUA, o as refreshTempAuthCode, r as exchangeTempAuthCode, s as verifyAuthToken, t as buildOtpAuthUrl } from "../index-D-2IdY1I.mjs";
1
+ import { At as DevframeAuthHandler } from "../context-BvaYawdU.mjs";
2
+ import { a as getTempAuthCodeInfo, c as revokeActiveConnectionsForToken, i as getTempAuthCode, l as revokeAuthToken, n as describeUA, o as refreshTempAuthCode, r as exchangeTempAuthCode, s as verifyAuthToken, t as buildOtpAuthUrl } from "../index-LtvVaxSc.mjs";
3
3
  export { DevframeAuthHandler, buildOtpAuthUrl, describeUA, exchangeTempAuthCode, getTempAuthCode, getTempAuthCodeInfo, refreshTempAuthCode, revokeActiveConnectionsForToken, revokeAuthToken, verifyAuthToken };
@@ -1,3 +1,3 @@
1
- import { a as internalContextMap, i as getInternalContext, n as InternalAnonymousAuthStorage, r as RemoteTokenRecord, t as DevframeInternalContext } from "../context-D3qBv0IX.mjs";
2
- import { a as resolveBasePath, i as normalizeBasePath } from "../_shared-D1ebaX_J.mjs";
1
+ import { a as internalContextMap, i as getInternalContext, n as InternalAnonymousAuthStorage, r as RemoteTokenRecord, t as DevframeInternalContext } from "../context-CNX8VDIJ.mjs";
2
+ import { a as resolveBasePath, i as normalizeBasePath } from "../_shared-DjkowZKP.mjs";
3
3
  export { type DevframeInternalContext, type InternalAnonymousAuthStorage, type RemoteTokenRecord, getInternalContext, internalContextMap, normalizeBasePath, resolveBasePath };
@@ -1,5 +1,5 @@
1
1
  import { g as RpcFunctionDefinitionAny } from "../types-BmDbfHCx.mjs";
2
- import { Et as DevframeHost, k as SharedState, l as RpcFunctionsHost, o as DevframeNodeContext } from "../context--tVkJw3W.mjs";
2
+ import { Et as DevframeHost, k as SharedState, l as RpcFunctionsHost, o as DevframeNodeContext } from "../context-BvaYawdU.mjs";
3
3
  //#region src/node/context.d.ts
4
4
  export interface CreateHostContextOptions {
5
5
  cwd: string;
@@ -1,5 +1,5 @@
1
- import { At as DevframeAuthHandler, o as DevframeNodeContext, s as DevframeNodeRpcSession } from "../context--tVkJw3W.mjs";
2
- import "../index-D-2IdY1I.mjs";
1
+ import { At as DevframeAuthHandler, o as DevframeNodeContext, s as DevframeNodeRpcSession } from "../context-BvaYawdU.mjs";
2
+ import "../index-LtvVaxSc.mjs";
3
3
  import { ColorFn } from "../utils/colors.mjs";
4
4
  //#region src/recipes/interactive-auth.d.ts
5
5
  export interface CreateInteractiveAuthOptions {
@@ -1,5 +1,5 @@
1
1
  import { n as WsOriginRegistry } from "../../ws-server-y2R76aSW.mjs";
2
- import { t as ContextRpcServer } from "../../rpc-core-B6n9MQsc.mjs";
2
+ import { t as ContextRpcServer } from "../../rpc-core-CZ72-_vD.mjs";
3
3
  //#region src/rpc/transports/ws-bun.d.ts
4
4
  export interface AttachBunWsTransportOptions {
5
5
  /** Same contract as `WsRpcTransportOptions.allowedOrigins`. */
@@ -1,5 +1,5 @@
1
1
  import { n as WsOriginRegistry } from "../../ws-server-y2R76aSW.mjs";
2
- import { t as ContextRpcServer } from "../../rpc-core-B6n9MQsc.mjs";
2
+ import { t as ContextRpcServer } from "../../rpc-core-CZ72-_vD.mjs";
3
3
  //#region src/rpc/transports/ws-deno.d.ts
4
4
  export interface AttachDenoWsTransportOptions {
5
5
  /** Same contract as `WsRpcTransportOptions.allowedOrigins`. */
@@ -1,8 +1,8 @@
1
1
  import { n as BirpcGroup, o as EventOptions } from "./index-Bia1vKjL.mjs";
2
- import { At as DevframeAuthHandler, Ct as DevframeRpcClientFunctions, o as DevframeNodeContext, s as DevframeNodeRpcSession, wt as DevframeRpcServerFunctions } from "./context--tVkJw3W.mjs";
2
+ import { At as DevframeAuthHandler, Ct as DevframeRpcClientFunctions, o as DevframeNodeContext, s as DevframeNodeRpcSession, wt as DevframeRpcServerFunctions } from "./context-BvaYawdU.mjs";
3
3
  import { n as DevframeRpcConnection, t as DevframeNodeRpcSessionMeta } from "./session-r6PDixP6.mjs";
4
4
  import "./ws-server-y2R76aSW.mjs";
5
- import "./index-D-2IdY1I.mjs";
5
+ import "./index-LtvVaxSc.mjs";
6
6
  //#region src/node/rpc-core.d.ts
7
7
  interface CreateContextRpcServerOptions {
8
8
  context: DevframeNodeContext;
@@ -1,6 +1,6 @@
1
1
  import { createEventEmitter } from "./utils/events.mjs";
2
2
  import { nanoid } from "./utils/nanoid.mjs";
3
- //#region ../../node_modules/.pnpm/immer@11.1.18/node_modules/immer/dist/immer.mjs
3
+ //#region ../../node_modules/.pnpm/immer@11.1.21/node_modules/immer/dist/immer.mjs
4
4
  var NOTHING = Symbol.for("immer-nothing");
5
5
  var DRAFTABLE = Symbol.for("immer-draftable");
6
6
  var DRAFT_STATE = Symbol.for("immer-state");
@@ -384,7 +384,7 @@ var objectTraps = {
384
384
  const currentState = current2?.[DRAFT_STATE];
385
385
  if (currentState && currentState.base_ === value) {
386
386
  state.copy_[prop] = value;
387
- state.assigned_.set(prop, false);
387
+ state.assigned_.delete(prop);
388
388
  return true;
389
389
  }
390
390
  if (is(value, current2) && (value !== void 0 || has(state.base_, prop, state.type_))) return true;
@@ -1,5 +1,5 @@
1
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";
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-BvaYawdU.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
5
  import { i as DevframeDefineDiagnosticsOptions } from "../nostics-DWvukRwa.mjs";
@@ -1,4 +1,4 @@
1
- import { Jt as EventsMap, Kt as EventEmitter } from "../context--tVkJw3W.mjs";
1
+ import { Jt as EventsMap, Kt as EventEmitter } from "../context-BvaYawdU.mjs";
2
2
  //#region src/utils/events.d.ts
3
3
  /**
4
4
  * Create event emitter.
@@ -69,20 +69,29 @@ var require_picocolors = /* @__PURE__ */ __commonJSMin(((exports, module) => {
69
69
  module.exports.createColors = createColors;
70
70
  }));
71
71
  //#endregion
72
- //#region ../../node_modules/.pnpm/shell-quote@1.10.0/node_modules/shell-quote/quote.js
72
+ //#region ../../node_modules/.pnpm/shell-quote@1.12.0/node_modules/shell-quote/quote.js
73
73
  var require_quote = /* @__PURE__ */ __commonJSMin(((exports, module) => {
74
74
  /** @import { ControlOperator } from './parse' */
75
75
  /** @type {ControlOperator['op'][]} */
76
76
  var OPS = [
77
77
  "||",
78
78
  "&&",
79
+ ";;&",
79
80
  ";;",
81
+ ";&",
80
82
  "|&",
81
83
  "<(",
84
+ ">(",
82
85
  "<<<",
86
+ "<<-",
87
+ "<<",
83
88
  ">>",
84
89
  ">&",
90
+ ">|",
91
+ "&>>",
92
+ "&>",
85
93
  "<&",
94
+ "<>",
86
95
  "&",
87
96
  ";",
88
97
  "(",
@@ -92,15 +101,18 @@ var require_quote = /* @__PURE__ */ __commonJSMin(((exports, module) => {
92
101
  ">"
93
102
  ];
94
103
  var LINE_TERMINATORS = /[\n\r\u2028\u2029]/;
95
- var GLOB_SHELL_SPECIAL = /[\s#!"$&'():;<=>@\\^`|]/g;
104
+ var GLOB_SHELL_SPECIAL = /[\s#!"$&'():;<=>@\\^`|~]/g;
96
105
  /** @type {typeof import('./quote')} */
97
106
  module.exports = function quote(xs) {
107
+ var sawComment = false;
98
108
  return xs.map(function(s) {
109
+ if (sawComment && typeof s === "string" && LINE_TERMINATORS.test(s)) throw new TypeError("a token after a `comment` must not contain line terminators");
99
110
  if (s === "") return "''";
100
111
  if (s && typeof s === "object") {
101
112
  if ("op" in s && s.op === "glob") {
102
113
  if (typeof s.pattern !== "string") throw new TypeError("glob token requires a string `pattern`");
103
114
  if (LINE_TERMINATORS.test(s.pattern)) throw new TypeError("glob `pattern` must not contain line terminators");
115
+ if (s.pattern === "") return "''";
104
116
  return s.pattern.replace(GLOB_SHELL_SPECIAL, "\\$&");
105
117
  }
106
118
  if ("op" in s && typeof s.op === "string") {
@@ -109,18 +121,20 @@ var require_quote = /* @__PURE__ */ __commonJSMin(((exports, module) => {
109
121
  }
110
122
  if ("comment" in s && typeof s.comment === "string") {
111
123
  if (LINE_TERMINATORS.test(s.comment)) throw new TypeError("`comment` must not contain line terminators");
124
+ sawComment = true;
112
125
  return "#" + s.comment;
113
126
  }
114
127
  throw new TypeError("unrecognized object token shape");
115
128
  }
116
- if (/["\s\\]/.test(s) && !/'/.test(s)) return "'" + s.replace(/(['])/g, "\\$1") + "'";
117
- if (/["'\s]/.test(s)) return "\"" + s.replace(/(["\\$`!])/g, "\\$1") + "\"";
129
+ if (/'/.test(s) && /!/.test(s)) return "'" + s.replace(/'/g, "'\"'\"'") + "'";
130
+ if (/["\s\\]/.test(s) && !/'/.test(s)) return "'" + s + "'";
131
+ if (/["'\s]/.test(s)) return "\"" + s.replace(/(["\\$`])/g, "\\$1") + "\"";
118
132
  return String(s).replace(/([A-Za-z]:)?([#!"$&'()*,:;<=>?@[\\\]^`{|}~])/g, "$1\\$2");
119
133
  }).join(" ");
120
134
  };
121
135
  }));
122
136
  //#endregion
123
- //#region ../../node_modules/.pnpm/shell-quote@1.10.0/node_modules/shell-quote/parse.js
137
+ //#region ../../node_modules/.pnpm/shell-quote@1.12.0/node_modules/shell-quote/parse.js
124
138
  var require_parse = /* @__PURE__ */ __commonJSMin(((exports, module) => {
125
139
  /**
126
140
  * @import {
@@ -131,20 +145,26 @@ var require_parse = /* @__PURE__ */ __commonJSMin(((exports, module) => {
131
145
  * } from './parse' */
132
146
  var CONTROL = "(?:" + [
133
147
  "\\|\\|",
134
- "\\&\\&",
135
- ";;",
136
- "\\|\\&",
148
+ "\\&(?:\\&|>>?)",
149
+ ";;\\&?",
150
+ "[;|]\\&",
137
151
  "\\<\\(",
138
152
  "\\<\\<\\<",
153
+ "\\<\\<-",
154
+ "\\<\\<(?!\\()",
139
155
  ">>",
140
- ">\\&",
141
- "<\\&",
156
+ ">[&|(]",
157
+ "<[&>]",
142
158
  "[&;()|<>]"
143
159
  ].join("|") + ")";
144
160
  var controlRE = new RegExp("^" + CONTROL + "$");
145
161
  var META = "|&;()<> \\t";
146
162
  var SINGLE_QUOTE = "'([^']*?)'";
147
- var DOUBLE_QUOTE = "\"((\\\\\"|[^\"])*?)\"";
163
+ var ANSI_C_BODY = "(?:\\\\[\\s\\S]|[^\\\\'])*?";
164
+ var ANSI_C_QUOTE = "\\$'" + ANSI_C_BODY + "'";
165
+ var ansiCAt = new RegExp("\\$'" + ANSI_C_BODY + "(?:(')|\\\\?$)", "g");
166
+ var ANSI_C_LETTERS = "abeEfnrtv";
167
+ var ANSI_C_CHARS = "\x07\b\x1B\x1B\f\n\r \v";
148
168
  var hash = /^#$/;
149
169
  var SQ = "'";
150
170
  var DQ = "\"";
@@ -180,6 +200,38 @@ var require_parse = /* @__PURE__ */ __commonJSMin(((exports, module) => {
180
200
  if (typeof r === "object") return pre + TOKEN + JSON.stringify(r) + TOKEN;
181
201
  return pre + r;
182
202
  }
203
+ var ansiCEscape = /\\([0-7]{1,3}|x[\dA-Fa-f]{1,2}|u[\dA-Fa-f]{1,4}|U[\dA-Fa-f]{1,8}|c(?:\\\\|[\s\S])|[abeEfnrtv\\'"?])/g;
204
+ /**
205
+ * @param {string} m
206
+ * @param {string} escape
207
+ */
208
+ function expandAnsiCEscape(m, escape) {
209
+ var kind = escape.charAt(0);
210
+ if (kind === "c") {
211
+ var ctrl = escape.charAt(1);
212
+ return ctrl === "?" ? "" : String.fromCharCode(ctrl.charCodeAt(0) & 31);
213
+ }
214
+ if (kind === "x" || kind === "u" || kind === "U") {
215
+ var cp = parseInt(escape.slice(1), 16);
216
+ if (cp > 1114111) return m;
217
+ return String.fromCharCode.apply(null, cp > 65535 ? [55232 + (cp >> 10), 56320 + (cp & 1023)] : [cp]);
218
+ }
219
+ if (kind >= "0" && kind <= "7") return String.fromCharCode(parseInt(escape, 8) & 255);
220
+ var letter = ANSI_C_LETTERS.indexOf(escape);
221
+ return letter < 0 ? escape : ANSI_C_CHARS.charAt(letter);
222
+ }
223
+ /** @param {string} body */
224
+ function expandAnsiC(body) {
225
+ return body.replace(ansiCEscape, expandAnsiCEscape).split("\0")[0];
226
+ }
227
+ /**
228
+ * @param {string} s
229
+ * @param {number} i
230
+ */
231
+ function closesAnsiC(s, i) {
232
+ ansiCAt.lastIndex = i;
233
+ return !!ansiCAt.exec(s)[1];
234
+ }
183
235
  /**
184
236
  * @param {string} string
185
237
  * @param {Env} [env]
@@ -190,8 +242,9 @@ var require_parse = /* @__PURE__ */ __commonJSMin(((exports, module) => {
190
242
  if (!opts) opts = {};
191
243
  var BS = opts.escape || "\\";
192
244
  var ifs = opts.splitUnquoted === true ? " \n" : typeof opts.splitUnquoted === "string" ? opts.splitUnquoted : "";
193
- var BAREWORD = "(\\" + BS + "['\"" + META + "]|[^\\s'\"" + META + "])+";
194
- var matches = matchAll(string, new RegExp(["(" + CONTROL + ")", "(" + BAREWORD + "|" + DOUBLE_QUOTE + "|" + SINGLE_QUOTE + ")+"].join("|"), "g"));
245
+ var BAREWORD = "(\\" + BS + "['\"$\\" + BS + META + "]|\\$\\$|\\$(?!" + ANSI_C_QUOTE.slice(2) + ")|[^\\s'\"$" + META + "])+";
246
+ var DOUBLE_QUOTE = "\"(?:\\" + BS + "[\\s\\S]|[^\"\\" + BS + "])*\"";
247
+ var matches = matchAll(string, new RegExp(["(" + CONTROL + ")", "(" + ANSI_C_QUOTE + "|" + BAREWORD + "|" + DOUBLE_QUOTE + "|" + SINGLE_QUOTE + ")+"].join("|"), "g"));
195
248
  if (matches.length === 0) return [];
196
249
  if (!env) env = {};
197
250
  var commented = false;
@@ -232,10 +285,8 @@ var require_parse = /* @__PURE__ */ __commonJSMin(((exports, module) => {
232
285
  varend -= 1;
233
286
  varname = s.slice(i, varend);
234
287
  i = varend;
235
- } else if (/[*@#?$!_-]/.test(char)) {
236
- varname = char;
237
- i += 1;
238
- } else {
288
+ } else if (/[*@#?$!-]/.test(char)) varname = char;
289
+ else {
239
290
  var slicedFromI = s.slice(i);
240
291
  varend = slicedFromI.match(/[^\w\d_]/);
241
292
  if (!varend) {
@@ -289,7 +340,12 @@ var require_parse = /* @__PURE__ */ __commonJSMin(((exports, module) => {
289
340
  if (out.length) return [out, commentObj];
290
341
  return [commentObj];
291
342
  } else if (c === BS) esc = true;
292
- else if (c === DS) {
343
+ else if (c === DS && s.charAt(i + 1) === SQ && closesAnsiC(s, i)) {
344
+ flushRun();
345
+ sawQuote = true;
346
+ out += expandAnsiC(s.slice(i + 2, ansiCAt.lastIndex - 1));
347
+ i = ansiCAt.lastIndex - 1;
348
+ } else if (c === DS) {
293
349
  var value = parseEnvVar();
294
350
  if (!ifs) out += value;
295
351
  else for (var vi = 0; vi < value.length; vi += 1) {
@@ -346,7 +402,7 @@ var require_parse = /* @__PURE__ */ __commonJSMin(((exports, module) => {
346
402
  };
347
403
  }));
348
404
  //#endregion
349
- //#region ../../node_modules/.pnpm/shell-quote@1.10.0/node_modules/shell-quote/index.js
405
+ //#region ../../node_modules/.pnpm/shell-quote@1.12.0/node_modules/shell-quote/index.js
350
406
  var require_shell_quote = /* @__PURE__ */ __commonJSMin(((exports) => {
351
407
  exports.quote = require_quote();
352
408
  exports.parse = require_parse();
@@ -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--tVkJw3W.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-BvaYawdU.mjs";
2
2
  export { Immutable, ImmutableArray, ImmutableMap, ImmutableObject, ImmutableSet, SharedState, SharedStateEvents, SharedStateOptions, SharedStatePatch, createSharedState };
@@ -1,2 +1,2 @@
1
- import { t as createSharedState } from "../shared-state-eQVYHNqA.mjs";
1
+ import { t as createSharedState } from "../shared-state-Cow3u-_m.mjs";
2
2
  export { createSharedState };
@@ -1,2 +1,2 @@
1
- import { C as createStreamSink, S as createStreamReader, _ as CreateStreamSinkOptions, b as StreamSink, g as CreateStreamReaderOptions, h as BufferedChunk, v as StreamErrorPayload, x as StreamSinkEvents, y as StreamReader } from "../context--tVkJw3W.mjs";
1
+ import { C as createStreamSink, S as createStreamReader, _ as CreateStreamSinkOptions, b as StreamSink, g as CreateStreamReaderOptions, h as BufferedChunk, v as StreamErrorPayload, x as StreamSinkEvents, y as StreamReader } from "../context-BvaYawdU.mjs";
2
2
  export { BufferedChunk, CreateStreamReaderOptions, CreateStreamSinkOptions, StreamErrorPayload, StreamReader, StreamSink, StreamSinkEvents, createStreamReader, createStreamSink };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "devframe",
3
3
  "type": "module",
4
- "version": "1.1.0",
4
+ "version": "1.2.1",
5
5
  "description": "Framework for building one portable devtool integration that runs in any viewer.",
6
6
  "author": "Anthony Fu <anthonyfu117@hotmail.com>",
7
7
  "license": "MIT",
@@ -77,7 +77,7 @@
77
77
  "skills"
78
78
  ],
79
79
  "peerDependencies": {
80
- "@devframes/agentic": "1.1.0",
80
+ "@devframes/agentic": "1.2.1",
81
81
  "cac": "^7.0.0"
82
82
  },
83
83
  "peerDependenciesMeta": {
@@ -90,17 +90,17 @@
90
90
  },
91
91
  "dependencies": {
92
92
  "crossws": "^0.4.12",
93
- "h3": "^2.0.1-rc.32",
93
+ "h3": "^2.0.1",
94
94
  "nostics": "^1.3.0",
95
95
  "pathe": "^2.0.3"
96
96
  },
97
97
  "devDependencies": {
98
- "@devframes/agentic": "1.1.0",
98
+ "@devframes/agentic": "1.2.1",
99
99
  "@standard-schema/spec": "^1.1.0",
100
100
  "birpc": "^4.2.0",
101
101
  "cac": "^7.0.0",
102
102
  "get-port-please": "^3.2.0",
103
- "immer": "^11.1.18",
103
+ "immer": "^11.1.21",
104
104
  "launch-editor": "^2.14.1",
105
105
  "mlly": "^1.8.2",
106
106
  "mrmime": "^2.0.1",
@@ -115,7 +115,7 @@
115
115
  "ua-parser-modern": "^0.1.1",
116
116
  "valibot": "^1.5.0",
117
117
  "whenexpr": "^0.1.2",
118
- "ws": "^8.21.3"
118
+ "ws": "^8.22.0"
119
119
  },
120
120
  "scripts": {
121
121
  "build": "tsdown",