@ekairos/sandbox 1.22.35-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 (57) hide show
  1. package/dist/action-steps.d.ts +156 -0
  2. package/dist/action-steps.d.ts.map +1 -0
  3. package/dist/action-steps.js +153 -0
  4. package/dist/action-steps.js.map +1 -0
  5. package/dist/actions.d.ts +263 -0
  6. package/dist/actions.d.ts.map +1 -0
  7. package/dist/actions.js +208 -0
  8. package/dist/actions.js.map +1 -0
  9. package/dist/contract.d.ts +86 -0
  10. package/dist/contract.d.ts.map +1 -0
  11. package/dist/contract.js +83 -0
  12. package/dist/contract.js.map +1 -0
  13. package/dist/domain.d.ts +2 -0
  14. package/dist/domain.d.ts.map +1 -0
  15. package/dist/domain.js +2 -0
  16. package/dist/domain.js.map +1 -0
  17. package/dist/index.d.ts +7 -1
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +5 -1
  20. package/dist/index.js.map +1 -1
  21. package/dist/providers/daytona.d.ts +14 -0
  22. package/dist/providers/daytona.d.ts.map +1 -0
  23. package/dist/providers/daytona.js +153 -0
  24. package/dist/providers/daytona.js.map +1 -0
  25. package/dist/providers/provider.d.ts +3 -0
  26. package/dist/providers/provider.d.ts.map +1 -0
  27. package/dist/providers/provider.js +18 -0
  28. package/dist/providers/provider.js.map +1 -0
  29. package/dist/providers/sprites.d.ts +39 -0
  30. package/dist/providers/sprites.d.ts.map +1 -0
  31. package/dist/providers/sprites.js +234 -0
  32. package/dist/providers/sprites.js.map +1 -0
  33. package/dist/providers/types.d.ts +15 -0
  34. package/dist/providers/types.d.ts.map +1 -0
  35. package/dist/providers/types.js +9 -0
  36. package/dist/providers/types.js.map +1 -0
  37. package/dist/providers/vercel.d.ts +26 -0
  38. package/dist/providers/vercel.d.ts.map +1 -0
  39. package/dist/providers/vercel.js +182 -0
  40. package/dist/providers/vercel.js.map +1 -0
  41. package/dist/public.d.ts +56 -0
  42. package/dist/public.d.ts.map +1 -0
  43. package/dist/public.js +37 -0
  44. package/dist/public.js.map +1 -0
  45. package/dist/sandbox.d.ts +76 -0
  46. package/dist/sandbox.d.ts.map +1 -0
  47. package/dist/sandbox.js +154 -0
  48. package/dist/sandbox.js.map +1 -0
  49. package/dist/schema.d.ts +18 -172
  50. package/dist/schema.d.ts.map +1 -1
  51. package/dist/schema.js +10 -270
  52. package/dist/schema.js.map +1 -1
  53. package/dist/service.d.ts +10 -44
  54. package/dist/service.d.ts.map +1 -1
  55. package/dist/service.js +41 -566
  56. package/dist/service.js.map +1 -1
  57. package/package.json +37 -5
@@ -0,0 +1,208 @@
1
+ import { defineAction } from "@ekairos/domain";
2
+ import { z } from "zod";
3
+ import { SANDBOX_PROCESS_KINDS, SANDBOX_PROCESS_MODES, sandboxCommandResultSchema, sandboxProcessRunResultSchema, sandboxProcessStreamChunkSchema, } from "./contract.js";
4
+ import { appendObservedProcessChunkStep, createCheckpointStep, createEkairosAppStep, createSandboxStep, finishObservedProcessStep, getPortUrlStep, getSandboxStep, installCodexAuthStep, readFileStep, readProcessStreamStep, runCommandProcessStep, runCommandStep, startObservedProcessStep, stopSandboxStep, writeFilesStep, } from "./action-steps.js";
5
+ import { sandboxSchemaDomain } from "./schema.js";
6
+ const serviceError = z.object({
7
+ ok: z.literal(false),
8
+ error: z.string(),
9
+ });
10
+ const serviceResult = (data) => z.discriminatedUnion("ok", [
11
+ z.object({
12
+ ok: z.literal(true),
13
+ data,
14
+ }),
15
+ serviceError,
16
+ ]);
17
+ const serviceVoidResult = z.discriminatedUnion("ok", [
18
+ z.object({
19
+ ok: z.literal(true),
20
+ data: z.unknown().optional(),
21
+ }),
22
+ serviceError,
23
+ ]);
24
+ const commandResult = sandboxCommandResultSchema;
25
+ const processStreamChunk = sandboxProcessStreamChunkSchema;
26
+ const processRunResult = sandboxProcessRunResultSchema;
27
+ export const sandboxDomain = sandboxSchemaDomain
28
+ .withActions({
29
+ createSandbox: defineAction({
30
+ name: "sandbox.createSandbox",
31
+ input: z.object({
32
+ provider: z.enum(["vercel", "daytona", "sprites"]).optional(),
33
+ runtime: z.string().optional(),
34
+ timeoutMs: z.number().optional(),
35
+ ports: z.array(z.number()).optional(),
36
+ resources: z.object({ vcpus: z.number().optional() }).passthrough().optional(),
37
+ purpose: z.string().optional(),
38
+ params: z.record(z.string(), z.unknown()).optional(),
39
+ env: z.record(z.string(), z.unknown()).optional(),
40
+ domain: z.unknown().optional(),
41
+ dataset: z.object({ enabled: z.boolean().optional() }).passthrough().optional(),
42
+ skills: z.array(z.object({
43
+ name: z.string(),
44
+ description: z.string().optional(),
45
+ files: z.array(z.object({
46
+ path: z.string(),
47
+ contentBase64: z.string(),
48
+ })),
49
+ })).optional(),
50
+ vercel: z.record(z.string(), z.unknown()).optional(),
51
+ daytona: z.record(z.string(), z.unknown()).optional(),
52
+ sprites: z.record(z.string(), z.unknown()).optional(),
53
+ }).passthrough(),
54
+ output: serviceResult(z.object({ sandboxId: z.string() })),
55
+ execute: createSandboxStep,
56
+ }),
57
+ stopSandbox: defineAction({
58
+ name: "sandbox.stopSandbox",
59
+ input: z.object({ sandboxId: z.string() }),
60
+ output: serviceVoidResult,
61
+ execute: stopSandboxStep,
62
+ }),
63
+ runCommand: defineAction({
64
+ name: "sandbox.runCommand",
65
+ input: z.object({
66
+ sandboxId: z.string(),
67
+ command: z.string(),
68
+ args: z.array(z.string()).optional(),
69
+ }),
70
+ output: serviceResult(commandResult),
71
+ execute: runCommandStep,
72
+ }),
73
+ runCommandProcess: defineAction({
74
+ name: "sandbox.runCommandProcess",
75
+ input: z.object({
76
+ sandboxId: z.string(),
77
+ command: z.string(),
78
+ args: z.array(z.string()).optional(),
79
+ cwd: z.string().optional(),
80
+ env: z.record(z.string(), z.unknown()).optional(),
81
+ kind: z.enum(SANDBOX_PROCESS_KINDS).optional(),
82
+ mode: z.enum(SANDBOX_PROCESS_MODES).optional(),
83
+ metadata: z.record(z.string(), z.unknown()).optional(),
84
+ }),
85
+ output: serviceResult(processRunResult),
86
+ execute: runCommandProcessStep,
87
+ }),
88
+ readProcessStream: defineAction({
89
+ name: "sandbox.readProcessStream",
90
+ input: z.object({ processId: z.string() }),
91
+ output: serviceResult(z.object({
92
+ chunks: z.array(processStreamChunk),
93
+ byteOffset: z.number(),
94
+ })),
95
+ execute: readProcessStreamStep,
96
+ }),
97
+ startObservedProcess: defineAction({
98
+ name: "sandbox.startObservedProcess",
99
+ input: z.object({
100
+ sandboxId: z.string(),
101
+ command: z.string(),
102
+ args: z.array(z.string()).optional(),
103
+ cwd: z.string().optional(),
104
+ env: z.record(z.string(), z.unknown()).optional(),
105
+ kind: z.enum(SANDBOX_PROCESS_KINDS).optional(),
106
+ mode: z.enum(SANDBOX_PROCESS_MODES).optional(),
107
+ externalProcessId: z.string().optional(),
108
+ metadata: z.record(z.string(), z.unknown()).optional(),
109
+ }),
110
+ output: serviceResult(processRunResult),
111
+ execute: startObservedProcessStep,
112
+ }),
113
+ appendObservedProcessChunk: defineAction({
114
+ name: "sandbox.appendObservedProcessChunk",
115
+ input: z.object({
116
+ processId: z.string(),
117
+ type: z.enum(["stdout", "stderr", "status", "exit", "error", "heartbeat", "metadata"]),
118
+ data: z.record(z.string(), z.unknown()).optional(),
119
+ }),
120
+ output: serviceVoidResult,
121
+ execute: appendObservedProcessChunkStep,
122
+ }),
123
+ finishObservedProcess: defineAction({
124
+ name: "sandbox.finishObservedProcess",
125
+ input: z.object({
126
+ processId: z.string(),
127
+ status: z.enum(["exited", "failed", "killed", "lost"]).optional(),
128
+ exitCode: z.number().optional(),
129
+ errorText: z.string().optional(),
130
+ metadata: z.record(z.string(), z.unknown()).optional(),
131
+ }),
132
+ output: serviceVoidResult,
133
+ execute: finishObservedProcessStep,
134
+ }),
135
+ writeFiles: defineAction({
136
+ name: "sandbox.writeFiles",
137
+ input: z.object({
138
+ sandboxId: z.string(),
139
+ files: z.array(z.object({
140
+ path: z.string(),
141
+ contentBase64: z.string(),
142
+ })),
143
+ }),
144
+ output: serviceVoidResult,
145
+ execute: writeFilesStep,
146
+ }),
147
+ readFile: defineAction({
148
+ name: "sandbox.readFile",
149
+ input: z.object({
150
+ sandboxId: z.string(),
151
+ path: z.string(),
152
+ }),
153
+ output: serviceResult(z.object({ contentBase64: z.string() })),
154
+ execute: readFileStep,
155
+ }),
156
+ installCodexAuth: defineAction({
157
+ name: "sandbox.installCodexAuth",
158
+ input: z.object({
159
+ sandboxId: z.string(),
160
+ codexHome: z.string().optional(),
161
+ authJsonPath: z.string().optional(),
162
+ credentialsJsonPath: z.string().optional(),
163
+ configTomlPath: z.string().optional(),
164
+ }),
165
+ output: serviceResult(z.object({
166
+ authJson: z.boolean(),
167
+ credentialsJson: z.boolean(),
168
+ configToml: z.boolean(),
169
+ })),
170
+ execute: installCodexAuthStep,
171
+ }),
172
+ getSandbox: defineAction({
173
+ name: "sandbox.getSandbox",
174
+ input: z.object({ sandboxId: z.string() }),
175
+ output: serviceResult(z.record(z.string(), z.unknown())),
176
+ execute: getSandboxStep,
177
+ }),
178
+ createCheckpoint: defineAction({
179
+ name: "sandbox.createCheckpoint",
180
+ input: z.object({
181
+ sandboxId: z.string(),
182
+ comment: z.string().optional(),
183
+ }),
184
+ output: serviceResult(z.object({ checkpointId: z.string() })),
185
+ execute: createCheckpointStep,
186
+ }),
187
+ getPortUrl: defineAction({
188
+ name: "sandbox.getPortUrl",
189
+ input: z.object({
190
+ sandboxId: z.string(),
191
+ port: z.number(),
192
+ }),
193
+ output: serviceResult(z.object({ url: z.string() })),
194
+ execute: getPortUrlStep,
195
+ }),
196
+ createEkairosApp: defineAction({
197
+ name: "sandbox.createEkairosApp",
198
+ input: z.object({
199
+ sandboxId: z.string(),
200
+ appDir: z.string(),
201
+ packageManager: z.string().optional(),
202
+ instantTokenEnvName: z.string().optional(),
203
+ }),
204
+ output: serviceResult(processRunResult),
205
+ execute: createEkairosAppStep,
206
+ }),
207
+ });
208
+ //# sourceMappingURL=actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.js","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,86 @@
1
+ import { z } from "zod";
2
+ export declare const SANDBOX_EXECUTE_COMMAND_ACTION_NAME: "executeCommand";
3
+ export declare const SANDBOX_PROCESS_KINDS: readonly ["command", "service", "codex-app-server", "dev-server", "test-runner", "watcher"];
4
+ export declare const SANDBOX_PROCESS_MODES: readonly ["foreground", "background"];
5
+ export declare const SANDBOX_PROCESS_STATUSES: readonly ["starting", "running", "detached", "exited", "failed", "killed", "lost"];
6
+ export declare const SANDBOX_PROCESS_STREAM_CHUNK_TYPES: readonly ["stdout", "stderr", "status", "exit", "error", "heartbeat", "metadata"];
7
+ export declare const sandboxCommandResultSchema: z.ZodObject<{
8
+ success: z.ZodBoolean;
9
+ exitCode: z.ZodOptional<z.ZodNumber>;
10
+ output: z.ZodOptional<z.ZodString>;
11
+ error: z.ZodOptional<z.ZodString>;
12
+ streamingLogs: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
13
+ command: z.ZodOptional<z.ZodString>;
14
+ }, z.core.$loose>;
15
+ export declare const sandboxProcessStreamChunkSchema: z.ZodObject<{
16
+ version: z.ZodLiteral<1>;
17
+ at: z.ZodString;
18
+ seq: z.ZodNumber;
19
+ type: z.ZodEnum<{
20
+ error: "error";
21
+ status: "status";
22
+ stdout: "stdout";
23
+ stderr: "stderr";
24
+ exit: "exit";
25
+ heartbeat: "heartbeat";
26
+ metadata: "metadata";
27
+ }>;
28
+ sandboxId: z.ZodString;
29
+ processId: z.ZodString;
30
+ data: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
31
+ }, z.core.$loose>;
32
+ export declare const sandboxProcessRunResultSchema: z.ZodObject<{
33
+ processId: z.ZodString;
34
+ streamId: z.ZodString;
35
+ streamClientId: z.ZodString;
36
+ result: z.ZodOptional<z.ZodObject<{
37
+ success: z.ZodBoolean;
38
+ exitCode: z.ZodOptional<z.ZodNumber>;
39
+ output: z.ZodOptional<z.ZodString>;
40
+ error: z.ZodOptional<z.ZodString>;
41
+ streamingLogs: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
42
+ command: z.ZodOptional<z.ZodString>;
43
+ }, z.core.$loose>>;
44
+ }, z.core.$loose>;
45
+ export declare const sandboxExecuteCommandInputSchema: z.ZodObject<{
46
+ command: z.ZodString;
47
+ args: z.ZodOptional<z.ZodArray<z.ZodString>>;
48
+ cwd: z.ZodOptional<z.ZodString>;
49
+ env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
50
+ kind: z.ZodOptional<z.ZodEnum<{
51
+ command: "command";
52
+ service: "service";
53
+ "codex-app-server": "codex-app-server";
54
+ "dev-server": "dev-server";
55
+ "test-runner": "test-runner";
56
+ watcher: "watcher";
57
+ }>>;
58
+ mode: z.ZodOptional<z.ZodEnum<{
59
+ foreground: "foreground";
60
+ background: "background";
61
+ }>>;
62
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
63
+ }, z.core.$strict>;
64
+ export declare const sandboxExecuteCommandOutputSchema: z.ZodObject<{
65
+ sandboxId: z.ZodOptional<z.ZodString>;
66
+ processId: z.ZodOptional<z.ZodString>;
67
+ streamId: z.ZodOptional<z.ZodString>;
68
+ streamClientId: z.ZodOptional<z.ZodString>;
69
+ success: z.ZodBoolean;
70
+ exitCode: z.ZodOptional<z.ZodNumber>;
71
+ output: z.ZodOptional<z.ZodString>;
72
+ error: z.ZodOptional<z.ZodString>;
73
+ command: z.ZodOptional<z.ZodString>;
74
+ status: z.ZodOptional<z.ZodString>;
75
+ durationMs: z.ZodOptional<z.ZodNumber>;
76
+ }, z.core.$strip>;
77
+ export type SandboxProcessKind = (typeof SANDBOX_PROCESS_KINDS)[number];
78
+ export type SandboxProcessMode = (typeof SANDBOX_PROCESS_MODES)[number];
79
+ export type SandboxProcessStatus = (typeof SANDBOX_PROCESS_STATUSES)[number];
80
+ export type SandboxProcessStreamChunkType = (typeof SANDBOX_PROCESS_STREAM_CHUNK_TYPES)[number];
81
+ export type SandboxCommandResult = z.infer<typeof sandboxCommandResultSchema>;
82
+ export type SandboxProcessStreamChunk = z.infer<typeof sandboxProcessStreamChunkSchema>;
83
+ export type SandboxProcessRunResult = z.infer<typeof sandboxProcessRunResultSchema>;
84
+ export type SandboxExecuteCommandInput = z.infer<typeof sandboxExecuteCommandInputSchema>;
85
+ export type SandboxExecuteCommandOutput = z.infer<typeof sandboxExecuteCommandOutputSchema>;
86
+ //# sourceMappingURL=contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,eAAO,MAAM,mCAAmC,EAAG,gBAAyB,CAAA;AAE5E,eAAO,MAAM,qBAAqB,6FAOxB,CAAA;AAEV,eAAO,MAAM,qBAAqB,uCAAwC,CAAA;AAE1E,eAAO,MAAM,wBAAwB,oFAQ3B,CAAA;AAEV,eAAO,MAAM,kCAAkC,mFAQrC,CAAA;AAEV,eAAO,MAAM,0BAA0B;;;;;;;iBASvB,CAAA;AAEhB,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;iBAU5B,CAAA;AAEhB,eAAO,MAAM,6BAA6B;;;;;;;;;;;;iBAO1B,CAAA;AAEhB,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;kBAUlC,CAAA;AAEX,eAAO,MAAM,iCAAiC;;;;;;;;;;;;iBAY5C,CAAA;AAEF,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAA;AACvE,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAA;AACvE,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAA;AAC5E,MAAM,MAAM,6BAA6B,GACvC,CAAC,OAAO,kCAAkC,CAAC,CAAC,MAAM,CAAC,CAAA;AACrD,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAA;AAC7E,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAA;AACvF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAA;AACnF,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAA;AACzF,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAA"}
@@ -0,0 +1,83 @@
1
+ import { z } from "zod";
2
+ export const SANDBOX_EXECUTE_COMMAND_ACTION_NAME = "executeCommand";
3
+ export const SANDBOX_PROCESS_KINDS = [
4
+ "command",
5
+ "service",
6
+ "codex-app-server",
7
+ "dev-server",
8
+ "test-runner",
9
+ "watcher",
10
+ ];
11
+ export const SANDBOX_PROCESS_MODES = ["foreground", "background"];
12
+ export const SANDBOX_PROCESS_STATUSES = [
13
+ "starting",
14
+ "running",
15
+ "detached",
16
+ "exited",
17
+ "failed",
18
+ "killed",
19
+ "lost",
20
+ ];
21
+ export const SANDBOX_PROCESS_STREAM_CHUNK_TYPES = [
22
+ "stdout",
23
+ "stderr",
24
+ "status",
25
+ "exit",
26
+ "error",
27
+ "heartbeat",
28
+ "metadata",
29
+ ];
30
+ export const sandboxCommandResultSchema = z
31
+ .object({
32
+ success: z.boolean(),
33
+ exitCode: z.number().optional(),
34
+ output: z.string().optional(),
35
+ error: z.string().optional(),
36
+ streamingLogs: z.array(z.unknown()).optional(),
37
+ command: z.string().optional(),
38
+ })
39
+ .passthrough();
40
+ export const sandboxProcessStreamChunkSchema = z
41
+ .object({
42
+ version: z.literal(1),
43
+ at: z.string(),
44
+ seq: z.number(),
45
+ type: z.enum(SANDBOX_PROCESS_STREAM_CHUNK_TYPES),
46
+ sandboxId: z.string(),
47
+ processId: z.string(),
48
+ data: z.record(z.string(), z.unknown()).optional(),
49
+ })
50
+ .passthrough();
51
+ export const sandboxProcessRunResultSchema = z
52
+ .object({
53
+ processId: z.string(),
54
+ streamId: z.string(),
55
+ streamClientId: z.string(),
56
+ result: sandboxCommandResultSchema.optional(),
57
+ })
58
+ .passthrough();
59
+ export const sandboxExecuteCommandInputSchema = z
60
+ .object({
61
+ command: z.string().min(1),
62
+ args: z.array(z.string()).optional(),
63
+ cwd: z.string().min(1).optional(),
64
+ env: z.record(z.string(), z.unknown()).optional(),
65
+ kind: z.enum(SANDBOX_PROCESS_KINDS).optional(),
66
+ mode: z.enum(SANDBOX_PROCESS_MODES).optional(),
67
+ metadata: z.record(z.string(), z.unknown()).optional(),
68
+ })
69
+ .strict();
70
+ export const sandboxExecuteCommandOutputSchema = z.object({
71
+ sandboxId: z.string().min(1).optional(),
72
+ processId: z.string().min(1).optional(),
73
+ streamId: z.string().min(1).optional(),
74
+ streamClientId: z.string().min(1).optional(),
75
+ success: z.boolean(),
76
+ exitCode: z.number().int().optional(),
77
+ output: z.string().optional(),
78
+ error: z.string().optional(),
79
+ command: z.string().optional(),
80
+ status: z.string().optional(),
81
+ durationMs: z.number().optional(),
82
+ });
83
+ //# sourceMappingURL=contract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { sandboxDomain } from "./actions.js";
2
+ //# sourceMappingURL=domain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domain.d.ts","sourceRoot":"","sources":["../src/domain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA"}
package/dist/domain.js ADDED
@@ -0,0 +1,2 @@
1
+ export { sandboxDomain } from "./actions.js";
2
+ //# sourceMappingURL=domain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domain.js","sourceRoot":"","sources":["../src/domain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,11 @@
1
1
  export type { SandboxConfig, SandboxId, SandboxProvider, SandboxRunCommandResult, } from "./types.js";
2
- export { sandboxDomain } from "./schema.js";
2
+ export { sandboxDomain } from "./actions.js";
3
+ export { sandboxDomain as sandboxSchemaDomain } from "./schema.js";
4
+ export { SANDBOX_EXECUTE_COMMAND_ACTION_NAME, SANDBOX_PROCESS_KINDS, SANDBOX_PROCESS_MODES, SANDBOX_PROCESS_STATUSES, SANDBOX_PROCESS_STREAM_CHUNK_TYPES, sandboxCommandResultSchema, sandboxExecuteCommandInputSchema, sandboxExecuteCommandOutputSchema, sandboxProcessRunResultSchema, sandboxProcessStreamChunkSchema, } from "./contract.js";
5
+ export type { SandboxCommandResult, SandboxExecuteCommandInput, SandboxExecuteCommandOutput, SandboxProcessStreamChunkType, } from "./contract.js";
6
+ export { sandboxDomain as publicSandboxDomain, } from "./public.js";
7
+ export { Sandbox } from "./sandbox.js";
8
+ export type { SandboxActions, SerializedSandbox, SerializedSandboxState, } from "./sandbox.js";
3
9
  export { SandboxService } from "./service.js";
4
10
  export type { CommandResult } from "./commands.js";
5
11
  export type { SandboxCommandRunData, SandboxProcessKind, SandboxProcessMode, SandboxProcessRunResult, SandboxProcessStatus, SandboxProcessStreamChunk, } from "./service.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,aAAa,EACb,SAAS,EACT,eAAe,EACf,uBAAuB,GACxB,MAAM,YAAY,CAAA;AAEnB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAClD,YAAY,EACV,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,uBAAuB,EACvB,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,EAAE,0BAA0B,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAA;AAC3F,YAAY,EAAE,2BAA2B,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAE5F,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AACvD,YAAY,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEzF,OAAO,EACL,mBAAmB,EACnB,4BAA4B,EAC5B,cAAc,EACd,OAAO,EACP,qBAAqB,EACrB,cAAc,GACf,MAAM,cAAc,CAAA;AACrB,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,aAAa,EACb,SAAS,EACT,eAAe,EACf,uBAAuB,GACxB,MAAM,YAAY,CAAA;AAEnB,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,aAAa,IAAI,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAClE,OAAO,EACL,mCAAmC,EACnC,qBAAqB,EACrB,qBAAqB,EACrB,wBAAwB,EACxB,kCAAkC,EAClC,0BAA0B,EAC1B,gCAAgC,EAChC,iCAAiC,EACjC,6BAA6B,EAC7B,+BAA+B,GAChC,MAAM,eAAe,CAAA;AACtB,YAAY,EACV,oBAAoB,EACpB,0BAA0B,EAC1B,2BAA2B,EAC3B,6BAA6B,GAC9B,MAAM,eAAe,CAAA;AACtB,OAAO,EACL,aAAa,IAAI,mBAAmB,GACrC,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,YAAY,EACV,cAAc,EACd,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAClD,YAAY,EACV,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,uBAAuB,EACvB,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,EAAE,0BAA0B,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAA;AAC3F,YAAY,EAAE,2BAA2B,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAE5F,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AACvD,YAAY,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEzF,OAAO,EACL,mBAAmB,EACnB,4BAA4B,EAC5B,cAAc,EACd,OAAO,EACP,qBAAqB,EACrB,cAAc,GACf,MAAM,cAAc,CAAA;AACrB,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA"}
package/dist/index.js CHANGED
@@ -1,4 +1,8 @@
1
- export { sandboxDomain } from "./schema.js";
1
+ export { sandboxDomain } from "./actions.js";
2
+ export { sandboxDomain as sandboxSchemaDomain } from "./schema.js";
3
+ export { SANDBOX_EXECUTE_COMMAND_ACTION_NAME, SANDBOX_PROCESS_KINDS, SANDBOX_PROCESS_MODES, SANDBOX_PROCESS_STATUSES, SANDBOX_PROCESS_STREAM_CHUNK_TYPES, sandboxCommandResultSchema, sandboxExecuteCommandInputSchema, sandboxExecuteCommandOutputSchema, sandboxProcessRunResultSchema, sandboxProcessStreamChunkSchema, } from "./contract.js";
4
+ export { sandboxDomain as publicSandboxDomain, } from "./public.js";
5
+ export { Sandbox } from "./sandbox.js";
2
6
  export { SandboxService } from "./service.js";
3
7
  export { SandboxCommandRun } from "./service.js";
4
8
  export { runCommandInSandbox } from "./commands.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAU7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,EAAE,0BAA0B,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAA;AAG3F,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAGvD,OAAO,EACL,mBAAmB,EACnB,4BAA4B,EAC5B,cAAc,EACd,OAAO,EACP,qBAAqB,EACrB,cAAc,GACf,MAAM,cAAc,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,aAAa,IAAI,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAClE,OAAO,EACL,mCAAmC,EACnC,qBAAqB,EACrB,qBAAqB,EACrB,wBAAwB,EACxB,kCAAkC,EAClC,0BAA0B,EAC1B,gCAAgC,EAChC,iCAAiC,EACjC,6BAA6B,EAC7B,+BAA+B,GAChC,MAAM,eAAe,CAAA;AAOtB,OAAO,EACL,aAAa,IAAI,mBAAmB,GACrC,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAMtC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAU7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,EAAE,0BAA0B,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAA;AAG3F,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAGvD,OAAO,EACL,mBAAmB,EACnB,4BAA4B,EAC5B,cAAc,EACd,OAAO,EACP,qBAAqB,EACrB,cAAc,GACf,MAAM,cAAc,CAAA"}
@@ -0,0 +1,14 @@
1
+ import { Daytona, Image, type DaytonaConfig } from "@daytonaio/sdk";
2
+ import type { SandboxConfig } from "../types.js";
3
+ export declare function getDaytonaConfig(): DaytonaConfig;
4
+ export declare function resolveDaytonaLanguage(config: SandboxConfig): "python" | "typescript" | "javascript" | undefined;
5
+ export declare function resolveDaytonaVolumes(daytona: Daytona, volumes: Array<{
6
+ volumeId?: string;
7
+ volumeName?: string;
8
+ mountPath: string;
9
+ }>): Promise<Array<{
10
+ volumeId: string;
11
+ mountPath: string;
12
+ }>>;
13
+ export declare function buildDeclarativeImage(config: SandboxConfig): Image | undefined;
14
+ //# sourceMappingURL=daytona.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daytona.d.ts","sourceRoot":"","sources":["../../src/providers/daytona.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAEnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAEhD,wBAAgB,gBAAgB,IAAI,aAAa,CAyBhD;AAiBD,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,aAAa,GACpB,QAAQ,GAAG,YAAY,GAAG,YAAY,GAAG,SAAS,CAOpD;AAED,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,KAAK,CAAC;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,GAC5E,OAAO,CAAC,KAAK,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAkEzD;AAYD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,aAAa,GAAG,KAAK,GAAG,SAAS,CAkC9E"}
@@ -0,0 +1,153 @@
1
+ import { Image } from "@daytonaio/sdk";
2
+ export function getDaytonaConfig() {
3
+ const apiKey = String(process.env.DAYTONA_API_KEY ?? "").trim();
4
+ const apiUrl = String(process.env.DAYTONA_API_URL ?? "").trim() ||
5
+ String(process.env.DAYTONA_SERVER_URL ?? "").trim();
6
+ const jwtToken = String(process.env.DAYTONA_JWT_TOKEN ?? "").trim();
7
+ const organizationId = String(process.env.DAYTONA_ORGANIZATION_ID ?? "").trim();
8
+ const target = String(process.env.DAYTONA_TARGET ?? "").trim();
9
+ if (!apiUrl) {
10
+ throw new Error("Missing required Daytona env var: DAYTONA_API_URL (or DAYTONA_SERVER_URL)");
11
+ }
12
+ if (!apiKey && !(jwtToken && organizationId)) {
13
+ throw new Error("Missing required Daytona env vars: DAYTONA_API_KEY or DAYTONA_JWT_TOKEN + DAYTONA_ORGANIZATION_ID");
14
+ }
15
+ return {
16
+ apiUrl,
17
+ target: target || undefined,
18
+ apiKey: apiKey || undefined,
19
+ jwtToken: jwtToken || undefined,
20
+ organizationId: organizationId || undefined,
21
+ };
22
+ }
23
+ function parseOptionalBoolean(value) {
24
+ const normalized = String(value ?? "").trim().toLowerCase();
25
+ if (!normalized)
26
+ return undefined;
27
+ if (["1", "true", "yes", "y", "on"].includes(normalized))
28
+ return true;
29
+ if (["0", "false", "no", "n", "off"].includes(normalized))
30
+ return false;
31
+ return undefined;
32
+ }
33
+ function parseCsvList(value) {
34
+ return String(value ?? "")
35
+ .split(",")
36
+ .map((entry) => entry.trim())
37
+ .filter(Boolean);
38
+ }
39
+ export function resolveDaytonaLanguage(config) {
40
+ if (config.daytona?.language)
41
+ return config.daytona.language;
42
+ const runtime = String(config.runtime ?? "").toLowerCase();
43
+ if (runtime.startsWith("python"))
44
+ return "python";
45
+ if (runtime.startsWith("node"))
46
+ return "javascript";
47
+ if (runtime.startsWith("ts") || runtime.includes("typescript"))
48
+ return "typescript";
49
+ return undefined;
50
+ }
51
+ export async function resolveDaytonaVolumes(daytona, volumes) {
52
+ if (!volumes || volumes.length === 0)
53
+ return [];
54
+ const resolved = [];
55
+ const shouldLog = parseOptionalBoolean(process.env.SANDBOX_DAYTONA_LOG_VOLUMES) ?? false;
56
+ for (const volume of volumes) {
57
+ const mountPath = String(volume.mountPath ?? "").trim();
58
+ if (!mountPath)
59
+ continue;
60
+ const volumeId = String(volume.volumeId ?? "").trim();
61
+ if (volumeId) {
62
+ resolved.push({ volumeId, mountPath });
63
+ continue;
64
+ }
65
+ const volumeName = String(volume.volumeName ?? "").trim();
66
+ if (!volumeName) {
67
+ throw new Error("Daytona volume requires volumeId or volumeName");
68
+ }
69
+ let resolvedVolume = await daytona.volume.get(volumeName, true);
70
+ const stateRaw = String(resolvedVolume?.state ?? "").trim().toLowerCase();
71
+ const waitStates = new Set([
72
+ "creating",
73
+ "provisioning",
74
+ "pending",
75
+ "pending_create",
76
+ "pending-create",
77
+ "initializing",
78
+ ]);
79
+ const readyStates = new Set(["available", "active", "ready"]);
80
+ if (waitStates.has(stateRaw)) {
81
+ const maxAttempts = 12;
82
+ for (let attempt = 1; attempt <= maxAttempts; attempt++) {
83
+ await new Promise((r) => setTimeout(r, 1000 * attempt));
84
+ resolvedVolume = await daytona.volume.get(volumeName, true);
85
+ const state = String(resolvedVolume?.state ?? "").trim().toLowerCase();
86
+ if (shouldLog) {
87
+ console.log(`[daytona:volume] name=${volumeName} state=${state} attempt=${attempt}/${maxAttempts}`);
88
+ }
89
+ if (readyStates.has(state))
90
+ break;
91
+ }
92
+ }
93
+ const finalState = String(resolvedVolume?.state ?? "").trim().toLowerCase();
94
+ if (finalState && !readyStates.has(finalState)) {
95
+ if (shouldLog) {
96
+ console.log(`[daytona:volume] name=${volumeName} state=${finalState} mountPath=${mountPath} (not ready)`);
97
+ }
98
+ throw new Error(`Daytona volume not ready: ${volumeName} (state=${finalState})`);
99
+ }
100
+ const resolvedId = String(resolvedVolume?.id ?? "").trim();
101
+ if (!resolvedId) {
102
+ throw new Error(`Daytona volume not resolved: ${volumeName}`);
103
+ }
104
+ if (shouldLog) {
105
+ console.log(`[daytona:volume] name=${volumeName} id=${resolvedId} mountPath=${mountPath}`);
106
+ }
107
+ resolved.push({ volumeId: resolvedId, mountPath });
108
+ }
109
+ return resolved;
110
+ }
111
+ function resolvePythonVersion(runtime) {
112
+ const fromEnv = String(process.env.SANDBOX_DAYTONA_DECLARATIVE_PYTHON ?? "").trim() ||
113
+ String(process.env.STRUCTURE_DAYTONA_DECLARATIVE_PYTHON ?? "").trim();
114
+ if (fromEnv)
115
+ return fromEnv;
116
+ const match = String(runtime ?? "").match(/python\s*([0-9]+\.[0-9]+)/i);
117
+ if (match?.[1])
118
+ return match[1];
119
+ return "3.12";
120
+ }
121
+ export function buildDeclarativeImage(config) {
122
+ const imageFlag = String(config.daytona?.image ?? "").trim();
123
+ const envFlag = parseOptionalBoolean(process.env.SANDBOX_DAYTONA_DECLARATIVE_IMAGE) ??
124
+ parseOptionalBoolean(process.env.STRUCTURE_DAYTONA_DECLARATIVE_IMAGE) ??
125
+ false;
126
+ const useDeclarative = envFlag || imageFlag.startsWith("declarative");
127
+ if (!useDeclarative)
128
+ return undefined;
129
+ const baseImage = String(process.env.SANDBOX_DAYTONA_DECLARATIVE_BASE ?? "").trim() ||
130
+ String(process.env.STRUCTURE_DAYTONA_DECLARATIVE_BASE ?? "").trim();
131
+ const pythonVersion = resolvePythonVersion(config.runtime);
132
+ const isStructureDataset = config.purpose === "structure.dataset" || typeof config.params?.datasetId === "string";
133
+ const defaultPackages = isStructureDataset ? ["pandas", "openpyxl"] : [];
134
+ const packages = [
135
+ ...parseCsvList(process.env.SANDBOX_DAYTONA_DECLARATIVE_PIP),
136
+ ...parseCsvList(process.env.STRUCTURE_DAYTONA_DECLARATIVE_PIP),
137
+ ...defaultPackages,
138
+ ];
139
+ const uniquePackages = Array.from(new Set(packages));
140
+ let image;
141
+ if (baseImage) {
142
+ image = Image.base(baseImage);
143
+ }
144
+ else {
145
+ image = Image.debianSlim(pythonVersion);
146
+ }
147
+ if (uniquePackages.length > 0) {
148
+ image = image.pipInstall(uniquePackages);
149
+ }
150
+ image = image.workdir("/home/daytona");
151
+ return image;
152
+ }
153
+ //# sourceMappingURL=daytona.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daytona.js","sourceRoot":"","sources":["../../src/providers/daytona.ts"],"names":[],"mappings":"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"}