@perstack/api-client 0.0.1

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.
@@ -0,0 +1,1618 @@
1
+ import { z } from 'zod';
2
+ import { maxOrganizationNameLength, organizationNameRegex, maxSkillNameLength, packageWithVersionRegex, maxEnvNameLength, envNameRegex, maxSkillToolNameLength, maxSkillRuleLength, maxSkillDescriptionLength, maxSkillEndpointLength, urlSafeRegex, maxSkillInputJsonSchemaLength, maxExpertVersionTagLength, tagNameRegex, expertVersionRegex, maxExpertDescriptionLength, maxExpertNameLength, expertNameRegex, maxExpertKeyLength, expertKeyRegex, maxExpertInstructionLength, messagePartSchema, usageSchema, toolResultSchema, toolCallSchema, messageSchema, instructionMessageSchema, userMessageSchema, toolMessageSchema, maxCheckpointToolCallIdLength } from '@perstack/core';
3
+
4
+ // v1/api-error.ts
5
+ var ApiError = class extends Error {
6
+ constructor(responseText) {
7
+ let payload = null;
8
+ try {
9
+ payload = JSON.parse(responseText);
10
+ } catch {
11
+ }
12
+ const code = payload?.code ?? 500;
13
+ const error = payload?.error ?? "Unknown error";
14
+ const reason = payload?.reason ?? responseText;
15
+ super(`${code} ${error}: ${reason}`);
16
+ this.name = new.target.name;
17
+ this.code = code;
18
+ this.error = error;
19
+ this.reason = reason;
20
+ Object.setPrototypeOf(this, new.target.prototype);
21
+ if (typeof Error.captureStackTrace === "function") {
22
+ Error.captureStackTrace(this, new.target);
23
+ }
24
+ }
25
+ code;
26
+ error;
27
+ reason;
28
+ };
29
+ var apiOrganizationStatusSchema = z.union([
30
+ z.literal("active"),
31
+ z.literal("inactive"),
32
+ z.literal("deleted")
33
+ ]);
34
+ var apiOrganizationTypeSchema = z.union([
35
+ z.literal("personal"),
36
+ z.literal("personalPlus"),
37
+ z.literal("team"),
38
+ z.literal("serviceAdmin")
39
+ ]);
40
+ var apiOrganizationSchema = z.object({
41
+ type: z.literal("organization"),
42
+ id: z.cuid2(),
43
+ createdAt: z.iso.datetime().transform((date) => new Date(date)),
44
+ updatedAt: z.iso.datetime().transform((date) => new Date(date)),
45
+ name: z.string().min(1, "Name is required.").max(maxOrganizationNameLength, "Name is too long.").regex(organizationNameRegex, "Invalid name format. (e.g. my-organization)").optional(),
46
+ nameChangedAt: z.date().optional(),
47
+ status: apiOrganizationStatusSchema,
48
+ organizationType: apiOrganizationTypeSchema,
49
+ maxApplications: z.number().min(0),
50
+ maxApiKeys: z.number().min(0),
51
+ maxStudioExperts: z.number().min(0)
52
+ });
53
+
54
+ // v1/schemas/application.ts
55
+ var apiApplicationStatusSchema = z.union([
56
+ z.literal("active"),
57
+ z.literal("inactive"),
58
+ z.literal("deleted")
59
+ ]);
60
+ var apiApplicationSchema = z.object({
61
+ type: z.literal("application"),
62
+ id: z.cuid2(),
63
+ organizationId: z.cuid2(),
64
+ organization: apiOrganizationSchema,
65
+ createdAt: z.iso.datetime().transform((date) => new Date(date)),
66
+ updatedAt: z.iso.datetime().transform((date) => new Date(date)),
67
+ name: z.string().min(1).max(255),
68
+ status: apiApplicationStatusSchema
69
+ });
70
+ var apiRuntimeVersionSchema = z.enum(["v1.0"]);
71
+ var apiSkillNameSchema = z.string().min(1, "Skill name is required.").max(maxSkillNameLength, "Skill name is too long.").regex(packageWithVersionRegex, "Invalid package name or version.");
72
+ var apiMcpStdioSkillCommandSchema = z.enum(["npx", "uvx"]);
73
+ var apiMcpStdioSkillSchema = z.object({
74
+ type: z.literal("mcpStdioSkill"),
75
+ description: z.string().min(1, "Description is required.").max(maxSkillDescriptionLength, "Description is too long"),
76
+ rule: z.string().max(maxSkillRuleLength, "Rule is too long").optional(),
77
+ pick: z.array(z.string().max(maxSkillToolNameLength, "Tool name is too long")).optional(),
78
+ omit: z.array(z.string().max(maxSkillToolNameLength, "Tool name is too long")).optional(),
79
+ command: apiMcpStdioSkillCommandSchema,
80
+ packageName: z.string().min(1, "Package name is required.").max(maxSkillNameLength, "Package name is too long.").regex(packageWithVersionRegex, "Invalid package name or version."),
81
+ requiredEnv: z.array(
82
+ z.string().max(maxEnvNameLength, "Environment variable name is too long").regex(envNameRegex, "Invalid environment variable name.")
83
+ ).optional()
84
+ });
85
+ var apiMcpSseSkillSchema = z.object({
86
+ type: z.literal("mcpSseSkill"),
87
+ description: z.string().min(1, "Description is required.").max(maxSkillDescriptionLength, "Description is too long"),
88
+ rule: z.string().max(maxSkillRuleLength, "Rule is too long").optional(),
89
+ pick: z.array(z.string().max(maxSkillToolNameLength, "Tool name is too long")).optional(),
90
+ omit: z.array(z.string().max(maxSkillToolNameLength, "Tool name is too long")).optional(),
91
+ endpoint: z.string().min(1, "Endpoint is required.").max(maxSkillEndpointLength, "Endpoint is too long")
92
+ });
93
+ var apiInteractiveSkillSchema = z.object({
94
+ type: z.literal("interactiveSkill"),
95
+ description: z.string().min(1, "Description is required.").max(maxSkillDescriptionLength, "Description is too long"),
96
+ rule: z.string().max(maxSkillRuleLength, "Rule is too long").optional(),
97
+ tools: z.record(
98
+ z.string().min(1, "Tool name is required.").max(maxSkillToolNameLength, "Tool name is too long").regex(urlSafeRegex, "Invalid tool name."),
99
+ z.object({
100
+ description: z.string().min(1, "Description is required.").max(maxSkillDescriptionLength, "Description is too long"),
101
+ inputJsonSchema: z.string().min(1, "Input JSON schema is required.").max(maxSkillInputJsonSchemaLength, "Input JSON schema is too long")
102
+ })
103
+ )
104
+ });
105
+ var apiSkillSchema = z.discriminatedUnion("type", [
106
+ apiMcpStdioSkillSchema,
107
+ apiMcpSseSkillSchema,
108
+ apiInteractiveSkillSchema
109
+ ]);
110
+
111
+ // v1/schemas/expert.ts
112
+ var apiTagNameSchema = z.string().pipe(z.string().min(1, "Tag is required.")).pipe(z.string().max(maxExpertVersionTagLength, "Tag is too long.")).pipe(z.string().regex(tagNameRegex, "Invalid tag format. (e.g. latest)"));
113
+ var apiExpertVersionSchema = z.string().pipe(z.string().min(1, "Version is required.")).pipe(z.string().max(maxExpertVersionTagLength, "Version is too long.")).pipe(z.string().regex(expertVersionRegex, "Invalid version format. (e.g. 1.0.0)"));
114
+ var apiBaseExpertSchema = z.object({
115
+ id: z.cuid2(),
116
+ key: z.string().pipe(z.string().min(1, "Key is required.")).pipe(z.string().max(maxExpertKeyLength, "Key is too long.")).pipe(z.string().regex(expertKeyRegex, "Invalid key format. (e.g. my-expert)")),
117
+ name: z.string().pipe(z.string().min(1, "Name is required.")).pipe(z.string().max(maxExpertNameLength, "Name is too long.")).pipe(z.string().regex(expertNameRegex, "Invalid name format. (e.g. my-expert)")),
118
+ minRuntimeVersion: apiRuntimeVersionSchema,
119
+ description: z.string().min(1, "Description is required").max(maxExpertDescriptionLength, "Description must be less than 2048 characters"),
120
+ owner: z.object({
121
+ name: apiOrganizationSchema.shape.name,
122
+ organizationId: z.cuid2(),
123
+ createdAt: z.iso.datetime().transform((date) => new Date(date))
124
+ }),
125
+ createdAt: z.iso.datetime().transform((date) => new Date(date)),
126
+ updatedAt: z.iso.datetime().transform((date) => new Date(date))
127
+ });
128
+ var apiRegistryExpertSchema = apiBaseExpertSchema.extend({
129
+ type: z.literal("registryExpert"),
130
+ version: apiExpertVersionSchema,
131
+ status: z.union([z.literal("available"), z.literal("deprecated"), z.literal("disabled")]),
132
+ instruction: z.string().min(1, "Instruction is required").max(maxExpertInstructionLength, "Instruction must be less than 20480 characters"),
133
+ skills: z.record(apiSkillNameSchema, apiSkillSchema),
134
+ delegates: z.array(apiBaseExpertSchema.shape.key),
135
+ tags: z.array(apiTagNameSchema)
136
+ });
137
+ var apiStudioExpertSchema = apiBaseExpertSchema.extend({
138
+ type: z.literal("studioExpert"),
139
+ instruction: z.string().min(1, "Instruction is required").max(maxExpertInstructionLength, "Instruction must be less than 20480 characters"),
140
+ skills: z.record(apiSkillNameSchema, apiSkillSchema),
141
+ delegates: z.array(apiBaseExpertSchema.shape.key),
142
+ forkFrom: apiBaseExpertSchema.shape.key.optional(),
143
+ application: apiApplicationSchema
144
+ });
145
+ var apiExpertDigestSchema = apiBaseExpertSchema.extend({
146
+ type: z.literal("expertDigest"),
147
+ version: apiExpertVersionSchema.optional(),
148
+ tags: z.array(apiTagNameSchema)
149
+ });
150
+ var apiExpertSchema = z.discriminatedUnion("type", [
151
+ apiExpertDigestSchema,
152
+ apiRegistryExpertSchema,
153
+ apiStudioExpertSchema
154
+ ]);
155
+
156
+ // v1/registry/experts.ts
157
+ var createRegistryExpertInput = z.object({
158
+ name: apiRegistryExpertSchema.shape.name,
159
+ version: apiRegistryExpertSchema.shape.version,
160
+ minRuntimeVersion: apiRegistryExpertSchema.shape.minRuntimeVersion,
161
+ description: apiRegistryExpertSchema.shape.description,
162
+ instruction: apiRegistryExpertSchema.shape.instruction,
163
+ skills: apiRegistryExpertSchema.shape.skills,
164
+ delegates: apiRegistryExpertSchema.shape.delegates,
165
+ tags: apiRegistryExpertSchema.shape.tags
166
+ });
167
+ var createRegistryExpertResponseSchema = z.object({
168
+ data: z.object({
169
+ expert: apiRegistryExpertSchema
170
+ })
171
+ });
172
+ async function createRegistryExpert(input, client) {
173
+ const { name, version, minRuntimeVersion, description, instruction, skills, delegates, tags } = createRegistryExpertInput.parse(input);
174
+ const endpoint = "/api/registry/v1/experts";
175
+ const json = await client.requestAuthenticated(endpoint, {
176
+ method: "POST",
177
+ headers: {
178
+ "Content-Type": "application/json"
179
+ },
180
+ body: JSON.stringify({
181
+ name,
182
+ version,
183
+ minRuntimeVersion,
184
+ description,
185
+ instruction,
186
+ skills,
187
+ delegates,
188
+ tags
189
+ })
190
+ });
191
+ const { data } = createRegistryExpertResponseSchema.parse(json);
192
+ return {
193
+ expert: data.expert
194
+ };
195
+ }
196
+ var getRegistryExpertInput = z.object({
197
+ expertKey: apiRegistryExpertSchema.shape.key
198
+ });
199
+ var getRegistryExpertResponseSchema = z.object({
200
+ data: z.object({
201
+ expert: apiRegistryExpertSchema
202
+ })
203
+ });
204
+ async function getRegistryExpert(input, client) {
205
+ const { expertKey } = getRegistryExpertInput.parse(input);
206
+ const endpoint = `/api/registry/v1/experts/${encodeURIComponent(expertKey)}`;
207
+ const json = await client.request(endpoint, {
208
+ method: "GET",
209
+ headers: {
210
+ "Content-Type": "application/json"
211
+ }
212
+ });
213
+ const { data } = getRegistryExpertResponseSchema.parse(json);
214
+ return {
215
+ expert: data.expert
216
+ };
217
+ }
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(),
221
+ sort: z.string().optional(),
222
+ order: z.string().optional(),
223
+ filter: z.string().optional(),
224
+ organizationId: z.string().optional()
225
+ });
226
+ var getRegistryExpertsResponseSchema = z.object({
227
+ data: z.object({
228
+ experts: z.array(apiRegistryExpertSchema)
229
+ }),
230
+ meta: z.object({
231
+ total: z.number(),
232
+ take: z.number(),
233
+ skip: z.number()
234
+ })
235
+ });
236
+ async function getRegistryExperts(input, client) {
237
+ const {
238
+ sort,
239
+ order,
240
+ take: takeParam,
241
+ skip: skipParam,
242
+ filter,
243
+ organizationId
244
+ } = getRegistryExpertsInput.parse(input);
245
+ const url = new URL("/api/registry/v1/experts", client.baseUrl);
246
+ if (takeParam) url.searchParams.set("take", takeParam.toString());
247
+ if (skipParam) url.searchParams.set("skip", skipParam.toString());
248
+ if (sort) url.searchParams.set("sort", sort);
249
+ if (order) url.searchParams.set("order", order);
250
+ if (filter) url.searchParams.set("filter", filter);
251
+ if (organizationId) url.searchParams.set("organizationId", organizationId);
252
+ const endpoint = url.toString();
253
+ const json = await client.request(endpoint, {
254
+ method: "GET",
255
+ headers: {
256
+ "Content-Type": "application/json"
257
+ }
258
+ });
259
+ const { data, meta } = getRegistryExpertsResponseSchema.parse(json);
260
+ return {
261
+ experts: data.experts,
262
+ total: meta.total,
263
+ take: meta.take,
264
+ skip: meta.skip
265
+ };
266
+ }
267
+ var getRegistryExpertVersionsInput = z.object({
268
+ expertKey: apiRegistryExpertSchema.shape.key
269
+ });
270
+ var getRegistryExpertVersionsResponseSchema = z.object({
271
+ data: z.object({
272
+ versions: z.array(apiExpertDigestSchema),
273
+ latest: z.string()
274
+ }),
275
+ meta: z.object({
276
+ total: z.number()
277
+ })
278
+ });
279
+ async function getRegistryExpertVersions(input, client) {
280
+ const { expertKey } = getRegistryExpertVersionsInput.parse(input);
281
+ const endpoint = `/api/registry/v1/experts/${encodeURIComponent(expertKey)}/versions`;
282
+ const json = await client.request(endpoint, {
283
+ method: "GET",
284
+ headers: {
285
+ "Content-Type": "application/json"
286
+ }
287
+ });
288
+ const { data, meta } = getRegistryExpertVersionsResponseSchema.parse(json);
289
+ return {
290
+ versions: data.versions,
291
+ latest: data.latest,
292
+ total: meta.total
293
+ };
294
+ }
295
+ var deleteRegistryExpertInput = z.object({
296
+ expertKey: apiRegistryExpertSchema.shape.key
297
+ });
298
+ async function deleteRegistryExpert(input, client) {
299
+ const { expertKey } = deleteRegistryExpertInput.parse(input);
300
+ const endpoint = `/api/registry/v1/experts/${encodeURIComponent(expertKey)}`;
301
+ await client.requestAuthenticated(endpoint, {
302
+ method: "DELETE",
303
+ headers: {
304
+ "Content-Type": "application/json"
305
+ }
306
+ });
307
+ }
308
+ var apiWorkspaceItemOwnerSchema = z.union([z.literal("user"), z.literal("expert")]);
309
+ var apiWorkspaceItemLifecycleSchema = z.union([
310
+ z.literal("application"),
311
+ z.literal("expertJob")
312
+ ]);
313
+ var apiWorkspaceItemPermissionSchema = z.union([
314
+ z.literal("readOnly"),
315
+ z.literal("readWrite")
316
+ ]);
317
+ var apiBaseWorkspaceItemSchema = z.object({
318
+ id: z.cuid2(),
319
+ owner: apiWorkspaceItemOwnerSchema,
320
+ lifecycle: apiWorkspaceItemLifecycleSchema,
321
+ permission: apiWorkspaceItemPermissionSchema,
322
+ path: z.string().min(1).max(1024),
323
+ createdAt: z.iso.datetime().transform((date) => new Date(date)),
324
+ updatedAt: z.iso.datetime().transform((date) => new Date(date))
325
+ });
326
+ var apiWorkspaceItemDirectorySchema = apiBaseWorkspaceItemSchema.extend({
327
+ type: z.literal("workspaceItemDirectory")
328
+ });
329
+ var apiWorkspaceItemFileSchema = apiBaseWorkspaceItemSchema.extend({
330
+ type: z.literal("workspaceItemFile"),
331
+ key: z.string().min(1).max(1024),
332
+ mimeType: z.string().max(256),
333
+ size: z.number().min(0)
334
+ });
335
+ var apiWorkspaceItemSchema = z.discriminatedUnion("type", [
336
+ apiWorkspaceItemDirectorySchema,
337
+ apiWorkspaceItemFileSchema
338
+ ]);
339
+
340
+ // v1/schemas/checkpoint.ts
341
+ var apiCheckpointStatusSchema = z.union([
342
+ z.literal("init"),
343
+ z.literal("proceeding"),
344
+ z.literal("completed"),
345
+ z.literal("stoppedByInteractiveTool"),
346
+ z.literal("stoppedByDelegate"),
347
+ z.literal("stoppedByExceededMaxSteps"),
348
+ z.literal("stoppedByError")
349
+ ]);
350
+ var apiBaseCheckpointActionSchema = z.object({
351
+ error: z.string().optional()
352
+ });
353
+ var apiCheckpointActionRetrySchema = apiBaseCheckpointActionSchema.extend({
354
+ type: z.literal("retry"),
355
+ error: z.string(),
356
+ message: z.string()
357
+ });
358
+ var apiCheckpointActionAttemptCompletionSchema = apiBaseCheckpointActionSchema.extend({
359
+ type: z.literal("attemptCompletion"),
360
+ result: z.string()
361
+ });
362
+ var apiCheckpointActionThinkSchema = apiBaseCheckpointActionSchema.extend({
363
+ type: z.literal("think"),
364
+ thought: z.string()
365
+ });
366
+ var apiCheckpointActionTodoSchema = apiBaseCheckpointActionSchema.extend({
367
+ type: z.literal("todo"),
368
+ newTodos: z.array(z.string()),
369
+ completedTodos: z.array(z.number()),
370
+ todos: z.array(
371
+ z.object({
372
+ id: z.number(),
373
+ title: z.string(),
374
+ completed: z.boolean()
375
+ })
376
+ )
377
+ });
378
+ var apiCheckpointActionReadImageFileSchema = apiBaseCheckpointActionSchema.extend({
379
+ type: z.literal("readImageFile"),
380
+ path: z.string(),
381
+ mimeType: z.string().optional(),
382
+ size: z.number().optional()
383
+ });
384
+ var apiCheckpointActionReadPdfFileSchema = apiBaseCheckpointActionSchema.extend({
385
+ type: z.literal("readPdfFile"),
386
+ path: z.string(),
387
+ mimeType: z.string().optional(),
388
+ size: z.number().optional()
389
+ });
390
+ var apiCheckpointActionReadTextFileSchema = apiBaseCheckpointActionSchema.extend({
391
+ type: z.literal("readTextFile"),
392
+ path: z.string(),
393
+ content: z.string(),
394
+ from: z.number().optional(),
395
+ to: z.number().optional()
396
+ });
397
+ var apiCheckpointActionEditTextFileSchema = apiBaseCheckpointActionSchema.extend({
398
+ type: z.literal("editTextFile"),
399
+ path: z.string(),
400
+ newText: z.string().optional(),
401
+ oldText: z.string().optional()
402
+ });
403
+ var apiCheckpointActionAppendTextFileSchema = apiBaseCheckpointActionSchema.extend({
404
+ type: z.literal("appendTextFile"),
405
+ path: z.string(),
406
+ text: z.string()
407
+ });
408
+ var apiCheckpointActionDeleteFileSchema = apiBaseCheckpointActionSchema.extend({
409
+ type: z.literal("deleteFile"),
410
+ path: z.string()
411
+ });
412
+ var apiCheckpointActionMoveFileSchema = apiBaseCheckpointActionSchema.extend({
413
+ type: z.literal("moveFile"),
414
+ source: z.string(),
415
+ destination: z.string()
416
+ });
417
+ var apiCheckpointActionGetFileInfoSchema = apiBaseCheckpointActionSchema.extend({
418
+ type: z.literal("getFileInfo"),
419
+ path: z.string(),
420
+ exists: z.boolean(),
421
+ absolutePath: z.string(),
422
+ name: z.string(),
423
+ directory: z.string(),
424
+ extension: z.string().optional(),
425
+ mimeType: z.string().optional(),
426
+ size: z.number(),
427
+ sizeFormatted: z.string(),
428
+ created: z.date(),
429
+ modified: z.date(),
430
+ accessed: z.date(),
431
+ permissions: z.object({
432
+ readable: z.boolean(),
433
+ writable: z.boolean(),
434
+ executable: z.boolean()
435
+ }),
436
+ workspaceItem: apiWorkspaceItemSchema.optional()
437
+ });
438
+ var apiCheckpointActionWriteTextFileSchema = apiBaseCheckpointActionSchema.extend({
439
+ type: z.literal("writeTextFile"),
440
+ path: z.string(),
441
+ text: z.string()
442
+ });
443
+ var apiCheckpointActionCreateDirectorySchema = apiBaseCheckpointActionSchema.extend({
444
+ type: z.literal("createDirectory"),
445
+ path: z.string()
446
+ });
447
+ var apiCheckpointActionListDirectorySchema = apiBaseCheckpointActionSchema.extend({
448
+ type: z.literal("listDirectory"),
449
+ path: z.string(),
450
+ items: z.array(
451
+ z.object({
452
+ name: z.string(),
453
+ path: z.string(),
454
+ type: z.union([z.literal("directory"), z.literal("file")]),
455
+ size: z.number(),
456
+ modified: z.date()
457
+ })
458
+ )
459
+ });
460
+ var apiCheckpointActionTestUrlSchema = apiBaseCheckpointActionSchema.extend({
461
+ type: z.literal("testUrl"),
462
+ results: z.array(
463
+ z.object({
464
+ url: z.string(),
465
+ status: z.number(),
466
+ title: z.string(),
467
+ description: z.string()
468
+ })
469
+ )
470
+ });
471
+ var apiCheckpointActionDelegateSchema = apiBaseCheckpointActionSchema.extend({
472
+ type: z.literal("delegate"),
473
+ delegateTo: apiExpertDigestSchema,
474
+ query: z.string()
475
+ });
476
+ var apiCheckpointActionGeneralToolSchema = apiBaseCheckpointActionSchema.extend({
477
+ type: z.literal("generalTool"),
478
+ skillName: z.string().min(1).max(256),
479
+ toolName: z.string().min(1).max(256),
480
+ args: z.record(z.string().min(1).max(256), z.unknown()),
481
+ result: z.array(messagePartSchema)
482
+ });
483
+ var apiCheckpointActionErrorSchema = apiBaseCheckpointActionSchema.extend({
484
+ type: z.literal("error")
485
+ });
486
+ var apiCheckpointActionSchema = z.discriminatedUnion("type", [
487
+ apiCheckpointActionRetrySchema,
488
+ apiCheckpointActionAttemptCompletionSchema,
489
+ apiCheckpointActionThinkSchema,
490
+ apiCheckpointActionTodoSchema,
491
+ apiCheckpointActionReadImageFileSchema,
492
+ apiCheckpointActionReadPdfFileSchema,
493
+ apiCheckpointActionReadTextFileSchema,
494
+ apiCheckpointActionEditTextFileSchema,
495
+ apiCheckpointActionAppendTextFileSchema,
496
+ apiCheckpointActionDeleteFileSchema,
497
+ apiCheckpointActionMoveFileSchema,
498
+ apiCheckpointActionGetFileInfoSchema,
499
+ apiCheckpointActionWriteTextFileSchema,
500
+ apiCheckpointActionCreateDirectorySchema,
501
+ apiCheckpointActionListDirectorySchema,
502
+ apiCheckpointActionTestUrlSchema,
503
+ apiCheckpointActionDelegateSchema,
504
+ apiCheckpointActionGeneralToolSchema,
505
+ apiCheckpointActionErrorSchema
506
+ ]);
507
+ var apiCheckpointSchema = z.object({
508
+ type: z.literal("checkpoint"),
509
+ id: z.cuid2(),
510
+ action: apiCheckpointActionSchema,
511
+ expertJobId: z.cuid2(),
512
+ stepNumber: z.number().min(0),
513
+ status: apiCheckpointStatusSchema,
514
+ expert: apiExpertDigestSchema,
515
+ skillName: z.string().min(1).max(maxSkillNameLength).optional(),
516
+ toolName: z.string().min(1).max(maxSkillToolNameLength).optional(),
517
+ delegateTo: z.object({
518
+ expert: apiExpertDigestSchema,
519
+ toolCallId: z.string().min(1).max(maxCheckpointToolCallIdLength),
520
+ toolName: z.string().min(1).max(maxSkillToolNameLength)
521
+ }).optional(),
522
+ delegatedBy: z.object({
523
+ expert: apiExpertDigestSchema,
524
+ toolCallId: z.string().min(1).max(maxCheckpointToolCallIdLength),
525
+ toolName: z.string().min(1).max(maxSkillToolNameLength),
526
+ checkpointId: z.cuid2()
527
+ }).optional(),
528
+ inputMessages: z.array(z.union([instructionMessageSchema, userMessageSchema, toolMessageSchema])).optional(),
529
+ messages: z.array(messageSchema),
530
+ newMessages: z.array(messageSchema),
531
+ toolCall: toolCallSchema.optional(),
532
+ toolResult: toolResultSchema.optional(),
533
+ usage: usageSchema,
534
+ contextWindow: z.number().min(0),
535
+ contextWindowUsage: z.number().min(0),
536
+ startedAt: z.iso.datetime().transform((date) => new Date(date)),
537
+ finishedAt: z.iso.datetime().transform((date) => new Date(date)).optional()
538
+ });
539
+ var apiExpertJobStatusSchema = z.union([
540
+ z.literal("queued"),
541
+ z.literal("processing"),
542
+ z.literal("completed"),
543
+ z.literal("requestInteractiveToolResult"),
544
+ z.literal("requestDelegateResult"),
545
+ z.literal("exceededMaxSteps"),
546
+ z.literal("failed"),
547
+ z.literal("canceling"),
548
+ z.literal("canceled"),
549
+ z.literal("expired")
550
+ ]);
551
+ var apiExpertJobSchema = z.object({
552
+ type: z.literal("expertJob"),
553
+ id: z.cuid2(),
554
+ status: apiExpertJobStatusSchema,
555
+ runtimeVersion: apiRuntimeVersionSchema,
556
+ expertKey: apiBaseExpertSchema.shape.key,
557
+ query: z.string().min(1).max(1024 * 20).optional(),
558
+ files: z.array(
559
+ z.string().min(1).max(1024 * 20)
560
+ ).optional(),
561
+ expert: apiExpertSchema,
562
+ model: z.string().min(1).max(256),
563
+ temperature: z.number().min(0).max(1).optional(),
564
+ maxSteps: z.number().min(1).optional(),
565
+ maxRetries: z.number().min(0).optional(),
566
+ currentStep: z.number().min(0).optional(),
567
+ totalSteps: z.number().min(0).optional(),
568
+ totalDuration: z.number().min(0).optional(),
569
+ usage: usageSchema,
570
+ createdAt: z.iso.datetime().transform((date) => new Date(date)),
571
+ updatedAt: z.iso.datetime().transform((date) => new Date(date)),
572
+ applicationId: z.cuid2()
573
+ });
574
+
575
+ // v1/studio/expert-jobs.ts
576
+ var startExpertJobInput = z.object({
577
+ expertKey: apiBaseExpertSchema.shape.key,
578
+ query: apiExpertJobSchema.shape.query,
579
+ files: apiExpertJobSchema.shape.files,
580
+ model: apiExpertJobSchema.shape.model,
581
+ temperature: apiExpertJobSchema.shape.temperature,
582
+ maxSteps: apiExpertJobSchema.shape.maxSteps,
583
+ maxRetries: apiExpertJobSchema.shape.maxRetries
584
+ });
585
+ var startExpertJobResponseSchema = z.object({
586
+ data: z.object({
587
+ expertJob: apiExpertJobSchema
588
+ })
589
+ });
590
+ async function startExpertJob(input, client) {
591
+ const { expertKey, query, files, model, temperature, maxSteps, maxRetries } = startExpertJobInput.parse(input);
592
+ if ((!query || query === "") && (!files || files.length === 0)) {
593
+ throw new Error("Either query or files must be provided");
594
+ }
595
+ const endpoint = "/api/studio/v1/expert_jobs";
596
+ const formData = new FormData();
597
+ formData.append("expertKey", expertKey);
598
+ if (query) formData.append("query", query);
599
+ if (temperature) formData.append("temperature", temperature.toString());
600
+ if (maxSteps) formData.append("maxSteps", maxSteps.toString());
601
+ if (maxRetries) formData.append("maxRetries", maxRetries.toString());
602
+ if (model) formData.append("model", model);
603
+ if (files && files.length > 0) {
604
+ for (const file of files) {
605
+ formData.append("files", file);
606
+ }
607
+ }
608
+ const json = await client.requestAuthenticated(endpoint, {
609
+ method: "POST",
610
+ body: formData
611
+ });
612
+ const { data } = startExpertJobResponseSchema.parse(json);
613
+ return {
614
+ expertJob: data.expertJob
615
+ };
616
+ }
617
+ var continueExpertJobInput = z.object({
618
+ expertJobId: apiExpertJobSchema.shape.id,
619
+ query: apiExpertJobSchema.shape.query,
620
+ files: apiExpertJobSchema.shape.files,
621
+ model: apiExpertJobSchema.shape.model,
622
+ temperature: apiExpertJobSchema.shape.temperature,
623
+ maxSteps: apiExpertJobSchema.shape.maxSteps,
624
+ maxRetries: apiExpertJobSchema.shape.maxRetries
625
+ });
626
+ var continueExpertJobResponseSchema = z.object({
627
+ data: z.object({
628
+ expertJob: apiExpertJobSchema
629
+ })
630
+ });
631
+ async function continueExpertJob(input, client) {
632
+ const { expertJobId, query, files, model, temperature, maxSteps, maxRetries } = continueExpertJobInput.parse(input);
633
+ if ((!query || query === "") && (!files || files.length === 0)) {
634
+ throw new Error("Either query or files must be provided");
635
+ }
636
+ const endpoint = `/api/studio/v1/expert_jobs/${expertJobId}/continue`;
637
+ const formData = new FormData();
638
+ if (query) formData.append("query", query);
639
+ if (model) formData.append("model", model);
640
+ if (temperature) formData.append("temperature", temperature.toString());
641
+ if (maxSteps) formData.append("maxSteps", maxSteps.toString());
642
+ if (maxRetries) formData.append("maxRetries", maxRetries.toString());
643
+ if (files) {
644
+ for (const file of files) {
645
+ formData.append("files", file);
646
+ }
647
+ }
648
+ const json = await client.requestAuthenticated(endpoint, {
649
+ method: "POST",
650
+ body: formData
651
+ });
652
+ const { data } = continueExpertJobResponseSchema.parse(json);
653
+ return {
654
+ expertJob: data.expertJob
655
+ };
656
+ }
657
+ var resumeExpertJobFromCheckpointInput = z.object({
658
+ expertJobId: apiExpertJobSchema.shape.id,
659
+ checkpointId: apiCheckpointSchema.shape.id,
660
+ query: apiExpertJobSchema.shape.query,
661
+ files: apiExpertJobSchema.shape.files,
662
+ model: apiExpertJobSchema.shape.model,
663
+ temperature: apiExpertJobSchema.shape.temperature,
664
+ maxSteps: apiExpertJobSchema.shape.maxSteps,
665
+ maxRetries: apiExpertJobSchema.shape.maxRetries
666
+ });
667
+ var resumeExpertJobFromCheckpointResponseSchema = z.object({
668
+ data: z.object({
669
+ expertJob: apiExpertJobSchema
670
+ })
671
+ });
672
+ async function resumeExpertJobFromCheckpoint(input, client) {
673
+ const { expertJobId, checkpointId, query, files, model, temperature, maxSteps, maxRetries } = resumeExpertJobFromCheckpointInput.parse(input);
674
+ if ((!query || query === "") && (!files || files.length === 0)) {
675
+ throw new Error("Either query or files must be provided");
676
+ }
677
+ const endpoint = `/api/studio/v1/expert_jobs/${expertJobId}/resume_from`;
678
+ const formData = new FormData();
679
+ formData.append("checkpointId", checkpointId);
680
+ if (query) formData.append("query", query);
681
+ if (model) formData.append("model", model);
682
+ if (temperature) formData.append("temperature", temperature.toString());
683
+ if (maxSteps) formData.append("maxSteps", maxSteps.toString());
684
+ if (maxRetries) formData.append("maxRetries", maxRetries.toString());
685
+ if (files) {
686
+ for (const file of files) {
687
+ formData.append("files", file);
688
+ }
689
+ }
690
+ const json = await client.requestAuthenticated(endpoint, {
691
+ method: "POST",
692
+ body: formData
693
+ });
694
+ const { data } = resumeExpertJobFromCheckpointResponseSchema.parse(json);
695
+ return {
696
+ expertJob: data.expertJob
697
+ };
698
+ }
699
+ var getExpertJobInput = z.object({
700
+ expertJobId: apiExpertJobSchema.shape.id
701
+ });
702
+ var getExpertJobResponseSchema = z.object({
703
+ data: z.object({
704
+ expertJob: apiExpertJobSchema
705
+ })
706
+ });
707
+ async function getExpertJob(input, client) {
708
+ const { expertJobId } = getExpertJobInput.parse(input);
709
+ const endpoint = `/api/studio/v1/expert_jobs/${expertJobId}`;
710
+ const json = await client.requestAuthenticated(endpoint, {
711
+ method: "GET",
712
+ headers: {
713
+ "Content-Type": "application/json"
714
+ }
715
+ });
716
+ const { data } = getExpertJobResponseSchema.parse(json);
717
+ return {
718
+ expertJob: data.expertJob
719
+ };
720
+ }
721
+ var getExpertJobsInput = z.object({
722
+ take: z.union([z.number(), z.string().transform((value) => Number.parseInt(value))]).optional(),
723
+ skip: z.union([z.number(), z.string().transform((value) => Number.parseInt(value))]).optional(),
724
+ sort: z.string().optional(),
725
+ order: z.string().optional(),
726
+ filter: z.string().optional()
727
+ });
728
+ var getExpertJobsResponseSchema = z.object({
729
+ data: z.object({
730
+ expertJobs: apiExpertJobSchema.array()
731
+ }),
732
+ meta: z.object({
733
+ total: z.number(),
734
+ take: z.number(),
735
+ skip: z.number()
736
+ })
737
+ });
738
+ async function getExpertJobs(input, client) {
739
+ const { sort, order, take, skip, filter } = getExpertJobsInput.parse(input);
740
+ const url = new URL("/api/studio/v1/expert_jobs", client.baseUrl);
741
+ const searchParams = url.searchParams;
742
+ if (sort) searchParams.set("sort", sort);
743
+ if (order) searchParams.set("order", order);
744
+ if (take) searchParams.set("take", take.toString());
745
+ if (skip) searchParams.set("skip", skip.toString());
746
+ if (filter) searchParams.set("filter", filter);
747
+ const endpoint = url.toString();
748
+ const json = await client.requestAuthenticated(endpoint, {
749
+ method: "GET",
750
+ headers: {
751
+ "Content-Type": "application/json"
752
+ }
753
+ });
754
+ const { data, meta } = getExpertJobsResponseSchema.parse(json);
755
+ return {
756
+ expertJobs: data.expertJobs,
757
+ total: meta.total,
758
+ take: meta.take,
759
+ skip: meta.skip
760
+ };
761
+ }
762
+ var updateExpertJobInput = z.object({
763
+ expertJobId: apiExpertJobSchema.shape.id,
764
+ status: apiExpertJobSchema.shape.status
765
+ });
766
+ var updateExpertJobResponseSchema = z.object({
767
+ data: z.object({
768
+ expertJob: apiExpertJobSchema
769
+ })
770
+ });
771
+ async function updateExpertJob(input, client) {
772
+ const { expertJobId, status } = updateExpertJobInput.parse(input);
773
+ const endpoint = `/api/studio/v1/expert_jobs/${expertJobId}`;
774
+ const json = await client.requestAuthenticated(endpoint, {
775
+ method: "POST",
776
+ headers: {
777
+ "Content-Type": "application/json"
778
+ },
779
+ body: JSON.stringify({
780
+ status
781
+ })
782
+ });
783
+ const { data } = updateExpertJobResponseSchema.parse(json);
784
+ return {
785
+ expertJob: data.expertJob
786
+ };
787
+ }
788
+ var createCheckpointInput = z.object({
789
+ expertJobId: apiExpertJobSchema.shape.id,
790
+ checkpoint: apiCheckpointSchema,
791
+ step: z.object({
792
+ stepNumber: z.number(),
793
+ inputMessages: z.optional(
794
+ z.array(z.union([instructionMessageSchema, userMessageSchema, toolMessageSchema]))
795
+ ),
796
+ newMessages: z.array(messageSchema),
797
+ toolCall: z.optional(toolCallSchema),
798
+ toolResult: z.optional(toolResultSchema),
799
+ usage: usageSchema,
800
+ startedAt: z.date(),
801
+ finishedAt: z.optional(z.date())
802
+ })
803
+ });
804
+ var createCheckpointResponseSchema = z.object({
805
+ data: z.object({
806
+ checkpoint: apiCheckpointSchema
807
+ })
808
+ });
809
+ async function createCheckpoint(input, client) {
810
+ const { expertJobId, checkpoint, step } = createCheckpointInput.parse(input);
811
+ const endpoint = `/api/studio/v1/expert_jobs/${expertJobId}/checkpoints`;
812
+ const json = await client.requestAuthenticated(endpoint, {
813
+ method: "POST",
814
+ body: JSON.stringify({
815
+ checkpoint,
816
+ step
817
+ })
818
+ });
819
+ const { data } = createCheckpointResponseSchema.parse(json);
820
+ return {
821
+ checkpoint: data.checkpoint
822
+ };
823
+ }
824
+ var getCheckpointInput = z.object({
825
+ expertJobId: apiExpertJobSchema.shape.id,
826
+ checkpointId: apiCheckpointSchema.shape.id
827
+ });
828
+ var getCheckpointResponseSchema = z.object({
829
+ data: z.object({
830
+ checkpoint: apiCheckpointSchema
831
+ })
832
+ });
833
+ async function getCheckpoint(input, client) {
834
+ const { expertJobId, checkpointId } = getCheckpointInput.parse(input);
835
+ const endpoint = `/api/studio/v1/expert_jobs/${expertJobId}/checkpoints/${checkpointId}`;
836
+ const json = await client.requestAuthenticated(endpoint, {
837
+ method: "GET",
838
+ headers: {
839
+ "Content-Type": "application/json"
840
+ }
841
+ });
842
+ const { data } = getCheckpointResponseSchema.parse(json);
843
+ return {
844
+ checkpoint: data.checkpoint
845
+ };
846
+ }
847
+ var getCheckpointsInput = z.object({
848
+ expertJobId: apiExpertJobSchema.shape.id,
849
+ take: z.union([z.number(), z.string().transform((value) => Number.parseInt(value))]).optional(),
850
+ skip: z.union([z.number(), z.string().transform((value) => Number.parseInt(value))]).optional(),
851
+ sort: z.string().optional(),
852
+ order: z.string().optional(),
853
+ filter: z.string().optional()
854
+ });
855
+ var getCheckpointsResponseSchema = z.object({
856
+ data: z.object({
857
+ checkpoints: apiCheckpointSchema.array()
858
+ }),
859
+ meta: z.object({
860
+ total: z.number(),
861
+ take: z.number(),
862
+ skip: z.number()
863
+ })
864
+ });
865
+ async function getCheckpoints(input, client) {
866
+ const { expertJobId, sort, order, take, skip, filter } = getCheckpointsInput.parse(input);
867
+ const url = new URL(`/api/studio/v1/expert_jobs/${expertJobId}/checkpoints`);
868
+ const searchParams = url.searchParams;
869
+ if (sort) searchParams.set("sort", sort);
870
+ if (order) searchParams.set("order", order);
871
+ if (take) searchParams.set("take", take.toString());
872
+ if (skip) searchParams.set("skip", skip.toString());
873
+ if (filter) searchParams.set("filter", filter);
874
+ const endpoint = url.toString();
875
+ const json = await client.requestAuthenticated(endpoint, {
876
+ method: "GET",
877
+ headers: {
878
+ "Content-Type": "application/json"
879
+ }
880
+ });
881
+ const { data, meta } = getCheckpointsResponseSchema.parse(json);
882
+ return {
883
+ checkpoints: data.checkpoints,
884
+ total: meta.total,
885
+ take: meta.take,
886
+ skip: meta.skip
887
+ };
888
+ }
889
+ var createStudioExpertInput = z.object({
890
+ name: apiStudioExpertSchema.shape.name,
891
+ minRuntimeVersion: apiStudioExpertSchema.shape.minRuntimeVersion,
892
+ description: apiStudioExpertSchema.shape.description,
893
+ instruction: apiStudioExpertSchema.shape.instruction,
894
+ delegates: apiStudioExpertSchema.shape.delegates,
895
+ skills: apiStudioExpertSchema.shape.skills,
896
+ forkFrom: apiStudioExpertSchema.shape.forkFrom
897
+ });
898
+ var createStudioExpertResponseSchema = z.object({
899
+ data: z.object({
900
+ expert: apiStudioExpertSchema
901
+ })
902
+ });
903
+ async function createStudioExpert(input, client) {
904
+ const { name, minRuntimeVersion, description, instruction, skills, delegates, forkFrom } = createStudioExpertInput.parse(input);
905
+ const endpoint = "/api/studio/v1/experts";
906
+ const json = await client.requestAuthenticated(endpoint, {
907
+ method: "POST",
908
+ headers: {
909
+ "Content-Type": "application/json"
910
+ },
911
+ body: JSON.stringify({
912
+ name,
913
+ minRuntimeVersion,
914
+ description,
915
+ instruction,
916
+ skills,
917
+ delegates,
918
+ forkFrom
919
+ })
920
+ });
921
+ const { data } = createStudioExpertResponseSchema.parse(json);
922
+ return {
923
+ expert: data.expert
924
+ };
925
+ }
926
+ var getStudioExpertInput = z.object({
927
+ expertKey: apiStudioExpertSchema.shape.key
928
+ });
929
+ var getStudioExpertResponseSchema = z.object({
930
+ data: z.object({
931
+ expert: apiStudioExpertSchema
932
+ })
933
+ });
934
+ async function getStudioExpert(input, client) {
935
+ const { expertKey } = getStudioExpertInput.parse(input);
936
+ const endpoint = `/api/studio/v1/experts/${encodeURIComponent(expertKey)}`;
937
+ const json = await client.requestAuthenticated(endpoint, {
938
+ method: "GET",
939
+ headers: {
940
+ "Content-Type": "application/json"
941
+ }
942
+ });
943
+ const { data } = getStudioExpertResponseSchema.parse(json);
944
+ return {
945
+ expert: data.expert
946
+ };
947
+ }
948
+ var getStudioExpertsInput = z.object({
949
+ take: z.union([z.number(), z.string().transform((value) => Number.parseInt(value))]).optional(),
950
+ skip: z.union([z.number(), z.string().transform((value) => Number.parseInt(value))]).optional(),
951
+ sort: z.string().optional(),
952
+ order: z.string().optional(),
953
+ filter: z.string().optional()
954
+ });
955
+ var getStudioExpertsResponseSchema = z.object({
956
+ data: z.object({
957
+ experts: z.array(apiStudioExpertSchema)
958
+ }),
959
+ meta: z.object({
960
+ total: z.number(),
961
+ take: z.number(),
962
+ skip: z.number()
963
+ })
964
+ });
965
+ async function getStudioExperts(input, client) {
966
+ const { sort, order, take, skip, filter } = getStudioExpertsInput.parse(input);
967
+ const url = new URL("/api/studio/v1/experts", client.baseUrl);
968
+ if (take) url.searchParams.set("take", take.toString());
969
+ if (skip) url.searchParams.set("skip", skip.toString());
970
+ if (sort) url.searchParams.set("sort", sort);
971
+ if (order) url.searchParams.set("order", order);
972
+ if (filter) url.searchParams.set("filter", filter);
973
+ const endpoint = url.toString();
974
+ const json = await client.requestAuthenticated(endpoint, {
975
+ method: "GET",
976
+ headers: {
977
+ "Content-Type": "application/json"
978
+ }
979
+ });
980
+ const { data, meta } = getStudioExpertsResponseSchema.parse(json);
981
+ return {
982
+ experts: data.experts,
983
+ total: meta.total,
984
+ take: meta.take,
985
+ skip: meta.skip
986
+ };
987
+ }
988
+ var updateStudioExpertInput = z.object({
989
+ expertKey: apiStudioExpertSchema.shape.key,
990
+ minRuntimeVersion: apiStudioExpertSchema.shape.minRuntimeVersion,
991
+ description: apiStudioExpertSchema.shape.description,
992
+ instruction: apiStudioExpertSchema.shape.instruction,
993
+ delegates: apiStudioExpertSchema.shape.delegates,
994
+ skills: apiStudioExpertSchema.shape.skills,
995
+ forkFrom: apiStudioExpertSchema.shape.forkFrom
996
+ });
997
+ var updateStudioExpertResponseSchema = z.object({
998
+ data: z.object({
999
+ expert: apiStudioExpertSchema
1000
+ })
1001
+ });
1002
+ async function updateStudioExpert(input, client) {
1003
+ const { expertKey, minRuntimeVersion, description, instruction, skills, delegates, forkFrom } = updateStudioExpertInput.parse(input);
1004
+ const endpoint = `/api/studio/v1/experts/${encodeURIComponent(expertKey)}`;
1005
+ const json = await client.requestAuthenticated(endpoint, {
1006
+ method: "POST",
1007
+ headers: {
1008
+ "Content-Type": "application/json"
1009
+ },
1010
+ body: JSON.stringify({
1011
+ minRuntimeVersion,
1012
+ description,
1013
+ instruction,
1014
+ skills,
1015
+ delegates,
1016
+ forkFrom
1017
+ })
1018
+ });
1019
+ const { data } = updateStudioExpertResponseSchema.parse(json);
1020
+ return {
1021
+ expert: data.expert
1022
+ };
1023
+ }
1024
+ var deleteStudioExpertInput = z.object({
1025
+ expertKey: apiStudioExpertSchema.shape.key
1026
+ });
1027
+ async function deleteStudioExpert(input, client) {
1028
+ const { expertKey } = deleteStudioExpertInput.parse(input);
1029
+ const endpoint = `/api/studio/v1/experts/${encodeURIComponent(expertKey)}`;
1030
+ await client.requestAuthenticated(endpoint, {
1031
+ method: "DELETE",
1032
+ headers: {
1033
+ "Content-Type": "application/json"
1034
+ }
1035
+ });
1036
+ }
1037
+ var apiWorkspaceInstanceSchema = z.object({
1038
+ type: z.literal("workspaceInstance"),
1039
+ id: z.cuid2(),
1040
+ applicationId: z.cuid2(),
1041
+ application: apiApplicationSchema,
1042
+ expertJob: apiExpertJobSchema,
1043
+ createdAt: z.iso.datetime().transform((date) => new Date(date)),
1044
+ updatedAt: z.iso.datetime().transform((date) => new Date(date)),
1045
+ items: z.array(apiWorkspaceItemSchema),
1046
+ countItems: z.number(),
1047
+ envVariables: z.array(z.string()),
1048
+ envSecrets: z.array(z.string())
1049
+ });
1050
+
1051
+ // v1/studio/workspace-instance.ts
1052
+ var getWorkspaceInstanceInput = z.object({
1053
+ expertJobId: z.string()
1054
+ });
1055
+ var getWorkspaceInstanceResponseSchema = z.object({
1056
+ data: z.object({
1057
+ workspaceInstance: apiWorkspaceInstanceSchema
1058
+ })
1059
+ });
1060
+ async function getWorkspaceInstance(input, client) {
1061
+ const { expertJobId } = getWorkspaceInstanceInput.parse(input);
1062
+ const endpoint = `/api/studio/v1/expert_jobs/${expertJobId}/workspace_instance`;
1063
+ const json = await client.requestAuthenticated(endpoint, {
1064
+ headers: {
1065
+ "Content-Type": "application/json"
1066
+ }
1067
+ });
1068
+ const { data } = getWorkspaceInstanceResponseSchema.parse(json);
1069
+ return {
1070
+ workspaceInstance: data.workspaceInstance
1071
+ };
1072
+ }
1073
+ var createWorkspaceInstanceItemInput = z.discriminatedUnion("type", [
1074
+ z.object({
1075
+ type: z.literal("workspaceItemDirectory"),
1076
+ expertJobId: apiExpertJobSchema.shape.id,
1077
+ permission: apiWorkspaceItemPermissionSchema,
1078
+ path: apiBaseWorkspaceItemSchema.shape.path
1079
+ }),
1080
+ z.object({
1081
+ type: z.literal("workspaceItemFile"),
1082
+ expertJobId: apiExpertJobSchema.shape.id,
1083
+ permission: apiWorkspaceItemPermissionSchema,
1084
+ path: apiBaseWorkspaceItemSchema.shape.path,
1085
+ file: z.instanceof(File)
1086
+ })
1087
+ ]);
1088
+ var createWorkspaceInstanceItemResponseSchema = z.object({
1089
+ data: z.object({
1090
+ workspaceItem: apiWorkspaceItemSchema
1091
+ })
1092
+ });
1093
+ async function createWorkspaceInstanceItem(input, client) {
1094
+ const validatedInput = createWorkspaceInstanceItemInput.parse(input);
1095
+ const endpoint = `/api/studio/v1/expert_jobs/${validatedInput.expertJobId}/workspace_instance/items`;
1096
+ const formData = new FormData();
1097
+ formData.append("type", validatedInput.type);
1098
+ formData.append("path", validatedInput.path);
1099
+ formData.append("permission", validatedInput.permission);
1100
+ if (validatedInput.type === "workspaceItemFile") {
1101
+ formData.append("file", validatedInput.file);
1102
+ }
1103
+ const json = await client.requestAuthenticated(endpoint, {
1104
+ method: "POST",
1105
+ body: formData
1106
+ });
1107
+ const { data } = createWorkspaceInstanceItemResponseSchema.parse(json);
1108
+ return {
1109
+ workspaceItem: data.workspaceItem
1110
+ };
1111
+ }
1112
+ var getWorkspaceInstanceItemInput = z.object({
1113
+ expertJobId: z.string(),
1114
+ itemId: z.string()
1115
+ });
1116
+ var getWorkspaceInstanceItemResponseSchema = z.object({
1117
+ data: z.object({
1118
+ workspaceItem: apiWorkspaceItemSchema
1119
+ })
1120
+ });
1121
+ async function getWorkspaceInstanceItem(input, client) {
1122
+ const { expertJobId, itemId } = getWorkspaceInstanceItemInput.parse(input);
1123
+ const endpoint = `/api/studio/v1/expert_jobs/${expertJobId}/workspace_instance/items/${itemId}`;
1124
+ const json = await client.requestAuthenticated(endpoint, {
1125
+ headers: {
1126
+ "Content-Type": "application/json"
1127
+ }
1128
+ });
1129
+ const { data } = getWorkspaceInstanceItemResponseSchema.parse(json);
1130
+ return {
1131
+ workspaceItem: data.workspaceItem
1132
+ };
1133
+ }
1134
+ var getWorkspaceInstanceItemsInput = z.object({
1135
+ expertJobId: z.string(),
1136
+ take: z.union([z.number(), z.string().transform((value) => Number.parseInt(value))]).optional(),
1137
+ skip: z.union([z.number(), z.string().transform((value) => Number.parseInt(value))]).optional()
1138
+ });
1139
+ var getWorkspaceInstanceItemsResponseSchema = z.object({
1140
+ data: z.object({
1141
+ workspaceItems: z.array(apiWorkspaceItemSchema)
1142
+ }),
1143
+ meta: z.object({
1144
+ total: z.number(),
1145
+ take: z.number(),
1146
+ skip: z.number()
1147
+ })
1148
+ });
1149
+ async function getWorkspaceInstanceItems(input, client) {
1150
+ const { expertJobId, take, skip } = getWorkspaceInstanceItemsInput.parse(input);
1151
+ const url = new URL(`/api/studio/v1/expert_jobs/${expertJobId}/workspace_instance/items`);
1152
+ if (take) url.searchParams.set("take", take.toString());
1153
+ if (skip) url.searchParams.set("skip", skip.toString());
1154
+ const endpoint = url.toString();
1155
+ const json = await client.requestAuthenticated(endpoint, {
1156
+ headers: {
1157
+ "Content-Type": "application/json"
1158
+ }
1159
+ });
1160
+ const { data, meta } = getWorkspaceInstanceItemsResponseSchema.parse(json);
1161
+ return {
1162
+ workspaceItems: data.workspaceItems,
1163
+ total: meta.total,
1164
+ take: meta.take,
1165
+ skip: meta.skip
1166
+ };
1167
+ }
1168
+ var downloadWorkspaceInstanceItemInput = z.object({
1169
+ expertJobId: z.string(),
1170
+ itemId: z.string()
1171
+ });
1172
+ z.object({
1173
+ data: z.object({
1174
+ workspaceItem: apiWorkspaceItemSchema
1175
+ })
1176
+ });
1177
+ async function downloadWorkspaceInstanceItem(input, client) {
1178
+ const { expertJobId, itemId } = downloadWorkspaceInstanceItemInput.parse(input);
1179
+ const endpoint = `/api/studio/v1/expert_jobs/${expertJobId}/workspace_instance/items/${itemId}/download`;
1180
+ const blob = await client.requestBlobAuthenticated(endpoint, {
1181
+ headers: {
1182
+ "Content-Type": "application/json"
1183
+ }
1184
+ });
1185
+ return blob;
1186
+ }
1187
+ var updateWorkspaceInstanceItemInput = z.object({
1188
+ expertJobId: apiExpertJobSchema.shape.id,
1189
+ itemId: z.string(),
1190
+ permission: apiWorkspaceItemPermissionSchema.optional(),
1191
+ path: apiBaseWorkspaceItemSchema.shape.path.optional(),
1192
+ lifecycle: apiWorkspaceItemLifecycleSchema.optional()
1193
+ });
1194
+ var updateWorkspaceInstanceItemResponseSchema = z.object({
1195
+ data: z.object({
1196
+ workspaceItem: apiWorkspaceItemSchema
1197
+ })
1198
+ });
1199
+ async function updateWorkspaceInstanceItem(input, client) {
1200
+ const { expertJobId, itemId, permission, path, lifecycle } = updateWorkspaceInstanceItemInput.parse(input);
1201
+ const endpoint = `/api/studio/v1/expert_jobs/${expertJobId}/workspace_instance/items/${itemId}`;
1202
+ const json = await client.requestAuthenticated(endpoint, {
1203
+ method: "POST",
1204
+ headers: {
1205
+ "Content-Type": "application/json"
1206
+ },
1207
+ body: JSON.stringify({ permission, path, lifecycle })
1208
+ });
1209
+ const { data } = updateWorkspaceInstanceItemResponseSchema.parse(json);
1210
+ return {
1211
+ workspaceItem: data.workspaceItem
1212
+ };
1213
+ }
1214
+ var deleteWorkspaceInstanceItemInput = z.object({
1215
+ expertJobId: apiExpertJobSchema.shape.id,
1216
+ itemId: z.string()
1217
+ });
1218
+ async function deleteWorkspaceInstanceItem(input, client) {
1219
+ const { expertJobId, itemId } = deleteWorkspaceInstanceItemInput.parse(input);
1220
+ const endpoint = `/api/studio/v1/expert_jobs/${expertJobId}/workspace_instance/items/${itemId}`;
1221
+ await client.requestAuthenticated(endpoint, {
1222
+ method: "DELETE",
1223
+ headers: {
1224
+ "Content-Type": "application/json"
1225
+ }
1226
+ });
1227
+ }
1228
+ var apiWorkspaceSchema = z.object({
1229
+ type: z.literal("workspace"),
1230
+ id: z.cuid2(),
1231
+ applicationId: z.cuid2(),
1232
+ application: apiApplicationSchema,
1233
+ createdAt: z.iso.datetime().transform((date) => new Date(date)),
1234
+ updatedAt: z.iso.datetime().transform((date) => new Date(date)),
1235
+ items: z.array(apiWorkspaceItemSchema),
1236
+ countItems: z.number(),
1237
+ envVariables: z.array(z.string()),
1238
+ envSecrets: z.array(z.string()),
1239
+ countWorkspaceInstances: z.number()
1240
+ });
1241
+
1242
+ // v1/studio/workspace.ts
1243
+ var getWorkspaceResponseSchema = z.object({
1244
+ data: z.object({
1245
+ workspace: apiWorkspaceSchema
1246
+ })
1247
+ });
1248
+ async function getWorkspace(client) {
1249
+ const endpoint = "/api/studio/v1/workspace";
1250
+ const json = await client.requestAuthenticated(endpoint, {
1251
+ headers: {
1252
+ "Content-Type": "application/json"
1253
+ }
1254
+ });
1255
+ const { data } = getWorkspaceResponseSchema.parse(json);
1256
+ return {
1257
+ workspace: data.workspace
1258
+ };
1259
+ }
1260
+ var createWorkspaceItemInput = z.discriminatedUnion("type", [
1261
+ z.object({
1262
+ type: z.literal("workspaceItemDirectory"),
1263
+ permission: apiWorkspaceItemPermissionSchema,
1264
+ path: z.string()
1265
+ }),
1266
+ z.object({
1267
+ type: z.literal("workspaceItemFile"),
1268
+ permission: apiWorkspaceItemPermissionSchema,
1269
+ path: z.string(),
1270
+ file: z.instanceof(File)
1271
+ })
1272
+ ]);
1273
+ var createWorkspaceItemResponseSchema = z.object({
1274
+ data: z.object({
1275
+ workspaceItem: apiWorkspaceItemSchema
1276
+ })
1277
+ });
1278
+ async function createWorkspaceItem(input, client) {
1279
+ const validatedInput = createWorkspaceItemInput.parse(input);
1280
+ const endpoint = "/api/studio/v1/workspace/items";
1281
+ const formData = new FormData();
1282
+ formData.append("type", validatedInput.type);
1283
+ formData.append("permission", validatedInput.permission);
1284
+ formData.append("path", validatedInput.path);
1285
+ if (validatedInput.type === "workspaceItemFile") {
1286
+ formData.append("file", validatedInput.file);
1287
+ }
1288
+ const json = await client.requestAuthenticated(endpoint, {
1289
+ method: "POST",
1290
+ body: formData
1291
+ });
1292
+ const { data } = createWorkspaceItemResponseSchema.parse(json);
1293
+ return {
1294
+ workspaceItem: data.workspaceItem
1295
+ };
1296
+ }
1297
+ var getWorkspaceItemInput = z.object({
1298
+ itemId: z.string()
1299
+ });
1300
+ var getWorkspaceItemResponseSchema = z.object({
1301
+ data: z.object({
1302
+ workspaceItem: apiWorkspaceItemSchema
1303
+ })
1304
+ });
1305
+ async function getWorkspaceItem(input, client) {
1306
+ const { itemId } = getWorkspaceItemInput.parse(input);
1307
+ const endpoint = `/api/studio/v1/workspace/items/${itemId}`;
1308
+ const json = await client.requestAuthenticated(endpoint, {
1309
+ headers: {
1310
+ "Content-Type": "application/json"
1311
+ }
1312
+ });
1313
+ const { data } = getWorkspaceItemResponseSchema.parse(json);
1314
+ return {
1315
+ workspaceItem: data.workspaceItem
1316
+ };
1317
+ }
1318
+ var getWorkspaceItemsInput = z.object({
1319
+ take: z.union([z.number(), z.string().transform((value) => Number.parseInt(value))]).optional(),
1320
+ skip: z.union([z.number(), z.string().transform((value) => Number.parseInt(value))]).optional()
1321
+ });
1322
+ var getWorkspaceItemsResponseSchema = z.object({
1323
+ data: z.object({
1324
+ workspaceItems: z.array(apiWorkspaceItemSchema)
1325
+ }),
1326
+ meta: z.object({
1327
+ total: z.number(),
1328
+ take: z.number(),
1329
+ skip: z.number()
1330
+ })
1331
+ });
1332
+ async function getWorkspaceItems(input, client) {
1333
+ const { take, skip } = getWorkspaceItemsInput.parse(input);
1334
+ const url = new URL("/api/studio/v1/workspace/items", client.baseUrl);
1335
+ if (take) url.searchParams.set("take", take.toString());
1336
+ if (skip) url.searchParams.set("skip", skip.toString());
1337
+ const endpoint = url.toString();
1338
+ const json = await client.requestAuthenticated(endpoint, {
1339
+ headers: {
1340
+ "Content-Type": "application/json"
1341
+ }
1342
+ });
1343
+ const { data, meta } = getWorkspaceItemsResponseSchema.parse(json);
1344
+ return {
1345
+ workspaceItems: data.workspaceItems,
1346
+ total: meta.total,
1347
+ take: meta.take,
1348
+ skip: meta.skip
1349
+ };
1350
+ }
1351
+ var downloadWorkspaceItemInput = z.object({
1352
+ itemId: z.string()
1353
+ });
1354
+ async function downloadWorkspaceItem(input, client) {
1355
+ const { itemId } = downloadWorkspaceItemInput.parse(input);
1356
+ const endpoint = `/api/studio/v1/workspace/items/${itemId}/download`;
1357
+ const blob = await client.requestBlobAuthenticated(endpoint, {
1358
+ headers: {
1359
+ "Content-Type": "application/json"
1360
+ }
1361
+ });
1362
+ return blob;
1363
+ }
1364
+ var updateWorkspaceItemInput = z.object({
1365
+ itemId: z.string(),
1366
+ permission: apiWorkspaceItemPermissionSchema.optional(),
1367
+ path: z.string().min(1).max(1024).optional(),
1368
+ lifecycle: apiWorkspaceItemLifecycleSchema.optional()
1369
+ });
1370
+ var updateWorkspaceItemResponseSchema = z.object({
1371
+ data: z.object({
1372
+ workspaceItem: apiWorkspaceItemSchema
1373
+ })
1374
+ });
1375
+ async function updateWorkspaceItem(input, client) {
1376
+ const { itemId, permission, path, lifecycle } = updateWorkspaceItemInput.parse(input);
1377
+ const endpoint = `/api/studio/v1/workspace/items/${itemId}`;
1378
+ const json = await client.requestAuthenticated(endpoint, {
1379
+ method: "POST",
1380
+ headers: {
1381
+ "Content-Type": "application/json"
1382
+ },
1383
+ body: JSON.stringify({ permission, path, lifecycle })
1384
+ });
1385
+ const { data } = updateWorkspaceItemResponseSchema.parse(json);
1386
+ return {
1387
+ workspaceItem: data.workspaceItem
1388
+ };
1389
+ }
1390
+ var deleteWorkspaceItemInput = z.object({
1391
+ itemId: z.string()
1392
+ });
1393
+ async function deleteWorkspaceItem(input, client) {
1394
+ const { itemId } = deleteWorkspaceItemInput.parse(input);
1395
+ const endpoint = `/api/studio/v1/workspace/items/${itemId}`;
1396
+ await client.requestAuthenticated(endpoint, {
1397
+ method: "DELETE",
1398
+ headers: {
1399
+ "Content-Type": "application/json"
1400
+ }
1401
+ });
1402
+ }
1403
+ var createWorkspaceVariableInput = z.object({
1404
+ name: z.string(),
1405
+ value: z.string()
1406
+ });
1407
+ var createWorkspaceVariableResponseSchema = z.object({
1408
+ data: z.object({
1409
+ workspace: apiWorkspaceSchema
1410
+ })
1411
+ });
1412
+ async function createWorkspaceVariable(input, client) {
1413
+ const { name, value } = createWorkspaceVariableInput.parse(input);
1414
+ const endpoint = "/api/studio/v1/workspace/variables";
1415
+ const json = await client.requestAuthenticated(endpoint, {
1416
+ method: "POST",
1417
+ headers: {
1418
+ "Content-Type": "application/json"
1419
+ },
1420
+ body: JSON.stringify({ name, value })
1421
+ });
1422
+ const { data } = createWorkspaceVariableResponseSchema.parse(json);
1423
+ return {
1424
+ workspace: data.workspace
1425
+ };
1426
+ }
1427
+ var updateWorkspaceVariableInput = z.object({
1428
+ name: z.string(),
1429
+ value: z.string()
1430
+ });
1431
+ var updateWorkspaceVariableResponseSchema = z.object({
1432
+ data: z.object({
1433
+ workspace: apiWorkspaceSchema
1434
+ })
1435
+ });
1436
+ async function updateWorkspaceVariable(input, client) {
1437
+ const { name, value } = updateWorkspaceVariableInput.parse(input);
1438
+ const endpoint = `/api/studio/v1/workspace/variables/${name}`;
1439
+ const json = await client.requestAuthenticated(endpoint, {
1440
+ method: "POST",
1441
+ headers: {
1442
+ "Content-Type": "application/json"
1443
+ },
1444
+ body: JSON.stringify({ name, value })
1445
+ });
1446
+ const { data } = updateWorkspaceVariableResponseSchema.parse(json);
1447
+ return {
1448
+ workspace: data.workspace
1449
+ };
1450
+ }
1451
+ var deleteWorkspaceVariableInput = z.object({
1452
+ name: z.string()
1453
+ });
1454
+ async function deleteWorkspaceVariable(input, client) {
1455
+ const { name } = deleteWorkspaceVariableInput.parse(input);
1456
+ const endpoint = `/api/studio/v1/workspace/variables/${name}`;
1457
+ await client.requestAuthenticated(endpoint, {
1458
+ method: "DELETE",
1459
+ headers: {
1460
+ "Content-Type": "application/json"
1461
+ }
1462
+ });
1463
+ }
1464
+ var createWorkspaceSecretInput = z.object({
1465
+ name: z.string(),
1466
+ value: z.string()
1467
+ });
1468
+ var createWorkspaceSecretResponseSchema = z.object({
1469
+ data: z.object({
1470
+ workspace: apiWorkspaceSchema
1471
+ })
1472
+ });
1473
+ async function createWorkspaceSecret(input, client) {
1474
+ const { name, value } = createWorkspaceSecretInput.parse(input);
1475
+ const endpoint = "/api/studio/v1/workspace/secrets";
1476
+ const json = await client.requestAuthenticated(endpoint, {
1477
+ method: "POST",
1478
+ headers: {
1479
+ "Content-Type": "application/json"
1480
+ },
1481
+ body: JSON.stringify({ name, value })
1482
+ });
1483
+ const { data } = createWorkspaceSecretResponseSchema.parse(json);
1484
+ return {
1485
+ workspace: data.workspace
1486
+ };
1487
+ }
1488
+ var deleteWorkspaceSecretInput = z.object({
1489
+ name: z.string()
1490
+ });
1491
+ async function deleteWorkspaceSecret(input, client) {
1492
+ const { name } = deleteWorkspaceSecretInput.parse(input);
1493
+ const endpoint = `/api/studio/v1/workspace/secrets/${name}`;
1494
+ await client.requestAuthenticated(endpoint, {
1495
+ method: "DELETE",
1496
+ headers: {
1497
+ "Content-Type": "application/json"
1498
+ }
1499
+ });
1500
+ }
1501
+
1502
+ // v1/client.ts
1503
+ var ApiV1Client = class {
1504
+ baseUrl;
1505
+ apiKey;
1506
+ constructor(config) {
1507
+ this.baseUrl = config?.baseUrl ? config.baseUrl : "https://api.perstack.ai";
1508
+ this.apiKey = config?.apiKey;
1509
+ }
1510
+ async request(endpoint, init) {
1511
+ const url = new URL(endpoint, this.baseUrl);
1512
+ const response = await fetch(url.toString(), init);
1513
+ if (!response.ok) {
1514
+ throw new Error(`Failed to request ${url.toString()}: ${response.statusText}`);
1515
+ }
1516
+ return await response.json();
1517
+ }
1518
+ async requestAuthenticated(endpoint, init) {
1519
+ if (!this.apiKey) {
1520
+ throw new Error("API key is not set");
1521
+ }
1522
+ return this.request(endpoint, {
1523
+ ...init,
1524
+ headers: {
1525
+ ...init?.headers,
1526
+ Authorization: `Bearer ${this.apiKey}`
1527
+ // Override
1528
+ }
1529
+ });
1530
+ }
1531
+ async requestBlob(endpoint, init) {
1532
+ const url = new URL(endpoint, this.baseUrl);
1533
+ const response = await fetch(url.toString(), init);
1534
+ if (!response.ok) {
1535
+ throw new Error(`Failed to request ${url.toString()}: ${response.statusText}`);
1536
+ }
1537
+ return await response.blob();
1538
+ }
1539
+ async requestBlobAuthenticated(endpoint, init) {
1540
+ if (!this.apiKey) {
1541
+ throw new Error("API key is not set");
1542
+ }
1543
+ return this.requestBlob(endpoint, {
1544
+ ...init,
1545
+ headers: {
1546
+ ...init?.headers,
1547
+ Authorization: `Bearer ${this.apiKey}`
1548
+ // Override
1549
+ }
1550
+ });
1551
+ }
1552
+ registry = {
1553
+ experts: {
1554
+ create: (input) => createRegistryExpert(input, this),
1555
+ get: (input) => getRegistryExpert(input, this),
1556
+ getMany: (input) => getRegistryExperts(input, this),
1557
+ getVersions: (input) => getRegistryExpertVersions(input, this),
1558
+ delete: (input) => deleteRegistryExpert(input, this)
1559
+ }
1560
+ };
1561
+ studio = {
1562
+ experts: {
1563
+ create: (input) => createStudioExpert(input, this),
1564
+ get: (input) => getStudioExpert(input, this),
1565
+ getMany: (input) => getStudioExperts(input, this),
1566
+ update: (input) => updateStudioExpert(input, this),
1567
+ delete: (input) => deleteStudioExpert(input, this)
1568
+ },
1569
+ expertJobs: {
1570
+ start: (input) => startExpertJob(input, this),
1571
+ continue: (input) => continueExpertJob(input, this),
1572
+ resumeFromCheckpoint: (input) => resumeExpertJobFromCheckpoint(input, this),
1573
+ get: (input) => getExpertJob(input, this),
1574
+ getMany: (input) => getExpertJobs(input, this),
1575
+ update: (input) => updateExpertJob(input, this),
1576
+ checkpoints: {
1577
+ create: (input) => createCheckpoint(input, this),
1578
+ get: (input) => getCheckpoint(input, this),
1579
+ getMany: (input) => getCheckpoints(input, this)
1580
+ },
1581
+ workspaceInstance: {
1582
+ get: (input) => getWorkspaceInstance(input, this),
1583
+ items: {
1584
+ create: (input) => createWorkspaceInstanceItem(input, this),
1585
+ get: (input) => getWorkspaceInstanceItem(input, this),
1586
+ getMany: (input) => getWorkspaceInstanceItems(input, this),
1587
+ download: (input) => downloadWorkspaceInstanceItem(input, this),
1588
+ update: (input) => updateWorkspaceInstanceItem(input, this),
1589
+ delete: (input) => deleteWorkspaceInstanceItem(input, this)
1590
+ }
1591
+ }
1592
+ },
1593
+ workspace: {
1594
+ get: () => getWorkspace(this),
1595
+ items: {
1596
+ create: (input) => createWorkspaceItem(input, this),
1597
+ get: (input) => getWorkspaceItem(input, this),
1598
+ getMany: (input) => getWorkspaceItems(input, this),
1599
+ download: (input) => downloadWorkspaceItem(input, this),
1600
+ update: (input) => updateWorkspaceItem(input, this),
1601
+ delete: (input) => deleteWorkspaceItem(input, this)
1602
+ },
1603
+ variables: {
1604
+ create: (input) => createWorkspaceVariable(input, this),
1605
+ update: (input) => updateWorkspaceVariable(input, this),
1606
+ delete: (input) => deleteWorkspaceVariable(input, this)
1607
+ },
1608
+ secrets: {
1609
+ create: (input) => createWorkspaceSecret(input, this),
1610
+ delete: (input) => deleteWorkspaceSecret(input, this)
1611
+ }
1612
+ }
1613
+ };
1614
+ };
1615
+
1616
+ export { ApiError, ApiV1Client, apiApplicationSchema, apiApplicationStatusSchema, apiBaseExpertSchema, apiBaseWorkspaceItemSchema, apiCheckpointActionAppendTextFileSchema, apiCheckpointActionAttemptCompletionSchema, apiCheckpointActionCreateDirectorySchema, apiCheckpointActionDelegateSchema, apiCheckpointActionDeleteFileSchema, apiCheckpointActionEditTextFileSchema, apiCheckpointActionErrorSchema, apiCheckpointActionGeneralToolSchema, apiCheckpointActionGetFileInfoSchema, apiCheckpointActionListDirectorySchema, apiCheckpointActionMoveFileSchema, apiCheckpointActionReadImageFileSchema, apiCheckpointActionReadPdfFileSchema, apiCheckpointActionReadTextFileSchema, apiCheckpointActionRetrySchema, apiCheckpointActionSchema, apiCheckpointActionTestUrlSchema, apiCheckpointActionThinkSchema, apiCheckpointActionTodoSchema, apiCheckpointActionWriteTextFileSchema, apiCheckpointSchema, apiCheckpointStatusSchema, apiExpertDigestSchema, apiExpertJobSchema, apiExpertJobStatusSchema, apiExpertSchema, apiInteractiveSkillSchema, apiMcpSseSkillSchema, apiMcpStdioSkillCommandSchema, apiMcpStdioSkillSchema, apiOrganizationSchema, apiOrganizationStatusSchema, apiOrganizationTypeSchema, apiRegistryExpertSchema, apiSkillNameSchema, apiSkillSchema, apiStudioExpertSchema, apiWorkspaceInstanceSchema, apiWorkspaceItemDirectorySchema, apiWorkspaceItemFileSchema, apiWorkspaceItemLifecycleSchema, apiWorkspaceItemOwnerSchema, apiWorkspaceItemPermissionSchema, apiWorkspaceItemSchema, apiWorkspaceSchema, continueExpertJob, createCheckpoint, createRegistryExpert, createStudioExpert, createWorkspaceInstanceItem, createWorkspaceItem, createWorkspaceSecret, createWorkspaceVariable, deleteRegistryExpert, deleteStudioExpert, deleteWorkspaceInstanceItem, deleteWorkspaceItem, deleteWorkspaceSecret, deleteWorkspaceVariable, downloadWorkspaceInstanceItem, downloadWorkspaceItem, getCheckpoint, getCheckpoints, getExpertJob, getExpertJobs, getRegistryExpert, getRegistryExpertVersions, getRegistryExperts, getStudioExpert, getStudioExperts, getWorkspace, getWorkspaceInstance, getWorkspaceInstanceItem, getWorkspaceInstanceItems, getWorkspaceItem, getWorkspaceItems, resumeExpertJobFromCheckpoint, startExpertJob, updateExpertJob, updateStudioExpert, updateWorkspaceInstanceItem, updateWorkspaceItem, updateWorkspaceVariable };
1617
+ //# sourceMappingURL=index.ts.js.map
1618
+ //# sourceMappingURL=index.ts.js.map