@ekairos/sandbox 1.22.34-beta.development.0 → 1.22.35

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 (70) hide show
  1. package/README.md +59 -452
  2. package/dist/action-steps.d.ts +156 -0
  3. package/dist/action-steps.d.ts.map +1 -0
  4. package/dist/action-steps.js +153 -0
  5. package/dist/action-steps.js.map +1 -0
  6. package/dist/actions.d.ts +263 -0
  7. package/dist/actions.d.ts.map +1 -0
  8. package/dist/actions.js +208 -0
  9. package/dist/actions.js.map +1 -0
  10. package/dist/app.js +1 -1
  11. package/dist/app.js.map +1 -1
  12. package/dist/contract.d.ts +86 -0
  13. package/dist/contract.d.ts.map +1 -0
  14. package/dist/contract.js +83 -0
  15. package/dist/contract.js.map +1 -0
  16. package/dist/domain.d.ts +2 -0
  17. package/dist/domain.d.ts.map +1 -0
  18. package/dist/domain.js +2 -0
  19. package/dist/domain.js.map +1 -0
  20. package/dist/index.d.ts +11 -1
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +7 -1
  23. package/dist/index.js.map +1 -1
  24. package/dist/providers/daytona.d.ts +14 -0
  25. package/dist/providers/daytona.d.ts.map +1 -0
  26. package/dist/providers/daytona.js +153 -0
  27. package/dist/providers/daytona.js.map +1 -0
  28. package/dist/providers/provider.d.ts +3 -0
  29. package/dist/providers/provider.d.ts.map +1 -0
  30. package/dist/providers/provider.js +18 -0
  31. package/dist/providers/provider.js.map +1 -0
  32. package/dist/providers/sprites.d.ts +39 -0
  33. package/dist/providers/sprites.d.ts.map +1 -0
  34. package/dist/providers/sprites.js +234 -0
  35. package/dist/providers/sprites.js.map +1 -0
  36. package/dist/providers/types.d.ts +15 -0
  37. package/dist/providers/types.d.ts.map +1 -0
  38. package/dist/providers/types.js +9 -0
  39. package/dist/providers/types.js.map +1 -0
  40. package/dist/providers/vercel.d.ts +26 -0
  41. package/dist/providers/vercel.d.ts.map +1 -0
  42. package/dist/providers/vercel.js +182 -0
  43. package/dist/providers/vercel.js.map +1 -0
  44. package/dist/public.d.ts +56 -0
  45. package/dist/public.d.ts.map +1 -0
  46. package/dist/public.js +37 -0
  47. package/dist/public.js.map +1 -0
  48. package/dist/runtime.d.ts +4 -0
  49. package/dist/runtime.d.ts.map +1 -1
  50. package/dist/runtime.js +7 -1
  51. package/dist/runtime.js.map +1 -1
  52. package/dist/sandbox.d.ts +76 -0
  53. package/dist/sandbox.d.ts.map +1 -0
  54. package/dist/sandbox.js +154 -0
  55. package/dist/sandbox.js.map +1 -0
  56. package/dist/schema.d.ts +18 -2
  57. package/dist/schema.d.ts.map +1 -1
  58. package/dist/schema.js +43 -15
  59. package/dist/schema.js.map +1 -1
  60. package/dist/service.d.ts +98 -43
  61. package/dist/service.d.ts.map +1 -1
  62. package/dist/service.js +811 -543
  63. package/dist/service.js.map +1 -1
  64. package/dist/types.d.ts +33 -0
  65. package/dist/types.d.ts.map +1 -1
  66. package/dist/vercel-options.d.ts +21 -0
  67. package/dist/vercel-options.d.ts.map +1 -0
  68. package/dist/vercel-options.js +149 -0
  69. package/dist/vercel-options.js.map +1 -0
  70. package/package.json +43 -7
package/dist/runtime.js CHANGED
@@ -18,10 +18,16 @@ export async function createVercelSandbox(opts) {
18
18
  teamId: creds.teamId,
19
19
  projectId: creds.projectId,
20
20
  token: creds.token,
21
+ ...(opts.name ? { name: opts.name } : {}),
21
22
  runtime: (opts.runtime ?? "node22"),
22
23
  timeout: timeoutMs,
23
24
  ports: [],
24
- resources: { vcpus: opts.vcpus ?? 2 },
25
+ resources: { vcpus: opts.vcpus ?? 1 },
26
+ ...(opts.persistent !== undefined ? { persistent: opts.persistent } : {}),
27
+ ...(opts.snapshotExpirationMs !== undefined
28
+ ? { snapshotExpiration: Math.max(0, Math.floor(opts.snapshotExpirationMs)) }
29
+ : {}),
30
+ ...(opts.tags ? { tags: opts.tags } : {}),
25
31
  });
26
32
  }
27
33
  export async function runShInSandbox(sandbox, script) {
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,76 @@
1
+ import { WORKFLOW_DESERIALIZE, WORKFLOW_SERIALIZE } from "@workflow/serde";
2
+ import type { EkairosRuntime } from "@ekairos/domain/runtime";
3
+ import { type ContextAction } from "@ekairos/events";
4
+ import { SANDBOX_EXECUTE_COMMAND_ACTION_NAME, sandboxExecuteCommandInputSchema, sandboxExecuteCommandOutputSchema, type SandboxExecuteCommandInput, type SandboxExecuteCommandOutput } from "./contract.js";
5
+ import type { SandboxConfig, SandboxProvider } from "./types.js";
6
+ type AnyDomainRuntime = EkairosRuntime<Record<string, unknown>, any, any>;
7
+ type SandboxRuntimeHandle<Runtime extends AnyDomainRuntime> = Runtime & {
8
+ meta?: () => {
9
+ domain?: unknown;
10
+ };
11
+ use(domain: unknown): Promise<any>;
12
+ };
13
+ export type SandboxActions = {
14
+ [SANDBOX_EXECUTE_COMMAND_ACTION_NAME]: ContextAction<typeof sandboxExecuteCommandInputSchema, typeof sandboxExecuteCommandOutputSchema>;
15
+ };
16
+ export type SerializedSandboxState = {
17
+ version: 1;
18
+ sandboxId: string;
19
+ provider?: SandboxProvider;
20
+ externalSandboxId?: string;
21
+ runtime?: string;
22
+ ports?: number[];
23
+ purpose?: string;
24
+ };
25
+ export type SerializedSandbox = {
26
+ runtime: SandboxRuntimeHandle<any>;
27
+ state: SerializedSandboxState;
28
+ };
29
+ export declare class Sandbox<Runtime extends AnyDomainRuntime = AnyDomainRuntime> {
30
+ static readonly executeCommandActionName: "executeCommand";
31
+ static readonly executeCommandInputSchema: import("zod").ZodObject<{
32
+ command: import("zod").ZodString;
33
+ args: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
34
+ cwd: import("zod").ZodOptional<import("zod").ZodString>;
35
+ env: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
36
+ kind: import("zod").ZodOptional<import("zod").ZodEnum<{
37
+ command: "command";
38
+ service: "service";
39
+ "codex-app-server": "codex-app-server";
40
+ "dev-server": "dev-server";
41
+ "test-runner": "test-runner";
42
+ watcher: "watcher";
43
+ }>>;
44
+ mode: import("zod").ZodOptional<import("zod").ZodEnum<{
45
+ foreground: "foreground";
46
+ background: "background";
47
+ }>>;
48
+ metadata: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
49
+ }, import("zod/v4/core").$strict>;
50
+ static readonly executeCommandOutputSchema: import("zod").ZodObject<{
51
+ sandboxId: import("zod").ZodOptional<import("zod").ZodString>;
52
+ processId: import("zod").ZodOptional<import("zod").ZodString>;
53
+ streamId: import("zod").ZodOptional<import("zod").ZodString>;
54
+ streamClientId: import("zod").ZodOptional<import("zod").ZodString>;
55
+ success: import("zod").ZodBoolean;
56
+ exitCode: import("zod").ZodOptional<import("zod").ZodNumber>;
57
+ output: import("zod").ZodOptional<import("zod").ZodString>;
58
+ error: import("zod").ZodOptional<import("zod").ZodString>;
59
+ command: import("zod").ZodOptional<import("zod").ZodString>;
60
+ status: import("zod").ZodOptional<import("zod").ZodString>;
61
+ durationMs: import("zod").ZodOptional<import("zod").ZodNumber>;
62
+ }, import("zod/v4/core").$strip>;
63
+ private readonly runtime;
64
+ private readonly stateValue;
65
+ private constructor();
66
+ static create<Runtime extends AnyDomainRuntime>(runtime: SandboxRuntimeHandle<Runtime>, config: SandboxConfig): Promise<Sandbox<Runtime>>;
67
+ static from<Runtime extends AnyDomainRuntime>(runtime: SandboxRuntimeHandle<Runtime>, state: SerializedSandboxState): Sandbox<Runtime>;
68
+ static [WORKFLOW_SERIALIZE](instance: Sandbox<any>): SerializedSandbox;
69
+ static [WORKFLOW_DESERIALIZE](data: SerializedSandbox): Sandbox;
70
+ get sandboxId(): string;
71
+ get state(): SerializedSandboxState;
72
+ executeCommand(input: SandboxExecuteCommandInput): Promise<SandboxExecuteCommandOutput>;
73
+ actions(): SandboxActions;
74
+ }
75
+ export {};
76
+ //# sourceMappingURL=sandbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../src/sandbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAC1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,EAAgB,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAElE,OAAO,EACL,mCAAmC,EACnC,gCAAgC,EAChC,iCAAiC,EACjC,KAAK,0BAA0B,EAC/B,KAAK,2BAA2B,EACjC,MAAM,eAAe,CAAA;AAEtB,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAEhE,KAAK,gBAAgB,GAAG,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;AACzE,KAAK,oBAAoB,CAAC,OAAO,SAAS,gBAAgB,IAAI,OAAO,GAAG;IACtE,IAAI,CAAC,EAAE,MAAM;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;IACjC,GAAG,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;CACnC,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,CAAC,mCAAmC,CAAC,EAAE,aAAa,CAClD,OAAO,gCAAgC,EACvC,OAAO,iCAAiC,CACzC,CAAA;CACF,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,OAAO,EAAE,CAAC,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,eAAe,CAAA;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,oBAAoB,CAAC,GAAG,CAAC,CAAA;IAClC,KAAK,EAAE,sBAAsB,CAAA;CAC9B,CAAA;AA0ED,qBAAa,OAAO,CAAC,OAAO,SAAS,gBAAgB,GAAG,gBAAgB;IACtE,MAAM,CAAC,QAAQ,CAAC,wBAAwB,mBAAsC;IAC9E,MAAM,CAAC,QAAQ,CAAC,yBAAyB;;;;;;;;;;;;;;;;;;sCAAmC;IAC5E,MAAM,CAAC,QAAQ,CAAC,0BAA0B;;;;;;;;;;;;qCAAoC;IAE9E,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+B;IACvD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwB;IAEnD,OAAO;WAQM,MAAM,CAAC,OAAO,SAAS,gBAAgB,EAClD,OAAO,EAAE,oBAAoB,CAAC,OAAO,CAAC,EACtC,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAU5B,MAAM,CAAC,IAAI,CAAC,OAAO,SAAS,gBAAgB,EAC1C,OAAO,EAAE,oBAAoB,CAAC,OAAO,CAAC,EACtC,KAAK,EAAE,sBAAsB,GAC5B,OAAO,CAAC,OAAO,CAAC;IAInB,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,iBAAiB;IAOtE,MAAM,CAAC,CAAC,oBAAoB,CAAC,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO;IAI/D,IAAI,SAAS,WAEZ;IAED,IAAI,KAAK,IAAI,sBAAsB,CAElC;IAEK,cAAc,CAAC,KAAK,EAAE,0BAA0B,GAAG,OAAO,CAAC,2BAA2B,CAAC;IAgD7F,OAAO,IAAI,cAAc;CAU1B"}
@@ -0,0 +1,154 @@
1
+ import { WORKFLOW_DESERIALIZE, WORKFLOW_SERIALIZE } from "@workflow/serde";
2
+ import { defineAction } from "@ekairos/events";
3
+ import { SANDBOX_EXECUTE_COMMAND_ACTION_NAME, sandboxExecuteCommandInputSchema, sandboxExecuteCommandOutputSchema, } from "./contract.js";
4
+ function cleanRecord(value) {
5
+ return Object.fromEntries(Object.entries(value).filter(([, entry]) => entry !== undefined));
6
+ }
7
+ function asString(value) {
8
+ if (typeof value === "string")
9
+ return value;
10
+ if (value === null || value === undefined)
11
+ return "";
12
+ return String(value);
13
+ }
14
+ function asNumber(value) {
15
+ const number = typeof value === "number" ? value : Number(value);
16
+ return Number.isFinite(number) ? number : undefined;
17
+ }
18
+ function asPorts(value) {
19
+ if (!Array.isArray(value))
20
+ return undefined;
21
+ const ports = value
22
+ .map((entry) => Number(entry))
23
+ .filter((entry) => Number.isInteger(entry) && entry > 0);
24
+ return ports.length > 0 ? ports : undefined;
25
+ }
26
+ async function readSandboxState(db, sandboxId) {
27
+ const result = await db.query({
28
+ sandbox_sandboxes: { $: { where: { id: sandboxId }, limit: 1 } },
29
+ });
30
+ const row = result?.sandbox_sandboxes?.[0] ?? {};
31
+ return cleanRecord({
32
+ version: 1,
33
+ sandboxId,
34
+ provider: asString(row.provider),
35
+ externalSandboxId: asString(row.externalSandboxId) || undefined,
36
+ runtime: asString(row.runtime) || undefined,
37
+ ports: asPorts(row.ports),
38
+ purpose: asString(row.purpose) || undefined,
39
+ });
40
+ }
41
+ async function resolveSandboxDomain(runtime) {
42
+ const rootDomain = runtime.meta?.().domain;
43
+ if (!rootDomain) {
44
+ throw new Error("sandbox_domain_required");
45
+ }
46
+ const scoped = await runtime.use(rootDomain);
47
+ if (!scoped.actions) {
48
+ throw new Error("sandbox_actions_required");
49
+ }
50
+ return scoped;
51
+ }
52
+ function normalizeState(state) {
53
+ const sandboxId = asString(state.sandboxId).trim();
54
+ if (!sandboxId) {
55
+ throw new Error("Sandbox requires a sandboxId.");
56
+ }
57
+ return cleanRecord({
58
+ version: 1,
59
+ sandboxId,
60
+ provider: state.provider,
61
+ externalSandboxId: asString(state.externalSandboxId).trim() || undefined,
62
+ runtime: asString(state.runtime).trim() || undefined,
63
+ ports: asPorts(state.ports),
64
+ purpose: asString(state.purpose).trim() || undefined,
65
+ });
66
+ }
67
+ export class Sandbox {
68
+ constructor(runtime, state) {
69
+ this.runtime = runtime;
70
+ this.stateValue = normalizeState(state);
71
+ }
72
+ static async create(runtime, config) {
73
+ const scoped = await resolveSandboxDomain(runtime);
74
+ const created = await scoped.actions.createSandbox(config);
75
+ if (!created.ok) {
76
+ throw new Error(created.error);
77
+ }
78
+ const state = await readSandboxState(scoped.db, created.data.sandboxId);
79
+ return new Sandbox(runtime, state);
80
+ }
81
+ static from(runtime, state) {
82
+ return new Sandbox(runtime, state);
83
+ }
84
+ static [WORKFLOW_SERIALIZE](instance) {
85
+ return {
86
+ runtime: instance.runtime,
87
+ state: instance.stateValue,
88
+ };
89
+ }
90
+ static [WORKFLOW_DESERIALIZE](data) {
91
+ return new Sandbox(data.runtime, data.state);
92
+ }
93
+ get sandboxId() {
94
+ return this.stateValue.sandboxId;
95
+ }
96
+ get state() {
97
+ return { ...this.stateValue };
98
+ }
99
+ async executeCommand(input) {
100
+ const parsed = sandboxExecuteCommandInputSchema.parse(input);
101
+ const domain = await resolveSandboxDomain(this.runtime);
102
+ const run = await domain.actions.runCommandProcess({
103
+ sandboxId: this.stateValue.sandboxId,
104
+ command: parsed.command,
105
+ args: parsed.args ?? [],
106
+ cwd: parsed.cwd,
107
+ env: parsed.env,
108
+ kind: parsed.kind ?? "command",
109
+ mode: parsed.mode ?? "foreground",
110
+ metadata: {
111
+ source: "sandbox.action",
112
+ ...(parsed.metadata ?? {}),
113
+ },
114
+ });
115
+ if (!run.ok) {
116
+ return sandboxExecuteCommandOutputSchema.parse({
117
+ sandboxId: this.stateValue.sandboxId,
118
+ success: false,
119
+ error: run.error,
120
+ command: parsed.args && parsed.args.length > 0
121
+ ? [parsed.command, ...parsed.args].join(" ")
122
+ : parsed.command,
123
+ });
124
+ }
125
+ const result = (run.data.result ?? {});
126
+ const exitCode = asNumber(result.exitCode);
127
+ return sandboxExecuteCommandOutputSchema.parse(cleanRecord({
128
+ sandboxId: this.stateValue.sandboxId,
129
+ processId: run.data.processId,
130
+ streamId: run.data.streamId,
131
+ streamClientId: run.data.streamClientId,
132
+ success: Boolean(result.success ?? (exitCode === undefined || exitCode === 0)),
133
+ exitCode,
134
+ output: asString(result.output) || undefined,
135
+ error: asString(result.error) || undefined,
136
+ command: asString(result.command) || undefined,
137
+ status: exitCode === undefined ? undefined : exitCode === 0 ? "exited" : "failed",
138
+ }));
139
+ }
140
+ actions() {
141
+ return {
142
+ [SANDBOX_EXECUTE_COMMAND_ACTION_NAME]: defineAction({
143
+ description: "Run a shell command in this sandbox.",
144
+ input: sandboxExecuteCommandInputSchema,
145
+ output: sandboxExecuteCommandOutputSchema,
146
+ execute: async ({ input }) => this.executeCommand(input),
147
+ }),
148
+ };
149
+ }
150
+ }
151
+ Sandbox.executeCommandActionName = SANDBOX_EXECUTE_COMMAND_ACTION_NAME;
152
+ Sandbox.executeCommandInputSchema = sandboxExecuteCommandInputSchema;
153
+ Sandbox.executeCommandOutputSchema = sandboxExecuteCommandOutputSchema;
154
+ //# sourceMappingURL=sandbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sandbox.js","sourceRoot":"","sources":["../src/sandbox.ts"],"names":[],"mappings":"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"}
package/dist/schema.d.ts CHANGED
@@ -1,3 +1,19 @@
1
- import { type DomainSchemaResult } from "@ekairos/domain";
2
- export declare const sandboxDomain: DomainSchemaResult;
1
+ export declare const sandboxSchemaDomain: import("@ekairos/domain").DomainSchemaResult<{
2
+ [x: string]: any;
3
+ [x: number]: any;
4
+ [x: symbol]: any;
5
+ }, {
6
+ [x: string]: any;
7
+ [x: number]: any;
8
+ [x: symbol]: any;
9
+ }, import("@instantdb/core").RoomsDef, {}, "sandbox", string>;
10
+ export declare const sandboxDomain: import("@ekairos/domain").DomainSchemaResult<{
11
+ [x: string]: any;
12
+ [x: number]: any;
13
+ [x: symbol]: any;
14
+ }, {
15
+ [x: string]: any;
16
+ [x: number]: any;
17
+ [x: symbol]: any;
18
+ }, import("@instantdb/core").RoomsDef, {}, "sandbox", string>;
3
19
  //# sourceMappingURL=schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAGjE,eAAO,MAAM,aAAa,EAAE,kBAkC1B,CAAA"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,mBAAmB;;;;;;;;6DA6D5B,CAAA;AAEJ,eAAO,MAAM,aAAa;;;;;;;;6DAAsB,CAAA"}
package/dist/schema.js CHANGED
@@ -1,39 +1,67 @@
1
1
  import { i } from "@instantdb/core";
2
2
  import { domain } from "@ekairos/domain";
3
- // Port de `ekairos-core/src/lib/domain/sandbox/schema.ts`
4
- export const sandboxDomain = domain("sandbox").schema({
3
+ import { sandboxDomain as publicSandboxDomain } from "./public.js";
4
+ export const sandboxSchemaDomain = domain("sandbox")
5
+ .includes(publicSandboxDomain)
6
+ .withSchema({
5
7
  entities: {
6
8
  sandbox_sandboxes: i.entity({
7
9
  externalSandboxId: i.string().optional().indexed(),
8
10
  sandboxUserId: i.string().optional().indexed(),
9
11
  provider: i.string().indexed(),
10
- sandboxUrl: i.string().optional(),
11
- status: i.string().indexed(),
12
- timeout: i.number().optional(),
13
- runtime: i.string().optional(),
14
- vcpus: i.number().optional(),
15
- ports: i.json().optional(),
16
- purpose: i.string().optional().indexed(),
12
+ providerConfig: i.json().optional(),
17
13
  params: i.json().optional(),
18
- createdAt: i.number().indexed(),
14
+ }),
15
+ sandbox_processes: i.entity({
16
+ kind: i.string().indexed(),
17
+ mode: i.string().indexed(),
18
+ status: i.string().indexed(),
19
+ provider: i.string().indexed(),
20
+ command: i.string(),
21
+ args: i.json().optional(),
22
+ cwd: i.string().optional(),
23
+ env: i.json().optional(),
24
+ exitCode: i.number().optional().indexed(),
25
+ signal: i.string().optional(),
26
+ externalProcessId: i.string().optional().indexed(),
27
+ streamId: i.string().optional().indexed(),
28
+ streamClientId: i.string().optional().indexed(),
29
+ streamStartedAt: i.number().optional().indexed(),
30
+ streamFinishedAt: i.number().optional().indexed(),
31
+ streamAbortReason: i.string().optional(),
32
+ startedAt: i.number().indexed(),
19
33
  updatedAt: i.number().optional().indexed(),
20
- shutdownAt: i.number().optional().indexed(),
34
+ exitedAt: i.number().optional().indexed(),
35
+ metadata: i.json().optional(),
21
36
  }),
22
37
  },
23
38
  links: {
24
- sandbox_user: {
39
+ sandboxProcessSandbox: {
25
40
  forward: {
41
+ on: "sandbox_processes",
42
+ has: "one",
43
+ label: "sandbox",
44
+ },
45
+ reverse: {
26
46
  on: "sandbox_sandboxes",
47
+ has: "many",
48
+ label: "processes",
49
+ },
50
+ },
51
+ sandboxProcessStream: {
52
+ forward: {
53
+ on: "sandbox_processes",
27
54
  has: "one",
28
- label: "user",
55
+ label: "stream",
29
56
  },
30
57
  reverse: {
31
- on: "$users",
58
+ on: "$streams",
32
59
  has: "many",
33
- label: "sandboxes",
60
+ label: "sandboxProcesses",
34
61
  },
35
62
  },
36
63
  },
37
64
  rooms: {},
38
65
  });
66
+ export const sandboxDomain = sandboxSchemaDomain;
39
67
  //# sourceMappingURL=schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,iBAAiB,CAAA;AACnC,OAAO,EAAE,MAAM,EAA2B,MAAM,iBAAiB,CAAA;AAEjE,0DAA0D;AAC1D,MAAM,CAAC,MAAM,aAAa,GAAuB,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;IACxE,QAAQ,EAAE;QACR,iBAAiB,EAAE,CAAC,CAAC,MAAM,CAAC;YAC1B,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE;YAClD,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE;YAC9C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;YAC9B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACjC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;YAC5B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC9B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC9B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC5B,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;YAC1B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE;YACxC,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;YAC3B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;YAC/B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE;YAC1C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE;SAC5C,CAAC;KACH;IACD,KAAK,EAAE;QACL,YAAY,EAAE;YACZ,OAAO,EAAE;gBACP,EAAE,EAAE,mBAAmB;gBACvB,GAAG,EAAE,KAAK;gBACV,KAAK,EAAE,MAAM;aACd;YACD,OAAO,EAAE;gBACP,EAAE,EAAE,QAAQ;gBACZ,GAAG,EAAE,MAAM;gBACX,KAAK,EAAE,WAAW;aACnB;SACF;KACF;IACD,KAAK,EAAE,EAAE;CACV,CAAC,CAAA"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
package/dist/service.d.ts CHANGED
@@ -1,11 +1,14 @@
1
- import { Sandbox as VercelSandbox } from "@vercel/sandbox";
2
- import { type Sandbox as DaytonaSandbox } from "@daytonaio/sdk";
3
- import { type InstantAdminDatabase } from "@instantdb/admin";
4
- import { SchemaOf } from "@ekairos/domain";
5
1
  import { type CommandResult } from "./commands.js";
6
- import { sandboxDomain } from "./schema.js";
7
2
  import type { SandboxConfig } from "./types.js";
8
- type SandboxSchemaType = SchemaOf<typeof sandboxDomain>;
3
+ import { type ProviderSandbox } from "./providers/types.js";
4
+ type SandboxAdminDb = {
5
+ query: (query: unknown) => Promise<any>;
6
+ transact: (mutations: unknown) => Promise<any>;
7
+ tx: any;
8
+ streams?: any;
9
+ auth?: any;
10
+ config?: any;
11
+ };
9
12
  export interface SandboxRecord {
10
13
  id: string;
11
14
  externalSandboxId?: string;
@@ -30,21 +33,54 @@ export type ServiceResult<T = any> = {
30
33
  ok: false;
31
34
  error: string;
32
35
  };
33
- type SpritesSandbox = {
34
- __provider: "sprites";
35
- name: string;
36
- id?: string;
37
- url?: string;
38
- getPreviewLink?: (port: number) => Promise<{
39
- url: string;
40
- }>;
41
- domain?: (port: number) => Promise<string>;
36
+ export type SandboxProcessStatus = "starting" | "running" | "detached" | "exited" | "failed" | "killed" | "lost";
37
+ export type SandboxProcessKind = "command" | "service" | "codex-app-server" | "dev-server" | "test-runner" | "watcher";
38
+ export type SandboxProcessMode = "foreground" | "background";
39
+ export type SandboxProcessStreamChunk = {
40
+ version: 1;
41
+ at: string;
42
+ seq: number;
43
+ type: "stdout" | "stderr" | "status" | "exit" | "error" | "heartbeat" | "metadata";
44
+ sandboxId: string;
45
+ processId: string;
46
+ data?: Record<string, unknown>;
47
+ };
48
+ export type SandboxProcessRunResult = {
49
+ processId: string;
50
+ streamId: string;
51
+ streamClientId: string;
52
+ result?: CommandResult;
53
+ };
54
+ export type SandboxCommandRunData = {
55
+ sandboxId: string;
56
+ processId: string;
57
+ streamId: string;
58
+ streamClientId: string;
59
+ result?: CommandResult;
42
60
  };
43
- type ProviderSandbox = VercelSandbox | DaytonaSandbox | SpritesSandbox;
61
+ export declare class SandboxCommandRun implements PromiseLike<CommandResult> {
62
+ private service;
63
+ private readonly data;
64
+ constructor(data: SandboxCommandRunData, service?: SandboxService);
65
+ get sandboxId(): string;
66
+ get processId(): string;
67
+ get streamId(): string;
68
+ get streamClientId(): string;
69
+ private getService;
70
+ readStream(): Promise<{
71
+ chunks: SandboxProcessStreamChunk[];
72
+ byteOffset: number;
73
+ }>;
74
+ snapshot(): Promise<any>;
75
+ wait(params?: {
76
+ timeoutMs?: number;
77
+ pollMs?: number;
78
+ }): Promise<CommandResult>;
79
+ then<TResult1 = CommandResult, TResult2 = never>(onfulfilled?: ((value: CommandResult) => TResult1 | PromiseLike<TResult1>) | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null): PromiseLike<TResult1 | TResult2>;
80
+ }
44
81
  export declare class SandboxService {
45
82
  private adminDb;
46
- constructor(db: InstantAdminDatabase<SandboxSchemaType>);
47
- private static getVercelCredentials;
83
+ constructor(db: SandboxAdminDb);
48
84
  private static getDomainName;
49
85
  private static getDomainContextString;
50
86
  private static cloneJson;
@@ -57,32 +93,8 @@ export declare class SandboxService {
57
93
  private static safeMkDir;
58
94
  private static buildSkillInstallSet;
59
95
  private static bootstrapSkills;
60
- private static resolveVercelWorkingDirectory;
61
- private static findLinkedVercelProjectFile;
62
- private static readLinkedVercelProject;
63
- private static pullVercelOidcToken;
64
- private static resolveVercelCredentials;
65
- private static provisionVercelSandbox;
66
- private static getDaytonaConfig;
67
- private static normalizeBaseUrl;
68
- private static getSpritesConfig;
69
- private static spritesFetch;
70
- private static spritesJson;
71
- private static spritesText;
72
- private static toSpritesPreviewUrl;
73
- private static asSpritesSandbox;
74
- private static getSpritesByName;
75
- private static provisionSpritesSandbox;
76
- private static normalizeSpritesExecResult;
77
- private static spritesExec;
78
- private static resolveProvider;
79
- private static resolveDaytonaLanguage;
80
- private static resolveDaytonaVolumes;
81
96
  private static shellEscapeArg;
82
97
  private static parseOptionalBoolean;
83
- private static parseCsvList;
84
- private static resolvePythonVersion;
85
- private static buildDeclarativeImage;
86
98
  createSandbox(config: SandboxConfig): Promise<ServiceResult<{
87
99
  sandboxId: string;
88
100
  }>>;
@@ -90,9 +102,50 @@ export declare class SandboxService {
90
102
  sandbox: ProviderSandbox;
91
103
  }>>;
92
104
  private getSandboxRecord;
105
+ getProcessSnapshot(processId: string): Promise<ServiceResult<any>>;
106
+ private markOpenProcessesLost;
107
+ private createProcessStream;
108
+ private writeProcessChunk;
109
+ private readProcessRow;
110
+ private writeProcessChunkByProcessId;
111
+ startObservedProcess(sandboxId: string, opts: {
112
+ command: string;
113
+ args?: string[];
114
+ cwd?: string;
115
+ env?: Record<string, unknown>;
116
+ kind?: SandboxProcessKind;
117
+ mode?: SandboxProcessMode;
118
+ externalProcessId?: string;
119
+ metadata?: Record<string, unknown>;
120
+ }): Promise<ServiceResult<SandboxProcessRunResult>>;
121
+ appendObservedProcessChunk(processId: string, type: SandboxProcessStreamChunk["type"], data?: Record<string, unknown>): Promise<ServiceResult<void>>;
122
+ finishObservedProcess(processId: string, opts?: {
123
+ status?: "exited" | "failed" | "killed" | "lost";
124
+ exitCode?: number;
125
+ errorText?: string;
126
+ metadata?: Record<string, unknown>;
127
+ }): Promise<ServiceResult<void>>;
93
128
  stopSandbox(sandboxId: string): Promise<ServiceResult<void>>;
94
129
  query(sandboxId: string, query: Record<string, any>): Promise<ServiceResult<any>>;
95
130
  runCommand(sandboxId: string, command: string, args?: string[]): Promise<ServiceResult<CommandResult>>;
131
+ runCommandProcess(sandboxId: string, command: string, args?: string[], opts?: {
132
+ cwd?: string;
133
+ env?: Record<string, unknown>;
134
+ kind?: SandboxProcessKind;
135
+ mode?: SandboxProcessMode;
136
+ metadata?: Record<string, unknown>;
137
+ }): Promise<ServiceResult<SandboxCommandRun>>;
138
+ runCommandWithProcessStream(sandboxId: string, command: string, args?: string[], opts?: {
139
+ cwd?: string;
140
+ env?: Record<string, unknown>;
141
+ kind?: SandboxProcessKind;
142
+ mode?: SandboxProcessMode;
143
+ metadata?: Record<string, unknown>;
144
+ }): Promise<ServiceResult<SandboxProcessRunResult>>;
145
+ readProcessStream(processId: string): Promise<ServiceResult<{
146
+ chunks: SandboxProcessStreamChunk[];
147
+ byteOffset: number;
148
+ }>>;
96
149
  writeFiles(sandboxId: string, files: Array<{
97
150
  path: string;
98
151
  contentBase64: string;
@@ -100,7 +153,9 @@ export declare class SandboxService {
100
153
  readFile(sandboxId: string, path: string): Promise<ServiceResult<{
101
154
  contentBase64: string;
102
155
  }>>;
103
- private static parseSpritesCheckpointIdFromNdjson;
156
+ getPortUrl(sandboxId: string, port: number): Promise<ServiceResult<{
157
+ url: string;
158
+ }>>;
104
159
  createCheckpoint(sandboxId: string, params?: {
105
160
  comment?: string;
106
161
  }): Promise<ServiceResult<{
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}