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
|
@@ -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, RequestNotFinishedError, RequestFailedError, RequestExecutionError;
|
|
135
|
+
var SandboxException, SandboxError, SandboxResizeError, SandboxConnectionError, SandboxNotFoundError, PoolNotFoundError, PoolInUseError, RemoteAPIError, RequestNotFinishedError, RequestFailedError, RequestExecutionError;
|
|
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}`);
|
|
@@ -448,7 +517,7 @@ var init_native_worker_client = __esm({
|
|
|
448
517
|
}
|
|
449
518
|
};
|
|
450
519
|
runtimeKey = /* @__PURE__ */ Symbol.for(
|
|
451
|
-
`tensorlake.native.worker.${false ? "source" : "0.5.
|
|
520
|
+
`tensorlake.native.worker.${false ? "source" : "0.5.141"}.v1`
|
|
452
521
|
);
|
|
453
522
|
runtimes = globalThis;
|
|
454
523
|
}
|
|
@@ -481,6 +550,11 @@ function translateNativeError(error, context) {
|
|
|
481
550
|
return new SandboxError(String(error));
|
|
482
551
|
}
|
|
483
552
|
const { category, status, message } = payload;
|
|
553
|
+
if (category === "resize") {
|
|
554
|
+
return new SandboxResizeError(
|
|
555
|
+
fromSnakeKeys(JSON.parse(message), "sandboxId")
|
|
556
|
+
);
|
|
557
|
+
}
|
|
484
558
|
if (category === "connection") {
|
|
485
559
|
return new SandboxConnectionError(message, { cause: error });
|
|
486
560
|
}
|
|
@@ -571,6 +645,7 @@ var init_native_sandbox = __esm({
|
|
|
571
645
|
"src/native-sandbox.ts"() {
|
|
572
646
|
"use strict";
|
|
573
647
|
init_cjs_shims();
|
|
648
|
+
init_models();
|
|
574
649
|
init_errors();
|
|
575
650
|
init_native_worker_client();
|
|
576
651
|
init_native_worker_protocol();
|
|
@@ -661,56 +736,6 @@ var init_native_cloud = __esm({
|
|
|
661
736
|
}
|
|
662
737
|
});
|
|
663
738
|
|
|
664
|
-
// src/models.ts
|
|
665
|
-
function snakeToCamel(str) {
|
|
666
|
-
return str.replace(/_([a-z])/g, (_, ch) => ch.toUpperCase());
|
|
667
|
-
}
|
|
668
|
-
function parseTimestamp(v) {
|
|
669
|
-
if (v == null) return void 0;
|
|
670
|
-
if (v instanceof Date) return v;
|
|
671
|
-
if (typeof v === "string") {
|
|
672
|
-
const parsed = Date.parse(v);
|
|
673
|
-
return Number.isNaN(parsed) ? void 0 : new Date(parsed);
|
|
674
|
-
}
|
|
675
|
-
const ts = Number(v);
|
|
676
|
-
if (isNaN(ts)) return void 0;
|
|
677
|
-
if (ts > 1e15) return new Date(ts / 1e3);
|
|
678
|
-
if (ts > 1e12) return new Date(ts);
|
|
679
|
-
return new Date(ts * 1e3);
|
|
680
|
-
}
|
|
681
|
-
function fromSnakeKeys(obj, idField) {
|
|
682
|
-
if (Array.isArray(obj))
|
|
683
|
-
return obj.map((item) => fromSnakeKeys(item, idField));
|
|
684
|
-
if (obj !== null && typeof obj === "object" && !(obj instanceof Date)) {
|
|
685
|
-
const result = {};
|
|
686
|
-
for (const [k, v] of Object.entries(obj)) {
|
|
687
|
-
let key;
|
|
688
|
-
if (k === "id" && idField) {
|
|
689
|
-
key = idField;
|
|
690
|
-
} else {
|
|
691
|
-
key = snakeToCamel(k);
|
|
692
|
-
}
|
|
693
|
-
if (key.endsWith("At") || key === "timestamp" || key === "startedAt" || key === "endedAt") {
|
|
694
|
-
result[key] = parseTimestamp(v);
|
|
695
|
-
} else if (typeof v === "object" && v !== null && !Array.isArray(v)) {
|
|
696
|
-
result[key] = fromSnakeKeys(v);
|
|
697
|
-
} else if (Array.isArray(v)) {
|
|
698
|
-
result[key] = v.map((item) => fromSnakeKeys(item));
|
|
699
|
-
} else {
|
|
700
|
-
result[key] = v === null ? void 0 : v;
|
|
701
|
-
}
|
|
702
|
-
}
|
|
703
|
-
return result;
|
|
704
|
-
}
|
|
705
|
-
return obj;
|
|
706
|
-
}
|
|
707
|
-
var init_models = __esm({
|
|
708
|
-
"src/models.ts"() {
|
|
709
|
-
"use strict";
|
|
710
|
-
init_cjs_shims();
|
|
711
|
-
}
|
|
712
|
-
});
|
|
713
|
-
|
|
714
739
|
// src/cloud-client.ts
|
|
715
740
|
function secretFromMetadata(metadata) {
|
|
716
741
|
return {
|
|
@@ -1748,7 +1773,7 @@ async function runCreateSandboxImageCli(argv = process.argv.slice(2)) {
|
|
|
1748
1773
|
const dockerfilePath = parsed.positionals[0];
|
|
1749
1774
|
if (!dockerfilePath) {
|
|
1750
1775
|
throw new Error(
|
|
1751
|
-
"Usage: tensorlake-create-sandbox-image <dockerfile_path> [--name NAME] [--cpus N] [--memory
|
|
1776
|
+
"Usage: tensorlake-create-sandbox-image <dockerfile_path> [--name NAME] [--cpus N] [--memory MiB] [--disk_mb MiB] [--builder_disk_mb MiB] [--docker_compat] [--public]"
|
|
1752
1777
|
);
|
|
1753
1778
|
}
|
|
1754
1779
|
const cpus = parsed.values.cpus != null ? Number(parsed.values.cpus) : void 0;
|
|
@@ -1800,7 +1825,7 @@ async function runImportSandboxImageCli(argv = process.argv.slice(2)) {
|
|
|
1800
1825
|
const imageReference = parsed.positionals[0];
|
|
1801
1826
|
if (!imageReference) {
|
|
1802
1827
|
throw new Error(
|
|
1803
|
-
"Usage: tensorlake-import-sandbox-image <image_reference> [--name NAME] [--cpus N] [--memory
|
|
1828
|
+
"Usage: tensorlake-import-sandbox-image <image_reference> [--name NAME] [--cpus N] [--memory MiB] [--disk_mb MiB] [--builder_disk_mb MiB] [--docker_compat] [--public]"
|
|
1804
1829
|
);
|
|
1805
1830
|
}
|
|
1806
1831
|
const cpus = parsed.values.cpus != null ? Number(parsed.values.cpus) : void 0;
|