@hasna/sandboxes 0.1.0

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 (53) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +256 -0
  3. package/dist/cli/index.d.ts +3 -0
  4. package/dist/cli/index.d.ts.map +1 -0
  5. package/dist/cli/index.js +3777 -0
  6. package/dist/db/agents.d.ts +8 -0
  7. package/dist/db/agents.d.ts.map +1 -0
  8. package/dist/db/database.d.ts +9 -0
  9. package/dist/db/database.d.ts.map +1 -0
  10. package/dist/db/events.d.ts +16 -0
  11. package/dist/db/events.d.ts.map +1 -0
  12. package/dist/db/projects.d.ts +9 -0
  13. package/dist/db/projects.d.ts.map +1 -0
  14. package/dist/db/sandboxes.d.ts +12 -0
  15. package/dist/db/sandboxes.d.ts.map +1 -0
  16. package/dist/db/sessions.d.ts +11 -0
  17. package/dist/db/sessions.d.ts.map +1 -0
  18. package/dist/db/webhooks.d.ts +7 -0
  19. package/dist/db/webhooks.d.ts.map +1 -0
  20. package/dist/index.d.ts +13 -0
  21. package/dist/index.d.ts.map +1 -0
  22. package/dist/index.js +1431 -0
  23. package/dist/lib/agent-runner.d.ts +12 -0
  24. package/dist/lib/agent-runner.d.ts.map +1 -0
  25. package/dist/lib/config.d.ts +10 -0
  26. package/dist/lib/config.d.ts.map +1 -0
  27. package/dist/lib/keepalive.d.ts +5 -0
  28. package/dist/lib/keepalive.d.ts.map +1 -0
  29. package/dist/lib/stream.d.ts +13 -0
  30. package/dist/lib/stream.d.ts.map +1 -0
  31. package/dist/lib/webhook.d.ts +14 -0
  32. package/dist/lib/webhook.d.ts.map +1 -0
  33. package/dist/mcp/index.d.ts +3 -0
  34. package/dist/mcp/index.d.ts.map +1 -0
  35. package/dist/mcp/index.js +5546 -0
  36. package/dist/providers/daytona.d.ts +17 -0
  37. package/dist/providers/daytona.d.ts.map +1 -0
  38. package/dist/providers/e2b.d.ts +17 -0
  39. package/dist/providers/e2b.d.ts.map +1 -0
  40. package/dist/providers/index.d.ts +5 -0
  41. package/dist/providers/index.d.ts.map +1 -0
  42. package/dist/providers/modal.d.ts +25 -0
  43. package/dist/providers/modal.d.ts.map +1 -0
  44. package/dist/providers/types.d.ts +30 -0
  45. package/dist/providers/types.d.ts.map +1 -0
  46. package/dist/server/index.d.ts +3 -0
  47. package/dist/server/index.d.ts.map +1 -0
  48. package/dist/server/index.js +1552 -0
  49. package/dist/server/serve.d.ts +2 -0
  50. package/dist/server/serve.d.ts.map +1 -0
  51. package/dist/types/index.d.ts +199 -0
  52. package/dist/types/index.d.ts.map +1 -0
  53. package/package.json +78 -0
@@ -0,0 +1,2 @@
1
+ export declare function startServer(port: number): void;
2
+ //# sourceMappingURL=serve.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/server/serve.ts"],"names":[],"mappings":"AAyVA,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAO9C"}
@@ -0,0 +1,199 @@
1
+ export declare const SANDBOX_PROVIDERS: readonly ["e2b", "daytona", "modal"];
2
+ export type SandboxProviderName = (typeof SANDBOX_PROVIDERS)[number];
3
+ export declare const SANDBOX_STATUSES: readonly ["creating", "running", "paused", "stopped", "deleted", "error"];
4
+ export type SandboxStatus = (typeof SANDBOX_STATUSES)[number];
5
+ export declare const SESSION_STATUSES: readonly ["running", "completed", "failed", "killed"];
6
+ export type SessionStatus = (typeof SESSION_STATUSES)[number];
7
+ export declare const AGENT_TYPES: readonly ["claude", "codex", "gemini", "custom"];
8
+ export type AgentType = (typeof AGENT_TYPES)[number];
9
+ export declare const EVENT_TYPES: readonly ["stdout", "stderr", "lifecycle", "agent"];
10
+ export type EventType = (typeof EVENT_TYPES)[number];
11
+ export interface Sandbox {
12
+ id: string;
13
+ provider: SandboxProviderName;
14
+ provider_sandbox_id: string | null;
15
+ name: string | null;
16
+ status: SandboxStatus;
17
+ image: string | null;
18
+ timeout: number;
19
+ config: Record<string, unknown>;
20
+ env_vars: Record<string, string>;
21
+ keep_alive_until: string | null;
22
+ project_id: string | null;
23
+ created_at: string;
24
+ updated_at: string;
25
+ }
26
+ export interface SandboxRow {
27
+ id: string;
28
+ provider: string;
29
+ provider_sandbox_id: string | null;
30
+ name: string | null;
31
+ status: string;
32
+ image: string | null;
33
+ timeout: number;
34
+ config: string;
35
+ env_vars: string;
36
+ keep_alive_until: string | null;
37
+ project_id: string | null;
38
+ created_at: string;
39
+ updated_at: string;
40
+ }
41
+ export interface CreateSandboxInput {
42
+ provider?: SandboxProviderName;
43
+ name?: string;
44
+ image?: string;
45
+ timeout?: number;
46
+ env_vars?: Record<string, string>;
47
+ config?: Record<string, unknown>;
48
+ project_id?: string;
49
+ }
50
+ export interface SandboxSession {
51
+ id: string;
52
+ sandbox_id: string;
53
+ agent_name: string | null;
54
+ agent_type: AgentType | null;
55
+ command: string | null;
56
+ status: SessionStatus;
57
+ exit_code: number | null;
58
+ started_at: string;
59
+ ended_at: string | null;
60
+ }
61
+ export interface SandboxSessionRow {
62
+ id: string;
63
+ sandbox_id: string;
64
+ agent_name: string | null;
65
+ agent_type: string | null;
66
+ command: string | null;
67
+ status: string;
68
+ exit_code: number | null;
69
+ started_at: string;
70
+ ended_at: string | null;
71
+ }
72
+ export interface CreateSessionInput {
73
+ sandbox_id: string;
74
+ agent_name?: string;
75
+ agent_type?: AgentType;
76
+ command?: string;
77
+ }
78
+ export interface SandboxEvent {
79
+ id: string;
80
+ sandbox_id: string;
81
+ session_id: string | null;
82
+ type: EventType;
83
+ data: string | null;
84
+ created_at: string;
85
+ }
86
+ export interface SandboxEventRow {
87
+ id: string;
88
+ sandbox_id: string;
89
+ session_id: string | null;
90
+ type: string;
91
+ data: string | null;
92
+ created_at: string;
93
+ }
94
+ export interface Agent {
95
+ id: string;
96
+ name: string;
97
+ description: string | null;
98
+ metadata: Record<string, unknown>;
99
+ created_at: string;
100
+ last_seen_at: string;
101
+ }
102
+ export interface AgentRow {
103
+ id: string;
104
+ name: string;
105
+ description: string | null;
106
+ metadata: string;
107
+ created_at: string;
108
+ last_seen_at: string;
109
+ }
110
+ export interface RegisterAgentInput {
111
+ name: string;
112
+ description?: string;
113
+ }
114
+ export interface Project {
115
+ id: string;
116
+ name: string;
117
+ path: string;
118
+ description: string | null;
119
+ created_at: string;
120
+ updated_at: string;
121
+ }
122
+ export interface CreateProjectInput {
123
+ name: string;
124
+ path: string;
125
+ description?: string;
126
+ }
127
+ export interface Webhook {
128
+ id: string;
129
+ url: string;
130
+ events: string[];
131
+ secret: string | null;
132
+ active: boolean;
133
+ created_at: string;
134
+ }
135
+ export interface WebhookRow {
136
+ id: string;
137
+ url: string;
138
+ events: string;
139
+ secret: string | null;
140
+ active: number;
141
+ created_at: string;
142
+ }
143
+ export interface CreateWebhookInput {
144
+ url: string;
145
+ events?: string[];
146
+ secret?: string;
147
+ }
148
+ export interface ExecResult {
149
+ exit_code: number;
150
+ stdout: string;
151
+ stderr: string;
152
+ }
153
+ export interface ExecHandle {
154
+ kill: () => Promise<void>;
155
+ wait: () => Promise<ExecResult>;
156
+ }
157
+ export interface FileInfo {
158
+ path: string;
159
+ name: string;
160
+ is_dir: boolean;
161
+ size: number;
162
+ }
163
+ export interface SandboxesConfig {
164
+ default_provider?: SandboxProviderName;
165
+ default_image?: string;
166
+ default_timeout?: number;
167
+ providers?: {
168
+ e2b?: {
169
+ api_key?: string;
170
+ };
171
+ daytona?: {
172
+ api_key?: string;
173
+ target?: string;
174
+ };
175
+ modal?: {
176
+ api_key?: string;
177
+ };
178
+ };
179
+ }
180
+ export declare class SandboxNotFoundError extends Error {
181
+ constructor(id: string);
182
+ }
183
+ export declare class SessionNotFoundError extends Error {
184
+ constructor(id: string);
185
+ }
186
+ export declare class ProviderError extends Error {
187
+ provider: string;
188
+ constructor(provider: string, message: string);
189
+ }
190
+ export declare class AgentNotFoundError extends Error {
191
+ constructor(id: string);
192
+ }
193
+ export declare class ProjectNotFoundError extends Error {
194
+ constructor(id: string);
195
+ }
196
+ export declare class WebhookNotFoundError extends Error {
197
+ constructor(id: string);
198
+ }
199
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,78 @@
1
+ {
2
+ "name": "@hasna/sandboxes",
3
+ "version": "0.1.0",
4
+ "description": "Universal cloud sandbox manager for AI coding agents - supports e2b, Daytona, Modal",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "bin": {
9
+ "sandboxes": "dist/cli/index.js",
10
+ "sandboxes-mcp": "dist/mcp/index.js",
11
+ "sandboxes-serve": "dist/server/index.js"
12
+ },
13
+ "exports": {
14
+ ".": {
15
+ "types": "./dist/index.d.ts",
16
+ "import": "./dist/index.js"
17
+ }
18
+ },
19
+ "files": [
20
+ "dist",
21
+ "LICENSE",
22
+ "README.md"
23
+ ],
24
+ "scripts": {
25
+ "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",
26
+ "typecheck": "tsc --noEmit",
27
+ "test": "bun test",
28
+ "dev:cli": "bun run src/cli/index.tsx",
29
+ "dev:mcp": "bun run src/mcp/index.ts",
30
+ "dev:serve": "bun run src/server/index.ts"
31
+ },
32
+ "keywords": [
33
+ "sandbox",
34
+ "cloud",
35
+ "e2b",
36
+ "daytona",
37
+ "modal",
38
+ "mcp",
39
+ "ai",
40
+ "coding-agent",
41
+ "claude",
42
+ "codex",
43
+ "gemini",
44
+ "cli"
45
+ ],
46
+ "publishConfig": {
47
+ "access": "public"
48
+ },
49
+ "repository": {
50
+ "type": "git",
51
+ "url": "https://github.com/hasna/sandboxes.git"
52
+ },
53
+ "homepage": "https://github.com/hasna/sandboxes",
54
+ "bugs": {
55
+ "url": "https://github.com/hasna/sandboxes/issues"
56
+ },
57
+ "engines": {
58
+ "bun": ">=1.0.0"
59
+ },
60
+ "author": "Andrei Hasna <andrei@hasna.com>",
61
+ "license": "Apache-2.0",
62
+ "dependencies": {
63
+ "@daytonaio/sdk": "^0.18.0",
64
+ "@e2b/code-interpreter": "^1.5.0",
65
+ "@modelcontextprotocol/sdk": "^1.12.1",
66
+ "chalk": "^5.4.1",
67
+ "commander": "^13.1.0",
68
+ "ink": "^5.2.0",
69
+ "modal": "^0.2.0",
70
+ "react": "^18.3.1",
71
+ "zod": "^3.24.2"
72
+ },
73
+ "devDependencies": {
74
+ "@types/bun": "^1.2.4",
75
+ "@types/react": "^18.3.18",
76
+ "typescript": "^5.7.3"
77
+ }
78
+ }