@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,8 @@
1
+ import type { Agent, AgentRow, RegisterAgentInput } from "../types/index";
2
+ export declare function rowToAgent(row: AgentRow): Agent;
3
+ export declare function registerAgent(input: RegisterAgentInput): Agent;
4
+ export declare function getAgent(id: string): Agent;
5
+ export declare function getAgentByName(name: string): Agent | null;
6
+ export declare function listAgents(): Agent[];
7
+ export declare function deleteAgent(id: string): void;
8
+ //# sourceMappingURL=agents.d.ts.map
@@ -0,0 +1 @@
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,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAO5C"}
@@ -0,0 +1,9 @@
1
+ import { Database } from "bun:sqlite";
2
+ export declare function getDatabase(): Database;
3
+ export declare function closeDatabase(): void;
4
+ export declare function resetDatabase(): void;
5
+ export declare function uuid(): string;
6
+ export declare function shortId(): string;
7
+ export declare function now(): string;
8
+ export declare function resolvePartialId(table: string, partialId: string): string | null;
9
+ //# sourceMappingURL=database.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/db/database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAmJtC,wBAAgB,WAAW,IAAI,QAAQ,CAYtC;AAED,wBAAgB,aAAa,IAAI,IAAI,CAKpC;AAED,wBAAgB,aAAa,IAAI,IAAI,CAKpC;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"}
@@ -0,0 +1,16 @@
1
+ import type { SandboxEvent, SandboxEventRow, EventType } from "../types/index";
2
+ export declare function rowToEvent(row: SandboxEventRow): SandboxEvent;
3
+ export declare function addEvent(input: {
4
+ sandbox_id: string;
5
+ session_id?: string;
6
+ type: EventType;
7
+ data?: string;
8
+ }): SandboxEvent;
9
+ export declare function listEvents(opts?: {
10
+ sandbox_id?: string;
11
+ session_id?: string;
12
+ type?: EventType;
13
+ limit?: number;
14
+ offset?: number;
15
+ }): SandboxEvent[];
16
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,9 @@
1
+ import type { Project, CreateProjectInput } from "../types/index";
2
+ export declare function rowToProject(row: Project): Project;
3
+ export declare function createProject(input: CreateProjectInput): Project;
4
+ export declare function getProject(id: string): Project;
5
+ export declare function getProjectByPath(path: string): Project | null;
6
+ export declare function listProjects(): Project[];
7
+ export declare function ensureProject(name: string, path: string): Project;
8
+ export declare function deleteProject(id: string): void;
9
+ //# sourceMappingURL=projects.d.ts.map
@@ -0,0 +1 @@
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,GAAG,OAAO,CAKjE;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAO9C"}
@@ -0,0 +1,12 @@
1
+ import type { Sandbox, SandboxRow, CreateSandboxInput, SandboxStatus, SandboxProviderName } from "../types/index";
2
+ export declare function rowToSandbox(row: SandboxRow): Sandbox;
3
+ export declare function createSandbox(input: CreateSandboxInput): Sandbox;
4
+ export declare function getSandbox(id: string): Sandbox;
5
+ export declare function listSandboxes(opts?: {
6
+ status?: SandboxStatus;
7
+ provider?: SandboxProviderName;
8
+ project_id?: string;
9
+ }): Sandbox[];
10
+ export declare function updateSandbox(id: string, updates: Partial<Pick<Sandbox, "status" | "provider_sandbox_id" | "name" | "image" | "timeout" | "config" | "env_vars" | "keep_alive_until">>): Sandbox;
11
+ export declare function deleteSandbox(id: string): void;
12
+ //# sourceMappingURL=sandboxes.d.ts.map
@@ -0,0 +1 @@
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,CAgBrD;AAID,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CA8BhE;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,CACrB,CACF,GACA,OAAO,CAuDT;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAO9C"}
@@ -0,0 +1,11 @@
1
+ import type { SandboxSession, SandboxSessionRow, CreateSessionInput, SessionStatus } from "../types/index";
2
+ export declare function rowToSession(row: SandboxSessionRow): SandboxSession;
3
+ export declare function createSession(input: CreateSessionInput): SandboxSession;
4
+ export declare function getSession(id: string): SandboxSession;
5
+ export declare function listSessions(opts?: {
6
+ sandbox_id?: string;
7
+ status?: SessionStatus;
8
+ }): SandboxSession[];
9
+ export declare function updateSession(id: string, updates: Partial<Pick<SandboxSession, "status" | "exit_code">>): SandboxSession;
10
+ export declare function endSession(id: string, exit_code: number, status?: SessionStatus): SandboxSession;
11
+ //# sourceMappingURL=sessions.d.ts.map
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,7 @@
1
+ import type { Webhook, WebhookRow, CreateWebhookInput } from "../types/index";
2
+ export declare function rowToWebhook(row: WebhookRow): Webhook;
3
+ export declare function createWebhook(input: CreateWebhookInput): Webhook;
4
+ export declare function getWebhook(id: string): Webhook;
5
+ export declare function listWebhooks(): Webhook[];
6
+ export declare function deleteWebhook(id: string): void;
7
+ //# sourceMappingURL=webhooks.d.ts.map
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,13 @@
1
+ export * from "./types/index.js";
2
+ export { getDatabase, closeDatabase, resetDatabase, uuid, shortId, now, resolvePartialId } from "./db/database.js";
3
+ export { createSandbox, getSandbox, listSandboxes, updateSandbox, deleteSandbox } from "./db/sandboxes.js";
4
+ export { createSession, getSession, listSessions, updateSession, endSession } from "./db/sessions.js";
5
+ export { addEvent, listEvents } from "./db/events.js";
6
+ export { registerAgent, getAgent, getAgentByName, listAgents, deleteAgent } from "./db/agents.js";
7
+ export { createProject, getProject, getProjectByPath, listProjects, ensureProject, deleteProject } from "./db/projects.js";
8
+ export { createWebhook, getWebhook, listWebhooks, deleteWebhook } from "./db/webhooks.js";
9
+ export { loadConfig, saveConfig, getDefaultProvider, getDefaultTimeout, getDefaultImage, getProviderApiKey, setConfigValue, getConfigValue } from "./lib/config.js";
10
+ export { getProvider } from "./providers/index.js";
11
+ export type { SandboxProvider, ProviderSandbox, CreateSandboxOpts, ExecOptions } from "./providers/types.js";
12
+ export { createStreamCollector, addStreamListener, emitLifecycleEvent } from "./lib/stream.js";
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
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;AAG1F,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,eAAe,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGpK,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"}