@burdenoff/vibe-agent 2.7.3 → 2.7.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{app-334d98sj.js → app-hc590rye.js} +75 -27
- package/dist/{app-334d98sj.js.map → app-hc590rye.js.map} +3 -3
- package/dist/cli.js +2 -2
- package/dist/index.js +1 -1
- package/dist/{package-v2hcn3dp.js → package-a5yw4d19.js} +3 -3
- package/dist/{package-v2hcn3dp.js.map → package-a5yw4d19.js.map} +1 -1
- package/package.json +1 -1
|
@@ -875,6 +875,8 @@ async function resolveTtydPort(serviceRegistry, sessionId) {
|
|
|
875
875
|
return null;
|
|
876
876
|
}
|
|
877
877
|
}
|
|
878
|
+
var bridges = new Map;
|
|
879
|
+
var bridgeCounter = 0;
|
|
878
880
|
function createTerminalProxy(serviceRegistry) {
|
|
879
881
|
return new Elysia().all("/terminal/:sessionId", async ({ params, request, set }) => {
|
|
880
882
|
const port = await resolveTtydPort(serviceRegistry, params.sessionId);
|
|
@@ -912,65 +914,111 @@ function createTerminalProxy(serviceRegistry) {
|
|
|
912
914
|
ws.close(1008, "Missing sessionId");
|
|
913
915
|
return;
|
|
914
916
|
}
|
|
915
|
-
|
|
917
|
+
const bridgeId = `bridge-${++bridgeCounter}`;
|
|
918
|
+
wsData._bridgeId = bridgeId;
|
|
919
|
+
const state = {
|
|
920
|
+
upstream: null,
|
|
921
|
+
upstreamReady: false,
|
|
922
|
+
buffer: [],
|
|
923
|
+
sessionId
|
|
924
|
+
};
|
|
925
|
+
bridges.set(bridgeId, state);
|
|
926
|
+
logger.info("terminal-ws", `Client connected for session ${sessionId} (${bridgeId})`);
|
|
916
927
|
resolveTtydPort(serviceRegistry, sessionId).then((port) => {
|
|
917
928
|
if (!port) {
|
|
918
929
|
logger.warn("terminal-ws", `No ttyd running for session ${sessionId}`);
|
|
919
930
|
ws.close(1011, "No terminal running");
|
|
931
|
+
bridges.delete(bridgeId);
|
|
920
932
|
return;
|
|
921
933
|
}
|
|
922
934
|
const upstreamUrl = `ws://127.0.0.1:${port}/ws`;
|
|
923
935
|
const upstreamWs = new WebSocket(upstreamUrl, ["tty"]);
|
|
924
|
-
|
|
925
|
-
let upstreamReady = false;
|
|
936
|
+
state.upstream = upstreamWs;
|
|
926
937
|
upstreamWs.addEventListener("open", () => {
|
|
927
|
-
upstreamReady = true;
|
|
928
|
-
logger.info("terminal-ws", `Bridge established \u2192 port ${port}`, {
|
|
929
|
-
|
|
930
|
-
});
|
|
931
|
-
for (const msg of upstreamBuffer) {
|
|
938
|
+
state.upstreamReady = true;
|
|
939
|
+
logger.info("terminal-ws", `Bridge established \u2192 port ${port}, buffered=${state.buffer.length}`, { sessionId });
|
|
940
|
+
for (const msg of state.buffer) {
|
|
932
941
|
upstreamWs.send(msg);
|
|
933
942
|
}
|
|
934
|
-
|
|
943
|
+
state.buffer.length = 0;
|
|
935
944
|
});
|
|
936
945
|
upstreamWs.addEventListener("message", (event) => {
|
|
937
946
|
try {
|
|
938
|
-
|
|
939
|
-
|
|
947
|
+
const data = event.data;
|
|
948
|
+
if (data instanceof ArrayBuffer) {
|
|
949
|
+
ws.send(new Uint8Array(data));
|
|
950
|
+
} else if (data instanceof Blob) {
|
|
951
|
+
data.arrayBuffer().then((ab) => {
|
|
952
|
+
try {
|
|
953
|
+
ws.send(new Uint8Array(ab));
|
|
954
|
+
} catch {}
|
|
955
|
+
});
|
|
956
|
+
} else {
|
|
957
|
+
ws.send(data);
|
|
958
|
+
}
|
|
959
|
+
} catch (err) {
|
|
960
|
+
logger.error("terminal-ws", `Failed to forward upstream\u2192client: ${err}`, { sessionId });
|
|
961
|
+
}
|
|
940
962
|
});
|
|
941
963
|
upstreamWs.addEventListener("close", (event) => {
|
|
942
964
|
logger.info("terminal-ws", `Upstream closed (code=${event.code})`, { sessionId });
|
|
965
|
+
bridges.delete(bridgeId);
|
|
943
966
|
try {
|
|
944
967
|
ws.close(1000, "Upstream closed");
|
|
945
968
|
} catch {}
|
|
946
969
|
});
|
|
947
970
|
upstreamWs.addEventListener("error", (_event) => {
|
|
948
971
|
logger.error("terminal-ws", `Upstream error`, { sessionId });
|
|
972
|
+
bridges.delete(bridgeId);
|
|
949
973
|
try {
|
|
950
974
|
ws.close(1011, "Upstream error");
|
|
951
975
|
} catch {}
|
|
952
976
|
});
|
|
953
|
-
ws._upstream = upstreamWs;
|
|
954
|
-
ws._upstreamReady = () => upstreamReady;
|
|
955
|
-
ws._upstreamBuffer = upstreamBuffer;
|
|
956
977
|
});
|
|
957
978
|
},
|
|
958
979
|
message(ws, message) {
|
|
959
|
-
const
|
|
960
|
-
const
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
980
|
+
const wsData = ws.data;
|
|
981
|
+
const bridgeId = wsData._bridgeId;
|
|
982
|
+
if (!bridgeId)
|
|
983
|
+
return;
|
|
984
|
+
const state = bridges.get(bridgeId);
|
|
985
|
+
if (!state)
|
|
986
|
+
return;
|
|
987
|
+
let payload;
|
|
988
|
+
if (typeof message === "string") {
|
|
989
|
+
payload = message;
|
|
990
|
+
} else if (message instanceof ArrayBuffer) {
|
|
991
|
+
payload = message;
|
|
992
|
+
} else if (message instanceof Uint8Array || Buffer.isBuffer(message)) {
|
|
993
|
+
const copy = new ArrayBuffer(message.byteLength);
|
|
994
|
+
new Uint8Array(copy).set(new Uint8Array(message.buffer, message.byteOffset, message.byteLength));
|
|
995
|
+
payload = copy;
|
|
996
|
+
} else if (typeof message === "object" && message !== null) {
|
|
997
|
+
payload = JSON.stringify(message);
|
|
998
|
+
} else {
|
|
999
|
+
payload = String(message);
|
|
1000
|
+
}
|
|
1001
|
+
if (state.upstream && state.upstreamReady && state.upstream.readyState === WebSocket.OPEN) {
|
|
1002
|
+
try {
|
|
1003
|
+
state.upstream.send(payload);
|
|
1004
|
+
} catch (err) {
|
|
1005
|
+
logger.error("terminal-ws", `Failed to forward client\u2192upstream: ${err}`, { sessionId: state.sessionId });
|
|
1006
|
+
}
|
|
1007
|
+
} else {
|
|
1008
|
+
state.buffer.push(payload);
|
|
966
1009
|
}
|
|
967
1010
|
},
|
|
968
1011
|
close(ws) {
|
|
969
|
-
const
|
|
1012
|
+
const wsData = ws.data;
|
|
1013
|
+
const bridgeId = wsData._bridgeId;
|
|
1014
|
+
const sessionId = wsData.params?.sessionId;
|
|
970
1015
|
logger.info("terminal-ws", `Client disconnected`, { sessionId });
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
1016
|
+
if (bridgeId) {
|
|
1017
|
+
const state = bridges.get(bridgeId);
|
|
1018
|
+
if (state?.upstream && state.upstream.readyState === WebSocket.OPEN) {
|
|
1019
|
+
state.upstream.close(1000, "Client disconnected");
|
|
1020
|
+
}
|
|
1021
|
+
bridges.delete(bridgeId);
|
|
974
1022
|
}
|
|
975
1023
|
}
|
|
976
1024
|
});
|
|
@@ -1161,5 +1209,5 @@ async function getPackageVersion() {
|
|
|
1161
1209
|
|
|
1162
1210
|
export { createApp };
|
|
1163
1211
|
|
|
1164
|
-
//# debugId=
|
|
1165
|
-
//# sourceMappingURL=app-
|
|
1212
|
+
//# debugId=8FFB9BBA2F91A40A64756E2164756E21
|
|
1213
|
+
//# sourceMappingURL=app-hc590rye.js.map
|
|
@@ -9,11 +9,11 @@
|
|
|
9
9
|
"/**\n * Authentication Middleware for Elysia\n *\n * API key-based authentication using the x-agent-api-key header.\n * Key format: vcak_{base64url}\n *\n * Auth-exempt paths:\n * - Static: /health, /api/agent/identity, /api/agent/api-key, /api/agent/tunnel,\n * /terminal/, /ws/, /ui/\n * - Dynamic: Plugin-declared publicPaths (via getPluginPublicPaths callback)\n */\n\nimport { Elysia } from \"elysia\";\nimport { join } from \"node:path\";\nimport { homedir } from \"node:os\";\nimport { existsSync, readFileSync } from \"node:fs\";\n\nimport { logger } from \"../services/logger.js\";\n\n// ── Static Auth-Exempt Paths ────────────────────────────────────────────\n\nconst STATIC_EXEMPT_PREFIXES = [\n \"/health\",\n \"/api/agent/identity\",\n \"/api/agent/api-key\",\n \"/api/agent/tunnel\",\n \"/terminal/\",\n \"/ws/\",\n \"/ui/\",\n];\n\n/**\n * Check if a path is exempt from auth.\n * Checks both static prefixes and dynamic plugin-declared public paths.\n */\nfunction isExempt(path: string, dynamicPaths: string[]): boolean {\n // Check static exemptions\n if (STATIC_EXEMPT_PREFIXES.some((prefix) => path.startsWith(prefix))) {\n return true;\n }\n\n // Check dynamic plugin-declared public paths\n return dynamicPaths.some((prefix) => path.startsWith(prefix));\n}\n\n// ── API Key Generation ──────────────────────────────────────────────────\n\nfunction generateApiKey(): string {\n const bytes = new Uint8Array(32);\n crypto.getRandomValues(bytes);\n return `vcak_${Buffer.from(bytes).toString(\"base64url\")}`;\n}\n\nfunction loadStaticApiKey(): string | undefined {\n const configFile = join(homedir(), \".vibecontrols\", \"config.json\");\n if (!existsSync(configFile)) return undefined;\n try {\n const config = JSON.parse(readFileSync(configFile, \"utf8\"));\n return config[\"static-api-key\"] || undefined;\n } catch {\n return undefined;\n }\n}\n\n// ── Auth Plugin ─────────────────────────────────────────────────────────\n\n/**\n * Creates the auth plugin for Elysia.\n * Generates or loads an API key and validates it on every request.\n *\n * @param getPluginPublicPaths - Optional callback that returns dynamic\n * auth-exempt paths declared by plugins (e.g., from plugin-router).\n * Called on every request so newly loaded plugins are immediately respected.\n */\nexport function createAuthPlugin(getPluginPublicPaths?: () => string[]) {\n // Determine API key\n const envKey = process.env.AGENT_API_KEY;\n const staticKey = loadStaticApiKey();\n const apiKey = envKey || staticKey || generateApiKey();\n\n logger.info(\"auth\", `Agent API key: ${apiKey.substring(0, 12)}...`);\n\n return new Elysia({ name: \"plugin/auth\" })\n .decorate(\"apiKey\", apiKey)\n .derive(({ headers, path }) => {\n const dynamicPaths = getPluginPublicPaths?.() ?? [];\n return {\n isAuthenticated: (() => {\n if (isExempt(path, dynamicPaths)) return true;\n const providedKey = headers[\"x-agent-api-key\"];\n return providedKey === apiKey;\n })(),\n };\n })\n .onBeforeHandle(({ isAuthenticated, path, set }) => {\n const dynamicPaths = getPluginPublicPaths?.() ?? [];\n if (!isAuthenticated && !isExempt(path, dynamicPaths)) {\n set.status = 401;\n return { error: \"Unauthorized\", message: \"Invalid or missing API key\" };\n }\n });\n}\n",
|
|
10
10
|
"/**\n * Health Routes\n *\n * Endpoints:\n * GET /health — Basic health check\n * GET /health/live — Liveness probe (for k8s)\n * GET /health/ready — Readiness probe (for k8s)\n */\n\nimport { Elysia } from \"elysia\";\n\nexport function createHealthRoutes(_serviceRegistry?: unknown) {\n return new Elysia({ prefix: \"/health\" })\n .get(\"/\", () => ({\n status: \"ok\",\n timestamp: new Date().toISOString(),\n uptime: process.uptime(),\n }))\n .get(\"/live\", () => ({ status: \"ok\" }))\n .get(\"/ready\", () => ({ status: \"ok\" }));\n}\n",
|
|
11
11
|
"/**\n * Events WebSocket\n *\n * General event stream for real-time updates. Replaces Socket.IO.\n * Clients connect to /ws/events and receive JSON-encoded events.\n *\n * Protocol:\n * Client → Server: { type: \"subscribe\", channel: string }\n * { type: \"unsubscribe\", channel: string }\n * { type: \"ping\" }\n * Server → Client: { type: WsEventType, payload: unknown, timestamp: string }\n * { type: \"pong\" }\n */\n\nimport { Elysia } from \"elysia\";\nimport { EventEmitter } from \"node:events\";\n\nimport type { WsEvent, WsEventType } from \"../core/types.js\";\nimport { logger } from \"../services/logger.js\";\n\n// ── Event Bus ───────────────────────────────────────────────────────────\n\n/**\n * Global event bus. Routes, services, and plugins emit events here.\n * The WebSocket handler subscribes and forwards to connected clients.\n */\nexport const eventBus = new EventEmitter();\neventBus.setMaxListeners(100);\n\n/**\n * Emit a typed event to all connected WebSocket clients.\n */\nexport function broadcast(type: WsEventType, payload: unknown): void {\n const event: WsEvent = {\n type,\n payload,\n timestamp: new Date().toISOString(),\n };\n eventBus.emit(\"ws:event\", event);\n}\n\n// ── WebSocket Route ─────────────────────────────────────────────────────\n\nexport function createEventsWs() {\n // Track connected clients\n const clients = new Set<{\n ws: unknown;\n channels: Set<string>;\n send: (data: string) => void;\n }>();\n\n // Forward events from the bus to all connected clients\n eventBus.on(\"ws:event\", (event: WsEvent) => {\n const json = JSON.stringify(event);\n for (const client of clients) {\n try {\n client.send(json);\n } catch {\n /* client may have disconnected */\n }\n }\n });\n\n return new Elysia().ws(\"/ws/events\", {\n open(ws) {\n const client = {\n ws,\n channels: new Set<string>(),\n send: (data: string) => ws.send(data),\n };\n clients.add(client);\n (ws as Record<string, unknown>)._client = client;\n\n logger.info(\"ws-events\", \"Client connected\", {\n id: String(ws.id || \"unknown\"),\n });\n\n // Send initial connected event\n ws.send(\n JSON.stringify({\n type: \"connected\",\n timestamp: new Date().toISOString(),\n }),\n );\n },\n\n message(ws, message) {\n try {\n const data =\n typeof message === \"string\" ? JSON.parse(message) : message;\n\n switch (data.type) {\n case \"subscribe\": {\n const client = (ws as Record<string, unknown>)\n ._client as typeof clients extends Set<infer T> ? T : never;\n if (client) client.channels.add(data.channel);\n logger.debug(\"ws-events\", `Subscribed to ${data.channel}`);\n break;\n }\n case \"unsubscribe\": {\n const client = (ws as Record<string, unknown>)\n ._client as typeof clients extends Set<infer T> ? T : never;\n if (client) client.channels.delete(data.channel);\n logger.debug(\"ws-events\", `Unsubscribed from ${data.channel}`);\n break;\n }\n case \"ping\":\n ws.send(\n JSON.stringify({\n type: \"pong\",\n timestamp: new Date().toISOString(),\n }),\n );\n break;\n default:\n logger.debug(\"ws-events\", `Unknown message type: ${data.type}`);\n }\n } catch {\n logger.warn(\"ws-events\", \"Failed to parse incoming message\");\n }\n },\n\n close(ws) {\n const client = (ws as Record<string, unknown>)\n ._client as typeof clients extends Set<infer T> ? T : never;\n if (client) clients.delete(client);\n logger.info(\"ws-events\", \"Client disconnected\");\n },\n });\n}\n",
|
|
12
|
-
"/**\n * Terminal WebSocket Proxy\n *\n * Proxies WebSocket connections from /terminal/:sessionId/ws to the local\n * ttyd instance running for that session. This allows a single agent tunnel\n * to proxy all terminal sessions (no per-session cloudflared tunnels needed).\n *\n * Protocol: ttyd uses the 'tty' sub-protocol.\n * The proxy bridges client WS ↔ upstream ttyd WS bidirectionally.\n *\n * HTTP proxy for terminal assets (/terminal/:sessionId/*) is also included.\n */\n\nimport { Elysia } from \"elysia\";\n\nimport type { ServiceRegistry } from \"../core/service-registry.js\";\nimport type { SessionProvider } from \"../core/providers/session.provider.js\";\nimport { logger } from \"../services/logger.js\";\n\n// ── Terminal HTTP Proxy ─────────────────────────────────────────────────\n\nasync function proxyToTtyd(\n port: number,\n upstreamPath: string,\n method: string,\n headers: Record<string, string | undefined>,\n body?: unknown,\n): Promise<Response> {\n const fetchHeaders: Record<string, string> = {};\n for (const [k, v] of Object.entries(headers)) {\n if (v && ![\"host\", \"connection\"].includes(k.toLowerCase())) {\n fetchHeaders[k] = v;\n }\n }\n\n const init: RequestInit = { method, headers: fetchHeaders };\n if (method !== \"GET\" && method !== \"HEAD\" && body) {\n init.body = typeof body === \"string\" ? body : JSON.stringify(body);\n }\n\n return fetch(`http://127.0.0.1:${port}${upstreamPath}`, init);\n}\n\n// ── Helper ──────────────────────────────────────────────────────────────\n\nasync function resolveTtydPort(\n serviceRegistry: ServiceRegistry,\n sessionId: string,\n): Promise<number | null> {\n const provider = serviceRegistry.getProvider<SessionProvider>(\"session\");\n if (!provider) return null;\n\n const terminal = await provider.getTerminalInfo(sessionId);\n if (!terminal) return null;\n\n // Verify process is alive\n try {\n process.kill(terminal.pid, 0);\n return terminal.port;\n } catch {\n return null;\n }\n}\n\n// ── Routes & WebSocket ──────────────────────────────────────────────────\n\nexport function createTerminalProxy(serviceRegistry: ServiceRegistry) {\n return (\n new Elysia()\n // HTTP proxy: /terminal/:sessionId (root)\n .all(\"/terminal/:sessionId\", async ({ params, request, set }) => {\n const port = await resolveTtydPort(serviceRegistry, params.sessionId);\n if (!port) {\n set.status = 502;\n return { error: \"Terminal not running for this session\" };\n }\n\n const upstream = await proxyToTtyd(\n port,\n \"/\",\n request.method,\n Object.fromEntries(\n Object.entries(request.headers).map(([k, v]) => [k, v as string]),\n ),\n );\n\n // Forward response status and headers\n set.status = upstream.status;\n const buf = await upstream.arrayBuffer();\n return new Response(buf, {\n status: upstream.status,\n headers: upstream.headers,\n });\n })\n\n // HTTP proxy: /terminal/:sessionId/* (all subpaths)\n .all(\"/terminal/:sessionId/*\", async ({ params, request, set }) => {\n const sessionId = params.sessionId;\n const wildcardPath = (params as Record<string, string>)[\"*\"] || \"\";\n const port = await resolveTtydPort(serviceRegistry, sessionId);\n if (!port) {\n set.status = 502;\n return { error: \"Terminal not running for this session\" };\n }\n\n const upstream = await proxyToTtyd(\n port,\n `/${wildcardPath}`,\n request.method,\n Object.fromEntries(\n Object.entries(request.headers).map(([k, v]) => [k, v as string]),\n ),\n );\n\n set.status = upstream.status;\n const buf = await upstream.arrayBuffer();\n return new Response(buf, {\n status: upstream.status,\n headers: upstream.headers,\n });\n })\n\n // WebSocket proxy: /terminal/:sessionId/ws\n // Bridges client WS ↔ upstream ttyd WS\n .ws(\"/terminal/:sessionId/ws\", {\n open(ws) {\n const wsData = ws.data as unknown as {\n params?: { sessionId?: string };\n };\n const sessionId = wsData.params?.sessionId;\n if (!sessionId) {\n ws.close(1008, \"Missing sessionId\");\n return;\n }\n\n logger.info(\n \"terminal-ws\",\n `Client connected for session ${sessionId}`,\n );\n\n // Resolve ttyd port and establish upstream connection\n resolveTtydPort(serviceRegistry, sessionId).then((port) => {\n if (!port) {\n logger.warn(\n \"terminal-ws\",\n `No ttyd running for session ${sessionId}`,\n );\n ws.close(1011, \"No terminal running\");\n return;\n }\n\n // Connect to upstream ttyd WS\n // Note: In Bun, we use the native WebSocket\n const upstreamUrl = `ws://127.0.0.1:${port}/ws`;\n const upstreamWs = new WebSocket(upstreamUrl, [\"tty\"]);\n\n const upstreamBuffer: Array<string | ArrayBuffer> = [];\n let upstreamReady = false;\n\n upstreamWs.addEventListener(\"open\", () => {\n upstreamReady = true;\n logger.info(\"terminal-ws\", `Bridge established → port ${port}`, {\n sessionId,\n });\n\n // Flush buffered messages\n for (const msg of upstreamBuffer) {\n upstreamWs.send(msg);\n }\n upstreamBuffer.length = 0;\n });\n\n // Forward: upstream ttyd → client browser\n upstreamWs.addEventListener(\"message\", (event) => {\n try {\n ws.send(event.data);\n } catch {\n /* client disconnected */\n }\n });\n\n upstreamWs.addEventListener(\"close\", (event) => {\n logger.info(\n \"terminal-ws\",\n `Upstream closed (code=${event.code})`,\n { sessionId },\n );\n try {\n ws.close(1000, \"Upstream closed\");\n } catch {\n /* already closed */\n }\n });\n\n upstreamWs.addEventListener(\"error\", (_event) => {\n logger.error(\"terminal-ws\", `Upstream error`, { sessionId });\n try {\n ws.close(1011, \"Upstream error\");\n } catch {\n /* already closed */\n }\n });\n\n // Store upstream connection on the ws object for the message handler\n (ws as Record<string, unknown>)._upstream = upstreamWs;\n (ws as Record<string, unknown>)._upstreamReady = () =>\n upstreamReady;\n (ws as Record<string, unknown>)._upstreamBuffer = upstreamBuffer;\n });\n },\n\n message(ws, message) {\n const upstreamWs = (ws as Record<string, unknown>)._upstream as\n | WebSocket\n | undefined;\n const isReady = (\n (ws as Record<string, unknown>)._upstreamReady as\n | (() => boolean)\n | undefined\n )?.();\n const buffer = (ws as Record<string, unknown>)._upstreamBuffer as\n | Array<string | ArrayBuffer>\n | undefined;\n\n if (\n upstreamWs &&\n isReady &&\n upstreamWs.readyState === WebSocket.OPEN\n ) {\n upstreamWs.send(message as string | ArrayBufferLike);\n } else if (buffer) {\n // Buffer until upstream is ready\n buffer.push(message as string | ArrayBuffer);\n }\n },\n\n close(ws) {\n const sessionId = (\n ws.data as unknown as { params?: { sessionId?: string } }\n ).params?.sessionId;\n logger.info(\"terminal-ws\", `Client disconnected`, { sessionId });\n\n const upstreamWs = (ws as Record<string, unknown>)._upstream as\n | WebSocket\n | undefined;\n if (upstreamWs && upstreamWs.readyState === WebSocket.OPEN) {\n upstreamWs.close(1000, \"Client disconnected\");\n }\n },\n })\n );\n}\n",
|
|
12
|
+
"/**\n * Terminal WebSocket Proxy\n *\n * Proxies WebSocket connections from /terminal/:sessionId/ws to the local\n * ttyd instance running for that session. This allows a single agent tunnel\n * to proxy all terminal sessions (no per-session cloudflared tunnels needed).\n *\n * Protocol: ttyd uses the 'tty' sub-protocol.\n * The proxy bridges client WS ↔ upstream ttyd WS bidirectionally.\n *\n * HTTP proxy for terminal assets (/terminal/:sessionId/*) is also included.\n */\n\nimport { Elysia } from \"elysia\";\n\nimport type { ServiceRegistry } from \"../core/service-registry.js\";\nimport type { SessionProvider } from \"../core/providers/session.provider.js\";\nimport { logger } from \"../services/logger.js\";\n\n// ── Terminal HTTP Proxy ─────────────────────────────────────────────────\n\nasync function proxyToTtyd(\n port: number,\n upstreamPath: string,\n method: string,\n headers: Record<string, string | undefined>,\n body?: unknown,\n): Promise<Response> {\n const fetchHeaders: Record<string, string> = {};\n for (const [k, v] of Object.entries(headers)) {\n if (v && ![\"host\", \"connection\"].includes(k.toLowerCase())) {\n fetchHeaders[k] = v;\n }\n }\n\n const init: RequestInit = { method, headers: fetchHeaders };\n if (method !== \"GET\" && method !== \"HEAD\" && body) {\n init.body = typeof body === \"string\" ? body : JSON.stringify(body);\n }\n\n return fetch(`http://127.0.0.1:${port}${upstreamPath}`, init);\n}\n\n// ── Helper ──────────────────────────────────────────────────────────────\n\nasync function resolveTtydPort(\n serviceRegistry: ServiceRegistry,\n sessionId: string,\n): Promise<number | null> {\n const provider = serviceRegistry.getProvider<SessionProvider>(\"session\");\n if (!provider) return null;\n\n const terminal = await provider.getTerminalInfo(sessionId);\n if (!terminal) return null;\n\n // Verify process is alive\n try {\n process.kill(terminal.pid, 0);\n return terminal.port;\n } catch {\n return null;\n }\n}\n\n// ── Bridge State ────────────────────────────────────────────────────────\n\n/**\n * Shared state for each WebSocket bridge, keyed by a unique connection ID.\n * We use a Map because Elysia/Bun may use different wrapper objects for\n * the same underlying ServerWebSocket across open/message/close handlers,\n * so storing state directly on `ws` is unreliable.\n */\ninterface BridgeState {\n upstream: WebSocket | null;\n upstreamReady: boolean;\n buffer: Array<string | ArrayBufferLike>;\n sessionId: string;\n}\n\nconst bridges = new Map<string, BridgeState>();\nlet bridgeCounter = 0;\n\n// ── Routes & WebSocket ──────────────────────────────────────────────────\n\nexport function createTerminalProxy(serviceRegistry: ServiceRegistry) {\n return (\n new Elysia()\n // HTTP proxy: /terminal/:sessionId (root)\n .all(\"/terminal/:sessionId\", async ({ params, request, set }) => {\n const port = await resolveTtydPort(serviceRegistry, params.sessionId);\n if (!port) {\n set.status = 502;\n return { error: \"Terminal not running for this session\" };\n }\n\n const upstream = await proxyToTtyd(\n port,\n \"/\",\n request.method,\n Object.fromEntries(\n Object.entries(request.headers).map(([k, v]) => [k, v as string]),\n ),\n );\n\n // Forward response status and headers\n set.status = upstream.status;\n const buf = await upstream.arrayBuffer();\n return new Response(buf, {\n status: upstream.status,\n headers: upstream.headers,\n });\n })\n\n // HTTP proxy: /terminal/:sessionId/* (all subpaths)\n .all(\"/terminal/:sessionId/*\", async ({ params, request, set }) => {\n const sessionId = params.sessionId;\n const wildcardPath = (params as Record<string, string>)[\"*\"] || \"\";\n const port = await resolveTtydPort(serviceRegistry, sessionId);\n if (!port) {\n set.status = 502;\n return { error: \"Terminal not running for this session\" };\n }\n\n const upstream = await proxyToTtyd(\n port,\n `/${wildcardPath}`,\n request.method,\n Object.fromEntries(\n Object.entries(request.headers).map(([k, v]) => [k, v as string]),\n ),\n );\n\n set.status = upstream.status;\n const buf = await upstream.arrayBuffer();\n return new Response(buf, {\n status: upstream.status,\n headers: upstream.headers,\n });\n })\n\n // WebSocket proxy: /terminal/:sessionId/ws\n // Bridges client WS ↔ upstream ttyd WS\n .ws(\"/terminal/:sessionId/ws\", {\n open(ws) {\n const wsData = ws.data as unknown as {\n params?: { sessionId?: string };\n };\n const sessionId = wsData.params?.sessionId;\n if (!sessionId) {\n ws.close(1008, \"Missing sessionId\");\n return;\n }\n\n // Generate a unique bridge ID and store it on ws.data so that\n // the message and close handlers can look up the same state.\n const bridgeId = `bridge-${++bridgeCounter}`;\n (wsData as Record<string, unknown>)._bridgeId = bridgeId;\n\n const state: BridgeState = {\n upstream: null,\n upstreamReady: false,\n buffer: [],\n sessionId,\n };\n bridges.set(bridgeId, state);\n\n logger.info(\n \"terminal-ws\",\n `Client connected for session ${sessionId} (${bridgeId})`,\n );\n\n // Resolve ttyd port and establish upstream connection\n resolveTtydPort(serviceRegistry, sessionId).then((port) => {\n if (!port) {\n logger.warn(\n \"terminal-ws\",\n `No ttyd running for session ${sessionId}`,\n );\n ws.close(1011, \"No terminal running\");\n bridges.delete(bridgeId);\n return;\n }\n\n // Connect to upstream ttyd WS\n const upstreamUrl = `ws://127.0.0.1:${port}/ws`;\n const upstreamWs = new WebSocket(upstreamUrl, [\"tty\"]);\n state.upstream = upstreamWs;\n\n upstreamWs.addEventListener(\"open\", () => {\n state.upstreamReady = true;\n logger.info(\n \"terminal-ws\",\n `Bridge established → port ${port}, buffered=${state.buffer.length}`,\n { sessionId },\n );\n\n // Flush buffered messages (e.g. auth token sent by client before bridge was ready)\n for (const msg of state.buffer) {\n upstreamWs.send(msg);\n }\n state.buffer.length = 0;\n });\n\n // Forward: upstream ttyd → client browser\n upstreamWs.addEventListener(\"message\", (event) => {\n try {\n const data = event.data;\n // Bun's ServerWebSocket.send() accepts string | BufferSource\n // event.data from native WebSocket is ArrayBuffer for binary frames\n if (data instanceof ArrayBuffer) {\n ws.send(new Uint8Array(data));\n } else if (data instanceof Blob) {\n data.arrayBuffer().then((ab) => {\n try {\n ws.send(new Uint8Array(ab));\n } catch {\n /* client gone */\n }\n });\n } else {\n ws.send(data);\n }\n } catch (err) {\n logger.error(\n \"terminal-ws\",\n `Failed to forward upstream→client: ${err}`,\n { sessionId },\n );\n }\n });\n\n upstreamWs.addEventListener(\"close\", (event) => {\n logger.info(\n \"terminal-ws\",\n `Upstream closed (code=${event.code})`,\n { sessionId },\n );\n bridges.delete(bridgeId);\n try {\n ws.close(1000, \"Upstream closed\");\n } catch {\n /* already closed */\n }\n });\n\n upstreamWs.addEventListener(\"error\", (_event) => {\n logger.error(\"terminal-ws\", `Upstream error`, { sessionId });\n bridges.delete(bridgeId);\n try {\n ws.close(1011, \"Upstream error\");\n } catch {\n /* already closed */\n }\n });\n });\n },\n\n message(ws, message) {\n const wsData = ws.data as unknown as {\n params?: { sessionId?: string };\n _bridgeId?: string;\n };\n const bridgeId = wsData._bridgeId;\n if (!bridgeId) return;\n\n const state = bridges.get(bridgeId);\n if (!state) return;\n\n // Normalise message to a type the native WebSocket.send() accepts.\n // Elysia may auto-parse JSON messages into plain objects, so we\n // must handle object, string, ArrayBuffer, and Buffer.\n let payload: string | ArrayBuffer;\n if (typeof message === \"string\") {\n payload = message;\n } else if (message instanceof ArrayBuffer) {\n payload = message;\n } else if (\n message instanceof Uint8Array ||\n Buffer.isBuffer(message)\n ) {\n const copy = new ArrayBuffer(message.byteLength);\n new Uint8Array(copy).set(\n new Uint8Array(\n message.buffer,\n message.byteOffset,\n message.byteLength,\n ),\n );\n payload = copy;\n } else if (typeof message === \"object\" && message !== null) {\n // Elysia parsed the JSON string into an object — re-serialise\n payload = JSON.stringify(message);\n } else {\n payload = String(message);\n }\n\n if (\n state.upstream &&\n state.upstreamReady &&\n state.upstream.readyState === WebSocket.OPEN\n ) {\n try {\n state.upstream.send(payload);\n } catch (err) {\n logger.error(\n \"terminal-ws\",\n `Failed to forward client→upstream: ${err}`,\n { sessionId: state.sessionId },\n );\n }\n } else {\n // Buffer until upstream is ready\n state.buffer.push(payload);\n }\n },\n\n close(ws) {\n const wsData = ws.data as unknown as {\n params?: { sessionId?: string };\n _bridgeId?: string;\n };\n const bridgeId = wsData._bridgeId;\n const sessionId = wsData.params?.sessionId;\n logger.info(\"terminal-ws\", `Client disconnected`, { sessionId });\n\n if (bridgeId) {\n const state = bridges.get(bridgeId);\n if (\n state?.upstream &&\n state.upstream.readyState === WebSocket.OPEN\n ) {\n state.upstream.close(1000, \"Client disconnected\");\n }\n bridges.delete(bridgeId);\n }\n },\n })\n );\n}\n",
|
|
13
13
|
"/**\n * Logs WebSocket & SSE\n *\n * Real-time log streaming. Provides both:\n * - GET /api/logs — Paginated historical log entries\n * - GET /api/logs/stream — Server-Sent Events (SSE) real-time log stream\n * - /ws/logs — WebSocket real-time log stream (replaces SSE for WS clients)\n *\n * The SSE endpoint is kept for backwards compatibility and curl-friendly access.\n * The WS endpoint is preferred for the MFE.\n */\n\nimport { Elysia } from \"elysia\";\n\nimport { logger } from \"../services/logger.js\";\nimport type { LogLevel, LogEntry } from \"../core/types.js\";\n\n// ── Level Priority ──────────────────────────────────────────────────────\n\nconst LEVEL_PRIORITY: Record<LogLevel, number> = {\n debug: 0,\n info: 1,\n warn: 2,\n error: 3,\n};\n\n// ── Routes ──────────────────────────────────────────────────────────────\n\nexport function createLogRoutes() {\n return (\n new Elysia({ prefix: \"/api/logs\" })\n // Historical log entries\n .get(\"/\", async ({ query }) => {\n const q = query as Record<string, string>;\n const entries = await logger.readHistory({\n level: q.level as LogLevel | undefined,\n source: q.source,\n from: q.from,\n to: q.to,\n limit: q.limit ? parseInt(q.limit, 10) : 200,\n offset: q.offset ? parseInt(q.offset, 10) : 0,\n });\n return { entries, count: entries.length };\n })\n\n // SSE stream for real-time logs (backwards-compatible)\n .get(\"/stream\", ({ query, set }) => {\n const q = query as Record<string, string>;\n const minLevel = (q.level ?? \"info\") as LogLevel;\n const sourceFilter = q.source ?? \"\";\n\n // Return an SSE stream using Elysia's generator pattern\n set.headers[\"Content-Type\"] = \"text/event-stream\";\n set.headers[\"Cache-Control\"] = \"no-cache\";\n set.headers[\"Connection\"] = \"keep-alive\";\n set.headers[\"X-Accel-Buffering\"] = \"no\";\n\n return new ReadableStream({\n start(controller) {\n const encoder = new TextEncoder();\n\n // Initial comment to establish connection\n controller.enqueue(encoder.encode(\": connected\\n\\n\"));\n\n // Heartbeat\n const heartbeat = setInterval(() => {\n try {\n controller.enqueue(encoder.encode(\": heartbeat\\n\\n\"));\n } catch {\n cleanup();\n }\n }, 15_000);\n\n // Log event handler\n const onLog = (entry: LogEntry) => {\n if (LEVEL_PRIORITY[entry.level] < LEVEL_PRIORITY[minLevel])\n return;\n if (sourceFilter && !entry.source.includes(sourceFilter)) return;\n\n try {\n controller.enqueue(\n encoder.encode(\n `event: log\\ndata: ${JSON.stringify(entry)}\\n\\n`,\n ),\n );\n } catch {\n cleanup();\n }\n };\n\n const cleanup = () => {\n clearInterval(heartbeat);\n logger.removeListener(\"log\", onLog);\n try {\n controller.close();\n } catch {\n /* already closed */\n }\n };\n\n logger.on(\"log\", onLog);\n\n // Note: ReadableStream cancel callback handles client disconnect\n return () => cleanup();\n },\n\n cancel() {\n // Client disconnected — cleanup is handled by the start's return\n },\n });\n })\n );\n}\n\n// ── WebSocket Log Stream ────────────────────────────────────────────────\n\nexport function createLogWs() {\n return new Elysia().ws(\"/ws/logs\", {\n open(ws) {\n logger.info(\"ws-logs\", \"Log stream client connected\");\n\n // Default filters\n const filters = {\n minLevel: \"info\" as LogLevel,\n source: \"\",\n };\n (ws as Record<string, unknown>)._filters = filters;\n\n const onLog = (entry: LogEntry) => {\n const f = (ws as Record<string, unknown>)._filters as typeof filters;\n if (LEVEL_PRIORITY[entry.level] < LEVEL_PRIORITY[f.minLevel]) return;\n if (f.source && !entry.source.includes(f.source)) return;\n\n try {\n ws.send(JSON.stringify(entry));\n } catch {\n /* disconnected */\n }\n };\n\n logger.on(\"log\", onLog);\n (ws as Record<string, unknown>)._logHandler = onLog;\n\n // Send initial acknowledgment\n ws.send(\n JSON.stringify({\n type: \"connected\",\n timestamp: new Date().toISOString(),\n }),\n );\n },\n\n message(ws, message) {\n try {\n const data =\n typeof message === \"string\" ? JSON.parse(message) : message;\n\n // Allow client to update filters\n if (data.type === \"filter\") {\n const filters = (ws as Record<string, unknown>)._filters as {\n minLevel: LogLevel;\n source: string;\n };\n if (data.level) filters.minLevel = data.level as LogLevel;\n if (data.source !== undefined) filters.source = data.source;\n\n ws.send(JSON.stringify({ type: \"filter-updated\", filters }));\n }\n } catch {\n /* ignore malformed messages */\n }\n },\n\n close(ws) {\n const handler = (ws as Record<string, unknown>)._logHandler as\n | ((...args: unknown[]) => void)\n | undefined;\n if (handler) {\n logger.removeListener(\"log\", handler);\n }\n logger.info(\"ws-logs\", \"Log stream client disconnected\");\n },\n });\n}\n",
|
|
14
14
|
"/**\n * App Factory — Plugin-First Architecture\n *\n * Creates and configures the Elysia application using the plugin system.\n * All routes are contributed by plugins via createPluginRouter().\n * Only health routes remain outside the plugin system.\n *\n * Lifecycle:\n * 1. Initialize database, service registry, plugin manager\n * 2. Load core + external plugins\n * 3. Mount CORS, auth (with dynamic public paths), logging\n * 4. Mount health routes (always available, non-overridable)\n * 5. Mount plugin routes via plugin-router\n * 6. Mount plugin UI server (/ui/*)\n * 7. Mount WebSocket handlers (events, logs, terminal proxy)\n * 8. Dispatch plugin lifecycle events\n */\n\nimport { Elysia } from \"elysia\";\nimport { cors } from \"@elysiajs/cors\";\n\nimport type { AppOptions } from \"./core/types.js\";\nimport type { StorageEntry } from \"./core/types.js\";\nimport type { StorageProvider } from \"./core/providers/storage.provider.js\";\nimport { AgentDatabase } from \"./db/database.js\";\nimport { ServiceRegistry } from \"./core/service-registry.js\";\nimport { PluginManager } from \"./core/plugin-system.js\";\nimport type { HostServices } from \"./core/plugin-system.js\";\nimport { createPluginRouter } from \"./core/plugin-router.js\";\nimport { createUIServer } from \"./core/ui-server.js\";\nimport { createAuthPlugin } from \"./middleware/auth.js\";\nimport { logger } from \"./services/logger.js\";\nimport { gatewayClient } from \"./services/gateway-client.js\";\n\n// Health routes (outside plugin system)\nimport { createHealthRoutes } from \"./routes/health.routes.js\";\n\n// WebSocket handlers\nimport {\n createEventsWs,\n createTerminalProxy,\n createLogWs,\n} from \"./ws/index.js\";\n\n// ── Create App ──────────────────────────────────────────────────────────\n\nexport async function createApp(options: AppOptions) {\n const { port, host, dbPath, logLevel, corsOrigin } = options;\n\n // ── Set log level ──────────────────────────────────────────────────\n if (logLevel) {\n logger.setLevel(logLevel);\n }\n\n // ── Database ────────────────────────────────────────────────────────\n const db = new AgentDatabase(dbPath);\n\n // ── Service Registry ────────────────────────────────────────────────\n const serviceRegistry = new ServiceRegistry(db);\n\n // ── Plugin Manager ──────────────────────────────────────────────────\n const pluginManager = new PluginManager(db);\n\n // Load core plugins first\n await pluginManager.loadCorePlugins();\n\n // Load external plugins\n try {\n await pluginManager.loadAll();\n } catch (err) {\n logger.warn(\"app\", \"Failed to load some external plugins\", {\n error: String(err),\n });\n }\n\n logger.info(\n \"app\",\n `Plugins loaded: ${pluginManager.getPluginDetails().length} total (${pluginManager.getPluginDetails().filter((p) => p.isCore).length} core)`,\n );\n\n // ── Restore Gateway Client Config ───────────────────────────────────\n try {\n const gwGlobalUrl = db.getConfig(\"gateway-auth:globalGatewayUrl\");\n const gwClientId = db.getConfig(\"gateway-auth:clientId\");\n const gwClientSecret = db.getConfig(\"gateway-auth:clientSecret\");\n\n if (gwGlobalUrl && gwClientId && gwClientSecret) {\n const gwWorkspaceUrl = db.getConfig(\"gateway-auth:workspaceGatewayUrl\");\n gatewayClient.configure({\n globalGatewayUrl: gwGlobalUrl,\n workspaceGatewayUrl: gwWorkspaceUrl,\n clientId: gwClientId,\n clientSecret: gwClientSecret,\n });\n logger.info(\"app\", \"Restored gateway client config from database\");\n }\n } catch (err) {\n logger.warn(\"app\", \"Failed to restore gateway client config\", {\n error: String(err),\n });\n }\n\n // ── Host Services (passed to plugins) ───────────────────────────────\n const storageProvider: StorageProvider = {\n async get(namespace: string, key: string) {\n return db.getPluginState(namespace, key) ?? null;\n },\n async set(namespace: string, key: string, value: string) {\n db.setPluginState(namespace, key, value);\n },\n async delete(namespace: string, key: string) {\n return db.deletePluginState(namespace, key);\n },\n async list(namespace: string) {\n return db.getAllPluginState(namespace) as StorageEntry[];\n },\n async deleteAll(namespace: string) {\n return db.deleteAllPluginState(namespace);\n },\n };\n\n const packageVersion = await getPackageVersion();\n\n const hostServices: HostServices = {\n storage: storageProvider,\n logger,\n serviceRegistry,\n getProvider: (<T>(type: \"tunnel\" | \"session\") =>\n serviceRegistry.getProvider<T>(type)) as HostServices[\"getProvider\"],\n getAgentBaseUrl: () => process.env.AGENT_URL || `http://localhost:${port}`,\n getAgentVersion: () => packageVersion,\n };\n\n // ── Build Plugin Router ─────────────────────────────────────────────\n const { routes: pluginRoutes, getPublicPaths } = createPluginRouter(\n pluginManager,\n { db, serviceRegistry, pluginManager },\n );\n\n // ── Build UI Server ─────────────────────────────────────────────────\n const uiServer = createUIServer(pluginManager);\n\n // ── Elysia App ──────────────────────────────────────────────────────\n const app = new Elysia()\n // CORS\n .use(\n cors({\n origin: corsOrigin || true,\n credentials: true,\n }),\n )\n\n // Auth middleware (with dynamic public paths from plugins)\n .use(createAuthPlugin(getPublicPaths))\n\n // Request/Response logging\n .onAfterHandle(({ request, set }) => {\n const url = new URL(request.url).pathname;\n const isNoisy =\n url === \"/health\" ||\n url.startsWith(\"/api/logs/stream\") ||\n url.startsWith(\"/ui/\");\n const status = typeof set.status === \"number\" ? set.status : 200;\n const level = isNoisy ? \"debug\" : status >= 400 ? \"warn\" : \"info\";\n logger[level](\"http\", `${request.method} ${url} → ${status}`, {\n method: request.method,\n path: url,\n statusCode: status,\n });\n })\n\n // ── Health Routes (auth-exempt, outside plugin system) ──────────\n .use(createHealthRoutes(serviceRegistry))\n\n // ── Plugin Routes (all REST APIs) ───────────────────────────────\n .use(pluginRoutes)\n\n // ── Plugin UI Server ────────────────────────────────────────────\n .use(uiServer)\n\n // ── WebSocket: Events ───────────────────────────────────────────\n .use(createEventsWs())\n\n // ── WebSocket: Logs ─────────────────────────────────────────────\n .use(createLogWs())\n\n // ── Terminal Proxy (HTTP + WS) ──────────────────────────────────\n .use(createTerminalProxy(serviceRegistry));\n\n // ── Plugin Lifecycle: onServerStart ─────────────────────────────────\n try {\n // Cast to Elysia to satisfy the generic type constraint —\n // the concrete app type carries decorator metadata that the plugin\n // lifecycle interface doesn't need.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n await pluginManager.dispatchServerStart(app as any, hostServices);\n } catch (err) {\n logger.warn(\"app\", \"Error during plugin onServerStart dispatch\", {\n error: String(err),\n });\n }\n\n return {\n app,\n db,\n serviceRegistry,\n pluginManager,\n hostServices,\n async start() {\n app.listen({ port, hostname: host });\n logger.info(\"app\", `Agent server listening on ${host}:${port}`);\n\n // Dispatch onServerReady\n try {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n await pluginManager.dispatchServerReady(app as any, hostServices);\n } catch (err) {\n logger.warn(\"app\", \"Error during plugin onServerReady dispatch\", {\n error: String(err),\n });\n }\n\n return app;\n },\n async stop() {\n try {\n await pluginManager.dispatchServerStop();\n } catch (err) {\n logger.warn(\"app\", \"Error stopping plugins\", { error: String(err) });\n }\n db.close();\n logger.close();\n logger.info(\"app\", \"Agent server stopped\");\n },\n };\n}\n\n// ── Helpers ──────────────────────────────────────────────────────────────\n\nasync function getPackageVersion(): Promise<string> {\n try {\n const { readFileSync } = await import(\"node:fs\");\n const { join, dirname } = await import(\"node:path\");\n const { fileURLToPath } = await import(\"node:url\");\n const __dirname = dirname(fileURLToPath(import.meta.url));\n const packageJson = JSON.parse(\n readFileSync(join(__dirname, \"..\", \"package.json\"), \"utf8\"),\n );\n return packageJson.version || \"1.0.0\";\n } catch {\n return \"1.0.0\";\n }\n}\n"
|
|
15
15
|
],
|
|
16
|
-
"mappings": "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",
|
|
17
|
-
"debugId": "
|
|
16
|
+
"mappings": "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",
|
|
17
|
+
"debugId": "8FFB9BBA2F91A40A64756E2164756E21",
|
|
18
18
|
"names": []
|
|
19
19
|
}
|
package/dist/cli.js
CHANGED
|
@@ -2228,7 +2228,7 @@ function register(program2) {
|
|
|
2228
2228
|
kv("Host", host);
|
|
2229
2229
|
kv("Database", dbPath);
|
|
2230
2230
|
blank();
|
|
2231
|
-
const { createApp } = await import("./app-
|
|
2231
|
+
const { createApp } = await import("./app-hc590rye.js");
|
|
2232
2232
|
const appInstance = await createApp({
|
|
2233
2233
|
port,
|
|
2234
2234
|
host,
|
|
@@ -2502,7 +2502,7 @@ function register8(program2) {
|
|
|
2502
2502
|
blank();
|
|
2503
2503
|
let currentVersion;
|
|
2504
2504
|
try {
|
|
2505
|
-
const pkg = await import("./package-
|
|
2505
|
+
const pkg = await import("./package-a5yw4d19.js", {
|
|
2506
2506
|
with: { type: "json" }
|
|
2507
2507
|
});
|
|
2508
2508
|
currentVersion = pkg.default.version || pkg.version;
|
package/dist/index.js
CHANGED
|
@@ -3,7 +3,7 @@ import"./index-g8dczzvv.js";
|
|
|
3
3
|
|
|
4
4
|
// package.json
|
|
5
5
|
var name = "@burdenoff/vibe-agent";
|
|
6
|
-
var version = "2.7.
|
|
6
|
+
var version = "2.7.4";
|
|
7
7
|
var main = "./dist/index.js";
|
|
8
8
|
var type = "module";
|
|
9
9
|
var bin = {
|
|
@@ -134,5 +134,5 @@ export {
|
|
|
134
134
|
author
|
|
135
135
|
};
|
|
136
136
|
|
|
137
|
-
//# debugId=
|
|
138
|
-
//# sourceMappingURL=package-
|
|
137
|
+
//# debugId=12719ABD09DA811764756E2164756E21
|
|
138
|
+
//# sourceMappingURL=package-a5yw4d19.js.map
|