modal 0.11.1-dev.7 → 0.11.1-dev.8

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/index.cjs CHANGED
@@ -2265,6 +2265,9 @@ function environmentTypeFromJSON(object) {
2265
2265
  case 1:
2266
2266
  case "ENVIRONMENT_TYPE_PUBLIC":
2267
2267
  return 1 /* ENVIRONMENT_TYPE_PUBLIC */;
2268
+ case 2:
2269
+ case "ENVIRONMENT_TYPE_MODAL_ADMINISTERED":
2270
+ return 2 /* ENVIRONMENT_TYPE_MODAL_ADMINISTERED */;
2268
2271
  case -1:
2269
2272
  case "UNRECOGNIZED":
2270
2273
  default:
@@ -2277,6 +2280,8 @@ function environmentTypeToJSON(object) {
2277
2280
  return "ENVIRONMENT_TYPE_UNSPECIFIED";
2278
2281
  case 1 /* ENVIRONMENT_TYPE_PUBLIC */:
2279
2282
  return "ENVIRONMENT_TYPE_PUBLIC";
2283
+ case 2 /* ENVIRONMENT_TYPE_MODAL_ADMINISTERED */:
2284
+ return "ENVIRONMENT_TYPE_MODAL_ADMINISTERED";
2280
2285
  case -1 /* UNRECOGNIZED */:
2281
2286
  default:
2282
2287
  return "UNRECOGNIZED";
@@ -12696,6 +12701,377 @@ var ClusterListResponse = {
12696
12701
  return message;
12697
12702
  }
12698
12703
  };
12704
+ function createBaseClusterReservation() {
12705
+ return {
12706
+ name: "",
12707
+ gpuType: "",
12708
+ region: "",
12709
+ minReservedWorkers: 0,
12710
+ reservedWorkers: 0,
12711
+ activeWorkers: 0,
12712
+ idleWorkers: 0,
12713
+ unfulfilledWorkers: 0,
12714
+ tasks: []
12715
+ };
12716
+ }
12717
+ var ClusterReservation = {
12718
+ encode(message, writer = new BinaryWriter()) {
12719
+ if (message.name !== "") {
12720
+ writer.uint32(10).string(message.name);
12721
+ }
12722
+ if (message.gpuType !== "") {
12723
+ writer.uint32(18).string(message.gpuType);
12724
+ }
12725
+ if (message.region !== "") {
12726
+ writer.uint32(26).string(message.region);
12727
+ }
12728
+ if (message.minReservedWorkers !== 0) {
12729
+ writer.uint32(32).int32(message.minReservedWorkers);
12730
+ }
12731
+ if (message.reservedWorkers !== 0) {
12732
+ writer.uint32(40).int32(message.reservedWorkers);
12733
+ }
12734
+ if (message.activeWorkers !== 0) {
12735
+ writer.uint32(48).int32(message.activeWorkers);
12736
+ }
12737
+ if (message.idleWorkers !== 0) {
12738
+ writer.uint32(56).int32(message.idleWorkers);
12739
+ }
12740
+ if (message.unfulfilledWorkers !== 0) {
12741
+ writer.uint32(64).int32(message.unfulfilledWorkers);
12742
+ }
12743
+ for (const v of message.tasks) {
12744
+ ClusterReservation_Task.encode(v, writer.uint32(74).fork()).join();
12745
+ }
12746
+ return writer;
12747
+ },
12748
+ decode(input, length) {
12749
+ const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
12750
+ let end = length === void 0 ? reader.len : reader.pos + length;
12751
+ const message = createBaseClusterReservation();
12752
+ while (reader.pos < end) {
12753
+ const tag = reader.uint32();
12754
+ switch (tag >>> 3) {
12755
+ case 1: {
12756
+ if (tag !== 10) {
12757
+ break;
12758
+ }
12759
+ message.name = reader.string();
12760
+ continue;
12761
+ }
12762
+ case 2: {
12763
+ if (tag !== 18) {
12764
+ break;
12765
+ }
12766
+ message.gpuType = reader.string();
12767
+ continue;
12768
+ }
12769
+ case 3: {
12770
+ if (tag !== 26) {
12771
+ break;
12772
+ }
12773
+ message.region = reader.string();
12774
+ continue;
12775
+ }
12776
+ case 4: {
12777
+ if (tag !== 32) {
12778
+ break;
12779
+ }
12780
+ message.minReservedWorkers = reader.int32();
12781
+ continue;
12782
+ }
12783
+ case 5: {
12784
+ if (tag !== 40) {
12785
+ break;
12786
+ }
12787
+ message.reservedWorkers = reader.int32();
12788
+ continue;
12789
+ }
12790
+ case 6: {
12791
+ if (tag !== 48) {
12792
+ break;
12793
+ }
12794
+ message.activeWorkers = reader.int32();
12795
+ continue;
12796
+ }
12797
+ case 7: {
12798
+ if (tag !== 56) {
12799
+ break;
12800
+ }
12801
+ message.idleWorkers = reader.int32();
12802
+ continue;
12803
+ }
12804
+ case 8: {
12805
+ if (tag !== 64) {
12806
+ break;
12807
+ }
12808
+ message.unfulfilledWorkers = reader.int32();
12809
+ continue;
12810
+ }
12811
+ case 9: {
12812
+ if (tag !== 74) {
12813
+ break;
12814
+ }
12815
+ message.tasks.push(ClusterReservation_Task.decode(reader, reader.uint32()));
12816
+ continue;
12817
+ }
12818
+ }
12819
+ if ((tag & 7) === 4 || tag === 0) {
12820
+ break;
12821
+ }
12822
+ reader.skip(tag & 7);
12823
+ }
12824
+ return message;
12825
+ },
12826
+ fromJSON(object) {
12827
+ return {
12828
+ name: isSet5(object.name) ? globalThis.String(object.name) : "",
12829
+ gpuType: isSet5(object.gpuType) ? globalThis.String(object.gpuType) : "",
12830
+ region: isSet5(object.region) ? globalThis.String(object.region) : "",
12831
+ minReservedWorkers: isSet5(object.minReservedWorkers) ? globalThis.Number(object.minReservedWorkers) : 0,
12832
+ reservedWorkers: isSet5(object.reservedWorkers) ? globalThis.Number(object.reservedWorkers) : 0,
12833
+ activeWorkers: isSet5(object.activeWorkers) ? globalThis.Number(object.activeWorkers) : 0,
12834
+ idleWorkers: isSet5(object.idleWorkers) ? globalThis.Number(object.idleWorkers) : 0,
12835
+ unfulfilledWorkers: isSet5(object.unfulfilledWorkers) ? globalThis.Number(object.unfulfilledWorkers) : 0,
12836
+ tasks: globalThis.Array.isArray(object?.tasks) ? object.tasks.map((e) => ClusterReservation_Task.fromJSON(e)) : []
12837
+ };
12838
+ },
12839
+ toJSON(message) {
12840
+ const obj = {};
12841
+ if (message.name !== "") {
12842
+ obj.name = message.name;
12843
+ }
12844
+ if (message.gpuType !== "") {
12845
+ obj.gpuType = message.gpuType;
12846
+ }
12847
+ if (message.region !== "") {
12848
+ obj.region = message.region;
12849
+ }
12850
+ if (message.minReservedWorkers !== 0) {
12851
+ obj.minReservedWorkers = Math.round(message.minReservedWorkers);
12852
+ }
12853
+ if (message.reservedWorkers !== 0) {
12854
+ obj.reservedWorkers = Math.round(message.reservedWorkers);
12855
+ }
12856
+ if (message.activeWorkers !== 0) {
12857
+ obj.activeWorkers = Math.round(message.activeWorkers);
12858
+ }
12859
+ if (message.idleWorkers !== 0) {
12860
+ obj.idleWorkers = Math.round(message.idleWorkers);
12861
+ }
12862
+ if (message.unfulfilledWorkers !== 0) {
12863
+ obj.unfulfilledWorkers = Math.round(message.unfulfilledWorkers);
12864
+ }
12865
+ if (message.tasks?.length) {
12866
+ obj.tasks = message.tasks.map((e) => ClusterReservation_Task.toJSON(e));
12867
+ }
12868
+ return obj;
12869
+ },
12870
+ create(base) {
12871
+ return ClusterReservation.fromPartial(base ?? {});
12872
+ },
12873
+ fromPartial(object) {
12874
+ const message = createBaseClusterReservation();
12875
+ message.name = object.name ?? "";
12876
+ message.gpuType = object.gpuType ?? "";
12877
+ message.region = object.region ?? "";
12878
+ message.minReservedWorkers = object.minReservedWorkers ?? 0;
12879
+ message.reservedWorkers = object.reservedWorkers ?? 0;
12880
+ message.activeWorkers = object.activeWorkers ?? 0;
12881
+ message.idleWorkers = object.idleWorkers ?? 0;
12882
+ message.unfulfilledWorkers = object.unfulfilledWorkers ?? 0;
12883
+ message.tasks = object.tasks?.map((e) => ClusterReservation_Task.fromPartial(e)) || [];
12884
+ return message;
12885
+ }
12886
+ };
12887
+ function createBaseClusterReservation_Task() {
12888
+ return { taskId: "", clusterRank: 0, appId: "", functionId: "" };
12889
+ }
12890
+ var ClusterReservation_Task = {
12891
+ encode(message, writer = new BinaryWriter()) {
12892
+ if (message.taskId !== "") {
12893
+ writer.uint32(10).string(message.taskId);
12894
+ }
12895
+ if (message.clusterRank !== 0) {
12896
+ writer.uint32(16).int32(message.clusterRank);
12897
+ }
12898
+ if (message.appId !== "") {
12899
+ writer.uint32(26).string(message.appId);
12900
+ }
12901
+ if (message.functionId !== "") {
12902
+ writer.uint32(34).string(message.functionId);
12903
+ }
12904
+ return writer;
12905
+ },
12906
+ decode(input, length) {
12907
+ const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
12908
+ let end = length === void 0 ? reader.len : reader.pos + length;
12909
+ const message = createBaseClusterReservation_Task();
12910
+ while (reader.pos < end) {
12911
+ const tag = reader.uint32();
12912
+ switch (tag >>> 3) {
12913
+ case 1: {
12914
+ if (tag !== 10) {
12915
+ break;
12916
+ }
12917
+ message.taskId = reader.string();
12918
+ continue;
12919
+ }
12920
+ case 2: {
12921
+ if (tag !== 16) {
12922
+ break;
12923
+ }
12924
+ message.clusterRank = reader.int32();
12925
+ continue;
12926
+ }
12927
+ case 3: {
12928
+ if (tag !== 26) {
12929
+ break;
12930
+ }
12931
+ message.appId = reader.string();
12932
+ continue;
12933
+ }
12934
+ case 4: {
12935
+ if (tag !== 34) {
12936
+ break;
12937
+ }
12938
+ message.functionId = reader.string();
12939
+ continue;
12940
+ }
12941
+ }
12942
+ if ((tag & 7) === 4 || tag === 0) {
12943
+ break;
12944
+ }
12945
+ reader.skip(tag & 7);
12946
+ }
12947
+ return message;
12948
+ },
12949
+ fromJSON(object) {
12950
+ return {
12951
+ taskId: isSet5(object.taskId) ? globalThis.String(object.taskId) : "",
12952
+ clusterRank: isSet5(object.clusterRank) ? globalThis.Number(object.clusterRank) : 0,
12953
+ appId: isSet5(object.appId) ? globalThis.String(object.appId) : "",
12954
+ functionId: isSet5(object.functionId) ? globalThis.String(object.functionId) : ""
12955
+ };
12956
+ },
12957
+ toJSON(message) {
12958
+ const obj = {};
12959
+ if (message.taskId !== "") {
12960
+ obj.taskId = message.taskId;
12961
+ }
12962
+ if (message.clusterRank !== 0) {
12963
+ obj.clusterRank = Math.round(message.clusterRank);
12964
+ }
12965
+ if (message.appId !== "") {
12966
+ obj.appId = message.appId;
12967
+ }
12968
+ if (message.functionId !== "") {
12969
+ obj.functionId = message.functionId;
12970
+ }
12971
+ return obj;
12972
+ },
12973
+ create(base) {
12974
+ return ClusterReservation_Task.fromPartial(base ?? {});
12975
+ },
12976
+ fromPartial(object) {
12977
+ const message = createBaseClusterReservation_Task();
12978
+ message.taskId = object.taskId ?? "";
12979
+ message.clusterRank = object.clusterRank ?? 0;
12980
+ message.appId = object.appId ?? "";
12981
+ message.functionId = object.functionId ?? "";
12982
+ return message;
12983
+ }
12984
+ };
12985
+ function createBaseClusterReservationListRequest() {
12986
+ return {};
12987
+ }
12988
+ var ClusterReservationListRequest = {
12989
+ encode(_, writer = new BinaryWriter()) {
12990
+ return writer;
12991
+ },
12992
+ decode(input, length) {
12993
+ const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
12994
+ let end = length === void 0 ? reader.len : reader.pos + length;
12995
+ const message = createBaseClusterReservationListRequest();
12996
+ while (reader.pos < end) {
12997
+ const tag = reader.uint32();
12998
+ switch (tag >>> 3) {
12999
+ }
13000
+ if ((tag & 7) === 4 || tag === 0) {
13001
+ break;
13002
+ }
13003
+ reader.skip(tag & 7);
13004
+ }
13005
+ return message;
13006
+ },
13007
+ fromJSON(_) {
13008
+ return {};
13009
+ },
13010
+ toJSON(_) {
13011
+ const obj = {};
13012
+ return obj;
13013
+ },
13014
+ create(base) {
13015
+ return ClusterReservationListRequest.fromPartial(base ?? {});
13016
+ },
13017
+ fromPartial(_) {
13018
+ const message = createBaseClusterReservationListRequest();
13019
+ return message;
13020
+ }
13021
+ };
13022
+ function createBaseClusterReservationListResponse() {
13023
+ return { reservations: [] };
13024
+ }
13025
+ var ClusterReservationListResponse = {
13026
+ encode(message, writer = new BinaryWriter()) {
13027
+ for (const v of message.reservations) {
13028
+ ClusterReservation.encode(v, writer.uint32(10).fork()).join();
13029
+ }
13030
+ return writer;
13031
+ },
13032
+ decode(input, length) {
13033
+ const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
13034
+ let end = length === void 0 ? reader.len : reader.pos + length;
13035
+ const message = createBaseClusterReservationListResponse();
13036
+ while (reader.pos < end) {
13037
+ const tag = reader.uint32();
13038
+ switch (tag >>> 3) {
13039
+ case 1: {
13040
+ if (tag !== 10) {
13041
+ break;
13042
+ }
13043
+ message.reservations.push(ClusterReservation.decode(reader, reader.uint32()));
13044
+ continue;
13045
+ }
13046
+ }
13047
+ if ((tag & 7) === 4 || tag === 0) {
13048
+ break;
13049
+ }
13050
+ reader.skip(tag & 7);
13051
+ }
13052
+ return message;
13053
+ },
13054
+ fromJSON(object) {
13055
+ return {
13056
+ reservations: globalThis.Array.isArray(object?.reservations) ? object.reservations.map((e) => ClusterReservation.fromJSON(e)) : []
13057
+ };
13058
+ },
13059
+ toJSON(message) {
13060
+ const obj = {};
13061
+ if (message.reservations?.length) {
13062
+ obj.reservations = message.reservations.map((e) => ClusterReservation.toJSON(e));
13063
+ }
13064
+ return obj;
13065
+ },
13066
+ create(base) {
13067
+ return ClusterReservationListResponse.fromPartial(base ?? {});
13068
+ },
13069
+ fromPartial(object) {
13070
+ const message = createBaseClusterReservationListResponse();
13071
+ message.reservations = object.reservations?.map((e) => ClusterReservation.fromPartial(e)) || [];
13072
+ return message;
13073
+ }
13074
+ };
12699
13075
  function createBaseClusterStats() {
12700
13076
  return { appId: "", taskIds: [], clusterId: "", startedAt: 0 };
12701
13077
  }
@@ -17899,7 +18275,8 @@ function createBaseEndpointCreateRequest() {
17899
18275
  environmentName: "",
17900
18276
  unauthenticated: false,
17901
18277
  servingMode: 0,
17902
- sharedEndpointNoticeAcknowledged: false
18278
+ sharedEndpointNoticeAcknowledged: false,
18279
+ recipeId: void 0
17903
18280
  };
17904
18281
  }
17905
18282
  var EndpointCreateRequest = {
@@ -17941,6 +18318,9 @@ var EndpointCreateRequest = {
17941
18318
  if (message.sharedEndpointNoticeAcknowledged !== false) {
17942
18319
  writer.uint32(88).bool(message.sharedEndpointNoticeAcknowledged);
17943
18320
  }
18321
+ if (message.recipeId !== void 0) {
18322
+ writer.uint32(98).string(message.recipeId);
18323
+ }
17944
18324
  return writer;
17945
18325
  },
17946
18326
  decode(input, length) {
@@ -18041,6 +18421,13 @@ var EndpointCreateRequest = {
18041
18421
  message.sharedEndpointNoticeAcknowledged = reader.bool();
18042
18422
  continue;
18043
18423
  }
18424
+ case 12: {
18425
+ if (tag !== 98) {
18426
+ break;
18427
+ }
18428
+ message.recipeId = reader.string();
18429
+ continue;
18430
+ }
18044
18431
  }
18045
18432
  if ((tag & 7) === 4 || tag === 0) {
18046
18433
  break;
@@ -18061,7 +18448,8 @@ var EndpointCreateRequest = {
18061
18448
  environmentName: isSet5(object.environmentName) ? globalThis.String(object.environmentName) : "",
18062
18449
  unauthenticated: isSet5(object.unauthenticated) ? globalThis.Boolean(object.unauthenticated) : false,
18063
18450
  servingMode: isSet5(object.servingMode) ? endpointServingModeFromJSON(object.servingMode) : 0,
18064
- sharedEndpointNoticeAcknowledged: isSet5(object.sharedEndpointNoticeAcknowledged) ? globalThis.Boolean(object.sharedEndpointNoticeAcknowledged) : false
18451
+ sharedEndpointNoticeAcknowledged: isSet5(object.sharedEndpointNoticeAcknowledged) ? globalThis.Boolean(object.sharedEndpointNoticeAcknowledged) : false,
18452
+ recipeId: isSet5(object.recipeId) ? globalThis.String(object.recipeId) : void 0
18065
18453
  };
18066
18454
  },
18067
18455
  toJSON(message) {
@@ -18099,6 +18487,9 @@ var EndpointCreateRequest = {
18099
18487
  if (message.sharedEndpointNoticeAcknowledged !== false) {
18100
18488
  obj.sharedEndpointNoticeAcknowledged = message.sharedEndpointNoticeAcknowledged;
18101
18489
  }
18490
+ if (message.recipeId !== void 0) {
18491
+ obj.recipeId = message.recipeId;
18492
+ }
18102
18493
  return obj;
18103
18494
  },
18104
18495
  create(base) {
@@ -18117,6 +18508,7 @@ var EndpointCreateRequest = {
18117
18508
  message.unauthenticated = object.unauthenticated ?? false;
18118
18509
  message.servingMode = object.servingMode ?? 0;
18119
18510
  message.sharedEndpointNoticeAcknowledged = object.sharedEndpointNoticeAcknowledged ?? false;
18511
+ message.recipeId = object.recipeId ?? void 0;
18120
18512
  return message;
18121
18513
  }
18122
18514
  };
@@ -61698,6 +62090,14 @@ var ModalClientDefinition = {
61698
62090
  responseStream: false,
61699
62091
  options: {}
61700
62092
  },
62093
+ clusterReservationList: {
62094
+ name: "ClusterReservationList",
62095
+ requestType: ClusterReservationListRequest,
62096
+ requestStream: false,
62097
+ responseType: ClusterReservationListResponse,
62098
+ responseStream: false,
62099
+ options: {}
62100
+ },
61701
62101
  /** Container */
61702
62102
  containerCheckpoint: {
61703
62103
  name: "ContainerCheckpoint",
@@ -74625,7 +75025,7 @@ var AuthTokenManager = class {
74625
75025
  };
74626
75026
 
74627
75027
  // src/version.ts
74628
- var SDK_VERSION = "0.11.1-dev.7";
75028
+ var SDK_VERSION = "0.11.1-dev.8";
74629
75029
  function getSDKVersion() {
74630
75030
  return SDK_VERSION;
74631
75031
  }
package/dist/index.d.cts CHANGED
@@ -211,12 +211,17 @@ declare enum EnvironmentRole {
211
211
  }
212
212
  /**
213
213
  * Creation-time environment classification. Captures whether an environment
214
- * is public. is_managed and machine_generated may be folded in as future
215
- * values.
214
+ * is public or administered by Modal. is_managed and machine_generated may be
215
+ * folded in as future values.
216
216
  */
217
217
  declare enum EnvironmentType {
218
218
  ENVIRONMENT_TYPE_UNSPECIFIED = 0,
219
219
  ENVIRONMENT_TYPE_PUBLIC = 1,
220
+ /**
221
+ * ENVIRONMENT_TYPE_MODAL_ADMINISTERED - Restricted environment whose roles are administered by Modal admins rather
222
+ * than the workspace's own managers.
223
+ */
224
+ ENVIRONMENT_TYPE_MODAL_ADMINISTERED = 2,
220
225
  UNRECOGNIZED = -1
221
226
  }
222
227
  declare enum ExecOutputOption {
@@ -1207,6 +1212,41 @@ interface ClusterListResponse {
1207
1212
  clusters: ClusterStats[];
1208
1213
  }
1209
1214
  declare const ClusterListResponse: MessageFns$1<ClusterListResponse>;
1215
+ interface ClusterReservation {
1216
+ /** reservation name, as configured by Modal */
1217
+ name: string;
1218
+ /** e.g. "B300" */
1219
+ gpuType: string;
1220
+ region: string;
1221
+ /** workers Modal has committed to keep reserved */
1222
+ minReservedWorkers: number;
1223
+ /** healthy reserved workers currently present (active + idle) */
1224
+ reservedWorkers: number;
1225
+ /** reserved workers running this workspace's containers */
1226
+ activeWorkers: number;
1227
+ /** reserved workers available for new clusters */
1228
+ idleWorkers: number;
1229
+ /** max(0, min_reserved_workers - reserved_workers) */
1230
+ unfulfilledWorkers: number;
1231
+ /** containers on reserved workers, ordered by cluster then rank */
1232
+ tasks: ClusterReservation_Task[];
1233
+ }
1234
+ declare const ClusterReservation: MessageFns$1<ClusterReservation>;
1235
+ /** A container running on a worker reserved for this reservation. */
1236
+ interface ClusterReservation_Task {
1237
+ taskId: string;
1238
+ clusterRank: number;
1239
+ appId: string;
1240
+ functionId: string;
1241
+ }
1242
+ declare const ClusterReservation_Task: MessageFns$1<ClusterReservation_Task>;
1243
+ interface ClusterReservationListRequest {
1244
+ }
1245
+ declare const ClusterReservationListRequest: MessageFns$1<ClusterReservationListRequest>;
1246
+ interface ClusterReservationListResponse {
1247
+ reservations: ClusterReservation[];
1248
+ }
1249
+ declare const ClusterReservationListResponse: MessageFns$1<ClusterReservationListResponse>;
1210
1250
  interface ClusterStats {
1211
1251
  appId: string;
1212
1252
  taskIds: string[];
@@ -1632,6 +1672,8 @@ interface EndpointCreateRequest {
1632
1672
  unauthenticated: boolean;
1633
1673
  servingMode: EndpointServingMode;
1634
1674
  sharedEndpointNoticeAcknowledged: boolean;
1675
+ /** Requires Modal admin access. Dedicated endpoints only; must match model. */
1676
+ recipeId?: string | undefined;
1635
1677
  }
1636
1678
  declare const EndpointCreateRequest: MessageFns$1<EndpointCreateRequest>;
1637
1679
  interface EndpointCreateResponse {
@@ -5447,6 +5489,14 @@ declare const ModalClientDefinition: {
5447
5489
  readonly responseStream: false;
5448
5490
  readonly options: {};
5449
5491
  };
5492
+ readonly clusterReservationList: {
5493
+ readonly name: "ClusterReservationList";
5494
+ readonly requestType: MessageFns$1<ClusterReservationListRequest>;
5495
+ readonly requestStream: false;
5496
+ readonly responseType: MessageFns$1<ClusterReservationListResponse>;
5497
+ readonly responseStream: false;
5498
+ readonly options: {};
5499
+ };
5450
5500
  /** Container */
5451
5501
  readonly containerCheckpoint: {
5452
5502
  readonly name: "ContainerCheckpoint";
package/dist/index.d.ts CHANGED
@@ -211,12 +211,17 @@ declare enum EnvironmentRole {
211
211
  }
212
212
  /**
213
213
  * Creation-time environment classification. Captures whether an environment
214
- * is public. is_managed and machine_generated may be folded in as future
215
- * values.
214
+ * is public or administered by Modal. is_managed and machine_generated may be
215
+ * folded in as future values.
216
216
  */
217
217
  declare enum EnvironmentType {
218
218
  ENVIRONMENT_TYPE_UNSPECIFIED = 0,
219
219
  ENVIRONMENT_TYPE_PUBLIC = 1,
220
+ /**
221
+ * ENVIRONMENT_TYPE_MODAL_ADMINISTERED - Restricted environment whose roles are administered by Modal admins rather
222
+ * than the workspace's own managers.
223
+ */
224
+ ENVIRONMENT_TYPE_MODAL_ADMINISTERED = 2,
220
225
  UNRECOGNIZED = -1
221
226
  }
222
227
  declare enum ExecOutputOption {
@@ -1207,6 +1212,41 @@ interface ClusterListResponse {
1207
1212
  clusters: ClusterStats[];
1208
1213
  }
1209
1214
  declare const ClusterListResponse: MessageFns$1<ClusterListResponse>;
1215
+ interface ClusterReservation {
1216
+ /** reservation name, as configured by Modal */
1217
+ name: string;
1218
+ /** e.g. "B300" */
1219
+ gpuType: string;
1220
+ region: string;
1221
+ /** workers Modal has committed to keep reserved */
1222
+ minReservedWorkers: number;
1223
+ /** healthy reserved workers currently present (active + idle) */
1224
+ reservedWorkers: number;
1225
+ /** reserved workers running this workspace's containers */
1226
+ activeWorkers: number;
1227
+ /** reserved workers available for new clusters */
1228
+ idleWorkers: number;
1229
+ /** max(0, min_reserved_workers - reserved_workers) */
1230
+ unfulfilledWorkers: number;
1231
+ /** containers on reserved workers, ordered by cluster then rank */
1232
+ tasks: ClusterReservation_Task[];
1233
+ }
1234
+ declare const ClusterReservation: MessageFns$1<ClusterReservation>;
1235
+ /** A container running on a worker reserved for this reservation. */
1236
+ interface ClusterReservation_Task {
1237
+ taskId: string;
1238
+ clusterRank: number;
1239
+ appId: string;
1240
+ functionId: string;
1241
+ }
1242
+ declare const ClusterReservation_Task: MessageFns$1<ClusterReservation_Task>;
1243
+ interface ClusterReservationListRequest {
1244
+ }
1245
+ declare const ClusterReservationListRequest: MessageFns$1<ClusterReservationListRequest>;
1246
+ interface ClusterReservationListResponse {
1247
+ reservations: ClusterReservation[];
1248
+ }
1249
+ declare const ClusterReservationListResponse: MessageFns$1<ClusterReservationListResponse>;
1210
1250
  interface ClusterStats {
1211
1251
  appId: string;
1212
1252
  taskIds: string[];
@@ -1632,6 +1672,8 @@ interface EndpointCreateRequest {
1632
1672
  unauthenticated: boolean;
1633
1673
  servingMode: EndpointServingMode;
1634
1674
  sharedEndpointNoticeAcknowledged: boolean;
1675
+ /** Requires Modal admin access. Dedicated endpoints only; must match model. */
1676
+ recipeId?: string | undefined;
1635
1677
  }
1636
1678
  declare const EndpointCreateRequest: MessageFns$1<EndpointCreateRequest>;
1637
1679
  interface EndpointCreateResponse {
@@ -5447,6 +5489,14 @@ declare const ModalClientDefinition: {
5447
5489
  readonly responseStream: false;
5448
5490
  readonly options: {};
5449
5491
  };
5492
+ readonly clusterReservationList: {
5493
+ readonly name: "ClusterReservationList";
5494
+ readonly requestType: MessageFns$1<ClusterReservationListRequest>;
5495
+ readonly requestStream: false;
5496
+ readonly responseType: MessageFns$1<ClusterReservationListResponse>;
5497
+ readonly responseStream: false;
5498
+ readonly options: {};
5499
+ };
5450
5500
  /** Container */
5451
5501
  readonly containerCheckpoint: {
5452
5502
  readonly name: "ContainerCheckpoint";
package/dist/index.js CHANGED
@@ -2170,6 +2170,9 @@ function environmentTypeFromJSON(object) {
2170
2170
  case 1:
2171
2171
  case "ENVIRONMENT_TYPE_PUBLIC":
2172
2172
  return 1 /* ENVIRONMENT_TYPE_PUBLIC */;
2173
+ case 2:
2174
+ case "ENVIRONMENT_TYPE_MODAL_ADMINISTERED":
2175
+ return 2 /* ENVIRONMENT_TYPE_MODAL_ADMINISTERED */;
2173
2176
  case -1:
2174
2177
  case "UNRECOGNIZED":
2175
2178
  default:
@@ -2182,6 +2185,8 @@ function environmentTypeToJSON(object) {
2182
2185
  return "ENVIRONMENT_TYPE_UNSPECIFIED";
2183
2186
  case 1 /* ENVIRONMENT_TYPE_PUBLIC */:
2184
2187
  return "ENVIRONMENT_TYPE_PUBLIC";
2188
+ case 2 /* ENVIRONMENT_TYPE_MODAL_ADMINISTERED */:
2189
+ return "ENVIRONMENT_TYPE_MODAL_ADMINISTERED";
2185
2190
  case -1 /* UNRECOGNIZED */:
2186
2191
  default:
2187
2192
  return "UNRECOGNIZED";
@@ -12601,6 +12606,377 @@ var ClusterListResponse = {
12601
12606
  return message;
12602
12607
  }
12603
12608
  };
12609
+ function createBaseClusterReservation() {
12610
+ return {
12611
+ name: "",
12612
+ gpuType: "",
12613
+ region: "",
12614
+ minReservedWorkers: 0,
12615
+ reservedWorkers: 0,
12616
+ activeWorkers: 0,
12617
+ idleWorkers: 0,
12618
+ unfulfilledWorkers: 0,
12619
+ tasks: []
12620
+ };
12621
+ }
12622
+ var ClusterReservation = {
12623
+ encode(message, writer = new BinaryWriter()) {
12624
+ if (message.name !== "") {
12625
+ writer.uint32(10).string(message.name);
12626
+ }
12627
+ if (message.gpuType !== "") {
12628
+ writer.uint32(18).string(message.gpuType);
12629
+ }
12630
+ if (message.region !== "") {
12631
+ writer.uint32(26).string(message.region);
12632
+ }
12633
+ if (message.minReservedWorkers !== 0) {
12634
+ writer.uint32(32).int32(message.minReservedWorkers);
12635
+ }
12636
+ if (message.reservedWorkers !== 0) {
12637
+ writer.uint32(40).int32(message.reservedWorkers);
12638
+ }
12639
+ if (message.activeWorkers !== 0) {
12640
+ writer.uint32(48).int32(message.activeWorkers);
12641
+ }
12642
+ if (message.idleWorkers !== 0) {
12643
+ writer.uint32(56).int32(message.idleWorkers);
12644
+ }
12645
+ if (message.unfulfilledWorkers !== 0) {
12646
+ writer.uint32(64).int32(message.unfulfilledWorkers);
12647
+ }
12648
+ for (const v of message.tasks) {
12649
+ ClusterReservation_Task.encode(v, writer.uint32(74).fork()).join();
12650
+ }
12651
+ return writer;
12652
+ },
12653
+ decode(input, length) {
12654
+ const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
12655
+ let end = length === void 0 ? reader.len : reader.pos + length;
12656
+ const message = createBaseClusterReservation();
12657
+ while (reader.pos < end) {
12658
+ const tag = reader.uint32();
12659
+ switch (tag >>> 3) {
12660
+ case 1: {
12661
+ if (tag !== 10) {
12662
+ break;
12663
+ }
12664
+ message.name = reader.string();
12665
+ continue;
12666
+ }
12667
+ case 2: {
12668
+ if (tag !== 18) {
12669
+ break;
12670
+ }
12671
+ message.gpuType = reader.string();
12672
+ continue;
12673
+ }
12674
+ case 3: {
12675
+ if (tag !== 26) {
12676
+ break;
12677
+ }
12678
+ message.region = reader.string();
12679
+ continue;
12680
+ }
12681
+ case 4: {
12682
+ if (tag !== 32) {
12683
+ break;
12684
+ }
12685
+ message.minReservedWorkers = reader.int32();
12686
+ continue;
12687
+ }
12688
+ case 5: {
12689
+ if (tag !== 40) {
12690
+ break;
12691
+ }
12692
+ message.reservedWorkers = reader.int32();
12693
+ continue;
12694
+ }
12695
+ case 6: {
12696
+ if (tag !== 48) {
12697
+ break;
12698
+ }
12699
+ message.activeWorkers = reader.int32();
12700
+ continue;
12701
+ }
12702
+ case 7: {
12703
+ if (tag !== 56) {
12704
+ break;
12705
+ }
12706
+ message.idleWorkers = reader.int32();
12707
+ continue;
12708
+ }
12709
+ case 8: {
12710
+ if (tag !== 64) {
12711
+ break;
12712
+ }
12713
+ message.unfulfilledWorkers = reader.int32();
12714
+ continue;
12715
+ }
12716
+ case 9: {
12717
+ if (tag !== 74) {
12718
+ break;
12719
+ }
12720
+ message.tasks.push(ClusterReservation_Task.decode(reader, reader.uint32()));
12721
+ continue;
12722
+ }
12723
+ }
12724
+ if ((tag & 7) === 4 || tag === 0) {
12725
+ break;
12726
+ }
12727
+ reader.skip(tag & 7);
12728
+ }
12729
+ return message;
12730
+ },
12731
+ fromJSON(object) {
12732
+ return {
12733
+ name: isSet5(object.name) ? globalThis.String(object.name) : "",
12734
+ gpuType: isSet5(object.gpuType) ? globalThis.String(object.gpuType) : "",
12735
+ region: isSet5(object.region) ? globalThis.String(object.region) : "",
12736
+ minReservedWorkers: isSet5(object.minReservedWorkers) ? globalThis.Number(object.minReservedWorkers) : 0,
12737
+ reservedWorkers: isSet5(object.reservedWorkers) ? globalThis.Number(object.reservedWorkers) : 0,
12738
+ activeWorkers: isSet5(object.activeWorkers) ? globalThis.Number(object.activeWorkers) : 0,
12739
+ idleWorkers: isSet5(object.idleWorkers) ? globalThis.Number(object.idleWorkers) : 0,
12740
+ unfulfilledWorkers: isSet5(object.unfulfilledWorkers) ? globalThis.Number(object.unfulfilledWorkers) : 0,
12741
+ tasks: globalThis.Array.isArray(object?.tasks) ? object.tasks.map((e) => ClusterReservation_Task.fromJSON(e)) : []
12742
+ };
12743
+ },
12744
+ toJSON(message) {
12745
+ const obj = {};
12746
+ if (message.name !== "") {
12747
+ obj.name = message.name;
12748
+ }
12749
+ if (message.gpuType !== "") {
12750
+ obj.gpuType = message.gpuType;
12751
+ }
12752
+ if (message.region !== "") {
12753
+ obj.region = message.region;
12754
+ }
12755
+ if (message.minReservedWorkers !== 0) {
12756
+ obj.minReservedWorkers = Math.round(message.minReservedWorkers);
12757
+ }
12758
+ if (message.reservedWorkers !== 0) {
12759
+ obj.reservedWorkers = Math.round(message.reservedWorkers);
12760
+ }
12761
+ if (message.activeWorkers !== 0) {
12762
+ obj.activeWorkers = Math.round(message.activeWorkers);
12763
+ }
12764
+ if (message.idleWorkers !== 0) {
12765
+ obj.idleWorkers = Math.round(message.idleWorkers);
12766
+ }
12767
+ if (message.unfulfilledWorkers !== 0) {
12768
+ obj.unfulfilledWorkers = Math.round(message.unfulfilledWorkers);
12769
+ }
12770
+ if (message.tasks?.length) {
12771
+ obj.tasks = message.tasks.map((e) => ClusterReservation_Task.toJSON(e));
12772
+ }
12773
+ return obj;
12774
+ },
12775
+ create(base) {
12776
+ return ClusterReservation.fromPartial(base ?? {});
12777
+ },
12778
+ fromPartial(object) {
12779
+ const message = createBaseClusterReservation();
12780
+ message.name = object.name ?? "";
12781
+ message.gpuType = object.gpuType ?? "";
12782
+ message.region = object.region ?? "";
12783
+ message.minReservedWorkers = object.minReservedWorkers ?? 0;
12784
+ message.reservedWorkers = object.reservedWorkers ?? 0;
12785
+ message.activeWorkers = object.activeWorkers ?? 0;
12786
+ message.idleWorkers = object.idleWorkers ?? 0;
12787
+ message.unfulfilledWorkers = object.unfulfilledWorkers ?? 0;
12788
+ message.tasks = object.tasks?.map((e) => ClusterReservation_Task.fromPartial(e)) || [];
12789
+ return message;
12790
+ }
12791
+ };
12792
+ function createBaseClusterReservation_Task() {
12793
+ return { taskId: "", clusterRank: 0, appId: "", functionId: "" };
12794
+ }
12795
+ var ClusterReservation_Task = {
12796
+ encode(message, writer = new BinaryWriter()) {
12797
+ if (message.taskId !== "") {
12798
+ writer.uint32(10).string(message.taskId);
12799
+ }
12800
+ if (message.clusterRank !== 0) {
12801
+ writer.uint32(16).int32(message.clusterRank);
12802
+ }
12803
+ if (message.appId !== "") {
12804
+ writer.uint32(26).string(message.appId);
12805
+ }
12806
+ if (message.functionId !== "") {
12807
+ writer.uint32(34).string(message.functionId);
12808
+ }
12809
+ return writer;
12810
+ },
12811
+ decode(input, length) {
12812
+ const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
12813
+ let end = length === void 0 ? reader.len : reader.pos + length;
12814
+ const message = createBaseClusterReservation_Task();
12815
+ while (reader.pos < end) {
12816
+ const tag = reader.uint32();
12817
+ switch (tag >>> 3) {
12818
+ case 1: {
12819
+ if (tag !== 10) {
12820
+ break;
12821
+ }
12822
+ message.taskId = reader.string();
12823
+ continue;
12824
+ }
12825
+ case 2: {
12826
+ if (tag !== 16) {
12827
+ break;
12828
+ }
12829
+ message.clusterRank = reader.int32();
12830
+ continue;
12831
+ }
12832
+ case 3: {
12833
+ if (tag !== 26) {
12834
+ break;
12835
+ }
12836
+ message.appId = reader.string();
12837
+ continue;
12838
+ }
12839
+ case 4: {
12840
+ if (tag !== 34) {
12841
+ break;
12842
+ }
12843
+ message.functionId = reader.string();
12844
+ continue;
12845
+ }
12846
+ }
12847
+ if ((tag & 7) === 4 || tag === 0) {
12848
+ break;
12849
+ }
12850
+ reader.skip(tag & 7);
12851
+ }
12852
+ return message;
12853
+ },
12854
+ fromJSON(object) {
12855
+ return {
12856
+ taskId: isSet5(object.taskId) ? globalThis.String(object.taskId) : "",
12857
+ clusterRank: isSet5(object.clusterRank) ? globalThis.Number(object.clusterRank) : 0,
12858
+ appId: isSet5(object.appId) ? globalThis.String(object.appId) : "",
12859
+ functionId: isSet5(object.functionId) ? globalThis.String(object.functionId) : ""
12860
+ };
12861
+ },
12862
+ toJSON(message) {
12863
+ const obj = {};
12864
+ if (message.taskId !== "") {
12865
+ obj.taskId = message.taskId;
12866
+ }
12867
+ if (message.clusterRank !== 0) {
12868
+ obj.clusterRank = Math.round(message.clusterRank);
12869
+ }
12870
+ if (message.appId !== "") {
12871
+ obj.appId = message.appId;
12872
+ }
12873
+ if (message.functionId !== "") {
12874
+ obj.functionId = message.functionId;
12875
+ }
12876
+ return obj;
12877
+ },
12878
+ create(base) {
12879
+ return ClusterReservation_Task.fromPartial(base ?? {});
12880
+ },
12881
+ fromPartial(object) {
12882
+ const message = createBaseClusterReservation_Task();
12883
+ message.taskId = object.taskId ?? "";
12884
+ message.clusterRank = object.clusterRank ?? 0;
12885
+ message.appId = object.appId ?? "";
12886
+ message.functionId = object.functionId ?? "";
12887
+ return message;
12888
+ }
12889
+ };
12890
+ function createBaseClusterReservationListRequest() {
12891
+ return {};
12892
+ }
12893
+ var ClusterReservationListRequest = {
12894
+ encode(_, writer = new BinaryWriter()) {
12895
+ return writer;
12896
+ },
12897
+ decode(input, length) {
12898
+ const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
12899
+ let end = length === void 0 ? reader.len : reader.pos + length;
12900
+ const message = createBaseClusterReservationListRequest();
12901
+ while (reader.pos < end) {
12902
+ const tag = reader.uint32();
12903
+ switch (tag >>> 3) {
12904
+ }
12905
+ if ((tag & 7) === 4 || tag === 0) {
12906
+ break;
12907
+ }
12908
+ reader.skip(tag & 7);
12909
+ }
12910
+ return message;
12911
+ },
12912
+ fromJSON(_) {
12913
+ return {};
12914
+ },
12915
+ toJSON(_) {
12916
+ const obj = {};
12917
+ return obj;
12918
+ },
12919
+ create(base) {
12920
+ return ClusterReservationListRequest.fromPartial(base ?? {});
12921
+ },
12922
+ fromPartial(_) {
12923
+ const message = createBaseClusterReservationListRequest();
12924
+ return message;
12925
+ }
12926
+ };
12927
+ function createBaseClusterReservationListResponse() {
12928
+ return { reservations: [] };
12929
+ }
12930
+ var ClusterReservationListResponse = {
12931
+ encode(message, writer = new BinaryWriter()) {
12932
+ for (const v of message.reservations) {
12933
+ ClusterReservation.encode(v, writer.uint32(10).fork()).join();
12934
+ }
12935
+ return writer;
12936
+ },
12937
+ decode(input, length) {
12938
+ const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
12939
+ let end = length === void 0 ? reader.len : reader.pos + length;
12940
+ const message = createBaseClusterReservationListResponse();
12941
+ while (reader.pos < end) {
12942
+ const tag = reader.uint32();
12943
+ switch (tag >>> 3) {
12944
+ case 1: {
12945
+ if (tag !== 10) {
12946
+ break;
12947
+ }
12948
+ message.reservations.push(ClusterReservation.decode(reader, reader.uint32()));
12949
+ continue;
12950
+ }
12951
+ }
12952
+ if ((tag & 7) === 4 || tag === 0) {
12953
+ break;
12954
+ }
12955
+ reader.skip(tag & 7);
12956
+ }
12957
+ return message;
12958
+ },
12959
+ fromJSON(object) {
12960
+ return {
12961
+ reservations: globalThis.Array.isArray(object?.reservations) ? object.reservations.map((e) => ClusterReservation.fromJSON(e)) : []
12962
+ };
12963
+ },
12964
+ toJSON(message) {
12965
+ const obj = {};
12966
+ if (message.reservations?.length) {
12967
+ obj.reservations = message.reservations.map((e) => ClusterReservation.toJSON(e));
12968
+ }
12969
+ return obj;
12970
+ },
12971
+ create(base) {
12972
+ return ClusterReservationListResponse.fromPartial(base ?? {});
12973
+ },
12974
+ fromPartial(object) {
12975
+ const message = createBaseClusterReservationListResponse();
12976
+ message.reservations = object.reservations?.map((e) => ClusterReservation.fromPartial(e)) || [];
12977
+ return message;
12978
+ }
12979
+ };
12604
12980
  function createBaseClusterStats() {
12605
12981
  return { appId: "", taskIds: [], clusterId: "", startedAt: 0 };
12606
12982
  }
@@ -17804,7 +18180,8 @@ function createBaseEndpointCreateRequest() {
17804
18180
  environmentName: "",
17805
18181
  unauthenticated: false,
17806
18182
  servingMode: 0,
17807
- sharedEndpointNoticeAcknowledged: false
18183
+ sharedEndpointNoticeAcknowledged: false,
18184
+ recipeId: void 0
17808
18185
  };
17809
18186
  }
17810
18187
  var EndpointCreateRequest = {
@@ -17846,6 +18223,9 @@ var EndpointCreateRequest = {
17846
18223
  if (message.sharedEndpointNoticeAcknowledged !== false) {
17847
18224
  writer.uint32(88).bool(message.sharedEndpointNoticeAcknowledged);
17848
18225
  }
18226
+ if (message.recipeId !== void 0) {
18227
+ writer.uint32(98).string(message.recipeId);
18228
+ }
17849
18229
  return writer;
17850
18230
  },
17851
18231
  decode(input, length) {
@@ -17946,6 +18326,13 @@ var EndpointCreateRequest = {
17946
18326
  message.sharedEndpointNoticeAcknowledged = reader.bool();
17947
18327
  continue;
17948
18328
  }
18329
+ case 12: {
18330
+ if (tag !== 98) {
18331
+ break;
18332
+ }
18333
+ message.recipeId = reader.string();
18334
+ continue;
18335
+ }
17949
18336
  }
17950
18337
  if ((tag & 7) === 4 || tag === 0) {
17951
18338
  break;
@@ -17966,7 +18353,8 @@ var EndpointCreateRequest = {
17966
18353
  environmentName: isSet5(object.environmentName) ? globalThis.String(object.environmentName) : "",
17967
18354
  unauthenticated: isSet5(object.unauthenticated) ? globalThis.Boolean(object.unauthenticated) : false,
17968
18355
  servingMode: isSet5(object.servingMode) ? endpointServingModeFromJSON(object.servingMode) : 0,
17969
- sharedEndpointNoticeAcknowledged: isSet5(object.sharedEndpointNoticeAcknowledged) ? globalThis.Boolean(object.sharedEndpointNoticeAcknowledged) : false
18356
+ sharedEndpointNoticeAcknowledged: isSet5(object.sharedEndpointNoticeAcknowledged) ? globalThis.Boolean(object.sharedEndpointNoticeAcknowledged) : false,
18357
+ recipeId: isSet5(object.recipeId) ? globalThis.String(object.recipeId) : void 0
17970
18358
  };
17971
18359
  },
17972
18360
  toJSON(message) {
@@ -18004,6 +18392,9 @@ var EndpointCreateRequest = {
18004
18392
  if (message.sharedEndpointNoticeAcknowledged !== false) {
18005
18393
  obj.sharedEndpointNoticeAcknowledged = message.sharedEndpointNoticeAcknowledged;
18006
18394
  }
18395
+ if (message.recipeId !== void 0) {
18396
+ obj.recipeId = message.recipeId;
18397
+ }
18007
18398
  return obj;
18008
18399
  },
18009
18400
  create(base) {
@@ -18022,6 +18413,7 @@ var EndpointCreateRequest = {
18022
18413
  message.unauthenticated = object.unauthenticated ?? false;
18023
18414
  message.servingMode = object.servingMode ?? 0;
18024
18415
  message.sharedEndpointNoticeAcknowledged = object.sharedEndpointNoticeAcknowledged ?? false;
18416
+ message.recipeId = object.recipeId ?? void 0;
18025
18417
  return message;
18026
18418
  }
18027
18419
  };
@@ -61603,6 +61995,14 @@ var ModalClientDefinition = {
61603
61995
  responseStream: false,
61604
61996
  options: {}
61605
61997
  },
61998
+ clusterReservationList: {
61999
+ name: "ClusterReservationList",
62000
+ requestType: ClusterReservationListRequest,
62001
+ requestStream: false,
62002
+ responseType: ClusterReservationListResponse,
62003
+ responseStream: false,
62004
+ options: {}
62005
+ },
61606
62006
  /** Container */
61607
62007
  containerCheckpoint: {
61608
62008
  name: "ContainerCheckpoint",
@@ -74543,7 +74943,7 @@ var AuthTokenManager = class {
74543
74943
  };
74544
74944
 
74545
74945
  // src/version.ts
74546
- var SDK_VERSION = "0.11.1-dev.7";
74946
+ var SDK_VERSION = "0.11.1-dev.8";
74547
74947
  function getSDKVersion() {
74548
74948
  return SDK_VERSION;
74549
74949
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "modal",
3
- "version": "0.11.1-dev.7",
3
+ "version": "0.11.1-dev.8",
4
4
  "description": "Modal SDK for JavaScript/TypeScript",
5
5
  "license": "Apache-2.0",
6
6
  "homepage": "https://modal.com/docs/guide/sdk-javascript-go",