modal 0.10.2-dev.9 → 0.11.0
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/README.md +1 -0
- package/dist/index.cjs +654 -68
- package/dist/index.d.cts +94 -22
- package/dist/index.d.ts +94 -22
- package/dist/index.js +653 -68
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -64,6 +64,7 @@ __export(index_exports, {
|
|
|
64
64
|
QueueFullError: () => QueueFullError,
|
|
65
65
|
QueueService: () => QueueService,
|
|
66
66
|
RemoteError: () => RemoteError,
|
|
67
|
+
ResourceExhaustedError: () => ResourceExhaustedError,
|
|
67
68
|
Retries: () => Retries,
|
|
68
69
|
Sandbox: () => Sandbox2,
|
|
69
70
|
SandboxFilesystem: () => SandboxFilesystem,
|
|
@@ -3416,6 +3417,56 @@ function cloudBucketMount_MetadataTTLTypeToJSON(object) {
|
|
|
3416
3417
|
return "UNRECOGNIZED";
|
|
3417
3418
|
}
|
|
3418
3419
|
}
|
|
3420
|
+
function endpointGetInfoResponse_EndpointStatusFromJSON(object) {
|
|
3421
|
+
switch (object) {
|
|
3422
|
+
case 0:
|
|
3423
|
+
case "ENDPOINT_STATUS_UNSPECIFIED":
|
|
3424
|
+
return 0 /* ENDPOINT_STATUS_UNSPECIFIED */;
|
|
3425
|
+
case 1:
|
|
3426
|
+
case "ENDPOINT_STATUS_PROVISIONING":
|
|
3427
|
+
return 1 /* ENDPOINT_STATUS_PROVISIONING */;
|
|
3428
|
+
case 2:
|
|
3429
|
+
case "ENDPOINT_STATUS_LIVE":
|
|
3430
|
+
return 2 /* ENDPOINT_STATUS_LIVE */;
|
|
3431
|
+
case 3:
|
|
3432
|
+
case "ENDPOINT_STATUS_FAILED":
|
|
3433
|
+
return 3 /* ENDPOINT_STATUS_FAILED */;
|
|
3434
|
+
case 4:
|
|
3435
|
+
case "ENDPOINT_STATUS_CANCELLING":
|
|
3436
|
+
return 4 /* ENDPOINT_STATUS_CANCELLING */;
|
|
3437
|
+
case 5:
|
|
3438
|
+
case "ENDPOINT_STATUS_CANCELLED":
|
|
3439
|
+
return 5 /* ENDPOINT_STATUS_CANCELLED */;
|
|
3440
|
+
case 6:
|
|
3441
|
+
case "ENDPOINT_STATUS_STOPPED":
|
|
3442
|
+
return 6 /* ENDPOINT_STATUS_STOPPED */;
|
|
3443
|
+
case -1:
|
|
3444
|
+
case "UNRECOGNIZED":
|
|
3445
|
+
default:
|
|
3446
|
+
return -1 /* UNRECOGNIZED */;
|
|
3447
|
+
}
|
|
3448
|
+
}
|
|
3449
|
+
function endpointGetInfoResponse_EndpointStatusToJSON(object) {
|
|
3450
|
+
switch (object) {
|
|
3451
|
+
case 0 /* ENDPOINT_STATUS_UNSPECIFIED */:
|
|
3452
|
+
return "ENDPOINT_STATUS_UNSPECIFIED";
|
|
3453
|
+
case 1 /* ENDPOINT_STATUS_PROVISIONING */:
|
|
3454
|
+
return "ENDPOINT_STATUS_PROVISIONING";
|
|
3455
|
+
case 2 /* ENDPOINT_STATUS_LIVE */:
|
|
3456
|
+
return "ENDPOINT_STATUS_LIVE";
|
|
3457
|
+
case 3 /* ENDPOINT_STATUS_FAILED */:
|
|
3458
|
+
return "ENDPOINT_STATUS_FAILED";
|
|
3459
|
+
case 4 /* ENDPOINT_STATUS_CANCELLING */:
|
|
3460
|
+
return "ENDPOINT_STATUS_CANCELLING";
|
|
3461
|
+
case 5 /* ENDPOINT_STATUS_CANCELLED */:
|
|
3462
|
+
return "ENDPOINT_STATUS_CANCELLED";
|
|
3463
|
+
case 6 /* ENDPOINT_STATUS_STOPPED */:
|
|
3464
|
+
return "ENDPOINT_STATUS_STOPPED";
|
|
3465
|
+
case -1 /* UNRECOGNIZED */:
|
|
3466
|
+
default:
|
|
3467
|
+
return "UNRECOGNIZED";
|
|
3468
|
+
}
|
|
3469
|
+
}
|
|
3419
3470
|
function fileEntry_FileTypeFromJSON(object) {
|
|
3420
3471
|
switch (object) {
|
|
3421
3472
|
case 0:
|
|
@@ -18347,6 +18398,407 @@ var EndpointGetByNameResponse = {
|
|
|
18347
18398
|
return message;
|
|
18348
18399
|
}
|
|
18349
18400
|
};
|
|
18401
|
+
function createBaseEndpointGetInfoRequest() {
|
|
18402
|
+
return { endpointId: "" };
|
|
18403
|
+
}
|
|
18404
|
+
var EndpointGetInfoRequest = {
|
|
18405
|
+
encode(message, writer = new BinaryWriter()) {
|
|
18406
|
+
if (message.endpointId !== "") {
|
|
18407
|
+
writer.uint32(10).string(message.endpointId);
|
|
18408
|
+
}
|
|
18409
|
+
return writer;
|
|
18410
|
+
},
|
|
18411
|
+
decode(input, length) {
|
|
18412
|
+
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
|
|
18413
|
+
let end = length === void 0 ? reader.len : reader.pos + length;
|
|
18414
|
+
const message = createBaseEndpointGetInfoRequest();
|
|
18415
|
+
while (reader.pos < end) {
|
|
18416
|
+
const tag = reader.uint32();
|
|
18417
|
+
switch (tag >>> 3) {
|
|
18418
|
+
case 1: {
|
|
18419
|
+
if (tag !== 10) {
|
|
18420
|
+
break;
|
|
18421
|
+
}
|
|
18422
|
+
message.endpointId = reader.string();
|
|
18423
|
+
continue;
|
|
18424
|
+
}
|
|
18425
|
+
}
|
|
18426
|
+
if ((tag & 7) === 4 || tag === 0) {
|
|
18427
|
+
break;
|
|
18428
|
+
}
|
|
18429
|
+
reader.skip(tag & 7);
|
|
18430
|
+
}
|
|
18431
|
+
return message;
|
|
18432
|
+
},
|
|
18433
|
+
fromJSON(object) {
|
|
18434
|
+
return { endpointId: isSet5(object.endpointId) ? globalThis.String(object.endpointId) : "" };
|
|
18435
|
+
},
|
|
18436
|
+
toJSON(message) {
|
|
18437
|
+
const obj = {};
|
|
18438
|
+
if (message.endpointId !== "") {
|
|
18439
|
+
obj.endpointId = message.endpointId;
|
|
18440
|
+
}
|
|
18441
|
+
return obj;
|
|
18442
|
+
},
|
|
18443
|
+
create(base) {
|
|
18444
|
+
return EndpointGetInfoRequest.fromPartial(base ?? {});
|
|
18445
|
+
},
|
|
18446
|
+
fromPartial(object) {
|
|
18447
|
+
const message = createBaseEndpointGetInfoRequest();
|
|
18448
|
+
message.endpointId = object.endpointId ?? "";
|
|
18449
|
+
return message;
|
|
18450
|
+
}
|
|
18451
|
+
};
|
|
18452
|
+
function createBaseEndpointGetInfoResponse() {
|
|
18453
|
+
return { info: void 0, metadata: void 0 };
|
|
18454
|
+
}
|
|
18455
|
+
var EndpointGetInfoResponse = {
|
|
18456
|
+
encode(message, writer = new BinaryWriter()) {
|
|
18457
|
+
if (message.info !== void 0) {
|
|
18458
|
+
EndpointGetInfoResponse_EndpointInfoSummary.encode(message.info, writer.uint32(10).fork()).join();
|
|
18459
|
+
}
|
|
18460
|
+
if (message.metadata !== void 0) {
|
|
18461
|
+
EndpointGetInfoResponse_EndpointHandleMetadata.encode(message.metadata, writer.uint32(18).fork()).join();
|
|
18462
|
+
}
|
|
18463
|
+
return writer;
|
|
18464
|
+
},
|
|
18465
|
+
decode(input, length) {
|
|
18466
|
+
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
|
|
18467
|
+
let end = length === void 0 ? reader.len : reader.pos + length;
|
|
18468
|
+
const message = createBaseEndpointGetInfoResponse();
|
|
18469
|
+
while (reader.pos < end) {
|
|
18470
|
+
const tag = reader.uint32();
|
|
18471
|
+
switch (tag >>> 3) {
|
|
18472
|
+
case 1: {
|
|
18473
|
+
if (tag !== 10) {
|
|
18474
|
+
break;
|
|
18475
|
+
}
|
|
18476
|
+
message.info = EndpointGetInfoResponse_EndpointInfoSummary.decode(reader, reader.uint32());
|
|
18477
|
+
continue;
|
|
18478
|
+
}
|
|
18479
|
+
case 2: {
|
|
18480
|
+
if (tag !== 18) {
|
|
18481
|
+
break;
|
|
18482
|
+
}
|
|
18483
|
+
message.metadata = EndpointGetInfoResponse_EndpointHandleMetadata.decode(reader, reader.uint32());
|
|
18484
|
+
continue;
|
|
18485
|
+
}
|
|
18486
|
+
}
|
|
18487
|
+
if ((tag & 7) === 4 || tag === 0) {
|
|
18488
|
+
break;
|
|
18489
|
+
}
|
|
18490
|
+
reader.skip(tag & 7);
|
|
18491
|
+
}
|
|
18492
|
+
return message;
|
|
18493
|
+
},
|
|
18494
|
+
fromJSON(object) {
|
|
18495
|
+
return {
|
|
18496
|
+
info: isSet5(object.info) ? EndpointGetInfoResponse_EndpointInfoSummary.fromJSON(object.info) : void 0,
|
|
18497
|
+
metadata: isSet5(object.metadata) ? EndpointGetInfoResponse_EndpointHandleMetadata.fromJSON(object.metadata) : void 0
|
|
18498
|
+
};
|
|
18499
|
+
},
|
|
18500
|
+
toJSON(message) {
|
|
18501
|
+
const obj = {};
|
|
18502
|
+
if (message.info !== void 0) {
|
|
18503
|
+
obj.info = EndpointGetInfoResponse_EndpointInfoSummary.toJSON(message.info);
|
|
18504
|
+
}
|
|
18505
|
+
if (message.metadata !== void 0) {
|
|
18506
|
+
obj.metadata = EndpointGetInfoResponse_EndpointHandleMetadata.toJSON(message.metadata);
|
|
18507
|
+
}
|
|
18508
|
+
return obj;
|
|
18509
|
+
},
|
|
18510
|
+
create(base) {
|
|
18511
|
+
return EndpointGetInfoResponse.fromPartial(base ?? {});
|
|
18512
|
+
},
|
|
18513
|
+
fromPartial(object) {
|
|
18514
|
+
const message = createBaseEndpointGetInfoResponse();
|
|
18515
|
+
message.info = object.info !== void 0 && object.info !== null ? EndpointGetInfoResponse_EndpointInfoSummary.fromPartial(object.info) : void 0;
|
|
18516
|
+
message.metadata = object.metadata !== void 0 && object.metadata !== null ? EndpointGetInfoResponse_EndpointHandleMetadata.fromPartial(object.metadata) : void 0;
|
|
18517
|
+
return message;
|
|
18518
|
+
}
|
|
18519
|
+
};
|
|
18520
|
+
function createBaseEndpointGetInfoResponse_EndpointInfoSummary() {
|
|
18521
|
+
return {
|
|
18522
|
+
name: "",
|
|
18523
|
+
repoId: "",
|
|
18524
|
+
revision: "",
|
|
18525
|
+
serviceUrl: "",
|
|
18526
|
+
requiresProxyAuth: false,
|
|
18527
|
+
servingMode: 0,
|
|
18528
|
+
status: 0,
|
|
18529
|
+
lifecycle: void 0,
|
|
18530
|
+
volumeId: "",
|
|
18531
|
+
modelPath: ""
|
|
18532
|
+
};
|
|
18533
|
+
}
|
|
18534
|
+
var EndpointGetInfoResponse_EndpointInfoSummary = {
|
|
18535
|
+
encode(message, writer = new BinaryWriter()) {
|
|
18536
|
+
if (message.name !== "") {
|
|
18537
|
+
writer.uint32(10).string(message.name);
|
|
18538
|
+
}
|
|
18539
|
+
if (message.repoId !== "") {
|
|
18540
|
+
writer.uint32(18).string(message.repoId);
|
|
18541
|
+
}
|
|
18542
|
+
if (message.revision !== "") {
|
|
18543
|
+
writer.uint32(26).string(message.revision);
|
|
18544
|
+
}
|
|
18545
|
+
if (message.serviceUrl !== "") {
|
|
18546
|
+
writer.uint32(34).string(message.serviceUrl);
|
|
18547
|
+
}
|
|
18548
|
+
if (message.requiresProxyAuth !== false) {
|
|
18549
|
+
writer.uint32(40).bool(message.requiresProxyAuth);
|
|
18550
|
+
}
|
|
18551
|
+
if (message.servingMode !== 0) {
|
|
18552
|
+
writer.uint32(48).int32(message.servingMode);
|
|
18553
|
+
}
|
|
18554
|
+
if (message.status !== 0) {
|
|
18555
|
+
writer.uint32(56).int32(message.status);
|
|
18556
|
+
}
|
|
18557
|
+
if (message.lifecycle !== void 0) {
|
|
18558
|
+
EndpointLifecycle.encode(message.lifecycle, writer.uint32(66).fork()).join();
|
|
18559
|
+
}
|
|
18560
|
+
if (message.volumeId !== "") {
|
|
18561
|
+
writer.uint32(90).string(message.volumeId);
|
|
18562
|
+
}
|
|
18563
|
+
if (message.modelPath !== "") {
|
|
18564
|
+
writer.uint32(98).string(message.modelPath);
|
|
18565
|
+
}
|
|
18566
|
+
return writer;
|
|
18567
|
+
},
|
|
18568
|
+
decode(input, length) {
|
|
18569
|
+
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
|
|
18570
|
+
let end = length === void 0 ? reader.len : reader.pos + length;
|
|
18571
|
+
const message = createBaseEndpointGetInfoResponse_EndpointInfoSummary();
|
|
18572
|
+
while (reader.pos < end) {
|
|
18573
|
+
const tag = reader.uint32();
|
|
18574
|
+
switch (tag >>> 3) {
|
|
18575
|
+
case 1: {
|
|
18576
|
+
if (tag !== 10) {
|
|
18577
|
+
break;
|
|
18578
|
+
}
|
|
18579
|
+
message.name = reader.string();
|
|
18580
|
+
continue;
|
|
18581
|
+
}
|
|
18582
|
+
case 2: {
|
|
18583
|
+
if (tag !== 18) {
|
|
18584
|
+
break;
|
|
18585
|
+
}
|
|
18586
|
+
message.repoId = reader.string();
|
|
18587
|
+
continue;
|
|
18588
|
+
}
|
|
18589
|
+
case 3: {
|
|
18590
|
+
if (tag !== 26) {
|
|
18591
|
+
break;
|
|
18592
|
+
}
|
|
18593
|
+
message.revision = reader.string();
|
|
18594
|
+
continue;
|
|
18595
|
+
}
|
|
18596
|
+
case 4: {
|
|
18597
|
+
if (tag !== 34) {
|
|
18598
|
+
break;
|
|
18599
|
+
}
|
|
18600
|
+
message.serviceUrl = reader.string();
|
|
18601
|
+
continue;
|
|
18602
|
+
}
|
|
18603
|
+
case 5: {
|
|
18604
|
+
if (tag !== 40) {
|
|
18605
|
+
break;
|
|
18606
|
+
}
|
|
18607
|
+
message.requiresProxyAuth = reader.bool();
|
|
18608
|
+
continue;
|
|
18609
|
+
}
|
|
18610
|
+
case 6: {
|
|
18611
|
+
if (tag !== 48) {
|
|
18612
|
+
break;
|
|
18613
|
+
}
|
|
18614
|
+
message.servingMode = reader.int32();
|
|
18615
|
+
continue;
|
|
18616
|
+
}
|
|
18617
|
+
case 7: {
|
|
18618
|
+
if (tag !== 56) {
|
|
18619
|
+
break;
|
|
18620
|
+
}
|
|
18621
|
+
message.status = reader.int32();
|
|
18622
|
+
continue;
|
|
18623
|
+
}
|
|
18624
|
+
case 8: {
|
|
18625
|
+
if (tag !== 66) {
|
|
18626
|
+
break;
|
|
18627
|
+
}
|
|
18628
|
+
message.lifecycle = EndpointLifecycle.decode(reader, reader.uint32());
|
|
18629
|
+
continue;
|
|
18630
|
+
}
|
|
18631
|
+
case 11: {
|
|
18632
|
+
if (tag !== 90) {
|
|
18633
|
+
break;
|
|
18634
|
+
}
|
|
18635
|
+
message.volumeId = reader.string();
|
|
18636
|
+
continue;
|
|
18637
|
+
}
|
|
18638
|
+
case 12: {
|
|
18639
|
+
if (tag !== 98) {
|
|
18640
|
+
break;
|
|
18641
|
+
}
|
|
18642
|
+
message.modelPath = reader.string();
|
|
18643
|
+
continue;
|
|
18644
|
+
}
|
|
18645
|
+
}
|
|
18646
|
+
if ((tag & 7) === 4 || tag === 0) {
|
|
18647
|
+
break;
|
|
18648
|
+
}
|
|
18649
|
+
reader.skip(tag & 7);
|
|
18650
|
+
}
|
|
18651
|
+
return message;
|
|
18652
|
+
},
|
|
18653
|
+
fromJSON(object) {
|
|
18654
|
+
return {
|
|
18655
|
+
name: isSet5(object.name) ? globalThis.String(object.name) : "",
|
|
18656
|
+
repoId: isSet5(object.repoId) ? globalThis.String(object.repoId) : "",
|
|
18657
|
+
revision: isSet5(object.revision) ? globalThis.String(object.revision) : "",
|
|
18658
|
+
serviceUrl: isSet5(object.serviceUrl) ? globalThis.String(object.serviceUrl) : "",
|
|
18659
|
+
requiresProxyAuth: isSet5(object.requiresProxyAuth) ? globalThis.Boolean(object.requiresProxyAuth) : false,
|
|
18660
|
+
servingMode: isSet5(object.servingMode) ? endpointServingModeFromJSON(object.servingMode) : 0,
|
|
18661
|
+
status: isSet5(object.status) ? endpointGetInfoResponse_EndpointStatusFromJSON(object.status) : 0,
|
|
18662
|
+
lifecycle: isSet5(object.lifecycle) ? EndpointLifecycle.fromJSON(object.lifecycle) : void 0,
|
|
18663
|
+
volumeId: isSet5(object.volumeId) ? globalThis.String(object.volumeId) : "",
|
|
18664
|
+
modelPath: isSet5(object.modelPath) ? globalThis.String(object.modelPath) : ""
|
|
18665
|
+
};
|
|
18666
|
+
},
|
|
18667
|
+
toJSON(message) {
|
|
18668
|
+
const obj = {};
|
|
18669
|
+
if (message.name !== "") {
|
|
18670
|
+
obj.name = message.name;
|
|
18671
|
+
}
|
|
18672
|
+
if (message.repoId !== "") {
|
|
18673
|
+
obj.repoId = message.repoId;
|
|
18674
|
+
}
|
|
18675
|
+
if (message.revision !== "") {
|
|
18676
|
+
obj.revision = message.revision;
|
|
18677
|
+
}
|
|
18678
|
+
if (message.serviceUrl !== "") {
|
|
18679
|
+
obj.serviceUrl = message.serviceUrl;
|
|
18680
|
+
}
|
|
18681
|
+
if (message.requiresProxyAuth !== false) {
|
|
18682
|
+
obj.requiresProxyAuth = message.requiresProxyAuth;
|
|
18683
|
+
}
|
|
18684
|
+
if (message.servingMode !== 0) {
|
|
18685
|
+
obj.servingMode = endpointServingModeToJSON(message.servingMode);
|
|
18686
|
+
}
|
|
18687
|
+
if (message.status !== 0) {
|
|
18688
|
+
obj.status = endpointGetInfoResponse_EndpointStatusToJSON(message.status);
|
|
18689
|
+
}
|
|
18690
|
+
if (message.lifecycle !== void 0) {
|
|
18691
|
+
obj.lifecycle = EndpointLifecycle.toJSON(message.lifecycle);
|
|
18692
|
+
}
|
|
18693
|
+
if (message.volumeId !== "") {
|
|
18694
|
+
obj.volumeId = message.volumeId;
|
|
18695
|
+
}
|
|
18696
|
+
if (message.modelPath !== "") {
|
|
18697
|
+
obj.modelPath = message.modelPath;
|
|
18698
|
+
}
|
|
18699
|
+
return obj;
|
|
18700
|
+
},
|
|
18701
|
+
create(base) {
|
|
18702
|
+
return EndpointGetInfoResponse_EndpointInfoSummary.fromPartial(base ?? {});
|
|
18703
|
+
},
|
|
18704
|
+
fromPartial(object) {
|
|
18705
|
+
const message = createBaseEndpointGetInfoResponse_EndpointInfoSummary();
|
|
18706
|
+
message.name = object.name ?? "";
|
|
18707
|
+
message.repoId = object.repoId ?? "";
|
|
18708
|
+
message.revision = object.revision ?? "";
|
|
18709
|
+
message.serviceUrl = object.serviceUrl ?? "";
|
|
18710
|
+
message.requiresProxyAuth = object.requiresProxyAuth ?? false;
|
|
18711
|
+
message.servingMode = object.servingMode ?? 0;
|
|
18712
|
+
message.status = object.status ?? 0;
|
|
18713
|
+
message.lifecycle = object.lifecycle !== void 0 && object.lifecycle !== null ? EndpointLifecycle.fromPartial(object.lifecycle) : void 0;
|
|
18714
|
+
message.volumeId = object.volumeId ?? "";
|
|
18715
|
+
message.modelPath = object.modelPath ?? "";
|
|
18716
|
+
return message;
|
|
18717
|
+
}
|
|
18718
|
+
};
|
|
18719
|
+
function createBaseEndpointGetInfoResponse_EndpointHandleMetadata() {
|
|
18720
|
+
return { appId: "", serverId: "", environmentName: "" };
|
|
18721
|
+
}
|
|
18722
|
+
var EndpointGetInfoResponse_EndpointHandleMetadata = {
|
|
18723
|
+
encode(message, writer = new BinaryWriter()) {
|
|
18724
|
+
if (message.appId !== "") {
|
|
18725
|
+
writer.uint32(10).string(message.appId);
|
|
18726
|
+
}
|
|
18727
|
+
if (message.serverId !== "") {
|
|
18728
|
+
writer.uint32(18).string(message.serverId);
|
|
18729
|
+
}
|
|
18730
|
+
if (message.environmentName !== "") {
|
|
18731
|
+
writer.uint32(26).string(message.environmentName);
|
|
18732
|
+
}
|
|
18733
|
+
return writer;
|
|
18734
|
+
},
|
|
18735
|
+
decode(input, length) {
|
|
18736
|
+
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
|
|
18737
|
+
let end = length === void 0 ? reader.len : reader.pos + length;
|
|
18738
|
+
const message = createBaseEndpointGetInfoResponse_EndpointHandleMetadata();
|
|
18739
|
+
while (reader.pos < end) {
|
|
18740
|
+
const tag = reader.uint32();
|
|
18741
|
+
switch (tag >>> 3) {
|
|
18742
|
+
case 1: {
|
|
18743
|
+
if (tag !== 10) {
|
|
18744
|
+
break;
|
|
18745
|
+
}
|
|
18746
|
+
message.appId = reader.string();
|
|
18747
|
+
continue;
|
|
18748
|
+
}
|
|
18749
|
+
case 2: {
|
|
18750
|
+
if (tag !== 18) {
|
|
18751
|
+
break;
|
|
18752
|
+
}
|
|
18753
|
+
message.serverId = reader.string();
|
|
18754
|
+
continue;
|
|
18755
|
+
}
|
|
18756
|
+
case 3: {
|
|
18757
|
+
if (tag !== 26) {
|
|
18758
|
+
break;
|
|
18759
|
+
}
|
|
18760
|
+
message.environmentName = reader.string();
|
|
18761
|
+
continue;
|
|
18762
|
+
}
|
|
18763
|
+
}
|
|
18764
|
+
if ((tag & 7) === 4 || tag === 0) {
|
|
18765
|
+
break;
|
|
18766
|
+
}
|
|
18767
|
+
reader.skip(tag & 7);
|
|
18768
|
+
}
|
|
18769
|
+
return message;
|
|
18770
|
+
},
|
|
18771
|
+
fromJSON(object) {
|
|
18772
|
+
return {
|
|
18773
|
+
appId: isSet5(object.appId) ? globalThis.String(object.appId) : "",
|
|
18774
|
+
serverId: isSet5(object.serverId) ? globalThis.String(object.serverId) : "",
|
|
18775
|
+
environmentName: isSet5(object.environmentName) ? globalThis.String(object.environmentName) : ""
|
|
18776
|
+
};
|
|
18777
|
+
},
|
|
18778
|
+
toJSON(message) {
|
|
18779
|
+
const obj = {};
|
|
18780
|
+
if (message.appId !== "") {
|
|
18781
|
+
obj.appId = message.appId;
|
|
18782
|
+
}
|
|
18783
|
+
if (message.serverId !== "") {
|
|
18784
|
+
obj.serverId = message.serverId;
|
|
18785
|
+
}
|
|
18786
|
+
if (message.environmentName !== "") {
|
|
18787
|
+
obj.environmentName = message.environmentName;
|
|
18788
|
+
}
|
|
18789
|
+
return obj;
|
|
18790
|
+
},
|
|
18791
|
+
create(base) {
|
|
18792
|
+
return EndpointGetInfoResponse_EndpointHandleMetadata.fromPartial(base ?? {});
|
|
18793
|
+
},
|
|
18794
|
+
fromPartial(object) {
|
|
18795
|
+
const message = createBaseEndpointGetInfoResponse_EndpointHandleMetadata();
|
|
18796
|
+
message.appId = object.appId ?? "";
|
|
18797
|
+
message.serverId = object.serverId ?? "";
|
|
18798
|
+
message.environmentName = object.environmentName ?? "";
|
|
18799
|
+
return message;
|
|
18800
|
+
}
|
|
18801
|
+
};
|
|
18350
18802
|
function createBaseEndpointGetLifecycleRequest() {
|
|
18351
18803
|
return { endpointId: "" };
|
|
18352
18804
|
}
|
|
@@ -22612,7 +23064,6 @@ function createBaseFunctionMessage() {
|
|
|
22612
23064
|
ExperimentalFabricSize: 0,
|
|
22613
23065
|
untrusted: false,
|
|
22614
23066
|
ExperimentalBufferContainers: 0,
|
|
22615
|
-
ExperimentalProxyIp: void 0,
|
|
22616
23067
|
runtimePerfRecord: false,
|
|
22617
23068
|
schedule: void 0,
|
|
22618
23069
|
snapshotDebug: false,
|
|
@@ -22806,9 +23257,6 @@ var FunctionMessage = {
|
|
|
22806
23257
|
if (message.ExperimentalBufferContainers !== 0) {
|
|
22807
23258
|
writer.uint32(552).uint32(message.ExperimentalBufferContainers);
|
|
22808
23259
|
}
|
|
22809
|
-
if (message.ExperimentalProxyIp !== void 0) {
|
|
22810
|
-
writer.uint32(562).string(message.ExperimentalProxyIp);
|
|
22811
|
-
}
|
|
22812
23260
|
if (message.runtimePerfRecord !== false) {
|
|
22813
23261
|
writer.uint32(568).bool(message.runtimePerfRecord);
|
|
22814
23262
|
}
|
|
@@ -23279,13 +23727,6 @@ var FunctionMessage = {
|
|
|
23279
23727
|
message.ExperimentalBufferContainers = reader.uint32();
|
|
23280
23728
|
continue;
|
|
23281
23729
|
}
|
|
23282
|
-
case 70: {
|
|
23283
|
-
if (tag !== 562) {
|
|
23284
|
-
break;
|
|
23285
|
-
}
|
|
23286
|
-
message.ExperimentalProxyIp = reader.string();
|
|
23287
|
-
continue;
|
|
23288
|
-
}
|
|
23289
23730
|
case 71: {
|
|
23290
23731
|
if (tag !== 568) {
|
|
23291
23732
|
break;
|
|
@@ -23539,7 +23980,6 @@ var FunctionMessage = {
|
|
|
23539
23980
|
ExperimentalFabricSize: isSet5(object.ExperimentalFabricSize) ? globalThis.Number(object.ExperimentalFabricSize) : 0,
|
|
23540
23981
|
untrusted: isSet5(object.untrusted) ? globalThis.Boolean(object.untrusted) : false,
|
|
23541
23982
|
ExperimentalBufferContainers: isSet5(object.ExperimentalBufferContainers) ? globalThis.Number(object.ExperimentalBufferContainers) : 0,
|
|
23542
|
-
ExperimentalProxyIp: isSet5(object.ExperimentalProxyIp) ? globalThis.String(object.ExperimentalProxyIp) : void 0,
|
|
23543
23983
|
runtimePerfRecord: isSet5(object.runtimePerfRecord) ? globalThis.Boolean(object.runtimePerfRecord) : false,
|
|
23544
23984
|
schedule: isSet5(object.schedule) ? Schedule.fromJSON(object.schedule) : void 0,
|
|
23545
23985
|
snapshotDebug: isSet5(object.snapshotDebug) ? globalThis.Boolean(object.snapshotDebug) : false,
|
|
@@ -23739,9 +24179,6 @@ var FunctionMessage = {
|
|
|
23739
24179
|
if (message.ExperimentalBufferContainers !== 0) {
|
|
23740
24180
|
obj.ExperimentalBufferContainers = Math.round(message.ExperimentalBufferContainers);
|
|
23741
24181
|
}
|
|
23742
|
-
if (message.ExperimentalProxyIp !== void 0) {
|
|
23743
|
-
obj.ExperimentalProxyIp = message.ExperimentalProxyIp;
|
|
23744
|
-
}
|
|
23745
24182
|
if (message.runtimePerfRecord !== false) {
|
|
23746
24183
|
obj.runtimePerfRecord = message.runtimePerfRecord;
|
|
23747
24184
|
}
|
|
@@ -23888,7 +24325,6 @@ var FunctionMessage = {
|
|
|
23888
24325
|
message.ExperimentalFabricSize = object.ExperimentalFabricSize ?? 0;
|
|
23889
24326
|
message.untrusted = object.untrusted ?? false;
|
|
23890
24327
|
message.ExperimentalBufferContainers = object.ExperimentalBufferContainers ?? 0;
|
|
23891
|
-
message.ExperimentalProxyIp = object.ExperimentalProxyIp ?? void 0;
|
|
23892
24328
|
message.runtimePerfRecord = object.runtimePerfRecord ?? false;
|
|
23893
24329
|
message.schedule = object.schedule !== void 0 && object.schedule !== null ? Schedule.fromPartial(object.schedule) : void 0;
|
|
23894
24330
|
message.snapshotDebug = object.snapshotDebug ?? false;
|
|
@@ -25995,7 +26431,6 @@ function createBaseFunctionData() {
|
|
|
25995
26431
|
webUrlInfo: void 0,
|
|
25996
26432
|
webhookConfig: void 0,
|
|
25997
26433
|
customDomainInfo: [],
|
|
25998
|
-
ExperimentalProxyIp: void 0,
|
|
25999
26434
|
methodDefinitions: {},
|
|
26000
26435
|
methodDefinitionsSet: false,
|
|
26001
26436
|
isClass: false,
|
|
@@ -26074,9 +26509,6 @@ var FunctionData = {
|
|
|
26074
26509
|
for (const v of message.customDomainInfo) {
|
|
26075
26510
|
CustomDomainInfo.encode(v, writer.uint32(98).fork()).join();
|
|
26076
26511
|
}
|
|
26077
|
-
if (message.ExperimentalProxyIp !== void 0) {
|
|
26078
|
-
writer.uint32(194).string(message.ExperimentalProxyIp);
|
|
26079
|
-
}
|
|
26080
26512
|
Object.entries(message.methodDefinitions).forEach(([key, value]) => {
|
|
26081
26513
|
FunctionData_MethodDefinitionsEntry.encode({ key, value }, writer.uint32(202).fork()).join();
|
|
26082
26514
|
});
|
|
@@ -26278,13 +26710,6 @@ var FunctionData = {
|
|
|
26278
26710
|
message.customDomainInfo.push(CustomDomainInfo.decode(reader, reader.uint32()));
|
|
26279
26711
|
continue;
|
|
26280
26712
|
}
|
|
26281
|
-
case 24: {
|
|
26282
|
-
if (tag !== 194) {
|
|
26283
|
-
break;
|
|
26284
|
-
}
|
|
26285
|
-
message.ExperimentalProxyIp = reader.string();
|
|
26286
|
-
continue;
|
|
26287
|
-
}
|
|
26288
26713
|
case 25: {
|
|
26289
26714
|
if (tag !== 202) {
|
|
26290
26715
|
break;
|
|
@@ -26493,7 +26918,6 @@ var FunctionData = {
|
|
|
26493
26918
|
webUrlInfo: isSet5(object.webUrlInfo) ? WebUrlInfo.fromJSON(object.webUrlInfo) : void 0,
|
|
26494
26919
|
webhookConfig: isSet5(object.webhookConfig) ? WebhookConfig.fromJSON(object.webhookConfig) : void 0,
|
|
26495
26920
|
customDomainInfo: globalThis.Array.isArray(object?.customDomainInfo) ? object.customDomainInfo.map((e) => CustomDomainInfo.fromJSON(e)) : [],
|
|
26496
|
-
ExperimentalProxyIp: isSet5(object.ExperimentalProxyIp) ? globalThis.String(object.ExperimentalProxyIp) : void 0,
|
|
26497
26921
|
methodDefinitions: isObject2(object.methodDefinitions) ? Object.entries(object.methodDefinitions).reduce((acc, [key, value]) => {
|
|
26498
26922
|
acc[key] = MethodDefinition.fromJSON(value);
|
|
26499
26923
|
return acc;
|
|
@@ -26578,9 +27002,6 @@ var FunctionData = {
|
|
|
26578
27002
|
if (message.customDomainInfo?.length) {
|
|
26579
27003
|
obj.customDomainInfo = message.customDomainInfo.map((e) => CustomDomainInfo.toJSON(e));
|
|
26580
27004
|
}
|
|
26581
|
-
if (message.ExperimentalProxyIp !== void 0) {
|
|
26582
|
-
obj.ExperimentalProxyIp = message.ExperimentalProxyIp;
|
|
26583
|
-
}
|
|
26584
27005
|
if (message.methodDefinitions) {
|
|
26585
27006
|
const entries = Object.entries(message.methodDefinitions);
|
|
26586
27007
|
if (entries.length > 0) {
|
|
@@ -26686,7 +27107,6 @@ var FunctionData = {
|
|
|
26686
27107
|
message.webUrlInfo = object.webUrlInfo !== void 0 && object.webUrlInfo !== null ? WebUrlInfo.fromPartial(object.webUrlInfo) : void 0;
|
|
26687
27108
|
message.webhookConfig = object.webhookConfig !== void 0 && object.webhookConfig !== null ? WebhookConfig.fromPartial(object.webhookConfig) : void 0;
|
|
26688
27109
|
message.customDomainInfo = object.customDomainInfo?.map((e) => CustomDomainInfo.fromPartial(e)) || [];
|
|
26689
|
-
message.ExperimentalProxyIp = object.ExperimentalProxyIp ?? void 0;
|
|
26690
27110
|
message.methodDefinitions = Object.entries(object.methodDefinitions ?? {}).reduce((acc, [key, value]) => {
|
|
26691
27111
|
if (value !== void 0) {
|
|
26692
27112
|
acc[key] = MethodDefinition.fromPartial(value);
|
|
@@ -61285,6 +61705,14 @@ var ModalClientDefinition = {
|
|
|
61285
61705
|
responseStream: false,
|
|
61286
61706
|
options: {}
|
|
61287
61707
|
},
|
|
61708
|
+
endpointGetInfo: {
|
|
61709
|
+
name: "EndpointGetInfo",
|
|
61710
|
+
requestType: EndpointGetInfoRequest,
|
|
61711
|
+
requestStream: false,
|
|
61712
|
+
responseType: EndpointGetInfoResponse,
|
|
61713
|
+
responseStream: false,
|
|
61714
|
+
options: {}
|
|
61715
|
+
},
|
|
61288
61716
|
endpointGetLifecycle: {
|
|
61289
61717
|
name: "EndpointGetLifecycle",
|
|
61290
61718
|
requestType: EndpointGetLifecycleRequest,
|
|
@@ -62936,6 +63364,12 @@ var QueueFullError = class extends Error {
|
|
|
62936
63364
|
this.name = "QueueFullError";
|
|
62937
63365
|
}
|
|
62938
63366
|
};
|
|
63367
|
+
var ResourceExhaustedError = class extends Error {
|
|
63368
|
+
constructor(message) {
|
|
63369
|
+
super(message);
|
|
63370
|
+
this.name = "ResourceExhaustedError";
|
|
63371
|
+
}
|
|
63372
|
+
};
|
|
62939
63373
|
var SandboxFilesystemError = class extends Error {
|
|
62940
63374
|
constructor(message) {
|
|
62941
63375
|
super(message);
|
|
@@ -63458,6 +63892,16 @@ var CloudBucketMount2 = class {
|
|
|
63458
63892
|
});
|
|
63459
63893
|
}
|
|
63460
63894
|
};
|
|
63895
|
+
function buildCloudBucketMountProtos(mounts) {
|
|
63896
|
+
return Object.entries(mounts ?? {}).map(([mountPath, mount]) => {
|
|
63897
|
+
if (!mount) {
|
|
63898
|
+
throw new InvalidError(
|
|
63899
|
+
`CloudBucketMount mounted at "${mountPath}" must not be null or undefined`
|
|
63900
|
+
);
|
|
63901
|
+
}
|
|
63902
|
+
return mount.toProto(mountPath);
|
|
63903
|
+
});
|
|
63904
|
+
}
|
|
63461
63905
|
|
|
63462
63906
|
// src/secret.ts
|
|
63463
63907
|
var import_nice_grpc2 = require("nice-grpc");
|
|
@@ -63491,7 +63935,7 @@ var SecretService = class {
|
|
|
63491
63935
|
"secret_name",
|
|
63492
63936
|
name
|
|
63493
63937
|
);
|
|
63494
|
-
return new Secret(resp.secretId, name);
|
|
63938
|
+
return new Secret(resp.secretId, name, void 0, resp.metadata?.keys);
|
|
63495
63939
|
} catch (err) {
|
|
63496
63940
|
if (err instanceof import_nice_grpc2.ClientError && err.code === import_nice_grpc2.Status.NOT_FOUND)
|
|
63497
63941
|
throw new NotFoundError(err.details);
|
|
@@ -63590,16 +64034,20 @@ var Secret = class {
|
|
|
63590
64034
|
// constructed already-hydrated (e.g. from fromName), and not consulted again
|
|
63591
64035
|
// once secretId is set.
|
|
63592
64036
|
#hydrator;
|
|
64037
|
+
// Names of the env vars a server-side Secret defines, as reported by the
|
|
64038
|
+
// control plane on fromName. Undefined when unknown.
|
|
64039
|
+
#keys;
|
|
63593
64040
|
// Caches the single in-flight (or successfully completed) hydration so the
|
|
63594
64041
|
// ephemeral Secret is created at most once, even if multiple callers hydrate
|
|
63595
64042
|
// the same Secret concurrently. Cleared on failure so a transient error
|
|
63596
64043
|
// doesn't permanently break the Secret; subsequent calls can retry.
|
|
63597
64044
|
#hydratePromise;
|
|
63598
64045
|
/** @ignore */
|
|
63599
|
-
constructor(secretId, name, hydrator) {
|
|
64046
|
+
constructor(secretId, name, hydrator, keys) {
|
|
63600
64047
|
this.#secretId = secretId;
|
|
63601
64048
|
this.name = name;
|
|
63602
64049
|
this.#hydrator = hydrator;
|
|
64050
|
+
this.#keys = keys !== void 0 ? new Set(keys) : void 0;
|
|
63603
64051
|
}
|
|
63604
64052
|
/** The ID of the server-side Secret, or an empty string if not yet hydrated. */
|
|
63605
64053
|
get secretId() {
|
|
@@ -63615,6 +64063,16 @@ var Secret = class {
|
|
|
63615
64063
|
get _hydrator() {
|
|
63616
64064
|
return this.#hydrator;
|
|
63617
64065
|
}
|
|
64066
|
+
/**
|
|
64067
|
+
* Names of the env vars this server-side Secret defines, or `undefined` if
|
|
64068
|
+
* unknown (e.g. for lazy fromObject Secrets or Secrets constructed by id).
|
|
64069
|
+
*
|
|
64070
|
+
* @internal
|
|
64071
|
+
* @hidden
|
|
64072
|
+
*/
|
|
64073
|
+
get _keys() {
|
|
64074
|
+
return this.#keys;
|
|
64075
|
+
}
|
|
63618
64076
|
/**
|
|
63619
64077
|
* Lazily create the ephemeral server-side Secret backing a fromObject Secret
|
|
63620
64078
|
* and populate {@link Secret#secretId secretId}. A no-op once secretId is set
|
|
@@ -63682,6 +64140,9 @@ function splitEnvDictAndResolvableSecrets(secrets) {
|
|
|
63682
64140
|
if (hydrator !== void 0) {
|
|
63683
64141
|
Object.assign(envDict, hydrator.envDict);
|
|
63684
64142
|
} else {
|
|
64143
|
+
for (const key of secret?._keys ?? []) {
|
|
64144
|
+
delete envDict[key];
|
|
64145
|
+
}
|
|
63685
64146
|
resolvable.push(secret);
|
|
63686
64147
|
}
|
|
63687
64148
|
}
|
|
@@ -65377,7 +65838,8 @@ function createBaseTaskContainerCreateRequest() {
|
|
|
65377
65838
|
secretIds: [],
|
|
65378
65839
|
volumeMounts: [],
|
|
65379
65840
|
networkAccess: void 0,
|
|
65380
|
-
ptyInfo: void 0
|
|
65841
|
+
ptyInfo: void 0,
|
|
65842
|
+
memoryReserveConsumeMib: void 0
|
|
65381
65843
|
};
|
|
65382
65844
|
}
|
|
65383
65845
|
var TaskContainerCreateRequest = {
|
|
@@ -65412,6 +65874,9 @@ var TaskContainerCreateRequest = {
|
|
|
65412
65874
|
if (message.ptyInfo !== void 0) {
|
|
65413
65875
|
PTYInfo.encode(message.ptyInfo, writer.uint32(90).fork()).join();
|
|
65414
65876
|
}
|
|
65877
|
+
if (message.memoryReserveConsumeMib !== void 0) {
|
|
65878
|
+
writer.uint32(96).uint32(message.memoryReserveConsumeMib);
|
|
65879
|
+
}
|
|
65415
65880
|
return writer;
|
|
65416
65881
|
},
|
|
65417
65882
|
decode(input, length) {
|
|
@@ -65494,6 +65959,13 @@ var TaskContainerCreateRequest = {
|
|
|
65494
65959
|
message.ptyInfo = PTYInfo.decode(reader, reader.uint32());
|
|
65495
65960
|
continue;
|
|
65496
65961
|
}
|
|
65962
|
+
case 12: {
|
|
65963
|
+
if (tag !== 96) {
|
|
65964
|
+
break;
|
|
65965
|
+
}
|
|
65966
|
+
message.memoryReserveConsumeMib = reader.uint32();
|
|
65967
|
+
continue;
|
|
65968
|
+
}
|
|
65497
65969
|
}
|
|
65498
65970
|
if ((tag & 7) === 4 || tag === 0) {
|
|
65499
65971
|
break;
|
|
@@ -65516,7 +65988,8 @@ var TaskContainerCreateRequest = {
|
|
|
65516
65988
|
secretIds: globalThis.Array.isArray(object?.secretIds) ? object.secretIds.map((e) => globalThis.String(e)) : [],
|
|
65517
65989
|
volumeMounts: globalThis.Array.isArray(object?.volumeMounts) ? object.volumeMounts.map((e) => VolumeMount.fromJSON(e)) : [],
|
|
65518
65990
|
networkAccess: isSet6(object.networkAccess) ? NetworkAccess.fromJSON(object.networkAccess) : void 0,
|
|
65519
|
-
ptyInfo: isSet6(object.ptyInfo) ? PTYInfo.fromJSON(object.ptyInfo) : void 0
|
|
65991
|
+
ptyInfo: isSet6(object.ptyInfo) ? PTYInfo.fromJSON(object.ptyInfo) : void 0,
|
|
65992
|
+
memoryReserveConsumeMib: isSet6(object.memoryReserveConsumeMib) ? globalThis.Number(object.memoryReserveConsumeMib) : void 0
|
|
65520
65993
|
};
|
|
65521
65994
|
},
|
|
65522
65995
|
toJSON(message) {
|
|
@@ -65557,6 +66030,9 @@ var TaskContainerCreateRequest = {
|
|
|
65557
66030
|
if (message.ptyInfo !== void 0) {
|
|
65558
66031
|
obj.ptyInfo = PTYInfo.toJSON(message.ptyInfo);
|
|
65559
66032
|
}
|
|
66033
|
+
if (message.memoryReserveConsumeMib !== void 0) {
|
|
66034
|
+
obj.memoryReserveConsumeMib = Math.round(message.memoryReserveConsumeMib);
|
|
66035
|
+
}
|
|
65560
66036
|
return obj;
|
|
65561
66037
|
},
|
|
65562
66038
|
create(base) {
|
|
@@ -65579,6 +66055,7 @@ var TaskContainerCreateRequest = {
|
|
|
65579
66055
|
message.volumeMounts = object.volumeMounts?.map((e) => VolumeMount.fromPartial(e)) || [];
|
|
65580
66056
|
message.networkAccess = object.networkAccess !== void 0 && object.networkAccess !== null ? NetworkAccess.fromPartial(object.networkAccess) : void 0;
|
|
65581
66057
|
message.ptyInfo = object.ptyInfo !== void 0 && object.ptyInfo !== null ? PTYInfo.fromPartial(object.ptyInfo) : void 0;
|
|
66058
|
+
message.memoryReserveConsumeMib = object.memoryReserveConsumeMib ?? void 0;
|
|
65582
66059
|
return message;
|
|
65583
66060
|
}
|
|
65584
66061
|
};
|
|
@@ -70956,7 +71433,11 @@ var MAIN_CONTAINER_NAME = "main";
|
|
|
70956
71433
|
var CONTAINER_WAIT_POLL_TIMEOUT_SECONDS = 10;
|
|
70957
71434
|
var CONTROL_PLANE_SIDECAR_CREATE_ENV_VAR = "MODAL_USE_CONTROL_PLANE_SIDECAR_CREATE";
|
|
70958
71435
|
function useControlPlaneSidecarCreate(sandboxId) {
|
|
70959
|
-
|
|
71436
|
+
if (getSandboxVersion(sandboxId) !== "V2" /* V2 */) {
|
|
71437
|
+
return false;
|
|
71438
|
+
}
|
|
71439
|
+
const value = process.env[CONTROL_PLANE_SIDECAR_CREATE_ENV_VAR];
|
|
71440
|
+
return value === void 0 || parseBooleanFlag(value);
|
|
70960
71441
|
}
|
|
70961
71442
|
function validateSidecarName(name) {
|
|
70962
71443
|
if (name === "") {
|
|
@@ -71021,14 +71502,44 @@ var SidecarService = class {
|
|
|
71021
71502
|
const command = params?.command ?? [];
|
|
71022
71503
|
validateExecArgs(command);
|
|
71023
71504
|
validateWorkdir(params?.workdir);
|
|
71505
|
+
if (params?.experimentalMemoryReserveConsumeMiB !== void 0 && (!Number.isInteger(params.experimentalMemoryReserveConsumeMiB) || params.experimentalMemoryReserveConsumeMiB <= 0)) {
|
|
71506
|
+
throw new InvalidError(
|
|
71507
|
+
`experimentalMemoryReserveConsumeMiB must be a positive integer number of MiB, got: ${params.experimentalMemoryReserveConsumeMiB}`
|
|
71508
|
+
);
|
|
71509
|
+
}
|
|
71510
|
+
const viaControlPlane = useControlPlaneSidecarCreate(
|
|
71511
|
+
this.#access.sandboxId
|
|
71512
|
+
);
|
|
71513
|
+
const cloudBucketMountEntries = Object.entries(
|
|
71514
|
+
params?.cloudBucketMounts ?? {}
|
|
71515
|
+
);
|
|
71516
|
+
if (cloudBucketMountEntries.length > 0) {
|
|
71517
|
+
if (getSandboxVersion(this.#access.sandboxId) !== "V2" /* V2 */) {
|
|
71518
|
+
throw new InvalidError(
|
|
71519
|
+
"cloudBucketMounts are not supported in sidecars of V1 Sandboxes. A Sandbox is V1 when it has a GPU or MODAL_SANDBOX_V2=0 is set; contact Modal support for more information"
|
|
71520
|
+
);
|
|
71521
|
+
}
|
|
71522
|
+
if (!viaControlPlane) {
|
|
71523
|
+
throw new InvalidError(
|
|
71524
|
+
`cloudBucketMounts are not supported in sidecars when ${CONTROL_PLANE_SIDECAR_CREATE_ENV_VAR}=0 is set; unset it to use them`
|
|
71525
|
+
);
|
|
71526
|
+
}
|
|
71527
|
+
}
|
|
71024
71528
|
validateEnvVarKeys(params?.env ?? {});
|
|
71025
71529
|
const [envDict, resolvableSecrets] = splitEnvDictAndResolvableSecrets(
|
|
71026
71530
|
params?.secrets ?? []
|
|
71027
71531
|
);
|
|
71028
71532
|
Object.assign(envDict, params?.env ?? {});
|
|
71029
|
-
await
|
|
71533
|
+
await hydrateSandboxSecrets(
|
|
71534
|
+
this.#access.client,
|
|
71535
|
+
resolvableSecrets,
|
|
71536
|
+
params?.cloudBucketMounts
|
|
71537
|
+
);
|
|
71030
71538
|
const secretIds = collectSecretIds(resolvableSecrets);
|
|
71031
71539
|
const volumeMounts = buildSidecarVolumeMounts(params?.volumes);
|
|
71540
|
+
const cloudBucketMounts = buildCloudBucketMountProtos(
|
|
71541
|
+
params?.cloudBucketMounts
|
|
71542
|
+
);
|
|
71032
71543
|
const ptyInfo = params?.pty ? defaultSandboxPTYInfo() : void 0;
|
|
71033
71544
|
const networkAccess = buildOutboundNetworkAccess(
|
|
71034
71545
|
false,
|
|
@@ -71037,7 +71548,7 @@ var SidecarService = class {
|
|
|
71037
71548
|
);
|
|
71038
71549
|
let resp;
|
|
71039
71550
|
try {
|
|
71040
|
-
if (
|
|
71551
|
+
if (viaControlPlane) {
|
|
71041
71552
|
const ephemeralSecrets = Object.keys(envDict).length > 0 ? StringMap.create({ contents: envDict }) : void 0;
|
|
71042
71553
|
resp = await this.#access.client.cpClient.sandboxContainerCreateV2(
|
|
71043
71554
|
SandboxContainerCreateV2Request.create({
|
|
@@ -71049,8 +71560,12 @@ var SidecarService = class {
|
|
|
71049
71560
|
workdir: params?.workdir ?? void 0,
|
|
71050
71561
|
secretIds,
|
|
71051
71562
|
volumeMounts,
|
|
71563
|
+
cloudBucketMounts,
|
|
71052
71564
|
networkAccess,
|
|
71053
|
-
ptyInfo
|
|
71565
|
+
ptyInfo,
|
|
71566
|
+
resources: params?.experimentalMemoryReserveConsumeMiB !== void 0 ? Resources.create({
|
|
71567
|
+
memoryMb: params.experimentalMemoryReserveConsumeMiB
|
|
71568
|
+
}) : void 0
|
|
71054
71569
|
}),
|
|
71055
71570
|
ephemeralSecrets
|
|
71056
71571
|
})
|
|
@@ -71068,7 +71583,8 @@ var SidecarService = class {
|
|
|
71068
71583
|
secretIds,
|
|
71069
71584
|
volumeMounts,
|
|
71070
71585
|
networkAccess,
|
|
71071
|
-
ptyInfo
|
|
71586
|
+
ptyInfo,
|
|
71587
|
+
memoryReserveConsumeMib: params?.experimentalMemoryReserveConsumeMiB
|
|
71072
71588
|
})
|
|
71073
71589
|
);
|
|
71074
71590
|
}
|
|
@@ -71479,6 +71995,14 @@ var SB_LOGS_INITIAL_DELAY_MS = 10;
|
|
|
71479
71995
|
var SB_LOGS_DELAY_FACTOR = 2;
|
|
71480
71996
|
var SB_LOGS_MAX_RETRIES = 10;
|
|
71481
71997
|
var SB_LOGS_TASK_ID_TIMEOUT_SECONDS = 0.5;
|
|
71998
|
+
var SANDBOX_SCHEDULING_TIMEOUT_MS = 21 * 60 * 1e3;
|
|
71999
|
+
var GET_TASK_ID_TIMEOUT_MS = 5 * 60 * 1e3;
|
|
72000
|
+
function isTransientTaskIDLookupError(err) {
|
|
72001
|
+
if (!(err instanceof import_nice_grpc12.ClientError)) {
|
|
72002
|
+
return false;
|
|
72003
|
+
}
|
|
72004
|
+
return err.code === import_nice_grpc12.Status.UNAVAILABLE || err.code === import_nice_grpc12.Status.DEADLINE_EXCEEDED || err.code === import_nice_grpc12.Status.INTERNAL;
|
|
72005
|
+
}
|
|
71482
72006
|
var TTL_NO_EXPIRY_SENTINEL = -1;
|
|
71483
72007
|
var CUSTOMER_SUPPLIED_ENCRYPTION_KEY_MIN_LENGTH = 16;
|
|
71484
72008
|
var CUSTOMER_SUPPLIED_ENCRYPTION_KEY_MAX_LENGTH = 512;
|
|
@@ -71678,9 +72202,9 @@ async function buildSandboxCreateRequestProto(appId, imageId, params = {}) {
|
|
|
71678
72202
|
const volumeMounts = params.volumes ? Object.entries(params.volumes).map(
|
|
71679
72203
|
([mountPath, volume]) => volumeToMountProto(mountPath, volume)
|
|
71680
72204
|
) : [];
|
|
71681
|
-
const cloudBucketMounts =
|
|
71682
|
-
|
|
71683
|
-
)
|
|
72205
|
+
const cloudBucketMounts = buildCloudBucketMountProtos(
|
|
72206
|
+
params.cloudBucketMounts
|
|
72207
|
+
);
|
|
71684
72208
|
const openPorts = [];
|
|
71685
72209
|
if (params.encryptedPorts) {
|
|
71686
72210
|
openPorts.push(
|
|
@@ -71912,7 +72436,9 @@ var SandboxService = class {
|
|
|
71912
72436
|
"sandbox_id",
|
|
71913
72437
|
createResp.sandboxId
|
|
71914
72438
|
);
|
|
71915
|
-
|
|
72439
|
+
const sb = new Sandbox2(this.#client, createResp.sandboxId);
|
|
72440
|
+
await sb._waitForScheduling(SANDBOX_SCHEDULING_TIMEOUT_MS);
|
|
72441
|
+
return sb;
|
|
71916
72442
|
}
|
|
71917
72443
|
/**
|
|
71918
72444
|
* Create a new {@link Sandbox} using the experimental V2 backend.
|
|
@@ -72354,7 +72880,7 @@ function buildTaskSnapshotDirectoryRequestProto(taskId, path2, snapshotId, ttlSe
|
|
|
72354
72880
|
containerId
|
|
72355
72881
|
});
|
|
72356
72882
|
}
|
|
72357
|
-
var Sandbox2 = class
|
|
72883
|
+
var Sandbox2 = class {
|
|
72358
72884
|
#client;
|
|
72359
72885
|
sandboxId;
|
|
72360
72886
|
#appId;
|
|
@@ -72655,15 +73181,15 @@ var Sandbox2 = class _Sandbox {
|
|
|
72655
73181
|
}
|
|
72656
73182
|
return this.#client.cpClient.sandboxWait(req);
|
|
72657
73183
|
}
|
|
72658
|
-
#sandboxGetTaskId(
|
|
73184
|
+
#sandboxGetTaskId(timeoutSecs, options) {
|
|
72659
73185
|
const req = SandboxGetTaskIdRequest.create({
|
|
72660
73186
|
sandboxId: this.sandboxId,
|
|
72661
|
-
timeout
|
|
73187
|
+
timeout: timeoutSecs
|
|
72662
73188
|
});
|
|
72663
73189
|
if (this.#isV2) {
|
|
72664
|
-
return this.#client.cpClient.sandboxGetTaskIdV2(req,
|
|
73190
|
+
return this.#client.cpClient.sandboxGetTaskIdV2(req, options);
|
|
72665
73191
|
}
|
|
72666
|
-
return this.#client.cpClient.sandboxGetTaskId(req,
|
|
73192
|
+
return this.#client.cpClient.sandboxGetTaskId(req, options);
|
|
72667
73193
|
}
|
|
72668
73194
|
#sandboxGetTunnels(timeoutMs) {
|
|
72669
73195
|
const req = { sandboxId: this.sandboxId, timeout: timeoutMs / 1e3 };
|
|
@@ -72687,8 +73213,6 @@ var Sandbox2 = class _Sandbox {
|
|
|
72687
73213
|
}
|
|
72688
73214
|
await this.#client.cpClient.sandboxTerminate(req);
|
|
72689
73215
|
}
|
|
72690
|
-
static #maxGetTaskIdAttempts = 600;
|
|
72691
|
-
// 5 minutes at 500ms intervals
|
|
72692
73216
|
async #getAppId() {
|
|
72693
73217
|
if (this.#appId !== void 0) {
|
|
72694
73218
|
return this.#appId;
|
|
@@ -72709,10 +73233,7 @@ var Sandbox2 = class _Sandbox {
|
|
|
72709
73233
|
}
|
|
72710
73234
|
let resp;
|
|
72711
73235
|
try {
|
|
72712
|
-
resp = await this.#sandboxGetTaskId(
|
|
72713
|
-
void 0,
|
|
72714
|
-
SB_LOGS_TASK_ID_TIMEOUT_SECONDS
|
|
72715
|
-
);
|
|
73236
|
+
resp = await this.#sandboxGetTaskId(SB_LOGS_TASK_ID_TIMEOUT_SECONDS);
|
|
72716
73237
|
} catch (error) {
|
|
72717
73238
|
if (error instanceof import_nice_grpc12.ClientError && error.code === import_nice_grpc12.Status.DEADLINE_EXCEEDED) {
|
|
72718
73239
|
throw new ExecutionError("Sandbox task ID is not available yet.");
|
|
@@ -72726,28 +73247,92 @@ var Sandbox2 = class _Sandbox {
|
|
|
72726
73247
|
return this.#taskId;
|
|
72727
73248
|
}
|
|
72728
73249
|
async #getTaskId(signal) {
|
|
73250
|
+
return await this.#waitForTaskId(GET_TASK_ID_TIMEOUT_MS, false, signal);
|
|
73251
|
+
}
|
|
73252
|
+
/**
|
|
73253
|
+
* Blocks until the Sandbox has a task. If the wait fails, the Sandbox is
|
|
73254
|
+
* terminated so a queued one cannot start later with no caller. A timeout
|
|
73255
|
+
* surfaces as a ResourceExhaustedError.
|
|
73256
|
+
*
|
|
73257
|
+
* @internal
|
|
73258
|
+
* @hidden
|
|
73259
|
+
*/
|
|
73260
|
+
async _waitForScheduling(timeoutMs) {
|
|
73261
|
+
try {
|
|
73262
|
+
await this.#waitForTaskId(timeoutMs, true);
|
|
73263
|
+
} catch (err) {
|
|
73264
|
+
if (err instanceof ConflictError) {
|
|
73265
|
+
throw err;
|
|
73266
|
+
}
|
|
73267
|
+
try {
|
|
73268
|
+
await this.#sandboxTerminate();
|
|
73269
|
+
} catch (terminateErr) {
|
|
73270
|
+
this.#client.logger.debug(
|
|
73271
|
+
"Failed to terminate unscheduled Sandbox",
|
|
73272
|
+
"sandbox_id",
|
|
73273
|
+
this.sandboxId,
|
|
73274
|
+
"error",
|
|
73275
|
+
terminateErr
|
|
73276
|
+
);
|
|
73277
|
+
}
|
|
73278
|
+
if (err instanceof TimeoutError) {
|
|
73279
|
+
throw new ResourceExhaustedError(
|
|
73280
|
+
"Insufficient capacity to create sandbox."
|
|
73281
|
+
);
|
|
73282
|
+
}
|
|
73283
|
+
throw err;
|
|
73284
|
+
}
|
|
73285
|
+
}
|
|
73286
|
+
/**
|
|
73287
|
+
* Polls until the Sandbox has been assigned a task. Throws a ConflictError
|
|
73288
|
+
* if the Sandbox finished before that happened and a TimeoutError once
|
|
73289
|
+
* timeoutMs elapses. With retryTransient, lookups that fail with a
|
|
73290
|
+
* transient error keep polling until the deadline instead of failing.
|
|
73291
|
+
*/
|
|
73292
|
+
async #waitForTaskId(timeoutMs, retryTransient, signal) {
|
|
72729
73293
|
if (this.#taskId !== void 0) {
|
|
72730
73294
|
return this.#taskId;
|
|
72731
73295
|
}
|
|
72732
|
-
|
|
72733
|
-
|
|
73296
|
+
const deadline = Date.now() + timeoutMs;
|
|
73297
|
+
const timedOut = () => new TimeoutError(
|
|
73298
|
+
`Timed out waiting for task ID for Sandbox ${this.sandboxId}`
|
|
73299
|
+
);
|
|
73300
|
+
const pollIntervalMs = 500;
|
|
73301
|
+
const noTimeLeft = () => deadline - Date.now() <= pollIntervalMs;
|
|
73302
|
+
while (true) {
|
|
73303
|
+
let resp;
|
|
73304
|
+
try {
|
|
73305
|
+
resp = await this.#sandboxGetTaskId(void 0, { signal });
|
|
73306
|
+
} catch (err) {
|
|
73307
|
+
if (signal?.aborted || !isTransientTaskIDLookupError(err)) {
|
|
73308
|
+
throw err;
|
|
73309
|
+
}
|
|
73310
|
+
if (!retryTransient && Date.now() < deadline) {
|
|
73311
|
+
throw err;
|
|
73312
|
+
}
|
|
73313
|
+
if (noTimeLeft()) {
|
|
73314
|
+
if (err instanceof import_nice_grpc12.ClientError && err.code === import_nice_grpc12.Status.INTERNAL) {
|
|
73315
|
+
throw err;
|
|
73316
|
+
}
|
|
73317
|
+
throw timedOut();
|
|
73318
|
+
}
|
|
73319
|
+
await (0, import_promises3.setTimeout)(pollIntervalMs, void 0, { signal });
|
|
73320
|
+
continue;
|
|
73321
|
+
}
|
|
72734
73322
|
if (resp.taskId) {
|
|
72735
73323
|
this.#taskId = resp.taskId;
|
|
72736
73324
|
return this.#taskId;
|
|
72737
73325
|
}
|
|
72738
73326
|
if (resp.taskResult) {
|
|
72739
|
-
|
|
72740
|
-
|
|
72741
|
-
}
|
|
72742
|
-
throw new Error(
|
|
72743
|
-
`Sandbox ${this.sandboxId} has already completed with result: exception:"${resp.taskResult.exception}"`
|
|
73327
|
+
throw new ConflictError(
|
|
73328
|
+
resp.taskResult.exception || `Sandbox ${this.sandboxId} has already finished`
|
|
72744
73329
|
);
|
|
72745
73330
|
}
|
|
72746
|
-
|
|
73331
|
+
if (noTimeLeft()) {
|
|
73332
|
+
throw timedOut();
|
|
73333
|
+
}
|
|
73334
|
+
await (0, import_promises3.setTimeout)(pollIntervalMs, void 0, { signal });
|
|
72747
73335
|
}
|
|
72748
|
-
throw new Error(
|
|
72749
|
-
`Timed out waiting for task ID for Sandbox ${this.sandboxId}`
|
|
72750
|
-
);
|
|
72751
73336
|
}
|
|
72752
73337
|
async #getOrCreateCommandRouterClient(taskId) {
|
|
72753
73338
|
if (this.#commandRouterClient !== void 0) {
|
|
@@ -73735,7 +74320,7 @@ var AuthTokenManager = class {
|
|
|
73735
74320
|
};
|
|
73736
74321
|
|
|
73737
74322
|
// src/version.ts
|
|
73738
|
-
var SDK_VERSION = "0.
|
|
74323
|
+
var SDK_VERSION = "0.11.0";
|
|
73739
74324
|
function getSDKVersion() {
|
|
73740
74325
|
return SDK_VERSION;
|
|
73741
74326
|
}
|
|
@@ -76315,6 +76900,7 @@ var ExperimentalOutboundPolicy = class _ExperimentalOutboundPolicy {
|
|
|
76315
76900
|
QueueFullError,
|
|
76316
76901
|
QueueService,
|
|
76317
76902
|
RemoteError,
|
|
76903
|
+
ResourceExhaustedError,
|
|
76318
76904
|
Retries,
|
|
76319
76905
|
Sandbox,
|
|
76320
76906
|
SandboxFilesystem,
|