buildfunctions 0.0.7 → 0.0.9

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 (76) hide show
  1. package/README.md +2 -2
  2. package/dist/client.d.ts +1 -1
  3. package/dist/client.d.ts.map +1 -1
  4. package/dist/client.js +23 -16
  5. package/dist/client.js.map +1 -1
  6. package/dist/function/cpu-function.d.ts +2 -2
  7. package/dist/function/cpu-function.d.ts.map +1 -1
  8. package/dist/function/cpu-function.js +21 -13
  9. package/dist/function/cpu-function.js.map +1 -1
  10. package/dist/function/gpu-function.d.ts +1 -1
  11. package/dist/function/gpu-function.d.ts.map +1 -1
  12. package/dist/function/gpu-function.js +31 -17
  13. package/dist/function/gpu-function.js.map +1 -1
  14. package/dist/function/index.d.ts +2 -2
  15. package/dist/function/index.d.ts.map +1 -1
  16. package/dist/function/index.js +2 -2
  17. package/dist/function/index.js.map +1 -1
  18. package/dist/index.d.ts +3 -3
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +11 -11
  21. package/dist/index.js.map +1 -1
  22. package/dist/lib/errors.d.ts.map +1 -0
  23. package/dist/lib/errors.js.map +1 -0
  24. package/dist/lib/framework.d.ts.map +1 -0
  25. package/dist/lib/framework.js.map +1 -0
  26. package/dist/{utils → lib}/http.d.ts +1 -1
  27. package/dist/lib/http.d.ts.map +1 -0
  28. package/dist/{utils → lib}/http.js +3 -3
  29. package/dist/lib/http.js.map +1 -0
  30. package/dist/{utils → lib}/index.d.ts +1 -0
  31. package/dist/lib/index.d.ts.map +1 -0
  32. package/dist/{utils → lib}/index.js +1 -0
  33. package/dist/lib/index.js.map +1 -0
  34. package/dist/lib/memory.d.ts.map +1 -0
  35. package/dist/lib/memory.js.map +1 -0
  36. package/dist/lib/resolve-code.d.ts +21 -0
  37. package/dist/lib/resolve-code.d.ts.map +1 -0
  38. package/dist/lib/resolve-code.js +111 -0
  39. package/dist/lib/resolve-code.js.map +1 -0
  40. package/dist/lib/uploader.d.ts.map +1 -0
  41. package/dist/lib/uploader.js.map +1 -0
  42. package/dist/sandbox/cpu-sandbox.d.ts +2 -2
  43. package/dist/sandbox/cpu-sandbox.d.ts.map +1 -1
  44. package/dist/sandbox/cpu-sandbox.js +31 -36
  45. package/dist/sandbox/cpu-sandbox.js.map +1 -1
  46. package/dist/sandbox/gpu-sandbox.d.ts +2 -2
  47. package/dist/sandbox/gpu-sandbox.d.ts.map +1 -1
  48. package/dist/sandbox/gpu-sandbox.js +43 -38
  49. package/dist/sandbox/gpu-sandbox.js.map +1 -1
  50. package/dist/sandbox/index.d.ts +2 -2
  51. package/dist/sandbox/index.d.ts.map +1 -1
  52. package/dist/sandbox/index.js +2 -2
  53. package/dist/sandbox/index.js.map +1 -1
  54. package/dist/types/index.d.ts +5 -7
  55. package/dist/types/index.d.ts.map +1 -1
  56. package/package.json +1 -1
  57. package/dist/utils/errors.d.ts.map +0 -1
  58. package/dist/utils/errors.js.map +0 -1
  59. package/dist/utils/framework.d.ts.map +0 -1
  60. package/dist/utils/framework.js.map +0 -1
  61. package/dist/utils/http.d.ts.map +0 -1
  62. package/dist/utils/http.js.map +0 -1
  63. package/dist/utils/index.d.ts.map +0 -1
  64. package/dist/utils/index.js.map +0 -1
  65. package/dist/utils/memory.d.ts.map +0 -1
  66. package/dist/utils/memory.js.map +0 -1
  67. package/dist/utils/uploader.d.ts.map +0 -1
  68. package/dist/utils/uploader.js.map +0 -1
  69. /package/dist/{utils → lib}/errors.d.ts +0 -0
  70. /package/dist/{utils → lib}/errors.js +0 -0
  71. /package/dist/{utils → lib}/framework.d.ts +0 -0
  72. /package/dist/{utils → lib}/framework.js +0 -0
  73. /package/dist/{utils → lib}/memory.d.ts +0 -0
  74. /package/dist/{utils → lib}/memory.js +0 -0
  75. /package/dist/{utils → lib}/uploader.d.ts +0 -0
  76. /package/dist/{utils → lib}/uploader.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/lib/memory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAmB3D"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/lib/memory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,MAAuB;IACjD,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACxC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAE7C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,2BAA2B,MAAM,2BAA2B,CAAC,CAAC;IAChF,CAAC;IAED,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;IAEvB,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,OAAO,KAAK,GAAG,IAAI,CAAC;IACtB,CAAC;IACD,OAAO,KAAK,CAAC,CAAC,KAAK;AACrB,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Resolve code parameter - supports both inline code and file paths.
3
+ *
4
+ * If the code string has no newlines and the path exists on disk, reads the file.
5
+ * If the code string looks like a path but the file doesn't exist, throws an error.
6
+ * Otherwise treats it as inline code.
7
+ */
8
+ /**
9
+ * Get the file path of the caller (the file that called the SDK).
10
+ * Used to resolve relative paths against the caller's location.
11
+ * Skips frames that are inside the SDK itself.
12
+ */
13
+ export declare function getCallerFile(): string | undefined;
14
+ /**
15
+ * Resolve code - supports inline code strings and file paths.
16
+ *
17
+ * @param code - Either inline code or a file path
18
+ * @param basePath - Base directory for resolving relative paths (e.g., caller's directory)
19
+ */
20
+ export declare function resolveCode(code: string, basePath?: string): Promise<string>;
21
+ //# sourceMappingURL=resolve-code.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-code.d.ts","sourceRoot":"","sources":["../../src/lib/resolve-code.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAYH;;;;GAIG;AACH,wBAAgB,aAAa,IAAI,MAAM,GAAG,SAAS,CA4BlD;AA0BD;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAsClF"}
@@ -0,0 +1,111 @@
1
+ /**
2
+ * Resolve code parameter - supports both inline code and file paths.
3
+ *
4
+ * If the code string has no newlines and the path exists on disk, reads the file.
5
+ * If the code string looks like a path but the file doesn't exist, throws an error.
6
+ * Otherwise treats it as inline code.
7
+ */
8
+ import { readFile } from 'fs/promises';
9
+ import { existsSync } from 'fs';
10
+ import { resolve, isAbsolute, dirname } from 'path';
11
+ import { homedir } from 'os';
12
+ import { fileURLToPath } from 'url';
13
+ import { ValidationError } from './errors.js';
14
+ // Determine the SDK's root directory at module load time
15
+ const SDK_DIR = resolve(dirname(fileURLToPath(import.meta.url)), '..');
16
+ /**
17
+ * Get the file path of the caller (the file that called the SDK).
18
+ * Used to resolve relative paths against the caller's location.
19
+ * Skips frames that are inside the SDK itself.
20
+ */
21
+ export function getCallerFile() {
22
+ const originalPrepareStackTrace = Error.prepareStackTrace;
23
+ try {
24
+ Error.prepareStackTrace = (_, stack) => stack;
25
+ const err = new Error();
26
+ const stack = err.stack;
27
+ for (const frame of stack) {
28
+ const fileName = frame.getFileName();
29
+ if (!fileName)
30
+ continue;
31
+ // Convert file:// URLs to paths
32
+ const filePath = fileName.startsWith('file://')
33
+ ? fileURLToPath(fileName)
34
+ : fileName;
35
+ // Skip node internals
36
+ if (filePath.startsWith('node:'))
37
+ continue;
38
+ // Skip files inside the SDK directory
39
+ if (filePath.startsWith(SDK_DIR))
40
+ continue;
41
+ return filePath;
42
+ }
43
+ return undefined;
44
+ }
45
+ finally {
46
+ Error.prepareStackTrace = originalPrepareStackTrace;
47
+ }
48
+ }
49
+ const CODE_EXTENSIONS = new Set([
50
+ '.js', '.mjs', '.cjs', '.ts', '.tsx', '.jsx', // JavaScript & TypeScript
51
+ '.py', '.pyw', '.pyi', // Python
52
+ ]);
53
+ function looksLikeFilePath(value) {
54
+ if (value.startsWith('/') || value.startsWith('./') || value.startsWith('../') || value.startsWith('~')) {
55
+ return true;
56
+ }
57
+ // Windows drive letter (e.g. C:\...)
58
+ if (/^[a-zA-Z]:[\\\/]/.test(value)) {
59
+ return true;
60
+ }
61
+ // Ends with a known code file extension
62
+ const dotIndex = value.lastIndexOf('.');
63
+ if (dotIndex > 0) {
64
+ const ext = value.slice(dotIndex).toLowerCase();
65
+ if (CODE_EXTENSIONS.has(ext)) {
66
+ return true;
67
+ }
68
+ }
69
+ return false;
70
+ }
71
+ /**
72
+ * Resolve code - supports inline code strings and file paths.
73
+ *
74
+ * @param code - Either inline code or a file path
75
+ * @param basePath - Base directory for resolving relative paths (e.g., caller's directory)
76
+ */
77
+ export async function resolveCode(code, basePath) {
78
+ // Inline code almost always contains newlines; file paths never do
79
+ if (code.includes('\n')) {
80
+ return code;
81
+ }
82
+ // Expand ~ to home directory
83
+ let pathToCheck = code;
84
+ if (pathToCheck.startsWith('~/')) {
85
+ pathToCheck = pathToCheck.replace('~', homedir());
86
+ }
87
+ // Resolve the path:
88
+ // - Absolute paths stay absolute
89
+ // - Relative paths (./foo, ../bar) resolve against basePath if provided
90
+ let resolvedPath;
91
+ if (isAbsolute(pathToCheck)) {
92
+ resolvedPath = pathToCheck;
93
+ }
94
+ else if (basePath) {
95
+ resolvedPath = resolve(basePath, pathToCheck);
96
+ }
97
+ else {
98
+ resolvedPath = resolve(pathToCheck);
99
+ }
100
+ if (existsSync(resolvedPath)) {
101
+ return await readFile(resolvedPath, 'utf-8');
102
+ }
103
+ // If it looks like a path but doesn't exist, give a helpful error
104
+ if (looksLikeFilePath(code)) {
105
+ throw new ValidationError(`Code file not found: "${code}" (resolved to "${resolvedPath}"). ` +
106
+ `If this is meant to be inline code, ensure it is a valid code string.`);
107
+ }
108
+ // Single-line inline code (e.g. `print("hello")`)
109
+ return code;
110
+ }
111
+ //# sourceMappingURL=resolve-code.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-code.js","sourceRoot":"","sources":["../../src/lib/resolve-code.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uploader.d.ts","sourceRoot":"","sources":["../../src/lib/uploader.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,uBAAuB;IAC/B,eAAe,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC,CAAC;IACrE,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,UAAU,qBAAqB;IAC7B,6BAA6B,EAAE;QAC7B,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;KACtD,CAAC;IACF,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE;QACZ,SAAS,EAAE,MAAM,CAAC;QAClB,8BAA8B,EAAE,MAAM,CAAC;KACxC,CAAC;CACH;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAYrF;AA4BD,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAAE,EACpB,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CA6Cf;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,EAAE,CA6BnE;AAED,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,YAAY,EAAE,EACrB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAC/C,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CA+Bf;AAED,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,YAAY,EAAE,EACrB,kBAAkB,EAAE,MAAM,EAC1B,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAuCf;AAED,YAAY,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uploader.js","sourceRoot":"","sources":["../../src/lib/uploader.ts"],"names":[],"mappings":"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"}
@@ -3,9 +3,9 @@
3
3
  */
4
4
  import type { CPUSandboxConfig, CPUSandboxInstance } from '../types/index.js';
5
5
  /**
6
- * Set the API key for sandbox operations
6
+ * Set the API token for sandbox operations
7
7
  */
8
- export declare function setCpuSandboxApiKey(apiKey: string, baseUrl?: string): void;
8
+ export declare function setCpuSandboxApiToken(apiToken: string, baseUrl?: string): void;
9
9
  /**
10
10
  * CPU Sandbox factory
11
11
  */
@@ -1 +1 @@
1
- {"version":3,"file":"cpu-sandbox.d.ts","sourceRoot":"","sources":["../../src/sandbox/cpu-sandbox.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAA4B,MAAM,mBAAmB,CAAC;AA0GxG;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAG1E;AA4JD;;GAEG;AACH,eAAO,MAAM,UAAU;IACrB;;OAEG;qBACoB,gBAAgB,KAAG,OAAO,CAAC,kBAAkB,CAAC;CAuEtE,CAAC"}
1
+ {"version":3,"file":"cpu-sandbox.d.ts","sourceRoot":"","sources":["../../src/sandbox/cpu-sandbox.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAA4B,MAAM,mBAAmB,CAAC;AA2GxG;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAG9E;AAiJD;;GAEG;AACH,eAAO,MAAM,UAAU;IACrB;;OAEG;qBACoB,gBAAgB,KAAG,OAAO,CAAC,kBAAkB,CAAC;CA8EtE,CAAC"}
@@ -1,8 +1,10 @@
1
1
  /**
2
2
  * CPU Sandbox - Hardware-isolated execution environment for untrusted AI actions
3
3
  */
4
- import { ValidationError, BuildfunctionsError } from '../utils/errors.js';
5
- import { parseMemory } from '../utils/memory.js';
4
+ import { ValidationError, BuildfunctionsError } from '../lib/errors.js';
5
+ import { parseMemory } from '../lib/memory.js';
6
+ import { resolveCode, getCallerFile } from '../lib/resolve-code.js';
7
+ import { dirname } from 'path';
6
8
  import { readFile } from 'fs/promises';
7
9
  import { existsSync } from 'fs';
8
10
  import dns from 'dns';
@@ -73,10 +75,9 @@ async function waitForEndpoint(endpoint, maxAttempts = 60, delayMs = 500) {
73
75
  if (res.status >= 200 && res.status < 500)
74
76
  return;
75
77
  }
76
- catch (err) {
77
- const error = err;
78
+ catch {
78
79
  if (attempt === 1 || attempt % 10 === 0) {
79
- console.log(` Waiting for endpoint... (attempt ${attempt}/${maxAttempts}) ${error.code || error.message}`);
80
+ console.log(` Waiting... (attempt ${attempt}/${maxAttempts})`);
80
81
  }
81
82
  }
82
83
  await new Promise(r => setTimeout(r, delayMs));
@@ -94,13 +95,13 @@ async function fetchWithAuthDNS(endpoint) {
94
95
  return httpsGetWithIP(ip, hostname, path);
95
96
  }
96
97
  // Global configuration
97
- let globalApiKey = null;
98
+ let globalApiToken = null;
98
99
  let globalBaseUrl;
99
100
  /**
100
- * Set the API key for sandbox operations
101
+ * Set the API token for sandbox operations
101
102
  */
102
- export function setCpuSandboxApiKey(apiKey, baseUrl) {
103
- globalApiKey = apiKey;
103
+ export function setCpuSandboxApiToken(apiToken, baseUrl) {
104
+ globalApiToken = apiToken;
104
105
  globalBaseUrl = baseUrl;
105
106
  }
106
107
  function formatRequirements(requirements) {
@@ -125,7 +126,7 @@ function validateConfig(config) {
125
126
  /**
126
127
  * Create a CPU sandbox instance
127
128
  */
128
- function createCPUSandboxInstance(id, name, runtime, endpoint, apiKey, baseUrl) {
129
+ function createCPUSandboxInstance(id, name, runtime, endpoint, apiToken, baseUrl) {
129
130
  let deleted = false;
130
131
  const run = async () => {
131
132
  if (deleted) {
@@ -139,31 +140,20 @@ function createCPUSandboxInstance(id, name, runtime, endpoint, apiKey, baseUrl)
139
140
  if (!responseText) {
140
141
  throw new BuildfunctionsError('Empty response from sandbox', 'UNKNOWN_ERROR', response.status);
141
142
  }
143
+ if (response.status < 200 || response.status >= 300) {
144
+ throw new BuildfunctionsError(`Execution failed: ${responseText}`, 'UNKNOWN_ERROR', response.status);
145
+ }
146
+ // Try to parse as JSON, otherwise return raw text
142
147
  let data;
143
148
  try {
144
149
  data = JSON.parse(responseText);
145
150
  }
146
151
  catch {
147
- // Response is plain text
148
- return {
149
- stdout: responseText,
150
- stderr: '',
151
- text: responseText,
152
- results: null,
153
- exit_code: 0,
154
- };
155
- }
156
- if (response.status < 200 || response.status >= 300) {
157
- const errorData = data;
158
- throw new BuildfunctionsError(`Execution failed: ${errorData.error || 'Unknown error'}`, 'UNKNOWN_ERROR', response.status);
152
+ data = responseText;
159
153
  }
160
- // Response is already the unwrapped result from the handler
161
154
  return {
162
- stdout: responseText,
163
- stderr: '',
164
- text: responseText,
165
- results: data,
166
- exit_code: 0,
155
+ response: data,
156
+ status: response.status,
167
157
  };
168
158
  };
169
159
  const upload = async (options) => {
@@ -185,7 +175,7 @@ function createCPUSandboxInstance(id, name, runtime, endpoint, apiKey, baseUrl)
185
175
  method: 'POST',
186
176
  headers: {
187
177
  'Content-Type': 'application/json',
188
- Authorization: `Bearer ${apiKey}`,
178
+ Authorization: `Bearer ${apiToken}`,
189
179
  },
190
180
  body: JSON.stringify({
191
181
  sandboxId: id,
@@ -206,7 +196,7 @@ function createCPUSandboxInstance(id, name, runtime, endpoint, apiKey, baseUrl)
206
196
  method: 'DELETE',
207
197
  headers: {
208
198
  'Content-Type': 'application/json',
209
- Authorization: `Bearer ${apiKey}`,
199
+ Authorization: `Bearer ${apiToken}`,
210
200
  },
211
201
  body: JSON.stringify({
212
202
  sandboxId: id,
@@ -237,7 +227,10 @@ export const CPUSandbox = {
237
227
  * Create a new CPU sandbox
238
228
  */
239
229
  create: async (config) => {
240
- if (!globalApiKey) {
230
+ // Capture caller file FIRST before any async operations change the call stack
231
+ const callerFile = getCallerFile();
232
+ const callerDir = callerFile ? dirname(callerFile) : undefined;
233
+ if (!globalApiToken) {
241
234
  throw new ValidationError('API key not set. Initialize Buildfunctions client first.');
242
235
  }
243
236
  validateConfig(config);
@@ -247,15 +240,17 @@ export const CPUSandbox = {
247
240
  // Match CPU function body exactly (from client.ts create function)
248
241
  const name = config.name.toLowerCase();
249
242
  const fileExt = config.language === 'python' ? '.py' : config.language === 'javascript' ? '.js' : '.py';
243
+ // Resolve code (inline string or file path)
244
+ const resolvedCode = config.code ? await resolveCode(config.code, callerDir) : '';
250
245
  const requestBody = {
251
246
  // Required by sandbox/create endpoint
252
247
  type: 'cpu',
253
248
  // Same fields as CPU function
254
249
  name,
255
250
  fileExt,
256
- code: config.code ?? '',
257
- sourceWith: config.code ?? '',
258
- sourceWithout: config.code ?? '',
251
+ code: resolvedCode,
252
+ sourceWith: resolvedCode,
253
+ sourceWithout: resolvedCode,
259
254
  language: config.language,
260
255
  runtime: config.runtime ?? config.language,
261
256
  memoryAllocated: config.memory ? parseMemory(config.memory) : 128,
@@ -273,7 +268,7 @@ export const CPUSandbox = {
273
268
  method: 'POST',
274
269
  headers: {
275
270
  'Content-Type': 'application/json',
276
- Authorization: `Bearer ${globalApiKey}`,
271
+ Authorization: `Bearer ${globalApiToken}`,
277
272
  },
278
273
  body: JSON.stringify(requestBody),
279
274
  signal: controller.signal,
@@ -294,7 +289,7 @@ export const CPUSandbox = {
294
289
  const sandboxId = data.siteId;
295
290
  const sandboxEndpoint = data.endpoint || `https://${name}.buildfunctions.app`;
296
291
  const sandboxRuntime = config.runtime ?? config.language;
297
- return createCPUSandboxInstance(sandboxId, name, sandboxRuntime, sandboxEndpoint, globalApiKey, baseUrl);
292
+ return createCPUSandboxInstance(sandboxId, name, sandboxRuntime, sandboxEndpoint, globalApiToken, baseUrl);
298
293
  },
299
294
  };
300
295
  //# sourceMappingURL=cpu-sandbox.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cpu-sandbox.js","sourceRoot":"","sources":["../../src/sandbox/cpu-sandbox.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cpu-sandbox.js","sourceRoot":"","sources":["../../src/sandbox/cpu-sandbox.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,gBAAgB,GAAG,gCAAgC,CAAC;AAE1D,+DAA+D;AAC/D,gEAAgE;AAChE,MAAM,cAAc,GAAG;IACrB,iBAAiB,EAAE,uBAAuB;IAC1C,iBAAiB,EAAE,wBAAwB;IAC3C,iBAAiB,EAAE,wBAAwB;IAC3C,gBAAgB,EAAG,0BAA0B;CAC9C,CAAC;AAEF,2DAA2D;AAC3D,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;AACvC,WAAW,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AAEvC;;GAEG;AACH,SAAS,cAAc,CAAC,QAAgB;IACtC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,WAAW,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE;YAChD,IAAI,GAAG,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAChD,MAAM,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;YAC3C,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,SAAS,CAAC,CAAC,CAAE,CAAC,CAAC;YACzB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,EAAU,EAAE,QAAgB,EAAE,IAAY;IAChE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC;YACxB,QAAQ,EAAE,EAAE;YACZ,IAAI,EAAE,GAAG;YACT,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;YAC7B,UAAU,EAAE,QAAQ,EAAE,cAAc;YACpC,OAAO,EAAE,KAAK;SACf,EAAE,CAAC,GAAG,EAAE,EAAE;YACT,IAAI,IAAI,GAAG,EAAE,CAAC;YACd,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC;YACvC,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,UAAU,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACxB,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,GAAG,CAAC,GAAG,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,eAAe,CAAC,QAAgB,EAAE,WAAW,GAAG,EAAE,EAAE,OAAO,GAAG,GAAG;IAC9E,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC9B,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;IAC9B,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC;IAE9C,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC;QACxD,IAAI,CAAC;YACH,wFAAwF;YACxF,MAAM,EAAE,GAAG,MAAM,cAAc,CAAC,QAAQ,CAAC,CAAC;YAE1C,8DAA8D;YAC9D,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;YACrD,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG;gBAAE,OAAO;QACpD,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,OAAO,KAAK,CAAC,IAAI,OAAO,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;gBACxC,OAAO,CAAC,GAAG,CAAC,0BAA0B,OAAO,IAAI,WAAW,GAAG,CAAC,CAAC;YACnE,CAAC;QACH,CAAC;QACD,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;IACjD,CAAC;IACD,MAAM,IAAI,mBAAmB,CAAC,4BAA4B,WAAW,WAAW,EAAE,eAAe,CAAC,CAAC;AACrG,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,gBAAgB,CAAC,QAAgB;IAC9C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC9B,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;IAC9B,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC;IAE9C,MAAM,EAAE,GAAG,MAAM,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC1C,OAAO,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;AAC5C,CAAC;AAGD,uBAAuB;AACvB,IAAI,cAAc,GAAkB,IAAI,CAAC;AACzC,IAAI,aAAiC,CAAC;AAEtC;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,QAAgB,EAAE,OAAgB;IACtE,cAAc,GAAG,QAAQ,CAAC;IAC1B,aAAa,GAAG,OAAO,CAAC;AAC1B,CAAC;AAED,SAAS,kBAAkB,CAAC,YAA2C;IACrE,IAAI,CAAC,YAAY;QAAE,OAAO,EAAE,CAAC;IAC7B,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC;QAAE,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChE,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,SAAS,cAAc,CAAC,MAAwB;IAC9C,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACpD,MAAM,IAAI,eAAe,CAAC,0BAA0B,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC5D,MAAM,IAAI,eAAe,CAAC,sBAAsB,CAAC,CAAC;IACpD,CAAC;IAED,sDAAsD;IACtD,IAAI,MAAM,CAAC,QAAQ,KAAK,YAAY,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACxD,MAAM,IAAI,eAAe,CAAC,wDAAwD,CAAC,CAAC;IACtF,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,wBAAwB,CAC/B,EAAU,EACV,IAAY,EACZ,OAAe,EACf,QAAgB,EAChB,QAAgB,EAChB,OAAe;IAEf,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,MAAM,GAAG,GAAG,KAAK,IAAwB,EAAE;QACzC,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,IAAI,mBAAmB,CAAC,0BAA0B,EAAE,iBAAiB,CAAC,CAAC;QAC/E,CAAC;QAED,gCAAgC;QAChC,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAC;QAEhC,oDAAoD;QACpD,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAClD,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC;QAEnC,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,mBAAmB,CAAC,6BAA6B,EAAE,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QACjG,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;YACpD,MAAM,IAAI,mBAAmB,CAAC,qBAAqB,YAAY,EAAE,EAAE,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QACvG,CAAC;QAED,kDAAkD;QAClD,IAAI,IAAa,CAAC;QAClB,IAAI,CAAC;YACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAClC,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,GAAG,YAAY,CAAC;QACtB,CAAC;QAED,OAAO;YACL,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,QAAQ,CAAC,MAAM;SACxB,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,KAAK,EAAE,OAAsB,EAAiB,EAAE;QAC7D,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,IAAI,mBAAmB,CAAC,0BAA0B,EAAE,iBAAiB,CAAC,CAAC;QAC/E,CAAC;QAED,6DAA6D;QAC7D,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,SAAS,CAAC;QAC1D,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,QAAQ,CAAC;QAEvD,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC5B,MAAM,IAAI,eAAe,CAAC,4CAA4C,CAAC,CAAC;QAC1E,CAAC;QAED,oBAAoB;QACpB,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,eAAe,CAAC,yBAAyB,SAAS,EAAE,CAAC,CAAC;QAClE,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAEnD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,yBAAyB,EAAE;YAChE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,UAAU,QAAQ,EAAE;aACpC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,SAAS,EAAE,EAAE;gBACb,QAAQ;gBACR,OAAO;gBACP,IAAI,EAAE,KAAK;aACZ,CAAC;SACH,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,mBAAmB,CAAC,eAAe,EAAE,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QACnF,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,KAAK,IAAmB,EAAE;QACzC,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,yBAAyB,EAAE;YAChE,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,UAAU,QAAQ,EAAE;aACpC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,SAAS,EAAE,EAAE;gBACb,IAAI,EAAE,KAAK;aACZ,CAAC;SACH,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,mBAAmB,CAAC,eAAe,EAAE,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QACnF,CAAC;QAED,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC,CAAC;IAEF,OAAO;QACL,EAAE;QACF,IAAI;QACJ,OAAO;QACP,QAAQ;QACR,IAAI,EAAE,KAAK;QACX,GAAG;QACH,MAAM;QACN,MAAM,EAAE,QAAQ;KACjB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB;;OAEG;IACH,MAAM,EAAE,KAAK,EAAE,MAAwB,EAA+B,EAAE;QACtE,8EAA8E;QAC9E,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;QACnC,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAE/D,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,IAAI,eAAe,CAAC,0DAA0D,CAAC,CAAC;QACxF,CAAC;QAED,cAAc,CAAC,MAAM,CAAC,CAAC;QAEvB,MAAM,OAAO,GAAG,aAAa,IAAI,gBAAgB,CAAC;QAElD,uBAAuB;QACvB,MAAM,GAAG,GAAG,GAAG,OAAO,yBAAyB,CAAC;QAEhD,mEAAmE;QACnE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;QAExG,4CAA4C;QAC5C,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAElF,MAAM,WAAW,GAAG;YAClB,sCAAsC;YACtC,IAAI,EAAE,KAAK;YACX,8BAA8B;YAC9B,IAAI;YACJ,OAAO;YACP,IAAI,EAAE,YAAY;YAClB,UAAU,EAAE,YAAY;YACxB,aAAa,EAAE,YAAY;YAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,QAAQ;YAC1C,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG;YACjE,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,EAAE;YAC7B,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC;YACvD,YAAY,EAAE,kBAAkB,CAAC,MAAM,CAAC,YAAY,CAAC;YACrD,cAAc,EAAE,EAAE;YAClB,SAAS,EAAE,IAAI;YACf,cAAc,EAAE,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,MAAM;YAClD,aAAa,EAAE,CAAC;SACjB,CAAC;QAEF,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,mBAAmB;QAE1F,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAChC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,UAAU,cAAc,EAAE;aAC1C;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;YACjC,MAAM,EAAE,UAAU,CAAC,MAAM;SAC1B,CAAC,CAAC;QACH,YAAY,CAAC,SAAS,CAAC,CAAC;QAExB,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAE3C,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,mBAAmB,CAAC,6BAA6B,YAAY,EAAE,EAAE,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC/G,CAAC;QAED,IAAI,IAA0C,CAAC;QAC/C,IAAI,CAAC;YACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAClC,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,mBAAmB,CAAC,0BAA0B,YAAY,EAAE,EAAE,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC5G,CAAC;QAED,mCAAmC;QACnC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC;QAC9B,MAAM,eAAe,GAAG,IAAI,CAAC,QAAQ,IAAI,WAAW,IAAI,qBAAqB,CAAC;QAC9E,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,QAAQ,CAAC;QAEzD,OAAO,wBAAwB,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;IAC7G,CAAC;CACF,CAAC"}
@@ -3,9 +3,9 @@
3
3
  */
4
4
  import type { GPUSandboxConfig, GPUSandboxInstance } from '../types/index.js';
5
5
  /**
6
- * Set the API key for GPU Sandbox operations
6
+ * Set the API token for GPU Sandbox operations
7
7
  */
8
- export declare function setGpuSandboxApiKey(apiKey: string, gpuBuildUrl?: string, userId?: string, username?: string, computeTier?: string, baseUrl?: string): void;
8
+ export declare function setGpuSandboxApiToken(apiToken: string, gpuBuildUrl?: string, userId?: string, username?: string, computeTier?: string, baseUrl?: string): void;
9
9
  /**
10
10
  * GPU Sandbox factory
11
11
  */
@@ -1 +1 @@
1
- {"version":3,"file":"gpu-sandbox.d.ts","sourceRoot":"","sources":["../../src/sandbox/gpu-sandbox.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAqC,MAAM,mBAAmB,CAAC;AAoBjH;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,MAAM,EACpB,MAAM,CAAC,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,EACjB,WAAW,CAAC,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,MAAM,GACf,IAAI,CAON;AAgTD;;GAEG;AACH,eAAO,MAAM,UAAU;qBACE,gBAAgB,KAAG,OAAO,CAAC,kBAAkB,CAAC;CAoItE,CAAC"}
1
+ {"version":3,"file":"gpu-sandbox.d.ts","sourceRoot":"","sources":["../../src/sandbox/gpu-sandbox.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAqC,MAAM,mBAAmB,CAAC;AAsBjH;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,EAChB,WAAW,CAAC,EAAE,MAAM,EACpB,MAAM,CAAC,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,EACjB,WAAW,CAAC,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,MAAM,GACf,IAAI,CAON;AA6SD;;GAEG;AACH,eAAO,MAAM,UAAU;qBACE,gBAAgB,KAAG,OAAO,CAAC,kBAAkB,CAAC;CA2ItE,CAAC"}
@@ -2,27 +2,29 @@
2
2
  * GPU Sandbox - Hardware-isolated execution environment for untrusted AI actions with GPU-acceleration
3
3
  */
4
4
  import https from 'https';
5
- import { ValidationError, BuildfunctionsError } from '../utils/errors.js';
6
- import { parseMemory } from '../utils/memory.js';
7
- import { detectFramework } from '../utils/framework.js';
5
+ import { ValidationError, BuildfunctionsError } from '../lib/errors.js';
6
+ import { parseMemory } from '../lib/memory.js';
7
+ import { detectFramework } from '../lib/framework.js';
8
+ import { resolveCode, getCallerFile } from '../lib/resolve-code.js';
9
+ import { dirname } from 'path';
8
10
  import { readFile } from 'fs/promises';
9
11
  import { existsSync, statSync } from 'fs';
10
12
  import { basename } from 'path';
11
- import { getFilesInDirectory, uploadModelFiles } from '../utils/uploader.js';
13
+ import { getFilesInDirectory, uploadModelFiles } from '../lib/uploader.js';
12
14
  const DEFAULT_GPU_BUILD_URL = 'https://prod-gpu-build.buildfunctions.link';
13
15
  const DEFAULT_BASE_URL = 'https://www.buildfunctions.com';
14
16
  // Global configuration
15
- let globalApiKey = null;
17
+ let globalApiToken = null;
16
18
  let globalGpuBuildUrl;
17
19
  let globalBaseUrl;
18
20
  let globalUserId;
19
21
  let globalUsername;
20
22
  let globalComputeTier;
21
23
  /**
22
- * Set the API key for GPU Sandbox operations
24
+ * Set the API token for GPU Sandbox operations
23
25
  */
24
- export function setGpuSandboxApiKey(apiKey, gpuBuildUrl, userId, username, computeTier, baseUrl) {
25
- globalApiKey = apiKey;
26
+ export function setGpuSandboxApiToken(apiToken, gpuBuildUrl, userId, username, computeTier, baseUrl) {
27
+ globalApiToken = apiToken;
26
28
  globalGpuBuildUrl = gpuBuildUrl;
27
29
  globalUserId = userId;
28
30
  globalUsername = username;
@@ -127,7 +129,7 @@ function buildRequestBody(config, localModelInfo) {
127
129
  gpu,
128
130
  memoryAllocated: config.memory ? parseMemory(config.memory) : 10000,
129
131
  timeout: config.timeout ?? 300,
130
- cpuCores: 2,
132
+ cpuCores: config.cpuCores ?? 10, // vCPUs for the sandbox VM (hotplugged at runtime)
131
133
  envVariables: JSON.stringify(config.envVariables ?? []),
132
134
  requirements,
133
135
  cronExpression: '',
@@ -162,7 +164,7 @@ function buildRequestBody(config, localModelInfo) {
162
164
  modelName: modelName,
163
165
  };
164
166
  }
165
- function createGPUSandboxInstance(id, name, runtime, gpu, endpoint, apiKey, gpuBuildUrl, baseUrl) {
167
+ function createGPUSandboxInstance(id, name, runtime, gpu, endpoint, apiToken, baseUrl) {
166
168
  let deleted = false;
167
169
  const run = async () => {
168
170
  if (deleted) {
@@ -172,36 +174,27 @@ function createGPUSandboxInstance(id, name, runtime, gpu, endpoint, apiKey, gpuB
172
174
  method: 'POST',
173
175
  headers: {
174
176
  'Content-Type': 'application/json',
175
- Authorization: `Bearer ${apiKey}`,
177
+ Authorization: `Bearer ${apiToken}`,
176
178
  },
177
179
  });
178
180
  const responseText = await response.text();
179
181
  if (!responseText) {
180
182
  throw new BuildfunctionsError('Empty response from sandbox', 'UNKNOWN_ERROR', response.status);
181
183
  }
184
+ if (!response.ok) {
185
+ throw new BuildfunctionsError(`Execution failed: ${responseText}`, 'UNKNOWN_ERROR', response.status);
186
+ }
187
+ // Try to parse as JSON, otherwise return raw text
182
188
  let data;
183
189
  try {
184
190
  data = JSON.parse(responseText);
185
191
  }
186
192
  catch {
187
- return {
188
- stdout: responseText,
189
- stderr: '',
190
- text: responseText,
191
- results: null,
192
- exit_code: 0,
193
- };
194
- }
195
- if (!response.ok) {
196
- const errorData = data;
197
- throw new BuildfunctionsError(`Execution failed: ${errorData.error || 'Unknown error'}`, 'UNKNOWN_ERROR', response.status);
193
+ data = responseText;
198
194
  }
199
195
  return {
200
- stdout: responseText,
201
- stderr: '',
202
- text: responseText,
203
- results: data,
204
- exit_code: 0,
196
+ response: data,
197
+ status: response.status,
205
198
  };
206
199
  };
207
200
  const upload = async (options) => {
@@ -221,7 +214,7 @@ function createGPUSandboxInstance(id, name, runtime, gpu, endpoint, apiKey, gpuB
221
214
  method: 'POST',
222
215
  headers: {
223
216
  'Content-Type': 'application/json',
224
- Authorization: `Bearer ${apiKey}`,
217
+ Authorization: `Bearer ${apiToken}`,
225
218
  },
226
219
  body: JSON.stringify({
227
220
  sandboxId: id,
@@ -238,16 +231,22 @@ function createGPUSandboxInstance(id, name, runtime, gpu, endpoint, apiKey, gpuB
238
231
  if (deleted) {
239
232
  return;
240
233
  }
241
- await fetch(`${gpuBuildUrl}/delete`, {
242
- method: 'POST',
243
- headers: { 'Content-Type': 'application/json' },
234
+ // Use the same endpoint as CPU sandbox - buildfunctions web app handles the delete
235
+ // This ensures proper HOST cleanup for occupied VMs
236
+ const response = await fetch(`${baseUrl}/api/sdk/sandbox/delete`, {
237
+ method: 'DELETE',
238
+ headers: {
239
+ 'Content-Type': 'application/json',
240
+ Authorization: `Bearer ${apiToken}`,
241
+ },
244
242
  body: JSON.stringify({
245
- siteId: id,
246
- sandboxType: 'gpu',
247
- userId: globalUserId,
248
- username: globalUsername,
243
+ sandboxId: id,
244
+ type: 'gpu',
249
245
  }),
250
246
  });
247
+ if (!response.ok) {
248
+ throw new BuildfunctionsError('Delete failed', 'UNKNOWN_ERROR', response.status);
249
+ }
251
250
  deleted = true;
252
251
  };
253
252
  return {
@@ -267,7 +266,10 @@ function createGPUSandboxInstance(id, name, runtime, gpu, endpoint, apiKey, gpuB
267
266
  */
268
267
  export const GPUSandbox = {
269
268
  create: async (config) => {
270
- if (!globalApiKey) {
269
+ // Capture caller file FIRST before any async operations change the call stack
270
+ const callerFile = getCallerFile();
271
+ const callerDir = callerFile ? dirname(callerFile) : undefined;
272
+ if (!globalApiToken) {
271
273
  throw new ValidationError('API key not set. Initialize Buildfunctions client first.');
272
274
  }
273
275
  validateConfig(config);
@@ -284,8 +286,11 @@ export const GPUSandbox = {
284
286
  localModelInfo = getLocalModelInfo(modelPath, config.name);
285
287
  console.log(' Found', localModelInfo.files.length, 'files to upload');
286
288
  }
289
+ // Resolve code (inline string or file path)
290
+ const resolvedCode = config.code ? await resolveCode(config.code, callerDir) : '';
291
+ const resolvedConfig = { ...config, code: resolvedCode };
287
292
  // Build request body (same structure as frontend ModelsList.jsx)
288
- const requestBody = buildRequestBody(config, localModelInfo);
293
+ const requestBody = buildRequestBody(resolvedConfig, localModelInfo);
289
294
  const body = {
290
295
  ...requestBody,
291
296
  userId: globalUserId,
@@ -341,7 +346,7 @@ export const GPUSandbox = {
341
346
  const name = config.name.toLowerCase();
342
347
  const sandboxRuntime = config.runtime ?? config.language;
343
348
  const sandboxEndpoint = data.endpoint || data.data?.sslCertificateEndpoint || `https://${name}.buildfunctions.app`;
344
- resolve(createGPUSandboxInstance(sandboxId || name, name, sandboxRuntime, config.gpu ?? 'T4', sandboxEndpoint, globalApiKey, gpuBuildUrl, baseUrl));
349
+ resolve(createGPUSandboxInstance(sandboxId || name, name, sandboxRuntime, config.gpu ?? 'T4', sandboxEndpoint, globalApiToken, baseUrl));
345
350
  });
346
351
  res.on('error', (error) => {
347
352
  reject(error);