@ekairos/sandbox 1.22.39-beta.development.0 → 1.22.40-beta.development.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.
- package/dist/actions.d.ts +132 -2
- package/dist/actions.d.ts.map +1 -1
- package/dist/actions.js +19 -74
- package/dist/actions.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/providers/daytona.d.ts +14 -0
- package/dist/providers/daytona.d.ts.map +1 -0
- package/dist/providers/daytona.js +153 -0
- package/dist/providers/daytona.js.map +1 -0
- package/dist/providers/provider.d.ts +3 -0
- package/dist/providers/provider.d.ts.map +1 -0
- package/dist/providers/provider.js +18 -0
- package/dist/providers/provider.js.map +1 -0
- package/dist/providers/sprites.d.ts +39 -0
- package/dist/providers/sprites.d.ts.map +1 -0
- package/dist/providers/sprites.js +234 -0
- package/dist/providers/sprites.js.map +1 -0
- package/dist/providers/types.d.ts +15 -0
- package/dist/providers/types.d.ts.map +1 -0
- package/dist/providers/types.js +9 -0
- package/dist/providers/types.js.map +1 -0
- package/dist/providers/vercel.d.ts +23 -0
- package/dist/providers/vercel.d.ts.map +1 -0
- package/dist/providers/vercel.js +160 -0
- package/dist/providers/vercel.js.map +1 -0
- package/dist/public.d.ts +62 -3
- package/dist/public.d.ts.map +1 -1
- package/dist/public.js +1 -1
- package/dist/public.js.map +1 -1
- package/dist/sandbox.d.ts +107 -0
- package/dist/sandbox.d.ts.map +1 -0
- package/dist/sandbox.js +175 -0
- package/dist/sandbox.js.map +1 -0
- package/dist/schema.d.ts +154 -1
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +59 -1
- package/dist/schema.js.map +1 -1
- package/dist/service.d.ts +5 -43
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +37 -565
- package/dist/service.js.map +1 -1
- package/package.json +10 -2
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { WORKFLOW_DESERIALIZE, WORKFLOW_SERIALIZE } from "@workflow/serde";
|
|
2
|
+
import type { EkairosRuntime, RuntimeForDomain } from "@ekairos/domain/runtime";
|
|
3
|
+
import { type ContextAction } from "@ekairos/events";
|
|
4
|
+
import { z } from "zod";
|
|
5
|
+
import { sandboxDomain } from "./actions.js";
|
|
6
|
+
import type { SandboxConfig, SandboxProvider } from "./types.js";
|
|
7
|
+
type AnyDomainRuntime = EkairosRuntime<Record<string, unknown>, any, any>;
|
|
8
|
+
type SandboxRuntimeHandle<Runtime extends AnyDomainRuntime> = RuntimeForDomain<Runtime, typeof sandboxDomain>;
|
|
9
|
+
declare const SANDBOX_RUN_COMMAND_ACTION_NAME: "sandbox_run_command";
|
|
10
|
+
declare const sandboxRunCommandInputSchema: z.ZodObject<{
|
|
11
|
+
command: z.ZodString;
|
|
12
|
+
args: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
13
|
+
cwd: z.ZodOptional<z.ZodString>;
|
|
14
|
+
env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
15
|
+
kind: z.ZodOptional<z.ZodEnum<{
|
|
16
|
+
command: "command";
|
|
17
|
+
service: "service";
|
|
18
|
+
"codex-app-server": "codex-app-server";
|
|
19
|
+
"dev-server": "dev-server";
|
|
20
|
+
"test-runner": "test-runner";
|
|
21
|
+
watcher: "watcher";
|
|
22
|
+
}>>;
|
|
23
|
+
mode: z.ZodOptional<z.ZodEnum<{
|
|
24
|
+
foreground: "foreground";
|
|
25
|
+
background: "background";
|
|
26
|
+
}>>;
|
|
27
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
28
|
+
}, z.core.$strict>;
|
|
29
|
+
declare const sandboxRunCommandOutputSchema: z.ZodObject<{
|
|
30
|
+
sandboxId: z.ZodOptional<z.ZodString>;
|
|
31
|
+
processId: z.ZodOptional<z.ZodString>;
|
|
32
|
+
streamId: z.ZodOptional<z.ZodString>;
|
|
33
|
+
streamClientId: z.ZodOptional<z.ZodString>;
|
|
34
|
+
success: z.ZodBoolean;
|
|
35
|
+
exitCode: z.ZodOptional<z.ZodNumber>;
|
|
36
|
+
output: z.ZodOptional<z.ZodString>;
|
|
37
|
+
error: z.ZodOptional<z.ZodString>;
|
|
38
|
+
command: z.ZodOptional<z.ZodString>;
|
|
39
|
+
status: z.ZodOptional<z.ZodString>;
|
|
40
|
+
durationMs: z.ZodOptional<z.ZodNumber>;
|
|
41
|
+
}, z.core.$strip>;
|
|
42
|
+
export type SandboxRunCommandInput = z.infer<typeof sandboxRunCommandInputSchema>;
|
|
43
|
+
export type SandboxRunCommandOutput = z.infer<typeof sandboxRunCommandOutputSchema>;
|
|
44
|
+
export type SandboxActions = {
|
|
45
|
+
[SANDBOX_RUN_COMMAND_ACTION_NAME]: ContextAction<typeof sandboxRunCommandInputSchema, typeof sandboxRunCommandOutputSchema>;
|
|
46
|
+
};
|
|
47
|
+
export type SerializedSandboxState = {
|
|
48
|
+
version: 1;
|
|
49
|
+
sandboxId: string;
|
|
50
|
+
provider?: SandboxProvider;
|
|
51
|
+
externalSandboxId?: string;
|
|
52
|
+
runtime?: string;
|
|
53
|
+
ports?: number[];
|
|
54
|
+
purpose?: string;
|
|
55
|
+
};
|
|
56
|
+
export type SerializedSandbox = {
|
|
57
|
+
runtime: SandboxRuntimeHandle<any>;
|
|
58
|
+
state: SerializedSandboxState;
|
|
59
|
+
};
|
|
60
|
+
export declare class Sandbox<Runtime extends AnyDomainRuntime = AnyDomainRuntime> {
|
|
61
|
+
static readonly runCommandActionName: "sandbox_run_command";
|
|
62
|
+
static readonly runCommandInputSchema: z.ZodObject<{
|
|
63
|
+
command: z.ZodString;
|
|
64
|
+
args: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
65
|
+
cwd: z.ZodOptional<z.ZodString>;
|
|
66
|
+
env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
67
|
+
kind: z.ZodOptional<z.ZodEnum<{
|
|
68
|
+
command: "command";
|
|
69
|
+
service: "service";
|
|
70
|
+
"codex-app-server": "codex-app-server";
|
|
71
|
+
"dev-server": "dev-server";
|
|
72
|
+
"test-runner": "test-runner";
|
|
73
|
+
watcher: "watcher";
|
|
74
|
+
}>>;
|
|
75
|
+
mode: z.ZodOptional<z.ZodEnum<{
|
|
76
|
+
foreground: "foreground";
|
|
77
|
+
background: "background";
|
|
78
|
+
}>>;
|
|
79
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
80
|
+
}, z.core.$strict>;
|
|
81
|
+
static readonly runCommandOutputSchema: z.ZodObject<{
|
|
82
|
+
sandboxId: z.ZodOptional<z.ZodString>;
|
|
83
|
+
processId: z.ZodOptional<z.ZodString>;
|
|
84
|
+
streamId: z.ZodOptional<z.ZodString>;
|
|
85
|
+
streamClientId: z.ZodOptional<z.ZodString>;
|
|
86
|
+
success: z.ZodBoolean;
|
|
87
|
+
exitCode: z.ZodOptional<z.ZodNumber>;
|
|
88
|
+
output: z.ZodOptional<z.ZodString>;
|
|
89
|
+
error: z.ZodOptional<z.ZodString>;
|
|
90
|
+
command: z.ZodOptional<z.ZodString>;
|
|
91
|
+
status: z.ZodOptional<z.ZodString>;
|
|
92
|
+
durationMs: z.ZodOptional<z.ZodNumber>;
|
|
93
|
+
}, z.core.$strip>;
|
|
94
|
+
private readonly runtime;
|
|
95
|
+
private readonly stateValue;
|
|
96
|
+
private constructor();
|
|
97
|
+
static create<Runtime extends AnyDomainRuntime>(runtime: SandboxRuntimeHandle<Runtime>, config: SandboxConfig): Promise<Sandbox<Runtime>>;
|
|
98
|
+
static from<Runtime extends AnyDomainRuntime>(runtime: SandboxRuntimeHandle<Runtime>, state: SerializedSandboxState): Sandbox<Runtime>;
|
|
99
|
+
static [WORKFLOW_SERIALIZE](instance: Sandbox<any>): SerializedSandbox;
|
|
100
|
+
static [WORKFLOW_DESERIALIZE](data: SerializedSandbox): Sandbox;
|
|
101
|
+
get sandboxId(): string;
|
|
102
|
+
get state(): SerializedSandboxState;
|
|
103
|
+
runCommand(input: SandboxRunCommandInput): Promise<SandboxRunCommandOutput>;
|
|
104
|
+
actions(): SandboxActions;
|
|
105
|
+
}
|
|
106
|
+
export {};
|
|
107
|
+
//# sourceMappingURL=sandbox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../src/sandbox.ts"],"names":[],"mappings":"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"}
|
package/dist/sandbox.js
ADDED
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import { WORKFLOW_DESERIALIZE, WORKFLOW_SERIALIZE } from "@workflow/serde";
|
|
2
|
+
import { defineAction } from "@ekairos/events";
|
|
3
|
+
import { z } from "zod";
|
|
4
|
+
import { sandboxDomain } from "./actions.js";
|
|
5
|
+
const SANDBOX_RUN_COMMAND_ACTION_NAME = "sandbox_run_command";
|
|
6
|
+
const sandboxRunCommandInputSchema = z
|
|
7
|
+
.object({
|
|
8
|
+
command: z.string().min(1),
|
|
9
|
+
args: z.array(z.string()).optional(),
|
|
10
|
+
cwd: z.string().min(1).optional(),
|
|
11
|
+
env: z.record(z.string(), z.unknown()).optional(),
|
|
12
|
+
kind: z
|
|
13
|
+
.enum(["command", "service", "codex-app-server", "dev-server", "test-runner", "watcher"])
|
|
14
|
+
.optional(),
|
|
15
|
+
mode: z.enum(["foreground", "background"]).optional(),
|
|
16
|
+
metadata: z.record(z.string(), z.unknown()).optional(),
|
|
17
|
+
})
|
|
18
|
+
.strict();
|
|
19
|
+
const sandboxRunCommandOutputSchema = z.object({
|
|
20
|
+
sandboxId: z.string().min(1).optional(),
|
|
21
|
+
processId: z.string().min(1).optional(),
|
|
22
|
+
streamId: z.string().min(1).optional(),
|
|
23
|
+
streamClientId: z.string().min(1).optional(),
|
|
24
|
+
success: z.boolean(),
|
|
25
|
+
exitCode: z.number().int().optional(),
|
|
26
|
+
output: z.string().optional(),
|
|
27
|
+
error: z.string().optional(),
|
|
28
|
+
command: z.string().optional(),
|
|
29
|
+
status: z.string().optional(),
|
|
30
|
+
durationMs: z.number().optional(),
|
|
31
|
+
});
|
|
32
|
+
function cleanRecord(value) {
|
|
33
|
+
return Object.fromEntries(Object.entries(value).filter(([, entry]) => entry !== undefined));
|
|
34
|
+
}
|
|
35
|
+
function asString(value) {
|
|
36
|
+
if (typeof value === "string")
|
|
37
|
+
return value;
|
|
38
|
+
if (value === null || value === undefined)
|
|
39
|
+
return "";
|
|
40
|
+
return String(value);
|
|
41
|
+
}
|
|
42
|
+
function asNumber(value) {
|
|
43
|
+
const number = typeof value === "number" ? value : Number(value);
|
|
44
|
+
return Number.isFinite(number) ? number : undefined;
|
|
45
|
+
}
|
|
46
|
+
function asPorts(value) {
|
|
47
|
+
if (!Array.isArray(value))
|
|
48
|
+
return undefined;
|
|
49
|
+
const ports = value
|
|
50
|
+
.map((entry) => Number(entry))
|
|
51
|
+
.filter((entry) => Number.isInteger(entry) && entry > 0);
|
|
52
|
+
return ports.length > 0 ? ports : undefined;
|
|
53
|
+
}
|
|
54
|
+
async function readSandboxState(db, sandboxId) {
|
|
55
|
+
const result = await db.query({
|
|
56
|
+
sandbox_sandboxes: { $: { where: { id: sandboxId }, limit: 1 } },
|
|
57
|
+
});
|
|
58
|
+
const row = result?.sandbox_sandboxes?.[0] ?? {};
|
|
59
|
+
return cleanRecord({
|
|
60
|
+
version: 1,
|
|
61
|
+
sandboxId,
|
|
62
|
+
provider: asString(row.provider),
|
|
63
|
+
externalSandboxId: asString(row.externalSandboxId) || undefined,
|
|
64
|
+
runtime: asString(row.runtime) || undefined,
|
|
65
|
+
ports: asPorts(row.ports),
|
|
66
|
+
purpose: asString(row.purpose) || undefined,
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
function normalizeState(state) {
|
|
70
|
+
const sandboxId = asString(state.sandboxId).trim();
|
|
71
|
+
if (!sandboxId) {
|
|
72
|
+
throw new Error("Sandbox requires a sandboxId.");
|
|
73
|
+
}
|
|
74
|
+
return cleanRecord({
|
|
75
|
+
version: 1,
|
|
76
|
+
sandboxId,
|
|
77
|
+
provider: state.provider,
|
|
78
|
+
externalSandboxId: asString(state.externalSandboxId).trim() || undefined,
|
|
79
|
+
runtime: asString(state.runtime).trim() || undefined,
|
|
80
|
+
ports: asPorts(state.ports),
|
|
81
|
+
purpose: asString(state.purpose).trim() || undefined,
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
export class Sandbox {
|
|
85
|
+
constructor(runtime, state) {
|
|
86
|
+
this.runtime = runtime;
|
|
87
|
+
this.stateValue = normalizeState(state);
|
|
88
|
+
}
|
|
89
|
+
static async create(runtime, config) {
|
|
90
|
+
"use step";
|
|
91
|
+
const scoped = await runtime.use(sandboxDomain);
|
|
92
|
+
const { SandboxService } = await import("./service.js");
|
|
93
|
+
const service = new SandboxService(scoped.db);
|
|
94
|
+
const created = await service.createSandbox(config);
|
|
95
|
+
if (!created.ok) {
|
|
96
|
+
throw new Error(created.error);
|
|
97
|
+
}
|
|
98
|
+
const state = await readSandboxState(scoped.db, created.data.sandboxId);
|
|
99
|
+
return new Sandbox(runtime, state);
|
|
100
|
+
}
|
|
101
|
+
static from(runtime, state) {
|
|
102
|
+
return new Sandbox(runtime, state);
|
|
103
|
+
}
|
|
104
|
+
static [WORKFLOW_SERIALIZE](instance) {
|
|
105
|
+
return {
|
|
106
|
+
runtime: instance.runtime,
|
|
107
|
+
state: instance.stateValue,
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
static [WORKFLOW_DESERIALIZE](data) {
|
|
111
|
+
return new Sandbox(data.runtime, data.state);
|
|
112
|
+
}
|
|
113
|
+
get sandboxId() {
|
|
114
|
+
return this.stateValue.sandboxId;
|
|
115
|
+
}
|
|
116
|
+
get state() {
|
|
117
|
+
return { ...this.stateValue };
|
|
118
|
+
}
|
|
119
|
+
async runCommand(input) {
|
|
120
|
+
"use step";
|
|
121
|
+
const parsed = sandboxRunCommandInputSchema.parse(input);
|
|
122
|
+
const domain = await this.runtime.use(sandboxDomain);
|
|
123
|
+
const run = await domain.actions.runCommandProcess({
|
|
124
|
+
sandboxId: this.stateValue.sandboxId,
|
|
125
|
+
command: parsed.command,
|
|
126
|
+
args: parsed.args ?? [],
|
|
127
|
+
cwd: parsed.cwd,
|
|
128
|
+
env: parsed.env,
|
|
129
|
+
kind: parsed.kind ?? "command",
|
|
130
|
+
mode: parsed.mode ?? "foreground",
|
|
131
|
+
metadata: {
|
|
132
|
+
source: "sandbox.action",
|
|
133
|
+
...(parsed.metadata ?? {}),
|
|
134
|
+
},
|
|
135
|
+
});
|
|
136
|
+
if (!run.ok) {
|
|
137
|
+
return sandboxRunCommandOutputSchema.parse({
|
|
138
|
+
sandboxId: this.stateValue.sandboxId,
|
|
139
|
+
success: false,
|
|
140
|
+
error: run.error,
|
|
141
|
+
command: parsed.args && parsed.args.length > 0
|
|
142
|
+
? [parsed.command, ...parsed.args].join(" ")
|
|
143
|
+
: parsed.command,
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
const result = (run.data.result ?? {});
|
|
147
|
+
const exitCode = asNumber(result.exitCode);
|
|
148
|
+
return sandboxRunCommandOutputSchema.parse(cleanRecord({
|
|
149
|
+
sandboxId: this.stateValue.sandboxId,
|
|
150
|
+
processId: run.data.processId,
|
|
151
|
+
streamId: run.data.streamId,
|
|
152
|
+
streamClientId: run.data.streamClientId,
|
|
153
|
+
success: Boolean(result.success ?? (exitCode === undefined || exitCode === 0)),
|
|
154
|
+
exitCode,
|
|
155
|
+
output: asString(result.output) || undefined,
|
|
156
|
+
error: asString(result.error) || undefined,
|
|
157
|
+
command: asString(result.command) || undefined,
|
|
158
|
+
status: exitCode === undefined ? undefined : exitCode === 0 ? "exited" : "failed",
|
|
159
|
+
}));
|
|
160
|
+
}
|
|
161
|
+
actions() {
|
|
162
|
+
return {
|
|
163
|
+
[SANDBOX_RUN_COMMAND_ACTION_NAME]: defineAction({
|
|
164
|
+
description: "Run a shell command in this sandbox.",
|
|
165
|
+
input: sandboxRunCommandInputSchema,
|
|
166
|
+
output: sandboxRunCommandOutputSchema,
|
|
167
|
+
execute: async ({ input }) => this.runCommand(input),
|
|
168
|
+
}),
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
Sandbox.runCommandActionName = SANDBOX_RUN_COMMAND_ACTION_NAME;
|
|
173
|
+
Sandbox.runCommandInputSchema = sandboxRunCommandInputSchema;
|
|
174
|
+
Sandbox.runCommandOutputSchema = sandboxRunCommandOutputSchema;
|
|
175
|
+
//# 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,2 +1,155 @@
|
|
|
1
|
-
export
|
|
1
|
+
export declare const sandboxSchemaDomain: import("@ekairos/domain").DomainSchemaResult<{
|
|
2
|
+
sandbox_sandboxes: import("@instantdb/core").EntityDef<{
|
|
3
|
+
externalSandboxId: import("@instantdb/core").DataAttrDef<string, false, true, false>;
|
|
4
|
+
sandboxUserId: import("@instantdb/core").DataAttrDef<string, false, true, false>;
|
|
5
|
+
provider: import("@instantdb/core").DataAttrDef<string, true, true, false>;
|
|
6
|
+
sandboxUrl: import("@instantdb/core").DataAttrDef<string, false, false, false>;
|
|
7
|
+
status: import("@instantdb/core").DataAttrDef<string, true, true, false>;
|
|
8
|
+
timeout: import("@instantdb/core").DataAttrDef<number, false, false, false>;
|
|
9
|
+
runtime: import("@instantdb/core").DataAttrDef<string, false, false, false>;
|
|
10
|
+
vcpus: import("@instantdb/core").DataAttrDef<number, false, false, false>;
|
|
11
|
+
ports: import("@instantdb/core").DataAttrDef<any, false, false, false>;
|
|
12
|
+
purpose: import("@instantdb/core").DataAttrDef<string, false, true, false>;
|
|
13
|
+
params: import("@instantdb/core").DataAttrDef<any, false, false, false>;
|
|
14
|
+
createdAt: import("@instantdb/core").DataAttrDef<number, true, true, false>;
|
|
15
|
+
updatedAt: import("@instantdb/core").DataAttrDef<number, false, true, false>;
|
|
16
|
+
shutdownAt: import("@instantdb/core").DataAttrDef<number, false, true, false>;
|
|
17
|
+
}, {}, unknown>;
|
|
18
|
+
sandbox_processes: import("@instantdb/core").EntityDef<{
|
|
19
|
+
kind: import("@instantdb/core").DataAttrDef<string, true, true, false>;
|
|
20
|
+
mode: import("@instantdb/core").DataAttrDef<string, true, true, false>;
|
|
21
|
+
status: import("@instantdb/core").DataAttrDef<string, true, true, false>;
|
|
22
|
+
provider: import("@instantdb/core").DataAttrDef<string, true, true, false>;
|
|
23
|
+
command: import("@instantdb/core").DataAttrDef<string, true, false, false>;
|
|
24
|
+
args: import("@instantdb/core").DataAttrDef<any, false, false, false>;
|
|
25
|
+
cwd: import("@instantdb/core").DataAttrDef<string, false, false, false>;
|
|
26
|
+
env: import("@instantdb/core").DataAttrDef<any, false, false, false>;
|
|
27
|
+
exitCode: import("@instantdb/core").DataAttrDef<number, false, true, false>;
|
|
28
|
+
signal: import("@instantdb/core").DataAttrDef<string, false, false, false>;
|
|
29
|
+
externalProcessId: import("@instantdb/core").DataAttrDef<string, false, true, false>;
|
|
30
|
+
streamId: import("@instantdb/core").DataAttrDef<string, false, true, false>;
|
|
31
|
+
streamClientId: import("@instantdb/core").DataAttrDef<string, false, true, false>;
|
|
32
|
+
streamStartedAt: import("@instantdb/core").DataAttrDef<number, false, true, false>;
|
|
33
|
+
streamFinishedAt: import("@instantdb/core").DataAttrDef<number, false, true, false>;
|
|
34
|
+
streamAbortReason: import("@instantdb/core").DataAttrDef<string, false, false, false>;
|
|
35
|
+
startedAt: import("@instantdb/core").DataAttrDef<number, true, true, false>;
|
|
36
|
+
updatedAt: import("@instantdb/core").DataAttrDef<number, false, true, false>;
|
|
37
|
+
exitedAt: import("@instantdb/core").DataAttrDef<number, false, true, false>;
|
|
38
|
+
metadata: import("@instantdb/core").DataAttrDef<any, false, false, false>;
|
|
39
|
+
}, {}, unknown>;
|
|
40
|
+
}, {
|
|
41
|
+
sandbox_user: {
|
|
42
|
+
readonly forward: {
|
|
43
|
+
readonly on: "sandbox_sandboxes";
|
|
44
|
+
readonly has: "one";
|
|
45
|
+
readonly label: "user";
|
|
46
|
+
};
|
|
47
|
+
readonly reverse: {
|
|
48
|
+
readonly on: "$users";
|
|
49
|
+
readonly has: "many";
|
|
50
|
+
readonly label: "sandboxes";
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
sandboxProcessSandbox: {
|
|
54
|
+
readonly forward: {
|
|
55
|
+
readonly on: "sandbox_processes";
|
|
56
|
+
readonly has: "one";
|
|
57
|
+
readonly label: "sandbox";
|
|
58
|
+
};
|
|
59
|
+
readonly reverse: {
|
|
60
|
+
readonly on: "sandbox_sandboxes";
|
|
61
|
+
readonly has: "many";
|
|
62
|
+
readonly label: "processes";
|
|
63
|
+
};
|
|
64
|
+
};
|
|
65
|
+
sandboxProcessStream: {
|
|
66
|
+
readonly forward: {
|
|
67
|
+
readonly on: "sandbox_processes";
|
|
68
|
+
readonly has: "one";
|
|
69
|
+
readonly label: "stream";
|
|
70
|
+
};
|
|
71
|
+
readonly reverse: {
|
|
72
|
+
readonly on: "$streams";
|
|
73
|
+
readonly has: "many";
|
|
74
|
+
readonly label: "sandboxProcesses";
|
|
75
|
+
};
|
|
76
|
+
};
|
|
77
|
+
}, import("@instantdb/core").RoomsDef, {}, "sandbox", "sandbox">;
|
|
78
|
+
export declare const sandboxDomain: import("@ekairos/domain").DomainSchemaResult<{
|
|
79
|
+
sandbox_sandboxes: import("@instantdb/core").EntityDef<{
|
|
80
|
+
externalSandboxId: import("@instantdb/core").DataAttrDef<string, false, true, false>;
|
|
81
|
+
sandboxUserId: import("@instantdb/core").DataAttrDef<string, false, true, false>;
|
|
82
|
+
provider: import("@instantdb/core").DataAttrDef<string, true, true, false>;
|
|
83
|
+
sandboxUrl: import("@instantdb/core").DataAttrDef<string, false, false, false>;
|
|
84
|
+
status: import("@instantdb/core").DataAttrDef<string, true, true, false>;
|
|
85
|
+
timeout: import("@instantdb/core").DataAttrDef<number, false, false, false>;
|
|
86
|
+
runtime: import("@instantdb/core").DataAttrDef<string, false, false, false>;
|
|
87
|
+
vcpus: import("@instantdb/core").DataAttrDef<number, false, false, false>;
|
|
88
|
+
ports: import("@instantdb/core").DataAttrDef<any, false, false, false>;
|
|
89
|
+
purpose: import("@instantdb/core").DataAttrDef<string, false, true, false>;
|
|
90
|
+
params: import("@instantdb/core").DataAttrDef<any, false, false, false>;
|
|
91
|
+
createdAt: import("@instantdb/core").DataAttrDef<number, true, true, false>;
|
|
92
|
+
updatedAt: import("@instantdb/core").DataAttrDef<number, false, true, false>;
|
|
93
|
+
shutdownAt: import("@instantdb/core").DataAttrDef<number, false, true, false>;
|
|
94
|
+
}, {}, unknown>;
|
|
95
|
+
sandbox_processes: import("@instantdb/core").EntityDef<{
|
|
96
|
+
kind: import("@instantdb/core").DataAttrDef<string, true, true, false>;
|
|
97
|
+
mode: import("@instantdb/core").DataAttrDef<string, true, true, false>;
|
|
98
|
+
status: import("@instantdb/core").DataAttrDef<string, true, true, false>;
|
|
99
|
+
provider: import("@instantdb/core").DataAttrDef<string, true, true, false>;
|
|
100
|
+
command: import("@instantdb/core").DataAttrDef<string, true, false, false>;
|
|
101
|
+
args: import("@instantdb/core").DataAttrDef<any, false, false, false>;
|
|
102
|
+
cwd: import("@instantdb/core").DataAttrDef<string, false, false, false>;
|
|
103
|
+
env: import("@instantdb/core").DataAttrDef<any, false, false, false>;
|
|
104
|
+
exitCode: import("@instantdb/core").DataAttrDef<number, false, true, false>;
|
|
105
|
+
signal: import("@instantdb/core").DataAttrDef<string, false, false, false>;
|
|
106
|
+
externalProcessId: import("@instantdb/core").DataAttrDef<string, false, true, false>;
|
|
107
|
+
streamId: import("@instantdb/core").DataAttrDef<string, false, true, false>;
|
|
108
|
+
streamClientId: import("@instantdb/core").DataAttrDef<string, false, true, false>;
|
|
109
|
+
streamStartedAt: import("@instantdb/core").DataAttrDef<number, false, true, false>;
|
|
110
|
+
streamFinishedAt: import("@instantdb/core").DataAttrDef<number, false, true, false>;
|
|
111
|
+
streamAbortReason: import("@instantdb/core").DataAttrDef<string, false, false, false>;
|
|
112
|
+
startedAt: import("@instantdb/core").DataAttrDef<number, true, true, false>;
|
|
113
|
+
updatedAt: import("@instantdb/core").DataAttrDef<number, false, true, false>;
|
|
114
|
+
exitedAt: import("@instantdb/core").DataAttrDef<number, false, true, false>;
|
|
115
|
+
metadata: import("@instantdb/core").DataAttrDef<any, false, false, false>;
|
|
116
|
+
}, {}, unknown>;
|
|
117
|
+
}, {
|
|
118
|
+
sandbox_user: {
|
|
119
|
+
readonly forward: {
|
|
120
|
+
readonly on: "sandbox_sandboxes";
|
|
121
|
+
readonly has: "one";
|
|
122
|
+
readonly label: "user";
|
|
123
|
+
};
|
|
124
|
+
readonly reverse: {
|
|
125
|
+
readonly on: "$users";
|
|
126
|
+
readonly has: "many";
|
|
127
|
+
readonly label: "sandboxes";
|
|
128
|
+
};
|
|
129
|
+
};
|
|
130
|
+
sandboxProcessSandbox: {
|
|
131
|
+
readonly forward: {
|
|
132
|
+
readonly on: "sandbox_processes";
|
|
133
|
+
readonly has: "one";
|
|
134
|
+
readonly label: "sandbox";
|
|
135
|
+
};
|
|
136
|
+
readonly reverse: {
|
|
137
|
+
readonly on: "sandbox_sandboxes";
|
|
138
|
+
readonly has: "many";
|
|
139
|
+
readonly label: "processes";
|
|
140
|
+
};
|
|
141
|
+
};
|
|
142
|
+
sandboxProcessStream: {
|
|
143
|
+
readonly forward: {
|
|
144
|
+
readonly on: "sandbox_processes";
|
|
145
|
+
readonly has: "one";
|
|
146
|
+
readonly label: "stream";
|
|
147
|
+
};
|
|
148
|
+
readonly reverse: {
|
|
149
|
+
readonly on: "$streams";
|
|
150
|
+
readonly has: "many";
|
|
151
|
+
readonly label: "sandboxProcesses";
|
|
152
|
+
};
|
|
153
|
+
};
|
|
154
|
+
}, import("@instantdb/core").RoomsDef, {}, "sandbox", "sandbox">;
|
|
2
155
|
//# sourceMappingURL=schema.d.ts.map
|
package/dist/schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gEAsD5B,CAAA;AAEJ,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gEAAsB,CAAA"}
|
package/dist/schema.js
CHANGED
|
@@ -1,2 +1,60 @@
|
|
|
1
|
-
|
|
1
|
+
import { i } from "@instantdb/core";
|
|
2
|
+
import { domain } from "@ekairos/domain";
|
|
3
|
+
import { sandboxDomain as publicSandboxDomain } from "./public.js";
|
|
4
|
+
export const sandboxSchemaDomain = domain("sandbox")
|
|
5
|
+
.includes(publicSandboxDomain)
|
|
6
|
+
.withSchema({
|
|
7
|
+
entities: {
|
|
8
|
+
sandbox_processes: i.entity({
|
|
9
|
+
kind: i.string().indexed(),
|
|
10
|
+
mode: i.string().indexed(),
|
|
11
|
+
status: i.string().indexed(),
|
|
12
|
+
provider: i.string().indexed(),
|
|
13
|
+
command: i.string(),
|
|
14
|
+
args: i.json().optional(),
|
|
15
|
+
cwd: i.string().optional(),
|
|
16
|
+
env: i.json().optional(),
|
|
17
|
+
exitCode: i.number().optional().indexed(),
|
|
18
|
+
signal: i.string().optional(),
|
|
19
|
+
externalProcessId: i.string().optional().indexed(),
|
|
20
|
+
streamId: i.string().optional().indexed(),
|
|
21
|
+
streamClientId: i.string().optional().indexed(),
|
|
22
|
+
streamStartedAt: i.number().optional().indexed(),
|
|
23
|
+
streamFinishedAt: i.number().optional().indexed(),
|
|
24
|
+
streamAbortReason: i.string().optional(),
|
|
25
|
+
startedAt: i.number().indexed(),
|
|
26
|
+
updatedAt: i.number().optional().indexed(),
|
|
27
|
+
exitedAt: i.number().optional().indexed(),
|
|
28
|
+
metadata: i.json().optional(),
|
|
29
|
+
}),
|
|
30
|
+
},
|
|
31
|
+
links: {
|
|
32
|
+
sandboxProcessSandbox: {
|
|
33
|
+
forward: {
|
|
34
|
+
on: "sandbox_processes",
|
|
35
|
+
has: "one",
|
|
36
|
+
label: "sandbox",
|
|
37
|
+
},
|
|
38
|
+
reverse: {
|
|
39
|
+
on: "sandbox_sandboxes",
|
|
40
|
+
has: "many",
|
|
41
|
+
label: "processes",
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
sandboxProcessStream: {
|
|
45
|
+
forward: {
|
|
46
|
+
on: "sandbox_processes",
|
|
47
|
+
has: "one",
|
|
48
|
+
label: "stream",
|
|
49
|
+
},
|
|
50
|
+
reverse: {
|
|
51
|
+
on: "$streams",
|
|
52
|
+
has: "many",
|
|
53
|
+
label: "sandboxProcesses",
|
|
54
|
+
},
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
rooms: {},
|
|
58
|
+
});
|
|
59
|
+
export const sandboxDomain = sandboxSchemaDomain;
|
|
2
60
|
//# sourceMappingURL=schema.js.map
|
package/dist/schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA"}
|
|
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,EAAE,MAAM,iBAAiB,CAAA;AAExC,OAAO,EAAE,aAAa,IAAI,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAElE,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,SAAS,CAAC;KACjD,QAAQ,CAAC,mBAAmB,CAAC;KAC7B,UAAU,CAAC;IACV,QAAQ,EAAE;QACR,iBAAiB,EAAE,CAAC,CAAC,MAAM,CAAC;YAC1B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;YAC1B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;YAC1B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;YAC5B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;YAC9B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;YACnB,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;YACzB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC1B,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;YACxB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE;YACzC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC7B,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE;YAClD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE;YACzC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE;YAC/C,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE;YAChD,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE;YACjD,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACxC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;YAC/B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE;YAC1C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE;YACzC,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;SAC9B,CAAC;KACH;IACD,KAAK,EAAE;QACL,qBAAqB,EAAE;YACrB,OAAO,EAAE;gBACP,EAAE,EAAE,mBAAmB;gBACvB,GAAG,EAAE,KAAK;gBACV,KAAK,EAAE,SAAS;aACjB;YACD,OAAO,EAAE;gBACP,EAAE,EAAE,mBAAmB;gBACvB,GAAG,EAAE,MAAM;gBACX,KAAK,EAAE,WAAW;aACnB;SACF;QACD,oBAAoB,EAAE;YACpB,OAAO,EAAE;gBACP,EAAE,EAAE,mBAAmB;gBACvB,GAAG,EAAE,KAAK;gBACV,KAAK,EAAE,QAAQ;aAChB;YACD,OAAO,EAAE;gBACP,EAAE,EAAE,UAAU;gBACd,GAAG,EAAE,MAAM;gBACX,KAAK,EAAE,kBAAkB;aAC1B;SACF;KACF;IACD,KAAK,EAAE,EAAE;CACV,CAAC,CAAA;AAEJ,MAAM,CAAC,MAAM,aAAa,GAAG,mBAAmB,CAAA"}
|
package/dist/service.d.ts
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import { Sandbox as VercelSandbox } from "@vercel/sandbox";
|
|
2
|
-
import { type Sandbox as DaytonaSandbox } from "@daytonaio/sdk";
|
|
3
1
|
import { type InstantAdminDatabase } from "@instantdb/admin";
|
|
4
|
-
import {
|
|
2
|
+
import type { DomainInstantSchema } from "@ekairos/domain";
|
|
5
3
|
import { type CommandResult } from "./commands.js";
|
|
6
|
-
import {
|
|
4
|
+
import { sandboxSchemaDomain } from "./schema.js";
|
|
7
5
|
import type { SandboxConfig } from "./types.js";
|
|
8
|
-
type
|
|
6
|
+
import { type ProviderSandbox } from "./providers/types.js";
|
|
7
|
+
type SandboxSchemaType = DomainInstantSchema<typeof sandboxSchemaDomain>;
|
|
9
8
|
export interface SandboxRecord {
|
|
10
9
|
id: string;
|
|
11
10
|
externalSandboxId?: string;
|
|
@@ -55,17 +54,6 @@ export type SandboxCommandRunData = {
|
|
|
55
54
|
streamClientId: string;
|
|
56
55
|
result?: CommandResult;
|
|
57
56
|
};
|
|
58
|
-
type SpritesSandbox = {
|
|
59
|
-
__provider: "sprites";
|
|
60
|
-
name: string;
|
|
61
|
-
id?: string;
|
|
62
|
-
url?: string;
|
|
63
|
-
getPreviewLink?: (port: number) => Promise<{
|
|
64
|
-
url: string;
|
|
65
|
-
}>;
|
|
66
|
-
domain?: (port: number) => Promise<string>;
|
|
67
|
-
};
|
|
68
|
-
type ProviderSandbox = VercelSandbox | DaytonaSandbox | SpritesSandbox;
|
|
69
57
|
export declare class SandboxCommandRun implements PromiseLike<CommandResult> {
|
|
70
58
|
private service;
|
|
71
59
|
private readonly data;
|
|
@@ -88,8 +76,7 @@ export declare class SandboxCommandRun implements PromiseLike<CommandResult> {
|
|
|
88
76
|
}
|
|
89
77
|
export declare class SandboxService {
|
|
90
78
|
private adminDb;
|
|
91
|
-
constructor(db: InstantAdminDatabase<SandboxSchemaType>);
|
|
92
|
-
private static getVercelCredentials;
|
|
79
|
+
constructor(db: InstantAdminDatabase<SandboxSchemaType, true>);
|
|
93
80
|
private static getDomainName;
|
|
94
81
|
private static getDomainContextString;
|
|
95
82
|
private static cloneJson;
|
|
@@ -102,32 +89,8 @@ export declare class SandboxService {
|
|
|
102
89
|
private static safeMkDir;
|
|
103
90
|
private static buildSkillInstallSet;
|
|
104
91
|
private static bootstrapSkills;
|
|
105
|
-
private static resolveVercelWorkingDirectory;
|
|
106
|
-
private static findLinkedVercelProjectFile;
|
|
107
|
-
private static readLinkedVercelProject;
|
|
108
|
-
private static pullVercelOidcToken;
|
|
109
|
-
private static resolveVercelCredentials;
|
|
110
|
-
private static provisionVercelSandbox;
|
|
111
|
-
private static getDaytonaConfig;
|
|
112
|
-
private static normalizeBaseUrl;
|
|
113
|
-
private static getSpritesConfig;
|
|
114
|
-
private static spritesFetch;
|
|
115
|
-
private static spritesJson;
|
|
116
|
-
private static spritesText;
|
|
117
|
-
private static toSpritesPreviewUrl;
|
|
118
|
-
private static asSpritesSandbox;
|
|
119
|
-
private static getSpritesByName;
|
|
120
|
-
private static provisionSpritesSandbox;
|
|
121
|
-
private static normalizeSpritesExecResult;
|
|
122
|
-
private static spritesExec;
|
|
123
|
-
private static resolveProvider;
|
|
124
|
-
private static resolveDaytonaLanguage;
|
|
125
|
-
private static resolveDaytonaVolumes;
|
|
126
92
|
private static shellEscapeArg;
|
|
127
93
|
private static parseOptionalBoolean;
|
|
128
|
-
private static parseCsvList;
|
|
129
|
-
private static resolvePythonVersion;
|
|
130
|
-
private static buildDeclarativeImage;
|
|
131
94
|
createSandbox(config: SandboxConfig): Promise<ServiceResult<{
|
|
132
95
|
sandboxId: string;
|
|
133
96
|
}>>;
|
|
@@ -189,7 +152,6 @@ export declare class SandboxService {
|
|
|
189
152
|
getPortUrl(sandboxId: string, port: number): Promise<ServiceResult<{
|
|
190
153
|
url: string;
|
|
191
154
|
}>>;
|
|
192
|
-
private static parseSpritesCheckpointIdFromNdjson;
|
|
193
155
|
createCheckpoint(sandboxId: string, params?: {
|
|
194
156
|
comment?: string;
|
|
195
157
|
}): Promise<ServiceResult<{
|
package/dist/service.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
|