@perstack/api-client 0.0.7 → 0.0.9

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/v1/index.js CHANGED
@@ -216,8 +216,8 @@ async function getRegistryExpert(input, client) {
216
216
  };
217
217
  }
218
218
  var getRegistryExpertsInput = z.object({
219
- take: z.union([z.number(), z.string().transform((value) => Number.parseInt(value))]).optional(),
220
- skip: z.union([z.number(), z.string().transform((value) => Number.parseInt(value))]).optional(),
219
+ take: z.union([z.number(), z.string().transform((value) => Number.parseInt(value, 10))]).optional(),
220
+ skip: z.union([z.number(), z.string().transform((value) => Number.parseInt(value, 10))]).optional(),
221
221
  sort: z.string().optional(),
222
222
  order: z.string().optional(),
223
223
  filter: z.string().optional(),
@@ -800,6 +800,9 @@ async function createCheckpoint(input, client) {
800
800
  const endpoint = `/api/studio/v1/expert_jobs/${expertJobId}/checkpoints`;
801
801
  const json = await client.requestAuthenticated(endpoint, {
802
802
  method: "POST",
803
+ headers: {
804
+ "Content-Type": "application/json"
805
+ },
803
806
  body: JSON.stringify({
804
807
  checkpoint,
805
808
  step
@@ -935,15 +938,15 @@ async function getStudioExpert(input, client) {
935
938
  };
936
939
  }
937
940
  var getStudioExpertsInput = z.object({
938
- take: z.union([z.number(), z.string().transform((value) => Number.parseInt(value))]).optional(),
939
- skip: z.union([z.number(), z.string().transform((value) => Number.parseInt(value))]).optional(),
941
+ take: z.union([z.number(), z.string().transform((value) => Number.parseInt(value, 10))]).optional(),
942
+ skip: z.union([z.number(), z.string().transform((value) => Number.parseInt(value, 10))]).optional(),
940
943
  sort: z.string().optional(),
941
944
  order: z.string().optional(),
942
945
  filter: z.string().optional()
943
946
  });
944
947
  var getStudioExpertsResponseSchema = z.object({
945
948
  data: z.object({
946
- experts: z.array(apiStudioExpertSchema)
949
+ experts: z.array(apiExpertDigestSchema)
947
950
  }),
948
951
  meta: z.object({
949
952
  total: z.number(),
@@ -1023,197 +1026,6 @@ async function deleteStudioExpert(input, client) {
1023
1026
  }
1024
1027
  });
1025
1028
  }
1026
- var apiWorkspaceInstanceSchema = z.object({
1027
- type: z.literal("workspaceInstance"),
1028
- id: z.cuid2(),
1029
- applicationId: z.cuid2(),
1030
- application: apiApplicationSchema,
1031
- expertJob: apiExpertJobSchema,
1032
- createdAt: z.iso.datetime().transform((date) => new Date(date)),
1033
- updatedAt: z.iso.datetime().transform((date) => new Date(date)),
1034
- items: z.array(apiWorkspaceItemSchema),
1035
- countItems: z.number(),
1036
- envVariables: z.array(z.string()),
1037
- envSecrets: z.array(z.string())
1038
- });
1039
-
1040
- // v1/studio/workspace-instance.ts
1041
- var getWorkspaceInstanceInput = z.object({
1042
- expertJobId: z.string()
1043
- });
1044
- var getWorkspaceInstanceResponseSchema = z.object({
1045
- data: z.object({
1046
- workspaceInstance: apiWorkspaceInstanceSchema
1047
- })
1048
- });
1049
- async function getWorkspaceInstance(input, client) {
1050
- const { expertJobId } = getWorkspaceInstanceInput.parse(input);
1051
- const endpoint = `/api/studio/v1/expert_jobs/${expertJobId}/workspace_instance`;
1052
- const json = await client.requestAuthenticated(endpoint, {
1053
- headers: {
1054
- "Content-Type": "application/json"
1055
- }
1056
- });
1057
- const { data } = getWorkspaceInstanceResponseSchema.parse(json);
1058
- return {
1059
- workspaceInstance: data.workspaceInstance
1060
- };
1061
- }
1062
- var createWorkspaceInstanceItemInput = z.discriminatedUnion("type", [
1063
- z.object({
1064
- type: z.literal("workspaceItemDirectory"),
1065
- expertJobId: apiExpertJobSchema.shape.id,
1066
- permission: apiWorkspaceItemPermissionSchema,
1067
- path: apiBaseWorkspaceItemSchema.shape.path
1068
- }),
1069
- z.object({
1070
- type: z.literal("workspaceItemFile"),
1071
- expertJobId: apiExpertJobSchema.shape.id,
1072
- permission: apiWorkspaceItemPermissionSchema,
1073
- path: apiBaseWorkspaceItemSchema.shape.path,
1074
- file: z.instanceof(File)
1075
- })
1076
- ]);
1077
- var createWorkspaceInstanceItemResponseSchema = z.object({
1078
- data: z.object({
1079
- workspaceItem: apiWorkspaceItemSchema
1080
- })
1081
- });
1082
- async function createWorkspaceInstanceItem(input, client) {
1083
- const validatedInput = createWorkspaceInstanceItemInput.parse(input);
1084
- const endpoint = `/api/studio/v1/expert_jobs/${validatedInput.expertJobId}/workspace_instance/items`;
1085
- const formData = new FormData();
1086
- formData.append("type", validatedInput.type);
1087
- formData.append("path", validatedInput.path);
1088
- formData.append("permission", validatedInput.permission);
1089
- if (validatedInput.type === "workspaceItemFile") {
1090
- formData.append("file", validatedInput.file);
1091
- }
1092
- const json = await client.requestAuthenticated(endpoint, {
1093
- method: "POST",
1094
- body: formData
1095
- });
1096
- const { data } = createWorkspaceInstanceItemResponseSchema.parse(json);
1097
- return {
1098
- workspaceItem: data.workspaceItem
1099
- };
1100
- }
1101
- var getWorkspaceInstanceItemInput = z.object({
1102
- expertJobId: z.string(),
1103
- itemId: z.string()
1104
- });
1105
- var getWorkspaceInstanceItemResponseSchema = z.object({
1106
- data: z.object({
1107
- workspaceItem: apiWorkspaceItemSchema
1108
- })
1109
- });
1110
- async function getWorkspaceInstanceItem(input, client) {
1111
- const { expertJobId, itemId } = getWorkspaceInstanceItemInput.parse(input);
1112
- const endpoint = `/api/studio/v1/expert_jobs/${expertJobId}/workspace_instance/items/${itemId}`;
1113
- const json = await client.requestAuthenticated(endpoint, {
1114
- headers: {
1115
- "Content-Type": "application/json"
1116
- }
1117
- });
1118
- const { data } = getWorkspaceInstanceItemResponseSchema.parse(json);
1119
- return {
1120
- workspaceItem: data.workspaceItem
1121
- };
1122
- }
1123
- var getWorkspaceInstanceItemsInput = z.object({
1124
- expertJobId: z.string(),
1125
- take: z.union([z.number(), z.string().transform((value) => Number.parseInt(value))]).optional(),
1126
- skip: z.union([z.number(), z.string().transform((value) => Number.parseInt(value))]).optional()
1127
- });
1128
- var getWorkspaceInstanceItemsResponseSchema = z.object({
1129
- data: z.object({
1130
- workspaceItems: z.array(apiWorkspaceItemSchema)
1131
- }),
1132
- meta: z.object({
1133
- total: z.number(),
1134
- take: z.number(),
1135
- skip: z.number()
1136
- })
1137
- });
1138
- async function getWorkspaceInstanceItems(input, client) {
1139
- const { expertJobId, take, skip } = getWorkspaceInstanceItemsInput.parse(input);
1140
- const url = new URL(`/api/studio/v1/expert_jobs/${expertJobId}/workspace_instance/items`);
1141
- if (take) url.searchParams.set("take", take.toString());
1142
- if (skip) url.searchParams.set("skip", skip.toString());
1143
- const endpoint = url.toString();
1144
- const json = await client.requestAuthenticated(endpoint, {
1145
- headers: {
1146
- "Content-Type": "application/json"
1147
- }
1148
- });
1149
- const { data, meta } = getWorkspaceInstanceItemsResponseSchema.parse(json);
1150
- return {
1151
- workspaceItems: data.workspaceItems,
1152
- total: meta.total,
1153
- take: meta.take,
1154
- skip: meta.skip
1155
- };
1156
- }
1157
- var downloadWorkspaceInstanceItemInput = z.object({
1158
- expertJobId: z.string(),
1159
- itemId: z.string()
1160
- });
1161
- z.object({
1162
- data: z.object({
1163
- workspaceItem: apiWorkspaceItemSchema
1164
- })
1165
- });
1166
- async function downloadWorkspaceInstanceItem(input, client) {
1167
- const { expertJobId, itemId } = downloadWorkspaceInstanceItemInput.parse(input);
1168
- const endpoint = `/api/studio/v1/expert_jobs/${expertJobId}/workspace_instance/items/${itemId}/download`;
1169
- const blob = await client.requestBlobAuthenticated(endpoint, {
1170
- headers: {
1171
- "Content-Type": "application/json"
1172
- }
1173
- });
1174
- return blob;
1175
- }
1176
- var updateWorkspaceInstanceItemInput = z.object({
1177
- expertJobId: apiExpertJobSchema.shape.id,
1178
- itemId: z.string(),
1179
- permission: apiWorkspaceItemPermissionSchema.optional(),
1180
- path: apiBaseWorkspaceItemSchema.shape.path.optional(),
1181
- lifecycle: apiWorkspaceItemLifecycleSchema.optional()
1182
- });
1183
- var updateWorkspaceInstanceItemResponseSchema = z.object({
1184
- data: z.object({
1185
- workspaceItem: apiWorkspaceItemSchema
1186
- })
1187
- });
1188
- async function updateWorkspaceInstanceItem(input, client) {
1189
- const { expertJobId, itemId, permission, path, lifecycle } = updateWorkspaceInstanceItemInput.parse(input);
1190
- const endpoint = `/api/studio/v1/expert_jobs/${expertJobId}/workspace_instance/items/${itemId}`;
1191
- const json = await client.requestAuthenticated(endpoint, {
1192
- method: "POST",
1193
- headers: {
1194
- "Content-Type": "application/json"
1195
- },
1196
- body: JSON.stringify({ permission, path, lifecycle })
1197
- });
1198
- const { data } = updateWorkspaceInstanceItemResponseSchema.parse(json);
1199
- return {
1200
- workspaceItem: data.workspaceItem
1201
- };
1202
- }
1203
- var deleteWorkspaceInstanceItemInput = z.object({
1204
- expertJobId: apiExpertJobSchema.shape.id,
1205
- itemId: z.string()
1206
- });
1207
- async function deleteWorkspaceInstanceItem(input, client) {
1208
- const { expertJobId, itemId } = deleteWorkspaceInstanceItemInput.parse(input);
1209
- const endpoint = `/api/studio/v1/expert_jobs/${expertJobId}/workspace_instance/items/${itemId}`;
1210
- await client.requestAuthenticated(endpoint, {
1211
- method: "DELETE",
1212
- headers: {
1213
- "Content-Type": "application/json"
1214
- }
1215
- });
1216
- }
1217
1029
  var apiWorkspaceSchema = z.object({
1218
1030
  type: z.literal("workspace"),
1219
1031
  id: z.cuid2(),
@@ -1487,6 +1299,197 @@ async function deleteWorkspaceSecret(input, client) {
1487
1299
  }
1488
1300
  });
1489
1301
  }
1302
+ var apiWorkspaceInstanceSchema = z.object({
1303
+ type: z.literal("workspaceInstance"),
1304
+ id: z.cuid2(),
1305
+ applicationId: z.cuid2(),
1306
+ application: apiApplicationSchema,
1307
+ expertJob: apiExpertJobSchema,
1308
+ createdAt: z.iso.datetime().transform((date) => new Date(date)),
1309
+ updatedAt: z.iso.datetime().transform((date) => new Date(date)),
1310
+ items: z.array(apiWorkspaceItemSchema),
1311
+ countItems: z.number(),
1312
+ envVariables: z.array(z.string()),
1313
+ envSecrets: z.array(z.string())
1314
+ });
1315
+
1316
+ // v1/studio/workspace-instance.ts
1317
+ var getWorkspaceInstanceInput = z.object({
1318
+ expertJobId: z.string()
1319
+ });
1320
+ var getWorkspaceInstanceResponseSchema = z.object({
1321
+ data: z.object({
1322
+ workspaceInstance: apiWorkspaceInstanceSchema
1323
+ })
1324
+ });
1325
+ async function getWorkspaceInstance(input, client) {
1326
+ const { expertJobId } = getWorkspaceInstanceInput.parse(input);
1327
+ const endpoint = `/api/studio/v1/expert_jobs/${expertJobId}/workspace_instance`;
1328
+ const json = await client.requestAuthenticated(endpoint, {
1329
+ headers: {
1330
+ "Content-Type": "application/json"
1331
+ }
1332
+ });
1333
+ const { data } = getWorkspaceInstanceResponseSchema.parse(json);
1334
+ return {
1335
+ workspaceInstance: data.workspaceInstance
1336
+ };
1337
+ }
1338
+ var createWorkspaceInstanceItemInput = z.discriminatedUnion("type", [
1339
+ z.object({
1340
+ type: z.literal("workspaceItemDirectory"),
1341
+ expertJobId: apiExpertJobSchema.shape.id,
1342
+ permission: apiWorkspaceItemPermissionSchema,
1343
+ path: apiBaseWorkspaceItemSchema.shape.path
1344
+ }),
1345
+ z.object({
1346
+ type: z.literal("workspaceItemFile"),
1347
+ expertJobId: apiExpertJobSchema.shape.id,
1348
+ permission: apiWorkspaceItemPermissionSchema,
1349
+ path: apiBaseWorkspaceItemSchema.shape.path,
1350
+ file: z.instanceof(File)
1351
+ })
1352
+ ]);
1353
+ var createWorkspaceInstanceItemResponseSchema = z.object({
1354
+ data: z.object({
1355
+ workspaceItem: apiWorkspaceItemSchema
1356
+ })
1357
+ });
1358
+ async function createWorkspaceInstanceItem(input, client) {
1359
+ const validatedInput = createWorkspaceInstanceItemInput.parse(input);
1360
+ const endpoint = `/api/studio/v1/expert_jobs/${validatedInput.expertJobId}/workspace_instance/items`;
1361
+ const formData = new FormData();
1362
+ formData.append("type", validatedInput.type);
1363
+ formData.append("path", validatedInput.path);
1364
+ formData.append("permission", validatedInput.permission);
1365
+ if (validatedInput.type === "workspaceItemFile") {
1366
+ formData.append("file", validatedInput.file);
1367
+ }
1368
+ const json = await client.requestAuthenticated(endpoint, {
1369
+ method: "POST",
1370
+ body: formData
1371
+ });
1372
+ const { data } = createWorkspaceInstanceItemResponseSchema.parse(json);
1373
+ return {
1374
+ workspaceItem: data.workspaceItem
1375
+ };
1376
+ }
1377
+ var getWorkspaceInstanceItemInput = z.object({
1378
+ expertJobId: z.string(),
1379
+ itemId: z.string()
1380
+ });
1381
+ var getWorkspaceInstanceItemResponseSchema = z.object({
1382
+ data: z.object({
1383
+ workspaceItem: apiWorkspaceItemSchema
1384
+ })
1385
+ });
1386
+ async function getWorkspaceInstanceItem(input, client) {
1387
+ const { expertJobId, itemId } = getWorkspaceInstanceItemInput.parse(input);
1388
+ const endpoint = `/api/studio/v1/expert_jobs/${expertJobId}/workspace_instance/items/${itemId}`;
1389
+ const json = await client.requestAuthenticated(endpoint, {
1390
+ headers: {
1391
+ "Content-Type": "application/json"
1392
+ }
1393
+ });
1394
+ const { data } = getWorkspaceInstanceItemResponseSchema.parse(json);
1395
+ return {
1396
+ workspaceItem: data.workspaceItem
1397
+ };
1398
+ }
1399
+ var getWorkspaceInstanceItemsInput = z.object({
1400
+ expertJobId: z.string(),
1401
+ take: z.union([z.number(), z.string().transform((value) => Number.parseInt(value))]).optional(),
1402
+ skip: z.union([z.number(), z.string().transform((value) => Number.parseInt(value))]).optional()
1403
+ });
1404
+ var getWorkspaceInstanceItemsResponseSchema = z.object({
1405
+ data: z.object({
1406
+ workspaceItems: z.array(apiWorkspaceItemSchema)
1407
+ }),
1408
+ meta: z.object({
1409
+ total: z.number(),
1410
+ take: z.number(),
1411
+ skip: z.number()
1412
+ })
1413
+ });
1414
+ async function getWorkspaceInstanceItems(input, client) {
1415
+ const { expertJobId, take, skip } = getWorkspaceInstanceItemsInput.parse(input);
1416
+ const url = new URL(`/api/studio/v1/expert_jobs/${expertJobId}/workspace_instance/items`);
1417
+ if (take) url.searchParams.set("take", take.toString());
1418
+ if (skip) url.searchParams.set("skip", skip.toString());
1419
+ const endpoint = url.toString();
1420
+ const json = await client.requestAuthenticated(endpoint, {
1421
+ headers: {
1422
+ "Content-Type": "application/json"
1423
+ }
1424
+ });
1425
+ const { data, meta } = getWorkspaceInstanceItemsResponseSchema.parse(json);
1426
+ return {
1427
+ workspaceItems: data.workspaceItems,
1428
+ total: meta.total,
1429
+ take: meta.take,
1430
+ skip: meta.skip
1431
+ };
1432
+ }
1433
+ var downloadWorkspaceInstanceItemInput = z.object({
1434
+ expertJobId: z.string(),
1435
+ itemId: z.string()
1436
+ });
1437
+ z.object({
1438
+ data: z.object({
1439
+ workspaceItem: apiWorkspaceItemSchema
1440
+ })
1441
+ });
1442
+ async function downloadWorkspaceInstanceItem(input, client) {
1443
+ const { expertJobId, itemId } = downloadWorkspaceInstanceItemInput.parse(input);
1444
+ const endpoint = `/api/studio/v1/expert_jobs/${expertJobId}/workspace_instance/items/${itemId}/download`;
1445
+ const blob = await client.requestBlobAuthenticated(endpoint, {
1446
+ headers: {
1447
+ "Content-Type": "application/json"
1448
+ }
1449
+ });
1450
+ return blob;
1451
+ }
1452
+ var updateWorkspaceInstanceItemInput = z.object({
1453
+ expertJobId: apiExpertJobSchema.shape.id,
1454
+ itemId: z.string(),
1455
+ permission: apiWorkspaceItemPermissionSchema.optional(),
1456
+ path: apiBaseWorkspaceItemSchema.shape.path.optional(),
1457
+ lifecycle: apiWorkspaceItemLifecycleSchema.optional()
1458
+ });
1459
+ var updateWorkspaceInstanceItemResponseSchema = z.object({
1460
+ data: z.object({
1461
+ workspaceItem: apiWorkspaceItemSchema
1462
+ })
1463
+ });
1464
+ async function updateWorkspaceInstanceItem(input, client) {
1465
+ const { expertJobId, itemId, permission, path, lifecycle } = updateWorkspaceInstanceItemInput.parse(input);
1466
+ const endpoint = `/api/studio/v1/expert_jobs/${expertJobId}/workspace_instance/items/${itemId}`;
1467
+ const json = await client.requestAuthenticated(endpoint, {
1468
+ method: "POST",
1469
+ headers: {
1470
+ "Content-Type": "application/json"
1471
+ },
1472
+ body: JSON.stringify({ permission, path, lifecycle })
1473
+ });
1474
+ const { data } = updateWorkspaceInstanceItemResponseSchema.parse(json);
1475
+ return {
1476
+ workspaceItem: data.workspaceItem
1477
+ };
1478
+ }
1479
+ var deleteWorkspaceInstanceItemInput = z.object({
1480
+ expertJobId: apiExpertJobSchema.shape.id,
1481
+ itemId: z.string()
1482
+ });
1483
+ async function deleteWorkspaceInstanceItem(input, client) {
1484
+ const { expertJobId, itemId } = deleteWorkspaceInstanceItemInput.parse(input);
1485
+ const endpoint = `/api/studio/v1/expert_jobs/${expertJobId}/workspace_instance/items/${itemId}`;
1486
+ await client.requestAuthenticated(endpoint, {
1487
+ method: "DELETE",
1488
+ headers: {
1489
+ "Content-Type": "application/json"
1490
+ }
1491
+ });
1492
+ }
1490
1493
 
1491
1494
  // v1/client.ts
1492
1495
  var ApiV1Client = class {
@@ -1500,6 +1503,7 @@ var ApiV1Client = class {
1500
1503
  const url = new URL(endpoint, this.baseUrl);
1501
1504
  const response = await fetch(url.toString(), init);
1502
1505
  if (!response.ok) {
1506
+ console.log(await response.json());
1503
1507
  throw new Error(`Failed to request ${url.toString()}: ${response.statusText}`);
1504
1508
  }
1505
1509
  return await response.json();