@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,17 @@
1
+ import type { ExecResult, ExecHandle, FileInfo } from "../types/index.js";
2
+ import type { SandboxProvider, ProviderSandbox, CreateSandboxOpts, ExecOptions } from "./types.js";
3
+ export declare class DaytonaProvider implements SandboxProvider {
4
+ readonly name = "daytona";
5
+ private client;
6
+ constructor(apiKey: string);
7
+ create(opts?: CreateSandboxOpts): Promise<ProviderSandbox>;
8
+ private getInstance;
9
+ exec(sandboxId: string, command: string, opts?: ExecOptions): Promise<ExecResult | ExecHandle>;
10
+ readFile(sandboxId: string, path: string): Promise<string>;
11
+ writeFile(sandboxId: string, path: string, content: string): Promise<void>;
12
+ listFiles(sandboxId: string, path: string): Promise<FileInfo[]>;
13
+ stop(sandboxId: string): Promise<void>;
14
+ delete(sandboxId: string): Promise<void>;
15
+ keepAlive(sandboxId: string, durationMs?: number): Promise<void>;
16
+ }
17
+ //# sourceMappingURL=daytona.d.ts.map
@@ -0,0 +1 @@
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,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAcvE"}
@@ -0,0 +1,17 @@
1
+ import type { ExecResult, ExecHandle, FileInfo } from "../types/index.js";
2
+ import type { SandboxProvider, ProviderSandbox, CreateSandboxOpts, ExecOptions } from "./types.js";
3
+ export declare class E2BProvider implements SandboxProvider {
4
+ readonly name = "e2b";
5
+ private apiKey;
6
+ constructor(apiKey: string);
7
+ create(opts?: CreateSandboxOpts): Promise<ProviderSandbox>;
8
+ private getInstance;
9
+ exec(sandboxId: string, command: string, opts?: ExecOptions): Promise<ExecResult | ExecHandle>;
10
+ readFile(sandboxId: string, path: string): Promise<string>;
11
+ writeFile(sandboxId: string, path: string, content: string): Promise<void>;
12
+ listFiles(sandboxId: string, path: string): Promise<FileInfo[]>;
13
+ stop(sandboxId: string): Promise<void>;
14
+ delete(sandboxId: string): Promise<void>;
15
+ keepAlive(sandboxId: string, durationMs?: number): Promise<void>;
16
+ }
17
+ //# sourceMappingURL=e2b.d.ts.map
@@ -0,0 +1 @@
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;YAqBlD,WAAW;IAkBnB,IAAI,CACR,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,WAAW,GACjB,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC;IA0D7B,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAY1D,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;IAIxC,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAWvE"}
@@ -0,0 +1,5 @@
1
+ import type { SandboxProviderName } from "../types/index.js";
2
+ import type { SandboxProvider } from "./types.js";
3
+ export declare function getProvider(name: SandboxProviderName, apiKey?: string): Promise<SandboxProvider>;
4
+ export { type SandboxProvider } from "./types.js";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
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,CAiC1B;AAED,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,25 @@
1
+ import type { ExecResult, ExecHandle, FileInfo } from "../types/index.js";
2
+ import type { SandboxProvider, ProviderSandbox, CreateSandboxOpts, ExecOptions } from "./types.js";
3
+ export declare class ModalProvider implements SandboxProvider {
4
+ readonly name = "modal";
5
+ private client;
6
+ constructor(apiKey?: string);
7
+ create(opts?: CreateSandboxOpts): Promise<ProviderSandbox>;
8
+ private getSandbox;
9
+ exec(sandboxId: string, command: string, opts?: ExecOptions): Promise<ExecResult | ExecHandle>;
10
+ readFile(sandboxId: string, path: string): Promise<string>;
11
+ writeFile(sandboxId: string, path: string, content: string): Promise<void>;
12
+ listFiles(sandboxId: string, path: string): Promise<FileInfo[]>;
13
+ stop(sandboxId: string): Promise<void>;
14
+ delete(sandboxId: string): Promise<void>;
15
+ keepAlive(_sandboxId: string, _durationMs?: number): Promise<void>;
16
+ /**
17
+ * Parse a command string into an array of arguments, respecting quotes.
18
+ */
19
+ private parseCommand;
20
+ /**
21
+ * Escape a string for safe use in shell commands.
22
+ */
23
+ private shellEscape;
24
+ }
25
+ //# sourceMappingURL=modal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modal.d.ts","sourceRoot":"","sources":["../../src/providers/modal.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;AAKpB,qBAAa,aAAc,YAAW,eAAe;IACnD,QAAQ,CAAC,IAAI,WAAW;IACxB,OAAO,CAAC,MAAM,CAAc;gBAEhB,MAAM,CAAC,EAAE,MAAM;IASrB,MAAM,CAAC,IAAI,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,eAAe,CAAC;IAqChE,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,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"}
@@ -0,0 +1,30 @@
1
+ import type { ExecResult, ExecHandle, FileInfo } from "../types/index.js";
2
+ export interface CreateSandboxOpts {
3
+ image?: string;
4
+ timeout?: number;
5
+ envVars?: Record<string, string>;
6
+ }
7
+ export interface ExecOptions {
8
+ background?: boolean;
9
+ onStdout?: (data: string) => void;
10
+ onStderr?: (data: string) => void;
11
+ timeout?: number;
12
+ env?: Record<string, string>;
13
+ cwd?: string;
14
+ }
15
+ export interface ProviderSandbox {
16
+ id: string;
17
+ status: string;
18
+ }
19
+ export interface SandboxProvider {
20
+ readonly name: string;
21
+ create(opts?: CreateSandboxOpts): Promise<ProviderSandbox>;
22
+ exec(sandboxId: string, command: string, opts?: ExecOptions): Promise<ExecResult | ExecHandle>;
23
+ readFile(sandboxId: string, path: string): Promise<string>;
24
+ writeFile(sandboxId: string, path: string, content: string): Promise<void>;
25
+ listFiles(sandboxId: string, path: string): Promise<FileInfo[]>;
26
+ stop(sandboxId: string): Promise<void>;
27
+ delete(sandboxId: string): Promise<void>;
28
+ keepAlive(sandboxId: string, durationMs?: number): Promise<void>;
29
+ }
30
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
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;CAClC;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;CACd;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,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3D,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,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAEhE,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;CAClE"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env bun
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":""}