@alpic-ai/api 0.0.0-staging.2e53e5a → 0.0.0-staging.2e98566
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.d.mts +388 -44
- package/dist/index.mjs +502 -18
- package/package.json +20 -8
package/dist/index.d.mts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import * as _orpc_contract0 from "@orpc/contract";
|
|
2
|
-
import { InferContractRouterInputs, InferContractRouterOutputs } from "@orpc/contract";
|
|
3
1
|
import { z } from "zod";
|
|
2
|
+
import * as _$_orpc_contract0 from "@orpc/contract";
|
|
3
|
+
import { InferContractRouterInputs, InferContractRouterOutputs } from "@orpc/contract";
|
|
4
4
|
|
|
5
5
|
//#region src/api.contract.d.ts
|
|
6
6
|
type ApiContext = {
|
|
@@ -10,7 +10,13 @@ type ApiContext = {
|
|
|
10
10
|
awsCognitoUserSub: string | undefined;
|
|
11
11
|
};
|
|
12
12
|
};
|
|
13
|
-
declare const
|
|
13
|
+
declare const deploymentStatusSchema: z.ZodEnum<{
|
|
14
|
+
ongoing: "ongoing";
|
|
15
|
+
deployed: "deployed";
|
|
16
|
+
failed: "failed";
|
|
17
|
+
canceled: "canceled";
|
|
18
|
+
}>;
|
|
19
|
+
declare const createEnvironmentContractV1: _$_orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
14
20
|
projectId: z.ZodString;
|
|
15
21
|
name: z.ZodString;
|
|
16
22
|
sourceBranch: z.ZodString;
|
|
@@ -26,14 +32,14 @@ declare const createEnvironmentContractV1: _orpc_contract0.ContractProcedureBuil
|
|
|
26
32
|
urls: z.ZodArray<z.ZodString>;
|
|
27
33
|
createdAt: z.ZodCoercedDate<unknown>;
|
|
28
34
|
projectId: z.ZodString;
|
|
29
|
-
}, z.core.$strip>, _orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
35
|
+
}, z.core.$strip>, _$_orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
30
36
|
NOT_FOUND: {};
|
|
31
37
|
BAD_REQUEST: {};
|
|
32
38
|
}>, Record<never, never>>;
|
|
33
39
|
declare const contract: {
|
|
34
40
|
teams: {
|
|
35
41
|
list: {
|
|
36
|
-
v1: _orpc_contract0.ContractProcedureBuilderWithOutput<_orpc_contract0.Schema<unknown, unknown>, z.ZodArray<z.ZodObject<{
|
|
42
|
+
v1: _$_orpc_contract0.ContractProcedureBuilderWithOutput<_$_orpc_contract0.Schema<unknown, unknown>, z.ZodArray<z.ZodObject<{
|
|
37
43
|
id: z.ZodString;
|
|
38
44
|
name: z.ZodString;
|
|
39
45
|
createdAt: z.ZodCoercedDate<unknown>;
|
|
@@ -43,7 +49,7 @@ declare const contract: {
|
|
|
43
49
|
};
|
|
44
50
|
analytics: {
|
|
45
51
|
get: {
|
|
46
|
-
v1: _orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
52
|
+
v1: _$_orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
47
53
|
projectId: z.ZodString;
|
|
48
54
|
startTimestamp: z.ZodCoercedNumber<unknown>;
|
|
49
55
|
endTimestamp: z.ZodCoercedNumber<unknown>;
|
|
@@ -86,7 +92,7 @@ declare const contract: {
|
|
|
86
92
|
categories: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
87
93
|
}, z.core.$strip>>;
|
|
88
94
|
}, z.core.$strip>;
|
|
89
|
-
}, z.core.$strip>, _orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
95
|
+
}, z.core.$strip>, _$_orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
90
96
|
NOT_FOUND: {};
|
|
91
97
|
BAD_REQUEST: {};
|
|
92
98
|
}>, Record<never, never>>;
|
|
@@ -94,8 +100,15 @@ declare const contract: {
|
|
|
94
100
|
};
|
|
95
101
|
deployments: {
|
|
96
102
|
list: {
|
|
97
|
-
v1: _orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
103
|
+
v1: _$_orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
98
104
|
projectId: z.ZodString;
|
|
105
|
+
status: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
106
|
+
ongoing: "ongoing";
|
|
107
|
+
deployed: "deployed";
|
|
108
|
+
failed: "failed";
|
|
109
|
+
canceled: "canceled";
|
|
110
|
+
}>>>;
|
|
111
|
+
environmentId: z.ZodOptional<z.ZodString>;
|
|
99
112
|
}, z.core.$strip>, z.ZodArray<z.ZodObject<{
|
|
100
113
|
id: z.ZodString;
|
|
101
114
|
status: z.ZodEnum<{
|
|
@@ -111,14 +124,16 @@ declare const contract: {
|
|
|
111
124
|
authorAvatarUrl: z.ZodNullable<z.ZodString>;
|
|
112
125
|
startedAt: z.ZodNullable<z.ZodCoercedDate<unknown>>;
|
|
113
126
|
completedAt: z.ZodNullable<z.ZodCoercedDate<unknown>>;
|
|
114
|
-
isCurrent: z.ZodBoolean;
|
|
115
127
|
environmentId: z.ZodString;
|
|
116
|
-
|
|
128
|
+
environmentName: z.ZodString;
|
|
129
|
+
isCurrent: z.ZodBoolean;
|
|
130
|
+
deploymentPageUrl: z.ZodNullable<z.ZodURL>;
|
|
131
|
+
}, z.core.$strip>>, _$_orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
117
132
|
NOT_FOUND: {};
|
|
118
133
|
}>, Record<never, never>>;
|
|
119
134
|
};
|
|
120
135
|
get: {
|
|
121
|
-
v1: _orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
136
|
+
v1: _$_orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
122
137
|
deploymentId: z.ZodString;
|
|
123
138
|
}, z.core.$strip>, z.ZodObject<{
|
|
124
139
|
id: z.ZodString;
|
|
@@ -135,22 +150,25 @@ declare const contract: {
|
|
|
135
150
|
authorAvatarUrl: z.ZodNullable<z.ZodString>;
|
|
136
151
|
startedAt: z.ZodNullable<z.ZodCoercedDate<unknown>>;
|
|
137
152
|
completedAt: z.ZodNullable<z.ZodCoercedDate<unknown>>;
|
|
153
|
+
environmentId: z.ZodString;
|
|
154
|
+
environmentName: z.ZodString;
|
|
155
|
+
isCurrent: z.ZodBoolean;
|
|
138
156
|
deploymentPageUrl: z.ZodNullable<z.ZodURL>;
|
|
139
|
-
}, z.core.$strip>, _orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
157
|
+
}, z.core.$strip>, _$_orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
140
158
|
NOT_FOUND: {};
|
|
141
159
|
}>, Record<never, never>>;
|
|
142
160
|
};
|
|
143
161
|
uploadArtifact: {
|
|
144
|
-
v1: _orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodOptional<z.ZodObject<{
|
|
162
|
+
v1: _$_orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodOptional<z.ZodObject<{
|
|
145
163
|
teamId: z.ZodOptional<z.ZodString>;
|
|
146
164
|
}, z.core.$strip>>, z.ZodObject<{
|
|
147
|
-
uploadUrl: z.
|
|
165
|
+
uploadUrl: z.ZodURL;
|
|
148
166
|
token: z.ZodString;
|
|
149
167
|
expiresAt: z.ZodCoercedDate<unknown>;
|
|
150
168
|
}, z.core.$strip>, Record<never, never>, Record<never, never>>;
|
|
151
169
|
};
|
|
152
170
|
getLogs: {
|
|
153
|
-
v1: _orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
171
|
+
v1: _$_orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
154
172
|
deploymentId: z.ZodString;
|
|
155
173
|
}, z.core.$strip>, z.ZodObject<{
|
|
156
174
|
logs: z.ZodArray<z.ZodObject<{
|
|
@@ -158,14 +176,14 @@ declare const contract: {
|
|
|
158
176
|
content: z.ZodOptional<z.ZodString>;
|
|
159
177
|
}, z.core.$strip>>;
|
|
160
178
|
hasMoreLogs: z.ZodBoolean;
|
|
161
|
-
}, z.core.$strip>, _orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
179
|
+
}, z.core.$strip>, _$_orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
162
180
|
NOT_FOUND: {};
|
|
163
181
|
}>, Record<never, never>>;
|
|
164
182
|
};
|
|
165
183
|
};
|
|
166
184
|
environments: {
|
|
167
185
|
create: {
|
|
168
|
-
v1: _orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
186
|
+
v1: _$_orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
169
187
|
projectId: z.ZodString;
|
|
170
188
|
name: z.ZodString;
|
|
171
189
|
sourceBranch: z.ZodString;
|
|
@@ -181,13 +199,13 @@ declare const contract: {
|
|
|
181
199
|
urls: z.ZodArray<z.ZodString>;
|
|
182
200
|
createdAt: z.ZodCoercedDate<unknown>;
|
|
183
201
|
projectId: z.ZodString;
|
|
184
|
-
}, z.core.$strip>, _orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
202
|
+
}, z.core.$strip>, _$_orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
185
203
|
NOT_FOUND: {};
|
|
186
204
|
BAD_REQUEST: {};
|
|
187
205
|
}>, Record<never, never>>;
|
|
188
206
|
};
|
|
189
207
|
get: {
|
|
190
|
-
v1: _orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
208
|
+
v1: _$_orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
191
209
|
environmentId: z.ZodString;
|
|
192
210
|
}, z.core.$strip>, z.ZodObject<{
|
|
193
211
|
id: z.ZodString;
|
|
@@ -197,12 +215,12 @@ declare const contract: {
|
|
|
197
215
|
domains: z.ZodArray<z.ZodURL>;
|
|
198
216
|
createdAt: z.ZodCoercedDate<unknown>;
|
|
199
217
|
projectId: z.ZodString;
|
|
200
|
-
}, z.core.$strip>, _orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
218
|
+
}, z.core.$strip>, _$_orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
201
219
|
NOT_FOUND: {};
|
|
202
220
|
}>, Record<never, never>>;
|
|
203
221
|
};
|
|
204
222
|
deploy: {
|
|
205
|
-
v1: _orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
223
|
+
v1: _$_orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
206
224
|
environmentId: z.ZodString;
|
|
207
225
|
token: z.ZodOptional<z.ZodString>;
|
|
208
226
|
}, z.core.$strip>, z.ZodObject<{
|
|
@@ -220,14 +238,17 @@ declare const contract: {
|
|
|
220
238
|
authorAvatarUrl: z.ZodNullable<z.ZodString>;
|
|
221
239
|
startedAt: z.ZodNullable<z.ZodCoercedDate<unknown>>;
|
|
222
240
|
completedAt: z.ZodNullable<z.ZodCoercedDate<unknown>>;
|
|
241
|
+
environmentId: z.ZodString;
|
|
242
|
+
environmentName: z.ZodString;
|
|
243
|
+
isCurrent: z.ZodBoolean;
|
|
223
244
|
deploymentPageUrl: z.ZodNullable<z.ZodURL>;
|
|
224
|
-
}, z.core.$strip>, _orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
245
|
+
}, z.core.$strip>, _$_orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
225
246
|
NOT_FOUND: {};
|
|
226
247
|
BAD_REQUEST: {};
|
|
227
248
|
}>, Record<never, never>>;
|
|
228
249
|
};
|
|
229
250
|
getLogs: {
|
|
230
|
-
v1: _orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
251
|
+
v1: _$_orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
231
252
|
environmentId: z.ZodString;
|
|
232
253
|
since: z.ZodOptional<z.ZodString>;
|
|
233
254
|
until: z.ZodOptional<z.ZodString>;
|
|
@@ -257,7 +278,39 @@ declare const contract: {
|
|
|
257
278
|
durationInMs: z.ZodOptional<z.ZodNumber>;
|
|
258
279
|
}, z.core.$strip>>;
|
|
259
280
|
nextToken: z.ZodNullable<z.ZodString>;
|
|
260
|
-
}, z.core.$strip>, _orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
281
|
+
}, z.core.$strip>, _$_orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
282
|
+
NOT_FOUND: {};
|
|
283
|
+
BAD_REQUEST: {};
|
|
284
|
+
}>, Record<never, never>>;
|
|
285
|
+
};
|
|
286
|
+
getLatestLogs: {
|
|
287
|
+
v1: _$_orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
288
|
+
environmentId: z.ZodString;
|
|
289
|
+
limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
290
|
+
level: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
291
|
+
INFO: "INFO";
|
|
292
|
+
ERROR: "ERROR";
|
|
293
|
+
WARNING: "WARNING";
|
|
294
|
+
DEBUG: "DEBUG";
|
|
295
|
+
}>>>;
|
|
296
|
+
search: z.ZodOptional<z.ZodString>;
|
|
297
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
298
|
+
logs: z.ZodArray<z.ZodObject<{
|
|
299
|
+
timestamp: z.ZodCoercedDate<unknown>;
|
|
300
|
+
type: z.ZodEnum<{
|
|
301
|
+
INFO: "INFO";
|
|
302
|
+
ERROR: "ERROR";
|
|
303
|
+
WARNING: "WARNING";
|
|
304
|
+
DEBUG: "DEBUG";
|
|
305
|
+
START: "START";
|
|
306
|
+
END: "END";
|
|
307
|
+
}>;
|
|
308
|
+
requestId: z.ZodString;
|
|
309
|
+
content: z.ZodOptional<z.ZodString>;
|
|
310
|
+
method: z.ZodOptional<z.ZodString>;
|
|
311
|
+
durationInMs: z.ZodOptional<z.ZodNumber>;
|
|
312
|
+
}, z.core.$strip>>;
|
|
313
|
+
}, z.core.$strip>, _$_orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
261
314
|
NOT_FOUND: {};
|
|
262
315
|
BAD_REQUEST: {};
|
|
263
316
|
}>, Record<never, never>>;
|
|
@@ -265,7 +318,7 @@ declare const contract: {
|
|
|
265
318
|
};
|
|
266
319
|
environmentVariables: {
|
|
267
320
|
list: {
|
|
268
|
-
v1: _orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
321
|
+
v1: _$_orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
269
322
|
environmentId: z.ZodString;
|
|
270
323
|
}, z.core.$strip>, z.ZodArray<z.ZodObject<{
|
|
271
324
|
id: z.ZodString;
|
|
@@ -273,12 +326,12 @@ declare const contract: {
|
|
|
273
326
|
value: z.ZodString;
|
|
274
327
|
isSecret: z.ZodBoolean;
|
|
275
328
|
createdAt: z.ZodCoercedDate<unknown>;
|
|
276
|
-
}, z.core.$strip>>, _orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
329
|
+
}, z.core.$strip>>, _$_orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
277
330
|
NOT_FOUND: {};
|
|
278
331
|
}>, Record<never, never>>;
|
|
279
332
|
};
|
|
280
333
|
create: {
|
|
281
|
-
v1: _orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
334
|
+
v1: _$_orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
282
335
|
environmentId: z.ZodString;
|
|
283
336
|
environmentVariables: z.ZodArray<z.ZodObject<{
|
|
284
337
|
key: z.ZodString;
|
|
@@ -287,37 +340,37 @@ declare const contract: {
|
|
|
287
340
|
}, z.core.$strip>>;
|
|
288
341
|
}, z.core.$strip>, z.ZodObject<{
|
|
289
342
|
success: z.ZodLiteral<true>;
|
|
290
|
-
}, z.core.$strip>, _orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
343
|
+
}, z.core.$strip>, _$_orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
291
344
|
NOT_FOUND: {};
|
|
292
345
|
BAD_REQUEST: {};
|
|
293
346
|
}>, Record<never, never>>;
|
|
294
347
|
};
|
|
295
348
|
update: {
|
|
296
|
-
v1: _orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
349
|
+
v1: _$_orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
297
350
|
environmentVariableId: z.ZodString;
|
|
298
351
|
key: z.ZodString;
|
|
299
352
|
value: z.ZodOptional<z.ZodString>;
|
|
300
|
-
isSecret: z.ZodDefault<z.ZodBoolean
|
|
353
|
+
isSecret: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
|
|
301
354
|
}, z.core.$strip>, z.ZodObject<{
|
|
302
355
|
success: z.ZodLiteral<true>;
|
|
303
|
-
}, z.core.$strip>, _orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
356
|
+
}, z.core.$strip>, _$_orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
304
357
|
NOT_FOUND: {};
|
|
305
358
|
BAD_REQUEST: {};
|
|
306
359
|
}>, Record<never, never>>;
|
|
307
360
|
};
|
|
308
361
|
delete: {
|
|
309
|
-
v1: _orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
362
|
+
v1: _$_orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
310
363
|
environmentVariableId: z.ZodString;
|
|
311
364
|
}, z.core.$strip>, z.ZodObject<{
|
|
312
365
|
success: z.ZodLiteral<true>;
|
|
313
|
-
}, z.core.$strip>, _orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
366
|
+
}, z.core.$strip>, _$_orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
314
367
|
NOT_FOUND: {};
|
|
315
368
|
}>, Record<never, never>>;
|
|
316
369
|
};
|
|
317
370
|
};
|
|
318
371
|
projects: {
|
|
319
372
|
update: {
|
|
320
|
-
v1: _orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
373
|
+
v1: _$_orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
321
374
|
projectId: z.ZodString;
|
|
322
375
|
name: z.ZodOptional<z.ZodString>;
|
|
323
376
|
sourceRepository: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
@@ -389,13 +442,13 @@ declare const contract: {
|
|
|
389
442
|
completedAt: z.ZodNullable<z.ZodCoercedDate<unknown>>;
|
|
390
443
|
}, z.core.$strip>>;
|
|
391
444
|
}, z.core.$strip>>;
|
|
392
|
-
}, z.core.$strip>, _orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
445
|
+
}, z.core.$strip>, _$_orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
393
446
|
NOT_FOUND: {};
|
|
394
447
|
BAD_REQUEST: {};
|
|
395
448
|
}>, Record<never, never>>;
|
|
396
449
|
};
|
|
397
450
|
get: {
|
|
398
|
-
v1: _orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
451
|
+
v1: _$_orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
399
452
|
projectId: z.ZodString;
|
|
400
453
|
}, z.core.$strip>, z.ZodObject<{
|
|
401
454
|
id: z.ZodString;
|
|
@@ -465,12 +518,12 @@ declare const contract: {
|
|
|
465
518
|
completedAt: z.ZodNullable<z.ZodCoercedDate<unknown>>;
|
|
466
519
|
}, z.core.$strip>>;
|
|
467
520
|
}, z.core.$strip>>;
|
|
468
|
-
}, z.core.$strip>, _orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
521
|
+
}, z.core.$strip>, _$_orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
469
522
|
NOT_FOUND: {};
|
|
470
523
|
}>, Record<never, never>>;
|
|
471
524
|
};
|
|
472
525
|
list: {
|
|
473
|
-
v1: _orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodOptional<z.ZodObject<{
|
|
526
|
+
v1: _$_orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodOptional<z.ZodObject<{
|
|
474
527
|
teamId: z.ZodOptional<z.ZodString>;
|
|
475
528
|
}, z.core.$strip>>, z.ZodArray<z.ZodObject<{
|
|
476
529
|
id: z.ZodString;
|
|
@@ -543,7 +596,7 @@ declare const contract: {
|
|
|
543
596
|
}, z.core.$strip>>, Record<never, never>, Record<never, never>>;
|
|
544
597
|
};
|
|
545
598
|
create: {
|
|
546
|
-
v1: _orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
599
|
+
v1: _$_orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
547
600
|
teamId: z.ZodOptional<z.ZodString>;
|
|
548
601
|
name: z.ZodString;
|
|
549
602
|
sourceRepository: z.ZodOptional<z.ZodString>;
|
|
@@ -601,34 +654,287 @@ declare const contract: {
|
|
|
601
654
|
installCommand: z.ZodNullable<z.ZodString>;
|
|
602
655
|
startCommand: z.ZodNullable<z.ZodString>;
|
|
603
656
|
createdAt: z.ZodCoercedDate<unknown>;
|
|
604
|
-
}, z.core.$strip>, _orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
657
|
+
}, z.core.$strip>, _$_orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
605
658
|
NOT_FOUND: {};
|
|
606
659
|
BAD_REQUEST: {};
|
|
607
660
|
}>, Record<never, never>>;
|
|
608
661
|
};
|
|
609
662
|
delete: {
|
|
610
|
-
v1: _orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
663
|
+
v1: _$_orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
611
664
|
projectId: z.ZodString;
|
|
612
665
|
}, z.core.$strip>, z.ZodObject<{
|
|
613
666
|
success: z.ZodLiteral<true>;
|
|
614
|
-
}, z.core.$strip>, _orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
667
|
+
}, z.core.$strip>, _$_orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
615
668
|
NOT_FOUND: {};
|
|
616
669
|
}>, Record<never, never>>;
|
|
617
670
|
};
|
|
618
671
|
};
|
|
672
|
+
playground: {
|
|
673
|
+
get: {
|
|
674
|
+
v1: _$_orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
675
|
+
environmentId: z.ZodString;
|
|
676
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
677
|
+
isPlaygroundEnabled: z.ZodBoolean;
|
|
678
|
+
serverMetadata: z.ZodNullable<z.ZodObject<{
|
|
679
|
+
name: z.ZodString;
|
|
680
|
+
description: z.ZodString;
|
|
681
|
+
headers: z.ZodArray<z.ZodObject<{
|
|
682
|
+
name: z.ZodString;
|
|
683
|
+
description: z.ZodString;
|
|
684
|
+
isRequired: z.ZodBoolean;
|
|
685
|
+
isSecret: z.ZodBoolean;
|
|
686
|
+
}, z.core.$strip>>;
|
|
687
|
+
examplePrompts: z.ZodArray<z.ZodObject<{
|
|
688
|
+
title: z.ZodString;
|
|
689
|
+
prompt: z.ZodString;
|
|
690
|
+
}, z.core.$strip>>;
|
|
691
|
+
}, z.core.$strip>>;
|
|
692
|
+
}, z.core.$strip>, _$_orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
693
|
+
NOT_FOUND: {};
|
|
694
|
+
}>, Record<never, never>>;
|
|
695
|
+
};
|
|
696
|
+
upsert: {
|
|
697
|
+
v1: _$_orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
698
|
+
environmentId: z.ZodString;
|
|
699
|
+
isPlaygroundEnabled: z.ZodOptional<z.ZodBoolean>;
|
|
700
|
+
name: z.ZodOptional<z.ZodString>;
|
|
701
|
+
description: z.ZodOptional<z.ZodString>;
|
|
702
|
+
headers: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
703
|
+
name: z.ZodString;
|
|
704
|
+
description: z.ZodString;
|
|
705
|
+
isRequired: z.ZodDefault<z.ZodBoolean>;
|
|
706
|
+
isSecret: z.ZodDefault<z.ZodBoolean>;
|
|
707
|
+
}, z.core.$strip>>>;
|
|
708
|
+
examplePrompts: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
709
|
+
title: z.ZodString;
|
|
710
|
+
prompt: z.ZodString;
|
|
711
|
+
}, z.core.$strip>>>;
|
|
712
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
713
|
+
isPlaygroundEnabled: z.ZodBoolean;
|
|
714
|
+
serverMetadata: z.ZodNullable<z.ZodObject<{
|
|
715
|
+
name: z.ZodString;
|
|
716
|
+
description: z.ZodString;
|
|
717
|
+
headers: z.ZodArray<z.ZodObject<{
|
|
718
|
+
name: z.ZodString;
|
|
719
|
+
description: z.ZodString;
|
|
720
|
+
isRequired: z.ZodBoolean;
|
|
721
|
+
isSecret: z.ZodBoolean;
|
|
722
|
+
}, z.core.$strip>>;
|
|
723
|
+
examplePrompts: z.ZodArray<z.ZodObject<{
|
|
724
|
+
title: z.ZodString;
|
|
725
|
+
prompt: z.ZodString;
|
|
726
|
+
}, z.core.$strip>>;
|
|
727
|
+
}, z.core.$strip>>;
|
|
728
|
+
}, z.core.$strip>, _$_orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
729
|
+
NOT_FOUND: {};
|
|
730
|
+
BAD_REQUEST: {};
|
|
731
|
+
}>, Record<never, never>>;
|
|
732
|
+
};
|
|
733
|
+
};
|
|
619
734
|
tunnels: {
|
|
620
735
|
getTicket: {
|
|
621
|
-
v1: _orpc_contract0.ContractProcedureBuilderWithOutput<_orpc_contract0.Schema<unknown, unknown>, z.ZodObject<{
|
|
736
|
+
v1: _$_orpc_contract0.ContractProcedureBuilderWithOutput<_$_orpc_contract0.Schema<unknown, unknown>, z.ZodObject<{
|
|
622
737
|
subdomain: z.ZodString;
|
|
623
738
|
ticket: z.ZodString;
|
|
624
739
|
tunnelHost: z.ZodString;
|
|
625
740
|
}, z.core.$strip>, Record<never, never>, Record<never, never>>;
|
|
626
741
|
};
|
|
627
742
|
};
|
|
743
|
+
distribution: {
|
|
744
|
+
publish: {
|
|
745
|
+
v1: _$_orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
746
|
+
projectId: z.ZodString;
|
|
747
|
+
domain: z.ZodString;
|
|
748
|
+
title: z.ZodString;
|
|
749
|
+
description: z.ZodString;
|
|
750
|
+
websiteUrl: z.ZodOptional<z.ZodURL>;
|
|
751
|
+
iconSrc: z.ZodOptional<z.ZodURL>;
|
|
752
|
+
dryRun: z.ZodOptional<z.ZodBoolean>;
|
|
753
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
754
|
+
serverFields: z.ZodObject<{
|
|
755
|
+
$schema: z.ZodString;
|
|
756
|
+
name: z.ZodString;
|
|
757
|
+
description: z.ZodString;
|
|
758
|
+
version: z.ZodOptional<z.ZodString>;
|
|
759
|
+
title: z.ZodOptional<z.ZodString>;
|
|
760
|
+
websiteUrl: z.ZodOptional<z.ZodURL>;
|
|
761
|
+
icons: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
762
|
+
src: z.ZodURL;
|
|
763
|
+
mimeType: z.ZodOptional<z.ZodString>;
|
|
764
|
+
sizes: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
765
|
+
}, z.core.$strip>>>;
|
|
766
|
+
remotes: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
767
|
+
type: z.ZodString;
|
|
768
|
+
url: z.ZodOptional<z.ZodURL>;
|
|
769
|
+
headers: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
770
|
+
name: z.ZodString;
|
|
771
|
+
description: z.ZodString;
|
|
772
|
+
isRequired: z.ZodOptional<z.ZodBoolean>;
|
|
773
|
+
isSecret: z.ZodOptional<z.ZodBoolean>;
|
|
774
|
+
}, z.core.$strip>>>;
|
|
775
|
+
}, z.core.$strip>>>;
|
|
776
|
+
}, z.core.$strip>;
|
|
777
|
+
}, z.core.$strip>, _$_orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
778
|
+
NOT_FOUND: {};
|
|
779
|
+
BAD_REQUEST: {};
|
|
780
|
+
}>, Record<never, never>>;
|
|
781
|
+
};
|
|
782
|
+
get: {
|
|
783
|
+
v1: _$_orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
784
|
+
projectId: z.ZodString;
|
|
785
|
+
domain: z.ZodString;
|
|
786
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
787
|
+
serverFields: z.ZodObject<{
|
|
788
|
+
$schema: z.ZodString;
|
|
789
|
+
name: z.ZodString;
|
|
790
|
+
description: z.ZodString;
|
|
791
|
+
version: z.ZodOptional<z.ZodString>;
|
|
792
|
+
title: z.ZodOptional<z.ZodString>;
|
|
793
|
+
websiteUrl: z.ZodOptional<z.ZodURL>;
|
|
794
|
+
icons: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
795
|
+
src: z.ZodURL;
|
|
796
|
+
mimeType: z.ZodOptional<z.ZodString>;
|
|
797
|
+
sizes: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
798
|
+
}, z.core.$strip>>>;
|
|
799
|
+
remotes: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
800
|
+
type: z.ZodString;
|
|
801
|
+
url: z.ZodOptional<z.ZodURL>;
|
|
802
|
+
headers: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
803
|
+
name: z.ZodString;
|
|
804
|
+
description: z.ZodString;
|
|
805
|
+
isRequired: z.ZodOptional<z.ZodBoolean>;
|
|
806
|
+
isSecret: z.ZodOptional<z.ZodBoolean>;
|
|
807
|
+
}, z.core.$strip>>>;
|
|
808
|
+
}, z.core.$strip>>>;
|
|
809
|
+
}, z.core.$strip>;
|
|
810
|
+
}, z.core.$strip>, _$_orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
811
|
+
NOT_FOUND: {};
|
|
812
|
+
BAD_REQUEST: {};
|
|
813
|
+
}>, Record<never, never>>;
|
|
814
|
+
};
|
|
815
|
+
};
|
|
816
|
+
beacon: {
|
|
817
|
+
create: {
|
|
818
|
+
v1: _$_orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
819
|
+
targetUrl: z.ZodURL;
|
|
820
|
+
teamId: z.ZodOptional<z.ZodString>;
|
|
821
|
+
projectId: z.ZodOptional<z.ZodString>;
|
|
822
|
+
excludeCategories: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
823
|
+
connectivity: "connectivity";
|
|
824
|
+
"tool-metadata": "tool-metadata";
|
|
825
|
+
"resource-metadata": "resource-metadata";
|
|
826
|
+
performance: "performance";
|
|
827
|
+
e2e: "e2e";
|
|
828
|
+
}>>>;
|
|
829
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
830
|
+
id: z.ZodString;
|
|
831
|
+
}, z.core.$strip>, _$_orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
832
|
+
NOT_FOUND: {};
|
|
833
|
+
BAD_REQUEST: {};
|
|
834
|
+
}>, Record<never, never>>;
|
|
835
|
+
};
|
|
836
|
+
get: {
|
|
837
|
+
v1: _$_orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
838
|
+
auditId: z.ZodString;
|
|
839
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
840
|
+
id: z.ZodString;
|
|
841
|
+
targetUrl: z.ZodString;
|
|
842
|
+
status: z.ZodEnum<{
|
|
843
|
+
failed: "failed";
|
|
844
|
+
pending: "pending";
|
|
845
|
+
partial: "partial";
|
|
846
|
+
completed: "completed";
|
|
847
|
+
}>;
|
|
848
|
+
durationMs: z.ZodNullable<z.ZodNumber>;
|
|
849
|
+
createdAt: z.ZodCoercedDate<unknown>;
|
|
850
|
+
report: z.ZodNullable<z.ZodObject<{
|
|
851
|
+
schemaVersion: z.ZodString;
|
|
852
|
+
auditId: z.ZodString;
|
|
853
|
+
targetUrl: z.ZodString;
|
|
854
|
+
startedAt: z.ZodString;
|
|
855
|
+
completedAt: z.ZodString;
|
|
856
|
+
durationMs: z.ZodNumber;
|
|
857
|
+
results: z.ZodArray<z.ZodObject<{
|
|
858
|
+
checkId: z.ZodString;
|
|
859
|
+
checkName: z.ZodString;
|
|
860
|
+
description: z.ZodString;
|
|
861
|
+
status: z.ZodEnum<{
|
|
862
|
+
pending: "pending";
|
|
863
|
+
pass: "pass";
|
|
864
|
+
fail: "fail";
|
|
865
|
+
skip: "skip";
|
|
866
|
+
}>;
|
|
867
|
+
message: z.ZodString;
|
|
868
|
+
skipReason: z.ZodOptional<z.ZodString>;
|
|
869
|
+
severity: z.ZodEnum<{
|
|
870
|
+
error: "error";
|
|
871
|
+
warning: "warning";
|
|
872
|
+
info: "info";
|
|
873
|
+
}>;
|
|
874
|
+
category: z.ZodEnum<{
|
|
875
|
+
connectivity: "connectivity";
|
|
876
|
+
"tool-metadata": "tool-metadata";
|
|
877
|
+
"resource-metadata": "resource-metadata";
|
|
878
|
+
performance: "performance";
|
|
879
|
+
e2e: "e2e";
|
|
880
|
+
}>;
|
|
881
|
+
scope: z.ZodEnum<{
|
|
882
|
+
server: "server";
|
|
883
|
+
view: "view";
|
|
884
|
+
}>;
|
|
885
|
+
platforms: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodEnum<{
|
|
886
|
+
chatgpt: "chatgpt";
|
|
887
|
+
claudeai: "claudeai";
|
|
888
|
+
}>>>>;
|
|
889
|
+
durationMs: z.ZodNumber;
|
|
890
|
+
details: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
891
|
+
label: z.ZodString;
|
|
892
|
+
value: z.ZodOptional<z.ZodString>;
|
|
893
|
+
}, z.core.$strip>>>;
|
|
894
|
+
hint: z.ZodOptional<z.ZodObject<{
|
|
895
|
+
text: z.ZodString;
|
|
896
|
+
}, z.core.$strip>>;
|
|
897
|
+
}, z.core.$strip>>;
|
|
898
|
+
requiresAuth: z.ZodBoolean;
|
|
899
|
+
hasViewSupport: z.ZodBoolean;
|
|
900
|
+
viewPlatforms: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodEnum<{
|
|
901
|
+
chatgpt: "chatgpt";
|
|
902
|
+
claudeai: "claudeai";
|
|
903
|
+
}>>>>;
|
|
904
|
+
isReadyForPlatform: z.ZodRecord<z.ZodEnum<{
|
|
905
|
+
chatgpt: "chatgpt";
|
|
906
|
+
claudeai: "claudeai";
|
|
907
|
+
}>, z.ZodBoolean>;
|
|
908
|
+
widgetScreenshotKeys: z.ZodObject<{
|
|
909
|
+
chatgpt: z.ZodOptional<z.ZodString>;
|
|
910
|
+
claudeai: z.ZodOptional<z.ZodString>;
|
|
911
|
+
}, z.core.$strip>;
|
|
912
|
+
widgetScreenshots: z.ZodObject<{
|
|
913
|
+
chatgpt: z.ZodOptional<z.ZodObject<{
|
|
914
|
+
url: z.ZodString;
|
|
915
|
+
}, z.core.$strip>>;
|
|
916
|
+
claudeai: z.ZodOptional<z.ZodObject<{
|
|
917
|
+
url: z.ZodString;
|
|
918
|
+
}, z.core.$strip>>;
|
|
919
|
+
}, z.core.$strip>;
|
|
920
|
+
}, z.core.$strip>>;
|
|
921
|
+
}, z.core.$strip>, _$_orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
922
|
+
NOT_FOUND: {};
|
|
923
|
+
}>, Record<never, never>>;
|
|
924
|
+
};
|
|
925
|
+
};
|
|
628
926
|
};
|
|
629
927
|
type RouterInput = InferContractRouterInputs<typeof contract>;
|
|
630
928
|
type RouterOutput = InferContractRouterOutputs<typeof contract>;
|
|
631
929
|
//#endregion
|
|
930
|
+
//#region ../domains/src/platforms/schemas.d.ts
|
|
931
|
+
declare const platformSchema: z.ZodEnum<{
|
|
932
|
+
chatgpt: "chatgpt";
|
|
933
|
+
claudeai: "claudeai";
|
|
934
|
+
}>;
|
|
935
|
+
type Platform = z.infer<typeof platformSchema>;
|
|
936
|
+
declare const PLATFORM_LABELS: Record<Platform, string>;
|
|
937
|
+
//#endregion
|
|
632
938
|
//#region src/schemas.d.ts
|
|
633
939
|
declare const environmentVariableSchema: z.ZodObject<{
|
|
634
940
|
key: z.ZodString;
|
|
@@ -640,6 +946,11 @@ declare const environmentVariablesSchema: z.ZodArray<z.ZodObject<{
|
|
|
640
946
|
value: z.ZodString;
|
|
641
947
|
isSecret: z.ZodDefault<z.ZodBoolean>;
|
|
642
948
|
}, z.core.$strip>>;
|
|
949
|
+
declare const updateEnvironmentVariableSchema: z.ZodObject<{
|
|
950
|
+
key: z.ZodString;
|
|
951
|
+
value: z.ZodOptional<z.ZodString>;
|
|
952
|
+
isSecret: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
|
|
953
|
+
}, z.core.$strip>;
|
|
643
954
|
declare const buildSettingsSchema: z.ZodObject<{
|
|
644
955
|
installCommand: z.ZodOptional<z.ZodString>;
|
|
645
956
|
buildCommand: z.ZodOptional<z.ZodString>;
|
|
@@ -659,5 +970,38 @@ declare const transportSchema: z.ZodEnum<{
|
|
|
659
970
|
streamablehttp: "streamablehttp";
|
|
660
971
|
}>;
|
|
661
972
|
type Transport = z.infer<typeof transportSchema>;
|
|
973
|
+
declare const playgroundHeaderSchema: z.ZodObject<{
|
|
974
|
+
name: z.ZodString;
|
|
975
|
+
description: z.ZodString;
|
|
976
|
+
isRequired: z.ZodDefault<z.ZodBoolean>;
|
|
977
|
+
isSecret: z.ZodDefault<z.ZodBoolean>;
|
|
978
|
+
}, z.core.$strip>;
|
|
979
|
+
declare const playgroundExamplePromptSchema: z.ZodObject<{
|
|
980
|
+
title: z.ZodString;
|
|
981
|
+
prompt: z.ZodString;
|
|
982
|
+
}, z.core.$strip>;
|
|
983
|
+
declare const serverFieldsSchema: z.ZodObject<{
|
|
984
|
+
$schema: z.ZodString;
|
|
985
|
+
name: z.ZodString;
|
|
986
|
+
description: z.ZodString;
|
|
987
|
+
version: z.ZodOptional<z.ZodString>;
|
|
988
|
+
title: z.ZodOptional<z.ZodString>;
|
|
989
|
+
websiteUrl: z.ZodOptional<z.ZodURL>;
|
|
990
|
+
icons: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
991
|
+
src: z.ZodURL;
|
|
992
|
+
mimeType: z.ZodOptional<z.ZodString>;
|
|
993
|
+
sizes: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
994
|
+
}, z.core.$strip>>>;
|
|
995
|
+
remotes: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
996
|
+
type: z.ZodString;
|
|
997
|
+
url: z.ZodOptional<z.ZodURL>;
|
|
998
|
+
headers: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
999
|
+
name: z.ZodString;
|
|
1000
|
+
description: z.ZodString;
|
|
1001
|
+
isRequired: z.ZodOptional<z.ZodBoolean>;
|
|
1002
|
+
isSecret: z.ZodOptional<z.ZodBoolean>;
|
|
1003
|
+
}, z.core.$strip>>>;
|
|
1004
|
+
}, z.core.$strip>>>;
|
|
1005
|
+
}, z.core.$strip>;
|
|
662
1006
|
//#endregion
|
|
663
|
-
export { ApiContext, RouterInput, RouterOutput, Runtime, Transport, buildSettingsSchema, contract, createEnvironmentContractV1, environmentVariableSchema, environmentVariablesSchema, runtimeSchema, transportSchema };
|
|
1007
|
+
export { ApiContext, PLATFORM_LABELS, type Platform, RouterInput, RouterOutput, Runtime, Transport, buildSettingsSchema, contract, createEnvironmentContractV1, deploymentStatusSchema, environmentVariableSchema, environmentVariablesSchema, playgroundExamplePromptSchema, playgroundHeaderSchema, runtimeSchema, serverFieldsSchema, transportSchema, updateEnvironmentVariableSchema };
|
package/dist/index.mjs
CHANGED
|
@@ -1,6 +1,296 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
1
2
|
import { oc } from "@orpc/contract";
|
|
2
3
|
import ms from "ms";
|
|
3
|
-
|
|
4
|
+
const platformSchema = z.enum(["chatgpt", "claudeai"]);
|
|
5
|
+
const PLATFORM_LABELS = {
|
|
6
|
+
chatgpt: "ChatGPT",
|
|
7
|
+
claudeai: "Claude.ai"
|
|
8
|
+
};
|
|
9
|
+
const auditStatusSchema = z.enum([
|
|
10
|
+
"pending",
|
|
11
|
+
"partial",
|
|
12
|
+
"completed",
|
|
13
|
+
"failed"
|
|
14
|
+
]);
|
|
15
|
+
const checkSeveritySchema = z.enum([
|
|
16
|
+
"error",
|
|
17
|
+
"warning",
|
|
18
|
+
"info"
|
|
19
|
+
]);
|
|
20
|
+
const checkCategorySchema = z.enum([
|
|
21
|
+
"connectivity",
|
|
22
|
+
"tool-metadata",
|
|
23
|
+
"resource-metadata",
|
|
24
|
+
"performance",
|
|
25
|
+
"e2e"
|
|
26
|
+
]);
|
|
27
|
+
const checkScopeSchema = z.enum(["server", "view"]);
|
|
28
|
+
const checkDetailSchema = z.object({
|
|
29
|
+
label: z.string(),
|
|
30
|
+
value: z.string().optional()
|
|
31
|
+
});
|
|
32
|
+
const checkResultSchema = z.object({
|
|
33
|
+
checkId: z.string(),
|
|
34
|
+
checkName: z.string(),
|
|
35
|
+
description: z.string(),
|
|
36
|
+
status: z.enum([
|
|
37
|
+
"pass",
|
|
38
|
+
"fail",
|
|
39
|
+
"skip",
|
|
40
|
+
"pending"
|
|
41
|
+
]),
|
|
42
|
+
message: z.string(),
|
|
43
|
+
skipReason: z.string().optional(),
|
|
44
|
+
severity: checkSeveritySchema,
|
|
45
|
+
category: checkCategorySchema,
|
|
46
|
+
scope: checkScopeSchema,
|
|
47
|
+
platforms: z.array(platformSchema).readonly().optional(),
|
|
48
|
+
durationMs: z.number(),
|
|
49
|
+
details: z.array(checkDetailSchema).optional(),
|
|
50
|
+
hint: z.object({ text: z.string() }).optional()
|
|
51
|
+
});
|
|
52
|
+
const auditReportSchema = z.object({
|
|
53
|
+
schemaVersion: z.string(),
|
|
54
|
+
auditId: z.string(),
|
|
55
|
+
targetUrl: z.string(),
|
|
56
|
+
startedAt: z.string(),
|
|
57
|
+
completedAt: z.string(),
|
|
58
|
+
durationMs: z.number(),
|
|
59
|
+
results: z.array(checkResultSchema),
|
|
60
|
+
requiresAuth: z.boolean(),
|
|
61
|
+
hasViewSupport: z.boolean(),
|
|
62
|
+
viewPlatforms: z.array(platformSchema).readonly().optional(),
|
|
63
|
+
isReadyForPlatform: z.record(platformSchema, z.boolean()),
|
|
64
|
+
widgetScreenshotKeys: z.object({
|
|
65
|
+
chatgpt: z.string().optional(),
|
|
66
|
+
claudeai: z.string().optional()
|
|
67
|
+
})
|
|
68
|
+
});
|
|
69
|
+
const widgetScreenshotSchema = z.object({ url: z.string() });
|
|
70
|
+
const auditReportWithScreenshotsSchema = auditReportSchema.extend({ widgetScreenshots: z.object({
|
|
71
|
+
chatgpt: widgetScreenshotSchema.optional(),
|
|
72
|
+
claudeai: widgetScreenshotSchema.optional()
|
|
73
|
+
}) });
|
|
74
|
+
z.object({
|
|
75
|
+
id: z.string(),
|
|
76
|
+
createdAt: z.coerce.date(),
|
|
77
|
+
environmentId: z.string(),
|
|
78
|
+
content: z.string(),
|
|
79
|
+
source: z.enum(["model", "user"])
|
|
80
|
+
});
|
|
81
|
+
z.object({
|
|
82
|
+
content: z.string(),
|
|
83
|
+
source: z.enum(["model", "user"])
|
|
84
|
+
});
|
|
85
|
+
const toolDefinitionSchema = z.object({
|
|
86
|
+
name: z.string(),
|
|
87
|
+
title: z.string().optional(),
|
|
88
|
+
description: z.string().optional(),
|
|
89
|
+
annotations: z.object({
|
|
90
|
+
readOnlyHint: z.boolean().optional(),
|
|
91
|
+
destructiveHint: z.boolean().optional(),
|
|
92
|
+
openWorldHint: z.boolean().optional(),
|
|
93
|
+
idempotentHint: z.boolean().optional()
|
|
94
|
+
}).optional()
|
|
95
|
+
});
|
|
96
|
+
const positiveTestCaseSchema = z.object({
|
|
97
|
+
scenario: z.string(),
|
|
98
|
+
userPrompt: z.string(),
|
|
99
|
+
toolTriggered: z.string().optional(),
|
|
100
|
+
expectedOutput: z.string().optional()
|
|
101
|
+
}).partial().describe("Each case: Scenario, User prompt, Tool triggered, Expected output.");
|
|
102
|
+
/** Accepts either a valid email or URL. */
|
|
103
|
+
const supportChannelSchema = z.string().refine((value) => z.email().safeParse(value).success || z.url().safeParse(value).success, { error: "Must be a valid email or URL" });
|
|
104
|
+
const chatgptCategorySchema = z.enum([
|
|
105
|
+
"BUSINESS",
|
|
106
|
+
"COLLABORATION",
|
|
107
|
+
"DESIGN",
|
|
108
|
+
"DEVELOPER_TOOLS",
|
|
109
|
+
"EDUCATION",
|
|
110
|
+
"ENTERTAINMENT",
|
|
111
|
+
"FINANCE",
|
|
112
|
+
"FOOD",
|
|
113
|
+
"LIFESTYLE",
|
|
114
|
+
"NEWS",
|
|
115
|
+
"PRODUCTIVITY",
|
|
116
|
+
"SHOPPING",
|
|
117
|
+
"TRAVEL"
|
|
118
|
+
]);
|
|
119
|
+
const chatgptAuthenticationSchema = z.enum(["No auth needed", "OAuth 2.0"]);
|
|
120
|
+
const chatgptAllowedCountriesSchema = z.enum(["Allow all", "Restrict to specific countries"]);
|
|
121
|
+
const negativeTestCaseSchema = z.object({
|
|
122
|
+
scenario: z.string(),
|
|
123
|
+
userPrompt: z.string()
|
|
124
|
+
}).partial().describe("Each case: Scenario + User prompt (the app should NOT trigger).");
|
|
125
|
+
const chatgptToolJustificationSchema = z.object({
|
|
126
|
+
toolName: z.string(),
|
|
127
|
+
readOnlyJustification: z.string(),
|
|
128
|
+
openWorldJustification: z.string(),
|
|
129
|
+
destructiveJustification: z.string()
|
|
130
|
+
}).describe("Per-tool justification of each MCP annotation value (one sentence per hint).");
|
|
131
|
+
const chatgptTranslationSchema = z.object({
|
|
132
|
+
locale: z.string(),
|
|
133
|
+
tagline: z.string().optional(),
|
|
134
|
+
description: z.string().optional()
|
|
135
|
+
}).describe("Locale-scoped override for tagline + description. English (US) is the default.");
|
|
136
|
+
/**
|
|
137
|
+
* Field order mirrors the ChatGPT (OpenAI) submission spreadsheet, grouped by section.
|
|
138
|
+
* When adding/removing/reordering fields, keep this in sync with the sheet.
|
|
139
|
+
*/
|
|
140
|
+
const chatgptSubmissionFormDataSchema = z.object({
|
|
141
|
+
logoLight: z.string().describe("Logo icon for light mode. Square PNG, no borders or rounded corners (clients apply circular cropping)."),
|
|
142
|
+
logoDark: z.string().describe("Logo icon for dark mode. Square PNG. Same specs as the light icon."),
|
|
143
|
+
appName: z.string().describe("The name users will see in ChatGPT and in the Apps Directory."),
|
|
144
|
+
tagline: z.string().max(30).describe("Plain-language phrase focused on function and user value. 30 chars max."),
|
|
145
|
+
description: z.string().describe("Clear, engaging description highlighting what the app does and why people will love it. Appears publicly on the directory page."),
|
|
146
|
+
category: chatgptCategorySchema.describe("Category from the OpenAI taxonomy."),
|
|
147
|
+
developerName: z.string().describe("Developer name shown publicly on the app's directory page."),
|
|
148
|
+
companyUrl: z.url().describe("Your company's main website URL."),
|
|
149
|
+
supportChannel: supportChannelSchema.describe("Customer support URL or email address."),
|
|
150
|
+
privacyPolicyUrl: z.url().describe("URL to your privacy policy."),
|
|
151
|
+
termsOfServiceUrl: z.url().describe("URL to the app's terms of service."),
|
|
152
|
+
demoRecordingUrl: z.url().describe("URL to a video demonstrating the app, recorded via OpenAI Developer Mode. Cover all main use cases on web, iOS, and Android."),
|
|
153
|
+
appCommerceAndPurchasing: z.boolean().describe("Checkbox: 'My app links or directs users out of ChatGPT to make purchases.' Defaults to false. Verify the app does not offer digital goods."),
|
|
154
|
+
serverUrl: z.url().describe("URL of the MCP server."),
|
|
155
|
+
authentication: chatgptAuthenticationSchema.describe("OAuth 2.0 or No auth. OAuth configuration is auto-discovered from the MCP server's metadata."),
|
|
156
|
+
tools: z.array(toolDefinitionSchema).describe("List of tools exposed by the MCP server (auto-populated from the production server's manifest)."),
|
|
157
|
+
toolJustifications: z.array(chatgptToolJustificationSchema).describe("Per-tool justification of `readOnlyHint`, `openWorldHint`, and `destructiveHint` annotation values."),
|
|
158
|
+
testCases: z.array(positiveTestCaseSchema).describe("At least 5 positive test cases. Each: Scenario, User prompt, Tool triggered, Expected output. Coverage over all major use cases."),
|
|
159
|
+
negativeTestCases: z.array(negativeTestCaseSchema).describe("3 negative test cases — prompts where the app should NOT trigger but the model might think it's relevant."),
|
|
160
|
+
screenshots: z.array(z.url()).describe("URLs of in-app screenshots. Widget apps must show the widget UI; non-widget apps show the model response. Min 1, max 4. First three are public."),
|
|
161
|
+
translations: z.array(chatgptTranslationSchema).describe("Per-locale translation of tagline + description. English (US) is the default."),
|
|
162
|
+
allowedCountries: chatgptAllowedCountriesSchema.describe("'Allow all' or restrict to a specific list. See OpenAI's supported countries list."),
|
|
163
|
+
releaseNotes: z.string().describe("Publicly displayed on the app details page.")
|
|
164
|
+
});
|
|
165
|
+
chatgptSubmissionFormDataSchema.pick({
|
|
166
|
+
appName: true,
|
|
167
|
+
developerName: true,
|
|
168
|
+
serverUrl: true,
|
|
169
|
+
tools: true,
|
|
170
|
+
authentication: true
|
|
171
|
+
}).partial();
|
|
172
|
+
const claudeCategorySchema = z.enum([
|
|
173
|
+
"Business & Productivity",
|
|
174
|
+
"Communication",
|
|
175
|
+
"Data & Analytics",
|
|
176
|
+
"Development tools",
|
|
177
|
+
"Financial Services",
|
|
178
|
+
"Consumer Health",
|
|
179
|
+
"Health & Life Sciences",
|
|
180
|
+
"Media & Entertainment",
|
|
181
|
+
"Commerce & Shopping"
|
|
182
|
+
]);
|
|
183
|
+
z.enum([
|
|
184
|
+
"No auth needed",
|
|
185
|
+
"OAuth 2.0",
|
|
186
|
+
"Custom URL"
|
|
187
|
+
]);
|
|
188
|
+
const claudeMcpUrlTypeSchema = z.enum(["Universal URL", "Custom MCP URLs"]);
|
|
189
|
+
z.enum(["Static OAuth Client", "Dynamic OAuth Client (DCR / CIMD)"]);
|
|
190
|
+
const claudeReadWriteCapabilitiesSchema = z.enum([
|
|
191
|
+
"Read only",
|
|
192
|
+
"Write only",
|
|
193
|
+
"Read + write"
|
|
194
|
+
]);
|
|
195
|
+
const claudeTransportSchema = z.enum(["Streamable HTTP", "SSE"]);
|
|
196
|
+
const claudeThirdPartySchema = z.enum([
|
|
197
|
+
"Web access (open web fetch / scraping / arbitrary URLs)",
|
|
198
|
+
"Third-party AI model integration",
|
|
199
|
+
"Third-party data retrieval (via workflow / aggregator)",
|
|
200
|
+
"Third-party data modification (via workflow / aggregator)",
|
|
201
|
+
"N/A"
|
|
202
|
+
]);
|
|
203
|
+
const claudeDataHandlingSchema = z.enum([
|
|
204
|
+
"Server only accesses data explicitly requested by user",
|
|
205
|
+
"No data is stored beyond session requirements",
|
|
206
|
+
"Data transmission is encrypted (HTTPS / TLS)",
|
|
207
|
+
"GDPR compliant (if applicable)"
|
|
208
|
+
]);
|
|
209
|
+
const claudeSponsoredContentSchema = z.enum([
|
|
210
|
+
"No, there is no sponsored content or advertisements",
|
|
211
|
+
"Yes, there are banner ads or other paid visual elements",
|
|
212
|
+
"Yes, returned content or ranking is impacted by sponsorship or ad placement"
|
|
213
|
+
]);
|
|
214
|
+
/**
|
|
215
|
+
* Field order mirrors the Claude (Anthropic) submission spreadsheet, grouped by section.
|
|
216
|
+
* When adding/removing/reordering fields, keep this in sync with the sheet.
|
|
217
|
+
*/
|
|
218
|
+
const claudeSubmissionFormDataSchema = z.object({
|
|
219
|
+
companyName: z.string().describe("Enter your company's legal name or the name under which your product is publicly known. This is used for internal tracking and may appear in directory listings."),
|
|
220
|
+
companyUrl: z.url().describe("Your company's main website URL, e.g. https://mycompany.com. Must be a valid URL with https://. This should be the root domain of the company behind this MCP server."),
|
|
221
|
+
primaryContactName: z.string().describe("Full name of the person Anthropic should contact about this submission. This person will receive review feedback, approval notices, and any follow-up questions."),
|
|
222
|
+
primaryContactEmail: z.email().describe("Business email for the primary contact. Must be a valid email address. Anthropic uses this to communicate about your submission status, required changes, and post-listing issues. Avoid using personal email addresses."),
|
|
223
|
+
primaryContactRole: z.string().optional().describe("The job title or role of the primary contact (e.g. 'CTO', 'Developer Relations Lead', 'Founder'). Optional but helps Anthropic route questions to the right person."),
|
|
224
|
+
anthropicPointOfContact: z.string().optional().describe("If you have a direct contact at Anthropic (e.g. from a partnership or sales conversation), enter their name here. This is optional but can greatly help expedite the review process. Leave blank if you don't have one."),
|
|
225
|
+
appName: z.string().describe(`The public display name for your connector as it will appear in the Connectors Directory.
|
|
226
|
+
|
|
227
|
+
Rules:
|
|
228
|
+
(1) Do NOT include the words 'MCP' or 'Server' — these are auto-rejected.
|
|
229
|
+
(2) Use your brand/product name, e.g. 'Notion', 'Linear', 'Slack'.
|
|
230
|
+
(3) You must own or have the right to use this brand name. For example, don't call it 'Google Drive Helper' if you're not Google.`),
|
|
231
|
+
mcpUrlType: claudeMcpUrlTypeSchema.describe("Universal URL = one URL serves all users. Custom MCP URLs = signup URL + regex matching per-user URLs."),
|
|
232
|
+
serverUrl: z.url().describe("Production MCP server URL (https). Derived from the project's production environment by default."),
|
|
233
|
+
tagline: z.string().max(55).describe("Short blurb shown below the server name. 55 chars max."),
|
|
234
|
+
description: z.string().describe("50–100 words describing what the server does and its key capabilities. Lives on the directory listing."),
|
|
235
|
+
testCases: z.array(positiveTestCaseSchema).describe("At least 3 use cases with example prompts showing the value of the connector."),
|
|
236
|
+
connectionRequirements: z.string().describe(`Prerequisites before connecting:
|
|
237
|
+
• Free/premium account
|
|
238
|
+
• Admin seat
|
|
239
|
+
• Geographic availability
|
|
240
|
+
• Custom instance URL
|
|
241
|
+
|
|
242
|
+
State 'No special requirements.' if none.`),
|
|
243
|
+
readWriteCapabilities: claudeReadWriteCapabilitiesSchema.describe("Inferred from the `readOnlyHint` annotations on the MCP tools."),
|
|
244
|
+
isMcpApp: z.boolean().describe("True if the server exposes interactive UI elements (widgets). Inferred from the MCP connection."),
|
|
245
|
+
thirdPartyConnectionsAndWebAccess: z.array(claudeThirdPartySchema).describe("Multi-select of what the server reaches out to (web, third-party AI, data aggregators)."),
|
|
246
|
+
dataHandling: z.array(claudeDataHandlingSchema).describe("Multi-select of data-handling practices that accurately describe the server. Cannot be inferred — user must self-declare."),
|
|
247
|
+
personalDataHealthAccess: z.boolean().describe("True only if the connector gives users access to their own personal health data (medical records, lab results, health metrics)."),
|
|
248
|
+
categories: z.array(claudeCategorySchema).describe("Multi-select of categories that best describe the server in the directory."),
|
|
249
|
+
sponsoredContentsOrAdvertisement: claudeSponsoredContentSchema.describe("Disclose paid promotion or sponsored content. Cannot be filled by Alpic — user must self-declare."),
|
|
250
|
+
transportSupport: z.array(claudeTransportSchema).describe("Multi-select of transport protocols the server supports. Anthropic recommends Streamable HTTP (SSE may be deprecated later this year)."),
|
|
251
|
+
serverDocumentationLink: z.url().describe("Public docs URL covering what the MCP does, setup, debugging, and self-serve support. The Alpic playground may be used."),
|
|
252
|
+
privacyPolicyUrl: z.url().describe("URL to your privacy policy. Mandatory and displayed alongside the directory listing."),
|
|
253
|
+
supportChannel: supportChannelSchema.describe("Link or email for user support (help center, GitHub issues, docs, support@…). Displayed alongside the directory listing."),
|
|
254
|
+
testingCredentials: z.string().describe("Credentials for reviewers to verify functionality. Required if the server uses OAuth. No 2FA. Use mcp-review@anthropic.com if an accessible email is needed."),
|
|
255
|
+
tools: z.array(toolDefinitionSchema).describe("List of tools exposed by the MCP server (auto-populated from the production server's manifest)."),
|
|
256
|
+
toolTitlesAnnotationsConfirmed: z.boolean().describe("Confirmation that all tools have user-friendly titles and accurate annotations (readOnlyHint, destructiveHint, …)."),
|
|
257
|
+
logoLight: z.string().describe("Server/app logo for light mode. Square 1:1 aspect ratio. SVG preferred for Claude."),
|
|
258
|
+
screenshots: z.array(z.url()).describe("URLs of screenshots of the connector on Claude.ai or promo material. 3–5 ideal. ≥1000px width preferred, PNG, cropped to the app response. Videos welcome.")
|
|
259
|
+
});
|
|
260
|
+
claudeSubmissionFormDataSchema.pick({
|
|
261
|
+
companyName: true,
|
|
262
|
+
appName: true,
|
|
263
|
+
mcpUrlType: true,
|
|
264
|
+
serverUrl: true,
|
|
265
|
+
tools: true,
|
|
266
|
+
readWriteCapabilities: true,
|
|
267
|
+
transportSupport: true,
|
|
268
|
+
primaryContactEmail: true,
|
|
269
|
+
primaryContactName: true
|
|
270
|
+
}).partial();
|
|
271
|
+
const submissionMetaFieldsSchema = z.object({
|
|
272
|
+
id: z.string(),
|
|
273
|
+
environmentId: z.string(),
|
|
274
|
+
createdAt: z.coerce.date(),
|
|
275
|
+
updatedAt: z.coerce.date()
|
|
276
|
+
});
|
|
277
|
+
const claudeSubmissionSchemaInternal = submissionMetaFieldsSchema.extend({
|
|
278
|
+
platform: z.literal("claudeai"),
|
|
279
|
+
formData: claudeSubmissionFormDataSchema.partial()
|
|
280
|
+
});
|
|
281
|
+
const chatgptSubmissionSchemaInternal = submissionMetaFieldsSchema.extend({
|
|
282
|
+
platform: z.literal("chatgpt"),
|
|
283
|
+
formData: chatgptSubmissionFormDataSchema.partial()
|
|
284
|
+
});
|
|
285
|
+
z.discriminatedUnion("platform", [claudeSubmissionSchemaInternal, chatgptSubmissionSchemaInternal]);
|
|
286
|
+
z.union([claudeSubmissionFormDataSchema.partial(), chatgptSubmissionFormDataSchema.partial()]);
|
|
287
|
+
const subscriptionPlanSchema = z.enum([
|
|
288
|
+
"pro",
|
|
289
|
+
"business",
|
|
290
|
+
"enterprise"
|
|
291
|
+
]);
|
|
292
|
+
z.object({ plan: subscriptionPlanSchema.nullable() });
|
|
293
|
+
//#endregion
|
|
4
294
|
//#region src/schemas.ts
|
|
5
295
|
const RESERVED_KEYS = [
|
|
6
296
|
"_HANDLER",
|
|
@@ -35,7 +325,8 @@ const RESERVED_KEYS = [
|
|
|
35
325
|
"BUILD_ARG_BUILD_OUTPUT_DIR",
|
|
36
326
|
"BUILD_ARG_START_COMMAND",
|
|
37
327
|
"ALPIC_HOST",
|
|
38
|
-
"ALPIC_CUSTOM_DOMAINS"
|
|
328
|
+
"ALPIC_CUSTOM_DOMAINS",
|
|
329
|
+
"ALPIC_INTENT_META_KEY"
|
|
39
330
|
];
|
|
40
331
|
const environmentVariableSchema = z.object({
|
|
41
332
|
key: z.string().min(2, "Key must be at least 2 characters").regex(/^[a-zA-Z]([a-zA-Z0-9_])+$/, "Key must start with a letter and contain only letters, numbers, and underscores").refine((key) => !RESERVED_KEYS.includes(key), "This key is reserved and cannot be used as an environment variable key"),
|
|
@@ -43,6 +334,10 @@ const environmentVariableSchema = z.object({
|
|
|
43
334
|
isSecret: z.boolean().default(false)
|
|
44
335
|
});
|
|
45
336
|
const environmentVariablesSchema = z.array(environmentVariableSchema);
|
|
337
|
+
const updateEnvironmentVariableSchema = environmentVariableSchema.partial({
|
|
338
|
+
value: true,
|
|
339
|
+
isSecret: true
|
|
340
|
+
});
|
|
46
341
|
const buildSettingsSchema = z.object({
|
|
47
342
|
installCommand: z.string().optional(),
|
|
48
343
|
buildCommand: z.string().optional(),
|
|
@@ -60,6 +355,39 @@ const transportSchema = z.enum([
|
|
|
60
355
|
"sse",
|
|
61
356
|
"streamablehttp"
|
|
62
357
|
]);
|
|
358
|
+
const playgroundHeaderSchema = z.object({
|
|
359
|
+
name: z.string().min(1).max(100),
|
|
360
|
+
description: z.string().max(200),
|
|
361
|
+
isRequired: z.boolean().default(false),
|
|
362
|
+
isSecret: z.boolean().default(false)
|
|
363
|
+
});
|
|
364
|
+
const playgroundExamplePromptSchema = z.object({
|
|
365
|
+
title: z.string().min(1).max(100),
|
|
366
|
+
prompt: z.string().min(1).max(500)
|
|
367
|
+
});
|
|
368
|
+
const serverFieldsSchema = z.object({
|
|
369
|
+
$schema: z.string(),
|
|
370
|
+
name: z.string(),
|
|
371
|
+
description: z.string(),
|
|
372
|
+
version: z.string().optional(),
|
|
373
|
+
title: z.string().optional(),
|
|
374
|
+
websiteUrl: z.url().optional(),
|
|
375
|
+
icons: z.array(z.object({
|
|
376
|
+
src: z.url(),
|
|
377
|
+
mimeType: z.string().optional(),
|
|
378
|
+
sizes: z.array(z.string()).optional()
|
|
379
|
+
})).optional(),
|
|
380
|
+
remotes: z.array(z.object({
|
|
381
|
+
type: z.string(),
|
|
382
|
+
url: z.url().optional(),
|
|
383
|
+
headers: z.array(z.object({
|
|
384
|
+
name: z.string(),
|
|
385
|
+
description: z.string(),
|
|
386
|
+
isRequired: z.boolean().optional(),
|
|
387
|
+
isSecret: z.boolean().optional()
|
|
388
|
+
})).optional()
|
|
389
|
+
})).optional()
|
|
390
|
+
});
|
|
63
391
|
//#endregion
|
|
64
392
|
//#region src/api.contract.ts
|
|
65
393
|
const deploymentStatusSchema = z.enum([
|
|
@@ -84,9 +412,12 @@ const deploymentSchema = z.object({
|
|
|
84
412
|
authorUsername: z.string().nullable(),
|
|
85
413
|
authorAvatarUrl: z.string().nullable(),
|
|
86
414
|
startedAt: z.coerce.date().nullable(),
|
|
87
|
-
completedAt: z.coerce.date().nullable()
|
|
415
|
+
completedAt: z.coerce.date().nullable(),
|
|
416
|
+
environmentId: z.string(),
|
|
417
|
+
environmentName: z.string(),
|
|
418
|
+
isCurrent: z.boolean(),
|
|
419
|
+
deploymentPageUrl: z.url().nullable()
|
|
88
420
|
});
|
|
89
|
-
const deploymentWithPageUrlSchema = deploymentSchema.extend({ deploymentPageUrl: z.url().nullable() });
|
|
90
421
|
const isValidLogTimeInput = (value) => {
|
|
91
422
|
if (ms(value) !== void 0) return true;
|
|
92
423
|
return !Number.isNaN(new Date(value).getTime());
|
|
@@ -272,7 +603,7 @@ const updateEnvironmentVariableContractV1 = oc.route({
|
|
|
272
603
|
environmentVariableId: z.string().describe("The ID of the environment variable"),
|
|
273
604
|
key: environmentVariableSchema.shape.key,
|
|
274
605
|
value: environmentVariableSchema.shape.value.optional(),
|
|
275
|
-
isSecret: environmentVariableSchema.shape.isSecret
|
|
606
|
+
isSecret: environmentVariableSchema.shape.isSecret.optional()
|
|
276
607
|
})).output(z.object({ success: z.literal(true) }));
|
|
277
608
|
const deleteEnvironmentVariableContractV1 = oc.route({
|
|
278
609
|
path: "/v1/environment-variables/{environmentVariableId}",
|
|
@@ -283,7 +614,7 @@ const deleteEnvironmentVariableContractV1 = oc.route({
|
|
|
283
614
|
successDescription: "The environment variable has been deleted successfully"
|
|
284
615
|
}).errors({ NOT_FOUND: {} }).input(z.object({ environmentVariableId: z.string().describe("The ID of the environment variable") })).output(z.object({ success: z.literal(true) }));
|
|
285
616
|
const deleteProjectContractV1 = oc.route({
|
|
286
|
-
path: "/v1/projects
|
|
617
|
+
path: "/v1/projects/{projectId}",
|
|
287
618
|
method: "DELETE",
|
|
288
619
|
summary: "Delete a project",
|
|
289
620
|
description: "Delete a project and all its environments",
|
|
@@ -318,7 +649,7 @@ const deployEnvironmentContractV1 = oc.route({
|
|
|
318
649
|
}).input(z.object({
|
|
319
650
|
environmentId: z.string().describe("The ID of the environment to deploy"),
|
|
320
651
|
token: z.string().describe("The token to identify the source archive").optional()
|
|
321
|
-
})).output(
|
|
652
|
+
})).output(deploymentSchema);
|
|
322
653
|
const uploadDeploymentArtifactContractV1 = oc.route({
|
|
323
654
|
path: "/v1/deployments/upload",
|
|
324
655
|
method: "POST",
|
|
@@ -327,21 +658,22 @@ const uploadDeploymentArtifactContractV1 = oc.route({
|
|
|
327
658
|
tags: ["deployments"],
|
|
328
659
|
successDescription: "The presigned upload URL has been generated successfully"
|
|
329
660
|
}).input(z.object({ teamId: z.string().optional() }).optional()).output(z.object({
|
|
330
|
-
uploadUrl: z.
|
|
661
|
+
uploadUrl: z.url().describe("Presigned S3 URL to upload the source archive with HTTP PUT"),
|
|
331
662
|
token: z.string().describe("Token to identify the source archive"),
|
|
332
663
|
expiresAt: z.coerce.date().describe("Expiration date of the presigned URL")
|
|
333
664
|
}));
|
|
334
|
-
const
|
|
665
|
+
const listDeploymentsContractV1 = oc.route({
|
|
335
666
|
path: "/v1/projects/{projectId}/deployments",
|
|
336
667
|
method: "GET",
|
|
337
668
|
summary: "List project deployments",
|
|
338
669
|
description: "List all deployments for a project",
|
|
339
670
|
tags: ["deployments"],
|
|
340
671
|
successDescription: "The list of deployments"
|
|
341
|
-
}).errors({ NOT_FOUND: {} }).input(z.object({
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
672
|
+
}).errors({ NOT_FOUND: {} }).input(z.object({
|
|
673
|
+
projectId: z.string().describe("The ID of the project"),
|
|
674
|
+
status: z.array(deploymentStatusSchema).optional().describe("Filter by one or more statuses"),
|
|
675
|
+
environmentId: z.string().optional().describe("Filter by environment ID")
|
|
676
|
+
})).output(z.array(deploymentSchema));
|
|
345
677
|
const getDeploymentContractV1 = oc.route({
|
|
346
678
|
path: "/v1/deployments/{deploymentId}",
|
|
347
679
|
method: "GET",
|
|
@@ -349,7 +681,7 @@ const getDeploymentContractV1 = oc.route({
|
|
|
349
681
|
description: "Get a deployment by ID",
|
|
350
682
|
tags: ["deployments"],
|
|
351
683
|
successDescription: "The deployment details"
|
|
352
|
-
}).errors({ NOT_FOUND: {} }).input(z.object({ deploymentId: z.string().describe("The ID of the deployment") })).output(
|
|
684
|
+
}).errors({ NOT_FOUND: {} }).input(z.object({ deploymentId: z.string().describe("The ID of the deployment") })).output(deploymentSchema);
|
|
353
685
|
const getLogsContractV1 = oc.route({
|
|
354
686
|
path: "/v1/environments/{environmentId}/logs",
|
|
355
687
|
method: "GET",
|
|
@@ -391,6 +723,41 @@ const getLogsContractV1 = oc.route({
|
|
|
391
723
|
})),
|
|
392
724
|
nextToken: z.string().nullable()
|
|
393
725
|
}));
|
|
726
|
+
const getLatestLogsContractV1 = oc.route({
|
|
727
|
+
path: "/v1/environments/{environmentId}/latest-logs",
|
|
728
|
+
method: "GET",
|
|
729
|
+
summary: "Get latest logs",
|
|
730
|
+
description: "Get the N most recent logs for an environment",
|
|
731
|
+
tags: ["environments"],
|
|
732
|
+
successDescription: "The latest logs"
|
|
733
|
+
}).errors({
|
|
734
|
+
NOT_FOUND: {},
|
|
735
|
+
BAD_REQUEST: {}
|
|
736
|
+
}).input(z.object({
|
|
737
|
+
environmentId: z.string().describe("The ID of the environment"),
|
|
738
|
+
limit: z.coerce.number().int().min(1).max(1e3).default(100).describe("Number of most recent log entries to return"),
|
|
739
|
+
level: z.array(z.enum([
|
|
740
|
+
"INFO",
|
|
741
|
+
"ERROR",
|
|
742
|
+
"WARNING",
|
|
743
|
+
"DEBUG"
|
|
744
|
+
])).optional().describe("Filter by log level"),
|
|
745
|
+
search: z.string().optional().describe("Filter pattern to search for in log content")
|
|
746
|
+
})).output(z.object({ logs: z.array(z.object({
|
|
747
|
+
timestamp: z.coerce.date(),
|
|
748
|
+
type: z.enum([
|
|
749
|
+
"START",
|
|
750
|
+
"END",
|
|
751
|
+
"INFO",
|
|
752
|
+
"ERROR",
|
|
753
|
+
"WARNING",
|
|
754
|
+
"DEBUG"
|
|
755
|
+
]),
|
|
756
|
+
requestId: z.string(),
|
|
757
|
+
content: z.string().optional(),
|
|
758
|
+
method: z.string().optional(),
|
|
759
|
+
durationInMs: z.number().optional()
|
|
760
|
+
})) }));
|
|
394
761
|
const getDeploymentLogsContractV1 = oc.route({
|
|
395
762
|
path: "/v1/deployments/{deploymentId}/logs",
|
|
396
763
|
method: "GET",
|
|
@@ -468,11 +835,115 @@ const getTunnelTicketContractV1 = oc.route({
|
|
|
468
835
|
ticket: z.string().describe("The signed tunnel ticket"),
|
|
469
836
|
tunnelHost: z.string().describe("The tunnel host to connect to")
|
|
470
837
|
}));
|
|
838
|
+
const publishServerContractV1 = oc.route({
|
|
839
|
+
path: "/v1/distribution/publish",
|
|
840
|
+
method: "POST",
|
|
841
|
+
summary: "Publish a server to the MCP registry",
|
|
842
|
+
tags: ["distribution"],
|
|
843
|
+
successDescription: "The server has been published successfully"
|
|
844
|
+
}).errors({
|
|
845
|
+
NOT_FOUND: {},
|
|
846
|
+
BAD_REQUEST: {}
|
|
847
|
+
}).input(z.object({
|
|
848
|
+
projectId: z.string(),
|
|
849
|
+
domain: z.string(),
|
|
850
|
+
title: z.string().min(1).max(100),
|
|
851
|
+
description: z.string().min(1).max(100),
|
|
852
|
+
websiteUrl: z.url().max(255).optional(),
|
|
853
|
+
iconSrc: z.url().max(255).optional(),
|
|
854
|
+
dryRun: z.boolean().optional()
|
|
855
|
+
})).output(z.object({ serverFields: serverFieldsSchema }));
|
|
856
|
+
const getServerInfoContractV1 = oc.route({
|
|
857
|
+
path: "/v1/distribution/get",
|
|
858
|
+
method: "GET",
|
|
859
|
+
summary: "Get server info",
|
|
860
|
+
description: "Get info about a server",
|
|
861
|
+
tags: ["distribution"],
|
|
862
|
+
successDescription: "The server info"
|
|
863
|
+
}).errors({
|
|
864
|
+
NOT_FOUND: {},
|
|
865
|
+
BAD_REQUEST: {}
|
|
866
|
+
}).input(z.object({
|
|
867
|
+
projectId: z.string(),
|
|
868
|
+
domain: z.string()
|
|
869
|
+
})).output(z.object({ serverFields: serverFieldsSchema }));
|
|
870
|
+
const playgroundServerMetadataOutputSchema = z.object({
|
|
871
|
+
name: z.string(),
|
|
872
|
+
description: z.string(),
|
|
873
|
+
headers: z.array(z.object({
|
|
874
|
+
name: z.string(),
|
|
875
|
+
description: z.string(),
|
|
876
|
+
isRequired: z.boolean(),
|
|
877
|
+
isSecret: z.boolean()
|
|
878
|
+
})),
|
|
879
|
+
examplePrompts: z.array(playgroundExamplePromptSchema)
|
|
880
|
+
});
|
|
881
|
+
const playgroundOutputSchema = z.object({
|
|
882
|
+
isPlaygroundEnabled: z.boolean(),
|
|
883
|
+
serverMetadata: playgroundServerMetadataOutputSchema.nullable()
|
|
884
|
+
});
|
|
885
|
+
const getPlaygroundContractV1 = oc.route({
|
|
886
|
+
path: "/v1/environments/{environmentId}/playground",
|
|
887
|
+
method: "GET",
|
|
888
|
+
summary: "Get playground configuration",
|
|
889
|
+
description: "Get the playground configuration for an environment",
|
|
890
|
+
tags: ["environments"],
|
|
891
|
+
successDescription: "The playground configuration"
|
|
892
|
+
}).errors({ NOT_FOUND: {} }).input(z.object({ environmentId: z.string().describe("The ID of the environment") })).output(playgroundOutputSchema);
|
|
893
|
+
const upsertPlaygroundContractV1 = oc.route({
|
|
894
|
+
path: "/v1/environments/{environmentId}/playground",
|
|
895
|
+
method: "PUT",
|
|
896
|
+
summary: "Update playground configuration",
|
|
897
|
+
description: "Update the playground configuration for an environment. All fields are optional — only provided fields are updated.",
|
|
898
|
+
tags: ["environments"],
|
|
899
|
+
successDescription: "The updated playground configuration"
|
|
900
|
+
}).errors({
|
|
901
|
+
NOT_FOUND: {},
|
|
902
|
+
BAD_REQUEST: {}
|
|
903
|
+
}).input(z.object({
|
|
904
|
+
environmentId: z.string().describe("The ID of the environment"),
|
|
905
|
+
isPlaygroundEnabled: z.boolean().optional(),
|
|
906
|
+
name: z.string().min(1).max(100).optional(),
|
|
907
|
+
description: z.string().min(1).max(500).optional(),
|
|
908
|
+
headers: z.array(playgroundHeaderSchema).optional(),
|
|
909
|
+
examplePrompts: z.array(playgroundExamplePromptSchema).max(3).optional()
|
|
910
|
+
})).output(playgroundOutputSchema);
|
|
911
|
+
const createBeaconContractV1 = oc.route({
|
|
912
|
+
path: "/v1/beacon/audits",
|
|
913
|
+
method: "POST",
|
|
914
|
+
summary: "Create a beacon audit",
|
|
915
|
+
description: "Audit an MCP server for spec compliance and AI client compatibility",
|
|
916
|
+
tags: ["beacon"],
|
|
917
|
+
successDescription: "The audit has been created"
|
|
918
|
+
}).errors({
|
|
919
|
+
NOT_FOUND: {},
|
|
920
|
+
BAD_REQUEST: {}
|
|
921
|
+
}).input(z.object({
|
|
922
|
+
targetUrl: z.url().describe("The HTTPS URL of the MCP server to audit"),
|
|
923
|
+
teamId: z.string().optional().describe("The team ID to associate the audit with"),
|
|
924
|
+
projectId: z.string().optional().describe("The project ID to associate the audit with"),
|
|
925
|
+
excludeCategories: z.array(checkCategorySchema).optional().describe("Check categories to exclude from the audit")
|
|
926
|
+
})).output(z.object({ id: z.string() }));
|
|
927
|
+
const getBeaconContractV1 = oc.route({
|
|
928
|
+
path: "/v1/beacon/audits/{auditId}",
|
|
929
|
+
method: "GET",
|
|
930
|
+
summary: "Get a beacon audit",
|
|
931
|
+
description: "Get a beacon audit by ID, including the report if completed",
|
|
932
|
+
tags: ["beacon"],
|
|
933
|
+
successDescription: "The audit details"
|
|
934
|
+
}).errors({ NOT_FOUND: {} }).input(z.object({ auditId: z.string().describe("The ID of the audit") })).output(z.object({
|
|
935
|
+
id: z.string(),
|
|
936
|
+
targetUrl: z.string(),
|
|
937
|
+
status: auditStatusSchema,
|
|
938
|
+
durationMs: z.number().nullable(),
|
|
939
|
+
createdAt: z.coerce.date(),
|
|
940
|
+
report: auditReportWithScreenshotsSchema.nullable()
|
|
941
|
+
}));
|
|
471
942
|
const contract = {
|
|
472
943
|
teams: { list: { v1: listTeamsContractV1 } },
|
|
473
944
|
analytics: { get: { v1: getProjectAnalyticsContractV1 } },
|
|
474
945
|
deployments: {
|
|
475
|
-
list: { v1:
|
|
946
|
+
list: { v1: listDeploymentsContractV1 },
|
|
476
947
|
get: { v1: getDeploymentContractV1 },
|
|
477
948
|
uploadArtifact: { v1: uploadDeploymentArtifactContractV1 },
|
|
478
949
|
getLogs: { v1: getDeploymentLogsContractV1 }
|
|
@@ -481,7 +952,8 @@ const contract = {
|
|
|
481
952
|
create: { v1: createEnvironmentContractV1 },
|
|
482
953
|
get: { v1: getEnvironmentContractV1 },
|
|
483
954
|
deploy: { v1: deployEnvironmentContractV1 },
|
|
484
|
-
getLogs: { v1: getLogsContractV1 }
|
|
955
|
+
getLogs: { v1: getLogsContractV1 },
|
|
956
|
+
getLatestLogs: { v1: getLatestLogsContractV1 }
|
|
485
957
|
},
|
|
486
958
|
environmentVariables: {
|
|
487
959
|
list: { v1: listEnvironmentVariablesContractV1 },
|
|
@@ -496,7 +968,19 @@ const contract = {
|
|
|
496
968
|
create: { v1: createProjectContractV1 },
|
|
497
969
|
delete: { v1: deleteProjectContractV1 }
|
|
498
970
|
},
|
|
499
|
-
|
|
971
|
+
playground: {
|
|
972
|
+
get: { v1: getPlaygroundContractV1 },
|
|
973
|
+
upsert: { v1: upsertPlaygroundContractV1 }
|
|
974
|
+
},
|
|
975
|
+
tunnels: { getTicket: { v1: getTunnelTicketContractV1 } },
|
|
976
|
+
distribution: {
|
|
977
|
+
publish: { v1: publishServerContractV1 },
|
|
978
|
+
get: { v1: getServerInfoContractV1 }
|
|
979
|
+
},
|
|
980
|
+
beacon: {
|
|
981
|
+
create: { v1: createBeaconContractV1 },
|
|
982
|
+
get: { v1: getBeaconContractV1 }
|
|
983
|
+
}
|
|
500
984
|
};
|
|
501
985
|
//#endregion
|
|
502
|
-
export { buildSettingsSchema, contract, createEnvironmentContractV1, environmentVariableSchema, environmentVariablesSchema, runtimeSchema, transportSchema };
|
|
986
|
+
export { PLATFORM_LABELS, buildSettingsSchema, contract, createEnvironmentContractV1, deploymentStatusSchema, environmentVariableSchema, environmentVariablesSchema, playgroundExamplePromptSchema, playgroundHeaderSchema, runtimeSchema, serverFieldsSchema, transportSchema, updateEnvironmentVariableSchema };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alpic-ai/api",
|
|
3
|
-
"version": "0.0.0-staging.
|
|
3
|
+
"version": "0.0.0-staging.2e98566",
|
|
4
4
|
"description": "Contract for the Alpic API",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.mjs",
|
|
@@ -14,27 +14,39 @@
|
|
|
14
14
|
"files": [
|
|
15
15
|
"dist"
|
|
16
16
|
],
|
|
17
|
+
"nx": {
|
|
18
|
+
"targets": {
|
|
19
|
+
"build": {
|
|
20
|
+
"dependsOn": [
|
|
21
|
+
"^build"
|
|
22
|
+
]
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
},
|
|
17
26
|
"author": "Alpic",
|
|
18
27
|
"license": "ISC",
|
|
19
28
|
"dependencies": {
|
|
20
|
-
"@orpc/contract": "^1.
|
|
29
|
+
"@orpc/contract": "^1.14.3",
|
|
21
30
|
"ms": "^2.1.3",
|
|
22
|
-
"zod": "^4.3
|
|
31
|
+
"zod": "^4.4.3"
|
|
23
32
|
},
|
|
24
33
|
"devDependencies": {
|
|
34
|
+
"@orpc/openapi": "^1.14.3",
|
|
35
|
+
"@orpc/zod": "^1.14.3",
|
|
25
36
|
"@total-typescript/tsconfig": "^1.0.4",
|
|
26
37
|
"@types/ms": "^2.1.0",
|
|
27
38
|
"shx": "^0.4.0",
|
|
28
|
-
"tsdown": "^0.
|
|
29
|
-
"typescript": "^
|
|
30
|
-
"vitest": "^4.1.
|
|
39
|
+
"tsdown": "^0.22.0",
|
|
40
|
+
"typescript": "^6.0.3",
|
|
41
|
+
"vitest": "^4.1.6",
|
|
42
|
+
"@alpic-ai/domains": "0.0.0"
|
|
31
43
|
},
|
|
32
44
|
"scripts": {
|
|
33
45
|
"build": "shx rm -rf dist && tsdown",
|
|
34
|
-
"format": "biome check --write --error-on-warnings",
|
|
46
|
+
"format": "biome check --write --error-on-warnings .",
|
|
35
47
|
"test": "pnpm run test:unit && pnpm run test:type && pnpm run test:format",
|
|
36
48
|
"test:unit": "vitest run",
|
|
37
|
-
"test:format": "
|
|
49
|
+
"test:format": "biome check --error-on-warnings .",
|
|
38
50
|
"test:type": "tsc --noEmit",
|
|
39
51
|
"publish:npm": "pnpm publish --tag \"${NPM_TAG}\" --access public --no-git-checks"
|
|
40
52
|
}
|