tensorlake 0.5.140 → 0.5.142
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 +89 -14
- package/dist/index.d.ts +89 -14
- 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
|
@@ -46,7 +46,7 @@ var init_defaults = __esm({
|
|
|
46
46
|
"src/defaults.ts"() {
|
|
47
47
|
"use strict";
|
|
48
48
|
init_esm_shims();
|
|
49
|
-
SDK_VERSION = "0.5.
|
|
49
|
+
SDK_VERSION = "0.5.142";
|
|
50
50
|
API_URL = process.env.TENSORLAKE_API_URL ?? "https://api.tensorlake.ai";
|
|
51
51
|
API_KEY = process.env.TENSORLAKE_API_KEY ?? void 0;
|
|
52
52
|
NAMESPACE = process.env.INDEXIFY_NAMESPACE ?? "default";
|
|
@@ -57,6 +57,56 @@ var init_defaults = __esm({
|
|
|
57
57
|
}
|
|
58
58
|
});
|
|
59
59
|
|
|
60
|
+
// src/models.ts
|
|
61
|
+
function snakeToCamel(str) {
|
|
62
|
+
return str.replace(/_([a-z])/g, (_, ch) => ch.toUpperCase());
|
|
63
|
+
}
|
|
64
|
+
function parseTimestamp(v) {
|
|
65
|
+
if (v == null) return void 0;
|
|
66
|
+
if (v instanceof Date) return v;
|
|
67
|
+
if (typeof v === "string") {
|
|
68
|
+
const parsed = Date.parse(v);
|
|
69
|
+
return Number.isNaN(parsed) ? void 0 : new Date(parsed);
|
|
70
|
+
}
|
|
71
|
+
const ts = Number(v);
|
|
72
|
+
if (isNaN(ts)) return void 0;
|
|
73
|
+
if (ts > 1e15) return new Date(ts / 1e3);
|
|
74
|
+
if (ts > 1e12) return new Date(ts);
|
|
75
|
+
return new Date(ts * 1e3);
|
|
76
|
+
}
|
|
77
|
+
function fromSnakeKeys(obj, idField) {
|
|
78
|
+
if (Array.isArray(obj))
|
|
79
|
+
return obj.map((item) => fromSnakeKeys(item, idField));
|
|
80
|
+
if (obj !== null && typeof obj === "object" && !(obj instanceof Date)) {
|
|
81
|
+
const result = {};
|
|
82
|
+
for (const [k, v] of Object.entries(obj)) {
|
|
83
|
+
let key;
|
|
84
|
+
if (k === "id" && idField) {
|
|
85
|
+
key = idField;
|
|
86
|
+
} else {
|
|
87
|
+
key = snakeToCamel(k);
|
|
88
|
+
}
|
|
89
|
+
if (key.endsWith("At") || key === "timestamp" || key === "startedAt" || key === "endedAt") {
|
|
90
|
+
result[key] = parseTimestamp(v);
|
|
91
|
+
} else if (typeof v === "object" && v !== null && !Array.isArray(v)) {
|
|
92
|
+
result[key] = fromSnakeKeys(v);
|
|
93
|
+
} else if (Array.isArray(v)) {
|
|
94
|
+
result[key] = v.map((item) => fromSnakeKeys(item));
|
|
95
|
+
} else {
|
|
96
|
+
result[key] = v === null ? void 0 : v;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
return result;
|
|
100
|
+
}
|
|
101
|
+
return obj;
|
|
102
|
+
}
|
|
103
|
+
var init_models = __esm({
|
|
104
|
+
"src/models.ts"() {
|
|
105
|
+
"use strict";
|
|
106
|
+
init_esm_shims();
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
|
|
60
110
|
// src/errors.ts
|
|
61
111
|
function formatErrorDetails(errorDetails) {
|
|
62
112
|
if (errorDetails == null) return void 0;
|
|
@@ -79,7 +129,7 @@ function formatErrorDetails(errorDetails) {
|
|
|
79
129
|
}
|
|
80
130
|
return String(errorDetails);
|
|
81
131
|
}
|
|
82
|
-
var SandboxException, SandboxError, SandboxConnectionError, SandboxNotFoundError, PoolNotFoundError, PoolInUseError, RemoteAPIError, RequestNotFinishedError, RequestFailedError, RequestExecutionError;
|
|
132
|
+
var SandboxException, SandboxError, SandboxResizeError, SandboxConnectionError, SandboxNotFoundError, PoolNotFoundError, PoolInUseError, RemoteAPIError, RequestNotFinishedError, RequestFailedError, RequestExecutionError;
|
|
83
133
|
var init_errors = __esm({
|
|
84
134
|
"src/errors.ts"() {
|
|
85
135
|
"use strict";
|
|
@@ -100,6 +150,25 @@ var init_errors = __esm({
|
|
|
100
150
|
if (options?.sandboxId !== void 0) this.sandboxId = options.sandboxId;
|
|
101
151
|
}
|
|
102
152
|
};
|
|
153
|
+
SandboxResizeError = class extends SandboxError {
|
|
154
|
+
generation;
|
|
155
|
+
info;
|
|
156
|
+
constructor(payload) {
|
|
157
|
+
const resources = payload.info?.resources;
|
|
158
|
+
const allocation = resources ? `${resources.cpus} CPUs, ${resources.memoryMb} MiB memory, ${resources.diskMb} MiB disk` : "unavailable";
|
|
159
|
+
super(
|
|
160
|
+
`Sandbox ${payload.sandboxId} resize generation ${payload.generation}: ${payload.message}; last confirmed allocation: ${allocation}`,
|
|
161
|
+
{ reason: payload.reason, sandboxId: payload.sandboxId }
|
|
162
|
+
);
|
|
163
|
+
this.name = "SandboxResizeError";
|
|
164
|
+
this.generation = payload.generation;
|
|
165
|
+
this.info = payload.info ?? void 0;
|
|
166
|
+
}
|
|
167
|
+
/** Last confirmed allocation, if an observation was available. */
|
|
168
|
+
get confirmedResources() {
|
|
169
|
+
return this.info?.resources;
|
|
170
|
+
}
|
|
171
|
+
};
|
|
103
172
|
SandboxConnectionError = class extends SandboxError {
|
|
104
173
|
constructor(message, options) {
|
|
105
174
|
super(`Connection error: ${message}`);
|
|
@@ -445,7 +514,7 @@ var init_native_worker_client = __esm({
|
|
|
445
514
|
}
|
|
446
515
|
};
|
|
447
516
|
runtimeKey = /* @__PURE__ */ Symbol.for(
|
|
448
|
-
`tensorlake.native.worker.${false ? "source" : "0.5.
|
|
517
|
+
`tensorlake.native.worker.${false ? "source" : "0.5.142"}.v1`
|
|
449
518
|
);
|
|
450
519
|
runtimes = globalThis;
|
|
451
520
|
}
|
|
@@ -478,6 +547,11 @@ function translateNativeError(error, context) {
|
|
|
478
547
|
return new SandboxError(String(error));
|
|
479
548
|
}
|
|
480
549
|
const { category, status, message } = payload;
|
|
550
|
+
if (category === "resize") {
|
|
551
|
+
return new SandboxResizeError(
|
|
552
|
+
fromSnakeKeys(JSON.parse(message), "sandboxId")
|
|
553
|
+
);
|
|
554
|
+
}
|
|
481
555
|
if (category === "connection") {
|
|
482
556
|
return new SandboxConnectionError(message, { cause: error });
|
|
483
557
|
}
|
|
@@ -568,6 +642,7 @@ var init_native_sandbox = __esm({
|
|
|
568
642
|
"src/native-sandbox.ts"() {
|
|
569
643
|
"use strict";
|
|
570
644
|
init_esm_shims();
|
|
645
|
+
init_models();
|
|
571
646
|
init_errors();
|
|
572
647
|
init_native_worker_client();
|
|
573
648
|
init_native_worker_protocol();
|
|
@@ -658,56 +733,6 @@ var init_native_cloud = __esm({
|
|
|
658
733
|
}
|
|
659
734
|
});
|
|
660
735
|
|
|
661
|
-
// src/models.ts
|
|
662
|
-
function snakeToCamel(str) {
|
|
663
|
-
return str.replace(/_([a-z])/g, (_, ch) => ch.toUpperCase());
|
|
664
|
-
}
|
|
665
|
-
function parseTimestamp(v) {
|
|
666
|
-
if (v == null) return void 0;
|
|
667
|
-
if (v instanceof Date) return v;
|
|
668
|
-
if (typeof v === "string") {
|
|
669
|
-
const parsed = Date.parse(v);
|
|
670
|
-
return Number.isNaN(parsed) ? void 0 : new Date(parsed);
|
|
671
|
-
}
|
|
672
|
-
const ts = Number(v);
|
|
673
|
-
if (isNaN(ts)) return void 0;
|
|
674
|
-
if (ts > 1e15) return new Date(ts / 1e3);
|
|
675
|
-
if (ts > 1e12) return new Date(ts);
|
|
676
|
-
return new Date(ts * 1e3);
|
|
677
|
-
}
|
|
678
|
-
function fromSnakeKeys(obj, idField) {
|
|
679
|
-
if (Array.isArray(obj))
|
|
680
|
-
return obj.map((item) => fromSnakeKeys(item, idField));
|
|
681
|
-
if (obj !== null && typeof obj === "object" && !(obj instanceof Date)) {
|
|
682
|
-
const result = {};
|
|
683
|
-
for (const [k, v] of Object.entries(obj)) {
|
|
684
|
-
let key;
|
|
685
|
-
if (k === "id" && idField) {
|
|
686
|
-
key = idField;
|
|
687
|
-
} else {
|
|
688
|
-
key = snakeToCamel(k);
|
|
689
|
-
}
|
|
690
|
-
if (key.endsWith("At") || key === "timestamp" || key === "startedAt" || key === "endedAt") {
|
|
691
|
-
result[key] = parseTimestamp(v);
|
|
692
|
-
} else if (typeof v === "object" && v !== null && !Array.isArray(v)) {
|
|
693
|
-
result[key] = fromSnakeKeys(v);
|
|
694
|
-
} else if (Array.isArray(v)) {
|
|
695
|
-
result[key] = v.map((item) => fromSnakeKeys(item));
|
|
696
|
-
} else {
|
|
697
|
-
result[key] = v === null ? void 0 : v;
|
|
698
|
-
}
|
|
699
|
-
}
|
|
700
|
-
return result;
|
|
701
|
-
}
|
|
702
|
-
return obj;
|
|
703
|
-
}
|
|
704
|
-
var init_models = __esm({
|
|
705
|
-
"src/models.ts"() {
|
|
706
|
-
"use strict";
|
|
707
|
-
init_esm_shims();
|
|
708
|
-
}
|
|
709
|
-
});
|
|
710
|
-
|
|
711
736
|
// src/cloud-client.ts
|
|
712
737
|
import { nanoid } from "nanoid";
|
|
713
738
|
function secretFromMetadata(metadata) {
|
|
@@ -1749,7 +1774,7 @@ async function runCreateSandboxImageCli(argv = process.argv.slice(2)) {
|
|
|
1749
1774
|
const dockerfilePath = parsed.positionals[0];
|
|
1750
1775
|
if (!dockerfilePath) {
|
|
1751
1776
|
throw new Error(
|
|
1752
|
-
"Usage: tensorlake-create-sandbox-image <dockerfile_path> [--name NAME] [--cpus N] [--memory
|
|
1777
|
+
"Usage: tensorlake-create-sandbox-image <dockerfile_path> [--name NAME] [--cpus N] [--memory MiB] [--disk_mb MiB] [--builder_disk_mb MiB] [--docker_compat] [--public]"
|
|
1753
1778
|
);
|
|
1754
1779
|
}
|
|
1755
1780
|
const cpus = parsed.values.cpus != null ? Number(parsed.values.cpus) : void 0;
|
|
@@ -1801,7 +1826,7 @@ async function runImportSandboxImageCli(argv = process.argv.slice(2)) {
|
|
|
1801
1826
|
const imageReference = parsed.positionals[0];
|
|
1802
1827
|
if (!imageReference) {
|
|
1803
1828
|
throw new Error(
|
|
1804
|
-
"Usage: tensorlake-import-sandbox-image <image_reference> [--name NAME] [--cpus N] [--memory
|
|
1829
|
+
"Usage: tensorlake-import-sandbox-image <image_reference> [--name NAME] [--cpus N] [--memory MiB] [--disk_mb MiB] [--builder_disk_mb MiB] [--docker_compat] [--public]"
|
|
1805
1830
|
);
|
|
1806
1831
|
}
|
|
1807
1832
|
const cpus = parsed.values.cpus != null ? Number(parsed.values.cpus) : void 0;
|