@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.
- package/dist/{app-fr7b9dpr.js → app-334d98sj.js} +2 -2
- package/dist/cli.js +3 -3
- package/dist/{index-x4hap91d.js → index-10wkaqpa.js} +4 -4
- package/dist/{index-rdm6e3rr.js → index-t0nsa57v.js} +3 -2
- package/dist/{index-rdm6e3rr.js.map → index-t0nsa57v.js.map} +3 -3
- package/dist/index.js +2 -2
- package/dist/{package-ma89np7x.js → package-v2hcn3dp.js} +3 -3
- package/dist/{package-ma89np7x.js.map → package-v2hcn3dp.js.map} +1 -1
- package/dist/{plugin-system-4h7vtge8.js → plugin-system-7hmbwvtf.js} +3 -3
- package/package.json +1 -1
- /package/dist/{app-fr7b9dpr.js.map → app-334d98sj.js.map} +0 -0
- /package/dist/{index-x4hap91d.js.map → index-10wkaqpa.js.map} +0 -0
- /package/dist/{plugin-system-4h7vtge8.js.map → plugin-system-7hmbwvtf.js.map} +0 -0
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
} from "./index-g8dczzvv.js";
|
|
18
18
|
import {
|
|
19
19
|
PluginManager
|
|
20
|
-
} from "./plugin-system-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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=
|
|
587
|
-
//# sourceMappingURL=index-
|
|
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": "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",
|
|
11
|
-
"debugId": "
|
|
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-
|
|
13
|
-
import"./plugin-system-
|
|
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.
|
|
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=
|
|
138
|
-
//# sourceMappingURL=package-
|
|
137
|
+
//# debugId=2D8EF03848BCB53064756E2164756E21
|
|
138
|
+
//# sourceMappingURL=package-v2hcn3dp.js.map
|
|
@@ -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-
|
|
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-
|
|
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-
|
|
508
|
+
//# sourceMappingURL=plugin-system-7hmbwvtf.js.map
|
package/package.json
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|