@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action-steps.d.ts","sourceRoot":"","sources":["../src/action-steps.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,EAEL,KAAK,uBAAuB,EAC5B,KAAK,yBAAyB,EAC/B,MAAM,cAAc,CAAA;AACrB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE/C,KAAK,aAAa,CAAC,CAAC,GAAG,OAAO,IAAI;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,CAAC,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AACtF,KAAK,cAAc,GAAG;IAAE,EAAE,EAAE,OAAO,CAAA;CAAE,CAAA;AACrC,KAAK,gBAAgB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,CAAA;AAM/D,wBAAsB,iBAAiB,CAAC,EACtC,OAAO,EACP,KAAK,GACN,EAAE;IACD,OAAO,EAAE,cAAc,CAAA;IACvB,KAAK,EAAE,aAAa,CAAA;CACrB,GAAG,OAAO,CAAC,aAAa,CAAC;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAIhD;AAED,wBAAsB,eAAe,CAAC,EACpC,OAAO,EACP,KAAK,GACN,EAAE;IACD,OAAO,EAAE,cAAc,CAAA;IACvB,KAAK,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAA;CAC7B,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAI/B;AAED,wBAAsB,cAAc,CAAC,EACnC,OAAO,EACP,KAAK,GACN,EAAE;IACD,OAAO,EAAE,cAAc,CAAA;IACvB,KAAK,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAA;CAC/D,GAAG,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAQxC;AAED,wBAAsB,qBAAqB,CAAC,EAC1C,OAAO,EACP,KAAK,GACN,EAAE;IACD,OAAO,EAAE,cAAc,CAAA;IACvB,KAAK,EAAE;QACL,SAAS,EAAE,MAAM,CAAA;QACjB,OAAO,EAAE,MAAM,CAAA;QACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;QACf,GAAG,CAAC,EAAE,MAAM,CAAA;QACZ,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QAC7B,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,kBAAkB,GAAG,YAAY,GAAG,aAAa,GAAG,SAAS,CAAA;QAC5F,IAAI,CAAC,EAAE,YAAY,GAAG,YAAY,CAAA;QAClC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KACnC,CAAA;CACF,GAAG,OAAO,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC,CAelD;AAED,wBAAsB,qBAAqB,CAAC,EAC1C,OAAO,EACP,KAAK,GACN,EAAE;IACD,OAAO,EAAE,cAAc,CAAA;IACvB,KAAK,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAA;CAC7B,GAAG,OAAO,CAAC,aAAa,CAAC;IAAE,MAAM,EAAE,yBAAyB,EAAE,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAItF;AAED,wBAAsB,wBAAwB,CAAC,EAC7C,OAAO,EACP,KAAK,GACN,EAAE;IACD,OAAO,EAAE,cAAc,CAAA;IACvB,KAAK,EAAE;QACL,SAAS,EAAE,MAAM,CAAA;QACjB,OAAO,EAAE,MAAM,CAAA;QACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;QACf,GAAG,CAAC,EAAE,MAAM,CAAA;QACZ,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QAC7B,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,kBAAkB,GAAG,YAAY,GAAG,aAAa,GAAG,SAAS,CAAA;QAC5F,IAAI,CAAC,EAAE,YAAY,GAAG,YAAY,CAAA;QAClC,iBAAiB,CAAC,EAAE,MAAM,CAAA;QAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KACnC,CAAA;CACF,GAAG,OAAO,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC,CAIlD;AAED,wBAAsB,8BAA8B,CAAC,EACnD,OAAO,EACP,KAAK,GACN,EAAE;IACD,OAAO,EAAE,cAAc,CAAA;IACvB,KAAK,EAAE;QACL,SAAS,EAAE,MAAM,CAAA;QACjB,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,WAAW,GAAG,UAAU,CAAA;QAClF,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAC/B,CAAA;CACF,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAQ/B;AAED,wBAAsB,yBAAyB,CAAC,EAC9C,OAAO,EACP,KAAK,GACN,EAAE;IACD,OAAO,EAAE,cAAc,CAAA;IACvB,KAAK,EAAE;QACL,SAAS,EAAE,MAAM,CAAA;QACjB,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAA;QAChD,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KACnC,CAAA;CACF,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAS/B;AAED,wBAAsB,cAAc,CAAC,EACnC,OAAO,EACP,KAAK,GACN,EAAE;IACD,OAAO,EAAE,cAAc,CAAA;IACvB,KAAK,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,gBAAgB,EAAE,CAAA;KAAE,CAAA;CACxD,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAI/B;AAED,wBAAsB,YAAY,CAAC,EACjC,OAAO,EACP,KAAK,GACN,EAAE;IACD,OAAO,EAAE,cAAc,CAAA;IACvB,KAAK,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAC3C,GAAG,OAAO,CAAC,aAAa,CAAC;IAAE,aAAa,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAIpD;AAED,wBAAsB,oBAAoB,CAAC,EACzC,OAAO,EACP,KAAK,GACN,EAAE;IACD,OAAO,EAAE,cAAc,CAAA;IACvB,KAAK,EAAE;QACL,SAAS,EAAE,MAAM,CAAA;QACjB,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,mBAAmB,CAAC,EAAE,MAAM,CAAA;QAC5B,cAAc,CAAC,EAAE,MAAM,CAAA;KACxB,CAAA;CACF,GAAG,OAAO,CAAC,aAAa,CAAC;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,eAAe,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC,CAyC/F;AAED,wBAAsB,cAAc,CAAC,EACnC,OAAO,EACP,KAAK,GACN,EAAE;IACD,OAAO,EAAE,cAAc,CAAA;IACvB,KAAK,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAA;CAC7B,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CASlD;AAED,wBAAsB,oBAAoB,CAAC,EACzC,OAAO,EACP,KAAK,GACN,EAAE;IACD,OAAO,EAAE,cAAc,CAAA;IACvB,KAAK,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAC/C,GAAG,OAAO,CAAC,aAAa,CAAC;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAMnD;AAED,wBAAsB,cAAc,CAAC,EACnC,OAAO,EACP,KAAK,GACN,EAAE;IACD,OAAO,EAAE,cAAc,CAAA;IACvB,KAAK,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAC3C,GAAG,OAAO,CAAC,aAAa,CAAC;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAI1C;AAED,wBAAsB,oBAAoB,CAAC,EACzC,OAAO,EACP,KAAK,GACN,EAAE;IACD,OAAO,EAAE,cAAc,CAAA;IACvB,KAAK,EAAE;QACL,SAAS,EAAE,MAAM,CAAA;QACjB,MAAM,EAAE,MAAM,CAAA;QACd,cAAc,CAAC,EAAE,MAAM,CAAA;QACvB,mBAAmB,CAAC,EAAE,MAAM,CAAA;KAC7B,CAAA;CACF,GAAG,OAAO,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC,CAgClD"}
@@ -0,0 +1,153 @@
1
+ import { existsSync, readFileSync } from "node:fs";
2
+ import { homedir } from "node:os";
3
+ import { join } from "node:path";
4
+ import { SandboxService, } from "./service.js";
5
+ function shSingleQuote(value) {
6
+ return `'${String(value).replace(/'/g, `'\"'\"'`)}'`;
7
+ }
8
+ export async function createSandboxStep({ runtime, input, }) {
9
+ "use step";
10
+ return await new SandboxService(runtime.db).createSandbox(input);
11
+ }
12
+ export async function stopSandboxStep({ runtime, input, }) {
13
+ "use step";
14
+ return await new SandboxService(runtime.db).stopSandbox(input.sandboxId);
15
+ }
16
+ export async function runCommandStep({ runtime, input, }) {
17
+ "use step";
18
+ return await new SandboxService(runtime.db).runCommand(input.sandboxId, input.command, input.args ?? []);
19
+ }
20
+ export async function runCommandProcessStep({ runtime, input, }) {
21
+ "use step";
22
+ return await new SandboxService(runtime.db).runCommandWithProcessStream(input.sandboxId, input.command, input.args ?? [], {
23
+ cwd: input.cwd,
24
+ env: input.env,
25
+ kind: input.kind,
26
+ mode: input.mode,
27
+ metadata: input.metadata,
28
+ });
29
+ }
30
+ export async function readProcessStreamStep({ runtime, input, }) {
31
+ "use step";
32
+ return await new SandboxService(runtime.db).readProcessStream(input.processId);
33
+ }
34
+ export async function startObservedProcessStep({ runtime, input, }) {
35
+ "use step";
36
+ return await new SandboxService(runtime.db).startObservedProcess(input.sandboxId, input);
37
+ }
38
+ export async function appendObservedProcessChunkStep({ runtime, input, }) {
39
+ "use step";
40
+ return await new SandboxService(runtime.db).appendObservedProcessChunk(input.processId, input.type, input.data);
41
+ }
42
+ export async function finishObservedProcessStep({ runtime, input, }) {
43
+ "use step";
44
+ return await new SandboxService(runtime.db).finishObservedProcess(input.processId, {
45
+ status: input.status,
46
+ exitCode: input.exitCode,
47
+ errorText: input.errorText,
48
+ metadata: input.metadata,
49
+ });
50
+ }
51
+ export async function writeFilesStep({ runtime, input, }) {
52
+ "use step";
53
+ return await new SandboxService(runtime.db).writeFiles(input.sandboxId, input.files);
54
+ }
55
+ export async function readFileStep({ runtime, input, }) {
56
+ "use step";
57
+ return await new SandboxService(runtime.db).readFile(input.sandboxId, input.path);
58
+ }
59
+ export async function installCodexAuthStep({ runtime, input, }) {
60
+ "use step";
61
+ const codexHome = String(input.codexHome ?? "/home/sprite/.codex").trim() || "/home/sprite/.codex";
62
+ const localCodexHome = String(process.env.CODEX_HOME ?? "").trim() || join(homedir(), ".codex");
63
+ const candidates = {
64
+ authJson: String(input.authJsonPath ?? "").trim() || join(localCodexHome, "auth.json"),
65
+ credentialsJson: String(input.credentialsJsonPath ?? "").trim() || join(localCodexHome, ".credentials.json"),
66
+ configToml: String(input.configTomlPath ?? "").trim() || join(localCodexHome, "config.toml"),
67
+ };
68
+ const files = [];
69
+ const copied = { authJson: false, credentialsJson: false, configToml: false };
70
+ if (existsSync(candidates.authJson)) {
71
+ files.push({
72
+ path: `${codexHome}/auth.json`,
73
+ contentBase64: readFileSync(candidates.authJson).toString("base64"),
74
+ });
75
+ copied.authJson = true;
76
+ }
77
+ if (existsSync(candidates.credentialsJson)) {
78
+ files.push({
79
+ path: `${codexHome}/.credentials.json`,
80
+ contentBase64: readFileSync(candidates.credentialsJson).toString("base64"),
81
+ });
82
+ copied.credentialsJson = true;
83
+ }
84
+ if (existsSync(candidates.configToml)) {
85
+ files.push({
86
+ path: `${codexHome}/config.toml`,
87
+ contentBase64: readFileSync(candidates.configToml).toString("base64"),
88
+ });
89
+ copied.configToml = true;
90
+ }
91
+ if (!copied.authJson && !copied.credentialsJson) {
92
+ return { ok: false, error: "codex_auth_file_not_found" };
93
+ }
94
+ const wrote = await new SandboxService(runtime.db).writeFiles(input.sandboxId, files);
95
+ if (!wrote.ok)
96
+ return wrote;
97
+ return { ok: true, data: copied };
98
+ }
99
+ export async function getSandboxStep({ runtime, input, }) {
100
+ "use step";
101
+ const result = await runtime.db.query({
102
+ sandbox_sandboxes: { $: { where: { id: input.sandboxId }, limit: 1 } },
103
+ });
104
+ const row = result?.sandbox_sandboxes?.[0];
105
+ if (!row)
106
+ return { ok: false, error: "sandbox_not_found" };
107
+ return { ok: true, data: row };
108
+ }
109
+ export async function createCheckpointStep({ runtime, input, }) {
110
+ "use step";
111
+ return await new SandboxService(runtime.db).createCheckpoint(input.sandboxId, {
112
+ comment: input.comment,
113
+ });
114
+ }
115
+ export async function getPortUrlStep({ runtime, input, }) {
116
+ "use step";
117
+ return await new SandboxService(runtime.db).getPortUrl(input.sandboxId, input.port);
118
+ }
119
+ export async function createEkairosAppStep({ runtime, input, }) {
120
+ "use step";
121
+ const service = new SandboxService(runtime.db);
122
+ const appDir = String(input.appDir ?? "").trim() || "/workspace/ekairos-app";
123
+ const tokenEnv = String(input.instantTokenEnvName ?? "INSTANT_PERSONAL_ACCESS_TOKEN").trim();
124
+ const instantToken = String(process.env[tokenEnv] ?? "").trim();
125
+ if (!instantToken)
126
+ return { ok: false, error: `instant_token_env_missing:${tokenEnv}` };
127
+ const tokenPath = `/tmp/ekairos-instant-token-${Date.now()}-${Math.random().toString(36).slice(2)}`;
128
+ const wrote = await service.writeFiles(input.sandboxId, [
129
+ {
130
+ path: tokenPath,
131
+ contentBase64: Buffer.from(instantToken, "utf8").toString("base64"),
132
+ },
133
+ ]);
134
+ if (!wrote.ok)
135
+ return wrote;
136
+ const resultPath = `/tmp/ekairos-create-app-${Date.now()}.json`;
137
+ const packageManager = String(input.packageManager ?? "pnpm").trim() || "pnpm";
138
+ const command = [
139
+ "set -euo pipefail",
140
+ `TOKEN="$(cat ${shSingleQuote(tokenPath)})"`,
141
+ `rm -f ${shSingleQuote(tokenPath)}`,
142
+ `rm -rf ${shSingleQuote(appDir)}`,
143
+ `npx -y @ekairos/domain@beta create-app ${shSingleQuote(appDir)} --next --no-install --json --package-manager=${shSingleQuote(packageManager)} --instantToken="$TOKEN" > ${shSingleQuote(resultPath)}`,
144
+ `node -e 'const fs=require("fs"); const p=require(${JSON.stringify(`${appDir}/package.json`)}); const r=JSON.parse(fs.readFileSync(${JSON.stringify(resultPath)}, "utf8")); console.log(JSON.stringify({ok:r.ok, provisioned:r.data?.provisioned, appId:r.data?.appId, packageName:p.name, ekairosDomain:p.dependencies?.["@ekairos/domain"], workflow:p.dependencies?.workflow}))'`,
145
+ "echo sandbox_create_ekairos_app_ok",
146
+ ].join("\n");
147
+ return await service.runCommandWithProcessStream(input.sandboxId, "sh", ["-lc", command], {
148
+ kind: "command",
149
+ mode: "foreground",
150
+ metadata: { source: "sandbox.domain", label: "create-ekairos-app" },
151
+ });
152
+ }
153
+ //# sourceMappingURL=action-steps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action-steps.js","sourceRoot":"","sources":["../src/action-steps.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,263 @@
1
+ import { z } from "zod";
2
+ import type { CommandResult } from "./commands.js";
3
+ import { type SandboxProcessRunResult, type SandboxProcessStreamChunk } from "./service.js";
4
+ import type { SandboxConfig } from "./types.js";
5
+ export declare const sandboxDomain: import("@ekairos/domain").DomainSchemaResult<{
6
+ [x: string]: any;
7
+ [x: number]: any;
8
+ [x: symbol]: any;
9
+ }, {
10
+ [x: string]: any;
11
+ [x: number]: any;
12
+ [x: symbol]: any;
13
+ }, import("@instantdb/core").RoomsDef, {
14
+ createSandbox: import("@ekairos/domain").DomainActionRegistration<z.ZodType<SandboxConfig, unknown, z.core.$ZodTypeInternals<SandboxConfig, unknown>>, z.ZodDiscriminatedUnion<[z.ZodObject<{
15
+ ok: z.ZodLiteral<true>;
16
+ data: z.ZodObject<{
17
+ sandboxId: z.ZodString;
18
+ }, z.core.$strip>;
19
+ }, z.core.$strip>, z.ZodObject<{
20
+ ok: z.ZodLiteral<false>;
21
+ error: z.ZodString;
22
+ }, z.core.$strip>], "ok">, {
23
+ db: unknown;
24
+ }, any>;
25
+ stopSandbox: import("@ekairos/domain").DomainActionRegistration<z.ZodObject<{
26
+ sandboxId: z.ZodString;
27
+ }, z.core.$strip>, z.ZodDiscriminatedUnion<[z.ZodObject<{
28
+ ok: z.ZodLiteral<true>;
29
+ data: z.ZodOptional<z.ZodUnknown>;
30
+ }, z.core.$strip>, z.ZodObject<{
31
+ ok: z.ZodLiteral<false>;
32
+ error: z.ZodString;
33
+ }, z.core.$strip>], "ok">, {
34
+ db: unknown;
35
+ }, any>;
36
+ runCommand: import("@ekairos/domain").DomainActionRegistration<z.ZodObject<{
37
+ sandboxId: z.ZodString;
38
+ command: z.ZodString;
39
+ args: z.ZodOptional<z.ZodArray<z.ZodString>>;
40
+ }, z.core.$strip>, z.ZodDiscriminatedUnion<[z.ZodObject<{
41
+ ok: z.ZodLiteral<true>;
42
+ data: z.ZodType<CommandResult, unknown, z.core.$ZodTypeInternals<CommandResult, unknown>>;
43
+ }, z.core.$strip>, z.ZodObject<{
44
+ ok: z.ZodLiteral<false>;
45
+ error: z.ZodString;
46
+ }, z.core.$strip>], "ok">, {
47
+ db: unknown;
48
+ }, any>;
49
+ runCommandProcess: import("@ekairos/domain").DomainActionRegistration<z.ZodObject<{
50
+ sandboxId: z.ZodString;
51
+ command: z.ZodString;
52
+ args: z.ZodOptional<z.ZodArray<z.ZodString>>;
53
+ cwd: z.ZodOptional<z.ZodString>;
54
+ env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
55
+ kind: z.ZodOptional<z.ZodEnum<{
56
+ command: "command";
57
+ service: "service";
58
+ "codex-app-server": "codex-app-server";
59
+ "dev-server": "dev-server";
60
+ "test-runner": "test-runner";
61
+ watcher: "watcher";
62
+ }>>;
63
+ mode: z.ZodOptional<z.ZodEnum<{
64
+ foreground: "foreground";
65
+ background: "background";
66
+ }>>;
67
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
68
+ }, z.core.$strip>, z.ZodDiscriminatedUnion<[z.ZodObject<{
69
+ ok: z.ZodLiteral<true>;
70
+ data: z.ZodType<SandboxProcessRunResult, unknown, z.core.$ZodTypeInternals<SandboxProcessRunResult, unknown>>;
71
+ }, z.core.$strip>, z.ZodObject<{
72
+ ok: z.ZodLiteral<false>;
73
+ error: z.ZodString;
74
+ }, z.core.$strip>], "ok">, {
75
+ db: unknown;
76
+ }, any>;
77
+ readProcessStream: import("@ekairos/domain").DomainActionRegistration<z.ZodObject<{
78
+ processId: z.ZodString;
79
+ }, z.core.$strip>, z.ZodDiscriminatedUnion<[z.ZodObject<{
80
+ ok: z.ZodLiteral<true>;
81
+ data: z.ZodObject<{
82
+ chunks: z.ZodArray<z.ZodType<SandboxProcessStreamChunk, unknown, z.core.$ZodTypeInternals<SandboxProcessStreamChunk, unknown>>>;
83
+ byteOffset: z.ZodNumber;
84
+ }, z.core.$strip>;
85
+ }, z.core.$strip>, z.ZodObject<{
86
+ ok: z.ZodLiteral<false>;
87
+ error: z.ZodString;
88
+ }, z.core.$strip>], "ok">, {
89
+ db: unknown;
90
+ }, any>;
91
+ startObservedProcess: import("@ekairos/domain").DomainActionRegistration<z.ZodObject<{
92
+ sandboxId: z.ZodString;
93
+ command: z.ZodString;
94
+ args: z.ZodOptional<z.ZodArray<z.ZodString>>;
95
+ cwd: z.ZodOptional<z.ZodString>;
96
+ env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
97
+ kind: z.ZodOptional<z.ZodEnum<{
98
+ command: "command";
99
+ service: "service";
100
+ "codex-app-server": "codex-app-server";
101
+ "dev-server": "dev-server";
102
+ "test-runner": "test-runner";
103
+ watcher: "watcher";
104
+ }>>;
105
+ mode: z.ZodOptional<z.ZodEnum<{
106
+ foreground: "foreground";
107
+ background: "background";
108
+ }>>;
109
+ externalProcessId: z.ZodOptional<z.ZodString>;
110
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
111
+ }, z.core.$strip>, z.ZodDiscriminatedUnion<[z.ZodObject<{
112
+ ok: z.ZodLiteral<true>;
113
+ data: z.ZodType<SandboxProcessRunResult, unknown, z.core.$ZodTypeInternals<SandboxProcessRunResult, unknown>>;
114
+ }, z.core.$strip>, z.ZodObject<{
115
+ ok: z.ZodLiteral<false>;
116
+ error: z.ZodString;
117
+ }, z.core.$strip>], "ok">, {
118
+ db: unknown;
119
+ }, any>;
120
+ appendObservedProcessChunk: import("@ekairos/domain").DomainActionRegistration<z.ZodObject<{
121
+ processId: z.ZodString;
122
+ type: z.ZodEnum<{
123
+ error: "error";
124
+ status: "status";
125
+ stdout: "stdout";
126
+ stderr: "stderr";
127
+ exit: "exit";
128
+ heartbeat: "heartbeat";
129
+ metadata: "metadata";
130
+ }>;
131
+ data: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
132
+ }, z.core.$strip>, z.ZodDiscriminatedUnion<[z.ZodObject<{
133
+ ok: z.ZodLiteral<true>;
134
+ data: z.ZodOptional<z.ZodUnknown>;
135
+ }, z.core.$strip>, z.ZodObject<{
136
+ ok: z.ZodLiteral<false>;
137
+ error: z.ZodString;
138
+ }, z.core.$strip>], "ok">, {
139
+ db: unknown;
140
+ }, any>;
141
+ finishObservedProcess: import("@ekairos/domain").DomainActionRegistration<z.ZodObject<{
142
+ processId: z.ZodString;
143
+ status: z.ZodOptional<z.ZodEnum<{
144
+ exited: "exited";
145
+ failed: "failed";
146
+ killed: "killed";
147
+ lost: "lost";
148
+ }>>;
149
+ exitCode: z.ZodOptional<z.ZodNumber>;
150
+ errorText: z.ZodOptional<z.ZodString>;
151
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
152
+ }, z.core.$strip>, z.ZodDiscriminatedUnion<[z.ZodObject<{
153
+ ok: z.ZodLiteral<true>;
154
+ data: z.ZodOptional<z.ZodUnknown>;
155
+ }, z.core.$strip>, z.ZodObject<{
156
+ ok: z.ZodLiteral<false>;
157
+ error: z.ZodString;
158
+ }, z.core.$strip>], "ok">, {
159
+ db: unknown;
160
+ }, any>;
161
+ writeFiles: import("@ekairos/domain").DomainActionRegistration<z.ZodObject<{
162
+ sandboxId: z.ZodString;
163
+ files: z.ZodArray<z.ZodObject<{
164
+ path: z.ZodString;
165
+ contentBase64: z.ZodString;
166
+ }, z.core.$strip>>;
167
+ }, z.core.$strip>, z.ZodDiscriminatedUnion<[z.ZodObject<{
168
+ ok: z.ZodLiteral<true>;
169
+ data: z.ZodOptional<z.ZodUnknown>;
170
+ }, z.core.$strip>, z.ZodObject<{
171
+ ok: z.ZodLiteral<false>;
172
+ error: z.ZodString;
173
+ }, z.core.$strip>], "ok">, {
174
+ db: unknown;
175
+ }, any>;
176
+ readFile: import("@ekairos/domain").DomainActionRegistration<z.ZodObject<{
177
+ sandboxId: z.ZodString;
178
+ path: z.ZodString;
179
+ }, z.core.$strip>, z.ZodDiscriminatedUnion<[z.ZodObject<{
180
+ ok: z.ZodLiteral<true>;
181
+ data: z.ZodObject<{
182
+ contentBase64: z.ZodString;
183
+ }, z.core.$strip>;
184
+ }, z.core.$strip>, z.ZodObject<{
185
+ ok: z.ZodLiteral<false>;
186
+ error: z.ZodString;
187
+ }, z.core.$strip>], "ok">, {
188
+ db: unknown;
189
+ }, any>;
190
+ installCodexAuth: import("@ekairos/domain").DomainActionRegistration<z.ZodObject<{
191
+ sandboxId: z.ZodString;
192
+ codexHome: z.ZodOptional<z.ZodString>;
193
+ authJsonPath: z.ZodOptional<z.ZodString>;
194
+ credentialsJsonPath: z.ZodOptional<z.ZodString>;
195
+ configTomlPath: z.ZodOptional<z.ZodString>;
196
+ }, z.core.$strip>, z.ZodDiscriminatedUnion<[z.ZodObject<{
197
+ ok: z.ZodLiteral<true>;
198
+ data: z.ZodObject<{
199
+ authJson: z.ZodBoolean;
200
+ credentialsJson: z.ZodBoolean;
201
+ configToml: z.ZodBoolean;
202
+ }, z.core.$strip>;
203
+ }, z.core.$strip>, z.ZodObject<{
204
+ ok: z.ZodLiteral<false>;
205
+ error: z.ZodString;
206
+ }, z.core.$strip>], "ok">, {
207
+ db: unknown;
208
+ }, any>;
209
+ getSandbox: import("@ekairos/domain").DomainActionRegistration<z.ZodObject<{
210
+ sandboxId: z.ZodString;
211
+ }, z.core.$strip>, z.ZodDiscriminatedUnion<[z.ZodObject<{
212
+ ok: z.ZodLiteral<true>;
213
+ data: z.ZodRecord<z.ZodString, z.ZodUnknown>;
214
+ }, z.core.$strip>, z.ZodObject<{
215
+ ok: z.ZodLiteral<false>;
216
+ error: z.ZodString;
217
+ }, z.core.$strip>], "ok">, {
218
+ db: unknown;
219
+ }, any>;
220
+ createCheckpoint: import("@ekairos/domain").DomainActionRegistration<z.ZodObject<{
221
+ sandboxId: z.ZodString;
222
+ comment: z.ZodOptional<z.ZodString>;
223
+ }, z.core.$strip>, z.ZodDiscriminatedUnion<[z.ZodObject<{
224
+ ok: z.ZodLiteral<true>;
225
+ data: z.ZodObject<{
226
+ checkpointId: z.ZodString;
227
+ }, z.core.$strip>;
228
+ }, z.core.$strip>, z.ZodObject<{
229
+ ok: z.ZodLiteral<false>;
230
+ error: z.ZodString;
231
+ }, z.core.$strip>], "ok">, {
232
+ db: unknown;
233
+ }, any>;
234
+ getPortUrl: import("@ekairos/domain").DomainActionRegistration<z.ZodObject<{
235
+ sandboxId: z.ZodString;
236
+ port: z.ZodNumber;
237
+ }, z.core.$strip>, z.ZodDiscriminatedUnion<[z.ZodObject<{
238
+ ok: z.ZodLiteral<true>;
239
+ data: z.ZodObject<{
240
+ url: z.ZodString;
241
+ }, z.core.$strip>;
242
+ }, z.core.$strip>, z.ZodObject<{
243
+ ok: z.ZodLiteral<false>;
244
+ error: z.ZodString;
245
+ }, z.core.$strip>], "ok">, {
246
+ db: unknown;
247
+ }, any>;
248
+ createEkairosApp: import("@ekairos/domain").DomainActionRegistration<z.ZodObject<{
249
+ sandboxId: z.ZodString;
250
+ appDir: z.ZodString;
251
+ packageManager: z.ZodOptional<z.ZodString>;
252
+ instantTokenEnvName: z.ZodOptional<z.ZodString>;
253
+ }, z.core.$strip>, z.ZodDiscriminatedUnion<[z.ZodObject<{
254
+ ok: z.ZodLiteral<true>;
255
+ data: z.ZodType<SandboxProcessRunResult, unknown, z.core.$ZodTypeInternals<SandboxProcessRunResult, unknown>>;
256
+ }, z.core.$strip>, z.ZodObject<{
257
+ ok: z.ZodLiteral<false>;
258
+ error: z.ZodString;
259
+ }, z.core.$strip>], "ok">, {
260
+ db: unknown;
261
+ }, any>;
262
+ }, "sandbox", string>;
263
+ //# sourceMappingURL=actions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AA0BlD,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,yBAAyB,EAC/B,MAAM,cAAc,CAAA;AACrB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AA6B/C,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAoLtB,CAAA"}
@@ -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