@burdenoff/vibe-agent 2.7.2 → 2.7.3

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.
@@ -17,7 +17,7 @@ import {
17
17
  } from "./index-g8dczzvv.js";
18
18
  import {
19
19
  PluginManager
20
- } from "./plugin-system-4h7vtge8.js";
20
+ } from "./plugin-system-7hmbwvtf.js";
21
21
 
22
22
  // node_modules/@elysiajs/cors/dist/index.mjs
23
23
  var isBun = typeof new Headers()?.toJSON === "function";
@@ -1162,4 +1162,4 @@ async function getPackageVersion() {
1162
1162
  export { createApp };
1163
1163
 
1164
1164
  //# debugId=F2C6BFB8F350A48F64756E2164756E21
1165
- //# sourceMappingURL=app-fr7b9dpr.js.map
1165
+ //# sourceMappingURL=app-334d98sj.js.map
package/dist/cli.js CHANGED
@@ -33,7 +33,7 @@ import {
33
33
  } from "./index-g8dczzvv.js";
34
34
  import {
35
35
  PluginManager
36
- } from "./plugin-system-4h7vtge8.js";
36
+ } from "./plugin-system-7hmbwvtf.js";
37
37
 
38
38
  // node_modules/commander/lib/error.js
39
39
  var require_error = __commonJS((exports) => {
@@ -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-fr7b9dpr.js");
2231
+ const { createApp } = await import("./app-334d98sj.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-ma89np7x.js", {
2505
+ const pkg = await import("./package-v2hcn3dp.js", {
2506
2506
  with: { type: "json" }
2507
2507
  });
2508
2508
  currentVersion = pkg.default.version || pkg.version;
@@ -162,7 +162,7 @@ function register(program) {
162
162
  } catch {
163
163
  warn("Agent not reachable. Attempting local plugin registry...");
164
164
  try {
165
- const { PluginManager } = await import("./plugin-system-4h7vtge8.js");
165
+ const { PluginManager } = await import("./plugin-system-7hmbwvtf.js");
166
166
  const pm = new PluginManager;
167
167
  plugins = pm.getPluginDetails() || [];
168
168
  } catch {
@@ -198,7 +198,7 @@ function register(program) {
198
198
  } catch {
199
199
  warn("Agent not reachable. Attempting local install...");
200
200
  try {
201
- const { PluginManager } = await import("./plugin-system-4h7vtge8.js");
201
+ const { PluginManager } = await import("./plugin-system-7hmbwvtf.js");
202
202
  const pm = new PluginManager;
203
203
  await pm.install(packageName);
204
204
  success(`Plugin "${packageName}" installed locally.`);
@@ -221,7 +221,7 @@ function register(program) {
221
221
  } catch {
222
222
  warn("Agent not reachable. Attempting local removal...");
223
223
  try {
224
- const { PluginManager } = await import("./plugin-system-4h7vtge8.js");
224
+ const { PluginManager } = await import("./plugin-system-7hmbwvtf.js");
225
225
  const pm = new PluginManager;
226
226
  await pm.remove(packageName);
227
227
  success(`Plugin "${packageName}" removed locally.`);
@@ -598,4 +598,4 @@ export {
598
598
  };
599
599
 
600
600
  //# debugId=77470ADF30C64CDD64756E2164756E21
601
- //# sourceMappingURL=index-x4hap91d.js.map
601
+ //# sourceMappingURL=index-10wkaqpa.js.map
@@ -163,6 +163,7 @@ function createRoutes(deps) {
163
163
  }
164
164
  }
165
165
  const session = await provider.create({
166
+ id: body.sessionId,
166
167
  name: body.sessionName || `vibecontrols-${Date.now()}`,
167
168
  command: body.command,
168
169
  workingDirectory: body.startDirectory,
@@ -583,5 +584,5 @@ export {
583
584
  vibePlugin
584
585
  };
585
586
 
586
- //# debugId=D18B9D8D444814B064756E2164756E21
587
- //# sourceMappingURL=index-rdm6e3rr.js.map
587
+ //# debugId=5AB9B114935378E764756E2164756E21
588
+ //# sourceMappingURL=index-t0nsa57v.js.map
@@ -2,12 +2,12 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/plugins/session/routes.ts", "../src/cli/commands/session.cmd.ts", "../src/plugins/session/commands.ts", "../src/plugins/session/index.ts"],
4
4
  "sourcesContent": [
5
- "/**\n * Session Plugin — Routes\n *\n * Delegates all session management to the registered SessionProvider.\n * This decouples the API from any specific terminal multiplexer (tmux, wezterm, etc.).\n *\n * Endpoints:\n * GET / — List all managed sessions\n * GET /system — List all system sessions (incl. unmanaged)\n * GET /system/terminals — List all system terminal server processes\n * POST /system/kill — Bulk kill system sessions\n * POST /system/terminals/kill — Bulk kill system terminal processes\n * POST /health-check — Bulk session health check\n * POST /create — Create a new session (idempotent)\n * GET /:id — Get session by ID\n * DELETE /:id — Kill/terminate session\n * POST /:id/command — Send command to session\n * POST /:id/keys — Send raw keys to session\n * POST /:id/interrupt — Send Ctrl+C to session\n * GET /:id/capture — Capture session output\n * PUT /:id/rename — Rename session\n * POST /:id/toggle-mouse — Toggle mouse mode\n * GET /:id/termination-status — Get session termination verification\n * GET /:id/terminal — Get terminal info\n * POST /:id/terminal — Start web terminal (ttyd)\n * POST /:id/terminal/stop — Stop web terminal\n */\n\nimport { Elysia, t } from \"elysia\";\n\nimport type { PluginRouteDeps } from \"../../core/types.js\";\nimport type { ServiceRegistry } from \"../../core/service-registry.js\";\nimport type { SessionProvider } from \"../../core/providers/session.provider.js\";\nimport type { TunnelProvider } from \"../../core/providers/tunnel.provider.js\";\n\n// ── Helpers ─────────────────────────────────────────────────────────────\n\nfunction getSessionProvider(registry: ServiceRegistry): SessionProvider {\n const provider = registry.getProvider<SessionProvider>(\"session\");\n if (!provider) {\n throw new Error(\"No session provider registered\");\n }\n return provider;\n}\n\n// ── Routes ──────────────────────────────────────────────────────────────\n\nexport function createRoutes(deps: PluginRouteDeps) {\n const { serviceRegistry } = deps;\n\n return (\n new Elysia()\n // List all managed sessions\n .get(\"/\", async ({ set }) => {\n try {\n const provider = getSessionProvider(serviceRegistry);\n const sessions = await provider.list();\n return { sessions };\n } catch (err) {\n set.status = 500;\n return { error: \"Failed to list sessions\", details: String(err) };\n }\n })\n\n // List all system sessions (including unmanaged ones)\n .get(\"/system\", async ({ set }) => {\n try {\n const provider = getSessionProvider(serviceRegistry);\n const sessions = await provider.listSystem();\n return { sessions };\n } catch (err) {\n set.status = 500;\n return {\n error: \"Failed to get system sessions\",\n details: String(err),\n };\n }\n })\n\n // List all system terminal server processes\n .get(\"/system/terminals\", async ({ set }) => {\n try {\n const provider = getSessionProvider(serviceRegistry);\n const processes = await provider.listSystemTerminals();\n return { processes };\n } catch (err) {\n set.status = 500;\n return {\n error: \"Failed to get system terminal processes\",\n details: String(err),\n };\n }\n })\n\n // Bulk kill system sessions\n .post(\n \"/system/kill\",\n async ({ body, set }) => {\n try {\n const provider = getSessionProvider(serviceRegistry);\n const results: Array<{\n target: string;\n success: boolean;\n error?: string;\n }> = [];\n\n for (const sessionId of body.sessionIds) {\n try {\n await provider.killSystem(sessionId);\n results.push({ target: sessionId, success: true });\n } catch (err) {\n results.push({\n target: sessionId,\n success: false,\n error: String(err),\n });\n }\n }\n\n return { results };\n } catch (err) {\n set.status = 500;\n return {\n error: \"Failed to kill system sessions\",\n details: String(err),\n };\n }\n },\n {\n body: t.Object({\n sessionIds: t.Array(t.String()),\n force: t.Optional(t.Boolean()),\n }),\n },\n )\n\n // Bulk kill system terminal processes\n .post(\n \"/system/terminals/kill\",\n async ({ body, set }) => {\n try {\n const provider = getSessionProvider(serviceRegistry);\n const results: Array<{\n target: string;\n success: boolean;\n error?: string;\n }> = [];\n\n for (const pid of body.pids) {\n try {\n await provider.killSystemTerminal(pid);\n results.push({ target: String(pid), success: true });\n } catch (err) {\n results.push({\n target: String(pid),\n success: false,\n error: String(err),\n });\n }\n }\n\n return { results };\n } catch (err) {\n set.status = 500;\n return {\n error: \"Failed to kill system terminal processes\",\n details: String(err),\n };\n }\n },\n {\n body: t.Object({\n pids: t.Array(t.Number()),\n force: t.Optional(t.Boolean()),\n }),\n },\n )\n\n // Bulk session health check\n .post(\n \"/health-check\",\n async ({ body, set }) => {\n try {\n const provider = getSessionProvider(serviceRegistry);\n const results: Array<{\n sessionId: string;\n status: \"running\" | \"dead\" | \"unknown\";\n }> = [];\n\n for (const sessionId of body.sessionIds) {\n try {\n const session = await provider.get(sessionId);\n if (!session) {\n results.push({ sessionId, status: \"unknown\" });\n } else {\n results.push({\n sessionId,\n status: session.status === \"active\" ? \"running\" : \"dead\",\n });\n }\n } catch {\n results.push({ sessionId, status: \"unknown\" });\n }\n }\n\n return { results };\n } catch (err) {\n set.status = 500;\n return {\n error: \"Failed to health check sessions\",\n details: String(err),\n };\n }\n },\n {\n body: t.Object({\n sessionIds: t.Array(t.String()),\n }),\n },\n )\n\n // Create new session (idempotent)\n .post(\n \"/create\",\n async ({ body, set }) => {\n try {\n const provider = getSessionProvider(serviceRegistry);\n\n // Check if session already exists (idempotent)\n if (body.sessionId) {\n const existing = await provider.get(body.sessionId);\n if (existing && existing.status === \"active\") {\n return { session: existing, reused: true };\n }\n }\n\n const session = await provider.create({\n name: body.sessionName || `vibecontrols-${Date.now()}`,\n command: body.command,\n workingDirectory: body.startDirectory,\n projectId: body.projectId,\n });\n\n return { session, reused: false };\n } catch (err) {\n set.status = 500;\n return { error: \"Failed to create session\", details: String(err) };\n }\n },\n {\n body: t.Object({\n sessionId: t.Optional(t.String()),\n projectId: t.Optional(t.String()),\n sessionName: t.Optional(t.String()),\n windowName: t.Optional(t.String()),\n command: t.Optional(t.String()),\n startDirectory: t.Optional(t.String()),\n }),\n },\n )\n\n // Get session by ID\n .get(\"/:id\", async ({ params, set }) => {\n try {\n const provider = getSessionProvider(serviceRegistry);\n const session = await provider.get(params.id);\n\n if (!session) {\n set.status = 404;\n return { error: \"Session not found\" };\n }\n\n return { session };\n } catch (err) {\n set.status = 500;\n return { error: \"Failed to get session\", details: String(err) };\n }\n })\n\n // Kill session\n .delete(\"/:id\", async ({ params, set }) => {\n try {\n const provider = getSessionProvider(serviceRegistry);\n const session = await provider.get(params.id);\n\n if (!session) {\n set.status = 404;\n return { error: \"Session not found\" };\n }\n\n await provider.kill(params.id);\n\n return { success: true, sessionName: session.name };\n } catch (err) {\n set.status = 500;\n return { error: \"Failed to kill session\", details: String(err) };\n }\n })\n\n // Send command to session\n .post(\n \"/:id/command\",\n async ({ params, body, set }) => {\n try {\n const provider = getSessionProvider(serviceRegistry);\n const session = await provider.get(params.id);\n\n if (!session) {\n set.status = 404;\n return { error: \"Session not found\" };\n }\n\n await provider.sendCommand(params.id, body.command);\n return { success: true };\n } catch (err) {\n set.status = 500;\n return { error: \"Failed to execute command\", details: String(err) };\n }\n },\n {\n body: t.Object({\n command: t.String(),\n }),\n },\n )\n\n // Send raw keys to session\n .post(\n \"/:id/keys\",\n async ({ params, body, set }) => {\n try {\n const provider = getSessionProvider(serviceRegistry);\n const session = await provider.get(params.id);\n\n if (!session) {\n set.status = 404;\n return { error: \"Session not found\" };\n }\n\n await provider.sendKeys(params.id, body.keys);\n return { success: true };\n } catch (err) {\n set.status = 500;\n return { error: \"Failed to send keys\", details: String(err) };\n }\n },\n {\n body: t.Object({\n keys: t.String(),\n }),\n },\n )\n\n // Interrupt session (Ctrl+C)\n .post(\"/:id/interrupt\", async ({ params, set }) => {\n try {\n const provider = getSessionProvider(serviceRegistry);\n const session = await provider.get(params.id);\n\n if (!session) {\n set.status = 404;\n return { error: \"Session not found\" };\n }\n\n await provider.interrupt(params.id);\n return { success: true };\n } catch (err) {\n set.status = 500;\n return { error: \"Failed to send interrupt\", details: String(err) };\n }\n })\n\n // Capture session output\n .get(\"/:id/capture\", async ({ params, set }) => {\n try {\n const provider = getSessionProvider(serviceRegistry);\n const session = await provider.get(params.id);\n\n if (!session) {\n set.status = 404;\n return { error: \"Session not found\" };\n }\n\n const output = await provider.capture(params.id);\n return { output };\n } catch (err) {\n set.status = 500;\n return { error: \"Failed to capture output\", details: String(err) };\n }\n })\n\n // Rename session\n .put(\n \"/:id/rename\",\n async ({ params, body, set }) => {\n try {\n const provider = getSessionProvider(serviceRegistry);\n const session = await provider.get(params.id);\n\n if (!session) {\n set.status = 404;\n return { error: \"Session not found\" };\n }\n\n await provider.rename(params.id, body.newName);\n return { success: true };\n } catch (err) {\n set.status = 500;\n return { error: \"Failed to rename session\", details: String(err) };\n }\n },\n {\n body: t.Object({\n newName: t.String(),\n }),\n },\n )\n\n // Toggle mouse mode\n .post(\"/:id/toggle-mouse\", async ({ params, set }) => {\n try {\n const provider = getSessionProvider(serviceRegistry);\n const session = await provider.get(params.id);\n\n if (!session) {\n set.status = 404;\n return { error: \"Session not found\" };\n }\n\n await provider.toggleMouse(params.id);\n return { success: true };\n } catch (err) {\n set.status = 500;\n return { error: \"Failed to toggle mouse mode\", details: String(err) };\n }\n })\n\n // Get termination status\n .get(\"/:id/termination-status\", async ({ params, set }) => {\n try {\n const provider = getSessionProvider(serviceRegistry);\n const session = await provider.get(params.id);\n\n if (!session) {\n set.status = 404;\n return { error: \"Session not found\" };\n }\n\n const termStatus = await provider.getTerminationStatus(params.id);\n return {\n sessionId: params.id,\n sessionName: session.name,\n databaseStatus: session.status,\n ...termStatus,\n isFullyTerminated:\n termStatus.exited && session.status === \"terminated\",\n };\n } catch (err) {\n set.status = 500;\n return {\n error: \"Failed to verify termination\",\n details: String(err),\n };\n }\n })\n\n // Get terminal info\n .get(\"/:id/terminal\", async ({ params, set }) => {\n try {\n const provider = getSessionProvider(serviceRegistry);\n const session = await provider.get(params.id);\n\n if (!session) {\n set.status = 404;\n return { error: \"Session not found\" };\n }\n\n const terminal = await provider.getTerminalInfo(params.id);\n if (!terminal) {\n set.status = 404;\n return { error: \"Terminal not running for this session\" };\n }\n\n // Build proxy URL if tunnel is available\n const tunnelProvider =\n serviceRegistry.getProvider<TunnelProvider>(\"tunnel\");\n const tunnelUrl = tunnelProvider\n ? await tunnelProvider.getActiveTunnelUrl()\n : null;\n const terminalProxyUrl = tunnelUrl\n ? `${tunnelUrl}/terminal/${params.id}/`\n : null;\n\n return {\n port: terminal.port,\n url: `http://localhost:${terminal.port}`,\n pid: terminal.pid,\n terminalUrl: terminalProxyUrl,\n };\n } catch (err) {\n set.status = 500;\n return { error: \"Failed to get terminal info\", details: String(err) };\n }\n })\n\n // Start web terminal (ttyd)\n .post(\"/:id/terminal\", async ({ params, set }) => {\n try {\n const provider = getSessionProvider(serviceRegistry);\n const session = await provider.get(params.id);\n\n if (!session) {\n set.status = 404;\n return { error: \"Session not found\" };\n }\n\n // Check if terminal is already running\n const existingTerminal = await provider.getTerminalInfo(params.id);\n if (existingTerminal) {\n const tunnelProvider =\n serviceRegistry.getProvider<TunnelProvider>(\"tunnel\");\n const tunnelUrl = tunnelProvider\n ? await tunnelProvider.getActiveTunnelUrl()\n : null;\n const terminalProxyUrl = tunnelUrl\n ? `${tunnelUrl}/terminal/${params.id}/`\n : null;\n\n return {\n port: existingTerminal.port,\n pid: existingTerminal.pid,\n url: `http://localhost:${existingTerminal.port}`,\n terminalUrl: terminalProxyUrl,\n };\n }\n\n const terminal = await provider.startTerminal(params.id);\n\n // Build proxy URL\n const tunnelProvider =\n serviceRegistry.getProvider<TunnelProvider>(\"tunnel\");\n const tunnelUrl = tunnelProvider\n ? await tunnelProvider.getActiveTunnelUrl()\n : null;\n const terminalProxyUrl = tunnelUrl\n ? `${tunnelUrl}/terminal/${params.id}/`\n : null;\n\n return {\n port: terminal.port,\n pid: terminal.pid,\n url: `http://localhost:${terminal.port}`,\n terminalUrl: terminalProxyUrl,\n };\n } catch (err) {\n set.status = 500;\n return { error: \"Failed to start terminal\", details: String(err) };\n }\n })\n\n // Stop web terminal\n .post(\"/:id/terminal/stop\", async ({ params, set }) => {\n try {\n const provider = getSessionProvider(serviceRegistry);\n const session = await provider.get(params.id);\n\n if (!session) {\n set.status = 404;\n return { error: \"Session not found\" };\n }\n\n await provider.stopTerminal(params.id);\n return { success: true };\n } catch (err) {\n set.status = 500;\n return { error: \"Failed to stop terminal\", details: String(err) };\n }\n })\n );\n}\n",
5
+ "/**\n * Session Plugin — Routes\n *\n * Delegates all session management to the registered SessionProvider.\n * This decouples the API from any specific terminal multiplexer (tmux, wezterm, etc.).\n *\n * Endpoints:\n * GET / — List all managed sessions\n * GET /system — List all system sessions (incl. unmanaged)\n * GET /system/terminals — List all system terminal server processes\n * POST /system/kill — Bulk kill system sessions\n * POST /system/terminals/kill — Bulk kill system terminal processes\n * POST /health-check — Bulk session health check\n * POST /create — Create a new session (idempotent)\n * GET /:id — Get session by ID\n * DELETE /:id — Kill/terminate session\n * POST /:id/command — Send command to session\n * POST /:id/keys — Send raw keys to session\n * POST /:id/interrupt — Send Ctrl+C to session\n * GET /:id/capture — Capture session output\n * PUT /:id/rename — Rename session\n * POST /:id/toggle-mouse — Toggle mouse mode\n * GET /:id/termination-status — Get session termination verification\n * GET /:id/terminal — Get terminal info\n * POST /:id/terminal — Start web terminal (ttyd)\n * POST /:id/terminal/stop — Stop web terminal\n */\n\nimport { Elysia, t } from \"elysia\";\n\nimport type { PluginRouteDeps } from \"../../core/types.js\";\nimport type { ServiceRegistry } from \"../../core/service-registry.js\";\nimport type { SessionProvider } from \"../../core/providers/session.provider.js\";\nimport type { TunnelProvider } from \"../../core/providers/tunnel.provider.js\";\n\n// ── Helpers ─────────────────────────────────────────────────────────────\n\nfunction getSessionProvider(registry: ServiceRegistry): SessionProvider {\n const provider = registry.getProvider<SessionProvider>(\"session\");\n if (!provider) {\n throw new Error(\"No session provider registered\");\n }\n return provider;\n}\n\n// ── Routes ──────────────────────────────────────────────────────────────\n\nexport function createRoutes(deps: PluginRouteDeps) {\n const { serviceRegistry } = deps;\n\n return (\n new Elysia()\n // List all managed sessions\n .get(\"/\", async ({ set }) => {\n try {\n const provider = getSessionProvider(serviceRegistry);\n const sessions = await provider.list();\n return { sessions };\n } catch (err) {\n set.status = 500;\n return { error: \"Failed to list sessions\", details: String(err) };\n }\n })\n\n // List all system sessions (including unmanaged ones)\n .get(\"/system\", async ({ set }) => {\n try {\n const provider = getSessionProvider(serviceRegistry);\n const sessions = await provider.listSystem();\n return { sessions };\n } catch (err) {\n set.status = 500;\n return {\n error: \"Failed to get system sessions\",\n details: String(err),\n };\n }\n })\n\n // List all system terminal server processes\n .get(\"/system/terminals\", async ({ set }) => {\n try {\n const provider = getSessionProvider(serviceRegistry);\n const processes = await provider.listSystemTerminals();\n return { processes };\n } catch (err) {\n set.status = 500;\n return {\n error: \"Failed to get system terminal processes\",\n details: String(err),\n };\n }\n })\n\n // Bulk kill system sessions\n .post(\n \"/system/kill\",\n async ({ body, set }) => {\n try {\n const provider = getSessionProvider(serviceRegistry);\n const results: Array<{\n target: string;\n success: boolean;\n error?: string;\n }> = [];\n\n for (const sessionId of body.sessionIds) {\n try {\n await provider.killSystem(sessionId);\n results.push({ target: sessionId, success: true });\n } catch (err) {\n results.push({\n target: sessionId,\n success: false,\n error: String(err),\n });\n }\n }\n\n return { results };\n } catch (err) {\n set.status = 500;\n return {\n error: \"Failed to kill system sessions\",\n details: String(err),\n };\n }\n },\n {\n body: t.Object({\n sessionIds: t.Array(t.String()),\n force: t.Optional(t.Boolean()),\n }),\n },\n )\n\n // Bulk kill system terminal processes\n .post(\n \"/system/terminals/kill\",\n async ({ body, set }) => {\n try {\n const provider = getSessionProvider(serviceRegistry);\n const results: Array<{\n target: string;\n success: boolean;\n error?: string;\n }> = [];\n\n for (const pid of body.pids) {\n try {\n await provider.killSystemTerminal(pid);\n results.push({ target: String(pid), success: true });\n } catch (err) {\n results.push({\n target: String(pid),\n success: false,\n error: String(err),\n });\n }\n }\n\n return { results };\n } catch (err) {\n set.status = 500;\n return {\n error: \"Failed to kill system terminal processes\",\n details: String(err),\n };\n }\n },\n {\n body: t.Object({\n pids: t.Array(t.Number()),\n force: t.Optional(t.Boolean()),\n }),\n },\n )\n\n // Bulk session health check\n .post(\n \"/health-check\",\n async ({ body, set }) => {\n try {\n const provider = getSessionProvider(serviceRegistry);\n const results: Array<{\n sessionId: string;\n status: \"running\" | \"dead\" | \"unknown\";\n }> = [];\n\n for (const sessionId of body.sessionIds) {\n try {\n const session = await provider.get(sessionId);\n if (!session) {\n results.push({ sessionId, status: \"unknown\" });\n } else {\n results.push({\n sessionId,\n status: session.status === \"active\" ? \"running\" : \"dead\",\n });\n }\n } catch {\n results.push({ sessionId, status: \"unknown\" });\n }\n }\n\n return { results };\n } catch (err) {\n set.status = 500;\n return {\n error: \"Failed to health check sessions\",\n details: String(err),\n };\n }\n },\n {\n body: t.Object({\n sessionIds: t.Array(t.String()),\n }),\n },\n )\n\n // Create new session (idempotent)\n .post(\n \"/create\",\n async ({ body, set }) => {\n try {\n const provider = getSessionProvider(serviceRegistry);\n\n // Check if session already exists (idempotent)\n if (body.sessionId) {\n const existing = await provider.get(body.sessionId);\n if (existing && existing.status === \"active\") {\n return { session: existing, reused: true };\n }\n }\n\n const session = await provider.create({\n id: body.sessionId,\n name: body.sessionName || `vibecontrols-${Date.now()}`,\n command: body.command,\n workingDirectory: body.startDirectory,\n projectId: body.projectId,\n });\n\n return { session, reused: false };\n } catch (err) {\n set.status = 500;\n return { error: \"Failed to create session\", details: String(err) };\n }\n },\n {\n body: t.Object({\n sessionId: t.Optional(t.String()),\n projectId: t.Optional(t.String()),\n sessionName: t.Optional(t.String()),\n windowName: t.Optional(t.String()),\n command: t.Optional(t.String()),\n startDirectory: t.Optional(t.String()),\n }),\n },\n )\n\n // Get session by ID\n .get(\"/:id\", async ({ params, set }) => {\n try {\n const provider = getSessionProvider(serviceRegistry);\n const session = await provider.get(params.id);\n\n if (!session) {\n set.status = 404;\n return { error: \"Session not found\" };\n }\n\n return { session };\n } catch (err) {\n set.status = 500;\n return { error: \"Failed to get session\", details: String(err) };\n }\n })\n\n // Kill session\n .delete(\"/:id\", async ({ params, set }) => {\n try {\n const provider = getSessionProvider(serviceRegistry);\n const session = await provider.get(params.id);\n\n if (!session) {\n set.status = 404;\n return { error: \"Session not found\" };\n }\n\n await provider.kill(params.id);\n\n return { success: true, sessionName: session.name };\n } catch (err) {\n set.status = 500;\n return { error: \"Failed to kill session\", details: String(err) };\n }\n })\n\n // Send command to session\n .post(\n \"/:id/command\",\n async ({ params, body, set }) => {\n try {\n const provider = getSessionProvider(serviceRegistry);\n const session = await provider.get(params.id);\n\n if (!session) {\n set.status = 404;\n return { error: \"Session not found\" };\n }\n\n await provider.sendCommand(params.id, body.command);\n return { success: true };\n } catch (err) {\n set.status = 500;\n return { error: \"Failed to execute command\", details: String(err) };\n }\n },\n {\n body: t.Object({\n command: t.String(),\n }),\n },\n )\n\n // Send raw keys to session\n .post(\n \"/:id/keys\",\n async ({ params, body, set }) => {\n try {\n const provider = getSessionProvider(serviceRegistry);\n const session = await provider.get(params.id);\n\n if (!session) {\n set.status = 404;\n return { error: \"Session not found\" };\n }\n\n await provider.sendKeys(params.id, body.keys);\n return { success: true };\n } catch (err) {\n set.status = 500;\n return { error: \"Failed to send keys\", details: String(err) };\n }\n },\n {\n body: t.Object({\n keys: t.String(),\n }),\n },\n )\n\n // Interrupt session (Ctrl+C)\n .post(\"/:id/interrupt\", async ({ params, set }) => {\n try {\n const provider = getSessionProvider(serviceRegistry);\n const session = await provider.get(params.id);\n\n if (!session) {\n set.status = 404;\n return { error: \"Session not found\" };\n }\n\n await provider.interrupt(params.id);\n return { success: true };\n } catch (err) {\n set.status = 500;\n return { error: \"Failed to send interrupt\", details: String(err) };\n }\n })\n\n // Capture session output\n .get(\"/:id/capture\", async ({ params, set }) => {\n try {\n const provider = getSessionProvider(serviceRegistry);\n const session = await provider.get(params.id);\n\n if (!session) {\n set.status = 404;\n return { error: \"Session not found\" };\n }\n\n const output = await provider.capture(params.id);\n return { output };\n } catch (err) {\n set.status = 500;\n return { error: \"Failed to capture output\", details: String(err) };\n }\n })\n\n // Rename session\n .put(\n \"/:id/rename\",\n async ({ params, body, set }) => {\n try {\n const provider = getSessionProvider(serviceRegistry);\n const session = await provider.get(params.id);\n\n if (!session) {\n set.status = 404;\n return { error: \"Session not found\" };\n }\n\n await provider.rename(params.id, body.newName);\n return { success: true };\n } catch (err) {\n set.status = 500;\n return { error: \"Failed to rename session\", details: String(err) };\n }\n },\n {\n body: t.Object({\n newName: t.String(),\n }),\n },\n )\n\n // Toggle mouse mode\n .post(\"/:id/toggle-mouse\", async ({ params, set }) => {\n try {\n const provider = getSessionProvider(serviceRegistry);\n const session = await provider.get(params.id);\n\n if (!session) {\n set.status = 404;\n return { error: \"Session not found\" };\n }\n\n await provider.toggleMouse(params.id);\n return { success: true };\n } catch (err) {\n set.status = 500;\n return { error: \"Failed to toggle mouse mode\", details: String(err) };\n }\n })\n\n // Get termination status\n .get(\"/:id/termination-status\", async ({ params, set }) => {\n try {\n const provider = getSessionProvider(serviceRegistry);\n const session = await provider.get(params.id);\n\n if (!session) {\n set.status = 404;\n return { error: \"Session not found\" };\n }\n\n const termStatus = await provider.getTerminationStatus(params.id);\n return {\n sessionId: params.id,\n sessionName: session.name,\n databaseStatus: session.status,\n ...termStatus,\n isFullyTerminated:\n termStatus.exited && session.status === \"terminated\",\n };\n } catch (err) {\n set.status = 500;\n return {\n error: \"Failed to verify termination\",\n details: String(err),\n };\n }\n })\n\n // Get terminal info\n .get(\"/:id/terminal\", async ({ params, set }) => {\n try {\n const provider = getSessionProvider(serviceRegistry);\n const session = await provider.get(params.id);\n\n if (!session) {\n set.status = 404;\n return { error: \"Session not found\" };\n }\n\n const terminal = await provider.getTerminalInfo(params.id);\n if (!terminal) {\n set.status = 404;\n return { error: \"Terminal not running for this session\" };\n }\n\n // Build proxy URL if tunnel is available\n const tunnelProvider =\n serviceRegistry.getProvider<TunnelProvider>(\"tunnel\");\n const tunnelUrl = tunnelProvider\n ? await tunnelProvider.getActiveTunnelUrl()\n : null;\n const terminalProxyUrl = tunnelUrl\n ? `${tunnelUrl}/terminal/${params.id}/`\n : null;\n\n return {\n port: terminal.port,\n url: `http://localhost:${terminal.port}`,\n pid: terminal.pid,\n terminalUrl: terminalProxyUrl,\n };\n } catch (err) {\n set.status = 500;\n return { error: \"Failed to get terminal info\", details: String(err) };\n }\n })\n\n // Start web terminal (ttyd)\n .post(\"/:id/terminal\", async ({ params, set }) => {\n try {\n const provider = getSessionProvider(serviceRegistry);\n const session = await provider.get(params.id);\n\n if (!session) {\n set.status = 404;\n return { error: \"Session not found\" };\n }\n\n // Check if terminal is already running\n const existingTerminal = await provider.getTerminalInfo(params.id);\n if (existingTerminal) {\n const tunnelProvider =\n serviceRegistry.getProvider<TunnelProvider>(\"tunnel\");\n const tunnelUrl = tunnelProvider\n ? await tunnelProvider.getActiveTunnelUrl()\n : null;\n const terminalProxyUrl = tunnelUrl\n ? `${tunnelUrl}/terminal/${params.id}/`\n : null;\n\n return {\n port: existingTerminal.port,\n pid: existingTerminal.pid,\n url: `http://localhost:${existingTerminal.port}`,\n terminalUrl: terminalProxyUrl,\n };\n }\n\n const terminal = await provider.startTerminal(params.id);\n\n // Build proxy URL\n const tunnelProvider =\n serviceRegistry.getProvider<TunnelProvider>(\"tunnel\");\n const tunnelUrl = tunnelProvider\n ? await tunnelProvider.getActiveTunnelUrl()\n : null;\n const terminalProxyUrl = tunnelUrl\n ? `${tunnelUrl}/terminal/${params.id}/`\n : null;\n\n return {\n port: terminal.port,\n pid: terminal.pid,\n url: `http://localhost:${terminal.port}`,\n terminalUrl: terminalProxyUrl,\n };\n } catch (err) {\n set.status = 500;\n return { error: \"Failed to start terminal\", details: String(err) };\n }\n })\n\n // Stop web terminal\n .post(\"/:id/terminal/stop\", async ({ params, set }) => {\n try {\n const provider = getSessionProvider(serviceRegistry);\n const session = await provider.get(params.id);\n\n if (!session) {\n set.status = 404;\n return { error: \"Session not found\" };\n }\n\n await provider.stopTerminal(params.id);\n return { success: true };\n } catch (err) {\n set.status = 500;\n return { error: \"Failed to stop terminal\", details: String(err) };\n }\n })\n );\n}\n",
6
6
  "import { Command } from \"commander\";\nimport {\n getAgentUrl,\n apiGet,\n apiPost,\n apiPut,\n apiDelete,\n fail,\n success,\n info,\n header,\n kv,\n blank,\n formatTable,\n formatStatus,\n shortId,\n} from \"../utils/index.js\";\n\nconst DEFAULT_AGENT_URL = \"http://localhost:3005\";\n\nexport function register(program: Command): void {\n const cmd = program\n .command(\"session\")\n .description(\"Manage terminal sessions\");\n\n // session list\n cmd\n .command(\"list\")\n .description(\"List all sessions\")\n .option(\"--system\", \"Show system sessions instead of user sessions\")\n .option(\"--agent-url <url>\", \"Agent URL\", DEFAULT_AGENT_URL)\n .action(async (options) => {\n try {\n const url = getAgentUrl(options);\n const endpoint = options.system\n ? \"/api/sessions?system=true\"\n : \"/api/sessions\";\n const sessions = await apiGet<any[]>(url, endpoint);\n if (!sessions || sessions.length === 0) {\n info(\"No sessions found.\");\n return;\n }\n header(\"Sessions\");\n formatTable(\n sessions.map((s: any) => ({\n ID: shortId(s.id),\n Name: s.name || \"-\",\n Status: formatStatus(s.status),\n Port: s.port ?? \"-\",\n Project: s.project || s.projectId || \"-\",\n })),\n );\n } catch (err: any) {\n fail(err.message);\n }\n });\n\n // session create\n cmd\n .command(\"create\")\n .description(\"Create a new session\")\n .requiredOption(\"--name <name>\", \"Session name\")\n .option(\"--project <id>\", \"Project ID\", \"default\")\n .option(\"--command <cmd>\", \"Initial command to run\")\n .option(\"--cwd <dir>\", \"Working directory\")\n .option(\"--agent-url <url>\", \"Agent URL\", DEFAULT_AGENT_URL)\n .action(async (options) => {\n try {\n const url = getAgentUrl(options);\n const body: Record<string, any> = {\n name: options.name,\n project: options.project,\n };\n if (options.command) body.command = options.command;\n if (options.cwd) body.cwd = options.cwd;\n const result = await apiPost<any>(url, \"/api/sessions/create\", body);\n success(`Session created: ${shortId(result.id || result.sessionId)}`);\n kv(\"Name\", options.name);\n kv(\"Project\", options.project);\n } catch (err: any) {\n fail(err.message);\n }\n });\n\n // session kill\n cmd\n .command(\"kill\")\n .description(\"Kill a session\")\n .requiredOption(\"-i, --id <id>\", \"Session ID\")\n .option(\"--agent-url <url>\", \"Agent URL\", DEFAULT_AGENT_URL)\n .action(async (options) => {\n try {\n const url = getAgentUrl(options);\n await apiDelete<any>(url, `/api/sessions/${options.id}`);\n success(`Session ${shortId(options.id)} killed.`);\n } catch (err: any) {\n fail(err.message);\n }\n });\n\n // session exec\n cmd\n .command(\"exec\")\n .description(\"Execute a command in a session\")\n .requiredOption(\"-i, --id <id>\", \"Session ID\")\n .requiredOption(\"-c, --command <cmd>\", \"Command to execute\")\n .option(\"--agent-url <url>\", \"Agent URL\", DEFAULT_AGENT_URL)\n .action(async (options) => {\n try {\n const url = getAgentUrl(options);\n const result = await apiPost<any>(\n url,\n `/api/sessions/${options.id}/command`,\n { command: options.command },\n );\n success(\"Command executed.\");\n if (result?.output) {\n blank();\n console.log(result.output);\n }\n } catch (err: any) {\n fail(err.message);\n }\n });\n\n // session capture\n cmd\n .command(\"capture\")\n .description(\"Capture session terminal output\")\n .requiredOption(\"-i, --id <id>\", \"Session ID\")\n .option(\"--agent-url <url>\", \"Agent URL\", DEFAULT_AGENT_URL)\n .action(async (options) => {\n try {\n const url = getAgentUrl(options);\n const result = await apiGet<any>(\n url,\n `/api/sessions/${options.id}/capture`,\n );\n if (result?.content || result?.output) {\n console.log(result.content || result.output);\n } else {\n info(\"No capture data available.\");\n }\n } catch (err: any) {\n fail(err.message);\n }\n });\n\n // session keys\n cmd\n .command(\"keys\")\n .description(\"Send keys to a session\")\n .requiredOption(\"-i, --id <id>\", \"Session ID\")\n .requiredOption(\"-k, --keys <keys>\", \"Keys to send\")\n .option(\"--agent-url <url>\", \"Agent URL\", DEFAULT_AGENT_URL)\n .action(async (options) => {\n try {\n const url = getAgentUrl(options);\n await apiPost<any>(url, `/api/sessions/${options.id}/keys`, {\n keys: options.keys,\n });\n success(\"Keys sent.\");\n } catch (err: any) {\n fail(err.message);\n }\n });\n\n // session interrupt\n cmd\n .command(\"interrupt\")\n .description(\"Send interrupt signal to a session\")\n .requiredOption(\"-i, --id <id>\", \"Session ID\")\n .option(\"--agent-url <url>\", \"Agent URL\", DEFAULT_AGENT_URL)\n .action(async (options) => {\n try {\n const url = getAgentUrl(options);\n await apiPost<any>(url, `/api/sessions/${options.id}/interrupt`, {});\n success(`Session ${shortId(options.id)} interrupted.`);\n } catch (err: any) {\n fail(err.message);\n }\n });\n\n // session rename\n cmd\n .command(\"rename\")\n .description(\"Rename a session\")\n .requiredOption(\"-i, --id <id>\", \"Session ID\")\n .requiredOption(\"--name <name>\", \"New session name\")\n .option(\"--agent-url <url>\", \"Agent URL\", DEFAULT_AGENT_URL)\n .action(async (options) => {\n try {\n const url = getAgentUrl(options);\n await apiPut<any>(url, `/api/sessions/${options.id}/rename`, {\n name: options.name,\n });\n success(`Session ${shortId(options.id)} renamed to \"${options.name}\".`);\n } catch (err: any) {\n fail(err.message);\n }\n });\n\n // session toggle-mouse\n cmd\n .command(\"toggle-mouse\")\n .description(\"Toggle mouse support in a session\")\n .requiredOption(\"-i, --id <id>\", \"Session ID\")\n .option(\"--agent-url <url>\", \"Agent URL\", DEFAULT_AGENT_URL)\n .action(async (options) => {\n try {\n const url = getAgentUrl(options);\n const result = await apiPost<any>(\n url,\n `/api/sessions/${options.id}/toggle-mouse`,\n {},\n );\n success(\n `Mouse support ${result?.mouseEnabled ? \"enabled\" : \"toggled\"} for session ${shortId(options.id)}.`,\n );\n } catch (err: any) {\n fail(err.message);\n }\n });\n\n // session terminal-start\n cmd\n .command(\"terminal-start\")\n .description(\"Start terminal for a session\")\n .requiredOption(\"-i, --id <id>\", \"Session ID\")\n .option(\"--agent-url <url>\", \"Agent URL\", DEFAULT_AGENT_URL)\n .action(async (options) => {\n try {\n const url = getAgentUrl(options);\n const result = await apiPost<any>(\n url,\n `/api/sessions/${options.id}/terminal`,\n {},\n );\n success(`Terminal started for session ${shortId(options.id)}.`);\n if (result?.port) kv(\"Port\", result.port);\n } catch (err: any) {\n fail(err.message);\n }\n });\n\n // session terminal-stop\n cmd\n .command(\"terminal-stop\")\n .description(\"Stop terminal for a session\")\n .requiredOption(\"-i, --id <id>\", \"Session ID\")\n .option(\"--agent-url <url>\", \"Agent URL\", DEFAULT_AGENT_URL)\n .action(async (options) => {\n try {\n const url = getAgentUrl(options);\n await apiPost<any>(\n url,\n `/api/sessions/${options.id}/terminal/stop`,\n {},\n );\n success(`Terminal stopped for session ${shortId(options.id)}.`);\n } catch (err: any) {\n fail(err.message);\n }\n });\n\n // session health-check\n cmd\n .command(\"health-check\")\n .description(\"Run health check on all sessions\")\n .option(\"--agent-url <url>\", \"Agent URL\", DEFAULT_AGENT_URL)\n .action(async (options) => {\n try {\n const url = getAgentUrl(options);\n const result = await apiPost<any>(\n url,\n \"/api/sessions/health-check\",\n {},\n );\n success(\"Health check completed.\");\n if (result?.healthy !== undefined) kv(\"Healthy\", result.healthy);\n if (result?.checked !== undefined) kv(\"Checked\", result.checked);\n if (result?.fixed !== undefined) kv(\"Fixed\", result.fixed);\n } catch (err: any) {\n fail(err.message);\n }\n });\n}\n",
7
7
  "import type { Command } from \"commander\";\nimport type { HostServices } from \"../../core/plugin-system.js\";\nimport { register as registerSession } from \"../../cli/commands/session.cmd.js\";\n\nexport function registerCommands(\n program: Command,\n _hostServices: HostServices,\n): void {\n registerSession(program);\n}\n",
8
8
  "import type { VibePlugin } from \"../../core/plugin-system.js\";\nimport type { PluginRouteDeps } from \"../../core/types.js\";\nimport { createRoutes } from \"./routes.js\";\nimport { registerCommands } from \"./commands.js\";\n\nexport const vibePlugin: VibePlugin = {\n name: \"session\",\n version: \"2.2.0\",\n description: \"Terminal session management via registered session provider\",\n tags: [\"backend\", \"cli\", \"provider\"],\n cliCommand: \"session\",\n apiPrefix: \"/api/sessions\",\n createRoutes: (deps: PluginRouteDeps) => createRoutes(deps),\n onCliSetup: async (program, hostServices) => {\n registerCommands(program, hostServices);\n },\n};\n"
9
9
  ],
10
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAqCA,SAAS,kBAAkB,CAAC,UAA4C;AAAA,EACtE,MAAM,WAAW,SAAS,YAA6B,SAAS;AAAA,EAChE,IAAI,CAAC,UAAU;AAAA,IACb,MAAM,IAAI,MAAM,gCAAgC;AAAA,EAClD;AAAA,EACA,OAAO;AAAA;AAKF,SAAS,YAAY,CAAC,MAAuB;AAAA,EAClD,QAAQ,oBAAoB;AAAA,EAE5B,OACE,IAAI,OAAO,EAER,IAAI,KAAK,SAAS,UAAU;AAAA,IAC3B,IAAI;AAAA,MACF,MAAM,WAAW,mBAAmB,eAAe;AAAA,MACnD,MAAM,WAAW,MAAM,SAAS,KAAK;AAAA,MACrC,OAAO,EAAE,SAAS;AAAA,MAClB,OAAO,KAAK;AAAA,MACZ,IAAI,SAAS;AAAA,MACb,OAAO,EAAE,OAAO,2BAA2B,SAAS,OAAO,GAAG,EAAE;AAAA;AAAA,GAEnE,EAGA,IAAI,WAAW,SAAS,UAAU;AAAA,IACjC,IAAI;AAAA,MACF,MAAM,WAAW,mBAAmB,eAAe;AAAA,MACnD,MAAM,WAAW,MAAM,SAAS,WAAW;AAAA,MAC3C,OAAO,EAAE,SAAS;AAAA,MAClB,OAAO,KAAK;AAAA,MACZ,IAAI,SAAS;AAAA,MACb,OAAO;AAAA,QACL,OAAO;AAAA,QACP,SAAS,OAAO,GAAG;AAAA,MACrB;AAAA;AAAA,GAEH,EAGA,IAAI,qBAAqB,SAAS,UAAU;AAAA,IAC3C,IAAI;AAAA,MACF,MAAM,WAAW,mBAAmB,eAAe;AAAA,MACnD,MAAM,YAAY,MAAM,SAAS,oBAAoB;AAAA,MACrD,OAAO,EAAE,UAAU;AAAA,MACnB,OAAO,KAAK;AAAA,MACZ,IAAI,SAAS;AAAA,MACb,OAAO;AAAA,QACL,OAAO;AAAA,QACP,SAAS,OAAO,GAAG;AAAA,MACrB;AAAA;AAAA,GAEH,EAGA,KACC,gBACA,SAAS,MAAM,UAAU;AAAA,IACvB,IAAI;AAAA,MACF,MAAM,WAAW,mBAAmB,eAAe;AAAA,MACnD,MAAM,UAID,CAAC;AAAA,MAEN,WAAW,aAAa,KAAK,YAAY;AAAA,QACvC,IAAI;AAAA,UACF,MAAM,SAAS,WAAW,SAAS;AAAA,UACnC,QAAQ,KAAK,EAAE,QAAQ,WAAW,SAAS,KAAK,CAAC;AAAA,UACjD,OAAO,KAAK;AAAA,UACZ,QAAQ,KAAK;AAAA,YACX,QAAQ;AAAA,YACR,SAAS;AAAA,YACT,OAAO,OAAO,GAAG;AAAA,UACnB,CAAC;AAAA;AAAA,MAEL;AAAA,MAEA,OAAO,EAAE,QAAQ;AAAA,MACjB,OAAO,KAAK;AAAA,MACZ,IAAI,SAAS;AAAA,MACb,OAAO;AAAA,QACL,OAAO;AAAA,QACP,SAAS,OAAO,GAAG;AAAA,MACrB;AAAA;AAAA,KAGJ;AAAA,IACE,MAAM,EAAE,OAAO;AAAA,MACb,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC;AAAA,MAC9B,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC;AAAA,IAC/B,CAAC;AAAA,EACH,CACF,EAGC,KACC,0BACA,SAAS,MAAM,UAAU;AAAA,IACvB,IAAI;AAAA,MACF,MAAM,WAAW,mBAAmB,eAAe;AAAA,MACnD,MAAM,UAID,CAAC;AAAA,MAEN,WAAW,OAAO,KAAK,MAAM;AAAA,QAC3B,IAAI;AAAA,UACF,MAAM,SAAS,mBAAmB,GAAG;AAAA,UACrC,QAAQ,KAAK,EAAE,QAAQ,OAAO,GAAG,GAAG,SAAS,KAAK,CAAC;AAAA,UACnD,OAAO,KAAK;AAAA,UACZ,QAAQ,KAAK;AAAA,YACX,QAAQ,OAAO,GAAG;AAAA,YAClB,SAAS;AAAA,YACT,OAAO,OAAO,GAAG;AAAA,UACnB,CAAC;AAAA;AAAA,MAEL;AAAA,MAEA,OAAO,EAAE,QAAQ;AAAA,MACjB,OAAO,KAAK;AAAA,MACZ,IAAI,SAAS;AAAA,MACb,OAAO;AAAA,QACL,OAAO;AAAA,QACP,SAAS,OAAO,GAAG;AAAA,MACrB;AAAA;AAAA,KAGJ;AAAA,IACE,MAAM,EAAE,OAAO;AAAA,MACb,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;AAAA,MACxB,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC;AAAA,IAC/B,CAAC;AAAA,EACH,CACF,EAGC,KACC,iBACA,SAAS,MAAM,UAAU;AAAA,IACvB,IAAI;AAAA,MACF,MAAM,WAAW,mBAAmB,eAAe;AAAA,MACnD,MAAM,UAGD,CAAC;AAAA,MAEN,WAAW,aAAa,KAAK,YAAY;AAAA,QACvC,IAAI;AAAA,UACF,MAAM,UAAU,MAAM,SAAS,IAAI,SAAS;AAAA,UAC5C,IAAI,CAAC,SAAS;AAAA,YACZ,QAAQ,KAAK,EAAE,WAAW,QAAQ,UAAU,CAAC;AAAA,UAC/C,EAAO;AAAA,YACL,QAAQ,KAAK;AAAA,cACX;AAAA,cACA,QAAQ,QAAQ,WAAW,WAAW,YAAY;AAAA,YACpD,CAAC;AAAA;AAAA,UAEH,MAAM;AAAA,UACN,QAAQ,KAAK,EAAE,WAAW,QAAQ,UAAU,CAAC;AAAA;AAAA,MAEjD;AAAA,MAEA,OAAO,EAAE,QAAQ;AAAA,MACjB,OAAO,KAAK;AAAA,MACZ,IAAI,SAAS;AAAA,MACb,OAAO;AAAA,QACL,OAAO;AAAA,QACP,SAAS,OAAO,GAAG;AAAA,MACrB;AAAA;AAAA,KAGJ;AAAA,IACE,MAAM,EAAE,OAAO;AAAA,MACb,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC;AAAA,IAChC,CAAC;AAAA,EACH,CACF,EAGC,KACC,WACA,SAAS,MAAM,UAAU;AAAA,IACvB,IAAI;AAAA,MACF,MAAM,WAAW,mBAAmB,eAAe;AAAA,MAGnD,IAAI,KAAK,WAAW;AAAA,QAClB,MAAM,WAAW,MAAM,SAAS,IAAI,KAAK,SAAS;AAAA,QAClD,IAAI,YAAY,SAAS,WAAW,UAAU;AAAA,UAC5C,OAAO,EAAE,SAAS,UAAU,QAAQ,KAAK;AAAA,QAC3C;AAAA,MACF;AAAA,MAEA,MAAM,UAAU,MAAM,SAAS,OAAO;AAAA,QACpC,MAAM,KAAK,eAAe,gBAAgB,KAAK,IAAI;AAAA,QACnD,SAAS,KAAK;AAAA,QACd,kBAAkB,KAAK;AAAA,QACvB,WAAW,KAAK;AAAA,MAClB,CAAC;AAAA,MAED,OAAO,EAAE,SAAS,QAAQ,MAAM;AAAA,MAChC,OAAO,KAAK;AAAA,MACZ,IAAI,SAAS;AAAA,MACb,OAAO,EAAE,OAAO,4BAA4B,SAAS,OAAO,GAAG,EAAE;AAAA;AAAA,KAGrE;AAAA,IACE,MAAM,EAAE,OAAO;AAAA,MACb,WAAW,EAAE,SAAS,EAAE,OAAO,CAAC;AAAA,MAChC,WAAW,EAAE,SAAS,EAAE,OAAO,CAAC;AAAA,MAChC,aAAa,EAAE,SAAS,EAAE,OAAO,CAAC;AAAA,MAClC,YAAY,EAAE,SAAS,EAAE,OAAO,CAAC;AAAA,MACjC,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC;AAAA,MAC9B,gBAAgB,EAAE,SAAS,EAAE,OAAO,CAAC;AAAA,IACvC,CAAC;AAAA,EACH,CACF,EAGC,IAAI,QAAQ,SAAS,QAAQ,UAAU;AAAA,IACtC,IAAI;AAAA,MACF,MAAM,WAAW,mBAAmB,eAAe;AAAA,MACnD,MAAM,UAAU,MAAM,SAAS,IAAI,OAAO,EAAE;AAAA,MAE5C,IAAI,CAAC,SAAS;AAAA,QACZ,IAAI,SAAS;AAAA,QACb,OAAO,EAAE,OAAO,oBAAoB;AAAA,MACtC;AAAA,MAEA,OAAO,EAAE,QAAQ;AAAA,MACjB,OAAO,KAAK;AAAA,MACZ,IAAI,SAAS;AAAA,MACb,OAAO,EAAE,OAAO,yBAAyB,SAAS,OAAO,GAAG,EAAE;AAAA;AAAA,GAEjE,EAGA,OAAO,QAAQ,SAAS,QAAQ,UAAU;AAAA,IACzC,IAAI;AAAA,MACF,MAAM,WAAW,mBAAmB,eAAe;AAAA,MACnD,MAAM,UAAU,MAAM,SAAS,IAAI,OAAO,EAAE;AAAA,MAE5C,IAAI,CAAC,SAAS;AAAA,QACZ,IAAI,SAAS;AAAA,QACb,OAAO,EAAE,OAAO,oBAAoB;AAAA,MACtC;AAAA,MAEA,MAAM,SAAS,KAAK,OAAO,EAAE;AAAA,MAE7B,OAAO,EAAE,SAAS,MAAM,aAAa,QAAQ,KAAK;AAAA,MAClD,OAAO,KAAK;AAAA,MACZ,IAAI,SAAS;AAAA,MACb,OAAO,EAAE,OAAO,0BAA0B,SAAS,OAAO,GAAG,EAAE;AAAA;AAAA,GAElE,EAGA,KACC,gBACA,SAAS,QAAQ,MAAM,UAAU;AAAA,IAC/B,IAAI;AAAA,MACF,MAAM,WAAW,mBAAmB,eAAe;AAAA,MACnD,MAAM,UAAU,MAAM,SAAS,IAAI,OAAO,EAAE;AAAA,MAE5C,IAAI,CAAC,SAAS;AAAA,QACZ,IAAI,SAAS;AAAA,QACb,OAAO,EAAE,OAAO,oBAAoB;AAAA,MACtC;AAAA,MAEA,MAAM,SAAS,YAAY,OAAO,IAAI,KAAK,OAAO;AAAA,MAClD,OAAO,EAAE,SAAS,KAAK;AAAA,MACvB,OAAO,KAAK;AAAA,MACZ,IAAI,SAAS;AAAA,MACb,OAAO,EAAE,OAAO,6BAA6B,SAAS,OAAO,GAAG,EAAE;AAAA;AAAA,KAGtE;AAAA,IACE,MAAM,EAAE,OAAO;AAAA,MACb,SAAS,EAAE,OAAO;AAAA,IACpB,CAAC;AAAA,EACH,CACF,EAGC,KACC,aACA,SAAS,QAAQ,MAAM,UAAU;AAAA,IAC/B,IAAI;AAAA,MACF,MAAM,WAAW,mBAAmB,eAAe;AAAA,MACnD,MAAM,UAAU,MAAM,SAAS,IAAI,OAAO,EAAE;AAAA,MAE5C,IAAI,CAAC,SAAS;AAAA,QACZ,IAAI,SAAS;AAAA,QACb,OAAO,EAAE,OAAO,oBAAoB;AAAA,MACtC;AAAA,MAEA,MAAM,SAAS,SAAS,OAAO,IAAI,KAAK,IAAI;AAAA,MAC5C,OAAO,EAAE,SAAS,KAAK;AAAA,MACvB,OAAO,KAAK;AAAA,MACZ,IAAI,SAAS;AAAA,MACb,OAAO,EAAE,OAAO,uBAAuB,SAAS,OAAO,GAAG,EAAE;AAAA;AAAA,KAGhE;AAAA,IACE,MAAM,EAAE,OAAO;AAAA,MACb,MAAM,EAAE,OAAO;AAAA,IACjB,CAAC;AAAA,EACH,CACF,EAGC,KAAK,kBAAkB,SAAS,QAAQ,UAAU;AAAA,IACjD,IAAI;AAAA,MACF,MAAM,WAAW,mBAAmB,eAAe;AAAA,MACnD,MAAM,UAAU,MAAM,SAAS,IAAI,OAAO,EAAE;AAAA,MAE5C,IAAI,CAAC,SAAS;AAAA,QACZ,IAAI,SAAS;AAAA,QACb,OAAO,EAAE,OAAO,oBAAoB;AAAA,MACtC;AAAA,MAEA,MAAM,SAAS,UAAU,OAAO,EAAE;AAAA,MAClC,OAAO,EAAE,SAAS,KAAK;AAAA,MACvB,OAAO,KAAK;AAAA,MACZ,IAAI,SAAS;AAAA,MACb,OAAO,EAAE,OAAO,4BAA4B,SAAS,OAAO,GAAG,EAAE;AAAA;AAAA,GAEpE,EAGA,IAAI,gBAAgB,SAAS,QAAQ,UAAU;AAAA,IAC9C,IAAI;AAAA,MACF,MAAM,WAAW,mBAAmB,eAAe;AAAA,MACnD,MAAM,UAAU,MAAM,SAAS,IAAI,OAAO,EAAE;AAAA,MAE5C,IAAI,CAAC,SAAS;AAAA,QACZ,IAAI,SAAS;AAAA,QACb,OAAO,EAAE,OAAO,oBAAoB;AAAA,MACtC;AAAA,MAEA,MAAM,SAAS,MAAM,SAAS,QAAQ,OAAO,EAAE;AAAA,MAC/C,OAAO,EAAE,OAAO;AAAA,MAChB,OAAO,KAAK;AAAA,MACZ,IAAI,SAAS;AAAA,MACb,OAAO,EAAE,OAAO,4BAA4B,SAAS,OAAO,GAAG,EAAE;AAAA;AAAA,GAEpE,EAGA,IACC,eACA,SAAS,QAAQ,MAAM,UAAU;AAAA,IAC/B,IAAI;AAAA,MACF,MAAM,WAAW,mBAAmB,eAAe;AAAA,MACnD,MAAM,UAAU,MAAM,SAAS,IAAI,OAAO,EAAE;AAAA,MAE5C,IAAI,CAAC,SAAS;AAAA,QACZ,IAAI,SAAS;AAAA,QACb,OAAO,EAAE,OAAO,oBAAoB;AAAA,MACtC;AAAA,MAEA,MAAM,SAAS,OAAO,OAAO,IAAI,KAAK,OAAO;AAAA,MAC7C,OAAO,EAAE,SAAS,KAAK;AAAA,MACvB,OAAO,KAAK;AAAA,MACZ,IAAI,SAAS;AAAA,MACb,OAAO,EAAE,OAAO,4BAA4B,SAAS,OAAO,GAAG,EAAE;AAAA;AAAA,KAGrE;AAAA,IACE,MAAM,EAAE,OAAO;AAAA,MACb,SAAS,EAAE,OAAO;AAAA,IACpB,CAAC;AAAA,EACH,CACF,EAGC,KAAK,qBAAqB,SAAS,QAAQ,UAAU;AAAA,IACpD,IAAI;AAAA,MACF,MAAM,WAAW,mBAAmB,eAAe;AAAA,MACnD,MAAM,UAAU,MAAM,SAAS,IAAI,OAAO,EAAE;AAAA,MAE5C,IAAI,CAAC,SAAS;AAAA,QACZ,IAAI,SAAS;AAAA,QACb,OAAO,EAAE,OAAO,oBAAoB;AAAA,MACtC;AAAA,MAEA,MAAM,SAAS,YAAY,OAAO,EAAE;AAAA,MACpC,OAAO,EAAE,SAAS,KAAK;AAAA,MACvB,OAAO,KAAK;AAAA,MACZ,IAAI,SAAS;AAAA,MACb,OAAO,EAAE,OAAO,+BAA+B,SAAS,OAAO,GAAG,EAAE;AAAA;AAAA,GAEvE,EAGA,IAAI,2BAA2B,SAAS,QAAQ,UAAU;AAAA,IACzD,IAAI;AAAA,MACF,MAAM,WAAW,mBAAmB,eAAe;AAAA,MACnD,MAAM,UAAU,MAAM,SAAS,IAAI,OAAO,EAAE;AAAA,MAE5C,IAAI,CAAC,SAAS;AAAA,QACZ,IAAI,SAAS;AAAA,QACb,OAAO,EAAE,OAAO,oBAAoB;AAAA,MACtC;AAAA,MAEA,MAAM,aAAa,MAAM,SAAS,qBAAqB,OAAO,EAAE;AAAA,MAChE,OAAO;AAAA,QACL,WAAW,OAAO;AAAA,QAClB,aAAa,QAAQ;AAAA,QACrB,gBAAgB,QAAQ;AAAA,WACrB;AAAA,QACH,mBACE,WAAW,UAAU,QAAQ,WAAW;AAAA,MAC5C;AAAA,MACA,OAAO,KAAK;AAAA,MACZ,IAAI,SAAS;AAAA,MACb,OAAO;AAAA,QACL,OAAO;AAAA,QACP,SAAS,OAAO,GAAG;AAAA,MACrB;AAAA;AAAA,GAEH,EAGA,IAAI,iBAAiB,SAAS,QAAQ,UAAU;AAAA,IAC/C,IAAI;AAAA,MACF,MAAM,WAAW,mBAAmB,eAAe;AAAA,MACnD,MAAM,UAAU,MAAM,SAAS,IAAI,OAAO,EAAE;AAAA,MAE5C,IAAI,CAAC,SAAS;AAAA,QACZ,IAAI,SAAS;AAAA,QACb,OAAO,EAAE,OAAO,oBAAoB;AAAA,MACtC;AAAA,MAEA,MAAM,WAAW,MAAM,SAAS,gBAAgB,OAAO,EAAE;AAAA,MACzD,IAAI,CAAC,UAAU;AAAA,QACb,IAAI,SAAS;AAAA,QACb,OAAO,EAAE,OAAO,wCAAwC;AAAA,MAC1D;AAAA,MAGA,MAAM,iBACJ,gBAAgB,YAA4B,QAAQ;AAAA,MACtD,MAAM,YAAY,iBACd,MAAM,eAAe,mBAAmB,IACxC;AAAA,MACJ,MAAM,mBAAmB,YACrB,GAAG,sBAAsB,OAAO,QAChC;AAAA,MAEJ,OAAO;AAAA,QACL,MAAM,SAAS;AAAA,QACf,KAAK,oBAAoB,SAAS;AAAA,QAClC,KAAK,SAAS;AAAA,QACd,aAAa;AAAA,MACf;AAAA,MACA,OAAO,KAAK;AAAA,MACZ,IAAI,SAAS;AAAA,MACb,OAAO,EAAE,OAAO,+BAA+B,SAAS,OAAO,GAAG,EAAE;AAAA;AAAA,GAEvE,EAGA,KAAK,iBAAiB,SAAS,QAAQ,UAAU;AAAA,IAChD,IAAI;AAAA,MACF,MAAM,WAAW,mBAAmB,eAAe;AAAA,MACnD,MAAM,UAAU,MAAM,SAAS,IAAI,OAAO,EAAE;AAAA,MAE5C,IAAI,CAAC,SAAS;AAAA,QACZ,IAAI,SAAS;AAAA,QACb,OAAO,EAAE,OAAO,oBAAoB;AAAA,MACtC;AAAA,MAGA,MAAM,mBAAmB,MAAM,SAAS,gBAAgB,OAAO,EAAE;AAAA,MACjE,IAAI,kBAAkB;AAAA,QACpB,MAAM,kBACJ,gBAAgB,YAA4B,QAAQ;AAAA,QACtD,MAAM,aAAY,kBACd,MAAM,gBAAe,mBAAmB,IACxC;AAAA,QACJ,MAAM,oBAAmB,aACrB,GAAG,uBAAsB,OAAO,QAChC;AAAA,QAEJ,OAAO;AAAA,UACL,MAAM,iBAAiB;AAAA,UACvB,KAAK,iBAAiB;AAAA,UACtB,KAAK,oBAAoB,iBAAiB;AAAA,UAC1C,aAAa;AAAA,QACf;AAAA,MACF;AAAA,MAEA,MAAM,WAAW,MAAM,SAAS,cAAc,OAAO,EAAE;AAAA,MAGvD,MAAM,iBACJ,gBAAgB,YAA4B,QAAQ;AAAA,MACtD,MAAM,YAAY,iBACd,MAAM,eAAe,mBAAmB,IACxC;AAAA,MACJ,MAAM,mBAAmB,YACrB,GAAG,sBAAsB,OAAO,QAChC;AAAA,MAEJ,OAAO;AAAA,QACL,MAAM,SAAS;AAAA,QACf,KAAK,SAAS;AAAA,QACd,KAAK,oBAAoB,SAAS;AAAA,QAClC,aAAa;AAAA,MACf;AAAA,MACA,OAAO,KAAK;AAAA,MACZ,IAAI,SAAS;AAAA,MACb,OAAO,EAAE,OAAO,4BAA4B,SAAS,OAAO,GAAG,EAAE;AAAA;AAAA,GAEpE,EAGA,KAAK,sBAAsB,SAAS,QAAQ,UAAU;AAAA,IACrD,IAAI;AAAA,MACF,MAAM,WAAW,mBAAmB,eAAe;AAAA,MACnD,MAAM,UAAU,MAAM,SAAS,IAAI,OAAO,EAAE;AAAA,MAE5C,IAAI,CAAC,SAAS;AAAA,QACZ,IAAI,SAAS;AAAA,QACb,OAAO,EAAE,OAAO,oBAAoB;AAAA,MACtC;AAAA,MAEA,MAAM,SAAS,aAAa,OAAO,EAAE;AAAA,MACrC,OAAO,EAAE,SAAS,KAAK;AAAA,MACvB,OAAO,KAAK;AAAA,MACZ,IAAI,SAAS;AAAA,MACb,OAAO,EAAE,OAAO,2BAA2B,SAAS,OAAO,GAAG,EAAE;AAAA;AAAA,GAEnE;AAAA;;;AC/iBP,IAAM,oBAAoB;AAEnB,SAAS,QAAQ,CAAC,SAAwB;AAAA,EAC/C,MAAM,MAAM,QACT,QAAQ,SAAS,EACjB,YAAY,0BAA0B;AAAA,EAGzC,IACG,QAAQ,MAAM,EACd,YAAY,mBAAmB,EAC/B,OAAO,YAAY,+CAA+C,EAClE,OAAO,qBAAqB,aAAa,iBAAiB,EAC1D,OAAO,OAAO,YAAY;AAAA,IACzB,IAAI;AAAA,MACF,MAAM,MAAM,YAAY,OAAO;AAAA,MAC/B,MAAM,WAAW,QAAQ,SACrB,8BACA;AAAA,MACJ,MAAM,WAAW,MAAM,OAAc,KAAK,QAAQ;AAAA,MAClD,IAAI,CAAC,YAAY,SAAS,WAAW,GAAG;AAAA,QACtC,KAAK,oBAAoB;AAAA,QACzB;AAAA,MACF;AAAA,MACA,OAAO,UAAU;AAAA,MACjB,YACE,SAAS,IAAI,CAAC,OAAY;AAAA,QACxB,IAAI,QAAQ,EAAE,EAAE;AAAA,QAChB,MAAM,EAAE,QAAQ;AAAA,QAChB,QAAQ,aAAa,EAAE,MAAM;AAAA,QAC7B,MAAM,EAAE,QAAQ;AAAA,QAChB,SAAS,EAAE,WAAW,EAAE,aAAa;AAAA,MACvC,EAAE,CACJ;AAAA,MACA,OAAO,KAAU;AAAA,MACjB,KAAK,IAAI,OAAO;AAAA;AAAA,GAEnB;AAAA,EAGH,IACG,QAAQ,QAAQ,EAChB,YAAY,sBAAsB,EAClC,eAAe,iBAAiB,cAAc,EAC9C,OAAO,kBAAkB,cAAc,SAAS,EAChD,OAAO,mBAAmB,wBAAwB,EAClD,OAAO,eAAe,mBAAmB,EACzC,OAAO,qBAAqB,aAAa,iBAAiB,EAC1D,OAAO,OAAO,YAAY;AAAA,IACzB,IAAI;AAAA,MACF,MAAM,MAAM,YAAY,OAAO;AAAA,MAC/B,MAAM,OAA4B;AAAA,QAChC,MAAM,QAAQ;AAAA,QACd,SAAS,QAAQ;AAAA,MACnB;AAAA,MACA,IAAI,QAAQ;AAAA,QAAS,KAAK,UAAU,QAAQ;AAAA,MAC5C,IAAI,QAAQ;AAAA,QAAK,KAAK,MAAM,QAAQ;AAAA,MACpC,MAAM,SAAS,MAAM,QAAa,KAAK,wBAAwB,IAAI;AAAA,MACnE,QAAQ,oBAAoB,QAAQ,OAAO,MAAM,OAAO,SAAS,GAAG;AAAA,MACpE,GAAG,QAAQ,QAAQ,IAAI;AAAA,MACvB,GAAG,WAAW,QAAQ,OAAO;AAAA,MAC7B,OAAO,KAAU;AAAA,MACjB,KAAK,IAAI,OAAO;AAAA;AAAA,GAEnB;AAAA,EAGH,IACG,QAAQ,MAAM,EACd,YAAY,gBAAgB,EAC5B,eAAe,iBAAiB,YAAY,EAC5C,OAAO,qBAAqB,aAAa,iBAAiB,EAC1D,OAAO,OAAO,YAAY;AAAA,IACzB,IAAI;AAAA,MACF,MAAM,MAAM,YAAY,OAAO;AAAA,MAC/B,MAAM,UAAe,KAAK,iBAAiB,QAAQ,IAAI;AAAA,MACvD,QAAQ,WAAW,QAAQ,QAAQ,EAAE,WAAW;AAAA,MAChD,OAAO,KAAU;AAAA,MACjB,KAAK,IAAI,OAAO;AAAA;AAAA,GAEnB;AAAA,EAGH,IACG,QAAQ,MAAM,EACd,YAAY,gCAAgC,EAC5C,eAAe,iBAAiB,YAAY,EAC5C,eAAe,uBAAuB,oBAAoB,EAC1D,OAAO,qBAAqB,aAAa,iBAAiB,EAC1D,OAAO,OAAO,YAAY;AAAA,IACzB,IAAI;AAAA,MACF,MAAM,MAAM,YAAY,OAAO;AAAA,MAC/B,MAAM,SAAS,MAAM,QACnB,KACA,iBAAiB,QAAQ,cACzB,EAAE,SAAS,QAAQ,QAAQ,CAC7B;AAAA,MACA,QAAQ,mBAAmB;AAAA,MAC3B,IAAI,QAAQ,QAAQ;AAAA,QAClB,MAAM;AAAA,QACN,QAAQ,IAAI,OAAO,MAAM;AAAA,MAC3B;AAAA,MACA,OAAO,KAAU;AAAA,MACjB,KAAK,IAAI,OAAO;AAAA;AAAA,GAEnB;AAAA,EAGH,IACG,QAAQ,SAAS,EACjB,YAAY,iCAAiC,EAC7C,eAAe,iBAAiB,YAAY,EAC5C,OAAO,qBAAqB,aAAa,iBAAiB,EAC1D,OAAO,OAAO,YAAY;AAAA,IACzB,IAAI;AAAA,MACF,MAAM,MAAM,YAAY,OAAO;AAAA,MAC/B,MAAM,SAAS,MAAM,OACnB,KACA,iBAAiB,QAAQ,YAC3B;AAAA,MACA,IAAI,QAAQ,WAAW,QAAQ,QAAQ;AAAA,QACrC,QAAQ,IAAI,OAAO,WAAW,OAAO,MAAM;AAAA,MAC7C,EAAO;AAAA,QACL,KAAK,4BAA4B;AAAA;AAAA,MAEnC,OAAO,KAAU;AAAA,MACjB,KAAK,IAAI,OAAO;AAAA;AAAA,GAEnB;AAAA,EAGH,IACG,QAAQ,MAAM,EACd,YAAY,wBAAwB,EACpC,eAAe,iBAAiB,YAAY,EAC5C,eAAe,qBAAqB,cAAc,EAClD,OAAO,qBAAqB,aAAa,iBAAiB,EAC1D,OAAO,OAAO,YAAY;AAAA,IACzB,IAAI;AAAA,MACF,MAAM,MAAM,YAAY,OAAO;AAAA,MAC/B,MAAM,QAAa,KAAK,iBAAiB,QAAQ,WAAW;AAAA,QAC1D,MAAM,QAAQ;AAAA,MAChB,CAAC;AAAA,MACD,QAAQ,YAAY;AAAA,MACpB,OAAO,KAAU;AAAA,MACjB,KAAK,IAAI,OAAO;AAAA;AAAA,GAEnB;AAAA,EAGH,IACG,QAAQ,WAAW,EACnB,YAAY,oCAAoC,EAChD,eAAe,iBAAiB,YAAY,EAC5C,OAAO,qBAAqB,aAAa,iBAAiB,EAC1D,OAAO,OAAO,YAAY;AAAA,IACzB,IAAI;AAAA,MACF,MAAM,MAAM,YAAY,OAAO;AAAA,MAC/B,MAAM,QAAa,KAAK,iBAAiB,QAAQ,gBAAgB,CAAC,CAAC;AAAA,MACnE,QAAQ,WAAW,QAAQ,QAAQ,EAAE,gBAAgB;AAAA,MACrD,OAAO,KAAU;AAAA,MACjB,KAAK,IAAI,OAAO;AAAA;AAAA,GAEnB;AAAA,EAGH,IACG,QAAQ,QAAQ,EAChB,YAAY,kBAAkB,EAC9B,eAAe,iBAAiB,YAAY,EAC5C,eAAe,iBAAiB,kBAAkB,EAClD,OAAO,qBAAqB,aAAa,iBAAiB,EAC1D,OAAO,OAAO,YAAY;AAAA,IACzB,IAAI;AAAA,MACF,MAAM,MAAM,YAAY,OAAO;AAAA,MAC/B,MAAM,OAAY,KAAK,iBAAiB,QAAQ,aAAa;AAAA,QAC3D,MAAM,QAAQ;AAAA,MAChB,CAAC;AAAA,MACD,QAAQ,WAAW,QAAQ,QAAQ,EAAE,iBAAiB,QAAQ,QAAQ;AAAA,MACtE,OAAO,KAAU;AAAA,MACjB,KAAK,IAAI,OAAO;AAAA;AAAA,GAEnB;AAAA,EAGH,IACG,QAAQ,cAAc,EACtB,YAAY,mCAAmC,EAC/C,eAAe,iBAAiB,YAAY,EAC5C,OAAO,qBAAqB,aAAa,iBAAiB,EAC1D,OAAO,OAAO,YAAY;AAAA,IACzB,IAAI;AAAA,MACF,MAAM,MAAM,YAAY,OAAO;AAAA,MAC/B,MAAM,SAAS,MAAM,QACnB,KACA,iBAAiB,QAAQ,mBACzB,CAAC,CACH;AAAA,MACA,QACE,iBAAiB,QAAQ,eAAe,YAAY,yBAAyB,QAAQ,QAAQ,EAAE,IACjG;AAAA,MACA,OAAO,KAAU;AAAA,MACjB,KAAK,IAAI,OAAO;AAAA;AAAA,GAEnB;AAAA,EAGH,IACG,QAAQ,gBAAgB,EACxB,YAAY,8BAA8B,EAC1C,eAAe,iBAAiB,YAAY,EAC5C,OAAO,qBAAqB,aAAa,iBAAiB,EAC1D,OAAO,OAAO,YAAY;AAAA,IACzB,IAAI;AAAA,MACF,MAAM,MAAM,YAAY,OAAO;AAAA,MAC/B,MAAM,SAAS,MAAM,QACnB,KACA,iBAAiB,QAAQ,eACzB,CAAC,CACH;AAAA,MACA,QAAQ,gCAAgC,QAAQ,QAAQ,EAAE,IAAI;AAAA,MAC9D,IAAI,QAAQ;AAAA,QAAM,GAAG,QAAQ,OAAO,IAAI;AAAA,MACxC,OAAO,KAAU;AAAA,MACjB,KAAK,IAAI,OAAO;AAAA;AAAA,GAEnB;AAAA,EAGH,IACG,QAAQ,eAAe,EACvB,YAAY,6BAA6B,EACzC,eAAe,iBAAiB,YAAY,EAC5C,OAAO,qBAAqB,aAAa,iBAAiB,EAC1D,OAAO,OAAO,YAAY;AAAA,IACzB,IAAI;AAAA,MACF,MAAM,MAAM,YAAY,OAAO;AAAA,MAC/B,MAAM,QACJ,KACA,iBAAiB,QAAQ,oBACzB,CAAC,CACH;AAAA,MACA,QAAQ,gCAAgC,QAAQ,QAAQ,EAAE,IAAI;AAAA,MAC9D,OAAO,KAAU;AAAA,MACjB,KAAK,IAAI,OAAO;AAAA;AAAA,GAEnB;AAAA,EAGH,IACG,QAAQ,cAAc,EACtB,YAAY,kCAAkC,EAC9C,OAAO,qBAAqB,aAAa,iBAAiB,EAC1D,OAAO,OAAO,YAAY;AAAA,IACzB,IAAI;AAAA,MACF,MAAM,MAAM,YAAY,OAAO;AAAA,MAC/B,MAAM,SAAS,MAAM,QACnB,KACA,8BACA,CAAC,CACH;AAAA,MACA,QAAQ,yBAAyB;AAAA,MACjC,IAAI,QAAQ,YAAY;AAAA,QAAW,GAAG,WAAW,OAAO,OAAO;AAAA,MAC/D,IAAI,QAAQ,YAAY;AAAA,QAAW,GAAG,WAAW,OAAO,OAAO;AAAA,MAC/D,IAAI,QAAQ,UAAU;AAAA,QAAW,GAAG,SAAS,OAAO,KAAK;AAAA,MACzD,OAAO,KAAU;AAAA,MACjB,KAAK,IAAI,OAAO;AAAA;AAAA,GAEnB;AAAA;;;ACzRE,SAAS,gBAAgB,CAC9B,SACA,eACM;AAAA,EACN,SAAgB,OAAO;AAAA;;;ACHlB,IAAM,aAAyB;AAAA,EACpC,MAAM;AAAA,EACN,SAAS;AAAA,EACT,aAAa;AAAA,EACb,MAAM,CAAC,WAAW,OAAO,UAAU;AAAA,EACnC,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,cAAc,CAAC,SAA0B,aAAa,IAAI;AAAA,EAC1D,YAAY,OAAO,SAAS,iBAAiB;AAAA,IAC3C,iBAAiB,SAAS,YAAY;AAAA;AAE1C;",
11
- "debugId": "D18B9D8D444814B064756E2164756E21",
10
+ "mappings": "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",
11
+ "debugId": "5AB9B114935378E764756E2164756E21",
12
12
  "names": []
13
13
  }
package/dist/index.js CHANGED
@@ -9,8 +9,8 @@ import"./index-wr0mkm57.js";
9
9
  import"./index-g8dczzvv.js";
10
10
  import {
11
11
  createApp
12
- } from "./app-fr7b9dpr.js";
13
- import"./plugin-system-4h7vtge8.js";
12
+ } from "./app-334d98sj.js";
13
+ import"./plugin-system-7hmbwvtf.js";
14
14
 
15
15
  // src/index.ts
16
16
  if (typeof Bun === "undefined") {
@@ -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.2";
6
+ var version = "2.7.3";
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=DDC5055380D52BE364756E2164756E21
138
- //# sourceMappingURL=package-ma89np7x.js.map
137
+ //# debugId=2D8EF03848BCB53064756E2164756E21
138
+ //# sourceMappingURL=package-v2hcn3dp.js.map
@@ -4,6 +4,6 @@
4
4
  "sourcesContent": [
5
5
  ],
6
6
  "mappings": "",
7
- "debugId": "DDC5055380D52BE364756E2164756E21",
7
+ "debugId": "2D8EF03848BCB53064756E2164756E21",
8
8
  "names": []
9
9
  }
@@ -65,7 +65,7 @@ class PluginManager {
65
65
  async loadCorePlugins() {
66
66
  const coreModules = await Promise.allSettled([
67
67
  import("./index-ftbphe7j.js"),
68
- import("./index-rdm6e3rr.js"),
68
+ import("./index-t0nsa57v.js"),
69
69
  import("./index-4nsdre0j.js"),
70
70
  import("./index-3rjnbp97.js"),
71
71
  import("./index-c7zy3n33.js"),
@@ -74,7 +74,7 @@ class PluginManager {
74
74
  import("./index-6vry08rz.js"),
75
75
  import("./index-wmvkjcjj.js"),
76
76
  import("./index-30p492yv.js"),
77
- import("./index-x4hap91d.js"),
77
+ import("./index-10wkaqpa.js"),
78
78
  import("./index-hefqxwht.js"),
79
79
  import("./index-a9g7hbj9.js")
80
80
  ]);
@@ -505,4 +505,4 @@ class PluginManager {
505
505
  export { PluginManager };
506
506
 
507
507
  //# debugId=B63838C4965057F664756E2164756E21
508
- //# sourceMappingURL=plugin-system-4h7vtge8.js.map
508
+ //# sourceMappingURL=plugin-system-7hmbwvtf.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@burdenoff/vibe-agent",
3
- "version": "2.7.2",
3
+ "version": "2.7.3",
4
4
  "main": "./dist/index.js",
5
5
  "type": "module",
6
6
  "bin": {