agentbox-sdk 0.0.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,387 @@
1
+ import { AgentProvider } from './enums.js';
2
+ import { S as Sandbox } from './Sandbox-BQX-sWzs.js';
3
+
4
+ interface RawAgentEvent<TPayload = unknown> {
5
+ provider: string;
6
+ runId: string;
7
+ type: string;
8
+ timestamp: string;
9
+ payload: TPayload;
10
+ }
11
+
12
+ type NormalizedAgentEventType = "run.started" | "message.started" | "message.injected" | "text.delta" | "reasoning.delta" | "tool.call.started" | "tool.call.delta" | "tool.call.completed" | "permission.requested" | "permission.resolved" | "message.completed" | "run.completed" | "run.error";
13
+ interface NormalizedAgentEventBase {
14
+ provider: string;
15
+ runId: string;
16
+ type: NormalizedAgentEventType;
17
+ timestamp: string;
18
+ raw?: RawAgentEvent;
19
+ meta?: Record<string, unknown>;
20
+ }
21
+ interface RunStartedEvent extends NormalizedAgentEventBase {
22
+ type: "run.started";
23
+ }
24
+ interface MessageStartedEvent extends NormalizedAgentEventBase {
25
+ type: "message.started";
26
+ }
27
+ interface MessageInjectedEvent extends NormalizedAgentEventBase {
28
+ type: "message.injected";
29
+ content: string;
30
+ }
31
+ interface TextDeltaEvent extends NormalizedAgentEventBase {
32
+ type: "text.delta";
33
+ delta: string;
34
+ }
35
+ interface ReasoningDeltaEvent extends NormalizedAgentEventBase {
36
+ type: "reasoning.delta";
37
+ delta: string;
38
+ }
39
+ interface ToolCallStartedEvent extends NormalizedAgentEventBase {
40
+ type: "tool.call.started";
41
+ toolName: string;
42
+ callId?: string;
43
+ input?: unknown;
44
+ }
45
+ interface ToolCallDeltaEvent extends NormalizedAgentEventBase {
46
+ type: "tool.call.delta";
47
+ toolName?: string;
48
+ callId?: string;
49
+ delta: string;
50
+ }
51
+ interface ToolCallCompletedEvent extends NormalizedAgentEventBase {
52
+ type: "tool.call.completed";
53
+ toolName?: string;
54
+ callId?: string;
55
+ output?: unknown;
56
+ }
57
+ interface PermissionRequestedEvent extends NormalizedAgentEventBase {
58
+ type: "permission.requested";
59
+ requestId: string;
60
+ kind: AgentPermissionKind;
61
+ title?: string;
62
+ message?: string;
63
+ input?: unknown;
64
+ canRemember?: boolean;
65
+ }
66
+ interface PermissionResolvedEvent extends NormalizedAgentEventBase {
67
+ type: "permission.resolved";
68
+ requestId: string;
69
+ decision: AgentPermissionDecision;
70
+ remember?: boolean;
71
+ }
72
+ interface MessageCompletedEvent extends NormalizedAgentEventBase {
73
+ type: "message.completed";
74
+ text?: string;
75
+ }
76
+ interface RunCompletedEvent extends NormalizedAgentEventBase {
77
+ type: "run.completed";
78
+ text?: string;
79
+ }
80
+ interface RunErrorEvent extends NormalizedAgentEventBase {
81
+ type: "run.error";
82
+ error: string;
83
+ }
84
+ type NormalizedAgentEvent = RunStartedEvent | MessageStartedEvent | MessageInjectedEvent | TextDeltaEvent | ReasoningDeltaEvent | ToolCallStartedEvent | ToolCallDeltaEvent | ToolCallCompletedEvent | PermissionRequestedEvent | PermissionResolvedEvent | MessageCompletedEvent | RunCompletedEvent | RunErrorEvent;
85
+ declare function createNormalizedEvent<TType extends NormalizedAgentEventType>(type: TType, base: Omit<NormalizedAgentEventBase, "type" | "timestamp"> & {
86
+ timestamp?: string;
87
+ }, extra?: Record<string, unknown>): NormalizedAgentEvent;
88
+ declare function normalizeRawAgentEvent(event: RawAgentEvent): NormalizedAgentEvent[];
89
+
90
+ type AISDKEvent = {
91
+ type: "response-start";
92
+ id: string;
93
+ provider: string;
94
+ } | {
95
+ type: "message-injected";
96
+ id: string;
97
+ provider: string;
98
+ content: string;
99
+ } | {
100
+ type: "text-delta";
101
+ id: string;
102
+ provider: string;
103
+ textDelta: string;
104
+ } | {
105
+ type: "reasoning-delta";
106
+ id: string;
107
+ provider: string;
108
+ textDelta: string;
109
+ } | {
110
+ type: "tool-input-start";
111
+ id: string;
112
+ provider: string;
113
+ toolName: string;
114
+ callId?: string;
115
+ } | {
116
+ type: "tool-input-delta";
117
+ id: string;
118
+ provider: string;
119
+ toolName?: string;
120
+ callId?: string;
121
+ inputTextDelta: string;
122
+ } | {
123
+ type: "tool-output-available";
124
+ id: string;
125
+ provider: string;
126
+ toolName?: string;
127
+ callId?: string;
128
+ output?: unknown;
129
+ } | {
130
+ type: "permission-requested";
131
+ id: string;
132
+ provider: string;
133
+ requestId: string;
134
+ kind: AgentPermissionKind;
135
+ title?: string;
136
+ message?: string;
137
+ input?: unknown;
138
+ canRemember?: boolean;
139
+ } | {
140
+ type: "permission-resolved";
141
+ id: string;
142
+ provider: string;
143
+ requestId: string;
144
+ decision: AgentPermissionDecision;
145
+ remember?: boolean;
146
+ } | {
147
+ type: "response-finish";
148
+ id: string;
149
+ provider: string;
150
+ text?: string;
151
+ } | {
152
+ type: "response-error";
153
+ id: string;
154
+ provider: string;
155
+ error: string;
156
+ };
157
+ declare function toAISDKEvent(event: NormalizedAgentEvent): AISDKEvent | null;
158
+ declare function toAISDKStream(events: AsyncIterable<NormalizedAgentEvent>): AsyncIterable<AISDKEvent>;
159
+
160
+ type AgentRemoteMcpConfig = {
161
+ name: string;
162
+ type: "remote";
163
+ url: string;
164
+ enabled?: boolean;
165
+ bearerTokenEnvVar?: string;
166
+ headers?: Record<string, string>;
167
+ };
168
+ type AgentLocalMcpConfig = {
169
+ name: string;
170
+ type: "local";
171
+ enabled?: boolean;
172
+ command: string;
173
+ args?: string[];
174
+ env?: Record<string, string>;
175
+ };
176
+ type AgentMcpConfig = AgentRemoteMcpConfig | AgentLocalMcpConfig;
177
+ type RepoSkillConfig = {
178
+ name: string;
179
+ repo?: string;
180
+ };
181
+ type EmbeddedSkillConfig = {
182
+ source: "embedded";
183
+ name: string;
184
+ files: Record<string, string>;
185
+ };
186
+ type AgentSkillConfig = RepoSkillConfig | EmbeddedSkillConfig;
187
+ interface AgentSubAgentConfig {
188
+ name: string;
189
+ description: string;
190
+ instructions: string;
191
+ tools?: string[];
192
+ model?: string;
193
+ }
194
+ type ClaudeCodeHookEvent = "SessionStart" | "SessionEnd" | "UserPromptSubmit" | "PreToolUse" | "PermissionRequest" | "PermissionDenied" | "PostToolUse" | "PostToolUseFailure" | "Notification" | "SubagentStart" | "SubagentStop" | "Stop" | "StopFailure" | "TeammateIdle" | "FileChanged" | "WorktreeCreate" | "WorktreeRemove" | "PreCompact" | "PostCompact" | "CwdChanged" | "TaskCreated" | "TaskCompleted";
195
+ interface ClaudeCodeHookBase {
196
+ if?: string;
197
+ timeout?: number;
198
+ statusMessage?: string;
199
+ once?: boolean;
200
+ }
201
+ interface ClaudeCodeCommandHook extends ClaudeCodeHookBase {
202
+ type: "command";
203
+ command: string;
204
+ async?: boolean;
205
+ shell?: "bash" | "powershell";
206
+ }
207
+ interface ClaudeCodeHttpHook extends ClaudeCodeHookBase {
208
+ type: "http";
209
+ url: string;
210
+ headers?: Record<string, string>;
211
+ allowedEnvVars?: string[];
212
+ }
213
+ interface ClaudeCodePromptHook extends ClaudeCodeHookBase {
214
+ type: "prompt";
215
+ prompt: string;
216
+ model?: string;
217
+ }
218
+ interface ClaudeCodeAgentHook extends ClaudeCodeHookBase {
219
+ type: "agent";
220
+ prompt: string;
221
+ model?: string;
222
+ }
223
+ type ClaudeCodeHookHandler = ClaudeCodeCommandHook | ClaudeCodeHttpHook | ClaudeCodePromptHook | ClaudeCodeAgentHook;
224
+ interface ClaudeCodeHookMatcherGroup {
225
+ matcher?: string;
226
+ hooks: ClaudeCodeHookHandler[];
227
+ }
228
+ type ClaudeCodeHooksConfig = Partial<Record<ClaudeCodeHookEvent, ClaudeCodeHookMatcherGroup[]>>;
229
+ type ClaudeCodeHookConfig = ClaudeCodeHooksConfig;
230
+ type CodexHookEvent = "SessionStart" | "PreToolUse" | "PostToolUse" | "UserPromptSubmit" | "Stop";
231
+ interface CodexCommandHook {
232
+ type: "command";
233
+ command: string;
234
+ timeout?: number;
235
+ timeoutSec?: number;
236
+ statusMessage?: string;
237
+ }
238
+ interface CodexHookMatcherGroup {
239
+ matcher?: string;
240
+ hooks: CodexCommandHook[];
241
+ }
242
+ type CodexHooksConfig = Partial<Record<CodexHookEvent, CodexHookMatcherGroup[]>>;
243
+ type OpenCodePluginEvent = "command.executed" | "file.edited" | "file.watcher.updated" | "installation.updated" | "lsp.client.diagnostics" | "lsp.updated" | "message.part.removed" | "message.part.updated" | "message.removed" | "message.updated" | "permission.asked" | "permission.replied" | "server.connected" | "session.created" | "session.compacted" | "session.deleted" | "session.diff" | "session.error" | "session.idle" | "session.status" | "session.updated" | "todo.updated" | "shell.env" | "tool.execute.after" | "tool.execute.before" | "tui.prompt.append" | "tui.command.execute" | "tui.toast.show" | "experimental.session.compacting";
244
+ interface OpenCodePluginHookConfig {
245
+ event: OpenCodePluginEvent;
246
+ body: string;
247
+ }
248
+ interface OpenCodePluginConfig {
249
+ name: string;
250
+ hooks: OpenCodePluginHookConfig[];
251
+ preamble?: string;
252
+ setup?: string;
253
+ fileExtension?: "js" | "ts";
254
+ }
255
+ interface AgentCommandConfig {
256
+ name: string;
257
+ template: string;
258
+ description?: string;
259
+ agent?: string;
260
+ model?: string;
261
+ subtask?: boolean;
262
+ }
263
+
264
+ type AgentProviderName = AgentProvider;
265
+ type DataContent = string | URL | Uint8Array | ArrayBuffer | Buffer;
266
+ interface TextPart {
267
+ type: "text";
268
+ text: string;
269
+ }
270
+ interface ImagePart {
271
+ type: "image";
272
+ image: DataContent;
273
+ mediaType?: string;
274
+ }
275
+ interface FilePart {
276
+ type: "file";
277
+ data: DataContent;
278
+ mediaType: string;
279
+ filename?: string;
280
+ }
281
+ type UserContentPart = TextPart | ImagePart | FilePart;
282
+ type UserContent = string | UserContentPart[];
283
+ interface AgentRunConfig {
284
+ input: UserContent;
285
+ model?: string;
286
+ systemPrompt?: string;
287
+ resumeSessionId?: string;
288
+ }
289
+ type AgentApprovalMode = "auto" | "interactive";
290
+ type AgentPermissionKind = "bash" | "edit" | "tool" | "network" | "file-change" | "unknown";
291
+ type AgentPermissionDecision = "allow" | "deny";
292
+ interface AgentPermissionResponse {
293
+ requestId: string;
294
+ decision: AgentPermissionDecision;
295
+ remember?: boolean;
296
+ }
297
+ interface AgentOptionsBase {
298
+ sandbox?: Sandbox;
299
+ cwd?: string;
300
+ env?: Record<string, string>;
301
+ approvalMode?: AgentApprovalMode;
302
+ mcps?: AgentMcpConfig[];
303
+ skills?: AgentSkillConfig[];
304
+ subAgents?: AgentSubAgentConfig[];
305
+ commands?: AgentCommandConfig[];
306
+ }
307
+ interface CodexProviderOptions {
308
+ binary?: string;
309
+ env?: Record<string, string>;
310
+ brokerEndpoint?: string;
311
+ useBroker?: boolean;
312
+ hooks?: CodexHooksConfig;
313
+ }
314
+ interface OpenCodeProviderOptions {
315
+ binary?: string;
316
+ args?: string[];
317
+ plugins?: OpenCodePluginConfig[];
318
+ }
319
+ interface ClaudeCodeProviderOptions {
320
+ binary?: string;
321
+ args?: string[];
322
+ hooks?: ClaudeCodeHooksConfig;
323
+ permissionMode?: string;
324
+ allowedTools?: string[];
325
+ autoApproveTools?: boolean;
326
+ verbose?: boolean;
327
+ }
328
+ interface CodexAgentOptions extends AgentOptionsBase {
329
+ provider?: CodexProviderOptions;
330
+ }
331
+ interface OpenCodeAgentOptions extends AgentOptionsBase {
332
+ provider?: OpenCodeProviderOptions;
333
+ }
334
+ interface ClaudeCodeAgentOptions extends AgentOptionsBase {
335
+ provider?: ClaudeCodeProviderOptions;
336
+ }
337
+ type AgentOptionsMap = {
338
+ codex: CodexAgentOptions;
339
+ opencode: OpenCodeAgentOptions;
340
+ "claude-code": ClaudeCodeAgentOptions;
341
+ };
342
+ type AgentOptions<P extends AgentProviderName = AgentProviderName> = AgentOptionsMap[P];
343
+ interface AgentResult {
344
+ id: string;
345
+ provider: AgentProviderName;
346
+ sessionId: string;
347
+ text: string;
348
+ rawEvents: RawAgentEvent[];
349
+ events: NormalizedAgentEvent[];
350
+ }
351
+ interface AgentRun extends AsyncIterable<NormalizedAgentEvent> {
352
+ id: string;
353
+ provider: AgentProviderName;
354
+ sessionId?: string;
355
+ readonly sessionIdReady: Promise<string>;
356
+ raw?: unknown;
357
+ rawEvents(): AsyncIterable<RawAgentEvent>;
358
+ toAISDKEvents(): AsyncIterable<AISDKEvent>;
359
+ respondToPermission(response: AgentPermissionResponse): Promise<void>;
360
+ sendMessage(content: UserContent): Promise<void>;
361
+ abort(): Promise<void>;
362
+ readonly finished: Promise<AgentResult>;
363
+ }
364
+ interface AgentRunSink {
365
+ setRaw(raw: unknown): void;
366
+ setAbort(abort: () => Promise<void>): void;
367
+ setSessionId(sessionId: string): void;
368
+ emitRaw(event: RawAgentEvent): void;
369
+ emitEvent(event: NormalizedAgentEvent): void;
370
+ requestPermission(event: PermissionRequestedEvent): Promise<AgentPermissionResponse>;
371
+ onMessage(handler: (content: UserContent) => Promise<void>): void;
372
+ complete(result?: {
373
+ text?: string;
374
+ }): void;
375
+ fail(error: unknown): void;
376
+ }
377
+ interface AgentExecutionRequest<P extends AgentProviderName = AgentProviderName> {
378
+ runId: string;
379
+ provider: P;
380
+ options: AgentOptions<P>;
381
+ run: AgentRunConfig;
382
+ }
383
+ interface AgentProviderAdapter<P extends AgentProviderName = AgentProviderName> {
384
+ execute(request: AgentExecutionRequest<P>, sink: AgentRunSink): Promise<() => Promise<void> | void>;
385
+ }
386
+
387
+ export { type RepoSkillConfig as $, type AISDKEvent as A, type CodexAgentOptions as B, type ClaudeCodeAgentOptions as C, type CodexCommandHook as D, type CodexHookEvent as E, type CodexHookMatcherGroup as F, type CodexHooksConfig as G, type CodexProviderOptions as H, type DataContent as I, type EmbeddedSkillConfig as J, type FilePart as K, type ImagePart as L, type MessageCompletedEvent as M, type MessageInjectedEvent as N, type MessageStartedEvent as O, type NormalizedAgentEvent as P, type NormalizedAgentEventBase as Q, type NormalizedAgentEventType as R, type OpenCodeAgentOptions as S, type OpenCodePluginConfig as T, type OpenCodePluginEvent as U, type OpenCodePluginHookConfig as V, type OpenCodeProviderOptions as W, type PermissionRequestedEvent as X, type PermissionResolvedEvent as Y, type RawAgentEvent as Z, type ReasoningDeltaEvent as _, type AgentApprovalMode as a, type RunCompletedEvent as a0, type RunErrorEvent as a1, type RunStartedEvent as a2, type TextDeltaEvent as a3, type TextPart as a4, type ToolCallCompletedEvent as a5, type ToolCallDeltaEvent as a6, type ToolCallStartedEvent as a7, type UserContent as a8, type UserContentPart as a9, createNormalizedEvent as aa, normalizeRawAgentEvent as ab, toAISDKEvent as ac, toAISDKStream as ad, type AgentCommandConfig as b, type AgentExecutionRequest as c, type AgentLocalMcpConfig as d, type AgentMcpConfig as e, type AgentOptions as f, type AgentOptionsBase as g, type AgentOptionsMap as h, type AgentPermissionDecision as i, type AgentPermissionKind as j, type AgentPermissionResponse as k, type AgentProviderAdapter as l, type AgentProviderName as m, type AgentRemoteMcpConfig as n, type AgentResult as o, type AgentRun as p, type AgentRunConfig as q, type AgentRunSink as r, type AgentSkillConfig as s, type AgentSubAgentConfig as t, type ClaudeCodeHookConfig as u, type ClaudeCodeHookEvent as v, type ClaudeCodeHookHandler as w, type ClaudeCodeHookMatcherGroup as x, type ClaudeCodeHooksConfig as y, type ClaudeCodeProviderOptions as z };
@@ -0,0 +1,55 @@
1
+ const aptPackages = [
2
+ "ca-certificates",
3
+ "curl",
4
+ "chromium",
5
+ "git",
6
+ "python3",
7
+ "python3-pip",
8
+ "unzip",
9
+ "xdg-utils",
10
+ "libnss3",
11
+ "libgbm1",
12
+ "libxss1",
13
+ "libxshmfence1",
14
+ "libatk1.0-0",
15
+ "libatk-bridge2.0-0",
16
+ "libcups2",
17
+ "libdrm2",
18
+ "libxkbcommon0",
19
+ "libxcomposite1",
20
+ "libxdamage1",
21
+ "libxfixes3",
22
+ "libxrandr2",
23
+ "libpango-1.0-0",
24
+ "libcairo2",
25
+ "libasound2",
26
+ "fonts-liberation",
27
+ "fonts-freefont-ttf",
28
+ "libfreetype6",
29
+ "libharfbuzz0b",
30
+ ];
31
+
32
+ export default {
33
+ name: "browser-agent",
34
+ base: "node:20-bookworm",
35
+ env: {
36
+ DEBIAN_FRONTEND: "noninteractive",
37
+ CHROME_BIN: "/usr/bin/chromium",
38
+ PUPPETEER_EXECUTABLE_PATH: "/usr/bin/chromium",
39
+ PUPPETEER_SKIP_DOWNLOAD: "true",
40
+ AGENT_BROWSER_EXECUTABLE_PATH: "/usr/bin/chromium",
41
+ AGENT_BROWSER_ARGS: "--no-sandbox",
42
+ },
43
+ run: [
44
+ `apt-get update && apt-get install -y --no-install-recommends ${aptPackages.join(" ")} && rm -rf /var/lib/apt/lists/*`,
45
+ "npm cache clean --force",
46
+ "npm install -g pnpm @anthropic-ai/claude-code @openai/codex opencode-ai agent-browser",
47
+ "agent-browser set viewport 1980 1080",
48
+ ],
49
+ workdir: "/workspace",
50
+ cmd: ["sleep", "infinity"],
51
+ resources: {
52
+ cpu: 4,
53
+ memoryMiB: 8192,
54
+ },
55
+ };
@@ -0,0 +1,29 @@
1
+ import browserAgent from "./browser-agent.mjs";
2
+
3
+ const aptPackages = [
4
+ "xvfb",
5
+ "xauth",
6
+ "openbox",
7
+ "xdotool",
8
+ "scrot",
9
+ "imagemagick",
10
+ "ffmpeg",
11
+ "x11-utils",
12
+ "dbus-x11",
13
+ ];
14
+
15
+ export default {
16
+ ...browserAgent,
17
+ name: "computer-use",
18
+ env: {
19
+ ...browserAgent.env,
20
+ DISPLAY: ":1",
21
+ DISPLAY_NUM: "1",
22
+ WIDTH: "1980",
23
+ HEIGHT: "1080",
24
+ },
25
+ run: [
26
+ ...browserAgent.run,
27
+ `apt-get update && apt-get install -y --no-install-recommends ${aptPackages.join(" ")} && rm -rf /var/lib/apt/lists/*`,
28
+ ],
29
+ };
package/package.json CHANGED
@@ -1,7 +1,100 @@
1
1
  {
2
2
  "name": "agentbox-sdk",
3
- "version": "0.0.0",
4
- "description": "AgentBox SDK by Twill AI",
5
- "main": "index.js",
6
- "license": "MIT"
3
+ "version": "0.1.1",
4
+ "description": "Swappable coding agents and sandbox providers for Bun and TypeScript.",
5
+ "license": "MIT",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "https://github.com/TwillAI/agentbox-sdk.git"
9
+ },
10
+ "type": "module",
11
+ "sideEffects": false,
12
+ "files": [
13
+ "dist",
14
+ "README.md",
15
+ "images"
16
+ ],
17
+ "bin": {
18
+ "agentbox": "./dist/cli.js"
19
+ },
20
+ "exports": {
21
+ ".": {
22
+ "types": "./dist/index.d.ts",
23
+ "import": "./dist/index.js"
24
+ },
25
+ "./agents": {
26
+ "types": "./dist/agents/index.d.ts",
27
+ "import": "./dist/agents/index.js"
28
+ },
29
+ "./sandboxes": {
30
+ "types": "./dist/sandboxes/index.d.ts",
31
+ "import": "./dist/sandboxes/index.js"
32
+ },
33
+ "./events": {
34
+ "types": "./dist/events/index.d.ts",
35
+ "import": "./dist/events/index.js"
36
+ },
37
+ "./enums": {
38
+ "types": "./dist/enums.d.ts",
39
+ "import": "./dist/enums.js"
40
+ }
41
+ },
42
+ "scripts": {
43
+ "dev": "tsup src/index.ts src/enums.ts src/agents/index.ts src/sandboxes/index.ts src/events/index.ts src/cli.ts --format esm --dts --clean --watch",
44
+ "build": "tsup src/index.ts src/enums.ts src/agents/index.ts src/sandboxes/index.ts src/events/index.ts src/cli.ts --format esm --dts --clean",
45
+ "typecheck": "tsc --noEmit",
46
+ "lint": "eslint . --max-warnings=0",
47
+ "lint:fix": "eslint . --fix",
48
+ "test": "vitest run",
49
+ "test:e2e:matrix": "vitest run test/live-matrix.e2e.test.ts",
50
+ "test:smoke": "vitest run test/smoke.test.ts",
51
+ "test:watch": "vitest",
52
+ "check": "npm run typecheck && npm run lint && npm run test",
53
+ "hooks:install": "lefthook install",
54
+ "prepare": "if [ -d .git ]; then lefthook install; else echo 'Skipping lefthook install (no .git directory)'; fi"
55
+ },
56
+ "engines": {
57
+ "node": ">=20.0.0",
58
+ "bun": ">=1.1.0"
59
+ },
60
+ "dependencies": {
61
+ "@daytonaio/sdk": "^0.161.0",
62
+ "@vercel/sandbox": "2.0.0-beta.13",
63
+ "dockerode": "^4.0.10",
64
+ "e2b": "^2.19.0",
65
+ "eventsource-parser": "^3.0.6",
66
+ "modal": "^0.7.4",
67
+ "tar-stream": "^3.1.8",
68
+ "ws": "^8.20.0"
69
+ },
70
+ "devDependencies": {
71
+ "@eslint/js": "^10.0.1",
72
+ "@types/dockerode": "^3.3.42",
73
+ "@types/node": "^25.5.2",
74
+ "@types/tar-stream": "^3.1.4",
75
+ "@types/ws": "^8.18.1",
76
+ "eslint": "^10.2.0",
77
+ "globals": "^17.4.0",
78
+ "lefthook": "^2.1.5",
79
+ "tsup": "^8.5.1",
80
+ "tsx": "^4.20.6",
81
+ "typescript": "^5.9.3",
82
+ "typescript-eslint": "^8.58.0",
83
+ "vitest": "^3.1.2"
84
+ },
85
+ "keywords": [
86
+ "agentbox",
87
+ "agents",
88
+ "codex",
89
+ "claude-code",
90
+ "opencode",
91
+ "sandbox",
92
+ "e2b",
93
+ "modal",
94
+ "daytona",
95
+ "docker",
96
+ "vercel",
97
+ "typescript",
98
+ "bun"
99
+ ]
7
100
  }
package/index.js DELETED
@@ -1 +0,0 @@
1
- // placeholder