@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 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 createEnvironmentContractV1: _orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
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
- }, z.core.$strip>>, _orpc_contract0.MergedErrorMap<Record<never, never>, {
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.ZodString;
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
- import { z } from "zod";
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/:projectId",
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(deploymentWithPageUrlSchema);
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.string().url().describe("Presigned S3 URL to upload the source archive with HTTP PUT"),
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 listProjectDeploymentsContractV1 = oc.route({
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({ projectId: z.string().describe("The ID of the project") })).output(z.array(deploymentSchema.extend({
342
- isCurrent: z.boolean(),
343
- environmentId: z.string()
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(deploymentWithPageUrlSchema);
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: listProjectDeploymentsContractV1 },
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
- tunnels: { getTicket: { v1: getTunnelTicketContractV1 } }
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.2e53e5a",
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.13.7",
29
+ "@orpc/contract": "^1.14.3",
21
30
  "ms": "^2.1.3",
22
- "zod": "^4.3.6"
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.21.3",
29
- "typescript": "^5.9.3",
30
- "vitest": "^4.1.0"
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": "prettier --check .",
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
  }