tensorlake 0.5.140 → 0.5.141
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/applications/index.cjs +80 -55
- package/dist/applications/index.cjs.map +1 -1
- package/dist/applications/index.js +80 -55
- package/dist/applications/index.js.map +1 -1
- package/dist/function-agent/main.cjs +1 -1
- package/dist/function-agent/main.js +1 -1
- package/dist/function-executor/main.cjs +2 -2
- package/dist/function-executor/main.js +2 -2
- package/dist/index.cjs +251 -131
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +77 -10
- package/dist/index.d.ts +77 -10
- package/dist/index.js +248 -131
- package/dist/index.js.map +1 -1
- package/dist/sandbox-image.cjs +80 -55
- package/dist/sandbox-image.cjs.map +1 -1
- package/dist/sandbox-image.js +80 -55
- package/dist/sandbox-image.js.map +1 -1
- package/package.json +7 -7
- package/runtime/function-executor/manifest.json +5 -5
- package/runtime/function-executor/package/dist/function-executor/main.js +2 -2
- package/runtime/function-executor/package/npm-shrinkwrap.json +2 -2
- package/runtime/function-executor/package/package.json +1 -1
- package/runtime/typescript-function-runner/manifest.json +5 -5
- package/runtime/typescript-function-runner/package/dist/function-agent/main.js +1 -1
- package/runtime/typescript-function-runner/package/npm-shrinkwrap.json +20 -20
- package/runtime/typescript-function-runner/package/package.json +7 -7
package/dist/sandbox-image.cjs
CHANGED
|
@@ -49,7 +49,7 @@ var init_defaults = __esm({
|
|
|
49
49
|
"src/defaults.ts"() {
|
|
50
50
|
"use strict";
|
|
51
51
|
init_cjs_shims();
|
|
52
|
-
SDK_VERSION = "0.5.
|
|
52
|
+
SDK_VERSION = "0.5.141";
|
|
53
53
|
API_URL = process.env.TENSORLAKE_API_URL ?? "https://api.tensorlake.ai";
|
|
54
54
|
API_KEY = process.env.TENSORLAKE_API_KEY ?? void 0;
|
|
55
55
|
NAMESPACE = process.env.INDEXIFY_NAMESPACE ?? "default";
|
|
@@ -60,6 +60,56 @@ var init_defaults = __esm({
|
|
|
60
60
|
}
|
|
61
61
|
});
|
|
62
62
|
|
|
63
|
+
// src/models.ts
|
|
64
|
+
function snakeToCamel(str) {
|
|
65
|
+
return str.replace(/_([a-z])/g, (_, ch) => ch.toUpperCase());
|
|
66
|
+
}
|
|
67
|
+
function parseTimestamp(v) {
|
|
68
|
+
if (v == null) return void 0;
|
|
69
|
+
if (v instanceof Date) return v;
|
|
70
|
+
if (typeof v === "string") {
|
|
71
|
+
const parsed = Date.parse(v);
|
|
72
|
+
return Number.isNaN(parsed) ? void 0 : new Date(parsed);
|
|
73
|
+
}
|
|
74
|
+
const ts = Number(v);
|
|
75
|
+
if (isNaN(ts)) return void 0;
|
|
76
|
+
if (ts > 1e15) return new Date(ts / 1e3);
|
|
77
|
+
if (ts > 1e12) return new Date(ts);
|
|
78
|
+
return new Date(ts * 1e3);
|
|
79
|
+
}
|
|
80
|
+
function fromSnakeKeys(obj, idField) {
|
|
81
|
+
if (Array.isArray(obj))
|
|
82
|
+
return obj.map((item) => fromSnakeKeys(item, idField));
|
|
83
|
+
if (obj !== null && typeof obj === "object" && !(obj instanceof Date)) {
|
|
84
|
+
const result = {};
|
|
85
|
+
for (const [k, v] of Object.entries(obj)) {
|
|
86
|
+
let key;
|
|
87
|
+
if (k === "id" && idField) {
|
|
88
|
+
key = idField;
|
|
89
|
+
} else {
|
|
90
|
+
key = snakeToCamel(k);
|
|
91
|
+
}
|
|
92
|
+
if (key.endsWith("At") || key === "timestamp" || key === "startedAt" || key === "endedAt") {
|
|
93
|
+
result[key] = parseTimestamp(v);
|
|
94
|
+
} else if (typeof v === "object" && v !== null && !Array.isArray(v)) {
|
|
95
|
+
result[key] = fromSnakeKeys(v);
|
|
96
|
+
} else if (Array.isArray(v)) {
|
|
97
|
+
result[key] = v.map((item) => fromSnakeKeys(item));
|
|
98
|
+
} else {
|
|
99
|
+
result[key] = v === null ? void 0 : v;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
return result;
|
|
103
|
+
}
|
|
104
|
+
return obj;
|
|
105
|
+
}
|
|
106
|
+
var init_models = __esm({
|
|
107
|
+
"src/models.ts"() {
|
|
108
|
+
"use strict";
|
|
109
|
+
init_cjs_shims();
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
|
|
63
113
|
// src/errors.ts
|
|
64
114
|
function formatErrorDetails(errorDetails) {
|
|
65
115
|
if (errorDetails == null) return void 0;
|
|
@@ -82,7 +132,7 @@ function formatErrorDetails(errorDetails) {
|
|
|
82
132
|
}
|
|
83
133
|
return String(errorDetails);
|
|
84
134
|
}
|
|
85
|
-
var SandboxException, SandboxError, SandboxConnectionError, SandboxNotFoundError, PoolNotFoundError, PoolInUseError, RemoteAPIError;
|
|
135
|
+
var SandboxException, SandboxError, SandboxResizeError, SandboxConnectionError, SandboxNotFoundError, PoolNotFoundError, PoolInUseError, RemoteAPIError;
|
|
86
136
|
var init_errors = __esm({
|
|
87
137
|
"src/errors.ts"() {
|
|
88
138
|
"use strict";
|
|
@@ -103,6 +153,25 @@ var init_errors = __esm({
|
|
|
103
153
|
if (options?.sandboxId !== void 0) this.sandboxId = options.sandboxId;
|
|
104
154
|
}
|
|
105
155
|
};
|
|
156
|
+
SandboxResizeError = class extends SandboxError {
|
|
157
|
+
generation;
|
|
158
|
+
info;
|
|
159
|
+
constructor(payload) {
|
|
160
|
+
const resources = payload.info?.resources;
|
|
161
|
+
const allocation = resources ? `${resources.cpus} CPUs, ${resources.memoryMb} MiB memory, ${resources.diskMb} MiB disk` : "unavailable";
|
|
162
|
+
super(
|
|
163
|
+
`Sandbox ${payload.sandboxId} resize generation ${payload.generation}: ${payload.message}; last confirmed allocation: ${allocation}`,
|
|
164
|
+
{ reason: payload.reason, sandboxId: payload.sandboxId }
|
|
165
|
+
);
|
|
166
|
+
this.name = "SandboxResizeError";
|
|
167
|
+
this.generation = payload.generation;
|
|
168
|
+
this.info = payload.info ?? void 0;
|
|
169
|
+
}
|
|
170
|
+
/** Last confirmed allocation, if an observation was available. */
|
|
171
|
+
get confirmedResources() {
|
|
172
|
+
return this.info?.resources;
|
|
173
|
+
}
|
|
174
|
+
};
|
|
106
175
|
SandboxConnectionError = class extends SandboxError {
|
|
107
176
|
constructor(message, options) {
|
|
108
177
|
super(`Connection error: ${message}`);
|
|
@@ -424,7 +493,7 @@ var init_native_worker_client = __esm({
|
|
|
424
493
|
}
|
|
425
494
|
};
|
|
426
495
|
runtimeKey = /* @__PURE__ */ Symbol.for(
|
|
427
|
-
`tensorlake.native.worker.${false ? "source" : "0.5.
|
|
496
|
+
`tensorlake.native.worker.${false ? "source" : "0.5.141"}.v1`
|
|
428
497
|
);
|
|
429
498
|
runtimes = globalThis;
|
|
430
499
|
}
|
|
@@ -457,6 +526,11 @@ function translateNativeError(error, context) {
|
|
|
457
526
|
return new SandboxError(String(error));
|
|
458
527
|
}
|
|
459
528
|
const { category, status, message } = payload;
|
|
529
|
+
if (category === "resize") {
|
|
530
|
+
return new SandboxResizeError(
|
|
531
|
+
fromSnakeKeys(JSON.parse(message), "sandboxId")
|
|
532
|
+
);
|
|
533
|
+
}
|
|
460
534
|
if (category === "connection") {
|
|
461
535
|
return new SandboxConnectionError(message, { cause: error });
|
|
462
536
|
}
|
|
@@ -547,6 +621,7 @@ var init_native_sandbox = __esm({
|
|
|
547
621
|
"src/native-sandbox.ts"() {
|
|
548
622
|
"use strict";
|
|
549
623
|
init_cjs_shims();
|
|
624
|
+
init_models();
|
|
550
625
|
init_errors();
|
|
551
626
|
init_native_worker_client();
|
|
552
627
|
init_native_worker_protocol();
|
|
@@ -637,56 +712,6 @@ var init_native_cloud = __esm({
|
|
|
637
712
|
}
|
|
638
713
|
});
|
|
639
714
|
|
|
640
|
-
// src/models.ts
|
|
641
|
-
function snakeToCamel(str) {
|
|
642
|
-
return str.replace(/_([a-z])/g, (_, ch) => ch.toUpperCase());
|
|
643
|
-
}
|
|
644
|
-
function parseTimestamp(v) {
|
|
645
|
-
if (v == null) return void 0;
|
|
646
|
-
if (v instanceof Date) return v;
|
|
647
|
-
if (typeof v === "string") {
|
|
648
|
-
const parsed = Date.parse(v);
|
|
649
|
-
return Number.isNaN(parsed) ? void 0 : new Date(parsed);
|
|
650
|
-
}
|
|
651
|
-
const ts = Number(v);
|
|
652
|
-
if (isNaN(ts)) return void 0;
|
|
653
|
-
if (ts > 1e15) return new Date(ts / 1e3);
|
|
654
|
-
if (ts > 1e12) return new Date(ts);
|
|
655
|
-
return new Date(ts * 1e3);
|
|
656
|
-
}
|
|
657
|
-
function fromSnakeKeys(obj, idField) {
|
|
658
|
-
if (Array.isArray(obj))
|
|
659
|
-
return obj.map((item) => fromSnakeKeys(item, idField));
|
|
660
|
-
if (obj !== null && typeof obj === "object" && !(obj instanceof Date)) {
|
|
661
|
-
const result = {};
|
|
662
|
-
for (const [k, v] of Object.entries(obj)) {
|
|
663
|
-
let key;
|
|
664
|
-
if (k === "id" && idField) {
|
|
665
|
-
key = idField;
|
|
666
|
-
} else {
|
|
667
|
-
key = snakeToCamel(k);
|
|
668
|
-
}
|
|
669
|
-
if (key.endsWith("At") || key === "timestamp" || key === "startedAt" || key === "endedAt") {
|
|
670
|
-
result[key] = parseTimestamp(v);
|
|
671
|
-
} else if (typeof v === "object" && v !== null && !Array.isArray(v)) {
|
|
672
|
-
result[key] = fromSnakeKeys(v);
|
|
673
|
-
} else if (Array.isArray(v)) {
|
|
674
|
-
result[key] = v.map((item) => fromSnakeKeys(item));
|
|
675
|
-
} else {
|
|
676
|
-
result[key] = v === null ? void 0 : v;
|
|
677
|
-
}
|
|
678
|
-
}
|
|
679
|
-
return result;
|
|
680
|
-
}
|
|
681
|
-
return obj;
|
|
682
|
-
}
|
|
683
|
-
var init_models = __esm({
|
|
684
|
-
"src/models.ts"() {
|
|
685
|
-
"use strict";
|
|
686
|
-
init_cjs_shims();
|
|
687
|
-
}
|
|
688
|
-
});
|
|
689
|
-
|
|
690
715
|
// src/cloud-client.ts
|
|
691
716
|
function secretFromMetadata(metadata) {
|
|
692
717
|
return {
|
|
@@ -1850,7 +1875,7 @@ async function runCreateSandboxImageCli(argv = process.argv.slice(2)) {
|
|
|
1850
1875
|
const dockerfilePath = parsed.positionals[0];
|
|
1851
1876
|
if (!dockerfilePath) {
|
|
1852
1877
|
throw new Error(
|
|
1853
|
-
"Usage: tensorlake-create-sandbox-image <dockerfile_path> [--name NAME] [--cpus N] [--memory
|
|
1878
|
+
"Usage: tensorlake-create-sandbox-image <dockerfile_path> [--name NAME] [--cpus N] [--memory MiB] [--disk_mb MiB] [--builder_disk_mb MiB] [--docker_compat] [--public]"
|
|
1854
1879
|
);
|
|
1855
1880
|
}
|
|
1856
1881
|
const cpus = parsed.values.cpus != null ? Number(parsed.values.cpus) : void 0;
|
|
@@ -1902,7 +1927,7 @@ async function runImportSandboxImageCli(argv = process.argv.slice(2)) {
|
|
|
1902
1927
|
const imageReference = parsed.positionals[0];
|
|
1903
1928
|
if (!imageReference) {
|
|
1904
1929
|
throw new Error(
|
|
1905
|
-
"Usage: tensorlake-import-sandbox-image <image_reference> [--name NAME] [--cpus N] [--memory
|
|
1930
|
+
"Usage: tensorlake-import-sandbox-image <image_reference> [--name NAME] [--cpus N] [--memory MiB] [--disk_mb MiB] [--builder_disk_mb MiB] [--docker_compat] [--public]"
|
|
1906
1931
|
);
|
|
1907
1932
|
}
|
|
1908
1933
|
const cpus = parsed.values.cpus != null ? Number(parsed.values.cpus) : void 0;
|