@hasna/sandboxes 0.1.20 → 0.1.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/dist/cli/index.d.ts +0 -1
  2. package/dist/cli/index.js +40 -39
  3. package/dist/db/agents.d.ts +0 -1
  4. package/dist/db/database.d.ts +0 -1
  5. package/dist/db/events.d.ts +0 -1
  6. package/dist/db/pg-migrations.d.ts +0 -1
  7. package/dist/db/projects.d.ts +0 -1
  8. package/dist/db/sandboxes.d.ts +0 -1
  9. package/dist/db/sessions.d.ts +0 -1
  10. package/dist/db/snapshots.d.ts +0 -1
  11. package/dist/db/templates.d.ts +0 -1
  12. package/dist/db/webhooks.d.ts +0 -1
  13. package/dist/index.d.ts +2 -1
  14. package/dist/index.js +251 -30
  15. package/dist/lib/agent-runner.d.ts +0 -1
  16. package/dist/lib/agents/codex.d.ts +0 -1
  17. package/dist/lib/agents/gemini.d.ts +0 -1
  18. package/dist/lib/agents/index.d.ts +0 -1
  19. package/dist/lib/agents/opencode.d.ts +0 -1
  20. package/dist/lib/agents/pi.d.ts +0 -1
  21. package/dist/lib/agents/{claude.d.ts → takumi.d.ts} +3 -4
  22. package/dist/lib/agents/types.d.ts +0 -1
  23. package/dist/lib/config.d.ts +0 -1
  24. package/dist/lib/images.d.ts +0 -1
  25. package/dist/lib/keepalive.d.ts +0 -1
  26. package/dist/lib/runtime-state.d.ts +0 -1
  27. package/dist/lib/stream.d.ts +0 -1
  28. package/dist/lib/version.d.ts +0 -1
  29. package/dist/lib/webhook.d.ts +0 -1
  30. package/dist/mcp/index.d.ts +0 -1
  31. package/dist/mcp/index.js +37 -33
  32. package/dist/providers/daytona.d.ts +0 -1
  33. package/dist/providers/e2b.d.ts +0 -1
  34. package/dist/providers/index.d.ts +0 -1
  35. package/dist/providers/modal.d.ts +0 -1
  36. package/dist/providers/types.d.ts +0 -1
  37. package/dist/sdk.d.ts +59 -0
  38. package/dist/server/index.d.ts +0 -1
  39. package/dist/server/index.js +1 -1
  40. package/dist/server/serve.d.ts +0 -1
  41. package/dist/types/index.d.ts +1 -2
  42. package/package.json +3 -4
  43. package/dist/cli/index.d.ts.map +0 -1
  44. package/dist/db/agents.d.ts.map +0 -1
  45. package/dist/db/database.d.ts.map +0 -1
  46. package/dist/db/events.d.ts.map +0 -1
  47. package/dist/db/pg-migrations.d.ts.map +0 -1
  48. package/dist/db/projects.d.ts.map +0 -1
  49. package/dist/db/sandboxes.d.ts.map +0 -1
  50. package/dist/db/sessions.d.ts.map +0 -1
  51. package/dist/db/snapshots.d.ts.map +0 -1
  52. package/dist/db/templates.d.ts.map +0 -1
  53. package/dist/db/webhooks.d.ts.map +0 -1
  54. package/dist/index.d.ts.map +0 -1
  55. package/dist/lib/agent-runner.d.ts.map +0 -1
  56. package/dist/lib/agents/claude.d.ts.map +0 -1
  57. package/dist/lib/agents/codex.d.ts.map +0 -1
  58. package/dist/lib/agents/gemini.d.ts.map +0 -1
  59. package/dist/lib/agents/index.d.ts.map +0 -1
  60. package/dist/lib/agents/opencode.d.ts.map +0 -1
  61. package/dist/lib/agents/pi.d.ts.map +0 -1
  62. package/dist/lib/agents/types.d.ts.map +0 -1
  63. package/dist/lib/config.d.ts.map +0 -1
  64. package/dist/lib/images.d.ts.map +0 -1
  65. package/dist/lib/keepalive.d.ts.map +0 -1
  66. package/dist/lib/runtime-state.d.ts.map +0 -1
  67. package/dist/lib/stream.d.ts.map +0 -1
  68. package/dist/lib/version.d.ts.map +0 -1
  69. package/dist/lib/webhook.d.ts.map +0 -1
  70. package/dist/mcp/index.d.ts.map +0 -1
  71. package/dist/providers/daytona.d.ts.map +0 -1
  72. package/dist/providers/e2b.d.ts.map +0 -1
  73. package/dist/providers/index.d.ts.map +0 -1
  74. package/dist/providers/modal.d.ts.map +0 -1
  75. package/dist/providers/types.d.ts.map +0 -1
  76. package/dist/server/index.d.ts.map +0 -1
  77. package/dist/server/serve.d.ts.map +0 -1
  78. package/dist/types/index.d.ts.map +0 -1
@@ -1,3 +1,2 @@
1
1
  #!/usr/bin/env bun
2
2
  export {};
3
- //# sourceMappingURL=index.d.ts.map
package/dist/cli/index.js CHANGED
@@ -11598,7 +11598,7 @@ var init_database = __esm(() => {
11598
11598
  id TEXT PRIMARY KEY,
11599
11599
  sandbox_id TEXT NOT NULL REFERENCES sandboxes(id) ON DELETE CASCADE,
11600
11600
  agent_name TEXT,
11601
- agent_type TEXT CHECK(agent_type IN ('claude', 'codex', 'gemini', 'custom')),
11601
+ agent_type TEXT CHECK(agent_type IN ('codex', 'gemini', 'opencode', 'pi', 'takumi', 'custom')),
11602
11602
  command TEXT,
11603
11603
  status TEXT NOT NULL DEFAULT 'running' CHECK(status IN ('running', 'completed', 'failed', 'killed')),
11604
11604
  exit_code INTEGER,
@@ -12809,29 +12809,6 @@ var init_runtime_state = __esm(() => {
12809
12809
  init_sandboxes();
12810
12810
  });
12811
12811
 
12812
- // src/lib/agents/claude.ts
12813
- class ClaudeDriver {
12814
- name = "claude";
12815
- requiredEnvVars = ["ANTHROPIC_API_KEY"];
12816
- async install(provider, providerSandboxId) {
12817
- const check = await provider.exec(providerSandboxId, "which claude 2>/dev/null || echo MISSING");
12818
- if (check.stdout.trim() !== "MISSING")
12819
- return;
12820
- await provider.exec(providerSandboxId, "npm install -g @anthropic-ai/claude-code 2>&1 || sudo npm install -g @anthropic-ai/claude-code 2>&1");
12821
- }
12822
- async configure(provider, providerSandboxId, _envVars) {
12823
- const config = JSON.stringify({
12824
- hasCompletedOnboarding: true,
12825
- hasTrustDialogAccepted: true,
12826
- hasAcknowledgedCostThreshold: true
12827
- });
12828
- await provider.exec(providerSandboxId, `mkdir -p ~/.claude && echo '${config}' > ~/.claude.json`);
12829
- }
12830
- buildCommand(prompt) {
12831
- return `claude --dangerously-skip-permissions -p ${JSON.stringify(prompt)}`;
12832
- }
12833
- }
12834
-
12835
12812
  // src/lib/agents/codex.ts
12836
12813
  class CodexDriver {
12837
12814
  name = "codex";
@@ -12905,6 +12882,38 @@ class PiDriver {
12905
12882
  }
12906
12883
  }
12907
12884
 
12885
+ // src/lib/agents/takumi.ts
12886
+ class TakumiDriver {
12887
+ name = "takumi";
12888
+ requiredEnvVars = ["ANTHROPIC_API_KEY"];
12889
+ async install(provider, providerSandboxId) {
12890
+ const check = await provider.exec(providerSandboxId, "which takumi 2>/dev/null || echo MISSING");
12891
+ if (check.stdout.trim() !== "MISSING")
12892
+ return;
12893
+ const bunCheck = await provider.exec(providerSandboxId, "which bun 2>/dev/null || echo MISSING");
12894
+ if (bunCheck.stdout.trim() !== "MISSING") {
12895
+ await provider.exec(providerSandboxId, "bun install -g @hasna/takumi 2>&1");
12896
+ } else {
12897
+ await provider.exec(providerSandboxId, "npm install -g @hasna/takumi 2>&1 || sudo npm install -g @hasna/takumi 2>&1");
12898
+ }
12899
+ }
12900
+ async configure(provider, providerSandboxId, envVars) {
12901
+ const config = JSON.stringify({
12902
+ hasCompletedOnboarding: true,
12903
+ hasTrustDialogAccepted: true,
12904
+ hasAcknowledgedCostThreshold: true
12905
+ });
12906
+ await provider.exec(providerSandboxId, `mkdir -p ~/.takumi && echo '${config}' > ~/.takumi.json`);
12907
+ const npmToken = envVars["NPM_TOKEN"] ?? envVars["NPM_AUTH_TOKEN"];
12908
+ if (npmToken) {
12909
+ await provider.exec(providerSandboxId, `echo '//registry.npmjs.org/:_authToken=${npmToken}' > ~/.npmrc`);
12910
+ }
12911
+ }
12912
+ buildCommand(prompt) {
12913
+ return `takumi --dangerously-skip-permissions -p ${JSON.stringify(prompt)}`;
12914
+ }
12915
+ }
12916
+
12908
12917
  // src/lib/agents/index.ts
12909
12918
  function getAgentDriver(name) {
12910
12919
  return DRIVER_MAP.get(name);
@@ -12912,11 +12921,11 @@ function getAgentDriver(name) {
12912
12921
  var DRIVERS, DRIVER_MAP;
12913
12922
  var init_agents = __esm(() => {
12914
12923
  DRIVERS = [
12915
- new ClaudeDriver,
12916
12924
  new CodexDriver,
12917
12925
  new GeminiDriver,
12918
12926
  new OpenCodeDriver,
12919
- new PiDriver
12927
+ new PiDriver,
12928
+ new TakumiDriver
12920
12929
  ];
12921
12930
  DRIVER_MAP = new Map(DRIVERS.map((d) => [d.name, d]));
12922
12931
  });
@@ -13025,7 +13034,7 @@ async function stopAgent(sandboxId) {
13025
13034
  return;
13026
13035
  const provider = await getProvider(sandbox.provider);
13027
13036
  try {
13028
- await provider.exec(sandbox.provider_sandbox_id, "pkill -f 'claude\\|codex\\|gemini\\|opencode\\|pi' || true");
13037
+ await provider.exec(sandbox.provider_sandbox_id, "pkill -f 'codex\\|gemini\\|opencode\\|pi\\|takumi' || true");
13029
13038
  } catch {}
13030
13039
  emitLifecycleEvent(sandbox.id, "Agent stopped by user");
13031
13040
  }
@@ -13059,7 +13068,6 @@ init_sandboxes();
13059
13068
  init_sessions();
13060
13069
  init_events();
13061
13070
  import chalk from "chalk";
13062
- import { execSync } from "child_process";
13063
13071
 
13064
13072
  // src/db/agents.ts
13065
13073
  init_database();
@@ -13450,7 +13458,7 @@ filesCmd.command("write <id> <path>").description("Write content to a file in a
13450
13458
  }
13451
13459
  });
13452
13460
  var agentCmd = program2.command("agent").description("Run and manage AI agents in sandboxes");
13453
- agentCmd.command("run <id>").description("Run an AI agent inside a sandbox").requiredOption("-t, --type <type>", "Agent type: claude, codex, gemini, custom").requiredOption("-p, --prompt <prompt>", "Prompt for the agent").option("-n, --name <name>", "Agent name").option("-c, --command <cmd>", "Custom command (for 'custom' type)").action(async (id, opts) => {
13461
+ agentCmd.command("run <id>").description("Run an AI agent inside a sandbox").requiredOption("-t, --type <type>", "Agent type: takumi, codex, gemini, opencode, pi, custom").requiredOption("-p, --prompt <prompt>", "Prompt for the agent").option("-n, --name <name>", "Agent name").option("-c, --command <cmd>", "Custom command (for 'custom' type)").action(async (id, opts) => {
13454
13462
  try {
13455
13463
  const { runAgent: runAgent2 } = await Promise.resolve().then(() => (init_agent_runner(), exports_agent_runner));
13456
13464
  const session = await runAgent2(id, {
@@ -13544,24 +13552,17 @@ program2.command("agents").description("List registered agents").action(() => {
13544
13552
  handleError(err);
13545
13553
  }
13546
13554
  });
13547
- program2.command("mcp").description("Install MCP server for AI agents").option("--claude", "Install for Claude Code (default)").option("--codex", "Install for Codex").option("--gemini", "Install for Gemini").action((opts) => {
13555
+ program2.command("mcp").description("Install MCP server for supported AI clients").option("--codex", "Install for Codex").option("--gemini", "Install for Gemini").action((opts) => {
13548
13556
  try {
13549
13557
  const targets = [];
13550
13558
  if (opts.codex)
13551
13559
  targets.push("codex");
13552
13560
  if (opts.gemini)
13553
13561
  targets.push("gemini");
13554
- if (opts.claude || targets.length === 0)
13555
- targets.push("claude");
13562
+ if (targets.length === 0)
13563
+ targets.push("codex");
13556
13564
  for (const target of targets) {
13557
13565
  switch (target) {
13558
- case "claude": {
13559
- const cmd = `claude mcp add --transport stdio --scope user sandboxes -- bunx --bun --package @hasna/sandboxes sandboxes-mcp`;
13560
- console.log(chalk.dim(`Running: ${cmd}`));
13561
- execSync(cmd, { stdio: "inherit" });
13562
- console.log(chalk.green("Installed MCP server for Claude Code."));
13563
- break;
13564
- }
13565
13566
  case "codex": {
13566
13567
  console.log(chalk.yellow("Codex MCP installation: add the following to ~/.codex/config.toml:"));
13567
13568
  console.log();
@@ -7,4 +7,3 @@ export declare function listAgents(): Agent[];
7
7
  export declare function heartbeatAgent(idOrName: string): Agent;
8
8
  export declare function setAgentFocus(idOrName: string, projectId: string | null): Agent;
9
9
  export declare function deleteAgent(id: string): void;
10
- //# sourceMappingURL=agents.d.ts.map
@@ -6,4 +6,3 @@ export declare function uuid(): string;
6
6
  export declare function shortId(): string;
7
7
  export declare function now(): string;
8
8
  export declare function resolvePartialId(table: string, partialId: string): string | null;
9
- //# sourceMappingURL=database.d.ts.map
@@ -13,4 +13,3 @@ export declare function listEvents(opts?: {
13
13
  limit?: number;
14
14
  offset?: number;
15
15
  }): SandboxEvent[];
16
- //# sourceMappingURL=events.d.ts.map
@@ -4,4 +4,3 @@
4
4
  * Equivalent to the SQLite schema in database.ts, translated for PostgreSQL.
5
5
  */
6
6
  export declare const PG_MIGRATIONS: string[];
7
- //# sourceMappingURL=pg-migrations.d.ts.map
@@ -6,4 +6,3 @@ export declare function getProjectByPath(path: string): Project | null;
6
6
  export declare function listProjects(): Project[];
7
7
  export declare function ensureProject(name: string, path: string, description?: string): Project;
8
8
  export declare function deleteProject(id: string): void;
9
- //# sourceMappingURL=projects.d.ts.map
@@ -9,4 +9,3 @@ export declare function listSandboxes(opts?: {
9
9
  }): Sandbox[];
10
10
  export declare function updateSandbox(id: string, updates: Partial<Pick<Sandbox, "status" | "provider_sandbox_id" | "name" | "image" | "timeout" | "config" | "env_vars" | "keep_alive_until" | "started_at">>): Sandbox;
11
11
  export declare function deleteSandbox(id: string): void;
12
- //# sourceMappingURL=sandboxes.d.ts.map
@@ -8,4 +8,3 @@ export declare function listSessions(opts?: {
8
8
  }): SandboxSession[];
9
9
  export declare function updateSession(id: string, updates: Partial<Pick<SandboxSession, "status" | "exit_code">>): SandboxSession;
10
10
  export declare function endSession(id: string, exit_code: number, status?: SessionStatus): SandboxSession;
11
- //# sourceMappingURL=sessions.d.ts.map
@@ -26,4 +26,3 @@ export declare function createSnapshot(input: {
26
26
  export declare function getSnapshot(id: string): Snapshot;
27
27
  export declare function listSnapshots(sandboxId?: string): Snapshot[];
28
28
  export declare function deleteSnapshot(id: string): void;
29
- //# sourceMappingURL=snapshots.d.ts.map
@@ -4,4 +4,3 @@ export declare function getTemplate(id: string): Template;
4
4
  export declare function getTemplateByName(name: string): Template | null;
5
5
  export declare function listTemplates(): Template[];
6
6
  export declare function deleteTemplate(id: string): void;
7
- //# sourceMappingURL=templates.d.ts.map
@@ -4,4 +4,3 @@ export declare function createWebhook(input: CreateWebhookInput): Webhook;
4
4
  export declare function getWebhook(id: string): Webhook;
5
5
  export declare function listWebhooks(): Webhook[];
6
6
  export declare function deleteWebhook(id: string): void;
7
- //# sourceMappingURL=webhooks.d.ts.map
package/dist/index.d.ts CHANGED
@@ -14,7 +14,8 @@ export { loadConfig, saveConfig, getDefaultProvider, getDefaultTimeout, getDefau
14
14
  export { BUILTIN_IMAGES, resolveImage, getBuiltinImageSetupScript } from "./lib/images.js";
15
15
  export { getProvider } from "./providers/index.js";
16
16
  export type { SandboxProvider, ProviderSandbox, CreateSandboxOpts, ExecOptions } from "./providers/types.js";
17
+ export { SandboxesSDK, createSandboxesSDK, } from "./sdk.js";
18
+ export type { ExecCommandResult, ProviderFactory, RunAgentOptions, SandboxesSDKOptions, WaitForSessionOptions, } from "./sdk.js";
17
19
  export { createStreamCollector, addStreamListener, emitLifecycleEvent } from "./lib/stream.js";
18
20
  export { getAgentDriver, listAgentDrivers } from "./lib/agents/index.js";
19
21
  export type { AgentDriver } from "./lib/agents/types.js";
20
- //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -34,7 +34,7 @@ var init_types = __esm(() => {
34
34
  "failed",
35
35
  "killed"
36
36
  ];
37
- AGENT_TYPES = ["claude", "codex", "gemini", "opencode", "pi", "custom"];
37
+ AGENT_TYPES = ["codex", "gemini", "opencode", "pi", "takumi", "custom"];
38
38
  EVENT_TYPES = [
39
39
  "stdout",
40
40
  "stderr",
@@ -10340,7 +10340,7 @@ var MIGRATIONS = [
10340
10340
  id TEXT PRIMARY KEY,
10341
10341
  sandbox_id TEXT NOT NULL REFERENCES sandboxes(id) ON DELETE CASCADE,
10342
10342
  agent_name TEXT,
10343
- agent_type TEXT CHECK(agent_type IN ('claude', 'codex', 'gemini', 'custom')),
10343
+ agent_type TEXT CHECK(agent_type IN ('codex', 'gemini', 'opencode', 'pi', 'takumi', 'custom')),
10344
10344
  command TEXT,
10345
10345
  status TEXT NOT NULL DEFAULT 'running' CHECK(status IN ('running', 'completed', 'failed', 'killed')),
10346
10346
  exit_code INTEGER,
@@ -11098,11 +11098,6 @@ var BUILTIN_IMAGES = {
11098
11098
  description: "Node 20 + npm + pnpm + yarn",
11099
11099
  setup_script: "curl -fsSL https://deb.nodesource.com/setup_20.x | bash - && apt-get install -y nodejs && npm install -g pnpm yarn"
11100
11100
  },
11101
- "node20-claude": {
11102
- e2b: "e2bdev/base:latest",
11103
- description: "Node 20 + Claude Code CLI pre-installed",
11104
- setup_script: `curl -fsSL https://deb.nodesource.com/setup_20.x | bash - && apt-get install -y nodejs && npm install -g @anthropic-ai/claude-code && mkdir -p ~/.claude && echo '{"hasCompletedOnboarding":true,"hasTrustDialogAccepted":true,"hasAcknowledgedCostThreshold":true}' > ~/.claude.json`
11105
- },
11106
11101
  "node20-codex": {
11107
11102
  e2b: "e2bdev/base:latest",
11108
11103
  description: "Node 20 + Codex CLI pre-installed",
@@ -11231,27 +11226,20 @@ function emitLifecycleEvent(sandboxId, message) {
11231
11226
  });
11232
11227
  notifyListeners(sandboxId, "lifecycle", message);
11233
11228
  }
11234
- // src/lib/agents/claude.ts
11235
- class ClaudeDriver {
11236
- name = "claude";
11237
- requiredEnvVars = ["ANTHROPIC_API_KEY"];
11238
- async install(provider, providerSandboxId) {
11239
- const check = await provider.exec(providerSandboxId, "which claude 2>/dev/null || echo MISSING");
11240
- if (check.stdout.trim() !== "MISSING")
11241
- return;
11242
- await provider.exec(providerSandboxId, "npm install -g @anthropic-ai/claude-code 2>&1 || sudo npm install -g @anthropic-ai/claude-code 2>&1");
11243
- }
11244
- async configure(provider, providerSandboxId, _envVars) {
11245
- const config = JSON.stringify({
11246
- hasCompletedOnboarding: true,
11247
- hasTrustDialogAccepted: true,
11248
- hasAcknowledgedCostThreshold: true
11249
- });
11250
- await provider.exec(providerSandboxId, `mkdir -p ~/.claude && echo '${config}' > ~/.claude.json`);
11251
- }
11252
- buildCommand(prompt) {
11253
- return `claude --dangerously-skip-permissions -p ${JSON.stringify(prompt)}`;
11254
- }
11229
+
11230
+ // src/lib/runtime-state.ts
11231
+ function getErrorMessage(error) {
11232
+ return error instanceof Error ? error.message : String(error);
11233
+ }
11234
+ function finalizeSessionExit(sessionId, exitCode) {
11235
+ endSession(sessionId, exitCode, exitCode === 0 ? "completed" : "failed");
11236
+ }
11237
+ function finalizeSessionFailure(sessionId, _error, exitCode = 1) {
11238
+ endSession(sessionId, exitCode, "failed");
11239
+ }
11240
+ function finalizeSandboxProvisionFailure(sandboxId, error) {
11241
+ updateSandbox(sandboxId, { status: "error" });
11242
+ return getErrorMessage(error);
11255
11243
  }
11256
11244
 
11257
11245
  // src/lib/agents/codex.ts
@@ -11327,13 +11315,45 @@ class PiDriver {
11327
11315
  }
11328
11316
  }
11329
11317
 
11318
+ // src/lib/agents/takumi.ts
11319
+ class TakumiDriver {
11320
+ name = "takumi";
11321
+ requiredEnvVars = ["ANTHROPIC_API_KEY"];
11322
+ async install(provider, providerSandboxId) {
11323
+ const check = await provider.exec(providerSandboxId, "which takumi 2>/dev/null || echo MISSING");
11324
+ if (check.stdout.trim() !== "MISSING")
11325
+ return;
11326
+ const bunCheck = await provider.exec(providerSandboxId, "which bun 2>/dev/null || echo MISSING");
11327
+ if (bunCheck.stdout.trim() !== "MISSING") {
11328
+ await provider.exec(providerSandboxId, "bun install -g @hasna/takumi 2>&1");
11329
+ } else {
11330
+ await provider.exec(providerSandboxId, "npm install -g @hasna/takumi 2>&1 || sudo npm install -g @hasna/takumi 2>&1");
11331
+ }
11332
+ }
11333
+ async configure(provider, providerSandboxId, envVars) {
11334
+ const config = JSON.stringify({
11335
+ hasCompletedOnboarding: true,
11336
+ hasTrustDialogAccepted: true,
11337
+ hasAcknowledgedCostThreshold: true
11338
+ });
11339
+ await provider.exec(providerSandboxId, `mkdir -p ~/.takumi && echo '${config}' > ~/.takumi.json`);
11340
+ const npmToken = envVars["NPM_TOKEN"] ?? envVars["NPM_AUTH_TOKEN"];
11341
+ if (npmToken) {
11342
+ await provider.exec(providerSandboxId, `echo '//registry.npmjs.org/:_authToken=${npmToken}' > ~/.npmrc`);
11343
+ }
11344
+ }
11345
+ buildCommand(prompt) {
11346
+ return `takumi --dangerously-skip-permissions -p ${JSON.stringify(prompt)}`;
11347
+ }
11348
+ }
11349
+
11330
11350
  // src/lib/agents/index.ts
11331
11351
  var DRIVERS = [
11332
- new ClaudeDriver,
11333
11352
  new CodexDriver,
11334
11353
  new GeminiDriver,
11335
11354
  new OpenCodeDriver,
11336
- new PiDriver
11355
+ new PiDriver,
11356
+ new TakumiDriver
11337
11357
  ];
11338
11358
  var DRIVER_MAP = new Map(DRIVERS.map((d) => [d.name, d]));
11339
11359
  function getAgentDriver(name) {
@@ -11342,6 +11362,205 @@ function getAgentDriver(name) {
11342
11362
  function listAgentDrivers() {
11343
11363
  return DRIVERS;
11344
11364
  }
11365
+
11366
+ // src/sdk.ts
11367
+ function isExecHandle(value) {
11368
+ return typeof value.wait === "function";
11369
+ }
11370
+ function mergeEnv(sandboxEnv, callEnv) {
11371
+ const merged = { ...sandboxEnv, ...callEnv };
11372
+ return Object.keys(merged).length > 0 ? merged : undefined;
11373
+ }
11374
+
11375
+ class SandboxesSDK {
11376
+ defaultProvider;
11377
+ providerApiKeys;
11378
+ providerFactory;
11379
+ constructor(options = {}) {
11380
+ this.defaultProvider = options.defaultProvider;
11381
+ this.providerApiKeys = options.providerApiKeys ?? {};
11382
+ this.providerFactory = options.providerFactory ?? ((name, apiKey) => getProvider(name, apiKey));
11383
+ }
11384
+ async createSandbox(input = {}) {
11385
+ const providerName = input.provider ?? this.defaultProvider ?? getDefaultProvider();
11386
+ const timeout = input.timeout ?? getDefaultTimeout();
11387
+ const sandbox = createSandbox({
11388
+ ...input,
11389
+ provider: providerName,
11390
+ timeout
11391
+ });
11392
+ try {
11393
+ const provider = await this.getProvider(providerName);
11394
+ const providerSandbox = await provider.create({
11395
+ image: sandbox.image ?? undefined,
11396
+ timeout: sandbox.timeout,
11397
+ envVars: sandbox.env_vars,
11398
+ onTimeout: sandbox.on_timeout,
11399
+ autoResume: sandbox.auto_resume
11400
+ });
11401
+ const updated = updateSandbox(sandbox.id, {
11402
+ provider_sandbox_id: providerSandbox.id,
11403
+ status: "running",
11404
+ started_at: new Date().toISOString()
11405
+ });
11406
+ emitLifecycleEvent(updated.id, "sandbox created");
11407
+ return updated;
11408
+ } catch (error) {
11409
+ finalizeSandboxProvisionFailure(sandbox.id, error);
11410
+ throw error;
11411
+ }
11412
+ }
11413
+ getSandbox(id) {
11414
+ return getSandbox(id);
11415
+ }
11416
+ listSandboxes(filters) {
11417
+ return listSandboxes(filters);
11418
+ }
11419
+ async stopSandbox(id) {
11420
+ const sandbox = getSandbox(id);
11421
+ if (sandbox.provider_sandbox_id) {
11422
+ const provider = await this.getProvider(sandbox.provider);
11423
+ await provider.stop(sandbox.provider_sandbox_id);
11424
+ }
11425
+ const updated = updateSandbox(sandbox.id, { status: "stopped" });
11426
+ emitLifecycleEvent(updated.id, "sandbox stopped");
11427
+ return updated;
11428
+ }
11429
+ async deleteSandbox(id) {
11430
+ const sandbox = getSandbox(id);
11431
+ if (sandbox.provider_sandbox_id) {
11432
+ const provider = await this.getProvider(sandbox.provider);
11433
+ await provider.delete(sandbox.provider_sandbox_id);
11434
+ }
11435
+ emitLifecycleEvent(sandbox.id, "sandbox deleted");
11436
+ deleteSandbox(sandbox.id);
11437
+ }
11438
+ async execCommand(sandboxId, command, opts = {}) {
11439
+ const sandbox = this.requireProviderSandbox(sandboxId);
11440
+ const provider = await this.getProvider(sandbox.provider);
11441
+ const session = createSession({
11442
+ sandbox_id: sandbox.id,
11443
+ command
11444
+ });
11445
+ const collector = createStreamCollector(sandbox.id, session.id);
11446
+ try {
11447
+ const resultOrHandle = await provider.exec(sandbox.provider_sandbox_id, command, {
11448
+ ...opts,
11449
+ env: mergeEnv(sandbox.env_vars, opts.env),
11450
+ onStdout: (data) => {
11451
+ collector.onStdout(data);
11452
+ opts.onStdout?.(data);
11453
+ },
11454
+ onStderr: (data) => {
11455
+ collector.onStderr(data);
11456
+ opts.onStderr?.(data);
11457
+ }
11458
+ });
11459
+ const result = isExecHandle(resultOrHandle) ? await resultOrHandle.wait() : resultOrHandle;
11460
+ finalizeSessionExit(session.id, result.exit_code);
11461
+ return {
11462
+ session: getSession(session.id),
11463
+ result
11464
+ };
11465
+ } catch (error) {
11466
+ finalizeSessionFailure(session.id, error);
11467
+ throw error;
11468
+ }
11469
+ }
11470
+ async readFile(sandboxId, path, opts) {
11471
+ const sandbox = this.requireProviderSandbox(sandboxId);
11472
+ const provider = await this.getProvider(sandbox.provider);
11473
+ return provider.readFile(sandbox.provider_sandbox_id, path, opts);
11474
+ }
11475
+ async writeFile(sandboxId, path, content) {
11476
+ const sandbox = this.requireProviderSandbox(sandboxId);
11477
+ const provider = await this.getProvider(sandbox.provider);
11478
+ await provider.writeFile(sandbox.provider_sandbox_id, path, content);
11479
+ }
11480
+ async listFiles(sandboxId, path, opts) {
11481
+ const sandbox = this.requireProviderSandbox(sandboxId);
11482
+ const provider = await this.getProvider(sandbox.provider);
11483
+ return provider.listFiles(sandbox.provider_sandbox_id, path, opts);
11484
+ }
11485
+ async runAgent(sandboxId, opts) {
11486
+ const sandbox = this.requireProviderSandbox(sandboxId);
11487
+ const provider = await this.getProvider(sandbox.provider);
11488
+ const env = mergeEnv(sandbox.env_vars, opts.callEnvVars);
11489
+ let command;
11490
+ const driver = opts.agentType !== "custom" ? getAgentDriver(opts.agentType) : undefined;
11491
+ if (opts.command) {
11492
+ command = opts.command;
11493
+ } else if (driver) {
11494
+ await driver.install(provider, sandbox.provider_sandbox_id);
11495
+ await driver.configure(provider, sandbox.provider_sandbox_id, env ?? {});
11496
+ command = driver.buildCommand(opts.prompt);
11497
+ } else {
11498
+ command = opts.prompt;
11499
+ }
11500
+ const session = createSession({
11501
+ sandbox_id: sandbox.id,
11502
+ agent_name: opts.agentName,
11503
+ agent_type: opts.agentType,
11504
+ command
11505
+ });
11506
+ const collector = createStreamCollector(sandbox.id, session.id);
11507
+ emitLifecycleEvent(sandbox.id, `Agent ${opts.agentType} started: ${opts.prompt.slice(0, 100)}`);
11508
+ provider.exec(sandbox.provider_sandbox_id, command, {
11509
+ env,
11510
+ onStdout: (data) => {
11511
+ collector.onStdout(data);
11512
+ opts.onStdout?.(data);
11513
+ },
11514
+ onStderr: (data) => {
11515
+ collector.onStderr(data);
11516
+ opts.onStderr?.(data);
11517
+ }
11518
+ }).then(async (resultOrHandle) => {
11519
+ const result = isExecHandle(resultOrHandle) ? await resultOrHandle.wait() : resultOrHandle;
11520
+ finalizeSessionExit(session.id, result.exit_code);
11521
+ emitLifecycleEvent(sandbox.id, `Agent ${opts.agentType} finished with exit code ${result.exit_code}`);
11522
+ }).catch((error) => {
11523
+ finalizeSessionFailure(session.id, error);
11524
+ emitLifecycleEvent(sandbox.id, `Agent ${opts.agentType} failed: ${error.message}`);
11525
+ });
11526
+ return session;
11527
+ }
11528
+ getSession(sessionId) {
11529
+ return getSession(sessionId);
11530
+ }
11531
+ async waitForSession(sessionId, opts = {}) {
11532
+ const timeoutMs = opts.timeoutMs ?? 300000;
11533
+ const pollIntervalMs = opts.pollIntervalMs ?? 100;
11534
+ const deadline = Date.now() + timeoutMs;
11535
+ while (Date.now() <= deadline) {
11536
+ const session = getSession(sessionId);
11537
+ if (session.status !== "running") {
11538
+ return session;
11539
+ }
11540
+ await new Promise((resolve2) => setTimeout(resolve2, pollIntervalMs));
11541
+ }
11542
+ throw new Error(`Session ${sessionId} did not finish within ${timeoutMs}ms`);
11543
+ }
11544
+ listEvents(filters) {
11545
+ return listEvents(filters);
11546
+ }
11547
+ onSandboxEvent(sandboxId, listener) {
11548
+ return addStreamListener(sandboxId, listener);
11549
+ }
11550
+ async getProvider(providerName) {
11551
+ return this.providerFactory(providerName, this.providerApiKeys[providerName]);
11552
+ }
11553
+ requireProviderSandbox(sandboxId) {
11554
+ const sandbox = getSandbox(sandboxId);
11555
+ if (!sandbox.provider_sandbox_id) {
11556
+ throw new Error(`Sandbox ${sandbox.id} has no provider sandbox ID`);
11557
+ }
11558
+ return sandbox;
11559
+ }
11560
+ }
11561
+ function createSandboxesSDK(options) {
11562
+ return new SandboxesSDK(options);
11563
+ }
11345
11564
  export {
11346
11565
  uuid,
11347
11566
  updateSession,
@@ -11397,6 +11616,7 @@ export {
11397
11616
  createStreamCollector,
11398
11617
  createSnapshot,
11399
11618
  createSession,
11619
+ createSandboxesSDK,
11400
11620
  createSandbox,
11401
11621
  createProject,
11402
11622
  closeDatabase,
@@ -11406,6 +11626,7 @@ export {
11406
11626
  TemplateNotFoundError,
11407
11627
  SnapshotNotFoundError,
11408
11628
  SessionNotFoundError,
11629
+ SandboxesSDK,
11409
11630
  SandboxNotFoundError,
11410
11631
  SESSION_STATUSES,
11411
11632
  SANDBOX_STATUSES,
@@ -12,4 +12,3 @@ export interface RunAgentOpts {
12
12
  }
13
13
  export declare function runAgent(sandboxId: string, opts: RunAgentOpts): Promise<SandboxSession>;
14
14
  export declare function stopAgent(sandboxId: string): Promise<void>;
15
- //# sourceMappingURL=agent-runner.d.ts.map
@@ -7,4 +7,3 @@ export declare class CodexDriver implements AgentDriver {
7
7
  configure(provider: SandboxProvider, providerSandboxId: string, _envVars: Record<string, string>): Promise<void>;
8
8
  buildCommand(prompt: string): string;
9
9
  }
10
- //# sourceMappingURL=codex.d.ts.map
@@ -7,4 +7,3 @@ export declare class GeminiDriver implements AgentDriver {
7
7
  configure(provider: SandboxProvider, providerSandboxId: string, _envVars: Record<string, string>): Promise<void>;
8
8
  buildCommand(prompt: string): string;
9
9
  }
10
- //# sourceMappingURL=gemini.d.ts.map
@@ -2,4 +2,3 @@ import type { AgentDriver } from "./types.js";
2
2
  export type { AgentDriver };
3
3
  export declare function getAgentDriver(name: string): AgentDriver | undefined;
4
4
  export declare function listAgentDrivers(): AgentDriver[];
5
- //# sourceMappingURL=index.d.ts.map
@@ -7,4 +7,3 @@ export declare class OpenCodeDriver implements AgentDriver {
7
7
  configure(_provider: SandboxProvider, _providerSandboxId: string, _envVars: Record<string, string>): Promise<void>;
8
8
  buildCommand(prompt: string): string;
9
9
  }
10
- //# sourceMappingURL=opencode.d.ts.map
@@ -7,4 +7,3 @@ export declare class PiDriver implements AgentDriver {
7
7
  configure(_provider: SandboxProvider, _providerSandboxId: string, _envVars: Record<string, string>): Promise<void>;
8
8
  buildCommand(prompt: string): string;
9
9
  }
10
- //# sourceMappingURL=pi.d.ts.map
@@ -1,10 +1,9 @@
1
1
  import type { SandboxProvider } from "../../providers/types.js";
2
2
  import type { AgentDriver } from "./types.js";
3
- export declare class ClaudeDriver implements AgentDriver {
4
- readonly name = "claude";
3
+ export declare class TakumiDriver implements AgentDriver {
4
+ readonly name = "takumi";
5
5
  readonly requiredEnvVars: string[];
6
6
  install(provider: SandboxProvider, providerSandboxId: string): Promise<void>;
7
- configure(provider: SandboxProvider, providerSandboxId: string, _envVars: Record<string, string>): Promise<void>;
7
+ configure(provider: SandboxProvider, providerSandboxId: string, envVars: Record<string, string>): Promise<void>;
8
8
  buildCommand(prompt: string): string;
9
9
  }
10
- //# sourceMappingURL=claude.d.ts.map
@@ -20,4 +20,3 @@ export interface AgentDriver {
20
20
  */
21
21
  buildCommand(prompt: string): string;
22
22
  }
23
- //# sourceMappingURL=types.d.ts.map
@@ -7,4 +7,3 @@ export declare function getDefaultImage(): string | undefined;
7
7
  export declare function getProviderApiKey(provider: SandboxProviderName): string | undefined;
8
8
  export declare function setConfigValue(key: string, value: string): void;
9
9
  export declare function getConfigValue(key: string): string | undefined;
10
- //# sourceMappingURL=config.d.ts.map
@@ -10,4 +10,3 @@ export declare const BUILTIN_IMAGES: Record<string, {
10
10
  }>;
11
11
  export declare function resolveImage(image: string): string;
12
12
  export declare function getBuiltinImageSetupScript(image: string): string | undefined;
13
- //# sourceMappingURL=images.d.ts.map
@@ -2,4 +2,3 @@ export declare function startKeepAlive(sandboxId: string, intervalMs?: number):
2
2
  export declare function stopKeepAlive(sandboxId: string): void;
3
3
  export declare function isKeepAliveActive(sandboxId: string): boolean;
4
4
  export declare function stopAllKeepAlives(): void;
5
- //# sourceMappingURL=keepalive.d.ts.map
@@ -2,4 +2,3 @@ export declare function getErrorMessage(error: unknown): string;
2
2
  export declare function finalizeSessionExit(sessionId: string, exitCode: number): void;
3
3
  export declare function finalizeSessionFailure(sessionId: string, _error?: unknown, exitCode?: number): void;
4
4
  export declare function finalizeSandboxProvisionFailure(sandboxId: string, error?: unknown): string;
5
- //# sourceMappingURL=runtime-state.d.ts.map
@@ -10,4 +10,3 @@ export declare function createStreamCollector(sandboxId: string, sessionId?: str
10
10
  };
11
11
  };
12
12
  export declare function emitLifecycleEvent(sandboxId: string, message: string): void;
13
- //# sourceMappingURL=stream.d.ts.map
@@ -1,2 +1 @@
1
1
  export declare function getPackageVersion(): string;
2
- //# sourceMappingURL=version.d.ts.map
@@ -11,4 +11,3 @@ export declare function dispatchWebhook(event: string, data: {
11
11
  [key: string]: unknown;
12
12
  }): Promise<void>;
13
13
  export declare const WEBHOOK_EVENTS: readonly ["sandbox.created", "sandbox.started", "sandbox.stopped", "sandbox.deleted", "session.started", "session.completed", "session.output"];
14
- //# sourceMappingURL=webhook.d.ts.map
@@ -1,3 +1,2 @@
1
1
  #!/usr/bin/env bun
2
2
  export {};
3
- //# sourceMappingURL=index.d.ts.map
package/dist/mcp/index.js CHANGED
@@ -14941,7 +14941,7 @@ var MIGRATIONS = [
14941
14941
  id TEXT PRIMARY KEY,
14942
14942
  sandbox_id TEXT NOT NULL REFERENCES sandboxes(id) ON DELETE CASCADE,
14943
14943
  agent_name TEXT,
14944
- agent_type TEXT CHECK(agent_type IN ('claude', 'codex', 'gemini', 'custom')),
14944
+ agent_type TEXT CHECK(agent_type IN ('codex', 'gemini', 'opencode', 'pi', 'takumi', 'custom')),
14945
14945
  command TEXT,
14946
14946
  status TEXT NOT NULL DEFAULT 'running' CHECK(status IN ('running', 'completed', 'failed', 'killed')),
14947
14947
  exit_code INTEGER,
@@ -15650,29 +15650,6 @@ function emitLifecycleEvent(sandboxId, message) {
15650
15650
  notifyListeners(sandboxId, "lifecycle", message);
15651
15651
  }
15652
15652
 
15653
- // src/lib/agents/claude.ts
15654
- class ClaudeDriver {
15655
- name = "claude";
15656
- requiredEnvVars = ["ANTHROPIC_API_KEY"];
15657
- async install(provider, providerSandboxId) {
15658
- const check = await provider.exec(providerSandboxId, "which claude 2>/dev/null || echo MISSING");
15659
- if (check.stdout.trim() !== "MISSING")
15660
- return;
15661
- await provider.exec(providerSandboxId, "npm install -g @anthropic-ai/claude-code 2>&1 || sudo npm install -g @anthropic-ai/claude-code 2>&1");
15662
- }
15663
- async configure(provider, providerSandboxId, _envVars) {
15664
- const config = JSON.stringify({
15665
- hasCompletedOnboarding: true,
15666
- hasTrustDialogAccepted: true,
15667
- hasAcknowledgedCostThreshold: true
15668
- });
15669
- await provider.exec(providerSandboxId, `mkdir -p ~/.claude && echo '${config}' > ~/.claude.json`);
15670
- }
15671
- buildCommand(prompt) {
15672
- return `claude --dangerously-skip-permissions -p ${JSON.stringify(prompt)}`;
15673
- }
15674
- }
15675
-
15676
15653
  // src/lib/agents/codex.ts
15677
15654
  class CodexDriver {
15678
15655
  name = "codex";
@@ -15746,13 +15723,45 @@ class PiDriver {
15746
15723
  }
15747
15724
  }
15748
15725
 
15726
+ // src/lib/agents/takumi.ts
15727
+ class TakumiDriver {
15728
+ name = "takumi";
15729
+ requiredEnvVars = ["ANTHROPIC_API_KEY"];
15730
+ async install(provider, providerSandboxId) {
15731
+ const check = await provider.exec(providerSandboxId, "which takumi 2>/dev/null || echo MISSING");
15732
+ if (check.stdout.trim() !== "MISSING")
15733
+ return;
15734
+ const bunCheck = await provider.exec(providerSandboxId, "which bun 2>/dev/null || echo MISSING");
15735
+ if (bunCheck.stdout.trim() !== "MISSING") {
15736
+ await provider.exec(providerSandboxId, "bun install -g @hasna/takumi 2>&1");
15737
+ } else {
15738
+ await provider.exec(providerSandboxId, "npm install -g @hasna/takumi 2>&1 || sudo npm install -g @hasna/takumi 2>&1");
15739
+ }
15740
+ }
15741
+ async configure(provider, providerSandboxId, envVars) {
15742
+ const config = JSON.stringify({
15743
+ hasCompletedOnboarding: true,
15744
+ hasTrustDialogAccepted: true,
15745
+ hasAcknowledgedCostThreshold: true
15746
+ });
15747
+ await provider.exec(providerSandboxId, `mkdir -p ~/.takumi && echo '${config}' > ~/.takumi.json`);
15748
+ const npmToken = envVars["NPM_TOKEN"] ?? envVars["NPM_AUTH_TOKEN"];
15749
+ if (npmToken) {
15750
+ await provider.exec(providerSandboxId, `echo '//registry.npmjs.org/:_authToken=${npmToken}' > ~/.npmrc`);
15751
+ }
15752
+ }
15753
+ buildCommand(prompt) {
15754
+ return `takumi --dangerously-skip-permissions -p ${JSON.stringify(prompt)}`;
15755
+ }
15756
+ }
15757
+
15749
15758
  // src/lib/agents/index.ts
15750
15759
  var DRIVERS = [
15751
- new ClaudeDriver,
15752
15760
  new CodexDriver,
15753
15761
  new GeminiDriver,
15754
15762
  new OpenCodeDriver,
15755
- new PiDriver
15763
+ new PiDriver,
15764
+ new TakumiDriver
15756
15765
  ];
15757
15766
  var DRIVER_MAP = new Map(DRIVERS.map((d) => [d.name, d]));
15758
15767
  function getAgentDriver(name) {
@@ -15873,7 +15882,7 @@ async function stopAgent(sandboxId) {
15873
15882
  return;
15874
15883
  const provider = await getProvider(sandbox.provider);
15875
15884
  try {
15876
- await provider.exec(sandbox.provider_sandbox_id, "pkill -f 'claude\\|codex\\|gemini\\|opencode\\|pi' || true");
15885
+ await provider.exec(sandbox.provider_sandbox_id, "pkill -f 'codex\\|gemini\\|opencode\\|pi\\|takumi' || true");
15877
15886
  } catch {}
15878
15887
  emitLifecycleEvent(sandbox.id, "Agent stopped by user");
15879
15888
  }
@@ -15885,11 +15894,6 @@ var BUILTIN_IMAGES = {
15885
15894
  description: "Node 20 + npm + pnpm + yarn",
15886
15895
  setup_script: "curl -fsSL https://deb.nodesource.com/setup_20.x | bash - && apt-get install -y nodejs && npm install -g pnpm yarn"
15887
15896
  },
15888
- "node20-claude": {
15889
- e2b: "e2bdev/base:latest",
15890
- description: "Node 20 + Claude Code CLI pre-installed",
15891
- setup_script: `curl -fsSL https://deb.nodesource.com/setup_20.x | bash - && apt-get install -y nodejs && npm install -g @anthropic-ai/claude-code && mkdir -p ~/.claude && echo '{"hasCompletedOnboarding":true,"hasTrustDialogAccepted":true,"hasAcknowledgedCostThreshold":true}' > ~/.claude.json`
15892
- },
15893
15897
  "node20-codex": {
15894
15898
  e2b: "e2bdev/base:latest",
15895
15899
  description: "Node 20 + Codex CLI pre-installed",
@@ -16404,7 +16408,7 @@ server.tool("search_tools", "Search tools by keyword", {
16404
16408
  });
16405
16409
  server.tool("run_agent", "Run an AI agent inside a sandbox", {
16406
16410
  sandbox_id: exports_external2.string().describe("Sandbox ID"),
16407
- agent_type: exports_external2.enum(["claude", "codex", "gemini", "opencode", "pi", "custom"]).describe("Agent type"),
16411
+ agent_type: exports_external2.enum(["codex", "gemini", "opencode", "pi", "takumi", "custom"]).describe("Agent type"),
16408
16412
  prompt: exports_external2.string().describe("Prompt for the agent"),
16409
16413
  agent_name: exports_external2.string().optional().describe("Agent name"),
16410
16414
  command: exports_external2.string().optional().describe("Custom command (for 'custom' type)"),
@@ -17,4 +17,3 @@ export declare class DaytonaProvider implements SandboxProvider {
17
17
  resume(_sandboxId: string): Promise<void>;
18
18
  keepAlive(sandboxId: string, durationMs?: number): Promise<void>;
19
19
  }
20
- //# sourceMappingURL=daytona.d.ts.map
@@ -24,4 +24,3 @@ export declare class E2BProvider implements SandboxProvider {
24
24
  getPublicUrl(sandboxId: string, port: number, _protocol?: string): Promise<string>;
25
25
  keepAlive(sandboxId: string, durationMs?: number): Promise<void>;
26
26
  }
27
- //# sourceMappingURL=e2b.d.ts.map
@@ -2,4 +2,3 @@ import type { SandboxProviderName } from "../types/index.js";
2
2
  import type { SandboxProvider } from "./types.js";
3
3
  export declare function getProvider(name: SandboxProviderName, apiKey?: string): Promise<SandboxProvider>;
4
4
  export { type SandboxProvider } from "./types.js";
5
- //# sourceMappingURL=index.d.ts.map
@@ -28,4 +28,3 @@ export declare class ModalProvider implements SandboxProvider {
28
28
  */
29
29
  private shellEscape;
30
30
  }
31
- //# sourceMappingURL=modal.d.ts.map
@@ -41,4 +41,3 @@ export interface SandboxProvider {
41
41
  resume(sandboxId: string): Promise<void>;
42
42
  getPublicUrl(sandboxId: string, port: number, protocol?: string): Promise<string>;
43
43
  }
44
- //# sourceMappingURL=types.d.ts.map
package/dist/sdk.d.ts ADDED
@@ -0,0 +1,59 @@
1
+ import { listSandboxes } from "./db/sandboxes.js";
2
+ import { listEvents } from "./db/events.js";
3
+ import type { SandboxProvider } from "./providers/types.js";
4
+ import type { ExecOptions } from "./providers/types.js";
5
+ import type { AgentType, CreateSandboxInput, ExecResult, FileInfo, Sandbox, SandboxEvent, SandboxProviderName, SandboxSession } from "./types/index.js";
6
+ import type { StreamListener } from "./lib/stream.js";
7
+ export type ProviderFactory = (name: SandboxProviderName, apiKey?: string) => Promise<SandboxProvider>;
8
+ export interface SandboxesSDKOptions {
9
+ defaultProvider?: SandboxProviderName;
10
+ providerApiKeys?: Partial<Record<SandboxProviderName, string>>;
11
+ providerFactory?: ProviderFactory;
12
+ }
13
+ export interface ExecCommandResult {
14
+ session: SandboxSession;
15
+ result: ExecResult;
16
+ }
17
+ export interface RunAgentOptions {
18
+ agentType: AgentType;
19
+ prompt: string;
20
+ agentName?: string;
21
+ command?: string;
22
+ callEnvVars?: Record<string, string>;
23
+ onStdout?: (data: string) => void;
24
+ onStderr?: (data: string) => void;
25
+ }
26
+ export interface WaitForSessionOptions {
27
+ timeoutMs?: number;
28
+ pollIntervalMs?: number;
29
+ }
30
+ export declare class SandboxesSDK {
31
+ private readonly defaultProvider?;
32
+ private readonly providerApiKeys;
33
+ private readonly providerFactory;
34
+ constructor(options?: SandboxesSDKOptions);
35
+ createSandbox(input?: CreateSandboxInput): Promise<Sandbox>;
36
+ getSandbox(id: string): Sandbox;
37
+ listSandboxes(filters?: Parameters<typeof listSandboxes>[0]): Sandbox[];
38
+ stopSandbox(id: string): Promise<Sandbox>;
39
+ deleteSandbox(id: string): Promise<void>;
40
+ execCommand(sandboxId: string, command: string, opts?: ExecOptions): Promise<ExecCommandResult>;
41
+ readFile(sandboxId: string, path: string, opts?: {
42
+ encoding?: "utf8" | "base64" | "hex";
43
+ offset?: number;
44
+ limit?: number;
45
+ }): Promise<string>;
46
+ writeFile(sandboxId: string, path: string, content: string): Promise<void>;
47
+ listFiles(sandboxId: string, path: string, opts?: {
48
+ recursive?: boolean;
49
+ glob?: string;
50
+ }): Promise<FileInfo[]>;
51
+ runAgent(sandboxId: string, opts: RunAgentOptions): Promise<SandboxSession>;
52
+ getSession(sessionId: string): SandboxSession;
53
+ waitForSession(sessionId: string, opts?: WaitForSessionOptions): Promise<SandboxSession>;
54
+ listEvents(filters?: Parameters<typeof listEvents>[0]): SandboxEvent[];
55
+ onSandboxEvent(sandboxId: string, listener: StreamListener): () => void;
56
+ private getProvider;
57
+ private requireProviderSandbox;
58
+ }
59
+ export declare function createSandboxesSDK(options?: SandboxesSDKOptions): SandboxesSDK;
@@ -1,3 +1,2 @@
1
1
  #!/usr/bin/env bun
2
2
  export {};
3
- //# sourceMappingURL=index.d.ts.map
@@ -10313,7 +10313,7 @@ var MIGRATIONS = [
10313
10313
  id TEXT PRIMARY KEY,
10314
10314
  sandbox_id TEXT NOT NULL REFERENCES sandboxes(id) ON DELETE CASCADE,
10315
10315
  agent_name TEXT,
10316
- agent_type TEXT CHECK(agent_type IN ('claude', 'codex', 'gemini', 'custom')),
10316
+ agent_type TEXT CHECK(agent_type IN ('codex', 'gemini', 'opencode', 'pi', 'takumi', 'custom')),
10317
10317
  command TEXT,
10318
10318
  status TEXT NOT NULL DEFAULT 'running' CHECK(status IN ('running', 'completed', 'failed', 'killed')),
10319
10319
  exit_code INTEGER,
@@ -1,3 +1,2 @@
1
1
  export declare function handleRequest(req: Request): Promise<Response>;
2
2
  export declare function startServer(port: number): void;
3
- //# sourceMappingURL=serve.d.ts.map
@@ -4,7 +4,7 @@ export declare const SANDBOX_STATUSES: readonly ["creating", "running", "paused"
4
4
  export type SandboxStatus = (typeof SANDBOX_STATUSES)[number];
5
5
  export declare const SESSION_STATUSES: readonly ["running", "completed", "failed", "killed"];
6
6
  export type SessionStatus = (typeof SESSION_STATUSES)[number];
7
- export declare const AGENT_TYPES: readonly ["claude", "codex", "gemini", "opencode", "pi", "custom"];
7
+ export declare const AGENT_TYPES: readonly ["codex", "gemini", "opencode", "pi", "takumi", "custom"];
8
8
  export type AgentType = (typeof AGENT_TYPES)[number];
9
9
  export declare const EVENT_TYPES: readonly ["stdout", "stderr", "lifecycle", "agent"];
10
10
  export type EventType = (typeof EVENT_TYPES)[number];
@@ -245,4 +245,3 @@ export interface CreateTemplateInput {
245
245
  setup_script?: string;
246
246
  tags?: string[];
247
247
  }
248
- //# sourceMappingURL=index.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hasna/sandboxes",
3
- "version": "0.1.20",
3
+ "version": "0.1.22",
4
4
  "author": "Andrei Hasna <andrei@hasna.com>",
5
5
  "repository": {
6
6
  "type": "git",
@@ -56,7 +56,6 @@
56
56
  "mcp",
57
57
  "ai",
58
58
  "coding-agent",
59
- "claude",
60
59
  "codex",
61
60
  "gemini",
62
61
  "cli"
@@ -67,7 +66,7 @@
67
66
  "access": "public"
68
67
  },
69
68
  "scripts": {
70
- "build": "bun build src/cli/index.tsx --outdir dist/cli --target bun --external ink --external react --external chalk --external @modelcontextprotocol/sdk --external @e2b/code-interpreter --external @daytonaio/sdk --external modal && bun build src/mcp/index.ts --outdir dist/mcp --target bun --external @modelcontextprotocol/sdk --external @e2b/code-interpreter --external @daytonaio/sdk --external modal && bun build src/server/index.ts --outdir dist/server --target bun --external @e2b/code-interpreter --external @daytonaio/sdk --external modal && bun build src/index.ts --outdir dist --target bun --external @e2b/code-interpreter --external @daytonaio/sdk --external modal && tsc --emitDeclarationOnly --outDir dist",
69
+ "build": "rm -rf dist && bun build src/cli/index.tsx --outdir dist/cli --target bun --external ink --external react --external chalk --external @modelcontextprotocol/sdk --external @e2b/code-interpreter --external @daytonaio/sdk --external modal && bun build src/mcp/index.ts --outdir dist/mcp --target bun --external @modelcontextprotocol/sdk --external @e2b/code-interpreter --external @daytonaio/sdk --external modal && bun build src/server/index.ts --outdir dist/server --target bun --external @e2b/code-interpreter --external @daytonaio/sdk --external modal && bun build src/index.ts --outdir dist --target bun --external @e2b/code-interpreter --external @daytonaio/sdk --external modal && tsc --emitDeclarationOnly --outDir dist",
71
70
  "typecheck": "tsc --noEmit",
72
71
  "test": "bun test",
73
72
  "dev:cli": "bun run src/cli/index.tsx",
@@ -77,4 +76,4 @@
77
76
  },
78
77
  "type": "module",
79
78
  "types": "dist/index.d.ts"
80
- }
79
+ }
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.tsx"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/db/agents.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAK1E,wBAAgB,UAAU,CAAC,GAAG,EAAE,QAAQ,GAAG,KAAK,CAS/C;AAID,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,KAAK,CAsB9D;AAED,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,KAAK,CAY1C;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI,CASzD;AAED,wBAAgB,UAAU,IAAI,KAAK,EAAE,CAQpC;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,KAAK,CAMtD;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,KAAK,CAM/E;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAO5C"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/db/database.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AA+OtC,wBAAgB,WAAW,IAAI,QAAQ,CAatC;AAED,wBAAgB,aAAa,IAAI,IAAI,CAMpC;AAED,wBAAgB,aAAa,IAAI,IAAI,CAMpC;AAED,wBAAgB,IAAI,IAAI,MAAM,CAE7B;AAED,wBAAgB,OAAO,IAAI,MAAM,CAEhC;AAED,wBAAgB,GAAG,IAAI,MAAM,CAE5B;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,GAChB,MAAM,GAAG,IAAI,CAcf"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/db/events.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAI/E,wBAAgB,UAAU,CAAC,GAAG,EAAE,eAAe,GAAG,YAAY,CAS7D;AAID,wBAAgB,QAAQ,CAAC,KAAK,EAAE;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GAAG,YAAY,CAcf;AAED,wBAAgB,UAAU,CAAC,IAAI,CAAC,EAAE;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,YAAY,EAAE,CA2BjB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"pg-migrations.d.ts","sourceRoot":"","sources":["../../src/db/pg-migrations.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,aAAa,EAAE,MAAM,EA0IjC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/db/projects.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAKlE,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CASlD;AAID,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAYhE;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAY9C;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAS7D;AAED,wBAAgB,YAAY,IAAI,OAAO,EAAE,CAQxC;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAKvF;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAO9C"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"sandboxes.d.ts","sourceRoot":"","sources":["../../src/db/sandboxes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,OAAO,EACP,UAAU,EACV,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACpB,MAAM,gBAAgB,CAAC;AAKxB,wBAAgB,YAAY,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAqBrD;AAID,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAsChE;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAY9C;AAED,wBAAgB,aAAa,CAAC,IAAI,CAAC,EAAE;IACnC,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,OAAO,EAAE,CAwBZ;AAED,wBAAgB,aAAa,CAC3B,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,OAAO,CACd,IAAI,CACF,OAAO,EACL,QAAQ,GACR,qBAAqB,GACrB,MAAM,GACN,OAAO,GACP,SAAS,GACT,QAAQ,GACR,UAAU,GACV,kBAAkB,GAClB,YAAY,CACf,CACF,GACA,OAAO,CA2DT;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAO9C"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../src/db/sessions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACd,MAAM,gBAAgB,CAAC;AAGxB,wBAAgB,YAAY,CAAC,GAAG,EAAE,iBAAiB,GAAG,cAAc,CAMnE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,cAAc,CAkBvE;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,CAWrD;AAED,wBAAgB,YAAY,CAAC,IAAI,CAAC,EAAE;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB,GAAG,cAAc,EAAE,CAqBnB;AAED,wBAAgB,aAAa,CAC3B,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,GAAG,WAAW,CAAC,CAAC,GAC7D,cAAc,CAwBhB;AAED,wBAAgB,UAAU,CACxB,EAAE,EAAE,MAAM,EACV,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,aAAa,GACrB,cAAc,CAWhB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"snapshots.d.ts","sourceRoot":"","sources":["../../src/db/snapshots.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,qBAAsB,SAAQ,KAAK;gBAClC,EAAE,EAAE,MAAM;CAIvB;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GAAG,QAAQ,CASX;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,CAOhD;AAED,wBAAgB,aAAa,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,QAAQ,EAAE,CAM5D;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAK/C"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/db/templates.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAe,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAiBpF,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,QAAQ,CAanE;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,CAOhD;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAI/D;AAED,wBAAgB,aAAa,IAAI,QAAQ,EAAE,CAI1C;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAK/C"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"webhooks.d.ts","sourceRoot":"","sources":["../../src/db/webhooks.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAK9E,wBAAgB,YAAY,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CASrD;AAID,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAahE;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAY9C;AAED,wBAAgB,YAAY,IAAI,OAAO,EAAE,CAQxC;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAO9C"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,kBAAkB,CAAC;AAGjC,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACnH,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC3G,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACtG,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClG,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,gBAAgB,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC3H,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC1F,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAClH,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC/F,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAG1D,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,eAAe,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGpK,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAG3F,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAG7G,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAG/F,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzE,YAAY,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"agent-runner.d.ts","sourceRoot":"","sources":["../../src/lib/agent-runner.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAc,MAAM,mBAAmB,CAAC;AAE/E,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,CAAC,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC,EAAE,CAAC;CACpD;AAcD,wBAAsB,QAAQ,CAC5B,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,cAAc,CAAC,CAyGzB;AAED,wBAAsB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAYhE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../../src/lib/agents/claude.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAG9C,qBAAa,YAAa,YAAW,WAAW;IAC9C,QAAQ,CAAC,IAAI,YAAY;IACzB,QAAQ,CAAC,eAAe,WAAyB;IAE3C,OAAO,CAAC,QAAQ,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ5E,SAAS,CAAC,QAAQ,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAYtH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;CAGrC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../../src/lib/agents/codex.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAG9C,qBAAa,WAAY,YAAW,WAAW;IAC7C,QAAQ,CAAC,IAAI,WAAW;IACxB,QAAQ,CAAC,eAAe,WAAsB;IAExC,OAAO,CAAC,QAAQ,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM5E,SAAS,CAAC,QAAQ,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAStH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;CAGrC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../../src/lib/agents/gemini.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAG9C,qBAAa,YAAa,YAAW,WAAW;IAC9C,QAAQ,CAAC,IAAI,YAAY;IACzB,QAAQ,CAAC,eAAe,WAAsB;IAExC,OAAO,CAAC,QAAQ,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM5E,SAAS,CAAC,QAAQ,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAStH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;CAGrC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/agents/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,YAAY,EAAE,WAAW,EAAE,CAAC;AAc5B,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAEpE;AAED,wBAAgB,gBAAgB,IAAI,WAAW,EAAE,CAEhD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../../src/lib/agents/opencode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAG9C,qBAAa,cAAe,YAAW,WAAW;IAChD,QAAQ,CAAC,IAAI,cAAc;IAC3B,QAAQ,CAAC,eAAe,UAAM;IAExB,OAAO,CAAC,QAAQ,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO5E,SAAS,CAAC,SAAS,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;CAGrC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"pi.d.ts","sourceRoot":"","sources":["../../../src/lib/agents/pi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAG9C,qBAAa,QAAS,YAAW,WAAW;IAC1C,QAAQ,CAAC,IAAI,QAAQ;IACrB,QAAQ,CAAC,eAAe,WAAkB;IAEpC,OAAO,CAAC,QAAQ,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO5E,SAAS,CAAC,SAAS,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;CAGrC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/agents/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEhE,MAAM,WAAW,WAAW;IAC1B,uBAAuB;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,oFAAoF;IACpF,QAAQ,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC;IAEnC;;;OAGG;IACH,OAAO,CAAC,QAAQ,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7E;;;OAGG;IACH,SAAS,CACP,QAAQ,EAAE,eAAe,EACzB,iBAAiB,EAAE,MAAM,EACzB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;OAGG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;CACtC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AA0B9E,wBAAgB,UAAU,IAAI,eAAe,CAU5C;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,CAOxD;AAED,wBAAgB,kBAAkB,IAAI,mBAAmB,CAGxD;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAG1C;AAED,wBAAgB,eAAe,IAAI,MAAM,GAAG,SAAS,CAGpD;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,MAAM,GAAG,SAAS,CAYnF;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAuB/D;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAkB9D"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"images.d.ts","sourceRoot":"","sources":["../../src/lib/images.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,CA+BtG,CAAC;AAEF,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE5E"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"keepalive.d.ts","sourceRoot":"","sources":["../../src/lib/keepalive.ts"],"names":[],"mappings":"AAOA,wBAAgB,cAAc,CAC5B,SAAS,EAAE,MAAM,EACjB,UAAU,GAAE,MAAe,GAC1B,IAAI,CAiCN;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAMrD;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAE5D;AAED,wBAAgB,iBAAiB,IAAI,IAAI,CAKxC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"runtime-state.d.ts","sourceRoot":"","sources":["../../src/lib/runtime-state.ts"],"names":[],"mappings":"AAGA,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEtD;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAE7E;AAED,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,QAAQ,SAAI,GAAG,IAAI,CAG9F;AAED,wBAAgB,+BAA+B,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAI1F"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../src/lib/stream.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;AAIrE,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,cAAc,GACvB,MAAM,IAAI,CAYZ;AAmBD,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,MAAM,GACjB;IACD,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,SAAS,EAAE,MAAM;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CACrD,CA2BA;AAED,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,IAAI,CAON"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/lib/version.ts"],"names":[],"mappings":"AAIA,wBAAgB,iBAAiB,IAAI,MAAM,CAS1C"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"webhook.d.ts","sourceRoot":"","sources":["../../src/lib/webhook.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAMD,wBAAsB,eAAe,CACnC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE;IACJ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,GACA,OAAO,CAAC,IAAI,CAAC,CAkDf;AAED,eAAO,MAAM,cAAc,iJAQjB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"daytona.d.ts","sourceRoot":"","sources":["../../src/providers/daytona.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,WAAW,EACZ,MAAM,YAAY,CAAC;AAIpB,qBAAa,eAAgB,YAAW,eAAe;IACrD,QAAQ,CAAC,IAAI,aAAa;IAC1B,OAAO,CAAC,MAAM,CAAU;gBAEZ,MAAM,EAAE,MAAM;IAMpB,MAAM,CAAC,IAAI,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,eAAe,CAAC;YA0BlD,WAAW;IAgBnB,IAAI,CACR,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,WAAW,GACjB,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC;IAgG7B,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAa1D,SAAS,CACb,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC;IAYV,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAkB/D,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAatC,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAaxC,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIpF,KAAK,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxC,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzC,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAcvE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"e2b.d.ts","sourceRoot":"","sources":["../../src/providers/e2b.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,WAAW,EACZ,MAAM,YAAY,CAAC;AAIpB,qBAAa,WAAY,YAAW,eAAe;IACjD,QAAQ,CAAC,IAAI,SAAS;IACtB,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,MAAM;IAIpB,MAAM,CAAC,IAAI,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,eAAe,CAAC;YAwBlD,WAAW;IAkBnB,IAAI,CACR,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,WAAW,GACjB,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC;IA2D7B,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAgC5I,SAAS,CACb,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC;IAYV,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IA+B9G,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAatC,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxC,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUvC,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASxC,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUlF,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAWvE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAG7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAIlD,wBAAsB,WAAW,CAC/B,IAAI,EAAE,mBAAmB,EACzB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,eAAe,CAAC,CAqC1B;AAED,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"modal.d.ts","sourceRoot":"","sources":["../../src/providers/modal.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,WAAW,EACZ,MAAM,YAAY,CAAC;AAKpB,qBAAa,aAAc,YAAW,eAAe;IACnD,QAAQ,CAAC,IAAI,WAAW;IACxB,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,OAAO,CAAC,CAAS;gBAEb,MAAM,CAAC,EAAE,MAAM;YAIb,YAAY;IAiBpB,MAAM,CAAC,IAAI,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,eAAe,CAAC;IAsChE,OAAO,CAAC,UAAU;IAWZ,IAAI,CACR,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,WAAW,GACjB,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC;IAmF7B,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAiB1D,SAAS,CACb,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC;IAoBV,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAmD/D,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAatC,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxC,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIpF,KAAK,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxC,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzC,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKxE;;OAEG;IACH,OAAO,CAAC,YAAY;IAuCpB;;OAEG;IACH,OAAO,CAAC,WAAW;CAGpB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/providers/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE1E,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,SAAS,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC;IAClC,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,MAAM,CAAC,IAAI,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAE3D,IAAI,CACF,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,WAAW,GACjB,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC,CAAC;IAEpC,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7I,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3E,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAE/G,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjE,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzC,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACnF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/server/serve.ts"],"names":[],"mappings":"AAuEA,wBAAsB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CA+RnE;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAO9C"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}